§
     öÉgny  ã            	       óä  — d dl mZ 	 d dlmZ n# e$ r	 d dlmZ Y nw xY wd dlmZmZm	Z	 d dl
Z
d dlmZ d dlZd dlZd dlmZ d dlZd dlZd dlZdZej        dk    r%ej        d	k     r	 d dlZn# e$ r  ed
¦  «        ‚w xY w ej        e¦  «        ZdxZZdxZZdxZZeeedœZ  e! e"e  #                    ¦   «         e  $                    ¦   «         ¦  «        ¦  «        Z%ej        xZ&Z'd„ Z( G d„ de)¦  «        Z* G d„ de*¦  «        Z+ G d„ de*¦  «        Z, G d„ de*¦  «        Z- G d„ de*¦  «        Z. G d„ de*¦  «        Z/ G d„ de*¦  «        Z0ddd d!œZ1d"d#d$d%d&d'd(d)d*œZ2ed+ed+ed,iZ3	 	 d9d.„Z4d/„ Z5d0„ Z6e6Z7d1„ Z8e8Z9	 	 	 	 	 d:d2„Z: G d3„ d4ej        ¦  «        Z;d5„ Z<d6D ]KZ e=e;ed¦  «        Z> e?e>e¦  «        s0e;j@         A                    e¦  «          eBe;e e<e¦  «        ¦  «         ŒL G d7„ d8e;¦  «        ZCdS );é    )Ú	b64encode)ÚCallable)Ú
EOPNOTSUPPÚEINVALÚEAGAINN)ÚBytesIO)ÚSEEK_CURz1.7.1Únt)é   r   z8To run PySocks on Windows you must install win_inet_ptoné   é   r   )ÚSOCKS4ÚSOCKS5ÚHTTPc                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                  ó$  •— | d         }	 |                      ¦   «         }|dk    r|                     d¦  «          ‰| i |¤Ž|dk    r|                     d¦  «         S S # t          $ r}‚ d }~ww xY w# |dk    r|                     d¦  «         w w xY w)Nr   TF)Ú
gettimeoutÚsetblockingÚ	Exception)ÚargsÚkwargsÚselfÚ_is_blockingÚeÚfunctions        €úQ/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/socks.pyÚwrapperz"set_self_blocking.<locals>.wrapper(   sË   ø€ à�AŒwˆð
	(ØŸ?š?Ñ,Ô,ˆLØ˜qÒ Ð Ø× Ò  Ñ&Ô&Ð&Ø�8˜TÐ, VÐ,Ð,ð
 ˜qÒ Ð Ø× Ò  Ñ'Ô'Ð'Ð'ð !øõ	 ð 	ð 	ð 	Øøøøøð	øøøøð ˜qÒ Ð Ø× Ò  Ñ'Ô'Ð'Ð'ð !øøøs#   ‹6A Á
A.Á(A)Á)A.Á.A1 Á1B)Ú	functoolsÚwraps)r   r   s   ` r   Úset_self_blockingr    &   s8   ø€ å„_�XÑÔð(ð (ð (ð (ñ Ôð(ð €Nó    c                   ó    — e Zd ZdZdd„Zd„ ZdS )Ú
ProxyErrorz4Socket_err contains original socket.error exception.Nc                 óp   — || _         || _        |r%| xj         d                     |¦  «        z  c_         d S d S )Nz: {})ÚmsgÚ
socket_errÚformat)r   r%   r&   s      r   Ú__init__zProxyError.__init__;   sB   € ØˆŒØ$ˆŒàð 	2ØˆHŒH˜Ÿš jÑ1Ô1Ñ1ˆHŒHˆHˆHð	2ð 	2r!   c                 ó   — | j         S ©N)r%   ©r   s    r   Ú__str__zProxyError.__str__B   s	   € ØŒxˆr!   r*   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   r,   © r!   r   r#   r#   9   s=   € € € € € Ø>Ð>ð2ð 2ð 2ð 2ðð ð ð ð r!   r#   c                   ó   — e Zd ZdS )ÚGeneralProxyErrorN©r-   r.   r/   r1   r!   r   r3   r3   F   ó   € € € € € Ø€Dr!   r3   c                   ó   — e Zd ZdS )ÚProxyConnectionErrorNr4   r1   r!   r   r7   r7   J   r5   r!   r7   c                   ó   — e Zd ZdS )ÚSOCKS5AuthErrorNr4   r1   r!   r   r9   r9   N   r5   r!   r9   c                   ó   — e Zd ZdS )ÚSOCKS5ErrorNr4   r1   r!   r   r;   r;   R   r5   r!   r;   c                   ó   — e Zd ZdS )ÚSOCKS4ErrorNr4   r1   r!   r   r=   r=   V   r5   r!   r=   c                   ó   — e Zd ZdS )Ú	HTTPErrorNr4   r1   r!   r   r?   r?   Z   r5   r!   r?   zRequest rejected or failedzLRequest rejected because SOCKS server cannot connect to identd on the clientzPRequest rejected because the client program and identd report different user-ids)é[   é\   é]   zGeneral SOCKS server failurez!Connection not allowed by rulesetzNetwork unreachablezHost unreachablezConnection refusedzTTL expiredz(Command not supported, or protocol errorzAddress type not supported)r   r   r   é   é   é   é   é   i8  i�  Tc                 ó‚   — | ||||r|                      ¦   «         nd|r|                      ¦   «         ndft          _        dS )z›Sets a default proxy.

    All further socksocket objects will use the default unless explicitly
    changed. All parameters are as for socket.set_proxy().N)ÚencodeÚ
socksocketÚdefault_proxy)Ú
proxy_typeÚaddrÚportÚrdnsÚusernameÚpasswords         r   Úset_default_proxyrR   s   sL   € ð !+¨D°$¸Ø5=Ð G §¢Ñ 1Ô 1Ð 1À4Ø5=Ð G §¢Ñ 1Ô 1Ð 1À4ð I…JÔÐÐr!   c                  óR   — d|v r|                      d¦  «        |d<   t          | i |¤ŽS ©NÚ	proxytyperL   )ÚpoprR   )r   r   s     r   ÚsetdefaultproxyrW   ~   s6   € Ø�fÐÐØ%Ÿzšz¨+Ñ6Ô6ˆˆ|ÑÝ˜dÐ- fÐ-Ð-Ð-r!   c                  ó   — t           j        S )z4Returns the default proxy, set by set_default_proxy.)rJ   rK   r1   r!   r   Úget_default_proxyrY   „   s   € åÔ#Ð#r!   c                 ó^   — t           j        rt           | j        _        dS t          d¦  «        ‚)a  Attempts to replace a module's socket library with a SOCKS socket.

    Must set a default proxy using set_default_proxy(...) first. This will
    only work on modules that import socket directly into the namespace;
    most of the Python Standard Library falls into this category.zNo default proxy specifiedN)rJ   rK   Úsocketr3   )Úmodules    r   Úwrap_moduler]   ‹   s.   € õ Ôð >Ý)ˆŒÔÐÐåÐ <Ñ=Ô=Ð=r!   c
           	      ó  — | \  }
}|
                      d¦  «        r|
                     d¦  «        }
|r*|                      d¦  «        r|                     d¦  «        }d}t          j        ||dt          j        ¦  «        D ]ê}|\  }}}}}d}	 t          |||¦  «        }|	r|	D ]} |j        |Ž  Œt          |t          t          f¦  «        r| 
                    |¦  «         |r|                     ||||||¦  «         |r|                     |¦  «         |                     |
|f¦  «         |c S # t          j        t          f$ r$}|}|r|                     ¦   «          d}Y d}~Œãd}~ww xY w|r|‚t          j        d¦  «        ‚)aí  create_connection(dest_pair, *[, timeout], **proxy_args) -> socket object

    Like socket.create_connection(), but connects to proxy
    before returning the socket object.

    dest_pair - 2-tuple of (IP/hostname, port).
    **proxy_args - Same args passed to socksocket.set_proxy() if present.
    timeout - Optional socket timeout value, in seconds.
    source_address - tuple (host, port) for the socket to bind to as its source
    address before connecting (only for compatibility)
    ú[z[]Nr   zgai returned empty list.)Ú
startswithÚstripr[   ÚgetaddrinfoÚSOCK_STREAMrJ   Ú
setsockoptÚ
isinstanceÚintÚfloatÚ
settimeoutÚ	set_proxyÚbindÚconnectÚerrorr#   Úclose)Ú	dest_pairÚtimeoutÚsource_addressrL   Ú
proxy_addrÚ
proxy_portÚ
proxy_rdnsÚproxy_usernameÚproxy_passwordÚsocket_optionsÚremote_hostÚremote_portÚerrÚrÚfamilyÚsocket_typeÚprotoÚ	canonnameÚsaÚsockÚoptr   s                         r   Úcreate_connectionr‚   ™   sÜ  € ð$  )Ñ€K�Ø×Ò˜cÑ"Ô"ð .Ø!×'Ò'¨Ñ-Ô-ˆØð ,�j×+Ò+¨CÑ0Ô0ð ,Ø×%Ò% dÑ+Ô+ˆ
à
€Cõ Ô 
¨J¸½6Ô;MÑNÔNð ð ˆØ45Ñ1ˆ�˜U I¨rØˆð	Ý˜f k°5Ñ9Ô9ˆDàð *Ø)ð *ð *�CØ#�D”O SÐ)Ð)Ð)å˜'¥C­ <Ñ0Ô0ð )Ø—’ Ñ(Ô(Ð(àð ?Ø—’˜z¨:°zÀ:Ø-¨~ñ?ô ?ð ?àð *Ø—	’	˜.Ñ)Ô)Ð)à�LŠL˜+ {Ð3Ñ4Ô4Ð4ØˆKˆKˆKøå”�jÐ)ð 	ð 	ð 	ØˆCØð Ø—
’
‘”�Ø�øøøøøøøøøð		øøøð ð Øˆ	å
Œ,Ð1Ñ
2Ô
2Ð2s   ÂBD-Ä-E'ÅE"Å"E'c                   ó,   — e Zd ZdZd„ Z e¦   «         ZdS )Ú_BaseSocketzBAllows Python 2 delegated methods such as send() to be overridden.c                 óº   — t          j        | g|¢R i |¤Ž t          ¦   «         | _        | j        D ]*}t          | |¦  «        | j        |<   t          | |¦  «         Œ+d S r*   )Ú_orig_socketr(   ÚdictÚ_savedmethodsÚ
_savenamesÚgetattrÚdelattr©r   ÚposÚkwÚnames       r   r(   z_BaseSocket.__init__Ø   st   € ÝÔ˜dÐ/ SÐ/Ð/Ð/¨BÐ/Ð/Ð/å!™VœVˆÔØ”Oð 	 ð 	 ˆDÝ'.¨t°TÑ':Ô':ˆDÔ˜tÑ$Ý�D˜$ÑÔÐÐð	 ð 	 r!   N)r-   r.   r/   r0   r(   Úlistr‰   r1   r!   r   r„   r„   Ö   s0   € € € € € ØLÐLð ð  ð  ð �‘”€J€J€Jr!   r„   c                 ó   ‡ — ˆ fd„S )Nc                 ó*   •—  | j         ‰         |i |¤ŽS r*   )rˆ   rŒ   s      €r   ú<lambda>z_makemethod.<locals>.<lambda>ä   s   ø€ Ð$< DÔ$6°tÔ$<¸cÐ$HÀRÐ$HÐ$H€ r!   r1   )r�   s   `r   Ú_makemethodr”   ã   s   ø€ ØHÐHÐHÐHÐHr!   )ÚsendtoÚsendÚrecvfromÚrecvc                   ó:  ‡ — e Zd ZdZdZej        ej        dfˆ fd„	Zd„ Z	ˆ fd„Z
d„ Zd„ Z	 	 dd
„Zd„ Zˆ fd„Zˆ fd„Zdˆ fd„	Zdˆ fd„	Zd„ Zˆ fd„Zd„ ZeZd„ ZeZd„ ZeZd„ Zˆ fd„Zd„ Zd„ Zd„ Zd„ Z e!ee"ee#e iZ$e%d ˆ fd„	¦   «         Z&e%d„ ¦   «         Z'd„ Z(ˆ xZ)S )!rJ   a2  socksocket([family[, type[, proto]]]) -> socket object

    Open a SOCKS enabled socket. The parameters are the same as
    those of the standard socket init. In order for SOCKS to work,
    you must specify family=AF_INET and proto=0.
    The "type" argument must be either SOCK_STREAM or SOCK_DGRAM.
    Nr   c                 ó>  •— |t           j        t           j        fvr$d}t          |                     |¦  «        ¦  «        ‚ t          t          | ¦  «        j        |||g|¢R i |¤Ž d | _        | j	        r| j	        | _
        nd| _
        d | _        d | _        d | _        d S )Nz0Socket type must be stream or datagram, not {!r})NNNNNN)r[   rc   Ú
SOCK_DGRAMÚ
ValueErrorr'   ÚsuperrJ   r(   Ú
_proxyconnrK   ÚproxyÚproxy_socknameÚproxy_peernameÚ_timeout)r   r{   Útyper}   r   r   r%   Ú	__class__s          €r   r(   zsocksocket.__init__ü   s©   ø€ à�Ô*­FÔ,=Ð>Ð>Ð>ØDˆCÝ˜SŸZšZ¨Ñ-Ô-Ñ.Ô.Ð.à(��j˜$ÑÔÔ(¨°°uÐN¸tÐNÐNÐNÀvÐNÐNÐNØˆŒàÔð 	>ØÔ+ˆDŒJˆJà=ˆDŒJØ"ˆÔØ"ˆÔàˆŒˆˆr!   c                 óÌ   — d}t          |¦  «        |k     rN|                     |t          |¦  «        z
  ¦  «        }|st          d¦  «        ‚||z  }t          |¦  «        |k     °N|S )zŠReceive EXACTLY the number of bytes requested from the file object.

        Blocks until the required number of bytes have been received.r!   úConnection closed unexpectedly)ÚlenÚreadr3   )r   ÚfileÚcountÚdataÚds        r   Ú_readallzsocksocket._readall  sq   € ð ˆÝ�$‰iŒi˜%ÒÐØ—	’	˜%¥# d¡)¤)Ñ+Ñ,Ô,ˆAØð JÝ'Ð(HÑIÔIÐIØ�A‰IˆDõ	 �$‰iŒi˜%ÒÐð
 ˆr!   c                 óÆ   •— || _         	 |                      ¦   «         }t          t          | ¦  «                             | j         ¦  «         d S # t
          j        $ r Y d S w xY wr*   )r¢   Úget_proxy_peernamer�   rJ   rh   r[   rl   )r   ro   Úpeerr¤   s      €r   rh   zsocksocket.settimeout  sj   ø€ ØˆŒð	à×*Ò*Ñ,Ô,ˆDÝ•*˜dÑ#Ô#×.Ò.¨t¬}Ñ=Ô=Ð=Ð=Ð=øÝŒ|ð 	ð 	ð 	ØˆDˆDð	øøøs   ŠAA ÁA ÁA c                 ó   — | j         S r*   )r¢   r+   s    r   r   zsocksocket.gettimeout#  s
   € ØŒ}Ðr!   c                 ób   — |r|                       d ¦  «         d S |                       d¦  «         d S )Ng        )rh   )r   Úvs     r   r   zsocksocket.setblocking&  s:   € Øð 	!Ø�OŠO˜DÑ!Ô!Ð!Ð!Ð!à�OŠO˜CÑ Ô Ð Ð Ð r!   Tc                 óx   — |||||r|                      ¦   «         nd|r|                      ¦   «         ndf| _        dS )a�   Sets the proxy to be used.

        proxy_type -  The type of the proxy to be used. Three types
                        are supported: PROXY_TYPE_SOCKS4 (including socks4a),
                        PROXY_TYPE_SOCKS5 and PROXY_TYPE_HTTP
        addr -        The address of the server (IP or DNS).
        port -        The port of the server. Defaults to 1080 for SOCKS
                        servers and 8080 for HTTP proxy servers.
        rdns -        Should DNS queries be performed on the remote side
                       (rather than the local side). The default is True.
                       Note: This has no effect with SOCKS4 servers.
        username -    Username to authenticate with to the server.
                       The default is no authentication.
        password -    Password to authenticate with to the server.
                       Only relevant when username is also provided.N)rI   rŸ   )r   rL   rM   rN   rO   rP   rQ   s          r   ri   zsocksocket.set_proxy,  sH   € ð" ! $¨¨dØ+3Ð=�h—o’oÑ'Ô'Ð'¸Ø+3Ð=�h—o’oÑ'Ô'Ð'¸ð?ˆŒ
