§
    ÆwdfÕ  ã                   óp  — d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 dZ
ej        dk    r}	 ddlZdZdZej        j        j        Zd	„ Zej        j        j        Zej        j        j        Zej        j        j        Zej        j        j        Zd
Z
d„ Zn# e$ r	 d„ Zd„ ZY nw xY wd„ ZdS ej        Zd
Z
dS )am  
    werkzeug.posixemulation
    ~~~~~~~~~~~~~~~~~~~~~~~

    Provides a POSIX emulation for some features that are relevant to
    web applications.  The main purpose is to simplify support for
    systems such as Windows NT that are not 100% POSIX compatible.

    Currently this only implements a :func:`rename` function that
    follows POSIX semantics.  Eg: if the target file already exists it
    will be replaced without asking.

    This module was introduced in 0.6.1 and is not a public interface.
    It might become one in later versions of Werkzeug.

    :copyright: 2007 Pallets
    :license: BSD-3-Clause
é    Né   )Ú
to_unicode)Úget_filesystem_encodingFÚnté   c                 ó4  — t          | t          ¦   «         ¦  «        } t          |t          ¦   «         ¦  «        }t          | |¦  «        rdS d}d}|sG|dk     rAt          | |t          t
          z  ¦  «        }|st          j        d¦  «         |dz  }|s|dk     °A|S )NTr   Féd   çü©ñÒMbP?r   )r   r   Ú_rename_atomicÚ_MoveFileExÚ_MOVEFILE_REPLACE_EXISTINGÚ_MOVEFILE_WRITE_THROUGHÚtimeÚsleep)ÚsrcÚdstÚretryÚrvs       ú\/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/werkzeug/posixemulation.pyÚ_renamer   '   s¸   € Ý˜SÕ"9Ñ";Ô";Ñ<Ô<ˆCÝ˜SÕ"9Ñ";Ô";Ñ<Ô<ˆCÝ˜c 3Ñ'Ô'ð ØtØˆEØˆBØð ˜U Sš[˜[Ý Ø˜Õ8Õ;RÑRñô ð ð Ý”J˜uÑ%Ô%Ð%Ø˜Q‘JEð ð ˜U Sš[˜[ð ˆIó    Tc           	      óH  — t          d dddddd¦  «        }|dk    rdS 	 d}d}|sZ|dk     rTt          | |d d t          t          z  |¦  «        }|rt	          |¦  «        }n!t          j        d¦  «         |dz  }|s|dk     °T|t          |¦  «         S # t          |¦  «         w xY w)	Nr   iè  zWerkzeug renameéÿÿÿÿFr	   r
   r   )Ú_CreateTransactionÚ_MoveFileTransactedr   r   Ú_CommitTransactionr   r   Ú_CloseHandle)r   r   Útar   r   s        r   r   r   >   sß   € Ý# D¨!¨Q°°1°dÐ<MÑNÔNˆBØRŠxˆxØuð!ØØØð # ¨¢ Ý,ØØØØÝ2Õ5LÑLØñô Bð ð #Ý/°Ñ3Ô3˜Øåœ
 5Ñ)Ô)Ð)Ø ™
˜ð ð # ¨¢ ð å˜RÑ Ô Ð Ð ø•˜RÑ Ô Ð Ð øøøs   ŸA!B ÂB!c                 ó   — dS ©NF© ©r   r   s     r   r   r   Z   ó   € Ø5r   c                 ó   — dS r    r!   r"   s     r   r   r   ]   r#   r   c                 ó¦  — t          | |¦  «        rd S 	 t          j        | |¦  «         d S # t          $ r›}|j        t          j        k    r‚ d|t          j        dt          j	        ¦  «        fz  }t          j        ||¦  «         t          j        | |¦  «         	 t          j
        |¦  «         n# t          $ r Y n
w xY wY d }~d S Y d }~d S d }~ww xY w)Nz%s-%08xr   )r   ÚosÚrenameÚOSErrorÚerrnoÚEEXISTÚrandomÚrandintÚsysÚmaxsizeÚunlinkÚ	Exception)r   r   ÚeÚolds       r   r'   r'   `   sø   € å3˜ÑÔð 	ØˆFð	ÝŒIc˜3ÑÔÐÐÐøÝð 		ð 		ð 		ØŒw%œ,Ò&Ð&ØØ˜s¥F¤N°1µc´kÑ$BÔ$BÐCÑCˆCÝŒIc˜3ÑÔÐÝŒIc˜3ÑÔÐðÝ”	˜#‘”øÝð ð ð Øðøøøð àøøøøð		øøøs9   ”+ «
CµA$CÂB/Â.CÂ/
B<Â9CÂ;B<Â<CÃC) Ú__doc__r)   r&   r+   r-   r   Ú_compatr   Ú
filesystemr   Úcan_rename_open_fileÚnameÚctypesr   r   ÚwindllÚkernel32ÚMoveFileExWr   r   Úktmw32ÚCreateTransactionr   ÚCommitTransactionr   ÚMoveFileTransactedWr   ÚCloseHandler   r   r0   r'   r!   r   r   ú<module>rA      so  ððð ð$ €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /àÐ à„7ˆd‚?€?ð>Øˆˆˆà%(Ð"Ø"%ÐØ”mÔ,Ô8ˆð	ð 	ð 	ð" $œ]Ô1ÔCÐØ#œ]Ô1ÔCÐØ$œmÔ4ÔHÐØ”}Ô-Ô9ˆØ#Ðð	!ð 	!ð 	!ð 	!øð4 ð ð ð ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ðøøøðð ð ð ð ð( ŒY€FØÐÐÐs   ±A%B ÂB%Â$B%