
     Ic                       d Z ddlmZ dZddlZddlZddlZddlZddlZej	        dk     rddl
mZ ddlmZ nddlmZ 	 ddlZn# e$ r ddlmc mZ Y nw xY wddlZddlmZmZmZmZmZ dd	lmZ dd
lmZ ddlmZmZ ej	        dk    reZ  G d dej!                  Z! G d de"          Z# G d de$          Z% G d de"          Z&de&_'        de&_(        de&_)        de&_*        de&_+        de&_,        de&_-        de&_.        de&_/        de&_0        de&_1        de&_2        d  Z3ej4        5                    ej4        6                    ej4        7                    e8                    d!          Z9 ee9d"#          5 Z:e:D ]uZ;e;<                    d$          Z;e;=                    d%          s-e;>                    d&          Z?e?sE e3e:          Z@e?d'v re@<                                Z@ eAe&e?e@           v	 ddd           n# 1 swxY w Y    G d( d)e"          ZB G d* d+e"          ZC G d, d-e"          ZD G d. d/ejE                  ZFdS )0zLaTeX2e document tree Writer.    )divisionreStructuredTextN)   r   )open)url2pathname)frontendnodes	languageswritersutils)
SafeString)
writer_aux)pick_math_environmentunichar2texc                      e Zd ZdZ	 dZej                            ej                            e	                    Z
d                    g d          Zg dZddg dd	gd
difddgd
difddgddgddddfddgddej        dfddgddej        dfdd gg d!d"dd#fd$d%gd&d'd(ej        d)fd*d+gd'd,ej        d-fd.d/gd0dd1fd2d3gd4dej        dfd5d6gd7ej        d8gd9fd:d;gd
eifd<ez  d=ged>d?fd@dAgdBdej        dfdCdDgdEdej        dfdFdGgd4dej        dfdHdIgdJdej        dfdKdLgd4dej        dfdMdNgdOdej        dfdPdQgd4dej        dfdRdSgd
dTifdUdVgd
d&ifdWdXgd4dej        dfdYdZgdd[d\fd]d^gddej        dfd_d`gddad\fdbdcgddded?fdfdggd
d&ifdhdigdej        djfdkdlgdmgddnej        edofdpdqgd
d&ifdrdsgd
dtifdudvgd
d&ifdwdxgd
d&ifdydzgd4dej        dfd{d|gd}dej        dfd~dgddej        dfddgddej        dfddgdBdej        dfR fZddiZdZdZdZedz   ZdZ	 d Zd Zd Zd ZdS )Writer)latexlatex2ezdefault.tex
)z% PDF Standard Fontsz\usepackage{mathptmx} % Timesz\usepackage[scaled=.90]{helvet}z\usepackage{courier})booktabs
borderlesscolwidths-autonolinesstandardzLaTeX-Specific OptionsNz1Specify LaTeX documentclass.  Default: "article".z--documentclassdefaultarticlezcSpecify document options.  Multiple options can be given, separated by commas.  Default: "a4paper".z--documentoptionsa4paperz\Format for footnote references: one of "superscript" or "brackets".  Default: "superscript".z--footnote-referencessuperscriptbracketsz<format>trim_footnote_reference_space)choicesr   metavar	overridesz1Use \cite command for citations. (future default)z--use-latex-citations
store_true)r   action	validatorzZUse figure floats for citations (might get mixed with real figures). (provisional default)z--figure-citationsuse_latex_citationsstore_false)destr%   r&   zyFormat for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none".  Default: "dash".z--attributiondashparenthesesparensnoner+   )r!   r   r"   zSpecify LaTeX packages/stylesheets. A style is referenced with "\usepackage" if extension is ".sty" or omitted and with "\input" else.  Overrides previous --stylesheet and --stylesheet-path settings.z--stylesheet z<file[,file,...]>stylesheet_path)r   r"   r#   r&   zComma separated list of LaTeX packages/stylesheets. Relative paths are expanded if a matching file is found in the --stylesheet-dirs. With --link-stylesheet, the path is rewritten relative to the output *.tex file. z--stylesheet-path
stylesheet)r"   r#   r&   z7Link to the stylesheet(s) in the output file. (default)z--link-stylesheetembed_stylesheet)r)   r%   z^Embed the stylesheet(s) in the output file. Stylesheets must be accessible during processing. z--embed-stylesheetFzComma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. Default: ".".z--stylesheet-dirsz<dir[,dir,...]>.)r"   r&   r   zlCustomization by LaTeX code in the preamble. Default: select PDF standard fonts (Times, Helvetica, Courier).z--latex-preamblez)Specify the template file. Default: "%s".z
--templatez<file>)r   r"   z%Table of contents by LaTeX. (default)z--use-latex-tocTz5Table of contents by Docutils (without page numbers).z--use-docutils-tocuse_latex_tocz*Add parts on top of the section hierarchy.z--use-part-sectionz<Attach author and date to the document info table. (default)z--use-docutils-docinfouse_latex_docinfoz-Attach author and date to the document title.z--use-latex-docinfoz$Typeset abstract as topic. (default)z--topic-abstractuse_latex_abstractz;Use LaTeX abstract environment for the document's abstract.z--use-latex-abstractzSColor of any hyperlinks embedded in text. Default: "blue" (use "false" to disable).z--hyperlink-colorbluez-Additional options to the "hyperref" package.z--hyperref-optionszJEnable compound enumerators for nested enumerated lists (e.g. "1.2.a.ii").z--compound-enumeratorszCDisable compound enumerators for nested enumerated lists. (default)z--no-compound-enumeratorscompound_enumerators)r%   r)   zzEnable section ("." subsection ...) prefixes for compound enumerators.  This has no effect without --compound-enumerators.z --section-prefix-for-enumeratorsz<Disable section prefixes for compound enumerators. (default)z#--no-section-prefix-for-enumeratorssection_prefix_for_enumeratorszeSet the separator between section number and enumerator for compound enumerated lists.  Default: "-".z--section-enumerator-separator-z<char>zdWhen possible, use the specified environment for literal-blocks. Default: "" (fall back to "alltt").z--literal-block-envz4Deprecated alias for "--literal-block-env=verbatim".z--use-verbatim-when-possible)r%   r&   zTable style. "standard" with horizontal and vertical lines, "booktabs" (LaTeX booktabs style) only horizontal lines above and below the table and below the header, or "borderless". Default: "standard"z--table-styler   append)r   r"   r%   r&   r!   zLaTeX graphicx package option. Possible values are "dvipdfmx", "dvips", "dvisvgm", "luatex", "pdftex", and "xetex".Default: "".z--graphicx-optionzLaTeX font encoding. Possible values are "", "T1" (default), "OT1", "LGR,T1" or any other combination of options to the `fontenc` package. z--font-encodingT1zPer default the latex-writer puts the reference title into hyperreferences. Specify "ref*" or "pageref*" to get the section number or the page number.z--reference-labelzVSpecify style and database for bibtex, for example "--use-bibtex=mystyle,mydb1,mydb2".z--use-bibtexzJUse legacy functions with class value list for \DUtitle and \DUadmonition.z--legacy-class-functionszjUse \DUrole and "DUclass" wrappers for class values. Place admonition content in an environment. (default)z--new-class-functionslegacy_class_functionszLUse legacy algorithm to determine table column widths. (provisional default)z--legacy-column-widthszDUse new algorithm to determine table column widths. (future default)z--new-column-widthslegacy_column_widthszsFootnotes with numbers/symbols by Docutils. (default) (The alternative, --latex-footnotes, is not implemented yet.)z--docutils-footnotessectnum_depthr   zlatex2e writer)r   zlatex writers)head_prefixrequirementslatex_preambler1   	fallbackspdfsetup	titledata)titlesubtitlebody_pre_docinfodocinfo
dedicationabstractbodyc                 \    t           j                            |            t          | _        d S N)r   r   __init__LaTeXTranslatortranslator_classselfs    Alib/python3.11/site-packages/docutils/writers/latex2e/__init__.pyrO   zWriter.__init__
  s&    %%% /    c                 \    t           j                            |           t          j        gz   S rN   )r   r   get_transformsr   AdmonitionsrR   s    rT   rW   zWriter.get_transforms  s*    n++D115	 	 	rU   c           	         |                      | j                  }| j                            |           | j        D ]!}t	          | |t          ||                     "	 t          | j        j        j        d          }nS# t          $ rF t          t          j                            | j        | j        j        j                  d          }Y nw xY wt          j        |                                          }|                                 |                                  |                    | j                  | _        d S )Nutf8encoding)rQ   document	walkaboutvisitor_attributessetattrgetattrr   settingstemplateIOErrorospathjoindefault_template_pathstringTemplatereadcloseassemble_parts
substitutepartsoutput)rS   visitorparttemplate_filerc   s        rT   	translatezWriter.translate  sB   ''66(((+ 	8 	8DD$ 6 67777	H !7!@*02 2 2MM 	H 	H 	H d.HM*3"5 "5@FH H HMMM	H ?=#5#5#7#788))$*55s    B   ACCc                 .   t           j                            |            | j        D ]m}t	          | |          }|| j        v r5|r|                    d           d                    |          | j        |<   Pd                    |          | j        |<   ndS )z9Assemble the `self.parts` dictionary of output fragments.r/   r   N)	r   r   rm   r_   ra   
head_partsr;   rg   ro   )rS   rr   liness      rT   rm   zWriter.assemble_parts)  s    %%d++++ 	2 	2DD$''Et& 2 %LL$$$#'99U#3#3
4   $&775>>
4  	2 	2rU   )__name__
__module____qualname__	supporteddefault_templatere   rf   dirnameabspath__file__rh   rg   default_preambletable_style_valuesr   validate_booleanvalidate_comma_separated_listsettings_specsettings_defaultsconfig_sectionconfig_section_dependenciesrv   r_   rp   rO   rW   rt   rm    rU   rT   r   r   -   si       $I'$GOOBGOOH,E,EFFyy "; "; "; < <1 1 1
 	!{	

=
i
"
$ {	
6
i
"
${	
1"
#$j1m 79 9
:{	
 ?"
#l 13 3
4{	
"G
 (M 13 3
4#{	
,J
???5 5
6-{	
6M 
%8) >@ @
A7{	
FF 
) >@ @
AG{	
T D
%
?
?
AU{	
Z?
 | 13 3
4[{	
d 
' >e 	
e{	
rL
&
'
)s{	
z 68H
H.&8
<
<
>{{	
@ 2
l 13 3
4A{	
H B
 "m 13 3
4I{	
P 7
 | 13 3
4Q{	
X I#
$&- 13 3
4Y{	
` : 
!| 13 3
4a{	
h 1
'= 13 3
4i{	
p H!
"| 13 3
4q{	
x6
)V!4
6y{	
~ :
 9b/
3{	
B#
$| 13 3
4C{	
L&
'",B
C
C
EM{	
TM-
.l 13 3
4U{	
^ I0
1",L
M
M
O_{	
d:+
,h
/
/
1e{	
l0 
!b/
m{	
t A)
*! 13 3
4u{	
|  
!l  >(	* *	
+}{	
P 
b/
Q{	
\H 
d
	
]{	
f' 
b/	
g{	
p0
b/
q{	
x*%
&! 13 3
4y{	
DB"
#+" 13 3
4E{	
P"#
$! 13 3
4Q{	
\ 
!)" 13 3
4]{	
jJ"#"!24 4
5k{	
 {	
~M@ )! %N">FJ# 'I I F.0 0 0
	 	 	6 6 6&2 2 2 2 2rU   r   c                   *   e Zd ZdZi dddddddd	d
dddddddddddddddddddddd d!d"d#i d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEi dFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcddd_dedfi dgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{drd|dtd}d~ddddddZ ed e                                D                       ZdZdddZddZ	d Z
d Zd ZdS )BabelzLanguage specifics for LaTeX.af	afrikaansararabicbg	bulgarianbrbretoncacatalancsczechcywelshdadanishdengermanzde-1901germanzde-AT	naustrianz
de-AT-1901austriandsblowersorbianelgreekz
el-polytonpolutonikogreekenenglishzen-AU
australianzen-CAcanadianzen-GBbritishzen-NZ
newzealandzen-USamericaneo	esperantoesspanishetestonianeubasquefifinnishfrfrenchzfr-CAcanadiengairishz
grc-ibycusibycusglgalicianhehebrewhrcroatianhsbuppersorbianhumagyariainterlinguaidbahasaiis	icelandicititalianjajapanesekkkazakhlalatinlt
lithuanianlvlatvianmn	mongolianmsbahasamnbnorsknldutchnnnynorsknoplpolishptportugeszpt-BRbrazilroromanianrurussiansesaminzsh-Cyrlserbianczsh-Latnserbianskslovakslslovenesqalbaniansrzsr-Latnsvswedishtrturkishuk	ukrainianvivietnamc                 @    g | ]\  }}|                                 |fS r   )lower).0kvs      rT   
<listcomp>zBabel.<listcomp>  s(    OOOfq!AGGIIq>OOOrU   z,Language "%s" not supported by LaTeX (babel)z.<>)r   r   Nc                 V    || _         |                     |          | _        i | _        d S rN   )reporterlanguage_namelanguageotherlanguages)rS   language_coder  s      rT   rO   zBabel.__init__  s,     **=99 rU   c                     t           j                                                  } |j         j        pd           dd                    |          z  g _        g }d                     fd|D                       D ]}||vr|                    |           |r0 j                            dd                    |          z             d|v r j                            d           d	|v r j                            g d
           d|v r j                            g d           |d         dk    r6d j                                        v r xj        ddd j        z  gz  c_        d                     j                  S )z7Return the babel call with correct options and settingsr   z\usepackage[%s]{babel},r/   c                 F    g | ]}j                             |d           S )r/   )active_charsget)r  lrS   s     rT   r  z"Babel.__call__.<locals>.<listcomp>  s,    JJJ1$+//266JJJrU   z#\AtBeginDocument{\shorthandoff{%s}}r   z)\deactivatetilden % restore ~ in Galicianr   )\makeatletterz+  \addto\extrasestonian{\bbl@deactivate{~}}\makeatotherr   )r  z)  \addto\extrasbasque{\bbl@deactivate{~}}r  r   zE% Prevent side-effects if French hyphenation patterns are not loaded:z\frenchbsetup{StandardLayout}z4\AtBeginDocument{\selectlanguage{%s}\noextrasfrench}r   )sortedr	  keysr;   r  rg   setupextend)rS   r
   
shorthandscs   `   rT   __call__zBabel.__call__  s   4.335566		3)444/#((92E2EEF

JJJJ	JJJKK 	% 	%A
" %!!!$$$ 	5JD "
 3 34 5 5 5 " 	LJJKKK" 	1J 0 0 0 1 1 1 y  	1J 0 0 0 1 1 1 bMY& 	@+00222	@JJ 6;/15?@ @JJ
 yy$$$rU   c                     t          j        |          D ]!}	 | j        |         c S # t          $ r Y w xY w| j        "| j                            | j        |z             dS )z,Return TeX language name for `language_code`Nr/   )r   normalize_language_taglanguage_codesKeyErrorr  warningwarn_msg)rS   r
  tags      rT   r  zBabel.language_name  s    />> 	 	C*3////   = 	AM!!$--"?@@@rs   '
44c                     | j         S rN   )r  rR   s    rT   get_languagezBabel.get_language  s
    }rU   rN   )rx   ry   rz   __doc__r  dictitemsr   r  rO   r  r  r#  r   rU   rT   r   r   7  s       ''K
K
 	K

 	K
 	K
 		K
 	K
 	K
 	K
 		K
 	K
 	K
 	
K
  	!K
" 	#K
$ 	)%K
& 		'K
( 	)K
 K
* 	
+K
, 		-K
. 	/K
0 	
1K
2 	3K
4 		5K
6 	
7K
8 	9K
< 		=K
> 	?K
@ 	
AK
B 	CK
F 	GK
H 	
IK
J 	KK
L 	
MK
N 	OK
 K
 K
P 	QK
R 	SK
T 		UK
V 	WK
X 		YK
Z 	
[K
\ 	]K
^ 	_K
` 	aK
b 		cK
d 	eK
f 		gK
h 	iK
j 	kK
l 		mK
n 	oK
p 	qK
 K
 K
r 	
sK
t 	uK
v 	
wK
x 		yK
z 	{K
| 	
}K
~ 		K
@ 	AK
B 		CK
D 	
EK
F 	
GK
H 		IK
J 		KK
N 		OK
P 	QK
R 		SK
 K
NZ TOO8L8L8N8NOOOPPN=H( (-',	 	L! ! ! !
% % %B	 	 	    rU   r   c                       e Zd ZdZd Zd ZdS )SortableDictzDictionary with additional sorting methods

    Tip: use key starting with with '_' for sorting before small letters
         and with '~' for sorting after small letters.
    c                 H    t          |                                           }|S )zReturn sorted list of keys)r  r  )rS   r  s     rT   
sortedkeyszSortableDict.sortedkeys  s    diikk""rU   c                 D      fd                                  D             S )z$Return list of values sorted by keysc                      g | ]
}|         S r   r   )r  keyrS   s     rT   r  z-SortableDict.sortedvalues.<locals>.<listcomp>  s    777cS	777rU   )r*  rR   s   `rT   sortedvalueszSortableDict.sortedvalues  s'    7777T__%6%67777rU   N)rx   ry   rz   r$  r*  r.  r   rU   rT   r(  r(    s<         
  
8 8 8 8 8rU   r(  c                       e Zd ZdZdS )PreambleCmdsz'Building blocks for the latex preamble.N)rx   ry   rz   r$  r   rU   rT   r0  r0     s        1111rU   r0  z\usepackage{color}zl\usepackage{float} % extended float configuration
\floatplacement{figure}{H} % place figures here definitelyz%% hyperlinks:
\ifthenelse{\isundefined{\hypersetup}}{
  \usepackage[%s]{hyperref}
  \usepackage{bookmark}
  \urlstyle{same} %% normal text font (alternatives: tt, rm, sf)
}{}z/%% local table of contents
\usepackage{minitoc}zz\usepackage{longtable,ltcaption,array}
\setlength{\extrarowheight}{2pt}
\newlength{\DUtablewidth} % internal use in tableszI\newcommand{\DUcolumnwidth}[1]{\dimexpr#1\DUtablewidth-2\tabcolsep\relax}z*\usepackage{textcomp} % text symbol macroszQ
% abstract title
\providecommand*{\DUtitleabstract}[1]{\centerline{\textbf{#1}}}a  
% admonition (specially marked topic)
\providecommand{\DUadmonition}[2][class-arg]{%
  % try \DUadmonition#1{#2}:
  \ifcsname DUadmonition#1\endcsname%
    \csname DUadmonition#1\endcsname{#2}%
  \else
    \begin{center}
      \fbox{\parbox{0.9\linewidth}{#2}}
    \end{center}
  \fi
}zU
% error admonition title
\providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}a  
% title for topics, admonitions, unsupported section levels, and sidebar
\providecommand*{\DUtitle}[2][class-arg]{%
  % call \DUtitle#1{#2} if it exists:
  \ifcsname DUtitle#1\endcsname%
    \csname DUtitle#1\endcsname{#2}%
  \else
    \smallskip\noindent\textbf{#2}\smallskip%
  \fi
}z
\providecommand*{\DUCLASScontents}{%
  \renewenvironment{itemize}%
    {\begin{list}{}{\setlength{\partopsep}{0pt}
                    \setlength{\parsep}{0pt}}
                   }%
    {\end{list}}%
}c                     t          |           g}| D ]-}|                                s n|                    |           .d                    |                                          S )Nr/   )nextstripr;   rg   rstrip)fpblocklines      rT   _read_blockr8  Q  sd    "XXJE  zz|| 	ET775>>  """rU   docutils.styrZ   r[   z% 
z:::)colorfloattabletextcompc                      e Zd ZdZ ed          d ed          d ed          diZ ed          d	 ed
          d ed          d ed          d ed          d ed          d ed          d ed          d ed          d ed          dddiZi ddd d!d"dd#d!d$d%d&d'd(d%d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAZi dBddCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgZi dhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddddddddddddēddƓddȓddʓi dd̓ddΓddГddfddӓddՓddדddٓddۓddݓddߓddddddddddddddddddZ	dddddZ
dS )CharMapsz8LaTeX representations for active and Unicode characters.\z\textbackslash{}{z\{}z\}#\#$z\$%\%&z\&~z\textasciitilde{}_\_^z\textasciicircum{}"z\textquotedbl{}[z{[}]z{]}   z\-i    z\enskipi   z\quadi   i   i   z\,i   z\hspace{0pt}i/   i   z\hbox{-}i+!  z\AAi!  z\ensuremath{\Leftrightarrow}i`"  z\ensuremath{\neq}ia"  z\ensuremath{\equiv}id"  z\ensuremath{\le}ie"  z\ensuremath{\ge}i`&  z\ensuremath{\spadesuit}ic&  z\ensuremath{\clubsuit}i   ffr   flffiffl)i  i  i  i        z\guillemotleft{}   z\guillemotright{}i   z\textcompwordmark{}i   z\textendash{}i   z\textemdash{}i   z\textquoteleft{}i   z\textquoteright{}i   z\quotesinglbase{}i   z\textquotedblleft{}i   z\textquotedblright{}i   z\quotedblbase{}i0   z\textperthousand{}i1   z\textpertenthousand{}i9   z\guilsinglleft{}i:   z\guilsinglright{}i#$  z\textvisiblespace{}z\dag{}z\ddag{}z\dots{}z\texttrademark{})i    i!   i&   "!     z\textcent{}   z\textcurrency{}   z
\textyen{}   z\textbrokenbar{}   z\textsection{}   z\textasciidieresis{}   z\textcopyright{}   z\textordfeminine{}   z\textlnot{}   z\textregistered{}   z\textasciimacron{}   z\textdegree{}   z	\textpm{}   z\texttwosuperior{}   z\textthreesuperior{}   z\textasciiacute{}   z	\textmu{}   z\textparagraph{}   z\textonesuperior{}   z\textordmasculine{}   z\textonequarter{}   z\textonehalf{}   z\textthreequarters{}   z\texttimes{}   z
\textdiv{}i  z\textflorin{}i  i  z\textacutedbl{}i   z\textbardbl{}i"   z\textbullet{}i2   i3   i5   z\textasciigrave{}i6   z\textgravedbl{}i;   z\textreferencemark{}i=   z\textinterrobang{}iD   z\textfractionsolidus{}iE   z\textlquill{}iF   z\textrquill{}iR   z\textdiscount{}i   z\textcolonmonetary{}i   z\textfrenchfranc{}i   z\textlira{}i   z\textnaira{}i   z
\textwon{}i   z\textdong{}i   z\texteuro{}i   z\textpeso{}i   z\textguarani{}i!  z\textcelsius{}i!  z\textnumero{}i!  z\textcircledP{}i!  z\textrecipe{}i !  z\textservicemark{}rY  i&!  z
\textohm{}i'!  z
\textmho{}i.!  z\textestimated{}i!  z\textleftarrow{}i!  z\textuparrow{}i!  z\textrightarrow{}i!  z\textdownarrow{}i"  z\textminus{}i"  z\textasteriskcentered{}i"  z\textsurd{}i"$  z\textblank{}i%  z\textopenbullet{}i%  z\textbigcircle{}z\textmusicalnote{}z\textmarried{}z\textdivorced{}z\textlangle{}z\textrangle{})ij&  i&  i&  i'  i'  z
\ding{170}z
\ding{169}z	\ding{51}z	\ding{55})ie&  if&  i'  i'  N)rx   ry   rz   r$  ordallttspecialunsupported_unicodeutf8_supported_unicoder>  pifontr   rU   rT   r@  r@  o  s4       BB 	D		'C&C&E 	C&C&C&C&C'C&C(C% 	C&C& 	)G. 	 			
 	 		 	 	  	 	 	 	1 	& 	(  	%!" 	%#& 	,'( 	+)* 	+, 3  8$ 	% 	'	
 	! 	! 	$ 	% 	% 	' 	( 	# 	& 	) 	$  	%!" 	'#$ $+  0LL 	#L 		L
 	$L 	"L 	(L 	$L 	&L 	L 	%L 	&L 	!L 	L 	&L  	(!L" 	%#L$ 	%L L& 	$'L( 	&)L* 	'+L, 	%-L. 	"/L0 	(1L2 	 3L4 	5L8 	!9L: 	%;L< 	#=L> 	!?L@ 	!ALB 	%CLD 	#ELF 	%GLH 	#IL L LJ 	(KLL 	&MLN 	*OLP 	!QLR 	!SLT 	#ULV 	(WLX 	&YLZ 	[L\ 	 ]L^ 	_L` 	aLb 	cLd 	eLf 	"gLh 	"iLj 	!kL L Ll 	#mLn 	!oLp 	&qLr 	$sLt 	uLv 	wLx 	$yLz 	${L| 	"}L~ 	%L@ 	$ALB 	 CLD 	+ELF 	GLH 	 ILJ 	%KLL 	$ML LN '"#!!WL L LH^ 	 FFFrU   r@  c                   &    e Zd ZdZddZd Zd ZdS )DocumentClassz"Details of a LaTeX document class.Fc                     || _         || _        g d| _        | j         dv r| j                            dd           | j        r| j                            dd           d S d S )N)section
subsectionsubsubsection	paragraphsubparagraph)bookmemoirreportscrbookscrreprtr   chapterrr   )document_class
_with_partsectionsinsert)rS   r  	with_parts      rT   rO   zDocumentClass.__init__!  s    ,#6 6 6 #: : 	/M  I...? 	,M  F+++++	, 	,rU   c                 V    |t          | j                  k    r| j        |dz
           S dS )zReturn the LaTeX section name for section `level`.

        The name depends on the specific document class.
        Level is 1,2,3..., as level 0 is the title.
           DUtitle)lenr  )rS   levels     rT   r|  zDocumentClass.section,  s1     C&&& 	*=q))yrU   c                     t          |t          | j                            }d| j        v r|dz  }| j        d         dk    r|dz  }|S )a  
        Return LaTeX equivalent of Docutils section level `depth`.

        Given the value of the ``:depth:`` option of the "contents" or
        "sectnum" directive, return the corresponding value for the
        LaTeX ``tocdepth`` or ``secnumdepth`` counters.
        r  r  r   rr   )minr  r  )rS   depths     rT   latex_section_depthz!DocumentClass.latex_section_depth7  sW     E3t}--..% 	QJE=v% 	QJErU   N)F)rx   ry   rz   r$  rO   r|  r  r   rU   rT   rz  rz    sL        ,,	, 	, 	, 	,	 	 	    rU   rz  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd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S )TableaH  Manage a table while traversing.

    Table style might be

    :standard:   horizontal and vertical lines
    :booktabs:   only horizontal lines (requires "booktabs" LaTeX package)
    :borderless: no borders around table cells
    :nolines:    alias for borderless

    :colwidths-auto:  column widths determined by LaTeX
    c                     || _         || _        d| _        |                                  g | _        g | _        d| _        d S )NFr   )_translator_latex_typer>   rl   
_colwidths_rowspan	_in_thead)rS   
translator
latex_types      rT   rO   zTable.__init__S  s@    %%$)!

rU   c                 L    d| _         g | _        g | _        i | _        d| _        d S )NTF)_open
_col_specscaption_attrs_in_headrR   s    rT   r   z
Table.open]  s)    
rU   c                 Z    d| _         d | _        g | _        i | _        g | _        d| _        d S NF)r  r  r  r  stubscolwidths_autorR   s    rT   rl   zTable.closed  s3    

#rU   c                     | j         S rN   )r  rR   s    rT   is_openzTable.is_openl  s
    zrU   c                     |j         | _         d|v r|                     d|d                    d dg|j        z   |d         z   D             }|d         | _        d|d         v s	d|j        v od|d         vod|v| _        d S )	Nalignc                 B    g | ]}|d v |                     dd          S ))r   r   r   r   r   r   replacer  clss     rT   r  z)Table.set_table_style.<locals>.<listcomp>u  sH     I I IGGI3;;y,77 I I IrU   r   classesr  r   colwidths-givenwidth)r>   settable_stylebordersr  )rS   noderb   r  s       rT   set_table_stylezTable.set_table_styleo  s    $,$A!d? 	-HHWd7m,,,I I"|h&::T)_LI I I r{ 0DO C !L#3x7K#K 7#4DO#K 7 $+$#6 	rU   c                 8    | j         dk    r	| j        sdS | j         S )N	longtable
longtable*)r  r  rR   s    rT   get_latex_typezTable.get_latex_type~  s)    {* 	!4< 	!<rU   c                     || j         |<   d S rN   r  )rS   attrvalues      rT   r  z	Table.set  s    !DrU   c                 2    || j         v r| j         |         S d S rN   r  )rS   r  s     rT   r  z	Table.get  s#    4; 	%;t$$trU   c                      | j         dk    rdS dS )Nr   |r/   )r  rR   s    rT   get_vertical_barzTable.get_vertical_bar  s    <:% 	3rrU   
\linewidthc                    ddddd}|                     |                      d                    }|                                 }|r|dvrd|d	d
|dg}n	d
|d|g}| j        s\| j        dk    r8| j        s1|                    dd|t          | j                  dz   fz             n|                    dd|z             d                    |          S )Nz[l]z[c]z[r]r/   )leftcenterrightNr  r  r  z\noindent\makebox[\linewidth]z{%\begin{rC  r   r  z?\setlength{\DUtablewidth}{\dimexpr%s-%i\arrayrulewidth\relax}%%r  z\setlength{\DUtablewidth}{%s}%%r   )	r  r  r  r  r>   r  r  r  rg   )rS   r  	align_mapr  r  openings         rT   get_openingzTable.get_opening  s3   "$# 	 dhhw//00((**
 	>Z'BB 	> 	>@EGG(2

