
    =Og|                        	 g 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ZddlZddlmZ ddlZddlZddlZddlZej        Zej        ej        z  ej        z  Z eed          r
eej         z  ZeZ! eed          r
e!ej"        z  Z! eed          rej#        Z#ndZ#dZ$ e            Z%d	 Z&d
 Z'd Z( G d d          Z)d Z*d Z+da,d Z-d Z.d Z/d Z0d Z1d Z2da3d Z4d Z5d Z6d/dZ7d0dZ8de$dfdZ9 G d d          Z: G d  d!          Z;	 	 	 d1dd%d&Z<ej=        d'k    sej>        d(k    re<Z?n eed)          a@	 	 	 d2dd%d*Z? G d+ d,ejA                  ZB G d- d.          ZCdS )3)NamedTemporaryFileTemporaryFileSpooledTemporaryFileTemporaryDirectorymkstempmkdtempmktempTMP_MAXgettempprefixtempdir
gettempdirgettempprefixbgettempdirb    N)Random
O_NOFOLLOWO_BINARYr	   i'  tmpc                 R    	 t          j        |            dS # t          $ r Y dS w xY w)NTF)_oslstatOSError)fns    !/usr/lib64/python3.11/tempfile.py_existsr   M   s?    	" t    uus    
&&c                     	 d }| D ]}|t          |t          j                  rt          j        |          }t          |t                    r |t
          u rt          d          t          }h|t          u rt          d          t
          }|/t          t          t          t
                    rt
          S t          S |S )Nz1Can't mix bytes and non-bytes in path components.)
isinstancer   PathLikefspathbytesstr	TypeErrorr   )argsreturn_typeargs      r   _infer_return_typer%   V   s    LK  ;c3<(( 	"*S//Cc5!! 		c!! !3 4 4 4KKe## !3 4 4 4KK?j#66?J L    c                     	 t          | ||          }|
 |            }| *|t          u rt          } nt          j        t                    } |&|t          u rt                      }nt                      }| |||fS N)r%   r    templater   fsencoder   r   )prefixsuffixdiroutput_types       r   _sanitize_paramsr/   s   s    C$VVS99K~~#FF\(++F
{#,,CC--C63++r&   c                   6    e Zd Z	 dZed             Zd Zd ZdS )_RandomNameSequence%abcdefghijklmnopqrstuvwxyz0123456789_c                     t          j                    }|t          | dd           k    rt                      | _        || _        | j        S )N_rng_pid)r   getpidgetattr_Random_rngr4   )selfcur_pids     r   rngz_RandomNameSequence.rng   s>    *,,gdJ5555		DI#DMyr&   c                     | S r(    r9   s    r   __iter__z_RandomNameSequence.__iter__   s    r&   c                 j    d                     | j                            | j        d                    S )N    )k)joinr;   choices
charactersr>   s    r   __next__z_RandomNameSequence.__next__   s+    wwtx''1'==>>>r&   N)__name__
__module____qualname__rF   propertyr;   r?   rG   r=   r&   r   r1   r1      sW        + 9J  X  ? ? ? ? ?r&   r1   c                  "   	 g } dD ]-}t          j        |          }|r|                     |           .t           j        dk    rV|                     t           j                            d          t           j                            d          ddddg           n|                     g d	           	 |                     t          j                               n6# t          t          f$ r" |                     t           j                   Y nw xY w| S )
N)TMPDIRTEMPTMPntz~\AppData\Local\Tempz%SYSTEMROOT%\Tempzc:\tempzc:\tmpz\tempz\tmp)z/tmpz/var/tmpz/usr/tmp)r   getenvappendnameextendpath
expanduser
expandvarsgetcwdAttributeErrorr   curdir)dirlistenvnamedirnames      r   _candidate_tempdir_listr^      s&   & G + , ,*W%%+GNN7+++ x4,,-DEE,,-ABB#Y'D 	E 	E 	E 	E 	999:::#sz||$$$$G$ # # #sz"""""# Ns   2&C 0DDc                     	 t                      } t                      }|D ]}|t          j        k    rt          j                            |          }t          d          D ]?}t          |           }t          j                            ||          }	 t          j	        |t          d          }	 	 t          j        |d           t          j        |           n# t          j        |           w xY w	 t          j        |           n# t          j        |           w xY w|c c S # t          $ r Y t          $ rU t          j        dk    rAt          j                            |          r"t          j        |t          j                  rY .Y  nt(          $ r Y  nw xY wt+          t,          j        d|z            )Nd     s   blatrP   z)No usable temporary directory found in %s)r1   r^   r   rZ   rU   abspathrangenextrD   open_bin_openflagswritecloseunlinkFileExistsErrorPermissionErrorrS   isdiraccessW_OKr   FileNotFoundError_errnoENOENT)namerr[   r-   seqrS   filenamefds          r   _get_default_tempdirrv      s   >  !!E%''G  #*(""3''C:: 	 	C;;Dx}}S$//HXh>>)&	"g...	"	"Jx((((CJx((((




"   "    H$$)<)<$JsCH-- %H   
FMG#$% % %sI   D)1CD
C11D
5D)
D  D))
F5AF	FFc                      	 t           gt                                           	 t           t                      a t                                           n# t                                           w xY wt           S r(   )_name_sequence
_once_lockacquirer1   releaser=   r&   r   _get_candidate_namesr|      sh    A 	!%!4!6!6    J       A A-c                    	 t           j                            |           } t                      }|t          u rt          t           j        |          }t          t                    D ]}t          |          }t           j        
                    | ||z   |z             }t          j        d|           	 t          j        ||d          }	nj# t          $ r Y pt          $ rR t           j        dk    r@t           j                            |           r!t          j        | t           j                  rY ɂ w xY w|	|fc S t          t(          j        d          )Nztempfile.mkstempra   rP   z#No usable temporary file name found)r   rU   rb   r|   r   mapr*   rc   r	   rd   rD   _sysauditre   rj   rk   rS   rl   rm   rn   rp   EEXIST)
r-   presufflagsr.   namesrs   rS   fileru   s
             r   _mkstemp_innerr      sI   H
(

3

C ""EeCL%((W~~  E{{x}}S#*s"233
%t,,,	$u--BB 	 	 	H 	 	 	 D  SX^^C%8%8 
3)) !	 4x
&-?A A As   3C


D1AD1/D1c                     | t           j        v r | |g|R ddi d S t           j        dk    st           j                            |          s | |g|R   d S d S )Nfollow_symlinksFrP   )r   supports_follow_symlinksrS   rU   islink)funcrU   r"   s      r   _dont_follow_symlinksr     s|    s+++T0D000%00000	T		!6!6	TD 
	r&   c                     	 t           j        }t          || d           n# t          $ r Y nw xY wt          t           j        | d           d S )Nr     )r   chflagsr   rY   chmod)rU   r   s     r   _resetpermsr     sc    0+ 	gtQ////     #)T511111s     
