
    ]Mhq                     \   d Z ddlZddlZ G d dej                  Zd ed           ed           ed           ed	           ed
           ed           ed          dfd ed           ed	           ed
           ed           ed          dfd ed	           ed           ed           ed
           ed           ed          dfd ed           ed	           ed
           ed           ed          dfdZi Zd Z ej	        e           dS )zExtend the Python codecs module with a few encodings that are used in OpenType (name table)
but missing from Python.  See https://github.com/fonttools/fonttools/issues/236 for details.    Nc                   0    e Zd Zd Zd ZddZddZd ZdS )	ExtendCodecc                 `   || _         || _        || _        d |                                D             | _        t          d |                                D                       | _        t          j	        | j         | j
        | j                  | _        t          j        || j                   d S )Nc                     i | ]\  }}||	S  r   ).0kvs      Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/encodings/codecs.py
<dictcomp>z(ExtendCodec.__init__.<locals>.<dictcomp>   s    999A1999    c              3   4   K   | ]}t          |          V  d S N)len)r   r
   s     r   	<genexpr>z'ExtendCodec.__init__.<locals>.<genexpr>   s(      <<a3q66<<<<<<r   )nameencodedecode)r   base_encodingmappingitemsreversemaxvaluesmax_lencodecs	CodecInfor   r   inforegister_errorerror)selfr   r   r   s       r   __init__zExtendCodec.__init__	   s    	*99999<<7>>+;+;<<<<<$4;t{
 
 
	 	dDJ/////r   c                 V   t          j        |          }t          |          } |            }|rw	  ||| j        | j                  }	||	z  }nX# |$ rN}
| ||d |
j                 | j        | j                  z  } ||
          \  }}||z  }||d          }Y d }
~
nd }
~
ww xY w|w||fS )N)errors)r   lookup_errorr   r   r   start)r!   mapperoutput_typeexc_typeinputr$   base_error_handlerlengthoutpartereplacementposs                r   _mapzExtendCodec._map   s    #088Ukmm 	$	$veT%7	JJJt $ $ $vveIagI.0BDINNN#5#5a#8#8 S{"cdd$  	$ F{s   A B"ABB"strictc                 \    |                      t          j        t          t          ||          S r   )r2   r   r   bytesUnicodeEncodeErrorr!   r*   r$   s      r   r   zExtendCodec.encode&   s    yy/A5&QQQr   c                 \    |                      t          j        t          t          ||          S r   )r2   r   r   strUnicodeDecodeErrorr7   s      r   r   zExtendCodec.decode)   s    yy-?OOOr   c                    t          |t                    rRt          |j        dz   |j        dz             D ]0}|j        |j        |         }|| j        v r| j        |         |fc S 1nnt          |t                    rYt          |j        dz   |j        | j        z   dz             D ]0}|j        |j        |         }|| j	        v r| j	        |         |fc S 1| j
        |_        |)N   )
isinstancer:   ranger&   endobjectr   r6   r   r   r   encoding)r!   r/   r?   ss       r   r    zExtendCodec.error,   s   a+,, 		0QWq[!%!)44 0 0HQWs]+$$<?C//// %0 -.. 	0QWq[!'DL*@1*DEE 0 0HQWs]+$$<?C//// %Y
r   N)r3   )__name__
__module____qualname__r"   r2   r   r   r    r   r   r   r   r      sq        	0 	0 	0  $R R R RP P P P    r   r   	shift_jis|   ~   \         i"!  i&   )      ~               big5)rN   rO   rP   rQ   rR   euc_kri   i   )rN            rQ   rR   gb2312   )x_mac_japanese_ttxx_mac_trad_chinese_ttxx_mac_korean_ttxx_mac_simp_chinese_ttxc                 V   t          j        |           } | t          v r| t          vrpt          |          \  }}| dd          dk    sJ | d d         |g}|D ]A}	 t	          j        |           n# t          $ r Y $w xY wt          | ||          t          | <    t          |          j        S d S )N_ttx)		encodingsnormalize_encoding_extended_encodings_cacher   lookupLookupErrorr   r   )r   r   r   base_encodingss       r   search_functionrh   l   s    '--D"""v%8%>"M79&&&& #3B3i7N!/  M-0000"   H*4HHtd|  4s   A--
A:9A:)
__doc__r   ra   Codecr   chrrc   rd   rh   registerr   r   r   <module>rm      s  ` `     0 0 0 0 0&, 0 0 0j 	S[[S[[S[[S[[S[[S[[S[[	
 	
 	S[[S[[S[[S[[S[[	
 	
	 	S[[S[[S[[S[[S[[S[[	
 	

 	S[[S[[S[[S[[S[[	
 	
	E, , \ 
  6           r   