Sindbad~EG File Manager
�
%Μg�{��z�ddlZddlZddlZ ddlZddlmZddlmZddlmZddlm Z ddl
mZe�ejejfZGd�d ej�ZGd
�dej�Zd�Zd
�ZGd�de j(e j*�ZGd�dej.�Zy#e$rdZY��wxYw)�N�)� constants)�
exceptions)� protocols)�
transports)�loggerc� �eZdZdZdZdZdZdZy)�SSLProtocolState� UNWRAPPED�DO_HANDSHAKE�WRAPPED�FLUSHING�SHUTDOWNN)�__name__�
__module__�__qualname__rrr
rr���-/usr/local/lib/python3.12/asyncio/sslproto.pyr
r
s���I�!�L��G��H��Hrr
c��eZdZdZdZdZdZy)�AppProtocolState�
STATE_INIT�STATE_CON_MADE� STATE_EOF�STATE_CON_LOSTN)rrrrrrrrrrrrs���J�%�N��I�%�Nrrc�Z�|rtd��tj�}|sd|_|S)Nz(Server side SSL needs a valid SSLContextF)�
ValueError�ssl�create_default_context�check_hostname)�server_side�server_hostname�
sslcontexts r�_create_transport_contextr$/s2����C�D�D��+�+�-�J��$)�
�!��rc��|�|�|dz}n
|}d|z}n|}|�|dz}n|}||cxk\rdk\sntd|�d|�d���||fS)Ni�rzhigh (z) must be >= low (z) must be >= 0)r)�high�low�kb�hi�los r�add_flowcontrol_defaultsr,=sh���|��;��d��B��B��R��B�
��
�{�
�1�W��
��
��=�q�=���b�"�#� #��r�6�Mrc���eZdZdZej
jZd�Zdd�Z d�Z
d�Zd�Zd�Z
efd �Zd
�Zd�Zd�Zdd
�Zd�Zd�Zdd�Zd�Zd�Zed��Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!y)�_SSLProtocolTransportTc�.�||_||_d|_y�NF)�_loop�
_ssl_protocol�_closed)�self�loop�ssl_protocols r�__init__z_SSLProtocolTransport.__init__Xs����
�)�����rNc�<� |jj||�S�N)r2�_get_extra_info�r4�name�defaults r�get_extra_infoz$_SSLProtocolTransport.get_extra_info]s��1��!�!�1�1�$��@�@rc�:�|jj|�yr9)r2�_set_app_protocol)r4�protocols r�set_protocolz"_SSLProtocolTransport.set_protocolas�����,�,�X�6rc�.�|jjSr9)r2�
_app_protocol�r4s r�get_protocolz"_SSLProtocolTransport.get_protocolds���!�!�/�/�/rc��|jSr9)r3rEs r�
is_closingz _SSLProtocolTransport.is_closinggs���|�|�rc�p� |js"d|_|jj�yd|_y�NT)r3r2�_start_shutdownrEs r�closez_SSLProtocolTransport.closejs1�� ��|�|��D�L����.�.�0�!%�D�rc�X�|jsd|_|jdt�yy)NTz9unclosed transport <asyncio._SSLProtocolTransport object>)r3�warn�ResourceWarning)r4� _warningss r�__del__z_SSLProtocolTransport.__del__xs)���|�|��D�L��N�N��*�
,�rc�0�|jjSr9)r2�_app_reading_pausedrEs r�
is_readingz _SSLProtocolTransport.is_readings���%�%�9�9�9�9rc�:� |jj�yr9)r2�_pause_readingrEs r�
pause_readingz#_SSLProtocolTransport.pause_reading�s�� �
���)�)�+rc�:� |jj�yr9)r2�_resume_readingrEs r�resume_readingz$_SSLProtocolTransport.resume_reading�s�� �
���*�*�,rc�r� |jj||�|jj�yr9)r2�_set_write_buffer_limits�_control_app_writing�r4r'r(s r�set_write_buffer_limitsz-_SSLProtocolTransport.set_write_buffer_limits�s1�� �$
���3�3�D�#�>����/�/�1rc�Z�|jj|jjfSr9)r2�_outgoing_low_water�_outgoing_high_waterrEs r�get_write_buffer_limitsz-_SSLProtocolTransport.get_write_buffer_limits��*���"�"�6�6��"�"�7�7�9� 9rc�8� |jj�Sr9)r2�_get_write_buffer_sizerEs r�get_write_buffer_sizez+_SSLProtocolTransport.get_write_buffer_size�s��;��!�!�8�8�:�:rc�r� |jj||�|jj�yr9)r2�_set_read_buffer_limits�_control_ssl_readingr^s r�set_read_buffer_limitsz,_SSLProtocolTransport.set_read_buffer_limits�s1�� �$
���2�2�4��=����/�/�1rc�Z�|jj|jjfSr9)r2�_incoming_low_water�_incoming_high_waterrEs r�get_read_buffer_limitsz,_SSLProtocolTransport.get_read_buffer_limits�rdrc�8� |jj�Sr9)r2�_get_read_buffer_sizerEs r�get_read_buffer_sizez*_SSLProtocolTransport.get_read_buffer_size�s��9��!�!�7�7�9�9rc�.�|jjSr9)r2�_app_writing_pausedrEs r�_protocol_pausedz&_SSLProtocolTransport._protocol_paused�s���!�!�5�5�5rc�� t|tttf�s!t dt|�j����|sy|jj|f�y)Nz+data: expecting a bytes-like instance, got ) �
isinstance�bytes� bytearray�
memoryview� TypeError�typerr2�_write_appdata�r4�datas r�writez_SSLProtocolTransport.write�s]�� �
�$�� �:� >�?��#�#'��:�#6�#6�"7�9�:�
:������)�)�4�'�2rc�<� |jj|�yr9)r2r})r4�list_of_datas r�
writelinesz _SSLProtocolTransport.writelines�s�� �
���)�)�,�7rc�� t�r9)�NotImplementedErrorrEs r� write_eofz_SSLProtocolTransport.write_eof�s�� �"�!rc�� yr0rrEs r�
can_write_eofz#_SSLProtocolTransport.can_write_eof�s��O�rc�(� |jd�yr9)�_force_closerEs r�abortz_SSLProtocolTransport.abort�s�� �
���$�rc�b�d|_|j�|jj|�yyrJ)r3r2�_abort�r4�excs rr�z"_SSLProtocolTransport._force_close�s.��������)����%�%�c�*�*rc��|jjj|�|jxjt |�z
c_yr9)r2�_write_backlog�append�_write_buffer_size�lenr~s r�_test__append_write_backlogz1_SSLProtocolTransport._test__append_write_backlogs7�����)�)�0�0��6����-�-��T��:�-rr9�NN)"rrr�_start_tls_compatibler�
_SendfileMode�FALLBACK�_sendfile_compatibler7r>rBrFrHrL�warningsrQrTrWrZr_rcrgrkrorr�propertyrur�r�r�r�r�r�r�rrrr.r.Rs���!��$�2�2�;�;���
A�7�0��&�!)�,�:�,�-�2�,9�;�2�,9�:��6��6�3�8�"�� �+�
;rr.c��eZdZdZdZdZdZ d*d�Zd�Zd+d�Z d�Z
d�Zd�Zd �Z
d
�Zd�Zd+d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d,d!�Z%d"�Z&d#�Z'd$�Z(d,d%�Z)d&�Z*d'�Z+d(�Z,d-d)�Z-y).�SSLProtocoliNc
���t�td��t|j�|_t|j�|_|�tj}n|dkrtd|����| �tj} n| dkrtd| ����|st||�}||_|r
|s||_
nd|_
||_t|��|_t#j$�|_d|_||_||_|j/|�d|_d|_d|_||_| |_tj:�|_tj:�|_t@jB|_"d|_#|rtHjJ|_&ntHjN|_&|jjQ|j<|j>|j|j��|_)d|_*d|_+d|_,d|_-d|_.|j_�d|_0d|_1d|_2d|_3|ji�|jk�y)Nzstdlib ssl module not availablerz7ssl_handshake_timeout should be a positive number, got z6ssl_shutdown_timeout should be a positive number, got )r#F)r!r")6r�RuntimeErrorry�max_size�_ssl_bufferrz�_ssl_buffer_viewr�SSL_HANDSHAKE_TIMEOUTr�SSL_SHUTDOWN_TIMEOUTr$�_server_side�_server_hostname�_sslcontext�dict�_extra�collections�dequer�r��_waiterr1r@�_app_transport�_app_transport_created�
_transport�_ssl_handshake_timeout�_ssl_shutdown_timeout� MemoryBIO� _incoming� _outgoingr
r�_state�
_conn_lostrr�
_app_stater�wrap_bio�_sslobj�_ssl_writing_pausedrS�_ssl_reading_pausedrnrmri�
_eof_receivedrtrbrar\�_get_app_transport)
r4r5�app_protocolr#�waiterr!r"�call_connection_made�ssl_handshake_timeout�ssl_shutdown_timeouts
rr7zSSLProtocol.__init__sE��
�;��@�A�A�$�T�]�]�3��� *�4�+;�+;� <��� �(�$-�$C�$C�!�
"�a�
'���,�-�/�0�
0� �'�#,�#A�#A� �
!�Q�
&���+�,�.�/�
/��2��_�.�J�(����;�$3�D�!�$(�D�!�%����j�1���*�/�/�1���"#��������
����|�,�"���&+��#����&;��#�%9��"�������������&�0�0�������.�9�9�D�O�.�=�=�D�O��'�'�0�0��N�N�D�N�N��)�)� �1�1�1�3���$)�� �#(�� �#(�� �$%��!�#$�� ��$�$�&�"���#(�� �$%��!�#$�� ��%�%�'����!rc��||_t|d�rDt|tj�r*|j
|_|j|_d|_ yd|_ y)N�
get_bufferTF)
rD�hasattrrwr�BufferedProtocolr��_app_protocol_get_buffer�buffer_updated�_app_protocol_buffer_updated�_app_protocol_is_buffer)r4r�s rr@zSSLProtocol._set_app_protocolasP��)����L�,�/��<��)C�)C�D�,8�,C�,C�D�)�0<�0K�0K�D�-�+/�D�(�+0�D�(rc���|j�y|jj�s@|�#|jj|�d|_y|jjd�d|_yr9)r�� cancelled�
set_exception�
set_resultr�s r�_wakeup_waiterzSSLProtocol._wakeup_waiterlsZ���<�<����|�|�%�%�'������*�*�3�/�������'�'��-���rc��|j�9|jrtd��t|j|�|_d|_|jS)Nz$Creating _SSLProtocolTransport twiceT)r�r�r�r.r1rEs rr�zSSLProtocol._get_app_transportvsJ�����&��*�*�"�#I�J�J�"7��
�
�D�"I�D��*.�D�'��"�"�"rc�4� ||_|j�yr9)r��_start_handshake)r4� transports r�connection_madezSSLProtocol.connection_made~s�� �$������rc�J� |jj�|jj�|xjdz
c_|j
�d|j
_|jtjk7r|jtjk(s|jtjk(rEtj|_
|jj!|j"j$|�|j'tj(�d|_d|_d|_|j-|�|j.r!|j.j1�d|_|j2r"|j2j1�d|_yy)NrT)r��clearr��readr�r�r3r�r
rr�rrrrr1� call_soonrD�connection_lost�
_set_staterr�r��_shutdown_timeout_handle�cancel�_handshake_timeout_handler�s rr�zSSLProtocol.connection_lost�s>�� �
���!�!�#����������1������*�*.�D���'��;�;�*�7�7�7����#3�#B�#B�B����#3�#=�#=�=�"2�"A�"A����
�
�$�$�T�%7�%7�%G�%G��M����(�2�2�3����"���!������C� ��(�(��)�)�0�0�2�,0�D�)��)�)��*�*�1�1�3�-1�D�*�*rc���|}|dks||jkDr|j}t|j�|kr*t|�|_t |j�|_|j
S�Nr)r�r�r�ryrzr�)r4�n�wants rr�zSSLProtocol.get_buffer�s`�����1�9��t�}�}�,��=�=�D��t��� �4�'�(���D��$.�t�/?�/?�$@�D�!��$�$�$rc���|jj|jd|�|jtj
k(r|j
�y|jtjk(r|j�y|jtjk(r|j�y|jtjk(r|j�yyr9)
r�r�r�r�r
r�
_do_handshaker
�_do_readr� _do_flushr�_do_shutdown)r4�nbytess rr�zSSLProtocol.buffer_updated�s��������T�2�2�7�F�;�<��;�;�*�7�7�7���� �
�[�[�,�4�4�
4��M�M�O�
�[�[�,�5�5�
5��N�N��
�[�[�,�5�5�
5�����6rc�� d|_ |jj�rtjd|�|j
tjk(r|jt�y|j
tjk(r=|jtj�|jry|j�y|j
tjk(r@|j�|jtj �|j#�y|j
tj k(r|j#�yy#t$$r|j&j)��wxYw)NTz%r received EOF)r�r1� get_debugr�debugr�r
r�_on_handshake_complete�ConnectionResetErrorr
r�rrSr�� _do_writerr�� Exceptionr�rLrEs r�eof_receivedzSSLProtocol.eof_received�s�� �"��� ��z�z�#�#�%����.��5��{�{�.�;�;�;��+�+�,@�A���� 0� 8� 8�8���� 0� 9� 9�:��+�+���N�N�$���� 0� 9� 9�9���� ���� 0� 9� 9�:��!�!�#���� 0� 9� 9�9��!�!�#�:��� ��O�O�!�!�#�� �s&�A"E�-AE�6E�AE�$-E�%E8c��||jvr|j|S|j�|jj||�S|Sr9)r�r�r>r;s rr:zSSLProtocol._get_extra_info�sC���4�;�;���;�;�t�$�$�
�_�_�
(��?�?�1�1�$��@�@��Nrc�&�d}|tjk(rd}n�|jtjk(r|tjk(rd}n�|jtjk(r|tjk(rd}ne|jtjk(r|tj
k(rd}n2|jtj
k(r|tjk(rd}|r||_ytdj|j|���)NFTz!cannot switch state from {} to {}) r
rr�rr
rrr��format)r4� new_state�alloweds rr�zSSLProtocol._set_state�s������(�2�2�2��G�
�K�K�+�5�5�5��)�6�6�6��G�
�K�K�+�8�8�8��)�1�1�1��G�
�K�K�+�3�3�3��)�2�2�2��G�
�K�K�+�4�4�4��)�2�2�2��G��#�D�K��3�:�:��K�K��,�-�
-rc�n���jj�r6tjd���jj ��_nd�_�j
tj��jj�j�fd���_�j�y)Nz%r starts SSL handshakec�$���j�Sr9)�_check_handshake_timeoutrEs�r�<lambda>z.SSLProtocol._start_handshake.<locals>.<lambda>!s���$�*G�*G�*Ir)
r1r�rr��time�_handshake_start_timer�r
r�
call_laterr�r�r�rEs`rr�zSSLProtocol._start_handshakes�����:�:���!��L�L�2�D�9�)-�����):�D�&�)-�D�&����(�5�5�6�
�J�J�!�!�$�"=�"=�"I�
K�
�&�
���rc��|jtjk(r+d|j�d�}|j t|��yy)Nz$SSL handshake is taking longer than z! seconds: aborting the connection)r�r
rr��_fatal_error�ConnectionAbortedError)r4�msgs rr�z$SSLProtocol._check_handshake_timeout%sN���;�;�*�7�7�7�6��.�.�/�0*�+�
�
���4�S�9�:�
8rc��� |jj�|jd�y#t$r|j �Yyt
j$r}|j|�Yd}~yd}~wwxYwr9)r��do_handshaker��SSLAgainErrors�_process_outgoingr�SSLErrorr�s rr�zSSLProtocol._do_handshake.sb�� .��L�L�%�%�'�
�'�'��-��� %��"�"�$��|�|� -��'�'��,�,�� -�s�.�A6� A6�A1�1A6c���|j�!|jj�d|_|j} |� |jtj
�n|�|j
�}|jj�rA|jj!�|j"z
}t%j&d||dz�|j(j+||j-�|j/�|��|j0t2j4k(r>t2j6|_|j8j;|j=��|j�|j?�y#t$rm}d}|jtj�t|tj�rd}nd}|j||�|j|�Yd}~yd}~wwxYw)Nz1SSL handshake failed on verifying the certificatezSSL handshake failedz%r: SSL handshake took %.1f msg@�@)�peercert�cipher�compression�
ssl_object) r�r�r�r�r
r
�getpeercertr�rrwr�CertificateErrorr�r�r1r�r�r�rr�r��updaterr r�rrrrDr�r�r�)r4�
handshake_exc�sslobjrr�r�dts rr�z"SSLProtocol._on_handshake_complete8s����)�)�5��*�*�1�1�3�-1�D�*����� ��$���� 0� 8� 8�9�#�#��)�)�+�H��:�:���!������"�T�%?�%?�?�B��L�L�9�4��c��J�
�����H�"(�-�-�/�'-�'9�'9�';�&,� � .��?�?�.�9�9�9�.�=�=�D�O����.�.�t�/F�/F�/H�I������
�
���1� � �M��O�O�,�6�6�7��#�s�3�3�4�I��,�����c�3�'�����$��� �s�4F� G7�
A#G2�2G7c�����jtjtjtjfvry�j
�d�j
_�jtjk(r�jd�y�jtj��jj�j�fd���_
�j�y)NTc�$���j�Sr9)�_check_shutdown_timeoutrEs�rr�z-SSLProtocol._start_shutdown.<locals>.<lambda>rs����4�4�6r)r�r
rrrr�r3rr�r�r1r�r�r�r�rEs`rrKzSSLProtocol._start_shutdownas�����K�K� �)�)� �)�)� �*�*��
�
����*�*.�D���'��;�;�*�7�7�7��K�K����O�O�,�5�5�6�,0�J�J�,A�,A��*�*�6�-�D�)�
�N�N�rc��|jtjtjfvr/|jjt
jd��yy)NzSSL shutdown timed out)r�r
rrr�r�r�TimeoutErrorrEs rrz#SSLProtocol._check_shutdown_timeoutvsN���K�K� �)�)� �)�)��
�
�O�O�(�(��'�'�(@�A�
C�
rc��|j�|jtj�|j �yr9)r�r�r
rr�rEs rr�zSSLProtocol._do_flush�s*���
�
�����(�1�1�2����rc�J� |js|jj�|j�|j �|jd�y#t$r|j�Yytj$r}|j|�Yd}~yd}~wwxYwr9) r�r��unwrapr�_call_eof_received�_on_shutdown_completerrrr�s rr�zSSLProtocol._do_shutdown�s���
-��%�%����#�#�%�
�"�"�$��#�#�%��&�&�t�,��� %��"�"�$��|�|� ,��&�&�s�+�+�� ,�s�&A�B"�5B"�B�B"c���|j�!|jj�d|_|r|j|�y|jj |j
j�yr9)r�r�r�r1r�r�rL)r4�shutdown_excs rrz!SSLProtocol._on_shutdown_complete�sU���(�(�4��)�)�0�0�2�,0�D�)�����l�+��J�J� � ����!6�!6�7rc��|jtj�|j�|jj |�yyr9)r�r
rr�r�r�s rr�zSSLProtocol._abort�s6�����(�2�2�3��?�?�&��O�O�(�(��-�'rc�8�|jtjtjtjfvrH|j
tjk\rtjd�|xj
dz
c_y|D];}|jj|�|xjt|�z
c_�= |jtjk(r|j�yy#t $r}|j#|d�Yd}~yd}~wwxYw)NzSSL connection is closedr�Fatal error on SSL protocol)r�r
rrrr�r�!LOG_THRESHOLD_FOR_CONNLOST_WRITESr�warningr�r�r�r�r
r�r�r�)r4r�r�exs rr}zSSLProtocol._write_appdata�s����K�K� �)�)� �)�)� �*�*��
����)�"M�"M�M����9�:��O�O�q� �O�� �D����&�&�t�,��#�#�s�4�y�0�#�!� A��{�{�.�6�6�6���� �7��� A����b�"?�@�@�� A�s�-C4�4 D�=D�Dc�~� |jr�|jd}|jj|�}t|�}||kr(||d|jd<|xj|zc_n"|jd=|xj|zc_|jr��|j
�y#t
$rY�wxYwr�)r�r�r�r�r�rr)r4r�count�data_lens rr�zSSLProtocol._do_write�s��� ��%�%��*�*�1�-�����*�*�4�0���t�9���8�#�-1�%�&�\�D�'�'��*��+�+�u�4�+��+�+�A�.��+�+�x�7�+��%�%�
��� ��� �� �s�BB0�0 B<�;B<c��|js@|jj�}t|�r|jj|�|j
�yr9)r�r�r�r�r�r�r]r~s rrzSSLProtocol._process_outgoing�sB���'�'��>�>�&�&�(�D��4�y����%�%�d�+��!�!�#rc��|jtjtjfvry |jsZ|j
r|j
�n|j�|jr|j�n|j�|j�y#t$r}|j|d�Yd}~yd}~wwxYw)Nr)r�r
r
rrSr��_do_read__buffered�_do_read__copiedr�r�rrjr�r�)r4r"s rr�zSSLProtocol._do_read�s����K�K� �(�(� �)�)� �
�
� A��+�+��/�/��+�+�-��)�)�+��&�&��N�N�$��*�*�,��%�%�'��� A����b�"?�@�@�� A�s�A6B&�& C�/C�Cc����d}d}�j�j��}t|�} �jj ||�}|dkDrY|}||kr4�jj ||z
||d�}|dkDr||z
}nn$||kr�4�j
j
�fd��|dkDr�j|�|s!�j��j�yy#t$rY�EwxYw)Nrrc�$���j�Sr9)r�rEs�rr�z0SSLProtocol._do_read__buffered.<locals>.<lambda>�s������r)r�rqr�r�r�r1r�rr�rrK)r4�offsetr$�buf�wantss` rr(zSSLProtocol._do_read__buffered�s���������+�+�D�,F�,F�,H�I���C��� ��L�L�%�%�e�S�1�E��q�y����u�n� �L�L�-�-�e�f�n�c�&�'�l�K�E��q�y��%�����u�n��J�J�(�(�)@�A��A�:��-�-�f�5���#�#�%�� � �"��� � �� �s�AC%�
C%�% C1�0C1c��d}d}d} |jj|j�}|sn$|rd}d}|}n|rd}|g}nj|��L |r|j
j
�n,|s*|j
j
dj��|s!|j�|j�yy#t$rY�ywxYw)N�1TFr)
r�r�r�r�rrD�
data_received�joinrrK)r4�chunk�zero�one�firstrs rr)zSSLProtocol._do_read__copieds��������� �����)�)�$�-�-�8����� �D��C�!�E���C�!�5�>�D��K�K��&�������,�,�U�3�����,�,�S�X�X�d�^�<���#�#�%�� � �"���
� �� �s�A
C� C�Cc�>� |jtjk(rHtj|_|jj�}|rt
jd�yyy#ttf$r�t$r}|j|d�Yd}~yd}~wwxYw)Nz?returning true from eof_received() has no effect when using sslzError calling eof_received())r�rrrrDr�rr!�KeyboardInterrupt�
SystemExit�
BaseExceptionr�)r4� keep_openr"s rrzSSLProtocol._call_eof_received%s���
B����"2�"A�"A�A�"2�"<�"<��� �.�.�;�;�=� ���N�N�$B�C��B��"�:�.� ��� B����b�"@�A�A�� B�s�A#A(�(B�B�Bc�Z�|j�}||jk\r/|js#d|_ |jj �y||jkr0|jr#d|_ |jj�yyy#t
tf$r�t$r4}|jjd||j|d��Yd}~yd}~wwxYw#t
tf$r�t$r4}|jjd||j|d��Yd}~yd}~wwxYw)NTzprotocol.pause_writing() failed��message� exceptionr�rAFz protocol.resume_writing() failed)
rfrbrtrD�
pause_writingr8r9r:r1�call_exception_handlerr�ra�resume_writing)r4�sizer�s rr]z SSLProtocol._control_app_writing4s$���*�*�,���4�,�,�,�T�5M�5M�'+�D�$�
��"�"�0�0�2��T�-�-�
-�$�2J�2J�',�D�$�
��"�"�1�1�3�3K�
-��&�z�2�
�� �
��
�
�1�1�@�!$�!%�!4�!4� $� 3����
��&�z�2�
�� �
��
�
�1�1�A�!$�!%�!4�!4� $� 3����
�s/�B�2C�C�'*C�C�D*�6*D%�%D*c�H�|jj|jzSr9)r��pendingr�rEs rrfz"SSLProtocol._get_write_buffer_sizeQs���~�~�%�%��(?�(?�?�?rc�\�t||tj�\}}||_||_yr9)r,r�!FLOW_CONTROL_HIGH_WATER_SSL_WRITErbrar^s rr\z$SSLProtocol._set_write_buffer_limitsTs.��,��#�y�B�B�D� ��c�$(��!�#&�� rc��d|_yrJ)rSrEs rrVzSSLProtocol._pause_reading\s
��#'�� rc�n���jr(d�_�fd�}�jj|�yy)NFc����jtjk(r�j�y�jtjk(r�j�y�jtjk(r�j�yyr9)r�r
r
r�rr�rr�rEs�r�resumez+SSLProtocol._resume_reading.<locals>.resumecs`����;�;�"2�":�":�:��M�M�O��[�[�$4�$=�$=�=��N�N�$��[�[�$4�$=�$=�=��%�%�'�>r)rSr1r�)r4rKs` rrYzSSLProtocol._resume_reading_s2����#�#�',�D�$�
(�
�J�J� � ��(�$rc��|j�}||jk\r.|js"d|_|jj �y||j
kr/|jr"d|_|jj
�yyy)NTF)rqrnr�r�rWrmrZ)r4rCs rrjz SSLProtocol._control_ssl_readingnsu���)�)�+���4�,�,�,�T�5M�5M�'+�D�$��O�O�)�)�+�
�T�-�-�
-�$�2J�2J�',�D�$��O�O�*�*�,�3K�
-rc�\�t||tj�\}}||_||_yr9)r,r� FLOW_CONTROL_HIGH_WATER_SSL_READrnrmr^s rriz#SSLProtocol._set_read_buffer_limitsws.��,��#�y�A�A�C� ��c�$(��!�#&�� rc�.�|jjSr9)r�rErEs rrqz!SSLProtocol._get_read_buffer_size}s���~�~�%�%�%rc�� d|_yrJ)r�rEs rr@zSSLProtocol.pause_writing�s�� �$(�� rc�4� d|_|j�yr0)r�rrEs rrBzSSLProtocol.resume_writing�s�� �$)�� ���� rc�f�|jr|jj|�t|t�r5|jj�rt
jd||d��yyt|tj�s+|jj|||j|d��yy)Nz%r: %sT)�exc_infor=)r�r�rw�OSErrorr1r�rr�r�CancelledErrorrA)r4r�r>s rr�zSSLProtocol._fatal_error�s����?�?��O�O�(�(��-��c�7�#��z�z�#�#�%����X�t�W�t�D�&��C��!:�!:�;��J�J�-�-�"� �!�_�_� � /�
�<r)FNTNNr9r�)zFatal error on transport).rrrr�r�r�r�r7r@r�r�r�r�r�r�r�r:r�r�r�r�r�rKrr�r�rr�r}r�rr�r(r)rr]rfr\rVrYrjrirqr@rBr�rrrr�r�s����H� �� $��#��59�&*�'+�&*� Q"�f 1��#� �"2�H%�
�!�F�$-�P� ;�.�%�R�*C��
-�8�.�A�0!� $�A�,#�:#�<B��:@�'�(�)�-�'�&�
(�!�
rr�)r��enumr�r�ImportError�rrrr�logr�SSLWantReadError�SSLSyscallErrorr�Enumr
rr$r,�_FlowControlMixin� Transportr.r�r�rrr�<module>r_s���
�����������?��*�*�C�,?�,?�@�N��t�y�y��
&�t�y�y�
&� ��*r;�J�8�8�&�0�0�r;�jW
�)�,�,�W
��{��
�C��s�B0�0B:�9B:
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists