<?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.39 (Ruby 3.2.2) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wing-cidfi-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="CIDFI">CID Flow Indicator (CIDFI)</title>
    <seriesInfo name="Internet-Draft" value="draft-wing-cidfi-01"/>
    <author fullname="Dan Wing">
      <organization abbrev="Cloud Software Group">Cloud Software Group, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <postal>
          <street>Rennes</street>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <date year="2023" month="September" day="11"/>
    <area>Network</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>user experience</keyword>
    <keyword>bandwidth</keyword>
    <keyword>priority</keyword>
    <keyword>enriched feedback</keyword>
    <keyword>media streaming</keyword>
    <keyword>realtime media</keyword>
    <keyword>QoS</keyword>
    <keyword>5G</keyword>
    <keyword>Wi-Fi</keyword>
    <keyword>WiFi</keyword>
    <keyword>DTLS Connection Identifier</keyword>
    <keyword>DTLS-SRTP</keyword>
    <keyword>QUIC Connection Identifier</keyword>
    <keyword>QUIC</keyword>
    <abstract>
      <?line 116?>

<t>Conveying metadata about network conditions and metadata about
individual packets can improve the user experience especially on
wireless networks which suffer bandwidth and delay variability.</t>
      <t>This document describes how clients and servers can cooperate with
network elements so their QUIC and DTLS streams can be augmented with
information about network conditions and packet importance.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://danwing.github.io/cidfi/draft-wing-cidfi.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wing-cidfi/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        ART Area Working Group mailing list (<eref target="mailto:art@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/art/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/art/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/danwing/cidfi"/>.</t>
    </note>
  </front>
  <middle>
    <?line 126?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Senders rely on ramping up their transmission rate until they encounter
packet loss or see <xref target="ECN"/> indicating they should level off or
slow down their transmission rate.  This feedback takes time and contributes
to poor user experience when the sender over- or under-shoots the actual
available bandwidth, especially if the sender changes fidelity of the
content (e.g., improves video quality which consumes more bandwidth which
then gets dropped by the network).</t>
      <t>Due to network constraints a network element will need to drop or even
prioritize a packet ahead of other packets.  The decision of which packet
to drop or prioritize is improved if the network element knows the
importance of the packet.  Metadata carried in each packet can influence
that decision to improve the user experience.</t>
      <t>This document defines CIDFI (pronounced "sid fye") which is a system
of several protocols that allow communicating about a <xref target="QUIC"/>
connection or a DTLS connection <xref target="DTLS-CID"/> from the network to the
server and the server to the network.  The information exchanged
allows the server to know about network conditions and allows the
server to signal packet importance.</t>
      <t><xref target="fig-arch"/> provides a sample network diagram of a CIDFI system showing two
bandwidth-constrained networks (or links) depicted by "B" and
CIDFI-aware devices immediately upstream of those links, and another
bandwidth-constrained link between a smartphone handset and its Radio
Access Newwork (RAN).  This diagram shows the same protocol and same mechanism
can operate with or without 5G, and can operate with different administrative
domains such as Wi-Fi, an ISP edge router, and a 5G RAN.</t>
      <figure anchor="fig-arch">
        <name>Network Diagram</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="528" viewBox="0 0 528 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,112" fill="none" stroke="black"/>
              <path d="M 8,176 L 8,256" fill="none" stroke="black"/>
              <path d="M 64,48 L 64,112" fill="none" stroke="black"/>
              <path d="M 88,176 L 88,256" fill="none" stroke="black"/>
              <path d="M 96,48 L 96,144" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,144" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,80" fill="none" stroke="black"/>
              <path d="M 168,112 L 168,216" fill="none" stroke="black"/>
              <path d="M 168,232 L 168,304" fill="none" stroke="black"/>
              <path d="M 184,48 L 184,128" fill="none" stroke="black"/>
              <path d="M 184,176 L 184,256" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,128" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,256" fill="none" stroke="black"/>
              <path d="M 264,80 L 264,112" fill="none" stroke="black"/>
              <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
              <path d="M 320,80 L 320,112" fill="none" stroke="black"/>
              <path d="M 320,208 L 320,240" fill="none" stroke="black"/>
              <path d="M 344,32 L 344,88" fill="none" stroke="black"/>
              <path d="M 344,104 L 344,216" fill="none" stroke="black"/>
              <path d="M 344,232 L 344,304" fill="none" stroke="black"/>
              <path d="M 360,144 L 360,176" fill="none" stroke="black"/>
              <path d="M 376,96 L 376,144" fill="none" stroke="black"/>
              <path d="M 376,176 L 376,224" fill="none" stroke="black"/>
              <path d="M 416,144 L 416,176" fill="none" stroke="black"/>
              <path d="M 432,32 L 432,152" fill="none" stroke="black"/>
              <path d="M 432,168 L 432,304" fill="none" stroke="black"/>
              <path d="M 448,112 L 448,208" fill="none" stroke="black"/>
              <path d="M 520,112 L 520,208" fill="none" stroke="black"/>
              <path d="M 8,48 L 64,48" fill="none" stroke="black"/>
              <path d="M 96,48 L 152,48" fill="none" stroke="black"/>
              <path d="M 184,48 L 240,48" fill="none" stroke="black"/>
              <path d="M 264,80 L 320,80" fill="none" stroke="black"/>
              <path d="M 240,96 L 264,96" fill="none" stroke="black"/>
              <path d="M 320,96 L 376,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 264,112 L 320,112" fill="none" stroke="black"/>
              <path d="M 448,112 L 520,112" fill="none" stroke="black"/>
              <path d="M 184,128 L 240,128" fill="none" stroke="black"/>
              <path d="M 96,144 L 152,144" fill="none" stroke="black"/>
              <path d="M 360,144 L 416,144" fill="none" stroke="black"/>
              <path d="M 416,160 L 448,160" fill="none" stroke="black"/>
              <path d="M 8,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 184,176 L 240,176" fill="none" stroke="black"/>
              <path d="M 360,176 L 416,176" fill="none" stroke="black"/>
              <path d="M 264,208 L 320,208" fill="none" stroke="black"/>
              <path d="M 448,208 L 520,208" fill="none" stroke="black"/>
              <path d="M 96,224 L 128,224" fill="none" stroke="black"/>
              <path d="M 144,224 L 184,224" fill="none" stroke="black"/>
              <path d="M 240,224 L 264,224" fill="none" stroke="black"/>
              <path d="M 320,224 L 376,224" fill="none" stroke="black"/>
              <path d="M 264,240 L 320,240" fill="none" stroke="black"/>
              <path d="M 8,256 L 88,256" fill="none" stroke="black"/>
              <path d="M 184,256 L 240,256" fill="none" stroke="black"/>
              <g class="text">
                <text x="36" y="68">CIDFI-</text>
                <text x="124" y="68">CIDFI-</text>
                <text x="212" y="68">CIDFI-</text>
                <text x="32" y="84">aware</text>
                <text x="120" y="84">aware</text>
                <text x="208" y="84">aware</text>
                <text x="36" y="100">client</text>
                <text x="80" y="100">-B-</text>
                <text x="120" y="100">Wi-Fi</text>
                <text x="168" y="100">-B-</text>
                <text x="204" y="100">edge</text>
                <text x="292" y="100">router</text>
                <text x="124" y="116">access</text>
                <text x="212" y="116">router</text>
                <text x="120" y="132">point</text>
                <text x="484" y="132">CIDFI-</text>
                <text x="480" y="148">aware</text>
                <text x="388" y="164">router</text>
                <text x="476" y="164">QUIC</text>
                <text x="508" y="164">or</text>
                <text x="476" y="180">DTLS</text>
                <text x="44" y="196">CIDFI-</text>
                <text x="212" y="196">CIDFI-</text>
                <text x="484" y="196">server</text>
                <text x="40" y="212">aware</text>
                <text x="208" y="212">aware</text>
                <text x="44" y="228">client</text>
                <text x="136" y="228">B</text>
                <text x="200" y="228">RAN</text>
                <text x="292" y="228">router</text>
                <text x="48" y="244">(handset)</text>
                <text x="212" y="244">router</text>
                <text x="384" y="292">transit</text>
                <text x="476" y="292">server</text>
                <text x="44" y="308">user</text>
                <text x="96" y="308">network</text>
                <text x="216" y="308">ISP</text>
                <text x="264" y="308">network</text>
                <text x="384" y="308">network</text>
                <text x="480" y="308">network</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                    |                     |          |
+------+   +------+ | +------+            |          |
|CIDFI-|   |CIDFI-| | |CIDFI-|            |          |
|aware |   |aware | | |aware |  +------+  |          |
|client+-B-+Wi-Fi +-B-+edge  +--+router+------+      |
+------+   |access| | |router|  +------+  |   |      | +--------+
           |point | | +------+            |   |      | | CIDFI- |
           +------+ |                     | +-+----+ | | aware  |
                    |                     | |router+---+ QUIC or|
+---------+         | +------+            | +-+----+ | | DTLS   |
| CIDFI-  |         | |CIDFI-|            |   |      | | server |
| aware   |         | |aware |  +------+  |   |      | +--------+
| client  +-----B-----+RAN   +--+router+------+      |
|(handset)|         | |router|  +------+  |          |
+---------+         | +------+            |          |
                    |                     |          |
                    |                     | transit  |  server
   user network     |    ISP network      | network  |  network
]]></artwork>
        </artset>
      </figure>
      <t>The CIDFI-aware client establishes a TLS connection with the
CIDFI-aware network elements (Wi-Fi access point, edge router, and RAN
router in the above diagram).  Over this connection it receives
network performance information and it sends mapping of (QUIC or DTLS)
Destination CIDs to packet importance.</t>
      <t>The design creates new state in the CIDFI-aware network elements for
mapping from the QUIC Destination CID or DTLS Destination CID to the
packet importance, bandwidth information for that connection towards
the client, and for the TLS-encrypted communication with the client.</t>
      <t><xref target="network-to-server"/> describes network-to-server signaling
similar to the use case described in <xref section="2" sectionFormat="of" target="I-D.joras-sadcdn"/>, with metadata
relaying through the client.</t>
      <t><xref target="server-to-network"/> describes server-to-network
metadata signaling similar to the use cases described in <xref section="3" sectionFormat="of" target="I-D.joras-sadcdn"/>.  The server-to-network metadata signaling can
also benefit <xref target="I-D.ietf-avtcore-rtp-over-quic"/> and <xref target="DTLS-CID"/>.</t>
      <t>A discussion of extending CIDFI to other protocols is provided in <xref target="extending"/>.</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?>

<dl>
        <dt>CID:</dt>
        <dd>
          <t>Connection Identifier used by <xref target="QUIC"/> or by <xref target="DTLS-CID"/>.</t>
        </dd>
        <dt>CNE:</dt>
        <dd>
          <t>CIDFI-aware Network Element, a network element that
supports this CIDFI specification.  This is usually a router.</t>
        </dd>
      </dl>
      <section anchor="notations">
        <name>Notations</name>
        <t>For discussion purposes, JSON is used in the examples to give a flavor of the
data that the client retrieves from a CNE.  The authors
anticipate using a more efficient encoding such as <xref target="CBOR"/>.</t>
      </section>
    </section>
    <section anchor="design-goals">
      <name>Design Goals</name>
      <t>This section highlights the design goals of this specification.</t>
      <dl>
        <dt>Client Authorization:</dt>
        <dd>
          <t>The client authorizes each CIDFI-aware network element (CNE) to participate in CIDFI
for each QUIC or DTLS flow.</t>
        </dd>
        <dt>Same Server:</dt>
        <dd>
          <t>Communication about the network metadata arrives over the primary QUIC or
DTLS connection which ensures it arrives at the same server instance even through
local network translators (NAT) or server-side load balancers.</t>
        </dd>
        <dt>Privacy:</dt>
        <dd>
          <t>The packet importance is only known by CIDFI-aware network
elements (CNE).  The network performance data is protected by TLS.</t>
        </dd>
        <dt>Integrity:</dt>
        <dd>
          <t>The packet importance is mapped to Destination CIDs which are
integrity protected by QUIC (or DTLS) itself and cannot be modified by on-path
network elements.  The communication between client, server, and
network element is protected by TLS.</t>
        </dd>
        <dt>Internet Survival:</dt>
        <dd>
          <t>The QUIC (or DTLS) communications between the client
and server are not changed so CIDFI is expected to work wherever QUIC
(or DTLS) works.  The elements involved are only the QUIC (or DTLS)
client and server and with the participating CIDFI network elements.</t>
        </dd>
      </dl>
    </section>
    <section anchor="network-preparation-dns-svcb-records">
      <name>Network Preparation: DNS SVCB Records</name>
      <t>This document defines a new DNS Service Binding "cidfi-aware" in
<xref target="iana-svcb"/> and a new Special-Use Domain Name "cifi.arpa" in
<xref target="iana-sudn"/>.</t>
      <t>The local network is configured to respond to DNS SVCB
<xref target="I-D.ietf-dnsop-svcb-https"/> queries with ServiceMode (<xref section="2.4.3" sectionFormat="of" target="I-D.ietf-dnsop-svcb-https"/>) for _cidfi-aware.cidfi.arpa with
the DNS names of that network's and upstream network's CIDFI-aware
network elements (CNEs).  If upstream networks also support CIDFI (e.g., the
ISP network) those SVCB records are aggregated into the local DNS
server's response by the local network's recursive DNS resolvers.  For
example, a query for _cidfi-aware.cidfi.arpa might return two answers
for the two CNEs on the local network, one belonging
to the local ISP (exmaple.net) and the other belonging to the local
Wi-Fi network (example.com),</t>
      <artwork><![CDATA[
_cidfi-aware.cidfi.arpa. 7200 IN SVCB 0 service-cidfi.example.net. (
    alpn=h3 cidfipathauth=/path-auth-query {?cidfi}
    cidfimetadata=/cidfi-metadata
    )
_cidfi-aware.cidfi.arpa. 7200 IN SVCB 0 wifi.example.com. (
    alpn=h3 cidfipathauth=/path-auth-query {?cidfi}
    cidfimetadata=/cidfi-metadata
    )
]]></artwork>
      <t>When multihoming, the multihome-capable CPE aggregates all upstream
networks' _cidfi-aware.cidfi.arpa responses into the response sent to
its locally-connected clients.</t>
    </section>
    <section anchor="attach">
      <name>Client Operation on Network Attach or Topology Change</name>
      <t>On initial network attach topology change (see <xref target="topology"/>),
the client learns if the network supports CIDFI (<xref target="discovery"/>) and
authorizes those network elements (<xref target="client-authorizes"/>).</t>
      <section anchor="discovery">
        <name>Client Learns Local Network Supports CIDFI</name>
        <t>The client determines if the local network provides CIDFI service by
issuing a query to the local DNS server for
"_cidfi-aware.cidfi.arpa." with the SVCB resource record type (64)
<xref target="I-D.ietf-dnsop-svcb-https"/>.</t>
        <t>Alernatively, the client determines that a local network
is CIDFI-capable if the client receives an explicit signal from the network, e.g., via a dedicated
DHCP option or a 3GPP PCO (Protocol Configuration Option) Information Element. An example
of explicit signal would be a DHCPv6 option or DHCPv4 sub-option that that is returned as
part of <xref target="RFC7839"/>.</t>
        <t>If the discovery succeeds, the client follows the processing in
<xref target="client-authorizes"/>.</t>
        <t>If discovery failed (i.e., the client concludes that the local network does not support
CIDFI), the processing stops.</t>
      </section>
      <section anchor="client-authorizes">
        <name>Client Authorizes CIDFI Network Elements</name>
        <t>The response from the previous step in <xref target="discovery"/> will contain one or more
CNEs.</t>
        <t>The client authorizes each of the CNEs using
a local policy.  This policy is implementation specific.  An
implementation example might have the users authorize their ISP's CIDFI server
(e.g., allow "cidfi.example.net" if a user's ISP is configured with
"example.net").  Similarly, if none of the CNEs are recognized by the client, the client
might silently avoid using CIDFI on that network.</t>
        <t>After authorizing that subset of CNEs, the
client makes a new HTTPS connection to each of those CNEs
and performs PKIX validation of their certificates.
The client <bcp14>MAY</bcp14> have to authenticate itself to the CIDFI network
element.</t>
        <t>The client then obtains the CIDFI nonce and CIDFI HMAC
secret from each network element used later in <xref target="ownership"/> to prove
the client owns its UDP 4-tuple.</t>
        <artwork><![CDATA[
  {"cidfi-path-authentication":[
    {"nonce":"ddqwohxGZysgy0BySNh7sNHV5IH9RbE7rqXmg9wb9Npo",
     "hmac-secret":"jLNsCvuU59mt3F4/ePD9jbZ932TfsLSOP2Nx3XnUqc8v"}]}
]]></artwork>
      </section>
    </section>
    <section anchor="client-operation-on-each-connection-to-a-quic-server">
      <name>Client Operation on Each Connection to a QUIC Server</name>
      <t>When a QUIC client (or {DTLS-CID}) client connects to a QUIC (or {DTLS-CID}) server, the client:</t>
      <ol spacing="normal" type="1"><li>learns the server supports CIDFI
and obtains its mapping of transmitted destinations CID to metadata.</li>
        <li>proves ownership of its UDP 4-tuple to
the on-path network elements.</li>
        <li>performs initial metadata exchange
with the CIDFI network element and server, and server and network element.</li>
        <li>continually updates the server and the CIDFI network element whenever
new information is received from the other party.</li>
      </ol>
      <t>These steps are described in more detail below.</t>
      <ul empty="true">
        <li>
          <t>Note: the client is also a sender, and can also perform all these
functions in its direction.  This functionality will be expanded in
later versions of this document.  For example, a mobile device
connected to Wi-Fi with 5G backhaul might be running an interactive
audio/video application and want to indicate to its internal Wi-Fi
driver and to the 5G modem its mapping from its transmitted QUIC
Destination CID to per-packet metadata and the application can benefit
from receiving network performance metrics.</t>
        </li>
      </ul>
      <section anchor="server-supports-cidfi">
        <name>Client Learns Server Supports CIDFI</name>
        <t>On initial connection to a QUIC server, the client includes a new QUIC
transport parameter CIDFI (<xref target="iana-tp"/>) which is remembered for 0-RTT.</t>
        <t>If the server does not indicate CIDFI support, CIDFI processing stops.</t>
        <t>If the server indicates CIDFI support, then the server creates a
new Server-Initiated, Bidirectional QUIC stream which is dedicated to
CIDFI communication.  This stream number is communicated in the
CIDFI transport response during the QUIC handshake.  TODO: specify
how CIDFI stream number is communicated to client.</t>
        <t>The QUIC client and QUIC server exchange CIDFI information over
this CIDFI-dedicated stream as described in <xref target="initial-metadata-exchange"/>.</t>
      </section>
      <section anchor="ownership">
        <name>Client Proves Ownership of its UDP 4-Tuple</name>
        <t>To ensure that the client messages to the CNE
pertain only to the client's own UDP 4-tuple, the client sends the
CIDFI nonce protected by the HMAC secret it obtained from
<xref target="client-authorizes"/> over the QUIC UDP 4-tuple it is using with the
QUIC server.  The ability to transmit that packet on the same UDP
4-tuple as the QUIC connection indicates ownership of that IP address
and UDP port.  The nonce and HMAC are sent in a <xref target="STUN"/> indication (STUN
class of 0b01) containing one or more CIDFI-NONCE attributes
(<xref target="iana-stun"/>).  If there are multiple CNE
the single STUN indication contains a CIDFI-NONCE attribute from each of
them.  This message is discarded by the QUIC server.</t>
        <t>The figure below shows a summarized message flow obtaining
the nonce and HMAC secret from the CNE then later
sending the nonce and HMAC in the same UDP 4-tuple towards the QUIC server:</t>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="512" viewBox="0 0 512 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
              <path d="M 24,176 L 24,400" fill="none" stroke="black"/>
              <path d="M 320,96 L 320,144" fill="none" stroke="black"/>
              <path d="M 320,248 L 320,272" fill="none" stroke="black"/>
              <path d="M 320,376 L 320,400" fill="none" stroke="black"/>
              <path d="M 472,64 L 472,144" fill="none" stroke="black"/>
              <path d="M 472,176 L 472,240" fill="none" stroke="black"/>
              <path d="M 472,272 L 472,400" fill="none" stroke="black"/>
              <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
              <path d="M 32,128 L 320,128" fill="none" stroke="black"/>
              <path d="M 24,208 L 464,208" fill="none" stroke="black"/>
              <path d="M 24,240 L 464,240" fill="none" stroke="black"/>
              <path d="M 24,336 L 312,336" fill="none" stroke="black"/>
              <path d="M 32,368 L 472,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 320,400" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,240 460,234.4 460,245.6" fill="black" transform="rotate(0,464,240)"/>
              <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
              <polygon class="arrowhead" points="320,336 308,330.4 308,341.6" fill="black" transform="rotate(0,312,336)"/>
              <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
              <polygon class="arrowhead" points="40,400 28,394.4 28,405.6" fill="black" transform="rotate(180,32,400)"/>
              <polygon class="arrowhead" points="40,368 28,362.4 28,373.6" fill="black" transform="rotate(180,32,368)"/>
              <polygon class="arrowhead" points="40,128 28,122.4 28,133.6" fill="black" transform="rotate(180,32,128)"/>
              <g class="text">
                <text x="28" y="36">QUIC</text>
                <text x="312" y="36">CIDFI-aware</text>
                <text x="468" y="36">QUIC</text>
                <text x="28" y="52">client</text>
                <text x="284" y="52">edge</text>
                <text x="332" y="52">router</text>
                <text x="468" y="52">server</text>
                <text x="320" y="68">|</text>
                <text x="68" y="84">HTTPS:</text>
                <text x="124" y="84">Enroll</text>
                <text x="176" y="84">CIDFI</text>
                <text x="228" y="84">router</text>
                <text x="268" y="84">to</text>
                <text x="320" y="84">partipate</text>
                <text x="68" y="116">HTTPS:</text>
                <text x="112" y="116">Ok.</text>
                <text x="184" y="116">nonce=12345</text>
                <text x="24" y="164">:</text>
                <text x="320" y="164">:</text>
                <text x="472" y="164">:</text>
                <text x="320" y="180">|</text>
                <text x="60" y="196">QUIC</text>
                <text x="116" y="196">Initial,</text>
                <text x="192" y="196">transport</text>
                <text x="296" y="196">parameter=CIDFI</text>
                <text x="60" y="228">STUN</text>
                <text x="128" y="228">Indication,</text>
                <text x="228" y="228">nonce=12345,</text>
                <text x="324" y="228">hmac=e8FEc</text>
                <text x="472" y="260">discarded</text>
                <text x="196" y="292">"I</text>
                <text x="224" y="292">saw</text>
                <text x="252" y="292">my</text>
                <text x="292" y="292">nonce,</text>
                <text x="340" y="292">HMAC</text>
                <text x="372" y="292">is</text>
                <text x="412" y="292">valid"</text>
                <text x="320" y="308">|</text>
                <text x="68" y="324">HTTPS:</text>
                <text x="116" y="324">"Map</text>
                <text x="172" y="324">DCID=xyz</text>
                <text x="220" y="324">as</text>
                <text x="252" y="324">high</text>
                <text x="320" y="324">importance"</text>
                <text x="320" y="340">|</text>
                <text x="60" y="356">QUIC</text>
                <text x="116" y="356">Initial,</text>
                <text x="192" y="356">transport</text>
                <text x="296" y="356">parameter=CIDFI</text>
                <text x="68" y="388">HTTPS:</text>
                <text x="108" y="388">Ok</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 QUIC                            CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  HTTPS: Enroll CIDFI router to partipate              |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, hmac=e8FEc             |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  |<------------------------------------------------------+
  |  HTTPS: Ok                         |                  |
  |<-----------------------------------+                  |
]]></artwork>
        </artset>
        <t>Because multiple QUIC clients will use the same incoming Destination
CID on their own UDP 4-tuple, the STUN Indication message also allows
the CIDFI network element to distinguish which UDP 4-tuple belongs to
each CIDFI client.</t>
        <t>To reduce CIDFI setup time the client STUN Indication <bcp14>MAY</bcp14> be sent at
the same time as the QUIC Initial packet, which is encouraged
if the client remembers the server supports CIDFI (0-RTT).</t>
        <t>To prevent replay attacks, the Nonce is usable only for authenticating
one UDP 4-tuple.  When the connection is migrated (<xref section="9" sectionFormat="of" target="QUIC"/>) the CIDFI network element won't apply any CIDFI behavior to
that newly-migrated connection.  The client will have to restart
CIDFI procedures at the beginning (<xref target="attach"/>).</t>
        <section anchor="stun-cidfi-nonce-attribute">
          <name>STUN CIDFI-NONCE Attribute</name>
          <t>The format of the STUN CIDFI-NONCE attribute is:</t>
          <figure anchor="fig-stun-cidfi-nonce">
            <name>Format of CIDFI-NONCE Attribute</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="528" viewBox="0 0 528 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,288" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,288" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,144 L 520,144" fill="none" stroke="black"/>
                  <path d="M 8,288 L 520,288" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="216" y="100">Nonce</text>
                    <text x="260" y="100">(128</text>
                    <text x="304" y="100">bits)</text>
                    <text x="224" y="212">HMAC-output</text>
                    <text x="292" y="212">(256</text>
                    <text x="336" y="212">bits)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                       Nonce (128 bits)                        |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                                                               |
|                                                               |
|                     HMAC-output (256 bits)                    |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </artset>
          </figure>
          <t>The nonce is 128 bits obtained from the CIDFI network element.  The
HMAC-output field is computed per <xref target="RFC5869"/> using the CIDFI network
element-provided HMAC secret, and the CIDFI network element-provided
Nonce concatenated with the fixed string "cidfi" (without quotes),
shown below with "|" denoting concatenation.</t>
          <artwork><![CDATA[
  HMAC-output = HMAC-SHA256( hmac-secret, nonce | "cidfi" )
]]></artwork>
        </section>
      </section>
      <section anchor="initial-metadata-exchange">
        <name>Initial Metadata Exchange</name>
        <t>Using its HTTPS channel with each of the CIDFI network elements it
previously authorized for CIDFI participation, the client signals the
mapping of the server's transmitted short Destination Connection ID
and its length to the CNE.  As server support
of the QUIC CIDFI transport parameter is remembered for 0-RTT, the
client can immediately send the nonce.</t>
        <t>The primary purpose of a second Connection ID is connection migration
(<xref section="9" sectionFormat="of" target="QUIC"/>).  With CIDFI, additional Connection IDs are
necessary to:
  * maintain CIDFI operation when topology remains the same.
  * use Destination Connection ID to indicate packet importance</t>
        <t>To maintain CIDFI operation when topology remains the same, the
CIDFI client signals the CNEs of that 'next'
Destination CID.  When QUIC detects a topology change, however, that
Destination CID <bcp14>MUST NOT</bcp14> be used by the peer, otherwise it links
the communication on the old topology to the new topology (<xref section="9.5" sectionFormat="of" target="QUIC"/>).
Thus, an additional Connection ID is purposefully not communicated
from the CIDFI client to its CNEs, so that
Connection ID can be immediately used by the peer during connection
migration when the topology changes.</t>
        <t>Note the source IP address and source UDP port number are not signaled
by design.  This is because NATs (<xref target="NAPT"/>,
<xref target="NAT"/>), multiple NATs on the path, IPv6/IPv4 translation,
similar technologies, and QUIC connection migration all complicate
accurate signaling of the source IP address and source UDP port
number.</t>
        <t>If the CNE receives the HTTPS map request but has not
yet seen the STUN nonce message it rejects the mapping request with a
403 and provides a new nonce.  The new nonce avoids the problem of an
attacker seeing the previous nonce and using that nonce on its own UDP
4-tuple.  The client then sends a new STUN message with that new nonce
value and send a new HTTPS mapping request(s).  This interaction is
highlighted in the simplified message flow, below.</t>
        <figure>
          <name>Client re-transmtting lost nonce</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="512" viewBox="0 0 512 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 24,480" fill="none" stroke="black"/>
                <path d="M 320,96 L 320,144" fill="none" stroke="black"/>
                <path d="M 320,240 L 320,256" fill="none" stroke="black"/>
                <path d="M 320,288 L 320,320" fill="none" stroke="black"/>
                <path d="M 320,360 L 320,384" fill="none" stroke="black"/>
                <path d="M 320,448 L 320,480" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,144" fill="none" stroke="black"/>
                <path d="M 472,176 L 472,352" fill="none" stroke="black"/>
                <path d="M 472,384 L 472,480" fill="none" stroke="black"/>
                <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 320,128" fill="none" stroke="black"/>
                <path d="M 24,208 L 464,208" fill="none" stroke="black"/>
                <path d="M 24,240 L 192,240" fill="none" stroke="black"/>
                <path d="M 24,288 L 312,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 312,320" fill="none" stroke="black"/>
                <path d="M 24,352 L 464,352" fill="none" stroke="black"/>
                <path d="M 24,448 L 312,448" fill="none" stroke="black"/>
                <path d="M 32,480 L 320,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,352 460,346.4 460,357.6" fill="black" transform="rotate(0,464,352)"/>
                <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
                <polygon class="arrowhead" points="320,448 308,442.4 308,453.6" fill="black" transform="rotate(0,312,448)"/>
                <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(0,312,288)"/>
                <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
                <polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
                <polygon class="arrowhead" points="40,480 28,474.4 28,485.6" fill="black" transform="rotate(180,32,480)"/>
                <polygon class="arrowhead" points="40,320 28,314.4 28,325.6" fill="black" transform="rotate(180,32,320)"/>
                <polygon class="arrowhead" points="40,128 28,122.4 28,133.6" fill="black" transform="rotate(180,32,128)"/>
                <g class="text">
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="468" y="36">QUIC</text>
                  <text x="28" y="52">client</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="468" y="52">server</text>
                  <text x="320" y="68">|</text>
                  <text x="68" y="84">HTTPS:</text>
                  <text x="124" y="84">Enroll</text>
                  <text x="176" y="84">CIDFI</text>
                  <text x="228" y="84">router</text>
                  <text x="268" y="84">to</text>
                  <text x="320" y="84">partipate</text>
                  <text x="68" y="116">HTTPS:</text>
                  <text x="112" y="116">Ok.</text>
                  <text x="184" y="116">nonce=12345</text>
                  <text x="24" y="164">:</text>
                  <text x="320" y="164">:</text>
                  <text x="472" y="164">:</text>
                  <text x="320" y="180">|</text>
                  <text x="60" y="196">QUIC</text>
                  <text x="116" y="196">Initial,</text>
                  <text x="192" y="196">transport</text>
                  <text x="296" y="196">parameter=CIDFI</text>
                  <text x="60" y="228">STUN</text>
                  <text x="128" y="228">Indication,</text>
                  <text x="228" y="228">nonce=12345,</text>
                  <text x="324" y="228">HMAC=8f93e</text>
                  <text x="208" y="244">X</text>
                  <text x="244" y="244">(lost)</text>
                  <text x="68" y="276">HTTPS:</text>
                  <text x="116" y="276">"Map</text>
                  <text x="172" y="276">DCID=xyz</text>
                  <text x="220" y="276">as</text>
                  <text x="252" y="276">high</text>
                  <text x="320" y="276">importance"</text>
                  <text x="68" y="308">HTTPS:</text>
                  <text x="116" y="308">403,</text>
                  <text x="152" y="308">new</text>
                  <text x="212" y="308">Nonce=5678</text>
                  <text x="60" y="340">STUN</text>
                  <text x="120" y="340">Indicate,</text>
                  <text x="208" y="340">nonce=5678,</text>
                  <text x="300" y="340">HMAC=aaf3c</text>
                  <text x="472" y="372">discarded</text>
                  <text x="196" y="404">"I</text>
                  <text x="224" y="404">saw</text>
                  <text x="252" y="404">my</text>
                  <text x="292" y="404">nonce,</text>
                  <text x="340" y="404">HMAC</text>
                  <text x="372" y="404">is</text>
                  <text x="412" y="404">valid"</text>
                  <text x="320" y="420">|</text>
                  <text x="68" y="436">HTTPS:</text>
                  <text x="116" y="436">"Map</text>
                  <text x="172" y="436">DCID=xyz</text>
                  <text x="220" y="436">as</text>
                  <text x="252" y="436">high</text>
                  <text x="320" y="436">importance"</text>
                  <text x="52" y="468">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                 CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  HTTPS: Enroll CIDFI router to partipate              |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, HMAC=8f93e             |
  +--------------------> X (lost)      |                  |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  HTTPS: 403, new Nonce=5678        |                  |
  |<-----------------------------------|                  |
  |  STUN Indicate, nonce=5678, HMAC=aaf3c                |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  Ok                                |                  |
  |<-----------------------------------+                  |
]]></artwork>
          </artset>
        </figure>
        <t>There are two types of metadata exchanged, described in the following sub-sections.</t>
        <section anchor="server-to-network">
          <name>Server to Network Elements</name>
          <t>The server communicates to network elements via the client which then
communicates with the network element(s).  While this adds
communication delay, it allows the user at the client to authorize
the metadata communication about its own incoming (and outgoing) traffic.</t>
          <t>The communication from the client to the server are using a CIDFI-dedicated
QUIC stream over the same QUIC connection as their primary communication.</t>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="496" viewBox="0 0 496 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,272" fill="none" stroke="black"/>
                <path d="M 176,128 L 176,144" fill="none" stroke="black"/>
                <path d="M 176,184 L 176,232" fill="none" stroke="black"/>
                <path d="M 320,104 L 320,264" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,272" fill="none" stroke="black"/>
                <path d="M 32,96 L 472,96" fill="none" stroke="black"/>
                <path d="M 24,144 L 168,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 312,176" fill="none" stroke="black"/>
                <path d="M 32,208 L 176,208" fill="none" stroke="black"/>
                <path d="M 32,240 L 320,240" fill="none" stroke="black"/>
                <path d="M 24,272 L 464,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,272 460,266.4 460,277.6" fill="black" transform="rotate(0,464,272)"/>
                <polygon class="arrowhead" points="320,176 308,170.4 308,181.6" fill="black" transform="rotate(0,312,176)"/>
                <polygon class="arrowhead" points="176,144 164,138.4 164,149.6" fill="black" transform="rotate(0,168,144)"/>
                <polygon class="arrowhead" points="40,240 28,234.4 28,245.6" fill="black" transform="rotate(180,32,240)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                <g class="text">
                  <text x="168" y="36">CIDFI-aware</text>
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="28" y="52">client</text>
                  <text x="112" y="52">Wi-Fi</text>
                  <text x="164" y="52">Access</text>
                  <text x="216" y="52">Point</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="468" y="52">server</text>
                  <text x="176" y="68">|</text>
                  <text x="320" y="68">|</text>
                  <text x="60" y="84">QUIC</text>
                  <text x="104" y="84">CIDFI</text>
                  <text x="160" y="84">stream:</text>
                  <text x="212" y="84">"Map</text>
                  <text x="268" y="84">DCID=xyz</text>
                  <text x="316" y="84">as</text>
                  <text x="348" y="84">high</text>
                  <text x="416" y="84">importance"</text>
                  <text x="60" y="116">"Map</text>
                  <text x="116" y="116">DCID=xyz</text>
                  <text x="164" y="116">as</text>
                  <text x="60" y="132">high</text>
                  <text x="128" y="132">importance"</text>
                  <text x="60" y="164">"Map</text>
                  <text x="116" y="164">DCID=xyz</text>
                  <text x="164" y="164">as</text>
                  <text x="196" y="164">high</text>
                  <text x="264" y="164">importance"</text>
                  <text x="52" y="196">Ok</text>
                  <text x="52" y="228">Ok</text>
                  <text x="60" y="260">QUIC</text>
                  <text x="104" y="260">CIDFI</text>
                  <text x="160" y="260">stream:</text>
                  <text x="204" y="260">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
               CIDFI-aware       CIDFI-aware
client     Wi-Fi Access Point    edge router           server
  |                  |                 |                  |
  |  QUIC CIDFI stream: "Map DCID=xyz as high importance" |
  |<------------------------------------------------------+
  |  "Map DCID=xyz as                  |                  |
  |  high importance"|                 |                  |
  +----------------->|                 |                  |
  |  "Map DCID=xyz as high importance" |                  |
  +----------------------------------->|                  |
  |  Ok              |                 |                  |
  |<-----------------+                 |                  |
  |  Ok              |                 |                  |
  |<-----------------------------------+                  |
  |  QUIC CIDFI stream: Ok             |                  |
  +------------------------------------------------------>|
]]></artwork>
          </artset>
          <t>To each of the network elements authorized by the client, the client
sends the mappings of the server's transmitted Destination CIDs to
packet metadata (see {#packet-metadata}).</t>
        </section>
        <section anchor="network-to-server">
          <name>Network Element to Server</name>
          <t>The network element sends network performance information to the server
which is intended to influence the sender's traffic rate (such as
improving or reducing fidelity of the audio or video).  In the figure below
the CNE informs the client of reduced bandwidth and the
client informs the server using CIDFI.</t>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="448" viewBox="0 0 448 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,192" fill="none" stroke="black"/>
                <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
                <path d="M 320,168 L 320,192" fill="none" stroke="black"/>
                <path d="M 424,64 L 424,192" fill="none" stroke="black"/>
                <path d="M 32,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 24,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 32,160 L 424,160" fill="none" stroke="black"/>
                <path d="M 24,192 L 312,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="424,128 412,122.4 412,133.6" fill="black" transform="rotate(0,416,128)"/>
                <polygon class="arrowhead" points="320,192 308,186.4 308,197.6" fill="black" transform="rotate(0,312,192)"/>
                <polygon class="arrowhead" points="40,160 28,154.4 28,165.6" fill="black" transform="rotate(180,32,160)"/>
                <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                <g class="text">
                  <text x="168" y="36">CIDFI-aware</text>
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="28" y="52">client</text>
                  <text x="112" y="52">Wi-Fi</text>
                  <text x="164" y="52">Access</text>
                  <text x="216" y="52">Point</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="420" y="52">server</text>
                  <text x="176" y="68">|</text>
                  <text x="84" y="84">"bandwidth</text>
                  <text x="144" y="84">now</text>
                  <text x="188" y="84">1Mbps"</text>
                  <text x="60" y="116">QUIC</text>
                  <text x="104" y="116">CIDFI</text>
                  <text x="160" y="116">stream:</text>
                  <text x="236" y="116">"bandwidth</text>
                  <text x="296" y="116">now</text>
                  <text x="340" y="116">1Mbps"</text>
                  <text x="60" y="148">QUIC</text>
                  <text x="104" y="148">CIDFI</text>
                  <text x="160" y="148">stream:</text>
                  <text x="204" y="148">Ok</text>
                  <text x="320" y="148">|</text>
                  <text x="52" y="180">Ok</text>
                  <text x="176" y="180">|</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
               CIDFI-aware       CIDFI-aware
client     Wi-Fi Access Point    edge router     server
  |                  |                 |            |
  |  "bandwidth now 1Mbps"             |            |
  |<-----------------------------------+            |
  |  QUIC CIDFI stream: "bandwidth now 1Mbps"       |
  +------------------------------------------------>|
  |  QUIC CIDFI stream: Ok             |            |
  |<------------------------------------------------+
  |  Ok              |                 |            |
  +----------------------------------->|            |
]]></artwork>
          </artset>
          <t>The communication from the client to the server is using a CIDFI-dedicated