ˆ
ˆ
r!   c                 óT   — d|v r|                      d¦  «        |d<    | j        |i |¤ŽS rT   )rV   ri   )r   r   r   s      r   Úsetproxyzsocksocket.setproxyA  s:   € Ø˜&Ð Ð Ø#)§:¢:¨kÑ#:Ô#:ˆF�<Ñ ØˆtŒ~˜tÐ. vÐ.Ð.Ð.r!   c                 ó  •— | j         \  }}}}}}|r| j        t          j        k    rt	          j        | g|¢R i |¤ŽS | j        rt          j        t          d¦  «        ‚|t          k    rd}	t          j        t          |	¦  «        ‚ t          t          | ¦  «        j        |i |¤Ž |                      ¦   «         \  }
}d|f}t	          ¦   «         | _        |                      ¦   «         }| j                             |¦  «         d}|                      | j        ||¦  «        \  }
}|\  }}
|\  }
}t          t          | ¦  «                             ||f¦  «         t          t          | ¦  «                             | j        ¦  «         d| _        dS )zVImplements proxy connection for UDP sockets.

        Happens during the bind() phase.z"Socket already bound to an addressz'UDP only supported by SOCKS5 proxy typeÚ0ó   )ú0.0.0.0r   N)rŸ   r£   r[   r›   r†   rj   rž   rl   r   r   r   r�   rJ   ÚgetsocknameÚ_proxy_addrrk   Ú_SOCKS5_requestrh   r¢   r    )r   r�   rŽ   rL   rq   rr   rO   rP   rQ   r%   Ú_rN   ÚdstrŸ   ÚUDP_ASSOCIATEÚrelayÚhostr¤   s                    €r   rj   zsocksocket.bindF  sŽ  ø€ ð
 ”Zñ	ˆ�Z ¨T°8Ø	Øð 	7˜TœY­&Ô*;Ò;Ð;ÝÔ$ TÐ6¨CÐ6Ð6Ð6°2Ð6Ð6Ð6àŒ?ð 	MÝ”,�vÐ'KÑLÔLÐLØ�ÒÐØ;ˆCÝ”,�z¨3Ñ/Ô/Ð/Ø$��j˜$ÑÔÔ$ cÐ0¨RÐ0Ð0Ð0ð
 ×"Ò"Ñ$Ô$‰ˆˆ4Ø�Dˆkˆå&™.œ.ˆŒØ× Ò Ñ"Ô"ˆØŒ×Ò Ñ&Ô&Ð&àˆØ×'Ò'¨¬¸ÈÑLÔL‰ˆˆ5ð ‰ˆˆaØ‰ˆˆ4Ý�j˜$ÑÔ×'Ò'¨¨t¨Ñ5Ô5Ð5Ý�j˜$ÑÔ×*Ò*¨4¬=Ñ9Ô9Ð9Ø,ˆÔÐÐr!   c                 ó  •— | j         t          j        k    r$ t          t          | ¦  «        j        |g|¢R i |¤ŽS | j        s|                      d¦  «         |d         }|d d…         }t          ¦   «         }d}| 	                    |¦  «         d}| 	                    |¦  «         |  
                    ||¦  «          t          t          | ¦  «        j        |                     ¦   «         |z   g|¢R i |¤Ž}	|	|                     ¦   «         z
  S )N©Ú r   éÿÿÿÿs     ó    )r£   r[   r›   r�   rJ   r•   rž   rj   r   ÚwriteÚ_write_SOCKS5_addressr–   ÚgetvalueÚtell)r   Úbytesr   r   ÚaddressÚflagsÚheaderÚRSVÚ
STANDALONEÚsentr¤   s             €r   r•   zsocksocket.sendtok  s  ø€ ØŒ9�Ô)Ò)Ð)Ø1•5� TÑ*Ô*Ô1°%ÐI¸$ÐIÐIÐIÀ&ÐIÐIÐIØŒð 	Ø�IŠI�gÑÔÐà�r”(ˆØ�S�b�S”	ˆå‘”ˆØˆØ�Š�SÑÔÐØˆ
Ø�Š�ZÑ Ô Ð Ø×"Ò" 7¨FÑ3Ô3Ð3à+�u•Z Ñ&Ô&Ô+¨F¯OªOÑ,=Ô,=ÀÑ,Eð 6Èð 6ð 6ð 6Ø.4ð6ð 6ˆà�f—k’k‘m”mÑ#Ð#r!   c                 óœ   •— | j         t          j        k    r | j        ||| j        fi |¤ŽS  t          t          | ¦  «        j        ||fi |¤ŽS r*   )r£   r[   r›   r•   r¡   r�   rJ   r–   )r   rÌ   rÎ   r   r¤   s       €r   r–   zsocksocket.send  s[   ø€ ØŒ9�Ô)Ò)Ð)Ø�4”;˜u e¨TÔ-@ÐKÐKÀFÐKÐKÐKà/•5� TÑ*Ô*Ô/°°uÐGÐGÀÐGÐGÐGr!   c                 ó–  •— | j         t          j        k    r)t          t          | ¦  «                             ||¦  «        S | j        s|                      d¦  «         t          t          t          | ¦  «         	                    |dz   |¦  «        ¦  «        }| 
                    dt          ¦  «         |                     d¦  «        }t          |¦  «        rt          d¦  «        ‚|                      |¦  «        \  }}| j        r0| j        \  }}||k    s|d|fvrt          j        t$          d¦  «        ‚|                     |¦  «        ||ffS )NrÄ   i   r   r   zReceived UDP packet fragmentr   zPacket filtered)r£   r[   r›   r�   rJ   r—   rž   rj   r   r˜   Úseekr	   r¨   ÚordÚNotImplementedErrorÚ_read_SOCKS5_addressr¡   rl   r   )
