§
    º³ÙgŒš  ã                   óÚ  — d Z ddlZddlZddlmZ ddlZddl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„ Zej        j        	 	 	 	 	 	 	 	 	 	 	 	 	 dd„¦   «         Zej        j        ej        j        	 	 	 	 	 	 	 	 	 	 	 	 dddœdedeee                  deee                  fd„¦   «         ¦   «         Zdd„Zej        j        ej         j        dd„¦   «         ¦   «         Z!dS )z-A module for visualizing device coupling mapsé    N)ÚList)Úgraphviz_draw)ÚQiskitError)Ú	optionals)Ú	BackendV2)ÚBackendPropertyError)ÚCouplingMapé   )ÚVisualizationErrorc                 ó(   — t          | dd ¦  «        }|S )NÚversion)Úgetattr)ÚbackendÚbackend_interface_versions     úS/granary/edev/quantum/lib/python3.11/site-packages/qiskit/visualization/gate_map.pyÚ_get_backend_interface_versionr      s   € Ý '¨°¸DÑ AÔ AÐØ$Ð$ó    FTé   Úwhitec                 ód  — t          | t          ¦  «        s t          j        d| › d�t          d¬¦  «         i }ddgddgddgddgddgg|d<   ddgddgddgddgddgddgddgg|d<   ddgddgddgdd	gdd
gddgddgddgdd	gdd
gddgddgddgdd	gdd
gd	dgd	dgd	dgd	d	gd	d
gg|d<   ddgddgddgdd	gdd
gddgddgddgddgddgdd
gdd	gddgddgddgg|d<   ddgddgddgd	dgddgd	dgdd	gdd	gd	d	gd
d	gdd
gd	d
gddgddgd	dgddgg|d<   ddgddgddgd	dgddgd	dgdd	gdd	gd	d	gd
d	gdd
gd	d
gddgddgd	dgddgd	dgddgddgd	dgd
dgddgd	dgddgddgd	dgd	dgg|d<   ddgdd	gdd
gddgddgddgddgddgddgddgdd	gdd
gddgddgddgddgd	dgd	d
gd	dgd
dgd
dgd
dgd
d	gd
d
gd
dgd
dgd
dgd
dgg|d<   g ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘d	dg‘d	d
g‘d	dg‘d
dg‘d
dg‘d
dg‘d
d	g‘d
d
g‘d
dg‘d
dg‘d
dg‘d
dg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘|d<   g ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘d	dg‘d	dg‘d	dg‘d
dg‘d
dg‘d
dg‘d
d	g‘d
d
g‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘|d<   g ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘d	dg‘d	dg‘d	dg‘d	dg‘d
dg‘d
dg‘d
dg‘d
d	g‘d
d
g‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘|d<   g ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd!g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘d	dg‘d	dg‘d	dg‘d	dg‘d	dg‘d	dg‘d	d#g‘d
dg‘d
dg‘d
dg‘d
d	g‘d
d
g‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
dg‘d
d g‘d
d!g‘d
d"g‘d
d#g‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd!g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd#g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd!g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd#g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd!g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd#g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd!g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd#g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘ddg‘dd
g‘ddg‘ddg‘ddg‘ddg‘dd!g‘ddg‘ddg‘ddg‘dd	g‘dd
g‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘ddg‘dd g‘dd!g‘dd"g‘dd#g‘d dg‘d dg‘d dg‘d dg‘d dg‘d dg‘d d#g‘d!dg‘d!dg‘d!d	g‘d!d
g‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!dg‘d!d g‘d!d!g‘d!d"g‘d!d#g‘|d$<   t          | ¦  «        }|dk    rl|                      ¦   «         j        rt          d%¦  «        ‚|                      ¦   «         }|j	        }t          |j        ¦  «        }|                      ¦   «         }n| j        }| j        }| j        }|€d'|v sd(|v r|                     |d&¦  «        }|r5t          |¦  «        |k    r"t          d)t          |¦  «        › d*|› �¦  «        ‚t!          |||                     ¦   «         |||||||||	|
||t%          j        |j                             d+¬,¦  «        ¦  «        ¬-¦  «        S ).a%  Plots the gate map of a device.

    .. deprecated:: 1.4
        The function ``plot_gate_map`` will stop supporting inputs of type
        :class:`.BackendV1` in the `backend` parameter in a future release no
        earlier than 2.0. :class:`.BackendV1` is deprecated and implementations should
        move to :class:`.BackendV2`.

    Args:
        backend (Backend): The backend instance that will be used to plot the device
            gate map.
        figsize (tuple): Output figure size (wxh) in inches.
        plot_directed (bool): Plot directed coupling map.
        label_qubits (bool): Label the qubits.
        qubit_size (float): Size of qubit marker.
        line_width (float): Width of lines.
        font_size (int): Font size of qubit labels.
        qubit_color (list): A list of colors for the qubits
        qubit_labels (list): A list of qubit labels
        line_color (list): A list of colors for each line from coupling_map.
        font_color (str): The font color for the qubit labels.
        ax (Axes): A Matplotlib axes instance.
        filename (str): file path to save image to.
        qubit_coordinates (Sequence): An optional sequence input (list or array being the
            most common) of 2d coordinates for each qubit. The length of the
            sequence much match the number of qubits on the backend. The sequence
            should be the planar coordinates in a 0-based square grid where each
            qubit is located.

    Returns:
        Figure: A Matplotlib figure instance.

    Raises:
        QiskitError: If you tried to pass a simulator or the backend is None,
            but one of num_qubits, mpl_data, or cmap is None.
        MissingOptionalLibraryError: If matplotlib not installed.

    Example:

        .. plot::
           :alt: Output from the previous code.
           :include-source:

           from qiskit.providers.fake_provider import GenericBackendV2
           from qiskit.visualization import plot_gate_map

           backend = GenericBackendV2(num_qubits=5)

           plot_gate_map(backend)
    zOThe function `plot_gate_map` will stop supporting inputs of type `BackendV1` ( ú� ) in the `backend` parameter in a future release no earlier than 2.0. `BackendV1` is deprecated and implementations should move to `BackendV2`.é   ©ÚcategoryÚ
stacklevelr
   r   é   é   é   r   é   é   é   é   é   é	   é
   é   é   é5   éA   é   é   é   é   é   é   é   é   é   é   é   é   é   é   i±  z)Requires a device backend, not simulator.NÚibmÚfakez*The number of specified qubit coordinates z- does not match the device number of qubits: F©Ú
multigraph©Úplanar)Ú
isinstancer   ÚwarningsÚwarnÚDeprecationWarningr   ÚconfigurationÚ	simulatorr   Ún_qubitsr	   Úcoupling_mapÚnameÚ
num_qubitsÚgetÚlenÚplot_coupling_mapÚ	get_edgesÚrxÚ	is_planarÚgraphÚto_undirected)r   ÚfigsizeÚplot_directedÚlabel_qubitsÚ
qubit_sizeÚ
line_widthÚ	font_sizeÚqubit_colorÚqubit_labelsÚ
line_colorÚ
font_colorÚaxÚfilenameÚqubit_coordinatesÚqubit_coordinates_mapÚbackend_versionÚconfigrG   rE   rF   s                       r   Úplot_gate_mapr`   $   sw1  € õF �g�yÑ)Ô)ð 
ÝŒð*Ø")ð*ð *ð *õ (Øð	
ñ 	
ô 	
ð 	
ð Ðà!" A ¨¨A¨°°A°¸¸A¸ÀÀAÀÐGÐ˜!Ñà!" A ¨¨A¨°°A°¸¸A¸ÀÀAÀÈÈAÈÐQRÐTUÐPVÐWÐ˜!Ñð 
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð)!Ð˜"Ñð0 
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð!Ð˜"Ñð& 
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð!!Ð˜"Ñð( 
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆBˆð7!Ð˜"Ñð> 
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð9!Ð˜"Ñð>6!Ø	
ˆAˆð6!à	
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð	6!ð
 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð 
ˆAˆð6!ð  
ˆAˆð!6!ð" 
ˆAˆð#6!ð$ 
ˆAˆð%6!ð& 
ˆAˆð'6!ð( 
ˆAˆð)6!ð* 
ˆAˆð+6!ð, 
ˆAˆð-6!ð. 
ˆAˆð/6!ð0 
ˆAˆð16!ð2 
ˆAˆð36!ð4 
ˆAˆð56!ð6 
ˆAˆð76!ð8 
ˆAˆð96!ð: 
ˆAˆð;6!ð< 
ˆAˆð=6!ð> 
ˆAˆð?6!ð@ 
ˆAˆðA6!ðB 
ˆAˆðC6!ðD 
ˆAˆðE6!ðF 
ˆAˆðG6!ðH 
ˆAˆðI6!ðJ 
ˆAˆðK6!ðL 
ˆAˆðM6!ðN 
ˆAˆðO6!ðP 
ˆAˆðQ6!ðR 
ˆAˆðS6!ðT 
ˆAˆðU6!ðV 
ˆAˆðW6!ðX 
ˆAˆðY6!ðZ 
ˆAˆð[6!ð\ 
ˆAˆð]6!ð^ 
ˆAˆð_6!ð` 
ˆAˆða6!ðb 
ˆAˆðc6!ðd 
ˆAˆðe6!ðf 
ˆAˆðg6!ðh 
ˆAˆði6!ðj 
ˆAˆðk6!Ð˜"ÑðpB!Ø	
ˆAˆðB!à	
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆð	B!ð
 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð 
ˆAˆðB!ð  
ˆAˆð!B!ð" 
ˆAˆð#B!ð$ 
ˆAˆð%B!ð& 
ˆAˆð'B!ð( 
ˆAˆð)B!ð* 
ˆAˆð+B!ð, 
ˆAˆð-B!ð. 
ˆAˆð/B!ð0 
ˆBˆð1B!ð2 
ˆAˆð3B!ð4 
ˆAˆð5B!ð6 
ˆBˆð7B!ð8 
ˆAˆð9B!ð: 
ˆAˆð;B!ð< 
ˆAˆð=B!ð> 
ˆAˆð?B!ð@ 
ˆAˆðAB!ðB 
ˆAˆðCB!ðD 
ˆAˆðEB!ðF 
ˆAˆðGB!ðH 
ˆAˆðIB!ðJ 
ˆAˆðKB!ðL 
ˆBˆðMB!ðN 
ˆAˆðOB!ðP 
ˆAˆðQB!ðR 
ˆAˆðSB!ðT 
ˆAˆðUB!ðV 
ˆAˆðWB!ðX 
ˆAˆðYB!ðZ 
ˆAˆð[B!ð\ 
ˆAˆð]B!ð^ 
ˆAˆð_B!ð` 
ˆAˆðaB!ðb 
ˆAˆðcB!ðd 
ˆAˆðeB!ðf 
ˆAˆðgB!ðh 
ˆBˆðiB!ðj 
ˆAˆðkB!ðl 
ˆAˆðmB!ðn 
ˆBˆðoB!ðp 
ˆAˆðqB!ðr 
ˆAˆðsB!ðt 
ˆAˆðuB!ðv 
ˆAˆðwB!ðx 
ˆAˆðyB!ðz 
ˆAˆð{B!ð| 
ˆAˆð}B!ð~ 
ˆAˆðB!ð@ 
ˆAˆðAB!ðB 
ˆBˆðCB!Ð˜"ÑðH@"Ø	
ˆAˆð@"à	
ˆAˆð@"ð 
ˆAˆð@"ð 
ˆAˆð	@"ð
 
ˆAˆð@"ð 
ˆAˆð@"ð 
ˆAˆð@"ð 
ˆAˆð@"ð 
ˆAˆð@"ð 
ˆAˆð@"ð 
ˆBˆð@"ð 
ˆBˆð@"ð 
ˆBˆð@"ð 
ˆBˆð@"ð 
ˆAˆð@"ð  
ˆAˆð!@"ð" 
ˆAˆð#@"ð$ 
ˆBˆð%@"ð& 
ˆAˆð'@"ð( 
ˆAˆð)@"ð* 
ˆAˆð+@"ð, 
ˆAˆð-@"ð. 
ˆAˆð/@"ð0 
ˆAˆð1@"ð2 
ˆAˆð3@"ð4 
ˆAˆð5@"ð6 
ˆAˆð7@"ð8 
ˆAˆð9@"ð: 
ˆBˆð;@"ð< 
ˆBˆð=@"ð> 
ˆBˆð?@"ð@ 
ˆBˆðA@"ðB 
ˆBˆðC@"ðD 
ˆAˆðE@"ðF 
ˆAˆðG@"ðH 
ˆBˆðI@"ðJ 
ˆBˆðK@"ðL 
ˆAˆðM@"ðN 
ˆAˆðO@"ðP 
ˆAˆðQ@"ðR 
ˆAˆðS@"ðT 
ˆAˆðU@"ðV 
ˆAˆðW@"ðX 
ˆAˆðY@"ðZ 
ˆAˆð[@"ð\ 
ˆAˆð]@"ð^ 
ˆAˆð_@"ð` 
ˆBˆða@"ðb 
ˆBˆðc@"ðd 
ˆBˆðe@"ðf 
ˆBˆðg@"ðh 
ˆBˆði@"ðj 
ˆAˆðk@"ðl 
ˆAˆðm@"ðn 
ˆAˆðo@"ðp 
ˆBˆðq@"ðr 
ˆAˆðs@"ðt 
ˆAˆðu@"ðv 
ˆAˆðw@"ðx 
ˆAˆðy@"ðz 
ˆAˆð{@"ð| 
ˆAˆð}@"ð~ 
ˆAˆð@"ð@ 
ˆAˆðA@"ðB 
ˆAˆðC@"ðD 
ˆAˆðE@"ðF 
ˆBˆðG@"ðH 
ˆBˆðI@"ðJ 
ˆBˆðK@"ðL 
ˆBˆðM@"ðN 
ˆBˆðO@"ðP 
ˆAˆðQ@"ðR 
ˆAˆðS@"ðT 
ˆBˆðU@"ðV 
ˆBˆðW@"ðX 
ˆAˆðY@"ðZ 
ˆAˆð[@"ð\ 
ˆAˆð]@"ð^ 
ˆAˆð_@"ð` 
ˆAˆða@"ðb 
ˆAˆðc@"ðd 
ˆAˆðe@"ðf 
ˆAˆðg@"ðh 
ˆAˆði@"ðj 
ˆAˆðk@"ðl 
ˆBˆðm@"ðn 
ˆBˆðo@"ðp 
ˆBˆðq@"ðr 
ˆBˆðs@"ðt 
ˆBˆðu@"ðv 
ˆAˆðw@"ðx 
ˆAˆðy@"ðz 
ˆAˆð{@"ð| 
ˆBˆð}@"ð~ 
ˆQˆð@"ð@ 
ˆQˆðA@"ðB 
ˆQˆðC@"ðD 
ˆQˆðE@"ðF 
ˆQˆðG@"ðH 
ˆQˆðI@"ðJ 
ˆQˆðK@"ðL 
ˆQˆðM@"ðN 
ˆQˆðO@"ðP 
ˆQˆðQ@"ðR 
ˆRˆðS@"ðT 
ˆRˆðU@"ðV 
ˆRˆðW@"ðX 
ˆRˆðY@"ðZ 
ˆRˆð[@"ð\ 
ˆQˆð]@"ð^ 
ˆQˆð_@"ð` 
ˆRˆða@"ðb 
ˆRˆðc@"ðd 
ˆQˆðe@"ðf 
ˆQˆðg@"ðh 
ˆQˆði@"ðj 
ˆQˆðk@"ðl 
ˆQˆðm@"ðn 
ˆQˆðo@"ðp 
ˆQˆðq@"ðr 
ˆQˆðs@"ðt 
ˆQˆðu@"ðv 
ˆRˆðw@"ðx 
ˆRˆðy@"ðz 
ˆRˆð{@"ð| 
ˆRˆð}@"ð~ 
ˆRˆð@"Ð˜#ÑðDr"Ø	
ˆAˆðr"à	
ˆAˆðr"ð 
ˆAˆðr"ð 
ˆAˆð	r"ð
 
ˆAˆðr"ð 
ˆAˆðr"ð 
ˆAˆðr"ð 
ˆAˆðr"ð 
ˆAˆðr"ð 
ˆAˆðr"ð 
ˆBˆðr"ð 
ˆBˆðr"ð 
ˆBˆðr"ð 
ˆBˆðr"ð 
ˆBˆðr"ð  
ˆBˆð!r"ð" 
ˆBˆð#r"ð$ 
ˆBˆð%r"ð& 
ˆBˆð'r"ð( 
ˆBˆð)r"ð* 
ˆBˆð+r"ð, 
ˆBˆð-r"ð. 
ˆBˆð/r"ð0 
ˆBˆð1r"ð2 
ˆBˆð3r"ð4 
ˆBˆð5r"ð6 
ˆAˆð7r"ð8 
ˆAˆð9r"ð: 
ˆAˆð;r"ð< 
ˆBˆð=r"ð> 
ˆBˆð?r"ð@ 
ˆBˆðAr"ðB 
ˆBˆðCr"ðD 
ˆAˆðEr"ðF 
ˆAˆðGr"ðH 
ˆAˆðIr"ðJ 
ˆAˆðKr"ðL 
ˆAˆðMr"ðN 
ˆAˆðOr"ðP 
ˆAˆðQr"ðR 
ˆAˆðSr"ðT 
ˆAˆðUr"ðV 
ˆAˆðWr"ðX 
ˆBˆðYr"ðZ 
ˆBˆð[r"ð\ 
ˆBˆð]r"ð^ 
ˆBˆð_r"ð` 
ˆBˆðar"ðb 
ˆBˆðcr"ðd 
ˆBˆðer"ðf 
ˆBˆðgr"ðh 
ˆBˆðir"ðj 
ˆBˆðkr"ðl 
ˆBˆðmr"ðn 
ˆBˆðor"ðp 
ˆBˆðqr"ðr 
ˆBˆðsr"ðt 
ˆBˆður"ðv 
ˆBˆðwr"ðx 
ˆBˆðyr"ðz 
ˆAˆð{r"ð| 
ˆAˆð}r"ð~ 
ˆBˆðr"ð@ 
ˆBˆðAr"ðB 
ˆBˆðCr"ðD 
ˆBˆðEr"ðF 
ˆBˆðGr"ðH 
ˆAˆðIr"ðJ 
ˆAˆðKr"ðL 
ˆAˆðMr"ðN 
ˆAˆðOr"ðP 
ˆAˆðQr"ðR 
ˆAˆðSr"ðT 
ˆAˆðUr"ðV 
ˆAˆðWr"ðX 
ˆAˆðYr"ðZ 
ˆAˆð[r"ð\ 
ˆBˆð]r"ð^ 
ˆBˆð_r"ð` 
ˆBˆðar"ðb 
ˆBˆðcr"ðd 
ˆBˆðer"ðf 
ˆBˆðgr"ðh 
ˆBˆðir"ðj 
ˆBˆðkr"ðl 
ˆBˆðmr"ðn 
ˆBˆðor"ðp 
ˆBˆðqr"ðr 
ˆBˆðsr"ðt 
ˆBˆður"ðv 
ˆBˆðwr"ðx 
ˆBˆðyr"ðz 
ˆBˆð{r"ð| 
ˆBˆð}r"ð~ 
ˆAˆðr"ð@ 
ˆAˆðAr"ðB 
ˆAˆðCr"ðD 
ˆBˆðEr"ðF 
ˆBˆðGr"ðH 
ˆBˆðIr"ðJ 
ˆBˆðKr"ðL 
ˆAˆðMr"ðN 
ˆAˆðOr"ðP 
ˆAˆðQr"ðR 
ˆAˆðSr"ðT 
ˆAˆðUr"ðV 
ˆAˆðWr"ðX 
ˆAˆðYr"ðZ 
ˆAˆð[r"ð\ 
ˆAˆð]r"ð^ 
ˆAˆð_r"ð` 
ˆBˆðar"ðb 
ˆBˆðcr"ðd 
ˆBˆðer"ðf 
ˆBˆðgr"ðh 
ˆBˆðir"ðj 
ˆBˆðkr"ðl 
ˆBˆðmr"ðn 
ˆBˆðor"ðp 
ˆBˆðqr"ðr 
ˆBˆðsr"ðt 
ˆBˆður"ðv 
ˆBˆðwr"ðx 
ˆBˆðyr"ðz 
ˆBˆð{r"ð| 
ˆBˆð}r"ð~ 
ˆBˆðr"ð@ 
ˆBˆðAr"ðB 
ˆAˆðCr"ðD 
ˆAˆðEr"ðF 
ˆBˆðGr"ðH 
ˆBˆðIr"ðJ 
ˆBˆðKr"ðL 
ˆBˆðMr"ðN 
ˆBˆðOr"ðP 
ˆAˆðQr"ðR 
ˆAˆðSr"ðT 
ˆAˆðUr"ðV 
ˆAˆðWr"ðX 
ˆAˆðYr"ðZ 
ˆAˆð[r"ð\ 
ˆAˆð]r"ð^ 
ˆAˆð_r"ð` 
ˆAˆðar"ðb 
ˆAˆðcr"ðd 
ˆBˆðer"ðf 
ˆBˆðgr"ðh 
ˆBˆðir"ðj 
ˆBˆðkr"ðl 
ˆBˆðmr"ðn 
ˆBˆðor"ðp 
ˆBˆðqr"ðr 
ˆBˆðsr"ðt 
ˆBˆður"ðv 
ˆBˆðwr"ðx 
ˆBˆðyr"ðz 
ˆBˆð{r"ð| 
ˆBˆð}r"ð~ 
ˆBˆðr"ð@ 
ˆBˆðAr"ðB 
ˆBˆðCr"ðD 
ˆBˆðEr"ðF 
ˆAˆðGr"ðH 
ˆAˆðIr"ðJ 
ˆAˆðKr"ðL 
ˆBˆðMr"ðN 
ˆBˆðOr"ðP 
ˆBˆðQr"ðR 
ˆBˆðSr"ðT 
ˆQˆðUr"ðV 
ˆQˆðWr"ðX 
ˆQˆðYr"ðZ 
ˆQˆð[r"ð\ 
ˆQˆð]r"ð^ 
ˆQˆð_r"ð` 
ˆQˆðar"ðb 
ˆQˆðcr"ðd 
ˆQˆðer"ðf 
ˆQˆðgr"ðh 
ˆRˆðir"ðj 
ˆRˆðkr"ðl 
ˆRˆðmr"ðn 
ˆRˆðor"ðp 
ˆRˆðqr"ðr 
ˆRˆðsr"ðt 
ˆRˆður"ðv 
ˆRˆðwr"ðx 
ˆRˆðyr"ðz 
ˆRˆð{r"ð| 
ˆRˆð}r"ð~ 
ˆRˆðr"ð@ 
ˆRˆðAr"ðB 
ˆRˆðCr"ðD 
ˆRˆðEr"ðF 
ˆRˆðGr"ðH 
ˆRˆðIr"ðJ 
ˆQˆðKr"ðL 
ˆQˆðMr"ðN 
ˆRˆðOr"ðP 
ˆRˆðQr"ðR 
ˆRˆðSr"ðT 
ˆRˆðUr"ðV 
ˆRˆðWr"ðX 
ˆQˆðYr"ðZ 
ˆQˆð[r"ð\ 
ˆQˆð]r"ð^ 
ˆQˆð_r"ð` 
ˆQˆðar"ðb 
ˆQˆðcr"ðd 
ˆQˆðer"ðf 
ˆQˆðgr"ðh 
ˆQˆðir"ðj 
ˆQˆðkr"ðl 
ˆRˆðmr"ðn 
ˆRˆðor"ðp 
ˆRˆðqr"ðr 
ˆRˆðsr"ðt 
ˆRˆður"ðv 
ˆRˆðwr"ðx 
ˆRˆðyr"ðz 
ˆRˆð{r"ð| 
ˆRˆð}r"ð~ 
ˆRˆðr"ð@ 
ˆRˆðAr"ðB 
ˆRˆðCr"ðD 
ˆRˆðEr"ðF 
ˆRˆðGr"ðH 
ˆRˆðIr"ðJ 
ˆRˆðKr"ðL 
ˆRˆðMr"ðN 
ˆQˆðOr"ðP 
ˆQˆðQr"ðR 
ˆQˆðSr"ðT 
ˆRˆðUr"ðV 
ˆRˆðWr"ðX 
ˆRˆðYr"ðZ 
ˆRˆð[r"ð\ 
ˆQˆð]r"ð^ 
ˆQˆð_r"ð` 
ˆQˆðar"ðb 
ˆQˆðcr"ðd 
ˆQˆðer"ðf 
ˆQˆðgr"ðh 
ˆQˆðir"ðj 
ˆQˆðkr"ðl 
ˆQˆðmr"ðn 
ˆQˆðor"ðp 
ˆRˆðqr"ðr 
ˆRˆðsr"ðt 
ˆRˆður"ðv 
ˆRˆðwr"ðx 
ˆRˆðyr"ðz 
ˆRˆð{r"ð| 
ˆRˆð}r"ð~ 
ˆRˆðr"ð@ 
ˆRˆðAr"ðB 
ˆRˆðCr"ðD 
ˆRˆðEr"ðF 
ˆRˆðGr"ðH 
ˆRˆðIr"ðJ 
ˆRˆðKr"ðL 
ˆRˆðMr"ðN 
ˆRˆðOr"ðP 
ˆRˆðQr"ðR 
ˆQˆðSr"ðT 
ˆQˆðUr"ðV 
ˆRˆðWr"ðX 
ˆRˆðYr"ðZ 
ˆRˆð[r"ð\ 
ˆRˆð]r"ð^ 
ˆRˆð_r"ð` 
ˆQˆðar"ðb 
ˆQˆðcr"ðd 
ˆQˆðer"ðf 
ˆQˆðgr"ðh 
ˆQˆðir"ðj 
ˆQˆðkr"ðl 
ˆQˆðmr"ðn 
ˆQˆðor"ðp 
ˆQˆðqr"ðr 
ˆQˆðsr"ðt 
ˆRˆður"ðv 
ˆRˆðwr"ðx 
ˆRˆðyr"ðz 
ˆRˆð{r"ð| 
ˆRˆð}r"ð~ 
ˆRˆðr"ð@	 
ˆRˆðA	r"ðB	 
ˆRˆðC	r"ðD	 
ˆRˆðE	r"ðF	 
ˆRˆðG	r"ðH	 
ˆRˆðI	r"ðJ	 
ˆRˆðK	r"ðL	 
ˆRˆðM	r"ðN	 
ˆRˆðO	r"ðP	 
ˆRˆðQ	r"ðR	 
ˆRˆðS	r"ðT	 
ˆRˆðU	r"ðV	 
ˆQˆðW	r"ðX	 
ˆQˆðY	r"ðZ	 
ˆQˆð[	r"ð\	 
ˆRˆð]	r"ð^	 
ˆRˆð_	r"ð`	 
ˆRˆða	r"ðb	 
ˆRˆðc	r"ðd	 
ˆQˆðe	r"ðf	 
ˆQˆðg	r"ðh	 
ˆQˆði	r"ðj	 
ˆQˆðk	r"ðl	 
ˆQˆðm	r"ðn	 
ˆQˆðo	r"ðp	 
ˆQˆðq	r"ðr	 
ˆQˆðs	r"ðt	 
ˆQˆðu	r"ðv	 
ˆQˆðw	r"ðx	 
ˆRˆðy	r"ðz	 
ˆRˆð{	r"ð|	 
ˆRˆð}	r"ð~	 
ˆRˆð	r"ð@
 
