<?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.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-reliable-stream-reset-09" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>QUIC Stream Resets with Partial Delivery</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-reliable-stream-reset-09"/>
    <author initials="M." surname="Seemann" fullname="Marten Seemann">
      <organization/>
      <address>
        <email>martenseemann@gmail.com</email>
      </address>
    </author>
    <author fullname="奥一穂" asciiFullname="Kazuho Oku">
      <organization>Fastly</organization>
      <address>
        <email>kazuhooku@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="04"/>
    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 39?>

<t>QUIC defines a RESET_STREAM frame to abort sending on a stream. When a sender
resets a stream, it also stops retransmitting STREAM frames for this stream in
the event of packet loss. On the receiving side, there is no guarantee that any
data sent on that stream is delivered.</t>
      <t>This document defines a new QUIC frame, the RESET_STREAM_AT frame, that allows
resetting a stream, while guaranteeing delivery of stream data up to a certain
byte offset.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://quicwg.github.io/reliable-stream-reset/draft-ietf-quic-reliable-stream-reset.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-quic-reliable-stream-reset/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        QUIC Working Group mailing list (<eref target="mailto:quic@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/quic/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/quicwg/reliable-stream-reset"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>QUIC version 1 (<xref target="RFC9000"/>) allows streams to be reset.  When a stream is
reset, the sender does not retransmit stream data for the respective stream. On
the receiving side, the QUIC stack is free to surface the stream reset to the
application immediately, without providing any stream data it has received for
that stream.</t>
      <t>Some applications running on top of QUIC use bytes at the beginning of the
stream to communicate critical information related to that stream.
For example, WebTransport (<xref target="WEBTRANSPORT"/>) uses a
variable-length encoded integer to associate a stream with a particular
WebTransport session.</t>
      <t>Since QUIC does not provide guaranteed delivery of steam data for reset streams,
it is possible that a receiver is unable to read critical information. In the
example above, a reset stream can cause the receiver to fail to associate
incoming streams with their respective subcomponent of the application.
Therefore, it is desirable to allow a receiver to rely on the delivery of
critical information to applications, even if the QUIC stream is reset before
this data is read by the application.</t>
      <t>Another use case is relaying data from an external data source. When a relay is
sending data being read from an external source and encounters an error, it
might want to use a stream reset to signal that error, while at the same time
guaranteeing that all data received from the source is delivered to the peer.</t>
      <t>This document extends QUIC with a variant of stream resets that reliably
delivers the beginning of a stream up to a sender-specified offset, communicated
using the RESET_STREAM_AT frame. It can be considered a form of range-based
partial reliability. As a variant of reset, application protocols continue to
treat this stream function as an abrupt termination; see <xref section="2.4" sectionFormat="of" target="RFC9000"/>.</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="transport-parameter">
      <name>Transport Parameter</name>
      <t>Support for receiving RESET_STREAM_AT frames is advertised by sending the
reset_stream_at (0x1d) transport parameter (<xref section="7.4" sectionFormat="of" target="RFC9000"/>) with an empty value. An implementation that understands this
transport parameter <bcp14>MUST</bcp14> treat the receipt of a non-empty value as a connection
error of type TRANSPORT_PARAMETER_ERROR.</t>
      <t>When using 0-RTT, both endpoints <bcp14>MUST</bcp14> remember the value of this transport
parameter. This allows use of this extension in 0-RTT packets. When the server
accepts 0-RTT data, the server <bcp14>MUST NOT</bcp14> disable this extension on the resumed
connection.</t>
    </section>
    <section anchor="resetstreamat-frame">
      <name>RESET_STREAM_AT Frame</name>
      <t>Conceptually, the RESET_STREAM_AT frame is a RESET_STREAM frame with an
added Reliable Size field.</t>
      <figure anchor="reset-stream-at-format">
        <name>RESET_STREAM_AT Frame Format</name>
        <artwork><![CDATA[
RESET_STREAM_AT Frame {
  Type (i) = 0x24,
  Stream ID (i),
  Application Protocol Error Code (i),
  Final Size (i),
  Reliable Size (i),
}
]]></artwork>
      </figure>
      <t>The RESET_STREAM_AT frame contains the following fields:</t>
      <dl>
        <dt>Stream ID:</dt>
        <dd>
          <t>A variable-length integer encoding of the stream ID of the stream being
terminated.</t>
        </dd>
        <dt>Application Protocol Error Code:</dt>
        <dd>
          <t>A variable-length integer containing the application protocol error code
(<xref section="20.2" sectionFormat="of" target="RFC9000"/>) that indicates why the stream is being closed.</t>
        </dd>
        <dt>Final Size:</dt>
        <dd>
          <t>A variable-length integer indicating the final size of the stream by the
sender, in units of bytes; see <xref section="4.5" sectionFormat="of" target="RFC9000"/>.</t>
        </dd>
        <dt>Reliable Size:</dt>
        <dd>
          <t>A variable-length integer indicating the amount of data that needs to be
delivered to the application even though the stream is reset.</t>
        </dd>
      </dl>
      <t>If the Reliable Size is larger than the Final Size, the receiver <bcp14>MUST</bcp14> close the
connection with a connection error of type FRAME_ENCODING_ERROR.</t>
      <t>As with RESET_STREAM (<xref section="19.4" sectionFormat="of" target="RFC9000"/>), Final Size is subject to
stream and connection-level flow control. An endpoint <bcp14>MUST NOT</bcp14> send a
RESET_STREAM_AT frame that exceeds the largest maximum stream data value
advertised by the receiver for the stream, or that violates the receiver's
maximum data limit. Consequently, the sender might need to defer sending
RESET_STREAM_AT until enough stream or connection-level flow control credit is
available. If an endpoint receives a RESET_STREAM_AT frame that violates either
flow control limit, it <bcp14>MUST</bcp14> close the connection with an error of type
FLOW_CONTROL_ERROR.</t>
      <t>RESET_STREAM_AT frames are ack-eliciting, and <bcp14>MUST</bcp14> only be sent in the
application data packet number space. When lost, they <bcp14>MUST</bcp14> be retransmitted,
unless the stream state has transitioned to "Data Recvd" or "Reset Recvd" due to
transmission and acknowledgement of other frames (see <xref target="multiple-frames"/>).</t>
    </section>
    <section anchor="resetting-streams">
      <name>Resetting Streams</name>
      <t>A sender that wants to reset a stream but also deliver some bytes to the
receiver sends a RESET_STREAM_AT frame with the Reliable Size field specifying
the amount of data to be delivered.</t>
      <t>When using a RESET_STREAM_AT frame, the initiator <bcp14>MUST</bcp14> guarantee reliable
delivery of stream data of at least Reliable Size bytes. If STREAM frames
containing data up to that byte offset are lost, the initiator <bcp14>MUST</bcp14> retransmit
this data, as described in <xref section="13.3" sectionFormat="of" target="RFC9000"/>. Data sent beyond that
byte offset <bcp14>SHOULD NOT</bcp14> be retransmitted.</t>
      <t>As described in <xref section="3.2" sectionFormat="of" target="RFC9000"/>, a stream reset signal might be
suppressed or withheld, and the same applies to a stream reset signal carried in
a RESET_STREAM_AT frame. Similarly, the Reliable Size of the RESET_STREAM_AT
frame does not prevent a QUIC stack from delivering data beyond the specified
offset to the receiving application.</t>
      <t>Note that a Reliable Size value of zero is valid. A RESET_STREAM_AT frame with
this value is logically equivalent to a RESET_STREAM frame (<xref section="3.2" sectionFormat="of" target="RFC9000"/>). When resetting a stream without the intent to deliver any data to
the receiver, the sender <bcp14>MAY</bcp14> use either RESET_STREAM or
RESET_STREAM_AT with a Reliable Size of zero.</t>
      <t>As stated in <xref section="4.5" sectionFormat="of" target="RFC9000"/>, the final size for a stream cannot
change once it is known.</t>
      <section anchor="sending-resetstreamat-after-fin">
        <name>Sending RESET_STREAM_AT after FIN</name>
        <t>Similar to how it is possible to send a RESET_STREAM frame after a STREAM frame
carrying the FIN bit, it is possible to send a RESET_STREAM_AT frame after a
STREAM frame carrying the FIN bit.</t>
        <t>Due to packet reordering, it is possible for a receiver to receive the
RESET_STREAM_AT frame before receiving the STREAM frame carrying the FIN bit.</t>
      </section>
      <section anchor="multiple-frames">
        <name>Multiple RESET_STREAM_AT / RESET_STREAM frames</name>
        <t>The initiator <bcp14>MAY</bcp14> send multiple RESET_STREAM_AT frames for the same stream in
order to reduce the Reliable Size.  It <bcp14>MAY</bcp14> also send a RESET_STREAM frame, which
is equivalent to sending a RESET_STREAM_AT frame with a Reliable Size of 0. When
reducing the Reliable Size, the sender <bcp14>MUST</bcp14> retransmit the RESET_STREAM_AT frame
carrying the smallest Reliable Size as well as stream data up to that size,
until all acknowledgements for the stream data and the RESET_STREAM_AT frame are
received.</t>
        <t>When sending multiple RESET_STREAM_AT or RESET_STREAM frames for the same
stream, the initiator <bcp14>MUST NOT</bcp14> increase the Reliable Size.</t>
        <t>When receiving a RESET_STREAM_AT frame with a lower Reliable Size, the receiver
only needs to provide data up the lower Reliable Size to the application. It
<bcp14>MUST NOT</bcp14> expect the sender to deliver any data beyond that byte offset.</t>
        <t>Reordering of packets might lead to a RESET_STREAM_AT frame with a higher
Reliable Size being received after a RESET_STREAM_AT frame with a lower
Reliable Size.  The receiver <bcp14>MUST</bcp14> ignore any RESET_STREAM_AT frame that
increases the Reliable Size.</t>
        <t>When sending another RESET_STREAM_AT, RESET_STREAM or STREAM frame carrying a FIN
bit for the same stream, the initiator <bcp14>MUST NOT</bcp14> change the Application Error
Code or the Final Size. If the receiver detects a change in those fields, it
<bcp14>MUST</bcp14> close the connection with a connection error of type STREAM_STATE_ERROR
or FINAL_SIZE_ERROR, respectively.</t>
        <t>While multiple RESET_STREAM_AT frames can reduce Reliable Size, some
applications might need to ensure that a minimum amount of data is always
delivered on a stream. Application protocols can establish rules for streams
that ensure that Reliable Size is not reduced below a certain threshold if that
is necessary to ensure correct operation of the protocol.</t>
      </section>
      <section anchor="stream-states">
        <name>Stream States</name>
        <t>In terms of stream state transitions (<xref section="3" sectionFormat="of" target="RFC9000"/>), the effect of a
RESET_STREAM_AT frame is equivalent to that of the FIN bit. Both the
RESET_STREAM_AT frame and the FIN bit on a STREAM frame serve the same role:
signaling the amount of data to be delivered.</t>
        <t>On the sending side, when the first RESET_STREAM_AT frame is sent, the sending
part of the stream enters the "Data Sent" state. Once the RESET_STREAM_AT frame
carrying the smallest Reliable Size and all stream data up to that byte offset
have been acknowledged, the sending part of the stream enters the "Data Recvd"
state. The transition from "Data Sent" to "Data Recvd" happens immediately if
the application resets a stream and all bytes up to the specified Reliable Size
have already been sent and acknowledged. Conversely, if bytes below that offset
still need to be sent or acknowledged, the transition might take multiple
network roundtrips and might require additional flow control credit issued by
the receiver.</t>
        <t>On the receiving side, when a RESET_STREAM_AT frame is received, the receiving
part of the stream enters the "Size Known" state. Once all data up to the
smallest Reliable Size have been received, it enters the "Data Recvd" state.
Similarly to the sending side, transition from "Size Known" to "Data Recvd"
might happen immediately, or might require additional network roundtrips while
the sender transmits remaining bytes up to the smallest Reliable Size. This might
require the receiver to issue additional flow control credit.</t>
      </section>
      <section anchor="handling-stopsending">
        <name>Handling STOP_SENDING</name>
        <t>An endpoint that receives a STOP_SENDING frame is required to send a
RESET_STREAM frame in some stream states, as described in <xref section="3.5" sectionFormat="of" target="RFC9000"/>. While it is permissible to send a RESET_STREAM_AT frame in this case,
endpoints <bcp14>SHOULD</bcp14> send a RESET_STREAM frame, since the peer has already indicated
that it does not intend to process any further data.</t>
      </section>
    </section>
    <section anchor="implementation-guidance">
      <name>Implementation Guidance</name>
      <t>In terms of transport machinery, the RESET_STREAM_AT frame is more akin to the
FIN bit than to the RESET_STREAM frame (see <xref target="stream-states"/>). By sending a
RESET_STREAM_AT frame, the sender commits to delivering all bytes up to the
Reliable Size.</t>
      <t>To the endpoints, the main differences from closing a stream by using the FIN
bit are:</t>
      <ul spacing="normal">
        <li>
          <t>the offset up to which the sender commits to sending might be smaller than
Final Size,</t>
        </li>
        <li>
          <t>this offset might get reduced by subsequent RESET_STREAM_AT frames, and</t>
        </li>
        <li>
          <t>the closure is accompanied by an error code.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>As the RESET_STREAM_AT frame is an extension to the stream machinery defined in
QUIC version 1, the security considerations of <xref target="RFC9000"/> apply accordingly.
Specifically, given that RESET_STREAM_AT frames do not cause data exchange to
terminate, endpoints need to continue to monitor for resource commitment and
exhaustion attacks even after sending or receiving RESET_STREAM_AT. This
persists until all data is delivered, similar to the handling of normal stream
termination; see <xref target="stream-states"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="quic-transport-parameter">
        <name>QUIC Transport Parameter</name>
        <t>This document registers the reset_stream_at transport parameter in the
