
    N&ia                    n   d Z ddlZddlZddlZddlZddlZddlZddlZ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 ddlmZ ddlmZmZmZmZmZ ej        d	k    rdd
lmZ ndd
lmZ ej        d	k    re Z! G d dej"                  Z" G d dej#                  Z$ G d dej%                  Z&dS )z,common definitions for Docutils HTML writers    N)frontend	languagesnodesutilswriters) length_or_percentage_or_unitless)PIL)
SafeString)
writer_aux)unichar2texpick_math_environment	math2htmllatex2mathmltex2mathml_extern)   r   )url2pathnamec                      e Zd ZdZ	 ddddgddifdd	gd
dej        dfddgddej        dfddgdej        dfddgddej        dfddgdddfdd gd!                                d"d#d$fd%d&gd'd(gd(d)d*d+fd,d-gg d.d/d)d$fd0d1gd2dej        dfd3d4gd5ddfd6d7gd2dej        dfd8d9gd:ddfd;d<gd=d>ifd?d@gd=dAifdBdCgdDdej        dfdEdFgdGddfdHdIgdej        dJfffZdKdLiZ	dMZ
dNZdOZdP ZdQ ZdR ZdS ZdT ZdS )UWriter)htmlxhtmlzHTML Writer OptionsNzFSpecify the template file (UTF-8 encoded). (default: writer dependent)z
--templatemetavarz<file>zhComma separated list of stylesheet URLs. Overrides previous --stylesheet and --stylesheet-path settings.z--stylesheetz<URL[,URL,...]>stylesheet_path)r   	overrides	validatorzComma separated list of stylesheet paths. 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 HTML file. (default: writer dependent)z--stylesheet-pathz<file[,file,...]>
stylesheetzComma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. (default: writer dependent)z--stylesheet-dirsz<dir[,dir,...]>)r   r   zvEmbed the stylesheet(s) in the output HTML file.  The stylesheet files must be accessible during processing. (default)z--embed-stylesheet   
store_true)defaultactionr   z3Link to the stylesheet(s) in the output HTML file. z--link-stylesheetembed_stylesheetstore_false)destr   z}Specify the initial header level. Does not affect document title & subtitle (see --no-doc-title).(default: writer dependent).z--initial-header-levelz1 2 3 4 5 62z<level>)choicesr   r   zYFormat for footnote references: one of "superscript" or "brackets". (default: "brackets")z--footnote-referencessuperscriptbracketsz<format>trim_footnote_reference_space)r$   r   r   r   zyFormat for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none". (default: "dash")z--attributiondashparenthesesparensnoner)   zgRemove extra vertical whitespace between items of "simple" bullet lists and enumerated lists. (default)z--compact-listsTz3Disable compact simple bullet and enumerated lists.z--no-compact-listscompact_listszORemove extra vertical whitespace between items of simple field lists. (default)z--compact-field-listsz#Disable compact simple field lists.z--no-compact-field-listscompact_field_listszAdded to standard table classes. Defined styles: borderless, booktabs, align-left, align-center, align-right, colwidths-auto, colwidths-grid.z--table-styler    zmMath output format (one of "MathML", "HTML", "MathJax", or "LaTeX") and option(s). (default: "HTML math.css")z--math-outputzHTML math.csszPrepend an XML declaration. z--xml-declarationFzOmit the XML declaration.z--no-xml-declarationxml_declarationzyObfuscate email addresses to confuse harvesters while still keeping email links usable with standards-compliant browsers.z--cloak-email-addresses)r   r   output_encoding_error_handlerxmlcharrefreplacezhtml writers)r   )head_prefixheadr   body_prefixbody_pre_docinfodocinfobodybody_suffixtitlesubtitleheaderfootermetafragmenthtml_prolog	html_head
html_titlehtml_subtitle	html_bodyc                 \    t           j                            |           t          j        gz   S N)r   r   get_transformsr   Admonitionsselfs    h/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/docutils/writers/_html_base.pyrG   zWriter.get_transforms   s#    ~,,T22j6L5MMM    c           	          |                      | j                  x| _        }| j                            |           | j        D ]!}t          | |t          ||                     "|                                 | _        d S rF   )	translator_classdocumentvisitor	walkaboutvisitor_attributessetattrgetattrapply_templateoutput)rJ   rP   attrs      rK   	translatezWriter.translate   s|    !%!6!6t}!E!EEw(((+ 	8 	8DD$ 6 67777))++rL   c                     t          | j        j        j        d          }t	          |                                d          }|                                 |                                 }||z  S )Nrbutf-8)openrO   settingstemplateunicodereadcloseinterpolation_dict)rJ   template_filer^   subss       rK   rU   zWriter.apply_template   sa    T]3<dCC=--//99&&(($rL   c                     i }| j         j        }| j        D ];}d                    t	          | |                                        d          ||<   <|j        |d<   t          j        |d<   |S )Nr/   
encodingversion)	rO   r]   rR   joinrT   rstripoutput_encodingdocutils__version__)rJ   rd   r]   rW   s       rK   rb   zWriter.interpolation_dict   sr    =)+ 	C 	CDt!4!455<<TBBDJJ#3Z".YrL   c                     t           j                            |            | j        D ]-}d                    t          | |                    | j        |<   .d S Nr/   )r   r   assemble_partsrR   ri   rT   parts)rJ   parts     rK   rp   zWriter.assemble_parts   sY    %%d++++ 	< 	<D!wwwtT':':;;DJt	< 	<rL   )__name__
__module____qualname__	supportedr   validate_comma_separated_listvalidate_booleansplitsettings_specsettings_defaultsconfig_sectionconfig_section_dependenciesrR   rG   rX   rU   rb   rp    rL   rK   r   r   -   s       !I'*D(.h

!L
'6G >@ @
A
(
 
) >@ @
A( 
' >@ @	
AB
 < 13 3
4
 @
%
?
?
A) $
$#))++! !	
"."
#$j1j 79 9
: 
???5 5	
62
l 13 3
4
 @
 "m
<
<
>"
#l 13 3
4
 0%
&(M
B
B
D, 
b/
' 
o
&	
(
 )
| 13 3
4 &!
"$
>
>
@J$
%!0I
J
J
LiX3
 XMt 9:MN#N"/N N N, , ,    < < < < <rL   r   c                      e Zd ZdZdZdZeZdZdZdZ	dZ
dZ	 d	Zd
Z ej        d          Z ej        dej                  ZdZ ed          d ed          d ed          d ed          d ed          diZ	 d Zd Zd Zd Zd Z ej        d          fdZdd Zdd#Zdd$Zdd&Zd' Z d( Z!d) Z"d* Z#d+ Z$d, Z%d- Z&d. Z'd/ Z(dd0Z)d1d2d2d3d4Z*d5 Z+d6 Z,d7 Z-d8 Z.d9 Z/d: Z0d; Z1d< Z2d= Z3d> Z4d? Z5d@ Z6dA Z7dB Z8dC Z9dD Z:dE Z;dF Z<dG Z=dH Z>dI Z?dJ Z@ ej        dK          jA        fdLZBdM ZCdN ZDdO ZEdP ZFdQ ZGdR ZHdS ZIdT ZJdU ZKdV ZLdW ZMdX ZNdY ZOdZ ZPd[ ZQd\ ZRd] ZSd^ ZTd_ ZUd` ZVda ZWdb ZXdddZYde ZZdf Z[dg Z\dh Z]di Z^dj Z_dk Z`dl Zadm Zbdn Zcdo Zddp Zedq Zfdr Zgds Zhdt Zidu Zjdv Zkdw Zldx Zmdy Zndz Zod{ Zpd| Zqd} Zrd~ Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zddddd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 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 Zd Zd Zd Zd ZdS )HTMLTranslatorai  
    Generic Docutils to HTML translator.

    See the `html4css1` and `html5_polyglot` writers for full featured
    HTML writers.

    .. IMPORTANT::
      The `visit_*` and `depart_*` methods use a
      heterogeneous stack, `self.context`.
      When subclassing, make sure to be consistent in its use!

      Examples for robust coding:

      a) Override both `visit_*` and `depart_*` methods, don't call the
         parent functions.

      b) Extend both and unconditionally call the parent functions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">')
               html4css1.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               html4css1.HTMLTranslator.depart_example(self, node)
               if foo:
                   self.body.append('</div>')

      c) Extend both, calling the parent functions under the same
         conditions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">
')
               else: # call the parent method
                   _html_base.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               if foo:
                   self.body.append('</div>
')
               else: # call the parent method
                   _html_base.HTMLTranslator.depart_example(self, node)

      d) Extend one method (call the parent), but don't otherwise use the
         `self.context` stack::

           def depart_example(self, node):
               _html_base.HTMLTranslator.depart_example(self, node)
               if foo:
                   # implementation-specific code
                   # that does not use `self.context`
                   self.body.append('</div>
')

      This way, changes in stack use will not bite you.
    z%<?xml version="1.0" encoding="%s" ?>
z<!DOCTYPE html>
zW<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="%(lang)s" lang="%(lang)s">
<head>
z<meta charset="%s"/>
zR<meta name="generator" content="Docutils %s: http://docutils.sourceforge.net/" />
z2<script type="text/javascript" src="%s"></script>
z-file:/usr/share/javascript/mathjax/MathJax.jsz4<link rel="stylesheet" href="%s" type="text/css" />
z%<style type="text/css">

%s
</style>
z[^ \n]+| +|\nz.+\W\W.+|[-?].+lang&z&amp;<z&lt;"z&quot;>z&gt;@&#64;c                     t           j                             |           |j        x _        }|j        }t          j        ||j                   _         j	        t          j        z  g _        g  _        g  _        |j        rF j                             j        |j        z              j                             j                    j        d d           _         fdt'          j        |          D              _        dg _        g  _        g  _        g  _        g  _        dg _        d _        t;          |j                   _        t?          |dd            _         t?          |dd           du r.tC          j"        dtF          d	
            j         d k    rd _         t?          |dd           du rtC          j"        dtF          d	
            j         d k    rd _         |j$        %                                 _$         j$        dd           _&         j$        d         '                                 _$        g  _(        	 g  _)        d _*        d _+        d _,        d _-        d _.        g  _/        g  _0        g  _1        g  _2         j3        g _4        g  _5        g  _6        g  _7        d _8        d _9        d _:        g  _;        d S )Nc                 :    g | ]}                     |          S r~   )stylesheet_call).0pathrJ   s     rK   
<listcomp>z+HTMLTranslator.__init__.<locals>.<listcomp>-  s=     L L L#  //55 L L LrL   z</head>
<body>
z</body>
</html>
r   image_loadingembed_imagesTzeThe configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: embed".   )
stacklevelembedFzdThe configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".linkr   )<r   NodeVisitor__init__r]   language_coder   get_languagereporterlanguage	generatorrl   rm   r>   r3   r@   r0   appendrk   r4   r   get_stylesheet_listr   r5   r6   r7   r8   r?   r9   section_levelintinitial_header_levelrT   r   warningswarnFutureWarningmath_outputry   math_output_optionslowercontextcolspecs	compact_pcompact_simplecompact_field_list
in_docinfo
in_sidebarr:   r;   r<   r=   content_typerA   rB   rC   rD   in_document_title	in_mailtoauthor_in_authorsmath_header)rJ   rO   r]   lcodes   `   rK   r   zHTMLTranslator.__init__  s   ""4222#+#44&!.uh6GHH^h&::;	# 	:##D$8&.&>%? @ @ @ ##D$8999IaaaL	L L L L','@'J'JL L L/0 "	01$'(E$F$F!$XEE8^T22d::M O!- - - - !T))%,"8^T22e;;M N!- - - - %%!'D#/5577#'#3ABB#7 +A.4466	H
 #"'
+,!"!&rL   c                     d                     | j        | j        z   | j        z   | j        z   | j        z   | j        z   | j        z   | j        z             S ro   )	ri   r3   r4   r   r5   r6   r7   r8   r9   rI   s    rK   astextzHTMLTranslator.astexte  sg    wwt'$)3)+/+;<./15> # &*%56 7 7 	7rL   c                 T    t          |          }|                    | j                  S )z-Encode special characters in `text` & return.)r_   rX   special_characters)rJ   texts     rK   encodezHTMLTranslator.encodek  s$    
 t}}~~d5666rL   c                 .    |                     dd          S )z*Try to hide a mailto: URL from harvesters.r   %40replace)rJ   uris     rK   cloak_mailtozHTMLTranslator.cloak_mailtos  s    
 {{3&&&rL   c                 ^    |                     dd          }|                     dd          }|S )z;Try to hide the link text of a email link from harversters.r   z<span>&#64;</span>.z<span>&#46;</span>r   )rJ   addrs     rK   cloak_emailzHTMLTranslator.cloak_emailz  s1     ||G%9::||C!566rL   z[
	]c                     |                      |                    d|                    }| j        r8| j        j        r,|                    dd          }|                    dd          }|S )z6Cleanse, HTML encode, and return attribute value text. r   z&#37;&#52;&#48;r   z&#46;)r   subr   r]   cloak_email_addressesr   )rJ   r   
whitespaceencodeds       rK   attvalzHTMLTranslator.attval  se     ++jnnS$7788> 	4dmA 	4ooe->??Gooc733GrL   Nc                 4   |t          | j        j                  }| j        j        r	 t          j                            |d                                          }| j        j        	                    |           nV# t          $ rI}d|dt          |j                  d}| j        j                            |           d|z  cY d}~S d}~ww xY w| j        |z  S |rt#          j        | j        j        |          }| j        |                     |          z  S )z8Return code to reference or embed stylesheet file `path`Nr[   )source_pathrg   zCannot embed stylesheet 'z': r   z<--- %s --->
)boolr]   r   r    rl   io	FileInputr`   record_dependenciesaddIOErrorr
   strerrorrO   r   errorembedded_stylesheetr   relative_path_destinationstylesheet_linkr   )rJ   r   adjust_pathcontenterrmsgs         rK   r   zHTMLTranslator.stylesheet_call  s9   t}<==K=) 
	6."+//D9@ 0 B BBF$&& 155d;;;; . . . . $j&>&>&>&>@&,,S111'#-------	.
 +g55 	I&t}'A4HHD#dkk$&7&777s   AA< <
C>C
C
Crf   Fc                    |                                 }g }i }|                                D ]\  }}	|	||                                 <   |                    dg           }
g }|                    dg           |                    dd                                          z   D ]]}|                    d          r |j        |dd                    0|                                r||
vr|
                    |           ^|r|d         || j        <   dt          |t          j                  rfd	|
