§
    (U e“  ã                  ó¸  — U d dl m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 ej        rd d	lmZ d
Z eg d¢¦  «        ZdZ	 	 d dlZn# e$ r d dlZY nw xY wedz  Zn# e$ r Y nw xY w	 d dlZedz  Zn# e$ r Y nw xY w G d„ de¦  «        Zej        Zded<   ej        eef         Zh d£Z 	 	 	 	 	 	 d2d3d„Z!d4d$„Z"d5d)„Z# G d*„ d+ej$        ¦  «        Z%d6d1„Z&dS )7é    )ÚannotationsN)Ú	b64encode)ÚEnumé   )ÚUnrewindableBodyErroré   )Úto_bytes)ÚFinalz@@@SKIP_HEADER@@@)úaccept-encodingÚhostú
user-agentzgzip,deflatez,brz,zstdc                  ó   — e Zd ZdZdS )Ú_TYPE_FAILEDTELLr   N)Ú__name__Ú
__module__Ú__qualname__Útoken© ó    úX/var/www/dev/btcams2023/python_venv/lib/python3.11/site-packages/urllib3/util/request.pyr   r   '   s   € € € € € Ø€E€E€Er   r   zFinal[_TYPE_FAILEDTELL]Ú_FAILEDTELL>   ÚGETÚHEADÚTRACEÚDELETEÚCONNECTÚOPTIONSÚ
keep_aliveúbool | NoneÚaccept_encodingúbool | list[str] | str | NoneÚ
user_agentú
str | NoneÚ
basic_authÚproxy_basic_authÚdisable_cacheÚreturnúdict[str, str]c                óÂ  — i }|rMt          |t          ¦  «        rn2t          |t          ¦  «        rd                     |¦  «        }nt          }||d<   |r||d<   | rd|d<   |r:dt          |                     d¦  «        ¦  «                             ¦   «         › �|d<   |r:dt          |                     d¦  «        ¦  «                             ¦   «         › �|d	<   |rd
|d<   |S )aÎ  
    Shortcuts for generating request headers.

    :param keep_alive:
        If ``True``, adds 'connection: keep-alive' header.

    :param accept_encoding:
        Can be a boolean, list, or string.
        ``True`` translates to 'gzip,deflate'.  If either the ``brotli`` or
        ``brotlicffi`` package is installed 'gzip,deflate,br' is used instead.
        List will get joined by comma.
        String will be used as provided.

    :param user_agent:
        String representing the user-agent you want, such as
        "python-urllib3/0.6"

    :param basic_auth:
        Colon-separated username:password string for 'authorization: basic ...'
        auth header.

    :param proxy_basic_auth:
        Colon-separated username:password string for 'proxy-authorization: basic ...'
        auth header.

    :param disable_cache:
        If ``True``, adds 'cache-control: no-cache' header.

    Example:

    .. code-block:: python

        import urllib3

        print(urllib3.util.make_headers(keep_alive=True, user_agent="Batman/1.0"))
        # {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'}
        print(urllib3.util.make_headers(accept_encoding=True))
        # {'accept-encoding': 'gzip,deflate'}
    ú,r   r   z
