<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chapman-a2a-offline-delivery-00" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="A2A Offline Delivery">Offline Delivery and Reachability for Agent-to-Agent Messaging</title>
    <seriesInfo name="Internet-Draft" value="draft-chapman-a2a-offline-delivery-00"/>
    <author initials="L. D." surname="Chapman" fullname="Luke Daniel Chapman">
      <organization>Qwixl</organization>
      <address>
        <email>luke.chapman@qwixl.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="01"/>
    <area>Security</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>A2A</keyword>
    <keyword>offline</keyword>
    <keyword>store-and-forward</keyword>
    <keyword>reachability</keyword>
    <keyword>agent</keyword>
    <abstract>
      <?line 49?>

<t>Agent-to-agent protocols assume a live HTTP or streaming hop. Many deployments
cannot keep every agent always reachable: devices sleep, cost tiers duty-cycle
backends, and operators park agents outside business hours. Senders need a
machine-readable asleep signal, a bounded expectation for store-and-forward,
and validation rules so an offline agent is not a spam sink and does not act on
forged or expired messages after wake.</t>
      <t>This document profiles offline delivery and reachability for A2A-style
JSON-RPC messaging. It defines abstract reachability modes, an asleep refusal
signal, queue bounds and distinct queue-full errors, validate-on-dequeue
requirements, and split delivery semantics (durable persist versus notify). It
is independent of Messaging Layer Security (MLS) grouping; deployments that
also use <xref target="GOMLS"/> <bcp14>MAY</bcp14> apply both profiles.</t>
    </abstract>
  </front>
  <middle>
    <?line 65?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="A2A"/> and similar agent protocols secure the transport hop and authenticate
callers, but leave recipient availability underspecified. Roadmaps often name
streaming reliability and push notification gaps without a minimal offline
profile that a second implementation can falsify.</t>
      <t>This document specifies that minimal profile:</t>
      <ul spacing="normal">
        <li>
          <t>abstract reachability modes and how they map to live accept versus
store-and-forward;</t>
        </li>
        <li>
          <t>an asleep signal at the HTTP transport layer, with a recommended JSON-RPC
error mapping for generic clients;</t>
        </li>
        <li>
          <t>bounded opaque store-and-forward with validate-on-dequeue;</t>
        </li>
        <li>
          <t>honest backpressure when queues cannot accept further messages;</t>
        </li>
        <li>
          <t>security considerations for spam sinks, disk exhaustion, and wake storms.</t>
        </li>
      </ul>
      <t>The profile is intentionally narrow. It does not specify push-notification
vendor APIs, email bridging, MLS group persistence, or payment authorisation.</t>
    </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>
      <?line -18?>

<t>The term <strong>Governed Object</strong> refers to a signed, purpose-bound, expiring
message envelope as described in <xref target="GOMLS"/>. Implementations that do not use
Governed Objects <bcp14>MUST</bcp14> still apply equivalent authenticity, expiry, and replay
checks before acting on dequeued application payloads.</t>
    </section>
    <section anchor="reachability-modes">
      <name>Reachability Modes</name>
      <t>Implementations <bcp14>MUST</bcp14> document which abstract mode(s) they expose:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Abstract mode</th>
            <th align="left">Live inbound</th>
            <th align="left">Store-and-forward</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">AlwaysAvailable</td>
            <td align="left">Accept</td>
            <td align="left">Not required</td>
          </tr>
          <tr>
            <td align="left">SessionOnly</td>
            <td align="left">Accept while session active</td>
            <td align="left">
              <bcp14>MUST NOT</bcp14> queue for later auto-delivery</td>
          </tr>
          <tr>
            <td align="left">PeriodicallyAvailable</td>
            <td align="left">Accept inside a published window</td>
            <td align="left">
              <bcp14>MAY</bcp14> queue outside the window</td>
          </tr>
          <tr>
            <td align="left">UnavailableStoreForward</td>
            <td align="left">Refuse live processing</td>
            <td align="left">
              <bcp14>MAY</bcp14> queue within bounds</td>
          </tr>
        </tbody>
      </table>
      <t>Informative Atom names: <tt>always_on</tt>, <tt>session</tt>, <tt>hourly_wake</tt>, <tt>sleep</tt>.</t>
    </section>
    <section anchor="asleep-signal">
      <name>Asleep Signal</name>
      <t>When an implementation refuses live processing because the agent is not