r   ÚbufsizerÎ   ÚbufÚfragÚfromhostÚfromportÚpeerhostÚpeerportr¤   s
            €r   r—   zsocksocket.recvfrom…  s3  ø€ ØŒ9�Ô)Ò)Ð)Ý� TÑ*Ô*×3Ò3°G¸UÑCÔCÐCØŒð 	Ø�IŠI�gÑÔÐå•e�J¨Ñ-Ô-×2Ò2°7¸T±>À5ÑIÔIÑJÔJˆØ�Š�•HÑÔÐØ�xŠx˜‰{Œ{ˆÝˆt‰9Œ9ð 	FÝ%Ð&DÑEÔEÐEØ!×6Ò6°sÑ;Ô;Ñˆ�(àÔð 	>Ø!%Ô!4ÑˆH�hØ˜8Ò#Ð# x¸¸8°}Ð'DÐ'DÝ”l¥6Ð+<Ñ=Ô=Ð=à—’˜Ñ!Ô! H¨hÐ#7Ð8Ð8r!   c                 ó&   —  | j         |i |¤Ž\  }}|S r*   )r—   )r   r�   rŽ   rÌ   r¾   s        r   r˜   zsocksocket.recv™  s!   € Ø �4”= #Ð,¨Ð,Ð,‰ˆˆqØˆr!   c                 ó’   •— | j         r| j                              ¦   «          t          t          | ¦  «                             ¦   «         S r*   )rž   rm   r�   rJ   )r   r¤   s    €r   rm   zsocksocket.close�  s=   ø€ ØŒ?ð 	$ØŒO×!Ò!Ñ#Ô#Ð#Ý•Z Ñ&Ô&×,Ò,Ñ.Ô.Ð.r!   c                 ó   — | j         S )z:Returns the bound IP address and port number at the proxy.)r    r+   s    r   Úget_proxy_socknamezsocksocket.get_proxy_sockname¢  s   € àÔ"Ð"r!   c                 ó*   — |                       ¦   «         S )z>
        Returns the IP and port number of the proxy.
        )Úgetpeernamer+   s    r   r¯   zsocksocket.get_proxy_peername¨  s   € ð ×ÒÑ!Ô!Ð!r!   c                 ó   — | j         S )zwReturns the IP address and port number of the destination machine.

        Note: get_proxy_peername returns the proxy.)r¡   r+   s    r   Úget_peernamezsocksocket.get_peername°  s   € ð Ô"Ð"r!   c                 óR   — d}|                       | ||¦  «        \  | _        | _        dS )z7Negotiates a stream connection through a SOCKS5 server.ó   N)r½   r¡   r    )r   Ú	dest_addrÚCONNECTs      r   Ú_negotiate_SOCKS5zsocksocket._negotiate_SOCKS5¸  s4   € àˆØ37×3GÒ3GØ�'˜9ñ4&ô 4&Ñ0ˆÔ˜TÔ0Ð0Ð0r!   c                 ó²  •— | j         \  }}}}}}	|                     d¦  «        }
|                     dd¦  «        }	 |r|	r|
                     d¦  «         n|
                     d¦  «         |
                     ¦   «          |                      |d¦  «        }|dd…         dk    rt          d	¦  «        ‚|dd…         d
k    rñ|r|	st          d¦  «        ‚|
                     dt          t          |¦  «        ¦  «         	                    ¦   «         z   |z   t          t          |	¦  «        ¦  «         	                    ¦   «         z   |	z   ¦  «         |
                     ¦   «          |                      |d¦  «        }|dd…         dk    rt          d	¦  «        ‚|dd…         dk    rt          d¦  «        ‚n:|dd…         dk    r,|dd…         dk    rt          d¦  «        ‚t          d	¦  «        ‚|
                     d|z   dz   ¦  «         |  
                    ||
¦  «        }|
                     ¦   «          |                      |d¦  «        }|dd…         dk    rt          d	¦  «        ‚t          |dd…         ¦  «        }|dk    r>t                               |d¦  «        }t          d                     ||¦  «        ¦  «        ‚|                      |¦  «        }t#          t$          | ¦  «                             | j        ¦  «         ||f|                     ¦   «          |
                     ¦   «          S # |                     ¦   «          |
                     ¦   «          w xY w)z‘
        Send SOCKS5 request with given command (CMD field) and
        address (DST field). Returns resolved DST address that was used.
        ÚwbÚrbr   s    s    r   r   ó   ú%SOCKS5 proxy server sent invalid dataó   zPNo username/password supplied. Server requested username/password authenticationré   rÇ   zSOCKS5 authentication failedó   ÿz7All offered SOCKS5 authentication methods were rejectedr   úUnknown errorú{:#04x}: {})rŸ   ÚmakefilerÈ   Úflushr­   r3   r9   Úchrr§   rI   rÉ   rÖ   ÚSOCKS5_ERRORSÚgetr;   r'   rØ   r�   rJ   rh   r¢   rm   )r   ÚconnÚcmdr¿   rL   rM   rN   rO   rP   rQ   ÚwriterÚreaderÚchosen_authÚauth_statusÚresolvedÚrespÚstatusrl   Úbndr¤   s                      €r   r½   zsocksocket._SOCKS5_request¾  s‘  ø€ ð
 <@¼:Ñ8ˆ
�D˜$  h°à—’˜tÑ$Ô$ˆØ—’˜t QÑ'Ô'ˆðW	àð .˜Hð .ð —’Ð0Ñ1Ô1Ð1Ð1ð —’˜_Ñ-Ô-Ð-ð �LŠL‰NŒNˆNØŸ-š-¨°Ñ2Ô2ˆKà˜1˜Q˜3Ô 7Ò*Ð*õ (Ø;ñ=ô =ð =ð
 ˜1˜Q˜3Ô 7Ò*Ð*ð !ð = Xð =õ *ð +<ñ =ô =ð =ð —’˜W¥s­3¨x©=¬=Ñ'9Ô'9×'@Ò'@Ñ'BÔ'BÑBØ'ñ(å"¥3 x¡=¤=Ñ1Ô1×8Ò8Ñ:Ô:ñ;ð  (ñ(ñ )ô )ð )ð —’‘”�Ø"Ÿmšm¨F°AÑ6Ô6�Ø˜q ˜sÔ# wÒ.Ð.å+Ø?ñAô Að Aà˜q ˜sÔ# wÒ.Ð.å)Ð*HÑIÔIÐIð /ð ˜Q˜q˜SÔ! WÒ,Ð,à˜q ˜sÔ# wÒ.Ð.Ý)ð$ñ%ô %ð %õ ,Ø?ñAô Að Að �LŠL˜ 3™¨Ñ0Ñ1Ô1Ð1Ø×1Ò1°#°vÑ>Ô>ˆHØ�LŠL‰NŒNˆNð —=’= ¨Ñ+Ô+ˆDØ�A�a�CŒy˜GÒ#Ð#Ý'Ø;ñ=ô =ð =õ ˜˜a ˜cœ‘^”^ˆFØ˜Š~ˆ~å%×)Ò)¨&°/ÑBÔB�Ý! -×"6Ò"6°v¸uÑ"EÔ"EÑFÔFÐFð ×+Ò+¨FÑ3Ô3ˆCå•*˜dÑ#Ô#×.Ò.¨t¬}Ñ=Ô=Ð=Ø˜c�?à�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs   ¼KL, Ì,*Mc                 ó  — |\  }}| j         \  }}}}}}	t          j        dt          j        di}
t          j        t          j        fD ]�}	 t          j        ||¦  «        }|                     |
|         |z   ¦  «         t          j        ||¦  «        }|                     t          j        d|¦  «        ¦  «         ||fc S # t          j	        $ r Y ŒŠw xY w|r]| 
                    d¦  «        }|                     dt          t          |¦  «        ¦  «         
                    ¦   «         z   |z   ¦  «         n§t          j        ||t          j        t          j        t          j        t          j        ¦  «        }|d         }|d         }|d         d         }t          j        ||¦  «        }|                     |
