o
    [i                     @   s    d Z ddlZdd Zdd ZdS )z4
OOXML has non-standard escaping for characters < 
    Nc                 C   s   t d}dd }||| S )zB
    Convert ASCII < 31 to OOXML: \n == _x + hex(ord(\n)) + _
    z[\001-\031]c                 S   s   d t| dS )z*
        Callback to escape chars
        z
_x{:0>4x}_r   )formatordgroupmatch r   M/home/air/sos/back/venv/lib/python3.10/site-packages/openpyxl/utils/escape.py_sub      zescape.<locals>._subrecompilesub)value
CHAR_REGEXr	   r   r   r   escape
   s   
r   c                 C   s*   t d}dd }d| v r||| } | S )z:
    Convert escaped strings to ASCIII: _x000a_ == \n
    z_x([0-9A-Fa-f]{4})_c                 S   s   t t| ddS )z,
        Callback to unescape chars
              )chrintr   r   r   r   r   r	   "   r
   zunescape.<locals>._sub_xr   )r   ESCAPED_REGEXr	   r   r   r   unescape   s
   
r   )__doc__r   r   r   r   r   r   r   <module>   s   