4GG +5**ee<=G" 	O|z) O$2K Or $I"'T_)=)=a)?!@$A B B B B r#E#MNNNyy!!!rU   c                 D   g }| j         dk    r|                    d           |                    d|                                 z             |                     d          r+|                                 dvr|                    d           d                    |          S )Nr   z\bottomrule\end{%s}r  r  rC  r   )r  r;   r  r  rg   )rS   closings     rT   get_closingzTable.get_closing  s    <:% 	+NN>*** 	{T%8%8%:%::;;;88G 	 !4!4!6!6>Y!Y 	 NN3yy!!!rU   c                     | j                             |           | j                            |j                            d                     d S )Nstub)r  r;   r  
attributesr  rS   r  s     rT   visit_colspeczTable.visit_colspec  sD    t$$$
$/--f5566666rU   c                    |                                  }dgt          | j                  z  | _        | j        r g | _        dgt          | j                  z  }n| j        r[ddt          d | j        D                       k    rz  z  fd| j        D             | _        d | j        D             }ndd	|j        j        d
         vrdndfd| j        D             | _        t          | j                  dk    sd|j        j        j	        v rfd| j        D             | _        d | j        D             }||
                    |          z   |z   S )z3Return column specification for longtable.
        r   r  P   g(\?c              3   ,   K   | ]}|d          dz   V  dS )colwidthr  Nr   r  r  s     rT   	<genexpr>z%Table.get_colspecs.<locals>.<genexpr>  s,      MMTd:.q0MMMMMMrU   c                 8    g | ]}|d          dz   z  z  dz   S )r  r  g{Gzt?r   )r  r  factorr  s     rT   r  z&Table.get_colspecs.<locals>.<listcomp>  sK     E E E,0 !'$z*:1*< =e C"' ( E E ErU   c                     g | ]}d |z  S )zp{%.3f\DUtablewidth}r   r  r  s     rT   r  z&Table.get_colspecs.<locals>.<listcomp>  s-     ? ? ?"* 6@ ? ? ?rU   (   r  r  r  c                 ,    g | ]}|d          z   z  S )r  r   )r  r  	allowancenorm_lengths     rT   r  z&Table.get_colspecs.<locals>.<listcomp>  s8     < < <#' !%Z 0 :KG < < <rU   r  c                     g | ]}|z  S r   r   )r  r  total_widths     rT   r  z&Table.get_colspecs.<locals>.<listcomp>  s4     #D #D #D'/ $,K#7 #D #D #DrU   c                     g | ]}d |z  S )p{\DUcolumnwidth{%.3f}}r   r  s     rT   r  z&Table.get_colspecs.<locals>.<listcomp>  s-     ? ? ?"* 98C ? ? ?rU   )r  r  r  r  r  r  r>   sumparentr  rg   )	rS   r  barlatex_colspecsr  r  r  r  r  s	       @@@@@rT   get_colspecszTable.get_colspecs  s    ##%%c$/222 %	? DO!US%9%99NN& "	?EFMMT_MMMMMKU" .%+--E E E E E48OE E EDO? ?.2o? ? ?NN K !(:9(EE 			< < < < <+/?< < <DOdo..KQ D'T[-?-J"J D#D #D #D #D37?#D #D #D? ?.2o? ? ?NSXXn---33rU   c                     	 | j         rd| j        | j                 z  S d| j        | j                 z  S # t          $ r Y dS w xY w)z4Return columnwidth for current cell (not multicell).z%.2f\DUtablewidthz\DUcolumnwidth{%.2f}*)r>   r  _cell_in_row
IndexErrorrR   s    rT   get_column_widthzTable.get_column_width  s_    	( Q+dod>O.PPP*T_T=N-OOO 	 	 	33	s   3 3 
A Ac                      	 t          d  fdt          |          D             D                       } j        rd|z  S d|z  S # t          $ r Y dS w xY w)z)Return sum of columnwidths for multicell.c                     g | ]}|S r   r   )r  r  s     rT   r  z/Table.get_multicolumn_width.<locals>.<listcomp>  s.     "J "J "J&+ #( "J "J "JrU   c                 0    g | ]}j         |z            S r   )r  )r  corS   starts     rT   r  z/Table.get_multicolumn_width.<locals>.<listcomp>  s:     1H 1H 1H57 261L 1H 1H 1HrU   zp{%.2f\DUtablewidth}r  r  )r  ranger>   r  )rS   r  len_multicol_widths   ``  rT   get_multicolumn_widthzTable.get_multicolumn_width  s    	  "J "J1H 1H 1H 1H 1H;@;;1H 1H 1H"J "J "J K KN ( @.??->> 	 	 	33	s   >A A 
AAc                     | j         sdS d                    | j                   }d| j                                        k    rd|z  S d|z  S )Nr/   r  z\caption{%s}\\
z!\caption[]{%s (... continued)}\\
)r  rg   r  thead_depth)rS   r  s     rT   get_captionzTable.get_caption  sV    | 	2''$,'' ,,... 	4)G337'AArU   c                 V    | j         dk    rd| j                                        k    S dS )Nr  r  r   )r  r  r  rR   s    rT   need_recursezTable.need_recurse  s1    {* 	7(446666qrU   c                 ^    | xj         dz  c_         | j        dk    rdgS | j        dk    rdgS g S )Nr  r   \hline
r   z	\toprule
)r  r  rR   s    rT   visit_theadzTable.visit_thead  sE    !<:% 	#= \Z' 	#!?"	rU   c                 ,   g }| j         dk    r|                    d           | j        dk    rd| j                                        k    r|                    d           nt          | j                  }|                    d           t          d | j        D                       }|dk    s|d	k    r;| j        s4|                    d
|| 	                    d|          fz  dz   dz              |                    d           | xj
        dz  c_
        |S )Nr   z	\midrule
r  r  z\endfirsthead
z	\endhead
c                 $    g | ]}|d          dz   S )r     r   r  s     rT   r  z&Table.depart_thead.<locals>.<listcomp>  s"    MMMTd:.q0MMMrU         z\multicolumn{%d}{%s}r   z,{\raggedleft\ldots continued on next page}\\r   z\endfoot
\endlastfoot
)r  r;   r  r  r  r  r  r  r  r  r  )rS   an_ctwidths       rT   depart_theadzTable.depart_thead  s@    <:% 	$HH]###{* 	7D$00222 7+,,,,$/**'''MMT_MMMNNB; %6B; %t7J %HH4 #T%?%?3%G%GHINO  $$ % % % 5666!rU   c                     d| _         d S Nr   r  rR   s    rT   	visit_rowzTable.visit_row'  s    rU   c                 >    dg}d  _         t          t           j                            D ](} j        |         dk    r j        |xx         dz  cc<   ) j        dk    r fdt          t           j                            D             }t          |          t           j                  k    r|                    d           nTd}|                                 	 	 |                                }n#  Y nxY w|d	||fz  z  }(|                    |           |S )
N \\
r   r  r   c                 <    g | ]}j         |         d k    |dz   S )r   r  r  )r  irS   s     rT   r  z$Table.depart_row.<locals>.<listcomp>2  s=     2 2 2 M!,a/2! 2 2 2rU   r  r/   Tz\cline{%d-%d}
)r  r  r  r  r  r;   reversepop)rS   resr  rowspansclinec_starts   `     rT   
depart_rowzTable.depart_row*  sS   k s4=))** 	& 	&Aa " &a   A%   <:% 	"2 2 2 2U3t}+=+=%>%> 2 2 2H8}}c$-000 "

;''''  """E"*,,../7G2DDDEE 

5!!!
s   !C6 6C:c                 ,    	 || j         |<   d S #  Y d S xY wrN   r  )rS   cellr  s      rT   set_rowspanzTable.set_rowspanC  s)    	"'DM$	DDs   
 c                 .    	 | j         |         S #  Y dS xY wr  r  )rS   r   s     rT   get_rowspanzTable.get_rowspanI  s$    	=&&	11s    c                     | j         S rN   r  rR   s    rT   get_entry_numberzTable.get_entry_numberO        rU   c                 &    | xj         dz  c_         d S Nr  r  rR   s    rT   visit_entryzTable.visit_entryR  s    QrU   c                 d    t          | j                  | j        k    r| j        | j                 S dS r  )r  r  r  rR   s    rT   is_stub_columnzTable.is_stub_columnU  s/    tz??d// 	1:d/00urU   N)r  )rx   ry   rz   r$  rO   r   rl   r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r!  r#  r%  r)  r+  r   rU   rT   r  r  G  s       
 
    $ $ $  8 8 8     " " "  
  " " " ",	" 	" 	"7 7 7
+4 +4 +4Z  
 
 
B B B  
    0    2    ! ! !      rU   r  c                   @   e 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efdZd Zd Zd Zd	 Z ej        d
          fdZd Zd Z	 	 ddZd Zdd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& Z1d' Z2d( Z3d) Z4d* Z5d+ Z6d, Z7d- Z8d. Z9d/ Z:d0 Z;d1 Z<d2 Z=d3 Z>d4 Z?d5 Z@d6 ZAd7 ZBd8 ZCd9 ZDd: ZEd; ZFd< ZGd= ZHd> ZId? ZJd@ ZKdA ZLdB ZMdC ZNdD ZOdE ZPdF ZQdG ZRdH ZSdI ZTdJ ZUdK ZVdL ZWdM ZXdN ZYdO ZZdP Z[dQ Z\dR Z]dS Z^dT Z_dU Z`dV ZadW ZbdX ZcdY ZddZ Zed[ Zfd\ Zgd] Zhd^ Zid_ Zjd` Zkda Zldb Zmdc Zndd Zode Zpdf Zqdg Zrdh Zsdi Ztdj Zudk Zvdl Zwdm Zxdn Zydo Zzdp Z{dq Z|dr Z}ds Z~dt Zdu Zdv Zdw ZddxZdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdddddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ ZdɄ ZdZdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ ZdՄ Zdք ZdS )rP   z
    Generate code for 8-bit LaTeX from a Docutils document tree.

    See the docstring of docutils.writers._html_base.HTMLTranslator for
    notes on and examples of safe subclassing.
    Fr:   r   c                     t           j                             |            j        j        j         _         j        j        j         _        |j        x _        }|j	        #d|_	        t          j        dt          d           |j        #d|_        t          j        dt          d           |j        t          j        dt          d                                |j                   _        |j         _        |j         _        |j	         _	        |j         _        |j         _        |j         _        t/          |dd	           _        |j         _        |j                            d
d           _        d	 _        d	 _        |j        r*t=          j        d|j                  \  } _         _        }n|j        rd _         j        j         r& j        j                             dd           _!        nd  _!        tE          j#        |j$        |j                   _%         ||j$        |j                   _&         j%        j'        d          _(         j        j)        g} j&        j*        dvr|+                     j&        j*                   d,                    t[          d |                     _)        t]          |j/        |j0                   _1         j        j2        d	k    rd _3        nd j        j2        z   _3        |j4         _4        d j)        d j        j/        dg _5        tm                       _7        d j7        d<   |j8        g _8        tm                       _9        g  _:        g  _;        g  _<        g  _=        g  _>        g  _?        g  _@        g  _A        g  _B        g  _C        	 g  _D        g  _E        g  _F        g  _G        g  _H        g  _I        |j$        dk    r" jI        +                    d|j$        z             dg _J        g  _K        d _L        g  _M        g  _N        t           d           _P         jB         _Q        g  _R         j        dk    rd j        z   j7        d<    jS        si j        rd j        z   j7        d <    j                            d          D ]5}|T                                }|d!k    rd" j7        d#<   '|d$vr
d% j7        d&<   6|j/        U                    d'          d(k    rF j)        U                    d)          d(k    s j)        U                    d*          d(k    r
d+ j7        d,<   t          jW        |          }d-|v  _X         jX        r*d. |D             } j        jY        rd _X        n
d/ j9        d0<    fd1|D              _Z         j        d2v rd	 _[        nd3 j        d4 j         _[        |j[        r xj[        d|j[        z   z  c_[        |j\        rd5t          _^        d S |j_        }|'d6 j1        `                    |          z  t          _^        t          |d7          r4|jb        dk    r+d8 j1        jc        d         |jb        dz
  fz   j7        d7<   d S d S d S )9NFzXThe default for the setting "use_latex_citations" will change to "True" in Docutils 1.0.   
stacklevelTz[The default for the setting "legacy_column_widths" will change to "False" in Docutils 1.0.)zzThe configuration setting "use_verbatim_when_possible" will be removed in Docutils 1.2. Use "literal_block_env: verbatim".font_encodingr/   rK  rL  z	(\w+)(.*)verbatimr  r  r   )r   r/   z\usepackage{graphicx}z\usepackage[%s]{graphicx}z\documentclass[]{rC  z\usepackage{ifthen}__staticr   z  pdflang={%s},r  asciiz\usepackage[%s]{inputenc}	_inputencz\usepackage[%s]{fontenc}_fontencOT1z+\DeclareTextSymbol{\textquotedbl}{OT1}{`\"}_textquotedblOT1)r<   T2AT2BT2CT4T5z,\DeclareTextSymbolDefault{\textquotedbl}{T1}_textquotedblscrr  DIVBCORz\usepackage{typearea}typeareadocutilsc                     g | ]
}|d k    |S )rD  r   )r  sheets     rT   r  z,LaTeXTranslator.__init__.<locals>.<listcomp>:  s1     7 7 7"':"57u 7 7 7rU   z!\usepackage{docutils}[2020/08/28]r9  c                 :    g | ]}                     |          S r   )stylesheet_call)r  rf   rS   s     rT   r  z,LaTeXTranslator.__init__.<locals>.<listcomp>D  s7     8 8 8#  //55 8 8 8rU   )0falseFalser/   zcolorlinks=true,linkcolor=z
,urlcolor=z\setcounter{secnumdepth}{0}z\setcounter{secnumdepth}{%d}sectnum_startz\setcounter{%s}{%d})dr	   NodeVisitorrO   r]   r  r  warnerrorrb   r'   warningsFutureWarningr>   use_verbatim_when_possibleto_latex_encodingoutput_encodinglatex_encodingr4   r5   reference_label_reference_labelhyperlink_colorr8   ra   r1  r9   section_enumerator_separatorr  literal_block_envliteral_block_optionsresplit
use_bibtexbibtexr
   r#  r
  language_modulebabelauthor_separatorsauthor_separatordocumentoptionsr  r;   rg   filterrz  documentclassuse_part_sectiond_classgraphicx_optiongraphicx_packagedocutils_footnotesr@   r(  rA   rB   rC   rD   rF   rG   rE   rH   rI   rJ   rK   rL   contexttitle_labelssubtitle_labelsauthor_stackdate	pdfauthorpdfinfo_section_number_enumeration_counters_max_enumeration_counters	_bibitemstable_stackr  active_tableout	out_stackis_xetexr3  findr   get_stylesheet_listfallback_stylesheetr=   r1   hyperref_optionssectnum_xformr0  secnumdepthr?   r  hasattrrL  r  )	rS   r]   babel_classrb   r.   	d_optionsencstylesheet_listr  s	   `        rT   rO   zLaTeXTranslator.__init__  s   ""4222 M*2	]+1
 $,#44' 	7+0H(M C'A7 7 7 7 ( 	7,0H)M E'A7 7 7 7 . 	-M5 !	- - - - #44X5MNN%3!)!;#+#?  ( 8'7$,$A!$XCC3 	+ 199#uEE 	) "$%'"% 	0 XlH,FGGT#'T0 	0%/D"=# 	-288a@@DKK DK  )5h6L.6.? A  A [!79JKK
 $ 4 Fq I]23	:o5 	2TZ0111"xxtY(?(?@@$X%;%-%>@ @ =(B. 	D$<D!!%A%)]%B&CD! #+"= !!!4=#>#>#>@ A(NN(>*%'67%
 "	 	H ! 	 !T) 	JL 1(2H HIII
 !"s &(" *+& !$44 9 ') 	E.J040C/DDk* } 	I! E1L151C2D!*- )//44 I Iiikk%< IF %&899 GG IG %o6 "''.."4 	E!&&u--3	E!&&v.."4	E -EDj)
  3H==#-#@ # 		G7 7/ 7 7 7O}3 G+0(( #G ~  8 8 8 8'68 8 8 #>> 	R$&D!!	R '+&:&:&:D<P<P%RD!$ 	E!!S8+D%DD!! ! 	I'EL$$$"0K  M,K"l>>{KK-L( /22 I&!+I +dl.CA.F.6.DQ.F.H H !/222I I I IrU   c                    t           j                            |          \  }}|dv }| j        j        r|r|dz   }	 t
          j                            |d                                          }| j        j	        
                    |           nj# t          $ r]}d|dt          |j                  d}| j        j                            |           d|                    d	d
          z   cY d}~S d}~ww xY w|rd	                    d|dg          }d|d	|S |r|}d}nd}| j        j        rt)          j        | j        j        |          }||z  S )z8Return code to reference or embed stylesheet file `path`).styr/   r  zutf-8)source_pathr\   zCannot embed stylesheet z:
  r3   z% r   
