<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-schinazi-httpbis-link-local-uri-bcp-01" category="bcp" consensus="true" submissionType="IETF" obsoletes="6874" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="Link-Local URI Connectivity">Best Practices for Link-Local Connectivity in URI-Based Protocols</title>
    <seriesInfo name="Internet-Draft" value="draft-schinazi-httpbis-link-local-uri-bcp-01"/>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View</city>
          <region>CA</region>
          <code>94043</code>
          <country>United States of America</country>
        </postal>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="February" day="21"/>
    <area>Web and Internet Transport</area>
    <workgroup>HTTP</workgroup>
    <keyword>IPv6 deployment</keyword>
    <keyword>URI</keyword>
    <keyword>URL</keyword>
    <keyword>mDNS</keyword>
    <abstract>
      <?line 67?>

<t>Link-local IP connectivity allows hosts on the same network to communicate with
each other without the need for centralized IP addressing infrastructure. The
IP prefixes 169.254.0.0/16 and fe80::/10 were reserved for this purpose.
However, both IP versions have limitations that make link-local addresses
unideal for usage with URI-based protocols. This document provides guidance for
how best to enable link-local connectivity in such protocols. This document
also obsoletes RFC 6874, a previous attempt at solving this issue.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://DavidSchinazi.github.io/draft-schinazi-httpbis-link-local-uri-bcp/draft-schinazi-httpbis-link-local-uri-bcp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-schinazi-httpbis-link-local-uri-bcp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        HTTP Working Group mailing list (<eref target="mailto:ietf-http-wg@w3.org"/>),
        which is archived at <eref target="https://lists.w3.org/Archives/Public/ietf-http-wg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/DavidSchinazi/draft-schinazi-httpbis-link-local-uri-bcp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 78?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>To simplify configuration of new hardware, manufacturers often print
configuration URLs on labels to allow the user to reach the configuration page
by copying the URL into their browser. This is often simplified further by
encoding the URL in a QR code and asking the user to scan it with a smartphone.</t>
      <t>While the majority of IP networking uses globally routable addresses, those
rely on addressing infrastructure that isn't always available. For example, two
hosts connected via a direct peer-to-peer link may not have access to an entity
assigning IP addresses through DHCP or IPv6 router advertisements. Connectivity
is often desirable in such scenarios, and can be accomplished using link-local
addresses. This feature was added in IPv6 <xref target="RFC4007"/> and retroactively
backported to IPv4 <xref target="RFC3927"/>. However, these addresses have limitations that
make them unsuitable for use in URLs, as described in <xref target="limitations"/>.</t>
      <t>This document obsoletes <xref target="RFC6874"/>, a previous attempt at solving this
problem that failed, as described in <xref target="attempt-6874"/>. This document provides
recommendations that solve this problem in <xref target="recommendations"/>.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="limitations">
      <name>Limitations</name>
      <t>Since there is clear value in being able to configure new devices in the
absence of IP addressing infrastructure, there is interest in supporting
link-local connectivity via URLs. However, link-local addresses have
limitations in this regard.</t>
      <section anchor="limitations-of-link-local-ipv4-addresses">
        <name>Limitations of Link-Local IPv4 Addresses</name>
        <t>In order to simplify implementations (and as recommended in <xref target="RFC3927"/>), most
implementations disable IPv4 link-local addresses any time globally routeable
addresses are available. This can lead to instability of link-local addresses.
Additionally, these addresses are generated randomly with fewer than 16 bits of
entropy, making conflicts statistically likely.</t>
        <t>Both of these limitations make it impossible for a device to print a
configuration URL on its packaging that uses a static IPv4 link-local address.</t>
      </section>
      <section anchor="limitations-of-link-local-ipv6-addresses">
        <name>Limitations of Link-Local IPv6 Addresses</name>
        <t>In IPv6, link-local addresses are generated randomly with 64 bits of entropy,
making conflicts statistically unlikely. Additionally, in IPv6 the use of
multiple addresses per interface is encouraged. This allows link-local
addresses to remain even when globally routable addresses change.</t>
        <t>However, IPv6 introduced the concept of a scope zone (<xref section="5" sectionFormat="of" target="RFC4007"/>)
and requires that every host include a zone identifier when sending to any IPv6
link-local address. While <xref target="RFC4007"/> defined a "default" zone, that is not
widely supported: most operating systems still require the scope identifier
when making a socket operation on IPv6 link-local addresses. This means that
IPv6 link-local addresses have to be accompanied by a zone identifier from the
moment that the address enters the process.</t>
        <t>Unfortunately, IPv6 address support was added to URLs <xref target="RFC2732"/> prior to the
creation of IPv6 scoped addresses, leaving the URL format for IPv6 addresses
incapable of representing zone identifiers. This effectively prevented the use
of link-local IPv6 addresses in URLs.</t>
      </section>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t>Before diving into potential solutions to these limitations, readers will
benefit from the following relevant historical context.</t>
      <section anchor="uris-urls-and-a-tale-of-two-specifications">
        <name>URIs, URLs, and A Tale of Two Specifications</name>
        <t>URIs and URLs were created early in the development of the World-Wide Web and
were brought to the IETF in 1994 (see <xref target="RFC1630"/> and <xref target="RFC1738"/>). Over the
years, the IETF maintained and evolved these specifications. In particular,
support for IPv6 addresses was added in 1999 (see <xref target="RFC2732"/>). The IETF
published an updated URI specification in 2005 (<xref target="RFC3986"/>).</t>
        <t>In 2004, a group of browser vendors created the WHATWG, an effort to evolve
Web-related specifications outside of the W3C or IETF. The WHATWG eventually
forked the URL specification from IETF by creating the WHATWG URL Living
Standard (<xref target="URL-LS"/>). From that point onwards, even though development of URIs
and URLs continued at the IETF, this work often didn't lead to corresponding
implementation changes in Web browsers.</t>
        <t>Almost two decades later, the situation hasn't changed. The IETF still
maintains URL/URI specifications that are authoritative in all contexts except
the Web, while the WHATWG maintains a URL specification that is authoritative
for Web browsers. Note that the use of the word "authoritative" here is
somewhat of a misnomer: neither of these standards bodies have any actual
authority to enforce that their specifications be followed, and instead rely on
implementers choosing to follow the specification.</t>
      </section>
      <section anchor="attempt-6874">
        <name>IPv6 Link-Local Addresses in URLs</name>
        <t>As the Web gained in popularity, an increasing number of networked devices such
as routers or printers started to incorporate Web servers as their primary
means of configuration. Many of these devices function properly without
centralized IP addressing infrastructure, so there was interest in
communicating with them using IPv6 link-local addresses.</t>
        <t>Over the course of 2012 and 2013, this led to the creation and publication of
<xref target="RFC6874"/>, an update to the IETF URL specification that defines how to
represent IP zone identifiers in URLs. The majority of Web browsers did not
implement this change. The main concern from browsers what that such a change
would require modifying many different components of the browser, with the
associated security risks and maintenance costs. Almost all browsers came to
the conclusion that such a change was not worth the effort. Further examples of
what made <xref target="RFC6874"/> complex to implement are listed in <xref section="2" sectionFormat="of" target="DRAFT-6874BIS"/>. After browsers decided not to
implement it, the WHAT URL Living Standard was updated to mark the zone
identifier as "intentionally omitted" (see <xref target="URL-ZONE-TRACKER1"/>). The WHATWG
subsequently rejected a request to add zone identifiers to their URL
specification (see <xref target="URL-ZONE-TRACKER2"/>).</t>
      </section>
      <section anchor="further-attempts">
        <name>Further Attempts</name>
        <t>After it was clear that most browser were not going to implement <xref target="RFC6874"/>,
another attempt was made to modify the URI RFC: <xref target="DRAFT-6874BIS"/>. While this
attempted to address some of the difficulties in implementing <xref target="RFC6874"/>, it
did not address the fact that browsers were not willing to start such a complex
implementation effort given the small usage it was expected to receive. That
document failed to achieve consensus and was not published.</t>
        <t>Later, an attempt was made to address the generic question of how users can
input IPv6 link-local addresses into software interfaces
<xref target="DRAFT-ZONE-UI"/>. In this model, the zone
identifier is considered independently of the IPv6 address itself. In the case
of Web browsers, the zone identifier would not be considered part of a URI.
However, this does not in itself resolve all the difficulties in considering
the zone identifier as part of the Web security model, as described in the next
section.</t>
      </section>
    </section>
    <section anchor="handling-ipv6-link-local-addresses-in-web-browsers">
      <name>Handling IPv6 Link-Local Addresses in Web Browsers</name>
      <t>Browsers operate differently from simple command-line tools such as ping, ssh
or netcat. These tools generally take a destination as input from the
command-line, resolve that destination string into an IP address (or list of
addresses) via a function such as getaddrinfo (<xref target="RFC3493"/>), and then
immediately perform socket operations using that address. Supporting zone
identifiers in these scenarios is pretty simple because the result of
resolution is only used in socket operations.</t>
      <t>One might assume that Web browsers operate similarly, but that would be
incorrect. Browsers follow the Web security model, which is based around the
concept of an Origin (<xref target="RFC6454"/>). The origin is propagated throughout the
browser software: it is involved in whether to use a resource in the HTTP cache
(<xref target="RFC9111"/>), it is checked when deciding to allow sharing information
(<xref target="CORS"/>), it is used to save security policies (<xref target="RFC6797"/>), and in many
other cases beyond making socket operations. Additionally, all the portions of
the origin are sent to the server in HTTP (<xref target="RFC9110"/>).</t>
      <t>In contrast, the zone identifier is only valid and meaningful in a given node.
As specified in <xref target="RFC4007"/>, the zone identifier from a given node cannot be
used by other node and it cannot be sent over the wire. This makes it
fundamentally incompatible with the concept of Origins.</t>
      <t>The solution in <xref target="RFC6874"/> requires the browser to treat the zone identifier
as part of the origin in some contexts (such as when determining uniqueness of
a name), but not in others (such as when sending on the wire). This
significantly increases implementation complexity and security risks.</t>
      <t>Conversely, the proposal in <xref target="DRAFT-6874BIS"/> sends the zone identifier over
the wire, and suggests that the recipient not make use of it. This creates new
implementation complexity, now on the HTTP server. It also doesn't address the
multitude of implementation changes required to incorporate the changes in URL
parsing.</t>
      <t>In all cases, implementation matters are further complicated by the fact that
the percent character ("%") is used in URLs for percent-encoding. While each
proposal offered a different resolution to this encoding issues, all of them
have significant downsides.</t>
      <t>Regardless of which specific mechanism is used to encode zone identifiers in
