§
    ¢”jDD  ã                   óÒ  — d Z ddlmZmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZmZmZ  G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de"¦  «        Z# G d„ de"¦  «        Z$d„ Z% G d„ de"¦  «        Z&ddœd „Z' G d!„ d"e¦  «        Z( G d#„ d$¦  «        Z)d%S )&zGlyphSets returned by a TTFont.é    )ÚABCÚabstractmethod)ÚMapping)Úcontextmanager)ÚcopyÚdeepcopy)ÚSimpleNamespace)ÚVector)ÚotRoundÚfixedToFloat)ÚdeprecateFunction)Ú	TransformÚDecomposedTransform)ÚTransformPenÚTransformPointPen)ÚDecomposingRecordingPenÚlerpRecordingsÚreplayRecordingc                   óŽ   — e Zd ZdZddœd„Zedefd„¦   «         Zed„ ¦   «         Zd„ Z	d	„ Z
d
„ Z ede¬¦  «        d„ ¦   «         ZdS )Ú_TTGlyphSetzlGeneric dict-like GlyphSet class that pulls metrics from hmtx and
    glyph shape from TrueType or CFF.
    T©ÚrecalcBoundsc                ó6  — || _         || _        d| j        v rd„ | j        d         j        D ¦   «         ni | _        |�|ni | _        i | _        |�|ni | _        d| _        g | _        g | _	        || _
        |d         j        | _        t          |                     d¦  «        dd ¦  «        | _        d | _        |r_ddlm} t          |                     d¦  «        d	d ¦  «        | _        | j        �+ || j        j        |d         j        |¦  «        | _        d S d S d S )
NÚfvarc                 ó   — i | ]
}|j         d “ŒS )r   ©ÚaxisTag)Ú.0Úaxiss     úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/ttLib/ttGlyphSet.pyú
<dictcomp>z(_TTGlyphSet.__init__.<locals>.<dictcomp>   s   € Ð@Ð@Ð@ ˆTŒ\˜1Ð@Ð@Ð@ó    r   ÚhmtxÚvmtxÚmetrics©ÚVarStoreInstancerÚHVARÚtable)r   ÚfontÚaxesÚdefaultLocationNormalizedÚlocationÚrawLocationÚoriginalLocationÚdepthÚlocationStackÚrawLocationStackÚglyphsMappingr%   ÚhMetricsÚgetattrÚgetÚvMetricsÚ	hvarTableÚfontTools.varLib.varStorer'   ÚVarStoreÚhvarInstancer)Úselfr*   r-   r3   r   r'   s         r    Ú__init__z_TTGlyphSet.__init__   sK  € Ø(ˆÔØˆŒ	ð ˜œÐ"Ð"ð AÐ@¨¬°6Ô):Ô)?Ð@Ñ@Ô@Ð@àð 	Ô&ð
 %-Ð$8˜˜¸bˆŒØˆÔØ,4Ð,@  ÀbˆÔØˆŒ