% Nr  r  z% embedded stylesheet: z\usepackage{%s}z
\input{%s})re   rf   splitextrb   r2   rD  io	FileInputrk   record_dependenciesaddrd   r   strerrorr]   r  rO  r  rg   r0   r   relative_path_destination)	rS   rf   baseext
is_packagecontenterrmsgcmds	            rT   rH  zLaTeXTranslator.stylesheet_callt  s    g&&t,,sL(
=) 	F %f}8"+//D07 0 9 99= 155d;;;; 8 8 8 8 $j&>&>&>&>@&,,S111ckk$777777777	8
  7))%5%,%4%6 7 7 8<ttWWEE 	 D$CCC=( 	I&t}'A4HHDTzs   AB 
C5AC0*C50C5c                     ddddddddd	d
ddddd}|                                 }||v r||         S |                    dd                              dd          }|                    d          d         S )zTranslate docutils encoding name into LaTeX's.

        Default method is remove "-" and "_" chars from docutils_encoding.
        latin1latin2latin3latin4iso88595latin5latin9maccyrcp1251koi8-rkoi8-ucp1250cp1252r5  )z
iso-8859-1z
iso-8859-2z
iso-8859-3z
iso-8859-4z
iso-8859-5z
iso-8859-9ziso-8859-15mac_cyrilliczwindows-1251r  r  zwindows-1250zwindows-1252zus-asciirK  r/   r:   r:  r   )r   r  r]  )rS   docutils_encodingr   r\   s       rT   rS  z!LaTeXTranslator.to_latex_encoding  s    
 '&&&(&' ( ("" ( (# 8 %**,,r> 	 h<##C,,44S"==~~c""1%%rU   c                 &    | j         j        |         S rN   )r`  labels)rS   docutil_labels     rT   language_labelzLaTeXTranslator.language_label  s    #*=99rU   c                    | j         r|S t          j                                        }| j        s|                    t          j                   | j        r| j        s|t          d          = | j        dv rx| j	        sq| j
        r4d|t          d          <   | j        | j        d<   d|t          d          <   n6d|t          d          <   d	|t          d
          <   d|t          d          <   | j        r1d|t          d          <   d| j        j        z  |t          d          <   | j	        s5| j                            d          s]|                    t          j                   |                    t          j                   |                    t          j                   |                    t          j                   |D ]}t          |          }|t          j        v r| j        st.          j        | j        d<   ;|t          j        v rd| j        d<   T| j        dk    r=|t          j        v r/d|t          j        |         fz  | j        dt1          |          z   <   |                    |          }| j	        s5d}| j
        r|dz  }|dz  D ]!}|                    ||z   |dz   |z             }"| j        rk|                    d          }t;          |dd                   D ])\  }}	|	                                s||xx         dz  cc<   *d                    |          }| j
        r| j        s|                    dd          }|S ) aU  Return text with 'problematic' characters escaped.

        * Escape the special printing characters ``# $ % & ~ _ ^ \ { }``,
          square brackets ``[ ]``, double quotes and (in OT1) ``< | >``.
        * Translate non-supported Unicode characters.
        * Separate ``-`` (and more in literal text) to prevent input ligatures.
        rK  )r8  r/   z\underline{~}graphicxz\reflectbox{/}rA  z
\textbar{}r  z\textless{}<z\textgreater{}>rJ   	rZ   r>  z\usepackage{pifont}rx  z"\DeclareUnicodeCharacter{%04X}{%s}r6  r:   z,`'"<>r  z{}r   Nr  \\
z  z ~) r2  r@  rt  copyupdateru  inside_citation_reference_labelrs  r1  r{  literalrj  rA   insert_non_breaking_blanksrb   	tab_widthrU  
startswithrv  rw  r>  rx  r~  r0  strrt   r  insert_newliner]  	enumeratelstriprg   )
rS   textr=  chcpseparate_charscharrw   r  r7  s
             rT   encodezLaTeXTranslator.encode  sy    = 	K##%%z 	+LL)***/ 	!
 	!c#hh, 	5T] 	5| 5 #4c#hh 150E!*-#5c$ii   #1c#hh"1c#hh"4c#hh* 	>"E#c((O  $dm&==E#d))} 	C&11&99 0X9:::X<===X.///LL))) C CWW** 	C43K 	C4@4ID%j118?* C2HD%h//)V3 C <<C > <R @AB %k#b''&9: ~~e$$ } 		E N | ,)+&* E E ||D4Kt1CDD  	.JJt$$E %U3B3Z00 $ $4{{}} $!HHHOHHH &&u--D< 	, ? 	,<<d++DrU   z[
	]c                 T    |                      |                    d|                    S )z1Cleanse, encode, and return attribute value text.r  )r  sub)rS   r  
whitespaces      rT   attvalzLaTeXTranslator.attval  s$     {{:>>#t44555rU   c                 @    t          |j        t          j                  S )z@Check whether a node represents an inline or block-level element)
isinstancer  r	   TextElementr  s     rT   	is_inlinezLaTeXTranslator.is_inline%  s    $+u'8999rU   c                     | j                             d                    d |d         D                                  dS )z)Append hypertargets for all ids of `node`%
c                     g | ]}d |z  S )z"\raisebox{1em}{\hypertarget{%s}{}}r   )r  r   s     rT   r  z7LaTeXTranslator.append_hypertargets.<locals>.<listcomp>-  s1     $> $> $>+- %K$&%' $> $> $>rU   idsN)ry  r;   rg   r  s     rT   append_hypertargetsz#LaTeXTranslator.append_hypertargets)  s[     	

 $> $>15e$> $> $> ? ? 	@ 	@ 	@ 	@ 	@rU   Tc                     |rdndfd|d         D             }|r|r|                     dd           |r|r|                    d           |S )a  Return list of label definitions for all ids of `node`

        If `set_anchor` is True, an anchor is set with \phantomsection.
        If `protect` is True, the \label cmd is made robust.
        If `newline` is True, a newline is added if there are labels.
        z\protectr/   c                      g | ]
}d |z  z   S )z
\label{%s}r   )r  r   prefixs     rT   r  z1LaTeXTranslator.ids_to_labels.<locals>.<listcomp>9  s#    DDD"&=2--DDDrU   r  r   z\phantomsectionr   )r  r;   )rS   r  
set_anchorprotectnewliner  r  s         @rT   ids_to_labelszLaTeXTranslator.ids_to_labels0  sz     !(/RDDDDUDDD 	1& 	1MM!/000 	 v 	 MM$rU   c                     d |d         D             }|r6|d                              dd          |d<   d |d         D             |d<   dS dS )	z8Convert ``align-*`` class arguments into alignment args.c                 <    g | ]}|                     d           |S align-r  r  s     rT   r  z:LaTeXTranslator.set_align_from_classes.<locals>.<listcomp>C  s)    LLL3>>(3K3KLLLLrU   r  r  r  r/   r  c                 <    g | ]}|                     d           |S r  r  r  s     rT   r  z:LaTeXTranslator.set_align_from_classes.<locals>.<listcomp>F  s?     @ @ @s&)nnX&>&>@s @ @ @rU   Nr  )rS   r  r  s      rT   set_align_from_classesz&LaTeXTranslator.set_align_from_classes@  s|     MLYLLL 	@!"I--h;;DM@ @d9o @ @ @DOOO	@ 	@rU   Nc                     |                     d|          }|dk    r| j                            d           d S |dk    r| j                            d           d S |dk    r| j                            d           d S d S )Nr  r  z\raggedright
r  z\centering
r  z\raggedleft
)r  ry  r;   )rS   r  r   r  s       rT   insert_align_declarationz(LaTeXTranslator.insert_align_declarationI  s    '**F? 	.HOO-.....h 	.HOOO,,,,,g 	.HOO,-----	. 	.rU   c                 $   t          |j        t          j                  s| j                            d           |d         D ]}|                    d          rQ| j                            |dd                   }|r,d| j        j	        |<   | j                            d|z             ht          |t          j
                  r|t          j        dgz   v r| j        st          j        | j        d	<   | j                            d
|z             dS )z6Open a group and insert declarations for class values.r   r  	language-	   NTz\begin{selectlanguage}{%s}
r  DUclassz\begin{DUclass}{%s}
)r  r  r	   compoundry  r;   r  ra  r  r	  r=  r   r   r~  r0  duclassrC   rS   r  r  r  s       rT   duclass_openzLaTeXTranslator.duclass_openR  s   $+u~66 	#X__T"""	? 	@ 	@C~~k** @:33CG<< P:>DJ-h7HOO$Ch$NOOOT5;// @V6:K9LLL@/ E0<0DDN9- 83 >????	@ 	@rU   c                    t          |d                   D ]}|                    d          r?| j                            |dd                   }|r| j                            d           Vt          |t          j                  r|t          j
        dgz   v r| j        st          j        | j        d<   | j                            d           dS )	z$Close a group of class declarations.r  r  r  Nz\end{selectlanguage}
r  r  \end{DUclass}
)reversedr  ra  r  ry  r;   r  r	   r=  r   r   r~  r0  r  rC   r  s       rT   duclass_closezLaTeXTranslator.duclass_closed  s    DO,, 	4 	4C~~k** 
4:33CG<< ?HOO$=>>>T5;// 4V6:K9LLL4/ E0<0DDN9- 23333	4 	4rU   c                 R    | j                             | j                   || _        d S rN   )rz  r;   ry  )rS   new_outs     rT   push_output_collectorz%LaTeXTranslator.push_output_collectors  s%    dh'''rU   c                 B    | j                                         | _        d S rN   )rz  r  ry  rR   s    rT   pop_output_collectorz$LaTeXTranslator.pop_output_collectorw  s    >%%''rU   c                 x   |D ]5}t          |t          j        t          j        t          j        f          s n6dS t          |t          j        t          j        f          r|                     |          S t          |t          j                  rdS t          |t          j	        t          j
        f          sdS dS )aD  
        Return LaTeX code required between term or field name and content.

        In a LaTeX "description" environment (used for definition
        lists and non-docinfo field lists), a ``\leavevmode``
        between an item's label and content ensures the correct
        placement of certain block constructs.
        r/   z\leavevmode
