+
    UBiL                      a  0 t $ ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^RIHtHt ^RIHt ^RIHtHtHtHtHtHtHtHt ^RIHt ^RIH t H!t! ^R	I"H#t#  ^ R
I$H%t& ]PP                  '       d)   ^RIH)t)H*t*H+t+H,t, ^RIH-t-H.t.H/t/  ^ RIH0t0  ! R R]04      t3Rt4. t5R]6R&   R R lt7 ! R R4      t8R R lt9R1R R llt:R R lt;R2R R llt<R3R R  llt=R! R" lt>R# R$ lt?R% R& lt@R' R( ltAR) R* ltB ! R+ R,4      tCR- R. ltDR/ R0 ltER#   ]' d    Rt& Li ; i  ]1 d
    ^ RI2H0t0  Li ; i)4    )annotations)globN)build
tooldetectInstallData)MesonException
Popen_safeRealPathAction
is_windowsis_aixsetup_vsenvpickle_loadis_osx)	OptionKey)depfixerdestdir_join)run_exe)__file__)InstallDataBaseInstallEmptyDirInstallSymlinkDataTargetInstallData)FileModeEnvironOrDictExecutableSerialisation)Protocolc                      ] tR t^,t$ RtR]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   RtR# )ArgumentTypez7Typing information for the object returned by argparse.bool
no_rebuildonly_changedprofilequietstrwddestdirdry_runskip_subprojectstagsstrip N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r,       8/usr/lib/python3.14/site-packages/mesonbuild/minstall.pyr   r   ,   s:    E	r4   r   a  Warning: trying to copy a symlink that points to a file. This currently copies
the file by default, but will be changed in a future version of Meson to copy
the link instead.  Set follow_symlinks to true to preserve current behavior, or
false to copy the link.T.List[str]selinux_updatesc                    V ^8  d   QhRRRR/# )   parserzargparse.ArgumentParserreturnNoner,   )formats   "r5   __annotate__r>   D   s     p p1 pd pr4   c                   V P                  R R\        RR7       V P                  RRR\        P                  R7       V P                  RR	RR
R7       V P                  RR	RRR7       V P                  RRR	RRR7       V P                  RRRR7       V P                  RRRRR7       V P                  RRRRRR7       V P                  RRR R7       V P                  R!RR"R7       R# )#-Cr&   z#directory to cd into before running)destactionhelpz--profile-self
store_truer#   )rB   rA   rC   --no-rebuildFz!Do not rebuild before installing.)defaultrB   rC   z--only-changedz9Only overwrite files that are older than the copied file.z-qz--quietz+Do not print every file that was installed.z	--destdirNz5Sets or overrides DESTDIR environment. (Since 0.57.0))rF   rC   z-nz	--dry-runz8Doesn't actually install, but print logs. (Since 0.57.0))rB   rC   z--skip-subprojects?* z;Do not install files from given subprojects. (Since 0.58.0))nargsconstrF   rC   z--tagszAInstall only targets having one of the given tags. (Since 0.60.0)z--stripzOStrip targets even if strip option was not set during configure. (Since 0.62.0))add_argumentr   argparseSUPPRESS)r:   s   &r5   add_argumentsrO   D   s*   
4B  D
(I%..  0
l@  B
(%X  Z
i|J  L
TT  V
k,X  Z
,CsBZ  \
$`  b
	,n  pr4   c                  J    ] tR t^ZtR R ltRR R lltR R ltR R ltR	tR
# )DirMakerc                    V ^8  d   QhRRRR/# )r9   lfT.TextIOmakedirszT.Callable[..., None]r,   )r=   s   "r5   r>   DirMaker.__annotate__[   s     & &8 &/D &r4   c                	J    Wn         . V n        \        4       V n        W n        R # N)rS   dirssetall_dirsmakedirs_impl)selfrS   rU   s   &&&r5   __init__DirMaker.__init__[   s    !#	$'E%r4   c               $    V ^8  d   QhRRRRRR/# )r9   pathr%   exist_okr    r;   r<   r,   )r=   s   "r5   r>   rV   a   s!      S D T r4   c                	   \         P                  P                  V4      pV P                  P	                  V4       . pV\         P                  P                  V4      8w  di   W0P                  9   d   MW\         P                  P                  V4      '       g   VP                  V4       \         P                  P                  V4      pK  V P                  WR 7       VP                  4        V ;P                  V,          un        R# )rb   N)osra   normpathr[   adddirnamerY   existsappendr\   reverse)r]   ra   rb   rh   rY   s   &&&  r5   rU   DirMaker.makedirsa   s    ''""4('"11))# 77>>'**G$ggoog.G43 			T	r4   c                   V ^8  d   QhRR/# )r9   r;   z
'DirMaker'r,   )r=   s   "r5   r>   rV   w   s      : r4   c                	    V # rX   r,   )r]   s   &r5   	__enter__DirMaker.__enter__w   s    r4   c               (    V ^8  d   QhRRRRRRRR/# )r9   exception_typezT.Type[Exception]valueT.Any	tracebackr;   r<   r,   )r=   s   "r5   r>   rV   z   s+     & &'8 & &SX &]a &r4   c                	    V P                   P                  4        V P                    F  p\        V P                  V4       K  	  R # rX   )rY   rk   append_to_logrS   )r]   rr   rs   ru   ds   &&&& r5   __exit__DirMaker.__exit__z   s.    		A$''1% r4   )r[   rY   rS   r\   NF)	r-   r.   r/   r0   r^   rU   ro   ry   r3   r,   r4   r5   rQ   rQ   Z   s    &,& &r4   rQ   c                    V ^8  d   QhRRRR/# )r9   fnamer%   r;   r   r,   )r=   s   "r5   r>   r>      s     : :S :[ :r4   c                $    \        V R \        4      # r   )r   r   )r}   s   &r5   load_install_datar      s    um[99r4   c               $    V ^8  d   QhRRRRRR/# )r9   ra   r%   follow_symlinksr    r;   r,   )r=   s   "r5   r>   r>      s&     P P Pd Pt Pr4   c                d    \        \        P                  ! WR7      P                  ^I,          4      # )zCChecks whether any of the "x" bits are set in the source file mode.r   )r    re   statst_mode)ra   r   s   &&r5   is_executabler      s!    >FFNOOr4   c               $    V ^8  d   QhRRRRRR/# )r9   rS   rT   liner%   r;   r<   r,   )r=   s   "r5   r>   r>      s!      h c d r4   c                    V P                  V4       VP                  R 4      '       g   V P                  R 4       V P                  4        R# )
N)writeendswithflush)rS   r   s   &&r5   rw   rw      s0    HHTN==
HHJr4   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r9   ra   r%   userzT.Union[str, int, None]groupdir_fdT.Optional[int]r   r    r;   r<   r,   )r=   s   "r5   r>   r>      s;     ,% ,%C ,%6 ,%,,%%,%?C,%OS,%r4   c                @  a Vf   Vf   Q R4       h\         P                  R8  d   \        P                  ! WW#VR7       R # \        P                  oRVRV/R V3R lllp V\        n        \        P                  ! WV4       S\        n        R #   S\        n        i ; i)Nz$ensure that calls to chown are validr   r   r   r   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r9   ra   zBT.Union[int, str, 'os.PathLike[str]', bytes, 'os.PathLike[bytes]']uidintgidr   r   r   r    r;   r<   r,   )r=   s   "r5   r>   set_chown.<locals>.__annotate__   sD     	Z 	ZZ 	Z	Z!$	Z1@	Z#'	Z>B	Zr4   c                  < S! WW#VR7       R# )zOverride the default behavior of os.chown

Use a real function rather than a lambda to help mypy out. Also real
functions are faster.
r   Nr,   )ra   r   r   r   r   real_os_chowns   &&&$$r5   chownset_chown.<locals>.chown   s     $SYr4   )      )sysversion_infoshutilr   re   )ra   r   r   r   r   r   r   s   &&&&& @r5   	set_chownr      s    * u0X2XX0
7" 	TW	ZCI	Z*9	Z 	Z	%BHLLU+$BH}BHs   !"B Bc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r9   ra   r%   moder   r   r   r   r    r;   r<   r,   )r=   s   "r5   r>   r>      s1     0 0C 0s 0O 0#0/30r4   c                     \         P                  ! WW#R 7       R#   \        \        \        3 dE    \         P
                  P                  T 4      '       g   \         P                  ! YTR7        R#  R# i ; i)r   )r   N)re   chmodNotImplementedErrorOSErrorSystemErrorra   islink)ra   r   r   r   s   &&&&r5   	set_chmodr      sT    0
FL+6 0ww~~d##HHT// $0s    :A6A65A6c               $    V ^8  d   QhRRRRRR/# )r9   ra   r%   umaskT.Union[str, int]r;   r<   r,   )r=   s   "r5   r>   r>      s'     _ _s _+< _ _r4   c           	         VR 8X  d   R# \        V\        4      '       g   Q R4       h\        V RR7      '       d   RMRpW!( ,          p \        WRR7       R#   \         d,   p\        T : RT: RTP                   R	24        Rp?R# Rp?ii ; i)
preserveNz.umask should only be "preserver" or an integerFr   i  i  : Unable to set permissions : , ignoring...)
isinstancer   r   r   PermissionErrorprintstrerror)ra   r   	new_permses   &&  r5   sanitize_permissionsr      s     
eS!!S#SS!&tUCCII_$59 _4YMAJJ<}]^^_s   A B" BBc               (    V ^8  d   QhRRRRRRRR/# )	r9   ra   r%   r   zT.Optional['FileMode']default_umaskr   r;   r<   r,   )r=   s   "r5   r>   r>      s+     2 23 24 2EV 2[_ 2r4   c                v   Ve}   \         ;QJ d=    R VP                  VP                  VP                  3 4       F  '       d   K   RM2	  RM.! R VP                  VP                  VP                  3 4       4      '       d   \	        W4       R # \        4       '       g@   VP                  f   VP                  e$    \        WP                  VP                  RR7       VP                  e    \        WP                  RR7       R # \	        W4       R #   \         dC   p\        T : RTP                  : RTP                  : RTP                   R24        R p?L}R p?i\         d/    \        T : R	TP                  : R
TP                  : R24        L\         dW   pTP                  \        P                  8X  d2   \        T : RTP                  : R
TP                  : R24        R p?ELh R p?ii ; i  \         d6   p\        T : RTP                  : RTP                   R24        R p?R # R p?ii ; i)Nc              3  (   "   T F  qR J x  K
  	  R # 5irX   r,   ).0ms   & r5   	<genexpr>set_mode.<locals>.<genexpr>   s     U.T9.Ts   FTr   z: Unable to set owner z and group r   r   z: Nonexistent owner z
 or group z: ignoring...z: Nonexistent numeric owner r   )allperms_sownerr   r   r   r   r   r   r   LookupErrorr   errnoEINVALr   perms)ra   r   r   r   s   &&& r5   set_moder      s   |ssUt||TZZ.TUsssUt||TZZ.TUUUT1<<TZZ3tzz7M
	dJJ

EJ ||	fdJJ> 	T1%  	wTH24::.DJJ>Y[\]\f\f[ggtuvv 	fTH0jVcde 	ww%,,& <TZZN*UYU_U_Tbbopqq		  	fTH88H1::,Vcdee	fsU   ;"D ,G8 G58EG5',G5G5G5A
G0/G00G58H8*H33H8c                   V ^8  d   QhRR/# r9   r;   r<   r,   )r=   s   "r5   r>   r>      s     0 0$ 0r4   c            	         \         P                  ! R.4       \        P                  ! R4      '       g   R# \        '       g   R# \        . RORP                  R \         4       4      R,           4      w  rpT P                  ^ 8w  d   \        RRTRTR	R
7       R# R#   \        \        \        \
        \         P                  3 d     R# i ; i)zp
Restores the SELinux context for files in @selinux_updates

If $DESTDIR is set, do not warn if the call fails.
selinuxenabledN
restorecon c              3  $   "   T F  qx  K  	  R # 5irX   r,   )r   fs   & r5   r   +restore_selinux_contexts.<locals>.<genexpr>  s     MiYhTUaYhs   z7Failed to restore SELinux context of installed files...zStandard output:zStandard error:r   )sep)r   z-Fz-f-z-0)
subprocess
check_callFileNotFoundErrorNotADirectoryErrorr   r   CalledProcessErrorr   whichr7   r
   join
returncoder   )procouterrs      r5   restore_selinux_contextsr      s    /01 <<%%? ADIIMiYhMiDilpDprNDs!G #$	0  17OZMjMjk  	s   B *C
Cc               (    V ^8  d   QhRRRRRRRR/# )r9   r'   r%   
fullprefixra   r;   r,   )r=   s   "r5   r>   r>     s(      c s # # r4   c                    \         P                  P                  V4      '       d   \        W4      pV# \         P                  P	                  W4      pV# rX   )re   ra   isabsr   r   )r'   r   ra   outputs   &&& r5   get_destdir_pathr     s?    	ww}}Tg, M j/Mr4   c                    V ^8  d   QhRRRR/# )r9   r}   r%   r;   r,   )r=   s   "r5   r>   r>     s      s s r4   c                f   V P                  R4      '       g   V P                  R4      '       d   \        P                  ! V 4      P                  ^ 8X  d   \        P                  P                  V 4      w  r\        VR,           V,           4      p\        V4      ^8  d"   \        R4       \        P                  ! ^4       \        V4      ^8X  d
   V^ ,          # V # V P                  R4      '       g   V P                  R4      '       d   \        P                  ! V 4      P                  ^ 8X  d   \        P                  P                  V 4      w  r\        VR,           R,           4      p\        V4      ^8  d"   \        R4       \        P                  ! ^4       \        V4      ^8X  d
   V^ ,          # V # )	zSome languages e.g. Rust have output files
whose names are not known at configure time.
Check if this is the case and return the real
file instead..soz.dllz-*z8Stale dynamic library files in build dir. Can't install..az.libz.rlibz7Stale static library files in build dir. Can't install.)r   re   r   st_sizera   splitextr   lenr   r   exit)r}   basesuffixfiless   &   r5   check_for_stampfiler     s0   
 ~~ev 6 6775>!!Q&WW--e4NTv-.E5zA~PQ5zQQx L 
		!7!7775>!!Q&WW--e4NTw./E5zA~OP5zQQxLr4   c                     ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltRDR! R" lltR# R$ ltR% R& ltR' R( ltRER) R* lltR+ R, ltRDR- R. lltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 ltR9 R: ltR; R< lt R= R> lt!R? R@ lt"RA RB lt#RCt$R # )F	Installeri/  c                    V ^8  d   QhRRRR/# )r9   options'ArgumentType'rS   rT   r,   )r=   s   "r5   r>   Installer.__annotate__1  s     [ [ [H [r4   c                	   R V n         R V n        Wn        W n        ^ V n        VP
                  V n        VP                  P                  R4       Uu. uF  q3P                  4       NK  	  upV n        VP                  '       d@   VP                  P                  R4       Uu. uF  q3P                  4       NK  	  upV n	        R# RV n	        R# u upi u upi )F,N)
did_install_somethingprinted_symlink_errorr   rS   preserved_file_countr(   r)   splitr+   r*   )r]   r   rS   is   &&& r5   r^   Installer.__init__1  s    %*"%*"$%! 5<4L4L4R4RSV4W X4Wq4W XDKLLL(:(:3(?@(?1WWY(?@	VZ	 !Y@s   C
Cc               $    V ^8  d   QhRRRRRR/# r9   argsrt   kwargsr;   r<   r,   )r=   s   "r5   r>   r   >  s!     ' 'E 'U 't 'r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   re   remover]   r  r  s   &*,r5   r  Installer.remove>  s!    |||IIt&v& r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   B  s!     ( (U (e ( (r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   re   symlinkr  s   &*,r5   r  Installer.symlinkB  s!    |||JJ'' r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   F  s!     ) )e )u ) )r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   re   rU   r  s   &*,r5   rU   Installer.makedirsF  s!    |||KK(( r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   J  s!     ) )% )5 )T )r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   r   copyr  s   &*,r5   r  Installer.copyJ  s!    |||KK(( r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   N  s!     * *5 *E *d *r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   r   copy2r  s   &*,r5   r  Installer.copy2N  s!    |||LL$)&) r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   R  !     - -e -u - -r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   r   copyfiler  s   &*,r5   r  Installer.copyfileR  !    |||OOT,V, r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   V  r  r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   r   copystatr  s   &*,r5   r!  Installer.copystatV  r  r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   Z  s!     0 0u 0 0$ 0r4   c                	Z    V P                   '       g   \        P                  ! V/ VB  R # R # rX   )r(   r   	fix_rpathr  s   &*,r5   r%  Installer.fix_rpathZ  s#    |||// r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   ^  !     ' 'u ' '$ 'r4   c                	D    V P                   '       g   \        V/ VB  R # R # rX   )r(   r   r  s   &*,r5   r   Installer.set_chown^      |||t&v& r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   b  r(  r4   c                	D    V P                   '       g   \        V/ VB  R # R # rX   )r(   r   r  s   &*,r5   r   Installer.set_chmodb  r+  r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   f  s!     2 2% 25 2T 2r4   c                	D    V P                   '       g   \        V/ VB  R # R # rX   )r(   r   r  s   &*,r5   r   Installer.sanitize_permissionsf  s    ||| $1&1 r4   c               $    V ^8  d   QhRRRRRR/# r  r,   )r=   s   "r5   r>   r   j  s!     & &e &u & &r4   c                	D    V P                   '       g   \        V/ VB  R # R # rX   )r(   r   r  s   &*,r5   r   Installer.set_modej  s    |||d%f% r4   c                    V ^8  d   QhRRRR/# )r9   r'   r%   r;   r<   r,   )r=   s   "r5   r>   r   n  s     ' ' ' 'r4   c                	V    V P                   '       g   V'       g   \        4        R # R # R # rX   )r(   r   )r]   r'   s   &&r5   r   "Installer.restore_selinux_contextsn  s    |||G$& %,|r4   c               $    V ^8  d   QhRRRRRR/# )r9   r  rt   r  r;   zT.Tuple[int, str, str]r,   )r=   s   "r5   r>   r   r  s"        ;Q r4   c                	b    V P                   '       g   \        V/ VB w  r4pVP                  WE3# R# )r   )r   rI   rI   )r(   r
   r   )r]   r  r  por   s   &*,   r5   r
   Installer.Popen_safer  s3    ||| $1&1GA!<<%%r4   Nc               $    V ^8  d   QhRRRRRR/# )r9   exer   	extra_envzT.Optional[T.Dict[str, str]]r;   r   r,   )r=   s   "r5   r>   r   x  s$      2 ?[ gj r4   c                	d    V P                   '       d   VP                   '       d   \        W4      # ^ # )r   )r(   r   )r]   r>  r?  s   &&&r5   r   Installer.run_exex  s!    3**r4   c                    V ^8  d   QhRRRR/# )r9   rx   ziT.Union[TargetInstallData, InstallEmptyDir, InstallDataBase, InstallSymlinkData, ExecutableSerialisation]r;   r    r,   )r=   s   "r5   r>   r   }  s       !A EIr4   c                	    VP                   '       d/   VP                   V P                  9   g   R V P                  9   d   R# V P                  '       d   VP                  V P                  9  d   R# R# )rH   FT)
subprojectr)   r*   tag)r]   rx   s   &&r5   should_installInstaller.should_install}  sL     <<<Q\\T-B-BBcTMbMbFb999dii/r4   c                    V ^8  d   QhRRRR/# )r9   msgr%   r;   r<   r,   )r=   s   "r5   r>   r     s      s t r4   c                	X    V P                   P                  '       g   \        V4       R # R # rX   )r   r$   r   )r]   rI  s   &&r5   logInstaller.log  s    ||!!!#J "r4   c               $    V ^8  d   QhRRRRRR/# )r9   	from_filer%   to_filer;   r    r,   )r=   s   "r5   r>   r     s!     $ $s $S $T $r4   c                	^   V P                   P                  '       g   R # \        P                  P	                  V4      '       d(   \        P                  P                  V4      '       g   R # \        P                  ! V4      P                  p\        P                  ! V4      P                  pW48*  # r{   )r   r"   re   ra   r   isfiler   st_mtime)r]   rN  rO  	from_timeto_times   &&&  r5   should_preserve_existing_file'Installer.should_preserve_existing_file  sn    ||(((77>>)$$RWW^^I-F-FGGI&//	'''"++##r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r9   rN  r%   rO  rU   zT.Optional[T.Tuple[T.Any, str]]r   T.Optional[bool]r;   r    r,   )r=   s   "r5   r>   r     s2     & &S &3 &=&%5&AE&r4   c                	   \         P                  P                  V4      ^ ,          p\         P                  P                  V4      '       g5   \         P                  P	                  V4      '       g   \        RV: 24      h\         P                  P                  V4      '       d   \         P                  P                  V4      '       g   \        RV: R24      hV P                  W4      '       d6   \        V P                  RV R24       V ;P                  ^,          un
        R# V P                  RV RV 24       V P                  V4       M6V P                  RV RV 24       V'       d   Vw  reVP                  VR	R
7       \         P                  P	                  V4      '       dc   \         P                  P                  V4      '       g   V P                  WRR7       M:Vf   R	p\        \         4       V P#                  WVR7       MV P#                  W4       \$        P'                  V4       \        V P                  V4       R	# )r   z.Tried to install something that isn't a file: Destination z! already exists and is not a filez# Preserving old file r   FzInstalling  to Trd   r   )re   ra   r   rQ  r   r	   ri   rU  rw   rS   r   rK  r  rU   r  r   symlink_warningr  r7   rj   )r]   rN  rO  rU   r   outdirdirmakers   &&&&&  r5   do_copyfileInstaller.do_copyfile  s    w'*ww~~i((	1J1J #RS\R_!`aa 77>>'""77>>'**$|G;>_%`aa11)EEdgg)?y'KL))Q.)HH{9+T&:;KK HH{9+T&:;#+ !!&4!877>>)$$77>>),,		)U	C"*&*O/*

9
OJJy*w'dggw'r4   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )r9   targetr%   linkr'   full_dst_dirr;   r    r,   )r=   s   "r5   r>   r     s0       C # S UY r4   c                	"   Tp\         P                  P                  V4      '       g!   \         P                  P                  WA4      pM0\         P                  P	                  V4      '       g   \        W54      p\         P                  P                  V4      '       dG   \         P                  P                  V4      '       g   \        R V: R24      hV P                  V4       V P                  '       g   V P                  RV RV 24        V P                  W\         P                  P                  V4      R7       \#        T P$                  T4       R#   \        \        3 d)    T P                  '       g   \!        R4       RT n
         R# i ; i)rZ  z$ already exists and is not a symlinkzInstalling symlink pointing to r[  )target_is_directoryzISymlink creation does not work on this platform. Skipping all symlinking.TF)re   ra   r   r   ri   r   lexistsr   r	   r  r   rK  r  isdirr   r   r   rw   rS   )r]   rb  rc  r'   rd  
abs_targets   &&&&& r5   
do_symlinkInstaller.do_symlink  s%   
ww}}V$$l;J
++%g:J77??4  77>>$''$|D8;_%`aaKK)))HH6vhd4&IJ	LL277==;TLU 	dggt$ $W- 	--- 1 2-1*	s   0E "F8FFc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )r9   datar   src_dirr%   dst_direxcludez+T.Optional[T.Tuple[T.Set[str], T.Set[str]]]install_modez
'FileMode'dmrQ   r   rX  r;   r<   r,   )r=   s   "r5   r>   r     s]     GI GI{ GIS GI3 GIGGI!+GI19GIL\GIhlGIr4   c                "   \         P                  P                  V4      '       g   \        RV 24      h\         P                  P                  V4      '       g   \        RV 24      hVeb   Vw  rV U
u0 uF"  p
\         P                  P	                  V
4      kK$  	  pp
V	 U
u0 uF"  p
\         P                  P	                  V
4      kK$  	  p	p
M\        4       ;r\         P                  ! V4       EF  w  rp\         P                  P                  V4      '       g   Q hVR,           EFe  p\         P                  P                  W4      p\         P                  P                  WR7      p\         P                  P                  VV4      p\         P                  P                  V4      '       d   VP                  V4       K  VV	9   d   VP                  V4       K  \         P                  P                  V4      '       d   K  \         P                  P                  V4      '       d&   \        RV R24       \        P                   ! ^4       VP#                  V4       V P%                  VV4       V P'                  VVP(                  4       EKh  	  V EFk  p\         P                  P                  VV4      p\         P                  P                  WR7      pVV9   d   KM  \         P                  P                  VV4      p\         P                  P                  V4      '       d&   \        RV R	24       \        P                   ! ^4       \         P                  P+                  V4      p\         P                  P                  V4      '       gA   VP#                  V4       V P%                  \         P                  P+                  V4      V4       V P-                  VVVR
7       V P/                  VWQP(                  4       EKn  	  EK  	  R# u up
i u up
i )a  
Copies the contents of directory @src_dir into @dst_dir.