ØˆÔØ "ˆÔØ*ˆÔØ˜VœÔ,ˆŒÝ §¢¨Ñ 0Ô 0°)¸TÑBÔBˆŒØˆŒØð 	ØCÐCÐCÐCÐCÐCå$ T§X¢X¨fÑ%5Ô%5°wÀÑEÔEˆDŒNØŒ~Ð)Ø%6Ð%6Ø”NÔ+¨T°&¬\Ô->Àñ&ô &�Ô"Ð"Ð"ð	ð 	ð *Ð)r"   Úresetc              #   óº  K  — | j                              | j        ¦  «         | j                             | j        ¦  «         |r=| j                             ¦   «         | _        | j                             ¦   «         | _        n%| j                             ¦   «         | _        i | _        | j                             |¦  «         | j                             |¦  «         	 d V — | j          	                    ¦   «         | _        | j         	                    ¦   «         | _        d S # | j          	                    ¦   «         | _        | j         	                    ¦   «         | _        w xY w©N)
r1   Úappendr-   r2   r.   r/   r   r,   ÚupdateÚpop)r<   r-   r>   s      r    ÚpushLocationz_TTGlyphSet.pushLocation5   s8  è è € àÔ×!Ò! $¤-Ñ0Ô0Ð0ØÔ×$Ò$ TÔ%5Ñ6Ô6Ð6Øð 	"Ø Ô1×6Ò6Ñ8Ô8ˆDŒMØ#Ô=×BÒBÑDÔDˆDÔÐà œM×.Ò.Ñ0Ô0ˆDŒMØ!ˆDÔØŒ×Ò˜XÑ&Ô&Ð&ØÔ×Ò Ñ)Ô)Ð)ð	;ØˆJˆJˆJà Ô.×2Ò2Ñ4Ô4ˆDŒMØ#Ô4×8Ò8Ñ:Ô:ˆDÔÐÐøð !Ô.×2Ò2Ñ4Ô4ˆDŒMØ#Ô4×8Ò8Ñ:Ô:ˆDÔÐ:Ð:Ð:Ð:s   ÃD Ä>Ec              #   óŒ   K  — 	 | j         }| xj         dz  c_         |V — | xj         dz  c_         d S # | xj         dz  c_         w xY w)Né   )r0   )r<   r0   s     r    Ú	pushDepthz_TTGlyphSet.pushDepthH   sT   è è € ð	Ø”JˆEØˆJŒJ˜!‰OˆJŒJØˆKˆKˆKàˆJŒJ˜!‰OˆJŒJˆJˆJøˆDˆJŒJ˜!‰OˆJŒJˆJˆJˆJˆJs	   „1 ±Ac                 ó   — || j         v S r@   ©r3   ©r<   Ú	glyphNames     r    Ú__contains__z_TTGlyphSet.__contains__Q   s   € Ø˜DÔ.Ð.Ð.r"   c                 óN   — t          | j                             ¦   «         ¦  «        S r@   )Úiterr3   Úkeys©r<   s    r    Ú__iter__z_TTGlyphSet.__iter__T   s   € Ý�DÔ&×+Ò+Ñ-Ô-Ñ.Ô.Ð.r"   c                 ó*   — t          | j        ¦  «        S r@   )Úlenr3   rP   s    r    Ú__len__z_TTGlyphSet.__len__W   s   € Ý�4Ô%Ñ&Ô&Ð&r"   z#use 'glyphName in glyphSet' instead)Úcategoryc                 ó   — || j         v S r@   rI   rJ   s     r    Úhas_keyz_TTGlyphSet.has_keyZ   s   € ð ˜DÔ.Ð.Ð.r"   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r=   r   ÚboolrD   rG   rL   rQ   rT   r   ÚDeprecationWarningrW   © r"   r    r   r      sã   € € € € € ðð ð GKð ð ð ð ð ð8 ð;¨Dð ;ð ;ð ;ñ „^ð;ð$ ðð ñ „^ðð/ð /ð /ð/ð /ð /ð'ð 'ð 'ð ÐØ-Ð8Jðñ ô ð/ð /ñô ð/ð /ð /r"   r   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú_TTGlyphSetGlyfTc                 óª   •— |d         | _         t          ¦   «                              ||| j         |¬¦  «         |                     d¦  «        | _        d S )NÚglyfr   Úgvar)Ú	glyfTableÚsuperr=   r6   Ú	gvarTable)r<   r*   r-   r   Ú	__class__s       €r    r=   z_TTGlyphSetGlyf.__init__b   sH   ø€ Ø˜fœˆŒÝ‰Œ×Ò˜˜x¨¬ÀlÐÑSÔSÐSØŸš &Ñ)Ô)ˆŒˆˆr"   c                 ó0   — t          | || j        ¬¦  «        S )Nr   )Ú_TTGlyphGlyfr   rJ   s     r    Ú__getitem__z_TTGlyphSetGlyf.__getitem__g   s   € Ý˜D )¸$Ô:KÐLÑLÔLÐLr"   )T©rX   rY   rZ   r=   rj   Ú__classcell__©rg   s   @r    r`   r`   a   sS   ø€ € € € € ð*ð *ð *ð *ð *ð *ð
Mð Mð Mð Mð Mð Mð Mr"   r`   c                   óF   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zedefd„¦   «         Zˆ xZ	S )Ú_TTGlyphSetCFFc                 ó
  •— d|v rdnd}t          ||         j                             ¦   «         ¦  «        d         j        | _        t          ¦   «                              ||| j        ¦  «         |                      |¦  «         d S )NÚCFF2zCFF r   )ÚlistÚcffÚvaluesÚCharStringsÚcharStringsre   r=   ÚsetLocation)r<   r*   r-   ÚtableTagrg   s       €r    r=   z_TTGlyphSetCFF.__init__l   sx   ø€ Ø# t˜^˜^�6�6°ˆÝ  X¤Ô 2× 9Ò 9Ñ ;Ô ;Ñ<Ô<¸QÔ?ÔKˆÔÝ‰Œ×Ò˜˜x¨Ô)9Ñ:Ô:Ð:Ø×Ò˜Ñ"Ô"Ð"Ð"Ð"r"   c                 ó"   — t          | |¦  «        S r@   )Ú_TTGlyphCFFrJ   s     r    rj   z_TTGlyphSetCFF.__getitem__r   s   € Ý˜4 Ñ+Ô+Ð+r"   c                 óÆ   — d | _         |rPddlm} t          | j        dd ¦  «        }|�0 ||j        | j        d         j        |¦  «        }|j        | _         d S d S d | _         d S )Nr   r&   ÚvarStorer   )	Úblenderr9   r'   r5   rv   Ú