|         |z   ¦  «         t          j        ||¦  «        }|                     t          j        d|¦  «        ¦  «         ||fS )z~
        Return the host and port packed for the SOCKS5 protocol,
        and the resolved address as a tuple object.
        ré   ó   ú>HÚidnar¹   r   rC   )rŸ   r[   ÚAF_INETÚAF_INET6Ú	inet_ptonrÈ   Ú	inet_ntopÚstructÚpackrl   rI   rø   r§   rb   Ú	AF_UNSPECrc   ÚIPPROTO_TCPÚAI_ADDRCONFIG)r   rM   r©   rÂ   rN   rL   r¾   rO   rP   rQ   Úfamily_to_byter{   Ú
addr_bytesÚ
host_bytesÚ	addressesÚtarget_addrs                   r   rÉ   z socksocket._write_SOCKS5_address   sñ  € ð
 ‰
ˆˆdØ59´ZÑ2ˆ
�A�q˜$ ¨(Ý œ.¨'µ6´?ÀGÐLˆõ
 ”~¥v¤Ð7ð 	ð 	ˆFðÝ#Ô-¨f°dÑ;Ô;�
Ø—
’
˜>¨&Ô1°JÑ>Ñ?Ô?Ð?ÝÔ'¨°
Ñ;Ô;�Ø—
’
�6œ; t¨TÑ2Ô2Ñ3Ô3Ð3Ø˜T�zÐ!Ð!Ð!øÝ”<ð ð ð Ø�ðøøøð ð 	8àŸš VÑ,Ô,ˆJØ�JŠJ�w¥¥S¨¡_¤_Ñ!5Ô!5×!<Ò!<Ñ!>Ô!>Ñ>ÀÑKÑLÔLÐLÐLõ Ô*¨4°µvÔ7GÝ+1Ô+=Ý+1Ô+=Ý+1Ô+?ñAô AˆIð $ Aœ,ˆKØ  ”^ˆFØ˜q”> !Ô$ˆDåÔ)¨&°$Ñ7Ô7ˆJØ�JŠJ�~ fÔ-°
Ñ:Ñ;Ô;Ð;ÝÔ# F¨JÑ7Ô7ˆDØ�
Š
•6”;˜t TÑ*Ô*Ñ+Ô+Ð+Ø�TˆzÐs   Á	A3B?Â?CÃCc                 ó  — |                       |d¦  «        }|dk    r)t          j        |                       |d¦  «        ¦  «        }n‰|dk    r:|                       |d¦  «        }|                       |t          |¦  «        ¦  «        }nI|dk    r4t          j        t          j        |                       |d¦  «        ¦  «        }nt          d¦  «        ‚t          j        d|                       |d	¦  «        ¦  «        d
         }||fS )Nr   ré   rC   r¹   r  é   rñ   r  r   r   )	r­   r[   Ú	inet_ntoarÖ   r  r
  r3   r  Úunpack)r   r©   ÚatyprM   ÚlengthrN   s         r   rØ   zsocksocket._read_SOCKS5_addressM  sß   € Ø�}Š}˜T 1Ñ%Ô%ˆØ�7Š?ˆ?ÝÔ# D§M¢M°$¸Ñ$:Ô$:Ñ;Ô;ˆDˆDØ�WŠ_ˆ_Ø—]’] 4¨Ñ+Ô+ˆFØ—=’= ¥s¨6¡{¤{Ñ3Ô3ˆDˆDØ�WŠ_ˆ_ÝÔ#¥F¤O°T·]²]À4ÈÑ5LÔ5LÑMÔMˆDˆDå#Ð$KÑLÔLÐLåŒ}˜T 4§=¢=°°qÑ#9Ô#9Ñ:Ô:¸1Ô=ˆØ�TˆzÐr!   c                 ó"  — | j         \  }}}}}}|                      d¦  «        }	|                      dd¦  «        }
	 d}	 t          j        |¦  «        }nB# t          j        $ r0 |rd}d}n&t          j        t          j        |¦  «        ¦  «        }Y nw xY w|	                     t          j        ddd	|¦  «        ¦  «         |	                     |¦  «         |r|	                     |¦  «         |	                     d
¦  «         |r+|	                     | 	                    d¦  «        d
z   ¦  «         |	 
                    ¦   «          |                      |
d¦  «        }|dd	…         d
k    rt          d¦  «        ‚t          |d	d…         ¦  «        }|dk    r>t                               |d¦  «        }t!          d                     ||¦  «        ¦  «        ‚t          j        |dd…         ¦  «        t          j        d|dd…         ¦  «        d         f| _        |rt          j        |¦  «        |f| _        n	||f| _        |
                     ¦   «          |	                     ¦   «          dS # |
                     ¦   «          |	                     ¦   «          w xY w)z0Negotiates a connection through a SOCKS4 server.rî   rï   r   Fs      Tz>BBHrC   r   rÇ   r  rG   z%SOCKS4 proxy server sent invalid datar   éZ   rô   rõ   Nr  )rŸ   rö   r[   Ú	inet_atonrl   ÚgethostbynamerÈ   r  r  rI   r÷   r­   r3   rÖ   ÚSOCKS4_ERRORSrú   r=   r'   r  r  r    r¡   rm   )r   rê   Ú	dest_portrL   rM   rN   rO   rP   rQ   rý   rþ   Úremote_resolver  r  r  rl   s                   r   Ú_negotiate_SOCKS4zsocksocket._negotiate_SOCKS4\  sŒ  € à;?¼:Ñ8ˆ
�D˜$  h°à—’˜tÑ$Ô$ˆØ—’˜t QÑ'Ô'ˆð4	à"ˆNð	9Ý#Ô-¨iÑ8Ô8�
�
øÝ”<ð 9ð 9ð 9àð 9Ø!4�JØ%)�N�Nå!'Ô!1ÝÔ,¨YÑ7Ô7ñ"9ô "9�Jøøð9øøøð �LŠL�œ V¨T°4¸ÑCÔCÑDÔDÐDØ�LŠL˜Ñ$Ô$Ð$ð ð 'Ø—’˜XÑ&Ô&Ð&Ø�LŠL˜Ñ!Ô!Ð!ð
 ð AØ—’˜Y×-Ò-¨fÑ5Ô5¸Ñ?Ñ@Ô@Ð@Ø�LŠL‰NŒNˆNð —=’= ¨Ñ+Ô+ˆDØ�A�a�CŒy˜GÒ#Ð#å'Ø;ñ=ô =ð =õ ˜˜a ˜cœ‘^”^ˆFØ˜Š~ˆ~å%×)Ò)¨&°/ÑBÔB�Ý! -×"6Ò"6°v¸uÑ"EÔ"EÑFÔFÐFõ $*Ô#3°D¸¸¸´HÑ#=Ô#=Ý#)¤=°°t¸A¸a¸C´yÑ#AÔ#AÀ!Ô#Dð#FˆDÔàð ;Ý&,Ô&6°zÑ&BÔ&BÀIÐ&M�Ô#Ð#à&/°Ð&:�Ô#à�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs/   »I$ ¾A ÁI$ Á<BÂI$ ÂBÂF(I$ É$*Jc                 ó  — | j         \  }}}}}}|r|nt          j        |¦  «        }d|                     d¦  «        z   dz   t	          |¦  «                             ¦   «         z   dz   d|                     d¦  «        z   g}	|r-|r+|	                     dt          |dz   |z   ¦  «        z   ¦  «         |	                     d¦  «         |                      d                     |	¦  «        ¦  «         |  	                    ¦   «         }
|
 
                    ¦   «         }|
                     ¦   «          |st          d¦  «        ‚	 |                     d	d
