§
    ¹³ÙgªS  ã            !       ó¬  — d Z ddlZddlZddlmZ ddlmZ ddlmZ  ej	        ddd	¬
¦  «        Z
ej        j        j         e
d¬¦  «        ej        j        j         e
d¬¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        ej        j        j         e
dd¦  «        iZ G d„ d¦  «        ZdS )z"Printers for OpenQASM 3 AST nodes.é    N)ÚSequenceé   )Úast)ÚExperimentalFeaturesÚ_BindingPower)ÚleftÚright)éÿ   r
   )Údefaultsé   )r	   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   c                   óº  — e Zd ZdZej        j        dej        j        dej        j        diZ	ej
        j        dej
        j        dej
        j        dej
        j        diZd	„ ej        D ¦   «         Zd
 ed¦  «        dœdej        dededefd„Zdej        ddfd„ZdWd„ZdWd„ZdWd„Zdeddfd„Zdddœdeej                 deded eddf
d!„Zdej         ddfd"„Z!dej"        ddfd#„Z#dej$        ddfd$„Z%dej&        ddfd%„Z'dej(        ddfd&„Z)dej*        ddfd'„Z+dej        ddfd(„Z,d)ej-        ddfd*„Z.dej/        ddfd+„Z0dej1        ddfd,„Z2d)ej3        ddfd-„Z4dej5        ddfd.„Z6dej7        ddfd/„Z8dej9        ddfd0„Z:dej;        ddfd1„Z<dej        ddfd2„Z=dej>        ddfd3„Z?dej@        ddfd4„ZAdejB        ddfd5„ZCdejD        ddfd6„ZEdejF        ddfd7„ZGdejH        ddfd8„ZIdejJ        ddfd9„ZKdejL        fd:„ZMdejN        fd;„ZOdejP        ddfd<„ZQdejR        ddfd=„ZSdejT        fd>„ZUdejV        fd?„ZWdejX        fd@„ZYdejZ        fdA„Z[dej\        ddfdB„Z]dej^        ddfdC„Z_dej`        ddfdD„Zadejb        ddfdE„Zcdejd        ddfdF„Zedejf        ddfdG„Zgdejh        ddfdH„Zidejj        ddfdI„Zkdejl        ddfdJ„Zmdejn        ddfdK„Zodejp        ddfdL„Zqdejr        ddfdM„Zsd)ejt        ddfdN„Zud)ejv        ddfdO„Zw	 dXdejx        dPeddfdQ„Zydejz        ddfdR„Z{dej|        ddfdS„Z}dej~        ddfdT„Zdej€        ddfdU„Z�d)ej‚        ddfdV„ZƒdS )YÚBasicPrinterzˆAn OpenQASM 3 AST visitor which writes the tree out in text mode to a stream, where the only
    formatting is simple block indentation.ÚpiÚeulerÚtauÚctrlÚnegctrlÚinvÚpowc                 ó8   — i | ]}|t          |j        ¦  «        “ŒS © )ÚstrÚvalue)Ú.0Útypes     úJ/granary/edev/quantum/lib/python3.11/site-packages/qiskit/qasm3/printer.pyú
<dictcomp>zBasicPrinter.<dictcomp>Q   s"   € ÐKÐKÐK°T˜4¥ T¤Z¡¤ÐKÐKÐKó    Fr   )Úchain_else_ifÚexperimentalÚstreamÚindentr.   r/   c                óL   — || _         || _        d| _        || _        || _        dS )aÁ  
        Args:
            stream (io.TextIOBase): the stream that the output will be written to.
            indent (str): the string to use as a single indentation level.
            chain_else_if (bool): If ``True``, then constructs of the form::

                    if (x == 0) {
                        // ...
                    } else {
                        if (x == 1) {
                            // ...
                        } else {
                            // ...
                        }
                    }

                will be collapsed into the equivalent but flatter::

                    if (x == 0) {
                        // ...
                    } else if (x == 1) {
                        // ...
                    } else {
                        // ...
                    }

                This collapsed form may have less support on backends, so it is turned off by
                default.  While the output of this printer is always unambiguous, using ``else``
                without immediately opening an explicit scope with ``{ }`` in nested contexts can
                cause issues, in the general case, which is why it is sometimes less supported.
        r   N)r0   r1   Ú_current_indentÚ_chain_else_ifÚ_experimental)Úselfr0   r1   r.   r/   s        r+   Ú__init__zBasicPrinter.__init__V   s1   € ðN ˆŒØˆŒØ ˆÔØ+ˆÔØ)ˆÔÐÐr-   ÚnodeÚreturnNc                 óæ   — d}t          |¦  «                             ¦   «         D ]}t          | d|j        z   d¦  «        }|� n#Œ |j        j        }t          d|› d|› d�¦  «        ‚ ||¦  «         dS )a†  Visit this node of the AST, printing it out to the stream in this class instance.

        Normally, you will want to call this function on a complete :obj:`~qiskit.qasm3.ast.Program`
        node, to print out a complete program to the stream.  The visit can start from any node,
        however, if you want to build up a file bit-by-bit manually.

        Args:
            node (ASTNode): the node to convert to OpenQASM 3 and write out to the stream.

        Raises:
            RuntimeError: if an AST node is encountered that the visitor is unable to parse.  This
                typically means that the given AST was malformed.
        NÚ_visit_z<This visitor does not know how to handle AST nodes of type 'z', but was given 'z'.)r*   ÚmroÚgetattrÚ__name__Ú	__class__ÚRuntimeError)r6   r8   ÚvisitorÚcls_Ú	node_types        r+   ÚvisitzBasicPrinter.visitƒ   s¤   € ð ˆÝ˜‘J”J—N’NÑ$Ô$ð 		ð 		ˆDÝ˜d I°´Ñ$=¸tÑDÔDˆGØÐ"Ø�ð #ð œÔ/ˆIÝð,Èyð ,ð ,Ø#'ð,ð ,ð ,ñô ð ð 	ˆ�‰Œˆˆˆr-   c                 óT   — | j                              | j        | j        z  ¦  «         d S ©N)r0   Úwriter3   r1   ©r6   s    r+   Ú_start_linezBasicPrinter._start_linež   s(   € ØŒ×Ò˜$Ô.°´Ñ<Ñ=Ô=Ð=Ð=Ð=r-   c                 ó:   — | j                              d¦  «         d S )Nz;
©r0   rG   rH   s    r+   Ú_end_statementzBasicPrinter._end_statement¡   ó   € ØŒ×Ò˜%Ñ Ô Ð Ð Ð r-   c                 ó:   — | j                              d¦  «         d S )Nú
rK   rH   s    r+   Ú	_end_linezBasicPrinter._end_line¤   s   € ØŒ×Ò˜$ÑÔÐÐÐr-   Úlinec                 óŠ   — |                       ¦   «          | j                             |¦  «         |                      ¦   «          d S rF   )rI   r0   rG   rL   )r6   rQ   s     r+   Ú_write_statementzBasicPrinter._write_statement§   sB   € Ø×ÒÑÔÐØŒ×Ò˜$ÑÔÐØ×ÒÑÔÐÐÐr-   Ú )ÚstartÚendÚnodesrU   rV   Ú	separatorc                ó,  — |r| j                              |¦  «         |d d…         D ]1}|                      |¦  «         | j                              |¦  «         Œ2|r|                      |d         ¦  «         |r| j                              |¦  «         d S d S )Néÿÿÿÿ)r0   rG   rD   )r6   rW   rU   rV   rX   r8   s         r+   Ú_visit_sequencezBasicPrinter._visit_sequence¬   s°   € ð ð 	%ØŒK×Ò˜eÑ$Ô$Ð$Ø˜#˜2˜#”Jð 	)ð 	)ˆDØ�JŠJ�tÑÔÐØŒK×Ò˜iÑ(Ô(Ð(Ð(Øð 	"Ø�JŠJ�u˜R”yÑ!Ô!Ð!Øð 	#ØŒK×Ò˜cÑ"Ô"Ð"Ð"Ð"ð	#ð 	#r-   c                 óx   — |                       |j        ¦  «         |j        D ]}|                       |¦  «         Œd S rF   )rD   ÚheaderÚ
statements©r6   r8   Ú	statements      r+   Ú_visit_ProgramzBasicPrinter._visit_Program¹   sF   € Ø�
Š
�4”;ÑÔÐØœð 	"ð 	"ˆIØ�JŠJ�yÑ!Ô!Ð!Ð!ð	"ð 	"r-   c                 óx   — |                       |j        ¦  «         |j        D ]}|                       |¦  «         Œd S rF   )rD   ÚversionÚincludes)r6   r8   Úincludes      r+   Ú_visit_HeaderzBasicPrinter._visit_Header¾   sF   € Ø�
Š
�4”<Ñ Ô Ð Ø”}ð 	 ð 	 ˆGØ�JŠJ�wÑÔÐÐð	 ð 	 r-   c                 ó@   — |                       d|j        › �¦  «         d S )Nz	OPENQASM )rS   Úversion_number©r6   r8   s     r+   Ú_visit_VersionzBasicPrinter._visit_VersionÃ   s(   € Ø×ÒÐ?¨$Ô*=Ð?Ð?Ñ@Ô@Ð@Ð@Ð@r-   c                 óB   — |                       d|j        › d�¦  «         d S )Nz	include "ú")rS   Úfilenameri   s     r+   Ú_visit_IncludezBasicPrinter._visit_IncludeÆ   s*   € Ø×ÒÐ:¨$¬-Ð:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;r-   c                 ó@   — |                       d|j        › �¦  «         d S )Nz#pragma )rS   Úcontentri   s     r+   Ú_visit_PragmazBasicPrinter._visit_PragmaÉ   s'   € Ø×ÒÐ7¨¬Ð7Ð7Ñ8Ô8Ð8Ð8Ð8r-   c                 óB   — |                       d|j        › d�¦  «         d S )Nzdefcalgrammar "rl   )rS   Únameri   s     r+   Ú$_visit_CalibrationGrammarDeclarationz1BasicPrinter._visit_CalibrationGrammarDeclarationÌ   s*   € Ø×ÒÐ<°´	Ð<Ð<Ð<Ñ=Ô=Ð=Ð=Ð=r-   c                 óX   — | j                              d| j        |         › d�¦  «         d S )Nzfloat[ú])r0   rG   Ú_FLOAT_WIDTH_LOOKUPri   s     r+   Ú_visit_FloatTypezBasicPrinter._visit_FloatTypeÏ   s2   € ØŒ×ÒÐD 4Ô#;¸DÔ#AÐDÐDÐDÑEÔEÐEÐEÐEr-   Ú_nodec                 ó:   — | j                              d¦  «         d S )NÚboolrK   ©r6   ry   s     r+   Ú_visit_BoolTypezBasicPrinter._visit_BoolTypeÒ   s   € ØŒ×Ò˜&Ñ!Ô!Ð!Ð!Ð!r-   c                 ó’   — | j                              d¦  «         |j        �%| j                              d|j        › d�¦  «         d S d S )NÚintú[rv   ©r0   rG   Úsizeri   s     r+   Ú_visit_IntTypezBasicPrinter._visit_IntTypeÕ   sR   € ØŒ×Ò˜%Ñ Ô Ð ØŒ9Ð ØŒK×ÒÐ. $¤)Ð.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/ð !Ð r-   c                 ó’   — | j                              d¦  «         |j        �%| j                              d|j        › d�¦  «         d S d S )NÚuintr€   rv   r�   ri   s     r+   Ú_visit_UintTypezBasicPrinter._visit_UintTypeÚ   sR   € ØŒ×Ò˜&Ñ!Ô!Ð!ØŒ9Ð ØŒK×ÒÐ. $¤)Ð.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/ð !Ð r-   c                 ó:   — | j                              d¦  «         d S )NÚbitrK   r|   s     r+   Ú_visit_BitTypezBasicPrinter._visit_BitTypeß   rM   r-   c                 óL   — | j                              d|j        › d�¦  «         d S )Nzbit[rv   r�   ri   s     r+   Ú_visit_BitArrayTypez BasicPrinter._visit_BitArrayTypeâ   s,   € ØŒ×ÒÐ- ¤Ð-Ð-Ð-Ñ.Ô.Ð.Ð.Ð.r-   c                 ó^   — | j                              t          |j        ¦  «        ¦  «         d S rF   )r0   rG   r'   Úobjri   s     r+   Ú_visit_StringifyAndPrayz$BasicPrinter._visit_StringifyAndPrayå   s&   € ØŒ×Ò�#˜dœh™-œ-Ñ(Ô(Ð(Ð(Ð(r-   c                 óD   — | j                              |j        ¦  «         d S rF   )r0   rG   Ústringri   s     r+   Ú_visit_IdentifierzBasicPrinter._visit_Identifierè   s    € ØŒ×Ò˜$œ+Ñ&Ô&Ð&Ð&Ð&r-   c                 óà   — | j                              |j        ¦  «         | j                              d¦  «         |                      |j        ¦  «         | j                              d¦  «         d S ©Nr€   rv   )r0   rG   r�   rD   Ú	subscriptri   s     r+   Ú_visit_SubscriptedIdentifierz)BasicPrinter._visit_SubscriptedIdentifierë   s`   € ØŒ×Ò˜$œ+Ñ&Ô&Ð&ØŒ×Ò˜#ÑÔÐØ�
Š
�4”>Ñ"Ô"Ð"ØŒ×Ò˜#ÑÔÐÐÐr-   c                 óP   — | j                              | j        |         ¦  «         d S rF   )r0   rG   Ú_CONSTANT_LOOKUPri   s     r+   Ú_visit_ConstantzBasicPrinter._visit_Constantñ   s&   € ØŒ×Ò˜$Ô/°Ô5Ñ6Ô6Ð6Ð6Ð6r-   c                 ó8  — |j         �|                      |j         ¦  «         | j                             d¦  «         |j        �4|                      |j        ¦  «         | j                             d¦  «         |j        �|                      |j        ¦  «         d S d S )Nú:)rU   rD   r0   rG   ÚsteprV   ri   s     r+   Ú_visit_RangezBasicPrinter._visit_Rangeô   s�   € ØŒ:Ð!Ø�JŠJ�t”zÑ"Ô"Ð"ØŒ×Ò˜#ÑÔÐØŒ9Ð Ø�JŠJ�t”yÑ!Ô!Ð!ØŒK×Ò˜cÑ"Ô"Ð"ØŒ8ÐØ�JŠJ�t”xÑ Ô Ð Ð Ð ð  Ðr-   c                 óB   — |                       |j        ddd¬¦  «         d S )NÚ{ú, Ú})rU   rX   rV   )r[   Úvaluesri   s     r+   Ú_visit_IndexSetzBasicPrinter._visit_IndexSetþ   s'   € Ø×Ò˜Tœ[°¸tÈÐÑMÔMÐMÐMÐMr-   c                 ór   — | j                              d¦  «         |                      |j        d¬¦  «         d S )Nzmeasure rŸ   ©rX   )r0   rG   r[   ÚidentifierListri   s     r+   Ú_visit_QuantumMeasurementz&BasicPrinter._visit_QuantumMeasurement  s:   € ØŒ×Ò˜*Ñ%Ô%Ð%Ø×Ò˜TÔ0¸DÐÑAÔAÐAÐAÐAr-   c                 óò   — |                       ¦   «          |                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S ©Nú = )rI   rD   Ú
identifierr0   rG   ÚquantumMeasurementrL   ri   s     r+   Ú#_visit_QuantumMeasurementAssignmentz0BasicPrinter._visit_QuantumMeasurementAssignment  sk   € Ø×ÒÑÔÐØ�
Š
�4”?Ñ#Ô#Ð#ØŒ×Ò˜%Ñ Ô Ð Ø�
Š
�4Ô*Ñ+Ô+Ð+Ø×ÒÑÔÐÐÐr-   c                 ó¾   — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S )Nzreset )rI   r0   rG   rD   rª   rL   ri   s     r+   Ú_visit_QuantumResetz BasicPrinter._visit_QuantumReset  sV   € Ø×ÒÑÔÐØŒ×Ò˜(Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Ø×ÒÑÔÐÐÐr-   c                 ó*  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      |j        d¬¦  «         |                      ¦   «          d S )Nzdelay[z] rŸ   r¤   )rI   r0   rG   rD   Údurationr[   ÚqubitsrL   ri   s     r+   Ú_visit_QuantumDelayz BasicPrinter._visit_QuantumDelay  s‡   € Ø×ÒÑÔÐØŒ×Ò˜(Ñ#Ô#Ð#Ø�
Š
�4”=Ñ!Ô!Ð!ØŒ×Ò˜$ÑÔÐØ×Ò˜Tœ[°DÐÑ9Ô9Ð9Ø×ÒÑÔÐÐÐr-   c                 ó^   — | j                              t          |j        ¦  «        ¦  «         d S rF   )r0   rG   r'   r(   ri   s     r+   Ú_visit_IntegerLiteralz"BasicPrinter._visit_IntegerLiteral  s&   € ØŒ×Ò�#˜dœj™/œ/Ñ*Ô*Ð*Ð*Ð*r-   c                 óL   — | j                              |j        rdnd¦  «         d S )NÚtrueÚfalse)r0   rG   r(   ri   s     r+   Ú_visit_BooleanLiteralz"BasicPrinter._visit_BooleanLiteral  s)   € ØŒ×Ò D¤JÐ;˜&˜&°GÑ<Ô<Ð<Ð<Ð<r-   c                 ó`   — | j                              d|j        d|j        › d�›d�¦  «         d S )Nrl   Ú0Úb)r0   rG   r(   Úwidthri   s     r+   Ú_visit_BitstringLiteralz$BasicPrinter._visit_BitstringLiteral   s<   € ØŒ×ÒÐ:˜dœjÐ:¨4¬:Ð:Ð:Ð:Ð:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;r-   c                 ó`   — | j                              |j        › |j        j        › �¦  «         d S rF   )r0   rG   r(   Úunitri   s     r+   Ú_visit_DurationLiteralz#BasicPrinter._visit_DurationLiteral#  s/   € ØŒ×Ò˜TœZÐ:¨¬¬Ð:Ð:Ñ;Ô;Ð;Ð;Ð;r-   c                 ó¢   — | j                              d¦  «         |                      |j        ¦  «         | j                              d¦  «         d S r“   )r0   rG   rD   Ú
expressionri   s     r+   Ú_visit_DesignatorzBasicPrinter._visit_Designator&  sH   € ØŒ×Ò˜#ÑÔÐØ�
Š
�4”?Ñ#Ô#Ð#ØŒ×Ò˜#ÑÔÐÐÐr-   c                 óâ  — | j                              |j        j        ¦  «         t	          |j        t          j        t          j        f¦  «        r…t          |j        j                 j
        t          |j                 j        k     rP| j                              d¦  «         |                      |j        ¦  «         | j                              d¦  «         d S |                      |j        ¦  «         d S ©Nú(ú))r0   rG   Úopr(   Ú
isinstanceÚoperandr   ÚUnaryÚBinaryÚ_BINDING_POWERr   r	   rD   ri   s     r+   Ú_visit_UnaryzBasicPrinter._visit_Unary+  sº   € ØŒ×Ò˜$œ'œ-Ñ(Ô(Ð(å�t”|¥c¤iµ´Ð%<Ñ=Ô=ð	%å˜tœ|œÔ/Ô4µ~ÀdÄgÔ7NÔ7TÒTÐTàŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�t”|Ñ$Ô$Ð$ØŒK×Ò˜cÑ"Ô"Ð"Ð"Ð"à�JŠJ�t”|Ñ$Ô$Ð$Ð$Ð$r-   c                 ó|  — t          |j        t          j        t          j        f¦  «        r„t
          |j        j                 j        t
          |j                 j        k     rO| j         	                    d¦  «         |  
                    |j        ¦  «         | j         	                    d¦  «         n|  
                    |j        ¦  «         | j         	                    d|j        j        › d�¦  «         t          |j        t          j        t          j        f¦  «        r…t
          |j        j                 j        t
          |j                 j        k     rP| j         	                    d¦  «         |  
                    |j        ¦  «         | j         	                    d¦  «         d S |  
                    |j        ¦  «         d S )NrÆ   rÇ   ú )rÉ   r   r   rË   rÌ   rÍ   rÈ   r	   r0   rG   rD   r(   ri   s     r+   Ú_visit_BinaryzBasicPrinter._visit_Binary7  s[  € å�t”y¥3¤9­c¬jÐ"9Ñ:Ô:ð	"å˜tœyœ|Ô,Ô2µ^ÀDÄGÔ5LÔ5QÒQÐQàŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�t”yÑ!Ô!Ð!ØŒK×Ò˜cÑ"Ô"Ð"Ð"à�JŠJ�t”yÑ!Ô!Ð!ØŒ×ÒÐ.˜dœgœmÐ.Ð.Ð.Ñ/Ô/Ð/å�t”z¥C¤I­s¬zÐ#:Ñ;Ô;ð	#å˜tœzœ}Ô-Ô2µ^ÀDÄGÔ5LÔ5RÒRÐRàŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�t”zÑ"Ô"Ð"ØŒK×Ò˜cÑ"Ô"Ð"Ð"Ð"à�JŠJ�t”zÑ"Ô"Ð"Ð"Ð"r-   c                 óÖ   — |                       |j        ¦  «         | j                             d¦  «         |                       |j        ¦  «         | j                             d¦  «         d S rÅ   )rD   r*   r0   rG   rÊ   ri   s     r+   Ú_visit_CastzBasicPrinter._visit_CastL  s\   € Ø�
Š
�4”9ÑÔÐØŒ×Ò˜#ÑÔÐØ�
Š
�4”<Ñ Ô Ð ØŒ×Ò˜#ÑÔÐÐÐr-   c                 óÊ  — t          |j        t          j        t          j        f¦  «        rO| j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         n|                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         d S )NrÆ   rÇ   r€   rv   )	rÉ   Útargetr   rË   rÌ   r0   rG   rD   Úindexri   s     r+   Ú_visit_IndexzBasicPrinter._visit_IndexR  s¼   € Ý�d”k¥C¤I­s¬zÐ#:Ñ;Ô;ð 	$ØŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�t”{Ñ#Ô#Ð#ØŒK×Ò˜cÑ"Ô"Ð"Ð"à�JŠJ�t”{Ñ#Ô#Ð#ØŒ×Ò˜#ÑÔÐØ�
Š
�4”:ÑÔÐØŒ×Ò˜#ÑÔÐÐÐr-   c                 óh  — |                       ¦   «          |                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |j        �4| j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S )NrÐ   r©   )rI   rD   r*   r0   rG   rª   ÚinitializerrL   ri   s     r+   Ú_visit_ClassicalDeclarationz(BasicPrinter._visit_ClassicalDeclaration]  sž   € Ø×ÒÑÔÐØ�
Š
�4”9ÑÔÐØŒ×Ò˜#ÑÔÐØ�
Š
�4”?Ñ#Ô#Ð#ØÔÐ'ØŒK×Ò˜eÑ$Ô$Ð$Ø�JŠJ�tÔ'Ñ(Ô(Ð(Ø×ÒÑÔÐÐÐr-   c                 óò   — |                       ¦   «          |                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S r¨   )rI   rD   Úlvaluer0   rG   ÚrvaluerL   ri   s     r+   Ú_visit_AssignmentStatementz'BasicPrinter._visit_AssignmentStatementg  sj   € Ø×ÒÑÔÐØ�
Š
�4”;ÑÔÐØŒ×Ò˜%Ñ Ô Ð Ø�
Š
�4”;ÑÔÐØ×ÒÑÔÐÐÐr-   c                 ód  — |                       ¦   «          |j        t          j        j        u rdnd}| j                             |dz   ¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      |j	        ¦  «         |  
                    ¦   «          d S )NÚinputÚoutputrÐ   )rI   Úmodifierr   Ú
