
    h                         S SK Jr  S SKJr  S rS rS rS rS r	S r
S	 rSS
 jr\\R                  l        SS jrS r\\R                  l        SS jrS rS rS rS rS rS rg)    )ttLib)otTablesc                     [         R                  " 5       nU  Vs/ s H  n[        U5      PM     snu  Ul        Ul        Ul        U$ s  snf N)otVarRegionAxisfloat
StartCoord	PeakCoordEndCoord)axisSupportselfvs      J/var/www/html/env/lib/python3.13/site-packages/fontTools/varLib/builder.pybuildVarRegionAxisr      s@    DHS5T1eAh5T2DOT^T]K 6Us   Ac                     [         R                  " 5       nXl        U Vs/ s H  n[        U5      PM     snu  Ul        Ul        Ul        U$ s  snf r   )r   SparseVarRegionAxis	AxisIndexr	   r
   r   r   )	axisIndexr   r   r   s       r   buildSparseVarRegionAxisr      sE    !!#DNHS5T1eAh5T2DOT^T]K 6Us   Ac           	        ^ [        U4S jU R                  5        5       5      (       d
   SU T45       e[        R                  " 5       n/ Ul        T H7  nUR                  R                  [        U R                  US5      5      5        M9     U$ )Nc              3   ,   >#    U  H	  oT;   v   M     g 7fr    .0tagaxisTagss     r   	<genexpr>!buildVarRegion.<locals>.<genexpr>        9.3h.   Unknown axis tag found.r   r   r   )allkeysr   	VarRegionr   appendr   get)supportr   r   r   s    `  r   buildVarRegionr*      s~    9',,.999 !< 9
 <<>DD!!"4W[[i5P"QR K    c           
      v  ^ [        U4S jU R                  5        5       5      (       d
   SU T45       e[        R                  " 5       n/ Ul        [        T5       H@  u  p4X@;  a  M  UR                  R                  [        X0R                  US5      5      5        MB     [        UR                  5      Ul
        U$ )Nc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r   r   s     r   r   'buildSparseVarRegion.<locals>.<genexpr>"   r    r!   r"   r#   )r$   r%   r   SparseVarRegionr   	enumerater'   r   r(   lenSparseRegionCount)r)   r   r   ir   s    `   r   buildSparseVarRegionr4   !   s    9',,.999 !< 9
 D!DH%  ''$QC(CD	
 & !!9!9:DKr+   c                     [         R                  " 5       n[        U5      Ul        / Ul        U  H'  nUR                  R                  [        X15      5        M)     [        UR                  5      Ul        U$ r   )r   VarRegionListr1   RegionAxisCountRegionr'   r*   RegionCountsupportsr   r   r)   s       r   buildVarRegionListr<   3   sZ    Dx=DDK>'<= 4;;'DKr+   c                     [         R                  " 5       n[        U5      Ul        / Ul        U  H'  nUR                  R                  [        X15      5        M)     [        UR                  5      Ul        U$ r   )r   SparseVarRegionListr1   r7   r8   r'   r4   r9   r:   s       r   buildSparseVarRegionListr?   =   s[    !!#Dx=DDK/BC 4;;'DKr+   c                 6    U Vs/ s H  o U   PM	     sn$ s  snf r   r   )lstmappingr3   s      r   _reorderItemrC   G   s    #$GqFG$$$s   c                    U R                   nU R                  nS/U-  nU HI  nU Vs/ s H  ofUS:  -   R                  5       PM     nn[        Xt5       Vs/ s H  n[	        U6 PM     nnMK     U V	s/ s H  o(       a  U	S-   S-	  OSPM     n
n	[        S U
 5       5      nU(       a  / nUR                  S [        U
5       5       5        UR                  S [        U
5       5       5        UR                  S [        U
5       5       5        [        X5      n
[        U R                  U5      U l	        [        U R                  5      U l         [        [        U5      5       H  n[        X6   U5      X6'   M     U(       a8  [	        S	 [        U
5       5       SS
9S-   U l        U =R                  S-  sl        O"[	        S [        U
5       5       SS
9S-   U l        [        U R                  5      U l         U $ s  snf s  snf s  sn	f )Nr         c              3   *   #    U  H	  oS :  v   M     g7f   Nr   )r   bs     r   r   -VarData_calculateNumShorts.<locals>.<genexpr>c   s     0<aE<s   c              3   :   #    U  H  u  pUS :  d  M  Uv   M     g7frI   r   r   r3   rK   s      r   r   rL   h   s     F%<TQAqq%<   	c              3   :   #    U  H  u  pUS :X  d  M  Uv   M     g7frI   r   rN   s      r   r   rL   i        G%<TQQqq%<rO   c              3   :   #    U  H  u  pUS :X  d  M  Uv   M     g7f   Nr   rN   s      r   r   rL   j   rQ   rO   c              3   :   #    U  H  u  pUS :  d  M  Uv   M     g7frI   r   rN   s      r   r   rL   t        @6tq!a%6rO   )defaultrT      c              3   :   #    U  H  u  pUS :  d  M  Uv   M     g7frS   r   rN   s      r   r   rL   y   rV   rO   )VarRegionCountItem
bit_lengthzipmaxanyextendr0   rC   VarRegionIndexr1   range	NumShorts)r   optimizecountitemsbit_lengthsitemr3   blpairrK   byte_lengths	longWordsrB   s                r   VarData_calculateNumShortsrm   K   s   EIIE#+K 4884aAF|'')48.1".BC.BdsDz.BC " 9DD1aa!e\Q.LD 0<00IFY|%<FFGY|%<GGGY|%<GG#L:*4+>+>H!$"5"56s5z"A#EHg6EH # @y6@"MPQQ 	 	&  @y6@"MPQQ 	 d112DKQ 9C Es   G4G92G>c                     [        XS9$ )zDeprecated name for VarData_calculateNumShorts() which
defaults to optimize=True.  Use varData.calculateNumShorts()
or varData.optimize().rd   rm   )r   rd   s     r   VarData_CalculateNumShortsrq      s     &d>>r+   c                     [        U SS9$ )NTro   rp   )r   s    r   VarData_optimizers      s    %dT::r+   c                 ^   [         R                  " 5       n[        U 5      Ul        [	        UR                  5      =oCl        / =oSl        U(       a4  U H.  n[	        U5      U:X  d   eUR                  [        U5      5        M0     [	        UR                  5      Ul        UR                  US9  U$ )Nro   )
r   VarDatalistra   r1   rZ   r[   r'   	ItemCountcalculateNumShorts)varRegionIndicesrf   rd   r   regionCountrecordsrh   s          r   buildVarDatar|      s    ::<D/0D(+D,?,?(@@K%GiDt9+++NN4:&  ^DNX.Kr+   c                     [         R                  " 5       nSUl        Xl        [	        U5      Ul        [        UR
                  5      Ul        U$ NrT   )r   VarStoreFormatr6   rv   ru   r1   VarDataCount)varRegionListvarDataListr   s      r   buildVarStorer      s<    ;;=DDK&$DLDLL)DKr+   c                 N   [         R                  " 5       nSUl        [        U 5      Ul        [        UR                  5      =o2l        / =oBl        U(       a4  U H.  n[        U5      U:X  d   eUR                  [        U5      5        M0     [        UR                  5      Ul	        U$ r~   )
r   MultiVarDatar   rv   ra   r1   rZ   r[   r'   rw   )ry   rf   r   rz   r{   rh   s         r   buildMultiVarDatar      s    ??DDK/0D(+D,?,?(@@K%GiDt9+++NN4:&  ^DNKr+   c                     [         R                  " 5       nSUl        Xl        [	        U5      Ul        [        UR
                  5      Ul        U$ r~   )r   MultiVarStorer   r>   rv   r   r1   MultiVarDataCount)r   multiVarDataListr   s      r   buildMultiVarStorer      sC    DDK,-.D !2!23DKr+   c                     [         R                  " 5       n[        X5       VVs0 s H  u  p4X4_M	     snnUl        U$ s  snnf r   )r   	VarIdxMapr]   rB   )varIdxes
glyphOrderr   gr   s        r   buildVarIdxMapr      s9    <<>D%(%>?%>TQAD%>?DLK @s   =c                     [        U 5      n[        S [        U5       5       5      (       a  g [        R                  " 5       nXl        [        U5      S:  a	  SUl        U$ SUl        U$ )Nc              3   .   #    U  H  u  pX:H  v   M     g 7fr   r   )r   r3   r   s      r   r   (buildDeltaSetIndexMap.<locals>.<genexpr>   s     
10da160s     rT   r   )rv   r$   r0   r   DeltaSetIndexMaprB   r1   r   )r   rB   r   s      r   buildDeltaSetIndexMapr      s\    8nG

1i0
111 DL7|f,!DKK 34DKKr+   c                 f    [         R                  " 5       nSUl        U S-	  Ul        U S-  Ul        U$ )NrX      r   )r   DeviceDeltaFormat	StartSizeEndSize)varIdxr   s     r   buildVarDevTabler      s0    99;DDr\DNF?DLKr+   N)F)T)	fontToolsr   fontTools.ttLib.tablesr   r   r   r   r*   r4   r<   r?   rC   rm   ru   rx   rq   rs   rd   r|   r   r   r   r   r   r   r   r+   r   <module>r      s}     1

$%2j !;

 ?; '

 r+   