<?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.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-identity-chaining-17" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>OAuth Identity and Authorization Chaining Across Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-17"/>
    <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
      <organization>Defakto Security</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization>Defakto Security</organization>
      <address>
        <email>pieter@defakto.security</email>
      </address>
    </author>
    <author initials="K." surname="Burgin" fullname="Kelley Burgin">
      <organization>MITRE</organization>
      <address>
        <email>kburgin@mitre.org</email>
      </address>
    </author>
    <author initials="M." surname="Jenkins" fullname="Mike Jenkins">
      <organization>NSA-CCSS</organization>
      <address>
        <email>mjjenki@cyber.nsa.gov</email>
      </address>
    </author>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author initials="A." surname="Parecki" fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="19"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <abstract>
      <?line 60?>

<t>This specification describes a mechanism for preserving identity and authorization information across trust domains that use the OAuth 2.0 Framework.
A JSON Web Token (JWT) authorization grant, obtained through an intra-domain OAuth 2.0 Token Exchange, facilitates the cross-domain acquisition of an access token.
The relevant identity and authorization information is chained throughout the flow by being conveyed in the respective artifacts exchanged at each step of the process. Chaining across multiple domains is achieved by using the same protocol every time a trust domain boundary is crossed.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Web Authorization Protocol Working Group mailing list (oauth@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/oauth-wg/oauth-identity-chaining"/>.</t>
    </note>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Applications often require access to resources that are distributed across multiple trust domains where each trust domain has its own OAuth 2.0 authorization server. A request may transverse multiple resource servers in multiple trust domains before completing. All protected resources involved in such a request need to know on whose behalf the request was originally initiated (i.e., the user), what authorization was granted and optionally which other resource servers were called prior to making an authorization decision. This information needs to be preserved, even when a request crosses one or more trust domains. This document refers to this as "chaining" and defines a common pattern for combining OAuth 2.0 Token Exchange <xref target="RFC8693"/> and the JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> to access resources across multiple trust domains while preserving identity and authorization information.</t>
      <t><xref target="sec-use-cases"/> provides sample use cases that may make use of the cross-domain framework defined in this document.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="identity-and-authorization-chaining-across-domains">
      <name>Identity and Authorization Chaining Across Domains</name>
      <t>This specification describes a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> to achieve identity and authorization chaining across domains.</t>
      <t>A client in trust domain A that needs to access a resource server in trust domain B requests a JWT authorization grant from the authorization server for trust domain A using a profile of OAuth 2.0 Token Exchange <xref target="RFC8693"/>. The client in trust domain A then presents the received grant as an assertion to the authorization server in trust domain B, using the JWT authorization grant feature of <xref target="RFC7523"/>, to obtain an access token for the protected resource in trust domain B.</t>
      <t>In some deployments, the client in trust domain A may obtain a JWT authorization grant using a proprietary API or interface other than the OAuth 2.0 Token Exchange protocol <xref target="RFC8693"/>. The details of such an interface are out of scope for this document but an alternative means of acquiring the JWT authorization grant is not precluded by this document. A JWT authorization grant, regardless of how it was obtained, <bcp14>MUST</bcp14> be used to request an access token from the authorization server in trust domain B as described in <xref target="jwt-authorization-grant"/> of this document.</t>
      <section anchor="overview">
        <name>Overview</name>
        <t>The identity and authorization chaining flow outlined below describes how a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> are used to address the use cases identified in <xref target="sec-use-cases"/>.
Conceptually, this is an exchange within the first domain that produces a JWT authorization grant intended for use in acquiring an access token from the second domain.</t>
        <figure>
          <name>Identity and Authorization Chaining Successful Flow</name>
          <artwork><![CDATA[
+-------------+         +--------+         +-------------+ +---------+
|Authorization|         | Client |         |Authorization| |Protected|
|Server       |         | Trust  |         |Server       | |Resource |
|Trust        |         |Domain A|         |Trust        | |Trust    |
|Domain A     |         |        |         |Domain B     | |Domain B |
+-------------+         +--------+         +-------------+ +---------+
       |                    |                     |             |
       |                    |----+                |             |
       |      (1) discover  |    |                |             |
       |      Authorization |<---+                |             |
       |      Server        |                     |             |
       |      Trust Domain B|                     |             |
       |                    |                     |             |
       | (2) exchange token |                     |             |
       |   [RFC8693]        |                     |             |
       |<-------------------|                     |             |
       |                    |                     |             |
       | (3) <authorization |                     |             |
       |       grant JWT>   |                     |             |
       | - - - - - - - - - >|                     |             |
       |                    |                     |             |
       |                    | (4) present         |             |
       |                    | authorization grant |             |
       |                    | [RFC7523]           |             |
       |                    | ------------------->|             |
       |                    |                     |             |
       |                    | (5) <access token>  |             |
       |                    | <- - - - - - - - - -|             |
       |                    |                     |             |
       |                    |               (6) access          |
       |                    | --------------------------------->|
       |                    |                     |             |
]]></artwork>
        </figure>
        <t>The flow illustrated in Figure 1 shows the steps the client in trust domain A needs to perform to access a protected resource in trust domain B. In this flow, the client is in possession of a token that an authorization server will accept as part of a token exchange flow as defined in <xref target="token-exchange">Token Exchange</xref>. How the client obtained this token is out of scope of this specification. The client has a way to discover the authorization server in domain B and a trust relationship exists between domain A and domain B. It includes the following:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client in trust domain A discovers the location of the authorization server of trust domain B. See <xref target="authorization-server-discovery">Authorization Server Discovery</xref>.</t>
          </li>
          <li>
            <t>The client in trust domain A exchanges a token it has in its possession with the authorization server in trust domain A for a JWT authorization grant that can be used at the authorization server in trust domain B. See <xref target="token-exchange">Token Exchange</xref>.</t>
          </li>
          <li>
            <t>The authorization server of trust domain A processes the request and returns a JWT authorization grant that the client can use with the authorization server of trust domain B. This requires a trust relationship between the authorization servers in trust domain A and trust domain B. Such a trust relationship typically manifests as the exchange of key material, whereby the authorization server in domain B trusts the public key(s) of domain A, which are used to verify JWT authorization grants signed with the corresponding private key(s).</t>
          </li>
          <li>
            <t>The client in trust domain A presents the authorization grant to the authorization server of trust domain B. See <xref target="atr">Access Token Request</xref>.</t>
          </li>
          <li>
            <t>Authorization server of trust domain B validates the JWT authorization grant and returns an access token.
 Validating the JWT authorization grant requires trusting the public key(s) of domain A and its authority to issue authorization grants. This might take the form of configuration and policy in domain B that associates a set of public keys with domain A. Or might rely on the keys published at domain A's <tt>jwks_uri</tt> as listed in its Authorization Server Metadata <xref target="RFC8414"/>.</t>
          </li>
          <li>
            <t>The client in trust domain A uses the access token received from the authorization server in trust domain B to access the protected resource in trust domain B.</t>
          </li>
        </ol>
      </section>
      <section anchor="authorization-server-discovery">
        <name>Authorization Server Discovery</name>
        <t>A client may use the <tt>authorization_servers</tt> property as defined in OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>, maintain a static mapping or use other means to identify the authorization server.</t>
      </section>
      <section anchor="token-exchange">
        <name>Token Exchange</name>
        <t>The client in trust domain A performs token exchange as defined in <xref target="RFC8693"/> with the authorization server in trust domain A in order to obtain a JWT authorization grant that can be used with the authorization server of trust domain B as specified in <xref section="1.3" sectionFormat="of" target="RFC6749"/>.</t>
        <section anchor="token-exchange-request">
          <name>Token Exchange Request</name>
          <t>The parameters described in <xref section="2.1" sectionFormat="of" target="RFC8693"/> apply here with the following restrictions:</t>
          <dl newline="true">
            <dt><tt>scope</tt></dt>
            <dd>
              <t>Additional scopes to indicate scopes included in the returned JWT authorization grant, if required. See <xref target="claims-transcription">Claims transcription</xref>.</t>
            </dd>
            <dt><tt>resource</tt></dt>
            <dd>
              <t>URI of authorization server for trust domain B.</t>
            </dd>
            <dt><tt>audience</tt></dt>
            <dd>
              <t>Well known/logical name of authorization server for trust domain B.</t>
            </dd>
          </dl>
          <t>One of <tt>resource</tt> or <tt>audience</tt> is <bcp14>REQUIRED</bcp14> to indicate the intended authorization server in trust domain B.</t>
        </section>
        <section anchor="processing-rules">
          <name>Processing Rules</name>
          <t>The following processing rules also apply:</t>
          <ul spacing="normal">
            <li>
              <t>If the request itself is not valid or if the given <tt>resource</tt> or <tt>audience</tt> are unknown, or are unacceptable based on policy, the authorization server in trust domain A <bcp14>MUST</bcp14> deny the request as defined in <xref section="2.2.2" sectionFormat="of" target="RFC8693"/>.</t>
            </li>
            <li>
              <t>The authorization server in trust domain A can add, remove or change claims. See <xref target="claims-transcription">Claims transcription</xref>.</t>
            </li>
          </ul>
        </section>
        <section anchor="token-exchange-response">
          <name>Token Exchange Response</name>
          <t>All of <xref section="2.2" sectionFormat="of" target="RFC8693"/> applies. In addition, the following applies to implementations that conform to this specification:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>aud</tt> claim in the returned JWT authorization grant <bcp14>MUST</bcp14> identify the requested authorization server in trust domain B. This corresponds with Point 3 in <xref section="3" sectionFormat="of" target="RFC7523"/> and is there to reduce misuse and to prevent clients from, among other things, presenting access tokens as an authorization grant to an authorization server in trust domain B.</t>
            </li>
            <li>
              <t>The <tt>aud</tt> claim included in the returned JWT authorization grant can identify multiple authorization servers, provided that trust relationships exist with them. However, it is <bcp14>RECOMMENDED</bcp14> that the <tt>aud</tt> claim is restricted to a single authorization server in trust domain B to prevent an authorization server from presenting the client's authorization grant to an authorization server in a different trust domain. For example, this will prevent the authorization server in trust domain B from presenting the authorization grant it received from the client in trust domain A to the authorization server for trust domain C.</t>
            </li>
          </ul>
        </section>
        <section anchor="example">
          <name>Example</name>
          <t>The following examples show a token exchange request sent by a client in trust domain A to the authorization server in trust domain A (https://as.a.example/auth) and the response containing a JWT authorization grant for an authorization server in trust domain B (https://as.b.example/auth). The public key of the authorization server in trust domain A, which can be used to validate the signature on the JWT authorization grant, is also shown. Extra line breaks and indentation in the examples are for display purposes only.</t>
          <figure>
            <name>Example of Token Exchange Request</name>
            <sourcecode type="http-message"><![CDATA[
POST /auth/token HTTP/1.1
Host: as.a.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange
&resource=https%3A%2F%2Fas.b.example%2Fauth
&subject_token=_RU..D03_Nsfw1_0F7den-SLO6WfIh8YHl.iRq4oJY038Kqr
&subject_token_type=
 urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token
]]></sourcecode>
          </figure>
          <figure>
            <name>Example of Token Exchange Response</name>
            <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token":"eyJhbGciOiJFUzI1NiIsImtpZCI6IjI4MTMzMDgwMDQifQ.
    eyJpc3MiOiJodHRwczovL2FzLmEuZXhhbXBsZS9hdXRoIiwiZXhwIjoxNjk1M
    jg3NzUyLCJpYXQiOjE2OTUyODc2OTIsInN1YiI6ImpvaG5kb2VAYS5leGFtcG
    xlIiwiYXVkIjoiaHR0cHM6Ly9hcy5iLmV4YW1wbGUvYXV0aCJ9.Li8Rh-c-R0
    xirbuXlX8x6sQkZRqJIms9U8Rk8cL7uh1Mm232O6mwz1osPEMNef4OFUW-qTf
    A0C9QdeIl-e0KsA",
  "token_type":"N_A",
  "issued_token_type":"urn:ietf:params:oauth:token-type:jwt",
  "expires_in":60
}
]]></sourcecode>
          </figure>
          <figure>
            <name>Example JWK for the Authorization Server in Trust Domain A</name>
            <sourcecode type="json"><![CDATA[
{
 "kty":"EC",
 "crv":"P-256",
 "kid": "2813308004",
 "use":"sig",
 "x":"MXfMrj_tgPJHxkfmDAx0m74E-T-DuLYCNdmuqtpfP_E",
 "y":"YX82bI52OPBED1h_1HpsxAyWzrQ7DChAAVX9Q9E8uYQ"
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="jwt-authorization-grant">
        <name>JWT Authorization Grant</name>
        <t>The client in trust domain A uses the JWT authorization grant obtained from the authorization server in trust domain A as an assertion to request an access token from the authorization server in trust domain B, as described in <xref target="RFC7523"/>.</t>
        <section anchor="atr">
          <name>Access Token Request</name>
          <t>The JWT authorization grant is used to request an access token as defined in <xref section="2.1" sectionFormat="of" target="RFC7523"/>. The following required parameters are described additionally here:</t>
          <dl newline="true">
            <dt><tt>grant_type</tt></dt>
            <dd>
              <t>As defined in <xref section="2.1" sectionFormat="of" target="RFC7523"/> the value <tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> indicates that the request is a JWT bearer assertion authorization grant.</t>
            </dd>
            <dt><tt>assertion</tt></dt>
            <dd>
              <t>The JWT authorization grant returned by the authorization server for domain A (see <xref target="token-exchange">Token Exchange</xref> response).</t>
            </dd>
          </dl>
          <t>The client in trust domain A can indicate the protected resource it is trying to access through the <tt>scope</tt> parameter or the <tt>resource</tt> parameter defined in <xref target="RFC8707"/>.</t>
        </section>
        <section anchor="processing-rules-1">
          <name>Processing rules</name>
          <t>The authorization server in trust domain B <bcp14>MUST</bcp14> validate the JWT authorization grant as specified in Sections <xref target="RFC7523" section="3" sectionFormat="bare"/> and <xref target="RFC7523" section="3.1" sectionFormat="bare"/> of <xref target="RFC7523"/>. The following processing rules also apply:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>aud</tt> claim <bcp14>MUST</bcp14> identify the authorization server in trust domain B as a valid intended audience of the assertion using either the token endpoint as described  <xref section="3" sectionFormat="of" target="RFC7523"/> or the issuer identifier as defined in <xref section="2" sectionFormat="of" target="RFC8414"/>.</t>
            </li>
            <li>
              <t>The authorization server in trust domain B <bcp14>MUST</bcp14> deny the request if it is not able to identify the subject.</t>
            </li>
            <li>
              <t>Due to policy the request <bcp14>MAY</bcp14> be denied (for instance if a trust relationship with trust domain A is not established).</t>
            </li>
          </ul>
          <t><xref section="3.1" sectionFormat="of" target="RFC7523"/> describes the error response used in request denial cases.</t>
        </section>
        <section anchor="access-token-response">
          <name>Access Token Response</name>
          <t>When the authorization grant has been validated, the authorization server in trust domain B responds with an access token as described in <xref section="5.1" sectionFormat="of" target="RFC6749"/>.</t>
        </section>
        <section anchor="example-1">
          <name>Example</name>
          <t>The examples below show how a client in trust domain A presents an authorization grant to the authorization server in trust domain B (https://as.b.example/auth) to receive an access token for a protected resource in trust domain B. Extra line breaks and indentation in the examples are for display purposes only.</t>
          <figure>
            <name>Assertion request</name>
            <sourcecode type="http-message"><![CDATA[
POST /auth/token HTTP/1.1
Host: as.b.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
&assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6IjI4MTMzMDgwMDQifQ.eyJpc3Mi
 OiJodHRwczovL2FzLmEuZXhhbXBsZS9hdXRoIiwiZXhwIjoxNjk1Mjg3NzUyLCJpY
 XQiOjE2OTUyODc2OTIsInN1YiI6ImpvaG5kb2VAYS5leGFtcGxlIiwiYXVkIjoiaH
 R0cHM6Ly9hcy5iLmV4YW1wbGUvYXV0aCJ9.Li8Rh-c-R0xirbuXlX8x6sQkZRqJIm
 s9U8Rk8cL7uh1Mm232O6mwz1osPEMNef4OFUW-qTfA0C9QdeIl-e0KsA
]]></sourcecode>
          </figure>
          <figure>
            <name>Assertion response</name>
            <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token":"b./77-.ehs96cFAx~ac00~qG+z8N_x/4.RpL-2Ykc4~",
  "token_type":"Bearer",
  "expires_in":60
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="claims-transcription">
        <name>Claims Transcription</name>
        <t>Claims transcription is motivated by the need to propagate user and client identifiers, authorization context, and other relevant information across trust boundaries.
This enables the various entities involved to determine on whose behalf the request is being made, what authorization has been granted, and, potentially, which other resource servers were previously involved.</t>
        <t>Authorization servers may transcribe claims when either producing JWT authorization grants in the token exchange flow or access tokens in the assertion flow. Transcription of claims may be required for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Transcribing the subject identifier</strong>: The subject identifier can differ between the parties involved. For example, a user is identified in trust domain A as "johndoe@a.example" but in trust domain B they are identified as "doe.john@b.example". The mapping from one identifier to the other can either happen in the token exchange step and the updated identifier is reflected in the returned JWT authorization grant or in the assertion step where the updated identifier would be reflected in the access token. To support this, both authorization servers can add, change or remove claims as described above.</t>
          </li>
          <li>
            <t><strong>Data Minimization</strong>: Authorization servers can remove or hide certain claims due to privacy requirements or reduced trust towards the targeting trust domain.
One example is a financial institution that integrates with a third-party payment gateway.
Domain A (the financial institution) includes detailed claims such as "account type: premium" and "transaction limit: $10,000" in the JWT authorization grant.
However, domain B (the payment gateway) only needs claims like "transaction limit" for its access control policies. Domain A transcribes the claims to exclude unnecessary information, ensuring that domain B receives only the claims relevant to its operations.</t>
          </li>
          <li>
            <t><strong>Controlling scope</strong>: Clients can use the <tt>scope</tt> parameter to control transcribed claims (e.g., downscoping). Authorization Servers need to verify that the requested scopes are not higher privileged than the scopes of the presented <tt>subject_token</tt>.
For example, a cloud-based development platform that allows developers to access APIs across multiple trust domains where a developer in domain A requests access to an API in domain B but only needs limited permissions, such as "read-only" access.
The authorization server in domain A transcribes the claims into the JWT authorization grant to reflect the downscoped permissions, removing higher-privileged claims like "write" or "admin." This ensures that the access token issued by domain B aligns with the developer's intended scope of access.</t>
          </li>
          <li>
            <t><strong>Including JWT authorization grant claims</strong>: The authorization server in trust domain B which is performing the assertion flow can leverage claims from the JWT authorization grant presented by the client in trust domain A and include them in the returned access token.</t>
          </li>
        </ul>
        <t>The representation of transcribed claims and their format is not defined in this specification.</t>
        <t>When transcribing claims, it is
important that both the place where the claims are given and where they
are interpreted agree on the semantics and that the access controls are
consistent.</t>
      </section>
    </section>
    <section anchor="authorization-server-metadata">
      <name>Authorization Server Metadata</name>
      <t>The following authorization server metadata parameter is defined by this specification and is registered in the "OAuth Authorization Server Metadata" registry established in "OAuth 2.0 Authorization Server Metadata" <xref target="RFC8414"/>. See <xref target="sec-meta-reg"/>.</t>
      <dl newline="true">
        <dt><tt>identity_chaining_requested_token_types_supported</tt></dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. JSON array containing a list of Token Types that can be requested as a <tt>requested_token_type</tt> in the Token Exchange request when performing Identity and Authorization Chaining Across Domains. In situations where it might be an information disclosure concern, authorization servers <bcp14>MAY</bcp14> choose not to advertise some supported requested token types even when this parameter is used, and lack of a value does not necessarily mean that the token type is unsupported.</t>
        </dd>
      </dl>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="sec-meta-reg">
        <name>OAuth Authorization Server Metadata Registry</name>
        <t>This specification requests IANA to register the following parameter in the "OAuth Authorization Server Metadata" registry established in <xref target="RFC8414"/>.</t>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>
              <t>Metadata Name: <tt>identity_chaining_requested_token_types_supported</tt></t>
            </li>
            <li>
              <t>Metadata Description: JSON array containing a list of Token Type Identifiers supported as a <tt>requested_token_type</tt> in an Identity and Authorization Chaining Token Exchange (<xref target="RFC8693"/>) request.</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="authorization-server-metadata"/> of [[this document]]</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <section anchor="client-authentication">
        <name>Client Authentication</name>
        <t>Authorization Servers should follow Section 2.5 of the Best Current Practice for OAuth 2.0 Security <xref target="RFC9700"/> for client authentication.</t>
      </section>
      <section anchor="sender-constraining">
        <name>Sender Constraining Tokens</name>
        <t>Authorization Servers should follow the Best Current Practice for OAuth 2.0 Security <xref target="RFC9700"/> for sender constraining tokens,
acknowledging, however, that bearer tokens remain the predominantly deployed access token type.</t>
      </section>
      <section anchor="authorized-use-of-subject-token">
        <name>Authorized use of Subject Token</name>
        <t>The authorization server in trust domain A can perform client authentication and verify that the client in trust domain A is authorized to present the token used as a <tt>subject_token</tt> in the token exchange flow before issuing an authorization grant. By doing so, it minimizes the risk of an attacker making a lateral move by using a stolen token from trust domain A to obtain an authorization grant with which to authenticate to an authorization server in trust domain B and request an access token for a resource server in trust domain B.
Such authorization policy might not be present in all deployments, and is of reduced utility for public clients, but it is a recommended security measure for deployments that can support it.</t>
      </section>
      <section anchor="refresh-tokens">
        <name>Refresh Tokens</name>
        <t>The authorization server in trust domain B <bcp14>SHOULD NOT</bcp14> issue refresh tokens to the client in trust domain A within the scope of this specification. When the access token has expired, clients can re-submit the original JWT Authorization Grant (if not expired and reuse is allowed) to obtain a new Access Token. If the JWT Authorization Grant is unusable, the client can request a new grant from the authorization server in trust domain A before presenting it to the authorization server in trust domain B. The issuance of Refresh Tokens by the authorization server in trust domain B introduces a redundant credential requiring additional security measures, and creating unnecessary security risks. It also allows the client to obtain access tokens within trust domain B, even if the initial session in trust domain A has finished (e.g., the user has logged out or access has been revoked).
This is consistent with <xref section="4.1" sectionFormat="of" target="RFC7521"/> which discourages but does not prohibit the issuance of refresh tokens in the context of assertion grants.</t>
        <t>The advice of this section is only applicable to refresh token issuance across domains in the context of an assertion grant. It does not relate to the issuance of refresh tokens by the authorization server in trust domain A to the client in trust domain A.</t>
      </section>
      <section anchor="replay-of-authorization-grant">
        <name>Replay of Authorization Grant</name>
        <t>The authorization grant obtained from the Token Exchange process is a bearer token. If an attacker obtains an authorization grant issued to a client in trust domain A, it could replay it to an authorization server in trust domain B to obtain an access token. Implementations must evaluate this risk and deploy appropriate mitigations based on their threat model and deployment environment. Mitigations include, but are not limited to:</t>
        <ul spacing="normal">
          <li>
            <t>Issuing short-lived authorization grants to minimize the window of exposure.</t>
          </li>
          <li>
            <t>Limiting authorization grants to a single use to prevent repeated replay.</t>
          </li>
          <li>
            <t>Requiring client authentication to ensure the client presenting the grant is known to the authorization server in trust domain B.</t>
          </li>
        </ul>
        <t>Authorization servers in trust domain B can enforce these mitigations.</t>
        <t>Implementations and profiles of this specification <bcp14>MAY</bcp14> define additional mitigations tailored to specific use cases and operational contexts.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>In addition to the privacy considerations outlined in <xref target="RFC8693"/> and <xref target="RFC7523"/>, additional privacy considerations apply to this specification.</t>
      <t>This specification enables the exchange of tokens and claims between disparate trust domains.
If excessive or unnecessary user data is included in these tokens, it may lead to unintended privacy consequences.
As noted in <xref target="RFC8693"/> and <xref target="RFC7523"/>, deployments should determine the minimum amount of information necessary to complete the exchange and ensure that only that information is included in the token.</t>
      <t>Inconsistent user privacy practices can result from varying interpretations and implementations of the protocol across authorization servers in different trust domains.
This inconsistency can lead to a lack of transparency and user control over what data is shared and with whom.
To mitigate this, trust relationships between domains must be carefully established and maintained with user privacy in mind.
This includes verifying that privacy policies are aligned across trust domains and clearly define how user data is collected, used, and protected.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="RFC8693">
        <front>
          <title>OAuth 2.0 Token Exchange</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
          <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8693"/>
        <seriesInfo name="DOI" value="10.17487/RFC8693"/>
      </reference>
      <reference anchor="RFC7521">
        <front>
          <title>Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants</title>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="Y. Goland" initials="Y." surname="Goland"/>
          <date month="May" year="2015"/>
          <abstract>
            <t>This specification provides a framework for the use of assertions with OAuth 2.0 in the form of a new client authentication mechanism and a new authorization grant type. Mechanisms are specified for transporting assertions during interactions with a token endpoint; general processing rules are also specified.</t>
            <t>The intent of this specification is to provide a common framework for OAuth 2.0 to interwork with other identity systems using assertions and to provide alternative client authentication mechanisms.</t>
            <t>Note that this specification only defines abstract message flows and processing rules. In order to be implementable, companion specifications are necessary to provide the corresponding concrete instantiations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7521"/>
        <seriesInfo name="DOI" value="10.17487/RFC7521"/>
      </reference>
      <reference anchor="RFC7523">
        <front>
          <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
          <date month="May" year="2015"/>
          <abstract>
            <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7523"/>
        <seriesInfo name="DOI" value="10.17487/RFC7523"/>
      </reference>
      <reference anchor="RFC8707">
        <front>
          <title>Resource Indicators for OAuth 2.0</title>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="February" year="2020"/>
          <abstract>
            <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8707"/>
        <seriesInfo name="DOI" value="10.17487/RFC8707"/>
      </reference>
      <reference anchor="RFC8414">
        <front>
          <title>OAuth 2.0 Authorization Server Metadata</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <date month="June" year="2018"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8414"/>
        <seriesInfo name="DOI" value="10.17487/RFC8414"/>
      </reference>
      <reference anchor="RFC9700">
        <front>
          <title>Best Current Practice for OAuth 2.0 Security</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="A. Labunets" initials="A." surname="Labunets"/>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <date month="January" year="2025"/>
          <abstract>
            <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="240"/>
        <seriesInfo name="RFC" value="9700"/>
        <seriesInfo name="DOI" value="10.17487/RFC9700"/>
      </reference>
      <reference anchor="RFC9728">
        <front>
          <title>OAuth 2.0 Protected Resource Metadata</title>
          <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
          <author fullname="P. Hunt" initials="P." surname="Hunt"/>
          <author fullname="A. Parecki" initials="A." surname="Parecki"/>
          <date month="April" year="2025"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9728"/>
        <seriesInfo name="DOI" value="10.17487/RFC9728"/>
      </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>
    <?line 396?>

<section anchor="sec-use-cases">
      <name>Use Cases</name>
      <t>This appendix outlines some use cases where the identity and authorization chaining described in this document can be applied. The use cases described are not exhaustive, but are representative of the type of use cases enabled by this specification. Other use cases may also be supported by this specification.</t>
      <section anchor="preserve-user-context-across-multi-cloud-multi-hybrid-environments">
        <name>Preserve User Context across Multi-cloud, Multi-Hybrid environments</name>
        <t>A user attempts to access a service that is implemented as a number of on-premise and cloud-based workloads. Both the on-premise and cloud-based services are segmented by multiple trust boundaries that span one or more on-premise or cloud service environments. Each workload can apply an authorization policy that takes the context of the original user, as well as intermediary services into account, irrespective of where the workloads are running and even when a workload in one trust domain calls another service in another trust domain.</t>
      </section>
      <section anchor="continuous-integration-accessing-external-resources">
        <name>Continuous Integration Accessing External Resources</name>
        <t>A continuous integration system needs to access external resources, for example to upload an artifact or to run tests. These resources are protected by different authorization servers. The identity information of the build, for example metadata such as commit hashes or repository, should be preserved and carried across the domain boundary. This not just prevents maintaining credentials it also allows fine-grained access control at the resource.</t>
      </section>
      <section anchor="api-security-use-case">
        <name>API Security Use Case</name>
        <t>A home devices company provides a "Camera API" to enable access to home cameras. Partner companies use this Camera API to integrate the camera feeds into their security dashboards. Using OAuth between the partner and the Camera API, a partner can request the feed from a home camera to be displayed in their dashboard. The user has an account with the camera provider. The user may be logged in to view the partner provided dashboard, or they may authorize emergency access to the camera. The home devices company must be able to independently verify that the request originated and was authorized by a user who is authorized to view the feed of the requested home camera.</t>
      </section>
      <section anchor="extend-single-sign-on-to-api-access">
        <name>Extend Single Sign-On to API Access</name>
        <t>A user that authenticated to an enterprise Identity Provider (IdP) does not have to sign in to multiple SaaS applications if the SaaS applications are configured to trust the enterprise IdP. It is possible to extend this SSO relationship to API access by allowing the Client to contact the enterprise IdP and exchange the identity assertion (ID Token or SAML Token) that it previously received from the enterprise IdP for an authorization grant. The authorization grant can be used to obtain an access token from the SaaS application's authorization server, provided that a trust relationship has been established between the enterprise IdP which issues the authorization grant and the SaaS authorization server. As a result SaaS servers that trust the enterprise IdP do not require the user to complete an interactive delegated OAuth 2.0 flow to obtain an access token to access the SaaS provider's APIs.</t>
      </section>
      <section anchor="cross-domain-api-authorization">
        <name>Cross-domain API authorization</name>
        <t>An email client can be used with arbitrary email servers, without requiring pre-established relationships between each email client and each email server. An email client obtains an identity assertion (ID Token or SAML token) from an IdP. When the email client needs access to a separate API, such as a third-party calendaring application, the email client exchanges the identity assertion for an authorization grant and uses this authorization grant to obtain an access token for the third-party calendaring application from the authorization server trusted by the third-party calendaring application. If the authorization server trusts the issuer of the authorization grant, the email client obtains an access token without any additional user interaction.</t>
      </section>
    </section>
    <section anchor="Examples">
      <name>Examples</name>
      <t>This appendix contains two examples, demonstrating how this specification may be used in different environments with specific requirements. The first example shows the resource server acting as the client and the second example shows the authorization server acting as the client.</t>
      <section anchor="resource-server-acting-as-client">
        <name>Resource Server Acting as Client</name>
        <t>As part of completing a request, a resource server in trust domain A may need to access a resource server in trust domain B. This requires the resource server in trust domain A to obtain an Access Token from an authorization server in trust domain B, which it may then present to a resource server in trust domain B. A resource server in trust domain A may use the flow exchanges described in this specification by assuming the role of a client when attempting to access the resource server in trust domain B. Resource servers may act as clients if the following is true:</t>
        <ul spacing="normal">
          <li>
            <t>The resource server has the ability to determine the authorization server of the protected resource outside trust domain A.</t>
          </li>
          <li>
            <t>The authorization server in trust domain B is reachable by the resource server in trust domain A and is able to perform the appropriate client authentication (if required).</t>
          </li>
        </ul>
        <t>The flow exchange would look like this:</t>
        <figure>
          <name>Resource Server Acting as Client (Successful Exchange)</name>
          <artwork><![CDATA[
+-------------+       +---------------+     +-------------+ +---------+
|Authorization|       |Resource Server|     |Authorization| |Protected|
|Server       |       |Trust Domain A |     |Server       | |Resource |
|Trust        |       |(acting as     |     |Trust        | |Trust    |
|Domain A     |       | a client)     |     |Domain B     | |Domain B |
+-------------+       +---------------+     +-------------+ +---------+
       |                     |                     |             |
       |                     |   (1) request protected resource  |
       |                     |      metadata                     |
       |                     | --------------------------------->|
       |                     | <- - - - - - - - - - - - - - - - -|
       |                     |                     |             |
       | (2) exchange token  |                     |             |
       |   [RFC8693]         |                     |             |
       |<--------------------|                     |             |
       |                     |                     |             |
       | (3) <authorization  |                     |             |
       |        grant>       |                     |             |
       | - - - - - - - - -  >|                     |             |
       |                     |                     |             |
       |                     | (4) present         |             |
       |                     |  authorization      |             |
       |                     |  grant [RFC7523]    |             |
       |                     |-------------------->|             |
       |                     |                     |             |
       |                     | (5) <access token>  |             |
       |                     |<- - - - - - - - - - |             |
       |                     |                     |             |
       |                     |               (6) access          |
       |                     | --------------------------------->|
       |                     |                     |             |
]]></artwork>
        </figure>
        <t>The flow contains the following steps:</t>
        <t>The resource server of trust domain A needs to access protected resource in trust domain B. It requires an access token to do so. In order to obtain the required access token, the resource server in trust domain A will act as a client.</t>
        <ol spacing="normal" type="1"><li>
            <t>The resource server (acting as a client) in trust domain A requests protected resource metadata from the resource server in trust domain B as described in <xref target="RFC9728"/>. It uses the resource metadata to discover information about the authorization server for trust domain B. This step can be skipped if discovery is not needed and other means of discovery can be used. The protected resource in trust domain B returns its metadata along with the authorization server information in trust domain A.</t>
          </li>
          <li>
            <t>Once the resource server (acting as a client) in trust domain A identified the authorization server for trust domain B, it requests a JWT authorization grant for the authorization server in trust domain B from the authorization server in trust domain A (its own authorization server). This happens via the token exchange protocol (See <xref target="token-exchange">Token Exchange</xref>).</t>
          </li>
          <li>
            <t>If successful, the authorization server in trust domain A returns a JWT authorization grant to the resource server (acting as client) in trust domain A.</t>
          </li>
          <li>
            <t>The resource server (acting as client) in trust domain A presents the JWT authorization grant to the authorization server in trust domain B.</t>
          </li>
          <li>
            <t>The authorization server in trust domain B uses claims from the JWT authorization grant to identify the user and establish additional authorization context. If access is granted, the authorization server in trust domain B returns an access token.</t>
          </li>
          <li>
            <t>The resource server (acting as a client) in trust domain A uses the access token to access the protected resource in trust domain B.</t>
          </li>
        </ol>
      </section>
      <section anchor="authorization-server-acting-as-client">
        <name>Authorization Server Acting as Client</name>
        <t>Authorization servers may act as clients too. This can be necessary because of following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>Clients in trust domain A may not have knowledge of authorization servers in trust domain B.</t>
          </li>
          <li>
            <t>Clients in trust domain A may not have network access to other authorization servers in trust domain B.</t>
          </li>
          <li>
            <t>Strict access control on resources in trust domain B is required. This access control is enforced by authorization servers in trust domain B.</t>
          </li>
          <li>
            <t>Authorization servers in trust domain B require client authentication, but are unable to manage clients outside of trust domain B.</t>
          </li>
        </ul>
        <t>Under these conditions, an authorization server in trust domain A may obtain an access token from an authorization server in trust domain B on-behalf-of any client in trust domain A. This enables clients in trust domain A to access a protected resource server in trust domain B. Resource servers in trust domain A may act as a client to the authorization server in trust domain A in order to obtain an access token to access a protected resource in trust domain B in order to complete a request.</t>
        <t>The authorization server in trust domain A may use the flows described in this specification by acting first as a client to itself to obtain an assertion grant and then act as a client to the authorization server in trust domain B to request an access token for a protected resource in trust domain B. The flow when authorization servers act as a client on-behalf of another client in its own trust domain is shown below:</t>
        <figure>
          <name>Authorization Server Acting as Client (Successful Exchange)</name>
          <artwork><![CDATA[
+--------+          +--------------+       +--------------+ +---------+
|Client  |          |Authorization |       |Authorization | |Protected|
|Trust   |          |Server        |       |Server        | |Resource |
|Domain A|          |Trust Domain A|       |Trust Domain B| |Trust    |
|        |          |(acting as    |       |              | |Domain   |
|        |          |client)       |       |              | |         |
+--------+          +--------------+       +--------------+ +---------+
    |                      |                       |             |
    | (1) request          |                       |             |
    | token for            |                       |             |
    | protected resource   |                       |             |
    | in trust domain B.   |                       |             |
    | -------------------->|                       |             |
    |                      |                       |             |
    |                      |----+                  |             |
    |                      |    | (2) determine    |             |
    |                      |<---+ authorization    |             |
    |                      |      server trust     |             |
    |                      |      domain B         |             |
    |                      |                       |             |
    |                      |----+                  |             |
    |                      |    | (3) generates    |             |
    |                      |<---+ authorization    |             |
    |                      |      grant            |             |
    |                      |                       |             |
    |                      | (4) present           |             |
    |                      |   authorization grant |             |
    |                      |   [RFC7523]           |             |
    |                      | --------------------->|             |
    |                      |                       |             |
    |                      | (5) <access token>    |             |
    |                      | <- - - - - - - - - - -|             |
    |                      |                       |             |
    |  (6) <access token>  |                       |             |
    | <- - - - - - - - - - |                       |             |
    |                      |                       |             |
    |                      |           (7) access  |             |
    | ---------------------------------------------------------->|
    |                      |                       |             |
]]></artwork>
        </figure>
        <t>The flow contains the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client in trust domain A requests a token for the protected resource in trust domain B from the authorization server in trust domain A. This specification does not define this step. A profile of Token Exchange <xref target="RFC8693"/> may be used.</t>
          </li>
          <li>
            <t>The authorization server for trust domain A determines the authorization server for trust domain B. This could have been passed by the client, is statically maintained or dynamically resolved.</t>
          </li>
          <li>
            <t>Once the authorization server in trust domain B is determined, the authorization server in domain A generates a JWT authorization grant suitable for presentations to the authorization server in trust domain B.</t>
          </li>
          <li>
            <t>The authorization server in trust domain A acts as a client and presents the JWT authorization grant to the authorization server for trust domain B. This presentation happens between the authorization servers. The authorization server in trust domain A may be required to perform client authentication while doing so. This reflects the <xref target="atr">Access Token Request</xref> in this specification.</t>
          </li>
          <li>
            <t>The authorization server of trust domain B returns an access token for the protected resource in trust domain B to the authorization server (acting as a client) in trust domain A.</t>
          </li>
          <li>
            <t>The authorization server of trust domain A returns the access token to the client in trust domain A.</t>
          </li>
          <li>
            <t>The client in trust domain A uses the received access token to access the protected resource in trust domain B.</t>
          </li>
        </ol>
      </section>
      <section anchor="delegated-key-binding">
        <name>Delegated Key Binding</name>
        <t>In some environments, there is a need to bind the access token issued by the authorization server in trust domain B to a private key held by the client in trust domain A. This is so that the resource server in trust domain B can verify the proof of possession of the private key of the client in trust domain A when the client in trust domain A presents the token to the resource server in trust domain B. Any application in trust domain A may act as a client, including applications that are resource servers in trust domain A and need to access resource servers in trust domain B in order to complete a request.</t>
        <t>In the case where the resource server in trust domain A is acting as the client, the access token may be constrained using existing techniques as described in Security Considerations (See <xref target="sender-constraining">Sender Constraining Tokens</xref>).</t>
        <t>The case where the authorization server in trust domain A is acting as a client is more complicated since the authorization server in trust domain A (acting as client) does not have access to the key material of the client on whose behalf the access token is being requested.</t>
        <t>However, the trust relationship between the authorization server in trust domain A and the authorization server in trust domain B can be leveraged to sender constrain the access token issued by the authorization server in trust domain B. This can be achieved as follows.</t>
        <ul spacing="normal">
          <li>
            <t>The authorization server in trust domain A verifies proof of possession of the key presented by the client.</t>
          </li>
          <li>
            <t>The authorization server in trust domain A then conveys the key of the client in trust domain A in the token request sent to the authorization server in trust domain B. This can, for example, be accomplished by including a <tt>requested_cnf</tt> claim that contains the <tt>cnf</tt> claim of the client in trust domain A, in the assertion authorization grant sent to the authorization server in trust domain B.</t>
          </li>
          <li>
            <t>The authorization server in trust domain B then includes a "cnf" claim that matches the value of the <tt>requested_cnf</tt> claim included in the authorization grant in the returned access token.</t>
          </li>
          <li>
            <t>The client in trust domain A that presents the access token must use the key matching the <tt>cnf</tt> claim to generate a DPoP proof or set up a MTLS session when presenting the access token to a resource server in trust domain B.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>The editors would like to thank Deb Cooley, Lars Eggert, Patrick Harding, Russ Housley, Joe Jubinski, Watson Ladd, Justin Richer, Adam Rusbridge, and Dean H. Saxe for their valuable input and general support of this work.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-17</t>
      <ul spacing="normal">
        <li>
          <t>Formatting changes to use bacticks consistently</t>
        </li>
        <li>
          <t>Example consistency updates</t>
        </li>
        <li>
          <t>Use the <tt>&lt;sourcecode&gt;</tt> element rather then <tt>&lt;artwork&gt;</tt> for http and json examples</t>
        </li>
      </ul>
      <t>-16</t>
      <ul spacing="normal">
        <li>
          <t>Corrected author's name</t>
        </li>
      </ul>
      <t>-15</t>
      <ul spacing="normal">
        <li>
          <t>Include suggestions from Mohamed Boucadair (see https://github.com/oauth-wg/oauth-identity-chaining/issues/195)</t>
        </li>
      </ul>
      <t>-14</t>
      <ul spacing="normal">
        <li>
          <t>Remove some extraneous text from IANA Considerations</t>
        </li>
      </ul>
      <t>-13</t>
      <ul spacing="normal">
        <li>
          <t>Expand the abstract somewhat to (hopefully) make it more informative</t>
        </li>
      </ul>
      <t>-12</t>
      <ul spacing="normal">
        <li>
          <t>GENART review comments addressed</t>
        </li>
      </ul>
      <t>-11</t>
      <ul spacing="normal">
        <li>
          <t>ARTART review comments addressed</t>
        </li>
      </ul>
      <t>-10</t>
      <ul spacing="normal">
        <li>
          <t>Move Aaron Parecki from contributors to authors in acknowledgement of significant contributions</t>
        </li>
      </ul>
      <t>-09</t>
      <ul spacing="normal">
        <li>
          <t>AD comments (hopefully) addressed</t>
        </li>
      </ul>
      <t>-08</t>
      <ul spacing="normal">
        <li>
          <t>Change some references from informative to normative and remove the unused OAuth 2.1 one</t>
        </li>
      </ul>
      <t>-07</t>
      <ul spacing="normal">
        <li>
          <t>Add a (hopefully helpful) sentence to the end of the first paragraph of the Overview</t>
        </li>
        <li>
          <t>Reword bullet (C) of the Overview (because you cannot use public keys to sign)</t>
        </li>
        <li>
          <t>Explicitly reference RFC8693 Section 2.2.2 for token exchange error</t>
        </li>
        <li>
          <t>Try and better explain that the access token request content is more desricption of Sec 2.1 RFC7523 and delete the empty <tt>scope</tt> parameter</t>
        </li>
        <li>
          <t>Explicitly reference RFC7523 Section 3.1 for authorization grant error</t>
        </li>
        <li>
          <t>Remove a seemingly nonsensical sentence about preventing injection of invalid claims</t>
        </li>
        <li>
          <t>Try and explain why ASs might not want to advertise some supported requested token types</t>
        </li>
        <li>
          <t>Endeavor to qualify the SHOULDs on client auth and sender constrained tokens</t>
        </li>
        <li>
          <t>Qualify the only <bcp14>SHOULD NOT</bcp14> on RTs from assertion grants being inline with historical decisions in RFC7521</t>
        </li>
        <li>
          <t>Quality the Authorized use of Subject Token security recommendations a bit</t>
        </li>
        <li>
          <t>Change Intended Status to Standards Track from Informational</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Use IANA.media-types so the tooling can find the media types registry without an explicit target</t>
        </li>
        <li>
          <t>Mention that the RFC8693 token exchange is not strictly necessary, if trust domain A's platform provides other means to obtain a JWT authorization grant</t>
        </li>
        <li>
          <t>Better describe the trust relationship necessary (domain B has to trusts domain A to issue JWT authz grants and trust its signing key(s)) and mention that AS Metadata's <tt>jwks_uri</tt> can be used to obtain the verification keys for trust domain A</t>
        </li>
        <li>
          <t>add a note about agreeing on semantics etc. when transcribing claims</t>
        </li>
        <li>
          <t>Editorial fixes</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Editorial pass on Appendix for consistency</t>
        </li>
        <li>
          <t>Clarified introduction</t>
        </li>
        <li>
          <t>Added security considerations for unconstrained authorization grants.</t>
        </li>
        <li>
          <t>Updated some contributors' affiliation and contact information</t>
        </li>
        <li>
          <t>Added examples in claims transcription text</t>
        </li>
        <li>
          <t>Simplify some text in the JWT Authorization Grant section</t>
        </li>
        <li>
          <t>Fix some toolchain complaints and other nitpicks</t>
        </li>
        <li>
          <t>Added some Privacy Considerations</t>
        </li>
        <li>
          <t>Move Mr. Parecki from acknowledgements to contributors in acknowledgement of his contributions</t>
        </li>
        <li>
          <t>Added Authorization Server Metadata registry to publish supported Token Exchange requested token types</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Clarified diagrams and description of authorization server acting as a client.</t>
        </li>
        <li>
          <t>Remove references to sd-jwt.</t>
        </li>
        <li>
          <t>Added text to recommend use of explicit typing.</t>
        </li>
        <li>
          <t>Added security consideration on preventing lateral moves.</t>
        </li>
        <li>
          <t>Editorial updates to be consistent about the trust domain for a client, authorization server or resource server.</t>
        </li>
        <li>
          <t>Added sender constraining of tokens to security considerations</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Editorial updates</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>remove recommendation to not use RFC8693's <tt>requested_token_type</tt></t>
        </li>
        <li>
          <t>Corrected discrepancy between alphabetic numbering of the diagram and text in the resource acting as client example</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>limit the authorization grant format to RFC7523 JWT</t>
        </li>
        <li>
          <t>minor example fixes</t>
        </li>
        <li>
          <t>editorial fixes</t>
        </li>
        <li>
          <t>added Aaron Parecki to acknowledgements</t>
        </li>
        <li>
          <t>renamed section headers to be more explicit</t>
        </li>
        <li>
          <t>use more specific term "JWT authorization grant"</t>
        </li>
        <li>
          <t>changed name to "OAuth Identity and Authorization Chaining Across Domains"</t>
        </li>
        <li>
          <t>move use cases to appendix and add continuous integration use case</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>initial working group version (previously draft-schwenkschuster-oauth-identity-chaining)</t>
        </li>
      </ul>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
        <organization>SGNL</organization>
        <address>
          <email>atuls@sgnl.ai</email>
        </address>
      </contact>
      <contact initials="G." surname="Fletcher" fullname="George Fletcher">
        <organization>Practical Identity LLC</organization>
        <address>
          <email>george@practicalidentity.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Shekh-Yusef" fullname="Rifaat Shekh-Yusef">
        <organization>Ciena</organization>
        <address>
          <email>rifaat.s.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization/>
        <address>
          <email>hannes.tschofenig@gmx.net</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81963rbRpLofz4FVj47kRKSluS7viQbWrJjOZKlSHISTzaf
3QSaJCwQYABQNGNnnuU8y3myU5e+ggAvjia7ynxjCWj0pbq67lXd6XRaRSnS
6K1IslQeBGU+la14ktNvRbm/u/tkd78VivIgKMqoVUz747go4iwt5xNofvzs
6nlL5FLAaxm2ZsODIBPTctRqRVmYijE0iXIxKDuxLAcdetWJI5mWcTnvhCMR
p3E67Ow9arXgSQKtz3rQJDhWTQKYWYBPsjz+Q5QwbHCoPgp6YZ4VRXCUjeFB
0RL9fi5vDlqJSGESMm1dzw6CX39r3QkiUULH+7v7+51d/F/Q6dCzIC6CQZwk
MgriNICpQU9lHIokmQf9efBhnOzngzCIB0GalcEwvoFOBc3loNUJeHG9PI3K
4DIczWR6XYQjAJnMW0GQ5TCJIzkQ12UWXMpwmsNq4LmEySYHgcDPii4C5bsh
PuqG2dh0eg7PZR78IIpCJmORru5vQl98F3GDbqEb6B5/kLDMefB0mg9j093p
8dXFM9vHdZ/efjeOy1x2oYX5+jS+lsFLWCDCWX386rLXOTy8vLTfj9+/xybf
hfO+zLtpIbrD7Mb08TSPBWyeGE/6MBfdyzlupN5s21U/VO2+m0ADjS8ejHoi
B2Q4B9QLr2Pd3dl1KRwgY5PvJtyEPg4BbfO4DzvtbmE5TYKraVKM4r4YzkQi
dXeX3786cbqDdsV3xTBNuiI2X38voakMnieyDEd2689zERIuWVQ+OTm0nQ3p
s+8mulntGi/igRCAXSN5Peq8mRZyoLs/jGXqrDSnht1GhHoh0lQWwRUgaDaQ
aTy0n47oVbc0r+DzD91Ulq1WmuV4IG7kATS/eH748NH9JwfBHXVE97u7lZP5
PIfBZll+zc0fP3xyz29+lV3LNHj2Ac59OpTc6tGD/T1s1QNcz/1ugkGWO18f
JrDoksZEWIU86CKB+D4XaVmY3mkOLy/PXgU/y76awvbLn692YI8yOP7yFoZ5
/Gj3EQ5zIYtsmocyOE4j/DLLC7931fz+3v1lgLyU+Q2c/1NZCqBTgj968mh3
Fz96KosyOJzmOc5SoVl1DQ6BoC/3H/vDwcpLGZZA+MyMzWCtOB3YjW91gFiK
flHiQK3W1QhoZjGRYTzQkIlkEcKZAvQSwVji1sbFmOYzySXs6Q0e8dil58Jb
rBkOocwknThPEDFhD8oRnAFAfvhFOmswaNJt9er31x9niPvVDrJ+Cb3CystR
nk2HI5gRTAGW1+HxGtG1HQxEGCdxCZyjoLnQZPVnIvx9GhcxDZUNsFcRhhIX
g710AXIyyGUib2AW64IDYE0s0s42m5Y09CDJZsij+hKhC2TtRs6ZjZU0Dm4R
biAwmhJoQ1gWgVTrgAHLQIpwBPxcTnCu+Mkkz3C2Xcte1V6Mp0kZT+CU6O2A
ScHHsbyBnmAG0wIbYxcF7Af2U2ZhlgTwPp8HZQzPhLehQT+bppGAl7g8HENG
XcazcRxFQH2BZR/DjmTRNEQwtHqTSaKwrYD5lrApuQRo59LCGNdMiKzwBYh+
EMUFU3tcc2U1PorNgHJLBoo31ZGA9QLsspmLF/6GFXRYu0GPJoWHcyxg4YBt
BTwHtDVj6imqTwrcroYJ9SVgAWBYNoZ3JUAY+k8Sgi6fW7vcOL3Jkhve/GIK
KxBmIqlEzMmC6xSwBaY6G2Uwn74ciWSgEIUbzmCdsCLg/iT8AAKUscBhtuOu
7LapLZzAfKcNfSB0PQjg13S6EM6A0NkEH1NPs1EMM8rg+3xx+TMEOopb8N0k
j4FiwFzH4pqwL60MEgHNQbGzGxANco8JLpNwoC81zZFRGzEQlwz/ZyHC+AaL
TSUsOBgjkD3Iq+5BeJ2OkcDmcoBThc5LfA4r3dJS6xYtFkSuOCXiB5s1htlM
RAmiWEoUEB71+TQ1UZXg40fFKv/8k/pDUP/buBWPhkwRRoM1qeNjkWnVMcEJ
bEzW4XR//AgiaQdQqBMKgD+MDqh8A58XSDZwJCTw9I7PL54hQAV+rmiUR28H
RkrgHVDEz9k7GPYOsmSiFPigCE4A5FMBogeR42uQiKEHwJ2t09eXV1tt/jd4
dUa/Xzz78fXxxbMj/P3yRe/kxPzSUi0uX5y9Pjmyv9kvD89OT5+9OuKP4Wng
PWptnfbewBuE2tbZ+dXx2aveydbCAoiIMVoDh5I5AJ6OWNHSPJcW/fTw/P/9
3737sLf/AZu7v7f3BMDLfzzee3Qf/sBDwKNlKR1K/BMgOm+JyUSKnNQfIC+h
mAB7S4o24nkxQqqHhBEA+eWvCJnfDoKv++Fk7/636gEu2HuoYeY9JJgtPln4
mIFY86hmGANN73kF0v58e2+8vzXcnYdf/1cCmBR09h7/17ctYkObq6GrRCQm
CULLCWvTBaAB/yYSQLx82VEOKyKBJpUtELxCHhxR12WcPT7FhjIrQiOqTGDh
w6eaVGNjXHONEAdnPxsTRajjxASdymRYSBFIdAiAawIemYFctkT4jqghwpX5
aShj5MU8TzhFyMeMZkNcpGHWC4BoO6JVIyAkKKU5rcfZ1jYOxHJuVQ5l4LC8
V5EkFmcAG3wM88tAhIvkJMnmRERZGmgEChJuPXbjvJ39AMYPmgdIg73zY2TJ
ROlAYpVKagA8SiuSf2XDjMi5sHMR9BwnKDMqySh1ukfiiuI0vgyziVSgcekv
iI4EwAQZOilEoOEIEkJZ3s9XbRD0hrYjQJIwmUYsMftMCkDW8HEbtmYocpCI
CxoR6DEIoyyrKSWmHRAV7hObjFgMZkFnYd+XHpnFUwiDeEzm48f3s7Ljfdyh
WQIVIfa8wHjPblBIkDPmteuQF1JqYEsSYud9iX9a0onL/19GPhGFNOBFFOUE
7pEry/CyB7EGYkUK6rYOszSUk3KK0nKbwRgT1dDqWjCL4SkfgUGc2z0iAjsh
LUkuI5aI8SmiHi4bZ6aV1VzL2bV4AjPNULylwWBH/wU/ra867s9Xgf75askj
9dz+/VXrkwfZT+abT3oznEeVpp+M6eJT65Oyk+iPbTdXhMzuo0rTT8buAd2o
1gvdHCma5jyqNLV/Qze6+cJsGnt+qrsxf3+6LRAvjOn81D6sPP20vAd/Imv1
sL23gxp5mNE+fKrte3kP/nn89PXmc/Cw4LPgwBuu9+sWILlZD9v7O5Yy8Ind
eA6/Ksr42+fN4evO4s/fD4d7O8HXPrX7rDkwiQTS+e3mc+gs/Pft3w6H2rbb
93e0WPqZPdTxkc16+FVxyd+8p5v0UINm3/7tkHyAaObwx2837eHrRSzp/N2r
8H+2H+5olr92DzV7Ud2ZW1gFiRgfDwLyBH/zxTrK9+WUVjKYJsFzEBe/+JOl
TZIk4ySZot+iZOHreTxEVWmPDBssp6EBvFiuzhgNdgJqQ5aPPWV2LSUqOFZm
HZyUrzyRBXhCFslC+w0UVWcjdtUIqsT1GSyNZjEhHXMi8tL91jAIAgNJ8sZC
9qsvJ/+2fYe+6ehvdrrBC/jImaXjMIm1lAi/eKqT1gA8s4enPaMlXYDuMkcA
GjFgmUJiVRHUGBRUc5mwH2AUT2CdMdoJ+rKcSZnaPRNGbiXw47aS9sVbPcgS
AAsgz0GrtbdCw9cT5S+TLDSKR+PM8V0FAS6lDH6t9fAdqf7nsA++bsW9dfQE
5jvd1bPVe1gYTIgZ8HFKXgwH01CpWF8d7JHu0KxiELKGgK1aERXlBrqmAtBK
xDQAWAvuPe3Skto0oxVjPK3lNE+XKU20IucQ4OJQd1oOt5q9J2ug8lYV9Wis
8bep26JmP8hTUIUiO39qRijnExXWMhZpPGDrGoPF0AqYO9rDx0Au81gkbfaJ
kblijTNKg3KPk2k/iUPsbLvYwW71pNvKG+RqzdBPPJg3bQMQlHiIpMeAPcxy
dG6CZorUf5LHNxjHw2OtcUI8Y13tvi+x0DWebGYHjL8XjGZ4nstcTam3Vm/B
DUaBGOdyE2Z6+Ft1Mgc/cR+rzFIGIWkKunXjztGgSEFUXyVR8bgoprVQ1E60
cTwcAUjRi8OEF9gn9Bpm6QB5sTW0TDIYd+4jFPG/osjCmEAiAG7EcOwkC0YL
PclucJarIQH55+jvLNnJU/BHxYgpk/7giyJ49352Xbyd5vE7PA/QRMkKuNal
IRnKvnR/7z4acVbi3VRTIc/WYqzFmxrnrAyygSn3zp36JRkeZK35aMPVARfv
vDm9VSTpHZluZY7SmSdfrBVjwtDDsBQ0VuMMlb24KDEAD55MMO4rUAYrNgSz
5RXxjm1qzZSJF1sJNmotJwws3RVVCcpfnGtU3JSDwv9leSRz1za/PkPdkO+Q
/45lMT3zS0nBFMFe9x62V+FchL13FqClyRhDDeRLMcb4wgWbsO50v7unOtUm
18kEjiBFVZipG8EL8bTMY/q0ACns48FNMRGh/LP1jsTJd62DoBdFMUcRsIjJ
O89RVVI/UnKdE/eCdFFGzRb1eKBpX6So92EiYtx3jNeApVHoAlDvkB53vMdI
zt/pM4aTfH1xTHL3Wl4oPINwmCLAQP76ZwlSPIZmpHeTbEixghitt1mPZyl9
YKeFh8YOg5K69sl6EERwGcvwmnIaY8o5i1W4jxfTRBZK4zKbO7Hvc3wfiKTI
GCFgr78Mjv3QEyC1MhloRwnxQHIDcSsKum1eHYkSKcGwja/4b9aMRD+RQV/g
6cGoDGIx7U1OLLlWgNbMffmxQhHsEYD/vEPQhcU2iquLw+FxF1GEXp8x0GNc
jjqMjIufh6+1ZxsFqAJIIoYUkevQWcTiOY5lQUqsUEeyXTnNqg2hF4ZyoAtI
BWsxHctSrTkvKomEElfMZ6J3vNR1jzPvkMcO1C6tj9MsqVixUgkV5xkcjuCe
v8WacGrvDwpFxII5TANoyhSY3DgukGmRhJ6hxHlDCgRxnoJYfTsQ4wzZm3Jw
AhCLtpZN2c9upYRCe5HrpdUmE0Hd6a0D9GYElJDUANxECdVqLW0d4hMpbWpB
LylYgzccYky2BwwcbKPmSqTLxHJYlcxbQGGYiXLDBUh5GuZUL0rpLWoCJUln
zu5YtfCL4jO2RQRRPBhICt91J9MNnsORlx8oHEq5AsnQo+e3gYBYN+Va32BZ
I4Q2xzssUY4WmNOhIj7PeEFVLqHWyWFGi5YrTW3Jhg1KqPi8WS223h6V5aQ4
uHtXFF3RVbO4ix/vmPC7XBFIpFylDn1pjsFAvrPuKfTG7/vjsw5h9ZulZqaF
lWnt2pUaUcFWSiXbO0GbVgEj6TL9sE0+aGTbFATWhU0ExhJQcFQ/l+K6YOKX
RprUawJithU5MUImiotJAurEZJpPMo68TObsTg4QFJ0xUDqMyDs/A1pOgLjL
uPDi6ur87l53r/UiK8qDwN0v9JqD6FJ2rigHSdj44LsfOrPZrIP8pjPNE5AS
MiBArRYt6y2mLH0DBO4/7/UwUQL+IdG2gF8oMwn+pYYdbAh/+Bao1j+0GPIN
bSI0+M/95/A/dyvxT0x/+kcx7b8HvvGW+vjm7cXrbvdo997bV8Vgtvd29/kj
AF3n8uTs4c+D49HjNy+Sbnzx+/3s5Zvde49/+D2vfM8zbwXL587TVXNnHsKf
t3zDujqSiF/1Yj+a0Rc2SO9HsL+7G5z9sGQP3hdZ2joU4Uh2sFGeJQcg3HVC
fNLG34oyy4EifGwFwZY7z62DLTl/Oep/H8Zn8cvnr/843nsVHxfH43Lyz8Pj
h8fvj++fXp3+cXo0nJ0e/RgPfuyS1wG+mYT3TvGbLHpxMQv/yG5O9p//cTJ+
Nv3nL6NR/5enxT8vn4yiXy6y43gWw7PZ8fvsw6v313un1MP74b1Xf7yenxy+
nLz55cf47P2z/bOr1/OzoxD+hQmkr/bexDCB8eRGfP/gur//U+/N5YNEfv+8
DL+nHj4k2PObX366hp5j8eJiN3xx+vBk/mQUzh/EJ+Of7r/5eW/W//71DbTZ
FYcvn3RP4scXo07YudjlHuK8P/0l+eXxh4fFj9f/vPj95fG4ePL68cX14/Dk
0XS0dzrev7d/9nA8+2MvK86fnb6Sg/tnz1//3Pn9akA99HYPn/wYyeOkI3d/
KHpbbYSvxR+A7qu36inZbqK33ktArgNErQNGrANCqwOLVAfvZyV/LT9M0Hr0
NoYde7jb+nMD/GLKqhGMMAXQYOu6nMMMnh1i/1thfgN/nHf2Hzykv6/jaOsg
2Np/vHfv3u7j3d379BQoHLQCkkZ/fYDfT38ZnObv35bD85cvPlwPxke9D7vj
R/efda46R9OTN4evovH093IyOH/7jL7BId/88ni/f/xg/+z86bOjvdHbvReT
4kNv/vMf+Y+Pjg5Hvd5Pvzz58cmzx9M3P241LvTlzz+YwLpaGwtQRy9woIcA
AOaI9Lcmyij4eKcp2mqFHcMYmpq4lfHmbGZz6tXFMt5SrFm7JtjMSNlKiqiz
sQKURJkriCwJwFsVGtes0e15Aj/zZ9eKwYYE1z5CaSdmKcIYMZQxxDd2WKZE
Fo81p0GQBbY+BUm4/shaHoZHttOXMKv8ndH9CytKGyVc+0K4rbPNNTAlO4Zu
gDNfBn+jUSzzJJCgYCS0Yh1vkBHSUMldeiRIZXHNHnX2UgJBmc9JWHasq5wi
RloHm6bsZgfqwDvGCftuwWj4aPeRQebzioWEF7CmAEk6ryfVNXoKmmyABWiy
KL/dW4Hgqyw5VW1yUR1fP9hUKNOPY5NiI4+Rgg1KcvCwjJX2rOOg4LMJae0e
NWlW39X2ESfMbaBm3kwPtGlEWf03sO48bTAmxQOFemj7IoNV1b6txEAc7WhK
r5WzxO3mtPcGZX74Drd6e0Bh1JjVj6g9qPcJstJdsVHzRKBLofwlO5S7YyBY
JUU2OpeE/zzPcqs9Ed2NUzNLnJ5IODC2nqxru9TPo1p3KKM1OrT76C/VhyDa
wKr3NPDtPLW8oNbE/cCs3bObe+qt0X44dplUWxW2vNIj2Wzi2WBxS7RL5oCk
69cmBawbzfK/QxXs/92qoGWkrX8YUvTNhtqKVlRawWepKq6W0go21lOqKkor
2EhJqdNPWsHaGkpFOalI0jb7P/8fV0H73buPHnW6clQ8eRg+7334lwh3d//1
+/df/fH41dsPd+93LyYnnf031+H9f9WoWE8JSdbSk9xFW70IiIqy8V+5xvxW
q87yjyR7nJUUBmFkLJ32iy5aMUQxAXN36ZxqOmS4Heb6+dkYCNMPpUoXLDlx
V6etN6Xqq5Ru9BRw/ptMkZsVSlbN42yKz2DdsZuxjKFgKC6NkZosy0+OC5Xp
PhaRrM1BNlxBJSLT/NvALBFBYs6uWJ2MjKZWnCvlQPMkMcutNijHZHkTt1BO
Gs43VrIJJ2fgtBvjWxStrIvbQ5rs+QFUWysIYbOujyUUX8Ezwfn1pdVStILq
KjCiYA/sl8GXX+p++iafn0UPB1m+/JKF/cU3JGWzXduLZ8LQRHfLK0ZuwZgZ
VxNlFnXPrffZKI0y+Z0xAm5RelaNRX8k58RznC6xA/i4i518Z3jHFgu8OtqA
1FZMDHeWpdgv4wyuUW3tCBNn04bto7oK2pg8nUQcgWo7JafFIGFeu67nJcsX
EYAG4toFDUPNsmkSMRpUBvQCh0ACg02dTLK8JMdDG040Ske1iG8clTpyLNcu
S4V5nhAl+vCmSxh2hKEfp3Eaj1WXiE/1hwvHsH7QEawoCGHRuMNqkEhJwxgC
BuJw7qZ504zQGaeD5MpsJjDPmzZL5EPJXhHX+0KedIUYrA+DCgASNIqsKEzH
5ZTtHkh7UEsZ5qRLsxiJUMujDqI7CDiCMiUDJL0zASKOyQzapgNY1++ODVLl
rEUZ6ZVy6mJBfArobBlw5S2gVeN4OuYqBFtEiQSLqgkAGMSk/7O3297d3d3S
O96AWd2WcbpZOZLPrreMHU4e54BoNbUEC0Mtjr1FxIYCxhjLQubBrLuQP9mA
xJJQHYnNXC7D84QACaZpKrEXKhliOVAbGEoxVRmYwpPwScpl+dLt0/AxVLIQ
TSaSg9AKxk8lKSTYJWn7iJ+HynGrI0DrbQHQo16jXZDZwW3ZHXYRvLMUv4T+
d6pRgZcK8TXvVoGRVUsNvFSxL0jhUFkbxUPmNfENIM2Qva284aqlqfBCmgY0
eOf5Ft51WxWaHCbZNOpw6EQEmJFkE0IEkN5L9uQT/0U2UugGqkiG2u/e+fHq
WhJItoT93gn/M6VUCqfACywKU4TdIEFkAA5SEu6hPQ4lCopzBkJmTg9wu6iD
rbdUp92lZpdoBYICCciWml9I3yKiS8305lfnR1QOMY43suNspHfIZjmsbQtJ
25aIQGDqbgVK0oJD4Nr0PM2O7fwoGFpjSxIP08KGZZkN+KKw1hcT1q9Bhefj
mCjUEnlGzViLCWsqrSyWwVJUEJ5xWHuCDh3ABOmUMCEx1tLcNCGL9H1NChoU
cdZimeJgLMICY/YjbVU9J9W/TQtYPPxKEIjJzDkWxtxTLVvi505oI4grlHGH
KjaiFY+RXZtoQWLYdM4TzG63UoGeRq6jqXBC5vW8RaKSW15kmEvjIC7kWGBS
tF6Gj2OK5FHnWFuvwABazv9eFT5bn+4wVu//rIYL1KKSbu3Q4dja7nSmvV+K
QwXt5HKIc82tPLTFkatLp72lvgNG5NjIsIetNUu5bXmBwxTRxUnhuJYO9E6G
JcdHoPPm3+os+beGEzjeu+Ktkt5khAZ5Xdqky5WERJ6DLuAFM2Cos/XPof6s
g7U4fMCJo0JR6F3doO806CpOPlNUispj2DO9eTEVCjsrQEJS4WSMtYD+HObd
l1zRwSqlmC6TZEgQcbkgMaZV9VYLmGgyDUcZ6pt4GCmB/wbJDTygihcGoA4s
VGoWQctWlyIs81AQLZ+sQMNZvObULPbYgBLCp1+LNDEmZUiR2rNlB6GuUjOR
Lpek6b3qBYd41iItvcBpwqdsO1gDjYMLjcUf73i4V1u8xrBiGpm4Gp+dijbp
QOA2TpQfYH+HKjmplsrsU6Deatb0igpdfs55cTo5kkaTPtjg7CjUJnuKgzgr
jg5s+jpHonK6tp0g9B29OcifD/m9FmJlrorzfhlcevt5pKp0bBc7BwDl5XSY
inv8+qtX3uO33xAPdYnJRVzUb7Qtq6a8Rqte+C1GpK4yTgXWAfpAy7Cb1L7U
SQa7u7AKKsbGMxHeTDhX4BKlnpyWAhzXgXtBRwRfdkLn5Z9rLeAvz5hHDtyR
lTGo3QLCkmYzUBOH8LSNbgbW4VgYYDeuMhzlUhUMISUAJB5UQEsgPFzVpyLb
EOnx80WghSrDdqksPwSc9d2W7IXVKbS1G0FHoKr1NEprsY281LZOzne3FJQT
EekI+vrOMqObqruIYnNtFULWmIOnKE+Tmpi1mR+RUUOnGsbFta4BWpawUSir
qLKGwBGARILuT7YNUz8TU1+yBIHvRFAsxDk6NZ1qZF2S6FmYRnZmoSs3ChRW
GWYNoR3kKVpZxKvb4mREb0DluGTejTywb5RSIodJ4peZUqJaNjDGnGmJ9Vfn
XFyW4yRVXHWbjYEqkiGXWItRaTL6cAGXJcGAXFF2HCv2aANYbCoHDmB2I0UI
NvHR26p1KkkuV12pA6k0x0bsdkr+LM2vtn5Sd4/QFM6eB7TROeaLXHaofDuf
kkzV+2wMQtpWhc9VXwovqIJQwdq/jHa8dKZUzjyXblcnezQNQQLOtEBfgZcZ
z7NVKEjdrlP4bRGQ6jg7kdDxhi5VNhHjLgoVjOCjxdK4lkXMiFVdW8loGqHb
BNcLv7KfQhkyiSY4KVAVJFanAz7jXE/XRGbaIhkqKP+d4zbYXuNA2dk6z9Gg
0a8SpUUSr8rL4QqxODHOJ18EPWIhKGIszykDGBmpCzKfF0GSDdHIQXUEjKvD
uHFyeQOTwfiDK1UTy+qXTOmsa/6+G5awR/UukQhS7vwUzQUFUQcje0/ybAQa
dWniP/TWVo6pOoLKI0YU3ZgkVKKrCt2JbuLQOaVqXrEyQSrHpArv8Aaxw/u1
FevGTqvD096aVVF0h9TYvWRZm2BsbxWt0qSSPPswVs0pr6GcTbGIi5X9CCuI
qLsyDREWl71yV41RFMoMRvkhTSshRh6S/JbzcuLNMmyaqy7CdCuJUWP8UKJO
yFFcaJJAqYErCiNzQqyh6ojYAGh2PFSfmpQ2NiqVIyQCIE5EMnE+J4OtTG/i
PEu5zuCp04cydDHX1JZkbT4tM87TUzIQyLR52UkoR6TWh4lFm5X8Q5sI2mCE
/ssBcg5SxlE9OcHeF005tg+TuUNWdpuWA5shBevhuCvY14WhkfWiJDoPyCzq
om4lHcaEh1L24IZMocknvIgT5DNEC0VIkym8vcQCmxXEoHR4rlNY1LN9Ml2w
kctlES6KoP8oyxnh9bdOUUKu0a00NozIYiJDQVmgo7BDzVfrqBKoHk0DS/ve
Ql8DNBUc43ShDKNXpdSZfUNXnEZcmzjYrTVWuHEHbmkLnUqXGrOsqRoTF2i5
KKt1wFvHiL8U/8hOSJfHEhMji0G8kIVcSK2jkWYAdCSRgrZimhr7urtelHOA
UsOQPaLka0DOlV+VzmkDKXDtdCCnY0w0RI8hQMAvmK4XQn4rqjEvfZjhkOYM
iVL70oQfBLK4emMfP04dhk3w0mtWd55ILZQW00RJdjeCI3CNOdo5FNXUUntv
ARd/Vfyz3toXpw1JdzpeJbazxV0hV4NQDEPb8MgWj7fJYBOcEq1Ku/2onhEF
pmi8KEZCi81KNcvGMFymj6pUrva6xEi/ppHiFxhlAl0OphhO7prLcAhdRUEX
C/BADusHjIjsYtnTzOq28aCaDVJeWuIM5C6SUVB7NQefJ2DMZEwgkoTxjt7x
CNEYFVJIjrWLmlhDdfNDH2CM1Oc1nJ5DIlJsmrS1UtVxp7iLKP6gqUzB1lpL
3KzjY52Ss16wp1/8V1nCObs5Yj3ADuMEOCj2KT+MBBZTuXHYqusgujGhzGTb
hd9tb0y2GnwW3eCMYk5scyQqJNP3XTt1/cckn52rWxEQvjnbT0GoVFt6ig7a
Djl92+qPF/N+Hkeu/FC0eiqKrCzleFL6Vb3pPoBQkQrEMH1YtQkmnY77XKgi
SzsUuaBSpF1fM1bzTzIRgdLyVHuzljRXgzKaFnI4No6+isvZRqfxBOEQp94N
EM4gZCeEMcySXBh0g2d4RYieJ0fCEItaEBJNlLbgCjhFVZz3VHCELKXBzLAm
hGBHbD6WUcwanVoo+ZxVFAhwl9y55wV6tJhvAMlICJyLjVmRdyeGWUbM0PAk
FywXheebI580MEi0VWnrXvAMWXozlK6mGOp3rOJjEBJsEMAJPPtAdbQTUxAG
kSq0X8XOV8UcaPF4oYC81F2YKyvaZNDRgTvIZSe0KNwRdfdNwDeLAByCEj0Z
dJYLex8Lg8mGP6O33HCLWoairAKawLgsUW1tfxonkT83467UIQlopOIKbSOp
gpZAXo7LLJ+3NVt3rzThEyDyPHbo8UjfzGPu1VE1DZAmvcc9UoJ0YVgECc7G
4oA33HgWAiTjmG0WO15vzeVMNApDTpmJz4+tDVtTcNjaEVeOZ9xFMUOkc3vv
hwi2DsUYRD38fotldtKRbcgHdRBSIwD5OexnShwXe8LTzPE4sFbbERc5UdFZ
fOb43YAwSUdtxLm1k0QA/36G8WFdmL29rKUax5iqGFr82w6IATP6rWu2IueY
1MqtcNei7vRQ8fBGdIpzOxXDbthWwvokiXK2FBr3peCZO1+oyE9lYIlJXsdK
7N5KTHEGM2ZbpcTMmb9o83oAhDwfstBjdsZOgMet3WottJjEFhB9kXtLcj40
RDhpoqgvE8Jy946pn2oB0CpBnFp0A5hlEugzL4oYHjibwKiLJAkGuWTN8xJE
nc4ZwQtRiSmXZnylDjrWVvVIWQckS6vIPYw/71ztSrB9HJ3vWCPNSNwQKDAT
X+2MYVaXQly6QeyFNrYtvhDs4KYyajwPFeeIIrw7nXOuf8m1H2O1D5IXTSfn
8vKsUiuQ1662GsGtHbyE98ZySC7RsG5IZjSmSLUniRkD1vbxkbL2ANJd9k5P
+K8dJUKUbij2YomKyoC1JRiUiazJ+FSpk9B0XYYesboHC6U/mDNUi57Upl4Z
I6crw7vUprI8HSBVTHUVubpsP0WZeKI1U+tihqnQ+hY10+qRU5+lZvgoU/ZF
vnLNGHFd3VHfrCFYGolkIod0RKyXk/xrzZD2a9rR9DRp+4IDCpWU4V4CRZjq
rrXVS/liS9eT4BVRE3k/Bk0OAw6onalWg2/RGG0N8ICCHXeL6lU0ujXOG5Pw
3z414K9MzbFZrnVASj4gzE9SPtzGA+T1zFKTEzoJc1BGDuJYWgDxw5ZB5JMk
J+uaTqGKs13o3xaabTjdzQdSK84Fk5+GwMkVl9esMesVriJCdhsVuEaHxpfV
3F9hLO+qJl/9Ua0BqGu+dhescRK5qWMt46QJfd5YydOZiKg5618XlGYVxwLd
zzKToIfmpDGHGJB1dEShCwumNSVV6KxOKyG7GhKfMWNzdKPyVXYxXWGiRWJb
irvqUsaF4QZ4DitN49TdJIu91O5NXVfabaEGVVFJPdOS+VwLLXK6ura9i9He
J9hewxnOVyLpuO71L8Kq1g6ug1Ktu8YeHi+9VtONdYsyKK6jrrN0rrpiirLG
/HtrwkaH1ROHsLRl0TbjI2SfKM7UxAuDfsIhyxpdWM9le0U1sX81LGEBF9Uk
MRKMQ0ox1451JaPZODgqJDCVJkO+Os5IIaLoczCDlwTXiMSOubOSowv0AU3m
C365jdLTCdGAZXHRxPmayKYiNLR8b0rkj6Tnvap30mw7tTh1EQcPA1TyUpJl
1xwDjzhwQGmhDbfkfFW5leCrmqfr3ET0qUIY+PnmVxF98ou+qOeb30X0advS
MPt888uIPpmzseP2s/FtRJvDufbGh+oylz1dfr8EPcULhrQSWXNO1ukCfoyV
prbNqi7+6kUZDTeGVO4PuVVw1lwpdAt3Ct3CpUK3cKvQLVwr9JnYSZLet583
i8Utv42bhW7nmP3Vu4XwaQXAn9MFawreJUObdVF/Njecxcqnq8H5Fy8YwpNT
gy9//0L8n83vGLod2rnOQvwaDKtUgGDbuWJIBybtePcMWaXKkwPpcqEDnSjm
i1KLl5VUHR1rXi3kXOVQY1CJsqDIKImmWnpem0U5sNP5rL2m6KeuIOI7bq1S
pS5CqH7vyC9WAlns1KSa1Kze8GWj2K++Sri2rhxfO0CwmxZVvcqM4t5S5JW9
6KM+3iim19RoZzWOUvWVMaq4jieYBwoCsLnfR2cFIh4oy7d77UHmNnVsWqpm
7BrIEuhLQzDz2SxTJFiIetVdBk7AR038H+z5WcrhTZ+78U6phg1A2+b6xauv
i86W3zRVVzx5gwjJbcoln9Vr1jtq/7lgRBHcxMKGyVi5y4SxbK91F5K6WOaY
7jVW1Gmj2vZr3ICUrdrQxu1ciw40I4N3Sc+K6a0dr7fs6qhFFCDCsG6OcbVk
mym2Y2zHru2uttoOx7OGOtjV1LDZAGsb7wT6izS5/uqaW72Bpsbs1lhxp2J9
KbNMl/BnomhD2/oyFCprqb7kja7s0GCw0946nWbVeDFHTdhnd/3uU1liIIZj
rWe6v8FIl1T/vuqq57JSKsChweKjb0JhK7H/PdUWoMBV9rquP591Y2O1R6nW
PmSDqKapNjCNRcrJ/wxZbflavJir1XpNmXMcjonGYjp+lDaxLol0L7Kv8wqu
HxeepR2uadWhMP55czC9LunAQaxhIwatuIRyA4tm/borgt1G1Lb+qqNGb996
dQe9Pq3X0ea/bpKLWLU5r2dqZiLF/osKbNQdNv5y/VwN7btI/xJsnwbLyi5v
UMXRKC9sI689sNWJGjTmbBRVE8ugspaCvKFivuAh5YqYVeOtc3t3xaTYYGms
GG+ViuaqeL6R1lo+q4894602nLr9eEZa20/1sWe81UZXtx/fBFxvGX5aMd7W
qK4VE/CnxRZqPqrLxn5c+++yfuzvt7ZfNQPVzHDJ80+qC9fS+5ld2CPz2bOo
szFv2EXNydy0izUMWau6WKPp53VRwZnPnQXbqK2TbMMuvqZZLBgdN4eF6+v/
rIUElo5Xnm/QxYrnf9eO3NsJhjKVXARvwy5ubUeYtf6Fhax8vqKLOnP4xrOo
Uyo37MKzhH/OLBoMrpvNYvXzVeCsMYdv2EW9++zftxA0dS+34K/qYg0L/spZ
3MJCVjXdfmRt+uuzovV+vr2VhVSqK69javjr5v1VV/869kk/iG0ttWdDW6Q2
NnvKiwk+VhlapbZHd/mSdMw1rbmrx01AdGK/VtjSFqy0Pcu4l8RoNdrNOSGb
LCUUMjtBvapSzY+uK+Org9Ul5yYVDmt9zFMxVm8Q0qqos2u1Xj9IxqxlhXHO
LN7yyGZTazGN+bZSqmviVBQs/q1mzh5qeIWn4nFq3l80vzbupVcsURvE3bjn
Jbk2G6j2btFrJyqpPgppNkLs18V8TMwd1e1kECy7372xeOOyfVi8rbnBdrsZ
qVi2JevZeject/Ui1JmHyyVEcZMb003w/63Yn49MYPoPch48xXuB0iElt1Ma
qRvKSgc8V7WgdfhmP1YhqA1VVjez5AhOuS3plvpgJJOVZUoVgiLGZW7qzCpP
KFrHTcINASwjMw6mhagSLibC0M5IPWquU6Sjz1dfb2J9Xg2OpRpVuJfOvZDu
tWyVbZXeXAnfVkkOnJS70gaKdLASsbvyqzVslMcKWqJwC7SudraTcX4xiLm9
iImK/pmKcVS5je9bjQsOgpXhKI1xRgvu8aaSfuyTbK6RB8SwpkbejrmZy1/u
ukZkd822akvBGbsEXpWFBevbhI/36ryQfoKWn+d2TRlxwPex4JF/JLKaOysq
lEFdXGFy0AAoL2ytPh226+UHrWKJDQi7Ae1RzjJdTpkLhVSKDd4OmfO9cyIc
xfKGk8JZlC7MvdRrrpSoGCZ/LqFhuGMNlZ83vJSdLPYAkhs5L0zXq8hi7NYX
9G4y3rj0GIPOyyNuMyD5BHDq2NyleW7F0TAd6MvZ9FXsVpd557xdsaS2XtPS
iwE/Z42bhanTdpjyFSLYgiVsuQuEcxqOzL0zWHFXraweKNXiJbW1o3S0VG0d
8C+XizGqrobDBH1yjY21K0rRmXCkExrcDQKoalUC1n10np3rA4CZzNDJBB6f
Xp1cmpJsMydlw5RUr8pQ65RyxGLeptioumHj453qoz/5BrQI09cLHbpPUfsk
qKTXIHv1gXtkiZy3gxMBjZ4Nh4BM7eBcoAP7Ongh8oiKmV5MYZIvMPkT277M
QA+ZguRVXMft4GdRFrC6E7qB5CUW3AChPIZNB3rai8QYP8biFUPJlUaOsLjy
i25wKT5ILVDHOSEH6VxxOpmy4sPwTUwdSF19Cd3zBAVdOTd4EeP1UfNW679/
/e9f8e4UUjmwoqeTozqgyg6+Ko6lczt7j5DkPaeYKtoZk0yXES70qTzOtVvx
LpnDF/q2WbdSDV/5UsDb1/puiq95Q/G2s2/fBZLrcASAOOq6xBSaiJyCDuA9
QgTv2CII4K1ZJi0MZ/qQ4iSyPGfpmo/HF8ApxVji+wdUKExVzS+msJ8FiwwE
hdNsBO2i4Gk2DUUkAOp0t6e+o24Yl6NpvwuE7C5dudaZDdUvOqOwo+u03OXk
17t7Tx7s4Lj3W1QFjGqosuCOt9KlEqtIUIENGr+mVDZ+fK9FwJwYntlHhgdS
JPZEFXxgI7ZH2YQr7exg7VauOk6lYXU03A1BYB87+/7Zq97FFdYsxPRzrj2K
mnUUwfEq8NK5zt4eNoRWKxvuUllrXFlPgC6CZQ9keB3zkig4I+5P6ZCpKq8Z
C6PCP5CIvphlTsiXlvZLBYbdJzShIzsLd8nujHYft2x5aYI26MeY+oeBJTQr
ByY4qdT8wSVDaZsoMiql7EGdE7yHZUdwADoQvQgQzJkE6kMT+G2H2ApdBapY
CyavK7LO7njMbQViPRnpx2c3WLBEzghLANOBR0KXQCa3D3eqbYJtHSk0z6bI
bVEMxD9VhdlrYv2csr/DmIPlkUoyJyk4BMpU5tSshv+Y3PiBfnRHJnKNnOsS
gayHJdMldMoyV90tHlqGCLnwuZGCgQkC4TQXf8HgBFXlC1DVAG1tr/EEZPuF
u2uWLIl6cS//pBCDGh6pV6WOJOYbS8zLw6tZsMIZHMGQqoWqjeQoWlWYhCt+
vVfDUKkyvguWA/AcYGkozUbzoHdZOKWEZ8ootVkRf1w6CL3ihgvE/D6FYZWG
zCV8sYCnaziiWVQFZd0ndvej0wWVTHNKAUNXF1fqxFQLiSotIU7pYk2Kxx0R
kyG4RcBDCq4Ikeoyp3qwkgdbUarbqQqrayPrUhJBPy7t+T7WFeouS1FOCfHh
N8yHjuhCQmDTTFttULBI8AwTq0AmhFS3S6WLOnxTQpEpcTijm5VQFRhoMwq1
UzcqmJsAbNYz7Thiprq1i2r1pwQ3c1L00ascNBVPXVBsHF0RpAID25Sy6Ylp
wNHM3UamPo0bfu0WOW4wicLUnvJZ1jp1k3pnQxS3jWBLSaGZTiN347y4gLQe
9A+NL8S8qG+MuyFCD7AFWrVd7OxwQTgXUL1Lc8kBLPbd+9l18Rbw4V1DGQwS
n0nRUoILEcFF2z4sWhDZxrKF6lTT/TE4GRLk9fUxsgy7yl60eKUNnkMSHFHD
HsQfSPjYJeHCPkfLP/bZ08nsVNPfykIUcilyfYcg11mmmhDEW9xS4JUqkwOq
7uie57oapSjrv1Y37BFxcXnxF4EYDOIkVkkCWKdJ1UdxoufNRMzVuLG5zs6/
1RNlGAzsxDpqSE5oPBJs1OY0FdRWpYdRvgQI8Wdw7kiOYqMJ+kYKJ78gjcsJ
SpsWSvhRQxVQJZic5l1fLBFV/UDfh6ZFlXr5hB08rlyiJ1HrvDPXdBhKgeb9
KYdYW1Jffx1NhfIDft1veSgDhGiINwArtuldqbmiroBwjAuKBToiEsoOUef9
jF7z8mgrKZRPEWNNtC29m+M1cd0VuIvnweGi7t0ChK/29ChFQZWeckpz2oQW
72hzMKG2M9b7AxZuUXWnu3hzhS3DStam2rOI+3KvVTdzfEPCdq4B7PIxFjtZ
blMMAelc7d0rnkqDWTW5BF0gnBu7m0gmIwF/gPDHdQv17EdSYwnTX+dAGkhU
bYv6sLdwAaQEUJ3lRnODuiQM1qMFMDjr8BWIU04tOSaSXyp925JNosd4fjzV
gazY/gklQKaknuly5SMpInWNH6AICZgaHaE1QpaemeIe6AkNthrY4RZ8wgcw
Im0Re1UXAm1+DxR2RptuS2DikjQjoPqeUdRUSlB/hBtAypUuXo8qMA42zLPp
BPkd2U22ncpTUS4GZacIRzOZXsM/WDQm7zQoqTut/w8Tp+LoTb8AAA==

-->

</rfc>