D             }
|
rd
                    |
          |d<   d|vsJ |                    dg           }|                    |                    dg                      |r|d         |d<   |dd         D ]}|s]t          |t          j        t          j        t          j        t          j        t          j        t          j        t          j        f          r|                    d|z             z|d|z  z  }t)          |                                          }|g}|D ]\  }}	|	J t          |	t*                    r`d |	D             }|                    |                                 d|                     d
                    |                    d           ~|                    |                                 d|                     t/          |	                    d           |rd}nd}d                    |          dd
                    |          |dz   |z   S )z
        Construct and return a start tag given a node (id & class attributes
        are extracted), tag name, and optional attributes.
        classesclassr/   z	language-	   Nr   )colwidths-autocolwidths-givencolwidths-gridc                     g | ]}|v|	S r~   r~   )r   clsinternals     rK   r   z+HTMLTranslator.starttag.<locals>.<listcomp>  s#    EEEsH1D1Ds1D1D1DrL   r   ididsr   z<span id="%s"></span>c                 ,    g | ]}t          |          S r~   )r_   )r   vs     rK   r   z+HTMLTranslator.starttag.<locals>.<listcomp>  s    444'!**444rL   z="r   z /r   r   )r   itemspopgetry   
startswithr   striplang_attribute
isinstancer   tableri   extendbullet_listr7   definition_listenumerated_list
field_listoption_listsortedlistr   r_   )rJ   nodetagnamesuffixempty
attributesprefixattsnamevaluer   r   r   r   r   attlistrq   valuesinfixr   s                      @rK   starttagzHTMLTranslator.starttag  s   
 --//'--// 	' 	'MT5!&D((9b))	88Ir**TXXgr-B-B-H-H-J-JJ 	$ 	$C~~k** $ 	 QRR)))) $G!3!3s### 	5(1!D$%JdEK(( 	FEEEEgEEEG 	.HHW--DM4hhub!!

488E2&&''' 	;QDJ!""g ; ;  
;Jt"."2E4I"-u/@"[*+ + 
; MM"9B">???? 5::FF&&	" 
	H 
	HKD% $$$%&& H44e444$**,,,,*.++chhv6F6F*G*G*G*GI J J J J $**,,,,*.++genn*E*E*E*EG H H H H 	EEEwwvSXXe___eee!DDvMMrL   c                 &     | j         |||fddi|S )z1Construct and return an XML-compatible empty tag.r   T)r  )rJ   r   r   r   r   s        rK   emptytagzHTMLTranslator.emptytag  s%    t}T7FMM$M*MMMrL   r   c                     d |D             }	 ||         }n# t           $ r Y dS w xY w|d                             |           dS )z
        Set class `class_` on the visible child no. index of `node`.
        Do nothing if node has fewer children than `index`.
        c                 F    g | ]}t          |t          j                  |S r~   r   r   	Invisible)r   ns     rK   r   z5HTMLTranslator.set_class_on_child.<locals>.<listcomp>  s)    JJJ!:a+I+IJAJJJrL   Nr   )
IndexErrorr   )rJ   r   class_indexchildrenchilds         rK   set_class_on_childz!HTMLTranslator.set_class_on_child  si    
 KJtJJJ	UOEE 	 	 	FF	i'''''s    
%%c                     |                                 }|                     |          }| j        r!| j        j        r|                     |          }| j                            |           d S rF   )r   r   r   r]   r   r   r8   r   )rJ   r   r   r   s       rK   
visit_TextzHTMLTranslator.visit_Text  se    {{}}++d##> 	0dmA 	0&&w//G	!!!!!rL   c                     d S rF   r~   rJ   r   s     rK   depart_TextzHTMLTranslator.depart_Text      rL   c                 d    | j                             |                     |dd                     d S )Nabbrr/   r8   r   r  r  s     rK   visit_abbreviationz!HTMLTranslator.visit_abbreviation  s.    	tVR8899999rL   c                 :    | j                             d           d S )Nz</abbr>r8   r   r  s     rK   depart_abbreviationz"HTMLTranslator.depart_abbreviation      	#####rL   c                 d    | j                             |                     |dd                     d S )Nacronymr/   r  r  s     rK   visit_acronymzHTMLTranslator.visit_acronym  s.    	tY;;<<<<<rL   c                 :    | j                             d           d S )Nz
</acronym>r  r  s     rK   depart_acronymzHTMLTranslator.depart_acronym
      	&&&&&rL   c                     |                      |dd           | j                            |                     |ddd                     d S )NaddressFr>   prer/   r   CLASS)visit_docinfo_itemr8   r   r  r  s     rK   visit_addresszHTMLTranslator.visit_address  sf    ie<<<	tU/1 ' D D 	E 	E 	E 	E 	ErL   c                 b    | j                             d           |                                  d S N
</pre>
)r8   r   depart_docinfo_itemr  s     rK   depart_addresszHTMLTranslator.depart_address  s0    	&&&  """""rL   c                 h    | j                             |                     |ddg                     d S )Naside
admonitionr   r  r  s     rK   visit_admonitionzHTMLTranslator.visit_admonition  s2    	tW|nMMNNNNNrL   c                 :    | j                             d           d S Nz	</aside>
r  r  s     rK   depart_admonitionz HTMLTranslator.depart_admonition  r'  rL   )u   —r/   )())r/   r/   r(   c                     | j         | j        j                 \  }}| j                            |           | j                            |                     |d|d                     d S )Npattributionr-  )attribution_formatsr]   rA  r   r   r8   r  )rJ   r   r   r   s       rK   visit_attributionz HTMLTranslator.visit_attribution!  sn    1$-2KLF###	MM$V=MAA	C 	C 	C 	C 	CrL   c                 n    | j                             | j                                        dz              d S N</p>
r8   r   r   r   r  s     rK   depart_attributionz!HTMLTranslator.depart_attribution'  s1    	))++h677777rL   c                     t          |j        t          j                  s|                     |d           | j                            d           d S )Nauthorz<p>)r   parentr   authorsr.  r8   r   r  s     rK   visit_authorzHTMLTranslator.visit_author*  sJ    $+u}55 	4##D(333	rL   c                     | j                             d           t          |j        t          j                  r| j                             d           d S |                                  d S )N</p>rf   )r8   r   r   rL  r   rM  r3  r  s     rK   depart_authorzHTMLTranslator.depart_author/  sb    	   dk5=11 	'IT"""""$$&&&&&rL   c                 2    |                      |d           d S )NrM  r.  r  s     rK   visit_authorszHTMLTranslator.visit_authors6  s    i00000rL   c                 .    |                                   d S rF   r3  r  s     rK   depart_authorszHTMLTranslator.depart_authors9        """""rL   c                 b    | j                             |                     |d                     d S )N
blockquoter  r  s     rK   visit_block_quotez HTMLTranslator.visit_block_quote<  s,    	t\::;;;;;rL   c                 :    | j                             d           d S )Nz</blockquote>
r  r  s     rK   depart_block_quotez!HTMLTranslator.depart_block_quote?  s    	*+++++rL   c                     t          | j                  }	 |                    |           dS # t          j        $ r Y dS w xY w)z7Check for a simple list that can be rendered compactly.TF)SimpleListCheckerrO   walkr   	NodeFound)rJ   r   rP   s      rK   check_simple_listz HTMLTranslator.check_simple_listB  sU    #DM22	IIg 4  	 	 	55	s   - A A c                 N   d|d         v rdS d|d         v rdS t          |t          j        t          j        f          r| j        j        sdS t          |t          j        t          j        f          r| j        j        sdS d|j	        d         v rdS | 
                    |          S )Ncompactr   Tr\   Fcontents)r   r   r   r   r]   r.   r   r   r-   rL  rb  r  s     rK   is_compactablezHTMLTranslator.is_compactableS  s    Y''4T)_$$5te.0EFGG 	M5	5te3U5FGHH 	M/	5Y///4%%d+++rL   c                    i }| j         }| j                            | j         | j        f           d | _        |                     |          | _         | j         r|sd|d<   | j                             | j        |dfi |           d S )Nsimpler   ul)r   r   r   r   rf  r8   r  )rJ   r   r   old_compact_simples       rK   visit_bullet_listz HTMLTranslator.visit_bullet_listf  s    !0T0$.ABBB"11$77 	%'9 	%$DM	tT::T::;;;;;rL   c                     | j                                         \  | _        | _        | j                            d           d S )Nz</ul>
)r   r   r   r   r8   r   r  s     rK   depart_bullet_listz!HTMLTranslator.depart_bullet_listp  s;    .2l.>.>.@.@+T^	#####rL   c                 h    | j                             |                     |ddd                     d S )Nr@  r/   captionrB  r  r  s     rK   visit_captionzHTMLTranslator.visit_captiont  s2    	tS"IFFGGGGGrL   c                 :    | j                             d           d S rF  r  r  s     rK   depart_captionzHTMLTranslator.depart_captionw      	"""""rL   c                    t          |                                t          |                    s| j                            d           | j                            |                     |d|j        gd                     d S )Nz(<div role="list" class="citation-list">
divzdoc-biblioentryr   role)r   previous_siblingtyper8   r   r  r   r  s     rK   visit_citationzHTMLTranslator.visit_citation{  s     $//114::>> 	JIHIII	tUT\N,= ' ? ? 	@ 	@ 	@ 	@ 	@rL   c                     | j                             d           |                    dd          }t          |t	          |                    s| j                             d           d S d S )N</div>
FTdescendsiblings)r8   r   	next_noder   ry  )rJ   r   r  s      rK   depart_citationzHTMLTranslator.depart_citation  sk    	$$$NN54N@@	)T$ZZ00 	)IZ(((((	) 	)rL   c           
          d}d|v r||d         z  }nd|v r|| j         j        |d                  z  }| j                            |                     |dd|dgd                     d S )	N#refidrefnamea[zcitation-referencezdoc-biblioref)r   hrefr   rw  )rO   nameidsr8   r   r  )rJ   r   r  s      rK   visit_citation_referencez'HTMLTranslator.visit_citation_reference  s    d??DM!DD$DM)$y/::D 		tS40D/E,; ' = = 	> 	> 	> 	> 	>rL   c                 :    | j                             d           d S )Nz]</a>r  r  s     rK   depart_citation_referencez(HTMLTranslator.depart_citation_reference      	!!!!!rL   c                 h    | j                             |                     |ddd                     d S )Nspanr/   
classifierrB  r  r  s     rK   visit_classifierzHTMLTranslator.visit_classifier  s2    	tVR|LLMMMMMrL   c                 :    | j                             d           d S N</span>r  r  s     rK   depart_classifierz HTMLTranslator.depart_classifier  r!  rL   c                     | j                             |           |j        j                            |j                            d                     d S )Nstub)r   r   rL  stubsr   r   r  s     rK   visit_colspeczHTMLTranslator.visit_colspec  sG    T"""  !4!4V!<!<=====rL   c           	      Z   t          |                    dd          t          j                  rd S d|j        j        d         v s"d| j        j        vrd|j        j        d         vrd S t          d | j        D                       }| j	        
                    |                     |d	                     | j        D ]S}t          |d
         dz  |z  dz             }| j	        
                    |                     |dd|z                       T| j	        
                    d           d S )NFTr}  r   r   r   r   c              3   &   K   | ]}|d          V  dS )colwidthNr~   )r   r   s     rK   	<genexpr>z0HTMLTranslator.depart_colspec.<locals>.<genexpr>  s'      EEt$z*EEEEEErL   colgroupr  g      Y@g      ?colzwidth: %i%%)stylez</colgroup>
)r   r  r   colspecrL  r]   table_stylesumr   r8   r   r  r   r  )rJ   r   total_widthr  s       rK   depart_colspeczHTMLTranslator.depart_colspec  sG   dnnUTnBBm% % 	Ft{1)<<<DM$===!);I)FFFFEEt}EEEEE	tZ88999M 	L 	LD4
+e3kACGHHHIT]]41>1I + K K L L L L	)))))rL   z-(?=-)c                     | j                             d |d|                                          z             t          j        )z%Escape double-dashes in comment text.z<!-- %s -->
z- )r8   r   r   r   SkipNode)rJ   r   r   s      rK   visit_commentzHTMLTranslator.visit_comment  s;     		33tT[[]]+C+CCDDDnrL   c                 f    | j                             |                     |dd                     d S )Nru  compoundrB  r  r  s     rK   visit_compoundzHTMLTranslator.visit_compound  s0    	tU*EEFFFFFrL   c                 :    | j                             d           d S Nr|  r  r  s     rK   depart_compoundzHTMLTranslator.depart_compound      	$$$$$rL   c                 f    | j                             |                     |dd                     d S )Nru  zdocutils containerrB  r  r  s     rK   visit_containerzHTMLTranslator.visit_container  s1    	tU:NOOPPPPPrL   c                 :    | j                             d           d S r  r  r  s     rK   depart_containerzHTMLTranslator.depart_container  r  rL   c                 6    |                      |dd           d S )NcontactFr*  rS  r  s     rK   visit_contactzHTMLTranslator.visit_contact  #    ie<<<<<rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_contactzHTMLTranslator.depart_contact  rX  rL   c                 2    |                      |d           d S )N	copyrightrS  r  s     rK   visit_copyrightzHTMLTranslator.visit_copyright  s    k22222rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_copyrightzHTMLTranslator.depart_copyright  rX  rL   c                 2    |                      |d           d S )NdaterS  r  s     rK   
visit_datezHTMLTranslator.visit_date  s    f-----rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_datezHTMLTranslator.depart_date  rX  rL   c                     d S rF   r~   r  s     rK   visit_decorationzHTMLTranslator.visit_decoration  r  rL   c                     d S rF   r~   r  s     rK   depart_decorationz HTMLTranslator.depart_decoration  r  rL   c                     d|j         j         d         v r| j                            d           d S | j                            d           | j                            |                     |dd                     d S )Ndetailsr   z</summary>
z</dt>
ddr/   rL  r8   r   r  r  s     rK   visit_definitionzHTMLTranslator.visit_definition  su    *9555I^,,,,,IY'''IT]]4r::;;;;;rL   c                 f    d|j         j         d         vr| j                            d           d S d S )Nr  r   </dd>
rL  r8   r   r  s     rK   depart_definitionz HTMLTranslator.depart_definition  s;    DK.y999IY''''' :9rL   c                     d|d         vrL|                      |          rdgng }| j                            |                     |d|                     d S d S )Nr  r   rh  dlr8  )rf  r8   r   r  rJ   r   r   s      rK   visit_definition_listz$HTMLTranslator.visit_definition_list  se    DO++$($7$7$=$=Exjj2GIT]]4w]GGHHHHH ,+rL   c                 R    d|d         vr| j                             d           d S d S )Nr  r   </dl>
r  r  s     rK   depart_definition_listz%HTMLTranslator.depart_definition_list  s5    DO++IY''''' ,+rL   c                     d|j         d         v r?i }d|j         d         v rd|d<   | j                             | j        |dfi |           d S d S )Nr  r   r\   r  rJ   r   r   s      rK   visit_definition_list_itemz)HTMLTranslator.visit_definition_list_item  sn    I...DY///%VI]T]4CCdCCDDDDD	 /.rL   c                 \    d|j         d         v r| j                            d           d S d S )Nr  r   z</details>
r  r  s     rK   depart_definition_list_itemz*HTMLTranslator.depart_definition_list_item  s8    I...I^,,,,, /.rL   c                 d    | j                             |                     |dd                     d S )Nr  r/   r  r  s     rK   visit_descriptionz HTMLTranslator.visit_description  .    	tT26677777rL   c                 :    | j                             d           d S Nr  r  r  s     rK   depart_descriptionz!HTMLTranslator.depart_description  r!  rL   c                    | j                             t          | j                             dg}|                     |          r|                    d           | j                            |                     |d|                     d S )Nr7   rh  r  r8  )r   r   lenr8   rf  r  r  s      rK   visit_docinfozHTMLTranslator.visit_docinfo  s}    C	NN++++%% 	%NN8$$$	tT7CCDDDDDrL   c                     | j                             d           | j                                        }| j         |d          | _        g | _         d S Nr  )r8   r   r   r   r7   )rJ   r   starts      rK   depart_docinfozHTMLTranslator.depart_docinfo  sH    	###  ""y(			rL   Tc                 T   |rCd|d|                      |                                          d}|                     |           | j                            d|d| j        j        |         d           | j                            |                     |dd|	                     d S )
Nz<meta name="z" content="z" />
z<dt class="">"<span class="colon">:</span></dt>
r  r/   rB  )r   r   add_metar8   r   r   labelsr  )rJ   r   r  r>   meta_tags        rK   r.  z!HTMLTranslator.visit_docinfo_item  s     	$ 	$$$DKKMM : : : :<HMM(###	ttT])$///1	2 	2 	2 		tT2TBBCCCCCrL   c                 :    | j                             d           d S r  r  rI   s    rK   r3  z"HTMLTranslator.depart_docinfo_item"  r!  rL   c           	      l    | j                             |                     |ddg d                     d S )Nr+  r/   )codepythondoctest)r   r   r  r  s     rK   visit_doctest_blockz"HTMLTranslator.visit_doctest_block%  sQ    	tU2/L/L/L ' N N 	O 	O 	O 	O 	OrL   c                 :    | j                             d           d S r1  r  r  s     rK   depart_doctest_blockz#HTMLTranslator.depart_doctest_block)  r'  rL   c                     |                     dd          p&t          j                            |d                   pd}| j                            d|                     |          z             d S )Nr:   r/   sourcezdocutils document without titlez<title>%s</title>
)r   osr   basenamer4   r   r   )rJ   r   r:   s      rK   visit_documentzHTMLTranslator.visit_document,  si    '2&& 6"'*:*:4>*J*J 65 		.U1C1CCDDDDDrL   c                 |   | j                             | j        | j        d| j        j        iz  g           | j                            | j                   | j        	                    d| j
        | j        j        z             | j        	                    d| j
        | j        j        z             dd                    | j                  v r| j                            d           | j        rJ| j        dk    r | j                            | j                   n| j                            | j                   | j                            | j        dd                     | j                            |                     |dd	
                     | j        	                    dd           | j                            | j                   | j                            | j        dd          | j        z   | j        z   | j        z   | j        d d         z              | j        rJ dt7          | j                  z              d S )Nr   r   zname="dcterms.r/   z=<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>mathjaxr   ru  rO   rB  r|  zlen(context) = %s)r3   r   doctypehead_prefix_templater]   r   r@   r   r>   insertr   rk   r4   ri   r   r   r   rA   r5   r  r9   r?   r8   rD   r6   r7   r   r  r  s     rK   depart_documentzHTMLTranslator.depart_document1  s/   !%!:"($-*E!F"G!H 	I 	I 	I 	---	D-0MMNNN	D-0MMNNNrwwty1111ILN N N 	99,,	  !12222&&t'7888dim,,,dE L LMMM:...TY'''d.qrr2T5JJ $-/3y9 $ 0" 56 	7 	7 	7 <HH!4s4<7H7H!HHHHHHrL   c                 d    | j                             |                     |dd                     d S )Nemr/   r  r  s     rK   visit_emphasiszHTMLTranslator.visit_emphasisJ  r  rL   c                 :    | j                             d           d S )Nz</em>r  r  s     rK   depart_emphasiszHTMLTranslator.depart_emphasisM  r  rL   c                 ~   dg i}t          |j        j        t          j                  r|d                             d           |j        j        j        j        |j        j                 r|d                             d           |d         rd}nd}|j        xj        dz  c_        d|v r|d         dz   |d<   d	|v r)|d	         dz   |d
<   |j        xj        |d	         z  c_        | j                             | j        ||dfi |           | j	                            d|
                                z             d S )Nr   r4   r  thtdr   morerowsrowspanmorecolscolspanr/   </%s>
)r   rL  r   theadr   r  columnr8   r  r   r   )rJ   r   r   r   s       rK   visit_entryzHTMLTranslator.visit_entryP  sM   2dk(%+66 	+O""6***;$*4;+=> 	+O""6***	? 	GGGa":.2DO":.2DOK$z"22	tWbAADAABBBI788888rL   c                 h    | j                             | j                                                   d S rF   rH  r  s     rK   depart_entryzHTMLTranslator.depart_entryd  ,    	))++,,,,,rL   c                 $   dg i}d|v r|d         |d<   d|v r!|d                              |d                    |                     |          r|d                              d           | j                              | j        |dfi |           d S )Nr   r  enumtyperh  ol)r   rf  r8   r  r  s      rK   visit_enumerated_listz$HTMLTranslator.visit_enumerated_listg  s    2d?? MDMO""4
#3444t$$ 	-O""8,,,	tT::T::;;;;;rL   c                 :    | j                             d           d S )Nz</ol>
r  r  s     rK   depart_enumerated_listz%HTMLTranslator.depart_enumerated_listq  r!  rL   c                    i }|                     dg           }t          |          D ]d\  }}|                    d          rJ	 t          |dd          d          }n# t          $ r Y  n$w xY wd|z  |d<   |                    |            ne|                    d           |                     |          r|                    d           | j                             | j	        |d	fi |           d S )
Nr   zfield-indent-   pxz--field-indent: %s;r  z
field-listrh  r  )

setdefault	enumerater   r   
ValueErrorr   r   rf  r8   r  )rJ   r   r   r   ir   indent_lengths          rK   visit_field_listzHTMLTranslator.visit_field_listt  s%   //)R00(( 		 		FAs~~o.. $D8;BCC$%H %HMM!   EE 5 EWA 	|$$$%% 	%NN8$$$	tT::T::;;;;;s   A
A*)A*c                 :    | j                             d           d S r  r  r  s     rK   depart_field_listz HTMLTranslator.depart_field_list  r!  rL   c                     d S rF   r~   r  s     rK   visit_fieldzHTMLTranslator.visit_field  r  rL   c                     d S rF   r~   r  s     rK   depart_fieldzHTMLTranslator.depart_field  r  rL   c           	      ~    | j                             |                     |dd|j        d                              d S )Ndtr/   r   r8  )r8   r   r  rL  r  s     rK   visit_field_namezHTMLTranslator.visit_field_name  sR    	tT2/3{9/E ' G G 	H 	H 	H 	H 	HrL   c                 :    | j                             d           d S )Nr  r  r  s     rK   depart_field_namez HTMLTranslator.depart_field_name  s    	>?????rL   c           	          | j                             |                     |dd|j        d                              |j        s| j                             d           d S d S )Nr  r/   r   r8  z<p></p>)r8   r   r  rL  r  r  s     rK   visit_field_bodyzHTMLTranslator.visit_field_body  sx    	tT2/3{9/E ' G G 	H 	H 	H } 	(IY'''''	( 	(rL   c                 :    | j                             d           d S r  r  r  s     rK   depart_field_bodyz HTMLTranslator.depart_field_body  r!  rL   c                     ddi}|                     d          rd|d         z  |d<   |                     d          r|dxx         d|d         z   z  cc<   | j                             | j        |dfi |           d S )	Nr   figurewidthz	width: %sr  alignz align-ru  )r   r8   r   r  r  s      rK   visit_figurezHTMLTranslator.visit_figure  s    "88G 	8'$w-7DM88G 	7MMMYg66MMM	tU;;d;;<<<<<rL   c                 :    | j                             d           d S r  r  r  s     rK   depart_figurezHTMLTranslator.depart_figure  r  rL   c                 ^    | j                             t          | j                             d S rF   r   r   r  r8   r  s     rK   visit_footerzHTMLTranslator.visit_footer  &    C	NN+++++rL   c                 :   | j                                         }|                     |dd          dg}|                    | j        |d                     |                    d           | j                            |           || j        d d<   | j        |d = d S )Nru  r=   rB  z<hr class="footer" />
z
</div>
r   )r   r   r  r   r8   r   r=   r9   )rJ   r   r  r=   s       rK   depart_footerzHTMLTranslator.depart_footer  s      ""--e8-<<+-di'(((l###6"""%!IeffrL   c                     |j         | j        j        g}| j                            |                     |d|d                     d S )Nr6  noterv  )r   r]   footnote_referencesr8   r   r  r  s      rK   visit_footnotezHTMLTranslator.visit_footnote  sU    <!BC	tWg,2 ' 4 4 	5 	5 	5 	5 	5rL   c                 :    | j                             d           d S r;  r  r  s     rK   depart_footnotezHTMLTranslator.depart_footnote  r'  rL   c           
          d|d         z   }d| j         j        g}| j                            |                     |dd|d|                     | j                            d           d S )	Nr  r  zfootnote-referencer  r/   zdoc-noteref)r   r   rw  r  !<span class="fn-bracket">[</span>)r]   rD  r8   r   r  )rJ   r   r  r   s       rK   visit_footnote_referencez'HTMLTranslator.visit_footnote_reference  s}    T']"')JK	tSW,9 ' F F 	G 	G 	G	<=====rL   c                 n    | j                             d           | j                             d           d S )Nz!<span class="fn-bracket">]</span></a>r  r  s     rK   depart_footnote_referencez(HTMLTranslator.depart_footnote_reference  s5    	<===	     rL   c                     d|d         v rc|                                                     d          }| j                            d|                     |          z             t
          j        d S )Nsectnumr       z <span class="sectnum">%s </span>)r   rj   r8   r   r   r   r  )rJ   r   rO  s      rK   visit_generatedzHTMLTranslator.visit_generated  so    Y''kkmm**511GI?&*kk'&:&:; < < < .  ('rL   c                     d S rF   r~   r  s     rK   depart_generatedzHTMLTranslator.depart_generated  r  rL   c                 ^    | j                             t          | j                             d S rF   r=  r  s     rK   visit_headerzHTMLTranslator.visit_header  r?  rL   c                 T   | j                                         }|                     |dd          g}|                    | j        |d                     |                    d           | j                            |           | j                            |           | j        |d = d S )Nru  r<   rB  z
<hr class="header"/>
</div>
)r   r   r  r   r8   r   r5   r<   )rJ   r   r  r<   s       rK   depart_headerzHTMLTranslator.depart_header  s      ""--e8-<<=di'(((8999'''6"""IeffrL   c                    i }|d         }t          j        |          d         }d|v r|d         |d<   d|v r|d         |d<   d|v ret          rd|v rd|v s| j        j        rt          |          }	 t          j                            |                    t          j
                                        }| j        j                            |                    dd                     d|vrd|j        d         z  |d<   d|vrd|j        d	         z  |d<   ~n# t          t           f$ r Y nw xY wd
D ]z}||v rtt#          j        d||                   }|sJ t'          |                    d	                    t'          |d                   dz  z  |                    d          ||<   {g }	d
D ]U}||v rOt#          j        d||                   r||xx         dz  cc<   |	                    |d||         d           ||= V|	rd                    |	          |d<   t/          |j        t2          j                  sCt/          |j        t2          j                  r't/          |j        j        t2          j                  sd}
nd}
d|v rd|d         z  |d<   | j        dk    rd}|sd}| j        j        sd}	 t          t          |          d          5 }|                                }d d d            n# 1 swxY w Y   n# t          $ r}|j        }Y d }~nd }~ww xY w|r&| j        j         !                    d|d|           nr| j        j                            |                    dd                     tE          j#        |          $                                }d|d|}n| j        d k    rd |d!<   |d"k    r5||d#<    | j%        |d$dfd%|i||&                    d&|          z   d'z   |
z   }n1|&                    d&|d                   |d&<    | j'        |d(|
fd)|i|}| j(                            |           d S )*Nr   r   r7  heightscale\/z%dpxr   )r7  rY  z([0-9.]+)(\S*)$d      z	^[0-9.]+$r  z: ;r   r  r/   rf   r8  align-%sr   r   zunknown MIME typezfile insertion disabled.rZ   zCannot embed image zdata:z;base64,lazyloadingzapplication/x-shockwave-flashry  objectdataaltz	</object>imgsrc))	mimetypes
guess_typer	   r]   file_insertion_enabledr   Imager\   r   sysgetfilesystemencodingr   r   r   sizer   UnicodeEncodeErrorrematchfloatgroupr   ri   r   rL  r   TextElement	referencer   r`   r   rO   r   r   base64	b64encodedecoder  r   r  r8   )rJ   r   r   r   mimetype	imagepathrf  att_namerq  r  r   err_msg	imagefile	imagedatar   data64tags                    rK   visit_imagezHTMLTranslator.visit_image  sC   5k',,Q/d?? MDMt!(^DNd?? W__T1A1AM8 2B(--	)..%,,S-F-H-HIIK KC
 M599!))$446 6 6d**(.!(<Wt++)/#(1+)=X  !34   D . ( (t##H%7hHHE LLLekk!nn--tG}1E1E1KLLA&(DN ) 	# 	#H48L$x.99 +NNNd*NNN(((DNNNCDDDN 	,HHUOODMt{E$566 	U_55	DK.0ABB	 FFFd??&g6DM((G .-=7 54',s++T22 1i ) 0 0I1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ' ' ',' @&,,,/2ssGG.= > > > > 155,/KKc,B,BD D D  ))44;;==.6hh?6))$DO666#DL 4=xFF#FFFXXeS))*,78:@ACC ((5$u+66DK$-eVEEEEEC	sO   3AD D-,D-;L K9-L 9K==L  K=L 
L LL c                     d S rF   r~   r  s     rK   depart_imagezHTMLTranslator.depart_image?  r  rL   c                 d    | j                             |                     |dd                     d S )Nr  r/   r  r  s     rK   visit_inlinezHTMLTranslator.visit_inlineB  .    	tVR8899999rL   c                 :    | j                             d           d S r  r  r  s     rK   depart_inlinezHTMLTranslator.depart_inlineE  r!  rL   c                 0   | j                             d           | j                             d           | j        j        rS|j                            dg           }t          |          dk    r'| j                             d|d         z             d S d S d S )Nz<span class="label">rI  backrefsr   z"<a role="doc-backlink" href="#%s">r   )r8   r   r]   footnote_backlinksrL  r   r  )rJ   r   r  s      rK   visit_labelzHTMLTranslator.visit_labelI  s    	/000	<====+ 	?{z266H8}}!!	   "02:1+"> ? ? ? ? ?	? 	?!!rL   c                    g }| j         j        r|j                            d|          }t	          |          dk    r| j                            d           | j                            d           t	          |          dk    rLd t          |d          D             }| j                            dd                    |          z             d S d S )Nr  r   rL  z)<span class="fn-bracket">]</span></span>
c                 &    g | ]\  }}d |d|dS )z<a role="doc-backlink" href="#r  rL  r~   )r   r#  refs      rK   r   z/HTMLTranslator.depart_label.<locals>.<listcomp>[  sC     A A A%a HKssAAAN A A ArL   z#<span class="backrefs">(%s)</span>
,)	r]   r  rL  r   r  r8   r   r!  ri   )rJ   r   r  	backlinkss       rK   depart_labelzHTMLTranslator.depart_labelS  s    =+ 	={z8<<Hx==AIV$$$	EFFFx==1A A)28Q)?)?A A AIIC"xx	223 4 4 4 4 4 rL   c                 f    | j                             |                     |dd                     d S )Nru  legendrB  r  r  s     rK   visit_legendzHTMLTranslator.visit_legend`  s0    	tU(CCDDDDDrL   c                 :    | j                             d           d S r  r  r  s     rK   depart_legendzHTMLTranslator.depart_legendc  r  rL   c                     | j                             |                     |ddd                     t          |          s| j                             d           d S d S )Nru  r/   liner,  z<br />)r8   r   r  r  r  s     rK   
visit_linezHTMLTranslator.visit_linef  s`    	tU2VLLMMM4yy 	'IX&&&&&	' 	'rL   c                 :    | j                             d           d S r  r  r  s     rK   depart_linezHTMLTranslator.depart_linek  r  rL   c                 f    | j                             |                     |dd                     d S )Nru  z
line-blockrB  r  r  s     rK   visit_line_blockzHTMLTranslator.visit_line_blockn  s0    	tU,GGHHHHHrL   c                 :    | j                             d           d S r  r  r  s     rK   depart_line_blockz HTMLTranslator.depart_line_blockq  r  rL   c                 d    | j                             |                     |dd                     d S )Nlir/   r  r  s     rK   visit_list_itemzHTMLTranslator.visit_list_itemt  r  rL   c                 :    | j                             d           d S )Nz</li>
r  r  s     rK   depart_list_itemzHTMLTranslator.depart_list_itemw  r!  rL   c                 ^   |d         }d|v rY|                     |                    d                     | j                            |                     |dd                     d S | j                            |                     |ddd                     |                                }t          |j        t          j	                  s|
                    dd          }| j                            |          D ]}|                                rK| j                            |          r1| j                            d	|                     |          z             a| j                            |                     |                     | j                            d
           t          j        )Nr   r  r/   r  zdocutils literalrB  rf   r   z<span class="pre">%s</span>r  )r   r  r8   r   r  r   r   rL  r   literal_blockr   words_and_spacesfindallr   in_word_wrap_pointsearchr   r  )rJ   r   r   r   tokens        rK   visit_literalzHTMLTranslator.visit_literal{  s   y/WKKf--...IT]]4<<===F	MM$2DMEE	G 	G 	G{{}}$+u':;; 	+<<c**D *22488 	5 	5E{{}} 5!8!?!?!F!F 5	  !>&*kk%&8&8"9 : : : : 	  U!3!34444	###nrL   c                 :    | j                             d           d S )N</code>r  r  s     rK   depart_literalzHTMLTranslator.depart_literal  s    	#####rL   c                     | j                             |                     |ddd                     d|d         v r| j                             d           d S d S )Nr+  r/   literal-blockrB  r  r   z<code>r  r  s     rK   visit_literal_blockz"HTMLTranslator.visit_literal_block  s_    	tUBoNNOOOT)_$$IX&&&&& %$rL   c                     d|d         v r| j                             d           | j                             d           d S )Nr  r   r  z</pre>
r  r  s     rK   depart_literal_blockz#HTMLTranslator.depart_literal_block  sC    T)_$$IY'''	$$$$$rL   )ru  r/   r/   )ru  r  formula)ru  r  math)r+  ttr  mathmlr   r  latexr/   c           
      
     j          j        vr. j        j                            d j         z             d _          j         j                  |dk             } j         j                  d         }ddddd}| j                  |dk             } j         d	k    r j        r j        d
         dk    rd }|                                                    t          j	                  }|r	 ||||fz  }n# t          $ r ||z  }Y nw xY w j         dv r                     |          } j         dk    rz j        ss	  j        d
          _        n/# t          $ r"  j        j                            d           Y nw xY wd j        vr xj        dz  c_         j         j        z  g _        n j         dk    rj j        r8 j        s1 fd j        d
                             d          D              _        |dk    t$          j        _        t%          j        |          }n} j         d	k    rqd j        v r j         _         j         _        d                     j                                                  }	 |dk    r t7          j        | j        j                  }n|dk    r t7          j        | j        j                  }nb|dk    r#t7          j        ||  j        j                  }n9|st?          j         ||           }n j        j                            d           ns# tB          $ r tC          d          tD          $ rM}	 j        j                            |	|          }
 #                    |
            j$        %                     &                    |d                      j$        %                    d                    |	j'                              j$        %                    d            j$        %                     &                    |dd !                      j$        %                                         |                      j$        %                    d"            (                    |
           tR          j*        d }	~	ww xY w|rA j$        %                     &                    ||d#tW          |          z  |$                      j$        %                    |           |r j$        %                    d#           |r j$        %                    d%|z             |r j$        %                    d#           tR          j*        )&Nz=math-output format "%s" not supported falling back to "latex"r  r/   r^  )z$%s$\begin{%s}
%s
\end{%s})z\(%s\)r  )NNr  r  r   	blahtexml)r  r  r  z@No MathJax URL specified, using local fallback (see config.html)?z?config=TeX-AMS_CHTMLr   c                 x    g | ]6}                     t          j        |j        j                  d           7S )T)r   )r   r   find_file_in_dirsr]   stylesheet_dirs)r   srJ   s     rK   r   z-HTMLTranslator.visit_math.<locals>.<listcomp>  s^     $E $E $E  %)$8$8+At}/LMM $ %9 %& %& $E $E $ErL   r  zXHTML 1r   latexmlttm)inliner   )r  z3option "%s" not supported with math-output "MathML"zis "latexmlmath" in your PATH?)	base_noder@  rG  r+  r  rB  r2  rf   r,  </%s>),r   	math_tagsrO   r   r   r   r   rX   r   uni2tex_table	TypeErrorr   r   mathjax_urlr  warningmathjax_scriptry   r   DocumentParametersdisplaymoder   doctype_mathmlcontent_type_mathmlr   ri   r   r   r  r  r  r   
tex2mathmlOSErrorSyntaxErrorvisit_system_messager8   r   r  argsdepart_system_messager   r  r   )rJ   r   math_envr  clsargwrapperswrapper	math_code	converterr   err_nodes   `          rK   
visit_mathzHTMLTranslator.visit_math  s    4>11M"((*+/+;<= = =  'DnT-.x2~> 01!4  IHI/	  4+,X^<x''1I' $ 8 ;{ J JGKKMM++K,EFF	 	00#xH&EE		 0 0 0#i/			0 333I..Iy((1A(>#'#;A#>   > > >&.. 0= > > > > >>
 $***  $;;   $ 3d6F FGD''' E0@ E$E $E $E $E "5a8>>sCC$E $E $E 
 9ABI(4!+I66II))T\))#2$($<!!9::@@BBI%	)) 1 9)48M4J!L !LII%'' 1 5i48M4J!L !LII+-- 1 ;I#+}!%!7!9 !9 !9II # 1 , 7	CK}!N !N !NII M*00 20 1 1 1 D D D!"BCCC % % %=177t7LL))(333	  tS!9!9:::	  38!4!4555	  ***	  tU5D "/ "F "F G G G	  Y!7!7888	  ...**8444n$%  	:IT]]426tH~~2E17 + 9 9 : : : 		### 	#IT""" 	,IWs]+++ 	#IT"""ns>   )C2 2DD8E )E76E79B.L) )#RERRc                     d S rF   r~   r  s     rK   depart_mathzHTMLTranslator.depart_math  r  rL   c                 v    t          |                                          }|                     ||           d S )N)r  )r   r   r  )rJ   r   r  s      rK   visit_math_blockzHTMLTranslator.visit_math_block  s3    (77x00000rL   c                     d S rF   r~   r  s     rK   depart_math_blockz HTMLTranslator.depart_math_block  r  rL   c                 r     | j         |dfi |                                }|                     |           d S )Nr>   )r  non_default_attributesr  )rJ   r   r>   s      rK   
visit_metazHTMLTranslator.visit_meta  sA    t}T6KKT-H-H-J-JKKdrL   c                     d S rF   r~   r  s     rK   depart_metazHTMLTranslator.depart_meta#  r  rL   c                 n    | j                             |           | j                            |           d S rF   )r>   r   r4   )rJ   r  s     rK   r  zHTMLTranslator.add_meta&  s4    		rL   c                 h    | j                             |                     |ddd                     d S )Nr  r/   optionrB  r  r  s     rK   visit_optionzHTMLTranslator.visit_option*  s2    	tVRxHHIIIIIrL   c                     | j                             d           t          |                    dd          t          j                  r| j                             d           d S d S )Nr  FTr}  , )r8   r   r   r  r   r  r  s     rK   depart_optionzHTMLTranslator.depart_option-  sg    	###dnnUTnBBl$ $ 	#IT"""""	# 	#rL   c                     | j                             |                    dd                     | j                             |                     |dd                     d S )N	delimiterr   varr/   )r8   r   r   r  r  s     rK   visit_option_argumentz$HTMLTranslator.visit_option_argument3  sR    	+s33444	tUB7788888rL   c                 :    | j                             d           d S )Nz</var>r  r  s     rK   depart_option_argumentz%HTMLTranslator.depart_option_argument7  rs  rL   c                     | j                             |                     |dd                     | j                             d           d S )Nr-  r/   z<kbd>r  r  s     rK   visit_option_groupz!HTMLTranslator.visit_option_group:  sD    	tT266777	!!!!!rL   c                 :    | j                             d           d S )Nz</kbd></dt>
r  r  s     rK   depart_option_groupz"HTMLTranslator.depart_option_group>  s    	)))))rL   c                 f    | j                             |                     |dd                     d S )Nr  zoption-listrB  r  r  s     rK   visit_option_listz HTMLTranslator.visit_option_listA  s;    	MM$MM::	< 	< 	< 	< 	<rL   c                 :    | j                             d           d S r  r  r  s     rK   depart_option_listz!HTMLTranslator.depart_option_listE  r!  rL   c                     d S rF   r~   r  s     rK   visit_option_list_itemz%HTMLTranslator.visit_option_list_itemH  r  rL   c                     d S rF   r~   r  s     rK   depart_option_list_itemz&HTMLTranslator.depart_option_list_itemK  r  rL   c                     d S rF   r~   r  s     rK   visit_option_stringz"HTMLTranslator.visit_option_stringN  r  rL   c                     d S rF   r~   r  s     rK   depart_option_stringz#HTMLTranslator.depart_option_stringQ  r  rL   c                 2    |                      |d           d S )NorganizationrS  r  s     rK   visit_organizationz!HTMLTranslator.visit_organizationT  s    n55555rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_organizationz"HTMLTranslator.depart_organizationW  rX  rL   c                 d    | j                             |                     |dd                     d S )Nr@  r/   r  r  s     rK   visit_paragraphzHTMLTranslator.visit_paragraphi  s.    	tS"5566666rL   c                     | j                             d           t          |j        t          j        t          j        f          rt          |j                  dk    s| j                             d           d S d S )NrP  r   rf   )r8   r   r   rL  r   	list_itementryr  r  s     rK   depart_paragraphzHTMLTranslator.depart_paragraphl  sn    	   4;%+(FGG 	#T[!!Q&&IT""""" '&rL   c                 B   |                     d          r>| j                            d|d         z             | j                            d           n| j                            d           | j                            |                     |ddd                     d S )Nr  z<a href="#%s">rL  r/   r  problematicrB  )hasattrr8   r   r   r  r  s     rK   visit_problematicz HTMLTranslator.visit_problematicr  s    <<   	$I-W=>>>L''''L###	tVR}MMNNNNNrL   c                     | j                             d           | j                             | j                                                   d S r  rH  r  s     rK   depart_problematicz!HTMLTranslator.depart_problematicz  sB    	###	))++,,,,,rL   c                    d|                     dd                                          v rt          |j        t          j                  rd}nd}|d         r0| j                            |                     ||d                     | j                            |	                                           |d         r| j                            d|z             t          j
        )	Nr   formatr/   r  ru  r   )r   r  )r   ry   r   rL  r   rt  r8   r   r  r   r  )rJ   r   r   s      rK   	visit_rawzHTMLTranslator.visit_raw~  s    TXXh++113333$+u'899   I J	  tWR!H!HIIIIT[[]]+++I 4	  7!2333nrL   c                    ddi}d|v rh|d         |d<   | j         j        r@|d                             d          r%|                     |d                   |d<   d| _        |dxx         dz  cc<   n,d|v s
