Ë
    £ehÅ!  ã                   óÀ   — d dl mZ d dlmZ d dlmZ d dlmZ ddlm	Z	 ddlm
Z
 d dlZd	Zd
ZdZdZdZdZ G d„ d«      Z G d„ de«      Z G d„ de	j                  «      Zy)é    )Ússtruct)ÚfloatToFixedToStr)ÚsafeEval)Úpartialé   )ÚDefaultTable)ÚgrUtilsNz/
    >        # big endian
    version: 16.16F
zR
    >
    version: 16.16F
    compression:L    # compression scheme or reserved 
zz
    >
    attNum:     B    # Attribute number of first attribute
    num:        B    # Number of attributes in this run
zz
    >
    attNum:     H    # Attribute number of first attribute
    num:        H    # Number of attributes in this run
ao  
    >
    subboxBitmap:   H    # Which subboxes exist on 4x4 grid
    diagNegMin:     B    # Defines minimum negatively-sloped diagonal (si)
    diagNegMax:     B    # Defines maximum negatively-sloped diagonal (sa)
    diagPosMin:     B    # Defines minimum positively-sloped diagonal (di)
    diagPosMax:     B    # Defines maximum positively-sloped diagonal (da)
a«  
    >
    left:           B    # xi
    right:          B    # xa
    bottom:         B    # yi
    top:            B    # ya
    diagNegMin:     B    # Defines minimum negatively-sloped diagonal (si)
    diagNegMax:     B    # Defines maximum negatively-sloped diagonal (sa)
    diagPosMin:     B    # Defines minimum positively-sloped diagonal (di)
    diagPosMax:     B    # Defines maximum positively-sloped diagonal (da)
c                   ó   — e Zd Zy)Ú_ObjectN©Ú__name__Ú
__module__Ú__qualname__© ó    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/ttLib/tables/G__l_a_t.pyr   r   8   ó   „ Ør   r   c                   ó   — e Zd Zy)Ú_DictNr   r   r   r   r   r   <   r   r   r   c                   óH   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zy)Útable_G__l_a_tzsGraphite Glyph Attributes table

    See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
    Nc                 óR   — t         j                   j                  | |«       d| _        y ©Nr   )r   Ú__init__Úscheme)ÚselfÚtags     r   r   ztable_G__l_a_t.__init__F   s   € Ü×!Ñ!×*Ñ*¨4°Ô5Øˆ�r   c                 ó¦  — t        j                  t        || «       t        t	        | j
                  d¬«      «      | _        | j
                  dk  rt        | j                  t        ¬«      }n•| j
                  dk  rt        | j                  t        ¬«      }nj| j
                  dk\  r[t        j                  |«      \  }| _        t        j                  t        || «       | j                  dz  dk(  | _        | j                   }|d   }i | _        d	}t%        ||dd  «      D ]1  \  }} ||| «      | j"                  |j'                  |«      <   |dz  }Œ3 y )