\leavevmode)r  r	   	Invisiblefootnotecitation	containerr  term_postfiximager  
math_block)rS   r  childs      rT   r  zLaTeXTranslator.term_postfixz  s      	 	Eeeou~&+n&6 7 7  2eeou~>?? 	,$$U+++eek++ 	$##%%/53C!DEE 	"!>rrU   c                     | j                             |                     |                                                     d S rN   )ry  r;   r  astextr  s     rT   
visit_TextzLaTeXTranslator.visit_Text  s0    DKKMM2233333rU   c                     d S rN   r   r  s     rT   depart_TextzLaTeXTranslator.depart_Text      rU   c                 h    |d                              dd           |                     |           d S )Nr  r   abbreviationr  visit_inliner  s     rT   visit_abbreviationz"LaTeXTranslator.visit_abbreviation  s6    Yq.111$rU   c                 0    |                      |           d S rN   depart_inliner  s     rT   depart_abbreviationz#LaTeXTranslator.depart_abbreviation      4     rU   c                 h    |d                              dd           |                     |           d S )Nr  r   acronymr  r  s     rT   visit_acronymzLaTeXTranslator.visit_acronym  s6    Yq),,,$rU   c                 0    |                      |           d S rN   r
  r  s     rT   depart_acronymzLaTeXTranslator.depart_acronym  r  rU   c                 2    |                      |d           d S )Naddressvisit_docinfo_itemr  s     rT   visit_addresszLaTeXTranslator.visit_address      i00000rU   c                 0    |                      |           d S rN   depart_docinfo_itemr  s     rT   depart_addresszLaTeXTranslator.depart_address        &&&&&rU   c                    d |d         D             |d<   | j         j        rjt          j        | j        d<   d|d         v rt          j        | j        d<   | j                            dd                    |d                   z             d S | j	        st          j
        | j        d<   d|d         v r| j	        st          j        | j        d<   |                     |           | j                            d           d S )Nc                     g | ]
}|d k    |S )
admonitionr   r  s     rT   r  z4LaTeXTranslator.visit_admonition.<locals>.<listcomp>  s1     3 3 33!\133 3 3 3rU   r  r   rO  z
\DUadmonition[%s]{r  z\begin{DUadmonition})rb   r=   r0  admonition_legacyrC   error_legacyry  r;   rg   r~  r   rO  r  r  s     rT   visit_admonitionz LaTeXTranslator.visit_admonition  s   3 3$y/ 3 3 3Y=/ 	+7+IDN<($y/) D*6*Cw'HOO3chhtI6O6OOPPPF' 	C+7+BDN<(d9o% 	9d.F 	9&2&8DN7#$/00000rU   c                     | j         j        r| j                            d           d S | j                            d           |                     |           d S )N}
z\end{DUadmonition}
)rb   r=   ry  r;   r  r  s     rT   depart_admonitionz!LaTeXTranslator.depart_admonition  sW    =/ 	HOOE"""F/0004     rU   c                     | j                             |                     |                                                     |                     |d           d S )Nauthor)rq  r;   r  r  r  r  s     rT   visit_authorzLaTeXTranslator.visit_author  sH    dkk$++--88999h/////rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_authorzLaTeXTranslator.depart_author  r  rU   c                     d S rN   r   r  s     rT   visit_authorszLaTeXTranslator.visit_authors      rU   c                     d S rN   r   r  s     rT   depart_authorszLaTeXTranslator.depart_authors  r  rU   c                 d    |                      |           | j                            d           d S )Nz\begin{quote}r  ry  r;   r  s     rT   visit_block_quotez!LaTeXTranslator.visit_block_quote  s1    $()))))rU   c                 d    | j                             d           |                     |           d S )Nz\end{quote}
ry  r;   r  r  s     rT   depart_block_quotez"LaTeXTranslator.depart_block_quote  s1    ()))4     rU   c                 d    |                      |           | j                            d           d S )Nz\begin{itemize}r2  r  s     rT   visit_bullet_listz!LaTeXTranslator.visit_bullet_list  s1    $*+++++rU   c                 d    | j                             d           |                     |           d S )Nz\end{itemize}
r5  r  s     rT   depart_bullet_listz"LaTeXTranslator.depart_bullet_list  s1    *+++4     rU   c                 d    | j                             d           |                     |           d S )N\textsuperscript{ry  r;   r  r  s     rT   visit_superscriptz!LaTeXTranslator.visit_superscript  s1    ,---$rU   c                 d    |                      |           | j                            d           d S NrC  r  ry  r;   r  s     rT   depart_superscriptz"LaTeXTranslator.depart_superscript  0    4   rU   c                 d    | j                             d           |                     |           d S )Nz\textsubscript{r=  r  s     rT   visit_subscriptzLaTeXTranslator.visit_subscript  s1    *+++$rU   c                 d    |                      |           | j                            d           d S r@  rA  r  s     rT   depart_subscriptz LaTeXTranslator.depart_subscript  rC  rU   c                 :    | j                             d           d S )Nz

\caption{ry  r;   r  s     rT   visit_captionzLaTeXTranslator.visit_caption  s    '''''rU   c                 :    | j                             d           d S Nr%  rI  r  s     rT   depart_captionzLaTeXTranslator.depart_caption      rU   c                     | j         st          j        | j        d<   | j                            d           |                     |           d S )Ntitlereferencez\DUroletitlereference{)r~  r0  rP  rC   ry  r;   r  r  s     rT   visit_title_referencez%LaTeXTranslator.visit_title_reference  sM    ' 	K/;/JDN+,1222$rU   c                 d    |                      |           | j                            d           d S r@  rA  r  s     rT   depart_title_referencez&LaTeXTranslator.depart_title_reference   rC  rU   c                     | j         r|                     g            d S | j                            d           |                     |           d S )Nz\begin{figure}[b])r'   r  ry  r;   r  r  s     rT   visit_citationzLaTeXTranslator.visit_citation  sX    # 	+&&r***** HOO0111$$T*****rU   c                 
   | j         ra| j        d         }d                    | j        dd                    }| j                            ||g           |                                  d S | j                            d           d S )Nr   r/   r  \end{figure}
)r'   ry  rg   rv  r;   r  )rS   r  labelr  s       rT   depart_citationzLaTeXTranslator.depart_citation  s    # 	/HQKE7748ABB<((DN!!5$-000%%'''''HOO-.....rU   c                 >   | j         rM| j        s#| j                            d           d| _        d S | j        d         dv s
J d            | j        d= d S d}d|v r	|d         }nd|v r| j        j        |d                  }| j                            d	|z             d S )
Nz\cite{r  r  r  r   z2unexpected non-whitespace while in reference labelr/   refidrefname\hyperlink{%s}{[)r'   r  ry  r;   r]   nameids)rS   r  hrefs      rT   visit_citation_referencez(LaTeXTranslator.visit_citation_reference  s    # 	87 !	***78444x|{2 M MLM M MHRLLLD$ >G}d" >},T)_=HOO/$677777rU   c                    | j         rd}|                    dd          }t          |t          j                  rI|                                dv r3|                    dd          }t          |t          j                  rd}|r| j                            d           d S | j                            d           d| _	        d S | j                            d           d S )NFTdescendsiblingsr[  r  rC  ]})
r'   	next_noder  r	   Textr  citation_referencery  r;   r  )rS   r  followup_citationsiblingsibling2s        rT   depart_citation_referencez)LaTeXTranslator.depart_citation_reference'  s    # 	" %nnUTnBBG7EJ// 1NN$$31",,UT,JJh(@AA 1,0)  =$$$$$$$$7<444HOOD!!!!!rU   c                 :    | j                             d           d S )Nz	(\textbf{rI  r  s     rT   visit_classifierz LaTeXTranslator.visit_classifier:  s    %%%%%rU   c                 :    | j                             d           d S )Nz})rI  r  s     rT   depart_classifierz!LaTeXTranslator.depart_classifier=      rU   c                 :    | j                             |           d S rN   )rx  r  r  s     rT   r  zLaTeXTranslator.visit_colspec@  s    ''-----rU   c                     d S rN   r   r  s     rT   depart_colspeczLaTeXTranslator.depart_colspecC  r  rU   c                    t          |j        t          j                  s| j                            d           | j                            d|                                                    dd          z             t          j        )Nr   z%% %s
r  )	r  r  r	   r  ry  r;   r  r  SkipNoder  s     rT   visit_commentzLaTeXTranslator.visit_commentF  se    $+u~66 	#X__T"""	DKKMM$9$9$$G$GGHHHnrU   c                     d S rN   r   r  s     rT   depart_commentzLaTeXTranslator.depart_commentM  r  rU   c                     t          |j        t          j                  r| j                            d           |d                             dd           |                     |           d S )Nr   r  r   r  )r  r  r	   r  ry  r;   r  r  r  s     rT   visit_compoundzLaTeXTranslator.visit_compoundP  s`    dk5>22 	"HOOD!!!Yq*---$rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_compoundzLaTeXTranslator.depart_compoundV  r  rU   c                 2    |                      |d           d S )Ncontactr  r  s     rT   visit_contactzLaTeXTranslator.visit_contactY  r  rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_contactzLaTeXTranslator.depart_contact\  r  rU   c                 0    |                      |           d S rN   )r  r  s     rT   visit_containerzLaTeXTranslator.visit_container_  s    $rU   c                 0    |                      |           d S rN   r~  r  s     rT   depart_containerz LaTeXTranslator.depart_containerb  r  rU   c                 2    |                      |d           d S )N	copyrightr  r  s     rT   visit_copyrightzLaTeXTranslator.visit_copyrighte  s    k22222rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_copyrightz LaTeXTranslator.depart_copyrighth  r  rU   c                 2    |                      |d           d S )Nrp  r  r  s     rT   
visit_datezLaTeXTranslator.visit_datek  s    f-----rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_datezLaTeXTranslator.depart_daten  r  rU   c                     d S rN   r   r  s     rT   visit_decorationz LaTeXTranslator.visit_decorationq  r.  rU   c                     d S rN   r   r  s     rT   depart_decorationz!LaTeXTranslator.depart_decorationu  r  rU   c                     d S rN   r   r  s     rT   visit_definitionz LaTeXTranslator.visit_definitionx  r  rU   c                 :    | j                             d           d S Nr   rI  r  s     rT   depart_definitionz!LaTeXTranslator.depart_definition{  rr  rU   c                 d    |                      |           | j                            d           d S )Nz\begin{description}
r2  r  s     rT   visit_definition_listz%LaTeXTranslator.visit_definition_list~  s1    $011111rU   c                 d    | j                             d           |                     |           d S )Nz\end{description}
r5  r  s     rT   depart_definition_listz&LaTeXTranslator.depart_definition_list  1    .///4     rU   c                     d S rN   r   r  s     rT   visit_definition_list_itemz*LaTeXTranslator.visit_definition_list_item  r  rU   c                     d S rN   r   r  s     rT   depart_definition_list_itemz+LaTeXTranslator.depart_definition_list_item  r  rU   c                 :    | j                             d           d S )Nr  rI  r  s     rT   visit_descriptionz!LaTeXTranslator.visit_description  s    rU   c                     d S rN   r   r  s     rT   depart_descriptionz"LaTeXTranslator.depart_description  r  rU   c                 :    |                      | j                   d S rN   )r  rI   r  s     rT   visit_docinfozLaTeXTranslator.visit_docinfo  s    ""4<00000rU   c                    |                                   | j        rpd| j        d<   | j        s(t          j        | j        d<   t          j        | j        d<   | j                            dd           | j                            d           d S d S )Nz\usepackage{tabularx}tabularx_providelengthrI   r   z@
% Docinfo
\begin{center}
\begin{tabularx}{\DUdocinfowidth}{lX}
z\end{tabularx}
\end{center}
)	r  rI   rA   r~  r0  providelengthrC   r  r;   r  s     rT   depart_docinfozLaTeXTranslator.depart_docinfo  s    !!###< 	3,DDj)+ A3?3M/0,8,@y)L $L M M M L !2 3 3 3 3 3	3 	3rU   c                 F   | j         r|dv r|dk    s| j        s| j                            g            |dk    r6d| _        |                     |                                          }d| _        n'|                     |                                          }| j        d                             |           t          j        |dk    rK| j	                            |                     |                                                     t          j        | j
                            d|                     |          z             |dk    r=d| _        | j
                            d	           | j                            d
           d S | j                            d           d S )N)r(  organizationr  r  r(  r  TFr  rp  z\textbf{%s}: &
	z{\raggedright
z } \\
r  )r5   ro  r;   r  r  r  r  r	   rw  rp  ry  r  rl  )rS   r  namer  s       rT   r  z"LaTeXTranslator.visit_docinfo_item  s   ! 	%GG % 8# 14+< 1%,,R0009$ 6*.D';;t{{}}55D*/D'';;t{{}}55D!"%,,T222n$ %	  T[[]]!;!;<<<n$-0C0CD0I0IIJJJ9 	+"&DHOO.///L,,,,,L	*****rU   c                 v    | j                             | j                                                   d| _        d S r  )ry  r;   rl  r  r  r  s     rT   r  z#LaTeXTranslator.depart_docinfo_item  s2    ((**+++#rU   c                 0    |                      |           d S rN   )visit_literal_blockr  s     rT   visit_doctest_blockz#LaTeXTranslator.visit_doctest_block  r  rU   c                 0    |                      |           d S rN   )depart_literal_blockr  s     rT   depart_doctest_blockz$LaTeXTranslator.depart_doctest_block  s    !!$'''''rU   c                     | j         s/t          |          rXt          |d         t          j                  r:| j        j        dk    }| xj        |                     |d|          z  c_        d S d S d S )Nr   r  Fr  r  )	r5   r  r  r	   rF   rb   rf  rm  r  rS   r  r  s      rT   visit_documentzLaTeXTranslator.visit_document  s    " 	Ec$ii 	EtAw,,	E}2h>G!3!3DU<C "4 "E "E E	E 	E 	E 	ErU   c           
      b   | j         j        s| j         j        dvr|                                  | j        d<   | j                                        | _        | j                                        | _        | j                            t          j	        | j
        z             | j        r<| j                            | j                  }| j                            d|z             | j        r| xj        dg| j        z   dgz   z  c_        | j        s| j        r,| j        s| j        rd                    | j                  g}| j        r
|| j        z  }| j        r*|ddd                    | j                  z  g| j        z   z  }| j                            d	d
                    |          z             d | j        D             }| j                            dd                    |          z             | j                            dd                    | j                  z             | j                            d           | j        r8t3          | j                  dk    r| j        sd}| j        D ]0}t3          |          t3          |d                   k     r|d         }1| j                            d|z             | j        D ]N}|d                             dd          }| j                            d|d         d|d|d         d           O| j                            d           nP| j                            d| j        d         z             | j                            d| j        d         z             d| j        v r#| j        s| j                            d           d S d S d S )N)r/   r   ra  z  pdfauthor={%s}z\hypersetup{rC  r/   \\z\DUdocumentsubtitle{%s}z
\title{%s}%
  c                 8    g | ]}d                      |          S )r  )rg   )r  author_entrys     rT   r  z3LaTeXTranslator.depart_document.<locals>.<listcomp>  s4     ? ? ?(  }}\22 ? ? ?rU   z\author{%s}z \and
z	\date{%s}, z\maketitle
r   z
\begin{thebibliography}{%s}
rL  rK  z	\bibitem[r3  }{r  r%  z\end{thebibliography}
z
\bibliographystyle{%s}
z\bibliography{%s}
minitocz'
\faketableofcontents % for local ToCs
)ra  r	  r  rA   r.  rC   rD   r;   r0  linkingr  rq  rc  rg   rr  rF   r5   ro  rp  rm  rG   rn  rE   rH   r'   r  rv  r_  ry  r  has_latex_toc)rS   r  authorsrF   widest_labelbicite_keys          rT   depart_documentzLaTeXTranslator.depart_document  s    J% 	6J6	6)-Dg& -::<<4466\1D4IIJJJ> 	>+00@@GL 2W <===< 	FMMo.=EEMM : 	:!	:'+'8	:<@I	: WWTZ(()Ez +**} 2%4rwwt}7M7MM!12 2 N!!-',,u2E2E"EFFF? ?,0,=? ? ?GN!!.&0oog&>&>#? @ @ @ N!!,491E1E"EFFF!((999 # 	IDN(;(;A(= 	I; I!. - -B<((RU3 -')!u B!-!. / / /. ? ?B!!u}}UC88HHOOO&(eeeXXXr!uuu%> ? ? ? ? :;;;; = $A!/ 0 0 0 6Q GHHH)) 	J$2D 	JHOOHIIIII	J 	J 	J 	JrU   c                 d    | j                             d           |                     |           d S )Nz\emph{r=  r  s     rT   visit_emphasiszLaTeXTranslator.visit_emphasis  s0    	"""$rU   c                 d    |                      |           | j                            d           d S r@  rA  r  s     rT   depart_emphasiszLaTeXTranslator.depart_emphasis  rC  rU   c                 4   | j                             | j                                                   rf| j                            d           | j                                          | j                             | j                                                   dd S d S )N & )rx  r#  r%  ry  r;   r)  rR   s    rT   (insert_additional_table_colum_delimitersz8LaTeXTranslator.insert_additional_table_colum_delimiters  s    ++ $ 1 B B D DF F 	,HOOE"""))+++ ++ $ 1 B B D DF F 	, 	, 	, 	, 	,rU   c           	         | j                                         dk    r|                                  n| j                            d           d|v rd|v rt          d          d|v rd| j        d<   |d         dz   }| j                             | j                                         |           | j                            d	|| j                                         fz             | j	                            d
           nd|v r| j                                         dk    r| j         
                                }nd}|d         dz   }| j                            d||| j                             | j                                         |          | j         
                                fz             | j	                            d
           n| j	                            d           t          |          rrt          |j        j        t          j                  s| j                                         r5| j                            d           | j	                            d
           n| j	                            d           | j         j        sN| j        d                             d          r.|                                r| j                            d           | j                                          d S )Nr   r  morerowsmorecolszKCells that span multiple rows *and* columns currently not supported, sorry.z\usepackage{multirow}multirowr  z\multirow{%d}{%s}{rC  r/   z\multicolumn{%d}{%s%s%s}{\textbf{r  rB  rG  )rx  r%  r  ry  r;   NotImplementedErrorrA   r!  r  rl  r  r  r  r  r  r	   theadr+  r  endswithr  r)  )rS   r  mrowsbar1mcolss        rT   r)  zLaTeXTranslator.visit_entry$  s   --//14 	#99;;;;HOOE"""  	P*"4 	P% 'O P P P  	$,DDj)$q(E)) ->>@@%I I IHOO1"D$5$F$F$H$HIJ K K KL$$$$4 	$  1133q8 (99;;$q(EHOO8D&<<)::<<  &7799	;; < < < L$$$$L### t99 	$*T[%7EE 	$!.==??	$HOOK(((L$$$$L### !0 	%%%c**	%	% $$$%%'''''rU   c                     | j                             | j                                                   | j                             | j                                                   |                                  d S rN   )ry  r;   rl  r  r  r  s     rT   depart_entryzLaTeXTranslator.depart_entry]  s^    ((**+++((**+++5577777rU   c                 8    | j                                          d S rN   )rx  r  r  s     rT   r  zLaTeXTranslator.visit_rowc  s    ##%%%%%rU   c                 h    | j                             | j                                                   d S rN   )ry  r  rx  r  r  s     rT   r  zLaTeXTranslator.depart_rowf  s+    )446677777rU   c                 P   ddddddd}g d}d}| j         re| j        rG| j        r@| j        s9d	                    d
 | j        d | j                 D                       | j        z   }| j        r|| j        d         z  }||                    dd          z  }||                    dd                   }|                    dd	          }t          | j                  dz   }dt          j
        |                                          z   }|d|d|d|}	| j                            |	           |                     |           |dk    rN| j                            d           |||f||dz
           k    r!| j                            d|d|	d           nad|z  | j        |<   | j                            d           | j                            d|	z             | j                            d|z             d|v r*| j                            d||d         dz
  fz             d S d S )Nr/   r   alphAlphromanRoman)r/   r   
loweralpha
upperalpha
lowerroman
upperroman))r/   r   r3   )(r  ))r/   r  r3   )r/   r  r3   r3   c                 ,    g | ]}t          |          S r   )r  )r  ns     rT   r  z9LaTeXTranslator.visit_enumerated_list.<locals>.<listcomp>|  s0     #N #N #Na3q66 #N #N #NrU   r  r  enumtypesuffixr  enumrA  rB  rC     z\begin{enumerate}z
\renewcommand{\labelr  z\newcounter{%s}z\begin{list}z{%s}z{\usecounter{%s}}r  z
\setcounter{%s}{%d})r8   r9   section_levelrt  rg   rs  rY  r  r  r  toRomanr   r;   r  ry  rC   )
rS   r  typesdefault_labelsr  r  r  enumeration_levelcounter_namerX  s
             rT   visit_enumerated_listz%LaTeXTranslator.visit_enumerated_listi  s   #%%&&( (0 0 0 $ 	93 G8J G2G #N #N#'#78K9K8K#L#N #N #N # #%)%FG ) 9$4R88$((8R(((*h778(C(( :;;A=.? @ @ F F H HH"(&&(((LLL&&I"))%000$! 
	AHOO0111& "#4Q#678 7!-uuu!6 7 7 7 ,>+LDN<(HOOO,,,HOOFUN+++HOO0<?@@@d? 	=HOO4)4=?;< = = = = =	= 	=rU   c                     t          | j                  dk    r| j                            d           n| j                            d           |                     |           | j                                         d S )Nr  z\end{enumerate}
z\end{list}
)r  rt  ry  r;   r  r  r  s     rT   depart_enumerated_listz&LaTeXTranslator.depart_enumerated_list  su    t)**a/ 	-HOO01111HOOO,,,4   "&&(((((rU   c                     d S rN   r   r  s     rT   visit_fieldzLaTeXTranslator.visit_field  r.  rU   c                     d S rN   r   r  s     rT   depart_fieldzLaTeXTranslator.depart_field  r  rU   c                     t          |j        j        t          j                  s/| j                            |                     |                     d S d S rN   )r  r  r	   rI   ry  r;   r  r  s     rT   visit_field_bodyz LaTeXTranslator.visit_field_body  sM    $+,em<< 	5HOOD--d3344444	5 	5rU   c                 Z    | j         | j        u r| j                             d           d S d S )Nr  ry  rI   r;   r  s     rT   depart_field_bodyz!LaTeXTranslator.depart_field_body  s7    8t|# 	(HOOJ'''''	( 	(rU   c                     |                      |           | j        | j        ur7| j        st          j        | j        d<   | j                            d           d S d S )N	fieldlistz\begin{DUfieldlist})r  ry  rI   r~  r0  r  rC   r;   r  s     rT   visit_field_listz LaTeXTranslator.visit_field_list  sg    $84<' 	4+ E.:.D{+HOO233333	4 	4rU   c                     | j         | j        ur| j                             d           |                     |           d S )Nz\end{DUfieldlist}
)ry  rI   r;   r  r  s     rT   depart_field_listz!LaTeXTranslator.depart_field_list  sB    84<' 	4HOO23334     rU   c                     | j         | j        u r| j                             d           d S | j                             d           d S )Nr  z
\item[{r  r  s     rT   visit_field_namez LaTeXTranslator.visit_field_name  sI    8t|# 	*HOOK((((( HOOL)))))rU   c                     | j         | j        u r| j                             d           d S | j                             d           d S )Nz}: &z:}]r  r  s     rT   depart_field_namez!LaTeXTranslator.depart_field_name  sG    8t|# 	#HOOF#####HOOE"""""rU   c                 T   t           j        | j        d<   |                     |           |j                            dd          }|dk    r| j                            d|z             n| j                            d           | xj        |                     |d          z  c_        d S )Nr<  r  r  z\begin{figure} %% align = "%s"
z\begin{figure}
Tr  )	r0  r<  rA   r  r  r  ry  r;   r  )rS   r  	alignments      rT   visit_figurezLaTeXTranslator.visit_figure  s    %1%7'"$ O''::	  	1 HOO?)KLLLLHOO/000D&&tT&:::rU   c                 d    | j                             d           |                     |           d S )NrW  r5  r  s     rT   depart_figurezLaTeXTranslator.depart_figure  s1    )***4     rU   c                 d    |                      g            | j                            d           d S )Nz\newcommand{\DUfooter}{r  ry  r;   r  s     rT   visit_footerzLaTeXTranslator.visit_footer  1    ""2&&&233333rU   c                     | j                             d           d                    | j                   | j        d<   |                                  d S )NrC  r/   z~footerry  r;   rg   rA   r  r  s     rT   depart_footerzLaTeXTranslator.depart_footer  I    ')wwtx'8'8)$!!#####rU   c           
         	 |d         d         }n# t           $ r |d         d         }Y nw xY w| j        r| j        st          j        | j        d<   |d                                         }| j        j        dk    rd|z  }| j	        
                    d|d         d         d|d|                     |          d           |d         |d	         k    r#| xj	        |                     |          z  c_	        t          |          d
k    r>t          |d
         t          j                  r | j	        
                    d           d S d S d S d S )Nbackrefsr   r  	footnotesr   [%s]z%
\DUfootnotetext{r  namesr  rG  )r  rk  r~  r0  r  rC   r  rb   footnote_referencesry  r;   r  r  r  r  r	   r  )rS   r  backrefnums       rT   visit_footnotezLaTeXTranslator.visit_footnote  sx   	%:&q)GG 	% 	% 	%5k!nGGG	%" 	%+ E.:.D{+q'..""C}0J> #slHOOO!%[^^^WWWdkk#6F6F6F6FH I I IE{d7m+ 5D..t4444yy1} %DGU_!E!E %$$$$$	% 	%% % % %s    ,,c                 :    | j                             d           d S rL  rI  r  s     rT   depart_footnotezLaTeXTranslator.depart_footnote  rN  rU   c                    d}d|v r	|d         }nd|v r| j         j        |d                  }| j        j        }|dk    rN|                     |           | j                            d|z             | j                            d           d S | j        st          j
        | j        d<   | j                            d|d	         d
         d|d           | j                            d           d S )Nr/   r\  r]  r   r^  rf  r  z\DUfootnotemark{r  r   r  rC  )r]   r_  rb   r!  r  ry  r;   rl  r~  r0  r  rC   )rS   r  r`  formats       rT   visit_footnote_referencez(LaTeXTranslator.visit_footnote_reference  s   d? 	:=DD$ 	:=(i9D 2Z 		%$$T***HOO/$6777L%%%%%+ E.:.D{+HOOO!%[^^^TTT3 4 4 4L$$$$$rU   c                 h    | j                             | j                                                   d S rN   ry  r;   rl  r  r  s     rT   depart_footnote_referencez)LaTeXTranslator.depart_footnote_reference	  s*    ((**+++++rU   c                     t          |j        t          j                  rt          j        t          |j        t          j                  sJ | j        s| j                            |           d S d S rN   )	r  r  r	   r  rw  r  r'   ry  r;   )rS   r  bracketr   s       rT   label_delimzLaTeXTranslator.label_delim	  si    dk5>22 	). dk5>:::::+ )((((() )rU   c                 4    |                      |dd           dS )z9footnote or citation label: in brackets or as superscriptrO  r<  Nr/  r  s     rT   visit_labelzLaTeXTranslator.visit_label&	  s!    s$899999rU   c                 4    |                      |dd           d S )NrP  rC  r1  r  s     rT   depart_labelzLaTeXTranslator.depart_label*	  s     sC(((((rU   c                     d S rN   r   r  s     rT   visit_generatedzLaTeXTranslator.visit_generated.	  r  rU   c                     d S rN   r   r  s     rT   depart_generatedz LaTeXTranslator.depart_generated1	  r  rU   c                 d    |                      g            | j                            d           d S )Nz\newcommand{\DUheader}{r  r  s     rT   visit_headerzLaTeXTranslator.visit_header4	  r  rU   c                     | j                             d           d                    | j                   | j        d<   |                                  d S )NrC  r/   z~headerr  r  s     rT   depart_headerzLaTeXTranslator.depart_header8	  r  rU   c                 l   |t          j        dt          d           t          j        d|          }|s|S |                                dd         \  }}|dv rd|z  }nS|dk    rd	t          |          d
z  z  }n7| j        r0|dk    r*| j        st          j
        | j        d<   d| j        d<   d|z  }|S )z=Convert `length_str` with rst length to LaTeX length
        NzpLaTeXTranslator.to_latex_length(): The optional argument `pxunit` is ignored and will be removed in Docutils 1.1r  r/  z(\d*\.?\d*)\s*(\S*))r/   r   z%sbprG  z%.3f\linewidth      Y@pxr  z$
