Ë
    	V.jg  ã                   óÎ   — d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZmZ dZ ed«      j                   Z G d„ de«      Z ee«      Zdd	„Zdd
„Zdd„Zdd„Zd„ Zdd„Zd„ Zy)zZ
    billiard._win
    ~~~~~~~~~~~~~

    Windows utilities to terminate process groups.

é    N)	ÚbyrefÚsizeofÚwindllÚ	StructureÚWinErrorÚPOINTERÚc_size_tÚc_charÚc_void_p)ÚDWORDÚLONGé   éÿÿÿÿc                   óR   — e Zd Zdefdefdefdefdefdefdefdefd	efd
edz  fg
Zy)ÚPROCESSENTRY32ÚdwSizeÚcntUsageÚth32ProcessIDÚth32DefaultHeapIDÚth32ModuleIDÚ
cntThreadsÚth32ParentProcessIDÚpcPriClassBaseÚdwFlagsÚ	szExeFilei  N)Ú__name__Ú
__module__Ú__qualname__r   r	   r   r
   Ú_fields_© ó    úOC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\billiard/_win.pyr   r      s]   „ à	�5ÐØ	�UÐØ	˜%Ð Ø	˜hÐ'Ø	˜ÐØ	�uÐØ	 Ð&Ø	˜4Ð Ø	�EÐØ	�f˜s‘lÐ#ð�Hr!   r   c                 ól   — t         j                  j                  | |«      }|t        k(  r
t	        «       ‚|S ©N)r   Úkernel32ÚCreateToolhelp32SnapshotÚINVALID_HANDLE_VALUEr   )r   r   Ú	hSnapshots      r"   r&   r&   +   s3   € Ü—‘×8Ñ8¸Ø9FóH€IàÔ(Ò(Ü‹jÐØÐr!   c                 óL   — t        t        j                  j                  | |«      S r$   )Ú_Process32nr   r%   ÚProcess32First©r(   Úpes     r"   r+   r+   3   s   € Ü”v—‘×5Ñ5°yÀ"ÓEÐEr!   c                 óL   — t        t        j                  j                  | |«      S r$   )r*   r   r%   ÚProcess32Nextr,   s     r"   r/   r/   7   s   € Ü”v—‘×4Ñ4°iÀÓDÐDr!   c                 óÎ   — |€
t        «       }t        t         «      |_         | |t        |«      «      }|s0t        j
                  j                  «       t        k(  ry t        «       ‚|S r$   )	r   r   r   r   r   r%   ÚGetLastErrorÚERROR_NO_MORE_FILESr   )Úfunr(   r-   Úsuccesss       r"   r*   r*   ;   sT   € Ø	€zÜÓˆÜ”~Ó&€B„IÙ�)œU 2›YÓ'€GÙÜ�?‰?×'Ñ'Ó)Ô-@Ò@ØÜ‹jÐØ€Ir!   c                  ó    — t        «       } i }t        | «      }|r4|j                  r|j                  ||j                  <   t	        | |«      }|rŒ4|S )z}Return a dictionary with all processes pids as keys and their
       parents as value. Ignore processes with no parents.
    )r&   r+   r   r   r/   )ÚhÚparentsr-   s      r"   Úget_all_processes_pidsr8   G   sU   € ô 	!Ó"€AØ€GÜ	˜Ó	€BÙ
Ø×!Ò!Ø(*×(>Ñ(>ˆG�B×$Ñ$Ñ%Ü˜1˜bÓ!ˆò ð
 €Nr!   c                 ó  — t        «       }t        |j                  «       «      }| h}	 |j                  «       }|D ]  }||   |v sŒ|j	                  |«       Œ ||k(  rn|j                  «       }ŒG|s|j                  | «       t        |«      S )z1Return a list with all the pids of a process tree)r8   ÚlistÚkeysÚcopyÚaddÚremove)ÚpidÚinclude_parentr7   Úall_pidsÚpidsÚpids_newÚ_pids          r"   Úget_processtree_pidsrE   V   s‰   € ä$Ó&€GÜ�G—L‘L“NÓ#€HØˆ5€DØ
Ø—9‘9“;ˆãˆDØ�t‰} Ò$Ø—‘˜TÕ"ð ð �tÒØà�}‰}‹ˆð ñ Ø�‰�CÔä�‹:Ðr!   c                 óT   — t        | «      }|D ]  }t        j                  ||«       Œ y)z&Kill a process and all its descendantsN)rE   ÚosÚkill)r?   ÚsignumÚfamily_pidsrD   s       r"   Úkill_processtreerK   m   s$   € ä& sÓ+€KãˆÜ
�‰��fÕñ r!   )é   r   r$   )T)Ú__doc__rG   Úctypesr   r   r   r   r   r   r	   r
   r   Úctypes.wintypesr   r   r2   Úvaluer'   r   ÚLPPROCESSENTRY32r&   r+   r/   r*   r8   rE   rK   r    r!   r"   Ú<module>rR      sw   ðñó 
÷÷ õ ÷
 (àÐ Ù “|×)Ñ)Ð ô�Yô ñ ˜>Ó*Ð óóFóEó	òóó.r!   