QUIC stream over the same QUIC connection as their primary communication.</t>
          <t>The CNE can update the client with whenever
the metadata about the connection changes significantly, but <bcp14>MUST NOT</bcp14>
update more frequently than once every second.</t>
          <t>The metadata exchanged over this channel is described in <xref target="metadata-exchanged"/>.</t>
        </section>
      </section>
      <section anchor="ongoing-metadata-exchange">
        <name>Ongoing Metadata Exchange</name>
        <t>For the duration of the primary QUIC connection between the client and
server, the client relays network element metadata changes to the server, and server's
transmitted QUIC Destination CID to the network elements.</t>
      </section>
    </section>
    <section anchor="load-balancers">
      <name>Interaction with Load Balancers</name>
      <t>HTTPS servers, including QUIC servers, are frequently behind load balancers.</t>
      <t>With CIDFI, all the communications to the load-balanaced QUIC server are over the same UDP 4-tuple
as the primary QUIC connection but in a different QUIC stream.  This means
no changes are required to ECMP load balancers or to CID-aware load balancers
when using a CIDFI-aware back-end QUIC server.</t>
      <t>Load balancers providing QUIC-to-TCP interworking is incompatible with
CIDFI because TCP lacks QUIC's stream identification.</t>
    </section>
    <section anchor="topology">
      <name>Topology Change</name>
      <t>When the topology changes the client will transmit from a new IP address
-- such as switching to a backup WAN connection, or such as switching
from Wi-Fi to 5G.  If using QUIC, QUIC server will consider this a
connection migration and will issue a PATH_CHALLENGE.  If the client
is aware of the topology change (such as attaching to a different
network), the client would also change its QUIC Destination CID (<xref section="9" sectionFormat="of" target="QUIC"/>).</t>
      <t>If the QUIC CIDFI-aware client is otherwise unaware of a topology change
and receives a QUIC PATH_CHALLENGE then the CIDFI-aware client <bcp14>SHOULD</bcp14>
re-discover its CIDFI network elements <xref target="discovery"/>.  If that
set of network elements differs from the previous set, the client
<bcp14>SHOULD</bcp14> continue with normal CIDFI processing.</t>
      <ul empty="true">
        <li>
          <t>todo: include discussion of <xref target="DTLS-CID"/> client and discussion
of its ICE interaction, if any?</t>
        </li>
      </ul>
    </section>
    <section anchor="metadata-exchanged">
      <name>Details of Metadata Exchanged</name>
      <t>This section describes the metadata that can be exchanged from a
CNE to a server (generally network
performance information) and from the server to the CNE.</t>
      <section anchor="server-to-cidfi-aware-network-element">
        <name>Server to CIDFI-aware Network Element</name>
        <t>Because there is no direct communication from the server to
the network element the communication is relayed through the client.</t>
        <t>The communications from servers to network elements do not occur directly,
but rather through the client.</t>
        <t>Two types of mapping metadata are described below: metadata parameters
and DSCP values.</t>
        <section anchor="mapping-parameters">
          <name>Mapping Metadata Parameters to DCIDs</name>
          <t>Several of metadata parameters can be mapped to Destination CIDs:</t>
          <dl>
            <dt>Importance:</dt>
            <dd>
              <t>Low/Medium/High importance, relative to other CIDs within this
same UDP 4-tuple.</t>
            </dd>
            <dt>Delay budget:</dt>
            <dd>
              <t>Time in milliseconds until this packet is worthless to the receiver.
This is counted from when the packet arrives at the CNE
to when it is transmitted; other delays may occur
before or after that event occurs.  The receiver knows its own jitter
(playout) buffer length and the client and server can calculate the
one-way delay using timestamps.  With that information, the client can
adjust the server's signaled delay budget with the client's own
knowledge.  TODO: provide enough details to create interoperable
implementations.</t>
            </dd>
          </dl>
          <t>Over the CIDFI-dedicated QUIC stream, the server sends mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <artwork><![CDATA[
  {"metadata-parameters":[{"quicversion":1,
    "dcidlength":3,
       "map":[
       {"import":17,"burst":83,"delaybudget":71,"dcids":[551,381]},
       {"import":3,"burst":888,"delaybudget":180,"dcids":[89,983]},
       {"import":7,"burst":37,"delaybudget":55,"dcids":[33]}]}]}
]]></artwork>
        </section>
        <section anchor="mapping-dscp">
          <name>Mapping DiffServ Code Point (DSCP) to DCIDs</name>
          <t>A mapping from Destination CID to DiffServ code point
<xref target="RFC2474"/> leverages existing DiffServ handling that may already
exist in the CIDFI network element.  If there are downstream network
elements configured with the same DSCP the CIDFI
network element could mark the packet with that code point as well.</t>
          <t>Signaling the DSCP values for different QUIC Destination CIDs