\DUprovidelength{\pdfpxdimen}{1bp}
z%s\pdfpxdimen)rP  rN  DeprecationWarningr\  matchgroupsr<  r{  r~  r0  r  rC   )rS   
length_strpxunitrA  r  units         rT   to_latex_lengthzLaTeXTranslator.to_latex_length=	  s      	OM ,-?AO O O O /<< 	llnnRaR(t: 	2%JJS[ 		2*eEll5.@AJJ] 	2tt| 	2 + N3?3M/0#MDN4 )E1JrU   c                 4   | j         | j        d<   |j        }t          |d                                       dd          }d|vr9t          |j        t          j                  rd|d<   | 	                    |           g }g }g }ddd	d
ddd}d|v rV	 ||d                  }|
                    |d                    |
                    |d                    n# t          $ r Y nw xY wd|v r1|
                    d|                     |d                   z             d|v r!|
                    d|d         dz  z             d|v r1|
                    d|                     |d                   z             |                     |          s@t          |j        t          j        t          j        f          s|
                    d           |                     |          s4t          |j        t          j                  s|
                    d           |                                 | j                            |           d}	|rdd                    |          z  }	| j        
                    d|	d|d           | j                            |           d S )Nr  urirA  /r  r  r/   r/   )z\raisebox{-0.5\height}{rC  )z\raisebox{-\height}{rC  )z!\noindent\makebox[\linewidth][c]{rC  )z
\noindent{z\hfill})z\noindent{\hfillrC  )bottommiddletopr  r  r  r   r  heightz	height=%sscalezscale=%fr>  r  zwidth=%sr   r/   r  r  z\includegraphicsrB  rC  )rj  rA   r  r   r  r  r  r	   figurer  r;   r  rF  r  r  r  ry  r  rg   )
rS   r  attrs	imagepathprepostinclude_graphics_optionsalign_codes
align_codeoptionss
             rT   visit_imagezLaTeXTranslator.visit_imageX	  s   (,(=*% u..66tSAA	% 	.$+u|44 *!)g''---#%  74A103 3 e 	(w8


:a=)))JqM****   u 	C$++K 00xAA-B C C Ce 	F$++J-27^e-C-E F F Fe 	B$++J 00w@@-A B B Bt$$ 	4;u~(FGG	JJtt$$ 	4;55	KK# 	D)A B BCGWWWiiiHIIIs   AC 
C#"C#c                 P    | xj         |                     |d          z  c_         d S )NTr  )ry  r  r  s     rT   depart_imagezLaTeXTranslator.depart_image	  s)    D&&tT&:::rU   c                 X   |d         D ]}|                     d          rQ| j                            |dd                    }|r,d| j        j        |<   | j                            d|z             h| j        st          j        | j	        d<   | j                            d|z             d S )Nr  r  r  Tz\foreignlanguage{%s}{inlinez\DUrole{%s}{)
r  ra  r  r	  ry  r;   r~  r0  r]  rC   r  s       rT   r  zLaTeXTranslator.visit_inline	  s    	? 		7 		7C~~k** 7:33CG<< I:>DJ-h7HOO$<x$GHHH/ C/;/BDN8,# 56666		7 		7rU   c                 f    | j                             dt          |d                   z             d S )NrC  r  )ry  r;   r  r  s     rT   r  zLaTeXTranslator.depart_inline	  s-    c$y/22233333rU   c                 p    | j         st          j        | j        d<   | j                            d           d S )Nlegendz\begin{DUlegend})r~  r0  r`  rC   ry  r;   r  s     rT   visit_legendzLaTeXTranslator.visit_legend	  s7    ' 	;'3':DN8$+,,,,,rU   c                 :    | j                             d           d S )Nz\end{DUlegend}
rI  r  s     rT   depart_legendzLaTeXTranslator.depart_legend	  s    +,,,,,rU   c                 :    | j                             d           d S )Nz\item[] rI  r  s     rT   
visit_linezLaTeXTranslator.visit_line	      $$$$$rU   c                 :    | j                             d           d S r  rI  r  s     rT   depart_linezLaTeXTranslator.depart_line	  rr  rU   c                    | j         s(t          j        | j        d<   t          j        | j        d<   |                     |           t          |j        t          j	                  r| j
                            d           d S |                     |           | j
                            d           |                     |           d S )Nr  	lineblockz0\item[]
\begin{DUlineblock}{\DUlineblockindent}
z\begin{DUlineblock}{0em}
)r~  r0  r  rC   rj  r  r  r  r	   
line_blockry  r;   r  r  r  s     rT   visit_line_blockz LaTeXTranslator.visit_line_block	  s    ' 	A/;/IDN+,*6*@DN;'##D)))dk5#344 	0HOO K L L L L L d###HOO9:::))$/////rU   c                 d    | j                             d           |                     |           d S )Nz\end{DUlineblock}
r5  r  s     rT   depart_line_blockz!LaTeXTranslator.depart_line_block	  r  rU   c                 :    | j                             d           d S )Nz
\item rI  r  s     rT   visit_list_itemzLaTeXTranslator.visit_list_item	  rf  rU   c                     d S rN   r   r  s     rT   depart_list_itemz LaTeXTranslator.depart_list_item	  r  rU   c                    d| _         d|d         v r?| j        j        dk    r/t          j        | j        d<   | j        st          j        | j        d<   | j	        
                    d           |                     |           d S )NTcoder  r.   r;  z\texttt{)r  rb   syntax_highlightr0  r;  rA   r~  highlight_rulesrC   ry  r;   r  r  s     rT   visit_literalzLaTeXTranslator.visit_literal	  s    d9o% 	FM*f4	F)5);Dg&+ F)5)Ev&$$$$rU   c                 r    d| _         |                     |           | j                            d           d S )NFrC  )r  r  ry  r;   r  s     rT   depart_literalzLaTeXTranslator.depart_literal	  s7    4   rU   c                 h    t          |          dk    ot          |d         t          j                  S )z,Check whether a node can be typeset verbatimr  r   )r  r  r	   rh  r  s     rT   is_plaintextzLaTeXTranslator.is_plaintext	  s'    D		QCJtAw
$C$CCrU   c           	         ddddd}| j         }|                     |          }| j                                        }|o| j        j        }t
          j        t
          j        f}| j        j	        r|t
          j
        t
          j        fz  }|ot          |j        |           }|dk    o|}	|                     |           | xj        |                     |d          z  c_        |sId|d	         v r?| j        j        d
k    r/t$          j        | j        d<   | j        st$          j        | j        d<   |r|r|sd                    g d          | j        d<   | j                            dt5          d |                                                    d          D                       z             | j                            d           nS|s7|	s5| j                            d           | j                            d           n| j                            d           |r|r|r|	r	 ||         | j        d<   n# t<          $ r Y nw xY wd| _        |r|	r| j                            d           | j                            d|d| j         d           | j                            d|z             dS |rI|sGd| _!        d| j        d<   | j                            d           | j                            d           dS d| _"        d| _#        d| _$        | j                            d           | j                            d           dS ) zjRender a literal block.

        Corresponding rST elements: literal block, parsed-literal, code.
        z6\usepackage{listings}
\lstset{xleftmargin=\leftmargin}z\usepackage{moreverb}z\usepackage{fancyvrb})
lstlistinglistingVerbatimverbatimtabr}  Tr  rt  r  r.   r;  r   )r/   z$% character width in monospaced fontz\newlength{\ttemwidth}z$\settowidth{\ttemwidth}{\ttfamily M}ttemz\begin{minipage}{%d\ttemwidth}
c              3   4   K   | ]}t          |          V  d S rN   )r  )r  r7  s     rT   r  z6LaTeXTranslator.visit_literal_block.<locals>.<genexpr>
  s(      EE4SYYEEEEEErU   z
\end{minipage}
z\begin{quote}
z
\end{quote}
literal_blockz\lstset{xleftmargin=0pt}
r  rC  z	
\end{%s}z\usepackage{alltt}rt  z\begin{alltt}
z
\end{alltt}z\ttfamily\raggedright
r/   N)%rZ  r{  rx  r  r  r	   r  sidebarrb   r=   r   system_messager  r  r  ry  r  ru  r0  r;  rA   r~  rv  rC   rg   r;   maxr  r]  rl  r  r2  r[  rt  r  r  r  )
rS   r  packagesliteral_env
_plaintext	_in_table_autowidth_table_no_env_nodes_use_env_use_listingss
             rT   r  z#LaTeXTranslator.visit_literal_block	  s   
