????

Your IP : 3.14.141.163


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/__pycache__/web_request.cpython-311.pyc

�

IfTp��z�UddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddlm
Z
mZmZmZmZmZmZmZmZmZmZmZddlmZddlZddlmZmZmZm Z m!Z!ddl"m#Z#dd	l$m%Z%dd
l&m'Z'ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2ddl3m4Z4dd
l5m6Z6ddl7m8Z8m9Z9ddl:m;Z;m<Z<ddl=m>Z>m?Z?m@Z@mAZAmBZBddlCmDZDddlEmFZFdZGe
rddlHmIZIddlJmKZKddlLmMZMejNddd���Gd�d����ZOejPejQzdzZReeSeTd<deR�d�ZUeeSeTd<d �Vd!�Wd"�d#eXeYd$d%����zD������ZZeeSeTd&<d'Z[eeSeTd(<d)�VeZe[�*��Z\eeSeTd+<d,�VeUe\�-��Z]eeSeTd.<ej^d/��Z_eeeSeTd0<ej^e]��Z`eeeSeTd1<Gd2�d3eeSefe/��ZaGd4�d5ea��ZbdS)6�N)�SimpleCookie)�MappingProxyType)�
TYPE_CHECKING�Any�Dict�Final�Iterator�Mapping�MutableMapping�Optional�Pattern�Tuple�Union�cast)�	parse_qsl)�CIMultiDict�CIMultiDictProxy�	MultiDict�MultiDictProxy�MultiMapping)�URL�)�hdrs)�AbstractStreamWriter)
�	_SENTINEL�DEBUG�ETAG_ANY�LIST_QUOTED_ETAG_RE�
ChainMapProxy�ETag�HeadersMixin�parse_http_date�reify�sentinel)�RawRequestMessage)�HttpVersion)�BodyPartReader�MultipartReader)�EmptyStreamReader�StreamReader)�DEFAULT_JSON_DECODER�JSONDecoder�LooseHeaders�
RawHeaders�StrOrURL)�HTTPRequestEntityTooLarge)�StreamResponse)�BaseRequest�	FileField�Request)�Application)�RequestHandler)�UrlMappingMatchInfoT)�auto_attribs�frozen�slotsc�L�eZdZUeed<eed<ejed<eed<ded<dS)r3�name�filename�file�content_typezCIMultiDictProxy[str]�headersN)�__name__�
__module__�__qualname__�str�__annotations__�io�BufferedReader���J/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/web_request.pyr3r3KsK�������

