§
    ]ö6ië€  ã                   ó¤  — d Z ddlmZ ddlmZ ddlZddlZddlZ	 ddlmZ n#  ddl	Z	 G d„ de	j        ¦  «        ZY nxY wddl
Z
dd	lmZ  G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d „ d!e¦  «        Z G d"„ d#e¦  «        Z G d$„ d%e¦  «        Z G d&„ d'e¦  «        Z G d(„ d)e¦  «        Z G d*„ d+e¦  «        Z G d,„ d-e¦  «        Z G d.„ d/e¦  «        Z  G d0„ d1e¦  «        Z! G d2„ d3e!¦  «        Z" G d4„ d5e¦  «        Z# G d6„ d7e¦  «        Z$ G d8„ d9e¦  «        Z% G d:„ d;e¦  «        Z& ej'        d<¦  «        Z( e d=d>dd?dd@e(¬A¦  «         e dBd>dCd?ddDe(¬A¦  «         e dEd>dFd?ddGe(¬A¦  «         e dHd>dId?ddJe(¬A¦  «        dKœZ) e dLd>ddMdNe(¬O¦  «         e dPd>dCdQdRe(¬O¦  «         e dSd>dFdTdUe(¬O¦  «         e dVd>dIdWdXe(¬O¦  «        dYœZ*e) +                    ¦   «         D ]
\  Z,Z-e-e*e,<   Œ e dZd[dFe(¬\¦  «         e d]d[dIe(¬\¦  «        d^œZ.d_ e d_d>ddde(¬O¦  «        iZ/e* +                    ¦   «         D ]
\  Z,Z0e0e/e,<   Œe. +                    ¦   «         D ]
\  Z,Z1e1e/e,<   Œg d`¢Z2 e3¦   «         Z4e2D ]Z5 e"e/e5         de(¬\¦  «        e4e5<   Œ G da„ dbe¦  «        Z6 G dc„ dde¦  «        Z7 G de„ dfe¦  «        Z8 G dg„ dhe¦  «        Z9 G di„ dje¦  «        Z: G dk„ dle¦  «        Z;dS )mz@
CLAD parser AST types
heavily based on c_ast.py in py_c_parser
é    )Úabsolute_import)Úprint_functionN)ÚStringIOc                   ó   — e Zd ZdZd„ ZdS )r   z^Override StringIO class with one which wraps output with an encode for python2/3 compatibilityc                 óf   — t           j                             | ¦  «                             d¦  «        S )NÚASCII)Úior   ÚgetvalueÚencode©Úselfs    úM/home/metal/girl-os/anki/victor/victor-clad/tools/message-buffers/clad/ast.pyr
   zStringIO.getvalue!   s&   € Ý”;×'Ò'¨Ñ-Ô-×4Ò4°WÑ=Ô=Ð=ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   © r   r   r   r      s)   € € € € € ØhÐhð	>ð 	>ð 	>ð 	>ð 	>r   r   é   )Ú	plyparserc                   ó:   — e Zd Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚDefaultQualifiedNamerc                 ó,   — d                      |¦  «        S ©Nz::)Újoin)ÚclsÚargss     r   r   zDefaultQualifiedNamer.join*   s   € à�yŠy˜‰ŒÐr   c                 ó   — d|z   S r   r   )r   Úqualified_names     r   Údisambiguatez"DefaultQualifiedNamer.disambiguate.   s   € à�nÑ$Ð$r   N)r   r   r   Úclassmethodr   r    r   r   r   r   r   (   sH   € € € € € àðð ñ „[ðð ð%ð %ñ „[ð%ð %ð %r   r   c                   ó<   — e Zd ZdZd„ Zd„ Zej        dddddfd„ZdS )ÚNodez  Base object for AST Nodes.
    c                 ó   — || _         d S ©N©Úcoord)r   r'   s     r   Ú__init__zNode.__init__5   s   € ØˆŒ
ˆ
ˆ
r   c                 ó   — g S )z3 A sequence of all children that are Nodes
        r   r   s    r   ÚchildrenzNode.children8   s	   € ð ˆ	r   r   FNc                 ó.  ‡ — d|z  }|r.|�,|                      |‰ j        j        z   dz   |z   dz   ¦  «         n%|                      |‰ j        j        z   dz   ¦  «         ‰ j        r||r3ˆ fd„‰ j        D ¦   «         }d                     d„ |D ¦   «         ¦  «        }	n2ˆ fd	„‰ j        D ¦   «         }
d                     d
„ |
D ¦   «         ¦  «        }	|                      |	¦  «         |r4|                      d‰ j        z  ¦  «         |                      d¦  «         dS dS )zb Print the Node and its attributes to a buffer.
        TODO: describe all of the kw_args
        ú Nz <z>: z: c           	      óž   •— g | ]I}|t          t          ‰|¦  «        ¦  «        st          ‰|¦  «        n t          ‰|¦  «        ¦   «         f‘ŒJS r   ©ÚcallableÚgetattr©Ú.0Únr   s     €r   ú
<listcomp>zNode.show.<locals>.<listcomp>J   sq   ø€ ð Nð Nð NØ89ð µh½wÀtÈQÑ?OÔ?OÑ6PÔ6Pð 3�g d¨AÑ.Ô.Ð.Ø 0¥¨¨aÑ 0Ô 0Ñ 2Ô 2ð4ð Nð Nð Nr   z, c              3   ó    K  — | ]	}d |z  V — Œ
dS )z%s=%sNr   )r2   Únvs     r   ú	<genexpr>zNode.show.<locals>.<genexpr>L   s&   è è € Ð#BÐ#B°R G¨b¡LÐ#BÐ#BÐ#BÐ#BÐ#BÐ#Br   c                 óš   •— g | ]G}t          t          ‰|¦  «        ¦  «        st          ‰|¦  «        n t          ‰|¦  «        ¦   «         ‘ŒHS r   r.   r1   s     €r   r4   zNode.show.<locals>.<listcomp>N   sj   ø€ ð Mð Mð MØ78õ 2:½'À$ÈÑ:JÔ:JÑ1KÔ1Kð 3�  qÑ)Ô)Ð)Ø 0¥¨¨aÑ 0Ô 0Ñ 2Ô 2ðMð Mð Mr   c              3   ó    K  — | ]	}d |z  V — Œ
dS )z%sNr   )r2   Úvs     r   r7   zNode.show.<locals>.<genexpr>P   s&   è è € Ð#<Ð#<° D¨1¡HÐ#<Ð#<Ð#<Ð#<Ð#<Ð#<r   z (at %s)ú
)ÚwriteÚ	__class__r   Ú
attr_namesr   r'   )r   ÚoutputÚoffsetÚ	nodenamesÚ	attrnamesÚ	showcoordÚ
_node_nameÚleadÚnvlistÚattrstrÚvlists   `          r   Úshowz	Node.show=   sv  ø€ ð
 �V‰|ˆØð 	@˜Ð/Ø�LŠL˜ ¤Ô 7Ñ7¸$Ñ>ÀÑKÈeÑSÑTÔTÐTÐTà�LŠL˜ ¤Ô 7Ñ7¸$Ñ>Ñ?Ô?Ð?àŒ?ð 		"Øð =ðNð Nð Nð NØ=A¼_ðNñ Nô N�àŸ)š)Ð#BÐ#B¸6Ð#BÑ#BÔ#BÑBÔB��ðMð Mð Mð MØ<@¼OðMñ Mô M�àŸ)š)Ð#<Ð#<°eÐ#<Ñ#<Ô#<Ñ<Ô<�Ø�LŠL˜Ñ!Ô!Ð!àð 	Ø�LŠL˜ d¤jÑ0Ñ1Ô1Ð1Ø�LŠL˜ÑÔÐÐÐð	ð 	r   )	r   r   r   r   r(   r*   ÚsysÚstdoutrI   r   r   r   r#   r#   2   sb   € € € € € ðð ðð ð ðð ð ð
 œ*¨QØ¨¸È4ðð ð ð ð ð r   r#   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚNodeVisitorz¾ A base Node Visitor class for visiting ast nodes.
        Subclass this and define your own visit_XXX methods,
        where XXX is the class name you want to visit with these methods.
    c                 óú   — d|j         j        z   }t          | |d¦  «        }|� ||g|¢R i |¤ŽS |j         j        D ]0}d|j        z   dz   }t          | |d¦  «        }|� ||g|¢R i |¤Žc S Œ1 | j        |g|¢R i |¤ŽS )z Visit a node.
        Úvisit_NÚ	_subclass)r=   r   r0   Ú	__bases__Úgeneric_visit)r   Únoder   ÚkwargsÚmethodÚvisitorÚbases          r   ÚvisitzNodeVisitor.visit\   sÔ   € ð ˜DœNÔ3Ñ3ˆÝ˜$ ¨Ñ-Ô-ˆØÐØ�7˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1Ð1àœÔ0ð :ð :�Ø! D¤MÑ1°KÑ?�Ý! $¨°Ñ5Ô5�ØÐ&Ø"˜7 4Ð9¨$Ð9Ð9Ð9°&Ð9Ð9Ð9Ð9Ð9ð 'à%�4Ô% dÐ<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<r   c                 ó\   — |                      ¦   «         D ]\  }} | j        |g|¢R i |¤Ž ŒdS )zy Called if no explicit visitor function exists for a node.
            Implements preorder visiting of the node.
        N)r*   rX   )r   rS   r   rT   Úc_nameÚcs         r   rR   zNodeVisitor.generic_visitk   sN   € ð Ÿš™œð 	+ð 	+‰IˆF�AØˆDŒJ�qÐ*˜4Ð*Ð*Ð* 6Ð*Ð*Ð*Ð*ð	+ð 	+r   N)r   r   r   r   rX   rR   r   r   r   rM   rM   W   s<   € € € € € ðð ð=ð =ð =ð+ð +ð +ð +ð +r   rM   c                   ó:   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ ZdZˆ xZ	S )ÚDeclListc                 óf   •— t          t          | ¦  «                             |¦  «         || _        d S r%   )Úsuperr]   r(   Ú	decl_list)r   r`   r'   r=   s      €r   r(   zDeclList.__init__u   s,   ø€ Ý�h˜ÑÔ×&Ò& uÑ-Ô-Ð-Ø"ˆŒˆˆr   c                 ó�   — g }t          | j        pg ¦  «        D ]\  }}|                     d|z  |f¦  «         Œ t          |¦  «        S )Nzdecl[%d])Ú	enumerater`   ÚappendÚtuple©r   ÚnodelistÚiÚchilds       r   r*   zDeclList.childreny   sS   € ØˆÝ! $¤.Ð"6°BÑ7Ô7ð 	5ð 	5‰HˆAˆuØ�OŠO˜Z¨!™^¨UÐ3Ñ4Ô4Ð4Ð4Ý�X‰ŒÐr   c                 ó:   — | j                              |¦  «         | S r%   )r`   rc   ©r   Údecls     r   rc   zDeclList.append   s   € ØŒ×Ò˜dÑ#Ô#Ð#Øˆr   c                 ó:   — | j                              |¦  «         d S r%   )r`   Úremoverj   s     r   rm   zDeclList.removeƒ   s   € ØŒ×Ò˜dÑ#Ô#Ð#Ð#Ð#r   c                 ó*   — t          | j        ¦  «        S r%   )Úlenr`   r   s    r   ÚlengthzDeclList.length†   s   € Ý�4”>Ñ"Ô"Ð"r   r   )
r   r   r   r(   r*   rc   rm   rp   r>   Ú__classcell__©r=   s   @r   r]   r]   t   so   ø€ € € € € ð#ð #ð #ð #ð #ðð ð ðð ð ð$ð $ð $ð#ð #ð #ð €J€J€J€J€Jr   r]   c                   ó�   ‡ — e Zd Zdˆ fd„	Z eddg¦  «        Zefd„Zefd„Ze	d„ ¦   «         Z
e
j        d„ ¦   «         Z
d	„ Zd
„ Zˆ xZS )ÚDeclNc                 óž   •— t          t          | ¦  «                             |¦  «         || _        || _        || _        d| _        d| _        d S )NÚInvalidF)r_   rt   r(   Únamer'   Ú
_namespaceÚhash_strÚpossibly_ambiguous)r   rw   r'   Ú	namespacer=   s       €r   r(   zDecl.__init__Œ   sK   ø€ Ý�d�DÑÔ×"Ò" 5Ñ)Ô)Ð)ØˆŒ	ØˆŒ
Ø#ˆŒØ!ˆŒØ"'ˆÔÐÐr   ry   rz   c                 óü   — | j         |k    r| j        S | j         r=| j                              ||¬¦  «        |                     t          | j        ¦  «        z   S t          d                     |j        ¦  «        ¦  «        ‚)ú9The fully-qualified name relative to the given namespace.©ÚnamerzNode not in namespace {0}.)r{   rw   Úrelative_qualified_namer   Ú	separatorÚ
ValueErrorÚformat©r   Úbase_namespacer   s      r   r€   zDecl.relative_qualified_name—   sy   € àŒ>˜^Ò+Ð+Ø”9ÐØŒ^ð 	WØ”>×9Ò9¸.ÐPUÐ9ÑVÔVÐY^×YcÒYcÕdmÐosÔoxÑYyÔYyÑyÐyåÐ9×@Ò@ÀÔATÑUÔUÑVÔVÐVr   c                 ó¸   — | j         }| j        �/|                     | j                             |¬¦  «        |¦  «        }| j        r|                     |¦  «        }|S )z8 List of namespaces, with the most specific being first Nr~   )rw   r{   r   Úfully_qualified_namerz   r    ©r   r   Úresults      r   r‡   zDecl.fully_qualified_name    s[   € à”ˆØŒ>Ð%Ø—Z’Z ¤× CÒ CÈ%Ð CÑ PÔ PÐRXÑYÔYˆFØÔ"ð 	0Ø×'Ò'¨Ñ/Ô/ˆFØˆr   c                 ó   — | j         S r%   ©rx   r   s    r   r{   zDecl.namespace©   s
   € àŒÐr   c                 ó   — || _         d S r%   r‹   ©r   Úvalues     r   r{   zDecl.namespace­   s   € àˆŒˆˆr   c                 óF   — | j         r| j                              ¦   «         S g S r%   )r{   Úget_hierarchy_listr   s    r   Únamespace_listzDecl.namespace_list±   s%   € ØŒ>ð 	Ø”>×4Ò4Ñ6Ô6Ð6àˆIr   c                 ó*   — |                       ¦   «         S r%   ©r‡   r   s    r   Ú__str__zDecl.__str__·   ó   € Ø×(Ò(Ñ*Ô*Ð*r   r%   )r   r   r   r(   rd   r>   r   r€   r‡   Úpropertyr{   Úsetterr‘   r”   rq   rr   s   @r   rt   rt   ‹   sà   ø€ € € € € ð(ð (ð (ð (ð (ð (ð �˜
Ð$8Ð9Ñ:Ô:€Jà<Qð Wð Wð Wð Wð *?ð ð ð ð ð ðð ñ „Xðð Ôð ð  ñ Ôð ðð ð ð+ð +ð +ð +ð +ð +ð +r   rt   c                   ód   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	 e
d	d
g¦  «        Zd„ Zˆ xZS )ÚNamespaceDeclNc                 óz   •— t          t          | ¦  «                             |||¬¦  «         || _        d| _        d S )N©r'   r{   F)r_   r™   r(   r`   rz   )r   rw   r`   r'   r{   r=   s        €r   r(   zNamespaceDecl.__init__»   s=   ø€ Ý�m˜TÑ"Ô"×+Ò+¨D¸ÈÐ+ÑSÔSÐSØ"ˆŒØ"'ˆÔÐÐr   c                 ó,   — |r|j         }| |k    rdS |°dS ©NTF)r{   rj   s     r   Ú__contains__zNamespaceDecl.__contains__À   s0   € Øð 	Ø”>ˆDØ�tŠ|ˆ|Ø�tð ð 	ð ˆur   c                 óŠ   — t          | t          |¦  «        ¦  «        r | j        |j        k    o| j        |j        k    S t          S r%   )Ú
isinstanceÚtyperw   r{   ÚNotImplemented©r   Úothers     r   Ú__eq__zNamespaceDecl.__eq__Ç   s=   € Ý�d�D ™KœKÑ(Ô(ð 	"Ø”9 ¤
Ò*ÐP¨t¬~ÀÄÒ/PÐPå!Ð!r   c                 óv   — t          | t          |¦  «        ¦  «        r|                      |¦  «         S t          S r%   )r    r¡   r¥   r¢   r£   s     r   Ú__ne__zNamespaceDecl.__ne__Í   s5   € Ý�d�D ™KœKÑ(Ô(ð 	"Ø—{’{ 5Ñ)Ô)Ð)Ð)å!Ð!r   c                 ój   — g }| j         �|                     d| j         f¦  «         t          |¦  «        S ©NÚmembers©r`   rc   rd   ©r   rf   s     r   r*   zNamespaceDecl.childrenÓ   ó3   € ØˆØŒ>Ð% x§¢¸	À4Ä>Ð7RÑ'SÔ'SÐ'SÝ�X‰ŒÐr   c                 ó   — | j         j        S r%   ©r`   rª   r   s    r   rª   zNamespaceDecl.membersØ   ó   € ØŒ~Ô%Ð%r   c                 óh   — g }| }|r|                      |¦  «         |j        }|°t          |¦  «        S r%   )rc   r{   Úreversed)r   Úbackwards_listÚcurrents      r   r�   z NamespaceDecl.get_hierarchy_listÛ   sJ   € ØˆØˆØð 	(Ø×!Ò! 'Ñ*Ô*Ð*ØÔ'ˆGð ð 	(õ ˜Ñ'Ô'Ð'r   rw   r‡   c                 ó*   — |                       ¦   «         S r%   r“   r   s    r   r”   zNamespaceDecl.__str__å   r•   r   r%   )r   r   r   r(   rž   r¥   r§   r*   rª   r�   rd   r>   r”   rq   rr   s   @r   r™   r™   º   s½   ø€ € € € € ð(ð (ð (ð (ð (ð (ð
ð ð ð"ð "ð "ð"ð "ð "ðð ð ð
&ð &ð &ð(ð (ð (ð �˜Ð 6Ð7Ñ8Ô8€Jð+ð +ð +ð +ð +ð +ð +r   r™   c                   óH   ‡ — e Zd Zˆ fd„Zd„ Zd„ Z edg¦  «        Zd„ Zˆ xZ	S )ÚIncludeDeclc                 ót   •— t          t          | ¦  «                             |¦  «         || _        || _        d S r%   )r_   r·   r(   rw   r`   )r   rw   r`   r'   r=   s       €r   r(   zIncludeDecl.__init__é   s3   ø€ Ý�k˜4Ñ Ô ×)Ò)¨%Ñ0Ô0Ð0ØˆŒ	Ø"ˆŒˆˆr   c                 ój   — g }| j         �|                     d| j         f¦  «         t          |¦  «        S r©   r«   r¬   s     r   r*   zIncludeDecl.childrenî   r­   r   c                 ó   — | j         j        S r%   r¯   r   s    r   rª   zIncludeDecl.membersó   r°   r   rw   c                 ó   — | j         S r%   ©rw   r   s    r   r”   zIncludeDecl.__str__ø   ó
   € ØŒyÐr   )
r   r   r   r(   r*   rª   rd   r>   r”   rq   rr   s   @r   r·   r·   è   sv   ø€ € € € € ð#ð #ð #ð #ð #ð
ð ð ð
&ð &ð &ð �˜�x‘”€Jðð ð ð ð ð ð r   r·   c                   óp   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Z eg d¢¦  «        Zˆ xZS )ÚMessageDeclNFTc                 ó–   •— t          t          | ¦  «                             |||¬¦  «         || _        || _        || _        d| _        d S ©Nr›   ÚNone)r_   r¿   r(   r`   Ú_is_structureÚdefault_constructorry   )r   rw   r`   r'   r{   Úis_structurerÄ   r=   s          €r   r(   zMessageDecl.__init__ü   sJ   ø€ Ý�k˜4Ñ Ô ×)Ò)¨$°eÀyÐ)ÑQÔQÐQØ"ˆŒØ)ˆÔØ#6ˆÔ ØˆŒˆˆr   c                 ój   — g }| j         �|                     d| j         f¦  «         t          |¦  «        S r©   r«   r¬   s     r   r*   zMessageDecl.children  r­   r   c                 ó   — | j         j        S r%   r¯   r   s    r   rª   zMessageDecl.members  r°   r   c                 ó„   — |                       ¦   «         r+t          d„ |                       ¦   «         D ¦   «         ¦  «        S dS )ú@The alignment requirements on the message when it is a C struct.c              3   óH   K  — | ]}|j                              ¦   «         V — Œd S r%   ©r¡   Ú	alignment©r2   Úmembers     r   r7   z(MessageDecl.alignment.<locals>.<genexpr>  s0   è è € ÐLÐL°6�v”{×,Ò,Ñ.Ô.ÐLÐLÐLÐLÐLÐLr   r   )rª   Úmaxr   s    r   rÌ   zMessageDecl.alignment  s<   € à�<Š<‰>Œ>ð 	ÝÐLÐL¸T¿\º\¹^¼^ÐLÑLÔLÑLÔLÐLà�1r   c                 ó6  — |                       ¦   «         r„g }d}|                       ¦   «         D ]?} t          |j        |¦  «        ¦   «         }t          |t          ¦  «        r||z  }Œ:||z  }Œ@t          |¦  «        dk    r|                     |¦  «         |S |S dS ©Nr   )rª   r0   r¡   r    Úlistro   rc   )r   ÚaccumulatorÚsumListÚsumrÎ   Úsizes         r   Ú__message_size_helperz!MessageDecl.__message_size_helper  s¦   € Ø�<Š<‰>Œ>ð 	ØˆGØˆCØŸ,š,™.œ.ð  ð  �Ø8•w˜vœ{¨KÑ8Ô8Ñ:Ô:�Ý˜d¥DÑ)Ô)ð  Ø˜t‘O�G�Gà˜4‘K�C�Cå�7‰|Œ|˜aÒÐØ—’˜sÑ#Ô#Ð#Ø�ØˆJà�1r   c                 ó,   — |                       d¦  «        S )z�The maximum size that the transmitted message can possibly be.
        Returns a number or a list of elements that when summed represent the max message sizeÚmax_message_size©Ú!_MessageDecl__message_size_helperr   s    r   rÙ   zMessageDecl.max_message_size$  s   € ð ×)Ò)Ð*<Ñ=Ô=Ð=r   c                 ó,   — |                       d¦  «        S )a  The minimum size that the transmitted message could possibly be.
        I.e. the number of bytes that must be read in order to know how big the structure will be.
        Returns a number or a list of elements that when summed represent the min message sizeÚmin_message_sizerÚ   r   s    r   rÝ   zMessageDecl.min_message_size)  s   € ð ×)Ò)Ð*<Ñ=Ô=Ð=r   c                 ó„   — |                       ¦   «         r+t          d„ |                       ¦   «         D ¦   «         ¦  «        S dS )úEReturns true if the transmitted message will always be the same size.c              3   óH   K  — | ]}|j                              ¦   «         V — Œd S r%   )r¡   Úis_message_size_fixedrÍ   s     r   r7   z4MessageDecl.is_message_size_fixed.<locals>.<genexpr>2  s0   è è € ÐXÐX¸v�v”{×8Ò8Ñ:Ô:ÐXÐXÐXÐXÐXÐXr   T©rª   Úallr   s    r   rá   z!MessageDecl.is_message_size_fixed/  s<   € à�<Š<‰>Œ>ð 	ÝÐXÐXÈÏÊÉÌÐXÑXÔXÑXÔXÐXà�4r   c                 ó„   — |                       ¦   «         r+t          d„ |                       ¦   «         D ¦   «         ¦  «        S dS )Nc              3   óH   K  — | ]}|j                              ¦   «         V — Œd S r%   )r¡   Úare_all_representations_validrÍ   s     r   r7   z<MessageDecl.are_all_representations_valid.<locals>.<genexpr>8  s0   è è € Ð`Ð`Àv�v”{×@Ò@ÑBÔBÐ`Ð`Ð`Ð`Ð`Ð`r   Trâ   r   s    r   ræ   z)MessageDecl.are_all_representations_valid6  sA   € Ø�<Š<‰>Œ>ð 	ÝÐ`Ð`ÐQU×Q]ÒQ]ÑQ_ÔQ_Ð`Ñ`Ô`Ñ`Ô`Ð`à�4r   c                 ó   — | j         rdndS )NÚ	structureÚmessage)rÃ   r   s    r   Úobject_typezMessageDecl.object_type<  s   € Ø"Ô0Ð?ˆ{ˆ{°iÐ?r   )rw   r‡   ry   ©NFT)r   r   r   r(   r*   rª   rÌ   rÛ   rÙ   rÝ   rá   ræ   rê   rd   r>   rq   rr   s   @r   r¿   r¿   û   sÓ   ø€ € € € € ðð ð ð ð ð ðð ð ð
