Ë
    ��hw  ã                   ó¨  — d 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	 ddl
mZ ddlmZ dd	lmZmZmZmZ dd
lmZmZmZmZ ddlmZmZmZmZ ddlmZmZ ddl m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ejh                  dk(  rejj                  Z6nej                  Z6efd„Z7efd„Z8 G d„ d«      Z9 G d„ de9«      Z:d„ Z;y)z•
requests.sessions
~~~~~~~~~~~~~~~~~

This module provides a Session object to manage and persist settings across
requests (cookies, auth, proxies).
é    N)ÚOrderedDict)Ú	timedeltaé   )Úto_native_string)ÚHTTPAdapter)Ú_basic_auth_str)ÚMappingÚ	cookielibÚurljoinÚurlparse)ÚRequestsCookieJarÚcookiejar_from_dictÚextract_cookies_to_jarÚmerge_cookies)ÚChunkedEncodingErrorÚContentDecodingErrorÚInvalidSchemaÚTooManyRedirects)Údefault_hooksÚdispatch_hook)ÚDEFAULT_REDIRECT_LIMITÚREDIRECT_STATIÚPreparedRequestÚRequest)Úcodes)ÚCaseInsensitiveDict)
ÚDEFAULT_PORTSÚdefault_headersÚget_auth_from_urlÚget_environ_proxiesÚget_netrc_authÚrequote_uriÚresolve_proxiesÚrewind_bodyÚshould_bypass_proxiesÚto_key_val_listÚwin32c                 ó  — |€| S | €|S t        |t        «      rt        | t        «      s| S  |t        |«      «      }|j                  t        | «      «       |j	                  «       D ��cg c]
  \  }}|�Œ	|‘Œ }}}|D ]  }||= Œ |S c c}}w )zèDetermines appropriate setting for a given request, taking into account
    the explicit setting on that request, and the setting in the session. If a
    setting is a dictionary, they will be merged together using `dict_class`
    )Ú
isinstancer	   r&   ÚupdateÚitems)Úrequest_settingÚsession_settingÚ
dict_classÚmerged_settingÚkÚvÚ	none_keysÚkeys           ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.pyÚmerge_settingr5   =   s¤   € ð ÐØÐàÐØÐô 	�?¤GÔ,´¸OÌWÔ1UàÐá¤°Ó @ÓA€NØ×Ñœ/¨/Ó:Ô;ð "0×!5Ñ!5Ó!7×E‘v˜˜1¸1¹9’ÐE€IÑEØò  ˆØ˜3Ñð ð Ðùó	 Fs   Á)
BÁ4Bc                 ó|   — |�|j                  d«      g k(  r| S | �| j                  d«      g k(  r|S t        | ||«      S )z©Properly merges both requests and session hooks.

    This is necessary because when request_hooks == {'response': []}, the
    merge breaks Session hooks entirely.
    Úresponse)Úgetr5   )Úrequest_hooksÚsession_hooksr.   s      r4   Úmerge_hooksr;   [   sO   € ð Ð × 1Ñ 1°*Ó =ÀÒ CØÐàÐ × 1Ñ 1°*Ó =ÀÒ CØÐä˜¨°zÓBÐBó    c                   ó>   — e Zd Zd„ Zd„ Z	 	 	 	 	 	 dd„Zd„ Zd„ Zd„ Zy)	ÚSessionRedirectMixinc                 ót   — |j                   r,|j                  d   }|j                  d«      }t        |d«      S y)z7Receives a Response. Returns a redirect URI or ``None``ÚlocationÚlatin1Úutf8N)Úis_redirectÚheadersÚencoder   )ÚselfÚrespr@   s      r4   Úget_redirect_targetz(SessionRedirectMixin.get_redirect_targetk   s;   € ð ×ÒØ—|‘| JÑ/ˆHð  —‘ xÓ0ˆHÜ# H¨fÓ5Ð5Ør<   c                 óÊ  — t        |«      }t        |«      }|j                  |j                  k7  ry|j                  dk(  r,|j                  dv r|j                  dk(  r|j                  dv ry|j                  |j                  k7  }|j                  |j                  k7  }t	        j
                  |j                  d«      df}|s|j                  |v r|j                  |v ry|xs |S )zFDecide whether Authorization header should be removed when redirectingTÚhttp)éP   NÚhttps)i»  NFN)r   ÚhostnameÚschemeÚportr   r8   )rF   Úold_urlÚnew_urlÚ
