+
    f7ik  c                   s    ^ RI Ht ^ RIHt ^ RIHt ^RIHt ^RIHt ^ RI	t	Rt
 ! R R	]P                  4      t ! R
 R]4      tR# )    )sstruct)floatToFixedToStr)safeEval)DefaultTable)grUtilsNz
    >
    version:    16.16F
c                   sF   a  ] tR t^t o RtR	R ltR tR tR tR t	Rt
V tR# )
table_F__e_a_ta~  Feature table

The ``Feat`` table is used exclusively by the Graphite shaping engine
to store features and possible settings specified in GDL. Graphite features
determine what rules are applied to transform a glyph stream.

Not to be confused with ``feat``, or the OpenType Layout tables
``GSUB``/``GPOS``.

See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
Nc                sR    \         P                   P                  W4       / V n        R # N)r   __init__features)selftags   &&F/usr/lib64/python3.14/site-packages/fontTools/ttLib/tables/F__e_a_t.pyr   Ztable_F__e_a_t.__init__   s    !!**45    c           	     sr   \         P                  ! \        W4      w  r1\        \	        V P
                  ^R7      4      V n        \        P                  ! RVR,          4      w  pVR,          p. p^ p\        V4       F  pV P
                  R8  d\   \        P                  ! RV^V,          ^V^,           ,           4      w  rr:r\        V
^,
          ^V,          ,
          ^,          4      p
MZ\        P                  ! RV^V,          ^V^,           ,           4      w  rrp\        V
^,
          ^V,          ,
          ^,          4      p
VP                  WWV34       \        WjV	,           4      pK  	  V^V,          R p. p\        V4       Ff  p\        V4      ^V^,           ,          8  g   K#  \        P                  ! R	V^V,          ^V^,           ,           4      w  rVP                  W34       Kh  	  \        V4       F  w  rVw  rrp\        4       pVVn        VVn        VV P"                  \$        P&                  ! V4      &   / Vn        RVn        VVn        \        WV	,           4       FF  pV\        V4      8  d   K  W,          w  ppVVP(                  V&   VP*                  e   K?  VVn        KH  	  K  	  R# )
i   )ZprecisionBitsz>H:Ni   N:i   NN       @>LHHLHH>HHLHHN>HH)r   Zunpack2Feat_hdr_formatfloatr   versionstructZunpackZrangeintZappendZmaxlenZ	enumerateFeatureflagslabelr	   r   Znum2tagsettingsdefaultindex)r
   ZdatattFontZ_ZnumFeatsZallfeatsZ
maxsettingZifidZnumsoffsetr   ZlidZallsettingsZvalffobjZvidZvlids   &&&                r   	decompileZtable_F__e_a_t.decompile   sB   OOOT@	.t||2NOmmD$r(3Bx
xA||s"5;]]tBFR1q5\:62Au frkBM9Q>?28--d26B!a%L93/F3 frkBM9Q>?OOSs;<Z$7J ! BMO$z"A4yAQK'#]]5$q1uqAE{2KL
""C:. # h'DA./+Ss9DDJDJ26DMM'//#./DMDLDJ6D=1K(()nd%)c"<<'#&DL 2 (r   c                s  a
 R pR p^ p\        V P                  P                  4       R R7       EF  w  po
\        P                  ! V4      pV P
                  R8  d   V\        P                  ! R\        P                  ! V4      \        S
P                  4      ^ V^,          ^,           ^\        V P                  4      ,          ,           S
P                  S
P                  4      ,          pMVR8  d   RV n        V P                  V4      u # V\        P                  ! R\        P                  ! V4      \        S
P                  4      V^,          ^,           ^\        V P                  4      ,          ,           S
P                  S
P                  4      ,          p\        S
P                  P                  4       V
3R lR7       F#  w  rxV\        P                  ! RWx4      ,          pK%  	  V\        S
P                  4      ,          pEK  	  \        P                  ! \        V 4      p	V	\        P                  ! R	\        V P                  4      ^ ^ 4      ,           V,           V,           # )
r   c                 (    V ^,          P                   # i   r   x   &r   <lambda>(table_F__e_a_t.compile.<locals>.<lambda>N       !

r   Zkeyr   r   i  r   c                 sN   < V ^ ,          SP                   8X  d   RV ^,          3# T # )r    i)r   )r(   vs   &r   r*   r+   g   s%    !		@Q2qt*2XWX2Xr   r   z>HHL)sortedr	   itemsr   Ztag2numr   r   Zpackr   r   r   r   compiler   r   )r
   r   ZfdatZvdatr    r!   ZfnumslZhdrr.   s   &&        @r   r1   Ztable_F__e_a_t.compileJ   s   4==..06JKKDAq??1%D||s"OOA&

OQJOb3t}}+=&==GGGG  "||F++OOA&

OQJOb3t}}+=&==GGGG  

  "(X E100 c!**o%F9 L: ll?D1V[[T]]);QBBTIDPPr   c           	     sN   VP                  R V P                  R7       VP                  4        \        V P                  P                  4       R R7       F  w  r4TP                  RTVP                  VP                  VP                  '       d   VP                  M^ R7       VP                  4        \        VP                  P                  4       4       F(  w  rVVP                  RWVR7       VP                  4        K*  	  VP                  R4       VP                  4        K  	  R# )	r   )r   c                 r$   r%   r&   r'   r)   r   r*   Z&table_F__e_a_t.toXML.<locals>.<lambda>q   r,   r   r-   feature)r   r   r   r   setting)valuer   N)Z	simpletagr   Znewliner/   r	   r0   Zbegintagr   r   r   r   Zendtag)r
   Zwriterr   r!   r.   r2   r3   s   &&&    r   toXMLZtable_F__e_a_t.toXMLn   s    DLL94==..06JKDAOOgggg&'iiiQ   NNqzz//12  ! =  3 MM)$NN Lr   c           	     s   VR 8X  d#   \        \        VR ,          4      4      V n        R	# VR8X  Ed   VR,          p\        4       p\	        \        VR,          4      4      Vn        \	        \        VR,          4      4      Vn        \	        \        VP                  RR4      4      4      Vn        \        V P                  4      Vn        W`P                  V&   / Vn        V Fj  p\        V\        4      '       g   K  Vw  rp
VR8X  g   K)  \	        \        V	R,          4      4      VP                  \	        \        V	R,          4      4      &   Kl  	  R	# R	# )
r   r4   r   r   r   r   Z0r5   r6   N)r   r   r   r   r   r   r   Zgetr   r   r	   r   r   Z
isinstanceZtuple)r
   ZnameZattrsZcontentr   r   r"   Zelementr   ZaZcs   &&&&&      r   fromXMLZtable_F__e_a_t.fromXML   s    9 %	*:!;<DLY,C9DXeGn56DJXeGn56DJx		)S(ABCDLT]]+DJ!%MM#DM"!'511#	)#?B8AgJCW?XDMM#hqz&:";< # r   )r	   r   r   )__name__
__module____qualname____firstlineno__Z__doc__r   r#   r1   r7   r8   __static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      s-     
)'V"QH$Y Yr   r   c                   s    ] tR t^tRtR# )r    N)r9   r:   r;   r<   r=   r>   r   r   r   r      s    r   r   )ZfontTools.miscr   ZfontTools.misc.fixedToolsr   ZfontTools.misc.textToolsr   Z r   r   r   r   r   Zobjectr   r>   r   r   <module>r?      sA    " 7 -   CY\.. CYL	f 	r   