--c                  6    	 t          j        t                    S r(   )r   fsdecoder)   r=   r&   r   r
   r
   $  s    A<!!!r&   c                  6    	 t          j        t                    S r(   )r   r*   r)   r=   r&   r   r   r   (  s    @<!!!r&   c                      	 t           gt                                           	 t           t                      a t                                           n# t                                           w xY wt           S r(   )r   ry   rz   rv   r{   r=   r&   r   _gettempdirr   .  sc    0	!.00    J    Nr}   c                  D    	 t          j        t                                S r(   )r   r   r   r=   r&   r   r   r   :  s    *<&&&r&   c                  D    	 t          j        t                                S r(   )r   r*   r   r=   r&   r   r   r   >  s    ,<&&&r&   Fc                 x    	 t          || |          \  }} }}|rt          }nt          }t          ||| ||          S r(   )r/   _text_openflagsrf   r   )r,   r+   r-   textr.   r   s         r   r   r   B  sM    8 (8'L'L$FFC #vvukBBBr&   c                    	 t          || |          \  }} }}t                      }|t          u rt          t          j        |          }t          t                    D ]}t          |          }t          j	        
                    |||z   | z             }t          j        d|           	 t	          j        |d           nj# t          $ r Y ot          $ rR t          j        dk    r@t          j	                            |          r!t	          j        |t          j                  rY Ȃ w xY w|c S t          t(          j        d          )Nztempfile.mkdtempr   rP   z(No usable temporary directory name found)r/   r|   r   r   r   r*   rc   r	   rd   rU   rD   r   r   mkdirrj   rk   rS   rl   rm   rn   rp   r   )r,   r+   r-   r.   r   rs   rS   r   s           r   r   r   i  sN   
 (8'L'L$FFC ""EeCL%((W~~  E{{x}}S&4-&"899
%t,,,	IdE"""" 	 	 	H 	 	 	 D  SX^^C%8%8 
3)) !	 
&-DF F Fs   *C  
D'AD'%D'rA   c                 2   	 |t                      }t                      }t          t                    D ]J}t	          |          }t
          j                            |||z   | z             }t          |          s|c S Kt          t          j        d          )Nz"No usable temporary filename found)r   r|   rc   r	   rd   r   rU   rD   r   rj   rp   r   )r,   r+   r-   r   rs   rS   r   s          r   r   r     s    " {ll ""EW~~  E{{x}}S&4-&"899t}} 	KKK	 &->@ @ @r&   c                   Z    e Zd Z	 dZdZd	dZej        dk    rej        fdZ	d Z
dS d Z	dS )
_TemporaryFileCloserNFTc                 0    || _         || _        || _        d S r(   )r   rS   deleter9   r   rS   r   s       r   __init__z_TemporaryFileCloser.__init__  s    		r&   rP   c                     | j         s`| j        [d| _         	 | j                                         | j        r || j                   d S d S # | j        r || j                   w w xY wd S d S NT)close_calledr   rh   r   rS   )r9   ri   s     r   rh   z_TemporaryFileCloser.close  s    $ *)>$(!*IOO%%%{ *ty)))))* *t{ *ty))))** *)>)>s   A A%c                 .    |                                   d S r(   )rh   r>   s    r   __del__z_TemporaryFileCloser.__del__  s    JJLLLLLr&   c                 X    | j         s"d| _         | j                                         d S d S r   )r   r   rh   r>   s    r   rh   z_TemporaryFileCloser.close  s7    $ "$(!	!!!!!" "r&   T)rH   rI   rJ   r   r   r   r   rS   ri   rh   r   r=   r&   r   r   r     s         DL    x4  #z 	* 	* 	* 	*	 	 	 	 		" 	" 	" 	" 	"r&   r   c                   6    e Zd Z	 d	dZd Zd Zd Zd Zd ZdS )
_TemporaryFileWrapperTc                 \    || _         || _        || _        t          |||          | _        d S r(   )r   rS   r   r   _closerr   s       r   r   z_TemporaryFileWrapper.__init__  s.    		+D$??r&   c                    | j         d         }t          ||          }t          |d          r/|t          j                  fd            }| j        |_        |}t          |t                    st          | ||           |S )Nr   __call__c                       | i |S r(   r=   )r"   kwargsr   s     r   func_wrapperz7_TemporaryFileWrapper.__getattr__.<locals>.func_wrapper  s    tT,V,,,r&   )	__dict__r6   hasattr
_functoolswrapsr   r   intsetattr)r9   rS   r   ar   r   s        @r   __getattr__z!_TemporaryFileWrapper.__getattr__  s     }V$D$1j!! 	Dd##- - - - $#- $(<L A!S!! 	#D$"""r&   c                 8    | j                                          | S r(   )r   	__enter__r>   s    r   r   z_TemporaryFileWrapper.__enter__  s    	r&   c                 f    | j                             |||          }|                                  |S r(   )r   __exit__rh   )r9   excvaluetbresults        r   r   z_TemporaryFileWrapper.__exit__  s-    ##C33

r&   c                 :    	 | j                                          d S r(   )r   rh   r>   s    r   rh   z_TemporaryFileWrapper.close
  s#    	 	r&   c              #   &   K   | j         D ]}|V  d S r(   )r   )r9   lines     r   r?   z_TemporaryFileWrapper.__iter__  s.       I 	 	DJJJJ	 	r&   Nr   )	rH   rI   rJ   r   r   r   r   rh   r?   r=   r&   r   r   r     s|        @ @ @ @  *    
      r&   r   w+bTerrorsc          	         	 t                    \  t          t          j        dk    r|rt          j        z  d| vrt          j        |          }d fd}		 t          j        | |||||	          }
	 t          |
d|
          }t          |d|          }|_        t          |
|          S #  |

                                  xY w#  &t          j        dk    r|st          j                    xY w)NrP   bc                  4    t                    \  }|S r(   )r   )r"   ru   r-   r   rS   r.   r+   r,   s     r   openerz"NamedTemporaryFile.<locals>.opener?  s!    !#vvukJJD	r&   	bufferingnewlineencodingr   r   bufferraw)r/   rf   r   rS   O_TEMPORARY_iotext_encodingre   r6   r   rh   ri   )moder   r   r   r,   r+   r-   r   r   r   r   r   r   rS   r.   s       ```     @@@r   r   r     sU   ( (8'L'L$FFCE x4F 
