<?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.39 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-workflow-and-params-09" category="std" consensus="true" submissionType="IETF" updates="9200, 9201, 9202, 9203, 9431" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="New ACE Workflow and Parameters">Short Distribution Chain (SDC) Workflow and New OAuth Parameters for the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-09"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>164 40</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>164 40</code>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 143?>

<t>The specification RFC 9200 defines the Authentication and Authorization for Constrained Environments (ACE) framework. This document updates the ACE framework and therefore RFC 9200 as follows. (1) It defines the Short Distribution Chain (SDC) workflow that the authorization server (AS) can use for uploading an access token to a resource server on behalf of the client. (2) For the OAuth 2.0 token endpoint, it defines new parameters and encodings and it extends the semantics of the "ace_profile" parameter. (3) For the OAuth 2.0 authz-info endpoint, it defines a new parameter and its encoding. (4) It defines how the client and the AS can coordinate on the exchange of the client's and resource server's public authentication credentials, when those can be transported by value or identified by reference; this extends the semantics of the "rs_cnf" parameter for the OAuth 2.0 token endpoint, thus updating RFC 9201. (5) It extends the error handling at the AS, for which it defines a new error code. (6) It deprecates the original payload format of error responses conveying an error code, when Concise Binary Object Representation (CBOR) is used to encode message payloads. For those responses, it defines a new payload format aligned with RFC 9290, thus updating in this respect also the profiles defined in RFC 9202, RFC 9203, and RFC 9431. (7) It amends two of the requirements on profiles of the framework.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ace-workflow-and-params/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Authentication and Authorization for Constrained Environments (ace) Working Group mailing list (<eref target="mailto:ace@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ace/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ace-wg/ace-workflow-and-params"/>.</t>
    </note>
  </front>
  <middle>
    <?line 147?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/> defines an architecture to enforce access control for constrained devices. A client (C) requests an assertion of granted permissions from an authorization server (AS) in the form of an access token, then uploads the access token to the target resource server (RS), and finally accesses protected resources at the RS according to the permissions specified in the access token.</t>
      <t>The ACE framework has as main building blocks the OAuth 2.0 framework <xref target="RFC6749"/>, the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> for message transfer, Concise Binary Object Representation (CBOR) <xref target="RFC8949"/> for compact encoding, and CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/><xref target="RFC9053"/> for self-contained protection of access tokens. In addition, separate profile documents define in detail how the participants in the ACE architecture communicate, especially as to the security protocols that they use.</t>
      <t>The present document updates <xref target="RFC9200"/> as follows.</t>
      <ul spacing="normal">
        <li>
          <t>It defines the Short Distribution Chain (SDC) workflow for the ACE framework (see <xref target="sec-workflow"/> of the present document), according to which the AS uploads the access token to the RS on behalf of C and then informs C about the outcome. The SDC workflow is especially convenient in deployments where the communication leg between C and the RS is constrained, but the communication leg between the AS and the RS is not.  </t>
          <t>
The SDC workflow has no ambition to replace the original workflow defined in <xref target="RFC9200"/>. The AS can use one workflow or the other, depending, for example, on the specific RS for which an access token has been issued and the nature of the communication leg with that RS.</t>
        </li>
        <li>
          <t>It defines new parameters and encodings for the OAuth 2.0 token endpoint at the AS (see <xref target="sec-parameters"/> of the present document). These include:  </t>
          <ul spacing="normal">
            <li>
              <t>"token_upload", used by C to inform the AS that it opts in to use the SDC workflow and by the AS to inform C about the outcome of the token uploading to the RS per the SDC workflow.</t>
            </li>
            <li>
              <t>"token_hash", used by the AS to provide C with a token hash, which corresponds to an access token that the AS has issued for C and has successfully uploaded to the RS on behalf of C per the SDC workflow.</t>
            </li>
            <li>
              <t>"to_rs", used by C to provide the AS with information to relay to the RS, upon asking the AS to upload the access token to the RS per the SDC workflow. Its specific use with the OSCORE profile <xref target="RFC9203"/> is also described, as effectively enabling the use of the SDC workflow for that profile.</t>
            </li>
            <li>
              <t>"from_rs", used by the AS to provide C with information to relay from the RS, after the AS has successfully uploaded the access token to the RS per the SDC workflow. Its specific use with the OSCORE profile <xref target="RFC9203"/> is also described, as effectively enabling the use of the SDC workflow for that profile.</t>
            </li>
            <li>
              <t>"rs_cnf2", used by the AS to provide C with the public keys of the RSs in the group-audience for which the access token is issued (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>).</t>
            </li>
            <li>
              <t>"audience2", used by the AS to provide C with the identifiers of the RSs in the group-audience for which the access token is issued.</t>
            </li>
            <li>
              <t>"anchor_cnf", used by the AS to provide C with the public keys of trust anchors, which C can use to validate the public key of an RS (e.g., as provided in the "rs_cnf" parameter defined in <xref target="RFC9201"/> or in the "rs_cnf2" parameter defined in the present document).</t>
            </li>
            <li>
              <t>"token_series_id", used by the AS to provide C with the binary identifier of a token series and by C to ask the AS for a new access token in the same token series that dynamically updates access rights. A corresponding access token claim, namely "token_series_id", is also defined.</t>
            </li>
            <li>
              <t>"updated_rights", used by the AS to provide the RS with an indication that an access token uploaded per the SDC workflow is not the first one of a new token series, i.e., that the AS has issued the access token for dynamically updating the access rights of C.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>It extends the semantics of the "ace_profile" parameter for the OAuth 2.0 token endpoint at the authorization server defined in <xref target="RFC9200"/> (see <xref target="sec-updated-ace-profile-parameter"/> of the present document).</t>
        </li>
        <li>
          <t>It defines how C and the AS can coordinate on the exchange of the client's and resource server's public authentication credentials, when those can be transported by value or identified by reference in the access token request and response (see <xref target="sec-coord-exchanged-cred"/> of the present document).  </t>
          <t>
This extends the semantics of the "rs_cnf" parameter for the OAuth 2.0 token endpoint defined in <xref section="3.2" sectionFormat="of" target="RFC9201"/>. Therefore, it updates <xref target="RFC9201"/>.</t>
        </li>
        <li>
          <t>It extends the error handling at the AS, for which it defines a new error code that the AS can use for error responses sent to the client, after failing to verify the proof of possession of the client's private key when processing an access token request (see <xref target="sec-error-failed-pop"/> of the present document).</t>
        </li>
        <li>
          <t>It deprecates the original payload format of error responses that convey an error code, when CBOR is used to encode message payloads in the ACE framework. For such error responses, it defines a new payload format according to the problem-details format specified in <xref target="RFC9290"/> (see <xref target="sec-updated-error-responses"/> of the present document).  </t>
          <t>
In this respect, it also updates the profiles of the ACE framework defined in <xref target="RFC9202"/>, <xref target="RFC9203"/>, and <xref target="RFC9431"/>.</t>
        </li>
        <li>
          <t>It amends two of the requirements on profiles of the ACE framework originally compiled in <xref section="C" sectionFormat="of" target="RFC9200"/> (see <xref target="sec-updated-requirements"/> of the present document).</t>
        </li>
      </ul>
      <section anchor="terminology">
        <name>Terminology</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>Readers are expected to be familiar with the terms and concepts related to the ACE framework for Authentication and Authorization <xref target="RFC9200"/><xref target="RFC9201"/>, as well as with terms and concepts related to CBOR Web Tokens (CWTs) <xref target="RFC8392"/> and CWT Confirmation Methods <xref target="RFC8747"/>.</t>
        <t>The terminology for entities in the considered architecture is defined in OAuth 2.0 <xref target="RFC6749"/>. In particular, this includes client (C), resource server (RS), and authorization server (AS).</t>
        <t>Readers are also expected to be familiar with the terms and concepts related to CoAP <xref target="RFC7252"/>, Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, CBOR <xref target="RFC8949"/>, JavaScript Object Notation (JSON) <xref target="RFC8259"/>, and COSE <xref target="RFC9052"/><xref target="RFC9053"/>.</t>
        <t>Note that the term "endpoint" is used here following its OAuth definition <xref target="RFC6749"/>, aimed at denoting resources such as /token and /introspect at the AS, and /authz-info at the RS. The CoAP definition, which is "[a]n entity participating in the CoAP protocol" <xref target="RFC7252"/>, is not used in this document.</t>
        <t>Furthermore, this document uses the following terms.</t>
        <ul spacing="normal">
          <li>
            <t>Token series: a set of access tokens, all of which are bound to the same proof-of-possession (PoP) key and are sequentially issued by the same AS for the same pair (client, audience) per the same profile of ACE. A token series ends when the latest access token of that token series becomes invalid (e.g., when it expires or gets revoked).  </t>
            <t>
Profiles of ACE can provide their extended and specialized definition, e.g., by further taking into account the public authentication credentials of C and the RS.</t>
          </li>
          <li>
            <t>Token hash: identifier of an access token, in binary format encoding. The token hash has no relation with other access token identifiers possibly used, such as the 'cti' (CWT ID) claim of CWTs <xref target="RFC8392"/>.</t>
          </li>
        </ul>
        <t>This document uses the acronym LAKE, expanded to Lightweight Authenticated Key Exchange, to denote the protocol specified as EDHOC in <xref target="RFC9528"/>. Identifiers defined literally in <xref target="RFC9528"/> or in IANA registries (e.g., the names of the EDHOC registries themselves) are unchanged.</t>
      </section>
      <section anchor="notations">
        <name>Notations</name>
        <t>CBOR <xref target="RFC8949"/> and CDDL <xref target="RFC8610"/> are used in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the parameters' keys and values.</t>
        <t>In the CBOR diagnostic notation used in this document, constructs of the form e'SOME_NAME' are replaced by the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. For example, {e'audience2' : ["rs1", "rs2"]} stands for {54 : ["rs1", "rs2"]}.</t>
        <t>Note to RFC Editor: Please delete the paragraph immediately preceding this note. Also, in the CBOR diagnostic notation used in this document, please replace the constructs of the form e'SOME_NAME' with the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. Finally, please delete this note.</t>
      </section>
    </section>
    <section anchor="sec-workflow">
      <name>The Short Distribution Chain (SDC) Workflow</name>
      <t>As defined in <xref section="4" sectionFormat="of" target="RFC9200"/>, the ACE framework relies on its basic protocol workflow shown in <xref target="fig-old-workflow"/>.</t>
      <t>That is, the client first sends an access token request to the token endpoint at the AS (Step A), specifying permissions that it seeks to obtain for accessing protected resources at the RS, possibly together with information on its own public authentication credential.</t>
      <t>Then, if the request is successfully verified, authenticated, and authorized, the AS replies to the client with an access token response (Step B), providing an access token and possibly additional parameters as access information including the actually granted permissions.</t>
      <t>Finally, the client uploads the access token to the RS and, consistent with the permissions granted according to the access token, accesses a resource at the RS (Step C), which replies with the result of the resource access (Step F). Details about what protocol the client and the RS use to establish a secure association, mutually authenticate, and secure their communications are defined in the specific profile of ACE used, such as <xref target="RFC9202"/>, <xref target="RFC9203"/>, <xref target="RFC9431"/>, <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>, or <xref target="I-D.ietf-ace-group-oscore-profile"/>.</t>
      <t>Further interactions are possible between the AS and the RS, i.e., the exchange of an introspection request and response where the AS validates a previously issued access token for the RS (Steps D and E).</t>
      <figure anchor="fig-old-workflow">
        <name>ACE Basic Protocol Workflow.</name>
        <artwork><![CDATA[
+--------+                               +---------------+
|        |---(A)-- Token Request ------->|               |
|        |                               | Authorization |
|        |<--(B)-- Access Token ---------|    Server     |
|        |    + Access Information       |               |
|        |    + Refresh Token (optional) +---------------+
|        |                                      ^ |
|        |            Introspection Request  (D)| |
| Client |                         Response     | |(E)
|        |            (optional exchange)       | |
|        |                                      | v
|        |                               +--------------+
|        |---(C)-- Token + Request ----->|              |
|        |                               |   Resource   |
|        |<--(F)-- Protected Resource ---|    Server    |
|        |                               |              |
+--------+                               +--------------+
]]></artwork>
      </figure>
      <t>This section defines the alternative Short Distribution Chain (SDC) workflow shown in <xref target="fig-new-workflow"/>, which <bcp14>MAY</bcp14> be supported by the AS. Unlike in the original workflow defined in <xref target="RFC9200"/>, the AS uploads the access token to the RS on behalf of the client and then informs the client about the outcome.</t>
      <t>If the token uploading has been successfully completed, the client typically does not need to obtain the access token from the AS altogether. That is, the client simply establishes a secure association with the RS (if that has not happened already) and then accesses protected resources at the RS, according to the permissions granted per the access token and specified by the AS as access information.</t>
      <figure anchor="fig-new-workflow">
        <name>ACE Short Distribution Chain (SDC) Workflow.</name>
        <artwork><![CDATA[
+--------+                               +----------------------------+
|        |---(A)-- Token Request ------->|                            |
|        |                               |       Authorization        |
|        |<--(B)-- Token Response -------|           Server           |
|        |    + Access Information       |                            |
|        |    + Access Token (optional)  +----------------------------+
|        |    + Refresh Token (optional)   ^ |         | ^
|        |                                 | |         | | Token-Upload
|        |        Introspection Request (D)| |     (A1)| |      Request
| Client |                     Response    | |(E)      | |(A2) Response
|        |        (optional exchange)      | |         | |
|        |                                 | v         v |
|        |                               +----------------------------+
|        |---(C1)-- Token (Optional) --->|                            |
|        |                               |                            |
|        |---(C2)-- Protected Request -->|          Resource          |
|        |                               |           Server           |
|        |<--(F)--- Protected Resource --|                            |
|        |                               |                            |
+--------+                               +----------------------------+
]]></artwork>
      </figure>
      <t>More specifically, the SDC workflow consists of the following steps.</t>
      <ul spacing="normal">
        <li>
          <t>Step A - Like in the original workflow, the client sends an access token request to the token endpoint at the AS, with the additional indication that it opts in to use the SDC workflow.  </t>
          <t>
As defined in <xref target="sec-token_upload-req"/>, this indication is provided to the AS by means of the "token_upload" parameter included in the access token request. The parameter also specifies what the AS has to return in the access token response at Step B, following a successful uploading of the access token from the AS to the RS.</t>
        </li>
        <li>
          <t>Step A1 - This new step consists of the AS uploading the access token to the RS, typically at the authz-info endpoint, just like the client does in the original workflow.</t>
        </li>
        <li>
          <t>Step A2 - This new step consists of the RS replying to the AS, following the uploading of the access token at Step A1.</t>
        </li>
        <li>
          <t>Step B - In the access token response, the AS informs the client that it has attempted to upload the access token to the RS, specifying the outcome of the token uploading based on the reply received from the RS at Step A2.  </t>
          <t>
As defined in <xref target="sec-token_upload-resp"/>, this information is provided to the client by means of the "token_upload" parameter included in the access token response. If the token uploading has failed, the access token response also includes the access token. Otherwise, the access token response includes information consistent with what was specified by the "token_upload" parameter of the access token request at Step A.</t>
        </li>
        <li>
          <t>Step C1 - This step occurs if the token uploading from the AS has failed, and the AS has provided the client with the access token at Step B. In such a case, the client uploads the access token to the RS just like at Step C of the original workflow.</t>
        </li>
        <li>
          <t>Step C2 - The client attempts to access a protected resource at the RS, according to the permissions granted per the access token and specified by the AS as access information at Step B.</t>
        </li>
        <li>
          <t>Steps D, E, and F are like in the original workflow.</t>
        </li>
      </ul>
      <t>The SDC workflow has no ambition to replace the original workflow defined in <xref target="RFC9200"/>. The AS can use one workflow or the other, depending, for example, on the specific RS for which the access token has been issued and the nature of the communication leg with that RS.</t>
      <t>When using the SDC workflow, all the communications between the AS and the RS <bcp14>MUST</bcp14> be protected, consistent with Sections <xref target="RFC9200" section="5.8.4.3" sectionFormat="bare"/> and <xref target="RFC9200" section="6.5" sectionFormat="bare"/> of <xref target="RFC9200"/>. Unlike in the original workflow, this results in protecting also the uploading of the first access token in a token series, i.e., in addition to the uploading of the following access tokens in the token series for dynamically updating the access rights of the client.</t>
      <t>The SDC workflow is also suitable for deployments where clients are not aware of details such as the need for access tokens to be issued by the AS and uploaded at the RS. Consistent with the intended access policies, the AS can be configured to automatically issue access tokens for such clients and upload those access tokens to the RS. This means that such clients do not have to request for an access token to be issued in the first place. That is, they can immediately send requests to the RS for accessing its protected resources, in accordance with the access tokens already issued and uploaded by the AS.</t>
      <section anchor="sec-as-token-upload">
        <name>Token Upload</name>
        <t>When using the original workflow defined in <xref target="RFC9200"/>, there are two typical cases concerning the upload of the access token to the RS from C.</t>
        <ul spacing="normal">
          <li>
            <t>The first case consists in the upload of the first access token in a token series. While details depend on the specific profile of ACE used, such an access token is typically uploaded through an unprotected POST request to the authz-info endpoint.</t>
          </li>
          <li>
            <t>The second case consists in the upload of an access token that is not the first of its token series, i.e., the AS has issued the access token for dynamically updating the access rights of C.  </t>
            <t>
The intent is also for C and the RS to preserve the same secure communication association that they currently share and that is associated with the token series in question.  </t>
            <t>
Such an access token is uploaded through a POST request to the authz-info endpoint, which is protected by means of the secure communication association that is shared between C and the RS. If the new access token is accepted by the RS, the new access token supersedes the one currently stored for the token series in question, and it becomes associated with the corresponding secure communication association that is shared between C and the RS.</t>
          </li>
        </ul>
        <t>However, if the AS uploads the access token to the RS on behalf of C as per the SDC workflow, the upload of the access token always rely on a protected POST request from the AS to the authz-info endpoint. In particular, the request is protected with the secure communication association shared between the AS and the RS.</t>
        <t>When receiving a POST request to the authz-info endpoint that is specifically protected through the secure communication association shared with the AS, the RS proceeds as follows. In particular, the RS leverages the explicit indication provided by the AS through the "updated_rights" parameter defined in <xref target="sec-updated_rights"/>, which is included in the request in the case of dynamic update of access rights.</t>
        <ul spacing="normal">
          <li>
            <t>If the POST request does not include the "updated_rights" parameter, the access token in question is the first one in a token series. Consequently, the RS processes the request and the access token therein like it would when receiving the request from C and according to the specific profile of ACE used.</t>
          </li>
          <li>
            <t>If the POST request includes the "updated_rights" parameter encoding a specific value, the access token in question is not the first one in a token series, i.e., it is meant to dynamically update the access rights of C, while preserving the same secure communication association that is shared between C and the RS. The POST request and its processing at the RS in this case are defined in <xref target="sec-updated_rights"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-parameters">
      <name>New Parameters</name>
      <t>The rest of this section defines a number of additional parameters and encodings for the OAuth 2.0 token endpoint at the AS (see <xref section="5.8" sectionFormat="of" target="RFC9200"/>) and for the OAuth 2.0 authz-info endpoint at the RS (see <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>).</t>
      <section anchor="sec-token_upload">
        <name>token_upload</name>
        <t>This section defines the additional "token_upload" parameter. The parameter can be used in an access token request sent by C to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), as well as in the access token response sent as a reply by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>).</t>
        <section anchor="sec-token_upload-req">
          <name>In the Access Token Request</name>
          <t>The "token_upload" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token request. The presence of this parameter indicates that C opts in to use the SDC workflow defined in <xref target="sec-workflow"/>, whose actual use for uploading the issued access token to the RS is an exclusive prerogative of the AS.</t>
          <t>This parameter can take one of the following integer values. When the access token request is encoded in CBOR, those values are encoded as CBOR unsigned integers. The value of the parameter determines whether the follow-up access token response will have to include certain information, in the case that the AS has successfully uploaded the issued access token to the RS.</t>
          <ul spacing="normal">
            <li>
              <t>0: The access token response will have to include neither the access token nor its corresponding token hash.  </t>
              <t>
Note that it is not useful to specify the value 0 if C wishes to use the method defined in <xref target="RFC9770"/> for receiving notifications about revoked access tokens from the AS. In such case, C needs to specify one of the two alternative values 1 or 2 defined below.</t>
            </li>
            <li>
              <t>1: The access token response will have to include the token hash corresponding to the access token, but not the access token.</t>
            </li>
            <li>
              <t>2: The access token response will have to include the access token, but not the corresponding token hash.</t>
            </li>
          </ul>
          <t>If the AS supports the SDC workflow and the access token request includes the "token_upload" parameter with value 0, 1, or 2, then the AS <bcp14>MAY</bcp14> use the SDC workflow to upload the access token to the RS on behalf of C. Otherwise, following that access token request, the AS <bcp14>MUST NOT</bcp14> use the SDC workflow.</t>
        </section>
        <section anchor="sec-token_upload-resp">
          <name>In the Access Token Response</name>
          <t>The "token_upload" parameter <bcp14>MUST</bcp14> be included in an access token response, if both the following conditions apply. Otherwise, the "token_upload" parameter <bcp14>MUST NOT</bcp14> be included.</t>
          <ul spacing="normal">
            <li>
              <t>The corresponding access token request from C included the "token_upload" parameter, with value 0, 1, or 2.</t>
            </li>
            <li>
              <t>The AS has attempted to upload an access token to the RS as per the SDC workflow, irrespective of the result of the token upload.</t>
            </li>
          </ul>
          <t>The following considers three possible cases, with reference to the issued access token pertaining to the access token response:</t>
          <ul spacing="normal">
            <li>
              <t>CASE_1 - The issued access token is the first one of a new token series, aligned with the access token request that asked to issue the first access token of a new token series.</t>
            </li>
            <li>
              <t>CASE_2 - The issued access token is not the first one in a token series, aligned with the access token request that asked to dynamically update the access rights of C, i.e., to issue a new access token of an existing token series. <xref target="sec-updated_rights"/> further describes this case.</t>
            </li>
            <li>
              <t>CASE_3 - The issued access token is the first one of a new token series, although the access token request asked to dynamically update the access rights of C, i.e., to issue a new access token of an existing token series.  </t>
              <t>
The new token series to which the issued access token belongs is created by the AS "on the fly", when receiving the specific error code "missing_old_token" from the RS (see <xref target="sec-updated_rights-rs"/> and <xref target="sec-updated_rights-as"/>), after uploading an access token intended for updating the access rights of C as indicated in the access token request.  </t>
              <t>
In this case, the AS does not upload the issued access token at the RS, and it provides the access token to C in the access token response. <xref target="sec-new-series-on-the-fly"/> further describes this case.</t>
            </li>
          </ul>
          <t>When the "token_upload" parameter is included in the access token response, it can take one of the following integer values. When the access token response is encoded in CBOR, those values are encoded as CBOR unsigned integers.</t>
          <ul spacing="normal">
            <li>
              <t>If CASE_1 or CASE_2 applies and the token upload at the RS was successful, then the "token_upload" parameter <bcp14>MUST</bcp14> encode the value 0.</t>
            </li>
            <li>
              <t>If CASE_1 or CASE_2 applies and the token upload at the RS was not successful, then the "token_upload" parameter <bcp14>MUST</bcp14> encode the value 1.</t>
            </li>
            <li>
              <t>If CASE_3 applies, then the "token_upload" parameter <bcp14>MUST</bcp14> encode the value 2.</t>
            </li>
          </ul>
          <t>When the access token targets a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), the same as above holds, with the following differences:</t>
          <ul spacing="normal">
            <li>
              <t>If CASE_1 or CASE_2 applies, the access token response includes the "token_upload" parameter encoding the value 0 and thus indicates that the token upload was successful, if and only if the token upload was successful at each RS in the group-audience.</t>
            </li>
            <li>
              <t>In the case that the token upload fails at an RS in the group-audience, the AS <bcp14>MUST</bcp14> continue uploading the access token at the remaining RSs in the group-audience, with the following exception: if the access token is uploaded together with the "updated_rights" parameter (see <xref target="sec-updated_rights"/>) and the token upload fails with the AS receiving an error response that includes the error code "missing_old_token" (see <xref target="sec-updated_rights-rs"/> and <xref target="sec-updated_rights-as"/>), then the AS <bcp14>MUST NOT</bcp14> upload the access token to any remaining RS in the group-audience and it creates a new token series "on the fly" (see <xref target="sec-new-series-on-the-fly"/>), i.e., CASE_3 applies.</t>
            </li>
          </ul>
          <t>In the case that the "token_upload" parameter encodes the value 1 or 2, the access token response <bcp14>MUST</bcp14> include the "access_token" parameter specifying the issued access token.</t>
          <t>Instead, in the case that the "token_upload" parameter encodes the value 0, the access token response can include additional parameters as defined below, depending on the value of the "token_upload" parameter in the corresponding access token request:</t>
          <ul spacing="normal">
            <li>
              <t>If the "token_upload" parameter in the access token request specified the value 0, then the access token response <bcp14>MUST NOT</bcp14> include the "access_token" parameter and <bcp14>MUST NOT</bcp14> include the "token_hash" parameter defined in <xref target="sec-token_hash"/>.</t>
            </li>
            <li>
              <t>If the "token_upload" parameter in the access token request specified the value 1, then the access token response <bcp14>MUST NOT</bcp14> include the "access_token" parameter and <bcp14>MUST</bcp14> include the "token_hash" parameter defined in <xref target="sec-token_hash"/>, specifying the hash corresponding to the issued access token and computed as defined in <xref target="sec-token_hash"/>.</t>
            </li>
            <li>
              <t>If the "token_upload" parameter in the access token request specified the value 2, then the access token response <bcp14>MUST</bcp14> include the "access_token" parameter specifying the issued access token and <bcp14>MUST NOT</bcp14> include the "token_hash" parameter defined in <xref target="sec-token_hash"/>.</t>
            </li>
          </ul>
          <t>When C receives an access token response that includes the "token_upload" parameter encoding the value 2 (see <xref target="sec-new-series-on-the-fly"/>), the AS is explicitly telling C that:</t>
          <ul spacing="normal">
            <li>
              <t>The dynamic update of access rights that was asked through the access token request did not succeed.</t>
            </li>
            <li>
              <t>The RS does not store an old access token belonging to the token series that C asked to extend.  </t>
              <t>
Profiles of ACE typically prescribe that, in such case, the RS does not have anymore the secure communication association that was previously shared with C and bound to such old access token.</t>
            </li>
            <li>
              <t>The issued access token is the first one of a new token series.</t>
            </li>
          </ul>
          <t>Consequently, C takes the next steps with the RS according to the profile of ACE used, e.g., C establishes a secure communication association with the RS and bound to the issued access token of the new token series.</t>
          <t>When the access token targets a group-audience, the RS that does not store an old access token is the RS that replied to the AS with an error response including the error code "missing_old_token", which results in the AS creating a new token series "on the fly" (see above). In such case, C takes the next steps with all the RSs in the group-audience according to the profile of ACE used, e.g., C establishes a secure communication association with each RS in the group-audience and bound to the issued access token of the new token series.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <t><xref target="fig-example-AS-to-C-token-upload"/> shows an example, with first an access token request from C to the AS and then an access token response from the AS to C, following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 0. That is, C indicates that it requires neither the access token nor the corresponding token hash from the AS, in the case that the AS successfully uploads the access token to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes neither the access token nor its corresponding token hash. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-upload">
            <name>Example of Access Token Request-Response Exchange. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter but not the access token, which is bound to a symmetric key and was uploaded to the RS by the AS.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 0
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
      e'token_upload' : 0,
     / expires_in / 2 : 3600,
     / cnf /        8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
          <t><xref target="fig-example-AS-to-C-token-upload-success-ret-token"/> shows another example, with first an access token request from C to the AS and then an access token response from the AS to C, also following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 2. That is, C indicates that it requires the access token from the AS, even in the case that the AS successfully uploads the access token to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes the "access_token" parameter specifying the issued access token. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-upload-success-ret-token">
            <name>Example of Access Token Request-Response Exchange. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter as well as the "access_token" parameter conveying the access token, which is bound to a symmetric key and was uploaded to the RS by the AS.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 2
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
        e'token_upload' : 0,
     / access_token / 1 : h'd08343a1...4819',
       / (full CWT elided for brevity;
          CWT contains the symmetric PoP key in the "cnf" claim) /
     / expires_in /   2 : 3600,
     / cnf /          8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
          <t><xref target="fig-example-AS-to-C-token-upload-failed"/> shows another example, with first an access token request from C to the AS and then an access token response from the AS to C, also following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 0. That is, C indicates that it requires neither the access token nor the corresponding token hash from the AS, in the case that the AS successfully uploads the access token to the RS.</t>
          <t>In this example, the access token response includes the "token_upload" parameter with value 1, which indicates that the AS has attempted and failed to upload the access token to the RS on behalf of C. The access token response also includes the "access_token" parameter specifying the issued access token, together with the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <t>Note that, even though the AS has failed to upload the access token to the RS, the response code 2.01 (Created) is used when replying to C, since the access token request as such has been successfully processed at the AS, with the following issue of the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-upload-failed">
            <name>Example of Access Token Request-Response Exchange. Following a failed uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter with value 1 as well the "access_token" parameter conveying the access token bound to a symmetric key.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 0
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
        e'token_upload' : 1,
     / access_token / 1 : h'd08343a1...4819',
       / (full CWT elided for brevity;
          CWT contains the symmetric PoP key in the "cnf" claim) /
     / expires_in /   2 : 3600,
     / cnf /          8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-token_hash">
        <name>token_hash</name>
        <t>This section defines the additional "token_hash" parameter. The parameter can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <t>The following refers to the base64url encoding without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>) and denotes as "binary representation" of a text string the corresponding UTF-8 encoding <xref target="RFC3629"/>, which is the implied charset used in JSON (see <xref section="8.1" sectionFormat="of" target="RFC8259"/>).</t>
        <t>The "token_hash" parameter <bcp14>MUST</bcp14> be included in an access token response, if both the following conditions apply. Otherwise, it <bcp14>MUST NOT</bcp14> be included.</t>
        <ul spacing="normal">
          <li>
            <t>The corresponding access token request included the "token_upload" parameter with value 1 (see <xref target="sec-token_upload-req"/>).</t>
          </li>
          <li>
            <t>The access token response includes the "token_upload" parameter with value 0 (see <xref target="sec-token_upload-resp"/>). That is, the AS has successfully uploaded the issued access token to the RS, as per the SDC workflow.</t>
          </li>
        </ul>
        <t>This parameter specifies the token hash corresponding to the access token issued by the AS and successfully uploaded to the RS on behalf of C. In particular:</t>
        <ul spacing="normal">
          <li>
            <t>If the access token response is encoded in CBOR, then the "token_hash" parameter is a CBOR byte string, with value the token hash.</t>
          </li>
          <li>
            <t>If the access token response is encoded in JSON, then the "token_hash" parameter has as value the base64url-encoded text string that encodes the token hash.</t>
          </li>
        </ul>
        <t>The AS computes the token hash as defined in <xref target="sec-token-hash-output"/>.</t>
        <section anchor="sec-token-hash-output">
          <name>Computing the Token Hash</name>
          <t>The AS computes the token hash over the value that the "access_token" parameter would have had in the same access token response, if it was included therein and specifying the access token.</t>
          <t>In particular, the input HASH_INPUT over which the token hash is computed is determined as follows.</t>
          <ul spacing="normal">
            <li>
              <t>If the access token response is encoded in CBOR, then:  </t>
              <ul spacing="normal">
                <li>
                  <t>BYTES denotes the value of the CBOR byte string that would be conveyed by the "access_token" parameter, if this was included in the access token response.</t>
                </li>
                <li>
                  <t>HASH_INPUT_TEXT is the base64url-encoded text string that encodes BYTES.</t>
                </li>
                <li>
                  <t>HASH_INPUT is the binary representation of HASH_INPUT_TEXT.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>If the access token response is encoded in JSON, then HASH_INPUT is the binary representation of the text string that would be conveyed by the "access_token" parameter, if this was included in the access token response.</t>
            </li>
          </ul>
          <t>Once determined HASH_INPUT as defined above, a hash value of HASH_INPUT is generated as per <xref section="6" sectionFormat="of" target="RFC6920"/>. The resulting output in binary format is used as the token hash. Note that the used binary format embeds the identifier of the used hash function in the first byte of the computed token hash.</t>
          <t>The specific hash function used <bcp14>MUST</bcp14> be collision resistant on byte strings and <bcp14>MUST</bcp14> be selected from the "Named Information Hash Algorithm Registry" <xref target="Hash.Algorithms"/>. Consistent with the compliance requirements in <xref section="2" sectionFormat="of" target="RFC6920"/>, the hash function sha-256 as specified in <xref target="SHA-256"/> is mandatory to implement.</t>
          <t>The computation of token hashes defined above is aligned with that specified for the computation of token hashes in <xref section="4" sectionFormat="of" target="RFC9770"/>, where they are used as identifiers of revoked access tokens. Therefore, given a hash algorithm and an access token, the AS computes the same corresponding token hash in either case.</t>
          <t>If the AS supports the method specified in <xref target="RFC9770"/>, then the AS <bcp14>MUST</bcp14> use the same hash algorithm for computing both the token hashes to include in the "token_hash" parameter and the token hashes computed per that method to identify revoked access tokens.</t>
        </section>
        <section anchor="example">
          <name>Example</name>
          <t><xref target="fig-example-AS-to-C-token-hash"/> shows an example, with first an access token request from C to the AS and then an access token response from the AS to C, following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 1. That is, C indicates that it requires the token hash corresponding to the access token from the AS, in the case that the AS successfully uploads the access token to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes the "token_hash" parameter, which specifies the token hash corresponding to the issued access token. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-hash">
            <name>Example of Access Token Request-Response Exchange. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter as well as the "token_hash" parameter. The "token_hash" parameter conveys the token hash corresponding to the issued access token, which is bound to a symmetric key and was uploaded to the RS by the AS.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 1
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
      e'token_upload' : 0,
        e'token_hash' : h'0153269057e12fe2b74ba07c892560a2d7
                          53877eb62ff44d5a19002530ed97ffe4',
     / expires_in / 2 : 3600,
     / cnf /        8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-to_rs-from_rs">
        <name>to_rs and from_rs</name>
        <t>The rest of this section defines the additional parameters "to_rs" (see <xref target="sec-to_rs"/>) and "from_rs" (see <xref target="sec-from_rs"/>).</t>
        <t>The "to_rs" parameter can be used in an access token request sent by C to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>). The "from_rs" parameter can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <t>The semantics and encoding of the information specified in the two parameters depend on the specific profile of ACE and application used.</t>
        <t>For instance, when using the OSCORE profile <xref target="RFC9203"/>, C and RS can use the two parameters to exchange the expected nonces and identifiers via the AS. <xref target="sec-to_rs-from_rs-oscore-profile"/> describes how the two parameters are used when the OSCORE profile is used, thereby effectively enabling the use of the SDC workflow for that profile.</t>
        <section anchor="sec-to_rs">
          <name>to_rs</name>
          <t>The "to_rs" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token request. The presence of this parameter indicates that C wishes the AS to relay the information specified therein to the RS, when the AS uploads the issued access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/>.</t>
          <t>The "to_rs" parameter <bcp14>MUST NOT</bcp14> be included if the "token_upload" parameter defined in <xref target="sec-token_upload"/> is not included in the access token request. Also, this parameter <bcp14>MUST NOT</bcp14> be included if the requested access token is not the first one of a new token series, i.e., if C is asking the AS for a new access token in the same token series that dynamically updates access rights.</t>
          <t>The information specified in the "to_rs" parameter consists in what C would provide to the RS in addition to the access token, if the original workflow was used and a POST request encoded in CBOR was sent to the authz-info endpoint at the RS.</t>
          <t>When composing the parameter "to_rs", C considers the same information and <bcp14>MUST</bcp14> wrap it in a data structure STRUCT, by using the same method that it employs when using the original workflow. For example, with reference to the OSCORE profile of ACE <xref target="RFC9203"/>, such a method composes STRUCT as a CBOR map, which has to be sent as payload of a request with Content-Format "application/ace+cbor".</t>
          <t>After that, C builds a CBOR byte string STR, whose value is the binary representation of STRUCT.</t>
          <t>If and only if the request to the authz-info endpoint has to be sent with a Content-Format ct different from the one employed in the profile of ACE used, then C <bcp14>MUST</bcp14> tag the CBOR byte string STR (see <xref section="3.4" sectionFormat="of" target="RFC8949"/>). The tag number TN <bcp14>MUST</bcp14> be the one associated with the Content-Format ct and is determined according to the technique described in <xref section="B" sectionFormat="of" target="RFC9277"/>. For example, the Content-Format "application/ace+cbor" has Content-Format ID 19 and therefore has 1668546836 as its associated tag number.</t>
          <t>When the access token request is encoded in CBOR, the value of the "to_rs" parameter is the (tagged) CBOR byte string STR.</t>
          <t>When the access token request is encoded in JSON, the value of the "to_rs" parameter is a text string, which encodes the binary representation of the (tagged) CBOR byte string STR in base64url without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>).</t>
          <t>If the "to_rs" parameter is included, the AS proceeds as follows when composing the POST request to send to the authz-info endpoint on behalf of C:</t>
          <ol spacing="normal" type="1"><li>
              <t>The AS sets the Content-Format of the request to be either:  </t>
              <ul spacing="normal">
                <li>
                  <t>the one employed in the profile of ACE used, if the CBOR byte string STR conveyed by the "to_rs" parameter is not tagged; or, otherwise,</t>
                </li>
                <li>
                  <t>the one associated with the tag number TN of the tagged CBOR byte string STR conveyed by the "to_rs" parameter.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The AS retrieves the structure STRUCT from STR and extends STRUCT by adding the issued access token, consistent with the profile of ACE used and the Content-Format determined at the previous step.  </t>
              <t>
For example, when using the OSCORE profile of ACE <xref target="RFC9203"/> and thus the Content-Format to use is "application/ace+cbor", STRUCT is a CBOR map and the access token is included therein as an entry that has: as map key, 1 encoded as a CBOR integer; as map value, a CBOR byte string whose value is the binary representation of the access token.</t>
            </li>
          </ol>
          <t>Clearly, performing the two steps above requires the AS to understand the structure STRUCT and its semantics. In turn, such an understanding builds on the AS supporting the profile of ACE used and the Content-Format to use as determined at Step 1. In the expected cases, the AS is realistically able to perform the two steps. If the AS finds itself unable to perform the two steps, then the AS would simply not upload the access token to the RS on behalf of C. In such a case, the AS replies to C with an access token response, which includes the "access_token" parameter specifying the issued access token and does not include the "token_upload" parameter (see <xref target="sec-token_upload"/>).</t>
          <t>Tagging the CBOR byte string as defined above ensures that the AS can relay the information specified in the "to_rs" parameter as intended by C, i.e., by sending to the authz-info endpoint a POST request that has the correct Content-Format and conveys the correct payload.</t>
          <t>As a case in point, using the DTLS profile of ACE <xref target="RFC9202"/> typically results in a POST request to the authz-info endpoint with Content-Format "application/cwt", as per <xref section="5.10" sectionFormat="of" target="RFC9200"/>. However, the DTLS profile of ACE can be combined with application profiles of <xref target="RFC9594"/>. In such a case, the POST request might convey both the access token and additional parameters from C (e.g., "sign_info" defined in <xref section="3.3" sectionFormat="of" target="RFC9594"/>), which requires the request to have Content-Format "application/ace+cbor" (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>).</t>
        </section>
        <section anchor="sec-from_rs">
          <name>from_rs</name>
          <t>The "from_rs" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response. The presence of this parameter indicates that the AS is relaying the information specified therein to C, which the AS has received from the RS after having successfully uploaded the access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/>.</t>
          <t>The "from_rs" parameter <bcp14>MUST</bcp14> be included in an access token response if both the following conditions apply. Otherwise, it <bcp14>MUST NOT</bcp14> be included.</t>
          <ul spacing="normal">
            <li>
              <t>The corresponding access token request included the "token_upload" parameter (see <xref target="sec-token_upload-req"/>).</t>
            </li>
            <li>
              <t>The access token response includes the "token_upload" parameter with value 0 (see <xref target="sec-token_upload-resp"/>). That is, the AS has successfully uploaded the issued access token to the RS, as per the SDC workflow.</t>
            </li>
          </ul>
          <t>The information specified in the "from_rs" parameter consists in what C would receive from the RS, if the original workflow was used and the RS sent a successful response encoded in CBOR, in reply to a POST request to the authz-info endpoint.</t>
          <t>When composing the parameter "from_rs", the AS builds a CBOR byte string STR as follows:</t>
          <ul spacing="normal">
            <li>
              <t>If the successful response from the authz-info endpoint does not include a payload, then STR is the empty CBOR byte string (0x40); otherwise,</t>
            </li>
            <li>
              <t>The value of STR is the payload of the successful response from the authz-info endpoint.  </t>
              <t>
If and only if the response specifies a given Content-Format ct (i.e., by means of the CoAP Content-Format Option), then the AS <bcp14>MUST</bcp14> tag the CBOR byte string STR (see <xref section="3.4" sectionFormat="of" target="RFC8949"/>). The tag number TN <bcp14>MUST</bcp14> be the one associated with the Content-Format ct and is determined according to the technique described in <xref section="B" sectionFormat="of" target="RFC9277"/>.</t>
            </li>
          </ul>
          <t>When the access token response is encoded in CBOR, the value of the "from_rs" parameter is the (tagged) CBOR byte string STR.</t>
          <t>When the access token response is encoded in JSON, the value of the "from_rs" parameter is a text string, which encodes the binary representation of the (tagged) CBOR byte string STR in base64url without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>).</t>
          <t>When C receives from the AS the access token response specifying the "token_upload" parameter with value 0, C retrieves from the "from_rs" parameter the information relayed by the AS, just like when retrieving that information from a successful response with Content-Format ct that C receives from the RS when using the original workflow.</t>
          <t>In particular, if the CBOR byte string STR is not the empty CBOR byte string (0x40), C considers as the Content-Format ct either:</t>
          <ul spacing="normal">
            <li>
              <t>the one employed in the profile of ACE used, if the CBOR byte string STR conveyed by the "from_rs" parameter is not tagged; or, otherwise,</t>
            </li>
            <li>
              <t>the one associated with the tag number TN of the tagged CBOR byte string STR conveyed by the "from_rs" parameter.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-to_rs-from_rs-oscore-profile">
          <name>Use with the OSCORE Profile</name>
          <t>This section describes how to use the parameters "to_rs" and "from_rs" when the OSCORE profile of ACE <xref target="RFC9203"/> is used.</t>
          <t>Within the access token request from C to the AS, the value of the "to_rs" parameter is a CBOR byte string, whose value is the binary representation of a CBOR map C_MAP composed of two fields:</t>
          <ul spacing="normal">
            <li>
              <t>A field with the CBOR integer 40 as map key and with value the nonce N1 generated by C, encoded as a CBOR byte string (see <xref section="4.1" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
            <li>
              <t>A field with the CBOR integer 43 as map key and with value the Recipient ID ID1 generated by C, encoded as a CBOR byte string (see <xref section="4.1" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
          </ul>
          <t>When building the POST request for uploading the access token to the authz-info endpoint at the RS, the AS sets the Content-Format of the request to "application/ace+cbor" and composes the request payload as specified in <xref section="4.1" sectionFormat="of" target="RFC9203"/>. In particular, the CBOR map specified as payload includes:</t>
          <ul spacing="normal">
            <li>
              <t>The "access_token" field, with value the access token to upload encoded as a CBOR byte string and with the CBOR integer 1 as map key.</t>
            </li>
            <li>
              <t>The "nonce1" field, with value the same CBOR byte string specified by the field of C_MAP that has the CBOR integer 40 as map key.</t>
            </li>
            <li>
              <t>The "ace_client_recipientid" field, with value the same CBOR byte string specified by the field of C_MAP that has the CBOR integer 43 as map key.</t>
            </li>
          </ul>
          <t>If the upload of the access token to the RS from the AS is successful, the RS replies to the AS with a 2.01 (Created) response, which has Content-Format "application/ace+cbor" and whose payload is a CBOR map RS_MAP that includes:</t>
          <ul spacing="normal">
            <li>
              <t>The "nonce2" field, with value the nonce N2 generated by the RS, encoded as a CBOR byte string (see <xref section="4.2" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
            <li>
              <t>The "ace_server_recipientid" field, with value the Recipient ID ID2 generated by the RS, encoded as a CBOR byte string (see <xref section="4.2" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
          </ul>
          <t>Within the access token response from the AS to C, the value of the "from_rs" parameter is a CBOR byte string, whose value is the binary representation of a CBOR map composed of two elements:</t>
          <ul spacing="normal">
            <li>
              <t>A field with the CBOR integer 42 as map key and with value the same CBOR byte string specified by the "nonce2" field of RS_MAP.</t>
            </li>
            <li>
              <t>A field with the CBOR integer 44 as map key and with value the same CBOR byte string specified by the "ace_server_recipientid" field of RS_MAP.</t>
            </li>
          </ul>
          <t>When C receives from the AS the access token response specifying the "token_upload" parameter with value 0, C retrieves the nonce N2 and the Recipient ID ID2 from the "from_rs" parameter, just like when retrieving those from the payload of a 2.01 (Created) response received from the RS when using the original workflow.</t>
          <t><xref target="fig-example-AS-to-C-token-upload-oscore-profile"/> shows an example where the OSCORE profile is used, with first an access token request from C to the AS and then an access token response from the AS to C, following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 0. That is, C indicates that it requires neither the access token nor the corresponding token hash from the AS, in the case that the AS successfully uploads the access token to the RS. Also, the access token request includes the "to_rs" parameter, specifying the values of N1 = 0x018a278f7faab55a and ID1 = 0x1645 intended to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes neither the access token nor its corresponding token hash. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token, as an OSCORE_Input_Material object (see <xref section="3.2.1" sectionFormat="of" target="RFC9203"/>). Also, the access token response includes the "from_rs" parameter, specifying the values of N2 = 0x25a8991cd700ac01 and ID2 = 0x0000 received from the RS and intended to C.</t>
          <figure anchor="fig-example-AS-to-C-token-upload-oscore-profile">
            <name>Example of Access Token Request-Response Exchange where the OSCORE Profile is Used. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter but not the access token, which is bound to a symmetric key and was uploaded to the RS by the AS. C and the RS exchange N1, ID1, N2, and ID2 via the AS by means of the parameters "to_rs" and "from_rs".</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 0,
            e'to_rs' : h'a2182848018a278f7faab55a182b421645'
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
        e'token_upload' : 0,
             e'from_rs' : h'a2182a4825a8991cd700ac01182c420000',
     / ace_profile / 38 : 2 / coap_oscore /,
       / expires_in / 2 : 3600,
       / cnf /        8 : {
         / osc / 4 : {
           / id / 0 : h'01',
           / ms / 2 : h'f9af838368e353e78888e1426bd94e6f'
         }
       }
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-rs_cnf2-audience2">
        <name>rs_cnf2 and audience2</name>
        <t>This section defines the additional parameters "rs_cnf2" and "audience2". The two parameters can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <ul spacing="normal">
          <li>
            <t>The "rs_cnf2" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response, if the token type is "pop", asymmetric keys are used, and the access token is issued for an audience that includes multiple RSs (i.e., a group-audience, see <xref section="6.9" sectionFormat="of" target="RFC9200"/>). Otherwise, the "rs_cnf2" parameter <bcp14>MUST NOT</bcp14> be included.  </t>
            <t>
Also, the "rs_cnf2" parameter <bcp14>MUST NOT</bcp14> be included if the issued access token is not the first one of a new token series.  </t>
            <t>
This parameter specifies information about the public keys used by the RSs of the group-audience for authenticating themselves to C. It is used in the case that the binding between the public keys and the corresponding RS identities are not established through other means. If this parameter is absent, either the RSs in the group-audience do not use a public key, or the AS knows that the RSs can authenticate themselves to C without additional information.  </t>
            <t>
If included, this parameter <bcp14>MUST</bcp14> encode a non-empty array of N elements, where N is the number of RSs in the group-audience for which the access token is issued. The array is encoded as a CBOR array or a JSON array, depending on whether the access token response is encoded in CBOR or JSON, respectively.  </t>
            <t>
Each element of the array specifies the public key of an RS in the group-audience, and it <bcp14>MUST</bcp14> follow the syntax and semantics of the "cnf" claim either from <xref section="3.1" sectionFormat="of" target="RFC8747"/> for CBOR-based interactions, or from <xref section="3.1" sectionFormat="of" target="RFC7800"/> for JSON-based interactions. It is not required that all the elements of the array rely on the same confirmation method.  </t>
            <t>
Any of the public keys may be provided together with information such as the public key algorithm and use (e.g., specified by means of the parameters "alg" and "key_ops" in a COSE_Key structure). If such information is specified, a client <bcp14>MUST NOT</bcp14> use a public key that is incompatible with the profile of ACE used or with the PoP algorithm according to that information. An RS <bcp14>MUST</bcp14> reject a proof of possession that relies on such a key and <bcp14>MUST</bcp14> reply with a response code equivalent to the CoAP code 4.00 (Bad Request).</t>
          </li>
          <li>
            <t>The "audience2" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response, and it specifies the identifiers of the RSs in the group-audience for which the access token is issued.  </t>
            <t>
The "audience2" parameter <bcp14>MUST NOT</bcp14> be included if the issued access token is not the first one of a new token series.  </t>
            <t>
If included, this parameter <bcp14>MUST</bcp14> encode a non-empty array of N elements, where N is the number of RSs in the group-audience for which the access token is issued. The array is encoded as a CBOR array or a JSON array, depending on whether the access token response is encoded in CBOR or JSON, respectively.  </t>
            <t>
Each element of the array in the "audience2" parameter specifies the identifier of an RS in the group-audience. The value of each element of the array is encoded as a CBOR text string or a JSON string, depending on whether the access token response is encoded in CBOR or JSON, respectively.  </t>
            <t>
The element of the array referring to an RS in the group-audience <bcp14>SHOULD</bcp14> have the same value that would be used to identify that RS through the "audience" parameter of an access token request to the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) and of an access token response from the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), when requesting and issuing an access token for that individual RS.  </t>
            <t>
The "audience2" parameter <bcp14>MUST</bcp14> be included if the "rs_cnf2" parameter is included. In such a case, the i-th element of the array in the "audience2" parameter <bcp14>MUST</bcp14> be the identifier of the RS whose public key is specified by the i-th element of the array in the "rs_cnf2" parameter.</t>
          </li>
        </ul>
        <section anchor="example-1">
          <name>Example</name>
          <t><xref target="fig-example-AS-to-C-rs_cnf2"/> shows an example of access token response from the AS to C, following the issue of an access token for a group-audience composed of two RSs, namely "rs1" and "rs2", and bound to C's public key as an asymmetric PoP key. The access token response includes the access token as well as the parameters "audience2" and "rs_cnf2". These parameters specify the public keys of the two RSs as the intended recipients of the access token and the identifiers of those two RSs, respectively.</t>
          <figure anchor="fig-example-AS-to-C-rs_cnf2">
            <name>Example of access token response with an access token bound to an asymmetric key, using the parameters "audience2" and "rs_cnf2".</name>
            <artwork><![CDATA[
   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3600
   Payload:
   {
     / access_token / 1 : h'd08343a1...4819',
       / (full CWT elided for brevity;
          CWT contains the client's RPK in the "cnf" claim) /
     / expires_in /   2 : 3600,
           e'audience2' : ["rs1", "rs2"],
             e'rs_cnf2' : [
               {
                 / COSE_Key / 1 : {
                   / kty /  1 : 2 / EC2 /,
                   / crv / -1 : 1 / P-256 /,
                   / x /   -2 : h'bbc34960526ea4d32e940cad2a234148
                                  ddc21791a12afbcbac93622046dd44f0',
                   / y /   -3 : h'4519e257236b2a0ce2023f0931f1f386
                                  ca7afda64fcde0108c224c51eabf6072'
                 }
               },
               {
                 / COSE_Key / 1 : {
                   / kty /  1 : 2 / EC2 /,
                   / crv / -1 : 1 / P-256 /,
                   / x /   -2 : h'ac75e9ece3e50bfc8ed6039988952240
                                  5c47bf16df96660a41298cb4307f7eb6',
                   / y /   -3 : h'6e5de611388a4b8a8211334ac7d37ecb
                                  52a387d257e6db3c2a93df21ff3affc8'
                 }
               }
             ]
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-anchor_cnf">
        <name>anchor_cnf</name>
        <t>This section defines the additional "anchor_cnf" parameter. The parameter can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <t>The "anchor_cnf" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response, if the token type is "pop" and asymmetric keys are used. Otherwise, the "anchor_cnf" parameter <bcp14>MUST NOT</bcp14> be included.</t>
        <t>Also, the "anchor_cnf" parameter <bcp14>MUST NOT</bcp14> be included if the issued access token is not the first one of a new token series.</t>
        <t>This parameter specifies information about the public keys of trust anchors, which C can use to validate the public key of the RS/RSs included in the audience for which the access token is issued. This parameter can be used when the access token is issued for an audience including one RS or multiple RSs.</t>
        <t>If this parameter is absent, either the RS/RSs in the audience do not use a public key, or the AS knows that C can validate the public key of such RS/RSs without additional information (e.g., C has already obtained the required public keys of the involved trust anchors from the AS or through other means).</t>
        <t>If included, this parameter <bcp14>MUST</bcp14> encode a non-empty array that <bcp14>MUST</bcp14> be treated as a set, i.e., the order of its elements has no meaning. Each element of the array specifies the public key of one trust anchor, which can be used to validate the public key of at least one RS included in the audience for which the access token is issued. The array is encoded as a CBOR array or a JSON array, depending on whether the access token response is encoded in CBOR or JSON, respectively.</t>
        <t>Each element of the array <bcp14>MUST</bcp14> follow the syntax and semantics of the "cnf" claim either from <xref section="3.1" sectionFormat="of" target="RFC8747"/> for CBOR-based interactions, or from <xref section="3.1" sectionFormat="of" target="RFC7800"/> for JSON-based interactions. It is not required that all the elements of the array rely on the same confirmation method.</t>
        <t>Any of the public keys conveyed in the "anchor_cnf" parameter may be provided together with information such as the public key algorithm and use (e.g., specified by means of the parameters "alg" and "key_ops" in a COSE_Key structure). If such information is specified, a client <bcp14>MUST NOT</bcp14> use a public key that is incompatible with the profile of ACE used or with the public keys to validate and the way to validate those.</t>
        <t>The presence of this parameter does not require that the access token response also includes the "rs_cnf" parameter defined in <xref target="RFC9201"/> or the "rs_cnf2" parameter defined in <xref target="sec-rs_cnf2-audience2"/> of the present document. That is, C may be able to obtain the public keys of the RS/RSs for which the access token is issued through other means.</t>
        <t>When the access token response includes both the "anchor_cnf" parameter and the "audience2" parameter defined in <xref target="sec-rs_cnf2-audience2"/>, then C <bcp14>MUST</bcp14> make sure that a public key PK_RS is associated with an RS identified by an element of "audience2", before using any of the public keys specified in "anchor_cnf" to validate PK_RS. The particular way that C uses to verify such an association as well as the particular relationships between the identifiers of group-audiences and the identifiers of RSs specified in the "audience2" parameter are application specific.</t>
        <t>When the access token response includes the "anchor_cnf" parameter but not the "audience2" parameter, then C can use any of the public keys specified in "anchor_cnf" to validate the public key PK_RS of any RS in the targeted audience. This allows C to use the access token with an RS that is deployed later on as part of the same audience, which is particularly useful in the case of a group-audience.</t>
        <t>Specifically when the access token is issued for a group-audience G_Aud and the access token response includes the "anchor_cnf" parameter but not the "audience2" parameter, the following applies in order to prevent C from erroneously believing that G_Aud includes a given RS that is not included therein. Unless a public key PK_Anchor specified within the "anchor_cnf" parameter comprises or is accompanied by information about the RSs included in G_Aud, PK_Anchor <bcp14>MUST</bcp14> be uniquely associated with G_Aud. In particular, PK_Anchor <bcp14>MUST NOT</bcp14> be usable to successfully validate the public key of an RS that is not included in G_Aud.</t>
        <section anchor="example-2">
          <name>Example</name>
          <t><xref target="fig-example-AS-to-C-anchor_cnf"/> shows an example of access token response from the AS to C, following the issue of an access token for a group-audience and bound to C's public key as an asymmetric PoP key.</t>
          <t>The identifier of the group-audience was specified by the "audience" parameter of the access token request to the AS, is specified by the "aud" claim of the issued access token, and is not repeated in the access token response from the AS.</t>
          <t>The access token response includes the "anchor_cnf" parameter. This specifies the public key of a trust anchor that C can use to validate the public keys of any RS with which the access token is going to be used. By means of the CWT confirmation method "x5chain" defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>, the public key of the trust anchor is here conveyed within an X.509 certificate <xref target="RFC5280"/> used as the public authentication credential for that trust anchor.</t>
          <figure anchor="fig-example-AS-to-C-anchor_cnf">
            <name>Example of Access Token Response with an access token bound to an asymmetric key, using the "anchor_cnf" parameter.</name>
            <artwork><![CDATA[
   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3600
   Payload:
   {
     / access_token / 1 : h'd08343a1...4819',
       / (full CWT elided for brevity;
          CWT contains the client's RPK in the "cnf" claim) /
     / expires_in /   2 : 3600,
          e'anchor_cnf' : [
            {
              e'x5chain' : h'308201363081dea003020102020301f50d30
                             0a06082a8648ce3d04030230163114301206
                             035504030c0b524643207465737420434130
                             1e170d3230303130313030303030305a170d
                             3231303230323030303030305a3022312030
                             1e06035504030c1730312d32332d34352d46
                             462d46452d36372d38392d41423059301306
                             072a8648ce3d020106082a8648ce3d030107
                             03420004b1216ab96e5b3b3340f5bdf02e69
                             3f16213a04525ed44450b1019c2dfd3838ab
                             ac4e14d86c0983ed5e9eef2448c6861cc406
                             547177e6026030d051f7792ac206a30f300d
                             300b0603551d0f040403020780300a06082a
                             8648ce3d04030203470030440220445d798c
                             90e7f500dc747a654cec6cfa6f037276e14e
                             52ed07fc16294c84660d02205a33985dfbd4
                             bfdd6d4acf3804c3d46ebf3b7fa62640674f
                             c0354fa056dbaea6'
            }
          ]
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-token_series_id">
        <name>token_series_id</name>
        <t>This section defines the additional "token_series_id" parameter. The parameter can be used in an access token request sent by C to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), as well as in the access token response sent as a reply by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>).</t>
        <t>The following refers to the base64url encoding without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>).</t>
        <ul spacing="normal">
          <li>
            <t>The "token_series_id" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token request. The presence of this parameter indicates that C wishes to obtain a new access token for dynamically updating its access rights. That is, the new access token is intended to be the next one in an active token series and to supersede the latest access token in that token series.  </t>
            <t>
The "token_series_id" parameter <bcp14>MUST NOT</bcp14> be included in an access token request, if the requested access token is the first one of a new token series.  </t>
            <t>
If included, this parameter specifies the binary identifier of the token series that the new access token is intended to extend. The identifier does not change throughout the duration of the token series and was provided to C in the access token response that the AS sent when issuing the first access token in that token series.  </t>
            <t>
When the access token request is encoded in CBOR, this parameter is a CBOR byte string, with value the identifier of the token series. When the access token request is encoded in JSON, this parameter has as value the base64url-encoded text string that encodes the identifier of the token series.</t>
          </li>
          <li>
            <t>The "token_series_id" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response.  </t>
            <t>
The "token_series_id" parameter <bcp14>MUST NOT</bcp14> be included in an access token response, if the issued access token is not the first one of a new token series.  </t>
            <t>
If included, this parameter specifies the binary identifier of the token series to which the issued access token belongs.  </t>
            <t>
When the access token response is encoded in CBOR, this parameter is a CBOR byte string, with value the identifier of the token series. When the access token request is encoded in JSON, this parameter has as value the base64url-encoded text string that encodes the identifier of the token series.</t>
          </li>
        </ul>
        <t>If the AS relies on the "token_series_id" parameter to exchange the identifier of token series with clients, then the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>The value assigned to the identifier of a token series <bcp14>MUST</bcp14> be associated with all the access tokens issued by the AS for that token series and <bcp14>MUST</bcp14> be selected from a pool that the AS exclusively controls.  </t>
            <t>
In particular, the triple (TS_ID, C, AUD) <bcp14>MUST</bcp14> uniquely identify a token series and its corresponding access tokens, where TS_ID is the identifier of the token series, while C and AUD are the client and the audience for which the access token is issued, respectively. The AS <bcp14>MUST</bcp14> take into account both ongoing and ended token series for selecting a new TS_ID that complies with the requirements above.  </t>
            <t>
Note that the ACE profile used is not part of the triple, hence the requirement spans across all the ACE profiles that the AS and its registered clients/RSs support.</t>
          </li>
          <li>
            <t>An issued access token that belongs to a token series <bcp14>MUST</bcp14> include the identifier of that token series. This allows the RS to identify the latest access token in the token series to be superseded by the issued access token.  </t>
            <t>
In particular, each of such access tokens <bcp14>MUST</bcp14> include a claim specifying the identifier of the token series to which the access token belongs.  </t>
            <t>
When CWTs are used as access tokens, such claim can be the "token_series_id" claim registered in <xref target="iana-token-cwt-claims"/>, which has the same semantics as the "token_series_id" parameter of an access token response encoded in CBOR.  </t>
            <t>
When JWTs are used as access tokens, such claim can be the "token_series_id" claim registered in <xref target="iana-token-json-claims"/>, which has the same semantics as the "token_series_id" parameter of an access token response encoded in JSON.</t>
          </li>
        </ul>
        <t>If a profile of ACE relies on a construct that uses different parameters/claims to transport the identifier of a token series, then the new "token_series_id" parameter and "token_series_id" claim <bcp14>MUST NOT</bcp14> be used when using that profile.</t>
        <t>For example, a number of parameters/claims are already used to transport information that acts as de facto identifier of token series, in the PSK mode of the DTLS profile <xref target="RFC9202"/>, in the OSCORE profile <xref target="RFC9203"/>, and in the LAKE and OSCORE profile <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>.</t>
      </section>
      <section anchor="sec-updated_rights">
        <name>updated_rights</name>
        <t>This section defines the additional "updated_rights" parameter. The parameter can be used in a POST request sent by the AS to the authz-info endpoint at the RS (see <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>), when the AS uploads an access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/> of the present document. The "updated_rights" parameter <bcp14>MUST NOT</bcp14> be included in the POST request to the authz-info endpoint sent by C per the original workflow defined in <xref target="RFC9200"/>.</t>
        <t>The "updated_rights" parameter <bcp14>MUST</bcp14> be included in the POST request sent by the AS to the authz-info endpoint at the RS, if the uploaded access token is not the first one of a new token series, i.e., if the AS has issued the access token for dynamically updating the access rights of C. Otherwise, the "updated_rights" parameter <bcp14>MUST NOT</bcp14> be included.</t>
        <t>When including the "updated_rights" parameter, the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>If the POST request is encoded in CBOR, the request <bcp14>MUST</bcp14> have media type "application/ace+cbor" and its payload <bcp14>MUST</bcp14> be formatted as a CBOR map. In particular, the CBOR map <bcp14>MUST</bcp14> include the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5) and the "access_token" parameter specifying the access token.</t>
          </li>
          <li>
            <t>If the POST request is encoded in JSON, the request <bcp14>MUST</bcp14> have media type "application/ace+json" and its payload <bcp14>MUST</bcp14> be formatted as a JSON object. In particular, the JSON object <bcp14>MUST</bcp14> include the "updated_rights" parameter with value <tt>true</tt> and the "access_token" parameter specifying the access token.</t>
          </li>
        </ul>
        <t>Note that this request deviates from the POST request defined in <xref target="RFC9200"/>, although such a deviation can already occur in some profiles of ACE (e.g., see <xref section="4.1" sectionFormat="of" target="RFC9203"/>) or in application profiles of <xref target="RFC9594"/>.</t>
        <t><xref target="fig-example-AS-to-RS-token"/> shows an example where the AS uploads an access token at the RS on behalf of C, by sending a POST request encoded in CBOR to the authz-info endpoint at the RS. In this example, the access token dynamically updates the access rights of C by extending an existing token series, hence the request payload also conveys the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5).</t>
        <figure anchor="fig-example-AS-to-RS-token">
          <name>Example of AS-to-RS POST Request to the authz-info endpoint. The access token dynamically updates the access rights of C by extending an existing token series, hence the request conveys the "updated_rights" parameter with value true (0xf6).</name>
          <artwork><![CDATA[
   AS-to-RS token upload request

   Header: POST (Code=0.02)
   Uri-Host: "rs.example.com"
   Uri-Path: "authz-info"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / access_token / 1 : h'd08343a1...4819', / (full CWT elided
                                                 for brevity) /
      e'updated_rights' : true
   }
]]></artwork>
        </figure>
        <t>The following focuses on interactions with the authz-info endpoint at the RS where messages are encoded in CBOR. The same as described below holds in the case that such messages are encoded in JSON and have media type "application/ace+json", with the difference that the "updated_rights" parameter with value <tt>true</tt> can be present within a JSON object conveyed by a POST request to the  authz-info endpoint.</t>
        <section anchor="sec-updated_rights-rs">
          <name>Processing at the RS</name>
          <t>When the RS receives a protected POST request to the authz-info endpoint from the AS and the request does not convey the "updated_rights" parameter, the RS is ensured that the access token conveyed in the request is the first one of a new token series, which the RS processes accordingly (see <xref target="sec-as-token-upload"/>).</t>
          <t>When the RS receives a protected POST request to the authz-info endpoint from the AS and the request conveys the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5), the RS is ensured that the access token conveyed in the request is not the first one of a new token series.</t>
          <t>Taking advantage of such explicit indication requires the RS to support the Content-Format "application/ace+cbor" and the "updated_rights" parameter.</t>
          <t>If the RS does not support the Content-Format "application/ace+cbor", the RS rejects the POST request from the AS and replies with an error response that has a response code equivalent to the CoAP code 4.15 (Unsupported Content-Format). Note that, irrespective of the profile of ACE used, the RS supports the Content-Format "application/ace+cbor" if it implements token introspection as defined in <xref section="5.9" sectionFormat="of" target="RFC9200"/>.</t>
          <t>If the RS supports the Content-Format "application/ace+cbor" but does not support the "updated_rights" parameter, the RS rejects the POST request from the AS and replies with an error response that has a response code equivalent to the CoAP code 4.00 (Bad Request).</t>
          <t>In the case that a POST request to the authz-info endpoint includes the "updated_rights" parameter, the RS supports the parameter, and any of the following conditions applies, then the RS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response that has a response code equivalent to the CoAP code 4.00 (Bad Request):</t>
          <ul spacing="normal">
            <li>
              <t>The request is not protected.</t>
            </li>
            <li>
              <t>The AS is not successfully verified as the originator of the request.</t>
            </li>
            <li>
              <t>The "updated_rights" parameter does not encode the CBOR simple value <tt>true</tt> (0xf5).</t>
            </li>
          </ul>
          <t>If none of the error conditions above applies and the request is valid, then the RS leverages the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5) as an indication from the AS that the access token conveyed in the POST request, namely T_NEW, is not the first one of its token series. That is, the access token is meant to dynamically update the access rights of C, while preserving the same secure communication association that is shared between C and the RS.</t>
          <t>In this case, the RS uses lookup information specified within T_NEW to determine whether it stores an access token T_OLD associated with C and belonging to the same token series of T_NEW. Such lookup information includes an identifier of the token series to which both T_NEW and T_OLD belong, and it can further comprise additional information elements pertaining to the specific profile of ACE used (e.g., the authentication credential of C that is bound to the access tokens of the token series).</t>
          <t>By leveraging such lookup information, the RS checks whether it stores an access token T_OLD that belongs to the same token series of T_NEW, like it would when receiving the request from C and according to the specific profile of ACE used.</t>
          <t>If the RS is currently storing such an old access token T_OLD and successfully validates the access token T_NEW, then the new access token T_NEW supersedes T_OLD, i.e., the RS <bcp14>MUST</bcp14> replace the authorization information specified in T_OLD with that specified in T_NEW, and it <bcp14>MUST</bcp14> associate T_NEW with the same secure communication association with which T_OLD was associated. Finally, the RS replies to the AS with a successful response that has a response code equivalent to the CoAP code 2.01 (Created).</t>
          <t>Instead, if the RS is not currently storing such an old access token T_OLD, then the RS <bcp14>MUST</bcp14> reject the POST request from the AS and <bcp14>MUST</bcp14> reply with an error response that has a response code equivalent to the CoAP code 5.00 (Internal Server Error). The error response is analogous to error responses sent by the AS (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>) and <bcp14>MUST</bcp14> include the error code "missing_old_token". The error code and its CBOR abbreviation are registered in <xref target="iana-oauth-extensions-errors"/> and <xref target="iana-oauth-error-code-cbor-mappings"/>, respectively.</t>
          <t>The explicit indication provided by the "updated_rights" parameter prevents possible ambiguous situations, where the RS might erroneously believe that the access token conveyed in the POST request is the first one of a new token series (e.g., following the deletion of stored access tokens due to memory limitations). This is further discussed in <xref target="sec-cons-updated-right"/>.</t>
        </section>
        <section anchor="sec-updated_rights-as">
          <name>Follow-up at the AS</name>
          <t>After sending to the authz-info endpoint a protected POST request that conveys the access token T_NEW and the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5), the AS proceeds as follows when receiving a response from the RS.</t>
          <ul spacing="normal">
            <li>
              <t>If the AS receives a successful response, the AS <bcp14>MUST</bcp14> reply to C with an access token response, consistent with the issue of the access token T_NEW. The access token response includes the "token_upload" parameter encoding the value 0 (see <xref target="sec-token_upload-resp"/>). Also, the access token response includes the "access_token" parameter, or the "token_hash" parameter, or none of those, depending on the value of the "token_upload" parameter in the corresponding access token request.</t>
            </li>
            <li>
              <t>If the AS receives an error response that includes the error code "missing_old_token" (see <xref target="sec-updated_rights-rs"/>), the AS <bcp14>MUST</bcp14> proceed as defined in <xref target="sec-new-series-on-the-fly"/>.</t>
            </li>
            <li>
              <t>If the AS receives any other error response, the AS <bcp14>MUST</bcp14> reply to C with an access token response, consistent with the issue of the access token T_NEW. The access token response includes the "access_token" parameter specifying the access token T_NEW and the "token_upload" parameter encoding the value 1 (see <xref target="sec-token_upload-resp"/>).</t>
            </li>
          </ul>
          <t>The AS <bcp14>MUST</bcp14> ignore the error code "missing_old_token", if the POST request did not convey the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5).</t>
          <t>In the case that the access token T_NEW targets a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), what is specified in <xref target="sec-token_upload-resp"/> about the token upload at the RSs in the group-audience applies to T_NEW. In particular, the AS replies to C with an access token response after the token upload of T_NEW terminates as per what is defined in <xref target="sec-token_upload-resp"/>.</t>
          <section anchor="sec-new-series-on-the-fly">
            <name>New Token Series Created on the Fly</name>
            <t>As defined in <xref target="sec-updated_rights-rs"/>, the RS replies to the AS with an error response that includes the error code "missing_old_token", if the RS cannot find the old access token T_OLD to be superseded by the access token T_NEW that the AS uploaded to the authz-info endpoint.</t>
            <t>Profiles of ACE typically prescribe that, in such case, the RS does not have anymore the secure communication association that was previously shared with C and bound to T_OLD.</t>
            <t>Therefore, if the AS simply completes the issue of T_NEW and provides it to C, this would result in C sending a protected POST request including T_NEW to the authz-info endpoint at the RS, according to the original workflow. However, since the RS does not store T_OLD and does not have the corresponding secure communication association used by C to protect the POST request, the RS would reply to C with an unprotected error response. After that, C would finally send a new access token request to the token endpoint at the AS, asking for a new access token of a new token series.</t>
            <t>Instead, under the specific circumstance in question, the procedure defined below avoids that C and the RS perform such an inefficient and unsuccessful exchange. In the interest of performing this procedure, an AS that supports the SDC workflow <bcp14>MUST</bcp14> store the access token request that results in issuing the first access token of a token series, until the token series ends.</t>
            <t>After having uploaded T_NEW to the RS and received an error response that includes the error code "missing_old_token", the AS <bcp14>MUST</bcp14> create a new token series "on the fly", as defined below.</t>
            <t>The rest of this section uses the following notation:</t>
            <ul spacing="normal">
              <li>
                <t>REQ_STORED: the access token request that resulted in the AS issuing the first access token of the token series to which T_OLD and T_NEW belong.</t>
              </li>
              <li>
                <t>REQ_RECEIVED: the access token request that resulted in the AS composing T_NEW and attempting to upload it at the RS with no success.</t>
              </li>
            </ul>
            <t>The AS performs the following steps.</t>
            <ol spacing="normal" type="1"><li>
                <t>The AS retrieves REQ_STORED from its local storage.</t>
              </li>
              <li>
                <t>The AS composes a new access token request REQ_BUILT that is equal to REQ_STORED retrieved at Step 1, with the following differences:  </t>
                <ul spacing="normal">
                  <li>
                    <t>The "scope" parameter is present in REQ_BUILT if and only if the "scope" parameter is present in the access token request REQ_RECEIVED. If present, the "scope" parameter in REQ_BUILT specifies the same scope that is specified by the "scope" parameter within REQ_RECEIVED.</t>
                  </li>
                  <li>
                    <t>The parameters "token_upload" (see <xref target="sec-token_upload"/>), "to_rs" (see <xref target="sec-to_rs"/>), and "cnonce" (see <xref section="5.8.4.4" sectionFormat="of" target="RFC9200"/>) are not included in REQ_BUILT.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>The AS revokes the access tokens T_OLD and T_NEW, thus ending the token series they belong to. The AS can rely on the method defined in <xref target="RFC9770"/> to notify about the revoked access tokens. Then, the AS deletes REQ_STORED from its local storage.</t>
              </li>
              <li>
                <t>The AS processes REQ_BUILT as if it was received from C.  </t>
                <t>
If the AS successfully processes REQ_BUILT, the AS issues an access token T_NEXT as the first access token of a new token series. Like for T_NEW, also T_NEXT is issued to C, for the same targeted audience, and per the same profile of ACE.  </t>
                <t>
Like any other access token request that results in starting a new token series, the AS stores REQ_BUILT throughout the duration of the new token series to which T_NEXT belongs.</t>
              </li>
              <li>
                <t>The AS replies to REQ_RECEIVED with an access token response consistent with the issue of T_NEXT as the first access token of a new token series. In particular, the following applies to the access token response:  </t>
                <ul spacing="normal">
                  <li>
                    <t>The "access_token" parameter is present and specifies the access token T_NEXT.</t>
                  </li>
                  <li>
                    <t>The "token_upload" parameter is present and encodes the value 2 (see <xref target="sec-token_upload-resp"/>).</t>
                  </li>
                  <li>
                    <t>The "scope" parameter is present if and only if: i) it was present in REQ_BUILT and the access rights granted to C are different from the requested ones; or ii) it was not present in REQ_BUILT and the access rights granted to C are different from the default ones.      </t>
                    <t>
If the "scope" parameter is not present, then the granted access rights are those requested by the "scope" parameter in REQ_BUILT if present therein, or the default access rights otherwise.      </t>
                    <t>
The granted access rights are specified by the issued access token T_NEXT.</t>
                  </li>
                </ul>
              </li>
            </ol>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-updated-ace-profile-parameter">
      <name>Updated ace_profile Parameter</name>
      <t>This section extends the semantics of the "ace_profile" parameter defined in <xref target="RFC9200"/> for the OAuth 2.0 token endpoint at the AS.</t>
      <t>In addition to what is specified in Sections <xref target="RFC9200" section="5.8.1" sectionFormat="bare"/>, <xref target="RFC9200" section="5.8.2" sectionFormat="bare"/>, and <xref target="RFC9200" section="5.8.4.3" sectionFormat="bare"/> of <xref target="RFC9200"/>, the following applies.</t>
      <ul spacing="normal">
        <li>
          <t>When sending an access token request to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), C <bcp14>MAY</bcp14> include the "ace_profile" parameter, specifying the identifier of the profile that C wishes to use towards the RS.  </t>
          <t>
The "ace_profile" parameter <bcp14>MUST NOT</bcp14> be included in an access token request, if the requested access token is not the first one of a new token series.</t>
        </li>
        <li>
          <t>If the AS receives an access token request for requesting the first access token of a new token series and the request includes the "ace_profile" parameter specifying the identifier of a profile, then the AS proceeds as follows.  </t>
          <t>
In the case that the AS does not issue access tokens per the profile specified in the access token request, or C and the RS do not share that profile, then the AS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 4.00 (Bad Request) and <bcp14>MUST</bcp14> include the error code "incompatible_ace_profiles".  </t>
          <t>
In the case that the AS issues an access token to C, the access token <bcp14>MUST</bcp14> be per the profile whose identifier was specified by the "ace_profile" parameter in the access token request.  </t>
          <t>
In the case that the AS replies to C with an access token response (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), then the response <bcp14>MAY</bcp14> include the "ace_profile" parameter. If it is included in the access token response, the "ace_profile" parameter <bcp14>MUST</bcp14> encode the same profile identifier that was specified by the "ace_profile" parameter of the corresponding access token request.  </t>
          <t>
The "ace_profile" parameter <bcp14>MUST NOT</bcp14> be included in the access token response, if the issued access token is not the first one of a new token series.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-coord-exchanged-cred">
      <name>Coordinating on the Exchange of Public Authentication Credentials</name>
      <t>In some profiles of ACE, it is possible for C and the RS to use public authentication credentials. Depending on the specific profile, the access token request and response exchanged between C and the AS can specify those authentication credentials as transported by value or instead identified by reference. For instance, this is the case in the LAKE and OSCORE profile <xref target="I-D.ietf-ace-edhoc-oscore-profile"/> and in the DTLS profile <xref target="RFC9202"/> as extended in <xref target="I-D.ietf-ace-authcred-dtls-profile"/>.</t>
      <t>At some point, the AS (C) might become unable to use a credential identifier as a reference for accessing the authentication credential of C (of the RS) obtained earlier, e.g., due to having deleted the credential from its local storage. This can prevent the AS (C) from successfully processing an incoming access token request (response) that specifies the authentication credential of C (of the RS) as identified by reference. Ultimately, this can prevent the AS from issuing an access token and C from securely accessing protected resources at the RS.</t>
      <t>Conversely, unbeknown to the AS, C might already be storing the authentication credential of the RS when sending the access token request. In such a situation, the AS would specify the authentication credential of the RS by value in the access token response. However, it would be sufficient for C that the response specified the credential of the RS as identified by reference, or even that the response omitted the credential altogether.</t>
      <t>In order to allow C and the AS to coordinate on the exchange of the authentication credentials of C and the RS, the rest of this section defines:</t>
      <ul spacing="normal">
        <li>
          <t>How the AS can instruct C to specify its public authentication credential by value in the "req_cnf" parameter of an access token request (see <xref target="sec-cred-c-value"/>).</t>
        </li>
        <li>
          <t>How C can instruct the AS to specify the public authentication credential(s) of the RS(s) by value or by reference in the "rs_cnf" or "rs_cnf2" parameter of an access token response (see <xref target="sec-cred-rs-value"/>), or instead to omit the credential(s) from the access token response.</t>
        </li>
      </ul>
      <section anchor="sec-cred-c-value">
        <name>Instructing C on How to Provide its Authentication Credential</name>
        <t>When the AS receives an access token request and this includes the "req_cnf" parameter identifying the public authentication credential of C by reference, it might happen that the AS is not able to access the credential by using the specified reference.</t>
        <t>In such a case, the AS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 5.00 (Internal Server Error) and <bcp14>MUST</bcp14> include the error code "unknown_credential_referenced". The error code and its CBOR abbreviation are registered in <xref target="iana-oauth-extensions-errors"/> and <xref target="iana-oauth-error-code-cbor-mappings"/>, respectively.</t>
        <t>After receiving such an error response, C can send a new access token request, where the "req_cnf" parameter specifies the authentication credential of C by value.</t>
      </section>
      <section anchor="sec-cred-rs-value">
        <name>Instructing the AS on How to Provide the RS's Authentication Credential</name>
        <t>When C receives an access token response and this includes the "req_cnf" or "req_cnf2" parameter identifying the authentication credential(s) of the RS(s) by reference, it might happen that C is not able to access the authentication credential(s) by using the specified reference(s).</t>
        <t>Conversely, if the response includes the "rs_cnf" or "rs_cnf2" parameter specifying the authentication credential(s) of the RS(s) by value, it might happen that C has already been storing those credential(s), unbeknown to the AS. In fact, it would have been sufficient that the "rs_cnf" or "rs_cnf2" parameter identified the credential(s) by reference, or that neither parameter was included in the response.</t>
        <t>The following extends the semantics of the "rs_cnf" parameter defined in <xref section="3.2" sectionFormat="of" target="RFC9201"/>, so that C can include the "rs_cnf" parameter in an access token request. When doing so, C instructs the AS about whether and how the access token response should specify the authentication credential(s) of the RS(s) belonging to the targeted audience.</t>
        <t>Per its extended semantics, the "rs_cnf" parameter is also <bcp14>OPTIONAL</bcp14> to include in an access token request when requesting the first access token in a token series, if the token type is "pop" and asymmetric keys are used. In any other case, the parameter <bcp14>MUST NOT</bcp14> be included in an access token request.</t>
        <t>When C includes the "rs_cnf" parameter in an access token request encoded in CBOR, the parameter <bcp14>MUST</bcp14> have one of the following encodings.</t>
        <ul spacing="normal">
          <li>
            <t>If the parameter specifies the CBOR simple value <tt>true</tt> (0xf5), then it instructs the AS to include in the access token response the "rs_cnf" or "rs_cnf2" parameter, specifying the authentication credential(s) of the RS(s) by value.  </t>
            <t>
In the access token response, each pertaining authentication credential <bcp14>MUST</bcp14> be specified by value.</t>
          </li>
          <li>
            <t>If the parameter specifies the CBOR simple value <tt>false</tt> (0xf4), then it instructs the AS to include in the access token response the "rs_cnf" or "rs_cnf2" parameter, specifying the authentication credential(s) of the RS(s) by reference.  </t>
            <t>
In the access token response, each pertaining authentication credential <bcp14>MUST</bcp14> be specified by reference, or alternatively by value only if that was not possible for the AS to attain.</t>
          </li>
          <li>
            <t>If the parameter specifies the CBOR simple value <tt>null</tt> (0xf6), then it instructs the AS to omit the "rs_cnf" and "rs_cnf2" parameters from the access token response.  </t>
            <t>
In the access token response, the "rs_cnf" and "rs_cnf2" parameters <bcp14>MUST NOT</bcp14> be included.</t>
          </li>
        </ul>
        <t>If the access token request is encoded in JSON, the same as above applies, with the difference that the "rs_cnf" parameter specifies as appropriate the corresponding JSON values <tt>true</tt>, <tt>false</tt>, or <tt>null</tt>.</t>
        <t>If the AS is not able to comply in the first two cases above, then the AS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response. The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 5.00 (Internal Server Error).</t>
        <t>Irrespective of what "rs_cnf" specifies in the access token request, the parameter "rs_cnf" or "rs_cnf2" in the access token response specifies the authentication credential(s) used by the RS(s) to authenticate.</t>
        <t>In the case that C includes the "rs_cnf" parameter in the access token request and C does not currently store the authentication credential(s) of the RS(s) in the targeted audience, then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>The "rs_cnf" parameter <bcp14>MUST NOT</bcp14> specify the CBOR simple value <tt>null</tt> (0xf6) if the access token request is encoded in CBOR, or the value <tt>null</tt> if the access token request is encoded in JSON.</t>
          </li>
          <li>
            <t>The "rs_cnf" parameter <bcp14>SHOULD NOT</bcp14> specify the CBOR simple value <tt>false</tt> (0xf4) if the access token request is encoded in CBOR, or the value <tt>false</tt> if the access token request is encoded in JSON. Exceptions apply if C is confident that it can later acquire and validate the authentication credential(s) of the RS(s) by other means, e.g., by using the references provided by the AS for retrieval from a trusted repository.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-error-failed-pop">
      <name>Failed Verification of Proof of Possession at the AS</name>
      <t>When sending an access token request to the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), a client can include the "req_cnf" parameter defined in <xref section="3.1" sectionFormat="of" target="RFC9201"/> in order to provide the AS with a specific PoP key to bind to the requested access token.</t>
      <t>Typically, the PoP key in question is the client's public key. In such a case, as per <xref section="3.1" sectionFormat="of" target="RFC9201"/>, the AS has to verify proof of possession of the client's private key, i.e., that the client is indeed in possession of the private key corresponding to the public key conveyed in the "req_cnf" parameter.</t>
      <t>The AS might have previously achieved proof of possession of the private key in question, e.g., from previous interactions with the client or through out-of-band means. Alternatively, a profile of ACE might define how the AS verifies a PoP evidence that the client computes and provides to the AS by means of a parameter included in the access token request (e.g., see <xref target="I-D.ietf-ace-group-oscore-profile"/>).</t>
      <t>Irrespective of the method used, if the AS fails to verify the proof of possession of the client's private key, then the AS <bcp14>MUST</bcp14> reject the access token request and <bcp14>MUST</bcp14> reply with an error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 4.00 (Bad Request) and <bcp14>MUST</bcp14> include the error code "failed_pop_verification". The error code and its CBOR abbreviation are registered in <xref target="iana-oauth-extensions-errors"/> and <xref target="iana-oauth-error-code-cbor-mappings"/>, respectively.</t>
    </section>
    <section anchor="sec-updated-error-responses">
      <name>Updated Payload Format of Error Responses</name>
      <t>This section deprecates the original payload format of error responses conveying an error code, when CBOR is used to encode message payloads in the ACE framework. That format is referred to, e.g., when defining the error responses of Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>.</t>
      <t>Also, this section defines a new payload format that allows such error responses to convey an error code together with further error-specific information, according to the problem-details format specified in <xref target="RFC9290"/>.</t>
      <t>Such error responses <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor". The payload of these error responses <bcp14>MUST</bcp14> be a CBOR map specifying a Concise Problem Details data item (see <xref section="2" sectionFormat="of" target="RFC9290"/>). The CBOR map is formatted as follows:</t>
      <ul spacing="normal">
        <li>
          <t>It <bcp14>MUST</bcp14> include the Custom Problem Detail entry "ace-error" registered in <xref target="iana-problem-details"/> of this document.  </t>
          <t>
This entry is formatted as a CBOR map including only one field, namely "error-code". The map key for the "error-code" field is the CBOR integer with value 0. The value of the "error-code" field is a CBOR integer specifying the error code associated with the occurred error. This value is taken from the "CBOR Value" column of the "OAuth Error Code CBOR Mappings" registry <xref target="OAuth.Error.Code.CBOR.Mappings"/>.  </t>
          <t>
The "error-code" field conveys the same information that the original payload format conveys through the "error" parameter (see, e.g., Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>).  </t>
          <t>
