
    f                         d dl Z 	  ed       g dZg dZeez   Zd Zd Zd	 Zd
 Z	d Z
 e j                  de
       y# e$ r
 g dZdgZY 6w xY w)    N   )   i  i   i  i  i  )r   i )i   i )i   i )i   i )i   i )i   i )i   i )i   i )i  	 i	 )i  
 i
 )i   i )i   i )i   i )i  i )i   i  )i   i )i   i )r   r   r   r   c                 >    t         D ]  \  }}|| cxk  r|k  s y  y)NTF)_ESCAPE_RANGES)octetstartends      K/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/openid/codecutil.py_in_escape_ranger   .   s/    $ 
sE S  !     c                 8    t        |       }d|cxk  xr dk  S c S )Ni   i  ord	character
char_values     r   _starts_surrogate_pairr   5   !    YJZ)6))))r   c                 8    t        |       }d|cxk  xr dk  S c S )Ni   i  r   r   s     r   _ends_surrogate_pairr   :   r   r   c                 ~   g }t        |       }|D ]  }t        |      }t        |      r4t        |      j	                  d      D ]  }|j                  d|z          Mt        |      r9t        |      }||z   j	                  d      D ]  }|j                  d|z          |j                  t        |              |S )Nzutf-8z%%%X)iterr   r   chrencodeappendr   next)chunkreplacements
chunk_iterr   	codepointcharnext_characters          r   _pct_encoded_replacementsr'   ?   s    LeJ 
0		N	I&I--g6 3##FTM23#I.!*-N"^3;;GD 3##FTM23 I/
0 r   c                     | j                   | j                  | j                   }t        |      }dj	                  |      | j                  fS )z
    Encoding error handler that does percent-escaping of Unicode, to be used
    with codecs.register_error
    TODO: replace use of this with urllib.parse.quote as appropriate
     )objectr   r   r'   join)errr!   r"   s      r   _pct_escape_handlerr-   P   s>     JJsyy)E,U3LGGL!377++r   oid_percent_escape)codecsr   UCSCHARIPRIVATE
ValueErrorr
   r   r   r   r'   r-   register_error r   r   <module>r5      s    &LG(H 8#*
*
",   *,? @m  
G 	H
s   > AA