<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-alla-agent-identity-document-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Agent Identity Document">The Agent Identity Document: A Hosted, Accountable Public Record for AI Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-alla-agent-identity-document-01"/>
    <author initials="F." surname="Alla" fullname="Femi Alla">
      <organization>knownAs.dev (Authecity Systems LLC)</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>ops@knownas.dev</email>
      </address>
    </author>
    <date year="2026" month="October" day="10"/>
    <keyword>AI agents</keyword>
    <keyword>identity</keyword>
    <keyword>well-known URI</keyword>
    <keyword>DNS</keyword>
    <keyword>accountability</keyword>
    <abstract>
      <?line 54?>

<t>Autonomous software agents increasingly act on the public internet with no
name that a counterparty can check, no published party that answers for them,
and no way to learn that an operator has withdrawn an agent. This document
specifies the Agent Identity Document, a small JSON document served at a
well-known URI on a hostname assigned to one agent, and the practices an
identity provider follows when it hosts such names for operators who do not
run their own domain.</t>
      <t>The document records what the provider knows to be true (the hostname, its
service endpoints and the identity's lifecycle status) separately from what
the operator asserts (a description, a contact, a homepage, a public key), and
publishes the provider's dated, expiring checks on the operator rather than a
single trust level. Lifecycle status is distinct from availability. A
suspended identity publishes a deliberately minimal document. Every identity
is held by an accountable person or organisation; an agent is never itself an
account holder, and agents are never given authority over DNS.</t>
      <t>This document describes a practice in production at one provider. It is
published so that the format can be reviewed, implemented by others and mapped
onto related work, and it requests registration of a well-known URI suffix.</t>
    </abstract>
  </front>
  <middle>
    <?line 77?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Websites solved a version of this problem years ago. A certificate says who a
site is. A published security contact says where to report a problem. A
revoked certificate stops being trusted everywhere at once. Software agents
that call APIs, serve tools and receive webhooks on the open internet have
none of this by default. They borrow their operator's credentials, run from
addresses nobody can trace, and carry no name that another system can look
up.</t>
      <t>Several efforts address parts of the gap. The Agent Name Service
<xref target="I-D.narajala-courtney-ansv2"/> anchors an agent to a domain the operator
controls and a certificate hierarchy. The A2A Agent Card <xref target="A2A"/> describes an
agent's capabilities at <tt>/.well-known/agent-card.json</tt>. The Agent Discovery
Protocol <xref target="I-D.pro-adp-agent-discovery"/> describes discovery metadata.
Web Bot Auth <xref target="I-D.ietf-webbotauth-httpsig-protocol"/> lets an agent sign its
requests with a key a verifier can fetch.</t>
      <t>Each of these assumes the operator already has something: a domain, a
certificate, a key directory. Most people who build agents have none of
them, and have no wish to run DNS or PKI. This document describes the
missing layer for them: an identity <strong>hosted</strong> by a provider, created in one
request, with the name, TLS, service endpoints and a public record supplied
by the provider, and with a person or organisation accountable for it from
the first minute.</t>
      <t>It also records four design positions that distinguish this format from
related work:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Facts and assertions are kept apart.</strong> The provider publishes what it
made true (name, endpoints, status) and labels what the operator merely
claims.</t>
        </li>
        <li>
          <t><strong>Checks on the operator are itemised, dated and expiring.</strong> There is no
level and no badge; each check says what was checked, how, by whom, when,
and until when.</t>
        </li>
        <li>
          <t><strong>Lifecycle is not liveness.</strong> <tt>status</tt> records the operator's and
provider's decisions about the identity. It never reports whether the
agent is online.</t>
        </li>
        <li>
          <t><strong>A person stays accountable.</strong> An identity belongs to an account held by
a natural person or legal entity. An agent acts under an account; it is
never one. Agents never hold DNS or registrar authority.</t>
        </li>
      </ol>
      <section anchor="conventions">
        <name>Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>The terms "identity provider" and "provider" mean the party that assigns
hostnames under a base domain it controls and serves Agent Identity
Documents for them. "Operator" means the account holder responsible for an
agent. "Relying party" means any system that reads an Agent Identity
Document to decide how to treat an agent.</t>
      </section>
    </section>
    <section anchor="model">
      <name>Model</name>
      <section anchor="hostnames">
        <name>Hostnames</name>
        <t>The provider controls a base domain. Each identity receives one <strong>identity
hostname</strong>, a single DNS label under the base domain:</t>
        <artwork><![CDATA[
<slug>.<base-domain>              e.g. alice.knownas.dev
]]></artwork>
        <t>Each service the identity offers receives a <strong>service hostname</strong> with the
service label <em>leading</em> the base domain, so that every hostname is exactly one
label below a name the provider can cover with a wildcard certificate:</t>
        <artwork><![CDATA[
<slug>.api.<base-domain>          an HTTP API
<slug>.mcp.<base-domain>          a Model Context Protocol endpoint
<slug>.hooks.<base-domain>        inbound webhooks
]]></artwork>
        <t>The nested form <tt>api.&lt;slug&gt;.&lt;base-domain&gt;</tt> is NOT used: a wildcard
certificate covers exactly one label, and the nested form would require a
certificate per identity.</t>
        <t>A <tt>&lt;slug&gt;</tt> <bcp14>MUST</bcp14> be a valid DNS label <xref target="RFC1035"/>: lowercase ASCII letters,
digits and hyphens, not beginning or ending with a hyphen. This specification
RECOMMENDS a minimum of 3 and a maximum of 63 characters. The provider <bcp14>MUST</bcp14>
refuse slugs that collide with its own infrastructure names (such as <tt>api</tt>,
<tt>mcp</tt>, <tt>hooks</tt>, <tt>www</tt>) and <bcp14>SHOULD</bcp14> refuse names that impersonate protected
brands, including when a brand appears as a word inside a longer slug
("combosquatting"). Refusal lists are the provider's; this document requires
only that they exist and are enforced before any DNS record is written.</t>
      </section>
      <section anchor="accounts-and-accountability">
        <name>Accounts and accountability</name>
        <t>An identity is created and held by an <strong>account</strong>. An account <bcp14>MUST</bcp14> be held by
a natural person or a legal entity, and the provider <bcp14>MUST</bcp14> verify at minimum
that the account holder controls the e-mail address used to create it. The
provider <bcp14>MAY</bcp14> require a minimum age.</t>
        <t>An agent <bcp14>MAY</bcp14> manage identities through a credential scoped to an account, and
<bcp14>MAY</bcp14> be the thing that creates an identity. An agent <bcp14>MUST NOT</bcp14> be able to create
an account. This keeps a person or organisation answerable for every
identity, however it was created.</t>
      </section>
      <section anchor="authority-over-dns">
        <name>Authority over DNS</name>
        <t>Agents <bcp14>MUST NOT</bcp14> receive credentials that can modify DNS. The provider's own
provisioning component <bcp14>SHOULD</bcp14> be limited, by the DNS service's access control
rather than by application code alone, to writing address records under the
base domain and nothing else.</t>
      </section>
    </section>
    <section anchor="the-agent-identity-document">
      <name>The Agent Identity Document</name>
      <section anchor="location">
        <name>Location</name>
        <t>The Agent Identity Document is a JSON document <xref target="RFC8259"/> served over HTTPS
<xref target="RFC9110"/> at the well-known URI <xref target="RFC8615"/></t>
        <artwork><![CDATA[
https://<identity-hostname>/.well-known/agent-identity.json
]]></artwork>
        <t>Implementations that predate this document serve the same content at
<tt>/.well-known/agent.json</tt>; see <xref target="compat"/>.</t>
        <t>The document <bcp14>MUST</bcp14> be served with <tt>Content-Type: application/json</tt>,
<tt>X-Content-Type-Options: nosniff</tt> and <tt>Access-Control-Allow-Origin: *</tt>, so
that a browser-based relying party can read it. The same headers <bcp14>MUST</bcp14> be sent
on a 404 response for an unallocated or deleted identity, so that a relying
party can distinguish "no such identity" from a network failure.</t>
        <t>A relying party <bcp14>MUST</bcp14> treat a 404 at this URI as "no identity is published
here", and <bcp14>MUST NOT</bcp14> treat it as evidence that the hostname was never
allocated: a deleted identity's document is removed before its DNS records
are, and a tombstoned name may still resolve to the provider for a time
(<xref target="provider-practices"/>).</t>
      </section>
      <section anchor="members">
        <name>Members</name>
        <t>The top level is a JSON object. Members fall into two classes, and the class
decides how a relying party may use the value.</t>
        <section anchor="provider-generated-members-facts">
          <name>Provider-generated members (facts)</name>
          <t>These are projected by the provider from its own records at render time.
They are never writable by the operator; a provider <bcp14>MUST</bcp14> ignore any attempt
to set them.</t>
          <dl>
            <dt><tt>version</tt>:</dt>
            <dd>
              <t>String. The schema version. This document defines <tt>"1"</tt>. <bcp14>REQUIRED</bcp14>.</t>
            </dd>
            <dt><tt>fqdn</tt>:</dt>
            <dd>
              <t>String. The identity hostname. <bcp14>REQUIRED</bcp14>.</t>
            </dd>
            <dt><tt>status</tt>:</dt>
            <dd>
              <t>String. The lifecycle status (<xref target="status"/>). <bcp14>REQUIRED</bcp14>.</t>
            </dd>
            <dt><tt>endpoints</tt>:</dt>
            <dd>
              <t>Object mapping an endpoint name to an absolute <tt>https</tt> URL. <bcp14>REQUIRED</bcp14> when
<tt>status</tt> is not <tt>suspended</tt>. The provider <bcp14>MUST</bcp14> include <tt>web</tt> (the identity
hostname) and <tt>manifest</tt> (this document's URL). It <bcp14>MUST</bcp14> include one member
per service the identity offers <strong>and that the provider routes to a live
origin</strong>, named <tt>api</tt>, <tt>mcp</tt> or <tt>webhooks</tt> (note: the member is
<tt>webhooks</tt>; its DNS label is <tt>hooks</tt>). A service hostname that is reserved
but not yet routed <bcp14>MUST NOT</bcp14> be listed, so that a relying party can tell
"this name is reserved" from "this service answers". Every value <bcp14>MUST</bcp14>
begin with <tt>https://</tt>.</t>
            </dd>
            <dt><tt>owner</tt>:</dt>
            <dd>
              <t>Object. The provider's published checks on the account holder and the
account's standing (<xref target="owner"/>). <bcp14>OPTIONAL</bcp14>; absent when the identity is
suspended, or when the account is not in good standing.</t>
            </dd>
          </dl>
        </section>
        <section anchor="operator-asserted-members-claims">
          <name>Operator-asserted members (claims)</name>
          <t>These are supplied by the operator. The provider validates their <em>form</em> and
<bcp14>MUST NOT</bcp14> present them as verified unless a check described in <xref target="owner"/>
covers them.</t>
          <dl>
            <dt><tt>name</tt>:</dt>
            <dd>
              <t>String, at most 120 characters. A display name; defaults to the slug.
<bcp14>REQUIRED</bcp14> when not suspended.</t>
            </dd>
            <dt><tt>description</tt>:</dt>
            <dd>
              <t>String, at most 500 characters. <bcp14>OPTIONAL</bcp14>.</t>
            </dd>
            <dt><tt>contact</tt>:</dt>
            <dd>
              <t>Object with an <tt>email</tt> member, at most 254 characters. <bcp14>OPTIONAL</bcp14>.</t>
            </dd>
            <dt><tt>homepage</tt>:</dt>
            <dd>
              <t>String, an absolute <tt>https</tt> URL of at most 2048 characters. <bcp14>OPTIONAL</bcp14>.</t>
            </dd>
            <dt><tt>public_key</tt>:</dt>
            <dd>
              <t>String, at most 4096 characters. An opaque key the operator publishes.
This document assigns it no verification semantics; see <xref target="signing"/>.
<bcp14>OPTIONAL</bcp14>.</t>
            </dd>
            <dt><tt>metadata</tt>:</dt>
            <dd>
              <t>Object of at most 20 members. Keys <bcp14>MUST</bcp14> match
<tt>^[a-z0-9][a-z0-9_.-]*$</tt> and be at most 40 characters; values <bcp14>MUST</bcp14> be
strings of at most 200 characters. <bcp14>OPTIONAL</bcp14>.</t>
            </dd>
          </dl>
          <t>All string values in the document <bcp14>MUST</bcp14> be free of C0 control characters
other than those JSON itself requires to be escaped, and the provider <bcp14>MUST</bcp14>
reject input that contains them. All URLs <bcp14>MUST</bcp14> use the <tt>https</tt> scheme; a
provider <bcp14>MUST</bcp14> reject <tt>http</tt>, <tt>javascript</tt>, <tt>data</tt> and every other scheme.
The provider <bcp14>MUST NOT</bcp14> dereference any URL an operator supplies.</t>
        </section>
      </section>
      <section anchor="status">
        <name>Lifecycle status</name>
        <t><tt>status</tt> takes one of the values below. It records decisions, not
reachability.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>pending</tt></td>
              <td align="left">Created; provisioning has not started</td>
            </tr>
            <tr>
              <td align="left">
                <tt>provisioning</tt></td>
              <td align="left">DNS records are being written</td>
            </tr>
            <tr>
              <td align="left">
                <tt>active</tt></td>
              <td align="left">Provisioned, and in good standing</td>
            </tr>
            <tr>
              <td align="left">
                <tt>suspended</tt></td>
              <td align="left">Withdrawn from public view by the operator or the provider; restorable</td>
            </tr>
            <tr>
              <td align="left">
                <tt>failed</tt></td>
              <td align="left">Provisioning did not complete</td>
            </tr>
            <tr>
              <td align="left">
                <tt>archived</tt></td>
              <td align="left">Retired by the operator; the name is kept</td>
            </tr>
            <tr>
              <td align="left">
                <tt>deleting</tt></td>
              <td align="left">Removal in progress; the document disappears shortly</td>
            </tr>
          </tbody>
        </table>
        <t>A relying party <bcp14>MUST NOT</bcp14> infer from <tt>active</tt> that the agent is reachable or
running, and a provider <bcp14>MUST NOT</bcp14> change <tt>status</tt> because an agent's own
endpoints went unreachable. An agent that sleeps at night keeps its name.
Availability, if a relying party needs it, is measured by the relying party.</t>
      </section>
      <section anchor="the-suspended-document">
        <name>The suspended document</name>
        <t>When <tt>status</tt> is <tt>suspended</tt>, the provider <bcp14>MUST</bcp14> serve exactly:</t>
        <artwork><![CDATA[
{ "version": "1", "status": "suspended", "fqdn": "alice.knownas.dev" }
]]></artwork>
        <t>No endpoints, no description, no contact, no owner block. The namespace stays
allocated and DNS stays in place, so the name cannot be taken by someone
else, but nothing the operator wrote continues to be advertised. Suspension
is therefore visible to every relying party within the document's cache
lifetime, which the provider <bcp14>SHOULD</bcp14> keep short (the reference implementation
uses 60 seconds).</t>
        <t>Suspension of an <strong>account</strong> <bcp14>MUST</bcp14> stop every credential under it and <bcp14>MUST</bcp14>
suspend every identity it holds.</t>
      </section>
      <section anchor="owner">
        <name>The owner block</name>
        <t>The <tt>owner</tt> member publishes the provider's checks on the account holder.
There is deliberately no level, score or badge. Each check is its own record:</t>
        <artwork><![CDATA[
"owner": {
  "verifications": [
    { "type": "email", "verified_at": "2026-09-21T14:02:11+00:00" },
    {
      "type": "domain",
      "value": "acme.example",
      "method": "dns-txt",
      "verifier": "knownas.dev",
      "verified_at": "2026-10-02T09:00:00+00:00",
      "expires_at": "2026-11-01T09:00:00+00:00"
    }
  ],
  "standing": { "account_since": "2026-09-21", "status": "active" }
}
]]></artwork>
        <t>Each member of <tt>verifications</tt> is an object with:</t>
        <dl>
          <dt><tt>type</tt>:</dt>
          <dd>
            <t>String. This document defines <tt>email</tt> (the account holder controlled the
sign-up mailbox) and <tt>domain</tt> (the account holder controls a DNS name).
Further types, such as a check on a legal entity or a natural person, <bcp14>MAY</bcp14>
be defined; a relying party <bcp14>MUST</bcp14> ignore types it does not understand.</t>
          </dd>
          <dt><tt>verified_at</tt>:</dt>
          <dd>
            <t>String, an <xref target="RFC3339"/> timestamp. <bcp14>REQUIRED</bcp14>.</t>
          </dd>
          <dt><tt>value</tt>:</dt>
          <dd>
            <t>String. What was checked, where that is public (a domain name). For
<tt>email</tt> the address itself <bcp14>MUST NOT</bcp14> be published. <bcp14>OPTIONAL</bcp14>.</t>
          </dd>
          <dt><tt>method</tt>, <tt>verifier</tt>:</dt>
          <dd>
            <t>Strings naming how and by whom the check was made. <bcp14>OPTIONAL</bcp14>.</t>
          </dd>
          <dt><tt>expires_at</tt>:</dt>
          <dd>
            <t>String, an <xref target="RFC3339"/> timestamp after which the check <bcp14>MUST</bcp14> be treated as
stale. <bcp14>OPTIONAL</bcp14>; a check without it does not expire.</t>
          </dd>
        </dl>
        <t><tt>standing</tt> carries <tt>account_since</tt> (an <xref target="RFC3339"/> full-date) and <tt>status</tt>,
which is <tt>active</tt> whenever the block is present; a provider <bcp14>MUST</bcp14> omit the
whole <tt>owner</tt> block rather than publish any other standing.</t>
        <t>Relying parties <bcp14>MUST</bcp14> interpret checks by type and date. The absence of a
check is the absence of information and <bcp14>MUST NOT</bcp14> be presented as a
negative finding; many legitimate operators cannot or will not complete
deeper checks. Human-facing presentations <bcp14>SHOULD</bcp14> say what was checked
("owner controls acme.example") and <bcp14>SHOULD NOT</bcp14> say "verified" or "trusted"
without an object.</t>
      </section>
    </section>
    <section anchor="provider-practices">
      <name>Provider practices</name>
      <t>A document is only as good as the namespace behind it. A provider that
serves Agent Identity Documents:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Writes explicit DNS records, never a wildcard.</strong> An unallocated name
<bcp14>MUST</bcp14> return NXDOMAIN. A wildcard would make <tt>paypal.&lt;base-domain&gt;</tt>
resolve.</t>
        </li>
        <li>
          <t><strong>Restricts certificate issuance</strong> for the base domain with CAA
<xref target="RFC8659"/> to the authority it uses, so that no one else can obtain a
certificate for a hosted name.</t>
        </li>
        <li>
          <t><strong>Removes the document before the DNS records</strong> when an identity is
deleted, and changes only the document on suspension. Everything the
public can read goes through the document; only reachability goes through
DNS, and DNS removal may be slow.</t>
        </li>
        <li>
          <t><strong>Tombstones released names</strong> for a cooling period
(the reference implementation uses 30 days) during which no new account
may take the name, while the previous holder may reclaim it at once.
A leftover record during that period points only at the provider, which
answers 404.</t>
        </li>
        <li>
          <t><strong>Keeps an append-only audit trail</strong> of every change to every identity,
recording whether a person or an agent made it. The application that
serves the API <bcp14>MUST NOT</bcp14> be able to alter or delete entries.</t>
        </li>
        <li>
          <t><strong>Enforces quotas</strong> on identities per account and per day, and on
failure <bcp14>SHOULD</bcp14> suspend rather than bill.</t>
        </li>
      </ol>
    </section>
    <section anchor="relationship-to-other-work">
      <name>Relationship to other work</name>
      <section anchor="a2a-agent-cards">
        <name>A2A Agent Cards</name>
        <t>An A2A card at <tt>/.well-known/agent-card.json</tt> <xref target="A2A"/> declares that a URL
speaks A2A over a stated binding. A provider <bcp14>MUST NOT</bcp14> generate a card from
the Agent Identity Document alone, because it does not know what the
operator's server speaks. A provider <bcp14>MAY</bcp14> serve a card the operator declares,
beside this document, and when it does the <tt>endpoints</tt> object <bcp14>SHOULD</bcp14> carry
an <tt>agent_card</tt> member pointing to it. A suspended identity <bcp14>MUST</bcp14> serve no
card.</t>
      </section>
      <section anchor="signing">
        <name>Signed requests</name>
        <t>Where an agent signs its requests with HTTP Message Signatures <xref target="RFC9421"/> as
profiled by Web Bot Auth <xref target="I-D.ietf-webbotauth-httpsig-protocol"/>, the natural
<tt>Signature-Agent</tt> value is the identity hostname as an <tt>https</tt> origin, and
the key directory is served by the provider at
<tt>/.well-known/http-message-signatures-directory</tt> on that origin. A verifier
that resolves the signature then already knows where the Agent Identity
Document is. The <tt>public_key</tt> member of this document is unrelated to that
directory and carries no verification semantics of its own.</t>
      </section>
      <section anchor="domain-anchored-identity">
        <name>Domain-anchored identity</name>
        <t>ANS <xref target="I-D.narajala-courtney-ansv2"/> and similar work anchor an agent to a
domain the operator controls. This document is complementary: a hosted
identity is for operators who have no domain, and an operator who later
proves control of a domain publishes that as a <tt>domain</tt> check in the owner
block. Nothing here prevents a provider from also issuing ANS records.</t>
      </section>
      <section anchor="compat">
        <name>Compatibility</name>
        <t>The reference implementation has served this document at
<tt>/.well-known/agent.json</tt> since 2026. That path was also used by A2A before
its version 0.3.0 and has been proposed for other formats. Providers
<bcp14>SHOULD</bcp14> serve this document at <tt>/.well-known/agent-identity.json</tt> and <bcp14>MAY</bcp14>
continue to serve it at <tt>/.well-known/agent.json</tt> during a transition; a
relying party <bcp14>SHOULD</bcp14> try the former first.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t><strong>Operator-asserted members are claims.</strong> A relying party <bcp14>MUST NOT</bcp14> treat
<tt>contact</tt>, <tt>homepage</tt>, <tt>description</tt>, <tt>public_key</tt> or <tt>metadata</tt> as verified
because they are served over HTTPS from the provider's domain. Only the
checks in <tt>owner</tt> are the provider's statements, and each is bounded by its
dates.</t>
      <t><strong>The provider is a trust anchor.</strong> A hosted identity is only as trustworthy
as the provider's own controls: who may create accounts, how names are
policed, how suspension is applied, and whether the audit trail can be
altered. <xref target="provider-practices"/> lists the minimum. Relying parties <bcp14>SHOULD</bcp14>
form a view of a provider as they do of a certificate authority.</t>
      <t><strong>Caching bounds suspension.</strong> A relying party that caches the document for
longer than the provider's <tt>Cache-Control</tt> may keep trusting a suspended
identity. Providers <bcp14>SHOULD</bcp14> keep the lifetime short; relying parties making
consequential decisions <bcp14>SHOULD</bcp14> re-fetch at decision time.</t>
      <t><strong>The document is a surface for injection.</strong> It is operator-controlled
content served from a provider hostname. Length caps, control-character
rejection and the <tt>https</tt>-only rule exist so that a document cannot carry a
<tt>javascript:</tt> link or terminal escape into a relying party's logs or UI.
Relying parties <bcp14>MUST</bcp14> still treat every string as untrusted data.</t>
      <t><strong>Identity is not intent.</strong> A deliberately malicious operator can decline to
identify an agent at all. This format changes the default for responsible
operators and makes anonymous agent traffic stand out; it does not stop an
attacker.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The document publishes: a hostname, endpoints, a status, the operator's
chosen descriptive text, and the provider's checks. For an <tt>email</tt> check the
address is not published, only that a check occurred and when. For a
<tt>domain</tt> check the domain name is published, since control of a public name
is itself public. <tt>account_since</tt> reveals when the account was created and
nothing else about the holder. A provider <bcp14>MUST</bcp14> let an account holder export
and erase their data, and <bcp14>MUST</bcp14> remove an identity's document promptly on
deletion; what the append-only audit trail retains is the provider's
documented retention decision.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following well-known URI suffix in the
"Well-Known URIs" registry <xref target="RFC8615"/>:</t>
      <dl>
        <dt>URI suffix:</dt>
        <dd>
          <t>agent-identity.json</t>
        </dd>
        <dt>Change controller:</dt>
        <dd>
          <t>Authecity Systems LLC, until a standards body adopts the format</t>
        </dd>
        <dt>Specification document:</dt>
        <dd>
          <t>This document</t>
        </dd>
        <dt>Status:</dt>
        <dd>
          <t>provisional</t>
        </dd>
        <dt>Related information:</dt>
        <dd>
          <t>The JSON Schema and worked examples are maintained at the repository
referenced in <xref target="KNOWNAS"/>.</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC8659">
          <front>
            <title>DNS Certification Authority Authorization (CAA) Resource Record</title>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <date month="November" year="2019"/>
            <abstract>
              <t>The Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify one or more Certification Authorities (CAs) authorized to issue certificates for that domain name. CAA Resource Records allow a public CA to implement additional controls to reduce the risk of unintended certificate mis-issue. This document defines the syntax of the CAA record and rules for processing CAA records by CAs.</t>
              <t>This document obsoletes RFC 6844.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8659"/>
          <seriesInfo name="DOI" value="10.17487/RFC8659"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="I-D.ietf-webbotauth-httpsig-protocol">
          <front>
            <title>HTTP Message Signatures for automated traffic</title>
            <author fullname="Thibault Meunier" initials="T." surname="Meunier">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Sandor Major" initials="S." surname="Major">
              <organization>Google</organization>
            </author>
            <date day="1" month="September" year="2026"/>
            <abstract>
              <t>   This document describes a protocol for identifying automated traffic
   using [HTTP-MESSAGE-SIGNATURES].  The goal is to allow automated HTTP
   clients to cryptographically sign outbound requests, allowing HTTP
   servers to verify their identity with confidence.

   It defines the Signature-Agent header field for in-band key
   discovery, a key directory format based on JWKS, and a well-known URI
   at which that directory is served.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webbotauth-httpsig-protocol-00"/>
        </reference>
        <reference anchor="I-D.narajala-courtney-ansv2">
          <front>
            <title>Agent Name Service v2 (ANS): A Domain-Anchored Trust Layer for Autonomous AI Agent Identity</title>
            <author fullname="Scott Courtney" initials="S." surname="Courtney">
              <organization>GoDaddy</organization>
            </author>
            <author fullname="Vineeth Sai Narajala" initials="V. S." surname="Narajala">
              <organization>OWASP</organization>
            </author>
            <author fullname="Ken Huang" initials="K." surname="Huang">
              <organization>DistributedApps.ai</organization>
            </author>
            <author fullname="Idan Habler" initials="I." surname="Habler">
              <organization>OWASP</organization>
            </author>
            <author fullname="Akram Sheriff" initials="A." surname="Sheriff">
              <organization>Cisco Systems</organization>
            </author>
            <date day="13" month="April" year="2026"/>
            <abstract>
              <t>   Autonomous AI agents execute transactions across organizational
   boundaries.  No single agent platform provides the trust
   infrastructure they need.  This document defines the Agent Name
   Service (ANS) v2 protocol, which anchors every agent identity to a
   DNS domain name.  A Registration Authority (RA) verifies domain
   ownership via ACME, issues dual certificates (a Server Certificate
   from a public CA and an Identity Certificate from a private CA
   binding a version-specific ANSName), and seals every lifecycle event
   into an append-only Transparency Log aligned with IETF SCITT.  Three
   verification tiers -- Bronze (PKI), Silver (PKI + DANE), and Gold
   (PKI + DANE + Transparency Log) -- let clients choose assurance
   levels appropriate to transaction risk.  The architecture decouples
   identity from discovery: the RA publishes sealed events; independent
   Discovery Services build competitive indexes.  A three-layer trust
   framework separates foundational identity (Layer 1, this protocol),
   operational maturity (Layer 2, third-party attestors), and behavioral
   reputation (Layer 3, real-time scoring).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-narajala-courtney-ansv2-01"/>
        </reference>
        <reference anchor="I-D.pro-adp-agent-discovery">
          <front>
            <title>Agent Discovery Protocol (ADP) v1.1 -- Well-Known Metadata and Interaction Layer</title>
            <author fullname="Bin Lian" initials="B." surname="Lian">
              <organization>aipair.ai</organization>
            </author>
            <date day="23" month="June" year="2026"/>
            <abstract>
              <t>   This document defines the Agent Discovery Protocol (ADP) v1.1, a

   layered protocol for discovering, verifying, and interacting with AI

   Agents on the Internet.  ADP delegates DNS discovery to DNS-AID (SVCB

   records) and defines a Well-Known JSON metadata format, an

   Ed25519-based identity model, and the Agent Gateway Protocol (AGP)

   for real-time WebSocket messaging.  The protocol is designed to be

   decentralized, standards-based, and incremental — clients escalate

   from DNS to HTTP to WebSocket only as needed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-pro-adp-agent-discovery-02"/>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/latest/specification/">
          <front>
            <title>Agent2Agent (A2A) Protocol Specification</title>
            <author>
              <organization>The Linux Foundation</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="KNOWNAS" target="https://knownas.dev/">
          <front>
            <title>knownAs.dev: internet identity for AI agents (reference implementation)</title>
            <author>
              <organization>Authecity Systems LLC</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 521?>

<section anchor="example-documents">
      <name>Example documents</name>
      <t>An active identity with two services and a verified domain:</t>
      <artwork><![CDATA[
{
 "version": "1",
 "name": "Ada",
 "status": "active",
 "fqdn": "ada.knownas.dev",
 "endpoints": {
  "web": "https://ada.knownas.dev",
  "manifest": "https://ada.knownas.dev/.well-known/agent-identity.json",
  "api": "https://ada.api.knownas.dev",
  "mcp": "https://ada.mcp.knownas.dev"
 },
 "description": "Answers questions about the Acme product catalogue.",
 "owner": {
  "verifications": [
   { "type": "email", "verified_at": "2026-09-21T14:02:11+00:00" },
   { "type": "domain", "value": "acme.example", "method": "dns-txt",
     "verifier": "knownas.dev",
     "verified_at": "2026-10-02T09:00:00+00:00",
     "expires_at": "2026-11-01T09:00:00+00:00" }
  ],
  "standing": { "account_since": "2026-09-21", "status": "active" }
 },
 "contact": { "email": "agents@acme.example" },
 "homepage": "https://acme.example/ada",
 "metadata": { "framework": "langgraph" }
}
]]></artwork>
      <t>The same identity, suspended:</t>
      <artwork><![CDATA[
{ "version": "1", "status": "suspended", "fqdn": "ada.knownas.dev" }
]]></artwork>
      <t>The hostnames are the reference implementation's real base domain rather
than the reserved example domains of RFC 2606, because the document
describes a practice in production there.</t>
    </section>
    <section anchor="changes-since-00">
      <name>Changes since -00</name>
      <ul spacing="normal">
        <li>
          <t><tt>endpoints</tt> lists a service only while the provider routes it to a
live origin; a reserved but unrouted service hostname is not listed
(previously "one member per service hostname the identity owns").</t>
        </li>
      </ul>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The design positions here were worked out as architecture decision records
for the reference implementation <xref target="KNOWNAS"/> between September and October
2026. The author thanks the people who tested early versions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61c/XIbR3L/f55iAqVKEgNAICUrJ9LlC46Syoz1FVGOz3Xl
GANgQKy12IV3F6QQWvcseZY8WfrX3TM7C4Dy5epcZZsAZmd6evrj1x+zg8HA
NFmT+1Pb+7D0dnzli8ZezOm/WbO1z8vZZkV/n9qx/basGz/v2/FsVm6Kxk1z
b99tpnk2s+/9rKzmdlFWdnwhc9Q946bTyl+f3jWnmZezwq1o5XnlFs3A5bkb
OIwdZDp2MNexg9GxmbnGX5XV9tRmxaI09Wa6yuo6K4tmu6ZJLl58eGmydXVq
m2pTNyej0bPRifnotzdE2qmxdgDaeP6aP4VF+MONz/PBx6K8Kez37y/4q+dv
Lvn/Luw3yzHa1I0r5j+7vCxo1a2vzTo7tX9pylnf1mXVVH5R01/bFf74yRi3
aZZlxQTQv5aIr0/ty6Ed03b5C+HBS7/K2u/K6urUMjnjejj31/bBmKbxM/Dv
ckvnsKrtq1fnD3kwkwe+fF9kdEL2siFO1fyTX7ksP7Xluv43ns3xbMYUZbVy
TXbtQdf7l+cnx8fP9M8/HP/rk/DnyVfx26fHX+mfjx8/Dt8ejx5/FQfEsc+O
j0enxuCUuqs8e3JyjD8vBs+HmW8Wgxs/nZYNODRYNs26zq4G66okVpZ5GFe4
yv3iSDJol1VT+O3AFfX1SfiZhg/cfK1yM8/qWXntiRf08/hkfMpMUPlmMTwR
YXxAPz6073Qte7km1i4ykjASJ36mPTX8M5ADgYK8yorNJ/uSWD5vR9OftMDJ
6OQrWdBVV550hvd0+uiRO3FxX0Oa6VGOA2oe1emyj+jR7968/eHN+LJDdi8R
A4h+46vCN1F6g9KJYNsHJHW+8sXM22y1zj2Uh6d/2Lt7Xwdlq7uxpwc3lsjU
I2MGA1KWad1UbtYYQ5OWRbkqNzWpxaK5cZUPRGbFrPKuzoqrfEvq1diysESB
XYs1iXu8yZqlLUoDDaEBrrFOhN1Xa1cRuTNX2BmR/rFPw+TxekkaIL/KE0V9
46ua2URrrPqGtBejbxyNKG3uXVWEoaQovnINDV26mpcn00QmgX5h0ockAllt
g1UyeoC+ZvLvsHN9orpekXWz/3759k182Na+uiZasbDpmh/ww9kl2VveuSMr
d1XQUCKXjI6QQrPSPphr4Hc2IyJcYaJYkLxd04eKNp7n5Q3tZukLmzU8LR3J
ZrZkyyOcCfvGsJJIJAY1ptrwsWT0M9E1L8mWFENjoAVxExVbfjxG+xBqdF3s
pgbJUw+L7O0D/Bw21SdSagMWEOXWF/N1mUE0wqbCPu7XNs8Wfradkbchy9ts
6ofEOTpgkkySnkVVrnhxg6fi8RHLfAV1cHbu61mVraEDfZYfUogZH8qyXNFE
Vx5/q+iRu3jInDVBmOrOrogcqAR5Qf9pnVUkwSJ/dRDhSAH9d+khcpAdw7Lu
xTORyF37fEiWpLsvC8nK6oa0o5F9uWuy3up3yGGQyyOBK+YkCe0xRzKx0zyb
emXMKisyErp4UkP7Aoax9Xq02tLnczvdsngnTp22UNN2IBbVlSuymg3IWdQC
EFrQHiqcoc8XkDt9nniaE5tEOFXbofgy/IpcQaEmCMTDVMPNslAleqVnNuVd
BfEms4BjmG9moAZqA10IBzO0F6DLtDagLkWrcSriiNhckDQSKMn8DQ4xmkjP
fChxZCKDK7de+7khYSlpPOz13BKQ+Cg7yyD4v248NKnyVxlsHlNVEjN2sASp
2mKRfRqKfVxl83nujblnL8hnh90Y84Of1uS8YStztgqWeFPrlA2YQzulw1kR
4nCg8aokibAzknLxICRFbivqC3Gjz1mNEQlD/GzDbFcVCA+Qu7C8yzWhF2Y4
LwSBI06VH+nRzjINoQliI2Sf5Zl+x+luZSY+l5kf2suu0Td8GDOYwfG7CyAk
mD9auMyF42RJPMkHcW+6LMuORhWtS1i6a0/ohU4+8IXObe4XbpOzdfZbOy2r
qrwJlkv1kRSXfA7Lvstpddg26Jhx83nlyVqQSJfTci4+BS7My1HPXEVaQ/4i
cUIFCwphPDhLfiAnis1mTYd8CV6Q3vkFCR2kX+Znl1QL0d5euTUTqy7jDaa+
FFtobm+/AHs+f6bVZ8uSpVS1kc7OqXXumCCDc64Ce13nEJcZjalmy62ScTJW
Us4d4fjbW/qClkrUkDQcv4ONbi0mCW6PuDF5NGwF/pHgMGLafPgLGZFJus3n
AZ2ZCLxks3eAuA4F8Vu78o0jI+yGUBr7p7Jh/KJT/R6spDlz3yTcg2tlXxQV
mlGHgysQLYSDr/iUF76ZLemMXzhynnKUNbvnzUr9ROuAckI4JE3AETX5GRLV
gpBWOCiSLZOcR1/Xm2ekBfQ4HctrcpRkiUsyUKzU002WR5MKLbCqBYZRDZ+x
fk07qJes0iTkZF5hyd99d7EDXhLe0gyGYylS6dxtGTQIWjoFo6KzOTpacgx4
dMReIxrfPnSLTSSJIFEVeNkXXoIx4vM/vLoUxd93+tEFC6Igq7le5xmZ4Om2
44Flp3pGhz1Vx5lhJ5n4U4YIi6wixpJ33DSejpK8BtmDMuKYBakbOAOpWJdk
R2m+WtRefPPVhpkLTqpX4alTH0Gxz/GQmPWSjKxujuEITwWL+NGvaVlYhCGx
8kOKmlp/zogqa4C7V24eMJTwMbKuHzERliGs4PMEi0VpXJFlzhHo2lnuslU9
NCcg8PwwdAGJ5EBIIuAjGe/w9AHyKNEYBauJaRnSWEXWUze/8mfWQ0sYHQVP
Q2TdkD7wd5h6Wd70IUkk3yTBAKh9TIZp6PiynL8amsegtUVLvCihKIAJsqyg
ZiJcmMRjTPdzn88AE6cojoB7LQcyLTdNB3MylhDEIk6RvaTCOc8UBhhUFnlW
kBw9AYnjII9EDe03kULQOE4UiY6pLK4YHbfYK8AxXoAUptnAj7Qinvsr+BUl
cRwMGAsZRaNEXTvXGWQ+4xyAbIS0cqiJGf0GSC1Yh4BhqhackW7cu2fPy+Ia
KxKjBPjDSt0wi3uvv7/80OvL/+2bt/z3+xf/8f3F+xfP8fflt+NXr+IfRkdc
fvv2+1fP27/aJ8/fvn794s1zeZi+tZ2vTO/1+MeeaH/v7bsPF2/fjF/1LPu8
1Ko5QTNTL5hhXXkW39oEc8dG6k/n7/73f46fkNP4J81+kGOQD8h/0AeWRl6N
znirH+n4twbIkDhFswDMkDvMGoYUsPRLgD6oBrHv6C/gzE+n9uvpbH385Bv9
AhvufBl41vmSebb/zd7DwsQDXx1YJnKz8/0Op7v0jn/sfA58T778+o/QADs4
/sMfvzEiI8T2FcnHXijak8NrP66808A/idc52K1NCBSjbJNZqX3AOSTdHXTD
YLLeicBNiMDb6H9IsqNmQZYXU9GNXkgd6jVJfBb8R0A/9PR7sqNwk0xxmMIV
2wAGeQ9w/Qwx7qAHAgoDNEc8fINPDfxnm2ZAfPC6pHiOlfDbwAphb/QVLQdS
3lCgB8Mbua+4uuZw6egoxn+BwUdHnKCQABX2gL2Ich3MSeYmz/bXv/7VfF3n
m6tvhl/jl4H88o3t/OOHV0NSD3LzwzTviIcFPQUQkNpdAjMLxF+RYkf0hoEt
uRFUxPSBUHyUE9tpG0e7VPdjLMhxSptYIbvhP5H9JP0GapFpYJtv2ACvfDej
wdkmjlkVftwQJAPUTaF1l0VkHO5iE0327YcP7xANhdGr2frO0SIPMMiN/9S0
qcsABcIcHDsdniUrpkhbxghLjgMiRX4UVhKAxk6Y5gMnPAG/YC02hAtOk+2n
SFYY1OGrHE+br0oXuyk3+Zxj6QyRYmemNRIMwSUbM7YToWpi2YyShSd4TjI2
T6T29laz0p8/n1JQduOrGeRgfHl+cQHgT6ap7pt5dpUpMltu12TZ6z5Diim5
waKAepPSE2Pxlx61jFMI3cnbmmg8L2kcp102K0QHjxXXrtyn8NXTxwR+HBIa
RMewi/ywKYKRC+KuxT4VddIZ5zAUTAeohofJikXlyGFvZgQSvObxHnBOj7wQ
TnDSNxMSp0nfTvis8cfNzc1EgKK6CF1NHufVspXgDeY/iRhFI4DgFT1EPMqK
Wb4RriCZSGan4i2yQ6yxtGNwgBoHaHYWMAeRMu3HPOjNytW0rH/duAZAuvdw
aN+DAkI1hHk1U9TNtp3teHeVlNqwUw75nS2JG00g/K4QWZBwzZDT8fSHZ/sM
GdHQgia8IYjTAFvCvmpBS6H6TrUnhW1ZHQMdlp02fXZ0pM8dHQk0U4cSJDVA
u0O4znWQXZrXTSRDAtEtAm4VMROzWzveK7oF/OYHqADFLARUF/5GtkHyxEJo
2qXGP7baGIWZnNKQOSGIE4NWrqAPgTWSAa/KzRV0pU20WIrZ17Jii00lv4pJ
pnLcHBurtDNddRp1JlA3wCfWfTjnuBPTTq86+tH7df2FEJHLAjFCZMcQk+cc
mWiCUyIWOXUVl738JfFGkHUkMCSzkpyTbpAIXZVzHCUSnx0TcJ+VWw4DsQln
l8sVQRFsXnWWtp5nq4xz0BoaQ7TVFd7nsAMnrVJg0jw0ZBVRtRguGgIdRR2z
D05CJ7BkkJUQS0UkYFIEJrGeHB0FnZ4xyxcqyMy6V6XaTPOFkVAzt1MrYbuO
ciQhc62bMPPhQS8N/4qqI9JjohM7OVh5/ukx+QXxz6GC9XUsNQdU8M2BfFaU
ReS0xG1edKpreroUbSBc3jFamulcIkW78nwyHKk05kDuTNJmZ/SQJ6px/K75
/Hm37BLsivKCncPkXCYefOB6eHLSj3hO8gh/HqRjBm+5KlKf0kHWRbZYTPhU
J2OWIB5KEjQYo340eFuR0yxO7dEEcMpoNW5alTdEwwCSAT+egGMWdSDhYGVk
90v6BgCh3QHJBte7noyeBOQdYDfJHsVYEBocOBIzOYdzraIGZOfC4qZdPE3Y
9IpSal7h0Z6WWAiONEja2AXZyQ0HbuOdjTCpitCZSpYxOmFIFlkHzJ36iJhy
N4gENWaNpkEmyhDpkNnBczPfVioiNoXZ4UDdRA6cSo2nw4H7iZxl0NlVed06
PuCF1vHVhpyjlmZI4VfTuilRVuT1Vo5imCajiJbOADUIDktSN8RHYpts5c2D
29vw9SCWHz9/figG8rVfTemINRgs15odatW6nP5CwGIYBhLradkMpRY6CqSo
kI9vHSF/YSRgqjlicjsnBOKBZDCaIOGGrRFR8i4QSZrFhbE5RWyy5oMFEicP
mUgkcSve6S8MeOxOzlFEJYCvYBc50BPbSDwZGi4+tMUumFP2LzpZSEedJYlT
kQqKdwNKIWTkV+vGECtq30jIasxEa0GTU3NqLxvOwYlGzWhALBXtJ3gXFJoT
Huwd9yaEtTTPgAkXv873Z4syHISw+4zm2Haf2i3PWhIO+QsC0Zkhpi15krcs
BVxpY7dTxFhGYy8BDVOSxg3Z1Amb7Akp3at2VgaixrYJQE0OTmKpdHIAZiuQ
pTkpFJpIYTrpBgrbF6w8IahDW6wbHpjw9z4MwKuHnC3szIqYR8SMJkMU86Vg
l5Aji/lu+ZzAFIAQF3eQ6jRoCoIJRrwO6uaK8y3jfFjHSQjsiFJiAvkAzCiU
SDKwHXEWbYMETrQvDRQeomq4G3VrdAADIy6HJptuGub1lgSVqZ13ABogPUDK
noVO3ENDzo9m6jFfQ0gellALLT8GgrSdoxfK2aztEjtZid/UGQYHP4Hgkdr6
KhG6PdzVVkm75fwdaK0WiZbSH+hRbgfDtkjueR0W+5ApO4MAQxk5YuoIAJ9I
lNM+TjAOCuuqONOurspyHtdS8xZSWQOpL6TWTfL8HfMWKiq7BmlHQTikZhAu
FdQjBOpHgtnD8a5xRoXYJ/gxrZIhbZ8DOjrN+3dyrpE9RnMEwbrh4BOz0ucg
B+Wv45NRJ14ew6WvczL2eOQs1H3r4KoQZg7RapZaB2ZgZDPWSzpCDi771ai7
bDhLPKu189SASYagsBNutpvoGbTTnXz15M7pQgtKl47DVo+bC8Kcoyd/uHNS
KaT9/NFvD27vyejZ0y5b0ffkft1Idr9TCorlKLC16100UQskQ/hHJEADi5o4
QTI+qwOMxUiiATjWdkgNtdyUn51tBoke2u/8VlHjyjWzJazZf/3FDf57NHj2
k/7/5+Hgp6N/FhQ79cmGk+2eicmIABQ6yAyquwvfKQIEh/WJMJPW3ffA+aLy
3KZwPgrRWDKnKdu4jOJJ0lGGRtpRE/IcWsoggXVr2IiDuQFTeWZcVqy5kuUk
OU5RmuoY+kohQbrpgJSCbDGKIHVypusldVoeBj/zi7t2ojn4xMcmdUG2xNoT
wXMNzb7Phd2gD7E9EXAHUp123amJqgVH7jVI3d5TYNGiEdu4j5rb1t4KPRRO
47JvDngtlvz60t2G+mRorjLmN/uf7Ep+I1TqOPT+zfw2GAz4X/p1spaE4IRG
nEs64Mx2QnWU+tnWNI5tsTyVjMCjCRpnoyx9NJqOkkcAp689Br8LD4ej3/UD
8kCLdeiZH2LTIntPLaqj4WnX7lupicRjOoPnpe8ZtPLECIlk1nfpRucZh/6c
m0A0omRXsyXRzcPf+4akd8/TnMVWAMsZmnUjj3JQowx6jwjG5drtdYVMxFlX
vcgHhIxjvSwrZJl/uyNog8xlxSIg+MjaNnV2FQMnlgbaeVmh8bFQSzzfQ+uY
k4YWV75FnVM/c9CqUMDRTE7b4XCDZTZFXCVJajEtdS7pKrKl2dWy0ewVIBrj
cDNOOgH7NlvsoanC+zke6GMzK+/qTcL/zlDRLY4eYjthbGg1P8Bjpmg6ka7+
gbSk5DY026+1j1vb04ikd2op9ujbnkyIj3E6fI0wBF/uVYp69rOkWd6UabND
UXbbOelz7Oekvxlf2CmFyx8F1HBme+1mXkrybSjNJ8t5My7VQ9hybvmqy1ZG
CaFKVYCNDKfP0MqDUhEyXv2AgDV9mWjWDVLnTFpWbKIVd/NrlDdqQiH2ktkA
HqERE6ZTInZomWY2xax2jxlYY8fdcEsWWV2DQAyRKDopstmye1iaPYRcidZI
1HNXt7jZoCPu6QhNg2UxrxHZtySzp+wkvVUYEOwL2UkOWPKHWRPTIKGPVYe2
gFhwdt1KaHKgZPwFPkpaQSF9iG7u7Nb9EpxnLyVdLJ3W2aKUjEUf6esKFkFa
WrSyKtA2q3cSAir8PSaMhPoWgU0KiyD+f+E2elIQ3FmB5DNmhCoECP2za/A9
Wu4Ho2eDk+MPx09ORyenx8f/MhqdjkakGX2ZRHv441SSmO31w/fsCFm7ZmRC
SEVxwu3P6Ekr5/xgUQ+aT03ypDa99cLtA1XK3QEdYo9Hg9HJh9GzUyZTiY1P
cO+QrzsPHA9Gx7sP8PjP9N+f8GgvODrwExvh4/u5pkjbd7nUNTJi52FEPic1
Z5UVEt5J51zYzgGGtHieDnMCvu5kOw5mVxT2P7i7FJP7EDYCCA82a4tHpuUn
zTDIyX1xCsRUsFeclwCKfrmpBEASlWgD09pfiLw4o5rWlaTS1K0+9VHK4bhZ
dzM/23MsaYaK14KazksvWId1mw9J01RBLHYDGk7A4+bQ58+cLqNnVutudojl
tcPwH/Y6xrRbWZMRCm4exPZX4Y59WSLzEg6Gmao1DYXXaZ4ihv7D3ciE1ANA
N2hDQhq7ZcZ8SEYW89DEJulKPgCQjb697qytGvxNDLJu0SCVGO25zB0CjCYU
IzmT0LjcdxIPgRKSZ7S4pecmdGhWT3EtOp1RyJt01Iykcoe6xSbPB8gQqPQq
WOgbITOrW5yF+JuTodyRwWacO9k5e7CfCC1XGcMymqnMWxsvD6aFLD0zjiE0
7mgzI2mLThYCvdgMFjwCoBGJM28BmxHAwMmaGccSzkRD33R/iRfbyqKb2oc0
yd74UGiKgjQQrLCkXSDvDIXTLRQzo0NGqai9eaNwA/ABafgUYZs5+W0YA6Z9
aL/d0DSDhZvxPmVJrUOpo6/ddq/h0jwQ55TYlNQzdFoDsB3MEU19D4T1tOG/
Z4JQRbPJ9b+Qb0/uJN3eO1ApAFxPyxZczSdCObhxdYRggt2mnjCPlJHGrcTA
CJiDfV+xkliHTtwfKr5bQVJP9oJkLInC+pqub9tZtFkzLT2BFngmDYvJhhb2
zZ+fv309vngDomIjkPSzrAguUujntmuX7/TQYBYtsGgT7nuPbAKaONPml6yu
N47kjWjR3rVO/xvnnM7HY0yntU2ujWoirL1iQ5vdcDElpGELuUMGAMsp2HLa
cDmXm4MTAqTaI/3eGoQ8FnJRYaq7IZmWm0IxWlmLVi3uEyl2kp6hiqU3LDiY
UiHoTItUUgSdmvGNaJsbesUBxErjVZk0IqRTncnsaczfGYzJiPJ+jAsqDUNR
WUKVEskE6fL9EApnCBpzz4VPllU9KlwxK3NWTFKdkhuPv4i1+YDs4xGZoW39
0M43lXTYwJji3glF7mqRpRd8y+FI0lVPQ/PQOOOvM9y4VPCAwXQYyAUzANe7
OZhnTEZo0ZTS5MxtMbqwFLKZdKvRq6hnt0ChUYb0a8sVyyejJ0PzFXj0nUSz
BbcGFfOBTLCZw7xX5JSJVWRHNVKQWDoGPLG2K6oC0rTjiA192tERL3Fwg3wo
M6ctDmwkaB61E9jA+N3FwUYSl8PVxiIzYFPFqain2NELaSmq7a+bsnE467JI
u19gnQNygwzhM51n6CAGDVpgjhZag6BOgwYZfjak73GdAPZ8ma352iePQZ1a
WlA693Vq7s3Bd2yDfvdOTnK/h0SjCr1fDuk4XGl15B4xWyl2Ef4duQTxYB0b
HPkY6quQftAQr1vc1eOhbSchcZJiExAd7zCYpIufD7GyQmGXjvGPmonQ9TvR
eNhm30w996V1ynh6oURvx85LFZOkWBkCAz04vhGGhqMJM/ZnLNgGoniE1ahU
h3Xg0maSOSlKwwfDx3op13zjTaTbeyFxzomZqk0w2ZB7r2333hK3lL4mqIvu
LMwHwA83fKv379EiUyPRu0BuDzDo77pF1Vf7w+GEmcSVBnzgE63LKXbaKywz
OCpiAloKm9IX1uglg3gVymr170BZfq+DBvMNVrL7QR13P4iTTawaBV0TBxTw
vdHebXbOQnicAp+KeKlLrjaHWGRXyE3SyCQWKa3IJFFot0soqzlBKNeIGvHW
puVCuIuYsZbcUW9hdCpZCZGo5wwXBnJnMBFBshjk5H7/quGcWLDKSHvY9ujd
w+7VQ3Pg6mFEmLtBMzooy+j98M6KgDFMAhEOXEkPV9vi9TlkZpPKAcaAdRXX
MHzsf5MbuUpimiXiqwb0Uwy+Fe3rRoCTjWYS32iKj88bLpZ7/dxOewhfIwNs
w9Bxi4LCRRo0cmUKPW7vaWOXJLPuRAZ8e1Bkf+eWyxd6xyzHbfzSBrAf3pxc
DAcCTCP3gJIqwcQLcDOQmXDfeDR8PBzpdUKUUTwn4tdlLT3b6ookAqLzDZC/
NsGvabdbl9yDLqnTVie1JCQkQt7UchcMZsvumkKfVOjigC4KubSHclY3k6H0
NZVYEewAG8F9QPa5l+F+9HnJ7ctypZuc69HR3YV21HD0Th3ChruKEBypt9Vj
7srWyi9KaUlBut+1FmjriEXStNRugutsQtvRXl+kyOVOQjRcEnmraNtoPEyC
H+Lt/TZswQAcUonq8d0+XL7GhQIRJ9yh5b4BXH066tT/uPNL3n0gFkR4pcFF
qvghEOTBZHKaJXnavaQukq7Bwpyy6gPoak+zorCam3i1t512ZNYligxy6zAJ
K5g4aYyISEABmU8hq748wDBMRLLocAucdrJz4410T6PJvZuQEEE0fAHCSWmO
rVTr12o51XkpP6RxWXpB7+jonM4BU/M51Gm0dEAatQF5ttwN34gSo536Wo/u
sHuCVXzoB50ws7mQwKckihdRTrTjiWnoVB8a7RlDkktKEWcdOsEhCqDRyjlD
KyihG6kjtFc24/WFAd/Ihm0IP2ovnkrgvNNSXG+qBfIJfCW4AKRTRl1IEiIo
eZu1NaFXV3VLW0bjQbWNcq98cUVGdubWJHg6wSBW+7VCHxJGSfFdQqNqk3u9
w9C2S0XiNTEkbyJwJqnDn06IlcVHruT6igQO6V7uFZB2yp1kLl6mUqLRobLf
XwwPJ8qkB1SaVCUg02YHB3wSXvgg9++JyxeJ8kqnEvgl0td9HwlqfBybtiAB
PbqEzXF/sClVcBbbFl6ADRQQCYYI7/DQbAELsPT/8IEmd/ZMCx3kVR4f+UZB
WWz5bUQKXSq3IJWSxKEtN3JlNgYhXMrCvb+GDPZH1Io4vZVdu9m+g+iIWgQZ
AdvsXdl22s/Q72Cm+zWZYvKyRVvihB/1n5r9to9Y2OJcd9p8JCgGdj2mvGVD
Mc3dt+3dmVgtmJHrq7QsypeuZV6zg47EasRUe6fZua+4owO8NEHD+bMspt/l
2+FephnQyuX1fhtccgeDg4T04kFygVvLensRKsXznXvWkhzxn3C3m18HRScg
njSrWLSTlm3pqE5zWGnLNa2zWss9NyNdDEAe8QL+HekPpBC5OyfbdW0mzMxh
IFQJNiMYNxbCi/Gb8Z4E8pdZDAYlgpBb3erK5DVQnEk59HoaBb6m9wN+/S78
WvfC3fBteofi1Jj2URQyDl2TMOeS2YnmtMLIg+8a6+t9fyfqiJyG5ZexuHm5
Vncq+m9M511t8SQwdffdXOaSlQw/xCYcClXNew2xkiy+PKwdWJfSU82aQDEP
3m4jCXIBexB+HJ68uUvyevyiCArSjG2hvLY86hvd+AYH3v8zJWuCU3whc0Zy
JYcjdZMWEclN15sytL+GV2XEfsvOtdxbs9t4QV9A9fBpPHf8ea9Iii9jH8bc
DXcKvr1ouEJN+8ZPMTa+3G7/GdsLPdNfGPh78YBM5NbZ7hy4n7q/4Gy9Ow63
adNxhivnvQRsM180ecl6s/NCiPFs5cM7p8hbNY6858YPmS2/X+b/R1T5b/fL
+3cW9r9Q0v+9iv7/u6D/N9fz/5G1fDk/jaFkFmEsRvEFvH/rcETGh0CrIx7J
MMgKn2gIs2TmRUWKAwOA53IyZFeVWy+TloIP4UZTchkpgOC/vxFqR5lsslj7
RoQQoN2VN7jP/Wx5p2IkaWYT8X3osg/WTcdxConsvD15Onra5mfTcMH8DW9n
a/QdGPfsueI1AQeD0YjsYCe5qld/Y4e/vm6jLWl0L0RkmnWyfCtC03jSthCy
hBtutZMbCXsXGeLbYzjpZO2DUDOhVXvtzY3OvY3kFkR6geOGdJ2vPJGhwKFR
wHDl1ZgzJNx9jRAnkG74P+JZuIKK86QoDnetkWmMkUy4tBXqf3dmiRIvQwfW
3CBlc+nXjWwEHuPtrClxHSXkhEIYyeHeRwUh7bumGoEQ3lXEFJVgCuv/D6r8
r0wsWAAA

-->

</rfc>
