§
    OŠtj#  ã                    ó°  — d dl mZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 ddlmZ dZdZd	Zd
ZdZdZdZde› e› �e› e› d�e› de› e› �e› e› d�de› e› �e› e› d�e› de› e› �e› e› d�de› e› �e› e› d�e› de› e› �e› e› d�ddddddde› e› �e› e› d�e› de› e› �e› e› d�de› e› �e› e› d�e› de› e› �e› e› d�de› e› �e› e› d�e› de› e› �e› e› d�iZd„ e                     ¦   «         D ¦   «         Zde› e› �d e› de› e› �d!de› e› �d"e› de› e› �d#de› e› �d$e› de› e› �d%dd&dd'dd(de› e› �d)e› de› e› �d*de› e› �d+e› de› e› �d,de› e› �d-e› de› e› �d.iZe› e› d�d/e› e› d�d0e› e› d�d1e› e› d�d2e› e› d�d3e› e› d�d4dd5dd6dd7e› e› d�d8e› e› d�d9e› e› d�d:e› e› d�d;e› e› d�d<e› e› d�d=iZd>„ Zd?d@dAgiZ edB¬C¦  «        dHdF„¦   «         ZdGS )Ié    )Úimport_module)Údoctest_depends_on)Úcompile)ÚLarkLaTeXParserÚTransformToSymPyExprÚparse_latex_larké   )ÚLaTeXParsingErrorz
\s*[{]*\s*z
\s*[}]*\s*z(?<!\\left)z\\begin{matrix}z\\end{matrix}z\\begin{array}{.*?}z\\end{array}z\\left\(z	\\right\)z\(z\)z\\left\[z	\\right\]z\[z\]z\\left\|z	\\right\|z\|z\\begin{pmatrix}z\\end{pmatrix}z\\begin{bmatrix}z\\end{bmatrix}z\\begin{vmatrix}z\\end{vmatrix}c                 ó   — i | ]\  }}||“Œ	S © r   )Ú.0ÚkÚvs      úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/parsing/latex/__init__.pyú
<dictcomp>r   $   s   € Ð<Ð<Ð<™d˜a �Q˜Ð<Ð<Ð<ó    z\left(\begin{matrix}z(\begin{matrix}z\left[\begin{matrix}z[\begin{matrix}z\left|\begin{matrix}z|\begin{matrix}z\begin{pmatrix}z\begin{bmatrix}z\begin{vmatrix}z&\left(\begin{array}{COLUMN_SPECIFIERS}z!(\begin{array}{COLUMN_SPECIFIERS}z&\left[\begin{array}{COLUMN_SPECIFIERS}z![\begin{array}{COLUMN_SPECIFIERS}z&\left|\begin{array}{COLUMN_SPECIFIERS}z!|\begin{array}{COLUMN_SPECIFIERS}z\end{matrix}\right)z\end{matrix})z\end{matrix}\right]z\end{matrix}]z\end{matrix}\right|z\end{matrix}|z\end{pmatrix}z\end{bmatrix}z\end{vmatrix}z\end{array}\right)z\end{array})z\end{array}\right]z\end{array}]z\end{array}\right|z\end{array}|c                 óˆ  ‡‡— g }t           D ]•Št           ‰         Št          ‰¦  «        }t          ‰¦  «        }|                     ˆfd„|                     | ¦  «        D ¦   «         ¦  «         |                     ˆfd„|                     | ¦  «        D ¦   «         ¦  «         Œ–|                     d„ ¬¦  «         t          |¦  «        dz  dk    r|                     d¦  «         d„ t          |d	d	d…         |dd	d…         ¦  «        D ¦   «         }|D �]®}d
}|d         dz
  }|dk     rd}d}d
}|d         dz   }|t          | ¦  «        k    rt          | ¦  «        }d}|d         t          v rQd|d         › d|d         › dt          t          |d                           › d|› | ||…         › |› �
}	t          |	¦  «        ‚|d         €Qd|d         › d|d         › dt          t           |d                           › d|› | ||…         › |› �
}	t          |	¦  «        ‚t           |d                  }
|d         dk    rd
nd}|d         t          | ¦  «        k     rd
nd}|d         |
k    r^dt          |
         › d|d         › d|d         › d|d         › d|d         › d|› | |d         |d         …         › |› �}	t          |	¦  «        ‚�Œ°d	S )z8Report mismatched, excess, or missing matrix delimiters.c                 ój   •— g | ]/}g |                      ¦   «         ¢|                     ¦   «         ‘‰‘R ‘Œ0S r   ©ÚspanÚgroup)r   ÚmÚbegin_delims     €r   ú
