<?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 4.0.5) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mls-ratchet-tree-options-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Ratchet tree options in MLS">Ways to convey the Ratchet Tree in Messaging Layer Security</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mls-ratchet-tree-options-01"/>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>ratchet_tree</keyword>
    <keyword>GroupInfo</keyword>
    <keyword>PartialGroupInfo</keyword>
    <abstract>
      <?line 37?>

<t>The Messaging Layer Security (MLS) protocol needs to share its
<tt>ratchet_tree</tt> object to welcome new clients into a group and in
external joins. While the protocol only defines a mechanism for sharing
the entire tree, most implementations use various optimizations to avoid
sending this structure repeatedly in large groups. This document describes
a way to convey these improvements in a standardized way and to
convey the parts of a GroupInfo object that are not visible to an
intermediary server.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://messaginglayersecurity.rocks/mls-ratchet-tree-options/draft-ietf-mls-ratchet-tree-options.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-mls-ratchet-tree-options/"/>.
      </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/mlswg/mls-ratchet-tree-options"/>.</t>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the Messaging Layer Security (MLS) protocol <xref target="RFC9420"/>, the members of
a group are organized into a ratchet tree, the full representation of which
is described in the <tt>ratchet_tree</tt> extension. The protocol specifies that
the full <tt>ratchet_tree</tt> can be included in Welcome messages or shared
externally, but describes no concrete way to convey it externally.
Likewise, when non-member clients want to join a group, they can do so using
an external commit. They require the GroupInfo and the <tt>ratchet_tree</tt>.</t>
      <t>Many MLS implementations allow external commits to get the GroupInfo from a
central server. In the MIMI architecture <xref target="I-D.ietf-mimi-arch"/>, this server
is called the hub, and for brevity we will use that term generically to refer
to any central server that provides either GroupInfo or <tt>ratchet_tree</tt>
objects to new members (i.e. welcomed clients or externally joining clients).</t>
      <t>When all handshake messages (commits and proposals) are sent as
<tt>PublicMessage</tt>s (or <tt>SemiPrivateMessage</tt>s
<xref target="I-D.mahy-mls-semiprivatemessage"/>),
the hub can construct its own version of the <tt>ratchet_tree</tt> and most of the
GroupInfo object as proposals and commits arrive.</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>This document assumes familiarity with terms and structs from the MLS specification (<xref target="RFC9420"/>).</t>
    </section>
    <section anchor="conveying-the-ratchet-tree">
      <name>Conveying the Ratchet Tree</name>
      <t>The ratchet tree can be conveyed inline in its entirety. Alternatively,
this document describes how it can be referred to via an HTTPS URI, or
signaled that it is communicated out-of-band or reconstructed by the distribution service.</t>
      <sourcecode type="tls"><![CDATA[
enum {
  reserved(0),
  full(1),
  httpsUri(2),
  outOfBand(3),
  distributionService(4),
  (255)
} RatchetTreeRepresentation;

struct {
  RatchetTreeRepresentation representation;
  select (representation) {
    case full:
      Node ratchet_tree<V>;
    case httpsUrl:
      /* an HTTPS URL */
      opaque ratchet_tree_url<V>;
    case outOfBand:
      struct {};
    case distributionService:
      struct {};
  };
} RatchetTreeOption;
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t><tt>full</tt> indicates that the complete <tt>ratchet_tree</tt> extension is included in
the RatchetTreeOption object.</t>
        </li>
        <li>
          <t><tt>httpsUri</tt> indicates that the <tt>ratchet_tree</tt> can be downloaded from a
URI using the <tt>https:</tt> scheme.</t>
        </li>
        <li>
          <t><tt>outOfBand</tt> indicates that the <tt>ratchet_tree</tt> is communicated or
reconstructed via an unspecified out-of-band application protocol.</t>
        </li>
        <li>
          <t><tt>distributionService</tt> indicates that the <tt>ratchet_tree</tt> is reconstructed
by the Distribution Service (DS) from the handshake in the group. This is not
possible if any handshake messages are sent as an MLS <tt>PrivateMessage</tt>.</t>
        </li>
      </ul>
      <section anchor="conveying-the-ratchet-tree-using-https">
        <name>Conveying the ratchet tree using HTTPS</name>
        <t>This document defines a new MLS GroupContext extension <tt>ratchet_tree_source_domains</tt>.
When present, it contains a list of at least one domain name.</t>
        <sourcecode type="tls"><![CDATA[
struct {
    opaque domain<V>;
} Domain;

struct {
    Domain domains<V>
} DomainList;

DomainList ratchet_tree_source_domains;
]]></sourcecode>
        <t>When this extension is included in the GroupContext of a group, the URL where the <tt>ratchet_tree</tt> is fetched <bcp14>MUST</bcp14> come from one of the domains in the <tt>ratchet_tree_source_domains.domains</tt> list.</t>
      </section>
    </section>
    <section anchor="conveying-the-groupinfo">
      <name>Conveying the GroupInfo</name>
      <t>In some systems the GroupInfo is sent to a hub with a full <tt>ratchet_tree</tt>
extension always included with every commit. This is used in systems where
the hub may or may not track the membership of the group, but does not keep
the entire <tt>ratchet_tree</tt> data structure. As group size increases, the size
of the <tt>ratchet_tree</tt> extension in the GroupInfo scales roughly linearly.
Even using <tt>basic</tt> credentials, this object gets large quickly. If <tt>x509</tt>
credentials are used, the size increases much more rapidly, and if a
post-quantum ciphersuite (for example <xref target="I-D.ietf-mls-pq-ciphersuites"/>) is
used, the size will increase even more rapidly with each new member.</t>
      <t>In some systems that require unencrypted handshake messages, the hub tracks
commits as they are sent and constructs changes to the <tt>ratchet_tree</tt> as
each handshake is accepted. The hub could also recreate most of the fields
of a GroupInfo, with the exception of the GroupInfo signature and the
GroupInfo extensions, by inspecting those same unencrypted handshake
messages . This document defines a <tt>PartialGroupInfo</tt> struct that contains
these missing fields. <tt>PartialGroupInfo</tt> can be included with a commit and
any referenced proposals to reconstruct a GroupInfo and <tt>ratchet_tree</tt> from
the GroupInfo and <tt>ratchet_tree</tt> included in the previous epoch.</t>
      <sourcecode type="tls"><![CDATA[
enum {
  no_ratchet_tree(0),
  present(1),
  removed(2),
  added(3),
  (255)
} RatchetTreePresence;

struct {
  RatchetTreePresence ratchet_tree_presence;
  /* GroupInfo extensions excluding ratchet_tree */
  Extension group_info_extensions<V>;
  opaque signature<V>;
} PartialGroupInfo;
]]></sourcecode>
      <t>The value of <tt>ratchet_tree_presence</tt> is defined as follows:</t>
      <ul spacing="normal">
        <li>
          <t><tt>no_ratchet_tree</tt>: the <tt>ratchet_tree</tt> extension appears in neither the
current nor previous epochs.</t>
        </li>
        <li>
          <t><tt>present</tt>: there is a <tt>ratchet_tree</tt> extension in both the current and
previous epochs.</t>
        </li>
        <li>
          <t><tt>removed</tt>: there was a <tt>ratchet_tree</tt> extension in the previous epoch
but none in the current epoch.</t>
        </li>
        <li>
          <t><tt>added</tt>: there is a <tt>ratchet_tree</tt> extension in the current epoch
but there was none in the previous epoch.</t>
        </li>
      </ul>
      <t>The <tt>group_info_extensions</tt> object is the list of GroupInfo
extensions, omitting any <tt>ratchet_tree</tt> extension (if present). The only
other GroupInfo extension defined in the base protocol is <tt>external_pub</tt>,
the public key of the external commiter. The <tt>group_info_extensions</tt> is
often an empty list.</t>
      <t>The <tt>signature</tt> in the PartialGroupInfo is the signature produced by the
committer (represented by its leaf index in the GroupInfo as the <tt>signer</tt>).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations of the MLS protocol <xref target="RFC9420"/> and the MLS architecture <xref target="RFC9750"/> apply.</t>
      <t>The integrity of the ratchet tree is assured using the MLS <tt>GroupContext.tree_hash</tt> (see <xref section="7.8" sectionFormat="of" target="RFC9420"/>).
The tree hash allows the receiver to verify that the ratchet tree is valid whether it is transmitted in the <tt>ratchet_tree</tt> extension or out-of-band.</t>
      <t>In some systems such as the MIMI protocol <xref target="I-D.ietf-mimi-protocol"/>, the DS receives a GroupInfo with each tentative commit message.
The DS cannot verify the correctness of a GroupInfo because it does not have the <tt>GroupInfo.extensions</tt>.
This is no different with a partial GroupInfo message.
In both partial and full GroupInfo presentations, given a specific <tt>GroupInfo.signature</tt>, the DS can merely verify that the extensions and the signature are consistent with each other and with the GroupContext.</t>
      <t>When the <tt>ratchet_tree_source_domains</tt> is set, the client will only download the ratchet tree from one of the domains in that list.
This prevents an intermediate protocol from providing an unauthorized domain to clients fetching the ratchet tree over HTTPS.
A malicious server could otherwise give the domain of a proxy, so that it could infer when clients are joining various groups, or build a social graph of users in the same group.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="ratchettreesourcedomains-mls-extension-type">
        <name>ratchet_tree_source_domains MLS Extension Type</name>
        <t>This document registers the <tt>ratchet_tree_source_domains</tt> Extension Type, using the template below:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD1 (new assignment by IANA)</t>
          </li>
          <li>
            <t>Name: ratchet_tree_source_domains</t>
          </li>
          <li>
            <t>Messages: GC</t>
          </li>
          <li>
            <t>Recommended: Y</t>
          </li>
          <li>
            <t>Reference: RFC XXXX</t>
          </li>
        </ul>
      </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-mimi-arch" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mimi-arch.xml">
          <front>
            <title>An Architecture for More Instant Messaging Interoperability (MIMI)</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>The More Instant Messaging Interoperability (MIMI) working group is defining a suite of protocols that allow messaging providers to interoperate with one another. This document lays out an overall architecture enumerating the MIMI protocols and how they work together to enable an overall messaging experience.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-arch-02"/>
        </reference>
        <reference anchor="I-D.mahy-mls-semiprivatemessage">
          <front>
            <title>Semi-Private Messages in the Messaging Layer Security (MLS) Protocol</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="19" month="April" year="2026"/>
            <abstract>
              <t>   This document defines a SemiPrivateMessage for the Messaging Layer
   Security (MLS) protocol.  It allows members to share otherwise
   private commits and proposals with a designated list of external
   receivers rather than send these handshakes in a PublicMessage.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-semiprivatemessage-07"/>
        </reference>
        <reference anchor="I-D.ietf-mls-pq-ciphersuites">
          <front>
            <title>ML-KEM and Hybrid Cipher Suites for Messaging Layer Security</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
         </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
         </author>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   This document registers new cipher suites for Messaging Layer
   Security (MLS) based on "post-quantum" algorithms, which are intended
   to be resilient to attack by quantum computers.  These cipher suites
   are constructed using the new Module-Lattice Key Encapsulation
   Mechanism (ML-KEM), optionally in combination with traditional
   elliptic curve KEMs, together with appropriate authenticated
   encryption, hash, and signature algorithms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-pq-ciphersuites-05"/>
        </reference>
        <reference anchor="I-D.ietf-mimi-protocol">
          <front>
            <title>More Instant Messaging Interoperability (MIMI) using HTTPS and MLS</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Matthew Hodgson" initials="M." surname="Hodgson">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <author fullname="Travis Ralston" initials="T." surname="Ralston">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="25" month="April" year="2026"/>
            <abstract>
              <t>   This document specifies the More Instant Messaging Interoperability
   (MIMI) transport protocol, which allows users of different messaging
   providers to interoperate in group chats (rooms), including to send
   and receive messages, share room policy, and add participants to and
   remove participants from rooms.  MIMI describes messages between
   providers, leaving most aspects of the provider-internal client-
   server communication up to the provider.  MIMI integrates the
   Messaging Layer Security (MLS) protocol to provide end-to-end
   security assurances, including authentication of protocol
   participants, confidentiality of messages exchanged within a room,
   and agreement on the state of the room.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-protocol-06"/>
        </reference>
        <reference anchor="I-D.robert-mimi-delivery-service">
          <front>
            <title>MIMI Delivery Service</title>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="6" month="November" year="2023"/>
            <abstract>
              <t>   This document describes the MIMI Delivery Service.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-robert-mimi-delivery-service-06"/>
        </reference>
      </references>
    </references>
    <?line 247?>

<section anchor="change-log">
      <name>Change Log</name>
      <section anchor="changes-between-ietf-00-and-01">
        <name>Changes between ietf-...-00 and -01</name>
        <ul spacing="normal">
          <li>
            <t>Added note in Security Considerations with motivation for <tt>ratchet_tree_source_domain</tt> extension.</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-draft-mahy-04-and-draft-ietf-00">
        <name>Changes between draft-mahy-...-04 and draft-ietf-...-00</name>
        <ul spacing="normal">
          <li>
            <t>No changes except for renaming the draft</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-03-and-04">
        <name>Changes between -03 and -04</name>
        <ul spacing="normal">
          <li>
            <t>Added Security Considerations</t>
          </li>
          <li>
            <t>Removed unneeded tree_signature</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-02-and-03">
        <name>Changes between -02 and -03</name>
        <ul spacing="normal">
          <li>
            <t>No changes except for the publication dates</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-01-and-02">
        <name>Changes between -01 and -02</name>
        <ul spacing="normal">
          <li>
            <t>Added ratchet_tree_source_domains extension</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-00-and-01">
        <name>Changes between -00 and -01</name>
        <ul spacing="normal">
          <li>
            <t>Removed ratchet tree patch options and notation.</t>
          </li>
          <li>
            <t>Added <tt>ratchet_tree_presence</tt> options for out-of-band, via HTTPS, and
reconstructed by the delivery service.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The PartialGroupInfo was first introduced in
<xref target="I-D.robert-mimi-delivery-service"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA41a23IbNxJ9x1dg5RcpJVKX2JWYySarWE6iKvmykhxvKpUS
wRmQRDQzGA9mRDMu5Vv2W/bL9nQDcyWp2A8WB4NLo9F9+nRjRqORKE2Z6Il8
r9ZOllZGNrvXa1kutbxSZbTUpbwptJYmk6+0c2phsoW8VGtdyGsdVYUp10LN
ZoW+nzQDShpg89LYzPHAy2sR2yhTKRaKCzUvR0aX81GauFHhx4xozCiMGR2f
CJMXE0xUufL0+Pj58alw1Sw1zuF9uc4xz8XLmx+lfCJV4uxE7pks1rnGf1m5
dyj3Ls5+wB9b4NfVzY97YmWLu0Vhqxxdd+1jT6hCK3RoGyJV6oUt1hNsY27F
nV5jongi5EgGwW9JcHr+iWa/oF54eKuK0qikbROuVFl8qxKbQfa1diI3E/lb
aaND6WyBSeYOv9Yp/fhdiHudVRrryL8XWkqvkL332CN14FWpPVUmQTvU/C/S
99gWC2pWRbRE87Isczc5OqJe1GTu9bjudkQNR7PCrpw+wvgjGrcw5bKa+QlX
i6Ndp0ddE+jNld1FavETkt4F4ceFje7czpmOPsNWxssyTfaEUFW5tAWfDM7K
wRjH8pVariGMlN7yruxSZW0jtqky86eiabov5QtMWyUlqfJaF/cmwmnRAO31
WVBP1tS/FtQyjmwqRGaLFFPd49AE2Ur7JEajkVQzVxYqKoW4gWftOky5D1c5
kHlhYRg2kZnWMXulW8I0pSmdmHbtbirt7A8dldRlpRMIojFmJaPEwA/I9/BC
eRuSsD80CP2x1EWmEvmHhZ7G8v3SJJr9vVnWZslaxnpuMu0wPNURdmxcKrEt
FgWSCxqBRQzkIlEOZWpdKU2aJzpFu/LeXzkt7zHAVo4RIQ0K512pe2ti4eC1
pIpyaZyElqqorDBpAXeGFcUQBRACC11ovxHIfENdgSgVrQRJXVSYGU5JyZVa
91EM60Omwt6zVAxHSrIzqiI2f+qYh5BuSis64JfDgyHyHL0bL260vVSlpAPJ
bCnvjTMz0iD2k+Hood1Ux0YVa+lgPboYewtITRwnWogn8iIrCxtjm9CDEBcZ
r/e5JvHp0z+ufnzx/Onp8cPDIY9MdTqDS0FW0Rw1ZAvmrePaCooOOvuR8ypJ
SM8FtBROjHa8WppoKUjDQbE0BQ8YGB+ZUkaITCfSsR+X68jMDYyHNCWapQbD
IzjcjCJLlFSxX+R9MGIPF5ggGJyOG7tN1odyVnVOHadA5x0VutSD8zelbIeN
xaW50yvjsPvVUmcYl4288hqHWamMnYl8o3Yc1tWapY3hiRY2TfaPx8aVIHNq
StbCGgr9ULFXYNut6bCFbagQtvFKZWuKkBuuA5ntargG+82CTrE3+7ywqVQi
wugCfYPhydq2Ll5dMOqbUnvn+vTp+4vR+dgjK5xyRG+9QZET8nCygAhCaC84
oP+Qd0EgQPGejHMFjRucLLk5ewVZP+TLdGFoLB8GQhpmY/+AGnsi+kHkngbn
KTUiDBo7DlcMFCa8C7IaCOlq4983Yz2uMTBuzhPjWwPgUyUPC28PoP33ZAh4
KYFwMSztrmN7+7XKadeQMbcOZOOAvYscRirA8dtqlpjIe6+eYhCJfK1T87Yw
98Cv5o0IOk8RYjiaOXTKfaew5MPDwaEIumZ7gxl7QCTol3aVSejMBTfd4pAk
KMOwfy02kEu5diPcu9liUVD8J3h6Qb6TBRtEl3MKBIafffQCC5JEgxxYybvr
G6Jb9Fe+fsO/r17++93F1ctz+n3989nlZfNDhB7XP795d3ne/mpHvnjz6tXL
1+d+MFplr0nsvTr7dc9b4d6btzcXb16fXe55cOoGBDog2AdjCw4/J2SI6bR6
gPbDi7f/++/J04Copycnzx8ewsPXJ189xQOhhF+NI6J/JDAQKkdwKjiYwHYi
lZsSGj0k/bolnRPMmLT5xW+kmd8n8ttZlJ88/S400IZ7jbXOeo2ss82WjcFe
iVuatizTaLPXPtB0X96zX3vPtd47jd9+n4AqyNHJ199/J8hGeofhHH44OVep
SRAWGTbg5wwV3sK8jTuPYgxYgMMQRCIflva7ce+gtdO1Zw79ZMWbaTfe1bHG
xwU+fxYZB0jW73kM+Kg8SxgtiLoh0IhyO9GQOGMKLmFWBriCcNKCDijsSf58
c/P2Wr67uqAkRDizAAIxkCryZUnQCs+rMtof2m1Vjux8NGNbKzBh4/l4OfOM
JDZoMQh9pA/niSkU8ddff8kycQIJQyo/gahSNAe2xvvHQBPJkXf/hH8yGX9X
mP1TfsSib+Y/YMn9L/m5u0AgvvtP+c3+6bNnB+KhVjLp+KpHG76hBIeBiiTY
2W1ANr5BX6cTAqb9/psDnkdCwc5zhwk/SvnaxrqXen37y3fftF3DDpvuR190
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

-->

</rfc>