&ð &ð &ðð ð ðð ð ð$?ð ?ð ?ð
>ð >ð >ðð ð ðð ð ð@ð @ð @ð �ÐCÐCÐCÑDÔD€J€J€J€J€Jr   r¿   c                   óH   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Z edg¦  «        Zˆ xZ	S )ÚMessageMemberDeclListc                 óf   •— t          t          | ¦  «                             |¦  «         || _        d S r%   )r_   rí   r(   rª   ©r   rª   r'   r=   s      €r   r(   zMessageMemberDeclList.__init__B  ó-   ø€ ÝÕ# TÑ*Ô*×3Ò3°EÑ:Ô:Ð:ØˆŒˆˆr   c                 ó�   — g }t          | j        pg ¦  «        D ]\  }}|                     d|z  |f¦  «         Œ t          |¦  «        S ©Nz
member[%d]©rb   rª   rc   rd   re   s       r   r*   zMessageMemberDeclList.childrenF  sT   € ØˆÝ! $¤,Ð"4°"Ñ5Ô5ð 	7ð 	7‰HˆAˆuØ�OŠO˜\¨AÑ-¨uÐ5Ñ6Ô6Ð6Ð6Ý�X‰ŒÐr   c                 ó:   — | j                              |¦  «         | S r%   ©rª   rc   ©r   rÎ   s     r   rc   zMessageMemberDeclList.appendL  ó   € ØŒ×Ò˜FÑ#Ô#Ð#Øˆr   c                 ó*   — t          | j        ¦  «        S r%   )ro   rª   r   s    r   rp   zMessageMemberDeclList.lengthP  s   € Ý�4”<Ñ Ô Ð r   rp   )
r   r   r   r(   r*   rc   rp   rd   r>   rq   rr   s   @r   rí   rí   A  sl   ø€ € € € € ðð ð ð ð ðð ð ðð ð ð!ð !ð !ð �˜�zÑ"Ô"€J€J€J€J€Jr   rí   c                   ó.   ‡ — e Zd Zˆ fd„Zd„ ZdZd„ Zˆ xZS )ÚMessageMemberDeclc                 ó�   •— t          t          | ¦  «                             |¦  «         || _        || _        || _        d | _        d S r%   )r_   rú   r(   rw   r¡   ÚinitÚtag)r   rw   r¡   rü   r'   r=   s        €r   r(   zMessageMemberDecl.__init__W  sB   ø€ ÝÕ Ñ&Ô&×/Ò/°Ñ6Ô6Ð6ØˆŒ	ØˆŒ	ØˆŒ	ØˆŒˆˆr   c                 ó°   — g }| j         �|                     d| j         f¦  «         | j        �|                     d| j        f¦  «         t          |¦  «        S )Nr¡   rü   )r¡   rc   rü   rd   r¬   s     r   r*   zMessageMemberDecl.children^  sS   € ØˆØŒ9Ð  (§/¢/°6¸4¼9Ð2EÑ"FÔ"FÐ"FØŒ9Ð  (§/¢/°6¸4¼9Ð2EÑ"FÔ"FÐ"FÝ�X‰ŒÐr   )rw   r¡   c                 ó   — | j         S r%   r¼   r   s    r   r”   zMessageMemberDecl.__str__f  r½   r   )r   r   r   r(   r*   r>   r”   rq   rr   s   @r   rú   rú   V  s]   ø€ € € € € ðð ð ð ð ðð ð ð "€Jðð ð ð ð ð ð r   rú   c                   ód   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
 eg d
¢¦  «        Zˆ xZS )ÚEnumDeclNc                 óš   •— t          t          | ¦  «                             |||¬¦  «         || _        |pg | _        || _        d| _        d S rÁ   )r_   r  r(   Ústorage_typeÚmember_listÚ	cpp_classry   )r   rw   r  r  r  r'   r{   r=   s          €r   r(   zEnumDecl.__init__j  sO   ø€ Ý�h˜ÑÔ×&Ò& t°5ÀIÐ&ÑNÔNÐNØ(ˆÔØ&Ð,¨"ˆÔØ"ˆŒØˆŒˆˆr   c                 ó4   — d| j         fg}t          |¦  «        S ©Nr  ©r  rd   r¬   s     r   r*   zEnumDecl.childrenq  ó   € Ø" DÔ$4Ð5Ð6ˆÝ�X‰ŒÐr   c                 ó   — | j         j        S r%   ©r  rª   r   s    r   rª   zEnumDecl.membersu  ó   € ØÔÔ'Ð'r   c                 ó4   — | j                              ¦   «         S r%   )r  rÌ   r   s    r   rÌ   zEnumDecl.alignmentx  s   € ØÔ ×*Ò*Ñ,Ô,Ð,r   c                 ó4   — | j                              ¦   «         S r%   )r  rÙ   r   s    r   rÙ   zEnumDecl.max_message_size{  ó   € ØÔ ×1Ò1Ñ3Ô3Ð3r   c                 ó4   — | j                              ¦   «         S r%   )r  rÝ   r   s    r   rÝ   zEnumDecl.min_message_size~  r  r   c                 ó4   — | j                              ¦   «         S r%   )r  rá   r   s    r   rá   zEnumDecl.is_message_size_fixed�  s   € ØÔ ×6Ò6Ñ8Ô8Ð8r   c                 ó4   — | j                              ¦   «         S r%   )r  ræ   r   s    r   ræ   z&EnumDecl.are_all_representations_valid„  s   € ØÔ ×>Ò>Ñ@Ô@Ð@r   )rw   r‡   r  ry   r%   )r   r   r   r(   r*   rª   rÌ   rÙ   rÝ   rá   ræ   rd   r>   rq   rr   s   @r   r  r  i  sµ   ø€ € € € € ðð ð ð ð ð ðð ð ð(ð (ð (ð-ð -ð -ð4ð 4ð 4ð4ð 4ð 4ð9ð 9ð 9ðAð Að Að �ÐSÐSÐSÑTÔT€J€J€J€J€Jr   r  c                   ó.   ‡ — e Zd Zˆ fd„Zd„ Zd„ ZdZˆ xZS )ÚEnumMemberListc                 óf   •— t          t          | ¦  «                             |¦  «         || _        d S r%   )r_   r  r(   rª   rï   s      €r   r(   zEnumMemberList.__init__Š  s,   ø€ Ý�n˜dÑ#Ô#×,Ò,¨UÑ3Ô3Ð3ØˆŒˆˆr   c                 óŒ   — g }t          | j        ¦  «        D ]\  }}|                     d|z  |f¦  «         Œ t          |¦  «        S rò   ró   re   s       r   r*   zEnumMemberList.childrenŽ  óO   € ØˆÝ! $¤,Ñ/Ô/ð 	7ð 	7‰HˆAˆuØ�OŠO˜\¨AÑ-¨uÐ5Ñ6Ô6Ð6Ð6Ý�X‰ŒÐr   c                 ó:   — | j                              |¦  «         | S r%   rõ   rö   s     r   rc   zEnumMemberList.append”  r÷   r   r   ©r   r   r   r(   r*   rc   r>   rq   rr   s   @r   r  r  ‰  óQ   ø€ € € € € ðð ð ð ð ðð ð ðð ð ð €J€J€J€J€Jr   r  c                   ó<   ‡ — e Zd Zˆ fd„Zd„ Z edg¦  «        Zˆ xZS )Ú
EnumMemberc                 ó�   •— t          t          | ¦  «                             |¦  «         || _        || _        d | _        d| _        d S ©NF)r_   r  r(   rw   ÚinitializerrŽ   Úis_duplicate)r   rw   r  r'   r=   s       €r   r(   zEnumMember.__init__›  sE   ø€ Ý�j˜$ÑÔ×(Ò(¨Ñ/Ô/Ð/ØˆŒ	Ø&ˆÔØˆŒ
Ø!ˆÔÐÐr   c                 ój   — g }| j         r|                     d| j         f¦  «         t          |¦  «        S )Nr  )r  rc   rd   r¬   s     r   r*   zEnumMember.children¢  s8   € ØˆØÔð 	?Ø�OŠO˜]¨DÔ,<Ð=Ñ>Ô>Ð>Ý�X‰ŒÐr   rw   ©r   r   r   r(   r*   rd   r>   rq   rr   s   @r   r  r  š  sL   ø€ € € € € ð"ð "ð "ð "ð "ðð ð ð �˜�x‘”€J€J€J€J€Jr   r  c                   óš   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ ZdZed„ ¦   «         Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zed„ ¦   «         Z eg d¢¦  «        Zˆ xZS )Ú	UnionDeclNFc                 óº   •— t          t          | ¦  «                             |||¬¦  «         || _        t          d         | _        d| _        || _        || _        d S )Nr›   Úuint_8rÂ   )	r_   r$  r(   r  Úbuiltin_typesÚtag_storage_typery   Ú_is_explicit_auto_unionÚ_dupes_allowed)r   rw   r  r'   r{   Úis_explicit_auto_unionÚdupes_allowedr=   s          €r   r(   zUnionDecl.__init__«  sZ   ø€ Ý�i˜ÑÔ×'Ò'¨°EÀYÐ'ÑOÔOÐOØ&ˆÔÝ -¨hÔ 7ˆÔØˆŒØ'=ˆÔ$Ø+ˆÔÐÐr   c                 ó4   — d| j         fg}t          |¦  «        S r  r  r¬   s     r   r*   zUnionDecl.children³  r	  r   c                 ó   — | j         j        S r%   r  r   s    r   rª   zUnionDecl.members·  r  r   éÿ   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|j         |fV — Œd S r%   )rý   rÍ   s     r   r7   z+UnionDecl.members_by_tag.<locals>.<genexpr>¾  s)   è è € ÐFÐF¨V�V”Z Ð(ÐFÐFÐFÐFÐFÐFr   )Údictrª   r   s    r   Úmembers_by_tagzUnionDecl.members_by_tag¼  s'   € åÐFÐF°t·|²|±~´~ÐFÑFÔFÑFÔFÐFr   c                 ó   — |                       ¦   «         rRt          d„ |                       ¦   «         D ¦   «         ¦  «        }t          || j                             ¦   «         ¦  «        S | j                             ¦   «         S )rÉ   c              3   óH   K  — | ]}|j                              ¦   «         V — Œd S r%   rË   rÍ   s     r   r7   z&UnionDecl.alignment.<locals>.<genexpr>Ã  s0   è è € ÐQÐQ¸˜FœK×1Ò1Ñ3Ô3ÐQÐQÐQÐQÐQÐQr   )rª   rÏ   r(  rÌ   )r   rÌ   s     r   rÌ   zUnionDecl.alignmentÀ  sj   € à�<Š<‰>Œ>ð 	5ÝÐQÐQÀ$Ç,Â,Á.Ä.ÐQÑQÔQÑQÔQˆIÝ�y $Ô"7×"AÒ"AÑ"CÔ"CÑDÔDÐDàÔ(×2Ò2Ñ4Ô4Ð4r   c                 óæ   — |                       ¦   «         rE| j                             ¦   «         t          d„ |                       ¦   «         D ¦   «         ¦  «        z   S | j                             ¦   «         S )z>The maximum size that the transmitted message can possibly be.c              3   óH   K  — | ]}|j                              ¦   «         V — Œd S r%   )r¡   rÙ   rÍ   s     r   r7   z-UnionDecl.max_message_size.<locals>.<genexpr>Ë  ó1   è è € ÐA~ÐA~ÐekÀ&Ä+×B^ÒB^ÑB`ÔB`ÐA~ÐA~ÐA~ÐA~ÐA~ÐA~r   )rª   r(  rÙ   rÏ   r   s    r   rÙ   zUnionDecl.max_message_sizeÈ  óe   € à�<Š<‰>Œ>ð 	<ØÔ(×9Ò9Ñ;Ô;½cÐA~ÐA~Ðos×o{Òo{Ño}Ôo}ÐA~ÑA~ÔA~Ñ>~Ô>~Ñ~Ð~àÔ(×9Ò9Ñ;Ô;Ð;r   c                 óæ   — |                       ¦   «         rE| j                             ¦   «         t          d„ |                       ¦   «         D ¦   «         ¦  «        z   S | j                             ¦   «         S )z>The minimum size that the transmitted message can possibly be.c              3   óH   K  — | ]}|j                              ¦   «         V — Œd S r%   )r¡   rÝ   rÍ   s     r   r7   z-UnionDecl.min_message_size.<locals>.<genexpr>Ò  r8  r   )rª   r(  rÝ   Úminr   s    r   rÝ   zUnionDecl.min_message_sizeÏ  r9  r   c                 ód  — |                       ¦   «         r„|                       ¦   «         d         j                             ¦   «         }|                       ¦   «         D ]>}|j                             ¦   «         s dS |j                             ¦   «         |k    r dS Œ?| j                             ¦   «         S )rß   r   F)rª   r¡   rÙ   rá   r(  )r   rÖ   rÎ   s      r   rá   zUnionDecl.is_message_size_fixedÖ  s¡   € à�<Š<‰>Œ>ð 	!Ø—<’<‘>”> !Ô$Ô)×:Ò:Ñ<Ô<ˆDØŸ,š,™.œ.ð !ð !�Ø”{×8Ò8Ñ:Ô:ð !Ø ˜5˜5Ø”;×/Ò/Ñ1Ô1°TÒ9Ð9Ø ˜5˜5ð :àÔ$×:Ò:Ñ<Ô<Ð<r   c                 ó   — dS )zDCan always be invalid, because the union tag can be the invalid tag.Fr   r   s    r   ræ   z'UnionDecl.are_all_representations_validá  ó   € àˆur   c                 ó   — | j         S r%   )r)  r   s    r   r+  z UnionDecl.is_explicit_auto_unionå  s   € ØÔ+Ð+r   c                 ó   — | j         S r%   )r*  r   s    r   r,  zUnionDecl.dupes_allowedè  s   € àÔ"Ð"r   )rw   r‡   rÌ   ry   )NFF)r   r   r   r(   r*   rª   Úinvalid_tagr–   r3  rÌ   rÙ   rÝ   rá   ræ   r+  r,  rd   r>   rq   rr   s   @r   r$  r$  ª  sÿ   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð ,ðð ð ð(ð (ð (ð €KàðGð Gñ „XðGð5ð 5ð 5ð<ð <ð <ð<ð <ð <ð	=ð 	=ð 	=ðð ð ð,ð ,ð ,ð ð#ð #ñ „Xð#ð �ÐPÐPÐPÑQÔQ€J€J€J€J€Jr   r$  c                   óL   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Z eg d¢¦  «        Zˆ xZ	S )ÚEnumConceptDeclNc                 óš   •— t          t          | ¦  «                             |||¬¦  «         || _        || _        |pg | _        d| _        d S rÁ   )r_   rD  r(   Úreturn_typeÚenumr  ry   )r   rw   rF  rG  r  r'   r{   r=   s          €r   r(   zEnumConceptDecl.__init__ï  sO   ø€ Ý�o˜tÑ$Ô$×-Ò-¨d¸%È9Ð-ÑUÔUÐUØ&ˆÔØˆŒ	Ø&Ð,¨"ˆÔØˆŒˆˆr   c                 ó4   — d| j         fg}t          |¦  «        S r  r  r¬   s     r   r*   zEnumConceptDecl.childrenö  r	  r   c                 ó   — | j         j        S r%   r  r   s    r   rª   zEnumConceptDecl.membersú  r  r   c                 ó   — | j         j        S r%   )rF  r¡   r   s    r   Úreturn_type_as_stringz%EnumConceptDecl.return_type_as_stringý  s   € ØÔÔ$Ð$r   )rw   r‡   rK  rG  ry   r%   )
r   r   r   r(   r*   rª   rK  rd   r>   rq   rr   s   @r   rD  rD  î  sv   ø€ € € € € ðð ð ð ð ð ðð ð ð(ð (ð (ð%ð %ð %ð �ÐdÐdÐdÑeÔe€J€J€J€J€Jr   rD  c                   ó.   ‡ — e Zd Zˆ fd„Zd„ Zd„ ZdZˆ xZS )ÚEnumConceptMemberListc                 óf   •— t          t          | ¦  «                             |¦  «         || _        d S r%   )r_   rM  r(   rª   rï   s      €r   r(   zEnumConceptMemberList.__init__  rð   r   c                 óŒ   — g }t          | j        ¦  «        D ]\  }}|                     d|z  |f¦  «         Œ t          |¦  «        S rò   ró   re   s       r   r*   zEnumConceptMemberList.children  r  r   c                 ó:   — | j                              |¦  «         | S r%   rõ   rö   s     r   rc   zEnumConceptMemberList.append  r÷   r   r   r  rr   s   @r   rM  rM    r  r   rM  c                   ó<   ‡ — e Zd Zˆ fd„Zd„ Z edg¦  «        Zˆ xZS )ÚEnumConceptMemberc                 ót   •— t          t          | ¦  «                             |¦  «         || _        || _        d S r%   )r_   rR  r(   rw   rŽ   )r   rw   rŽ   r'   r=   s       €r   r(   zEnumConceptMember.__init__  s4   ø€ ÝÕ Ñ&Ô&×/Ò/°Ñ6Ô6Ð6ØˆŒ	ØˆŒ
ˆ
ˆ
r   c                 ó\   — g }|                      d| j        f¦  «         t          |¦  «        S )NrŽ   )rc   rŽ   rd   r¬   s     r   r*   zEnumConceptMember.children  s,   € ØˆØ�Š˜ $¤*Ð-Ñ.Ô.Ð.Ý�X‰ŒÐr   rw   r"  rr   s   @r   rR  rR    sL   ø€ € € € € ðð ð ð ð ð
ð ð ð
 �˜�x‘”€J€J€J€J€Jr   rR  c                   óŽ   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
efd	„Zed
„ ¦   «         Zej        d„ ¦   «         Zd„ Zˆ xZS )ÚTypec                 ót   •— t          t          | ¦  «                             |¦  «         || _        d| _        d S r  )r_   rV  r(   rw   Ú_possibly_ambiguous)r   rw   r'   r=   s      €r   r(   zType.__init__"  s6   ø€ Ý�d�DÑÔ×"Ò" 5Ñ)Ô)Ð)ØˆŒ	à#(ˆÔ Ð Ð r   c                 ó   — d S r%   r   r   s    r   Úbuiltin_typezType.builtin_type(  ó   € Øˆtr   c                 ó    — t          g ¦  «        S r%   ©rd   r   s    r   r*   zType.children+  s   € Ý�R‰yŒyÐr   c                 ó   — dS )z,The alignment requirements on the type in C.Nr   r   s    r   rÌ   zType.alignment.  ó   € àˆtr   c                 ó   — dS )z;The maximum size that the transmitted type can possibly be.Nr   r   s    r   rÙ   zType.max_message_size2  r_  r   c                 ó   — dS )z;The minimum size that the transmitted type can possibly be.Nr   r   s    r   rÝ   zType.min_message_size6  r_  r   c                 ó   — dS )zBReturns true if the transmitted type will always be the same size.Fr   r   s    r   rá   zType.is_message_size_fixed:  r?  r   c                 ó   — dS )zPReturns true if all bit representations of this type are considered valid input.Fr   r   s    r   ræ   z"Type.are_all_representations_valid>  r?  r   c                 óL   — | j         }| j        r|                     |¦  «        }|S r%   )rw   rz   r    rˆ   s      r   r‡   zType.fully_qualified_nameB  s,   € Ø”ˆØÔ"ð 	0Ø×'Ò'¨Ñ/Ô/ˆFØˆr   c                 ó   — | j         S r%   ©rX  r   s    r   rz   zType.possibly_ambiguousH  s   € àÔ'Ð'r   c                 ó   — || _         d S r%   rf  r�   s     r   rz   zType.possibly_ambiguousL  s   € à#(ˆÔ Ð Ð r   c                 ó   — | j         S r%   r¼   r   s    r   r”   zType.__str__P  r½   r   )r   r   r   r(   rZ  r*   rÌ   rÙ   rÝ   rá   ræ   r   r‡   r–   rz   r—   r”   rq   rr   s   @r   rV  rV  !  s  ø€ € € € € ð)ð )ð )ð )ð )ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð *?ð ð ð ð ð ð(ð (ñ „Xð(ð Ôð)ð )ñ Ôð)ðð ð ð ð ð ð r   rV  c                   ó^   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Z	 e
g d
¢¦  «        Zˆ xZS )ÚBuiltinTypeFNc                 ó    •— t          t          | ¦  «                             ||¦  «         || _        || _        || _        || _        || _        d S r%   )r_   rj  r(   rÖ   r¡   Úunsignedr<  rÏ   )	r   rw   r¡   rÖ   r'   rl  r<  rÏ   r=   s	           €r   r(   zBuiltinType.__init__U  sJ   ø€ Ý�k˜4Ñ Ô ×)Ò)¨$°Ñ6Ô6Ð6ØˆŒ	ØˆŒ	Ø ˆŒØˆŒØˆŒˆˆr   c                 ó   — | S r%   r   r   s    r   rZ  zBuiltinType.builtin_type]  s   € Øˆr   c                 ó   — | j         S r%   ©rÖ   r   s    r   rÌ   zBuiltinType.alignment`  r½   r   c                 ó   — | j         S r%   ro  r   s    r   rÙ   zBuiltinType.max_message_sizec  r½   r   c                 ó   — | j         S r%   ro  r   s    r   rÝ   zBuiltinType.min_message_sizef  r½   r   c                 ó   — dS ©NTr   r   s    r   rá   z!BuiltinType.is_message_size_fixedi  r[  r   c                 ó   — dS rs  r   r   s    r   ræ   z)BuiltinType.are_all_representations_validl  r[  r   )rw   rÖ   r¡   rl  r<  rÏ   )FNN)r   r   r   r(   rZ  rÌ   rÙ   rÝ   rá   ræ   rd   r>   rq   rr   s   @r   rj  rj  S  s£   ø€ € € € € ðð ð ð ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð �ÐIÐIÐIÑJÔJ€J€J€J€J€Jr   rj  c                   ó`   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
 ed	g¦  «        Zˆ xZS )