¦  «        \  }}}n# t          $ r t          d¦  «        ‚w xY w|                     d¦  «        st          d¦  «        ‚	 t!          |¦  «        }n# t          $ r t#          d¦  «        ‚w xY w|dk    r.d                     ||¦  «        }|dv r|dz  }t#          |¦  «        ‚d| _        ||f| _        dS )zwNegotiates a connection through an HTTP server.

        NOTE: This currently only supports HTTP CONNECT-style proxies.s   CONNECT r  ó   :s	    HTTP/1.1s   Host: s   Proxy-Authorization: basic s   
r¦   ú r   z'HTTP proxy server sent invalid responsezHTTP/z0Proxy server does not appear to be an HTTP proxyz4HTTP proxy server did not return a valid HTTP statuséÈ   z{}: {})i�  i“  i•  za
[*] Note: The HTTP proxy server may not be supported by PySocks (must be a CONNECT tunnel proxy))s   0.0.0.0r   N)rŸ   r[   r   rI   ÚstrÚappendr   ÚsendallÚjoinrö   Úreadlinerm   r3   Úsplitrœ   r`   rf   r?   r'   r    r¡   )r   rê   r"  rL   rM   rN   rO   rP   rQ   Úhttp_headersÚfobjÚstatus_liner}   Ústatus_codeÚ
status_msgrl   s                   r   Ú_negotiate_HTTPzsocksocket._negotiate_HTTP˜  sƒ  € ð <@¼:Ñ8ˆ
�D˜$  h°ð !ÐEˆyˆy¥fÔ&:¸9Ñ&EÔ&Eˆð ˜4Ÿ;š; vÑ.Ô.Ñ.°Ñ5Ý�9‰~Œ~×$Ò$Ñ&Ô&ñ'Ø)5ñ6à˜	×(Ò(¨Ñ0Ô0Ñ0ð
ˆð ð 	I˜ð 	IØ×ÒÐ >Ý"+¨H°t©O¸hÑ,FÑ"GÔ"Gñ!Hñ Iô Ið Ið 	×Ò˜GÑ$Ô$Ð$à�Š�W—\’\ ,Ñ/Ô/Ñ0Ô0Ð0ð �}Š}‰ŒˆØ—m’m‘o”oˆØ�
Š
‰Œˆàð 	FÝ#Ð$DÑEÔEÐEð	OØ-8×->Ò->¸sÀAÑ-FÔ-FÑ*ˆE�; 
 
øÝð 	Oð 	Oð 	OÝ#Ð$MÑNÔNÐNð	Oøøøð ×Ò Ñ(Ô(ð 	DÝ#ØBñDô Dð Dð	HÝ˜kÑ*Ô*ˆKˆKøÝð 	Hð 	Hð 	HÝØFñHô Hð Hð	Høøøð ˜#ÒÐØ—O’O K°Ñ<Ô<ˆEØ˜oÐ-Ð-ð ð $ñ %�õ ˜EÑ"Ô"Ð"à-ˆÔØ" I˜oˆÔÐÐs   Ä9E ÅE.ÆF& Æ&G c                 óö  •— t          |¦  «        dk    s|d                              d¦  «        r$t          j        dt	          |¦  «        z  ¦  «        ‚|\  }}| j        t          j        k    rK| j        s|                      d¦  «         t          j	        |¦  «        }|dk    r
|sd| _
        n	||f| _
        dS | j        \  }}}}}	}
t          |t          t          f¦  «        r*t          |¦  «        dk    s|rt          |t          ¦  «        st!          d¦  «        ‚t#          t$          | ¦  «                             | j        ¦  «         |€`|| _
        t#          t$          | ¦  «                             | j        ¦  «         t#          t$          | ¦  «                             ||f¦  «         dS |                      ¦   «         }	 t#          t$          | ¦  «                             |¦  «         	 | j        |         } || ||¦  «         dS # t          j        $ r-}|s$|                      ¦   «          t!          d	|¦  «        ‚|‚d}~wt2          $ r |                      ¦   «          ‚ w xY w# t          j        $ r‡}|                      ¦   «          |sj|\  }}d
                     ||¦  «        }t6          |         }d                     ||¦  «        }t8                               d||¦  «         t=          ||¦  «        ‚|‚d}~ww xY w)zã
        Connects to the specified destination through a proxy.
        Uses the same API as socket's connect().
        To select the proxy server, use set_proxy().

        dest_pair - 2-tuple of (IP/hostname, port).
        r   r   r_   z PySocks doesn't support IPv6: %srÄ   rº   Nz0Invalid destination-connection (host, port) pairzSocket errorz{}:{}zError connecting to {} proxy {}z%s due to: %s)r§   r`   r[   rl   r)  r£   r›   rž   rj   r   r¡   rŸ   re   r�   Útuplerf   r3   r�   rJ   rh   r¢   rk   r¼   Ú_proxy_negotiatorsrm   r#   r'   ÚPRINTABLE_PROXY_TYPESÚlogÚdebugr7   )r   rn   Úcatch_errorsrê   r"  rL   rq   rr   rO   rP   rQ   Ú	negotiaterl   Úproxy_serverÚprintable_typer%   r¤   s                   €r   rk   zsocksocket.connectÙ  s-  ø€ õ ˆy‰>Œ>˜QÒÐ )¨A¤,×"9Ò"9¸#Ñ">Ô">Ðõ ”,ÐAÝ!$ Y¡¤ñ 0ñ 1ô 1ð 1ð  )Ñˆ	�9àŒ9�Ô)Ò)Ð)Ø”?ð #Ø—	’	˜'Ñ"Ô"Ð"ÝÔ,¨YÑ7Ô7ˆIð ˜IÒ%Ð%¨iÐ%Ø&*�Ô#Ð#à'0°)Ð&<�Ô#ØˆFð ”Zñ	ˆ�Z ¨T°8Ø	õ ˜9¥t­U mÑ4Ô4ð 	DÝ�y‘>”> QÒ&Ð&Ø ð 'å! )­SÑ1Ô1ð 'õ $ØBñDô Dð Dõ
 	�j˜$ÑÔ×*Ò*¨4¬=Ñ9Ô9Ð9àÐà"+ˆDÔÝ•*˜dÑ#Ô#×.Ò.¨t¬}Ñ=Ô=Ð=Ý•*˜dÑ#Ô#×+Ò+¨Y¸	Ð,BÑCÔCÐCØˆFà×%Ò%Ñ'Ô'ˆ
