§
    `Ò³gý&  ã                  ó  — d dl m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mZ ddlmZ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mZ  ej        e¦  «        Ze	 G d„ d¦  «        ¦   «         Z G d„ de¦  «        Z dS )é    )ÚannotationsN)Úcontextmanager)Ú	dataclass)ÚHTTPException)ÚBytesIOÚIOBaseé   )ÚInvalidHeaderÚTimeoutError)ÚBaseHTTPResponse)ÚRetryé   )ÚEmscriptenRequest)ÚBaseHTTPConnectionÚBaseHTTPSConnectionc                  ó8   — e Zd ZU ded<   ded<   ded<   ded<   d	S )
ÚEmscriptenResponseÚintÚstatus_codezdict[str, str]ÚheaderszIOBase | bytesÚbodyr   ÚrequestN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úa/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/urllib3/contrib/emscripten/response.pyr   r      sB   € € € € € € àÐÐÑØÐÐÑØÐÐÑØÐÐÑÐÐr   r   c                  ó4  ‡ — e Zd Z	 	 d)d*ˆ fd„Zed+d
„¦   «         Zej        d,d„¦   «         Zed-d„¦   «         Zed.d„¦   «         Zej        d/d„¦   «         Z	 d0d1d„Z	d2d„Z
	 	 	 d3d4d„Z	 	 d)d1d „Zd5d!„Zd5d"„Zed6d#„¦   «         Zd7d%„Zd5d&„Zed8d(„¦   «         Zˆ xZS )9ÚEmscriptenHttpResponseWrapperNÚinternal_responser   Úurlú
str | NoneÚ
connectionú/BaseHTTPConnection | BaseHTTPSConnection | Nonec           	     ó   •— d | _         d | _        || _        || _        || _        d| _        t          ¦   «                              |j        |j	        |dddd¬¦  «         |  
                    | j        j        j        ¦  «        | _        d| _        d S )NFr   zHTTP/?Ú T)r   ÚstatusÚrequest_urlÚversionÚversion_stringÚreasonÚdecode_content)Ú_poolÚ_bodyÚ	_responseÚ_urlÚ_connectionÚ_closedÚsuperÚ__init__r   r   Ú_init_lengthr   ÚmethodÚlength_remainingÚlength_is_certain)Úselfr"   r#   r%   Ú	__class__s       €r   r6   z&EmscriptenHttpResponseWrapper.__init__   sš   ø€ ð ˆŒ
ØˆŒ
Ø*ˆŒØˆŒ	Ø%ˆÔØˆŒÝ‰Œ×ÒØ%Ô-Ø$Ô0ØØØ#ØØð 	ñ 	
ô 	
ð 	
ð !%× 1Ò 1°$´.Ô2HÔ2OÑ PÔ PˆÔØ!&ˆÔÐÐr   Úreturnc                ó   — | j         S ©N©r2   ©r;   s    r   r#   z!EmscriptenHttpResponseWrapper.url7   s
   € àŒyÐr   ÚNonec                ó   — || _         d S r?   r@   )r;   r#   s     r   r#   z!EmscriptenHttpResponseWrapper.url;   s   € àˆŒ	ˆ	ˆ	r   c                ó   — | j         S r?   )r3   rA   s    r   r%   z(EmscriptenHttpResponseWrapper.connection?   s   € àÔÐr   úRetry | Nonec                ó   — | j         S r?   ©Ú_retriesrA   s    r   Úretriesz%EmscriptenHttpResponseWrapper.retriesC   s
   € àŒ}Ðr   rI   c                ó   — || _         d S r?   rG   )r;   rI   s     r   rI   z%EmscriptenHttpResponseWrapper.retriesG   s   € ð  ˆŒˆˆr   é   Úamtú
int | Noner.   úbool | Noneútyping.Generator[bytes]c              #  óJ   K  — 	 |                       ||¬¦  «        }|r|V — ndS Œ!)a_  
        A generator wrapper for the read() method. A call will block until
        ``amt`` bytes have been read from the connection or until the
        connection is closed.

        :param amt:
            How much of the content to read. The generator will return up to
            much data per iteration, but may return less. This is particularly
            likely when using compressed data. However, the empty string will
            never be returned.

        :param decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.
        T)rL   r.   N©Úread)r;   rL   r.   Údatas       r   Ústreamz$EmscriptenHttpResponseWrapper.streamL   s=   è è € ð$	Ø—9’9 °^�9ÑDÔDˆDàð Ø�
�
�
�
à�ð	r   Úrequest_methodc                ót  — | j                              d¦  «        }|�t	 d„ |                     d¦  «        D ¦   «         }t          |¦  «        dk    rt	          d|z  ¦  «        ‚|                     ¦   «         }|dk     rd }n# t          $ r d }Y nw xY wd }| j        dv sd| j        cxk    rd	k     sn |d
k    rd}|S )Nzcontent-lengthc                ó,   — h | ]}t          |¦  «        ’ŒS r   )r   )Ú.0Úvals     r   ú	<setcomp>z=EmscriptenHttpResponseWrapper._init_length.<locals>.<setcomp>q   s   € ÐIÐIÐI¨�3˜s™8œ8ÐIÐIÐIr   ú,r   z8Content-Length contained multiple unmatching values (%s)r   )éÌ   i0  éd   éÈ   ÚHEAD)r   ÚgetÚsplitÚlenr
   ÚpopÚ
ValueErrorr)   )r;   rU   Úcontent_lengthÚlengthsÚlengths        r   r7   z*EmscriptenHttpResponseWrapper._init_lengthf   s
  € à%)¤\×%5Ò%5Ð6FÑ%GÔ%GˆàÐ%ð"ð JÐI¨~×/CÒ/CÀCÑ/HÔ/HÐIÑIÔI�Ý�w‘<”< !Ò#Ð#Ý'ð1Ø3AñBñô ð ð !Ÿš™œ�ð ˜A’:�:Ø!�Føøõ	 ð ð ð Ø���ðøøøð ˆFð ŒK˜:Ð%Ð%Ø�d”kÐ'Ð'Ò'Ð' CÒ'Ð'Ð'Ð'Ø Ò'Ð'àˆFàˆs   žAA? Á?BÂBFÚcache_contentÚboolÚbytesc                óœ  — | j         s7| j        �0t          | j        j        t          ¦  «        r| j        j        j        rdS |                      ¦   «         5  t          | j        j        t          ¦  «        sHt          | j        j        ¦  «        | _        d| _	        t          | j        j        ¦  «        | j        _        |�Á|dk    r»d}| j        j                             |¦  «        }| j        �*t          | j        t          |¦  «        z
  d¦  «        | _        | j	        r| j        dk    st          |¦  «        |k     r| j        j                             ¦   «          t          j        t           |¦  «        cd d d ¦  «         S | j        j                             ¦   «         }|r|| _        | j        �*t          | j        t          |¦  «        z
  d¦  «        | _        t          |¦  «        dk    s| j	        r)| j        dk    r| j        j                             ¦   «          t          j        t           |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr   Tr   F)r4   r1   Ú
isinstancer   r   ÚclosedÚ_error_catcherrb   r9   r:   r   rR   ÚmaxÚcloseÚtypingÚcastrj   r0   )r;   rL   r.   rh   rS   s        r   rR   z"EmscriptenHttpResponseWrapper.read‹   sƒ  € ð ŒLð	àŒ~Ð%Ý˜4œ>Ô.µÑ7Ô7ð &Ø<@¼NÔ<OÔ<Vð &ð �3à× Ò Ñ"Ô"ð 	0ð 	0å˜dœnÔ1µ6Ñ:Ô:ð CÝ(+¨D¬NÔ,?Ñ(@Ô(@�Ô%Ø)-�Ô&å&-¨d¬nÔ.AÑ&BÔ&B�”Ô#Øˆ 3¨!¢8 8à %�Ø”~Ô*×/Ò/°Ñ4Ô4�ØÔ(Ð4Ý,/°Ô0EÍÈDÉ	Ì	Ñ0QÐSTÑ,UÔ,U�DÔ)ØÔ*ð 0¨tÔ/DÈÒ/IÐ/IÍcØñOô OàòOð Oð ”NÔ'×-Ò-Ñ/Ô/Ð/Ý”{¥5¨$Ñ/Ô/ð%	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð( ”~Ô*×/Ò/Ñ1Ô1�Ø ð &Ø!%�D”JØÔ(Ð4Ý,/°Ô0EÍÈDÉ	Ì	Ñ0QÐSTÑ,UÔ,U�DÔ)Ý�t‘9”9 ’>�>ØÔ*ð "Ø/3Ô/DÈÒ/IÐ/Ið ”NÔ'×-Ò-Ñ/Ô/Ð/Ý”{¥5¨$Ñ/Ô/ð=	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s   ÁDIÆ B4IÉIÉIc              #  óF   K  — 	 |                       ||¦  «        }|sd S |V — Œr?   rQ   )r;   rL   r.   rj   s       r   Úread_chunkedz*EmscriptenHttpResponseWrapper.read_chunked¸   s9   è è € ð	Ø—I’I˜c >Ñ2Ô2ˆEØð Ø�ØˆKˆKˆKð		r   c                ór   — | j         r| j        sd S | j                              | j        ¦  «         d | _        d S r?   )r/   r3   Ú	_put_connrA   s    r   Úrelease_connz*EmscriptenHttpResponseWrapper.release_connÄ   sB   € ØŒzð 	 Ô!1ð 	Ø�4àŒ
×Ò˜TÔ-Ñ.Ô.Ð.ØˆÔÐÐr   c                ó.   — |                       ¦   «          d S r?   )rp   rA   s    r   Ú
drain_connz(EmscriptenHttpResponseWrapper.drain_connË   s   € Ø�
Š
‰Œˆˆˆr   c                óJ   — | j         r| j         S |                      d¬¦  «        S )NT)rh   )r0   rR   rA   s    r   rS   z"EmscriptenHttpResponseWrapper.dataÎ   s(   € àŒ:ð 	1Ø”:Ðà—9’9¨4�9Ñ0Ô0Ð0r   ú
typing.Anyc                ó^   — | j                              d¦  «        }t          j        |¦  «        S )aÄ  
        Deserializes the body of the HTTP response as a Python object.

        The body of the HTTP response must be encoded using UTF-8, as per
        `RFC 8529 Section 8.1 <https://www.rfc-editor.org/rfc/rfc8259#section-8.1>`_.

        To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to
        your custom decoder instead.

        If the body of the HTTP response is not decodable to UTF-8, a
        `UnicodeDecodeError` will be raised. If the body of the HTTP response is not a
        valid JSON document, a `json.JSONDecodeError` will be raised.

        Read more :ref:`here <json_content>`.

        :returns: The body of the HTTP response as a Python object.
        zutf-8)rS   ÚdecodeÚ_jsonÚloads)r;   rS   s     r   Újsonz"EmscriptenHttpResponseWrapper.jsonÕ   s)   € ð$ Œy×Ò Ñ(Ô(ˆÝŒ{˜4Ñ Ô Ð r   c                óî   — | j         smt          | j        j        t          ¦  «        r| j        j                             ¦   «          | j        r | j                             ¦   «          d | _        d| _         d S d S )NT)r4   rl   r1   r   r   rp   r3   rA   s    r   rp   z#EmscriptenHttpResponseWrapper.closeê   sw   € ØŒ|ð 	 Ý˜$œ.Ô-­vÑ6Ô6ð ,Ø”Ô#×)Ò)Ñ+Ô+Ð+ØÔð (ØÔ ×&Ò&Ñ(Ô(Ð(Ø#'�Ô ØˆDŒLˆLˆLð	 ð 	 r   útyping.Generator[None]c              #  ó†  K  — ddl m}m} d}	 dV — d}nM# |$ r!}t          t	          |¦  «        ¦  «        ‚d}~w|$ r!}t          t	          |¦  «        ¦  «        ‚d}~ww xY w	 |sdt          | j        j        t          ¦  «        r/| j        j        j
        s| j        j                             ¦   «          |                      ¦   «          dS t          | j        j        t          ¦  «        r'| j        j        j
        r|                      ¦   «          dS dS dS # |sct          | j        j        t          ¦  «        r/| j        j        j
        s| j        j                             ¦   «          |                      ¦   «          w t          | j        j        t          ¦  «        r&| j        j        j
        r|                      ¦   «          w w w xY w)zý
        Catch Emscripten specific exceptions thrown by fetch.py,
        instead re-raising urllib3 variants, so that low-level exceptions
        are not leaked in the high-level api.

        On exit, release the connection back to the pool.
        r   )Ú_RequestErrorÚ_TimeoutErrorFNT)Úfetchr„   r…   r   Ústrr   rl   r1   r   r   rm   rp   rw   )r;   r„   r…   Ú