old_parsedÚ
new_parsedÚchanged_portÚchanged_schemeÚdefault_ports           r4   Úshould_strip_authz&SessionRedirectMixin.should_strip_auth   sØ   € ä˜gÓ&ˆ
Ü˜gÓ&ˆ
Ø×Ñ *×"5Ñ"5Ò5Øð ×Ñ Ò'Ø—‘ :Ñ-Ø×!Ñ! WÒ,Ø—‘ ;Ñ.àð "—‘¨*¯/©/Ñ9ˆØ#×*Ñ*¨j×.?Ñ.?Ñ?ˆÜ%×)Ñ)¨*×*;Ñ*;¸TÓBÀDÐIˆáØ—‘ <Ñ/Ø—‘ <Ñ/àð Ò-˜~Ð-r<   Nc	           
   +   óÜ  K  — g }
| j                  |«      }t        |j                  «      j                  }|�rü|j	                  «       }|
j                  |«       |
dd |_        	 |j                   t        |j                  «      | j                  k\  rt        d| j                  › d�|¬«      ‚|j!                  «        |j#                  d«      r;t        |j                  «      }d	j%                  t'        |j(                  «      |g«      }t        |«      }|j                  d
k(  r|r|j+                  |¬«      }n|j                  r|j                  }|j-                  «       }|j.                  s t1        |j                  t3        |«      «      }nt3        |«      }t'        |«      |_        | j5                  ||«       |j6                  t8        j:                  t8        j<                  fvr,d}|D ]  }|j>                  jA                  |d«       Œ  d|_!        |j>                  }|jA                  dd«       tE        |jF                  ||j                  «       tI        |jF                  | jJ                  «       |jM                  |jF                  «       | jO                  ||«      }| jQ                  ||«       |jR                  duxr
 d|v xs d|v }|rtU        |«       |}|r|–— nP | jV                  |f|||||ddœ|	¤Ž}tE        | jJ                  ||j                  «       | j                  |«      }|–— |r�Œûyy# t        t        t        f$ r  |j                  j                  d¬«       Y �Œøw xY w­w)zBReceives a Response. Returns a generator of Responses or Requests.r   NF)Údecode_contentz	Exceeded z redirects.)r7   z//ú:Ú )Úfragment)úContent-LengthzContent-TypeúTransfer-EncodingÚCookier]   r^   )ÚstreamÚtimeoutÚverifyÚcertÚproxiesÚallow_redirects),rH   r   Úurlr\   ÚcopyÚappendÚhistoryÚcontentr   r   ÚRuntimeErrorÚrawÚreadÚlenÚmax_redirectsr   ÚcloseÚ
startswithÚjoinr   rN   Ú_replaceÚgeturlÚnetlocr   r"   Úrebuild_methodÚstatus_coder   Útemporary_redirectÚpermanent_redirectrD   ÚpopÚbodyr   Ú_cookiesr   ÚcookiesÚprepare_cookiesÚrebuild_proxiesÚrebuild_authÚ_body_positionr$   Úsend)rF   rG   Úreqr`   ra   rb   rc   rd   Úyield_requestsÚadapter_kwargsÚhistrf   Úprevious_fragmentÚprepared_requestÚparsed_rurlÚparsedÚpurged_headersÚheaderrD   Ú
rewindables                       r4   Úresolve_redirectsz&SessionRedirectMixin.resolve_redirectsŸ   s2  è ø€ ð ˆà×&Ñ& tÓ,ˆÜ$ S§W¡WÓ-×6Ñ6ÐÚØ"Ÿx™x›zÐð �K‰K˜ÔØ  ˜8ˆDŒLð4Ø—’ô �4—<‘<Ó  D×$6Ñ$6Ò6Ü&Ø × 2Ñ 2Ð3°;Ð?È$ôð ð
 �J‰JŒLð �~‰~˜dÔ#Ü& t§x¡xÓ0�Ø—h‘hÔ 0°×1CÑ1CÓ DÀcÐJÓK�ô ˜c“]ˆFØ�‰ "Ò$Ñ):ØŸ™Ð2C˜ÓD‘Ø—’Ø$*§O¡OÐ!Ø—-‘-“/ˆCð
 —=’=Ü˜dŸh™h¬°CÓ(8Ó9‘ä! #Ó&�ä#3°CÓ#8ÐÔ à×ÑÐ 0°$Ô7ð ×ÑÜ×(Ñ(Ü×(Ñ(ð(ñ ð
 "Y�Ø,ò ?�FØ$×,Ñ,×0Ñ0°¸Õ>ð?à(,Ð Ô%à&×.Ñ.ˆGØ�K‰K˜ $Ô'ô
 #Ð#3×#<Ñ#<¸cÀ4Ç8Á8ÔLÜÐ*×3Ñ3°T·\±\ÔBØ×,Ñ,Ð-=×-FÑ-FÔGð ×*Ñ*Ð+;¸WÓEˆGØ×ÑÐ.°Ô5ð
 *×8Ñ8ÀÐDò Ø  GÐ+ÒMÐ/BÀgÐ/Mð ñ
 ÜÐ,Ô-ð #ˆCáØ“	à �t—y‘yØð	à!Ø#Ø!ØØ#Ø$)ñ	ð %ñ	�ô ' t§|¡|Ð5EÀtÇxÁxÔPð ×.Ñ.¨tÓ4�Ø’
õO øô )Ô*>ÄÐMò 4Ø—‘—‘¨U�×3ð4üs1   ‚A!M,Á$L5 Á0KM,Ì3M,Ì50M)Í%M,Í(M)Í)M,c                 óè   — |j                   }|j                  }d|v r)| j                  |j                  j                  |«      r|d= | j                  rt        |«      nd}|�|j                  |«       yy)zéWhen being redirected we may want to strip authentication from the
        request to avoid leaking credentials. This method intelligently removes
        and reapplies authentication where possible to avoid credential loss.
        ÚAuthorizationN)rD   rf   rW   ÚrequestÚ	trust_envr!   Úprepare_auth)rF   rˆ   r7   rD   rf   Únew_auths         r4   r€   z!SessionRedirectMixin.rebuild_auth  sw   € ð
 #×*Ñ*ˆØ×"Ñ"ˆà˜gÑ%¨$×*@Ñ*@Ø×Ñ× Ñ  #ô+
ð
 ˜Ð(ð +/¯.ª.”> #Ô&¸dˆØÐØ×)Ñ)¨(Õ3ð  r<   c                 ó,  — |j                   }t        |j                  «      j                  }t	        ||| j
                  «      }d|v r|d= 	 t        ||   «      \  }}|j                  d«      s|r|rt        ||«      |d<   |S # t        $ r d\  }}Y Œ6w xY w)a°  This method re-evaluates the proxy configuration by considering the
        environment variables. If we are redirected to a URL covered by
        NO_PROXY, we strip the proxy configuration. Otherwise, we set missing
        proxy keys for this URL (in case they were stripped by a previous
        redirect).

        This method also replaces the Proxy-Authorization header where
        necessary.

        :rtype: dict
        zProxy-Authorization©NNrL   )
