
    'h
                        d dl Z d dlZd dlZd dlmZ d dlmZ  G d de      Z ej                  dd      Z
 ej                  d	d
d      Z ej                  d	dd      Z ej                  d d	d
dddddd	      Z ej                  d d	d
d      Z ej                  d	      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zy)    N)bidi)checkc                        e Zd Z fdZ xZS )
SocksErrorc                 2    t         |   |       || _        y N)super__init__code)selfr   message	__class__s      k/var/www/html/scrapers/gsc/venv/lib/python3.12/site-packages/seleniumwire/thirdparty/mitmproxy/net/socks.pyr
   zSocksError.__init__
   s    !	    )__name__
__module____qualname__r
   __classcell__)r   s   @r   r   r   	   s     r   r         )SOCKS4SOCKS5         )CONNECTBINDUDP_ASSOCIATE)IPV4_ADDRESS
DOMAINNAMEIPV6_ADDRESS         )		SUCCEEDEDGENERAL_SOCKS_SERVER_FAILURE!CONNECTION_NOT_ALLOWED_BY_RULESETNETWORK_UNREACHABLEHOST_UNREACHABLECONNECTION_REFUSEDTTL_EXPIREDCOMMAND_NOT_SUPPORTEDADDRESS_TYPE_NOT_SUPPORTED   )NO_AUTHENTICATION_REQUIREDGSSAPIUSERNAME_PASSWORDNO_ACCEPTABLE_METHODS)DEFAULTc                   4    e Zd ZdZd Zd Zedd       Zd Zy)ClientGreeting)vermethodsc                 |    || _         t        j                  d      | _        | j                  j                  |       y )NB)r6   arrayr7   extend)r   r6   r7   s      r   r
   zClientGreeting.__init__;   s+    {{3'G$r   c                    | j                   t        j                  k7  rh| j                   t        d      k(  r$t	        | j
                        t        d      k(  rd}nd}t        t        j                  |d| j                   z  z         y )NGEz9Probably not a SOCKS request but a regular HTTP request.  .Invalid SOCKS version. Expected 0x05, got 0x%x)	r6   VERSIONr   ordlenr7   r   REPr&   r   guesss     r   assert_socks5zClientGreeting.assert_socks5@   sm    88w~~%xx3s8#DLL(9SX(ES00H488SS  &r   c                     t        j                  d|j                  d            \  }} | |g       }|r|j                          |j                  j                  |j                  |             |S )zu
        :param fail_early: If true, a SocksError will be raised if the first byte does not indicate socks5.
        !BBr   )structunpack	safe_readrG   r7   	frombytes)clsf
