§
    XŠtjÅ-  ã                   óˆ   — d Z ddlmZ ddlmZ ddlmZ ddgZ G d„ d¦  «        Z G d	„ de¦  «        Z	 G d
„ de	¦  «        Z
dS )aÂ  
    pygments.formatters.terminal256
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Formatter for 256-color terminal output with ANSI sequences.

    RGB-to-XTERM color conversion routines adapted from xterm256-conv
    tool (http://frexx.de/xterm-256-notes/data/xterm256-conv2.tar.bz2)
    by Wolfgang Frisch.

    Formatter version 1.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú	Formatter)Úcodes)Ú
ansicolorsÚTerminal256FormatterÚTerminalTrueColorFormatterc                   ó.   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )	ÚEscapeSequenceNFc                 óL   — || _         || _        || _        || _        || _        d S ©N)ÚfgÚbgÚboldÚ	underlineÚitalic)Úselfr   r   r   r   r   s         ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pygments/formatters/terminal256.pyÚ__init__zEscapeSequence.__init__#   s)   € ØˆŒØˆŒØˆŒ	Ø"ˆŒØˆŒˆˆó    c                 óZ   — t          |¦  «        rdd                     |¦  «        z   dz   S dS )Nz[ú;ÚmÚ )ÚlenÚjoin©r   Úattrss     r   ÚescapezEscapeSequence.escape*   s/   € Ýˆu‰:Œ:ð 	3Ø˜SŸXšX e™_œ_Ñ,¨sÑ2Ð2Øˆrr   c           	      ó  — g }| j         �}| j         t          v rOt          | j                              dd¦  «                 }d|v rd| _        |                     |dd…         ¦  «         n |                     ddd	| j         z  f¦  «         | j        ��| j        t          v rat          | j                             dd¦  «                 }|                     t          t          |dd…         ¦  «        d
z   ¦  «        ¦  «         n |                     ddd	| j        z  f¦  «         | j        r|                     d¦  «         | j
        r|                     d¦  «         | j        r|                     d¦  «         |                      |¦  «        S )NÚansir   z;01mTé   é   Ú38Ú5z%ié
   Ú48Ú01Ú04Ú03)r   r   r   Úreplacer   ÚappendÚextendr   ÚstrÚintr   r   r   )r   r   Úescs      r   Úcolor_stringzEscapeSequence.color_string/   sf  € ØˆØŒ7ÐØŒw�*Ð$Ð$Ý˜DœGŸOšO¨F°2Ñ6Ô6Ô7�Ø˜S�=�=Ø $�D”Ià—’˜S  1 œXÑ&Ô&Ð&Ð&à—’˜d C¨°´©Ð8Ñ9Ô9Ð9ØŒ7ÐØŒw�*Ð$Ð$Ý˜DœGŸOšO¨F°2Ñ6Ô6Ô7�à—’�S¥ S¨¨1¨¤X¡¤¨rÑ!1Ñ2Ô2Ñ3Ô3Ð3Ð3à—’˜d C¨°´©Ð8Ñ9Ô9Ð9ØŒ9ð 	Ø�LŠL˜ÑÔÐØŒ>ð 	Ø�LŠL˜ÑÔÐØŒ;ð 	Ø�LŠL˜ÑÔÐØ�{Š{˜5Ñ!Ô!Ð!r   c           
      ó|  — g }| j         rb|                     ddt          | j         d         ¦  «        t          | j         d         ¦  «        t          | j         d         ¦  «        f¦  «         | j        rb|                     ddt          | j        d         ¦  «        t          | j        d         ¦  «        t          | j        d         ¦  «        f¦  «         | j        r|                     d¦  «         | j        r|                     d¦  «         | j        r|                     d	¦  «         |                      |¦  «        S )