URIs, the complexity of Web browsers and widespread use of Origins make it
impossible to implement zone identifiers without large engineering efforts.</t>
      <t>Seperately, the proposal in <xref target="DRAFT-ZONE-UI"/> would require querying the user
from many distinct browser components to determine the correct zone identifier
to use. That is particularly difficult to implement in multi-process browser
architectures. It would also confuse the user when they receive a popup for a
link-local address that appeared in HTML.</t>
    </section>
    <section anchor="goals">
      <name>Goal Definition</name>
      <t>However, the top-level goal of all these efforts is to allow link-local
communication via URLs. That does not require encoding IPv6 link-local
addresses in URIs. All that is is needed is for the URI to contain information
that resolves to the correct link-local address.</t>
      <t>The deployment of IPv6 happened in part because it did not require users be
aware of IPv6 addresses, nor remember them, nor type them into browser address
bars. It happened transparently to the user, thanks to the DNS: once it was
possible to query IPv6 addresses from the DNS (see <xref target="RFC3596"/>), users could
browse the Web over IPv6 without having to ever see an IPv6 address. Surfacing
IPv6 link-local addresses to users is not required.</t>
    </section>
    <section anchor="recommendations">
      <name>Recommendations for Link-Local Connectivity</name>
      <t>The concept of address resolution also applies to local connectivity in the
absence of centralized IP addressing infrastructure, because DNS hostnames can
resolve to link-local addresses. In the absence of centralized DNS
infrastructure, mDNS (see <xref target="RFC6762"/>) can be used to resolve link-local
addresses from instance names.</t>
      <t>Devices that are reachable over IP link-local connectivity and that host
servers of URI-based protocols <bcp14>SHOULD</bcp14> create an mDNS local instance name for
themselves and <bcp14>SHOULD</bcp14> respond to mDNS queries for that instance name.</t>
      <t>If the instance name is defined to be unique (for example by including a unique
serial number), it can then be encoded in an URL that can be printed on the
device packaging, either as text or in the form of a QR code. Otherwise,
devices can rely on mDNS conflict resolution (<xref section="9" sectionFormat="of" target="RFC6762"/>) to
ensure unique names, and then browse for the relevant service (<xref section="4" sectionFormat="of" target="RFC6763"/>).</t>
      <t>Following these recommendations solves the goals described in <xref target="goals"/> without
requiring any changes in Web browser software.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Many aspects of the Web security model rely on using a name as a root of
security. This has the following consequences:</t>
      <ul spacing="normal">
        <li>
          <t>name unicity matters, as conflicts can lead the two devices sharing a name to
incorrectly share a security boundary.</t>
        </li>
        <li>
          <t>HTTPS/WebPKI security relies on globally-registered names, and is therefore
not available for link-local connectivity. Such link-local communication is
therefore inherently not authenticated.</t>
        </li>
      </ul>
      <t>Fundamentally, mDNS has similar security properties as the underlying