rD   r   rf   rN   r#   r’   r   ÚKeyErrorrq   r   )rF   rˆ   rd   rD   rN   Únew_proxiesÚusernameÚpasswords           r4   r   z$SessionRedirectMixin.rebuild_proxies.  sª   € ð #×*Ñ*ˆÜÐ*×.Ñ.Ó/×6Ñ6ˆÜ%Ð&6¸ÀÇÁÓPˆà  GÑ+ØÐ-Ð.ð	,Ü!2°;¸vÑ3FÓ!GÑˆH�hð × Ñ  Ô)©h¹8Ü-<¸XÀxÓ-PˆGÐ)Ñ*àÐøô ò 	,Ø!+ÑˆH’hð	,ús   ÁB ÂBÂBc                 ó  — |j                   }|j                  t        j                  k(  r|dk7  rd}|j                  t        j                  k(  r|dk7  rd}|j                  t        j
                  k(  r|dk(  rd}||_         y)z‚When being redirected we may want to change the method of the request
        based on certain specs or browser behavior.
        ÚHEADÚGETÚPOSTN)Úmethodrw   r   Ú	see_otherÚfoundÚmoved)rF   rˆ   r7   rŸ   s       r4   rv   z#SessionRedirectMixin.rebuild_methodM  sx   € ð "×(Ñ(ˆð ×Ñ¤5§?¡?Ò2°vÀÒ7GØˆFð ×Ñ¤5§;¡;Ò.°6¸VÒ3CØˆFð ×Ñ¤5§;¡;Ò.°6¸VÒ3CØˆFà"(ÐÕr<   )FNTNNF)	Ú__name__Ú
__module__Ú__qualname__rH   rW   rŽ   r€   r   rv   © r<   r4   r>   r>   j   s7   „ òò(.ðH ØØØØØóyòv4ò(ó>)r<   r>   c                   ó®   — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	d	„ Z
d
„ Zd„ Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚSessiona€  A Requests session.

    Provides cookie persistence, connection-pooling, and configuration.

    Basic Usage::

      >>> import requests
      >>> s = requests.Session()
      >>> s.get('https://httpbin.org/get')
      <Response [200]>

    Or as a context manager::

      >>> with requests.Session() as s:
      ...     s.get('https://httpbin.org/get')
      <Response [200]>
    )rD   r}   Úauthrd   ÚhooksÚparamsrb   rc   Úadaptersr`   r’   ro   c                 ó^  — t        «       | _        d | _        i | _        t	        «       | _        i | _        d| _        d| _        d | _	        t        | _        d| _        t        i «      | _        t        «       | _        | j#                  dt%        «       «       | j#                  dt%        «       «       y )NFTzhttps://zhttp://)r   rD   r©   rd   r   rª   r«   r`   rb   rc   r   ro   r’   r   r}   r   r¬   Úmountr   ©rF   s    r4   Ú__init__zSession.__init__†  s›   € ô 'Ó(ˆŒð ˆŒ	ð
 ˆŒô #“_ˆŒ
ð
 ˆŒð ˆŒð ˆŒð ˆŒ	ô 4ˆÔð ˆŒô +¨2Ó.ˆŒô $›ˆŒØ�
‰
�:œ{›}Ô-Ø�
‰
�9œk›mÕ,r<   c                 ó   — | S ©Nr¦   r¯   s    r4   Ú	__enter__zSession.__enter__Ã  s   € Øˆr<   c                 ó$   — | j                  «        y r²   )rp   )rF   Úargss     r4   Ú__exit__zSession.__exit__Æ  s   € Ø�
‰
�r<   c                 óè  — |j                   xs i }t        |t        j                  «      st	        |«      }t        t        t        «       | j                   «      |«      }|j                  }| j                  r#|s!| j                  st        |j                  «      }t        «       }|j                  |j                  j                  «       |j                  |j                  |j                   |j"                  t%        |j&                  | j&                  t(        ¬«      t%        |j*                  | j*                  «      t%        || j                  «      |t-        |j.                  | j.                  «      ¬«
       |S )a‹  Constructs a :class:`PreparedRequest <PreparedRequest>` for
        transmission and returns it. The :class:`PreparedRequest` has settings
        merged from the :class:`Request <Request>` instance and those of the
        :class:`Session`.

        :param request: :class:`Request` instance to prepare with this
            session's settings.
        :rtype: requests.PreparedRequest
        )r.   )