Nr"   Ú2r   é   r    r%   r&   r'   r(   )	r   r+   r,   r   r   r*   r   r   r   r   s     r   Útrue_color_stringz EscapeSequence.true_color_stringI   s  € ØˆØŒ7ð 	YØ�LŠL˜$ ¥S¨¬°¬¡_¤_µc¸$¼'À!¼*±o´oÅsÈ4Ì7ÐSTÌ:ÁÄÐWÑXÔXÐXØŒ7ð 	YØ�LŠL˜$ ¥S¨¬°¬¡_¤_µc¸$¼'À!¼*±o´oÅsÈ4Ì7ÐSTÌ:ÁÄÐWÑXÔXÐXØŒ9ð 	Ø�LŠL˜ÑÔÐØŒ>ð 	Ø�LŠL˜ÑÔÐØŒ;ð 	Ø�LŠL˜ÑÔÐØ�{Š{˜5Ñ!Ô!Ð!r   c                 óô   — g }| j         �|                     d¦  «         | j        �|                     d¦  «         | j        s| j        s| j        r|                     d¦  «         |                      |¦  «        S )NÚ39Ú49Ú00)r   r*   r   r   r   r   r   r   s     r   Úreset_stringzEscapeSequence.reset_stringW   s{   € ØˆØŒ7ÐØ�LŠL˜ÑÔÐØŒ7ÐØ�LŠL˜ÑÔÐØŒ9ð 	˜œð 	¨$¬+ð 	Ø�LŠL˜ÑÔÐØ�{Š{˜5Ñ!Ô!Ð!r   )NNFFF)Ú__name__Ú
__module__Ú__qualname__r   r   r/   r3   r8   © r   r   r	   r	   "   sd   € € € € € ðð ð ð ðð ð ð
"ð "ð "ð4"ð "ð "ð"ð "ð "ð "ð "r   r	   c                   óR   — e Zd ZdZdZg d¢Zg Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ ZdS )r   aÛ  
    Format tokens with ANSI color sequences, for output in a 256-color
    terminal or console.  Like in `TerminalFormatter` color sequences
    are terminated at newlines, so that paging the output works correctly.

    The formatter takes colors from a style defined by the `style` option
    and converts them to nearest ANSI 256-color escape sequences. Bold and
    underline attributes from the style are preserved (and displayed).

    .. versionadded:: 0.9

    .. versionchanged:: 2.2
       If the used style defines foreground colors in the form ``#ansi*``, then
       `Terminal256Formatter` will map these to non extended foreground color.
       See :ref:`AnsiTerminalStyle` for more information.

    .. versionchanged:: 2.4
       The ANSI color names have been updated with names that are easier to
       understand and align with colornames of other projects and terminals.
       See :ref:`this table <new-ansi-color-names>` for more information.


    Options accepted:

    `style`
        The style to use, can be a string or a Style subclass (default:
        ``'default'``).

    `linenos`
        Set to ``True`` to have line numbers on the terminal output as well
        (default: ``False`` = no line numbers).
    ÚTerminal256)Úterminal256Ú
console256Ú256c                 ó  — t          j        | fi |¤Ž g | _        i | _        i | _        d|v| _        d|v| _        d|v| _        |                      ¦   «          |  	                    ¦   «          | 
                    dd¦  «        | _        d| _        d S )NÚnoboldÚnounderlineÚnoitalicÚlinenosFr   )r   r   Úxterm_colorsÚ
best_matchÚstyle_stringÚuseboldÚuseunderlineÚ	useitalicÚ_build_color_tableÚ_setup_stylesÚgetrF   Ú_lineno)r   Úoptionss     r   r   zTerminal256Formatter.__init__‡   s›   € ÝÔ˜4Ð+Ð+ 7Ð+Ð+Ð+àˆÔØˆŒØˆÔà wÐ.ˆŒØ)°Ð8ˆÔØ#¨7Ð2ˆŒà×ÒÑ!Ô!Ð!Ø×ÒÑÔÐà—{’{ 9¨eÑ4Ô4ˆŒØˆŒˆˆr   c                 ód  — | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d	¦  «         | j                              d
¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         | j                              d¦  «         d}t          d¦  «        D ]F}||dz  dz           }||dz  dz           }||dz           }| j                              |||f¦  «         ŒGt          d¦  «        D ]'}d|dz  z   }| j                              |||f¦  «         Œ(d S )N)r   r   r   )éÍ   r   r   )r   rS   r   )rS   rS   r   )r   r   éî   )rS   r   rS   )r   rS   rS   )éå   rU   rU   )é   rV   rV   )éÿ   r   r   )r   rW   r   )rW   rW   r   )é\   rX   rW   )rW   r   rW   )r   rW   rW   )rW   rW   rW   )r   é_   é‡   é¯   é×   rW   éØ   é$   é   é   é   r$   )rG   r*   Úrange)r   Ú
valuerangeÚiÚrÚgÚbÚvs          r   rM   z'Terminal256Formatter._build_color_table˜   s@  € ð 	Ô× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ØÔ× Ò Ð!3Ñ4Ô4Ð4ð :ˆ
å�s‘”ð 	0ð 	0ˆAØ˜A ™G q™=Ô)ˆAØ˜A ™F a™<Ô(ˆAØ˜1˜q™5Ô!ˆAØÔ×$Ò$ a¨¨A YÑ/Ô/Ð/Ð/õ �r‘”ð 	0ð 	0ˆAØ�A˜‘F‘
ˆAØÔ×$Ò$ a¨¨A YÑ/Ô/Ð/Ð/ð	0ð 	0r   c                 óÆ   — d}d}t          dd¦  «        D ]K}| j        |         }||d         z
  }||d         z
  }	||d         z
  }
||z  |	|	z  z   |
|
z  z   }||k     r|}|}ŒL|S )Ni r   é   r2   r    )rb   rG   )r   re   rf   rg   ÚdistanceÚmatchrd   ÚvaluesÚrdÚgdÚbdÚds               r   Ú_closest_colorz#Terminal256Formatter._closest_color¼   sŠ   € ØˆØˆå�q˜#‘”ð 
	ð 
	ˆAØÔ& qÔ)ˆFà�V˜A”Y‘ˆBØ�V˜A”Y‘ˆBØ�V˜A”Y‘ˆBØ�2‘˜˜2™‘  2¡Ñ%ˆAà�8Š|ˆ|Ø�Ø�øØˆr   c                 ó8  — | j                              |d ¦  «        }|t          v r|}|| j         |<   |€g	 t          t	          |¦  «        d¦  «        }n# t
          $ r d}Y nw xY w|dz	  dz  }|dz	  dz  }|dz  }|                      |||¦  «        }|| j         |<   |S )Né   r   rW   ra   )rH   rO   r   r-   r,   Ú
