§
    ‚Ûg1  ã                   ó   — d Z ddlZddlZej        Z G d„ de¦  «        Zd„ Zd„ Zd„ Z	dd	„Z
d
„ Zd„ Zd„ Zdd„Zdd„Zd„ Zd„ Zdd„Zdd„Zedk    r,ddlZddlZ ej         ej        ¦   «         j        ¦  «         dS dS )z6fontTools.misc.textTools.py -- miscellaneous routines.é    Nc                   óB   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )ÚTagc                 óZ   — t          | t          ¦  «        r|                      d¦  «        } | S ©Nzlatin-1)Ú
isinstanceÚbytesÚdecode)Úblobs    úN/granary/edev/quantum/lib/python3.11/site-packages/fontTools/misc/textTools.pyÚ	transcodezTag.transcode   s*   € å�d�EÑ"Ô"ð 	*Ø—;’;˜yÑ)Ô)ˆDØˆó    c                 ó^   — t                                | |                      |¦  «        ¦  «        S ©N)ÚstrÚ__new__r   )ÚselfÚcontents     r   r   zTag.__new__   s"   € Ý�{Š{˜4 §¢°Ñ!8Ô!8Ñ9Ô9Ð9r   c                 ó.   — |                       |¦  «         S r   )Ú__eq__©r   Úothers     r   Ú__ne__z
Tag.__ne__   s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   c                 ó^   — t                                | |                      |¦  «        ¦  «        S r   )r   r   r   r   s     r   r   z
Tag.__eq__   s"   € Ý�zŠz˜$ §¢¨uÑ 5Ô 5Ñ6Ô6Ð6r   c                 ó6   — t                                | ¦  «        S r   )r   Ú__hash__©r   s    r   r   zTag.__hash__   s   € Ý�|Š|˜DÑ!Ô!Ð!r   c                 ó,   — |                       d¦  «        S r   )Úencoder   s    r   ÚtobyteszTag.tobytes   s   € Ø�{Š{˜9Ñ%Ô%Ð%r   N)
Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r   © r   r   r   r      sx   € € € € € Øðð ñ „\ðð
:ð :ð :ð&ð &ð &ð7ð 7ð 7ð"ð "ð "ð&ð &ð &ð &ð &r   r   c                 óN   — t          t          d„ | D ¦   «         ¦  «        ¦  «        S )z-Convert a list of hex strings to binary data.c              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   )r   r   )Ú.0Úchunks     r   ú	<genexpr>zreadHex.<locals>.<genexpr>$   s1   è è € ÐQÐQ e½*ÀUÍCÑ:PÔ:PÐQ˜EÐQÐQÐQÐQÐQÐQr   )ÚdeHexStrÚstrjoin)r   s    r   ÚreadHexr,   "   s'   € å•GÐQÐQ¨wÐQÑQÔQÑQÔQÑRÔRÐRr   c                 óL  — t          |                      ¦   «         ¦  «        } t          | ¦  «        dz  r| dz   } g }t          dt          | ¦  «        d¦  «        D ]=}|                     t          t          | ||dz   …         d¦  «        ¦  «        ¦  «         Œ>t          |¦  «        S )z$Convert a hex string to binary data.é   Ú0r   é   )r+   ÚsplitÚlenÚrangeÚappendÚbytechrÚintÚ	bytesjoin)ÚhexdataÚdataÚis      r   r*   r*   '   s™   € å�g—m’m‘o”oÑ&Ô&€GÝ
ˆ7�|„|�aÑð  Ø˜C‘-ˆØ€DÝ�1•c˜'‘l”l AÑ&Ô&ð :ð :ˆØ�Š•G�C ¨¨A°©E¨	Ô 2°BÑ7Ô7Ñ8Ô8Ñ9Ô9Ð9Ð9Ý�T‰?Œ?Ðr   c                 ó„   — t           j        }d}| D ].}t          |¦  «        }|||dz	  dz           z   ||dz           z   }Œ/|S )z$Convert binary data to a hex string.Ú é   é   )ÚstringÚ	hexdigitsÚbyteord)r9   ÚhÚrÚcr:   s        r   ÚhexStrrE   2   sT   € åÔ€AØ
€AØð /ð /ˆÝ�A‰JŒJˆØ��1˜‘6˜S‘.Ô!Ñ! A a¨#¡g¤JÑ.ˆˆØ€Hr   é    c                 ó2  — g }d}t          |¦  «        D ]6}| dz  rd|z   }nd|z   }| dz	  } |dz   dz  s|                     |¦  «         d}Œ7|r|                     |¦  «         |                     ¦   «          | dv s
J d¦   «         ‚d                     |¦  «        S )	Nr<   é   Ú1r/   é   )r   éÿÿÿÿz$number doesn't fit in number of bitsú )r3   r4   ÚreverseÚjoin)ÚlÚbitsÚitemsÚbinaryr:   s        r   Ú
num2binaryrS   <   s½   € Ø€EØ€FÝ�4‰[Œ[ð ð ˆØˆs‰7ð 	"Ø˜6‘\ˆFˆFà˜6‘\ˆFØ�‰FˆØ�Q‘˜!‘ð 	Ø�LŠL˜Ñ Ô Ð ØˆFøØð Ø�Š�VÑÔÐØ	‡M‚M�O„O€OØ�ˆ<ˆ<ˆ<Ð?‰<Œ<ˆ<Ø�8Š8�E‰?Œ?Ðr   c                 óv   — t          |                      ¦   «         ¦  «        } d}| D ]}|dz  }|dk    r|dz  }Œ|S )Nr   rH   r/   )r+   r1   )ÚbinrO   Údigits      r   Ú
binary2numrW   O   sL   € Ý
�#—)’)‘+”+Ñ
Ô
€CØ	€AØð ð ˆØ�‰FˆØ�CŠ<ˆ<Ø�C‘ˆAøØ€Hr   c                 óf   — 	 t          | d„ ¬¦  «        S # t          $ r t          | ¦  «        cY S w xY w)zjReturn a sorted copy of a list. If there are only strings
    in the list, it will not consider case.
    c                 ó.   — |                       ¦   «         | fS r   )Úlower)Úas    r   ú<lambda>zcaselessSort.<locals>.<lambda>_   s   € ¨A¯GªG©I¬I°q¨>€ r   )Úkey)ÚsortedÚ	TypeError)Úalists    r   ÚcaselessSortra   Y   sK   € ð