$$X..D         xTY '(6%' ' '	$$//C#uc**CCH(tV<<<	JJLLLSX%5%5&%5Jts   +C 9C CC +Dposixcygwin	O_TMPFILEc          	         	 d| vrt          j        |          }t                    \  t          t          rmd fd}	 t          j        | |||||          }	t          |	d|	          }
t          |
d|
          }
|
_        |	S # t          $ r daY nt          $ r Y nw xY wd fd}t          j        | |||||          }	t          |	d|	          }
t          |
d|
          }
|
_        |	S )Nr   c                  n    t           j        z  t           j         z  }t          j        |d          S )Nra   )r   r   O_CREATre   )r"   flags2r-   ru   r   s     r   r   zTemporaryFile.<locals>.openery  s0    #-/CK<?Xc6511	r&   r   r   r   Fc                      t                    \  }	 t          j        |           n'# t          $ r}t          j                    d }~ww xY wS r(   )r   r   ri   BaseExceptionrh   )	r"   rS   er-   ru   r   r.   r+   r,   s	      r   r   zTemporaryFile.<locals>.opener  sj    %c665+NNHB
4        	" Is   . 
AAA)
r   r   r/   rf   _O_TMPFILE_WORKSre   r6   rS   IsADirectoryErrorr   )r   r   r   r   r,   r+   r-   r   r   r   r   ru   r   r.   s       ```    @@@r   r   r   _  s   	 d??(22H+;FFC+P+P([ 	B      
xTY(/('-f> > > dHd33c5#..$ ) ) ) $)        	 	 	 	 	 	 	 	 	 	 xTY '(6%' ' ' dHd++c5#&&s   AB B."	B.-B.c                   d   e Zd Z	 dZ	 	 	 d'dddZ eej                  Zd Z	d	 Z
d
 Zd Zd Zd Zd Zed             Zed             Zed             Zd Zd Zd Zed             Zed             Zed             Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d(d"Z$d# Z%d$ Z&d% Z'd& Z(dS ))r   Fr   r   r   Nr   c	          	          d|v rt          j                    | _        nBt          j        |          }t          j        t          j                    ||	|          | _        || _        d| _        ||||||||	d| _        d S )Nr   )r   r   r   F)r   r   r,   r+   r   r   r-   r   )r   BytesIO_filer   TextIOWrapper	_max_size_rolled_TemporaryFileArgs)
r9   max_sizer   r   r   r   r,   r+   r-   r   s
             r   r   zSpooledTemporaryFile.__init__  s     $;;DJJ(22H*3;==%-f$+- - -DJ "+/i-3v/7G*-#A #Ar&   c                     | j         rd S | j        }|r.|                                |k    r|                                  d S d S d S r(   )r   r   tellrollover)r9   r   r   s      r   _checkzSpooledTemporaryFile._check  sP    <> 			h..MMOOOOO	 	..r&   c                    | j         rd S | j        }t          di | j        x}| _        | `|                                }t          |d          r?|j                            |                                	                                           n'|                    |	                                           |
                    |d           d| _         d S )Nr   r   Tr=   )r   r   r   r   r   r   r   rg   detachgetvalueseek)r9   r   newfileposs       r   r   zSpooledTemporaryFile.rollover  s    <z,GGt/FGGG$*#iikk7H%% 	+N  !7!7!9!9::::MM$--//***S!r&   c                 <    | j         j        rt          d          | S )Nz%Cannot enter context with closed file)r   closed
