403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.25
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/docutils/utils/math/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/docutils/utils/math/__pycache__/latex2mathml.cpython-311.pyc
�

N=&bc����dZddlZddlZddlmZmZejZded<dddd	d
ddd
dddd�Zdddddddddd�	Z	e	�
d�dD����dddddddd d!d"d#d$dd%�
Zid&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d7�d8d9�d:d;�d<d=�d>d?�d@d=�dAd?�dBd?�Ze�
ej
��e�
ej��e�
ej��idCdD�dEdF�dGdH�dIdJ�dKdL�dMdN�dOdP�dQdR�dSdT�dUdV�dWdX�dYdZ�d[d\�d]d^�d_d`�dad^�dbd^�d`ddcdddedfdg��Ze�
ej��e�
ej��e�
ej��e�
ej��e�
ej��e�
e��dhdidj�Zdkdldmdndodpdqdr�ZdsZdtdudvdwdxdydzd{d|dvdwdxdyd}�
Zd~dd�d�d�d�d�d�d�d�d�d�d��Zd�d�d�d�d�d�d�d��Zd�d�d�d�d�d��Zd�d�d�d��Zd�d�d�d�d�d��Zd�d�d�d�d�d�d�d�d��Zd�dd��d�dd��d�d�d��d�d�d��d��Z iifd�dd�d��ife d�ife d�ifid�dife d�d�dife d�d�difd��Z!gd��Z"ddd�d�d�d�d�d�d�d�d��
Z#Gd��d���Z$Gd��d�e$��Z%Gd��d�e$��Z&Gd��d�e$��Z'Gd��d�e'��Z(Gd„d�e'��Z)GdĄd�e'��Z*GdƄd�e'��Z+GdȄd�e'��Z,Gdʄd�e'��Z-Gd̄d�e$��Z.Gd΄d�e.��Z/GdЄd�e.��Z0Gd҄d�e.��Z1GdԄd�e.��Z2Gdքd�e$��Z3Gd؄d�e3��Z4Gdڄd�e3��Z5Gd܄d�e3��Z6Gdބd�e4��Z7Gd�d�e5��Z8Gd�d�e6��Z9Gd�d�e3��Z:Gd�d�e$��Z;Gd�d�e$��Z<d�Z=d�Z>d�Z?d�Z@d�ZAd�ZBd�ZCd�ZDd�d�ZEd�ZFd��ZGd��ZHd��ZId�d��ZJdS)�z�Convert LaTex maths code into presentational MathML.