otVarStorer*   r+   ÚinterpolateFromDeltas)r<   r-   r'   r|   Ú	instancers        r    rw   z_TTGlyphSetCFF.setLocationu   s‹   € ØˆŒØð 	 ð DÐCÐCÐCÐCÐCå˜tÔ/°¸TÑBÔBˆHØÐ#Ø-Ð-ØÔ'¨¬°6Ô):Ô)?Àñô �	ð  )Ô>�”��ð	 $Ð#ð  ˆDŒLˆLˆLr"   r>   c              #   ó  K  — |                       |¦  «         t                               | ||¦  «        5 }	 |V — |                       | j        ¦  «         n# |                       | j        ¦  «         w xY w	 d d d ¦  «         d S # 1 swxY w Y   d S r@   )rw   r   rD   r-   )r<   r-   r>   Úvalues       r    rD   z_TTGlyphSetCFF.pushLocation…   sÙ   è è € à×Ò˜Ñ"Ô"Ð"Ý×%Ò% d¨H°eÑ<Ô<ð 	0Àð0Ø���à× Ò  ¤Ñ/Ô/Ð/Ð/ø�× Ò  ¤Ñ/Ô/Ð/Ð/øøøÐ/ð		0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s'   ´B¶AºBÁA1Á1BÂBÂ	B)
rX   rY   rZ   r=   rj   rw   r   r\   rD   rl   rm   s   @r    ro   ro   k   s}   ø€ € € € € ð#ð #ð #ð #ð #ð,ð ,ð ,ð ð  ð  ð  ð0¨Dð 0ð 0ð 0ñ „^ð0ð 0ð 0ð 0ð 0r"   ro   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú_TTGlyphSetVARCc                 ó€   •— || _         t          ¦   «                              |||¦  «         |d         j        | _        d S )NÚVARC)ÚglyphSetre   r=   r)   Ú	varcTable)r<   r*   r-   r‡   rg   s       €r    r=   z_TTGlyphSetVARC.__init__�   s8   ø€ Ø ˆŒÝ‰Œ×Ò˜˜x¨Ñ2Ô2Ð2Ø˜fœÔ+ˆŒˆˆr"   c                 óf   — | j         }||j        j        vr| j        |         S t	          | |¦  «        S r@   )rˆ   ÚCoverageÚglyphsr‡   Ú_TTGlyphVARC)r<   rK   Úvarcs      r    rj   z_TTGlyphSetVARC.__getitem__•   s6   € ØŒ~ˆØ˜DœMÔ0Ð0Ð0Ø”= Ô+Ð+Ý˜D )Ñ,Ô,Ð,r"   rk   rm   s   @r    r„   r„   �   sG   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð
-ð -ð -ð -ð -ð -ð -r"   r„   c                   ó:   — e Zd ZdZddœd„Zed„ ¦   «         Zd„ ZdS )Ú_TTGlyphaS  Glyph object that supports the Pen protocol, meaning that it has
    .draw() and .drawPoints() methods that take a pen object as their only
    argument. Additionally there are 'width' and 'lsb' attributes, read from
    the 'hmtx' table.

    If the font contains a 'vmtx' table, there will also be 'height' and 'tsb'
    attributes.
    Tr   c                óš  — || _         || _        || _        |j        |         \  | _        | _        |j        �|j        |         \  | _        | _        nd\  | _        | _        |j	        ra|j
        �\|j
        j        €|j                             |¦  «        n|j
        j        j        |         }| xj        |j        |         z  c_        d S d S d S )N©NN)r‡   Únamer   r4   ÚwidthÚlsbr7   ÚheightÚtsbr-   r8   ÚAdvWidthMapr*   Ú
getGlyphIDÚmappingr;   )r<   r‡   rK   r   Úvaridxs        r    r=   z_TTGlyph.__init__¦   sÚ   € Ø ˆŒØˆŒ	Ø(ˆÔØ'Ô0°Ô;ÑˆŒ
�D”HØÔÐ(Ø$,Ô$5°iÔ$@Ñ!ˆDŒK˜œ˜à$.Ñ!ˆDŒK˜œØÔð 	9 Ô!3Ð!?ð Ô%Ô1Ð9ð ”×(Ò(¨Ñ3Ô3Ð3àÔ'Ô3Ô;¸IÔFð ð
 ˆJŒJ˜(Ô0°Ô8Ñ8ˆJŒJˆJˆJð	9ð 	9Ð!?Ð!?r"   c                 ó   — t           ‚)údDraw the glyph onto ``pen``. See fontTools.pens.basePen for details
        how that works.
        )ÚNotImplementedError©r<   Úpens     r    Údrawz_TTGlyph.draw¸   s
   € õ
 "Ð!r"   c                 óN   — ddl m} |                       ||¦  «        ¦  «         dS )úeDraw the glyph onto ``pen``. See fontTools.pens.pointPen for details
        how that works.
        r   )ÚSegmentToPointPenN)ÚfontTools.pens.pointPenr£   r    )r<   rŸ   r£   s      r    Ú
drawPointsz_TTGlyph.drawPoints¿   s:   € ð 	>Ð=Ð=Ð=Ð=Ð=à�	Š	Ð#Ð# CÑ(Ô(Ñ)Ô)Ð)Ð)Ð)r"   N)rX   rY   rZ   r[   r=   r   r    r¥   r^   r"   r    r�   r�   œ   sg   € € € € € ðð ð =Að 9ð 9ð 9ð 9ð 9ð$ ð"ð "ñ „^ð"ð*ð *ð *ð *ð *r"   r�   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ri   c                 óâ   — |                       ¦   «         \  }}| j                             ¦   «         5 }|rd}|                     || j        j        |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )rœ   r   N)Ú_getGlyphAndOffsetr‡   rG   r    rd   ©r<   rŸ   ÚglyphÚoffsetr0   s        r    r    z_TTGlyphGlyf.drawÉ   s¶   € ð ×/Ò/Ñ1Ô1‰ˆˆvàŒ]×$Ò$Ñ&Ô&ð 	=¨%Øð Ø�à�JŠJ�s˜DœMÔ3°VÑ<Ô<Ð<ð		=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ó   ±&A$Á$A(Á+A(c                 óâ   — |                       ¦   «         \  }}| j                             ¦   «         5 }|rd}|                     || j        j        |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )r¢   r   N)r¨   r‡   rG   r¥   rd   r©   s        r    r¥   z_TTGlyphGlyf.drawPointsÕ   sË   € ð ×/Ò/Ñ1Ô1‰ˆˆvàŒ]×$Ò$Ñ&Ô&ð 	C¨%Øð Ø�à×Ò˜S $¤-Ô"9¸6ÑBÔBÐBð		Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr¬   c                 óÔ   — | j         j        r!| j         j        �|                      ¦   «         }n| j         j        | j                 }t          |d¦  «        r| j        |j        z
  nd}||fS )NÚxMinr   )	r‡   r-   rf   Ú_getGlyphInstancerd   r’   Úhasattrr”   r¯   )r<   rª   r«   s      r    r¨   z_TTGlyphGlyf._getGlyphAndOffsetá   si   € ØŒ=Ô!ð 	7 d¤mÔ&=Ð&IØ×*Ò*Ñ,Ô,ˆEˆEà”MÔ+¨D¬IÔ6ˆEå*1°%¸Ñ*@Ô*@ÐG�”˜EœJÑ&Ð&ÀaˆØ�fˆ}Ðr"   c           	      óâ  — ddl m} ddlm} ddlm} | j        }|j        }|j        j	        | j
                 }|j        }|j        }|                     | j
        ||¦  «        \  }	}
d\  }}|D ]¨} ||j        |j        ¦  «        }|sŒ|j        }d |v rq|€b|                     | j
        ||¦  «        \  }}|d         dk    r|d         n.t#          t%          t'          |d         ¦  «        ¦  «        ¦  «        } ||||¦  «        }|	 ||¦  «        |z  z  }	Œ©t)          || j
                 ¦  «        }t+          ||	|| j        ¬¦  «        \  }}}}|| _        || _        |j        €|| _        || _        |S )Nr   )Ú	iup_delta)ÚGlyphCoordinates)ÚsupportScalarr‘   rF   r   )ÚfontTools.varLib.iupr³   ÚfontTools.ttLib.tables._g_l_y_fr´   ÚfontTools.varLib.modelsrµ   r‡   rd   rf   Ú
