{
"cells": [
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {},
"outputs": [],
"source": [
"base_path = './large_dataset/'"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['bangla_50000-60000_labeled_fixed.csv',\n",
" 'bangla_40000-50000_labeled_fixed.csv',\n",
" 'bangla_10000-20000_labeled.csv',\n",
" 'bangla_100000-120000-labeled.csv',\n",
" 'bangla_20000-30000_labeled.csv',\n",
" 'bangla_1-10000-labeled-fixed.csv',\n",
" 'bangla_60000-80000-labeled.csv',\n",
" 'bangla_30000-40000_labeled_fixed.csv']"
]
},
"execution_count": 188,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"os.listdir(base_path)"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {},
"outputs": [],
"source": [
"dfl = []\n",
"for fn in os.listdir(base_path):\n",
" dfl.append(pd.read_csv(os.path.join(base_path, fn),\n",
" names=['sentence_id', 'sentence', 'ignore', 'label']))"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" sentence_id | \n",
" sentence | \n",
" ignore | \n",
" label | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 301610 | \n",
" সময় নষ্ট না করে পেজটি | \n",
" 1.0 | \n",
" -1 | \n",
"
\n",
" \n",
" 1 | \n",
" 301611 | \n",
" হে মানবজাতি তোমরা কি এখনও বুঝতে পারছনা আমি চা... | \n",
" 1.0 | \n",
" -1 | \n",
"
\n",
" \n",
" 2 | \n",
" 301612 | \n",
" কয়েক জন মানুষের জন্য এত আবেগ। | \n",
" 1.0 | \n",
" 2 | \n",
"
\n",
" \n",
" 3 | \n",
" 301613 | \n",
" আর মায়ানমারে শত শত মানুষ মেরে ফেলা হচ্ছে তার ক... | \n",
" 1.0 | \n",
" -1 | \n",
"
\n",
" \n",
" 4 | \n",
" 301614 | \n",
" শালারা বিমানে উঠার আগে ড্যান্স পার্টি করে মান... | \n",
" 1.0 | \n",
" -1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sentence_id sentence ignore \\\n",
"0 301610 সময় নষ্ট না করে পেজটি 1.0 \n",
"1 301611 হে মানবজাতি তোমরা কি এখনও বুঝতে পারছনা আমি চা... 1.0 \n",
"2 301612 কয়েক জন মানুষের জন্য এত আবেগ। 1.0 \n",
"3 301613 আর মায়ানমারে শত শত মানুষ মেরে ফেলা হচ্ছে তার ক... 1.0 \n",
"4 301614 শালারা বিমানে উঠার আগে ড্যান্স পার্টি করে মান... 1.0 \n",
"\n",
" label \n",
"0 -1 \n",
"1 -1 \n",
"2 2 \n",
"3 -1 \n",
"4 -1 "
]
},
"execution_count": 190,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Merging the dataframes \n",
"df = pd.concat(dfl).dropna()\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {},
"outputs": [],
"source": [
"# pandas drop columns using list of column names\n",
"df = df.drop(['ignore'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {},
"outputs": [],
"source": [
"indexNames = df[(df['label'] == 'ss') |\n",
" (df['label'] == 's') |\n",
" (df['label'] == '.')].index\n",
" \n",
"# Delete these row indexes from dataFrame\n",
"df.drop(indexNames , inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 274,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" sentence_id | \n",
" sentence | \n",
" label | \n",
"
\n",
" \n",
" \n",
" \n",
" 9996 | \n",
" 291605 | \n",
" যারা রোহিঙ্গাদের দেশে জায়গা দেওয়ার পক্ষে তাদে... | \n",
" -1 | \n",
"
\n",
" \n",
" 9997 | \n",
" 291606 | \n",
" রোহিঙ্গাদের গণহত্যার বিরুদে পৃথিবীর বিভিন্ন দ... | \n",
" -1 | \n",
"
\n",
" \n",
" 9998 | \n",
" 291607 | \n",
" এই পৃথিবীর সবছেয়ে অমানবিক অশিক্ষিত মুরখ টি দে... | \n",
" -1 | \n",
"
\n",
" \n",
" 9999 | \n",
" 291608 | \n",
" তাদের ভাব দেখে মনে হচ্ছে ভারত এখন আমেরিকা। নি... | \n",
" -1 | \n",
"
\n",
" \n",
" 10000 | \n",
" 291609 | \n",
" ভারতের কেও ভাত পাই কি পায় না সেটা তোকে দেখতে ... | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sentence_id sentence label\n",
"9996 291605 যারা রোহিঙ্গাদের দেশে জায়গা দেওয়ার পক্ষে তাদে... -1\n",
"9997 291606 রোহিঙ্গাদের গণহত্যার বিরুদে পৃথিবীর বিভিন্ন দ... -1\n",
"9998 291607 এই পৃথিবীর সবছেয়ে অমানবিক অশিক্ষিত মুরখ টি দে... -1\n",
"9999 291608 তাদের ভাব দেখে মনে হচ্ছে ভারত এখন আমেরিকা। নি... -1\n",
"10000 291609 ভারতের কেও ভাত পাই কি পায় না সেটা তোকে দেখতে ... 5"
]
},
"execution_count": 274,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.tail()"
]
},
{
"cell_type": "code",
"execution_count": 275,
"metadata": {},
"outputs": [],
"source": [
"df['label'] = df['label'].astype(int)"
]
},
{
"cell_type": "code",
"execution_count": 276,
"metadata": {},
"outputs": [],
"source": [
"label_map = {-9: 0,\n",
" -2: 1,\n",
" -1: 2,\n",
" 0: 3,\n",
" 1: 4,\n",
" 2: 5,\n",
" 5: 6,\n",
" }"
]
},
{
"cell_type": "code",
"execution_count": 277,
"metadata": {},
"outputs": [],
"source": [
"df['label_enc'] = df['label'].map(label_map)"
]
},
{
"cell_type": "code",
"execution_count": 278,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-1 45833\n",
" 2 20535\n",
" 0 18950\n",
" 1 12743\n",
"-2 1214\n",
" 5 701\n",
"-9 2\n",
"Name: label, dtype: int64"
]
},
"execution_count": 278,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['label'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 279,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2 45833\n",
"5 20535\n",
"3 18950\n",
"4 12743\n",
"1 1214\n",
"6 701\n",
"0 2\n",
"Name: label_enc, dtype: int64"
]
},
"execution_count": 279,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['label_enc'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 280,
"metadata": {},
"outputs": [],
"source": [
"docs = df['sentence'].values\n",
"y = df['label_enc'].values"
]
},
{
"cell_type": "code",
"execution_count": 281,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['সময় নষ্ট না করে পেজটি ',\n",
" ' হে মানবজাতি তোমরা কি এখনও বুঝতে পারছনা আমি চাইলে তোমাদের যে কোন মূহুর্তেই মৃত্যুর সাধ গ্রহন করতে হবে।সুতারং সেদিনের কথা স্বরন কর যেদিন তোমাদের কর্ম ছাড়া আর কিছুই কাজে আসবেনা। ',\n",
" ' কয়েক জন মানুষের জন্য এত আবেগ। ', ...,\n",
" ' এই পৃথিবীর সবছেয়ে অমানবিক অশিক্ষিত মুরখ টি দেশের জনগণ তা হল মায়ানমার এর বৌদ্ধ সম্প্রদায়। ',\n",
" ' তাদের ভাব দেখে মনে হচ্ছে ভারত এখন আমেরিকা। নিজের দেশের লোক ভাত পায়না আবার বড় কথা ',\n",
" ' ভারতের কেও ভাত পাই কি পায় না সেটা তোকে দেখতে হবে তবে হা কাংলাদেশি তর ভাত দরকার হলে বলিস '],\n",
" dtype=object)"
]
},
"execution_count": 281,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"docs"
]
},
{
"cell_type": "code",
"execution_count": 282,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.feature_extraction.text import TfidfVectorizer"
]
},
{
"cell_type": "code",
"execution_count": 283,
"metadata": {},
"outputs": [],
"source": [
"vect = TfidfVectorizer(decode_error='ignore',\n",
" max_features=20000)\n",
"\n",
"X = vect.fit_transform(docs)"
]
},
{
"cell_type": "code",
"execution_count": 284,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<99978x9685 sparse matrix of type ''\n",
"\twith 805960 stored elements in Compressed Sparse Row format>"
]
},
"execution_count": 284,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X"
]
},
{
"cell_type": "code",
"execution_count": 285,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state=1)"
]
},
{
"cell_type": "code",
"execution_count": 286,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LogisticRegression(C=10, class_weight=None, dual=False, fit_intercept=True,\n",
" intercept_scaling=1, max_iter=100, multi_class='warn',\n",
" n_jobs=None, penalty='l2', random_state=None, solver='warn',\n",
" tol=0.0001, verbose=0, warm_start=False)"
]
},
"execution_count": 286,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.linear_model import LogisticRegression\n",
"\n",
"model = LogisticRegression(penalty='l2', C=10)\n",
"model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 287,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5933213305898491"
]
},
"execution_count": 287,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.score(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 288,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5274721610988864"
]
},
"execution_count": 288,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.score(X_test, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 289,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import confusion_matrix"
]
},
{
"cell_type": "code",
"execution_count": 290,
"metadata": {},
"outputs": [],
"source": [
"y_pred = model.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 291,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 61, 243, 24, 2, 31, 0],\n",
" [ 30, 11058, 1032, 598, 1065, 2],\n",
" [ 5, 3171, 1284, 455, 644, 0],\n",
" [ 5, 1780, 426, 1402, 259, 0],\n",
" [ 5, 3403, 600, 192, 2015, 3],\n",
" [ 1, 157, 8, 17, 15, 1]])"
]
},
"execution_count": 291,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"confusion_matrix(y_test, y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 292,
"metadata": {},
"outputs": [],
"source": [
"test_sent = ' ভালবাসার গল্প পড়তে এই পেইজে লাইক দেন বন্ধুত্ব '"
]
},
{
"cell_type": "code",
"execution_count": 293,
"metadata": {},
"outputs": [],
"source": [
"test_sent_features = vect.transform([test_sent])"
]
},
{
"cell_type": "code",
"execution_count": 294,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4])"
]
},
"execution_count": 294,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.predict(test_sent_features)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Learning curve"
]
},
{
"cell_type": "code",
"execution_count": 295,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import learning_curve"
]
},
{
"cell_type": "code",
"execution_count": 296,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ubuntu/miniconda3/lib/python3.7/site-packages/sklearn/model_selection/_split.py:652: Warning: The least populated class in y has only 2 members, which is too few. The minimum number of members in any class cannot be less than n_splits=3.\n",
" % (min_groups, self.n_splits)), Warning)\n",
"/home/ubuntu/miniconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:433: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
" FutureWarning)\n",
"/home/ubuntu/miniconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:460: FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n",
" \"this warning.\", FutureWarning)\n"
]
}
],
"source": [
"tsz = np.linspace(0.1, 1, 10)\n",
"train_sizes, train_scores, test_scores = learning_curve(model, X, y, train_sizes=tsz, cv=3)"
]
},
{
"cell_type": "code",
"execution_count": 297,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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PudFGoq7U1xcTFFREb17996ndWj4ARGpYufOneTl5SmwNxEzIy8vr15nTgruIpKQAnvTqu/xV3AXEUlDCu4i0uwUFxczePBgBg8ezCGHHELXrl3L53fv3p3UOi699FJWrFiR9DbXr1/P2LFjGTRoEPn5+YwbN25fi98s6IKqiNTfrFkwZQqsWQM9esD06TBhwj6vLi8vj8WLFwMwdepU2rdvzw9+8IMKecofBJ2RuI760EMP1Wmbt956K2eccQbXXBM6/y1ZsmQfSl5RSUkJWVlNE2ZVcxeR+pk1CwoLYfVqcA/vhYUhPcVWrlxJ//79ueqqqxg6dCjr16+nsLCQgoICjjrqKKZNm1ae97jjjmPx4sWUlJTQqVMnJk+ezKBBgzj22GP54osvqqx7/fr1dOu29ymNAwcOLJ/+yU9+woABAxg0aBBTpkwB4J133mHEiBEMHDiQc889ly1btpRvd8qUKRx//PHcd999fP7553z729+moKCA4cOH8+abYfj/l19+mUGDBjF48GCGDh3K119/ndqDFfv1a+zXsGHDXESap+XLl++due469xNOqP7VqpV7COsVX61aVf+Z665Luiy33Xab33333e7u/uGHH7qZ+fz588uXFxcXu7v7nj17/LjjjvNly5a5u/vIkSN90aJFvmfPHgf8hRdecHf3G264wX/6059W2c7zzz/vHTt29JNOOsmnT5/u69atc3f3OXPm+HHHHefbt2+vsL1+/fr566+/7u7uN998s994443l2500aVL5es877zz/17/+5e7un3zyiR911FHu7j569Gh/88033d1927ZtXlJSUqVMFb6HCLDQk4ixapYRkfrZVc1jV6tLr6fDDz+co48+unz+8ccf54EHHqCkpIR169axfPly8vPzK3ymTZs2jBkzBoBhw4bx+uuvV1nv2LFj+eijj/jrX//Kiy++yJAhQ1i2bBnz5s3jsssuo02b8BjbAw88kOLiYnbu3Mlxxx0HwMUXX8xFF11Uvq7x48eXT8+bN69C2/+XX37Jjh07GDlyJNdffz0XXHAB5557Lu3bt0/B0dlLwV1EanbPPTUv79UrNMVU1rMnvPpqyovTrl278ukPP/yQX/3qV8yfP59OnTpx4YUXJuwbnpOTUz6dmZlJSUlJwnXn5eUxYcIEJkyYwOjRo/nHP/6Bu1fplui1POQovozu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uTBlZQHKa26tslqF9yig5WTmJAzsAHvK9tD3wL5kZWSV16CyMrLItEwyMxJPV8lbabqmz49/anzCWpNhLLt6WcKAnZWRldJAN2PBjITBrEfHHpx95Nkp205tfn7qzxMGkZ+c8pNGC+wA00+ZnrAc009pmAdCVyf2v9nUZ7mNXY5kau7fAU539yui+YuA4e5+bVyePOArd99lZlcB57n7yTWtt6XW3Ov667undA+bdmxKGKCrS9u6a2u128/NyaVz2858svmTavPccdId5UG4clCu63x2ZjYZVn2nquZSO2sO5WguNcRYWZo6mDWncqSTRm2WqZQ/E9jk7h1rWm9LDe7VBZHcnFzO6XdOeY079tqya0u162qf0568Nnl0btu5withWts88trk0SqrVY3l0Clv05dDwUwaUiqbZRYAfc2sN6E3zHjggkobO9Td10ez44D361jeZqu0rJT3N77P2+veZuG6hQkDKsC23dt4ddWr5cH48AMPrzFw57XNo3VW630ul055m285FMylOUi2K+RY4B5CV8gH3X26mU0DFrr7HDP7KSGolwCbgInu/u+a1tkca+6lZaV8UPwBC9ctZOG6hby9/m0WfbaoPIC2y25X3u2tssauMYNqiSL7o5Q1yzSUpg7uZV7Gh8UfVgjk76x/h6/3fA2EWvCQQ4ZQcFgBww4dRsFhBXwz75vMXja7WZz+i8j+KZXNMi1emZfx0aaPyoP4wnULeWf9O2zbvQ2ANlltGHzIYC4bcll5ID+y85FkZmRWWVdzOf0XEalJi6q5J9MM4e58/OXHFQL52+vfLu+B0jqrNYMOHlShRt6vSz+yMvaL3zkRaeHSruZe3XgZG77eQNfcrhUC+eadmwHIycxh0MGDmDBgQnkgz++ST3ZmdlPuiohIg2sxNffquv7FZGdkM/DggRVq5EcddBQ5mTmpKK6ISLOQdjX3NVvWVLts4ZUL6X9Q//I+4CIi+7sWM557j46Jhyvo2bEnww4bpsAuIhKnxQT36adMp2122wppTXHTjohIS9BigvuEAROYeeZMenbsiWH07NhTfctFRKrRYi6oiohI8hdUW0zNXUREkqfgLiKShhTcRUTSkIK7iEgaUnAXEUlDCu4iImkoqeBuZqPNbIWZrTSzyTXk+w8zczOrtZuOiIg0nFqDe/RM1BnAGCAfON/M8hPkywW+D7yV6kKKiEjdJFNzHw6sdPeP3X03MBs4K0G+O4C7gJ0pLJ+IiOyDZIJ7V2Bt3HxRlFbOzIYA3d39uZpWZGaFZrbQzBZu2LChzoUVEZHkJBPcLUFa+ZgFZpYB/BK4sbYVuftMdy9w94IuXbokX0oREamTZIJ7EdA9br4bsC5uPhfoD7xqZquAY4A5uqgqItJ0kgnuC4C+ZtbbzHKA8cCc2EJ33+Lund29l7v3At4Exrm7RgUTEWkitQZ3dy8BJgFzgfeBJ919mZlNM7NxDV1AERGpu6Qes+fuLwAvVEr7cTV5T6x/sUREpD50h6qISBpScBcRSUMK7iIiaUjBXUQkDSm4i4ikIQV3EZE0pOAuIpKGFNxFRNKQgruISBpScBcRSUMK7iIiaUjBXUQkDSm4i4ikIQV3EZE0pOAuIpKGkgruZjbazFaY2Uozm5xg+VVmttTMFpvZP8wsP/VFFRGRZNUa3M0sE5gBjAHygfMTBO/H3H2Auw8G7gL+K+UlFRGRpCVTcx8OrHT3j919NzAbOCs+g7tvjZttB3jqiigiInWVzGP2ugJr4+aLgBGVM5nZNcB/AjnAyYlWZGaFQCFAjx496lpWERFJUjI1d0uQVqVm7u4z3P1w4Cbg1kQrcveZ7l7g7gVdunSpW0lFRCRpyQT3IqB73Hw3YF0N+WcDZ9enUCIiUj/JBPcFQF8z621mOcB4YE58BjPrGzd7BvBh6oooIiJ1VWubu7uXmNkkYC6QCTzo7svMbBqw0N3nAJPMbBSwB/gSuLghCy0iIjVL5oIq7v4C8EKltB/HTV+X4nKJiEg96A5VEZE0pOAuIpKGFNxFRNKQgruISBpScBcRSUMK7iIiaUjBXUQkDSm4i4ikIQV3EZE0pOAuIpKGFNxFRNKQgruISBpScBcRSUMK7iIiaUjBXUQkDSUV3M1stJmtMLOVZjY5wfL/NLPlZrbEzF4ys56pL6qIiCSr1uBuZpnADGAMkA+cb2b5lbItAgrcfSDwFHBXqgsqIiLJS6bmPhxY6e4fu/tuwgOwz4rP4O6vuPv2aPZNwkO0RUSkiSQT3LsCa+Pmi6K06lwOvFifQomISP0k8wxVS5DmCTOaXQgUACdUs7wQKATo0aNHkkUUEZG6SqbmXgR0j5vvBqyrnMnMRgFTgHHuvivRitx9prsXuHtBly5d9qW8IiKShGSC+wKgr5n1NrMcYDwwJz6DmQ0BfkcI7F+kvpgiIlIXtQZ3dy8BJgFzgfeBJ919mZlNM7NxUba7gfbA/zOzxWY2p5rViYhII0imzR13fwF4oVLaj+OmR6W4XCIiUg+6Q1VEJA0puIuIpCEFdxGRNKTgLiKShhTcRUTSkIK7iEgaUnAXEUlDCu4iImlIwV1EJA0puIuIpCEFdxGRNKTgLiKShhTcRUTSkIK7iEgaUnAXEUlDCu4iImkoqeBuZqPNbIWZrTSzyQmWH29m75hZiZn9R+qLKSIidVFrcDezTGAGMAbIB843s/xK2dYAlwCPpbqAIiJSd8k8Zm84sNLdPwYws9nAWcDyWAZ3XxUtK2uAMoqISB0lE9y7Amvj5ouAEfuyMTMrBAqj2a/MbMW+rCdFOgMbm3D7qaR9aX7SZT9A+9Lc9EwmUzLB3RKked3KEn3IfSYwc18+m2pmttDdC5q6HKmgfWl+0mU/QPvSUiVzQbUI6B433w1Y1zDFERGRVEgmuC8A+ppZbzPLAcYDcxq2WCIiUh+1Bnd3LwEmAXOB94En3X2ZmU0zs3EAZna0mRUB3wF+Z2bLGrLQKdIsmodSRPvS/KTLfoD2pUUy931qPhcRkWZMd6iKiKQhBXcRkTTU4oO7mT1oZl+Y2XtxaQea2f+Y2YfR+wFRupnZvdEwCkvMbGjcZy6O8n9oZhfHpQ8zs6XRZ+41s0RdQ1OxH93N7BUze9/MlpnZdS14X1qb2Xwzezfal9uj9N5m9lZUrieiC/SYWatofmW0vFfcum6O0leY2elx6TUOiZHi/ck0s0Vm9lwL349V0fe/2MwWRmkt7u8r2lYnM3vKzP4d/c8c21L3pcG4e4t+AccDQ4H34tLuAiZH05OBn0fTY4EXCX33jwHeitIPBD6O3g+Ipg+Ils0Hjo0+8yIwpoH241BgaDSdC3xAGO6hJe6LAe2j6WzgraiMTwLjo/TfAhOj6auB30bT44Enoul84F2gFdAb+AjIjF4fAd8AcqI8+Q34N/afhKE1novmW+p+rAI6V0prcX9f0bb+CFwRTecAnVrqvjTYMWrqAqToi+5FxeC+Ajg0mj4UWBFN/w44v3I+4Hzgd3Hpv4vSDgX+HZdeIV8D79OfgVNb+r4AbYF3CHc1bwSyovRjgbnR9Fzg2Gg6K8pnwM3AzXHrmht9rvyzUXqFfCkufzfgJeBk4LmoXC1uP6L1r6JqcG9xf19AB+ATog4hLXlfGvLV4ptlqnGwu68HiN4PitITDaXQtZb0ogTpDSo6nR9CqPG2yH2JmjIWA18A/0OooW720LW28vbLyxwt3wLkUfd9bAj3AD8EYuMm5dEy9wPCneV/M7O3LQwFAi3z7+sbwAbgoai57H4za0fL3JcGk67BvTrVDaVQ1/QGY2btgaeB6919a01ZE6Q1m31x91J3H0yo+Q4H+tWw/Wa5L2b2LeALd387PrmGbTfL/Ygz0t2HEkZ4vcbMjq8hb3PelyxCU+xv3H0I8DWhGaY6zXlfGky6BvfPzexQgOj9iyi9uqEUakrvliC9QZhZNiGwz3L3P0XJLXJfYtx9M/Aqoa2zk5nFxjOK3355maPlHYFN1H0fU20kMM7MVgGzCU0z97TA/QDA3ddF718AzxB+dFvi31cRUOTub0XzTxGCfUvcl4bT1O1CKWqD60XFNve7qXhh5a5o+gwqXliZH6UfSGjDOyB6fQIcGC1bEOWNXVgZ20D7YMDDwD2V0lvivnQBOkXTbYDXgW8B/4+KFyKvjqavoeKFyCej6aOoeCHyY8JFyKxoujd7L0Qe1cB/Yyey94Jqi9sPoB2QGzf9BjC6Jf59Rdt6HTgimp4a7UeL3JcGO0ZNXYAUfMmPA+uBPYRf3MsJ7ZwvAR9G77EvzAgPHvkIWAoUxK3nMmBl9Lo0Lr0AeC/6zH1UuoiTwv04jnDqtwRYHL3GttB9GQgsivblPeDHUfo3CL0QVhICZKsovXU0vzJa/o24dU2JyruCuB4L0bH5IFo2pRH+zk5kb3BvcfsRlfnd6LUstq2W+PcVbWswsDD6G3uWEJxb5L401EvDD4iIpKF0bXMXEdmvKbiLiKQhBXcRkTSk4C4ikoYU3EVE0pCCu4hIGlJwFxFJQ/8/b02i9vf88wQAAAAASUVORK5CYII=\n",
"text/plain": [
"