{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How it works\n", "\n", "To convert Python code into a quantum circuit, qlasskit implements a series of transformations:\n", "\n", "1. It begins with the Python *AST* (Abstract Syntax Tree), converting it into a more streamlined form using the `ast2ast` module. \n", "2. Next, the streamlined AST is translated into *boolean expressions* as an intermediate step by the `ast2logic` module. \n", "During this phase, boolean expressions are refined and optimized in preparation for the final transformation.\n", "3. Finally, the `compiler` module takes these optimized boolean expressions and compiles them into a \n", "*quantum circuit*.\n", "\n", "Unlike other libraries that translate individual operations into quantum circuits before combining them, \n", "qlasskit constructs a single boolean expression for each output qubit of the entire function. \n", "This unique approach facilitates advanced optimization leveraging boolean algebraic properties.\n", "\n", "![Transformations](_images/trasformations/qlasskit_transformations.png)\n", "\n", "\n", "For instance, let assume we have the following function:\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from qlasskit import qlassf, Qint\n", "from qiskit import QuantumCircuit\n", "\n", "\n", "@qlassf\n", "def f_comp(b: bool, n: Qint[2]) -> Qint[2]:\n", " for i in range(3):\n", " n += 1 if b else 2\n", " return n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we decompose the algorithm in 3 separate additions and we compile them separately, we obtain the following circuit:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Operations: OrderedDict([('cx', 12), ('barrier', 3), ('x', 3), ('ccx', 3)])\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@qlassf\n", "def f1(b: bool, n: Qint[2]) -> Qint[2]:\n", " return n + (1 if b else 2)\n", "\n", "\n", "qc = QuantumCircuit(f_comp.num_qubits * 2 - 1)\n", "\n", "for i in range(3):\n", " qc.barrier(label=f\"it_{i}\")\n", " qc.append(f1.gate(), [0] + list(range(1 + i * 2, 5 + i * 2)))\n", "\n", "print(\"Operations:\", qc.decompose().count_ops())\n", "qc.decompose().draw(\"mpl\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While if we compile the whole function to a quantum circuit using qlasskit, we obtain the following quantum circuit:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Operations: OrderedDict([('cx', 7), ('x', 1), ('ccx', 1)])\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = QuantumCircuit(f_comp.num_qubits)\n", "qc.append(f_comp.gate(), f_comp.qubits)\n", "\n", "print(\"Operations:\", qc.decompose().count_ops())\n", "qc.decompose().draw(\"mpl\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see from the circuit drawings, qlasskit approach needs half the number of qubits and half the number of gates." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## AST Traslator\n", "Given a python function, the `qlasskit.ast2logic` module walks its syntax tree translating all the statements / \n", "expressions to boolean expressions.\n", "\n", "\n", "For instance, the following function:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "@qlassf\n", "def f(n: Qint[4]) -> bool:\n", " return n == 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Is translated to this boolean expression:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[(_ret, n.0 & n.1 & ~n.2 & ~n.3)]\n" ] } ], "source": [ "print(f.expressions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Compiler\n", "\n", "The boolean expressions are then being fed to the `qlasskit.compiler`` which compiles boolean expressions\n", "to invertible circuits, introducing auxiliary qubits. In this step, the compiler will automatically uncompute \n", "auxiliary qubits in order to reduce the number of qubits needed and the circuit footprint. \n", "\n", "For the compilation, two backends are supported:\n", "\n", "- InternalCompiler\n", "- Tweedledum.xag_synth\n", "\n", "\n", "## Result \n", "\n", "The result of the compiler is a quantum circuit represented with qlasskit `QCircuit`. This circuit\n", "can now be exported to one of the supported framework as a gate or as a standalone circuit.\n", "\n", "\n", "The previous example function `f`, is translated to the following quantum circuit: the \n", "result is available at qubit `q6`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHwCAYAAABTxu5FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABE6klEQVR4nO3dfVxUZf7/8fcAyj0iYIKCdykKiGAiaTeWpltm2n1aZrXZzW6Z1pq03VrbtqbZtqtWa5vdbRvRnbsmtWVZ6bqaIGmmmKZiIEw6Cip3yjDz+8OffiNBGZwbzuH1fDx89GjOuc710XNm5j3nXOc6FqfT6RQAAIBB+fm6AAAAgNNBmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIbWJsKMzWZTVlaWevfuraCgICUkJGjatGmqqqrS5MmTZbFYtGDBAl+XCcCDHA6ntuys0JoNe/Tt1v2qrrH7uiQAbhLg6wI8bf369Ro9erSsVqtCQ0OVnJys0tJSzZs3T9u3b9f+/fslSenp6b4tFIBH7D9wWK/+a6tefKdQ24sPHX+9Q3h73Ty2t+4an6S+PSN9VyCA02ZxOp1OXxfhKTabTQMHDlRJSYmmT5+umTNnKjw8XJI0Z84cPfDAAwoICFB9fb0qKioUERHh44oBuNO3W/fr0rs+0e491U2uE+Bv0d8fP0+3XJ7oxcoAuJOpw8wNN9yg7OxsTZkyRfPnzz9heXp6ujZs2KCePXtqx44dPqgQgKf88ONBDZ30oWzltc1aP3v2hZow+kwPVwXAE0w7ZqawsFA5OTmKiYnRrFmzGl1n0KBBkqS0tLQGr+/cuVPjxo1TeHi4OnbsqJtuukn79u3zeM0A3Gfq06ubHWQk6Y4/rNKhqiMerAiAp5g2zGRnZ8vhcGjixIkKCwtrdJ3g4GBJDcPMoUOHNHz4cJWUlCg7O1svvfSSVq5cqcsuu0wOh8MrtQM4PduLD+o/q0pcanOoqk5vfcQZWsCITDsAePny5ZKk4cOHN7lOScnRD7ufh5mXXnpJu3fv1ooVK9StWzdJUnx8vM455xwtWbJEV1xxheeKBuAWr/17m1pyAf3lD77Xndf2c39BADzKtGFm165dkqTu3bs3utxut2vVqlWSGoaZpUuX6rzzzjseZCRp6NCh6tWrlz788MMWhZmMjAxZrVaX2wFomf2hV0uBA1xuV7Bxl+Lj4z1QEYBTiY2NVX5+fovamjbMVFVVSZJqamoaXZ6TkyObzabw8HD17Nnz+OubN2/Wtddee8L6KSkp2rx5c4tqsVqt2r17d4vaAmiBhFop0PVmDqeF9ypgQKYNM7GxsSovL1dBQYGGDh3aYFlZWZlmzJghSRowYIAsFsvxZeXl5YqMjDxhe1FRUfr+++9bXAsA76kIqldVC9oFqFKdu3Z1ez0ATu10vitNG2ZGjhypwsJCzZ49W6NGjVJi4tE5JPLy8jRp0iTZbDZJ3pksr6WnzQC0zLrNNmVM+LfL7Z64d7Qeuv1BD1QEwJNMezdTVlaWoqOjVVxcrJSUFKWmpqpPnz7KzMxUr169NGLECEkn3pbdsWNHVVRUnLC9/fv3KyoqyhulAzhNg5JjlNm/k0tt2gX4afJVfT1UEQBPMm2YiY+P18qVKzVmzBgFBQWpqKhIUVFRWrhwoXJzc7V161ZJJ4aZpKSkRsfGbN68WUlJSV6pHcDpe/b+TLVv1/yPuMd+k67O0cEerAiAp5h6BuCmVFZWKiIiQhaLRYcOHVJISMjxZXPnztVDDz2kHTt2HL+r4euvv9aQIUP0wQcf6Morr/RV2QBc9OGXP2r8jOWqOVx/0vVm3JKq2fcNbjB+DoBxtMkwcyyc9O3bV1u2bGmw7ODBg0pNTVVMTIyeeOIJ1dbWKisrS506ddLq1avl52fak1mAKX23bb+efeM7ZX+8Q4ePNAw1IzLjNHViii4f3vgUDgCMoU1+M2/cuFHSiZeYJCkiIkLLly9XXFycJkyYoNtuu03nnHOOli5dSpABDKh/nyi9+uQw7f5sgt6ZO0KR4e0lSWdEBenzly8lyAAmYNq7mU7mZGFGks4880wtXbrUmyUB8LDoyCBd+6ueum/OGlUcOqJ2Afw4AcyiTb6bTxVmAACAcbTJMzPHntsEAACMr02emQEAAOZBmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIZGmAEAAIbWJsKMzWZTVlaWevfuraCgICUkJGjatGmqqqrS5MmTZbFYtGDBAl+XCQAAWiDA1wV42vr16zV69GhZrVaFhoYqOTlZpaWlmjdvnrZv3679+/dLktLT031bKACP+WlfjV5+/3vlrizWT/tqJEnlB49ow/f7lNY32sfVAThdFqfT6fR1EZ5is9k0cOBAlZSUaPr06Zo5c6bCw8MlSXPmzNEDDzyggIAA1dfXq6KiQhERET6uGIA71dU59Lu5X2vhu1tUZ3c0us4FGbH656wL1bVzqJerA+Aupg4zN9xwg7KzszVlyhTNnz//hOXp6enasGGDevbsqR07dvigQgCeYrc7dNV9n+vDr3485boJsaFa9cZlSogN80JlANzNtGNmCgsLlZOTo5iYGM2aNavRdQYNGiRJSktLO/5aSUmJpkyZoszMTAUGBspisXilXgDu9cTfvmlWkJGkYmuVrrz3c5n4tx1gaqYNM9nZ2XI4HJo4caLCwhr/tRUcHCypYZj54Ycf9P777ys2NlaDBw/2Sq0A3Ku6xq7n397sUpt1m21asc7qoYoAeJJpw8zy5cslScOHD29ynZKSEkkNw8ywYcNUVlamJUuWaOTIkZ4tEoBHvP2fHSo/eMTlds+/XeiBagB4mmnvZtq1a5ckqXv37o0ut9vtWrVqlaSGYcbPz/35LiMjQ1Yrv/gAbykPvUIKHOhyu/f/s0Hxb9/k/oIAnFJsbKzy8/Nb1Na0YaaqqkqSVFNT0+jynJwc2Ww2hYeHq2fPnh6txWq1avfu3R7tA8DPdKuXAl1v5nC2570KGJBpw0xsbKzKy8tVUFCgoUOHNlhWVlamGTNmSJIGDBjg8UG+sbGxHt0+gIbKg/xU3YJ2fpYjiuva1e31ADi10/muNG2YGTlypAoLCzV79myNGjVKiYmJkqS8vDxNmjRJNptNkncmy2vpaTMALfPP3B9044Nfudxu4riz9MafSjxQEQBPMu0A4KysLEVHR6u4uFgpKSlKTU1Vnz59lJmZqV69emnEiBGSGo6XAWAO14zqqZiOQS63u2t8kgeqAeBppg0z8fHxWrlypcaMGaOgoCAVFRUpKipKCxcuVG5urrZu3SqJMAOYUWB7f913Y4pLbc4/q7POHtDJQxUB8CTTXmaSpKSkJC1duvSE1ysrK1VUVCQ/Pz/179/fB5UB8LTfT07T5h0V+mfu9lOum9i9g9579iImyQQMytRhpimbNm2S0+lUYmKiQkJCTlj+3nvvSZI2b97c4P979OihjIwM7xUKoMX8/Cx646kL1LNruP7y5neqrLafsI7FIo27sJsWPXG+oiNdvywFoHUw9bOZmvLyyy/r9ttv13XXXaecnJwTljf16+zmm2/Wa6+95uHqALjbwcoj+sfSH5S7olifrynVEbtDYSEB+va9q9QzPtzX5QE4TW3yzMzGjRslNT1epg3mO8DUIsLa6+4Jybp7QrLiR2Zr955qdQhrT5ABTMK0A4BP5lRhBgAAGEebPDNz7LlNAADA+NrkmRkAAGAehBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBobSLM2Gw2ZWVlqXfv3goKClJCQoKmTZumqqoqTZ48WRaLRQsWLPB1mR5VuKNCf3unUM+8+q3+9k6hCndU+LokAIAX7auo1ev/3qa5r23U/Lc26bM1u+VwOH1dllsE+LoAT1u/fr1Gjx4tq9Wq0NBQJScnq7S0VPPmzdP27du1f/9+SVJ6erpvC/WQ3BU/au7r3+nLvLITll04OE7339xfY4Z180FlAABv2LKzQrNe3qCcT3bq8JH6BsvOTAjXXeOTdM/1KWrXzrjnNyxOp9McsawRNptNAwcOVElJiaZPn66ZM2cqPDxckjRnzhw98MADCggIUH19vSoqKhQREeHjit1r1ssb9NC8/FOu96epGXrwtjQvVAT4XvzIbO3eU62uZ4So5LPrfV0O4FFf5Zdp3NRlOlhZd9L1Ljk3Xh88d5GCg4x5jsO4MawZpk6dqpKSEk2ZMkVz5849HmQkKSsrS2lpabLb7erRo4fpgszf39vSrCAjSQ/Ny9fL73/v4YoAAN606Ydyjb3n1EFGkv6zqkQ3PviVjHp+w7RhprCwUDk5OYqJidGsWbMaXWfQoEGSpLS0/zsr8d577+nqq69W9+7dFRISon79+unhhx9WZWWlV+p2h9rDdj3YzCBzzIPz8lV72O6higAA3vb4iwU6VHXqIHPMB58X6X/r93iwIs8xbZjJzs6Ww+HQxIkTFRYW1ug6wcHBkhqGmblz58rf319/+tOf9PHHH+u3v/2tXnzxRV1yySVyOBxeqf10vfvpTu2rOOxSG1t5rd5bVuSZggAAXlW6p0qLl+9yud0LOYUeqMbzjHlxrBmWL18uSRo+fHiT65SUlEhqGGY+/PBDderU6fj/X3DBBerUqZMmTpyo//73vxo2bJiHKnaf7I93tLDddt14WW83VwMA8Lb3PytSfb3rl4ze/XSnXntymOEGA5s2zOzadTSRdu/evdHldrtdq1atktQwzPw8yByTkZEhSdq9e3eLasnIyJDVam1R25bYE3GHFNDV5XbLvvha8fGTPVAR0HqURf5O8uugMmuZ4uPjfV0O4BEHg0dIwRe43K7O7lC3Xv3k76z2QFUnFxsbq/x814ZIHGPaMFNVVSVJqqmpaXR5Tk6ObDabwsPD1bNnz5Nu64svvpAkJSUltagWq9Xa4iDUIkG1LdqzdUdqvVsn4Avh9ZKf5Kiv53iHeZ1RIQW3rKm1tERyNP7d2VqZNszExsaqvLxcBQUFGjp0aINlZWVlmjFjhiRpwIABslgsTW5n9+7devTRR3XJJZe0eC6a2NjYFrVrqf3+lWrJYRjsf0hRXV0/owMYSZm/vxyS/Pz9FcfxDpOqbl+n8ha083NUKjYuWhZ5/66m0/muNG2YGTlypAoLCzV79myNGjVKiYmJkqS8vDxNmjRJNptN0skny6usrNTll1+u9u3b65VXXmlxLS09bdZSK9dZNezXuS63+zT7YZ131nwPVAS0HsfmmYmLjVPJdyW+LgfwiNrDdnUd+bb2H3DtZpDf33Gunpo6zUNVeY6xRvi4ICsrS9HR0SouLlZKSopSU1PVp08fZWZmqlevXhoxYoSkhuNlfq6mpkZjx47Vzp079emnnyouLs6b5Z+W887qrNQ+HV1qk9qno84d2NlDFQEAvCkoMEC3XpHoUhs/P4vuuKavhyryLNOGmfj4eK1cuVJjxoxRUFCQioqKFBUVpYULFyo3N1dbt26V1HiYqaur0zXXXKP8/Hx9/PHHSk5O9nb5p8Visej1Pw5TWEjzTryFhQTojacuOOnlNgCAsTz2m3Sl94tq9vp/fWCIuncJP/WKrZCpH2fQlMrKSkVERMhisejQoUMKCQk5vszhcGjChAlasmSJPvroo+NncIxozYY9Gjt1mWzltU2uE9MxSB/OG6UhaWd4sTLAd3icAdqSvftrNG7qMq35dm+T61gs0l+yhmjqxBQvVuZeph0zczKbNm2S0+lUYmJigyAjSXfffbfeffdd/f73v1dISIjWrFlzfNmZZ57Z6K3brdWQtDP0/ZJr9PqSbXrxnUJt23Xw+DJ/f4ue+V2mbh7XR1EdAn1YJQDAUzpFBWvFq5dpyZe79EJOoZav/b+HDlss0rSJKfrNtf3Ut2ek74p0gzZ5Zubll1/W7bffruuuu045OTkNlvXo0eP4HDW/9Oqrr+qWW27xQoXu53A4Vba3WmeN/5f27K9Vl07B2v35Db4uC/A6zsygLdtXUavkK9433fdAmzwzs3HjRkmNj5cpKirycjXe4ednUdfOoWoXcHSYFONjAKDtiY4MMuX3gGkHAJ/MycIMAAAwljZ5ZubYc5sAAIDxtckzMwAAwDwIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNAIMwAAwNDaRJix2WzKyspS7969FRQUpISEBE2bNk1VVVWaPHmyLBaLFixY4Osy4WH19Q6VHzysg5VH5HQ6fV0OAB+oqbVrX0Wt6uocvi4FbhTg6wI8bf369Ro9erSsVqtCQ0OVnJys0tJSzZs3T9u3b9f+/fslSenp6b4tFB6T991evZBTqLf/s0O1h+slSZ06Bum2q/rqN9f1U7e4MB9XCMCTKqvr9ObSH/RCTqE2bis//vqIzDjdNT5J4y7srnbt2sRve9MydZix2WwaO3asrFarpk+frpkzZyo8PFySNGfOHD3wwAMKCAiQxWLRgAEDfFwt3O3wkXrd9vhKvbl0+wnL9pbXataiDZr96rf68/2ZmnZjfx9UCMDTVm/4SeOmfiZbee0Jy5avLdPytWVKOTNSH71wMT9sDMzUUXTq1KkqKSnRlClTNHfu3ONBRpKysrKUlpYmu92uHj16KCIiwoeVwt3q6x26/oEvGg0yP+dwOHXvnK/17OsbvVQZAG9Zu3GvLrrt40aDzM9t2l6hYb/OVdneai9VBnczbZgpLCxUTk6OYmJiNGvWrEbXGTRokCQpLS3t+GsrV67UyJEjFRcXp8DAQMXHx2v8+PEqLCz0St1wj7+//70Wf76r2evf/+xafbdtvwcrAuBN9fUOXTdjuWr+/6XlU9lVWqnfPLnKw1XBU0wbZrKzs+VwODRx4kSFhTV+6jA4OFhSwzBTXl6u1NRUzZs3T59++qlmz56tTZs2aejQoSopKfFK7Tg9TqdTz7/tevh88Z0tHqgGgC/krijWrtJKl9osXVGsXaWHPFQRPMm0YWb58uWSpOHDhze5zrFw8vMwM27cOD333HO69tprdcEFF2jixIn64IMPdODAAb3//vueLRpusXrDHn33Q/mpV/yFNz7cpqrqOg9UBMDbFr7n+o8Th8Oplz/Y6oFq4GmmHQC8a9fRSwzdu3dvdLndbteqVUdPKf48zDQmOjpakhQQ0LJ/royMDFmt1ha1dbeyyN9Jfh1UZi1TfHy8r8vxiKrAQVLoOJfbVVbb1atfhto59nmgKrQWbeE9AMna4V7Jv6PL7eYueEuvPn25+wtqRVrreyA2Nlb5+fktamvaMFNVVSVJqqmpaXR5Tk6ObDabwsPD1bNnzxOW19fXy+FwaNeuXXrwwQcVGxur6667rkW1WK1W7d69u0Vt3S68XvKTHPX1racmd4tOlEJb1nTP3v1SrUn/XXBUW3gPQAq3SP6uN6utrTP/cWHC94Bpw0xsbKzKy8tVUFCgoUOHNlhWVlamGTNmSJIGDBggi8VyQvsLLrjg+Jmb3r17a/ny5erUqVOLa2ktyvz95ZDk5++vuK5dfV2OR1S3by+XLzI5nZLFotiYMPk7zfnvgqPawnsA0k+Ww7K3oF1IoEMdTX5ctNb3wOl8V5o2zIwcOVKFhYWaPXu2Ro0apcTERElSXl6eJk2aJJvNJqnpyfIWLVqkiooK7dy5U88884x+9atfadWqVerWrZvLtbT0tJknxI/M1u491YqLjVPJd+Yc0Fxx8LC6jnxb1bUufJRZLBqadob+9w/uWjO7tvAegPTEiwV6/MVvXG6X81KWLrvA3DPCm/E9YNoBwFlZWYqOjlZxcbFSUlKUmpqqPn36KDMzU7169dKIESMkNT1epm/fvjr77LM1YcIEff755zp06JDmzJnjzb8CWigyIlATx5zpcru7xid5oBoAvnD71X0V4H/iWfeT6d4lTKPPaz1jSNB8pg0z8fHxWrlypcaMGaOgoCAVFRUpKipKCxcuVG5urrZuPTpi/VSDfyUpMjJSvXv31g8//ODpsuEmWb8eoMjw9s1ef2C/aF0zqofnCgLgVV3OCNW0iSkutXnqnkHy9zft16KpmfYykyQlJSVp6dKlJ7xeWVmpoqIi+fn5qX//U09jv2fPHn3//fc6++yzPVEmPKB3twh9OH+ULpuyTAcqj5x03eQzI5X7/K8UFGjqtwPQ5sy+b7B+2l9zypnAJemZ32Vq4pjeXqgKntAmP703bdokp9OpxMREhYSENFh24403qnfv3kpPT1dkZKS2bdum5557TgEBAbrvvvt8VDFa4ryzYrX6zbGa+UKBFn9eJHt9wydldwhvr5vH9tYTd52lyIhAH1UJwFP8/f30+h8v0NmpZ+gvb36n7cUnToh3dmonPXhbmi4f3vg0HjCGNhlmNm48+hyexi4xDRkyRG+88Yb++te/qra2VgkJCRo+fLgeeuihJuesQeuV1CtS78wdodI9VXr30516ZME6VVbbFRneXiXLJig0pJ2vSwTgQX5+Fk25Pll3jU/SstW7de39y3Woqk4Roe20fNGlGpQc4+sS4QaEmV+YMmWKpkyZ4u2S4GFdzgjVtBv765nXNqqy2q7Q4ACCDNCG+PlZdPG58YoIbadDVXUKD21HkDGRNjnS6WRhBgAAGEubPDNz7LlNAADA+NrkmRkAAGAehBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBohBkAAGBoAb4uAMCJnE6nqmvsvi7DJSHBAbJYLL4uwzQ4BoDmI8wArVB1jV1hQ97wdRkuqVxzk0JD2vm6DNPgGACaj8tMAADA0AgzAADA0AgzAADA0AgzAADA0BgA3AaU7a3Wus02le2tVmV1nSSp5nC9yvZWK65TiI+rAwB42qGqI/qmcJ9+KD50/HugutauLTsrlNi9g/z8jH0XGmHGhJxOp9Zu3KsX39miT1fvVtne6hPW2X/gsLpclK24TiH61dCu+u11/ZSZ2onbKgHAJIqtlXrpve/13rKd+r7ogJzOhsvLDx5R0uXvKyyknYamddLtV/fTFcO7q1074120IcyYzCerSvTQvHwVFO5r1vple6v1+pJten3JNp2VFK0/Tc3QxefGe7hKAICn7Cg5qBnP5ulfX+ySw+E85fqV1XVatrpUy1aXKq5TiKbf1F/TJqYoIMA4ocY4leKkDhw6ottmrtQlv/2k2UHmlwoK9+mS336i22au1IFDR9xcIQDAkxwOpxZkb1bqVYv1wedFzQoyv1S2t1r3P7tW5960VIU7KtxfpIcQZkxg264DSr92sRYt3uqW7S1avFXp1y7Wtl0H3LI9AIBn1dTadcW0z3TPrNWqrj39maPXfrdXA6/7l977dKcbqvM8wozBbS06oPNvyVVRaaVbt1tUWqnzb8nV1iICDQC0ZrWH7bpsyqf68Ksf3brdw0fqNT7rC2V/tN2t2/UEwoyB7auo1ag7P9ZP+2o8sv2f9tVo1J0fa19FrUe2DwA4PU6nU5Me+krL15Z5ZPsOh1M3PfKVvlhb6pHtuwthxsCmPr1GP5ZVudQmL3ucipdNUF72uGat/2NZlabNXtOS8gAAHvbm0h/03rIil9q4+j1gtzv168dW6lBV6x1LSZgxqH8tL9JbLTj1FxsTovjOoYqNaf78Mv/M3a5/f7HL5b4AAJ5TtrdaU592/cdmS74HdpVWasaf81zuy1tMH2ZsNpuysrLUu3dvBQUFKSEhQdOmTVNVVZUmT54si8WiBQsW+LpMlzgcTt3/7Fqv9nn/s2tbNDIevvfU1EFyfjtZv76iT6PLv1h0qWrzb1FK745ersx7jtTV6+2Pt2vSQ19qX8VhSdKhqjrZys1/CZX9b15P/X29Krx45+nCd7fo+50VXuvPFaYOM+vXr1dqaqqeeeYZWa1WJScnq66uTvPmzdP48eNVWFgoSUpPT/dtoS5atnq3thcf8mqfP/x4UJ+t2e3VPuEej7/wjTZu268/33+2unZu+Evs3htTdOHgOM18oUCbfij3UYWe43Q69dc3v1O3X+Xo+ge+1JtLt6v2SL0k6WBVneJHva3bZq48PiOqGbXl/W9mh6qO6I0Pf/B6v397d4vX+2wO04YZm82msWPHymq1avr06SorK1NBQYGsVqtmz56t3Nxc5eXlyWKxaMCAAb4u1yUv5BT6pN/n3/ZNvzg9dXaHbn5khUKD22nR4+cffz2xRwc9dU+G1ny7R8+8ttGHFXqG0+nUtNlrdO+cr5scJH/4SL0WLd6qC2/9yLRzK7XV/W92/8zdrkNV3g/hr/57m6paYfg3bZiZOnWqSkpKNGXKFM2dO1fh4eHHl2VlZSktLU12u109evRQRESEDyt1TV2dQ5/8zzdnSD75327V1Tl80jdOzzeF+zRr0QZdfG68br+6r/z8LHrjqWGyWKSbH1lhykuIz79dqPlvbW7Wuus223TD77/wcEW+0xb3v9ktXVHsk34PHDqi/23Y45O+T8aUYaawsFA5OTmKiYnRrFmzGl1n0KBBkqS0tLQmtzN69GhZLBY9/vjjniizRTZtL9fh/3+a3NsOH6nX5h2cijaqJ1/6Ruu37NPc6Zma/+BQnZ16hh6ev86UcwnV1Tk0a9EGl9p8tLJE3xTaPFSR77Wl/d8WrNvsu2PVl303xZRhJjs7Ww6HQxMnTlRYWFij6wQHB0tqOsy88847Wr9+vadKbLGWPqrAXdZt9m3/aDm73ambH1mhoEB/3TU+SSsLrPrLm9/5uiyPWPLlLpXuOfEBq6fy4jutczyAO7Sl/W92pXuqZLV5Zn6x5iDMeMny5cslScOHD29ynZKSEkmNh5mDBw/q3nvv1dy5cz1T4Gn4scy9M/0arX+cngOVR46f2ftoZfEJT9E1i/+sKmlRu4//27J2RtFW9r/ZuTq/mLsVW33bf2MsTqf5DueEhASVlJTom2++afROJbvdrri4ONlsNm3fvl29evVqsPyee+7Rxo0b9eWXX8pisWjmzJmndakpIyNDVqu1xe1/7kDwSFUGn9/osrzscaecNyA2JlgB/n6y1ztOmuyttmoNvn7JCa+H1axUh5rPXCu6FSmL/J0cfh3k5ziguIo/+7qcJjnUTmVRj7h9u8tfHq1z0jtre/FBde8SpgFXL9aOEvfcGRe3/4/yU+sYGLg/9FrVBPZ3uZ3FeVhdyv/kgYpc54ljwJP7X2pdx0BTjPIZcDKHA7rLFnFro8u88T3Qzl6mMw7+zbWimyE2Nlb5+fktahvg5lpahaqqo6mxpqbxnZSTkyObzabw8HD17NmzwbL8/Hz9/e9/17p169xWj9Vq1e7dbhq0e0aFFNz4omMTITVHgL9fs9f9ucqD5arcY+BbtMPrJT/JUV/vvn3iCZb2UpR7N3nPDckantlFD83L17+/2KWCnCv0yh/O14W3fuSW7ZeVlkrOVnJHUPwBKdD1Zk57Tes5Ltx8DHh6/0ut7BhoilE+A04mJEhq4r4Vb3wP1B2pbXX/dqYMM7GxsSovL1dBQYGGDh3aYFlZWZlmzJghSRowYIAsFsvxZfX19brzzjs1ZcoUpaSkuLUed6kM9FdTw/WstlOPEXAlkTemQ1iAwtp1bU6prVKZv78ckvz8/RXXtfX+PRxqJ3c+aaV3twjNmpahtRv3avYr38rhcOrxFws0a9pg3XNDcrPv+jmZuC5dWs2v8sr25U2+T04myGlVdCs5Ltx5DHhj/0ut6xhoilE+A07G7hein5pY5o3vgcCAOsV44N/udL4rTRlmRo4cqcLCQs2ePVujRo1SYmKiJCkvL0+TJk2SzXZ08NIvL0EtWLBAP/30k9vvXmrpabPGrPrmJ51389JGlzV2OvCXipdNUHznUFltNUoY9bbL/X/0/gs6J72zy+1ai/iR2dq9p1pxsXEq+a71jo+oqq5T2JA33LIti0V67clh8vez6OZHvjp+G+6cVzfqqot6aNa0DOWuKD7tyw3btm5VaEg7d5R82g5WHlHXkdmqrLa71G7xy9N0yXnPeKgq17jrGPDW/pda1zHQFKN8BpyMw+FUx/P+oYOVJwZHb3wPzJhynZ6cMtvldp5kygHAWVlZio6OVnFxsVJSUpSamqo+ffooMzNTvXr10ogRIyQ1HPxrs9n06KOP6rHHHpPdbldFRYUqKiokSbW1taqoqJDD4fs5VtL7RsnPz3LqFT3Az8+i9L7RPukbLTf95lSdO7CzHnuhQFt2/t/5CofDqVseXaEAfz+98ofGx2EZVURYe02+sq9LbZJ6RepX5xjzl/rJtMX9b3Z+fhadlRTjs/4HJbe+7wFThpn4+HitXLlSY8aMUVBQkIqKihQVFaWFCxcqNzdXW7duldQwzJSUlOjQoUO688471bFjx+N/JGn27Nnq2LGjfvzxR5/8fX4uNKSdMvv75iA+O7WTQoJNeTLPtPr17KAn7z5Lqzfs0bOvn3gb7ubtFXr8xQJdkBGne25I9kGFnvP0vRkaNqh5p61jOgbpX38Z6bMfCp7Slve/2Q0fHOeTftsF+OncVnh23rTfTElJSVq69MTLMZWVlSoqKpKfn5/69/+/ux169+6tL744cQbQ4cOH6+abb9Ytt9zi1rEvp+M31yZpzbd7fdBvP6/3idOzZecBBQ9+/aTrPL3oWz296FsvVeQ9QYEB+viFi3XrzBXK+c/OJtdLOTNSHzw3Uok9OnixOu9oy/vf7CZfmag/LPxG9fXevSH56pE91CmqibtQfMi0YaYpmzZtktPpVGJiokJC/u/2tbCwMF144YWNtunRo0eTy3xh/CU99bu5X2v/gcNe6zM6MlDXXdzz1CsCrUhIcIDenjNCT/y2Qn97d4tyVxZr+48H5XBKQYH+Wjr/VxpxdlyDGwEAI+jaOVRXDO+u9z8r8mq/d09I8mp/zWXKy0wns3Hj0QeqnewxBq1dUGCAHpzs3fp/f2uaggLbXPaFSfTtGannsoZo64fXKq7T0R8x0R0CddGQLgQZGNbDt6fJ3997x++IzDidO7D1XWKSCDOn5HQ6W9WzmY65b1KKzk7t5JW+hgzopPsmue9WdQDA6RuYFOO1H7ZhIe206InzW234J8wYlL+/n1774zAFB/m71M5qq1bJT1XNmotAkoKD/PXqk8Pk79/mDhUAaPUevTNdaX1dm13R1e8BSZo7PVM9uoa7Wp7XtLnrBsee22QG/XpG6v1nL9K4actktzdvEFhz5iA4JiDAovefvUj9eka2sEIAgCe1b+ev3AW/0nk3L1VRafOenefK94AkTb+pv+64xrWpDryNn9sGN/r8BP3rLyMVFOjaGZpTCQr017//Okqjz09w63YBAO7VtXOovnzlUvXp3sQzDk7DA7cO0DPTM1vt5aVjCDMmMGZYN615c6zS+7nnQS7p/aK05s2xupQgAwCG0L1LuNa8OU43XnamW7YX1SFQbz19oZ6+d3CrDzISYcY00vpGa+0/L9fjvx2okKCWXT0MCQrQ478dqLX/vFxpzPQLAIYS1SFQ//jThfrXX0cqIdb1B0gec82oHtq0+Cpdf6l7gpE3tLkxM2bWrp2fZv72LE2bmKI3PvxBL+QU6vuiUz9ur2+PDrprfJJuGttbkREteNQwAKDVuHx4d405P0FLV/yoF3IKtWx16SnbdIxor1uvSNRvrktS727uv1zlaYQZE4qMCNTUiSm654ZkFVurtG6zTes221Rmq9HhI/UKbO+vuJhgDUqOUUZKjOI7hxriNCIAoHkCAvx0xYgeumJED1UcPKyCwn3K32TTth8PqOZwvQL8/dQxor3S+0ZrUHK0+vWMVECAcS/WEGZMzGKxqFtcmLrFhenKi3r4uhwAgA9ERgRqxNldNOLsLr4uxWOMG8MAAABEmAEAAAZHmAEAAIZGmAEAAIZGmAEAAIbG3UxAKxQSHKDKNTf5ugyXhATzceJOHANA83HkAa2QxWJRaEg7X5cBH+IYAJqPy0wAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQCDMAAMDQAnxdAIATOZ1OVdfYfV2GS0KCA2SxWHxdhmlwDADNR5gBWqHqGrvChrzh6zJcUrnmJoWGtPN1GabBMQA0H5eZAACAoRFmAACAoRFmAACAoRFmAACAoRFm0GY4HE45nU5JOv5fAG0LnwHmxN1MMK0Sa5XeW7ZT+ZttWrfZpu+LDujY51fp3hoNvv7fGpQco6EDztDVo3oojLswAFNxOJxatnq3lq8tVf4mmwoK96ni0BFJRz8DulyUrUFJ0cpIidGYYQnKSOnk44rRUhYn8RQm82Vemea/tVn//nKX6uubd3iHh7bTTWN7657rk9W3Z6RnC2yGquo6bsv1kPiR2dq9p1pdzwhRyWfX+7qcJnEMtFzFwcP6+/vf68V3tmjn7kPNbpeREqO7xidp4pgz1b6dvwcrhLtxmQmmsa+iVhN//6WGT/5IH3xe1OwgI0mHqur0/NuFSr16sZ56ab3sdocHKwXgKbkrflTKVR8o67k8l4KMJOVvsunWx1Yq84Yl2vD9Pg9VCE8gzMAUPl9TqpQrP9BbH20/re3U2R16ZME6DbnxQ+0sce2DEIDv1B6269bHVuiyKctUuqf6tLa14fv9yrj+33p60QbG1hgEYQaGt/jzIo2+6xP9tK/Gbdtct9mm825Zqi07K9y2TQCeUV1j12VTlunVf21z2zbtdqce/Gu+ps1eQ6AxAMIMDO2TVSUaP+ML1XngslDpnmqNvP1jFbl4qhqA99TVOXT17z7X51+XemT789/arN//Jc8j24b7EGZgWD/tq9HEB7/0SJA5Zveeat340Feqr2cMDdAaPf3KBv1nVYlH+5jz6kblrvjRo33g9BBmYEhOp1O//eMq7as47FK7vOxxKl42QXnZ45rdZtU3P2n+W5tdLRGAh327db+eXLjepTYt+QyQpNufWKXyg6593sB72kSYsdlsysrKUu/evRUUFKSEhARNmzZNVVVVmjx5siwWixYsWODrMuGCD7/8UYs/3+Vyu9iYEMV3DlVsTIhL7R6an6/SPVUu99caPDV1kJzfTtavr+jT6PIvFl2q2vxblNK7o5cr866aWru+WFuqmsN2SXLpbjcjM+v+dzqduuOJ/7p8ZralnwFle6v18Lx8l9rAe0wfZtavX6/U1FQ988wzslqtSk5OVl1dnebNm6fx48ersLBQkpSenu7bQuGSv/5zk1f7q6mt19/f/96rfbrL4y98o43b9uvP95+trp0bfoDfe2OKLhwcp5kvFGjTD+U+qtCzdpUe0v1zv1bXkdkacdvH2n/g6KRp1n01uu7+5fpvgdXHFXqWWff/2o179fXGvV7t87Ul21TB2ZlWydRhxmazaezYsbJarZo+fbrKyspUUFAgq9Wq2bNnKzc3V3l5ebJYLBowYICvy0UzFe6o0PK1ZV7v96X3v1ddnfHGztTZHbr5kRUKDW6nRY+ff/z1xB4d9NQ9GVrz7R4989pGH1boOV/llyntmn/p2Te+U/nBIycsf/fTnTr/llzNfmWDD6rzDrPu/+ffLvR6nzW19Xp9ifvumIL7mDrMTJ06VSUlJZoyZYrmzp2r8PDw48uysrKUlpYmu92uHj16KCIiwoeVwhX/zP3BJ/2W7qnW8rWeuWPC074p3KdZizbo4nPjdfvVfeXnZ9EbTw2TxSLd/MgKORzmu+Syfss+XTblUx2oPDHE/NLv/5KvBdnmHRdltv1fe9iudz7d6ZO+3/jQN58/ODnThpnCwkLl5OQoJiZGs2bNanSdQYMGSZLS0tKOv/bll1/KYrGc8IfLUK3H2u+8e2r55/I2+a7v0/XkS99o/ZZ9mjs9U/MfHKqzU8/Qw/PXaWvRAV+X5hH3zlmjymp7s9ef8ee12n/AvJcQzLT/N24r1+Ej9T7p+9tt+1V7uPnHFbzDtGEmOztbDodDEydOVFhYWKPrBAcHS2oYZo55/vnntXr16uN//vGPf3i0XjSP0+lU/iabz/r3Zd+ny2536uZHVigo0F93jU/SygKr/vLmd74uyyM2/VCur/JdGwtTe7her/17q4cq8j0z7f91m333PrTbnfp2q7HGF7UFpn1q9vLlyyVJw4cPb3KdkpKjcxM0FmaSk5M1ZMgQzxSHFrPaahod++Atm7ZX+KxvdzhQeUSHj9SrfTt/fbSyWGad2LSl4xpeX/KDfndTqpuraT3Msv99/T7ctL1cmak8Ybs1MW2Y2bXr6G273bt3b3S53W7XqlWrJDUeZtwpIyNDVqu575jwFrtflBQ5rcnlednjTnrLZWxM8PH/Fi+b0OR6Vlu1Bl+/5ITXdxTtVnx8vAsVt4xD7aSoR9y+3Vf/cL7at/PX5u3leuSOdL3zyU7tcNMzqPokJspPdW7Z1unaH3qNFOh6KNm4xTv7tzk8cQx4cv9L3jsGykOvkAIHNrrMXZ8BUtOfA/dNf1CPTvm6+QWjWWJjY5Wf37Lb300bZqqqjs4JUlPT+PN6cnJyZLPZFB4erp49e56wfPz48bLZbIqOjta4ceP09NNPKyYmpkW1WK1W7d69u0Vt8Qvt66TIphcfm0PiVAL8/Zq13i856uu9sy8t7aUo927ynhuSNTyzix6al69/f7FLBTlX6JU/nK8Lb/3ILdsvKy2VnL47a9ZAQrUU6Hozp8PRet6rbj4GPL3/JS8eA12rmty/nv4MkKQDB8p1YF8rOU4gycRhJjY2VuXl5SooKNDQoUMbLCsrK9OMGTMkSQMGDJDFYjm+rEOHDpoxY4aGDRumsLAwrV69WrNmzdKaNWuUn5+voKCgFtUC96i3hOlk57istpM/LTc2JlgB/n6y1ztktTX9YMqmtuPvV6/Yrl2bU+ppcaid3Hnzee9uEZo1LUNrN+7V7Fe+lcPh1OMvFmjWtMG654Zkt8xwHNelS6s5M3MgsE6VLWgXoEPq7IX92xzuPAa8sf8l7x0DFSEBamoKS3d9BpxsW5ERIQoNah3HiZmcznelxWnSx4FOnTpV8+fPV0JCgj777DMlJiZKkvLy8jRp0iTt2LFDdXV1uvvuu085+++HH36ocePG6ZVXXtGvf/1rb5SPJjidTsUM+2eL7zopXjZB8Z1DVfJTlRJGve1y+ytGdNfiv4xsUd+uqKquU9iQN9yyLYtFWvnaZRqUHK2B1/1LW3YevXvFz8+iNW+OVfKZkRpw9eLTvtxQueYmhYa0c0fJp61wR4WSr3jf5XbPzThb907q74GKXOeuY8Bb+1/y3jGw8N0t+s2Tq1rU9nQ/AyRp7VvjNLg/Y2ZaE9PezZSVlaXo6GgVFxcrJSVFqamp6tOnjzIzM9WrVy+NGDFCUvPGy1x22WUKDQ1t8bU8uI/FYtGg5Gif9e/Lvltq+s2pOndgZz32QsHxLzJJcjicuuXRFQrw99Mrfzj/JFswnqRekRo+OM6lNsFB/rr58san/DcyM+5/X74PAwIsSu1jrEc/tAWmDTPx8fFauXKlxowZo6CgIBUVFSkqKkoLFy5Ubm6utm49egumK4N/f345Cr5zduoZPus702C/xvr17KAn7z5Lqzfs0bOvn3gb7ubtFXr8xQJdkBGne25I9kGFnvOXB4YoPLT5ZwmemzFEHSNaMNCmFTPr/k/tE6WgQH+f9J2WGK2gQNOO0DAsU++RpKQkLV269ITXKysrVVRUJD8/P/Xvf+pTykuWLFFVVZUyMzM9USZcdOOYM/XHl9Z7vd+uZ4RoRGYXr/d7OrbsPKDgwa+fdJ2nF32rpxd966WKvGdAYpQ+fuFijZu67JSXJZ+9P1N3XtvPS5V5j1n3f2B7f42/uJdPHi1w87jeXu8Tp2bqMNOUTZs2yel0KjExUSEhDW/hu/HGG9WrVy+dddZZxwcAz5kzR+np6Zow4eS38cE7+vaM1MghXfTZGu8+WuDOa/spIMC0JzNN6dyBnbXh3Sv1Qk6hXv7ge+0tr22wfOKYMzVlQrKGpPnubB9a5q7xSV4PMyFBAbpprPkuRZpBm/xk3rjx6EPVGrvElJKSosWLF+umm27S6NGj9corr+j222/Xl19+qfbt23u7VDTh3htTvNpfSFCAbruqr1f7hHvEx4bqT9MyVLxsgla+NkZRHY5eSoqNCdabsy4kyBhUZmonnZPu3X1365WJ6hDO90BrRJj5hQcffFAbN27UwYMHVVdXp507d+rPf/6zOnTo4O0ycRJjhnXTtb86cX4gT3n63gzFdWp6Ii60foHt/XXeWbEK/v9jLfz9GANndAsfPVft23nnayy+c6j+OGWQV/qC6wgzMKznHxqqmI6uzftjtVWr5KeqU85F8XMXZMTq7gnGGRwJtBX9+0Rp5m8anwm4KS35DJCkv888j7MyrVibHDNz7LlNMLZOUcF6e/ZwXXr3JzpS52hWm8amJj+ZhNhQ/eNPF8iPX/FAq5T16wFavWGPlq4obtb6rn4GSNLDt6fpkvNax2Mu0Lg2eWYG5nHRkC56d+4Ij5xqju8cqs9eGq2E2Mafug7A9wIC/PTO3BG6+BzPzMh736QUPcnlpVaPMAPDGze8uz752yXqcob7xrRk9u+k/74+Rok9GCsFtHbBQQFaMn+U7rjGfYP02wX46ZnfZerZ+89mjjEDIMzAFC4cHKfvPrhKt5zmDK6B7f01+97BWvXGZereJdxN1QHwtPbt/LXwsfP0nxcvbvEDJI8ZlByjgpzLdf8tqQQZgyDMwDQ6RgTq1SeH6b+vX6bxl/RUQEDzP4Qiw9vrvkkp2rT4KmXdOoD5ZACDuvjceG1afJWem3G2+nSPcKntOeln6B9/ukBr3hyr/n3c/Nh6eFSbHAAMczt3YGedO7CzrLZqvf9ZkfI32bRus01bdh5Qnf3oQOHQ4AANSIzSoOQYDRnQSVeO6KGQYN4OgBlEhLXXvZP6a+rEFH2xtkxf5JVq3eZ9Kii0ac/+oxMnWixSt7gwDUqK0aDkaF16foLS+xnv2Ws4ik9vmFZsTMgJt1Tb7Q75+Vm4OwloA/z8LLpoSBddNOT/HkPidDpltzsVEGDhEpKJEGbQpnD5CGjbLBaL2rUjxJgNn+wAAMDQCDMAAMDQCDMAAMDQCDMAAMDQGAAMtEIhwQGqXHOTr8twCbe2uxfHANB8HHlAK2SxWBQa0s7XZcCHOAaA5uMyEwAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMDTCDAAAMLQAXxcAAJ7idDq1+6dqrSu0ad1mm3aVVmr/gcOSpIpDR/SPD7fprKQY9evZQf7+/LYDjMridDqdvi4CANypqrpOb320XS+8U6j1W/afcv3O0cG6/eq+uuOavkqIDfNChQDciTADwDQcDqdefKdQD89fpwOHjrjc3s/PoslXJuqZ32WqQ3h7D1QIwBMIMwBMYUfJQU2e+V99mVd22tuK7xyqlx8/TxefG++GygB4GmEGgOGt3bhXo+/65Ph4GHeZ/+BQTbk+2a3bBOB+hBkAhlaw2abht32kg5V1Htk+gQZo/QgzAAxr7/4a9b/qA+3ZX+vRfv7z4sVccgJaMe5FBGBYd/9ptctBJi97nIqXTVBe9rhmt7nt8f+2aEAxAO8wfZix2WzKyspS7969FRQUpISEBE2bNk1VVVWaPHmyLBaLFixY4OsyAbjo/WU79e6nO11uFxsTovjOoYqNCWl2m5KfqnT/s1+73BcA7zD1pHnr16/X6NGjZbVaFRoaquTkZJWWlmrevHnavn279u8/Ov9Eenq6bwsF4BKn06kn/vaNV/t85V/b9OidA9UtjnlogNbGtGdmbDabxo4dK6vVqunTp6usrEwFBQWyWq2aPXu2cnNzlZeXJ4vFogEDBvi6XAAuWPXNT9q4rdyrfTocTr303hav9gmgeUwbZqZOnaqSkhJNmTJFc+fOVXh4+PFlWVlZSktLk91uV48ePRQREeHDSgG46m/v+iZUvPzBVtntDp/0DaBppgwzhYWFysnJUUxMjGbNmtXoOoMGDZIkpaWlnbBs8eLFOueccxQaGqoOHTro3HPP1aZNmzxaM4Dm+8INE+O1xE/7arRlZ4VP+gbQNFOGmezsbDkcDk2cOFFhYY1f3w4ODpZ0YpiZN2+errvuOp133nlasmSJsrOzNXLkSNXU1Hi8bgCnZrVVq3RPtc/6X7d5n8/6BtA4Uw4AXr58uSRp+PDhTa5TUlIiqWGY2b59u2bMmKHnnntOU6ZMOf76pZde6qFKAbjqm0Lfhol1hTbdfHkfn9YAoCFTTpqXkJCgkpISffPNN43eqWS32xUXFyebzabt27erV69ekqSHH35Yf/3rX7Vv3z4FBga6rZ6MjAxZrVa3bQ9oy6rbp6k87KpGl+VljzvlLdexMcEK8PeTvd4hq63pM65WW7UGX7/khNeDD3+rqKr3XSsawCnFxsYqPz+/RW1NeWamqqpKkpq8NJSTkyObzabw8HD17Nnz+Ov/+9//1LdvX7355pv64x//qOLiYvXp00ePPfaYrr/++hbXY7VatXv37ha3B/AzHXtKTdwdfWwOmeYI8Pdr9ro/V1N7hPcz0MqYMszExsaqvLxcBQUFGjp0aINlZWVlmjFjhiRpwIABslgsDZbt3r1bDz74oGbPnq2EhAQtWrRIN9xwgzp16qSRI0e2uB4A7lHdPlxN3ZRttZ16LI0rZ2YaExzUTlFduzanVAAuOJ3vSlNeZpo6darmz5+vhIQEffbZZ0pMTJQk5eXladKkSdqxY4fq6up09913N5j9NzExUdu2bdPixYt1xRVXSDo6OVd6eroiIyP11Vdf+eKvA+BnVuSX6YJbP2px++JlExTfOVQlP1UpYdTbLrd/6LY0PTU1o8X9A3A/U97NlJWVpejoaBUXFyslJUWpqanq06ePMjMz1atXL40YMULSiXcyRUVFSVKDMzAWi0UjR47Ud999572/AIAmDUyK1s9OqHrdoOQY33UOoFGmDDPx8fFauXKlxowZo6CgIBUVFSkqKkoLFy5Ubm6utm7dKunEMJOSktLkNmtrPftUXgDNEx7aXondO/is/0HJ0T7rG0DjTBlmJCkpKUlLly7VoUOHdOjQIX399de64447VFVVpaKiIvn5+al///4N2lx++eWSpE8//fT4aw6HQ8uWLdPgwYO9Wj+Apo29oJtP+k3t05FnMwGtkCkHAJ/Mpk2b5HQ6lZiYqJCQhrdwjh07Vueff77uuOMO7du3T926ddPLL7+sTZs2admyZT6qGMAv/ea6fpr7+kav9/vb65Ia3DQAoHUw7ZmZpmzcePQDsLHHGFgsFi1ZskRXX321HnroIY0bN067du3SRx99dHycDQDfOzMhQpecG+/VPsNC2unGy870ap8Amocw8wuRkZFauHCh9u7dq8OHD2vt2rW6+OKLvVkigGZ4+t4MBQR47yzJH+4+S+Gh7b3WH4DmI8wAMKS0vtF69I6BXunr3IGdNfWGZK/0BcB1bW7MzLHnNgEwvgcnp+nj/xZrzbd7m93m2GR4zZlgT5Iiw9vr1T+cL3//NvfbDzAMU06aB6Dt2FdRq+GTP9LGbU3NC9xyocEBWvbSJRqa1tnt2wbgPvzUAGBo0ZFB+mLRpRoyoJObtxuoz/8+miADGABhBoDhRUcGacWrl+mJu85yy6DgKy/qrk2Lr9bZA85wQ3UAPI3LTABMZcP3+/TAc3n65H+uP9k6+cxIPXpHusZf0ov5ZAADIcwAMKUffjyoF98p1NKvirV114Em1+scHawLB8fqN9cm6YKMWEIMYECEGQCmd+DQEX2zZZ92lVbqcF292gX4KSYySGclRavLGSEEGMDgCDMAAMDQGAAMAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAMjTADAAAM7f8Bu8L8BPrfEHoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.export().draw(\"mpl\")" ] } ], "metadata": { "kernelspec": { "display_name": "qlasskit_310-env", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 2 }