<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-vance-socks-v4-00" category="historic" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SOCKS4 SPEC">SOCKS: A Protocol for TCP Proxy Across Firewalls</title>
    <seriesInfo name="Internet-Draft" value="draft-vance-socks-v4-00"/>
    <author fullname="Daniel James Vance">
      <organization>Independent</organization>
      <address>
        <email>djvanc@outlook.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="02"/>
    <abstract>
      <?line 25?>

<t>This document is published as a historical record of the SOCKS 4 protocol. The original spec does not have an Abstract, so the Abstract below is added afterwards.</t>
      <t>This document describes SOCKS version 4, a protocol designed to facilitate TCP proxy services across a network firewall. SOCKS operates at the session layer, providing application users with transparent access to network services on the other side of the firewall. It is application-protocol independent, allowing it to support a wide range of services, including those utilizing encryption, while maintaining minimum processing overhead by simply relaying data after initial access control checks. The protocol defines two primary operations: CONNECT for establishing outbound connections to an application server, and BIND for preparing for and accepting inbound connections initiated by an application server.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/4socks/socks4"/>.</t>
    </note>
  </front>
  <middle>
    <?line 32?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>SOCKS was originally developed by David Koblas and subsequently modified and extended to its current running version -- <strong>version 4</strong>. It is a protocol that relays <strong>TCP sessions</strong> at a firewall host to allow application users <strong>transparent access</strong> across the firewall. Because the protocol is independent of application protocols, it can be (and has been) used for many different services, such as <strong>telnet, ftp, finger, whois, gopher, WWW, etc.</strong> Access control can be applied at the beginning of each TCP session; thereafter the server simply relays the data between the client and the application server, incurring <strong>minimum processing overhead</strong>. Since SOCKS never has to know anything about the application protocol, it should also be easy for it to accommodate applications which use encryption to protect their traffic from nosey snoopers.</t>
      <t>Two operations are defined: <strong>CONNECT</strong> and <strong>BIND</strong>.</t>
    </section>
    <section anchor="connect">
      <name>CONNECT</name>
      <t>The client connects to the SOCKS server and sends a <strong>CONNECT</strong> request when it wants to establish a connection to an application server. The client includes in the request packet the IP address and the port number of the destination host, and userid, in the following format.</t>
      <section anchor="connect-request-packet-format">
        <name>CONNECT Request Packet Format</name>
        <t><tt>
                +----+----+----+----+----+----+----+----+----+----+....+----+
                | VN | CD | DSTPORT |      DSTIP         | USERID       |NULL|
                +----+----+----+----+----+----+----+----+----+----+....+----+
 # of bytes:     1    1       2                   4          variable      1
</tt></t>
        <ul spacing="normal">
          <li>
            <t><strong>VN</strong> is the SOCKS protocol version number and should be <strong>4</strong>.</t>
          </li>
          <li>
            <t><strong>CD</strong> is the SOCKS command code and should be <strong>1</strong> for CONNECT request.</t>
          </li>
          <li>
            <t><strong>NULL</strong> is a byte of all zero bits.</t>
          </li>
        </ul>
        <t>The SOCKS server checks to see whether such a request should be granted based on any combination of source IP address, destination IP address, destination port number, the userid, and information it may obtain by consulting <strong>IDENT, cf. RFC 1413</strong>. If the request is granted, the SOCKS server makes a connection to the specified port of the destination host. A <strong>reply packet</strong> is sent to the client when this connection is established, or when the request is rejected or the operation fails.</t>
      </section>
      <section anchor="connect-reply-packet-format">
        <name>CONNECT Reply Packet Format</name>
        <t><tt>
                +----+----+----+----+----+----+----+----+
                | VN | CD | DSTPORT |      DSTIP         |
                +----+----+----+----+----+----+----+----+
 # of bytes:     1    1       2                   4