For directory
    /foo/
      bar/
        excluded
        foobar
      file
do_copydir(..., '/foo', '/dst/dir', {'bar/excluded'}) creates
    /dst/
      dir/
        bar/
          foobar
        file

Args:
    src_dir: str, absolute path to the source directory
    dst_dir: str, absolute path to the destination directory
    exclude: (set(str), set(str)), tuple of (exclude_files, exclude_dirs),
             each element of the set is a path relative to src_dir.
zsrc_dir must be absolute, got zdst_dir must be absolute, got N:NNN)startzTried to copy directory ( but a file of that name already exists.zTried to copy file z- but a directory of that name already exists.r   )re   ra   r   
ValueErrorrf   rZ   walkr   relpathr   rj   r  rh  ri   r   r   r   rU   r!  r   install_umaskrh   r_  r   )r]   rm  rn  ro  rp  rq  rr  r   exclude_filesexclude_dirsxrootrY   r   rx   abs_srcfilepartabs_dstr   
parent_dirs   &&&&&&&&            r5   
do_copydirInstaller.do_copydir  s   2 ww}}W%%=gYGHHww}}W%%=gYGHH*1'M:GH-QRWW--a0-MH9EFABGG,,Q/LFL+.50M!#!1D77==&&&&!WW'',,t/77??7?B'',,w977>>'**LLO|+KKN77==))77>>'**4WI=efgHHQKG$gw/))'43E3EF% & '',,tQ/77??7?B},'',,w977==))/y8efgHHQKWW__W5
ww}}Z00KK
+MM"''//'":JG  '? Sg|5G5GH + "2	 IFs   3(P!(Pc                    V ^8  d   QhRRRR/# )r9   datafilenamer%   r;   r<   r,   )r=   s   "r5   r>   r     s     G Gs Gt Gr4   c           
     	
   \        V4      pV P                  P                  pVf    \        P                  P                  R4      pV'       dP   \        P                  P                  V4      '       g+   \        P                  P                  VP                  V4      pVe   V\        P                  R&   T;'       g    Rp\        W2P                  4      pVP                  R8w  dC   \        VP                  \        4      '       g   Q h\        P                  ! VP                  4       RV n         \#        V P$                  V P&                  4      ;_uu_ 4       pV P)                  W%W44       V P+                  W%W44       V P-                  W%W44       V P/                  W%W44       V P1                  W%W44       V P3                  W%W44       V P5                  W%W44       V P7                  V4       V P9                  W#V4       V P                   '       g   V P;                  R4       V P                  P<                  '       gn   V P>                  ^ 8  d]   V P;                  RPA                  V P>                  \        P                  PC                  V P$                  PD                  4      4      4       R R R 4       R #   + '       g   i     R # ; i  \F         Ed|    \I        4       '       gx   TR8w  gq   \        PJ                  ! \L        PN                  PQ                  4       4      '       d9   \        PJ                  ! \L        PR                  PQ                  4       4      '       g   h \        P                  P                  R4      ;'       gS    \T        PV                  ! R4      ;'       g5    \T        PV                  ! R	4      ;'       g    \T        PV                  ! R