ÚVariableArrayTypec                 óà   •— t          t          | ¦  «                             |j        ›d|j        ›d�|¦  «         || _        || _        |�|| _        d| _        d S |j        | _        d| _        d S )Nú[ú]TF)	r_   rv  r(   rw   Úmember_typeÚlength_typeÚ
max_lengthÚmax_length_is_specifiedrÏ   )r   rz  r{  r|  r'   r=   s        €r   r(   zVariableArrayType.__init__r  s~   ø€ ÝÕ Ñ&Ô&×/Ò/¸KÔ<LÐ<LÐ<LÈkÔN^ÐN^ÐN^Ð0_ÐafÑgÔgÐgØ&ˆÔØ&ˆÔØÐ!Ø(ˆDŒOØ+/ˆDÔ(Ð(Ð(à)œoˆDŒOØ+0ˆDÔ(Ð(Ð(r   c                 ó4   — | j                              ¦   «         S r%   ©rz  rZ  r   s    r   rZ  zVariableArrayType.builtin_type}  ó   € ØÔ×,Ò,Ñ.Ô.Ð.r   c                 óD   — d| j         fd| j        fg}t          |¦  «        S )Nrz  r{  )rz  r{  rd   r¬   s     r   r*   zVariableArrayType.children€  s-   € à˜DÔ,Ð-Ø˜DÔ,Ð-ð
ˆõ �X‰ŒÐr   c                 óÆ   — | j         dk    r| j                             ¦   «         S t          | j                             ¦   «         | j                             ¦   «         ¦  «        S rÑ   )r|  r{  rÌ   rÏ   rz  r   s    r   rÌ   zVariableArrayType.alignment‡  sR   € ØŒ?˜aÒÐØÔ#×-Ò-Ñ/Ô/Ð/å�tÔ'×1Ò1Ñ3Ô3°TÔ5E×5OÒ5OÑ5QÔ5QÑRÔRÐRr   c                 óx   — | j                              ¦   «         | j        | j                             ¦   «         z  z   S r%   )r{  rÙ   r|  rz  r   s    r   rÙ   z"VariableArrayType.max_message_size�  s2   € ØÔ×0Ò0Ñ2Ô2°T´_ÀtÔGW×GhÒGhÑGjÔGjÑ5jÑjÐjr   c                 ó4   — | j                              ¦   «         S r%   )r{  rÝ   r   s    r   rÝ   z"VariableArrayType.min_message_size�  s   € ØÔ×0Ò0Ñ2Ô2Ð2r   c                 ó    — | j         dk    rdS dS )Nr   TF)r|  r   s    r   rá   z'VariableArrayType.is_message_size_fixed“  s   € ØŒ?˜aÒÐØ�4à�5r   c                 ó~   — | j         j        | j        k    o(| j         j        dk    o| j                             ¦   «         S )z&Can be invalid if length is above max.r   )r{  rÏ   r|  r<  rz  ræ   r   s    r   ræ   z/VariableArrayType.are_all_representations_valid™  sA   € àÔ Ô$¨¬Ò7ð =ØÔÔ  AÒ%ð=àÔ×:Ò:Ñ<Ô<ð	>r   r{  ©r   r   r   r(   rZ  r*   rÌ   rÙ   rÝ   rá   ræ   rd   r>   rq   rr   s   @r   rv  rv  q  s®   ø€ € € € € ð	1ð 	1ð 	1ð 	1ð 	1ð/ð /ð /ðð ð ðSð Sð Sðkð kð kð3ð 3ð 3ðð ð ð>ð >ð >ð �˜�Ñ'Ô'€J€J€J€J€Jr   rv  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚPascalStringTypec                 óº   •— t          t          | ¦  «                             t          d         |||¦  «         |j        dk    r	d| _        d S d|j        z  | _        d S )Nr&  Ústringz
string[%s])r_   r‰  r(   r'  r¡   rw   )r   r{  r|  r'   r=   s       €r   r(   zPascalStringType.__init__£  s[   ø€ ÝÕ Ñ%Ô%×.Ò.­}¸XÔ/FÈÐU_ÐafÑgÔgÐgØÔ˜xÒ'Ð'Ø ˆDŒIˆIˆIà$ {Ô'7Ñ7ˆDŒIˆIˆIr   c                 ó   — dS )úOIs invalid if there are null bytes or invalid UTF-8, or if length is above max.Fr   r   s    r   ræ   z.PascalStringType.are_all_representations_validª  r?  r   )r   r   r   r(   ræ   rq   rr   s   @r   r‰  r‰  ¢  sG   ø€ € € € € ð8ð 8ð 8ð 8ð 8ðð ð ð ð ð ð r   r‰  c                   ó`   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
 ed	g¦  «        Zˆ xZS )
ÚFixedArrayTypec                 óŒ   •— t          t          | ¦  «                             |j        ›d|›d�|¦  «         || _        || _        d S )Nrx  ry  )r_   r�  r(   rw   rz  rp   )r   rz  rp   r'   r=   s       €r   r(   zFixedArrayType.__init__¯  sI   ø€ Ý�n˜dÑ#Ô#×,Ò,¸Ô9IÐ9IÐ9IÈ6È6È6Ð-RÐTYÑZÔZÐZØ&ˆÔØˆŒˆˆr   c                 ó4   — | j                              ¦   «         S r%   r  r   s    r   rZ  zFixedArrayType.builtin_type´  r€  r   c                 ó   — d| j         fg}|S )Nrz  )rz  r¬   s     r   r*   zFixedArrayType.children·  s   € à˜DÔ,Ð-ð
ˆð ˆr   c                 óN   — | j         dk    rdS | j                             ¦   «         S )Nr   r   )rp   rz  rÌ   r   s    r   rÌ   zFixedArrayType.alignment½  s)   € ØŒ;˜!ÒÐØ�1àÔ#×-Ò-Ñ/Ô/Ð/r   c                 ó’   — | j                              ¦   «         }t          | j        t          ¦  «        r| j        g|z  S || j        z  S )z]Returns either a number or a list of elements that when summed represent the max message size)rz  rÙ   r    rp   Ústr)r   rÙ   s     r   rÙ   zFixedArrayType.max_message_sizeÃ  óJ   € àÔ+×<Ò<Ñ>Ô>ÐÝ�d”k¥3Ñ'Ô'ð 	4ð ”K�=Ð#3Ñ3Ð3Ø $¤+Ñ-Ð-r   c                 ó’   — | j                              ¦   «         }t          | j        t          ¦  «        r| j        g|z  S || j        z  S )z]Returns either a number or a list of elements that when summed represent the min message size)rz  rÝ   r    rp   r•  )r   rÝ   s     r   rÝ   zFixedArrayType.min_message_sizeÌ  r–  r   c                 óN   — | j         dk    rdS | j                             ¦   «         S )Nr   T)rp   rz  rá   r   s    r   rá   z$FixedArrayType.is_message_size_fixedÕ  s)   € ØŒ;˜!ÒÐØ�4àÔ#×9Ò9Ñ;Ô;Ð;r   c                 óN   — | j         dk    rdS | j                             ¦   «         S )r�  r   T)rp   rz  ræ   r   s    r   ræ   z,FixedArrayType.are_all_representations_validÛ  s)   € àŒ;˜!ÒÐØ�4àÔ#×AÒAÑCÔCÐCr   rp   r‡  rr   s   @r   r�  r�  ®  s«   ø€ € € € € ðð ð ð ð ð
/ð /ð /ðð ð ð0ð 0ð 0ð.ð .ð .ð.ð .ð .ð<ð <ð <ðDð Dð Dð �˜�zÑ"Ô"€J€J€J€J€Jr   r�  c                   óÀ   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
efd	„Zefd
„Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Z edg¦  «        Zˆ xZS )ÚDefinedTypec                 óŠ   •— t          t          | ¦  «                             ||¦  «         || _        |j        j        | _        d S r%   )r_   r›  r(   Úunderlying_typer  rÖ   )r   rw   r�  r'   r=   s       €r   r(   zDefinedType.__init__æ  s<   ø€ Ý�k˜4Ñ Ô ×)Ò)¨$°Ñ6Ô6Ð6Ø.ˆÔØ#Ô0Ô5ˆŒ	ˆ	ˆ	r   c                 óP   — | j         r| j         j                             ¦   «         S d S r%   )r�  r  rZ  r   s    r   rZ  zDefinedType.builtin_typeë  s+   € ØÔð 	DØÔ'Ô4×AÒAÑCÔCÐCØˆtr   c                 ó$   — g }t          |¦  «        S r%   r]  r¬   s     r   r*   zDefinedType.childrenð  ó   € ØˆÝ�X‰ŒÐr   c                 ó4   — | j                              ¦   «         S r%   )r�  rÌ   r   s    r   rÌ   zDefinedType.alignmentô  s   € ØÔ#×-Ò-Ñ/Ô/Ð/r   c                 ó4   — | j                              ¦   «         S r%   )r�  rÙ   r   s    r   rÙ   zDefinedType.max_message_size÷  ó   € ØÔ#×4Ò4Ñ6Ô6Ð6r   c                 ó4   — | j                              ¦   «         S r%   )r�  rÝ   r   s    r   rÝ   zDefinedType.min_message_sizeú  r£  r   c                 ó4   — | j                              ¦   «         S r%   )r�  rá   r   s    r   rá   z!DefinedType.is_message_size_fixedý  s   € ØÔ#×9Ò9Ñ;Ô;Ð;r   c                 ó4   — | j                              ¦   «         S r%   )r�  ræ   r   s    r   ræ   z)DefinedType.are_all_representations_valid   s   € ØÔ#×AÒAÑCÔCÐCr   c                 ó:   — | j                              ||¬¦  «        S )r}   r~   )r�  r€   r„   s      r   r€   z#DefinedType.relative_qualified_name  s   € àÔ#×;Ò;¸NÐRWÐ;ÑXÔXÐXr   c                 ó8   — | j                              |¬¦  «        S ©Nr~   )r�  r‡   ©r   r   s     r   r‡   z DefinedType.fully_qualified_name  s   € ØÔ#×8Ò8¸uÐ8ÑEÔEÐEr   c                 ó   — | j         j        S r%   ©r�  rz   r   s    r   rz   zDefinedType.possibly_ambiguous
  s   € àÔ#Ô6Ð6r   c                 ó   — || j         _        d S r%   r¬  r�   s     r   rz   zDefinedType.possibly_ambiguous  s   € à27ˆÔÔ/Ð/Ð/r   c                 ó   — | j         j        S r%   )r�  r{   r   s    r   r{   zDefinedType.namespace  s   € àÔ#Ô-Ð-r   rw   )r   r   r   r(   rZ  r*   rÌ   rÙ   rÝ   rá   ræ   r   r€   r‡   r–   rz   r—   r{   rd   r>   rq   rr   s   @r   r›  r›  ä  s9  ø€ € € € € ð6ð 6ð 6ð 6ð 6ð
ð ð ð
ð ð ð0ð 0ð 0ð7ð 7ð 7ð7ð 7ð 7ð<ð <ð <ðDð Dð Dð =Rð Yð Yð Yð Yð *?ð Fð Fð Fð Fð ð7ð 7ñ „Xð7ð Ôð8ð 8ñ Ôð8ð ð.ð .ñ „Xð.ð �˜�x‘”€J€J€J€J€Jr   r›  c                   óº   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
fd„Ze
fd	„Zed
„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Z edg¦  «        Zˆ xZS )ÚCompoundTypec                 óh   •— t          t          | ¦  «                             ||¦  «         || _        d S r%   )r_   r°  r(   Ú	type_decl)r   rw   r²  r'   r=   s       €r   r(   zCompoundType.__init__  s.   ø€ Ý�l˜DÑ!Ô!×*Ò*¨4°Ñ7Ô7Ð7Ø"ˆŒˆˆr   c                 ó$   — g }t          |¦  «        S r%   r]  r¬   s     r   r*   zCompoundType.children  r   r   c                 ó4   — | j                              ¦   «         S r%   )r²  rÌ   r   s    r   rÌ   zCompoundType.alignment"  s   € ØŒ~×'Ò'Ñ)Ô)Ð)r   c                 ó4   — | j                              ¦   «         S r%   )r²  rÙ   r   s    r   rÙ   zCompoundType.max_message_size%  ó   € ØŒ~×.Ò.Ñ0Ô0Ð0r   c                 ó4   — | j                              ¦   «         S r%   )r²  rÝ   r   s    r   rÝ   zCompoundType.min_message_size(  r¶  r   c                 ó4   — | j                              ¦   «         S r%   )r²  rá   r   s    r   rá   z"CompoundType.is_message_size_fixed+  s   € ØŒ~×3Ò3Ñ5Ô5Ð5r   c                 ó4   — | j                              ¦   «         S r%   )r²  ræ   r   s    r   ræ   z*CompoundType.are_all_representations_valid.  s   € ØŒ~×;Ò;Ñ=Ô=Ð=r   c                 ó:   — | j                              ||¬¦  «        S r©  )r²  r€   r„   s      r   r€   z$CompoundType.relative_qualified_name1  s   € ØŒ~×5Ò5°nÈEÐ5ÑRÔRÐRr   c                 ó8   — | j                              |¬¦  «        S r©  )r²  r‡   rª  s     r   r‡   z!CompoundType.fully_qualified_name4  s   € ØŒ~×2Ò2¸Ð2Ñ?Ô?Ð?r   c                 ó   — | j         j        S r%   ©r²  rz   r   s    r   rz   zCompoundType.possibly_ambiguous7  s   € àŒ~Ô0Ð0r   c                 ó   — || j         _        d S r%   r½  r�   s     r   rz   zCompoundType.possibly_ambiguous;  s   € à,1ˆŒÔ)Ð)Ð)r   c                 ó   — | j         j        S r%   )r²  r{   r   s    r   r{   zCompoundType.namespace?  s   € àŒ~Ô'Ð'r   rw   )r   r   r   r(   r*   rÌ   rÙ   rÝ   rá   ræ   r   r€   r‡   r–   rz   r—   r{   rd   r>   rq   rr   s   @r   r°  r°    s'  ø€ € € € € ð#ð #ð #ð #ð #ðð ð ð*ð *ð *ð1ð 1ð 1ð1ð 1ð 1ð6ð 6ð 6ð>ð >ð >ð =Rð Sð Sð Sð Sð *?ð @ð @ð @ð @ð ð1ð 1ñ „Xð1ð Ôð2ð 2ñ Ôð2ð ð(ð (ñ „Xð(ð �˜�x‘”€J€J€J€J€Jr   r°  c                   ó6   ‡ — e Zd Zˆ fd„Z edg¦  «        Zˆ xZS )ÚTypeReferencec                 óf   •— t          t          | ¦  «                             |¦  «         || _        d S r%   )r_   rÁ  r(   r¡   )r   r¡   r'   r=   s      €r   r(   zTypeReference.__init__G  s,   ø€ Ý�m˜TÑ"Ô"×+Ò+¨EÑ2Ô2Ð2ØˆŒ	ˆ	ˆ	r   r¡   )r   r   r   r(   rd   r>   rq   rr   s   @r   rÁ  rÁ  E  s=   ø€ € € € € ðð ð ð ð ð �˜�x‘”€J€J€J€J€Jr   rÁ  Ú__builtin__r&  ÚintTr/  )rl  r<  rÏ   r'   Úuint_16é   iÿÿ  Úuint_32é   l   ÿÿ Úuint_64é   l   ÿÿÿÿ )r&  rÅ  rÇ  rÉ  Úint_8i€ÿÿÿé   )r<  rÏ   r'   Úint_16i €ÿÿiÿ  Úint_32i   €iÿÿÿÚint_64lûÿÿÿ         l   ÿÿÿÿ )rË  rÍ  rÎ  rÏ  Úfloat_32Úfloatr&   Úfloat_64)rÐ  rÒ  Úbool)r&  rÅ  rÇ  c                   ó4   — e Zd Zd„ Zd„ Z eddg¦  «        ZdS )ÚIntConstc                 óL   — || _         || _        || _        d| _        d| _        d S r�   ©rŽ   r¡   r'   ÚisIntÚisFloat©r   rŽ   r¡   r'   s       r   r(   zIntConst.__init__{  s)   € ØˆŒ
ØˆŒ	ØˆŒ
ØˆŒ
ØˆŒˆˆr   c                 ó   — t          ¦   «         S r%   r]  r   s    r   r*   zIntConst.children‚  ó   € Ý‰wŒwˆr   rŽ   r¡   N©r   r   r   r(   r*   rd   r>   r   r   r   rÕ  rÕ  z  óB   € € € € € ðð ð ðð ð ð �˜ Ð(Ñ)Ô)€J€J€Jr   rÕ  c                   ó4   — e Zd Zd„ Zd„ Z eddg¦  «        ZdS )Ú
FloatConstc                 óL   — || _         || _        || _        d| _        d| _        d S rë   r×  rÚ  s       r   r(   zFloatConst.__init__ˆ  s)   € ØˆŒ
ØˆŒ	ØˆŒ
ØˆŒ
ØˆŒˆˆr   c                 ó   — t          ¦   «         S r%   r]  r   s    r   r*   zFloatConst.children�  rÜ  r   rŽ   r¡   NrÝ  r   r   r   rà  rà  ‡  sB   € € € € € ðð ð ðð ð ð �˜ Ð(Ñ)Ô)€J€J€Jr   rà  c                   ó4   — e Zd Zd„ Zd„ Z eddg¦  «        ZdS )ÚStringConstc                 óL   — || _         d| _        || _        d| _        d| _        d S )Nr•  Fr×  )r   rŽ   r'   s      r   r(   zStringConst.__init__•  s)   € ØˆŒ
ØˆŒ	ØˆŒ
ØˆŒ
ØˆŒˆˆr   c                 ó   — t          ¦   «         S r%   r]  r   s    r   r*   zStringConst.childrenœ  rÜ  r   rŽ   r¡   NrÝ  r   r   r   rä  rä  ”  rÞ  r   rä  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚASTNamespaceWrapperc                 ó0   — || _         d| _        d | _        d S r  )Ú
wrapper_nsÚwrapped_namespaceÚparent_decl_list)r   rê  s     r   r(   zASTNamespaceWrapper.__init__¢  s   € Ø$ˆŒØ!&ˆÔØ $ˆÔÐÐr   c                 ó   — d S r%   r   )r   rS   r   rT   s       r   Úvisit_IncludeDeclz%ASTNamespaceWrapper.visit_IncludeDecl§  s   € àˆr   c                 óÖ  — |rät          |t          ¦  «        r|| _        t          |t          ¦  «        r„| j        s}t          g d ¦  «        }|                     |¦  «         t          | j        |d ¦  «        }||_        d| _        | j                             |¦  «         | j                             |¦  «         | 	                    ¦   «         D ]\  }}|  
                    |¦  «         Œd S d S rs  )r    r]   rì  r™   rë  rc   rê  r{   rm   r*   rX   )r   rS   Úwrapper_decl_listrê  rw   rh   s         r   rR   z!ASTNamespaceWrapper.generic_visit«  s  € Øð 	"Ý˜$¥Ñ)Ô)ð -à(,�Ô%Ý˜$¥Ñ.Ô.ð =àÔ-ð =å(0°°TÑ(:Ô(:Ð%Ø%×,Ò,¨TÑ2Ô2Ð2õ "/¨t¬Ð@QÐSWÑ!XÔ!X�Jð &0�D”NØ-1�DÔ*ð Ô)×0Ò0°Ñ6Ô6Ð6ØÔ)×0Ò0°Ñ<Ô<Ð<à!%§¢¡¤ð "ð "‘��uØ—
