Ë
    £eh‡'  ã                   ó   — 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
mZmZmZmZmZmZ ddlmZ ddlZdd	gZ ej*                  d
«      Z G d„ de«      Zd„ Zd„ Zdd„Zedk(  r*ddlZ ej<                   eej>                  dd «      «       yy)zCFF to CFF2 converter.é    )ÚTTFontÚnewTable)ÚmakeOutputFileName)ÚT2WidthExtractor)ÚTopDictIndexÚFDArrayIndexÚFontDictÚ
buildOrderÚtopDictOperatorsÚprivateDictOperatorsÚtopDictOperators2ÚprivateDictOperators2)ÚBytesIONÚconvertCFFToCFF2ÚmainzfontTools.cffLibc                   ó   — e Zd Zd„ Zd„ Zy)Ú_NominalWidthUsedErrorc                 ó   — | ‚©N© ©ÚselfÚothers     úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/cffLib/CFFToCFF2.pyÚ__add__z_NominalWidthUsedError.__add__   ó   € Øˆ
ó    c                 ó   — | ‚r   r   r   s     r   Ú__radd__z_NominalWidthUsedError.__radd__   r   r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   „ òór   r   c                 ó4  — | j                   d   }t        |d«      r|j                  nd}|j                  }| j                  }|r%|D �cg c]  }t        |j                  dg «      ‘Œ c}n:t        |d«      r-t        |j                  d«      r|j                  j                  gng }|j                  «       D ]&  }|j                  |«      \  }	}
|	j                  «        Œ( |g|z   D ]U  }|D ]N  }|j                  }t        |«      x}}	 |j                  d«      }	 |j                  d«      }g |t        ||«      d ŒP ŒW d}t!        «       }|j                  «       D ]Š  }|j                  |«      \  }	}
|	j                  }|
�||
   n$t        |d«      rt        |j                  dg «      ng }t#        |||d«      }	 |j%                  |	«       |sŒr|d   dk(  sŒ{|j'                  «        ŒŒ |r| j1                  «        d	| _        | j4                  j6                  }t9        d|«      }| j                   D ]  }|j;                  |«       Œ || _         |d   }t        |d«      r|j                  }nd}t=        t>        «      }||_         ||_!        t        |d«      sútE        «       x}|_        d|_#        |j                  |_        ||j                  _$        |j                  }|jJ                  r||jL                  _$        n||_$        tO        «       }|jQ                  d«       |j;                  |«       ||_        t=        tR        «      }|��FtT        D ]@  } | d
   }!|!|vsŒ|!|jV                  v r|jV                  |!= t        ||!«      sŒ5tY        ||!«       ŒB nü|j                  }t=        tR        «      }|D ]Ü  }|jQ                  d«       t[        |jV                  j                  «       «      D ]7  }!|!|j@                  vsŒ|jV                  |!= t        ||!«      sŒ,tY        ||!«       Œ9 |j                  }tT        D ]W  } | d
   }!|!|vsŒ|!t[        |jV                  j                  «       «      v r|jV                  |!= t        ||!«      sŒLtY        ||!«       ŒY ŒÞ t\        D ]F  } | d
   }!|!dk(  rŒ|!|vsŒ|!|jV                  v r|jV                  |!= t        ||!«      sŒ;tY        ||!«       ŒH t_        «       }"| ja                  |"|d¬«       |"jc                  d«       | j                  |"|d¬«       yc c}w # t        $ r Y �Œw xY w# t        $ r Y �Œw xY w# t         $ rÏ t        |«      d	k\  r—|d
   dv r�d}|j'                  d«      }t)        |t*        «      sJ |«       ‚|j'                  d«      }|dk(  r|j,                  n|j.                  }||z  }|dk(  r|n|}||   j                  }||dd t        |«      d	k\  r|d
   dv rŒ�t        |«      d
k\  sJ |«       ‚|j'                  d«       Y �ŒPw xY w)a  Converts this object from CFF format to CFF2 format. This conversion
    is done 'in-place'. The conversion cannot be reversed.

    This assumes a decompiled CFF table. (i.e. that the object has been
    filled via :meth:`decompile` and e.g. not loaded from XML.)r   ÚFDArrayNÚSubrsÚPrivateÚreturnÚendcharFé   é   )ÚcallsubrÚ	callgsubrTr+   éÿÿÿÿÚcharset)ÚisCFF2)2ÚtopDictIndexÚhasattrr$   ÚCharStringsÚGlobalSubrsÚgetattrr&   r%   ÚkeysÚgetItemAndSelectorÚ	decompileÚprogramÚlenÚindexÚ
ValueErrorÚminr   r   ÚexecuteÚpopÚ
isinstanceÚintÚ	localBiasÚ
globalBiasÚremove_unused_subroutinesÚmajorÚotFontÚgetGlyphOrderr   Úappendr
   r   ÚorderÚcff2GetGlyphOrderr   ÚstringsÚfdArrayÚcharStringsAreIndexedÚcharStringsIndexr	   ÚsetCFF2r   r   ÚrawDictÚdelattrÚlistr   r   ÚcompileÚseek)#ÚcffrE   ÚtopDictrK   ÚcharStringsÚglobalSubrsÚfdÚ
localSubrsÚ	glyphNameÚcsÚfdIndexÚsubrsÚsubrr8   ÚiÚjÚremoveUnusedSubrsÚnominalWidthXErrorÚthisLocalSubrsÚ	extractorÚ
subrNumberÚopÚbiasÚsubrSetÚsubrProgramrI   ÚtopDictDataÚitemÚprivateDictÚopOrderÚfontDictÚprivateOpOrderÚentryÚkeyÚfiles#                                      r   Ú_convertCFFToCFF2rs   !   s+  € ð ×Ñ˜qÑ!€GÜ!(¨°)Ô!<ˆg�oŠoÀ$€GØ×%Ñ%€KØ—/‘/€Kñ ð 5<Ö<¨bŒ�—‘˜W bÕ	)Ó<ô �w 	Ô*¬w°w·±ÈÔ/Pð �_‰_×"Ñ"Ñ#àð ð !×%Ñ%Ó'ò ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ
�‰�ðð
 � Ñ+ò &ˆØò 	&ˆDØ—l‘lˆGÜ˜“LÐ ˆA�ðØ—M‘M (Ó+�ðØ—M‘M )Ó,�ð $&ˆG”C˜˜1“I�KÑ ñ	&ð&ð ÐÜ/Ó1ÐØ ×%Ñ%Ó'ò ,ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ—*‘*ˆð Ð"ð �wÒô ˜7 IÔ.ô ˜Ÿ™¨°"Ô5àð 	ô %ØØØØó	
