<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mahy-mls-new-content-types-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="New Content Types for MLS">New Content Types for Messaging Layer Security (MLS)</title>
    <seriesInfo name="Internet-Draft" value="draft-mahy-mls-new-content-types-00"/>
    <author fullname="Rohan Mahy">
      <organization/>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="14"/>
    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>new content type</keyword>
    <keyword>new ratchet</keyword>
    <keyword>presence</keyword>
    <keyword>status</keyword>
    <keyword>ephemeral messages</keyword>
    <keyword>istyping</keyword>
    <abstract>
      <?line 40?>

<t>This Messaging Layer Security (MLS) extensions adds two new variations of the <tt>application</tt> content type, each with a separate key ratchet.
It also creates an MLS capability to negotiate use of the new types, and an IANA registry to register additional content types.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rohanmahy.github.io/mls-new-content-types/draft-mahy-mls-new-content-types.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mahy-mls-new-content-types/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Messaging Layer Security Working Group mailing list (<eref target="mailto:mls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rohanmahy/mls-new-content-types"/>.</t>
    </note>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Some messaging protocols (ex: XMPP <xref target="RFC6120"/>) make a distinction between regular messages--where each message is relevant, and status or "presence" messages--where only the most recent update per sender is relevant. In addition, some messages may have a sufficiently short relevance (for example, typing notifications) that they can be discarded if the receiver is offline. In large messaging systems with lots of updates, optimizing decryption of such messages, and optionally suppressing delivery of irrelevant message can result in improved performance.</t>
      <t>This document defines two new MLS <xref target="RFC9420"/> content types: <tt>status</tt> and <tt>ephemeral</tt>.
These largely act like the <tt>application</tt> content type, but the new content types each maintain distinct key ratchets in the secret tree.
Only the most recent <tt>status</tt> message from each sender needs to be decrypted.
Only <tt>ephemeral</tt> messages received within a small amount of time (ex: 10 seconds) are relevant, and of those only the most recent from each sender.</t>
      <t>This allows an application to fast-forward over generations that contain irrelevant messages.</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?>

</section>
    <section anchor="negotiating-support">
      <name>Negotiating Support</name>
      <t>If a client supports the mechanism in this document, it adds a <tt>supported_content_types</tt> extension to its <tt>LeafNode.Capabilities.ExtensionTypes</tt> with the specific non-default content types it supports (for example, <tt>status</tt> and/or <tt>ephemeral</tt> in this specification).</t>
      <t>If an MLS group <tt>GroupContext.RequiredCapabilities.extension_types</tt> contains a <tt>required_content_types</tt> extension, every member of the MLS group <bcp14>MUST</bcp14> be prepared to receive messages with any of the (non-default) content types listed.</t>
      <t>It also redefines the ContentType enum as shown below.</t>
      <sourcecode type="tls"><![CDATA[
enum {
    reserved(0),
    application(1),
    proposal(2),
    commit(3),
    status(4),
    ephemeral(5),
    (255)
} ContentType;

struct {
   ContentType content_types<V>;
} ContentTypes;

ContentTypes supported_content_types;
ContentTypes required_content_types;
]]></sourcecode>
    </section>
    <section anchor="sending-and-receiving">
      <name>Sending and Receiving</name>
      <t>If a group lists a specific content type in its <tt>required_content_types</tt> as described in the previous section, a member <bcp14>MAY</bcp14> send an MLS <tt>PrivateMessage</tt> with that content type.</t>
      <t>The construction of the <tt>PrivateMessage</tt> is the same as for sending an <tt>application</tt> message, except that the per-sender ratchet is used derived from the relevant content type, as shown in the figure below, which replaces Figure 26 of <xref target="RFC9420"/>, and the new version of three structs defined later in this section (<tt>FramedContent</tt>, <tt>FramedContentAuthData</tt>, and <tt>PrivateMessgeContent</tt>) replace those defined in <xref target="RFC9420"/>:</t>
      <figure>
        <name>Initialization of the Hash Ratchets from the Leaves of a Secret Tree</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="472" viewBox="0 0 472 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 72,40 L 72,224" fill="none" stroke="black"/>
              <path d="M 72,80 L 96,80" fill="none" stroke="black"/>
              <path d="M 72,128 L 96,128" fill="none" stroke="black"/>
              <path d="M 72,176 L 96,176" fill="none" stroke="black"/>
              <path d="M 72,224 L 96,224" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="104,224 92,218.4 92,229.6" fill="black" transform="rotate(0,96,224)"/>
              <polygon class="arrowhead" points="104,176 92,170.4 92,181.6" fill="black" transform="rotate(0,96,176)"/>
              <polygon class="arrowhead" points="104,128 92,122.4 92,133.6" fill="black" transform="rotate(0,96,128)"/>
              <polygon class="arrowhead" points="104,80 92,74.4 92,85.6" fill="black" transform="rotate(0,96,80)"/>
              <g class="text">
                <text x="84" y="36">tree_node_[N]_secret</text>
                <text x="180" y="84">ExpandWithLabel(.,</text>
                <text x="308" y="84">"handshake",</text>
                <text x="376" y="84">"",</text>
                <text x="424" y="84">KDF.Nh)</text>
                <text x="112" y="100">=</text>
                <text x="252" y="100">handshake_ratchet_secret_[N]_[0]</text>
                <text x="180" y="132">ExpandWithLabel(.,</text>
                <text x="316" y="132">"application",</text>
                <text x="392" y="132">"",</text>
                <text x="440" y="132">KDF.Nh)</text>
                <text x="112" y="148">=</text>
                <text x="260" y="148">application_ratchet_secret_[N]_[0]</text>
                <text x="180" y="180">ExpandWithLabel(.,</text>
                <text x="296" y="180">"status",</text>
                <text x="352" y="180">"",</text>
                <text x="400" y="180">KDF.Nh)</text>
                <text x="112" y="196">=</text>
                <text x="240" y="196">status_ratchet_secret_[N]_[0]</text>
                <text x="180" y="228">ExpandWithLabel(.,</text>
                <text x="308" y="228">"ephemeral",</text>
                <text x="376" y="228">"",</text>
                <text x="424" y="228">KDF.Nh)</text>
                <text x="112" y="244">=</text>
                <text x="252" y="244">ephemeral_ratchet_secret_[N]_[0]</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
tree_node_[N]_secret
        |
        |
        +--> ExpandWithLabel(., "handshake", "", KDF.Nh)
        |    = handshake_ratchet_secret_[N]_[0]
        |
        +--> ExpandWithLabel(., "application", "", KDF.Nh)
        |    = application_ratchet_secret_[N]_[0]
        |
        +--> ExpandWithLabel(., "status", "", KDF.Nh)
        |    = status_ratchet_secret_[N]_[0]
        |
        +--> ExpandWithLabel(., "ephemeral", "", KDF.Nh)
             = ephemeral_ratchet_secret_[N]_[0]
]]></artwork>
        </artset>
      </figure>
      <sourcecode type="tls"><![CDATA[
struct {
    opaque group_id<V>;
    uint64 epoch;
    Sender sender;
    opaque authenticated_data<V>;

    ContentType content_type;
    select (FramedContent.content_type) {
        case application:
        case status:
        case ephemeral:
          opaque application_data<V>;
        case proposal:
          Proposal proposal;
        case commit:
          Commit commit;
    };
} FramedContent;

struct {
    /* SignWithLabel(., "FramedContentTBS", FramedContentTBS) */
    opaque signature<V>;
    select (FramedContent.content_type) {
        case commit:
            /*
              MAC(confirmation_key,
                  GroupContext.confirmed_transcript_hash)
            */
            MAC confirmation_tag;
        case application:
        case status:
        case ephemeral:
        case proposal:
            struct{};
    };
} FramedContentAuthData;

struct {
    select (PrivateMessage.content_type) {
        case application:
        case status:
        case ephemeral:
          opaque application_data<V>;

        case proposal:
          Proposal proposal;

        case commit:
          Commit commit;
    };

    FramedContentAuthData auth;
    opaque padding[length_of_padding];
} PrivateMessageContent;
]]></sourcecode>
      <t>All clients in a group need to agree on the "maximum number of steps that clients will move a secret tree ratchet forward in response to a single message before rejecting it" as described in <xref section="7" sectionFormat="of" target="RFC9750"/>.