ˆRˆðA
r"ðB
 
ˆRˆðC
r"ðD
 
ˆRˆðE
r"ðF
 
ˆRˆðG
r"ðH
 
ˆRˆðI
r"ðJ
 
ˆRˆðK
r"ðL
 
ˆRˆðM
r"ðN
 
ˆRˆðO
r"ðP
 
ˆRˆðQ
r"ðR
 
ˆRˆðS
r"ðT
 
ˆRˆðU
r"ðV
 
ˆRˆðW
r"ðX
 
ˆRˆðY
r"ðZ
 
ˆQˆð[
r"ð\
 
ˆQˆð]
r"ð^
 
ˆRˆð_
r"ð`
 
ˆRˆða
r"ðb
 
ˆRˆðc
r"ðd
 
ˆRˆðe
r"ðf
 
ˆRˆðg
r"ðh
 
ˆQˆði
r"ðj
 
ˆQˆðk
r"ðl
 
ˆQˆðm
r"ðn
 
ˆQˆðo
r"ðp
 
ˆQˆðq
r"ðr
 
ˆQˆðs
r"ðt
 
ˆQˆðu
r"ðv
 
ˆQˆðw
r"ðx
 
ˆQˆðy
r"ðz
 
ˆQˆð{
r"ð|
 
ˆRˆð}
r"ð~
 
ˆRˆð
r"ð@ 
ˆRˆðAr"ðB 
ˆRˆðCr"ðD 
ˆRˆðEr"ðF 
ˆRˆðGr"ðH 
ˆRˆðIr"ðJ 
ˆRˆðKr"ðL 
ˆRˆðMr"ðN 
ˆRˆðOr"ðP 
ˆRˆðQr"ðR 
ˆRˆðSr"ðT 
ˆRˆðUr"ðV 
ˆRˆðWr"ðX 
ˆRˆðYr"ðZ 
ˆRˆð[r"ð\ 
ˆRˆð]r"ð^ 
ˆQˆð_r"ð` 
ˆQˆðar"ðb 
ˆQˆðcr"ðd 
ˆRˆðer"ðf 
ˆRˆðgr"ðh 
ˆRˆðir"ðj 
ˆRˆðkr"ðl 
ˆQˆðmr"ðn 
ˆQˆðor"ðp 
ˆQˆðqr"ðr 
ˆQˆðsr"ðt 
ˆQˆður"ðv 
ˆQˆðwr"ðx 
ˆQˆðyr"ðz 
ˆQˆð{r"ð| 
ˆQˆð}r"ð~ 
ˆQˆðr"ð@ 
ˆRˆðAr"ðB 
ˆRˆðCr"ðD 
ˆRˆðEr"ðF 
ˆRˆðGr"ðH 
ˆRˆðIr"ðJ 
ˆRˆðKr"ðL 
ˆRˆðMr"ðN 
ˆRˆðOr"ðP 
ˆRˆðQr"ðR 
ˆRˆðSr"ðT 
ˆRˆðUr"ðV 
ˆRˆðWr"ðX 
ˆRˆðYr"ðZ 
ˆRˆð[r"ð\ 
ˆRˆð]r"ð^ 
ˆRˆð_r"ð` 
ˆRˆðar"ðb 
ˆQˆðcr"ðd 
ˆQˆðer"ðf 
ˆRˆðgr"ðh 
ˆRˆðir"ðj 
ˆRˆðkr"ðl 
ˆRˆðmr"ðn 
ˆRˆðor"ðp 
ˆQˆðqr"ðr 
ˆQˆðsr"ðt 
ˆQˆður"ðv 
ˆQˆðwr"ðx 
ˆQˆðyr"ðz 
ˆQˆð{r"ð| 
ˆQˆð}r"ð~ 
ˆQˆðr"ð@ 
ˆQˆðAr"ðB 
ˆRˆðCr"ðD 
ˆRˆðEr"ðF 
ˆRˆðGr"ðH 
ˆRˆðIr"ðJ 
ˆRˆðKr"ðL 
ˆRˆðMr"ðN 
ˆRˆðOr"ðP 
ˆRˆðQr"ðR 
ˆRˆðSr"ðT 
ˆRˆðUr"ðV 
ˆRˆðWr"ðX 
ˆRˆðYr"ðZ 
ˆRˆð[r"ð\ 
ˆRˆð]r"ð^ 
ˆRˆð_r"ð` 
ˆRˆðar"ðb 
ˆRˆðcr"Ð˜#Ñõh 5°WÑ=Ô=€OØ˜!ÒÐØ× Ò Ñ"Ô"Ô,ð 	KÝÐIÑJÔJÐJØ×&Ò&Ñ(Ô(ˆØ”_ˆ
Ý" 6Ô#6Ñ7Ô7ˆØ�|Š|‰~Œ~ˆˆàÔ'ˆ
ØÔ+ˆØŒ|ˆØÐ  e¨t m m°vÀ°~°~Ø1×5Ò5°jÀ$ÑGÔGÐàð ÝÐ Ñ!Ô! ZÒ/Ð/ÝðL½SÐARÑ=SÔ=Sð Lð LØ?IðLð Lñô ð õ ØØØ×ÒÑ Ô ØØØØØØØØØØØ
ØÝŒ|˜LÔ.×<Ò<ÈÐ<ÑNÔNÑOÔOð!ñ ô ð r   r<   rG   r\   rE   c                ó
  ‡‡‡‡‡	‡
‡‡‡‡— ddl m} ddlm} d}|rd}‰€dŠ‰
€t	          t          | ¦  «        ¦  «        Š
n"t          ‰
¦  «        | k    rt          d¦  «        ‚|sd	g| z  Š
‰	€d
g| z  Š	‰€d
gt          |¦  «        z  Š| dk    r)t          j	        ¦   «         }| 
                    d¦  «         nt          |¦  «        j        }|set          t          |                     ¦   «         ‰¦  «        ¦  «        Š|                     d¬¦  «        }ˆfd„|                     ¦   «         D ¦   «         Š|                     ¦   «         D ]}|||<   Œ|                     ¦   «         D ]}|                     ||¦  «         Œd|j        d         z  Š‰rd„ ‰D ¦   «         Š‰€Dt+          dt+          d„ ‰
D ¦   «         ¦  «        ¦  «        }|dk    rdŠn|dk    rdŠn|dk    rdŠndŠˆˆˆˆ	ˆˆ
ˆfd„}ˆˆfd„}d}‰s|rddddœ}nddi}t-          |d||||¬¦  «        }|rdS |s/|€|j        \  }}|‰z  |‰z  f}|                     |¬ ¦  «        \  }}|                     d!¦  «         |                     |¦  «         |s ||¦  «         |S dS )"aÁ  Plots an arbitrary coupling map of qubits (embedded in a plane).

    Args:
        num_qubits (int): The number of qubits defined and plotted.
        qubit_coordinates (List[List[int]]): A list of two-element lists, with entries of each nested
            list being the planar coordinates in a 0-based square grid where each qubit is located.
        coupling_map (List[List[int]]): A list of two-element lists, with entries of each nested
            list being the qubit numbers of the bonds to be plotted.
        figsize (tuple): Output figure size (wxh) in inches.
        plot_directed (bool): Plot directed coupling map.
        label_qubits (bool): Label the qubits.
        qubit_size (float): Size of qubit marker.
        line_width (float): Width of lines.
        font_size (int): Font size of qubit labels.
        qubit_color (list): A list of colors for the qubits
        qubit_labels (list): A list of qubit labels
        line_color (list): A list of colors for each line from coupling_map.
        font_color (str): The font color for the qubit labels.
        ax (Axes): A Matplotlib axes instance.
        filename (str): file path to save image to.
        planar (bool): If the coupling map is planar or not. Default: ``True`` (i.e. it is planar)

    Returns:
        Figure: A Matplotlib figure instance.

    Raises:
        MissingOptionalLibraryError: If matplotlib or graphviz is not installed.
        QiskitError: If the length of qubit labels does not match the number of qubits.

    Example:

        .. plot::
           :alt: Output from the previous code.
           :include-source:

            from qiskit.visualization import plot_coupling_map

            num_qubits = 8
            qubit_coordinates = [[0, 1], [1, 1], [1, 0], [1, 2], [2, 0], [2, 2], [2, 1], [3, 1]]
            coupling_map = [[0, 1], [1, 2], [2, 3], [3, 5], [4, 5], [5, 6], [2, 4], [6, 7]]
            plot_coupling_map(num_qubits, qubit_coordinates, coupling_map)
    r   Nr
   ©Úmatplotlib_close_if_inlineFTé   z7Length of qubit labels does not equal number of qubits.Ú ú#648fffr:   c                 ó    •— g | ]
}‰|         ‘ŒS © rh   )Ú.0ÚedgeÚline_color_maps     €r   ú
<listcomp>z%plot_coupling_map.<locals>.<listcomp>+  s   ø€ ÐIÐIÐI¨t�n TÔ*ÐIÐIÐIr   gffffffò?z
figure.dpic                 ó$   — g | ]}|d d d…         ‘ŒS )Néÿÿÿÿrh   )ri   Úcoordinatess     r   rl   z%plot_coupling_map.<locals>.<listcomp>7  s#   € ÐTÐTÐT°;˜[¨¨¨2¨Ô.ÐTÐTÐTr   c              3   óN   K  — | ] }t          t          |¦  «        ¦  «        V — Œ!d S )N)rI   Ústr)ri   Úxs     r   ú	<genexpr>z$plot_coupling_map.<locals>.<genexpr>:  s.   è è € Ð#FÐ#F°A¥C­¨A©¬¡K¤KÐ#FÐ#FÐ#FÐ#FÐ#FÐ#Fr   r   r   r-   r   r+   c                 ó”  •— ‰rOt          ‰|          ¦  «        d‰|          › d�d‰|          › d�d‰|          d         › d‰|          d         › d�ddœ}n-t          ‰|          ¦  «        d‰|          › d�d‰|          › d�dœ}d|d	<   d
|d<   d‰› d�|d<   dt          ‰¦  «        › d�|d<   t          ‰‰z  ¦  «        |d<   d|d<   d|d<   |S )Nú"r   ú,r
   ÚTrue)ÚlabelÚcolorÚ	fillcolorÚposÚpin)rx   ry   rz   ÚfilledÚstyleÚcircleÚshapeÚ	fontcolorz!"ÚfontsizeÚheightÚ	fixedsizez"DejaVu Sans"Úfontname©rq   )	ÚnodeÚout_dictrY   rU   ÚpxrV   r\   rW   rS   s	     €€€€€€€r   Ú
color_nodez%plot_coupling_map.<locals>.color_nodeD  s8  ø€ Øð 	å˜\¨$Ô/Ñ0Ô0Ø1˜[¨Ô.Ð1Ð1Ð1Ø5 ¨TÔ!2Ð5Ð5Ð5ØUÐ,¨TÔ2°1Ô5ÐUÐUÐ8IÈ$Ô8OÐPQÔ8RÐUÐUÐUØðð ˆHˆHõ ˜\¨$Ô/Ñ0Ô0Ø1˜[¨Ô.Ð1Ð1Ð1Ø5 ¨TÔ!2Ð5Ð5Ð5ðð ˆHð
 %ˆ�ÑØ$ˆ�ÑØ 1 JÐ 1Ð 1Ð 1ˆ�ÑØ5¥3 y¡>¤>Ð5Ð5Ð5ˆ�ÑÝ  ¨b¡Ñ1Ô1ˆ�ÑØ &ˆ�ÑØ.ˆ�ÑØˆr   c                 óV   •— d‰|          › d�d‰|          › d�t          ‰¦  «        dœ}|S )Nru   )ry   rz   Úpenwidthr†   )rj   rˆ   rX   rT   s     €€r   Ú
color_edgez%plot_coupling_map.<locals>.color_edge\  sE   ø€ à,˜ DÔ)Ð,Ð,Ð,Ø0˜Z¨Ô-Ð0Ð0Ð0Ý˜J™œð
ð 
ˆð
 ˆr   z-7ÚprismÚsubset)Úoverlap_scalingÚoverlapÚmodelr‘   ÚtrueÚneato)ÚmethodÚ
graph_attrÚnode_attr_fnÚedge_attr_fnr[   ©rP   Úoff)Úmatplotlib.pyplotÚpyplotÚutilsrc   ÚlistÚrangerI   r   rL   Ú	PyDiGraphÚadd_noder	   rN   ÚdictÚzipÚ	edge_listrO   Únode_indicesÚedge_indicesÚupdate_edge_by_indexÚrcParamsÚmaxr   ÚsizeÚsubplotsÚaxisÚimshow) rG   r\   rE   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r=   Úpltrc   Ú
input_axesrN   r‡   Ú
edge_indexÚmax_charactersrŠ   r�   Úgraph_attributesÚplotÚwidthrƒ   Úfigrk   r‰   s     `    ```````                 @@r   rJ   rJ   Ê  s²  øøøøøøøøøø€ ð~ $Ð#Ð#Ð#Ð#Ð#Ø1Ð1Ð1Ð1Ð1Ð1à€JØ	ð Øˆ
àÐØˆ
àÐÝ�E *Ñ-Ô-Ñ.Ô.ˆˆåˆ|ÑÔ 
Ò*Ð*ÝÐWÑXÔXÐXàð )Ø�t˜jÑ(ˆð ÐØ �k JÑ.ˆØÐØ�[¥3 |Ñ#4Ô#4Ñ4ˆ
à�Q‚€Ý”‘”ˆØ�Š�qÑÔÐÐå˜LÑ)Ô)Ô/ˆàð JÝ�c %§/¢/Ñ"3Ô"3°ZÑ@Ô@ÑAÔAˆØ×#Ò#¨uÐ#Ñ5Ô5ˆØIÐIÐIÐI°u·²Ñ7HÔ7HÐIÑIÔIˆ
à×"Ò"Ñ$Ô$ð ð ˆØˆˆd‰ˆà×(Ò(Ñ*Ô*ð ;ð ;ˆ
Ø×"Ò" :¨zÑ:Ô:Ð:Ð:ð 
�”˜\Ô*Ñ	*€Bàð UØTÐTÐBSÐTÑTÔTÐàÐÝ˜Q¥Ð#FÐ#F¸Ð#FÑ#FÔ#FÑ FÔ FÑGÔGˆØ˜QÒÐØˆIˆIØ˜qÒ Ð ØˆIˆIØ˜qÒ Ð ØˆIˆIàˆIðð ð ð ð ð ð ð ð ð ð ð0ð ð ð ð ð ð ÐØð 
Øð 		à#'Ø"Ø!ð ð  ÐÐð ˜6ð Ðõ ØØØ#ØØØðñ ô €Dð ð Øˆtàð 0Øˆ?Ø œI‰MˆE�6Ø˜r‘z 6¨B¡;Ð/ˆGØ—,’, w�,Ñ/Ô/‰ˆˆRØ‡G‚GˆE�N„N€NØ‡I‚Iˆd�O„O€Oàð Ø"Ð" 3Ñ'Ô'Ð'Øˆ
ðð r   Úvirtualc                 óT  — t          |t          ¦  «        s t          j        d|› d�t          d¬¦  «         | j        €t          d¦  «        ‚t          |¦  «        }|dk    rB|                     ¦   «         j	        }|                     ¦   «         j
        }t          |¦  «        }n'|j        }|j
        }|j                             ¦   «         }g }dg|z  }	d	„ | j        j                             ¦   «         D ¦   «         }
t#          | j        j                             ¦   «         ¦  «        D ]\  }}||
vrd|d
œ|
|<   Œ|dk    r…| j        j                             ¦   «                              ¦   «         D ]S\  }}|
|         d         }|�|j        dk    r3|                     |¦  «         t-          |
|         d         ¦  «        |	|<   ŒTnŽ|dk    ry| j        j                             ¦   «                              ¦   «         D ]G\  }}|
|         d         }|�|j        dk    r'|                     |¦  «         t-          |¦  «        |	|<   ŒHnt1          d¦  «        ‚dg|z  }|D ]}d||<   Œdg|z  }t#          |¦  «        D ]\  }}|d         |v r|d         |v rd||<   Œt3          |||	||¬¦  «        }|S )aÝ  Plot the layout of a circuit transpiled for a given
    target backend.

    .. deprecated:: 1.4
        The function ``plot_circuit_layout`` will stop supporting inputs of type
        :class:`.BackendV1` in the `backend` parameter in a future release no
        earlier than 2.0. :class:`.BackendV1` is deprecated and implementations should
        move to :class:`.BackendV2`.

    Args:
        circuit (QuantumCircuit): Input quantum circuit.
        backend (Backend): Target backend.
        view (str): How to label qubits in the layout. Options:

          - ``"virtual"``: Label each qubit with the index of the virtual qubit that
            mapped to it.
          - ``"physical"``: Label each qubit with the index of the physical qubit that it
            corresponds to on the device.

        qubit_coordinates (Sequence): An optional sequence input (list or array being the
            most common) of 2d coordinates for each qubit. The length of the
            sequence must match the number of qubits on the backend. The sequence
            should be the planar coordinates in a 0-based square grid where each
            qubit is located.

    Returns:
        Figure: A matplotlib figure showing layout.

    Raises:
        QiskitError: Invalid view type given.
        VisualizationError: Circuit has no layout attribute.

    Example:
        .. plot::
           :alt: Output from the previous code.
           :include-source:

            from qiskit import QuantumCircuit, transpile
            from qiskit.providers.fake_provider import GenericBackendV2
            from qiskit.visualization import plot_circuit_layout

            ghz = QuantumCircuit(3, 3)
            ghz.h(0)
            for idx in range(1,3):
                ghz.cx(0,idx)
            ghz.measure(range(3), range(3))

            backend = GenericBackendV2(num_qubits=5)
            new_circ_lv3 = transpile(ghz, backend=backend, optimization_level=3)
            plot_circuit_layout(new_circ_lv3, backend)
    zUThe function `plot_circuit_layout` will stop supporting inputs of type `BackendV1` ( r   r   r   Nz:Circuit has no layout. Perhaps it has not been transpiled.r
   re   c                 óD   — i | ]}t          |¦  «        D ]\  }}|||d œ“ŒŒS )©ÚregisterÚindex)Ú	enumerate)ri   rº   r»   Úbits       r   ú
<dictcomp>z'plot_circuit_layout.<locals>.<dictcomp>Ø  sU   € ð ð ð àÝ# HÑ-Ô-ðð ñ ˆE�3ð 	˜(¨UÐ3Ð3ðð ð ð r   r¹   r¶   rº   Úancillar»   Úphysicalz,Layout view must be 'virtual' or 'physical'.rf   Úblackr   )rV   rW   rX   r\   )r>   r   r?   r@   rA   Ú_layoutr   r   rB   rD   rE   rI   rG   rN   Ú	num_edgesÚinitial_layoutÚget_registersr¼   Úget_virtual_bitsÚitemsrF   Úappendrq   Úget_physical_bitsr   r`   )Úcircuitr   Úviewr\   r^   rG   ÚcmapÚcmap_lenÚqubitsrW   Úbit_locationsr»   ÚqubitÚkeyÚvalÚbit_registerÚqcolorsÚkÚlcolorsÚidxrj   rµ   s                         r   Úplot_circuit_layoutrØ   ‰  s.  € õj �g�yÑ)Ô)ð 
ÝŒð*Ø")ð*ð *ð *õ (Øð	
ñ 	
ô 	
ð 	
ð „ÐÝÐVÑWÔWÐWå4°WÑ=Ô=€OØ˜!ÒÐØ×*Ò*Ñ,Ô,Ô5ˆ
Ø×$Ò$Ñ&Ô&Ô3ˆÝ�t‘9”9ˆˆàÔ'ˆ
ØÔ#ˆØ”:×'Ò'Ñ)Ô)ˆà€FØ�4˜*Ñ$€Lðð àœÔ6×DÒDÑFÔFðñ ô €Mõ
 " '¤/Ô"@×"QÒ"QÑ"SÔ"SÑTÔTð Fð F‰ˆˆuØ˜Ð%Ð%Ø04¸uÐ#EÐ#EˆM˜%Ñ øàˆyÒÐØœÔ6×GÒGÑIÔI×OÒOÑQÔQð 	Eð 	E‰HˆC�Ø(¨Ô-¨jÔ9ˆLØÐ# |Ô'8¸IÒ'EÐ'EØ—’˜cÑ"Ô"Ð"Ý$'¨°cÔ(:¸7Ô(CÑ$DÔ$D�˜SÑ!øð		Eð 
�Ò	Ð	ØœÔ6×HÒHÑJÔJ×PÒPÑRÔRð 	-ð 	-‰HˆC�Ø(¨Ô-¨jÔ9ˆLØÐ# |Ô'8¸IÒ'EÐ'EØ—’˜cÑ"Ô"Ð"Ý$'¨¡H¤H�˜SÑ!øð		-õ !Ð!OÑPÔPÐPàˆk˜JÑ&€GØð ð ˆØˆ�‰
ˆ
àˆk˜HÑ$€Gå˜t‘_”_ð #ð #‰	ˆˆTØ�Œ7�fÐÐ  a¤¨FÐ!2Ð!2Ø"ˆG�C‰Løå
ØØØ!ØØ+ðñ ô €Cð €Jr   ©r!   r+   c           
      óZ  ‡3‡4‡5‡6— t          | t          ¦  «        s t          j        d| › d�t          d¬¦  «         ddlŠ5ddlm} ddlm}m	} ddl
}dd	lm} |                     d
d
¬¦  «        Š3t          | ¦  «        }	|	dk    �r|                      ¦   «         }
|                      ¦   «         j        }|                      ¦   «         j        }|                      ¦   «         }|                     ¦   «         }dg|z  }dg|z  }g }|d         D ]S}|d         dk    rE|d         d         }|d         D ]}|d         dk    r|d         ||<    nŒt+          d| › d�¦  «        ‚ŒT|rhd}|dk     r|D ]}|d         |d         g|vrd
} nŒ|D ]B}|d         D ]7}|d         |k    r)|                     |d         d         d         ¦  «          nŒ8ŒCt/          |¦  «        D ]+}	 |                     |¦  «        ||<   Œ# t2          $ r Y Œ(w xY w�n…| j        }
| j        }| j        }i }dg|z  }dg|z  }g }| j                             ¦   «         D ]Ò\  }}|�d|v rŒ|                     ¦   «         D ]±\  }}|€Œ|dk    r|j        �|j        ||d         <   Œ&t=          |¦  «        dk    r2|j        �*t?          ||d                  |j        ¦  «        ||d         <   Œkt=          |¦  «        dk    r3|j        �,t?          |                      |d¦  «        |j        ¦  «        ||<   Œ²ŒÓ|rrd}|dk     r|D ]}|d         |d         g|vrd
} nŒ| !                    ¦   «         D ]:}|                      tE          |¦  «        d¦  «        }|                     |¦  «         Œ;dtG          j$        |¦  «        z  }tG          j%        |¦  «        }‰5j&         '                    tQ          |¦  «        t?          |¦  «        ¬¦  «        Š6ˆ3ˆ5ˆ6fd„|D ¦   «         } d}g }!|rqdtG          j$        |¦  «        z  }tG          j%        |¦  «        }"‰5j&         '                    tQ          |¦  «        t?          |¦  «        ¬¦  «        Š4ˆ3ˆ4ˆ5fd„|D ¦   «         }!dtG          j$        |¦  «        z  }tG          j%        |¦  «        }#tG          j        |¦  «        }$| )                    |¬¦  «        }%| *                    dd¬¦  «         | *                    d d dgd!z  d"gz   g d#¢¬$¦  «        }&| +                    |&dd%…dd…f         ¦  «        }'| +                    |&dd!…dd!…f         ¦  «        }(| +                    |&dd%…d!d…f         ¦  «        })| +                    |&d&dd'…f         ¦  «        }*|r| +                    |&d&d(d…f         ¦  «        }+d)},|d'k    rd},tY          | | |!|,d'||(|¬*¦  «         |( -                    d+¦  «         |( .                    d¦  «         |rŠ‰5j/         0                    |*‰3‰6d,¬-¦  «        }-| 1                    d'¬.¦  «        }.|.|-_2        |- 3                    ¦   «          |- 3                    ¦   «          |* 4                    d/tk          |d¦  «        › d0�¦  «         |€;|* -                    d+¦  «         |* 4                    d1tk          |d¦  «        › �¦  «         |rv‰5j/         0                    |+‰3‰4d,¬-¦  «        }/| 1                    d'¬.¦  «        }.|.|/_2        |/ 3                    ¦   «          |+ 4                    d2tk          |"d¦  «        › d0�¦  «         |d%k     r|}0d}1ntm          j7        |dz  ¦  «        }0||0z
  }1|' 8                    t/          |0¦  «        |d|0…         d3d4¬5¦  «         |' 9                    |#d6d7¬8¦  «         |' :                    t/          |0¦  «        ¦  «         |' ;                    dtk          |#d¦  «        tk          |$d¦  «        g¦  «         |' <                    d9„ t/          |0¦  «        D ¦   «         d ¬:¦  «         |' =                    ¦   «          |' 4                    d;d ¬:¦  «         |'j>         ?                    ¦   «         D ]}2|2 @                    d¦  «         Œ|1�r@|) 8                    t/          |0|¦  «        ||0d…         d3d4¬5¦  «         |) 9                    |#d6d7¬8¦  «         |) :                    t/          |0|¦  «        ¦  «         |) ;                    dtk          |#d¦  «        tk          |$d¦  «        g¦  «         |) <                    d<„ t/          |0|¦  «        D ¦   «         d ¬:¦  «         |) =                    ¦   «          |) A                    ¦   «          |)jB         C                    d=¦  «         |)jB         D                    ¦   «          |) 4                    d;d ¬:¦  «         n|) -                    d+¦  «         |)j>         ?                    ¦   «         D ]}2|2 @                    d¦  «         Œ|r|% E                    |
› d>�d?d@¬A¦  «          ||%¦  «         |%S )Baž  Plots the error map of a given backend.

    .. deprecated:: 1.4
        The function ``plot_error_map`` will stop supporting inputs of type
        :class:`.BackendV1` in the `backend` parameter in a future release no
        earlier than 2.0. :class:`.BackendV1` is deprecated and implementations should
        move to :class:`.BackendV2`.

    Args:
        backend (Backend): Given backend.
        figsize (tuple): Figure size in inches.
        show_title (bool): Show the title or not.
        qubit_coordinates (Sequence): An optional sequence input (list or array being the
            most common) of 2d coordinates for each qubit. The length of the
            sequence much mast the number of qubits on the backend. The sequence
            should be the planar coordinates in a 0-based square grid where each
            qubit is located.

    Returns:
        Figure: A matplotlib figure showing error map.

    Raises:
        VisualizationError: The backend does not provide gate errors for the 'sx' gate.
        MissingOptionalLibraryError: If matplotlib or seaborn is not installed.

    Example:
        .. plot::
           :alt: Output from the previous code.
           :include-source:

            from qiskit.visualization import plot_error_map
            from qiskit.providers.fake_provider import GenericBackendV2

            backend = GenericBackendV2(num_qubits=5)
            plot_error_map(backend)
    zPThe function `plot_error_map` will stop supporting inputs of type `BackendV1` ( r   r   r   r   N)ÚgridspecÚtickerr
   rb   T)ÚreverseÚas_cmapÚgatesÚgateÚsxrÎ   Ú
parametersrF   Ú
gate_errorÚvaluez	Backend 'z,' did not supply an error for the 'sx' gate.Fr   Úmeasureéd   )ÚvminÚvmaxc           	      óh   •— g | ].}‰j                               ‰ ‰|¦  «        ¦  «        ¦  «        ‘Œ/S rh   ©ÚcolorsÚto_hex)ri   ÚerrÚ	color_mapÚ
matplotlibÚsingle_norms     €€€r   rl   z"plot_error_map.<locals>.<listcomp>•  s>   ø€ ÐdÐdÐdÈ#�
Ô!×(Ò(¨¨°;°;¸sÑ3CÔ3CÑ)DÔ)DÑEÔEÐdÐdÐdr   c           	      óh   •— g | ].}‰j                               ‰ ‰|¦  «        ¦  «        ¦  «        ‘Œ/S rh   rê   )ri   rí   rî   Úcx_normrï   s     €€€r   rl   z"plot_error_map.<locals>.<listcomp>   s<   ø€ Ð^Ð^Ð^ÈS�zÔ(×/Ò/°	°	¸'¸'À#¹,¼,Ñ0GÔ0GÑHÔHÐ^Ð^Ð^r   r™   r   )ÚnrowsÚncolsr+   r*   g      à?)r   r
   r
   r
   r
   r
   r
   r
   r
   r
   r
   r   )Úheight_ratiosÚwidth_ratiosr%   rn   r   r   r'   )rV   rX   rS   rT   rQ   rZ   r\   rš   Ú
horizontal)rÌ   ÚnormÚorientation)ÚnbinszH error rate (%) [Avg. = ú]zH error rate (%) = zCNOT error rate (%) [Avg. = Úcenterz#DDBBBA)Úalignry   z--z#212121)Ú	linestylery   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rh   r†   ©ri   Úkks     r   rl   z"plot_error_map.<locals>.<listcomp>æ  s   € Ð?Ð?Ð?¨�S ™WœWÐ?Ð?Ð?r   )r‚   zReadout Error (%)c                 ó,   — g | ]}t          |¦  «        ‘ŒS rh   r†   r   s     r   rl   z"plot_error_map.<locals>.<listcomp>ô  s   € Ð!PÐ!PÐ!P¨b¥# b¡'¤'Ð!PÐ!PÐ!Pr   Úrightz
 Error Mapr5   gÍÌÌÌÌÌì?)r‚   Úy)Fr>   r   r?   r@   rA   rï   r›   rœ   rÛ   rÜ   Úseabornr�   rc   Úcubehelix_paletter   rF   rB   rD   rE   Ú
propertiesÚto_dictr   rÈ   rŸ   Úreadout_errorr   rG   ÚtargetrÇ   ÚerrorrI   r©   rH   rK   ÚtupleÚnpÚasarrayÚmeanrë   Ú	NormalizeÚminÚfigureÚGridSpecÚsubplotr`   r¬   Ú
set_aspectÚcolorbarÚColorbarBaseÚMaxNLocatorÚlocatorÚupdate_ticksÚ	set_titleÚroundÚmathÚceilÚbarhÚaxvlineÚ
set_yticksÚ
set_xticksÚset_yticklabelsÚinvert_yaxisÚspinesÚvaluesÚset_visibleÚinvert_xaxisÚyaxisÚset_label_positionÚ
tick_rightÚsuptitle)7r   rP   Ú
show_titler\   r®   rÛ   rÜ   Úsnsrc   r^   Úbackend_namerG   rÌ   ÚpropsÚ
props_dictÚsingle_gate_errorsÚread_errÚ	cx_errorsrà   Ú_qubitÚparamÚdirectedrj   ÚlineÚitemrÐ   Útwo_q_error_mapÚ	prop_dictÚqargsÚ
inst_propsrí   Ú
avg_1q_errÚq_colorsÚline_colorsÚ
avg_cx_errÚavg_read_errÚmax_read_errrµ   Ú	grid_specÚleft_axÚmain_axÚright_axÚbleft_axÚ	bright_axrS   Ú	single_cbÚtick_locatorÚcx_cbÚnum_leftÚ	num_rightÚspinerî   rò   rï   rð   s7                                                      @@@@r   Úplot_error_maprP    só  øøøø€ õN �g�yÑ)Ô)ð 
ÝŒð*Ø")ð*ð *ð *õ (Øð	
ñ 	
ô 	
ð 	
ð ÐÐÐØ#Ð#Ð#Ð#Ð#Ð#Ø+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÐÐÐØ1Ð1Ð1Ð1Ð1Ð1à×%Ò%¨d¸DÐ%ÑAÔA€Iå4°WÑ=Ô=€OØ˜!ÒÑØ—|’|‘~”~ˆØ×*Ò*Ñ,Ô,Ô5ˆ
Ø×$Ò$Ñ&Ô&Ô3ˆØ×"Ò"Ñ$Ô$ˆØ—]’]‘_”_ˆ
Ø˜S :Ñ-ÐØ�3˜Ñ#ˆØˆ	à˜wÔ'ð 
	ð 
	ˆDØ�FŒ|˜tÒ#Ð#Ø˜hœ¨Ô*�Ø! ,Ô/ð ð �EØ˜V”}¨Ò4Ð4Ø5:¸7´^Ð*¨6Ñ2Ø˜ð 5õ -ØY GÐYÐYÐYñô ð øð ð 	ØˆHØ˜BŠˆØ ð ð �DØ  œG T¨!¤WÐ-°Ð5Ð5Ø#'˜Ø˜ð 6ð ð ð �Ø& wÔ/ð ð �DØ˜H”~¨Ò-Ð-Ø!×(Ò(¨¨lÔ);¸AÔ)>¸wÔ)GÑHÔHÐHØ˜ð .øõ ˜:Ñ&Ô&ð 	ð 	ˆEðØ"'×"5Ò"5°eÑ"<Ô"<�˜‘�øÝ'ð ð ð Ø�ðøøøñ	ð ”|ˆØÔ'ˆ
ØÔ#ˆØˆØ˜S :Ñ-ÐØ�3˜Ñ#ˆØˆ	Ø&œ~×3Ò3Ñ5Ô5ð 	ð 	‰OˆD�)ØÐ  D¨IÐ$5Ð$5ØØ%.§_¢_Ñ%6Ô%6ð ð Ñ!��zØÐ%ØØ˜9Ò$Ð$Ø!Ô'Ð3Ø-7Ô-=˜  q¤Ñ*øÝ˜‘Z”Z 1’_�_Ø!Ô'Ð3Ý7:Ø.¨u°Q¬xÔ8¸*Ô:Jñ8ô 8Ð*¨5°¬8Ñ4øõ ˜‘Z”Z 1’_�_Ø!Ô'Ð3Ý14Ø+×/Ò/°°qÑ9Ô9¸:Ô;Kñ2ô 2˜¨Ñ.øðð  ð 		&ØˆHØ˜BŠˆØ ð ð �DØ  œG T¨!¤WÐ-°Ð5Ð5Ø#'˜Ø˜ð 6ð ŸšÑ(Ô(ð &ð &�Ø%×)Ò)­%°©+¬+°qÑ9Ô9�Ø× Ò  Ñ%Ô%Ð%Ð%ð �rœzÐ*<Ñ=Ô=Ñ=ÐÝ”Ð+Ñ,Ô,€JàÔ#×-Ò-ÝÐ#Ñ$Ô$­3Ð/AÑ+BÔ+Bð .ñ ô €Kð eÐdÐdÐdÐdÐdÐQcÐdÑdÔd€Hà€HØ€KØð _ð �"œ* YÑ/Ô/Ñ/ˆ	Ý”W˜YÑ'Ô'ˆ
àÔ#×-Ò-µ3°y±>´>ÍÈIÉÌÐ-ÑWÔWˆØ^Ð^Ð^Ð^Ð^Ð^ÐT]Ð^Ñ^Ô^ˆà•R”Z Ñ)Ô)Ñ)€HÝ”7˜8Ñ$Ô$€LÝ”6˜(Ñ#Ô#€Là
�*Š*˜Wˆ*Ñ
%Ô
%€CØ×Ò˜A QÐÑ'Ô'Ð'à×!Ò!Ø
ˆB˜q˜c B™h¨#¨Ñ.Ð=aÐ=aÐ=að "ñ ô €Ið �kŠk˜) A b D¨"¨1¨" HÔ-Ñ.Ô.€GØ�kŠk˜) C R C¨¨2¨ IÔ.Ñ/Ô/€GØ�{Š{˜9 Q r T¨2¨3¨3 YÔ/Ñ0Ô0€HØ�{Š{˜9 R¨¨!¨ VÔ,Ñ-Ô-€HØð 3Ø—K’K 	¨"¨a¨b¨b¨&Ô 1Ñ2Ô2ˆ	à€JØ�Q‚€Øˆ
ÝØØØØØØØØ+ð	ñ 	ô 	ð 	ð ‡L‚L�ÑÔÐØ×Ò�qÑÔÐØð PØÔ'×4Ò4Ø˜9¨;ÀLð 5ñ 
ô 
ˆ	ð ×)Ò)°Ð)Ñ2Ô2ˆØ(ˆ	ÔØ×ÒÑ Ô Ð Ø×ÒÑ Ô Ð Ø×ÒÐNµu¸ZÈÑ7KÔ7KÐNÐNÐNÑOÔOÐOà€|Ø�Š�eÑÔÐØ×ÒÐGµ°zÀ1Ñ1EÔ1EÐGÐGÑHÔHÐHàð TØÔ#×0Ò0Ø˜I¨GÀð 1ñ 
ô 
ˆð ×)Ò)°Ð)Ñ2Ô2ˆØ$ˆŒØ×ÒÑÔÐØ×ÒÐR½5ÀÈQÑ;OÔ;OÐRÐRÐRÑSÔSÐSà�B‚€ØˆØˆ	ˆ	å”9˜Z¨!™^Ñ,Ô,ˆØ Ñ)ˆ	à‡L‚L•�x‘” (¨9¨H¨9Ô"5¸XÈY€LÑWÔWÐWØ‡O‚O�L¨D¸	€OÑBÔBÐBØ×Ò•u˜X‘”Ñ'Ô'Ð'Ø×Ò˜�5 ¨qÑ1Ô1µ5¸ÀqÑ3IÔ3IÐJÑKÔKÐKØ×ÒÐ?Ð?­u°X©¬Ð?Ñ?Ô?È"ÐÑMÔMÐMØ×ÒÑÔÐØ×ÒÐ)°BÐÑ7Ô7Ð7à”×&Ò&Ñ(Ô(ð !ð !ˆØ×Ò˜%Ñ Ô Ð Ð àñ Ø�ŠÝ�(˜JÑ'Ô'¨°(°)°)Ô)<ÀHÐT]ð 	ñ 	
ô 	
ð 	
ð 	×Ò˜°¸YÐÑGÔGÐGØ×Ò�E (¨JÑ7Ô7Ñ8Ô8Ð8Ø×Ò˜Q¥ l°AÑ 6Ô 6½¸lÈAÑ8NÔ8NÐOÑPÔPÐPØ× Ò Ð!PÐ!PµE¸(ÀJÑ4OÔ4OÐ!PÑ!PÔ!PÐ[]Ð Ñ^Ô^Ð^Ø×ÒÑÔÐØ×ÒÑÔÐØŒ×)Ò)¨'Ñ2Ô2Ð2ØŒ×!Ò!Ñ#Ô#Ð#Ø×ÒÐ.¸ÐÑ<Ô<Ð<Ð<à�Š�eÑÔÐà”×'Ò'Ñ)Ô)ð !ð !ˆØ×Ò˜%Ñ Ô Ð Ð àð FØ�Š˜Ð0Ð0Ð0¸2ÀˆÑEÔEÐEØÐ˜sÑ#Ô#Ð#Ø€Js   ÇG0Ç0
G=Ç<G=)NFTNr   NNNNr   NNN)NFTNr   NNNNr   NN)r¶   N)rÙ   TN)"Ú__doc__r  r?   Útypingr   Únumpyr  Ú	rustworkxrL   Úrustworkx.visualizationr   Úqiskit.exceptionsr   Úqiskit.utilsr   Ú
_optionalsÚqiskit.providersr   Úqiskit.providers.exceptionsr   Úqiskit.transpiler.couplingr	   Ú
exceptionsr   r   ÚHAS_MATPLOTLIBÚrequire_in_callr`   ÚHAS_GRAPHVIZÚintrJ   rØ   ÚHAS_SEABORNrP  rh   r   r   ú<module>rb     s3  ðð 4Ð 3à €€€Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à )Ð )Ð )Ð )Ð )Ð )Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø &Ð &Ð &Ð &Ð &Ð &Ø <Ð <Ð <Ð <Ð <Ð <Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø *Ð *Ð *Ð *Ð *Ð *ð%ð %ð %ð
 ÔÔ*ð ØØØØØØØØØØØØðbð bð bñ +Ô*ðbðJ ÔÔ*ØÔÔ(ð
 ØØØØØØØØØØØðzð" ð#zð zð zØðzà˜D œI”ðzð �t˜C”y”/ðzð zð zñ )Ô(ñ +Ô*ðzðzzð zð zð zðz ÔÔ*ØÔÔ'ð{ð {ð {ñ (Ô'ñ +Ô*ð{ð {ð {r   