+
    f7i^  c                   s   ^ RI HtHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ]P,                  t]]P.                  n        R	 t ! R
 R]4      tR]/R lt]]P:                  n        R t]]P@                  n!        R t"]"]P.                  n#         ! R R]4      t$RR]%! 4       3RR/R llt&]&]P.                  n'        RRRR/R lt(](]P.                  n)        R t*R t+R t,],]PZ                  n.        ],]P^                  n.        R t0R t1]1]PZ                  n2        ]1]P^                  n2         ! R R]4      t3 ! R R ]44      t5R%R! lt6]6]P.                  n7        R&R# lt8]9R$8X  dd   ^ R"I:t:];! ]:Px                  4      ^8  d   ]:Pz                  ! ]8! 4       4       ^ R"I>t>]:Pz                  ! ]>P~                  ! 4       P                  4       R"# R"# )'    )noRoundotRound	bit_count)otTables)supportScalar)buildVarRegionListbuildVarStorebuildVarRegionbuildVarData)partial)defaultdict)heappushheappopc                 sL    \        \        V P                  4       R  R7      4      # )c                 s    V ^ ,          # r     )Zkv   &@/usr/lib64/python3.14/site-packages/fontTools/varLib/varStore.pyZ<lambda>Z!_getLocationKey.<locals>.<lambda>   s    BqE    key)tuplesorteditems)Zlocr   r   _getLocationKeyr      s    		)9:;;r   c                   s~   a  ] tR t^t o R tR tR tRR ltRR ltR]	/R lt
R]	/R ltR]	/R	 ltR]	/R
 ltRtV tR# )OnlineVarStoreBuilderc                s    Wn         / V n        \        . V4      V n        \	        V P                  . 4      V n        R V n        R V n        R V n        / V n	        / V n
        R V n        R # N)	_axisTags
_regionMapr   _regionListr   _store_data_model	_supports_varDataIndices_varDataCaches_cache)selfZaxisTags   &&r   __init__ZOnlineVarStoreBuilder.__init__   s]    !-b(;#D$4$4b9
! r   c                sH    V P                  VP                  4       Wn        R # r   )setSupportssupportsr!   )r&   Zmodelr'   r   setModelZOnlineVarStoreBuilder.setModel%   s    (r   c                s    R V n         \        V4      V n        V P                  '       d'   V P                  ^ ,          '       g   V P                  ^  R V n        R V n        R # r   )r!   listr"   r%   r    )r&   r*   r'   r   r)   Z!OnlineVarStoreBuilder.setSupports)   sE    h>>>$.."3"3q!
r   c                sd   \        V P                  P                  4      V P                  n        \        V P                  P
                  4      V P                  n        V P                  P
                   F/  p\        VP                  4      Vn        VP                  VR 7       K1  	  V P                  # )optimize)
lenr   RegionRegionCountr   VarDataVarDataCountItem	ItemCountcalculateNumShorts)r&   r.   data   && r   finishZOnlineVarStoreBuilder.finish1   s|    '*4+;+;+B+B'C$#&t{{':':#; KK''D ^DN##X#6 ( {{r   c                s   V P                   pV P                  pV P                  p. pV F}  p\        V4      pVP	                  V4      pVfJ   \        W`P                  4      p	\        VP                  4      ;qV&   VP                  P                  V	4       VP                  V4       K  	  \        V4      pV P                  P	                  V4      p
V
en   Wn        V P                  P                  V
,          V n        V P                   V,          V n        \        V P                  P$                  4      V,           R8  d   R p
V
f   \'        V. RR7      V n        \        V P                  P                  4      V n        V P                  P                  P                  V P                  4       V P                  V P                  V&   WpP                   9  d   / V P                   V&   V P                   V,          V n        R # R # )N  Fr-   )r   r   r"   r   getr	   r   r/   r0   appendr   r#   _outerr   r2   r    r$   r%   r4   r
   )r&   Z	num_items	regionMap
regionListregionsregionIndicesZregionr   ZidxZ	varRegionZ
varDataIdxs   &&         r   _add_VarDataZ"OnlineVarStoreBuilder._add_VarData9   s   OO	%%
..F!&)C--$C{*6>>B	'*:+<+<'==n!!((3  %  M"))--c2
!$K,,Z8DJ--c2DK4::??#i/&8!
%mR%HDJdkk112DKKK&&tzz2(,D  %---+-##C(--c2DK r   roundc               s    V P                   P                  WR 7      pVP                  ^ 4      pW@P                  V\        R 7      3# rC   )r!   	getDeltaspopstoreDeltasr   )r&   master_valuesrC   deltasZbases   &&$  r   storeMastersZ"OnlineVarStoreBuilder.storeMasters\   s?    &&}&Bzz!}%%fG%<<<r   c               s    V Uu. uF  pV P                   P                  W2R 7      NK!  	  ppV Uu. uF  qUP                  ^ 4      NK  	  ppW`P                  V\        R 7      3# u upi u upi rD   )r!   rF   rG   storeDeltasManyr   )r&   Zmaster_values_listrC   rI   deltas_listrJ   Z	base_lists   &&$    r   storeMastersManyZ&OnlineVarStoreBuilder.storeMastersManya   su     "4
!3 KK!!-!=!3 	 
 2==vZZ]	=..{'.JJJ
 >s
   %A#A(c               s   V Uu. uF
  q2! V4      NK  	  pp\        V4      \        V P                  4      ^,           8X  d   \        VR,          4      pM0\        V4      \        V P                  4      8X  g   Q h\        V4      pV P                  '       g   V P	                  4        V P
                  P                  V4      pVe   V# \        V P                  P                  4      pVR8X  d(   V P	                  4        V P                  V\        R7      # V P                  P                  V\        R7       V P                  ^,          V,           pW@P
                  V&   V# u upi )   rO   NNr:   rE   )r/   r"   r   r    rB   r%   r;   r4   rH   r   addItemr=   )r&   rJ   rC   dvarIdxinner   &&$   r   rH   Z!OnlineVarStoreBuilder.storeDeltasi   s   $*+Fq%(F+v;#dnn-116":&Fv;#dnn"55556]Fzzz(MDJJOO$F?##F'#::

61++#u,$F/ ,s   Ec          
     sB   V UUu. uF  q3 Uu. uF
  qB! V4      NK  	  upNK  	  ppp\         ;QJ d    . R  V 4       F  NK  	  5M! R  V 4       4      pV P                  '       g   V P                  \        V4      4       V P                  P                  V4      pVe   V# \        V P                  P                  4      pV\        V4      ,           R8  d2   V P                  \        V4      4       V P                  V\        R7      # \        V4       FU  w  rsV P                  P                  V\        R7       V P                  ^,          V,           V,           pWPP                  V&   KW  	  V P                  ^,          V,           pWPP                  V&   V# u upi u uppi )c              3   s8   "   T F  p\        V4      x  K  	  R # 5ir   )r   )Z.0rJ      & r   Z	<genexpr>Z8OnlineVarStoreBuilder.storeDeltasMany.<locals>.<genexpr>   s     DfE&MMs   r:   rE   )r   r    rB   r/   r%   r;   r4   rL   r   	enumeraterQ   r=   )r&   rM   rC   rJ   rR   rS   rT   is   &&$     r   rL   Z%OnlineVarStoreBuilder.storeDeltasMany   sG   @KLf&1&Qa&1LeDDeeDDDzzzc+./-MDJJOO$3{##f,c+./''7'CC";/IAJJvW5kkR'5014F"(KK	 0 ++#u,#)K 1 2Ls   FFFF)r   r%   r    r!   r=   r   r   r   r"   r$   r#   N)T)rO   )__name__
__module____qualname____firstlineno__r(   r+   r)   r9   rB   rC   rK   rN   rH   rL   __static_attributes____classdictcell__Z__classdict__   @r   r   r      sV     
!3F=5 =
KE K5 4E  r   r   rC   c                sH   V Uu. uF
  q2! V4      NK  	  ppV P                   p\        V4      pV^,           V8X  d   \        VR,          4      pMWE8X  g	   Q WE34       h\        V4      pV P                  P	                  V4       \        V P                  4      V n        R# u upi )rO   rP   N)VarRegionCountr/   r,   r4   r<   r5   )r&   rJ   rC   rR   ZcountUsZ	countThemrU   r   VarData_addItemrb      s     &'1eAhF'!!GFI{ifRj!#9g%99#fIIV^DN (s   Bc                 s    \        V P                  4       UUu/ uFL  w  r#VP                  ^ 8w  g   K  W,          P                  VP                  VP                  VP
                  3bKN  	  upp# u uppi r   )rW   ZVarRegionAxisZ	PeakCoordZaxisTagZ
StartCoordZEndCoord)r&   	fvar_axesrX   Zreg   &&  r   VarRegion_get_supportre      se       2 233FA==A 	L	s~~s}}cllKK3  s
   A/8A/c                 s,    \        V P                  4      # r   )Zboolr2   r&   r   r   VarStore___bool__rg      s    r   c                   sZ   a  ] tR t^t o / 3R ltR tR tR t]R 4       t	R t
R tRtV tR	# )
VarStoreInstancerc                s    W n         Ve   VP                  ^8X  g   Q hV'       d   VP                  M. V n        V'       d   VP                  P
                  M. V n        V P                  V4       R # r   )rc   ZFormatr2   _varDataVarRegionListr0   _regionssetLocation)r&   Zvarstorerc   locations   &&&&r   r(   ZVarStoreInstancer.__init__   sT    "8??a#777,4(("9A..55r"r   c                sF    \        V4      V n        V P                  4        R # r   )dictrm   _clearCaches)r&   rm   r'   r   rl   ZVarStoreInstancer.setLocation   s    Xr   c                s    / V n         R # r   )_scalarsrf   r   r   ro   ZVarStoreInstancer._clearCaches   s	    r   c                s    V P                   P                  V4      pVfQ   V P                  V,          P                  V P                  4      p\        V P                  V4      pW P                   V&   V# r   )rp   r;   rk   get_supportrc   r   rm   )r&   	regionIdxZscalarZsupportrd   r   
_getScalarZVarStoreInstancer._getScalar   sY    ""9->mmI.::4>>JG"4==':F'-MM)$r   c                sd    R p\        W4       F  w  r4V'       g   K  W#V,          ,          pK   	  V# )        )zip)rJ   scalarsZdeltarR   ss   &&   r   interpolateFromDeltasAndScalarsZ1VarStoreInstancer.interpolateFromDeltasAndScalars   s0    (DAUNE ) r   c                s   V^,	          VR,          r2V\         8X  d   R# V P                  pWB,          P                   Uu. uF  qPP                  V4      NK  	  ppWB,          P                  V,          pV P                  Wv4      # u upi )   r:   rt   )NO_VARIATION_INDEXri   VarRegionIndexrs   r4   rx   )r&   ZvaridxmajorminorvarDatarirv   rJ   s   &&      r   __getitem__ZVarStoreInstancer.__getitem__   st    |Vf_u''--181N1NO1N2??2&1NO$$U+33FDD Ps   Bc                s    V P                   pW1,          P                   Uu. uF  q@P                  V4      NK  	  ppV P                  W%4      # u upi r   )ri   r{   rs   rx   )r&   ZvarDataIndexrJ   r~   r   rv   s   &&&   r   interpolateFromDeltasZ'VarStoreInstancer.interpolateFromDeltas   sH    --181F1U1UV1U2??2&1UV33FDD Ws   A)rk   rp   ri   rc   rm   N)rY   rZ   r[   r\   r(   rl   ro   rs   staticmethodrx   r   r   r]   r^   r_   r`   r   rh   rh      sB     57 #  EE Er   rh   TFr2   c          	      s<   \        \        4      pV F9  pV\        8X  d   K  V^,	          pVR,          p	Wh,          P                  V	4       K;  	  ?\	        W4      p
. p\        \        /p\        V
4       EFk  w  rVP                  V4      pVf   K  \        V4      pVP                  V4       VP                  p. pV^ 8X  da   V'       dY   \        \        V4      4       F?  p	TP                  W9   d
   VV	,          M^ .\        VV	,          4      ,          4       WV	&   KA  	  MV^ 8X  d#   \        V4      \        W,
          4      ,           pM\        V4      pV FF  p	\        V4      pVP                  VV	,          4       V^,          V,           W^,          V	,           &   KH  	  VVn	        \        VP                  4      Vn        VR8X  g   EKY  VP                  VR7       EKn  	  \        WV4       \        WR,           \        V4      4       V P                  4        V# )ry   r:   r2   r-   ZCount)r   setrz   addgetattrrW   r;   r/   r<   r4   ranger   r5   r6   Zsetattrprune_regions)r&   ZvarIdxesr.   ZretainFirstMapZadvIdxesr2   ZusedrS   r|   r}   r~   Z
newVarDataZ
varDataMapr7   Z
usedMinorsZnewMajorr   ZnewItemsZminorsZnewMinors   &&&&&$              r   VarStore_subset_varidxesr      s    sD''"  	 d$GJ$&89J )XXe_
z?$		A:.s5z*$)$7E%LaS3uU|CT=T %*5!	 + z)F:3H,II
+x=e-5=^x4O
RK501  
 	TYYi##X#6; *> D:&DG#S_5r   rj   c               s   \        4       p\        W4       F  pVP                  VP                  4       K   	  \        W4      pVP                  p. p/ p\        V4       F'  p	\        V4      W&   VP                  Wi,          4       K)  	  Wun        \        VP                  4      Vn        \        W4       F*  pVP                   U	u. uF  qV	,          NK  	  up	Vn        K,  	  R# u up	i )zRemove unused VarRegions.N)	r   r   updater{   r0   r   r/   r<   r1   )
r&   r2   rj   ZusedRegionsr7   r?   r@   Z
newRegionsr>   rX   s
   &$$       r   VarStore_prune_regionsr   <  s     %K&4../ ' -JGJIK :	'*% ! # !2!23J&595H5HI5H||5HI 'Is   C$c                s   \        V 4      \        P                  8X  d   V! V 4       R# \        V \        4      '       d   V  F  p\        W!4       K  	  R# \        V R4      '       dS   \        V R4      '       gA   V P                  4        F*  p\        WP                  R4      pVf   K  \        W!4       K,  	  R# \        V \        P                  4      '       d/   V P                  P                  4        F  p\        W!4       K  	  R# R# )zmRecurse down from self, if type of an object is ot.Device,
call func() on it.  Works on otData-style classes.getConvertersZpostReadN)typeotZDeviceZ
isinstancer,   _visitZhasattrr   r   ZnameZValueRecordZ__dict__values)r&   ZfuncZthatZconvrd   r   r   r   X  s     DzRYYT
	D$		D4  
	'	'j0I0I&&(D4D1Dt" )
 
D"..	)	)MM((*D4 + 
*r   c                s    V P                   R8X  d6   VP                  V P                  ^,          V P                  ,           4       R# R# )z6Add VarIdx in this Device table (if any) to the set s.   N)DeltaFormatr   	StartSizeEndSize)r&   rw   r'   r   _Device_recordVarIdxr   n  s3    6!	t~~#t||34 "r   c                 s>    \        \        VR 7      p\        W4       R# ))rw   N)r   r   r   )r&   ZvaridxesZadderr8   r   Object_collect_device_varidxesr   t  s    (H5E
4r   c                s   \        V 4      V9   d   R# VP                  \        V 4      4       V P                  R8X  dI   WP                  ^,          V P                  ,           ,          pV^,	          V n        VR,          V n        R# R# )z9Map VarIdx in this Device table (if any) through mapping.Nr   r:   )Zidr   r   r   r   )r&   mappingdonerS   s   &&& r   _Device_mapVarIdxr   }  sd    	$x4HHRX6!..B.$,,>?2 "r   c                 sP    \        \        V\        4       R 7      p\        W4       R# ))r   r   N)r   r   r   r   )r&   Zvaridxes_mapZmapperr8   r   Object_remap_device_varidxesr     s    &35IF
4r   c                   s^   a  ] tR tRt o R tR tR tR t]R 4       t	]R 4       t
R tR	tV tR
# )	_Encodingi  c                s    Wn         \        V4      V n        V P                  V4      V n        V P                  V P                  4      V n        \        4       V n        R # r   )	charsr   width_columnscolumns_characteristic_overheadoverheadr   r   )r&   r   r'   r   r(   Z_Encoding.__init__  sB    
u%
}}U+55dllCU
r   c                <    V P                   P                  V4       R # r   )r   r   )r&   rowr'   r   r<   Z_Encoding.append  s    