’
˜5Ñ!Ô!Ð!Ð!ð1	"ð 	"ð."ð "r   N)r   r   r   r(   rî  rR   r   r   r   rè  rè  ¡  sA   € € € € € ð%ð %ð %ð
ð ð ð"ð "ð "ð "ð "r   rè  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚASTDebugc                 ó"   — d| _         d | _        d S rÑ   )ÚdepthÚ	node_namer   s    r   r(   zASTDebug.__init__È  s   € ØˆŒ
ØˆŒˆˆr   c                 ó"  — |rŒ|                      t          j        | j        | j        ddd¬¦  «         | j        dz   | _        |                     ¦   «         D ]!\  }}|| _        |                      |¦  «         Œ"d | _        | j        dz
  | _        d S d S )NT©r?   r@   rD   rA   rB   rC   r   )rI   rJ   rK   rô  rõ  r*   rX   ©r   rS   rw   rh   s       r   rR   zASTDebug.generic_visitÌ  s¤   € Øð 	(Ø�IŠI�SœZØ!œZØ!%¤Ø $Ø $Ø $ð ñ &ô &ð &ð œ a™ˆDŒJØ!%§¢¡¤ð "ð "‘��uØ!%�”Ø—
’
˜5Ñ!Ô!Ð!Ð!Ø!ˆDŒNØœ a™ˆDŒJˆJˆJð	(ð 	(r   N)r   r   r   r(   rR   r   r   r   rò  rò  Ç  s2   € € € € € ðð ð ð(ð (ð (ð (ð (r   rò  c                   ó0   — e Zd Zd„ Zd„ Zed„ ¦   «         ZdS )ÚASTHashc                 óH   — d| _         d | _        t          ¦   «         | _        d S rÑ   )rô  rõ  r   r?   r   s    r   r(   zASTHash.__init__Ý  s   € ØˆŒ
ØˆŒÝ‘j”jˆŒˆˆr   c                 ó  — |r‚|                      | j        d| j        ddd¬¦  «         | j        dz   | _        |                     ¦   «         D ]!\  }}|| _        |                      |¦  «         Œ"d | _        | j        dz
  | _        d S d S )Nr   TFr÷  r   )rI   r?   rõ  rô  r*   rX   rø  s       r   rR   zASTHash.generic_visitâ  s¢   € Øð 	(Ø�IŠI˜Tœ[ØØ!%¤Ø $Ø $Ø %ð ñ 'ô 'ð 'ð œ a™ˆDŒJØ!%§¢¡¤ð "ð "‘��uØ!%�”Ø—
’
˜5Ñ!Ô!Ð!Ð!Ø!ˆDŒNØœ a™ˆDŒJˆJˆJð	(ð 	(r   c                 ó¨   — t          j        ¦   «         }|                     | j                             ¦   «         ¦  «         |                     ¦   «         S r%   )ÚhashlibÚmd5Úupdater?   r
   Ú	hexdigest)r   Úms     r   ry   zASTHash.hash_strò  s;   € åŒK‰MŒMˆØ	�Š�”×%Ò%Ñ'Ô'Ñ(Ô(Ð(Ø�{Š{‰}Œ}Ðr   N)r   r   r   r(   rR   r–   ry   r   r   r   rú  rú  Ü  sM   € € € € € ð!ð !ð !ð
(ð (ð (ð  ðð ñ „Xðð ð r   rú  )<r   Ú
__future__r   r   Úos.pathÚosrJ   Ústructr   r	   rþ  Ú r   Úobjectr   r#   rM   r]   rt   r™   r·   r¿   rí   rú   r  r  r  r$  rD  rM  rR  rV  rj  rv  r‰  r�  r›  r°  rÁ  ÚCoordÚbuiltin_coordÚbuiltin_uint_typesÚbuiltin_int_typesÚitemsrw   Ú	uint_typeÚbuiltin_float_typesr'  Úint_typeÚ
float_typeÚstring_length_typesr2  Ústring_typesr{  rÕ  rà  rä  rè  rò  rú  r   r   r   ú<module>r     s€  ððð ð
 'Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %à €€€Ø 
€
€
€
Ø €€€ð>Ø!Ð!Ð!Ð!Ð!Ð!Ð!øð>Ø€I€I€Ið>ð >ð >ð >ð >�2”;ñ >ô >ð >ð >ð >øøøð
 €€€à Ð Ð Ð Ð Ð ð%ð %ð %ð %ð %˜Fñ %ô %ð %ð#ð #ð #ð #ð #ˆ6ñ #ô #ð #ðJ+ð +ð +ð +ð +�&ñ +ô +ð +ð:ð ð ð ð ˆtñ ô ð ð.-+ð -+ð -+ð -+ð -+ˆ4ñ -+ô -+ð -+ð^,+ð ,+ð ,+ð ,+ð ,+�Dñ ,+ô ,+ð ,+ð\ð ð ð ð �$ñ ô ð ð&DEð DEð DEð DEð DE�$ñ DEô DEð DEðL#ð #ð #ð #ð #˜Dñ #ô #ð #ð*ð ð ð ð ˜ñ ô ð ð&Uð Uð Uð Uð Uˆtñ Uô Uð Uð@ð ð ð ð �Tñ ô ð ð"!ð !ð !ð !ð !�ñ !ô !ð !ð BRð BRð BRð BRð BR�ñ BRô BRð BRðHfð fð fð fð f�dñ fô fð fð(ð ð ð ð ˜Dñ ô ð ð"!ð !ð !ð !ð !˜ñ !ô !ð !ð0ð 0ð 0ð 0ð 0ˆ4ñ 0ô 0ð 0ðdKð Kð Kð Kð K�$ñ Kô Kð Kð<.(ð .(ð .(ð .(ð .(˜ñ .(ô .(ð .(ðb
ð 
ð 
ð 
ð 
Ð(ñ 
ô 
ð 
ð4#ð 4#ð 4#ð 4#ð 4#�Tñ 4#ô 4#ð 4#ðl2!ð 2!ð 2!ð 2!ð 2!�$ñ 2!ô 2!ð 2!ðh+!ð +!ð +!ð +!ð +!�4ñ +!ô +!ð +!ðZ!ð !ð !ð !ð !�Dñ !ô !ð !ð  �	” Ñ.Ô.€ð �˜H u¨a¸$ÀAÈ6ÐZgÐhÑhÔhØ�˜I u¨a¸$ÀAÈ7ÐZgÐhÑhÔhØ�˜I u¨a¸$ÀAÈ7ÐZgÐhÑhÔhØ�˜I u¨a¸$ÀAÈ7ÐZgÐhÑhÔhð	ð Ð ð ˆ{˜7 U¨A°5¸vÈmÐ\Ñ\Ô\Øˆ{˜8 U¨A°6¸wÈmÐ\Ñ\Ô\Øˆ{˜8 U¨A°6¸wÈmÐ\Ñ\Ô\Øˆ{˜8 U¨A°6¸wÈmÐ\Ñ\Ô\ð	ð Ð ð *×/Ò/Ñ1Ô1ð (ð (�O€Dˆ)Ø'Ð�dÑÐð  �K 
¨G°Q¸mÐLÑLÔLØ�K 
¨G°Q¸mÐLÑLÔLðð Ð ð ˆ{ˆ{˜6 5¨!°¸ÀÐOÑOÔOð€ð (×-Ò-Ñ/Ô/ð #ð #�N€Dˆ(Ø"€M�$ÑÐØ+×1Ò1Ñ3Ô3ð %ð %Ñ€Dˆ*Ø$€M�$ÑÐðð ð Ð ð ˆt‰vŒv€Ø&ð hð h€KØ 0Ð 0°¸{Ô1KÈTÐYfÐ gÑ gÔ g€L�ÑÐð*ð *ð *ð *ð *ˆtñ *ô *ð *ð*ð *ð *ð *ð *�ñ *ô *ð *ð*ð *ð *ð *ð *�$ñ *ô *ð *ð#"ð #"ð #"ð #"ð #"˜+ñ #"ô #"ð #"ðL(ð (ð (ð (ð (ˆ{ñ (ô (ð (ð*ð ð ð ð ˆkñ ô ð ð ð s   œ# £>