This module is provisional:
the API is not settled and may change with any minor Docutils version.
�N)�tex2unichar�
toplevel_codeuℏ�hbaruΦuΞ�ΣuΨuΔuΘuϒ�ΠuΩ�ΓuΛ)�Phi�Xi�Sigma�Psi�Delta�Theta�Upsilon�Pi�Omega�Gamma�Lambdau	lim infu	lim supu	inj limu
proj lim�lim)	�liminf�limsup�injlim�projlim�	varlimsup�	varliminf�
varprojlim�	varinjlim�operatornamec#�K�|]}||fV��	dS�N�)�.0�names  �B/usr/lib/python3/dist-packages/docutils/utils/math/latex2mathml.py�	<genexpr>r$Bs>����A�A�$�$���A�A�A�A�A�A�)�arccos�arcsin�arctan�arg�cos�cosh�cot�coth�csc�deg�det�dim�exp�gcd�hom�ker�lg�ln�log�Pr�sec�sin�sinh�tan�tanh�bold�italic�	monospace�normalz
sans-serif�scriptzbold-italicz
double-struck�frakturzsans-serif-italiczsans-serif-bold-italic)
�
boldsymbol�mathbf�mathit�mathtt�mathrm�mathsf�mathcal�mathbfit�mathbb�mathfrak�mathsfit�
mathsfbfit�mathscr�	backslash�\�uparrowu↑�	downarrowu↓�updownarrowu↕�Uparrowu⇑�	Downarrowu⇓�Updownarrowu⇕�
lmoustacheu⎰�
rmoustacheu⎱�	arrowvertu⏐�	bracevertu⎪�lvert�|�lVert�‖�rvert�rVert�	Arrowvert�nleqqu≦̸�ngeqqu≧̸�	nleqslantu⩽̸�	ngeqslantu⩾̸�ngtrlessu≹�nlessgtru≸�
nsubseteqqu⫅̸�
nsupseteqqu⫆̸�	centerdotu⬝�
varnothingu⌀�	varproptou∝�triangleu△�triangledownu▽�dotsb�⋯�dotscu…�dotsi�dotsm�sup�inf�max�min)�dotsorrwrxryrzu∼u≈)�thicksim�thickapproxu∣u∥u∤u∦u⌢u⌣u∫)�shortmid�
shortparallel�	nshortmid�nshortparallel�
smallfrown�
smallsmile�smallint)�bigcap�bigcup�bigodot�bigoplus�	bigotimes�bigsqcup�biguplus�bigvee�bigwedge�coprod�intop�ointop�prod�sumrryrzrwrx�2em�1emz0.2778emz0.2222emz0.1667emz	-0.1667emz	-0.2222emz	-0.2778emz0.25em)
�qquad�quad�
thickspace�medspace�	thinspace�negthinspace�negmedspace�
negthickspace� �;�:�,�!)�´ú)uˉū)u˘ŭ)uˇǔ)u˙u̇)�¨ü)rsu⃛)�`ù)uˆû)u˚ů)u˜ũ)�→u⃗)�acute�bar�breve�check�dot�ddot�dddot�grave�hat�mathring�tilde�vec)u⏞皙����ɿ)�←r�)u↔r�)�_r�)r�r�)�^g�)�~g333333ӿ)�	overbrace�
overleftarrow�overleftrightarrow�overline�overrightarrow�widehat�	widetilde)u⏟g�������?)r�g�������)�
underbrace�underleftarrow�underleftrightarrow�	underline�underrightarrowu−u∶� )�-r�r�uℾuℿ�⅀uℽuℼ)rrruγuπ)�r�)�(�))�[�])�{�})r_r_)rara)r�r�)�matrix�smallmatrix�pmatrix�bmatrix�Bmatrix�vmatrix�Vmatrix�casesT)�displaystyle�scriptlevelF��)r��	textstyle�scriptstyle�scriptscriptstyle�cfrac)r�r��CLASSr�r��
linethickness)�fracr��dfrac�tfrac�binom�dbinom�tbinom)r�z1.2emz1.623emz2.047emz2.470em��)
�left�right�bigl�bigr�Bigl�Bigr�biggl�biggr�Biggl�Biggrc���eZdZdZdZ	dZ	dZed��ded��ded��d	d
diZdd
d�Z		dZ
	d�Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Zdd�ZdS)�mathz8Base class for MathML elements and root of MathML trees.Nr�<z&lt;�>z&gt;�&z&amp;ia z&ApplyFunction;�true�false)TF�spanc��g|_|�|��i|_|���D]$}|||j|���<�%dS)aSet up node with `children` and `attributes`.

        Attributes are downcased: Use CLASS to set "class" value.
        >>> math(mn(3), CLASS='test')
        math(mn(3), class='test')
        >>> math(CLASS='test').toprettyxml()
        '<math class="test">
</math>'

        N)�children�extend�
attributes�keys�lower)�selfr�r��keys    r#�__init__z
math.__init__Gsd����
����H��������?�?�$�$�	;�	;�C�,6�c�?�D�O�C�I�I�K�K�(�(�	;�	;r%c��d�t|dg��D��}t|d��r'|�t|j����t|t��r|jr|�d��|d�|j�	��D��z
}|j
jdd�|��zzS)Nc�,�g|]}t|����Sr )�repr)r!�items  r#�
<listcomp>z!math.__repr__.<locals>.<listcomp>[s��H�H�H�$�4��:�:�H�H�Hr%r��datazswitch=Truec�&�g|]\}}|�|�d|����S)N�=r �r!�k�vs   r#rz!math.__repr__.<locals>.<listcomp>`s2��&�&�&�t�q�!��}��Q�Q���N�$�}�}r%z(%s)z, )
�getattr�hasattr�appendrr�
isinstance�
MathSchema�switchr��items�	__class__�__name__�join)r��contents  r#�__repr__z
math.__repr__Zs���H�H�'�$�
�B�*G�*G�H�H�H���4�� � �	,��N�N�4��	�?�?�+�+�+��d�J�'�'�	*�D�K�	*��N�N�=�)�)�)��&�&�t��/D�/D�/F�/F�&�&�&�	&���~�&��$�)�)�G�2D�2D�)D�D�Dr%c�*�t|j��Sr)�lenr��r�s r#�__len__zmath.__len__es���4�=�!�!�!r%c��|j|Sr�r�)r�rs  r#�__getitem__zmath.__getitem__js����s�#�#r%c��||j|<dSrr)r�rrs   r#�__setitem__zmath.__setitem__ms��#������r%c�&�|jj|i|��Sr)r��get)r��args�kwargss   r#r#zmath.getps��"�t��"�D�3�F�3�3�3r%c�D�|jduot|��|jkS)z;Return boolean indicating whether children may be appended.N)�	nchildrenrrs r#�fullz	math.fullss&����d�*�0���I�I���/�	1r%c���|���rtd|z���|j�|��||_|���r|���S|S)z�Append child and return self or first non-full parent.

        If self is full, go up the tree and return first non-full node or
        `None`.
        zNode %s already full!)r(�SyntaxErrorr�r�parent�close)r��childs  r#rzmath.appendxsh���9�9�;�;�	>��5��<�=�=�=��
���U�#�#�#�����9�9�;�;�	 ��:�:�<�<���r%c�:�|D]}|�|���|Sr)r)r�r�r-s   r#r�zmath.extend�s+���	�	�E��K�K�������r%c�z�|j}|�1|���r|j}|�|����|S)z7Close element and return first non-full parent or None.)r+r()r�r+s  r#r,z
math.close�s=������ �V�[�[�]�]� ��]�F�� �V�[�[�]�]� ��
r%c�P�d�|�����S)z,Return XML representation of self as string.r�)r�_xmlrs r#�toprettyxmlzmath.toprettyxml�s���w�w�t�y�y�{�{�#�#�#r%c�z�|���g|�|��zd|jjzgzS)Nz</%s>)�xml_starttag�	_xml_bodyrr�r��levels  r#r1z	math._xml�sB���"�"�$�$�%��.�.��'�'�(��T�^�4�4�5�6�	7r%c��d�|j���D��}dd�|jjg|�R��zS)Nc3�K�|]F\}}|�|�dt|���dd���dd���d�V��GdS)Nz="�Truer��Falser��")�str�replacer
s   r#r$z$math.xml_starttag.<locals>.<genexpr>�sh����#�#��Q���M� �a�a��Q�������!?�!?�!G�!G��QX�!Y�!Y�!Y�!Y�Z�!�M�M�M�#�#r%z<%s>r�)r�rrrr)r��attrss  r#r4zmath.xml_starttag�sW��#�#�!�_�2�2�4�4�#�#�#������$�.�"9�!B�E�!B�!B�C�C�C�Cr%c���g}|jD]J}|�dd|dzzg��|�|�|dz�����K|�dd|zg��|S)N�
z  r�)r�r�r1)r�r7�xmlr-s    r#r5zmath._xml_body�s}�����]�	,�	,�E��J�J��d�e�A�g�.�/�0�0�0��J�J�u�z�z�%��'�*�*�+�+�+�+��
�
�D�$��,�'�(�(�(��
r%�r)r�
__module__�__qualname__�__doc__r'r+�_level�ord�xml_entities�_boolstrings�html_tagnamerrrrr!r#r(rr�r,r2r1r4r5r r%r#r�r�2s_������B�B��I�-�
�F�)�
�F��C��H�H�f��C��H�H�f��C��H�H�g��/�	�L�!��1�1�L�C��L�+�;�;�;�&	E�	E�	E�"�"�"�
$�$�$�$�$�$�4�4�4�1�1�1�
������
���$�$�$�7�7�7�7�
D�D�D������r%r�c��eZdZdS)�mtableN�rrDrEr r%r#rMrM���������r%rMc�"��eZdZdZ�fd�Z�xZS)�mrowz*Group sub-expressions as a horizontal row.c���|j}t|t��rU|jdkrJt	|j��|_|j|_|jD]	}||_�
|���St	|��dkre	|jd|j|j�|��<||jd_n$#ttf$r|jdcYSwxYwt�����S)z�Close element and return first non-full parent or None.

        Remove <mrow>, if it is single child and the parent infers an mrow
        or if it has only one child element.
        r�r)r+r�
MathRowSchemar'rr�r,�index�AttributeError�
ValueError�super)r�r+r-rs   �r#r,z
mrow.close�s��������f�m�,�,�	"��1A�Q�1F�1F�"�6�?�3�3�F��"�m�F�O���
&�
&��%�����<�<�>�>�!��t�9�9��>�>�
(�?C�}�Q�?O����� 5� 5�d� ;� ;�<�*0��
�a� �'�'��"�J�/�
(�
(�
(��}�Q�'�'�'�'�
(�����w�w�}�}���s�?C�C(�'C()rrDrErFr,�
__classcell__�rs@r#rQrQ�s>�������4�4���������r%rQc��eZdZdZdS)rSzCBase class for elements treating content as a single inferred mrow.N)rrDrErFr r%r#rSrS�s������M�M�M�Mr%rSc��eZdZdS)�mtrNrNr r%r#r\r\�rOr%r\c��eZdZdS)�mtdNrNr r%r#r^r^�rOr%r^c��eZdZdZdS)�mencloser�N�rrDrEr'r r%r#r`r`���������I�I�Ir%r`c��eZdZdZdS)�mphantomr�Nrar r%r#rdrd�rbr%rdc��eZdZdZdS)�msqrtr�Nrar r%r#rfrf�rbr%rfc��eZdZdZdS)�mstyler�Nrar r%r#rhrh�rbr%rhc�.��eZdZdZdZ�fd�Zdd�Z�xZS)�	MathTokenzbToken Element: contains textual data instead of children.

    Base class for mo, mi, and mn.
    rc�H��||_t��jdi|��dS)Nr )rrWr)r�rr�rs   �r#rzMathToken.__init__s-�����	������&�&�:�&�&�&�&�&r%c�\�t|j���|j��gSr)r=r�	translaterIr6s  r#r5zMathToken._xml_bodys$���D�I���(�(��):�;�;�<�<r%rC)rrDrErFr'rr5rXrYs@r#rjrj�s]����������I�'�'�'�'�'�=�=�=�=�=�=�=�=r%rjc��eZdZdS)�mtextNrNr r%r#roro
rOr%roc��eZdZdS)�miNrNr r%r#rqrqrOr%rqc��eZdZdS)�moNrNr r%r#rsrsrOr%rsc��eZdZdS)�mnNrNr r%r#ruru
rOr%ruc�,��eZdZdZdZd�Z�fd�Z�xZS)rz�Base class for schemata expecting 2 or more children.

    The special attribute `switch` indicates that the last two child
    elements are in reversed order and must be switched before XML-export.
    r�c�f�|�dd��|_tj|g|�Ri|��dS)NrF)�poprr�r)r�r�r%s   r#rzMathSchema.__init__s=���j�j��5�1�1����
