add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

��VcucsZ�dZdZdZdZdZdZdZdZdZdd	l	Z	dd	l
Z
dd	lZdd	lZdd
lTgd�Z
d�Z	dd
lmZmZmZd�Zn#e$rd�ZYnwxYwd�Zd�Zd�Zd�Zd�Zejje_d�Zd�Zd�Z d�Z!	ddl"m#Z#n
#e$rd	Z#YnwxYwd�Z$d�Z%d�Z&	ddl"m'Z'd�Z(n#e$rd�Z(YnwxYwd �Z)	dd!l"m*Z*d"�Z+n
#e$re)Z+YnwxYw	dd#l"m,Z,m-Z.d$�Z/d%�Z0d&d'�d(�Z1n
#e$re+Z1YnwxYwe2e
d)��oe
j3��d*d+kZ4d/d,�Z5d-�Z6	dd.l"m7Z8d	S#e$rYd	SwxYw)0z�Common pathname manipulations, WindowsNT/95 version.

Instead of importing this module directly, import os and refer to this
module as os.path.
�.�..�\z;�/z.;C:\binZnul�N)Z*)&�normcase�isabs�join�
splitdrive�split�splitext�basename�dirnameZcommonprefixZgetsizeZgetmtimeZgetatimeZgetctime�islinkZexists�lexists�isdirZisfile�ismount�
expanduser�
expandvars�normpath�abspath�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpathZsamefileZsameopenfileZsamestat�
commonpathcs4�t|t��rdSdS)N�\/�\/)�
isinstance�bytes��path� �/usr/lib64/python3.11/ntpath.py�
_get_bothsepsr)#s���$������v��u�)�
LCMapStringEx�LOCALE_NAME_INVARIANT�LCMAP_LOWERCASEcs��tj|��}|s|St|t��rnt	j��}|�|d���dd��}ttt|��}|�|d��Sttt|�dd����S)�nNormalize case of pathname.

        Makes all characters lowercase and all slashes into backslashes.
        Zsurrogateescaperr)�os�fspathr#r$�sysZgetfilesystemencodingZdecode�replace�_LCMapStringEx�_LOCALE_NAME_INVARIANT�_LCMAP_LOWERCASEZencode)�sZencoding�  r(rr3s���

�I�a�L�L���	��H��a����		8��0�2�2�H�����#4�5�5�=�=�c�4�H�H�A��5�/��4�4�A��8�8�H�&7�8�8�8�!�"8�"2�"#�)�)�C��"6�"6�8�8�
8r*cs<�tj|��}t|t��rLtjtj|���dd�������S|�dd�����S)r.rr)r/r0r#r$�fsencode�fsdecoder2�lower�r6r'r(rrFsx��

�I�a�L�L���a����	J��;�r�{�1�~�~�5�5�c�4�@�@�F�F�H�H�I�I�I��y�y��d�#�#�)�)�+�+�+r*cs��tj|��}t|t��r,|�dd���d��rdSn+|�dd���d��rdSt
|��d}t|��d	ko|d	o|d	t|��vS)
zTest whether a path is absolute�/�\�\\?\Trr�\\?\�r)	r/r0r#r$r2�
startswithr�lenr)r;r'r(rrWs���
�	�!���A��!�U�����9�9�T�5�!�!�,�,�Z�8�8�	��4�	�
�9�9�S�$���*�*�9�5�5�	��4��1�
�
�a��A��q�6�6�A�:�;�!�A�$�;�1�Q�4�=��+;�+;�#;�;r*cs��tj|��}t|t��rd}d}d}nd}d}d}	|s
|dd�|zt	|��\}}ttj|��D]x}t	|��\}}	|	r|	d|vr	|s|s|}|	}�)|r7||kr1|���|���kr|}|	}�`|}|r|d|vr||z}||	z}�y|r"|d|vr|r|dd�|kr||z|zS||zS#tttf$rtjd	|g|�R��wxYw)
Nr=r!�:rr"�:r�����r)r/r0r#r$r�mapr:�	TypeError�AttributeError�BytesWarning�genericpath�_check_arg_types)
r&�pathsr�seps�colonZresult_driveZresult_path�pZp_driveZp_path�
          r(rrgs���
�9�T�?�?�D��$��������������������	���!��H�s�N�N�$.�t�$4�$4�!��k��R�Y��&�&�	/�	/�A�(��m�m�O�G�V��

'�&��)�t�+�

'��+�,�+�#*�L�$����
'�W��4�
'��=�=�?�?�l�&8�&8�&:�&:�:��#*�L�"(�K��&���
0�{�2��d�:�
0�)�C�/��%��.�K�K��	4�K��N�$�6�	4��	4�)�"�#�#�.�%�7�	4��#�%��3�3��k�)�)���~�|�4�����$�V�T�:�E�:�:�:�:�
����s�CD�D�,EcsX�tj|��}t|��dkr�t|t��rd}d}d}nd}d}d}|�||��}|dd�|dzkr�|dd	�|kr|�|d��}|d
kr|dd�|fS|�||dz��}||dzkr|dd�|fS|d
krt|��}|d|�||d�fS|dd�|kr|dd�|dd�fS|dd�|fS)
a�Split a pathname into drive/UNC sharepoint and relative path specifiers.
    Returns a 2-tuple (drive_or_unc, path); either part may be empty.

    If you assign
        result = splitdrive(p)
    It is always true that:
        result[0] + result[1] == p

    If the path contained a drive letter, drive_or_unc will contain everything
    up to and including the colon.  e.g. splitdrive("c:/dir") returns ("c:", "/dir")

    If the path contained a UNC path, the drive_or_unc will contain the host name
    and share up to but not including the fourth directory separator character.
    e.g. splitdrive("//host/computer/dir") returns ("//host/computer", "/dir")

    Paths cannot contain both a drive letter and a UNC path.

    �r=r<rCrrrDr�rENr@)r/r0rBr#r$r2Zfind)rOrrrNZnormp�indexZindex2s       r(rr�st��&	�	�!���A�
�1�v�v��{� ��a����	��C��F��E�E��C��F��E��	�	�&�#�&�&���!�A�#�J�#�a�%��	*�e�A�a�C�j�C�&7�	*�
�J�J�s�A�&�&�E���{�
 ���!��u�a�x���Z�Z��U�Q�Y�/�/�F�����"�
 ���!��u�a�x����|�
 ��Q�����W�f�W�:�q����z�)�)���1��:���	 ��R�a�R�5�!�A�B�B�%�<���R�a�R�5�!�8�Or*cs4�tj|��}t|��}t|��\}}t	|��}|r!||dz
|vr|dz}|r
||dz
|v�|d|�||d�}}|�|��p|}||z|fS)z~Split a pathname.

    Return tuple (head, tail) where tail is everything after the final slash.
    Either part may be empty.r@N)r/r0r)rrB�rstrip)rOrM�d�iZhead�tail�      r(r	r	�s���
	�	�!���A�����D��a�=�=�D�A�q��A���A�
���!�A�#��d�"��	�Q������!�A�#��d�"���2�A�2���!�"�"��$�D��;�;�t���$��D��t�8�T�>�r*cs��tj|��}t|t��rt	j|ddd��St	j|ddd��S)Nr=r<�.rrr)r/r0r#r$rJ�	_splitext�rOr'r(r
r
�sO��
�	�!���A��!�U���8��$�Q��t�T�:�:�:��$�Q��c�3�7�7�7r*c�,�t|��dS)z)Returns the final component of a pathnamer@�r	r[r'r(rr������8�8�A�;�r*cr\)z-Returns the directory component of a pathnamerr]r[r'r(rr�r^r*cs��	tj|��}n#tttf$rYdSwxYwtj|j��S)zhTest whether a path is a symbolic link.
    This will always return false for Windows prior to 6.0.
    F)r/�lstat�OSError�
ValueErrorrH�statZS_ISLNKZst_mode�r&Zstr7r(r
r
�sQ���
�X�d�^�^�����Z��0�����u�u������<��
�#�#�#s��2�2csb�	tj|��}n#ttf$rYdSwxYwdS)zCTest whether a path exists.  Returns True for broken symbolic linksFT)r/r_r`rarcr7r(rr
sB���
�X�d�^�^�����Z� �����u�u������4s��,�,)�_getvolumepathnamecs��tj|��}t|��}t|��}t	|��\}}|r|d|vr|p||vS|r||vrdSt
ra|�|��}t|���|��}|���|���kSdS)zaTest whether a path is a mount point (a drive root, the root of a
    share, or a mounted volume)rTF)r/r0r)rrrdrTZcasefold)r&rMZrootZrest�xZyrXr(rr s����9�T�?�?�D�����D��4�=�=�D��D�!�!�J�D�$��,��Q��4��,���+�d�d�l�+��������t����K�K������d�#�#�*�*�4�0�0���z�z�|�|�q�z�z�|�|�+�+��ur*cs��tj|��}t|t��rd}nd}|�|��s|Sdt|��}}||kr9||t
|��vr"|dz
}||kr||t
|��v�"dtjvrtjd}nVdtjvr|S	tjd}n#t$rd}YnwxYwt|tjd��}|dkr�|d|�}t|t��rtj
|��}tj�d��}||kr2|t|��kr|Stt|��|��}t|t��rtj|��}|||d	�zS)
zLExpand ~ and ~user constructs.

    If user or $HOME is unknown, do nothing.s~z~r@ZUSERPROFILEZHOMEPATHZ	HOMEDRIVE�ZUSERNAMEN)r/r0r#r$rArBr)�environ�KeyErrorrr9Zgetrrr8)r&ZtilderVZnZuserhome�driveZtarget_userZcurrent_users        r(rr=s����9�T�?�?�D��$�����������?�?�5�!�!�����c�$�i�i�q�A�
�a�%��D��G�=��#6�#6�6��	�Q����a�%��D��G�=��#6�#6�6����
�"�	7��:�m�,���
�2�:�
%�7���	��J�{�+�E�E���	�	�	��E�E�E�	������r�z�*�5�6�6���A�v�<��1�Q�3�i���k�5�)�)�	3��+�k�2�2�K��z�~�~�j�1�1���,�&�	<��x��1�1�1�
����G�H�-�-�{�;�;�H��$����)��;�x�(�(���d�1�2�2�h��s�C�C*�)C*cs��tj|��}t|t��rOd|vrd|vr|Sddl}t|j|jzdzd��}d}d}d}d	}d}ttd
d��}n6d|vrd|vr|Sddl}|j|jzdz}d
}d}d}d}d}tj}|dd�}	d}
t|��}|
|k�r
||
|
dz�}||kre||
dzd�}t|��}	|�
|��}
|	||d|
dz�zz
}	�n�#t$r|	||zz
}	|dz
}
Y�n�wxYw||kr�||
dz|
dz�|kr|	|z
}	|
dz
}
�n`||
dzd�}t|��}	|�
|��}
|d|
�}
	|�7tjtjtj
|
����}n||
}n#t$r||
z|z}YnwxYw|	|z
}	�n�#t$r|	||zz
}	|dz
}
Y�n�wxYw||k�r�||
dz|
dz�|kr|	|z
}	|
dz
}
�n}||
dz|
dz�|kr�||
dzd�}t|��}	|�
|��}
|d|
�}
	|�7tjtjtj
|
����}n||
}n#t$r||z|
z|z}YnwxYw|	|z
}	n�#t$r|	||z|zz
}	|dz
}
Yn�wxYw|dd�}
|
dz
}
||
|
dz�}|r!||vr|
|z
}
|
dz
}
||
|
dz�}|r||v�	|�7tjtjtj
|
����}n||
}n#t$r||
z}YnwxYw|	|z
}	|r|
dz}
n|	|z
}	|
dz
}
|
|k��
|	S)zfExpand shell variables of the forms $var, ${var} and %var%.

    Unknown variables are left unchanged.s$s%rNz_-Zasciis's{s}Zenvironbz$z%z'z{z}r@rQ)r/r0r#r$�stringZ
ascii_lettersZdigitsZgetattrrgrBrSrar8r9rh)r&rjZvarcharsZquoteZpercentZbraceZrbraceZdollarrgZresrSZpathlen�cZvarZvalues               r(rrzsU���9�T�?�?�D��$������t��	��D� 0�	��K��
�
�
���-��
�=��D�g�N�N�������������"�j�$�/�/����d�?�	�s�$��	��K��
�
�
��'�&�-�7�$�>�������������*��
�r��r�(�C�
�E��$�i�i�G�
�'�/�K���u�Q�w������:�H	����	�
�
�#�D��$�i�i�G�
$��
�
�1�
�
���q�4�
����
�+�+�+�����
$�
$�
$��q�4�x����!�����
$�����'�\�?	��E�A�I�e�a�i�'�(�G�3�
!��q�����
����E�!�G�H�H�~���d�)�)��!� �J�J�w�/�/�E�
�v��v�,�C�8�"�1�$&�K��
�2�;�s�;K�;K�0L�$M�$M�E�E�$+�C�L�E���#�8�8�8� '�#�
�� 7����8�����5�L�C�C��"�(�(�(��7�T�>�)�C�#�a�K�E�E�E�(�����&�[�)	��E�A�I�e�a�i�'�(�F�2�&
��q�����
����e�a�i���	�)�*�e�3�#
��E�!�G�H�H�~���d�)�)��!� �J�J�v�.�.�E�
�v��v�,�C�>�"�1�$&�K��
�2�;�s�;K�;K�0L�$M�$M�E�E�$+�C�L�E���#�>�>�>� &���� 4�v� =����>�����5�L�C�C��"�(�(�(��6�E�>�D�0�0�C�#�a�K�E�E�E�(�����2�A�2�h����
����u�q�y��)���.�A��M�.��1�H�C��Q�J�E��U�5�1�9�_�-�A��.�A��M�.�)��-� "��B�J�r�{�3�7G�7G�,H� I� I��� '�������)�)�)�"�S�L�E�E�E�)�����u������Q�J�E���1�H�C�
��
��W�'�/�K�X�Jso�(D+�+E�E�H
�,AG.�.H�H�
H(�'H(�L�#AK%�%K=�<K=�L#�"L#�&AN(�(N:�9N:)�_path_normpathcs��tj|��}t|t��r5tjttj|������pdSt|��pdS)�0Normalize path, eliminating double slashes, etc.rYr)r/r0r#r$r8rlr9r%r'r(rr!s\���y������d�E�"�"�	J��;�~�b�k�$�.?�.?�@�@�A�A�I�T�I��d�#�#�*�s�*r*cs�tj|��}t|t��rd}d}d}d}d}n
d}d}d}d	}d
}|�|��r|S|�||��}t
|��\}}|�|��r||z
}|�|��}|�|��}d}|t|��kr�||r|||kr||=n\|||krK|dkr ||dz
|kr||dz
|dz�=|dz}n*|dkr|�
|��r||=n|dz
}n|dz
}|t|��k��|s|s|�|��||�|��zS)
rmr=r<rY�..)s\\.\r>rrrr)z\\.\r?rr@)
r/r0r#r$rAr2rZlstripr	rBZendswithZappendr)	r&rrrrZspecial_prefixes�prefixZcompsrVs	         r(rr�s����y������d�E�"�"�	6��C��F��F��F�7����C��F��F��F�5���?�?�+�,�,�	��K��|�|�F�C�(�(��!�$�'�'�����?�?�3���	$��c�M�F��;�;�s�#�#�D��
�
�3����
���#�e�*�*�n�	���8�
�u�Q�x�6�1�
��!�H�H��q��V�#�	
��q�5��U�1�Q�3�Z�6�1���a��c�!�A�#�g����F�A�A��!�V������ 4� 4���a�����F�A�A��Q����#�e�*�*�n�	��	!�e�	!��L�L�� � � ��������'�'r*cs��tj|��}t|��sLt|t��rtj��}ntj��}t||��}t|��S)z�Return the absolute version of a path as a fallback function in case
    `nt._getfullpathname` is not available or raises OSError. See bpo-31047 for
    more.

    )	r/r0rr#r$�getcwdb�getcwdrr)r&�cwdr7r(�_abspath_fallbackrs)sb���9�T�?�?�D���;�;���d�E�"�"�	��*�,�,�C�C��)�+�+�C��C������D�>�>�r*)�_getfullpathnamecs��	tt|����S#ttf$rt	|��cYSwxYw)z&Return the absolute version of a path.)rtrr`rarsr%r'r(rrAsO��	+�#�H�T�N�N�3�3�3����$�	+�	+�	+�$�T�*�*�*�*�*�	+���s�� A�A)�_getfinalpathname�readlinkcs��d}t��}t|��|vr�|�t|����	|}t|��}t	|��s<t|��s|}nht
tt|��|����}n,#t$r}|j
|vrYd}~n%�d}~wt$rYnwxYwt|��|v��|S)N)r@rQrR��� �2�C�Wi&i(i))�setrZadd�_nt_readlinkrr
rrrr`�winerrorra)r&�allowed_winerrorZseenZold_path�exs     r(�_readlink_deepr�Ns��L���u�u���t�n�n�D�(�	��H�H�X�d�^�^�$�$�$�
���#�D�)�)���T�{�{�C�"�(�+�+��'���#�D���):�):�D�$A�$A�B�B�D����
�
�
��;�"2�2���E�E�E�E�������
�
�
���
����'�t�n�n�D�(�	�,�s*�1B"�7*B"�"
C�,	B;�:B;�;
C�
Ccs��d}d}|r�	t|��}|rt||��n|S#t$r�}|j|vr�	t	|��}||kr|rt||��n|cYd}~Sn#t$rYnwxYwt|��\}}|r|s
||zcYd}~S|rt||��n|}Yd}~nd}~wwxYw|��|S)N)r@rQrRrwrxryrzr{r|i{i�i�rf)rurr`rr�r	)r&r�rWr�Znew_pathZnamerXr(�_getfinalpathname_nonstrictr�xsX��K�����	:�
:�(��.�.��+/�9�t�D�$�'�'�'�T�9���
:�
:�
:��;�&6�6���	� .�d�3�3�H��4�'�J�7;�I�t�H�d�3�3�3��I�I�I�I�I�I�J�������D�����#�4�[�[�
��d��'��'��$�;�&�&�&�&�&�&�+/�9�t�D�$�'�'�'�T�����������'
:����	�	:�0�sJ�"+�
B=�
B8�(A/�(B=�.B8�/
A<�9B8�;A<�<B8�B=�B8�8B=F)�strictcs��t|��}t|t��rSd}d}d}tj��}t|��ttjt����krdSn@d}d}d}tj��}t|��tt��krdS|�	|��}|st|��st||��}	t|��}d	}n0#t$r#}|r�|j}t|��}Yd}~nd}~wwxYw|s�|�	|��r�|�	|��r||t!|��d�z}	n|t!|��d�}		t|	��|kr|	}n$#t$r}|j|kr|	}Yd}~nd}~wwxYw|S)
Nr>s\\?\UNC\s\\s\\.\NULr?z\\?\UNC\z\\z\\.\NULr)rr#r$r/rprr8rrqrArrrur`rr�rB)
r&r�roZ
unc_prefixZnew_unc_prefixrrZ
had_prefixZinitial_winerrorr�ZspathrPr(rr�s����~�~���d�E�"�"�	$��F�(�J�$�N��*�,�,�C���~�~��"�+�g�*>�*>�!?�!?�?�
%�$�}�
%��F�'�J�#�N��)�+�+�C���~�~��'�!2�!2�2�
$�#�|��_�_�V�,�,�
��	#�%��+�+�	#���T�?�?�D�	5�$�T�*�*�D� �����	5�	5�	5��
��!�{��.�t�4�4�D�D�D�D�D�D�����		5�����	!�d�o�o�f�5�5�	!����z�*�*�
+�&��c�*�o�o�.>�.>�)?�?����S��[�[�\�\�*��
!�$�U�+�+�t�3�!� �D����
!�
!�
!��;�"2�2�!� �D����������	
!����
�s0�/D�
D.�D)�)D.�F&�&
G�0
G�G�getwindowsversionrRrQcs��tj|��}t|t��rd}d}d}nd}d}d}|�|}|st	d���tj|��}	tt
|����}tt
|����}t|��\}}t|��\}	}
t|��t|	��krt	d	|	�d
|�����d�|�	|��D��}d�|
�	|��D��}d
}
t||��D],\}}t|��t|��krn|
dz
}
�-|gt|��|
z
z||
d�z}|s|St|�S#ttttt f$rt#jd||���wxYw)z#Return a relative version of a pathr=rYrnrrrNzno path specifiedzpath is on mount z, start on mount c��g|]}|�|��S�r���.0rer7r(�
<listcomp>�relpath.<locals>.<listcomp>�s��<�<�<�A�!�<�a�<�<�<r*cr�r�r�r�r7r(r�r��s��:�:�:�1��:�Q�:�:�:r*rr@r)r/r0r#r$rarrrrr	ZziprBrrGrHrIZDeprecationWarningrJrK)r&ZstartrrrZ	start_absZpath_absZstart_driveZ
start_restZ
path_driveZ	path_restZ
start_listZ	path_listrVZe1Ze2Zrel_lists                 r(rr�s��
�9�T�?�?�D��$�����������������������.��,�-�-�-��I�e���E���H�U�O�O�,�,�	��8�D�>�>�*�*��",�Y�"7�"7���Z� *�8� 4� 4��
�I��K� � �H�Z�$8�$8�8�	*��*��
�
�K�K�)�*�*�
*�=�<��!1�!1�#�!6�!6�<�<�<�
�:�:�	���� 4� 4�:�:�:�	�
���*�i�0�0�	�	�F�B����|�|�x��|�|�+�
���
��F�A�A��8�s�:���q�0�1�I�a�b�b�M�A���	��M��X�����z�>�<�AS�T�����$�Y��e�<�<�<�
����s�!D2F�F�;Gcs��
��|std���tttj|����}t|dt��rd�d�d�
nd�d�d�
	��fd	�|D��}�fd
�|D��}	t�fd�|D����\}n#t$rtd��d
�wxYwttd�|D������dkrtd���t|d�
������\}}|����}�
fd�|D��}�
fd�|D��}t|��}t|��}t|��D]\}	}
|
||	kr|d
|	�}n�|d
t|���}|r|�zn|}|��|��zS#t t"f$rt%jdg|�R��wxYw)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencerr=r<rYrrrcsz��g|]7}t|������������8Sr�)rr2r:)r�rOrrs  ��r(r��commonpath.<locals>.<listcomp>&s;���Q�Q�Q�a�z�!�)�)�F�C�"8�"8�">�">�"@�"@�A�A�Q�Q�Qr*cs@��g|]\}}|������Sr�r]�r�rUrOr�   �r(r�r�'s'���<�<�<���1�q�w�w�s�|�|�<�<�<r*c3s:�K�|]\}}|dd��kV��dS)Nr@r�r�r�r(�	<genexpr>�commonpath.<locals>.<genexpr>*s3�����>�>�$�!�Q��2�A�2��#��>�>�>�>�>�>r*z%Can't mix absolute and relative pathsNc3s K�|]	\}}|V��
dS�Nr�)r�rUrOs   r(r�r�1s&����-�-���A�1�-�-�-�-�-�-r*r@zPaths don't have the same drivec�$��g|]}|�|�k�
|��
Sr�r��r�rkr�  �r(r�r�6s'���9�9�9��q�9�Q�&�[�9�!�9�9�9r*cs,��g|]}�fd�|D����S)cr�r�r�r�r�r(r�z)commonpath.<locals>.<listcomp>.<listcomp>8s'���:�:�:�a��:�a�6�k�:��:�:�:r*r�)r�r6rr�r(r�r�8s.���P�P�P�q�:�:�:�:�1�:�:�:�P�P�Pr*r )raZtuplerFr/r0r#r$r}rBrr2r	ZminZmaxZ	enumeraterrGrHrJrK)rLZdrivesplitsZsplit_pathsrrir&ZcommonZs1Zs2rVrkrorrrs            @@@r(r r s}������B��@�A�A�A��#�b�i��'�'�(�(�E��%��(�E�"�"���������������!�Q�Q�Q�Q�Q�5�Q�Q�Q��<�<�<�<��<�<�<��	P��>�>�>�>�+�>�>�>�>�>�F�E�E���	P�	P�	P��D�E�E�4�O�	P�����s�-�-��-�-�-�-�-�.�.�!�3�	@��>�?�?�?� ��q��!1�!1�&�#�!>�!>�?�?���t����C����9�9�9�9�V�9�9�9��P�P�P�P�K�P�P�P��
��
�
��
��
�
���b�M�M�	&�	&�D�A�q��B�q�E�z�
���������
��H�S��W�W�H�%�F� %�0�����5�������(�(�(�(���~�&�����$�\�:�E�:�:�:�:�
����s%�%G�B!� G�!B<�<DG�%G=)�_isdirr�)9Z__doc__rrrrrrrrr/r1rbrJZ__all__r)Z_winapir+r3r,r4r-r5rZImportErrorrrrr	r
rZrrr
rZntrdrrrrlrrsrtrrurvr~r�r�rZhasattrr�rrr r�rr�r*r(�<module>r�s����

��	
��	��
��

��	��
��
��	�	�	�	�
�
�
�
�������������A�A�A�����!,�-�-�-�-�-�-�-�-�-�-�
8�8�8�8��$�	,�	,�	,�,�,�,�,�,�	,����$<�<�<� )�)�)�^0�0�0�p���.8�8�8��(�0���
������$�$�$����$�%�%�%�%�%�%�%�����������������:-�-�-�zj�j�j�`<+�!�!�!�!�!�!�l+�+�+�+��i�1(�1(�1(�0(�0(�0(�0(�0(�1(����x���"+�#�#�#�#�#�#�+�+�+�+��	� � � ��G�G�G� ����N�>�>�>�>�>�>�>�>�
(�(�(�T,�,�,�\"'�0�0�0�0�0�0��y�����H�H�H�����`&�g�c�+>�?�?�>�3�c�3�5�5�a�8�A�=��+�+�+�+�p1�1�1�h	�
#�"�"�"�"�"�"�"���	�	�	��D�D�	���si�
=�A�A�8A?�?B	�B	�B � B+�*B+�2B<�<C�C�
C�C)�(C)�D!�!D*�)D*