<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-tls-compact-ecc-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="Compact ECDSA and ECDHE">Compact ECDHE and ECDSA Encodings for TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-mattsson-tls-compact-ecc-00"/>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <postal>
          <street>SE-164 80 Stockholm</street>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2023" month="January" day="16"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <t>The encodings used in the ECDHE groups secp256r1, secp384r1, and secp521r1 and the ECDSA signature algorithms ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, and ecdsa_secp521r1_sha512 have significant overhead and the ECDSA encoding produces variable-length signatures. This document defines new optimal fixed-length encodings and registers new ECDHE groups and ECDSA signature algorithms using these new encodings. The new encodings reduce the size of the ECDHE groups with 33, 49, and 67 bytes and the ECDSA algorithms with an average of 7 bytes. These new encodings also work in DTLS 1.3 and are especially useful in cTLS.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://emanjon.github.io/draft-mattsson-tls-compact-ecc/draft-mattsson-tls-compact-ecc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mattsson-tls-compact-ecc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/emanjon/draft-mattsson-tls-compact-ecc"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The encodings used in the ECDHE groups secp256r1, secp384r1, and secp521r1 and the ECDSA signature algorithms ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, and ecdsa_secp521r1_sha512 have significant overhead and the ECDSA encodings produces variable-length signatures. This document defines new optimal fixed-length encodings and registers new ECDHE groups and ECDSA signature algorithms using these new encodings. The new encodings reduce the size of the ECDHE groups with 33, 49, and 67 bytes and the ECDSA algorithms with an average of 7 bytes. These new encodings also work in DTLS 1.3 <xref target="RFC9147"/> and are especially useful in cTLS <xref target="I-D.ietf-tls-ctls"/>.</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>
    </section>
    <section anchor="compact-ecdhe-encoding">
      <name>Compact ECDHE Encoding</name>
      <t>The encoding of the ECDHE groups secp256r1, secp384r1, and secp521r1 have significant overhead. This document specifies a new optimal fixed-length encoding for the groups. The new encoding is defined as a compression of the UncompressedPointRepresentation structure. Given a UncompressedPointRepresentation structure</t>
      <artwork><![CDATA[
      struct {
          uint8 legacy_form = 4;
          opaque X[coordinate_length];
          opaque Y[coordinate_length];
      } UncompressedPointRepresentation;
]]></artwork>
      <t>the legacy_form and Y field are omitted to create a CompactRepresentation structure.</t>
      <artwork><![CDATA[
      struct {
          opaque X[coordinate_length];
      } CompactRepresentation;
]]></artwork>
      <t>The resulting groups are called secp256r1_compact, secp384r1_compact, and secp521r1_compact. The new encodings have CompactRepresentation structures of length 32, 48, and 66 bytes, and reduce the size with 33, 49, and 67 bytes respectively. For secp256r1_compact, secp384r1_compact, and secp521r1_compact the opaque key_exchange field contains the serialized value of the CompactRepresentation struct:</t>
      <table anchor="ecdhe-table">
        <name>Compact ECDHE Groups</name>
        <thead>
          <tr>
            <th align="right">Value</th>
            <th align="left">Description</th>
            <th align="right">Recommended</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">TBD1</td>
            <td align="left">secp256r1_compact</td>
            <td align="right">Y</td>
            <td align="left">[This-Document]</td>
          </tr>
          <tr>
            <td align="right">TBD2</td>
            <td align="left">secp384r1_compact</td>
            <td align="right">Y</td>
            <td align="left">[This-Document]</td>
          </tr>
          <tr>
            <td align="right">TBD3</td>
            <td align="left">secp521r1_compact</td>
            <td align="right">Y</td>
            <td align="left">[This-Document]</td>
          </tr>
        </tbody>
      </table>
      <section anchor="example-compact-ecdhe-encoding">
        <name>Example Compact ECDHE Encoding</name>
        <t>The following shows an example compact ECDHE encoding. <xref target="ecdhe-old"/> shows a 65 bytes ecdsa_secp256r1_sha256 UncompressedPointRepresentation structure.</t>
        <figure anchor="ecdhe-old">
          <name>secp256r1</name>
          <artwork><![CDATA[
04 A6 DA 73 92 EC 59 1E 17 AB FD 53 59 64 B9 98
94 D1 3B EF B2 21 B3 DE F2 EB E3 83 0E AC 8F 01
51 81 26 77 C4 D6 D2 23 7E 85 CF 01 D6 91 0C FB
83 95 4E 76 BA 73 52 83 05 34 15 98 97 E8 06 57
80
]]></artwork>
        </figure>
        <t><xref target="ecdhe-new"/> shows the 32 bytes secp256r1_compact CompactRepresentation structure encoding of the same key share.</t>
        <figure anchor="ecdhe-new">
          <name>secp256r1_compact</name>
          <artwork><![CDATA[
A6 DA 73 92 EC 59 1E 17 AB FD 53 59 64 B9 98 94
D1 3B EF B2 21 B3 DE F2 EB E3 83 0E AC 8F 01 51
]]></artwork>
        </figure>
      </section>
      <section anchor="implementation-considerations-for-compact-representation">
        <name>Implementation Considerations for Compact Representation</name>
        <t>For compatibility with APIs a compressed y-coordinate might be required. For validation or for compatibility with APIs that do not support the full <xref target="SECG"/> format an uncompressed y-coordinate might be required:</t>
        <ul spacing="normal">
          <li>If a compressed y-coordinate is required, then the value ~yp set to zero can be used. The compact representation described above can in such a case be transformed into the SECG point compressed format by prepending X with the single byte 0x02 (i.e., M = 0x02 || X).</li>
          <li>If an uncompressed y-coordinate is required, then a y-coordinate has to be calculated following Section 2.3.4 of <xref target="SECG"/> or Appendix C of <xref target="RFC6090"/>. Any of the square roots (see <xref target="SECG"/> or <xref target="RFC6090"/>) can be used. The uncompressed SECG format is M = 0x04 || X || Y.</li>
        </ul>
        <t>For example: The curve P-256 has the parameters (using the notation in <xref target="RFC6090"/>)</t>
        <ul spacing="normal">
          <li>p = 2<sup>256</sup> - 2<sup>224</sup> + 2<sup>192</sup> + 2<sup>96</sup> - 1</li>
          <li>a = -3</li>
          <li>b = 410583637251521421293261297800472684091144410159937255
54835256314039467401291</li>
        </ul>
        <t>Given an example x:</t>
        <ul spacing="normal">
          <li>x = 115792089183396302095546807154740558443406795108653336
398970697772788799766525</li>
        </ul>
        <t>we can calculate y as the square root w = (x<sup>3</sup> + a <contact fullname="⋅"/> x + b)<sup>((p + 1)/4)</sup> (mod p)</t>
        <ul spacing="normal">
          <li>y = 834387180070192806820075864918626005281451259964015754
16632522940595860276856</li>
        </ul>
        <t>Note that this does not guarantee that (x, y) is on the correct elliptic curve. A full validation according to Section 5.6.2.3.3 of <xref target="SP-800-56A"/> can be achieved by also checking that 0 <contact fullname="≤"/> x &lt; p and that y<sup>2</sup> <contact fullname="≡"/> x<sup>3</sup> + a <contact fullname="⋅"/> x + b (mod p).</t>
      </section>
    </section>
    <section anchor="compact-ecdsa-encoding">
      <name>Compact ECDSA Encoding</name>
      <t>The variable-length encoding of the ECDSA signature algorithms ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, and ecdsa_secp521r1_sha512 specified in <xref target="RFC8446"/> have significant overhead.</t>
      <t>This document specifies a new optimal fixed-length encoding for the algorithms. The new encoding is defined as a compression of the DER-encoded ECDSA-Sig-Value structure. Given a DER-encoded ECDSA-Sig-Value structure</t>
      <artwork><![CDATA[
           Ecdsa-Sig-Value ::= SEQUENCE {
               r       INTEGER,
               s       INTEGER
           }
]]></artwork>
      <t>the SEQUENCE type, INTEGER type, and length fields are omitted and if necessary the two INTEGER value fields are truncated or left padded with zeroes to the fixed length L. For secp256r1, secp384r1, and secp521r1, L is 32, 48, and 66 bytes respectively. The resulting signatures are called ecdsa_secp256r1_sha256_compact, ecdsa_secp384r1_sha384_compact, and ecdsa_secp521r1_sha512_compact and has length 64, 96, and 132 bytes respectively. The new encodings reduce the size of the signatures with an average of 7 bytes. For secp256r1_compact, secp384r1_compact, and secp521r1_compact the opaque signature field contains the compressed Ecdsa-Sig-Value.</t>
      <table anchor="ecdsa-table">
        <name>Compact ECDSA Signature Algorithms</name>
        <thead>
          <tr>
            <th align="right">Value</th>
            <th align="left">Description</th>
            <th align="right">Recommended</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">TBD4</td>
            <td align="left">ecdsa_secp256r1_sha256_compact</td>
            <td align="right">Y</td>
            <td align="left">[This-Document]</td>
          </tr>
          <tr>
            <td align="right">TBD5</td>
            <td align="left">ecdsa_secp384r1_sha384_compact</td>
            <td align="right">Y</td>
            <td align="left">[This-Document]</td>
          </tr>
          <tr>
            <td align="right">TBD6</td>
            <td align="left">ecdsa_secp521r1_sha512_compact</td>
            <td align="right">Y</td>
            <td align="left">[This-Document]</td>
          </tr>
        </tbody>
      </table>
      <section anchor="example-compact-ecdsa-encoding">
        <name>Example Compact ECDSA Encoding</name>
        <t>The following shows an example compact ECDSA encoding. <xref target="ecdsa-old"/> shows a 71 bytes DER encoded ecdsa_secp256r1_sha256 ECDSA-Sig-Value structure. The values on the left are the ASN.1 tag (in hexadecimal) and the length (in decimal).</t>
        <figure anchor="ecdsa-old">
          <name>ecdsa_secp256r1_sha256</name>
          <artwork><![CDATA[
30  69: SEQUENCE {
02  33:  INTEGER
          00 D7 A4 D3 4B D5 4F 55 FE E1 A8 96 25 67 8C 3D
          D5 E5 F6 0D AC 73 EC 94 0C 5C 7B 93 04 A0 20 84
          A9
02  32:  INTEGER
          28 9F 59 5E D4 88 B9 AC 68 9A 3D 19 2B 1A 8B B3
          8F 34 AF 78 74 C0 59 C9 80 6A 1F 38 26 93 53 E8
          }
]]></artwork>
        </figure>
        <t><xref target="ecdsa-new"/> shows the 64 bytes ecdsa_secp256r1_sha256_compact encoding of the same signature.</t>
        <figure anchor="ecdsa-new">
          <name>ecdsa_secp256r1_sha256_compact</name>
          <artwork><![CDATA[
          D7 A4 D3 4B D5 4F 55 FE E1 A8 96 25 67 8C 3D D5
          E5 F6 0D AC 73 EC 94 0C 5C 7B 93 04 A0 20 84 A9
          28 9F 59 5E D4 88 B9 AC 68 9A 3D 19 2B 1A 8B B3
          8F 34 AF 78 74 C0 59 C9 80 6A 1F 38 26 93 53 E8
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Compact representation of ECDHE key shares does not change any requirements on point validation. Using compact representation has some security benefits. As described in <xref target="SafeCurves"/> it helps to protect against invalid-curve attacks as an implementation will naturally detect invalid inputs when it reconstructs the missing coordinate. As not even the sign of the y-coordinate is encoded, compact representation trivially avoids so called "benign malleability" attacks where an attacker changes the sign, see <xref target="SECG"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to update the TLS Supported Groups registry <xref target="RFC8447"/> under the Transport Layer Security (TLS) Parameters heading with the contents of <xref target="ecdhe-table"/>.</t>
      <t>IANA is requested to update the TLS SignatureScheme registry <xref target="RFC8447"/> under the Transport Layer Security (TLS) Parameters heading with the contents of <xref target="ecdsa-table"/>.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8447" target="https://www.rfc-editor.org/info/rfc8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy.  These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6090" target="https://www.rfc-editor.org/info/rfc6090">
          <front>
            <title>Fundamental Elliptic Curve Cryptography Algorithms</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <author fullname="K. Igoe" initials="K." surname="Igoe">
              <organization/>
            </author>
            <author fullname="M. Salter" initials="M." surname="Salter">
              <organization/>
            </author>
            <date month="February" year="2011"/>
            <abstract>
              <t>This note describes the fundamental algorithms of Elliptic Curve Cryptography (ECC) as they were defined in some seminal references from 1994 and earlier.  These descriptions may be useful for implementing the fundamental algorithms without using any of the specialized methods that were developed in following years.  Only elliptic curves defined over fields of characteristic greater than three are in scope; these curves are those used in Suite B. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6090"/>
          <seriesInfo name="DOI" value="10.17487/RFC6090"/>
        </reference>
        <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="I-D.ietf-tls-ctls" target="https://www.ietf.org/archive/id/draft-ietf-tls-ctls-07.txt">
          <front>
            <title>Compact TLS 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Google</organization>
            </author>
            <date day="3" month="January" year="2023"/>
            <abstract>
              <t>   This document specifies a "compact" version of TLS and DTLS.  It is
   logically isomorphic to ordinary TLS, but saves space by trimming
   obsolete material, tighter encoding, a template-based specialization
   technique, and alternative cryptographic techniques. cTLS is not
   directly interoperable with TLS or DTLS, but it should eventually be
   possible for a single server port to offer cTLS alongside TLS or
   DTLS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ctls-07"/>
        </reference>
        <reference anchor="SECG" target="https://www.secg.org/sec1-v2.pdf">
          <front>
            <title>Standards for Efficient Cryptography 1 (SEC 1)</title>
            <author>
              <organization/>
            </author>
            <date year="2009" month="May"/>
          </front>
        </reference>
        <reference anchor="SafeCurves" target="https://safecurves.cr.yp.to/twist.html">
          <front>
            <title>SafeCurves: choosing safe curves for elliptic-curve cryptography</title>
            <author>
              <organization/>
            </author>
            <date year="2017" month="January"/>
          </front>
        </reference>
        <reference anchor="SP-800-56A" target="https://doi.org/10.6028/NIST.SP.800-56Ar3">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography</title>
            <author initials="E." surname="Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author initials="A." surname="Vassilev">
              <organization/>
            </author>
            <author initials="R." surname="Davis">
              <organization/>
            </author>
            <date year="2018" month="April"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-56A Revision 3"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
PA97a9pSmcVahWhFJc416dMSWx/dSyjsNTQhgP70l3/+hwfowz3uB6/khKOj
OW7MVyfOq3Lq0Swd0lyKYoWFfNux/ZYJaFoGoPYNz7dw7fqeg2N5lmcYruWb
jmtawMoDKm7LdTTT82zLtawAhwww2bBanu96mnaZFkI5r7I4524OmB6Df5Rw
onx4dH9Mq1esf6lyLlGaZTCSdZNeaRssQHm8muMMo0ia3ZgNrjIsV/d0Ni67
NK51zx5wlOYQRpNY3MEA4DFkKyWaiOijUllwZEgA/+k/FIBfQ09V4waPVko1
SwDltH+X056TQQW2vlMq196hqsxrt0O2p3T+BVp8VRk9XNstv3PCYZ4uxJn9
v74S3xzn51Xjvf51U84XZdOveROPmyr531OJv2j6c3Wl/OszkDXqdvs1/Ovv
3vUvu/2tklP+ZeXv+eVt/5v+9fHu83z7ef3xw+Gier0nvxc+rhYo71jiJfKy
tsq3am1+Go8AeQRM+b0Xr1cs0/UiKuzXKIFQEskAB/FNxahAFBgyljL0clIg
ZDCU6QrLvdr9YqdofLr1c0wXLPd9RetOFbpddm86y/XSe7+JbOrT/aayXb/u
N5l1ds1TOCaWJ/VgaIGnKM11Uv6Y8xf1mWuHOtQy/h+sxzeOZk8xXksldtRf
/9klt4PBw1I6XEy7W/T7pHiY3tui3yvhZypz4PBUZQ7PfbMGtLN2dS+u0x9F
i5fV6bV3MWWdDh636/SWWWomPCJVHvGJmv2AX72tioN1NJdeQfoK3HRuLnWT
inCMDJxb5PfhEEECUeHV+t1IaTb8vHp2oOK0DSIvaNc9LdJ5su32Pt9pGNRD
NYoS3ibnlKArzhm5Lp31qW9SBzWpR5bLXS6/S3avRompfczzyOhxRYoSF/Vt
4HDB7+L2lAIUqw51DLIM8p0aZSdQHFl7ObKw5xmXxW6foPq+z8UxNvAw3gEL
ZAZknZLZIf8U9XGNEkWxjQ3PqOVTy6Guwat0A/4MxeuQiac+tyzAF+ruvl+j
fDqAbBS41m3YrwTr1gMm77YeUOIf6vms7Whvn2HtcJ5t50q5fIE4MaFG+SXi
ZCH+b8jseTnV+h2HwWZ5IfOsPhzbaXtoWnd/qQ7JqD7fuv1TS+TLLm2IyrQs
idkTSstXJfomVdfL71ae6AhwvMxTln7F30AkyPQKBLNOTltv7ZDSrz/xgdrF
BfzIdC7TjHmGkoND8JhDFGraRHJQfuUTFkUYfcxl6oh6dLsNtIxRWkjFk+9K
h0IuVC6A3/kCB+P3f7whyhOAJr2e0nj5MaI8XtUGkHwzSOKu7JmwYleavttR
KB3u8VP4FFl8p17ihndpPGSwqoymAaR45Rnfhqp51FifdcmvIWWaIAdEVgot
X7PEacGmgaBLLTnvXHYeaYgcLLsfIi/fzSzm/NmNXIzfKd+o9hSeqQZ0+Voe
qWRVQ/C76QViv8r2n/qukY6w2iu62rQUuMRghNc9HU5ElLaN1q1nGXblIV7E
bOVp1KdVvySvVYogeeVvRAYQDiPfiT4m6ZI/A5WmBEtXH6uK4evGCKWqYDu+
fdt7ixq2mglP+d9JC5jnqysAAA==

-->

</rfc>
