ó
    .Vði´  ã                  óf  • S SK Jr  S SKrS SKrS SKJr  S SKJr  SSKJ	r	  SSK
JrJr  \R                  S:X  ak  S SKrS SKrS S	KJr  S
rSr\R&                  " SSS9r\R*                  /\R,                  l        \R0                  \R,                  l        SS jr " S S\	5      rO " S S\	5      rS/rg)é    )ÚannotationsN)ÚEACCES)Úcasté   )ÚBaseFileLock)Úensure_directory_existsÚraise_on_not_writable_fileÚwin32)Úwintypesi   l   ÿÿ Úkernel32T)Úuse_last_errorc                ó¬   • [         R                  U 5      nU[        :X  a$  [        R                  " 5       nUS:X  a  gUS:X  a  gg[        U[        -  5      $ )z÷
Check if a path is a reparse point (symlink, junction, etc.) on Windows.

:param path: Path to check

:returns: True if path is a reparse point, False otherwise

:raises OSError: If GetFileAttributesW fails for reasons other than file-not-found

é   Fé   )Ú	_kernel32ÚGetFileAttributesWÚINVALID_FILE_ATTRIBUTESÚctypesÚget_last_errorÚboolÚFILE_ATTRIBUTE_REPARSE_POINT)ÚpathÚattrsÚerrs      ÚVD:\a\ltx-desktop-ci\ltx-desktop-ci\python-embed\Lib\site-packages\filelock\_windows.pyÚ_is_reparse_pointr      sS   € ô ×,Ñ,¨TÓ2ˆØÔ+Ó+ä×'Ò'Ó)ˆCØ�a‹xØØ�a‹xØàÜ�EÔ8Ñ8Ó9Ð9ó    c                  ó,   • \ rS rSrSrSS jrSS jrSrg)ÚWindowsFileLocké0   úWUses the :func:`msvcrt.locking` function to hard lock the lock file on Windows systems.c                ó¬  • [        U R                  5        [        U R                  5        [        U R                  5      (       a  SU R                   3n[	        U5      e[
        R                  [
        R                  -  n [
        R                  " U R                  X R                  5       5      n [        R                  " U[        R                  S5        X0R                  l        g ! [         a5  n[
        R                  " U5        UR                   ["        :w  a  e  S nAg S nAff = f! [         a  nUR                   ["        :w  a  e  S nAg S nAff = f)Nz1Lock file is a reparse point (symlink/junction): r   )r	   Ú	lock_filer   r   ÚOSErrorÚosÚO_RDWRÚO_CREATÚopenÚ
_open_modeÚmsvcrtÚlockingÚLK_NBLCKÚ_contextÚlock_file_fdÚcloseÚerrnor   )ÚselfÚmsgÚflagsÚfdÚ	exceptions        r   Ú_acquireÚWindowsFileLock._acquire3   sû   € Ü& t§~¡~Ô6Ü# D§N¡NÔ3ô ! §¡×0Ñ0ØIÈ$Ï.É.ÐIYÐZ�Ü˜c“lÐ"ô —	‘	Ü—*‘*ñð ð4Ü—W’W˜TŸ^™^¨U·O±OÓ4EÓF�ð
4Ü—N’N 2¤v§¡¸Ô:ð 24—M‘MÕ.øô ó Ü—H’H˜R”LØ —‘¬&Ó0Øô 1ûðûô ó Ø—?‘?¤fÓ,Øô -ûðús0   Â/D* Â1&C( Ã(
D'Ã2+D"Ä"D'Ä*
EÄ4EÅEc                óÞ   • [        SU R                  R                  5      nS U R                  l        [        R                  " U[        R
                  S5        [        R                  " U5        g )NÚintr   )r   r-   r.   r*   r+   ÚLK_UNLCKr%   r/   )r1   r4   s     r   Ú_releaseÚWindowsFileLock._releaseP   sC   € Ü�e˜TŸ]™]×7Ñ7Ó8ˆBØ)-ˆD�M‰MÔ&Ü�NŠN˜2œvŸ™°Ô2Ü�HŠH�R�Lr   © N©ÚreturnÚNone©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r6   r;   Ú__static_attributes__r=   r   r   r   r   0   s   † Ùeô	4÷:	r   r   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)r   éX   r!   c                ó   • [         e©N©ÚNotImplementedError©r1   s    r   r6   r7   [   ó   € Ü%Ð%r   c                ó   • [         erK   rL   rN   s    r   r;   r<   ^   rO   r   r=   Nr>   rA   r=   r   r   r   r   X   s   † Ùeô	&÷	&r   )r   Ústrr?   r   )Ú
__future__r   r%   Úsysr0   r   Útypingr   Ú_apir   Ú_utilr   r	   Úplatformr   r*   r   r   r   ÚWinDLLr   ÚLPCWSTRr   ÚargtypesÚDWORDÚrestyper   r   Ú__all__r=   r   r   Ú<module>r^      s¢   ðÝ "ã 	Û 
Ý Ý å ß Fà‡<�<�7ÓÛÛÝð $.Ð Ø(Ðð —’˜j¸Ñ>€IØ-5×-=Ñ-=Ð,>€I× Ñ Ô)Ø+3¯>©>€I× Ñ Ô(ô:ô.$˜,õ $ôP&˜,ô &ð ð�r   