sr   c                r   r   )r   r   )r&   Zlstr'   r   extendZ_Encoding.extend  s    

#r   c                s2    V P                   V P                  3# r   )r   r   rf   r   r   width_sort_keyZ_Encoding.width_sort_key  s    zz4::%%r   c                s<    ^
pV\        V 4      ^,          ,          pV# )zGReturns overhead in bytes of encoding this characteristic
as a VarData.r   )r   ZcrV   r   r   Z"_Encoding._characteristic_overhead  s"     	Yw!##r   c                st    ^ p^pV '       d,   V ^,          '       d	   W,          pV ^,          p V^,          pK3  V# r   r   )r   ZcolsrX   s   &  r   r   Z_Encoding._columns  s6    v~~	aKE!GAr   c                s   VP                   V P                   ,          p\        V4      pV P                  VP                  ,          p\        P	                  V4      pV P
                  5VP
                  ,           V,
          W0P                  ,
          \        V P                  4      ,          ,
          W1P                  ,
          \        VP                  4      ,          ,
          pV# r   )	r   r   r   r   r   r   r   r/   r   )r&   other_encodingcombined_charsZcombined_widthZcombined_columnsZcombined_overheadZcombined_gains   &&     r   gain_from_mergingZ_Encoding.gain_from_merging  s    '--

