GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 104.21.83.152  /  Your IP : 216.73.216.165
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python312/lib64/python3.12/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python312/lib64/python3.12/__pycache__/posixpath.cpython-312.pyc
�

��h�C��`�dZdZdZdZdZdZdZdZdZddl	Z	ddl
Z
ddlZddlZdd	l�gd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zej(je_d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdadad�Z	ddl m!Z"d�Z$dd�d�Z%d �Z&e
jNd!k(Z(d$d"�Z)d#�Z*y#e#$rd�Z"Y�-wxYw)%a�Common operations on Posix pathnames.

Instead of importing this module directly, import os and refer to
this module as os.path.  The "os.path" name is an alias for this
module on Posix systems; on other systems (e.g. Windows),
os.path provides the same operations in a manner specific to that
platform, and is an alias to another module (e.g. ntpath).

Some of this can actually be useful on non-Posix systems too, e.g.
for manipulation of the pathname component of URLs.
�.�..�/�:z
/bin:/usr/binNz	/dev/null�)�*)(�normcase�isabs�join�
splitdrive�	splitroot�split�splitext�basename�dirname�commonprefix�getsize�getmtime�getatime�getctime�islink�exists�lexists�isdir�isfile�ismount�
expanduser�
expandvars�normpath�abspath�samefile�sameopenfile�samestat�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpath�
commonpath�
isjunctionc�&�t|t�ryy)N�/r)�
isinstance�bytes��paths �0/opt/alt/python312/lib64/python3.12/posixpath.py�_get_sepr7)s���$�����c�,�tj|�S)z6Normalize case of pathname.  Has no effect under Posix��os�fspath)�ss r6rr4s��
�9�9�Q�<�r8c�d�tj|�}t|�}|j|�S)zTest whether a path is absolute)r;r<r7�
startswith)r=r%s  r6r	r	<s'��
�	�	�!��A�
�1�+�C��<�<���r8c�j�tj|�}t|�}|}	|s|dd|zttj|�D]7}|j	|�r|}�|r|j|�r||z
}�0|||zz
}�9	|S#tttf$rtjd|g|����wxYw)z�Join two or more pathname components, inserting '/' as needed.
    If any component is an absolute path, all previous path components
    will be discarded.  An empty last part will result in a path that
    ends with a separator.Nrr
)r;r<r7�mapr?�endswith�	TypeError�AttributeError�BytesWarning�genericpath�_check_arg_types)�a�pr%r5�bs     r6r
r
Gs���
	�	�	�!��A�
�1�+�C��D�����!�H�s�N��R�Y�Y��"�A��|�|�C� ����T�]�]�3�/���	����a����
#��K��
�~�|�4���$�$�V�Q�3��3�
��s�AB�-B2c���tj|�}t|�}|j|�dz}|d|||d}}|r"||t	|�zk7r|j|�}||fS)z�Split a pathname.  Returns tuple "(head, tail)" where "tail" is
    everything after the final slash.  Either part may be empty.�N�r;r<r7�rfind�len�rstrip)rIr%�i�head�tails     r6r
r
dsk��	�	�	�!��A�
�1�+�C�	�����q��A��2�A���!�"��$�D����C��I�
�%��{�{�3�����:�r8c��tj|�}t|t�rd}d}nd}d}t	j
||d|�S)Nr1�.rr)r;r<r2r3rF�	_splitext)rIr%r)s   r6rrusD��
�	�	�!��A��!�U����������� � ��C��v�6�6r8c�:�tj|�}|dd|fS)zJSplit a pathname into drive and path. On Posix, drive is always
    empty.Nrr:)rIs r6rr�s ��	�	�	�!��A��R�a�5�!�8�Or8c��tj|�}t|t�rd}d}nd}d}|dd|k7r|||fS|dd|k7s|dd|k(r|||ddfS||dd|ddfS)	a�Split a pathname into drive, root and tail. On Posix, drive is always
    empty; the root may be empty, a single slash, or two slashes. The tail
    contains anything after the root. For example:

        splitroot('foo/bar') == ('', '', 'foo/bar')
        splitroot('/foo/bar') == ('', '/', 'foo/bar')
        splitroot('//foo/bar') == ('', '//', 'foo/bar')
        splitroot('///foo/bar') == ('', '/', '//foo/bar')
    r1r8r�NrL��)r;r<r2r3)rIr%�emptys   r6rr�s���	�	�	�!��A��!�U������������!�u��|��e�Q���	
�1�Q��3��!�A�a�&�C�-��c�1�Q�R�5� � ��a���e�Q�q�r�U�"�"r8c�t�tj|�}t|�}|j|�dz}||dS)z)Returns the final component of a pathnamerLN)r;r<r7rN)rIr%rQs   r6rr�s5��
�	�	�!��A�
�1�+�C�	�����q��A��Q�R�5�Lr8c��tj|�}t|�}|j|�dz}|d|}|r"||t	|�zk7r|j|�}|S)z-Returns the directory component of a pathnamerLNrM)rIr%rQrRs    r6rr�sZ��
�	�	�!��A�
�1�+�C�	�����q��A��R�a�5�D����C��I�
�%��{�{�3����Kr8c�.�tj|�y)zQTest whether a path is a junction
    Junctions are not a part of posix semanticsFr:r4s r6r/r/�s���I�I�d�O�r8c�Z�	tj|�y#ttf$rYywxYw)zCTest whether a path exists.  Returns True for broken symbolic linksFT)r;�lstat�OSError�
ValueErrorr4s r6rr�s0���
�������
�Z� ����s��*�*c��	tj|�}tj|j�rytj|�}t|t�r
t|d�}nt|d�}t|�}	tj|�}|j}|j}||k7ry|j}|j}||k(ryy#t
tf$rYywxYw#t
tf$rYywxYw)z$Test whether a path is a mount pointF�..rT)r;ra�stat�S_ISLNK�st_moderbrcr<r2r3r
r+�st_dev�st_ino)r5�s1�parent�s2�dev1�dev2�ino1�ino2s        r6rr�s����
�X�X�d�^���<�<��
�
�#��
�9�9�T�?�D��$����d�E�"���d�D�!��
�f�
�F��
�X�X�f�
���9�9�D�
�9�9�D��t�|��
�9�9�D�
�9�9�D��t�|����7
�Z� ����� 
�Z� ����s#�C�C(�C%�$C%�(C:�9C:c�r�tj|�}t|t�rd}nd}|j	|�s|St|�}|j
|d�}|dkrt|�}|dk(rZdtjvr4	ddl	}	|jtj��j}natjd}nM	ddl	}|d|}t|t�rtj|�}	|j!|�}|j}|�t"j$dk(r|St|t�rtj&|�}d}nd	}|j)|�}|||dzxs|S#t$r|cYSwxYw#t$r|cYSwxYw#t$r|cYSwxYw#t$r|cYSwxYw)
zOExpand ~ and ~user constructions.  If user or $HOME is unknown,
    do nothing.�~�~rLr�HOMEN�vxworksr1r)r;r<r2r3r?r7�findrO�environ�pwd�ImportError�getpwuid�getuid�pw_dir�KeyError�fsdecode�getpwnam�sys�platform�fsencoderP)	r5�tilder%rQry�userhome�name�pwent�roots	         r6rrs����9�9�T�?�D��$��������?�?�5�!���
�4�.�C��	�	�#�q��A��1�u���I���A�v�����#�
��
��<�<��	�	��4�;�;���z�z�&�)�H�	���A�a�y���d�E�"��;�;�t�$�D�	��L�L��&�E�
�<�<����C�L�L�I�5����$����;�;�x�(���������t�$�H��t�A�B�x��(�D�(��I�
���
��
�
���
���	��K�	���	��K�	�sH�E5�-F�F�:F(�5F�F�F�F�F%�$F%�(F6�5F6c�,�tj|�}t|t�rRd|vr|Sts ddl}|j
d|j�atj}d}d}ttdd�}nPd|vr|Sts ddl}|j
d	|j�a
tj}d
}d}tj}d}	|||�}|s	|S|jd�\}}|jd�}	|	j|�r|	j|�r|	dd
}		|�:tj tjtj"|	��}
n||	}
||d}|d||
z}t%|�}||z
}��#t&$r|}Y�wxYw)zZExpand shell variables of form $var and ${var}.  Unknown variables
    are left unchanged.�$rNs\$(\w+|\{[^}]*\})�{�}�environb�$z\$(\w+|\{[^}]*\})�{�}rL���)r;r<r2r3�	_varprogb�re�compile�ASCII�search�getattr�_varprogrx�span�groupr?rBr�rrOr~)r5r�r��start�endrxrQ�m�jr��valuerSs            r6rr@s����9�9�T�?�D��$����t���K����
�
�#8�"�(�(�C�I��!�!�������"�j�$�/���d�?��K����z�z�"6����A�H����������*�*��	�A�
��4��O����"�K�!�v�v�a�y���1��w�w�q�z���?�?�5�!�d�m�m�C�&8���"�:�D�	������B�J�J�r�{�{�4�/@�$A�B����
�����8�D����8�e�#�D��D�	�A��D�L�D�'���	��A�	�s�&AF�F�F)�_path_normpathc��tj|�}t|t�r	d}d}d}d}nd}d}d}d}||k(r|St	|�\}}}|j|�}g}|D]A}	|	||fvr�
|	|k7s|s|r
|r|d	|k(r|j
|	��/|s�2|j��C|}||j|�z}|xs|S)
z0Normalize path, eliminating double slashes, etc.r1r8rUrerrYrrr�)	r;r<r2r3rr
�append�popr
)
r5r%r\�dot�dotdot�_�initial_slashes�comps�	new_comps�comps
          r6rrys����y�y�����d�E�"��C��E��C��F��C��E��C��F��5�=��J�#,�T�?� ��?�D��
�
�3����	��D���s�|�#������y��	�"�
�� 7�� � ��&���
�
���������%��0���{�s�r8c���tj|�}t|�sEt|t�rtj
�}ntj�}t||�}t|�S)zReturn an absolute path.)	r;r<r	r2r3�getcwdb�getcwdr
r)r5�cwds  r6rr�sK��
�9�9�T�?�D���;��d�E�"��*�*�,�C��)�)�+�C��C�����D�>�r8F)�strictc�j�tj|�}t|dd||i�\}}t|�S)zlReturn the canonical path of the specified filename, eliminating any
symbolic links encountered in the path.Nr)r;r<�
_joinrealpathr)�filenamer�r5�oks    r6r+r+�s6���y�y��"�H��X�b�q�\�8�V�R�@�H�D�"��4�=�r8c��t|t�rd}d}d}nd}d}d}t|�r|dd}|}|�r|j|�\}}}|r||k(r� ||k(r&|r!t	|�\}}||k(rt|||�}n|}�Kt||�}		t
j|	�}
tj|
j�}|s|	}��|	|vr.||	}|���|rt
j|	�nt|	|�dfSd||	<t|t
j|	�||�\}}|st||�dfS|||	<|r��|d	fS#t$r|r�d}Y��wxYw)
Nr1rUrerrrrLFT)r2r3r	�	partitionr
r
r;rarfrgrhrbr��readlink)
r5�restr��seenr%r#r$r�r��newpath�st�is_linkr�s
             r6r�r��s����$����������������T�{��A�B�x����
����s�+�
��a���t�v�~���6�>��"�4�[�
��d��6�>���f�f�5�D�����t�T�"��	/����'�"�B��l�l�2�:�:�.�G���D���d�?���=�D��������� ��G�T�*�E�1�1���W�
� ��r�{�{�7�';�V�T�J���b����d�#�U�*�*���W�
�Y�\��:���;�	����G�	�s�D9�9E
�	E
�darwinc�P�|std��tj|�}t|t�rd}d}d}nd}d}d}|�|}ntj|�}	t|�j
|�D�cgc]}|s�|��	}}t|�j
|�D�cgc]}|s�|��	}}tt||g��}|gt|�|z
z||dz}	|	s|St|	�Scc}wcc}w#ttttf$rtjd	||��wxYw)
z#Return a relative version of a pathzno path specifiedrUr1rerrrNr-)rcr;r<r2r3rr
rOrr
rCrDrE�DeprecationWarningrFrG)
r5r�r#r%r$�x�
start_list�	path_listrQ�rel_lists
          r6r-r-�s2����,�-�-�
�9�9�T�?�D��$����������������}����	�	�%� ���!(���!5�!5�c�!:�@�!:�A�a�a�!:�
�@� '��
� 3� 3�C� 8�>� 8�1�A�Q� 8�	�>���j�)�4�5�6���8�s�:��q�0�1�I�a�b�M�A����M��X����A��>��
�~�|�5G�H���$�$�Y��e�<�
��s<�C3�7C)�?C)�C3�!C.�)C.�-3C3�!C3�)
C3�32D%c	���|std��tttj|��}t|dt�rd�d}nd�d}	|D�cgc]}|j����}}	t�fd�|D��\}|D��cgc]}|D�cgc]
}|s�||k7s�|��c}��}}}t|�}t|�}|}	t|�D]\}
}|||
k7s�|d	|
}	n|r�n�d	d}|�j|	�zScc}w#t$r
td�d	�wxYwcc}wcc}}w#ttf$rtj d
g|����wxYw)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencerr1rUrrc3�.�K�|]}|dd�k(���y�w)NrL�)�.0rIr%s  �r6�	<genexpr>zcommonpath.<locals>.<genexpr>,s�����5�u�!��2�A��#��u�s�z%Can't mix absolute and relative pathsNr.)rc�tuplerAr;r<r2r3r
�set�min�max�	enumerater
rCrDrFrG)
�pathsr#r5�split_pathsr	r=�crkrm�commonrQ�prefixr%s
            @r6r.r.su�����@�A�A��#�b�i�i��'�(�E��%��(�E�"����������38�9�5�4�t�z�z�#��5��9�	P��5�u�5�5�F�E�EP�P�K�q�1�:�1�a��a�6�k��1�:�K��P�
��
��
��
�����b�M�D�A�q��B�q�E�z��B�Q����"�
��3�r��7�������(�(�(��#:���	P��D�E�4�O�	P��;��P��
�~�&���$�$�\�:�E�:�
��sl�D,�D�+D,�.D�D,�		D&�D!�D!� D!�$D&�)4D,�$D,�D,�D�D,�!D&�&D,�,'E)N)+�__doc__r#r$r)r%r&r'r(r*r;r�rfrF�__all__r7rr	r
r
rrVrrrrr/rrrr�r�r�posixr�rrzrr+r�r�r,r-r.r�r8r6�<module>r�s��
�

��	
��	��	��

��
��	
��
��	�
����'������:	�"7��(�(�0�0���
�#�>�����V6)�z���	�.�j �0�D	�"'��<�~"�l�l�h�6��!�R#��E����s�9B"�"B-�,B-

Youez - 2016 - github.com/yon3zu
LinuXploit