
    Xiw                        d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddl
mZ dd	l
mZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ g ZerWej        ej        ej        ej        ej         ej!        ej"        ej#        ej$        ej%        ej&        ej'        ej(        ej)        iZ*nerWej        ej        ej         ej!        ej"        ej#        ej+        ej%        ej$        ej%        ej        ej,        ej-        ej        iZ*nLerJej        ej        ej         ej!        ej"        ej#        ej$        ej%        ej        ej,        ej-        ej        iZ*ej.        ej/        ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        ejB        ejC        ejD        ejE        iZF ejG                    ZHejI        ZI eJed          ZK eLdri dddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFZM edGg dH          ZN edIg dJ          ZO edKg dL          ZPePZQ edMg dN          ZR edOdP          ZS edQdR          ZTer edSg dT          ZUn edSg dU          ZUdV ZVdW ZWdX ZXdY ZYdZ ZZeserd[ Z[nd\ Z[d] Z\erd^ Z]nerd_ Z]dsdaZ^ej_        Z_ej`        Z`eja        Zaejb        Zbdb Zcdc Zderdd Zede Zfdf Zger1	  eg            Zhn"# ei$ rZj edgej           dZhY dZj[jndZj[jww xY wdh Zkdi Zledj             Zmdk Znerdl Zonerdm Zonejo        Zodn Zpejq        do             Zr G dp dq          ZsdS )tz5FreeBSD, OpenBSD and NetBSD platforms implementation.    N)defaultdict)
namedtuple)ElementTree   )_common)_psposix)_psutil_bsd)FREEBSD)NETBSD)OPENBSD)AccessDenied)NoSuchProcess)ZombieProcess)	conn_tmap)conn_to_ntuple)debug)memoize)memoize_when_activated)usage_percentproc_num_threadsppidstatusreal_uid   effective_uid   	saved_uid   real_gid   effective_gid   	saved_gid   ttynr   create_time	   ctx_switches_vol
   ctx_switches_unvol   read_io_count   write_io_count   	user_time   sys_time   ch_user_time   ch_sys_time   rss   vms   memtext   memdata   memstack   cpunum   name   svmem)total	availablepercentusedfreeactiveinactivebufferscachedsharedwired	scputimesusernicesystemidleirqpmem)r9   r;   textdatastack	pcputimes)rU   rW   children_userchildren_systempmmap_grouped*path rss, private, ref_count, shadow_count	pmmap_ext6addr, perms path rss, private, ref_count, shadow_countsdiskio)
read_countwrite_count
read_byteswrite_bytes	read_time
write_time	busy_time)rf   rg   rh   ri   c                  J   t          j                    } t          r| \  }}}}}}t          dd          5 }|D ]}|                    d          r+t          |                                d                   dz  }	B|                    d          r*t          |                                d                   dz  }
	 d d d            n# 1 swxY w Y   ||z   }||z
  }n| \  }}}}}}}	}
||z   |z   }||z   |z   }t          ||z
  |d          }t          ||||||||	||
|          S )Nz/proc/meminforbs   Buffers:r   i   s
   MemShared:round_)	cextvirtual_memr   open
startswithintsplitr   rG   )memrH   rL   rM   rN   rR   rP   flinerO   rQ   rK   availrJ   s                 e/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/psutil/_psbsd.pyvirtual_memoryr|      s   



C '7:4tVXuf /4(( 	9A 9 9??;// 9!$**,,q/22T9GG__]33 9 a11D8F	9	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 ~HKEtVXufgv 6!D(~&UU]U1===G  s   BCC
C
c                      t          j                    \  } }}}}t          || d          }t          j        | |||||          S )z@System swap memory as (total, used, free, sin, sout) namedtuple.r   ro   )rq   swap_memr   r   sswap)rH   rK   rL   sinsoutrJ   s         r{   swap_memoryr      sF    #'=?? E4sDD%222G=dGS$???    c                  Z    t          j                    \  } }}}}t          | ||||          S )z,Return system per-CPU times as a namedtuple.)rq   	cpu_timesrS   rT   s        r{   r   r      s0    $(N$4$4!D$cT4s333r   c                      g } t          j                    D ]2}|\  }}}}}t          |||||          }|                     |           3| S )z(Return system CPU times as a namedtuple.)rq   per_cpu_timesrS   append)retcpu_trU   rV   rW   rX   rY   items           r{   r   r      s^    
C#%%  (-%dFD#tVT377

4Jr   c                  (    t          j                    S )z0Return the number of logical CPUs in the system.)rq   cpu_count_logical r   r{   r   r      s    !###r   c                  .    t                      dk    rdnd S )Nr   )r   r   r   r{   cpu_count_coresr      s    %''1,,qq$6r   c                  ~   d} t          j                    }||                    d          }|dk    rt|d|dz            }t          j        |          }	 t          |                    d                    pd} |                                 n# |                                 w xY w| st                      dk    rdS | S )z-Return the number of CPU cores in the system.Nz	</groups>r(   zgroup/children/group/cpur   )	rq   cpu_topologyrfindr   
fromstringlenfindallclearr   )r   sindexroots       r{   r   r     s     =GGK((E{{k	kN"-a00!dll+EFFGGO4C JJLLLLDJJLLLL 	 ""a''q
s   $B B$c                     t           rt          j                    \  } }}}}nt          rt          j                    \  } }}}}}}t	          dd          5 }|D ]>}|                    d          r't          |                                d                   }?	 ddd           n# 1 swxY w Y   n"t          rt          j                    \  } }}}}}}t          j
        | |||          S )z*Return various CPU stats as a named tuple.z
/proc/statrn   s   intrr   N)r
   rq   	cpu_statsr   rs   rt   ru   rv   r   r   	scpustats)	ctxswintrs
soft_intrssyscalls_traps_faults_forksrx   ry   s	            r{   r   r      s:    
 6:^5E5E2uj(FF	 
 N 	Duj(FGV ,%% 	1 1 1??7++ 1

Q00E1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 
 
 N 	Duj(FGV UE:x@@@s   AB##B'*B'c                  f   g } t                      }t          |          D ]}	 t          j        |          \  }}n# t          $ r Y (w xY w|r	 t          |                    d          d                             d          d                   }n# t          t          f$ r d}Y nw xY w	 t          |                    d          d                             d          d                   }n# t          t          f$ r d}Y nw xY w| 	                    t          j        |||                     | S )zReturn frequency metrics for CPUs. As of Dec 2018 only
        CPU 0 appears to be supported by FreeBSD and all other cores
        match the frequency of CPU 0.
         r   /r   N)r   rangerq   cpu_freqNotImplementedErrorru   rv   
IndexError
ValueErrorr   r   scpufreq)r   num_cpuscpucurrentavailable_freqmin_freqmax_freqs          r{   r   r   B  s]   
 $&&?? 	F 	FC*.-*<*<'&    $$">#7#7#<#<R#@#F#Fs#K#KA#NOOHH"J/ $ $ $#HHH$$">#7#7#<#<Q#?#E#Ec#J#J1#MNNHH"J/ $ $ $#HHH$JJw'8DDEEEE
s5   <
A	A	ABB'&B'+AC--DDc                  p    t          t          j                              } t          j        | dd          gS )Ng        )floatrq   r   r   r   )currs    r{   r   r   \  s-    T]__%% sC0011r   Fc                     g }t          j                    }|D ]5}|\  }}}}t          j        ||||          }|                    |           6|S )zReturn mounted disk partitions as a list of namedtuples.
    'all' argument is ignored, see:
    https://github.com/giampaolo/psutil/issues/906.
    )rq   disk_partitionsr   	sdiskpartr   )	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            r{   r   r   f  sd    
 G%''J  	+4(
FD"6:vtDDvNr   c                     t                                                      } i }| D ]}	 t          j        |          }t          j        |          }t          j        |          \  }}t          t          d          rt          j        |          }d	                    |          }d|v }t          j
        |||||          ||<   # t          $ r }	|	j        t          j        k    r Y d}	~	d}	~	ww xY w|S )z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex,runningN)net_io_counterskeysrq   
net_if_mtunet_if_flagsnet_if_duplex_speedhasattrr   r   join	snicstatsOSErrorerrnoENODEV)
namesr   rE   mtuflagsduplexspeedoutput_flagsisuperrs
             r{   net_if_statsr     s   ""$$E
C  	/$''C%d++E 4T::MFE w,, 3 *62288E??L%D)feS, CII  	 	 	yEL(( )((((	 Js   ?C
C/C**C/c                 z   t           |          \  }}t                      }t          rt          j        d||          }n2t
          rt          j        d|           }nt          j        ||          }|D ]<}|\  }}}}	}
}}t          ||||	|
|t          |          }|                    |           =t          |          S )z System-wide network connections.r   )
r   setr   rq   net_connectionsr   r   TCP_STATUSESaddlist)kindfamiliestypesr   rawlistr   fdfamtypeladdrraddrr   pidnts                 r{   r   r     s    oOHe
%%C 8&r8U;;	 8&r400&x77  370CueVST5%s
 
 	99r   c                      	 t          j                    \  } }}n# t          $ r Y dS w xY w|dk    }|rt          j        }n|dk    rt          j        }n|dz  }t          j        | ||          S )zReturn battery info.Nr   r   <   )rq   sensors_batteryr   r   POWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNsbattery)rJ   minsleftpower_pluggedsecslefts       r{   r   r     s    	/3/C/E/E,GX}}" 	 	 	44	 &* 	%3HH^^1HH"}H=AAAs    
((c            	      8   t          t                    } t                      }t          |          D ]g}	 t	          j        |          \  }}|dk    rd}d| }| d                             t          j        ||||                     X# t          $ r Y dw xY w| S )z?Return CPU cores temperatures if available, else an empty dict.r   NzCore coretemp)
r   r   r   r   rq   sensors_cpu_temperaturer   r   shwtempr   )r   r   r   r   highrE   s         r{   sensors_temperaturesr     s    $$&&?? 
	 
	C	 $ <S A A199D$s}}J&&OD'4>>    '    
s   AB


BBc                  (    t          j                    S )z:The system boot time expressed in seconds since the epoch.)rq   	boot_timer   r   r{   r   r     s    >r   zignoring exception on import: c                     t           dk    r| S t           t                      z
  }|dk    st          |          dk     r| S t          d           |dk     r| |z
  S | |z   S )z!Account for system clock updates.r   r   z9system clock was updated; adjusting process create_time())INIT_BOOT_TIMEr   absr   )ctimediffs     r{   adjust_proc_create_timer    sh    QL	+199D		ALIJJJ!884<t|r   c                      g } t          j                    }|D ]@}|\  }}}}}|dk    rt          j        ||pd|||          }|                     |           A| S )z:Return currently connected users as a list of namedtuples.~N)rq   usersr   suserr   )	r   r   r   rU   ttyhostnametstampr   r   s	            r{   r  r    sr    GjllG  +/(c8VS#::]4hDDrNr   c                      	 t          d                                           dS # t          $ r Y dS t          $ r Y dS w xY w)Nr   TF)ProcessrE   r   r   r   r   r{   _pid_0_existsr    sa    

 t    uu   tts   !% 
?	??c                      t          j                    } t          r(d| vr$t                      r|                     dd           | S )z7Returns a list of PIDs currently running on the system.r   )rq   pidsr   r  insert)r   s    r{   r  r    s@    
)++C ASLLmooL 	

1aJr   c                 R    t          j        |           }|s| t                      v S dS )NTr   
pid_existsr  r   existss     r{   r  r  #  s/    $S)) 	 $&&= 4r   c                 R    t          j        |           }|sdS | t                      v S )NFr  r  s     r{   r  r  .  s/    $S)) 	!5
 $&&= r   c                 F     t          j                    fd            }|S )z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c                    | j         | j        | j        }}}	  | g|R i |S # t          $ r<}t	          j        |          rt          |||          |t          ||          |d }~wt          $ r}t          ||          |d }~wt          j
        $ r}t          |||          |d }~wt          $ r/}|dk    r!dt                      v rt          ||          ||d d }~ww xY w)Nr   )r   _ppid_nameProcessLookupErrorrq   proc_is_zombier   r   PermissionErrorr   ZombieProcessErrorr   r  )selfargskwargsr   r   rE   r   funs          r{   wrapperz wrap_exceptions.<locals>.wrapperA  s-   (DJ
4T	 3t-d---f---! 	4 	4 	4"3'' >#Ct44#=T**3 	3 	3 	3sD))s2& 	: 	: 	:T400c9 	  	  	 axxAKK"3--364	 s8   $ 
C#7A%%C#2BC#B''C#4*CC#)	functoolswraps)r"  r#  s   ` r{   wrap_exceptionsr&  <  s:    
 _S         " Nr   c              #   $  K   | j         | j        | j        }}}	 dV  dS # t          t          f$ rA}t          j        | j                   rt          |||          |t          ||          |d}~wt          $ r}t          ||          |d}~ww xY w)z8Same as above, for routines relying on reading /proc fs.N)r   r  r  r  FileNotFoundErrorrq   r  r   r   r  r   )instr   rE   r   r   s        r{   wrap_exceptions_procfsr*  V  s       h
DJtC/ 12 4 4 4 tx(( 	4T400c9T**3 / / /3%%3./s     B<A,,B9B

Bc                      e Zd ZdZg dZd Zd Zeed                         Z	d Z
d Zed             Zed	             Zed
             Zed             Zed             Zed             Zed             Zed             Zed             Zered             Zed             ZeZed*d            Zed             Zed             Zed             Zed+d            Zed,d            Zed             Zed             Z ed             Z!ed             Z"ed              Z# e$d!d"          Z% e$d!d#          Z&ed$             Z'ed%             Z(er/ed&             Z)ed'             Z*ed(             Z+ed,d)            Z,dS dS )-r  z1Wrapper class around underlying C implementation.)_cacher  r  r   c                 0    || _         d | _        d | _        d S N)r   r  r  )r  r   s     r{   __init__zProcess.__init__m  s    



r   c                 8    t          j        | j                   dS )z+Raise NSP if the process disappeared on us.N)rq   	proc_namer   r  s    r{   _assert_alivezProcess._assert_aliver  s     	tx     r   c                     t          j        | j                  }t          |          t          t                    k    sJ |S )z;Retrieves multiple process info in one shot as a raw tuple.)rq   proc_oneshot_infor   r   kinfo_proc_mapr  r   s     r{   oneshotzProcess.oneshotx  s:     $TX..3xx3~......
r   c                 :    | j                             |            d S r.  )r8  cache_activater2  s    r{   oneshot_enterzProcess.oneshot_enter  s    ##D)))))r   c                 :    | j                             |            d S r.  )r8  cache_deactivater2  s    r{   oneshot_exitzProcess.oneshot_exit  s    %%d+++++r   c                     |                                  t          d                  }||nt          j        | j                  S )NrE   )r8  r6  rq   r1  r   )r  rE   s     r{   rE   zProcess.name  s4    ||~~nV45'ttT^DH-E-EEr   c                    t           r&| j        dk    rdS t          j        | j                  S t          rS| j        dk    rdS t          |           5  t          j        d| j         d          cd d d            S # 1 swxY w Y   d S dd l}| 	                                }|r|
                    |d                   pdS dS )Nr    z/proc/z/exe)r
   r   rq   proc_exer   r*  osreadlinkshutilcmdlinewhich)r  rE  rF  s      r{   exezProcess.exe  s    	x1}}r=*** 	x1}}r'-- < <{#:DH#:#:#:;;< < < < < < < < < < < < < < < < < < MMMllnnG ||GAJ//525rs   A;;A?A?c                    t           r| j        dk    rg S t          r	 t          j        | j                  S # t
          $ r}|j        t          j        k    r| j        | j        | j	        }}}t          j
        | j                  rt          |||          |t          | j                  st          |||          |t          d|d           g cY d }~S  d }~ww xY wt          j        | j                  S )Nr   z	ignoring z and returning an empty list)r   r   r   rq   proc_cmdliner   r   EINVALr  r  r  r   r  r   r   )r  r   r   rE   r   s        r{   rF  zProcess.cmdline  s    	/tx1}}I 	/