ð#	å•*˜dÑ#Ô#×+Ò+¨JÑ7Ô7Ð7ð&à Ô3°JÔ?�	Ø�	˜$ 	¨9Ñ5Ô5Ð5Ð5Ð5øÝ”<ð  ð  ð  Ø#ð  à—J’J‘L”L�LÝ+¨N¸EÑBÔBÐBà�KøøøøÝð ð ð à—
’
‘”�Øðøøøøõ9 Œ|ð 	ð 	ð 	à�JŠJ‰LŒLˆLØð 
Ø)3Ñ&�
˜JØ&Ÿ~š~¨j¸*ÑEÔE�Ý!6°zÔ!B�à7×>Ò>¸~ØDPñRô R�å—	’	˜/¨3°Ñ6Ô6Ð6Ý*¨3°Ñ6Ô6Ð6à�øøøøð	øøøs1   Ç (I" Ç)H ÈIÈ(H<È<#IÉ"K8É1BK3Ë3K8c                 ó‚   — 	 |                       |d¬¦  «         dS # t          $ r}|j        r|j        cY d}~S ‚ d}~ww xY w)a&   https://docs.python.org/3/library/socket.html#socket.socket.connect_ex
        Like connect(address), but return an error indicator instead of raising an exception for errors returned by the C-level connect() call (other problems, such as "host not found" can still raise exceptions).
        T)r;  r   N)rk   ÚOSErrorÚerrno)r   rn   r   s      r   Ú
connect_exzsocksocket.connect_ex6  sa   € ð
		Ø�LŠL˜°ˆLÑ6Ô6Ð6Ø�1øÝð 	ð 	ð 	ð Œwð Ø”w������àøøøøð	øøøs   ‚ ›
>¥9²>¸9¹>c                 ó€   — | j         \  }}}}}}|pt                               |¦  «        }|st          d¦  «        ‚||fS )zD
        Return proxy address to connect to as tuple object
        zInvalid proxy type)rŸ   ÚDEFAULT_PORTSrú   r3   )r   rL   rq   rr   rO   rP   rQ   s          r   r¼   zsocksocket._proxy_addrF  sU   € ð
 ”Zñ	ˆ�Z ¨T°8Ø	ØÐ@¥=×#4Ò#4°ZÑ#@Ô#@ˆ
Øð 	:Ý#Ð$8Ñ9Ô9Ð9Ø˜:Ð%Ð%r!   ©NNNTNN)r   r*   )*r-   r.   r/   r0   rK   r[   r	  rc   r(   r­   rh   r   r   ri   r¶   rj   r•   r–   r—   r˜   rm   rã   Úgetproxysocknamer¯   Úgetproxypeernamerç   rå   rì   r½   rÉ   rØ   r$  r4  r   r   r   r7  r    rk   rB  r¼   Ú__classcell__)r¤   s   @r   rJ   rJ   ñ   s”  ø€ € € € € ðð ð €Mà$œn°6Ô3EØðð ð ð ð ð ð$
ð 
ð 
ðð ð ð ð ðð ð ð!ð !ð !ð EIØ*.ð?ð ?ð ?ð ?ð*/ð /ð /ð
#-ð #-ð #-ð #-ð #-ðJ$ð $ð $ð $ð $ð(Hð Hð Hð Hð Hð Hð9ð 9ð 9ð 9ð 9ð 9ð(ð ð ð/ð /ð /ð /ð /ð
#ð #ð #ð *Ðð"ð "ð "ð *Ðð#ð #ð #ð €Kð&ð &ð &ð`ð `ð `ð `ð `ðD+ð +ð +ðZð ð ð:ð :ð :ðx9.ð 9.ð 9.ðx "Ð#4Ø!Ð#4Ø ðÐð ðZð Zð Zð Zð Zñ ÔðZðx ðð ñ Ôðð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&r!   rJ   rE  )	NNNNNTNNN)DÚbase64r   Úcollections.abcr   ÚImportErrorÚcollectionsrA  r   r   r   r   Úior   ÚloggingÚosr	   r[   r  ÚsysÚ__version__r�   Úversion_infoÚwin_inet_ptonÚ	getLoggerr-   r9  ÚPROXY_TYPE_SOCKS4r   ÚPROXY_TYPE_SOCKS5r   ÚPROXY_TYPE_HTTPr   ÚPROXY_TYPESr‡   ÚzipÚvaluesÚkeysr8  Ú
_orgsocketr†   r    ÚIOErrorr#   r3   r7   r9   r;   r=   r?   r!  rù   rD  rR   rW   rY   Úgetdefaultproxyr]   Ú
wrapmoduler‚   r„   r”   rŠ   Úmethodre   r‰   r*  ÚsetattrrJ   r1   r!   r   ú<module>rb     sÆ  ðØ Ð Ð Ð Ð Ð ð%Ø(Ð(Ð(Ð(Ð(Ð(Ð(øØð %ð %ð %Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð%øøøà ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
à€ð „7ˆd‚?€?�sÔ'¨&Ò0Ð0ðHØÐÐÐÐøØð Hð Hð HØˆkØFñHô Hð 	HðHøøøð €gÔ˜Ñ!Ô!€àÐ Ð �FØÐ Ð �FØÐ €�$à¨6¸4Ð@Ð@€Ø˜˜S˜S ×!3Ò!3Ñ!5Ô!5°{×7GÒ7GÑ7IÔ7IÑJÔJÑKÔKÐ à"œMÐ )€
ˆ\ðð ð ð&
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ð	ð 	ð 	ð 	ð 	˜
ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜:ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�jñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�*ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�*ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�
ñ 	ô 	ð 	ð 'ðð!ð	ð €ð )Ø
-Ø
Ø
Ø
Ø
Ø
4Ø
&ð	ð 	€ð ˜˜v t¨T°4Ð8€ð CGØ.2ðIð Ið Ið Ið.ð .ð .ð$ð $ð $ð $€ð	>ð 	>ð 	>ð €
ð 48Ø26Ø26Ø:>Ø%)ð:3ð :3ð :3ð :3ðz
ð 
ð 
ð 
ð 
�&”-ñ 
ô 
ð 
ðIð Ið Ià2ð 	6ð 	6€DØˆW�[ $¨Ñ-Ô-€Fð ˆ:�f˜hÑ'Ô'ð 6ØÔ×%Ò% dÑ+Ô+Ð+Øˆ�˜T ; ;¨tÑ#4Ô#4Ñ5Ô5Ð5øð^	&ð ^	&ð ^	&ð ^	&ð ^	&�ñ ^	&ô ^	&ð ^	&ð ^	&ð ^	&s   ˆ �œÁ'A, Á,A=