JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr 0iadZddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddl m Zdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZgdZej8Zej<Zej>dkDZ dZ!dZ"ejFe jHejJe jLejNe jPejRe jTejVe jXejZe jLej\e j^iZ0ejbe jdejfe jhejje jlejne jpejre jtejve jxejze j|ej~e jeje jeje jeje jeje jeje!eje"iZKeLdddddddddd d!d"# ZMed$gd%ZNed&gd'ZOed(gd)ZPed*d+d,gZQeQZRed-gd.ZSed/d0d1jeSjzZVd2ZWd3ZXd4ZYd5ZZd6Z[d7Z\d8Z]ejZ^e jZ_dCd9Z`ejZaejZbdDd:Zcd;Zdd<Zed=Zfd>Zgd?Zhd@ZiGdAdBZjy)Ez'Sun OS Solaris platform implementation.N) namedtuple)AF_INET)_common)_psposix) _psutil_sunos)AF_INET6)ENCODING) AccessDenied) NoSuchProcess) ZombieProcess)debug)get_procfs_path) isfile_strict)memoize_when_activated)sockfam_to_enum)socktype_to_enum) usage_percent) CONN_IDLE CONN_BOUND PROCFS_PATHlIDLEBOUND ) ppidrssvms create_timenice num_threadsstatusttynruideuidgidegid scputimes)usersystemidleiowait pcputimes)r1r2 children_userchildren_systemsvmem)total availablepercentusedfreepmemr%r& pmmap_grouped)pathr% anonymouslocked pmmap_extz addr perms  ctjdtz}tjdtzx}}||z }t||d}t |||||S)zReport virtual memory metrics. SC_PHYS_PAGESSC_AVPHYS_PAGESrround_)ossysconf PAGE_SIZErr8)r9r=availr<r;s @/opt/hc_python/lib64/python3.12/site-packages/psutil/_pssunos.pyvirtual_memoryrOysZ JJ ') 3E::/09<> rPcg}tj}d}|D]>}|\}}}}}} |s||vrd}tj||||| } |j | @|S)z:Return currently connected users as a list of namedtuples.)z:0.0z:0 localhost)rWusersrsuserr) rrrrr1ttyhostnametstamp user_processrrs rNrr5sqGjjlGI9=6c8V\3  y "H ]]4h <r NrPctjt}tj|Dcgc]}|j st | c}Scc}w)z7Returns a list of PIDs currently running on the system.)rencoder rJlistdirisdigitre)r@rws rNpidsrMsD   # #H -DJJt, <,q CF, << .wrapper]s((DJJ 4T t-d-f- -!#56 :c?#C.C7T40c 9 3sD)s 2 ax;&sD1s:   s- 3B2&A(( B24 B B2 B--B2) functoolswraps)rrs` rNwrap_exceptionsrXs' __S( NrPc0eZdZdZgdZdZdZdZdZe e dZ e e dZ e e d Z e d Ze d Ze d Ze d Ze dZe dZe dZe dZe dZe dZe dZe dZe dZe dZe dZe dZeZe dZe dZ e dZ!dZ"e d'dZ#e$dd Z%e$dd!Z&e d"Z'e d#Z(e d$Z)e d(d&Z*y%))Processz1Wrapper class around underlying C implementation.)_cacherr _procfs_pathrcL||_d|_d|_t|_yN)rrrrr)rrs rN__init__zProcess.__init__zs"  +-rPc`tj|jd|jy)z+Raise NSP if the process disappeared on us./N)rJstatrrrs rN _assert_alivezProcess._assert_alives& 4$$%Qtxxj12rPc|jj||jj||jj|yr)_proc_name_and_argscache_activate_proc_basic_info _proc_credrs rN oneshot_enterzProcess.oneshot_enters<   //5 ,,T2 &&t,rPc|jj||jj||jj|yr)rcache_deactivaterrrs rN oneshot_exitzProcess.oneshot_exits<   11$7 ..t4 ((.rPcVtj|j|jSr)rWproc_name_and_argsrrrs rNrzProcess._proc_name_and_argss!&&txx1B1BCCrPcN|jdk(rNtjj|jd|jdst |jt j|j|j}t|ttk(sJ|S)Nrrz/psinfo) rrJr@existsrr rWproc_basic_infolen proc_info_map)rrvs rNrzProcess._proc_basic_infos 88q=  !488*G 4" txx( (""488T->->?3x3}---- rPcVtj|j|jSr)rW proc_credrrrs rNrzProcess._proc_creds~~dhh(9(9::rPc(|jdSrrrs rNrz Process.names'')!,,rPc tj|jd|jdS#t$rYnwxYw|j y)Nrz /path/a.outr)rJreadlinkrrrcmdliners rNexez Process.exesN ;;$"3"3!4AdhhZ{KL L    s .1 ==c(|jdS)Nrrrs rNrzProcess.cmdlines'')!,,rPcVtj|j|jSr)rW proc_environrrrs rNr[zProcess.environ  4+<+<==rPc6|jtdS)Nr'rrrs rNr'zProcess.create_time$$&}]'CDDrPc6|jtdS)Nr)rrs rNr)zProcess.num_threadsr rPc6|jtdS)Nr(rrs rNnice_getzProcess.nice_gets $$&}V'<==rPc|jdvr t|j|jtj|j|S)N>rr)rr rrWproc_priority_set)rvalues rNnice_setzProcess.nice_sets< 88v  txx4 4%%dhh66rPcX|jtd|_|jS)Nr$)rrrrs rNr$z Process.ppids&**,]6-BC zzrPc |j\}}}}}}t j |||S#t$r9|jtd}|jtd}d}YXwxYw)Nr,r-rr rrrpuids)rreal effectivesavedrjs rNuidsz Process.uidss{ .2oo.? +D)UAq! }}T9e44  ((*=+?@D--/ f0EFIE 0?A21A2c |j\}}}}}}t j |||S#t$r9|jtd}|jtd}d}YXwxYw)Nr.r/r)rrjrrrs rNgidsz Process.gidss{ .2oo.? +Aq!T9e }}T9e44  ((*=+?@D--/ f0EFIE rc tj|j|j}tj|S#t$r1}|j t j k(r tsd}nYd}~Gd}~wwxYw)N)rrr) rWproc_cpu_timesrrrerrno EOVERFLOW IS_64_BITrr5)rtimesrs rNrxzProcess.cpu_timessi ''$2C2CDE  %(( yyEOO+I- s*> A8'A33A8cVtj|j|jSr)rW proc_cpu_numrrrs rNcpu_numzProcess.cpu_numrrPc4|j}d}t|jtd}|tj k7r0dD]+} t j|d|jd|cS|r|jyy#t$rd}YOwxYw)NFr+)rrrr/path/T) rrrrrWPRNODEVrJrrrr)r procfs_path hit_enoentrrws rNterminalzProcess.terminals''  d335mG6LMN $,, #;;+azs'KLL$      )!%Js &B  BBc|j} tj|d|jdS#t$r'tj |d|jYywxYw)Nrz /path/cwdr)rrJrrrr)rr*s rNcwdz Process.cwdsa ''  ;;+azCD D   GG{m1TXXJ/ 0 s$3-A#"A#cv|j}|tddz}|tddz}t||S)Nr%ir&)rrr>)rrvr%r&s rN memory_infozProcess.memory_info"sD##%-&'$.-&'$.C~rPcb|jtd}tj|dS)Nr*?)rr PROC_STATUSESget)rcodes rNr*zProcess.status+s-$$&}X'>?  s++rPc|j}g}tj|d|jd}d}|D]Z}t |} t j |j||\}}tj|||}|j|\|r|j|S#t$rR} | jtjk(r tsYd} ~ | jtjk(rd}Yd} ~ Ƃd} ~ wwxYw)Nrz/lwpFT)rrJrrrerWquery_process_threadrpthreadrrrr r!ENOENTr) rr*rvtidsr+tidutimestimerrs rNthreadszProcess.threads1s'' zz[M488*D9: Cc(C #88HHc;  u&__S%7 2/0      ) 99/ 99 ,!%J s$$B)) D2#C?C?>C??Dc g}d}|j}|d|jd}tj|d|jdD]}tjj ||}tjj |sC tj|}t|se|jtj|t||r|j|S#t$rd}YwxYw)NFrz/path/fdT)rrrJrr@joinislinkrrrr popenfilererr)rrr+r*pathdirrr@files rN open_fileszProcess.open_filesSs ''  M488*E2** }AdhhZs;C?c#jKdt|g}tj|tjtj}|j \}}d||fD\}}|j dk7rvd|j vr t|j|jd|j vr t|j|j|d|}t||jdd d }t|D]\}} | j} | jd s(| jd d d } ||d z j!} | d k(rt"j$} n| dk(rt"j&} nd} dt"j(| | dt*j,fy w)zz,Process._get_unix_sockets..qs( 3CaAHHSZZ(( )3Cs35rzpermission deniedzno such processz command error rVrNzsockname: AF_UNIXrD SOCK_STREAM SOCK_DGRAMrr)strrYrZr\r]ralowerr rrr rbrd enumeratelstrip startswithrcsocketrMrNAF_UNIXr CONN_NONE) rrcmdrirTrIrkrlirmr@types rN_get_unix_socketszProcess._get_unix_socketshsS"        4:F3C  <<1 "flln4"488TZZ88 FLLN2#DHHdjj99G+F84Cs# # T"12& 'GAt;;=D23zz#q)!,QU|))+=(!--D\)!,,DD6>>4r7;L;LMM(s D.F31BF3c6t||j}|s.tj|jd|j|dvrH|j |j |jDcgc]}tj|c}|Scc}w)N)rr>runix) rrrJrrextendrZrr)rrrvconns rNrzProcess.net_connectionssd2  GGt(()488*5 6 ? " JJ 22488<.toaddrsB>>E 12$$S)3s8AB<+=+=c+B rPF[rr(T)rrWproc_memory_mapsrrrr r!rSrJrr9rr)rrgr*rrrr+rraddrsizepermrr%anonrBs rN memory_mapszProcess.memory_mapssC  ''  ++DHHkBG D<@ 9D(D$T6$)D??3' ;;+azv'NOD NND$c4@ A%&     E yyEOO+I  & yyELL0#.azvF%) # s; B3'C/3 C,<$C' C,&C''C,/ D785D22D7crttj|jd|jdS)Nrr@)rrJrrrrs rNnum_fdszProcess.num_fdss.2::!2!2 31TXXJcBCDDrPcvtjtj|j|j Sr)rpctxswrWproc_num_ctx_switchesrrrs rNnum_ctx_switcheszProcess.num_ctx_switchess-~~  ' '$2C2C D  rPNcXtj|j||jSr)rwait_pidrr)rtimeouts rNwaitz Process.waits  7DJJ??rP)inetr)+__name__ __module__ __qualname____doc__ __slots__rrrrrrrrrrrrr[r'r)r rr$rrrxr%r,r.r0memory_full_infor*r>rFrZrrnt_mmap_grouped nt_mmap_extrmrorsrwr}rPrNrrus;CI. 3 - / DD;;--  -->>EEEE>> 775555))">> ! !   #,, B( ND&!)?@OV%FGK,,\EE  @@rPr)F)r)kr|rrrJrTrYr_ collectionsrrrrrrrWr r r r r rrrrrrr__extra__all__ getpagesizerLAF_LINKmaxsizer!rrSSLEEPSTATUS_SLEEPINGSRUNSTATUS_RUNNINGSZOMB STATUS_ZOMBIESSTOPSTATUS_STOPPEDSIDL STATUS_IDLESONPROCSWAITSTATUS_WAITINGr3TCPS_ESTABLISHEDCONN_ESTABLISHED TCPS_SYN_SENT CONN_SYN_SENT TCPS_SYN_RCVD CONN_SYN_RECVTCPS_FIN_WAIT_1CONN_FIN_WAIT1TCPS_FIN_WAIT_2CONN_FIN_WAIT2TCPS_TIME_WAITCONN_TIME_WAIT TCPS_CLOSED CONN_CLOSETCPS_CLOSE_WAITCONN_CLOSE_WAIT TCPS_LAST_ACK CONN_LAST_ACK TCPS_LISTEN CONN_LISTEN TCPS_CLOSING CONN_CLOSINGPSUTIL_CONN_NONErV TCPS_IDLE TCPS_BOUNDrdictrr0r5r8r>pfullmemr?rA_fieldsrCrOrprxrrr~rrdisk_io_countersrrnet_io_counters net_if_addrsrrrrrrrrr}rPrNrs .   "#!""$"+$%"; D    ,, KK%     KK((IIw%%JJ%%JJ&&IIw""LL'((JJ&&  733----'00'00//g(('11--g))w++7,,NNIOOZ "         , {$H I G   7MN&5%.) ;  -*?*?!@@  4&\3 ( " ((  >&&  >  0= $ :g@g@rP