Né   )ÚprecisionBitsçffffffþ?©Úfmtç333333@ç      @r   ÚGlocr   )r   Úunpack2ÚGlat_format_0Úfloatr   Úversionr   ÚdecompileAttributes12ÚGlat_format_1_entryÚGlat_format_23_entryr	   Ú
decompressr   ÚGlat_format_3ÚcompressionÚhasOctaboxesÚdecompileAttributes3Ú
attributesÚzipÚgetGlyphName)r   ÚdataÚttFontÚdecoderÚglocÚcountÚsÚes           r   Ú	decompileztable_G__l_a_t.decompileJ   s   € Ü�‰œ t¨TÔ2ÜÔ.¨t¯|©|È2ÔNÓOˆŒØ�<‰<˜3ÒÜ˜d×8Ñ8Ô>QÔR‰GØ�\‰\˜SÒ Ü˜d×8Ñ8Ô>RÔS‰GØ�\‰\˜SÒ Ü")×"4Ñ"4°TÓ":ÑˆT�4”;Ü�O‰OœM¨4°Ô6Ø!%×!1Ñ!1°AÑ!5¸!Ñ ;ˆDÔØ×/Ñ/ˆGà�f‰~ˆØˆŒØˆÜ˜˜d 1 2˜hÓ'ò 	‰DˆAˆqÙ:AÀ$ÀqÈÀ)Ó:LˆD�O‰O˜F×/Ñ/°Ó6Ñ7Ø�Q‰J‰Eñ	r   c                 óÈ  — t        «       }t        |«      dkD  rÉt        j                  ||t	        «       «      \  }}t        |j                  |j                  |j                  z   «      }t        |«      d|j                  z  k\  rPt        j                  d|j                  z  |«      }|j                  t        ||«      «       |d|j                  z  d  }t        |«      dkD  rŒÉ|S )Né   é   ú>%dh)r   Úlenr   r'   r   ÚrangeÚattNumÚnumÚstructÚunpack_fromÚupdater4   )r   r6   r#   r3   r<   ÚkeysÚvalss          r   r+   z$table_G__l_a_t.decompileAttributes12^   s´   € Ü“Wˆ
Ü�$‹i˜!ŠmÜ—o‘o c¨4´³Ó;‰GˆAˆtÜ˜Ÿ™ 1§8¡8¨a¯e©eÑ#3Ó4ˆDÜ�4‹y˜A §¡™IÒ%Ü×)Ñ)¨6°A·E±E©>¸DÓA�Ø×!Ñ!¤# d¨D£/Ô2Ø˜A §¡™I˜KÐ(�ô �$‹i˜!‹mð Ðr   c                 óÒ  — | j                   r±t        j                  t        |t	        «       «      \  }}t        |j                  «      j                  d«      }g |_        t        |«      D ]R  }t        |«      dk\  sŒt        j                  t        |t	        «       «      \  }}|j                  j                  |«       ŒT | j                  |t        «      }| j                   r|_        |S )NÚ1é   )r1   r   r'   ÚGlat_format_3_octabox_metricsr   ÚbinÚsubboxBitmapr:   ÚsubboxesrC   rB   ÚGlat_format_3_subbox_entryÚappendr+   r-   Úoctabox)r   r6   ÚoÚnumsubÚbÚsubboxÚattrss          r   r2   z#table_G__l_a_t.decompileAttributes3i   s»   € Ø×ÒÜ—o‘oÔ&CÀTÌ7Ë9ÓU‰GˆAˆtÜ˜Ÿ™Ó(×.Ñ.¨sÓ3ˆFØˆAŒJÜ˜6“]ò .�Ü�t“9 “>Ü#*§?¡?Ü2°D¼'»)ó$‘L�F˜Dð —J‘J×%Ñ% fÕ-ð.ð ×*Ñ*¨4Ô1EÓFˆØ×ÒØˆEŒMØˆr   c                 ó   — t        j                  t        | «      }| j                  dk  rt	        | j
                  t        ¬«      }n…| j                  dk  rt	        | j
                  t        ¬«      }nZ| j                  dk\  rK| j                  dz  | j                  rdndz   | _	        t        j                  t        | «      }| j                  }g }t        t        | j                  «      «      D ]C  }|j                  t        |«      «       | | j                  |j!                  |«         «      z  }ŒE |j                  t        |«      «       |d   j#                  |«       | j                  dk\  r t%        j&                  | j                  |«      }|S )	Nr!   r"   r$   r%   é   r   r   r&   )r   Úpackr(   r*   r   ÚcompileAttributes12r,   r   r1   r0   r/   ÚcompileAttributes3rC   rB   r3   rS   r5   Úsetr	   Úcompress)r   r7   r6   ÚencoderÚglocsÚns         r   Úcompileztable_G__l_a_t.compiley   s:  € Ü�|‰|œM¨4Ó0ˆØ�<‰<˜3ÒÜ˜d×6Ñ6Ô<OÔP‰GØ�\‰\˜SÒ Ü˜d×6Ñ6Ô<OÔP‰GØ�\‰\˜SÒ Ø $§¡¨rÑ 1¸4×;LÒ;L±aÐRSÑTˆDÔÜ—<‘<¤¨tÓ4ˆDØ×-Ñ-ˆGàˆÜ”s˜4Ÿ?™?Ó+Ó,ò 	EˆAØ�L‰Lœ˜T›Ô#Ø‘G˜DŸO™O¨F×,?Ñ,?ÀÓ,BÑCÓDÑD‰Dð	Eð 	�‰”S˜“YÔØˆv‰×Ñ˜5Ô!à�<‰<˜3ÒÜ×#Ñ# D§K¡K°Ó6ˆDØˆr   c           
      óÔ   — d}t        j                  |«      D ]M  }|t        j                  ||d   |d   dœ«      t	        j                  dt        |d   «      z  g|d   ¢­Ž z   z  }ŒO |S )Nr   r   r   )rD   rE   rA   r@   )r	   Úentriesr   r\   rF   rB   )r   rY   r#   r6   r<   s        r   r]   z"table_G__l_a_t.compileAttributes12�   sx   € ØˆÜ—‘ Ó'ò 	ˆAØ”G—L‘L °°1±¸aÀ¹dÑ&CÓDÄvÇ{Á{Øœ#˜a ™d›)Ñ#ðHØ'(¨¡tòHñ ñ ‰Dð	ð ˆr   c                 óZ  — | j                   r…|j                  }t        j                  t        |«      }t        |j                  «      j                  d«      }t        |«      D ],  }|t        j                  t        |j                  |   «      z  }Œ. nd}|| j                  |t        «      z   S )NrL   Ú )r1   rT   r   r\   rN   rO   rP   r:   rC   rR   rQ   r]   r-   )r   rY   rU   r6   rV   rW   s         r   r^   z!table_G__l_a_t.compileAttributes3—   s‘   € Ø×ÒØ—‘ˆAÜ—<‘<Ô =¸qÓAˆDÜ˜Ÿ™Ó(×.Ñ.¨sÓ3ˆFÜ˜6“]ò P�ØœŸ™Ô%?ÀÇÁÈAÁÓOÑO‘ñPð ˆDØ�d×.Ñ.¨uÔ6JÓKÑKÐKr   c           	      óz  ‡— |j                  d| j                  | j                  ¬«       |j                  «        t	        | j
                  j                  «       ˆfd„¬«      D �]Ö  \  }}|j                  d|¬«       |j                  «        t        |d«      �r:|j                  }t        j                  t        «      \  }}}i }	|D ],  }
