
    i                     N   d dl Z d dlZd dlZd dlZd dlmZmZ dZ ej                         Zed    dk(  rDed   j                  d      D  cg c]
  }  e
|        c} dd gk\  redz  Z e j                  d	      Z e j                  d
      Zd Zd Zd Zd Zd Zd Zd ZeZyc c} w )    N)errorxauth)NtcpunixDarwin   .	   )darwinzF^/private/tmp/[-:a-zA-Z0-9._]*:(?P<dno>[0-9]+)(\.(?P<screen>[0-9]+))?$zZ^((?P<proto>tcp|unix)/)?(?P<host>[-:a-zA-Z0-9._]*):(?P<dno>[0-9]+)(\.(?P<screen>[0-9]+))?$c           
         |  t         j                  j                  dd      } t        i fg}dt        v r|j                  dt        ddif       |D ]]  \  }} |j                  |       }|dD cg c]1  }|j                         j                  ||j                  |            3 c}\  }}}}	 n t        j                  |       |dk(  r|st        j                  |       t        |      }|	rt        |	      }	nd}	| ||||	fS c c}w )NDISPLAY r   r   protocol)protohostdnoscreenr   )osenvironget
DISPLAY_RESUPPORTED_PROTOCOLSinsertDARWIN_DISPLAY_REmatch	groupdictr   DisplayNameErrorint)
displayre_listredefaultsmfieldr   r   r   r   s
             c/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/Xlib/support/unix_connect.pyget_displayr&   (   s   **..B/B G&&q,z8.DEF 	.HBHHW= @+ !!%e)<=+'HdC 	. $$W--5$$W--
c(CVHdC//%+s   /6Dc                     t        j                   t         j                  t         j                        }|j                  | d|z   f       |S )Nip  )socketAF_INETSOCK_STREAMconnect)r   r   ss      r%   _get_tcp_socketr-   J   s6    fnnf&8&89AIItTCZ !H    c                     t        j                   t         j                  t         j                        }|j                  |        |S N)r(   AF_UNIXr*   r+   )addressr,   s     r%   _get_unix_socketr3   P   s-    fnnf&8&89AIIgHr.   c                    |t         v sJ 	 |dk(  rt        |       }nP||dk7  r|r|dk7  rt        ||      }n5d|z  }t        j                  j                  |      sd|z   }	 t        |      }t        |       |S # t        j                  $ r |s|st        ||      }n Y 4w xY w# t        j                  $ r$}t        j                  | t        |            d }~ww xY w)Nr   r   z/tmp/.X11-unix/X%d )r   r3   r-   r   pathexistsr(   r   DisplayConnectionErrorstr_ensure_not_inheritable)dnamer   r   r   r,   r2   vals          r%   
get_socketr=   V   s    ****<x 'A (f"4$46>c*A +S0G77>>'*.$W- AH << 'c2A  << <**5#c(;;<s6   AB% "A: :%B"B% !B""B% %C8CCc                     t        | d      r| j                  d       y t        j                         dk(  ry dd l}|j	                  | j                         |j                  |j                         y )Nset_inheritableFWindowsr   )hasattrr?   platformsystemfcntlfilenoF_SETFD
FD_CLOEXEC)sockrD   s     r%   r:   r:   x   sY     t&'U#
 I% 		KKu}}e.>.>?r.   c                    |t         v sJ |dk(  r%t        j                  }t        j                         }n||dk(  rEt        j
                  }| j                         d   j                  d      }t        d |D              }n2t        j                  }t        j                         j                         }	 t        j                         }	 	 |j                  |||      S # t        j                  $ r Y yw xY w# t        j                  $ r Y nw xY w|t        j
                  k(  r8|dk(  r3t        j                  }t        j                         j                         }ny)Nr   r   r   r	   c              3   2   K   | ]  }t        |        y wr0   )r   ).0xs     r%   	<genexpr>znew_get_auth.<locals>.<genexpr>   s     0AQ0s   )r.   r.   s     )r   r   FamilyLocalr(   gethostnameFamilyInternetgetpeernamesplit	bytearrayencode
Xauthorityr   
XauthErrorget_best_authXNoAuthError)	rH   r;   r   r   r   familyaddroctetsaus	            r%   new_get_authr]      s>   ****8""!!#	U	%% !!#A&,,S1000""!!#**, 	##FD#66   !! 		 U)))d6I.I&&F%%'..0D s$   2C C4 C10C14D
	D
c           
         dx}}	 t        j                  d|z        j                         }|j                  d      }t	        |      dk\  rj|d   j                  d d      }t	        |      dk(  rG|d   }|d   }	d}
t        dt	        |	      d      D ]   }|
t        t        |	||dz    d            z   }
" |
}||fS # t         j                  $ r Y ||fS w xY w)	Nr.   zxauth list %s 2>/dev/null
   r   r         )	r   popenreadrR   lenrangechrr   r   )rH   r;   r   r   	auth_name	auth_datadatalinespartshexauthauthis               r%   old_get_authrp      s    I	 xx3e;<AAC 

4 u:?!HNN4+E5zQ!!H	( q#g,2 ?A#c'!AaC."&=">>D? !	 i 88 is   B/B9 9CC)r!   r   rB   r(   Xlibr   r   r   unamerR   r   compiler   r   r&   r-   r3   r=   r:   r]   rp   get_auth)rL   s   0r%   <module>ru      s   , 
 	    ,  		!Has0CD1ADAN;&"

#lmRZZuv
0DD@4%P > q  Es   
B"