HEX
Server: Apache
System: Linux ip-172-26-2-106 6.1.0-37-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64
User: daemon (1)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pygments/formatters/__pycache__/svg.cpython-311.pyc
�

�E�c���^�dZddlmZddlmZddlmZmZdgZd�Z	iZ
Gd�de��ZdS)	z�
    pygments.formatters.svg
    ~~~~~~~~~~~~~~~~~~~~~~~

    Formatter for SVG output.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�)�	Formatter)�Comment)�get_bool_opt�get_int_opt�SvgFormatterc���|�dd���dd���dd���dd���d	d
��S)z<Escape &, <, > as well as single and double quotes for HTML.�&z&amp;�<z&lt;�>z&gt;�"z&quot;�'z&#39;)�replace)�texts �9/usr/lib/python3/dist-packages/pygments/formatters/svg.py�escape_htmlrsT���<�<��W�%�%����V�$�$����V�$�$����X�&�&����W�%�%�	&�c�4�eZdZdZdZdgZdgZd�Zd�Zd�Z	dS)	ra&	
    Format tokens as an SVG graphics file.  This formatter is still experimental.
    Each line of code is a ``<text>`` element with explicit ``x`` and ``y``
    coordinates containing ``<tspan>`` elements with the individual token styles.

    By default, this formatter outputs a full SVG document including doctype
    declaration and the ``<svg>`` root element.

    .. versionadded:: 0.9

    Additional options accepted:

    `nowrap`
        Don't wrap the SVG ``<text>`` elements in ``<svg><g>`` elements and
        don't add a XML declaration and a doctype.  If true, the `fontfamily`
        and `fontsize` options are ignored.  Defaults to ``False``.

    `fontfamily`
        The value to give the wrapping ``<g>`` element's ``font-family``
        attribute, defaults to ``"monospace"``.

    `fontsize`
        The value to give the wrapping ``<g>`` element's ``font-size``
        attribute, defaults to ``"14px"``.

    `linenos`
        If ``True``, add line numbers (default: ``False``).

    `linenostart`
        The line number for the first line (default: ``1``).

    `linenostep`
        If set to a number n > 1, only every nth line number is printed.
        
    `linenowidth`
        Maximum width devoted to line numbers (default: ``3*ystep``, sufficient
        for up to 4-digit line numbers. Increase width for longer code blocks).  
        
    `xoffset`
        Starting offset in X direction, defaults to ``0``.

    `yoffset`
        Starting offset in Y direction, defaults to the font size if it is given
        in pixels, or ``20`` else.  (This is necessary since text coordinates
        refer to the text baseline, not the top edge.)

    `ystep`
        Offset to add to the Y coordinate for each subsequent line.  This should
        roughly be the text size plus 5.  It defaults to that value if the text
        size is given in pixels, or ``25`` else.

    `spacehack`
        Convert spaces in the source to ``&#160;``, which are non-breaking
        spaces.  SVG provides the ``xml:space`` attribute to control how
        whitespace inside tags is handled, in theory, the ``preserve`` value
        could be used to keep all whitespace as-is.  However, many current SVG
        viewers don't obey that rule, so this option is provided as a workaround
        and defaults to ``True``.
    �SVG�svgz*.svgc��tj|fi|��t|dd��|_|�dd��|_|�dd��|_t|dd��|_|j�	��}|�
d	��r|dd
��	��}	t|��}n	#d}YnxYwt|d|��|_t|d
|dz��|_
t|dd��|_t|dd��|_t|dd��|_t|dd��|_t|dd|j
z��|_i|_dS)N�nowrapF�
fontfamily�	monospace�fontsize�14px�xoffsetr�px�����yoffset�ystep��	spacehackT�linenos�linenostart��
linenostep�linenowidth�)r�__init__rr�getrrrr�strip�endswith�intr r!r#r$r%r'r(�_stylecache)�self�options�fs�int_fss    rr*zSvgFormatter.__init__]sg����4�+�+�7�+�+�+�"�7�H�e�<�<���!�+�+�l�K�@�@������J��7�7��
�"�7�I�q�9�9���
�]�
 �
 �
"�
"��
�;�;�t���2�2�c�r�c�7�=�=�?�?�b�	���W�W�F�F��	��F�F�F����"�7�I�v�>�>��� ��'�6�A�:�>�>��
�%�g�{�D�A�A���#�G�I�e�<�<���&�w�}�Q�?�?���%�g�l�1�=�=���&�w�}�a��
�l�K�K�������s�C�Cc
�f�|j}|j}|js�|jr|�d|jz��n|�d��|�d��|�d��|�d|j�d|j�d���|j}|j}|�	t��}|}|jrJ||zdkr*|�d	||jz�d
|�d|�d|�d
�	��||j|j
zz
}|dz
}|�d	|�d
|�d���|D�]C\}	}
|�	|	��}|rd|zdzpd}|rdpd}
t|
��}
|jr(|
����dd��}
|
�d��}|dd�D]�}|�||z|
z��||j
z
}|�d��|jr3||zdkr*|�d	||jz�d
|�d|�d|�d
�	��|dz
}|�d	|�d
|�d�����|�||dz|
z����E|�d
��|js|�d��dSdS)z�
        Format ``tokensource``, an iterable of ``(tokentype, tokenstring)``
        tuples and write it into ``outfile``.

        For our implementation we put all lines in their own 'line group'.
        z$<?xml version="1.0" encoding="%s"?>
z<?xml version="1.0"?>
zk<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
z)<svg xmlns="http://www.w3.org/2000/svg">
z<g font-family="z
" font-size="z">
rz	<text x="z" y="z" z text-anchor="end">z</text>r&z" xml:space="preserve">z<tspanr�z</tspan>� z&#160;�
N���z</text>
z" text-anchor="end" z</g></svg>
)rr r�encoding�writerrr%r'�
_get_stylerr$r(r!rr#�
expandtabsr�split)r0�tokensource�outfile�x�y�counter�counter_step�
counter_style�line_x�ttype�value�style�tspan�tspanend�parts�parts                r�format_unencodedzSvgFormatter.format_unencodedrs_��
�L���L���{�	<��}�
9��
�
�E�"�m�,�-�-�-�-��
�
�7�8�8�8��M�M�*�
+�
+�
+�
�M�M�F�G�G�G��M�M�M��?�?�?�D�M�M�M�;�
<�
<�
<��"���������0�0�
����<�	���%��*�*��
�
�
��t�'�'�'�'����-�-�-����A�B�B�B��d�&���3�3�F��q�L�G��
�
�
�V�V�V�Q�Q�Q�O�P�P�P�'�	8�	8�L�E�5��O�O�E�*�*�E��4�h��.��4�:��E��+��1�r�H���&�&�E��~�
B��(�(�*�*�2�2�3��A�A���K�K��%�%�E��c�r�c�
�	
[�	
[���
�
�e�d�l�X�5�6�6�6��T�Z����
�
�k�*�*�*��<�F�G�l�$:�a�$?�$?��M�M�M��4�+�+�+�+�A�A�A�m�m�m�G�G�G�#E�F�F�F��1����
�
�
�PV�PV�PV�WX�WX�WX�Y�Z�Z�Z�Z��M�M�%�%��)�+�h�6�7�7�7�7��
�
�i� � � ��{�	*��M�M�.�)�)�)�)�)�	*�	*rc�X�||jvr
|j|S|}|j�|��s!|j}|j�|���!|j�|��}d}|drd|dzdz}|dr|dz
}|dr|dz
}||j|<|S)	Nr5�colorz fill="#r�boldz font-weight="bold"�italicz font-style="italic")r/rH�styles_token�parent�style_for_token)r0�	tokentype�
otokentyperG�results     rr;zSvgFormatter._get_style�s�����(�(�(��#�I�.�.��
��*�)�)�)�4�4�	)�!�(�I��*�)�)�)�4�4�	)��
�*�*�9�5�5������>�	7��%��.�0�3�6�F���=�	,��+�+�F���?�	-��,�,�F�'-����$��
rN)
�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenamesr*rMr;�rrrrsb������:�:�v�D��g�G��	�I����*9*�9*�9*�v����rN)r[�pygments.formatterr�pygments.tokenr�
pygments.utilrr�__all__r�class2stylerr_rr�<module>res�����)�(�(�(�(�(�"�"�"�"�"�"�3�3�3�3�3�3�3�3��
��&�&�&���_�_�_�_�_�9�_�_�_�_�_r