rŸ   rf   ÚfilesÚdataÚjsonrD   r«   r©   r}   rª   )r}   r)   r
   Ú	CookieJarr   r   r   r©   r’   r!   rf   r   ÚpreparerŸ   Úupperr¸   r¹   rº   r5   rD   r   r«   r;   rª   )rF   r‘   r}   Úmerged_cookiesr©   Úps         r4   Úprepare_requestzSession.prepare_requestÉ  s  € ð —/‘/Ò' Rˆô ˜'¤9×#6Ñ#6Ô7Ü)¨'Ó2ˆGô 'ÜÔ+Ó-¨t¯|©|Ó<¸gó
ˆð
 �|‰|ˆØ�>Š>¡$¨t¯yªyÜ! '§+¡+Ó.ˆDäÓˆØ	�	‰	Ø—>‘>×'Ñ'Ó)Ø—‘Ø—-‘-Ø—‘Ø—‘Ü!Ø—‘ §¡Ô:Môô ! §¡°·±Ó=Ü˜t T§Y¡YÓ/Ø"Ü˜gŸm™m¨T¯Z©ZÓ8ð 	ô 	
ð ˆr<   Nc                 ó  — t        |j                  «       ||||xs i ||xs i |||¬«
      }| j                  |«      }|xs i }| j                  |j                  ||||«      }|	|
dœ}|j                  |«        | j                  |fi |¤Ž}|S )aù	  Constructs a :class:`Request <Request>`, prepares it and sends it.
        Returns :class:`Response <Response>` object.

        :param method: method for the new :class:`Request` object.
        :param url: URL for the new :class:`Request` object.
        :param params: (optional) Dictionary or bytes to be sent in the query
            string for the :class:`Request`.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json to send in the body of the
            :class:`Request`.
        :param headers: (optional) Dictionary of HTTP Headers to send with the
            :class:`Request`.
        :param cookies: (optional) Dict or CookieJar object to send with the
            :class:`Request`.
        :param files: (optional) Dictionary of ``'filename': file-like-objects``
            for multipart encoding upload.
        :param auth: (optional) Auth tuple or callable to enable
            Basic/Digest/Custom HTTP Auth.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple
        :param allow_redirects: (optional) Set to True by default.
        :type allow_redirects: bool
        :param proxies: (optional) Dictionary mapping protocol or protocol and
            hostname to the URL of the proxy.
        :param hooks: (optional) Dictionary mapping hook name to one event or
            list of events, event must be callable.
        :param stream: (optional) whether to immediately download the response
            content. Defaults to ``False``.
        :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a string, in which case it must be a path
            to a CA bundle to use. Defaults to ``True``. When set to
            ``False``, requests will accept any TLS certificate presented by
            the server, and will ignore hostname mismatches and/or expired
            certificates, which will make your application vulnerable to
            man-in-the-middle (MitM) attacks. Setting verify to ``False``
            may be useful during local development or testing.
        :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair.
        :rtype: requests.Response
        )
rŸ   rf   rD   r¸   r¹   rº   r«   r©   r}   rª   )ra   re   )r   r½   rÀ   Úmerge_environment_settingsrf   r*   r‚   )rF   rŸ   rf   r«   r¹   rD   r}   r¸   r©   ra   re   rd   rª   r`   rb   rc   rº   rƒ   ÚprepÚsettingsÚsend_kwargsrG   s                         r4   r‘   zSession.requestô  s®   € ô~ Ø—<‘<“>ØØØØ’˜ØØ’<˜RØØØô
ˆð ×#Ñ# CÓ(ˆà’-˜Rˆà×2Ñ2Ø�H‰H�g˜v v¨tó
ˆð Ø.ñ
ˆð 	×Ñ˜8Ô$Øˆt�y‰y˜Ñ- Ñ-ˆàˆr<   c                 óN   — |j                  dd«        | j                  d|fi |¤ŽS )zåSends a GET request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        re   Tr�   ©Ú
setdefaultr‘   ©rF   rf   Úkwargss      r4   r8   zSession.getQ  s-   € ð 	×ÑÐ+¨TÔ2Øˆt�|‰|˜E 3Ñ1¨&Ñ1Ð1r<   c                 óN   — |j                  dd«        | j                  d|fi |¤ŽS )zéSends a OPTIONS request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        re   TÚOPTIONSrÇ   rÉ   s      r4   ÚoptionszSession.options\  s-   € ð 	×ÑÐ+¨TÔ2Øˆt�|‰|˜I sÑ5¨fÑ5Ð5r<   c                 óN   — |j                  dd«        | j                  d|fi |¤ŽS )zæSends a HEAD request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        re   Frœ   rÇ   rÉ   s      r4   ÚheadzSession.headg  s-   € ð 	×ÑÐ+¨UÔ3Øˆt�|‰|˜F CÑ2¨6Ñ2Ð2r<   c                 ó0   —  | j                   d|f||dœ|¤ŽS )aÈ  Sends a POST request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rž   )r¹   rº   ©r‘   )rF   rf   r¹   rº   rÊ   s        r4   ÚpostzSession.postr  s#   € ð ˆt�|‰|˜F CÐH¨d¸ÑHÀÑHÐHr<   c                 ó.   —  | j                   d|fd|i|¤ŽS )au  Sends a PUT request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚPUTr¹   rÑ   ©rF   rf   r¹   rÊ   s       r4   ÚputzSession.put  s!   € ð ˆt�|‰|˜E 3Ñ<¨TÐ<°VÑ<Ð<r<   c                 ó.   —  | j                   d|fd|i|¤ŽS )aw  Sends a PATCH request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚPATCHr¹   rÑ   rÕ   s       r4   ÚpatchzSession.patch‹  s!   € ð ˆt�|‰|˜G SÑ>¨tÐ>°vÑ>Ð>r<   c                 ó*   —  | j                   d|fi |¤ŽS )zèSends a DELETE request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚDELETErÑ   rÉ   s      r4   ÚdeletezSession.delete—  s   € ð ˆt�|‰|˜H cÑ4¨VÑ4Ð4r<   c                 óf  — |j                  d| j                  «       |j                  d| j                  «       |j                  d| j                  «       d|vr$t	        || j
                  | j                  «      |d<   t        |t        «      rt        d«      ‚|j                  dd«      }|j                  d«      }|j                  }| j                  |j                  ¬«      }t        «       } |j                   |fi |¤Ž}t        «       |z
  }	t#        |	¬	«      |_        t'        d
||fi |¤Ž}|j(                  r<|j(                  D ]-  }
t+        | j,                  |
j.                  |
j0                  «       Œ/ t+        | j,                  ||j0                  «       |r$ | j2                  ||fi |¤Ž}|D �
cg c]  }
|
‘Œ }}
ng }|r)|j5                  d|«       |j                  «       }||_        |s%	 t7         | j2                  ||fddi|¤Ž«      |_        |s|j<                   |S c c}
w # t:        $ r Y Œ w xY w)zISend a given PreparedRequest.

        :rtype: requests.Response
        r`   rb   rc   rd   z#You can only send PreparedRequests.re   T)rf   )Úsecondsr7   r   r„   )rÈ   r`   rb   rc   r#   rd   r’   r)   r   Ú