fail_earlyr6   nmethodsclient_greetings         r   	from_filezClientGreeting.from_fileL   s]    
 eQ[[^<Xc2,))+))!++h*?@r   c           	          |j                  t        j                  d| j                  t	        | j
                                     |j                  | j
                  j                                y NrI   )writerJ   packr6   rC   r7   tobytesr   rO   s     r   to_filezClientGreeting.to_fileX   sA    	E488S->?@	$$&'r   N)F	r   r   r   	__slots__r
   rG   classmethodrS   rZ    r   r   r5   r5   8   s*    "I%

 	 	(r   r5   c                   2    e Zd ZdZd Zd Zed        Zd Zy)ServerGreetingr6   methodc                      || _         || _        y r   ra   )r   r6   rb   s      r   r
   zServerGreeting.__init__`       r   c                     | j                   t        j                  k7  r_| j                   t        d      k(  r| j                  t        d      k(  rd}nd}t        t        j                  |d| j                   z  z         y )NHTz:Probably not a SOCKS request but a regular HTTP response. r?   r@   )r6   rA   r   rB   rb   r   rD   r&   rE   s     r   rG   zServerGreeting.assert_socks5d   sh    88w~~%xx3s8#s3x(?T00H488SS  &r   c                 d    t        j                  d|j                  d            \  }} | ||      S NrI   r   rJ   rK   rL   )rN   rO   r6   rb   s       r   rS   zServerGreeting.from_filep   +    mmE1;;q>:V3r   c                 x    |j                  t        j                  d| j                  | j                               y rU   )rV   rJ   rW   r6   rb   rY   s     r   rZ   zServerGreeting.to_fileu   #    	E488T[[9:r   Nr[   r^   r   r   r`   r`   ]   s*    !I
    ;r   r`   c                   2    e Zd ZdZd Zd Zed        Zd Zy)UsernamePasswordAuthr6   usernamepasswordc                 .    || _         || _        || _        y r   rp   )r   r6   rq   rr   s       r   r
   zUsernamePasswordAuth.__init__|   s      r   c                 p    | j                   t        j                  k7  rt        dd| j                   z        y Nr   z-Invalid auth version. Expected 0x01, got 0x%xr6   USERNAME_PASSWORD_VERSIONr3   r   r   s    r   assert_authver1z$UsernamePasswordAuth.assert_authver1   6    880888?$((J  9r   c                 0   t        j                  d|j                  d            \  }}|j                  |      }t        j                  d|j                  d            \  }|j                  |      } | ||j                         |j                               S )NrI   r   !Br   )rJ   rK   rL   decode)rN   rO   r6   ulenrq   plenrr   s          r   rS   zUsernamePasswordAuth.from_file   sq    MM%Q8	T;;t$dAKKN3;;t$3)8??+<==r   c           	         |j                  t        j                  d| j                  t	        | j
                                     |j                  | j
                  j                                |j                  t        j                  dt	        | j                                     |j                  | j                  j                                y )NrI   r|   )rV   rJ   rW   r6   rC   rq   encoderr   rY   s     r   rZ   zUsernamePasswordAuth.to_file   sz    	E488S-?@A	$$&'	D#dmm"456	$$&'r   N	r   r   r   r\   r
   ry   r]   rS   rZ   r^   r   r   ro   ro   y   s*    /I!
 > >(r   ro   c                   2    e Zd ZdZd Zd Zed        Zd Zy)UsernamePasswordAuthResponser6   statusc                      || _         || _        y r   r   )r   r6   r   s      r   r
   z%UsernamePasswordAuthResponse.__init__   rd   r   c                 p    | j                   t        j                  k7  rt        dd| j                   z        y ru   rv   rx   s    r   ry   z,UsernamePasswordAuthResponse.assert_authver1   rz   r   c                 d    t        j                  d|j                  d            \  }} | ||      S ri   rj   )rN   rO   r6   r   s       r   rS   z&UsernamePasswordAuthResponse.from_file   rk   r   c                 x    |j                  t        j                  d| j                  | j                               y rU   )rV   rJ   rW   r6   r   rY   s     r   rZ   z$UsernamePasswordAuthResponse.to_file   rm   r   Nr   r^   r   r   r   r      s*    !I    ;r   r   c                   2    e Zd ZdZd Zd Zed        Zd Zy)Messager6   msgatypaddrc                 <    || _         || _        || _        || _        y r   r   )r   r6   r   r   r   s        r   r
   zMessage.__init__   s    		r   c                     | j                   t        j                  k7  r't        t        j
                  d| j                   z        y )Nr@   )r6   rA   r   r   rD   r&   rx   s    r   rG   zMessage.assert_socks5   s9    88w~~%00@488K  &r   c                 f   t        j                  d|j                  d            \  }}}}|dk7  rt        t        j
                  d|z        |t        j                  k(  r/t        j                  |j                  d            j                  }n|t        j                  k(  r/t        j                  |j                  d            j                  }n|t        j                  k(  r|t        j                  d|j                  d            \  }|j                  |      }t        j                  |      st        t        j
                  d|z        |j!                  d	      }nt        t        j"                  d
|z        t        j                  d|j                  d            \  }||f}	 | ||||	      S )N!BBBBr   r   z(Socks Request: Invalid reserved byte: %s   r|   r   zInvalid hostname: %sidnazSocks Request: Unknown ATYP: %s!Hr   )rJ   rK   rL   r   rD   r&   ATYPr   	ipaddressIPv4Address
compressedr!   IPv6Addressr    r   is_valid_hostr}   r-   )
rN   rO   r6   r   rsvr   hostlengthportr   s
             r   rS   zMessage.from_file   sa   $mmGQ[[^DS#t$;00:S@  4$$$((Q8CCDT&&&((R9DDDT__$mmD!++a.9GF;;v&D&&t, !A!ACY\`C`aa;;v&DS;;>EG G dAKKN3d|3T4((r   c           	         |j                  t        j                  d| j                  | j                  d| j
                               | j
                  t        j                  k(  r=|j                  t        j                  | j                  d         j                         n| j
                  t        j                  k(  r<|j                  t        j                  | j                  d         j                         n| j
                  t        j                  k(  ri|j                  t        j                  dt        | j                  d                      |j                  | j                  d   j!                  d             n't#        t$        j&                  d| j
                  z        |j                  t        j                  d| j                  d                y )Nr   r   r|   r   zUnknown ATYP: %sr   r   )rV   rJ   rW   r6   r   r   r   r   r   r   r   packedr!   r   r    rC   r   r   rD   r-   rY   s     r   rZ   zMessage.to_file   s/   	GTXXtxxtyyIJ99)))GGI))$))A,7>>?YY$+++GGI))$))A,7>>?YY$//)GGFKKc$))A,&789GGDIIaL''/0.."TYY.  	
D$))A,/0r   Nr[   r^   r   r   r   r      s*    .I ) )41r   r   )r:   r   rJ   +seleniumwire.thirdparty.mitmproxy.coretypesr   %seleniumwire.thirdparty.mitmproxy.netr   	Exceptionr   BiDirA   CMDr   rD   METHODrw   r5   r`   ro   r   r   r^   r   r   <module>r      s      < 7  $))
 dii	 tyy dii!%&*#
 
#	
 &DII 
"( "(J; ;8( (<; ;.91 91r   