increases the edge network's confidence that the sender's DiffServ intent
is preserved into the edge network, even if the DSCP bits were
modified en route to the edge network (e.g., <xref target="pathologies"/>).</t>
          <t>Over the CIDFI-dedicated QUIC stream, the server sends the mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <figure anchor="fig-dscp-json">
            <name>Example JSON for DSCP Mapping</name>
            <artwork align="left"><![CDATA[
  {"dscp":[{"quicversion":1,
    "dcidlength":3,
    "map":[
      {"dscp":10,"dcids":[123,456]},
      {"dscp":46,"dcids":[998,183]}]}]}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="cidfi-aware-network-element-to-server">
        <name>CIDFI-aware Network Element to Server</name>
        <t>The CIDFI-aware client informs the network element of the client's
received Destination CIDs.  As bandwidth availability to that client
changes, the CNE updates the client with new
metadata.</t>
        <artwork><![CDATA[
  {"dcid":123,
   "bandwidth":"1Mbps"}
]]></artwork>
        <t>The client then sends that information to the server in the CIDFI-dedicated
QUIC stream associated with that same Connection ID.</t>
      </section>
    </section>
    <section anchor="discussion-points">
      <name>Discussion Points</name>
      <t>This section discusses known issues that would benefit from wider discussion.</t>
      <section anchor="client-versus-server-signaling-cid-to-importance-mapping">
        <name>Client versus Server Signaling CID-to-importance Mapping</name>
        <t>Need to evaluate number of round trips (and other overhead) of client
signaling CID-to-importance mapping or server signaling CID-to-importance
mapping.</t>
      </section>
      <section anchor="overhead-of-quic-dcid-packet-examination">
        <name>Overhead of QUIC DCID Packet Examination</name>
        <t>If CID-to-importance metadata was signaled by the server as described
in <xref target="server-to-network"/>, the CNE have to
examine the UDP payload of each packet for a matching Destination CID
for the lifetime of the connection.  This is somewhat assuaged by
the STUN nonce transmitted which may well be an easier signal to
identify.</t>
      </section>
      <section anchor="interaction-with-wi-fi-packet-aggregation">
        <name>Interaction with Wi-Fi Packet Aggregation</name>
        <t>Per-packet metadata influences transmission of that packet but may
well conflict with some Wi-Fi optimizations (e.g., <xref target="wifi-aggregation"/>)
and similar 5G optimizations.</t>
        <t>This impact needs further study.</t>
      </section>
      <section anchor="overhead-of-mapping-cids-to-packet-metadata">
        <name>Overhead of Mapping CIDs to Packet Metadata</name>
        <t>Network Elements have to maintain a mapping between each UDP 4-tuple
and QUIC CID and its DSCP code point.  This also needs updating
whenever sender changes its CID.  This is awkward.</t>
        <t>An alternative is a fixed mapping of QUIC CIDs to their meanings,
as proposed in <xref target="I-D.zmlk-quic-te"/>.  However, this will ossify
the meaning of those QUIC CIDs.  It also requires all networks to
agree on the meaning of those QUIC CIDs.</t>
      </section>
      <section anchor="improve-cidfi-initialization-time">
        <name>Improve CIDFI Initialization Time</name>
        <t>Find approaches to further reduce network communications to start CIDFI.</t>
      </section>
      <section anchor="primary-quic-channel-cid-change-primary-cid-change">
        <name>Primary QUIC Channel CID Change {#primary-cid-change}:</name>
        <t>Because the CIDFI network element, QUIC server, and QUIC client all
cooperate to share the primary QUIC connection's Destination CID,
when a new CIDFI network element is involved (e.g., due to client
attaching to a different network), a new Destination CID <bcp14>SHOULD</bcp14>
be used for the reasons discussed in <xref section="9.5" sectionFormat="of" target="QUIC"/>}.</t>
        <t>We need clear way to signal which DCIDs can be used for 'this'
network attach and which DCIDs are for a migrated connection.  Probably
belongs in the QUIC transport parameter signaling?</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Because the sender's QUIC Destination Connection ID is mapped to
packet importance, and the DCID remains the same for many packets, an
attacker could determine which DCIDs are important by causing
interference on the bandwidth-constrained link (by creating other
legitimate traffic or creating radio interference) and observing which
DCIDs are transmitted versus which DCIDs are dropped.  This is a side-
effect of using fixed identifier (DCIDs) rather than encrypting
the packet importance.  This was a design trade-off to reduce the
CPU effort on the CNEs.  A mitigation is using
several DCIDs for every packet importance.</t>
      <t>Communications are relayed through the client because only the
client and server knows the identity of the server and can validate
its certificate.  The protocol in this specification does not disclose
the server's identity to the CIDFI network element.</t>
      <t>For an attacker to succeed with the nonce challenge against a victim's
UDP 4-tuple the attacker has to send a STUN CIDFI-NONCE packet using
the victim's source IP address and a valid HMAC.  A valid HMAC can
only be obtained by the attacker making its own connection to the
CIDFI server and spoofing the source IP address and UDP port of the
victim.  Such spoofing of a victim's IP address is prevented by the
network using network ingress filtering (<xref target="RFC2827"/>, <xref target="RFC7513"/>,
<xref target="RFC6105"/>, and/or <xref target="RFC6620"/>).  In the event network ingress
filtering is not configured or configured improperly, the CIDFI
network element can detect an attack if the client implements CIDFI.
The CIDFI network element receive two HTTPS connections describing the
same DCID (one connection from the attacker, another from the victim).
The CIDFI network element will issue unique Nonces and HMACs to both
the attacker and victim, and the attacker and victim will both send
the STUN indication on that same UDP 4-tuple.  This should never
normally occur and should generate an alarm on the CIDFI network
element.  In this situation, it is recommended both attack and victim
be denied CIDFI access.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-tp">
        <name>New QUIC Transport Parameter</name>
        <t>This document requests IANA to register the following new permanent QUIC transport parameter
in the "QUIC Transport Parameters" registry under the "QUIC" registry group available at <xref target="IANA-QUIC"/>:</t>
        <table>
          <name>New QUIC Transport Parameter</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Parameter Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">CIDFI</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-uri">
        <name>New Well-known URI "cidfi-aware"</name>
        <t>This document requests IANA to register the new well-known URI "cidfi" in the
"Well-Known URIs" registry available at <xref target="IANA-WKU"/>.</t>
      </section>
      <section anchor="iana-sudn">
        <name>New Special-use Domain Name</name>
        <t>Register new special-use domain name cidfi.arpa for DNS SVCB discovery.</t>
      </section>
      <section anchor="iana-svcb">
        <name>New DNS Service Binding (SVCB)</name>
        <t>This document requests IANA to register the new DNS SVCB "_cidfi-aware" in
the "DNS Service Bindings (SVCB)" registry available at <xref target="IANA-SVCB"/>.</t>
      </section>
      <section anchor="iana-stun">
        <name>New STUN Attribute</name>
        <t>This document requests IANA to register the new STUN attribute "CIDFI-NONCE"
in the "STUN Attributes" registry available at <xref target="IANA-STUN"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC">
          <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="DTLS-CID">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </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>
        <reference anchor="CBOR">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="I-D.ietf-dnsop-svcb-https">
          <front>
            <title>Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)</title>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Google</organization>
            </author>
            <author fullname="Mike Bishop" initials="M." surname="Bishop">
              <organization>Akamai Technologies</organization>
            </author>
            <author fullname="Erik Nygren" initials="E." surname="Nygren">
              <organization>Akamai Technologies</organization>
            </author>
            <date day="11" month="March" year="2023"/>
            <abstract>
              <t>   This document specifies the "SVCB" and "HTTPS" DNS resource record
   (RR) types to facilitate the lookup of information needed to make
   connections to network services, such as for HTTP origins.  SVCB
   records allow a service to be provided from multiple alternative
   endpoints, each with associated parameters (such as transport
   protocol configuration), and are extensible to support future uses
   (such as keys for encrypting the TLS ClientHello).  They also enable
   aliasing of apex domains, which is not possible with CNAME.  The
   HTTPS RR is a variation of SVCB for use with HTTP [HTTP].  By
   providing more information to the client before it attempts to
   establish a connection, these records offer potential benefits to
   both performance and privacy.

   TO BE REMOVED: This document is being collaborated on in Github at:
   https://github.com/MikeBishop/dns-alt-svc
   (https://github.com/MikeBishop/dns-alt-svc).  The most recent working
   version of the document, open issues, etc. should all be available
   there.  The authors (gratefully) accept pull requests.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-svcb-https-12"/>
        </reference>
        <reference anchor="STUN">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with NAT traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution.</t>
              <t>This document obsoletes RFC 5389.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8489"/>
          <seriesInfo name="DOI" value="10.17487/RFC8489"/>
        </reference>
        <reference anchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="pathologies" target="https://www.sciencedirect.com/science/article/pii/S0140366417312835">
          <front>
            <title>Exploring DSCP modification pathologies in the Internet</title>
            <author initials="A." surname="Custura" fullname="Ana Custura">
              <organization/>
            </author>
            <author initials="R." surname="Secchi" fullname="Raffaello Secchi">
              <organization/>
            </author>
            <author initials="G." surname="Fairhurst" fullname="Gorry Fairhurst">
              <organization/>
            </author>
            <date year="2018" month="May"/>
          </front>
        </reference>
        <reference anchor="wifi-aggregation" target="https://www.usenix.org/conference/atc17/technical-sessions/presentation/hoilan-jorgesen">
          <front>
            <title>Ending the Anomaly: Achieving Low Latency and Airtime Fairness in WiFi</title>
            <author initials="T." surname="Høiland-Jørgensen" fullname="Toke Høiland-Jørgensen">
              <organization/>
            </author>
            <author initials="M." surname="Kazior" fullname="Michał Kazior">
              <organization/>
            </author>
            <author initials="D." surname="Täht" fullname="Dave Täht">
              <organization/>
            </author>
            <author initials="P." surname="Hurtig" fullname="Per Hurtig">
              <organization/>
            </author>
            <author initials="A." surname="Brunstrom" fullname="Anna Brunstrom">
              <organization/>
            </author>
            <date year="2017" month="May" day="22"/>
          </front>
        </reference>
        <reference anchor="IANA-QUIC" target="https://www.iana.org/assignments/quic/quic.xhtml">
          <front>
            <title>QUIC</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July" day="26"/>
          </front>
        </reference>
        <reference anchor="IANA-WKU" target="https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml">
          <front>
            <title>Well-known URIs</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June" day="20"/>
          </front>
        </reference>
        <reference anchor="IANA-SVCB" target="https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml">
          <front>
            <title>DNS Service Bindings (SVCB)</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June" day="13"/>
          </front>
        </reference>
        <reference anchor="IANA-STUN" target="https://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml">
          <front>
            <title>STUN Attributes</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="March" day="20"/>
          </front>
        </reference>
        <reference anchor="ECN">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="I-D.joras-sadcdn">
          <front>
            <title>Securing Ancillary Data for Communicating with Devices in the Network</title>
            <author fullname="Matt Joras" initials="M." surname="Joras">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   There is increasing need for application endpoints to exchange rich
   information with devices in the network and secure that information
   from on-path observers.  This document presents some current problems
   and the broad strokes of potential solutions.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/mjoras/sadcdn.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-joras-sadcdn-01"/>
        </reference>
        <reference anchor="I-D.ietf-avtcore-rtp-over-quic">
          <front>
            <title>RTP over QUIC (RoQ)</title>
            <author fullname="Joerg Ott" initials="J." surname="Ott">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Mathis Engelbart" initials="M." surname="Engelbart">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="26" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a minimal mapping for encapsulating Real-time
   Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets
   within the QUIC protocol.  This mapping is called RTP over QUIC
   (RoQ).  It also discusses how to leverage state from the QUIC
   implementation in the endpoints, in order to reduce the need to
   exchange RTCP packets and how to implement congestion control and
   rate adaptation without relying on RTCP feedback.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-05"/>
        </reference>
        <reference anchor="RFC7839">
          <front>
            <title>Access-Network-Identifier Option in DHCP</title>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="S. Gundavelli" initials="S." surname="Gundavelli"/>
            <author fullname="M. Grayson" initials="M." surname="Grayson"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>This document specifies the format and mechanism that is to be used for encoding Access-Network Identifiers in DHCPv4 and DHCPv6 messages by defining new Access-Network-Identifier options and sub-options.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7839"/>
          <seriesInfo name="DOI" value="10.17487/RFC7839"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="NAPT">
          <front>
            <title>Traditional IP Network Address Translator (Traditional NAT)</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="K. Egevang" initials="K." surname="Egevang"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation. In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3022"/>
          <seriesInfo name="DOI" value="10.17487/RFC3022"/>
        </reference>
        <reference anchor="NAT">
          <front>
            <title>IP Network Address Translator (NAT) Terminology and Considerations</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <date month="August" year="1999"/>
            <abstract>
              <t>This document attempts to describe the operation of NAT devices and the associated considerations in general, and to define the terminology used to identify various flavors of NAT. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2663"/>
          <seriesInfo name="DOI" value="10.17487/RFC2663"/>
        </reference>
        <reference anchor="I-D.zmlk-quic-te">
          <front>
            <title>QUIC-enabled Service Differentiation for Traffic Engineering</title>
            <author fullname="Zhilong Zheng" initials="Z." surname="Zheng">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="5" month="May" year="2023"/>
            <abstract>
              <t>   This document defines a method for supporting QUIC-enabled service
   differentiation for traffic engineering through multipath and QUIC
   connection identifier (CID) encoding.  This approach enables end-host
   networking stacks and applications to select packet routing paths in
   a wide area network (WAN), potentially improving the end-to-end
   performance, cost, and reliability.  The proposed method can be used
   in conjunction with segment routing traffic engineering technologies,
   such as SRv6 TE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-zmlk-quic-te-00"/>
        </reference>
        <reference anchor="RFC2827">
          <front>
            <title>Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing</title>
            <author fullname="P. Ferguson" initials="P." surname="Ferguson"/>
            <author fullname="D. Senie" initials="D." surname="Senie"/>
            <date month="May" year="2000"/>
            <abstract>
              <t>This paper discusses a simple, effective, and straightforward method for using ingress traffic filtering to prohibit DoS (Denial of Service) attacks which use forged IP addresses to be propagated from 'behind' an Internet Service Provider's (ISP) aggregation point. 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="38"/>
          <seriesInfo name="RFC" value="2827"/>
          <seriesInfo name="DOI" value="10.17487/RFC2827"/>
        </reference>
        <reference anchor="RFC7513">
          <front>
            <title>Source Address Validation Improvement (SAVI) Solution for DHCP</title>
            <author fullname="J. Bi" initials="J." surname="Bi"/>
            <author fullname="J. Wu" initials="J." surname="Wu"/>
            <author fullname="G. Yao" initials="G." surname="Yao"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This document specifies the procedure for creating a binding between a DHCPv4/DHCPv6-assigned IP address and a binding anchor on a Source Address Validation Improvement (SAVI) device. The bindings set up by this procedure are used to filter packets with forged source IP addresses. This mechanism complements BCP 38 (RFC 2827) ingress filtering, providing finer-grained source IP address validation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7513"/>
          <seriesInfo name="DOI" value="10.17487/RFC7513"/>
        </reference>
        <reference anchor="RFC6105">
          <front>
            <title>IPv6 Router Advertisement Guard</title>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="C. Popoviciu" initials="C." surname="Popoviciu"/>
            <author fullname="J. Mohacsi" initials="J." surname="Mohacsi"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>Routed protocols are often susceptible to spoof attacks. The canonical solution for IPv6 is Secure Neighbor Discovery (SEND), a solution that is non-trivial to deploy. This document proposes a light-weight alternative and complement to SEND based on filtering in the layer-2 network fabric, using a variety of filtering criteria, including, for example, SEND status. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6105"/>
          <seriesInfo name="DOI" value="10.17487/RFC6105"/>
        </reference>
        <reference anchor="RFC6620">
          <front>
            <title>FCFS SAVI: First-Come, First-Served Source Address Validation Improvement for Locally Assigned IPv6 Addresses</title>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This memo describes First-Come, First-Served Source Address Validation Improvement (FCFS SAVI), a mechanism that provides source address validation for IPv6 networks using the FCFS principle. The proposed mechanism is intended to complement ingress filtering techniques to help detect and prevent source address spoofing. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6620"/>
          <seriesInfo name="DOI" value="10.17487/RFC6620"/>
        </reference>
        <reference anchor="RTP">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="SRTP">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="cryptex">
          <front>
            <title>Completely Encrypting RTP Header Extensions and Contributing Sources</title>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="S. Murillo" initials="S." surname="Murillo"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>While the Secure Real-time Transport Protocol (SRTP) provides confidentiality for the contents of a media packet, a significant amount of metadata is left unprotected, including RTP header extensions and contributing sources (CSRCs). However, this data can be moderately sensitive in many applications. While there have been previous attempts to protect this data, they have had limited deployment, due to complexity as well as technical limitations.</t>
              <t>This document updates RFC 3711, the SRTP specification, and defines Cryptex as a new mechanism that completely encrypts header extensions and CSRCs and uses simpler Session Description Protocol (SDP) signaling with the goal of facilitating deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9335"/>
          <seriesInfo name="DOI" value="10.17487/RFC9335"/>
        </reference>
        <reference anchor="I-D.ietf-moq-requirements">
          <front>
            <title>Media Over QUIC - Use Cases and Requirements for Media Transport Protocol Design</title>
            <author fullname="James Gruessing" initials="J." surname="Gruessing">
              <organization>Nederlandse Publieke Omroep</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document describes use cases and requirements that guide the
   specification of a simple, low-latency media delivery solution for
   ingest and distribution, using either the QUIC protocol or
   WebTransport as transport protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-requirements-01"/>
        </reference>
      </references>
    </references>
    <?line 913?>

<section anchor="extending">
      <name>Extending CIDFI to Other Protocols</name>
      <t>CIDFI can be extended to other protocols including TCP, SCTP, RTP and SRTP,
and bespoke UDP protocols.</t>
      <t>An extension to each protocol is described below which retains the
ability of the client to prove its ownership of the 5-tuple to a CNE.</t>
      <section anchor="tcp">
        <name>TCP</name>
        <t>To prove ownership of the TCP 4-tuple, TCP can utilize a new TCP
option to carry the CNE's nonce and HMAC-output.  This TCP option can be carried
in both the TCP SYN and in some subequent packets to avoid consuming the entire
TCP option space (40 bytes).  Sub-options can be defined to carry pieces of
the Nonce and HMAC output, with the first piece of the Nonce in the TCP SYN
so the CIDFI network element can be triggered to begin looking for the subsequent
TCP frames containing the rest of the CIDFI nonce and CIDFI HMAC-output.  For example,</t>
        <ol spacing="normal" type="1"><li>send TCP SYN + CIDFI option (including Nonce bits 0-63)</li>
          <li>if received TCP SYNACK does not indicate CIDFI support, stop sending CIDFI option</li>
          <li>send next TCP packet + CIDFI option (including Nonce bytes 64-128)</li>
          <li>send next TCP packet + CIDFI option (including HMAC-output bits 0-127)</li>
          <li>send next TCP packet + CIDFI option (including HMAC-output bytes 128-256)</li>
        </ol>
        <t>To shorten this further we might truncate the HMAC output and/or
truncate the Nonce after security evaluation.</t>
      </section>
      <section anchor="sctp">
        <name>SCTP</name>
        <t>If SCTP is sent directly over IP, proof of ownership of the
SCTP 4-tuple can be achieved using an extension to its INIT
packets, similar to what is described above for TCP SYN.</t>
        <t>If SCTP is run over UDP, the same proof of ownership of the UDP
4-tuple as described in <xref target="ownership"/> can be performed.</t>
      </section>
      <section anchor="rtp-and-srtp">
        <name>RTP and SRTP</name>
        <t>The RTP Synchronization Source (SSRC) is in the clear for <xref target="RTP"/>, <xref target="SRTP"/>,
and <xref target="cryptex"/>.  If the SSRC is signaled similarly to CID, RTP could also
benefit from CIDFI.  CIDFI network elements could be told the mapping of SSRC values to
importance and schedule those SSRCs accordingly.  However, SSRC is used in playout (jitter)
buffers and a new SSRC seen by a receiver will cause confusion.  Thus, overloading SSRC
to mean both 'packet importance' for CIDFI and 'synchronization source' will require
engineering work on the RTP receiver to treat all the signaled SSRCs as one source for
purposes of its playout buffer.</t>
        <t>RTP over QUIC <xref target="I-D.ietf-avtcore-rtp-over-quic"/> is another approach which exposes
QUIC headers to the network (which have CIDs) and does not overload the RTP SSRC.  The
Media over QUIC (MOQ) working group includes RTP over QUIC as one of its use cases
<xref section="3.1" sectionFormat="of" target="I-D.ietf-moq-requirements"/>.</t>
      </section>
      <section anchor="bespoke-udp-application-protocols">
        <name>Bespoke UDP Application Protocols</name>
        <t>To work with CIDFI, other UDP application protocols would have to
prove ownership of their UDP 4-tuple (<xref target="ownership"/>) and extend their
protocol to include a connection identifier in the first several bits
of each of their UDP packets.</t>
        <t>Alternatively, rather than modifying the application protocol it could be run
over <xref target="QUIC"/> or <xref target="DTLS-CID"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Dave Täht, Magnus Westerlund, Christian Huitema, Gorry Fairhurst,
and Tom Herbert for hallway discussions and feedback at TSVWG that encouraged
the authors to consider the approach described in this document.  Thanks to
Ben Schwartz for suggesting PvD as an alternative discovery mechanism.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1923bcuJXoO74CKT9YGhdl3S3rxN2RJdnWtC1pLDlOJqtX
FkWiqthmkWVeJFdLnofzJedhPmKeJ2v+6+wbQJDFku3uyeUhSla7ikUAGxsb
+46NIAhUlVSp2deDw5Mj/SLNb/RJFidRWOWFXoFnL05WByq8uirMNb/04mSg
4Gczzov5vi6rWCkV51EWTqGXuAhHVXCTZOMgSuJREqxvqLK+miZlmeRZNZ/B
OyfHly8UdLalwsKE0OmpqW7y4sNA4X/HRV7Pmof6PfwHutMv8flAfTBzeBzv
Kx3oujSFNp9mpkhMFhl8dBVm8U0SVxP8MiuSvEiqOX42WZFEExPrkTHxVRh9
wIdTEychTAHAmMIY+Ag+plUyNfwbPvm3/AL/2XmJ/32fBC8S/sD/Hl2+vtCH
eZaZqIIZ6pPYZFUySkxhfw0u3l6eU0fvTg6Xv4q/KnVtstrA5LRFw8HbS30A
QA3gGaNv0MGI1tMwSeF5WFS/S0w1WsuLMT4Oi2gCjydVNSv3Hz/Gt/BRcm3W
7GuP8cHjqyK/KQ18rh5ju3FSTeoraBmHGa7kY1pJ/CWFZS8rr095Y42brCU5
v/u4SwZrk2qaDpQqK1ifP4dpnsFE5qZUs2Rf/6nKo6Eu8wLWYVTCp/lUPlSw
ZtVQR/l0CqiCJ0Bn03A2g35/VCqsq0leICUAaFqP6jRlIjwKM1gfXE/4g1mG
WfJziCjf14dpXsf6Ih9VN0B8jMIhUHy0Ri9bOu97jV6I8jqrkO7fZUkF1HRR
IUp0PtIHUyDDKKS3DK/InywGfzfGB2swj8GPi+BeJkU9DVNTwlj6rYnjeQ/g
p/mHhDuPgKL39fMwGwMeC0PPCjOmt34Iiyyswg9hG1jc0S3IBh/yLK6SwgNs
Ea43+QT+jfXzvI7COEyKHrDOCoCDYcBtZIA43hqg8FIAiKGfrZ319fU2QC+g
WWRaEE15tLUrO9rvcuqbgVMqy4spDHpNuwM3C4z04vApd037DHgTP9vY3lUq
yUZNC3hlFgK1pPk4MeU+DayF8R1/mgEecUMdXRye62kew56MaH5+I51kupoY
wGVlisxU3IejQfoL5F+tGYMHWagP67Kqi3DJG2/D0Sg0aZrrCxPB3lzy2su8
KOb6BWBlUheljB0D6e3rzfWNvWB9R6YUFmNcA7s/b25u1sqIuGOcFMB3EJuP
5Qlu+CRKzeNZkjy+WN/YXt/a3d3eeLK1sbm3tYM4uwFMBOF4DOTF6608vA2O
gaoAa4iUgywHCoaFPYA5mGt8/BokyWuAMIvmGja9PkgK4qs4CaAPwicy0YH6
Mh4v8w9Gv/rLfwEDy+LgX//yXzDLrDTZktffAKcP/+f/wm74GQTAkpeOwmuj
L//yn5NqyQvnIFxe1QD0eOnqwvI+L+oMKD+fqmX4BymVJZ+I20Z5NjIF476K
Np48rkw0yYDY0qA0JCHLx7PCQIOK8P14kuOUg5+gsbHzdcv+BJY92NzEhTo5
OD0IaFP4K0QiZRlYSZiFLAJg4HFGDPbxxzqJ6D9rn5Bjt8bb3ArWnwSbu268
9z+8axPEeyDk4EOW32T63duTcvBtY9+41kFdJAvfl0C0G2yuO4gufn/4vA3S
0ekF7KziOomMfp4QwZZ6Bd9b/Ubw4qwMyuvoyn1YCtDGVgPQ5bvTFkD4QB9U
INiu6kq45FeDAIwkC2ZhAdQHPGjh+xKAtghDQRCAdANKDaNKKdBCrs0ctyk0
BW5bhfBjXlc6E60LKDVOkARL2rzttxQi8jqJ6zAFDhl9MFWpI5C5yXRW5LCr
kCN0dDNtypmJkjBN5zrP1A0woxSZgIxX6psJbFpd1iPYII0WR4PHJg3n+jos
kvAqSUH6rSl1OUlK1AZqxAy8UUaAUWDSE+A6UZoguqgtQHENqCHwojwHcAAz
wNdAQbRTBUAIvaCBIORJwYoatibljtVD7uLKAKca4+sgF6kXJ2ZAWtyLQkYU
4ggUHZR+a7wo0ySOU6PUA5QsRR7XpBwqdWGyGCEHRCHKNKwy6j26ngmUsJRZ
KYq1pmmBcE1S/HUO6i7JWlAtZdw0B2yDSl8ao29vvz8+PH0GonJrY3fv82ed
sMYv3Hyuy0lep7FOzbVJQbcZQUNVomkQ495eMvya1rQqVsEGuv4AK0JMHxEA
+HBkX+V6lgM0XSq5mRiWsiXNXgM1FQGCXePXAODKYaHwBSBjID8VXqNWe5Wa
hmaGPq0lI787EAugUQCICdAUEBLqbfCzQtCQjlbM2nhtaOm41EDjJtcfYSB8
mUkU3i2B6kpQFApvVP5VVTiBMW6IuMhnM6CSqzlBIFSxCqt+VMMWyX06wW2Z
EMnqDlUCkaUpPISOoAn2idiAdcmUWDfJz4AMS13hxIQxziqHMQu7OWllDOyS
KKHVgt95Lvy78nr2OoWlFETEFo1d4JA703KohqwFp9I3DP3G8o4oLGCZYxT8
JnSjM+fIRmlNNlw1CasGUoDsHqbSwwdGCegWmqxUvQINM9gFoPvoQZmA6Tc3
g1WZeoLILudlZaYKIC4BpQWysyIHayRPcVYACNAQMhSwP+rM7hDe5SHsIuQT
nz8j9ViTDjAYMtfwHt7eWvUUttoIVIUWLiviOooZFW0UJlj6yj/ad2UdfZZj
PjFNx4pALTuNcYHuZ0tNM9U0Q5HjeHubZd3ejpJxgGYjTAZXBrYIoRLYU9rM
CuyNMXAsJIZQloORjbzlhhjNTa7c7gncJoC1cjJhBdCZJtmHchVWdgamIG+n
wfMBgq6o2yAkCy02KOKRYslur5Bp1jNm3UyReWm4syHPO6MtsgQEfBGYfXVj
YDvD5KagKs8mYLVqwHZc4k6DPhLYsW/DOMnVQRShNDs1NzT7lbcHp6uWH1pU
4MRlfUBgO0pjMRWSxwHXMimnCreEL6uQrvBfXMedlzyBhXfAbCHlEmCLpwn0
A5NB60fFoJsnsNxlDXQfluzDwE70ycW5NvHYaLBvQVYIZmAIDROAxf4P/NNh
WF6Pne7r/931PfSf3qlHAf09gi/u4532nvY3u+PFxWfu4532ni5pxtRAzezH
u+ajN267GasMj4LnwSPCjqaPhBps84jx04a6Nbe7kCiARuOXF0a7s/DKY/jB
R+rdLAcRQPAuw47r4Y63VAAweK94+O1flkfBI/vCnWactHvoQ2rr6V2DiEes
JuWFw0ML5GWzaMFAnJIWwE7IG3n5cnt4EJ6FPciE2j0sWfm+tbgTxdG++5yf
w07Q9xHB3YqwhNXWwEuIwL7wTTjzmvUvyxeeflszUuySil5g9GJzEr2Wu7vm
yED8h/DUfYUX5DPzEXW7rx9Y4aGBoeJPAahW4+zZIEKVuhiwmfTMOX+PmHcO
9D7onONJ9Wxv7zMKfaN95i/rZsoKNMGknJBA6ghhYpEo5fyGCybACu9+3sya
duRwkUMCSSj+bp1CIGJBRRFOj5z/jCQpsn8PBkBqYSIDPLl01gdwcJLmqDm1
bAmSL6S4gqrJPk8UZCuy62jvrKojmHSScROYWYnSu09ss/6Hcl1HIBPRZ5mZ
G7BtUHzIJO7FDECmLBhOhyFYOiBY2Baei6KzAN3QU6J9DMAnVsI8DFY5QBeX
qGbLqvOK8LsGFz0AzbCYz1BX8PQ2jwKkIekyMs2gygMmdVBqGmNy4VdRjNC1
XCZTdKdbDQ22B0jk0rjWpObe3l4I4Ju4dt+fBEdrP+VFWAZlGEdx9vnzkMGy
9rUq0NZlOwwobLwAMMOBEAlwLYAXflXOcHeQ6yWQl8tA30L9eBFyUUYXhtQ9
Q4KuAvop2NdXJgMVvUILFHvEMEQQXlcRmFIBaFgB2Xvof4Jp4br6qjPM/wC2
WBnVpbVizCcw28gJySomTEkMH6fGww4ULVWm5dpQj2B2ky8kazTiIzQiWEPm
ffMBLGKMOZV68ObdxeVgyP/q0zP6/PYYtsHb4yP8fPHq4PVr90HJGxevzt69
Pmo+NS0Pz968OT494sbwVLceqcGbgz8OmMIHZ+eXJ2enB68HvF19swc3bIXI
hZ+AKc0Kg9Qflqq1os8Pz//7/21sAwp+A5b/5sbGU0Ayf9nbeLINX9D65tHy
LJ3LV3QIKNj4JiRuB/YCLOcsqWA9h6hNolqbaUA6spl/+RNi5sd9/duraLax
/Z08wAm3HlqctR4SzhafLDRmJPY86hnGYbP1vIPpNrwHf2x9t3j3Hv72e6Bq
o4ONve+/AxLCuIPa74/s4fYio8Vai8ge6WuLsA9Pj6kLjwNbEXjMHHjY4xtA
7qjKeoactGSaEFML/R82iGHtEPh/XdbkFQlFnMHIDx7o05y9zUDuLwA6b4vN
6mIGdhMs9L9enJ1yD0xMyDnMJ7L5SOaMQahBt6M0vIYuxK1CXIBYeMPFQAJW
YL2jd4XECFiHp8fCSzgIUKoQkBclM3JplWRys7PFjGBOLOqzKKd9b20aoOPD
52dv0ae193T7KSH1AYoglHgvcyBW8RWUskQTUCdSVCnYJBPZOMY3GXx8t4VG
WCWewQGBaUNgsGyXzexC+Q2mRz6Oe2SqXoGZr7LALtyEk4zbKBRp1IUv8AHB
+Q1AcoH24gWxXiY9X9Cxve/7GBr3bVGg9kF+NfbSFAnYtnM7iOr6LthZYrKy
LtC6rlwPsqhkuIpwBBuTPUDonrICTKV5FKaNtwOVyxSTC0DZOj24XGWfJMmQ
Epi0TvMQ9kuYYkdFCVM9h/HCaG7xvKA+IFUSu+LAA+ytHpyrRsNDpAu99elg
hCYWGpWxHgdACkCCkb8x5hPcCwsqSeytW9DNGJkAlkpsV+1xaBVWrHKH/gWT
jqy1n+UVsniOT/L7Obr/e1zZMr+2/mPdGVZvYqwTv+92cA8CMPSpL+riGlYl
tYjowN0at3QDN0xANa55El44NfFjoReemRjAgK4+AgGwSfDdoJzBVhTaakYk
f5HM2i11kl3nKXovcQgikWoBVmX3rQdQFje6YrM1Gy1jAduK9AjLsM8LgzEZ
jo9T/On3h8/1WxOhCrHMYxmSOt4TrdIDzqMhckbZD0ogBocoBCVaEje+YKd3
8A4UuiNy+ehT3J0D5GFrYTELW81rUuJYw2nvUTZawFKDPU+oh60/yzOmaZkP
dPMbp8HFWZnPCKCAYlgA1scafbQlI1Km9CaH/b3iFEu1uba9toXM9r6eVkm3
/7OHhDXOKMEJcQgG1wnhwqisMO/Q+TsfslLnfIHNY49NLMaCkE2UyCdORgtt
oUfUZUXwWmczhw5Q7HlG8ao4HokECiYBIkcbVCdpKpo4rwLMRDyxD0vBPHQg
UYTWQtHvUV2UKHsRAfA2EnyBOwEkuRIBjaoDrsf8XlROURiidK6LDJ2zgLby
BvpS1rbCZ4gVDEYtwDLU6By9MmmejdE8ak0JEbJiPgFnTM0aNFh1bm7W1l0z
7TdTbIvbpVmR2WAGw+pQfJNqyWzW9JPN9XV9csqYX6e9DSQo2Ui2qwwDFCuc
gJDOsmeTLU0vIFNFSf7sMX4K8GPAGLz9nl74LJk48NHK1mec+hQ4Uw7fWP1q
ADHVYs2b4l8bLkafeo/xqmmdVskkxxQ4omD3APAVzii6dnh+3NBsSVaA3RZ2
85QPl9KWJeOyIXZH2SVpsrlCZzqtezoPRAFBE55juaTNifp1Rk5vsgAzx3QP
qgp1JSDVy3yGGTugBpBA0bcPQvrts1JnGGgCy87jdfwbjC+NWArpFQ6T2sfA
hoaez0GnYAyBYOtExZwmLhzh9hZVaVS1sAOSs556yIxhkfHc3vIgQfMutGZN
XTDwmod/TZvLYuCiPfrtg2ZwZvICe4y5AlMSOgJ/m/u7mI6YEiKOruYqKcua
tXGmuS7bsgIUXUWDZXQ/aGSrMMUyr4vICHekHEe9sru9ChLmHrGAzoDUYLIb
ML90PvQtDG+GHMRrz1BZM8kRt+DBGSjsosMACSggKYj/ykbEutG7oWa2f52A
bg0DUxjdxOro1eG5zmdNTHDr5fm5Pj880yvnNu5zKDKWafmMXl7VJ54HTEy/
NX2QWWNLkdejDdQNBesxNUHjuNe73sj0YBtI8yqQh2KPhaTkMbtnZwGqOig9
b2+/Byvqyd4WW1EnjBxHTWhyRcbEZQvno7wJPwIFofsUSYX0jR565n6bPkdh
kgIUK8AC11r9AieI0jq2S7lIrnGOjjrQH2X3sX93ddiFpIS9XLZ20UGzF5nU
OxY3GJUPFkHnveS4lyOIGeilSV6D0ViZGXuavN3PYXxMM0C1DEUlrA3atGj5
l2utDdo1ISWeTqKXzGFlCRqYUxLNrX3P3yRsz1NgMrJmLLx4kKnOj0JXIv4n
oRdpLxtQJOcDBPlDnzGYQonew4HywYJ4HeDmCqk7aImKQFu7JAVu4DdApeuC
XZS4r6F5RvjysIAKFLKLcQaguQwLa9d4ZgZPqgTayip0e1znSSwuBZ6E3Q82
wA5cZYRufTtx9sSGSF1XGPUFKBAC1vNkvaaU5sI6+KvLy/OLtsPaW0Rk+Nic
zB8xOkt9/sPJHzQYU0ksUm0k2AYDuGL3gwES8SjkzcEfZaVyghSdTRE5D9hg
FMbcslasBdymNUpXya8qig97bXI0ZhFK/v7qzcEhKKURsAumeJpT12gk3xCm
iBdM/2COAxFNkhnQP3o5MI3Dl6Lwe0kx9HdH53o7qGokAavYaX0rlo9TdWSa
gKPB/p9IjbkdEKSD/UEcf7zJJ59e/vu8HM/Xn88vTidPytNXv985efX07dXx
k+LjH6bjpzdXT09n+WDI8bDBZBpGAU8Luvjp9Wl5eF2/23k6rbZebD8250dP
f7r696dbm5ej8vXF2fnm6aetP2TvPkZ714PPP362KtQSzeSY3D8tSgjZ+GS/
jehe8kxQgnZp4xlc9bggdlN6nXTftNZ8g1/Ket5Ys8qKlxjSVlQkkRm9vkII
uCZeyEkyvSrUx+LGp1HaqI7VLDGFfnNNS+6UW33sorPKqO/RqGQDsBOjx6zW
emut2SdWdXPOLJv7wl05taLXSPcM/GHX2O+8iuNurxGzTjL2l9azmNReD4fW
gukfDV3nRiKnmjiDH9kiwUtKRtwIEJuxVUh+o0HdGGQJs7uWJ5+coaDlgNAk
2wk9gt+hG9fs+7IzEUM1lPS3Jm+EHgtiSZevcDg1qrOIVzbJaMk4Z9zzIds3
JCEOhdoVOoJn0DPBpnj/oxFKHVlXqnV4sGWqPct0ml8Bf5YEHtVo/kBYbADS
wu681JhTCNZPKqIKxi3qLCOFNOPARxhRvktYx0n+mHP3gIpT5xdFx05I1obN
eCQWmpCvCF1bQF18wCdGJ6csMjNTAGCax2ba2hy0ePjA3yLkmuoJfgK+A/EY
Nv5YoSIfTM4zpTiZogGYVnC8PoflFP3pkTihuiYCs5pF28B6XOV5IMajbyFF
faxrkcvA+6KgsQSk2RM6yDnispMbo4jcT9UMTSKXilfAtpleGdQI0N2wHry9
vGx0T9lyTtVziyeaCM9iKF97lL52P7Z52W1fNdmn9KKNlIeK/GuMsxPCDyz0
UD9P3AYBhDGC2FPkJuZMAmR5PFzLO2o3lvUw1YgF1pHsWy7gIu0b5DotNK4L
exKDoKCMlAnoJdj92dHZvuiAc4X50TLre0eEJXdRZ+fh9XylHjU4Pmz9th6n
Q/VXNYGpoEGHDB8uhJ2F/py/IrDdS7zWkfg5y5mzfjlzSXLm9kGjhMBEcolk
LASlpkAw4ZhDWaJmKthkoq2nztbl1x+SdPMFWmtHcM5Gs2CsTbX86fg2KlVa
lCow5lj4ikTot5qasA2h3xeoScXROSQDl+riLZKNsHECPU1HWBbjQhiTuPYo
qgPdK9t9WDbD+gktbie1pD31eHKuwzgGEmV1F4FForWhF6dhEhpQxJXMTSiz
9jd4ToKCedt7T70EdRhzBX8C3TssSbqsX61vrFrLihSWxrgSojs9Oz08Rk+P
zT63TAjPT6Bvhby8KH4NAULeL5w1UgGhA/qFr3R2w4NEBi1thmt3IE9VzkfY
0dTudiE3YhBgJIZF3JCFv2iKNx8bSyzqJY0UZHo9nYYFGUC2OwwOCh2RD3YR
z74OL3TOXI/EtipNc6Sr0zJpU4anyVFGThf0/U7yKP10z58fs/P+SJrYtLyl
f16ClvfU5a71J7p1/npeuuO2ZNPt6+OsyEHd4S0tg9nYLUVuF9o2KX7L/777
4rhnmPZNi/FsY3Nre+crYP7tVwz8aEnbX4Gr/a9p2/PS/q9fIyIvlszpUPeo
H8943Rbafs0a9S4bj0ss4cSxhKG/UEON9uUzs/fiOPrfHvebceXYzK/H9eLf
ALSJ8EZP5zz9oXCMkr0ag3vbfv24sh8Gb8KZPoLlfPZp/jMKJszk8GLwg4W2
v3If/mLa+qp92PP3qLP/vxlXv3j/uzzd/uxcUKGemyjEjEEnIz3FsGSDEH92
ogKsA4or+ckQirJE7TmyXk2qs6+chGN7llzNarn1jeeZEhxuXCelnMxqCS0O
OKK2p5osHU/hxZB3XEfOwDAVnrrDg2yemteFEb1yV6LGhJVyKOADcJ6EFFoS
nWvYGAt0aK8I8TRPNyTB5tE9Xhy9QkbTKoOP3mhuOMOzkxTl+iAe+9NcMlXq
kqIfpN+i1eX72EB9QEXK98xp/d7aR74KWKI9XpBO38T29VNUeTjjbfU+P0me
PazI+sVD4pK6A1ichNcJhp1zJe7Zm3QeuHGa4W2iC6OJyM86RgtMB7fxADYK
Y0piEs3/yowTdh8A2BIipDgb2hgPeHV9tc4d2hWdjGwc65ZeeLtRApOyqwut
92zljZ5nmz3PtrD5Bvy0pbf1jt7VT/QeIPsbnik8gfGr/qe+ipHf83e3tAem
zZWNzT19Bbbc6rf38Oth+Poe/pEx+ffvAZWAAPTkWV3plc2d3eUr+o88i79t
D7+eor4gwvkEDhUO4OgKm3ly7OaFY2q9nG8g0c/MShC7T9vOi+X8ntm18ilj
lJg0FvcTfDcUGJMY9M7eLhr/7NVYGtEKXH6/Z+IO73fQuzaKOQ6GmbFWSWjP
9VPTUfKJPVVNHt5Ar9iDmB/rvDLl6lBxBjxb59R2cDfQsclyyhlsuuYkYhve
8pHwjL9dvDqAfbKivbiUWBSg6tnxV5u40wOnSrgz1sfWF3f7YLkjTal3HJ2H
lZOIJfyQmZTBb0WdezMeoaWyAW+U3NZHxd5bkbhN5mSetf1jlLbAHjI/zORU
m4dthzrgF9TtlkfdS7U/UvYobmqyMa6cc+FhwLvsqEtKRuJiXB2HauOtXuKT
bgV+ueRFc94YvSeN60QcpzbBWlLp+UA0rC3mU7amodtnxVjZQW25o1Vp0apQ
H8PVojkM0deWiCO61S2FjxR8Rw2aknbQ3P4XrBnGyQgSCHehSy7BYPOhCjN1
sWHUZteoMar4S9ejFV5ZSJEm9fQXDj70nKqLtCTJieJ+fJiZT9XDbhzGKrG0
+pgnFFHRhU761xDLiBgJdIAq3w3m2CMtqO7b8x2UA2KwCQXybpKSnLJ04pyD
3q1kbHG05mncDO4O+980z/zFX9vxlx+oq6az7EuXnrK4meywqNec06w9L7/q
cGubFMAhMU50oKIogIN2z1ILpXXavoMIG5RoaFo5mm7qfHQwj8EajGPyknNi
WONI5sAtP7X+ZBvAsGnkTBAwNwCFD3V451+uxHo9PbikTLvvTw/OL6kOyvrm
5ufPQ0WP6Mnm7u4Wpv01li41knXDgPUQILvefXyC+VX2WAOyuuZoIBZ3kuph
wyZq0rfJ+VgVSECKAhoVRlFNJ/ubM3SWQ34NUhQjpYl8oZ/X5bVR8IHYPnBf
ePyxBvrWIODBdqIAm5objGLIEpFtw1LI+a3RsvyJMxIwXVSYuO2KpEiotte3
uPJNUyUCaZu5oz2BcWMdzZib4/LHwC7l2hGZYtvVUOUaqwe4ZKvGSW2VBLQW
6WHOIWxxL6jGiu2mv3C4RnLoca52lqIHsP3JvarrMK2NJBC4zHuHTB8LK6Wr
AOGC02QvK3f0qDlKVWJWFh/r8J35Qxfe/1IlhtbfP53py8b9pzP9S+P+wzrT
UUN+tjd6umW+btzv9B/0SpqX1eqX5vtrcPX3ckrLuMBih8SCyIx5trP7ZO9L
MH8NPS8f118jY1cIh5UFCsPRVtTX9p8Bj28e9+9FW/dEHL4A818r8GD9E4fW
HR6wfViRhY2bnBcCHRRodUkgH08s4XkCsgoW0gbjYTv1hCx+SmPng8VXgZwV
5rTxBzaZCuRUT6b4YmEGtv9sKlGjdpd+8TdnUeMJAs9G5pgA6ieq1dT5Jjod
sLbxfoKpdJRvA9phqdo2B9VRHNIh3iZZn+q6tJNhJKuYLHoyXRzqop5zxlbJ
cpGeFUolratxDt9WUX7gsW2bd9zqwdkfzch+imXRnP/upA8pP9nKZcVQuKWr
Y3PkJSmcJd7Ov7pXtVpUpPxDg54qxZmKUgXsnAo56V+iSi0++oKY9nO5voZV
/C/EJRcG+QaYu/B89XwXWVoPA1s+7lcg5mvHXfz7Blb69TAvrtEi4/zbjNtD
CEvH7aHJDii/As+9qP+KmPVl3nJpLrBez325/CiJS+qzdl55r8+ypy6T6ib/
8iHDB/zYuWnlrN+DrpBB5igS6PbBYt0i8cx34qsM9ZdqTbXYrnLhaDRbKa2b
HHpSoFPexHxynjIydy4/uyLFOBSX7CSnRcGRdEqWbhdd1ZSmjW9QpjZl4YkQ
9tLdlPVeMLylLy2gHw7Tx52CwZ6P1m8mYsU7//M35f6/gu9bLtZME+t6bry5
mpWDL7T65v18j3S5Z/hftIe/+2Vc45fJsEe/iDP+MhnwVVzpG7Uhl977V1WG
LmW7oYOXT720tNKECh3L2ZaWatgUnfGGs/WW0YtJJ9nwGN6QXI3Wh65kFMrX
HZHvjM7qVROsbyrVZPDUKYVMBMJFXd7OG4MoEstKFlLLFyJhMdcJeqDPMtJW
e+NoOf/WG0d7IbURYnuM1xY/9svqeAhZLIVCx8J7jlVQIbhygaE3qrigtkUk
/tGmh6XqnkpZUpKvt6DJA77oIvSqJ77G0jzPbWkewAzW6glcrR5ABztCpeb6
UI6GIF69zGB0hbeX+spMEgB7ofJPK7zFh5S6pWXcEXQLSBiZ9uEEqv3S2hNe
TpMKy/uXq5aM9Ka2rrfXmmxuQLPKcrcmfD71Y51I/ZTjwzfnnelpym7C2YmA
af+sKEDS3u/8Hp6CCkz7BAbg6nW7d3a5W8yjmnB5eM5+6Bu5PYgEPIYcAJWY
BkYncW3+FYdJsE2KiWPUy0N3SiWR8maOawC1LJZdcMUT5KRjX7inzVxwje2p
BCkOhr4t7yRBELiKXyUAHE2kaEhIeKln+v3BqbeAQ6ou1W3AYS8W2tB256WU
eSktvoYtCrJHt7E8lbCYUPUHcahyUIqsp8QogT4/uHz150MsYnd8+vLYnTOw
OiX2RIsqXGOxCoWAzulpbq6OGm3pjdUW6+B6AJQqKR2hjd7LALxqPK3Ysgsc
NaK5XWsVi265OGeduWksxFIpOt+UVOAO23hpzl31DMSV/VRhAnucnoOT/XkJ
rUP3Ft9YJI/Pbi+8z5gs+47xm7b+LxUG5VSoBIfoTiIbxmjOndFxzCqP8317
Oq5Tt7JVEd47VdW8peQw08nhsR8+ovPwYTb/XnF5OzwCSobIguCKYQf2yLtO
FbymdGhLmHPZVY7xNiKWt6SiMyN8qpT2x8oY9IGCzsnazJwlhgbX/XG4bte4
x3wNTmpp/Gz31ENsUpEr8vclGAyUA6vL9Co3oOqReovihZNAQAwjF+8rx7qg
wgkh2UtH+vx8cU5h6hwDvAIuqEQKJQ1wkQlxmL6hWq5MiTR6Zf38E8JkOO03
vzY3xNBmpFuuKI5pHZtvpD9HROeuBdX8IgMWyIlf826c+YzXlPDFCb6HtXnB
EtHyonj7wGqcGwbryb3Obx6/AdW2nj5+1XbSDGk18IhvU+iV6+rBXpSiqKor
4vG+Dbo/5qqO8ZYdrFiXUGI6MO40TVivLN3dKZgzITkrJZaVqyZ0T42rWkSM
rFhTNqWAr1kRqnZpDfY6jnaxRDpPlvNbfGDP09D+j8woZsVvCiATkagrM0Ld
GBO0qTYFbU5O76YXbN07C5vcymH9sj9h74VawURwUNFXARF0x45kS9k0ucU6
eHRlTphGdSpWAGaEBzfhXC7kkYg7ILOswumstAlJXFum2fXtei4Y0Y9/qsuq
7TuxaRvSNy9Wt2Qzn7tUOL8UrWt3ulUyDLTJaOfEwhfxECsd4WUWSmlGoOp0
SqDgLjizGmL3mKqn7g1byfd+XW7V40xxfnymiAxhnIVjKSPQxpCq8oVSL8gL
m0oYjpM3W2uw/6fbAZZKlrP2g/0NrmsxiKMk5tUd7G8NrVdjAMDauhka++SN
Bc2eDAdXeKvcYH9vazigBWD8D/afbAypOxxtZ2djuLW38ePn4WIfW00Xe3ud
Pjb21ptO9p4On+5t9fbRgLH1pNPFzk7Twxa0/rFVfsPjYEcgz1F86EOsNciu
mBVkeKt9jCwuIzwWfNA+z99jJLlu8UJDLguvpIzyNlVOTokLokJrPvHJk6YN
HsZOXXIK7uswBXqK54rebVVf70mYbR1NxfuX2sUIm8qmnao6jcFDDN8NsVDr
MyJ1EeyfDz7rapJfmjmjKoq3smEBWpeXhG08kUK5kh1zqcvzYb/gvixF7SBH
WVPTkOYRi6/Rlpm1DkeHVXJOkgpNF+YV134lRb/HIZejlQM1BCmlLN8AgMoV
U4U3yFWne3qwtR1vb73rIFlL/oV8w3Mj/5V4R8M6kMi/iVe0GYXtYMPbxBub
W8Ptnd1mF9uXtnebl54+3Rtu7LU3q70BAt8OfirRZGq7x1Izqly091hKU1Ht
aSQrWjzZ6hTqpWoAy3XExmW+9M4I3z/c3Rj5qCV7lKvZ0qVnzjP2fNB8KVlz
1J62EdsRYvgOXVqeX1vGd7OB5euq97eFAWIYFmST16vxyg72B+yTdbyxP9Wt
S0JdR2PWR9EtJ2NYlnmU+MnyWCILeU0rTZRrcDeWD/HjbiFusXkAA1zAmWxn
AdJWtuNLA1jFIiu8MZRaJd2QvOum6onjUehmqfLAK9QsVKTUqVytZpB9oaog
+aQYXADVDn4rklkpQW1S0NC6xGvWVvEdGx26ZyiX4l44JrD8bZsQL25JGcqa
5iTBQDsnDo3bw56oRHO9Z2SrkN+EnoYlMS7rH/O8pIq8pD1XTDTUKqfrqLQs
1sDH55R1Gs7Jg4XlCb273ehYIWBAPDWdjeNKy6bJyNAxSbvl2gf8WNMu86m5
oXqOQCF4SBJrUnYSVH2PJ8exUN6izKL6iHjxXJm4FaCyo+zLmq/ZAxUdpye7
iQTlB81VuEqd99TzcWGysn0/os1Kl/fR2gPAFAGG8i5NItn2OEsZFAs2TqXM
fNkIoe6lvCCJuJ62pB3vvGy3tLfkAWHAxOguQSzkVBAxl1Ud27n71GYVKold
WgRYCxH3TScFxp67dLn9oaN86/Umymi5X60fE8naHuMgLt8oHZYCyJ/FwBPL
xN1rQxHd+x3FQ+QRT3jzAetUYIE/TLaubOlQvgeQD/p4Z1EsUNbwSwry8mLY
d4hOYxTIeWnjCnSXyc/T9ANdXRJUhnxPr5ozBIkcjc6BGkZzCZyEmUvrxoMh
bkjU+SqerjiRud6uqz4NVBvC6hubjH5PVyIjT+QORdYxJbVT6IPMYaVeoAse
EFDksEgcV7A0ImehmwsEuy54OmjrIqo44LnvUD+UgAwusvMOi8sdT6EFEk7Z
b/l0+hXilmvWT6oX8zVNVXPNK4I2oUSw5T5+1CnbXGnIznf2PfcfW0684vKy
L2O+1NPWt1/isNWNw1YqvneMDXF32oMllkGitozItsKyc0VP62gIhrTeG74z
NMLifxpt9uZWR+aLbAuJe8aN9RBp9aEzEaQ6Mvm1vVYUv2HO3nsk+7zIr8DQ
nit7zl5UCkJ932krJxC/51L6F1jWHJWnQ3G72/tJfPpwNsGijdE9BePcT323
T1kPCMnW7pEjmucUj6bLXarD1pkEtp1cweEFLNlxKpS6CDpr/PC63ANu9/A9
11CuYFN0Y9Aexx2pUjOGLTwlGpcMjLxoXirwTkrtD7Mq9R2pmjOWiKLLahs4
fbkpSlR3KnKfrc9TNa5NoAwQd0TqMruEmJsmzR04K9TLauPgREHMt3TZOkWL
d5bJOKi6hPZ6FgATBsQLiStXogEdU4fn7/ByGCQqwSeZQaCWA4VWydi5c3kB
7GWvPLkRX6hbzHsvTjtsczsO7S3zCbvImb1toud6CXdnrmCoSYjxKkvivpSS
sIYqo3u1YMXd5+4PtddBtW6raYrlIctIQSqolr/Njd1XK7aphMkRbjxjZike
+QgXgPZyUfkM7QS4r0HuDqYq3gUD63YNek0yBdupVTIKk39sf3jkCPvk0zQL
dRRkSXjdsKHtcclBqJDRRgnZtP7NV/I90sIAx3MHlkUbdvBMww/2aCxaI+0q
iJU7fuitFTCzfGQ9If1QucNqcjESTwILHWOAz3VA8TM3Qa8P9nKgy9dB7Hg0
7zl3d0c2phajBHUcqW6BZ6k39zafoCIv1b13NrbkvBt8291Y38HfANTHuT18
vbu7uS7F0eS6p2tPgNmBVDNQUsoBQ+eGQp7UfKOsMJDMtlr7Em9UmMnBzIbs
OgXanfu2tDrH5TIKtk5xSgXvFmd2lo8sHscOSAysYPETb+1dCMnSydBeINz8
xAu3eh80XnAYeMrHWoqxlK7MGu2Fq1wuNXFEiT9z94246vlRCrLmaEbAfmqM
I69ona14vRAnsYUo+ep3zvDh+GYqkQimdv6dY34V2VQhWB1Tx3h7i04LEWH/
SVVLWCCREvSoUHKiIYEua95MC7UhYFfopuPe+XpOUm4xT+Xg9GBBUaD8Sa5G
qi+dxuHiWng8XsqQdm/kkeN7JfdLcmaclJX4+ZoDAqi9ATWDbuD8nD2qjRLV
Z7AMknIgA4D8oUvum9e9X8YgaWa6uew+xCsUEcCAdT5Qne9+j/7XO2+OePvP
nX5rRAe4U3eXz4825KrdO1ru4EimfYe+OXf56nLEkdtNkPserNeAnTbv3p50
LioSBIMa940YRrze9PU8sGVQBzTwD/ZnH4N9GHr/wzub5nXqXZNUd65JEoDp
XiSl3lqQ6JZUrwlfpk13DWnvhhNyT9q7nlwOwlqDrL6rnVbw7VU3Ml7o9O24
cqO2rtygq56IknoGLmXkLyAO32lhDlmJKwbiwMYimt8ONnXWVEkaeEJ/4DZN
e8QvLTS+zUVigyCghCDiD8eLl4SeEec+d5eE3j5obgVVtsCATX9okqAX7hZ1
+W2Xh+dDfXF4Cf99e3lOvOsCPgzJw3GFZXo/iJ/MNmZPBPVeJt5FAY1aV3ZD
+qKSF8aV61fWydxyVbti+1aL8SuzGr3jKnfK5Yu0wDADqRyGDRcaYSqYq9CG
XyhBtILRfzZiymIP9o4RMITDophbVfxh2SknKoVPrNC5bG5LEbRj84Q9kiQU
LAwXfzxlR1HGnrKyvuI8Qmuf0bTongc0pOqpVcxQ3S2M8kYqoYXRK9vroFFh
IRdSx+w1Kc405gva4mZKswRraUhFVylY5aqk8rSGfgmZAhRhamNRKfXXMn9O
qrxHDbegwDYYj43kFFL5Mp3mOamr1k9A11QQPmimo4KuRPOq47IzoXTBDb9C
cfu+h2aJ/ILtSm2ssbJuV+ORK+LB5XmbTcETpWDberC7tao211CTc2EU6eHg
8Icvl/bGSt66bO1jHlBtCTxY74O6FJPhi3Dhouvd7WBjc29VbX9zL379Hpnj
xuaTVbXz63oiqACkYHNnd5V2JJW/MaI+WZ/cjb2xpSrqLLJp2h4NijKvWr8L
tVIaSWl9LBL5cLEUZGMUUMAP5HhHGrSpSpxMewKMDjgFEBH+v8MsFDW01p4Q
L7rDDK66JLV2eB/lup2eXCrnZvGuqb6R24oafsj3rSPVCxGttSCGOTOcwHKH
jS9nKcTdWtedvHH/IhOZjmS4mVhEvM/1Oe6GTy7mWTQp8sy6Wi/YOly5uHh7
uMpeROHb6KYbie11eU4lSXZ21sVgu7CPnmxsoNXGN2N/z9ecf8Jfnm5t7TQJ
j6D1wwC0dDboU9obdSStjuVU5DJFVSvIxmaVXpZlGdkLpyqqXzMxvuuchpZc
AIyvNOEoMh+iiYlrcgLQvYjwcon6fF7gVkjnvt/cTsLeOSwZTHqFU5pWFWcy
WcOftApsQpVLruiWY5sSxTm85JpBi7QubWgJS+ggpWDwCieAHSi60yQUyfNw
wSv00KtyhUM/LDvLzE6Ahzyq+PCVwRsODZvKhE4xmHAdHJxUl92Elct3dwso
mCqpvrl4GfCiNXtFs61+b5HEuAHqxP5ze2XqV128jq49MW5tQMDeA/yJxuJY
MIaKJEPQj56v8KsUDmK3H2W2WgZvke3mjhOTunCY9hd6wK68Ofs3vtsVkcY2
kLtuoj0vQYwgwd1pr7xr7Nc28Odm+tP8YyCLQ2Tt7hd47ulrB97FHE5fJLbM
99F6RxQYY9jIv82j0RY5mG0DqP16VlK06tSutHgPY5IVUn5ZOW2RjuhxqnHY
Ks/aeGHtEXfSSKwLFCWXskHbFgzCiOmivcq/ac/34lL+zNwqFn3zRivf8Qvg
y4rWzL8NvXMVOmjsB5FN8aOFAdOUg/ImfjYYAbeSQoRh9oHzUxGll3/5zwno
CW/CcVaXYJqisZGCQT3Uh5MCU7IA2ld1UplpONQvc9TkXoRJMcGMM+aol8D4
XpkCxuG4NbozKdvR5RowpxkZE1+RhwLk+8Xv379kh4pXvJdwwXeZk97YnB0w
zY7q1B5o35HjJqeeAy+7iCZg01U/E1hlDUogp5idXx/R6YB2RLO5VW9qMLKW
lFNA6/8HBSGSbeqbAAA=

-->

</rfc>
