Ë
    qûàgÊ'  ã                   óà   — d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZmZ ddlmZ ddlmZ d	Zd
Zd„ Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)z]
requests.auth
~~~~~~~~~~~~~

This module contains the authentication handlers for Requests.
é    N)Ú	b64encodeé   )Úto_native_string)Ú
basestringÚstrÚurlparse)Úextract_cookies_to_jar)Úparse_dict_headerz!application/x-www-form-urlencodedzmultipart/form-datac           	      ó  — t        | t        «      s5t        j                  dj	                  | «      t
        ¬«       t        | «      } t        |t        «      s>t        j                  dj	                  t        |«      «      t
        ¬«       t        |«      }t        | t        «      r| j                  d«      } t        |t        «      r|j                  d«      }dt        t        dj                  | |f«      «      j                  «       «      z   }|S )zReturns a Basic Auth string.z·Non-string usernames will no longer be supported in Requests 3.0.0. Please convert the object you've passed in ({!r}) to a string or bytes object in the near future to avoid problems.)Úcategoryz·Non-string passwords will no longer be supported in Requests 3.0.0. Please convert the object you've passed in ({!r}) to a string or bytes object in the near future to avoid problems.Úlatin1zBasic ó   :)Ú
isinstancer   ÚwarningsÚwarnÚformatÚDeprecationWarningr   ÚtypeÚencoder   r   ÚjoinÚstrip)ÚusernameÚpasswordÚauthstrs      úK/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/requests/auth.pyÚ_basic_auth_strr      sÜ   € ô �h¤
Ô+Ü�‰ð÷ ™˜xÓ(Ü'õ	
ô �x“=ˆä�h¤
Ô+Ü�‰ð÷ ™œt H›~Ó.Ü'õ	
ô �x“=ˆô �(œCÔ Ø—?‘? 8Ó,ˆä�(œCÔ Ø—?‘? 8Ó,ˆàÔ)Ü�$—)‘)˜X xÐ0Ó1Ó2×8Ñ8Ó:óñ €Gð €Nó    c                   ó   — e Zd ZdZd„ Zy)ÚAuthBasez4Base class that all auth implementations derive fromc                 ó   — t        d«      ‚)NzAuth hooks must be callable.)ÚNotImplementedError©ÚselfÚrs     r   Ú__call__zAuthBase.__call__H   s   € Ü!Ð"@ÓAÐAr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   © r   r   r   r   E   s   „ Ù>óBr   r   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚHTTPBasicAuthz?Attaches HTTP Basic Authentication to the given Request object.c                 ó    — || _         || _        y ©N)r   r   ©r#   r   r   s      r   Ú__init__zHTTPBasicAuth.__init__O   s   € Ø ˆŒØ ˆ�r   c           	      ó|   — t        | j                  t        |dd «      k(  | j                  t        |dd «      k(  g«      S ©Nr   r   ©Úallr   Úgetattrr   ©r#   Úothers     r   Ú__eq__zHTTPBasicAuth.__eq__S   ó>   € Üà—‘¤¨°
¸DÓ!AÑAØ—‘¤¨°
¸DÓ!AÑAðó
ð 	
r   c                 ó   — | |k(   S r/   r+   r7   s     r   Ú__ne__zHTTPBasicAuth.__ne__[   ó   € Ø˜5‘=Ð Ð r   c                 ó`   — t        | j                  | j                  «      |j                  d<   |S )NÚAuthorization©r   r   r   Úheadersr"   s     r   r%   zHTTPBasicAuth.__call__^   s$   € Ü%4°T·]±]ÀDÇMÁMÓ%Rˆ�	‰	�/Ñ"Øˆr   N)r'   r(   r)   r*   r1   r9   r<   r%   r+   r   r   r-   r-   L   s   „ ÙIò!ò
ò!ór   r-   c                   ó   — e Zd ZdZd„ Zy)ÚHTTPProxyAuthz=Attaches HTTP Proxy Authentication to a given Request object.c                 ó`   — t        | j                  | j                  «      |j                  d<   |S )NzProxy-Authorizationr@   r"   s     r   r%   zHTTPProxyAuth.__call__f   s%   € Ü+:¸4¿=¹=È$Ï-É-Ó+Xˆ�	‰	Ð'Ñ(Øˆr   Nr&   r+   r   r   rC   rC   c   s
   „ ÙGór   rC   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚHTTPDigestAuthz@Attaches HTTP Digest Authentication to the given Request object.c                 óR   — || _         || _        t        j                  «       | _        y r/   )r   r   Ú	threadingÚlocalÚ_thread_localr0   s      r   r1   zHTTPDigestAuth.__init__n   s   € Ø ˆŒØ ˆŒä&Ÿ_™_Ó.ˆÕr   c                 óþ   — t        | j                  d«      sgd| j                  _        d| j                  _        d| j                  _        i | j                  _        d | j                  _        d | j                  _        y y )NÚinitTÚ r   )ÚhasattrrJ   rL   Ú
