{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "8e479c5c", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:33.140549Z", "iopub.status.busy": "2024-04-26T18:17:33.140229Z", "iopub.status.idle": "2024-04-26T18:17:33.143887Z", "shell.execute_reply": "2024-04-26T18:17:33.143464Z" }, "nbsphinx": "hidden" }, "outputs": [], "source": [ "# Copyright 2024 Keysight Technologies Inc." ] }, { "cell_type": "raw", "id": "586aa272", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "\n", "Example: Running IRB\n", "====================\n", "\n", "This example page demonstrates how to use :py:func:`~trueq.make_irb` method to\n", "estimate the infidelity of a specific gate. This protocol differs from\n", ":doc:`cb` in several ways:\n", "\n", "- It estimates the infidelity of a specific gate (not cycle) composed with gates from\n", " the twirling group, see :doc:`../../guides/error_diagnostics/irb` for more details.\n", " Gate infidelity can then be estimated by taking into account the results of an SRB\n", " experiment.\n", "- IRB uses a different twirling group than CB, Cliffords instead of Paulis by default.\n", " Paulis being a reference group with no entangling operations and therefore usually\n", " higher fidelity, leading to less systematic uncertainty in estimates.\n", "- Typically uses fewer circuits than CB.\n", "- IRB only gives information about specific gates (possibly in the context of being\n", " simultaneously applied), and not about entire cycles like CB.\n", "\n", "We begin by defining some cycles that contain the gates we want to characterize using\n", "IRB. Next we generate IRB circuits for these cycles.\n", "Note that we could perform simultaneous two qubit IRB with a cycle such as:\n", "\n", "``{(1, 2): tq.Gate.cz, (3, 4): tq.Gate.cz}``\n", "\n", "See :py:func:`~trueq.make_irb` for more details." ] }, { "cell_type": "code", "execution_count": 2, "id": "a5e57c82", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:33.145779Z", "iopub.status.busy": "2024-04-26T18:17:33.145487Z", "iopub.status.idle": "2024-04-26T18:17:35.616930Z", "shell.execute_reply": "2024-04-26T18:17:35.616447Z" } }, "outputs": [ { "data": { "text/plain": [ "270" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import trueq as tq\n", "\n", "cycle1 = {1: tq.Gate.h}\n", "cycle2 = {2: tq.Gate.h}\n", "cycle12 = {(1, 2): tq.Gate.cz}\n", "\n", "# Generate a circuit collection to run IRB on the above cycles with 30 random circuits\n", "# for each circuit length in [4, 32, 64]:\n", "n_random_cycles = [4, 32, 64]\n", "circuits = tq.make_irb(cycle1, n_random_cycles)\n", "circuits += tq.make_irb(cycle2, n_random_cycles)\n", "circuits += tq.make_irb(cycle12, n_random_cycles)\n", "len(circuits)" ] }, { "cell_type": "raw", "id": "3cc67a58", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "We are interested in the gate fidelity of the individual gates in the cycles defined\n", "above, e.g. :math:`CZ` alone, so we also need a reference SRB experiment to translate\n", "from the average fidelity of cycles dressed with gates in the twirling group to\n", "fidelity of the undressed gates. Optionally, to tighten the bound on the infidelity\n", "estimate, we also do an XRB experiment. The double nesting ``[[1, 2]]`` is necessary\n", "to characterize the :math:`CZ` gate because just ``[1, 2]`` refers to simultaneous\n", "single-qubit gates." ] }, { "cell_type": "code", "execution_count": 3, "id": "27b70668", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:35.619229Z", "iopub.status.busy": "2024-04-26T18:17:35.618925Z", "iopub.status.idle": "2024-04-26T18:17:35.910889Z", "shell.execute_reply": "2024-04-26T18:17:35.910344Z" } }, "outputs": [], "source": [ "circuits += tq.make_srb([1], n_random_cycles)\n", "circuits += tq.make_srb([2], n_random_cycles)\n", "circuits += tq.make_srb([[1, 2]], n_random_cycles)\n", "circuits += tq.make_xrb([1], n_random_cycles)\n", "circuits += tq.make_xrb([2], n_random_cycles)\n", "circuits += tq.make_xrb([[1, 2]], n_random_cycles)" ] }, { "cell_type": "raw", "id": "c6ada54d", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Create a noisy simulator in lieu of a physical device and populate all circuits\n", "with results." ] }, { "cell_type": "code", "execution_count": 4, "id": "3d05a877", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:35.913384Z", "iopub.status.busy": "2024-04-26T18:17:35.913194Z", "iopub.status.idle": "2024-04-26T18:17:38.896537Z", "shell.execute_reply": "2024-04-26T18:17:38.896020Z" } }, "outputs": [], "source": [ "sim = tq.Simulator().add_depolarizing(0.01).add_overrotation(0.04)\n", "sim.run(circuits)" ] }, { "cell_type": "raw", "id": "2094c625", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Print a summary of the results for the CZ gate:" ] }, { "cell_type": "code", "execution_count": 5, "id": "6f1b012c", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:38.899074Z", "iopub.status.busy": "2024-04-26T18:17:38.898850Z", "iopub.status.idle": "2024-04-26T18:17:38.992212Z", "shell.execute_reply": "2024-04-26T18:17:38.991751Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "
True-Q formatting will not be loaded without trusting this\n", "notebook or rerunning the affected cells. Notebooks can be marked as trusted by clicking\n", "\"File -> Trust Notebook\".
\n", "\n", "\n", "\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "
\n", "
SRB
\n", "
Streamlined Randomized Benchmarking
\n", "
\n", " Cliffords\n", "\n", "
(1,)
\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • labels: (1,)
  • \n", "
  • protocol: SRB
  • \n", "
  • twirl: Cliffords on [1]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", " Cliffords\n", "\n", "
(2,)
\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • labels: (2,)
  • \n", "
  • protocol: SRB
  • \n", "
  • twirl: Cliffords on [2]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", " Cliffords\n", "\n", "
(1, 2)
\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • labels: (1, 2)
  • \n", "
  • protocol: SRB
  • \n", "
  • twirl: Cliffords on [(1, 2)]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " ${e}_{F}$\n", "
\n", "
\n", " The probability of an error acting on the targeted systems during a random gate.\n", "
\n", "
\n", " 8.8e-03 (7.1e-04)\n", "
0.00881774949177988, 0.0007135525897545267
\n", "
\n", " 1.0e-02 (9.9e-04)\n", "
0.010094637642109994, 0.0009925258424418014
\n", "
\n", " 1.6e-02 (1.2e-03)\n", "
0.01633249131920554, 0.0011817696810949604
\n", "
\n", "
\n", " ${p}$\n", "
\n", "
\n", " Decay parameter of the exponential decay $Ap^m$.\n", "
\n", "
\n", " 9.9e-01 (9.5e-04)\n", "
0.9882430006776268, 0.0009514034530060355
\n", "
\n", " 9.9e-01 (1.3e-03)\n", "
0.9865404831438533, 0.001323367789922402
\n", "
\n", " 9.8e-01 (1.3e-03)\n", "
0.9825786759261808, 0.0012605543265012912
\n", "
\n", "
\n", " ${A}$\n", "
\n", "
\n", " SPAM parameter of the exponential decay $Ap^m$.\n", "
\n", "
\n", " 9.5e-01 (2.2e-02)\n", "
0.9496943114342195, 0.022158649177850077
\n", "
\n", " 9.7e-01 (2.4e-02)\n", "
0.9682811612265126, 0.024220009958355576
\n", "
\n", " 1.0e+00 (2.3e-02)\n", "
1.0235410427144767, 0.022704625061970362
\n", "
\n", "
XRB
\n", "
Extended Randomized Benchmarking
\n", "
\n", " Cliffords\n", "\n", "
(1,)
\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • labels: (1,)
  • \n", "
  • protocol: XRB
  • \n", "
  • twirl: Cliffords on [1]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", " Cliffords\n", "\n", "
(2,)
\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • labels: (2,)
  • \n", "
  • protocol: XRB
  • \n", "
  • twirl: Cliffords on [2]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", " Cliffords\n", "\n", "
(1, 2)
\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • labels: (1, 2)
  • \n", "
  • protocol: XRB
  • \n", "
  • twirl: Cliffords on [(1, 2)]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " ${e}_{U}$\n", "
\n", "
\n", " The process infidelity of the coherent error acting on the specifed systems during a random gate.\n", "
\n", "
\n", " 2.5e-03 (9.1e-04)\n", "
0.0025482653409639178, 0.0009130799903846304
\n", "
\n", " 4.5e-03 (1.1e-03)\n", "
0.004455486006029352, 0.001110310956031211
\n", "
\n", " 4.0e-03 (1.2e-03)\n", "
0.004037810987254628, 0.0012461380271334172
\n", "
\n", "
\n", " ${e}_{S}$\n", "
\n", "
\n", " The probability of a stochastic error acting on the specified systems during a random gate.\n", "
\n", "
\n", " 6.3e-03 (5.7e-04)\n", "
0.006269484150815963, 0.0005696997195851557
\n", "
\n", " 5.6e-03 (5.0e-04)\n", "
0.0056391516360806415, 0.0004976774770553055
\n", "
\n", " 1.2e-02 (4.0e-04)\n", "
0.012294680331950913, 0.0003953231633900052
\n", "
\n", "
\n", " ${u}$\n", "
\n", "
\n", " The unitarity of the noise, that is, the average decrease in the purity of an initial state.\n", "
\n", "
\n", " 9.8e-01 (1.5e-03)\n", "
0.9833337841731805, 0.0015096746565933126
\n", "
\n", " 9.9e-01 (1.3e-03)\n", "
0.9850046623453513, 0.0013196559954568763
\n", "
\n", " 9.7e-01 (8.3e-04)\n", "
0.9739325850672672, 0.0008329872884657269
\n", "
\n", "
\n", " ${A}$\n", "
\n", "
\n", " SPAM parameter of the exponential decay $Au^m$.\n", "
\n", "
\n", " 1.0e+00 (3.3e-02)\n", "
1.006206653809557, 0.03295414862137787
\n", "
\n", " 9.9e-01 (3.1e-02)\n", "
0.9857698015908191, 0.031034223527471427
\n", "
\n", " 1.0e+00 (1.9e-02)\n", "
1.0359914930836414, 0.019449275198710116
\n", "
\n", "
IRB
\n", "
Interleaved Randomized Benchmarking
\n", "
\n", " Cliffords\n", "\n", " \n", "

(1,) : Gate.h

\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • cycles: (Cycle((1,): Gate.h),)
  • \n", "
  • labels: (1,)
  • \n", "
  • protocol: IRB
  • \n", "
  • twirl: Cliffords on [1]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", " Cliffords\n", "\n", " \n", "

(2,) : Gate.h

\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • cycles: (Cycle((2,): Gate.h),)
  • \n", "
  • labels: (2,)
  • \n", "
  • protocol: IRB
  • \n", "
  • twirl: Cliffords on [2]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", " Cliffords\n", "\n", " \n", "

(1, 2) : Gate.cz

\n", "
\n", "
\n", "
Key:
\n", "
\n", "
    \n", "
  • cycles: (Cycle((1, 2): Gate.cz),)
  • \n", "
  • labels: (1, 2)
  • \n", "
  • protocol: IRB
  • \n", "
  • twirl: Cliffords on [(1, 2)]
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " ${e}_{F}$\n", "
\n", "
\n", " The probability of an error acting on the targeted systems during a dressed gate of interest.\n", "
\n", "
\n", " 1.8e-02 (1.8e-03)\n", "
0.018386882900838702, 0.0018077301395741684
\n", "
\n", " 2.1e-02 (2.4e-03)\n", "
0.02074658647365038, 0.002427310264746314
\n", "
\n", " 3.5e-02 (5.0e-03)\n", "
0.03479625392956192, 0.0049757600310042
\n", "
\n", "
\n", " ${e}_{IU}$\n", "
\n", "
\n", " An upper bound on the inferred value of $e_F$ that accounts for systematic errors in the interleaved estimate.\n", "
\n", "
\n", " 2.6e-02 (4.4e-03)\n", "
0.02586904417929753, 0.00436243853059833
\n", "
\n", " 3.6e-02 (5.1e-03)\n", "
0.0360211894560529, 0.005143846364291683
\n", "
\n", " 4.6e-02 (8.4e-03)\n", "
0.045946712207948805, 0.00835926458832259
\n", "
\n", "
\n", " ${e}_{IL}$\n", "
\n", "
\n", " A lower bound on the inferred value of $e_F$ that accounts for systematic errors in the interleaved estimate.\n", "
\n", "
\n", " 3.6e-03 (1.4e-03)\n", "
0.003599679840758152, 0.0013600618938340368
\n", "
\n", " 3.2e-03 (1.4e-03)\n", "
0.003197877382540598, 0.0014210160853860843
\n", "
\n", " 7.6e-03 (3.4e-03)\n", "
0.007618282603816633, 0.0033666587807032987
\n", "
\n", "
\n", " ${p}$\n", "
\n", "
\n", " Decay parameter of the exponential decay $Ap^m$.\n", "
\n", "
\n", " 9.8e-01 (2.4e-03)\n", "
0.9754841561322151, 0.002410306852765558
\n", "
\n", " 9.7e-01 (3.2e-03)\n", "
0.9723378847017995, 0.003236413686328419
\n", "
\n", " 9.6e-01 (5.3e-03)\n", "
0.9628839958084673, 0.00530747736640448
\n", "
\n", "
\n", " ${A}$\n", "
\n", "
\n", " SPAM parameter of the exponential decay $Ap^m$.\n", "
\n", "
\n", " 9.5e-01 (4.0e-02)\n", "
0.9451646389604796, 0.03950903684857499
\n", "
\n", " 9.6e-01 (5.2e-02)\n", "
0.960563962171888, 0.05215361153989234
\n", "
\n", " 1.0e+00 (8.7e-02)\n", "
1.0396388468156559, 0.08709345791149323
\n", "
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "EstimateCollection(9)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuits.fit()" ] }, { "cell_type": "raw", "id": "5b9f1626", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Plot a summary of information:" ] }, { "cell_type": "code", "execution_count": 6, "id": "f90cf6c6", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:38.994413Z", "iopub.status.busy": "2024-04-26T18:17:38.994109Z", "iopub.status.idle": "2024-04-26T18:17:39.473554Z", "shell.execute_reply": "2024-04-26T18:17:39.473080Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB8f0lEQVR4nO3deVxU9f7H8feZAdnBjU1FcU1xX9C0mysuWRZZbqmJpnYTtbIy7XfLlltmt0Ur1Lrlkml1zTI1o9SbllrikprhkuaWgmCkiKQsM78/uIyOgCIwDsvr+XjwaM73fM85n++Ap/nM93u+X8NqtVoFAAAAAABKnMnZAQAAAAAAUF6RdAMAAAAA4CAk3QAAAAAAOAhJNwAAAAAADkLSDQAAAACAg5B0AwAAAADgICTdAAAAAAA4CEk3AAAAAAAOQtINAAAAAICDkHQDAAAAAOAgJN0AAJSwBQsWyDAMbdu2zVb27LPPyjAM24+rq6tCQ0M1ceJEnTlzJs85QkND7eq7u7urYcOGeuKJJ5SSklKoOI4cOaKRI0eqfv36cnd3V1BQkDp37qxp06aVVFMBAMA1uDg7AAAAKpI5c+bI29tb58+f17p16/TWW29px44d2rhxY566rVq10mOPPSZJunDhgrZv366ZM2dqw4YNiouLu+p1Dh48qPDwcHl4eGjUqFEKDQ1VQkKCduzYoRkzZui5555zSPsAAIA9km4AAG6ge++9V9WrV5ckPfjggxo8eLA++eQTxcXFqX379nZ1a9asqWHDhtm2R48eLW9vb7366qv69ddf1bBhwwKv88YbbygtLU07d+5UnTp17PYlJSWVYIvKjvT0dHl6ejo7DABABcPwcgAAnOjWW2+VJB06dKhQ9YOCgiRJLi5X/9780KFDqlWrVp6EW5ICAgLstg3D0LPPPpunXmhoqKKiomzbucPmN27cqIkTJ8rf31+VK1fWgw8+qIyMDJ05c0b333+/qlSpoipVqmjy5MmyWq22448cOSLDMPTqq68qJiZG9erVk6enp3r16qXjx4/LarXqhRdeUK1ateTh4aG77rorz1D6L774Qrfffrtq1KghNzc31a9fXy+88IKys7Pt6nXt2lXNmjXT9u3b1blzZ3l6euqpp57SiBEjVL16dWVmZuZpb69evXTTTTdd9X0FAOB60dMNAIATHTlyRJJUpUqVPPsyMzN1+vRpSTnDy3/66Se9/vrr6ty5s+rWrXvV89apU0dr167Vf//7X3Xv3r1EY54wYYKCgoL03HPP6ccff9S7776rypUra/Pmzapdu7ZeeuklrV69Wv/617/UrFkz3X///XbHL168WBkZGZowYYJSUlL0yiuvaODAgerevbvWr1+vJ598UgcPHtRbb72lxx9/XPPmzbMdu2DBAnl7e2vSpEny9vbWf//7Xz3zzDNKTU3Vv/71L7vr/PHHH7rttts0ePBgDRs2TIGBgfLy8tIHH3ygr7/+WnfccYetbmJiov773//yvDsAoMSRdAMAcAPl9tyeP39e//3vfxUTEyN/f3917tw5T91vvvlG/v7+dmW33HKLPvvss2teZ+LEiVq0aJF69OihVq1aqUuXLurWrZt69uxZ7CHWgYGBWr16tQzD0Lhx43Tw4EH961//0oMPPqg5c+ZIksaOHavQ0FDNmzcvT9J94sQJ/frrr/Lz85MkZWdna/r06frrr7+0bds2Wy9+cnKyFi9erDlz5sjNzU2StGTJEnl4eNjO9fe//11///vfNXv2bP3zn/+01ZNyEum5c+fqwQcftJVZLBbVqlVLH374oV3S/dFHH8lisdgN5wcAoCQwvBwAgBvopptukr+/v0JDQzVq1Cg1aNBAX331Vb6JcIcOHbRmzRqtWbNGq1at0osvvqhffvlFd955p/7666+rXqdp06bauXOnhg0bpiNHjmjWrFmKjIxUYGCg/v3vfxerDQ888IAMw7CL02q16oEHHrCVmc1mtWvXTr/99lue4wcMGGBLuHOPl6Rhw4bZDZvv0KGDMjIydOLECVvZ5Qn3uXPndPr0ad16661KT0/Xvn377K7j5uamkSNH2pWZTCYNHTpUK1as0Llz52zlixcvVqdOna45ggAAgOtF0g0AwA20bNkyrVmzRkuWLNHNN9+spKQku0TyctWrV1dERIQiIiJ0++2366mnntJ7772nzZs367333rvmtRo1aqRFixbp9OnT2r17t1566SW5uLho7NixWrt2bZHbULt2bbvt3AQ6JCQkT/mff/5ZrOMl2Z3jl19+0d133y0/Pz/5+vrK39/f1jt99uxZu+Nr1qypSpUq5bn+/fffr7/++kuff/65JGn//v3avn27hg8fXkCLAQAoOpJuAABuoM6dOysiIkJDhgzRmjVr5OHhoaFDh8pisRTq+B49ekiSvvvuu0Jf02w2q3nz5po6daot0Vy8ePE1j7tycrLLz1fY8ssnUivK8Zef48yZM+rSpYt27dql559/XitXrtSaNWs0Y8YMScrzHhb0ZUZYWJjatm2rDz/8UJL04YcfqlKlSho4cGC+9QEAKA6e6QYAwEm8vb01bdo0jRw5Uv/5z380ePDgax6TlZUlSUpLSyvSNdu1aydJSkhIsJVVqVJFZ86csauXkZFhV6c0WL9+vf744w999tlnds/AHz58+LrPdf/992vSpElKSEjQkiVLdPvtt+c7mR0AAMVFTzcAAE40dOhQ1apVy9Zbey0rV66UJLVs2fKq9b7//vt8l8VavXq1JNktjVW/fv08PefvvvtugT3dzpLbE35573lGRoZmz5593ecaMmSIDMPQww8/rN9++40J1AAADkNPNwAATuTq6qqHH35YTzzxhGJjY9WnTx/bvhMnTtiGQGdkZGjXrl165513VL16dU2YMOGq550xY4a2b9+u/v37q0WLFpKkHTt26IMPPlDVqlX1yCOP2OqOHj1af//733XPPfeoZ8+e2rVrl77++mtVr1695BtcDJ06dVKVKlU0YsQITZw4UYZhaNGiRfkOYb8Wf39/9enTR0uXLlXlypV1++23OyBiAABIugEAcLqxY8fqn//8p15++WW7pHvnzp22yb1MJpOqV6+u/v3764UXXlDNmjWves6nnnpKS5Ys0YYNG7R48WKlp6crODhYgwcP1tNPP203S/eYMWN0+PBhvf/++4qNjdWtt96qNWvW2J4fLy2qVaumVatW6bHHHtM//vEPValSRcOGDVOPHj3Uu3fv6z7f/fffr1WrVmngwIF2S40BAFCSDGtRvh4GAAAo47744gtFRkbqu+++06233urscAAA5RRJNwAAqJDuuOMO7d27VwcPHrRbdxwAgJLE8HIAAFChfPzxx9q9e7e+/PJLzZo1i4QbAOBQ9HQDAIAKxTAMeXt7a9CgQZo7d65cXOiDAAA4Dv+XAQAAFQr9DQCAG4l1ugEAAAAAcBCSbgAAAAAAHITh5ddgsVh08uRJ+fj4MNEKAAAAAEBSzuNK586dU40aNWQyFdyfTdJdgJiYGMXExCgjI0OHDh1ydjgAAAAAgFLo+PHjqlWrVoH7mb38Gs6ePavKlSvr+PHj8vX1dXY4AAAAAIBSIDU1VSEhITpz5oz8/PwKrEdP9zXkDin39fUl6QYAAAAA2LnWY8hMpAYAAAAAgIOQdAMAAAAA4CAk3QAAAAAAOAhJNwAAAAAADkLSDQAAAACAg5B0AwAAAADgICTdBYiJiVFYWJjCw8OdHQoAAAAAoIwyrFar1dlBlGapqany8/PT2bNnWacbAAAAACCp8LkiPd0AAAAAADgISTcAAAAAAA5C0g0AAAAAgIOQdAMAAAAA4CAk3QAAAAAAOIiLswMAAAAAgKJKTk9W8l/Jecr9Pfzl7+nvhIgAeyTdAAAAAMqspQeWas6uOXnKH2r5kMa1GueEiAB7JN0AAAAAyqwBjQbo5uCbNSJ2hCRpYZ+Fcndxl78HvdwoHUi6AQAAAJRZ/p7+8nL1sm03rtpYnq6eTowIsMdEagWIiYlRWFiYwsPDnR0KAAAAAKCMIukuQHR0tOLj47V161ZnhwIAAAAAKKNIugEAAAAAcBCSbgAAAAAAHISkGwAAAAAAByHpBgAAAADAQUi6AQAAAABwEJJuAAAAAAAchKQbAAAAAAAHIekGAAAAAMBBSLoBAAAAAHAQkm4AAAAAAByEpLsAMTExCgsLU3h4uLNDAQAAAACUUSTdBYiOjlZ8fLy2bt3q7FAAAAAAXEW2Jdv2evup7XbbgLORdAMAAAAos9YeXavIFZG27XHrxqn3st5ae3St84ICLkPSDQAAAKBMWnt0rSatn6Sk9CS78qT0JE1aP4nEG6UCSTcAAAAAp7FarcrMzizw53JZlixb+YXMC5oeN11WWfOe839lM+JmMNQcTufi7AAAAChvktOTlfxXcp5yfw9/+Xv6OyEiACidrFarPj/4uRLPJ+a738XkorEtxtq2Y4/E6ljqMUnSibQTeXq47c4tqxLTE7UjaYfCg5gcGc5D0g0AQAlbemCp5uyak6f8oZYPaVyrcU6ICABKpyxrlkxG0QbfpmemF6pecnreL0GBG4mkGwCAEjag0QDdHHyzRsSOkCQt7LNQ7i7u8veglxsALudqclVkg8g8w8gL0ie0j6zWnKHj2xK3ae2xaz+zzQgj58tMSlJWct4vP1z8/eUaEOCEiG4skm4AAEqYv6e/vFy9bNuNqzaWp6unEyMCgNLN1exaqHoupkvpS/vg9gr0DFRSelK+z3UbMhToGag2AW1KLE4UzZlP/qPTMTF5yqtHR8t/wngnRHRjMZEaAAAAgDLHbDJrSvsp+e4zZEiSnmz/pMwm840MC/moPGig6iz+0LZdZ/GHCl32qSoPGujEqG4ckm4AAAAATpGZnal5e+Zp3p55hR5ifrmIOhF6vevrCvC0H6Ic6Bmo17u+rog6ESUVKorBNSBA7k2a2LbdmzSRR9OmFWJoucTwcgAAAABOdCHrQrGOj6gToQ5BHdTp406SpNk9ZqtTjU70cKPUoKcbAAAAQJl2eYLdNrAtCTdKFZJuAAAAAAAchKQbAAAAAAAHIekuQExMjMLCwhQeHu7sUAAAAAAAZRRJdwGio6MVHx+vrVu3OjsUAAAAAEAZxezlAAAAAJzDkPw9/W2vgfKIpBsAAAfItmTbXm8/tZ3lawAgH64mVw1oNMDZYQAOxfByAABK2NqjaxW5ItK2PW7dOPVe1ltrj651XlAAAMApSLoBAChBa4+u1aT1k5SUnmRXnpSepEnrJ5F4AwAqJGv2pRFg6du22W2XdyTdAABcwWq1KjM7s8Cfy2VZsmzlFzIvaHrcdFllzXvO/5XNiJthN/QcACqyTEumFsUv0qL4Rcq0ZF77AJRJqd98o99uv8O2fXzsgzrYI0Kp33zjxKhuHJ7pBgDgMlarVZ8f/FyJ5xPz3e9ictHYFmNt27FHYnUs9Zgk6UTaiTw93HbnllWJ6YnakbRD4UEsSQkAskrnMs7ZXqP8Sf3mG514+BHJav8Lzjp1Kqd81kz59urllNhuFHq6AQC4TJY1SyajaP97TM9ML1S95PTkIp0fAICyxJqdrVMvTc+TcOfszCk79dL0cj/UnJ5uAAAu42pyVWSDyDzDyAvSJ7SPrP/74LAtcZvWHrv2M9u25XEAACjH0rdtV1Zi/iPHJElWq7ISE5W+bbu8OrS/cYHdYCTdFURyerKS/8rbs+Lv4c+HPwDIh6vZtVD1XEyX/lfaPri9Aj0DlZSelO9z3YYMBXoGqk1AmxKLEwCA0ioruXAjuwpbr6wi6a4glh5Yqjm75uQpf6jlQxrXapwTIgKA8sdsMmtK+ymatH5Snn2GDEnSk+2fZL1uAECF4OJfuM69wtYrq3imu4IY0GiAFvZZaNte2GehPrnjEw1oNMCJUQFA6ZOZnal5e+Zp3p55hR5ifrmIOhF6vevrCvAMsCsP9AzU611fV0SdiJIKFQCAUs2zXVu5BAVJhpF/BcOQS1CQPNu1vbGB3WD0dFcQ/p7+8nL1sm03rtpYnq6eTowIAEqvC1kXinV8RJ0IdQjqoE4fd5Ikze4xW51qdKKHGwCuZEhV3KvYXqN8McxmBT41NWeWckP2M9T/LxEPfGqqDHP5/v8jPd0AADjA5Ql228C2JNwAkA9Xk6uGNB6iIY2HyNVUuLk0ULb49uqlmrNmysXffgSYS2CgalaA5cIkeroBAAAAAA7k26uXvDp21IHwnBnKQ959R1633FLue7hz0dMNAAAAAHCoyxNsz3btKkzCLdHTDQAAAMBJMi2Z+vTAp5KkexvdyxBzlEsk3QAAAACcwyr9eeFP22ugPCLpBgDgckbOig+5rwEAAIqDpLsAMTExiomJUXZ2trNDAQDcQK4mVw1oNMDZYQAACik5PVnHzx23be9L2Sd3F3f5e/hf+hIVcCImUitAdHS04uPjtXXrVmeHAgAAAKAASw8s1YjYEbbtEbEjNGjVIC09sNSJUQGX0NMNAAAAoMwa0GiAuoZ0zVPu70EvN0oHkm4AAC6TacnUx/s+liQNbjyYmXQBoJTz92QYOUo3km4AAC5nlc5lnLO9BgA4kCH5VPKxvQbKI5LuCiTbcmlSuO2ntqtTjU4ymyrOovQAAAAoXVxNrhoeNtzZYQAOxURqFcTao2sVuSLStj1u3Tj1XtZba4+udV5QAAAAAFDOkXRXAGuPrtWk9ZOUlJ5kV56UnqRJ6yeReAMAAACAg5B0lxFWq1WZ2ZkF/lwuy5JlK7+QeUHT46bLms+DibllM+Jm2A09BwAAAG6ETEumlh5YqqUHlirTknntA4AyiGe6ywCr1arPD36uxPOJ+e53MblobIuxtu3YI7E6lnpMknQi7USeHm67c8uqxPRE7UjaofCg8JINHAAqqOT0ZB0/d9y2vS9ln9xd3OXvwQy7AGDHmnPPzH0NlEck3WVAljVLJqNogxLSM9MLVc92swOAis6QqrhXsb0uiqUHlmrOrjm27RGxIyRJD7V8SONajStuhCgBmUlJykrO+/8+F39/uQYEOCEiAEB5RdJdBriaXBXZIDLPMPKC9AntI6s156vCbYnbtPbYtZ/ZpucFAHK4mlw1pPGQYp1jQKMB6hrSNU+5vwf32tLizCf/0emYmDzl1aOj5T9hvBMiAoDyKzMpSZnHL40Au7B3rwx39wrzRSdJdxnianYtVD0X06Vfa/vg9gr0DFRSelK+z3UbMhToGag2AW1KLE4AqOj8PRlGXtpVHjRQXp066ujQYZKkOos/tH0ABACUrCu/6My991aULzpJuss5s8msKe2naNL6SXn2Gf8bN/lk+ydZrxsAUKG4BgTI7O1t23Zv0kQmT08nRgQA5VflQQPl3b1bnvKK8kUnSXcZkJmdqUV7F0mShjcZXuge71wRdSL0etfXNT1uut2kaoGegXqy/ZOKqBNRovECQFmWacnUpwc+lSTd2+heuZqu754LAADsuQYEVIhh5AUh6S4jLmRdKNbxEXUi1CGogzp93EmSNLvHbHWq0YkebgC4klX688KfttcAAMdyd3F3dgiAQ5F0VyCXJ9htA9uScAMAAMCpXM2uGtVslLPDAByqaOtQAQAAAACAayLpBgAAAADAQRheDgAAAMApMi2Z+vK3LyVJt9e7nckrUS6RdAOlRGZSkrKSk/OUu/j7V+jZHgHAUazZ2bbX6du2yeuWW2SYme8EuKGs0sm0k7bXQHlE0l0WGJK/p7/tNcqnM5/8R6djYvKUV4+Olv+E8U6ICKigDMmnko/tNcqn1G++0al/vmjbPj72QbkEBSnwqany7dXLiZEBAMobku4ywNXkqgGNBjg7DDhY5UED5dWpo44OHSZJqrP4Qxnu7nLx93dyZEDF4mpy1fCw4c4OAw6U+s03OvHwI5LVvlst69SpnPJZM0m8AQAlhqQbKCVcAwJk9va2bbs3aSKTp6cTIwKA8seana1TL03Pk3Dn7LRKhqFTL02XT48eDDUHAJQIZi8HAAAVRvq27cpKTCy4gtWqrMREpW/bfuOCAgCUa/R0lwGZlkx9vO9jSdLgxoOZ1REAHCjTkqnlB5dLkiIbRHLPLWfym7CyOPUAALgWku6ywCqdyzhnew0AcCCrlJyebHuN8qWw82QwnwZw47iYSElQvvEXXoCYmBjFxMQo+7LlRAAAQNnm2a6tXIKClHXqVP7PdRuGXAID5dmu7Y0PDqiAXM2uGttirLPDAByKZ7oLEB0drfj4eG3dutXZoaACuXLNWCtf+gBAiTLMZgU+NfV/G1fuzCkIfGoqk6gBAEoMSTdQSqR+841+u/0O2/bxsQ/qYI8IpX7zjROjAoDyx7dXL9WcNVMu/gF25S6BgarJcmEAgBJG0g2UArlrxmYlJdmV564ZS+INACXLt1cv1ftylW075N131GDdWhJu4AbLsmRp1W+rtOq3VcqyZDk7HMAheKYbcDLWjAUA57j8nurZrh33WMAJrFarjqUes70u884l5vxcySco5wcVEkl3WWBIVdyr2F6jfLmeNWO9OrS/cYEBFZi7i7uzQwAAlEXb5ksbXs5b3mWK1G3qjY8HpQJJdxnganLVkMZDnB0GHIQ1Y4HSxdXsqlHNRjk7DABAWdRupFS/qzSvT872qFjJxYNe7gqOpBtwMtaMBQAAKCd8giQ3n0vbQS2kSl7OiwelAhOpAU6Wu2Zs7lI1eRiGXIKCWDMWAAAAKINIusuATEumPtr3kT7a95EyLZlFOkdyerL2peyzbe9L2af4P+KVnM6QZWdjzVigdMm0ZGr5weVafnB5ke+5AIAKzJJ96fXRzfbbqJBIussCq/TnhT/154U/pSJO6rj0wFKNiB1h2x4RO0KDVg3S0gNLSyhIFAdrxgKliFU6mXZSJ9NOFvmeCwCooOJXSDGXTXy7+F5pZrOcclRYPNNdQQxoNEBdQ7rmKff34Dnh0sK3Vy95deyoA+E5N+qQd9+R1y230MMNAADKLVezq8a1GufsMEpG/ArpP/crzze2qQk55QM/kMLudEpocC6S7grC39Nf/p4k2KUda8YCAACUQZZsKfZJ5T9EyirJkGKnSI1vl0x8vqtoGF4OAAAAAMVxdLOUevIqFaxS6omceqhw6OkGAAAA4BRZliytPbZWkhRRO0IupjKanqSdKtl6KFfK6F81AABA0WUmJSnz+HHb9oW9e2W4u8vF31+uAQFXORJASbJarfrtzG85r0PK8OyV3oElWw/lCsPLywJD8qnkI59KPnmXlAIAlDgXk0vZ7W1BoZz55D86OnSYbfvo0GE6cs+9OvPJf5wYFYAyq04nybeGCv6wbki+NXPqocLhE0UZ4Gpy1fCw4c4OAwAqBFezq8a2GOvsMOBglQcNlHf3bnnKXfyZdBRAEZjMUp8Z/5u93JD9hGr/S8T7vMwkahUUSTcAAKhwXAMCGEYOoGSF3ZmzLNhXk6VzCZfKfWvkJNwsF1ZhkXQDAAAAQEkIu1Oq11V6OSRne+inUv3u9HBXcCTdZUCmJVPLDy6XJEU2iJSrydW5AcEhmNQHKB2yLFmKPRIrSeoT2odnuwEA1+fyBLtOJxJukHSXCVYpOT3Z9hrl05lP/qPTMTG27dwJfqpHR8t/wnhnhQVUOFarVcdSj9leAwAAFAdJN1BKMKkPAACoaFxMLhrTfIztNVAe8ZcNlBJM6gMAACoawzDkai7eo5PJ6clK/is5T7m/h7/8Pem8gPORdAMAAAAos5YeWKo5u+bkKX+o5UMa12rcjQ3mXKL05+FL24m7JRcPySco5wcVEkk3AAAAAKfIsmRpw+8bJEldanUp0hDzAY0G6ObgmzUidoQkaWGfhXJ3cZe/hxN6ubfNlza8fGl7Xp+c/3aZInWbeuPjQalA0g0AAADAKaxWq/an7Jckda7ZuUjn8Pf0l5erl227cdXG8nT1LJH4rlu7kdJNt+Utp5e7QiPpLiPcXdydHQIAAACAq2EYOfJB0l0GuJpdNarZKGeHAQAVgqvZ9cY/AwgAQAlLSr2ghLMX9MvJs/ozPVNVPF3VtIafgv3cFeBLh96NRNINAAAAAOXMcyvj9eXPCXnKb28erJihbZwQUcVlcnYAAAAAAICSE7snId+EW5K+/DlBsXvy3wfHIOkuAzItmVp+cLmWH1yuTEums8MBgHIty5Kl2COxij0SqyxLlrPDAQDgumRbrHpuZXyB+w3l9IJnW6w3LqgKjuHlZYFVOpl20vYaAOA4VqtVv535Led1CDddAEDZEnc4RQlnLxS43yop4ewFxR1OUcf61W5cYBUYSTcAAAAAp3AxuSiqaZTtNYov6VzBCXdR6qH4+MsGAKA8O5eY83MllrUBUAoYhuG8NbXLqQCfws1MXth6KD6SbgAAyrNt86UNL+ct7zJF6jb1xscDAHCo9nWrKtjPXYlnL+T7ZKohKcjPXe3rVr3RoVVYTKQGAEB51m6kNCr20vaoWGnshpxyAHCyLEuWvvv9O333+3dMXllCzCZD0/qFScpJsC+Xuz2tX5jMpiv3wlFIugEAKM98gqSgFpe2g1pINVoxtBxAqWC1WrXn9B7tOb1HViuTV5aUPs2C9XL/5qrqVcmuvJp3Jb3cv7n6NAt2UmQVE8PLywgmlgAAAABQWCfPXtAf5zPsyk6nZejkVWY2h2OQyZUBrmZXjW0x1tlhAECF4GJy0ZjmY2yvAQAoi4Z2qK2eYYF5ygN83JwQTcXGpwkAAC5jGIZcza7ODgMAgGIJ8HVXgC8zlJcG5f6Z7uPHj6tr164KCwtTixYttHTpUmeHBAAAAACoIMp9T7eLi4tmzpypVq1aKTExUW3btlXfvn3l5eXl7NAKLcuSpdgjOTPP9gntw3BHAHCgLEuWNvy+QZLUpVaX8nHPtWRfen10s1S/u2QyOy8eAAAqkHLf0x0cHKxWrVpJkoKCglS9enWlpKQ4N6jrZLVadSz1mI6lHmNWRwBwMKvVqv0p+7U/ZX/5uOfGr5Bi2l/aXnyvNLNZTjkAAHA4pyfd3333nfr166caNWrIMAwtX748T52YmBiFhobK3d1dHTp0UFxcXJGutX37dmVnZyskJKSYUQMAUAbEr5D+c790LsG+PDUhp5zEG4CTuZhcNCxsmIaFDSsfI4uAfDj9L/v8+fNq2bKlRo0apf79++fZ/8knn2jSpEmaO3euOnTooJkzZ6p3797av3+/AgICJEmtWrVSVlZWnmO/+eYb1ahRQ5KUkpKi+++/X//+978d2yBc27nEnJ8r+QSxbiwAlBRLthT7pKT8euutkgwpdorU+HaGmgNwGsMw5FvJ19lhAA7l9KT7tttu02233Vbg/tdff11jxozRyJEjJUlz587Vl19+qXnz5mnKlCmSpJ07d171GhcvXlRkZKSmTJmiTp06XbPuxYsXbdupqamSpOzsbGVn5zwTZxiGTCaTLBaL3dDD3PLcetcqN5lMMgwj33JJslgstmtbLBYZhiGr1ZqnvtlsltVqtdW/vPzKGAsqv5FtMra+L9N3r+hKls6TZe0ypUy2qTDltIk20aay0abcc1osFmVnZ8v0v0FhZa5NhzfKnHpSBbNKqSeko5uVXdv+/42ltk3l/G+PNtEm2lS8NuWyWCyyWCzlok3l8fdUntpUWE5Puq8mIyND27dv19SpU21lJpNJERER+uGHHwp1DqvVqqioKHXv3l3Dhw+/Zv3p06frueeey1O+e/dueXt7S5KqVaum0NBQHTt2TH/88YetTnBwsGrUqKHffvvNlqxLUp06dVS9enXt27dPFy5cWoy+QYMG8vPz0+7du+1+4WFhYapUqZLty4QsS5YSkxMVFBSkCxcu6Nf9v9q9H61bt1ZqaqoOHjxoK3d3d1fTpk2VkpKio0eP2sp9fX3VsGFDJSYmKiHh0nDDG9kmF7dwuXWapcabH5YkXbjvC/12PEGZbtWUtXNnmWzT5Vq1aqWMjAzFx8eX6d8TbaJNFbVN1QOrS5L+/PNP7dq1yzbcsay1yfLLFtVTIaSdKjNtKu9/e7SJNlXENv159k+t3Lky53jvMHl6eBapTb///rutbPfu3QqtGcrviTY5vE1Vq1ZVYRjWUjRLjGEY+vzzzxUZGSlJOnnypGrWrKnNmzerY8eOtnqTJ0/Whg0btGXLlmuec+PGjercubNatGhhK1u0aJGaN2+eb/38erpDQkKUkpIiX19fW5w38puazOxMvbfnPRmGoTHNx8hs2A8DLJPfPmWcl3lGzrP11qknZHHxKPttukY5baJNtKlstCnLkqX3f3lfFotFo5uNtq3ZXebadPh7mRfdqWsasYqebtpEm2iT09qUkZWhd3e/K0m2e25R2pR2MU0dP87JF34Y/IM8XT35PdEmh7cpLS1Nfn5+Onv2rC1XzE+p7ukuCX/729/yvJlX4+bmJjc3tzzlZrNZZrN9spv7S8yvbkmWW2SxXcswjHzrF1ReUIzXW17SbdJl+8tNmwpRTptoU0nFeL3ltKnw5RZZbOX53fvLTJvq/k3yrZEzaVq+z3UbOfvrdJK5gGe6S12bHBTj9ZbTJtpUUjFeb3l5bVNuPJffc4vTJpPJZHdOR8VeUHl5/T3RpvzLC6NUJ93Vq1eX2WzWqVOn7MpPnTqloKCKM+GWq9lV41qNc3YYAFAhuJhcFNU0yva6zDKZpT4zcmYplyH7xPt/z6H1eVlMogYAgGMVPV2/ASpVqqS2bdtq3bp1tjKLxaJ169bZDTdHGWS5bEjI0c322wDgRIZhyNPVU56untc1SUqpFHanNPCDvCtD+NbIKQ8rxPBzAABQLE7/Cj8tLc3uAfbDhw9r586dqlq1qmrXrq1JkyZpxIgRateundq3b6+ZM2fq/PnzttnMUQbFr5C+mnxpe/G9OR8A+8zgAyAAlLSwO6V6XaWXc+bR0NBPpfrd6eEGAOAGcXrSvW3bNnXr1s22PWnSJEnSiBEjtGDBAg0aNEjJycl65plnlJiYqFatWik2NlaBgYHOCvmGy7Jkae2xtZKkiNoRZXu4Y/yK/w11vOL5wtSEnHJ6XgA4WZYlS5tPbpYkdarRqWzfc3NdnmDX6UTCDQDADeT0TxJdu3bNMzvclcaPH6/x48ffoIhKH6vVqt/O/JbzOqTUTDZ//SzZUuyTyn9CH6skQ4qdIjW+nQ+EAJzGarVqz+k9kqSOwTzKBAAAisfpSXdpFRMTo5iYmDzT0aMYjm6WUk9epYJVSj2RU6/urTcsLAAAADiHi8lFg24aZHsNlEeleiI1Z4qOjlZ8fLy2bt3q7FDKj7RT165zPfUAAABQphmGoWoe1VTNo1rZn7wSKABJN24c70I+h1/YegAAAABQypF048ap0ylnlnIV9C2mIfnWzKkHAACAci/bkq2tiVu1NXGrsllCFuUUSTduHJM5Z1kwSXkT7/9t93mZSdQAAAAqCIvVYku6LVaLs8MBHIKkGzdW2J05y4L5BNmX+9ZguTAAcIRziVLi7kvbibulkztzygEAgMMxRWAZ4GJy0ZjmY2yvy7ywO6V6XaWXQ3K2h34q1e9ODzeAUsHF5KJhYcNsr8u8bfOlDS9f2p7XJ+e/XaZI3aY6JyYAKGGXD03ffmq7OtXoJDOfLVFKlINPE+WfYRhyNbs6O4ySdflNsE4nEm4ApYZhGPKt5OvsMEpOu5HSTbflLb9yxBEAlFFrj67V9Ljptu1x68Yp0DNQU9pPUUSdCCdGBuQg6S4A63QDAMoFnyASbADl1tqjazVp/SRZZbUrT0pP0qT1k/R619dJvOF0PNNdgNK0TneWJUvrjq3TumPrlGXJcnY4AFCuZVuytfnEZm0+sZmZdAHACbIt2crMzizwJ3fCtWxLtl6OezlPwi3JVjYjbgb3cjgdPd1lgNVq1f6U/ZKkzjU7OzkaACjfLFaLdibvlCSFB4XLLB5/AQBHq1e5nu317tO79cPJHwqse1eDu1TTu6Z2JO3QqfRTBdazyqrE9ETtSNqh8KDwEo0XuB70dAMAAABwCheTi4K9gtXav/V1z2GUnJ5covUARylST3doaKhGjRqlqKgo1a5du6RjQnl3LlH68/Cl7cTdkouHU547TEq9oKRzF/OUB/i4KcDX/YbGAgAAUNEYhqHIBpF2Q8RbVG+hZtWaFXhM7qzk/p7+hbpGYesBjlKkpPuRRx7RggUL9Pzzz6tbt2564IEHdPfdd8vNza2k40N5VIqWr1m85Zhmrfs1T/nDPRrq0Z6NbmgsAAAAFZFhGDJk2LbNJnOhHu1pE9BGgZ6BSkpPyve5bkOGAj0D1SagTYnGC1yvIg0vf+SRR7Rz507FxcWpSZMmmjBhgoKDgzV+/Hjt2LGjpGNEedNupDR2Q96fdiNveChDO9TWp3/vaNv+9O8dtWrC3zS0AyM4AAAASjOzyawp7afkuy83iX+y/ZOs1w2nK9Yz3W3atNGbb76pkydPatq0aXrvvfcUHh6uVq1aad68ebJa837jBMgnSKrRKu+PE5a0CfB1V1iNS+vxhtXwVbOafgwtBwAAKAMi6kTo9a6vK8AzwK480DOQ5cJQahRr9vLMzEx9/vnnmj9/vtasWaObb75ZDzzwgH7//Xc99dRTWrt2rZYsWVJSsQIAAACAnYg6EeoQ1EGdPu4kSZrdY7Y61ehEDzdKjSIl3Tt27ND8+fP10UcfyWQy6f7779cbb7yhxo0b2+rcfffdCg8vu1Pzx8TEKCYmRtnZzl/Xz8XkoqimUbbXAADHcTG5aNBNg2yvAQCl3+UJdtvAtiTcKFWK9GkiPDxcPXv21Jw5cxQZGSlX17zT+9etW1eDBw8udoDOEh0drejoaKWmpsrPz8+psRiGIU9XT6fGAAAVhWEYquZRzdlhAACAcqJISfdvv/2mOnXqXLWOl5eX5s+fX6SggBsp23Jp7oG4wym6taG/zCbjKkcAAIqCZRoBABVRkZLubt26aevWrapWzb4n4MyZM2rTpo1+++23EgkOObIsWdp8crMkqVONTgx3LEGxexI0bcUvtu2o+VsV7Oeuaf3C1KdZsBMjA+As2ZZs7UjKWYmjTUAbhiiWIJZpBABUREXK3o4cOZLvs84XL17UiRMnih0U7FmtVu05vUeS1DG44zVqo7Bi9yTooQ935FnVMfHsBT304Q7NGdaGxBuogCxWi7YmbpUktfJvVai1YlE4QzvU1q0Nq+veuT9Iylmm0d3VrAAfNydHBgCA41xX0r1ixQrb66+//truWefs7GytW7dOoaGhJRYc4CjZFqueWxmfJ+GWJKskQ9JzK+PVMyyIoeYAUEICfN3l7X7po0dYDV95VmL0FgCgfLuu/9NFRkZKyplkZsSIEXb7XF1dFRoaqtdee63EgkPJSU5PVvJfyXnK/T385e/p74SInCvucIoSzl4ocL9VUsLZC4o7nKKO9ZlQCQAAAEDRXFfSbbFYJOXMTL5161ZVr17dIUGh5C09sFRzds3JU/5Qy4c0rtU4J0TkXEnnCk64i1IPAAAAAPJTpDFdhw8fLuk44GADGg3QzcE3a0RszgiFhX0Wyt3FXf4eFa+XW5ICfAo3S25h6wEAAABAfgqddL/55psaO3as3N3d9eabb1617sSJE4sdGEqWv6e/vFy9bNuNqzau0Gt/t69bVcF+7ko8eyHf57oNSUF+7mpft+qNDg1AOcAjPQVjmUYAQEVT6KT7jTfe0NChQ+Xu7q433nijwHqGYZSLpDsmJkYxMTH5ztKOss9sMjStX5ge+nCHDMku8c796DetXxgfBAEUCY/05I9lGgEAFZFhtVrz6+jD/6SmpsrPz09nz56Vr6+vU2KwWq06l3lOkuTj6iPDKFoimJ6Zrg5LOkiStty3pUL3dOfK/QB4KvWirYwPgEDFZrFalJye00vt7+kvk2G67nMkpyfr+Lnj+T7SU1F7ugtapjH3/2gs0wigOPicC2cobK7IOh1lgGEY8q3knIS/vOvTLFi3NKiu5s9+I0laMDKcoY5ABWcyTAr0CizWOXikxx7LNAIAKrJCJ92TJk0q9Elff/31IgUDOMPlH/Da163KBz4AKGEs0wgAqMgKnXT/9NNPhapX1KHPKFi2JVtbErZIkjoEd5DZZHZyRABQfmVbsrX79G5JUovqLbjnlgCWaQQAVGSFTrq//fZbR8aBq7BYLdqZvFOSFB4ULrP4AAgAjmKxWvTDyR8kSc2qNeOeWwJYphEAUJFd/+wwlzl48KC+/vpr/fXXX5JyJvwCAAC4XO4yjQWNhTOUM4klyzQCAMqjIiXdf/zxh3r06KFGjRqpb9++SkhIkCQ98MADeuyxx0o0QAAAULblLtMoKU/izTKNAIDyrkhJ96OPPipXV1cdO3ZMnp6XZmMdNGiQYmNjSyw4AABQPvRpFqw5w9oowNfNrjzIz53lwgAA5VqRlgz75ptv9PXXX6tWrVp25Q0bNtTRo0dLJDDgRkhKvaBjKem27fiTqXJ3NSvAx00BvjxbCAAliWUaAQAVUZGS7vPnz9v1cOdKSUmRm5tbPkcApdPiLcc0a92vtu175+ZMnvRwj4Z6tGcjZ4UFAOUWyzQCACqaIiXdt956qz744AO98MILknKWCbNYLHrllVfUrVu3Eg0QcKShHWqrZ1hgnvIAH748AgAAAFB8RUq6X3nlFfXo0UPbtm1TRkaGJk+erF9++UUpKSnatGlTScfoFDExMYqJiVF2drazQ5GLyUWDbhpke42SE+DrzjByAHbMJrPuanCX7TUAAEBxFGkitWbNmunAgQP629/+prvuukvnz59X//799dNPP6l+/folHaNTREdHKz4+Xlu3bnV2KDIMQ9U8qqmaRzUZBsPwAMCRTIZJNb1rqqZ3TZmMYq2sCQAAULSebkny8/PT//3f/5VkLAAAAAAAlCuFTrp3795d6JO2aNGiSMEgf9mWbO1I2iFJahPQhuGOAOBA2ZZsxf8RL0kKqxbGPRcAABRLoZPuVq1ayTAMWa1WuyHOVqtVkuzKSsNz0OWJxWrR1sScYe6t/FvJLD4AAoCjWKwWfX/ie0lS46qNueeWIJZpBABURIV+WO3w4cP67bffdPjwYS1btkx169bV7NmztXPnTu3cuVOzZ89W/fr1tWzZMkfGCwAAyqjFW47ZlmaUcpZpvOOtjVq85ZgTowIAwLEK3dNdp04d2+sBAwbozTffVN++fW1lLVq0UEhIiJ5++mlFRkaWaJAAAKDsY5lGAEBFVKSJ1H7++WfVrVs3T3ndunUVHx9f7KAAAED5wzKNAICKqEhroTRp0kTTp09XRkaGrSwjI0PTp09XkyZNSiw4AAAAAADKsiL1dM+dO1f9+vVTrVq1bDOV7969W4ZhaOXKlSUaIAAAAAAAZVWRku727dvrt99+0+LFi7Vv3z5J0qBBg3TffffJy8urRAMEAAAAAKCsKlLSLUleXl4aO3ZsScaCAphNZt3T8B7bawCA45hNZvWt29f2GgAAoDgKnXSvWLFCt912m1xdXbVixYqr1r3zzjuLHRguMRkmBXrlne0VAFDyTIZJoX6hzg4DAACUE4VOuiMjI5WYmKiAgICrLglmGIays7NLIjYAAAAAAMq0QifdFosl39dwvGxLtnaf3i1JalG9BcMdAcCBsi3Z+vXMr5KkhpUbcs8FAADFUuglw6pWrarTp09LkkaNGqVz5845LCjYs1gt+uHkD/rh5A+yWPnCAwAcyWK16L/H/qv/Hvsv91wAAFBshU66MzIylJqaKklauHChLly44LCgSoOYmBiFhYUpPDzc2aEAAAAAAMqoQg8v79ixoyIjI9W2bVtZrVZNnDhRHh4e+dadN29eiQXoLNHR0YqOjlZqaqr8/PycHQ4AAAAAoAwqdE/3hx9+qL59+yotLU2GYejs2bP6888/8/1B6ZRtuTTB3fZT2+22AQAAAAAlr9A93YGBgXr55ZclSXXr1tWiRYtUrVo1hwWGkrX26FpNj5tu2x63bpwCPQM1pf0URdSJcGJkAAAAAFB+Fbqn+3KHDx8m4S5D1h5dq0nrJykpPcmuPCk9SZPWT9Lao2udFBkAAAAAlG+F7um+0rp167Ru3TolJSXlWUKsPDzTXZplW7KvOqOu2WSWycj5PiUjK0PT46bLKmueelZZZcjQjLgZ6hbSjWVxAAAAAKCEFSnpfu655/T888+rXbt2Cg4OlmEYJR0XLmM2mXVXg7tsr385/Yu+P/F9gfX71u2rUL9QSdLK31bm6eG+nFVWJaYnakfSDoUHMVM7AJhNZvWq08v2GgAAoDiKlHTPnTtXCxYs0PDhw0s6HuTDZJhU07tmkY7982LhJrZLTk8u0vkBoLwxGSY1qNLA2WEAAIByokhJd0ZGhjp16lTSsaCQwqqFqXHVxgXuv7xnplm1ZoU6p7+nf7HjAgAAAADYK9JEaqNHj9aSJUtKOhYUktlklqvZtcCf3Oe5JSk8KFyBnoEylP8jAIYMBXkGqU1AmxsVPgCUaharRQf/PKiDfx686vwZAAAAhVGknu4LFy7o3Xff1dq1a9WiRQu5urra7X/99ddLJDgUn9lk1pT2UzRp/aQ8+3IT8SfbP8lziwDwP9mWbH1z9BtJ0hjfMTKZi/T9tLIt2bbX209tV6canbjXAgBQARUp6d69e7datWolSdqzZ09JxgMHiKgTode7vq7pcdPtJlUL9AzUk+2fZJ1uAChha4+u1fS46bbtcevGKdAzUFPaT+GeCwBABVOkpPvbb78t6TjgYBF1ItQhqIM6fZzzLP7sHrPpdQEAB1h7dK0mrZ+UZ6nGpPQkTVo/Sa93fZ3EGwCACuS6ku7+/ftfs45hGFq2bFmRA4LjXJ5gtw1sS8INANeQacmUyTDZ7pcWq8Vu2PiVrFarXo57OU/CLeUs0WjI0Iy4GeoW0o17MAAAFcR1Jd1+fn6OigMAgFJnwS8L1L12d9uKEcdSj2n14dUF1q/mXk2n0k8VuN8qqxLTE7UjaYfCg8JLPF4AAFD6XFfSPX/+fEfFAQBAqeBiclGwV7ASzidc97FnLp4pVL3k9OTrPjcAACibivRMNwAA5ZVhGIpsEKksS5Yk2S3DWNu3tsY0H1PgsdtPbS/UNfw9/YsXJAAAKDNIugEAuIJhGHI1u+YpNxmmqy4hFh4UrkDPQCWlJ+X7XLchQ4GegWoT0KZE4wUAAKVX0RYfBQAAeZhNZk1pPyXffYYMSdKT7Z9kEjUAACoQku4CxMTEKCwsTOHhTHQDACi8iDoRer3r6wrwDLArD/QMZLkwAAAqIIaXFyA6OlrR0dFKTU1l1nYAwHWJqBOhDkEd1OnjTpKk2T1mq1ONTvRwAwBQAdHTDQCAA1yeYLcNbEvCDQBABUXSDQAAAACAg5B0AwAAAADgICTdAAAAAAA4CEk3AAAAAAAOQtINAAAAAICDkHQDAAAAAOAgJN0AAAAAADgISTcAAAAAAA5C0g0AAAAAgIOQdAMAAAAA4CAk3QAAAAAAOAhJNwAAAAAADkLSDQAAAACAg5B0AwAAAADgICTdAAAAAAA4CEk3AAAAAAAOQtINAAAAAICDkHQDAAAAAOAgJN0AAAAAADgISTcAAAAAAA5C0g0AAAAAgIOQdAMAAAAA4CAk3QAAAAAAOAhJNwAAAAAADkLSDQAAAACAg5B0FyAmJkZhYWEKDw93digAAAAAgDKKpLsA0dHRio+P19atW50dCgAAAACgjCLpBgAAAADAQUi6AQAAAABwEJJuAAAAAAAchKQbAAAAAAAHIekGAAAAAMBBSLoBAAAAAHAQkm4AAAAAAByEpBsAAAAAAAch6QYAAAAAwEFIugEAAAAAcBCSbgAAAAAAHISkGwAAAAAAByHpBgAAAADAQUi6AQAAAABwEJJuAAAAAAAchKQbAAAAAAAHIekGAAAAAMBBSLoBAAAAAHAQkm4AAAAAAByEpBsAAAAAAAch6QYAAAAAwEFIugEAAAAAcBCSbgAAAAAAHISkGwAAAAAAByHpBgAAAADAQUi6AQAAAABwEBdnB1AeZGdn6+LFi84O45r+yvxLddzr5LxO/0tydXJAKFNcXFzk6uoqwzCcHQoAAABQZpB0F1NqaqoOHjwoq9Xq7FAK5bkGz0mSjhw84txAUCZ5e3srNDRUbm5uzg4FAAAAKBNIuoshOztbBw8elI+Pj4KDg2UyMVof5ZPVatXFixd14sQJxcfHq2XLlvy9AwAAAIVA0l0MFy9elNVqVXBwsLy9vZ0dDuBQXl5eqlSpkvbv36+LFy/Kw8PD2SEBAAAApR5JdwkoTo9fZlKSspKT85S7+PvLNSCgOGEBJS73b72sPE4BAAAAOBtJt5Od+eQ/Oh0Tk6e8enS0/CeMd0JEAAAAAICSwkOZTlZ50EDVWfyhbbvO4g8VuuxTVR400IlRlW3PPvusWrVq5ewwbN59912FhITIZDJp5syZhYovKipKkZGRhb7G+vXrZRiGzpw5I0lasGCBKleuXOSYAQAAAJQMkm4ncw0IkFujRrZty/nzcm/c2OFDyxMTEzVhwgTVq1dPbm5uCgkJUb9+/bRu3TqHXvdGePzxx+3acb0JbEGOHDkiwzC0c+fOQh+Tmpqq8ePH68knn9SJEyc0duzYPPE5wqBBg3TgwAHbdmn7IgIAAACoKBhe7mSp33yjU/980bZ9fOyDcgkKUuBTU+Xbq5dDrnnkyBHdcsstqly5sv71r3+pefPmyszM1Ndff63o6Gjt27fPIde9Uby9vUvNxHbHjh1TZmambr/9dgUHB9vKHR2fh4cHE50BAAAApQA93U6U+s03OvHwI8pKSrIrzzp1SicefkSp33zjkOuOGzdOhmEoLi5O99xzjxo1aqSmTZtq0qRJ+vHHH231jh07prvuukve3t7y9fXVwIEDderUKdv+3N7TefPmqXbt2vL29ta4ceOUnZ2tV155RUFBQQoICNCLL75od33DMDRnzhzddttt8vDwUL169fTpp5/a1fn555/VvXt3eXh4qFq1aho7dqzS0tJs+9evX6/27dvLy8tLlStX1i233KKjR4/axZX7euHChfriiy9kGIYMw9D69eslScePH9fAgQNVuXJlVa1aVXfddZeOHDlS6Pcxd0j3unXr1K5dO3l6eqpTp07av3+/pJwh3s2bN5ck1atXT4Zh6MiRI3l6nbOzszVp0iRVrlxZ1apV0+TJk/NMVGaxWDR9+nTVrVtXHh4eatmyZZ737HKXDy9fsGCBnnvuOe3atcv2HixYsECjRo3SHXfcYXdcZmamAgIC9P777xf6fQAAAABQMJJuJ7FmZ+vUS9Ol/GaB/l/ZqZemy5qdXaLXTUlJUWxsrKKjo+Xl5ZVnf26iZrFYdNdddyklJUUbNmzQmjVr9Ntvv2nQoEF29Q8dOqSvvvpKsbGx+uijj/T+++/r9ttv1++//64NGzZoxowZ+sc//qEtW7bYHff000/rnnvu0a5duzR06FANHjxYe/fulSSdP39evXv3VpUqVbR161YtXbpUa9eu1fjxORPLZWVlKTIyUl26dNHu3bv1ww8/aOzYsTIMI097Hn/8cQ0cOFB9+vRRQkKCEhIS1KlTJ2VmZqp3797y8fHR999/r02bNsnb21t9+vRRRkbGdb2n//d//6fXXntN27Ztk4uLi0aNGiUpZ4j32rVrJUlxcXFKSEhQSEhInuNfe+01LViwQPPmzdPGjRuVkpKizz//3K7O9OnT9cEHH2ju3Ln65Zdf9Oijj2rYsGHasGHDNeMbNGiQHnvsMTVt2tT2HgwaNEijR49WbGysEhISbHVXrVql9PT0PL9nAAAAAEXD8HInSd+2XVmJiQVXsFqVlZio9G3b5dWhfYld9+DBg7JarWrcuPFV661bt04///yzDh8+bEsUP/jgAzVt2lRbt25VeHi4pJzkfN68efLx8VFYWJi6deum/fv3a/Xq1TKZTLrppps0Y8YMffvtt+rQoYPt/AMGDNDo0aMlSS+88ILWrFmjt956S7Nnz9aSJUt04cIFffDBB7YvBt5++23169dPM2bMkKurq86ePas77rhD9evXlyQ1adIk33Z4e3vLw8NDFy9eVFBQkK38ww8/lMVi0XvvvWdL1ufPn6/KlStr/fr16nUdQ/tffPFFdenSRZI0ZcoU3X777bpw4YKtl16S/P397a5/uZkzZ2rq1Knq37+/JGnu3Ln6+uuvbfsvXryol156SWvXrlXHjh0l5fScb9y4Ue+8847t2gXx8PCQt7e3XFxc7GLo1KmTbrrpJi1atEiTJ0+2vQcDBgwoNcPzAQAAgLKu3Pd0nzlzRu3atVOrVq3UrFkz/fvf/3Z2SJKU79rcxalXWIVdX3nv3r0KCQmx65kNCwtT5cqVbT3SkhQaGiofHx/bdmBgoMLCwuzWLg8MDFTSFUPoc5PHy7dzz7t37161bNnSrif+lltukcVi0f79+1W1alVFRUWpd+/e6tevn2bNmmXXW1sYu3bt0sGDB+Xj42N7Brxq1aq6cOGCDh06dF3natGihe117nPbV7a3IGfPnlVCQoLdFxIuLi5q166dbfvgwYNKT09Xz549bbF6e3vrgw8+uO5YrzR69GjNnz9fknTq1Cl99dVXtp56AAAAAMVX7nu6fXx89N1338nT01Pnz59Xs2bN1L9/f1sPpLO4+PuXaL3CatiwoQzDKLHJ0lxdXe22DcPIt8xisZTI9XLNnz9fEydOVGxsrD755BP94x//0Jo1a3TzzTcX6vi0tDS1bdtWixcvzrPP/zrf88vbm9trXpLtzX2W/csvv1TNmjXt9rm5uRXr3Pfff7+mTJmiH374QZs3b1bdunV16623FuucAAAAAC4p9z3dZrNZnp6eknKG6Vqt1kL39jqSZ7u2cgkKkvJ5DlmSZBhyCQqSZ7u2JXrdqlWrqnfv3oqJidH58+fz7M9d57lJkyY6fvy4jh8/btsXHx+vM2fOKCwsrNhxXD5hW+527hDxJk2aaNeuXXbxbdq0yTZcPVfr1q01depUbd68Wc2aNdOSJUvyvValSpWUfcWz8W3atNGvv/6qgIAANWjQwO7Hz8+v2O0rLD8/PwUHB9s9856VlaXt27fbtsPCwuTm5qZjx47liTW/Z8Tzk997IEnVqlVTZGSk5s+frwULFmjkyJHFbxQAAAAAG6cn3d9995369eunGjVqyDAMLV++PE+dmJgYhYaGyt3dXR06dFBcXNx1XePMmTNq2bKlatWqpSeeeELVq1cvoeiLzjCbFfjU1P9tXLkzpyDwqakyzOYSv3ZMTIyys7PVvn17LVu2TL/++qv27t2rN9980zbsOyIiQs2bN9fQoUO1Y8cOxcXF6f7771eXLl3shj4X1dKlSzVv3jwdOHBA06ZNU1xcnG2itKFDh8rd3V0jRozQnj179O2332rChAkaPny4AgMDdfjwYU2dOlU//PCDjh49qm+++Ua//vprgc91h4aGavfu3dq/f79Onz6tzMxMDR06VNWrV9ddd92l77//XocPH9b69es1ceJE/f7778Vu3/V4+OGH9fLLL2v58uXat2+fxo0bZ/vyQ8oZrfH444/r0Ucf1cKFC3Xo0CHt2LFDb731lhYuXFioa4SGhurw4cPauXOnTp8+rYsXL9r2jR49WgsXLtTevXs1YsSIkm4eAAAAUKE5Pek+f/68WrZsqZiYmHz3f/LJJ5o0aZKmTZumHTt2qGXLlurdu7fdM7O5z2tf+XPy5ElJOTNy79q1S4cPH9aSJUvslr1yJt9evVRz1ky5+AfYlbsEBqrmrJkOW6e7Xr162rFjh7p166bHHntMzZo1U8+ePbVu3TrNmTNHUs4w6S+++EJVqlRR586dFRERoXr16umTTz4pkRiee+45ffzxx2rRooU++OADffTRR7YedE9PT3399ddKSUlReHi47r33XvXo0UNvv/22bf++fftsy52NHTtW0dHRevDBB/O91pgxY3TTTTepXbt28vf316ZNm+Tp6anvvvtOtWvXVv/+/dWkSRM98MADunDhgnx9fUukjYX12GOPafjw4RoxYoQ6duwoHx8f3X333XZ1XnjhBT399NOaPn26mjRpoj59+ujLL79U3bp1C3WNe+65R3369FG3bt3k7++vjz76yLYvIiJCwcHB6t27t2rUqFGibQMAAHC05PRk7Uu59OjkvpR9iv8jXsnpJTs3ElBUhrU0jLX+H8Mw9PnnnysyMtJW1qFDB4WHh9sSLovFopCQEE2YMEFTpky57muMGzdO3bt317333luo+qmpqfLz89PZs2fzJGPp6enau3evmjRpYhvCXhTZ587pQHjODOUh774jr1tucUgPd2mR3+8ZzpOWlqaaNWtq/vz5thnUC1JSf/NARZCema4OS3ImSdxy3xZ5uvJvBgAcYfbO2Zqza06e8odaPqRxrcY5ISJUFFfLFS9XqidSy8jI0Pbt2zV16lRbmclkUkREhH744YdCnePUqVPy9PSUj4+Pzp49q++++04PPfRQgfUvXrxoN/Q2NTVVkpSdnW17JtYwDJlMphKZLCszKUmZlz03bfLy0oV9++Ti7y/XgICrHAkUj8Vi0enTp/Xaa6+pcuXKuvPOOwt9bO6/B7PZLKvVmuffgtlslsViyTN/Qn7ll/97yq/8ymfRCyo3mUwyDCPf8tz2FqacNtGmkmrT5ee0WCy2/WW5TeXx90SbaBNtKvttGtBogLrU7JKnPMAroMy2qTz+nspjmwqrVCfdp0+fVnZ2tgIDA+3KAwMDCz379tGjRzV27FjbBGoTJkxQ8+bNC6w/ffp0Pffcc3nKd+/ebVu7uFq1agoNDVXi1dbZLqQzn/xHpy8bWn906DBJUvXoaPlPGF/s8wMFOXbsmOrWratatWppwYIFcnEp/O3gwIEDMplMat26tVJTU3Xw4EHbPnd3dzVt2lQpKSk6evSordzX11cNGzZUYmKi3RJvuf+ejh07pj/++MNWHhwcrBo1aui3336zffklSXXq1FH16tW1b98+XbhwwVaeOwne7t277W6gYWFhqlSpknbu3GnXhlatWikjI0Px8fG2MtpEm0qyTXUbXXr8Y/fu3XIzuZX5NpXH3xNtok20qXy06XzS+Txt8vf016+//lpm21Qef0/lrU1Vq1ZVYZTq4eUnT55UzZo1tXnzZrt1nSdPnqwNGzbYzfhcUvLr6Q4JCVFKSoptyEDuNy9paWnav39/sYbaZiYl5bsWNz3dKI1yh5c3atRInp6efPNJm2jTVdp0IfuCbv4oZxnDHwb/IA8XjzLfpvL4e6JNtIk20SbaRJuK2qa0tLSyP7y8evXqMpvNeSY+O3XqlIKCghxyTTc3t3zXPjabzTJf8Zx17i+xOFwDAkiuUeZc/u/BMIw8/zakgv99XG95fud2dDltok0lEaNhuTTszGQy5dlfFttUlHLaRJtKKsbrLadNtKmkYrzectpUsdpUGE6fvfxqKlWqpLZt22rdunW2MovFonXr1tn1fAMAAAAAUBo5vac7LS3Nbix97lrCVatWVe3atTVp0iSNGDFC7dq1U/v27TVz5kydP39eI0eOdGLUAAAAAABcm9OT7m3btqlbt2627UmTJkmSRowYoQULFmjQoEFKTk7WM888o8TERLVq1UqxsbF5JlcDAAAAAKC0cXrS3bVr1zwPql9p/PjxGj++nM7kfS4x5+dKPkE5PwAAAACAMsvpSXdpFRMTo5iYmDwz45W4bfOlDS/nLe8yReo2NW85AAAAAKDMKNUTqTlTdHS04uPjtXXrVsdeqN1IaVTspe1RsdLYDTnlpdymTZvUvHlzubq62pZ5q+isVqvGjh2rqlWryjAM7dy5U127dtUjjzxy1eNCQ0M1c+bMQl/n2WefVatWrWzbUVFR/A4AAACAUoik29l8gqSAppe2L6ZJQc0dOrQ8KipKhmHIMAy5urqqbt26mjx5st3C84UxadIktWrVSocPH9aCBQscE6wTLViwQJUrV76uY2JjY7VgwQKtWrVKCQkJatasmT777DO98MILjgnyf2bNmmX3OyhMog8AAADA8Rhe7mzxK6SvJl/aXnyv5FtD6jNDCrvTYZft06eP5s+fr8zMTG3fvl0jRoyQYRiaMWNGoc9x6NAh/f3vf1etWrWKHEdGRoYqVapU5ONLm0OHDik4OFidOnWylVWtWtXh1/Xz83P4NQAAAABcP3q6nSl+hfSf+6VzCfblqQk55fErHHZpNzc3BQUFKSQkRJGRkYqIiNCaNWts+y0Wi6ZPn666devKw8NDLVu21KeffipJOnLkiAzD0B9//KFRo0bJMAxbL+uePXt02223ydvbW4GBgRo+fLhOnz5tO2/Xrl01fvx4PfLII6pevbp69+5d6OMmTpyoyZMnq2rVqgoKCtKzzz5r16YzZ87owQcfVGBgoNzd3dWsWTOtWrXKtn/jxo269dZb5eHhoZCQEE2cOFHnz58v9HuWO6R70aJFCg0NlZ+fnwYPHqxz585JyhlBMGHCBB07dkyGYSg0NNQW++W9zklJSerXr588PDxUt25dLV68OM+1zpw5o9GjR8vf31++vr7q3r27du3aVWBslw8vj4qK0oYNGzRr1izbiIbDhw+rQYMGevXVV+2O27lzpwzDsFu2DwAAAEDJIel2Fku2FPukpPxmbv9fWeyUnHoOtmfPHm3evNmux3n69On64IMPNHfuXP3yyy969NFHNWzYMG3YsEEhISFKSEiQr6+vZs6cqYSEBA0aNEhnzpxR9+7d1bp1a23btk2xsbE6deqUBg4caHe9hQsXqlKlStq0aZPmzp17Xcd5eXlpy5YteuWVV/T888/bviiwWCy67bbbtGnTJn344YeKj4/Xyy+/LLPZLCmnB7pPnz665557tHv3bn3yySfauHHjdc+Kf+jQIS1fvlyrVq3SqlWrtGHDBr38cs5EeLNmzdLzzz+vWrVqKSEhocD5AKKionT8+HF9++23+vTTTzV79mwlJSXZ1RkwYICSkpL01Vdfafv27WrTpo169OihlJSUa8Y4a9YsdezYUWPGjFFCQoISEhJUu3ZtjRo1SvPnz7erO3/+fHXu3FkNGjS4rvcBAAAAQOEwvNxZjm6WUk9epYJVSj2RU6/urSV++VWrVsnb21tZWVm6ePGiTCaT3n77bUnSxYsX9dJLL2nt2rXq2LGjJKlevXrauHGj3nnnHXXp0kVBQUEyDEN+fn4KCsp5/vy1115T69at9dJLL9muM2/ePIWEhOjAgQNq1KiRJKlhw4Z65ZVXbHX++c9/Fuq4Fi1aaNq0abZzvP3221q3bp169uyptWvXKi4uTnv37rXVr1evnu1806dP19ChQ209zg0bNtSbb76pLl26aM6cOXJ3dy/U+2axWLRgwQL5+PhIkoYPH65169bpxRdflJ+fn3x8fGQ2m23vyZUOHDigr776SnFxcQoPD5ckvf/++2rSpImtzsaNGxUXF6ekpCS5ublJkl599VUtX75cn376qcaOHXvVGP38/FSpUiV5enraxREVFaVnnnlGcXFxat++vTIzM7VkyZI8vd8AAAAASg5Jt7OknSrZetepW7dumjNnjs6fP6833nhDLi4uuueeeyRJBw8eVHp6unr27Gl3TEZGhlq3bl3gOXft2qVvv/1W3t7eefYdOnTIlgy3bdu2SMe1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66WvUaOGJk6cKCmnV/fo0aN69NFHZRiGDMOQlH9P9cqVKxUeHi53d3dVr15dd999d6Hfw9wh3YsWLVJoaKj8/Pw0ePBgnTt3TlLOEO8JEybo2LFjdu/flb3OSUlJ6tevnzw8PFS3bl0tXrw4z7XOnDmj0aNHy9/fX76+vurevbt27dpVYGyXDy+PiorShg0bNGvWLNv7cfjwYTVo0ECvvvqq3XE7d+6UYRg6ePBgod8HAAAAANdG0u0k2RarnlsZL2s++3LLnlsZr2xLfjWKztvbW97e3lq+fLkuXsw7a7ok29rk8+fPV0JCgm37888/18MPP6zHHntMe/bs0YMPPqiRI0fq22+/lSRZLBbddttt2rRpkz788EPFx8fr5Zdfltlstp07PT1dr776qhYtWqTvvvtOx44d0+OPP27bf+7cOY0YMUIbN27Ujz/+qIYNG6pv3762hHbZsmV644039M477+jXX3/V8uXL1bx5c0nSZ599plq1aun5559XQkKCXTJ/uS+//FJ33323+vbtq59++knr1q1T+/btr+t9PHTokJYvX65Vq1Zp1apV2rBhg15++WVJOUO8n3/+edWqVcvu/btSVFSUjh8/rm+//VaffvqpZs+eraSkJLs6AwYMUFJSkr766itt375dbdq0UY8ePZSSknLNGGfNmqWOHTtqzJgxtvejdu3aGjVqlObPn29Xd/78+ercubMaNGhwXe8DAAAAgKtjeHkBYmJiFBMTo+zsbIecP+5wihLOXihwv1VSwtkLijucoo71q5XYdV1cXLRgwQKNGTNGc+fOVZs2bdSlSxcNHjxYLVq0kCT5+/tLkipXrqygoCDbsa+++qqioqI0btw4SdKkSZP0448/6tVXX1W3bt20du1axcXFae/evWrUKGfm9Xr16tldPzMzU3PnzlX9+vUlSePHj9fzzz9v29+9e3e7+u+++64qV66sDRs26I477tCxY8cUFBSkiIgIubq6qnbt2raEuWrVqjKbzfLx8bGL+0ovvviiBg8erOeee85W1rJly+t6Hy0WixYsWCAfn5zn8YcPH65169bpxRdflJ+fn3x8fGQ2mwuM48CBA/rqq68UFxen8PBwSdL777+vJk2a2Ops3LhRcXFxSkpKkpubm6Sc38Hy5cv16aefauzYsVeN0c/PT5UqVZKnp6ddHFFRUXrmmWcUFxen9u3bKzMzU0uWLMnT+w0AAACg+OjpLkB0dLTi4+ML7KUsrqRzBSfcRal3Pe655x6dPHlSK1asUJ8+fbR+/Xq1adPGbgKu/Ozdu1e33HKLXdktt9yivXv3SsoZolyrVi1bwp0fT09PW8ItScHBwXa9u6dOndKYMWPUsGFD+fn5ydfXV2lpaTp27JiknJ7fv/76S/Xq1dOYMWP0+eefKysr67rav3PnTvXo0eO6jrlSaGioLeHOrx3XsnfvXrm4uKht27a2ssaNG9sNg9+1a5fS0tJUrVo12wgFb29vHT58WIcOHSpy7DVq1NDtt9+uefPmScoZan/x4kUNGDCgyOcEAAAAkD+SbicJ8Cnc7OSFrXe93N3d1bNnTz399NPavHmzoqKiNG3atGKdszCTlbm6utptG4Yhq/XSEPoRI0Zo586dmjVrljZv3qydO3eqWrVqysjIkCSFhIRo//79mj17tjw8PDRu3Dh17txZmZmZJRpnUdphsViKfd7LpaWlKTg4WDt37rT72b9/v5544olinXv06NH6+OOP9ddff2n+/PkaNGiQPD09SyhyAAAAALlIup2kfd2qCvZzl1HAfkNSsJ+72td1/IzXkhQWFqbz58/btl1dXfMMrW/SpIndsmKStGnTJoWFhUmSWrRood9//71Yy3Nt2rRJEydOVN++fdW0aVO5ubnp9OnTdnU8PDzUr18/vfnmm1q/fr1++OEH/fzzz5KkSpUqXfORgBYtWmjdunVFjrEkNG7cWFlZWdq+fbutbP/+/Tpz5oxtu02bNkpMTJSLi4saNGhg91O9evVCXaeg96Nv377y8vLSnDlzFBsbq1GjRhW7TQAAAADy4pluJzGbDE3rF6aHPtwhQ7KbUC03EZ/WL0xmU0FpedH88ccfGjBggEaNGqUWLVrIx8dH27Zt0yuvvKK77rrLVi80NFTr1q3TLbfcIjc3N1WpUkVPPPGEBg4cqNatWysiIkIrV67UZ599prVr10qSunTpos6dO+uee+7R66+/rgYNGmjfvn0yDEN9+vQpVHwNGzbUokWL1K5dO6WmpuqJJ56w65lesGCBsrOz1aFDB3l6eurDDz+Uh4eH6tSpY4v7u+++0+DBg+Xm5pZvcjpt2jT16NFD9evX1+DBg5WVlaXVq1frySefLM5be11uuukm9enTRw8++KDmzJkjFxcXPfLII3ZtjYiIUMeOHRUZGalXXnlFjRo10smTJ20TwbVr1+6a1wkNDdWWLVt05MgReXt7q2rVqjKZTDKbzYqKitLUqVPVsGFDdezY0ZHNBQAAACoserqdqE+zYM0Z1kYBvm525UF+7pozrI1D1un29vZWhw4d9MYbb6hz585q1qyZnn76aY0ZM0Zvv/22rd5rr72mNWvWKCQkRK1bt5YkRUZGatasWXr11VfVtGlTvfPOO5o/f766du1qO27ZsmUKDw/XkCFDFBYWpsmTJ1/XZHTvv/++/vzzT7Vp00bDhw/XxIkTFRAQYNtfuXJl/fvf/9Ytt9yiFi1aaO3atVq5cqWqVcuZbO7555/XkSNHVL9+fduEcFfq2rWrli5dqhUrVqhVq1bq3r274uLirudtLBHz589XjRo11KVLF/Xv319jx461a6thGFq9erU6d+6skSNHqlGjRho8eLCOHj2qwMDAQl3j8ccfl9lsVlhYmPz9/W3PxkvSAw88oIyMDI0cObLE2wYAAAAgh2G9/IFa5JGamio/Pz+dPXtWvr6+dvvS09O1d+9eNWnSpFjPw567kKnmz34jSVowMly3NvQv8R5u4Erff/+9evTooePHjxc6iS+pv3mgIkjPTFeHJR0kSVvu2yJPV/7NAABQnlwtV7wcPd1OlpR6QfsTz9m2vd1ctDchVUmpJT9rOSBJFy9e1O+//65nn31WAwYMKHTCDQAAAOD6kXQ72eItx3Tv3B9s2/fO/UF3vLVRi7ccu8pRQNF99NFHqlOnjs6cOaNXXnnF2eEAAAAA5RoTqTnZ0A611TMsb09jgI9bPrWB4ouKilJUVJSzwwAAAAAqBJJuJwvwdVeAr2PW4gYAAAAAOBfDywEAAAAAcBCSbgAAAAAAHISkuwAxMTEKCwtTeHi4s0MBAAAAAJRRPNNdgOjoaEVHR9vWXnOU5PRkJf+VnKfc38Nf/p7+DrsuAAAAAMDxSLqdbOmBpZqza06e8odaPqRxrcY5ISIAAAAAQElheLmTDWg0QAv7LLRtL+yzUJ/c8YkGNBrgxKjySkxMVM+ePeXl5aXKlStLkgzD0PLlyws85siRIzIMQzt37iz0dbp27apHHnnEth0aGqqZM2cWKeaybP369TIMQ2fOnHF2KAAAAACKgaTbyfw9/dWwckPb9vnM87qpyk0OHVoeFRWlyMjI6zrmjTfeUEJCgnbu3KkDBw5IkhISEnTbbbc5IMJLtm7dqrFjx9q2r5XoF1bXrl1lGIbtJzAwUAMGDNDRo0eLfW4AAAAAyEXS7WRrj65V5IpI2/a4dePUe1lvrT261nlB5ePQoUNq27atGjZsqICAAElSUFCQ3NzcHHpdf39/eXp6OuTcY8aMUUJCgk6ePKkvvvhCx48f17BhwxxyLQAAAAAVE0m3E609ulaT1k9SUnqSXXlSepImrZ90wxLvrl27auLEiZo8ebKqVq2qoKAgPfvss7b9oaGhWrZsmT744AMZhqGoqChJeXud4+Li1Lp1a7m7u6tdu3b66aef8lxrz549uu222+Tt7a3AwEANHz5cp0+fLjC2y4eXh4aGSpLuvvtuGYah0NBQHTlyRCaTSdu2bbM7bubMmapTp44sFkuB5/b09FRQUJCCg4N18803a/z48dqxY4ddnQ0bNqh9+/Zyc3NTcHCwpkyZoqysrHzjy9WqVSu7988wDL333nu6++675enpqYYNG2rFihV2x6xevVqNGjWSh4eHunXrpiNHjhQYNwAAAICyg6TbSbIt2Xo57mVZZc2zL7dsRtwMZVuyb0g8CxculJeXl7Zs2aJXXnlFzz//vNasWSMpZ4h3nz59NHDgQCUkJGjWrFl5jk9LS9Mdd9yhsLAwbd++Xc8++6wef/xxuzpnzpxR9+7d1bp1a23btk2xsbE6deqUBg4cWKgYt27dKkmaP3++EhIStHXrVoWGhioiIkLz58+3qzt//nxFRUXJZCrcn3hKSor+85//qEOHDrayEydOqG/fvgoPD9euXbs0Z84cvf/++/rnP/9ZqHNe7rnnntPAgQO1e/du9e3bV0OHDlVKSook6fjx4+rfv7/69eunnTt3avTo0ZoyZcp1XwMAAABA6UPS7SQ7knboVPqpAvdbZVVieqJ2JO0osE5JatGihaZNm6aGDRvq/vvvV7t27bRu3TpJOUO83dzc5OHhoaCgoHyXUFuyZIksFovef/99NW3aVHfccYeeeOIJuzpvv/22WrdurZdeekmNGzdW69atNW/ePH377be258Svxt8/5zn3ypUrKygoyLY9evRoffTRR7p48aIkaceOHfr55581cuTIq55v9uzZ8vb2lpeXl6pVq6b9+/dr3rx5dvtDQkL09ttvq3HjxoqMjNRzzz2n11577ao96PmJiorSkCFD1KBBA7300ktKS0tTXFycJGnOnDmqX7++XnvtNd10000aOnSobTQBAAAAgLKNpNtJktPzrs1dnHrF1aJFC7vt4OBgJSUlFVA7r71796pFixZyd3e3lXXs2NGuzq5du/Ttt9/K29vb9tO4cWNJOc+MF1VkZKTMZrM+//xzSdKCBQvUrVs323D0ggwdOlQ7d+7Url27tHHjRjVo0EC9evXSuXPnbG3q2LGjDMOwHXPLLbcoLS1Nv//++3XFePn76+XlJV9fX9v7u3fvXrsedinvewcAAACgbGKdbicp7OzkjpzF/HKurq5224ZhXHdv7rWkpaWpX79+mjFjRp59wcHBRT5vpUqVdP/992v+/Pnq37+/lixZku8Q+Cv5+fmpQYMGkqQGDRro/fffV3BwsD755BONHj26UNc2mUyyWu0fEcjMzMxT70a8vwAAAABKH5JuJ2kT0EaBnoFKSk/K97luQ4YCPQPVJqCNE6K7fk2aNNGiRYt04cIFW2/3jz/+aFenTZs2WrZsmUJDQ+XiUrQ/PVdXV2Vn533OffTo0WrWrJlmz56trKws9e/f/7rPbTabJUl//fWXpJw2LVu2TFar1dbbvWnTJvn4+KhWrVqScoa8JyQk2M6Rmpqqw4cPX9d1mzRpkmditSvfOwAAAABlE8PLncRsMmtK+/wnyzKUk+A92f5JmU3mGxlWkd13330yDENjxoxRfHy8Vq9erVdffdWuTnR0tFJSUjRkyBBt3bpVhw4d0tdff62RI0fmm0jnJzQ0VOvWrVNiYqL+/PNPW3mTJk10880368knn9SQIUPk4eFxzXOlp6crMTFRiYmJ2rVrlx566CG5u7urV69ekqRx48bp+PHjmjBhgvbt26cvvvhC06ZN06RJk2wTtHXv3l2LFi3S999/r59//lkjRoywJe+F9fe//12//vqrnnjiCe3fv19LlizRggULruscAEqX5PRk7UvZZ9vel7JP8X/E37BHhgAAQOlB0u1EEXUi9HrX1xXgGWBXHugZqNe7vq6IOhFOiuz6eXt7a+XKlfr555/VunVr/d///V+eYeQ1atTQpk2blJ2drV69eql58+Z65JFHVLly5ULPMv7aa69pzZo1CgkJUevWre32PfDAA8rIyNCoUaMKda5///vfCg4OVnBwsLp166bTp09r9erVuummmyRJNWvW1OrVqxUXF6eW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HQAAAAAAVCS5PduGYdiWyL28L9TFxUWhoaGaMmWK/P39tXLlSnXu3Fldu3Z1XtAoMr4mAQAAAIAbKHd5xs8++0x33323+vfvr8WLFys7O1vSpZ7vatWq6fHHH1enTp00aNAgbdu2zWkxo+hIugEAAADgBrFYLJKkN998U1OnTpW3t7cyMjL00EMPaeHChZIuJeW5z23PmDFD9913n/bs2eO0uFF0PNMNAAAAADfQX3/9pVq1aun9999XZGSkJOm5557TihUrtH379nyP2bdvn37++WcNGDDgBkaKkkDSDQAAAAA30MyZM7Vy5UotX75cHh4ecnFx0YEDB9S+fXutWLFCnTt3liTt3btXf/75pzp16uTkiFEcDC8HAAAAgBskOztb2dnZql27tsxms1xcXGS1WtWoUSN169ZN69evl5TzXHdkZKQOHTpk20bZxOzlAAAAAHCDmM1m3XfffYqLi5Onp6ekS89w33rrrfrmm28kSf/617909uxZDR8+3K4Oyh6GlwMAAACAk+SmY4ZhaNOmTbrnnnv03//+Vx06dNCSJUvUr18/ZWVlycWF/tKyiqQbAAAAAEqBtLQ0de/eXYcOHVLz5s21fv1625reKLt4phsAAAAASgFvb281bdpUf/75pxYtWiTp0hJjKLvo6QYAAACAUmL//v368ccfNWLECGVnZ8tsNjs7JBQTSTcAAAAAlAJXDiVnaHn5QNINAAAAAICD8Ew3AAAAAAAOQtINAAAAAICDkHQDAAAAgANca+bx7OxsSVJycrKkS2t2o3wh6QYAAACAEnJ5om0ymfKUXc5sNuv48eO644479OuvvzJpWjlF0g0AAAAAJcBqtcpkMikpKUn33nuvNmzYICkn+bZYLHl6si0Wi1xdXZWcnKxhw4bp999/d0bYcDCSbgAAAAAoQY8++qi++OILRUdH68EHH9SRI0dkMplkGIaysrJs9Uwmk4KCgrRv3z517NiR4eXlFEuGAQAAAEAJ2bt3r+677z4NHTpUFotFX375pVJSUjRkyBBNmjRJ7u7ukqTExESlpqaqUaNGkqTjx48rJCTEmaHDQVycHQAAAAAAlBenT59WSEiIunfvrjZt2qhDhw5atWqVli5dqi+//FITJkzQ4MGDNXnyZP3666/64YcfJImEuxyjpxsAAAAASlBiYqICAgJsE6mdOXNG//3vf/XFF19o27Ztqlatmn744Qd9//33uvnmm5WdnS2z2ezkqOEoJN0AAAAAUAwJCQnav3+/unbtaldutVrtZiQ/duyYvvzyS0VHR2vMmDF65513ZLFYbMk5yid+uwAAAABQDGvXrtWoUaO0d+9eSZfW385NuHP7OWvXri1fX1+ZTCa98sorzgkWNxw93QAAAABQTKNHj5arq6vmzJljK7uypzs9PV333nuvOnbsqKefflpZWVlycWGarfKOpBsAAAAAimnXrl2688471bx5c73xxhtq2LChpLyJ9+HDh1W3bt1896F8IukGAAAAgBKwZcsWTZs2Te7u7hoyZIjuuOMOeXl5SRLPbldgJN0AAAAAUEJWr16tOXPm6I8//lDjxo3VpUsXjRgxwtlhwYlIugEAAACgBCUnJ2vevHnasWOH4uPjdfLkSd199906evSoxo8fr549e8rT09PZYeIGIekGAAAAAAc4deqULly4oJ07d+rw4cOqUqWKAgMD1adPH2eHhhuIpBsAAAAAAAfhSX4AAAAAcKDcfk76OysmeroBAAAAAHAQeroBAAAAAHAQkm4AAAAAAByEpBsAAAAAAAch6QYAAAAAwEFIugEAAAAAcBCSbgAAAAAAHISkGwAAAAAAByHpBgAAAADAQUi6AQAAAABwkP8HsFrNWGc9fUAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuits.plot.irb_summary()" ] }, { "cell_type": "raw", "id": "6ce69f81", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "For a refresher on the parameters plotted above, see\n", ":doc:`../../guides/error_diagnostics/irb`\\." ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "nbsphinx,raw_mimetype,-all", "main_language": "python", "notebook_metadata_filter": "-all", "text_representation": { "extension": ".py", "format_name": "percent" } }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }