{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "The aim of the project is to fine tune a large language model for HDL(hardware description language) generation and summarization"
      ],
      "metadata": {
        "id": "yzOnBSVES2Fl"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BsgIbw6URsyF"
      },
      "source": [
        "###Data Pre-Processing"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "JAVLpx9l1eqA",
        "outputId": "f81c433a-9aef-4a0d-9040-ef57b4e94146"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
          ]
        }
      ],
      "source": [
        "import pandas as pd\n",
        "import pyarrow.parquet as pq\n",
        "import torch\n",
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ru2p0AJp2Eeu"
      },
      "outputs": [],
      "source": [
        "dataset_path = '/content/drive/MyDrive/ai-hdlcoder-dataset-part000000000000.parquet'\n",
        "\n",
        "df = pq.read_table(source = dataset_path).to_pandas()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "pnvKK3sm2EdH",
        "outputId": "c97a4f22-7bfc-43ab-8771-c1e63388beb9"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "\n",
              "  <div id=\"df-f93068bc-b424-48d0-83ae-2fcf38430c54\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>repo_name</th>\n",
              "      <th>path</th>\n",
              "      <th>copies</th>\n",
              "      <th>size</th>\n",
              "      <th>content</th>\n",
              "      <th>license</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>malkadi/FGPU</td>\n",
              "      <td>RTL/floating_point/fmul.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>10488</td>\n",
              "      <td>-- (c) Copyright 1995-2016 Xilinx, Inc. All ri...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>malkadi/FGPU</td>\n",
              "      <td>bitstreams/settings_and_utilization/V2_4CUs_fl...</td>\n",
              "      <td>1</td>\n",
              "      <td>23540</td>\n",
              "      <td>-- libraries ---------------------------------...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Kinxil/VHDL_Projects</td>\n",
              "      <td>Mandelbrot/cpt_iter.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>884</td>\n",
              "      <td>\\nlibrary IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>malkadi/FGPU</td>\n",
              "      <td>bitstreams/settings_and_utilization/V2_8CUs_fa...</td>\n",
              "      <td>1</td>\n",
              "      <td>24067</td>\n",
              "      <td>-- libraries ---------------------------------...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>malkadi/FGPU</td>\n",
              "      <td>RTL/CU_instruction_dispatcher.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>10173</td>\n",
              "      <td>-- libraries ---------------------------------...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f93068bc-b424-48d0-83ae-2fcf38430c54')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "\n",
              "\n",
              "\n",
              "    <div id=\"df-0f2d1be8-1fd7-4798-8f5d-cd888e99350c\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0f2d1be8-1fd7-4798-8f5d-cd888e99350c')\"\n",
              "              title=\"Suggest charts.\"\n",
              "              style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "    </div>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "    background-color: #E8F0FE;\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: #1967D2;\n",
              "    height: 32px;\n",
              "    padding: 0 0 0 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: #E2EBFA;\n",
              "    box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: #174EA6;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "    background-color: #3B4455;\n",
              "    fill: #D2E3FC;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart:hover {\n",
              "    background-color: #434B5C;\n",
              "    box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "    filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "    fill: #FFFFFF;\n",
              "  }\n",
              "</style>\n",
              "\n",
              "    <script>\n",
              "      async function quickchart(key) {\n",
              "        const containerElement = document.querySelector('#' + key);\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      }\n",
              "    </script>\n",
              "\n",
              "      <script>\n",
              "\n",
              "function displayQuickchartButton(domScope) {\n",
              "  let quickchartButtonEl =\n",
              "    domScope.querySelector('#df-0f2d1be8-1fd7-4798-8f5d-cd888e99350c button.colab-df-quickchart');\n",
              "  quickchartButtonEl.style.display =\n",
              "    google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "}\n",
              "\n",
              "        displayQuickchartButton(document);\n",
              "      </script>\n",
              "      <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-f93068bc-b424-48d0-83ae-2fcf38430c54 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-f93068bc-b424-48d0-83ae-2fcf38430c54');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "              repo_name                                               path  \\\n",
              "0          malkadi/FGPU                        RTL/floating_point/fmul.vhd   \n",
              "1          malkadi/FGPU  bitstreams/settings_and_utilization/V2_4CUs_fl...   \n",
              "2  Kinxil/VHDL_Projects                            Mandelbrot/cpt_iter.vhd   \n",
              "3          malkadi/FGPU  bitstreams/settings_and_utilization/V2_8CUs_fa...   \n",
              "4          malkadi/FGPU                  RTL/CU_instruction_dispatcher.vhd   \n",
              "\n",
              "   copies   size                                            content  license  \n",
              "0       1  10488  -- (c) Copyright 1995-2016 Xilinx, Inc. All ri...  gpl-3.0  \n",
              "1       1  23540  -- libraries ---------------------------------...  gpl-3.0  \n",
              "2       1    884  \\nlibrary IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\...  gpl-3.0  \n",
              "3       1  24067  -- libraries ---------------------------------...  gpl-3.0  \n",
              "4       1  10173  -- libraries ---------------------------------...  gpl-3.0  "
            ]
          },
          "execution_count": 3,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df.head()"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "This is the dataset that we shall use to fine tune. The dataset contains VHDL codes scrapped from github. These code files will help the model learn the grammer of the VHDL language, nut in order for it to be able to genarate or summarize VHDL code, we have to include code summary and peoblem statements using which a compenent hardware designer would write the same HDL code. We shall take help from GPT-3.5 to do that!"
      ],
      "metadata": {
        "id": "SJ_8M9dIUu32"
      }
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "LsYGfifqAr2e",
        "outputId": "35159150-c8d4-413c-f306-f847483d6f41"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "53667"
            ]
          },
          "execution_count": 13,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "len(df)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "WebnUJDl2EZX"
      },
      "outputs": [],
      "source": [
        "content = []\n",
        "start = ['LIBRARY IEEE', 'Library IEEE','Library Ieee', 'library ieee', 'library Ieee', 'library IEEE']\n",
        "for i,string in enumerate(df['content']):\n",
        "  print(i)\n",
        "  content.append(string)\n",
        "  for j in range(len(str(string))):\n",
        "    if str(string)[j:j+12] in start:\n",
        "      content.pop()\n",
        "      content.append(string[j:])\n",
        "      break\n",
        "df['trimmed'] = content"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "jmCu6QlSCQyP"
      },
      "outputs": [],
      "source": [
        "for i,string in enumerate(df['content']):\n",
        "  for j in range(len(str(string))):\n",
        "    if str(string)[j:j+12] in start:\n",
        "      df['trimmed'][0] = string[j:]\n",
        "      break\n",
        "  if i==1:\n",
        "    break"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "Q-sHv1qUKY6q"
      },
      "outputs": [],
      "source": [
        "df.to_csv('/content/drive/MyDrive/LLM_project/initial_df.csv')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "oKnoZRB5CQwh"
      },
      "outputs": [],
      "source": [
        "chars = []\n",
        "words = []\n",
        "for i,string in enumerate(df['trimmed']):\n",
        "  a = str(string).split()\n",
        "  words.append(len(a))\n",
        "\n",
        "for num in df['size']:\n",
        "  chars.append(int(str(num)))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 465
        },
        "id": "e3TwqZ8sGSGU",
        "outputId": "ad57d47e-b78f-40fc-f43e-a3c1f9420553"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "0.10460829358480879\n",
            "0.0013090163279222086\n"
          ]
        },
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABXyElEQVR4nO3deVxU5eIG8GdA2VQWQ0EQxZ1cUUzC3MpJMG9pt7rq7aZRP7tZdvVSllSKaTdMzcwyvS2mdUtttVJDDcVcEBX3XRTCbdiUXdnm/P5ARgZmYM7MmTlnhuf7+cxHmXnnzDuH4cxz3vMuKkEQBBAREREpmJPcFSAiIiJqDAMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKV4zuSsgBa1Wi6tXr6JVq1ZQqVRyV4eIiIhMIAgCioqKEBAQACenhttQHCKwXL16FUFBQXJXg4iIiMxw6dIltG/fvsEyDhFYWrVqBaD6DXt6espcGyIiIjJFYWEhgoKCdN/jDXGIwFJzGcjT05OBhYiIyM6Y0p2DnW6JiIhI8RhYiIiISPEYWIiIiEjxGFiIiIhI8RhYiIiISPEYWIiIiEjxGFiIiIhI8RhYiIiISPEYWIiIiEjxGFiIiIhI8RhYiIiISPEYWIiIiEjxGFhMsPdCLr49cEnuahARETVZDrFas7X9/dMUAMDd7TzRp72XzLUhIiJqetjCIsKV/JtyV4GIiKhJYmAhIiIixWNgISIiIsVjYCEiIiLFY2AhIiIixWNgISIiIsVjYCEiIiLFY2AhIiIixWNgISIiIsVjYCEiIiLFY2AhIiIixWNgISIiIsVjYCEiIiLFY2AhIiIixWNgISIiIsVjYCEiIiLFY2ARRZC7AkRERE0SAwsREREpnlmBZfny5QgODoabmxvCw8Oxf/9+o2V//PFHDBw4EN7e3mjRogVCQ0Px1Vdf6ZV5+umnoVKp9G5RUVHmVI2IiIgcUDOxT1i/fj1iYmKwcuVKhIeHY+nSpYiMjMTZs2fRtm3beuVbt26NN954AyEhIXBxccHGjRsRHR2Ntm3bIjIyUlcuKioKX3zxhe5nV1dXM9+SNankrgAREVGTJLqFZcmSJZgyZQqio6PRs2dPrFy5Eh4eHli1apXB8iNGjMCjjz6Ku+++G126dMH06dPRt29f7N69W6+cq6sr/P39dTcfHx/z3hERERE5HFGBpby8HKmpqVCr1Xc24OQEtVqN5OTkRp8vCAISExNx9uxZDBs2TO+xpKQktG3bFj169MDUqVORl5dndDtlZWUoLCzUuxEREZHjEnVJKDc3F1VVVfDz89O738/PD2fOnDH6vIKCAgQGBqKsrAzOzs74+OOP8eCDD+oej4qKwl//+ld06tQJFy5cwOuvv47Ro0cjOTkZzs7O9bYXHx+Pt956S0zViYiIyI6J7sNijlatWuHIkSMoLi5GYmIiYmJi0LlzZ4wYMQIAMGHCBF3ZPn36oG/fvujSpQuSkpIwcuTIetuLjY1FTEyM7ufCwkIEBQVZ/X0QERGRPEQFFl9fXzg7OyMrK0vv/qysLPj7+xt9npOTE7p27QoACA0NxenTpxEfH68LLHV17twZvr6+SEtLMxhYXF1dFdopl4iIiKxBVB8WFxcXhIWFITExUXefVqtFYmIiIiIiTN6OVqtFWVmZ0ccvX76MvLw8tGvXTkz1iIiIyEGJviQUExODyZMnY+DAgRg0aBCWLl2KkpISREdHAwAmTZqEwMBAxMfHA6jubzJw4EB06dIFZWVl2Lx5M7766iusWLECAFBcXIy33noLjz32GPz9/XHhwgW8+uqr6Nq1q96wZyIiImq6RAeW8ePHIycnB3PmzIFGo0FoaCgSEhJ0HXEzMzPh5HSn4aakpAQvvPACLl++DHd3d4SEhOB///sfxo8fDwBwdnbGsWPHsGbNGuTn5yMgIACjRo3C/PnzedmHiIiIAAAqQRDsfoGcwsJCeHl5oaCgAJ6enpJvP3jWJgDAyn+EIaq38b46REREZDox399cS4iIiIgUj4GFiIiIFI+BhYiIiBSPgYWIiIgUj4FFFLvvn0xERGSXGFiIiIhI8RhYiIiISPEYWIiIiEjxGFiIiIhI8RhYRFHJXQEiIqImiYGFiIiIFI+BhYiIiBSPgYWIiIgUj4GFiIiIFI+BhYiIiBSPgYWIiIgUj4GFiIiIFI+BhYiIiBSPgYWIiIgUj4GFiIiIFI+BhYiIiBSPgUUUQe4KEBERNUkMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsoqjkrgAREVGTxMBCREREisfAQkRERIrHwEJERESKx8BCREREisfAQkRERIrHwEJERESKZ1ZgWb58OYKDg+Hm5obw8HDs37/faNkff/wRAwcOhLe3N1q0aIHQ0FB89dVXemUEQcCcOXPQrl07uLu7Q61W4/z58+ZUjYiIiByQ6MCyfv16xMTEIC4uDocOHUK/fv0QGRmJ7Oxsg+Vbt26NN954A8nJyTh27Biio6MRHR2NLVu26MosXLgQy5Ytw8qVK5GSkoIWLVogMjISt27dMv+dERERkcNQCYIgiHlCeHg47rnnHnz00UcAAK1Wi6CgILz00kuYNWuWSdsYMGAAxowZg/nz50MQBAQEBODll1/GK6+8AgAoKCiAn58fVq9ejQkTJjS6vcLCQnh5eaGgoACenp5i3o5JgmdtAgCs/EcYonr7S759IiKipkjM97eoFpby8nKkpqZCrVbf2YCTE9RqNZKTkxt9viAISExMxNmzZzFs2DAAQHp6OjQajd42vby8EB4ebnSbZWVlKCws1LsRERGR4xIVWHJzc1FVVQU/Pz+9+/38/KDRaIw+r6CgAC1btoSLiwvGjBmDDz/8EA8++CAA6J4nZpvx8fHw8vLS3YKCgsS8DQuIaowiIiIiidhklFCrVq1w5MgRHDhwAP/5z38QExODpKQks7cXGxuLgoIC3e3SpUvSVZaIiIgUp5mYwr6+vnB2dkZWVpbe/VlZWfD3N963w8nJCV27dgUAhIaG4vTp04iPj8eIESN0z8vKykK7du30thkaGmpwe66urnB1dRVTdSIiIrJjolpYXFxcEBYWhsTERN19Wq0WiYmJiIiIMHk7Wq0WZWVlAIBOnTrB399fb5uFhYVISUkRtU0iIiJyXKJaWAAgJiYGkydPxsCBAzFo0CAsXboUJSUliI6OBgBMmjQJgYGBiI+PB1Dd32TgwIHo0qULysrKsHnzZnz11VdYsWIFAEClUmHGjBl4++230a1bN3Tq1AmzZ89GQEAAxo0bJ907JSIiIrslOrCMHz8eOTk5mDNnDjQaDUJDQ5GQkKDrNJuZmQknpzsNNyUlJXjhhRdw+fJluLu7IyQkBP/73/8wfvx4XZlXX30VJSUleO6555Cfn48hQ4YgISEBbm5uErxFIiIisnei52FRItvNwzIAUb3bNVKaiIiITGG1eViIiIiI5MDAIopK7goQERE1SQwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCyi2P0qBkRERHaJgYWIiIgUj4GFiIiIFI+BhYiIiBSPgYWIiIgUj4GFiIiIFI+BhYiIiBSPgYWIiIgUj4GFiIiIFI+BhYiIiBSPgUUUldwVICIiapIYWBSgskqLm+VVcleDHMzetFzsPp8rdzWIiCTBwKIAI5fsxN1zElBcVil3VchB3Kqowt8/S8E/Pk/h54qIHAIDiwL8mVcKADh6KV/eipDDKKvQ6v5fysBCRA6AgYWIiIgUj4GFiIiIFI+BhYiIiBSPgUUUQe4KEBERNUkMLERERKR4DCxERESkeAwsIhy7XIBbFZzgjYiIyNYYWET4OOkCnvsqVe5qEBERNTkMLCL9cS5H7ioQERE1OWYFluXLlyM4OBhubm4IDw/H/v37jZb99NNPMXToUPj4+MDHxwdqtbpe+aeffhoqlUrvFhUVZU7ViIiIyAGJDizr169HTEwM4uLicOjQIfTr1w+RkZHIzs42WD4pKQkTJ07Ejh07kJycjKCgIIwaNQpXrlzRKxcVFYVr167pbmvXrjXvHRER2SlBECAI4qdP0GoFaLWcdoEcm+jAsmTJEkyZMgXR0dHo2bMnVq5cCQ8PD6xatcpg+a+//hovvPACQkNDERISgs8++wxarRaJiYl65VxdXeHv76+7+fj4mPeOJKTVCth3MU/uahBREyAIAh5bsRd/XbFXVGh5b+tZdH59Mzq/vhnzfj1lxRoSyUtUYCkvL0dqairUavWdDTg5Qa1WIzk52aRtlJaWoqKiAq1bt9a7PykpCW3btkWPHj0wdepU5OUZDwplZWUoLCzUu1lDpVbAhE/2Sba9JdvO4f/WHESVDc6ErpeUY+XOC8gqvGX117JHPx66zP5IZNQPqZfxwtepOJBx3Waveb2kHIcy83E4Mx/XS8pNft6H29N0/1+1J90aVSNSBFGBJTc3F1VVVfDz89O738/PDxqNxqRtvPbaawgICNALPVFRUfjyyy+RmJiId999Fzt37sTo0aNRVWV4CHF8fDy8vLx0t6CgIDFvw2IXcorNet6yxPP4/XQWdp03/EVpRkuwUf9aexgLfjuDpz5PkW6jDuJCTjFivj2KSauM972ipistuwgvf3cUm49r8MRK007EiMj6mtnyxRYsWIB169YhKSkJbm5uuvsnTJig+3+fPn3Qt29fdOnSBUlJSRg5cmS97cTGxiImJkb3c2FhoU1DS05RGbq0aWn288srtRLWxrDdabkAgHNZ5oUrR9bUWp3Ys0GcrMIyuatARAaIamHx9fWFs7MzsrKy9O7PysqCv79/g89dvHgxFixYgK1bt6Jv374Nlu3cuTN8fX2RlpZm8HFXV1d4enrq3YiIiMhxiQosLi4uCAsL0+swW9OBNiIiwujzFi5ciPnz5yMhIQEDBw5s9HUuX76MvLw8tGvXTkz1iIiIyEGJHiUUExODTz/9FGvWrMHp06cxdepUlJSUIDo6GgAwadIkxMbG6sq/++67mD17NlatWoXg4GBoNBpoNBoUF1dfqiguLsbMmTOxb98+ZGRkIDExEWPHjkXXrl0RGRkp0dtUFjbRExERiSO6D8v48eORk5ODOXPmQKPRIDQ0FAkJCbqOuJmZmXByupODVqxYgfLycjz++ON624mLi8PcuXPh7OyMY8eOYc2aNcjPz0dAQABGjRqF+fPnw9XV1cK3R0QquStARCQBszrdTps2DdOmTTP4WFJSkt7PGRkZDW7L3d0dW7ZsMacaREQOgy2v5hEEAYcyb6CHvydautp0HAnZGNcSUpDfT2c1XoiIHJ5KxXYxU3138DIeW5GMx1fslbsqZGUMLDIwNt/K6r0ZNq2HKc5lFWHp7+cQ9/MJDI5PNGvacCIia/nh0GUAwBlNkcw1IWtj+xk1aNT7f+j9vCDhDGJH3y1TbYiahkqt9edqIrI3bGFpAFtl60u5aLupyolMsfdCLh7+cDeOXy6QuyqS+eD383JXgRqh1QrILzV9CQWyHAMLEdm1v3+aguNXCvAPB1qG4uuUTLmrQI2YtGo/Qudtw+lr1lnLjupjYJEF+4HIScWBvg6p4GaF4ftLK7DzXI5NFh2lpqNm+ZP1By7JXJOmg4GFiBzauI/3YPKq/VijwE7tZP8uXS+VuwpNBgMLETm09NwSAMCm49dkrknDOADPPiWeyZa7Ck0GAwsRUS28YEikTAwsMuCZFBERkTgMLEQOjvmYiBwBAwsROQR7nzfJ3utvLZl5pSirrJK7GqQADCxERACul5SjooozzCrJnrRcDFu0A4+vSJa7KqQADCwyYBM9kfQsaaC4dL0UA+ZvQ+TSPxovTDZTM8fJ8SvGZzHm8bTpYGChJkfgIY7q2HJSAwC4mFMic02IyBgGlgbwkjLZrSb44VVZqROIIAgouFmBCznFmPXDMfyZZ51Qw9GDDUs6y/lOmjqu1mwGHljsW5OYmp+f0XrM/a3P/vkE/rfvzto+KenXseOVEZLUiUz39BcHsPGlIegd6CV3VepJ/fM6wjq2lrsaDo8tLDKw58Bjx1VvsppAPDPLz0eu4KPtja+KXDusAHdmziXrq3u8OZdVJEs9GjP3l1NyV6FJYAsLGVRcVom07OL6D9hz2iKHJjaYTV93BAAwrHsbyetCTUtDnYJJOgwsZNDDH+7mmSQ1CTdKDa/yrDSCIGDX+VyE+LdCW083aApu4Uo+F96jpoOBhQwyGlY4uxU5OKW2IW49lYV/fpUKZycVLrzzEO6NT5S7Sk3Wlfyb9e4rulWBVm7NZahN08E+LDLgsFoiaVzMuXPZUkyWtrfWww2Hr+CfX6UCAKq0PH7IraSsst59f+axtcvaGFiIyC7dqqjCA+/t1P0sZvSXoS8cpams0uLyjVLcLK/CjPVH5K4Okex4SYiI7FK+lfqeWOui54bDV7Dx2FUsndAfLV3rH3rrtrx2feM3AEA7Lzcr1Uj5hDqd/JXQ5z+78BZGvc8ZkeXAFhYiahLk7n41Y/0R/H46GyuS0kQ971rBLVHlb5ZzoUBr2ZOWi0HvSNN3qLisEv/deQGZvJRkMgYWGSjhLIHI4RgIJDHfHrF5NRpjrGVoUcJZSbY/b+NJSbZD9T35WYpk25r/6ynE/3YGUR+wtcZUDCwNsNZU30S21JTz8Y+HrjRapu5lB7l8l3pZku2Y8p4dijJ+fSarqNLite+PYf3B6oUdS9kiZjIGFmpymEMdgyW/R0f+DJRVarF8h7jLTmS58iqtSeW+O3hZF1ZMVVmlRV5xmTnVcigMLBJYlngeke//gYKb9jEBlSUc+DhPds6ePptv/XoSD32wC7cqrHN2vWiLNJeX5GZPjSfHL5s2222uGcHjryv2Iuzt35GWrcylCWyFgUUCS7adw9msIqzek2G0zN4Lubr/29MfoZIt2XoW8b+d1v0sCAIuXS9VTBM/2ZYtW00s7Sj5xZ4MnLpWiN9OXDPr+VoT5mLZk5bbaBmSjjU/f8duh6Gfj1y13ovYAQYWCVVqjTcJfn9QmuvTVO1meRWWbU/Df3deRHZh9SiKt349haELd+Dz3eky144c3bBFO8x+bu2oUXPI+GzXRVHbeHTF3kbLSNlBlEgJGFiaGK1WwBMr9+LFbw7JXRWLVNVqRam5drx6bwYAYKFEoy1I2eS+BFTcyORzprb0ZRfdwtubTjdesJajl/JFlXcUbDtt2hhYLCAIAlIu5sldDVFOXSvEgYwb2HTMvKZoksZZTREmrdqPI9b64pH721wGYma6ret7M0borLkdkA05cikf/edvw/oDmQCM929QqThviqNogn9yNsfAYoFfjl7F+E/26X7+cLvxnvm1zwzsuY+F/dZcWZ76PAV/nMvBuOV75K5Kk9FQoDmjEd+ZsaEOsy+tPYT80gq89sNxAMDDH+0WvX2CXR1wShg8rc6swLJ8+XIEBwfDzc0N4eHh2L9/v9Gyn376KYYOHQofHx/4+PhArVbXKy8IAubMmYN27drB3d0darUa58+fN6dqNvXbcY3cVRDNnB7qeuw4bClJdhGHKCqFuZ/o8kotKqq0+PnIFV0/KrFUKstahkg5i8l+8oe4fkgknujAsn79esTExCAuLg6HDh1Cv379EBkZiezsbIPlk5KSMHHiROzYsQPJyckICgrCqFGjcOXKncmNFi5ciGXLlmHlypVISUlBixYtEBkZiVu3zDsIkHFPf3FA7irIrklkrqbwHut8z9t6bpX//nERfeZuwfR1RzBqqePOVpqRW4I/8+xndetfj17FxmO2H01TaMK0FkW3KrBk2zkb1MY0giAgLbvIasPrpSY6sCxZsgRTpkxBdHQ0evbsiZUrV8LDwwOrVq0yWP7rr7/GCy+8gNDQUISEhOCzzz6DVqtFYmL1egyCIGDp0qV48803MXbsWPTt2xdffvklrl69ig0bNlj05ojI/q+tf5yUhqc+T0FZZcMHVRWAKq2Az3en48QV0+bEsNStiuoO33Wn2790/abJ2/j9dJakdZLSrYoqjFichOGLkhrd/7bQ2Ge56FYFXlp7GNO+OYyX1h426zVW7U7HU5+nWOVL/LNdth3BeKuiCit3XsC5LMOXPH88dAXqJX8gZHYCfjmq/CHTogJLeXk5UlNToVar72zAyQlqtRrJyckmbaO0tBQVFRVo3bo1ACA9PR0ajUZvm15eXggPDze6zbKyMhQWFurdrEGKA/2JKwV48etDyJDoDOXyjVK8+M0hHM68Icn2RHOAKUKVOD/FT4cvY+Z3R1Fh4myZTcnChLPYdT4XPx9u/IC67kAm5m88hb982HCfkdqXYUoaGe0jtdotfCqoFB1YarcalJbJH1gac7NWyPj16FVcui5+vpx5G09h1/lcrN2fKep5phwaGxtZZqmLOcV48etDOHm1OrB/nHQBC347Y3R16dW1Oo7/y8yAZ0v11zhvQG5uLqqqquDn56d3v5+fH86cOWPSNl577TUEBAToAopGo9Fto+42ax6rKz4+Hm+99ZaYqsumsQOnWP9aexiHMvOx6dg1ZCwYI+m2HUYjB46PFDht+b/XHwUA3BPcGn+7J0jm2ijTLRPO8E9dFX/ysuC3OscuG2dyBzgHkFxadjFifzxWrzO02CudlSZMsGeM2DV+lNAX6ekvDiDzeim2nNQg7Z2HHG74u01HCS1YsADr1q3DTz/9BDc3N7O3Exsbi4KCAt3t0iVx6zJYSs5OXhkOthR5QzN2ZuSW2N2wcUvdKC2Xuwp2y9zFSi/fMP3yjSmu5pu+PWuHlRsl4j5PVVoBVRZ8yUvlxa8P4UDGDRTdarxFQq9PmvxVl1Xm7RYlS4KakokKLL6+vnB2dkZWln4TZlZWFvz9/Rt87uLFi7FgwQJs3boVffv21d1f8zwx23R1dYWnp6fejcS7dL0U09cdttn1/rqW70hD6LytuJBTbPDxEYuTMP6TfTgrdsipY/6t2r29F3KRkStd501zmvtrWOuk44ymEIMXbNe7r7LOZb7aIaVu3xepzf75hMlltVoBI99LgnrJTpOm/rcmY6MZz2cVYVnieZtfxjOJ/A0sDk9UYHFxcUFYWJiuwywAXQfaiIgIo89buHAh5s+fj4SEBAwcOFDvsU6dOsHf319vm4WFhUhJSWlwm0r1dcqfeOHrVJRXKr8vwgtfH8LPR65KftnKVIu2nEXhrUrEb254ls/T1+o389c+NjSJUT8yOH65AEMXbpdkksGTVwvw909TMGJxkuUVu+2xFQ33m3s3wfaXegxNdXAoM99o+fd/t+6IETGXyPJKypGRV4r03BLFLuT63z8uYsm2c1i81fBs1pkWhFjAsjmynBhYrE70JaGYmBh8+umnWLNmDU6fPo2pU6eipKQE0dHRAIBJkyYhNjZWV/7dd9/F7NmzsWrVKgQHB0Oj0UCj0aC4uPqsWqVSYcaMGXj77bfxyy+/4Pjx45g0aRICAgIwbtw4ad6lxIpuVWLsR7uRcLL+wemNn05g83ENfjyk/LWD0rINt2wooUmY5PfPrw7i0vWbkizjcPKKdTrG16YC9L5oVyRd0Ht8f/p1jHwvCR8npdm0v4G2gS9Ba7ewOOpZ/zEjMwc//z/zP6uVVVqLJvgz5TPloL8OmxHV6RYAxo8fj5ycHMyZMwcajQahoaFISEjQdZrNzMyEk9OdHLRixQqUl5fj8ccf19tOXFwc5s6dCwB49dVXUVJSgueeew75+fkYMmQIEhISLOrnYk3LEs/jZCNnLqZce1WqL/aYP/ROEATM33gandq0wFP3djTxOaZt19w+Ck2dufHzlh20Eta1sZHWoAs5JViYcBYuzsbP1S6LGJJcl6F9XVmlf292of7ljos59jHHiT2cxtS9lCSmxST1zxs4UStYf3vwEl68v6tkdWvI+gOZWJaYhjXPDELXti1t8pr2SHRgAYBp06Zh2rRpBh9LSkrS+zkjI6PR7alUKsybNw/z5s0zpzo2l+Pgs5RaMh7/4J83sOp24DE1sDTmP5tP453Np7F5+lD4tnRt/AnMNU2TiN97Q4sNLttu/izbyxLrP3ftAf3hsXX73lwrsN4EmRb/Kdj539IvR69ihrq7SWXrRps/80px4koBegd6SV+xOmqWcIj98Ri+e36w1V/PXnEtIRlYs89Ffmm5rNefi26Jf+3GdkdOURmyi8qwarf0ky4psvOexMLfSUTwrE1mTx8vNXteS8sc1+qMGjprZBIvazC3VdJRfkNLf7dsiRcxI75M0divo6LKUfa8dTCwmEGpfTzKKqsQOm8b+r21Ve6qiHIg47pJ5axxRahX3BbdJEuO7l/rlDExVOJpw8t4WEqqj4fUeaqhzSnpKqeS6mLKr0AQhHojsKT2xoYTdjNtfVPAwGKGPJFzGxizP/06nvo8RZJtAUBesX3O4VHT3yctuxj706/ju4OX8NNh0zstW3qgtfV02XLRWPHSQ2NqDyM+buYweqU3zGSaMUeSgjKCKL8dv4Zjl/NlrcOET/bhvne3o8yKfa1yisrwxZ4Mk8qaMkqI/fAsY1YflqbCks+WKc/9239NW85AURr51jClp3zyhTxsMTDCSr1kp9nVIpLbsEU75K5CPZZ8PX6xJ93gn/uJKwWY+nX1aBy5ZtsWBAEp6dXLk2QVWrdPoabAtMtCjYWRolsVja7oLHWecbR8xMAig8Qz2RjXP1Duashm4qf7LN6Gwk+2m5TKKi1KK6rg6dZc1PNq+rJIddZZKNHIvNJy2/VrUqlUVm06MnfXXsgpxlu/ntK779L1Uvxn02n4e93p+L77fC4iutwFZzMmIfkmJRObjl/Ff58aiJau+l9FjrimVt39SeLxkpAMfj16VRETy5lzMGNQsBMGfrfWWtZhzLLd6Dt3K7Jqdeqt+4VT9ztZEAT84/MUjPt4L7RaAT8fuYLQeVt1/ZkEQb4p4m9Ye24UGxKzHk7tj8x1A5e9n11zED8cuozlO+7Mb/OPz1Pw3z8u1Ctritd/Oo49aXn4bJd+q8PN8ipZpoWwNDY39vy9Clx01d4wsMikUit/YJHD3F9OWvR8QRDqTe8+e4Pp04+TtCqrtLpRL9vPVHemnfvLSXR74zekZRsfDVNepcWetDwcvZSPzOulmL7uCPJLK/DEyurLpP/8KhUhs3/DcgUuVGlPpFwnydh0+T+kWjZJZu2RelqtgLvnJFi0vbrKTFg0EwDyLRxdeauyyuKQLfUVHKX3+xKLgcVBfL47HYkil6m3yoe5kb+42suZi7V8xwW8vek0RixOwvvb7kxpvuNsjtnbBJreMFspjft4T737an7HH203LWzUnZEWALaeykJFlYBFWwxPwU6OqdTEETkNLXdgrn9+lWrR8yuqBDz0wS6JakOGsA+LAziceQPzN0p3fbSh7++6I020WgHzNp5Cn0AvPBbWXvTqsGJ9fnsuls+tMCcL6TN0WaCGIAi4fOOm3sygxiSdzcbRWlOp170Uuf6gbVdbt7XDVvhydSSONHKmoTl2bH1atP1MVoPLQtgjBhYHYG4veXOOE2WVWr1p8refydadUT8W1h4x3x41qy7bz4hrHaorIj6x8UJNiZWPU5/vTm9wtligevj/peulePqLA9atjB1T6pxOUn7PncsqgntzZwS19tDdZ8uOzfb0nS1leHtm9UETXk+yl7MJXhIiUQpuVmDIuzt0LSnXS++chdftWyKGKX9cDbHm9OZNgSAIOH65wOTr/fVWQjZg1/lcSftQkHXV/rJcuz+zgZKmu1FSjlHv/4GhC/WHfKek35ks0pzZsW3JjvKOw2NgUZid5yzrjyGGmBEEtV3Jv4kv9qTXO0sasThJglpZx85zOfhs10X2VzHi893pePij3Xj+9nX8AiuOlFn6+3mc1dhuenoSz9zj0PIdaRi7fA+Kb3ekNSWwrt3v2JcExbBlg8exy/lGV71WKgYWhZm8ar/cVTCpmXD13gz0nLMF3zcwQmDEoh2Sr8VhCkNDxiev2o+3N51G8oW8eo8Vl4kLbnvTcrFqd7pDhZ+a2Tx3nM3BwYzr6DfPuss7PPJR/c66ZP8WbTmLo5fy0TtuS71FHps6Uw4XtrxEM+VLy1q15cDAIhNTZoRVsppJuvanG18HKCOvFAtNuHRgS1cNXDr6XeToqr9/loJ5G0/h65RMaG3YB6G4rBJv/HTcYOiSkqFRO0rgSAFRDoIg4PS1Qpst+Dl04Q4cuXRD1HPk+h2fMHO5CDEEhV1cumlmC7ucGFisxJF6vluiQqGdCqXw5oYTeMOGc8As3XYOX6dkSjJTsKXsPXA3RUnncjD6g114aJntht7O/tmyeZds5S8f7pa7CgYJgoB9F617gmJPGFga0FRDhyOfyH4rcghtn7gtCJ61CU9+Vh0SLuYU6z1uqHPi9ZJys1teGnpW7Zlqj17Kx5UGLreVVYk7e7LWR11pZ5VN2a9HrgIA/swrReyPx2Suje3Y8/Fs47FrmPCJ/CcoSsHAQjah1QrIMzJTpi01dAmrrl+PXkXR7ebzPWnVZzmzfjje4HNS/7yOAfO3Wf368Njle3Dfgu0GH1u7PxOD/iP9MO+Ui3miZzU1ZwmKP/PMH21GppGyo2tucTku32B/lcaYMv1E3ZZLQ4vEWpNSh9nXYGAhm4hefQBhb/8udzUaVPf6+UtrD9crc6uRYb81E9ol3p6mXg6xPzYcqsw1/pN9ePm7ozjewMiCU1f1J5KbZ8aCb8MXJRm8X6VS4ecjVxCz/ojJw6/JdBuPXTXreTVTHVhzZJklquy5iUVCIxbtwNxfTuo6QxtaLHT9AWWP2GJgsQMHMq5j93nbLZwldcoWBMGmw7VrpGUXmzzHQ1bhLQx6JxHvJpwxejnn/9YctPowQLlm8K19SaiokU6ZDZ1Nx/6kH5YuWjA3jyHT1x3Bj4evYB2HwkpujoX9TTJMaBlr6O+xokqLtOxio4+bKz3Hss+gkvKOJXXJyCvF6r0Z9ebEqe31n6xzsiMVBhYrOfTnDbN7vL+/7Rxmfne0emplrYAnVibjH5+nYPq6ww1Oly6VU9can27dVCpUd/aztRNXCqBestPoZZO6Pt6RhpyiMqxIuoAH399pMLQZG020/kAmzjcwJbcYOUVlFo08OidBPQxdNqs9ikIAbDthxG1xtRbOtMXfgaOR+3t3ydaz6DN3KzYfv2bw8WdWH8CjH++V/HXtqh9V0+w2aTIGFivZdPwafj9t/LJAQ50cP0g8j+9SL+OZ1Qf1/tR+PmJek63cjl7Kt/lrJt7e94aaPQ2pnREu5JQgq9D0mXNf++E4Hnz/D1H1a0jNZ+Nw5g1Evv8H9pi4LH3RrQqMMrMejY36UeooClIOY6s511h2ezHMF74+hA9+P1/v8V02bEUWy5bTF5BxDCxW9Pspy9bHIfPVPqsy52CjERFYTHHscj6eWX1AVEvM3z9NwdmsIjz5WYpJ5XOKbNOp2VjD4c3yKuTaqA43StnCojTPrjG9o/kRGU5izHX5RinC3t6GJVtNWzm8ock0G1P3tKGpjlQ1hoHFir4/ZP4H15HYaqIqY0wZyly32fidRhb2M8ZYS8UjH+3B9jPZmCRiJuObFfbVsXTexlMNDrWWkq3CGdlGZp71RhkZC9jllVrsOJPd6PFpx9kc3Cit0LUQNeaV78xbABYwbXqBzLzSJntJlKs1W1FDnVeV1JHLmk5dLcR2GUfMAMAsE0bN1P19mLvOUmOUukijmBM5AQIqqsQPV5aStX4/JI9hi4x3BLWWdzafru6E2s3X5q9trpyiMt2+ylgwxuztPGeH0/IDbGGh2/JLy5FXXCb51NgXc0tk+XIR+zbqFldmnrROrTYfv4Y/RZ7hyh245Rh1Zu/q/m1/nJSGT/5Q5jIMtrB6bwYAZfedqeu0RpoBEVsb6K6g5DWg2MLSBFy6XorM66W4r6vxM4nQedsAAGP6trNVtaxK7Pdp3S/g0xKOlGrMEyulHxkhxgtfHxJVXu6wQtJYmFDdJ+Mf93aEh4vjfhWU324NPHopH2OXVy+6+Wj/QDmrZJQSlrwYunAH0v4zGs2cldeeobwakcmuFVT3F2hs3pShC3fgyc9ScCiz8YXINh0zPOTQ7oj+VpXvW/hAhv7vhYGAbKnSwUfAbDh8BQB0YQUAfrp9nzV9mHgeUUv/QKGJc0EZIld8KTNjhmpbYGCRiRSdv8fd/gNcd6D+ejaGHMnMt/xFyShBECQ5wgioPxRcSVNmK6cmRI2Tq7/Te9vO4YymCGv2ZJj8nPPZxfhs10UU3+4I3ND3hFYrNLnOtwwsCldabrwHe1ZhGTLzSnHlhmkjM2paZJoCSy8JmeNNiVZu/iH1st7ZIAD0iktocF4fImP2mjiPD0mn9ppbYlaszy0uw9ubTmO+CUtavPjNIQyYvw3JF6RfzXn9gUuIiE/EWY00E2JKhYFF4b5oJJ0PW7TD5OnPP90lz7TvchAbQLQSJJavUzJx+M/GL7s15rvU+sOwb1VI00RbUaXFlpMa5JeWY+4vJ/H0F6YPs64hdcdssq6/357Hp6Hfmkaho9ekIMfn9WULhjYDwJ4LjYfM305UL4z42a6LFr2WIfM2nsK1gluY+f1RCIKA345fw76L0gcjsRy3p5XCFZk4A2vhTWUuKKZ0u2U6q7xq4MCfX2eSs3+vPyLZ61VWaUV1jvtwexqWJZ5Ht7Ytcd4K67aQfbo3XvrVvZVCQVdTRdl3MU/22c0rqwRM+GQfUm4v13HhnYfg7CRfx2C2sMjkB04qZ1ViF1G7KVELhiGPr0zW+1nKDn9iW82WJVZPic6wQjWKTTx5IvPVXovLVBM+2WeFmoiTnluiCyuA/K2rDCwyMbUT5Wcyrd5r74pFzq7761HrnclYYwXaGrUXZOQ03mTMgYzrRs/WB5u4QKi9EgC89v0xWevw8reWXSKSi9Jm2+YlIZl8ZOI0z9T0HL0s/myMqCFP1Gnla0qseTJiii92p6NU5Bf/ZRMHUgBAoswziduSWS0sy5cvR3BwMNzc3BAeHo79+4133Dt58iQee+wxBAcHQ6VSYenSpfXKzJ07FyqVSu8WEhJiTtXshtKSKylHuULnQKhhaKVdIjKsqKxSsmkJxKwi74hEB5b169cjJiYGcXFxOHToEPr164fIyEhkZxtOeaWlpejcuTMWLFgAf39/o9vt1asXrl27prvt3s3l7Mn+Wfuab+qfN7Aw4YxVX6MuU0elEZG0sgoNL/r5+e70JjF8XXRgWbJkCaZMmYLo6Gj07NkTK1euhIeHB1atWmWw/D333INFixZhwoQJcHV1NbrdZs2awd/fX3fz9bWfBamIDNFqBSzaYtqS9Jb4OOkCyiqrJBmaTUT2Z/7GU7rh69Ykdz85UYGlvLwcqampUKvVdzbg5AS1Wo3kZMuukZ4/fx4BAQHo3LkznnzySWRmGp+9taysDIWFhXo3IqX54dBlfJxkm8Xl+sRtxeMr5F2TiIgcW4HM02yICiy5ubmoqqqCn5+f3v1+fn7QaDRmVyI8PByrV69GQkICVqxYgfT0dAwdOhRFRYZn2YuPj4eXl5fuFhQUZPZrE1nLrzZcl6m8SosbpZyzh4isZ8D8bbK+viKGNY8ePRpPPPEE+vbti8jISGzevBn5+fn49ttvDZaPjY1FQUGB7nbpUv2ZQYnk9se5HLmrQETkMEQNa/b19YWzszOysrL07s/KymqwQ61Y3t7e6N69O9LSDA/9dXV1bbA/DBERETkWUS0sLi4uCAsLQ2LinWmctVotEhMTERERIVmliouLceHCBbRr106ybRIREZH9Ej1xXExMDCZPnoyBAwdi0KBBWLp0KUpKShAdHQ0AmDRpEgIDAxEfHw+guqPuqVOndP+/cuUKjhw5gpYtW6Jr164AgFdeeQUPP/wwOnbsiKtXryIuLg7Ozs6YOHGiVO+TiIiI7JjowDJ+/Hjk5ORgzpw50Gg0CA0NRUJCgq4jbmZmJpyc7jTcXL16Ff3799f9vHjxYixevBjDhw9HUlISAODy5cuYOHEi8vLy0KZNGwwZMgT79u1DmzZtLHx7RERE5AhUgtyrGUmgsLAQXl5eKCgogKenp6TbDp61SdLtERER2auMBWMk3Z6Y729FjBIiIiIiaggDCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKZ5ZgWX58uUIDg6Gm5sbwsPDsX//fqNlT548icceewzBwcFQqVRYunSpxdskIiKipkV0YFm/fj1iYmIQFxeHQ4cOoV+/foiMjER2drbB8qWlpejcuTMWLFgAf39/SbZJRERETYvowLJkyRJMmTIF0dHR6NmzJ1auXAkPDw+sWrXKYPl77rkHixYtwoQJE+Dq6irJNomIiKhpERVYysvLkZqaCrVafWcDTk5Qq9VITk42qwLmbLOsrAyFhYV6NyIiInJcogJLbm4uqqqq4Ofnp3e/n58fNBqNWRUwZ5vx8fHw8vLS3YKCgsx6bSIiIrIPdjlKKDY2FgUFBbrbpUuX5K4SERERWVEzMYV9fX3h7OyMrKwsvfuzsrKMdqi1xjZdXV2N9ochIiIixyOqhcXFxQVhYWFITEzU3afVapGYmIiIiAizKmCNbRIREZFjEdXCAgAxMTGYPHkyBg4ciEGDBmHp0qUoKSlBdHQ0AGDSpEkIDAxEfHw8gOpOtadOndL9/8qVKzhy5AhatmyJrl27mrRNIiIiatpEB5bx48cjJycHc+bMgUajQWhoKBISEnSdZjMzM+HkdKfh5urVq+jfv7/u58WLF2Px4sUYPnw4kpKSTNomERERNW0qQRAEuSthqcLCQnh5eaGgoACenp6Sbjt41iZJt0dERGSvMhaMkXR7Yr6/7XKUEBERETUtDCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREREpHgMLERERKR4DCxERESkeAwsREQS6hPoJXcViBwSAwsRkYRUKrlrQOSYGFiIiIhI8RhYiIiISPEYWIiIiEjxzAosy5cvR3BwMNzc3BAeHo79+/c3WP67775DSEgI3Nzc0KdPH2zevFnv8aeffhoqlUrvFhUVZU7ViIhkt+vV++WuApHDER1Y1q9fj5iYGMTFxeHQoUPo168fIiMjkZ2dbbD83r17MXHiRDz77LM4fPgwxo0bh3HjxuHEiRN65aKionDt2jXdbe3atea9IyIiGQkC4O3RXO5qEDkc0YFlyZIlmDJlCqKjo9GzZ0+sXLkSHh4eWLVqlcHyH3zwAaKiojBz5kzcfffdmD9/PgYMGICPPvpIr5yrqyv8/f11Nx8fH/PeERERETkcUYGlvLwcqampUKvVdzbg5AS1Wo3k5GSDz0lOTtYrDwCRkZH1yiclJaFt27bo0aMHpk6diry8PKP1KCsrQ2Fhod6NqLa3HumFP2ayWZ5sj8OaiaxDVGDJzc1FVVUV/Pz89O738/ODRqMx+ByNRtNo+aioKHz55ZdITEzEu+++i507d2L06NGoqqoy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\n",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "\n",
        "plt.plot(range(len(df)), np.array(words)/np.array(chars))\n",
        "print(np.mean(np.array(words)/np.array(chars)))\n",
        "print(np.var(np.array(words)/np.array(chars)))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "IcNOt7W6IkfR",
        "outputId": "a8c5395f-db8f-44cb-afa6-38dd21112161"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "7664 5636 8189 0\n"
          ]
        }
      ],
      "source": [
        "count_5000 = 0\n",
        "count_10000 = 0\n",
        "count_2000 = 0\n",
        "count_1000 = 0\n",
        "for string in df['trimmed']:\n",
        "  if len(str(string)) <= 1000 and str(string)[:12] in start:\n",
        "    count_1000 += 1\n",
        "  elif len(str(string)) <= 2000 and str(string)[:12] in start:\n",
        "    count_2000 += 1\n",
        "  elif len(str(string)) <= 5000 and str(string)[:12] in start:\n",
        "    count_5000 += 1\n",
        "  elif len(str(string)) <= 1000 and str(string)[:12] in start:\n",
        "    count_10000 += 1\n",
        "print(count_1000, count_2000, count_5000, count_10000)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "8Tzlc2sVIkdx"
      },
      "outputs": [],
      "source": [
        "#trimming comments and other details from the beginning of the code\n",
        "df_1000 = pd.DataFrame(columns = df.columns)\n",
        "start = ['LIBRARY IEEE', 'Library IEEE','Library Ieee', 'library ieee', 'library Ieee', 'library IEEE']\n",
        "for i,string in enumerate(df['trimmed']):\n",
        "  if len(str(string)) <= 1000 and str(string)[:12] in start:\n",
        "    df_1000.loc[len(df_1000.index)] = list(df.iloc[i])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 354
        },
        "id": "0rDBozKEOeZu",
        "outputId": "76598e10-5792-4c44-ea47-df605c8cf1f2"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "\n",
              "  <div id=\"df-dfcacbfa-0025-4bec-b2ca-b73e991d5db4\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>repo_name</th>\n",
              "      <th>path</th>\n",
              "      <th>copies</th>\n",
              "      <th>size</th>\n",
              "      <th>content</th>\n",
              "      <th>license</th>\n",
              "      <th>trimmed</th>\n",
              "      <th>gpt-3.5</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Kinxil/VHDL_Projects</td>\n",
              "      <td>Mandelbrot/cpt_iter.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>884</td>\n",
              "      <td>\\nlibrary IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "      <td>library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\n\\...</td>\n",
              "      <td>hello</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>joalcava/sparcv8-monocicle</td>\n",
              "      <td>MuxNextRD.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>444</td>\n",
              "      <td>library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\n\\...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "      <td>library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\n\\...</td>\n",
              "      <td>hello</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>joalcava/sparcv8-monocicle</td>\n",
              "      <td>DM.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>987</td>\n",
              "      <td>library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nu...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "      <td>library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nu...</td>\n",
              "      <td>hello</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>chrreisinger/OpenVC</td>\n",
              "      <td>document/Masterarbeit/src/math_complex.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>691</td>\n",
              "      <td>library ieee;\\n\\npackage math_complex is\\n  ty...</td>\n",
              "      <td>gpl-3.0</td>\n",
              "      <td>library ieee;\\n\\npackage math_complex is\\n  ty...</td>\n",
              "      <td>hello</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>jpidancet/mips</td>\n",
              "      <td>rtl/cpu_fetch.vhd</td>\n",
              "      <td>1</td>\n",
              "      <td>905</td>\n",
              "      <td>library ieee;\\nuse ieee.std_logic_1164.ALL;\\nu...</td>\n",
              "      <td>isc</td>\n",
              "      <td>library ieee;\\nuse ieee.std_logic_1164.ALL;\\nu...</td>\n",
              "      <td>hello</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-dfcacbfa-0025-4bec-b2ca-b73e991d5db4')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "\n",
              "\n",
              "\n",
              "    <div id=\"df-4d528312-a889-4cd7-9f11-8fbb9991ed81\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4d528312-a889-4cd7-9f11-8fbb9991ed81')\"\n",
              "              title=\"Suggest charts.\"\n",
              "              style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "    </div>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "    background-color: #E8F0FE;\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: #1967D2;\n",
              "    height: 32px;\n",
              "    padding: 0 0 0 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: #E2EBFA;\n",
              "    box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: #174EA6;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "    background-color: #3B4455;\n",
              "    fill: #D2E3FC;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart:hover {\n",
              "    background-color: #434B5C;\n",
              "    box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "    filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "    fill: #FFFFFF;\n",
              "  }\n",
              "</style>\n",
              "\n",
              "    <script>\n",
              "      async function quickchart(key) {\n",
              "        const containerElement = document.querySelector('#' + key);\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      }\n",
              "    </script>\n",
              "\n",
              "      <script>\n",
              "\n",
              "function displayQuickchartButton(domScope) {\n",
              "  let quickchartButtonEl =\n",
              "    domScope.querySelector('#df-4d528312-a889-4cd7-9f11-8fbb9991ed81 button.colab-df-quickchart');\n",
              "  quickchartButtonEl.style.display =\n",
              "    google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "}\n",
              "\n",
              "        displayQuickchartButton(document);\n",
              "      </script>\n",
              "      <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-dfcacbfa-0025-4bec-b2ca-b73e991d5db4 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-dfcacbfa-0025-4bec-b2ca-b73e991d5db4');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "                    repo_name                                        path  \\\n",
              "0        Kinxil/VHDL_Projects                     Mandelbrot/cpt_iter.vhd   \n",
              "1  joalcava/sparcv8-monocicle                               MuxNextRD.vhd   \n",
              "2  joalcava/sparcv8-monocicle                                      DM.vhd   \n",
              "3         chrreisinger/OpenVC  document/Masterarbeit/src/math_complex.vhd   \n",
              "4              jpidancet/mips                           rtl/cpu_fetch.vhd   \n",
              "\n",
              "   copies  size                                            content  license  \\\n",
              "0       1   884  \\nlibrary IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\...  gpl-3.0   \n",
              "1       1   444  library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\n\\...  gpl-3.0   \n",
              "2       1   987  library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nu...  gpl-3.0   \n",
              "3       1   691  library ieee;\\n\\npackage math_complex is\\n  ty...  gpl-3.0   \n",
              "4       1   905  library ieee;\\nuse ieee.std_logic_1164.ALL;\\nu...      isc   \n",
              "\n",
              "                                             trimmed gpt-3.5  \n",
              "0  library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\n\\...   hello  \n",
              "1  library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\n\\...   hello  \n",
              "2  library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nu...   hello  \n",
              "3  library ieee;\\n\\npackage math_complex is\\n  ty...   hello  \n",
              "4  library ieee;\\nuse ieee.std_logic_1164.ALL;\\nu...   hello  "
            ]
          },
          "execution_count": 82,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "df_1000['gpt-3.5'] = ['hello']*len(df_1000.index)\n",
        "df_1000.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "OsDrMH-xOnrB"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-gz9AHBLPNIs"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "S3gX2EhhR2e2"
      },
      "source": [
        "###GPT-3.5 API setup and HDL code summary generation"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "285NGYwGUP2h"
      },
      "outputs": [],
      "source": [
        "df_1000 = pd.read_csv('/content/drive/MyDrive/LLM_project/df_1000.csv')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "e6tH2TvCSAwq"
      },
      "outputs": [],
      "source": [
        "!pip install -q openai\n",
        "import time\n",
        "import openai"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "Qit5LikeSBkM"
      },
      "outputs": [],
      "source": [
        "f = open('/content/drive/MyDrive/LLM_project/api_key.txt', 'r')\n",
        "api_key = str(f.readlines()[3])[:-1] #9xxxxxx333"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "pdrEmeBaSBiW"
      },
      "outputs": [],
      "source": [
        "#api_key = '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'\n",
        "openai.api_key = api_key"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "1IWPyPDeYf2E"
      },
      "outputs": [],
      "source": [
        "precursur = ('can you give a statement of about 100 words taking which a competent programmer would write the below HDL code.\\n')\n",
        "\n",
        "n_prompts = 2400\n",
        "start_from = 2400\n",
        "for i in range(start_from, n_prompts):\n",
        "  t = time.time()\n",
        "  messages = [{'role': 'system', 'content': 'You are hardware designer briefly explaining the HDL code given to you'},]\n",
        "\n",
        "  prompt = str(df_1000['trimmed'][i])\n",
        "  messages.append({'role': 'user', 'content': prompt})\n",
        "  chat = openai.ChatCompletion.create(\n",
        "              model=\"gpt-3.5-turbo\", messages=messages)\n",
        "\n",
        "  reply = chat.choices[0].message.content\n",
        "  df_1000['gpt-3.5'][i] = reply\n",
        "\n",
        "  time.sleep(10)\n",
        "  print(i/100)\n",
        "  df_1000.to_csv('/content/drive/MyDrive/LLM_project/df_1000.csv')"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "We setup GPT-3.5 api and generated and filled the required fields in our dataset"
      ],
      "metadata": {
        "id": "DGxYIF2AVpVF"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "###Fine tuning GPT-2"
      ],
      "metadata": {
        "id": "Mb5pgBtVJh4s"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install -q transformers datasets evaluate\n",
        "from huggingface_hub import notebook_login\n",
        "notebook_login()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 145,
          "referenced_widgets": [
            "27daebf6453145e1834b112d0bca212e",
            "78197980460c4ee8a225fd81c439dd65",
            "1e9905287725435aa1d70974a32dea2b",
            "7fc3dae9046742efb28f95bfcdeffab5",
            "a06e40fff0db4907becbe4411cc91e4f",
            "039eebb112994431b688dd092a96d983",
            "7b4c4f2d8e3641d39d404180a3ea3490",
            "269f8bfc393c445e9b03ecb93f4558f4",
            "e1d9f9108f5145059ae236dbf0e70e6c",
            "3122136ed6ae47f3ac4c4b6f92777525",
            "f685671c6f7f4b61b74b95cd66d68a50",
            "004d5d1c230146d794958fdc553020c6",
            "a917413fb32646ef85e24d39bbb5eb7a",
            "d5fbf94fdc7c464e9c6c73787eeaf2a2",
            "37af0004069b45d38eff77d88c3609ff",
            "fe058255a8f84bddb7aeee974853526f",
            "73fd49ece8f2438a89dd05cb321cbd00",
            "407b9eae27f54eefa75c3078600bd2c8",
            "d2dd1b7a02ba4b12bb2ceecf209e3fc9",
            "dfd0da633ee749f8bb914a7700ae5180",
            "ba1acb220dd24b17b39634a8bdd5ea30",
            "0f95ab5f400e4e31bd81a8998909a54e",
            "d413d862c26e4298835ecf6209f6974e",
            "de1092c6e6c64dcd9012835c50067e68",
            "05b9b1de4c034417bf273fb8a6dfc23b",
            "6534d3d7803d4cea85c5b9cc2405889c",
            "672ec659f512419f81a0b38782665d6a",
            "72975b47c49e45c89ae41c586202f3e4",
            "40837e169c894517babf5a405ff5a873",
            "9572a75d6f6a40aa8e6fdfd9e345b8f2",
            "d322b9db0e5549e4ae7564b9f17cfbf3",
            "b2094960a71a4e0184c0bb4f9d596f97"
          ]
        },
        "id": "huqaagy3Uhs_",
        "outputId": "76663d80-5c8a-42e8-991b-bb191fe68538"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "VBox(children=(HTML(value='<center> <img\\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.sv…"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "27daebf6453145e1834b112d0bca212e"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "code_gen = 1100\n",
        "code_summarize = 1300\n",
        "\n",
        "dset = []\n",
        "\n",
        "for i in range(len(df_1000)):\n",
        "  if i < code_gen:\n",
        "    dset.append(df_1000['gpt-3.5'][i] + '\\n' + df_1000['trimmed'][i])\n",
        "  elif i < code_gen + code_summarize:\n",
        "    dset.append('summarize the below code\\n' + df_1000['trimmed'][i] + '\\n' + df_1000['gpt-3.5'][i])\n",
        "  else:\n",
        "    dset.append('complete the below code\\n' + df_1000['trimmed'][i])\n",
        "\n",
        "df_final = pd.DataFrame({'text':dset})\n",
        "df_final.head()\n",
        "df_final.to_csv('/content/drive/MyDrive/LLM_project/df_final.csv')"
      ],
      "metadata": {
        "id": "YmbuVpft-hO8"
      },
      "execution_count": 10,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import AutoTokenizer\n",
        "tokenizer = AutoTokenizer.from_pretrained('gpt2')"
      ],
      "metadata": {
        "id": "9968kXasF8pA"
      },
      "execution_count": 3,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "from datasets import load_dataset, Dataset\n",
        "df_final = pd.read_csv('/content/drive/MyDrive/LLM_project/df_final.csv')\n",
        "dataset = Dataset.from_pandas(df_final)\n",
        "dataset = dataset.train_test_split(test_size=0.2)\n",
        "\n",
        "def tokenize(input):\n",
        "  return tokenizer(input['text'], truncation=True)\n",
        "\n",
        "tokenized_dataset = dataset.map(tokenize, batched=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "a5b4132f35f141a9b87f457b5bfddaad",
            "88afceca4b0e4dbeb5d4112f42dfa95a",
            "f1e215cd5b0d4ca5a290793b5cc02444",
            "dd858ee47ca14dfab5703a8a6199468a",
            "535a6b9bd51a43f8be462621a118f218",
            "7a1becd02da24a0dbdc64e0819758c4d",
            "13c873260f394700a7d6a38dc38a7e5c",
            "efded291766644fdb8ad40d7df1d0357",
            "501713a17f30403b90d6d3c2b2af9111",
            "c9f01edaabe4492a998d2907a033a0bd",
            "b9576292d3e44178835607142f63a2d9",
            "b1c37d50bf07498ebf08e75bcbd2d9cb",
            "40602555c61445a9a050c4e80ed79e10",
            "38433c26d4f4427ba0b9c87f700a72ce",
            "c7a0c586f74c472cb1669511bd65d3e5",
            "6326c2a71e194bea90eb308b51ef2cd6",
            "737c53bc9d294724a977702d5a2c4681",
            "66c08d8f8cd84230a33df6a800baa01a",
            "19e84384f7a94cb0b8eb56e370ebf2ea",
            "ac6eb7244ce34263aaa93342a54757cf",
            "6dabe1703a7f4d809e695843da2f66fe",
            "3e3a114a90a64cf2b511198da4c67eb5"
          ]
        },
        "id": "9xwjh-utF8kf",
        "outputId": "f10558c3-be43-4ee6-f850-b0588237e503"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Map:   0%|          | 0/6131 [00:00<?, ? examples/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "a5b4132f35f141a9b87f457b5bfddaad"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Map:   0%|          | 0/1533 [00:00<?, ? examples/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "b1c37d50bf07498ebf08e75bcbd2d9cb"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "tokenized_dataset"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "CSYTWH7UZh1Z",
        "outputId": "04b7b018-190b-411f-8a57-d8b1c2fae2cc"
      },
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DatasetDict({\n",
              "    train: Dataset({\n",
              "        features: ['Unnamed: 0', 'text', 'input_ids', 'attention_mask'],\n",
              "        num_rows: 6131\n",
              "    })\n",
              "    test: Dataset({\n",
              "        features: ['Unnamed: 0', 'text', 'input_ids', 'attention_mask'],\n",
              "        num_rows: 1533\n",
              "    })\n",
              "})"
            ]
          },
          "metadata": {},
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "block_size = 128\n",
        "def group_texts(inputs):\n",
        "    #concatenated_inputs = {k: sum(inputs[k], []) for k in inputs.keys()}\n",
        "    total_length = len(inputs[list(inputs.keys())[0]])\n",
        "    if total_length >= block_size:\n",
        "        total_length = (total_length // block_size) * block_size\n",
        "    result = {\n",
        "        k: [t[i : i + block_size] for i in range(0, total_length, block_size)]\n",
        "        for k, t in inputs.items()\n",
        "    }\n",
        "    result[\"labels\"] = result[\"input_ids\"].copy()\n",
        "    return result\n",
        "\n",
        "lm_dataset = tokenized_dataset.map(group_texts, batched=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "f628f51c9a8c478d994cb497c12a3c09",
            "4d39b20e621741bb993272cac5e9455c",
            "cc345c2b927e4ad091c61b6b8f5f14a6",
            "3c244052eb594cfea0091cc960f77ade",
            "deb10b36597d4688a247f209653e2195",
            "083f011ec85740ca8efc3462404e09e2",
            "06a117b243be4b1c9afd0fbb7db47db0",
            "112398a1a364453d86890487dacdc7a6",
            "67e1463255e5432a88212f932733323a",
            "691a48724cd040b886cfb6b8d9aea242",
            "2fe06bb0be1049fdaa788ef16ddedc66",
            "fb6d02cb39304963837901d37c982148",
            "45e2833245024765890bec5637d84c9c",
            "2824618c895e4441965b5783fa9b2572",
            "497d5e82ea25494190daf45bf12acdb0",
            "6250a1a8691c41fca61584794b96e5f4",
            "5b63945051f14946acf05eaf7c621e2a",
            "51b039c8a9d54658b9db69aae153703f",
            "3cf3057d174044eab5893406a355f4ec",
            "89a4df4f9b054142b89b2a2fb01024e3",
            "01285ef17bca493ead27bca30d9e3f1c",
            "44f1e554a1904c9d9ac1142e7f20fc04"
          ]
        },
        "id": "NftudHpCojwB",
        "outputId": "81de183d-fc04-492e-fe87-326de5b22fc2"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Map:   0%|          | 0/6131 [00:00<?, ? examples/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "f628f51c9a8c478d994cb497c12a3c09"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Map:   0%|          | 0/1533 [00:00<?, ? examples/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "fb6d02cb39304963837901d37c982148"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "lm_dataset"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "m0lugneupiCE",
        "outputId": "1a8966a7-a50b-4b4f-fa77-ce795415a9ca"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DatasetDict({\n",
              "    train: Dataset({\n",
              "        features: ['Unnamed: 0', 'text', 'input_ids', 'attention_mask', 'labels'],\n",
              "        num_rows: 43\n",
              "    })\n",
              "    test: Dataset({\n",
              "        features: ['Unnamed: 0', 'text', 'input_ids', 'attention_mask', 'labels'],\n",
              "        num_rows: 11\n",
              "    })\n",
              "})"
            ]
          },
          "metadata": {},
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import DataCollatorForLanguageModeling\n",
        "\n",
        "tokenizer.pad_token = tokenizer.eos_token\n",
        "data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)"
      ],
      "metadata": {
        "id": "70vvsXOHF8ix"
      },
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "Training the model"
      ],
      "metadata": {
        "id": "EE5AodUEVCUa"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install -q -U accelerate\n",
        "!pip install -q -U transformers"
      ],
      "metadata": {
        "id": "Twoilvmla-PK"
      },
      "execution_count": 9,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import AutoModelForCausalLM, TrainingArguments, Trainer\n",
        "model = AutoModelForCausalLM.from_pretrained('gpt2')\n",
        "\n",
        "training_args = TrainingArguments(output_dir='/content/drive/MyDrive/LLM_project/gpt2_hdl',\n",
        "                                  per_device_train_batch_size=2,\n",
        "                                  evaluation_strategy=\"epoch\",\n",
        "                                  learning_rate=2e-5,\n",
        "                                  weight_decay=0.01,\n",
        "                                  push_to_hub=True,\n",
        "                                  )\n",
        "\n",
        "trainer = Trainer(model=model,\n",
        "                  args=training_args,\n",
        "                  train_dataset=tokenized_dataset['train'],\n",
        "                  eval_dataset=tokenized_dataset['test'],\n",
        "                  data_collator=data_collator,\n",
        "                  )"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wg35wVsA_uhp",
        "outputId": "e967dc7d-c85f-4bde-8c30-0ea355e38c48"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/content/drive/MyDrive/LLM_project/gpt2_hdl is already a clone of https://huggingface.co/myn11/gpt2_hdl. Make sure you pull the latest changes with `repo.git_pull()`.\n",
            "WARNING:huggingface_hub.repository:/content/drive/MyDrive/LLM_project/gpt2_hdl is already a clone of https://huggingface.co/myn11/gpt2_hdl. Make sure you pull the latest changes with `repo.git_pull()`.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "gpu_device = torch.device(\"cuda:0\")\n",
        "current_memory_usage = torch.cuda.memory_allocated(device=gpu_device)\n",
        "max_memory_capacity = torch.cuda.max_memory_allocated(device=gpu_device)\n",
        "\n",
        "print(current_memory_usage, max_memory_capacity)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TSGjN-Adu1PM",
        "outputId": "23814d81-2b2f-4186-ad10-504da264acf8"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "511148032 511148032\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "torch.cuda.empty_cache()\n",
        "trainer.train()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 276
        },
        "id": "K-aSdCF1VkkG",
        "outputId": "648a8d84-2ad0-4a66-e27c-ae0a0c1a6bc6"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/transformers/optimization.py:411: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n",
            "  warnings.warn(\n",
            "You're using a GPT2TokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='9198' max='9198' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [9198/9198 59:32, Epoch 3/3]\n",
              "    </div>\n",
              "    <table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              " <tr style=\"text-align: left;\">\n",
              "      <th>Epoch</th>\n",
              "      <th>Training Loss</th>\n",
              "      <th>Validation Loss</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <td>1</td>\n",
              "      <td>0.982200</td>\n",
              "      <td>0.913574</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>2</td>\n",
              "      <td>0.886600</td>\n",
              "      <td>0.837943</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <td>3</td>\n",
              "      <td>0.817100</td>\n",
              "      <td>0.816834</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table><p>"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "TrainOutput(global_step=9198, training_loss=0.9767863951083965, metrics={'train_runtime': 3576.5038, 'train_samples_per_second': 5.143, 'train_steps_per_second': 2.572, 'total_flos': 4389900065280000.0, 'train_loss': 0.9767863951083965, 'epoch': 3.0})"
            ]
          },
          "metadata": {},
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import math\n",
        "eval_results = trainer.evaluate()\n",
        "print(f\"Perplexity: {math.exp(eval_results['eval_loss']):.2f}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 54
        },
        "id": "e8zjETMYVkiC",
        "outputId": "a7633c8b-5710-43ef-f8d4-b48f716cef43"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "\n",
              "    <div>\n",
              "      \n",
              "      <progress value='192' max='192' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      [192/192 01:51]\n",
              "    </div>\n",
              "    "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Perplexity: 2.26\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "trainer.push_to_hub()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "-GfBv0XUCmS0",
        "outputId": "fb2aa31d-5b90-4b5a-a203-1d75f32faa33"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Several commits (2) will be pushed upstream.\n",
            "WARNING:huggingface_hub.repository:Several commits (2) will be pushed upstream.\n",
            "The progress bars may be unreliable.\n",
            "WARNING:huggingface_hub.repository:The progress bars may be unreliable.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Testing the model"
      ],
      "metadata": {
        "id": "GI7L2JxvpWZi"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "prompt = 'library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nentity XOR_BitABit is\\nPort ( A : in  STD_LOGIC_VECTOR (3 downto 0);\\nB : in  STD_LOGIC_VECTOR (3 downto 0);\\nZ : out  STD_LOGIC_VECTOR (3 downto 0));\\nend XOR_BitABit;\\narchitecture Behavioral of XOR_BitABit is\\nsignal Zout : STD_LOGIC_VECTOR(3 downto 0);\\nbegin\\nZout(0) <= A(0) XOR B(0);\\nZout(1) <= A(1) XOR B(1);\\nZout(2) <= A(2) XOR B(2);\\nZout(3) <= A(3) XOR B(3);\\nZ <= Zout;\\nend Behavioral;'\n",
        "\n",
        "from transformers import AutoModelForCausalLM, TrainingArguments, Trainer, pipeline, AutoTokenizer\n",
        "model = AutoModelForCausalLM.from_pretrained('/content/drive/MyDrive/LLM_project/gpt2_hdl/')\n",
        "tokenizer = AutoTokenizer.from_pretrained('gpt2')\n",
        "inputs = tokenizer(prompt, return_tensors='pt').input_ids\n",
        "output = model.generate(inputs, max_length = 500)"
      ],
      "metadata": {
        "id": "zENqnxJtFe92"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "tokenizer.batch_decode(output, skip_special_tokens=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "E_zNFE4enyKP",
        "outputId": "1ba920c6-7373-4a84-987d-c55233d316f7"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nentity XOR_BitABit is\\nPort ( A : in  STD_LOGIC_VECTOR (3 downto 0);\\nB : in  STD_LOGIC_VECTOR (3 downto 0);\\nZ : out  STD_LOGIC_VECTOR (3 downto 0));\\nend XOR_BitABit;\\narchitecture Behavioral of XOR_BitABit is\\nsignal Zout : STD_LOGIC_VECTOR(3 downto 0);\\nbegin\\nZout(0) <= A(0) XOR B(0);\\nZout(1) <= A(1) XOR B(1);\\nZout(2) <= A(2) XOR B(2);\\nZout(3) <= A(3) XOR B(3);\\nZ <= Zout;\\nend Behavioral;\\n\\nThe given HDL code is for a hardware design that implements a bit-wise AND operation between two input vectors. \\n\\nThe entity declaration defines the inputs and outputs of the design. It has two ports: A and B, which are input vectors of type STD_LOGIC_VECTOR. \\n\\nThe architecture declaration defines the behavior of the design. It uses the IEEE.STD_LOGIC_1164 library for standard logic operations. \\n\\nThe architecture section defines the behavior of the design. It uses the behavioral package to implement the bit-wise AND operation between two input vectors. \\n\\nThe architecture section also includes a signal named Zout, which is an input vector of type STD_LOGIC_VECTOR. \\n\\nOverall, this HDL code implements a bit-wise AND operation between two input vectors. It performs the bit-wise AND operation on the input vectors A and B, and assigns the result to the output vector Zout. \\n\\nOverall, this HDL code implements a bit-wise AND operation between two input vectors. It performs the bit-wise AND operation on the input vectors A and B, and assigns the result to the output vector Zout. \\n\\nOverall, this HDL code implements a bit-wise AND operation between two input vectors. It performs the bit-wise AND operation on the input vectors A and B, and assigns the result to the output vector']"
            ]
          },
          "metadata": {},
          "execution_count": 16
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "prompt = 'Implement a full adder circuit in HDL. A and B are the inputs, Cin in the input carray and S and Cout are output sum and carry respectively'\n",
        "inputs = tokenizer(prompt, return_tensors='pt').input_ids\n",
        "output = model.generate(inputs, max_length = 500)\n",
        "print('\\n\\n')\n",
        "tokenizer.batch_decode(output, skip_special_tokens=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "72lgmFgOoS-t",
        "outputId": "7a810124-a1c6-4208-afc0-aca4934f727d"
      },
      "execution_count": 18,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "\n",
            "\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[\"Implement a full adder circuit in HDL. A and B are the inputs, Cin in the input carray and S and Cout are output sum and carry respectively.\\n\\nThe circuit should have the following inputs and outputs:\\n\\nInputs:\\n- Cin: a single bit input representing the input signal\\n- S: a single bit input representing the input signal\\n- Cout: a single bit input representing the output signal\\n\\nOutputs:\\n- Cout: a single bit output representing the output signal\\n\\nThe circuit should have the following outputs:\\n- Cout: a single bit output representing the output signal\\n\\nThe circuit should be implemented using VHDL.\\nlibrary ieee;\\nuse ieee.std_logic_1164.all;\\n\\nentity adder is\\n\\tport (\\n\\t\\tCin : in std_logic_vector(3 downto 0);\\n\\t\\tS : in std_logic_vector(3 downto 0);\\n\\t\\tCout : out std_logic_vector(3 downto 0)\\n\\t);\\nend adder;\\n\\narchitecture rtl of adder is\\nbegin\\n\\tCout <= Cin when S = '1' else Cout;\\n\\tCout <= Cin when S = '0' else Cout;\\nend rtl;\\n\\nThe given HDL code is for a full adder circuit. \\n\\nThe entity declaration defines the inputs and outputs of the circuit. \\n\\nThe inputs Cin and S are of type std_logic_vector and are of type std_logic_vector. \\n\\nThe inputs Cin and S are of type std_logic_vector and are of type std_logic_vector. \\n\\nThe architecture section of the code defines the behavior of the circuit. \\n\\nThe architecture section includes a process block that triggers on the rising edge of the input signal Cin. \\n\\nInside the process block, there is a process statement that triggers on the rising edge of the input signal Cin. \\n\\nInside the process block, there is a process statement that triggers on the rising edge of the input signal Cin. \\n\\nInside the process block, there is a process statement that triggers on the rising edge of the input signal Cin. \\n\\nInside the process block, there is\"]"
            ]
          },
          "metadata": {},
          "execution_count": 18
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "prompt = 'library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nentity XOR_BitABit is\\nPort ( A : in  STD_LOGIC_VECTOR (3'\n",
        "inputs = tokenizer(prompt, return_tensors='pt').input_ids\n",
        "output = model.generate(inputs, max_length = 200)\n",
        "tokenizer.batch_decode(output, skip_special_tokens=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5gVMAoVTpaFl",
        "outputId": "f4732bae-766d-47a5-a507-d76630077ea9"
      },
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nentity XOR_BitABit is\\nPort ( A : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tB : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tC : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tD : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tE : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tF : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tG : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\t\\tH : in  STD_LOGIC_VECTOR (3 downto 0']"
            ]
          },
          "metadata": {},
          "execution_count": 19
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "The model is repeating the same thing, Let's try changin top_k and top_p"
      ],
      "metadata": {
        "id": "eBHLqfNepx-X"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "prompt = 'library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nentity XOR_BitABit is\\nPort ( A : in  STD_LOGIC_VECTOR (3'\n",
        "inputs = tokenizer(prompt, return_tensors='pt').input_ids\n",
        "output = model.generate(inputs, max_length = 200, do_sample=True, top_k = 0, top_p = 0.95)\n",
        "tokenizer.batch_decode(output, skip_special_tokens=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "q8ns1bgRoS8k",
        "outputId": "fdbbd101-bf55-4ea0-f5d8-02e4245c5290"
      },
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['library IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nentity XOR_BitABit is\\nPort ( A : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\tB : in  STD_LOGIC_VECTOR (3 downto 0);\\n\\t\\tH : out STD_LOGIC_VECTOR (2 downto 0);\\n\\t\\tR : out STD_LOGIC_VECTOR (2 downto 0));\\nend XOR_BitABit;\\n\\narchitecture Behavioral of XOR_BitABit is\\nbegin\\n\\n\\tR <= A;\\n\\tH <= b;\\n\\nend Behavioral;\\n\\n\\nThis HDL code represents an asynchronous bit-bit multiplication operation. \\n\\nThe code describes a simple operation that is implemented using the entity declaration and port declaration. The entity declaration defines the inputs and outputs of the operation. \\n\\nInside']"
            ]
          },
          "metadata": {},
          "execution_count": 23
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "prompt = 'summarize this library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; use work.randgen_package.all; entity chaoticMap is Port ( clk : in std_logic; reset : in std_logic; output : out std_logic); end chaoticMap; architecture Behavioral of chaoticMap is -- Supposing 2 integer bits and two\\'s complement, the constants -- correspond to zero, one and minus one values constant zero : signed(N_BIT-1 downto 0) := (others => \\'0\\'); constant one : signed(N_BIT-1 downto 0) := (N_BIT-2 => \\'1\\', others => \\'0\\'); constant minusone : signed(N_BIT-1 downto 0) := (N_BIT-1 => \\'1\\', N_BIT-2 => \\'1\\', others => \\'0\\'); -- Stores the current state signal reg : signed(N_BIT-1 downto 0); begin -- update map proc_map: process(clk,reset) begin if reset = \\'0\\' then if rising_edge(clk) then -- 1.875 * reg = (2*reg) - (reg/8) = (reg<<1) - (reg>>3) if (reg < zero) then -- reg = 1.875 * reg + 1 reg <= (( reg(N_BIT-2 downto 0) & \"0\" ) - ( \"111\" & reg(N_BIT-1 downto 3) )) + one; else -- reg = 1.875 * reg - 1 reg <= (( reg(N_BIT-2 downto 0)&\\'0\\' ) - ( \"000\" & reg(N_BIT-1 downto 3) )) + minusone; end if; end if; else -- init reg <= X0; end if; end process; output <= reg(N_BIT-1); end Behavioral;'\n",
        "inputs = tokenizer(prompt, return_tensors='pt').input_ids\n",
        "output = model.generate(inputs, max_length = 1000, do_sample=True, top_k = 0, top_p = 0.95, temperature = 0.9)\n",
        "tokenizer.batch_decode(output, skip_special_tokens=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "AyumjC72oS5J",
        "outputId": "c8d625a1-2465-44e3-849f-18ca61cf6e28"
      },
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['summarize this library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; use work.randgen_package.all; entity chaoticMap is Port ( clk : in std_logic; reset : in std_logic; output : out std_logic); end chaoticMap; architecture Behavioral of chaoticMap is -- Supposing 2 integer bits and two\\'s complement, the constants -- correspond to zero, one and minus one values constant zero : signed(N_BIT-1 downto 0) := (others => \\'0\\'); constant one : signed(N_BIT-1 downto 0) := (N_BIT-2 => \\'1\\', others => \\'0\\'); constant minusone : signed(N_BIT-1 downto 0) := (N_BIT-1 => \\'1\\', N_BIT-2 => \\'1\\', others => \\'0\\'); -- Stores the current state signal reg : signed(N_BIT-1 downto 0); begin -- update map proc_map: process(clk,reset) begin if reset = \\'0\\' then if rising_edge(clk) then -- 1.875 * reg = (2*reg) - (reg/8) = (reg<<1) - (reg>>3) if (reg < zero) then -- reg = 1.875 * reg + 1 reg <= (( reg(N_BIT-2 downto 0) & \"0\" ) - ( \"111\" & reg(N_BIT-1 downto 3) )) + one; else -- reg = 1.875 * reg - 1 reg <= (( reg(N_BIT-2 downto 0)&\\'0\\' ) - ( \"000\" & reg(N_BIT-1 downto 3) )) + minusone; end if; end if; else -- init reg <= X0; end if; end process; output <= reg(N_BIT-1); end Behavioral;\\n\\nArchitecture Behavioral of chaoticMap is\\n\\nbegin -- update proc_map proc_map: process is\\n begin\\n if proc_map = \\'1\\' then\\n output <= \\'0\\';\\n\\treg <= (reg<<1);\\nelse\\n\\treg <= 0;\\nend if;\\nend Behavioral;\\n\\nThe given HDL code is an HDL (Hardware Description Language) code for a generic map with a 2-bit input and 2-bit output. \\n\\nThe entity \"Behavioral\" defines the interface \"genericMap\" and the ports \"clk,reset\" and \"output\" are of type std_logic. The architecture \"Behavioral\" implements the functionality of the generic map.\\n\\nThe architecture \"Behavioral\" instantiates the generic map \"genmap\" with a single input port \"clk\" and a select port \"output\" as an additional output port. The output is of type std_logic and has the same value as the corresponding input port \"clk\". The gen map component in the architecture \"Behavioral\" includes an input port \"reg\", which represents the current state of the map. When the clock signal \"reset\" is high, the output \"output\" is set to the state specified by the \"reg\" type TTX and the input port \"clk\" is connected to the input port \"output\". The gen map component in the architecture \"Behavioral\" uses the \"reg\" type to store the current state of the map.\\n\\nThe actual implementation of the generic map circuit is not specified. It is assumed that the generic map circuit has the appropriate inputs and outputs.\\n\\nOverall, this HDL code represents a generic map for a 2-bit input map based on the input signals and an output port. The gen map component can be instantiated with either a 2-bit or 4-bit input and output ports. The output ports can be any of the multiplexers specified in the generic map component.\\n\\nIn summary, this HDL code describes an entity that maps a 2-bit input and a 4-bit output using the generic map. It enables the use of a generic map component for generating different values based on the input signals and provides an output signal, that could be used in a system simulation environment to test the functionality of the 2-bit input and output ports in a system simulation.\\n\\nOverall, this HDL code provides a generic map for a 2-bit input map based on the input signals and an output port for instantiating it. It provides the inputs and outputs of the 2-bit input and a generic map component for instantiating the generated 4-bit input and output ports using the gen map component. This enables the useiction of different sizes and sizes of different input signals to control the different output port']"
            ]
          },
          "metadata": {},
          "execution_count": 29
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "prompt = 'summarize the hdl code \\n library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;\\nentity ROM is generic ( DATA_WIDTH : positive := 8; -- Width of data bus ADDR_WIDTH : positive := 10; -- Width of address bus FILE_NAME : string := \"data.txt\" -- External initialization file name ); port ( address : in std_logic_vector(ADDR_WIDTH - 1 downto 0); data_out : out std_logic_vector(DATA_WIDTH - 1 downto 0) ); end ROM;\\narchitecture Behavioral of ROM is type memory_array is array (0 to 2**ADDR_WIDTH - 1) of std_logic_vector(DATA_WIDTH - 1 downto 0); signal memory : memory_array; \\n procedure initialize_memory(file_name : string) is file data_file : text; variable line_buf : line; variable data_value : std_logic_vector(DATA_WIDTH - 1 downto 0); begin file_open(data_file, file_name, read_mode); for i in 0 to memory high loop readline(data_file, line_buf); read(line_buf, data_value); memory(i) <= data_value; end loop; file_close(data_file); end initialize_memory; \\n begin initialize_memory(FILE_NAME); \\n process(address) begin data_out <= memory(to_integer(unsigned(address))); end process; end Behavioral;'\n",
        "inputs = tokenizer(prompt, return_tensors='pt').input_ids\n",
        "output = model.generate(inputs, max_length = 1000, do_sample=True, top_k = 0, top_p = 0.95, temperature = 0.9)\n",
        "tokenizer.batch_decode(output, skip_special_tokens=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1qygiBRroS3g",
        "outputId": "06c46465-37c3-4e17-e8b8-cdac9ea3d367"
      },
      "execution_count": 31,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['summarize the hdl code \\n library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;\\nentity ROM is generic ( DATA_WIDTH : positive := 8; -- Width of data bus ADDR_WIDTH : positive := 10; -- Width of address bus FILE_NAME : string := \"data.txt\" -- External initialization file name ); port ( address : in std_logic_vector(ADDR_WIDTH - 1 downto 0); data_out : out std_logic_vector(DATA_WIDTH - 1 downto 0) ); end ROM;\\narchitecture Behavioral of ROM is type memory_array is array (0 to 2**ADDR_WIDTH - 1) of std_logic_vector(DATA_WIDTH - 1 downto 0); signal memory : memory_array; \\n procedure initialize_memory(file_name : string) is file data_file : text; variable line_buf : line; variable data_value : std_logic_vector(DATA_WIDTH - 1 downto 0); begin file_open(data_file, file_name, read_mode); for i in 0 to memory high loop readline(data_file, line_buf); read(line_buf, data_value); memory(i) <= data_value; end loop; file_close(data_file); end initialize_memory; \\n begin initialize_memory(FILE_NAME); \\n process(address) begin data_out <= memory(to_integer(unsigned(address))); end process; end Behavioral; \\n\\nend Behavioral;\\n\\nThis is an HDL code for a ROM (Hardware Description Language) code for a 32-bit ROM. \\n\\nThe ROM defines the data type (data_array) and the address types (address, address_WIDTH, data_out, write_mode). It also provides a control signal (memory) and an asynchronous data operation.\\n\\nThe process assigns the data to the main process (init_memory). This process waits for input signals and then decrements the data based on the memory value (address). When the data is full, it output the value of the input data (data_line_buf).\\n\\nOverall, this ROM code implements a 32-bit ROM by adding 16 and 16-bit assignments to address, read line_buf, and read(line_buf) operations. It also has a buffer memory with one line.\\n\\nThis ROM code instantiates a memory (open) memory and stores the input data (data_file) in it. The result of the operation is read from the input memory (address) and the write (write) operation is ready.\\n\\nIf the data_file is empty, it updates the memory (data_file) to read and writes the corresponding value from the stored value to the main process (init_memory).\\n\\nIn summary, this ROM code implements a 32-bit ROM by using a 32-bit memory assignment to address and reading from the input memory (address) and the write operation (write_mode) to the main process (init_memory). It also assigns the data to the buffer memory (address) and the asynchronous data operation ready.\\n\\nIn summary, this ROM code implements a 32-bit ROM based on the input memory, assigning the data to the memory used for the ROM, and then storing it in the buffer memory as the main process. This enables the ROM to write and read from the memory using the same input.\\n\\nOverall, this code implements a 32-bit ROM by implementing the 32-bit data output to address and reading from the buffer memory. It also assigns the data to the buffer memory for the corresponding write operation.\\n\\nThe ROM code does not contain any logic implementation or testbench to verify the functionality of this ROM. The ROM only has a generic assignment statement that represents the address to be written and read. It does not contain any architecture or testbench functionality peppers with assertions or checks to verify the functionality of this ROM.\\n\\nThis code provides a starting point for the implementation of a 32-bit ROM for generating the 32-bit data output based on the available memory assignments. If the data_file is empty or if the memory (open) memory is empty, the memory values are written and the data output is also read from the main process (init_memory).\\n\\nNote that this ROM code is only a starting point, and you should not add any additional libraries or code to the code.\\nlibrary IEEE;\\nuse IEEE.STD_LOGIC_1164.ALL;\\nuse']"
            ]
          },
          "metadata": {},
          "execution_count": 31
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "model.push_to_hub('gpt2_hdl')\n",
        "tokenizer.push_to_hub('gpt2_hdl')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 84,
          "referenced_widgets": [
            "f352767983804a2db9861b5fe5d7e62d",
            "61d00504878348b38c96d47aa455041e",
            "af2bddf7a7d34900bf9015883ca25a0a",
            "0b0d40b580c74280a285bc8172bd97aa",
            "0c00d73b13544deba888d073e0c4d253",
            "f6cc1a0c45b3434b9ec8ada8bd9a12a8",
            "8347d0dbb7824e67b24885bc828ad6d5",
            "3430d7e427de495b8622deb9fdec3cfa",
            "b574faa5d5074f39b524186e9a54f2bf",
            "3ed231ed51104195b8fff16e1fec1105",
            "7619a3c330504c2c9bad50e69842e165"
          ]
        },
        "id": "IfPhOk0zkzdb",
        "outputId": "7b25602b-5342-41f9-f447-7731aa13ac39"
      },
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "pytorch_model.bin:   0%|          | 0.00/498M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "f352767983804a2db9861b5fe5d7e62d"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "CommitInfo(commit_url='https://huggingface.co/myn11/gpt2_hdl/commit/893beafc24722ed7e2c732b1791adc13c2bddf2a', commit_message='Upload tokenizer', commit_description='', oid='893beafc24722ed7e2c732b1791adc13c2bddf2a', pr_url=None, pr_revision=None, pr_num=None)"
            ]
          },
          "metadata": {},
          "execution_count": 35
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "###Gradio Webapp"
      ],
      "metadata": {
        "id": "RaPZEj-I4ast"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "import torch\n",
        "from google.colab import drive\n",
        "drive.mount('/content/drive')\n",
        "!pip install transformers"
      ],
      "metadata": {
        "id": "XvaKYG42MYOA"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install -q gradio\n",
        "import gradio as gr\n",
        "from transformers import AutoModelForCausalLM, TrainingArguments, Trainer, pipeline, AutoTokenizer\n",
        "model = AutoModelForCausalLM.from_pretrained('myn11/gpt2_hdl').to('cuda')\n",
        "tokenizer = AutoTokenizer.from_pretrained('myn11/gpt2_hdl')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 177,
          "referenced_widgets": [
            "c402c5d305ff4be0bece99e543f6463d",
            "1a6b7810310941d8bd58ffaa40a80873",
            "dc338f57ab5749f4beca661b7d8527b0",
            "26c3d6e972404303a188f1b2bf934c68",
            "47fa507495624122b86b1171da5a0301",
            "9a4b820f09f946a4a50fa1154a5c1a64",
            "660cbc3708934e23bc4ca7f9c26b4de7",
            "6939c8eae28c4aa58e7a686bab0302ae",
            "4c1aec06373b4023a2b4424f52f22482",
            "c00d0db59cf646a394b645e839a52f05",
            "9ef2af605a0f4bbcb02c8f0811ac5799",
            "817d7e5b718942d6a8aa9ee588f1d079",
            "94952087f8604de7aa30dbbc5bfae2f1",
            "98ed5acef72544deab9088108382c218",
            "04b6d69b4c5c4cf887bdbe5b1bfa5839",
            "d5bfe70716e045639ba7339a62d014ca",
            "a0dfeeee628140cc896d1ee98280b2a2",
            "3add9c585192461e83246074b4beed9d",
            "7009610d4c3c4f1d8721cf4e15b816f2",
            "f9197f4ce2914775b1773ac3d386d554",
            "75bdc817125b4c239cee89aae0bb714c",
            "65ac03bc0ee048d0aa9a8f982801c030",
            "c66e6f2f86e04155822f605730269e59",
            "ad28ef7761cf4845b2ae743babf297c0",
            "93e61b266b9d4e458d267965902eb875",
            "80312ddb3706465e93e3d6ffe4ae9457",
            "a1bdb86d5d9f4616b3ec1803d2e3b72f",
            "03b8e49990014561ac25e45b29640a6b",
            "86010070cae64986be59cbdd34df8e18",
            "637f7951f0d0425fa319684830872d47",
            "ef5261d51a85449b996560daae9db342",
            "641ca037bd2c47a6a35c8d1709a85220",
            "448e7ef1ca1344d8a8e41667889b4cc4",
            "7c1e6c88334144bfbedf751e1ee1f97c",
            "93e0e6f2c4a54dd4801cf91471975a8f",
            "72a74e1da6a243e697ac821381af435f",
            "b68404c256ce460bb498b81274236d40",
            "a8eddec8183b4c62b1c40ddc6887c389",
            "f9f6457dd5874d9486ce753e2f07d0d6",
            "798a79a5064d418b9abbf9099f781267",
            "e2a3b18384224e37ac43ae11bfbd42ea",
            "931d20945c60453b9b05a0e2dc47d6d0",
            "eca5655ec674481bab9d42d5e78f86bd",
            "d905020a4a204eb2b1a55d39538c03cc",
            "e12280f6488e4ac78e54689d8a65a563",
            "9f6c9c750aef41b188eaf943815c8094",
            "a8cbf992a71d4bea96ec98dfe081aefd",
            "a5867db7e0254c0184e68ba8972288a2",
            "2f5403015c76411398ae6da76dc26ec2",
            "26563120fdde4000bd6250013c6ca18f",
            "6ac49959a7354e93b9827c915fd92b49",
            "92f420f69791459fa4d2056c0b7d19e9",
            "e0937eb188ca4805b4488679ad7c6698",
            "2990f57c5fd64f12bb40dda67d778e0f",
            "d1e95edf1c0646b380d895941515a133"
          ]
        },
        "id": "4EpsTsNU4W2J",
        "outputId": "21d8bb60-18d5-4186-d1a9-f26f8f2a8182"
      },
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)okenizer_config.json:   0%|          | 0.00/234 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "c402c5d305ff4be0bece99e543f6463d"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)olve/main/vocab.json:   0%|          | 0.00/798k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "817d7e5b718942d6a8aa9ee588f1d079"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)olve/main/merges.txt:   0%|          | 0.00/456k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "c66e6f2f86e04155822f605730269e59"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)/main/tokenizer.json:   0%|          | 0.00/2.11M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "7c1e6c88334144bfbedf751e1ee1f97c"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)cial_tokens_map.json:   0%|          | 0.00/99.0 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "e12280f6488e4ac78e54689d8a65a563"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "examples = [\n",
        "  ['summarise the code library IEEE;use IEEE.std_logic_1164.all;entity Top is port (dips_i :  in std_logic_vector(3 downto 0);pbs_i  :  in std_logic;leds_o : out std_logic_vector(3 downto 0));end entity Top;architecture RTL of Top is begin leds_o  <= dips_i when pbs_i=\"0\" else (others => \"1\"); end architecture RTL;'],\n",
        "  ['Explain the code library ieee;use ieee.std_logic_1164.all;entity test is port(clk : in std_logic;d : in std_logic ;q :out std_logic );end test;architecture rtl of test is begin process (clk) begin if rising_edge(clk) then q <= d; end if; end; end rtl;'],\n",
        "  ['Write a VHDL code for a read-only memory (ROM) module that takes an external data initialization file, and is parameterized by the data width, address width, and file name. The module should have an address input and a data output. It should read data from the file and provide the corresponding data output based on the given address.']\n",
        "]\n",
        "\n",
        "title = \"GPT2 fine tuned for HDL\"\n",
        "\n",
        "def process_input(text):\n",
        " input = tokenizer(text, truncation=True, return_tensors='pt').input_ids.to('cuda')\n",
        " output = model.generate(input, max_length=1000, do_sample=True, top_k=50, top_p=0.92)\n",
        " return tokenizer.batch_decode(output, skip_special_tokens=True)\n",
        "\n",
        "model_gui = gr.Interface(\n",
        "  process_input,\n",
        "  gr.Textbox(lines=3,label=\"Input\"),\n",
        "  gr.Textbox(lines=3, label=\"GPT2_HDL\"),\n",
        "  title=title,\n",
        "  examples=examples\n",
        ")\n",
        "model_gui.launch(share=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 611
        },
        "id": "ykCm69O74W0b",
        "outputId": "648d0775-554d-42e4-a725-0a3c1ab8b011"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Colab notebook detected. To show errors in colab notebook, set debug=True in launch()\n",
            "Running on public URL: https://914623a42bfd061ca1.gradio.live\n",
            "\n",
            "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "<div><iframe src=\"https://914623a42bfd061ca1.gradio.live\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": []
          },
          "metadata": {},
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "FSLZH9uVOTNR"
      },
      "execution_count": 13,
      "outputs": []
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [
        "BsgIbw6URsyF"
      ],
      "provenance": [],
      "gpuType": "T4"
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "27daebf6453145e1834b112d0bca212e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "VBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "VBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "VBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_ba1acb220dd24b17b39634a8bdd5ea30",
              "IPY_MODEL_0f95ab5f400e4e31bd81a8998909a54e",
              "IPY_MODEL_d413d862c26e4298835ecf6209f6974e",
              "IPY_MODEL_de1092c6e6c64dcd9012835c50067e68"
            ],
            "layout": "IPY_MODEL_7b4c4f2d8e3641d39d404180a3ea3490"
          }
        },
        "78197980460c4ee8a225fd81c439dd65": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_269f8bfc393c445e9b03ecb93f4558f4",
            "placeholder": "​",
            "style": "IPY_MODEL_e1d9f9108f5145059ae236dbf0e70e6c",
            "value": "<center> <img\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.svg\nalt='Hugging Face'> <br> Copy a token from <a\nhref=\"https://huggingface.co/settings/tokens\" target=\"_blank\">your Hugging Face\ntokens page</a> and paste it below. <br> Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file. </center>"
          }
        },
        "1e9905287725435aa1d70974a32dea2b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "PasswordModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "PasswordModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "PasswordView",
            "continuous_update": true,
            "description": "Token:",
            "description_tooltip": null,
            "disabled": false,
            "layout": "IPY_MODEL_3122136ed6ae47f3ac4c4b6f92777525",
            "placeholder": "​",
            "style": "IPY_MODEL_f685671c6f7f4b61b74b95cd66d68a50",
            "value": ""
          }
        },
        "7fc3dae9046742efb28f95bfcdeffab5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "CheckboxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "CheckboxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "CheckboxView",
            "description": "Add token as git credential?",
            "description_tooltip": null,
            "disabled": false,
            "indent": true,
            "layout": "IPY_MODEL_004d5d1c230146d794958fdc553020c6",
            "style": "IPY_MODEL_a917413fb32646ef85e24d39bbb5eb7a",
            "value": true
          }
        },
        "a06e40fff0db4907becbe4411cc91e4f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ButtonModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ButtonModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ButtonView",
            "button_style": "",
            "description": "Login",
            "disabled": false,
            "icon": "",
            "layout": "IPY_MODEL_d5fbf94fdc7c464e9c6c73787eeaf2a2",
            "style": "IPY_MODEL_37af0004069b45d38eff77d88c3609ff",
            "tooltip": ""
          }
        },
        "039eebb112994431b688dd092a96d983": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_fe058255a8f84bddb7aeee974853526f",
            "placeholder": "​",
            "style": "IPY_MODEL_73fd49ece8f2438a89dd05cb321cbd00",
            "value": "\n<b>Pro Tip:</b> If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks. </center>"
          }
        },
        "7b4c4f2d8e3641d39d404180a3ea3490": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": "center",
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": "flex",
            "flex": null,
            "flex_flow": "column",
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": "50%"
          }
        },
        "269f8bfc393c445e9b03ecb93f4558f4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e1d9f9108f5145059ae236dbf0e70e6c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3122136ed6ae47f3ac4c4b6f92777525": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f685671c6f7f4b61b74b95cd66d68a50": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "004d5d1c230146d794958fdc553020c6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a917413fb32646ef85e24d39bbb5eb7a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d5fbf94fdc7c464e9c6c73787eeaf2a2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "37af0004069b45d38eff77d88c3609ff": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ButtonStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ButtonStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "button_color": null,
            "font_weight": ""
          }
        },
        "fe058255a8f84bddb7aeee974853526f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "73fd49ece8f2438a89dd05cb321cbd00": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "407b9eae27f54eefa75c3078600bd2c8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "LabelModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "LabelModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "LabelView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d2dd1b7a02ba4b12bb2ceecf209e3fc9",
            "placeholder": "​",
            "style": "IPY_MODEL_dfd0da633ee749f8bb914a7700ae5180",
            "value": "Connecting..."
          }
        },
        "d2dd1b7a02ba4b12bb2ceecf209e3fc9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dfd0da633ee749f8bb914a7700ae5180": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "ba1acb220dd24b17b39634a8bdd5ea30": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "LabelModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "LabelModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "LabelView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_05b9b1de4c034417bf273fb8a6dfc23b",
            "placeholder": "​",
            "style": "IPY_MODEL_6534d3d7803d4cea85c5b9cc2405889c",
            "value": "Token is valid (permission: write)."
          }
        },
        "0f95ab5f400e4e31bd81a8998909a54e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "LabelModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "LabelModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "LabelView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_672ec659f512419f81a0b38782665d6a",
            "placeholder": "​",
            "style": "IPY_MODEL_72975b47c49e45c89ae41c586202f3e4",
            "value": "Your token has been saved in your configured git credential helpers (store)."
          }
        },
        "d413d862c26e4298835ecf6209f6974e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "LabelModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "LabelModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "LabelView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_40837e169c894517babf5a405ff5a873",
            "placeholder": "​",
            "style": "IPY_MODEL_9572a75d6f6a40aa8e6fdfd9e345b8f2",
            "value": "Your token has been saved to /root/.cache/huggingface/token"
          }
        },
        "de1092c6e6c64dcd9012835c50067e68": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "LabelModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "LabelModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "LabelView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d322b9db0e5549e4ae7564b9f17cfbf3",
            "placeholder": "​",
            "style": "IPY_MODEL_b2094960a71a4e0184c0bb4f9d596f97",
            "value": "Login successful"
          }
        },
        "05b9b1de4c034417bf273fb8a6dfc23b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6534d3d7803d4cea85c5b9cc2405889c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "672ec659f512419f81a0b38782665d6a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "72975b47c49e45c89ae41c586202f3e4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "40837e169c894517babf5a405ff5a873": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9572a75d6f6a40aa8e6fdfd9e345b8f2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d322b9db0e5549e4ae7564b9f17cfbf3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b2094960a71a4e0184c0bb4f9d596f97": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "a5b4132f35f141a9b87f457b5bfddaad": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_88afceca4b0e4dbeb5d4112f42dfa95a",
              "IPY_MODEL_f1e215cd5b0d4ca5a290793b5cc02444",
              "IPY_MODEL_dd858ee47ca14dfab5703a8a6199468a"
            ],
            "layout": "IPY_MODEL_535a6b9bd51a43f8be462621a118f218"
          }
        },
        "88afceca4b0e4dbeb5d4112f42dfa95a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7a1becd02da24a0dbdc64e0819758c4d",
            "placeholder": "​",
            "style": "IPY_MODEL_13c873260f394700a7d6a38dc38a7e5c",
            "value": "Map: 100%"
          }
        },
        "f1e215cd5b0d4ca5a290793b5cc02444": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_efded291766644fdb8ad40d7df1d0357",
            "max": 6131,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_501713a17f30403b90d6d3c2b2af9111",
            "value": 6131
          }
        },
        "dd858ee47ca14dfab5703a8a6199468a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c9f01edaabe4492a998d2907a033a0bd",
            "placeholder": "​",
            "style": "IPY_MODEL_b9576292d3e44178835607142f63a2d9",
            "value": " 6131/6131 [00:04&lt;00:00, 1378.99 examples/s]"
          }
        },
        "535a6b9bd51a43f8be462621a118f218": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7a1becd02da24a0dbdc64e0819758c4d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "13c873260f394700a7d6a38dc38a7e5c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "efded291766644fdb8ad40d7df1d0357": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "501713a17f30403b90d6d3c2b2af9111": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "c9f01edaabe4492a998d2907a033a0bd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b9576292d3e44178835607142f63a2d9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b1c37d50bf07498ebf08e75bcbd2d9cb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_40602555c61445a9a050c4e80ed79e10",
              "IPY_MODEL_38433c26d4f4427ba0b9c87f700a72ce",
              "IPY_MODEL_c7a0c586f74c472cb1669511bd65d3e5"
            ],
            "layout": "IPY_MODEL_6326c2a71e194bea90eb308b51ef2cd6"
          }
        },
        "40602555c61445a9a050c4e80ed79e10": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_737c53bc9d294724a977702d5a2c4681",
            "placeholder": "​",
            "style": "IPY_MODEL_66c08d8f8cd84230a33df6a800baa01a",
            "value": "Map: 100%"
          }
        },
        "38433c26d4f4427ba0b9c87f700a72ce": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_19e84384f7a94cb0b8eb56e370ebf2ea",
            "max": 1533,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_ac6eb7244ce34263aaa93342a54757cf",
            "value": 1533
          }
        },
        "c7a0c586f74c472cb1669511bd65d3e5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6dabe1703a7f4d809e695843da2f66fe",
            "placeholder": "​",
            "style": "IPY_MODEL_3e3a114a90a64cf2b511198da4c67eb5",
            "value": " 1533/1533 [00:01&lt;00:00, 1430.77 examples/s]"
          }
        },
        "6326c2a71e194bea90eb308b51ef2cd6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "737c53bc9d294724a977702d5a2c4681": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "66c08d8f8cd84230a33df6a800baa01a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "19e84384f7a94cb0b8eb56e370ebf2ea": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ac6eb7244ce34263aaa93342a54757cf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "6dabe1703a7f4d809e695843da2f66fe": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3e3a114a90a64cf2b511198da4c67eb5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f628f51c9a8c478d994cb497c12a3c09": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_4d39b20e621741bb993272cac5e9455c",
              "IPY_MODEL_cc345c2b927e4ad091c61b6b8f5f14a6",
              "IPY_MODEL_3c244052eb594cfea0091cc960f77ade"
            ],
            "layout": "IPY_MODEL_deb10b36597d4688a247f209653e2195"
          }
        },
        "4d39b20e621741bb993272cac5e9455c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_083f011ec85740ca8efc3462404e09e2",
            "placeholder": "​",
            "style": "IPY_MODEL_06a117b243be4b1c9afd0fbb7db47db0",
            "value": "Map: 100%"
          }
        },
        "cc345c2b927e4ad091c61b6b8f5f14a6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_112398a1a364453d86890487dacdc7a6",
            "max": 6131,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_67e1463255e5432a88212f932733323a",
            "value": 6131
          }
        },
        "3c244052eb594cfea0091cc960f77ade": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_691a48724cd040b886cfb6b8d9aea242",
            "placeholder": "​",
            "style": "IPY_MODEL_2fe06bb0be1049fdaa788ef16ddedc66",
            "value": " 6131/6131 [00:06&lt;00:00, 1045.20 examples/s]"
          }
        },
        "deb10b36597d4688a247f209653e2195": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "083f011ec85740ca8efc3462404e09e2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "06a117b243be4b1c9afd0fbb7db47db0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "112398a1a364453d86890487dacdc7a6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "67e1463255e5432a88212f932733323a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "691a48724cd040b886cfb6b8d9aea242": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2fe06bb0be1049fdaa788ef16ddedc66": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "fb6d02cb39304963837901d37c982148": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_45e2833245024765890bec5637d84c9c",
              "IPY_MODEL_2824618c895e4441965b5783fa9b2572",
              "IPY_MODEL_497d5e82ea25494190daf45bf12acdb0"
            ],
            "layout": "IPY_MODEL_6250a1a8691c41fca61584794b96e5f4"
          }
        },
        "45e2833245024765890bec5637d84c9c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_5b63945051f14946acf05eaf7c621e2a",
            "placeholder": "​",
            "style": "IPY_MODEL_51b039c8a9d54658b9db69aae153703f",
            "value": "Map: 100%"
          }
        },
        "2824618c895e4441965b5783fa9b2572": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3cf3057d174044eab5893406a355f4ec",
            "max": 1533,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_89a4df4f9b054142b89b2a2fb01024e3",
            "value": 1533
          }
        },
        "497d5e82ea25494190daf45bf12acdb0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_01285ef17bca493ead27bca30d9e3f1c",
            "placeholder": "​",
            "style": "IPY_MODEL_44f1e554a1904c9d9ac1142e7f20fc04",
            "value": " 1533/1533 [00:01&lt;00:00, 1021.12 examples/s]"
          }
        },
        "6250a1a8691c41fca61584794b96e5f4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5b63945051f14946acf05eaf7c621e2a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "51b039c8a9d54658b9db69aae153703f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3cf3057d174044eab5893406a355f4ec": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "89a4df4f9b054142b89b2a2fb01024e3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "01285ef17bca493ead27bca30d9e3f1c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "44f1e554a1904c9d9ac1142e7f20fc04": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f352767983804a2db9861b5fe5d7e62d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_61d00504878348b38c96d47aa455041e",
              "IPY_MODEL_af2bddf7a7d34900bf9015883ca25a0a",
              "IPY_MODEL_0b0d40b580c74280a285bc8172bd97aa"
            ],
            "layout": "IPY_MODEL_0c00d73b13544deba888d073e0c4d253"
          }
        },
        "61d00504878348b38c96d47aa455041e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f6cc1a0c45b3434b9ec8ada8bd9a12a8",
            "placeholder": "​",
            "style": "IPY_MODEL_8347d0dbb7824e67b24885bc828ad6d5",
            "value": "pytorch_model.bin: 100%"
          }
        },
        "af2bddf7a7d34900bf9015883ca25a0a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3430d7e427de495b8622deb9fdec3cfa",
            "max": 497805149,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_b574faa5d5074f39b524186e9a54f2bf",
            "value": 497805149
          }
        },
        "0b0d40b580c74280a285bc8172bd97aa": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3ed231ed51104195b8fff16e1fec1105",
            "placeholder": "​",
            "style": "IPY_MODEL_7619a3c330504c2c9bad50e69842e165",
            "value": " 498M/498M [00:15&lt;00:00, 28.0MB/s]"
          }
        },
        "0c00d73b13544deba888d073e0c4d253": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f6cc1a0c45b3434b9ec8ada8bd9a12a8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8347d0dbb7824e67b24885bc828ad6d5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3430d7e427de495b8622deb9fdec3cfa": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b574faa5d5074f39b524186e9a54f2bf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "3ed231ed51104195b8fff16e1fec1105": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7619a3c330504c2c9bad50e69842e165": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c402c5d305ff4be0bece99e543f6463d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_1a6b7810310941d8bd58ffaa40a80873",
              "IPY_MODEL_dc338f57ab5749f4beca661b7d8527b0",
              "IPY_MODEL_26c3d6e972404303a188f1b2bf934c68"
            ],
            "layout": "IPY_MODEL_47fa507495624122b86b1171da5a0301"
          }
        },
        "1a6b7810310941d8bd58ffaa40a80873": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9a4b820f09f946a4a50fa1154a5c1a64",
            "placeholder": "​",
            "style": "IPY_MODEL_660cbc3708934e23bc4ca7f9c26b4de7",
            "value": "Downloading (…)okenizer_config.json: 100%"
          }
        },
        "dc338f57ab5749f4beca661b7d8527b0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_6939c8eae28c4aa58e7a686bab0302ae",
            "max": 234,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_4c1aec06373b4023a2b4424f52f22482",
            "value": 234
          }
        },
        "26c3d6e972404303a188f1b2bf934c68": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c00d0db59cf646a394b645e839a52f05",
            "placeholder": "​",
            "style": "IPY_MODEL_9ef2af605a0f4bbcb02c8f0811ac5799",
            "value": " 234/234 [00:00&lt;00:00, 4.51kB/s]"
          }
        },
        "47fa507495624122b86b1171da5a0301": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9a4b820f09f946a4a50fa1154a5c1a64": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "660cbc3708934e23bc4ca7f9c26b4de7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "6939c8eae28c4aa58e7a686bab0302ae": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "4c1aec06373b4023a2b4424f52f22482": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "c00d0db59cf646a394b645e839a52f05": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9ef2af605a0f4bbcb02c8f0811ac5799": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "817d7e5b718942d6a8aa9ee588f1d079": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_94952087f8604de7aa30dbbc5bfae2f1",
              "IPY_MODEL_98ed5acef72544deab9088108382c218",
              "IPY_MODEL_04b6d69b4c5c4cf887bdbe5b1bfa5839"
            ],
            "layout": "IPY_MODEL_d5bfe70716e045639ba7339a62d014ca"
          }
        },
        "94952087f8604de7aa30dbbc5bfae2f1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a0dfeeee628140cc896d1ee98280b2a2",
            "placeholder": "​",
            "style": "IPY_MODEL_3add9c585192461e83246074b4beed9d",
            "value": "Downloading (…)olve/main/vocab.json: 100%"
          }
        },
        "98ed5acef72544deab9088108382c218": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7009610d4c3c4f1d8721cf4e15b816f2",
            "max": 798156,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_f9197f4ce2914775b1773ac3d386d554",
            "value": 798156
          }
        },
        "04b6d69b4c5c4cf887bdbe5b1bfa5839": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_75bdc817125b4c239cee89aae0bb714c",
            "placeholder": "​",
            "style": "IPY_MODEL_65ac03bc0ee048d0aa9a8f982801c030",
            "value": " 798k/798k [00:00&lt;00:00, 2.45MB/s]"
          }
        },
        "d5bfe70716e045639ba7339a62d014ca": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a0dfeeee628140cc896d1ee98280b2a2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3add9c585192461e83246074b4beed9d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "7009610d4c3c4f1d8721cf4e15b816f2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f9197f4ce2914775b1773ac3d386d554": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "75bdc817125b4c239cee89aae0bb714c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "65ac03bc0ee048d0aa9a8f982801c030": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c66e6f2f86e04155822f605730269e59": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_ad28ef7761cf4845b2ae743babf297c0",
              "IPY_MODEL_93e61b266b9d4e458d267965902eb875",
              "IPY_MODEL_80312ddb3706465e93e3d6ffe4ae9457"
            ],
            "layout": "IPY_MODEL_a1bdb86d5d9f4616b3ec1803d2e3b72f"
          }
        },
        "ad28ef7761cf4845b2ae743babf297c0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_03b8e49990014561ac25e45b29640a6b",
            "placeholder": "​",
            "style": "IPY_MODEL_86010070cae64986be59cbdd34df8e18",
            "value": "Downloading (…)olve/main/merges.txt: 100%"
          }
        },
        "93e61b266b9d4e458d267965902eb875": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_637f7951f0d0425fa319684830872d47",
            "max": 456318,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_ef5261d51a85449b996560daae9db342",
            "value": 456318
          }
        },
        "80312ddb3706465e93e3d6ffe4ae9457": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_641ca037bd2c47a6a35c8d1709a85220",
            "placeholder": "​",
            "style": "IPY_MODEL_448e7ef1ca1344d8a8e41667889b4cc4",
            "value": " 456k/456k [00:00&lt;00:00, 10.1MB/s]"
          }
        },
        "a1bdb86d5d9f4616b3ec1803d2e3b72f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "03b8e49990014561ac25e45b29640a6b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "86010070cae64986be59cbdd34df8e18": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "637f7951f0d0425fa319684830872d47": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ef5261d51a85449b996560daae9db342": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "641ca037bd2c47a6a35c8d1709a85220": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "448e7ef1ca1344d8a8e41667889b4cc4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "7c1e6c88334144bfbedf751e1ee1f97c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_93e0e6f2c4a54dd4801cf91471975a8f",
              "IPY_MODEL_72a74e1da6a243e697ac821381af435f",
              "IPY_MODEL_b68404c256ce460bb498b81274236d40"
            ],
            "layout": "IPY_MODEL_a8eddec8183b4c62b1c40ddc6887c389"
          }
        },
        "93e0e6f2c4a54dd4801cf91471975a8f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f9f6457dd5874d9486ce753e2f07d0d6",
            "placeholder": "​",
            "style": "IPY_MODEL_798a79a5064d418b9abbf9099f781267",
            "value": "Downloading (…)/main/tokenizer.json: 100%"
          }
        },
        "72a74e1da6a243e697ac821381af435f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e2a3b18384224e37ac43ae11bfbd42ea",
            "max": 2107653,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_931d20945c60453b9b05a0e2dc47d6d0",
            "value": 2107653
          }
        },
        "b68404c256ce460bb498b81274236d40": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_eca5655ec674481bab9d42d5e78f86bd",
            "placeholder": "​",
            "style": "IPY_MODEL_d905020a4a204eb2b1a55d39538c03cc",
            "value": " 2.11M/2.11M [00:00&lt;00:00, 5.18MB/s]"
          }
        },
        "a8eddec8183b4c62b1c40ddc6887c389": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f9f6457dd5874d9486ce753e2f07d0d6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "798a79a5064d418b9abbf9099f781267": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e2a3b18384224e37ac43ae11bfbd42ea": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "931d20945c60453b9b05a0e2dc47d6d0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "eca5655ec674481bab9d42d5e78f86bd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d905020a4a204eb2b1a55d39538c03cc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e12280f6488e4ac78e54689d8a65a563": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_9f6c9c750aef41b188eaf943815c8094",
              "IPY_MODEL_a8cbf992a71d4bea96ec98dfe081aefd",
              "IPY_MODEL_a5867db7e0254c0184e68ba8972288a2"
            ],
            "layout": "IPY_MODEL_2f5403015c76411398ae6da76dc26ec2"
          }
        },
        "9f6c9c750aef41b188eaf943815c8094": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_26563120fdde4000bd6250013c6ca18f",
            "placeholder": "​",
            "style": "IPY_MODEL_6ac49959a7354e93b9827c915fd92b49",
            "value": "Downloading (…)cial_tokens_map.json: 100%"
          }
        },
        "a8cbf992a71d4bea96ec98dfe081aefd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_92f420f69791459fa4d2056c0b7d19e9",
            "max": 99,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_e0937eb188ca4805b4488679ad7c6698",
            "value": 99
          }
        },
        "a5867db7e0254c0184e68ba8972288a2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2990f57c5fd64f12bb40dda67d778e0f",
            "placeholder": "​",
            "style": "IPY_MODEL_d1e95edf1c0646b380d895941515a133",
            "value": " 99.0/99.0 [00:00&lt;00:00, 2.03kB/s]"
          }
        },
        "2f5403015c76411398ae6da76dc26ec2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "26563120fdde4000bd6250013c6ca18f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6ac49959a7354e93b9827c915fd92b49": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "92f420f69791459fa4d2056c0b7d19e9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e0937eb188ca4805b4488679ad7c6698": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "2990f57c5fd64f12bb40dda67d778e0f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d1e95edf1c0646b380d895941515a133": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}