ˆ	ð	Ø×Ñ˜bÔ!ò( �w˜r‘{ iÓ/Ø�K‰K�MðY,ñ\ Ø×%Ñ%Ô'ð €C„IØŸ
™
×0Ñ0ÐÜ˜tÐ%6Ó7€KØ× Ñ ò !ˆà×Ñ˜4Õ ð!ð #€CÔØ˜!‰n€GÜˆw˜	Ô"Ø—o‘o‰àˆÜÔ*Ó+€GØ€G„MØ 1€GÔä�7˜IÔ&Ü$0£NÐ2ˆ�'”/ØˆŒØ%×1Ñ1ˆÔØ&-ˆ×ÑÔ#Ø×)Ñ)ˆØ×,Ò,Ø3:ˆK×(Ñ(Õ0à")ˆKÔÜ“:ˆØ×Ñ˜ÔØ�‰�xÔ Ø&ˆÔÜ#Ô$9Ó:ˆØÑ"Ü-ò 2�Ø˜A‘h�Ø˜nÒ,Ø˜k×1Ñ1Ñ1à'×/Ñ/°Ð4Ü˜{¨CÕ0Ü ¨SÕ1ñ2ð —/‘/ˆÜ#Ô$9Ó:ˆØò 	2ˆHØ×Ñ˜TÔ"Ü˜H×,Ñ,×1Ñ1Ó3Ó4ò /�Ø˜hŸn™nÒ,Ø ×(Ñ(¨Ð-Ü˜x¨Õ-Ü ¨#Õ.ð	/ð #×*Ñ*ˆKÜ-ò 2�Ø˜A‘h�Ø˜nÒ,Øœd ;×#6Ñ#6×#;Ñ#;Ó#=Ó>Ñ>à'×/Ñ/°Ð4Ü˜{¨CÕ0Ü ¨SÕ1ñ2ð	2ô( "ò &ˆØ�A‰hˆð �)ÒØØ�gÒØ�g—o‘oÑ%Ø—O‘O CÐ(Ü�w Õ$Ü˜ Õ%ð&ô6 ‹9€DØ‡K�K��f T€KÔ*Ø‡I�Iˆa„LØ‡M�M�$˜ t€MÕ,ùòc 	=øô( ò Úðûô ò Úðûô> &ò 	ô
 �g“, !Ò#¨°©
Ð6OÑ(OØ$(Ð!Ø$Ÿ[™[¨›^�
Ü! *¬cÔ2Ð>°JÓ>Ð2Ø—[‘[ “^�Ø.0°JÒ.>�y×*Ò*ÀI×DXÑDX�Ø˜dÑ"�
Ø,.°*Ò,<™.À+�Ø% jÑ1×9Ñ9�Ø)�˜˜�ô �g“, !Ò#¨°©
Ð6OÒ(Oô �w“< 1Ò$Ð- gÓ-Ð$Ø�K‰K˜�Nð#	úsC   ÁTÄTÄT/Æ5T?Ô	T,Ô+T,Ô/	T<Ô;T<Ô?B-X×-&XØXc                 ón   — | d   j                   }| d= t        || «       t        d«      x}| d<   ||_         y )NzCFF ÚCFF2)rT   rs   r   )ÚfontrT   Útables      r   r   r   ã   s<   € Ø
ˆv‰,×
Ñ
€CØˆVˆÜ�c˜4Ô Ü# FÓ+Ð+€EˆD�‰LØ€E…Ir   c                 ó@  — | €ddl }|j                  dd } ddl}|j                  dd¬«      }|j	                  ddd	¬
«       |j	                  ddddd¬«       |j	                  dddd¬«       |j                  d¬«      }|j	                  dddd¬«       |j	                  dddd¬«       |j                  | «      }ddlm}  ||j                  rd n|j                  rd!nd"¬#«       ddl}|j                  }|j                  j                  |«      s |j                  d$j!                  |«      «       |j"                  st%        |d%d&¬'«      n|j"                  }	t'        ||j(                  d¬(«      }
t+        |
«       t,        j/                  d)|	«       |
j1                  |	«       y)*z%Convert CFF OTF font to CFF2 OTF fontNr   r*   zfonttools cffLib.CFFToCFF2zUpgrade a CFF font to CFF2.)ÚdescriptionÚinputz	INPUT.ttfzInput OTF file with CFF table.)ÚmetavarÚhelpz-oz--outputz
OUTPUT.ttfz3Output instance OTF file (default: INPUT-CFF2.ttf).)r{   Údefaultr|   z--no-recalc-timestampÚrecalc_timestampÚstore_falsez:Don't set the output font's timestamp to the current time.)ÚdestÚactionr|   F)Úrequiredz-vz	--verboseÚ
store_truezRun more verbosely.)r�   r|   z-qz--quietzTurn verbosity off.)ÚconfigLoggerÚDEBUGÚERRORÚINFO)ÚlevelzNo such file '{}'Tz-CFF2)Ú	overWriteÚsuffix)ÚrecalcTimestampÚrecalcBBoxesz	Saving %s)ÚsysÚargvÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_argsÚ	fontToolsr„   ÚverboseÚquietÚosrz   ÚpathÚisfileÚerrorÚformatÚoutputr   r   r~   r   ÚlogÚinfoÚsave)Úargsr�   r�   ÚparserÚloggingGroupÚoptionsr„   r—   ÚinfileÚoutfilerv   s              r   r   r   ë   s²  € à€|Ûà�x‰x˜˜ˆ|ˆãà×$Ñ$Ø$Ø1ð %ó €Fð ×ÑØ˜Ð+Kð ô ð ×ÑØØØØØBð ô ð ×ÑØØØØIð	 ô ð ×6Ñ6ÀÐ6ÓF€LØ×ÑØˆk ,Ð5Jð ô ð ×ÑØˆi Ð3Hð ô ð ×Ñ Ó%€Gå&áØ!Ÿ/š/‰w¸'¿-º-©wÈVõó à�]‰]€FØ�7‰7�>‰>˜&Ô!Ø�‰Ð(×/Ñ/°Ó7Ô8ð �~Š~ô 	˜6¨T¸'ÕBà�^‰^ð ô �&¨'×*BÑ*BÐQVÔW€Dä�TÔä‡H�HØØôð 	‡I�IˆgÕr   Ú__main__r*   r   ) Ú__doc__ÚfontTools.ttLibr   r   ÚfontTools.misc.cliToolsr   ÚfontTools.misc.psCharStringsr   ÚfontTools.cffLibr   r   r	   r
   r   r   r   r   Úior   ÚloggingÚ__all__Ú	getLoggerr�   Ú	Exceptionr   rs   r   r   r    r�   ÚexitrŽ   r   r   r   ú<module>r²      s•   ðÙ ç ,Ý 6Ý 9÷	÷ 	ó 	õ Û à˜vÐ
&€ð €g×ÑÐ*Ó+€ô˜Yô ò-òDó@ðF ˆzÒÛà€C‡H�H‰T�#—(‘(˜1˜2�,ÓÕ ð r   