4      p\T        PV                  ! R4      pTf   Te   R\        P                  9  d   TpTEe?   \Y        R4       \Z        P\                  ! 4       pTP_                  \L        P`                  \Z        Pb                  4       R p	\e        ^4       Fo  p
\Y        RT R2RRR7       TPg                  ^4      '       d/   \L        P`                  Pi                  4       Pk                  R4      p	M\Y        4         MT	R9   g   Ko   M	  T	e   \m        R4      hT	R8X  d[   \        Pn                  ! Yf\L        Pp                  \r        .\L        Pt                  R,          ORN\        Pv                  ! 4       NRN5!   h i ; i)NDESTDIRrI   r   FzNothing to install.z6Preserved {} unchanged files, see {} for the full listMESON_ROOT_CMDsudodoasrun0pkexec
PKEXEC_UIDz4Installation failed due to insufficient permissions.zAttempt to use z$ to gain elevated privileges? [y/n] T)endr   r   yzAnswer not one of [y/n]:   NNr@   rE   >   nr  )<r   r   r'   re   environgetra   r   r   	build_dirr   prefixry  r   r   r   r   rQ   rS   rU   install_subdirsinstall_targetsinstall_headersinstall_maninstall_emptydirinstall_datainstall_symlinksr   run_install_scriptrK  r$   r   r=   rf   namer   r   isattyr   stdoutfilenostderrr   r   r   	selectorsDefaultSelectorregisterstdin
EVENT_READrangeselectreadlinerstripr	   execlp
executable	main_fileargvgetcwd)r]   r  rx   r'   r   rr  rootcmdr  sansattempts   &&         r5   
do_installInstaller.do_install  s   l+,,&&?jjnnY/G277==11ggll1;;8G $+BJJy!--R!'884
??j(aoos3333HHQ__%%*"3	$''4==11R$$QG@$$QG@$$QG@  <%%aWA!!!=%%aWA--g6''J?111HH23||)))d.G.G!.KHHU$fT%>%>@P@PQUQXQXQ]Q]@^_a 2111  #	||w"}BIIcjj>O>O>Q4R4RZ\ZcZcdgdndndududwZxZx