"QUIC Transport Parameters" registry established in <xref section="22.3" sectionFormat="of" target="RFC9000"/>.
The following fields are registered:</t>
        <dl>
          <dt>Value:</dt>
          <dd>
            <t>0x1d</t>
          </dd>
          <dt>Parameter Name:</dt>
          <dd>
            <t>reset_stream_at</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>Provisional (will become Permanent once this document is approved)</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF (iesg@ietf.org)</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>QUIC Working Group (quic@ietf.org)</t>
          </dd>
        </dl>
      </section>
      <section anchor="quic-frame-types">
        <name>QUIC Frame Types</name>
        <t>This document registers one new value in the "QUIC Frame Types" registry
established in <xref section="22.4" sectionFormat="of" target="RFC9000"/>. The following fields are registered:</t>
        <dl>
          <dt>Value:</dt>
          <dd>
            <t>0x24</t>
          </dd>
          <dt>Frame Type Name:</dt>
          <dd>
            <t>RESET_STREAM_AT</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>Provisional (will become Permanent once this document is approved)</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF (iesg@ietf.org)</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>QUIC Working Group (quic@ietf.org)</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="WEBTRANSPORT">
          <front>
            <title>WebTransport over HTTP/3</title>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Facebook</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   WebTransport [OVERVIEW] is a protocol framework that enables
   application clients constrained by the Web security model to
   communicate with a remote application server using a secure
   multiplexed transport.  This document describes a WebTransport
   protocol that is based on HTTP/3 [HTTP3] and provides support for
   unidirectional streams, bidirectional streams, and datagrams, all
   multiplexed within the same HTTP/3 connection.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webtrans-http3-15"/>
        </reference>
      </references>
    </references>
    <?line 358?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document had reviews and input from many contributors in the IETF QUIC
Working Group, with substantive input from Lucas Pardue and Martin Thomson.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA91b3ZIbuXW+x1Mg1EWkFEmNRkrZYrxec+dnd8rSjDzDjcpx
uabAbpCE1T/cBnpG3CltpfIkufFF3sDXfhan8ho5P0B3o9mcWecyFyqx0Wjg
4Jzv/OLMZDIRzrhMz+Tod99fnMgbV2mVy2tttbPy3riN/KAqZ1QmT3Vm7nS1
G4m0TAqVwzdppVZuYrRbTX6oTTKpYIpaZnpiaRl4hmUmR29Fopxel9VuJq1L
hTDbaiZdVVt3fHT09uhYKJgOJCwqVdhtWbmRuC+rT+uqrLeespH4pHcwmM7k
ReF0VcDCp7i9uNNFrWdCyni6lG63xXN9hJVMsZbf4mscz5XJYBwp/g3SPi2r
NY6rKtnA+Ma5rZ29fInTcAgOPQ3TXuLAy2VV3lv9Ehd4iR+ugU310i95v345
yAacmAEbrOvswR9MeYGpKYc/ffmz+DzduDwbCWGdKtJblZUFnH6nrbA5SPD2
h7qEzWeyKMXWzOQfXJmMpQVeV3pl4dcuxx9/FELVblNWwNAJUCylKeCj91N5
o3WuioLGWPrvYVldRC808zanN5Zf/GaNg9OkzMOSqzrLaAl6knI2k//95z//
7S///j//9R9+SNnEAJW/VT/Wm1JefappHCQwk+fKumzX3e4TzSo/1Z2tRFFW
uXIgvBngrVh1nsRkMpFqCbxTiROCcJ/qlSm0lUpen92cLW5vFtdn8/dyVQGZ
0pUwHTglrS5ShFJZwETm/VR+3Gh6hHe6EhVrTng9lsZJldkSnsutlZV2iPHc
OIcLdbexEoiUbmOs/xZYL9xGSw0Id7Jcya1KPmkns9LaqbwqJL6sdKLNHa5l
TarHOFZpCWsUpVzXCjZzGk6wUUBGsROpckSqwzPQaNjLAg9IwXU6FWKBZICe
1znObblT6HtJDCOSabuIY7fzRfsK98wy0BXmCp24Zcz9xmS6pRFfegp2eFhP
FxFcb0kGMtGVU8CV5c5pmLNC1LM4c5OmmRbiGVqHqkzrxJmy8MKFJS08yVfy
+cPDP1yfn7w9Ojr68uWFp85vZXGPJXIUl5WNXAN/+BB8ZBY2MEgjo11HrBHd
LFBacqsThF+DmiuW7YD4mL+gxcknlMqq0oRAW1crlWjenvcggvAdjAm13WYG
7Cwe1OS5Tg0Ym2w3JiNe1k5uq/LOEHwBCBGZQPVGWU+LTpFs0cEGsPimBDXo
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
qswtXm39L8RlyqEhNwAA

-->

</rfc>