ValueErrorrz   r8   rª   Úget_adapterrf   Úpreferred_clockr‚   r   Úelapsedr   ri   r   r}   r‘   rl   rŽ   ÚinsertÚnextÚ_nextÚStopIterationrj   )rF   r‘   rÊ   re   r`   rª   ÚadapterÚstartÚrrâ   rG   Úgenri   s                r4   r‚   zSession.send¡  s  € ð 	×Ñ˜( D§K¡KÔ0Ø×Ñ˜( D§K¡KÔ0Ø×Ñ˜& $§)¡)Ô,Ø˜FÑ"Ü /°¸¿¹ÀtÇ~Á~Ó VˆF�9Ñô �gœwÔ'ÜÐBÓCÐCð !Ÿ*™*Ð%6¸Ó=ˆØ—‘˜HÓ%ˆØ—‘ˆð ×"Ñ" w§{¡{Ð"Ó3ˆô  Ó!ˆð ˆG�L‰L˜Ñ+ FÑ+ˆô "Ó# eÑ+ˆÜ gÔ.ˆŒ	ô ˜* e¨QÑ9°&Ñ9ˆð �9Š9àŸ	™	ò M�Ü& t§|¡|°T·\±\À4Ç8Á8ÕLðMô 	˜tŸ|™|¨W°a·e±eÔ<ñ à(�$×(Ñ(¨¨GÑ>°vÑ>ˆCØ(+Ö, ’tÐ,ˆGÑ,àˆGñ à�N‰N˜1˜aÔ à—‘“ˆAØˆAŒIñ ðÜØ*�D×*Ñ*¨1¨gÑUÀdÐUÈfÑUó�”ñ Ø�IŠIàˆùò1 -øô$ !ò Ùðús   Æ/	HÇ+$H$ È$	H0È/H0c                 ó  — | j                   r–|�|j                  d«      nd}t        ||¬«      }|j                  «       D ]  \  }}	|j	                  ||	«       Œ |du s|€Dt
        j                  j                  d«      xs# t
        j                  j                  d«      xs |}t        || j                  «      }t        || j                  «      }t        || j                  «      }t        || j                  «      }||||dœS )z^
        Check the environment and merge it with some settings.

        :rtype: dict
        NÚno_proxy)rì   TÚREQUESTS_CA_BUNDLEÚCURL_CA_BUNDLE)rd   r`   rb   rc   )r’   r8   r    r+   rÈ   ÚosÚenvironr5   rd   r`   rb   rc   )
rF   rf   rd   r`   rb   rc   rì   Úenv_proxiesr0   r1   s
             r4   rÂ   z"Session.merge_environment_settingsî  së   € ð �>Š>à29Ð2E�w—{‘{ :Ô.È4ˆHÜ-¨c¸HÔEˆKØ#×)Ñ)Ó+ò )‘��1Ø×"Ñ" 1 aÕ(ð)ð
 ˜‰~  ä—J‘J—N‘NÐ#7Ó8ò Ü—z‘z—~‘~Ð&6Ó7òàð ô   ¨¯©Ó6ˆÜ˜v t§{¡{Ó3ˆÜ˜v t§{¡{Ó3ˆÜ˜T 4§9¡9Ó-ˆà"¨fÀÐPTÑUÐUr<   c                 óÄ   — | j                   j                  «       D ]6  \  }}|j                  «       j                  |j                  «       «      sŒ4|c S  t	        d|›�«      ‚)z~
        Returns the appropriate connection adapter for the given URL.

        :rtype: requests.adapters.BaseAdapter
        z&No connection adapters were found for )r¬   r+   Úlowerrq   r   )rF   rf   Úprefixrç   s       r4   rà   zSession.get_adapter  sX   € ð  $Ÿ}™}×2Ñ2Ó4ò 	‰OˆF�GØ�y‰y‹{×%Ñ% f§l¡l£nÕ5Ø’ð	ô
 ÐDÀSÀGÐLÓMÐMr<   c                 ób   — | j                   j                  «       D ]  }|j                  «        Œ y)z+Closes all adapters and as such the sessionN)r¬   Úvaluesrp   )rF   r1   s     r4   rp   zSession.close  s'   € à—‘×%Ñ%Ó'ò 	ˆAØ�G‰G�Iñ	r<   c                 óì   — || j                   |<   | j                   D �cg c]  }t        |«      t        |«      k  sŒ|‘Œ }}|D ]*  }| j                   j                  |«      | j                   |<   Œ, yc c}w )zwRegisters a connection adapter to a prefix.

        Adapters are sorted in descending order by prefix length.
        N)r¬   rn   rz   )rF   rô   rç   r0   Úkeys_to_mover3   s         r4   r®   zSession.mount  sj   € ð
 !(ˆ�‰�fÑØ#'§=¡=ÖI˜a´C¸³F¼SÀ»[Ó4HšÐIˆÐIàò 	8ˆCØ!%§¡×!2Ñ!2°3Ó!7ˆD�M‰M˜#Òñ	8ùò Js
   žA1»A1c           	      óZ   — | j                   D �ci c]  }|t        | |d «      “Œ }}|S c c}w r²   )Ú	__attrs__Úgetattr)rF   ÚattrÚstates      r4   Ú__getstate__zSession.__getstate__*  s2   € Ø=A¿^¹^ÖL°T�”w˜t T¨4Ó0Ñ0ÐLˆÐLØˆùò Ms   �(c                 óN   — |j                  «       D ]  \  }}t        | ||«       Œ y r²   )r+   Úsetattr)rF   rý   rü   Úvalues       r4   Ú__setstate__zSession.__setstate__.  s'   € Ø Ÿ;™;›=ò 	'‰KˆD�%Ü�D˜$ Õ&ñ	'r<   )NNNNNNNTNNNNNNr–   r²   )r£   r¤   r¥   Ú__doc__rú   r°   r³   r¶   rÀ   r‘   r8   rÍ   rÏ   rÒ   rÖ   rÙ   rÜ   r‚   rÂ   rà   rp   r®   rþ   r  r¦   r<   r4   r¨   r¨   d  s¢   „ ñò$€Iò;-òzòò)ð^ ØØØØØØØØØØØØØó#[òz	2ò	6ò	3óIó