ValueErrorrr   )r   ÚcolorÚindexÚrgbre   rf   rg   s          r   Ú_color_indexz!Terminal256Formatter._color_indexÍ   sÉ   € Ø”×#Ò# E¨4Ñ0Ô0ˆØ•JÐÐàˆEØ%*ˆDŒO˜EÑ"Øˆ=ðÝ�#˜e™*œ* bÑ)Ô)��øÝð ð ð Ø���ðøøøð ˜‘˜dÑ"ˆAØ˜‘˜TÑ!ˆAØ�d‘
ˆAØ×'Ò'¨¨1¨aÑ0Ô0ˆEØ%*ˆDŒO˜EÑ"Øˆs   ´A ÁA!Á A!c                 ó‚  — | j         D �]5\  }}t          ¦   «         }|d         r!|                      |d         ¦  «        |_        n(|d         r |                      |d         ¦  «        |_        |d         r!|                      |d         ¦  «        |_        n(|d         r |                      |d         ¦  «        |_        | j        r|d         rd|_        | j        r|d         rd|_        | j	        r|d         rd|_
        |                     ¦   «         |                     ¦   «         f| j        t          |¦  «        <   �Œ7d S )	NÚ	ansicolorrv   ÚbgansicolorÚbgcolorr   Tr   r   )Ústyler	   ry   r   r   rJ   r   rK   r   rL   r   r/   r8   rI   r,   ©r   ÚttypeÚndefr   s       r   rN   z"Terminal256Formatter._setup_stylesà   sZ  € Øœ:ð 	Dñ 	D‰KˆE�4Ý#Ñ%Ô%ˆFà�KÔ ð =Ø ×-Ò-¨d°;Ô.?Ñ@Ô@�”	�	Ø�g”ð =Ø ×-Ò-¨d°7¬mÑ<Ô<�”	Ø�MÔ"ð ?Ø ×-Ò-¨d°=Ô.AÑBÔB�”	�	Ø�i”ð ?Ø ×-Ò-¨d°9¬oÑ>Ô>�”	ØŒ|ð #  V¤ð #Ø"�”ØÔ ð ( T¨+Ô%6ð (Ø#'�Ô ØŒ~ð % $ x¤.ð %Ø $�”Ø-3×-@Ò-@Ñ-BÔ-BØ-3×-@Ò-@Ñ-BÔ-Bð-DˆDÔ�c %™jœjÑ)Ñ)ð#	Dð 	Dr   c                 ó~   — | xj         dz  c_         |                     d| j         dk    rdpd| j         fz  ¦  «         d S )Nr2   z%s%04d: ú
r   )rP   Úwrite)r   Úoutfiles     r   Ú_write_linenoz"Terminal256Formatter._write_linenoõ   sG   € ØˆŒ˜ÑˆŒØ�Š�j D¤L°AÒ$5Ð$>¸$Ð$DÀ"ÀdÄlÐ#SÑSÑTÔTÐTÐTÐTr   c                 ó.   — t          j        | ||¦  «        S r   )r   Úformat)r   Útokensourcer…   s      r   rˆ   zTerminal256Formatter.formatù   s   € ÝÔ  k°7Ñ;Ô;Ð;r   c                 óp  — | j         r|                      |¦  «         |D ]ø\  }}d}|rØ|rÖ	 | j        t          |¦  «                 \  }}|                     d¦  «        }|d d…         D ]Q}	|	r|                     ||	z   |z   ¦  «         | j         r|                      |¦  «         Œ<|                     d¦  «         ŒR|d         r!|                     ||d         z   |z   ¦  «         d}n# t          $ r
 |j        }Y nw xY w|r|°Ö|r|                     |¦  «         Œù| j         r|                     d¦  «         d S d S )NTrƒ   éÿÿÿÿF)rF   r†   rI   r,   Úsplitr„   ÚKeyErrorÚparent)
r   r‰   r…   r€   ÚvalueÚ	not_foundÚonÚoffÚsplÚlines
             r   Úformat_unencodedz%Terminal256Formatter.format_unencodedü   s™  € ØŒ<ð 	(Ø×Ò˜wÑ'Ô'Ð'à'ð 	%ð 	%‰LˆE�5ØˆIØð )˜Ið )ð)à"Ô/µ°E±