�I�I�I��M�M�M�
�
��������
$�$�$�$�$�$rIr3z!#$%&'*+.^_`|~-�_TCHAR�[z]+�_TOKENz[{}]�c#�4K�|]}t|��V��dS�N)�chr)�.0�cs  rJ�	<genexpr>rTZs(����K�K��S��V�V�K�K�K�K�K�KrI)�	� �!�#��_QDTEXTz
\\[\t !-~]�_QUOTED_PAIRz"(?:{quoted_pair}|{qdtext})*")�qdtext�quoted_pair�_QUOTED_STRINGz0({token})=({token}|{quoted_string})(:\d{{1,4}})?)�token�
quoted_string�_FORWARDED_PAIRz\\([\t !-~])�_QUOTED_PAIR_REPLACE_RE�_FORWARDED_PAIR_REc��eZdZejejejejejhZ	e
jegd���zZdddddd�de
deddd	ed
ddejd
edeeeefdeedeedeeddfd�Zeeeeeeed�deeefdeeefdeeefdeeefdeeefdeeefd
eeefddfd�Zed]d���Zed^d���Z edeej!fd���Z"edefd���Z#edefd���Z$e%de
fd���Z&e%de'fd���Z(e%dejfd ���Z)d!edefd"�Z*d!ed#eddfd$�Z+d!eddfd%�Z,defd&�Z-de.efd'�Z/e%de0fd(���Z1e%de2e3eefd)ffd*���Z4e%defd+���Z5e%defd,���Z6e%de7fd-���Z8e%defd.���Z9e%deefd/���Z:e%de'fd0���Z;e%defd1���Z<e%defd2���Z=e%defd3���Z>e%d_d5���Z?e%defd6���Z@e%d_d7���ZAe%deBfd8���ZCe%deeDjDfd9���ZEe%deeDjDfd:���ZFeGd;ede.eHfd<���ZIeJd=eedee2eHd)ffd>���ZKe%dee2eHd)ffd?���ZLe%dee2eHd)ffd@���ZMe%deeDjDfdA���ZNe%de0fdB���ZOe%de3eeffdC���ZPe%deQfdD���ZRe%defdE���ZSede0fdF���ZTede0fdG���ZUe%de0fdH���ZVd`dI�ZWdeXfdJ�ZYdefdK�ZZe[dL�dMe\defdN�Z]de^fdO�Z_dadQ�Z`dbdRedSedefdT�ZadefdU�ZbdVecde0fdW�Zdde0fdX�ZedYefddfdZ�Zgd[ehddfd\�ZidS)cr2)�_message�	_protocol�_payload_writer�_payload�_headers�_method�_version�_rel_url�_post�_read_bytes�_state�_cache�_task�_client_max_size�_loop�_transport_sslcontext�_transport_peernameiN)�client_max_size�state�scheme�host�remote�message�payload�protocolr6�payload_writer�task�asyncio.Task[None]�looprvrwrxryrz�returnc��|�i}||_||_||_||_|j|_|j|_|j|_	i|_
|j}|���rB||j
d<|j
|j
d<|j|j
d<|���|_n|j|_d|_d|_||_||_||_||_|jj}
|
�J�|
�d��|_|
�d��|_|	�
|	|j
d<|
�
|
|j
d<|�||j
d<dSdS)N�urlryrx�
sslcontext�peernamerz)rerfrgrhr@ri�methodrj�versionrkrpr��is_absoluteryrx�relativerlrmrnrorqrrrs�	transport�get_extra_infortru)�selfr{r|r}r~rr�rvrwrxryrzr�r�s              rJ�__init__zBaseRequest.__init__�s\���=��E���
�!���-�����
����
��~������
�&(����k���?�?���		(�"%�D�K���"%�(�D�K���$'�J�D�K��!��L�L�N�N�D�M�M�#�K�D�M�MQ��
�,0��������
� /�����
��N�,�	��$�$�$�%.�%=�%=�l�%K�%K��"�#,�#;�#;�J�#G�#G�� ���$*�D�K��!���"&�D�K�����$*�D�K��!�!�!��rI�r��rel_urlr@rxryrzrvr�r�r@c��|jrtd���i}|tur||d<|tur&t|��}	|	|d<t	|	��|d<|turMtt
|����|d<td�|���D����|d<|j	j
di|��}
i}|tur||d<|tur||d	<|tur||d
<|tur|j}|j|
|j
|j|j|j|jf||j���d�|��S)
aClone itself with replacement some attributes.

        Creates and returns a new instance of Request object. If no parameters
        are given, an exact copy is returned. If a parameter is not passed, it
        will reuse the one from the current request object.
        z.Cannot clone request after reading its contentr�r��pathr@c3�pK�|]1\}}|�d��|�d��fV��2dS)�utf-8N)�encode)rR�k�vs   rJrTz$BaseRequest.clone.<locals>.<genexpr>�sT����'�'�;?�1�a����'�"�"�A�H�H�W�$5�$5�6�'�'�'�'�'�'rI�raw_headersrxryrz)rvrwrH)rn�RuntimeErrorr$rrDrr�tuple�itemsre�_replacerr�	__class__rhrfrgrqrsro�copy)r�r�r�r@rxryrzrv�dct�new_urlr{�kwargss            rJ�clonezBaseRequest.clone�s���"��	T��R�S�S�S� ����!�!�"�C��M��(�"�"��w�<�<�G� �C��J��g�,�,�C��K��(�"�"�-�k�'�.B�.B�C�C�C�	�N�!&�'�'�CJ�=�=�?�?�'�'�'�"�"�C�
��)�$�-�(�/�/�3�/�/������!�!�%�F�8���x���!�F�6�N���!�!�%�F�8���h�&�&�"�3�O��t�~���M��N�� ��J��J�

�,��+�"�"�$�$�

�

��

�

�
	
rIc��|jSrP)rq�r�s rJrzBaseRequest.tasks
���z�rIc��|jSrP)rfr�s rJr}zBaseRequest.protocols
���~�rIc�,�|j�dS|jjSrP)rfr�r�s rJr�zBaseRequest.transports���>�!��4��~�'�'rIc��|jSrP)rgr�s rJ�writerzBaseRequest.writers���#�#rIc��|jSrP)rrr�s rJrvzBaseRequest.client_max_sizes���$�$rIc�H�tjdtd���|jS)NzRequest.message is deprecated���
stacklevel)�warnings�warn�DeprecationWarningrer�s rJr{zBaseRequest.messages$���
�5�7I�VW�X�X�X�X��}�rIc��|jSrP)rlr�s rJr�zBaseRequest.rel_url#s
���}�rIc�H�tjdtd���|jS)Nz#request.loop property is deprecated�r�)r�r�r�rsr�s rJr�zBaseRequest.loop's.���
�1�3E�RS�	
�	
�	
�	
��z�rI�keyc��|j|SrP�ro�r�r�s  rJ�__getitem__zBaseRequest.__getitem__0s���{�3��rI�valuec��||j|<dSrPr�)r�r�r�s   rJ�__setitem__zBaseRequest.__setitem__3s�� ���C���rIc��|j|=dSrPr�r�s  rJ�__delitem__zBaseRequest.__delitem__6s���K����rIc�*�t|j��SrP)�lenror�s rJ�__len__zBaseRequest.__len__9s���4�;���rIc�*�t|j��SrP)�iterror�s rJ�__iter__zBaseRequest.__iter__<s���D�K� � � rIc��|jdkS)z5A bool indicating if the request is handled with SSL.�https)rxr�s rJ�securezBaseRequest.secureAs���{�g�%�%rI.c��g}|jj�tjd��D�]�}t|��}d}d}i}|�tj|����d|cxkr|k�rOn�Pt�
||��}|��|r|�d|��}�n|���\}}	}
|	ddkr#t�d|	dd	���}	|
r|	|
z
}	|	||���<|t|�d����z
}d
}nw||dkr1d}i}|�tj|����|dz
}n:||dkrd}|dz
}n&||dvr|dz
}n|�d|��}d|cxkr|k��I������t#|��S)
a�A tuple containing all parsed Forwarded header(s).

        Makes an effort to parse Forwarded headers as specified by RFC 7239:

        - It adds one (immutable) dictionary per Forwarded 'field-value', ie
          per proxy. The element corresponds to the data in the Forwarded
          field-value added by the first proxy encountered by the client. Each
          subsequent item corresponds to those added by later proxies.
        - It checks that every value has valid syntax in general as specified
          in section 4: either a 'token' or a 'quoted-string'.
        - It un-escapes found escape sequences.
        - It does NOT validate 'by' and 'for' contents as specified in section
          6.
        - It does NOT validate 'host' contents (Host ABNF).
        - It does NOT validate 'proto' contents for valid URI scheme names.

        Returns a tuple containing one or more immutable dicts
        rHrFN�,�"z\1r���T�;z 	)rer@�getallr�	FORWARDEDr��append�typesrrc�match�find�groupsrb�sub�lower�groupr�)r��elems�field_value�length�pos�need_separator�elemr�r<r��ports           rJ�	forwardedzBaseRequest.forwardedFs��(���=�0�7�7����K�K�%	5�%	5�K���%�%�F��C�"�N�#%�D��L�L��/��5�5�6�6�6��s�#�#�#�#�V�#�#�#�#�#�*�0�0��c�B�B���$�%�.�)�.�.�s�C�8�8���,1�L�L�N�N�)��e�T� ��8�s�?�?�$;�$?�$?��u�Q�r�T�{�$S�$S�E��*�!�T�M�E�-2��T�Z�Z�\�\�*��s�5�;�;�q�>�>�2�2�2��)-��� ��%��,�,�%*�N��D��L�L��!7��!=�!=�>�>�>��1�H�C�C� ��%��,�,�%*�N��1�H�C�C� ��%��.�.��1�H�C�C�&�*�*�3��4�4�C�?�s�#�#�#�#�V�#�#�#�#��@�U�|�|�rIc��|jrdSdS)aA string representing the scheme of the request.

        Hostname is resolved in this order:

        - overridden value by .clone(scheme=new_scheme) call.
        - type of connection to peer: HTTPS if socket is SSL, HTTP otherwise.

        'http' or 'https'.
        r��http)rtr�s rJrxzBaseRequest.scheme�s���%�	��7��6rIc��|jS)zyRead only property for getting HTTP method.

        The value is upper-cased str like 'GET', 'POST', 'PUT' etc.
        )rjr�s rJr�zBaseRequest.method�s���|�rIc��|jS)zxRead only property for getting HTTP version of request.

        Returns aiohttp.protocol.HttpVersion instance.
        )rkr�s rJr�zBaseRequest.version�s���}�rIc��|jj�tj��}|�|Stj��S)z�Hostname of the request.

        Hostname is resolved in this order:

        - overridden value by .clone(host=new_host) call.
        - HOST HTTP header
        - socket.getfqdn() value
        )rer@�getr�HOST�socket�getfqdn)r�rys  rJryzBaseRequest.host�s7���}�$�(�(���3�3�����K��~���rIc��|j�dSt|jttf��rt	|jd��St	|j��S)z�Remote IP of client initiated HTTP request.

        The IP is resolved in this order:

        - overridden value by .clone(remote=new_remote) call.
        - peername of opened socket
        Nr)ru�
isinstance�listr�rDr�s rJrzzBaseRequest.remote�sR���#�+��4��d�.��u�
�>�>�	4��t�/��2�3�3�3��4�+�,�,�,rIc�v�tj|j|j���}|�|j��S)N)rxry)r�buildrxry�joinrl)r�r�s  rJr�zBaseRequest.url�s.���i�t�{���;�;�;���x�x��
�&�&�&rIc��|jjS)z_The URL including *PATH INFO* without the host or scheme.

        E.g., ``/app/blog``
        )rlr�r�s rJr�zBaseRequest.path�s���}�!�!rIc�*�t|j��S)zXThe URL including PATH_INFO and the query string.

        E.g, /app/blog?id=10
        )rDrlr�s rJ�path_qszBaseRequest.path_qs�s���4�=�!�!�!rIc��|jjS)z�The URL including raw *PATH INFO* without the host or scheme.

        Warning, the path is unquoted and may contains non valid URL characters

        E.g., ``/my%2Fpath%7Cwith%21some%25strange%24characters``
        )rer�r�s rJ�raw_pathzBaseRequest.raw_path�s���}�!�!rI�MultiMapping[str]c�4�t|jj��S)z7A multidict with all the variables in the query string.)rrl�queryr�s rJr�zBaseRequest.query�s���d�m�1�2�2�2rIc��|jjS)z:The query string in the URL.

        E.g., id=10
        )rl�query_stringr�s rJr�zBaseRequest.query_string�s���}�)�)rIc��|jS)z4A case-insensitive multidict proxy with all headers.)rir�s rJr@zBaseRequest.headers�����}�rIc��|jjS)z$A sequence of pairs for all headers.)rer�r�s rJr�zBaseRequest.raw_headers�s���}�(�(rIc�d�t|j�tj����S)zyThe value of If-Modified-Since HTTP header, or None.

        This header is represented as a `datetime` object.
        )r"r@r�r�IF_MODIFIED_SINCEr�s rJ�if_modified_sincezBaseRequest.if_modified_since�s%���t�|�/�/��0F�G�G�H�H�HrIc�d�t|j�tj����S)z{The value of If-Unmodified-Since HTTP header, or None.

        This header is represented as a `datetime` object.
        )r"r@r�r�IF_UNMODIFIED_SINCEr�s rJ�if_unmodified_sincezBaseRequest.if_unmodified_since�s%���t�|�/�/��0H�I�I�J�J�JrI�etag_headerc#�K�|tkrtdt���V�dStj|��D]B}|�ddd��\}}}|rdStt|��|���V��CdS)z'Extract `ETag` objects from raw header.F)�is_weakr�r�r��N)rr r�finditerr��bool)rr�rr��garbages     rJ�_etag_valueszBaseRequest._etag_valuess������(�"�"�������
�
�
�
�
�
-�5�k�B�B�

�

��*/�+�+�a��A�*>�*>�'�������E�E�� ��M�M���������

�

rI�header_valuec�N�|sdSt|�|����SrP)r�r)�clsrs  rJ�_if_match_or_none_implz"BaseRequest._if_match_or_none_impls-���	��4��S�%�%�l�3�3�4�4�4rIc�p�|�|j�tj����S)zxThe value of If-Match HTTP header, or None.

        This header is represented as a `tuple` of `ETag` objects.
        )rr@r�r�IF_MATCHr�s rJ�if_matchzBaseRequest.if_match%s*���*�*�4�<�+;�+;�D�M�+J�+J�K�K�KrIc�p�|�|j�tj����S)z}The value of If-None-Match HTTP header, or None.

        This header is represented as a `tuple` of `ETag` objects.
        )rr@r�r�
