<?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.6.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-authorization-server-discovery-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title>OAuth 2.0 Authorization Server Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-parecki-authorization-server-discovery-00"/>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <author fullname="Benjamin M. Schwartz">
      <organization>Google</organization>
      <address>
        <email>bemasc@google.com</email>
      </address>
    </author>
    <date year="2022" month="November" day="18"/>
    <area>Security</area>
    <workgroup>OAuth Working Group</workgroup>
    <keyword>authorization-server</keyword>
    <keyword>oauth</keyword>
    <keyword>resource-server</keyword>
    <keyword>authorization</keyword>
    <abstract>
      <t>This specification provides a mechanism for an access-controlled HTTP resource to indicate which OAuth authorization server it uses.  This allows the use of OAuth 2.0 authorization by clients that do not have prior knowledge about the resource server's configuration.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://aaronpk.github.io/oauth-authorization-server-discovery/draft-parecki-authorization-server-discovery.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-parecki-authorization-server-discovery/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/aaronpk/oauth-authorization-server-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>In order to obtain an access token to access an HTTP resource, an OAuth 2.0 client needs to know the authorization server to use for the request. OAuth 2.0 <xref target="RFC6749"/> does not provide any mechanism for authorization server discovery, and other OAuth 2.0 extensions have left authorization server discovery out of scope as well.</t>
      <t>This specification provides a mechanism for a resource server to indicate which authorization server it accepts access tokens from, so that an OAuth client can be configured with only the location of the resource server.</t>
      <t>For example, an email client could provide an interface for a user to enter the URL of their JMAP server <xref target="RFC8620"/>. The email client would make a request to the JMAP server to discover the authorization server, then initiate an OAuth authorization flow to obtain tokens.</t>
      <t>This specification extends the <tt>WWW-Authenticate</tt> response header defined by OAuth 2.0 Bearer Token Usage <xref target="RFC6750"/> to include an optional issuer URI (defined in OAuth 2.0 Authorization Server Metadata <xref target="RFC8414"/>) of the authorization server.</t>
      <section anchor="usage-and-applicability">
        <name>Usage and Applicability</name>
        <t>This specification is intended for use with access-controlled HTTP resources that conform to a standardized or well-known format or protocol.  When such resources proliferate, it becomes impractical for clients to maintain advance knowledge about every HTTP origin that offers such a resource.  Instead, in this specification, the client is presumed to be configured with a URI for this resource at runtime.</t>
        <t>At present, access control in this situation is generally limited to the HTTP Basic and Digest authentication schemes.  These schemes use only a simple username and password, and cannot support modern authentication capabilities such as Two-Factor Authentication, Single Sign-On, and password recovery flows.  This specification enables clients to make use of these richer authentication procedures via the OAuth 2.0 system.</t>
        <t>This specification can be used whether or not the authorization server has prior knowledge of the specific client implementation.  For example, an authorization server might restrict authorization to a small number of well-known clients, or it might authorize any compatible client.</t>
        <t>Authorization Server Discovery allows an unrecognized resource to initiate an OAuth 2.0 authorization flow.  This carries significant security risks; see <xref target="security"/> for details.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This specification uses the terms "Access Token", "Authorization Code",