IOModifierÚINPUTr0   rG   rD   r*   rª   rL   )r6   r8   râ   s      r+   Ú_visit_IODeclarationz!BasicPrinter._visit_IODeclarationn  sž   € Ø×ÒÑÔÐØ"œm­s¬~Ô/CÐCÐC�7�7ÈˆØŒ×Ò˜( S™.Ñ)Ô)Ð)Ø�
Š
�4”9ÑÔÐØŒ×Ò˜#ÑÔÐØ�
Š
�4”?Ñ#Ô#Ð#Ø×ÒÑÔÐÐÐr-   c                 ó4  — |                       ¦   «          | j                             d¦  «         |j        �|                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S )NÚqubitrÐ   )rI   r0   rG   Ú
designatorrD   rª   rL   ri   s     r+   Ú_visit_QuantumDeclarationz&BasicPrinter._visit_QuantumDeclarationw  sˆ   € Ø×ÒÑÔÐØŒ×Ò˜'Ñ"Ô"Ð"ØŒ?Ð&Ø�JŠJ�t”Ñ'Ô'Ð'ØŒ×Ò˜#ÑÔÐØ�
Š
�4”?Ñ#Ô#Ð#Ø×ÒÑÔÐÐÐr-   c                 ó&  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S )Nzlet r©   )rI   r0   rG   rD   rª   r(   rL   ri   s     r+   Ú_visit_AliasStatementz"BasicPrinter._visit_AliasStatement€  s€   € Ø×ÒÑÔÐØŒ×Ò˜&Ñ!Ô!Ð!Ø�
Š
�4”?Ñ#Ô#Ð#ØŒ×Ò˜%Ñ Ô Ð Ø�
Š
�4”:ÑÔÐØ×ÒÑÔÐÐÐr-   c                 ó  — | j                              | j        |j                 ¦  «         |j        rP| j                              d¦  «         |                      |j        ¦  «         | j                              d¦  «         d S d S rÅ   )r0   rG   Ú_MODIFIER_LOOKUPrâ   ÚargumentrD   ri   s     r+   Ú_visit_QuantumGateModifierz'BasicPrinter._visit_QuantumGateModifierˆ  s|   € ØŒ×Ò˜$Ô/°´Ô>Ñ?Ô?Ð?ØŒ=ð 	#ØŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�t”}Ñ%Ô%Ð%ØŒK×Ò˜cÑ"Ô"Ð"Ð"Ð"ð	#ð 	#r-   c                 óˆ  — |                       ¦   «          |j        r|                      |j        dd¬¦  «         |                      |j        ¦  «         |j        r|                      |j        ddd¬¦  «         | j                             d¦  «         |                      |j        d¬¦  «         |  	                    ¦   «          d S )	Nz @ )rV   rX   rÆ   rÇ   rŸ   ©rU   rV   rX   rÐ   r¤   )
rI   Ú	modifiersr[   rD   ÚquantumGateNameÚ
parametersr0   rG   ÚindexIdentifierListrL   ri   s     r+   Ú_visit_QuantumGateCallz#BasicPrinter._visit_QuantumGateCall�  sÆ   € Ø×ÒÑÔÐØŒ>ð 	MØ× Ò  ¤°UÀeÐ ÑLÔLÐLØ�
Š
�4Ô'Ñ(Ô(Ð(ØŒ?ð 	VØ× Ò  ¤¸ÀÐPTÐ ÑUÔUÐUØŒ×Ò˜#ÑÔÐØ×Ò˜TÔ5ÀÐÑFÔFÐFØ×ÒÑÔÐÐÐr-   c                 óÂ   — |                       ¦   «          | j                             d¦  «         |                      |j        d¬¦  «         |                      ¦   «          d S )Nzbarrier rŸ   r¤   )rI   r0   rG   r[   rõ   rL   ri   s     r+   Ú_visit_QuantumBarrierz"BasicPrinter._visit_QuantumBarrierš  s^   € Ø×ÒÑÔÐØŒ×Ò˜*Ñ%Ô%Ð%Ø×Ò˜TÔ5ÀÐÑFÔFÐFØ×ÒÑÔÐÐÐr-   c                 ó  — | j                              d¦  «         | xj        dz  c_        |j        D ]}|                      |¦  «         Œ| xj        dz  c_        |                      ¦   «          | j                              d¦  «         d S )Nz{
r   r    )r0   rG   r3   r^   rD   rI   r_   s      r+   Ú_visit_ProgramBlockz BasicPrinter._visit_ProgramBlock   s”   € ØŒ×Ò˜%Ñ Ô Ð ØÐÔ Ñ!ÐÔØœð 	"ð 	"ˆIØ�JŠJ�yÑ!Ô!Ð!Ð!ØÐÔ Ñ!ÐÔØ×ÒÑÔÐØŒ×Ò˜#ÑÔÐÐÐr-   c                 ó  — |                       ¦   «          |j        r5| j                             d¦  «         |                      |j        ¦  «         n| j                             d¦  «         |                      ¦   «          d S )Nzreturn r9   )rI   rÂ   r0   rG   rD   rL   ri   s     r+   Ú_visit_ReturnStatementz#BasicPrinter._visit_ReturnStatement©  sy   € Ø×ÒÑÔÐØŒ?ð 	(ØŒK×Ò˜iÑ(Ô(Ð(Ø�JŠJ�t”Ñ'Ô'Ð'Ð'àŒK×Ò˜hÑ'Ô'Ð'Ø×ÒÑÔÐÐÐr-   c                 óê  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         |j        r|                      |j        ddd¬¦  «         | j                             d¦  «         |j        r6|                      |j        d¬¦  «         | j                             d¦  «         |                      |j        ¦  «         |  	                    ¦   «          d S )Nzgate rÆ   rÇ   rŸ   rñ   rÐ   r¤   )
rI   r0   rG   rD   rs   Úparamsr[   r±   ÚbodyrP   ri   s     r+   Ú_visit_QuantumGateDefinitionz)BasicPrinter._visit_QuantumGateDefinition²  sã   € Ø×ÒÑÔÐØŒ×Ò˜'Ñ"Ô"Ð"Ø�
Š
�4”9ÑÔÐØŒ;ð 	RØ× Ò  ¤°C¸SÈDÐ ÑQÔQÐQØŒ×Ò˜#ÑÔÐØŒ;ð 	#Ø× Ò  ¤¸Ð Ñ=Ô=Ð=ØŒK×Ò˜cÑ"Ô"Ð"Ø�
Š
�4”9ÑÔÐØ�ŠÑÔÐÐÐr-   c                 óÜ  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |j        r8|                      |j        ddd¬¦  «         | j                             d¦  «         |                      |j        d¬¦  «         | j                             d¦  «         |                      ¦   «          d S )	Nzdefcal rÐ   rÆ   rÇ   rŸ   rñ   r¤   z {})	rI   r0   rG   rD   rs   ÚcalibrationArgumentListr[   r¥   rP   ri   s     r+   Ú_visit_CalibrationDefinitionz)BasicPrinter._visit_CalibrationDefinition¿  sà   € Ø×ÒÑÔÐØŒ×Ò˜)Ñ$Ô$Ð$Ø�
Š
�4”9ÑÔÐØŒ×Ò˜#ÑÔÐØÔ'ð 	#Ø× Ò  Ô!=ÀSÈcÐ]aÐ ÑbÔbÐbØŒK×Ò˜cÑ"Ô"Ð"Ø×Ò˜TÔ0¸DÐÑAÔAÐAð 	Œ×Ò˜%Ñ Ô Ð Ø�ŠÑÔÐÐÐr-   c                 ó0   — |                       d¦  «         d S )NÚbreak©rS   r|   s     r+   Ú_visit_BreakStatementz"BasicPrinter._visit_BreakStatementÍ  s   € Ø×Ò˜gÑ&Ô&Ð&Ð&Ð&r-   c                 ó0   — |                       d¦  «         d S )NÚcontinuer  r|   s     r+   Ú_visit_ContinueStatementz%BasicPrinter._visit_ContinueStatementÐ  s   € Ø×Ò˜jÑ)Ô)Ð)Ð)Ð)r-   Úchainedc                 ó”  — |s|                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |j        �ª| j                             d¦  «         | j        rot          |j        j	        ¦  «        dk    rRt          |j        j	        d         t          j        ¦  «        r(|                      |j        j	        d         d¬¦  «         n|                      |j        ¦  «         |s|                      ¦   «          d S d S )Nzif (ú) z else r   r   T)r  )rI   r0   rG   rD   Ú	conditionÚ	true_bodyÚ
false_bodyr4   Úlenr^   rÉ   r   ÚBranchingStatementÚ_visit_BranchingStatementrP   )r6   r8   r  s      r+   r  z&BasicPrinter._visit_BranchingStatementÓ  s9  € ð ð 	Ø×ÒÑÔÐØŒ×Ò˜&Ñ!Ô!Ð!Ø�
Š
�4”>Ñ"Ô"Ð"ØŒ×Ò˜$ÑÔÐØ�
Š
�4”>Ñ"Ô"Ð"ØŒ?Ð&ØŒK×Ò˜hÑ'Ô'Ð'ð Ô#ð,å˜œÔ2Ñ3Ô3°qÒ8Ð8Ý˜tœÔ9¸!Ô<½cÔ>TÑUÔUð 9ð ×.Ò.¨t¬Ô/IÈ!Ô/LÐVZÐ.Ñ[Ô[Ð[Ð[à—
’
˜4œ?Ñ+Ô+Ð+Øð 	à�NŠNÑÔÐÐÐð	ð 	r-   c                 ój  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         t          |j        t          j        ¦  «        rO| j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         n|                      |j        ¦  «         | j                             d¦  «         |                      |j	        ¦  «         |  
                    ¦   «          d S )Nzfor z in r€   rv   rÐ   )rI   r0   rG   rD   Ú	parameterrÉ   Úindexsetr   ÚRangerÿ   rP   ri   s     r+   Ú_visit_ForLoopStatementz$BasicPrinter._visit_ForLoopStatementï  s  € Ø×ÒÑÔÐØŒ×Ò˜&Ñ!Ô!Ð!Ø�
Š
�4”>Ñ"Ô"Ð"ØŒ×Ò˜&Ñ!Ô!Ð!Ý�d”m¥S¤YÑ/Ô/ð 	&ØŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�t”}Ñ%Ô%Ð%ØŒK×Ò˜cÑ"Ô"Ð"Ð"à�JŠJ�t”}Ñ%Ô%Ð%ØŒ×Ò˜#ÑÔÐØ�
Š
�4”9ÑÔÐØ�ŠÑÔÐÐÐr-   c                 ó&  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      |j        ¦  «         |                      ¦   «          d S )Nzwhile (r  )rI   r0   rG   rD   r  rÿ   rP   ri   s     r+   Ú_visit_WhileLoopStatementz&BasicPrinter._visit_WhileLoopStatementþ  s~   € Ø×ÒÑÔÐØŒ×Ò˜)Ñ$Ô$Ð$Ø�
Š
�4”>Ñ"Ô"Ð"ØŒ×Ò˜$ÑÔÐØ�
Š
�4”9ÑÔÐØ�ŠÑÔÐÐÐr-   c                 ó¬  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      ¦   «          | xj        dz  c_        |j        D ]�\  }}|sŒ|                       ¦   «          | j                             d¦  «         |                      |d¬¦  «         | j                             d¦  «         |                      |¦  «         |                      ¦   «          Œ‘|j	        �\|                       ¦   «          | j                             d¦  «         |                      |j	        ¦  «         |                      ¦   «          | xj        dz  c_        |                       ¦   «          | j                             d	¦  «         |                      ¦   «          d S )
Núswitch (ú) {r   úcase rŸ   r¤   rÐ   zdefault r    )
rI   r0   rG   rD   rÕ   rP   r3   Úcasesr[   Údefault)r6   r8   ÚlabelsÚcases       r+   Ú_visit_SwitchStatementz#BasicPrinter._visit_SwitchStatement  sº  € Ø×ÒÑÔÐØŒ×Ò˜*Ñ%Ô%Ð%Ø�
Š
�4”;ÑÔÐØŒ×Ò˜%Ñ Ô Ð Ø�ŠÑÔÐØÐÔ Ñ!ÐÔØ œJð 	ð 	‰LˆF�DØð ØØ×ÒÑÔÐØŒK×Ò˜gÑ&Ô&Ð&Ø× Ò  °4Ð Ñ8Ô8Ð8ØŒK×Ò˜cÑ"Ô"Ð"Ø�JŠJ�tÑÔÐØ�NŠNÑÔÐÐØŒ<Ð#Ø×ÒÑÔÐØŒK×Ò˜jÑ)Ô)Ð)Ø�JŠJ�t”|Ñ$Ô$Ð$Ø�NŠNÑÔÐØÐÔ Ñ!ÐÔØ×ÒÑÔÐØŒ×Ò˜#ÑÔÐØ�ŠÑÔÐÐÐr-   c                 ó�  — |                       ¦   «          | j                             d¦  «         |                      |j        ¦  «         | j                             d¦  «         |                      ¦   «          | xj        dz  c_        |j        D �]d\  }}|sŒ	|d d…         D ]s}|                       ¦   «          | j                             d¦  «         |                      |¦  «         | j                             d¦  «         |                      ¦   «          Œt|                       ¦   «          t          |d         t          j
        ¦  «        r|                      |d         ¦  «         n5| j                             d¦  «         |                      |d         ¦  «         | j                             d¦  «         |                      |¦  «         |                      ¦   «          |                      d¦  «         �Œf| xj        dz  c_        |                       ¦   «          | j                             d	¦  «         |                      ¦   «          d S )
Nr  r  r   rZ   r  rš   z: r  r    )rI   r0   rG   rD   rÕ   rP   r3   r  rÉ   r   ÚDefaultCaserS   )r6   r8   r!  r"  Úlabels        r+   Ú_visit_SwitchStatementPreviewz*BasicPrinter._visit_SwitchStatementPreview   s"  € à×ÒÑÔÐØŒ×Ò˜*Ñ%Ô%Ð%Ø�
Š
�4”;ÑÔÐØŒ×Ò˜%Ñ Ô Ð Ø�ŠÑÔÐØÐÔ Ñ!ÐÔØ œJð 	+ñ 	+‰LˆF�DØð ØØ   œð !ð !�Ø× Ò Ñ"Ô"Ð"Ø”×!Ò! 'Ñ*Ô*Ð*Ø—
’
˜5Ñ!Ô!Ð!Ø”×!Ò! #Ñ&Ô&Ð&Ø—’Ñ Ô Ð Ð Ø×ÒÑÔÐÝ˜& œ*¥c¤oÑ6Ô6ð 'Ø—
’
˜6 "œ:Ñ&Ô&Ð&Ð&à”×!Ò! 'Ñ*Ô*Ð*Ø—
’
˜6 "œ:Ñ&Ô&Ð&ØŒK×Ò˜dÑ#Ô#Ð#Ø�JŠJ�tÑÔÐØ�NŠNÑÔÐØ×!Ò! 'Ñ*Ô*Ð*Ñ*ØÐÔ Ñ!ÐÔØ×ÒÑÔÐØŒ×Ò˜#ÑÔÐØ�ŠÑÔÐÐÐr-   c                 ó:   — | j                              d¦  «         d S )Nr   rK   r|   s     r+   Ú_visit_DefaultCasezBasicPrinter._visit_DefaultCase@  s   € ØŒ×Ò˜)Ñ$Ô$Ð$Ð$Ð$r-   )r9   N)F)„r>   Ú
__module__Ú__qualname__Ú__doc__r   ÚConstantÚPIÚEULERÚTAUr—   ÚQuantumGateModifierNameÚCTRLÚNEGCTRLÚINVÚPOWrí   Ú	FloatTyperw   r   ÚioÚ
TextIOBaser'   r{   r7   ÚASTNoderD   rI   rL   rP   rS   r   r[   ÚProgramra   ÚHeaderrf   ÚVersionrj   ÚIncludern   ÚPragmarq   ÚCalibrationGrammarDeclarationrt   rx   ÚBoolTyper}   ÚIntTyperƒ   ÚUintTyper†   ÚBitTyper‰   ÚBitArrayTyper‹   ÚStringifyAndPrayrŽ   Ú
Identifierr‘   ÚSubscriptedIdentifierr•   r˜   r  rœ   ÚIndexSetr¢   ÚQuantumMeasurementr¦   ÚQuantumMeasurementAssignmentr¬   ÚQuantumResetr®   ÚQuantumDelayr²   ÚIntegerLiteralr´   ÚBooleanLiteralr¸   ÚBitstringLiteralr½   ÚDurationLiteralrÀ   Ú
DesignatorrÃ   rË   rÎ   rÌ   rÑ   ÚCastrÓ   ÚIndexr×   ÚClassicalDeclarationrÚ   ÚAssignmentStatementrÞ   ÚIODeclarationrå   ÚQuantumDeclarationré   ÚAliasStatementrë   ÚQuantumGateModifierrï   ÚQuantumGateCallrö   ÚQuantumBarrierrø   ÚProgramBlockrú   ÚReturnStatementrü   ÚQuantumGateDefinitionr   ÚCalibrationDefinitionr  ÚBreakStatementr  ÚContinueStatementr
  r  r  ÚForLoopStatementr  ÚWhileLoopStatementr  ÚSwitchStatementr#  ÚSwitchStatementPreviewr'  r%  r)  r&   r-   r+   r   r   @   s	  € € € € € ð/ð /ð 	ŒŒ˜ØŒÔ˜GØŒÔ˜%ðÐð 	Ô#Ô(¨&ØÔ#Ô+¨YØÔ#Ô'¨ØÔ#Ô'¨ð	Ðð LÐK¸S¼]ÐKÑKÔKÐð $Ø-AÐ-AÀ!Ñ-DÔ-Dð+*ð +*ð +*à”ð+*ð ð	+*ð
 ð+*ð +ð+*ð +*ð +*ð +*ðZ˜#œ+ð ¨$ð ð ð ð ð6>ð >ð >ð >ð!ð !ð !ð !ð ð  ð  ð  ð Sð ¨Tð ð ð ð ð =?È2ð#ð #ð #Ø˜cœkÔ*ð#Ø69ð#ØEHð#ØZ]ð#à	ð#ð #ð #ð #ð" 3¤;ð "°4ð "ð "ð "ð "ð
  #¤*ð  °ð  ð  ð  ð  ð
A 3¤;ð A°4ð Að Að Að Að< 3¤;ð <°4ð <ð <ð <ð <ð9 #¤*ð 9°ð 9ð 9ð 9ð 9ð>¸Ô9Zð >Ð_cð >ð >ð >ð >ðF S¤]ð F°tð Fð Fð Fð Fð" S¤\ð "°dð "ð "ð "ð "ð0 3¤;ð 0°4ð 0ð 0ð 0ð 0ð
0 C¤Lð 0°Tð 0ð 0ð 0ð 0ð
! C¤Kð !°Dð !ð !ð !ð !ð/¨Ô(8ð /¸Tð /ð /ð /ð /ð)¨CÔ,@ð )ÀTð )ð )ð )ð )ð' c¤nð '¸ð 'ð 'ð 'ð 'ð°Ô1Jð Ètð ð ð ð ð7 C¤Lð 7°Tð 7ð 7ð 7ð 7ð! ¤ð !¨tð !ð !ð !ð !ðN C¤Lð N°Tð Nð Nð Nð NðB¨cÔ.Dð BÈð Bð Bð Bð Bð¸Ô8Xð Ð]að ð ð ð ð¨Ô(8ð ¸Tð ð ð ð ð¨Ô(8ð ¸Tð ð ð ð ð+¨#Ô*<ð +Àð +ð +ð +ð +ð=¨#Ô*<ð =ð =ð =ð =ð<¨CÔ,@ð <ð <ð <ð <ð<¨3Ô+>ð <À4ð <ð <ð <ð <ð c¤nð ¸ð ð ð ð ð

% ¤ð 
%ð 
%ð 
%ð 
%ð# #¤*ð #ð #ð #ð #ð* ¤ð ð ð ð ð	 ¤ð 	ð 	ð 	ð 	ð°Ô0Hð ÈTð ð ð ð ð¨sÔ/Fð È4ð ð ð ð ð¨Ô):ð ¸tð ð ð ð ð¨cÔ.Dð Èð ð ð ð ð¨#Ô*<ð Àð ð ð ð ð#¨sÔ/Fð #È4ð #ð #ð #ð #ð	¨3Ô+>ð 	À4ð 	ð 	ð 	ð 	ð¨#Ô*<ð Àð ð ð ð ð¨Ô(8ð ¸Tð ð ð ð ð¨3Ô+>ð À4ð ð ð ð ð°Ô1Jð Ètð ð ð ð ð°Ô1Jð Ètð ð ð ð ð'¨3Ô+=ð 'À$ð 'ð 'ð 'ð 'ð*¨cÔ.Cð *Èð *ð *ð *ð *ð =Bðð ØÔ*ðØ59ðà	ðð ð ð ð8¨CÔ,@ð ÀTð ð ð ð ð¨cÔ.Dð Èð ð ð ð ð¨3Ô+>ð À4ð ð ð ð ð4°#Ô2Lð ÐQUð ð ð ð ð@%¨¬ð %¸Dð %ð %ð %ð %ð %ð %r-   r   )r,  Úcollectionsr7  Útypingr   rT   r   r/   r   Ú
namedtupler   rË   ÚOpÚ	LOGIC_NOTÚBIT_NOTrÌ   Ú
SHIFT_LEFTÚSHIFT_RIGHTÚLESSÚ
LESS_EQUALÚGREATERÚGREATER_EQUALÚEQUALÚ	NOT_EQUALÚBIT_ANDÚBIT_XORÚBIT_ORÚ	LOGIC_ANDÚLOGIC_ORrÍ   r   r&   r-   r+   ú<module>ry     s&  ðð )Ð (à Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .ð '�Ô& Ð8IÐT^Ð_Ñ_Ô_€ð „I„LÔ˜M˜M°Ð3Ñ3Ô3Ø„I„LÔ˜-˜-¨bÐ1Ñ1Ô1ð
 „J„MÔ˜m˜m¨B°Ñ3Ô3Ø„J„MÔ˜}˜}¨R°Ñ4Ô4à„J„MÔ˜˜ b¨"Ñ-Ô-Ø„J„MÔ˜m˜m¨B°Ñ3Ô3Ø„J„MÔ˜=˜=¨¨RÑ0Ô0Ø„J„MÔ  ¨r°2Ñ!6Ô!6à„J„MÔ˜˜ r¨2Ñ.Ô.Ø„J„MÔ˜]˜]¨2¨rÑ2Ô2à„J„MÔ˜=˜=¨¨BÑ/Ô/Ø„J„MÔ˜=˜=¨¨AÑ.Ô.Ø„J„MÔ˜-˜-¨¨1Ñ-Ô-Ø„J„MÔ˜]˜]¨1¨aÑ0Ô0Ø„J„MÔ˜M˜M¨!¨QÑ/Ô/ð1€ð8A%ð A%ð A%ð A%ð A%ñ A%ô A%ð A%ð A%ð A%r-   