IF_NONE_MATCHr�s rJ�
if_none_matchzBaseRequest.if_none_match-s+���*�*�4�<�+;�+;�D�<N�+O�+O�P�P�PrIc�d�t|j�tj����S)zpThe value of If-Range HTTP header, or None.

        This header is represented as a `datetime` object.
        )r"r@r�r�IF_RANGEr�s rJ�if_rangezBaseRequest.if_range5s$���t�|�/�/��
�>�>�?�?�?rIc��|jjS)zIs keepalive enabled by client?)re�should_closer�s rJ�
keep_alivezBaseRequest.keep_alive=s���=�-�-�-rIc��|j�tjd��}t	|��}td�|���D����S)zMReturn request cookies.

        A read-only dictionary-like object.
        rNc�$�i|]
\}}||j��SrH)r�)rRr��vals   rJ�
<dictcomp>z'BaseRequest.cookies.<locals>.<dictcomp>Js �� O� O� O�H�C���c�i� O� O� OrI)r@r�r�COOKIErrr�)r��raw�parseds   rJ�cookieszBaseRequest.cookiesBsO���l���t�{�B�/�/���c�"�"��� O� O������ O� O� O�P�P�PrIc���|j�tj��}d\}}|��	d}t	j||��d\}}n#t$rtd���wxYw|rt|��nd}|rt|��nd}|�|�|}d}|�|�|dz
}||krtd���||cxur�nntd���t||d��S)	zMThe content of Range HTTP header.

        Return a slice instance.

        )NNNz^bytes=(\d*)-(\d*)$rzrange not in acceptable formatrzstart cannot be after endz"No start or end of range specified)
rir�r�RANGE�re�findall�
IndexError�
ValueError�int�slice)r��rng�start�end�patterns     rJ�
http_rangezBaseRequest.http_rangeLs&���m����
�+�+���
��s��?�
C�0���Z���5�5�a�8�
��s�s���
C�
C�
C� �!A�B�B�B�
C����"�+�#�c�(�(�(�t�C�"'�1�C��J�J�J�T�E��}��������� �S�_��q����C�<�<�$�%@�A�A�A���#�#�#�#�#�#�#�#� �!E�F�F�F��U�C��#�#�#s� A�A(c��|jS)zReturn raw payload stream.)rhr�s rJ�contentzBaseRequest.contentpr�rIc�n�tjdtd���|j���S)�@Return True if request's HTTP BODY can be read, False otherwise.z$Deprecated, use .can_read_body #2005r�r�)r�r�r�rh�at_eofr�s rJ�has_bodyzBaseRequest.has_bodyus?��	�
�2�4F�ST�	
�	
�	
�	
��=�'�'�)�)�)�)rIc�6�|j���S)r0)rhr1r�s rJ�
can_read_bodyzBaseRequest.can_read_body}s���=�'�'�)�)�)�)rIc�8�t|j��tuS)z6Return True if request has HTTP BODY, False otherwise.)�typerhr)r�s rJ�body_existszBaseRequest.body_exists�s���D�M�"�"�*;�;�;rIc��K�|j���s:|j����d{V��|j����8dSdS)zKRelease request.

        Eat unread part of HTTP BODY if present.
        N)rhr1�readanyr�s rJ�releasezBaseRequest.release�sp����
�-�&�&�(�(�	*��-�'�'�)�)�)�)�)�)�)�)�)��-�&�&�(�(�	*�	*�	*�	*�	*rIc��FK�|j��t��}	|j����d{V��}|�|��|jr0t
|��}||jkrt|j|����|sn�ot|��|_|jS)z_Read request body if present.

        Returns bytes object with full request content.
        NT��max_size�actual_size)	rn�	bytearrayrhr9�extendrrr�r0�bytes)r��body�chunk�	body_sizes    rJ�readzBaseRequest.read�s�����
��#��;�;�D�

�"�m�3�3�5�5�5�5�5�5�5�5�����E�"�"�"��(�� #�D�	�	�I� �D�$9�9�9�7�%)�%:�	��������

� %�T�{�{�D����rIc��vK�|����d{V��}|jpd}|�|��S)z1Return BODY as text using encoding from .charset.Nr�)rE�charset�decode)r��
bytes_body�encodings   rJ�textzBaseRequest.text�sE�����9�9�;�;�&�&�&�&�&�&�
��<�*�7��� � ��*�*�*rI)�loadsrLc��PK�|����d{V��}||��S)zReturn BODY as JSON.N)rK)r�rLrBs   rJ�jsonzBaseRequest.json�s3�����Y�Y�[�[� � � � � � ���u�T�{�{�rIc��:K�t|j|j��S)z3Return async iterator to process BODY as multipart.)r(rirhr�s rJ�	multipartzBaseRequest.multipart�s�����t�}�d�m�<�<�<rI�,MultiDictProxy[Union[str, bytes, FileField]]c��K�|j�|jS|j|jvr'tt	����|_|jS|j}|dvr'tt	����|_|jSt	��}|dk�r�|����d{V��}|j}|����d{V��}|��od}|j	�
tj��}t|t���r|j�J�|j�r/t#j��}|�d����d{V��}	|	r�|�|	��}	|�|	��|t-|	��z
}d|cxkr|kr(nn%|���t1||����|�d����d{V��}	|	��|�d��|�d}t5|j|jt7t8j|��||j	��}
|�|j|
��n�|�d	�
���d{V��}|�|� d��rE|�!d�
��}|�|j|�|����n|�|j|��|t-|��z
}d|cxkr|krnn!t1||����ntEd���|����d{V��}|��ono|����d{V��}
|
rS|j#pd}|�$tK|
�&���|��d	|�����t|��|_|jS)zReturn POST parameters.N)rNz!application/x-www-form-urlencoded�multipart/form-datarSri)�sizer<zapplication/octet-streamT)rHztext/r�)�defaultz8To decode nested multipart you need to use custom reader)�keep_blank_valuesrJ)'rmrj�POST_METHODSrrr?rPrr�nextr@r�r�CONTENT_TYPEr�r'r<r=�tempfile�
TemporaryFile�
read_chunkrH�writer��closer0�seekr3rrFrG�addrE�
startswith�get_charsetr%rGr@r�rstrip)r�r?�outrPr=�fieldrT�field_ct�tmprC�ffr�rG�datas              rJ�postzBaseRequest.post�s>�����:�!��:���<�t�0�0�0�'�	���4�4�D�J��:���(��� 
�
�
�
(�	���4�4�D�J��:��7@�{�{���0�0�0�"�n�n�.�.�.�.�.�.�.�.�I��,�H�#�.�.�*�*�*�*�*�*�*�*�E��#��� �=�,�,�T�->�?�?���e�^�4�4�2� �:�1�1�1��~�'�&�4�6�6��&+�&6�&6�E�&6�&B�&B� B� B� B� B� B� B��#�	G�$)�L�L��$7�$7�E��I�I�e�,�,�,� �C��J�J�.�D� �8�2�2�2�2�d�2�2�2�2�2� #�	�	����&?�-5�4�'"�'"�'"�!"�+0�*:�*:��*:�*F�*F�$F�$F�$F�$F�$F�$F�E�$�	G��������#�+�'A�H�&�!�J�!�N� ��!2�C�8�8�$�!�M��������
�B�/�/�/�/�',�j�j��j�&=�&=� =� =� =� =� =� =��#�+�x�/B�/B�7�/K�/K�+�&+�&7�&7��&7�&H�&H�G��G�G�E�J����W�0E�0E�F�F�F�F��G�G�E�J��6�6�6���E�
�
�*���x�.�.�.�.�$�.�.�.�.�.�";�)1�t�#�#�#��/�
%�U����(�n�n�.�.�.�.�.�.�.�.��q�#��t�����$�$�$�$�$�$�D��
��,�1�'���
�
�����
�
�,�,�W�5�5�*.�!(�������$�C�(�(��
��z�rIr<rUc�Z�|j}|�|S|j}|�|S|�||��S)z"Extra info from protocol transport)rfr�r�)r�r<rUr}r�s     rJr�zBaseRequest.get_extra_infos=���>�����N��&�	����N��'�'��g�6�6�6rIc��|j�dd���d��}d�|jj|j|��S)N�ascii�backslashreplacez<{} {} {} >)r�r�rH�formatr�rArj)r��ascii_encodable_paths  rJ�__repr__zBaseRequest.__repr__sW��#�y�/�/��9K�L�L�S�S�� 
� 
���#�#��N�#�T�\�3G�
�
�	
rI�otherc�B�t|��t|��kSrP)�id)r�rrs  rJ�__eq__zBaseRequest.__eq__'s���$�x�x�2�e�9�9�$�$rIc��dS)NTrHr�s rJ�__bool__zBaseRequest.__bool__*s���trI�responsec��
K�dSrPrH)r�rxs  rJ�
_prepare_hookzBaseRequest._prepare_hook-s�����rI�excc�:�|j�|��dSrP)rh�
set_exception)r�r{s  rJ�_cancelzBaseRequest._cancel0s���
�#�#�C�(�(�(�(�(rI)r�r�)r�r6)r�r�)r�N)r�rQrP)jrArBrCr�
METH_PATCH�	METH_POST�METH_PUT�
METH_TRACE�METH_DELETErWr!�ATTRS�	frozensetr%r*r�asyncio�AbstractEventLoopr&rrrDrr�r$rrr/r-r��propertyrr}�	Transportr�r�rvr#r{rr�r�r�r�r�r�r	r�rr�rr
r�rxr�r&r�ryrzr�r�r�r�r�r�r@r.r��datetimer�r��staticmethodr r�classmethodrrrrrrr'r,r.r2r4r7r:rArErKr+r,rNr(rPrjr�rq�objectrurwr1rz�
BaseExceptionr~rHrIrJr2r2us;
������	
�����
������L�
����	
�	
�	
�"�"�
�E�> '�*.� $�"� $�7+�7+�7+�"�7+��7+�#�	7+�
-�7+�#�
7+��'�7+��7+���S�#�X��'�7+���
�7+��s�m�7+���
�7+�
�7+�7+�7+�7+�x)1�.6�2:�(0�&.�(0�19�8
�8
�8
��c�9�n�%�8
��x��*�+�	8
�
�|�Y�.�/�8
��c�9�n�%�
8
��C��N�#�8
��c�9�n�%�8
��s�I�~�.�8
�
�8
�8
�8
�8
�t�����X�������X���(�8�G�$5�6�(�(�(��X�(�
�$�,�$�$�$��X�$��%��%�%�%��X�%���*�����U���������U����g�/�����U�� �s� �s� � � � �!�s�!�3�!�4�!�!�!�!��s��t����� �� � � � �!�(�3�-�!�!�!�!�
�&��&�&�&��U�&��:�5���c��!2�C�!7�8�:�:�:��U�:�x�
��
�
�
��U�
��������U���������U��� �c� � � ��U� ��-���
�-�-�-��U�-��'�S�'�'�'��U�'��"�c�"�"�"��U�"��"��"�"�"��U�"��"�#�"�"�"��U�"��3�3�3��U�3��*�c�*�*�*��U�*������U���)�Z�)�)�)��U�)��I�8�H�,=�#>�I�I�I��U�I��K�X�h�.?�%@�K�K�K��U�K���#��(�4�.�����\��(�5�#�C�=�5�	�%��c�	�"�	#�5�5�5��[�5��L�(�5��s��#3�4�L�L�L��U�L��Q�x��d�C�i�(8�9�Q�Q�Q��U�Q��@�(�8�#4�5�@�@�@��U�@��.�D�.�.�.��U�.��Q���c��*�Q�Q�Q��U�Q��!$�E�!$�!$�!$��U�!$�F�������U���*�$�*�*�*��X�*��*�t�*�*�*��X�*��<�T�<�<�<��U�<�*�*�*�*� �E� � � � �*+�C�+�+�+�+�2F����;��#�����
=��=�=�=�=�^�^�^�^�@
7�
7�3�
7��
7��
7�
7�
7�
7�
�#�
�
�
�
�%�F�%�t�%�%�%�%��$������N��t�����)�=�)�T�)�)�)�)�)�)rIr2c�z��eZdZejedg��zZdededdf�fd�Zerde	deddf�fd	�Z
eeeeeeed
�dee	e
fdeee
fd
eee
fdee	e
fdee	e
fdee	e
fdeee
fddf�fd�Zedd���Zedd���Zedefd���Zdeddfd�Z�xZS)r4�_match_info�argsr�r�Nc�H��t��j|i|��d|_dSrP)�superr�r�)r�r�r�r�s   �rJr�zRequest.__init__8s/��������$�)�&�)�)�)�;?����rIr<rc����||jvr:tjd�|jj|��td���t���||��dS)Nz-Setting custom {}.{} attribute is discouragedr�r�)	r�r�r�ror�rAr�r��__setattr__)r�r<rr�s   �rJr�zRequest.__setattr__Csj����4�:�%�%��
�%�%+�V�D�N�,C�T�%J�%J�&� �	����
�G�G����c�*�*�*�*�*rIr�r�r�r@rxryrzrvc	���t���|||||||���}tt|��}	|j|	_|	S)Nr�)r�r�rr4r�)r�r�r�r@rxryrzrv�ret�new_retr�s          �rJr�z
Request.cloneMsW����g�g�m�m�������+��
�
���w��$�$��"�.����rIr7c��|j}|�J�|S)zResult of route resolving.)r��r��
match_infos  rJr�zRequest.match_infoes���%�
��%�%�%��rIr5c�&�|j}|�J�|jS)zApplication instance.)r��current_appr�s  rJ�appzRequest.appls!���%�
��%�%�%��%�%rIc���|j}|�J�|j}|j}|�|��}t	t|d|dz�����}t
|��S)Nr)r��appsr��indexr��reversedr)r�r��lstr��idx�sublists      rJ�config_dictzRequest.config_dictssb���%�
��%�%�%��o���h���i�i��n�n���x��I�c�A�g�I��/�/�0�0���W�%�%�%rIrxc��vK�|j}|�dS|jD]#}|j�||���d{V���$dSrP)r��_apps�on_response_prepare�send)r�rxr�r�s    rJrzzRequest._prepare_hook}sc�����%�
����F��#�	?�	?�C��)�.�.�t�X�>�>�>�>�>�>�>�>�>�>�	?�	?rI)r�r7)r�r5)rArBrCr2r�r�rr�rrDr�r$rrr/r-r&r�r#r�r�r�rr�r1rz�
__classcell__)r�s@rJr4r44s���������	�	�=�/� :� :�:�E�?�c�?�S�?�T�?�?�?�?�?�?�
�
+�	+�C�	+�c�	+�d�	+�	+�	+�	+�	+�	+�)1�.6�2:�(0�&.�(0�19�����c�9�n�%���x��*�+�	�
�|�Y�.�/���c�9�n�%�
��C��N�#���c�9�n�%���s�I�~�.��
�������0�����U���&�&�&��X�&��&�]�&�&�&��X�&�?�N�?�t�?�?�?�?�?�?�?�?rIr4)cr�r�rFr"r��stringrZr�r��http.cookiesrr�typingrrrrr	r
rrr
rrr�urllib.parser�attr�	multidictrrrrr�yarlrrNr�abcr�helpersrrrrrr r!r"r#r$�http_parserr%�http_writerr&rPr'r(�streamsr)r*�typedefsr+r,r-r.r/�web_exceptionsr0�web_responser1�__all__�web_appr5�web_protocolr6�web_urldispatcherr7�sr3�digits�
ascii_lettersrKrDrErMror�r��rangerZr[r^ra�compilerbrcr2r4rHrIrJ�<module>r�sd�����������	�	�	�	�	�	�	�	�
�
�
�
�
�
�
�
�������������%�%�%�%�%�%�"�"�"�"�"�"�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�#�"�"�"�"�"�������������������������������%�%�%�%�%�%�������������������������+�*�*�*�*�*�$�$�$�$�$�$�6�6�6�6�6�6�6�6�4�4�4�4�4�4�4�4���������������6�5�5�5�5�5�(�(�(�(�(�(�
1���7�$�$�$�$�$�$�,�,�,�,�,�,�6�6�6�6�6�6����T�$�d�3�3�3�%�%�%�%�%�%�%�4�3�%��]�V�%9�9�<N�N���c�
�N�N�N�%�&�_�_�_���c�
�$�$�$��n�n��H�H�K�K�/�%�%���d�D�8I�8I�2J�2J�J�K�K�K�K�K�����s�����)��e�C�j�(�(�(�=�D�D���E�����c�
����8�>�>�
��?����������0:�r�z�/�/J�/J���w�s�|�,�J�J�J�+5�"�*�_�*E�*E��E�'�#�,�'�E�E�E�|
)�|
)�|
)�|
)�|
)�.��c��*�L�|
)�|
)�|
)�~N?�N?�N?�N?�N?�k�N?�N?�N?�N?�N?rI