clean_exitÚes        r   rn   z,EmscriptenHttpResponseWrapper._error_catcheró   s  è è € ð 	8Ð7Ð7Ð7Ð7Ð7Ð7Ð7àˆ
ð	(ØˆEˆEˆEð ˆJˆJøØð 	'ð 	'ð 	'Ý�s 1™vœvÑ&Ô&Ð&øøøøØð 	(ð 	(ð 	(Ý¥ A¡¤Ñ'Ô'Ð'øøøøð	(øøøð ð ð (õ ˜tœ~Ô2µFÑ;Ô;ð0à œNÔ/Ô6ð0ð ”NÔ'×-Ò-Ñ/Ô/Ð/à×!Ò!Ñ#Ô#Ð#Ð#Ð#õ
 ˜tœ~Ô2µFÑ;Ô;ð(àœÔ+Ô2ð(ð ×%Ò%Ñ'Ô'Ð'Ð'Ð'ð	(ð (ð (ð (øð ð (õ ˜tœ~Ô2µFÑ;Ô;ð0à œNÔ/Ô6ð0ð ”NÔ'×-Ò-Ñ/Ô/Ð/à×!Ò!Ñ#Ô#Ð#Ð#õ
 ˜tœ~Ô2µFÑ;Ô;ð(àœÔ+Ô2ð(ð ×%Ò%Ñ'Ô'Ð'Ð'ð	(ð (øøøs/   Ž ”D •Aš6¶A¾AÁAÁD ÄB-G )NN)r"   r   r#   r$   r%   r&   )r=   r$   )r#   r$   r=   rB   )r=   r&   )r=   rE   )rI   rE   r=   rB   )rK   N)rL   rM   r.   rN   r=   rO   )rU   r$   r=   rM   )NNF)rL   rM   r.   rN   rh   ri   r=   rj   )r=   rB   )r=   rj   )r=   r{   )r=   r‚   )r   r   r   r6   Úpropertyr#   Úsetterr%   rI   rT   r7   rR   rt   rw   ry   rS   r€   rp   r   rn   Ú__classcell__)r<   s   @r   r!   r!      sù  ø€ € € € € ð ØFJð	'ð 'ð 'ð 'ð 'ð 'ð 'ð0 ðð ð ñ „Xðð 	„Zðð ð ñ „Zðð ð ð  ð  ñ „Xð ð ðð ð ñ „Xðð „^ð ð  ð  ñ „^ð ð
 FJðð ð ð ð ð4#ð #ð #ð #ðN Ø&*Ø#ð	+0ð +0ð +0ð +0ð +0ð^ Ø&*ð
ð 
ð 
ð 
ð 
ð ð  ð  ð  ðð ð ð ð ð1ð 1ð 1ñ „Xð1ð!ð !ð !ð !ð* ð  ð  ð  ð ð)(ð )(ð )(ñ „^ð)(ð )(ð )(ð )(ð )(r   r!   )!Ú
__future__r   r€   r~   Úloggingrq   Ú
contextlibr   Údataclassesr   Úhttp.clientr   Úior   r   Ú
exceptionsr
   r   Úresponser   Ú
util.retryr   r   r   ÚTYPE_CHECKINGÚ_base_connectionr   r   Ú	getLoggerr   Úlogr   r!   r   r   r   ú<module>rš      sz  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &à	Ôð LØKÐKÐKÐKÐKÐKÐKÐKà€gÔ˜Ñ!Ô!€ð ðð ð ð ð ñ ô ñ „ðð(ð (ð (ð (ð (Ð$4ñ (ô (ð (ð (ð (r   