=ó
?ò5òKòZVò>Nòò
	8òó'r<   r¨   c                  ó   — t        «       S )aZ  
    Returns a :class:`Session` for context-management.

    .. deprecated:: 1.0.0

        This method has been deprecated since version 1.0.0 and is only kept for
        backwards compatibility. New code should use :class:`~requests.sessions.Session`
        to create a session. This may be removed at a future date.

    :rtype: Session
    )r¨   r¦   r<   r4   Úsessionr  3  s   € ô ‹9Ðr<   )<r  rï   ÚsysÚtimeÚcollectionsr   Údatetimer   Ú_internal_utilsr   r¬   r   r©   r   Úcompatr	   r
   r   r   r}   r   r   r   r   Ú
exceptionsr   r   r   r   rª   r   r   Úmodelsr   r   r   r   Ústatus_codesr   Ú
structuresr   Úutilsr   r   r   r    r!   r"   r#   r$   r%   r&   ÚplatformÚperf_counterrá   r5   r;   r>   r¨   r  r¦   r<   r4   ú<module>r     sÀ   ðñó 
Û 
Û Ý #Ý å -Ý !Ý !ß 9Ó 9÷ó ÷ó ÷ 0÷ó õ  Ý +÷÷ ÷ ð ‡<�<�7ÒØ×'Ñ'�Oà—i‘i€Oð @Kó ð< :Eó C÷w)ñ w)ôtL'Ð"ô L'ó^r<   