� !A?h2-��� ddlZddlmZddlmZdZeeed���Gd�dej��ZGd �d ��Z d �Z dS) �N)�deque)� _deprecatedznThe {name} module is deprecated and will be removed in Python {remove}. The recommended replacement is asyncio)�� )�removec��eZdZ dZdZdZdZdd�Zd�Zd�Z d�Z d �Z d �Z d �Z d �Zd �Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)� async_chatirzlatin-1Nc��d|_g|_t��|_tj�|||��dS�N�)� ac_in_buffer�incomingr� producer_fifo�asyncore� dispatcher�__init__)�self�sock�maps �5/opt/alt/python-internal/lib64/python3.11/asynchat.pyrzasync_chat.__init__JsB����� �� �#�W�W�����$�$�T�4��5�5�5�5�5r c� �td����Nzmust be implemented in subclass��NotImplementedError�r�datas r�collect_incoming_dataz async_chat.collect_incoming_dataX���!�"C�D�D�Dr c�:�|j�|��dS�N)r�appendrs r�_collect_incoming_dataz!async_chat._collect_incoming_data[s�� � ���T�"�"�"�"�"r c�N�d�|j��}|jdd�=|Sr )�joinr)r�ds r� _get_datazasync_chat._get_data^s(�� �H�H�T�]� #� #�� �M�!�!�!� ��r c� �td���rr�rs r�found_terminatorzasync_chat.found_terminatorcrr c��� t|t��r|jrt||j��}n*t|t ��r|dkrt d���||_dS)Nrz-the number of received bytes must be positive)� isinstance�str� use_encoding�bytes�encoding�int� ValueError� terminator)r�terms r�set_terminatorzasync_chat.set_terminatorfso�� � �d�C� � � N�T�%6� N���t�}�-�-�D�D� ��c� "� "� N�t�a�x�x��L�M�M� M�����r c��|jSr )r2r(s r�get_terminatorzasync_chat.get_terminatorqs ����r c� � |�|j��}n1#t$rYdSt$r|���YdSwxYwt |t ��r!|jrtt |j ��}|j |z|_ |j �r�t|j ��}|� ��}|s#|� |j ��d|_ �n�t |t��r�|}||kr2|� |j ��d|_ |j|z |_�nM|� |j d|���|j |d�|_ d|_|���n�t|��}|j �|��}|dkrT|dkr"|� |j d|���|j ||zd�|_ |���nxt%|j |��}|r@||kr8|� |j d| ���|j | d�|_ dS|� |j ��d|_ |j ���dSdS)Nr r�����)�recv�ac_in_buffer_size�BlockingIOError�OSError� handle_errorr+r,r-r.r/r �lenr6rr0r2r)�find�find_prefix_at_end)rr�lbr2�n�terminator_len�indexs r� handle_readzasync_chat.handle_readys��� ��9�9�T�3�4�4�D�D��� � � � �F�F�� � � � � � � � � � �F�F� ���� �d�C� � � -�T�%6� -���d�m�,�,�D� �-��4�����3 0��T�&�'�'�B��,�,�.�.�J��0 0��*�*�4�+<�=�=�=�$'��!�!��J��,�,�, 0�����6�6��.�.�t�/@�A�A�A�(+�D�%�&*�o��&:�D�O�O��.�.�t�/@��!��/D�E�E�E�(,�(9�!�"�"�(=�D�%�&'�D�O��)�)�+�+�+�+�"%�Z�����)�.�.�z�:�:���B�;�;��q�y�y��2�2�4�3D�V�e�V�3L�M�M�M�(,�(9�%��:N�:O�:O�(P�D�%��)�)�+�+�+�+�/�t�/@�*�M�M�E�� 0� �B�;�;� �6�6�t�7H��5�&��7Q�R�R�R�04�0A�5�&�'�'�0J�D�-����2�2�4�3D�E�E�E�,/��)�g��3 0�3 0�3 0�3 0�3 0s�� A �A � A c�.�|���dSr )� initiate_sendr(s r� handle_writezasync_chat.handle_write�s�� �������r c�.�|���dSr )�closer(s r� handle_closezasync_chat.handle_close�s�� � � � � � � � r c��t|tttf��st dt |�����|j}t|��|krGtdt|��|��D]'}|j � ||||z����(n|j � |��|� ��dS)Nz#data argument must be byte-ish (%r)r) r+r.� bytearray� memoryview� TypeError�type�ac_out_buffer_sizer>�rangerr!rG)rr�sabs�is r�pushzasync_chat.push�s����$�� �:� >�?�?� (��A� ��J�J�(�(� (��&�� �t�9�9�t� � ��1�c�$�i�i��.�.� :� :���"�)�)�$�q��4��x�.�9�9�9�9� :� � � %� %�d� +� +� +� �������r c�b�|j�|��|���dSr )rr!rG)r�producers r�push_with_producerzasync_chat.push_with_producer�s1�� ��!�!�(�+�+�+� �������r c�� dS�N��r(s r�readablezasync_chat.readable�s ��>� �qr c�"� |jp|j Sr )r� connectedr(s r�writablezasync_chat.writable�s��>��!�9�$�.�&8�9r c�<� |j�d��dSr )rr!r(s r�close_when_donezasync_chat.close_when_done�s"��K� ��!�!�$�'�'�'�'�'r c��|j�rE|j�r?|jd}|s |jd=|�|���dS|j} |d|�}nI#t$r<|���}|r|j�|��n|jd=Y��wxYwt|t��r|j rt||j ��} |� |��}n%#t$r|���YdSwxYw|rA|t|��ks|t|��kr||d�|jd<n|jd=dSdSdS)Nr)rr_rKrQrO�more� appendleftr+r,r-r.r/�sendr<r=r>)r�first�obsr�num_sents rrGzasync_chat.initiate_send�s���� �% �T�^�% ��&�q�)�E�� ��&�q�)��=��%�%�'�'�'��F��)�C� ��T�c�T�{����� � � ��z�z�|�|���.��&�1�1�$�7�7�7�7��*�1�-���  �����$��$�$� 2��):� 2��T�4�=�1�1�� ��9�9�T�?�?����� � � ��!�!�#�#�#���� ����� .��c�$�i�i�'�'�3��U���+;�+;�,1�(�)�)�,<�D�&�q�)�)��*�1�-� �F�K% �% �% �% s%� A�AB�B�C$�$D�Dc�Z�d|_|jdd�=|j���dSr )r rr�clearr(s r�discard_bufferszasync_chat.discard_bufferss3����� �M�!�!�!� � �� � �"�"�"�"�"r )NN)�__name__� __module__� __qualname__r:rQr-r/rrr"r&r)r4r6rErHrKrUrXr]r`rbrGrlr\r rr r ;sC������F� ���� �L��H� 6� 6� 6� 6�E�E�E�#�#�#���� E�E�E� � � ����F0�F0�F0�P������ � � �������:�:�:�(�(�(�&�&�&�P#�#�#�#�#r r c��eZdZdd�Zd�ZdS)�simple_producer�c�"�||_||_dSr )r� buffer_size)rrrts rrzsimple_producer.__init__s���� �&����r c��t|j��|jkr/|jd|j�}|j|jd�|_|S|j}d|_|Sr )r>rrt)r�results rrdzsimple_producer.mores\�� �t�y�>�>�D�,� ,� ,��Y�0�� 0�0�1�F�� �$�"2�"3�"3�4�D�I��M��Y�F��D�I��Mr N)rr)rmrnrorrdr\r rrqrqs7������'�'�'�'�����r rqc��t|��dz }|rA|�|d|���s$|dz}|r|�|d|����$|SrZ)r>�endswith)�haystack�needle�ls rr@r@6sk�� �F� � �a��A� ��H�%�%�f�R�a�R�j�1�1�� �Q��� ��H�%�%�f�R�a�R�j�1�1�� �Hr ) r� collectionsr�warningsr�_DEPRECATION_MSGrmrr rqr@r\r r�rs���8�(���������� � � � � � �N�� � �H�&�w�7�7�7�7�X#�X#�X#�X#�X#��$�X#�X#�X#�v��������@ � � � � r