Edit File: ntpath.cpython-311.pyc
� �����fv�����������������������Z����d�Z�dZdZdZdZdZdZdZdZdd l Z dd l Z dd lZdd lZdd lT�g�d�Z d��Z �dd lmZmZmZ�d��Zn#�e$�r�d��ZY�nw�xY�wd��Zd��Zd��Zd��Zd��Zej��������j���������e_���������d��Zd��Zd��Z d��Z! �ddl"m#Z#�n #�e$�r�d Z#Y�nw�xY�wd��Z$d��Z%d��Z& �ddl"m'Z'�d��Z(n#�e$�r�d��Z(Y�nw�xY�wd ��Z) �dd!l"m*Z*�d"��Z+n #�e$�r�e)Z+Y�nw�xY�w �dd#l"m,Z,m-Z.�d$��Z/d%��Z0d&d'�d(�Z1n #�e$�r�e+Z1Y�nw�xY�w�e2e d)������������o�e j3����������������������d*���������d+k����Z4d/d,�Z5d-��Z6 �dd.l"m7Z8�d S�#�e$�r�Y�d S�w�xY�w)0z�Common pathname manipulations, WindowsNT/95 version. Instead of importing this module directly, import os and refer to this module as os.path. �.�..�\�;�/z.;C:\bin�nul�����N)�*)&�normcase�isabs�join� splitdrive�split�splitext�basename�dirname�commonprefix�getsize�getmtime�getatime�getctime�islink�exists�lexists�isdir�isfile�ismount� expanduser� expandvars�normpath�abspath�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpath�samefile�sameopenfile�samestat� commonpathc������������������4�����t����������|�t����������������������rdS�dS�)N����\/�\/)� isinstance�bytes��paths��� �-/opt/alt/python311/lib64/python3.11/ntpath.py� _get_bothsepsr8���#���s�������$�������v��u�����)� LCMapStringEx�LOCALE_NAME_INVARIANT�LCMAP_LOWERCASEc����������������������t����������j��������|�������������}�|�s|�S�t����������|�t����������������������rnt ����������j����������������������}|����������������������|d���������������������������������dd������������}�t����������t����������t����������|�������������}�|����������������������|d������������S�t����������t����������t����������|����������������������dd������������������������S�)�nNormalize case of pathname. Makes all characters lowercase and all slashes into backslashes. �surrogateescaper���r���)�os�fspathr3���r4����sys�getfilesystemencoding�decode�replace�_LCMapStringEx�_LOCALE_NAME_INVARIANT�_LCMAP_LOWERCASE�encode)�s�encodings��� r7���r ���r ���3���s������� � �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�� 8r9���c������������������<����t����������j��������|�������������}�t����������|�t����������������������rLt����������j��������t����������j��������|����������������������������������dd�����������������������������������������������������������S�|����������������������dd�����������������������������������������������S�)r>���r���r���)r@���rA���r3���r4����fsencode�fsdecoderE����lower)rJ���s��� r7���r ���r ���F���sx������ � �I�a�L�L���a����� J��;�r�{�1�~�~�5�5�c�4�@�@�F�F�H�H�I�I�I��y�y��d�#�#�)�)�+�+�+r9���c����������������������t����������j��������|�������������}�t����������|�t����������������������rd}d}d}nd}d}d}|�dd�������������������������������||������������}�|����������������������|������������s|����������������������|d ������������rd S�dS�)zTest whether a path is absolute����\����/s���:\r���r���z:\N��������TF)r@���rA���r3���r4���rE���� startswith)rJ���r#���r&���� colon_seps��� r7���r���r���W���s������� � �!���A��!�U���������� � ������ � �"�1�"�� � �f�c�"�"�A�� �|�|�C�����A�L�L��A�6�6����t��5r9���c����������������������t����������j��������|�������������}�t����������|�t����������������������rd}d}d}nd}d}d} �|s |�d�d����������|z����t ����������|�������������\��}}t����������t�����������j��������|������������D�]x}t ����������|������������\��}} | r| d���������|v�r |s|s|}| }�)|r7||k����r1|�����������������������������������|�����������������������������������k����r|}| }�`|}|r|d���������|vr||z���}|| z���}�y|r"|d���������|vr|r|dd�����������|k����r||z���|z���S�||z���S�#�t����������t����������t����������f$�r�t����������j��������d |�g|�R������w�xY�w) NrQ���r1�������:r���r2����:r������r���)r@���rA���r3���r4���r ����maprO���� TypeError�AttributeError�BytesWarning�genericpath�_check_arg_types) r6����pathsr#����seps�colon�result_drive�result_path�p�p_drive�p_paths ��� r7���r���r���k���s������ �9�T�?�?�D��$���������������������� ���!��H�s�N�N�$.�t�$4�$4�!��k��R�Y��&�&�� /�� /�A�(��m�m�O�G�V��� '�&��)�t�+�+���+�,��+�#*�L�$����� '�W��4�4��=�=�?�?�l�&8�&8�&:�&:�:�:�#*�L�"(�K��&���� 0�{�2��d�:�:�)�C�/��%��.�K�K��� 4�K��N�$�6�6���7�)�"�#�#�.�%�7�7��#�%��3�3��k�)�)���~�|�4��������$�V�T�:�E�:�:�:�:� ����s����CD��D��,Ec������������������\����t����������j��������|�������������}�t����������|�������������dk����r�t����������|�t����������������������r d}d}d}d}nd}d}d}d }|����������������������||������������}|d d����������|dz��k����r�|dd���������������������������������������������|k����rdnd}|���������������������||������������}|d k����r|�|�dd ����������fS�|���������������������||dz���������������}|d k����r|�|�dd ����������fS�|�d|����������|�|d����������fS�|dd����������|k����r|�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. ����rQ���rR���rX�������\\?\UNC\r���r���rY����\\?\UNC\r���N����rZ���rT���)r@���rA����lenr3���r4���rE����upper�find) rf���r#���r&���rc���� unc_prefix�normp�start�index�index2s ��� r7���r ���r �������sd�����&� � �!���A� �1�v�v��{�{��a����� (��C��F��E�(�J�J��C��F��E�'�J�� � �&�#�&�&����1��:��q�� � ���r��r����*�*�j�8�8�A�A�a�E��J�J�s�E�*�*�E���{�{��!�B�Q�B�%�x���Z�Z��U�Q�Y�/�/�F���|�|��!�B�Q�B�%�x���W�f�W�:�q����z�)�)���1��:�����R�a�R�5�!�A�B�B�%�<���R�a�R�5�!�8�Or9���c������������������4����t����������j��������|�������������}�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.rT���N)r@���rA���r8���r ���rn����rstrip)rf���rb����d�i�head�tails��� r7���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�>�r9���c�����������������������t����������j��������|�������������}�t����������|�t����������������������rt ����������j��������|�ddd������������S�t ����������j��������|�ddd������������S�)NrQ���rR�������.r���r���r���)r@���rA���r3���r4���r_���� _splitext�rf���s��� r7���r���r�������sO������ � �!���A��!�U����8��$�Q��t�T�:�:�:��$�Q��c�3�7�7�7r9���c������������������,�����t����������|�������������d���������S�)z)Returns the final component of a pathnamerT����r���r���s��� r7���r���r����������������8�8�A�;�r9���c������������������,�����t����������|�������������d���������S�)z-Returns the directory component of a pathnamer���r����r���s��� r7���r���r�������r����r9���c����������������������� �t����������j��������|�������������}n#�t����������t����������t����������f$�r�Y�dS�w�xY�wt����������j��������|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� ValueErrorr]����stat�S_ISLNK�st_mode�r6����sts��� r7���r���r������sQ������� �X�d�^�^�����Z��0��������u�u������<�� �#�#�#s������2�2c������������������b����� �t����������j��������|�������������}n#�t����������t����������f$�r�Y�dS�w�xY�wdS�)zCTest whether a path exists. Returns True for broken symbolic linksFT)r@���r����r����r����r����s��� r7���r���r�����sB������� �X�d�^�^�����Z� ��������u�u������4s������,�,)�_getvolumepathnamec����������������������t����������j��������|�������������}�t����������|�������������}t����������|�������������}�t ����������|�������������\��}}|r|d���������|v�r|�p||v�S�|r||v�rdS�t ����������ra|����������������������|������������}t����������|����������������������������������|������������}|�����������������������������������|�����������������������������������k����S�dS�)zaTest whether a path is a mount point (a drive root, the root of a share, or a mounted volume)r���TF)r@���rA���r8���r ���r ���r����rw����casefold)r6���rb����root�rest�x�ys��� r7���r���r���"��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�|�|�+�+��ur9���c����������������������t����������j��������|�������������}�t����������|�t����������������������rd}nd}|����������������������|������������s|�S�dt����������|�������������}}||k�����r9|�|���������t ����������|�������������vr"|dz ��}||k�����r|�|���������t ����������|�������������v�"dt�����������j��������v�rt�����������j��������d���������}nVdt�����������j��������vr|�S� �t�����������j��������d���������}n#�t����������$�r�d}Y�nw�xY�wt����������|t�����������j��������d���������������������}|dk����r�|�d|����������}t����������|t����������������������rt����������j ��������|������������}t�����������j�����������������������������d������������}||k����r2|t����������|������������k����r|�S�t����������t����������|������������|������������}t����������|�t����������������������rt����������j��������|������������}||�|d ����������z���S�) zLExpand ~ and ~user constructs. If user or $HOME is unknown, do nothing.����~�~rT����USERPROFILE�HOMEPATH� HOMEDRIVE���USERNAMEN)r@���rA���r3���r4���rU���rn���r8����environ�KeyErrorr���rN����getr���r���rM���)r6����tildery����n�userhome�drive�target_user�current_users��� r7���r���r���?��s��������9�T�?�?�D��$������������?�?�5�!�!������c�$�i�i�q�A� �a�%�%�D��G�=��#6�#6�6�6� �Q�����a�%�%�D��G�=��#6�#6�6�6���� �"�"��:�m�,��� �2�:� %� %��� ��J�{�+�E�E���� �� �� ��E�E�E� ������r�z�*�5�6�6���A�v�v��1�Q�3�i���k�5�)�)�� 3��+�k�2�2�K��z�~�~�j�1�1���,�&�&���x��1�1�1�1����G�H�-�-�{�;�;�H��$�����)��;�x�(�(���d�1�2�2�h��s����C��C*�)C*c����������������������t����������j��������|�������������}�t����������|�t����������������������rOd|�vrd|�vr|�S�ddl}t����������|j��������|j��������z���dz���d������������}d}d}d}d }d}t����������t�����������d d������������}n6d|�vrd|�vr|�S�ddl}|j��������|j��������z���dz���}d }d}d}d}d}t�����������j��������}|�dd����������} d} t����������|�������������}| |k������r |�| | dz�������������}||k����re|�| dz���d����������}�t����������|�������������} �|�� ��������������������|������������} | ||�d| dz�������������z���z ��} �n�#�t����������$�r�| ||�z���z ��} |dz ��} Y��n�w�xY�w||k����r�|�| dz���| dz�������������|k����r| |z ��} | dz ��} �n`|�| dz���d����������}�t����������|�������������} �|�� ��������������������|������������} |�d| ����������} �|�7t����������j��������t�����������j��������t����������j ��������| ���������������������������������}n|| ���������}n#�t����������$�r�|| z���|z���}Y�nw�xY�w| |z ��} �n�#�t����������$�r�| ||�z���z ��} |dz ��} Y��n�w�xY�w||k�����r�|�| dz���| dz�������������|k����r| |z ��} | dz ��} �n}|�| dz���| dz�������������|k����r�|�| dz���d����������}�t����������|�������������} �|�� ��������������������|������������} |�d| ����������} �|�7t����������j��������t�����������j��������t����������j ��������| ���������������������������������}n|| ���������}n#�t����������$�r�||z���| z���|z���}Y�nw�xY�w| |z ��} n�#�t����������$�r�| ||z���|�z���z ��} |dz ��} Y�n�w�xY�w|�dd����������} | dz ��} |�| | dz�������������}|r!||v�r| |z ��} | dz ��} |�| | dz�������������}|r||v�� �|�7t����������j��������t�����������j��������t����������j ��������| ���������������������������������}n|| ���������}n#�t����������$�r�|| z���}Y�nw�xY�w| |z ��} |r| dz��} n| |z ��} | dz ��} | |k������� | S�)zfExpand shell variables of the forms $var, ${var} and %var%. Unknown variables are left unchanged.����$����%r���Nz_-�ascii����'����{����}�environb�$�%�'�{�}rT���rj���)r@���rA���r3���r4����string� ascii_letters�digits�getattrr����rn���rt���r����rM���rN���r����)r6���r�����varchars�quote�percent�brace�rbrace�dollarr�����resrt����pathlen�c�var�values��� r7���r���r���|��s$�������9�T�?�?�D��$�������t����D� 0� 0��K�� � � ���-�� �=��D�g�N�N�������������"�j�$�/�/����d�?�?�s�$����K�� � � ��'�&�-�7�$�>�������������*�� �r��r�(�C� �E��$�i�i�G� �'�/�/���u�Q�w������:�:���� � � �#�D��$�i�i�G� $�� � �1� � ���q�4� ���� �+�+�+������ $�� $�� $��q�4�x����!����� $������'�\�\��E�A�I�e�a�i�'�(�G�3�3��q����� ����E�!�G�H�H�~���d�)�)��!� �J�J�w�/�/�E� ��v��v�,�C�8�"�?�$&�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�2��q����� ����e�a�i��� �)�*�e�3�3��E�!�G�H�H�~���d�)�)��!� �J�J�v�.�.�E� ��v��v�,�C�>�"�?�$&�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�M��1�H�C��Q�J�E��U�5�1�9�_�-�A����.�A��M�M�)��� "��B�J�r�{�3�7G�7G�,H� I� I��� '��������)��)��)�"�S�L�E�E�E�)�����u�������Q�J�E���1�H�C� �� ��W��'�/�/�X��Jso����(D+��+E�E�H ��,AG.��.H�H� H(�'H(�L��#AK%��%K=�<K=�L#�"L#�&AN(��(N:�9N:)�_path_normpathc������������������������t����������j��������|�������������}�t����������|�t����������������������r5t����������j��������t����������t����������j��������|�������������������������������������pdS�t����������|�������������pdS�)�0Normalize path, eliminating double slashes, etc.r}���r���)r@���rA���r3���r4���rM���r����rN���r5���s��� r7���r���r�����s\�������y������d�E�"�"�� J��;�~�b�k�$�.?�.?�@�@�A�A�I�T�I��d�#�#�*�s�*r9���c�����������������������t����������j��������|�������������}�t����������|�t����������������������r d}d}d}d}nd}d}d}d}|����������������������||������������}�t����������|�������������\��}}�|����������������������|������������r||z ��}|����������������������|������������}�|����������������������|������������}d }|t����������|������������k�����r�||���������r||���������|k����r||=�n\||���������|k����rK|d k����r ||d z �����������|k����r||d z ��|d z����=�|d z��}n*|d k����r|� ��������������������|������������r||=�n|d z ��}n|d z ��}|t����������|������������k�������|s|s|���������������������|�������������||���������������������|������������z���S�)r����rQ���rR���r}�������..r���r���r���r���r���rT���) r@���rA���r3���r4���rE���r ���rU����lstripr���rn����endswith�appendr���)r6���r#���r&���r!���r"����prefix�compsry���s��� r7���r���r������s�������y������d�E�"�"�� ��C��F��F��F�F��C��F��F��F��|�|�F�C�(�(��!�$�'�'������?�?�3���� $��c�M�F��;�;�s�#�#�D�� � �3���� ���#�e�*�*�n�n���8�� �u�Q�x�6�1�1��!�H�H��q��V�#�#��q�5�5�U�1�Q�3�Z�6�1�1��a��c�!�A�#�g����F�A�A��!�V�V����� 4� 4�V��a�����F�A�A��Q�����#�e�*�*�n�n���� !�e�� !��L�L�� � � ��������'�'r9���c�����������������������t����������j��������|�������������}�t����������|�������������sLt����������|�t����������������������rt����������j����������������������}nt����������j����������������������}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@���rA���r���r3���r4����getcwdb�getcwdr���r���)r6����cwds��� r7����_abspath_fallbackr����"��sb��������9�T�?�?�D���;�;����d�E�"�"�� ��*�,�,�C�C��)�+�+�C��C������D�>�>�r9���)�_getfullpathnamec����������������������� �t����������t����������|�������������������������S�#�t����������t����������f$�r�t ����������|�������������cY�S�w�xY�w)z&Return the absolute version of a path.)r����r���r����r����r����r5���s��� r7���r ���r ���:��sO������ +�#�H�T�N�N�3�3�3����$�� +�� +�� +�$�T�*�*�*�*�*� +���s������ A��A)�_getfinalpathname�readlinkc�����������������������d}t������������������������}t����������|�������������|vr�|���������������������t����������|�������������������������� �|�}t����������|�������������}�t ����������|�������������s<t����������|������������s|}�nht ����������t����������t����������|������������|�������������������������}�n,#�t����������$�r}|j ��������|v�rY�d�}~n%��d�}~wt����������$�r�Y�nw�xY�wt����������|�������������|v��|�S�)N)rT���rj���rS������������ ����2����C����W���i&��i(��i)��)�setr ����add�_nt_readlinkr���r���r���r���r���r�����winerrorr����)r6����allowed_winerror�seen�old_path�exs��� r7����_readlink_deepr����G��s������L���u�u���t�n�n�D�(�(��H�H�X�d�^�^�$�$�$� ���#�D�)�)����T�{�{��C��"�(�+�+���'���#�D���):�):�D�$A�$A�B�B�D����� �� �� ��;�"2�2�2��E�E�E�E�������� �� �� ��� ����'��t�n�n�D�(�(�,��s*����1B"��7*B"��" C�, B;�:B;�; C� Cc����������������������d}|�d�d����������}|�r� �t����������|�������������}�|rt����������|�|������������n|�S�#�t����������$�r�}|j��������|vr�� �t ����������|�������������}||�k����r|rt����������||������������n|cY�d�}~S�n#�t����������$�r�Y�nw�xY�wt����������|�������������\��}�}|�r|s |�|z���cY�d�}~S�|rt����������||������������n|}Y�d�}~nd�}~ww�xY�w|���|S�)N)rT���rj���rS���r����r����r����r�����5����A���r����r�����{�������i���i���r���)r����r���r����r����r����r���)r6���r����r{���r�����new_path�names��� r7����_getfinalpathname_nonstrictr����q��sZ�����$�X����B�Q�B�x���� :� :�(��.�.��+/�9�t�D�$�'�'�'�T�9���� :�� :�� :��;�&6�6�6�� �� .�d�3�3�H��4�'�'�7;�I�t�H�d�3�3�3��I�I�I�I�I�I��(����������D������#�4�[�[� ��d����'���'��$�;�&�&�&�&�&�&�+/�9�t�D�$�'�'�'�T�����������' :���� ��� :�0��sJ����"3�� C� C��(A7�0C�6C��7 B�C��B�C��!C�'C���CF)�strictc�����������������<����t����������|�������������}�t����������|�t����������������������rSd}d}d}t����������j����������������������}t����������|�������������t����������t����������j��������t����������������������������������k����rdS�n@d}d}d}t����������j����������������������}t����������|�������������t����������t����������������������k����rdS�|�� ��������������������|������������}|st����������|�������������st����������||�������������}� �t����������|�������������}�d }np#�t����������$�r8}|rt����������t����������|������������������������d��t����������|�������������}�Y�d�}~n3d�}~wt����������$�r#}|r��|j��������}t#����������|�������������}�Y�d�}~nd�}~ww�xY�w|s�|�� ��������������������|������������r�|�� ��������������������|������������r||�t%����������|������������d�����������z���} n|�t%����������|������������d�����������} �t����������| ������������|�k����r| }�n6#�t����������$�r }Y�d�}~n'd�}~wt����������$�r}|j��������|k����r| }�Y�d�}~nd�}~ww�xY�w|�S�) Ns���\\?\rk���s���\\s���\\.\NULz\\?\rl���z\\z\\.\NULr���)r���r3���r4���r@���r����r ���rM���r(���r����rU���r���r���r����r����r�����strr����r����rn���) r6���r����r����rq����new_unc_prefixr����� had_prefix�initial_winerrorr�����spaths ��� r7���r)���r)������sh�������~�~���d�E�"�"�� $��F�(�J�$�N��*�,�,�C���~�~��"�+�g�*>�*>�!?�!?�?�?�$�}��@���F�'�J�#�N��)�+�+�C���~�~��'�!2�!2�2�2�#�|��_�_�V�,�,� ��� #�%��+�+�� #���T�?�?�D� 5�$�T�*�*�D� ������ "�� "�� "� ��� 1��c�"�g�g�&�&�D�0��D�>�>�D�D�D�D�D�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�3� �D����� �� �� ������������� !�� !�� !���;�"2�2�2� �D���������� !���� ��sB����/D�� E.�.D>�> E.�E)�)E.�G&��& H�5 H� H�H�getwindowsversionrS���rj���c����������������������t����������j��������|�������������}�t����������|�t����������������������rd}d}d}nd}d}d}|�|}|�st ����������d�������������t����������j��������|������������} �t����������t ����������|������������������������}t����������t ����������|�������������������������}t����������|������������\��}}t����������|������������\��} } t����������|������������t����������| ������������k����rt ����������d | �d |���������������d��|� ��������������������|������������D���������������}d��| � ��������������������|������������D���������������}d } t����������||������������D�],\��}}t����������|������������t����������|������������k����r�n| dz ��} �-|gt����������|������������| z ��z��|| d����������z���}|s|S�t����������|��S�#�t����������t����������t����������t����������t ����������f$�r�t#����������j��������d|�|���������������w�xY�w)z#Return a relative version of a pathrQ���r}���r����r���r���r���Nzno path specifiedzpath is on mount z, start on mount c�����������������������g�|�]}|�|��S���r������.0r����s��� r7���� <listcomp>zrelpath.<locals>.<listcomp>��s������<�<�<�A�!�<�a�<�<�<r9���c�����������������������g�|�]}|�|��S�r����r����r����s��� r7���r����zrelpath.<locals>.<listcomp>��s������:�:�:�1��:�Q�:�:�:r9���r���rT���r+���)r@���rA���r3���r4���r����r ���r���r ���r ���r����ziprn���r���r\���r]���r^����DeprecationWarningr_���r`���)r6���rs���r#���r!���r"���� start_abs�path_abs�start_drive� start_rest� path_drive� path_rest� start_list� path_listry����e1�e2�rel_lists��� r7���r+���r+������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�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��;Gc����������������������� ���|�st����������d�������������t����������t����������t����������j��������|�������������������������}�t����������|�d���������t����������������������rd�d�d� nd�d�d� ���fd �|�D���������������}�fd �|D���������������} �t�����������fd�|D���������������������������\��}n#�t�����������$�r�t����������d������������d �w�xY�wt����������t����������d��|D���������������������������������������dk����rt����������d�������������t����������|�d���������� ����������������������������������������������\��}}|����������������������������������}� fd�|D���������������}� fd�|D���������������}t����������|������������}t����������|������������}t����������|������������D�]\��} } | || ���������k����r|d | ����������}�n�|d t����������|����������������������}|r|�z���n|}|����������������������|������������z���S�#�t ����������t"����������f$�r�t%����������j��������dg|��R������w�xY�w)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencer���rQ���rR���r}���r���r���r���c������������������z������g�|�]7}t����������|������������������������������������������������������������������������������������8S�r����)r ���rE���rO���)r����rf���r&���r#���s��� ��r7���r����zcommonpath.<locals>.<listcomp>.��s;�������Q�Q�Q�a�z�!�)�)�F�C�"8�"8�">�">�"@�"@�A�A�Q�Q�Qr9���c������������������@������g�|�]\��}}|�������������������������������������S�r����r�����r����rx���rf���r#���s��� �r7���r����zcommonpath.<locals>.<listcomp>/��s'�������<�<�<���1�q�w�w�s�|�|�<�<�<r9���c��������������3����:����K����|�]\��}}|d�d�����������k����V����d�S�)NrT���r����r��s��� �r7���� <genexpr>zcommonpath.<locals>.<genexpr>2��s3�����������>�>�$�!�Q��2�A�2��#��>�>�>�>�>�>r9���z%Can't mix absolute and relative pathsNc��������������3���� ���K����|�] \��}}|V���� d�S��Nr����)r����rx���rf���s��� r7���r��zcommonpath.<locals>.<genexpr>9��s&����������-�-���A�1�-�-�-�-�-�-r9���rT���zPaths don't have the same drivec������������������$������g�|�]}|�|�k����� |�� S�r����r�����r����r����r!���s��� �r7���r����zcommonpath.<locals>.<listcomp>>��s#�������9�9�9��q�9�Q�&�[�[�!�[�[�[r9���c������������������,������g�|�]}�fd��|D�����������������S�)c������������������$������g�|�]}|�|�k����� |�� S�r����r����r��s��� �r7���r����z)commonpath.<locals>.<listcomp>.<listcomp>@��s#�������:�:�:�a��:�a�6�k�k��k�k�kr9���r����)r����rJ���r!���s��� �r7���r����zcommonpath.<locals>.<listcomp>@��s.�������P�P�P�q�:�:�:�:�1�:�:�:�P�P�Pr9���r/���)r�����tupler[���r@���rA���r3���r4���r����rn���r ���rE���r����min�max� enumerater���r\���r]���r_���r`���)ra����drivesplits�split_pathsr���r����r6����common�s1�s2ry���r����r����r&���r!���r#���s��� @@@r7���r/���r/�����sw�����������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�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�z�������������H�S��W�W�H�%�F� %�0�����5�������(�(�(�(���~�&��������$�\�:�E�:�:�:�:� ����s%����%G��B!�� G��!B<�<DG��%G=)�_isdirr��)9�__doc__r!���r"���r'���r#���r$���r&���r%���r(���r@���rB���r����r_����__all__r8����_winapir:���rF���r;���rG���r<���rH���r ����ImportErrorr���r���r ���r���r���r~���r���r���r���r����ntr����r���r���r���r����r���r����r����r ���r����r����r����r����r����r)����hasattrr����r*���r+���r/���r��r���r����r9���r7����<module>r%�����s�������� �� �� �� �� �� �� �� ��� � � � �� � � � ����������������������A��A��A�������!,�-��-��-��-��-��-��-��-��-��-� 8��8��8��8��$��� ,�� ,�� ,�,��,��,��,��,� ,����$�����()��)��)�^.��.��.�l�����.8��8��8���(�0���� ����������$��$��$������$�%�%�%�%�%�%�%����������������������:-��-��-�zj��j��j�`3+�!�!�!�!�!�!�Z+��+��+��+��W���((��((��((�'(��'(��'(��'(��'(�((����f�����"+�#�#�#�#�#�#�+��+��+��+�� ��� �� �� ��G�G�G� ����]�>�>�>�>�>�>�>�>� (��(��(�T/��/��/�b�"'��<��<��<��<��<��<�����������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*