Ë
    ±éäg‚  ã            
       óL  — d dl Z e j                  j                  dk  reefZneZeZdZdZ	d„ Z
dZdZdZd	„ ZeZd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd dlZd dlZd dlZd dlZ ej6                  d«      Zddddddddddœ	Zd„ Z G d„ de«      Z  G d„ de«      Z!e"d k(  r�d dl#m$Z$  e$jH                  «       Z%d dl Z  e&e jN                  d!   «      Z(e(jS                  «       Z* e!e%«      Z+e+jY                  e*e jN                  d!   «       	 e+j[                  «       Z.e.sy e/e+j`                  e.«       Œ'y)"é    Né   )
ÚCPP_IDÚCPP_INTEGERÚ	CPP_FLOATÚ
CPP_STRINGÚCPP_CHARÚCPP_WSÚCPP_COMMENT1ÚCPP_COMMENT2Ú	CPP_POUNDÚ
CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"c                 óv   — | j                   xj                  | j                  j                  d«      z  c_        | S )z\s+ú
©ÚlexerÚlinenoÚvalueÚcount©Úts    úO/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pycparser/ply/cpp.pyÚt_CPP_WSr      ó&   € à‡G�G‡N‚N�a—g‘g—m‘m DÓ)Ñ)…NØ€Hó    z\#z\#\#z[A-Za-z_][\w_]*c                 ó   — | S )zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)© r   s    r   r   r   +   s   € à€Hr   z?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?c                 óv   — | j                   xj                  | j                  j                  d«      z  c_        | S )z\"([^\\\n]|(\\(.|\n)))*?\"r   r   r   s    r   Út_CPP_STRINGr   5   r   r   c                 óv   — | j                   xj                  | j                  j                  d«      z  c_        | S )z(L)?\'([^\\\n]|(\\(.|\n)))*?\'r   r   r   s    r   Ú
t_CPP_CHARr    ;   r   r   c                 ó²   — | j                   j                  d«      }| j                  xj                  |z  c_        d| _        |rd|z  | _         | S d| _         | S )z(/\*(.|\n)*?\*/)r   r	   ú )r   r   r   r   Útype)r   Úncrs     r   Út_CPP_COMMENT1r%   A   sL   € à
�'‰'�-‰-˜Ó
€CØ‡G�G‡N‚N�cÑ…Nà€A„F©s ¨¡�q”wØ€Hð 9<�q”wØ€Hr   c                 ó"   — d| _         d| _        | S )z(//.*?(\n|$))r	   r   )r#   r   r   s    r   Út_CPP_COMMENT2r'   J   s   € ð €A„F �q”wØ€Hr   c                 óŒ   — | j                   d   | _        | j                   d   | _         | j                  j                  d«       | S ©Nr   é   )r   r#   r   Úskipr   s    r   Út_errorr,   P   s4   € Ø�W‰W�Q‰Z€A„FØ�g‰g�a‰j€A„GØ‡G�G‡L�L�„OØ€Hr   z\?\?[=/\'\(\)\!<>\-]ú#ú\ú^ú[ú]ú|ú{ú}ú~)	ú=ú/ú'ú(ú)ú!ú<ú>ú-c                 ó0   — t         j                  d„ | «      S )Nc                 ó6   — t         | j                  «       d      S ©Néÿÿÿÿ)Ú_trigraph_repÚgroup)Úgs    r   ú<lambda>ztrigraph.<locals>.<lambda>z   s   € ¤}°Q·W±W³Y¸r±]Ñ'C€ r   )Ú_trigraph_patÚsub)Úinputs    r   ÚtrigraphrJ   y   s   € Ü×ÑÑCÀEÓJÐJr   c                   ó   — e Zd Zdd„Zy)ÚMacroNc                 ób   — || _         || _        || _        || _        |r
|d   | _        d | _        y rA   )Únamer   ÚarglistÚvariadicÚvarargÚsource)ÚselfrN   r   rO   rP   s        r   Ú__init__zMacro.__init__�   s3   € ØˆŒ	ØˆŒ
ØˆŒØ ˆŒÙØ! "™+ˆDŒKØˆ�r   )NF)Ú__name__Ú
__module__Ú__qualname__rT   r   r   r   rL   rL   Œ   s   „ ôr   rL   c                   ó„   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zdd„Zd„ Zdd„Zd„ Zd„ Zd„ Zdi fd„Zd„ Zy)ÚPreprocessorNc                 óV  — |€t         j                  }|| _        i | _        g | _        g | _        | j                  «        t        j                  «       }| j                  dt        j                  d|«      z  «       | j                  dt        j                  d|«      z  «       d | _
        y )Nz__DATE__ "%s"z%b %d %Yz__TIME__ "%s"z%H:%M:%S)Úlexr   ÚmacrosÚpathÚ	temp_pathÚlexprobeÚtimeÚ	localtimeÚdefineÚstrftimeÚparser)rS   r   Útms      r   rT   zPreprocessor.__init__ž   s„   € Øˆ=Ü—I‘IˆEØˆŒ
ØˆŒØˆŒ	ØˆŒð 	�‰Œä�^‰^ÓˆØ�‰Ð%¬¯©°jÀÓ(DÑDÔEØ�‰Ð%¬¯©°jÀÓ(DÑDÔEØˆ�r   c                 ó    — g }| j                   j                  |«       	 | j                   j                  «       }|s	 |S |j                  |«       Œ1©N)r   rI   ÚtokenÚappend)rS   ÚtextÚtokensÚtoks       r   ÚtokenizezPreprocessor.tokenize´   sK   € ØˆØ�
‰
×Ñ˜ÔØØ—*‘*×"Ñ"Ó$ˆCÙ˜àˆð �M‰M˜#Ôð r   c                 ó&   — t        d|||fz  «       y )Nz%s:%d %s)Úprint)rS   ÚfileÚlineÚmsgs       r   ÚerrorzPreprocessor.errorÃ   s   € Üˆj˜D  c˜?Ñ*Õ+r   c                 ó(  — | j                   j                  d«       | j                   j                  «       }|r|j                  dk7  rt	        d«       n|j
                  | _        | j                   j                  d«       | j                   j                  «       }|rt        |j                  «      dk7  rt	        d«       n+|j
                  | _        t        |j                  «      | _	        | j                   j                  d«       | j                   j                  «       }|r|j                  dk7  rt	        d«       n|j
                  | _
        | j                   j                  d«       | j                   j                  «       }|r|j                  dk7  rd | _        n|j
                  | _        | j                   j                  d	«       | j                   j                  «       }|r|j                  d	k7  rd | _        t	        d
«       n|j
                  | _        | j                  | j                  f| _        g d¢}|D ]W  }| j                   j                  |«       | j                   j                  «       }|r|j                  |k7  sŒJt	        d|z  «       ŒY y )NÚ
identifierz"Couldn't determine identifier typeÚ12345i90  zCouldn't determine integer typez
"filename"zCouldn't determine string typez  r   z%Couldn't determine token for newlines)	r<   r=   r-   ú##r.   r9   r:   ú,ú.z,Unable to lex '%s' required for preprocessor)r   rI   rh   r   ro   r#   Út_IDÚintÚ	t_INTEGERÚt_INTEGER_TYPEÚt_STRINGÚt_SPACEÚ	t_NEWLINEÚt_WS)rS   rl   ÚcharsÚcs       r   r_   zPreprocessor.lexprobeÏ   sî  € ð 	�
‰
×Ñ˜Ô&Ø�j‰j×ÑÓ ˆÙ�c—i‘i <Ò/ÜÐ6Õ7àŸ™ˆDŒIð 	�
‰
×Ñ˜Ô!Ø�j‰j×ÑÓ ˆÙ”c˜#Ÿ)™)“n¨Ò-ÜÐ3Õ4à ŸX™XˆDŒNÜ"& s§y¡y£/ˆDÔð 	�
‰
×Ñ˜Ô(Ø�j‰j×ÑÓ ˆÙ�c—i‘i >Ò1ÜÐ2Õ3àŸH™HˆDŒMð 	�
‰
×Ñ˜ÔØ�j‰j×ÑÓ ˆÙ�c—i‘i 4Ò'ØˆD�LàŸ8™8ˆDŒLð 	�
‰
×Ñ˜ÔØ�j‰j×ÑÓ ˆÙ�c—i‘i 4Ò'Ø!ˆDŒNÜÐ9Õ:à ŸX™XˆDŒNà—\‘\ 4§>¡>Ð2ˆŒ	ò 9ˆØò 	JˆAØ�J‰J×Ñ˜QÔØ—*‘*×"Ñ"Ó$ˆCÙ˜#Ÿ)™) q›.ÜÐDÀqÑHÕIñ		Jr   c                 ó:   — | j                   j                  |«       y rg   )r]   ri   )rS   r]   s     r   Úadd_pathzPreprocessor.add_path  s   € Ø�	‰	×Ñ˜Õr   c              #   ó®  K  — | j                   j                  «       }|j                  «       D �cg c]  }|j                  «       ‘Œ }}t	        t        |«      «      D ]j  }|dz   }||   j                  d«      sŒ|t        |«      k  sŒ,||   d d ||   z   ||<   d||<   |dz  }||   j                  d«      sŒ\|t        |«      k  rŒ?Œl dj                  |«      } |j                  |«       d|_	        g }	  |j                  «       }|sn>|j                  |«       |j                  | j                  v rd|j                  v r|–— g }ŒR|r|–— y y c c}w ­w)Nr*   r.   rB   Ú r   )r   ÚcloneÚ
splitlinesÚrstripÚxrangeÚlenÚendswithÚjoinrI   r   rh   ri   r#   r�   r   )	rS   rI   r[   ÚxÚlinesÚiÚjÚcurrent_linerl   s	            r   Úgroup_lineszPreprocessor.group_lines  sQ  è ø€ Ø�j‰j×ÑÓ ˆØ%*×%5Ñ%5Ó%7Ö8 �—‘•Ð8ˆÐ8Üœ˜E›
Ó#ò 	ˆAØ�!‘ˆAØ˜‘(×#Ñ# DÕ)¨q´3°u³:«~Ø  ™8 C R˜=¨¨q©Ñ1��a‘Ø��a‘Ø�Q‘�ð ˜‘(×#Ñ# DÕ)¨q´3°u³:¬~ð	ð —	‘	˜%Ó ˆØˆ�	‰	�%ÔØˆŒ
àˆØØ�#—)‘)“+ˆCÙØØ×Ñ Ô$Ø�x‰x˜4Ÿ9™9Ñ$¨°·±Ñ):Ø"Ò"Ø!�ð ñ ØÓð ùò- 9ùs)   ‚-E¯EÁ2EÁ9EÂ/EÂ8EÃBEc                 ó|  — d}|t        |«      k  rJ||   j                  | j                  v r/|dz  }|t        |«      k  r||   j                  | j                  v rŒ/|d |…= t        |«      dz
  }|dk\  rA||   j                  | j                  v r&|dz  }|dk\  r||   j                  | j                  v rŒ&||dz   d …= |S r)   )rŒ   r#   r�   )rS   rk   r‘   s      r   Ú
tokenstripzPreprocessor.tokenstrip8  s·   € ØˆØ”#�f“+Šo &¨¡)§.¡.°D·I±IÑ"=Ø�‰FˆAð ”#�f“+Šo &¨¡)§.¡.°D·I±IÒ"=à�2�A�2ˆJÜ�‹K˜‰MˆØ�1Šf˜ ™Ÿ™¨4¯9©9Ñ4Ø�‰FˆAð �1Šf˜ ™Ÿ™¨4¯9©9Ò4à�1�Q‘3‘4ˆLØˆr   c                 óÐ  — g }g }g }d}t        |«      }d}||k  rA||   j                  | j                  v r&|dz  }||k  r||   j                  | j                  v rŒ&||k  r'||   j                  dk(  r|j	                  |dz   «       n/| j                  | j                  |d   j                  d«       dg g fS |dz  }||k  rø||   }|j                  dk(  r|j	                  |«       |dz  }nÂ|j                  dk(  rW|dz  }|dk(  r;|r1|j	                  | j                  |«      «       |j	                  |«       |dz   ||fS |j	                  |«       n\|j                  dk(  r<|dk(  r7|j	                  | j                  |«      «       |j	                  |dz   «       g }n|j	                  |«       |dz  }||k  rŒø| j                  | j                  |d   j                  d«       dg g fS )	Nr*   r   r9   zMissing '(' in macro argumentsr:   rx   rB   zMissing ')' in macro arguments)	rŒ   r#   r�   r   ri   rs   rR   r   r–   )	rS   Ú	tokenlistÚargsÚ	positionsÚcurrent_argÚnestingÚtokenlenr‘   r   s	            r   Úcollect_argszPreprocessor.collect_argsT  sä  € ØˆØˆ	ØˆØˆÜ�y“>ˆð ˆØ�8Š| )¨A¡,×"3Ñ"3°t·y±yÑ"@Ø�‰FˆAð �8Š| )¨A¡,×"3Ñ"3°t·y±yÒ"@ð �ŠL˜y¨™|×1Ñ1°SÒ8Ø×Ñ˜Q˜q™SÕ!à�J‰J�t—{‘{ 9¨Q¡<×#6Ñ#6Ð7WÔXØ�b˜"�9Ðà	ˆQ‰ˆà�(ŠlØ˜!‘ˆAØ�w‰w˜#Š~Ø×"Ñ" 1Ô%Ø˜1‘‘Ø—‘˜C’Ø˜1‘�Ø˜a’<Ù"ØŸ™ D§O¡O°KÓ$@ÔAØ!×(Ñ(¨Ô+Ø˜Q™3˜t IÐ-Ð-Ø×"Ñ" 1Õ%Ø—‘˜C’ G¨q¢LØ—‘˜DŸO™O¨KÓ8Ô9Ø× Ñ   1¡Ô%Ø ‘à×"Ñ" 1Ô%Ø�‰FˆAð' �(‹lð, 	�
‰
�4—;‘;˜y¨™}×3Ñ3Ð4TÔUØ�"�Rˆxˆr   c                 óz  — g |_         g |_        g |_        d}|t        |j                  «      k  �rí|j                  |   j
                  | j                  k(  �rÐ|j                  |   j                  |j                  v �rª|j                  j                  |j                  |   j                  «      }|dkD  rž|j                  |dz
     j                  dk(  rt        j                  |j                  |   «      |j                  |<   | j                  |j                  |   _        |j                  |dz
  = |j                  j                  ||dz
  f«       �Œ;|dkD  rR|j                  |dz
     j                  dk(  r3|j                   j                  d||dz
  f«       |j                  |dz
  = �Œ’|dz   t        |j                  «      k  rD|j                  |dz      j                  dk(  r%|j                   j                  d||f«       |dz  }�Œñ|j                   j                  d||f«       n×|j                  |   j                  dk(  r»|j                  r¯|dkD  rª|j                  |dz
     j                  dk(  r‹|dz   t        |j                  «      k  rp|j                  |dz      j
                  | j                  k(  rG|j                  |dz      j                  |j                  k(  r|j                  j                  |dz
  «       |dz  }|t        |j                  «      k  r�Œí|j                   j                  d„ d	¬
«       y )Nr   r*   r-   rw   rƒ   Úerx   c                 ó   — | d   S )Né   r   )r�   s    r   rF   z,Preprocessor.macro_prescan.<locals>.<lambda>ª  s
   €  q¨¡t€ r   T)ÚkeyÚreverse)ÚpatchÚ	str_patchÚvar_comma_patchrŒ   r   r#   rz   rO   ÚindexÚcopyr~   ri   rP   rQ   Úsort)rS   Úmacror‘   Úargnums       r   Úmacro_prescanzPreprocessor.macro_prescan‰  s   € ØˆŒØˆŒØ "ˆÔØˆØ”#�e—k‘kÓ"Ó"Ø�{‰{˜1‰~×"Ñ" d§i¡iÓ/°E·K±KÀ±N×4HÑ4HÈEÏMÉMÒ4YØŸ™×,Ñ,¨U¯[©[¸©^×-AÑ-AÓB�à�q’5˜UŸ[™[¨¨1©Ñ-×3Ñ3°sÒ:Ü%)§Y¡Y¨u¯{©{¸1©~Ó%>�E—K‘K ‘NØ*.¯-©-�E—K‘K ‘NÔ'ØŸ™ A a¡CÐ(Ø—O‘O×*Ñ*¨F°1°Q±3¨<Ô8Ùà˜!’e §¡¨A¨a©CÑ 0× 6Ñ 6¸$Ò >Ø—K‘K×&Ñ&¨¨F°1°Q±3Ð'7Ô8ØŸ™ A a¡CÐ(ÙØ˜‘sœc %§+¡+Ó.Ò.°5·;±;¸qÀ¹sÑ3C×3IÑ3IÈTÒ3QØ—K‘K×&Ñ&¨¨F°1 ~Ô6Ø˜‘F�AÙð —K‘K×&Ñ&¨¨F°1 ~Õ6Ø—‘˜Q‘×%Ñ%¨Ò-Ø—>’> q¨1¢u°5·;±;¸qÀ¹sÑ3C×3IÑ3IÈSÒ3PØ˜A™#¤ U§[¡[Ó!1Ò1¸¿¹ÀAÀaÁCÑ8H×8MÑ8MÐQU×QZÑQZÒ8ZØŸ™ Q q¡SÑ)×/Ñ/°5·<±<Ò?Ø×)Ñ)×0Ñ0°°1±Ô5Ø�‰FˆAð7 ”#�e—k‘kÓ"Ô"ð8 	�‰×Ñ™^°DÐÕ9r   c                 óª  — |j                   D �cg c]  }t        j                  |«      ‘Œ }}i }|j                  D ]s  \  }}||vrBddj                  ||   D �cg c]  }|j                   ‘Œ c}«      z  j	                  dd«      ||<   t        j                  ||   «      ||<   ||   ||   _         Œu d}	|j
                  r|d   s|j                  D ]	  }d ||<   d}	Œ i }
|j                  D ]C  \  }}}|dk(  r||   |||d	z    Œ|d
k(  sŒ||
vr| j                  ||   «      |
|<   |
|   |||d	z    ŒE |	r|D �cg c]  }|sŒ|‘Œ	 }}|S c c}w c c}w c c}w )Nz"%s"r‡   r.   z\\FrB   Trƒ   r*   r    )	r   r©   r¦   rŽ   ÚreplacerP   r§   r¥   Úexpand_macros)rS   r«   r™   Ú_xÚrepÚstr_expansionr¬   r‘   r�   Úcomma_patchÚexpandedÚptypeÚ_is                r   Úmacro_expand_argszPreprocessor.macro_expand_args´  s†  € à',§{¡{Ö3 Œt�y‰y˜�}Ð3ˆÐ3ð ˆØŸ™ò 	1‰IˆF�AØ˜]Ñ*Ø)/°"·'±'ÈDÐQWÉLÖ:YÀq¸1¿7»7Ò:YÓ2ZÑ)Z×(cÑ(cÐdhÐioÓ(p�˜fÑ%Ü—Y‘Y˜s 1™vÓ&ˆC�‰FØ(¨Ñ0ˆC�‰F�Lð		1ð ˆØ�>Š> $ r¢(Ø×*Ñ*ò #�Ø��A‘Ø"‘ð#ð ˆØ %§¡ò 	.ÑˆE�6˜1à˜Š|Ø! &™\��A�a˜‘c‘
à˜#“Ø Ñ)Ø'+×'9Ñ'9¸$¸v¹,Ó'G�H˜VÑ$Ø% fÑ-��A�a˜‘c‘
ð	.ñ Ø #Ö*˜"¢r’2Ð*ˆCÐ*àˆ
ùòK 4ùò ;Zùò8 +s   �EÁEÄ6EÄ>Ec           	      ó‚  — |€i }d}|t        |«      k  �r$||   }|j                  | j                  k(  �rð|j                  | j                  v �r—|j                  |v�rˆd||j                  <   | j                  |j                     }|j
                  sm| j                  |j                  D �cg c]  }t        j                  |«      ‘Œ c}|«      }|D ]  }|j                  |_        Œ ||||dz    |t        |«      z  }�nØ|dz   }	|	t        |«      k  rJ||	   j                  | j                  v r/|	dz  }	|	t        |«      k  r||	   j                  | j                  v rŒ/||	   j                  dk(  �rh| j                  ||	d  «      \  }
}}|j                  sqt        |«      t        |j
                  «      k7  rP| j                  | j                  |j                  d|j                  t        |j
                  «      fz  «       |	|
z   }�nÓ|j                  rÛt        |«      t        |j
                  «      dz
  k  r·t        |j
                  «      dkD  rM| j                  | j                  |j                  d|j                  t        |j
                  «      dz
  fz  «       nL| j                  | j                  |j                  d|j                  t        |j
                  «      dz
  fz  «       |	|
z   }nì|j                  rŽt        |«      t        |j
                  «      dz
  k(  r|j                  g «       nX||	|t        |j
                  «      dz
     z   |	|
z   dz
   |t        |j
                  «      dz
  <   |t        |j
                  «      d …= | j                  ||«      }| j                  ||«      }|D ]  }|j                  |_        Œ ||||	|
z    |t        |«      z  }||j                  = �ŒÞ|j                  d	k(  r1| j                   |_        | j#                  |j                  «      |_        |dz  }|t        |«      k  r�Œ$|S c c}w )
Nr   Tr*   r9   zMacro %s requires %d argumentsr¢   z(Macro %s must have at least %d argumentsz'Macro %s must have at least %d argumentÚ__LINE__)rŒ   r#   rz   r   r\   rO   r°   r©   r   r�   rž   rP   rs   rR   ri   r¸   r|   r}   )rS   rk   rµ   r‘   r   Úmr±   Úexr    r’   Útokcountr™   rš   r²   Úrs                  r   r°   zPreprocessor.expand_macrosæ  sé  € ØÐØˆHØˆØ”#�f“+‹oØ�q‘	ˆAØ�v‰v˜Ÿ™Ó"Ø—7‘7˜dŸk™kÒ)¨a¯g©g¸XÒ.Eà(,�H˜QŸW™WÑ%àŸ™ A§G¡GÑ,�AØŸ9š9à!×/Ñ/ÈÏÉÖ0QÀ2´·±¸2µÒ0QÐRZÓ[˜Ø!#ò 0˜AØ'(§x¡x˜A�Hð0à(*˜˜q  1¡˜ØœS ›W™šð  ™E˜Ø¤# f£+šo°&¸±)·.±.ÀDÇIÁIÑ2MØ ™F˜Að  ¤# f£+šo°&¸±)·.±.ÀDÇIÁIÒ2Mà! !™9Ÿ?™?¨cÓ1Ø6:×6GÑ6GÈÈqÈrÈ
Ó6SÑ3˜H T¨)Ø#$§:¢:´#°d³)ÄÀAÇIÁIÃÒ2NØ $§
¡
¨4¯;©;°q·x±xÐ@`Ðde×dkÑdkÔloÐpq×pyÑpyÓlzÐc{Ñ@{Ô |Ø$%¨¡L¢Ø!"§¢´°D³	¼CÀÇ	Á	»NÈ1Ñ<LÒ0LÜ#& q§y¡y£>°AÒ#5Ø$(§J¡J¨t¯{©{¸1¿8¹8ÐDnÐrs×ryÑryÔ{~ð  @A÷  @Iñ  @Ió  |Jð  KLñ  |Lð  rMñ  EMõ  %Nà$(§J¡J¨t¯{©{¸1¿8¹8ÐDmÐqr×qxÑqxÔz}Ð~÷  Hñ  Hó  {Ið  JKñ  {Kð  qLñ  ELô  %MØ$%¨¡L¡à#$§:¢:Ü'*¨4£y´C¸¿	¹	³NÀ1Ñ4DÒ'DØ(,¯©°B­àAGÈÈ)ÔTWÐXY×XaÑXaÓTbÐcdÑTdÑJeÑHeÐfgÐhpÑfpÐqrÑfrÐAs¨¬S°·±«^¸AÑ-=Ñ(>Ø,0´°Q·Y±Y³±Ð,Að '+×&<Ñ&<¸Q¸tÓ&D Ø&*×&8Ñ&8¸¸XÓ&F Ø),ò !8 AØ/0¯x©x A¥Hð!8à7:  q¨¨8©Ð 4Ø !¤S¨£X¡ Ø  §¡Ð)ÙØ—W‘W 
Ò*Ø!Ÿ^™^�A”FØ"×1Ñ1°!·(±(Ó;�A”Gà�‰FˆAði ”#�f“+Œoðj ˆùòW 1Rs   Â*P<c                 óx  — d}|t        |«      k  �rZ||   j                  | j                  k(  �r(||   j                  dk(  �r|dz   }d}d}|t        |«      k  rÆ||   j                  | j                  v r|dz  }Œ/||   j                  | j                  k(  r#||   j                  | j
                  v rd}nd}|sSnf||   j                  dk(  rd}n=||   j                  d	k(  rn>| j                  | j                  ||   j                  d
«       |dz  }|t        |«      k  rŒÆ| j                  ||   _        | j                  |«      ||   _        ||dz   |dz   …= |dz  }|t        |«      k  r�ŒZ| j                  |«      }t        |«      D ]ú  \  }}|j                  | j                  k(  rFt        j                  |«      ||<   | j                  ||   _        | j                  d«      ||   _        Œe|j                  | j                  k(  sŒt        j                  |«      ||<   t        ||   j                  «      ||   _        ||   j                  d   dvsŒÌ||   j                  d d ||   _        ||   j                  d   dvrŒ/Œü dj                  |D �cg c]  }t        |j                  «      ‘Œ c}«      }|j!                  dd«      }|j!                  dd«      }|j!                  dd«      }	 t#        |«      }|S c c}w # t$        $ r0 | j                  | j                  |d   j                  d«       d}Y |S w xY w)Nr   Údefinedr*   FÚ0LÚ1Lr9   Tr:   zMalformed defined()rB   Ú0123456789abcdefABCDEFr‡   z&&z and z||z or r;   z not zCouldn't evaluate expression)rŒ   r#   rz   r   r�   r\   rs   rR   r   r|   r}   r°   Ú	enumerater©   ÚstrrŽ   r¯   ÚevalÚ	Exception)	rS   rk   r‘   r’   Ú	needparenÚresultr   r�   Úexprs	            r   ÚevalexprzPreprocessor.evalexpr(  sñ  € ð ˆØ”#�f“+‹oØ�a‰y�~‰~ §¡Ó*¨v°a©y¯©À)Ó/KØ˜‘E�Ø!�	Ø�Øœ#˜f›+’oØ˜a‘y—~‘~¨¯©Ñ2Ø˜Q™˜Ø Ø ™Ÿ™¨4¯9©9Ò4Ø! !™9Ÿ?™?¨d¯k©kÑ9Ø%)™Fà%)˜FÙ(¨%Ø ™Ÿ™¨CÒ/Ø$(™	Ø ™Ÿ™¨CÒ/ØàŸ
™
 4§;¡;¨v°a©y×/?Ñ/?Ð@UÔVØ˜‘F�Að! œ#˜f›+“oð" "&§¡��q‘	”Ø"&×"5Ñ"5°fÓ"=��q‘	”Ø˜1˜Q™3˜q ™s˜7�OØ�‰FˆAð3 ”#�f“+Œoð4 ×#Ñ# FÓ+ˆÜ˜VÓ$ò 
	;‰CˆAˆaØ�v‰v˜Ÿ™Ò"Ü ŸI™I a›L��q‘	Ø!%§¡��q‘	”Ø"&×"5Ñ"5°dÓ";��q‘	•Ø—‘˜4Ÿ>™>Ó)Ü ŸI™I a›L��q‘	ä"% f¨Q¡i§o¡oÓ"6��q‘	”Ø˜Q‘i—o‘o bÑ)Ð1IÒIØ&,¨Q¡i§o¡o°c°rÐ&:�F˜1‘I”Oð ˜Q‘i—o‘o bÑ)Ð1IÓIð
	;ð �w‰w¨fÖ5¨œ˜AŸG™G�Ò5Ó6ˆØ�|‰|˜D Ó)ˆØ�|‰|˜D Ó(ˆØ�|‰|˜C Ó(ˆð	Ü˜$“ZˆFð ˆùò 6øô ò 	Ø�J‰J�t—{‘{ 6¨!¡9×#3Ñ#3Ð4RÔSØ‰FØˆð	ús   ÊK;Ë.L  Ì 5L9Ì8L9c              #   ó’  K  — t        |«      }| j                  |«      }|sd}| j                  d|z  «       || _        g }d}d}g }|D �]^  }	t	        |	«      D ]  \  }
}|j
                  | j                  vsŒ n j                  dk(  �r	|	D ];  }|j
                  | j                  v sŒd|j                  v sŒ+|j                  |«       Œ= | j                  |	
dz   d  «      }|r$|d   j                  }| j                  |dd  «      }nd}g }|d	k(  r1|sŒÊ| j                  |«      D ]  }|–— Œ g }| j                  |«       Œø|d
k(  ra|s�Œ| j                  |«      D ]  }|–— Œ g }| j                  d   }| j                  |«      D ]  }|–— Œ || j                  d<   || _        �Œ^|dk(  r3|s�Œg| j                  |«      D ]  }|–— Œ g }| j                  |«       �Œ–|dk(  r<|j                  ||f«       |s�Œ²|d   j                  | j                  vrd}d}�ŒÓd}�Œ×|dk(  r<|j                  ||f«       |s�Œó|d   j                  | j                  v rd}d}�Œd}�Œ|dk(  r4|j                  ||f«       |s�Œ4| j                  |«      }|sd}d}�ŒMd}�ŒQ|dk(  r]|r/|d   d   s�Œb|rd}�Œh|r�Œl| j                  |«      }|s�Œ�d}d}�Œ‡| j                  | j                  |d   j                   d«       �Œ³|dk(  rH|r|d   d   s�ŒÄ|rd}�ŒÊ|r�ŒÎd}d}�ŒÔ| j                  | j                  |d   j                   d«       �Œ |dk(  rC|r|j#                  «       \  }}�Œ| j                  | j                  |d   j                   d«       �ŒH�ŒJ|s�ŒN|j%                  |	«       �Œa | j                  |«      D ]  }|–— Œ g }y ­w)Nr‡   z__FILE__ "%s"TFr-   r   r*   r   rb   ÚincludeÚ__FILE__ÚundefÚifdefÚifndefÚifÚelifrB   zMisplaced #elifÚelsezMisplaced #elseÚendifzMisplaced #endif)rJ   r”   rb   rR   rÄ   r#   r�   r   ri   r–   r°   r\   rÍ   rÏ   rË   rs   r   ÚpopÚextend)rS   rI   rR   r   r�   ÚchunkÚenableÚ	iftriggerÚifstackr�   r‘   rl   Ú	dirtokensrN   r™   ÚoldfilerÉ   s                    r   ÚparsegenzPreprocessor.parsegenc  sÓ  è ø€ ô �U‹OˆØ× Ñ  Ó#ˆáØˆFà�‰Ð%¨Ñ.Ô/àˆŒØˆØˆØˆ	Øˆàó f	$ˆAÜ" 1›ò 4‘��#Ø—8‘8 4§9¡9Ò,©eð4à�y‰y˜CÓð ò *�CØ—x‘x 4§9¡9Ò,°¸¿¹Ò1BØŸ™ SÕ)ð*ð !ŸO™O¨A¨a°©c¨d¨GÓ4�	ÙØ$ Q™<×-Ñ-�DØŸ?™?¨9°Q°R¨=Ó9‘Dà�DØ�Dà˜8Ò#ÚØ#'×#5Ñ#5°eÓ#<ò &˜CØ"%›Ið&à "˜ØŸ™ DÕ)Ø˜YÒ&ÛØ#'×#5Ñ#5°eÓ#<ò &˜CØ"%›Ið&à "˜Ø"&§+¡+¨jÑ"9˜Ø#'§<¡<°Ó#5ò &˜CØ"%›Ið&à29˜Ÿ™ JÑ/Ø&,˜žØ˜W’_ÛØ#'×#5Ñ#5°eÓ#<ò &˜CØ"%›Ið&à "˜ØŸ
™
 4Ö(Ø˜W’_Ø—N‘N F¨9Ð#5Ô6ÛØ# A™wŸ}™}°·±Ñ;Ø%*˜FØ(-šIà(,šIØ˜XÒ%Ø—N‘N F¨9Ð#5Ô6ÛØ ™7Ÿ=™=¨D¯K©KÑ7Ø%*˜FØ(-šIà(,šIØ˜T’\Ø—N‘N F¨9Ð#5Ô6ÛØ!%§¡¨tÓ!4˜Ù%Ø%*˜FØ(-šIà(,šIØ˜V’^ÙØ" 2™; qœ>Ù%Ø).¢Û%.Ø)-¯©°tÓ)< Û#)Ø.2 FØ04¢IàŸ
™
 4§;¡;¨y¸©|×/BÑ/BÐCTÖUà˜V’^ÙØ" 2™; qœ>Ù%Ø).¢Û%.Ø)- Ø,0¢	àŸ
™
 4§;¡;¨y¸©|×/BÑ/BÐCTÖUà˜W’_ÙØ+2¯;©;«=Ñ(˜šyàŸ
™
 4§;¡;¨y¸©|×/BÑ/BÐCUÖVñ ó Ø—L‘L –OðMf	$ðP ×%Ñ% eÓ,ò 	ˆCØ‹Ið	à‰ùse   ‚A3OÁ60OÂ'OÂ6AOÄ5OÅ	A$OÆ/A	OÇ:?OÈ;?OÉ<,OÊ*OÊ4OË	AOÌOÌA>OÎ1Oc              #   ó  K  — |sy |�r6|d   j                   dk7  r-|d   j                  | j                  k7  r| j                  |«      }|d   j                   dk(  r�d}|t	        |«      k  r'||   j                   dk(  rn |dz  }|t	        |«      k  rŒ't        d«       y dj                  |d| D �cg c]  }|j                   ‘Œ c}«      }| j                  dgz   | j                  z   }nX|d   j                  | j                  k(  r0|d   j                   dd }| j                  dgz   | j                  z   }nt        d«       y D ]¥  }t        j                  j                  |«      }	 t        |d	«      j                  «       }t        j                  j                  |«      }	|	r| j                  j                  d|	«       | j                  ||«      D ]  }
|
–— Œ |	r| j                  d=  y  t        d
z  «       y c c}w # t        $ r Y ŒÇw xY w­w)Nr   r<   r*   r=   zMalformed #include <...>r‡   rB   zMalformed #include statementr¾   zCouldn't find '%s')r   r#   r~   r°   rŒ   ro   rŽ   r]   r^   ÚosÚopenÚreadÚdirnameÚinsertrÞ   ÚIOError)rS   rk   r‘   r�   Úfilenamer]   ÚpÚinameÚdataÚdnamerl   s              r   rÍ   zPreprocessor.includeæ  sá  è ø€ áØÚØ�a‰y�‰ #Ò%¨&°©)¯.©.¸D¿M¹MÒ*IØ×+Ñ+¨FÓ3�à�a‰y�‰ #Ò%à�Øœ#˜f›+’oØ˜a‘y—‘¨#Ò-ØØ˜‘F�Að œ#˜f›+“oô
 Ð4Ô5ØØŸ7™7°V¸A¸a°[Ö#A° A§G£GÒ#AÓB�Ø—y‘y B 4Ñ'¨$¯.©.Ñ8‘Ø˜‘—‘ 4§=¡=Ò0Ø! !™9Ÿ?™?¨1¨RÐ0�Ø—~‘~¨¨Ñ,¨t¯y©yÑ8‘äÐ4Ô5ØØò 	3ˆAÜ—G‘G—L‘L  8Ó,ˆEðÜ˜E #“×+Ñ+Ó-�ÜŸ™Ÿ™¨Ó.�ÙØ—N‘N×)Ñ)¨!¨EÔ2ØŸ=™=¨¨hÓ7ò �CØ“IðáØŸ™ qÐ)Ùð	3ô Ð&¨Ñ1Õ2ùò/ $Bøô( ò Ùðüs>   ‚BHÂHÂ/G8ÃB"HÅ%BG=Ç&HÇ=	H	ÈHÈH	È	Hc           	      ó„  — t        |t        «      r| j                  |«      }|}	 |d   }t        |«      dkD  r|d   }nd }|s0t	        |j
                  g «      }|| j                  |j
                  <   y |j                  | j                  v rBt	        |j
                  | j                  |dd  «      «      }|| j                  |j
                  <   y |j
                  dk(  �r6| j                  |dd  «      \  }}}d}	|D �]  }
|	rt        d«        y dj                  |
D �cg c]  }t        |j
                  «      ‘Œ c}«      }|dk(  r(d	}	| j                  |
d   _        d
|
d   _        d	}	|
dd …= Œr|dd  dk(  rS|
d   j                  | j                  k(  r7d	}	|
dd …= |
d   j
                  dd  dk(  r|
d   j
                  d d |
d   _        ŒÍt        |
«      dkD  s|
d   j                  | j                  k7  sŒøt        d«        y  | j                  |d|z   d  «      }d}|t        |«      k  r�|dz   t        |«      k  rj||   j                  | j                  v r||dz      j
                  dk(  r||= ŒS||   j
                  dk(  r$||dz      j                  | j                  v r||dz   = |dz  }|t        |«      k  rŒ�t	        |j
                  ||D �cg c]  }|d   j
                  ‘Œ c}|	«      }| j                  |«       || j                  |j
                  <   y t        d«       y c c}w c c}w # t         $ r t        d«       Y y w xY w)Nr   r*   r¢   r9   Fz0No more arguments may follow a variadic argumentr‡   z...TÚ__VA_ARGS__éýÿÿÿzInvalid macro argumentrw   zBad macro definition)Ú
isinstanceÚSTRING_TYPESrm   rŒ   rL   r   r\   r#   r�   r–   rž   ro   rŽ   rÅ   rz   r­   ÚLookupError)rS   rk   ÚlinetokrN   Úmtyper»   r½   r™   rš   rP   Úar·   ÚastrÚmvaluer‘   r�   s                   r   rb   zPreprocessor.define  s  € Ü�fœ\Ô*Ø—]‘] 6Ó*ˆFàˆð9	*Ø˜1‘:ˆDÜ�7‹|˜aÒØ ™
‘à�ÙÜ˜$Ÿ*™* RÓ(�Ø*+�—‘˜DŸJ™JÒ'Ø—‘˜tŸy™yÑ(ä˜$Ÿ*™* T§_¡_°W¸Q¸R°[Ó%AÓB�Ø*+�—‘˜DŸJ™JÒ'Ø—‘ Ó#à,0×,=Ñ,=¸gÀaÀb¸kÓ,JÑ)�˜$ 	Ø �Øó $0�AÙÜÐPÔQÙØŸ7™7¸AÖ#>°b¤C¨¯©¥MÒ#>Ó?�DØ˜u’}Ø#'˜Ø$(§I¡I˜˜!™œ	Ø%2˜˜!™œ
Ø#'˜Ø˜a™b˜EØ Ø˜b˜c˜ eÒ+°°!±·	±	¸T¿Y¹YÒ0FØ#'˜Ø˜a™b˜Eð ˜Q™4Ÿ:™: b c˜?¨eÒ3Ø)*¨1©¯©°C°R¨˜A˜a™DœJØ Ü˜1“v ’z Q q¡T§Y¡Y°$·)±)Ó%;ÜÐ6Ô7Ùð-$0ð0 "Ÿ_™_¨W°Q°x±Z°[Ð-AÓB�FØ�AØœc &›kš/Ø˜Q™3¤ V£Ò,Ø% a™yŸ~™~°·±Ñ:¸vÀaÈÁc¹{×?PÑ?PÐTXÒ?XØ$*¨1 IØ (Ø!'¨¡§¡°DÒ!8¸VÀAÀaÁC¹[×=MÑ=MÐQU×QZÑQZÑ=ZØ$*¨1¨Q©3 KØ˜Q™˜ð œc &›k›/ô ˜dŸj™j¨ÀTÖ0JÀ°°1±·³Ò0JÈ8ÓT�AØ×&Ñ& qÔ)Ø./�D—K‘K §
¡
Ò+äÐ,Õ-ùòE $?ùò< 1Køô
 ò 	*ÜÐ(Ö)ð	*ús]   ¥AL( Á2AL( Ã>L( ÄL( ÄL
Ä6B9L( Ç0L( Ç=B6L( Ê4L( Ë	L#Ë2L( ÌL( Ì
L( Ì(L?Ì>L?c                 ó\   — |d   j                   }	 | j                  |= y # t        $ r Y y w xY w)Nr   )r   r\   rð   )rS   rk   Úids      r   rÏ   zPreprocessor.undef]  s1   € Ø�A‰Y�_‰_ˆð	Ø—‘˜B‘øÜò 	Ùð	ús   ‘ Ÿ	+ª+c                 ó@   — || _         | j                  ||«      | _        y rg   )ÚignorerÞ   rd   )rS   rI   rR   rù   s       r   ÚparsezPreprocessor.parsei  s   € ØˆŒØ—m‘m E¨&Ó1ˆ�r   c                 ó’   — 	 	 t        | j                  «      }|j                  | j                  vr|S Œ0# t        $ r
 d | _        Y y w xY wrg   )Únextrd   r#   rù   ÚStopIteration)rS   rl   s     r   rh   zPreprocessor.tokenr  sL   € ð	ØÜ˜4Ÿ;™;Ó'�Ø—8‘8 4§;¡;Ñ.°s°
ð øô ò 	ØˆDŒKÙð	ús   ‚/3 ²3 ³AÁArg   )rU   rV   rW   rT   rm   rs   r_   r…   r”   r–   rž   r­   r¸   r°   rË   rÞ   rÍ   rb   rÏ   rú   rh   r   r   r   rY   rY   �   so   „ óò,ò,ò4JòxòòB	ò8+òj!:òV'ód9òD4óv{òF)3òb>*òLð !%¨Bó 2ór   rY   Ú__main__r*   )1ÚsysÚversion_infoÚmajorrÅ   Úunicoderï   Úranger‹   rk   Úliteralsr   Út_CPP_POUNDÚt_CPP_DPOUNDÚt_CPP_IDr   Út_CPP_INTEGERÚt_CPP_FLOATr   r    r%   r'   r,   Úrer©   r`   Úos.pathrà   ÚcompilerG   rC   rJ   ÚobjectrL   rY   rU   Úply.lexr[   r   rá   ÚargvÚfrâ   rI   rç   rú   rh   rl   ro   rR   r   r   r   ú<module>r     sq  ðó ð ×Ñ×Ñ˜AÒØ˜�>�Là€LØ€Fð
€ð ,€òð
 €Ø€ð €òð €ð Q€òòòòòó 
Û Û Û ð& �—
‘
Ð6Ó7€àØØØØØØØØñ
€òKô&ˆFô ô"\�6ô \ð| ˆzÒÝØˆC�G‰G‹I€Eó ÙˆS�X‰X�a‰[Ó€AØ�F‰F‹H€Eá�UÓ€AØ‡G�GˆE�#—(‘(˜1‘+ÔØ
Ø�g‰g‹iˆÙ�EÙˆa�h‰h˜Ôð ð r   