Ë
    n]jÉ	  ã                   ó|   — d Z ddlZddlZddlmZ  ej
                  e«      ZdZd„ Z	 G d„ dej                  «      Z
y)	ag  TSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI0 is the index table containing the lengths and offsets for the glyph
programs and 'extra' programs ('fpgm', 'prep', and 'cvt') that are contained
in the TSI1 table.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
é    Né   )ÚDefaultTablez>HHLc                 ó0   — t        | «      t        |«      |fS ©N)Úint)ÚglyphIDÚ
textLengthÚ
textOffsets      úV/var/www/zogu/zoguvenv/lib/python3.12/site-packages/fontTools/ttLib/tables/T_S_I__0.pyÚfixlongsr      s   € Üˆw‹<œ˜Z›¨*Ð4Ð4ó    c                   ó*   — e Zd ZdgZd„ Zd„ Zd„ Zd„ Zy)Útable_T_S_I__0ÚTSI1c           	      óð  — |d   j                   }g }t        j                  t        «      }t	        |«      |z  }||dz   k7  r3||z
  dz
  }t
        j                  dt        |«      › d|dz
  › d|› d�«       t        |«      D ]B  }t        t        j                  t        |d | «      Ž \  }	}
}|j                  |	|
|f«       ||d  }ŒD t	        |«      dk(  sJ ‚|d   d	k(  sJ d
«       ‚|d d | _        |dd  | _        y )NÚmaxpé   zINumber of glyphPrograms differs from the number of glyphs in the font by z (z programs vs. z	 glyphs).r   éûÿÿÿ)éþÿ  r   ì   4øW zbad magic numberéüÿÿÿ)Ú	numGlyphsÚstructÚcalcsizeÚ
tsi0FormatÚlenÚlogÚwarningÚabsÚranger   ÚunpackÚappendÚindicesÚextra_indices)ÚselfÚdataÚttFontr   r#   ÚsizeÚ
numEntriesÚdiffÚ_r   r	   r
   s               r   Ú	decompileztable_T_S_I__0.decompile   s!  € Ø˜6‘N×,Ñ,ˆ	ØˆÜ�‰œzÓ*ˆÜ˜“Y $Ñ&ˆ
Ø˜ Q™Ò&Ø 	Ñ)¨AÑ-ˆDÜ�K‰KðÜ˜$“i�[  :°¡>Ð"2°.ÀÀÈ9ðVôô �zÓ"ò 	ˆAÜ.6Ü—‘œz¨4°°¨;Ó7ð/Ñ+ˆG�Z ð �N‰N˜G Z°Ð<Ô=Ø˜˜�;‰Dð	ô �4‹y˜AŠ~Ðˆ~Ø�r‰{Ð5Ò5ÐIÐ7IÓIÐ5Ø˜s �|ˆŒØ$ R S˜\ˆÕr   c                 ó2  — t        | d«      syd}| j                  D ]%  \  }}}|t        j                  t        |||«      z   }Œ' |t        j                  t        ddd«      z   }| j
                  D ]%  \  }}}|t        j                  t        |||«      z   }Œ' |S )Nr#   r   r   r   r   )Úhasattrr#   r   Úpackr   r$   )r%   r'   r&   Úindexr	   r
   s         r   Úcompileztable_T_S_I__0.compile2   s    € Ü�t˜YÔ'ð ØˆØ-1¯\©\ò 	QÑ)ˆE�:˜zØœ&Ÿ+™+¤j°%¸ÀZÓPÑP‰Dð	Qà”f—k‘k¤*¨f°a¸ÓDÑDˆØ-1×-?Ñ-?ò 	QÑ)ˆE�:˜zØœ&Ÿ+™+¤j°%¸ÀZÓPÑP‰Dð	Qàˆr   c                 ó    — || _         || _        y r   )r#   r$   )r%   r#   r$   s      r   Úsetztable_T_S_I__0.set?   s   € àˆŒØ*ˆÕr   c                 óF   — |j                  d«       |j                  «        y )Nz-This table will be calculated by the compiler)ÚcommentÚnewline)r%   Úwriterr'   s      r   ÚtoXMLztable_T_S_I__0.toXMLD   s   € Ø�‰ÐFÔGØ�‰Õr   N)Ú__name__Ú
__module__Ú__qualname__Údependenciesr,   r1   r3   r8   © r   r   r   r      s   „ Ø�8€Lò*ò,ò+ó
r   r   )Ú__doc__Úloggingr   Ú r   Ú	getLoggerr9   r   r   r   r   r=   r   r   ú<module>rB      sC   ðñó Û å à€g×Ñ˜Ó!€à€
ò5ô-�\×.Ñ.õ -r   