Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save audhiaprilliant/5029484273c87828a721e041b0584d6a to your computer and use it in GitHub Desktop.

Select an option

Save audhiaprilliant/5029484273c87828a721e041b0584d6a to your computer and use it in GitHub Desktop.
End to end machine learning model deployment using flask
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "stone-passion",
"metadata": {},
"source": [
"# Machine Learning Model Dev"
]
},
{
"cell_type": "markdown",
"id": "organizational-sender",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"id": "african-convergence",
"metadata": {},
"source": [
"## Import packages"
]
},
{
"cell_type": "markdown",
"id": "unavailable-military",
"metadata": {},
"source": [
"There are some packages for doing descriptive analytics as follows:\n",
"- **pandas**: for data manipulation\n",
"- **numpy**: for linear algebra calculation\n",
"- **matplotlib**: for data visualization\n",
"- **seaborn**: for data manipulation\n",
"- **plotnine**: for data manipulation\n",
"\n",
"**Note**: that there are more than one package used for making a data visualization. The `plotnine` can be your choice if you are familiar with `ggplot2` on R programming. It will create your visualization beautifully"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "undefined-guide",
"metadata": {},
"outputs": [],
"source": [
"# Data frame manipulation\n",
"import pandas as pd\n",
"\n",
"# Matrices operation\n",
"import numpy as np\n",
"\n",
"# Data visualization with plotnine\n",
"from plotnine import *\n",
"import plotnine\n",
"\n",
"# Data visualization with matplotlib\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Data partitioning and cross validation\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.model_selection import KFold\n",
"\n",
"# Grid-search\n",
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"# Evaluation metrics\n",
"from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n",
"from sklearn.metrics import make_scorer\n",
"\n",
"# XGBoost ML model\n",
"import xgboost as xgb\n",
"\n",
"# Lightweight pipelining in Python\n",
"import joblib"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "infrared-scout",
"metadata": {},
"outputs": [],
"source": [
"# Ignore warnings\n",
"import warnings\n",
"warnings.filterwarnings('ignore', category = FutureWarning)"
]
},
{
"cell_type": "markdown",
"id": "flush-brand",
"metadata": {},
"source": [
"## Import data set"
]
},
{
"cell_type": "markdown",
"id": "standard-property",
"metadata": {},
"source": [
"After importing the data set into Python, the `df_train` is now our data frame. The data frame has a lot of functions and methods that will create spesific outputs about the characteristic of data frame. The method of `columns` will print out all the column names."
]
},
{
"cell_type": "markdown",
"id": "cellular-shower",
"metadata": {},
"source": [
"### Training set"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "subjective-truth",
"metadata": {},
"outputs": [],
"source": [
"# Import the training set\n",
"df_train = pd.read_csv(\n",
" filepath_or_buffer = 'https://raw.githubusercontent.com/dphi-official/Datasets/master/Loan_Data/loan_train.csv',\n",
" usecols = [i for i in range(1, 14)]\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "collect-pointer",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data dimension: 491 rows and 13 columns\n"
]
},
{
"data": {
"text/html": [
"<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>Loan_ID</th>\n",
" <th>Gender</th>\n",
" <th>Married</th>\n",
" <th>Dependents</th>\n",
" <th>Education</th>\n",
" <th>Self_Employed</th>\n",
" <th>ApplicantIncome</th>\n",
" <th>CoapplicantIncome</th>\n",
" <th>LoanAmount</th>\n",
" <th>Loan_Amount_Term</th>\n",
" <th>Credit_History</th>\n",
" <th>Property_Area</th>\n",
" <th>Loan_Status</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>LP002305</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" <td>Graduate</td>\n",
" <td>No</td>\n",
" <td>4547</td>\n",
" <td>0.0</td>\n",
" <td>115.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Semiurban</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>LP001715</td>\n",
" <td>Male</td>\n",
" <td>Yes</td>\n",
" <td>3+</td>\n",
" <td>Not Graduate</td>\n",
" <td>Yes</td>\n",
" <td>5703</td>\n",
" <td>0.0</td>\n",
" <td>130.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Rural</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>LP002086</td>\n",
" <td>Female</td>\n",
" <td>Yes</td>\n",
" <td>0</td>\n",
" <td>Graduate</td>\n",
" <td>No</td>\n",
" <td>4333</td>\n",
" <td>2451.0</td>\n",
" <td>110.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Urban</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>LP001136</td>\n",
" <td>Male</td>\n",
" <td>Yes</td>\n",
" <td>0</td>\n",
" <td>Not Graduate</td>\n",
" <td>Yes</td>\n",
" <td>4695</td>\n",
" <td>0.0</td>\n",
" <td>96.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>Urban</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>LP002529</td>\n",
" <td>Male</td>\n",
" <td>Yes</td>\n",
" <td>2</td>\n",
" <td>Graduate</td>\n",
" <td>No</td>\n",
" <td>6700</td>\n",
" <td>1750.0</td>\n",
" <td>230.0</td>\n",
" <td>300.0</td>\n",
" <td>1.0</td>\n",
" <td>Semiurban</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Loan_ID Gender Married Dependents Education Self_Employed \\\n",
"0 LP002305 Female No 0 Graduate No \n",
"1 LP001715 Male Yes 3+ Not Graduate Yes \n",
"2 LP002086 Female Yes 0 Graduate No \n",
"3 LP001136 Male Yes 0 Not Graduate Yes \n",
"4 LP002529 Male Yes 2 Graduate No \n",
"\n",
" ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n",
"0 4547 0.0 115.0 360.0 \n",
"1 5703 0.0 130.0 360.0 \n",
"2 4333 2451.0 110.0 360.0 \n",
"3 4695 0.0 96.0 NaN \n",
"4 6700 1750.0 230.0 300.0 \n",
"\n",
" Credit_History Property_Area Loan_Status \n",
"0 1.0 Semiurban 1 \n",
"1 1.0 Rural 1 \n",
"2 1.0 Urban 0 \n",
"3 1.0 Urban 1 \n",
"4 1.0 Semiurban 1 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data dimension\n",
"print('Data dimension: {} rows and {} columns'.format(len(df_train), len(df_train.columns)))\n",
"df_train.head()"
]
},
{
"cell_type": "markdown",
"id": "elegant-recorder",
"metadata": {},
"source": [
"### Testing data"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "surprised-organ",
"metadata": {},
"outputs": [],
"source": [
"# Import the testing set\n",
"df_test = pd.read_csv(\n",
" filepath_or_buffer = 'https://raw.githubusercontent.com/dphi-official/Datasets/master/Loan_Data/loan_test.csv'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "median-retreat",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data dimension: 123 rows and 12 columns\n"
]
},
{
"data": {
"text/html": [
"<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>Loan_ID</th>\n",
" <th>Gender</th>\n",
" <th>Married</th>\n",
" <th>Dependents</th>\n",
" <th>Education</th>\n",
" <th>Self_Employed</th>\n",
" <th>ApplicantIncome</th>\n",
" <th>CoapplicantIncome</th>\n",
" <th>LoanAmount</th>\n",
" <th>Loan_Amount_Term</th>\n",
" <th>Credit_History</th>\n",
" <th>Property_Area</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>LP001116</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" <td>Not Graduate</td>\n",
" <td>No</td>\n",
" <td>3748</td>\n",
" <td>1668.0</td>\n",
" <td>110.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Semiurban</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>LP001488</td>\n",
" <td>Male</td>\n",
" <td>Yes</td>\n",
" <td>3+</td>\n",
" <td>Graduate</td>\n",
" <td>No</td>\n",
" <td>4000</td>\n",
" <td>7750.0</td>\n",
" <td>290.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Semiurban</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>LP002138</td>\n",
" <td>Male</td>\n",
" <td>Yes</td>\n",
" <td>0</td>\n",
" <td>Graduate</td>\n",
" <td>No</td>\n",
" <td>2625</td>\n",
" <td>6250.0</td>\n",
" <td>187.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Rural</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>LP002284</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" <td>Not Graduate</td>\n",
" <td>No</td>\n",
" <td>3902</td>\n",
" <td>1666.0</td>\n",
" <td>109.0</td>\n",
" <td>360.0</td>\n",
" <td>1.0</td>\n",
" <td>Rural</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>LP002328</td>\n",
" <td>Male</td>\n",
" <td>Yes</td>\n",
" <td>0</td>\n",
" <td>Not Graduate</td>\n",
" <td>No</td>\n",
" <td>6096</td>\n",
" <td>0.0</td>\n",
" <td>218.0</td>\n",
" <td>360.0</td>\n",
" <td>0.0</td>\n",
" <td>Rural</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Loan_ID Gender Married Dependents Education Self_Employed \\\n",
"0 LP001116 Male No 0 Not Graduate No \n",
"1 LP001488 Male Yes 3+ Graduate No \n",
"2 LP002138 Male Yes 0 Graduate No \n",
"3 LP002284 Male No 0 Not Graduate No \n",
"4 LP002328 Male Yes 0 Not Graduate No \n",
"\n",
" ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n",
"0 3748 1668.0 110.0 360.0 \n",
"1 4000 7750.0 290.0 360.0 \n",
"2 2625 6250.0 187.0 360.0 \n",
"3 3902 1666.0 109.0 360.0 \n",
"4 6096 0.0 218.0 360.0 \n",
"\n",
" Credit_History Property_Area \n",
"0 1.0 Semiurban \n",
"1 1.0 Semiurban \n",
"2 1.0 Rural \n",
"3 1.0 Rural \n",
"4 0.0 Rural "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data dimension\n",
"print('Data dimension: {} rows and {} columns'.format(len(df_test), len(df_test.columns)))\n",
"df_test.head()"
]
},
{
"cell_type": "markdown",
"id": "urban-township",
"metadata": {},
"source": [
"## Data preprocessing"
]
},
{
"cell_type": "markdown",
"id": "elder-creature",
"metadata": {},
"source": [
"### Training data"
]
},
{
"cell_type": "markdown",
"id": "expected-fountain",
"metadata": {},
"source": [
"#### Scale measurement"
]
},
{
"cell_type": "markdown",
"id": "demographic-enclosure",
"metadata": {},
"source": [
"The method of `info` will show us the metadata or information about the columns in a data frame. It undirectly specifies the scale measurement of a given columns in a data frame. However, it can be misleading. So, we must modify the scale measurement or column types based on column characteristic."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "radical-stroke",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 491 entries, 0 to 490\n",
"Data columns (total 13 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Loan_ID 491 non-null object \n",
" 1 Gender 481 non-null object \n",
" 2 Married 490 non-null object \n",
" 3 Dependents 482 non-null object \n",
" 4 Education 491 non-null object \n",
" 5 Self_Employed 462 non-null object \n",
" 6 ApplicantIncome 491 non-null int64 \n",
" 7 CoapplicantIncome 491 non-null float64\n",
" 8 LoanAmount 475 non-null float64\n",
" 9 Loan_Amount_Term 478 non-null float64\n",
" 10 Credit_History 448 non-null float64\n",
" 11 Property_Area 491 non-null object \n",
" 12 Loan_Status 491 non-null int64 \n",
"dtypes: float64(4), int64(2), object(7)\n",
"memory usage: 50.0+ KB\n"
]
}
],
"source": [
"# Data frame metadata\n",
"df_train.info()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "northern-bulletin",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Loan_ID object\n",
"Gender object\n",
"Married object\n",
"Dependents object\n",
"Education object\n",
"Self_Employed object\n",
"Credit_History object\n",
"Property_Area object\n",
"dtype: object"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Change column types\n",
"df_train = df_train.astype({'Credit_History': object, 'Loan_Status': int})\n",
"df_train.select_dtypes(include = ['object']).dtypes"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "collectible-leave",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LP002112 1\n",
"LP002501 1\n",
"LP001421 1\n",
"LP001002 1\n",
"LP001384 1\n",
" ..\n",
"LP001698 1\n",
"LP001369 1\n",
"LP002447 1\n",
"LP002778 1\n",
"LP001164 1\n",
"Name: Loan_ID, Length: 491, dtype: int64 \n",
"\n",
"Male 393\n",
"Female 88\n",
"Name: Gender, dtype: int64 \n",
"\n",
"Yes 324\n",
"No 166\n",
"Name: Married, dtype: int64 \n",
"\n",
"0 276\n",
"1 85\n",
"2 78\n",
"3+ 43\n",
"Name: Dependents, dtype: int64 \n",
"\n",
"Graduate 388\n",
"Not Graduate 103\n",
"Name: Education, dtype: int64 \n",
"\n",
"No 398\n",
"Yes 64\n",
"Name: Self_Employed, dtype: int64 \n",
"\n",
"1.0 380\n",
"0.0 68\n",
"Name: Credit_History, dtype: int64 \n",
"\n",
"Semiurban 186\n",
"Urban 155\n",
"Rural 150\n",
"Name: Property_Area, dtype: int64 \n",
"\n"
]
}
],
"source": [
"# Summary statistics of categorical columns\n",
"for i in df_train.select_dtypes('object').columns:\n",
" print(df_train[i].value_counts(),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "friendly-landscape",
"metadata": {},
"source": [
"#### Handle missing values"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "reported-duration",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Loan_ID 0\n",
"Gender 10\n",
"Married 1\n",
"Dependents 9\n",
"Education 0\n",
"Self_Employed 29\n",
"ApplicantIncome 0\n",
"CoapplicantIncome 0\n",
"LoanAmount 16\n",
"Loan_Amount_Term 13\n",
"Credit_History 43\n",
"Property_Area 0\n",
"Loan_Status 0\n",
"dtype: int64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Check missing values\n",
"df_train.isna().sum()"
]
},
{
"cell_type": "markdown",
"id": "indian-burden",
"metadata": {},
"source": [
"**Note**: Consideration to remove missing values is based on a business logic. The concept of *garbage in garbage out* applies. Without any relevant domain knowledges of loan problem, the interpolation will lead to the biased result.\n",
"\n",
"Instead of dropping the missing values brutally, we try to inspect the relevant variables in the data in order to suggest the consideration for the next analysis"
]
},
{
"cell_type": "markdown",
"id": "composed-staff",
"metadata": {},
"source": [
"##### `Dependents`"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "pleasant-mortality",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of missing dependents is about 9 rows\n"
]
}
],
"source": [
"print('Number of missing dependents is about {} rows'.format(df_train['Dependents'].isna().sum()))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "prescribed-sarah",
"metadata": {},
"outputs": [],
"source": [
"# Replace missing valuess with \"0\"\n",
"df_train['Dependents'].fillna(value = '0', inplace = True)"
]
},
{
"cell_type": "markdown",
"id": "applied-interpretation",
"metadata": {},
"source": [
"##### `Self_Employed`"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "metropolitan-wings",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of missing Self_Employed is about 29 rows\n"
]
}
],
"source": [
"print('Number of missing Self_Employed is about {} rows'.format(df_train['Self_Employed'].isna().sum()))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "found-genesis",
"metadata": {},
"outputs": [],
"source": [
"# Replace missing values with \"No\"\n",
"df_train['Self_Employed'].fillna(value = 'No', inplace = True)"
]
},
{
"cell_type": "markdown",
"id": "finished-tuner",
"metadata": {},
"source": [
"##### `Loan_Amount_Term`"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "measured-bracelet",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"8\" halign=\"left\">Loan_Amount_Term</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>min</th>\n",
" <th>25%</th>\n",
" <th>50%</th>\n",
" <th>75%</th>\n",
" <th>max</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Loan_Status</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>143.0</td>\n",
" <td>341.790210</td>\n",
" <td>73.018891</td>\n",
" <td>36.0</td>\n",
" <td>360.0</td>\n",
" <td>360.0</td>\n",
" <td>360.0</td>\n",
" <td>480.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>335.0</td>\n",
" <td>341.086567</td>\n",
" <td>64.320411</td>\n",
" <td>12.0</td>\n",
" <td>360.0</td>\n",
" <td>360.0</td>\n",
" <td>360.0</td>\n",
" <td>480.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Loan_Amount_Term \\\n",
" count mean std min 25% 50% \n",
"Loan_Status \n",
"0 143.0 341.790210 73.018891 36.0 360.0 360.0 \n",
"1 335.0 341.086567 64.320411 12.0 360.0 360.0 \n",
"\n",
" \n",
" 75% max \n",
"Loan_Status \n",
"0 360.0 480.0 \n",
"1 360.0 480.0 "
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_train[['Loan_Amount_Term', 'Loan_Status']].groupby('Loan_Status').describe()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "elementary-stroke",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Percentile 20th: 360.0\n"
]
}
],
"source": [
"print('Percentile 20th: {}'.format(df_train['Loan_Amount_Term'].quantile(q = 0.2)))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "burning-cornwall",
"metadata": {},
"outputs": [],
"source": [
"# Replace missing values with \"360\"\n",
"df_train['Loan_Amount_Term'].fillna(value = 360, inplace = True)"
]
},
{
"cell_type": "markdown",
"id": "english-cargo",
"metadata": {},
"source": [
"##### `Credit_History`"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "standard-sauce",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>Credit History</th>\n",
" <th>No</th>\n",
" <th>Yes</th>\n",
" <th>All</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>6</td>\n",
" <td>68</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>74</td>\n",
" <td>306</td>\n",
" <td>380</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Credit History No Yes All\n",
"0 0 62 6 68\n",
"1 1 74 306 380"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cross tabulation of credit history and loan status\n",
"df_cred_hist = pd.crosstab(df_train['Credit_History'], df_train['Loan_Status'], margins = True).reset_index()\n",
"# Remove index name\n",
"df_cred_hist.columns.name = None\n",
"# Remove last row for total column attribute\n",
"df_cred_hist = df_cred_hist.drop([len(df_cred_hist) - 1], axis = 0)\n",
"df_cred_hist.rename(columns = {'Credit_History':'Credit History', 0:'No', 1:'Yes'}, inplace = True)\n",
"df_cred_hist"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "analyzed-setup",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of rows with Loan_Status is No but Credit_History is NaN : 12\n",
"Number of rows with Loan_Status is Yes but Credit_History is NaN : 31\n"
]
}
],
"source": [
"# Slice the data frame based on loan status\n",
"pos_cred_hist0 = df_train[(df_train['Credit_History'].isna()) & (df_train['Loan_Status'] == 0)]\n",
"pos_cred_hist1 = df_train[(df_train['Credit_History'].isna()) & (df_train['Loan_Status'] == 1)]\n",
"print('Number of rows with Loan_Status is No but Credit_History is NaN : {}'.format(len(pos_cred_hist0)))\n",
"print('Number of rows with Loan_Status is Yes but Credit_History is NaN : {}'.format(len(pos_cred_hist1)))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "metric-shield",
"metadata": {},
"outputs": [],
"source": [
"# Replace the missing values with a specific condition\n",
"credit_loan = zip(df_train['Credit_History'], df_train['Loan_Status'])\n",
"df_train['Credit_History'] = [\n",
" 0.0 if np.isnan(credit) and status == 0 else\n",
" 1.0 if np.isnan(credit) and status == 1 else\n",
" credit for credit, status in credit_loan\n",
" ]"
]
},
{
"cell_type": "markdown",
"id": "unauthorized-growth",
"metadata": {},
"source": [
"##### `Gender` and `Loan Amount`"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "south-amber",
"metadata": {},
"outputs": [],
"source": [
"# Drop missing values\n",
"df_train.dropna(axis = 0, how = 'any', inplace = True)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "applicable-thread",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Loan_ID 0\n",
"Gender 0\n",
"Married 0\n",
"Dependents 0\n",
"Education 0\n",
"Self_Employed 0\n",
"ApplicantIncome 0\n",
"CoapplicantIncome 0\n",
"LoanAmount 0\n",
"Loan_Amount_Term 0\n",
"Credit_History 0\n",
"Property_Area 0\n",
"Loan_Status 0\n",
"dtype: int64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Check missing value\n",
"df_train.isna().sum()"
]
},
{
"cell_type": "markdown",
"id": "sustainable-fence",
"metadata": {},
"source": [
"### Testing data"
]
},
{
"cell_type": "markdown",
"id": "naked-wright",
"metadata": {},
"source": [
"#### Scale measurement"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "compatible-structure",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 123 entries, 0 to 122\n",
"Data columns (total 12 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Loan_ID 123 non-null object \n",
" 1 Gender 120 non-null object \n",
" 2 Married 121 non-null object \n",
" 3 Dependents 117 non-null object \n",
" 4 Education 123 non-null object \n",
" 5 Self_Employed 120 non-null object \n",
" 6 ApplicantIncome 123 non-null int64 \n",
" 7 CoapplicantIncome 123 non-null float64\n",
" 8 LoanAmount 117 non-null float64\n",
" 9 Loan_Amount_Term 122 non-null float64\n",
" 10 Credit_History 116 non-null float64\n",
" 11 Property_Area 123 non-null object \n",
"dtypes: float64(4), int64(1), object(7)\n",
"memory usage: 11.7+ KB\n"
]
}
],
"source": [
"# Data frame metadata\n",
"df_test.info()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "developing-gabriel",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Loan_ID object\n",
"Gender object\n",
"Married object\n",
"Dependents object\n",
"Education object\n",
"Self_Employed object\n",
"Credit_History object\n",
"Property_Area object\n",
"dtype: object"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Change column types\n",
"df_test = df_test.astype({'Credit_History': object})\n",
"df_test.select_dtypes(include = ['object']).dtypes"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "friendly-chair",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LP002515 1\n",
"LP001098 1\n",
"LP001665 1\n",
"LP001891 1\n",
"LP002948 1\n",
" ..\n",
"LP001744 1\n",
"LP002368 1\n",
"LP002002 1\n",
"LP001699 1\n",
"LP001653 1\n",
"Name: Loan_ID, Length: 123, dtype: int64 \n",
"\n",
"Male 96\n",
"Female 24\n",
"Name: Gender, dtype: int64 \n",
"\n",
"Yes 74\n",
"No 47\n",
"Name: Married, dtype: int64 \n",
"\n",
"0 69\n",
"2 23\n",
"1 17\n",
"3+ 8\n",
"Name: Dependents, dtype: int64 \n",
"\n",
"Graduate 92\n",
"Not Graduate 31\n",
"Name: Education, dtype: int64 \n",
"\n",
"No 102\n",
"Yes 18\n",
"Name: Self_Employed, dtype: int64 \n",
"\n",
"1.0 95\n",
"0.0 21\n",
"Name: Credit_History, dtype: int64 \n",
"\n",
"Urban 47\n",
"Semiurban 47\n",
"Rural 29\n",
"Name: Property_Area, dtype: int64 \n",
"\n"
]
}
],
"source": [
"# Summary statistics of categorical columns\n",
"for i in df_test.select_dtypes('object').columns:\n",
" print(df_test[i].value_counts(),'\\n')"
]
},
{
"cell_type": "markdown",
"id": "historical-light",
"metadata": {},
"source": [
"#### Handle missing values"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "norman-quarter",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Loan_ID 0\n",
"Gender 3\n",
"Married 2\n",
"Dependents 6\n",
"Education 0\n",
"Self_Employed 3\n",
"ApplicantIncome 0\n",
"CoapplicantIncome 0\n",
"LoanAmount 6\n",
"Loan_Amount_Term 1\n",
"Credit_History 7\n",
"Property_Area 0\n",
"dtype: int64"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Check missing values\n",
"df_test.isna().sum()"
]
},
{
"cell_type": "markdown",
"id": "naked-member",
"metadata": {},
"source": [
"##### `Dependents`"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "meaningful-exception",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of missing values in Dependents is about 6 rows\n"
]
}
],
"source": [
"print('Number of missing values in Dependents is about {} rows'.format(df_test['Dependents'].isna().sum()))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "mysterious-digit",
"metadata": {},
"outputs": [],
"source": [
"# Replace missing values with \"0\"\n",
"df_test['Dependents'].fillna(value = '0', inplace = True)"
]
},
{
"cell_type": "markdown",
"id": "outer-canal",
"metadata": {},
"source": [
"##### `Self_Employed`"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "ready-lawyer",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of missing values in Self_Employed is about 3 rows\n"
]
}
],
"source": [
"print('Number of missing values in Self_Employed is about {} rows'.format(df_test['Self_Employed'].isna().sum()))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "agricultural-brisbane",
"metadata": {},
"outputs": [],
"source": [
"# Replace missing values with \"No\"\n",
"df_test['Self_Employed'].fillna(value = 'No', inplace = True) "
]
},
{
"cell_type": "markdown",
"id": "demanding-baseline",
"metadata": {},
"source": [
"##### `Loan_Amount_Term`"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "genetic-motor",
"metadata": {},
"outputs": [],
"source": [
"# Replace missing values with \"360\"\n",
"df_test['Loan_Amount_Term'].fillna(value = 360, inplace = True)"
]
},
{
"cell_type": "markdown",
"id": "thrown-performer",
"metadata": {},
"source": [
"##### `Gender`, `Married`, `LoanAmount` and `Credit_History`"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "incomplete-asbestos",
"metadata": {},
"outputs": [],
"source": [
"# Drop missing values\n",
"df_test.dropna(axis = 0, how = 'any', inplace = True)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "neural-label",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Loan_ID 0\n",
"Gender 0\n",
"Married 0\n",
"Dependents 0\n",
"Education 0\n",
"Self_Employed 0\n",
"ApplicantIncome 0\n",
"CoapplicantIncome 0\n",
"LoanAmount 0\n",
"Loan_Amount_Term 0\n",
"Credit_History 0\n",
"Property_Area 0\n",
"dtype: int64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Check missing values\n",
"df_test.isna().sum()"
]
},
{
"cell_type": "markdown",
"id": "pending-collectible",
"metadata": {},
"source": [
"## Explanatory data analysis"
]
},
{
"cell_type": "markdown",
"id": "black-dragon",
"metadata": {},
"source": [
"### Number of customers by loan status"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "single-flight",
"metadata": {},
"outputs": [],
"source": [
"# Data aggregation between default and not default customers\n",
"df_viz_1 = df_train.groupby(['Loan_Status'])['Loan_ID'].count().reset_index(name = 'Total')\n",
"# Map the loan status\n",
"df_viz_1['Loan_Status'] = df_viz_1['Loan_Status'].map(\n",
" {\n",
" 0: 'Not default',\n",
" 1: 'Default'\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "considerable-stadium",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>Loan_Status</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Not default</td>\n",
" <td>134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Default</td>\n",
" <td>330</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Loan_Status Total\n",
"0 Not default 134\n",
"1 Default 330"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Show the data\n",
"df_viz_1"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "featured-healing",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Figure size\n",
"plt.figure(figsize = (12, 8))\n",
"\n",
"# Customize colors and other settings\n",
"colors = ['#80797c','#981220']\n",
"\n",
"# Explode 1st slice\n",
"explode = (0.1, 0)\n",
"\n",
"# Create a pie chart\n",
"plt.pie(\n",
" x = 'Total',\n",
" labels = 'Loan_Status',\n",
" data = df_viz_1,\n",
" explode = explode,\n",
" colors = colors,\n",
" autopct = '%1.1f%%',\n",
" shadow = False,\n",
" startangle = 0\n",
")\n",
"\n",
"# Title and axis\n",
"plt.title('Number of customers by loan status', fontsize = 18)\n",
"plt.axis('equal')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "velvet-clark",
"metadata": {},
"source": [
"### Number of customers by loan status and the dependents"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "coral-liberty",
"metadata": {},
"outputs": [],
"source": [
"# Data aggregation between loan status and dependents\n",
"df_viz_2 = df_train.groupby(['Loan_Status', 'Dependents'])['Loan_ID'].count().reset_index(name = 'Total')\n",
"# Map the loan status\n",
"df_viz_2['Loan_Status'] = df_viz_2['Loan_Status'].map(\n",
" {\n",
" 0: 'Not default',\n",
" 1: 'Default'\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "limited-biotechnology",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>Loan_Status</th>\n",
" <th>Dependents</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Not default</td>\n",
" <td>0</td>\n",
" <td>77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Not default</td>\n",
" <td>1</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Not default</td>\n",
" <td>2</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Not default</td>\n",
" <td>3+</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Default</td>\n",
" <td>0</td>\n",
" <td>191</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Default</td>\n",
" <td>1</td>\n",
" <td>52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Default</td>\n",
" <td>2</td>\n",
" <td>62</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Default</td>\n",
" <td>3+</td>\n",
" <td>25</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Loan_Status Dependents Total\n",
"0 Not default 0 77\n",
"1 Not default 1 30\n",
"2 Not default 2 13\n",
"3 Not default 3+ 14\n",
"4 Default 0 191\n",
"5 Default 1 52\n",
"6 Default 2 62\n",
"7 Default 3+ 25"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Show the data\n",
"df_viz_2"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "pending-joyce",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 800x480 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<ggplot: (99639487464)>"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plotnine.options.figure_size = (8, 4.8)\n",
"(\n",
" ggplot(\n",
" data = df_viz_2\n",
" )+\n",
" geom_bar(\n",
" aes(\n",
" x = 'Dependents',\n",
" y = 'Total',\n",
" fill = 'Loan_Status'\n",
" ),\n",
" stat = 'identity',\n",
" position = 'fill',\n",
" width = 0.5\n",
" )+\n",
" labs(\n",
" title = 'Number of customers by loan status and dependents',\n",
" fill = 'Loan status'\n",
" )+\n",
" xlab(\n",
" 'Dependents'\n",
" )+\n",
" ylab(\n",
" 'Frequency'\n",
" )+\n",
" scale_x_discrete(\n",
" limits = ['0', '1', '2', '3+']\n",
" )+\n",
" scale_fill_manual(\n",
" values = ['#981220','#80797c'],\n",
" labels = ['Default', 'Not Default']\n",
" )+\n",
" theme_minimal()\n",
")"
]
},
{
"cell_type": "markdown",
"id": "dutch-haven",
"metadata": {},
"source": [
"### Number of customers by loan status and educations"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "nervous-likelihood",
"metadata": {},
"outputs": [],
"source": [
"# Data aggregation between loan status and dependents\n",
"df_viz_3 = df_train.groupby(['Loan_Status', 'Education'])['Loan_ID'].count().reset_index(name = 'Total')\n",
"# Map the loan status\n",
"df_viz_3['Loan_Status'] = df_viz_3['Loan_Status'].map(\n",
" {\n",
" 0: 'Not default',\n",
" 1: 'Default'\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "mechanical-expansion",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>Loan_Status</th>\n",
" <th>Education</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Not default</td>\n",
" <td>Graduate</td>\n",
" <td>101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Not default</td>\n",
" <td>Not Graduate</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Default</td>\n",
" <td>Graduate</td>\n",
" <td>266</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Default</td>\n",
" <td>Not Graduate</td>\n",
" <td>64</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Loan_Status Education Total\n",
"0 Not default Graduate 101\n",
"1 Not default Not Graduate 33\n",
"2 Default Graduate 266\n",
"3 Default Not Graduate 64"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Show the data\n",
"df_viz_3"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "cross-johnston",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 800x480 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<ggplot: (99639166808)>"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plotnine.options.figure_size = (8, 4.8)\n",
"(\n",
" ggplot(\n",
" data = df_viz_3\n",
" )+\n",
" geom_bar(\n",
" aes(\n",
" x = 'Education',\n",
" y = 'Total',\n",
" fill = 'Loan_Status'\n",
" ),\n",
" stat = 'identity',\n",
" position = 'fill',\n",
" width = 0.5\n",
" )+\n",
" labs(\n",
" title = 'Number of customers by loan status and educations',\n",
" fill = 'Loan status'\n",
" )+\n",
" xlab(\n",
" 'Educations'\n",
" )+\n",
" ylab(\n",
" 'Frequency'\n",
" )+\n",
" scale_x_discrete(\n",
" limits = ['Graduate', 'Not Graduate']\n",
" )+\n",
" scale_fill_manual(\n",
" values = ['#981220','#80797c'],\n",
" labels = ['Default', 'Not Default']\n",
" )+\n",
" theme_minimal()\n",
")"
]
},
{
"cell_type": "markdown",
"id": "operational-engine",
"metadata": {},
"source": [
"### The distribution of applicant incomes by loan status"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "charged-trader",
"metadata": {},
"outputs": [],
"source": [
"# Slice the columns\n",
"df_viz_4 = df_train[['ApplicantIncome', 'Loan_Status']].reset_index(drop = True)\n",
"# Map the loan status\n",
"df_viz_4['Loan_Status'] = df_viz_4['Loan_Status'].map(\n",
" {\n",
" 0: 'Not default',\n",
" 1: 'Default'\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "strategic-tokyo",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>ApplicantIncome</th>\n",
" <th>Loan_Status</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4547</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5703</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4333</td>\n",
" <td>Not default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4695</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6700</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ApplicantIncome Loan_Status\n",
"0 4547 Default\n",
"1 5703 Default\n",
"2 4333 Not default\n",
"3 4695 Default\n",
"4 6700 Default"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Show the data\n",
"df_viz_4.head()"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "figured-level",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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IiKywik5E3zff/TY6GiukC/EAJ7nda+2kTMAF1UoT07G3T0965qp/8err8mN7BopxXH8gcXum4iIiIisfErOBBe7x911x51x9b7nr86RM4BiNhd3ZTK9zdR1znHxjy4aN7PXAQ9e5K6JiIiIyAqn5EzAePztt92er971fT8TlcurbuQMICoU3Fwe+y033jR1+623ZSuVymcBW8SuiYiIiMgKp+RslctkMvi+v/7Wv/wlD8liIADxKk3OIBk9S39tKtn6wYXfGzWz44FXLl6vRERERGSlU3K2ypkl+cf42HhyjTPf73axW9HXOJtNeWLC4Rzd3d19zdTftXNn+crLfjYaRdFngf0XuXsiIiIiskIpOZPd+JlMd1Qux7PXXLlc7ChPTNDd3b2+2X2uuOzy0W1b742jSuV8oGsRuyciIiIiK5SSM9mN7/s9canU7m60XSk3ge/7XV3dXU2Nnjnn+MY55+4olUrHxHH8eXT+mYiIiIjMkZIz2U3G99dEpdV7vllVXIkoTU7Gfb19m5vdJzs+Hp37lXO2xXH8SufcBxezfyIiIiKy8ig5k914vt8dlUqrPjkDKIyOxX4ms6a7u7u/2X3uuvPO4jfPOXdbHMfvdrr+mYiIiIjMgZIzuU8mk+kxg6io5AwgLlcojmej/v7+va26ckoTbrnp5qlvff28rbFz/+piN98ErR94DNDUBbFFREREZPlTcib3yXRl1kSVinPx6l2psV5hdCx2ceyvXbt2n7nsd9MNN6YJWvyvzrn3zbHZv4nL5buBX8eVyj3A8+e4v4iIiIgsQ0rO5D6ZTFdfVChq1KyWi5natj3q6uoa6O/v32suu950w41T55/7jXudc+8H3tbkbg+Jo+iHN3z1G/FZhzz0lmv++38KLo7PB542576LiIiIyLKi5Ezu05XJ9FXyBSVndaJSyU3eu63S09OzYWDdwJCZNf13c+P1N0yGF3x3u3Pu48DLZqneHRVL37jrp1fkf/6u03aWsjl31Yf+a+S6L355LC6XvwUcsKAHIiIiIiIdTcmZAOD7fpfne36lUFjV1zibTqVQcLnhrWXfrH9wcPCQZi9QDXDtH67O/fTiS3bGcfw14IQZqr49KhYPufyt79yJuz9H/tX7zty180/XE5VK3wQy834QIiIiItLRlJwJAN3d3f1RpeLicrndXelYcalE7u7hSik3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\n",
"text/plain": [
"<Figure size 800x480 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<ggplot: (99639487473)>"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plotnine.options.figure_size = (8, 4.8)\n",
"(\n",
" ggplot(\n",
" data = df_viz_4\n",
" )+\n",
" geom_density(\n",
" aes(\n",
" x = 'ApplicantIncome',\n",
" fill = 'Loan_Status'\n",
" ),\n",
" color = 'white',\n",
" alpha = 0.85\n",
" )+\n",
" labs(\n",
" title = 'The distribution of applicant incomes by loan status'\n",
" )+\n",
" scale_fill_manual(\n",
" name = 'Loan Status',\n",
" values = ['#981220','#80797c'],\n",
" labels = ['Default', 'Not Default']\n",
" )+\n",
" xlab(\n",
" 'Applicant income'\n",
" )+\n",
" ylab(\n",
" 'Density'\n",
" )+\n",
" theme_minimal()\n",
")"
]
},
{
"cell_type": "markdown",
"id": "antique-invalid",
"metadata": {},
"source": [
"### The distribution of loan amount by loan status"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "scientific-cleaner",
"metadata": {},
"outputs": [],
"source": [
"# Slice the columns\n",
"df_viz_5 = df_train[['LoanAmount', 'Loan_Status']].reset_index(drop = True)\n",
"# Map the loan status\n",
"df_viz_5['Loan_Status'] = df_viz_5['Loan_Status'].map(\n",
" {\n",
" 0: 'Not default',\n",
" 1: 'Default'\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "legendary-medline",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>LoanAmount</th>\n",
" <th>Loan_Status</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>115.0</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>130.0</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>110.0</td>\n",
" <td>Not default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>96.0</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>230.0</td>\n",
" <td>Default</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" LoanAmount Loan_Status\n",
"0 115.0 Default\n",
"1 130.0 Default\n",
"2 110.0 Not default\n",
"3 96.0 Default\n",
"4 230.0 Default"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Show the data\n",
"df_viz_5.head()"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "overhead-guarantee",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAHVCAYAAAAO8kH+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAACTGklEQVR4nOzddZgb19k28PuZGUnLYIq9iRPHsR0HHYamwTZUUNs0xbRNSl8hZW7fQvq2eVNmhiSFtCk3KqVBhxwz4xoWbK9hvSSWBs73x4wSWV6QdgUL9++6dHl38JH2SJ5H55xnRCkFIiIiIiIiKi2t0gEQERERERFNBUy+iIiIiIiIyoDJFxERERERURkw+SIiIiIiIioDJl9ERERERERlwOSLiIiIiIioDJh8ERERERERlQGTLyIiIiIiojJg8kVERERERFQGTL5oyhOReSKiROSOSscCACKyVETaR1pWhjiu8l6X24ZbVsZ4yv4aFIOIvEpE1otI3Hvtrhpm2zu8beaVLUAqq0q8hybqe4eIaDJi8kWTjndhk+/jqkrHW0oi0uRd0F9V6Vjy4cX6ykrHUSwishDAHwCEAbwfwJsBbKtoUFQ03hc3d4jIOZWOZSoq5usvIreJyIfGHhUR0fCMSgdAVAJvzvn9NACfAfAUgJ/lrNsGoLocQY3RdQBkFPs1AfiC9/PSAvd9Eu5rY47ivKP1BQC/AvD3QdaN9jWopKsB+AB8UCm1rtLBUNHNg9tm2wGsr2QgU9Q8FO/1v8073nfGeBwiomEx+aJJRyn12+zfvV6fzwDYk7vOWz+vLIGNgVIqXa5ziUidUiqqlHIAJMt13pGU8zUootnev30VjYKIiIjGBQ47JMoiIi8TkZUikhCRwyLyExGpGWS740Tk+yLSLiJpETkkIr8tJJETkQUi8jcRGRCRiIg8JCJLhth2sHlgp4nI70VkrxfDERFZISJv89bfBqDN2/wLWUMt27OOoUTkXm8eylIRCQPY5K0bdm6KiNwuIttFJCUibSLyeRExcrYZcq5J5tzZ5/JW3Zo9NHSkY4nIxSLyTxHpFZGkiGwTkc+JiD9nu8x8qlNF5P9EpNOLfZuIvHGwGIeIWxORD4jIBq+dhEXkMRG5NmubeV7sX/QWteW+9oUQkeNF5Bcist/7W+8TkZ+JyJxBYvuM91od8LbdLyK/EpETBzlu5u9/qbdPTET6vXY1M8/YFovID0Vks9eWEyKySUQ+JiJ6zra3eed8kRfnHu9vtkFEbvS2Od37ew54j1+LSP0Q573fe++lvGN9Q0QacrYbch7dEO+rdm/54qw4oiLyLxE5Jfu4AB73fr0nq80uzed1844x7HtIRD7uHfPGIfbf6rXjUf1fXsB7p8V7bdd626ZEpFVE7hSR6pxtn/vc8B6bvGPv97bXkQcRuURE/iEiXd75DovIEyIS9NbfgRFefxF5j4j813u/pL1j/EVEzsw5lwJwJYCTZJBh6YO1k+x9xfscy1p2i4g8m/W67hP3s35xPs+diCY39nwRPe9GAO8D8FMAdwN4EYB3eevendlIROYCWAagDsAvAbQCOB7AewBcJyIXKKU6hztR1jGaAPwE7vDHS+EODewZKVARmQ73wkPz4m0D0AzgbABXePE/CeDDAL4N4G8A/urtHs053AUAbgZwD4DfATjmQncQ74f7nH8CoBfAq+AmGvPhDt8p1Da4w0V/g8GHhw5KRG4AEAIwAOCHAA4BeAmA/wXwAhF5qdeDl+1XABwA3/X+fS+A+0Rkj1JqeR6nvdeL9WkAn4b7er0DwH9F5C1e72q3t81NcF+bDwM4gmNf+3ye4/EAVgGYBeDnADYCWALgnQBuEJELlVKHvM39AD4B4M8A/gEgArdNvA3Ai0TkbKVUb84pzgHwL7ivy+8BnO89n2YAN+QR4lVwL1z/AaAD7lDVlwD4Otz28N5B9vmKF+uPAdgAPgDgARG5Ge576o/e8S4FcCuAlPd8M6/JOXDbt+4dYw+AFwL4KIAXi8gLlFLxPGIfyvEAngDwAIBPAlgIt82HROQsr039Fe6Q0s/Aba9PefseOvZwg8rnPXQPgC/Bfe7/yd5ZRC6DO6T6jkHa+IgKfO+cDeDVcJ9zG9zhv1fBbf/nevvlejeAFgC/gPt+uAnuaxWB+/cfLrZFAB7x9vshgAMAZsL9rLrEizuf1//jAJ4F8H24n6uL4Lbta0XkXKXUbm+7NwP4HwAz4L5XMwqenykitwD4LYBn4P49o3D/zi+C2462F3pMIppklFJ88DGpH3AvEhSAe4dYP89bHwcwP2fdgwDSAGqzlv0d7sVS7rbz4F5Y3JNHTL/2zvnKnOWf8pa35yxfmr0MQNDb7rUjnCfz3O4YYr3yHjcM87rdNsiyGICTspZrcC+IFIAXDhX3IOe+d6Rlw7wGOtwLwRiAk3O2vds71puylt3hLfs3AC1r+Vzvb/y7PP5u13jH+AcAPWv5TLgXfX0A6gY557w82+ox22e1ldfmbPsWb/kvspYJgOpBjvtib9uPD/J6OwAuy1n+E2/dojxirh1i+X0ALABzspbd5h13A4BA1vKzs2LJfZ5/9/4+2a/rk962l+Rs+3nvOJ/N528wWPuEO39IAXjDEO/N64Z7j+TxemX2yfc9dB/ceZfH5RznXriJ69w8znnU80Th751qADLIcb/sbXvhIM/vAIDmnOe3FUBXHvF+wDvGRXm+loO+/oO1TQBneO3phyO1hTzXHfWZBTcpDAMw8m0TfPDBx9R6cNgh0fP+ppTak7PsYbjfrp4MACLSCODlcC/gwyIyI/OA+w3ncgDXD3cSb4jQKwFsVUr9PWf1d5Bf70hmDtFLRaQpj+2Hs0Ep9WCB+/xWKdWR+UW535Bnvs1+9Rjjydd5cJPLXyul2nLW3TFMLN9WWT0FSqm9AHbA/VZ8JJnjfVkpZWcdI/MNfRPcb7iLIqutbFdK/TFn9W8A7AZwk4iIF4dSSiUy+4pb7XIG3GIEAwAuHuQ0zyqlnslZ9rD374iviVIqlhVvQESmeed8EO5F/vmD7PYDpVQq6xgb4V6wHhjkeT4B9z04zzvHTACXA/ivOran8htwE4qxtsEupdTvc5bl/ZrkKd/30E/gjlK5LbPA+xx6DYD/eO23UAW9d5RSCaWU8s7ty/obZ16TwdrV3UqpvqxjOAAeBTBHROpGiC+z36tyhzUWItM2xdXgxXwI7vt9sJiLoQ9ALYDgaIeDEtHkxg8GouflJl7A80MAp3v/LoL7vrkF7pCY3MeLARw3wnlmwR2qtjV3hVIqCfeCelhKqafgDkF7C4Buced6fVNELh1p30G0jmKfY2LPWrZgFMcbjfnev1tyVyh32OcAgFNy12Hov/P0QZbnfU54c+WGOOdozYTbVgZ7jspb3uw9ADx3X7FlABJwLwQzbbMRwLRBzpFPux+SiNSIyF0i0ga3QEuPd75fe5vke86+YZZnxzLc3z0O9/0z1r/BmF6TPOX1HvLe61sAvD1ru1sA1MD9DBiNgt47IqKLyCdFZBuO/hsv9TYpdru6H+5Q2E8B6BORJ0Xky7lztUYiIleIyCNwE/IBPP9eOHOImIvhywB2AfgLgCPevLUPi8hI/y8Q0RTB5IvoefYw6zIlzjPvmT8CuHaIx7A9X3nIq5y6Uur/wZ3z8QkA++BenC0Tke8VeL6xzI05KqScf3N/fo7kFOYYpczrNOg5hjHU3zmf173cpe4Leo7i3iMtMxfmI3CHp2baZQ8G/8zPp90P53dw50U9DHfuzI3e+T7lrS/knPnEUujffbjthmqHY31NRmuw9xDgzutcKCJXer+/E0AXgH+O8jyFvobfhNsrtxnu58xL4f6Nb/PWF7VdKaVMpdTL4PaafhHucO4PA9goIh/NJ2ARuQBuT9tcuPO5Xgn3dhXXwk1yC7n+yftzzOtJPNM718/gJnnfALBbRC4v4JxENEmx4AZRYXbBnWtSrZR6ZJTHOAz3YuL03BUiUgX3W+kRi24AgFJqO9wJ3N8WtyrjgwDeLyJf94YjFZqY5OuY2OHOpQCO7rnrxeDDzuYPsqxQu7x/j/k23Cto0og8ehFHcc7r4T7XFTnrMnEU85yZtjLYcxQvjj483zv0Frg9E1eqrIITIlKLrN6xYvGGvwXhDqH7fznrFhb7fJ7M6zvYa1INt23tylqcKTAyDe58rmzz4c7/Ga2xvL/yfQ8Bbi/iVwC8U0RicIuk3Jk99LVAhb533gLgKaXUa3K2HbQKY7EopdYCWOudaxrcYd13ish3lVIWhn/93wj3GufG3OHkXsGi3NtoDHesgj7HlFIm3C8jHvbOdw7cojl3oIjDkoloYmLPF1EBlFI9cIfDvFRErh5sm5GGl3hzHx4AcLrXU5HtQ3CrKA7Lm3Nx1PvXu9jOVOfKDKmJ5vxeLG8SkZOy4tHwfE/HX7O22wGgXkQuytn/40McN4r8Y10H92L6zdmxeD7v/fuXPI+Vr8xz+0z26+/NJbkdQD/cb9uLwmsrfwew2KsEmO0WuEPD/pqZjwO3t0Hh2M/2zw2yrBgyc+eO6skQtzT8R0pwvsz8uqcAXD9Iu/oo3PdP9t99h/fvi3NifBOAo0r1j8JY3l/5voeglBoA8Ae487A+Aa/QyijOmVHoe+eYJE9EfHCrHRad9346inKrdLYBCMCdUwUM//pnYs5tm+/G4EPDowCaM/Mnc+T9OSaD36JhK9xhwKUa6khEEwh7vogK9x64ZcYfFpH7AKyGexF6EtzhOKswcrn1z8It4/0HEfkJ3N6rS+D2IuzGyO/NtwD4iIj8He632Am4ZZjfAWANvPlHSqkeEdkF4PUishvuZPOYUuofBTzfwWwHsEJEfozny2RfDbcH5Kms7X4K94L47yLyXbhDHF8KtzDFYJbDLRX+SQCd7lNQ9w+2oVLKFpH3wK0Qt8p7HQ/DHfb2EgD/hTskrmiUUo+JyG/gDq97XET+Bvdi/x1w5/K9RSlVcDn5EXwGbuLwey/h34TnS83vhTukKuNPcG8b8IS49x4SuO3sNLil7otKKRURkQcB3CIiKbi9gXPgDk3Lt+T6aHwAbsXDx7w2mCk1/0a4lRS/lbXtI3Avfr8kIrMA7IT7XgnCfe/4xhDHVrg9k+8VkTjc5PuwUuqxPPbN9z2U8RMAb4VbaOMhpVT7aIMexXvnTwDeIyJ/BvAQ3CTiTSjekOVcnxW3FP4/4f5tHbiVDa+DWxhpwNtuuNf/r3C/APiPiPzMi/Vy7xiDfcYuB/AyAD/w5kzaAB5TSh1GYZ9j/xWRCNxCMZ1wPx9eD3fu5j2jf0mIaNKodLlFPvgo9QP5l5q/Y5B1t3nrrspZ3gzgLrg9TUm4ldq2wR3jf3GecS2C26sRhnsB8RDc4URLMXKp+XPg/kfeCvcb2yi8C0wATTn7XgT3njMx5JSxH+F1ybxutw22DO490bbDvQdTB4AvYJDyynAvdlZ72x2Ge1+mxsHODfc+OA95r4mCV1disNcga/klcHsj+7xz7IDb0+PP2e4OFFByfJi/mwbgg3Dvt5X0/naPIasEeT7nHOLYg24P4AS4PR1dcMuO7/fa2pxBjvE2uAlawnu97/P2bwewNGfbQf/+g/3th4l5GtzEYJ/3emyH2yPwokHaz20Y5P3krTsmvhHeg6fB7Q3qhjt0sB3u3KTGQY5xitdGot7f618AFg/2dx8mjnkY5HMCbrKy1nvuarB9h3ptked7KGvfNd6+r86nPRXxvVMNd9hju7ddG4D/817Do16T4doO8nw/eMe43ztPHG6xjPVeu6rK9/WHW5l2FdzPvl64yebpQ/zda+HeY+4Qnu9BviprfV6fY3C/iHkQ7ns1s+1SAK8p5G/GBx98TN6HKFWqKSFERERULCKyHG4SOFe584qIiGiC4ZwvIiKicU5ELoF7b6pfMvEiIpq42PNFREQ0TonINXCr6n0CbqGIhcqdh0RERBMQC24QERGNX5+HW0xkB4CbmXgREU1s7PkiIiIiIiIqA875IiIiIiIiKgMmX0RERERERGXA5IuIiIiIiKgMmHwRERERERGVAZMvIiIiIiKiMmDyRUREREREVAZMvoiIiIiIiMqAydcE0dXVFejq6rqjq6srUOlYJivTNOeYpnmHaZpzKh3LZMV2XHpsx6XHdlx6bMelx3ZMVBlMviaOAIAveP9SacyB+xrzP/vSYTsuPbbj0mM7Lj2249JjOyaqACZfREREREREZcDki4iIiIiIqAyYfBEREREREZUBky8iIiIiIqIyMCodAAAEg8EmAD8DcCOAMIA7Q6HQj4bY9koAPwQwH8BGAG8PhUJbvHVnAvgmgPMBTAdQHQqFkln7+gF8H8DrAJgAfhwKhT6ftX4ugF8CuAzAQQAfD4VCfy3qkyUiIiIioilpvPR8/QBuItgC4GUAvhQMBq/O3SgYDE4H8ACAuwA0ez8/EAwGM0mkCeCPAG4b4jyfB3A2gAUALgRwSzAYfGvW+t8D2AFgBoB3A/hVMBhcNKZnRkREREREhHGQfAWDwVoArwHw2VAoFAmFQusA3AvgbYNsfhOA1lAodF8oFEoB+BqAegBXAkAoFNoRCoV+CWDzEKd7K4AvhUKhI6FQqB3AdzLnCQaDCwFcBOBzoVAoEQqFHgbwEIA3F+WJEhERERHRlFbx5AvAIgASCoW2Zi1bD+DMQbY9E8CGzC+hUMiGm2gNtu1RgsFgM9yetQ1Zi7PPcyaAjlAo1J9HHERERERERAUZD3O+6uDO88rWD7dHa7Bt+/LcdrB9AWBgiH3rctYVcuyCeHeTL/Smhpk46ru6uoocEQFAU1NTra7rsG27tru7u6HS8UxSbMclxnZcFmzHJcZ2XBZsxyNoaWnJvT4lGrPxkHxFAeR+sDYCiIxx28H2hbd/5ufsfcdy7EJ9Gu5d5UdjXzEDoef19/dnfnyygmFMFWzHJcJ2XFZsxyXCdlxWbMdDk0oHQJPPeEi+WgGoYDB4WigU2uYtOweDz9vaDOAdmV+CwaAG4Cy4BTiGFQqF+oLBYBeAJQAyX/Fkn2czgHnBYLAxFAoNDLK+mO4C8K0C96mH+wF5AkqTEE55TU1NS3Rdf9K27Sv6+/s3jLwHjQLbcYmxHZcF23GJsR2XBdsxUQWIUqrSMSAYDN4HdxjeW+GWkH8UwGtDodBjOdtNB7AbwHsA/BXAhwC8E8DiUChkBYNB8Y5zEoDtAJoApDLl5oPB4J0ArgLwCrjDDB+BW9b+Hm/9MwBWA/gUgBcA+DuA80OhUGtpnnn+urq6GuAOi2xkN3hpmKZ5HoA1AM73+XxrKx3PZMR2XHpsx6XHdlx6bMelx3ZMVBnjoeAGANwOQAE4AOA/AD6fSbyCwWA0GAxeDgChUKgHwCsBfBbufKybALwiFApZ3nFOApCAm3jB2yaRdZ4vwu3J2g03yfp9JvHyvB7A6QB6APwcwG3jIfEiIiIiIqKJb1z0fNHI+A1V6Y3xm9Z6uJUxt+PYojDkYTsuPfYYlB7bcemxHZce2zFRZYyXni+iieyljmntB7DMse0DAG6tdEBERERENP4w+SIam4uVbf99409+mf7l3DN2rvjiVweU49wN4CWVDoyIiIiIxhcmX0Sj57NT6ft2P/DvyIo7vtJjxeNq4w9/3r/pp/f02WnzVyjBPeKIiIiIaOJi8kU0eu90TPOEpz/x+Z7shSu//I3eVH9/DYAPVyguIiIiIhqHmHwRjY5hp9Of3fiTuyOpvn4ne4WdTKr13/lxxDHNjwKoqVB8RERERDTOMPkiGp0ggJmbfnJ3/2Art/36/rCVSgfg3r6AiIiIiIjJF9Fo2Kn0e9r+8eAxvV4ZViKhdv35gZiVTP2/csdGREREROMTky+iws3WfL4Xbf/tH6PDbbT9t3+IGFWBiwGcXKa4iIiIiGgcY/JFVLibk729if1PLUsMt1H3+k2p6P6uKICbyxQXEREREY1jTL6ICmSnUq9v+8eDKSg1/IZKYc8D/0lbydRryxMZEREREY1nTL6ICjNN8/ku3fOPB4cdcpjR9q//RvWA/3wAs0ocFxERERGNc0y+iApzvZVImF1PPzvskMOMgyvXJM1oNAXguhLHRURERETjHJMvogI4lvWS/U89m1C2necODvY/uSzpWNZLShsZEREREY13TL6I8ifKcW7c++gTyUJ22vf4U0nlONcBkBLFRUREREQTAJMvovydpvv90/c++kS8kJ32PvZkXPf7pwM4rURxEREREdEEwOSLKH/XxA4cjEY69lqF7BTp2GvFDx2OAriiRHERERER0QTA5IsoT45pXtP19PKCEq+MrmUrLcc0ryl2TEREREQ0cTD5IsqPKKWu6npmeV5VDnMdWLYiqRx1ZbGDIiIiIqKJg8kXUX4W6H5/8/6n8isxn+vAspUJPeCfBeDEIsdFRERERBMEky+i/Lww2dsXj7R3jmrYYd+OnWY6Ek0CuKzIcRERERHRBMHkiygPynFecGj1uvToD6DQvX5TEsDFxYuKiIiIiCYSJl9EebBT6SsOrVprjuUYh1evs6xkkhUPiYiIiKYoJl9EI6vTqwILD61cO6r5XhmHVq1N6j7fmQD8RYqLiIiIiCYQJl9EIztfOY46vGZ9aiwHObhqbVJ03QfgzCLFRUREREQTCJMvopFdFG7riFiJhBrLQVK9fU7s4KEogIuKFBcRERERTSBMvohG4JjWxYfXbhhT4pVxZMNmSznO+cU4FhERERFNLEy+iEbg2PbFR9ZvGtOQw4zu9ZtMO5W+tBjHIiIiIqKJhckX0fCajKrACYfXbkgW42CH125I6QH/qWDRDSIiIqIph8kX0fDOdWzbObJxy+jv8ZWle93GpGiaAeD0YhyPiIiIiCYOJl9Ewzs30rE3YqdSRZnzlezpdRJHemMAzinG8YiIiIho4mDyRTQMx7bP696wuSiJV0bPlq0mgHOLeUwiIiIiGv+YfBENw0mbF/Zs3lqUIYcZPZu22lYyeUExj0lERERE4x+TL6KhBfSA/5SejVuKUukw48imrSlN188CIMU8LhERERGNb0y+iIZ2mmia3r1hc3GTr41bUprPVw/ghGIel4iIiIjGNyZfREM7O9nbF0/29DrFPGj/rj2mnU5bAM4u5nGJiIiIaHxj8kU0tLN7t7cWdb4XAMBxMLCnPQbgrKIfm4iIiIjGLSZfREOwU6nzejZvK2qvV0bP5m3KsSxWPCQiIiKaQoxKBzAVmaY5B8CcQvZpbm6ujUQiqK+vX2KaZqxEoU11izP/mqYJDXJu3/adlh4IBIp9or7trY5jXn+JrdR5xT72eMZ2XBZHtWMqPrbjsmA7LjG245H5fL61lY6BJh9Rqqi3MKI8mKZ5B4AvVDoOGp7P58N/bnkH+nfuKfqxj7vgXFz9g6/Dsu2iH5uIiIjGzufzsSoxFR17virjpwBChexgWVZtJBJ5sr6+/grDMPgNVWksBnAfgFt0Xa9WjvPzg8+u2msnU0X/huJAOq2Jps3VlHqt4zi7i3388YrtuCyea8cAtlc4lkmJ7bgs2I5LjO2YqDKYfFWAz+c7AOBAIft0d3c3AEBfX9+GlpaWcEkCm+KyhrZs1zTt4uj+A9H0QDhZinNF9+5HOhJJ+uvrNV3Xp8ywBrbj0stuxxwyUxpsx6XHdlx6bMdElcGCG0SDO71ve2tJxwQO7GpLAjijlOcgIiIiovGDyRfRIKxE8tzeEidfPVu2wU6bvNcXERER0RTB5ItoEKJrp/Vt31n8e3xl6du+M6Vsm8kXERER0RTB5Isoh4g06H7/tN6t20uafPVua03rAf9JAIpeyp6IiIiIxh8mX0Q5NE07WTmO6i1xz1fPlm1p0TQNwMJSnoeIiIiIxgcmX0THOjnRfSRmJ5MlvQleovuInQ5HWHSDiIiIaIpg8kWUQ0RO7mvdZZXjXAN72pMATivHuYiIiIiosph8EeWw0+mFfTt2lbTXK6N32w44pnVWOc5FRERERJXF5Isol8L8/p27U+U4Vd+OXWnHsljxkIiIiGgKYPJFlEMP+GeUusx8Rt/21rQe8M8DYJTjfERERERUOUy+iHKIiPRuby1L8tW7dUdKNM0AML8c5yMiIiKiymHyRZRFRJCORNPJIz1OOc4X7TpgW4lkGiy6QURERDTpMfkiyiIiiHTuLct8LwCAUgh3dCYALC7bOYmIiIioIph8EWVTCn07dpX1lH3bWqFs+/SynpSIiIiIyo7JF1EWx7QwsLutLPf4yujfudu00+kl5TwnEREREZUfky+iLLphoH/XHrOc5+zbsTOl+XwLAUg5z0tERERE5cXki8gjIs2az0D/rj1l7fnq3b4zrRlGDYDZ5TwvEREREZUXky8ij6ZpJynHQXhPe1l7vvp37TEdy3bAohtEREREkxqTL6LnnZg40gs7VZZbfD1HWRZiBw5GwXLzRERERJMaky8ij4icFO7orMi5+1t3seeLiIiIaJJj8kXkcSxr3sCe9oqcu691t2Mlk2dX5OREREREVBZMvog8yrLnR/bur8i5+3fuSosIe76IiIiIJjEmX0QuTfP75kQ791Xk5H3bd6b1QOA4AHUVCYCIiIiISo7JF5GrRdN1X6V6vnq3t2aqfCyqSABEREREVHJMvohcCx3bVrGDByty8vRA2En1DyTAohtEREREkxaTLyLXgsThIwllOxULYKCtPQWWmyciIiKatJh8EbkWhNs67EoG0Ld9JxzTOr2SMRARERFR6TD5IgJgp83F/bvbKhpD/87daceyzqxoEERERERUMky+iAAo214cbu80KxlDf+vutOb3zQOgVzIOIiIiIioNJl9EgGh+30nhtnarkkH0bm9Na7ruB3BSJeMgIiIiotJg8kUEzNZ0PTCwu62iPV/hjr2WnTYtAKdWMg4iIiIiKg0mX0TAAuU4Ktyxt6I9X3AcRPftj4Pl5omIiIgmJSZfRMCCxJHemJOuaMcXAKCvdZejlGLPFxEREdEkxOSLCDgl0lnhXi9P/87dtp1KLal0HERERERUfEy+aMpzLGth/649lQ4DgFvxUDRtUaXjICIiIqLiMyodAAAEg8EmAD8DcCOAMIA7Q6HQj4bY9koAPwQwH8BGAG8PhUJbsta/D8CnATQA+DeAd4ZCobC3bguOriQXALAtFAqd7a1fCuASAM/1goRCobqiPEkatxzTPK3SZeYz+ra3pnW/fw6AZgB9lY6HiIiIiIpnXCRfAH4AN5YWAAsAPBIMBreFQqHHszcKBoPTATwA4HYAfwbwEQAPBIPBxaFQyAoGg9cC+AKAawHsAfBrAN8HcCsAhEKhM3KOtwLAP3Ji+VAoFPpJkZ8fjWOaYcwL72mPVDoOAOjdvjPt/bgYwLOVjIWIiIiIiqviww6DwWAtgNcA+GwoFIqEQqF1AO4F8LZBNr8JQGsoFLovFAqlAHwNQD2AK731twG4JxQKrfd6uz4H4HXBYLBmkPOeAeACAL8q8lOiiaVZ8/nqK11mPsOKx1XiSE8MLDdPRERENOmMh56vRQAkFAptzVq2Hm6vVq4zAWzI/BIKhexgMLjZW/6o9++/s7bfDEAHsDB7P89bATwSCoX25iz/UjAYvBPAbgBfCoVCuT1jY9bV1RWAO+SxEPWZf7u6uooc0dQ1c+bMs30+H/r3tFvQxA+lAE00aFKxLyYGdrdZgWnNZx88eLChUjGUENtxiTU1NdXqug7btmu7u7snYxsaD9iOS4ztuCzYjkfQ0tISrnQMNPmMh+SrDu48r2z9eP5DIXfb3Hkw2dvWARjIrAiFQioYDIZzjxUMBg0AbwLwwZxjfRLANgBJAC8DcH8wGLw6FAqtzPO55OvTcIdHjsa+YgYy1UUiEdTqBvzTmk4BANuxUXXczLmVjKlvdxsazlj8YQAfrmQcJcZ2XCL9/f2ZH5+sYBhTBdtxibAdlxXb8dCk0gHQ5DMekq8o3OIY2RoBDDYHZ6RtB1vfMMixXgrAD+Dv2QtDodCKrF//GgwGXwF3qGOxk6+7AHyrwH3q4X5AnoDBXxsahaampo/0bWv9UKxzX7ceCARq58yeGztwcK+dSqUqFVPfth2NC296eQLAWZWKoYTYjkusqalpia7rT9q2fUV/f39ujz8VB9txibEdlwXbMVEFjIfkqxWACgaDp4VCoW3esnPgDhnMtRnAOzK/BINBDe4F6l1Z65cA+J23/kwANoCdOcd5G4DfefPGhuOgBN96tLS0pAAUdHGfNSQgwm7w4lGOc/zAnnbAUQ4c5UDk+Z8rpG9ba1L3+09oaWlJAkiPuMMEwnZceqZpxgBA07QYX+PSYDsuPbbj0mM7JqqMiidfoVAoFgwG/wx3rtVb4ZaQvw3AawfZ/K8Avh4MBt/g/fwhuN/WPOGtvxfAfcFg8D4AbQC+BOAPoVAonjlAMBicBeAlAC7OPrBX7v5SAEvhXvC+1IvhurE/Sxqv7FT6tHB7x7i4wXJG79YdadE0DcApcIfBEhEREdEkUPFqh57bASgABwD8B8DnQ6HQYwAQDAajwWDwcgAIhUI9AF4J4LNw53rdBOAVoVDI8tY/DDfhetA7lgng/TnnejOALaFQaG3Och+ALwI4DKAX7pyst4RCoWeK+URpnBGZP17u8ZURP9xtm7F4CsBplY6FiIiIiIqn4j1fABAKhfrhlpsfbF1dzu9LAZwx2Lbe+u/DvbfXUOu/CeCbgyzvBnBRXgHTZOHXA/7jBna3j6/Jxkoh3N6ZmH7GYiZfRERERJPIeOn5IqqEk0REGy/3+MrWt70Vjm0z+SIiIiKaRJh80VQ23zZNO3bgoF3pQHL17dxtOmlzSaXjICIiIqLiYfJFU9n8+MHDMShV6TiO0bd9Z1rzGQvA9ygRERHRpMELO5rK5ofbOypWUn44vdt2pDXDqIJ7/xUiIiIimgSYfNGUZafNheE9HeOv2wtAuK3DtE3TAiseEhEREU0a46LaIVElKNtaFO7cW3CxjdkXX1C16A03N0w7+/QqzeeTaHtnuv1fD0V3/vmBiLKKc8swZduI7t0fa5w/73QA/y3KQYmIiIiootjzRVOVaD7fSeG2/O/xVTP7OP2GP9zTEvznH04MnH92w7bOvb4NO3YYkenNtZd948tzXrvi0ZNbXnhpVbEC7NuxUynHYc8XERER0STBni+aqqZphlETbms/nM/GM889O3D97395QjgalZ9/9RvW4f1dRw1XfKimxn7RK16uv/Qvvz7x2c/deWjzz+4dGGuAfdt3Widcdfk5RnXR8jkiIiIiqiAmXzRVzQeA/l0j3+Nr1vnnBF7yl9+c2Lp1m/rH7+63HfvYyvTJeBz/+v0f7H1t7eqlX/7scZrPJxt/+PP+sQTYt2NnWjP0xQAEwLicm0ZERERE+WPyRVPVyamBcMKKx4dNaurnnWhcf//dc3ds2apC9/3eHqks/YblKxzLMvGKL3xyVvzQYWvXnx+IjjbAnq3b05rPVw9gFoBDoz0OEREREY0PTL5oqpof3deVGm4DvapKrr/v58cfPnwY//zd/SMmXhlbVq91GpqbccV37prTt721o2fztvRoAuxv3Z12LNvRDP10MPkiIiIimvBYcIOmJOU488PtHcNuc9lX75jpnzXD/5d7fm07TmG3A3v24Ued3dt3qBfd/cMWvapKRhOjY5qIdR2IAjh9NPsTERER0fjC5IumJDudXhxu7zx28pbnxOuuqTn1Da9p+tuv77MTsdiozvHP3//BNpqbfJd88dMzRhtn7/adjlLqjNHuT0RERETjB5MvmqrmRzoGv8eXUVsjL/zWnbNXPfGk3blr96gLXSTjCfzz/j/ap7/1Tc3HXXheYDTH6NvRatup1LmjjYGIiIiIxg8mXzQVGbrfP2dgT/ugydf5n/hgk+Pz6Uv/+e/CxhoOYvfWbWrrmrXOC7/9f7NF1wvev29ba0p0/XS4FQ+JiIiIaAJj8kVT0QmiadpAW8cxyVf9iSfg9NtuafjvX/9um+lR1ck4xsN/f8Cun3di4Mx3vKWx0H17tmxL6z5fA9yKh0REREQ0gTH5oqlovmPZTnTvfit3xTkffA86du5UrRs3Fe2+WrFwBE89+LB97sc/MNPf2FDQe65vx660Y9kOAM77IiIiIprgmHzRVDQ/ceRIXOXcLPn4Ky+rarnsYjz8t9CQhThGa9UTTzopy5LzPvaBaYXs55gmovu7omDyRURERDThMfmiqejkSOe+o3u9RHDBZz/WvGnFKnQfOFj0E9qWhcf/9W/n9Lfd0lw7Z3ZBk7/6trc6ynHOLHpQRERERFRWTL5oynEsa0G47eh7fJ3yypfWTVu0wP/kgw+V7Lxb1qxzeruPqPM/9aHphezXu3WHZafS55cqLiIiIiIqDyZfNOU4pnlquKPz+WIbmobzPvHBGWueedaJ9A+U7sRKYem/H3QWve6mpvq5Jxj57tazZVta8xmLwYqHRERERBMaky+ackTXT4q0P3+PrwU3vbyuYd6J/mUPPTrm0vIj2blps+ruOuCc9/H85371bN6W0gyjFsDcEoZGRERERCXG5Iummjrd72967h5fIjjnI++bsW7ZcjsaDpclgCcefMhZ+NpXNtUd35LX3K/+3W2mnU5bADjvi4iIiGgCY/JFU83JAJBJvk5+6fW1TfNP8i97uPS9Xhk7N21WRw4ecs75yO359X45DsLtnTEAZ5U2MiIiIiIqJSZfNNXMtxKJdLK3z3F7vW6fvmHFKicyUMK5XoN45uFH1aLX39RUPXNGXr1fPZu3Kceyl5Q6LiIiIiIqHSZfNNWcHDtwKAGlcPzlL6iecdbpVc8+8ljR7+s1km3r1juR/gGcffs7mvLZvnfrdtMxTVY8JCIiIprAmHzRVHNyuL1TAcCSD7172o71G5y+I0fKHoRSCs8+vtRZfOsbmn21tSNWMTyycUtSD/jnA/CXITwiIiIiKgEmXzSl2Kn0onB7h5p2xmL/3CtfWLvskcfKNtcr18YVqxxbKTnj7W9uHGnbIxu3pEXTDACnliE0IiIiIioBJl80pSjHWRDp2Gcu+cC7mzt2tDoHOveqSsViWxZWPvm0c/r/u3WaGMPf9ivRfcRO9vXHAXDeFxEREdEExeSLphLR/L65id4+e37wxsbljz9RsV6vjDVPPeMEmpuMha8O1o20bd+OnWkAZ5chLCIiIiIqASZfNJXM0nQ9MOfi86vCvX1q55atFev1ykjG49iwfKV95u3vmA4ZfurXkY1bHDuVuqBMoRERERFRkTH5oqlkPgCc9NLrG1c88aQDVfHcCwCwYukTzvTTTg0cf/kLqofbrmfzthREzilTWERERERUZEy+aCo52YzF0+LzycYVqyo+5DCj/0gPWjdsdM66/R3Nw23XvX5jSvf7mwHMLlNoRERERFRETL5oKpnvQBnrnl3hmOl0pWM5yvLHn3DmXn1FXeOC+b6htunbsSttm6YFFt0gIiIimpCYfNGUoRznUn91tbbqyafGTa9Xxr49bepgZ6cz3E2XlWUhvKcjBuDc8kVGRERERMXC5IumDNu2L961fYcK9/VVOpRBrVj6pFpw8yubAk2NQ74vj2zcrBzTPL+ccRERERFRcQx/cyEqCdM05wCYU8g+zc3NtZFIBPX19UtM04yVKLRJS0Rm6YYxffUzzzoYoqygCCTzr1LDVx4shW3rNqgXv+JlOOOdt07f8L2fhgfbpmfzNufkl9/wAhs4r9zxFQPbcVkszvxrmmZFA5ms2I7Lgu24xNiOR+bz+dZWOgaafESNk4pvU4lpmncA+EKl45hKNE1DOBzGz+76OuzU+Jrvle2Sa67CRRdfiH++6hYo+9jRkdPPPA3X/vIHsCyrAtERERFNHT6fr/zfxNKkx56vyvgpgFAhO1iWVRuJRJ6sr6+/wjAMfkNVGB+AR9avWVtnp9OWY9uDbiQCEU3XlWPbSqEi30qsfWYZLr/+WuO4887p3v23f8Zz16d6+wRKzdU07W2O42ysRIxjwXZcFosB3AfgFgDbKxzLpMR2XBZsxyXGdkxUGUy+KsDn8x0AcKCQfbq7uxsAoK+vb0NLS8ugQ9JoSG80TbNqx9btcCxbYYi8Sil33KGbeFWmSzgZj2PjylXO6e+8tb71/r8cMznNTqUQ3X8gWj/3+Hpd1yfccAi249LLGqK1nUNmSoPtuPTYjkuP7ZioMlhwgyY9y7I+uGXjpnQqkXCGSrzGkxVLn7BnnX1G1eyLL6gabP2RDZtsZdsTcs4XERER0VTG5IsmuyWGYVy0bvVa05kgk7Z7D3dj15atztnve+egN13u3rDZtNPmpeWOi4iIiIjGhskXTWqO47x3/959A319vbozgYpUrHj8Ceek666prz9p7jFDg7vXbkzqAf9CANUVCI2IiIiIRonJF01mDQDesvLZ5TFd0/yOaY3/MYee9tadqvvAQees97y9KXfd4XUbUhDRAJxd/siIiIiIaLSYfNFkdksqlVKbN22OaprucyxzwiRfgHvT5UWvf3Wzr67uqFK36YGwE+s6GAHAmy0TERERTSBMvmiyEsuyPrB+zdqEchxNNBF7AvV8AcCWNWsd07Zxxtvf1Ji7rnv9RlvZ9kWViIuIiIiIRofJF01Wl+i6fuqq5Sv7dV33AYBjTpw5XwBgWxZWPfW0c9rb3zJNdP2odd3rNpp22nxBhUIjIiIiolFg8kWTkm3b7+5oax/o6+21dF33O7ajoJxKh1WwNU8941RPn2YsuOnlddnLD61en9CrAgsA1FYoNCIiIiIqEJMvmoyaROT1q1euigOApus+x5pYQw4zkvE4Nqxc6Zx1+zumZS8/vGZ9yrsPNO/3RURERDRBMPmiyeiWVDJpb9u8JQoAuq75Jso9vgaz4rEn7BlnnFbVcvkLnrvpshWPq3DH3giACysYGhEREREVgMkXTTZiWdbt69euizuOO8xQm2Bl5nP1HTmCHRs2Oks+8K6je79Wr3MckzdbJiIiIpoomHzRZHOBYRinrV6xKpxZoGu637Embs8XADz76OPO3KteWDfttFN9mWWH125IObbD5IuIiGgSEJE7RCRa6ThGIiJzReRuEWkTkaSIHBCRR0TkTVnbnOM9n5pRnuMOEZmUhcWYfNGk4jjOO/d2dg709vQ8l21puqZPtDLzufa3d6h9u/c4Sz70nud6vw6tXJM0qgLHA5hZwdCIiIhoihCRZgArAFwE4A4ANwD4OIBO7+eMcwB8AcCoki9vXyZfRONcLZS6Ze2qNfHMgufLzE+sGywP5plHH3NOecVLGmtb5ugAcGTT1pSdSpkALq5waERERDQ13AxgDoCXKKV+pZRaqpT6rVLqbQDeUuHYJgQmXzSZvNqyLH3zho3Pddnruu5XjoKy7UrGVRS7tmxTfYe7nSXv/3/NAKBsG73bWmNg8kVERDQliMiZIvKgiERFJCwiD4jIgpxtPioiq0RkQEQOi8g/RWRRzjb3ishmEblKRNaJSExEVorI+SOE0ATAAXA4d4VS7j19ROQ2APd4i7tFRIlIu7dujjdkcY+IJERkp4j8n4gEsmLLfGH+dW9f5cU5z/v55pzn8oPM8b3fm0Tk5yKy3xsWuVdE7h/heZXNqJIvEfmziNwgIlLsgIhGy7Ksd23etDlmZZWV98rMT7wbfA1GKSx77HG16I2vaQ40NWoAcHDlGsdKpS6vdGhERERUWiIyF8BTAI4DcCuAdwBYBOApEcmegnACgB8AeIW3jQZgmYhMO/qImA3gewC+DuB1cIcI/k1EfBjaGu9494nIpSJiDLLNvwB82fv5BgCXAniV9/sMAL0APuKt+5r3XH6ctX9mPvv3vZ8vBbB2mJhyfQvAywB8BsD1cIdFpgrYv6RG2/PVAuDfADpF5H9F5OQixkQ0GqcYhvGCtatWR7IX6rrmcyyrUjEV3eZVa5xUMomz3vXWJgA4tGptUtP1C8FebCIiosnuwwD8AK5TSv1FKfVHuAnMdAC3ZzZSSn04MyQQbiL0agABuEMGs00D8Aal1O+UUv8E8CEAczHMiBql1GNwk7VXAlgGICwiD4nIWzKdMkqpbgC7vV3WKKWWK6XWees2KaU+ppT6u1LqCbg9ZB8H8OZMcQ6l1HJv305v3+VKqecKqeXhIgC/816DJ5RS9yulbi1g/5Ia1QWbUuoFAE4D8Hu4GfVOEXlURN6Q3W1IVEZv6TnSE9m/d99R32zomu6fyPf4yuU4DpYvfcI57R1vmaZXVcnBZ1clNMOoAXB6pWMjIiKikrocwGNecgMAUEp1wE2CnhsFIyKXiMjDItIDwAIQB1AHt5csW5dSakvW71u9f08YLgil1CcALICbDP4HbrLzKwC/HukJiOtDIrJVRBIATAD3ATAAzB9p/zytBXCbiHxMRM4s0jGLZtTfliuldngv/ly4GXUEwL0ADojI90XknKJESDQyzbKsd65fuzZ5zApN80/0Soe51i1b7sAw5Iy3vakhduCgneg+EsPzXfREREQ0OTUDODjI8oNwe7EgIicCeAiADuBdAC4DcCHcOVpVOfv15/ye9v7N3e4YSqk2pdR3lFKvhpusPQjgTSJy9gi7fgjANwE8AHdY5EV4vtduxPPm6f0AfgPgowA2iUiniLynSMceszEPVVJK2QD+AbfbcBXciXhvBbBGRJ7IneBHVAJXaJp23Po1647pktZ03TcZKh1mM9NprHziKefM9759uubz4dDqdaay7UlZjpWIiIie0wt3vleu2d46wB2GWAfgJqXUn5VSywCsh5eclYJSKgrgR96vp42w+WsAhJRSn1ZKPaSUWgUgluepMl+y+3OWH/XclFIDSqkPKaXmADgbbjL6IxG5Is/zlNSYki8ROVVEvgpgP4A/ws2qXwqgAcC1AGoB/HasQRINx3Gc2zra2sPRSOSokoaaphkigDPJer4AYNWTTzn+xgbj1Dfe3HBo5dq0bZpXVTomIiIiKqmnAbxIRKZnFnhFOF4AtxAHAFQDUHCH82W8Fu6wvjETkZlDFNzLdLZkeuaG6kWrzlqXccsgxzMH2fewt+9zCZ433WnIwmNKqU1wh0cCwOKhtiunUf0hRORtAN4O4BIAbQC+C+AepdShrM0eE5GPAHhszFESDa1GKfWa9WvX9eeu0HXdpxQwmQpuZKQSCax+epl99gfePX3pez7SZVRVzYM74banwqERERHR6Om5pdQ9qwB8G+7osodE5E64Qwu/CLfX64fedpnr7ntE5Kdw54R/DMcOMRytW+EWx/gNgHUABO7Qxk/CrYT4tLfdNu/f20Xk7wDiXiL0MIAPisj7ALTCTbyOKpWftf8rROQpuD1jO5RSERH5G4D3icguAEcAfABusvkcEXkGwN8AbAZgw73/WBrPJ6gVNdqerx/BvZP1tUqpBUqpr+QkXhk7AXxp1NERjSzo2I6xddPmY7qsdV33u2XmJ13HFwBgxWNLndo5x/kaTznZ591smfO+iIiIJrYqAH8a5HG1UmovgCvgJh2/AXA3gF0ALs8U4fASnLcCOB/APwG8EW6Vw4EixfdvAE/CTcL+CjfJeS2AbwB4sTcdCV51wzsAvAluQZB/ePv/L4Dfef/eD7cE/AcGOc/tcPOU/8BNPDP3H3s/gKVwS+T/FG41x1DOvs/ATbj+BODPAE4G8HKl1DaMA6JU4RemIjJdKcVv2Muoq6urAe4bp7GlpaWQcpuTmmVZD27bsvWiv/7hT92562pra2foQFPswME877Asoum64di2BYzijVEB1736ldqC40+wrUg0Mev8c34C4FOVjmk4bMelZ5rmeXC/fTzf5/MVcl8UyhPbcemxHZce2zFRZYy252uViCwZbIV35+09Y4iJKF8zdV2/dsPaddHBVmq6NqnKzA/m2UcedxpPPskfO3RYs5LJqysdDxERERENbbTJ1zy4N2sbTA3c8vNEpXZzIpFI7tm1OzHYSu8eXxOiB2u0IgMDWP/sCqf59MVVms93LoZ+XxIRERFRheWdfIlIlYhMy6qw0uD9nv1ogXvH665SBEuUzbKsW7ds3JQcauispmu+yXaPr8E88/Cjdv0JLT4RMQBcUOl4iIiIiGhwhVQ7/CSAz3s/KwD/HWbbO0YbEFGe5hqGcfHG9Rs6BlupaZouIjLZe74AINzXh40rVjlnnLtE+WtqLoc70ZSIiIgmlmYA9UU+ZmeRj0djVEjy9XcA7XBLSt4N4MsAdudskwawTSm1vgixEQ3nteFwOLavc29qsJW6rvsxScvMD+aZhx+xl1x6sc+xrFdrhvGVSsdDREREBWl2LKtdM4yGIh93sHtyUQXlnXwppTYA2AAAIqIA/EspdaRUgRENxzLNN2/ZuGnQxAvwyszblpogRQvHrP9ID7asXa9OW3L2eZo7nNipdExERESUt3rNMBr+EXxDZ2R/V1G+Oa4/vsV4eej3xTgUFdGobrKslPpVsQMhKsDJhs+3ZNP6je1DbaDr+pSY75Xtqf/81zrzvHN9cO/v8ctKx0NERESFiezvsiLtnVNj2M4UlXfyJSIbAbxRKbXZ+3k4Sik1aCl6oiJ4zUB/f/RAV1d6qA00XfM7iSE7xial3kOHsGPbNrXg1EWfMQyDyRcRERHROFNIqfk1AGLez2u934d68IaIVDKWab5x6+Ytw2ZWuqYHpkKxjVzLHl+qdF2fD+DKSsdCREREk5OIzBSRx0UkLCK/GOOxrhKRg8WKbbwrZM7XW7N+vq0k0RCN7CTD51uyecPGQascZmi6btimaZcrqPGie1+Xat2+Q52ycMGdhmG8sNLxEBER0fgjIksBXALAhDtPvB1ACMDXlFKRPA7xLgBRAI1qqHv+jD62dgDvVko9WMzjjhejvcnyoETEX8zjEQ3ipnA4HOva3zVkz5emaYYIxJlic74AwEoknVXLV4iu6y8AcEWl4yEiIqJx60NKqXq4Je5vA3AxgGdEpCaPfU8GsKXYiddUMKqCGyLyZgBNSqnve7+fCeBvAE4WkacBvFYpdTjf4wWDwSYAPwNwI4AwgDtDodCPhtj2SgA/BDAfwEYAbw+FQluy1r8PwKcBNAD4N4B3hkKhsLfuDgD/AyD7wv3GUCj0lLd+LtxCBZcBOAjg46FQ6K/5Pg8qPcs0X79tpCGHhu5XU6jMfDZlW+jp7lat23ckTlm44MuGYTABIyIioiEppRwA60TkZgCtcAt3/dC73v8UgOMBbILbG7VFRH4D4PUAlIi8D8CtADoAfA/A6QCSAP4K4MNKqZSIzAPQBqBaKZUEABG5H8B2pdQd2bF4xz4RwN9ExAbwXaXU/5T0BSiz0fZ8fRxHl7L+Ptx7fH0IwBwA/1fg8X4ANxFsAfAyAF8KBoNX524UDAanA3gAwF1ws/QHADwQDAYNb/21AL4A4KVwG0rAiy3bX0KhUF3W46msdb8HsAPADADvBvCrYDC4qMDnQqVznG4YF27dvCU63Ea6bvgdy3Lce4FPPVYiqZ596mml6/oLAVxe6XiIiIho/FNKhQE8DOAKEXk5gC8BeAOA6QB+C+AfIuJXSr0ZwH0AvqWUqlNK/QWADeBjcK+hLwFwNYD3jyKGN8O9MfSrvGNPqsQLGH3yNQ/AVgAQkRlwL/A+qpT6AYDPA7g+3wMFg8FaAK8B8NlQKBQJhULrANwL4G2DbH4TgNZQKHRfKBRKAfga3DuBZ4oL3AbgnlAotN7r7focgNcFg8ERu0+DweBCABcB+FwoFEqEQqGHATwE4M35PhcquWAykUju7ehMDreRrut+xzTLFdO4YyWSKhyOVO/Ytr3fsqwvVzoeIiIimjC6AEwD8B4AX1VKbVRK2Uqpn8L9VvuSwXZSSq1TSi1TSllKqXYAPwWLfw1qtMmXAyAzv+tquJP1Hvd+PwA3683XIgASCoW2Zi1bD+DMQbY9E96NngEgFArZADZnbXvUem+dDmBh1rIbg8FgTzAY3BYMBj8ZDAa1rH07QqFQfx5xUAVYlnXzju07kiMNL9Y1zW+np3Ty5WiaaE889nhc1/XL4Q6jJSIiIhpJC4BeuB0tXxeR/swD7ui24wfbSUQWicg/ReSgiIThjoIrJB+YMkY15wtugvNeEdkH4AMAHlNKZebhnAjgUAHHqoM7zytbP9wercG27Rtm2zoAA5kVoVBIBYPBcNb6PwH4OdwE8VwAfwBgAfhm7r4jxDEmXV1dAbhDIguRiaO+q6uryBGNf3V1dbV1dXVXb9+6rRsiw35poOt6wBxNmXkBAOX+O4FHLCrbgm1aKh6P+1u3bx84ZeHCuw4fPvyySsflmdLtuByamppqdV2Hbdu13d3dDZWOZ5JiOy4xtuOyYDseQUtLS+716aQmIg0AXgzgywAa4VY+vDfP3X8Md17YG5VSYRH5INwhi4BbFREAauDOBwOA2QC2D3GsCXwVNrLRJl+fAfBPuAUvInD/UBmvArCygGNF4RbHyNboHbfQbQdb35BZn12YA8CaYDB4J9xSmd8sMI6x+jTcuWmjsa+YgUwUlmXBtm10HzrU0tg4/P/Dmq5B2TY0XddHcy5N00b7vhg37GQSVbW1M1csW45Fixdf7vP5BszxNRRzSrbjcujv78/8+GQFw5gq2I5LhO24rNiOhyaVDqAcREQAnA3gKwB6ANwDt118VUTWwb3er4U72m3pEKXo6+F2pkREZBHc2gkDAKCUOuJ12NwqIt+DW9/hUgBLhwjpEIBTivPsxp9RXWQqpZ4RkRPhDhncrZTqz1r9SwC7CjhcKwAVDAZPC4VC27xl58AdMphrM4B3ZH7xhgyeBbcAR2b9EgC/89afCXcC4M4hzu3g+TfWZgDzgsFgYygUyvSADRXHWN0F4FsF7lMP941wAkqTEI5rjY2NP9uzc9cNvb193cNtZ+i6v7Gp8UQrlTKVXeBtvkRE0zTDcRwLE7x0qhlPaL7aWq19T9vunTtaZ85fcMq6w4cPv6LScWGKt+NyaGpqWqLr+pO2bV/R39+/YeQ9aBTYjkuM7bgs2I7pOyLydbjXwx0A/gHg9UqpOIAHvJLzv4JbVj4O4CkMnTB9DG7l8o8AWAd3tNl1WevfDrd37A64I8/+MUxcdwH4nojcCeD7SqnPjebJjVej/obfy3rXDLL834UcJxQKxYLB4J/hVjh8K9wS8rcBeO0gm/8VwNeDweAbvJ8/BPcD4wlv/b0A7gsGg/fBLWn5JQB/CIVCcQAIBoOvBPBkKBTqDQaDZ8MtO3+3F8fOYDC4CsD/BoPBTwF4AdzCIZ8p5Pnko6WlJYWjy92PKGtIQGSqdYMD0G3bvmHHtu0JuOVQh95Q1w3lOKrgxAvwOrllUnR2W4mkI5rouq77H3/k0b6Fpy66sqWlZTEK65UuuinejsvCNM0YAGiaFuNrXBpsx6XHdlx6bMdTm1Lqqjy2+T3cSuCDrbst5/cnASzO2ezzWesfwhC9WUqppXCHIWZ+fwBuRfNJadQ3WRaRxSLyGRH5kYjcnfP4ZYGHux3uJe8BAP8B8PlQKPQYAASDwWgwGLwcAEKhUA+AVwL4LNz5WDcBeEUoFLK89Q/DTbge9I5l4ugyl68F0BoMBqNwk7dfAfh61vrXw70/QQ/cuWG3hUKh1gKfCxXfRZqmNWzbum3YEvOAW+nQnoI3V86lHBt22nT8fn/Nwa4D6d07dw3YlvXFSsdFRERENJWN5SbL98C9t9de799sBV38ehUGXzPEurqc35cCOGOYY30fx97bK7PujSPEsRfAtcNHSxXwskMHD4bjsdiwvV4AoOm630nnNsepyYwnYNRW1wLoXfrIYwML3vuuGwCcB2BthUMjIiIimpJG2/P1OQB/AzBLKXWqUuqsnMfZRYyRpjjTNF/Vum1HXtUidF0L2OlRVDqchKxEwjEMXzUA2b9vX6pt955+9n4RERERVc5ok68WAD9RSo04DIxojI73+Xyn7di2LZbPxt4Nlpl8AbCSSQUo+P3+agB4/JFHw7phvAxukRoiIiIiKrPRJl9PgjcfpvK4MR6Px7v2d41YoETTNENExGby5VIKVjLl+Py+WgDY29GZ7GzvGLBt+/Mj7UpERERExTfaaof/A+A3IpIE8DDc4hdHUUr1jiEuIgCAbdsv3926M69JXLph+JUCHNMqdVgThhVPKH9jQx2AbgBY+uhj4Te/7bZXw71NBIvJEBERjSP1x7cU7V6jxTwWFc9o/yiZEvM/xtDFNUZ1g1uiLD4BXrxzR2t/Phsb7pBDZ1LUii8SM5Fwqqc3+zL3L2vbvSdxYH9X5Lg5sz+j6/ptlY6PiIiIAACdAOTloUEru9MkMtrk623gFS6V3qUQqd7Z2to18qaArusB28yrLseU4aTTcGxb+f3+2mQyOQAATzz2ePj1b77lTQC+APemikRERERUBqNKvpRS9xY5DqLBXH/o4KFwMpEcscQ84CZfViLBLwVymPGE8gX8dZnkq3X7jnj34e74jJkzPqFp2u2Vjo+IiIhoqhjTWFARaYZbeGMugP8opfpEpApAWimV1wUz0VBM03zZrtbWvLuydF33p9Im210OKx53aupqa7KXPfX40sirXnvzOwD8L4BDlYmMiIiIsjQDqC/yMTuLfDwao9HeZFkH8CUAHwBQA3cI4oUA+gD8FcAKALyfEI3FDMMwztq5o3VvPhtrmqaLJpqdTtulDmyiMRNJBYj4/L4aM23GAWDLps3Ra667tqGpuenDIvKpSsdIREQ0xTU7tt2u6XpDkY8rRT4ejdFoe76+COB9AD4O4HEAW7PWhQC8A0y+aGxebJpmel/n3mQ+G+uGHlAKcCxWOjyG48BKJh2/31+bSb6UUnjmiSejNwZf9n5d17+CQSqWEhERUdnUa7re8Kuf3905MNBflIuZxsYm49Z3vq0Yh6IiGm3ydRuAzyilfuz1gmXbDeCUMUVFU57jONd1tLUllMpvCpehG26lwzy3n2qseFz5mxrr4ZWcB4B1a9eFr7r2RQ11dXXvBvCVykVHREREADAw0G/19fbxm+RJbLQ3WZ4OYNswx/SN8rhEACCO49y4e+fuEW+snKHresBOs9LhUMxYwtF13dB13Z9Z5tg2nn3qmaht2x8HUFXB8IiIiIimhNEmX60Arh1i3dUANo/yuEQAsNAwjNk7d7TG891B1/UqJ51mt9cQHMuEnTYdfyBQl7181YoVA5Zl1QC4tUKhEREREQ1JRO4QkSMiEh1kxF2hx2oXkRuKFdtojDb5+jaAj4rIl+BWOwSAE0TkdrhFOL5VjOBoynpxNBKJ9vb05F/p0ND9NpOvYZmxuPL7fUdVUTLTplq1fEXMsqzPgDdGJyIimhJEZKmImCKyIGvZYhHJ61pKRK4SkYMjbHObiNhe0hQWkU4R+b2InFdAnHMBfBrA2UqpOqVU0QqreUnd/cU6Xr5GlXx59/n6JIAPAljrLf47gK8C+KxS6o/FCI6mJtu2r9uze0/e4501TTNEROy0yeRrGGYspgzDCGiadtRcz2efXtYHoAXATZWJjIiIiCogDPeWM6W0ykuaGgBcAGAjgGUick2e+88D0KeU6ipVgOU22p4vKKW+BfeC7UYAbwLwEgAt3nKi0dIBXLNn1+5EvjsYhhFQjmKlwxHY6bRyLEsFAoGjer/isZizcf2GsNf7xZK0REREU8P3AbxcRM4ZbKWINIjI3SJySET2icg3RMQvIrUA/gNglterFRWR00Y6mVLqsFLqLgD3wO2wyZxnoYj8xxtauFtE3ustvwHAQ1nn+Zu3/PcickBEBkTkKRE5K+tYS0Xk3Vm/3yAi7YM8txsAfAbAq71jH7NNqRScfInIPBH5sog8Cvd+Xt8C8DYAlwJoLHJ8NPUs0XW9fnfrzvznexlGwDZNx73dHA0nHY0rv99/zA0cn3niqQFd15cAuLwCYREREVH5HQTwPQB3DrH+e3A7Wk4FcBGAawB8WikVg9v5ctjr1apTSg1ViG8wfwZwvojUikgNgEfg3qpqDtzOnE+JyLVKqQdzzvMqb/+HvJhmAVgD4PcFnBsA4B37/wD8xTv2vEKPMVoFJV8i8ka4VQ4/A2ARgAEAEbgvwOcA7BCR1xY7SJpSrunr7Q1Ho9G8x/Qauh6w0+lSxjRpmLGYY/iMqtyhh709PebOHa0DtmV9ulKxERERUdl9DcAlInLUl68iogF4A4BPKqX6vWF//wvgzUU4ZxfckTZNAF4G4KBS6sdKKVMptQPAz71zD0opdY9SKqyUSgG4A8AZIjK9CHGVRd7Jl4gsBnA3gGcAnKGUmquUeoFS6lKl1FwAZwFYDuBXIrKoNOHSZGdZ1rV7du0paDKlrutVdorFNvJhp1LKNi0VqAoc0/v19NInB3TDuAHA4gqERkRERGWmlBqAOwTwrpxVMwH4AbRnLWsHcHwRTtsCd7hSP9w5XeeKSH/mAeATAGYPtqOI6CLyFW94YjgrvhlFiKssCun5uh3AHgAvGaxrUSm1BW7XYJu3LVGhDE3TLm/bsyfv+V4ARNd1Hysd5s+Mxhy/P3DMEOG9nZ2prv37w47jfLQScREREVFFfB/AyXB7oTKOAEgDOClr2TwA+72fx3Ld9WoAa7zhi50AlimlmrIe9Uqplwyx7xvhFgi7Fu50p0x8mTnrUQA1WdsPmsR5KnLtWEjydQWAnymlhhzf5XX//QzAVWOMi6am80Wkas+u3XnP9zIMww9xi0mUMrDJJB2NOoah+3Xj+RsuZyx78ukI3Ht+zSp/ZERERFRuSqkE3CGFn8paZgO4H8CdItIoInMAfBbAb71NDgFoFpHmfM8jIjNF5BNwa0VkzvVPAPNE5O0iEhARQ0TOEpELhzhMPYAUgB4A1QC+nLN+HYCbRaTOK1P//mFCOuSde9QFCEejkJOdBGBTHtttwtFZMlG+ru490hNJxONOvjsYhlHlWLaCk/cuU55jmrBSaacqUHVM79fWzVtikUgkDeA9FQiNiIiIKuOXAPpyln0AbpLTCrewxZPwhicqpbbDTcR2ecMFh6p2eGHmPl9wE6PzAbxQKfWod5wo3F6sIIC9ALrhduQ0DHG8X8Mdibcfbh2KVTnrvw23JsUBAH8DcN8wz/lPAEwAPSKye5jtisoYeZPn1MMtrjGSKIC60YVDU5llWde27SlwvpdhBOxUir1eBUpHIqpq2rTGWCzWnb1cKYUVzzwbfdH1135Q1/WvAkhWKEQiIiIqEaXUVTm/WwAW5iwbAHDbMMd4O4C3D7P+XgD35hHLTgCvGGLdUmQNHfSStdxtf521vhfuNKhs38paPy/r5x5UoMpzIT1fgvzHRvJeQVQonybapW172vIecggABottjEo6GnME0PyBwDFflKxZuSpsW3YN3HHVRERERFQkhY5xfFxEwsM9ADxaikBp0jtPNKlqK+DmygCgG3qA871GwXGQjsWcqqrAMWO10+m0WrdmTcyyrI+DX6QQERERFU0hww6/WLIoiICrent6IolEIu/JW7qu+0VELPZ8jUp6IOzU17dU67rut237qEI6y59e1n/hJRcvAnA1gMcqEyERERHR5JJ38qWUYvJFJWNZ1ova97QXNN/LMIyAYztK2VapwprU7HRaWcmUU11d3RyNRg9lr+vv77d27tgRXrBw4cd0w2DyRURERFQEhfR8EZWKrolc1t7W1l/ITobPqGKxjbFJ9Q84NcfNapB47Ihy1FHJ77NPLwsvWrz4BgCnAChbFSAiIqKpqrGxqWjX5sU8FhUP/yg0HizRdL2mbffuA4XsZOhGtZWIMfkaAzOeUI5lobq6pjkeix3JXtfR1p7sPnw4OmPmzA9omvbBSsVIREQ0BUQc2w7f+s63nVjpQKi0ynpTMaIhXNHf1xeJRWMFlpnXWWZ+zBSSff1OVVWgWUT03LXLn3k2CqXeAfdWE0RERFQafZquN8ItdFXMB40zTL6o4mzbvrq9rbD5Xiy2UTxmNOY4lo2ampppues2rlsfSaXTAuDWCoRGRERENKkw+aJKEwBXdra1F1Ri3vD5qhzbZrGNolBI9vbZgaqqZk3TjhqKbNs21q5aHbcs68Pg5wURERHRmPBiiiptsa7rjW279xSWfBlGlZ1kr1exmLGYslMpp7audlbuuhXLlvdrmjYPwIvLHxkRERHR5MHkiyrt8lg0Guvv7y+oC8sw9BorlWTyVUSJIz2O3+ev8/v9NdnLI+Gw3bp9x4BtWR+qUGhEREREkwKTL6oox3Gu6OzoNAvcTXTd8NtJFtsoJjudVqlw2KmtrZ0tIkdN0l3xzLMRTddvAHByhcIjIiIimvCYfFFFOY5zdUdbe6qQfXw+X5UAYLGN4kv09ttQjl5be/Tww/a2tmTPkSNRpdR7KhUbERER0UTH+3xVgGmacwDMKWSf5ubm2kgkgvr6+iWmacZKFFpZicgswzBa9nZ0dBmGEch3P3/AX2ebpoJSUswqqiLuwUQgSk3R6qxKIX74iFM3Z3ajZdspyzSfm4u3evnK9LUvueG9juP8DUBBCXPGZGzH49DizL+mWWinMuWD7bgs2I5LjO14ZD6fb22lY6DJR5Ri50G5maZ5B4AvVDqOShMR2LaNn/3gxwXuqWBG40j29pUkLgICTY3wNxx9ay/d0PGO97wLmqaBnxtERDTZ+Xy+KfpNLJUSe74q46cAQoXsYFlWbSQSebK+vv4KwzAmxTdUmqZ9Ym9H50vCAwO9hexX39Aw10omlGPbRc0ARCCi6bpybFspTOnsItHbC70qoEPTUrFY7FBm+cZ165vPOf+8AwDeOJrjTsZ2PA4tBnAfgFsAbK9wLJMS23FZsB2XGNsxUWUw+aoAn893AMCBQvbp7u5uAIC+vr4NLS0t4ZIEVmamaZ7d0daetCwr7yFsuq77NE00K5EyUeT8SCl33KGbeE3xrh0FxA8dtupPOD7g8/trE/F4LwCsWLa854KLLzoV7nzR1YUedjK24/Ema4jWdg6ZKQ2249JjOy49tmOiymDBDaqUBsMwFne0F3ZzZZ/PV+3YtnIszgEoNceyEO8+YtdUV88wfL4qADjS3W12tncMOI5ze6XjIyIiIppomHxRpVziOI6zr3NvQYUbDJ9RbbHEfNmYsZhKRaJOfV1di4hoALDy2eVRuMMOmysbHREREdHEwuSLKuWF3YcORy3LKiiRMgyj1krw5srllOjptZXzfPn5rZu3xBKJhAXgLRUOjYiIiGhCYfJFFWGZ5tUd7e12Iftomqbrum5YyaRTqrhoEMpB/HC3HQgEGvx+f41SCutWrUlYlvUBFLPWPxEREdEkx+SLKsHQdP2CzvaOQud71SjHUU6a873KzU6lVDIctmtra2cDkFUrVvRrmjYPwFWVjYyIiIho4mDyRZWwRNO0qva2gott1JiJpCp2lUPKT7K334FSek1tzbTwQNjes2t32LZtFt4gIiIiyhOTL6qEFw7090fisVhBwwcNH+d7VZRykOjpdaqqqqdpmmasXL4iKiKvBHBcpUMjIiIimgiYfFHZ2bZ9RWd7R6HzvQxd1w0rkeB8rwoyYzHHTqdVTW3NjF07WuPRaDQJ4K2VjouIiIhoImDyReUmSqnLOzs6k4Xs5Pf7axzbVo7J+V6VluzpdQL+QIOmaf61K1fHLcu6HfwsISIiIhoRL5io3E40DGNmR1tbofO9aq04hxyOB1Yyqcxk0qmuqZm+ZuWqsKZpcwC8uNJxEREREY13TL6o3C5LJZPJ7sPdBXVhGT5frZlIMPkaJ1J9/U7A76+PJ+Lazh2tEdu231vpmIiIiIjGOyZfVFZKqcv27d1X0JBDwzACmiYa53uNH1Yyqax02qmurmlevWJlRNO0lwGYXem4iIiIiMYzJl9UVpZlXb23o7OgXi+/319rp9OOsguq0UElluofUIGAv3H3zl2pSDicAAtvEBEREQ2LyReVU71hGIs72gu+v1e9GeOQw/HGjMUd5TioqqpqWLNqdcKyrPeCnylEREREQ+KFEpXTxUopZ1/n3lS+O4iIbviMgBmPM/kadxTS4YgTqAo0r125OqxpWguAayodFREREdF4xeSLyumy7kOHo5Zl5Z1I+QOBWsd2lJ1KM/kah1LhqKNrui+VSvl3te4M27b9nkrHRERERDReMfmisrEs68qO9vaCimb4/b46Kx5XAHOv8UjZFsxEwglUBRpXr1wVFZFXAJhV6biIiIiIxiMmX1QuuiZy8d7OvYXM9xKfz1drxuKscjiOpSMRx+/31+9u3ZmIx2JJALdWOiYiIiKi8YjJF5XLGZqu13Tsyf/myv6AvxYKwvt7jW9mPKGUUvD7/fVrV6/JFN6QSsdFRERENN4w+aJyeUEkEolGIpG868X7/YE6M5FwoJh7jWtKwYzGlD/gb1yzctWArmknArii0mERERERjTdMvqgsHMe5fG9Hp1XALuL3+erNaIyZ1wSQjsYcn89XHY1E0banLWzb9v+rdExERERE4w2TLyoLx3Gu3NvRkXeJeb/fXwOBmPEE53tNAHYyqRzLVoFAoH7NylUxEbkZQHOl4yIiIiIaT5h8UTnMMQzj+Pa2/G+uHAgEGsx4woFi7jVRpKMx5ff7G7Zv3RZLJpM2gFsqHRMRERHReMLki8rhBel0OnXowMF0PhuLiPj8vjozEmXmNYGYsZhj+IwqAMaGteviLLxBREREdDQmX1QOlx3o6kqoPAtn+AOBeigFVjmcWOxUKjP0sG71ilVhwzBOA3B+peMiIiIiGi+YfFHJmaZ5VWd7R97FNgIBf2M6GlOscjjxpGPu0MPenh5zb0fngOM476h0TERERETjBZMvKrVqQzfO6mzvyGu+l6Zphs/nq05zyOGEZEbjjmEYVaKJvmbVqjiUejOA2krHRURERDQeMPmiUrtQQemd7R3JfDauqq5qtNOmY6dS7PaagOxUSjmOowL+QN2WjZujpmXpAF5T6biIiIiIxgMmX1Rql/X29ITT6XReyVTAH2hKRyJMvCYsBTMWV36/v86yLLV5w8aYZVnvrnRUREREROMBky8qKcuyruxo68hrCKE/4K8TTfR0JMYhhxOYGY87hs9XAxHxCm9cDGBxpeMiIiIiqjQmX1RKmohc1tmR33yvqqqqZjMac5RjlzouKiErkVBQSvx+f+3BAwfShw4eDCul3l7puIiIiIgqjckXldJpuq7Xte9pGzH50nXd7/P5qlMDYfZ6TXTubQIcv99XBwBrV61OeFUP/RWOjIiIiKiimHxRKV0WjURj4YGBEbuyqqurp1nJlGPnOTeMxjcrHlc+n78OANavXR9WStUCeFmFwyIiIiKqKCZfVDKO41yxt7PTHGk7TdN0fyDQkOwfYK/XJGHGE46miWb4jKp0KqW2bdkatSzrPZWOi4iIiKiSmHxRyTiOc1VHW3tqpO2qq6unOaaprHicvV6ThLJtWMmU4/cH6gBgzcpVEV3XXzRt2rTjKx0bERERUaUYlQ4AAILBYBOAnwG4EUAYwJ2hUOhHQ2x7JYAfApgPYCOAt4dCoS1Z698H4NMAGgD8G8A7Q6FQ2Fv3dQBBAC0ADgP4QSgU+nbWvksBXALAyiwLhUJ1xXqeU0yLYRjHt7e1tQ+3kYjogapAU7y7h71ek4wZTyh/Q31dHDjS0dae7O/rjzY2Nb6p0nERERERVcp46fn6AdxEsAXuvJAvBYPBq3M3CgaD0wE8AOAuAM3ezw8Eg0HDW38tgC8AeCmA4wEEAHw/6xBJADcBaISbhH00GAy+Luc0HwqFQnWZR/Ge4pTzwnQ6nTp88FB6uI2qa2qaHcuGGWV5+cnGjMcd3dD9mqYZALB29eqk4zhvq3RcRERERJVS8eQrGAzWAngNgM+GQqFIKBRaB+BeAINdpN0EoDUUCt0XCoVSAL4GoB7Ald762wDcEwqF1nu9XZ8D8LpgMFgDAKFQ6HOhUGhLKBRyvN6yEIAXlvDpTVlKqRfu37svodTQIwk1TdOrqgLNyb5+B+CIw8nGSafhWLbyB/y1ALBu9ZqwpmkzA4FApUMjIiIiqoiKJ18AFgGQUCi0NWvZegBnDrLtmQA2ZH4JhUI2gM1Z2x613lunA1iYe6BgMKgBuNzbJtuXgsFgTzAYXBkMBl9e2FOhDMuyXtzR3j5ssY3qmpoZjmmx12sSM+Nx5ff56wEgFo3Zu1pbo1VVVZUOi4iIiKgixsOcrzq487yy9cPt0Rps275htq0DMJBZEQqFVDAYDA9xrK8DMOH2smV8EsA2uMMTXwbg/mAweHUoFFqZx/PIW1dXVwDukMhCZJ5DfVdXVzHDKbr6+vqGurq6xe1t7fshMmiCb+i6ryoQaIwePGSNm14vAQDl/jtOQprozHjCqa2vrxYRXQFqzcrV8QWLFjXatj2vq6urvdLxTUZNTU21uq7Dtu3a7u7uhkrHM0lNmM/jiYrtuCzYjkfQ0tKSe31KNGbjIfmKwi2Oka0RQGQU2w62viH3WMFg8DNwk6srvOGLAIBQKLQia7O/BoPBV8Ad6ljU5AtuQZAvjHLffcUMpBTS6TQc20G4v/+ExsbB/8/UNB1WMgknnTY0XS9zhMPLzFGisXPS7pS/xqamU5RycOjgQcRiMSilNoywK41Sf39/5scnKxjGVDHuP48nKrbjsmI7HppUOgCafMbDRWYrABUMBk8LhULbvGXn4NjhgPCWvSPzizd08Cy4BTgy65cA+J23/kwANoCdWft8Cu58sitDodChEWJzUJo33l0AvlXgPvVwPyBPwOCJ6bjR3Nz8+QNdB97R19ffPdh6v99fU1dX1xI/0ms5tj1++phERNM0w3EcC8NNVqOCWImE7mhaJBqLdYtA27R+w/yLLr2kMx6Pn8WXufiampqW6Lr+pG3bV/T39zPJLY0J83k8UbEdlwXbMVEFVDz5CoVCsWAw+Ge4c63eCreE/G0AXjvI5n8F8PVgMPgG7+cPwf3AeMJbfy+A+4LB4H0A2gB8CcAfQqFQHACCweAnALwbbuK1P/vAXrn7SwEsBZCGWzHxtQCuK84zfV5LS0sKwIj3v8qWNSQgMt67wU3TvKKjrc2CUoPN5ZLamppZqXDYdsz0+LryVgAgHHJYZGY8oaqam+qg1CEFwZZNm3HpCy+bO2fOnLMBPF3p+CYb0zRjAKBpWmy8f1ZMVBPp83iiYjsuPbZjosoYDwU3AOB2uJe8BwD8B8DnQ6HQYwAQDAajwWDwcgAIhUI9AF4J4LNw53rdBOAVoVDI8tY/DDfhetA7lgng/Vnn+SqAOQC2eMeNBoPBn3jrfAC+CPf+X71whwW+JRQKPVOi5zxZVeu6fm57W3tisJU1tbXToZSe7O1nkY0pworHHU3XdN3Q/QAQi0bRvqctbNv2uyodGxEREVE5CYf9TAxdXV0NcIuJNI7zb6iudBznsa/+75270+mje7YMwwg0NjaeFDt02DLj8XHY8EQ0XTcc27YAvjGKqf6E4/WUZfUmEon+xsaGBSeceOKBm15783RN046D+0UKFYlpmucBWAPgfJ/Pt7bS8UxGE+jzeMJiOy49tmOiyhgvPV80eVx5pLs7kpt4AUBtXd2cdCzujM/Ei0rJjMfh9/meu2n5ti1bY6lk0gZwSwXDIiIiIiorJl9UVJZlvah9T5udu7ympma6JuJL9PQcs44mPzOecAyfUaV5tx5wHAfr166LW5Z1O1hNioiIiKYIJl9UTH5N0y5u33P0fC/DMAJV1dXTE0d6bGUz95qK7GRKOY6j/H5/bWbZ6hUrB3RdXwzgggqGRkRERFQ2TL6omC4QEX/b7t3ZyZfU1dW1mLGYY8ZiHG44ZSlY8YTy+X3PJV+9Pb3W3o7OAcdxWHiDiIiIpgQmX1RMV/UcORJOJpPPVTKsra2dIYCRONLLLq8pzozFlc94PvkCgNUrVsbhzvuqr0xUREREROXD5IuKxrKsa9t273ku8fL5fNVVVVXN8e4jtnKYe011ViLhQEREnp/itWXzlmg6lQKAN1YsMCIiIqIyYfJFxeLXNO3S9j1tcQAQEa2urm5OKhxxrESCww0JynFgJZOOV3MDAODYNtavXR+zLOv9YOENIiIimuSYfFGxXCgi/j3efK/a2tpZynH0RG8fu7zoOVY8rnIzrFXLV4R1XT8dLLxBREREkxyTLyqWq490H4kkE0nH7/fXBgKBhvjhbhvKGXlPmjLMWNwRTWDouj+zrLenx9zb0Rl2HOc9lYyNiIiIqNSYfFFRWJZ1Xdvu3baIaLV1tbOTAwO2nUpxuCEdxbEs2KYFf8B/VOGNVctXxOAW3miqSGBEREREZcDki4qhStO0S/bs2h2rra2dpWxHS/b1s8uLBmXF4vD5fEdVN9y6eUs0lUzaAN5cobCIiIiISo7JFxXDpQD0vZ175fnhhuz0osGZ8TgMw/BrmmZkljmOg7Wr18Qty/ogWHiDiIiIJikmX1QM1xw6eDDi9/uOS4UjDocb0nAc04Rj2SoQCNRlL1+1fMWArmknA7iiQqERERERlRSTLxoz0zRvbG9r8wugJ/pY3ZBGZsZiyuc/eujhQP+AtXvX7rBt2++vVFxEREREpcTki8aq0TCMc/fv3V+dONJrw+FULxpZOhZ3fIavWjTRs5evWLY8qmnaKwHMqUxkRERERKXD5IvG6irbtmV/W7tjxmIcbkh5sZMp5TjHDj3c1doaDw8MJAC8s0KhEREREZUMky8aE6XUu7r27ZPY4W4ON6QCKJjRuPL7/Q25a1YtXxm3LOt9AHwVCIyIiIioZJh80VgEbMu6btfWHY5jmpWOhSaYdCzm+HzHDj1cs3JVGO79vm6qSGBEREREJcLki8biC4bPp7euW89eLyqYnUwpxz526GEymXQ2bdgYtSzrw5WKjYiIiKgUmHzRaM10bPsj0YEBdeTAgUrHQhOSghmNqYA/0Ji7ZvkzywYMw7gYwLkVCIyIiIioJJh80ago2/mCmUjoO7dsZZENGrV0NOYYPqMq+4bLAHD44KF0Z0fHgG3bH6pQaERERERFx+SLRmMhBO8WXdf3bNvB2vI0anYqpWzTUoGqQH3uuuVPL4uKyBsBHFeB0IiIiIiKjskXFcw2zbv6du5JGH6/7Nm+gz1fNCZmNOoMNvRw+9ZtsUg4nATw7gqERURERFR0TL6oUOdrhnFT79Ztzv49bU4qkah0PDTBpSMxRzd0v2EYgezlSimsWLY8Ztv2BwFUVSg8IiIioqJh8kUFsdPpr+997MmBaWeeXrVr23b2etGYOZYJK5lyAlWBY+75tXrlyrBtWTUAbqlAaERERERFxeSLCnGVZhhXbfrxLyLTFp7i38ViG1Qk6UhU+QcZemimTbV29ZqoZVmfAj+viIiIaILjxQzlS+xU6mt7Qv/pb1600B/p6VWH9ncx+aKiSMdijgCaP+eeXwCw7Kln+jVNOxnADRUIjYiIiKhomHxRvl4ihnH+yju/0Tf3+mvqdnLIIRWT48CMxZyqQKApd1UkHLa3bNoctizrsxWIjIiIiKhomHxRPsROpe7a+ce/DcQPHrbnXHxhTeumzSwxT0WVCkccn99Xk3vPLwB4eukT/bquXwLg0gqERkRERFQUTL4oH68STTtt9V3f7j3puqtrFCDtrTvZ80VFZadSyk6bTlV1dVPuusOHDpu7d+4aYO8XERERTWRMvmgkmp1K/9+O3/05HN3fZZ/0kuvq9mzf7limWem4aBJKhcMq4A49lNx1Tzz2+IBhGC8BcHbZAyMiIiIqAiZfNJKbIThl9de+2ye6jhOuuaJ+x6Yt7PWikkhHYo4AEqiqqs9dt69zb6qjvX3Atu3PVyI2IiIiorFi8kXD0e1U+s5tv74/HD94yD7+8hdUBxrqtZ2bOd+LSkQ5SEciqqoq0DzY6qWPPDagadpNAE4rc2REREREY8bki4bzekCdtPabP+gDgJODN9Z1tu5yErF4peOiSSw1ELYN3Qj4fL7q3HXte9qS+/buDdu2fUcFQiMiIiIaEyZfNBTDTqe/vPXe34UTh7ttiODEG17UsG3jRg45pJJyLAvpeNyprq6eNtj6xx56ZEDTtNcAOLPMoRERERGNCZMvGsobleMcn+n1mnPJhVW1M2fo2zds5JBDKrlU/4Dj8/tqdUP3565r39OW7OzoCNu2fWclYiMiIiIaLSZfNBifnUp/acsvfh1O9vQ6AHDKzcH6vbt2O7FwpNKx0RRgp1LKTCSdmuqa6YOtf+Q/D/VrmvZyABeVOTQiIiKiUTvmZqZUeqZpzgEwp5B9mpubayORCOrr65eYphkrUWgAAF3Xg45tz9n4o18e1AOBADTBSS+5rvGpx58AIMeUAJ8sRNzy5iIQpSbt06yszMsqIhhhAGuqf0DVzT6u3u/3RxzHOereBgcPHMDOHa3R+QtO+alS6u0linaiWpz51+QtIUqinJ/HUxjbcYmxHY/M5/OtrXQMNPkw+aqMdwH4QiE7GIaB5uZmAHiyJBFlUZaFbb/+PYy62rlGXS1mLDkTNdOnYcfGzdB0fdL3loqm60y9SkvT9BE/e5y0CTudRl19fctg6599ehkWLFp4juM4a5TiVMRB3FfpACarcn4eE9txqbAd54WXA1R0TL4q46cAQoXsYFlWbSQSebK+vv4KwzBK9g2VruuvthOJj63/zo8PpsMRBQDnfeT2ae07WmujAwOTer6XCEQ0XVeObSs1Ur8MjYoAmqYZjuNY+bzCiZ5eqWuZrUci0S7Hto/6+js8MIB1a9Y2LTn3nCiAmwBYpQl6wlkM94L1FgDbKxzLpFSuz+Mpju24xNiOiSqDyVcF+Hy+AwAOFLJPd3d3AwD09fVtaGlpCZckMKDKTqf/vfGHvwgnuo8kAUDz+3HSjdfWPhT6hwImd/eCUu64QzfxmtzPtWIyr2qeXVVWMqnMeEKqAoHGcDi8P3f9o/99uPvMs8+aGwgELgPw7WKGOlFlDdHaziEzpVGmz+Mpje249NiOiSpj0g8ho4L8PzuZatzww1/0ZRac/NLr6vRAQNu2fsOk7vWi8SvR22f7fL5an89Xc8y6eNxZ+sij/bZtfxkFzqMkIiIiKjcmX5RRa6fNL2z4wc8iZjT6XK/Ewte/umHHps2OmUpXMjaawpx0GqlI1KmtrZ012PoVy5YP9Pb02LZtf6fMoREREREVhMkXZdxuxmLVG3/0y/7MgqoZ07UTrnxh3cYVK9nrRRWV7OuzNU181dXVTbnrlFII/eXvvZqm3QzgxvJHR0RERJQfJl8EAI2Oaf7Pum/9MGwlEs/1ei1+02sbYgMDqm1HK+c/UUUp20ait8+prqmeqWnaMXNV9+3dm1q1fEWfbdn3AGisQIhEREREI2LyRVBKfSTZ22ds/sWvB55bKIJFb3xN84ZVqxXLeNN4kA5HHTuVVnV1dbMHW//Igw/1RqKROtu2v1/u2IiIiIjyweSLZirb/vjqr3037KSfn9fV8oKLq5pOPsm3btlyu4KxEWVRiHcfsQ2fUVNVVXVM75Zpmuov9//xiIjcAuB1FQiQiIiIaFhMvqY4ZdufiXUdsLf/5g9HlZk9/e1vbtq9ZZsT7usbaleisnNME4meXrumtmaWruv+3PX7OvemnnxsaY9jO3cDWFSBEImIiIiGxORrajsRwPtWfOnrYWU/38FVPXOGftKNL25Y/cwzLLRB4046HHHMeELVN9QfLyKSu/7Jx5f2tbe1pS3L+ieAhgqESERERDQoJl9TmGNZ/9u7fWd899/+Gc1efsbb39wYHRhQu7ds42QvGpcS3UdsOMqoq69vyV2nlMKffn//kWgk2mLb9p9R3JvJNwA4HcASALMBHJP8EREREQ2FydfUdYZo2luWf+H/BpBVUEPz+bD41jc0r3rqGYeFNmi8Uo6D2MFDls/Qa2rr6o7LXZ9MJJ3f3vOrw6ZpXm7b9t0Y22fd2Uqpb1jJ5B4AAwC2AFgP4ICdTnc7tv0LABeO4fhEREQ0RRTzG2GaQOx0+huHVq0N73v8qUT28kWve1W9UV+nr1u23KxUbET5cEwT0QOH7Lo5sxtRW+vEYrHu7PU9R46Yv737V4fe8o63vk5ELE3T3gkg3wIyAuBqO5X+oh7wv7Bn09aBPaF/p7ueWdExsKfddEwTdcfPMWZfcmHVgle9/ObZl174Nsc0H9b9/g8A2FHs50pERESTA5OvqekqzTCuf/Zzd3YctVQEZ773ndPXP7vCTieTFQqNKH92KqViBw9ZtbOPaxZN9GgkejB7/f59+1K/ufveA296661vNAxjmq7rbwQQH+GwF9ip9Dc1n/HC9v88PLDu2z9s79m8LZ27Ue9AON27dUd6692/DU8/6/S+y+76wsXHXXT+Jk3XPwXgOwA4Z5KIiIiOwmGHU49mp9Lf2f33f/Uf2bD5qAvKeTe8uKbplHn+FY8v5UUjTRhWMqmiBw5aPsNX39jYeGLuTZj3de5N3f3Tnx+Ix+LXWpa1CkNXQTzFMc0/KqVW7n/ymbP/dPmNHY+8/X3dgyVeuXo2bU2HXv76Q09/7LM9VjL5FTtt/gO82TMRERHlYPI19bwBgjNW3PGV3qOWiuCcj75vxqaVq51wX39lIiMaJTuVUpF9XRZs29/U1HRyVXV1U/b6wwcPpX/yvR907e3oPN5xnE0APg4gU6r+VMey7lGOs+PI5m3Xh172ur3/ef3bDvdtby1s6K1S2Pbr+8N/e/Er98UPHb7KNs31AF4C4CK4c8KWAFgIYCYAfUxPmIiIiCYkDjucWmrsdPqbm35yT390f9dRc1/mvujKmplnn1H15y/fxbleNCEp20K066Dtb6jXaqY1zayuqpqeSqX6UqlU1LbtdDwed379y3sOXXDxRQ0vvv66L+uG/hkNOKIZxoKezdsG1nztuwc6HnosjjwKzWg+H5oWneKffsZp/ubFCwONp5zsqzvpxEDdnOOMquZmXdM1AJgH4F+DxqqUsm27TynVpWnaHl3XdwHYDWAngFYAe8Fhi0RERJMOk68pRCn1MTMaa1j7je/vO2qFCC74n4/O2LRytd3XfaRC0REVg0I6HHbMaNTx19dr/vq6adU11TOUUspxHBsKas/OXca9e/fK2UvO9i0595ymQKAK6XjcN+uCc6uM2hotuq/LNCNRRykFX22NVj1jul57/ByjYd6JvsZTTg40LJwfaDxxrk/3+ZCIRNSRg4fUke4jaG/bowZWr0a4v9+KR6MqmUjCqK/TtaqARCPRfUqppD8Q0KprqvW6ujq9vqHeaGhsPK6xsfH4adOnXzFt+jS9rr6+Rtd13XGctG3bHZqmbdV1fRuAXXATs10ADoKJGRER0YTE5GvqmKsc539W/O9Xe8xY7Kiv9k95xUtqp5++uOoP//t/7PWiSUE5DlIDA05qYACiG7Ye8Ium6wJAlG3bEdNUj25vxWN/+itOXrRQFpxxeuD4V9xYdfq7bpOq2tqj7t1lpU1E+/vVQG+vOnLkCFrXrVfd/37QOtx1QMUikeEDCUfs6unNek1DwwnRSKQrEg7HIuGwfRiHBt1cRNA8rdmYOWuWf8bMmY3TZky/csaMGVdOmz7NqKmtrdU0TbzErEsguw2fsRNAh/foBNAO3nuMiIho3GLyNUXYpvntvu07k9t/+8ejrhbFMHDB/3xs1pqnnrEHenuH2p1owlK2BStuKQDHjCdUjoM923eoPdt3PLfO8PngDwQAAKaZhpkasd7GcGdHoqfXVo6j1TU1HR+LRg+kUqkhMzalFHp7eq3enl5rx7btR1Vl1HQd06ZN802fMd3XPK25uqm5+dym5ubzm5qb0dDQ4K+qrqoRERiGYVuWBQA/V0qtFpHs4Yy7AKTG8ISIiIhoDJh8TQ0v0nT9pqc++j+dufNZznrXW5uqjptpPPXTn1kVio1oXLFME5ZZ3E7gZF+/oxwHddOmzRFNtGQiOVDoMRzbxpHubvNId/egwem6jqZpzb4ZM2bUzJw167jautpTmpqb50+fMV0am5qq/H5/QCnlWJa1V9O0DbqubwCwyXvsRP73QCs2HUAdgCq4RaBSAKIAxpL1EhERjUtMvqYAO5X+0a6/PNB3eM36o77xrp45Qz/vY++f8cR//uskYiPd+oiIxiI1EHaU7aB25ozjNNGMeDzeU8zj27aNnu4j5kBff7L7cDfCAwP9lmU9956vq6/XZx03yz/ruFlVM2fNumL2nDlXTJ85oyoQCFR5Qxl3GIaxRkQ2AtgCYBuA/Rj7/LImAKcAWADgFKXUyZZlLQQwV9O0mbqu1w/xfGKO4+z35r2tB7ACwDMARhjrSURENH4x+ZoCNJ8xf/cD/z6Yu/wFd31+5sDAAFY9+TQn7xOVQToadRzHUbXHzZyu6Zov96bQpRSNROxoJJLYs2t3Int5Q2Oj3nJ8S+C4ObNnHzd79iuPm33cTY1NTbVe4Y+UbdudIrLbMIx2AIcA9MBNgJJwEzMdbq9VPYBpAGZZlnWSUmqepmlzM8lVMplMDPT3p3p7eqW/r88OD4TNSCQSiUdjfclk0rEsUykF6IYuVVVVWl1dnd7U3Nw0fcb0q+Yc33L1zFmzajVN02zLWmn4fH8G8Ce489yIiIgmDCZfU4U6erzh3BdfVTM/+NKGX3/ne5ZymHsRlYsVj6to10Grdvas+sbGRn8kEtnvOE6lhvwhPDBghwcG4tu3bnuu+1tEMG3GdN/MmTP906ZPb2xqbrq4vqHhkvr6elVdU635/H7d0HVNREQppSzbdsx02k7EE040GtUi4bAzMDBg9ff2RXp7enqPHOlJp1OpkWv4D0PXdZx08rzqRYtPXXTaGWfc0dDY8A3Lsp42DONHAP4CDlMkIqIJgMnXFORvbNAu/85ds1c/+ZS9r619TBdERFQ496bQB6za2bP8jU2N86LR6AEzbY6bsb9KKfR0HzF7uo+Mmwqotm1jz67diT27dice/Oe/MffEEwPnXXj+GWecfda9mqb9QNf17wD4IQBWDiIionFLq3QAVH6Xf/POWaaI/ljon+zyIqoQ96bQB+x0JIqG+oYTautqZ4kIy8TnaW9nZ+qBv/yt+xv/99WOxx56xIqEw590HGe/UuprAGZVOj4iIqLBsOdriln85tfVn/zyGxru/dZ3rWJXdCOiAimFZE+vY8UTqmbG9EZ/c1N9Ip44kkwWXg1xqkqnUmrZU0/3P/v0M/3nnHdu/eXXXPWexsbGD4jId0Tka2BP2HgwB8ClAJbYtn2a4zgnA5gmQJUCHChERdClG0ariGwGsKqy4RIRlQ6Trylk5jlnBV7wlTtmP/r3kH2gcy+HGxKNE1YiocL79luBxkatpqlxVnV19fRkKtmXSqbClZwPNpEopbBuzdrI+rXrIkvOO7f+qhdd8766+rr36bp+J4DvAhg3wzqnAA3ApUqpV1mW9SqfzzffTJvp7u7D8e5D3Rjo77fi8bhtWZYSES1QFZhWV1c3a9r06ecdN/s4vaGxsU7X9bRjO9B0LQigDUBfhZ8TEVFRMPmaIgJNjdrl3/3KnB2bNquVS5/kcEOi8UYppPr7nXQ47Pgb6rWqhoYZNTU1My3TSpqWFbMsM2Vbdtp2HDO3gE6GiIhoogOApuu+zAe8co/vKKWcyZ7MKaWwfs3ayMZ16yMXXnJR4xXXXP25QCDwYV3XPw3gXlTufmZTwckA3mZZ1tt1XZ/dtb8rvGPbtvSuHTvbDx44kB6i2R6jurpaW7BoYcOi0xbPWrBo4af8fv//KKX+oev6TwA8grHf/oCIqGIk3w9Dqqyurq4GAAMAGltaWsKF7Kscxxzo2KtiytF/8/0f2RxuOBQRTdcNx7Yt5N6NmopG03WfY9tshHnQAwHx1dSIUV0lut8vorlzwpQCoJRSgBKBuGlX/sd1HMd2bMe0HTtlW3bKtMykZVopeHnaZOLz++SFV1zRfOnllzWISLthGB8B8G+M4bmO5fN4EtIAXGdZ1kd0XX9xb09PdN2atYkNa9dHopHIqBNdwzACDY2NJ0UjkY6TT5mvn3fB+XULTl3U4DhOp2EY3wRwD4BY0Z7FFMR2TFQZTL4miLF8SNqW5Qz09uLeb33PikejpQlwUmDyVQ5MvkZPdB2aYYhoGrKzLaWU2xnmOFBKQUQMx7Yt5Xjt2E3PIJoG0XXRDEM0w4Du94keCED3GZpSUJZlJk3TiqZTqZht25OqdHttXa1+zXXXNp9z3rlNjuM86yVhK0dzLF60AgACAN5kWdanNE2bv2PrtoHly56NdLZ3JItx8EzyFR4Y6MjcLLy+vl6/6NJLmi64+MJan9+f1nX92wC+D/fec1QgtmOiymDyNUGMqedLKfXHX95j71y/kUM1hsXkqxyYfJXaKNqxpsGoCoivulozqquh+32abduWmTbDqVQqkrn4nQxmzJzpu/bG65sXnrqo0XGcv+u6/hkA2ws5xhS/aG0E8C7btj9hW1bdmlVros8+/Ux/JBy2AUDXdb9uGH5N0wwRCBTgOI5l27bptaO82uRgyVfWOjn/ogsaXnD55XV19XW6iHxfRL4J9ybglKcp3o6JKoZzvqYI2+I0ByIaguPAiieUFU/YAKAZhu2rrdF8dXVNVU2N02zbNtOp9EAymQw7jmNVOtyxONLdbf7+1789PPfEEweuvfH6a044ce5Wx3F+q+v6FwHsrnR849hspdQHHcd5fzKZlOVPL4uufHZ5p2maEggE6uobGup9PqNGREQ5jnIsW3m9sBBdE03XRSnAtqxk2jQjqVQy6tjOqL6EsSxLrVi2fGDlsysGzjnv3PrLr77yPY1NTR8E8FNN074GYF9xnzoRUfEw+SIioqM4loXUQNhJDYTdRKyuTvPX102vrqmeYZpmIpVM9adSqSgm8ByxvZ2dqbt/+vNDpyxcEH7Rdde+YnbLnFscx/mdVx2xoJ6wSe40x3E+CuDWgf6B5DNPPhVZt2ZtWNOkqqqq+ri6+vp65Tgw43EV7+u3rWRSKXuQL/s0DUYgIEZ1lT9QWzujpqZ6ZlZbiowmsOwKl2eefVbdFddcfdu06dPeA+BeTdO+CmDXmJ45EVEJcNjhBDHWYYe//+kv7D2bt3DY4bA47LAcOOyw1ErXjvVAQPz1dZq/rk4AIJ1Oh5PJZP9kGJa4YNGimqtedHV9ywnHNzi2/S/dML4G4GkMkmBOgeFaGoBrbcv6qG4Y13bt2x9++omnItu3bo35/f66quqq6YZhBMx4wkmHI44ZT6hC83DdHxB/Q53mr6vTlFJ2MpXqTSYSA0opBxh+2OFwTjvj9Norrrmq/rjZs+sdx/mbrutfxSjn9k0iAuBUZO61lkqfqhy7BUCtZdunGLq+SvP5d2mGvgXAGgDPwm3fRFQCTL4mCCZf5cDkqxyYfJVaGdqxCHy1tZq/vk581VWabdnpVCo1kEpN+PuSyYknz6t64RWX1y9YtLDRtu2thmF8F8D9AJ7rnZnEydcsAG+xLOv9mqadsGPb9oFlTz0d3r93n1lVVdVQVVU1TUSMdCTqpMJh2ylG5VxNQ6C+Xgs0Nmiia0glU/2JRKJP0zR9NMlXxsmnzK++/Kor608+ZX6TZVmrDcP4NoC/AJjwXxTkyQ/gWse2X6VsO6j7/TMTR3pjvVu3mf0796j44W7LSiSg19bO9AUCvXUntGjTTj9VmhacUqv5DN1OpdcYVYG/APgrgNYKPxeiSYXJ1wTB5KscmHyVA5OvUitvO9YMA/76Os1fX69pui6macZT6VQ4nUpH1Dj5D0bTNMMwDL+m635d13yaaD63IIToookuomm5pfrr6+tx5pKzccbZZ8Hv80M5dgSO6hRd2wpNOxAOhz9QV1d3s2EYm+DeBHiitulaAC+1LOtWXdevj0WjybWr1iRWr1g5EE8kjKqqqsZAwN+oHAepgYiTDkccVZL8WuCrq9WqmhpF8/k0yzTjhs9XM9rkK2PmrFm+Sy67tPGsc5bUaZqW0DTtHhH5NYD1mMDDZoegAbjCse03wXFep4CqA88sj7b/55Fk58OPxyMde4+er6mJVnviCQtinft2wXF7HDW/H3MuubD6xOuuqZ33kmt9DSfNrbeSqW1GVeBXAP4AoL3sz4pokmHylSMYDDYB+BmAGwGEAdwZCoV+VNGgwOSrPJh8lQOTr1KrVDsW6FUB8dfVaf66GoFoME0znk6nI+lUKqaUKkuPmGEYAcMwqgzDCOi6Xq0bul9ERCkFx7Qcx7LgPmylHBvKdpTySvRDeaPnMomYCHSfgYWnn6addf55cvKiheJYlkoPhE3RNH+god7SAwFDOY5jp9N7RdO26H7/ZgA7AOyEW8DjIAq7KbAB4DgALQBmez9PB9AEoA5uiXcNgAUgAff/hR7vPPsAdORxztkArrdt+1UicoNt29K6fUds/Zq10Y62dsfn89X6/f4G3dD9VjLlpMIRZcZiTrmak1FdLYHGBs1XU63Zlm0mU8neVDIVyQxJHA2/3y9Lzjun/twLLqie0zKn0bKsPYZh/B7A3wGsxcS9cbMAOF8p9TrHNN8suj7z4LOrwjv/9LfE7r//O2pGo0P/0QZJvnJNO+1U38LXvrJhwU3BQN0JLXVWKrXWCATug/u67SnJM3Lb+EneYw6AmQAaAFQB2Ab3ZulEExaTrxzBYPC3AGoA3ApgAYBHANwcCoUer2RcTL7KgclXOTD5KrVx0I5FYFRXi7+2RjNqakTTNbEsK2WZVsw0zYRpmomxXEhnzmIYht8wjIBuGFWGrlfrhuEXgTiWraxUStmptHLSaWWn08qxbIy1oyNQXY1FZ52pnXrWGXLy4lM1n9+P3tZdqcie9nR6IGKLoaP+xBPQOH+eUT1j+v9v796D7LzrOo6/v+eym81umiZNmjSU0tIabCktEVFAgSLqCOqDQoHxUgW8oKKjiONdqiDoyCAOFMcLI15QRkVLf9MRKUzlUssAjlZbijRJW2mbtGkgm8smu+fy/PzjeZaebtM2STfP2bTv1/TM6Xmuv3P2u5vzOb/f8zvT0WpFLsvBsNffQy73EK2vtNqt/dFqzwM5l8PJXJYzuSzXQZwR7daGVre7dvErswdH5nsLs/sX5vftG/Zm99M7NMdwfiFyWdLqdOhMr86Ta0/Lq9ava69av647cdqaKYA8HPaH/f4uiJ3tyYkdETEHzOScnzQcDC7tdLtPmj8y39u5Y0f/tv/9Uv/O2+/I5DzZ7nRWtVrRGvb6ZX9uLvcOzZXLMrTwhER0Jic6nenpcmLNTESrFf1+f67f6x3s9Xpzj2V46/oz1nee8cxL11x08dMnz9y06bThYLiP4Lp2u309cCPVG/yVPHx2Cnh+LsvvLvv9y9uTk1v2/s8X9m//0DUL2//xwweP7Ln/2Np+DOHrayI4c9slkxe8oljz1Je9dGL6rM0zg/mFne3JiWsj4lPAZ4FdHPsvWVCFqq3AhcCFg/mFS4AL25MTmyOiVQ4Gw4V9s/MLs/sHC/sPlGdcfOHaVqdzqNXprD3Gc0grkuFrRFEU08BXgW0ppVvrZe8EzkwpXTHOthm+mrAC3rQ+ARi+TraVVsdBe3IiulNT0ZlaFe1Vk62IoByWw+FwuDAshwvlsOyXZTkscznM1ZvA+suhI6IaE9hutVqdVrvVabXaE+1Wa6LdbncJKAfDPOz18nB+IQ96VeA66mx7y6zT7Xa3nPPkwblP2xrnnHdenHXuOa3JqSmO7Jst923fuXBwxx0L81/dNxz2ehkgOm06ExOtzvR0qz3RDYByMMiDI/O5d+DgcGHf7PDI/XuHh++7fzi3+97BoXt2DwaHDx/bzy+CqQ1ntNeef15347ZLJs+4+MLJ0y84b3L1li3dqQ3rO52JCRbm59m9azd3f/nL3HXX3ezdcz/kMpfDMpeDAWWvx2ChlwdH5ss8XAnfJjBax+TO1Krozky3unWYHw6G/cFgcHgwGMwPBoOF4XC4cCLDXNesWdPe+vVPmz7vgvNXPeXcc7sza2amy7KcHw6HX+h0Ov8REV+kmjXxDuDLwKFlfqKPZpLqg+BnAN8wmJ9/Ybs78Q25LGPPf9508M6PfLy38+prDx26+57j/6EdT/gaFcH6i542ce53ffv02Zc9v7tx2zNWd6amJob9/oE8GO5sdTq3t7qd3VSvVR9oA6tzWZ4+7PXPJudzWt3O2a1OZ3Uuy3x4z/1zs9t3Dvb97/ZydvvO3uz22/uzO27vzd1735DygWZt/YHL17zgnb/baU9Onnncz1VaQQxfI4qi2AZ8NqU0MbLsCuAXU0rblus8u3btmqT6g3o81lANKTmbkQu/j8WWLVv23/hvn8x3fulLhq9HVL3Rqz6R9xfj5Aio/iEePv4ut1gpVnodB61OO1rdieq+046I1jHtmXNJORjmcjgkDwa57A/IuRzDc3xoHUcE6zdujE1bzmLD5s1xxsaNMTW9+hGPMjgynwfz87ns9evhkP28OAzya2dqtarvyep0o9Xp0JqcaNVTtscjHJq5gwfZu2dP3rv7vnzvPffk/ftmObV+5x6ujoNWpxPtyYlodbvRaj20dnLOOWeGmZypelhzJpfkB16A/MB/D3pRpmdmYvNZmzsbN53Z3rBhQ3v19PTDFmfOuU819LNX3/r1bThyW/wwYfQ8Ud9aVHXUAbpU7wsmgdURMbX0fOVwyOH79gzmdt83mNt9b7/sP7aQHAG022sYDg8+lr8UEcHkurWtVevXdSZPX9vqTk+3OlOrotXtRkQrci5zORhS9np5cORI2Ts0V/YPHSoXZg+UvQMHhuUxfg/puq3nT6zb+nWDe+/fs+XEW3t8HmcT6miF8Hu+HmyG6jqvUbNUwWc5/Rpw5Qnue9xfHjkcDHjei14Yz73sBe0TPOcTzbG9E9RjYS2efI/XOo4l9+P0iHW8+OFmLJ3No9aZWrUYopbtZ7V4ztUzM5wzMxPnPPWpK+F1eixO5LUJlun9zSP9DCOiSxWaGtFqt5nZclZnZstZHarrn5bLcr/HeZCgFa1OB1ZNxsRpa1qrN534scrhcJJmp8E/1X9/tAIZvh7sENVFnaPWcpw9Tcfg94A/PM59Trjn6749e47zVE9Mp59++qXtdvtTw+HwBbOzs/897vY8Tp1wHevYWMeNsI5PMuu4EdaxNAaGrwe7DchFUVyYUvpiveyZwC3LeZItW7YscJzfNbJr167F/z1oN/jJ0e/35wBardacr/HJYR2ffNbxyWcdn3zW8clnHUvj8XgdlnJCUkpzwIeAtxZFsaYoikuB1wDvH2vDJEmSJJ3yDF8P9QaqC2N3Ax8B3pxSun68TZIkSZJ0qnPY4RIppVngleNuhyRJkqTHF3u+JEmSJKkBhi9JkiRJaoDhS5IkSZIaYPiSJEmSpAYYviRJkiSpAYYvSZIkSWqA4UuSJEmSGmD4kiRJkqQGGL4kSZIkqQGGL0mSJElqgOFLkiRJkhoQOedxt0GSJEmSHvfs+ZIkSZKkBhi+JEmSJKkBhi9JkiRJaoDhS5IkSZIaYPiSJEmSpAYYviRJkiSpAYYvSZIkSWqA4UuSJEmSGmD4kiRJkqQGGL4kSZIkqQGGL0mSJElqgOFLkiRJkhpg+JIkSZKkBhi+JEmSJKkBhi9JkiRJaoDhS5IkSZIaYPiSJEmSpAYYviRJkiSpAYYvSZIkSWqA4UuSJEmSGmD4kiRJkqQGdMbdAD2yoihOB/4MeAlwAHhbSumPx9ooaYmiKCaB9wIvBjYAXwbenlL623r9xcD7gEuA24GfTil9emT/y4E/ADYB/w68NqV0T6NPQhpRFMUZwJeAHSml59TLrGOdMoqieAXwO8B5wF7gjSmlf7aOpfGy52vlu4oqJG8Bvgd4a1EULxpvk6SH6AC7qMLXWuD1wB8XRfHcoii6QAKuBtYBvw9cUxTFOoCiKL4eeD/wk1TBbTvwd40/A+nB3gncvPjAOtappCiKbwP+CPgpYA3wbOAm61gaP8PXClYUxTTwSuA3U0oHU0r/Bfwl8LqxNkxaIqU0l1J6c0rp9pRSmVK6geoT0+cBlwGrgXeklBZSSh8A7gBeXu9+BfCRlNLHU0pHgN8CnlcUxfnNPxMJiqK4DDgf+OuRxZdhHevU8RbgLSmlG+q/yXtSSrdjHUtjZ/ha2bYCkVK6dWTZTcDF42mOdGzqDw6+EbiFql5vTimVI5vcxAN1fDHw34srUkpfpRq2aJ2rcfUQ2quAnwHyyCrrWKeEoijawDcBG4qi2FEUxa6iKP6q7t2yjqUxM3ytbDNU13mNmqUaQiCtSEVRBNWwlc8B11HV8f4lm83yQB0/2nqpSb8GfDSldPOS5daxThWbgC7wKqqerouAjVTDEK1jacwMXyvbIeC0JcvWAgfH0BbpUdXB60+AJwGvTillHr2OrXOtCEVRfB3VsKsrj7LaOtap4nB9f1VK6e6U0izwNuClWMfS2Bm+VrbbgFwUxYUjy55JNZRLWlHq4PVeYBvwkpTSXL3qFuAZRVGM/r15Jg/U8S3ApSPHWQecg3Wu5n0L1QcHdxZFsRd4D/Cs+v9vxzrWKaAOW3fx4GGzi/x7LI2ZU82vYCmluaIoPkQ1w+FrgacCr6EaSiCtNFcBzwFenFIaHS77CWAeeFNRFO8GXkFVy1fX6z8AfLaeneszVBeKfyaltLOphku1fwA+PvL4lVQ9YQVwH9axTh3vA362KIp/AeaAX6Wa5fATWMfSWNnztfK9gerTq93AR4A3p5SuH2+TpAcriuIpVBMUXATcVRTFofr26ymlPtWb18uprh34DeD76gu5SSl9EfgxqjcLXwGeBvxg889CT3QppcP1MK27U0p3A/uAXv3YOtap5O3ADcCtwE4e+J4v61gas8j5aL3SkiRJkqTlZM+XJEmSJDXA8CVJkiRJDTB8SZIkSVIDDF+SJEmS1ADDlyRJkiQ1wPAlSZIkSQ0wfEmSJElSAwxfkiRJktQAw5cknSQR8dsRcWjc7XiiiYhz69d+y7jbIknSKMOXJOnx5lzgSsDwJUlaUQxfkiRJktQAw5ckjVFEXBwR/xoRhyLiQERcExEXLNnmTRHx+YjYHxF7IuLaiNi6ZJu/jIhbIuKyiPiviJiLiM9FxLOOoQ2/HxE31224JyI+GBFnLdnmE/V5fzgidkTE4frx+oh4SkR8tN7/CxHxoiX7tiLi1yPijohYiIjtEfELR2v/kmUbIiJHxGtGlt0ZEVdFxM9GxP/Vr8mHI2Jjvf4y4N/qzT9f758f7TWQJKkJhi9JGpOIeDLwaWAT8KPAjwNbgU8vhona2cBVwMvqbVrAjRGxfskhNwPvBt4BvBpYDVwdEd1HacqZwNuB7wZ+nmrY3icjorNku23AzwC/CPwU8K3A+4APAdcCLwf2AP8UETMj+70DeCvwAeB7gQ8D74qI33qUdj2coj7OG+r2Xga8p173n/VygNcCz61vkiSN3dJ/WCVJzXkjMAF8Z875foCI+CywnSpA/DZAzvmNiztERBv4GFXIuRz4s5HjrQdemHP+Qr3tfL3tNwM3PFwjcs6vW3L8zwB3A98GXDey6Vrge3POX6m3vQR4E/DTOec/qZftAm4GXgxcExEbgJ8D3plzXgxb10XEacCvRMS7cs7HOylJAEXOeaE+5wXAL0dEK+d8ICJurbe7Jef8H8d5bEmSThp7viRpfJ4PXL8YvAByzv8H3FivAyAinhMRH4uIrwAD4DAwQ9VLNmrXYvCqLYaQsx+pERHxkoi4MSL218e/u1619Pg3LQav2m31/cePsuzJ9f03A13g75cc64PANFVv2vH65GLwqt1an+PMEziWJEmNMXxJ0visA+49yvJ7qXqxiIhzqHqf2sDrgW8Bnk3V87VqyX6zSx736vul231NRDwbSMAu4AqqIXrPeZj9Hu74X1uec156znUjz2nU4uOlQyePxcO142GfpyRJK4HDDiVpfL5Kdb3XUpvrdQDfRdXL9fKc8yxAfS3WiYSWo/l+YD/wqpxzWR//Kct0bHjgeWwC7hlZvnnJ+nmqIZijlus5SpK0ItjzJUnjcwPw4og4Y3FBPQnH86gm4gCYAjLQH9nvVSzfh2dT9bFHZwT8oWU6NsDn6uO/asnyVwNzVBNkQDXU8ewlE3V8xwme054wSdKKZM+XJJ1c7Yi4/CjLPw+8i2pGvusi4m1UQwt/h6o36L31dtfX9++PiD8FLgJ+iYcOvTtRHwN+AXhPRFxNNezwimU6NjnnvRHxbuCXImIB+HeqyTheD1yZc56rN/1n4C3AX0TEnwNPB37iBE97GzAEXhcRQ6DvxBuSpJXAni9JOrlWAf94lNuLcs53AS8A9gJ/A/wFsAN4/uIkHDnnm6kC2rOopnP/QapZDvcvR+Nyzv8C/ArVNPapbs/3LMexR/wycCXVdPrXAq8A3pRzfutIO26t128DrgFeCvzIiZws57yXarbIFwKfogq6kiSNXeTsd09KkiRJ0slmz5ckSZIkNcDwJUmSJEkNMHxJkiRJUgMMX5IkSZLUAMOXJEmSJDXA8CVJkiRJDTB8SZIkSVIDDF+SJEmS1ADDlyRJkiQ1wPAlSZIkSQ0wfEmSJElSA/4f1aauNcyyb+sAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 800x480 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<ggplot: (99639193107)>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plotnine.options.figure_size = (8, 4.8)\n",
"(\n",
" ggplot(\n",
" data = df_viz_5\n",
" )+\n",
" geom_density(\n",
" aes(\n",
" x = 'LoanAmount',\n",
" fill = 'Loan_Status'\n",
" ),\n",
" color = 'white',\n",
" alpha = 0.85\n",
" )+\n",
" labs(\n",
" title = 'The distribution of loan amount by loan status'\n",
" )+\n",
" scale_fill_manual(\n",
" name = 'Loan Status',\n",
" values = ['#981220','#80797c'],\n",
" labels = ['Default', 'Not Default']\n",
" )+\n",
" xlab(\n",
" 'Loan amount'\n",
" )+\n",
" ylab(\n",
" 'Density'\n",
" )+\n",
" theme_minimal()\n",
")"
]
},
{
"cell_type": "markdown",
"id": "expired-sussex",
"metadata": {},
"source": [
"## One-hot encoder"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "manual-naples",
"metadata": {},
"outputs": [],
"source": [
"# Add new column of Loan_Status with 999 in testing data\n",
"df_test['Loan_Status'] = 999\n",
"# Concat the training and testing data\n",
"df_concat = pd.concat(objs = [df_train , df_test], axis = 0)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "moving-notice",
"metadata": {},
"outputs": [],
"source": [
"# Drop the column of Loan_ID\n",
"df_concat.drop(columns = ['Loan_ID'], inplace = True)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "transparent-constitution",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['Gender', 'Married', 'Dependents', 'Education', 'Self_Employed', 'Credit_History', 'Property_Area']\n"
]
}
],
"source": [
"# Categorical columns\n",
"cols_obj_train = ['Gender', 'Married', 'Dependents', 'Education', 'Self_Employed', 'Credit_History', 'Property_Area']\n",
"print(cols_obj_train)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "limited-accountability",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dimension data: 570 rows and 15 columns\n"
]
},
{
"data": {
"text/html": [
"<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>ApplicantIncome</th>\n",
" <th>CoapplicantIncome</th>\n",
" <th>LoanAmount</th>\n",
" <th>Loan_Amount_Term</th>\n",
" <th>Loan_Status</th>\n",
" <th>Gender_Male</th>\n",
" <th>Married_Yes</th>\n",
" <th>Dependents_1</th>\n",
" <th>Dependents_2</th>\n",
" <th>Dependents_3+</th>\n",
" <th>Education_Not Graduate</th>\n",
" <th>Self_Employed_Yes</th>\n",
" <th>Credit_History_1.0</th>\n",
" <th>Property_Area_Semiurban</th>\n",
" <th>Property_Area_Urban</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4547</td>\n",
" <td>0.0</td>\n",
" <td>115.0</td>\n",
" <td>360.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5703</td>\n",
" <td>0.0</td>\n",
" <td>130.0</td>\n",
" <td>360.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4333</td>\n",
" <td>2451.0</td>\n",
" <td>110.0</td>\n",
" <td>360.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4695</td>\n",
" <td>0.0</td>\n",
" <td>96.0</td>\n",
" <td>360.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6700</td>\n",
" <td>1750.0</td>\n",
" <td>230.0</td>\n",
" <td>300.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n",
"0 4547 0.0 115.0 360.0 \n",
"1 5703 0.0 130.0 360.0 \n",
"2 4333 2451.0 110.0 360.0 \n",
"3 4695 0.0 96.0 360.0 \n",
"4 6700 1750.0 230.0 300.0 \n",
"\n",
" Loan_Status Gender_Male Married_Yes Dependents_1 Dependents_2 \\\n",
"0 1 0 0 0 0 \n",
"1 1 1 1 0 0 \n",
"2 0 0 1 0 0 \n",
"3 1 1 1 0 0 \n",
"4 1 1 1 0 1 \n",
"\n",
" Dependents_3+ Education_Not Graduate Self_Employed_Yes \\\n",
"0 0 0 0 \n",
"1 1 1 1 \n",
"2 0 0 0 \n",
"3 0 1 1 \n",
"4 0 0 0 \n",
"\n",
" Credit_History_1.0 Property_Area_Semiurban Property_Area_Urban \n",
"0 1 1 0 \n",
"1 1 0 0 \n",
"2 1 0 1 \n",
"3 1 0 1 \n",
"4 1 1 0 "
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# One-hot encoding\n",
"df_concat = pd.get_dummies(data = df_concat, columns = cols_obj_train, drop_first = True)\n",
"print('Dimension data: {} rows and {} columns'.format(len(df_concat), len(df_concat.columns)))\n",
"df_concat.head()"
]
},
{
"cell_type": "markdown",
"id": "studied-occasion",
"metadata": {},
"source": [
"## Data partitioning"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "filled-lawyer",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1 330\n",
"0 134\n",
"999 106\n",
"Name: Loan_Status, dtype: int64"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Unique values of Loan_Status\n",
"df_concat['Loan_Status'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "automotive-collar",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dimension data: 464 rows and 15 columns\n"
]
},
{
"data": {
"text/html": [
"<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>ApplicantIncome</th>\n",
" <th>CoapplicantIncome</th>\n",
" <th>LoanAmount</th>\n",
" <th>Loan_Amount_Term</th>\n",
" <th>Loan_Status</th>\n",
" <th>Gender_Male</th>\n",
" <th>Married_Yes</th>\n",
" <th>Dependents_1</th>\n",
" <th>Dependents_2</th>\n",
" <th>Dependents_3+</th>\n",
" <th>Education_Not Graduate</th>\n",
" <th>Self_Employed_Yes</th>\n",
" <th>Credit_History_1.0</th>\n",
" <th>Property_Area_Semiurban</th>\n",
" <th>Property_Area_Urban</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4547</td>\n",
" <td>0.0</td>\n",
" <td>115.0</td>\n",
" <td>360.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5703</td>\n",
" <td>0.0</td>\n",
" <td>130.0</td>\n",
" <td>360.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4333</td>\n",
" <td>2451.0</td>\n",
" <td>110.0</td>\n",
" <td>360.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4695</td>\n",
" <td>0.0</td>\n",
" <td>96.0</td>\n",
" <td>360.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6700</td>\n",
" <td>1750.0</td>\n",
" <td>230.0</td>\n",
" <td>300.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n",
"0 4547 0.0 115.0 360.0 \n",
"1 5703 0.0 130.0 360.0 \n",
"2 4333 2451.0 110.0 360.0 \n",
"3 4695 0.0 96.0 360.0 \n",
"4 6700 1750.0 230.0 300.0 \n",
"\n",
" Loan_Status Gender_Male Married_Yes Dependents_1 Dependents_2 \\\n",
"0 1 0 0 0 0 \n",
"1 1 1 1 0 0 \n",
"2 0 0 1 0 0 \n",
"3 1 1 1 0 0 \n",
"4 1 1 1 0 1 \n",
"\n",
" Dependents_3+ Education_Not Graduate Self_Employed_Yes \\\n",
"0 0 0 0 \n",
"1 1 1 1 \n",
"2 0 0 0 \n",
"3 0 1 1 \n",
"4 0 0 0 \n",
"\n",
" Credit_History_1.0 Property_Area_Semiurban Property_Area_Urban \n",
"0 1 1 0 \n",
"1 1 0 0 \n",
"2 1 0 1 \n",
"3 1 0 1 \n",
"4 1 1 0 "
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Training set\n",
"df_train = df_concat[df_concat['Loan_Status'].isin([0, 1])].reset_index(drop = True)\n",
"print('Dimension data: {} rows and {} columns'.format(len(df_train), len(df_train.columns)))\n",
"df_train.head()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "adequate-reality",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data dimension: 106 rows and 15 columns\n"
]
},
{
"data": {
"text/html": [
"<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>ApplicantIncome</th>\n",
" <th>CoapplicantIncome</th>\n",
" <th>LoanAmount</th>\n",
" <th>Loan_Amount_Term</th>\n",
" <th>Loan_Status</th>\n",
" <th>Gender_Male</th>\n",
" <th>Married_Yes</th>\n",
" <th>Dependents_1</th>\n",
" <th>Dependents_2</th>\n",
" <th>Dependents_3+</th>\n",
" <th>Education_Not Graduate</th>\n",
" <th>Self_Employed_Yes</th>\n",
" <th>Credit_History_1.0</th>\n",
" <th>Property_Area_Semiurban</th>\n",
" <th>Property_Area_Urban</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3748</td>\n",
" <td>1668.0</td>\n",
" <td>110.0</td>\n",
" <td>360.0</td>\n",
" <td>999</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4000</td>\n",
" <td>7750.0</td>\n",
" <td>290.0</td>\n",
" <td>360.0</td>\n",
" <td>999</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2625</td>\n",
" <td>6250.0</td>\n",
" <td>187.0</td>\n",
" <td>360.0</td>\n",
" <td>999</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3902</td>\n",
" <td>1666.0</td>\n",
" <td>109.0</td>\n",
" <td>360.0</td>\n",
" <td>999</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6096</td>\n",
" <td>0.0</td>\n",
" <td>218.0</td>\n",
" <td>360.0</td>\n",
" <td>999</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n",
"0 3748 1668.0 110.0 360.0 \n",
"1 4000 7750.0 290.0 360.0 \n",
"2 2625 6250.0 187.0 360.0 \n",
"3 3902 1666.0 109.0 360.0 \n",
"4 6096 0.0 218.0 360.0 \n",
"\n",
" Loan_Status Gender_Male Married_Yes Dependents_1 Dependents_2 \\\n",
"0 999 1 0 0 0 \n",
"1 999 1 1 0 0 \n",
"2 999 1 1 0 0 \n",
"3 999 1 0 0 0 \n",
"4 999 1 1 0 0 \n",
"\n",
" Dependents_3+ Education_Not Graduate Self_Employed_Yes \\\n",
"0 0 1 0 \n",
"1 1 0 0 \n",
"2 0 0 0 \n",
"3 0 1 0 \n",
"4 0 1 0 \n",
"\n",
" Credit_History_1.0 Property_Area_Semiurban Property_Area_Urban \n",
"0 1 1 0 \n",
"1 1 1 0 \n",
"2 1 0 0 \n",
"3 1 0 0 \n",
"4 0 0 0 "
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Testing set\n",
"df_test = df_concat[df_concat['Loan_Status'].isin([999])].reset_index(drop = True)\n",
"print('Data dimension: {} rows and {} columns'.format(len(df_test), len(df_test.columns)))\n",
"df_test.head()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "variable-temperature",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data dimension of training set : (324, 14)\n",
"Data dimension of validation set : (140, 14)\n",
"Data dimension of testing set : (106, 14)\n"
]
}
],
"source": [
"# Data partitioning >>> training set into training and validation\n",
"df_train_final = df_train.reset_index(drop = True)\n",
"X = df_train_final[df_train_final.columns[~df_train_final.columns.isin(['Loan_Status'])]]\n",
"y = df_train_final['Loan_Status']\n",
"\n",
"# Training = 70% and validation = 30%\n",
"X_train, X_val, y_train, y_val = train_test_split(X , y, test_size = 0.3, random_state = 42)\n",
"print('Data dimension of training set :', X_train.shape)\n",
"print('Data dimension of validation set :', X_val.shape)\n",
"\n",
"# Testing set\n",
"X_test = df_test[df_test.columns[~df_test.columns.isin(['Loan_Status'])]]\n",
"print('Data dimension of testing set :', X_test.shape)"
]
},
{
"cell_type": "markdown",
"id": "found-probability",
"metadata": {},
"source": [
"## Machine learning model development"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "casual-niger",
"metadata": {},
"outputs": [],
"source": [
"# XGBoost model\n",
"xgb_model = xgb.XGBClassifier(\n",
" objective = 'binary:logistic',\n",
" use_label_encoder = False\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "latest-toner",
"metadata": {},
"outputs": [],
"source": [
"# Define parameter range \n",
"params = {\n",
" 'eta': np.arange(0.1, 0.26, 0.05),\n",
" 'min_child_weight': np.arange(1, 5, 0.5).tolist(),\n",
" 'gamma': [5],\n",
" 'subsample': np.arange(0.5, 1.0, 0.11).tolist(),\n",
" 'colsample_bytree': np.arange(0.5, 1.0, 0.11).tolist()\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "vertical-indian",
"metadata": {},
"outputs": [],
"source": [
"# Make a scorer from a performance metric or loss function\n",
"scorers = {\n",
" 'f1_score': make_scorer(f1_score),\n",
" 'precision_score': make_scorer(precision_score),\n",
" 'recall_score': make_scorer(recall_score),\n",
" 'accuracy_score': make_scorer(accuracy_score)\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "fluid-invite",
"metadata": {},
"outputs": [],
"source": [
"# k-fold cross validation\n",
"skf = KFold(n_splits = 10, shuffle = True)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "human-bibliography",
"metadata": {},
"outputs": [],
"source": [
"# Set up the grid search CV\n",
"grid = GridSearchCV(\n",
" estimator = xgb_model,\n",
" param_grid = params,\n",
" scoring = scorers,\n",
" n_jobs = -1,\n",
" cv = skf.split(X_train, np.array(y_train)),\n",
" refit = 'accuracy_score'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "advance-request",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[21:02:37] WARNING: C:/Users/Administrator/workspace/xgboost-win64_release_1.3.0/src/learner.cc:1061: Starting in XGBoost 1.3.0, the default evaluation metric used with the objective 'binary:logistic' was changed from 'error' to 'logloss'. Explicitly set eval_metric if you'd like to restore the old behavior.\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x000001732F6B57B0>,\n",
" estimator=XGBClassifier(base_score=None, booster=None,\n",
" colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None, gamma=None,\n",
" gpu_id=None, importance_type='gain',\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_delta_step=None,\n",
" max_depth=None, min_child_weight=None,\n",
" missing=n...\n",
" param_grid={'colsample_bytree': [0.5, 0.61, 0.72, 0.83, 0.94],\n",
" 'eta': array([0.1 , 0.15, 0.2 , 0.25]), 'gamma': [5],\n",
" 'min_child_weight': [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0,\n",
" 4.5],\n",
" 'subsample': [0.5, 0.61, 0.72, 0.83, 0.94]},\n",
" refit='accuracy_score',\n",
" scoring={'accuracy_score': make_scorer(accuracy_score),\n",
" 'f1_score': make_scorer(f1_score),\n",
" 'precision_score': make_scorer(precision_score),\n",
" 'recall_score': make_scorer(recall_score)})"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Fit the model\n",
"grid.fit(X = X_train, y = y_train)"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "saved-price",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'colsample_bytree': 0.5,\n",
" 'eta': 0.20000000000000004,\n",
" 'gamma': 5,\n",
" 'min_child_weight': 2.5,\n",
" 'subsample': 0.83}"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Best parameters\n",
"grid.best_params_"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "major-tuesday",
"metadata": {},
"outputs": [],
"source": [
"# Create a prediction of training \n",
"predicted = grid.predict(X_val)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "damaged-offense",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy for baseline :0.85714\n",
"Recall for baseline :0.84348\n",
"Precision for baseline :0.9798\n",
"F1 Score for baseline :0.90654\n"
]
}
],
"source": [
"# Model evaluation - training data\n",
"accuracy_baseline = accuracy_score(predicted, np.array(y_val))\n",
"recall_baseline = recall_score(predicted, np.array(y_val))\n",
"precision_baseline = precision_score(predicted, np.array(y_val))\n",
"f1_baseline = f1_score(predicted, np.array(y_val))\n",
"\n",
"print('Accuracy for baseline :{}'.format(round(accuracy_baseline, 5)))\n",
"print('Recall for baseline :{}'.format(round(recall_baseline, 5)))\n",
"print('Precision for baseline :{}'.format(round(precision_baseline, 5)))\n",
"print('F1 Score for baseline :{}'.format(round(f1_baseline, 5)))"
]
},
{
"cell_type": "markdown",
"id": "iraqi-intersection",
"metadata": {},
"source": [
"## Store the ML model"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "precious-discipline",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['../bin/xgboostModel.pkl']"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Store the model into a pickle file\n",
"filename = '../bin/xgboostModel.pkl'\n",
"joblib.dump(grid.best_estimator_, filename)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment