§
    ¹³ÙgQS  ã                  óP  — d Z ddlmZ ddlZddlZddlmZmZmZm	Z	m
Z
 ddlmZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZmZ  ej         e!¦  «        Z" ed¦  «        	 	 	 	 	 d"d#d„¦   «         Z#	 	 	 	 	 d"d#d„Z$d$d„Z% G d „ d!e¦  «        Z&dS )%z)Backend abstract interface for providers.é    )ÚannotationsN)ÚListÚIterableÚAnyÚDictÚOptional)Ú	BackendV1Ú	BackendV2)ÚQubitProperties)ÚBackendConfiguration)ÚBackendProperties)ÚCONTROL_FLOW_OP_NAMES)ÚPulseDefaults©ÚOptions)ÚBackendPropertyError)Údeprecate_func)Údeprecate_pulse_argÚdeprecate_pulse_dependencyÚdefaultsTÚconfigurationr   Ú
propertiesr   r   Úcustom_name_mappingúOptional[Dict[str, Any]]Ú	add_delayÚboolÚfilter_faultyc           	     ó¾   — t          j        ¦   «         5  t          j        dt          dd¬¦  «         t	          | |||||¦  «        }ddd¦  «         n# 1 swxY w Y   |S )a±  Decode transpiler target from backend data set.

    This function generates :class:`.Target`` instance from intermediate
    legacy objects such as :class:`.BackendProperties` and :class:`.PulseDefaults`.
    These objects are usually components of the legacy :class:`.BackendV1` model.

    Args:
        configuration: Backend configuration as ``BackendConfiguration``
        properties: Backend property dictionary or ``BackendProperties``
        defaults: DEPRECATED. Backend pulse defaults dictionary or ``PulseDefaults``
        custom_name_mapping: A name mapping must be supplied for the operation
            not included in Qiskit Standard Gate name mapping, otherwise the operation
            will be dropped in the resulting ``Target`` object.
        add_delay: If True, adds delay to the instruction set.
        filter_faulty: If True, this filters the non-operational qubits.

    Returns:
        A ``Target`` instance.
    Úignoreú6.*``qiskit.providers.exceptions.BackendPropertyError``Úqiskit©ÚcategoryÚmessageÚmoduleN)ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚ_convert_to_target)r   r   r   r   r   r   Útargets          úU/granary/edev/quantum/lib/python3.11/site-packages/qiskit/providers/backend_compat.pyÚconvert_to_targetr-   #   sµ   € õ< 
Ô	 Ñ	"Ô	"ð 	
ð 	
ÝÔØÝ'ØLØð		
ñ 	
ô 	
ð 	
õ $Ø˜: xÐ1DÀiÐQ^ñ
ô 
ˆð	
ð 	
ð 	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøð 	
ð 	
ð 	
ð 	
ð €Ms   ”2AÁAÁAc                ó~  ‡‡‡+— ddl m}m} ddlm}m}	m}
m} ddlm	} ddl
m} ddlm} ddg} |¦   «         }|r|                     |¦  «         |	|||
d	œ}d
| j        i}t!          | d¦  «        r
| j        |d<   t!          | d¦  «        r|                     | j        ¦  «         t'          t)          | dg ¦  «        ¦  «        }t'          t)          | dg ¦  «        ¦  «        }d„ | j        D ¦   «         }t&                               |t'          |¦  «        |                     t0          ¦  «        ¦  «        }i }t'          ¦   «         }t'          ¦   «         Š+g }|D ]¼}||v rŒ||v r||         ||<   Œ||v rn||         }t3          t5          |t)          |dg ¦  «        ¦  «        ¦  «        }t)          |dg ¦  «        } |||rt7          |d         ¦  «        nd|¬¦  «        ||<   Œ‰t9          j        d|› d�t<          ¦  «         |                     |¦  «         Œ½|D ]}|                      |¦  «         ŒtB           "                    |¦  «        }|D ]O}||v rIt)          ||         dd¦  «        x}r0tB           "                    t5          tF          |¦  «        ¦  «        ||<   ŒP‰�rŠd„ }ˆfd„tI          | j        ¦  «        D ¦   «         Š+g } tI          d| j        ¦  «        D ]�}!	 ‰ %                    |!¬¦  «        }"n# tL          $ r Y Œ&w xY w|                      tO          |" (                    dd¦  «        d         |" (                    dd¦  «        d         |" (                    dd¦  «        d         ¬¦  «        ¦  «         Œž| |d<   |D �]F}	 ‰ )                    |¦  «         *                    ¦   «         D ]¢\  }#}‰rdt&                               ‰+|#¦  «        s‰ +                    ||#¦  «        s3	 ||         |#= n# tL          $ r Y nw xY w| ,                    ||#f¦  «         Œk||         €i ||<    | ||d¦  «         ||d ¦  «        ¬!¦  «        ||         |#<   Œ£t[          ||         tB          ¦  «        rLt]          d"„ ||          /                    ¦   «         D ¦   «         ¦  «        rt`           1                    d#|¦  «         �Œ7# td          $ r Y �ŒDw xY wi |d<   tI          | j        ¦  «        D ]I}$‰r|$‰+v rŒ	‰ %                    |$¦  «        }% | ||%d$¦  «         ||%d%¦  «        ¬!¦  «        |d         |$f<   ŒJ|D ].}&||&         €$ˆ+ˆfd&„tI          | j        ¦  «        D ¦   «         ||&<   Œ/|rý|j3        }'|'j4        D ]î}|' 5                    |¦  «        D ]Ö}#t[          |#tF          ¦  «        s|#f}#||vs||vs||         �
|#||         vrt`           1                    d'||#¦  «         ŒQ||#f|v rŒX|' 6                    ||#¦  «        }(	 |(||         |#         _7        Œƒ# tp          $ rG ||                              |# |dd|(¦  «        i¦  «         t`           1                    d(||#¦  «         Y ŒÓw xY wŒï |d+i |¤Ž})|D ]_}*|*dk    r|sŒ|*|v r|) 9                    ||*         |*¬)¦  «         Œ-|) 9                    ||*         | (                    |*d¦  «        |*¬*¦  «         Œ`|)S ),z7An alternative private path to avoid pulse deprecationsr   )ÚTargetÚInstructionProperties)Ú	ForLoopOpÚIfElseOpÚSwitchCaseOpÚWhileLoopOp)Úget_standard_gate_name_mapping)Ú	Parameter)ÚGateÚmeasureÚdelay)Úif_elseÚ
while_loopÚfor_loopÚswitch_caseÚ
num_qubitsÚdtÚtiming_constraintsÚbasis_gatesÚsupported_instructionsc                ó   — i | ]
}|j         |“ŒS © )Úname)Ú.0Úgates     r,   ú
<dictcomp>z&_convert_to_target.<locals>.<dictcomp>{   s   € ÐDÐDÐD¨�D”I˜tÐDÐDÐDó    Ú
parametersÚcoupling_map)rE   r>   ÚparamszNo gate definition for zŒ can be found and is being excluded from the generated target. You can use `custom_name_mapping` to provide a definition for this operation.Nc                óF   — |                       |d ¦  «        x}r|d         S d S )Nr   )Úget)Ú	prop_dictÚ	prop_nameÚndvals      r,   Ú
_get_valuez&_convert_to_target.<locals>._get_value¶   s+   € Ø!Ÿš i°Ñ6Ô6Ð6ˆuð  Ø˜Q”x�Ø�4rI   c                ó>   •— h | ]}‰                      |¦  «        °|’ŒS rD   )Úis_qubit_operational)rF   Úqr   s     €r,   ú	<setcomp>z%_convert_to_target.<locals>.<setcomp>¼   s=   ø€ ð 
ð 
ð 
Ø¸j×>]Ò>]Ð^_Ñ>`Ô>`ð
Øð
ð 
ð 
rI   )ÚqubitÚT1)NNÚT2Ú	frequency©Út1Út2rZ   Úqubit_propertiesÚ
gate_errorÚgate_length)ÚerrorÚdurationc              3  ó   K  — | ]}|d u V — Œ	d S ©NrD   )rF   Úvs     r,   ú	<genexpr>z%_convert_to_target.<locals>.<genexpr>è   s?   è è € ð Að AØ"#�A˜�IðAð Að Að Að Að ArI   zÏGate properties of instruction %s are not provided for every qubits. This gate is ideal for some qubits and the rest is with finite error. Created backend target may confuse error-aware circuit optimization.Úreadout_errorÚreadout_lengthc                ó$   •— i | ]}‰r|‰v¯|fd “ŒS rd   rD   )rF   rU   Úfaulty_qubitsr   s     €€r,   rH   z&_convert_to_target.<locals>.<dictcomp>  s<   ø€ ð !ð !ð !àØ$ð!ð *+°-Ð)?Ð)?ð ��dà)?Ð)?Ð)?rI   z¶Gate calibration for instruction %s on qubits %s is found in the PulseDefaults payload. However, this entry is not defined in the gate mapping of Target. This calibration is ignored.zÔThe PulseDefaults payload received contains an instruction %s on qubits %s which is not present in the configuration or properties payload.A new properties entry will be added to include the new calibration data.)ÚinstructionrE   )rk   r   rE   rD   ):Úqiskit.transpiler.targetr/   r0   Úqiskit.circuit.controlflowr1   r2   r3   r4   Ú%qiskit.circuit.library.standard_gatesr5   Úqiskit.circuit.parameterr6   Úqiskit.circuit.gater7   Úupdater>   Úhasattrr?   r@   ÚsetÚgetattrÚgatesÚunionÚintersectionr   ÚlistÚmapÚlenr&   ÚwarnÚRuntimeWarningÚappendÚremoveÚdictÚfromkeysÚtupleÚrangeÚqubit_propertyÚKeyErrorr   rN   Úgate_propertyÚitemsÚis_gate_operationalÚaddÚ
isinstanceÚanyÚvaluesÚloggerÚinfor   Úinstruction_schedule_mapÚinstructionsÚqubits_with_instructionÚ_get_calibration_entryÚ_calibration_propÚAttributeErrorÚadd_instruction),r   r   r   r   r   r   r/   r0   r1   r2   r3   r4   r5   r6   r7   ÚrequiredÚqiskit_inst_mappingÚqiskit_control_flow_mappingÚin_datarA   rB   Úgate_configsÚall_instructionsÚinst_name_mapÚ
faulty_opsÚunsupported_instructionsrE   Úthis_configrL   rK   Úprop_name_maprR   r^   ÚqirO   ÚqubitsÚ	qubit_idxÚ
qubit_propÚopÚinst_sched_mapÚentryr+   Ú	inst_namerj   s,    `   `                                     @r,   r*   r*   N   s†	  øøø€ ðð ð ð ð ð ð ð ð ZÐYÐYÐYÐYÐYÐYÐYÐYÐYÐYÐYØTÐTÐTÐTÐTÐTØ2Ð2Ð2Ð2Ð2Ð2Ø(Ð(Ð(Ð(Ð(Ð(à˜7Ð#€Hð 9Ð8Ñ:Ô:ÐØð 8Ø×"Ò"Ð#6Ñ7Ô7Ð7ð Ø!ØØ#ð	#ð #Ðð ˜]Ô5Ð6€Gõ ˆ}˜dÑ#Ô#ð )Ø%Ô(ˆ�‰Ýˆ}Ð2Ñ3Ô3ð 9Ø�Š�}Ô7Ñ8Ô8Ð8õ •g˜m¨]¸BÑ?Ô?Ñ@Ô@€KÝ ¥¨Ð8PÐRTÑ!UÔ!UÑVÔVÐØDÐD°Ô0CÐDÑDÔD€LÝ—y’yØ•S˜‘]”]Ð$:×$GÒ$GÕH]Ñ$^Ô$^ñô Ðð €Må‘”€JÝ‘E”E€MØ!Ðð !ð 2ð 2ˆØÐ.Ð.Ð.ØØÐ&Ð&Ð&Ø"5°dÔ";ˆM˜$ÑÐØ�\Ð!Ð!ð
 ' tÔ,ˆKÝ�#˜i­°¸lÈBÑ)OÔ)OÑPÔPÑQÔQˆFÝ" ;°ÀÑCÔCˆLØ"& $ØØ3?ÐF�3˜|¨AœÑ/Ô/Ð/ÀQØð#ñ #ô #ˆM˜$ÑÐõ ŒMð3¨$ð 3ð 3ð 3õ ñ	ô ð ð %×+Ò+¨DÑ1Ô1Ð1Ð1à(ð &ð &ˆØ×Ò Ñ%Ô%Ð%Ð%õ —M’MÐ"2Ñ3Ô3€MØ ð Nð NˆØ�<ÐÐÝ& |°DÔ'9¸>È4ÑPÔPÐPˆ|ð Nõ
 '+§m¢mµC½¸|Ñ4LÔ4LÑ&MÔ&M�˜dÑ#øð ñ Mð	ð 	ð 	ð
ð 
ð 
ð 
Ý˜]Ô5Ñ6Ô6ð
ñ 
ô 
ˆð ÐÝ˜˜=Ô3Ñ4Ô4ð 	ð 	ˆBðØ&×5Ò5¸BÐ5Ñ?Ô?�	�	øÝð ð ð Ø�ðøøøà×#Ò#ÝØ —}’} T¨<Ñ8Ô8¸Ô;Ø —}’} T¨<Ñ8Ô8¸Ô;Ø'Ÿmšm¨K¸ÑFÔFÀqÔIðñ ô ñô ð ð ð '7ˆÐ"Ñ#à$ð $	ñ $	ˆDð#Ø&0×&>Ò&>¸tÑ&DÔ&D×&JÒ&JÑ&LÔ&Lð ð ‘N�F˜FØ$ð !Ý×(Ò(¨¸Ñ?Ô?ð!à)×=Ò=¸dÀFÑKÔKð!ð!ð !.¨dÔ 3°FÐ ;Ð ;øÝ'ð !ð !ð !Ø ˜Dð!øøøà"Ÿš¨¨f ~Ñ6Ô6Ð6Ø Ø$ TÔ*Ð2ð /1˜ dÑ+Ø2GÐ2GØ(˜j¨°Ñ>Ô>Ø!+ ¨F°MÑ!BÔ!Bð3ñ 3ô 3�M $Ô'¨Ñ/Ð/õ ˜m¨DÔ1µ4Ñ8Ô8ð 
½Sð Að AØ'4°TÔ':×'AÒ'AÑ'CÔ'CðAñ Aô Añ >ô >ð 
õ
 —K’Kð_ð ñ	ô ð ùøõ (ð ð ð à‘ðøøøð
 $&ˆ�iÑ å˜}Ô7Ñ8Ô8ð 	ð 	ˆIØð  )¨}Ð"<Ð"<ØØ#×2Ò2°9Ñ=Ô=ˆJØ5JÐ5JØ �j ¨_Ñ=Ô=Ø#˜ JÐ0@ÑAÔAð6ñ 6ô 6ˆM˜)Ô$ i \Ñ2Ð2ð
 ð ð ˆà˜ÔÐ$ð!ð !ð !ð !ð !å˜}Ô7Ñ8Ô8ð!ñ !ô !ˆM˜"Ñøð ð %Ø!Ô:ˆà"Ô/ð "	ð "	ˆDØ(×@Ò@ÀÑFÔFð !ð !�Ý! &­%Ñ0Ô0ð 'Ø$˜Y�FàÐ 0Ð0Ð0Ø =Ð0Ð0Ø$ TÔ*Ð2Ø ]°4Ô%8Ð8Ð8å—K’KðSð Øñô ð ð à˜&�> ZÐ/Ð/Øà&×=Ò=¸dÀFÑKÔK�ðØDI�M $Ô'¨Ô/ÔAÐAøÝ%ð 	ð 	ð 	à! $Ô'×.Ò.°Ð8MÐ8MÈdÐTXÐZ_Ñ8`Ô8`Ð/aÑbÔbÐbÝ—K’Kðdð Øñô ð ð ð ð	øøøð1!ðF ˆVÐÐ�gÐÐ€FØ%ð ð ˆ	Ø˜ÒÐ¨	ÐØØÐ3Ð3Ð3à×"Ò"Ø7¸	ÔBØð #ñ ô ð ð ð
 ×"Ò"Ø)¨)Ô4Ø(×,Ò,¨Y¸Ñ=Ô=Øð #ñ ô ð ð ð €Ms]   ËK-Ë-
K:Ë9K:Í<AR/Ï	O&Ï%R/Ï&
O3Ï0R/Ï2O3Ï3B:R/Ò/
R=Ò<R=×*W>×>AYÙYÚreturnúList[QubitProperties]c                ó~  — g }t          | j        ¦  «        D ]¥\  }}	 |                      |¦  «        }n# t          $ r d}Y nw xY w	 |                      |¦  «        }n# t          $ r d}Y nw xY w	 |                      |¦  «        }n# t          $ r d}Y nw xY w|                     t          |||¬¦  «        ¦  «         Œ¦|S )zRUses BackendProperties to construct
    and return a list of QubitProperties.
    Nr[   )Ú	enumerater¡   r\   r   r]   rZ   r}   r   )r   Úqubit_propsrW   Ú_Út_1Út_2rZ   s          r,   Úqubit_props_list_from_propsr°   G  s  € ð *,€KÝ˜jÔ/Ñ0Ô0ð 