:">2<<.*@*@@%>>?OP]]N%%&  

*c$**o=>  4 44N<P<P8QQ	R 	 r   )r   r   r   r   r   N)rY   rZ   r[   r\   r(   r<   r   r   r   r   r   r   r]   r^   r_   r`   r   r   r     sK     &     r   r   c                   s<   a  ] tR tRt o R tR t]R 4       tRtV t	R# )_EncodingDicti  c                s$    \        V4      ;q V&   V# r   )r   )r&   r   Zrr8   r   __missing__Z_EncodingDict.__missing__  s    #E**Kr   c                sV    V P                  V4      pW,          P                  V4       R # r   )_row_characteristicsr<   )r&   r   r   r8   r   add_rowZ_EncodingDict.add_row  s"    ))#.3r   c                sj   Rp^ p^pV  FQ  pV'       d	   W#,          pRTu;8:  d   ^8:  g   M W#^,          ,          pRTu;8:  d   R8:  g   M Rp MV^,          pKS  	  V'       dN   ^ p^pV  FC  pV'       d   W#^,          ,          pRTu;8:  d   R8:  g   M W#^,          ,          pV^,          pKE  	  V# )z+Returns encoding characteristics for a row.Fi  Tii r   )r   Z	longWordsr   rX   vs   &    r   r   Z"_EncodingDict._row_characteristics  s     	A
A$$V#a(5( 	!GA  EAZ'E!,u,Z'Ea  r   r   N)
rY   rZ   r[   r\   r   r   r   r   r]   r^   r_   r`   r   r   r     s#        r   r   c           
     sF
   \        V P                  P                  4      p^ .V,          p/ p\        4       p\	        V P
                  4       EF  w  rxVP                  p	\	        VP                  4       F  w  r\        V4      pV^8X  d*   \        W4       F  w  rW;;,          V,          uu&   K  	  M>\        W4       F/  w  rW;;,          \        W,          4      V,          ,          uu&   K1  	  \        V4      pV'       d&   \        V4      '       g   RWW^,          V
,           &   K  VP                  V4       WV^,          V
,           &   K  	  EK  	  \        VP                  4       \         P"                  R7      p?. p\	        V4       F\  w  pp\%        V^,           \        V4      4       F6  pVV,          pVP'                  V4      pV^ 8  g   K&  \)        VV) VV34       K8  	  K^  	  V'       Ed8   \+        V4      w  pppVV,          e   VV,          f   K0  VV,          VV,          ppRRuVV&   VV&   VP,                  VP,                  ,          p\!        V4      pVP/                  VP0                  4       VP/                  VP0                  4       \	        V4       Fr  w  ppVf   K  VP,                  V8X  d#   VP/                  VP0                  4       RVV&   K?  VP'                  V4      pV^ 8  g   KY  \)        VV) V\        V4      34       Kt  	  VP3                  V4       EK@  V Uu. uF  pVf   K	  VNK  	  pp/ pVP5                  \         P"                  R7       . V n        V F  p\        VP0                  4      pV'       g   K"  \        V P
                  4      p\6        P
                  ! 4       pV P
                  P3                  V4       \%        V4      Vn        \        VP                  4      Vn        VR,          VR,          uVn        p\	        VP                  4       F  w  rV^,          V
,           VV&   K  	  K  	  \:        \:        /pVP1                  4        F  w  ppVe
   VV,          M\:        VV&   K  	  \        V P                  P                  4      V P                  n        \        V P
                  4      V n        V P
                   F-  p\        VP                  4      Vn         VPC                  4        K/  	  V PE                  4        V# u upi )z@Optimize storage. Returns mapping from old VarIdxes to new ones.Nr   :Nr:   N:r:   NN)#r/   rj   r0   r   rW   r2   r{   r4   r,   ru   rC   r   Zanyr   r   r   r   r   r   r   r   r   r   r   r   r<   Zsortr   ra   rz   r1   r3   r5   r.   r   )r&   Zuse_NO_VARIATION_INDEXquantizationZnZzeroesZfront_mappingZ	encodingsr|   r7   rA   r}   Zitemr   rr   r   ZtodoZheaprX   ZencodingZjr   Zcombining_gainZ_r   Zcombined_encodingZkZencZback_mappingr   
varidx_maps   &&&                           r   VarStore_optimizer     s;   X 	D%%&AS1WFMI !.++$TYY/KEv,Cq $'$<LINa'N %= %($<LINa./,>N %=
 *C%c#hh7;{e34c"365B;%/0' 0 /2 )""$)*B*BCD D 8q1uc$i(A!!WN%77GN!A67	 ) ' $$-1a7?d1go#'7DG.Qa (-->%n5  0  !5!56oFAs{ yyN*!((3Q.@@EN!CI>? & 	%&*.G$h($IG LNNy//N0DLx~~&e%E::<DLL%"'(D"%d&9&9":D  %W~uW~DIu(3&+rkU%:T"  4 " %&89J##%1+,=Q>P
1 & &)););)B)B%CD"DLL)DTYY 
 	K Hs   /T:TNc                s   ^ RI Hp ^ RIHp ^ RIHp ^ RIHp V! R\        P                  R7      pVP                  R\        ^R7       VP                  R	4       VP                  R