link-local address it resolves to.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC6762">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </reference>
        <reference anchor="RFC6763">
          <front>
            <title>DNS-Based Service Discovery</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6763"/>
          <seriesInfo name="DOI" value="10.17487/RFC6763"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="URL-LS" target="https://url.spec.whatwg.org/">
          <front>
            <title>URL-LS</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="WHATWG" value="Living Standard"/>
        </reference>
        <reference anchor="CORS" target="https://fetch.spec.whatwg.org/#http-cors-protocol">
          <front>
            <title>CORS protocol</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="WHATWG" value="Living Standard"/>
        </reference>
        <reference anchor="URL-ZONE-TRACKER1" target="https://www.w3.org/Bugs/Public/show_bug.cgi?id=27234">
          <front>
            <title>Support IPv6 link-local addresses?</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="URL-ZONE-TRACKER2" target="https://github.com/whatwg/url/issues/392">
          <front>
            <title>Support IPv6 zone identifiers</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC4007">
          <front>
            <title>IPv6 Scoped Address Architecture</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="B. Zill" initials="B." surname="Zill"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes. According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4007"/>
          <seriesInfo name="DOI" value="10.17487/RFC4007"/>
        </reference>
        <reference anchor="RFC3927">
          <front>
            <title>Dynamic Configuration of IPv4 Link-Local Addresses</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="E. Guttman" initials="E." surname="Guttman"/>
            <date month="May" year="2005"/>
            <abstract>
              <t>To participate in wide-area IP networking, a host needs to be configured with IP addresses for its interfaces, either manually by the user or automatically from a source on the network such as a Dynamic Host Configuration Protocol (DHCP) server. Unfortunately, such address configuration information may not always be available. It is therefore beneficial for a host to be able to depend on a useful subset of IP networking functions even when no address configuration is available. This document describes how a host may automatically configure an interface with an IPv4 address within the 169.254/16 prefix that is valid for communication with other devices connected to the same physical (or logical) link.</t>
              <t>IPv4 Link-Local addresses are not suitable for communication with devices not directly connected to the same physical (or logical) link, and are only used where stable, routable addresses are not available (such as on ad hoc or isolated networks). This document does not recommend that IPv4 Link-Local addresses and routable addresses be configured simultaneously on the same interface. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3927"/>
          <seriesInfo name="DOI" value="10.17487/RFC3927"/>
        </reference>
        <reference anchor="RFC6874">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined as in the IPv6 Scoped Address Architecture (RFC 4007), can be represented in a literal IPv6 address and in a Uniform Resource Identifier that includes such a literal address. It updates the URI Generic Syntax specification (RFC 3986) accordingly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6874"/>
          <seriesInfo name="DOI" value="10.17487/RFC6874"/>
        </reference>
        <reference anchor="RFC2732">
          <front>
            <title>Format for Literal IPv6 Addresses in URL's</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="December" year="1999"/>
            <abstract>
              <t>This document defines the format for literal IPv6 Addresses in URL's for implementation in World Wide Web browsers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2732"/>
          <seriesInfo name="DOI" value="10.17487/RFC2732"/>
        </reference>
        <reference anchor="RFC1630">
          <front>
            <title>Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <date month="June" year="1994"/>
            <abstract>
              <t>This document defines the syntax used by the World-Wide Web initiative to encode the names and addresses of objects on the Internet. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1630"/>
          <seriesInfo name="DOI" value="10.17487/RFC1630"/>
        </reference>
        <reference anchor="RFC1738">
          <front>
            <title>Uniform Resource Locators (URL)</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="M. McCahill" initials="M." surname="McCahill"/>
            <date month="December" year="1994"/>
            <abstract>
              <t>This document specifies a Uniform Resource Locator (URL), the syntax and semantics of formalized information for location and access of resources via the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1738"/>
          <seriesInfo name="DOI" value="10.17487/RFC1738"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="DRAFT-6874BIS">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="Brian E. Carpenter" initials="B. E." surname="Carpenter">
         </author>
            <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Bob Hinden" initials="R. M." surname="Hinden">
              <organization>Check Point Software</organization>
            </author>
            <date day="2" month="July" year="2023"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined as &lt;zone_id&gt; in the IPv6 Scoped Address Architecture
   (RFC 4007), can be represented in a literal IPv6 address and in a
   Uniform Resource Identifier that includes such a literal address.  It
   updates the URI Generic Syntax and Internationalized Resource
   Identifier specifications (RFC 3986, RFC 3987) accordingly, and
   obsoletes RFC 6874.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-6man-rfc6874bis-09"/>
        </reference>
        <reference anchor="DRAFT-ZONE-UI">
          <front>
            <title>Entering IPv6 Zone Identifiers in User Interfaces</title>
            <author fullname="Brian E. Carpenter" initials="B. E." surname="Carpenter">
         </author>
            <author fullname="Bob Hinden" initials="R. M." surname="Hinden">
              <organization>Check Point Software</organization>
            </author>
            <date day="17" month="February" year="2024"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined in the IPv6 Scoped Address Architecture (RFC 4007),
   should be entered into a user interface.  It obsoletes RFC 6874.

