o
    Žõ±jD  ã                   @   s2   d e fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Údnc                 C   s   d  t|  d¡ƒ¡}| ¡ S )Nú,)ÚjoinÚreversedÚsplitÚupper)r   Úrdns© r   ú•/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/msldap/external/bloodhoundpy/utils.pyÚreverse_dn_components   s   r
   c                 C   st   g }d}d}| D ](}|r||7 }d}q|dkrd}||7 }q|dkr,|r+|  |¡ d}q||7 }q|r8|  |¡ |S )NFÚ ú\Tr   )Úappend)r   ÚpartsÚescÚpartÚcharr   r   r	   Ú
explode_dn   s&   

€

r   c                 c   sH   � | sd S |   d¡dd … D ]}| d¡  d¡\}}|t|ƒfV  qd S )Nz[LDAP://é   z][ú;)r   ÚrstripÚint)ÚlinkstrÚlinksr   Úoptionsr   r   r	   Úparse_gplink_string!   s   €þr   c                 C   s@   d|   ¡ v rdS d|   ¡ v r|   ¡  d¡s|   ¡  d¡rdS dS )NzCN=DOMAINUPDATES,CN=SYSTEM,DC=TzCN=POLICIES,CN=SYSTEM,DC=zCN=USERz
CN=MACHINEF)r   Ú
startswith©Úcontainerdnr   r   r	   Úis_filtered_container+   s
   (r   c                 C   s$   d|   ¡ v rdS d|   ¡ v rdS dS )NzCN=PROGRAM DATA,DC=TzCN=SYSTEM,DC=F)r   r   r   r   r	   Úis_filtered_container_child2   s
   r   N)Ústrr
   r   r   r   r   r   r   r   r	   Ú<module>   s
   