|
dk(  rŒ	d	j                  t        ||
«      d
z  dz  «      |	|
<   Œ. dj                  |j                  «      |	d<    |j                  di |	¤Ž |j                  «        t        j                  t         «      \  }}}|j"                  D ]Q  }i }	|D ]&  }
d	j                  t        ||
«      d
z  dz  «      |	|
<   Œ(  |j                   di |	¤Ž |j                  «        ŒS |j%                  d«       |j                  «        t	        |j                  «       «      D ])  \  }
}|j                  d|
|¬«       |j                  «        Œ+ |j%                  d«       |j                  «        �ŒÙ y )Nr*   )r*   ÚcompressionSchemec                 ó,   •— ‰j                  | d   «      S r   )Ú
getGlyphID)Úxr7   s    €r   ú<lambda>z&table_G__l_a_t.toXML.<locals>.<lambda>¦   s   ø€ °6×3DÑ3DÀQÀqÁTÓ3J€ r   )ÚkeyÚglyph)ÚnamerT   rP   z{:.3f}%ç      Y@éÿ   z{:0X}ÚbitmapÚ	octaboxesÚ	attribute)ÚindexÚvalue)ru   )rT   )Ú	simpletagr*   r   ÚnewlineÚsortedr3   ÚitemsÚbegintagÚhasattrrT   r   Ú	getformatrN   ÚformatÚgetattrrP   rR   rQ   Úendtag)r   Úwriterr7   rc   ÚarU   ÚformatstringÚnamesÚfixesrJ   Úkr;   Úvs     `          r   ÚtoXMLztable_G__l_a_t.toXML¢   s  ø€ Ø×Ñ˜¨D¯L©LÈDÏKÉKÐÔXØ�‰ÔÜØ�O‰O×!Ñ!Ó#Ó)Jô
ó !	‰DˆAˆqð �O‰O˜G¨!ˆOÔ,Ø�N‰NÔÜ�q˜)Õ$Ø—I‘I�Ü-4×->Ñ->Ü1ó.Ñ*�˜e Uð �Øò L�AØ˜NÒ*Ø Ø'×.Ñ.¬w°q¸!«}¸uÑ/DÀsÑ/JÓK�D˜’GðLð ")§¡°·±Ó!?��X‘Ø�—‘Ñ4¨tÒ4Ø—‘Ô Ü-4×->Ñ->Ü.ó.Ñ*�˜e Uð Ÿ™ò %�AØ�DØ"ò P˜Ø"+×"2Ñ"2´7¸1¸a³=À5Ñ3HÈ3Ñ3NÓ"O˜˜QšðPà$�F×$Ñ$Ñ7°$Ò7Ø—N‘NÕ$ð%ð —‘˜kÔ*Ø—‘Ô Ü˜qŸw™w›yÓ)ò !‘��1Ø× Ñ  °A¸QÐ Ô?Ø—‘Õ ð!ð �M‰M˜'Ô"Ø�N‰NÖñC!	r   c                 ó¨  — |dk(  r8t        t        |d   «      «      | _        t        t        |d   «      «      | _        |dk7  ry t        | d«      si | _        |d   }t        «       }|D �]X  }t        |t        «      sŒ|\  }}}	|dk(  r4t        t        |d   «      «      }
t        t        |d   «      «      }|||
<   ŒT|d	k(  sŒZd
| _
        t        «       }t        |d   d«      |_        g |_        |d= |j                  «       D ]0  \  }
}t        ||
t        t        |d d «      dz  dz  dz   «      «       Œ2 |	D ]�  }t        |t        «      sŒ|\  }}}	t        «       }|j                  «       D ]0  \  }
}t        ||
t        t        |d d «      dz  dz  dz   «      «       Œ2 |j                  j!                  |«       Œƒ ||_        �Œ[ || j                  |<   y )Nr*   rj   rp   r3   rq   rv   rw   rx   ru   Trt   r   éÿÿÿÿg     ào@rr   g      à?)r)   r   r*   Úintr   r~   r3   r   Ú
isinstanceÚtupler1   r   rP   rQ   r|   ÚsetattrrS   rT   )r   rq   rY   Úcontentr7   Úgnamer3   Úelementr   Ú
subcontentrˆ   r‰   rU   Úsos                 r   ÚfromXMLztable_G__l_a_t.fromXMLÈ   sÝ  € Ø�9ÒÜ ¤¨%°	Ñ*:Ó!;Ó<ˆDŒLÜœh uÐ-@Ñ'AÓBÓCˆDŒKØ�7Š?ØÜ�t˜\Ô*Ø ˆDŒOØ�f‘ˆÜ“Wˆ
Øó 	'ˆGÜ˜g¤uÔ-ØØ%,Ñ"ˆC�˜
Ø�kÒ!Üœ  w¡Ó0Ó1�Üœ  w¡Ó0Ó1�Ø !�
˜1’Ø˜Ó#Ø$(�Ô!Ü“I�Ü!$ U¨8¡_°bÓ!9�”Ø�”
Ø˜(�OØ!ŸK™K›Mò L‘D�A�qÜ˜A˜q¤#¤e¨A¨c¨r¨F£m°eÑ&;¸eÑ&CÀcÑ&IÓ"JÕKðLà)ò *�GÜ% g¬uÔ5Ø Ø/6Ñ,�S˜% Ü ›�BØ %§¡£ò Q™˜˜1Ü  A¤s¬5°°3°B°«=¸5Ñ+@À5Ñ+HÈ3Ñ+NÓ'OÕPðQà—J‘J×%Ñ% bÕ)ð*ð &'�
Ö"ð1	'ð2 ",ˆ�‰˜Òr   )N)r   r   r   Ú__doc__r   r=   r+   r2   rd   r]   r^   rŠ   r–   r   r   r   r   r   @   s6   „ ñó
òò(	òò ò,ò	Lò$óL#,r   r   )ÚfontTools.miscr   ÚfontTools.misc.fixedToolsr   ÚfontTools.misc.textToolsr   Ú	functoolsr   rh   r   r	   rF   r(   r/   r,   r-   rN   rR   r   Údictr   r   r   r   r   ú<module>r�      st   ðÝ "Ý 7Ý -õ Ý Ý Û ð€ð
€ðÐ ð
Ð ð!Ð ð
Ð ÷	ñ 	ô	ˆDô 	ôk,�\×.Ñ.õ k,r   