+
    Ni*                        R 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
 ^RI	Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^R	I
Ht ^R
I
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RI
Ht ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt  ^RI	Ht  . R\Ot)Rt*Rt+R]PX                  9   t-]P\                  ! RRR]/4      t/]/P`                  t0] Pb                  ]
Pd                  ] Pf                  ]
Ph                  ] Pj                  ]
Pl                  ] Pn                  ]
Pp                  ] Pr                  ]
Pt                  ] Pv                  ]
Px                  ] Pz                  ]
P|                  ] P~                  ]
P                  ] P                  ]
P                  ] P                  ]
P                  ] P                  ]
P                  ] P                  ]*] P                  ]
P                  /tJ ! R  R!]P\                  4      tK]L! 4       P                  ]KP                  4        ! R" R#]P\                  4      tO]L! 4       P                  ]OP                  4       ]P! R^/ R$^ bR%^bR&^bR'^bR(^bR)^bR*^bR+^bR,^bR-^	bR.^
bR/^bR0^bR1^bR2^bR3^bR4^bR5^bR6^bR7^bR8^bR9^b tQ]P                  ! R:R;7      R< 4       tS]R= 4       tTR> tUR? tV] P                  tW] P                  tX] P                  tYR@ tZRA t[RB t\RC t]RD t^RE t_RF t`RG taRHsb]P                  ! 4       tdRI teRJ tfR_RK ltgRL thRM tiRN tjRO tk^ slRP tmRQ tnRR toRS tp ! RT RU4      tq] P                  tr] P                  ts] P                  ttRV tuR`RW ltvRX twRY tx ! RZ R[4      tyR#   ]! dl   t"]#! ]"4      PI                  4       PK                  R4      '       d;   ]PL                  ! 4       ^ ,          ^8  d   Rt']'R,          t']'R,          t'](! ]'4      ]"hh Rt"A"ii ; i)az Windows platform implementation.N)_common)_ntuples)ENCODING)AccessDenied)NoSuchProcess)TimeoutExpired)	conn_tmap)conn_to_ntuple)debug)isfile_strict)memoize)memoize_when_activated)parse_environ_block)usage_percent)ABOVE_NORMAL_PRIORITY_CLASS)BELOW_NORMAL_PRIORITY_CLASS)HIGH_PRIORITY_CLASS)IDLE_PRIORITY_CLASS)NORMAL_PRIORITY_CLASS)REALTIME_PRIORITY_CLASS)_psutil_windowszdll load failedz3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z2000, XP and 2003 serverAF_LINK
DELETE_TCBi+  __pypy__AddressFamilyc                   .    ] tR t^et]t]t]t]t]t]	t	Rt
R# )Priority N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   __static_attributes__r       8/tmp/pip-target-e6j6ikcs/lib/python/psutil/_pswindows.pyr   r   e   s&    "="=--15r#   r   c                   &    ] tR t^qt^ t^t^t^tRtR# )
IOPriorityr   N)	r   r   r    r!   IOPRIO_VERYLOW
IOPRIO_LOWIOPRIO_NORMALIOPRIO_HIGHr"   r   r#   r$   r&   r&   q   s    NJMKr#   r&   num_handlesctx_switches	user_timekernel_timecreate_timenum_threads	io_rcount	io_wcount	io_rbytes	io_wbytesio_count_othersio_bytes_othersnum_page_faults	peak_wsetwsetpeak_paged_pool
paged_poolpeak_non_paged_poolnon_paged_poolpagefilepeak_pagefilemem_privatei   )maxsizec                "   V P                  R4      '       d   V # RP                  V P                  R4      R,          4      pVR9   dW   RP                  V P                  R4      R,          4      pRRP                  V P                  R4      R,          4      ,           pMFVP                  R4      '       d   V P                  R4      ^,          pM\        P                  ! V4      pV \        V4      R p\        P                  P                  W#4      # )	zConvert paths using native DOS format like:
    "\Device\HarddiskVolume1\Windows\systemew\file.txt" or
    "\??\C:\Windows\systemew\file.txt"
into:
    "C:\Windows\systemew\file.txt".
z\\\:N   N:N   N:rD   rE   Nz\??\N>   \??\UNC\Device\Mup)
startswithjoinsplitcextQueryDosDevicelenospath)srawdrivedriveletter	remainders   &   r$   convert_dos_pathrT      s     	||Fyyr*+H1199QWWT]2./tyys);<<			X	&	&ggdmA&))(3#h-/"I77<<//r#   c                  ,    \         P                  ! 4       # N)rK   getpagesizer   r#   r$   rW   rW      s    r#   c                     \         P                  ! 4       p V w  rr4TpTpTpWV,
          p\        WV,
          V^R7      p	\        P                  ! WVWV4      # )z&System virtual memory as a namedtuple.round_)rK   virtual_memr   ntpsvmem)
memtotphys	availphys_totsys	_availsystotalavailfreeusedpercents
             r$   virtual_memoryrh      sS    



C-0*GEED=DU]U1=G99U7$77r#   c                 .   \         P                  ! 4       p V ^ ,          pV ^,          pW!,
          pV^ 8  d0   \         P                  ! 4       p\        RV,          V,          4      pMRp^ pW5,
          p\	        V^4      p\
        P                  ! W5Wg^ ^ 4      # )z=Swap system memory as a (total, used, free, sin, sout) tuple.g{Gz?        )rK   r[   swap_percentintroundr\   sswap)r^   
total_phystotal_systemrc   percentswaprf   re   rg   s           r$   swap_memoryrr      s    



CQJq6L %E
 qy'')4+%-.<DK#G99U$A66r#   c                    \        V \        4      '       d   V P                  \        RR7      p \        P
                  ! V 4      w  rp\        W!^R7      p\        P                  ! WW44      # )z'Return disk usage associated with path.strict)errorsrY   )	
isinstancebytesdecoder   rK   
disk_usager   r\   
sdiskusage)rO   rc   rf   re   rg   s   &    r$   ry   ry      sS    $ {{8H{5-ED2G>>%t55r#   c                    \         P                  ! V 4      pV Uu. uF  p\        P                  ! V!  NK  	  up# u upi )zReturn disk partitions.)rK   disk_partitionsr\   	sdiskpart)allrawlistxs   &  r$   r|   r|      s3    ""3'G'./w!CMM1w///s   ;c                 "   \         P                  ! 4       w  rp\        P                  ! \	        \         P
                  ! 4       !   Uu. uF  p\        V4      NK  	  up!  p\        P                  ! WW$P                  VP                  4      # u upi )z)Return system CPU times as a named tuple.)	rK   	cpu_timesr\   	scputimeszipper_cpu_timessum	interruptdpc)usersystemidlenpercpu_summeds        r$   r   r     st    )D$ MMt1134	54Q#a&4	5M ==d33]5F5F  
6s   Bc                     . p \         P                  ! 4        F0  w  rr4p\        P                  ! WW4V4      pV P	                  V4       K2  	  V # )z6Return system per-CPU times as a list of named tuples.)rK   r   r\   r   append)retr   r   r   r   r   items          r$   r   r     sG    
C.2.@.@.B*ds}}T4C@

4 /C Jr#   c                 ,    \         P                  ! 4       # )z0Return the number of logical CPUs in the system.)rK   cpu_count_logicalr   r#   r$   r   r     s    !!##r#   c                 ,    \         P                  ! 4       # )z-Return the number of CPU cores in the system.)rK   cpu_count_coresr   r#   r$   r   r     s    !!r#   c                 d    \         P                  ! 4       w  rr#^ p\        P                  ! WWC4      # )zReturn CPU statistics.)rK   	cpu_statsr\   	scpustats)r,   
interrupts_dpcssyscallssoft_interruptss        r$   r   r   #  s)    040@-LeO==?MMr#   c                     \         P                  ! 4       w  rRp\        P                  ! \	        V 4      V\	        V4      4      .# )zEReturn CPU frequency.
On Windows per-cpu frequency is not supported.
rj   )rK   cpu_freqr\   scpufreqfloat)currmax_min_s      r$   r   r   *  s4     JDDLLtdE$K899r#   Fc                      \         P                  ! 4       p \        ;QJ d    . R  V  4       F  NK  	  5# ! R  V  4       4      # )c              3   :   "   T F  p\        V^4      x  K  	  R# 5i)   N)rm   ).0loads   & r$   	<genexpr>#_getloadavg_impl.<locals>.<genexpr>:  s     6IDtQIs   )rK   
getloadavgtuple)	raw_loadss    r$   _getloadavg_implr   7  s0    !I56I65656I666r#   c                     \         '       d   \        4       # \        ;_uu_ 4        \         '       g   \        P                  ! 4        Rs RRR4       \        4       #   + '       g   i     \        4       # ; i)z|Return the number of processes in the system run queue averaged
over the last 1, 5, and 15 minutes respectively as a tuple.
TN)_loadavg_initializedr   _lockrK   init_loadavg_counterr   r#   r$   r   r   =  sS     !!	##%%'#'  

  

 s   $AA4	c                    \         V ,          w  r#\        P                  ! WV4      p\        4       pV F;  pVw  rxrrp\	        TTT	T
TT\
        VR8X  d   TMRR7      pVP                  V4       K=  	  \        V4      # )zReturn socket connections.  If pid == -1 return system-wide
connections (as opposed to connections opened by one process only).
N)pid)r   rK   net_connectionssetr	   TCP_STATUSESaddlist)kind_pidfamiliestypesr   r   r   fdfamtypeladdrraddrstatusr   nts   &&             r$   r   r   S  s      oOH""459G
%C370eSrzt	
 	  9r#   c                     / p \         P                  ! 4       pVP                  4        FP  w  r#Vw  rErg\        \        R4      '       d   \        P
                  ! V4      p\        P                  ! WEWgR4      W&   KR  	  V # )z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex )rK   net_if_statsitemshasattrr   r   r\   	snicstats)r   rawdictnamer   isupduplexspeedmtus           r$   r   r   j  si    
C!G}}#( e7K((&&v.FMM$B?		 '
 Jr#   c                 ,    \         P                  ! 4       # )zkReturn network I/O statistics for every network interface
installed on the system as a dict of raw tuples.
)rK   net_io_countersr   r#   r$   r   r   v  s     !!r#   c                 ,    \         P                  ! 4       # )z,Return the addresses associated to each NIC.)rK   net_if_addrsr   r#   r$   r   r   }  s    r#   c                 6   \         P                  ! 4       w  rr#V ^8H  p\        V^,          4      p\        V^,          4      pV'       d   R# V'       g	   V'       d   \        P                  pMVR8X  d   \        P
                  p\        P                  ! W#V4      # )zReturn battery information.Nr   )rK   sensors_batteryboolr   POWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNr\   sbattery)acline_statusflagsrg   secsleftpower_plugged
no_batterychargings          r$   r   r     su    
 /3.B.B.D+M'!Q&Meck"JEAIH//	R--<<=99r#   c                     \         P                   ! 4       \        P                  ! 4       ,
          p \        V \        ,
          4      ^8:  d   \        # V sV # )zyThe system boot time expressed in seconds since the epoch. This
also includes the time spent during hybernate / suspend.
)timerK   uptimeabs_last_btime)r   s    r$   	boot_timer     s<     ))+
%C
3"
r#   c                     . p \         P                  ! 4       pV F2  pVw  r4p\        P                  ! VRWER4      pV P	                  V4       K4  	  V # )z:Return currently connected users as a list of namedtuples.N)rK   usersr\   suserr   )retlistr   r   r   hostnametstampr   s          r$   r   r     sM    GjjlG!%YYtT8T:r  Nr#   c               #  d   "   \         P                  ! 4        F  w  r\        W4      x  K  	  R# 5i)z*Yields a list of WindowsService instances.N)rK   winservice_enumerateWindowsService)r   display_names     r$   win_service_iterr     s&     "779T00 :s   .0c                V    \        V R4      pVP                  4       R,          Vn        V# )zBOpen a Windows service and return it as a WindowsService instance.Nr   )r   _query_config_display_name)r   services   & r$   win_service_getr     s)    T4(G#113NCGNr#   c                      a  ] tR tRt o RtR tR tR tR tR t	R t
R	 t]P                  R
 4       tR tR tR tR tR tR tR tR tR tRtV tR# )r   i  z(Represents an installed Windows service.c                    Wn         W n        R # rV   )_namer   )selfr   r   s   &&&r$   __init__WindowsService.__init__  s    
)r#   c                t    R V P                   : RV P                  : R2pV P                  P                   V 2# )z(name=z, display_name=))r   r   	__class__r   )r   detailss   & r$   __str__WindowsService.__str__  s;    4::.8J8J7MQO..))*7)44r#   c                B    R V P                  4        R\        V 4       R2# )<z at >)r  idr   s   &r$   __repr__WindowsService.__repr__  s"    4<<>"$r$xj22r#   c                l    \        V\        4      '       g   \        # V P                  VP                  8H  # rV   )rv   r   NotImplementedr   r   others   &&r$   __eq__WindowsService.__eq__  s*     %00!!zzU[[((r#   c                    W8X  * # rV   r   r  s   &&r$   __ne__WindowsService.__ne__  s      r#   c                    V P                  4       ;_uu_ 4        \        P                  ! V P                  4      w  rr4R R R 4       \	        XXXXR7      #   + '       g   i     L; i)N)r   binpathusername
start_type)_wrap_exceptionsrK   winservice_query_configr   dict)r   r   r  r  r  s   &    r$   r   WindowsService._query_config  sU    ""$$,,TZZ8 8L8 %
 %!	
 	
 %$s   $AA$	c                    V P                  4       ;_uu_ 4        \        P                  ! V P                  4      w  rR R R 4       X^ 8X  d   R p\	        XVR7      #   + '       g   i     L&; i)N)r   r   )r  rK   winservice_query_statusr   r  )r   r   r   s   &  r$   _query_statusWindowsService._query_status  sN    ""$$66tzzBKF %!8C6s++	 %$s   #AA*	c              #  ,  "    Rx  R#   \          d}   pT P                  p\        T4      '       d   RT: R2p\        RY#R7      ThTP                  \
        P                  \
        P                  09   d   RT: R2p\        RY#R7      Thh Rp?ii ; i5i)zkCtx manager which translates bare OSError and WindowsError
exceptions into NoSuchProcess and AccessDenied.
Nzservice z( is not querable (not enough privileges)r   r   msgz does not exist)	OSErrorr   is_permission_errr   winerrorrK   ERROR_INVALID_NAMEERROR_SERVICE_DOES_NOT_EXISTr   )r   errr   r#  s   &   r$   r  WindowsService._wrap_exceptions  s     
	 	::D %%th&NO  #t$@cI''11"  !8#4AsJ	s%   B
 BBA7BBBc                    V P                   # )zThe service name. This string is how a service is referenced
and can be passed to win_service_get() to get a new
WindowsService instance.
)r   r	  s   &r$   r   WindowsService.name  s    
 zzr#   c                    V P                   # )zOThe service display name. The value is cached when this class
is instantiated.
)r   r	  s   &r$   r   WindowsService.display_name  s     !!!r#   c                0    V P                  4       R,          # )zgThe fully qualified path to the service binary/exe file as
a string, including command line arguments.
r  r   r	  s   &r$   r  WindowsService.binpath"  s     !!#I..r#   c                0    V P                  4       R,          # )z,The name of the user that owns this service.r  r0  r	  s   &r$   r  WindowsService.username(  s    !!#J//r#   c                0    V P                  4       R,          # )zBA string which can either be "automatic", "manual" or
"disabled".
r  r0  r	  s   &r$   r  WindowsService.start_type,  s     !!#L11r#   c                0    V P                  4       R,          # )zjThe process PID, if any, else None. This can be passed
to Process class to control the service's process.
r   r  r	  s   &r$   r   WindowsService.pid4  s     !!#E**r#   c                0    V P                  4       R,          # )zService status as a string.r   r7  r	  s   &r$   r   WindowsService.status:  s    !!#H--r#   c                J    \         P                  ! V P                  4       4      # )zService long description.)rK   winservice_query_descrr   r	  s   &r$   descriptionWindowsService.description>  s    **499;77r#   c                    V P                  4       pVP                  V P                  4       4       V P                  4       VR&   V P	                  4       VR&   V P                  4       VR&   V# )zEUtility method retrieving all the information above as a
dictionary.
r   r   r=  )r   updater  r   r   r=  )r   ds   & r$   as_dictWindowsService.as_dictD  sa      	##%&IIK&	 --/.++--r#   )r   r   N)r   r   r    r!   __doc__r   r  r
  r  r  r   r  
contextlibcontextmanagerr  r   r   r  r  r  r   r   r=  rB  r"   __classdictcell____classdict__s   @r$   r   r     sw     2*53)!
,  0"/02+.8	 	r#   r   c                    \        V \        4      '       g   Q V 4       h\        V \        4      ;'       g.    V P                  \        P
                  \        P                  09   # )z*Return True if this is a permission error.)rv   r$  PermissionErrorr&  rK   ERROR_ACCESS_DENIEDERROR_PRIVILEGE_NOT_HELD)excs   &r$   r%  r%    sV    c7##(S(#c?+  s||  %%@ 0 r#   c                    \        V \        4      '       g   Q V 4       h\        V 4      '       d   \        WR7      # \        V \        4      '       d   \        WR7      # V h)z3Convert OSError into NoSuchProcess or AccessDenied.r   r   )rv   r$  r%  r   ProcessLookupErrorr   )rN  r   r   s   &&&r$   convert_oserrorrR    sN    c7##(S(#//#)**00
Ir#   c                F   a  \         P                  ! S 4      V 3R l4       pV# )zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c                    <  S! V .VO5/ VB #   \          d(   p\        Y0P                  T P                  R 7      ThRp?ii ; i)rP  N)r$  rR  r   r   )r   argskwargsr)  funs   &*, r$   wrapper wrap_exceptions.<locals>.wrapper  sG    	Ot-d-f-- 	O!#88$**E3N	Os    A"<A	functoolswrapsrW  rX  s   f r$   wrap_exceptionsr^    s)     __SO O Nr#   c                F   a  \         P                  ! S 4      V 3R l4       pV# )zyWorkaround for https://github.com/giampaolo/psutil/issues/875.
See: https://stackoverflow.com/questions/4457745#4457745.
c                 V  < R p^!p\        V4       F  p S! V .VO5/ VB u # 	  S RV RX 2p\        V P                  V P                  VR7      h  \         dM   pTpTP                  \        8X  d0   \        P
                  ! T4       \        T^,          R4      p Rp?K  h Rp?ii ; i)-C6?{Gz?Nz	 retried z: times, converted to AccessDenied as it's still returning r"  )
ranger$  r&  ERROR_PARTIAL_COPYr   sleepminr   r   r   )	r   rU  rV  delaytimes_r)  r#  rW  s	   &*,     r$   rX  )retry_error_partial_copy.<locals>.wrapper  s    uA41$1&11  e9UG $"e% 	 txxdjjcBB  <<#55JJu%	40Es   AB(A B#"B##B(rZ  r]  s   f r$   retry_error_partial_copyrk    s)    
 __SC C& Nr#   c                   Z  a  ] tR tRt o Rt. R)OtR tR tR t]	R 4       t
R t]]	R 4       4       t]]R	 4       4       t]]R
 4       4       tR tR t]R 4       t]R 4       tR t]R 4       t]R 4       t]R*R l4       t]R 4       t]R+R l4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]]R 4       4       t ]R 4       t!]R,R l4       t"]R 4       t#]R 4       t$]R  4       t%]R! 4       t&]R" 4       t']R# 4       t(]R$ 4       t)]R% 4       t*]R& 4       t+]R' 4       t,R(t-V t.R# )-Processi  z1Wrapper class around underlying C implementation.c                .    Wn         R V n        R V n        R # rV   )r   r   _ppid)r   r   s   &&r$   r   Process.__init__  s    

r#   c                r    V P                   P                  V 4       V P                  P                  V 4       R # rV   )
_proc_infocache_activateexer	  s   &r$   oneshot_enterProcess.oneshot_enter  s&    &&t,%r#   c                r    V P                   P                  V 4       V P                  P                  V 4       R # rV   )rr  cache_deactivatert  r	  s   &r$   oneshot_exitProcess.oneshot_exit  s&    ((.!!$'r#   c                    \         P                  ! V P                  4      p\        V4      \        \        4      8X  g   Q hV# )z?Return multiple information about this process as a
raw tuple.
)rK   	proc_infor   rM   	pinfo_mapr   r   s   & r$   rr  Process._proc_info  s1    
 nnTXX&3x3y>)))
r#   c                    V P                   ^ 8X  d   R# V P                   ^8X  d   R# \        P                  P                  V P	                  4       4      # )zRReturn process name, which on Windows is always the final
part of the executable.
zSystem Idle ProcessSystem)r   rN   rO   basenamert  r	  s   &r$   r   Process.name  s;     88q=(88q=ww
++r#   c                   \         '       d#    \        P                  ! V P                  4      pM \        P                  ! V P                  4      pVP                  R4      '       d   \        V4      # V#   \         dH   pTP
                  ^8X  d1   \        T: R24       \        T P                  T P                  4      Thh Rp?ii ; i)   z translated into AccessDeniedNrC   )PYPYrK   proc_exer   r$  errnor
   r   r   rH   rT   )r   rt  r)  s   &  r$   rt  Process.exe  s     4mmDHH- --)C>>$#C((
   99?SG#@AB&txx<#Es    A3 3C>AC  Cc                j   \         P                  \         P                  8  d$    \         P                  ! V P                  R R7      # \         P                  ! V P                  R R7      #   \
         d?   p\        T4      '       d(   \         P                  ! T P                  RR7      u Rp?# h Rp?ii ; i)T)use_pebFN)rK   WINVERWINDOWS_8_1proc_cmdliner   r$  r%  r   r)  s   & r$   cmdlineProcess.cmdline  s     ;;$***((4@@ $$TXXt<<  $S)),,TXXuEE	s#   !A) )B242B-&B2,B--B2c                X    \         P                  ! V P                  4      p\        V4      # rV   )rK   proc_environr   r   )r   rP   s   & r$   environProcess.environ	  s#     dhh'"1%%r#   c                     \        4       V P                  ,          #   \         d#    \        T P                  T P                  4      R hi ; irV   )ppid_mapr   KeyErrorr   r   r	  s   &r$   ppidProcess.ppid  sA    	@:dhh'' 	@$**54?	@s	    -A
c                N    \         P                  ! V P                  4      #   \         d   p\	        T4      '       d   \        R 4       T P                  4       pT\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R	,          ,          T\        R
,          ,          3
u Rp?# h Rp?ii ; i)z*attempting memory_info() fallback (slower)r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   N)rK   proc_memory_infor   r$  r%  r
   rr  r}  )r   r)  infos   &  r$   _get_raw_meminfoProcess._get_raw_meminfo  s    	((22 	 %% BC(#456;/06*+#456<01#89:#345:./?34=12  %	s!   " D$C+DD$DD$c                ~    V P                  4       pV^,          pV^,          p\        P                  ! W#3V,           !  # )r   )r  r\   pmem)r   trssvmss   &   r$   memory_infoProcess.memory_info,  s9    
 !!#ddxx#a((r#   c                    V P                  4       p\        P                  ! V P                  4      pV\	        4       ,          p\
        P                  ! W3,           !  # rV   )r  rK   proc_memory_ussr   rW   r\   pfullmem)r   	basic_memusss   &  r$   memory_full_infoProcess.memory_full_info6  sD    $$&	""488,{}||Y/00r#   c              #    "    \         P                  ! V P                  4      pV F"  w  r#rE\        V4      p\	        V4      pW#WE3x  K$  	  R #   \
         d'   p\        Y`P                  T P                  4      ThR p?ii ; i5irV   )rK   proc_memory_mapsr   rT   hexr$  rR  r   )r   rawaddrpermrO   r  r)  s   &      r$   memory_mapsProcess.memory_maps=  sy     
	.''1C *-%D'-4y4-- *-  	F "#xx<#E	Fs'   B A *BA?!A::A??Bc                B    \         P                  ! V P                  4      # rV   )rK   	proc_killr   r	  s   &r$   killProcess.killJ  s    ~~dhh''r#   c                   V\         P                  8X  d#   \        P                  ! V P                  4       R# V\         P
                  \         P                  09   d$   \        P                  ! V P                  V4       R# R p\        V4      h)zPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on WindowsN)
signalSIGTERMrK   r  r   CTRL_C_EVENTCTRL_BREAK_EVENTrN   r  
ValueError)r   sigr#  s   && r$   send_signalProcess.send_signalN  s_    &.. NN488$V((&*A*ABBGGDHHc"+  S/!r#   Nc                   Vf   \         P                  pM\        VR,          4      p\        \        R\        P                  4      pVe   V! 4       V,           MR p \         P
                  ! V P                  V4      pRp \        T P                  4      '       g   T# T'       d.   T! 4       T8  d"   \        YP                  T P                  R7      h\        P                  ! T4       \        T^,          R4      pK~    \         P                   d'   p\        YP                  T P                  4      ThR p?i\         P                   d    R p Li ; i)Ni  	monotonicra  rP  rb  )rK   INFINITErl   getattrr   	proc_waitr   r   r   TimeoutAbandoned
pid_existsre  rf  )r   timeoutcext_timeouttimerstop_at	exit_coder)  rg  s   &&      r$   waitProcess.wait[  s   ?==L w~.Lk4995'.':%'G#	 txx>I& dhh''  57g-$W((LLJJu	4(E3 "" 	I ((DJJ?SH$$ 		 I		s$   !C= =E!D33E
EEc                z    V P                   R9   d   R# \        P                  ! V P                   4      w  rV RV 2# )    zNT AUTHORITY\SYSTEMrC      r     )r   rK   proc_username)r   domainr   s   &  r$   r  Process.username  s8    88v)))$((3D6""r#   c                    \         P                  ! V P                  4      w  r#pV#   \         dS   p\	        T4      '       d<   T'       d   h \        R 4       T P                  4       \        R,          ,          u Rp?# h Rp?ii ; i)z*attempting create_time() fallback (slower)r/   N)rK   
proc_timesr   r$  r%  r
   rr  r}  )r   	fast_only_user_systemcreatedr)  s   &&    r$   r/   Process.create_time  sg    		&*oodhh&?#EGN 	 %%BC(=)ABB	s&   $' BA?-A?8B>A??Bc                F    V P                  4       \        R ,          ,          # )r0   )rr  r}  r	  s   &r$   r0   Process.num_threads  s     =!9::r#   c                    \         P                  ! V P                  4      p. pV F.  w  r4p\        P                  ! W4V4      pVP                  V4       K0  	  V# rV   )rK   proc_threadsr   r\   pthreadr   )r   r   r   	thread_idutimestimentuples   &      r$   threadsProcess.threads  sM    ##DHH-'.#Ie[[59FNN6" (/ r#   c                T    \         P                  ! V P                  4      w  rp\        P                  ! WRR4      #   \         d`   p\	        T4      '       g   h \        R 4       T P                  4       pT\        R,          ,          pT\        R,          ,          p Rp?L}Rp?ii ; i)z(attempting cpu_times() fallback (slower)r-   r.   Nrj   )