"Authorization Endpoint", "Authorization Server", "Client", "Client Authentication",
"Client Identifier", "Client Secret", "Grant Type", "Protected Resource",
"Redirection URI", "Refresh Token", "Resource Owner", "Resource Server", "Response Type",
and "Token Endpoint" defined by <xref target="RFC6749"/>, as well as
"Issuer", and "Issuer Identifier" defined by <xref target="RFC8414"/>.</t>
      </section>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>The following is a typical end-to-end flow implemented according to the specification. Note that while this example uses the OAuth 2.0 Authorization Code flow, a similar sequence could also be implemented with any other OAuth flow as well.</t>
      <artwork><![CDATA[
+----------+                                          +--------------+
|          |                                          |              |
|          |-------(1) resource request-------------->|              |
|          |                                          |              |
|          |<--(2) authorization server issuer--------|   Resource   |
|          |                                          |    Server    |
|  Client  |                                          |              |
|          |-------(7) resource request ------------->|              |
|          |                                          |              |
|          |<-----(8) protected resource -------------|              |
|          |                                          +--------------+
|          |
|          |
|          |                                         +---------------+
|          |-------(3) AS metadata request---------->|               |
|          |                                         |               |
|          |<-----(4) AS metadata response-----------|               |
|          |                                         |               |
|          |  +-------+                              |               |
|          |->|       |                              |               |
|          |  |       |--(5) authorization request-->|               |
|          |  | User  |                              |               |
|          |  | Agent |<-----------[...]------------>| Authorization |
|          |  |       |                              |     Server    |
|          |<-|       |                              |               |
|          |  +-------+                              |               |
|          |                                         |               |
|          |<-------- (6) access token --------------|               |
|          |                                         |               |
+----------+                                         +---------------+
]]></artwork>
      <ol spacing="normal" type="1"><li>The client makes a request to a protected resource without presenting an access token.</li>
        <li>The resource server responds with the <tt>WWW-Authenticate</tt> header including the issuer URI of the authorization server.</li>
        <li>The client builds the authorization server metadata URL from the provided issuer identifier according to <xref target="RFC8414"/>, and makes a request to fetch the authorization server metadata.</li>
        <li>The authorization server responds with the metadata document according to <xref target="RFC8414"/>.</li>
        <li>The client directs the user agent to the authorization server to begin the authorization flow.</li>
        <li>The authorization exchange is completed and the authorization server returns an access token to the client.</li>
        <li>The client repeats the resource request from step 1, presenting the newly obtained access token.</li>
        <li>The resource server returns the requested protected resource.</li>
      </ol>
    </section>
    <section anchor="www-authenticate-response">
      <name>WWW-Authenticate Response</name>
      <t>This specification introduces a new parameter in the <tt>WWW-Authenticate</tt> response to indicate the issuer URI of the authorization server:</t>
      <dl>
        <dt><tt>issuer</tt></dt>
        <dd>
          <t>The issuer identifier of the authorization server.</t>
        </dd>
      </dl>
      <t>The response below is an example of a <tt>WWW-Authenticate</tt> header that includes the <tt>issuer</tt> URL.</t>
      <sourcecode type="http"><![CDATA[
    HTTP/1.1 400 Bad Request
    WWW-Authenticate: Bearer error="invalid_request",
      error_description="No access token was provided in this request",
      issuer="https://as.example.com/issuer1"
]]></sourcecode>
      <t>The HTTP status code and <tt>error</tt> string in the response are defined by <xref target="RFC6750"/>.</t>
      <t>The <tt>issuer</tt> parameter <bcp14>MAY</bcp14> be combined with other parameters defined in other extensions, such as the <tt>max_age</tt> parameter defined by <xref target="I-D.ietf-oauth-step-up-authn-challenge"/>.</t>
    </section>
    <section anchor="changes-to-the-issuer-url">
      <name>Changes to the issuer URL</name>
      <t>At any point, for any reason determined by the resource server, the resource server <bcp14>MAY</bcp14> respond with a new <tt>WWW-Authenticate</tt> challenge, including a new value for the <tt>issuer</tt>. If the client receives a <tt>WWW-Authenticate</tt> response indicating that its current token is no longer valid, it is expected to start a new authorization flow, and <bcp14>SHOULD</bcp14> use the new issuer value indicated in the response. This enables a resource server to change which authorization server it uses without any other coordination with clients.</t>
    </section>
    <section anchor="client-identifier-and-client-authentication">
      <name>Client Identifier and Client Authentication</name>
      <t>The way in which the client identifier is established at the authorization server is out of scope of this specification.</t>
      <t>This specification is intended to be deployed in scenarios where the client has no prior knowledge about the resource server, and the resource server might or might not have prior knowledge about the client.</t>
      <t>There are some existing methods by which an unrecognized client can make use of an authorization server, such as using Dynamic Client Registration <xref target="RFC7591"/> to register the client prior to initiating the authorization flow. Future extensions may define alternatives, such as using a URL to identify clients.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="server-side-request-forgery-ssrf">
        <name>Server-Side Request Forgery (SSRF)</name>
        <t>The client is expected to fetch the authorization server metadata based on the value of the <tt>issuer</tt> returned by the resource server. Since this specification is designed to allow clients to interoperate with RSs and ASs it has no prior knowledge of, this opens a risk for SSRF attacks by malicious users or malicious resource servers. Clients <bcp14>SHOULD</bcp14> take appropriate precautions against SSRF attacks, such as blocking requests to internal IP address ranges. Further recommendations can be found in the <eref target="https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html">OWASP SSRF Prevention Cheat Sheet</eref>.</t>
      </section>
      <section anchor="phishing">
        <name>Phishing</name>
        <t>This specification assumes that the desired HTTP resource is identified by a user-selected URL.  If this resource is malicious or compromised, it could mislead the user into revealing their account credentials or authorizing unwanted access to OAuth-controlled capabilities.  This risk is reduced, but not eliminated, by following best practices for OAuth user interfaces, such as providing clear notice to the user, displaying the authorization server's domain name, supporting the use of password managers, and applying heuristic checks such as domain reputation.</t>
        <t>If the client does know the identity of the authorization server in advance, it <bcp14>SHOULD</bcp14> ignore the <tt>issuer=...</tt> parameter.  Otherwise, an attacker who compromises the resource server could mount a phishing attack via the authorization flow.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="compatibility-with-other-authentication-methods">
        <name>Compatibility with other authentication methods</name>
        <t>Resource servers <bcp14>MAY</bcp14> return other <tt>WWW-Authenticate</tt> headers indicating various authentication schemes.  This allows the resource server to support clients who may or may not implement this specification, and allows clients to choose their preferred authentication scheme.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <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="RFC6750">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="D. Hardt" initials="D." surname="Hardt">
              <organization/>
            </author>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources.  Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key).  To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer">
              <organization/>
            </author>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="M. Machulak" initials="M." surname="Machulak">
              <organization/>
            </author>
            <author fullname="P. Hunt" initials="P." surname="Hunt">
              <organization/>
            </author>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers.  Registration requests send a set of desired client metadata values to the authorization server.  The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client.  The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol.  This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-step-up-authn-challenge">
          <front>
            <title>OAuth 2.0 Step-up Authentication Challenge Protocol</title>
            <author fullname="Vittorio Bertocci" initials="V." surname="Bertocci">
              <organization>Auth0/Okta</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="6" month="November" year="2022"/>
            <abstract>
              <t>   It is not uncommon for resource servers to require different
   authentication strengths or freshness according to the
   characteristics of a request.  This document introduces a mechanism
   for a resource server to signal to a client that the authentication
   event associated with the access token of the current request doesn't
   meet its authentication requirements and specify how to meet them.
   This document also codifies a mechanism for a client to request that
   an authorization server achieve a specific authentication strength or
   freshness when processing an authorization request.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-step-up-authn-challenge-06"/>
        </reference>
        <reference anchor="RFC8620">
          <front>
            <title>The JSON Meta Application Protocol (JMAP)</title>
            <author fullname="N. Jenkins" initials="N." surname="Jenkins">
              <organization/>
            </author>
            <author fullname="C. Newman" initials="C." surname="Newman">
              <organization/>
            </author>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document specifies a protocol for clients to efficiently query, fetch, and modify JSON-based data objects, with support for push notification of changes and fast resynchronisation and for out-of- band binary data upload/download.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8620"/>
          <seriesInfo name="DOI" value="10.17487/RFC8620"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The editors of this draft would like to thank the attendees of the IETF 115 OAuth Working Group and HTTP API Working Group where this proposal was initially presented. The editors would also like to thank....</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8Vae3PbNhL/n58Cp/xx8VVS4tR5VNf0qthJ6ps49tnOZDqd