Discussion Venue

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

   Discussion of this document takes place on the 6MAN mailing list
   (ipv6@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/ipv6/
   (https://mailarchive.ietf.org/arch/browse/ipv6/).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-carpenter-6man-zone-ui-01"/>
        </reference>
        <reference anchor="RFC3493">
          <front>
            <title>Basic Socket Interface Extensions for IPv6</title>
            <author fullname="R. Gilligan" initials="R." surname="Gilligan"/>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="J. Bound" initials="J." surname="Bound"/>
            <author fullname="J. McCann" initials="J." surname="McCann"/>
            <author fullname="W. Stevens" initials="W." surname="Stevens"/>
            <date month="February" year="2003"/>
            <abstract>
              <t>The de facto standard Application Program Interface (API) for TCP/IP applications is the "sockets" interface. Although this API was developed for Unix in the early 1980s it has also been implemented on a wide variety of non-Unix systems. TCP/IP applications written using the sockets API have in the past enjoyed a high degree of portability and we would like the same portability with IPv6 applications. But changes are required to the sockets API to support IPv6 and this memo describes these changes. These include a new socket address structure to carry IPv6 addresses, new address conversion functions, and some new socket options. These extensions are designed to provide access to the basic IPv6 features required by TCP and UDP applications, including multicasting, while introducing a minimum of change into the system and providing complete compatibility for existing IPv4 applications. Additional extensions for advanced IPv6 features (raw sockets and access to the IPv6 extension headers) are defined in another document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3493"/>
          <seriesInfo name="DOI" value="10.17487/RFC3493"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="RFC9111">
          <front>
            <title>HTTP Caching</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="RFC6797">
          <front>
            <title>HTTP Strict Transport Security (HSTS)</title>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <author fullname="C. Jackson" initials="C." surname="Jackson"/>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This specification defines a mechanism enabling web sites to declare themselves accessible only via secure connections and/or for users to be able to direct their user agent(s) to interact with given sites only over secure connections. This overall policy is referred to as HTTP Strict Transport Security (HSTS). The policy is declared by web sites via the Strict-Transport-Security HTTP response header field and/or by other means, such as user agent configuration, for example. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6797"/>
          <seriesInfo name="DOI" value="10.17487/RFC6797"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC3596">
          <front>
            <title>DNS Extensions to Support IP Version 6</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="V. Ksinant" initials="V." surname="Ksinant"/>
            <author fullname="M. Souissi" initials="M." surname="Souissi"/>
            <date month="October" year="2003"/>
            <abstract>
              <t>This document defines the changes that need to be made to the Domain Name System (DNS) to support hosts running IP version 6 (IPv6). The changes include a resource record type to store an IPv6 address, a domain to support lookups based on an IPv6 address, and updated definitions of existing query types that return Internet addresses as part of additional section processing. The extensions are designed to be compatible with existing applications and, in particular, DNS implementations themselves. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="88"/>
          <seriesInfo name="RFC" value="3596"/>
          <seriesInfo name="DOI" value="10.17487/RFC3596"/>
        </reference>
        <reference anchor="URL-HISTORY">
          <front>
            <title>URL Problem Statement and Directions</title>
            <author fullname="Sam Ruby" initials="S." surname="Ruby">
              <organization>IBM</organization>
            </author>
            <author fullname="Larry M Masinter" initials="L." surname="Masinter">
              <organization>Adobe</organization>
            </author>
            <date day="11" month="January" year="2015"/>
            <abstract>
              <t>   This document lays out the problem space of possibly conflicting
   standards between multiple organizations for URLs and things like
   them, and proposes some actions to resolve the conflicts.  From a
   user or developer point of view, it makes no sense for there to be a
   proliferation of definitions of URL nor for there to be a
   proliferation of incompatible implementations.  This shouldn't be a
   competitive feature.  Therefore there is a need for the organizations
   involved to update and reconcile the various Internet Drafts,
   Recommendations, and Standards in this area.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ruby-url-problem-01"/>
        </reference>
      </references>
    </references>
    <?line 334?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Some of the historical context in this document came from prior research
documented in <xref target="URL-HISTORY"/>. The author would like to
thank <contact fullname="Brian E. Carpenter"/>, <contact fullname="Stuart Cheshire"/>, and <contact fullname="Bob Hinden"/> for
their prior work in this space. Additionally, the author thanks <contact fullname="Eric Rescorla"/> for their review and comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Vb624bSXb+X09RKyOIPRCp68gjYWe9suwZCytf1pJjTIIg
aHYXyVo1u5m+iNYYfpc8S54s33dOVbOboiYGgviPxWZX1alz/c6Fo9HINL7J
3Zndeenqxn6okrTxqavttKzslS9uR1dlmuT2oiwKh6/ufHNvfWE/fbwcvUxq
l2FJ2ZRpmdc7JplMKneHvXoL8eJg8Y5Jk8bNyur+zE7SpcnKtEgWICCrkmkz
qtO5L5Lf/WjeNMuJr0c5t8q51ait/AhLRvsHpm4nC1/Xviya+yUWX76++cUU
7WLiqjOT4YAzk5ZF7Yq6rc9sU7XOgK4jk1QuAX2f3cQmRWYvi8ZVhWvsTZUU
9bKsmh2zKqvbWVW2S7z35ubmw44pJ3WZu8Zhp5Ofnh+bO1e0OMDa4WvWKi07
n7GDL2b2V37N54vE53juXTOVe41Ws7+ujsZlNeO3SZXO8S2/qM/29nJfN/VY
v947x3f+ztV7H9pJ7tO9/hZ7XDzzzbydYPmr5M5n14F7e9/NTO6Rg1910yNh
sNdYjxj78vt3/f43x/Nmke+YW3cPvmdg6shefrg7sZlb5uX9whUNH0GJ9L8r
/rd49e7aJG0zLysuwA0sVBLSeTW2kWp5qIoltxl+Adae2V/LcpY7e3V1Ic/q
pnIOXDg42d+354vlHNd2CR7aD0l1u0ru5a0UKnxm35Zt0SQwg3/xbiXPKzeD
Mp7Zi3N9rcxw8unx/vFR+IwFVPlPhW9gNNcNeW7LKU5ylU8TecupomSRb2OK
+68zPh2n5cKYoqwWCewI2md8MV1/suTN6Or6TPaJJq3PdvR6OMbVXKTvWPv5
zfnN51/PYOV31FaQVGRJlcm3YkJ2muS10x2Taub6KtJW+bheunS8mifNaibK
yoMu3n/cIIJP7DI4if8XWqauSecPqHkiZpKWVT3qn06e/Ov7d69HNx/PL/72
+uPBkNrrdkk3oEq4VlebZFnl6trVL/QKnfrh30j06ftoXa1W0bZftrPOrut5
ufqPSTsbpzP/wmc/Hz4/PDreRu7hgNwBtb+XhbM+g8n4qXdV/X+iMxg9tG5P
eUqJ78HltnBGR6eHO8aY0WhkkwnsBjHDmKs1sy4/QOF78SLJ83JV23kJz2bL
wsKwbA3btHC9dLe2KbFgsWgLz+BgVzjcuCSd2xKvVvK5bBtZVziYD4NTiotW
Se5/x2ccGARE7YFiVQnIatOmrdzY3sydwRvLyk39F1jdwcnp+PDH4/H+eH/v
4EQCwdT9tH92tnewb1cOFo+dXHUXDmrmvrbLtlqWtRubN+XK3blq105AGw/G
B8YhXC+5c1CZhYdty4MGjIPvv3VbFcngtpnDE57R1slM7y2RdSKRNaptzSuA
BoTKlh6RX8Cl4Saz1mdJkTruYaBCdsIgDm66Ipnkg3PTjQBet2DvYycYKEZp
u7hnP/5yIaFv1yZk450v29omTeMWywb/W7wndiusEiUZB/1Y+CzLnTFPGGur
MoNMwBtjbkpb+8Uy99N7kjb1s7YSttEnFm4FblbZCuF6Fxws2mkisqzoMhtX
gAgPKocLYSqiXXkycXlNLojeida0kCefVKJVfDJcuwT7zYSkLO/1Io77gVFY
hA++spMKOuyqwCkfKQm38FSWthJ1ndwbVyACDDcC6/7+UQKDaFxS38bvI3F1
mhTWN6oGia0XSdUs57BqMPPz3EOefHuR/KOsKEQwCuoXTIh7YR+oRF5OcO97
C/DRiBJ0GreL9dBhUzl8jUs/ajKqub4u/hnSzRH6IOw7BCFuN7a/QF/dlwTX
hnBwuFG7DgoGPtz5BORnvsJHu3SuGjXliP+LPuIC97YoG7WXJAXYVGEVlq6r
uTcJaJoVJGtt147mhCvN5vbVm4sP8GTq9HhLbJxkMMPG147aC23uI07TyQom
4yvhSTSAGl4kqXwJ3lAoFMBEiCop1XqO27TCoLUlmY6ioApToAQybZXUpBZL
sLsQ9/XrC1jO8f7+82/fZP/KwQaIsO8gAjNJ0lu6b6zA/bHiOKyAf8WKse18
DeRe9wS53dUYcTV4dWFb4F6v0lfv4hSzX/GeNfmQVn6ilH792tsIp8I2B85m
7QWUOPqBb9++xxMYuBeQsFB1mkKBXLbt/LB8pDs/5uygtowRDsCg5155ngsu
Opwme268LPd68oR6cUct43oK5BVCAhAZP/PezgKIWiLR2u68/XR9s7Or/9t3
7+Xvj6///uny4+tX/Pv6zfnVVfeHCW9cv3n/6erV+q/1yov3b9++fvdKF+Op
HTwyO2/Pf9tRNdx5/+Hm8v2786sdXqYZsCOheZbUUs/kBTKg/iS1GTD15cWH
//6vA+rTnyCyw4ODU2igfvjpgFy2q7kr9LSygDvQj1AemN9y6ZJKPFaOuJEs
oRy5Kg5hSmHh4+iSfvg3cubfz+yfgeMPjv8SHvDCg4eRZ4OHwrOHTx4sViZu
ebTlmI6bg+cbnB7Se/7b4HPke+/hn1/A9J0dHfz04i+GcexqbS3GXHtGX3p9
x5CQ5uTcXZK3YnATR1MQMxSEoxHHSXzLYDvMs0XADqkzklVspU79Uc+8uz5L
xM9wL75McCDeN4+FfDplOoCeV9mGSsS1mL5riRqIDAchWc2oxwNS3Ev3xYud
dxjHXCKgV1mIbzHg83/x1GGLpxoQbWe00TN0vvAZYACijNlcmfla2CvHbr1P
UtwDLQNrDgKj4yrTews87YU48UAMBpCnOGekl3CnPg9xd9tJY4NriyvhKQ99
No+YucIBceB6Fa5cLmh4DPZTtyKL5jgRgHTiCZOnhgAXeIQISOI7FQjJAr6s
ef+6AVrmhXJ/i3ACybwkJAV5enRfiBIaAC3AvxJ6FQNDEtSQVxRIZZOHoIpQ
gRQtEa6SmTp3eF5BG4mSkj4mgO9Ql5MNdeGjR3Tzj1h4chz5ZiPfzP/Ct7YI
nLNDycXwHbAZRbFo88Yv+2AKwKZSGwQ2FYMk5gPbZi4LChTSnm3QQbHogiUE
2GIh7vePoJtNoRszet3OeoVEH0A1IYSC2tQhEIMJkAzArNOs8OnXr9dOkLf9
kV92qOSZUVjyny3QWgip3P5ekjVsn+YtAetmcqkEw2UpyC3FzEiR2aIDVsGr
mHMAQxnjLuOW3cGfCbi7I0fsRuhJhGhWOBDsCN7NZWfiBCyuRe3EwfV9DehA
uXqEqnANTS/l8muCjRAcFAK8KdNb1+3ErKN4POUP4ly4JCKtR19VZKbxWVFk
UjA1QGrxkIfTqlyI81+UEtrl6iQ+bEdFZsrDRwA3qdrTJ9Z9mraADVBZhZS4
IHCqB0VBiuRFit0Onx8dgvsw9VI8Mg9PkRPFxEs2E9Zl/bQBXvCun8xo4Uk8
SP94GDAUJlmK6mK3yi2ZSBciqs3qRGCqm05dwMOCJ3nlLFqeGbra4VkR0dLF
2JfwTazGFhm8oANhDqHhTuMnfVvZ8GDsAbzYBvhYPvSTu0wQM/J8BYUyE/ia
KbxmFBRuTJPmtsih3F0CoeESTckKnsTbxn1p1Ochjcd2AXLDxs7tTaJsuVmV
9nrpUvAhjTiCb8trIiypQYhcwAsgivw+wAS6a5eXSwXm4ujt57LKs9FnsNaG
sraR9RPJlppwT6mQc5eD09Nj+7R2LqjEwcnRfshOwoPnRz/BMYzt+zuJSc7c
gwRJHsMudFusflJJsMzdEYNngZv14GZjpP0IHIAmaZsn1a6JGvpQd4b5E8g8
jWR2ivtMajla7F+ycCYJGoJmu8yEV2w2DAjgVof7+z/SA2pm9dMJ95FIgy+k
oiFlfLIzpPgWWpiVUIIoAmGzVCh3JU2d0gKlzCJXN+D7CAoh7w7vb+HJa4om
CuvoQlJX3EDvottKEGhaOn+DvW/DmbS14XVEE0UILFaI5Qa7DBtxiRZRTSyi
8u5aCRYO/qLKDPtdloz4ZbHCS5CvBCIW2pBjb+gZ1dN06kk990VL1jedVuwq
SpRyXsi2fcYCQoRQaVlB0MtSQsYGkAvhTWyaShwEQds+z8XnNzCazKUJq15k
tCbFgJTgmuwwT6RcoRtla0XR2GCizta8wt4DPQmhT2CgVEzFI9y5LgtS04a/
+sIAa4TjbrKLOBjrMkEA64OSLfKL0W1wCEU+vLZ9B4e1jgcKQuRP5qZ2Z7B8
x4aUwNSII6zWavxf+LrAg+oM+YaXwlQHDeugGrWdlJmPYYsxnHU2ApVwwL0W
E0FguqbHV5vMm0TXKAl+kQleptxDqWktbvrWdF6WdcANukxl2d9Tnah4iB5c
PN90/vbrk0H1APqi8ZLsnKmPwqvLckn3g/uIASNKwXSEBO0ZatFRCmlYEFMz
VogM0xKpMdU0XAHJ/BscjIUb7FZWcGqsXPNYKR3jlaQOzMKiRVLdGwUQOGoA
scf2LRnfySaePm0LRWwI/YApAeeCFPO9le9dRLuQL9K39hJGs662c5kAaC0c
1Vp2ewwJGROjAltalerl4f7BoUgdfxwFP5Arb+TFCDD4irjtNAIOI869qyhF
Rz6IWY8YkSJINhWgPaXpsAY5sok1OqggXqFfQO1bHR2WwM5OWfUqAXqHtdhK
UHYVnHG3eqXWwZoUK4tJWGdWZZt3EBsANkMGTCYvKHV8mEIoOIpYEWQXmsLw
9mHn3U48LIyWqdcw49JWLlH5+lahg3geV0g/IGVJFnmNOk96sI7OlI0XcCzm
C3lbd0wdUC5Kw0ItzEIJCJEPMSRUukMZWLLVlXY7shCxVahyrdx9ETvp2Eo3
yzZ3TPNjbnLIfV68+nj+y42Y88vL658vR6+kDTo6AcNG1TTlF+wl75+yVng+
Zfl3LULoCREEycYd10f6Zrfz0r0g2XUa5bIRRoBYGOytLKAumR5ox2s7wueY
L9oS8BGrdiJcedBh7ICLhggOL9RQB2zBXM/9Q6vmiehI6N/A4h5qcdeKYB98
aBKPHH2oWAeeNErsXL0lIKdyzmuyoIUrbVhRYyISEiRJZs7K4LDXLO3bLsCB
tupiKZibijKQl6LzAdFcMvk8w+KBmCnK2OJAIAu7qCi65AbBLNoG7YaQsvEa
CzqqSOXAqfjGBLvuNhIkj0Cn910bcLwrsX+4rbj5zixUlzexS4CDM6/4ybFx
A4PTll7gr/uyVClL3p86vEuVQCrZFXa1Pi4XTuce+Mt2Eyxi3tEaO+ALwV4p
EoLj3Mb3/n2lbOJTKxoWsj26zjb4BIToYtn+Qd9bE6ka0I5duXXlo4YPDyYr
mvfpUkxWB0DSpFpK0FfrpUaPWj/aP6C8L0NhEerh8t2txuYFbBJAV+IrMrdk
dVAMJ2jCIP/1Te3yadgaDEw0h+x7+fVBg3KGOGmyd+L6RzJ1UTQFze01f0NN
3qlIfBFOZuNYGhJUgG16GrcmBN5GR1J3R0YU03n6wKfN/ok2xb80plYvKvnw
G2hM3oXyxxAUt38Z+IK8ORqCVkXcOjiB2xLrpIDrpFWP/UdSGG/KMq+DhYB4
nAnYUc8NwBIQFdyTuL46vqjlO7rNhiVJFiChj0UACKSKWthVRvpH7XbcDQBg
vRCQp8v1k6IHiuzTspJQw8jS6fKz0KLsIFYkf+YavsTJlC5jPD49kvozbRAk
EcsuXOal/MIiIIshD+pJdUBSmlXEOth1V6bf1PTYByA2jy1JKz0t10D0gfET
JEDMBShy7Ai14rWEK61mu7V2c9padeMBWQRwENrCszIAONEuAjcHQCgqAI71
OcsPu3bSBnepljJxRmAvW7zjTof6aH6b6iJZAp9BpM43JFKwCXJeFy4L+77y
M1AfJHBy/ONxF0JL/UrbfctkFvJzqXWEERETg1d0VmdS+SaLQ6XCS8FV4hUU
hhxNRLdaZjnBpDjTBweSYr9Ax+nBwYFogu6Gb1JmC1JYFNwRS6HCg3qeBJ0M
Y1rIgrARp6F6m4ig6FeZf3XsWpbAyPQYkQPPT593OugLgY5G4y1dHPOv+1IQ
oJQ3H0p9o8AdvZMooxblxRsF5tK/C5QOMFwTGh4sTFmzY78rpTA/Zuax3btG
tbxD0qI1I6ZCIHXa5joZocGzgJqMmcEFcNNrA2ndePv24i36ezCeqS83wuDJ
fRgkKuL0BbjfvaN3LWNes/JV7ACxa8KgYuAoskQifi61OCnsNtJGieC8X3tX
/a3H2lJeW2cxgMa9qnsH9oXlzJe2XdRsRIdoC4VCo65G8TS6s6CaiL8LL/MU
SPmIO+kY6Q9lQPKZGneIY8KnzS1inT+MbpFDz5RFRiY1CEMlSoTEmkzbqO8o
dJJhsGIzewGfpC+PdDI0zsS4yzrJlWcbUFHoqbeqAqVoIo1qL3U7mzkOqHTl
FDgtv/QUOi8trbFQYfFN7P1J5a9mp/ZBqaq7yi7WryJTxDTUUoA/mHMh+SZC
kCGaNRLTVlLTak3wkTJYUI0H5QXRs3WpjHkAFIKRRs1QG/ZSs9/YeUGAWGkL
Lc4p6ZBLKi50cj+ExcJEOJBUclP4MnyBJU93/mnnWee4YhGG9avw7ihOPkU8
z4Er04mzFESRyXhQzHx78UscTmilicbpwKF6LNX6hZFaVU/vwOWVoCoq0kfp
Uueq4SHgxFQJXofM8/Wi73rlrAeaRP4areGrcXf6u1k1EGzO05fsHURNCi4g
Nl5Nr/E6SKIeHBtnHXNOZII47OIEL4Y8g5e8dhqg/8haAhjnpMegAAH7r7oR
N6J/I+4zVCMIqdJ1+tcrSjRl50mCHmr0f+CkNKJqdiNxuqv+5/drPDzkAmMa
zWIU2lyRAMPZeN84KWfVYld6G7EultEiHJIZOnFWnGGJORaHlMplu9Rm95be
ZABoMvGiCv3m5u2VQOhfS7y2ng+yX5/M8KT+ZvpZAKW5HOWsllt+LQBGo2sd
yyUC5Dpc0OsG94pw2H89oCGc65KLKLjOJjZSNLPREbuUuk/elZrZS3VO2ip1
mGfVPFxHUmSMvQ9SZF1A2nVXwwvC3trhv5HGVJzX7/qIc7I1FmAZtiJ8RfCN
KXm8nKahiNeJZJdxi14PsgDlFbRFyrX0A/qIP7nQ0qWA/6i4YaGZJJWqTUdM
I7/0SEJaE67X1irOpLjtrvzq3fWZZUwPObzpG7BY0WYDq2sTYmm/xXb04+mJ
wLeQbFODA0jtoLLAD9kvOoB56LmW0pC33C4pBkcyoWAOzmTy8bxd7bGqQ1O9
iy2i5B83Zur+6Fc/X59sDtWp6PvYPVhVz6WLpYL5uVdatk8jb4xAfX+FO+oU
Wc6RBSIarWd0yWL5SFM/FAkeOZa/Mdk8bNET7J8El5+wwhbHRmNEiSdvtVFR
Ehkn4qFCLiTxKhT9uy6UDCprI10149FZbs1LsYzXN7H5oE27zUFyG2bnFN5Q
n+RKuuuAKJkop10Bk905jXJhcejiSWWPq2kL3kXfQqfT34jAROHqcH/WT8IQ
iI5LKDa1T6fr8WKiEh1B0akNfYV3ZCtfWzeaSlECTM65kQZ0cTuJDjAJVUFI
2sHJAmwzYf6pm23ataFXxu4N0DSbPiEjlERfakFhjnts3/PVla/droltGx4T
B6yFPXH6qG8UvXmc0zCPE3WpKQ1rflXHEFGRdfkhuLjOk3eDCJQ8r9Lb+5go
PyjqkeZqv3QTDBqiNodqo9tnyZDhbnNWV2Pgt64Xpd5ExAMAsb2N2yXi4nKu
I/a/CLWwOAMhbbCEYG3dA3lYReiYqwUWzWEoLaTwZSkFkbggYPl5Ekq+3dWl
sMpECAI7M+YH3YOhWI5RqCyVtvXo2HoakEFfutGhSxgS/UAJ5GdtVxvh9NJc
usrra0xY9UgqDuz9IGnD9R6u+eFvl720yIm7LNczYSP+wKxuBDz3NMLX2uDj
xAvOlSp3HGMUFXnEazB0ABkPvu2DEc9fD3U74z7zWAiUI1pqYqOpA5Wqnx4H
N0muh/pRr7AhrUwphgahYCV7mxuTq+t6bh+JiPpcnr87f6A6w4nxuVTK9c0k
jXUv+TkKR+65y3l6i9wtd9lMfjBgvp6pN3HZzzvyq6gdBLfrXsPh4ZjPw9Fs
6ayJf9cBKzYkCWC7Gn80ohfs07y5vL55//E3qZZX7eR+1Fb5KMyw6xR8nEUI
mJfDitq4A0zBLl9fwg0W9vXYXsQy+zeWSPDNddMScF3AxOeI9d+0u5rJonJi
37CSXuBp9PLapJaTqtvuYoBJqdusHTVrsgJewqavwRmkXjW0Pk/CvqFXxd8I
uJX+ukI8DTOY/wFeTKjceDwAAA==

-->

</rfc>