J d	            d
|d         z   |d<   |dxx         dz  cc<   t          |          dk    r0t          |d         t          j                  r|dxx         dz  cc<   t          |j	        t          j
                  sEt          |          dk    r t          |d         t          j                  sJ |dxx         dz  cc<   | j                             | j        |ddfi |           d S )Nr   ru  refurir  zmailto:Tz	 externalr  z3References must have "refuri" or "refid" attribute.r  z	 internalr   r   z image-referencer  r/   )r]   r   r   r   r   r  r   r   imagerL  rt  r8   r   r  r  s      rK   visit_referencezHTMLTranslator.visit_reference  s   %t>DL4 &&\,,Y77&#00f>>V!%MMM[(MMMMd???H #??g.DLMMM[(MMMt99>>ja%+>>>MMM//MMM$+u'899 	0t99>>ja%+&F&F>>>MMM//MMM	tS"====>>>>>rL   c                     | j                             d           t          |j        t          j                  s| j                             d           d| _        d S )NrL  rf   F)r8   r   r   rL  r   rt  r   r  s     rK   depart_referencezHTMLTranslator.depart_reference  sP    	   $+u'899 	#IT"""rL   c                 6    |                      |dd           d S )NrevisionFr*  rS  r  s     rK   visit_revisionzHTMLTranslator.visit_revision  s#    ju=====rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_revisionzHTMLTranslator.depart_revision  rX  rL   c                 r    | j                             |                     |dd                     d|_        d S )Ntrr/   r   )r8   r   r  r  r  s     rK   	visit_rowzHTMLTranslator.visit_row  s3    	tT266777rL   c                 :    | j                             d           d S )Nz</tr>
r  r  s     rK   
depart_rowzHTMLTranslator.depart_row  r!  rL   c                 h    | j                             |                     |ddd                     d S )Nr@  r/   rubricrB  r  r  s     rK   visit_rubriczHTMLTranslator.visit_rubric  s2    	tS"HEEFFFFFrL   c                 :    | j                             d           d S rF  r  r  s     rK   depart_rubriczHTMLTranslator.depart_rubric  rs  rL   c                     | xj         dz  c_         | j                            |                     |dd                     d S )Nr   ru  sectionrB  )r   r8   r   r  r  s     rK   visit_sectionzHTMLTranslator.visit_section  sO    a	MM$YM77	9 	9 	9 	9 	9rL   c                 Z    | xj         dz  c_         | j                            d           d S )Nr   r|  )r   r8   r   r  s     rK   depart_sectionzHTMLTranslator.depart_section  s2    a	$$$$$rL   c                 t    | j                             |                     |dd                     d| _        d S )Nru  sidebarrB  T)r8   r   r  r   r  s     rK   visit_sidebarzHTMLTranslator.visit_sidebar  s<    	MM$YM77	9 	9 	9rL   c                 H    | j                             d           d| _        d S )Nr|  F)r8   r   r   r  s     rK   depart_sidebarzHTMLTranslator.depart_sidebar  s#    	$$$rL   c                 6    |                      |dd           d S )NstatusFr*  rS  r  s     rK   visit_statuszHTMLTranslator.visit_status  s#    hU;;;;;rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_statuszHTMLTranslator.depart_status  rX  rL   c                 d    | j                             |                     |dd                     d S )Nstrongr/   r  r  s     rK   visit_strongzHTMLTranslator.visit_strong  s.    	tXr::;;;;;rL   c                 :    | j                             d           d S )Nz	</strong>r  r  s     rK   depart_strongzHTMLTranslator.depart_strong  s    	%%%%%rL   c                 d    | j                             |                     |dd                     d S )Nr   r/   r  r  s     rK   visit_subscriptzHTMLTranslator.visit_subscript  .    	tUB7788888rL   c                 :    | j                             d           d S )Nz</sub>r  r  s     rK   depart_subscriptzHTMLTranslator.depart_subscript  rs  rL   c                     t           j        )zInternal only.r   r  r  s     rK   visit_substitution_definitionz,HTMLTranslator.visit_substitution_definition  
    nrL   c                 0    |                      |           d S rF   )unimplemented_visitr  s     rK   visit_substitution_referencez+HTMLTranslator.visit_substitution_reference  s      &&&&&rL   c                 p   t          |j        t          j                  rdg}nat          |j        t          j                  r dg}t          | j                  dz   | _        n"t          |j        t          j                  rdg}| j        	                    | 
                    |dd|                     d S )Nzsidebar-subtitler;   r   zsection-subtitler@  r/   r8  )r   rL  r   r8  rO   r  r8   r   r3  r   r  r  s      rK   visit_subtitlezHTMLTranslator.visit_subtitle  s    dk5=11 	+)*GGU^44 	+!lG%(^^A%5D""U]33 	+)*G	tS"gFFGGGGGrL   c                 L   | j                             d           t          |j        t          j                  rj| j         | j        d         | _        d| _        | j        	                    | j                    | j
        	                    | j                    | j         d d = d S d S )NrG  r  r   )r8   r   r   rL  r   rO   r   r;   r6   r   rC   r  s     rK   depart_subtitlezHTMLTranslator.depart_subtitle  s    	"""dk5>22 	 Id&<R&?@DM%&D"!((333%%di000	!!!	 	rL   c                 d    | j                             |                     |dd                     d S )Nsupr/   r  r  s     rK   visit_superscriptz HTMLTranslator.visit_superscript  rH  rL   c                 :    | j                             d           d S )Nz</sup>r  r  s     rK   depart_superscriptz!HTMLTranslator.depart_superscript   rs  rL   c                 ~   | j                             |                     |dd                     | j                             d           d}t          |d                   ri|d         }t          |          dk    rd|d	         z  }nBd}g }|D ]#}|                    d
|d|d           |dz  }$dd                    |          z  }|                    d          rd|d         z  }nd}| j                             d|d         d|d         d|                     |d                   d|d|d           d S )Nr6  zsystem-messagerB  z <p class="system-message-title">r/   r  r   z%; <em><a href="#%s">backlink</a></em>r   z
<a href="#r  rL  z; <em>backlinks: %s</em>r  r  z	, line %szSystem Message: ry  r\  levelz! (<span class="docutils literal">r  r  r>  rG  )r8   r   r  r  ri   r  r   )rJ   r   backref_textr  r#  r  backrefr  s           rK   r  z#HTMLTranslator.visit_system_message  s   	tW<LMMNNN	;<<<tJ   	8J'H8}}!! G"*1+!. 	'  G$$$www%JKKKFAA :"&))I"6"6!7<< 	f-DDD	 LLL$w--- KKX7777|||M 	N 	N 	N 	N 	NrL   c                 :    | j                             d           d S r;  r  r  s     rK   r  z$HTMLTranslator.depart_system_message  r'  rL   c                 4   d| j         j                            dd                                          i}d|v r$|d                             d|d         z             d|v rd|d         z  |d<    | j        |d	fi |}| j                            |           d S )
Nr   r  r   r8  r`  r7  z
width: %s;r  r   )r]   r  r   ry   r   r  r8   )rJ   r   r   r  s       rK   visit_tablezHTMLTranslator.visit_table   s    4=4<<S#FFLLNNOd??O"":W#=>>>d??(4=8DMdmD'22T22	rL   c                 :    | j                             d           d S )Nz	</table>
r  r  s     rK   depart_tablezHTMLTranslator.depart_table)  r'  rL   c                     d|v sUd|v sQd|v sM| j                             |                     |ddd                     | j                            d           d S | j                            d           d S )	Nr  r  r  r  r/   targetrB  r  )r8   r   r  r   r  s     rK   visit_targetzHTMLTranslator.visit_target,  s    D  GtOO$$IT]]48]LLMMML	*****L#####rL   c                 h    | j                             | j                                                   d S rF   rH  r  s     rK   depart_targetzHTMLTranslator.depart_target4  r  rL   c                 b    | j                             |                     |d                     d S )Ntbodyr  r  s     rK   visit_tbodyzHTMLTranslator.visit_tbody8  ,    	tW5566666rL   c                 :    | j                             d           d S )Nz	</tbody>
r  r  s     rK   depart_tbodyzHTMLTranslator.depart_tbody;  r'  rL   c           
          d|j         j         d         v r1| j                            |                     |dd                     d S | j                            |                     |dd|j         d         |j         d                              d S )Nr  r   summaryr/   r-  r   )r   r   r  r  s     rK   
visit_termzHTMLTranslator.visit_term>  s    *9555IT]]4B??@@@@@ IT]]4r37;y3I/3{5/A + C C D D D D DrL   c                     d S rF   r~   r  s     rK   depart_termzHTMLTranslator.depart_termG  s	     	rL   c                 "    g | _         g |_        d S rF   )r   r  r  s     rK   visit_tgroupzHTMLTranslator.visit_tgroupL  s    


rL   c                     d S rF   r~   r  s     rK   depart_tgroupzHTMLTranslator.depart_tgroupP  r  rL   c                 b    | j                             |                     |d                     d S )Nr  r  r  s     rK   visit_theadzHTMLTranslator.visit_theadS  rl  rL   c                 :    | j                             d           d S )Nz	</thead>
r  r  s     rK   depart_theadzHTMLTranslator.depart_theadV  r'  rL   c                 J   i }| j         | j        z   dz
  }dt          |d          z  }|dk    r||d<    | j        ||dfi |}|                    d          rDi }d|d<   d	|d
<   d|d         z   |d<   | | j        t          j                    ddfi |z  }d|z  }nd|z  }||fS )Nr   zh%i   z
aria-levelr/   r  ztoc-backrefr   zdoc-backlinkrw  r  r  r  z
</a></%s>
r  )r   r   minr  r  r   ru  )rJ   r   r   h_levelr   	start_tag	close_tags          rK   section_title_tagsz!HTMLTranslator.section_title_tagsY  s    $t'@@1D#gq//)Q;;!(D!DM$<<t<<	<<   	,D)DM)DLg.DLu'8'8#rJJTJJJI%/II!G+I)##rL   c                 J   d}t          |j        t          j                  r3| j                            |                     |ddd                     nt          |j        t          j                  r3| j                            |                     |ddd                     nbt          |j        t          j                  r3| j                            |                     |ddd                     nt          |j        t          j	                  r2| j                            |                     |dd                     d	}nt          |j        t          j
                  rM| j                            |                     |d
dd                     d}t          | j                  | _        nSt          |j        t          j                  sJ |                     |          \  }}| j                            |           | j                            |           d S )NrG  r@  r/   ztopic-titlerB  zsidebar-titlezadmonition-titlero  z</caption>
h1r:   z</h1>
)r   rL  r   topicr8   r   r  r8  
Admonitionr   rO   r  r   r3  r  r   )rJ   r   r  r  s       rK   visit_titlezHTMLTranslator.visit_titlel  s   	dk5;// 	(I--c2]-CCE E E E U]33 	(I--c2_-EEG G G G U%566 	(I--c25G-HHJ J J JU[11 	(I--i446 6 6&IIU^44 	(IT]]4r]IIJJJ!I%(^^D""dk5=99999#'#:#:4#@#@ IyIY'''I&&&&&rL   c                 J   | j                             | j                                                   | j        rj| j         | j        d         | _        d| _        | j                            | j                    | j                            | j                    | j         d d = d S d S )Nr  r   )	r8   r   r   r   r   r:   r6   r   rB   r  s     rK   depart_titlezHTMLTranslator.depart_title  s    	))++,,,! 	4#9"#<=DJ%&D"!((333O""49---	!!!	 	rL   c                 d    | j                             |                     |dd                     d S )Nciter/   r  r  s     rK   visit_title_referencez$HTMLTranslator.visit_title_reference  r  rL   c                 :    | j                             d           d S )Nz</cite>r  r  s     rK   depart_title_referencez%HTMLTranslator.depart_title_reference  r!  rL   c                 f    | j                             |                     |dd                     d S )Nru  r  rB  r  r  s     rK   visit_topiczHTMLTranslator.visit_topic  s0    	tU'BBCCCCCrL   c                 :    | j                             d           d S r  r  r  s     rK   depart_topiczHTMLTranslator.depart_topic  r  rL   c                 f    | j                             |                     |dd                     d S )Nhrrl   rB  )r8   r   r  r  s     rK   visit_transitionzHTMLTranslator.visit_transition  s0    	tTDDEEEEErL   c                     d S rF   r~   r  s     rK   depart_transitionz HTMLTranslator.depart_transition  r  rL   c                 6    |                      |dd           d S )Nrh   Fr*  rS  r  s     rK   visit_versionzHTMLTranslator.visit_version  r  rL   c                 .    |                                   d S rF   rV  r  s     rK   depart_versionzHTMLTranslator.depart_version  rX  rL   c                 :    t          d|j        j        z            )Nz$visiting unimplemented node type: %s)NotImplementedError	__class__rs   r  s     rK   rP  z"HTMLTranslator.unimplemented_visit  s$    !"H$(N$;#< = = 	=rL   rF   )rf   F)rf   )r   )T)r/   )rs   rt   ru   __doc__r0   r   r  r  r   r   r  r  r   r   rp  compiler  Ur  r   ordr   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r$  r&  r/  r4  r9  r<  rC  rD  rI  rN  rQ  rT  rW  r[  r]  rb  rf  rk  rm  rp  rr  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.  r3  r  r  r  r  r  r  r  r  r  r  r%  r'  r)  r+  r.  r0  r2  r4  r9  r;  r>  rA  rE  rG  rJ  rM  rQ  rS  rU  rW  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/  r1  r4  r6  r9  r;  r>  r@  rC  rE  rG  rJ  rM  rQ  rS  rU  rX  rZ  r  r  ra  rc  rf  rh  rk  rn  rq  rs  ru  rw  ry  r{  r  r  r  r  r  r  r  r  r  r  r  rP  r~   rL   rK   r   r      s       6 6p ?O!GNN+L:I KNAK NOE!rz"233#$6==N#c((H#c((G#c((I#c((G#c((H	 NE E EN7 7 77 7 7' ' '   %"*^44   8 8 8 8*BN BN BN BNHN N N N
( 
( 
( 
(" " "  : : :$ $ $= = =' ' 'E E E
# # #O O O' ' ' ' $3*4%/#+- -
C C C8 8 8     
' ' '1 1 1# # #< < <, , ,  ", , ,&< < <$ $ $H H H# # #@ @ @) ) )
> 
> 
>" " "N N N$ $ $> > >
* * *$ %"*X..2   G G G% % %Q Q Q% % %= = =# # #3 3 3# # #. . .# # #    < < <( ( (I I I
( ( (
E E E- - -8 8 8$ $ $E E E  D D D D$ $ $O O O' ' 'E E E
I I I28 8 8" " "9 9 9(- - -< < <$ $ $< < <$$ $ $    H H H@ @ @( ( ($ $ $= = =% % %, , ,  5 5 5
' ' '> > >! ! !
! ! !  , , ,  V V Vp  : : :$ $ $? ? ?4 4 4E E E% % %' ' '
% % %I I I% % %8 8 8$ $ $  0$ $ $' ' '
% % % !0 : 7 7	 Id d d dL  1 1 1  
      J J J# # #9 9 9# # #" " "* * *< < <$ $ $        6 6 6# # #$7 7 7# # #O O O- - -  ? ? ?*  > > ># # #  $ $ $G G G# # #9 9 9
% % %
  
     < < <# # #< < <& & &9 9 9# # #  ' ' 'H H H  9 9 9# # #N N N4' ' '  ' ' '$ $ $- - -7 7 7' ' 'D D D  
    7 7 7' ' '$ $ $&' ' '8  : : :$ $ $D D D% % %F F F  = = =# # #= = = = =rL   r   c                       e Zd ZdZd Zd Zd Zd ZeZeZ	eZ
eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!eZ"dS )r_  a  
    Raise `nodes.NodeFound` if non-simple list item is encountered.

    Here "simple" means a list item containing nothing other than a single
    paragraph, a simple list, or a paragraph followed by a simple list.

    This version also checks for simple field lists and docinfo.
    c                     t           j        rF   )r   ra  r  s     rK   default_visitzSimpleListChecker.default_visit  s
    orL   c                    d |j         D             }|rt          |d         t          j                  rtt          |d         t          j                  s@t          |d         t          j                  s t          |d         t          j                  r|                                 t          |          dk    rd S t          j	        )Nc                 F    g | ]}t          |t          j                  |S r~   r  )r   r  s     rK   r   z5SimpleListChecker.visit_list_item.<locals>.<listcomp>  s8     ? ? ?e%eU_==?E ? ? ?rL   r   r  r   )
r  r   r   	paragraphr   r   r   r   r  ra  )rJ   r   r  s      rK   r  z!SimpleListChecker.visit_list_item  s    ? ?t} ? ? ? 	HQKAA 	HRL%*;<<	HRL%*?@@	 HRL%*:;;	 LLNNNx==AF/!rL   c                     d S rF   r~   r  s     rK   	pass_nodezSimpleListChecker.pass_node  r  rL   c                     t           j        rF   rL  r  s     rK   ignore_nodezSimpleListChecker.ignore_node  rN  rL   N)#rs   rt   ru   r  r  r  r  r  r  r  rk  r  r  rN  rT  r/  r  r  r  r  r>  r  r  r  rq  r  r  r%  r)  r2  r.  r  rM  rf  visit_pendingr~   rL   rK   r_  r_    s           " " "    
 J!O "%M L#M#MM!OJ$L#M &!*J & !K&"  M$/!LMMMrL   r_  )'r  rv  rh  r  os.pathrp  rl  r   rl   r   r   r   r   r   docutils.parsers.rst.directivesr   &docutils.parsers.rst.directives.imagesr	   docutils.utils.error_reportingr
   docutils.transformsr   docutils.utils.mathr   r   r   r   r   version_infourllib.requestr   urllibstrr_   r   r   r   GenericNodeVisitorr_  r~   rL   rK   <module>r     s  $ 3 2              				 



   ? ? ? ? ? ? ? ? ? ? ? ? ? ? L L L L L L 6 6 6 6 6 6 5 5 5 5 5 5 * * * * * *M M M M M M M M M M M M M M v+++++++######vGH< H< H< H< H<W^ H< H< H<Vs= s= s= s= s=U& s= s= s=l/H  H  H  H  H 0 H  H  H  H  H rL   