{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {
        "id": "IP9A9ZWjUxJM"
      },
      "outputs": [],
      "source": [
        "graph = {\n",
        "    'A': {'type': 'OR', 'children': [('B', 1), ('C', 1)]},\n",
        "    'B': {'type': 'AND', 'children': [('D', 1), ('E', 1)]},\n",
        "    'C': {'type': 'OR', 'children': [('F', 1)]},\n",
        "    'D': {'type': 'OR', 'children': []},\n",
        "    'E': {'type': 'OR', 'children': []},\n",
        "    'F': {'type': 'OR', 'children': []}\n",
        "}"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "heuristic = {\n",
        "    'A': 1,\n",
        "    'B': 2,\n",
        "    'C': 1,\n",
        "    'D': 0,\n",
        "    'E': 0,\n",
        "    'F': 0\n",
        "}"
      ],
      "metadata": {
        "id": "09CGZ0n_7m3v"
      },
      "execution_count": 23,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "cost = {}\n",
        "solved = {}\n",
        "solution_graph = {}"
      ],
      "metadata": {
        "id": "-lRMwCq18qxp"
      },
      "execution_count": 24,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def ao_star(node):\n",
        "\n",
        "    if not graph[node]['children']:\n",
        "        cost[node] = 0\n",
        "        return 0\n",
        "\n",
        "    node_type = graph[node]['type']\n",
        "\n",
        "    if node_type == 'OR':\n",
        "        min_cost = float('inf')\n",
        "        for child, edge_cost in graph[node]['children']:\n",
        "            child_cost = edge_cost + ao_star(child)\n",
        "            if child_cost < min_cost:\n",
        "                min_cost = child_cost\n",
        "        cost[node] = min_cost\n",
        "\n",
        "    elif node_type == 'AND':\n",
        "        total_cost = 0\n",
        "        for child, edge_cost in graph[node]['children']:\n",
        "            total_cost += edge_cost + ao_star(child)\n",
        "        cost[node] = total_cost\n",
        "\n",
        "    return cost[node]\n",
        "\n",
        "\n",
        "\n"
      ],
      "metadata": {
        "id": "ForWOSeB8q0j"
      },
      "execution_count": 25,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def extract_solution(node, solution_graph):\n",
        "\n",
        "    if not graph[node]['children']:\n",
        "        return\n",
        "\n",
        "    node_type = graph[node]['type']\n",
        "\n",
        "    if node_type == 'OR':\n",
        "        min_cost = float('inf')\n",
        "        best_child = None\n",
        "\n",
        "        for child, edge_cost in graph[node]['children']:\n",
        "            child_cost = edge_cost + cost[child]\n",
        "            if child_cost < min_cost:\n",
        "                min_cost = child_cost\n",
        "                best_child = child\n",
        "\n",
        "        solution_graph[node] = [best_child]\n",
        "        extract_solution(best_child, solution_graph)\n",
        "\n",
        "    elif node_type == 'AND':\n",
        "        children_list = []\n",
        "        for child, edge_cost in graph[node]['children']:\n",
        "            children_list.append(child)\n",
        "            extract_solution(child, solution_graph)\n",
        "\n",
        "        solution_graph[node] = children_list\n"
      ],
      "metadata": {
        "id": "c66stFAgHNTB"
      },
      "execution_count": 26,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "result = ao_star('A')\n",
        "extract_solution('A', solution_graph)"
      ],
      "metadata": {
        "id": "fpHfHgsh8q3Z"
      },
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Minimum cost:\", result)\n",
        "print(\"Solution Graph:\", solution_graph)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "EGVFiion8q69",
        "outputId": "6ba8090e-56e3-45a2-e7b9-6255ae9bfeca"
      },
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Minimum cost: 2\n",
            "Solution Graph: {'A': ['C'], 'C': ['F']}\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## **Visualization**"
      ],
      "metadata": {
        "id": "9_hDX6GaJpTg"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import networkx as nx\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "def draw_full_graph_with_types(graph):\n",
        "    G = nx.DiGraph()\n",
        "\n",
        "    for node in graph:\n",
        "        G.add_node(node)\n",
        "\n",
        "        for child, cost in graph[node]['children']:\n",
        "            G.add_edge(node, child, weight=cost)\n",
        "\n",
        "    pos = nx.spring_layout(G)\n",
        "\n",
        "\n",
        "    or_nodes = [n for n in graph if graph[n]['type'] == 'OR']\n",
        "    and_nodes = [n for n in graph if graph[n]['type'] == 'AND']\n",
        "\n",
        "\n",
        "    nx.draw_networkx_nodes(G, pos,\n",
        "                           nodelist=or_nodes,\n",
        "                           node_color='lightblue',\n",
        "                           node_shape='o',\n",
        "                           node_size=2000)\n",
        "\n",
        "\n",
        "    nx.draw_networkx_nodes(G, pos,\n",
        "                           nodelist=and_nodes,\n",
        "                           node_color='orange',\n",
        "                           node_shape='s',\n",
        "                           node_size=2000)\n",
        "\n",
        "\n",
        "    nx.draw_networkx_edges(G, pos)\n",
        "    nx.draw_networkx_labels(G, pos)\n",
        "\n",
        "    labels = nx.get_edge_attributes(G, 'weight')\n",
        "    nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)\n",
        "\n",
        "    plt.title(\"AND-OR Graph (OR = Circle, AND = Square)\")\n",
        "    plt.show()\n",
        "\n",
        "\n",
        "draw_full_graph_with_types(graph)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 428
        },
        "id": "T3h5tCqx74_W",
        "outputId": "515d1b6d-79e6-45f5-d746-dc3b95979077"
      },
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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oG/fvjh+/Dh+/PFHdOnSRe6SiByKsddvi08trAynDVUuLCwMy5Ytw8WLFzFt2jR89dVXaNCgAYYNG4a//vpL7vKIAAAZGRno3r07/vzzT+zatYtBgMiKWV3LwJ04bcg4ubm5WLFiBebPn4/k5GT07NkTL7/8Mjp37swZCCSLnJwcREZG4tKlS9i1axdatWold0lEDslmWwbupFRICPZxR9eQ6ugUFIB63m6481pd1cvcndsrJKCetxs6BwegS0h1BPu422QQAABPT09MnjwZ8fHxWLt2La5du4auXbuidevW+Oabb6DVauUukRyMl5cXunXrhv379zMIENkAq24ZKAunDVVOCIHdu3fjww8/xO7du1G/fn1Mnz4do0ePhoeHfd0siqyT4W2FLVNE8rLZAYT3gtOGynfy5EnExMRg48aN8PX1xaRJkzBx4kRUr15d7tKIiMjMHCoMUOUSExOxcOFCfPnllxBCYPTo0Zg+fTpCQ0PlLo1sjF6vr/CGQkRkPexizACZTv369bFkyRIkJyfjtddew8aNG9GoUSNER0fj2LFjRu8nIyMDO3fuxOXLl81YLVmr69evY/r06Thx4oTcpRCRCTEMOJiAgADMnDkTycnJWLp0KY4fP442bdqgS5cu2L17NyprKDpw4AAWLVqE9u3bo0+fPrzDogO5evUqOnfujCVLluCNN97Av//+K3dJRGQiDAMOys3NDePHj8f58+exadMm5ObmYteuXZWGgfbt22PhwoUYOXIktm/fjrNnz1qoYpJTYWEhli9fjkaNGmHPnj04duwYpk6digsXLshdGhGZAMcMEICi0d8ajQYqlcqoEeCPPPII6tWrh08//ZTLITsAIQR++uknZGRkYPjw4UhMTMRDDz2ELl26YOHChQgODpa7RCIqA8cMUJVIkgRnZ+cKg4BOV7RE9MmTJ3H48GGMGjWKQcBBSJKE3r17F99psH79+jh48CB27tyJ1157DSkpKcXbsuuIyPYwDFCVzZo1Cx07dkSbNm3kLoUsyHDrbCEEdDodmjVrhr1792Lz5s2YNWsWrly5go8//hjPPPMMrl+/LnO1RFQVTnIXQLZBr9dDqVQiJSUFP/30E9auXYtq1arJXRbJQJIkKJVKaLVaPPzww9i1axd69+6NEydO4NSpU1i/fj1q1Kghd5lEVAVsGSCjGLoP5syZg2bNmiEyMpKryzk4Jycn6PV6REVFoV+/fjhz5gy2b9+O6OhouUsjoipiywBVSK/XY8uWLfDy8kLLli2xZs0aLFiwAHXq1JG7NLIAIQRu3LgBPz8/qFSqMreZOXMmNm3ahD179qBTp06WLZCITIItA1Spo0ePolu3bggODoaLiwsiIyPLXIFOq9Xi6tWryMzMtHyRZHJCCLz++uto2rQpsrOzy5122qhRI/z2228MAkQ2jGGAKqRQKDB37lzcvHkT06ZNgxACffr0wcaNG6HRaEps6+TkhKlTpyIoKAgzZswoMcKcbIter8eUKVPw/vvv4/XXX0dAQECZ3UIKhQLDhw9Hu3btZKiSiEyFYYCM4u/vjzlz5iAzMxPPP/88fv/99zJbBxYuXIhJkybh888/R/369TFq1CicOXNGhorpXul0OowbNw4ff/wxli9fjmnTpsldEhGZGRcdIrPIycnB559/joULFyIlJQV9+vTBjBkz0LFjRw48tGIajQYjR47EN998g1WrVhWvK0BEtomLDpGsvLy8MH36dFy4cAFff/01Ll68iE6dOqFdu3bYvHlz8QJGZD0KCgrw1FNP4dtvv8XGjRsZBIgcCFsGyCKEENi5cyc+/PBD7N27Fw0bNsSLL76IkSNHws3NTe7y/pMdB2hz5K7C4tRaJwwc8TL27duH2NhYPPbYY3KXREQmYOz1m2GALO7o0aOIiYnB5s2bERAQgMmTJ+P555+Hv7+/vIVlxwFbG8lbg4ya/58bFn6xFV26dJG7FCIyEXYTkNVq06YNNm7ciH///RdPPfUU3nnnHdSrVw9TpkxBUlKSfIU5YIvAnb7+cimDAJGDYhgg2YSGhmLp0qVITk7GjBkzsGbNGjRs2BD/+9//cPLkSbnLczjNmzeXuwQikgnDAMmuevXqmDNnDpKTk7Fo0SL8/vvvaNmyJXr06IGff/653MVuiIjINBgGyGp4eHhg0qRJiIuLw4YNG5CWloYePXqgZcuWWL9+PbRardwlEhHZJYYBsjpOTk6Ijo7GsWPHsHv3btSsWRP/+9//EBYWhiVLliAvL0/uEomI7ArDAFktSZLQtWtX7NixA3/++Sfat2+P6dOnIygoCLNmzcL169flLpGIyC4wDJBNaN68OdasWYOEhAQMHz4cCxYsQHBwMCZMmID4+Hi5yyMismkMA2RTgoODsWjRIiQnJ+P//u//EBsbi0aNGuGpp57CkSNH5C6PiMgmMQyQTfL398cbb7yBixcvYvny5fjrr7/Qtm1bdOrUCdu2beMMBCKiKmAYIJvm6uqKcePG4Z9//sHmzZtx69Yt9OnTB82aNcNXX32FwsJCuUskIrJ6DANkF5RKJQYNGoTff/8dBw4cKL59coMGDTB//nxkZ2fLXSIRkdViGCC7IkkSIiMjsWXLFvz999/o0aMHXnvtNQQFBeHVV1/FlStX5C6RiMjqMAyQ3YqIiMCKFSuQmJiIcePG4ZNPPkFISAieffZZnDt3Tu7yiIisBsMA2b26deviww8/xKVLlzB37lxs374dTZo0weOPP45Dhw7JXR4RkewYBshh+Pj4YMaMGbhw4QJWrFiB+Ph4dOjQAe3bt8f3338PvV4vd4lERLJgGCCH4+LigtGjR+P06dPYsmULlEolBg4ciCeffFLu0oiIZMEwQA5LoVCgb9++OHDgAH7//Xc0CG0gd0lERLJwkrsAImvQrl07tGs0D9jRSu5SiIgsji0DREREDo5hgIiIyMExDBARETk4hgEiIiIHxzBARETk4DibgEgmq/YDoz8r+Vh1b6BpXeDlvkDvFrKURUQOiGGASGZvPQnUrw4IAVzLBlYdAB6LAba8CPRtKXd1ROQIGAaIZNa7OdD6jvWOnukE1JwArP+dYYCILINjBoisjK874OYMOCnlroSIHAVbBohklpUP3Mwp6ia4ng18tBPIvQUMay93ZUTkKBgGiGTW7b2S/3ZRASvGAd2byVMPETkehgEimS0dBTSqXfT/17KANb8Cz34BeLkBg9rIWhoROQiGASKZPRxacgDh0EeAh94AJq0C+j4EOPOvlIjMjAMIiayMQgF0jgCuZAJxV+WuhogcAcMAkRXS6or+m3tL3jqIyDEwDBBZGY0W2HW6qHugSR25qyEiR8DeSCKZbf8LOJda9P/Xs4F1vxV1D7zaD/B2l7c2InIMDANEMpv17X//76oCwusAy0YDz3WVryYiciwMA0QyGRVV9EVEJDeOGSAiInJwDANEREQOjmGAiIjIwTEMEBEROTiGASIiIgfHMEBEROTgGAaICACQlpYmdwlEJBOGASICADzW5zGMGTMGp06dkrsUIrIwhgEiAgBMGD8BP//8M5o3b46uXbti69at0Ov1cpdFRBbAMEBEAIBRo0bhwoULWL9+PXJzc9GvXz+Eh4dj6dKlyM3Nlbs8IjIjhgEiKqZSqTBkyBD88ccf+O2339CiRQtMnjwZ9erVw8svv4xLly7JXSIRmQHDABGVIkkSHnnkEWzcuBEXLlzAs88+i88++wz169cvDgtEZD8YBoioQsHBwYiJicGlS5ewcOFCHDt2DI888khxWNBqtXKXSET3iWGAiIzi5eWFF154AefPn8cPP/wAV1dXREdHo0GDBoiJiUFmZqbcJRLRPWIYIKIqUSqV6N+/P/bu3YuTJ0+iS5cueOONNxAYGIhJkyYhLi5O7hKJqIoYBojonrVo0QKrVq1CcnIypk+fjm+++QaNGzcuDgtCCLlLJCIjMAwQ0X2rVasW3nrrLVy6dAmff/45EhMT0aVLFzz00ENYtWoVCgoK5C6RiCrAMEBEJuPq6opnnnkGp06dws8//4y6deti9OjRCAoKwptvvonr16/LXSIRlYFhgIhMTpIkdOvWDT/99BP++ecfPPHEE/jggw8QFBSEZ555BqdPn5a7RCK6A8MAEZlVeHg4PvnkE6SkpGDOnDnYuXMnHnzwweKwwCWPieTHMEBEFuHv749XX30ViYmJWLduHbKzs9G3b180adIEn3zyCfLy8uQukchhMQwQkUWpVCoMHToUhw8fxqFDh/Dggw/ihRdeQGBgIF555RUueUwkA4YBIpKFJEl49NFHsWnTJiQkJOCZZ57B8uXLUb9+fQwdOhRHjhyRu0Qih8EwQESyCwkJwbx585CSkoIFCxbgyJEjaNu2bXFY4JLHRObFMEBk4OQldwXysoLz9/LywuTJk/Hvv//i+++/h7OzMwYPHozQ0FDMmzePSx4TmYkkjFgiLDs7Gz4+PsjKyoK3t7cl6iKSR3YcoM2RuwrLc/ICvMPkrqJMJ0+exKJFi7B+/Xo4OztjzJgxmDx5Mho2bCh3aURWz9jrN8MAEdmEK1euYNmyZVi2bBnS0tLQr18/TJs2DVFRUZAkqdLXJyYm4vDhw2jdujWDBDkMY6/f7CYgIptQu3ZtvPXWW0hOTsZnn32GhIQEdO7cGS1btsTGjRsrvA+CXq/H/v37sWLFCrRv3x5dunTB5cuXLVg9kXVjGCAim+Lm5oZnn30Wp0+fxq5du1C7dm3ExcVVuHiRQqFAv379sGbNGvTt2xdnz55FWlqaBasmsm5OchdARHQvJElC9+7d0b17d+h0OiiVygq3DwgIAABs27YNY8aMQaNGjSxRJpFNYMsAEdm8yoKATqcDAGzatAlZWVkYOHAgXF1dLVEakU1gGCAiu6dQFL3Vvfvuuxg4cCDCw8NlrojIujAMEJFd0+v1kCQJx48fx19//YURI0bAy0v+NRWIrAnDABHZNcO0w7feegsdO3ZEy5YtZa6IyPpwACER2SW9Xo9vv/0W3t7eiIiIwLZt27BixQpUr15d7tKIrA5bBojIbp05cwaPPfYYGjVqBDc3NzzwwANlbqfVanHw4EHMnz8fWVlZFq6SSH4MA0RklxQKBd566y3k5+fjgw8+gKenJ6KiovDRRx/h1q1bJbZ1cnLCH3/8gddeew2BgYGYPHkyEhISZKqcyPIYBojIrrm6umLKlClITU3FsmXLkJ6eDhcXl1LbzZgxA0lJSZgyZQrWrVuHsLAwDBgwAPv3769wdUMie8B7ExAR3UWtVmPNmjVYtGgRzp49i4ceeghTp05FdHR0mUGCyFrx3gRERPfIzc0NY8eOxZkzZ7Bz507UrFkTI0eOREhICN5++23cuHFD7hJlpxcCuYVaZN7SIF1diJv5BUhXFyLzlga5hVro2ZpiU9gyQERkhLNnz2LJkiX4+uuvIYTAsGHDMGXKlHIHJdoTvRDILtAis0Bz++KvQXaBBuXfDaLok6a3iwr+bir4uqrg66KCt4sTFEbcYZJMh7cwJiIyg7S0NHz66af4+OOPceXKFXTv3h3Tpk1Dz549i1c6tBfp6kJcyMxHSo4a+ttXCglAVT7z37m9QgICvdwQ6ucOP1dn0xZLZWIYICIyo8LCQmzatAkLFy7E8ePHER4ejilTpmDEiBFwd3eXu7x7ptMLXMpRIyEjD1kF2ipf/Ctj2J+PixMa+nkg0MsNSgVbC8yFYYCIyAKEEPj111+xaNEifP/99/D19cW4ceMwadIk1K1bV+7yjKbTC5xLy0VCZh60esv19zspJIT6eSDc35OhwAw4gJCIyAIkSUJkZCQ2b96M+Ph4jBgxAkuXLkVISAiefvppHD16VO4SK5WmLsTupBs4n55r0SAAAFq9wPm0XOxOuoF0daFFj03/YRggIjKR+vXrY+HChUhJSUFMTAx+//13PPzww+jQoQM2b95cfCtla6HTC5y+no39yWnI18hbW75Gh33JaTh9PRs6CwcSYhggIjI5b29vTJ06FXFxcYiNjYVCocCTTz6Jhg0bYsGCBVax5HH67daAuIw8AKYdF3AvDMePy8hjK4EMGAaIiMxEqVRi4MCBOHDgAI4dO4YOHTrglVdeQWBgIKZMmSLbkseXc9RW0RpQnnyNDvuT03A5Ry13KQ6DYYCIyAJatWqF1atX4+LFi5g8eTLWrFmDsLCw4rBgqSWPkzLzcTg1EwLytwaUx1Db4dRMJGXly12OQ2AYICKyoDp16uCdd97BpUuXsHz5cpw/fx5RUVHFYaGw0HzN40mZ+ThxTf4uiqo4cTWLgcACGAaIiGTg7u6OcePG4cyZM9i+fTtq1KiBESNGIDg4GHPnzsXNmzdNerzLOWqbCwIGJ65mscvAzBgGiIhkpFAo0KtXL+zYsQN///03+vfvj3feeQf16tXDuHHj8Pfff9/3MdLVhTiSmnn/xcroSGomBxWaEcMAEZGViIiIwKeffopLly7h//7v/7B161Y88MAD6NmzJ3bs2AG9vqK7AZRNpxc4eiXT9MXK4OiVTE47NBOGASIiK1OtWjW88cYbSEpKwurVq3Hz5k307t0bTZs2xaeffor8fOP70M/ezEGeRme1gwWNJQDkaXQ4ezNH7lLsEsMAEZGVcnZ2xrBhw3Ds2DHs378fTZo0wYQJE1CvXj28/vrruHz5coWvT1MXFq8jYC/iMvLYXWAGDANERFZOkiR07NgRsbGxiI+Px/Dhw/HRRx8hJCSkOCzcTacXOHYlE/a22r8EdheYA8MAEZENadCgARYtWoSUlBR8+OGHOHToENq0aYPIyEjExsYWL3l8Lj3XLroH7mboLjiXnit3KXaFYYCIyAb5+Phg2rRpiI+Px+bNmwEATzzxBBo2bIhFi5cg3s4vlgkZeWwdMCGGASIiG6ZUKjFo0CAcPHgQR48eRfv27bH14O8Wv/ugpWn1Ailce8BkJGHEGpjG3g+ZiIjktyMuFXlaAUlh35/3fFyc0DWkutxlWDVjr9/2/ZtCRORg0tWFyNdLdh8EACCrQMuZBSZi/78tREQO5EJmvt3NICiPhKLzpfvHMEBEZCf0oqgf3b5HC/xHAEjJUUNvoTs+2jOGASIiO5FdoIWdjxssRS+AnAKt3GXYPCe5CyAiItPILNBY9Hh7Yr/B0tenlfv8exu2oFGLVmavI6NAAx9XldmPY88YBoiI7ETmLQ0kwOLdBEMmz0CNwKBSj9cKDjH7sSUUnTd8zH4ou8YwQERkJ9LVGlnGCzwU2QUNmzWX4chFwSddbdkWEXvEMQNERHZALwSyLNxNYC2yCzQcRHif2DJARGQH8mW8D0F+bjayM9JKPCZBgpefv0WOr0fR+Xs685J2r/idIyKyA3IuP/zm6OhSj6mcXbDhVKLFarD35ZfNjWGAiMgOyNlMPnbWu6gd0qDEYwqF0qI1sJvg/jAMEBHZATkvhg2bPSTbAEIDhoH7wwGERER2QCE5yiLEZXP0879fDANERHbA0S+Gjn7+94thgIjIDjgpHPti6Ojnf784ZoCIyA64q5SyrD4IACcP7sHlxPhSjzd+qDVq1Qs2+/EVKDp/uncMA0REdkAhSfBxUVn8/gQAsGFJTJmPT3x3oUXCgLeLit0E94lhgIjITvi7qZBVYLklibsMikaXQaXXGLAkCUXnTfeHYwaIiOyEr6tKtlUI5SJQdN50fxgGiIjshK+LY14U/Rz0vE2JYYCIyE54uzjB0QbVKyTAy4U93veLYYCIyE4oJAmBXm5wlDwgAQj0cuPgQRNgGCAisiMNfN0dZtyAABDq5y53GXaBYYCIyI74uznDx0GazX1cnODn6ix3GXaBYYCIyM409POQuwSLcJTztASGASIiOxPo5Wb3y/M6KYrGR5BpMAwQEdkZpUJCqJ1/ag7184DSzgOPJTEMEBHZoXB/T3jcvl+BPZEAeKiUCPf3lLsUu8IwQERkh5QKCa1r+9rdzAIBoE1tX7YKmBjDABGRnQpwc0aYnXUXhPl5wN+NMwhMjWGAiMiORVTzsovuAkP3QEQ1L7lLsUsMA0REdkypkNCmtq/cZZgEuwfMh2GAiMjO+bs54+E6vnKXcV8eruPL7gEzYhggInIAdb3c0LKWj9xl3JOWtXxQl2sKmBXDABGRgwjxcbe5QNCylg9CfHj/AXNzjAWsiYgIQFEgUCkkHEnNBACrnHpoGBXwcB1ftghYCFsGiIgcTF0vN0QFBcBdpZS7lDK5q5SICgpgELAghgEiIgfk7+aMbiHVi9chkHuMvuH4YX4e6BZSnYMFLYzdBEREDkqpkNCshjfqeLni2JVM5Gl0stXirlKiTW3OGJALwwARkYMLuN1KcC49FwkZedDqLTeSwOn2TZXC/T25hoCMGAaIiAhKhYSm1bwQ7u+JlBw14jPykFWghQTTDjI07M/XxQmhfh4I9HJjCLACDANERFRMqZAQ7OOOYB93pKsLcSEzHyk5ahgaC6oaDu7cXiEBgV5uCPVzh58ruwOsiVFhQIiiH2V2drZZiyEiIuvhBKCRhwIN3d2RU6BFZoEGWQUaZKi1yCnUQF/BaxUAvJxV8HNzgo+LCr4uKni5OEEhSUDhLWQX3rLQWTg2w3XbcB0vj1FhICcnBwBQr169+yyLiIiILC0nJwc+PuUvOCWJyuICAL1ej9TUVHh5eUGS2LdDRERkC4QQyMnJQZ06daBQlL+agFFhgIiIiOwXFx0iIiJycAwDREREDo5hgIiIyMExDBARETk4hgEiIiIHxzBARETk4BgGiIiIHNz/A7LnghQZ+8huAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def draw_solution_graph(solution_graph, start_node):\n",
        "    G = nx.DiGraph()\n",
        "\n",
        "    visited = set()\n",
        "\n",
        "    def build_graph(node):\n",
        "        if node in visited:\n",
        "            return\n",
        "        visited.add(node)\n",
        "\n",
        "        if node in solution_graph:\n",
        "            for child in solution_graph[node]:\n",
        "                G.add_edge(node, child)\n",
        "                build_graph(child)\n",
        "\n",
        "    build_graph(start_node)\n",
        "\n",
        "    pos = nx.spring_layout(G)\n",
        "\n",
        "    nx.draw(G, pos,\n",
        "            with_labels=True,\n",
        "            node_size=2000,\n",
        "            node_color=\"lightgreen\",\n",
        "            arrows=True)\n",
        "\n",
        "    plt.title(\"Solution Graph (After AO*)\")\n",
        "    plt.show()\n",
        "\n",
        "\n",
        "draw_solution_graph(solution_graph, 'A')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 539
        },
        "id": "6WOL_Sd89IiW",
        "outputId": "db9512d2-d7d3-4458-86fe-d05467dd4982"
      },
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAIKCAYAAACdo98PAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUEVJREFUeJzt3Xd4FFXj9vF7C5tAIJEWQB9pUkUxgihVEGkBQRAEUaRIlSoCClbsiorYH/mpgArSRAEBQ5cWpfdQVKwQQw0QSMLunvcPn+Q1kiCQZGfL9+PFdcns7My9SUjunJlz1maMMQIAAAAuk93qAAAAAAhsFEoAAADkCoUSAAAAuUKhBAAAQK5QKAEAAJArFEoAAADkCoUSAAAAuUKhBAAAQK5QKAEAAJArFEogCDRp0kRNmjTJ02P+/PPPstlsmjx5cp4eNxhMnjxZNptNGzduzNVxBg4cqObNm1/28zds2KD69esrIiJCNptNW7duzVWeQPXf//5XZcuWVVpamtVRgJBFoQQssGPHDnXq1EnlypVTeHi4rrrqKjVv3lxvv/22z7NMmzZNEyZM8Pl5L8bq1avVuXNnXXXVVXK5XIqKitItt9yiZ599Vn/++afV8XLlwIED+vDDD/XYY49l+3hCQoJsNpvCw8N14sSJ8x4/d+6c7r77bh07dkxvvPGGPv30U5UrV07vvfeeZb8EeDweXXnllbLZbFq0aFGO+xlj9Omnn+rWW2/VFVdcoUKFCun666/Xs88+q5SUlByf17NnT61cuTLb7enp6frggw/y4mUAuAwUSsDH1q1bp5tuuknbtm1T37599c4776hPnz6y2+168803fZ4np0JZrlw5nT17Vvfff7/PM0nSU089pVtvvVWbNm1Sz5499f777+vFF19UjRo19Prrr6t+/fqW5Morb775pipUqKDbbrst28c/++wzlS5dWpI0e/bs8x7/8ccf9csvv2jkyJHq16+funXrpqJFi1paKJcvX65Dhw6pfPnymjp1arb7eDwe3XPPPerevbskaezYsZowYYJiYmL0zDPPqG7dull+WVi/fr2OHz9+3nG+//77zKIdHh6uHj16aPz48TLG5P0LA/CvnFYHAELNCy+8oKioKG3YsEFXXHFFlseSkpKsCZWNjNExK8yYMUPPPfecOnfurE8//VQulyvL42+88YbeeOONCx7DGKPU1FQVLFgwP6NelnPnzmnq1KkaMGBAto8bYzRt2jTde++9OnDggKZOnao+ffpk2Sfja+WfX0P5we12y+v1nvd5+KfPPvtMtWrVUo8ePfTYY48pJSVFERERWfYZN26cZs6cqZEjR+rVV1/N3N6vXz917txZ7du3V8+ePTNHONesWaMuXbrotddekySdPn1aw4YN0+LFizVz5szM19+5c2eNGzdOK1asUNOmTfPw1QO4KAaAT1WtWtU0adLkovY9d+6cefbZZ03FihWNy+Uy5cqVM2PGjDGpqalZ9mvcuLFp3Lhx5t8nTZpkJJkDBw5k2W/FihVGklmxYkXm8yRl+VOuXDljjDEHDhwwksykSZOyHGPZsmWmYcOGplChQiYqKsq0a9fO7N69O8s+Tz/9tJFk9u/fb3r06GGioqJMZGSk6dmzp0lJSfnX112lShVTokQJc+rUqYv6OBljTLly5UybNm3MN998Y2rXrm3CwsLMG2+8YYwx5uOPPza33XabKVmypHG5XKZ69ermvffey/EYcXFx5oYbbjBhYWGmevXq5osvvsiyX8bHd82aNWb48OGmRIkSplChQqZ9+/YmKSnpX7MuX77cSDIrV67M9vHVq1cbSWb9+vVmxowZxm63m99++y3z8R49epz3eWvcuLEpV65cttszHD9+3AwbNsz85z//MS6Xy1xzzTXm5ZdfNh6PJ3OfjM/7q6++at544w1TsWJFY7fbzZYtWy74ms6cOWOKFClixo0bZw4dOmTsdruZOnXqefsULVrUVKlSxZw7dy7b4/Tq1ctIMvHx8Vky3X333SYiIsJceeWV5vXXXzfp6ennPbdYsWJm6NChF8wJIH8wQgn4WLly5RQfH6+dO3fquuuuu+C+ffr00ZQpU9SpUyeNGDFC33//vV566SUlJCToyy+/zHWWxx9/XMnJyfr9998zR/wKFy6c4/5Lly5VbGysKlasqLFjx+rs2bN6++231aBBA23evFnly5fPsn/nzp1VoUIFvfTSS9q8ebM+/PBDRUdH65VXXsnxHPv27dO+ffvUp0+fC2bJzt69e9W1a1f1799fffv2VdWqVSVJ77//vmrUqKF27drJ6XRq/vz5GjhwoLxerwYNGpTlGPv371eXLl00YMAA9ejRQ5MmTdLdd9+tb7755rwJNEOGDFHRokX19NNP6+eff9aECRM0ePBgzZgx44I5161bJ5vNphtvvDHbx6dOnaprrrlGderU0XXXXadChQrp888/16hRoyRJ/fv311VXXaUXX3xRQ4cOVZ06dVSqVCmlpKRoyJAhKly4sB5//HFJUqlSpSRJZ86cUePGjfXHH3+of//+Klu2rNatW6cxY8bo0KFD5932MGnSJKWmpqpfv34KCwtTsWLFLvia5s2bp9OnT+uee+5R6dKl1aRJE02dOlX33ntv5j5r1qzR8ePHNWzYMDmd2f/46d69uyZNmqSvv/5adevWlfTXaLnNZjvv//+pVq1aWrt27QVzAsgnVjdaINQsXrzYOBwO43A4TL169cwjjzxi4uLizhtx2bp1q5Fk+vTpk2X7yJEjjSSzfPnyzG2XO0JpjDFt2rTJHJX8u+xGKGNiYkx0dLQ5evRo5rZt27YZu91uunfvnrktY4TygQceyHLMDh06mOLFi+f0oTHGGDN37lwjyUyYMCHLdq/Xaw4fPpzlz99HuTJG57755pvzjnnmzJnztrVs2dJUrFgxy7aMY/x9RDI5OdmUKVPG3HjjjZnbMj6+zZo1M16vN3P78OHDjcPhMCdOnLjga+zWrVuOH4f09HRTvHhx8/jjj2duu/fee80NN9yQZb+Mz+WsWbOybK9Ro0aWr4UMzz33nImIiDD79u3Lsn306NHG4XCYX3/91Rjz/z/vkZGRFzXamuGOO+4wDRo0yPz7xIkTjdPpzHKMCRMmGEnmyy+/zPE4x44dM5LMXXfdlfmc8uXLm1mzZpkePXqY+fPnmyFDhphq1aqZ7du3Z3luv379TMGCBS86M4C8w6QcwMeaN2+u+Ph4tWvXTtu2bdO4cePUsmVLXXXVVZo3b17mfgsXLpQkPfzww1meP2LECEnSggULfBda0qFDh7R161b17Nkzy2hVzZo11bx588y8f/fPewQbNWqko0eP6uTJkzmeJ+Oxf45OJicnq2TJkln+/HOZnAoVKqhly5bnHfPv91EmJyfryJEjaty4sX766SclJydn2ffKK69Uhw4dMv8eGRmp7t27a8uWLUpMTMyyb79+/bKMljVq1Egej0e//PJLjq9Pko4ePaqiRYtm+9iiRYt09OhRde3aNXNb165dtW3bNu3ateuCx72QWbNmqVGjRipatKiOHDmS+adZs2byeDxatWpVlv07duyokiVLXtSxjx49qri4uCyZO3bsKJvNppkzZ2ZuO3XqlCSpSJEiOR4r47GMr4O6detq8+bN6tSpk6S/vi7eeustTZ48WVdffXWW5xYtWlRnz57VmTNnLio3gLxDoQQsUKdOHc2ZM0fHjx/X+vXrNWbMGJ06dUqdOnXS7t27JUm//PKL7Ha7KlWqlOW5pUuX1hVXXPGvpSWvZZwv4zLy31WvXl1Hjhw5b8mXsmXLZvl7RonKbtZuhoxCcfr06SzbCxcurCVLlmjJkiWZl37/qUKFCtluX7t2rZo1a6aIiAhdccUVKlmyZOZyPf8slJUqVTrvkmqVKlUk/bU2599dzuvLYHKYjfzZZ5+pQoUKCgsL0w8//KAffvhB11xzjQoVKpTjzOmLsX//fn3zzTfnlfJmzZpJOn9CWE4fy+zMmDFD586d04033piZ+dixY7rllluyZM743GYUy+z8s3Tecsst2ZbvW2655bwJSRkf05wuiQPIP9xDCVjI5XKpTp06qlOnjqpUqaJevXpp1qxZevrppzP3uZwfjjk9x+PxXHbWy+FwOLLdnlOZkqRq1apJknbu3Jllu9PpzCw/v//+e7bPzW5G948//qjbb79d1apV0/jx43X11VfL5XJp4cKFeuONN+T1ei/qtWTncl6fJBUvXjzb0nny5EnNnz9fqampqly58nmPT5s2TS+88MJlfU14vV41b95cjzzySLaPZ5TmDJcyOz6jNDZo0CDbx3/66SdVrFhR1atXlyRt375d7du3z3bf7du3S5Kuvfba8x77t+WQjh8/rkKFCvnlzH4g2FEoAT9x0003Sfrr0rL01+Qdr9er/fv3Z/4glqQ///xTJ06cULly5XI8VsaIzj8XxM5uVPNiy0nG+fbu3XveY3v27FGJEiXOWyLmclStWlWVK1fWV199pQkTJuT6mPPnz1daWprmzZuXZURxxYoV2e7/ww8/yBiT5eOyb98+STpv0tHlqlatmqZOnark5GRFRUVlbp8zZ45SU1P1/vvvq0SJElmes3fvXj3xxBNau3atGjZsmOOxc/p8XnPNNTp9+nRmKc8rBw4c0Lp16zR48GA1btw4y2Ner1f333+/pk2bpieeeEINGzbUFVdcoWnTpunxxx/PtpB/8sknkqQ77rjjsrL8/d8KAN/hkjfgYytWrMh2BCvjHsSMS8qtW7eWpPNm344fP16S1KZNmxzPcc0110hSlvviPB6PJk6ceN6+ERER5132zU6ZMmUUExOjKVOmZCmqO3fu1OLFizPz5oWxY8fqyJEj6tu3r86dO3fe4/82Avh3GaXl789JTk7WpEmTst3/4MGDWWbQnzx5Up988oliYmIyFxrPrXr16skYo02bNmXZ/tlnn6lixYoaMGCAOnXqlOXPyJEjVbhw4X+97B0REZHtO+t07txZ8fHxiouLO++xEydOyO12X9ZrycjzyCOPnJe5c+fOaty4ceY+hQoV0siRI7V3797MWeh/t2DBAk2ePFktW7bMnOF9KTZv3hzwC94DgYoRSsDHhgwZojNnzqhDhw6qVq2a0tPTtW7dOs2YMUPly5dXr169JEk33HCDevTooYkTJ+rEiRNq3Lix1q9frylTpqh9+/Y5vsOKJNWoUUN169bVmDFjdOzYMRUrVkzTp0/PtjTUrl1bM2bM0MMPP6w6deqocOHCatu2bbbHffXVVxUbG6t69eqpd+/emcsGRUVFaezYsXny8ZGke++9Vzt37tRLL72k9evX65577lGFChWUkpKinTt36vPPP1eRIkVynNjydy1atJDL5VLbtm3Vv39/nT59Wv/3f/+n6OjozNHgv6tSpYp69+6tDRs2qFSpUvr444/1559/5lhAL0fDhg1VvHhxLV26NHMR7oMHD2rFihUaOnRots8JCwtTy5YtNWvWLL311ls5Hrt27dp6//339fzzz6tSpUqKjo5W06ZNNWrUKM2bN0933HGHevbsqdq1ayslJUU7duzQ7Nmz9fPPP583Knoxpk6dqpiYmPMmyGRo166dhgwZos2bN6tWrVoaPXq0tmzZoldeeUXx8fHq2LGjChYsqDVr1uizzz5T9erVNWXKlEvOsWnTJh07dkx33nnnJT8XQB6wbH45EKIWLVpkHnjgAVOtWjVTuHBh43K5TKVKlcyQIUPMn3/+mWXfc+fOmWeeecZUqFDBFChQwFx99dUXtbC5Mcb8+OOPplmzZiYsLMyUKlXKPPbYY2bJkiXnLRt0+vRpc++995orrrjiohY2X7p0qWnQoIEpWLCgiYyMNG3bts1xYfPDhw9n2Z7TckY5WblypenUqZMpU6aMKVCggImMjDQ33XSTefrpp82hQ4ey7JuxKHl25s2bZ2rWrGnCw8NN+fLlzSuvvGI+/vjj87L8fWHzmjVrmrCwMFOtWrXzlubJeB0bNmzIsj27ZZlyMnToUFOpUqXMv7/++utGklm2bFmOz5k8ebKRZObOnZvjskGJiYmmTZs2pkiRIuctbH7q1CkzZswYU6lSJeNyuUyJEiVM/fr1zWuvvZa5bNXfFzb/N5s2bTKSzJNPPpnjPj///LORZIYPH565zePxmEmTJpkGDRqYyMhIEx4ebmrUqGGeeeYZc/r06X89b3YeffRRU7Zs2SzLOAHwHZsxvPEpAEh/3SN53XXX6euvv873c/3000+qVq2aFi1apNtvvz3fzxfM0tLSVL58eY0ePVrDhg2zOg4QkriHEgAsULFiRfXu3Vsvv/yy1VEC3qRJk1SgQIEc3xsdQP5jhBIA/seXI5QAEEwYoQQAAECuMEIJAACAXGGEEgAAALlCoQQAAECuUCgBAACQKxRKAAAA5AqFEgAAALlCoQQAAECuUCgBAACQKxRKAAAA5AqFEgAAALlCoQQAAECuUCgBAACQKxRKAAAA5AqFEgAAALnitDoAAABAoPAYj056T8pt3HLLLa/xym6zyymnnDanIu2RctgcVsf0OQolAABANjzGo2OeY0ryJCnJk6REd6KOeI7IK2+Oz7HLrhKOEirtLK1oR7SiHdEq5igW9CXTZowxVocAAADwF4nuRG1P26596fvkkUfSX0XxQkXyn/6+v0MOVXFV0Q1hN6iUs1S+ZLYahRIAAIQ8t3Frb/pebUvbpsOew7LJJqO8q0gZxyvpKKmYsBhVcVWR0xY8F4oplAAAIGS5jVvrU9drW+o2pSvdZ+d1yaWY8BjVCa8TFMWSQgkAAELSIfchxaXEKdmbbMn5bbIp0h6plhEtVcZZxpIMeYVCCQAAQorbuBV/Nl6b0zbn+aXtS5Vx/lphtVSvYL2AHa2kUAIAgJBh9ajkhUTZowJ2tJJCCQAAQsL+9P1alLJIkiwdlcyJTTZJUmxErCq7Kluc5tJQKAEAQNDbmbZTy84sszrGRWtWqJlqhNWwOsZF460XAQBAUAu0MilJS88s1a60XVbHuGgUSgAAELT2p+8PuDKZYemZpdqfvt/qGBeFQgkAAILSIfehzHsmA9WilEU65D5kdYx/RaEEAABBx23cikuJszpGnohLiZPbuK2OcUEUSgAAEHTiz8Yr2Zvsl7O5L4WRUbI3Wd+d/c7qKBdEoQQAAEHlkPuQNqdttjpGntqUtsmvL31TKAEAQNDIuNSdsaZjsLDJ5teXvimUAAAgaGxI3RAUl7r/KePS94bUDVZHyRaFEgAABAW3cWtr6larY+Srralb/XKUkkIJAACCwr70fUpXutUx8lW60rUvfZ/VMc5DoQQAAEFha9pWqyPkO5tsfvk6KZQAACDgJboTddhz2OoY+c7I6LDnsBLdiVZHyYJCCQAAAt72tO1BN7M7JzbZtCNth9UxsqBQAgCAgOYxHu1L3xd0M7tzYmS0N32vvMZrdZRMTqsDAAAA5MYxzzF55PHZ+b6f9r0+H/x5to/dPux2tX26bb5n8Mijo56jKuksme/nuhgUSgAAENCSPEmWnDd2TKyKlyueZVvp6qV9dv4kTxKFEgAAIC8keZJkl11e+fYScPVm1VX2xrI+PWcGu+xK8iSphmpYcv5/4h5KAAAQ0BLdiT4vk1bzyutXM70ZoQQAAAHLYzw64jliyblTT6bq9NHTWbYVLl7YZ+c/4jkir/HKbrN+fJBCCQAAAtZJ70nLRiff6/DeedsmHJvgs/N75VWyN1lFHUV9ds6cUCgBAEDAsvJ9rTu92kklr7F2Uoy/vK83hRIAAAQst6wrVGVrlbVsUk4GXy6XdCHWX3QHAAC4TP60uLcVPIZCCQAAkCv+MCHFSg6bw+oIkiiUAAAggDlD/O49hyiUAAAAueK0hXah9JfXT6EEAAABK9IeKXuI1hm77IqyR1kdQ5JkM8YYq0MAAABcrs9Pfm7Z+3lbKdoRra6RXa2OIYkRSgAAEOBKO0uH3CilXXaVdpa2Okam0ProAwCAoBPtiA7J9/KOdkRbHSMThRIAAAQ0fypWvuRPr5tCCQAAAloxRzG/WT7HVxxyqLijuNUxMlEoAQBAQHPYHKriqiKbbFZH8QmbbKrqqupXi7r7TxIAAIDLVDOspoxCY+EaI6OaYTWtjpEFhRIAAAS80s7SKukoaXWMfGeTTSUdJVXKWcrqKFlQKAEAQFCICYuxOkK+MzJ++ToplAAAIChUcVWRSy6rY+Qrl1yq4qpidYzzUCgBAEBQcNqcigmPsTpGvooJj/Gb9+/+OwolAAAIGnXC6yjKHhV0M75tsinKHqU64XWsjpItCiUAAAgaTptTLSNaBt2MbyOjlhEt/XJ0UqJQAgCAIFPGWUa1wmpZHSNP1Q6rrTLOMlbHyBGFEgAABJ16BesFxaXvjEvddQvWtTrKBVEoAQBA0Ek/my7Ptx4ZE/iXvv35UncG/04HAABwETwej7Zs2aIlS5bom2++0dq1a+XxeNSibwu1fqW11fEuW2xErF9f6s5AoQQAAAFt5syZ6tu3r06ePCmHwyGPx5P5WLdG3VSrUC0tPbPUwoSXp1mhZqrsqmx1jItCoQQAAAGtcOHCOnXqlCRlKZPFihVTly5d5HL9tdh5IJXKZoWaqUZYDatjXDTuoQQAAAGtdevWeu2117Jsczgc6tu3b2aZrBFWQ60jWsv2v//8UUa21hGtA6pMSoxQAgCAAHf27FmtXr06yzaPx6M+ffpk2VbZVVmF7YUVlxKnZG+yLyNelEh7pFpGtAyIeyb/iRFKAAAQsI4eParbb79dixcv1rx583T33XdLkm677TZVqlTpvP3LOMuoW2S3zHUqrR6tzDh/7bDa6hbZLSDLpMQIJQAACFAHDhxQq1atdPz4ca1cuVJ16tRRixYtVLJkSXXv3j3H5zltTjUq1EiVXJUUlxKnk96Tlr2zTiCPSv6dzQTDAk0AACCkbN68Wa1bt1aRIkX0zTff6Jprrrms47iNWxtSN2hr6lalKz2PU57PJpuMjFxyKSY8RnXC6/j9GpMXg0IJAAACSlxcnDp16qRrr71WX3/9tUqWLJnrY7qNW/vS92lr2lYd9hzOLH55JeN40Y5o3RB2g6q4qgRFkcxAoQQAAAFj8uTJ6tOnj2JjYzV9+nRFRETk+TkS3YnakbZDe9P3yqO/liGyyy6vvBd9jL/v75BDVV1VVTOspko5S+V5Xn9AoQQAAH7PGKMXXnhBTz75pPr166d3331XTmf+jvB5jVdHPUeV5ElSkidJie5EHfEcuWCxtMuuEo4SKu0srWhHtKId0SruKC67LbjnQVMoAQCAX3O73Ro0aJAmTpyo5557To8//rhsNmtmZ3uNV8neZLmNWx555DEeOWwOOeSQ0+ZUlD0q6MtjdiiUAADAb6WkpOiee+7RokWL9OGHH6pnz55WR0I2guduUAAAEFQOHz6sO+64Q7t27dKCBQvUsmVLqyMhBxRKAADgd3788Ue1atVKp06d0qpVq1SrVi2rI+ECQu8iPwAA8GsbNmxQvXr1ZLfbFR8fT5kMABRKAADgNxYsWKAmTZqoUqVKWrt2rSpUqGB1JFwECiUAAPALH330ke688061aNFCy5YtU4kSJayOhItEoQQAAJYyxmjs2LHq06eP+vfvr9mzZ6tgwYJWx8IlYFIOAACwzLlz5zRgwAB9/PHHeumll/Too49atsYkLh+FEgAAWOL06dPq3LmzlixZok8++UT333+/1ZFwmSiUAADA5/7880+1adNG+/bt08KFC9W8eXOrIyEXKJQAAMCn9u3bp9jYWJ09e1arVq1STEyM1ZGQS0zKAQAAPvPdd9+pfv36CgsLU3x8PGUySFAoAQCAT8ybN09NmzZV9erVtWbNGpUrV87qSMgjFEoAAJDv/vvf/6pDhw5q3bq1lixZomLFilkdCXmIQgkAAPKNMUZPPPGEHnzwQQ0ePFgzZsxQeHi41bGQx5iUAwAA8sW5c+fUt29fTZkyRa+++qpGjBjBGpNBikIJAADy3KlTp9SpUyetWLFC06ZNU9euXa2OhHxEoQQAAHnq0KFDatOmjX788UfFxcXptttuszoS8hmFEgAA5Jk9e/aoVatWcrvdWrNmja6//nqrI8EHmJQDAADyxNq1a9WgQQMVLlxY8fHxlMkQQqEEAAC59uWXX6pZs2a6/vrrtWbNGl199dVWR4IPUSgBAECuvPPOO+rYsaPatWunuLg4XXHFFVZHgo9RKAEAwGXxer0aPXq0hgwZouHDh+vzzz9XWFiY1bFgASblAACAS5aenq4HHnhA06ZN0xtvvKGHHnrI6kiwEIUSAABckuTkZHXs2FGrV6/WjBkzdPfdd1sdCRajUAIAgIt28OBBxcbG6tdff9XixYvVuHFjqyPBD1AoAQDARdm9e7datWolSVqzZo1q1KhhcSL4CyblAACAf7V69Wo1aNBARYsWVXx8PGUSWVAoAQDABc2ePVvNmzdXrVq1tGrVKl111VVWR4KfoVACAIAcTZgwQZ07d1bHjh21aNEiRUVFWR0JfohCCQAAzuP1ejVy5EgNHz5co0aN0qeffiqXy2V1LPgpJuUAAIAs0tLS1LNnT82YMUNvv/22Bg8ebHUk+DkKJQAAyHTixAl16NBB8fHxmj17tu666y6rIyEAUCgBAIAk6bffflPr1q31xx9/aNmyZWrQoIHVkRAgKJQAAEA7duxQbGysnE6n1q1bp2rVqlkdCQGESTkAAIS4FStWqFGjRipZsqTi4+Mpk7hkFEoAAELY9OnT1apVK91888369ttvVaZMGasjIQBRKAEACEHGGL3++uvq2rWr7rnnHn399deKjIy0OhYCFIUSAIAQ4/F4NHz4cI0cOVKPPfaYJk+ezBqTyBUm5QAAEEJSU1N1//33a86cOXr//fc1YMAAqyMhCFAoAQAIEceOHVP79u21ceNGzZkzR3feeafVkRAkKJQAAISAX3/9Va1atVJSUpKWL1+uunXrWh0JQYRCCQBAkNu2bZtiY2MVHh6udevWqUqVKlZHQpBhUg4AAEFs2bJlatSoka688krFx8dTJpEvKJQAAASpqVOnKjY2Vg0bNtTKlStVqlQpqyMhSFEoAQAIMsYYvfzyy+rWrZu6deumuXPnqnDhwlbHQhCjUAIAEEQ8Ho+GDBmiMWPG6KmnntJHH32kAgUKWB0LQY5JOQAABImzZ8/qvvvu07x58zRx4kT17dvX6kgIERRKAACCwNGjR9WuXTtt3bpVc+fOVZs2bayOhBBCoQQAIMAdOHBAsbGxOnbsmFasWKGbb77Z6kgIMdxDCQBAANu8ebPq1asnj8ejdevWUSZhCQolAAABKi4uTo0bN1a5cuW0bt06VapUyepICFEUSgAAAtDkyZN1xx13qEmTJlq+fLlKlixpdSSEMAolAAABxBijF154Qb169VKvXr305ZdfKiIiwupYCHEUSgAAAoTb7daDDz6oJ554Qs8++6w++OADOZ3Mr4X1+CoEACAAnDlzRvfcc48WLlyojz/+WL169bI6EpCJQgkAgJ87fPiw2rZtq507d+rrr79Wq1atrI4EZEGhBADAj/34449q1aqVTp06pW+//Va1a9e2OhJwHu6hBADAT23YsEH169eX3W5XfHw8ZRJ+i0IJAIAfWrhwoZo0aaJrrrlGa9euVYUKFayOBOSIQgkAgJ/56KOP1K5dOzVv3lxLly5ViRIlrI4EXBCFEgAAP2GM0dixY9WnTx/169dPX3zxhQoVKmR1LOBfMSkHAAA/4Ha7NWDAAH300Ud68cUXNXr0aNlsNqtjAReFQgkAgMVOnz6tLl26aPHixfrkk090//33Wx0JuCQUSgAALJSUlKQ2bdpo7969WrhwoZo3b251JOCSUSgBALDI/v371apVK505c0arVq1STEyM1ZGAy8KkHAAALPD999+rfv36crlc+u677yiTCGgUSgAAfGz+/Pm67bbbVLVqVa1du1blypWzOhKQKxRKAAB86IMPPlD79u0VGxurJUuWqFixYlZHAnKNQgkAgA8YY/Tkk09qwIABGjRokGbOnKmCBQtaHQvIE0zKAQAgn507d059+/bVlClTNG7cOI0cOZI1JhFUKJQAAOSjU6dO6e6779by5cs1depU3XvvvVZHAvIchRIAgHySmJioNm3a6IcfftA333yjpk2bWh0JyBcUSgAA8sHevXvVqlUrnTt3TqtXr1bNmjWtjgTkGyblAACQx9atW6f69esrIiJC8fHxlEkEPQolAAB56Msvv9Ttt9+u66+/XqtXr9bVV19tdSQg31EoAQDII++++646duyodu3aKS4uTkWLFrU6EuATFEoAAHLJ6/Vq9OjRGjx4sB566CF9/vnnCgsLszoW4DNMygEAIBfS09PVu3dvffbZZxo/fryGDx9udSTA5yiUAABcppMnT6pjx45atWqVZsyYoc6dO1sdCbAEhRIAgMtw8OBBtW7dWr/88osWL16sxo0bWx0JsAyFEgCAS7R7927FxsbK6/VqzZo1qlGjhtWRAEsxKQcAgEuwevVqNWjQQFFRUfruu+8ok4AolAAAXLTZs2erefPmuvHGG7V69WpdddVVVkcC/AKFEgCAi/Dmm2+qc+fOuuuuu7Ro0SJFRUVZHQnwGxRKAAAuwOv1atSoUXrooYc0cuRIffbZZ6wxCfwDk3IAAMhBWlqaevbsqRkzZuitt97SkCFDrI4E+CUKJQAA2Thx4oQ6dOig+Ph4zZo1Sx07drQ6EuC3KJQAAPzD77//rtjYWP3xxx9aunSpGjZsaHUkwK9RKAEA+JudO3cqNjZWDodDa9euVfXq1a2OBPg9JuUAAPA/K1euVMOGDVWiRAnFx8dTJoGLRKEEAEDS9OnT1bJlS91888369ttvVaZMGasjAQGDQgkACHnjx49X165d1aVLF3399deKjIy0OhIQUCiUAICQ5fV6NXz4cI0YMUJjxozRlClT5HK5rI4FBBwm5QAAQlJqaqq6d++uL774Qu+9954efPBBqyMBAYtCCQAIOcePH1f79u21fv16zZkzR3feeafVkYCARqEEAISUX3/9VbGxsfrzzz+1fPly1atXz+pIQMCjUAIAQsa2bdvUunVrhYWFad26dapSpYrVkYCgwKQcAEBIWLZsmRo1aqQyZcpQJoE8RqEEAAS9qVOnKjY2Vg0aNNDKlStVunRpqyMBQYVCCQAIWsYYvfLKK+rWrZu6deumefPmqXDhwlbHAoIOhRIAEJQ8Ho+GDh2q0aNH68knn9RHH32kAgUKWB0LCEpMygEABJ2zZ8/qvvvu09y5c/XBBx+oX79+VkcCghqFEgAQVI4ePap27dpp69atmjt3ru644w6rIwFBj0IJAAgaP//8s1q1aqWjR49qxYoVuvnmm62OBIQE7qEEAASFLVu2qF69enK73YqPj6dMAj5EoQQABLzFixfr1ltv1dVXX61169apUqVKVkcCQgqFEgAQ0KZMmaI2bdqocePGWrFihaKjo62OBIQcCiUAICAZY/Tiiy+qZ8+e6tWrl7766itFRERYHQsISRRKAEDAcbvdGjhwoB5//HE988wz+uCDD+R0Ms8UsAr/+gAAAeXMmTPq2rWrFixYoI8++kgPPPCA1ZGAkEehBAAEjCNHjqht27basWOH5s+fr9jYWKsjARCFEgAQIH766Se1atVKycnJWrlypW666SarIwH4H+6hBAD4vY0bN6pevXqSpPj4eMok4GcolAAAv7Zo0SI1adJEFStW1Lp161SxYkWrIwH4BwolAMBvffzxx2rbtq1uv/12LVu2TCVKlLA6EoBsUCgBAH7HGKNnnnlGvXv3Vt++ffXFF1+oUKFCVscCkAMm5QAA/Irb7daDDz6oDz/8UC+88ILGjBkjm81mdSwAF0ChBAD4jZSUFHXp0kVxcXGaMmWKunfvbnUkABeBQgkA8AtJSUm64447lJCQoAULFqhFixZWRwJwkSiUAADL/fDDD2rVqpVSUlK0atUq3XjjjVZHAnAJmJQDALDU999/r3r16qlAgQKKj4+nTAIBiEIJALDM119/rdtuu01Vq1bV2rVrVb58easjAbgMFEoAgCUmTpyoO++8U61atdKSJUtUrFgxqyMBuEwUSgCATxlj9NRTT6l///4aOHCgZs2apYIFC1odC0AuMCkHAOAz586dU79+/TR58mS98sorGjVqFGtMAkGAQgkA8InTp0+rU6dOWr58uaZOnap7773X6kgA8giFEgCQ7xITE9WmTRv98MMP+uabb9S0aVOrIwHIQxRKAEC+2rt3r1q1aqX09HStXr1aNWvWtDoSgDzGpBwAQL6Jj49XgwYNVKhQIcXHx1MmgSBFoQQA5IuvvvpKTZs2VY0aNbRmzRqVLVvW6kgA8gmFEgCQ59577z117NhRbdu2VVxcnIoWLWp1JAD5iEIJAMgzxhiNGTNGgwYN0tChQzV9+nSFh4dbHQtAPmNSDgAgT6Snp6tPnz769NNP9frrr+vhhx+2OhIAH6FQAgBy7eTJk+rYsaNWrVql6dOnq0uXLlZHAuBDFEoAQK4cPHhQrVu31s8//6y4uDg1adLE6kgAfIxCCQC4bAkJCWrVqpW8Xq/WrFmj6667zupIACzApBwAwGVZs2aNGjRooKioKMXHx1MmgRBGoQQAXLIvvvhCzZo1U0xMjFavXq3//Oc/VkcCYCEKJQDgkrz11lu6++671aFDBy1atEhRUVFWRwJgMQolAOCieL1ePfLIIxo2bJhGjhypqVOnKiwszOpYAPwAk3IAAP8qLS1NvXr10vTp0/Xmm29q6NChVkcC4EcolACAC0pOTlaHDh20bt06zZo1Sx07drQ6EgA/Q6EEAOTo999/V+vWrfX7779r6dKlatiwodWRAPghCiUAIFs7d+5UbGys7Ha71q5dq+rVq1sdCYCfYlIOAOA83377rRo2bKjixYsrPj6eMgnggiiUAIAsZsyYoRYtWqhOnTpatWqVrrzySqsjAfBzFEoAQKbx48frnnvuUefOnbVgwQJFRkZaHQlAAKBQAgDk9Xo1fPhwjRgxQqNHj9Ynn3wil8tldSwAAYJJOQAQ4lJTU9WjRw/NmjVL7777rgYOHGh1JAABhkIJACHs+PHjat++vdavX685c+aoffv2VkcCEIAolAAQon777Te1atVKiYmJWrZsmerXr291JAABikIJACFo+/btio2Nlcvl0rp161S1alWrIwEIYEzKAYAQs3z5cjVq1EilS5dWfHw8ZRJArjFCCQD5wGM8Ouk9Kbdxyy23vMYru80up5xy2pyKtEfKYXP4PNe0adPUs2dPNW3aVLNmzVKRIkV8ngFA8KFQAkAueYxHxzzHlORJUpInSYnuRB3xHJFX3hyfY5ddJRwlVNpZWtGOaEU7olXMUSzfSqYxRq+++qoeffRR9ezZUxMnTlSBAgXy5VwAQo/NGGOsDgEAgSjRnajtadu1L32fPPJI+qsoXqhI/tPf93fIoSquKroh7AaVcpbKs5wej0fDhw/X22+/rSeffFLPPPOMbDZbnh0fACiUAHAJ3Matvel7tS1tmw57Dssmm4zy7ttoxvFKOkoqJixGVVxV5LRd/sWks2fPqlu3bvrqq6/03nvvqX///nmWFQAyUCgB4CK4jVvrU9drW+o2pSvdZ+d1yaWY8BjVCa9zycXy2LFjateunTZv3qwZM2aobdu2+ZQSQKijUALAvzjkPqS4lDgle5MtOb9NNkXaI9UyoqXKOMtc1HN+/vlnxcbG6siRI/r66691yy235HNKAKGMQgkAOXAbt+LPxmtz2uY8v7R9qTLOXyusluoVrHfB0cotW7aodevWioiI0KJFi1S5cmUfJgUQiiiUAJANq0clLyTKHpXjaOWSJUt01113qVq1alqwYIGio6MtSAgg1LCwOQD8w/70/Zp1apZOek9aHSVbJ70nNevULO1P359l+yeffKLWrVvr1ltv1cqVKymTAHyGQgkAf7MzbacWpiyU+d9//igj28KUhdqVtkvGGL344ovq0aOHevbsqblz5yoiIsLqmABCCJe8AeB/dqbt1LIzy6yOcckOzTmkV/q8orFjx+qpp55ijUkAPkehBAD9dZl7YcpCq2NcMmOMjDEqtKGQ+rdijUkA1uCSN4CQd8h9SItSFlkd47LYbDbZbXal3ZKmQ+5DVscBEKIolABCmtu4FZcSZ3WM3PnfFe64lDi5jdvaLABCEoUSQEiLPxuvZG+y307AuVhGRsneZH139jurowAIQRRKACHrkPuQNqdttjpGntqUtolL3wB8jkIJICRlXOq2KbhmRNtk49I3AJ+jUAIISRtSNwTFpe5/yrj0vSF1g9VRAIQQCiWAkOM2bm1N3Wp1jHy1NXUro5QAfIZCCSDk7Evfp3SlWx0jX6UrXfvS91kdA0CIoFACCDlb07ZaHSHf2WQLidcJwD9QKAGElER3og57DlsdI98ZGR32HFaiO9HqKABCAIUSQEjZnrY96GZ258Qmm3ak7bA6BoAQQKEEEDI8xqN96fuCbmZ3ToyM9qbvldd4rY4CIMhRKAGEjGOeY/LIY3UMn/LIo6Oeo1bHABDknFYHAABfSfIk+fycRw4c0bK3lmnfyn1KTkyWo4BDV157pWLax6hej3pyFXTle4YkT5JKOkvm+3kAhC4KJYCQkeRJkl12eeWbS8C7Fu/S5F6T5XQ5VadLHZWpXkbuc2799N1Pmvf0PCXuSVSXCV3yNYNddiV5klRDNfL1PABCG4USQMhIdCf6rEwe/eWoPunziYr+p6gGzR2kqNJRmY816tNIh386rN2Ld+d7Dq+8zPQGkO+4hxJASPAYj454jvjsfMveWqa002nq+lbXLGUyQ8mKJdV4QGOfZDniOcLEHAD5ikIJICSc9J702eikJO36ZpeKly+uCrdU8Nk5c+KVV8neZKtjAAhiFEoAIcGX72udejJVyYeSVebaMj4757/hfb0B5CcKJYCQ4JYPC+WpVElSeOFwn53z34TackkAfItCCSAk+PIewvAifxXJ1NOpPjvnv/EYCiWA/EOhBBAS7DbffbsLjwxXVJkoJSb4z+xqh81hdQQAQYxCCSAkOH28Stq1La7VkQNHdGD9AZ+eNycOUSgB5B8KJYCQ4LT5tlDePvR2uSJcmjFshk4lnTrv8SMHjujb/37rszy+fv0AQgvfYQCEhEh7pE/fJadEhRLqPrG7pvSeopfqvqSbutykMtXLyHPOowPrD2jr3K26uevNPslil11R9vPXwgSAvGIzxhirQwCAL3x+8nOfv5/34R8Pa/nby7V35V4lJybL6XLqyhpXqtZdtVSvez05w/L/9/poR7S6RnbN9/MACF0USgAhY8WZFdqZttOnC5xbzS67rgu7TrcVus3qKACCGPdQAggZ0Y7okCqT0l/vkhPtiLY6BoAgR6EEEDJCtViF6usG4DsUSgAho5ijWMgtn+OQQ8Udxa2OASDIUSgBhAyHzaEqriqyyWZ1FJ+wyaaqrqo+XdQdQGjiuwyAkFIzrKaMQmMuopFRzbCaVscAEAIolABCSmlnaZV0lLQ6Rr6zyaaSjpIq5SxldRQAIYBCCSDkxITFWB0h3xmZkHidAPwDhRJAyKniqiKXXFbHyFcuuVTFVcXqGABCBIUSQMhx2pyKCY+xOka+igmP4f27AfgMhRJASKoTXkdR9qigm/Ftk01R9ijVCa9jdRQAIYRfXwEEraSkJK1fv14HDx7UoUOHdOjQIf3888/auHGj6tevrw/mfKCZp2ZaHTNPGRm1jGjJ6CQAn+I7DoCg1atXLy1cuFCS5HQ6ZYyRx+ORJF1xxRUq4yyjWmG1tDlts5Ux81TtsNoq4yxjdQwAIYZL3gCC1oMPPpj5/263O7NMli1bVv/3f/8nSapXsF5QXPrOuNRdt2Bdq6MACEEUSgBBq2XLlqpRo8Z52z/88EOFhYVJ+muCTsuIlr6Oli+41A3AKhRKAEEpPj5etWrVUkJCggoUKCBJcjgc6tSpk5o3b55l3zLOMoqNiLUiZp6JjYjlUjcAy1AoAQSV5ORkDRo0SA0aNFB4eLg2btyoN998U5Lkcrk0YcKEbJ9X2VVZzQo182HSvNOsUDNVdlW2OgaAEMa1EQBBwRijOXPmaMiQITp16pTeeOMNDR48WA6HQzfccIPWrVunFi1a6KqrrsrxGDXC/ro8vvTMUl/FzrVmhZpl5gYAq9iMMcbqEACQG7/++qsGDx6s+fPnq127dnrnnXd09dVXX/bx9qfv16KURZL+WobH32RMIIqNiGVkEoBfYIQSQMDyeDx6++239cQTTygqKkpffPGFOnToIJstdzO2K7sqq7C9sOJS4pTsTc6jtHkn0h6plhEtuWcSgN9ghBJAQNq8ebP69eunzZs3a+DAgXrhhRcUFRWVp+dwG7fiz8Zrc9pm2WSzdLQy4/y1w2qrbsG6zOYG4FeYlAMgoJw+fVojRoxQnTp1lJ6ernXr1umdd97J8zIp/bWkUKNCjdS5SGdF2iMtXasy0h6pzkU6q2GhhpRJAH6HEUoAAWPBggUaOHCgDh8+rKeffloPP/xw5pJA+c1t3NqQukFbU7cqXen5fr6MEUmXXIoJj1Gd8DoUSQB+i0IJwO8dOnRIw4YN06xZs9SiRQu9//77qlixoiVZ3Matfen7tDVtqw57Duf5pfCM40U7onVD2A2q4qpCkQTg9yiUAPyW1+vVxIkTNXr0aLlcLr3xxhu69957cz3pJq8kuhO1I22H9qbvlUd/va2jXXZ55b3oY/x9f4ccquqqqpphNVXKWSpfMgNAfqBQAvBLO3fuVP/+/bVu3To98MADevXVV1WsWDGrY2XLa7w66jmqJE+SkjxJSnQn6ojnyAWLpV12lXCUUGlnaUU7ohXtiFZxR3HZbdzaDiDwUCgB+JWzZ8/q+eef17hx43TNNdfogw8+UOPGja2Odcm8xqtkb7Lcxi2PPPIYjxw2hxxyyGlzKsoeRXkEEDQolAD8xrJlyzRgwAD9+uuvGjNmjMaMGaOwsDCrYwEA/gW/HgOw3JEjR9SjRw81a9ZMV155pbZt26axY8dSJgEgQDB1EIBljDH65JNPNGLECHm9Xn344Yfq1auX7HZ+1wWAQMJ3bQCW2L9/v5o1a6aePXuqZcuW2rNnj3r37k2ZBIAAxHduAD6Vnp6u559/Xtdff70OHDigb775RlOnTlV0dLTV0QAAl4lL3gB8Zs2aNerfv7/27t2rkSNH6qmnnlKhQoWsjgUAyCVGKAHku+PHj6t///5q1KiRihQpos2bN+vll1+mTAJAkGCEEkC+McZo5syZGjZsmM6cOaN33nlHAwYMkMPhsDoaACAPMUIJIF/8/PPPatOmje655x41aNBACQkJGjRoEGUSAIIQhRJAnnK73XrttddUo0YN7dixQ3PnztUXX3yhq666yupoAIB8QqEEkGc2bNigOnXq6NFHH1Xfvn21e/dutWvXzupYAIB8RqEEkGunTp3SsGHDVLduXUnS999/rwkTJqhIkSIWJwMA+AKTcgDkyty5czV48GAdO3ZM48aN07Bhw+R08q0FAEIJI5QALssff/yhu+66S+3bt9f111+vXbt2acSIEZRJAAhBFEoAl8Tj8ejdd99V9erVtW7dOk2fPl0LFixQ+fLlrY4GALAIhRLARdu+fbsaNGigwYMHq2vXrkpISFCXLl1ks9msjgYAsBCFEsC/OnPmjEaPHq3atWvr1KlTWr16tT744AMVLVrU6mgAAD9gM8YYq0MA8F+LFy/WgAEDdPDgQT3xxBN65JFH5HK5rI4FAPAjjFACyFZSUpLuu+8+tWzZUuXLl9f27dv1xBNPUCYBAOdhOiaALIwx+vjjjzVq1CjZ7XZNnjxZ3bt35z5JAECOGKEEkGnPnj1q0qSJ+vTpo7Zt22rPnj3q0aMHZRIAcEEUSgBKS0vT2LFjdcMNN+jgwYNaunSppkyZohIlSlgdDQAQALjkDYS4b7/9Vv3799ePP/6oRx99VI8//rgKFixodSwAQABhhBIIUceOHVPv3r3VpEkTFS9eXFu3btXzzz9PmQQAXDJGKIEQY4zRtGnTNHz4cKWnp+u///2v+vbtK7ud3y8BAJeHnyBACPnpp5/UqlUrdevWTbfddpsSEhLUv39/yiQAIFf4KQKEgHPnzumVV17Rddddp71792rBggWaMWOGypQpY3U0AEAQoFACQe7777/XTTfdpMcee0wDBw7Url271Lp1a6tjAQCCCIUSCFInT57U4MGDVa9ePRUoUEAbNmzQa6+9poiICKujAQCCDJNygCBjjNGXX36pIUOGKDk5WePHj9fgwYPldPLPHQCQPxihBILIb7/9pvbt26tjx46qXbu2du/erYceeogyCQDIVxRKIAh4PB69+eabuvbaa7VhwwbNnj1bc+fOVdmyZa2OBgAIARRKIMBt2bJFdevW1fDhw9W9e3clJCSoY8eOvP82AMBnKJRAgEpJSdHIkSNVp04dpaamau3atXr33XcVFRVldTQAQIjhxiogAC1cuFADBw7Un3/+qeeff14jRoxQgQIFrI4FAAhRFEoggCQmJmrYsGGaOXOmmjdvrmXLlumaa66xOhYAIMRxyRsIAF6vVx988IGqVaumFStW6LPPPlNcXBxlEgDgFyiUgJ/btWuXbr31Vg0YMEAdO3ZUQkKC7rvvPibdAAD8BoUS8FOpqal68skndeONN+rIkSNauXKlPvroIxUvXtzqaAAAZME9lIAfWr58uQYMGKBffvlFjz32mMaMGaOwsDCrYwEAkC1GKAE/cuTIEfXs2VO33367ypQpo23btmns2LGUSQCAX2OEEvADxhh9+umnevjhh+X1evXhhx+qV69estv5nQ8A4P/4aQVYbP/+/WrevLl69OihFi1aKCEhQb1796ZMAgACBj+xAIukp6frhRde0PXXX6+ffvpJixYt0rRp01SqVCmrowEAcEm45A1YYO3aterfv7/27NmjESNG6Omnn1ahQoWsjgUAwGVhhBLwoRMnTmjAgAFq2LChIiIitGnTJr3yyiuUSQBAQGOEEvABY4xmzZqlYcOGKSUlRW+//bYefPBBORwOq6MBAJBrjFAC+eyXX37RHXfcoS5duqhevXravXu3Bg8eTJkEAAQNCiWQT9xut15//XVde+212rZtm7766ivNmTNH//nPf6yOBgBAnqJQAvlg48aNuvnmmzVq1Cj16dNHCQkJuvPOO62OBQBAvqBQAnno9OnTGj58uG655RZ5vV59//33evPNN1WkSBGrowEAkG+YlAPkkfnz52vQoEE6evSoXnnlFT300ENyOvknBgAIfoxQArl08OBBderUSe3atdN1112nXbt2aeTIkZRJAEDIoFACl8nr9eq9995T9erVtWbNGk2fPl0LFixQ+fLlrY4GAIBPUSiBy7Bjxw41aNBAgwYN0j333KOEhAR16dJFNpvN6mgAAPgchRK4BGfPntWYMWNUq1YtJScna/Xq1frggw9UtGhRq6MBAGAZmzHGWB0CCARLlizRgAED9Mcff+jxxx/XI488orCwMKtjAQBgOUYogX+RlJSkbt26qUWLFipbtqy2b9+uJ598kjIJAMD/MA0VyIExRpMmTdKoUaMkSZMmTVKPHj24TxIAgH9ghBLIxt69e3Xbbbepd+/eatOmjfbs2aOePXtSJgEAyAaFEvibtLQ0PfPMM6pZs6Z+//13LVmyRJ988olKlixpdTQAAPwWl7yB/1m1apX69++vH374QY888oieeOIJFSxY0OpYAAD4PUYoEfKOHTumPn36qHHjxipatKi2bNmiF154gTIJAMBFYoQSIcsYo+nTp+uhhx5Samqq3n//ffXr1092O79nAQBwKfjJiZB04MABxcbG6t5771Xjxo21Z88eDRgwgDIJAMBl4KcnQsq5c+c0btw41ahRQwkJCZo/f75mzpypMmXKWB0NAICAxSVvhIz169erb9++2rlzp4YNG6Znn31WhQsXtjoWAAABjxFKBL2TJ09qyJAhqlu3rpxOp9avX6/x48dTJgEAyCOMUCKoffnllxoyZIhOnDih119/XUOGDJHTyZc9AAB5iRFKBKXff/9d7du311133aUbb7xRu3fv1vDhwymTAADkAwolgorH49Fbb72l6tWra/369Zo1a5bmzZunsmXLWh0NAICgRaFE0Ni6davq1aunhx56SPfff78SEhLUqVMn3n8bAIB8RqFEwEtJSdGoUaN000036ezZs1q7dq3ee+89RUVFWR0NAICQwA1lCGiLFi3SwIEDlZiYqOeee04jRoyQy+WyOhYAACGFEUoEpMTERN1zzz1q3bq1KlWqpB07dmjMmDGUSQAALMAIJQKK1+vVhx9+qEcffVROp1Offvqp7rvvPu6TBADAQoxQImDs3r1bjRs3Vv/+/dWhQwft2bNH3bp1o0wCAGAxCiX8Xmpqqp566inFxMTozz//1PLly/Xxxx+rePHiVkcDAADikjf83IoVKzRgwAAdOHBAo0eP1mOPPabw8HCrYwEAgL9hhBJ+6ejRo+rVq5eaNm2q6Ohobd26Vc8++yxlEgAAP8QIJfyKMUafffaZHn74Ybndbk2cOFG9e/eW3c7vPgAA+Ct+SsNv/PDDD2rRooW6d++uZs2aKSEhQX379qVMAgDg5/hJDculp6frxRdf1PXXX68ffvhBixYt0ueff67SpUtbHQ0AAFwELnnDUuvWrVP//v2VkJCghx9+WE8//bQiIiKsjgUAAC4BI5SwxIkTJ/Tggw+qYcOGKliw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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "_6A1Gxto75Co"
      },
      "execution_count": 30,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "LEdGx1YG75FQ"
      },
      "execution_count": 30,
      "outputs": []
    }
  ]
}