(222   9,,&*h
DJtC*4844 F+Ct<<#E%dh// F+Ct<<#E IcIIIJJJIIIIII $TX...s"   6 
C BCCCCc                 4    t          j        | j                  S r.  )rq   proc_environr   r2  s    r{   environzProcess.environ  s     ***r   c                     |                                  t          d                  }t          j                    }	 ||         S # t          $ r Y d S w xY w)Nr%   )r8  r6  r   get_terminal_mapKeyError)r  tty_nrtmaps      r{   terminalzProcess.terminal  sX    w 78(**	< 	 	 	44	s   A 
AAc                 d    |                                  t          d                  | _        | j        S )Nr   )r8  r6  r  r2  s    r{   r   zProcess.ppid  s#    \\^^N6$:;
zr   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                            S )Nr   r   r   )r8  r   puidsr6  r  rawtuples     r{   uidszProcess.uids  J    <<>>}^J/0^O45^K01
 
 	
r   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                            S )Nr   r!   r#   )r8  r   pgidsr6  rX  s     r{   gidszProcess.gids  r[  r   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                  |t          d                            S )Nr1   r3   r5   r7   )r8  r   r^   r6  rX  s     r{   r   zProcess.cpu_times  sX    <<>> ^K01^J/0^N34^M23	
 
 	
r   c                 L    |                                  t          d                  S )NrC   )r8  r6  r2  s    r{   cpu_numzProcess.cpu_num  s    <<>>.":;;r   c           	          |                                  }t          |t          d                  |t          d                  |t          d                  |t          d                  |t          d                            S )Nr9   r;   r=   r?   rA   )r8  rZ   r6  rX  s     r{   memory_infozProcess.memory_info  sb    <<>>^E*+^E*+^I./^I./^J/0
 
 	
r   Fc                     |                                  t          d                  }t          r|st          |          }|S )Nr'   )r8  r6  r   r  )r  	monotonicr  s      r{   r'   zProcess.create_time  s:    ~m<= 	3) 	3+E22Er   c                     t           rt          j        | j                  S t	          |                                           S r.  )HAS_PROC_NUM_THREADSrq   r   r   r   threadsr2  s    r{   num_threadszProcess.num_threads	  s3     	'(222t||~~&&&r   c                     |                                  }t          j        |t          d                  |t          d                            S )Nr)   r+   )r8  r   pctxswr6  rX  s     r{   num_ctx_switcheszProcess.num_ctx_switches  s?    <<>>~^$678^$89:
 
 	
r   c                     t          j        | j                  }g }|D ]1\  }}}t          j        |||          }|                    |           2t          r|                                  |S r.  )rq   proc_threadsr   r   pthreadr   r   r3  )r  r   r   	thread_idutimestimer   s          r{   rh  zProcess.threads  sx     #DH--'. 	# 	##Iue_Yu==FNN6"""" 	!   r   inetc           
         t           |         \  }}g }t          rt          j        | j        |          }n>t
          rt          j        | j        ||          }nt          j        | j        ||          }|D ]R}|d d         \  }}}	}
}}t          r	||vs|	|vr#t          |||	|
||t                    }|
                    |           S|                                  |S )Nr"   )r   r   rq   r   r   r   proc_net_connectionsr
   r   r   r   r3  )r  r   r   r   r   r   r   r   r   r   r   r   r   r   s                 r{   r   zProcess.net_connections%  s    #D/% 	K*48T::GG 	K*48XuEEGG/(EJJG 	 	D26rr(/BT5% x''T->->CueV\ B JJrNNNN
r   Nc                 B    t          j        | j        || j                  S r.  )r   wait_pidr   r  )r  timeouts     r{   waitzProcess.wait>  s     7DJ???r   c                 4    t          j        | j                  S r.  )rq   proc_priority_getr   r2  s    r{   nice_getzProcess.nice_getB  s    %dh///r   c                 6    t          j        | j        |          S r.  )rq   proc_priority_setr   )r  values     r{   nice_setzProcess.nice_setF  s    %dh666r   c                     |                                  t          d                  }t                              |d          S )Nr   ?)r8  r6  PROC_STATUSESget)r  codes     r{   r   zProcess.statusJ  s/    ||~~nX67  s+++r   c                     |                                  }t          j        |t          d                  |t          d                  dd          S )Nr-   r/   r   )r8  r   pior6  rX  s     r{   io_counterszProcess.io_countersP  sD    <<>>{^O45^$456	
 
 	
r   c                 \    t           r| j        dk    rdS t          j        | j                  S )z)Return process current working directory.r   rA  )r   r   rq   proc_cwdr2  s    r{   cwdzProcess.cwdZ  s-    
  	tx1}}2}TX&&&r   mmaprb   rd   c                 L    t          j        | j                  }d |D             S )z8Return files opened by process as a list of namedtuples.c                 >    g | ]\  }}t          j        ||          S r   )r   	popenfile).0pathr   s      r{   
<listcomp>z&Process.open_files.<locals>.<listcomp>n  s)    DDDb!$++DDDr   )rq   proc_open_filesr   )r  r   s     r{   
open_fileszProcess.open_filesj  s*     &tx00DDGDDDDr   c                 n    t          j        | j                  }t          r|                                  |S )z=Return the number of file descriptors opened by this process.)rq   proc_num_fdsr   r   r3  r7  s     r{   num_fdszProcess.num_fdsp  s5     )) 	!   
r   c                 4    t          j        | j                  S r.  )rq   proc_cpu_affinity_getr   r2  s    r{   cpu_affinity_getzProcess.cpu_affinity_get|  s    -dh777r   c                    t          t          t          t                                                    }|D ]}||vrd|d| d}t	          |          	 t          j        | j        |           d S # t          $ rG}|j	        t          j
        t          j        hv r"|D ]}||vrd|d| d}t	          |          |  d }~ww xY w)Nzinvalid CPU z (choose between ))r   r   r   r   r   rq   proc_cpu_affinity_setr   r   r   rK  EDEADLK)r  cpusallcpusr   msgr   s         r{   cpu_affinity_setzProcess.cpu_affinity_set  s   
 %MOO 4 45566G * *g%%KKKKKKC$S//) &*48T:::::   
 9u} ===# ; ;g--!/s !/ !/$+!/ !/ !/   #-S//s: . s   A4 4