ValueErrorr>   s    r   r   zSpooledTemporaryFile.__enter__  s$    : 	FDEEEr&   c                 8    | j                                          d S r(   r   rh   r9   r   r   r   s       r   r   zSpooledTemporaryFile.__exit__      
r&   c                 4    | j                                         S r(   )r   r?   r>   s    r   r?   zSpooledTemporaryFile.__iter__      z""$$$r&   c                     | j         sFt          j        d                    |           t          d|            |                                  d S d S )NzUnclosed file {!r}   )
stacklevelsource)r   	_warningswarnformatResourceWarningrh   r>   s    r   r   zSpooledTemporaryFile.__del__  s\    { 	N$++D11	    JJLLLLL	 	r&   c                 8    | j                                          d S r(   r   r>   s    r   rh   zSpooledTemporaryFile.close  r  r&   c                     | j         j        S r(   )r   r   r>   s    r   r   zSpooledTemporaryFile.closed      z  r&   c                     | j         j        S r(   )r   r   r>   s    r   r   zSpooledTemporaryFile.encoding      z""r&   c                     | j         j        S r(   )r   r   r>   s    r   r   zSpooledTemporaryFile.errors   r  r&   c                 \    |                                   | j                                        S r(   )r   r   filenor>   s    r   r  zSpooledTemporaryFile.fileno  s#    z  """r&   c                 8    | j                                          d S r(   )r   flushr>   s    r   r  zSpooledTemporaryFile.flush  r  r&   c                 4    | j                                         S r(   )r   isattyr>   s    r   r  zSpooledTemporaryFile.isatty      z  """r&   c                 V    	 | j         j        S # t          $ r | j        d         cY S w xY w)Nr   )r   r   rY   r   r>   s    r   r   zSpooledTemporaryFile.mode  s@    	3:?" 	3 	3 	3*62222	3s    ((c                 >    	 | j         j        S # t          $ r Y d S w xY wr(   )r   rS   rY   r>   s    r   rS   zSpooledTemporaryFile.name  s3    	:?" 	 	 	44	s    
c                     | j         j        S r(   )r   newlinesr>   s    r   r  zSpooledTemporaryFile.newlines  r  r&   c                 4    | j                                         S r(   )r   readabler>   s    r   r  zSpooledTemporaryFile.readable   r  r&   c                       | j         j        | S r(   )r   readr9   r"   s     r   r   zSpooledTemporaryFile.read#      tz%%r&   c                       | j         j        | S r(   )r   read1r!  s     r   r$  zSpooledTemporaryFile.read1&  s    tz&&r&   c                 6    | j                             |          S r(   )r   readintor9   r   s     r   r&  zSpooledTemporaryFile.readinto)  s    z""1%%%r&   c                 6    | j                             |          S r(   )r   	readinto1r'  s     r   r)  zSpooledTemporaryFile.readinto1,  s    z##A&&&r&   c                       | j         j        | S r(   )r   readliner!  s     r   r+  zSpooledTemporaryFile.readline/  s    "tz"D))r&   c                       | j         j        | S r(   )r   	readlinesr!  s     r   r-  zSpooledTemporaryFile.readlines2  s    #tz#T**r&   c                 4    | j                                         S r(   )r   seekabler>   s    r   r/  zSpooledTemporaryFile.seekable5  r  r&   c                       | j         j        | S r(   )r   r   r!  s     r   r   zSpooledTemporaryFile.seek8  r"  r&   c                 4    | j                                         S r(   )r   r   r>   s    r   r   zSpooledTemporaryFile.tell;  s    z   r&   c                     || j                                         S || j        k    r|                                  | j                             |          S r(   )r   truncater   r   )r9   sizes     r   r3  zSpooledTemporaryFile.truncate>  sK    <:&&(((dn$$:&&t,,,r&   c                 4    | j                                         S r(   )r   writabler>   s    r   r6  zSpooledTemporaryFile.writableF  r  r&   c                 h    | j         }|                    |          }|                     |           |S r(   )r   rg   r   )r9   sr   rvs       r   rg   zSpooledTemporaryFile.writeI  s/    zZZ]]D	r&   c                 h    | j         }|                    |          }|                     |           |S r(   )r   
writelinesr   )r9   iterabler   r9  s       r   r;  zSpooledTemporaryFile.writelinesO  s1    z__X&&D	r&   c                 4    | j                                         S r(   )r   r   r>   s    r   r   zSpooledTemporaryFile.detachU  r  r&   )r   r   r   NNNNNr(   ))rH   rI   rJ   r   r   classmethod_typesGenericAlias__class_getitem__r   r   r   r   r?   r   rh   rK   r   r   r   r  r  r  r   rS   r  r  r   r$  r&  r)  r+  r-  r/  r   r   r3  r6  rg   r;  r   r=   r&   r   r   r     s        G9;(,/3A?CA A A A A" $F$788    *  
  % % %     ! ! X! # # X# ! ! X!# # #  # # # 3 3 X3   X # # X#% % %& & &' ' '& & &' ' '* * *+ + +% % %& & &! ! !- - - -% % %    # # # # #r&   r   c                       e Zd Z	 	 	 d
dZedd            Zedd            Zd Zd Zd Z	d	 Z
 eej                  ZdS )r   NFc                     t          |||          | _        || _        t          j        | | j        | j        d                    |           | j                  | _        d S )NzImplicitly cleaning up {!r})warn_messageignore_errors)r   rS   _ignore_cleanup_errors_weakreffinalize_cleanupr
  
