+
    f7iC/  c                   sV   ^ RI HtHtHtHtHt ^ RIHt ^RIH	t	H
t
HtHtHtHtHtHtHtHtHtHtHtHt ^ RIt^ RIHt ^ RIHt ^ RIt]P:                  ! ]4      tRt ]PB                  ! ]! R]R	.4      4      t"]! R
]R	.4      t#]PB                  ! ]#4      t$]PB                  ! R4      t%Rt&RPO                  ]&PQ                  4       4      t&]PB                  ! ]&4      t)]PB                  ! ]! R]R.4      4      t* ! R R]+4      t, ! R R]+4      t- ! R R].4      t/ ! R R]	4      t0R t1RR lt2R# )    )bytechrbyteord	bytesjointobytestostr)eexec)PSOperatorsps_StandardEncodingps_array
ps_booleanps_dict
ps_integer
ps_literalps_markps_nameps_operatorps_procedureps_procmarkps_real	ps_stringN)Callable)
whitespaces	   ()<>[]{}%s   [s   ]*s   [^][(){}<>/%s   %[^
]*sf   
	\(
		(
			(
				[^()]*   \   [()]
			)
			|
			(
				[^()]*  \(   [^()]*  \)
			)
		)*
		[^()]*
	\)
    s   <[s   0-9A-Fa-f]*>c                   s    ] tR t^7tRtR# )PSTokenError N__name__
__module____qualname____firstlineno____static_attributes__r   r   ;/usr/lib64/python3.14/site-packages/fontTools/misc/psLib.pyr   r   7       r   r   c                   s    ] tR t^;tRtR# )PSErrorr   Nr   r   r   r    r"   r"   ;   r!   r   r"   c                   s   a  ] tR t^?t o R
R ltRR ltR t]]]	P                  ]P                  ]P                  ]P                  3R lt]P                  3R ltR tR tRtV tR	# )PSTokenizerc                sp    \        V4      pWn        \        V4      V n        ^ V n        RV n        W n        R# )r    FN)r   buflenposclosedencoding)selfr$   r(   s   &&&r    __init__ZPSTokenizer.__init__@   s.    cls8 r   c                s    V P                   '       d   \        R4      hVe   V^ 8  d   V P                  pM'\        V P                  V,           V P                  4      pV P
                  V P                  V pW n        V# )zRead at most 'n' bytes from the buffer, or less if the read
hits EOF before obtaining 'n' bytes.
If 'n' is negative or omitted, read all data until EOF is reached.
zI/O operation on closed file)r'   
ValueErrorr%   Zminr&   r$   )r)   ZnZnewposZr   &&  r    readZPSTokenizer.readI   sc    
 ;;;;<<9AXXFAtxx0FHHTXX'r   c                sD    V P                   '       g   R V n         V =V =R# R# )TN)r'   r$   r&   r)      &r    closeZPSTokenizer.closeX   s     {{{DK$( r   c                sD   V P                  4        V P                  V P                  8  d   R# V P                  pV P                  p\	        \        W,          4      4      p	W9   d   V	R9   d   Rp
T	pEMV	R8X  d    Rp
V! W4      P                  4       w  rWV pMV	R8X  d8   Rp
V! W4      pVf   \        RV,          4      hVP                  4       w  rWV pMV	R8X  d8   R	p
V! W4      pVf   \        R
V,          4      hVP                  4       w  rWV pMa\        RV,          4      hV	R8X  d   Rp
V! W^,           4      pM
Rp
V! W4      pVf   \        RV,          4      hVP                  4       w  rWV pWq! V4      ,           V n        \        WP                  R7      pW3# )Ns   {}[]
do_specials   %
do_comments   (	do_stringzbad string at character %ds   <do_hexstringzbad hexstring at character %dzbad token at character %ds   /
do_literal r(   )NN)
	skipwhiter&   r%   r$   r   r   spanr   r   r(   )r)   r%   