C>AC  Cc                 4    t          j        | j                  S r.  )rq   proc_memory_mapsr   r2  s    r{   memory_mapszProcess.memory_maps  s    (222r   c                     |t          j        | j        |          S t          |          dk    rd|}t	          |          |\  }}t          j        | j        |||          S )Nr   z2second argument must be a (soft, hard) tuple, got )rq   proc_getrlimitr   r   r   proc_setrlimit)r  resourcelimitsr  softhards         r{   rlimitzProcess.rlimit  st    ~*48X>>>v;;!##'"' '  %S//)#
d*48XtTJJJr   F)rs  r.  )-__name__
__module____qualname____doc__	__slots__r/  r3  r&  r   r8  r;  r>  rE   rH  rF  rN  rT  r   rZ  r^  r   r
   ra  rc  memory_full_infor'   ri  rl  rh  r   ry  r|  r  r   r  r  r   nt_mmap_groupednt_mmap_extr  r  r  r  r  r  r   r   r{   r  r  h  s       ;;333I  
! ! !    _* * *, , , F F _F   _2 / / _/4 + + _+   _   _ 
 
 _
 
 
 _
 
 
 _
  <		< 	< 
	< 
 
 _
 #   _ ' ' _' 
 
 _
 	 	 _	    _0 @ @ @ _@ 0 0 _0 7 7 _7 , , _,
 
 
 _
 ' ' _' !j< O *H K E E _E
   _  1K		8 	8 
	8 
	 	 
	4 
	3 	3 
	3 
	K 	K 	K 
	K 	K 	KM1K 1Kr   r  r   r  )tr  
