Ë
    ojZ  ã                   ó<   — d Z ddlmZ ddlmZ ddlmZ dedefd„Zy	)
z
Logging utilities.
é    )ÚListé   )ÚLogTrace)ÚLoggerÚtraceÚreturnc                 ó„  — dt         dt        fd„}g }g }| D ]—  \  }}|r|d   |urQ||v r |d   |urF|j                  «        |d   |urŒn-|s|j                   ||«      › d�«       |j                  |«       |j                  dt	        |«      z  «       |j                  d ||«      › d�«       Œ™ dj                  |«      S )	ay  
    Format a trace (that is, the contents of the C{log_trace} key of a log
    event) as a visual indication of the message's propagation through various
    observers.

    @param trace: the contents of the C{log_trace} key from an event.

    @return: A multi-line string with indentation and arrows indicating the
        flow of the message through various observers.
    Úobjr   c                 óD   — t        | d«      r| › d| j                  › d�S | › S )NÚnamez (ú))Úhasattrr   )r
   s    ú6/usr/lib/python3/dist-packages/twisted/logger/_util.pyÚformatWithNamez#formatTrace.<locals>.formatWithName   s*   € Ü�3˜ÔØ�U˜"˜SŸX™X˜J aÐ(Ð(à�UˆOó    éÿÿÿÿú
z  z-> Ú )ÚobjectÚstrÚpopÚappendÚlenÚjoin)r   r   ÚresultÚlineageÚparentÚchilds         r   ÚformatTracer      s×   € ðœFð ¤só ð €FØ€Gàò 7‰ˆ�Ù˜' "™+¨VÑ3Ø˜Ñ Ø˜b‘k¨Ñ/Ø—K‘K”Mð ˜b‘k¨Ó/ñ Ø—M‘M¡^°FÓ%;Ð$<¸BÐ"?Ô@à—‘˜vÔ&à�‰�dœS ›\Ñ)Ô*Ø�‰˜™N¨5Ó1Ð2°"Ð5Õ6ð7ð �7‰7�6‹?Ðr   N)	Ú__doc__Útypingr   Ú_interfacesr   Ú_loggerr   r   r   © r   r   ú<module>r%      s(   ðñ
õ å !Ý ð$�xð $ Cô $r   