§
    {ØjÚ  ã                  ó  — d Z ddlm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"d„Zd!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.é    )ÚannotationsNc                  ó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    ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/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                óH   — |                       |¦  «        }|t          u r|n| S r   )Ú__eq__ÚNotImplemented)r   ÚotherÚresults      r   Ú__ne__z
Tag.__ne__   s)   € Ø—’˜UÑ#Ô#ˆØ¥>Ð1Ð1ˆvˆv¸6°zÐAr   c                ó^   — t                                | |                      |¦  «        ¦  «        S r   )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      s{   € € € € € Øðð ñ „\ðð
:ð :ð :ðBð Bð Bð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)r;   ÚhÚrÚcr<   s        r   ÚhexStrrG   4   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>   é   Ú1r1   é   )r   éÿÿÿÿz$number doesn't fit in number of bitsú )r5   r6   ÚreverseÚjoin)ÚlÚbitsÚitemsÚbinaryr<   s        r   Ú
num2binaryrU   >   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   rJ   r1   )r-   r3   )ÚbinrQ   Údigits      r   Ú
binary2numrY   Q   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>a   s   € ¨A¯GªG©I¬I°q¨>€ r   )Úkey)ÚsortedÚ	TypeError)Úalists    r   ÚcaselessSortrc   [   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
    rJ   ó    )r!   r4   )r;   ÚsizeÚ	remainders      r   Úpadrh   f   sI   € õ �4‰=Œ=€DØˆa‚x€xÝ˜‘I”I Ñ$ˆ	Øð 	/Ø�E˜T IÑ-Ñ.Ñ.ˆDØ€Kr   ÚasciiÚstrictÚsústr | bytesÚencodingr   ÚerrorsÚreturnc                ó\   — t          | t          ¦  «        s|                      ||¦  «        S | S r   )r   r   r
   ©rk   rm   rn   s      r   Útostrrr   {   s-   € Ý�a�ÑÔð Ø�xŠx˜ &Ñ)Ô)Ð)àˆr   r	   c                óv   — t          | t          ¦  «        r|                      ||¦  «        S t          | ¦  «        S r   )r   r   r    r	   rq   s      r   r!   r!   ‚   s3   € Ý�!•SÑÔð Ø�xŠx˜ &Ñ)Ô)Ð)å�Q‰xŒxˆr   c                ó"   — t          | g¦  «        S r   )r	   )Úns    r   r7   r7   ‰   s   € Ý�!�‰:Œ:Ðr   c                óN   — t          | t          ¦  «        r| nt          | ¦  «        S r   )r   r8   Úord)rF   s    r   rC   rC   �   s!   € Ý˜1�cÑ"Ô"Ð.ˆ1ˆ1­¨A©¬Ð.r   r>   c                óF   — t          |¦  «                             | ¦  «        S r   )rr   rP   ©Ú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!   rP   ry   s     r   r9   r9   •   s+   € Ý�6‰?Œ?×ÒÐCÐC¸(ÐCÑCÔCÑCÔCÐCr   Ú__main__)rH   )ri   rj   )rk   rl   rm   r   rn   r   ro   r   )rk   rl   rm   r   rn   r   ro   r	   )r>   )r   )Ú__doc__Ú
__future__r   ÚastrA   Úliteral_evalÚsafeEvalr   r   r.   r,   rG   rU   rY   rc   rh   rr   r!   r7   rC   r-   r9   r"   ÚdoctestÚsysÚexitÚtestmodÚfailedr&   r   r   ú<module>rŠ      s¢  ðØ <Ð <à "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€ð Ô€ð&ð &ð &ð &ð &ˆ#ñ &ô &ð &ð0Sð Sð Sð
ð ð ðð ð ðð ð ð ð&ð ð ðð ð ðð ð ð*ð ð ð ð ðð ð ð ð ðð ð ð/ð /ð /ð(ð (ð (ð (ðDð Dð Dð Dð ˆzÒÐØÐÐÐÐÐÐÐà€C„Hˆ_ˆWŒ_ÑÔÔ%Ñ&Ô&Ð&Ð&Ð&ð Ðr   