$G7 8#;	= = , &&t,,
%--//	 %I):)I7=/ 	Fe.0DEEMLjm&L&L"L$4B( 	$D&&tT&::: 	F$y/)	F.&8	F *6);Dg&+ F)5)Ev& 	& 	&*: 	& &*YY 09 09 09 &: &:DN6" HOO@EE4;;==+>+>t+D+DEEEEEG H H HL 56666 	&= 	&HOO.///L 23333L%%%  	$8 	$-= 	$,9	$5=k5J!/22    DM ?] ? =>>>HOOO([[$*D*D*DF G G GL ;<<<<< 	$. 	$DJ)>Dg&HOO.///L 011111DL"&D.2D+ HOO7888L#####s   $H5 5
IIc                 :   d| _         d| _        d| _        d| _        d| _        | j                            | j                                                   | j                            | j                                                   | 	                    |           d S r  )
r  r  r  r2  rt  ry  r;   rl  r  r  r  s     rT   r  z$LaTeXTranslator.depart_literal_block;
  s    */'#
((**+++((**+++4     rU   c                 T   |j                             d          }|j                             d          }|r|sd S |dv r#| j                            d|d|d           d S |dk    r| j                            d|z             d S | j                            d	|d|d
           d S )Nr  r  )r(  creatorkeywordssubjectrF   z  pdfz={z},producerz  addtopdfproducer={%s},z  pdfinfo={z}},)r  r  rr  r;   )rS   r  r  r  s       rT   
visit_metazLaTeXTranslator.visit_metaE
  s    ""6**/%%i00 	7 	FHH 	HLwww ?@@@@@Z 	HL :7 BCCCCC Lggg FGGGGGrU   c                     d S rN   r   r  s     rT   depart_metazLaTeXTranslator.depart_metaT
  r  rU   rF  c                    |                      |           d| j        d<   |                                                    t          j                  }|dk    r| j        rddg}n<ddg}n7|                     |dd          }d	|z  d
d                    |          d|z  g}|	                    d|           | j
                            |           |                     |           t          j        )z	math rolez\usepackage{amsmath}amsmathrF  z\(z\)FTr  r  z%%
\begin{%s}
r   r/   r  r  )r  rA   r  rt   r   uni2tex_tablert  r  rg   r  ry  r  r  r	   rw  )rS   r  math_env	math_codewrapperr  s         rT   
visit_mathzLaTeXTranslator.visit_mathW
  s    $'>)$KKMM++K,EFF	s? 
	/z % %.*'''MMF*X5wwv"X-/G 	q)$$$   4   nrU   c                     d S rN   r   r  s     rT   depart_mathzLaTeXTranslator.depart_mathm
  r  rU   c                 v    t          |                                          }|                     ||           d S )N)r  )r   r  r  )rS   r  r  s      rT   visit_math_blockz LaTeXTranslator.visit_math_blockp
  s3    (77x00000rU   c                     d S rN   r   r  s     rT   depart_math_blockz!LaTeXTranslator.depart_math_blockt
  r  rU   c                 X    | j         d         r| j                            d           d S d S )Nr  r  )rl  ry  r;   r  s     rT   visit_optionzLaTeXTranslator.visit_optionw
  s5    < 	"HOOD!!!!!	" 	"rU   c                 0    | j         dxx         dz  cc<   d S )Nr  r  )rl  r  s     rT   depart_optionzLaTeXTranslator.depart_option|
  s&    RArU   c                 b    | j                             |                    dd                     dS )z@Append the delimiter between an option and its argument to body.	delimiterr  N)ry  r;   r  r  s     rT   visit_option_argumentz%LaTeXTranslator.visit_option_argument
  s*    c2233333rU   c                     d S rN   r   r  s     rT   depart_option_argumentz&LaTeXTranslator.depart_option_argument
  r  rU   c                 n    | j                             d           | j                            d           d S )Nz
\item[r   )ry  r;   rl  r  s     rT   visit_option_groupz"LaTeXTranslator.visit_option_group
  s2    $$$ArU   c                 l    | j                                          | j                            d           d S )Nz] )rl  r  ry  r;   r  s     rT   depart_option_groupz#LaTeXTranslator.depart_option_group
  s0    rU   c                     | j         s(t          j        | j        d<   t          j        | j        d<   |                     |           | j                            d           d S )Nr  
optionlistz\begin{DUoptionlist})r~  r0  r  rC   r  r  ry  r;   r  s     rT   visit_option_listz!LaTeXTranslator.visit_option_list
  s\    ' 	C/;/IDN+,+7+BDN<($/00000rU   c                 d    | j                             d           |                     |           d S )Nz\end{DUoptionlist}
r5  r  s     rT   depart_option_listz"LaTeXTranslator.depart_option_list
  s1    /0004     rU   c                     d S rN   r   r  s     rT   visit_option_list_itemz&LaTeXTranslator.visit_option_list_item
  r  rU   c                     d S rN   r   r  s     rT   depart_option_list_itemz'LaTeXTranslator.depart_option_list_item
  r  rU   c                     d S rN   r   r  s     rT   visit_option_stringz#LaTeXTranslator.visit_option_string
  r.  rU   c                     d S rN   r   r  s     rT   depart_option_stringz$LaTeXTranslator.depart_option_string
  r.  rU   c                 2    |                      |d           d S )Nr  r  r  s     rT   visit_organizationz"LaTeXTranslator.visit_organization
  s    n55555rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_organizationz#LaTeXTranslator.depart_organization
  r  rU   c                    |j                             |          }|dk    rBt          |j         t          j        t          j        t          j        t          j        f          rn|dk    rTt          |j         t          j                  r5t          |j         |dz
           t          j        t          j        f          snd| j	        j
        r>|dk    r|                     d|           |dk    r| j                            d           n| j                            d           | xj        |                     |d          z  c_        |                     |           d S )Nr   r  z:LaTeX merges paragraphs in tables with auto-sized columns!	base_noder   Tr  )r  indexr  r	   	list_itemdescriptionr  r  r  rx  r  rN  ry  r;   r  r  )rS   r  r  s      rT   visit_paragraphzLaTeXTranslator.visit_paragraph
  s^   
 !!$''A: 	"*T[%"323 3 	" ai 	"T[%.99	" UQY!7"'/5>!BD D	" - 	"z F		 5@D  F F Fqy &%%%HOOD!!!D&&tT&:::$rU   c                     |                      |           | j        j        s| j                            d           d S d S r  )r  rx  r  ry  r;   r  s     rT   depart_paragraphz LaTeXTranslator.depart_paragraph
  sH    4    / 	"HOOD!!!!!	" 	"rU   c                     t           j        | j        d<   | j                            d           |                     |           | j                            d|d         z             d S )Nr;  r  z"\hyperlink{%s}{\textbf{\color{red}r\  )r0  r;  rA   ry  r;   r  r  s     rT   visit_problematicz!LaTeXTranslator.visit_problematic
  s^    %1%7'"  &&&=WMNNNNNrU   c                 :    | j                             d           d S )N}}rI  r  s     rT   depart_problematicz"LaTeXTranslator.depart_problematic
  rr  rU   c                 F   d|                     dd                                          vrt          j        |                     |          s9t          |j        t          j                  s| j        	                    d           | 
                    |           d| _        d S )Nr   r(  r/   r   T)r  r]  r	   rw  r  r  r  r  ry  r;   r  r2  r  s     rT   	visit_rawzLaTeXTranslator.visit_raw
  s    $((8R0066888 	!. t$$ 	"dk5>::	"HOOD!!!$rU   c                     d| _         |                     |           |                     |          s| j                            d           d S d S )NFr   )r2  r  r  ry  r;   r  s     rT   
depart_rawzLaTeXTranslator.depart_raw
  sU    4   ~~d## 	"HOOD!!!!!	" 	"rU   c                 Z    d}|D ]!}|dk    r|dz  }|dk    r|dz  }|dk     r dS "|dk    S )z7Test whether there are unmatched '{' or '}' characters.r   rB  r  rC  Tr   )rS   ri   r  r  s       rT   has_unbalanced_bracesz%LaTeXTranslator.has_unbalanced_braces
  sb     	 	BSy 
Sy 
qy ttzrU   c           	         t          d          dt          d          dt          d          di}d|v rt          |d                                       |          }|                    d          d	k    s|                     |          r|                     d
|z             |d         |                                k    r)| j                            d|z             t          j
        | j                            d|z             d S d|v r	|d         }n,d|v r| j        j        |d                  }nt          d          |                     |          s| j                            d           | j                            d|z             | j        rF| j                            d| j        d|                    dd          d           t          j
        d S )NrD  rE  rG  rH  rA  r  refuriz^^r  zYExternal link "%s" not supported by LaTeX.
 (Must not contain "^^" or unbalanced braces.)z\url{%s}z
\href{%s}{r\  r]  zUnknown reference.r   z\hyperref[%s]{rB  r/   r  )rs  unicodert   r|  r  rO  r  ry  r;   r	   rw  r]   r_  AssertionErrorr  rW  r  )rS   r  special_charsr`  s       rT   visit_referencezLaTeXTranslator.visit_reference
  s   S6S6TG
 t 	4>**44]CCDyy"$ M(B(B4(H(H M

EGKLM M M H~. %d 2333n$HOOMD0111Fd? 	7=DD$ 	7=(i9DD !5666~~d## 	"HOOD!!!)D0111  	!HOOO!222DLLb4I4I4I4IK L L L. 	! 	!rU   c                     | j                             d           |                     |          s| j                             d           d S d S )NrC  r   )ry  r;   r  r  s     rT   depart_referencez LaTeXTranslator.depart_reference  sN    ~~d## 	"HOOD!!!!!	" 	"rU   c                 2    |                      |d           d S )Nrevisionr  r  s     rT   visit_revisionzLaTeXTranslator.visit_revision  s    j11111rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_revisionzLaTeXTranslator.depart_revision  r  rU   c                 p    | j         st          j        | j        d<   | j                            d           d S )Nrubricz
\DUrubric{)r~  r0  r  rC   ry  r;   r  s     rT   visit_rubriczLaTeXTranslator.visit_rubric   s8    ' 	;'3':DN8$ 	(((((rU   c                 :    | j                             d           d S rL  rI  r  s     rT   depart_rubriczLaTeXTranslator.depart_rubric'  rN  rU   c                     | xj         dz  c_         | j                            d           | j        | j         dz
  xx         dz  cc<   d S )Nr  r   )r  rs  r;   r  s     rT   visit_sectionzLaTeXTranslator.visit_section*  sZ    a##A&&&T/!3444944444rU   c                 X    | j                                          | xj        dz  c_        d S r(  )rs  r  r  r  s     rT   depart_sectionzLaTeXTranslator.depart_section1  s1      """arU   c                     |                      |           t          j        | j        d<   | j        st          j        | j        d<   | j                            d           d S )Nr;  r  z\DUsidebar{)	r  r0  r;  rA   r~  r  rC   ry  r;   r  s     rT   visit_sidebarzLaTeXTranslator.visit_sidebar6  sZ    $%1%7'"' 	=(4(<DN9%'''''rU   c                 d    | j                             d           |                     |           d S rL  r5  r  s     rT   depart_sidebarzLaTeXTranslator.depart_sidebar=  s0    4     rU   )u   —r/   )r  r  rJ  r*   c                     | j         | j        j                 \  }}| j                            d           | j                            |           | j                            |           d S )Nz\nopagebreak

