
    }c              
          U d Z ddlZddlmZ ddlmZ ddl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 ddlmZ ddlmZ ddlmZmZ 	 ddlmZ n# e$ r	 ddlmZ Y nw xY w ej        e           Z! ej"        d          Z# ej"        d          Z$g dZ% ed           Z&ee'e'f         e(d<   de&d<   de'de'fdZ)d*de'de'de*fdZ+ed+dede'de*de'fd             Z,ed!e'd"e'ded#         fd$            Z-d%ed&e'ddfd'Z.d%ed(e'ddfd)Z/dS ),zreST helper functions.    N)defaultdict)contextmanager)Dict	Generatoreast_asian_width)roles)en)
StringList)Reporter)Environment)__)docutilslogging)pass_environment)environmentfilterz:\w+:.*?z([!-\-/:-@\[-`{-~]))=-~c                      dS )NWF r       /lib/python3.11/site-packages/sphinx/util/rst.py<lambda>r      s     r   	WIDECHARSWFAjatextreturnc                 h    t                               d|           } t          j        dd|           } | S )Nz\\\1z^\.z\.)
symbols_resubre)r   s    r   escaper%   #   s-    >>'4((D6&%&&DKr   r   	widecharsc                 p    dt           dt           dt          fdt          fd| D                       S )zGet width of text.charr&   r    c                 ,    t          |           |v rdS dS )N      r   )r(   r&   s     r   	charwidthztextwidth.<locals>.charwidth+   s!    D!!Y. 	11r   c              3   0   K   | ]} |          V  d S )Nr   ).0cr,   r&   s     r   	<genexpr>ztextwidth.<locals>.<genexpr>1   s/      551yyI&&555555r   )strintsum)r   r&   r,   s    `@r   	textwidthr4   )   sU           55555555555r   r+   envlevelc                     |dk    sJ t          |t          | j                           }t          |dz
           }|d||z  S )zCreate a heading for *level*.   r+   
)r4   r   languageSECTIONING_CHARS)r5   r   r6   widthsectioning_chars        r   headingr>   4   sO     A:dIcl344E&uqy1Ott_u4455r   docnamename)NNNc              #   "  K   |rrt          ddd          }t          j        |t          d|          \  }}|rt	          j        d|           n*t                              t          d          ||            d V  t	          j	        d           d S )N    r   zdefault role %s not found)location)
r   r	   roleenglishr   register_roleloggerwarningr   unregister_role)r?   r@   dummy_reporterrole_fn_s        r   default_rolerN   =   s       T!"a++Zgq.AA
 	T"2w////NN29::D7NSSS	EEER     r   contentprologc                 b   |rd}| D ]"}t                               |          r|dz  }" |dk    r|                     |ddd           |dz  }t          |                                          D ] \  }}|                     ||z   |d|           !|                     ||z   dz   ddd           dS dS )z+Prepend a string to content body as prolog.r   r+   rB   <generated>z<rst_prolog>N)
docinfo_rematchinsert	enumerate
splitlines)rO   rP   poslinelinenos        r   prepend_prologr[   L   s     ? 	 	D%% q7 	NN3M15551HC &f&7&7&9&9:: 	G 	GLFDNN3<~vFFFFsV|a']A>>>>>#? ?r   epilogc                    |rdt          |           k     r|                     d          \  }}nd}d}|                     d||dz              t          |                                          D ]\  }}|                     |d|           dS dS )z*Append a string to content body as epilog.r   rR   rB   r+   z<rst_epilog>N)leninfoappendrV   rW   )rO   r\   sourcerZ   rY   s        r   append_epilogrc   b   s     9s7|| 	$\\"--NFFF"FFr66A:...%f&7&7&9&9:: 	9 	9LFDNN488889 9	9 	9r   )r   )r+   )0__doc__r$   collectionsr   
contextlibr   typingr   r   unicodedatar   docutils.parsers.rstr	   docutils.parsers.rst.languagesr
   rF   docutils.statemachiner   docutils.utilsr   jinja2r   sphinx.localer   sphinx.utilr   r   jinja2.utilsr   ImportErrorr   	getLogger__name__rH   compilerS   r"   r;   r   r1   __annotations__r%   r2   r4   r>   rN   r[   rc   r   r   r   <module>rv      s      				 # # # # # # % % % % % % " " " " " " " " ( ( ( ( ( ( & & & & & & 8 8 8 8 8 8 , , , , , , # # # # # #             ) ) ) ) ) ) ) )=------- = = =<<<<<<<<= 
	8	$	$RZ$$
RZ.//
"??  (K55	4S> 5 5 5	$     6 6C 6C 63 6 6 6 6 6 6 6C 6 6C 6 6 6 6 !# !S !Y7G-H ! ! ! !?J ? ? ? ? ? ?,
9: 
9s 
9t 
9 
9 
9 
9 
9 
9s   A A$#A$