<listcomp>z+check_matrix_delimiters.<locals>.<listcomp>T   sZ   ø€ ð Dð Dð DØ()ð$˜Ÿš™œð $ !§'¢'¡)¤)ð $Ø"ð$ð $ð Dð Dð Dr   c                 ój   •— g | ]/}g |                      ¦   «         ¢|                     ¦   «         ‘‰‘R ‘Œ0S r   r   )r   r   Ú	end_delims     €r   r   z+check_matrix_delimiters.<locals>.<listcomp>V   sZ   ø€ ð Bð Bð BØ&'ð"˜Ÿš™œð " !§'¢'¡)¤)ð "Ø ð"ð "ð Bð Bð Br   c                 ó   — | d         S )Nr   r   )Úxs    r   ú<lambda>z)check_matrix_delimiters.<locals>.<lambda>Y   s
   € ˜a œd€ r   )Úkeyé   r	   )NNNNc                 ó"   — g | ]\  }}g |¢|¢R ‘ŒS r   r   )r   r   Úys      r   r   z+check_matrix_delimiters.<locals>.<listcomp>`   s&   € ÐAÐAÐA™&˜1˜aˆXˆqˆX�1ˆXˆXÐAÐAÐAr   Nz...r   é
   Ú é   zExtra 'z' at index z or missing corresponding 'z' in LaTeX string: é   é   z