/0 ( (<<'( (<<'( ( <<'	  \\(+F6#5,bjj:X "LM--/

399i&:&:;$QxGOG94XY_aimnxx||!ii00299$?j(  ( ,-FGG#:IIg	 ACHHUWL A"A$&IIKA1?AG#	sY   /(K C J/8A-J/%K /K 	:K  K AU
7U
&U
=U
U
9DU
A6U
c               (    V ^8  d   QhRRRRRRRR/# )r9   	strip_binr6   r}   r%   outnamer;   r<   r,   )r=   s   "r5   r>   r   e  s(      + c C D r4   c                	V   V P                  R V: R24       \        4       '       d    V P                  VRRV.,           4      w  rEpMV P                  W.,           4      w  rEpV^ 8w  dB   \        R4       \        RV R24       \        RV R24       \        P
                  ! ^4       R# R# )	zStripping target .z-Sz-xzCould not strip file.
zStdout:
r   zStderr:
N)rK  r   r
   r   r   r   )r]   r  r}   r  r   stdostdes   &&&&   r5   do_stripInstaller.do_stripe  s    $UIQ/088 &*__Y$gAV5V%W"Jd%)__Y5J%K"Jd?+,IdV2&'IdV2&'HHQK	 r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# 
r9   rx   r   rr  rQ   r'   r%   r   r;   r<   r,   )r=   s   "r5   r>   r   t  s1     	? 	? 	?( 	?S 	?VY 	?^b 	?r4   c                	|   VP                    F  pV P                  V4      '       g   K  R V n        \        W4VP                  4      pV P                  RVP                   RV 24       VP                  VR R7       V P                  WP                  WeP                  VP                  VVP                  R7       K  	  R# )TzInstalling subdir r[  rd   r   N)r  rF  r   r   install_pathrK  ra   rU   r  rp  rq  r   )r]   rx   rr  r'   r   r   rd  s   &&&&&  r5   r  Installer.install_subdirst  s    ""A&&q)))-D&+GPLHH)!&&l^DEKKtK4OOAvv|YYPR,-,=,=  ? #r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# r  r,   )r=   s   "r5   r>   r     s8     	H 	Hk 	Hx 	H# 	HSV 	H[_ 	Hr4   c                	   VP                    F  pV P                  V4      '       g   K  VP                  p\        W4VP                  4      p\
        P                  P                  V4      pV P                  WgW(3VP                  R 7      '       d   RV n	        V P                  WuP                  VP                  4       K  	  R# )rU   r   TN)rm  rF  ra   r   r  re   rh   r_  r   r   r   rq  ry  )	r]   rx   rr  r'   r   r   fullfilenameoutfilenamer]  s	   &&&&&    r5   r  Installer.install_data  s    A&&q))66L*7OKWW__[1FRLbcbsbstt-1*MM+~~qG r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# r  r,   )r=   s   "r5   r>   r     s1     2 2+ 28 2c 2WZ 2_c 2r4   c                	4   VP                    F  pV P                  V4      '       g   K  \        W4VP                  4      p\        W4VP                  4      pVP                  VR R7       V P                  VP                  WsV4      '       g   K  R V n        K  	  R# )Trd   N)	symlinksrF  r   r  r  rU   rj  rb  r   )r]   rx   rr  r'   r   r  rd  full_link_names   &&&&&   r5   r  Installer.install_symlinks  ss    A&&q))+GPL-g166JNKKtK4qxx,OO-1* r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# r  r,   )r=   s   "r5   r>   r     s8     	H 	H[ 	Hh 	H 	HRU 	HZ^ 	Hr4   c                	n   VP                    F  pV P                  V4      '       g   K  VP                  p\        W4VP                  4      p\
        P                  P                  V4      pV P                  WgW(3R 7      '       d   RV n        V P                  WuP                  VP                  4       K  	  R# )rU   TN)manrF  ra   r   r  re   rh   r_  r   r   rq  ry  )	r]   rx   rr  r'   r   r   full_source_filenamer  r]  s	   &&&&&    r5   r  Installer.install_man  s    A&&q))#$66 *7OKWW__[1F 4RLYY-1*MM+~~qG r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# r  r,   )r=   s   "r5   r>   r     s8     I I+ I8 Ic IWZ I_c Ir4   c                	   VP                    F  pV P                  V4      '       g   K  R V n        \        W4VP                  4      pV P                  RV 24       \        P                  P                  V4      '       d&   \        RV R24       \        P                  ! ^4       VP                  VR R7       V P                  WeP                  VP                  4       K  	  R# )TzInstalling new directory zTried to create directory ru  rd   N)emptydirrF  r   r   ra   rK  re   rQ  r   r   r   rU   r   rq  ry  )r]   rx   rr  r'   r   r   rd  s   &&&&&  r5   r  Installer.install_emptydir  s    A&&q)))-D&+GHLHH0?@ww~~l++2<.@hijKKtK4MM,H r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# r  r,   )r=   s   "r5   r>   r     s8     H H H( HS HVY H^b Hr4   c                	   VP                    F  pV P                  V4      '       g   K  VP                  p\        P                  P	                  V4      p\        W4VP                  4      p\        P                  P                  W4      p	V P                  WiW(3VP                  R 7      '       d   RV n
        V P                  WP                  VP                  4       K  	  R# r  )headersrF  ra   re   basenamer   r  r   r_  r   r   r   rq  ry  )