</tt></t>
        <ul spacing="normal">
          <li>
            <t><strong>VN</strong> is the version of the reply code and should be <strong>0</strong>.</t>
          </li>
          <li>
            <t><strong>CD</strong> is the result code with one of the following values:
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>90:</strong> request granted</t>
              </li>
              <li>
                <t><strong>91:</strong> request rejected or failed</t>
              </li>
              <li>
                <t><strong>92:</strong> request rejected becasue SOCKS server cannot connect to identd on the client</t>
              </li>
              <li>
                <t><strong>93:</strong> request rejected because the client program and identd report different user-ids</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>The remaining fields are ignored.</t>
        <t>The SOCKS server closes its connection immediately after notifying the client of a failed or rejected request. For a successful request, the SOCKS server gets ready to <strong>relay traffic on both directions</strong>. This enables the client to do I/O on its connection as if it were directly connected to the application server.</t>
      </section>
    </section>
    <section anchor="bind">
      <name>BIND</name>
      <t>The client connects to the SOCKS server and sends a <strong>BIND</strong> request when it wants to prepare for an <strong>inbound connection</strong> from an application server. This should only happen after a primary connection to the application server has been established with a CONNECT. Typically, this is part of the sequence of actions:</t>
      <ul spacing="normal">
        <li>
          <t><tt>bind()</tt>: obtain a socket</t>
        </li>
        <li>
          <t><tt>getsockname()</tt>: get the IP address and port number of the socket</t>
        </li>
        <li>
          <t><tt>listen()</tt>: ready to accept call from the application server</t>
        </li>
        <li>
          <t>use the primary connection to inform the application server of the IP address and the port number that it should connect to.</t>
        </li>
        <li>
          <t><tt>accept()</tt>: accept a connection from the application server</t>
        </li>
      </ul>
      <t>The purpose of SOCKS BIND operation is to support such a sequence but using a socket on the <strong>SOCKS server</strong> rather than on the client.</t>
      <t>The client includes in the request packet the IP address of the application server, the destination port used in the primary connection, and the userid.</t>
      <section anchor="bind-request-packet-format">
        <name>BIND Request Packet Format</name>
        <t><tt>
                +----+----+----+----+----+----+----+----+----+----+....+----+
                | VN | CD | DSTPORT |      DSTIP         | USERID       |NULL|
                +----+----+----+----+----+----+----+----+----+----+....+----+
 # of bytes:     1    1       2                   4          variable      1
</tt></t>
        <ul spacing="normal">
          <li>
            <t><strong>VN</strong> is again <strong>4</strong> for the SOCKS protocol version number.</t>
          </li>
          <li>
            <t><strong>CD</strong> must be <strong>2</strong> to indicate BIND request.</t>
          </li>
        </ul>
        <t>The SOCKS server uses the client information to decide whether the request is to be granted. The reply it sends back to the client has the <strong>same format as the reply for CONNECT request</strong>, i.e.,</t>
      </section>
      <section anchor="bind-first-reply-packet-format-socket-assigned">
        <name>BIND First Reply Packet Format (Socket Assigned)</name>
        <t><tt>
                +----+----+----+----+----+----+----+----+
                | VN | CD | DSTPORT |      DSTIP         |
                +----+----+----+----+----+----+----+----+
 # of bytes:     1    1       2                   4
</tt></t>
        <ul spacing="normal">
          <li>
            <t><strong>VN</strong> is the version of the reply code and should be <strong>0</strong>.</t>
          </li>
          <li>
            <t><strong>CD</strong> is the result code with one of the following values:
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>90:</strong> request granted</t>
              </li>
              <li>
                <t><strong>91:</strong> request rejected or failed</t>
              </li>
              <li>
                <t><strong>92:</strong> request rejected becasue SOCKS server cannot connect to identd on the client</t>
              </li>
              <li>
                <t><strong>93:</strong> request rejected because the client program and identd report different user-ids.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>However, for a granted request (<strong>CD is 90</strong>), the <strong>DSTPORT</strong> and <strong>DSTIP</strong> fields are meaningful. In that case, the SOCKS server obtains a socket to wait for an incoming connection and sends the <strong>port number</strong> and the <strong>IP address</strong> of that socket to the client in <strong>DSTPORT</strong> and <strong>DSTIP</strong>, respectively. If the DSTIP in the reply is <strong>0</strong> (the value of constant <tt>INADDR_ANY</tt>), then the client should <strong>replace it by the IP address of the SOCKS server</strong> to which the cleint is connected. (This happens if the SOCKS server is not a multi-homed host.) In the typical scenario, these two numbers are made available to the application client prgram via the result of the subsequent <tt>getsockname()</tt> call. The application protocol must provide a way for these two pieces of information to be sent from the client to the application server so that it can initiate the connection, which connects it to the SOCKS server rather than directly to the application client as it normally would.</t>
      </section>
      <section anchor="bind-second-reply-packet-format-connection-established">
        <name>BIND Second Reply Packet Format (Connection Established)</name>
        <t>The SOCKS server sends a <strong>second reply packet</strong> to the client when the anticipated connection from the application server is established. The SOCKS server checks the IP address of the originating host against the value of <strong>DSTIP specified in the client's BIND request</strong>. If a mismatch is found, the <strong>CD field in the second reply is set to 91</strong> and the SOCKS server closes both connections. If the two match, <strong>CD in the second reply is set to 90</strong> and the SOCKS server gets ready to relay the traffic on its two connections. From then on the client does I/O on its connection to the SOCKS server as if it were directly connected to the application server.</t>
      </section>
    </section>
    <section anchor="timeout-mechanism">
      <name>Timeout Mechanism</name>
      <t>For both <strong>CONNECT</strong> and <strong>BIND</strong> operations, the server sets a <strong>time limit</strong> (2 minutes in current CSTC implementation) for the establishment of its connection with the application server. If the connection is still not establiched when the time limit expires, the server closes its connection to the client and gives up.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The SOCKS Version 4 (SOCKSv4) protocol, designed for TCP proxy traversal of network firewalls, operates exclusively at the session layer and <strong>inherently lacks robust security mechanisms</strong>. Its deployment and operational policy must be rigorously evaluated against the deficiencies outlined herein.</t>
      <section anchor="authentication-and-authorization-deficiencies">
        <name>Authentication and Authorization Deficiencies</name>
        <section anchor="weak-client-identification-mechanism">
          <name>Weak Client Identification Mechanism</name>
          <t>The SOCKSv4 request format incorporates a <strong><tt>USERID</tt></strong> field. This field is designated for rudimentary client identification, typically intended for conjunction with the <strong>IDENT protocol</strong> (specified in [RFC 1413]).</t>
          <ul spacing="normal">
            <li>
              <t><strong>Ident Protocol Vulnerability:</strong> Reliance on IDENT constitutes a <strong>significant security risk</strong>. The IDENT protocol operates via an untrusted daemon resident on the client host, rendering the identification process susceptible to trivial <strong>spoofing or malicious disabling</strong>.</t>
            </li>
            <li>
              <t><strong>Absence of Strong Authentication:</strong> SOCKSv4 <strong>lacks integrated provisions</strong> for strong client-to-server or server-to-client authentication. This includes the absence of any mechanism for verifying user credentials, such as passwords, or employing cryptographic challenge-response methods.</t>
            </li>
          </ul>
        </section>
        <section anchor="policy-dependent-authorization">
          <name>Policy-Dependent Authorization</name>
          <t>Access control (authorization) for SOCKSv4 services is <strong>exclusively managed</strong> by the local configuration and security policy of the SOCKS server implementation. A failure in the server's configuration or a weakness in its policy can directly result in <strong>unauthorized network access</strong> across the protective boundary of the firewall.</t>
        </section>
      </section>
      <section anchor="data-integrity-and-transport-limitations">
        <name>Data Integrity and Transport Limitations</name>
        <section anchor="absence-of-confidentiality-plaintext-relay">
          <name>Absence of Confidentiality (Plaintext Relay)</name>
          <t>SOCKSv4 functions as a session layer relay and <strong>does not incorporate any encryption</strong> capabilities for the application data stream. All application traffic traversing the SOCKS proxy is forwarded in <strong>plaintext</strong>. This inherent vulnerability exposes all transmitted data to <strong>passive network eavesdropping</strong> and interception.</t>
        </section>
        <section anchor="protocol-scope-restriction">
          <name>Protocol Scope Restriction</name>
          <t>The SOCKSv4 protocol is <strong>strictly confined</strong> to the proxying of <strong>Transmission Control Protocol (TCP)</strong> connections. It provides <strong>no native support</strong> for the relay of <strong>User Datagram Protocol (UDP)</strong> traffic or other protocols operating at the IP layer.</t>
        </section>
      </section>
      <section anchor="vulnerabilities-associated-with-the-bind-operation">
        <name>Vulnerabilities Associated with the BIND Operation</name>
        <t>The <strong>BIND</strong> command, utilized to establish a socket for an anticipated inbound connection (a callback) from an application server, introduces distinct security challenges.</t>
        <section anchor="source-address-verification-bypass">
          <name>Source Address Verification Bypass</name>
          <t>The SOCKS server attempts a rudimentary security check during the BIND operation by comparing the source IP address of the incoming connection with the target address (<tt>DSTIP</tt>) specified in the client's request.</t>
          <ul spacing="normal">
            <li>
              <t><strong>IP Address Spoofing Risk:</strong> A malicious actor could potentially <strong>forge the source IP address</strong> of the inbound connection, thereby bypassing this basic server check and facilitating the establishment of an <strong>unauthorized session</strong>.</t>
            </li>
            <li>
              <t><strong>NAT/PAT Incompatibility:</strong> In network topologies employing <strong>Network Address Translation (NAT)</strong> or <strong>Port Address Translation (PAT)</strong>, the source IP address is structurally altered. This modification renders the BIND source address verification mechanism <strong>unreliable, ineffectual, or operationally complex</strong> to maintain.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="denial-of-service-dos-vector">
        <name>Denial of Service (DoS) Vector</name>
        <section anchor="resource-exhaustion-potential">
          <name>Resource Exhaustion Potential</name>
          <t>Each successful SOCKS connection consumes finite server resources, including active sockets, allocated memory, and network bandwidth. A malicious client can exploit this by initiating a <strong>large volume of connection attempts</strong>—particularly through the resource-intensive <strong>BIND operation</strong>—to rapidly exhaust the SOCKS server's capacity. This constitutes a direct vector for a <strong>Denial of Service</strong> attack against legitimate users.</t>
        </section>
        <section anchor="inadequate-mitigations">
          <name>Inadequate Mitigations</name>
          <t>Although the protocol specifies a basic connection establishment <strong>timeout mechanism (2 minutes)</strong>, this measure is insufficient in scope and rigor to fully mitigate the risks associated with sophisticated DoS attacks.</t>
        </section>
      </section>
      <section anchor="recommended-mitigation-and-deployment-practices">
        <name>Recommended Mitigation and Deployment Practices</name>
        <t>Given the security deficiencies of SOCKSv4, deployment should be guided by the following principles:</t>
        <ol spacing="normal" type="1"><li>
            <t>Strict Operational Environment: SOCKSv4 is only recommended for use in environments designated as highly trusted and subject to stringent local policy control*.</t>
          </li>
          <li>
            <t>Layered Security via Encrypted Tunnels: Where SOCKSv4 must transport sensitive application traffic, the protocol must be encapsulated within an existing secure transport layer, such as a Transport Layer Security (TLS/SSL) or IPsec tunnel, to establish confidentiality and integrity.</t>
          </li>
          <li>
            <t>Protocol Migration: Operators should actively plan for the migration to or substitution with a more secure protocol version, specifically SOCKS Version 5 ([RFC 1928]), which incorporates native, robust authentication methods.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document describes the SOCKS Version 4 protocol, which is presented as a historical record. This protocol does not define any new protocol fields, codes, or registries that require assignment by the Internet Assigned Numbers Authority (IANA).</t>
      <t>The existing values used within the protocol are summarized below:</t>
      <section anchor="socks-protocol-version-number-vn">
        <name>SOCKS Protocol Version Number (VN)</name>
        <ul spacing="normal">
          <li>
            <t>The SOCKS protocol version number <tt>VN</tt> in requests is <strong>4 (0x04)</strong>.</t>
          </li>
          <li>
            <t>The SOCKS protocol version number <tt>VN</tt> in replies is <strong>0 (0x00)</strong>.</t>
          </li>
        </ul>
      </section>
      <section anchor="socks-command-code-cd">
        <name>SOCKS Command Code (CD)</name>
        <t>The SOCKS command code <tt>CD</tt> in requests defines two values:
    * <strong>1 (0x01):</strong> CONNECT
    * <strong>2 (0x02):</strong> BIND</t>
      </section>
      <section anchor="socks-reply-code-cd">
        <name>SOCKS Reply Code (CD)</name>
        <t>The SOCKS reply code <tt>CD</tt> in replies defines four values:
    * <strong>90 (0x5A):</strong> Request granted
    * <strong>91 (0x5B):</strong> Request rejected or failed
    * <strong>92 (0x5C):</strong> Request rejected because SOCKS server cannot connect to <tt>identd</tt> on the client
    * <strong>93 (0x5D):</strong> Request rejected because the client program and <tt>identd</tt> report different user-ids</t>
      </section>
      <section anchor="port-number">
        <name>Port Number</name>
        <t>The SOCKS protocol is conventionally known to use <strong>TCP port 1080</strong> for its service. This port number has already been registered in the <strong>IANA Service Name and Transport Protocol Port Number Registry</strong> for the <tt>socks</tt> service.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1413">
          <front>
            <title>Identification Protocol</title>
            <author fullname="M. St. Johns" initials="M." surname="St. Johns"/>
            <date month="February" year="1993"/>
            <abstract>
              <t>The Identification Protocol was formerly called the Authentication Server Protocol. It has been renamed to better reflect its function. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1413"/>
          <seriesInfo name="DOI" value="10.17487/RFC1413"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC791">
          <front>
            <title>Internet Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="791"/>
          <seriesInfo name="DOI" value="10.17487/RFC0791"/>
        </reference>
        <reference anchor="RFC793">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </reference>
      </references>
    </references>
    <?line 219?>

<section numbered="false" anchor="original-auther">
      <name>Original Auther</name>
      <artwork><![CDATA[
Ying-Da Lee
Principal Member Technical Staff
NEC Systems Laboratory, CSTC
ylee@syl.dl.nec.com
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1bbW8jR3L+zl/RsD+cyJC0tN5DbhUEOFnaTZRba4WVvMYh
OETNmSbZ3nnhTc9QS+cS5EfkF+aX5Kmq7p4earSO40PyxQIsr8hhd3W9PPVU
V3GxWExa2xbmXH1x9+7yD3fn6kLdNnVbZ3Wh1nWj7i9v6YVPB3WRNbVz6o1t
zKMuCvfFRK9WjdmHj75Ud7evL7+YZLo1m7o5nKutdW3d2Gwyyeus0iV2yRu9
bhd7XWVm4erso1vsXy5OTyeuW5XWOVtX7WGH52yVm53Br6qdYIevJxPdtdu6
OZ+oxUThZ90VhSx5pStrCvVP+MOpD7QyP1A3G7zxo26x5rm6Ttajd02pbQFx
fiBRfl93bVHXH5dZXU4mVd2U+NTeYC/1/s3l2cuzr88nE1utj97421dn8V/0
xHK5nEwWi4XSK9c2Omsnk3uoQOHwXYmNFf6961aFdVuTK+2UjhrShWpMVje5
qteq3RrFGlUv1c7bYqnu8Soe3dgKD7udybAuDlzVrdrqvVG6Uhd+37lyNa8S
XlArU9SPtL/Oc9p73ZrmUTe5Wx7LmBuXNXaFlUWEvWnIKurlHOIGaegpu6mw
Ulurtc5sYVtYnZ1lx87iTLO3GVbR4jVaVaZ9rJuPau39Z+k3qHemwWfxSMsy
O8NuoAp9MM2cltvb3FYbpXe7Apoie6oO6zv1aNutwgErt9MNCa8zbOlIqLBb
lAMfotVr/GqUs7kJmu7luWYLJdss4nkTd4QeCiiTJLItbeW63a5usDnkwbIQ
Z8OLh63n+HRWdHwGuLAzqmuhsB/pb1NlzWFHe83V49YWRsEvqxb/0bsl/ld2
JemAzkUv1bDH1uhcraBjW+6KAxwHqqL3ct1qMS12tK2Fn3iFZAirBsfItgYh
J76U2HJtK2gICsOLttTNwRsFYrlzdfnu5ub15T2jgXGtZgdmWbp2VXdVTstX
JuPHSSHwxNRWpAeypMaT31zfXPFCu8bAZrQK/UVvkajQBKm1erqsHKg1fPDR
DeDJHHylzfPCTCZfIuZx6LzjFSYT8bZHhF2IIuguN3tExk6WvdLwNPWHelVQ
bEIAgJIzf+5gdDxa1rldWwoevGM+teQN7P+2hYK7hh2w6Sq2XIgayDObxRCa
zaKT9epvt3B8tqHDsxRBPgLcbEYxoaOHKjgPexw74Eg8zGZPg4EWkRAcOvs3
JtP4FL/au7lLPZ2cON0kPEYe3aoMVlgZdULq2EJhK2OqKQmSs0lLXUG9dr02
LEwfDK7LtgR+ENYUCNO5Wrc7/ILayEset7XFU5t6t6U/v//++7kybbbEOS6O
nFkEYAnJLAIfKwPbsg0gvdHYK1Hp39EjjZEYEbAh1xlEkiiKY2kFEMGp+IUM
m5BScVr6c8zBEeZwA9p6NvtM6JIX3OHZAPKVIRFIhTDtx4osWx1ajjCNQGif
7BfswGZw27orcPoCkA9tGO0OrH/BJvhAXcJzCZyTJRyBDVRDDtBDEH2A1kbM
0Z62IWxdr22m1k1dItM4A9CpagIHThwAjB4oFLzOY0l+Dg142CD/g85mMwp9
HJ0C079FqScq1gc7K6FPgN4+HIxwSgqcdOWGohMx8biFlXDiR13JChGn8IEe
Rp4FJ0FEL4mgtaFQYEnCJjudfTRijetbSqQNeWNwCE4BVVeuIK7PLFgDeCb7
UOgKBFKo2nweVl/XIZsIvSAFRQ2p937vW9n7DT8ymTw8PDCLSX/+BuC3+Hm/
QFiW8q8nq/1FfbjBr8sr/Lq6u7999/4e/+If/Inz9w9+d/f6/fVV+PPmu7dv
//LXFu5LUunqAJZwzsudxV/4eXG8GX5e9v/cI83AF4z8dca6g3wzONKHG/iQ
dYm/RSQMmO0tyg4okYYgm80Iyv0il1fHi1DIac5fuXnyyTM8TfEZLOy9K6xG
6pP1NB+YMRjQ/6NpEN9INUuJmkF4SFpnLmIMBYOQHAba6L69EBskCc6kmsAa
hySohtCr4KxEXuquyVJHnw/c+bnXkyiYs0aCt5MaIoOuOVhLDZ6xIq5DyRdR
6rqiFfS8vnp9cz9X2XpJ7FoRA+fcuR4EJJTkjzJ/Chml/kic8ij6GfPBnSWT
s7TPBOsShdBsBpaCvCCRL2ZxBBF+JQ8YjD4tsehkM/wVQYgEhMn9c4MDNOYH
fIDMIAkp4ilotS3cMRqQNH9NLPgFcf9LNv358fxc2IY4rYNrkIZGA+90PGTh
w3A7+QjXE3XVlwYRm/e6gMXO/ZlpjVen50kC8n6Yvn+Wvp+amQw7fPTF6KMr
MDTXHYe6rqji847G9JOoWh7qG3HJdPGvn1080D/vxsA+HKOUUJVFoU4KkZ7G
UTgvbO4EhBqqoplrIZyKXCgA6sK6MfkoThWgEE4IcxIpZWly4vawnDAznNCu
D1IvRfEICL3uSIvxJAFAKSDwBFCPCNe6K8I7I+CwMS2Fns4PpEEKcxC/yHYg
0wp1Io7d+PKDwIfLZFNRKnGpXFggr9X1V+8Uw9rgaOB0ds3ExBA54vXYP/kJ
KR/G2STzJKJM/1uSJHTreYYkBZjx5Rc+8LTqokxFxO9ZykRwKBFWVzjWFk9h
F7GhjrXkUwR+ulqsIFLQlHjUAf6w42FHVyXFYS5wS/cpuodwqdUyyZliuHPB
jAektvxk+nAeEg78pCYUlXfJHfAnXSfxQ5txmjdC8dJVIDSKQl4gupYUtYqE
Fl2OH58X6KuxMb1J8nxOfV6cn+ClXGr2NUMPIgKMDyItn8ALPsifnzsAe+mu
a3Z0vwFpxDO53O9TmnXpfYnnJ9Fqq47whcser9cAarNZ6ujk1ZoZDs5TDYFv
OQiXn8fkvQ7HKrtjgsDyc6nrV35qs3m0gFAgyeSskF9J/f8FqdcbCnSm6gxy
P0nyB+yg7FwrvOEF/uL4y8krjJgwsvanSa5zw/yQsl7KFSCfeU/Sj+hgWycE
XapSoTQUtYztKzjNEf/kqwMOEwcE83Wk0oHf0MdHKo7ZDDXo0iznvWO+sQ3E
GGGZ6uROAvLCyb3v9Ffe+Svv/H/gnQi4f6wfDYMyM5dYzIadTkjNpORXUPx0
7gPDu1S8jGKfImDoeWtpNFFZEEcUmpXkSijCjNBHIRGuz1NQx6NGiHoyhbxT
l2S+lApGdiYSJXnZSyWv9wkJL7M/QI5+mwGwPH+wOfnXjrbeg1bHyllCKWZD
BhYnPqpO2K3J32hbKsdbaFY9XN9cXF29/5eLmz8+iDoH96He06VS1sji0AKq
+fHUepTFSWt8DSnrGSstssiOl+qEOabwSqbST0xhpQOmAdhFaxfbGrWE1O9T
sSJcTVijchnYe2NrPgS54GPtDeAdQFP07hElnFlGuGp0WPbXvdVpJAdGGHsG
x7ySWaBg+thtrqQcaXcZaibpQ8hbXtidNdzJWh/nlJWRa4lI0PrS5Bm+yP1B
IYMZO6x0V+TDCYcR+8Syw7ajlUdKx2KR87z+NC/EbVbqwTySByX06M5gv3w8
DV32AfW6LxSmI2m4r4ScrHd0lTN6hUPo3drM7rjT9D+jvkc3PWLg0eu50Zjw
zSi++OL+DvMWJ+w0hqMP7OTuyqZh+Bs3oCX+rgxBYR3UBgtCxjVVdwEPAZEM
fWGZgY74lost/eoswaaxUp7r5KRPF5GG/JW3nstuP7HP6XP7DCt1X6fT+n2t
TjU3bTcQ44032FF9ID3z8WJ9tKb+ZQX8vS0NdXC+NRliA8aYTOiWgrX2XIck
aanMBz0q0gT5c4tFVWFLS2588oK6xF0rRU5oQ17e3V8q6mkZ6unzYtNIgqOz
lv5a5UgP0lUfP1Qw7/CiE4UR6lvCYb92xtV7iKleYGU+7aDD4cHGb4WG8UkK
2iCXOdXtWLMAia6x7UEBEaib7zWWAsGH0HYFe6UX9i+nSessTjCEIReZW4Bf
EbVDuoBijkcWIHecVjCfUFs6Tq+jkwveprbaMoPBU0iPQIGmXhHOuyB/GVzD
SXfYQbJdUR/KcOzoDpBpV0O3h1icADrqpu4cFjcEFYxaKX5QOy6DAvGfo3Z9
Qc05RRLZShD3oqMgaYOZacMLHrTxkzPqKlmCPvGl+t7oj+pS7HJNfA2A5D+e
+Hm0w/5l5Ga+MiF61ID/yNQHlPQg1eZDIGT+bskjlPO24tORtZout+zXVHB7
LjSQYx5yPoFM5Tv19En41w9ddeTmvt0QfYOiaoCz/xx6EH+aQmlEbvnY/ZzU
h66oYKQVjcEciPa+N4XVfBNVKVmc+ZRtu3BkOhDLWyW+0Fj3Ua4ajRrK1Psd
sQ6k2a5qG3gBBMy1KbENospK036Ad9J3bEgFTbhQHSortKjBXBxPYATy09g9
jZBA1l1dr7mDTW0VeKCFzwEMHYV6taH6hpRyAeLjb9/u2qbG80PnIsUEj5jN
JBrIOpuGLcvMJ8w9kLGcLCIHWbT1IrDvxiMHvRbwYbCT9594/cNg1ktH7a4Y
drwVFvMXzlRoqKwxrCJdJPMKO+0c0CB33MsxJQUpc3zqnlMFswNXQq6H15lq
YxZEwHEYKiwQT7m0cr5UtxzCi6s4ZDEIt8nkaMjhRKdvC4gHJcbZJubwKSCV
utIbk0ORnosXNTFgLLq2m67RSUXiXc8jywhRP8oj1BejSrKjq/4qwfHfuKP1
uTx7BFhUdCAr+dbvk6VM0RNorme6KhwYLhHwd2ySxQ8q4LyK7615aulooosR
7oomOa7Zz+igdOp7npKhAuwtZaWQOsg8iRNf0mm8H9AnT24Lms0yn+iKBBg/
9TNFsMTag4qTqb5hIhDSIukgjuwlGMj+2E9h4JiZ3gmYEGyHtJ1mY55OQXwY
XcIeyL3pm4Ea+VQWoj7efX06CB3kAUBBOJSj4Wyx1REyl9qn6EYZnNM13Wjz
tBEUKDAEkbiZQoFCZgnWMxDD5U292zFY+FZwaxpGm7oKgRGg7i4D2EHFOJ/1
s1tpMkmHlYBN/JBQMh496ak9H9UPAs1m9yKrGObSR1fc8wQMYEqaH1DZWI7R
ThWqRZ7+DBfYyb2imJj3+Y4AhHyOa8R+g++ueIPIWxs/ihiHqkKip/vveDfN
HiR+nCYZ8osLh9pSRuJiKuMi4F0gDKK3yCv9WMLcjx8KeU0HZfwtg7/ESCuh
p70hABPXs3QdOf1Mm4jmXGQKz3DKwPmyJONFuAzweCdzBxe+SPpAwBxW/OZA
rjVS62l4YLljepxyg2QXFGAq72IGPOpL8PhB6ecRpa1zNP0QoGXsZidqH5tS
5yh85OSBa7aH6Weqtv4eeSZ3P+HgdyHnvgcnoMx5kaRenbVMZujmZQcYZIhC
DMxmsN3GjB8hXCeZEWsyH28M9LBiHYseLN02OzhrWsdy+MaR36CwJzWFfgLm
HhQDW7i5uP/q9uIeyMyqB+2I7Om6itjR1kgY9Yb8vc+4+LB/O2iLg7sQY55g
ZYo0aGg2uyWQH33qlp+aP2NuLmqaLmuRzEizugBemUBMZRTUe6VwK9f7lV8t
LLVPXbinHaSdhmgi6BYFiVmvYYtOF0wvEtJfiHMW5pNAWxgQpnlXSm+mslKt
3AkdUCdX9d0UkUNOIkEFLBWZXn/aarBGkuQ2+M1k8pqmJJO+eZhiih7Oszk0
Xb+mi6JYuDV+2cGEs5acLFjiZFg6YxApwVObg/TFgn1X+OPR5u12OXDw0O6G
FyHfFDXdO7E7HsJVlbQJiUaSw+/rAvL5e8t44+pRYTb7r//4T+oT26zD43Q1
tUXVtNmG2zs+xIILBU5cgpi9DXgBun3QO5tTrSVafMKUiAEhc2dwY+8oQ9Yv
hAcOweEr19ez2RMD8thvS22eUMoVZoNDl8QVeNDXY+V1pXPgB738Ld7fBB5z
USDowvliugwgxJNlHNaJrobxK3cMdHHR+2t/0eDDhuLAaMc8kNiC69ZSKTKT
c5zEydRcpPL3BDry5VIkFZCigoc40zCTuXpH34uw4jbwZq8PPw313lAmk6Ku
PzfvddWXzrf0vQdix5PJP8Co8fpJMsKwMF4HcjFPi+9kYK6zuYyID7szOyQM
pMiCOjSTsyWVPSAjfQKGWV9Xe4syhhY8jxTGOhmYaJKTkDtQYwS6M/1nBrUv
uOXWbrbkwL7280PqP/iWDJEh5FLILnw/kG1hOwDeF0ul3hKlwGfjDQpVlK+F
fuLl+w5OUbhz9T1lhCgyXzm0kTc7ChUO9BHmOR86XritgLb1Dkw/GprmMCjA
mRVsxDgm2cR/AyQUYDrl7cys4xFO7t/efXV393ZK2Hl9i5VUy+eYDzlOdkTp
AxXl0mA5+RrqiYztW7tp/JeHxKB1E8ddtG+sKNDmKrLAMnyCNqUqtVtJ9EeW
oJE6GhNOetyHnocYlZuL4S3Wb9WJ3EO8evG7P03DzfzgKkXo6TxcMQ1r4rQM
VdcXNxcjN2fj3wPqYa6/Uevv0bwcjgaKqAnx7DebPCT2XzsJpZDMjHMVVJnH
/gHpzc25RSpFdwMcJB9nofhbE3/ugKkEIIgRFjv0nqi+qJKGtbrxnR5fbpPT
kBamvoUfvVA6rjLc4Z104M3UKUIyLLWwGv5i1TnjkuiovxTyypKN1cmHmymx
vPvtT80aP3y4eSAY8NzQl/cv1cnpp9OXU+FPP2cV+nqEX+SUFzmdyhx+EPnS
zytfUi/65PJq0E4ZDDM/XF4NRUu/O5T2qonhnfFmZ1OidGHiP7z3gt97we/J
lFuURvo+o7IkXfZeEjleEGSNZP5Ekld87t9eTOVu7mnrXBrn/NA3g4ee6Z9L
95yfvxx/PvS5f6KJ/iAN74eRNro00XmPq8/v8UwvPa79mSlOvpDCe+Kkqa7T
MhsC7wlJPB2l76gwxtHm8pUl3uDs9Henviimqx5/PRXiPplDo4EVXUhXh4f+
JLA5Ldkw8sUYFTjtDQ22DK9uYqAlB4COGCEOSW3+wF8zfYjiyLfEqG4lJHwX
vlHJd5XN5F/PRUaT//0Xa10488W/Tf4dP5M/AhwWV1q9NWZyK3kfn/rW8Lb3
oEkVY91dixQ4ga+ruwNOVDqkqlXN2QPUl/oyk0NhzO/doVjmxRJ+wF865S3+
G+g3dZmNOwAA

-->

</rfc>