´
Ô;‘G�B˜ð  Ÿ+š+ dÑ+Ô+�CØ # C R C¤ð 0ð 0˜Øð ;Ø#ŸMšM¨"¨t©)°c©/Ñ:Ô:Ð:Øœ<ð 0Ø ×.Ò.¨wÑ7Ô7Ð7Ð7à#ŸMšM¨$Ñ/Ô/Ð/Ð/à˜2”wð :ØŸš b¨3¨r¬7¡l°SÑ&8Ñ9Ô9Ð9à %�I�Iøõ  ð )ð )ð )à!œL�E�E�Eð)øøøð- ð )˜Ið )ð6 ð %Ø—’˜eÑ$Ô$Ð$øàŒ<ð 	 Ø�MŠM˜$ÑÔÐÐÐð	 ð 	 s   «B9C%Ã%C9Ã8C9N)r9   r:   r;   Ú__doc__ÚnameÚaliasesÚ	filenamesr   rM   rr   ry   rN   r†   rˆ   r•   r<   r   r   r   r   b   sµ   € € € € € ðð ð@ €DØ2Ð2Ð2€GØ€Iðð ð ð""0ð "0ð "0ðHð ð ð"ð ð ð&Dð Dð Dð*Uð Uð Uð<ð <ð <ð% ð % ð % ð % ð % r   c                   ó4   — e Zd ZdZdZg d¢Zg Zd„ Zd„ Zd„ Z	dS )r   a}  
    Format tokens with ANSI color sequences, for output in a true-color
    terminal or console.  Like in `TerminalFormatter` color sequences
    are terminated at newlines, so that paging the output works correctly.

    .. versionadded:: 2.1

    Options accepted:

    `style`
        The style to use, can be a string or a Style subclass (default:
        ``'default'``).
    ÚTerminalTrueColor)Úterminal16mÚ
console16mÚ16mc                 ó   — d S r   r<   )r   s    r   rM   z-TerminalTrueColorFormatter._build_color_table7  s   € Øˆr   c                 ó–   — 	 t          t          |¦  «        d¦  «        }n# t          $ r Y d S w xY w|dz	  dz  }|dz	  dz  }|dz  }|||fS )Nrt   rW   ra   )r-   r,   ru   )r   rv   rx   re   rf   rg   s         r   Ú_color_tuplez'TerminalTrueColorFormatter._color_tuple:  sq   € ð	Ý•c˜%‘j”j "Ñ%Ô%ˆCˆCøÝð 	ð 	ð 	Ø�4�4ð	øøøà�B‰Y˜$ÑˆØ�A‰X˜ÑˆØ�$‰JˆØ�1�aˆyÐs   ‚   
.­.c                 óÚ  — | j         D ]â\  }}t          ¦   «         }|d         r |                      |d         ¦  «        |_        |d         r |                      |d         ¦  «        |_        | j        r|d         rd|_        | j        r|d         rd|_        | j	        r|d         rd|_
        |                     ¦   «         |                     ¦   «         f| j        t          |¦  «        <   Œãd S )Nrv   r}   r   Tr   r   )r~   r	   r¡   r   r   rJ   r   rK   r   rL   r   r3   r8   rI   r,   r   s       r   rN   z(TerminalTrueColorFormatter._setup_stylesD  s  € Øœ:ð 	Dð 	D‰KˆE�4Ý#Ñ%Ô%ˆFØ�GŒ}ð =Ø ×-Ò-¨d°7¬mÑ<Ô<�”	Ø�IŒð ?Ø ×-Ò-¨d°9¬oÑ>Ô>�”	ØŒ|ð #  V¤ð #Ø"�”ØÔ ð ( T¨+Ô%6ð (Ø#'�Ô ØŒ~ð % $ x¤.ð %Ø $�”Ø-3×-EÒ-EÑ-GÔ-GØ-3×-@Ò-@Ñ-BÔ-Bð-DˆDÔ�c %™jœjÑ)Ð)ð	Dð 	Dr   N)
r9   r:   r;   r–   r—   r˜   r™   rM   r¡   rN   r<   r   r   r   r   %  sg   € € € € € ðð ð €DØ2Ð2Ð2€GØ€Iðð ð ðð ð ðDð Dð Dð Dð Dr   N)r–   Úpygments.formatterr   Úpygments.consoler   Úpygments.styler   Ú__all__r	   r   r   r<   r   r   ú<module>r§      sï   ððð ð2 )Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %ð "Ð#?Ð
@€ð="ð ="ð ="ð ="ð ="ñ ="ô ="ð ="ð@ ð  ð  ð  ð  ˜9ñ  ô  ð  ðF-Dð -Dð -Dð -Dð -DÐ!5ñ -Dô -Dð -Dð -Dð -Dr   