§
    ¢”j(  ã                   ó  — d dl Z d dlZd dl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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  ej        d¦  «        Zedgz   Zd„ Zd„ Zdd„Zedk    r ej          e¦   «         ¦  «         dS dS )é    N)ÚStringIO)ÚPath)ÚconfigLogger)ÚaddOpenTypeFeaturesFromString)ÚFeatureLibError)ÚLexer)ÚmakeOutputFileName)ÚTTFontÚ
TTLibError)ÚParser)ÚTABLESÚ	VoltToFeazfontTools.feaLibÚcmapc                 óx   — | d         t           j        vrdS t          d„ | dd…         D ¦   «         ¦  «        rdS dS )z9Check if the glyph name is valid according to FEA syntax.r   Tc              3   ó2   K  — | ]}|t           j        vV — Œd S ©N)r   ÚCHAR_NAME_CONTINUATION_)Ú.0Úcs     úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/voltLib/__main__.pyú	<genexpr>z)invalid_fea_glyph_name.<locals>.<genexpr>   s*   è è € Ð
DÐ
D°aˆ1•EÔ1Ð1Ð
DÐ
DÐ
DÐ
DÐ
DÐ
Dó    é   NF)r   ÚCHAR_NAME_START_Úany)Únames    r   Úinvalid_fea_glyph_namer      sJ   € àˆA„w•eÔ,Ð,Ð,ØˆtÝ
Ð
DÐ
D¸4ÀÀÀ¼8Ð
DÑ
DÔ
DÑDÔDð ØˆtØˆ5r   c                 ó    — d}t          | ¦  «        D ];\  }}|dk    r|t          j        vr	|d|z   z  }Œ"|t          j        vr|dz  }Œ6||z  }Œ<|S )zFSanitize the glyph name to ensure it is valid according to FEA syntax.Ú r   ÚaÚ_)Ú	enumerater   r   r   )r   Ú	sanitizedÚir   s       r   Úsanitize_glyph_namer%      sq   € à€IÝ˜$‘”ð ð ‰ˆˆ1Ø�Š6ˆ6�a�uÔ5Ð5Ð5Ø˜˜q™Ñ ˆIˆIØ•eÔ3Ð3Ð3Ø˜ÑˆIˆIà˜‰NˆIˆIàÐr   c           
      ó´
  — t          j        d¬¦  «        }|                     dddt          ¬¦  «         |                     ddd	d
t          ¬¦  «         |                     dddddt          ¬¦  «         |                     dddt          dd¬¦  «         |                     dddd¬¦  «         |                     ddd¬¦  «         |                     ddd d!d"¬#¦  «         |                     d$d%d&d¬¦  «         |                     | ¦  «        }g d'¢}t          |t          t          |¦  «        d(z
  |j	        ¦  «                 ¬)¦  «         |j
        p't          t          |j        p|j        ¦  «        ¦  «        }t                               d*|› d+�¦  «         |j        }d,}	 t!          |¦  «        }d-|v r.t#          |d-         j                             d.¦  «        ¦  «        }nt                               d/¦  «         d(S n# t*          $ r Y nw xY w|€7|j        st                               d0¦  «         d(S t!          |j        ¦  «        }|                     ¦   «         }d,}t/          d1„ |D ¦   «         ¦  «        r{g }|D ]a}	t1          |	¦  «        r;t3          |	¦  «        }	t5          |¦  «        t5          |¦  «        z  }