last_nonceÚnonce_countÚchalÚposÚnum_401_calls)r#   s    r   Úinit_per_thread_statez$HTTPDigestAuth.init_per_thread_statet   sk   € ä�t×)Ñ)¨6Ô2Ø&*ˆD×ÑÔ#Ø,.ˆD×ÑÔ)Ø-.ˆD×ÑÔ*Ø&(ˆD×ÑÔ#Ø%)ˆD×ÑÔ"Ø/3ˆD×ÑÕ,ð 3r   c                 óB  ‡— | j                   j                  d   }| j                   j                  d   }| j                   j                  j                  d«      }| j                   j                  j                  d«      }| j                   j                  j                  d«      }dŠ|€d}n|j                  «       }|dk(  s|dk(  rd	„ }	|	Šn |d
k(  rd„ }
|
Šn|dk(  rd„ }|Šn
|dk(  rd„ }|Šˆfd„}‰€yd}t	        |«      }|j
                  xs d}|j                  r|d|j                  › �z  }| j                  › d|› d| j                  › �}|› d|› �} ‰|«      } ‰|«      }|| j                   j                  k(  r | j                   xj                  dz  c_
        nd| j                   _
        | j                   j                  d›}t        | j                   j                  «      j                  d«      }||j                  d«      z  }|t        j                  «       j                  d«      z  }|t        j                   d«      z  }t#        j$                  |«      j'                  «       dd }|dk(  r ‰|› d|› d|› �«      }|s |||› d|› �«      }n0|dk(  sd|j)                  d«      v r|› d|› d|› d|› �} |||«      }ny|| j                   _	        d| j                  › d|› d|› d|› d |› d!�}|r	|d"|› d!�z  }|r	|d#|› d!�z  }|r	|d$|› d!�z  }|r|d%|› d&|› d!�z  }d'|› �S )(z
        :rtype: str
        ÚrealmÚnonceÚqopÚ	algorithmÚopaqueNÚMD5zMD5-SESSc                 óŠ   — t        | t        «      r| j                  d«      } t        j                  | «      j                  «       S ©Núutf-8)r   r   r   ÚhashlibÚmd5Ú	hexdigest©Úxs    r   Úmd5_utf8z4HTTPDigestAuth.build_digest_header.<locals>.md5_utf8‘   s1   € Ü˜a¤Ô%ØŸ™ Ó)�AÜ—{‘{ 1“~×/Ñ/Ó1Ð1r   ÚSHAc                 óŠ   — t        | t        «      r| j                  d«      } t        j                  | «      j                  «       S r]   )r   r   r   r_   Úsha1ra   rb   s    r   Úsha_utf8z4HTTPDigestAuth.build_digest_header.<locals>.sha_utf8™   s1   € Ü˜a¤Ô%ØŸ™ Ó)�AÜ—|‘| A“×0Ñ0Ó2Ð2r   zSHA-256c                 óŠ   — t        | t        «      r| j                  d«      } t        j                  | «      j                  «       S r]   )r   r   r   r_   Úsha256ra   rb   s    r   Úsha256_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha256_utf8¡   ó2   € Ü˜a¤Ô%ØŸ™ Ó)�AÜ—~‘~ aÓ(×2Ñ2Ó4Ð4r   zSHA-512c                 óŠ   — t        | t        «      r| j                  d«      } t        j                  | «      j                  «       S r]   )r   r   r   r_   Úsha512ra   rb   s    r   Úsha512_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha512_utf8©   rl   r   c                 ó   •—  ‰| › d|› �«      S )Nú:r+   )ÚsÚdÚ	hash_utf8s     €r   ú<lambda>z4HTTPDigestAuth.build_digest_header.<locals>.<lambda>°   s   ø€ ™) q c¨¨1¨# JÓ/€ r   ú/ú?rq   r   Ú08xr^   é   é   Úauthú,z:auth:z
username="z
", realm="z
", nonce="z", uri="z", response="ú"z
, opaque="z, algorithm="z
, digest="z, qop="auth", nc=z
, cnonce="zDigest )rJ   rQ   ÚgetÚupperr   ÚpathÚqueryr   r   rO   rP   r   r   ÚtimeÚctimeÚosÚurandomr_   rg   ra   Úsplit)r#   ÚmethodÚurlrV   rW   rX   rY   rZ   Ú
_algorithmrd   rh   rk   ro   ÚKDÚentdigÚp_parsedr€   ÚA1ÚA2ÚHA1ÚHA2Úncvaluerr   ÚcnonceÚrespdigÚnoncebitÚbasert   s                              @r   Úbuild_digest_headerz"HTTPDigestAuth.build_digest_header~   s€  ø€ ð
 ×"Ñ"×'Ñ'¨Ñ0ˆØ×"Ñ"×'Ñ'¨Ñ0ˆØ× Ñ ×%Ñ%×)Ñ)¨%Ó0ˆØ×&Ñ&×+Ñ+×/Ñ/°Ó<ˆ	Ø×#Ñ#×(Ñ(×,Ñ,¨XÓ6ˆØˆ	àÐØ‰Jà"Ÿ™Ó*ˆJà˜Ò *°
Ò":ò2ð
 !‰IØ˜5Ò ò3ð
 !‰IØ˜9Ò$ò5ð
 $‰IØ˜9Ò$ò5ð
 $ˆIã/ˆàÐØð ˆÜ˜C“=ˆà�}‰}Ò# ˆØ�>Š>Ø�a˜Ÿ™Ð'Ð(Ñ(ˆDà—‘ˆ˜a ˜w a¨¯© Ð7ˆØˆx�q˜˜Ðˆá˜‹mˆÙ˜‹mˆà�D×&Ñ&×1Ñ1Ò1Ø×Ñ×*Ò*¨aÑ/Ö*à-.ˆD×ÑÔ*Ø×'Ñ'×3Ñ3°CÐ8ˆÜ�×"Ñ"×.Ñ.Ó/×6Ñ6°wÓ?ˆØ	ˆU�\‰\˜'Ó"Ñ"ˆØ	ŒT�Z‰Z‹\× Ñ  Ó)Ñ)ˆØ	ŒR�Z‰Z˜‹]Ñˆä—‘˜a“×*Ñ*Ó,¨S¨bÐ1ˆØ˜Ò#Ù˜s˜e 1 U G¨1¨V¨HÐ5Ó6ˆCáÙ˜   q¨¨Ð.Ó/‰GØ�FŠ]˜f¨¯	©	°#«Ñ6Ø˜  ' ¨!¨F¨8°6¸#¸Ð?ˆHÙ˜˜hÓ'‰Gð à(-ˆ×ÑÔ%ð ˜Ÿ™˜ z°%°¸