currently accepting work (UnavailableStoreForward, or PeriodicallyAvailable
outside its window), it <bcp14>MUST</bcp14> signal refusal with a machine-readable error
token. This document uses the token <tt>agent_asleep</tt>.</t>
      <section anchor="http-transport-profile">
        <name>HTTP transport profile</name>
        <t>For HTTP JSON-RPC endpoints (for example A2A <tt>message/send</tt>):</t>
        <ul spacing="normal">
          <li>
            <t>HTTP status <bcp14>MUST</bcp14> be <strong>503</strong> when the request was refused for reachability
and the payload <strong>was</strong> accepted into the offline queue (<tt>queued</tt> true).</t>
          </li>
          <li>
            <t>The response body <bcp14>MUST</bcp14> be JSON <xref target="RFC8259"/> containing at least:
<tt>error</tt> (string, <tt>agent_asleep</tt>), <tt>message</tt> (string), and <tt>queued</tt>
(boolean).</t>
          </li>
          <li>
            <t>When the next accept window is known, the response <bcp14>SHOULD</bcp14> include
<tt>retryAfterSec</tt> (non-negative integer seconds) and <bcp14>SHOULD</bcp14> set the HTTP
<tt>Retry-After</tt> header to the same value.</t>
          </li>
        </ul>
        <t>Example:</t>
        <artwork><![CDATA[
HTTP/1.1 503 Service Unavailable
Content-Type: application/json; charset=utf-8
Retry-After: 840

{"error":"agent_asleep","message":"asleep, try later","queued":true,"retryAfterSec":840}
]]></artwork>
      </section>
      <section anchor="json-rpc-mapping">
        <name>JSON-RPC mapping</name>
        <t>Generic JSON-RPC clients may ignore HTTP status and only parse JSON-RPC error
objects. Implementations that wrap the asleep signal in a JSON-RPC error
object <bcp14>SHOULD</bcp14> use:</t>
        <ul spacing="normal">
          <li>
            <t><tt>code</tt>: <tt>-32003</tt> (implementation-defined server error in the reserved
range), or a future registry code if standardised;</t>
          </li>
          <li>
            <t><tt>message</tt>: a short human string;</t>
          </li>
          <li>
            <t><tt>data.error</tt>: <tt>agent_asleep</tt>;</t>
          </li>
          <li>
            <t><tt>data.queued</tt>: boolean as above;</t>
          </li>
          <li>
            <t><tt>data.retryAfterSec</tt>: optional.</t>
          </li>
        </ul>
        <t>Deployments <bcp14>MAY</bcp14> expose both shapes (HTTP 503 body and JSON-RPC error) during
transition; they <bcp14>MUST NOT</bcp14> claim a message was queued unless enqueue succeeded.</t>
      </section>
    </section>
    <section anchor="store-and-forward">
      <name>Store-and-Forward</name>
      <t>An implementation that queues for offline recipients:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MAY</bcp14> store opaque ciphertext or protocol frames without decrypting them;</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> bound the queue by maximum message count, maximum total bytes, and
maximum pending messages per peer;</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> apply a time-to-live to each queue record and purge or reject expired
records;</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> authenticate the transport caller before enqueue when the deployment
advertises authenticated A2A access, so unauthenticated traffic cannot fill
the queue.</t>
        </li>
      </ul>
      <t>Recommended reference bounds (informative): 500 messages, 2 MiB total, 50
