Ë
    éÿæi"  ã                  óp  — d Z ddlmZ ddlZddlmZ ddlmZ ddlZddlmZ d'd„Z	d(d	„Z
 ed
«      Z	 	 	 	 	 	 	 	 d)d„Zd*d„Zd+d„Z ej                  dej                   «      Z ej                  d«      Z ej                  dej                   «      Zd,d„Zd-d„ZdZ ej                  dez   dz   «      Zd-d„Zd.d„Z ej                  d«      Zd-d„Zd/d„Zd0d„Zh d£Zd1d„Zd2d„Z h d£Z!d3d „Z"d-d!„Z# ej                  d"ej                   ¬#«      Z$ ej                  d$ej                   ¬#«      Z%d4d%„Z&d4d&„Z'y)5z!Utilities for parsing source texté    )ÚannotationsN)ÚMatch)ÚTypeVaré   )Úentitiesc                ó>   — 	 t        | |   «      S # t        $ r Y yw xY w©a
  
    Returns the Unicode value of the character at the specified location.

    @param - index The zero-based index of the desired character.
    If there is no character at the specified index, NaN is returned.

    This was added for compatibility with python
    N)ÚordÚ
IndexError©ÚsrcÚposs     úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/markdown_it/common/utils.pyÚ
charCodeAtr      s'   € ðÜ�3�s‘8‹}ÐøÜò Ùðús   ‚ �	›c                ó,   — 	 | |   S # t         $ r Y yw xY wr	   )r   r   s     r   Ú	charStrAtr      s"   € ðØ�3‰xˆøÜò Ùðús   ‚ ‡	’Ú_ItemTVc                ó$   — | d| |z   | |dz   d z   S )zw
    Remove element from array and put another array at those position.
    Useful for some operations with tokens
    Nr   © )r   r   ÚnewElementss      r   ÚarrayReplaceAtr   .   s$   € ð ˆt�ˆ9�{Ñ" S¨¨q©¨ ^Ñ3Ð3ó    c                óª   — | dk\  r| dk  ry| dk\  r| dk  ry| dz  dk(  s| dz  dk(  ry| dk\  r| d	k  ry| d
k(  ry| dk\  r| dk  ry| dk\  r| dk  ry| dkD   S )Ni Ø  iÿß  FiÐý  iïý  iÿÿ  iþÿ  r   é   é   é   é   é   éŸ   iÿÿ r   ©Úcs    r   ÚisValidEntityCoder"   8   sƒ   € àˆF‚{�q˜F’{ØàˆF‚{�q˜F’{ØØ	
ˆV‰˜Ò Q¨¡Z°FÒ$:ØàˆD‚y�Q˜$’YØØˆD‚yØØˆD‚y�Q˜$’YØØˆD‚y�Q˜$’YØà�H‘ÐÐr   c                ó   — t        | «      S )zÛConvert ordinal to unicode.

    Note, in the original Javascript two string characters were required,
    for codepoints larger than `0xFFFF`.
    But Python 3 can represent any unicode codepoint in one character.
    )Úchrr    s    r   ÚfromCodePointr%   N   s   € ô ˆq‹6€Mr   zD\\([!"#$%&\'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])|&([a-z#][a-z0-9]{1,31});z#([0-9]{1,8})z#x([a-f0-9]{1,8})c                ó&  — |t         v r	t         |   S d}t        j                  |«      x}rt        |j	                  d«      d«      }n2t
        j                  |«      x}rt        |j	                  d«      d«      }|�t        |«      rt        |«      S | S )z^Convert HTML entity patterns,
    see https://spec.commonmark.org/0.30/#entity-references
    Nr   é
   é   )r   ÚDIGITAL_ENTITY_BASE10_REÚ	fullmatchÚintÚgroupÚDIGITAL_ENTITY_BASE16_REr"   r%   )ÚmatchÚnameÚcodeÚpats       r   ÚreplaceEntityPatternr2   b   s�   € ð ŒxÑÜ˜‰~Ðà€DÜ&×0Ñ0°Ó6Ð6€sÐ6Ü�3—9‘9˜Q“< Ó$‰Ü(×2Ñ2°4Ó8Ð	8ˆÐ	8Ü�3—9‘9˜Q“< Ó$ˆàÐÔ-¨dÔ3Ü˜TÓ"Ð"à€Lr   c                óJ   — dd„}d| vrd| vr| S t         j                  || «      S )Nc                ó‚   — | j                  d«      }|r|S | j                  d«      }t        | j                  «       |«      S )Nr   é   )r,   r2   )r.   ÚescapedÚentitys      r   Úreplacer_funcz"unescapeAll.<locals>.replacer_funcv   s7   € Ø—+‘+˜a“.ˆÙØˆNØ—‘˜Q“ˆÜ# E§K¡K£M°6Ó:Ð:r   Ú\Ú&)r.   z
Match[str]ÚreturnÚstr)ÚUNESCAPE_ALL_REÚsub)Ústringr8   s     r   ÚunescapeAllr@   u   s0   € ó;ð �6Ñ˜c¨Ñ/ØˆÜ×Ñ˜}¨fÓ5Ð5r   z#\\!"#$%&'()*+,./:;<=>?@\[\]^`{}|_~-z\\([z])c                ó.   — t         j                  d| «      S )zStrip escape \ charactersz\1)ÚESCAPE_CHARr>   ©r?   s    r   ÚstripEscaperD   †   s   € ä�?‰?˜5 &Ó)Ð)r   c                ó–   — | j                  dd«      } | j                  dd«      } | j                  dd«      } | j                  dd«      } | S )	zHReplace special characters "&", "<", ">" and '"' to HTML-safe sequences.r:   z&amp;Ú<z&lt;Ú>z&gt;Ú"z&quot;)Úreplace)Úraws    r   Ú
escapeHtmlrK   ‹   sI   € ð �+‰+�c˜7Ó
#€CØ
�+‰+�c˜6Ó
"€CØ
�+‰+�c˜6Ó
"€CØ
�+‰+�c˜8Ó
$€CØ€Jr   z[.?*+^$[\]\\(){}|-]c                ó2   — t         j                  d| «      } | S )Nz\$&)ÚREGEXP_ESCAPE_REr>   rC   s    r   ÚescapeRErN   š   s   € Ü×!Ñ! &¨&Ó1€FØ€Mr   c                ó
   — | dv S )z(Check if character code is a whitespace.)é	   é    r   ©r0   s    r   ÚisSpacerS   ¢   s   € à�<ÐÐr   c                ó
   — | dv S )z#Check if character is a whitespace.)Ú	Ú r   ©Úchs    r   Ú
isStrSpacerY   §   s   € à�ÐÐr   >   é 0  é/   é_   é€  rP   r'   r   é   é   rQ   é    c                ó(   — | dk\  r| dk  ry| t         v S )z"Zs (unicode class) || [\t\f\v\r\n]i    i
   T)ÚMD_WHITESPACErR   s    r   ÚisWhiteSpacerc   »   s   € àˆv‚~˜$ &š.ØØ”=Ð Ð r   c                óJ   — t        j                  | «      j                  d«      S )z.Check if character is a punctuation character.)ÚPÚS)ÚunicodedataÚcategoryÚ
startswithrW   s    r   ÚisPunctCharrj   Å   s   € ä×Ñ Ó#×.Ñ.¨zÓ:Ð:r   >    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é:   é;   é<   é=   é>   é?   é@   é[   é\   é]   é^   é_   é`   é{   é|   é}   é~   c                ó   — | t         v S )a9  Markdown ASCII punctuation characters.

    ::

        !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~

    See http://spec.commonmark.org/0.15/#ascii-punctuation-character

    Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.

    )ÚMD_ASCII_PUNCTrW   s    r   ÚisMdAsciiPunctr�   î   s   € ð ”ÐÐr   c                óˆ   — t        j                  dd| j                  «       «      } | j                  «       j	                  «       S )z#Helper to unify [reference labels].z\s+rV   )Úrer>   ÚstripÚlowerÚupperrC   s    r   ÚnormalizeReferencer“   ý   s4   € ô �V‰V�F˜C §¡£Ó0€FðX �<‰<‹>×ÑÓ!Ð!r   z^<a[>\s])Úflagsz^</a\s*>c                ó>   — t        t        j                  | «      «      S ©N)ÚboolÚLINK_OPEN_REÚsearchrC   s    r   Ú
isLinkOpenrš   4  s   € Ü”×#Ñ# FÓ+Ó,Ð,r   c                ó>   — t        t        j                  | «      «      S r–   )r—   ÚLINK_CLOSE_REr™   rC   s    r   ÚisLinkCloser�   8  s   € Ü”×$Ñ$ VÓ,Ó-Ð-r   )r   r<   r   r+   r;   ú
int | None)r   r<   r   r+   r;   ú
str | None)r   úlist[_ItemTV]r   r+   r   r    r;   r    )r!   r+   r;   r—   )r!   r+   r;   r<   )r.   r<   r/   r<   r;   r<   )r?   r<   r;   r<   )rJ   r<   r;   r<   )r0   rž   r;   r—   )rX   rŸ   r;   r—   )r0   r+   r;   r—   )rX   r<   r;   r—   )rX   r+   r;   r—   )r?   r<   r;   r—   )(Ú__doc__Ú
__future__r   r�   r   Útypingr   rg   r   r   r   r   r   r"   r%   ÚcompileÚ
IGNORECASEr=   r)   r-   r2   r@   Ú	ESCAPABLErB   rD   rK   rM   rN   rS   rY   rb   rc   rj   rŒ   r�   r“   r˜   rœ   rš   r�   r   r   r   Ú<module>r§      s[  ðÙ 'å "ã 	Ý Ý Û å óóñ �)Ó
€ð4Ø	ð4Ø ð4Ø/<ð4àó4óó,ð �"—*‘*ØVØ‡M�Mó€ð &˜2Ÿ:™:Ð&6Ó7Ð Ø%˜2Ÿ:™:Ð&:¸B¿M¹MÓJÐ óó&
6ð 7€	Øˆb�j‰j˜ 9Ñ,¨uÑ4Ó5€ó*ó
ð �2—:‘:Ð4Ó5Ð óó ó
ò
€ó!ó;ò
!€óH ó0"ðf ˆr�z‰z˜+¨R¯]©]Ô;€Ø�—
‘
˜;¨b¯m©mÔ<€ó-ô.r   