§
    ¢”js  ã                  ó~   — d dl mZ d dlmZmZmZ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  G d„ de¦  «        Zd	S )
é    )Úannotations)ÚAnyÚDictÚListÚTuple)ÚcommandsToProgramÚspecializeCommands)ÚT2CharString)ÚotRoundÚ	roundFunc)ÚBasePenc                  ój   ‡ — e Zd ZdZ	 	 d$d%ˆ fd„Zd&d„Zd'd„Zd'd„Zd(d„Zd)d„Z	d)d„Z
	 	 	 d*d+d#„Zˆ xZS ),ÚT2CharStringPenaÉ  Pen to draw Type 2 CharStrings.

    The 'roundTolerance' argument controls the rounding of point coordinates.
    It is defined as the maximum absolute difference between the original
    float and the rounded integer value.
    The default tolerance of 0.5 means that all floats are rounded to integer;
    a value of 0 disables rounding; values in between will only round floats
    which are close to their integral part within the tolerated range.
    ç      à?FÚwidthúfloat | NoneÚglyphSetúDict[str, Any] | NoneÚroundToleranceÚfloatÚCFF2ÚboolÚreturnÚNonec                ó¸   •— t          t          | ¦  «                             |¦  «         t          |¦  «        | _        || _        || _        g | _        d| _        d S )N)r   r   )	Úsuperr   Ú__init__r   ÚroundÚ_CFF2Ú_widthÚ	_commandsÚ_p0)Úselfr   r   r   r   Ú	__class__s        €úm/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/pens/t2CharStringPen.pyr   zT2CharStringPen.__init__   sR   ø€ õ 	�o˜tÑ$Ô$×-Ò-¨hÑ7Ô7Ð7Ý˜~Ñ.Ô.ˆŒ
ØˆŒ
ØˆŒØ@BˆŒØˆŒˆˆó    ÚptúTuple[float, float]úList[float]c                óÎ   — | j         }|                      |d         ¦  «        |                      |d         ¦  «        fx}| _         |d         |d         z
  |d         |d         z
  gS )Nr   é   )r"   r   )r#   r'   Úp0s      r%   Ú_pzT2CharStringPen._p'   s]   € ØŒXˆØŸš B q¤EÑ*Ô*¨D¯JªJ°r¸!´uÑ,=Ô,=Ð>Ð>ˆˆTŒXØ�1”˜˜1œ‘˜r !œu r¨!¤u™}Ð-Ð-r&   c                ód   — | j                              d|                      |¦  «        f¦  «         d S )NÚrmoveto©r!   Úappendr-   ©r#   r'   s     r%   Ú_moveTozT2CharStringPen._moveTo,   ó-   € ØŒ×Ò˜y¨$¯'ª'°"©+¬+Ð6Ñ7Ô7Ð7Ð7Ð7r&   c                ód   — | j                              d|                      |¦  «        f¦  «         d S )NÚrlinetor0   r2   s     r%   Ú_lineTozT2CharStringPen._lineTo/   r4   r&   Úpt1Úpt2Úpt3c                óŽ   — | j         }| j                             d ||¦  «         ||¦  «        z    ||¦  «        z   f¦  «         d S )NÚ	rrcurveto)r-   r!   r1   )r#   r8   r9   r:   r-   s        r%   Ú_curveToOnezT2CharStringPen._curveToOne2   sN   € ð ŒWˆØŒ×Ò˜{¨B¨B¨s©G¬G°b°b¸±g´gÑ,=ÀÀÀ3ÁÄÑ,GÐHÑIÔIÐIÐIÐIr&   c                ó   — d S ©N© ©r#   s    r%   Ú
_closePathzT2CharStringPen._closePath;   ó   € Øˆr&   c                ó   — d S r?   r@   rA   s    r%   Ú_endPathzT2CharStringPen._endPath>   rC   r&   NTÚprivateúDict | NoneÚglobalSubrsúList | NoneÚoptimizer
   c                óL  — | j         }|r| j        sdnd}t          |d|¬¦  «        }t          |¦  «        }| j        �9| j        r
J d¦   «         ‚|                     dt          | j        ¦  «        ¦  «         | j        s|                     d¦  «         t          |||¬¦  «        }|S )	Né0   i  F)ÚgeneralizeFirstÚmaxstackz7CFF2 does not allow encoding glyph width in CharString.r   Úendchar)ÚprogramrF   rH   )	r!   r   r	   r   r    Úinsertr   r1   r
   )r#   rF   rH   rJ   ÚcommandsrN   rP   Ú
charStrings           r%   ÚgetCharStringzT2CharStringPen.getCharStringA   sÚ   € ð ”>ˆØð 	Ø!%¤Ð4�r�r°ˆHÝ)Ø¨%¸(ðñ ô ˆHõ $ HÑ-Ô-ˆØŒ;Ð"à”JðIð IàHñIô Ið Ið �NŠN˜1�g d¤kÑ2Ô2Ñ3Ô3Ð3ØŒzð 	&Ø�NŠN˜9Ñ%Ô%Ð%Ý!Ø W¸+ð
ñ 
ô 
ˆ
ð Ðr&   )r   F)
r   r   r   r   r   r   r   r   r   r   )r'   r(   r   r)   )r'   r(   r   r   )r8   r(   r9   r(   r:   r(   r   r   )r   r   )NNT)rF   rG   rH   rI   rJ   r   r   r
   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r-   r3   r7   r=   rB   rE   rT   Ú__classcell__)r$   s   @r%   r   r      sô   ø€ € € € € ðð ð !$Øðð ð ð ð ð ð ð.ð .ð .ð .ð
8ð 8ð 8ð 8ð8ð 8ð 8ð 8ðJð Jð Jð Jðð ð ð ðð ð ð ð
  $Ø#'Øð	ð ð ð ð ð ð ð ð r&   r   N)Ú
__future__r   Útypingr   r   r   r   ÚfontTools.cffLib.specializerr   r	   ÚfontTools.misc.psCharStringsr
   ÚfontTools.misc.roundToolsr   r   ÚfontTools.pens.basePenr   r   r@   r&   r%   ú<module>r`      sÏ   ðð #Ð "Ð "Ð "Ð "Ð "à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø *Ð *Ð *Ð *Ð *Ð *ðJð Jð Jð Jð J�gñ Jô Jð Jð Jð Jr&   