variationsr’   r4   r7   Ú_getCoordinatesAndControlsr-   r+   Úcoordinatesrr   ÚrangerS   r   Ú_setCoordinatesr   r”   r–   r8   r“   r•   )r<   r³   r´   rµ   r‡   rd   r¹   r4   r7   r»   Ú_Ú
origCoordsÚendPtsÚvarÚscalarÚdeltaÚcontrolrª   r“   r”   r•   r–   s                         r    r°   z_TTGlyphGlyf._getGlyphInstanceê   sÔ  € Ø2Ð2Ð2Ð2Ð2Ð2ØDÐDÐDÐDÐDÐDØ9Ð9Ð9Ð9Ð9Ð9à”=ˆØÔ&ˆ	ØÔ'Ô2°4´9Ô=ˆ
ØÔ$ˆØÔ$ˆØ"×=Ò=ØŒI�x ñ
ô 
‰ˆ�Qð (Ñˆ
�FØð 	<ð 	<ˆCØ"�] 8Ô#4°c´hÑ?Ô?ˆFØð ØØ”OˆEØ�uˆ}ˆ}ØÐ%Ø*3×*NÒ*NØœ	 8¨Xñ+ô +Ñ'�J ð '.¨a¤j°A¢o o˜ œ
˜
½4ÅÅcÈ'ÐRSÌ*ÁoÄoÑ@VÔ@VÑ;WÔ;Wð ð "˜	 %¨°VÑ<Ô<�ØÐ+Ð+¨EÑ2Ô2°VÑ;Ñ;ˆKˆKå�Y˜tœyÔ)Ñ*Ô*ˆÝ"1Ø�; 	¸Ô8Ið#
ñ #
ô #
Ñˆˆs�F˜Cð ˆŒØˆŒØÔÐ%àˆDŒJØ ˆDŒKØˆr"   N)rX   rY   rZ   r    r¥   r¨   r°   r^   r"   r    ri   ri   È   sS   € € € € € ð
=ð 
=ð 
=ð
Cð 
Cð 
Cðð ð ð(ð (ð (ð (ð (r"   ri   c                   ó   — e Zd Zd„ ZdS )rz   c                 óp   — | j         j        | j                                      || j         j        ¦  «         dS )rœ   N)r‡   rv   r’   r    r}   rž   s     r    r    z_TTGlyphCFF.draw  s1   € ð 	ŒÔ! $¤)Ô,×1Ò1°#°t´}Ô7LÑMÔMÐMÐMÐMr"   N)rX   rY   rZ   r    r^   r"   r    rz   rz     s(   € € € € € ðNð Nð Nð Nð Nr"   rz   c                 óþ  — | j         dk    rH| j        }||         j        }|                     |d¦  «        }| j        }| j        }||cxk    o|k    nc S | j         dk    r#| j        }	|	|| j                 d         z  }	|	dk    S | j         dk    r!| j        D ]}
t          |
|||¦  «        s dS ŒdS | j         dk    r!| j        D ]}
t          |
|||¦  «        r dS ŒdS | j         dk    rt          | j
        |||¦  «         S dS )	NrF   r   é   é   FTé   é   )ÚFormatÚ	AxisIndexr   r6   ÚFilterRangeMinValueÚFilterRangeMaxValueÚDefaultValueÚVarIdxÚConditionTableÚ_evaluateConditionÚconditionTable)Ú	conditionÚfvarAxesr-   r€   Ú	axisIndexr   Ú	axisValueÚminValueÚmaxValuer‚   Úsubconditions              r    rÓ   rÓ     sg  € ØÔ˜1ÒÐàÔ'ˆ	Ø˜9Ô%Ô-ˆØ—L’L ¨!Ñ,Ô,ˆ	ØÔ0ˆØÔ0ˆØ˜9Ð0Ð0Ò0Ð0¨Ò0Ð0Ð0Ð0Ð0Ø	Ô	˜QÒ	Ð	àÔ&ˆØ�˜9Ô+Ô,¨QÔ/Ñ/ˆØ�qŠyÐØ	Ô	˜QÒ	Ð	à%Ô4ð 	ð 	ˆLÝ% l°H¸hÈ	ÑRÔRð Ø�u�uðàˆtØ	Ô	˜QÒ	Ð	à%Ô4ð 	ð 	ˆLÝ! ,°¸(ÀIÑNÔNð Ø�t�tðàˆuØ	Ô	˜QÒ	Ð	å%ØÔ$ h°¸)ñ