Expected 'z' to close the 'z but found 'é   é   z of LaTeX string instead: )ÚMATRIX_DELIMSÚrcompileÚextendÚfinditerÚsortÚlenÚappendÚzipÚEND_DELIM_REPRÚBEGIN_DELIM_REPRÚMATRIX_DELIMS_INVr
   )Ú	latex_strÚspansÚpÚqr   Ú	sellipsisÚsÚ	eellipsisÚeÚerrÚcorrect_end_regexr   r   s              @@r   Úcheck_matrix_delimitersr@   K   sÞ  øø€ à€EÝ$ð 	Cð 	CˆÝ! +Ô.ˆ	å�[Ñ!Ô!ˆÝ�YÑÔˆà�Šð Dð Dð Dð DØ-.¯ZªZ¸	Ñ-BÔ-BðDñ Dô Dñ 	Eô 	Eð 	Eà�Šð Bð Bð Bð BØ+,¯:ª:°iÑ+@Ô+@ðBñ Bô Bñ 	Cô 	Cð 	Cð 	Cð 
‡J‚J�N�N€JÑ$Ô$Ð$Ý
ˆ5�z„z�A�~˜ÒÐð 	�ŠÐ-Ñ.Ô.Ð.àAÐA¥C¨¨c¨c°¨c¬
°E¸!¸$¸Q¸$´KÑ$@Ô$@ÐAÑAÔA€EØð .)ñ .)ˆð ˆ	ØˆaŒD�2‰IˆØˆqŠ5ˆ5ØˆAØˆIàˆ	ØˆaŒD�2‰IˆØ�s�9‰~Œ~ÒÐÝ�I‘”ˆAØˆIàˆQŒ4•>Ð!Ð!ð"˜Q˜qœTð "ð "¨a°¬dð "ð "å'Õ(9¸!¸A¼$Ô(?Ô@ð"ð "ð (1ð"ð 3<¸A¸a¸C´.ð"ð  ð	"ð "ˆCõ
 $ CÑ(Ô(Ð(àˆQŒ4ˆ<ð"˜Q˜qœTð "ð "¨a°¬dð "ð "å%¥m°A°a´DÔ&9Ô:ð"ð "ð (1ð"ð 3<¸A¸a¸C´.ð"ð  ð	"ð "ˆCõ
 $ CÑ(Ô(Ð(å)¨!¨A¬$Ô/ÐØ˜qœT AšX˜X�E�E¨2ˆ	Ø˜qœT¥C¨	¡N¤NÒ2Ð2�E�E¸ˆ	ØˆQŒ4Ð$Ò$Ð$ð"Ý%Ð&7Ô8ð"ð "à$% a¤Dð"ð "à56°q´Tð"ð "ð ˜qœTð"ð "ð /0°¬dð"ð "ð '0ð	"ð 2;¸1¸Q¼4ÀÀ!Ä¸9Ô1Eð	"ð
  ð"ð "ˆCõ $ CÑ(Ô(Ð(ñ %ðO.)ð .)r   )Úparse_latexÚantlr4Úlark)rB   rC   )ÚmodulesFÚantlrc                 óØ   — t          | ¦  «         |dk    r.t          dddgi¬¦  «        }|�|                     | |¦  «        S dS |dk    rt          | ¦  «        S t	          d|› d	�¦  «        ‚)
a|  Converts the input LaTeX string ``s`` to a SymPy ``Expr``.

    Parameters
    ==========

    s : str
        The LaTeX string to parse. In Python source containing LaTeX,
        *raw strings* (denoted with ``r"``, like this one) are preferred,
        as LaTeX makes liberal use of the ``\`` character, which would
        trigger escaping in normal Python strings.
    backend : str, optional
        Currently, there are two backends supported: ANTLR, and Lark.
        The default setting is to use the ANTLR backend, which can be
        changed to Lark if preferred.

        Use ``backend="antlr"`` for the ANTLR-based parser, and
        ``backend="lark"`` for the Lark-based parser.

        The ``backend`` option is case-sensitive, and must be in
        all lowercase.
    strict : bool, optional
        This option is only available with the ANTLR backend.

        If True, raise an exception if the string cannot be parsed as
        valid LaTeX. If False, try to recover gracefully from common
        mistakes.

    Examples
    ========

    >>> from sympy.parsing.latex import parse_latex
    >>> expr = parse_latex(r"\frac {1 + \sqrt {\a}} {\b}")
    >>> expr
    (sqrt(a) + 1)/b
    >>> expr.evalf(4, subs=dict(a=5, b=2))
    1.618
    >>> func = parse_latex(r"\int_1^\alpha \dfrac{\mathrm{d}t}{t}", backend="lark")
    >>> func.evalf(subs={"alpha": 2})
    0.693147180559945
    rE   z&sympy.parsing.latex._parse_latex_antlrÚfromlistÚX)Úimport_kwargsNrC   zUsing the 'z/' backend in the LaTeX parser is not supported.)r@   r   rA   r   ÚNotImplementedError)r;   ÚstrictÚbackendÚ_latexs       r   rA   rA   ”   s©   € õV ˜AÑÔÐà�'ÒÐÝØ4Ø%¨ uÐ-ð/ñ /ô /ˆð ÐØ×%Ò% a¨Ñ0Ô0Ð0ð Ðà	�FÒ	Ð	Ý Ñ"Ô"Ð"å!ð #?°ð #?ð #?ð #?ñ @ô @ð 	@r   N)FrE   )Úsympy.externalr   Úsympy.utilities.decoratorr   Úrer   r,   Úsympy.parsing.latex.larkr   r   r   Úerrorsr
   ÚIGNORE_LÚIGNORE_RÚNO_LEFTÚBEGIN_AMS_MATÚEND_AMS_MATÚ	BEGIN_ARRÚEND_ARRr+   Úitemsr5   r4   r3   r@   Ú__doctest_requires__rA   r   r   r   ú<module>r\      s  ðØ (Ð (Ð (Ð (Ð (Ð (Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø "Ð "Ð "Ð "Ð "Ð "à \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \à %Ð %Ð %Ð %Ð %Ð %ð €Ø€Ø
€Ø"€Ø€Ø"€	Ø
€ð 7˜XÐ6 }Ð6Ð6¸KÐ8\ÈÐ8\Ð8\Ð8\ØÐ9Ð9 Ð9¨-Ð9Ð9¸{Ð;XÈHÐ;XÐ;XÐ;XØ6˜XÐ6 }Ð6Ð6¸KÐ8\ÈÐ8\Ð8\Ð8\ØÐ9Ð9 Ð9¨-Ð9Ð9¸{Ð;XÈHÐ;XÐ;XÐ;XØ6˜XÐ6 }Ð6Ð6¸KÐ8\ÈÐ8\Ð8\Ð8\ØÐ9Ð9 Ð9¨-Ð9Ð9¸{Ð;XÈHÐ;XÐ;XÐ;XØ$Ð&7Ø$Ð&7Ø$Ð&7Ø2˜XÐ2 yÐ2Ð2¸Ð4TÀÐ4TÐ4TÐ4TØÐ5Ð5 Ð5¨)Ð5Ð5¸7Ð7PÀHÐ7PÐ7PÐ7PØ2˜XÐ2 yÐ2Ð2¸Ð4TÀÐ4TÐ4TÐ4TØÐ5Ð5 Ð5¨)Ð5Ð5¸7Ð7PÀHÐ7PÐ7PÐ7PØ2˜XÐ2 yÐ2Ð2¸Ð4TÀÐ4TÐ4TÐ4TØÐ5Ð5 Ð5¨)Ð5Ð5¸7Ð7PÀHÐ7PÐ7PÐ7Pð€ð" =Ð< m×&9Ò&9Ñ&;Ô&;Ð<Ñ<Ô<Ð ð : Ð9¨-Ð9Ð9Ð;SØÐ<Ð< 8Ð<¨]Ð<Ð<Ð>PØ9 Ð9¨-Ð9Ð9Ð;SØÐ<Ð< 8Ð<¨]Ð<Ð<Ð>PØ9 Ð9¨-Ð9Ð9Ð;SØÐ<Ð< 8Ð<¨]Ð<Ð<Ð>PØ'Ð);Ø'Ð);Ø'Ð);Ø5 Ð5¨)Ð5Ð5Ð7aØÐ8Ð8 8Ð8¨YÐ8Ð8Ð:^Ø5 Ð5¨)Ð5Ð5Ð7aØÐ8Ð8 8Ð8¨YÐ8Ð8Ð:^Ø5 Ð5¨)Ð5Ð5Ð7aØÐ8Ð8 8Ð8¨YÐ8Ð8Ð:^ðÐ ð$ "Ð6 8Ð6Ð6Ð6Ð8OØ!Ð/ 8Ð/Ð/Ð/Ð1AØ!Ð6 8Ð6Ð6Ð6Ð8OØ!Ð/ 8Ð/Ð/Ð/Ð1AØ!Ð6 8Ð6Ð6Ð6Ð8OØ!Ð/ 8Ð/Ð/Ð/Ð1AØ#Ð%5Ø#Ð%5Ø#Ð%5ØÐ2˜xÐ2Ð2Ð2Ð4JØÐ+˜xÐ+Ð+Ð+¨_ØÐ2˜xÐ2Ð2Ð2Ð4JØÐ+˜xÐ+Ð+Ð+¨_ØÐ2˜xÐ2Ð2Ð2Ð4JØÐ+˜xÐ+Ð+Ð+¨_ð€ð$D)ð D)ð D)ðL )¨8°VÐ*<Ð=Ð ð ÐÐ.Ð/Ñ/Ô/ð7@ð 7@ð 7@ñ 0Ô/ð7@ð 7@ð 7@r   