_finalizer)r9   r,   r+   r-   ignore_cleanup_errorss        r   r   zTemporaryDirectory.__init__e  s\    FFC00	&;#"+$-6==dCC57 7 7r&   c                 J      fd}t          j        |           d S )Nc                 J   t          |d         t                    rer|k    rrd S  	 |k    r,t          t          j                            |                     t          |           	 t          j        |           d S # t          $ r                     |           Y nt          $ r 	 t          j	        |          }n# t          $ r rY Y d S  w xY wt          j        |j                  sRt          j        |j                  r9t          |d          r/|j        t          j        z  r|j        t          j        k    rrY d S                      ||k               Y nw xY wd S d S # t(          $ r Y d S w xY wt          |d         t(                    rd S s d S )Nr   rE  st_file_attributes)rE  repeated)
issubclassrk   r   r   rU   r]   ri   r   _rmtreer   r   _statS_ISLNKst_modeS_ISDIRr   rO  FILE_ATTRIBUTE_REPARSE_POINTst_reparse_tagIO_REPARSE_TAG_MOUNT_POINTro   )r   rU   exc_infostclsrE  rS   rP  s       r   onerrorz+TemporaryDirectory._rmtree.<locals>.onerrorp  s*   (1+77 . $ #t||#CH$4$4T$:$:;;;%%%=
4(((((, G G GDFFFFF* = = ="!$4BB& " " ", ' &!" "M"*55 " %bj 9 9"$R)=>>"  2U5WW"  .%2RRR, ' &!D.2dl $ = = = = =/= GF0= =(   DDHQK):;; $  ss   AE2 .B !E+%E2 '	E+1CE+CE+E2 CA0E+E2 E+(E2 *E++E2 2
F ?F )r]  )_shutilrmtree)r\  rS   rE  rP  r]  s   ```` r   rR  zTemporaryDirectory._rmtreen  sL    /	 /	 /	 /	 /	 /	 /	 /	b 	tW------r&   c                 h    |                      ||           t          j        |t                     d S NrN  )rR  r  r	  r  )r\  rS   rD  rE  s       r   rI  zTemporaryDirectory._cleanup  s0    D666|_55555r&   c                 L    d                     | j        j        | j                  S )Nz	<{} {!r}>)r
  	__class__rH   rS   r>   s    r   __repr__zTemporaryDirectory.__repr__  s    !!$."949EEEr&   c                     | j         S r(   )rS   r>   s    r   r   zTemporaryDirectory.__enter__  s
    yr&   c                 .    |                                   d S r(   )cleanupr   s       r   r   zTemporaryDirectory.__exit__  s    r&   c                     | j                                         s$t          j                            | j                  r#|                     | j        | j                   d S d S ra  )rJ  r   r   rU   existsrS   rR  rF  r>   s    r   rg  zTemporaryDirectory.cleanup  s^    ?!!## 	Osxty'A'A 	OLL$2MLNNNNN	O 	Or&   NNNF)FF)F)rH   rI   rJ   r   r>  rR  rI  rd  r   r   rg  r?  r@  rA  r=   r&   r   r   r   Y  s        	 6:',7 7 7 7 2. 2. 2. [2.h 6 6 6 [6F F F    O O O $F$788r&   r   rj  )NNN)r   r   NNNNNT)r   r   NNNNN)D__all__	functoolsr   warningsr  ior   osr   shutilr^  statrS  errnorp   randomr   r7   sysr   typesr?  weakrefrG  _threadallocate_lock_allocate_lockO_RDWRr   O_EXCLr   r   r   rf   r   r	   r)   ry   r   r%   r/   r1   r^   rv   rx   r|   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   rS   platformr   r   IOBaser   r   r=   r&   r   <module>r~     s  2                               $ $ $ $ $ $             &*s{*SZ7
73 &s~%O 
73
 #cl"N
73	 kGGG  ^
    :, , ,$? ? ? ? ? ? ? ?0  6*% *% *%X   A A A:  2 2 2" " "" " " 
 
 
' ' '' ' '$C $C $C $CN&F &F &F &FP X4 @ @ @ @@(" (" (" (" (" (" (" ("V< < < < < < < <~ ;?9=(,78<7 7 7 7 7r 8w$-833 'MM wsK009=8<I*.I I I I IVl# l# l# l# l#3: l# l# l#^\9 \9 \9 \9 \9 \9 \9 \9 \9 \9r&   