ð 
‰ˆˆqð	Ø—-’- Ñ&Ô&ˆCˆCøÝ#ð 	ð 	ð 	ØˆCˆCˆCð	øøøð	Ø—-’- Ñ&Ô&ˆCˆCøÝ#ð 	ð 	ð 	ØˆCˆCˆCð	øøøð	Ø"×,Ò,¨UÑ3Ô3ˆIˆIøÝ#ð 	ð 	ð 	ØˆIˆIˆIð	øøøà×ÒÝØØØ#ðñ ô ñ	
ô 	
ð 	
ð 	
ð Ðs3   �3³AÁAÁAÁA+Á*A+Á/BÂBÂBc                  ó,  ‡ — e Zd ZdZ eddd¬¦  «        	 	 	 d!d"ˆ fd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Ze	d„ ¦   «         Z
ed#d„¦   «         Zed$d„¦   «         Zed%d„¦   «         Zed%d„¦   «         Zed%d„¦   «         Zed&d„¦   «         Zd „ Zˆ xZS )'ÚBackendV2Convertera$  A converter class that takes a :class:`~.BackendV1` instance and wraps it in a
    :class:`~.BackendV2` interface.

    This class implements the :class:`~.BackendV2` interface and is used to enable
    common access patterns between :class:`~.BackendV1` and :class:`~.BackendV2`. This
    class should only be used if you need a :class:`~.BackendV2` and still need
    compatibility with :class:`~.BackendV1`.

    When using custom calibrations (or other custom workflows) it is **not** recommended
    to mutate the ``BackendV1`` object before applying this converter. For example, in order to
    convert a ``BackendV1`` object with a customized ``defaults().instruction_schedule_map``,
    which has a custom calibration for an operation, the operation name must be in
    ``configuration().basis_gates`` and ``name_mapping`` must be supplied for the operation.
    Otherwise, the operation will be dropped in the resulting ``BackendV2`` object.

    Instead it is typically better to add custom calibrations **after** applying this converter
    instead of updating ``BackendV1.defaults()`` in advance. For example::

        backend_v2 = BackendV2Converter(backend_v1)
        backend_v2.target.add_instruction(
            custom_gate, {(0, 1): InstructionProperties(calibration=custom_sched)}
        )
    z1.4zin the 2.0 releasezzSince ``BackendV1`` is deprecated, this conversion tool from BackendV1 to BackendV2 is going to be removed with BackendV1.)ÚsinceÚremoval_timelineÚadditional_msgNTÚbackendr	   Úname_mappingr   r   r   r   c           
     ó   •— || _         | j                              ¦   «         | _        t          ¦   «                              |j        |                     ¦   «         t          | j        dd¦  «        t          | j        dd¦  «        | j        j        ¬¦  «         | j         j	        | _	        d| _
        d| _        t          j        ¦   «         5  t          j        dt          d¬¦  «         t!          | j         d¦  «        r| j                              ¦   «         | _
        t!          | j         d	¦  «        r| j                              ¦   «         | _        ddd¦  «         n# 1 swxY w Y   d| _        || _        || _        || _        dS )
