
    h                        S SK r S SKJr  S SKJr  S SKJr  \ R                  " S\ R                  S9r	SS\
S\S	\
4S
 jjrSS\
S\
S	\
4S jjrSS\
S\S	\
4S jjrS\
S	\
4S jrS\
S	\
4S jrS\
S	\
4S jr\ R                  " S5      rS\
S	\
4S jr\ R                  " S5      rS\
S	\
4S jr\ R                  " S5      rS\
S	\
4S jrg)    N)_replace_charref)Match)quotez^( {0,3})\t)flagstextwidthreturnc                 d   ^ S[         [           S[        4U4S jjn[        R                  X 5      $ )Nmr	   c                 N   > U R                  S5      nUST[        U5      -
  -  -   $ )N    )grouplen)r   sr   s     _C:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/util.pyrepl expand_leading_tab.<locals>.repl
   s(    GGAJ3%#a&.)))    )r   str_expand_tab_resub)r   r   r   s    ` r   expand_leading_tabr   	   s-    *c
 *s * d))r   spacec                 6    SU-   n[         R                  X 5      $ )Nz\1)r   r   )r   r   r   s      r   
expand_tabr      s    5=Dd))r   r   r   c                     U R                  SS5      n U R                  SS5      n U R                  SS5      n U(       a  U R                  SS5      n U $ )	zTEscape characters of ``&<>``. If quote=True, ``"`` will be
converted to ``&quote;``.&z&amp;<z&lt;>z&gt;"z&quot;)replace)r   r   s     r   escaper#      sL     	
		#wA			#vA			#vAIIc8$Hr   linkc                 ,    Sn[        [        U 5      US9$ )zEscape URL for safety.z:/?#@!$&()*+,;=%)safe)r   unescape)r$   r&   s     r   
escape_urlr(   !   s    	 	
 $d++r   c                 *    [        [        U 5      5      $ )zEscape characters for safety.)r#   r'   r   s    r   safe_entityr+   +   s    (1+r   c                     SR                  U R                  5       5      R                  5       nUR                  5       R	                  5       $ )z.Generate a unique key for links and footnotes.r   )joinsplitstriplowerupper)r   keys     r   unikeyr3   0   s4    
((1779

#
#
%C99;r   z8&(#[0-9]{1,7};|#[xX][0-9a-fA-F]+;|[^\t\n\f <&#;]{1,32};)c                 F    SU ;  a  U $ [         R                  [        U 5      $ )z
Copy from `html.unescape`, but `_charref` is different. CommonMark
does not accept entity references without a trailing semicolon
r   )_charref_rer   r   r*   s    r   r'   r'   =   s"    
 !|??+Q//r   z(<!--.*?-->|<[^>]*>)c                 .    [         R                  SU 5      $ )N )_striptags_rer   r*   s    r   	striptagsr9   J   s    R##r   z\n\s+$srcc                 .    [         R                  SU 5      $ )N
)_strip_end_rer   )r:   s    r   	strip_endr>   Q   s    T3''r   )   )z    )T)rehtmlr   typingr   urllib.parser   compileMr   r   intr   r   boolr#   r(   r+   r3   r5   r'   r8   r9   r=   r>    r   r   <module>rI      s   	 !  N"$$7*S * *S **S * *# *
c $ # ,S ,S ,3 3 
c c  jj0 0 0 

23$ $ $ 

9%(3 (3 (r   