contextlibr   r$  rC  collectionsr   r   	xml.etreer   rA  r   r   r	   rq   r
   r   r   r   r   r   r   r   r   r   r   r   __extra__all__SIDLSTATUS_IDLESRUNSTATUS_RUNNINGSSLEEPSTATUS_SLEEPINGSSTOPSTATUS_STOPPEDSZOMBSTATUS_ZOMBIESWAITSTATUS_WAITINGSLOCKSTATUS_LOCKEDr  SDEADSTATUS_WAKINGSONPROCTCPS_ESTABLISHEDCONN_ESTABLISHEDTCPS_SYN_SENTCONN_SYN_SENTTCPS_SYN_RECEIVEDCONN_SYN_RECVTCPS_FIN_WAIT_1CONN_FIN_WAIT1TCPS_FIN_WAIT_2CONN_FIN_WAIT2TCPS_TIME_WAITCONN_TIME_WAITTCPS_CLOSED
CONN_CLOSETCPS_CLOSE_WAITCONN_CLOSE_WAITTCPS_LAST_ACKCONN_LAST_ACKTCPS_LISTENCONN_LISTENTCPS_CLOSINGCONN_CLOSINGPSUTIL_CONN_NONE	CONN_NONEr   getpagesizePAGESIZEAF_LINKr   rg  dictr6  rG   rS   rZ   pfullmemr^   ra   rc   re   r|   r   r   r   r   r   r   r   r   
disk_usagedisk_io_countersr   net_if_addrsr   r   r   r   r   r   	Exceptionr   r  r  r  r  r  r&  contextmanagerr*  r  r   r   r{   <module>r     sR  
 < ;          				 # # # # # # " " " " " " ! ! ! ! ! !             ! ! ! ! ! !                   ! ! ! ! ! ! " " " " " " " " " " " "       # # # # # #             + + + + + + " " " " " "  (	7&	7)W,
G*
G)
G*
G)MM  	7&W,
G* 	
G)
G) 		7(g,'MM*  	7&W,
G*
G)	7(g,M 	73-G1'0'0/g('1-g)w+7, 4
,wt%788    	
1 Q !	
 a Q ! a !  R r " 2 b  R!" #$ %& 	'( 	)* B+, B-. R/0 212 
3H 	
 L L L	M 	M J:::< <	 z&AAABBJ{MMMO O	 
AC C JIK K	  Cj %2 %2 %2 3 3GG
 j %B %B %B C CG, , ,^@ @ @4 4 4  $ $ $
   f  7 7 7 7  6A A A@  2   0  22 2 2     
(  &   0  2  "B B B   0  
 
 "   6s66777
  
 
 
$ 	  	   
 %     %! ! ! ! $J  4 / / /"CK CK CK CK CK CK CK CK CK CKs   
M M;!M66M;