The CDDL notation <xref target="RFC8610"/> of the "ace-error" entry is given below.</t>
        </li>
      </ul>
      <sourcecode type="cddl"><![CDATA[
   ace-error = {
     &(error-code: 0) => int
   }
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t>It <bcp14>MAY</bcp14> include further Standard Problem Detail entries or Custom Problem Detail entries (see <xref target="RFC9290"/>). The following Standard Problem Detail entries are of particular relevance for the ACE framework.  </t>
          <ul spacing="normal">
            <li>
              <t>"detail" (map key -2): its value is a CBOR text string that specifies a human-readable diagnostic description of the occurred error (see <xref section="2" sectionFormat="of" target="RFC9290"/>).      </t>
              <t>
The diagnostic text is intended for software engineers as well as for device and network operators in order to aid in debugging and provide context for possible intervention. The diagnostic message <bcp14>SHOULD</bcp14> be logged by the sender of the error response. The "detail" entry is unlikely to be relevant in an unattended setup where human intervention is not expected.      </t>
              <t>
When the Standard Problem Detail entry "detail" is included, it conveys the same information that the original payload format conveys through the "error_description" parameter (see, e.g., Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>).</t>
            </li>
            <li>
              <t>"instance" (map key -3): its value is a URI reference identifying the specific occurrence of the error (see <xref section="2" sectionFormat="of" target="RFC9290"/>).      </t>
              <t>
When the Standard Problem Detail entry "instance" is included, it conveys the same information that the original payload format conveys through the "error_uri" parameter (see, e.g., Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>).</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>An example of an error response using the problem-details format is shown in <xref target="fig-example-error-response"/>.</t>
      <figure anchor="fig-example-error-response">
        <name>Example of Error Response with Problem Details.</name>
        <artwork><![CDATA[
Header: Bad Request (Code=4.00)
Content-Format: 257 (application/concise-problem-details+cbor)
Payload:
{
  / title /  -1 : "Incompatible ACE profile",
  / detail / -2 : "The RS supports only the OSCORE profile",
    e'ace-error': {
      / error_code / 0: 8 / incompatible_ace_profiles /
    }
}
]]></artwork>
      </figure>
      <t>When the ACE framework is used with CBOR for encoding message payloads, the following applies:</t>
      <ul spacing="normal">
        <li>
          <t>It is <bcp14>RECOMMENDED</bcp14> that authorization servers, clients, and resource servers support the payload format defined in this section.</t>
        </li>
        <li>
          <t>Authorization servers, clients, and resource servers that support the payload format defined in this section <bcp14>MUST</bcp14> use it when composing an outgoing error response that conveys an error code.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-updated-requirements">
      <name>Updated Requirements on Profiles of ACE</name>
      <t><xref section="C" sectionFormat="of" target="RFC9200"/> compiles a list of requirements on the profiles of ACE. This document amends two of those requirements as follows.</t>
      <t>The text of the fifth requirement</t>
      <blockquote>
        <t>Specify the security protocol the client and RS must use to protect their communication (e.g., OSCORE or DTLS). This must provide encryption and integrity and replay protection (Section 5.8.4.3).</t>
      </blockquote>
      <t>is replaced by the following text:</t>
      <blockquote>
        <t>Specify the security protocol the client and RS must use to protect their communication (e.g., OSCORE or DTLS). In combination with the used communication protocol, this must provide encryption, integrity and replay protection, and a binding between requests and responses (Section 5.8.4.3 and Section 6.5).</t>
      </blockquote>
      <t>The text of the tenth requirement</t>
      <blockquote>
        <t>Specify the communication and security protocol for interactions between the client and AS. This must provide encryption, integrity protection, replay protection, and a binding between requests and responses (Sections 5 and 5.8).</t>
      </blockquote>
      <t>is replaced by the following text:</t>
      <blockquote>
        <t>Specify the communication and security protocol for interactions between the client and AS. The combined use of those protocols must provide encryption, integrity protection, replay protection, and a binding between requests and responses (Sections 5 and 5.8).</t>
      </blockquote>
      <t>At the time of writing, all the profiles of ACE that are published as RFC (i.e., <xref target="RFC9202"/><xref target="RFC9203"/><xref target="RFC9431"/>) already comply with the two updated requirements as formulated above.</t>
    </section>
    <section anchor="sec-ead-session-id">
      <name>LAKE EAD Item for Transporting a Session Identifier</name>
      <t>The Lightweight Authenticated Key Exchange (LAKE) protocol <xref target="RFC9528"/> defines the transport of additional External Authorization Data (EAD) within an optional EAD field of the LAKE messages (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). An EAD field is composed of one or multiple EAD items, each of which specifies an identifying 'ead_label' encoded as a CBOR integer and an optional 'ead_value' encoded as a CBOR byte string.</t>
      <t>When using the LAKE and OSCORE profile of ACE defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>, C and the RS run the LAKE protocol to establish an OSCORE Security Context <xref target="RFC8613"/>, which is used to secure communications when C accesses protected resources at the RS, according to the authorization information indicated in an access token. Specifically, the access token is bound to C's authentication credential AUTH_CRED_C that C uses during the LAKE session for authenticating itself to the RS.</t>
      <t>Per the LAKE and OSCORE profile, the first access token of a token series is specified by C to the RS during a LAKE session between the two peers. To this end, <xref section="4.1" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/> defines the EAD item ACE-OAuth Access Token for specifying an access token by value in the EAD field of a LAKE message from C to the RS.</t>
      <t>This section defines an alternative EAD item for specifying an access token by reference, through its associated LAKE session identifier.</t>
      <t>The name of the EAD item is Session ID, for which the CDDL grammar is shown in <xref target="fig-ead-session-id"/>.</t>
      <figure anchor="fig-ead-session-id">
        <name>LAKE EAD Item Session ID.</name>
        <sourcecode type="cddl"><![CDATA[
ead_session_id = (
  ead_label : e'ead_session_id_label',
  ead_value : session_id
)
session_id = bstr
]]></sourcecode>
      </figure>
      <t>In particular:</t>
      <ul spacing="normal">
        <li>
          <t>ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/>.</t>
        </li>
        <li>
          <t>ead_value is a CBOR byte string equal to the value of the "session_id" field within the LAKE_Information object specified by the "lake_info" parameter of the access token response from the AS, when issuing the first access token of a token series (see <xref section="3.3" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>).</t>
        </li>
      </ul>
      <t>Note to RFC Editor: Please replace TBD with the value registered for Session ID in <xref target="iana-edhoc-ead"/>, then delete this note.</t>
      <t>This EAD item is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must progress the protocol using the access token associated with the identifier specified in the ead_value and with the AUTH_CRED_C used in the LAKE session, or else abort the LAKE session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>)</t>
      <t>The EAD Item Session ID is useful in two circumstances:</t>
      <ul spacing="normal">
        <li>
          <t>When using the SDC workflow defined in <xref target="sec-workflow"/>, C can indicate to the AS that it does not want to receive the issued access token (i.e., the access token request specifies the "token_upload" parameter with value 0 or 1), in the case that the AS successfully uploads the access token to the RS (i.e., the access token response specifies the "token_upload" parameter with value 0).  </t>
          <t>
Even in such a case where C does not obtain the issued access token, C obtains the "session_id" associated with the access token and specified in the access token response. Consequently, C can still specify the access token by reference during the LAKE session with the RS, by using the EAD item Session ID.</t>
        </li>
        <li>
          <t>After having completed a LAKE session with the RS and while still storing a valid access token, C might choose to re-run LAKE with the RS. For example, the LAKE session or the derived OSCORE Security Context might have become invalid, or C receives unprotected error responses from the RS and determines that the RS has deleted the Security Context (e.g., due to memory limitations). As another example, C could want to update its current secure communication association with the RS by establishing a new OSCORE Security Context, specifically through a new LAKE session to leverage the exchange of ephemeral keys.  </t>
          <t>
Even in such a case where C can specify the access token by value, it is possible for C to instead specify the access token by reference during the LAKE session with the RS, by using the EAD item Session ID as a way to reduce communication overhead.</t>
        </li>
      </ul>
      <t>The EAD item Session ID is used only when uploading the first access token of a token series, but not for the dynamic update of access rights (see <xref section="4.7" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>).</t>
      <t>Analogously to the EAD item ACE-OAuth Access Token defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/> and consistent with what is defined in <xref section="4.2" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>, the EAD item Session ID is used to specify the access token by reference as follows:</t>
      <ul spacing="normal">
        <li>
          <t>If the LAKE forward message flow is used (see <xref section="4.3" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>), the EAD item is included in the EAD_3 field of LAKE message_3. As per <xref section="4.3.3" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>, the EAD_3 field must not include multiple EAD items specifying the access token.</t>
        </li>
        <li>
          <t>Instead, if the LAKE reverse message flow is used (see <xref section="4.4" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>), the EAD item is included in the EAD_4 field of LAKE message_4. As per <xref section="4.4.5" sectionFormat="of" target="I-D.ietf-ace-edhoc-oscore-profile"/>, the EAD_4 field must not include multiple EAD items specifying the access token.</t>
        </li>
      </ul>
      <t>A client or resource server <bcp14>MUST</bcp14> support the EAD item Session ID if it both supports the SDC workflow and implements the LAKE and OSCORE profile of ACE.</t>
      <t>Consequently, C is ensured that the RS supports the EAD item Session ID when C receives an access token response specifying the "token_upload" parameter with value 0 and not including the "access_token" parameter, following the issue of an access token for accessing protected resources at the RS. Besides that, C can learn about the RS' support for the EAD item through indications from the AS within the LAKE_Information object specified by the "lake_info" parameter of the access token response, or by using other means such as, for example, those defined in <xref target="I-D.ietf-lake-app-profiles"/>.</t>
      <t>Example: assuming that ead_label is 2 and that the value of the "session_id" field within the LAKE_Information object specified by the "lake_info" parameter of the access token response from the AS is equal to h'01fc', the critical EAD item is as follows:</t>
      <sourcecode type="cbor-diag"><![CDATA[
-2, h'01fc'
]]></sourcecode>
      <t>Note to RFC Editor: Please replace the value of the ead_label with the value registered for Session ID in <xref target="iana-edhoc-ead"/>, then delete this note.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>This section compiles the operational considerations that hold for this document.</t>
      <section anchor="logging">
        <name>Logging</name>
        <t>When performing its normal operations, an AS is expected to produce timestamped logs about the following:</t>
        <ul spacing="normal">
          <li>
            <t>The reception and processing outcome of an access token request, e.g., in terms of its failure/success and issuance of an access token.</t>
          </li>
          <li>
            <t>The outcome of uploading an issued access token at one or multiple RSs on behalf of the requesting client, as per the SDC workflow.</t>
          </li>
          <li>
            <t>Events pertaining the lifecycle of issued access tokens (e.g., their issuance, expiration, and potential revocation) and the lifecycle of the token series to which those access tokens belong to.</t>
          </li>
          <li>
            <t>The registration and deregistration of clients and RSs at the AS.</t>
          </li>
        </ul>
        <t>Similarly, when performing its normal operations, it is desirable that an RS produces timestamped logs about the following, to the extent afforded by its available memory, computing, and energy resources:</t>
        <ul spacing="normal">
          <li>
            <t>The reception and processing outcome of an access token, e.g., in terms of its failure/success.</t>
          </li>
          <li>
            <t>Events pertaining the lifecycle of processed access tokens (e.g., their rejection, acceptance, storing, and deletion).</t>
          </li>
          <li>
            <t>Failed accesses to protected resources due to missing/insufficient access rights for the requesting client per the stored access tokens.</t>
          </li>
        </ul>
        <t>Requests at the AS (e.g., from a client requesting an access token) or at the RS (e.g., for uploading an access token or for accessing a protected resource) can be effectively characterized by the transport-specific information of the request, together with the secure communication association shared with the requester as applicable.</t>
        <t>Although log entries are produced by the AS/RS, the storage, management, controlled sharing, and disposal of logs could be entrusted to a designated storage point that can be the AS/RS itself or instead a separate trusted entity.</t>
        <t>Besides what is compiled above, the AS/RS could produce additional information to log. Further details about what the AS/RS logs, with what granularity, and based on what triggering events and conditions are application-specific and left to operators to define.</t>
        <t>The AS/RS <bcp14>MUST NOT</bcp14> log any secret or confidential information pertaining to its operations. For example, this includes cryptographic secrets pertaining to (the establishment of) secure communication associations and keying material derived thereof, including own private keys associated with authentication credentials used for establishing secure communication associations.</t>
        <t>It is up to the application to specify for how long a log entry is retained from the time of its creation and until its deletion. Different retention policies could be enforced, for example, depending on what log entries pertain to (e.g., the successful/failed issuance (processing) of an access token at the AS (RS)), or on the secure communication association shared with the specific requester. For a given set of log entries that are grouped together according to certain criteria, the oldest log entries are expected to be those deleted first.</t>
        <t>It is out of the scope of this document what specific semantics and data model are used by the AS/RS for producing and processing the logs. Specific semantics and data models can be defined by applications and future specifications.</t>
        <t>It is expected that the logs produced are made available for secure access by authorized external management applications and operators.</t>
        <t>In particular, logged information could be retrieved in the following ways.</t>
        <ul spacing="normal">
          <li>
            <t>By accessing logs at the designated storage point through polling. This can occur in an occasional, regular, or event-driven way.</t>
          </li>
          <li>
            <t>Through notifications sent by the designated storage point according to an operator-defined frequency.</t>
          </li>
          <li>
            <t>Through notifications asynchronously sent by the designated storage point, throttling them in order to prevent congestion and duplication and to not create attack vectors.</t>
          </li>
        </ul>
        <t>From the perspective of an individual management application or network operator, knowledge gained from the logged information can be useful for managing the installation, enforcement, revision, and retirement of access policies at the AS, as well as for identifying clients or RSs for which troubleshooting, upgrade, re-enrollment, eviction, or decommissioning should be considered.</t>
        <t>Some of the logged information can be privacy-sensitive. This especially holds for the metadata about clients and RSs, i.e., their addressing information and, when applicable, (identifiers of) their authentication credentials that are used to authenticate with the other parties when establishing and using a secure communication association. If external management applications and operators obtain such metadata, they become able to track a given client or RS, as to its interactions with one or multiple other clients, RSs, and/or ASes.</t>
        <t>Therefore, the logged information that is effectively provided to external management applications and operators <bcp14>SHOULD</bcp14> be redacted by the designated storage point, by omitting any privacy-sensitive information element that could enable or facilitate the impairment of clients' and RSs' privacy, e.g., by tracking those as they interact with other parties. Exceptions could apply, e.g., if the designated storage point can verify that the management application or operator in question is specifically authorized to obtain such privacy-sensitive information and appropriately entitled to obtain it according to enforced privacy policies.</t>
      </section>
      <section anchor="management-and-distribution-of-keying-material">
        <name>Management and Distribution of Keying Material</name>
        <t>The approach used to manage and distribute keying material depend on the specific profile of ACE used, for example <xref target="RFC9202"/><xref target="RFC9203"/><xref target="I-D.ietf-ace-edhoc-oscore-profile"/>. In turn, the approach used depends on the specific security protocol used between clients, RSs, and ASes, which is also specified by the profile of ACE used.</t>
        <t><xref section="C" sectionFormat="of" target="RFC9200"/> compiles the list of requirements on profiles of ACE, two of which are amended in <xref target="sec-updated-requirements"/> of the present document.</t>
        <t>Irrespective of the specific profile used, clients, RSs, and ASes that communicate with one another have to use a secure communication association and be mutually authenticated (see <xref section="5" sectionFormat="of" target="RFC9200"/>).</t>
      </section>
      <section anchor="access-control">
        <name>Access Control</name>
        <t>The enforcement of access control at RSs is the main goal of the ACE framework.</t>
        <t>The enforcement of access control at the AS relies on the authenticated interaction of a client/RS at the AS. For example, this applies to a client sending an access token request to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), or to an RS sending a token introspection request to the introspect endpoint at the AS to perform token introspection (see <xref section="5.9" sectionFormat="of" target="RFC9200"/>).</t>
        <t>For a client/RS, the secure communication association shared with the AS is bound to its active registration at the AS, which the AS maintains together with related information until a possible deregistration occurs (e.g., due to a decommissioning of the client/RS). The registration process at the AS is out of scope for this document as well for the ACE framework (see <xref section="5.5" sectionFormat="of" target="RFC9200"/>).</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The same security considerations from the ACE framework <xref target="RFC9200"/> apply to this document, together with those from the specific profile of ACE used.</t>
      <t>When using the problem-details format defined in <xref target="RFC9290"/> for error responses, the privacy and security considerations from Sections <xref target="RFC9290" section="4" sectionFormat="bare"/> and <xref target="RFC9290" section="5" sectionFormat="bare"/> of <xref target="RFC9290"/> also apply.</t>
      <t>Furthermore, the following considerations apply.</t>
      <section anchor="sec-cons-updated-right">
        <name>Explicit Indication of Update of Access Rights in the SDC Workflow</name>
        <t>According to some profiles of ACE, C can request a new access token to dynamically update its access rights, while preserving the current secure communication association shared with the RS. In such case, the new access token is intended to supersede the current one stored at the RS, as they both belong to the same token series.</t>
        <t>When using the original workflow of ACE defined in <xref target="RFC9200"/>, C uploads the new access token at the RS by protecting the message exchange through the current secure communication association shared with the RS and bound to the access token to be superseded. In fact, the use of such secure communication association allows the RS to determine that the upload of the new access token is specifically intended to updating the access rights of C.</t>
        <t>When using the SDC workflow defined in this document, the AS can upload the new access token at the RS on behalf of C, i.e., also in the case where the access token is issued to dynamically update the access rights of C. In particular, the message exchange between the AS and the RS is protected by means of a secure communication association shared between the AS and the RS, irrespective of the client for which the access token is issued.</t>
        <t>The new access token certainly provides the RS with information for recognizing the stored access token to be superseded, e.g., the "token_series_id" claim defined in <xref target="sec-token_series_id"/> or a different information element that the profile used relies on for other reasons. However, depending on the profile used, the new access token might not unambiguously indicate that it is specifically intended to extend an ongoing token series. Therefore, the upload of the new access token from the AS might lead to ambiguities.</t>
        <t>For example, the RS might have deleted a stored access token due to memory limitations. Although this effectively terminates the corresponding token series, such event is however impractical for the RS to remember indefinitely. Consequently, if the AS uploads at the RS a new access token belonging to that token series, it is possible that the RS accepts that access token and erroneously believes it to be the first one in a new token series, which contradicts the correct information available at the AS about the token series.</t>
        <t>The occurrence of such contradiction is prevented by means of the "updated_rights" parameter (see <xref target="sec-updated_rights"/>), which the AS includes in a POST request to the authz-info endpoint at the RS only when uploading an access token for dynamically updating the access rights of C.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry <xref target="OAuth.Parameters"/> within the "OAuth Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: token_upload</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request, token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_hash</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: to_rs</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: from_rs</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: rs_cnf2</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: audience2</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: anchor_cnf</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_series_id</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request, token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: updated_rights</t>
          </li>
          <li>
            <t>Parameter Usage Location: as-rs request</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <t>In the same registry, IANA is asked to update the entries for the following OAuth parameters identified by their name, so that the content of the "Parameter Usage Location" column and of the "Reference" column is as below:</t>
        <ul spacing="normal">
          <li>
            <t>access_token  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: authorization response, token response, as-rs request</t>
              </li>
              <li>
                <t>Reference: [RFC6749][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>rs_cnf  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: token request, token response</t>
              </li>
              <li>
                <t>Reference: [RFC9201, Section 5][RFC-XXXX, <xref target="sec-cred-rs-value"/>]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>nonce1  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, as-rs request</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>nonce2  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: rs-client response, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>ace_client_recipientid  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, as-rs request</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>ace_server_recipientid  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: rs-client response, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>sign_info  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, rs-client response, as-rs request, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9594][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>kdcchallenge  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: rs-client response, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9594][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>ecdh_info  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, rs-client response, as-rs request, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC-ietf-ace-key-groupcomm-oscore-21][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>kdc_dh_creds  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, rs-client response, as-rs request, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC-ietf-ace-key-groupcomm-oscore-21][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Note to RFC Editor: In the last two entries above, please replace the occurrences of "RFC-ietf-ace-key-groupcomm-oscore-21" with the RFC number of that specification and delete this paragraph.</t>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" registry <xref target="OAuth.Parameters.CBOR.Mappings"/> within the "Authentication and Authorization for Constrained Environments (ACE)" registry group, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: token_upload</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: unsigned integer</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_hash</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: unsigned integer</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: to_rs</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: byte string or #6.&lt;uint&gt;(bstr)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: from_rs</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: byte string or #6.&lt;uint&gt;(bstr)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: rs_cnf2</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: audience2</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: anchor_cnf</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_series_id</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: byte string</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: updated_rights</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: True</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <t>In the same registry, IANA is asked to update the entry for the OAuth parameter with name "rs_cnf", so that the content of the "Value Type" column and of the "Reference" column is as below:</t>
        <ul spacing="normal">
          <li>
            <t>Value Type: True or False or Null or map</t>
          </li>
          <li>
            <t>Reference: [RFC9201, Section 3.2][RFC-XXXX, <xref target="sec-cred-rs-value"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entry to the "JSON Web Token Claims" registry <xref target="JSON.Web.Token.Claims"/> within the "JSON Web Token (JWT)" registry group, following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: token_series_id</t>
          </li>
          <li>
            <t>Claim Description: The identifier of a token series</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims Registry</name>
        <t>IANA is asked to add the following entry to the "CBOR Web Token (CWT) Claims" registry <xref target="CWT.Claims"/> within the "CBOR Web Token (CWT) Claims" registry group, following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: token_series_id</t>
          </li>
          <li>
            <t>Claim Description: The identifier of a token series</t>
          </li>
          <li>
            <t>JWT Claim Name: token_series_id</t>
          </li>
          <li>
            <t>Claim Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Claim Value Type: byte string</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-token_series_id"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-extensions-errors">
        <name>OAuth Extensions Error Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Extensions Error Registry" <xref target="OAuth.Extensions.Error"/> within the "OAuth Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: missing_old_token</t>
          </li>
          <li>
            <t>Usage Location: authz-info error response</t>
          </li>
          <li>
            <t>Protocol Extension: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-new-series-on-the-fly"/>]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: unknown_credential_referenced</t>
          </li>
          <li>
            <t>Usage Location: token error response</t>
          </li>
          <li>
            <t>Protocol Extension: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-coord-exchanged-cred"/>]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: failed_pop_verification</t>
          </li>
          <li>
            <t>Usage Location: token error response</t>
          </li>
          <li>
            <t>Protocol Extension: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-error-failed-pop"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-error-code-cbor-mappings">
        <name>OAuth Error Code CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Error Code CBOR Mappings" registry <xref target="OAuth.Error.Code.CBOR.Mappings"/> within the "Authentication and Authorization for Constrained Environments (ACE)" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: missing_old_token</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: unknown_credential_referenced</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: failed_pop_verification</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-problem-details">
        <name>Custom Problem Detail Keys Registry</name>
        <t>IANA is asked to register the following entry in the "Custom Problem Detail Keys" registry <xref target="Custom.Problem.Detail.Keys"/> within the "Constrained RESTful Environments (CoRE) Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Key Value: TBD (value between 0 and 23)</t>
          </li>
          <li>
            <t>Name: ace-error</t>
          </li>
          <li>
            <t>Brief Description: Carry ACE <xref target="RFC9200"/> problem details in a Concise Problem Details data item.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-updated-error-responses"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entry to the "EDHOC External Authorization Data" registry <xref target="EDHOC.External.Authorization.Data"/> within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: Session ID</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: The identifier of a LAKE session</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="sec-ead-session-id"/></t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3629">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC6920">
          <front>
            <title>Naming Things with Hashes</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="D. Kutscher" initials="D." surname="Kutscher"/>
            <author fullname="C. Dannewitz" initials="C." surname="Dannewitz"/>
            <author fullname="B. Ohlman" initials="B." surname="Ohlman"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>This document defines a set of ways to identify a thing (a digital object in this case) using the output from a hash function. It specifies a new URI scheme for this purpose, a way to map these to HTTP URLs, and binary and human-speakable formats for these names. The various formats are designed to support, but not require, a strong link to the referenced object, such that the referenced object may be authenticated to the same degree as the reference to it. The reason for this work is to standardise current uses of hash outputs in URLs and to support new information-centric applications and other uses of hash outputs in protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6920"/>
          <seriesInfo name="DOI" value="10.17487/RFC6920"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="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="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="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>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9202">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="S. Gerdes" initials="S." surname="Gerdes"/>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization. The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </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="RFC9430">
          <front>
            <title>Extension of the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE) to Transport Layer Security (TLS)</title>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document updates "Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)" (RFC 9202) by specifying that the profile applies to TLS as well as DTLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9430"/>
          <seriesInfo name="DOI" value="10.17487/RFC9430"/>
        </reference>
        <reference anchor="RFC9431">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT) and Transport Layer Security (TLS) Profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="C. Sengul" initials="C." surname="Sengul"/>
            <author fullname="A. Kirby" initials="A." surname="Kirby"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework to enable authorization in a publish-subscribe messaging system based on Message Queuing Telemetry Transport (MQTT). Proof-of-Possession keys, bound to OAuth 2.0 access tokens, are used to authenticate and authorize MQTT Clients. The protocol relies on TLS for confidentiality and MQTT server (Broker) authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9431"/>
          <seriesInfo name="DOI" value="10.17487/RFC9431"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9770">
          <front>
            <title>Notification of Revoked Access Tokens in the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="S. Echeverria" initials="S." surname="Echeverria"/>
            <author fullname="G. Lewis" initials="G." surname="Lewis"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>This document specifies a method of the Authentication and Authorization for Constrained Environments (ACE) framework, which allows an authorization server to notify clients and resource servers (i.e., registered devices) about revoked access tokens. As specified in this document, the method allows clients and resource servers (RSs) to access a Token Revocation List (TRL) on the authorization server by using the Constrained Application Protocol (CoAP), with the possible additional use of resource observation. Resulting (unsolicited) notifications of revoked access tokens complement alternative approaches such as token introspection, while not requiring additional endpoints on clients and RSs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9770"/>
          <seriesInfo name="DOI" value="10.17487/RFC9770"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="I-D.ietf-ace-edhoc-oscore-profile">
          <front>
            <title>Lightweight Authenticated Key Exchange (LAKE) and Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE</organization>
            </author>
            <date day="22" month="October" year="2026"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  It
   utilizes the Lightweight Authenticated Key Exchange (LAKE) protocol
   for achieving mutual authentication between an ACE-OAuth client and
   resource server, and it binds an authentication credential of the
   client to an ACE-OAuth access token.  LAKE also establishes an Object
   Security for Constrained RESTful Environments (OSCORE) Security
   Context, which is used to secure communications between the client
   and resource server when accessing protected resources according to
   the authorization information indicated in the access token.  This
   profile can be used to delegate management of authorization
   information from a resource-constrained server to a trusted host with
   less severe limitations regarding processing power and memory.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-12"/>
        </reference>
        <reference anchor="OAuth.Parameters.CBOR.Mappings" target="https://www.iana.org/assignments/ace/ace.xhtml#oauth-parameters-cbor-mappings">
          <front>
            <title>OAuth Parameters CBOR Mappings</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="JSON.Web.Token.Claims" target="https://www.iana.org/assignments/jwt/jwt.xhtml#claims">
          <front>
            <title>JSON Web Token Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="CWT.Claims" target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OAuth.Extensions.Error" target="https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#extensions-error">
          <front>
            <title>OAuth Extensions Error Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OAuth.Error.Code.CBOR.Mappings" target="https://www.iana.org/assignments/ace/ace.xhtml#oauth-error-code-cbor-mappings">
          <front>
            <title>OAuth Error Code CBOR Mappings</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Custom.Problem.Detail.Keys" target="https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#core-custom-problem-detail-keys">
          <front>
            <title>Custom Problem Detail Keys</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Hash.Algorithms" target="https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg">
          <front>
            <title>Named Information Hash Algorithm Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OAuth.Parameters" target="https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="EDHOC.External.Authorization.Data" target="https://www.iana.org/assignments/edhoc/edhoc.xhtml#edhoc-ead">
          <front>
            <title>EDHOC External Authorization Data</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="SHA-256" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf">
          <front>
            <title>Secure Hash Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS PUB 180-4, DOI 10.6028/NIST.FIPS.180-4" value=""/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9594">
          <front>
            <title>Key Provisioning for Group Communication Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document defines how to use the Authentication and Authorization for Constrained Environments (ACE) framework to distribute keying material and configuration parameters for secure group communication. Candidate group members that act as Clients and are authorized to join a group can do so by interacting with a Key Distribution Center (KDC) acting as the Resource Server, from which they obtain the keying material to communicate with other group members. While defining general message formats as well as the interface and operations available at the KDC, this document supports different approaches and protocols for secure group communication. Therefore, details are delegated to separate application profiles of this document as specialized instances that target a particular group communication approach and define how communications in the group are protected. Compliance requirements for such application profiles are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9594"/>
          <seriesInfo name="DOI" value="10.17487/RFC9594"/>
        </reference>
        <reference anchor="I-D.ietf-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for the Lightweight Authenticated Key Exchange (LAKE) Protocol</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="26" month="October" year="2026"/>
            <abstract>
              <t>   The Lightweight Authenticated Key Exchange (LAKE) protocol requires
   certain parameters to be agreed out-of-band, in order to ensure its
   successful completion.  To this end, application profiles specify the
   intended use of LAKE to allow for the relevant processing and
   verifications to be made.  In order to ensure the applicability of
   such parameters and information beyond transport- or setup-specific
   scenarios, this document defines a canonical, CBOR-based
   representation that can be used to describe, distribute, and store
   LAKE application profiles.  Furthermore, in order to facilitate
   interoperability between LAKE implementations and support LAKE
   extensibility for additional integrations, this document defines a
   number of means to coordinate the use of LAKE application profiles.
   Finally, this document defines a set of well-known LAKE application
   profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-app-profiles-07"/>
        </reference>
        <reference anchor="I-D.ietf-ace-group-oscore-profile">
          <front>
            <title>The Group Object Security for Constrained RESTful Environments (Group OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  The
   profile uses Group Object Security for Constrained RESTful
   Environments (Group OSCORE) to provide communication security between
   a client and one or multiple resource servers that are members of an
   OSCORE group.  The profile securely binds an OAuth 2.0 access token
   to the public key of the client associated with the private key used
   by that client in the OSCORE group.  The profile uses Group OSCORE to
   achieve server authentication and proof of possession of the client's
   private key.  Also, it provides proof of the client's membership to
   the OSCORE group by binding the access token to information that
   pertains to the Group OSCORE Security Context, thus allowing the
   resource server(s) to verify the client's membership upon receiving
   the access token.  Effectively, the profile enables fine-grained
   access control paired with secure group communication, in accordance
   with the Zero Trust principles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-group-oscore-profile-07"/>
        </reference>
        <reference anchor="I-D.ietf-ace-authcred-dtls-profile">
          <front>
            <title>Additional Formats of Authentication Credentials for the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document updates the Datagram Transport Layer Security (DTLS)
   profile for Authentication and Authorization for Constrained
   Environments (ACE).  In particular, it specifies the use of
   additional formats of authentication credentials for establishing a
   DTLS session, when peer authentication is based on asymmetric
   cryptography.  Therefore, this document updates RFC 9202.  What is
   defined in this document is seamlessly applicable also if the profile
   uses Transport Layer Security (TLS) instead of DTLS, as defined in
   RFC 9430.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-authcred-dtls-profile-04"/>
        </reference>
      </references>
    </references>
    <?line 1758?>

<section anchor="sec-benefits-for-profiles">
      <name>Benefits for ACE Profiles</name>
      <t>For any profile of ACE, the following holds.</t>
      <ul spacing="normal">
        <li>
          <t>The SDC workflow defined in <xref target="sec-workflow"/> is effectively possible to use. This is beneficial for deployments where the communication leg between C and the RS is constrained, but the communication leg between the AS and RS is not.</t>
        </li>
        <li>
          <t>When the SDC workflow is used, the "token_upload" parameter defined in <xref target="sec-token_upload"/> is used:  </t>
          <ul spacing="normal">
            <li>
              <t>To inform the AS about C opting in to use the SDC workflow.</t>
            </li>
            <li>
              <t>To request the AS that the follow-up access token response includes certain information, if the AS has successfully uploaded the access token to the RS.</t>
            </li>
            <li>
              <t>To inform C that the AS has attempted to upload the access token to the RS, specifying whether the uploading has succeeded or failed.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>When the SDC workflow is used, it remains possible for C to always obtain the issued access token from the AS.  </t>
          <t>
That is, by specifying the value 2 for the "token_upload" parameter in the access token request, C will ensure to receive the access token from the AS, even if the AS successfully uploads the access token to the RS on behalf of C.  </t>
          <t>
This is useful in profiles of ACE where C can re-upload the same access token to the RS by itself, e.g., in order to perform a key update like defined for the OSCORE profile <xref target="RFC9203"/>.</t>
        </li>
      </ul>
      <section anchor="dtls-profile">
        <name>DTLS Profile</name>
        <t>When the RPK mode of the DTLS profile is used (see <xref section="3.2" sectionFormat="of" target="RFC9202"/>), it becomes possible for the AS to effectively issue an access token intended to an audience that includes multiple RSs.</t>
        <t>This is enabled by the parameters "rs_cnf2" and "audience2" defined in <xref target="sec-rs_cnf2-audience2"/>, as well as by the "anchor_cnf" parameter defined in <xref target="sec-anchor_cnf"/>. This seamlessly applies also if the profile uses Transport Layer Security (TLS) <xref target="RFC9846"/> as defined in <xref target="RFC9430"/>.</t>
      </section>
      <section anchor="lake-and-oscore-profile">
        <name>LAKE and OSCORE Profile</name>
        <t>When the LAKE and OSCORE profile is used <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>, it becomes possible for the AS to effectively issue an access token intended to an audience that includes multiple RSs.</t>
        <t>This is enabled by the parameters "rs_cnf2" and "audience2" defined in <xref target="sec-rs_cnf2-audience2"/>, as well as by the "anchor_cnf" parameter defined in <xref target="sec-anchor_cnf"/>.</t>
      </section>
    </section>
    <section anchor="sec-cddl-model" removeInRFC="true">
      <name>CDDL Model</name>
      <figure anchor="fig-cddl-model">
        <name>CDDL model</name>
        <sourcecode type="cddl"><![CDATA[
; OAuth Parameters CBOR Mappings
token_upload = 49
token_hash = 50
to_rs = 51
from_rs = 52
rs_cnf2 = 53
audience2 = 54
anchor_cnf = 55
token_series_id_param = 56
updated_rights = 57

; CBOR Web Token (CWT) Claims
token_series_id_claim = 42

; CWT Confirmation Methods
x5chain = 24

; Custom Problem Detail Keys Registry
ace-error = 2

; EDHOC External Authorization Data
ead_session_id_label = 2
]]></sourcecode>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <section anchor="sec-08-09">
        <name>Version -08 to -09</name>
        <ul spacing="normal">
          <li>
            <t>Renamed EDHOC to LAKE as appropriate.</t>
          </li>
          <li>
            <t>Fixed use of "token_upload" values in access token response.</t>
          </li>
          <li>
            <t>Used normative language on the AS creating a token series on the fly.</t>
          </li>
          <li>
            <t>Guidance and requirements against possible group-audience mixup when using the "anchor_cnf" parameter.</t>
          </li>
          <li>
            <t>Added example of AS-to-RS token upload using the "updated_rights" parameter.</t>
          </li>
          <li>
            <t>SDC workflow with a group-audience: after a failed upload, the AS continues uploading the access token to any remaining RS (unless the error code "missing_old_token" is received).</t>
          </li>
          <li>
            <t>Added "Operational Considerations" section.</t>
          </li>
          <li>
            <t>Updated security considerations.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-07-08">
        <name>Version -07 to -08</name>
        <ul spacing="normal">
          <li>
            <t>Extended creation of "token_upload" to support the creation of token series "on-the-fly" if need be.</t>
          </li>
          <li>
            <t>Defined successful/failed token upload from the AS when the token targets a group-audience.</t>
          </li>
          <li>
            <t>Defined EDHOC EAD item Session ID.</t>
          </li>
          <li>
            <t>Clarifications:  </t>
            <ul spacing="normal">
              <li>
                <t>Relation between "token_upload" and use of RFC 9770.</t>
              </li>
              <li>
                <t>Values to avoid for "rs_cnf" in an access token request in some contexts.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>IANA considerations:  </t>
            <ul spacing="normal">
              <li>
                <t>Added references to IANA registries.</t>
              </li>
              <li>
                <t>Added updates to recently registered OAuth parameters.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Fully decoupled the "to_rs" parameter from the "from_rs" parameter.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>
            <t>Updated requirements for using "rs_cnf" in an access token request.</t>
          </li>
          <li>
            <t>More precise requirements on including/omitting parameters in access token request and response.</t>
          </li>
          <li>
            <t>Specified parameter encoding when messages are encoded in JSON.</t>
          </li>
          <li>
            <t>Moved content on dynamic update of access rights to the section about the "updated_rights" parameter.</t>
          </li>
          <li>
            <t>Clarifications:  </t>
            <ul spacing="normal">
              <li>
                <t>Access token responses are successful by definition.</t>
              </li>
              <li>
                <t>Successful response in general vs. response with 2.01 code.</t>
              </li>
              <li>
                <t>Explained the case where the RS has forgotten the access token to supersede.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>IANA considerations: update entry for "access_token" in the "OAuth Parameters" registry.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>
            <t>Defined dynamic update of access rights in the SDC workflow.</t>
          </li>
          <li>
            <t>Defined the new "updated_rights" parameter.</t>
          </li>
          <li>
            <t>Clarified practical requirements at the AS for processing the "to_rs" parameter.</t>
          </li>
          <li>
            <t>IANA considerations: update in the "Parameter Usage Location" column for some entries of the "OAuth Parameters" registry.</t>
          </li>
          <li>
            <t>Adjusted abbreviations in the CDDL model to avoid collisions.</t>
          </li>
          <li>
            <t>Removed appendix with placeholder ideas.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>
            <t>Error handling and error code for failed PoP verification at the AS.</t>
          </li>
          <li>
            <t>Extended definition of the parameters "to_rs" and "from_rs".</t>
          </li>
          <li>
            <t>Fixes and presentation improvements in the IANA considerations.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Revised order of some sections.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>
            <t>Updated document title.</t>
          </li>
          <li>
            <t>Defined name for the new workflow.</t>
          </li>
          <li>
            <t>Improved definition of "token series".</t>
          </li>
          <li>
            <t>Revised note on the new workflow suitable for "unaware" clients.</t>
          </li>
          <li>
            <t>Revised criterion for the AS to choose a token series identifier.</t>
          </li>
          <li>
            <t>Extended semantics of the "ace_profile" parameter.</t>
          </li>
          <li>
            <t>Specified means for C and the AS to coordinate on the exchange of public authentication credentials.</t>
          </li>
          <li>
            <t>Removed content on bidirectional access control.</t>
          </li>
          <li>
            <t>Suggested value ranges for codepoints to register.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Defined parameter and claim "token_series_id".</t>
          </li>
          <li>
            <t>Defined parameters "to_rs" and "from_rs".</t>
          </li>
          <li>
            <t>Defined use of "to_rs" and "from_rs" in the OSCORE profile.</t>
          </li>
          <li>
            <t>Lowercase use of "client", "resource server", and "authorization server".</t>
          </li>
          <li>
            <t>Fixed naming of parameters/claims for audience.</t>
          </li>
          <li>
            <t>Split elision and comments in the examples in CBOR Diagnostic Notation.</t>
          </li>
          <li>
            <t>SHA-256 is mandatory to implement for computing token hashes.</t>
          </li>
          <li>
            <t>Fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Removed (parts of) appendices that are not needed anymore.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>CBOR diagnostic notation uses placeholders from a CDDL model.</t>
          </li>
          <li>
            <t>Note on the new workflow supporting also non-ACE clients.</t>
          </li>
          <li>
            <t>Revised semantics of the "token_upload" parameter.</t>
          </li>
          <li>
            <t>Defined the new "token_hash" parameter.</t>
          </li>
          <li>
            <t>First definition of bidirectional access control through a single access token.</t>
          </li>
          <li>
            <t>Revised and extended considerations and next steps in appendices.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Definition of the "token series" moved to the "Terminology" section.</t>
          </li>
          <li>
            <t>Clarifications and fixes on using parameters in messages.</t>
          </li>
          <li>
            <t>Amended two of the requirements on profiles of the framework.</t>
          </li>
          <li>
            <t>The client has to opt-in for using the new workflow.</t>
          </li>
          <li>
            <t>Parameter "token_uploaded" renamed to "token_upload".</t>
          </li>
          <li>
            <t>Updated format of error response payload to use RFC 9290.</t>
          </li>
          <li>
            <t>Security considerations inherited from other documents.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/>, <contact fullname="Rikard Höglund"/>, and <contact fullname="Dave Robin"/> for their comments and feedback.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y96Xob2ZUg+J9PEUN9X4u0AQgbV5fdxYSYTlWmliaZdtXn
dLMDQIAMC0SgIwBRdFr9LPMU8wAzLzZnu2vcCAQoKjNdlbJTIoGIu5x77tmX
dru98+E0GuzsrNLVPDmNLm+zfBW9TItVno7XqzRbRKPbOF1Ee5cvR/vRn7P8
/Wye3UfxYhq9Se6jt2fr1W30Ls7ju2SV5EU0y/JodZtE+HmyWKWTmAbB5/Gj
LE//zp/gg6NsARPB8Mk0Ol98SPNscQcvFdHe2eh8P/oaR72HKXfi8ThPYKE4
JXzlrsPMvjPNJgv4+TSa5vFs1U6T1awdT5L2vTzfhufbS3y+aM/jVVKsdnbS
ZX4arfJ1sep3uyfd/k6cJzFAIpms83T1sHN/c6rnTBc30R/zbL3ceX9/Gr1a
wKSLZNV+ibPtwFZPo2I13SnW47u0KGCXq4clLObV+dXXO+vlFCc8jU5gmhb+
3aO/+/T3AP4eDno7Ox+SxTo53YmiG5zm9HPhCJvfh8Hu4nR+GsEv/4og6WT5
Dc6Qrm7XY/q4fX/zogJOOzuTbAr7Po3WAMzjnZ2Ypscl4p+2/BtF6QI297oT
XaXzbBLrj/k8Xsf5JPO/gmWcRhevLs+js6/0h7CRJAFAviri2d+yfFrcxKt4
EfX7+okJnMpp9C3gqBkK1ojYe97uHQ6jYdf6fL1Y5fD45X0yTRb684QhcofL
6qxoWf+ap50iCW/rjx3AhzkAJcm9jf3x//t/clhe6Vva23meTooCDimwv6ss
L27ju4Xa3+BL7O8mg8XBrnhx/5rIejqT7G5nZ5Hld4BDHwjdLr4eDQ77J/Lj
8HB4LD8e9I+78uPh0VA9cAg4Kz8e9Q/66seDnnrg6LirHjjuH6hPjwcn6tnj
w55+4Gh4pH480VOcdPW48ONA/djX4+IVMj/2zY/m2aMj/eOJfm04sH7UI8A+
1Y9HR/qB4+Eh/viq/bKjiUkyvc0m7ayYZHnSXubZLJ0TCIkWdgw16oy+envR
eR0vl3B9Cr4w7uUhJHl19uaMfkf6cBrN4rlgoZDkEonFYSM1LD8Z5zeIU7er
1bI4ffHi/v6+k8aLGC/6ixgo0Q3TA7zj+F/n4+3qbv4sw9XwNaeR25Nxlrfv
zMj/dvn2TefPybhzlb1PFp3RPE7vHr8RHC2C0SIaLeLRtlv/3+5X+J+sf6JG
GP356nMXR0A1i9uDIfcftcQJLHHiLbGdJzfIUh80lpx/XCUL5BBF5zzP1Vof
jR1muIiGiy7MhFus3UeI0geyq0RP105wOrMt/K0zAmL1pMjPe8Jhnxr5aflt
pK4l5B+BRJDddd7l2Xie3HVeJisgqZ1vk4fPQDIaMpIhIx4ywiG3xDGiPOaY
vN8V7uGnE5oSyRRO2Z7SlO33POU3cXHbOZsDlwBR4DMuzxuYeAri0Iw5CjA8
HDnSIz8SHZHDTtupGbb8iWz1FqZrx/ObABV+Mrr7Za7S0h7//OU3b0dEG/JF
PO84gl7nJcgJj94MjRypkT0REkfebnfEAvlvRRKIKSbxFAa6/Oas3T84rFzs
m1eXV/biSNROGGcuQRiaxvmUvi9AYEkKPG5+Kfr61bvL6N33X0W942572Ipe
vn0V9bqdw27/+AU+0MEHOvSlBY2z9Q3cggjEhYPgNhcf5sv1uOgsAEc7N9mH
F/gDfvICh/MH7iynM9AaFA5q8QkEGi14HJwMHbFhHr9P2kBalLhQlIQKEvcD
QoXzEMJyksMNmK7mhXlqBxUEkBkR9OfffX0a7f4FFtH+d/jz192dnXa7HcVj
VBAmoO5cgXJWLJNJOlM6BTxLSkk0TWagQhRPpr/NlP4GSsFtWkSgna3x+0h0
IZ4IVCv9IM0Dn+YJDJ+YlcWoWM5BMSk60V5vP3q1cha7QWtVWg08G6/ohdjZ
CqDZhySHRV/uRxOQxddFQttbL+dZjLoPLAu0pElSwHQkHqyyKI7ypMjW+SRR
78NI4+Q2ns+ibEazTOYp7BZW3AddVvRipir9TldGShbTZZYuVq0oNXtagJpr
CAMBJVmwGsa/wbPEg6e8/wLEfTyrQs28C9hyLfixa4aCpQxCS0Fw/J3Iang9
sbsiWUKhFwXjDp1DuSVgKwioU43OLgm+kwz0unQBKIAwwy+Sj5PbeHGTuJB7
zpv14Ayfwt2cpxNatoWjeDPwV6B9rej+Fo/pNoOjxCnHCaj48aJYAqIAso4f
og/xfA3z5VFKL81S/hgwD7BvMUl+B28DztaDOS+uJ4uZBWFt/6g+Z1C6C74B
iFmC4j0A4QGB0J6QpJMIIDOdExauBIotmub+Np3clo+JX0KRBsY8lGNZ5slE
XznA/JsU2cAyfkAMj5iU4a74ZYD4Eq42PD7JFh+SB7kCZmSBL9z/SQoQ/gpG
yx+it+O/JZMVMHuYrQCg8rHsoci2HwEs4V5N8eoQ2iTRHdynGM5cVgFXmzET
z0yvIIiHzqrjObAlGPgeJA0B50nXB3O64OPEcXGNgCMZwUIRZJljik/KmfRb
6qdBixCRfgOVEeB6RHCFM6ejus8URuTJ/16necJUEDavh5fvDUlkunyXTqfz
ZGfnGRqT8my6nhDMnkU/Pkvxg09MsJ+UGkc//iiK9KdPBrQwaj65TVcAHWTG
dEwwKlw7oXyACrCgOU01saaaJh9SeKATnanrvgc0FwGRFCseuICbS8sEKNzA
NcQruExyMZIBbc9BKsYHK8lyynQCjxwH8egxnjagI9NrxnGfXONnzPdLdHvv
4nKfD3iGt2L+IC8DVOD4ECCJIUKFuoUXl/gYEbIbNYG9J+GxjFH+ijpyrA7v
AyEWGd0dMq7xOp3TyON5NnlfeCTFO0q0y3z6REBwkOBsuZwrlAGdY5VN4Pj2
RtnZu31+EU03gAN4ouoyEpUEEtja6nLTaGi7kdEm2d0SpA3NIBi8pLvJOJdw
aZmsILJO8oeljPf28lzGQwPQp0/qx4EMXSTzWRtxkfcoJyTIZcMYMPIVoMl0
muK3LXgRqfRKX3ktjqi7jwfF+pHmX/AGXLp0GeNTco54aM5Vgc3erRcIaKCL
RF9SxqJC4UUhtmRaLZ5CoUWRB6SKgg4C2bKcZF9YSxTa2fnNYyUhbaZ3MHCv
SBKYDJarLcEwo5Auf3V4Z+wLwOxI2Pymqwi3xxGXRkpGWEQsWRf40Thb82WD
fwHKCcqRsMeXI7MRZNEG5MSuFkSE6DBhFQ98xPcoVLJsoY8LoTNP4I4lq/sE
2ZkWVGB5aWFTuRbcyNWG12Xr7hiLbAXnFJUXjrd9AWLk3ZjwEwGTw3pBcHN5
tH7BYlAWPjBIRLBCwTUDRNbvyClnKFK3EB7Ar+g64vknH+O75RxwVoQwpRXg
yo184Yu+uO4xbhcI3RqWo7YL4hxeBiXAlaBE7Jmw/uLSx9xaeXeTRGXEIht/
zXA1GEzAK/DiT+brKWpSUdSOdmn8a0bh3RaLLSAajvCMGDvVhLQfEFCypdCH
jM5g5R827ghGUG/pYQI4rhbLmzQqiLk4wGVKM3ScpaM5xFq4mRboz4cUrWh8
HLE509uWnDfcaBa+pkS+SprPrQE3ooJgAckftE38sFjTK7M13kneAkt+4atf
v6HrvPAPQW1D1kF7sYxCfJfm8YOZEgZYouBUkAvPAIQXV0emgosD5C3MfcEj
F/QGNL0cvb0410xGXVVkX0AOSO6cJsUEyDNSFQBWMpshA/uQAKySRTyeqxXS
bZ6VkYkvBByDzKFAhVKUC6zKgw8Ci6QwBa54tpKNy0FXnOl/BsCxFtdvAjgi
I6x9og1VTXNxqcUDNuTE62mKWqRFSEugSvXtEbp1KYLMYecEB9Y0fl8tVI3a
eKlat82faKl6JYsJSBqk/D4Sauhwj3iYQtGekeZiMAYo6CmKP97bIv4Dgu0l
nZsOYYJMp0XtgF4e4J495Ay5906/4qUw/3CoLlsrr9NpU5CMWbI2h0R7E5Dz
aIpzENkD6qUGxLNibdg9J+HksH53GEL76cMivgOezDeYRUt5HaSN2xXrcJr+
k3huj07OrBY5vmGEwK7NPSW4EXh+E+3yXNNrnqQWOkI7mDvhfqZKhqAd+NxI
06EQsRHxixXHNAd0Q9mIQIyAs+EDS+8knVYVdyvdBwR/CZqK/DggJQ6n5J3H
2Owayz9B5TksNNqCkhwO2ZdldiM81clOngyHKtPon9LSF1LQlf1CLYuMUTbY
aGdttZtpG5dUD62IjeBPbVB0j1ixkEGnb1hIT9QEtqqTRc3XLPGRAJJ+pgHS
uU+2Zd03MxKwRHRgjFASyAzUcRF/ASPS2YOy2mUkPC4ztNMUov47CLXM0w+I
eMgzCEfgJTzgkD1fnbZ1wOwZxunhdJfZstFVeKyZleDEttawoRUtJ5stqLaJ
wnK+oFkVxLdbf9oGttWShcvxIxfqOcfYJTh1UkFoGLB6EZsuzSvXcktrJiZj
O5F8M6tr1ggQwT7ayywRkw1U/MFwYN2G7U287twKCcg4cbdEbHJv6sgR9UIA
syesh9azZ9EVmiAX2Ty7eYieoRl5ZT4QYzJdCIysi3Zff395BfyY/o3evKWf
L87/x/evLs5f4s+X35x9953+YUeeuPzm7fffvTQ/mTdHb1+/Pn/zkl+GTyPn
o53d12f/scug3n377urV2zdn3+1q27w2e8Vsfx4jZYblw06RksfFjpb/8Z2v
Ru/+3/+7NwRg/V8Avn6vh8ZH/uW4dzSEX/Dq8GzZYv4gv6LNbSdeLpOYRD84
GaBMy3RFvAT1HGBkoBEDsUQU+AtC5q+n0b+MJ8ve8A/yAW7Y+VDBzPmQYFb+
pPQyAzHwUWAaDU3ncw/S7nrP/sP5XcHd+vBf/vsczZ/t3vF//8POzs5FAiIV
mmFyZNdLtn/zecxA4pmnADktwyJ6MfMG8jVJ0A6C2uTK6PvufUDqv9GbYYkq
FoOi47lP4MDwX1pA7eRuSFdBMV2FslUPTtDyTVbpP1+hrRskRFGIXyewlqnw
RoxNJGpwJZtVl4vYGPrdUbwWuosGQxAycsRW20KcOu4lw8kt6z0Zq9ncvJ7H
eYuvhBimCsuz0qrxX1T6TzruqRL9/MyjRTeC7UUwDgMMJ4le4n7ZsvkdSEhr
ZFN7o5cvv1MHcNjr0kt4SJb7oBX9W/whvoRrvlwpX8GbTHkbMIRQDdA/OFF0
G50GFT4D2Dm8bkkiuKtoV0lPu5qrkn2YLevkMITd8kFNzU4cbwvoQnjOyEFB
y8B3jI+IuC1g6QsWL3CNL8ifJ95HI0fRV5b/XXuX2LBLUDYrUIoyLHr3h7/E
P/x1wTj4YDwVxt0pbyufw657WqIc0d59CgxA+3qdo9H4jgRGlzyvC+G6BlqE
KsQyryyt6hSEiiJZlRwzLaK68KlYmAHw42y90BSD1FcS8drwf0vE23uXvdsn
/kXYnuMVAMGNNAEg8KKtiWJJo4iqbEaNU7gRWsQU08e+1h/V1GSCghUC8UKl
2NGlSSAQrSOJOI3AFSeJReNJ2q+NEzTv4p0my4YyX9BAFM+xBCZfoJ5yk9BV
+wBvT1kIemfJGEhPUZa2VOY0F6ld7PHiEEn/Tu5Zgzw8I8BnxqcbreL3jC5o
XZhQMLltbqlWuxyfjbLoX2lj8qlv1PD9tejiZOuHSJAmlORKG79xJOUnIcqD
iyDyRA4Nz/RhmboQZdLxnHxr05a+jbjU5yB1PSdWEL16uc8mDdoM8AabNRDF
D2J9PMmzxcNd9N3Zt+ctPLZ4Idbt71Djv0/wb5vHwZffAsqei67YwkeJZiRK
dmXPrBGiYa0csKcl1oP+MfEIa5OKo8yBzeSM/87TYtvCyMBI4o8RDQXt2GVz
Z8RWntB6ED68K5L5hwR4Jl619UJ0XRY0FVEudnZ8Gs40GWi9Tep5jApqc86u
KJw0z9Y3t+wT8WVCgHWOfnkagiadpvHNIisAzEjMRJwowirxsQja1hp//PFs
SS6xj9Ef1be02E70MjAyOrVI6o/J0bVKFlohU5cxBlL4cbUGpS93HeVKatdu
qedsCsVlkIECyecrIdtVWwuCryV+yvVkZcJM0LmUPL98+/r8+s3Z6/PntGTx
L2oKyYYRjuvkbegXNAfBU7wDXXMugjGBdJbetCfT6bxN37BOImYR61NWPLWX
8cfkubZfP49Oox/+spsXPVQU8qK/+8NfP0UFxn6yw+/Hg2HoEc3NMwrGOZ+m
qyw/jd7NkxgED5g1UZcK4HyTx0tglXBmAMsVmixRPU9Ynb1l/pcAdQdhqKX3
uyXolzyz7bltchpaxvryR8DKp16phpHaP8YeIcltmvmHOqUTILCzc1Zx44aO
atsKaANA1ZHUZAuSt8ZxASDX9FDbcb1tZ/OpFZ5AhBq9sEXLsv+IwbcgXl1l
7VFhQZXu5MtVsozOQLhm0kxxcHaMj3L/gs7+nryl2RjDUtg6P1HGptogopZh
VqsMGD/ytZKLTuCDUNjEmVlTQQ5rrBW419Tz4JExLSVPms2pXD0CfxdYIIYT
V7CNdNpO74FXmUsJfl8B/Jg8hixvOJ2GgArWIZuZCQfQXgobJqwaGZs7El0Y
IhBehtKsugXW2huEqMDimLrCrdDbJfJiIYGasWQrcyUeHVNmBQ6bUDIGFWp3
LBMrcOsZ4Z31fGVsUGoEnoNf/3q/IzklhcQV3Iu3ky+UtXkrSEXcbYAk6EIt
bklop4B8IEsZyJEsO96tBcI2vjC6yOMsiDqRH8wqPTeadv+6crYnrFVb6iwr
Hf6yMTcPH0OW8uPGgHuiJqL5sO0pnphtCJom1QE/xo3kOjrIk6W0P0TeoHfB
hCjBoMr7ifgCbOtDmq0Lo+KUnFE2GhXRSw6rQ93h/5g/O79ty5/fRvV/9IPq
+Z1/qK/+Ab/une232yLtX8hO5Mk//MMb6h/Wqxtm/YdnBbJf/ReY9Suc9Yx3
zpPrBdKDl2zvCM36W/WenaMUXlX51YtkBmd0qzIDsyWTqP1aMG3Yq/z5n5Xw
eeXgi4JytPdy/x/0zojvcfU8FwqteOh/7J3vV0yld6Rxdl8/tsXx6cc+NH/n
t9UARDwbGTz7rYtpPp5thWYEHKafUQnLvsY532mWrZ8sY9mWczqrfexV/K1z
oX88jZ75EhEnVf1+FynqVyRQ6dBfJcN1dj+JdlsIftkhpPGcksQwsKZxOKkn
oS2Se0tCUzzt9dl/oKGxWC+Nb5apXSf6fjFP32tPbNPgRy2dbBtuWuaEJu7U
/q4UgAo6Wjg8T4dFOlIWunxQ3p46ksfqYSlxA9MsYTPcImHpXwTIcsCBis1C
fjNXkiIaS8qib5HCpA+GoRMPKbN0I1sg40jFZMXmFvwXNWNkNfM8iacP+wZQ
zaLjWwHnYUBqUoa3klBorCEmUCQoCT4Vk3sqjufd9K1phMsEA+NoXqjWI4Te
5oXyx2KJ4fVswRhr9/VblzFbTLI5nHmcSm5L3NKC1v/chjX9w3n1Hzx6+3u6
voFxwtyXmS89sHfW0z+r7zdxZZsjM0PW69k76+/r7wPrqWTR3r62A8kH/fOH
bV7d6uKMegZT997qw/wSF2fjOLSevs/f1W2212PJB5+3ntoLqMSNCnnjJ4LP
UxHMkGBiCwK2YNLQ2ESCymvMBNYZy1qLdyL9REe3LG7KM1WgQkTeCTbmRO3o
uzpJw+Wkn2M+ahkGa9k1/IjGzckD5ADyTWxogbPTFDBIhOUh8hrrOVIrOFb5
4y+Ro94l8cKEnTkZD1bwmfifgzlsCg7ssbGSg9G5rLh3wSaIlQmppHDz1Tpf
VIwpNBJeYutRyzrM2JKuLNlLdlEpMGkh0MKDHiACicAY9YRIUsIhLVZ6cZ2e
YNmyxDkrErOUTv03jHcmIddCMJL/qlDRWm1/42ov2ET3YIlbHKanXbTwST3I
FMjPembmr2DiVzXnpCXwgPSs8JvyGler5G4poQMbky4cg6slflflxoxjtM5L
hCmBIUJLP2gwUzurweyw3/RSFUvrVlnGx/K1kk0/1dVi8HaiGnWDYxNbdZcI
r6KOIfGf60RvUYm4T9UxhgfR79sA8I2idMvv46IstlcCIISC2i6mDspg4kjf
WML/bAL6TKGs3D547Ntvg8oKT7618wZ8k3bl3fiK4nTYRhlNYgW55iZlQwbU
kCMFiRoCMGICYBRTvk6cocUTxQF17GfQxixIqdUX0ctWdM7A/5osqbW6vsRa
/VMmS5Zg90TZkn+m9PZCkUMbNhxMUxqlqElLpRDGcWIQpuzk0E68IjroHHeG
nQENcNg5cHx6Gw03QjvZe0GsTiVsIztXRRhKfIm9d35qi5sao4ztqUnyVqhd
Hs+IEHYgklq2E6ezXW6Huf0hvFUJMcU6RWMMB7+X05J5APYyoPElvucIg0iF
WdsRLGQqMh5GtRUJmHVCoOTYdZaMFVw2Cni10OPBMUQ88jKbpxOC9MpcmzF5
uEG4X+fM/EDayfDuT0wMlre0mYo/1/vUi4o4caO0FbVMIvjMUOk2OMNMMzFV
fUiYIjDzINiUC/YY6KhiEoRkREVcQ9oDbdQOHEBFwJS0MNTcdfSijzZgE2MU
JfIbY7pJkMMUytBmUwp9cMZSykHetCe2XmiHfFyw8NLmtz6VqMZWVlW0FaI3
6j5T8i2xu4JjQfOFK1IGmbkFJmTHnAV1pQGPwxkxVs7EHa4JGehEf76lag5y
VZhul8h0ja/RQxVAOCPRW4muFJiET68X5pDfvQVS6imEAfFfbx0OKsOA2vq9
B5Ouy9lsM8K4cB7bF0hh4yIGRCRWmrKZxG85awqGSij2mE8AIyrF+uzyOdsW
bcphwIM5TICX7pZilWlo3r96Q1X7KdFugCQdBZuFo+iy4oDLx9r0JK0IXIMF
vtDfbLsoyuIWp8ECFFr0Lyd5sty1tFwopIaGni3WINIBrquUJJB3LACvslx4
SR0kW6rkmIpgDR2Dmzb6JADY2fkmu08+oDCWeir5VoVFimB2aGsT+Yrn9/ED
hbw/4JC2fO3gSsDSEKIA5fh+JzjHDK5BuhGIHvBKgp4SHFkXZgNKQzQ3B2QZ
3qxFqnuzzTr1xs4EW7FIAObkJdPCqfAXgBQ8OkdUiG8Ek5OPWNsoXdnGLq3O
WanF1jr9POSq7HAr90oeNT5Mk5OhxQh9iJIDEnP1AaGtkqZmxcBLqjXllzHa
OWeiXYIyz4alBzR36+oSM7u1058D/BNFQQ6jV7ZVdTCFinm241XKNw+lBRiX
FQGQJ7P1fMpx7Qbz7FFYHOBIM18rrWPYlTBzTBw1x6yCzNGQqOahCMzNUCwn
klcrJHRxkCHQDStn3VewWMKxeaLYp4LaFgx0E0e58gGnCjnaqbE6Jk1FuxJG
e3Fc4VtCwaTYo8GqVq7EU6sgDytKeVJIPFsgECGOFuu7sSQPhKMCP7NIkApS
BfXWLbbBleCa1Mi04/f8QXvdTq9UxANEd9saJpCxP6oNzDBwqDKq+bZ4UdhU
8HKVJ6MQy+Voc0hsCXj+Np0svVoTP80ac0AkmmwN1Q7M0g8A85kyTTu+Z+XR
exYAL7lJGP2qDbNFpHIko5U2n9aAT4BO0f6TRKO0beolFqXyvEcby0WVLpob
TMMaM2UZlEvVkiIfiBI08lFKLq3kI+yrwCAfWHme3XDAj/Z9qPwXF5dW8ftE
VdFw7SqoFtzAU5LLEP1Z5UcFES6V2rEmlaMllgB+n9M95IlYWh6sFxIlL3MV
DHgp7+DlV6A+SNma5ILiuGqzYqBcFUh5nwLmKouCOntQeCksx7Jzthx+79cN
qS6WVHs0WBQ06p7StrZY3iJJ9f6c1xaYArQqPOHcJFeRjmTSI1OtZAJaoYtt
pRx5dr5IF6VxrGJDkUUWCt9R3mzZqHB01JXajUYcwIzJmQkSpjgryXjzjUdG
vDa2d7a8j8gWVtjLtHATTRd2LJtgVg/tvH29ynHCJud21Nsa7oZSUqaaD+XS
eXARQSVJePVA21H/UQuonqDm1F9pfUqi8YoyEQrKemGJq4qUksQvWNOKehSG
3ZdirTI/BgUGaWCj4myuquc4tGzPZ7wK7kLbSVROf5X/vZrVyOlU8JpiuYnZ
KFO8rVRU5VOQGjzORIky+0OLUioXaQmMtOTXq58d922tgFDxqoQ+QSwQQV4v
vm6yVhgb9HRCOUOO4oAxV86/UrdPc6kXYjE1N4XCdhmK6d4BKSXyU0JiYoX+
kw1UtmIKCMmCQrR9yayjgiLosz1F1WZ0dnl+3RNPX2iwkjZXUczKKYldeYf5
XhTvGdZsuDfD+wnN5Xk6es39+jU30p0es+YtVCuxi6p9Bmqnsd01+ZgWK0Mv
lY4c1nd0HrUqTFIYjclAZ/AkJwq8VRkywi7znxwoyiLsrzZyigGHdo1MF7U2
BFWexE4seLQrpvvZ/GG3FTIjaNXdKjS1S67sxc11Np9e0yS7TuRHuayOHGKb
CsRyMnDg27hglYZqUVX3g9CeM5bFay3prBdNJTO8LrDKLn9kYg0ARNpGZHHI
EJxt9z+bcMVEFrafjjbEojCEMKaPD7qdLdrweBtOauNd0PpAnd7VKCaGDCxP
o4yoCJen0UaQk4FgJVQc/SJMG5Epq1KOPuexTAj3jt5gSUn17FtKgVny+VMs
BJHrKRbTcxYzUEt4/IB9G5dcBKbq/mhO8Oqabqqu2jJmtph0ERAZboGOFFYE
p8GtaToTtl+cij2yCtCNoqpqYaANlrb6xce3Lny7QulIfYxKZ6YYViBwynse
MSKJgYorU6BfMJbNsSEt2Bl1xvmoK6naGhzKlcSxun+6WCeeVSNE2nJsdEnS
VWVd2+ApJh/RgQbocKogUe0idNKy6biqLcyVfEYZFivAY/lGbHfNwivZJ3q6
jTsbmOBnMj5HVdNaUrVeFi8enDMJH4niRsz8i4DE40gB9iYquM++EmZcOmNq
argIWn/hBLJCwYzSWnGVCS6Ot4afU0dgRveiWgMsmxZcrJJ4WmFg2mLl3bpF
U4SLrLky7d4xklghcSq6wjG91US6BswRIYHnVHhFk9HCdmwdpehDoY79a7xu
dIaIuuE3eMVUe7/OtWgeI4fJ0++496V2/Lm7LYV1V5vNgtIsVaK7W665GuTP
ANl+M8g+ES14clQjuWmkQuNDiS2VXGYbCaXfjF4LV6GSyOzLxxooyZzK/Y5o
DacqbGqDM50XfE/9k9570QnBw52mUyPiimP5iqVfrVtRdAzCCLhpSH21sNXV
ftnHo/VxrswWLONm4szQe0RaE71OtN8ydK+8pZEdGFgtVudj4bWRe/ieQt51
LQk7LIP9xLoKH83t71tD6fGGDBjCjTYYkRanAls/rjhfy0lNLgeuh0L5uKrZ
KJz1XA0XZyIbAlV3MjNBWd7GttNK9KFyZf7NSCcAVm9wgRg7qUvV4vEkRrdO
Tr20aKrP6HBtGZwkNY6caCCqkQ61X3bXVJ+1imGv7k7x5dGgVtn5XOxAF4Kq
crezw2USJKegfXYJlLo9csN3P1FRBXHVSu4BLVPMsxWufDHJG7QwaftV1N4L
YBv5WWNsHAyEpWpwAIQf7oAf5FhtInuHle3EpF7LWrfwHlkB2iNf701XqiZ3
Ue8KLUuhlvfOgkK1bzfg160LRQwDQYU/bA8FHYVWVvwf26XH86AxffYTA7aS
86s9bRssIY93Y9f4TcspcLtegwVPECthsnvrPYZoJz1HkfIOOntHxh99Q9WX
Tzn6ag872f++2+n29/G77/O0/U0G6g8Ii0VHLnsHiNWu+vZdvLo9FcDTh3BI
eELtrykc4TTqnUR7sen2iG3uf4v97Gn8d1zTn1pw/8h9uF/o0rfwY3QQ4eDJ
3fIyWRRZPjzq9XZb6sFiki3pKfhzgg9iloL6OnluIwNWdeziF592dgLQkOoG
NjhGYv1niPQ73d7+1tt7HX9sn90kp9Hg4LBbsd/QQvUOpfLuNeDvCxBeYaDD
rvkWsEV2D3+O4Vs1JHyKdaevsbbri6hnf4PfvV+pj4fw76XGqhct5ykQRHnS
2+eDabd/dDwYzCaH/cOjSfLcfRJX0e7Rk0eDw4OjAfx9cjg7TA7H8NvJc/Xw
px3zz6dgVn4d31FZ+sKriLsGoqva2vWtytpitc+nytNubDj9wSFGP9jXuirU
workDfIvVV0aheVA6zqTiYO1CTbz8bZAop0nK/7C4uxcxvgnZ++SuPEL4/H9
pjy+DodAAvyQLH7l3z8H//5c0+evXPwXw8X7v0wuXs/HbdQT1nv7fNo9HgwH
ca/T6QyPeyeGp76I9vCWUfuPZJ4q5/0Y7SOrh98Z1ktPSMPpogK5VA9BQkqq
Kb8fvQjKF9EGCeO/goxR5on/aaQOK/adn7SR0nmSu32FfJs/tYTCxTF+FUv+
s5keVOiQPsimPLwBVHqbRRkTyUkJNYRk0aOiereSCx4vgLRCrv6nFDN0pL1I
qVZIn1OnphGUVAap8ueiSRdZL3BhZsf7urWRxNCZ6lBw2Yp0MSkHkFvRhGy5
DZc1VcmB02C1MysOS13fX2Wuf1rLSWipvV9lrn86mUuRlicRtGSwn0nIsvmQ
lrgeLW5VClkkP+mUTeLUdpYHudW3Stf0/PVbJ2vaeZPbJEuSUME5lhSiVZME
Gs7/xNTQUo4EpT8U6g0swXc4XOdzExGAx4R5XUuEBPzuL1QWOTwcHqvoOG6L
RbFHu9IfzO2jtCst0tl9mKvzdEWr76++bh+bdVAW2uCwf+Kk8ZMQcMdOVEDx
HBvVKdBjm0F/uSbRlTsP7nec1B4/FuOLJ/aA6FmRvvObpuk7jfJ23NtmRXbY
z3P50X09+RNJmd2a+bAy475XAP3zsi9bVelE5VxYV42wRPmNOYDhCl0VK66U
iJ0KGadWWYRtAtzdAGwfgTFLmCPdxw8gtvJlc5K43K13tlwF3rHNqyBForAm
1HSmrcZyaYFqJVg6GrmuGMvAMWSls6sMKWvj120gZfAaFzkArjCiURQBYu75
DQ7j5AI6r25cQfZBsE/tVwV9Vik1XGqDwoFuY9Ngh0LZKylNypFA9u2n+h2m
zmOQT7JG6RdmSRewk+ibs8tvrl+9eff9Fe/BpP9Yu8NkEBW+Rx1xJUF7ahd/
eTQun6J43I6++o+r80vNR0rGbx+hGcYMRq5sB1KCVby0AvBSkQjW4kCyNn2G
12cgdX11/u9XihNtgda0w9JoeqAQ18TdexN/xnXdYlLCAH8jPxG036KOZiGZ
tWzrplOoElB+RlGNK+4eb5JFkscSdoocwsomEaHgEGQtVWCUw6dILKaLH5W6
nSrNPC5RKSsdH7+hp7xOqXfjREw/bpNV/TwbldaLiTRKY7GCDHiE+qbqKF/G
EpHUGXbuSDS4EmwmcGHTgptZocMJq90gmzJ3qzABrNj2JZlz6SitFuy+ibGD
st15ggjo2fwmy4HN3IE2Qt1IH7B1MX7V0V9hsZlgDUvquJJSnUWxzHGhTacx
Yd85NCZk7laL27jdPziMnIrGPMY3Z/jNp09U5Ad2GK+ynARrlCaTO1MJlOFr
7oKGcuKhHxfTc9JfYzsAeaYNiNUDhhsvUumFluks9mC6sOJNsrrJwgvB+guE
0SDqUx/omxTNVnJXYn1MVMjJ7/C7CrA6YkyVZlDYgphQJWewokqB1JnwzsXa
7spPWlFp/TS/t/gZxUMqXq6lcAe4bhmYGnHFzfCRt/U9Y9kSjlZ2gMPyETxU
AN+JG6w35nOU969Bg5a2sk1AwVYy/K+xgr+IWIPgHVT73k5F+zUe4RdtG+/9
Mm3j1dEI1peIdM/JvNvtHQz6hyfdg6Ok158l/fHRcBx3jybHJyBQdOP+9Miy
gPt/DgbHR0fJ+LA/mw2H04O4d9Lt9g8G3WR6cjSbJcPnv8Yzlhnif964AoNb
P5RMylXfisL1aIr4pIEJZFi/lkKOCDf8WVlO4Oe2fNakWqRnbreSWHdprF3X
joijisF5V2ZxnlAz2zZeeuZnLazIZ2sW/E/mOCgSUJZW6cSt3Klukd1BxBHs
adD7zD7TZhXeSSkx1F0VkP0acwkWqK5SZQC3Qv7by9Hbi3M9ktN1mjPkLkzv
kMDKKNtP2j7j10CJWeddYNF83rmtdH1IY3UlbORUCFjqTm3VVrnFEmnlFWj1
7l7pQN6exPIgNf7hfBJgHlQmC1uGLjBpSlX2L7QY5xRmY22U+4rjkKKk8GW2
LvCnqrvzExTYVMUJNSXOk3n8UINpygZqEe17S4u0xff64poh/0FdPc9KChNy
7qhaFZVidW07KzZZWKWlN7R1OwMht+WDum5Z8majCmAVda6kgjKWSaJ6/+8V
Np5Js41AOXzL6G0PxrhQroaluxbpQtxXmwhQgP5bvRvuBefIrCkFliyMCPSn
cZlqWtH+ifloIQFUXul2zwbOtVssQlxbrlhlq6JlItPUz+xO9otEz66EJ0B2
uj0pC999Hi+pgCjahwDMMRoB1xPqcnR5dfH96KqF3MDQWhpKGUJEIwdlYZ49
FD5ZLreIir7O/ADFUjU+j/AJW3BouvTxklUwNAA/eL1cmpiAexcvlewjLQzH
pnzxkhUDxmh1PJxU7SgcoIcFlI1dOIszqi7GgWGjaLxO59OQ8w3Xpcr/spa9
yfzOG2FLml/5p0EPAG+vnKjr72qy0iWRrF4IeMX5NM0tCibsrrgmAeHQKubz
Dm3cl1YGHWXkPD4ZnmjxCIeQyuFXb7TtWa0o1LiivB3i0q5/ys89XiWT20UK
ANQcWVmHZXlfaUHq6AhN1Q6+BqYN4wadgPfkq5eouIqBjg2z9Fjv8PD4YHh4
PCCjNaZLWrs1YKlMVK8vzVy265SZOn6xBzPdYOxh6Ay3nFu7nBrM7YSEqLtq
O4JrXVS1qybvjY5u2S6oxRixg6tWDFRbywPtMJgYupTab+JB7alqLrJruDvd
2enpTnhFIlZ1D82yEpWAe8TmefK0Rr/Z7p6nFf5XBHDJDxiCFYkQdEy/A4bQ
4jZ9FArjLSfYJMghC8oxSaM9cklwsn0NxBz13+SD8nJ4jI+pIo5Kmg+VA9FM
BsYXTKpUuv3efBUw1s4H7yRtOraSl7kGCBVgIE+yx09rtaIyIzUV6QLTS4Fw
OMEwjWspSKQ2uw1Xn05DUQvs7Vis0AmHcgQQw1P8FEd5nzy0op5du1GmkKKN
v1MPSheQANPdht8GTLmjeRLnWOkEFAMUmxRQUW/j+hfsAnScEayzrBcod60U
JEpopZp3aM2a4oKwtbLpbGbGIO8WixaZ1mvEr6YlwOZYJccaFx5+Ue/PXkfV
BdQasBROlnmpJWQ8x6qy0jkZiytj6zCGkgsi3QoLlYAULw9sOwFqtl7Uvud6
Alk+L9BL++AXT22YiBBq/Xp2KbVYSFYa6TIsFfE3yinzNCkLHDQZ7BhUpSJW
RNSJsQtIopqudBP8qAm4VsU69xxLaB3ZpGxXalUU3SGVdNF0pPTBMXdgtN1x
IfXG44tCDOh5MnGCbOdhMZcUM0ZR9ZjI9CibF3LauGrpAGdI48ur7y6rCGMf
CKMp8GSV1GnehGujFjG5X+22ykEp2H7G69OqW6lVLVv39rwbpzoQwTagLa3i
VbzHg5MhDh26Fc4O71DRFjgbD3sJj8MWXPFN73Fln10sunuNUNp1jR1GLxio
ndPy9k1NI4vAWrCn4Llm0nhJBfGmEkuYa8x2zdgh8+029jBVink7g5hNdeFq
aoKyyRQ2almRfOI1DjdWn3GwJlUt3dqv/FibWQCW24Rd/6Kjrv/rBlpv4hoh
B0iVNU6Q1cbVpvY2wU228tgeQA3lkprsOEu2aA1bb4tT+9WQrzUQWZqjHRce
Wr8GSoj1lISKWDFFkapIM2YMwzTPh/Jq9rofh9393zma2m/clk3WIJYZ7TEL
5mL5ITNXKYQmlji2suVnT4sbTjvXUXb2zn/6LVWPDlVI/s9rxao239THZnv2
mzAL/BzrUX3EcqPpf7kGJL9qqxNjUAkLT3doGDI2skwZJk43ADFffCC5wk5r
aUV/WwPdo56gkn9MA+socPttmipMZEMi8ESE+xBQgGRv9B6UEhnqjFOW96qW
zrnOkjhoC4GFaxPal7SfhVG8zoL2pc1n5RWJsPy9OmPL0vRO+d/L0SC+S7yU
f+n4x01vukBIiBv+UeUvD1i7xIWOVxMWXldD2o+rbW7NDiRebWGHsuxoo+vX
wLzEtcXc9T6LgA+CCEFYeMa/WKzEso9Fw65lSuPgHjcBjCIbojc9K0eCNfey
zc25My7VG9rBLgMl4G5Y2mDD0i6AAi5TlN9evYT/f4ElEmkmcSxomS835gzJ
w7WeWi30NbfTVyivqnp65vd0VoJXINWhYuvBDt0a48wglnNUaSS6ordn9KKD
LmUX+uASi139uWlMKGFMz0IYrUHtEgb3qpZAburSHGaPQuAYUdFKSPfNsT1V
X6iOBY3kejJHZL3OFdqm059sUQN3UaI0CLhDgY5GebfFkbTUwQifsMyj8px4
kr1yJb6RNOD8rMFtpo8a3xxnwsWlAUAZEwkB+lWwFgLXd6mHup1bkpB+gMrp
88em30ne5Pw9yval1lbN3iqTQJqL20/G4XzelnASViPu1t/AQhpeNBeFCI6E
cU242PCJllCLQc6Sfi6FwrlN2sTio3Kd2lGvVGQ2RjpRORWEJmzLbKA+NCiq
Vgrd9BOzTFJeZYjmf9nMrX/Wmms6ZLIqvsWzy/rY7d0x6T4IRwHy9e+j7sdu
7zjuHx3PjmZxPD44iOm0UbLFL3uHwwPjPvs1r+xReWX/dDXoWxIAwTTk+hWW
Y7h+DeeSp0CzsvHf0J1Zsjr2S8pMNeoGfQoh2lyNvX1C0P5BfHxy0ptMj7rd
eAIUmbGXv+zCnwrf0mLqoPXo1wS52rwz9QAcD6edxf3ecf94eOxTD/h0POwj
2Xj+y0yva7BReEJQ0dprPDz2cQ0+nQz7iGTPrdp1ybXiuS+iAebC9TFBLouX
18y+reS2+rS6+sQ6/BYGhL+H7sf4BSXMdSU/8HnL/fKu0Nl0s5N4djw4Hhwe
J4ODQXJ0DH+S3rB/OJ6eDJPD2XPz5icnde4RteJc4eXRSXRlEeedEXG+RxPa
LyzL7ov3DJAsIvlc5wq96bWQjbeAUrY0VTTJQSWHlGXN/IHFiB9YCf5BEeYf
dlWSXV5cA2aywK2oT19Mq/KdbnLUb1jPzramyhhiT9Uj7Yony01P+sVnqok6
rjf1OVEaLbfJ7uphyWGQy2xJQTs2+pjMrVZ16CP71CkNZmE4idus7w4rz+At
xU5a4s8s9x7b0BHZCXlYVQCkIg4isiSJpq8pQFU0lmuYPSQN6SsKtTlZK2P0
wNFNWo/n6gS41o6yn+jL5vUBI/CvUcVaEWdjaeeuSOYfJASwE70yFX6CqsU4
lXjMZHWfiN/BXonCAFfYxFwiSh5cpdKTHAFjOp2ZvodcwJtIhsROutFBGHSK
d6EVWeJudeu1acbxkgVFAeh1tiJRsuCGvl+gdqs3iGNNCEk1oBIfTNoTahEW
65CUQ9+OkS9nokl/8BgNC232z8V5Hj+Q2KlNQaoCzhtlVxJnFllFqnaNB22i
n8KXUaR+mtHyPhuLmywGE9eoqCT97nXShbWFdY4avzoOyQ5ufEglcBLMzrGN
nexcs09ahqvtmYMUZf+isjm3tGsmiLOxQNSUxSr+yHXjdHav0tBMWV6FZMS2
bS1EF9Q8Gh59+kQAx7210VnOMn8e07MFoVrl+0fHSLXofYRJ4H11JRGNxXgg
WWeq8aBCFRdiOWbFqkRjLl60ACokZITzxpjmLR40c7Yu8h2MMU5UUqDfS9yJ
c6IIytLJuEWW8AZKIKRjAKwSDnbhdWHMMNh1tgSFjQJQdaEHHVS+T4SCVmEv
K7WcQshI2EdhtQL3aIJwI4rTz+6WMAgGaNemLWRWuXVUd60tuwErbtAAaKyE
srSUPCE9N8YJMjIjLLOigJuke5/CSSLia0hrmU3eR8lB3BJuTXXEFlBlLcmB
woHou2EHlNa9r+KpkoFti76WhD5TiJDL515er3RXPf1uRMmYeVYt/Atz7V/p
/FPSeRUpGTzJKjzawAQ6buBeUj15CDx2DUgDJOX4+ZJQujK03SftsyTPhbjU
bDy6/Obt99+95DhxzQesAq26nCVRM7umG319cRnZ7aj1odhnEjC2e4GjjSqE
cPBjaKyA6b+JTiU+FlqJcq3jheCfPaVclYVA2Ra43RrEuYvLJmQlVOAgrIBp
NSOYc5C2V4+5EHZ4ZbmgJjmEyLNseJzNFJXCsHny8paalfeT90IupGzW4KC3
8vFwjQXvBvgeVqClrWgBewCeCdvqiYiRF/3dltsnefS8cKQZ7jlf9h41jWV3
c0bcmkiO3GMOWpbGsKeJCudZsVqXRDcV5cb7VZNoQ7T2sRqJ0c9nCfJpRCUN
Q49a1Vu1v7gl9rBbZYn9Cft8sIAJaHPx7lt9dR7R4kNZhzUmoH34L4StLUbV
v5YsyYIl9KRfie1H/4P6emn2U1w5jZ5A+/L5qO8UTbMfneQf4G+qitaDH95R
Ddqqhz/SvttsHh6PJ4PhyWH3oH+YxMPpoJ+cDLuTeNqP+4Nhb3hcU1lO/ZlO
J/3e0Ukv7vXj2Xgyjicng8N+vzs8nE6Hw1n3ecU6HngdA1rH8KB3kvQPjvqD
w3E/7gLgu/3BrHsy6M16s8HxYYN1TOKjeDaND4ezyTTp9rrHk35/ODnoJfF4
dtg96j8vj/HJ/+hTaa2/9AOMJ0cHyUkySQbJQXc8mxwn08Pu4OTk+PjkAPbf
bQC4g8nwaDzrHU5nJ4eHh9142OufHE/Gw0H3aIalAxsd4GFyME0Oe73B8XE8
HB/Hx334eTCE5U0HR8lk3GQd/XhwfDQFLEgOp+PBpB+fDKazfm82G8Qz2Fmj
A3Q/+GtzT4YyeJe9FmEGE0zYNWb+hWeptdM/HTu8pjTaFi8rMbb4eDG5zXL8
UAzw5oOmnWTMG//snWTCW3liOzu7PSpM7WUzd3hJFZZuy87d/L0nU5o/w9CN
gki+pqgiXHah3FsjU9suQw0nnYrZ1rMVslz8glVqr5LYtlq1swkbb++DuT7V
bhBeCSuRHFWSO84QFdbayBL+wjIXPNIMzsCsgSLpLzJVvSlc2fxG3A5ljqEA
MMQYpSaJrNFGzYAImy4+ZHOMqnAO3dERaAcl34GUr3mkZYagoJUrkVTJJFAk
K5XZj/Nn+ZT1LYyv0XZY3Ooio4XAoXYeadZGXLC3rVDdxrR6ZIdNzJNYLiMZ
CT4T439ZdqRqsP5q7a+w9lfY+nXOk7Y2BJnCry6B7VwCNojtm6o07Pv4wbvB
GTWPIImoukKCzm8WBDG+y8YxfCzeVZbfZKmpB6gq/CFk1CpVOSiHZHzSp8gx
8LD0yZrajNhBsoJWqh4OM4cqo4ZwnSYUK8QXGmTiKkDp+goVt0GdYtg01wQ6
bgnBu/g95o6r83Tw8N231xeXXFbUTXEU668y1dD9QSuboYrW8loAZiq6x2pA
HCYGTiaVs3cbV2lFWniXdCrGaBYh1gU7yz+A1Dd70FWd1AZIxCtZwdQ4mJNL
9PA2XRZOrIFnlXLNfUWV8QpRplyOIXhwKGHbtWNUkeYtMKcGaewwreD8GieU
PPtZp+TRX0Yjsp0+WF6DVZwDIU9MkJVItzFX8RvZ2ajO1i0UVJQS2D1nBM9j
cg8sOJUu1xyaO7xp/7yOTjOnj6HXRYKxdHYECikTnmNnZ+dSTocKFTWSu30L
8R+vz9ambMaXPlnLmE1Ixu2PWIzEWmA5dtfG60MyRJLnILpl62KOFHJu56Dz
svXCVGEI6yScaskrrozTib5fzHGDPnU5oz1ZWHVvEqgqNowcMU/xlmesjUyI
Ry6ECoV1OV/xom20rBUoqXtN1R2wvJpH8eiNUhqnN4BorutCMRUnsL9OZK4G
oVptM9eHZR75+bwfj3JoSCGbkjvJG/s+DriSqlyEgavl+QhbQdcUjqeE86zS
+tBSFUNYKFqyvtY0/a82y6TBzRdiWRuh5ChytpJdb7EoLFpNyF8t8txk4g8e
KwPRV34pGPZX+FpBtPvxYHILEpdXlexV+2UnTVazdjxJ2sn0NpuUEsNaFQYW
Z7OwNgps0DqGUBbY/L93Dron0STJV0TCV9K24KB/jFqS3WVQ5rCDF2EDE1CO
8Nd4bly49ty/+qWe3i+VPDeXoOxt8r0QyXNBLk5xGHSPQa0YHMK/vWkSd7uD
LvwO//Xhp97soDsdbHAWdOPuIQwSHx8OjyfJYNod4hjw8uGg1xvCv/3uBj9N
d3BwQG9NuuOD/vBwOOh3j4bUxGfY7w4Hw96mNfSS3hGsFGaF//XkP/2/gxi/
rR8B3sV3+vKf9S5sBr5DcGxaA8BB76R3hKvo45oG8PdwcNCfDjfAYXiIzwzh
STiPI/j7eHACn/SGsKKDE4DkYCMkj6xzwHN0TwaG6NZ1hcIRBpTYMhz3+r3D
eHxymByMB+PBYNidHYyns24/OTzZAMlZ77DfG8Rd2MhBMh0Ohwfdca/bO5n0
pzPc03G8we0TT4ZJbzg9Ppx0T44HyRQ9WcmsP4RdHB4f9iaT4SY4HAyPekdH
yWG3D0fSnXYPerOjo5N+PAFchAOdDbob8aHbHfN59qbdGZwpYXX36Bj+URhf
P4J7HwCuR3i5hsMuOkGHB9Ojk+NJ/Qgn3eQIbmB3OjkaHsWHB8NJMjmczOLD
WRfQ4+gQgJRsgEM/mXaPZhM4kZPh5Hh4eAjAgPkBqwcnxwfT2Xg6rB9hPJtO
D6fDeDIbHHeHkwEgaDKeDcZHsIz+IRzE0XBWP8IEgDicxd2Dw+k4TuJD119n
e+a2cMtZvq+N+USf75n7wRIznAZZuvUUpgCxM+U6ndotu82nTX1y3muf45h7
+rZRLdtCUCvOqYYWsXj4tnEMivxn5GwKr9M1P0z5M934aes6aBJXWw3sn7Kx
kLawBRrSoEhRajuDW6SmDE7vGbeqZrm1jVUPmaVSfuwjeyPUxtCY77gHWRNH
hW0Jh5BISWg0JqBYV2qeQ+W8S3k09bAO+zYrId3a3COomduzPlbY1R+kekhZ
C3NgpQ2/m8DPlfsZZ6wxtSVZN/4ig6lS1qfr3G2H7p8T6oCWN4AKHtTcUqc+
AWXI39JSOSrTALHZMT+mF0jJgxqq5eIWMak/gs5Wy1B1HZ1lkGO0sGbUFKet
Xi31oberO25Y4FNTH92k/ikvmhcN8YXD8h911TJL+Q6tb5zMs8VNPWrW1hr9
L4mbpjuCyXJZbUArv1WhN4l9agQv1n/tlgolI2zHLe8bFwW3tFcNRd1UA3cO
ZbEsuWbEYWvDXpuijYBiLBc+dVUDF8mcG1FIrdFlls0dWgrQmIP8SH0QUfPP
s7lcgnKtOzgoFFz3ri6vX71soYHx7PuX+9JrXtlcdRpAXF5VuZKIs0GVx0Lj
K95YjwbkBIA1cYI5LId8MMZyYYzz28QreOECqt+N1Dl+T/HQGRmt1yixorMP
7m+mcgUU67R2j7PyWXDSP9Id3iYdBlq/5xrplMCQ5uKup74TdCpvspXNC0em
fBIL10zobJ8JH1orupWsaWdoIGdo5YsneVYUGuusYQsHWdQZ5skN1qnB+AK5
IORYlbYqXP5rES6GjqMJuSNtJnAf7H4e/un7zNxxNrGTwMtFqREAy2Qab4wS
Hk2OQ6BJeuCGUG6QCnByL66zrVhs0n6bky14SD3zGP35yuqIGhf+JaMF8hpE
MQtTTX7EOmuy7abxIpayGZP7VZseKtCeazUKVK46q/ltsZE012XweCzP7PXf
fqq9/q3IFj/9ZpGxSh9DP2LE8LyYCjBT+ArfEHKfm+6EJgzmBW+AWFMOFx9v
60YmZfE+pFp1u6L4mgrYur41FemoTBdOX12nK1dsZTOWd0Ied4kMVFFtZmu2
H5EDIybUIDCCaziDn7Ma/q/Lo727/Da6w1g/uZZOFxmr641+oa6dMld1ose+
O/uW2zWXnm/gPiFHonR2nV6zWi3WHPfDpsYc960tbDlu7V8vtLpJrd+ymaXX
LVtzQm2J/Rv0+NYqdbFGSQ1wKtUUQpyG7Y6M2Ustu9yjIxBi1TUdYTasb9Pa
HnFoWt3SdX8eqXBZvY9leiSqOgjLL4FUZWOynpTLQDX1SpHu252kitsxQdb1
g1SEadgdSRzAVzWOUN/TmigD9y6ZYl0kjPGvKQaMspmqAKpOnimgDkJW9WPr
i1mX5LAawGnTph6Bms0pfeh/AWNK/hd2C5gd7FuBb04d7MqSgJ7Q1QSMpgHG
dmBEDt8YjBSlzGUGg5C0vt8KmJaSLoD7TIjZCgM1wmKQTJMPKRl4dTCDA9Ew
uQH2NUfr9c2tykLmYcifjsRYhehPJmuqSVlkd4nTQA0FFxW2W19mngKDFo06
sYXDaC4uWXKrr0Fbw00Mg3ILdTp9+Ta0J2/UlZybRiIS252SnbWE2rmHSR4u
ji22kq2efEw5i92luq466BTEx5BfuzvgE939QESFHJQsTequP6KQZV5byNJA
/6mqWTaKvgiEXTRIIvT+WHEaOtYiSp67J4IBEgjppl5JdTVCHkl1JATxi81t
vMop7D8Frtro+YOHnz9U0FOEEKHi4T65Q68cVj0Dia9gfcrOqTAGmXoZlinK
HWwwvpEqZb7OSpDiCNbC6jyF6vt9dJthb7NS1TQis1WjcqYMsIdmrK1l9qJ0
w4llS9qKKYkSoMRlFZblsD27GU64LVxFQzOMkHyHHcELDjXXQA7pN23qMamN
1ReXpsA7qcwrNn82lcXtGErFeTVT1B4vbunZRBbkyHvuGDuNwskWfgaNJdY0
EqCNXehCWqljDShTRgruodXmMC6coqdWR5cvDb8vwFOeBMhbJJ/G7wkjpx/i
xQqupDb3JR/xwqUr5Tnn3mBW51U2S4qBlHfWuMVHPbyMIwTm0Ci69UxW2xK8
vUVZJvSPVvU3UeEqGHCeew7bW4mraF5ZrHcQ7X2/kOXDcbmL3+8YCzjojLkx
0xsNPtBFTLYmoxZbwD/F9MyI8I9N8cp8vMoznpqzFIJNeQ+8AqPOUT1iMZgm
EDzhBlToZz7WQMG4Vz6za94g2o2s3rx5B9bW15Qlb3JkKpvhulbQC7f6nk1N
gpX1vhQMdSsfj5Zpqq09k9yjiLHGzmXA9KrUREqL2WmVaReEChjSgQDVZFsj
pmRGN9MI4D4shOLiCwwoG/rUcV2lu/gcJS04+t09nDl2/CaB6UktF6QhWvTd
7R/ThOfY6K0rSV1dvzn/c6uSD6Wa5hiPlxU75VvdMGqfkKcshVcI4cqDSrJc
/kH3YmCXxmRN4fd3d+uF2redhaeSXYrbOCdZlpPt7HLf6qanhVWzDE6JpO15
lr1fL6Nw52ORKglAtCXV01WngmN9SMDWpKy8X12//e5lya3O62KHmdUQlvbq
eNsAMDRtJ7pE9h5YpsmeWjR23ZGjmLeD6+A18mp0vUuUrGfrnLansqSq6iPo
dO5lkmNUnr0lyW0L5hmLBUZR13BWBClo6nwr+3AUoR3jxf7qQd1D6Y0egqJG
hsltMnlfND5X34tcf4gt7pyUqpqFUt4PpVyF7V5fIeILftvgOpA6nB0xfZ2j
623+QPvQEIDdgJ4XxFQsLxDKMyvK11w2tbK9cuUHjCO74Dns2hOGhS3nsejW
iAqw1r8r/K5oRs7rFVUyXvlf0tLswsn6DsqytBLajMJYqUsyc2xnMneir9FR
Mn/Y3HYv1Gb3UZzYbatF9K1YJbHpVnuh2e22eFAvZdTKbV9I7DggseMVmkSQ
/FxSq7XoHEeWrt3eLBiOAU9mN9maDsH9umhQfGkQKO9ZsqErSQF+3b1LyVJw
DTAV87i9Mq7TImZ9rjYyJpOaIFuehP3+GV6INtmnsJ5y0abhik+faDD3Ifym
jRO1UVJv34HAAguiSAGv8AitK6At6lDY8SbDgkr0LajYM1WViO/G6c0aAV6k
q3Us1USMlRtw6Q6HCSQFV1WAqJNdGlomFJ9xs1CnwLVUYDAR+anHUKZrSmu8
S+6yHJhIepdy/8NiX6J94P+KQ07TYrIuCtupi7EQykbUJuCJt/yZdF2BL61M
gqBNKUab0tmMvCvJwmYCQStgpZ2EQ7uM1SNApTcr+I8wiJyJHSiZUrQDH0Dh
Mz6LDFiNp2wv25ljDQoQUD2dRX10k4OaWN1JoNOZTk8OQ6pxsdTKJmkOHKWt
m20Zs99r49iPaBBW4aTTxbJkcdg6zf/a6EEZgsipfWRWrCoPVW1SmZAroywd
nS50zmG+4WyznvjaMC0baz/tu0gjiFoyouDbQFHaTEva2aINb7Vn8we6zhVL
f5B6Le4OfpFY+gh3rk8ytkD03kZEZ9akgJTeLLK8CafVQo/rP06nzS3l23oR
S4ajCjhxaZKiXNpgb0MfIGSdote6ncErgGfVqHA8mVZXmHCNdWXXAGQU7AmE
Epw5Mu0GpI1i4lqlpShdKGIVmhSLmBRHvdfS7QvslBnps+gNhi/T+JfM6lXq
u9Cqr+GGPRPeGr7EwF8DUwbIxUbB/rPplS23g/qNeAvL4jtWoa5VhQqHsNCK
n/abpIX9X++8gInVw1IMOWijIbdhJAZwqZbmGFa0IY7cgkAT79RNbmbO4cQs
kI9ZTBTTjm0/UcYAggUTjpyKQ9lhXHSFHziyPVF6rKaehpKJ4FugwqiaaQM2
sqoO+13PV+RCtUIuKsQtE6WlTUaVIpuJYyvp+eXOx9E32T3aMlqwKeWJdpwt
KMZairx7AmV2vPEcVEsuSoSV3QYsiLIOBaoSW1svDKTcOwJijdAJRKORDDFj
VZogHcrw9Czz/GE5OxdTb9+zTz0PDVPlXdNqNKCX0DBtc5mk+WR9V6xirnka
cW8GZUEiGWKKMFUUhb3q8YcsneokVqsFIdxbNG9obRzemcE0OmNkvbCEXZUw
JIE6XA0/R0BgSDKPxNwrLcxS0AqiTcOOA8IJSiVuywgUkDEtPYKvAnGSDVmP
gQju9WKVzsuWSTg7BDzjAiArDqpplHOJLpRzSDrVPgXVtYWyCfGPkBK5KywF
mAa1D3SPWMQWdRorO9SZq8jd2n4duJR0w8h1cnH+P64vr95enL88bQR7owyT
P2XTGVTbgQ2lYBizJbOj1nRxPjp/9adHrYpbVhgSSIbMFTbblbAaJQ+kTvAK
0ouFLnRlREFBbh+KcE2X+FRPZ0aZbvcGqKxUotFlngH7IiSPbzC+v6/fkxYb
RR21wRG/+v7Vd1eRskbDFzAebMaaTK2ApK5LWGDUswJezNpN6AuG5UZRJI4t
ajzs5bWq8BaAr1lEOiOoZgvMdRNlbMPLlcdonzZVHZWXWlXD2gtxM1HZmkrd
k1cl4VXZlEoDiovFWYcFFbuAqqtsVGgTJDyrDu/OM9ei+lGKyAR0XazzFTD+
DTtD3/wnHR/tEHYNBVjtwMLCD7CWsqml8G8cwndN5E9dYfei3iYPcinhC4Os
MZ6cqZUrNbBKsbJHR1iCakVlsykRUmsHvEDP4EXjLzQ5JPtYw4s01GszYT8G
QTCOnsIXUKJze4yP+JSNDu34HgKDtWy6F/TLvDn/9yvlSK5iSiWmH32HnhmU
E5TnAINPZTCrGKtUs8sNqpfqTjJqqQwKesZ11PCWaUJjKGjEb0HsyK28zVJy
FAGQ/VU2saqth1DicxZ3oN2btL4DC8G1CmRf2Q0qYa0Z47EHF1BUy+UpAw5D
vSyH+lYZQyw6Sh4yh+QFENAmXtUmMndQO+ecDQ79BsaShpzDYRanUbqv7mOQ
t3iVRMVLf5PHi5UqkoHU0KT2abutqS+SLZLidxQ9bybjqJAnnRCoXoyqGU7H
4NDkJAgRawmWk0vN5M7PKdzYMspsq5KF+cxZ7XPFVUu15VUt2IuAWEl+kNrD
Ve2qyv3PAjnOGhWfRd+zPQO+T64VNXqnl/7M9T5Qup881dYb9BP4OGBamH6p
IL010YYK3aqYPL729gx0ZPRrVup0bHZTcQhMrIImMuHlBddkanHRJKbNzN5d
714F5SBZmIJSCxMd/hhdtFGlqFH0+uw/3AydMBxbm5O21SmXCidxtc77OJ+q
iFCrSWD41J6+2FDzUNcq30DwEGakCOp+idtwknJMl2clD0Km9hh0qrRFaMIe
MZXGXzYnn1nmHeaVrkCp5Ax13KUC4eEDwuYPth1CequQjS2ys6DdpX9euOFm
F3vQkW+y5j4vTHGz/97ukHBtnXixW3tAFaKoMiJ6Z6AS+fyT4zaXFgZVFCcO
I2LNadeufQuLfpP2VBpZzOk1o2ikdaaqT4Xb4SXsFKuDht0ZpySFWyDWdubG
cBbq2sit+TiiWrPlp6os9QzuCdmaOWdZ1MhzVY8IXnvHtYrP3Ki8kY7KK7TM
MMGR2so0OW1j5N4nYtKhpMuWnLGOGJn5lEg41KZiySD5v/Qd035gXNBbbgiW
qXOhFh+IGxV123QpxUtavSrSX1TZB8YmcZfjFSWzstfoggo1cr+Cr+WhmLTI
lYSY6Gv7FOUa7LoPVfUjcA8s3AXLaOPmccft6WpeOIUgzlZy5ij6aIV0b7Qv
QT/jZIJfrxeqoD23qrFiPa2rKeFhKj2MTPgTlYpF51ofMbqne63sm1ZdSZwD
tcMaORQQJBE+YnBmgwcfu12VO2z04BAgxA3V78DaL70TMmWIBEmMpopyRHsK
M/cjJ7Kx2HbfaHipQrbv56v0DqR9jlgMb4W3XtFwGjFJWjywHwn7HOgTMg4f
2Ey2zifIIHWm8c7OCB3yeUHTrxfjBDu36cIZ6LoZCdKoXG50c0ro4kYoCCm5
t+X2Su5o9bLWQWsaedkfZfcobjKxvvV15Nzy5qVWF/NirR1ATBs1tzaFYjWz
8lDVrKD65En2w1MODAw4uQrcgHiummSx9qU7fVC5K5dYrjBlW3hLoghzYnGW
WhhKOq5hB6p+QsCrIgVkyIPyjfRIE2qdqipE5LdUp0fVFDbV4PePbhfQxG8a
EqyZJFfX2GuIRk7aNJqqoPsNgctZooFboBN25Tr3in1z2viLzWjs4zb7kG5Z
8H2oEVZdHSh/U3mhd9WyGRtW5b1LVx764Oq0taaqDuezZ9ErgQhe1hFiDh1q
hhm46Jen46uUR4w4YkPdyidtoj0y2hkJtKjEAFXWTTei3YRWKsvcuoYAKKZw
t/FyaV9HkySl+KRarXstxw9WwW1DEwyNZymMSZuJzPjnUuPqwr43K3TrBfGV
awO1aw2e6S84OJsd4SZCVoUH+OGETEs2hEnYAdghZN5KvFB0pnxnBbfKF5eJ
1PPGt1eTF7m+o7qbq6LNNlxdonr8S7/uIm9FcDdd5lHNPa6daNPN3qPMJluE
0ga3YIjnBtrvR3puzXQq92/3yx2jYmVEONSjnKGDciBJZ1ghzxKSiIbwaEZW
MuUjNmzWEovKfKokKNGwC2mparmr47KZwuJmV44pud5QvqGLpem/atlaekgy
ikxBmeUJy8RSHrOuBj9dsikVjcUI85GWTQp1p9lxrJLiqNKHCFzh21jcNheb
y0jlZ0WWO/vt7Lyj5DxLT9WAbVWCoGCn7nYtClSuwiabMlUdcR2yj+6Kjg4O
7Rg2jPvR9viOJqSbGqjWwCFYH85bEt1MK4vaugMSWe1Y9KtYUJPUkgUZknxE
dY+0GkEbEIqSi2V7smgbXisselSr18qarea+upC2balU0zwGpDO4DQLT4T8F
TG3B9gvD1WUCoP+i9MnSmaVp6cir2PJu24ZNA8F4hSt55Ekt1vP5/5KKUfUH
pdUvfRAU5lQ+iWKzSrYJxM2mqahm+aqmnWJVFUVVssopxbCpmFSZxhlwx1RU
I8+WearKErh2faoiRYdQCAlqqXtDiMEn43QA8CQ+ijp/UBeH+cbqPiOqLjt5
Qg/bT6R34Ya9ijfkhNfANiCudUK61yBMO+o7JjXTXJB+qEh2Q1HwVpo3klA+
TyOGWYnHbCA1xbqcFOxk85Id+qfqxJejzTT2hMu9XoUXru+lLaRtoD1Komlw
a1lEEBLoDNV8DKk5XrmFy2/efv/dyyabcFjdZ+5CxtpyG+hcS5amkA8xDtIP
qZvpVKswUnmDG0/HE6rcRZjkdFfdim9aneOV48NRMDWzs/ogua09JKZZOUOk
EyxppBjlDej8QF7Fr+N0Dp/+icr5THSY4bs8y6hk6bsMgzkLMqhoW5fS/dk8
MqMh2iAlK/W/YeBN02Zsqh9HWWkqW0YqNLGeo4nht1bva2PzsCo+KMektCfG
J8epKWQSjpNBRVJlXDGxVK9beSfaQ6j6o5pOtrZng7UISbSr3ou2EFJDAd33
fqkOcGkOUDnC9bw58BJAT2oEqAp8yCkLyMk8M00YoOWhrBE8Pixgspr0+lUB
AqdnsgeUZeJDYueTgYTIcfo1u7OX5CT7SEEBvA1qyIpynbJ3IiIUiBuBLt3O
Zu0x3mq6lZjbbUmYrXKPBd4Bo6PWvWFnUjgLXaWIGwniniP/KGQHMWS9kiAn
nehmbs7YarMcO+ytNi5BfB52HWXHVcxZpr4POiQ/4OASxs6V8kz+HlIEGxn5
XLZEyDoRq5J5/8JM4Y+JaGJyeg3k9PqDRZV/waZvE6sqJY8jqUUIYCXxU/cn
LUpxqzyNLvFSbjkBd3Wiaxnp/EpVcHqmJ/JrxTC5UcWBNdSkGwTBDOZRfT8k
8EjK5arhtTCMF3qGNwxz76SMmkxNhdGBG1P50EyRGZqELr9i2f76qBC5E/E6
kEjXEw8h0bkghSQCzTjYieDBg2sicuUOLjLqzb5SZbpd6ETKa8y3R5VK4UPS
LNGpwlXKgYWLDprUXXuarIgMyJK8WF/a3Qnv7jK0QnPhvAKXRUIXzalzCXuZ
pAURLHturn2pupA8qGx2WGVRPhDdT820MrBMHzEuA+dA0QjniF7K/gCPY7iH
8IlHWoz198SQFT12Wrh9ASSslPs9BAr/j0B8A9blzg54u8ofKF6Nb9Ju+N57
cFFNSzBzX3Ur4dg3koNxSH95FlRMrjSZU9B4COc6n+qyhLuGdgjw8TVkyMrC
Yj/BLyuhiC8mHPiNWzy627H65ClDfHCU2B3DM1/Z9NOr8EcEZkI6n+Q8S8SQ
RBcU1L/NKt64SxP9Cb/dhSHn6zvN0nY5LJ6pH9ae50W9FiKqjgkA/eOP9GiH
Hu3gox0q+f1a01sTlljer10hiIwtpbZFdWTTvM1ijgGqLVIjWiu61pBk7es1
j16+/E6nzvK9Pz7sdU3bHBt3NerdpBjtorJ0rar00WQ6nWO2hX4r+r0qrv/f
9gx8TqPufvT7PyAWlCvbyw2zolwVobtcwX7ifBq6ZlQWMK+5h1S2ikmAf+uN
nr9pBmTd3K1K8qMwbRD0OBVQV+ZGCOnfRLt8tXejPXXX2v39U5IPNPrKzSh1
zrTMa9Ht+i5etNH9R/awaRrfLDKQoCdSdn5pJ6K5t2UT/eMsmatbZ1RajN01
mLodZrPVPVesB7xN0ChpdeSmRj4g60xYBFokK4RDlIGehPVnC0e7i1Oig9Nk
vL65UU0WlcqHTStxfhxRW4FJJ8CQOthDx1+uEhDEkAHsYp7d3BjtGzVfE3Ic
MvXpg9LIvl5gjUkuwDBO1HmvxLOzXiANFofZar2UyAA6J2etyo6ZfFyqCr4I
bx1OU4d5D2ZZVjQ3OXC/FIW5tvDpSagNXgIVimtfg0H5Gnx/8coOt/ICCrSc
I+it+5wn2+B5Y8CbNf9koF/n6ROA/Mw0xeFQNE9lMuaqCpGQiv9i7AAJKnav
EVcrIBZoE3DV2sVSrKTDCypc+zt+m5b+wZHbp6VOXtzf0Y1bkLG84E4n8G/U
xm4tu6+sjBO73elui57moeCHdh+fvrp1q4iTyIQwcUPB6WXszqL52vNTxddg
LD42klpeRN3T6Bj+qcx8kV4vn3bq+7m4MA70c3FVN5aRPOGXmqGYgD2bL2nt
iqv/IONBMqvrdfmqVm3/M8KVi/PR29evz9+8PJcqvm7V2YL8HTCO7rssGQMU
yqy+dmrfezfGsh3aqhb3pH3MXHb9li0mlK7IBdcdRuia2hxY/nW94n7BoSoq
6tY7ap2jo1/Y3YFhMr9klK+h292EP2G/LEX3Rg5FoDXSOHE0Tzn4N/emElpg
TycitlJDIsAeCry5z3Q9Q3cYJwMPbxdxcBW9kM4A2aznYb2n/3udrZJPO3+I
Li2XA8W/pysylK6ySTa3bW94mFj3FEQ9yb20KymluVd+SaxpcqMB5pimoSqO
0iBK4ADszx9YhOKsDtBRaBWqe0L8oGaigd3qFgOkumRvoMrLWuiwiqQCLE5/
1j2/ImQdU56SKsGMsxApcIdQqxDDRgWgWpugJK0YyDqPMFAJQWIWLJzEoaIE
U/ralPM72A+gFTKTZmjl1eXCugMloM8o/toyPKsVe6eBoXR1KGRDxgbHU0EI
JACVe/2ZiPf0UEkEyxIyPhtSoYb7pQDtTEo7pnfsc4d5U6rYL+3S/QaHzNdy
cZwUt2x8ASIb7bGDxkr6spoD84/DQY+K3kj0pgQy6CuINFWIeoCk5nfrOdcb
kIbxzzht7fzsJfBfYPlUaUXlybFJ7FLs+K9MDpg4BuNpW4z87XQqDdO+Q4/I
fUJ+ESuuGKb8FuR0ncq4h9PuG8SQdo39Y+Axdgdi06oZpU/T5eD8owRAuCz7
JZrp9mA3+7rlGLDSpXoJdskWFbnytHfdPc2T+AedY8X7aF1Y6ndhjUE+YqpO
ReNReF0OGDlfpShb4YNoMCxM43cu32Ip4gtHLXkOAL2ex+Nk/lz7qeOSqYtb
0phN0Vuk9oTeGj+sEjEDqGhDI7FXZSwKmjpe1gY5jC03YTRfW3mRhhllEVys
mPAe9yFTXypSMRJtXRmRBqaZumXJDxVIlPLVI/Ebsde8OtctYNSubnAgddiD
0ZwdoYK2Q9hPAdYVMUfPi5qYt7Pvr765Hl2cv7yW9LKRtGpf586ZKdcaJV9a
o8EzoAQn85naEaX0vZOE9orjFpm8QZnAUs2wkZlHrTF2V2jTdyRNS7TzAG3P
WBwAMdDSRlWT1yb5sjaRUFcNsbbNNtkz3giXoCVrk2Xl9wIW/NQyh0zEDpFQ
/T9s8Aa7p1OzW+07NivcvBQrxFEp9enK7mjhAthk5opIg+Z5Rd/0tLBCTcZf
cqEs0xSQrLc3oNLdxXlIXXfJ/KeQrRZpkDxznU6j30d7oJ1qcgYqcvLcfUTo
XEseY/ifRuaBnf0dZ8AxELGwpussT2m4Llczeydd1ilNRbonDPKDrFVcFIrc
8squvnoZ9rkwdiYxwUXG8U2xFg02lQlXJT+HbOIH2K8y/AsPU5f3h+tXFk2S
LprlCgnz+H0Co2A723KBhHDAntUrRNya25YQLXPPQcOrvK+bUGckA51PMXDp
NHo3T2LSC7kDDR6BlnIYctaJIEabUw4fkEQbcDo5059FtkrUFbYvywRFOKDn
uvn8SnMfsu3ohSySG77h+iwp+0GjU0uxDm2HX1FckUogU8oYQOMmVzlImlka
Vu1meAd8WlaGfqnUjIWVSP71Oza7WRfmeZvAcFryHFO5xsrA4RCgTVITU6XA
VRSIYgFdnBeDb60avmwT8gQWpzBuqTa4+oYlkYlpxpZYETUqmE+Hf95LPzTJ
ZWNgBgp57JnmSMHAFDfmtbK2nO3tRND29lsK7KUaME6hAtWFvLQAw4KrlxiM
y220RrZ0n3/gVBorak1cFFYgLVdzqAIgngk/UQToXQilS1UNNtVQUh6YEf4D
p4JBvToXc5WCNuZkPlUx3kpxS68MpUcnVFPTDovTkEHRLpysKp1PfSHJGpcv
KPXbkxVLYl7MgaYlkHIE2uQ2y9icA5QVBW8a3xqXi5g4/eOdJegaeDnVAK2S
yq2IPSkaki6kwSLVRNAJodWVxQu7lwxXQ1dt+wqD/Rcc6miX/igtZs8pFhJs
B3SGkph0/FB7B3zgLm9y8aX5IdJtCQVv2HRM1ok9ypVGY2qAVkCwpR1PVEhd
SXj8jnMisDLVp5KJuFWrIVneglafgySBGWobb6hbKKeM+SZXtFwBiLKMuIzA
T3h5WIO9jx8YpafriX8aGYDmFlbVMfzFH8Pl2MRJiNRtVxkde+pSxwd1Rbhv
pkIbfMOpAunxw2HnaAs56Ew1RmNHcRPlJhgLvYUihTfQLwAb7Phhxu43HLtV
eby2Kt8Iq/zYKct+AweDRRONiobCgZqgdBqNpVJv8YH6Z/Dd9cBoiraeeD0g
2uMGdcPkjadvlWYgMdEqcx2wNNW1BuIUN68PIS0ZSwvlRdIQfsOnhd+wAn7D
IPyGnYOt4Td8MvidWTHjnhdQujRYTsAg1lMlPWryWt3vgVxGVjvxjXY6rjjg
CDyhZvcXXpfr0ALvm5Z18ADVTNqlOB59APrdyo5obltAXZDaX5Rbgay+vlX0
VVJwiL30NaGcniTOF1YR9ovL5/ooFdXX0NI2Gd2ZsXA6bXoqe3ONfSuFvSXl
hJiJWolEwv8LtvFY8h6Kh2GDLk7ejpdLdXk4GFFCBE5R7Fnfae3VNZT0xd4r
AP5F2jOcfhC3z7u92eQ5Uwel5DtEymE0jp0L4+MxSGyn3W+pgdyIwwZWjBKY
LIB+KevGs+gtRc2xvwBpBVwB/r3wzJfavY/LyKy3Js5bfOS32PuKL4gbY/zs
WfRdRoF44nKweuCgmL3AM5+b8QvVCgePSgLbxDVNkh861kDCvlvCxyAeFdZd
1TTC6nUvCX0qCFBRBniFNJbqKmEqPApRNMGuJmLOwWQNIKYvRB9nEg3XIpag
Md8hoJZizWgkz3gRNC/Eq5IHCdvCkQn9Np7PFL5YFS+YG+nsMZ+T0DLOpRGs
1f8bHpuns2TyMGEWElhNYXUAT3O91xaeTpqrnAAEb7YS1wV2rmB6uK+dQM40
5AEI9jOQ2p3O/Ka5hjlXiqU23mXARvsjmELidCTKoXCKk1+CXjiPc+SP981Q
MhURuIAdj1XBbji9i0uFmEUjzGwpSZ4ycmCI2QwDV4m+kWX/A6AXzcAqbEuy
wlLV9D1ZJPnNg+Fnn4PqDVG8Ke6oRiC16MMpXSqPBFbMuCSWjZYcJjf95XJ8
kq+qHXkmTMXh60rz59ZRL0BPNXWHXKVMsfHS7TH9QAKdhmEtFzoQwNQRtXIM
ddaqNbAH8X2qVKFlMN3yOHdpgquG5p5UEwf2v0/CyxjwajZTeVrR5DbG2Aq4
YX83HFQ70YPZPR5laXnpQQScTfYQuwegNZaUi+WYTMBwSnKC644CFFwXJx5e
7pSV4vxClZmU0q6t6A543g0JxtR7dZXDHcOQaZjdYFIKWy24LBpdyYmq4Imz
cXo0hozTzb5ZkMlRJuACuXzRBbZ6JcqxapVVjAEuKI8gu5WBkRiuMFtOyZlK
kxbGOrVKS8i4vDzF6qwQBycOOMO9dKKvVVtribFVBaA0duKIuOuWpchjtwr0
dMHKGETjmM0i8iLckZuEvVMfNP2cYIqv5MXnSWTF1RokwufmyYysaCYwH35h
QVMn+uKidF0DPHesogQ4lSekS+lM+9TbtU15MiJThj6XDJp2jTmKA8pg30tg
MDJT4Q23RyRZGe4oLDGb7W9EdYbOe046xDq9Oa5a2U3xcJJs1rLTp+4Xdspr
UTJ11xRdJRWcBHnbwLhxiZjHyw6rpQ5tMOdnG11wbExbJmYb6zv5wAmPUpxZ
C9MqwIlMpdiPT7Ee7h6IHys63ole6pYwMJAkLywzbGufOHcSljDBUHhHX3F6
WxOW2uRCDpJOUTMay1vygrNrjYy2Z3jjfkj+s4j7xeU+F0+VSNatSZ++HZoG
MqrGku+EmY1MmvR+dDwY5WUTfRIK7ISoTGTbqLcg2vG2QQhH95NPTm05eqy6
5ShzOlk+NZYgCREewP3h/LRBPgG9MVMrj+gthlzdZTC0rpTmkHDOuyHyZmXm
2AXDkV6ZIJrK4QtFk3V/xwcbrfnx2Xq1Nm14Jt59MEBRFJM4hGY9uIG7GLMG
tUxGARuMA4IyOK0ECiHFV4FohjeVV6WJY8cLPmipzCKb7OnLYVoWqjpF2iJy
Hz+wkPaVXdybRVDpJ1bN3tiCAZdxjmFhpmA6pcJIhBP8HBfEiDBs8oYXKxWq
V+1pTrgMqxD5nIekfnZ659RlSVChcjUOhlNcG4OqrU55RvdoMambKS4eFhP4
ZiEdiRtMzNE1q9VcsPDOKxfC9daBNd1IPQ9CxrWhojEHdFEFIelNulrFk/fR
B0AxPuqvFeHELtBWUQXxTH9Ip+tKxEFY+0lvrQircAJlg03ceLQ5hEd8XcTH
johMU2mDGqYkzeeizQkhZtkKiwwUWskDNJQoUsvboUm509XXSd+zYxuVaoa5
JpeFHYAE5wn3rLjNMtZ41kvg25jCnyftZIESHq8JcwFXKiBhis5Hkvsz4udS
2HKcaEMFpcZdZiYWqhpAxJ0nD+0C6yXgGcmVoPoHKfnp0NRhtIg74IxEl1j8
8tROU2UFlR8Q6HK5nfbUMQa+kSJqpONWtGeiOAqSRmSMaglBsw7lTrFLZ1kZ
zyupk7pKE4mTdH2WyMRF09jE8agjzHZkT4UGkHFSQY8g9KD8yKowG+gqcIcU
szQG9wvGL5EDyyVdfOOJFOlUmTt0LrCmF/DM2WVSuE3JK/BDt5O1FCxdiQkD
WbcDgkknhQOMJ1bTumoihWWisPg/H9JDGVedBSfsNRANhq5Ewk09UKOMJ+kc
feMS43K3jNNc3WoB1HOFxM/VTFZlKjoaUySYO0I+6LOQc7AxzSmvxeuhIlva
CjGrZw54QXV1GSE01eRSQdovw+R43C3WjVqLhZf1oKWwa1OUEEYiXW/ujJN6
/ExJt2psTTXZSPra2goM/xKNWel4rZTyb1nJeC1KBmtTtAaMJ1cXnuGhVF8e
IAkoKChQVzXkURHfXOLHksQrMxEauOC4G/o6l6Yd7sJ5PUVpQeWUERYoJYy4
dJ/pMlsB4lRJuORCCGyz0yTJje1d4TS3UgMlyWbjpZDOfGe16qlMttM1ElRf
SsuQHqrGVDo7PrQwZBQlUKQ8McRSxcVQMI/u+bNR3SH7ATpPV2t9n0yOh193
qZRODFgv0Qsjtt8wVlvShyVjiIkHRQwUGiQy9w5v2k1m2qr4lRIaDSj6Xp5Q
lzVBQ3czFpPhwBCGMeo0xrIcMENYzW21ffCn6FKZ5SJDo6tXzadyEHDjjEpZ
aVbzZWhqFIfZWB4cq7Syk9Khs/qrodd6nGLN/iGdSUGmc74ZrmvAyKMmxB2L
zQHaSPShY98EDJDTNsSe7RmxiYXyfQ2oKBVeAFpckkqdymewcakT4gwlurAF
b6ORszZe8rBpOTtYKqR8IIFb6MSlee5A1SpePeG5/oxr1ZnV7hrLhTRXmbvs
smE5sz21dTypnLpUUWyg3Mb2RLWx9aIQpcqt8GUnWzG0YatiwpBT/5x6EMx3
aN+I72ylvdOypdHbvbHVG0AWzz+iMAMSxCsdWYBTfK/DzIRuXrBHQywC6PD7
swodMa3/FoVhNvj8p52dM1swCbcAHEkHe6m0V25cgqZdDn+LOSRZR0467paW
RLASR8s/qDNrHF3p3/yLS1My05TdL63OLjCDe1yj2p1IZS01ObI+5euxUsFE
lqXYHO17ZLykZvJun0YPGXVxDh3EE8qgs1oaj5xo7tJGjLdobJJVZS4VpaXD
Qe3KH58BYWbsiriu/MgKtiJqkE6t/h/4rKTn0gltFiG4ZJ3MS+4CCQA2Uj7D
R1HQ0FE7Ur197oSVXgiXauY9i0bl46vKKvCp163uYyar23B4ju9+pMwCRCns
iH/TBKiEzeyZD9+6it1Fnn0xiDN2Vt7ZpZ20mdpZk2710aZIVTk4QCAgz4qA
5KakhSGhMtx8kIth3GjnGrkIwW3OzlWTJ9nNIv27LgVUdv2W8F1prPi8RLsx
NaDopsk8Tu/KCSnecyjqoyA01Z6RSt3dVlpIATJyKu6AJfc8iQvyhOl+hVO/
86qrIwTxlUP60Yy5BhwbpzdrNqKa3BnJmKm7c9zuhey3Cy5b4lDMyLO1bLjd
dvQWL28ubex4gemKyXAppeHCqSmsvB1x8IQr0wao6u+t0FTP+sN0Slcq9ash
23HjXJHzg9RXvuUjQqsLqRQYdqbENyaCqA/ejam2L5cURSODn8tiqu8qBmLI
TYBfey178Fm3E44b8W/HinKkhjIw+pk4KEwtEkaUMaImRoumK+1sspsdUwce
v9mxEs5JI4sB01YWRCfuzTDOGCMkmzgbjzUjgXBLerHYoOcRo5BY+D0qR9db
JKdrJqt+DS1Xl5eHSP9y1A3ti6btv3tLFYsdrQuVzb+3caMlrYuYRzlpIRT5
WuIMtZzvWfTq7M1ZOAZQqxe3LA3ZZZpE9MUJcYBmGZtY/sIcBa1h98cf/9vl
+Xdff/q0awkfMMRiTbivPI+O/84ECElcIx4IOfdZcuakiHemt8mFKrv5DCVi
q9wxnSTWNyIoULTnezGbT6fenrVzlk9r158lUN3TfAmk3op1rXuXXL7k2noD
X55GdiQ1fKjfib4nFv6dBNmd+pGLbgAsvDliVj9SYTJwPq/Or76Gby5UVsVp
pI9jZ+dfxvkf/GUAJtw2WsSTzXqdF813/dnzIaNpOuMTbVEaqPyUU6qWJD/t
pIvJLVazW8x+WgRyJK6f8QK5/KF2IXHRzovPxmlpkkPqqqIurahE6CztQVE4
JYcY2sf0yuoW5fasZq8kFpow3Q6ZeVNFRs1Iq7as6yiTf0we1nvT33I0PtUH
ppBXO1GE6+HWwNQp5WI1x/LSKFzY06AWkH/4C/Cmw6PhyQ9/pR/b/w5/fvgr
Lobv8aZl1ONYcDps+NHStcoO7Jlb4WbPvKBFBmP0Ni2ItS1rz41AgF6fMgho
xv6mGWGdOkZWQR0+i4vNcAjMiSUwebhrkBPTJf4E9/wn3DWugJO+tlnB00IB
3aWUEPOIjYdW4gCj4cIOToblhb2fTia3IPclQMC+GEiCMyeT6e3PDJK2doi+
Tx64xwoaS5RjtN8Lwusa1o0XuvgnWnhI+Bf+M4+lk54ORuSA52U5D8rXDZqs
pEZtsEIUH6c2OMX7q5UIt1HKk+gSG/sGmEf9vgGOnuE18iYvsMMIKac/wwaV
HD52vviQgibPTu29s9H5vq+a+GmY5K+aWjGWJfN2tTJDu/w2eTilYj57nOam
zIU9Wm7/4GAfnvwTV116WKIktUByJ/7YmySvkoN+E71VdvhLGw+aajm/wNWx
bvK4hdlVp+DUf3h22PnhX9awyh/+sIfFtPafcKVGj/rlr9UoYI9ba5zn8cMT
rsfWzn4hK7JVt1/Gksp63Wcj2hOurqTrPW5xV/k6eYJVPU4RNG17POWPGS5V
FVS9Puu1PrOlR+p5PkyQJHyN3T3xhzdrtCpiKPNyZ2eT9jTo9BvqT8Dkqanw
n5Ox1FUZoU8nKAYQMrb/VmSLNjl+thACdFWX3eBsDuen/qTwRIee6PATHsP3
Rtn7tz9ffRYHPzronQgH5yVV3j/5+qXp73FKwS1WHbpSMR16rdK4UWHdALjT
dbJ2OYJdbjyfyf3qM46nZkrnkODz8Mk0G2DrAzoenPTlgOrP53HHA/jTaNxG
tI0frSa/jexc5dtb8qrK/ZVmXLrtoW5tUSHHlxskfoYsXzntrun9pR/hNmCP
9xFIwvN1Np+KNew3QQOY8i45kU9oilSxtXpJLqt55MEskvs2H0sbSCNsqj2b
P/DxePxygXksi2uTyHCtKz1NA3uRqMifaBuTLMunbRUrMSVuEdpFRQvPn339
pX7N3gWp6FZXc1GqmoR+zn15ip55X1r33XDlTGPAzbTwyUTNDVfn51hT9UX4
aVaDEkKwX9+3mG4dQGu/UWYAj1XxnaCQoHl85ayujECPdeSxDj/Wwcd8mcHC
zovzyytM23OxdJRdnO9vYhLYaKEa6FyHqz/YN/qe6kYFn3wFd3Xmig0jUOYe
KJzRjvEVGOpKBBTmsLF7aufxZK2ql7Cibucvv3k7qu0LYTBBIYIpn/QIEXHj
hA4S0NMd9XTHebqDT3u4cK5LfGIifZq0v0nmc+wG+BbDiEZvL8+jPRqzjmqZ
mlHw0XdYZKruHhJKbJQY7aKeFddWcyKvcvzOTrvdjsbx5D1GonyVLJJZKsVZ
EL10jyoVxzyWJ9rwhKlOJvkElAxnR4r7odaUs6nLBzUtHV3K99PBUZQiI6mh
mIhAi8P8UOlVuZxnD3xNTUSnGyw5T0yHmZEXdTkxd59rjta/bgVX8vuLbNXR
FbNLUa1SztGJXyxX66sIYOQHGTQ4yil6EdrYw4GjtNyYrBG1JqF0V5VW5C+n
owfQIVG3pji3OUW48xX13UylD6mJ4HSrNlFyGMoUqKItFYXDZbQ7/vZGkV2U
G4fEZp13y5UypOhg4PCALbtcIuAGBW+aMEjCVbVOjDXlZE3kqU1ONEXnzx0l
tpRL98ZzLBSwoTK3HW8pLX0p75WSPr1Kj0w4+qbHcxUuhSt0i1MK9oG1rblG
ZeQVX69aWouiKa3D3bY8uhuPbXphO3Xo/V5Ndg3lPGlbh00GtoqpuLRXMp9Z
9bZMcQHJpoqpdanY4bA7rL6A2hTn1vu0MjDZhYXt2BTZtFo0Xrz7lkpmKJsb
PaYGqajsOuiYDqeY7blPmMXJ2R5mqcuaOYSS63P6IYp2kDB+J8ZuCSpWt9gu
eafaMVANU4z6NFmcxl8mlsj+LlHAXW1D3y3TMHmyrZ9B/mRVKlBVJo3Vu5Yk
mscww1WKJ8Z3gDEYC6tS/zjIX+V16hjswvTWAnb8gL2oVdLRHnbWkxM+Hh5i
SlFRzh8ZDrrq7P2isGU0qCobqzCgYVOnX9FgExqgNENNdF5TGRydhjWdzttU
uubTzo+nQKSzD0m6yGeTT05lUa+Vzu82OKZ3bIob/T4anuwYNyb8ftDdIcch
/tjbEc8c/tLfERjgL4MdDQj8dbhjNoS/H+x4VrZrggV+dbjjujvws6MdWHaN
xbM0GidMwOL79CZaHbEImIr4fg08MpsWOx8PJrfIuH4f9Yf04GY1b8fuGU+j
b5TTd0Ktiejt0CnpxkPmeFXTIcIB+gS7DAF5VhHVnMRnBFsVai1KTVHGD7jg
f4KjxyW2u8d4bdrdE1ZhcYDuMfz6iR0g6JqZyi7hOb71hV2sgGsqph8T3UfR
Y9vE1VmHC3bU2CGjVjLlMpmUvTMHJW6NZq5MC6NcEsxKOpZCn/LEbM4lfP64
TqdUlYtry9gtCrGoDTbDUWSG9Bl9ZaO79CO3Rrezt8I3lrtvTKdUoUk3Oz67
BJG2TfkW73VkvT1WZeg/jecIYFy7zVsiKNPU8SMWAU6mMMljoPSmC4S124rA
FyNQu2GpTpoE7a0Xc9UeyLT8jXZLdqldLt1G4tR03wLDbnUR4F2nCbJqIVyR
D8ulQSnoh3QfQKtCFS3PAYPpKDseBh8xBh9bGHwEvxIGk/UTV6hLypURlNM5
dXF1+0kH1XaN4XkX+e8ioYQ0WvNLoeHlOnEONjjFvBUrlYOJ8xssJOifujO8
kJuKhjAjrMOoC1edqngsrsKktTtv91ydJxH5LDo5Oup2+M0/8cVFjPmQpSw4
Ki9toFWh1rew5gmmAE+4KwkfKllA3MOWBTIGaUMjTUhPi+WBU2/Mk0LWlGSP
uUt2OWs/vJjpE4nxmEIP2xYFbZc4mc2I9ensCmfz7+i2mHnImHlkYeYh/PrJ
vgkOkaLKrUQxGgCalvQ6o/KmCZnG/DIiulDkC13nx467rjg/uy0tkybtKTSw
0l3YCY11m1OqDiiNQmF8cjPzMrHSnPbmLzZ2OlEJ0qJBmJSsDWQ0eAfOQoyH
F2suLEppkhzH1ArfvDRfW/aB6AbLJgMafCg65nMi2v1Ot6c6puMAmHnPRlei
LW5OrjQiglO/yUDrD2i1dqp55T1SQDShFl7fg81uwEeh9wGj96GF3gfw6yeb
Ym0657RsfnAo3kpyOJsdO1VDUimQLvvXNhYpGWkXiSyRgo2gVhDdmIVAJR6R
GipXlQpV2XAWZ9O/cdXfeDzGinlS0+H/L+1qdtMGgvC9T2H50lQKFEyIFFU9
IEKK1YgiTKP26IBjrIKNMIRGUV6rp97yYt352d1ZMLSixwV7be/OfvO3+w0/
1xqDFp4nQLlYGi06QpMPeaXg2O5PEk/cIAvBywQp9OLTNO4FTXxbTPyFapLG
RQNiprqYa/I3YVM8mPCTNyyGnkzpOIzqQnPbNWnIjISTxjOHLppGbWOSlswI
itxH9BD5WXo0Kya67kK01k08so8ZchxjzAUOgRYLg1SnDWiLBvRCDGhLNR1F
YY5QokPgLBLcQKXdZlgtzlIK6cG7I+lL48Z3vgxqO2jLWnansChbG+ZSf5PH
W4WhvuaHcvpgIlnOjVp/nqvJ7Rb/lZVmxeRbvla9buCIBAcQ9kxoo6fozC1F
KnUonB9fIFFJbD9Q1j7DmumTI5yIztIS6uw+m2YrkgA16S4jFL3bJgWyT3UX
F+CAR9IrwsLAE7qlTA6eJEcByVFLyFGgmg4iWx2OVNzoLO+xDtQr7zi23vTF
1gncv1AvODdmhLffFttkhepRd0BC5Z8rU8ith+Sf64iMdLb5P+GOguIhoiT7
Ae9p1xYXtxYWdrScZ2svIQRlkvKFgxLs6mEbwxHXWZzmRanExBsUBC/UVb9T
C9qX4Csp4Z0CayAm9kzhJZ51rsPACwEiLAwwBF1/AScthGdAyEGEngz1E8n6
DNwLOUX+ld8HrEEVZhKhtJG1YxLWJAkLhIQ1VRMlDEdlakcl51Gh6KRQPaUu
cGD1GCUWD+MO+meoUCD6mStXDALoVcCzDxkH0gjVdoaNd+1eeoOsAy6IHlv3
ni3ACJbGvKJmmn5nHH/jqu7QOEFlKyhJqVBhSVa7mef/m8sGzWVTzGVDNS1a
OFrX1RceSZ/OV4+Ru6KYF+mT6/BXvBxBWaHjLK5Hoj0JMoKY5JDZD+FJx5gS
MRAkuPooOcuHmGZE8Fos17UsF45Wpcq0Zp0jPMkUrDSKiam+XMFyTAamDINy
ms7OLPW1T5TkoewlutzBVYOA4wBJWJYrjyHDbmHZEEGLNgf+3eBQbpCmeKbh
g1mP3d8gWEjnnpLpR/8BNkZDuBHGkeC2BFmeqL+xwGicAznbc3e2UjorgzpL
i/L1d1m+UJ7+eZT9gOqJ/ddf6XyTT/FneDX11zWwqIyK+yx/YRK1NZ78NbCL
oqKQC1L6OmCPbHBbzGciINjAfbQFHf229MI8Lx4JdjopUHt7d+Fg8OWuI3dA
9L6Oep87Xrd3Ow67tUHv2xgECUuEdb8PR70o+kCcVdR5P2gEDXNFFN6EUa0P
Rt/ZpxUUeo3TVULIftUOLtvBu/qbP0NiuzrlLQIA

-->

</rfc>