keep-aliveÚ
connectionzBasic zlatin-1Úauthorizationzproxy-authorizationzno-cachezcache-control)Ú
isinstanceÚstrÚlistÚjoinÚACCEPT_ENCODINGr   ÚencodeÚdecode)r   r    r"   r$   r%   r&   Úheaderss          r   Úmake_headersr5   7   s(  € ð^ !€GØð 5Ý�o¥sÑ+Ô+ð 	.ØÝ˜­Ñ.Ô.ð 	.Ø!Ÿhšh Ñ7Ô7ˆOˆOå-ˆOØ%4ˆÐ!Ñ"àð +Ø *ˆ�Ñàð -Ø ,ˆ�Ñàð Hð H•Y˜z×0Ò0°Ñ;Ô;Ñ<Ô<×CÒCÑEÔEÐGÐGð 	Øñ	
ð ð Nð N•YÐ/×6Ò6°yÑAÔAÑBÔB×IÒIÑKÔKÐMÐMð 	Ø!ñ	
ð ð .Ø#-ˆ�Ñ à€Nr   Úbodyú
typing.AnyÚposú_TYPE_BODY_POSITION | Nonec                ó¨   — |�t          | |¦  «         n>t          | dd¦  «        �-	 |                      ¦   «         }n# t          $ r
 t          }Y nw xY w|S )z
    If a position is provided, move file to that point.
    Otherwise, we'll attempt to record a position for future use.
    NÚtell)Úrewind_bodyÚgetattrr;   ÚOSErrorr   )r6   r8   s     r   Úset_file_positionr?   †   so   € ð €Ý�D˜#ÑÔÐÐÝ	��v˜tÑ	$Ô	$Ð	0ð	Ø—)’)‘+”+ˆCˆCøÝð 	ð 	ð 	õ ˆCˆCˆCð	øøøð
 €Js   ¦; »AÁAútyping.IO[typing.AnyStr]Úbody_posÚ_TYPE_BODY_POSITIONÚNonec                ó"  — t          | dd¦  «        }|�Et          |t          ¦  «        r0	  ||¦  «         dS # t          $ r}t	          d¦  «        |‚d}~ww xY w|t
          u rt	          d¦  «        ‚t          dt          |¦  «        › d�¦  «        ‚)zæ
    Attempt to rewind body to a certain position.
    Primarily used for request redirects and retries.

    :param body:
        File-like object that supports seek.

    :param int pos:
        Position to seek to in file.
    ÚseekNzAAn error occurred when rewinding request body for redirect/retry.zRUnable to record file position for rewinding request body during a redirect/retry.z1body_pos must be of type integer, instead it was ú.)r=   r-   Úintr>   r   r   Ú
ValueErrorÚtype)r6   rA   Ú	body_seekÚes       r   r<   r<   š   sÈ   € õ ˜˜f dÑ+Ô+€IØÐ¥¨HµcÑ!:Ô!:Ðð	ØˆI�hÑÔÐÐÐøÝð 	ð 	ð 	Ý'ØSñô àðøøøøð	øøøð 
•[Ð	 Ð	 Ý#ð4ñ
ô 
ð 	
õ
 ØQÅÀXÁÄÐQÐQÐQñ
ô 
ð 	
s   ª7 ·
AÁAÁAc                  ó$   — e Zd ZU ded<   ded<   dS )ÚChunksAndContentLengthztyping.Iterable[bytes] | NoneÚchunksz
int | NoneÚcontent_lengthN)r   r   r   Ú__annotations__r   r   r   rM   rM   ¸   s*   € € € € € € Ø)Ð)Ð)Ñ)ØÐÐÑÐÐr   rM   útyping.Any | NoneÚmethodr.   Ú	blocksizerG   c                óü  ‡ ‡— ‰ €#d}|                      ¦   «         t          vrd}nÈd}nÅt          ‰ t          t          f¦  «        r&t          ‰ ¦  «        f}t          |d         ¦  «        }nƒt          ‰ d¦  «        rd	ˆˆ fd„} |¦   «         }d}n_	 t          ‰ ¦  «        }‰ f}|j	        }nD# t          $ r7 	 t          ‰ ¦  «        }d}n!# t          $ r t          d‰ ›�¦  «        d‚w xY wY nw xY wt          ||¬¦  «        S )
aR  Takes the HTTP request method, body, and blocksize and
    transforms them into an iterable of chunks to pass to
    socket.sendall() and an optional 'Content-Length' header.

    A 'Content-Length' of 'None' indicates the length of the body
    can't be determined so should use 'Transfer-Encoding: chunked'
    for framing instead.
    Nr   Úreadr'   útyping.Iterable[bytes]c               3  ó¨   •K  — t          ‰t          j        ¦  «        } 	 ‰                     ‰¦  «        }|sd S | r|                     d¦  «        }|V — Œ5)NTz
iso-8859-1)r-   ÚioÚ
TextIOBaserU   r2   )r2   Ú	datablockrS   r6   s     €€r   Úchunk_readablez&body_to_chunks.<locals>.chunk_readableÞ   sd   øè è € å ¥b¤mÑ4Ô4ˆFð Ø ŸIšI iÑ0Ô0�	Ø ð Ø�EØð ?Ø )× 0Ò 0°Ñ >Ô >�IØ���ð r   zO'body' must be a bytes-like object, file-like object, or iterable. Instead was )rN   rO   )r'   rV   )ÚupperÚ_METHODS_NOT_EXPECTING_BODYr-   r.   Úbytesr	   ÚlenÚhasattrÚ
memoryviewÚnbytesÚ	TypeErrorÚiterrM   )r6   rR   rS   rN   rO   r[   Úmvs   ` `    r   Úbody_to_chunksrf   ½   sq  øø€ ð$ €|ØˆØ�<Š<‰>Œ>Õ!<Ð<Ð<ØˆNˆNà!ˆNˆNõ 
�D�3¥˜,Ñ	'Ô	'ð ''Ý˜4‘.”.Ð"ˆÝ˜V AœY™œˆˆõ 
��vÑ	Ô	ð "'ð		 ð 		 ð 		 ð 		 ð 		 ð 		 ð 		 ð  �Ñ!Ô!ˆØˆˆð	'å˜DÑ!Ô!ˆBð �WˆFØœYˆNˆNøõ ð 		ð 		ð 		ðå˜d™œ�Ø!%��øÝð ð ð ÝðAØ8<ðAð Añô ð ððøøøð �ð			øøøõ "¨ÀÐOÑOÔOÐOs*   ÂB) Â)
C*Â4CÃC*ÃC$Ã$C*Ã)C*)NNNNNN)r   r   r    r!   r"   r#   r$   r#   r%   r#   r&   r   r'   r(   )r6   r7   r8   r9   r'   r9   )r6   r@   rA   rB   r'   rC   )r6   rQ   rR   r.   rS   rG   r'   rM   )'Ú
__future__r   rX   ÚtypingÚbase64r   Úenumr   Ú
exceptionsr   Úutilr	   ÚTYPE_CHECKINGÚtyping_extensionsr
   ÚSKIP_HEADERÚ	frozensetÚSKIPPABLE_HEADERSr1   Ú
brotlicffiÚ_unused_module_brotliÚImportErrorÚbrotliÚ	zstandardÚ_unused_module_zstdr   r   r   rP   ÚUnionrG   rB   r]   r5   r?   r<   Ú
NamedTuplerM   rf   r   r   r   ú<module>rz      s  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð à	Ôð (Ø'Ð'Ð'Ð'Ð'Ð'ð "€Ø�IÐGÐGÐGÑHÔHÐ à €ðð/Ø2Ð2Ð2Ð2Ð2øØð /ð /ð /Ø.Ð.Ð.Ð.Ð.Ð.ð/øøøð
 �uÑ€O€Oøð ð 	ð 	ð 	Ø€Dð	øøøðØ+Ð+Ð+Ð+ð �wÑ€O€Oøð ð 	ð 	ð 	Ø€Dð	øøøðð ð ð ð �tñ ô ð ð (8Ô'=€Ð =Ð =Ð =Ñ =à”l 3Ð(8Ð#8Ô9Ð ð WÐVÐVÐ ð #Ø59Ø!Ø!Ø#'Ø!%ðLð Lð Lð Lð Lð^ð ð ð ð(
ð 
ð 
ð 
ð<ð ð ð ð ˜VÔ.ñ ô ð ð
CPð CPð CPð CPð CPð CPsB   ÁA ÁA" Á	AÁA" ÁAÁA" Á"A*Á)A*Á.A8 Á8B Á?B 