o
    i\M                     @   s  U d dl mZ d dlmZ dZdZdZdZdZdZ	d	Z
d
ZdZdZdZdZdZeeeeeeiZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[i eIdZeJd[eKd\eLd]eMd^eNd_eOd`ePdaeQdbeRdceSddeTdeeUdfeVdgeWdheXdieYdjeZdke[dliZ\e]e^e^f e_dm< dnZ`doZadpZbdqZcdrZddsZedtZfduZgdvZhdwZidxZjdyZkdzZld{Zmd|Znd}Zod~ZpdZqdZrdZsdZtdZudZvdZwdZxdZydZzdZ{dZ|dZ}dZ~dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdddddddddddddeeeeeeeeefZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd ZdZdZdZdZdZdZdZdZd	Zd
ZdZdZdZdZe4eeeeeeeeeefZdZdZdZdZdZdZdZdZdZdZdZ dZdZdZdZdZdZd Zd!Zd"Z	d#Z
d$Zd%ee^ d&e]e^ee^ f d'ee^ee^ f fd(d)Zi eed*d+d,ieed-d+d,ieed.d+d,ieed.d-d,d/eed*d+d,ieed.d+d,ieÐed0d+d,ieĐed1d+d,ieŐed2d+d,ieƐed,d3d4ieѐed0d+d,ieҐed,d3d5ieӐed,d3d6ieԐed7d+d,ieːed,d3d4ieed2d,d,d8eed4d+d,ieed.d+d,ieed0d+d,ieed7d+d,iiZe]e^ee^ee^ f f e_d9< ed,d3d4ied,d3d.ied,d3d2ied,d3d5ied,d3d7id:Ze]e^ee^ee^ f f e_d;< i eed0d+d,ied1d+d,id<Zg e*e+eבeeeeՑe֑eeؑeّe,e-e.e/e0e1e2e3eeeȑeݑeɑeʑeޑȇe͑eΑeϑeБeߑe4eeee5e6e7e8e9e:e;eeeeeeee ee<ee=e>e?e@eAeBeCeDeEeeeFeGeHe
R Zeeeee e'e(e#e$e)f
Zd=d>d>d?fd=d@d@d?fd=dAdAd?fd=dBdBd?fdCZe]e^ee^e]f f e_dD< dEdF e D ZdGdHdIdJifdKdHdIdLifdMdHdIdNifdOdHdIdPifdQdHdIdBifedHdIdRifdSdHdIdTifdUdHdIdVifdWdHdIdRifdXdHdIdYifdZdHdId[ifiZe]e^ee^e]f f e_d\< edHd]d^d_fedHd`d^d_fedHd`dad_fedHd`dbd_fiZe]e^ee^e]f f e_dc< i dddF eD i ededYdTd]dffeded]dgdhfeded]dgdhfededidjdkfeded]dgdldmfeded]dldnfeded]dldnfe
doi fedpi fe	dqi fedrdsd^ifedri fedrdsd^ifedri fe dri fe!dri fe#drdsd^ifi e$dri fe*dti fe+dti fe,dti fe-dti fe.dti fe/dti fe0dti fe1dti fe2dti fe3dtdud]ifemdvi fe4dti fe5dti fe6dti fe7dti fe8dti fi e9dti fe:dti fe;dti fe<dti fe'dti fe(dti fe=dwi fe>dwi fe?dwi fe@dwi feAdwi feBdwi feCdwi feDdwi fe)dwi feEdti feFdti fi eGdti feHdti fedxdydzifedxdyd{ifedxd|d}ifedxdydYifedxdyd~ifedxdydzifedxi fedxi fedxi fedxi fedxi fedxi fedxdyd~ifedxdydifedxdydifi edxdydifedxdydifedxdydifedxdydTifedxdydifedxdydYifeېddddfeܐddddfeݐddddfeސddddfeߐddydifeddydifeddd^ife dd^d^dfeאdddifeؐdddifeِdddifedddifedddife
dddifieeeddF erD ed=d]d]ddfed=d]d]dddfed=d]d]ddfedHi fedi fedi fedi fiei e&di fe%di fe`ddd2ifeadi febdi fecddd.ifedddd2ifeedi fefdi fegdi fehddd5ifeiddd7ifedi fedi fejdi fe	ddd7ifedi fi edi fedi fedi fedi feȐd=dddfeɐd=d`dgdgdfeʐdi fe̐d=i fe͐d=d`dgdgdfeΐd3i feϐd=d]dgddfeАd=i fedi fedi fedi fedi fedi feՐdi fe֐di fedi fedi fedi fed3i fed3i fed3i fed=i fi	ddF e\D Ze]e^ee^e]f f e_d< i e*di fe+ddd]ife,di fe-di fe.di fe/di fe0di fe1di fe2di fe3di fe4di fe5di fe6ddd]ife7di fe8di fe9ddud]ife:di fe;di fe<ddd`ife=dd]d]dfe>di fe?ddd]ife@di feDdi feAddud]ifeBdi feCdi feEddd]ifeFddd]ifeGdi feHdi fiZe]e^ee^e]e^e^f f f e_d< d,S (      defaultdict)Optional{}z{}[]z_^_^'z\primez\dprimez\trprimez\qprimez\leftz\middlez\rightz\abovez\abovewithdelimsz\atopz\atopwithdelimsz\binomz\bracez\brackz\cfracz\choosez\dbinomz\dfracz\fracz\genfracz\overz\tbinomz\tfracz\rootz\sqrtz\oversetz	\stackrelz	\undersetz\acutez\barz\brevez\checkz\dotz\ddotz\dddotz\ddddotz\gravez\hatz	\mathringz
\overbracez\overbracketz\overleftarrowz\overleftrightarrowz	\overlinez
\overparenz\overrightarrowz\tildez	\underbarz\underbracez\underbracketz\underleftarrowz
\underlinez\underparenz\underrightarrowz\underleftrightarrowz\vecz
\widecheckz\widehatz
\widetildez\xleftarrowz\xleftharpoondownz\xleftharpoonupz\xleftrightarrowz\xleftrightharpoonsz\xlongequalz\xmapstoz\xrightarrowz\xrightharpoondownz\xrightharpoonupz\xrightleftharpoonsz\xtofromz\xtwoheadleftarrowz\xtwoheadrightarrowz\xhookleftarrowz\xhookrightarrowz\xLeftarrowz\xRightarrowz\xLeftrightarrowz&#x2190;z&#x21BD;z&#x21BC;z&#x2194;z&#x21CB;z&#x003D;z&#x21A6;z&#x2192;z&#x21C1;z&#x21C0;z&#x21CC;z&#x21C4;z&#x219E;z&#x21A0;z&#x21A9;z&#x21AA;z&#x21D0;z&#x21D2;z&#x21D4;EXTENSIBLE_ARROWSz\emphz\hrefz\textz\textbfz\textitz\textmdz\textnormalz\textrmz\textsfz\textttz\textupz\beginz\endz\limitsz	\nolimitsz\intz\sumz\prod)z\limz\supz\infz\maxz\minz\newcommandz\newenvironmentz\defz\DeclareMathOperatorz\operatornamez\operatorname*z\operatornamewithlimitsz\{)z\arccosz\arcctgz\arcsinz\arctanz\arctgz\chz\cosz\coshz\cosecz\cotz\cotgz\cothz\cscz\ctgz\cthz\degz\dimz\expz\homz\kerz\lnz\lgz\logz\secz\shz\sinz\sinhz\tanz\tanhz\tgz\thz\argmaxz\argminz\detz\gcdz\intopz\injlimz\liminfz\limsupz\plimz\Prz\projlimz
\varinjlimz
\varliminfz
\varlimsupz\varprojlimz\modz\pmodz\podz\bmodz
\hdashlinez\hlinez\hfilz	\nonumberz\notagz\casesz\eqalignz
\eqalignnoz\displaylinesz\smallmatrixz	\substackz\splitz\alignz\align*z\matrixz\matrix*z\pmatrixz	\pmatrix*z\bmatrixz	\bmatrix*z\Bmatrixz	\Bmatrix*z\vmatrixz	\vmatrix*z\Vmatrixz	\Vmatrix*z\array\z\crz\:z\,z\\z\enspacez\!z\>z\hskipz\hspacez\kernz\mkernz\mskipz\mspacez\negthinspacez\negmedspacez\negthickspacez\nobreakspacez\spacez\Spacez\thickspacez
\thinspacez\qquadz\quadz\;z\bmz\Bbbz\boldz\boldsymbolz\mitz	\oldstylez\pmbz\scr\ttz\mathz\mathbbz\mathbfz\mathcalz	\mathfrakz\mathitz\mathrmz\mathchoicez\mathbinz
\mathclosez
\mathinnerz\mathnormalz\mathopz	\mathopenz\mathordz
\mathpunctz\mathrelz\mathscrz\mathsfz	\mathsfitz\mathttz\braz\braketz\bcancelz\boxedz\cancelz\classz\clapz\llapz	\mathclapz	\mathllapz	\mathrlapz\fboxz\hboxz\ketz\mboxz\rlapz\colorz	\colorboxz
\fcolorboxz
\textcolorz\footnotesizez\displaystylez
\textstylez\scriptstylez\scriptscriptstylez\stylez	\hphantomz
\mathstrutz\phantomz\strutz\vcenterz	\vphantomz	\idotsintz\LaTeXz\TeXz	\leftrootz\lowerz	\moveleftz
\moverightz\raisez\rulez
\shoveleftz\shoverightz\smashz\soutz\sidesetz\skewz\tagz\tag*z\unicodez\uprootz\verbz\xcancelz\notdefaultreplacementreturnc                    s   t  fdd|}|S )Nc                      s    S )N r   r   r   @/usr/local/lib/python3.10/dist-packages/latex2mathml/commands.py<lambda>  s    zfont_factory.<locals>.<lambda>r   )r   r   fontsr   r   r   font_factory  s   r   zdouble-struckfenceNzbold-italicbold)mimtextscriptfrakturitalicr   normalz
sans-serifzsans-serif-italic	monospace)r   r   LOCAL_FONTS)z\rmz\bfz\itz\sfr   OLD_STYLE_FONTS)z\calz\frakmoz2.470em)minsizemaxsizez2.047emz1.623emz1.2em)z\Biggz\biggz\Bigz\bigBIGc                 C   s6   i | ]\}\}}d D ]}|| |ddd|fq
qS )lmrtrue)stretchyr   r   ).0commandtagattribpostfixr   r   r   
<dictcomp>  s    
r/   z\Hugemstylemathsizez2.49emz\hugez2.07emz\LARGEz1.73emz\Largez1.44emz\largez0.85emz\normalsize1emz\scriptsizez0.7emz\smallz\tinyz0.5emz\Tinyz0.6emMSTYLE_SIZESr(   0)displaystylescriptlevelfalse12STYLESc              
   C   s,   i | ]}|t ttttttfvr|d i fqS )mtable)DISPLAYLINESEQALIGN	EQALIGNNOSMALLMATRIXSPLITALIGN	ALIGNSTAR)r*   matrixr   r   r   r/   '  s    r;   )
rowspacingcolumnspacingr5   0em)r5   rE   z0.1emz0.2778em)rD   rE   3pt)r5   rE   rD   )r5   rD   msubmsupmsubsupmfraclinethicknessmoveraccent
munderovermundermspacewidthz0.222emz0.167em	linebreaknewlinenegativethinmathspacenegativemediummathspacenegativethickmathspacethickmathspacethinmathspace2emz0.278emmpaddedz	-0.5width0px)lspacerR   z-1widthr]   menclosenotationdowndiagonalstrikeboxupdiagonalstrikehorizontalstrikez#updiagonalstrike downdiagonalstrikec                 C      i | ]}|d i fqS )r#   r   )r*   limitr   r   r   r/         prefix)r)   r   formz0.05em)r)   r   r]   rspacer.   msqrtmrootr   mathvariantmrowmphantomz0.22em)r]   ri   )r)   r]   ri   z0.17em)	separatorr]   ri   c                 C   rd   )rM   r   )r*   arrowr   r   r   r/     rf   CONVERSION_MAPz	&#x000B4;z	&#x000AF;r)   z	&#x002D8;z	&#x002C7;z	&#x002D9;z	&#x000A8;z	&#x020DB;z	&#x020DC;z	&#x00060;z	&#x0005E;z	&#x002DA;z&#x23DE;z&#x23B4;z	&#x02190;z	&#x02194;z	&#x02015;z	&#x023DC;z	&#x02192;z	&#x0007E;)r)   rN   z&#x23DF;z&#x23B5;z	&#x023DD;
DIACRITICS(  collectionsr   typingr   OPENING_BRACECLOSING_BRACEBRACESOPENING_BRACKETCLOSING_BRACKETSUBSUP	SUBSCRIPTSUPERSCRIPT
APOSTROPHEPRIMEDPRIMETRPRIMEQPRIMEPRIME_UPGRADELEFTMIDDLERIGHTABOVEABOVEWITHDELIMSATOPATOPWITHDELIMSBINOMBRACEBRACKCFRACCHOOSEDBINOMDFRACFRACGENFRACOVERTBINOMTFRACROOTSQRTOVERSETSTACKRELUNDERSETACUTEBARBREVECHECKDOTDDOTDDDOTDDDDOTGRAVEHATMATHRING	OVERBRACEOVERBRACKETOVERLEFTARROWOVERLEFTRIGHTARROWOVERLINE	OVERPARENOVERRIGHTARROWTILDEUNDERBAR
UNDERBRACEUNDERBRACKETUNDERLEFTARROW	UNDERLINE
UNDERPARENUNDERRIGHTARROWUNDERLEFTRIGHTARROWVEC	WIDECHECKWIDEHAT	WIDETILDE
XLEFTARROWXLEFTHARPOONDOWNXLEFTHARPOONUPXLEFTRIGHTARROWXLEFTRIGHTHARPOONS
XLONGEQUALXMAPSTOXRIGHTARROWXRIGHTHARPOONDOWNXRIGHTHARPOONUPXRIGHTLEFTHARPOONSXTOFROMXTWOHEADLEFTARROWXTWOHEADRIGHTARROWXHOOKLEFTARROWXHOOKRIGHTARROWXLEFTARROWUPPERXRIGHTARROWUPPERXLEFTRIGHTARROWUPPERr   dictstr__annotations__EMPHHREFTEXTTEXTBFTEXTITTEXTMD
TEXTNORMALTEXTRMTEXTSFTEXTTTTEXTUPBEGINENDLIMITSNOLIMITSINTEGRAL	SUMMATIONPRODUCTLIMIT
NEWCOMMANDNEWENVIRONMENTDEFDECLAREMATHOPERATOROPERATORNAMEOPERATORNAMESTAROPERATORNAMEWITHLIMITSLBRACE	FUNCTIONSARGMAXARGMINDETERMINANTGCDINTOPINJLIMLIMINFLIMSUPPLIMPRPROJLIM	VARINJLIM	VARLIMINF	VARLIMSUP
VARPROJLIMMODPMODPODBMOD	HDASHLINEHLINEHFILNONUMBERNOTAGCASESr=   r>   r<   r?   SUBSTACKr@   rA   rB   MATRICES	BACKSLASHCARRIAGERETURNCOLONCOMMADOUBLEBACKSLASHENSPACEEXCLAMATIONGREATERTHANHSKIPHSPACEKERNMKERNMSKIPMSPACENEGTHINSPACENEGMEDSPACENEGTHICKSPACENOBREAKSPACESPACE
SPACEUPPER
THICKSPACE	THINSPACEQQUADQUAD	SEMICOLONBMBLACKBOARDBOLDBOLD
BOLDSYMBOLMITOLDSTYLEPMBSCRTTMATHMATHBBMATHBFMATHCALMATHFRAKMATHITMATHRM
MATHCHOICEMATHBIN	MATHCLOSE	MATHINNER
MATHNORMALMATHOPMATHOPENMATHORD	MATHPUNCTMATHRELMATHSCRMATHSFMATHSFITMATHTTBRABRAKETBCANCELBOXEDCANCELCLASSCLAPLLAPMATHCLAPMATHLLAPMATHRLAPFBOXHBOXKETMBOXRLAPCOLORCOLORBOX	FCOLORBOX	TEXTCOLORFOOTNOTESIZEDISPLAYSTYLE	TEXTSTYLESCRIPTSTYLESCRIPTSCRIPTSTYLESTYLEHPHANTOM	MATHSTRUTPHANTOMSTRUTVCENTERVPHANTOMMATH_NON_FONT_COMMANDSIDOTSINTLATEXTEXLEFTROOTLOWERMOVELEFT	MOVERIGHTRAISERULE	SHOVELEFT
SHOVERIGHTSMASHSOUTSIDESETSKEWTAGTAGSTARUNICODEUPROOTVERBXCANCELNOTr   r!   r"   GLOBAL_FONTSCOMMANDS_WITH_ONE_PARAMETERCOMMANDS_WITH_TWO_PARAMETERSr&   tupleitemsBIG_OPEN_CLOSEr3   r:   rq   rr   r   r   r   r   <module>   s   	
!>	
&(	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEH&

""

"
#
$&
'(
)
*
+,
-
/
0
1
2
3
4
5
6
78
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
QSTUVWX
Y
Z
[
\
]
^_`abcdefgijklmnoprstuyz{|}


    
  
	  
  
  
      
  
  
          
    
  
  
  
  
      
  
   !  
"  #  
$  
%  
&  
'  
(  
)  
*





  3 " 7







	














2