????
Your IP : 3.149.29.120
�
IfQl��H�ddlZddlZddlZddlZddlZddlZddlZddlZddl m
Z
ddlmZddl
mZddlmZmZmZmZmZmZmZmZddlmZmZddlmZmZdd lmZdd
l m!Z!ddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddlm-Z-m.Z.m/Z/dd
lm0Z0ddl1m2Z2m3Z3dZ4erddl5m6Z6ee7efZ8nejjZ8Gd�dej9��Z:Gd�de8e&��Z;Gd�de;��Z<e*fddddddej=d�dedee7dee>de?dee7dee3d e7d!e2d"e<fd#�Z@dS)$�N)�Executor)�
HTTPStatus)�SimpleCookie)�
TYPE_CHECKING�Any�Dict�Iterator�MutableMapping�Optional�Union�cast)�CIMultiDict�istr�)�hdrs�payload)�AbstractStreamWriter)�ZLibCompressor)
�ETAG_ANY�QUOTED_ETAG_RE�ETag�HeadersMixin�must_be_empty_body�parse_http_date�rfc822_formatted_time�sentinel�should_remove_content_length�validate_etag_value)�SERVER_SOFTWARE�
HttpVersion10�
HttpVersion11)�Payload)�JSONEncoder�LooseHeaders)�
ContentCoding�StreamResponse�Response�
json_response)�BaseRequestc��eZdZdZdZdZdS)r%�deflate�gzip�identityN)�__name__�
__module__�__qualname__r+r,r-���K/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/web_response.pyr%r%7s������
�G��D��H�H�Hr2r%c���eZdZdZdddd�dedeedeeddfd �Ze de
fd
���Ze dPd���Ze defd
���Z
e de
fd���Ze de
fd���Ze defd���Z dQdedeeddfd�Ze dee
fd���ZdRd�Ze defd���Ze defd���ZdQdeeddfd�Z dQdeee
efddfd�Ze dSd���Ze defd���Zddddddddd�ded ed!eed"eed#eeeefd$ed%ee
d&ee
d'eed(eeddfd)�Zddd*�ded"eed$eddfd+�Ze deef�fd,���Zej d eeddfd-���Ze def�fd.���Z!e!j d eddfd/���Z!e deef�fd0���Z"e"j d eeddfd1���Z"e dee#j#fd2���Z$e$j d eeee%e#j#efddfd3���Z$e dee&fd4���Z'e'j d eee&efddfd5���Z'e(j)fd6e*ddfd7�Z+d8eddfd9�Z,dTd<�Z-d:d;dee.fd=�Z/d:d;de.fd>�Z0dRd?�Z1dRd@�Z2dAe3ddfdB�Z4dRdC�Z5dUdAe3ddfdE�Z6defdF�Z7dGede8fdH�Z9dGed e8ddfdI�Z:dGeddfdJ�Z;defdK�Z<de=efdL�Z>defdM�Z?dNe@de
fdO�ZA�xZBS)Vr&T��N��status�reason�headersr7r8r9�returnc�F�d|_d|_d|_d|_d|_t��|_d|_d|_d|_ d|_
d|_i|_|�t|��|_nt��|_|�||��dS)NFr)�_body�_keep_alive�_chunked�_compression�_compression_forcer�_cookies�_req�_payload_writer� _eof_sent�_must_be_empty_body�_body_length�_stater�_headers�
set_status)�selfr7r8r9s r3�__init__zStreamResponse.__init__Js�����
�+/�����
�!���;?���$����
�+/�� �?C������37�� ����&(�����.9�'�.B�.B�D�M�M�'�M�M�D�M������'�'�'�'�'r2c��|jduS�N)rC�rJs r3�preparedzStreamResponse.preparedfs���#�4�/�/r2�Optional[asyncio.Task[None]]c�,�|jr|jjSdSrM)rB�taskrNs r3rRzStreamResponse.taskjs���9� ��9�>�!��4r2c��|jSrM)�_statusrNs r3r7zStreamResponse.statusq�
���|�r2c��|jSrM)r>rNs r3�chunkedzStreamResponse.chunkedu�
���}�r2c��|jSrM)r?rNs r3�compressionzStreamResponse.compressiony���� � r2c��|jSrM)�_reasonrNs r3r8zStreamResponse.reason}rUr2c��|jr
Jd���t|��|_|�- t|j��j}n#t
$rd}YnwxYw||_dS)NzGCannot change the response status code after the headers have been sent�)rO�intrTr�phrase�
ValueErrorr])rJr7r8s r3rIzStreamResponse.set_status�s��
�=�
�
�X�
�
� ��6�{�{����>�
�#�D�L�1�1�8�����
�
�
�����
��������s�A�A�Ac��|jSrM�r=rNs r3�
keep_alivezStreamResponse.keep_alive�s����r2c��d|_dS)NFrdrNs r3�force_closezStreamResponse.force_close�s�� ����r2c��|jSrM)rFrNs r3�body_lengthzStreamResponse.body_length�r[r2c�`�tjdt��|jsJ�|jjS)Nzoutput_length is deprecated)�warnings�warn�DeprecationWarningrC�buffer_sizerNs r3�
output_lengthzStreamResponse.output_length�s1���
�3�5G�H�H�H��#�#�#�#��#�/�/r2�
chunk_sizec��d|_tj|jvrt d���|�tjdt��dSdS)z,Enables automatic chunked transfer encoding.Tz>You can't enable chunked encoding when a content length is setNzChunk size is deprecated #1615)r>r�CONTENT_LENGTHrH�RuntimeErrorrkrlrm)rJrps r3�enable_chunked_encodingz&StreamResponse.enable_chunked_encoding�sX����
���$�-�/�/��S���
��!��M�:�<N�O�O�O�O�O�"�!r2�forcec��t|��tkr5|rtjntj}tjdt��n!|�t|t��s
Jd���d|_ ||_
dS)z&Enables response compression encoding.z+Using boolean for force is deprecated #3318Nz1force should one of None, bool or ContentEncodingT)�type�boolr%r+r-rkrlrm�
isinstancer?r@)rJrus r3�enable_compressionz!StreamResponse.enable_compression�s���
��;�;�$���-2�N�M�)�)�
�8N�E��M�=�?Q�
�
�
�
��
��e�]�3�3�
�
�I�
�
�3�!���"'����r2�CIMultiDict[str]c��|jSrM)rHrNs r3r9zStreamResponse.headers�rXr2c��|jSrM)rArNs r3�cookieszStreamResponse.cookies�rXr2�/)�expires�domain�max_age�path�secure�httponly�version�samesite�name�valuer�r�r�r�r�r�r�r�c��|j�|��}|�&|jdkr|j�|d��||j|<|j|}|�||d<n|�d��dkr|d=|�||d<|�t |��|d<nd|vr|d=||d<|�||d<|�||d <| �| |d
<|
�|
|d<dSdS)z�Set or update response cookie.
Sets new cookie or updates existent with new value.
Also updates only those params which are not None.
Nr_r��Thu, 01 Jan 1970 00:00:00 GMTr�zmax-ager�r�r�r�r�)rA�get�coded_value�pop�str)
rJr�r�r�r�r�r�r�r�r�r��old�cs
r3�
set_cookiezStreamResponse.set_cookie�s��&�m����%�%���?�s��"�4�4��M���d�D�)�)�)�#��
�d���M�$�����"�A�i�L�L�
�U�U�9�
�
�!@�
@�
@��)���� �A�h�K����w�<�<�A�i�L�L�
�!�^�^��)����&� ��� �A�h�K���$�A�j�M���"�A�i�L���$�A�j�M�M�M� �r2)r�r�c�r�|j�|d��|�|ddd||���dS)zBDelete cookie.
Creates new empty expired cookie.
Nr_rr�)r�r�r�r�)rAr�r�)rJr�r�r�s r3�
del_cookiezStreamResponse.del_cookie�sS��
�
���$��%�%�%�������3���
�
�
�
�
�
r2c�*��t��jSrM)�super�content_length�rJ� __class__s �r3r�zStreamResponse.content_lengths����w�w�%�%r2c���|�Ht|��}|jrtd���t|��|jt
j<dS|j�t
jd��dS)Nz<You can't set content length when chunked encoding is enable)r`r>rsr�rHrrrr��rJr�s r3r�zStreamResponse.content_lengthsp������J�J�E��}�
�"�U����25�U���D�M�$�-�.�.�.��M���d�1�4�8�8�8�8�8r2c�*��t��jSrM)r��content_typer�s �r3r�zStreamResponse.content_types����w�w�#�#r2c�d�|jt|��|_|���dSrM)r�r��
_content_type�_generate_content_type_headerr�s r3r�zStreamResponse.content_type"s1����� ��Z�Z����*�*�,�,�,�,�,r2c�*��t��jSrM)r��charsetr�s �r3r�zStreamResponse.charset(s����w�w��r2c��|j}|dkrtd���|j�J�|�|j�dd��n)t |�����|jd<|���dS)N�application/octet-streamzYSetting charset for application/octet-stream doesn't make sense, setup content_type firstr�)r�rs�
_content_dictr�r��lowerr�)rJr��ctypes r3r�zStreamResponse.charset-s����!���.�.�.��?���
��!�-�-�-��=���"�"�9�d�3�3�3�3�,/��J�J�,<�,<�,>�,>�D��y�)��*�*�,�,�,�,�,r2c�d�t|j�tj����S)zuThe value of Last-Modified HTTP header, or None.
This header is represented as a `datetime` object.
)rrHr�r�
LAST_MODIFIEDrNs r3�
last_modifiedzStreamResponse.last_modified<s%���t�}�0�0��1C�D�D�E�E�Er2c�*�|�'|j�tjd��dSt |t
tf��rMtjdtj tj|������|jtj<dSt |tj��r;tjd|�
����|jtj<dSt |t��r||jtj<dSdS)Nz%a, %d %b %Y %H:%M:%S GMT)rHr�rr�ryr`�float�time�strftime�gmtime�math�ceil�datetime�utctimetupler�r�s r3r�zStreamResponse.last_modifiedDs����=��M���d�0�$�7�7�7�7�7�
���U�|�
,�
,� 6�04�
�+�T�[���5�9I�9I�-J�-J�1�1�D�M�$�,�-�-�-���x�0�
1�
1� 6�04�
�+�U�-?�-?�-A�-A�1�1�D�M�$�,�-�-�-���s�
#�
#� 6�05�D�M�$�,�-�-�-� 6� 6r2c�0�|j�tj��}|sdS|tkrtt���St
j|��}|sdS|�dd��\}}tt|��|���S)N)r�r�)�is_weakr�)
rHr�r�ETAGrrr� fullmatch�grouprx)rJ�quoted_value�matchr�r�s r3�etagzStreamResponse.etagUs����}�(�(���3�3��� (��4�
�X�
%�
%��h�'�'�'�'��(��6�6��� ��4����Q��*�*�������M�M��
�
�
�
r2c��|�'|j�tjd��dSt |t
��r|tks%t |t��r+|jtkrt|jtj<dSt |t
��r)t|��d|�d�|jtj<dSt |t��rat |jt
��rGt|j��|j
rd|j�d�n
d|j�d�}||jtj<dStdt|���d����)N�"zW/"zUnsupported etag type: z . etag must be str, ETag or None)
rHr�rr�ryr�rrr�rr�rbrw)rJr�� hdr_values r3r�zStreamResponse.etagesV���=��M���d�i��.�.�.�.�.����$�$� ��(�):�):��u�d�#�#�*;�(-��x�(?�(?�'/�D�M�$�)�$�$�$�
��s�
#�
#� ���&�&�&�'3�5�|�|�|�D�M�$�)�$�$�$�
��t�
$�
$� ��E�K��)E�)E� ����,�,�,�05�
�U�,�e�k�,�,�,�,�CU�u�{�CU�CU�CU�I�'0�D�M�$�)�$�$�$��2�$�u�+�+�2�2�2���
r2�CONTENT_TYPEc���|j�J�|j�J�d�d�|j���D����}|r|jdz|z}n|j}||j|<dS)Nz; c3�*K�|]\}}|�d|��V��dS)�=Nr1)�.0�k�vs r3� <genexpr>z?StreamResponse._generate_content_type_header.<locals>.<genexpr>s0����M�M�$�!�Q�a�:�:�!�:�:�M�M�M�M�M�Mr2)r�r��join�itemsrH)rJr��paramsr�s r3r�z,StreamResponse._generate_content_type_headerzs����!�-�-�-��!�-�-�-����M�M�$�2D�2J�2J�2L�2L�M�M�M�M�M��� '��&��-��6�E�E��&�E�&+��
�l�#�#�#r2�codingc��K�|tjkrh|j�J�|j|jt
j<|j�|j��|j�t
j d��dSdSrM)
r%r-rCr�rHr�CONTENT_ENCODINGrz�popallrr)rJr�s r3�_do_start_compressionz$StreamResponse._do_start_compression�sx�����]�+�+�+��'�3�3�3�39�<�D�M�$�/�0�� �3�3�F�L�A�A�A�
�M� � ��!4�d�;�;�;�;�;�
,�+r2�requestr)c��,K�|jr"|�|j���d{V��dS|j�tjd�����}tD])}|j|vr|�|���d{V��dS�*dS)Nr_) r@r�r9r�r�ACCEPT_ENCODINGr�r%r�)rJr��accept_encodingr�s r3�_start_compressionz!StreamResponse._start_compression�s������"� ��,�,�T�-D�E�E�E�E�E�E�E�E�E�E�E�%�o�1�1�$�2F��K�K�Q�Q�S�S�O�'�
�
���<�?�2�2��4�4�V�<�<�<�<�<�<�<�<�<��F�F�3�
�
r2c��K�|jrdS|j�|jSt|j|j��|_|�|���d{V��SrM)rDrCr�methodr7rE�_start)rJr�s r3�preparezStreamResponse.prepare�sa�����>� ��4���+��'�'�#5�g�n�d�k�#R�#R�� ��[�[��)�)�)�)�)�)�)�)�)r2c���K�||_|jx}|_|����d{V��|�|���d{V��|����d{V��|SrM)rBrC�_prepare_headers�
_prepare_hook�_write_headers)rJr��writers r3r�zStreamResponse._start�s������� �(/�(?�?���%��#�#�%�%�%�%�%�%�%�%�%��#�#�D�)�)�)�)�)�)�)�)�)��!�!�#�#�#�#�#�#�#�#�#��
r2c��RK�|j}|�J�|j}|�J�|j}|�|j}||_|j}|j}|j���D]@}|�d���dd�}|� tj|���A|jr|�
|���d{V��|jrx|tkr't!d�|j�����|js#|���d|tj<tj|vr
|tj=nY|jrR|j|_|j�?|tkr+|js#|���d|tj<n |jsd}|jrQtj|vr't3|j|j��r
|tj=tj|vr
|tj=n |�tjd��|�tjt?����|�tj tB��tj"|vr<|r|tFkrd|tj"<dSdS|tkrd |tj"<dSdSdS)
Nr_)�headerrz@Using chunked encoding is forbidden for HTTP/{0.major}.{0.minor}rWFr�z
keep-alive�close)$rBrCr=rer�rHrA�values�output�addr�
SET_COOKIEr?r�r>r!rs�formatrE�enable_chunking�TRANSFER_ENCODINGrr�
_length_checkr��lengthrr�r7�
setdefaultr��DATEr�SERVERr�
CONNECTIONr )rJr�r�rer�r9�cookier�s r3r�zStreamResponse._prepare_headers�s������)���"�"�"��%���!�!�!��%�
��� �+�J�%����/���-���m�*�*�,�,� 0� 0�F��M�M��M�,�,�Q�R�R�0�E��K�K����/�/�/�/��� 3��)�)�'�2�2�2�2�2�2�2�2�2��=� '��-�'�'�"�3�39�6�'�/�3J�3J�����+�
<��&�&�(�(�(�2;���.�/��"�g�-�-��D�/�0��
�
� '� �/�F�M��}�$��m�+�+��3�D��.�.�0�0�0�:C��� 6�7���1�'�!&�J��#�
N��"�g�-�-�2N�����3�3�-��D�/�0��%��0�0��D�2�3�����t�0�2L�M�M�M����4�9�&;�&=�&=�>�>�>����4�;��8�8�8��?�'�)�)��
7��m�+�+�/;�G�D�O�,�,�,�,�+��m�+�+�/6�G�D�O�,�,�,�
*�)�
,�+r2c���K�|j}|�J�|j}|�J�|j}d�|d|d|j|j��}|�||j���d{V��dS)NzHTTP/{}.{} {} {}rr)rBrCr�r�rTr]�
write_headersrH)rJr�r�r��status_lines r3r�zStreamResponse._write_headers�s������)���"�"�"��%���!�!�!��/��(�/�/��A�J���
�D�L�$�,�
�
���"�"�;��
�>�>�>�>�>�>�>�>�>�>�>r2�datac��K�t|tttf��sJdt |��z���|jrt
d���|j�t
d���|j�|���d{V��dS)N�#data argument must be byte-ish (%r)z%Cannot call write() after write_eof()z$Cannot call write() before prepare()) ry�bytes� bytearray�
memoryviewrwrDrsrC�write�rJr�s r3r�zStreamResponse.write�s�������5�)�Z�0�
�
� >� >�0�4��:�:�=� >� >�
��>� H��F�G�G�G���'��E�F�F�F��"�(�(��.�.�.�.�.�.�.�.�.�.�.r2c���K�|jr
Jd���|j�
Jd���tjdtd���|j����d{V��dS)NzEOF has already been sent�Response has not been startedz2drain method is deprecated, use await resp.write()r�)�
stacklevel)rDrCrkrlrm�drainrNs r3r�zStreamResponse.drains������>�>�>�#>�>�>�!��#�/�/�1P�/�/�/��
�@���
�
�
�
�
�"�(�(�*�*�*�*�*�*�*�*�*�*�*r2r2c��BK�t|tttf��sJdt |��z���|jrdS|j�
Jd���|j�|���d{V��d|_d|_|jj |_
d|_dS)Nr�r�T)ryr�r�r�rwrDrC� write_eofrB�output_sizerFr�s r3r�zStreamResponse.write_eofs�������5�)�Z�0�
�
� >� >�0�4��:�:�=� >� >�
��>� ��F��#�/�/�1P�/�/�/��"�,�,�T�2�2�2�2�2�2�2�2�2������ � �0�<���#����r2c��|jrd}n/|jr&|j�J�|jj�d|jj�d�}nd}d|jj�d|j�d|�d�S)N�eof� znot prepared�<�>)rDrOrBr�r�r�r.r8)rJ�infos r3�__repr__zStreamResponse.__repr__sy���>� "��D�D�
�]� "��9�(�(�(��i�&�:�:����:�:�:�D�D�!�D�B�4�>�*�B�B�T�[�B�B�4�B�B�B�Br2�keyc��|j|SrM�rG�rJrs r3�__getitem__zStreamResponse.__getitem__)s���{�3��r2c��||j|<dSrMr
)rJrr�s r3�__setitem__zStreamResponse.__setitem__,s�� ���C���r2c��|j|=dSrMr
rs r3�__delitem__zStreamResponse.__delitem__/s���K����r2c�*�t|j��SrM)�lenrGrNs r3�__len__zStreamResponse.__len__2s���4�;���r2c�*�t|j��SrM)�iterrGrNs r3�__iter__zStreamResponse.__iter__5s���D�K� � � r2c�:�tt|����SrM)�hash�idrNs r3�__hash__zStreamResponse.__hash__8s���B�t�H�H�~�~�r2�otherc�
�||uSrMr1)rJrs r3�__eq__zStreamResponse.__eq__;s���u�}�r2)r:rPrM)r:N)r:r{)r�r)r:N�r2)Cr.r/r0r�r`rr�r$rK�propertyrxrOrRr7rWrZr8rIrergrirortrr%rzr9rr~r�r�r��setterr�r�r�r�r�rr�rr�rr�r�r�rr�r�r�r�r�r�r�r�rrrrrrr rr�objectr�
__classcell__�r�s@r3r&r&FsT��������M�
� $�*.�(�(�(��(���
� (�
�,�'�(�
�
(�(�(�(�8�0�$�0�0�0��X�0������X���������X���������X���!�T�!�!�!��X�!��������X��!%�������
��
� ���� � �H�T�N� � � ��X� �!�!�!�!��!�S�!�!�!��X�!��0�s�0�0�0��X�0�
P� P�(�3�-� P�4� P� P� P� P�=A�(�(��e�D�-�$7�8�9�(�
�(�(�(�(�$�����X���������X��"&� $�-1��!%�#'�!%�"&�1%�1%�1%��1%��1%�
�#��1%���
�
1%��%��S��/�*�1%��1%����1%��4�.�1%��#��1%��3�-�1%�
�1%�1%�1%�1%�h59�c�
�
�
��
�$,�S�M�
�@C�
�
�
�
�
�
�$�&���
�&�&�&�&�&��X�&��� 9�H�S�M� 9�d� 9� 9� 9��� 9��$�c�$�$�$�$�$��X�$���-�#�-�$�-�-�-���-�
���#��������X��
�^�-�X�c�]�-�t�-�-�-��^�-��F�x��(9�:�F�F�F��X�F���6��e�C���0A�3�$F�G�H�6�
�6�6�6���6� �
�h�t�n�
�
�
��X�
�
�[��(�5��s��#3�4�������[��*$(�#4�
,�
,� �
,�
�
,�
,�
,�
,�<�-�<�D�<�<�<�<�����*�]�*�x�@T�7U�*�*�*�*��M��6J�����@7�@7�@7�@7�D
?�
?�
?�
?�
/��
/�$�
/�
/�
/�
/�+�+�+�+�$�$�E�$�D�$�$�$�$� C�#�C�C�C�C� �s� �s� � � � �!�s�!�3�!�4�!�!�!�!��s��t����� �� � � � �!�(�3�-�!�!�!�!��#������F��t��������r2r&c���eZdZdddddddddd� dededeedeedeed eed
eedeedeed
df�fd�Z e
d
eeee
ffd���Zejded
dfd���Ze
d
eefd���Zejded
dfd���Ze
d
eef�fd���Zejdeed
dfd���Zdded
df�fd�
Zddd
ef�fd�Zded
df�fd�Z�xZS)r'Nr5) �bodyr7r8�textr9r�r��zlib_executor_size�
zlib_executorr%r7r8r&r9r�r�r'r(r:c ����|�|�td���|�t��}
n't|t��st|��}
n|}
|�d|vrtd���|��tj|
vr|s|rtd���n�t|t
��st
dt|��z���|�d}|�d}|dz|z|
tj<|�|��}d}n=tj|
vr|�|�td���n|�|�|d|zz
}||
tj<t���
|||
� ��|�||_n||_d|_
||_| |_dS)
Nz&body and text are not allowed togetherr�z,charset must not be in content_type argumentzPpassing both Content-Type header and content_type or charset params is forbidden�text argument must be str (%r)�
text/plain�utf-8z
; charset=r6)rbrryrr�r�� TypeErrorrw�encoder�rKr&r%�_compressed_body�_zlib_executor_size�_zlib_executor)rJr%r7r8r&r9r�r�r'r(�real_headersr�s �r3rKzResponse.__init__@s������� 0��E�F�F�F��?�-8�]�]�L�L��G�[�1�1� #�&�w�/�/�L�L�"�L��#� �\�(A�(A��N�O�O�O���� �L�0�0���7��$�'�����"�$��,�,�S�#�$D�t�D�z�z�$Q�R�R�R��'�#/�L��?�%�G�2>��2M�PW�2W��T�.�/��{�{�7�+�+������ �L�0�0��+�w�/B�$�'����0C� �+��*�$��w�(>�>��6B�L��!2�3�
������v�|��L�L�L����D�I�I��D�I�15���#5�� �+����r2c��|jSrM)r<rNs r3r%z
Response.body�s
���z�r2c��|�d|_d|_n�t|ttf��r||_d|_n� t
j�|��x|_}n2#t
j$r tdt|��z���wxYwd|_|j}tj
|vr|j|tj
<|jr(|j���D]\}}||vr|||<�d|_dS)NFzUnsupported body type %rT)r<�
_body_payloadryr�r�r�PAYLOAD_REGISTRYr��LookupErrorrbrwrHrr�r�r9r�r/)rJr%r9rr�s r3r%z
Response.body�s$���<�*.�D�J�',�D���
��u�i�0�
1�
1� -��D�J�!&�D���
J�$+�$<�$@�$@��$F�$F�F��
�T�T���&�
J�
J�
J� �!;�d�4�j�j�!H�I�I�I�
J����"&�D���m�G�� ��/�/�-1�->���)�*��|�
-�$(�L�$6�$6�$8�$8�-�-�L�S�%��'�)�)�',����� $����s�&A%�%/Bc�V�|j�dS|j�|jpd��S)Nr,)r<�decoder�rNs r3r&z
Response.text�s,���:���4��z� � ���!8��9�9�9r2c��|�/t|t��sJdt|��z���|jdkrd|_|j�d|_|�|j��|_d|_d|_dS)Nr*r�r+r,F) ryr�rwr�r�r.r<r5r/)rJr&s r3r&z
Response.text�s����|�z��#�
�
�|�|�+�d�4�j�j�8��|�
��� :�:�:� ,�D���<��"�D�L��[�[���.�.��
�"��� $����r2c����|jrdStj|jvrt ��jS|j�t|j��S|jrdS|j �t|j ��SdS)Nr)
r>rrrrHr�r�r/rr5r<r�s �r3r�zResponse.content_length�st����=� ��4���$�-�/�/��7�7�)�)�� �,��t�,�-�-�-�
�
� ��4�
�Z�
#��t�z�?�?�"��1r2r�c� �td���)Nz#Content length is set automatically)rsr�s r3r�zResponse.content_length�s���@�A�A�Ar2r2r�c��p�K�|jrdS|j�|j}n|j}|r
Jd|�����|j�J�|j�J�|��|jr(t
������d{V��dS|jrXtt|��}|j|j���d{V��t
������d{V��dSt
���tt|�����d{V��dSt
������d{V��dS)Nzdata arg is not supported, got )
rDr/r<rBrCrEr�r�r5r
r"r�r�)rJr�r%rr�s �r3r�zResponse.write_eof�s������>� ��F�� �(�48�J�D�D��(�D��C�C�C�4�C�C�C�C�x��y�$�$�$��#�/�/�/����'�
;��g�g�'�'�)�)�)�)�)�)�)�)�)�)�)��#�
;��w��-�-��#�g�m�D�$8�9�9�9�9�9�9�9�9�9��g�g�'�'�)�)�)�)�)�)�)�)�)�)�)��g�g�'�'��U�D�(9�(9�:�:�:�:�:�:�:�:�:�:�:��'�'�#�#�%�%�%�%�%�%�%�%�%�%�%r2r�r)c���K�t|j|j��r&tj|jvr|jtj=n�|js�tj|jvr�|jrCtt|j
��j}|�!t|��|jtj<nv|j
rt|j
��nd}|dks2|jdkrH|j���tjkr!t|��|jtj<t!���|���d{V��S)N�0i0)rr�r7rrrrHr>r5r
r"r<�sizer�r�upper� METH_HEADr�r�)rJr�r@�body_lenr�s �r3r�zResponse._start�s�����'�����D�D� G��"�d�m�3�3��M�$�"5�6���� G�4�#6�d�m�#K�#K��!�
G��G�T�Z�0�0�5���#�9<�T���D�M�$�"5�6��.2�j�A�3�t�z�?�?�?�c���s�?�?��K�3�&�&�7�>�+?�+?�+A�+A�T�^�+S�+S�9<�X���D�M�$�"5�6��W�W�^�^�G�,�,�,�,�,�,�,�,�,r2r�c���K�|js|jr't���|���d{V��S|tjk�rt
t|j��|j |j
���}|j�J�|j �Bt|j��dkr*tjdt|j���d���|�|j���d{V��|���z|_|j�J�|j|jt&j<tt|j����|jt&j<dSdS)N)�encoding�max_sync_chunk_size�executoriz2Synchronous compression of large response bodies (z� bytes) might block the async event loop. Consider providing a custom value to zlib_executor_size/zlib_executor response properties or disabling compression on it.)r5r>r�r�r%r-rr�r�r0r1r<rrkrl�compress�flushr/rHrr�rr)rJr��
compressorr�s �r3r�zResponse._do_start_compression�sv������� ?��� ?����6�6�v�>�>�>�>�>�>�>�>�>��]�+�+�+�(��V�\�*�*�$(�$<��,����J�
�:�)�)�)��'�/�C��
�O�O�k�4Q�4Q��
�X��D�J���X�X�X����!�)�)�$�*�5�5�5�5�5�5�5�5�
�8H�8H�8J�8J�J�
�!��(�4�4�4�39�<�D�M�$�/�0�14�S��9N�5O�5O�1P�1P�D�M�$�-�.�.�.�-,�+r2r)r.r/r0rr`rr�r$rrKrrr�r"r%r r&r�r�rr�r%r�r"r#s@r3r'r'?s���������� $�"�*.�&*�!%�,0�,0�D,�D,�D,��D,�� D,�
��
�D,��s�m�
D,��,�'�D,��s�m�D,��#��D,�%�S�M�D,� ��)�D,�
�D,�D,�D,�D,�D,�D,�L��h�u�U�G�^�4�5�����X��
�[�%��%�4�%�%�%��[�%�:�:�h�s�m�:�:�:��X�:�
�[�%��%��%�%�%��[�%�����
�������X��$��B�H�S�M�B�d�B�B�B���B�&�&�E�&�D�&�&�&�&�&�&�,-�M�-�6J�-�-�-�-�-�-�&Q�-�Q�D�Q�Q�Q�Q�Q�Q�Q�Q�Q�Qr2r'r5zapplication/json)r&r%r7r8r9r��dumpsr�r&r%r7r8r9r�rKr:c�z�|tur|s|rtd���||��}t||||||���S)Nz3only one of data, text, or body should be specified)r&r%r7r8r9r�)rrbr')r�r&r%r7r8r9r�rKs r3r(r(sc���8���� �4� ��R�S�S�S��5��;�;�D��
�
����!�
���r2)A�asyncio�collections.abc�collectionsr��enum�jsonr�r�rk�concurrent.futuresr�httpr�http.cookiesr�typingrrrr r
rrr
� multidictrrr_rr�abcr�compression_utilsr�helpersrrrrrrrrrrrr r!r"�typedefsr#r$�__all__�web_requestr)r�� BaseClass�Enumr%r&r'rKr�r`r(r1r2r3�<module>r_s�����������������������������������'�'�'�'�'�'�������%�%�%�%�%�%� � � � � � � � � � � � � � � � � � � � �(�'�'�'�'�'�'�'���������%�%�%�%�%�%�-�-�-�-�-�-�������������������������@�?�?�?�?�?�?�?�?�?�������/�/�/�/�/�/�/�/�
J���/�(�(�(�(�(�(��s�C�x�(�I�I���.�I������D�I����v�v�v�v�v�Y��v�v�v�rXQ�XQ�XQ�XQ�XQ�~�XQ�XQ�XQ�x��� �� �&*�*������
���3�-���5�/� �
��
�S�M�
��l�
#������������r2