
    h9                        S r SSKJr  SSKJr  SSKJs  Js  Jr  SSKJs  Js  J	r	  SSK
Jr  SSKJs  Jr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  S
S/r " S S\5      r\R9                  \R:                  " S5      S4\R:                  " S5      S4\R:                  " S5      S4\R:                  " S5      S4\R:                  " S5      S4\R:                  " S5      S4\	R<                  S4\	R>                  S4\	R@                  S4\	RB                  S4\	RD                  S4\	RF                  S445      S 5       r$\RK                  \R:                  " S5      \R:                  " S 5      4S!5      S" 5       r$\RK                  \R:                  " S#5      S$5      S% 5       r$\RK                  \R:                  " S&5      S'5      S( 5       r$\RK                  \R:                  " S)5      S*5      S+ 5       r$\RK                  \R:                  " S,5      S-5      S. 5       r$\RK                  \R:                  " S/5      S05      S1 5       r$S2 r&\RK                  \R:                  " S35      \R:                  " S45      4S55      S6 5       r$\RO                  \	RP                  5      S7 5       r$S8 r)\RO                  \	RT                  5      S9 5       r$\RO                  \	RV                  5      S: 5       r$S; r,S>S< jr-\.S=:X  a  SSK/r/\/R`                  " \-" 5       5        gg)?zsChange the units-per-EM of a font.

AAT and Graphite tables are not supported. CFF/CFF2 fonts
are de-subroutinized.    )	TTVisitorN)VarStoreData)builder)OnlineMultiVarStoreBuilder)Vector)otRound)batched
scale_upemScalerVisitorc                        \ rS rSrS rS rSrg)r      c                     Xl         g NscaleFactor)selfr   s     K/var/www/html/env/lib/python3.13/site-packages/fontTools/ttLib/scaleUpem.py__init__ScalerVisitor.__init__   s    &    c                 0    [        XR                  -  5      $ r   )r   r   )r   vs     r   scaleScalerVisitor.scale   s    q+++,,r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r      s    '-r   head)
unitsPerEmxMinyMinxMaxyMaxpost)underlinePositionunderlineThicknessVORGdefaultVertOriginYhhea)ascentdescentlineGapadvanceWidthMaxminLeftSideBearingminRightSideBearing
xMaxExtentcaretOffsetvhea)r-   r.   r/   advanceHeightMaxminTopSideBearingminBottomSideBearing
yMaxExtentr4   zOS/2)xAvgCharWidthySubscriptXSizeySubscriptYSizeySubscriptXOffsetySubscriptYOffsetySuperscriptXSizeySuperscriptYSizeySuperscriptXOffsetySuperscriptYOffsetyStrikeoutSizeyStrikeoutPositionsTypoAscendersTypoDescendersTypoLineGapusWinAscentusWinDescentsxHeight
sCapHeight)XAdvanceYAdvance
XPlacement
YPlacement)XCoordinateYCoordinate
CoordinateValue)r#   r$   r%   r&   c                 :    [        XU R                  U5      5        g r   )setattrr   )visitorobjattrvalues       r   visitrZ      s    D Cw}}U+,r   hmtxvmtxmetricsc                 j    U H-  nX4   u  pVU R                  U5      U R                  U5      4X4'   M/     g r   r   )rV   rW   rX   r]   gadvancelsbs          r   rZ   rZ   c   s5     z]]7+W]]3-??
 r   VMTXVOriginRecordsc                 @    U H  nU R                  X4   5      X4'   M     g r   r_   )rV   rW   rX   rd   r`   s        r   rZ   rZ   l   s     #MM.*;< r   glyfglyphsc           	      $   UR                  5        H  nS H/  n[        XBS 5      nUc  M  [        XBU R                  U5      5        M1     UR	                  5       (       aU  UR
                   HC  nU R                  UR                  5      Ul        U R                  UR                  5      Ul        ME     M  [        US5      (       d  M  UR                  n[        U5       H,  u  nu  pU R                  U	5      U R                  U
5      4Xx'   M.     M     g )N)r#   r%   r$   r&   coordinates)valuesgetattrrU   r   isComposite
componentsxyhasattrri   	enumerate)rV   rW   rX   rg   r`   r   	componentri   irn   ro   s              r   rZ   rZ   r   s    ]]_4D&A}q!12 5
 ==??\\	%mmIKK8	%mmIKK8	 * 1m$$--K&{3	6A!(q!17==3C!C 4 r   gvar
variationsc                    U R                   S   nUR                  5        Ha  u  pVXE   nU HR  nUR                  n	[        U	5       H4  u  pUc  M
  U R	                  US   5      U R	                  US   5      4X'   M6     MT     Mc     g )Nrf   r      )fontitemsri   rq   r   )rV   rW   rX   ru   	glyfTable	glyphNamevarlistglyphvarri   rs   xys               r   rZ   rZ      s    V$I(..0	$C//K";/:!(r!u!5w}}RU7K!K 0  1r   VARCtablec                 
   U R                   S   nUR                   Vs/ s H  oUR                  PM     nnUR                  n[	        U5      nUR
                  R                   GH  n	U	R                   GH  n
U
R                  nU R                  UR                  5      Ul
        U R                  UR                  5      Ul        U R                  UR                  5      Ul        U R                  UR                  5      Ul        U
R                  [        R                   :w  a  U
R                  nU[        R                   :w  a  US-	  nUS-  nUR"                  U   nUR$                  U   nUR'                  UR)                  XR                  5      5        U(       a_  [+        U5      UR,                  -  n[/        [1        UU5      5      nU Vs/ s H  n[3        U5      PM     nnUR5                  U5      U
l        O[        R                   U
l        U
R6                  [        R                   :w  d  GM  U
R6                  nU[        R                   :w  d  GM  US-	  nUS-  nWR$                  US-     nUS-	  nUS-  nUR"                  U   nUR$                  U   nUR'                  UR)                  XR                  5      5        U(       GaC  [+        U5      UR,                  -  nU
R8                  n[/        [1        UU5      5      n/ nU GH  n[/        U5      nSnU[        R:                  R<                  -  (       a  U R                  UU   5      UU'   US-  nU[        R:                  R>                  -  (       a  U R                  UU   5      UU'   US-  nU[        R:                  R@                  -  (       a  US-  nU[        R:                  RB                  -  (       a  US-  nU[        R:                  RD                  -  (       a  US-  nU[        R:                  RF                  -  (       a  US-  nU[        R:                  RH                  -  (       a  US-  nU[        R:                  RJ                  -  (       a  U R                  UU   5      UU'   US-  nU[        R:                  RL                  -  (       a  U R                  UU   5      UU'   US-  nURO                  [3        U5      5        GM     UnUR5                  U5      U
l        GM  [        R                   U
l        GM     GM     URQ                  5       Ul        g s  snf s  snf )Nfvar   i  r   rw   ))rx   axesaxisTagMultiVarStorer   VarCompositeGlyphsVarCompositeGlyphrm   	transformr   
translateX
translateYtCenterXtCenterYaxisValuesVarIndexotTablesNO_VARIATION_INDEXMultiVarDataItemsetSupportsget_supportslenVarRegionCountlistr	   r   storeDeltastransformVarIndexflagsVarComponentFlagsHAVE_TRANSLATE_XHAVE_TRANSLATE_YHAVE_ROTATIONHAVE_SCALE_XHAVE_SCALE_YHAVE_SKEW_XHAVE_SKEW_YHAVE_TCENTER_XHAVE_TCENTER_Yappendfinish)rV   rW   rX   varcr   afvarAxesstorestoreBuilderr`   rr   tvarIdxmajorminorvarDatavecmr   r   newVecrs   s                         r   rZ   rZ      s=    <<D#'99-9a		9H-E-h7L$$66I##A"==6AL"==6AL qzz2AJ qzz2AJ++x/J/JJ"55 X888"bLE"VOE#007G!,,u-C ,,U-?-?yy-QRH(>(>>"73?3256#Qvay#67C7O7OPS7T	47?7R7R	4**h.I.II"44X888"bLE"VOE!,,v7C"bLE"VOE#007G!,,u-C ,,U-?-?yy-QRH(>(>> )"73?3!#!$A $QA !A$x'A'A'R'RR'.}}QqT':! !Q$x'A'A'R'RR'.}}QqT':! !Q$x'A'A'O'OO !Q$x'A'A'N'NN !Q$x'A'A'N'NN !Q$x'A'A'M'MM !Q$x'A'A'M'MM !Q$x'A'A'P'PP'.}}QqT':! !Q$x'A'A'P'PP'.}}QqT':! !Q"MM&)47 "%8 %6B6N6Ns6S	36>6Q6Q	3S & 7X &,,.Dc .4 7s   T?
Ukern
kernTablesc                     U H;  nUR                   nUR                  5        H  nU R                  XV   5      XV'   M     M=     g r   )	kernTablekeysr   )rV   rW   rX   r   r   r   ks          r   rZ   rZ      s8    OO	!A"==6IL " r   c                     [        U5       HZ  u  p#[        U[        5      (       d,  [        U[        5      (       d  U R	                  U5      X'   MD  MF  US   n[        X5        XCS'   M\     g )N)rq   
isinstancer   bytesr   
_cff_scale)rV   argsrs   arg
num_blendss        r   r   r      s[    D/#t$$c5))!--, * RJw$ G "r   zCFF CFF2cffc           
         UR                  5         UR                  S   n[        USS 5      nUb  UR                  OS n[	        5       nUR                  5        GH  nX8   n	U	R                  n
U	R                   H  nU
R                  U5      u  pUR                  UR                  5        [        R                  " UR                  US9nU H  u  nnUS:X  a  M  [        U U5        M     [        R                  " U5      UR                  S S & M     S HR  n[        XBS 5      nUc  M  [!        U["        5      (       a  [        U U5        M7  [%        XBU R'                  U5      5        MT     [)        S5       H$  nUR*                  U==   U R,                  -  ss'   M&     U H\  nS HS  n[        UUS 5      nUc  M  [!        U["        5      (       a  [        U U5        M8  [%        UX R'                  U5      5        MU     M^     GM     g )Nr   VarStore)getNumRegionsvsindex)UnderlinePositionUnderlineThicknessFontBBoxStrokeWidth   )

BlueValues
OtherBluesFamilyBluesFamilyOtherBluesStdHWStdVW	StemSnapH	StemSnapVdefaultWidthXnominalWidthX)desubroutinizetopDictIndexrk   r   setr   CharStringscharsetgetItemAndSelectoraddprivatecffSpecializerprogramToCommandsprogramr   commandsToProgramr   r   rU   r   range
FontMatrixr   )rV   rW   rX   r   topDictvarStorer   privatesfontnamerx   csr`   c_commandsopr   rY   rs   r   s                       r   rZ   rZ      s    q!Gw
D1H.6.BH**MuHHHJ}A((+DALL#%77		H %D?7D) % *;;HEAIIaL 
D G40E}%&&7E*w}}U';<
 qAq!W%8%88!   G  t4=eT**w.GT==+?@+  G r   c                     UR                    H*  n[        U5       H  u  p4U R                  U5      X#'   M     M,     UR                  5         g r   )r   rq   r   calculateNumShorts)rV   r   itemrs   r   s        r   rZ   rZ   H  s>    dODAmmA&DG $   r   c                 X   SUs=::  a  S::  a)  O  O&[         R                  R                  U l        Xl        g [         R
                  " 5       nUR                  5         S=Ul        =Ul        =Ul	        Ul
        U=Ul        Ul        [         R                  R                  U l        X l        g )N   r   )r   PaintFormatPaintScaleUniformFormatr   	Affine2x3populateDefaultsr   yxdxdyxxyyPaintTransform	Transform)paintr   r   s      r   _setup_scale_paintr  S  s    	U#m#++==""$I @AAILA9<A),"''IL9<''66ELOr   c                     UR                   n[        R                   " 5       n[        X0R                  5        X#l         X1l         g)NT)Paintr   r  r   )rV   recordoldPaintr   s       r   rZ   rZ   b  s2    ||HNNEu112KLr   c                 b   UR                   [        R                  R                  :w  a  g[        R                  " 5       nUR                   Ul         UR                  Ul        UR
                  Ul        U?U?[        USU R                  -  5        X!l        U R                  UR                  5        g)NTrw   F)	r   r   r   
PaintGlyphr  Glyphr  r   rZ   )rV   r  newPaints      r   rZ   rZ   o  s    ||x++666~~HllHO[[HN[[HNua'"5"556KMM(..!r   c                 ^    U S   R                   n[        X-  5      nUR                  U 5        g)z1Change the units-per-EM of font to the new value.r!   N)r"   r   rZ   )rx   new_upemupemrV   s       r   r
   r
     s)    <""DHO,GMM$r   c                    U c  SSK nUR                  SS n SSKJn  SSKJn  SSKnUR                  SS S9nUR                  SSS	S
9  UR                  SSSS
9  UR                  SSSSS9  UR                  U 5      nU" UR                  5      n[        UR                  5      nUR                  b  UR                  OU" UR                  SSS9n	[        Xx5        [        SU	-  5        UR!                  U	5        g)z Change the units-per-EM of fontsNr   rw   )TTFont)makeOutputFileNamezfonttools ttLib.scaleUpem)descriptionrx   z
Font file.)metavarhelpr  znew-upemzNew units-per-EM integer value.z--output-filepathzOutput file.)r  defaultr  Tz-scaled)	overWritesuffixz
Writing %s)sysargvfontTools.ttLibr  fontTools.misc.cliToolsr  argparseArgumentParseradd_argument
parse_argsrx   intr  output_filer
   printsave)
r   r  r  r  r  parseroptionsrx   r  r!  s
             r   mainr&    s    |xx|&:$$#1S % F \B
J-N   N   %G',,D7##$H * 	YO  t	,
$%IIkr   __main__r   )1__doc__fontTools.ttLib.ttVisitorr   r  ttLibfontTools.ttLib.tables.otBasetablesotBasefontTools.ttLib.tables.otTablesr   fontTools.cffLibr   fontTools.cffLib.specializercffLibspecializerr   fontTools.varLibr   fontTools.varLib.multiVarStorer   fontTools.misc.vectorr   fontTools.misc.fixedToolsr   fontTools.misc.iterToolsr	   __all__r   register_attrsgetTableClassValueRecordAnchor
CaretValue	BaseCoordMathValueRecordClipBoxrZ   register_attrr   registerVarDatar  BaseGlyphPaintRecordr  r
   r&  r   r  exitr    r   r   <module>rF     si  
 0  . . 2 2 ) 5 5 $ E ( - , 
)-I - 			V	$&TU			V	$&QR			V	$';='		
 '		
 '	
0   @	
 
89			|-			l,		!	!G-			;<{>@B-C@B- 
 %"5"5f"=>	@@ U008:JK= L=
 U008(CD DD& U008,G
L H
L U008'BU/ CU/p U008,G7 H7! 
 %"5"5f"=>?A?AJ (()! *!  556	 7	 ' (&$N zHHTV r   