a9  Initialize a BackendV2 converter instance based on a BackendV1 instance.

        Args:
            backend: The input :class:`~.BackendV1` based backend to wrap in a
                :class:`~.BackendV2` interface
            name_mapping: An optional dictionary that maps custom gate/operation names in
                ``backend`` to an :class:`~.Operation` object representing that
                gate/operation. By default most standard gates names are mapped to the
                standard gate object from :mod:`qiskit.circuit.library` this only needs
                to be specified if the input ``backend`` defines gates in names outside
                that set.
            add_delay: If set to true a :class:`~qiskit.circuit.Delay` operation
                will be added to the target as a supported operation for all
                qubits
            filter_faulty: If the :class:`~.BackendProperties` object (if present) for
                ``backend`` has any qubits or gates flagged as non-operational filter
                those from the output target.
        ÚdescriptionNÚonline_date)ÚproviderrE   r¹   rº   Úbackend_versionr   r!   )r#   r%   r   r   )Ú_backendr   Ú_configÚsuperÚ__init__r»   rE   rt   r¼   Ú_optionsÚ_propertiesÚ	_defaultsr&   r'   r(   r)   rr   r   r   Ú_targetÚ_name_mappingÚ
_add_delayÚ_filter_faulty)Úselfr¶   r·   r   r   Ú	__class__s        €r,   rÀ   zBackendV2Converter.__init__~  s‘  ø€ ð>  ˆŒØ”}×2Ò2Ñ4Ô4ˆŒÝ‰Œ×ÒØÔ%Ø—’‘”Ý ¤¨m¸TÑBÔBÝ ¤¨m¸TÑBÔBØ œLÔ8ð 	ñ 	
ô 	
ð 	
ð œÔ.ˆŒØˆÔØˆŒåÔ$Ñ&Ô&ð 	:ð 	:åÔ# HÕ7IÐRZÐ[Ñ[Ô[Ð[Ý�t”} lÑ3Ô3ð >Ø#'¤=×#;Ò#;Ñ#=Ô#=�Ô Ý�t”} jÑ1Ô1ð :Ø!%¤×!7Ò!7Ñ!9Ô!9�”ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð ˆŒØ)ˆÔØ#ˆŒØ+ˆÔÐÐs   ÃBEÅEÅEc           	     óX  — | j         €�t          j        ¦   «         5  t          j        dt          dd¬¦  «         t          j        dt          dd¬¦  «         t          | j        | j        | j        | j	        | j
        | j        ¬¦  «        | _         ddd¦  «         n# 1 swxY w Y   | j         S )z\A :class:`qiskit.transpiler.Target` object for the backend.

        :rtype: Target
        Nr   r    r!   r"   z8.+qiskit\.providers\.backend_compat\.convert_to_target.+)r   r   r   r   r   r   )rÄ   r&   r'   r(   r)   r*   r¾   rÂ   rÃ   rÅ   rÆ   rÇ   ©rÈ   s    r,   r+   zBackendV2Converter.target·  s  € ð Œ<Ðõ Ô(Ñ*Ô*ð ð ÝÔ'ØÝ/ØTØ#ð	ñ ô ð õ Ô'ØÝ/ØWØ#ð	ñ ô ð õ  2Ø"&¤,Ø#Ô/Ø!œ^Ø(,Ô(:Ø"œoØ"&Ô"5ð ñ  ô  �”ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð. Œ|Ðs   ›A3BÂBÂ!Bc                ó   — | j         j        S rd   )r¾   Úmax_experimentsrË   s    r,   Úmax_circuitszBackendV2Converter.max_circuitsÚ  s   € àŒ|Ô+Ð+rI   c                ó   — t          ¦   «         S rd   r   )Úclss    r,   Ú_default_optionsz#BackendV2Converter._default_optionsÞ  s   € å‰yŒyÐrI   r¨   Úfloatc                ó   — | j         j        S rd   )r¾   ÚdtmrË   s    r,   rÔ   zBackendV2Converter.dtmâ  s   € àŒ|ÔÐrI   úList[List[int]]c                ó   — | j         j        S rd   )r¾   Úmeas_maprË   s    r,   r×   zBackendV2Converter.meas_mapæ  s   € àŒ|Ô$Ð$rI   rW   Úintc                ó6   — | j                              |¦  «        S rd   )r¾   Údrive©rÈ   rW   s     r,   Údrive_channelz BackendV2Converter.drive_channelê  s   € àŒ|×!Ò! %Ñ(Ô(Ð(rI   c                ó6   — | j                              |¦  «        S rd   )r¾   r8   rÛ   s     r,   Úmeasure_channelz"BackendV2Converter.measure_channelî  ó   € àŒ|×#Ò# EÑ*Ô*Ð*rI   c                ó6   — | j                              |¦  «        S rd   )r¾   ÚacquirerÛ   s     r,   Úacquire_channelz"BackendV2Converter.acquire_channelò  rß   rI   r¡   úIterable[int]c                ó6   — | j                              |¦  «        S rd   )r¾   Úcontrol)rÈ   r¡   s     r,   Úcontrol_channelz"BackendV2Converter.control_channelö  s   € àŒ|×#Ò# FÑ+Ô+Ð+rI   c                ó(   —  | j         j        |fi |¤ŽS rd   )r½   Úrun)rÈ   Ú	run_inputÚoptionss      r,   rè   zBackendV2Converter.runú  s   € Ø ˆtŒ}Ô  Ð6Ð6¨gÐ6Ð6Ð6rI   )NTT)r¶   r	   r·   r   r   r   r   r   )r¨   rÒ   )r¨   rÕ   )rW   rØ   )r¡   rã   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rÀ   Úpropertyr+   rÎ   ÚclassmethodrÑ   rÔ   r×   r   rÜ   rÞ   râ   ræ   rè   Ú__classcell__)rÉ   s   @r,   r²   r²   e  s¨  ø€ € € € € ðð ð0 €^ØØ-ð;ðñ ô ð 26ØØ"ð1,ð 1,ð 1,ð 1,ð 1,ð 1,ñô ð1,ðf ð ð  ñ „Xð ðD ð,ð ,ñ „Xð,ð ðð ñ „[ðð ð ð  ð  ñ „Xð ð ð%ð %ð %ñ „Xð%ð  ð)ð )ð )ñ  Ôð)ð  ð+ð +ð +ñ  Ôð+ð  ð+ð +ð +ñ  Ôð+ð  ð,ð ,ð ,ñ  Ôð,ð7ð 7ð 7ð 7ð 7ð 7ð 7rI   r²   )NNNTT)r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r¨   r©   )'rî   Ú
__future__r   Úloggingr&   Útypingr   r   r   r   r   Úqiskit.providers.backendr	   r
   r   Ú,qiskit.providers.models.backendconfigurationr   Ú)qiskit.providers.models.backendpropertiesr   rm   r   Ú%qiskit.providers.models.pulsedefaultsr   Úqiskit.providers.optionsr   Úqiskit.providers.exceptionsr   Úqiskit.utilsr   Úqiskit.utils.deprecate_pulser   r   Ú	getLoggerrë   rŒ   r-   r*   r°   r²   rD   rI   r,   ú<module>rþ      sô  ðð 0Ð /à "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø MÐ MÐ MÐ MÐ MÐ MØ GÐ GÐ GÐ GÐ GÐ GØ <Ð <Ð <Ð <Ð <Ð <Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø <Ð <Ð <Ð <Ð <Ð <Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xð 
ˆÔ	˜8Ñ	$Ô	$€ð Ð�ZÑ Ô ð %)Ø"Ø48ØØð'ð 'ð 'ð 'ñ !Ô ð'ðX %)Ø"Ø48ØØðvð vð vð vð vðrð ð ð ð<V7ð V7ð V7ð V7ð V7˜ñ V7ô V7ð V7ð V7ð V7rI   