File: //lib/python3/dist-packages/markdown_it/common/__pycache__/utils.cpython-311.pyc
�
�&d�* � �0 � d Z ddlZddlZddlmZ ddlmZ dededefd �Zd
� Z de
dede
de
fd�Zd
edefd�Z
d
edefd�Z ej d� � Z ej dej � � Z ej dej � � Zdededefd�Zdedefd�Zdedefd�ZdZ ej dez dz � � Zdedefd�Zdedefd�Z ej d� � Zdedefd �Zd!edefd"�Zh d#�Zd!edefd$�Z ej d%� � Z!d&edefd'�Z"h d(�Z#d&edefd)�Z$dedefd*�Z%dS )+z"Utilities for parsing source text
� N)�Any� )�entities�src�pos�returnc �P � t | | � � S # t $ r Y dS w xY 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)r r s �:/usr/lib/python3/dist-packages/markdown_it/common/utils.py�
charCodeAtr
s9 � ���3�s�8�}�}���� � � ��t�t����s � �
%�%c � � t �)z+Merge objects /*from1, from2, from3, ...*/)��NotImplementedError)�objs r �assignr s � �
�� �newElementsc �8 � | d|� |z | |dz d� z S )zw
Remove element from array and put another array at those position.
Useful for some operations with tokens
Nr � )r r r s r �arrayReplaceAtr / s( � �
�t��t�9�{�"�S��q����^�3�3r �cc �� � | dk r| dk rdS | dk r| dk rdS | dz dk s | dz dk rdS | dk r| d k rdS | d
k rdS | dk r| dk rdS | d
k r| dk rdS | dk rdS dS )Ni � i�� Fi� i� i�� i�� r � � � � � � i�� Tr �r s r �isValidEntityCoder! : s� � � �F�{�{�q�F�{�{��u��F�{�{�q�F�{�{��u�
�V�����Q��Z�F�$:�$:��u��D�y�y�Q�$�Y�Y��u��D�y�y��u��D�y�y�Q�$�Y�Y��u��D�y�y�Q�$�Y�Y��u��8�|�|��u��4r 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$ S s � � �q�6�6�Mr z+\\([!"#$%&\'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])zD\\([!"#$%&\'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])|&([a-z#][a-z0-9]{1,31});z!^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))�match�namec �t � d}|t v r
t | S t |d � � dk r�t � |� � rl|d � � � dk rt |dd� d� � nt |dd� d� � }t
|� � rt |� � S | S ) zfConvert HTML entity patterns
::
https://www.google.com -> https%3A//www.google.com
r �# r �x� N� �
)r r
�DIGITAL_ENTITY_TEST_RE�search�lower�intr! r$ )r% r&