pending per peer, 7-day default queue TTL. Implementations <bcp14>MUST</bcp14> publish their
actual bounds.</t>
      <section anchor="identity-for-per-peer-caps">
        <name>Identity for per-peer caps</name>
        <t>Per-peer accounting <bcp14>MUST</bcp14> bind a <strong>verified transport caller identity</strong> (for
example the DID authenticated by the A2A transport token). Implementations
<bcp14>MUST NOT</bcp14> use unverified body fields (such as an application-level
<tt>issuerDid</tt> scraped from ciphertext or plaintext JSON) as the sole peer-cap
key.</t>
      </section>
    </section>
    <section anchor="validate-on-dequeue">
      <name>Validate-on-Dequeue</name>
      <t>Before an implementation acts on a dequeued Governed Object (or equivalent
application payload), it <bcp14>MUST</bcp14>:</t>
      <ul spacing="normal">
        <li>
          <t>verify authenticity and governance constraints (signature, purpose policy,
object TTL) using wall-clock time at dequeue — not only enqueue time;</t>
        </li>
        <li>
          <t>reject replayed object identifiers via a replay cache that survives process
restart where the queue itself survives restart;</t>
        </li>
        <li>
          <t>drain or otherwise discard queue records that fail validation so they do not
block later messages indefinitely.</t>
        </li>
      </ul>
      <t>Opaque non-application blobs <bcp14>MAY</bcp14> remain deferred until a suitable processor
exists; they <bcp14>MUST</bcp14> still respect queue TTL and bounds.</t>
      <t>Implementations <bcp14>MUST NOT</bcp14> automatically perform consequential side effects
(payment capture, secret disclosure, irreversible external mutation) solely
because a message was dequeued after wake. Owner or policy confirmation
remains out of band to this profile.</t>
    </section>
    <section anchor="delivery-semantics">
      <name>Delivery Semantics</name>
      <t>This profile splits two layers:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Persistence.</strong> Queue records that were successfully enqueued <bcp14>MUST</bcp14> survive
process restart for their remaining TTL (at-least-once storage).</t>
        </li>
        <li>
          <t><strong>Notify after validation.</strong> After validate-on-dequeue, implementations
that remove the record before durable application accept provide
<strong>at-most-once notify</strong>. Receivers <bcp14>MUST</bcp14> be idempotent on object <tt>id</tt> via
the replay cache.</t>
        </li>
      </ol>
      <t>Implementations that retain the queue record until durable accept (true
at-least-once notify) <bcp14>MUST</bcp14> document that path. The reference behaviour
described here is the split path above.</t>
    </section>
    <section anchor="backpressure">
      <name>Backpressure</name>
      <t>When a queue cannot accept a new message because a bound would be exceeded,
the implementation <bcp14>MUST</bcp14> signal failure distinctly from <tt>agent_asleep</tt>.</t>
      <ul spacing="normal">
        <li>
          <t>Error token: <tt>asleep_queue_full</tt></t>
        </li>
        <li>
          <t>HTTP status: <strong>507</strong> for global message or byte caps; <strong>429</strong> for per-peer
caps</t>
        </li>
        <li>
          <t>Response body <bcp14>MUST</bcp14> include <tt>error</tt> (<tt>asleep_queue_full</tt>), <tt>queued</tt> false,
and <bcp14>SHOULD</bcp14> include <tt>kind</tt> (<tt>messages</tt>, <tt>bytes</tt>, or <tt>peer</tt>)</t>
        </li>
      </ul>
      <t>The token <tt>agent_asleep</tt> <bcp14>MUST NOT</bcp14> be returned when enqueue failed. A
successful asleep response <bcp14>MUST</bcp14> set <tt>queued</tt> true only after enqueue
succeeds.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Offline queues are attractive spam and disk-exhaustion targets. Bounds,
transport authentication before enqueue, and per-peer caps mitigate that.
Validate-on-dequeue prevents acting on forged, expired, or replayed objects
that sat in storage. Distinct queue-full signals prevent senders from
treating a refused enqueue as a successful store.</t>
      <t>Wake windows <bcp14>SHOULD</bcp14> be jittered across agents to reduce thundering herds.