|	|
v r	d2|	z   }	|	|
v °	|                     |	¦  «         Œb|                     |¦  «         t;          |¦  «                             ¦   «         }t                               d3¦  «         t?          ||¦  «        }	 |                      |j!        d4¬5¦  «        }nŠ# tD          $ r}}|j#        r‚ tI          |j%        d"         d6d,¦  «        }d7|› d8�}|r,|\  }}}t                               |› d9|› d9|› d:|› �¦  «         nt                               |¦  «         Y d,}~d(S d,}~ww xY w|j        }|j&        rp| '                    d;¦  «        }t                               d<|› d+�¦  «         tQ          |d=¦  «        5 }| )                    |¦  «         d,d,d,¦  «         n# 1 swxY w Y   t                               d>¦  «         	 tU          ||||j!        ¬?¦  «         n:# tV          $ r-}|j#        r‚ t                               |¦  «         Y d,}~d(S d,}~ww xY w|j,        rd@D ]	}||v r||= Œ
|r^d"d,l-}| .                    ¦   «         }| /                    |¦  «         t!          |¦  «        }|                     |¦  «         g |dA         _0        | /                    |¦  «         d,S )Bz4Build tables from a MS VOLT project into an OTF fontz*Use fontTools to compile MS VOLT projects.)ÚdescriptionÚinputÚINPUTz*Path to the input font/VTP file to process)ÚmetavarÚhelpÚtypez-fz--fontÚ
INPUT_FONTz/Path to the input font (if INPUT is a VTP file)z-oz--outputÚoutputÚOUTPUTzPath to the output font.)Údestr*   r+   r,   z-tz--tablesÚ	TABLE_TAGú+z!Specify the table(s) to be built.)r*   ÚchoicesÚnargsr+   z-Fz--debug-feature-filez)Write the generated feature file to disk.Ú
store_true)r+   Úactionz--shipz+Remove source VOLT tables from output font.z-vz	--verbosez?Increase the logger verbosity. Multiple -v options are allowed.Úcountr   )r+   r6   Údefaultz-Tz--tracebackzshow traceback for exceptions.)ÚWARNINGÚINFOÚDEBUGr   )ÚlevelzCompiling MS VOLT to 'ú'NÚTSIVzutf-8z"TSIV" table is missingzPlease provide an input fontc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )r   )r   Úns     r   r   zmain.<locals>.<genexpr>‰   s+   è è € Ð
9Ð
9¨Õ! !Ñ$Ô$Ð
9Ð
9Ð
9Ð
9Ð
9Ð
9r   r    zConverting VTP data to FEAT)Úignore_unsupported_settingsÚlocationú"z" is not supportedú:z: z.feazWriting FEA to 'Úwz Compiling FEA to OpenType tables)ÚfilenameÚtables)r>   ÚTSISÚTSIPÚTSIDÚpost)1ÚargparseÚArgumentParserÚadd_argumentr   ÚSUPPORTED_TABLESÚ
parse_argsr   ÚminÚlenÚverboser.   r	   Úfontr(   ÚlogÚinfor
   r   ÚdataÚdecodeÚerrorr   ÚgetGlyphOrderr   r   r%   ÚsetÚappendÚsetGlyphOrderr   Úparser   ÚconvertrG   ÚNotImplementedErrorÚ	tracebackÚgetattrÚargsÚdebug_feature_fileÚwith_suffixÚopenÚwriter   r   ÚshipÚioÚBytesIOÚsaveÚ
extraNames)rc   ÚparserÚoptionsÚlevelsÚoutput_fontÚfile_or_pathrT   Ú
glyphOrderÚtempGlyphOrderr@   ÚexistingÚdocÚ	converterÚfeaÚerB   ÚmessageÚpathÚlineÚcolumnÚfea_filenameÚfpÚtagri   Úfs                            r   Úmainr�   ,   sž  € åÔ$Ø@ðñ ô €Fð ×ÒØØØ9Ýð	 ñ ô ð ð ×ÒØØØØ>Ýð ñ ô ð ð ×ÒØØØØØ'Ýð ñ ô ð ð ×ÒØØØÝ ØØ0ð ñ ô ð ð ×ÒØØØ8Øð	 ñ ô ð ð ×ÒØØ:Øð ñ ô ð ð
 ×ÒØØØNØØð ñ ô ð ð ×ÒØØØ-Øð	 ñ ô ð ð ×Ò Ñ%Ô%€Gà)Ð)Ð)€FÝ�v�c¥# f¡+¤+°¡/°7´?ÑCÔCÔDÐEÑEÔEÐEà”.ð ¥DÝ˜7œ<Ð8¨7¬=Ñ9Ô9ñ%ô %€Kõ ‡H‚HÐ4 kÐ4Ð4Ð4Ñ5Ô5Ð5à”=€LØ€DðÝ�lÑ#Ô#ˆØ�Tˆ>ˆ>Ý# D¨¤LÔ$5×$<Ò$<¸WÑ$EÔ$EÑFÔFˆLˆLå�IŠIÐ/Ñ0Ô0Ð0Ø�1ð øõ ð ð ð Øˆðøøøð €|ØŒ|ð 	Ý�IŠIÐ4Ñ5Ô5Ð5Ø�1Ý�g”lÑ#Ô#ˆð ×#Ò#Ñ%Ô%€JØ€NÝ