rK   r  r   r$  r%  r
   rr  r}  r\   	pcputimes)r   r   r   _createdr)  r  s   &     r$   r   Process.cpu_times  s    	4%)__TXX%>"D( }}T344  	4$S))<=??$D	+./D)M23F	4s   #= B'AB""B'c                H    \         P                  ! V P                  R 4       R# )TNrK   proc_suspend_or_resumer   r	  s   &r$   suspendProcess.suspend  s    ##DHHd3r#   c                H    \         P                  ! V P                  R 4       R# )FNr  r	  s   &r$   resumeProcess.resume  s    ##DHHe4r#   c                    V P                   R9   d!   \        V P                   V P                  4      h\        P                  ! V P                   4      p\
        P                  P                  V4      # )r  r  )r   r   r   rK   proc_cwdrN   rO   normpath)r   rO   s   & r$   cwdProcess.cwd  sN     88vtxx44 }}TXX&ww%%r#   c                0   V P                   R9   d   . # \        4       p\        P                  ! V P                   4      pV FI  p\	        V4      p\        V4      '       g   K!  \        P                  ! VR4      pVP                  V4       KK  	  \        V4      # )r  r  r   )
r   r   rK   proc_open_filesrT   r   r\   	popenfiler   r   )r   r   raw_file_namesfiler  s   &    r$   
open_filesProcess.open_files  sv    88vIe
 --dhh7"D#D)DT""tR0	 #
 Cyr#   c                .    \        WP                  R 7      # ))r   )r   r   )r   r   s   &&r$   r   Process.net_connections  s    t((33r#   c                \    \         P                  ! V P                  4      p\        V4      pV# rV   )rK   proc_priority_getr   r   r   values   & r$   nice_getProcess.nice_get  s$    &&txx0r#   c                D    \         P                  ! V P                  V4      # rV   )rK   proc_priority_setr   r  s   &&r$   nice_setProcess.nice_set  s    %%dhh66r#   c                \    \         P                  ! V P                  4      p\        V4      pV# rV   )rK   proc_io_priority_getr   r&   r~  s   & r$   