À5À'ð JØ�6˜ w i¨qð2ð 	ñ Ø�j  ¨Ð*Ñ*ˆDÙØ�m I ;¨aÐ0Ñ0ˆDÙØ�j  ¨Ð*Ñ*ˆDÙØÐ'¨ y°
¸6¸(À!ÐDÑDˆDà˜˜ÐÐr   c                 ó@   — |j                   rd| j                  _        yy)z)Reset num_401_calls counter on redirects.r   N)Úis_redirectrJ   rS   )r#   r$   Úkwargss      r   Úhandle_redirectzHTTPDigestAuth.handle_redirectì   s   € à�=Š=Ø/0ˆD×ÑÕ,ð r   c                 ól  — d|j                   cxk  rdk  sn d| j                  _        |S | j                  j                  �9|j                  j
                  j                  | j                  j                  «       |j                  j                  dd«      }d|j                  «       v �rz| j                  j                  dk  �r`| j                  xj                  dz  c_        t        j                  dt        j                  ¬	«      }t        |j                  d|d¬
«      «      | j                  _        |j                    |j#                  «        |j                  j%                  «       }t'        |j(                  |j                  |j*                  «       |j-                  |j(                  «       | j/                  |j0                  |j2                  «      |j                  d<    |j4                  j6                  |fi |¤Ž}|j8                  j;                  |«       ||_        |S d| j                  _        |S )zo
        Takes the given response and tries digest-auth, if needed.

        :rtype: requests.Response
        i�  iô  r   zwww-authenticaterM   Údigesté   zdigest )Úflags)Úcountr?   )Ústatus_coderJ   rS   rR   ÚrequestÚbodyÚseekrA   r~   ÚlowerÚreÚcompileÚ
IGNORECASEr
   ÚsubrQ   ÚcontentÚcloseÚcopyr	   Ú_cookiesÚrawÚprepare_cookiesr–   r‡   rˆ   Ú
connectionÚsendÚhistoryÚappend)r#   r$   r™   Ús_authÚpatÚprepÚ_rs          r   Ú
handle_401zHTTPDigestAuth.handle_401ñ   s¢  € ð �a—m‘mÔ) cÔ)Ø/0ˆD×ÑÔ,ØˆHà×Ñ×!Ñ!Ð-ð �I‰I�N‰N×Ñ × 2Ñ 2× 6Ñ 6Ô7Ø—‘—‘Ð1°2Ó6ˆà�v—|‘|“~Ò%¨$×*<Ñ*<×*JÑ*JÈQÓ*NØ×Ñ×,Ò,°Ñ1Õ,Ü—*‘*˜Z¬r¯}©}Ô=ˆCÜ&7¸¿¹ÀÀFÐRS¸Ó8TÓ&UˆD×ÑÔ#ð �IŠIØ�G‰GŒIØ—9‘9—>‘>Ó#ˆDÜ" 4§=¡=°!·)±)¸Q¿U¹UÔCØ× Ñ  §¡Ô/à,0×,DÑ,DØ—‘˜TŸX™Xó-ˆD�L‰L˜Ñ)ð #�—‘×"Ñ" 4Ñ2¨6Ñ2ˆBØ�J‰J×Ñ˜aÔ ØˆBŒJàˆIà+,ˆ×ÑÔ(Øˆr   c                 óÞ  — | j                  «        | j                  j                  r3| j                  |j                  |j
                  «      |j                  d<   	 |j                  j                  «       | j                  _	        |j                  d| j                  «       |j                  d| j                  «       d| j                  _        |S # t        $ r d | j                  _	        Y Œgw xY w)Nr?   Úresponser   )rT   rJ   rO   r–   r‡   rˆ   rA   r¢   ÚtellrR   ÚAttributeErrorÚregister_hookr·   rš   rS   r"   s     r   r%   zHTTPDigestAuth.__call__  s¹   € à×"Ñ"Ô$à×Ñ×(Ò(Ø)-×)AÑ)AÀ!Ç(Á(ÈAÏEÉEÓ)RˆA�I‰I�oÑ&ð	*Ø%&§V¡V§[¡[£]ˆD×ÑÔ"ð 	
�‰˜
 D§O¡OÔ4Ø	�‰˜
 D×$8Ñ$8Ô9Ø+,ˆ×ÑÔ(àˆøô ò 	*ð
 &*ˆD×ÑÖ"ð	*ús   Á)C ÃC,Ã+C,c           	      ó|   — t        | j                  t        |dd «      k(  | j                  t        |dd «      k(  g«      S r3   r4   r7   s     r   r9   zHTTPDigestAuth.__eq__1  r:   r   c                 ó   — | |k(   S r/   r+   r7   s     r   r<   zHTTPDigestAuth.__ne__9  r=   r   N)r'   r(   r)   r*   r1   rT   r–   rš   r·   r%   r9   r<   r+   r   r   rF   rF   k   s0   „ ÙJò/ò4òl ò\1ò
*òXò(
ó!r   rF   )r*   r_   r„   r¥   rH   r‚   r   Úbase64r   Ú_internal_utilsr   Úcompatr   r   r   Úcookiesr	   Úutilsr
   ÚCONTENT_TYPE_FORM_URLENCODEDÚCONTENT_TYPE_MULTI_PARTr   r   r-   rC   rF   r+   r   r   ú<module>rÆ      st   ðñó Û 	Û 	Û Û Û Ý å -ß -Ñ -Ý +Ý $àBÐ Ø/Ð ò)÷XBñ Bô�Hô ô.�Mô ôO!�Xõ O!r   