RR7       VP                  V 4      pV! RR7       VP                  pVP                  pVP                  p	V! V4      p
V
R,          pVP                   P"                  pV! 4       pVP%                  W4       \'        VP)                  4       4      p\+        RV,          4       VP-                  VR7      pV! 4       pVP%                  W4       \'        VP)                  4       4      p\+        RV,          4       V	eX   VP                   P/                  V4       RV
9   d#   V
R,          P                   P/                  V4       V
P1                  V	4       R# R# )z&Optimize a font's GDEF variation store)ArgumentParser)configLogger)TTFont)OTTableWriterzvarLib.varStore)ZprogZdescriptionz--quantization)r   ZdefaultfontfileoutfileZ?)ZnargsZINFO)ZlevelGDEFzBefore: %7d bytes)r   zAfter:  %7d bytesNGPOS)Zargparser   Z	fontToolsr   ZfontTools.ttLibr   ZfontTools.ttLib.tables.otBaser   mainZ__doc__Zadd_argumentZintZ
parse_argsr   r   r   ZtableVarStoreZcompiler/   Z
getAllDataZprintr.   remap_device_varidxesZsave)Zargsr   r   r   r   ZparserZoptionsr   r   r   ZfontZgdefZstoreZwriterZsizer   s   &               r   r   r     sq   '&&;!2MF
(sA>

#
	-%G v''LHooG(D<DJJE_F	MM&v  "#D	

$%\:J_F	MM&v  "#D	

$%

((4T>L44Z@		' r   Z__main__)TrO   r   )AZfontTools.misc.roundToolsr   r   ZfontTools.misc.intToolsr   ZfontTools.ttLib.tablesr   r   ZfontTools.varLib.modelsr   ZfontTools.varLib.builderr   r   r	   r
   Z	functoolsr   Zcollectionsr   Zheapqr   r   rz   r   r   Zobjectr   rC   rb   r2   rQ   re   Z	VarRegionrq   rg   Z__bool__rh   r   r   Zsubset_varidxesr   r   r   r   r   r   Zcollect_device_varidxesr   r   r   r   r   rn   r   r   r.   r   rY   Zsysr/   ZargvZexitZdoctestZtestmodZfailedr   r   r   <module>r      s   6 - 1 1   # # ** !3 <DF DN$5 $ %

  1  ) ,E ,Er U> >B 7 JI J_ J2 3 ,5
 #A "@ '
 !=  < 0 0f%D %P~B ) )X z
388}qHHW__%%& r   