ps_specialZstringmatchZhexstringmatchZcommentmatchZendmatchr&   r$   Zchar	tokentypetoken_nextposms   &&&&&&&        r    getnexttokenZPSTokenizer.getnexttoken]   s    	88txxhhhhwsx()w(	(	)#388:
('	)9&'Cc'IJJVVX
(*	"3,9&'F'LMMVVX
("#>#DEEt|(	S'*	S&y"#>#DEEJAG$EU#emm4r   c                sl    V! V P                   V P                  4      P                  4       w  r#W0n        R # N)r$   r&   r9   )r)   Z
whitematchr=   r>   r,   r    r8   ZPSTokenizer.skipwhite   s&    $((388:
r   c                s   V P                   ^,           V n         V P                  V P                   R V n        \        P                  ! V P                  R4      w  V n        p\        V P                  4      V n        ^V n         R# )   Niq  )r&   r$   dirtybufr   Zdecryptr%   )r)   ZR   & r    
starteexecZPSTokenizer.starteexec   sW    88a<,mmDMM59!txx=r   c                sT    \        V R 4      '       g   R# V P                  V n        V =R# )rC   N)ZhasattrrC   r$   r.   r/   r    	stopeexecZPSTokenizer.stopeexec   s"    tZ((==Mr   )r$   r'   rC   r(   r%   r&   N)r   ascii))r   r   r   r   r*   r-   r0   r%   r:   stringREZmatchhexstringRE	commentREendofthingREr@   skipwhiteREr8   rE   rF   r   __classdictcell__Z__classdict__   @r    r#   r#   ?   sa     !# NN"((__##5 n $/#4#4  r   r#   c                   s   a  ] tR t^t o RR ltR tR t]3R ltR t	R t
R t]]]]]3R ltR	 tR
 tR tR tR tR tR tR tR tRtV tR# )PSInterpreterc                s    / p/ pWn         W#.V n        . V n        ^ V n        \	        4       V n        V P                  4        R# )r    N)r(   	dictstackstack	proclevelr   procmarkfillsystemdict)r)   r(   
systemdictZuserdictr,   r    r*   ZPSInterpreter.__init__   s>    
 $/
#r   c                s>   V P                   ^ ,          p\        4       ;VR&   ;VR&   V n        \        RV P                  4      VR&   \        ^4      VR&   \        ^ 4      VR&   \        \        4      VR&   \        / 4      VR&   V P                  WP                  4       R# )	r    [mark]ZtrueZfalseZStandardEncodingFontDirectoryN)rR   r   rY   r   do_makearrayr
   r	   r   r   suckoperatorsZ	__class__)r)   rW   rD   r    rV   ZPSInterpreter.fillsystemdict   s    ^^A&
;B9D
3D*V,ty%c4+<+<=
3']
6(m
7)12E)F
%&&-bk
?#:~~6r   c                s   \        V4       FL  p\        W4      p\        V\        4      '       g   K&  VR ,          R8X  g   K6  VR,          p\	        W44      W&   KN  	  VP
                   F  pV P                  W4       K  	  R# ):N   NZps_:r^   NNN)ZdirgetattrZ
isinstancer   r   Z	__bases__r]   )r)   rW   ZklassnameZattrZ	baseclasss   &&&   r    r]   ZPSInterpreter.suckoperators   sf    JD4&D$))d2h%.?Bx#.t#:
 	 
 Iz5 )r   c           	     s   \        WP                  4      ;q0n        VP                  pV P                  pV P
                  p  V! 4       w  rxV'       g   M1V'       d   V! W4      p	V	! V4      p
MV! V4      p
V
f   K:  V! V
4       KD  VP                  4        RV n        R#    T P                  e   \        P                  RT P                  P                  T P                  P                  ^2,
          T P                  P                   T P                  P                  T P                  P                  T P                  P                  ^2,            4       h ; i)rB   Nz/ps error:
- - - - - - -
%s
>>>
%s
- - - - - - -)r#   r(   	tokenizerr@   do_tokenhandle_objectr0   logZdebugr$   r&   )r)   datar_   ra   r@   rb   rc   r;   r<   Zhandlerobjects   &&&        r    	interpretZPSInterpreter.interpret   s   %0}}%EE	N --==**	#/> 	%d6G$U^F%e_F%!&)OO!DN	~~)		$ NN&&t~~'9'9B'>ASASTNN&&t~~'9'9DNN<N<NQS<ST	 s   B B ;!B B4Ec                s   V P                   '       g   VP                  '       g   VP                  R 8X  g   VP                  R8w  d   V P                  VP                  4      pVP                  '       d   V P                  V4       R# VP                  R 8X  d   V P                  V4       R# VP                  4        R# V P                  V4       R# )proceduretypeZoperatortypeN)rT   Zliteraltyperesolve_namevaluepushcall_procedureZfunctionr)   rf      &&r    rc   ZPSInterpreter.handle_object   s    &...FKK?4R{{n,**6<<8~~~		&!;;/1''/OO%IIfr   c                sT    V P                   pVP                   F  pV! V4       K  	  R # rA   )rc   rk   )r)   procrc   itemr,   r    rm   ZPSInterpreter.call_procedure   s#    **JJD$ r   c                s    V P                   p\        \        V4      ^,
          RR4       F!  pWV,          9   g   K  W#,          V,          u # 	  \        R\	        V4      ,           4      h)rB   zname error: rH   )rR   ranger%   r"   Zstr)r)   r`   rR   ir,   r    rj   ZPSInterpreter.resolve_name   sT    NN	s9~)2r2A|# |D)) 3 ns4y011r   c                s    V! V4      pV! V4      #   \         \        3 d     T! T4      pT! T4      u #   \         \        3 ds    R T9   d_   TP                  R 4      p T! TRT 4      p	T! Y^,           R T	4      pT! T4      u u #   \         \        3 d    T! T4      u u u # i ; iT! T4      u u # i ; ii ; i)Z#N)r+   ZOverflowErrorZfind)
r)   r<   intfloatr   r   r   ZnumZhashposZbases
   &&&&&&&   r    rb   ZPSInterpreter.do_token   s    	#e*C& c?"% M* 	$$El s|# . *%<#jjoG/"5'?3!%!"6=  *#. '6 .&u~-.
 #5>)*	$sY    B=6B=)B9 B	=B9B=	B)"B9$B=(B))B94B=8B99B=c                s    R # rA   r   r)   r<   ro   r    r2   ZPSInterpreter.do_comment  s    r   c                s&    \        VR ,          4      # ):rB   NN)r   rv   ro   r    r5   ZPSInterpreter.do_literal!  s    %)$$r   c                s    \        V^R 4      # )rB   rH   )r   rv   ro   r    r3   ZPSInterpreter.do_string$  s    q%%r   c                sX   R P                  V^R P                  4       4      p\        V4      ^,          '       d
   VR,           p. p\        ^ \        V4      ^4       F0  pVP	                  \        \        W$V^,            ^4      4      4       K2  	  R P                  V4      p\        V4      # )r6   Z0rH   )joinsplitr%   rr   appendZchrrt   r   )r)   r<   ZhexStrZcleanstrrs   s   &&   r    r4   ZPSInterpreter.do_hexstring'  s    q**,-v;??c\Fq#f+q)AOOCFq1u$5r :;< *778$""r   c                s   VR 8X  d%   V P                   ^,           V n         V P                  # VR8X  dk   . p V P                  4       pW0P                  8X  d   MVP                  V4       K5  V P                   ^,
          V n         VP	                  4        \        V4      # VR8X  d   V P                  # VR8X  d   \        R4      # \        R4      h)Z{Z}rX   rZ   zhuh?)	rT   rU   popry   reverser   rY   r   r   )r)   r<   rp   	topobjectr,   r    r1   ZPSInterpreter.do_special1  s    C<!^^a/DN== c\D HHJ	-I&!^^a/DNLLN%%c\99c\3<v&&r   c                s<    V P                   P                  V4       R # rA   )rS   ry   rn   ro   r    rl   ZPSInterpreter.pushF  s    

&!r   c                s    V P                   pV'       g   \        R 4      hVR,          pV'       d8   VP                  V9  d'   \        R\        V4      : RVP                  : 24      hVR V# )zstack underflowztypecheck, expected z, found rH   )rS   r"   ri   Zrepr)r)   ZtypesrS   rf   s   &*  r    rz   ZPSInterpreter.popI  s]    

+,,r{{%':>u+v{{S  "Ir   c                s    . p V P                  4       pW P                  8X  d   MVP                  V4       K5  VP                  4        V P	                  \        V4      4       R# )rB   N)rz   rY   ry   r{   rl   r	   )r)   Zarrayr|   s   &  r    r\   ZPSInterpreter.do_makearrayV  sG    
III%LL#		(5/"r   c                s    V = V =R# )zRemove circular references.N)rS   rR   r.   r/   r    r0   ZPSInterpreter.close`  s    JNr   )rR   r(   rY   rT   rU   rS   ra   NrG   )r   r   r   r   r*   rV   r]   r_   rg   rc   rm   rj   rt   ru   r   r   r   rb   r2   r5   r3   r4   r1   rl   rz   r\   r0   r   rN   rO   rP   r    rQ   rQ      sv     76 '. B 
2 #>%&#'*"# r   rQ   c                 s   \        V P                  4      pV\        8X  d5   / pV P                  P                  4        F  w  r4\	        V4      W#&   K  	  V# V\
        8X  d   R .\        V P                  4      ,          p\        \        V P                  4      4       F!  p\	        V P                  V,          4      W%&   K#  	  V P                   R8X  d   \        V4      pV# V P                  pV# )Nrh   )	ri   rk   ZdictZitemsunpack_itemlistr%   rr   Ztuple)rq   ZtpZnewitemZkeyrk   rs   s   &     r    r~   r~   f  s    	djj	B	Tz****,JC&u-GL - N 
t&3tzz?*s4::'A$TZZ]3GJ (99'GnG N **Nr   c                 s2   \         P                  ! R V 4      pV'       d#   VP                  ^4      pVP                  4       pMRp\	        VR7      pVP                  R4       VP                  V 4       VP                  ^ ,          R,          P                  pW59   d
   WS,          pMY\        VP                  4       4      p\        V4      ^8  d   VP                  R4       VP                  4        WW^ ,          ,          pVP                  4        \        V4      # )s    /FontName\s+/([^ \t\n\r]+)\s+defNr7   sC   /Helvetica 4 dict dup /Encoding StandardEncoding put definefont popr[   Z	Helvetica)reZsearchZgroupZdecoderQ   rg   rR   rk   r   Zkeysr%   ZremoveZsortr0   r~   )re   r(   r?   ZfontNameZinterpreterZfontdirZrawfontZ	fontNamess   &&      r    suckfontr   w  s    
		6=A771:??$2KN $##A&7==G# (	y>A[)A,'wr   r}   )3ZfontTools.misc.textToolsr   r   r   r   r   ZfontTools.miscr   ZpsOperatorsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Zcollections.abcr   Zstringr   ZloggingZ	getLoggerr   rd   r:   ZcompilerM   ZendofthingPatrL   rK   Z	stringPatrw   rx   rI   rJ   Z	Exceptionr   r"   rf   r#   rQ   r~   r   r   r   r    <module>r      s   P P       
 $   !
jjD*e#<=>?J>?zz-(JJ|$		 HHY__&'	::i jjE:#GHI	9 		i 	d& dN}K }@" r   