r]   rx   rr  r'   r   tr  r}   r]  r  s
   &&&&&     r5   r  Installer.install_headers  s    A&&q))66LGG$$\2E%g1>>JF'',,v5KRL010A0A   C C-1*MM+~~qG r4   c               (    V ^8  d   QhRRRRRRRR/# )r9   rx   r   r'   r%   r   r;   r<   r,   )r=   s   "r5   r>   r     s)     $ $K $# $3 $SW $r4   c                	f   R VP                   RVP                  RRP                  VP                   Uu. uF  p\        P
                  ! V4      NK  	  up4      /pV P                  P                  '       d   RVR&   V P                  '       d   RVR&   VP                   EF  pV P                  V4      '       g   K  VP                  e   VP                  pMRVP                  /pVP                  4       pTP                  VP                  4        U	U
u/ uFE  w  rR	V	P!                  4       ,           \"        P$                  P                  VP                  V
4      bKG  	  up
p	4       TP                  VP                  4        U	U
u/ uF'  w  rR
V	P!                  4       ,           \'        W#V
4      bK)  	  up
p	4       RP                  VP(                  4      pVP*                  '       d!   V'       d   V P-                  RV: 24       EKg  RV n        V P-                  RV: 24        V P1                  Wh4      pX^ 8w  g   EK  \5        RV RV R24       \6        P8                  ! V4       EK  	  R# u upi u up
p	i u up
p	i   \2         d)    \5        RT R24       \6        P8                  ! ^4        L|i ; i)MESON_SOURCE_ROOTMESON_BUILD_ROOTMESONINTROSPECT 1MESON_INSTALL_QUIETMESON_INSTALL_DRY_RUNNr  MESON_INSTALL_MESON_INSTALL_DESTDIR_z6Skipping custom install script because DESTDIR is set TzRunning custom install script zFAILED: install script 'z' could not be run.z' failed with exit code r  )
source_dirr  r   mesonintrospectshlexquoter   r$   r(   install_scriptsrF  installdir_mapr  r  updateitemsupperre   ra   r   cmd_argsskip_if_destdirrK  r   r   r   r   r   r   )r]   rx   r'   r   r|  envr   mapplocalenvkvr  rcs   &&&&         r5   r  Installer.run_install_script  sY   "ALL!1;; #((ADUDU+VDUqEKKNDU+V"W <<),C%&<<<+.C'(""A&&q))+'' !((+xxzHOO_c_i_i_kl_kW[WX-aggi7ahhPQ9RR_klmOOvz  wA  wA  wC  D  wCnrno5aggi?AQRYghAii  wC  D  E88AJJ'D   WQRVQYZ[)-D&HH5dX>?\\!.
 Qw1$7PQSPTTUVW5 # ,W  m D  1$7KLMs$   I,AI1-I7"I==0J0/J0c          
     ,    V ^8  d   QhRRRRRRRRRR	/# r  r,   )r=   s   "r5   r>   r     s8     =F =F =F( =FS =FVY =F^b =Fr4   c           
     	
   VP                    EF  p\        4       '       dx   \        P                  P	                  VP
                  4      '       gI   R VP
                  9   d8   \        P                  ! RRVP
                  P                  R R4      4      Vn        V P                  V4      '       g   K  \        P                  P	                  VP
                  4      '       gP   VP                  '       d$   V P                  RVP
                  : R24       EK  \        RVP
                  : R24      hRp\        VP
                  4      p\        W4VP                  4      p\        P                  P!                  V\        P                  P#                  V4      4      p	\        P                  P!                  VP$                  VP                  \        P                  P#                  V4      4      p
VP&                  ;'       g+    VP(                  ;'       d    V P*                  P&                  pVP,                  pVP.                  pVP0                  p\        P                  P	                  V4      '       g   \        RV: R24      h\        P                  P3                  V4      '       EdG   V P5                  WyW(3R7      pV'       d   VP6                  et   VP9                  R	4      '       dA   V P                  R
P;                  \        P                  P#                  V4      4      4       EK  V P=                  VP6                  Wy4       VP9                  R4      '       d   \        P                  P?                  V4      ^ ,          R,           p\        P                  P	                  V4      '       d@   \        P                  P?                  V	4      ^ ,          R,           pV P5                  VV4      pM\        P                  PA                  V4      '       d   \        P                  P!                  VPB                  VPE                  R4      4      p\        P                  P!                  V\        P                  P#                  V4      4      p	VPG                  VRR7       V PI                  WV	RW4       M\K        RV: 24      hV'       g   EK  RV n&         V PO                  WPP                  WVRR7       T P[                  YTP\                  4       EK  	  R#   \R         d=   p\U        TPV                  \X        4      '       d   TPV                  ^ 8X  d    Rp?Ldh Rp?ii ; i)r   z$[.][a]([.]?([0-9]+))*([.]?([a-z]+))*r   zFile z not found, skippingz could not be foundFr  Nz.jarzNot stripping jar target: {}z.jsz.wasm/Trd   zUnknown file type for )verbose)/targetsr   re   ra   ri   r}   resubreplacerF  optionalrK  r	   r   r   r]  r   r  r  r+   	can_stripr   install_rpathinstall_name_mappingsrq  rQ  r_  r  r   r=   r  r   rh  r  r  rU   r  RuntimeErrorr   r%  rpath_dirs_to_remove
SystemExitr   coder   r   ry  )r]   rx   rr  r'   r   r  file_copiedr}   r]  r  
final_pathshould_stripr  r  rq  wasm_sourcewasm_outputr   s   &&&&&             r5   r  Installer.install_targets  s   A
 xxww~~agg..5AGG3C ff%KTSTSZSZSbSbchjnSopAG&&q))77>>!''**:::HHuQWWK/CDE(5;N)OPPK'0E%g188DFggll6277+;+;E+BCGahh"'':J:J5:QRJ77JJq{{'I'It||7I7ILOOM$%$;$;!>>L77>>%(($uUI5H%IJJ&&"..u.UAKK$;~~f--!?!F!FrwwGWGWX]G^!_` MM!++u>>>%(( #%''"2"25"9!"<w"FKww~~k22&(gg&6&6w&?&BW&L&*&6&6{K&Pu%%Q[[%,,s2CD'',,vrww/?/?/FGFT2'4J"%;E9#EFF{-1*NN7,B,BM#8% # I gQ__Ey l " !!&&#..166Q;	s   TU 1UUU)r   r(   rS   r   r   r   r)   r*   rX   NN)%r-   r.   r/   r0   r^   r  r  rU   r  r  r  r!  r%  r   r   r   r   r   r
   r   rF  rK  rU  r_  rj  r  r  r  r  r  r  r  r  r  r  r  r3   r,   r4   r5   r   r   /  s    ['())*--0''2&'
$&P.GIRGR	?	H2	HIH$L=F =Fr4   r   c               $    V ^8  d   QhRRRRRR/# )r9   r&   r%   backendr;   r    r,   )r=   s   "r5   r>   r>     s&     @ @C @# @$ @r4   c                >  a  VR 8X  d   R# VR8w  d   \        R4       R# \        P                  ! 4       pV'       g   \        R4       R# R V 3R llpV! 4       w  rE\        P                  ! VRS .,           WER	7      P
                  pV^ 8w  d   \        R
S  24       R# R# )noneTninjazKOnly ninja backend is supported to rebuild the project before installation.z%Can't find ninja, can't rebuild test.Fc                   V ^8  d   QhRR/# )r9   r;   zDT.Tuple[T.Optional[EnvironOrDict], T.Optional[T.Callable[[], None]]]r,   )r=   s   "r5   r>   !rebuild_all.<locals>.__annotate__+  s     + +a +r4   c                   <aaa \        4       '       Eg   \        P                  ! 4       ^ 8X  Edo   ^ RIp \        P                  P                  4       p\        P                  P                  R4      e\   VP                  R4      oVP                  R^ 4      oVP                  R^ 4      o V P                  \        S4      4      P                  pMk\        P                  P                  R4      eI   VP                  R4      o V P                  S4      pTP                  oTP                  oTP                  pMR# \        P                  ! \        P                   P#                  SR4      4      P$                  \        S4      8w  d   R# SVR&   W!R&   R	 VVV3R
 llpW3# R#   \         d    Ru # i ; i  \         d    Ru # i ; i)r   N	SUDO_USERSUDO_UIDSUDO_GID	DOAS_USERzbuild.ninjaUSERHOMEc                   V ^8  d   QhRR/# r   r,   )r=   s   "r5   r>   :rebuild_all.<locals>.drop_privileges.<locals>.__annotate__M  s     - -T -r4   c                    < \        R S: R24       S e    \        P                  ! \        S 4      4       Se"   \        P                  ! \        S4      4       R# R# )zDropping privileges to z before running ninja...N)r   re   setgidr   setuid)orig_gidorig_uid	orig_users   r5   wrapped5rebuild_all.<locals>.drop_privileges.<locals>.wrappedM  sG    /	}<TUV'IIc(m,'IIc(m, (r4   r  )r   re   geteuidpwdr  r  r  popgetpwuidr   pw_dirKeyErrorgetpwnampw_uidpw_gidr   ra   r   st_uid)	r-  r  homedirpwdatar*  r'  r(  r)  r&   s	        @@@r5   drop_privileges$rebuild_all.<locals>.drop_privileges+  si   ||

 1**//#Czz~~k*6GGK0	77:q177:q1&!ll3x=9@@G ,8GGK0	& \\)4F "==!== --!!wwrww||B67>>#h-O!!#CK!K- - <A   &%%&   &%%&s$   *$F! F4 !F10F14GGr@   )r  
preexec_fnzCould not rebuild )r   r   detect_ninjar   runr   )r&   r  r  r8  r  r:  rets   f&     r5   rebuild_allr>    s    &'[\##%E56+ +Z &'OC
..$+
L
W
WC
ax"2$'(r4   c                    V ^8  d   QhRRRR/# )r9   optsr   r;   r   r,   )r=   s   "r5   r>   r>   a  s      n  r4   c           	     b   R p\         P                  P                  V4      p\         P                  P                  VR4      p\         P                  P	                  \         P                  P                  V P
                  V4      4      '       g   \        P                  ! R4       V P                  '       g   \        P                  ! V P
                  4      p\        P                  ! RVP                  P                  P                  P!                  \#        R4      4      4      p\%        V4       \        P                  ! RVP                  P                  P                  P!                  \#        R4      4      4      p\'        V P
                  V4      '       g   \        P                  ! R4       \         P(                  ! V P
                  4       \+        \         P                  P                  VR4      RR	R
7      ;_uu_ 4       p\-        W4      p\/        VR4       \/        VR4       V P0                  '       dK   ^ RIp	\         P                  P                  VR4      p
V	P5                  R\7        4       \9        4       V
R7       MVP;                  V4       RRR4       ^ #   + '       g   i     ^ # ; i)zmeson-private/install.datz../meson-logszAInstall data not found. Run this command in build directory root.r    vsenvr%   r  zinstall-log.txtwzutf-8)encodingz"# List of files installed by Mesonz5# Does not contain files installed by custom scripts.Nzprofile-installer.logz"installer.do_install(datafilename))filename)re   ra   rh   r   ri   r&   r   r   r!   r   loadTcastenvironmentcoredataoptstoreget_value_forr   r   r>  chdiropenr   rw   r#   cProfilerunctxglobalslocalsr  )r@  r  private_dirlog_dirb
need_vsenvr  rS   	installerr#   r}   s   &          r5   r<  r<  a  s   .L''//,/Kggll;8G77>>"'',,tww=>>TU???JJtwwVVFAMM$:$:$C$C$Q$QR[\cRd$ef
J&& 6 6 ? ? M MiXaNb cd477G,,HHRLHHTWW	bggll7$56g	N	NRTd'	b>?bQR<<<&GGLL.EFENN?FH_dNe  . 
O  
O	N s   BJJ.	r{   )NNNT)NT)F__conditional_annotations__
__future__r   r   rM   r   re   r  r  r   r   r   typingrH  r  rI   r   r   backend.backendsr   mesonlibr	   r
   r   r   r   r   r   r   r   r   scriptsr   r   scripts.meson_exer   __main__r   r  ImportErrorTYPE_CHECKINGr   r   r   r   r   r   r   r   AttributeErrortyping_extensionsr   r\  r7   r2   rO   rQ   r   r   rw   r   r   r   r   r   r   r   r   r>  r<  )rY  s   @r5   <module>re     s*   # "    	     
  	  )A A A  + &. ???  KJ/#x   " !p,#& #&L:P
,%^0_2<064mF mF^@FM   I  /./s$   0D# D2 #	D/.D/2EE