� c��jI� ��� ddlZ ddlZddlZddlZddl Z ddl m Z ddl mZe j ed��ej$ej&zd zZe �ZGd �d ed d ��Zd$dd �d�Zd$d�ZgZdd �d�Zedddd�edddd�dD]Zeddezddee�zd� �s�nedddd �ed!dd"d#�[[y#e$r ejdk(red��ed��wxYw)%�N�win32z,The crypt module is not supported on Windowsz;The required _crypt module was not built as part of CPython)� SystemRandom)� namedtuple)�� )�removez./c��eZdZ d�Zy)�_Methodc�8�dj|j�S)Nz)�format�name)�selfs �/usr/lib64/python3.12/crypt.py�__repr__z_Method.__repr__ s��"�)�)�$�)�)�4�4�N)�__name__� __module__� __qualname__r�rrr r s ��(�5rr z name ident salt_chars total_size��roundsc�� |� td}|�2t|t�s"t|jj �d���|j sd}nd|j �d�}|j rn|j ddk(r\|�d}nMtj|dz �}|d|zk7r td��d |cxkrd kstd ��td ��||d �d�z }nL|j d vr.|�zmksalt..Fs����M�4L�D����J�'�4L�s�#%) �methods� isinstance�int� TypeError� __class__r�ident� bit_length� ValueError�join�range� salt_chars)�methodr�s� log_roundss r�mksaltr9$s���� �~����� ��*�V�S�"9��6�+�+�4�4�5�64�5�6� 6� �<�<� ���� � �~�Q� �� �|�|�� � �Q��3�.� �>��J�����q��1�J���j��(� �!>�?�?�� �(�b�(� �!H�I�I�)� �!H�I�I� � �3��q� !�!�� ���� #� � ��6�0�[�0� �!N�O�O�1� �!N�O�O� �7�6�(�!�$� $�A� � ��F�8�#G�H�I�I�����M�E�&�:K�:K�4L�M� M�M�A� �Hrc�j� |�t|t�r t|�}tj||�Sr$)r,r r9�_crypt�crypt)�word�salts rr<r<Js1��� �|�z�$��0��d�|�� �<�<��d� #�#rc�x�t|g|���}|t�d|z<t||��}d} td|�}|r.t|�|jk(rtj|�yy#t$rF}|j t j t jt jhvrYd}~y�d}~wwxYw)N�METHOD_rrFT) r �globalsr9r<�OSError�errno�EINVAL�EPERM�ENOSYS�len� total_sizer+�append)r r�argsr6r>�result�es r� _add_methodrM\s��� �T� !�D� !�F�"(�G�I�i�$��� �&�� (�D� �F���r�4��� �#�f�+��!2�!2�2����v��� �� �� �7�7�u�|�|�U�[�[�%�,�,�?� ?�� �� �s� A*�* B9�3;B4�3B4�4B9�SHA512r"��j�SHA256r!�?)�b�y�ar�BLOWFISHr��;�MD5�1��"�CRYPT�rr$)�sys�_sysr;�ModuleNotFoundError�platform� ImportErrorrC�string�_string�warnings�randomr� _SystemRandom� collectionsr� _namedtuple� _deprecatedr� ascii_letters�digitsr'r%r r9r<r+rM�_vrGrrr�ros4��K��Y�� ���0�1�����X�g�.�� "� "�W�^�^� 3�d� :� ��o��5�k�)�%G�H�5�# �$�# �L $� ��$(��" �H�c�2�s�#� �H�c�2�r�"� �B��:�s�R�x��R�#�b�'�\�$�G� � � �E�3��2�� �G�T�1�b�!�� ��k�Y� �}�}����H�I�I��W�X�X� Y�s �C�%C5