�d�0�X�0�0�0��0�0�0�0�0r%c����t���|��}|jrF|���r2|jd|jdc|jd<|jd<d|_|S)N������F)rWrrr(r�)r�r-�current_noders   �r#rzMathSchema.append"sg����w�w�~�~�e�,�,���;�	 �4�9�9�;�;�	 �37�=��3D�d�m�TV�FW�0�D�M�"��t�}�R�0��D�K��r%)rrDrErFr'rrrXrYs@r#rrsX����������I�1�1�1���������r%rc��eZdZdS)�msubNrNr r%r#r~r~+rOr%r~c��eZdZdS)�msupNrNr r%r#r�r�,rOr%r�c��eZdZdZdS)�msubsupr�Nrar r%r#r�r�/rbr%r�c��eZdZdS)�munderNrNr r%r#r�r�:rOr%r�c��eZdZdS)�moverNrNr r%r#r�r�;rOr%r�c��eZdZdS)�
munderoverNrNr r%r#r�r�LrOr%r�c��eZdZdZdS)�mrootr�Nrar r%r#r�r�Orbr%r�c��eZdZdZdS)�mfracr�Nrar r%r#r�r�Srbr%r�c��eZdZdZdS)�mspacerNrar r%r#r�r�Wrbr%r�c��tjd|��}|�tjd|��}|�d��|�d��fS)a"Return leading TeX command name and remainder of `string`.

    >>> tex_cmdname('mymacro2') # up to first non-letter
    ('mymacro', '2')
    >>> tex_cmdname('name 2') # strip trailing whitespace
    ('name', '2')
    >>> tex_cmdname('_2') # single non-letter character
    ('_', '2')

    z([a-zA-Z]+) *(.*)Nz(.?)(.*)r�r���re�match�group��string�ms  r#�tex_cmdnamer�asK��	��%�v�.�.�A��y��H�[�&�)�)���7�7�1�:�:�q�w�w�q�z�z�!�!r%c��tjd|��}|�d|fS|�d��|�d��fS)zmReturn leading number literal and remainder of `string`.

    >>> tex_number('123.4')
    ('123.4', '')

    z([0-9.,]*[0-9]+)(.*)Nr�r�r�r�r�s  r#�
tex_numberr�~sD��	��(�&�1�1�A��y��6�z���7�7�1�:�:�q�w�w�q�z�z�!�!r%c��tjd|tj��}|�dddd��\}}}}|p|p||fS)z�Return first simple TeX token and remainder of `string`.

    >>> tex_token('\command{without argument}')
    ('\command', '{without argument}')
    >>> tex_token('or first character')
    ('o', 'r first character')

    a%((?P<cmd>\\[a-zA-Z]+)\s* # TeX command, skip whitespace
                      |(?P<chcmd>\\.)          # one-character TeX command
                      |(?P<ch>.?))            # first character (or empty)
                     (?P<remainder>.*$)    # remaining part of string
                 �cmd�chcmd�ch�	remainder)r�r��VERBOSEr�)r�r�r�r�r�r�s      r#�	tex_tokenr��sZ��	����b�j�		*�	*�A�
!"����w��k� J� J��C���I���%��2�y�(�(r%c��d}d}d}|�d��s|dd�|dd�fS|D]4}|dz
}|rd}n |dkrd}n|dkr|dz
}n|dkr|dz}|dkrn�5td	���|d|dz
�||d�fS)
z�Return first TeX group or token and remainder of `string`.

    >>> tex_group('{first group} returned without brackets')
    ('first group', ' returned without brackets')

    rFr�Nr�rSTr�zGroup without closing bracket)�
startswithr*)r��split_index�
nest_level�escape�cs     r#�	tex_groupr��s����K��J�
�F����S�!�!�&��b�q�b�z�6�!�"�"�:�%�%�
�
;�
;���q����	��F�F�
�$�Y�Y��F�F�
�#�X�X��!�O�J�J�
�#�X�X��!�O�J���?�?��E���9�:�:�:��!�K��M�/�"�F�;�<�<�$8�8�8r%c��t|��\}}|dkr$t|�����\}}||fS)a�Return first TeX group or token and remainder of `string`.

    >>> tex_token_or_group('\command{without argument}')
    ('\command', '{without argument}')
    >>> tex_token_or_group('first character')
    ('f', 'irst character')
    >>> tex_token_or_group(' also whitespace')
    (' ', 'also whitespace')
    >>> tex_token_or_group('{first group} keep rest')
    ('first group', ' keep rest')

    r�)r�r��lstrip)r�r)r�s   r#�tex_token_or_groupr��sA���v�&�&�N�C��
�c�z�z�"�6�=�=�?�?�3�3���Y��	�>�r%c��tjd|tj��}|�|�d��sd|fS	|�d��|�d��fS#t
$rt
d|z���wxYw)a$Return optional argument and remainder.

    >>> tex_optarg('[optional argument] returned without brackets')
    ('optional argument', ' returned without brackets')
    >>> tex_optarg('{empty string, if there is no optional arg}')
    ('', '{empty string, if there is no optional arg}')

    z�\s*                            # leading whitespace
                 \[(?P<optarg>(\\]|[^\[\]]|\\])*)\] # [group] without nested groups
                 (?P<remainder>.*$)
                 Nr�r��optargr�z+Could not extract optional argument from %r)r�r�r�r�r�rUr*r�s  r#�
tex_optargr��s���	����b�j�	*�	*�A�	�y��*�*�3�/�/�y��6�z��R��w�w�x� � �!�'�'�+�"6�"6�6�6���R�R�R��G�&�P�Q�Q�Q�R���s�)A'�'Bc�B�d�|�����}|}t|��dk�ra|d|dd�}}|dkr�-|dkr(t|��\}}t	|||��\}}�n|dvrt||��}�n�|dkr't
��}|�|��|}�n�|dkr|���}�n�|d	kr9t��}|����|��|}�nh|�
��r$|�t|����}�n0|���r8t|��\}}|�t||z����}n�|tvryi}|d
krE|jr>|jd}t#|dd
��d
vs|�d��dkrd|d<|�t't|fi|����}nb|dvr%|�t'|d�����}n9|dvr#|�t'|����}nt)d|z���t|��dk��a|S)u�Append MathML conversion of `string` to `node` and return it.

    >>> parse_latex_math(math(), r'lpha')
    math(mi('α'))
    >>> parse_latex_math(mrow(), r'x_{n}')
    mrow(msub(mi('x'), mi('n')))

    r�rr�NrS�_^r�r�r�r�r{rz([=�class�mathopen�prefix�formz/()[]|F��stretchyz
+*=<>,.!?`';@zUnsupported character: "%s")r�splitrr��
handle_cmd�handle_script_or_limitrQrr,r^�isalpharq�isdigitr�ru�anomalous_charsr�r
r#rsr*)	�noder��treer��cmdname�new_node�numberr��
previous_nodes	         r#�parse_latex_mathr�s����X�X�f�l�l�n�n�
%�
%�F��D�

�f�+�+��/�/��1�I�v�a�b�b�z�6����8�8����9�9�)�&�1�1�O�G�V�%�g�t�V�<�<�L�D�&�&�
�$�Y�Y�)�$��2�2�D�D�
�#�X�X��v�v�H��K�K��!�!�!��D�D�
�#�X�X��:�:�<�<�D�D�
�#�X�X��u�u�H��J�J�L�L����)�)�)��D�D�
�Y�Y�[�[�	A��;�;�r�!�u�u�%�%�D�D�
�Y�Y�[�[�	A�'��/�/�N�F�F��;�;�r�!�F�(�|�|�,�,�D�D�
�/�
!�
!��J��C�x�x�D�M�x� $�
�b� 1�
��M�6�3�7�7�5�@�@�$�(�(��1�1�Z�?�?�)1�J�v�&��;�;�r�/�!�"4�C�C�
�C�C�D�D�D�D�
�(�]�]��;�;�r�!�e�4�4�4�5�5�D�D�
�/�
!�
!��;�;�r�!�u�u�%�%�D�D��;�a�?�@�@�@�S�f�+�+��/�/�T�Kr%c��|tvrAtt|��}|tvrd|d<|�|��}||fS|tv�r|dkr$t|��\}}t|d���}ntt|��}|dkrt
|td����}nm|dkr t|td	��d
���}nG|dkrt
|td
����}n#|dkrt
|td����}|�|��}|r,|ddvr"|�td����}||fS|tvr�|dkrddi}ndt|i}|dkrd|d<t|��\}}|�
d��r#t�|dd�|��}|dkrt�||��}|�
��s|dkr$|�t|fi|����}||fStdii|��}|�|��||fS|dkr*|�tdddd� ����}||fS|d!krt|d"��}||fS|t vr3|�tt |d#�$����}||fS|t"vr3|�tt"|d%�&����}||fS|t$vrUi}|t&vr|r|dd'vrd(|d)<n	|d*vrd+|d<|�tt$|fi|����}||fS|t(v�r i}t*t(|}	t|��\}
}|
d,vrF	t,|
�d��}
n$#t0$rt3d-|�d.|
�d/����wxYw|	r|	|d0<|	|d1<d(|d2<|d3ks|�d4��r%t7��}|�|��|}|
d5kr |�t|
fi|����|d6ks|�d7��r|���}||fS|d8kr�t;|��\}}|d9kr|d:|zfS|�
d��r7	t$|dd�}n #t0$rt3d;|z���wxYwt=jd<|d=z��}|�t|����}||fS|d>vr�t|��\}}|� d?��}tC|��D]W\}
}|
d@zdkr9tEj#dAdB|��}|�tI|����}�Gt||���X||fS|tJvr5|�tMdCtJ|z�D����}||fS|dEvrntO|��\}}|�dF��rdGtQ|ddH���dIzz}|�tMdC|z�D����}||fS|dJkr'tS��}|�|��||fS|dKkr)tUdL�M��}|�|��||fS|dNkrtW|��\}}|rDt7��}tY|d(�O��}t||��|���nt[��}|�|��||fS|t\vr�t\|\}}|dPkrHtW|��\}}d3d6dQ�}||vr-|�/��}|||dR<dS||z|d<tadii|��x}}|�dT��r4t7tdU��|tdV��dT�W��}dX|_1|r
t|fi|��}|�|��||fS|dkrZte��}tg|��}|�������|��||fS|thvrgttth|dd
�Y��d(�O��}|dZkrd
|j5dd[<||_6|�|��||fS|tnvrRtttn|dd(���d(d
�\��}||_6|�|��||fS|d]kr)td(�O��}|�|��||fS|tpvrOt
ttp|d��d(�O��}||_6|�|��||fS|d^kr)t
d(�O��}|�|��||fS|d_vr�tW|��\}}tt$d`|dd�z��}|rats|��}tt7��|��}tu|��dkr
|j5d}|�|��nt|��}|�|��||fS|tvvr�tdiitv|��}d|_1ty|t6��rLtu|��dkr9||j=j5|j=j5�>|��<|j=|_=n8|j?j@dakr|�|��nt3db|z���||fS|�dc��r.t;|��\}}|ddvr|}t�|||�e��}||fS|dfkrt�||��S|dgkrt�||��St3dh|z���)jujProcess LaTeX command `name` followed by `string`.

    Append result to `node`.
    If needed, parse `string` for command argument.
    Return new current node and remainder of `string`:

    >>> handle_cmd('hbar', math(), r' rac')
    (math(mi('ℏ')), ' \frac')
    >>> handle_cmd('hspace', math(), r'{1ex} (x)')
    (math(mspace(width='1ex')), ' (x)')

    z