If a client is about to exhaust that number of steps for its own <tt>status</tt> or <tt>ephemeral</tt> ratchet, it <bcp14>MUST</bcp14> send a new commit.</t>
      <t>On receipt of a <tt>PrivateMessage</tt> with a supported, non-default content type, the receiver likewise decrypts the message using the relevant ratchet.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests the addition of various new values under the heading of "Messaging Layer Security". Each registration is organized under the relevant registry Type.</t>
      <t>This document also requests the creation of a new MLS Content Types registry as described in <xref target="iana-content-types"/>.</t>
      <t>RFC EDITOR: Please replace XXXX throughout with the RFC number assigned to this document.</t>
      <section anchor="mls-extension-types">
        <name>MLS Extension Types</name>
        <section anchor="supportedcontenttypes-mls-extension">
          <name>supported_content_types MLS Extension</name>
          <t>The <tt>supported_content_types</tt> MLS Extension Type is used inside LeafNode objects. It contains a list of non-default ContentTypes supported by the client node.</t>
          <t>Value: 0x0009 (suggested)</t>
          <t>Name: supported_content_types</t>
          <t>Message(s): LN: This extension may appear in LeafNode objects</t>
          <t>Recommended: Y</t>
          <t>Reference: RFC XXXX</t>
        </section>
        <section anchor="requiredcontenttypes-mls-extension">
          <name>required_content_types MLS Extension</name>
          <t>The <tt>required_content_types</tt> MLS Extension Type is used inside GroupContext objects. It contains a list of non-default ContentTypes that are mandatory for all MLS members of the group to support.</t>
          <t>Value: 0x000a (suggested)</t>
          <t>Name: required_content_types</t>
          <t>Message(s): GC: This extension may appear in GroupContext objects</t>
          <t>Recommended: Y</t>
          <t>Reference: RFC XXXX</t>
        </section>
      </section>
      <section anchor="iana-content-types">
        <name>MLS Content Types</name>
        <t>This document requests the creation of a new IANA "MLS Content Types" registry under the "Messaging Layer Security" group registry heading. Assignments are via the Specification Required policy <xref target="RFC8126"/> using the MLS Designated Experts.</t>
        <t>Template:</t>
        <ul spacing="normal">
          <li>
            <t>Value: The numeric value of the component ID</t>
          </li>
          <li>
            <t>Name: The name of the component</t>
          </li>
          <li>
            <t>Recommended: Same as in Section 17.1 of <xref target="RFC9420"/></t>
          </li>
          <li>
            <t>Reference: The document where this content type is defined</t>
          </li>
        </ul>
        <t>Initial Contents:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">R</th>
              <th align="left">Ref</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">RESERVED</td>
              <td align="left">-</td>
              <td align="left">RFC9420</td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">application</td>
              <td align="left">Y</td>
              <td align="left">RFC9420</td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">proposal</td>
              <td align="left">Y</td>
              <td align="left">RFC9420</td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">commit</td>
              <td align="left">Y</td>
              <td align="left">RFC9420</td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">status</td>
              <td align="left">Y</td>
              <td align="left">RFCXXXX</td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">ephemeral</td>
              <td align="left">Y</td>
              <td align="left">RFCXXXX</td>
            </tr>
            <tr>
              <td align="left">0x06-</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0xff</td>
              <td align="left">UNASSIGNED</td>
              <td align="left">-</td>
              <td align="left">RFC9420</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9420.xml">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="RFC9750">
          <front>
            <title>The Messaging Layer Security (MLS) Architecture</title>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="S. Inguva" initials="S." surname="Inguva"/>
            <author fullname="A. Duric" initials="A." surname="Duric"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>The Messaging Layer Security (MLS) protocol (RFC 9420) provides a group key agreement protocol for messaging applications. MLS is designed to protect against eavesdropping, tampering, and message forgery, and to provide forward secrecy (FS) and post-compromise security (PCS).</t>
              <t>This document describes the architecture for using MLS in a general secure group messaging infrastructure and defines the security goals for MLS. It provides guidance on building a group messaging system and discusses security and privacy trade-offs offered by multiple security mechanisms that are part of the MLS protocol (e.g., frequency of public encryption key rotation). The document also provides guidance for parts of the infrastructure that are not standardized by MLS and are instead left to the application.</t>
              <t>While the recommendations of this document are not mandatory to follow in order to interoperate at the protocol level, they affect the overall security guarantees that are achieved by a messaging application. This is especially true in the case of active adversaries that are able to compromise clients, the Delivery Service (DS), or the Authentication Service (AS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9750"/>
          <seriesInfo name="DOI" value="10.17487/RFC9750"/>
        </reference>
        <reference anchor="RFC8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6120" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6120.xml">
          <front>
            <title>Extensible Messaging and Presence Protocol (XMPP): Core</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>The Extensible Messaging and Presence Protocol (XMPP) is an application profile of the Extensible Markup Language (XML) that enables the near-real-time exchange of structured yet extensible data between any two or more network entities. This document defines XMPP's core protocol methods: setup and teardown of XML streams, channel encryption, authentication, error handling, and communication primitives for messaging, network availability ("presence"), and request-response interactions. This document obsoletes RFC 3920. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6120"/>
          <seriesInfo name="DOI" value="10.17487/RFC6120"/>
        </reference>
      </references>
    </references>
    <?line 264?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
kkdkqOMrvmcRtC9Iewh1c1vPbcF1vM/XxiZlqWDqrTJR0wLVxoJ2FxVCoVQj
hCIRwIuv3ZeHz0itOrNyRaWkPghMXekOGsOdObQnaKG95uXLZOLsz9uj1znM
EXrgjJCKGgPHuLmdCiNG7rS6SaeyXLRTSutZSHkkDqsLjJuaDUgh9N2UEde6
TZBfb98N3t86AmZDh34+bvj0Zafzkp/dZ5DjF0DhXMBe7S5KPPJ+qGe4lVC9
x+/fT193B7Od5Rb0z3e8mnbr/eYPtee/23//vxxZg8qfH1qb+Bcc69LOn5/o
5vwFh1VJbct53J1XTdt2JKWbhx637azvWn1igSJSv4t6qP4k9Ixfl6S8ih+U
4DtpL0GCLu9E0W8AmxZ/XKb2ek7FtUf8VkiXvm5VaFMpjRfgcM+OIGsazNzI
0IWwi+QX9cXUrCDqSt2x8BZ3L2G3sVO2JW23gUa4Q5R2I4K69Xk7Xk5bUgRC
pYaPXvMb58eVwcrYvZobSrlrUKukbqwuq1p98ZUfq75cWeMKX33FiR3xX7jZ
j1SwGlqvFDu+9wUfqmnSRFhjxc2rIUC2OrTDv9irO0djE9gll5V2n2H0dZ1I
wCawUY9O2thlomyfCTbFjWV3ZQ79NEiXXwDcmFwkVPwyczsDuJth43WqHcUb
RxkxffFX42QrArgvFQ+P25xZFoFVp5amb9bZ/y/gPwvxnwd5+3ejoWwOaSSV
jBpRyfRdJJOpmd2mk1s/8p6s3TRgFUKWqB3T3dBeeGy3ouRm1G0gfi2mVOxT
RyRasbhXMaiu66jb3pCRWXln97vMFbaMU9f8WjY+KjpT3vyVbQZl1I63J3Fq
IUUVlQdfwUwiOf8kMgESpUxrjfU9PAw91XhO4lg28Pwp2EC3cZejdsQ4pVZO
CsY1E4X2lGtVEyJtRDuJPlW3ppUbk1fEXvzsncTxSt8iIh+CNV4m7m6SGVdf
NvNNseTau1tvdrvNJh+1reZKV12g8oLqrFbYRlyDHVadYkfLfZMaMNAqLNsu
oLmXp5fVt3aqbQavTWt0MYicS+1FKJuhpDA1uYmIu4Z3hEm8sBWRJs6ksKwY
87a/zejyM2GJqm1Gu3JO/c18inv47/D+cr+lpmXn+qak7o2Wi7vi1SS2LXMv
saj6i83XWdWe69BTIhHNNxKEOwYM8rPT/s3ldY9fRZJiviSwv+KHCHRaTGcE
x+p6T2s8FoWmKuTCr9FpoM7XEyth1SVwMtL4k223tuYCd53Z3qdY3726figL
BF72LXg6psDUXd439Xs+3erInnU0b75d8rFrJvoYJbIOFX8mtPT4/v3+/v43
vK2LKa71mL3D2MC+1NkiO2M+tNp6p8fPBz1uvb9svFBPftkTW1UDbpMUvETY
wh5/S88TmdPbgp71DrnOGXrzjXSjnbddXj9t5nrd/2xT2xRHncYY9FuYFCim
BEf9QJLAXY2r11Au8wN13sIrzhCbnLFZwaYvfjz5hC826fpf+2NDyD482RCZ
f5q61hOBTX6ttb1by3ywzD/bk5i3abXGZ74uP7ZBHtuCSQ66U8JuNax34XjZ
ZONZCiqyqDq/h88eH2uZnqQ8lY67YjJuWzI31Ci/kXEW2bferMO9LwmXyDQy
V4HLzKX7YW0UY9K0f4rpzr92NjU0VidhRsNBQ9/1gDvLinzwvHuw2lWwyyo/
0u6VQ9yLOJvxmo2gqsnAmL/elT4BnWMfnWK4n5LES1L1kV/Tr5y4J/ax436+
7DR/vmyMYZ5Fu11/Njy7/vnstNyvQ2NOEe7nHdB4/fUGPb9dn3dI4yUhLPfb
MO8rGnccYqnHhnlHNO5fbK7OszXGz3tK48v/YLB13jN6c75/P5nQ928Gx8Nh
/8eB03xVb/e6dyyCD8QRjoMPSTqPZDi1WMZN3FUxGX7XmqDgytajpxaimoks
/x+OV3IpgSIAAA==

-->

</rfc>