Ð
9Ð
9¨jÐ
9Ñ
9Ô
9Ñ9Ô9ð 	+ØˆØð 	%ð 	%ˆAÝ% aÑ(Ô(ð  Ý'¨Ñ*Ô*�Ý˜~Ñ.Ô.µ°Z±´Ñ@�Ø˜8�m�mØ˜a™�Að ˜8�m�mà×!Ò! !Ñ$Ô$Ð$Ð$Ø×Ò˜>Ñ*Ô*Ð*å
�Ñ
Ô
×
$Ò
$Ñ
&Ô
&€Cå‡H‚HÐ)Ñ*Ô*Ð*Ý˜#˜tÑ$Ô$€IðØ×Ò ¤ÈDÐÑQÔQˆˆøÝð 
ð 
ð 
ØÔð 	ØÝ˜1œ6 !œ9 j°$Ñ7Ô7ˆØ+�aÐ+Ð+Ð+ˆØð 	Ø!)ÑˆD�$˜Ý�IŠI˜Ð:Ð: Ð:Ð: vÐ:Ð:°Ð:Ð:Ñ;Ô;Ð;Ð;å�IŠI�gÑÔÐØˆqˆqˆqˆqˆqøøøøð
øøøð ”=€LØÔ!ð Ø"×.Ò.¨vÑ6Ô6ˆÝ�ŠÐ3 LÐ3Ð3Ð3Ñ4Ô4Ð4Ý�, Ñ$Ô$ð 	¨Ø�HŠH�S‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ‡H‚HÐ/Ñ0Ô0Ð0ðÝ%ØØØ!Ø”>ð		
ñ 	
ô 	
ð 	
ð 	
øõ ð ð ð ØÔð 	ØÝ�	Š	�!‰ŒˆØˆqˆqˆqˆqˆqøøøøð	øøøð „|ð Ø3ð 	ð 	ˆCØ�dˆ{ˆ{Ø˜�Iøð ð %Øˆ	ˆ	ˆ	à�JŠJ‰LŒLˆØ�	Š	�!‰ŒˆÝ�a‰yŒyˆØ×Ò˜:Ñ&Ô&Ð&Ø"$ˆˆVŒÔà‡I‚IˆkÑÔÐÐÐsV   Æ AG> Ç>
HÈ
HÌ=M Í
O!Í$A2OÏO!Ð5QÑQÑQÑ=R Ò
SÒ "SÓSÚ__main__r   )!rL   ÚloggingÚsysri   r   Úpathlibr   Ú	fontToolsr   ÚfontTools.feaLib.builderr   ÚfontTools.feaLib.errorr   ÚfontTools.feaLib.lexerr   ÚfontTools.misc.cliToolsr	   ÚfontTools.ttLibr
   r   ÚfontTools.voltLib.parserr   ÚfontTools.voltLib.voltToFear   r   Ú	getLoggerrU   rO   r   r%   r�   Ú__name__Úexit© r   r   ú<module>r’      sj  ðØ €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "Ø BÐ BÐ BÐ BÐ BÐ BØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø (Ð (Ð (Ð (Ð (Ð (Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø +Ð +Ð +Ð +Ð +Ð +Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à€gÔÐ*Ñ+Ô+€à˜V˜HÑ$Ð ðð ð ðð ð ð^ð ^ð ^ð ^ðB ˆzÒÐØ€C„HˆTˆT‰VŒVÑÔÐÐÐð Ðr   