jgORkIQzSfAI0oqa+D7LfZb7ZLcPgC9Rttumc57JhALBxWL3tw/sYjQaBYUu
YjURg+NpWSzFo/FDgQ8m17/IQptUnKn8SuXiQNvQwMN6EISyUAuTryfCFlEQ
RCZMZQIkolzOi1EmcxVe6pFsUhlZojKKPJXRw4eBLWeJthZeF+sMvj98ef4q
SMtkpvJJEMEikyA0qVWpLe1EFHmpgquJ+DqABeQE+ArLXBfrYGXyy0Vuymwi
eA/vYUCnC/EaB4NLtYYZ0SQQI9HHE44bfIEPubKmzEPVeNf6JrhSaQl83ROi
uST+5j2014bhROoYhl9/rz7KJIvVODQJjss8XE7EsigyO3nwoPHywfvXAVDX
xbKcgVqkzE2aXT4gFm8R6gA+jEFutoAPPWlHYMwUx9rcidSDX6PM8bJI4kEQ
8CyQtBjBPyHmZRwzNKbIhDhhavTO5AuZOoIgxctC0rBieRHT37vVSWSbNF+o
9J8y0ak4GouzcLmSefFLD+nXxixi1SQ+g/9t+P2CXhDxIDV5AvOvFDJ/+mr/
ydO9b6rHxw/d47O93b1JEOh03pn+9PE3u/h4ODoYa1XMRyxiW6hsVGYkvXQU
LmUcq3QBHwXBaATImtkil2ERBOdLbYXNVKjnOmSzy3JzpSNlhRSJgk9TbRMB
6wqZChmGytoRGEeRG6AZiR/Oz08q8IrCCJ1GSEmJ1VKHS2cYLS0K1qLQhSit
smMhiAvg0aysKJYKh4WZi9oxtL+frUUYa5UWOFsWIjIiNYVYyisF3Gtg9TI1
K+BuoWCrpiyIaMUkL/9nK2Abc70oc6I6drJJdBSB1sBSDnGTURmS+QWHKag3
ArZhj2ZWSFB/JRAYu1QpvnG/4U1LMEMcqbfD3ItUqQi/JXaJx145wQQUCKqA
9/GvEgxt3KD36ZNDzvU1CANUh+JweoSV111F9q1S2RTyGgkDS+WNJdTHAtwh
zLcs51jNi1sICZQ8qBF+ZsCGFSsVx+Nfibmu2nogtg1cqIsMMNLUkRXz3CRD
YQ1Dp1KLU0kIAzNVIQMAvgLvJUwar0n4sXEcw756QAW7ewVcO6dKWifTr8ib
Mo4amoGtFCqfy1C53YKiaYsKx2mFd6dv3GI6F38/mp74HX769Df0DE8ePby+
HoMJqfZSK1oqkZeKhEiYQcpIs0kGhrzGtkJwiG+QWV1olHsltfbkeYwwrsyD
Bd6vcIJTxNb+4f379yMkB2yTXj+gWDMMwGKpJNpcpOY6BWWA5deQfKHAS+fi
nGzvnZVg7c4QHoNIGChhXLKgTYbrylhA3C/hq3enh+K+J6ubxtmbhBypQkJi
IHkFdMfX1zseBH0ig23fu+e4QnuaZlkMm5vpGDOHPpHAAKIhjYAhBAPaPIHv
FqfrnCBCFoIDOSFIj2BNmUf6F5gNtNDyRuhlUsERBAcBhoUJTQwO+D2q15Zg
TDVVeB3ruQLvCEAGc5opCFgwrpMMYwewHROflSs2mHKk7BmjK5kCqLt+WJFf
IPZBYAsECfJu5rCOZQZqiwe+DlOIZDIaCprZFRnB0uNdI8fKlgnsGFjpMWJJ
Smc3CrMr0wUG8hKglyhQ2rQgMkBx6B2HE3zNgy7KSmULlYKIYnAPsU50wYsj
W7TJF9LqkPR/oBdogLKGOWElXKrEhUBY1P/mAIg+B1Sp0ZWQY8Dsg4hl0lpM
LdlVg89Cf2/LLDN5IRIDFpN2VwplxuDTygvaivOVGb0CXYJIpq3pQ3EGuSQs
e6YX6eg4HbaWBdE5D48WXwXwjoWnchbDWi14XFaxvaD95uC/Vd7lFZAXqggU
Z8WVliTN2jztGiCR9HsV571hCVD5UlEIg72hdLZG16W0G0mDs2tPvIIYaiKB
J04YhOj6+t4FEr1YFoi2AnbbjZlsrQkASPD5A9duWKuT3hC3ATbItDwJju1g
lRkQA2G72YjiGw9SPtUCjssUdblIyVG007iur9/Mw1D7XvmhzHOCFgCGFALy
su6gBGq2l/av8Bs9tB8FF422GIFn1TGGCUi59k16hUDANIOsBh20pt+ocHAo
ai0QglYMjt6dnQ+G/L94e0zPpy//8e7w9OUBPp/9MH3zpnoI3IyzH47fvTmo
n+ov94+Pjl6+PeCPYVS0hoLB0fTHAdvB4Pjk/PD47fTNoPIJcBQtERlwulLO
/VBoB1+CPkHaALKbMNczjjYv9k/++5/dPZDGnyCcPNrdxcyNfzzbfQqxBeHr
rI78AP8EUK4DmWUQ+JAKogbsWhcyBoQAju0SMQOoR0/2l59QMj9PxLezMNvd
+84N4IZbg15mrUGS2ebIxscsxJ6hnmUqabbGO5Ju8zv9sfXby70xSGH2XOVw
HDOxWfSHVjxmkEWDRhKAzpQdO2UOqO22ueyDA0WFt0dfplFmQKeb89m8cHyf
7K9+6nhVJOpeHEY4PNfN77CwAHDBgdc52s85HOzx1wkEahUijk6dhSKlUxVp
MF5iAQIbgVjNwYaX9cb8fHG8SnmpaqTm+tQnW7xeQBDnrKradDMDa5w2hj6t
R4QPDim18kbCv5o73SDCeRSb/onLRsQxsHWl1YoNfm7QV2FhA4+IWOugxAPS
pFFhRvAfZ52Va0ZjC0PwEPiJC8UtMIzFW5Am5x1wfogVG7Bz4zVUtiWEiA5a
c8jBWcdgjBbza0x4OMEHe2QX0OCKUxDw182TFfFen4z+Xf0FX42qv6/Enf8a
X9GXwef63eftn3X/OlM/t8g42vd3d+qA4c4X7dW/u5HMF+LmW+Dk0c6WMyAh
0LODX1Xo/53cuIjqyTj7/eIifropYvF/ETEy82yHTgzsiCq2Wux8IW5uRPH2
H7+VfmcBL/yvd8T0TCT+4LcB8a7sfys3N5Nxwt/rMsMue7vs/xhuatnd4pRu
JlPL7hbGbuOmIgMietz1ApXGbtXUZzioozn/bm6mC/QDTmn899N4PP65Y7Pt
iLJ1U3fhpuOJqpffjr6QiL+Iwm/+9s5kKrmK+0922rXXtkX/Ydz8prC86W8a
gT7Y5eKdO2PiGdm2K3ayz+9iOoEVFVeswGynU44eB4+YcreCys4DjlCUkmyp
wLnCG1fQKJeCeY3a2Y2lr69bW5qVOnalvv4DsvdqWOrE8ixNdUXSyC+qqzyy
neA1EklOPHskOFdFuLydgXGwx4z3ztoUW8V4ffrbwtk4eNwSCWfuVbMDtkSO
w+Wr27oAM8UVs+4MOocHT/p4Vx+xmr5A1VGhIObjKIhp60JwBClzOn9vdDfq
cts4eNraUK7gUOo2tJGykE6xJSV2h03A4uRUreB4yxVjzt0bAH62DcDMYaMb
oqIeI8EarOhCW/jjTn8R1vV8CEHAm8hkLkHPZAq3VqubvYm728skCD7wzA/B
hDa8CfmbK81OSMzETNGBiBToTzXwubzByukw5IrlribvGEKb5IMJdnWpl4mF
zQe7412x9/CheCHxUEoqoJfdJSa+Sq/y3OTPBzq9krGOLpza4LTJLpJeX3CN
hCr1zwdvTRt/KyrUeaeQ+iJumw6z/bzuQdtxs8PNr3cHAXnec1+mtYUsSjSQ
iOurH4idDwJLdnjyTD2uWcJY49k8D2PTwemikl6NnqPpj1yTTmb0HbeV6ChY
TbKi0ZDgd3XbbVhVbUk/ifx4AU6juUSLpbs1hP3he5+chPU2XuH2DRXE8dRK
ZYCh6wOvQRbSAgIjXDjxq/Y0xIZ9gyQM5059aR5trQegFafDRiji2QCksu6K
epGPxeG82RYAP6v0FZnzTZbrzJa9EhoD+LKwzHP2ygg/jV1VERvgJRcEYuqK
UOkgY78D0gMk5YVjcNNJc4ByBTIshDsP6AXOW/IuJOoCb8ylVl9Z7+2NOnd/
c2eUihw+g6hrEqGh4MWzSS+u/OxA0i1d0W56K11sBiu5xi0wL81WTU0BtwMy
m8XaLtH931Coh6mthjK5xK4D7+8LNFtrXJyNVBabNYvYhiDRXBuLVdZcNTnF
5gBo/c6XCoZVaO2qhiv3xj/c4b5CVcw/J67Q6ViTKICbtgRUsPqlgXxktvbq
7tTzGz3tZutlS6OidjClRfIH61QmOvQKPoXkA2+N0Bfk8vDuCfdZc3rnGshu
Vd5Y3UnwAb+vhfCqhICumncMEoAO+zMh4wJbX3jpxXZ55JwRF2FIrZuIBcj6
q1rYWLAwh9m34tO9qgtBBWQ+RY3OsCvvwhk2dxbYLLl/dnb6aocRXfcam0Z/
x/RSzCQ2pgwbNdu6i+tVwODUZqs7HWNfLlQ9wEeeIHzqRco8UYun2XyjdgTY
TU4XJ9C4T8+4yTKF//VWrJv5kJeDb1NyOtpekttFuYDFFjK8JBAm4BRDbUpq
X0IwQ7BXQ52N2LHDlfXusKCbChlEeOAAeYREMQR5ci9oAekh6KS5ZI2FWWxC
uvvmsoF6v9jwPzwRMopyTCRyinKIt5wcHtpKAol75GDh+odzU6aV8/3p+P30
7IRXPsmVa09BxIR8V5wtlSp+vu+zjRAHLY7BLjWsZCBpycYApOarB4y2C0Tb
hUPbhUPbRb3EBS1xQUvQPbedMXc7TkAbS9hur6uTFlvg7k4A8o+gyDcuaqFH
9F6YwMZXT0ZWxQxrzPsEx9Jmr1zbhk6x+Q9nCsjuNQCbwiHXv+F3DJllfbwB
ZaCXuFLwLfsBzce4Ev0TsIesyJhIehvCiWW6kr6mz5kgF86blyGanW3fjSSM
Et+YywNrs5J9rsIufYrBdYi7rrsLMzR5d7EBxIf45hK955+v6TRQx7kofhvG
2JAD8pp7p37bQ7xZk8Vy3e/7qntokcGLEwLb+0PfxvefOJ9dtd4TmULal1uO
NGAvMVFfKvBmEBZCSAAU2qPn0tGG81lZ+AjZzpDowlh1A41RAR7zhhOHqG94
kNKdBYPvMS58On/2fDweNzJU0M4x2t0K4ML9crJkILhamgaUbG8EddAiyEiR
OSNwNKqLAn0nY44Fx5lz/+AT2uGArGrftdHpgk4zPe9cTnBRNwhOOx7NZbXo
v92XWw9ctplvXmHuAdZ0w9WQ9u3InqzP3/3w/h7liSGUXPCakF/1onov0hCY
eIlGzAiXxnCWqvG6kJrDuQiNsY9TzhEPp2+nG9I9f3HgLlfOQFU4bRr6AIMc
2eDThG8/qOj5YA5+QA2uOeCqSBcGY4lzRHQ52N1ti/WlMzeZXrLyC0rylPXo
xYvdYnf3cd/9bNozecXpyWHnlU8E6VKRyYwFzOD5k3MZvO3jyhgqclfvHJ+r
uv/XYg8MAQX0P9gooBf3LgAA

-->

</rfc>