ionice_getProcess.ionice_get  s$    ''1o
r#   c                   V'       d   R p\        V4      hV\        P                  \        P                  \        P                  \        P
                  09  d   V R2p\        V4      h\        P                  ! V P                  V4       R# )z&value argument not accepted on Windowsz is not a valid priorityN)
	TypeErrorr&   r'   r(   r)   r*   r  rK   proc_io_priority_setr   )r   ioclassr  r#  s   &&& r$   
ionice_setProcess.ionice_set  sr    :CC. %%!!$$""	
 
 I56CS/!!!$((G4r#   c           	         \         P                  ! V P                  4      p\        P                  ! V!  #   \         d   p\	        T4      '       g   h \        R 4       T P                  4       pT\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          T\        R,          ,          3p Rp?LRp?ii ; i)z*attempting io_counters() fallback (slower)r1   r2   r3   r4   r5   r6   N)
rK   proc_io_countersr   r$  r%  r
   rr  r}  r\   pio)r   r   r)  r  s   &   r$   io_countersProcess.io_counters  s    	''1C ww}  	$S))>???$DY{+,Y{+,Y{+,Y{+,Y012Y012C	s    6 C,B!C''C,c                    \         P                  ! V P                  4      pV'       d   \        P                  # \        P
                  # rV   )rK   proc_is_suspendedr   r   STATUS_STOPPEDSTATUS_RUNNING)r   	suspendeds   & r$   r   Process.status  s1    **4884	))))))r#   c                X    R  p\         P                  ! V P                  4      pV! V4      # )c                 r    \        ^@4       Uu. uF  p^V,          V ,          '       g   K  VNK  	  up# u upi )@   )rc  )r   is   & r$   from_bitmask.Process.cpu_affinity_get.<locals>.from_bitmask  s,    $Ry9y!Q!VqLLAAy999s   44)rK   proc_cpu_affinity_getr   )r   r'  bitmasks   &  r$   cpu_affinity_getProcess.cpu_affinity_get  s(    	: ,,TXX6G$$r#   c                8   R  p\        \        \        \        4       4      4      4      pV FB  pWC9  g   K  \	        V\
        4      '       g   RV: R2p\        V4      hRV: 2p\        V4      h	  V! V4      p\        P                  ! V P                  V4       R# )c                 n    V '       g   R V : 2p\        V4      h^ pV  F  pV^V,          ,          pK  	  V# )zinvalid argument )r  )lsr#  outbs   &   r$   
to_bitmask,Process.cpu_affinity_set.<locals>.to_bitmask"  s<    )"0 o%Cq!t Jr#   zinvalid CPU z; an integer is requiredN)r   rc  rM   r   rv   rl   r  r  rK   proc_cpu_affinity_setr   )r   r  r2  allcpuscpur#  r*  s   &&     r$   cpu_affinity_setProcess.cpu_affinity_set   s    	 uS123C!!#s++(/GHC#C.($SG, o%  U#""488W5r#   c                     \         P                  ! V P                  4      #   \         dJ   p\	        T4      '       d3   \        R 4       T P                  4       \        R,          ,          u Rp?# h Rp?ii ; i)z*attempting num_handles() fallback (slower)r+   N)rK   proc_num_handlesr   r$  r%  r
   rr  r}  r  s   & r$   r+   Process.num_handles:  sZ    	((22 	 %%BC(=)ABB		s    " A6=A1*A60A11A6c                t    V P                  4       \        R ,          ,          p\        P                  ! V^ 4      # )r,   )rr  r}  r\   pctxsw)r   r,   s   & r$   num_ctx_switchesProcess.num_ctx_switchesD  s)    (>)BCzz,**r#   )r   ro  r   )_cacher   ro  r   rV   )F)inet)/r   r   r    r!   rD  	__slots__r   ru  ry  r   rr  r   r^  rt  rk  r  r  r  r  r  r  r  r  r  r  r  r/   r0   r  r   r  r  r  r   r   r  r  r  r  r  r   r+  r7  r+   r>  r"   rG  rH  s   @r$   rm  rm    s    ;3I&(  
,   " =  = &  &@. ) ) 1 1. ( ( 
" 
" () ()T # #   ; ;   5 5 4 4 5 5 &  &    4 4  
 7 7  
 5 5  $ * * % % 6 62   + +r#   rm  )r   r   r   r   r   r   r   r   r'   r(   r)   r*   CONN_DELETE_TCBr   r   r   )r   )NN)zrD  rE  enumr[  rN   r  sys	threadingr   r   r   r   r\   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   rK   ImportErrorr)  strlowerrH   getwindowsversionr#  RuntimeError__extra__all__rC  rd  builtin_module_namesr  IntEnumr   r   MIB_TCP_STATE_ESTABCONN_ESTABLISHEDMIB_TCP_STATE_SYN_SENTCONN_SYN_SENTMIB_TCP_STATE_SYN_RCVDCONN_SYN_RECVMIB_TCP_STATE_FIN_WAIT1CONN_FIN_WAIT1MIB_TCP_STATE_FIN_WAIT2CONN_FIN_WAIT2MIB_TCP_STATE_TIME_WAITCONN_TIME_WAITMIB_TCP_STATE_CLOSED
CONN_CLOSEMIB_TCP_STATE_CLOSE_WAITCONN_CLOSE_WAITMIB_TCP_STATE_LAST_ACKCONN_LAST_ACKMIB_TCP_STATE_LISTENCONN_LISTENMIB_TCP_STATE_CLOSINGCONN_CLOSINGMIB_TCP_STATE_DELETE_TCBPSUTIL_CONN_NONE	CONN_NONEr   r   globalsr@  __members__r&   r  r}  	lru_cacherT   rW   rh   rr   	heap_info	heap_trimdisk_io_countersry   r|   r   r   r   r   r   r   r   Lockr   r   r   r   r   r   r   r   r   r   r   r   r   r   pidsr  r  r%  rR  r^  rk  rm  r   r#   r$   <module>rp     sS  
 '    	  
      ! " #  #  "  + ( " 8 8 0 0 2 4)*
$  S---_y"o>


 	g66!6!6!6!6  '"8"8  '"8"8  '"8"8w11!!7#:#:!6!6w22 4 4!!?7,,"6t|| 6 	  %% &  	  '' (   	
           
  !" #$ %& '( )* +, -	> S!0 "0* 	 		876 NN	NN	 (( 60$
"
N:  7,.	":2   1} }X yy__
==
8K+ K+m  C##$566!!#A&* DKK))3S(s   N O7A&O22O7