capital-greekr�rrB)�mathvariantrr�r�¯F)�accentrr�rr�r)r�r�u⁡rEr�rQrSr�NrMr��colonr��postfix�0z0.28em)r��lspace�rspace�idotsintz\int\dotsi\intzfont-weight: bold)�stylez75%)�mathsizez _^T�
movablelimits)r^r`r�z()[]/|.zUnsupported "\z
" delimiter "z"!�maxsize�minsize�	symmetricr��l�.r��r�notr�z{\not z\not: Cannot negate: "%s"!�NFCu̸)�text�mbox�textrm�$r�z(^ | $)r�z%s)�width)�hspacer�r�z%semrz��phantom�boxed�box)�notation�sqrt)rr�)r�r��numalignz	numalign-r�r�r�)r�r�r�r�r�)rr��overset�underset)�
xleftarrow�xrightarrow�longr�z3Declaration "\%s" must be first command in a group.�limitsr�)r��begin�endzUnknown LaTeX command: r )D�lettersrq�greek_capitalsr�	functionsr�r�rsr��math_alphabetsr�r#rMr�rhr��thick_operators�small_operators�	operatorsr��
bigdelimiters�delimiter_sizes�stretchablesr��KeyErrorr*�endswithrQr,r��unicodedata�	normalizer��	enumerater��subro�spacesr�r��floatrdr`r�r�rf�	fractions�copyr�r'r^r\�accentsr��tex_cmd�over�underr�r�
layout_stylesrr+rTrrr��begin_environment�end_environment)r"r�r�r�r)r�r�r��delimiter_attributes�size�	delimiter�row�parts�i�part�radix�	indexnode�
style_atts�	frac_attsr��optargsr��entry�	subscript�base�sub_nodes                          r#r�r�qsP
��&�w����g�d�m�$�$���>�!�!�!0�H�W���{�{�8�$�$���V�|���y����>�!�!�-�V�4�4�K�C���#�8�4�4�4�H�H��)�D�/�*�*�H��;����h��3���0�0�H�H�
�[�
 �
 ��X�r�$�x�x��>�>�>�H�H�
�\�
!�
!��h��8���5�5�H�H�
�[�
 �
 ��h��8���5�5�H��{�{�8�$�$���	-�f�Q�i�z�1�1��;�;�r�(�|�|�,�,�D��V�|���~����<���!�<�0�J�J�'���)=�>�J��9���"+�J�w��+�F�3�3���Y��>�>�$���	,��+�+�c�!�"�"�g�s�+�+�C��8����*�*�S�#�&�&�C��;�;�=�=�	#�C�8�O�O��;�;�r�#�4�4��4�4�5�5�D���?�"��$�$��$�$�����E�����f�}���w����{�{�2�c�	�#�h�O�O�O�P�P���V�|���z�����&7�8�8���V�|�������{�{�2�o�d�3�;N�O�O�O�P�P���V�|�������{�{�2�o�d�3�e�D�D�D�E�E���V�|���y����
��=� � �V� ��q�	�U�0B�0B�*.�J��'�'�
�'�
'�
'�",�J�w���{�{�2�i��o�<�<��<�<�=�=���V�|���}���!���}�T�2�3��.�v�6�6��	�6��I�%�%�
7�(��)9�)9�$�)?�)?�@�	�	���
7�
7�
7�!�k�%)�T�T�9�9�9�#6�7�7�7�
7�����	5�.2� ��+�.2� ��+�04� ��-��6�>�>�T�]�]�3�/�/�>��&�&�C��K�K������D������K�K��9�=�=�(<�=�=�>�>�>��7�?�?�d�m�m�C�0�0�?��:�:�<�<�D��V�|���u�}�}���'�'���V��#�:�:���V�+�+�+��>�>�$���	E�
E���A�B�B��(�����
E�
E�
E�!�"?��"C�D�D�D�
E�����#�E�3�x�<�8�8���{�{�2�c�7�7�#�#���V�|���)�)�)�(��0�0���V��	�	�#���� ��'�'�	-�	-�G�A�t��1�u��z�z��v�i��4�8�8���{�{�5��;�;�/�/��� ��t�,�,�,�,��V�|���v�~�~��{�{�6��V�D�\�(9�:�:�:�;�;���V�|���#�#�#���'�'���V��<�<����	0��E�#�c�r�c�(�O�O�B�.�/�C��{�{�6��S��1�1�1�2�2���V�|���y����:�:�����H���������w����U�+�+�+�����H��������
�v�~�~�"�6�*�*�
��v��	����I��Y�t�4�4�4�H��Y��.�.�.��O�O������w�w�H����H���������y���"+�D�/���Y��7�?�?�'��/�/�N�F�F�"��1�1�G��� � �%�N�N�,�,�	�(/���	�*�%�%0�7�6�?�%B�	�'�"��,�,�)�,�,�,��4��=�=��!�!�	#��B�s�G�G�X�r�#�w�w�g�F�F�F�H�!"�H���	6��h�5�5�*�5�5�H����H�����V�|���t�|�|������u�:�:���
�
�������#�#�H�-�-�-��f�}���w�����G�D�M�!�,�u�=�=�=�d�K�K�K���5�=�=�-2�H��a� ��*�������H���������t�|�|���D��J�q�M�$�7�7�7� $�U�4�4�4��������H���������y�����%�%�%�����H���������u�}�}��"�U�4�[��^�,�,�T�:�:�:��������H���������z�����&�&�&�����H���������,�,�,�&�v�.�.��	�6��)�F�4����8�O�,�-�-���	#�!�$�'�'�H�'����	�:�:�H��8�}�}��!�!�#�,�Q�/���O�O�H�%�%�%�%��T�{�{�H����H���������}����0�0�M�$�/�0�0��!����d�D�!�!�	4�c�$�i�i�1�n�n�EM�D�K� ���!5�!;�!;�D�!A�!A�B�"�k�H�O�O�
�^�
$��
.�
.��K�K��!�!�!�!��,�.2�3�4�4�
4������}�}�X����"�6�*�*���Y��$�;�;��F�)�$��D�A�A�A�D��V�|���w��� ��v�.�.�.��u�}�}��t�V�,�,�,�
�/�$�6�
7�
7�7s� O)�)!P
�2T�T%r�c��|j���}|dkrd|d<n#|dkst|dd��tvrd|d<|dkr�t	|t
��rt
|jddi�}n�t	|t��rt|jddi�}n�|d	vs|dkr&|�	dd
��rt|��}n�t|��}n�|dkr�t	|t��rt
|j�}nct	|t��rt|j�}n?|d	vs|dkr&|�	dd
��rt|��}nt|��}|�|��|S)z)Append script or limit element to `node`.r�Fr�rr�Tr�r)r�r�Nr�)
r�rxr
r�rr�r�r�r�r#r�r~r)r�r�r�r-r�s     r#r�r��s����M�����E�
����!&��o���
�O�
#�
#�
�U�F�B�
'�
'�=�
8�
8�!%��o���C�x�x��e�U�#�#�	#�!�5�>�?�$�?�?�H�H�
��t�
$�
$�	#����<�t�<�<�H�H��3�3�3��2���%�)�)�O�T�"B�"B���e�}�}�H�H��E�{�{�H�H�	
�c����e�V�$�$�	#�!�5�>�2�H�H�
��t�
$�
$�	#����/�H�H��3�3�3��2���%�)�)�O�T�"B�"B���U�|�|�H�H��E�{�{�H��K�K������Or%c�0�t|��\}}|tvr�t|d}i}|r]tt|����}|dkr#tt|d�����}d|d<|�|��|}n7|dkr1d|d	<d
|d<td�
��}|�|��|}t
��}|�tt|��fi|����|}ntd���||fS)Nrr�z0.17em)r�r��columnalignr�z0.02em�
rowspacingz0.333em�
columnspacing�1)r��Environment not supported!)
r��matricesrQrsrrhr^rMr\r*)r�r�r"�left_delimiterr��wrapperrs       r#rr�s-���V�$�$�L�D�&��x���!�$���*���
��	��2�n�-�-�.�.�G��w����r�.��B�B�B�C�C��,2�
�=�)��K�K�� � � ��D�D�
�]�
"�
"�'/�J�|�$�*3�J��'���-�-�-�G��K�K�� � � ��D��������F�3�u�:�:�4�4��4�4�5�5�5�����6�7�7�7���<�r%c��t|��\}}|tvr�|���������}t|d}|r7|�t	|����}|���}n*|dkr|���}ntd���||fS)Nr�r�r)r�rr,rrsr*)r�r�r"�right_delimiters    r#rr�s����V�$�$�L�D�&��x����z�z�|�|�!�!�#�#�)�)�+�+��"�4�.��+���	 ��;�;�r�/�2�2�3�3�D��:�:�<�<�D�D�
�W�_�_��:�:�<�<�D���6�7�7�7���<�r%c�n�td�|D����}|dkrdSt|dzdz��S)Nc3�lK�|]/}|�d��|�d��z
V��0dS�r�z\&N��count�r!rs  r#r$z'tex_equation_columns.<locals>.<genexpr>�=����A�A�S�s�y�y��~�~��	�	�%� 0� 0�0�A�A�A�A�A�Ar%rr�r�)ry�int)�rows�tabss  r#�tex_equation_columnsr.s@���A�A�D�A�A�A�A�A�D��q�y�y��q��t�A�v��z�?�?�r%c���ddd�}td�|D����}|rQddg|z}ddg|z}d	�|d|d
z���|d<d	�|d|���|d<|S)
N�alignT)r�r�c3�lK�|]/}|�d��|�d��z
V��0dSr&r'r)s  r#r$z#align_attributes.<locals>.<genexpr>r*r%r�r�r�r�r�r�rr)ryr)r,�attsr-�aligns�spacings     r#�align_attributesr5s���� �"�"�D��A�A�D�A�A�A�A�A�D��9��6�"�T�)����,��%��!�h�h�v�g�t�A�v�g��7�7��]�� #�����$��� 8� 8��_���Kr%c	�v�td���}|}|s�d|d<t|���d��}t|��dkrHt	��}|�t
t|��fit|������t||��|�
��S)zoReturn string with MathML code corresponding to `tex_math`.

    Set `inline` to False for displayed math.
    z"http://www.w3.org/1998/Math/MathML)�xmlns�block�displayz\\r�)r�rr�rr^rrMr\r5r�r2)�tex_math�inline�	math_treer�r,s     r#�
tex2mathmlr=1s����?�@�@�@�I��D��?�&�	�)���X�&�&�,�,�U�3�3���t�9�9�q�=�=��5�5�D����V�C��I�I�>�>�&6�t�&<�&<�>�>�
?�
?�
?��T�8�$�$�$�� � �"�"�"r%)r�)T)KrFr�r��docutils.utils.mathrr�	mathalphar�r�r��updater�r��	mathfencer��	mathcloser��mathbin�mathrel�mathord�	mathpunct�mathopr�r�r�r�rrrr�rMrrr�r�r�r�rMrQrSr\r^r`rdrfrhrjrorqrsrurr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr.r5r=r r%r#�<module>rHs-
��"��
�	�	�	�����:�:�:�:�:�:�:�:��
������
�8�h��h���x�(�
��	+�+��&�%�%�'��� ��!�
�
�	�
���A�A�@�A�A�A�A�A�A�!'� &� (� +� (� ,� (� -� /� )� 3� 8� (����,��t���x���x���x�	�
�x���x�
��x���x���x���x���x���c���h���c���h�� �h�!��$
���K�)�*�*�*����K�(�)�)�)����K�)�*�*�*�

�
�>�
�
�>�
��>�
��>�	
�
�>�
��>�

��>�
��>�
��(�
��8�
��(�
���
��X�
� �h�!
�"�h�#
�$�h�%
�&�h�'
�(������5
�
�
�	�8
����$�%�%�%�	����$�%�%�%�	����$�%�%�%�	����&�'�'�'�	����#�$�$�$�	�������&.�%-����&.�%-�%-�%-�%-�%-�%-����4�
�!� �%�%�%�&�&�&�#�%�%�%�&�
�
��"(�'�'�'�'�'�(�&�'�'�'�(�
�
��$!1� 0� 0� 0� 0� 0� 0�
�
��!1� 0� 0� 0� 0�		�	��!� � ���������	
�
�� �$�!�!�!�!�+� �	�	��+/��B�B�*/��B�B�*/��B�B�*/��B�B�	��
��B�x�)-�q�")�+�+�,.�0�%�n�5�r�:�%�k�2�B�7��_�a�0�1�%�n�5���7K�L�%�k�2�_�a�4H�I�	
�	
�	�A�@�@������������
�
�
� u�u�u�u�u�u�u�u�R�����T���������4����>N�N�N�N�N�D�N�N�N������-���������-���������}���������}���������M���������]����=�=�=�=�=��=�=�=������I����������������������������������������,�����:���������:���������j���������T���������D����" ��������������J���������D���������T����"�"�"�:
"�
"�
"�6)�)�)�>9�9�9�b���,R�R�R�>7�7�7�ff8�f8�f8�X
����B���8���"���"	�	�	�*#�#�#�#�#�#r%

Youez - 2016 - github.com/yon3zu
LinuXploit