\raggedleft )attribution_formatsrb   attributionry  r;   rl  )rS   r  r  r  s       rT   visit_attributionz!LaTeXTranslator.visit_attributionF  s]    1$-2KL8999F#####rU   c                 n    | j                             | j                                        dz              d S r  r+  r  s     rT   depart_attributionz"LaTeXTranslator.depart_attributionL  s/    ((**T122222rU   c                 2    |                      |d           d S )Nstatusr  r  s     rT   visit_statuszLaTeXTranslator.visit_statusO  s    h/////rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_statuszLaTeXTranslator.depart_statusR  r  rU   c                 d    | j                             d           |                     |           d S )Nr  r=  r  s     rT   visit_strongzLaTeXTranslator.visit_strongU  s0    $$$$rU   c                 d    |                      |           | j                            d           d S r@  rA  r  s     rT   depart_strongzLaTeXTranslator.depart_strongY  rC  rU   c                     t           j        rN   )r	   rw  r  s     rT   visit_substitution_definitionz-LaTeXTranslator.visit_substitution_definition]  s
    nrU   c                 0    |                      |           d S rN   )unimplemented_visitr  s     rT   visit_substitution_referencez,LaTeXTranslator.visit_substitution_reference`  r  rU   c                 D   t          |j        t          j                  rm|                     | j                   | j        st          j        | j	        d<   | j
        j        dk    }| xj        |                     |d|          z  c_        d S t          |j        t          j                  r?| j                            d| j                            | j        dz             z             d S | j        st          j        | j	        d<   | j                            d           d S )	Ndocumentsubtitler  Fr  z\%s*{r  rG   z
\DUsubtitle{)r  r  r	   r]   r  rG   r~  r0  r  rC   rb   rf  rn  r  r|  ry  r;   rh  r  r  s      rT   visit_subtitlezLaTeXTranslator.visit_subtitlec  s.   dk5>22 	/&&t}555+ S5A5R12}2h>G  D$6$6t?F %7 %H %H H     U]33 	/HOOH!\11$2Dq2HIIJ K K K K K + C-9-Bz*HOO-.....rU   c                     t          |j        t          j                  r|                                  d S | j                            d           d S rL  )r  r  r	   r]   r  ry  r;   r  s     rT   depart_subtitlezLaTeXTranslator.depart_subtitlet  sJ    dk5>22 	#%%'''''HOOE"""""rU   c                    t           j        | j        d<   | j        st           j        | j        d<   | j        j        rt           j        | j        d<   dg|d<   | 	                    |           | j        j        r| j
                            d           n| j
                            d           |                     |           	 d|d         z  }n# t          $ r d	}Y nw xY w| j
                            d
|d         d|d         d|                     |d                   d|d	           t          |d                   dk    rE| j
                            d|d         d         z             | j                            d           d S d t#          |d                   D             }| j                            dd                    |          z              d S )Nr;  rF   zsystem-messager  z)
\DUtitle[system-message]{system-message
z
\DUtitle{system-message
z	, line~%sr7  r/   z}

{\color{red}typerI  r  z} in \texttt{sourcerC  r   r  r  z
\hyperlink{%s}{r   c                 (    g | ]\  }}d ||dz   fz  S )z\hyperlink{%s}{%d}r  r   )r  r  r`  s      rT   r  z8LaTeXTranslator.visit_system_message.<locals>.<listcomp>  s?     F F F%Q .qs; F F FrU   z
backrefs: r  )r0  r;  rA   r~  rF   rC   rb   r=   title_legacyr#  ry  r;   r  r  r  r  rl  r  rg   )rS   r  r7  r  s       rT   visit_system_messagez$LaTeXTranslator.visit_system_messagez  s   %1%7'"' 	9&2&8DN7#=/ 	@&2&?DN7#+,Yd###=/ 	<HOOJKKKKHOO:;;;  &&&	f-DD 	 	 	DDD	v,,,W++d8n5555ttt= 	> 	> 	> tJ  A% 	CHOO04
3CA3FFGGGL$$$$$F F)24
3C)D)DF F FHLsxx/A/A ABBBBBs   C CCc                     | j                             | j                                                   |                     |           d S rN   )ry  r;   rl  r  r&  r  s     rT   depart_system_messagez%LaTeXTranslator.depart_system_message  s>    ((**+++t$$$$$rU   c                 <   |                      |           t          j        | j        d<   | j        j        st          j        | j        d<   | j                                        r4| j	        
                    | j                   t          | d          | _        | j        j        dk    rt          |j        t          j                  rn|j                            |          dk    rP| j                            | j                                      d          dk    r| j        
                    d           | j                                         | j                            || j                   | j        j        d	k    r
d
| j        d	<   |                     g            d S )Nr=  table1tabularr  r  r  r  r  r   z\usepackage{booktabs})r  r0  r=  rA   rb   r>   table_columnwidthrx  r  rw  r;   r  r  r  r  r	   r|  r  rh  r  r|  ry  r   r  r  r  r  s     rT   visit_tablezLaTeXTranslator.visit_table  s   $%1%7'"}1 	I*6*HDh'$$&& 	7##D$5666 %dI 6 6D )[8 	,t{EM22	,Kd##q(	, L  !34499+FF"L	, HOON+++   ))$>>>$
2 	E,DDj)""2&&&&&rU   c                    | j         }|                                  	 |                     |d                   }n# t          $ r d}Y nw xY w| j                             | j                            |                     | xj         |z  c_         | j                             | j                                        dz              | j                                         t          | j
                  dk    r| j
                                        | _        | xj         |                     |dd          z  c_         |                     |           d S )Nr  r  r   r   FTr  )ry  r  rF  r  r;   rx  r  r  rl   r  rw  r  r  r  )rS   r  r  r  s       rT   depart_tablezLaTeXTranslator.depart_table  sA   (!!###	"((g77EE 	" 	" 	"!EEE	" 	)55e<<===G)5577$>???!!!t  " 	7 $ 0 4 4 6 6D 	D&&tt&LLL4     s   9 AAc                     d|v sd|v sd|v rd S | j                             d           t          |j        t          j        t          j        f           }| xj         |                     ||          z  c_         d S )Nr  r\  r]  r  )ry  r;   r  r  r	   r  rF   r  )rS   r  r  s      rT   visit_targetzLaTeXTranslator.visit_target  s     	$	D 	 F#DK%-1MNNN
D&&tZ888rU   c                     d S rN   r   r  s     rT   depart_targetzLaTeXTranslator.depart_target  r  rU   c                     | j                             d          s,|                     |           |                     d            d S d S )Npreamble written)rx  r  r  r  r  s     rT   visit_tbodyzLaTeXTranslator.visit_tbody  sV      $$%788 	$T"""d#####	$ 	$rU   c                     d S rN   r   r  s     rT   depart_tbodyzLaTeXTranslator.depart_tbody  r  rU   c                 :    | j                             d           dS )zdefinition list termz\item[{NrI  r  s     rT   
visit_termzLaTeXTranslator.visit_term  s     	
#####rU   c                     | j                             d           |                    dd          }t          |t          j                  s/| j                             |                     |                     d S d S )Nz}] FTrc  )ry  r;   rg  r  r	   
classifierr  )rS   r  rg  s      rT   depart_termzLaTeXTranslator.depart_term  st     NN54N@@	)U%566 	:HOOD--i8899999	: 	:rU   c                     d S rN   r   r  s     rT   visit_tgroupzLaTeXTranslator.visit_tgroup  r  rU   c                     d S rN   r   r  s     rT   depart_tgroupzLaTeXTranslator.depart_tgroup  r  rU   c                     | j         S rN   )_thead_depthrR   s    rT   r  zLaTeXTranslator.thead_depth  r&  rU   c                    | xj         dz  c_         d|                                 k    rP| j                            d| j                            |          z             | j                            dd           | j                            | j                                                   | j                            | j        	                                           d S )Nr  z{%s}
r  )
r-  r  ry  r;   rx  r  r  r   r  r  r  s     rT   r  zLaTeXTranslator.visit_thead  s    Q  """ 	9HOOHt'8'E'Ed'K'KKLLL!!"4a888)5577888)557788888rU   c                     |_| j                             | j                                                   | j                                        r|                    |            | xj        dz  c_        d S r(  )ry  r  rx  r  r  r^   r-  r  s     rT   r  zLaTeXTranslator.depart_thead  sp     	%HOOD-::<<=== --// %t$$$QrU   c                    t          |j        t          j                  rx|                     | j                   | j                            d           | j                            d| 	                    |
                                          z             dS t          |j        t          j                  s>t          |j        t          j                  st          |j        t          j                  r|j        d         p|j        j        g}| j        j        rEt"          j        | j        d<   | j                            dd                    |          z             n5| j        st"          j        | j        d<   | j                            d           | j                            d           dS t          |j        t          j                  r;|                     | j        j                   | j                            d           dS t5          t"          d	          rt"          j        | j        d	<   | j        }| j                            |          }| j                            d
           |tA          | j        j!                  k    r| j        j        r/t"          j        | j        d<   |dtE          j#        |          z  z  }n^| j        s(t"          j        | j        d<   t"          j$        | j        d<   | j                            dtE          j#        |          z             d|j        d         v r]t"          j%        | j        d<   | 	                    |
                                          }| j                            d|d|d           n| j                            d|z             dg}|| &                    |j        d          z  }| j                            d                    |          dz              |tA          | j        j!                  k    r#| j        j        s| j        dxx         dz  cc<   dS dS dS )z Append section and other titles.r/   z  pdftitle={%s},r  rF   z
\DUtitle[%s]{r  z

\DUtitle{r%  r  z

z[section%s]r  z\begin{DUclass}{section%s}
zsystem-messagesr;  rA  rO  z]{\color{red}z\%s{F)r  r  z%
}
r  r  N)'r  r  r	   r]   r  rF   rl  r;   rr  r  r  topicr   r  tagnamerb   r=   r0  r  rC   ry  rg   r~  r=  rx  r  r  r  rA   r  rh  r|  r  r  r  r  r  r;  r  )rS   r  r  r  section_namesection_titlebookmarks          rT   visit_titlezLaTeXTranslator.visit_title	  s    dk5>22 =	7&&tz222L###L 2 $DKKMM : :!; < < < < < ek22 7	7e&6777	7em447	7 k),E1D0EG}3 0*6*Cw' 2SXXg5F5F FGGGG/ A.:.@DN7+///L&&&&&U[11 *	7&&t'8'@AAAL##### |]33 L3?3K!-0&E<//66LHOOF###s4<0111 
<=7 <.:.GDN7+ MEM%4H4H$HHLL3 I2>2Dw/4@4Hy1HOO$C&+mE&:&:%; < < < "T[%;; 8-9-?!'* $DKKMM : : ,mmm!= > > > > , 6777 tH **4;5*IIIHLX 6 6 ABBBDL1222 7<7R   $66     7 7 7 7rU   c                     | j                             | j                                                   t	          |j        t          j        t          j        f          r| 	                                 d S d S rN   )
ry  r;   rl  r  r  r  r	   r=  r]   r  r  s     rT   depart_titlezLaTeXTranslator.depart_titleM  sc    ((**+++dkEK#@AA 	(%%'''''	( 	(rU   c           	          | j         r~d|d         v rt| j                            | j                  }dddd}d| j        j        v r|d= 	 ||         }n4# t
          $ r' |                     d	|z  |
           t          j        w xY w| j	        
                    d           |d         r%| xj	        |                     |d          z  c_	        t          |                                t          j                  rd|d         vrw| j        j        dk    rg| j	        
                    d| j        dz   |                                                                |                    ddg          d         fz             | j         s+t&          j        | j        d<   |                     |           dS |                    dd          }t/          | j        j                  }t          |                                t          j                  r.|                     |d                                                   }nd}d|d         v rt&          j        | j        d<   d|z  | j        d|z   <   d||fz  | j        d|z  <   dddd}d| j        j        v rd|d<   |r(| j	        
                    d ||||         z   fz             | j	        
                    d!|d"|d#           | j	        
                    d$|z             n{|r5| j	        
                    d%| j                            |          z             |d&k    r| j	        
                    d'|z             | j	        
                    d(           d| _        t          j        ))z_Write the table of contents.

        Called from visit_topic() for "contents" topics.
        localr  rr   minisect)rr   r  r|  r  r|  zUSkipping local ToC at "%s" level.
  Feature not supported with option "use-latex-toc"r  r   r   Tr  r  z\pdfbookmark[%d]{%s}{%s}
r  r  contentsr   ztoc-listNr  r/   r  z\do%stoczminitoc-z\mtcsetdepth{%stoc}{%d}zminitoc-%s-depth)r<  r;  rr   r  z\setcounter{%stocdepth}{%d}z\mtcsettitle{ztoc}{r%  z\%stoc
z\setcounter{tocdepth}{%d}
Contentsz!\renewcommand{\contentsname}{%s}
z\tableofcontents
)r4   rh  r|  r  r  r  rN  r	   rw  ry  r;   r  r  rg  rF   rb   rf  r  r  r0  toc_listrC   r  r  r  r  rA   r  r  )	rS   r  r3  minitoc_namesmtc_namer  maxdepthrF   offsets	            rT   visit_contentszLaTeXTranslator.visit_contentsR  s     	%'T)_"< 	%<//0BCCL%+'-'-/ /M DL11 .!),%(6 % % %		 N&'26  8 8 8 n$	% 	= 	?HH**4*>>>HHt~~''55 	@tI.	@+x7	@ HOO9!/1!^^--4466!XXej\::1=?? @ @ @ ! 	)5)>DN:&d###F !$$t|,--dnn&&44 	KKQ 0 011EEEd9o% 	&+7+?Di(5@5IDj12*h-AA 08;<  A66FDL11 $!#v F >!)56(3C+C D!E F F F HOOOHHHeeeLMMMHOOK(23333 K >"&,"B"B5"I"I!J K K K
" P F NOOOHOO1222!%Dns   	A 1Bc                    d|d         v r|                      |           d S d|d         v r| j        j        ry|                     | j                   | j                            d           t          |                                t          j
                  r|                    d           d S d S d|d         v rV| j        st          j        | j        d<   | j        j        rt          j        | j        d<   |                     | j                   n\d|d         v r6| j        st          j        | j        d<   |                     | j                   n|d                             dd           |                     |           d S )Nr=  r  rK   z\begin{abstract}r   rJ   r1  )rD  rb   r6   r  rK   ry  r;   r  rg  r	   rF   r  r~  r0  rC   r=   abstract_legacyrJ   r  r3  r  s     rT   visit_topiczLaTeXTranslator.visit_topic  s    i( 	)%%%%%DO+ 	)m.	)&&t}555HOO/000$..**EK88   T)_, 3/ G1=1FDN:.=7 N1=1MDN:.**4=9999i0 3/ K3?3JDN<0**4?;;;;Y&&q'222""4(((((rU   c                 &   d|d         v r'| j         j        r| j                            d           n5d|d         v r|                     |           n|                     |           d|d         v s
d|d         v r|                                  d S d S )NrK   r  z\end{abstract}
r=  rJ   )rb   r6   ry  r;   r  r6  r  r  s     rT   depart_topiczLaTeXTranslator.depart_topic  s    $y/) 	*m.	*HOO/00004	?* 	*t$$$$##D)))$y/) 	(DO+	(%%'''''	( 	(rU   c                     | j         st          j        | j        d<   | j                            d           | j                            d           d S )N
transitionzN
%___________________________________________________________________________
z\DUtransition
)r~  r0  rK  rC   ry  r;   r  s     rT   visit_transitionz LaTeXTranslator.visit_transition  sM    ' 	C+7+BDN<(/000*+++++rU   c                     d S rN   r   r  s     rT   depart_transitionz!LaTeXTranslator.depart_transition  r  rU   c                 2    |                      |d           d S )Nversionr  r  s     rT   visit_versionzLaTeXTranslator.visit_version  r  rU   c                 0    |                      |           d S rN   r  r  s     rT   depart_versionzLaTeXTranslator.depart_version  r  rU   c                 :    t          d|j        j        z            )Nz$visiting unimplemented node type: %s)r  	__class__rx   r  s     rT   r  z#LaTeXTranslator.unimplemented_visit  s$    !"H"&."9#: ; ; 	;rU   )TFFrN   )rF  )rx   ry   rz   r$  r{  r8   r9   rY  r  r  r  r2  r  r  r  rt  r   rO   rH  rS  r  r  r\  compiler  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r#  r&  r)  r+  r-  r0  r3  r6  r8  r:  r>  rB  rE  rG  rJ  rM  rQ  rS  rU  rY  ra  rm  ro  rq  r  ru  rx  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r$  r&  r)  r,  r/  r2  r4  r6  r8  r:  r<  rF  rY  r[  r  r  ra  rc  re  rh  rl  rn  rp  rr  rw  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r
  r  r  r  r  r  r  r   r"  r$  r'  r)  r+  r-  r  r  r  r6  r8  rD  rG  rI  rL  rN  rQ  rS  r  r   rU   rT   rP   rP   [  s         H ! &+" $' 
 MM ',#H!&NGE-2 aI aI aI aIR     D'& '& '&R: : :U U Up %"*^446 6 6 6: : :@ @ @ <A#    @ @ @. . . .@ @ @$4 4 4  ( ( (  44 4 4       ! ! !     ! ! !1 1 1' ' '1 1 1"! ! !0 0 0' ' '    * * *! ! !, , ,! ! !              ( ( (         + + +/ / /8 8 8"" " "&& & &  . . .           ! ! !1 1 1' ' '     ! ! !3 3 3' ' '. . .' ' '        2 2 2! ! !        1 1 13 3 3 + + +6$ $ $
' ' '( ( (E E E?J ?J ?JB       , , ,7( 7( 7(r8 8 8& & &8 8 8/= /= /=d) ) )    5 5 5( ( (4 4 4! ! !
* * *# # #; ; ;! ! !4 4 4$ $ $
% % %(  % % %6, , ,) ) ): : :) ) )    4 4 4$ $ $
   65 5 5n; ; ;
7 
7 
74 4 4- - -
- - -% % %  0 0 0! ! !% % %         (D D DP$ P$ P$d! ! !H H H     ,  1 1 1  " " "
  4 4 4    
  1 1 1! ! !        6 6 6' ' '     4" " "
O O O    " " "
 
 
 !  !  !D" " "
2 2 2' ' ') ) )  : : :     
( ( (! ! ! $0*4%/#+- -
$ $ $3 3 30 0 0' ' '         ' ' '/ / /"# # #C C C8% % %' ' ',! ! !09 9 9  $ $ $  $ $ $: : :     L! ! !9 9 9  @7 @7 @7H( ( (
J J JX) ) )6
( 
( 
(, , ,  1 1 1' ' '; ; ; ; ;rU   rP   )Gr$  
__future__r   __docformat__re   r\  ri   sysrP  version_infor  r   urllibr   urllib.requestr  ImportErrordocutils.utils.romanr   rD  r   r	   r
   r   docutils.utils.error_reportingr   docutils.transformsr   docutils.utils.mathr   r   r  r  r   objectr   r%  r(  r0  r;  r<  r  r  r=  r  r>  rF  r!  r"  r  r?  r8  rf   rg   r}   r~   r   _du_styr5  r7  r3  r  r4  
block_namedefinitionsr`   r@  rz  r  rM  rP   r   rU   rT   <module>rf     s   $ #      " 
			 				  



 f ,#######++++++)LLLL ) ) )((((((((((()  ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5 5 5 5 5 5 * * * * * * B B B B B B B Bv GG2 G2 G2 G2 G2W^ G2 G2 G2Tj j j j jF j j j`8 8 8 8 84 8 8 822 2 2 2 26 2 2 2
 / >   6  "r I  C 
" ? 	   # # # ',,rwrwx'@'@AA$& &	T'F### 7r 7 7zz&!!}}T"" 	[[%%
 	!k"oo@@ 	.%++--K 	j+666677 7 7 7 7 7 7 7 7 7 7 7 7 7 7(h h h h hv h h h^& & & & &F & & &RQ Q Q Q QF Q Q Qh{!; {!; {!; {!; {!;e' {!; {!; {!; {!; {!;s$   A AA6A9G<<H H 