{
"metadata": {
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.0"
},
"orig_nbformat": 2,
"kernelspec": {
"name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7",
"display_name": "Python 3.7.0 64-bit ('3.7')"
},
"metadata": {
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
}
},
"nbformat": 4,
"nbformat_minor": 2,
"cells": [
{
"source": [
"# Nigerian Music scraped from Spotify - an analysis"
],
"cell_type": "markdown",
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" name album \\\n",
"0 Sparky Mandy & The Jungle \n",
"1 shuga rush EVERYTHING YOU HEARD IS TRUE \n",
"2 LITT! LITT! \n",
"3 Confident / Feeling Cool Enjoy Your Life \n",
"4 wanted you rare. \n",
"\n",
" artist artist_top_genre release_date length popularity \\\n",
"0 Cruel Santino alternative r&b 2019 144000 48 \n",
"1 Odunsi (The Engine) afropop 2020 89488 30 \n",
"2 AYLØ indie r&b 2018 207758 40 \n",
"3 Lady Donli nigerian pop 2019 175135 14 \n",
"4 Odunsi (The Engine) afropop 2018 152049 25 \n",
"\n",
" danceability acousticness energy instrumentalness liveness loudness \\\n",
"0 0.666 0.8510 0.420 0.534000 0.1100 -6.699 \n",
"1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n",
"2 0.836 0.2720 0.564 0.000537 0.1100 -7.127 \n",
"3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n",
"4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n",
"\n",
" speechiness tempo time_signature \n",
"0 0.0829 133.015 5 \n",
"1 0.3600 129.993 3 \n",
"2 0.0424 130.005 4 \n",
"3 0.1130 111.087 4 \n",
"4 0.0447 105.115 4 "
],
"text/html": "
\n\n
\n \n \n | \n name | \n album | \n artist | \n artist_top_genre | \n release_date | \n length | \n popularity | \n danceability | \n acousticness | \n energy | \n instrumentalness | \n liveness | \n loudness | \n speechiness | \n tempo | \n time_signature | \n
\n \n \n \n 0 | \n Sparky | \n Mandy & The Jungle | \n Cruel Santino | \n alternative r&b | \n 2019 | \n 144000 | \n 48 | \n 0.666 | \n 0.8510 | \n 0.420 | \n 0.534000 | \n 0.1100 | \n -6.699 | \n 0.0829 | \n 133.015 | \n 5 | \n
\n \n 1 | \n shuga rush | \n EVERYTHING YOU HEARD IS TRUE | \n Odunsi (The Engine) | \n afropop | \n 2020 | \n 89488 | \n 30 | \n 0.710 | \n 0.0822 | \n 0.683 | \n 0.000169 | \n 0.1010 | \n -5.640 | \n 0.3600 | \n 129.993 | \n 3 | \n
\n \n 2 | \n LITT! | \n LITT! | \n AYLØ | \n indie r&b | \n 2018 | \n 207758 | \n 40 | \n 0.836 | \n 0.2720 | \n 0.564 | \n 0.000537 | \n 0.1100 | \n -7.127 | \n 0.0424 | \n 130.005 | \n 4 | \n
\n \n 3 | \n Confident / Feeling Cool | \n Enjoy Your Life | \n Lady Donli | \n nigerian pop | \n 2019 | \n 175135 | \n 14 | \n 0.894 | \n 0.7980 | \n 0.611 | \n 0.000187 | \n 0.0964 | \n -4.961 | \n 0.1130 | \n 111.087 | \n 4 | \n
\n \n 4 | \n wanted you | \n rare. | \n Odunsi (The Engine) | \n afropop | \n 2018 | \n 152049 | \n 25 | \n 0.702 | \n 0.1160 | \n 0.833 | \n 0.910000 | \n 0.3480 | \n -6.044 | \n 0.0447 | \n 105.115 | \n 4 | \n
\n \n
\n
"
},
"metadata": {},
"execution_count": 33
}
],
"source": [
"\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"df = pd.read_csv(\"../../data/nigerian-songs.csv\")\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\nRangeIndex: 530 entries, 0 to 529\nData columns (total 16 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 name 530 non-null object \n 1 album 530 non-null object \n 2 artist 530 non-null object \n 3 artist_top_genre 530 non-null object \n 4 release_date 530 non-null int64 \n 5 length 530 non-null int64 \n 6 popularity 530 non-null int64 \n 7 danceability 530 non-null float64\n 8 acousticness 530 non-null float64\n 9 energy 530 non-null float64\n 10 instrumentalness 530 non-null float64\n 11 liveness 530 non-null float64\n 12 loudness 530 non-null float64\n 13 speechiness 530 non-null float64\n 14 tempo 530 non-null float64\n 15 time_signature 530 non-null int64 \ndtypes: float64(8), int64(4), object(4)\nmemory usage: 66.4+ KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"name 0\n",
"album 0\n",
"artist 0\n",
"artist_top_genre 0\n",
"release_date 0\n",
"length 0\n",
"popularity 0\n",
"danceability 0\n",
"acousticness 0\n",
"energy 0\n",
"instrumentalness 0\n",
"liveness 0\n",
"loudness 0\n",
"speechiness 0\n",
"tempo 0\n",
"time_signature 0\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 34
}
],
"source": [
"df.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" release_date length popularity danceability acousticness \\\n",
"count 530.000000 530.000000 530.000000 530.000000 530.000000 \n",
"mean 2015.390566 222298.169811 17.507547 0.741619 0.265412 \n",
"std 3.131688 39696.822259 18.992212 0.117522 0.208342 \n",
"min 1998.000000 89488.000000 0.000000 0.255000 0.000665 \n",
"25% 2014.000000 199305.000000 0.000000 0.681000 0.089525 \n",
"50% 2016.000000 218509.000000 13.000000 0.761000 0.220500 \n",
"75% 2017.000000 242098.500000 31.000000 0.829500 0.403000 \n",
"max 2020.000000 511738.000000 73.000000 0.966000 0.954000 \n",
"\n",
" energy instrumentalness liveness loudness speechiness \\\n",
"count 530.000000 530.000000 530.000000 530.000000 530.000000 \n",
"mean 0.760623 0.016305 0.147308 -4.953011 0.130748 \n",
"std 0.148533 0.090321 0.123588 2.464186 0.092939 \n",
"min 0.111000 0.000000 0.028300 -19.362000 0.027800 \n",
"25% 0.669000 0.000000 0.075650 -6.298750 0.059100 \n",
"50% 0.784500 0.000004 0.103500 -4.558500 0.097950 \n",
"75% 0.875750 0.000234 0.164000 -3.331000 0.177000 \n",
"max 0.995000 0.910000 0.811000 0.582000 0.514000 \n",
"\n",
" tempo time_signature \n",
"count 530.000000 530.000000 \n",
"mean 116.487864 3.986792 \n",
"std 23.518601 0.333701 \n",
"min 61.695000 3.000000 \n",
"25% 102.961250 4.000000 \n",
"50% 112.714500 4.000000 \n",
"75% 125.039250 4.000000 \n",
"max 206.007000 5.000000 "
],
"text/html": "\n\n
\n \n \n | \n release_date | \n length | \n popularity | \n danceability | \n acousticness | \n energy | \n instrumentalness | \n liveness | \n loudness | \n speechiness | \n tempo | \n time_signature | \n
\n \n \n \n count | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n 530.000000 | \n
\n \n mean | \n 2015.390566 | \n 222298.169811 | \n 17.507547 | \n 0.741619 | \n 0.265412 | \n 0.760623 | \n 0.016305 | \n 0.147308 | \n -4.953011 | \n 0.130748 | \n 116.487864 | \n 3.986792 | \n
\n \n std | \n 3.131688 | \n 39696.822259 | \n 18.992212 | \n 0.117522 | \n 0.208342 | \n 0.148533 | \n 0.090321 | \n 0.123588 | \n 2.464186 | \n 0.092939 | \n 23.518601 | \n 0.333701 | \n
\n \n min | \n 1998.000000 | \n 89488.000000 | \n 0.000000 | \n 0.255000 | \n 0.000665 | \n 0.111000 | \n 0.000000 | \n 0.028300 | \n -19.362000 | \n 0.027800 | \n 61.695000 | \n 3.000000 | \n
\n \n 25% | \n 2014.000000 | \n 199305.000000 | \n 0.000000 | \n 0.681000 | \n 0.089525 | \n 0.669000 | \n 0.000000 | \n 0.075650 | \n -6.298750 | \n 0.059100 | \n 102.961250 | \n 4.000000 | \n
\n \n 50% | \n 2016.000000 | \n 218509.000000 | \n 13.000000 | \n 0.761000 | \n 0.220500 | \n 0.784500 | \n 0.000004 | \n 0.103500 | \n -4.558500 | \n 0.097950 | \n 112.714500 | \n 4.000000 | \n
\n \n 75% | \n 2017.000000 | \n 242098.500000 | \n 31.000000 | \n 0.829500 | \n 0.403000 | \n 0.875750 | \n 0.000234 | \n 0.164000 | \n -3.331000 | \n 0.177000 | \n 125.039250 | \n 4.000000 | \n
\n \n max | \n 2020.000000 | \n 511738.000000 | \n 73.000000 | \n 0.966000 | \n 0.954000 | \n 0.995000 | \n 0.910000 | \n 0.811000 | \n 0.582000 | \n 0.514000 | \n 206.007000 | \n 5.000000 | \n
\n \n
\n
"
},
"metadata": {},
"execution_count": 35
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Top genres')"
]
},
"metadata": {},
"execution_count": 43
},
{
"output_type": "display_data",
"data": {
"text/plain": "",
"image/svg+xml": "\n\n\n\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAHwCAYAAAC7apkrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deViVdf7/8ddhU9kExI1S3EhxIUdcCykrwyzTxrVMK7VxxCVKzUJFTac0l6zUTG0xW0xjSmvKJv2OGVqiuBUuWWmmIKgomwrIOb8/zu/Qx3IpAg7C83FdcwGHs7wdTocn9/nc922x2Ww2AQAAAJAkuTh7AAAAAKA8IZABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyABwBbfeKlksl//fxo3OnhAAUNLcnD0AAJRnERGSn5/984QE6dQpKTJS8ve3XxYY6LzZAAClw8KJQgDgj7n1VunLL6Wvv5Y6dnT2NACA0sISCwAoAevXSzfdJHl6SnXrSk88IZ0/b//ehQv25RgtW0rvvCMFBdm3So8fL1mtl7/PZcukevUkHx9p1CgpJsZ+PwkJ9u+fOSMNHiz5+tq3aD/8sJSZefFjtm4tvfuu1KCB5OVlv05+vv06kybZr/P001LDhva509OvfL+S9MYbUmioVK2aVKeO9M9//vpvBYCKgEAGgL9o0yapWzdp61apfXvJ1VV64QWpX7+Lr3fokDR8uNSsmVRYKM2ZI7300qXv86uvpEcflVJSpPBw6YMPpNdfv/g6jzwirVhhj9+QEGn58t8/5o8/SiNG2K+Tn2+/zjvvXHydWbPs0R4WJtWqdeX73blTGjpUSkuTunSx/0Hw6qv2yAaAioJABoC/aMoUe/AuW2bfaW//fqlRI+njj+3LMRzOnpXee0/6v/+TPvnEftnLL1/6Pl980f5x3jz7fX77reRivGJ//7300Uf29dB79kiJiVLfvtJ//yvt3fvr9XJypFWr7Pcxdqz9sqSkix/r1lulzZulzz+/+v0eOiTZbNJ990nx8dL27fbQ7927+P//AUB5QyADwF/0zTf2eB040P61t7c9IB3fc3B1lbp3t39+yy32JQyHD/+65MH0/ff2j/fea/9Ys6bUufOv309Otn/ctOnXI2qsXm2/bPv2ix+za1f7582a2T/m5V38WJ06/fH7vf12+/KK11+XAgLsW5Y9POxbuQGgouAoFgDwF7lcYVODxfLr51arfUuzq6v9a5vN/v1L3f7ChV+vcykFBfaPwcH2dcamgIBfP69S5df7d3O79H36+v7x+61e3R7K8fHSp5/ad1rcsMG+JCMx8dKzAsC1hi3IAPAX/e1v9vh1rO3NyZE+/ND+ubl11mazh6UkbdkiZWfbl2K4XWJThWNr78cf2z+mptq36jo0b27/WKOG/T4/+khq107q0MH+0cEM9MtxBPsfud9PPrGvQfbwsC8XOXrUvn5527aLd+QDgGsZgQwAf5HjaBDDhtnX8zZrJv30k9Srlz0sHSwW+w5wXbrYd+qT7EemuJQRI+wfx461Xz8s7OKlGC1b2i/fscMete3a2edYsuTX4zYXx9XuNyDAvuRi8GD70o3wcPuOhGFh9q3LAFAREMgA8Bd16yZ99pk9hhMT7csjxo6VVq68+HqentLSpfad+FxcpKeesh8i7VK6dpUWLLCvPd6xw77V1rF+2cPD/vH99+3rntPT7fcZFWXfma5Klb/277nS/d50k/Tvf9uDeMsW6dgx6e9/t29pBoCKghOFAEApu3BBcne3H4c4J+eP3WbVKunIEfsW3FtusS/P6NjRHuCHD9vXCAMASgc76QFAOZSebj+RSNWq9mUbKSn2w661aEEcA0BpYwsyAJSy4mxBLiyUnnzSviU5NdW+PCMiQpo/X7rhhtKdFwAqOwIZAAAAMLCTHgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAAhjI9DnJSUlJZPhwAAABwReHh4b+7rMxPFHKpIQAAAICydrmNtyyxAAAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGBwc/YAf0T4+LecPQL+hKTZg509AgAAQLGxBRkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAIPb1a5QWFioSZMm6dChQ7JYLJo2bZqqVKmip556ShaLRSEhIZoyZYpcXFy0YMECbdy4UW5uboqNjVVYWFhZ/BsAAACAEnPVQP7f//4nSVq5cqW2bt2qF154QTabTTExMerQoYPi4uK0YcMGBQUFKTExUatXr1ZqaqpGjx6t+Pj4Uv8HAAAAACXpqoF8xx136NZbb5UkpaSkyNfXV1u2bFH79u0lSZGRkdq8ebMaNmyoiIgIWSwWBQUFqbCwUBkZGQoICCjVfwAAAABQkq4ayJLk5uamCRMm6IsvvtBLL72kzZs3y2KxSJK8vLyUnZ2tnJwc+fn5Fd3GcflvA3nfvn0lOD7KI37GAADgWvaHAlmSZs2apXHjxqlfv37Ky8srujw3N1e+vr7y9vZWbm7uRZf7+Pj87n5CQ0OLMea2YtwGzlK8nzEAAEDZSkpKuuTlVz2KxUcffaRXX31VklStWjVZLBa1bNlSW7dulSRt2rRJbdu2VZs2bZSQkCCr1aqUlBRZrVaWVwAAAOCac9UtyHfeeaeefvppDRw4UBcuXFBsbKwaN26syZMna968eWrUqJGioqLk6uqqtm3bqn///rJarYqLiyuL+QEAAIASZbHZbLayerCkpCSFh4f/6duFj3+rFKZBaUmaPdjZIwAAAFzV5dqUE4UAAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgMHtSt8sKChQbGysjh07pvz8fI0YMUJ169bV8OHD1aBBA0nS/fffr+7du2vBggXauHGj3NzcFBsbq7CwsLKYHwAAAChRVwzktWvXys/PT7Nnz9aZM2fUq1cvjRw5Uo888oiGDBlSdL3k5GQlJiZq9erVSk1N1ejRoxUfH1/qwwMAAAAl7YqB3K1bN0VFRUmSbDabXF1d9d133+nQoUPasGGDgoODFRsbq6SkJEVERMhisSgoKEiFhYXKyMhQQEBAmfwjAAAAgJJyxUD28vKSJOXk5GjMmDGKiYlRfn6++vbtq5YtW+qVV17RwoUL5ePjIz8/v4tul52dfclA3rdvXwn/E1De8DMGAADXsisGsiSlpqZq5MiReuCBB9SjRw9lZWXJ19dXktS1a1dNnz5dt99+u3Jzc4tuk5ubKx8fn0veX2hoaDHG3FaM28BZivczBgAAKFtJSUmXvPyKR7E4efKkhgwZovHjx6tPnz6SpKFDh2rPnj2SpK+//lotWrRQmzZtlJCQIKvVqpSUFFmtVpZXAAAA4Jp0xS3IixcvVlZWlhYtWqRFixZJkp566ik9++yzcnd3V2BgoKZPny5vb2+1bdtW/fv3l9VqVVxcXJkMDwAAAJQ0i81ms5XVgyUlJSk8PPxP3y58/FulMA1KS9Lswc4eAQAA4Kou16acKAQAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADG5X+mZBQYFiY2N17Ngx5efna8SIEWrSpImeeuopWSwWhYSEaMqUKXJxcdGCBQu0ceNGubm5KTY2VmFhYWX1bwAAAABKzBUDee3atfLz89Ps2bN15swZ9erVS82aNVNMTIw6dOiguLg4bdiwQUFBQUpMTNTq1auVmpqq0aNHKz4+vqz+DQAAAECJuWIgd+vWTVFRUZIkm80mV1dXJScnq3379pKkyMhIbd68WQ0bNlRERIQsFouCgoJUWFiojIwMBQQElP6/AAAAAChBVwxkLy8vSVJOTo7GjBmjmJgYzZo1SxaLpej72dnZysnJkZ+f30W3y87OvmQg79u3ryTnRznEzxgAAFzLrhjIkpSamqqRI0fqgQceUI8ePTR79uyi7+Xm5srX11fe3t7Kzc296HIfH59L3l9oaGgxxtxWjNvAWYr3MwYAAChbSUlJl7z8ikexOHnypIYMGaLx48erT58+kqTmzZtr69atkqRNmzapbdu2atOmjRISEmS1WpWSkiKr1cryCgAAAFyTrrgFefHixcrKytKiRYu0aNEiSdLEiRM1Y8YMzZs3T40aNVJUVJRcXV3Vtm1b9e/fX1arVXFxcWUyPAAAAFDSLDabzVZWD5aUlKTw8PA/fbvw8W+VwjQoLUmzBzt7BAAAgKu6XJtyohAAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMPyhQN69e7cGDRokSdq7d686d+6sQYMGadCgQfr0008lSQsWLFCfPn00YMAA7dmzp/QmBgAAAEqR29WusHTpUq1du1bVqlWTJCUnJ+uRRx7RkCFDiq6TnJysxMRErV69WqmpqRo9erTi4+NLb2oAAACglFx1C3L9+vX18ssvF3393XffaePGjRo4cKBiY2OVk5OjpKQkRUREyGKxKCgoSIWFhcrIyCjVwQEAAIDScNUtyFFRUTp69GjR12FhYerbt69atmypV155RQsXLpSPj4/8/PyKruPl5aXs7GwFBAT87v727dtXQqOjvOJnDAAArmVXDeTf6tq1q3x9fYs+nz59um6//Xbl5uYWXSc3N1c+Pj6XvH1oaGgxxtxWjNvAWYr3MwYAAChbSUlJl7z8Tx/FYujQoUU74X399ddq0aKF2rRpo4SEBFmtVqWkpMhqtV5y6zEAAABQ3v3pLchTp07V9OnT5e7ursDAQE2fPl3e3t5q27at+vfvL6vVqri4uNKYFQAAACh1FpvNZiurB0tKSlJ4ePifvl34+LdKYRqUlqTZg509AgAAwFVdrk05UQgAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyAAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyAAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyAAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyAAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyAAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAAYCGQAAADAQyAAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGP5QIO/evVuDBg2SJP3888+6//779cADD2jKlCmyWq2SpAULFqhPnz4aMGCA9uzZU3oTAwAAAKXoqoG8dOlSTZo0SXl5eZKk5557TjExMXr33Xdls9m0YcMGJScnKzExUatXr9a8efM0bdq0Uh8cAAAAKA1XDeT69evr5ZdfLvo6OTlZ7du3lyRFRkZqy5YtSkpKUkREhCwWi4KCglRYWKiMjIzSmxoAAAAoJW5Xu0JUVJSOHj1a9LXNZpPFYpEkeXl5KTs7Wzk5OfLz8yu6juPygICA393fvn37SmJulGP8jAEAwLXsqoH8Wy4uv250zs3Nla+vr7y9vZWbm3vR5T4+Ppe8fWhoaDHG3FaM28BZivczBgAAKFtJSUmXvPxPH8WiefPm2rp1qyRp06ZNatu2rdq0aaOEhARZrValpKTIarVecusxAAAAUN796S3IEyZM0OTJkzVv3jw1atRIUVFRcnV1Vdu2bdW/f39ZrVbFxcWVxqwAAABAqbPYbDZbWT1YUlKSwsPD//Ttwse/VQrToLQkzR7s7BEAAACu6nJtyolCAAAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADH/6RCFAeXPkmVbOHgF/Qv24b509AgAAV8QWZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwuBX3hvfdd5+8vb0lSddff7369++vf/3rX3J1dVVERIRGjRpVYkMCQHHc/PLNzh4Bf9Lm0ZudPQIAFC+Q8/LyZLPZtGLFiqLLevbsqZdffln16tXTP/7xD+3du1fNmzcvsUEBAACAslCsJRb79+/XuXPnNGTIEA0ePFjbtm1Tfn6+6tevL4vFooiICG3ZsqWkZwUAAABKXbG2IFetWlVDhw5V3759dfjwYT366KPy9fUt+r6Xl5d++eWXS9523759xZsU14yy/hl7lemj4a/iNQBXwvMDQHlQrEBu2LChgoODZbFY1LBhQ/n4+OjMmTNF38/Nzb0omE2hoaHFeMRtxRkTTlK8n3HxHSnTR8NfVabPj/Vl91AoGWX9+gGgcktKSrrk5cVaYvHBBx9o5syZkqS0tDSdO3dOnp6eOnLkiGw2mxISEtS2bdviTwsAAAA4SbG2IPfp00dPP/207r//flksFj377LNycXHRuHHjVFhYqIiICN14440lPSsAAABQ6ooVyB4eHpo7d+7vLl+1atVfHggAAABwJk4UAgAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMBAIAMAAAAGAhkAAAAwEMgAAACAgUAGAAAADAQyAAAAYCCQAQAAAAOBDAAAABgIZAAAAMDg5uwBAABwhi8jb3H2CPgTbtn0pbNHQCXCFmQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAAADgQwAAAAYCGQAAADAQCADAAAABjdnDwAAAFDeLBj7sbNHwJ8wam6PEr0/tiADAAAABgIZAAAAMBDIAAAAgIFABgAAAAwEMgAAAGAgkAEAAABDiR7mzWq1aurUqTpw4IA8PDw0Y8YMBQcHl+RDAAAAAKWqRLcgr1+/Xvn5+Xr//fc1duxYzZw5syTvHgAAACh1FpvNZiupO3vuuecUFhamu+++W5LUuXNnffXVV0XfT0pKKqmHAgAAAP6y8PDw311WoksscnJy5O3tXfS1q6urLly4IDc3t8sOAAAAAJQnJbrEwtvbW7m5uUVfW63WojgGAAAArgUlGsht2rTRpk2bJEm7du3SDTfcUJJ3DwAAAJS6El2D7DiKxffffy+bzaZnn31WjRs3Lqm7BwAAAEpdiQYynOOdd95R9erVdc899zh7FAAAgGseJwq5xu3fv1+SlJycrPXr1zt5GpQFq9Va9Dl/3+K3zOfHpb4GLqewsNDZI6CcqoyvIwTyNez111/X+vXr1bRpU4WEhGj79u1EcgVntVrl4mL/z7awsFB5eXmSCGXYFRYWysXFRTabTc8995ySk5OLvgauxGq1ytXVVVarVS+88IJWrlypLVu2OHsslAOO15UTJ07ov//9b9HvHali/+5xnTp16lRnD4HiqVmzphISEnTu3Dk1bdpUbm5u+vbbb5WXl6dGjRo5ezyUMEccW61WjRw5Ups3b1ZCQoLq1q2rmjVrOns8OJnNZit6frz00kvas2ePEhMT1aRJE9WqVUs2m00Wi8XZY6Iccjx3bDabpk6dqrNnz6pOnTp68cUXFRQUpIYNGzp7RDiRi4uL0tLS9OSTT8rd3V1VqlRRrVq1ir5XURHI1yDHX3O+vr4KCwvThg0blJ2drWbNmsnDw0PffPONLBaLGjRo4OxRUYIsFotsNpuWLVumgIAADRo0SGfPntVHH32kDh06qFq1as4eEU7kiN8xY8bI399fMTExcnNz0/Lly9W8eXMFBgYSybgkx3Ni/vz5yszM1HPPPacWLVqoZs2aSkpKUkREhJMnhDMcPXpUvr6+slqtWrhwoRo0aKCePXvq5Zdf1sGDB3X+/PkK/cdTxU3/CsrxNtjx48f1/PPP68svv1RsbKzS0tK0a9cu1a5dW+3atVOrVq2cPSpKiPkW1tKlS/XZZ5/pjjvuUL169dSjRw8FBgbK1dXViRPCmX67NrBmzZoaOHCggoKCdN999ykwMFBz5szRDz/8QBzjIr9dc1y1alVduHBBe/fulSRVqVJFGRkZFfptdFxaVlaW3nrrLb399tv68ssvVb16dRUUFGjOnDkaPny4CgoKdObMGWePWaoI5GuMi4uLTp48qfHjx+u6667T/Pnz9eabb2rSpEn68ccf9eOPP6pr166qUaOGs0dFCSgsLCyKmvz8fA0aNEihoaFat26dzp8/ryNHjmjXrl3KyMhw8qRwBseyG5vNph9//FGS/TmzdOlSSfadeC9cuKCgoCB98803zhwV5Yy55vjVV1/V0qVLFRERoZo1a+rDDz/UggULtGLFCvXs2ZM/rCohX19ftW3bVnPnztXu3bs1YsQIDRkyRP369VNGRoYOHDhQ4c+OzGHeriE2m002m00vvPCCrr/+evXv31+TJk3SunXr1L9/fw0YMEBVq1ZlPWoFYa45jomJkSR5eXlpwIABWr58uXJyclS1alUNGDBAN910E2+fV1JWq1XR0dE6c+aMgoKCNGfOHD322GMKDAzUrl27NHv2bG3dulWpqakaN26cs8dFOWKz2RQdHa0bbrhBNptNBQUF6tixo3766Sdt2rRJd999t/r06ePsMVGGCgsLi96R/OGHH/T555/rm2++Ue/evdWrVy+9++67OnDggAYOHFjhTwbHGuRrgNVqlcViKXriBgYG6vjx41q8eLHi4uJUs2ZNrV27VgMHDlRAQICzx0UJccRubGysGjZsqClTpigpKUk7duxQXFycdu7cKQ8PDz388MMXXR8V37Fjx+Tr61t0QqYWLVpoxowZevvtt5WcnKxZs2YpMjJStWrVUkZGhuLj4zVixAheHyBJRX9Mb9q0Sfv379czzzyjTp066YcfftDWrVs1btw4nTp1SgcOHFBgYKBq1arF60sl4HhXIS0tTXPmzFGtWrXUs2dPNWjQQMuWLdNPP/2koKAgDR06tGgnvYqMJRblmM1m07Fjx+Ti4qL09HQ9+eSTevfdd5WVlaVbbrlFjRo10scff6yNGzdq4cKF8vX1dfbIKAHmmtL8/HwVFBQoMjJSkjRhwgSlpKTo1KlTmjhxoo4fP64XX3yR45dWIps2bdLhw4clSd9++6127Nghd3d3SdKKFSv03XffKTo6Wi4uLrJYLEpOTlZcXBxnNcA3X3EAABZ4SURBVEXR64Qjdps0aSIvLy8lJiZKkjp27KizZ8/qwoULGjp0qBo0aKC6desSx5WEozWeeOIJ+fj4aNmyZYqPj1erVq309NNP66efftKNN95Y9HpT0bHEohyLj4/Xxx9/rCeeeELLly9XUFCQqlWrppycHDVp0kSnT5/Wxo0bFRcXp5CQEGePixJgrik9evSovL29tXLlStWpU0dt27aV1WrV448/rtmzZ6tx48Y6e/assrOzVbt2bWePjjJy+vRp+fv76z//+Y88PT1VWFiotWvXqlu3burevbskadeuXWrdurWki98yReVlLtmaOHGigoODdf78efn5+SklJUVubm5KTEzUyJEj1aVLF2ePCycoLCzUG2+8oeuvv17dunXT8OHDdfToUd1111164IEHVL169Ur1WkIgl3MLFizQV199pTZt2mjChAn65ZdftHHjxqInbfPmzeXh4eHsMVECHCFjs9k0ZswYnT17Vi1atFB6eroCAwN16tQpHT16VMOGDdMtt9yiCxcuyM3Nzdljo4yYoXvu3Dm98MILCggIUFhYmAoKCrR69WrdeeeduvfeeyWJNen4Hcc+LOfPn1f79u21efNmFRQUqHfv3kpOTlbLli2L/rBC5fDbP6C3b9+uHTt2aP/+/Zo5c6YWLlyoQ4cOadq0afL393fipGWPNcjlkOM4x5LUvn175efnKzExUa1atVKDBg3k4+Oj7OxshYeHy8fHx8nToqQ4thw7jjc5ZswYWa1WZWZmqkuXLurevbtuvvnmol9gFfkA7biYecSB6dOnq3bt2urQoYP27dun06dPKyAgQKGhoQoODi7aSZc4xm8988wzSktL05QpUxQSEiJ/f3+lpqbq73//u8LCwlSnTh1nj4gyZB429s0339Tu3bvVvn17NWrUSNu2bVO1atX06aefKjY2VnXr1nX2uGWO37DljOMJm5qaqpkzZ2rOnDmKiIhQWFhY0cG5GzVqpH79+nEotwrCXHP8f//3f1qyZIkaN24sf39/3XzzzTp16pQ8PT0VGBhYoQ/Kjstz/PEUHR2tOnXq6Oeff1ZeXp7CwsKUlZWl5ORktW7dWqGhoc4eFeVYx44dderUKSUlJUmSzp49qz179igzM5P9GCohx2FjJ02apJCQEB0/flyPPfaY8vLyVKNGDS1ZskRTp06ttL932IJczlgsFp05c0Zjx45V7969tX//fq1Zs0aPP/64UlJStGHDBt12222VZpF8RWcuqzhx4oRatWqloKAgLV68WDfffLMyMzO1atUq3XbbbRy+rxJyHMFGknbv3q09e/ZoyJAhWrp0qX744QedO3dO9913n5o0aVIpt/Dg8swlNo53JR075b322ms6ePCgvvrqKz300EO64YYbeEeqknE8P7744gt5eXkpIiJCa9euVdeuXZWVlaVhw4YpKiqqUr+rwALGcsJ8Mfv+++/VpEkTNW7cWG+88YZuvfVWbdiwQWPGjNHp06eJ4wrE8bZ5dHS0fH19tX37di1atEj9+vXTgw8+qFatWmnq1KlsGayEzD+ejh8/rtq1a8vT01Mffvihhg0bpipVqmju3LkaNGiQvL29nT0uyhFzXWl+fr48PDyKdtKLioqSh4eHFi9erB49enAa6UrG8dwoKCiQh4eHateurW3btmncuHGaOnWqTp8+rTVr1uiuu+6q9K8rBHI54HjCZmVlKTMzU3Xr1lVmZqYGDx6shQsX6uzZs1q0aJHuvffeSrdIvqJy/LKS7Mc5vuGGG/TEE09o3bp1io6O1gcffCCbzaZ33nlH9erVk8ROV5WJ4zXBarVq/Pjx8vf31/DhwzVz5kz973//04kTJ/Taa6/p8ccfr/S/xHAx87kzadIknTp1StHR0brxxhuLXkO6dOkiq9WqhQsXqmHDhrr55pudPTZKmc1m04YNG3THHXcoLS1N8+fP1/XXX6+6desqKytLTZs21Y4dO/Tf//5XsbGx7Pwvllg4nc1mk4uLi9LS0jRs2DBlZGQoPz9fgYGBcnd31+HDhxUfH6+nnnpKQUFBzh4XJcRischms+n8+fM6fPiw2rdvr+uvv15NmjTR8ePH5ePjo7vuukspKSlasmSJevbsWakOr1OZHT58uOiEHpMnT1ZISIj69OmjlStX6syZM/Ly8tL58+fVtWtXderUycnTorxxrFefOXOmrrvuOjVs2FBvvPGGQkJCVKdOnaJIbtSokWrWrKkmTZpwDP1K4JdfftGgQYPk6empzz//XC1atFBhYaHOnj2r0NBQNW3aVOfOndODDz6oJk2aOHvccoHDvJUDeXl5mjx5stq1a6e+fftKkubPn69u3bopNTVVN9xwg6677jonT4mS8PXXX6tTp04qLCzUtGnT1LRpU506dUoXLlxQr169lJmZqSlTpmjGjBkKCwuT9Otxb1HxrVixQpmZmRo1apQkaejQobrvvvv0n//8R507d9a6des0bty4oucG4GC+w/Tee+9pyZIl+t///idJev/99/X+++9r0qRJatOmDe9GVTKOdxX279+v6OhoNWrUSMuWLZPNZtOyZct04cIFjRgxwtljljusyncSc4/hKlWqyNvbW1WqVCm67NSpU/L19VWXLl2I4wpi1qxZ+uCDDyTZtwympKRo4MCBGjp0qM6cOaP33ntP8+bN04QJExQWFlb0HPHz83Pm2Cgjr7/+ut544w1Vr15d48aN086dOzVmzBj5+/vrwQcfVN++feXi4sJbn/idwsLCouC1Wq2644471Lx5c40dO1aS1L9/f/Xu3btoWRdxXHk4joyVl5enZs2aafny5Tpw4IBWrVoli8WiOnXq6MiRI8rLyxPbSy/GFmQncKw/PXXqlHbv3q0WLVpo8+bNSklJUePGjeXh4aGFCxdqyZIlCgwMdPa4KCH//ve/dfLkSfn7+8vNzU2LFi1STEyM7r77buXl5cnFxUWnT5+uFOe4x+8dOnRIY8eOVYsWLbR7926dPn1aL7zwglq2bKkZM2bo559/1sMPP6zbb7/d2aOiHHGcMMhqtWr06NGqW7eumjZtqsjISC1dulTp6el66aWXnD0mnMDRGmlpaXr22WdVvXp1NW/eXHfeeaf69u1bdFSTkSNHcir6S2ANchlzvNVx+vRpxcTEaPv27Tpx4oRq1KghT09Pfffdd9qxY4cmT56s66+/3tnjogQ4DrGUl5enOXPm6NixY3ryySf1t7/9TTNmzJCfn5+aN28uV1dXeXp6snWnkvLy8lJmZqbq1aundu3a6dChQ/rwww/VsWNH9evXT506ddKNN97o7DFRzjjWHD/22GNq3bq16tWrp4SEBFWpUkU9evTQt99+q7p167KxpRKyWCzKyMjQuHHjdOutt6pXr16aMWOGqlatqjFjxuiTTz7RpEmTKu1xjq+GJRZlzNXVVRkZGZo/f74GDx6sd999V56enkpPT1etWrU0ceJEPfvss/w1V0E43t6y2Ww6dOiQGjVqpKioKK1atUqNGjXSv/71L82dO1cnT56UxFuflc3q1au1fft2SZKHh4dCQkK0fv16+fv7q2fPnvL19dWwYcOUk5PDTrq4yCuvvKKvv/5aknTkyBE1bdpUDz30kPbu3StPT0+tWbNG8fHxmjhxopo1a+bkaVGWdu7cqfz8fElSenq6goODdf/996t+/fp67bXXtHPnTgUHB2vFihUKDg528rTlF4FcRsyzpR09elSfffaZTp8+LUkaMGCAcnNztXv3buXl5cnLy8tZY6KEubi4yGq1atSoUdq3b58KCgq0YcMGnT17VitXrlRoaKjWrl3L1p1KaMuWLZo8ebImTpyoadOm6eeff1bnzp3Vv39/ubu7KzQ0VHfffbdeeeUVVa9e3dnjopx56KGH1KlTJ33xxRcKDg5WUFCQZs+erX79+umhhx6Su7u7brnllov2bUHFZ7PZdOrUKU2YMEGvvvqqsrOzdeTIkaKNMLt27VJmZqby8vLk5saRfq+EJRZlwLEO6OTJk0pMTFTDhg112223acaMGWrcuLGaNm2q5s2bq1WrVhzTtAJ6+eWXVbt2bY0dO1Y//PCDfvrpJx08eLDoEEycIa9yql27toKDg5WXl6eff/5Zbm5uevPNN5WamipJ6t69u5o1a8YWHlzEsWTLzc1NiYmJio6Olre3twYMGKA1a9boxIkTWrZsmf7xj3+oXbt2zh4XZcxisSg/P18LFy7U+fPnFR0drfT0dC1dulTff/+91q9fr7i4ONWsWZN3LK+CQC4DFotF6enpGjVqlM6fP6/ly5crKipKXbp0UXR0tFq2bKmQkBBVq1bN2aOiFHh4eMjd3V2LFy/WvffeqwYNGighIUHDhw9XSEiIs8eDk7i6uio4OFiurq5KT09XeHi4OnfurC+++ELbtm1TZGQkfzzhdxxrjkeMGKHw8HCNGTNG06ZNU5UqVdS3b1/t3LlTDzzwACf/qGQcp6UvLCxUrVq11KRJE3l6euqTTz7R2LFjVadOHYWFhenuu+9WgwYNnD3uNYGjWJQSm82mtLQ01alTR3l5eRo/frzuuecetWnTRlOnTlVmZqbGjx8vSapevTpbiSqwvLw8HT58WBs2bFB4eLiWL1+uIUOGqG3bts4eDeXAuXPn9Pnnn2vTpk0aNmyYmjZtqpMnT6p27drOHg3liHns4tWrV2vFihV68cUX1bBhQ6WkpKh3794aPny4Hn74YecOijJnHq1ixowZ8vb21uOPPy6bzaaVK1dq69atCg8PV0xMDCec+hPYglxK/v3vf+v5559Xhw4dVKNGDRUWFqpatWpatmyZBg0apGPHjmn16tX65z//qRo1ajh7XJQiNzc3WSwWrV+/Xh9++KEeeeQRtu6giLu7uxo0aKDc3FzFx8crIiKC1wRcxLGswiE/P19Vq1bVzp07VbduXQUHB6t79+7y8PDg6EeVkONoFbNnz1ZkZKROnDihdevWqXPnzurYsaNsNpvuvPPOojN04o9hC3Ipmjt3rr7//nvFxsaqSpUqSkpKkru7u7y8vLRmzRqNGTOGF7NK5Pz588rNzVWNGjU4kxV+5/z588rMzGTLMS7ieK2wWq2aOHGi/Pz8FBAQoBo1aignJ0fHjh1Tv379io58xGtL5VNYWKjnnntO3333nVauXCnJfmKqvXv36vnnn+c1pZg4ikUpycjIUGpqqjIzMzVhwgTl5eWpoKBAa9as0cyZM/Xoo48Sx5VM1apVi7YM8gsMv1W1alV+keF3HK8VMTExatWqlTp27KiNGzeqoKBAISEh8vHxuej1hNeWysFxZKyCggK5urrq/vvvl9Vq1YsvvihJmjBhglq3bn3REbTw57AFuRTk5+crLi5O7du319///nctXrxYiYmJiouLk8VikY+PD291AAAuy3FSKYdp06Zp9OjReuaZZ9SxY0dVrVpV7dq1k7+/vzw9PZ04KcqaY81xenq6nnnmmaKd7gYMGKB58+apTp06evLJJ507ZAXAFuRS4DhqQXZ2tiTpn//8p3Jzc7VkyRIFBQURxwCAyzJPMDR79mxduHBBBQUFioyM1D333KOoqCi99dZbysjIII4rIRcXF2VkZCgmJkYdO3ZU7969deTIEb355psaOXKkfvnlF2VkZIjtn38NO+mVMMehVqpVq6YdO3bo8OHDysjI0M8//6zHHnuMOAYAXJbNZis6wdCSJUu0Zs0abd26VRMnTtTJkyd18OBBvffee4qOjlaHDh2cPS7KkLmz5tGjR3XixAmNGjVK/v7+atWqlXbt2qVevXrpjjvukLe3N8tt/iJOo/IXOd7qcHB8HhoaKkn65JNPtHfvXj3++OMcyg0AcFkFBQVyd3eXJD322GMKDQ3VBx98oAULFmj8+PFatmyZsrKylJWVpfr16zt5WpQlx7sKqampWrdundq1a6eNGzdqwIABaty4sbZv364ff/xR586dU9WqVZ09boXAGuS/wBHHJ06c0Lfffqvz58+re/fuv7teXl4ep/sEAFzW+++/r/r166tTp06y2WyaPHmyHn300aINK/fff7+qV6+u+fPnq2rVqhytohJxtMapU6c0ZswYpaWlaf369Xrrrbf01ltv6e6779aWLVs0c+bMoqOZ4K9jicVf4DhD3tixY1WlShV98MEH+vHHHxUZGSnp1+UWnO8cAHAlwcHBaty4sT7++GPVrFlT33zzjQoKClSvXj398MMPOnLkiPLz83X69Gm1bt2aOK4kHEtu0tPT9dRTTyk8PFy1a9dWRESE/va3v6levXpq3bq1evbsybvUJYyd9IqhsLCw6PMFCxaoQ4cOGjVqlN577z1t375dq1evlqSLll4AAPBbjt8nPj4+ysrK0ttvv63PPvtMPXr0UEJCghYsWKBJkyZp6NChioyMvOj3Dyo2x0a2c+fO6YsvvlDfvn01ZswYnT59Wq6urvr000914MABNW7cWNddd52zx61w2LRZDK6urjpx4oQOHz6sVq1aycPDo+jMRj169JCHh4ezRwQAlHOOdaVWq1Vr1qxRvXr1tHz5co0bN06urq4aP368fHx8tHPnTh08eFCffPKJpk2b5uyxUQbM00c/9thjqlmzpho0aKBu3brJx8dHixcv1qZNmzRjxgyao5QQyH+Q1WrVa6+9pkcffVTp6emaO3euIiMj5e/vrzVr1sjd3V0nT57UunXrNGvWLGePCwAoxxxvndtsNj3++ONyc3PTTz/9pNtvv11z5szRyJEjlZaWpqFDh8rNzU1ff/21pkyZwhrTSsLFxUWnT5/W1KlTNWLECNWtW1dDhw5VXl6ejh07pqNHj2rWrFmqV6+es0etsAjkP2jRokU6cOCAJOnVV1/Vrl279Nxzz8nFxUWZmZk6fvy4Dh48qFmzZqlhw4ZOnhYAUJ451hC/+uqrCggI0JQpU5Sbm6thw4bpwoULWrRokQ4ePChvb2917txZN91000UnDkHFl5OTo7CwMPn5+WnVqlUaP368FixYoNzcXL322mvEcSnjKBZ/0LZt2/Tpp5/q7NmzGjZsmBYuXCibzVZ0Wkfp92c+AgDgcrKzs7V06VLt27dPMTExatGihbKysvTQQw9p/vz5Cg4O5mgVlVhBQYH27t2r+Ph49ezZUy4uLnrzzTc1btw44rgMEMhXYR7KLTo6WpL07LPPKiQkRKNHj1ZeXp6WLFni5CkBANeizMxMrV69WtnZ2brtttt04403srEFF1m4cKGOHTum5ORkzZ8/n3epywiBfAWOOM7JyVFaWpo8PDy0bds27d+/X927d1fr1q01duxYPfnkk6pdu7azxwUAXIMyMjL0/vvv68yZMxo9erQ8PT05ChKKHDt2TLt371bz5s3VoEEDZ49TaRDIl/HbPUh9fHzUokULxcTE6J133tG+ffvUv39/tWrVytmjAgCucRkZGcrNzeWtc6CcYCe9y7jcHqTVqlXT8OHDtWrVKtWtW9fZYwIAKoCAgAAFBAQ4ewwA/x+BfAWX2oN0+vTp8vT01KBBg5w9HgAAAEoBgXwFderU0U033VS0B6m7u7s6deqkm2++2dmjAQAAoJSwBvkPMPcgffHFF1kkDwAAUIERyH8Ae5ACAABUHgQyAAAAYOBAiwAAAICBQAYAAAAMBDIAAABgIJABAAAAA4EMAAAAGAhkAAAAwEAgAwAAAIb/B16emvO8yaJZAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
],
"source": [
"top = df['artist_top_genre'].value_counts()\n",
"plt.figure(figsize=(10,7))\n",
"sns.barplot(x=top[:5].index,y=top[:5].values)\n",
"plt.xticks(rotation=45)\n",
"plt.title('Top genres',color = 'blue')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
]
}