Ý�eÐ!9Ð!9Ð:Ñ:Ô:Ð:øÝð ð ð Ý�e‰}Œ}ÐÐÐðøøøs   ‚ ”0¯0c                 ón   — t          | ¦  «        } |dk    rt          | ¦  «        |z  }|r| d||z
  z  z  } | S )zýPad byte string 'data' with null bytes until its length is a
    multiple of 'size'.

    >>> len(pad(b'abcd', 4))
    4
    >>> len(pad(b'abcde', 2))
    6
    >>> len(pad(b'abcde', 4))
    8
    >>> pad(b'abcdef', 4) == b'abcdef\x00\x00'
    True
    rH   ó    )r   r2   )r9   ÚsizeÚ	remainders      r   Úpadrf   d   sI   € õ �4‰=Œ=€DØˆa‚x€xÝ˜‘I”I Ñ$ˆ	Øð 	/Ø�E˜T IÑ-Ñ.Ñ.ˆDØ€Kr   ÚasciiÚstrictc                 ó\   — t          | t          ¦  «        s|                      ||¦  «        S | S r   )r   r   r	   ©ÚsÚencodingÚerrorss      r   Útostrrn   y   s-   € Ý�a�ÑÔð Ø�xŠx˜ &Ñ)Ô)Ð)àˆr   c                 óv   — t          | t          ¦  «        r|                      ||¦  «        S t          | ¦  «        S r   )r   r   r   r   rj   s      r   r   r   €   s3   € Ý�!•SÑÔð Ø�xŠx˜ &Ñ)Ô)Ð)å�Q‰xŒxˆr   c                 ó"   — t          | g¦  «        S r   )r   )Úns    r   r5   r5   ‡   s   € Ý�!�‰:Œ:Ðr   c                 óN   — t          | t          ¦  «        r| nt          | ¦  «        S r   )r   r6   Úord)rD   s    r   rA   rA   ‹   s!   € Ý˜1�cÑ"Ô"Ð.ˆ1ˆ1­¨A©¬Ð.r   r<   c                 óF   — t          |¦  «                             | ¦  «        S r   )rn   rN   ©ÚiterableÚjoiners     r   r+   r+   �   s   € Ý�‰=Œ=×Ò˜hÑ'Ô'Ð'r   r   c                 óZ   — t          |¦  «                             d„ | D ¦   «         ¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )r   )r'   Úitems     r   r)   zbytesjoin.<locals>.<genexpr>”   s(   è è € ÐCÐC°$¥¨¡¤ÐCÐCÐCÐCÐCÐCr   )r   rN   ru   s     r   r7   r7   “   s+   € Ý�6‰?Œ?×ÒÐCÐC¸(ÐCÑCÔCÑCÔCÐCr   Ú__main__)rF   )rg   rh   )r<   )r   )Ú__doc__Úastr?   Úliteral_evalÚsafeEvalr   r   r,   r*   rE   rS   rW   ra   rf   rn   r   r5   rA   r+   r7   r    ÚdoctestÚsysÚexitÚtestmodÚfailedr$   r   r   ú<module>r…      s†  ðØ <Ð <à 
€
€
€
Ø €€€ð Ô€ð&ð &ð &ð &ð &ˆ#ñ &ô &ð &ð.Sð Sð Sð
ð ð ðð ð ðð ð ð ð&ð ð ðð ð ðð ð ð*ð ð ð ðð ð ð ðð ð ð/ð /ð /ð(ð (ð (ð (ðDð Dð Dð Dð ˆzÒÐØÐÐÐÐÐÐÐà€C„Hˆ_ˆWŒ_ÑÔÔ%Ñ&Ô&Ð&Ð&Ð&ð Ðr   