ô 
ð 
ð 	
ð ˆur"   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )rŒ   c                 ó^  ‡— ddl m}m} | j        }|j        }|j        j                             | j        ¦  «        }|j	        j
        |         }ddlm}	 ddlm}
 |j        d         j        Š |	|j        ‰| j        j        ¦  «        }|j        D �]œ}|j        |j        z  r4|j        j        |j                 }t3          |‰| j        j        |¦  «        sŒFi }|j        �¶|j        j        |j                 }t;          |j        ¦  «        }|j        |k    r|tA          ||j                 d¦  «        z  }tC          |¦  «        tC          |¦  «        k    s&J tC          |¦  «        tC          |¦  «        f¦   «         ‚ˆfd„tE          ||¦  «        D ¦   «         }|j#        |k    r1||j#                 }tI          |¦  «        }| %                    |¦  «         |j&        }|j        |j'        z  }| j        j         (                    ||¦  «        5  | j         (                    ||¦  «        5  | j        |j)        k    }|s:	 | *                    |j)        || j        j+        ¦  «         n# tX          $ r d	}Y nw xY w|rŒ| -                    ¦   «         }|j)        | j        k    r| j        n|j        }||j)                 }|r&t]          ||¦  «        }| /                    |¦  «         n%ta          ||¦  «        }| 1                    |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   �ŒždS )
rœ   r   )ÚVarComponentFlagsÚNO_VARIATION_INDEX)ÚMultiVarStoreInstancerr&   r   Né   c                 ó2   •— i | ]\  }}‰|         j         |“ŒS r^   r   )r   ÚiÚvrÖ   s      €r    r!   z&_TTGlyphVARC._draw.<locals>.<dictcomp>i  s3   ø€ ð ð ð Ù/3¨q°!�H˜Q”KÔ'¨ðð ð r"   T)2ÚfontTools.ttLib.tables.otTablesrÞ   rß   r‡   rˆ   rŠ   r‹   Úindexr’   ÚVarCompositeGlyphsÚVarCompositeGlyphÚfontTools.varLib.multiVarStorerà   r9   r'   r*   r+   ÚMultiVarStorer-   Ú
componentsÚflagsÚHAVE_CONDITIONÚConditionListrÒ   ÚconditionIndexrÓ   ÚaxisIndicesIndexÚAxisIndicesListÚItemr
   Ú
axisValuesÚaxisValuesVarIndexÚfi2flrS   ÚzipÚtransformVarIndexr   ÚapplyTransformDeltasÚ	transformÚRESET_UNSPECIFIED_AXESrD   rK   ÚaddVarComponentr.   ÚAttributeErrorÚtoTransformr   r¥   r   r    )r<   rŸ   Ú
isPointPenrÞ   rß   r‡   r�   Úidxrª   rà   r'   r€   ÚcomprÕ   r-   ÚaxisIndicesró   Údeltasrù   r>   ÚshouldDecomposeÚtÚcompGlyphSetÚgÚtPenrÖ   s                            @r    Ú_drawz_TTGlyphVARC._drawA  s$  ø€ ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 ”=ˆØÔ!ˆØŒmÔ"×(Ò(¨¬Ñ3Ô3ˆØÔ'Ô9¸#Ô>ˆàIÐIÐIÐIÐIÐIØ?Ð?Ð?Ð?Ð?Ð?à”= Ô(Ô-ˆØ*Ð*ØÔ ¨$¬-Ô*@ñ
ô 
ˆ	ð Ô$ð 6	)ñ 6	)ˆDØŒzÐ-Ô<Ñ<ð Ø Ô.Ô=¸dÔ>QÔR�	Ý)Ø˜x¨¬Ô)?Àñô ð ð àˆHØÔ$Ð0Ø"Ô2Ô7¸Ô8MÔN�Ý# D¤OÑ4Ô4�
ØÔ*Ð.@Ò@Ð@Ø¥%¨	°$Ô2IÔ(JÈBÑ"OÔ"OÑO�JÝ˜;Ñ'Ô'­3¨z©?¬?Ò:Ð:Ð:Ý˜Ñ$Ô$Ý˜
‘O”Oð=Ñ:Ô:Ð:ðð ð ð Ý7:¸;È
Ñ7SÔ7Sðñ ô �ð Ô%Ð);Ò;Ð;Ø" 4Ô#9Ô:�Ý ‘~”~�Ø×)Ò)¨&Ñ1Ô1Ð1ØœˆIà”JÐ!2Ô!IÑIˆEØ”Ô'×4Ò4°X¸uÑEÔEð )ð )Ø”]×/Ò/°¸%Ñ@Ô@ð )ð )Ø&*¤i°4´>Ò&A�Oà*ð 3ð3Ø×/Ò/Ø $¤°	¸4¼=Ô;Tñô ð ð øõ  .ð 3ð 3ð 3Ø.2˜O˜O˜Oð3øøøð 'ð )Ø%×1Ò1Ñ3Ô3˜ð  $œ~°´Ò:Ð:ð !œM˜Mà!)Ô!2ð %ð
 )¨¬Ô8˜Ø%ð )Ý#4°S¸!Ñ#<Ô#<˜DØŸLšL¨Ñ.Ô.Ð.Ð.å#/°°QÑ#7Ô#7˜DØŸFšF 4™LœL˜Lð1)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ùð;6	)ð 6	)s[   ÈL È"L	È6&IÉL	ÉI,	É)L	É+I,	É,BL	Ë=L Ì	LÌL ÌLÌL Ì L$	Ì'L$	c                 ó2   — |                       |d¦  «         d S )NF©r  rž   s     r    r    z_TTGlyphVARC.draw�  s   € Ø�
Š
�3˜ÑÔÐÐÐr"   c                 ó2   — |                       |d¦  «         d S )NTr
  rž   s     r    r¥   z_TTGlyphVARC.drawPoints’  s   € Ø�
Š
�3˜ÑÔÐÐÐr"   N)rX   rY   rZ   r  r    r¥   r^   r"   r    rŒ   rŒ   @  sE   € € € € € ðL)ð L)ð L)ð\ð ð ðð ð ð ð r"   rŒ   Tr   c                óZ  — t          |¦  «        dk    sJ ‚|d         d         }|d         d         }|d         d         }|d         d         }t          d¦  «        D ]}|d= Œ|                      ¦   «         rxt          |¦  «        t          | j        ¦  «        k    sJ ‚d„ | j        D ¦   «         | _        t	          || j        ¦  «        D ]$\  }	}
t          |
d	¦  «        r|	\  |
_        |
_        Œ%nO| j        dk    rt          |¦  «        dk    sJ ‚n.t          |¦  «        t          | j	        ¦  «        k    sJ ‚|| _	        |r|  
                    |¦  «         t          ||z
  ¦  «        }t          ||z
  ¦  «        }t          | j        |z
  ¦  «        }t          || j        z
  ¦  «        }||||fS )
NrÊ   éüÿÿÿr   éýÿÿÿéþÿÿÿrF   éÿÿÿÿc                 ó,   — g | ]}t          |¦  «        ‘ŒS r^   )r   )r   r   s     r    ú
<listcomp>z#_setCoordinates.<locals>.<listcomp>£  s   € ÐDÐDÐD¨4�D ™JœJÐDÐDÐDr"   Úx)rS   r¼   ÚisCompositerë   rö   r±   r  ÚyÚnumberOfContoursr»   r   r   r¯   ÚyMax)rª   Úcoordrd   r   Ú	leftSideXÚ
rightSideXÚtopSideYÚbottomSideYr¾   Úpr   ÚhorizontalAdvanceWidthÚverticalAdvanceWidthÚleftSideBearingÚtopSideBearings                  r    r½   r½   –  sÊ  € åˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?Ø�b”	˜!”€IØ�r”˜1”€JØ�RŒy˜Œ|€HØ˜”)˜A”,€Kå�1‰XŒXð ð ˆØ�"ˆIˆIà×ÒÑÔð 
"Ý�5‰zŒz�S Ô!1Ñ2Ô2Ò2Ð2Ð2Ð2ØDÐD°5Ô3CÐDÑDÔDˆÔÝ˜5 %Ô"2Ñ3Ô3ð 	#ð 	#‰GˆAˆtÝ�t˜SÑ!Ô!ð #Ø!"‘�”˜œøð	#ð 
Ô	 1Ò	$Ð	$Ý�5‰zŒz˜QŠˆˆˆˆå�5‰zŒz�S Ô!2Ñ3Ô3Ò3Ð3Ð3Ð3Ø!ˆÔàð &Ø×Ò˜9Ñ%Ô%Ð%å$ Z°)Ñ%;Ñ<Ô<ÐÝ" 8¨kÑ#9Ñ:Ô:ÐÝ˜eœj¨9Ñ4Ñ5Ô5€OÝ˜X¨¬
Ñ2Ñ3Ô3€NàØØØð	ð r"   c                   ó2   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ ZdS )
ÚLerpGlyphSeta+  A glyphset that interpolates between two other glyphsets.

    Factor is typically between 0 and 1. 0 means the first glyphset,
    1 means the second glyphset, and 0.5 means the average of the
    two glyphsets. Other values are possible, and can be useful to
    extrapolate. Defaults to 0.5.
    ç      à?c                 ó0   — || _         || _        || _        d S r@   )Ú	glyphset1Ú	glyphset2Úfactor)r<   r&  r'  r(  s       r    r=   zLerpGlyphSet.__init__Å  s   € Ø"ˆŒØ"ˆŒØˆŒˆˆr"   c                 ód   — || j         v r|| j        v rt          || ¦  «        S t          |¦  «        ‚r@   )r&  r'  Ú	LerpGlyphÚKeyError©r<   Ú	glyphnames     r    rj   zLerpGlyphSet.__getitem__Ê  s9   € Ø˜œÐ&Ð&¨9¸¼Ð+FÐ+FÝ˜Y¨Ñ-Ô-Ð-Ý�yÑ!Ô!Ð!r"   c                 ó&   — || j         v o|| j        v S r@   )r&  r'  r,  s     r    rL   zLerpGlyphSet.__contains__Ï  s   € Ø˜DœNÐ*ÐJ¨y¸D¼NÐ/JÐJr"   c                 ó–   — t          | j        ¦  «        }t          | j        ¦  «        }t          |                     |¦  «        ¦  «        S r@   )Úsetr&  r'  rN   Úintersection©r<   Úset1Úset2s      r    rQ   zLerpGlyphSet.__iter__Ò  s<   € Ý�4”>Ñ"Ô"ˆÝ�4”>Ñ"Ô"ˆÝ�D×%Ò% dÑ+Ô+Ñ,Ô,Ð,r"   c                 ó–   — t          | j        ¦  «        }t          | j        ¦  «        }t          |                     |¦  «        ¦  «        S r@   )r0  r&  r'  rS   r1  r2  s      r    rT   zLerpGlyphSet.__len__×  s<   € Ý�4”>Ñ"Ô"ˆÝ�4”>Ñ"Ô"ˆÝ�4×$Ò$ TÑ*Ô*Ñ+Ô+Ð+r"   N)r$  )	rX   rY   rZ   r[   r=   rj   rL   rQ   rT   r^   r"   r    r#  r#  ¼  sq   € € € € € ðð ðð ð ð ð
"ð "ð "ð
Kð Kð Kð-ð -ð -ð
,ð ,ð ,ð ,ð ,r"   r#  c                   ó   — e Zd Zd„ Zd„ ZdS )r*  c                 ó"   — || _         || _        d S r@   )Úglyphsetr-  )r<   r-  r8  s      r    r=   zLerpGlyph.__init__Þ  s   € Ø ˆŒØ"ˆŒˆˆr"   c                 ó|  — t          | j        j        ¦  «        }| j        j        | j                                      |¦  «         t          | j        j        ¦  «        }| j        j        | j                                      |¦  «         | j        j        }t          t          |j	        |j	        |¦  «        |¦  «         d S r@   )
r   r8  r&  r-  r    r'  r(  r   r   r‚   )r<   rŸ   Ú
recording1Ú
recording2r(  s        r    r    zLerpGlyph.drawâ  s™   € Ý,¨T¬]Ô-DÑEÔEˆ
ØŒÔ ¤Ô/×4Ò4°ZÑ@Ô@Ð@Ý,¨T¬]Ô-DÑEÔEˆ
ØŒÔ ¤Ô/×4Ò4°ZÑ@Ô@Ð@à”Ô%ˆå� zÔ'7¸Ô9IÈ6ÑRÔRÐTWÑXÔXÐXÐXÐXr"   N)rX   rY   rZ   r=   r    r^   r"   r    r*  r*  Ý  s7   € € € € € ð#ð #ð #ðYð Yð Yð Yð Yr"   r*  N)*r[   Úabcr   r   Úcollections.abcr   Ú
contextlibr   r   r   Útypesr	   ÚfontTools.misc.vectorr
   ÚfontTools.misc.fixedToolsr   r   rõ   ÚfontTools.misc.loggingToolsr   ÚfontTools.misc.transformr   r   ÚfontTools.pens.transformPenr   r   ÚfontTools.pens.recordingPenr   r   r   r   r`   ro   r„   r�   ri   rz   rÓ   rŒ   r½   r#  r*  r^   r"   r    ú<module>rF     s#  ðØ %Ð %à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ðJ/ð J/ð J/ð J/ð J/�'ñ J/ô J/ð J/ðZMð Mð Mð Mð M�kñ Mô Mð Mð!0ð !0ð !0ð !0ð !0�[ñ !0ô !0ð !0ðH
-ð 
-ð 
-ð 
-ð 
-�kñ 
-ô 
-ð 
-ð)*ð )*ð )*ð )*ð )*ˆsñ )*ô )*ð )*ðXJð Jð Jð Jð J�8ñ Jô Jð JðZNð Nð Nð Nð N�(ñ Nô Nð Nð ð  ð  ðFSð Sð Sð Sð S�8ñ Sô Sð Sðl >Bð #ð #ð #ð #ð #ðL,ð ,ð ,ð ,ð ,�7ñ ,ô ,ð ,ðBYð Yð Yð Yð Yñ Yô Yð Yð Yð Yr"   