Ciphertext queued for an owner <bcp14>MUST</bcp14> remain under owner-volume custody where
the deployment model separates control-plane and owner storage.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>NOTE: Please remove this section and the reference to <xref target="RFC7942"/> before
publication as an RFC.</t>
      <t>Atom implements this profile in its agent backend asleep-queue and
reachability modules. Evidence includes restart persistence, queue bounds,
expiry-while-queued, replay rejection on dequeue, sleep 503 with enqueue,
hourly wake Retry-After behaviour, and distinct <tt>asleep_queue_full</tt> responses
when enqueue fails.</t>
    </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/">
          <front>
            <title>Agent2Agent (A2A) Protocol Specification, Version 1.0</title>
            <author>
              <organization>A2A Project (Linux Foundation)</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="GOMLS" target="https://datatracker.ietf.org/doc/draft-chapman-a2a-mls/">
          <front>
            <title>End-to-End Encryption and Purpose-Bound Governance for Agent-to-Agent Messaging</title>
            <author initials="L. D." surname="Chapman">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 275?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Review comments on companion Governed Object / MLS work informed the
validate-on-dequeue and purpose-governance posture referenced here.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA4VabXIjN5L9j1NgOX8kBYstyT1rmz07s+yWbPeG1JJbsh0T
ExNNsAoUYVUVyoUqsTnudswh9gB7lj3KnmRfJoD6IOVdR7RVHyggkR8vXyaY
JIloTJPruZzcrNe5KbW80Ll50vVOqjKT77VKN2plctPs5NrWcvGgyyZpbMIX
8lo7px5M+TARarWq9RMmWpwv5P5kE5HZtFQFFspqtW4SzFoVqkzUuUqsH5xk
YXByeipS1egHW+/mUn+shGtXhXHO2PJ+V2EOU2a60vhf2Qhhqnoum7p1zfnp
6den50LVWs3lnU7bGmKLra0fH2rbVnP5tv9O3nVzike9w6BsLmQiIT39CTLR
pWtsrRNoI4ECtqrO6GE9UAzdqweWxTUY90HltoSUO+2EK1TdfPiltY12c1la
UZm5/Ftj06l0tm5qvXa42hV08XchVNtsbE2CCIn/TImPrmbyYibfeIXxY6/I
q/YRClal0fnora0f8PAfqsHW5vL7rfmY83NdKJPPZY7PZkH9//4LvZ2lthCi
tHWBb540Vpfvv3lzfnb2dbj86uzLl/Hy/I94Kky53hv+5dcvz+kS+pvzctGv
2FHOvbsc4e2xvK0tFGBzeVfp1KxNyqJO5Y+6JnPIs9npxE+h6gfdzOWmaSo3
f/GCnKUKH8+wzRc8qtMZ/5fQ/oMXYqGfdYplr0zZfpTf2LbMeK1jPz9uIOH5
6fm/4vbbm+uru7Hol7A5XB1/5GWZ1ruKvuW4uG3ryjqdvKYp5bcWbluqMtX/
T4w8tykIoZpapY+6nhndrHljiJYXh4FS5O75Lf+Onwz2J5IETrpytBL8tBOR
/VZGpTqpnGsLLZWkUJTf3d/fQp8IAfh7gS3Ija1m8lqVO4lIyu2uwOcO0VqW
tpGPWldSe/DgeVW+VTsXg4V0muknk2onXY6xU5la10DdMLzM2maXpLs012JF
2igzRAbp2la6VohBJytVP/qZnbRt40ym5ap1iFPnIFlbuxnCHuGNsaXWmVSi
wMqELRAhIwmwQVpZOvNQqhwLyBWZEGOBM/AVdg+24kHYTwVJ86Ry451I1m1O
O7GQMuJF2LfB+tCHkq5SBdYqH3knmdXhBZwSuIOJH7AyFsPipsZlwb6CUTC9
ruVWIVaFuN9gQrhEWwRjrQ2tHNfMhohdHyD2+SJxzQ5q/Y+7m3fJ+9s3YRWY
cybfNvh8TRrsvGM8RWEzzYaImgNStU7lImrwl1a32mvR+V0a15gS8/CbZN3m
udR1DQNOo/Z0YkvAPQ8QNf5i8+xJ3uKuwtL9thyQq2xM6uRR1tZsxYqgAq6D
965lnZr17pi2I6CqQXqAkvoAlFdqB63GzCCPEPHHknMD3r4aurRsNqoRKod1
W6flr78yPHz+LK8Xf5WqqvIdttxsOmPMfIQVJsugafEHpJqmtlmbkqcI8euv
MAO+5t2ZwuSqlvuh50gsjYXxr1alq5AfKN74I4p4TUqA8hBuea5Jnau2kblW
iNQaSFoZjrknwHy0XsvB4GFWZzP53qqsUBX5TqNLTiSiD+4aGo9f0qJV6zZe
twGj5QN9uzVAn5bcG1+ZQuVdtgzaYOWR9+vUYhpTVDmb188BsJBraBYWO/Dt
KKrXfzd/mBeJ5+T/clMWemO3pEM8UpVsrAcylaa6iu4CbDwI7lc0czlGBwkJ
yBqMgr1JcnKiKWsBe4TibVFohpAYYFiAHZ5EIM/iOIS1dW1SmeZkJkcLRuix
lUIoHArl13gmZujjDTgGIoCwsqrh4eQ7W/iIDzsnAyaHna/bGlupO4ChGVyM
A1iJsLRm+ziPfhG44GUI6Ecg1EaBYnGiJjUTNLHEhWMr6mgkyQHYkLNaKBGB
UiooY+uxJiKgN/SOXSwZuph4gi4Jtm7fYmnmLHJVm4zidyoRgz5eIwJoJN0p
IWilOHBDajSOJ5tRJL6x5ZOXxjvIBeGd4XsvOOifJP7n5OT6h7v7ydT/le9u
+Pr95fc/vH1/eUHXd98trq66CxFG3H1388PVRX/Vf/nm5vr68t2F/xhP5eiR
mABNJl6fk5vb+7c37xZXE2gPbjeMCkWwYOVKs2JrmLuh5OYEfD6tzQo3+Ob1
m9v//q+zl8Cqfwn0DYDjb4jA4YbcI+TUEnbxtxQrAn6qAUmYBRaD61SmQYRi
LGAJAVVK+A5lopO/kWb+Ppd/WqXV2cs/hwe04dHDqLPRQ9bZ4ZODj70Sn3n0
zDKdNkfP9zQ9lnfx19F91Pvg4Z/+wnk1OfvqL38W3keg9kKenHimB33frIhZ
npxQOiS6AfMohg2dTeHUnh1yfE99cof7ihB8UsMhc9AaUu/IhF2aQbCMQDPg
YWY5eJCRxJ4kTrIdEKCwn89PlFaBHTEoOHsg2oM8u2mgCxXwTKQbnT46eBhi
n9CyIdQCVge8yXjKmAQQajnyiOPoGlWI14TCQuzLzqJ13rzdmHTTwzgh95E7
9pgN0aA44PwnuRgOkJ/kFeG4KVmnuL07AMtP4hNScPePpmD6ufAJMadJFh4N
P8l3lhIIEw/+EqSAa8EbCoxuHETFZ86/YrU80SzR5QP3IbzMFfE16Nl2ZSxP
ewvMt5mhjL17RhDDwAvXqdpVbtxGE+YD/7a0CpiGXyByXUpG8TXm/qFUcUbW
xjdRETDKmlgLpz7AckobgEGHc1JqgccF3vYJRutLOrlobMHkAGXF0pP4D7Zc
TuUy6IIuiXDnuw+UCPgNZc4l+8TCZ9E7zqJC/ERZCcl1jwcwkUQ62JdypVNF
0tNuh3RaIFvVuIWBfFKjwVTcy6Pf0QQnhmctIKJKTeOCSo+nuAlR5NN/YLox
0x+UEpzjRWNRq8zkmMfwxpjJ0VvokPbxQfU6+sM+qwjZUwjI7t91dB0JsbKG
SOnRmmsFRYokYi+XAVJeOAxaHjNB4o8dlNyGyEPeODn54+kXQCsmCCQX+T7R
h61ywRAZ+/G4r8EQQcNDyGMefIB5vAEYtIB8NCIWI967jpYeN5bUmNHHM4h1
z6tis6WjciHbdcLRRgF9obuAPAU+0ijkaNhXMcF1DdW6S1b4Uh4BGJgNjNUK
A0Z1dGOOPcpFaTDJ0cpazFiyTD9FdZT6Y0eVQoTBnI8lUt806CtIHjIRCpy8
zTRJhWxc7xZUr6GwwMoleFqpH3wkUcJ+ADJ4KgyYI3HCHE73/JImek8TJTzT
EglXgZHJoF2HWCQi2FISvvQOAGP/9ttvgr5+cTY7k7AwUKym+noIDQL8h9hY
4ltnAyB/8bOz5SsJe9cQ5d/aZp18JQZCzOVXL09Ru0xY75P5ZKjuyXQSlE0v
QjmPTz0S4q1X+WRODjCdjJQ0mWPizyw9RUJfl3q6LMS3gSt3bwJpxoidRHBS
khq6eUdpKtrKIHI4Qq3PkL+TU7c11Qmbvc4AU6HnJ4rma50vSJYpEtQSQJl8
cX56+gU8YAx0iS+wUfjBODCpLw1MjEN+msH+gIIHfcyYpcDXGyL0tX4Aya2J
ohNYrSU3GAFtBgFLHL7z+Dnxjw2XjC3KZen9n4dQh2nmY2e+FzP9+xAhcxni
g7iJWoFk9EPGjj5H2eIpPlzyYlA5U47xedyXyG6jKqDhERuMnJSDn0w2Vu+x
RHVP5mdQZIL+yrOCLt+muTIFQXEgUoRegaC0ZU5dIF16AHItglmjuOKE1JOF
kBmEWBzkI/aGUDwRFEZE60prx+am7XGlFss2vAU7bghBqA6Jzc11TfmzK5Yz
7RuIwDTsqSCtevxjPkOuEBopVLh+NEVbdLtMMaSZdo8bC26OcY3vy5DrxFfU
9KAVujYSqiT803W3nKeGSjam0NT/4+QLkCHYDxJQRQsW4RsANdbntMCeH9pU
5Kw8yPXzDvoTey0M362I3DIaqMtEfdOF8k2GCGkMZc/hjBknO8JnR+1yC2uP
X2O19ZqKa1/0IpNSz7vTKpzg/aBOZ85OlWOkP0eDfvbxHE562qlwKs/ltXnt
tT7FKxGVHHU7lV8mmaKG6Fq1eXAheX9/dQg4rKpA9Ug6UwuQypbMyYJ4ZvCW
GlexfYdVElqFijJQ69t4C2WQW5Ag3o8MdYmQoKFAbvYcWsCEeZG/iUiISCRI
TRdvL/Y0DkekF6T4fiamM8cHGxNdhBJxa8tOBg51XOWkZMTkhmGlHGahJNeo
hsTSONfq+sKAM6AiAmSAkNSgoXvhBQQo+YbA45im4/xouSkI5UBNdJ7DYf/j
oHNyEbqN4nWocQ7iX1EVRX/7qmevyJJHRL+6sko8UxT1LJLBghWxG9VfHFgP
/YkBNV+gYM/vOPkQ8ndFpKws1thN4c4h/cCzjmXLVHkLwyZpbtNHDmhiS0F2
+T///E+uFTktxqCjQRSyIZx98UcNKD+zd5A1t+OfjOLuFo2AA6Wb0NVzLRjG
E0GLZ+yMBchKNVVLOvQv/Wrg1jpf91+EcSRARhsme1rqSm0R8NRlSql6GYJQ
SNFragINGu/O+rzgy2FIsGIV+Bqswz7qAnOnR+fkDjcerYmdDe2GT1c+Z9XU
bKKSF+BQc0ZBMU1ZtTWNbzr7HXPkICu7YXbyhTexRJ0OIICN3cX2s3BAUUN1
I6EPFykU8oRG7BlkTcgBhOByRa/XRGXEUWx3wd29u4BgIj+zFnPr+JHBNqjj
abhY+diQx+WyaP3yxxw0+U7EemucVvvKvz+JkDdb8DIOQ3ZKknBtGDdtKbz+
+GSGuu4rrh2sb2WF6oajsjtgvot9/dAFjg1Ebv/D9Fvre62Ud89mgLbbvuc3
A4h9f+gpW/JAzv3O0cFD5/pZMJP3RTodC9bsvJfAliE5OALFF1nwSDUJlyBA
kdS3PKEjlA/nJNI7PnkISupdlMRbDJ8Nu7fTPeShGPLiY2X7pAMx5CwcsmY8
9xh6bihXsI8nw5UIxIGshY2i+lORk5OZRPLTpPO+IMQXRWUbPiEpY/wvCXwR
+F4ePYr+Z9w3iEyl2iDqg+A+ejq5vaxHVAyIsULD2c1ek4jnrlSzmYXCscvY
eqOejG3rQfOTcceETMBnR/Slp6/scq8HTfLYjwjijtvkCpXgtouDPjI8S9va
NieTIJg8uZwKWnIvjwxbCIRcxOPjmRgckpPaQUPgRF5yWcAJllg6v/nAMn4g
T16OK/s5l/Rfws34bAEgRqEd5MYToodMGV5h4Mvzr8PAyCZgYeYTJ3CNg5I8
1LZ9vf2MNFRsxxKfDnP0NHQLxvWxXD4ChmmKCMvUKmLuuuRKZ0nSLI9Dk/WZ
ZkkPkityA4Ad5WNmjzGrkZLpcGsh+sjvTyvD9rxVgJCjzoRPjz56w3QilA6+
vdmdFb4ZnZEgnQz7HY5b9KrhhiUxaj4+CYehj0l/dhJO/1GL8i8H3FT03GpA
vzgxjfiy72OMyKAsUCM9eL6tmpn48RBpAA76iYuyvqXrD52nkctPPb0fEQEn
fKpX1KCMiDeTF88c7Ho/d3Eh6cLxO3m5oINFXlZ1PaZoM6KBA6D2FRU0/hMd
K/kOjIu+BMP/bBqYiLJRWluAdvgRANILHrYpqYCPOvknCrom473peWPIABQA
dFTPSYz9IaR8/tQ/T55sTj+ASGEvCgjmNGJcp3BHGiLrSsEd6KjN0mFvnkCJ
9BMAakbwGlFzfB68eLc4cKJx07DA3qnTGZtzdErL3/kJxihzxzAg6Ajqci5v
CVB1nz8MHyd3P1dpRhAKrXG3jX6y8/lzcDTBZUlMLUzSMQQrcy+4gzg3yufk
HpSqfZs2/GwjhF4SDI0Cdf+kln43MZOXlLZInoAVfSoene0Nf18wFf7sIuHG
vF8BHhzylGe1JH9/cjH1vzThvgP3cWM8Cd++9ueYg6ZXn2Cm418zPAOCHbo4
cQBI8RcBpBTuiafUTQROPfifzKAgfTLINb4q9ZUHritV0gb2C48XfPLJzW5f
qmo2qniGXcTCnU+gBnUG7kNLKfhBFg71/hfS8gXbBSgAAA==

-->

</rfc>
