{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:36.055576Z", "start_time": "2020-10-27T23:50:35.882507Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# code for loading the format for the notebook\n", "import os\n", "\n", "# path : store the current path to convert back to it later\n", "path = os.getcwd()\n", "os.chdir(os.path.join('..', 'notebook_format'))\n", "\n", "from formats import load_style\n", "load_style(css_style='custom2.css', plot_style=False)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:37.965563Z", "start_time": "2020-10-27T23:50:36.958947Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ethen 2020-10-27 16:50:37 \n", "\n", "CPython 3.6.4\n", "IPython 7.15.0\n", "\n", "numpy 1.18.5\n", "pandas 1.0.5\n", "sklearn 0.23.1\n", "matplotlib 3.1.0\n", "xgboost 1.2.1\n", "lightgbm 3.0.0\n" ] } ], "source": [ "os.chdir(path)\n", "\n", "# 1. magic for inline plot\n", "# 2. magic to print version\n", "# 3. magic so that the notebook will reload external python modules\n", "# 4. magic to enable retina (high resolution) plots\n", "# https://gist.github.com/minrk/3301035\n", "%matplotlib inline\n", "%load_ext watermark\n", "%load_ext autoreload\n", "%autoreload 2\n", "%config InlineBackend.figure_format='retina'\n", "\n", "import os\n", "import re\n", "import time\n", "import requests\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from xgboost import XGBClassifier\n", "from lightgbm import LGBMClassifier\n", "from lightgbm import plot_importance\n", "from sklearn.metrics import roc_auc_score\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import LabelEncoder, OneHotEncoder, OrdinalEncoder\n", "\n", "%watermark -a 'Ethen' -d -t -v -p numpy,pandas,sklearn,matplotlib,xgboost,lightgbm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# LightGBM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Gradient boosting](http://nbviewer.jupyter.org/github/ethen8181/machine-learning/blob/master/trees/gbm/gbm.ipynb) is a machine learning technique that produces a prediction model in the form of an ensemble of weak classifiers, optimizing for a differentiable loss function. One of the most popular types of gradient boosting is gradient boosted trees, that internally is made up of an ensemble of week [decision trees](http://nbviewer.jupyter.org/github/ethen8181/machine-learning/blob/master/trees/decision_tree.ipynb). There are two different ways to compute the trees: level-wise and leaf-wise as illustrated by the diagram below:\n", "\n", "\n", "\n", "\n", "\n", "> The level-wise strategy adds complexity extending the depth of the tree level by level. As a contrary, the leaf-wise strategy generates branches by optimizing a loss.\n", "\n", "The level-wise strategy grows the tree level by level. In this strategy, each node splits the data prioritizing the nodes closer to the tree root. The leaf-wise strategy grows the tree by splitting the data at the nodes with the highest loss change. Level-wise growth is usually better for smaller datasets whereas leaf-wise tends to overfit. Leaf-wise growth tends to [excel in larger datasets](http://researchcommons.waikato.ac.nz/handle/10289/2317) where it is considerably faster than level-wise growth.\n", "\n", "A key challenge in training boosted decision trees is the [computational cost of finding the best split](https://arxiv.org/abs/1706.08359) for each leaf. Conventional techniques find the [exact split](https://arxiv.org/abs/1603.02754) for each leaf, and require scanning through all the data in each iteration. A different approach [approximates the split](https://arxiv.org/abs/1611.01276) by building histograms of the features. That way, the algorithm doesn’t need to evaluate every single value of the features to compute the split, but only the bins of the histogram, which are bounded. This approach turns out to be much more efficient for large datasets, without adversely affecting accuracy.\n", "\n", "With all of that being said LightGBM is a fast, distributed, high performance gradient boosting that was open-source by Microsoft around August 2016. The main advantages of LightGBM includes:\n", "\n", "- Faster training speed and higher efficiency: LightGBM use histogram based algorithm i.e it buckets continuous feature values into discrete bins which fasten the training procedure.\n", "- Lower memory usage: Replaces continuous values to discrete bins which result in lower memory usage.\n", "- Better accuracy than any other boosting algorithm: It produces much more complex trees by following leaf wise split approach rather than a level-wise approach which is the main factor in achieving higher accuracy. However, it can sometimes lead to overfitting which can be avoided by setting the max_depth parameter.\n", "- Compatibility with Large Datasets: It is capable of performing equally good with large datasets with a significant reduction in training time as compared to XGBoost.\n", "- Parallel learning supported.\n", "\n", "The significant speed advantage of LightGBM translates into the ability to do more iterations and/or quicker hyperparameter search, which can be very useful if we have a limited time budget for optimizing your model or want to experiment with different feature engineering ideas." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Preprocessing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook compares LightGBM with [XGBoost](http://nbviewer.jupyter.org/github/ethen8181/machine-learning/blob/master/trees/xgboost.ipynb), another extremely popular gradient boosting framework by applying both the algorithms to a dataset and then comparing the model's performance and execution time. Here we will be using the [Adult dataset](http://archive.ics.uci.edu/ml/datasets/Adult) that consists of 32561 observations and 14 features describing individuals from various countries. Our target is to predict whether a person makes <=50k or >50k annually on basis of the other information available. Dataset consists of 32561 observations and 14 features describing individuals." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:41.005963Z", "start_time": "2020-10-27T23:50:40.817642Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dimensions: (32561, 15)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ageworkclassfnlwgteducationeducation_nummarital_statusoccupationrelationshipracesexcapital_gaincapital_losshours_per_weeknative_countryincome
039State-gov77516Bachelors13Never-marriedAdm-clericalNot-in-familyWhiteMale2174040United-States<=50K
150Self-emp-not-inc83311Bachelors13Married-civ-spouseExec-managerialHusbandWhiteMale0013United-States<=50K
238Private215646HS-grad9DivorcedHandlers-cleanersNot-in-familyWhiteMale0040United-States<=50K
353Private23472111th7Married-civ-spouseHandlers-cleanersHusbandBlackMale0040United-States<=50K
428Private338409Bachelors13Married-civ-spouseProf-specialtyWifeBlackFemale0040Cuba<=50K
\n", "
" ], "text/plain": [ " age workclass fnlwgt education education_num \\\n", "0 39 State-gov 77516 Bachelors 13 \n", "1 50 Self-emp-not-inc 83311 Bachelors 13 \n", "2 38 Private 215646 HS-grad 9 \n", "3 53 Private 234721 11th 7 \n", "4 28 Private 338409 Bachelors 13 \n", "\n", " marital_status occupation relationship race sex \\\n", "0 Never-married Adm-clerical Not-in-family White Male \n", "1 Married-civ-spouse Exec-managerial Husband White Male \n", "2 Divorced Handlers-cleaners Not-in-family White Male \n", "3 Married-civ-spouse Handlers-cleaners Husband Black Male \n", "4 Married-civ-spouse Prof-specialty Wife Black Female \n", "\n", " capital_gain capital_loss hours_per_week native_country income \n", "0 2174 0 40 United-States <=50K \n", "1 0 0 13 United-States <=50K \n", "2 0 0 40 United-States <=50K \n", "3 0 0 40 United-States <=50K \n", "4 0 0 40 Cuba <=50K " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def get_data():\n", " file_path = 'adult.csv'\n", " if not os.path.isfile(file_path):\n", " def chunks(input_list, n_chunk):\n", " \"\"\"take a list and break it up into n-size chunks\"\"\"\n", " for i in range(0, len(input_list), n_chunk):\n", " yield input_list[i:i + n_chunk] \n", "\n", " columns = [\n", " 'age',\n", " 'workclass',\n", " 'fnlwgt',\n", " 'education',\n", " 'education_num',\n", " 'marital_status',\n", " 'occupation',\n", " 'relationship',\n", " 'race',\n", " 'sex',\n", " 'capital_gain',\n", " 'capital_loss',\n", " 'hours_per_week',\n", " 'native_country',\n", " 'income'\n", " ]\n", "\n", " url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data'\n", " r = requests.get(url)\n", " raw_text = r.text.replace('\\n', ',')\n", " splitted_text = re.split(r',\\s*', raw_text)\n", " data = list(chunks(splitted_text, n_chunk=len(columns)))\n", " data = pd.DataFrame(data, columns=columns).dropna(axis=0, how='any')\n", " data.to_csv(file_path, index=False)\n", "\n", " data = pd.read_csv(file_path)\n", " return data\n", "\n", "\n", "data = get_data()\n", "print('dimensions:', data.shape)\n", "data.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:42.865677Z", "start_time": "2020-10-27T23:50:42.826673Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "number of numerical features: 6\n", "number of categorical features: 8\n" ] } ], "source": [ "label_col = 'income'\n", "cat_cols = [\n", " 'workclass',\n", " 'education',\n", " 'marital_status',\n", " 'occupation',\n", " 'relationship',\n", " 'race',\n", " 'sex',\n", " 'native_country'\n", "]\n", "\n", "num_cols = [\n", " 'age',\n", " 'fnlwgt',\n", " 'education_num',\n", " 'capital_gain',\n", " 'capital_loss',\n", " 'hours_per_week'\n", "]\n", "\n", "print('number of numerical features: ', len(num_cols))\n", "print('number of categorical features: ', len(cat_cols))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:44.839694Z", "start_time": "2020-10-27T23:50:44.780245Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "labels distribution: [0.75919044 0.24080956]\n" ] } ], "source": [ "label_encode = LabelEncoder() \n", "data[label_col] = label_encode.fit_transform(data[label_col])\n", "y = data[label_col].values\n", "data = data.drop(label_col, axis=1)\n", "\n", "print('labels distribution:', np.bincount(y) / y.size)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:45.832667Z", "start_time": "2020-10-27T23:50:45.757734Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dimensions: (29304, 14)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ageworkclassfnlwgteducationeducation_nummarital_statusoccupationrelationshipracesexcapital_gaincapital_losshours_per_weeknative_country
052Private168381HS-grad9WidowedOther-serviceUnmarriedAsian-Pac-IslanderFemale0040India
131Private134613Assoc-voc11Married-civ-spouseExec-managerialWifeBlackFemale0043United-States
222Private68678HS-grad9Married-civ-spouseSalesHusbandBlackMale0040United-States
355Private110871Bachelors13Married-civ-spouseSalesHusbandWhiteMale0040United-States
435?117528Assoc-voc11Married-civ-spouse?WifeWhiteFemale0040United-States
\n", "
" ], "text/plain": [ " age workclass fnlwgt education education_num marital_status \\\n", "0 52 Private 168381 HS-grad 9 Widowed \n", "1 31 Private 134613 Assoc-voc 11 Married-civ-spouse \n", "2 22 Private 68678 HS-grad 9 Married-civ-spouse \n", "3 55 Private 110871 Bachelors 13 Married-civ-spouse \n", "4 35 ? 117528 Assoc-voc 11 Married-civ-spouse \n", "\n", " occupation relationship race sex capital_gain \\\n", "0 Other-service Unmarried Asian-Pac-Islander Female 0 \n", "1 Exec-managerial Wife Black Female 0 \n", "2 Sales Husband Black Male 0 \n", "3 Sales Husband White Male 0 \n", "4 ? Wife White Female 0 \n", "\n", " capital_loss hours_per_week native_country \n", "0 0 40 India \n", "1 0 43 United-States \n", "2 0 40 United-States \n", "3 0 40 United-States \n", "4 0 40 United-States " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_size = 0.1\n", "split_random_state = 1234\n", "df_train, df_test, y_train, y_test = train_test_split(\n", " data, y, test_size=test_size,\n", " random_state=split_random_state, stratify=y)\n", "\n", "df_train = df_train.reset_index(drop=True)\n", "df_test = df_test.reset_index(drop=True)\n", "\n", "print('dimensions:', df_train.shape)\n", "df_train.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll perform very little feature engineering as that's not our main focus here. The following code chunk only one hot encodes the categorical features. There will be follow up discussions on this in later section." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:47.585465Z", "start_time": "2020-10-27T23:50:47.528126Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "number of one hot encoded categorical columns: 102\n" ] }, { "data": { "text/plain": [ "array(['workclass_?', 'workclass_Federal-gov', 'workclass_Local-gov',\n", " 'workclass_Never-worked', 'workclass_Private'], dtype=object)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.preprocessing import OneHotEncoder\n", "\n", "one_hot_encoder = OneHotEncoder(sparse=False, dtype=np.int32)\n", "one_hot_encoder.fit(df_train[cat_cols])\n", "cat_one_hot_cols = one_hot_encoder.get_feature_names(cat_cols)\n", "\n", "print('number of one hot encoded categorical columns: ', len(cat_one_hot_cols))\n", "cat_one_hot_cols[:5]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:48.602382Z", "start_time": "2020-10-27T23:50:48.575959Z" } }, "outputs": [], "source": [ "def preprocess_one_hot(df, one_hot_encoder, num_cols, cat_cols):\n", " df = df.copy()\n", " \n", " cat_one_hot_cols = one_hot_encoder.get_feature_names(cat_cols)\n", "\n", " df_one_hot = pd.DataFrame(\n", " one_hot_encoder.transform(df[cat_cols]),\n", " columns=cat_one_hot_cols\n", " )\n", " df_preprocessed = pd.concat([\n", " df[num_cols],\n", " df_one_hot\n", " ], axis=1)\n", " return df_preprocessed" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:50:50.316343Z", "start_time": "2020-10-27T23:50:50.188666Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(29304, 108)\n" ] }, { "data": { "text/plain": [ "age int64\n", "fnlwgt int64\n", "education_num int64\n", "capital_gain int64\n", "capital_loss int64\n", " ... \n", "native_country_Thailand int32\n", "native_country_Trinadad&Tobago int32\n", "native_country_United-States int32\n", "native_country_Vietnam int32\n", "native_country_Yugoslavia int32\n", "Length: 108, dtype: object" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_train_one_hot = preprocess_one_hot(df_train, one_hot_encoder, num_cols, cat_cols)\n", "df_test_one_hot = preprocess_one_hot(df_test, one_hot_encoder, num_cols, cat_cols)\n", "print(df_train_one_hot.shape)\n", "df_train_one_hot.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Benchmarking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The next section compares the xgboost and lightgbm's implementation in terms of both execution time and model performance. There are a bunch of other hyperparameters that we as the end-user can specify, but here we explicity specify arguably the most important ones. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:02.266532Z", "start_time": "2020-10-27T23:50:56.897609Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[LightGBM] [Warning] Accuracy may be bad since you didn't set num_leaves and 2^max_depth > num_leaves\n", "elapse:, 0.327070951461792\n" ] } ], "source": [ "time.sleep(5)\n", "\n", "lgb = LGBMClassifier(\n", " n_jobs=-1,\n", " max_depth=6,\n", " subsample=1,\n", " n_estimators=100,\n", " learning_rate=0.1,\n", " colsample_bytree=1,\n", " objective='binary',\n", " boosting_type='gbdt')\n", "\n", "start = time.time()\n", "lgb.fit(df_train_one_hot, y_train)\n", "lgb_elapse = time.time() - start\n", "print('elapse:, ', lgb_elapse)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:24.890527Z", "start_time": "2020-10-27T23:51:05.413283Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapse:, 14.434311866760254\n" ] } ], "source": [ "time.sleep(5)\n", "\n", "# raw xgboost\n", "xgb = XGBClassifier(\n", " n_jobs=-1,\n", " max_depth=6,\n", " subsample=1,\n", " n_estimators=100,\n", " learning_rate=0.1,\n", " colsample_bytree=1,\n", " objective='binary:logistic',\n", " booster='gbtree')\n", "\n", "start = time.time()\n", "xgb.fit(df_train_one_hot, y_train)\n", "xgb_elapse = time.time() - start\n", "print('elapse:, ', xgb_elapse)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "XGBoost includes a `tree_method = 'hist' `option that buckets continuous variables into bins to speed up training, we also set `grow_policy = 'lossguide'` to favor splitting at nodes with highest loss change, which mimics LightGBM." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:35.456722Z", "start_time": "2020-10-27T23:51:29.605094Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapse:, 0.8119819164276123\n" ] } ], "source": [ "time.sleep(5)\n", "\n", "xgb_hist = XGBClassifier(\n", " n_jobs=-1,\n", " max_depth=6,\n", " subsample=1,\n", " n_estimators=100,\n", " learning_rate=0.1,\n", " colsample_bytree=1,\n", " objective='binary:logistic',\n", " booster='gbtree',\n", " tree_method='hist',\n", " grow_policy='lossguide')\n", "\n", "start = time.time()\n", "xgb_hist.fit(df_train_one_hot, y_train)\n", "xgb_hist_elapse = time.time() - start\n", "print('elapse:, ', xgb_hist_elapse)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:38.783066Z", "start_time": "2020-10-27T23:51:38.655229Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "auc score: 0.9352834593198379\n", "auc score: 0.9348347355521263\n", "auc score: 0.9351145431888891\n" ] } ], "source": [ "# evaluate performance\n", "y_pred = lgb.predict_proba(df_test_one_hot)[:, 1]\n", "lgb_auc = roc_auc_score(y_test, y_pred)\n", "print('auc score: ', lgb_auc)\n", "\n", "y_pred = xgb.predict_proba(df_test_one_hot)[:, 1]\n", "xgb_auc = roc_auc_score(y_test, y_pred)\n", "print('auc score: ', xgb_auc)\n", "\n", "y_pred = xgb_hist.predict_proba(df_test_one_hot)[:, 1]\n", "xgb_hist_auc = roc_auc_score(y_test, y_pred)\n", "print('auc score: ', xgb_hist_auc)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:41.434248Z", "start_time": "2020-10-27T23:51:41.398426Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
elapse_timeauc_score
LightGBM0.3270710.935283
XGBoostHist0.8119820.935115
XGBoost14.4343120.934835
\n", "
" ], "text/plain": [ " elapse_time auc_score\n", "LightGBM 0.327071 0.935283\n", "XGBoostHist 0.811982 0.935115\n", "XGBoost 14.434312 0.934835" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# comparison table\n", "results = pd.DataFrame({\n", " 'elapse_time': [lgb_elapse, xgb_hist_elapse, xgb_elapse],\n", " 'auc_score': [lgb_auc, xgb_hist_auc, xgb_auc]})\n", "results.index = ['LightGBM', 'XGBoostHist', 'XGBoost']\n", "results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the resulting table, we can see that there isn't a noticeable difference in auc score between the two implementations. On the other hand, there is a significant difference in the time it takes to finish the whole training procedure. This is a huge advantage and makes LightGBM a much better approach when dealing with large datasets.\n", "\n", "For those interested, the people at Microsoft has a blog that has a even more thorough benchmark result on various datasets. Link is included below along with a summary of their results:\n", "\n", "> [Blog: Lessons Learned From Benchmarking Fast Machine Learning Algorithms](https://blogs.technet.microsoft.com/machinelearning/2017/07/25/lessons-learned-benchmarking-fast-machine-learning-algorithms/)\n", ">\n", "> Our results, based on tests on six datasets, are summarized as follows:\n", "\n", "> - XGBoost and LightGBM achieve similar accuracy metrics.\n", "> - LightGBM has lower training time than XGBoost and its histogram-based variant, XGBoost hist, for all test datasets, on both CPU and GPU implementations. The training time difference between the two libraries depends on the dataset, and can be as big as 25 times.\n", "> - XGBoost GPU implementation does not scale well to large datasets and ran out of memory in half of the tests.\n", "> - XGBoost hist may be significantly slower than the original XGBoost when feature dimensionality is high." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Categorical Variables in Tree-based Models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many real-world datasets include a mix of continuous and categorical variables. The property of the latter is that their values has zero inherent ordering. One major advantage of decision tree models and their ensemble counterparts, such as random forests, extra trees and gradient boosted trees, is that they are able to operate on both continuous and categorical variables directly (popular implementations of tree-based models differ as to whether they honor this fact). In contrast, most other popular models (e.g., generalized linear models, neural networks) must instead transform categorical variables into some numerical format, usually by one-hot encoding them to create a new dummy variable for each level of the original variable. e.g.\n", "\n", "\n", "\n", "One drawback of one hot encoding is that they can lead to a huge increase in the dimensionality of the feature representations. For example, one hot encoding U.S. states adds 49 dimensions to to our feature representation.\n", "\n", "To understand why we don't need to perform one hot encoding for tree-based models, we need to refer back to the logic of tree-based algorithms. At the heart of the tree-based algorithm is a sub-algorithm that splits the samples into two bins by selecting a feature and a value. This splitting algorithm considers each of the features in turn, and for each feature selects the value of that feature that minimizes the impurity of the bins.\n", "\n", "This means tree-based models are essentially looking for places to split the data, they are not multiplying our inputs by weights. In contrast, most other popular models (e.g., generalized linear models, neural networks) would interpret categorical variables such as red=1, blue=2 as blue is twice the amount of red, which is obviously not what we want." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:46.390899Z", "start_time": "2020-10-27T23:51:46.332767Z" } }, "outputs": [ { "data": { "text/plain": [ "OrdinalEncoder(dtype=)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ordinal_encoder = OrdinalEncoder(dtype=np.int32)\n", "ordinal_encoder.fit(df_train[cat_cols])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:47.827221Z", "start_time": "2020-10-27T23:51:47.800347Z" } }, "outputs": [], "source": [ "def preprocess_ordinal(df, ordinal_encoder, cat_cols, cat_dtype='int32'):\n", " df = df.copy()\n", " df[cat_cols] = ordinal_encoder.transform(df[cat_cols])\n", " df[cat_cols] = df[cat_cols].astype(cat_dtype)\n", " return df" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:51:49.413004Z", "start_time": "2020-10-27T23:51:49.257154Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(29304, 14)\n" ] }, { "data": { "text/plain": [ "age int64\n", "workclass int32\n", "fnlwgt int64\n", "education int32\n", "education_num int64\n", "marital_status int32\n", "occupation int32\n", "relationship int32\n", "race int32\n", "sex int32\n", "capital_gain int64\n", "capital_loss int64\n", "hours_per_week int64\n", "native_country int32\n", "dtype: object" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_train_ordinal = preprocess_ordinal(df_train, ordinal_encoder, cat_cols)\n", "df_test_ordinal = preprocess_ordinal(df_test, ordinal_encoder, cat_cols)\n", "print(df_train_ordinal.shape)\n", "df_train_ordinal.dtypes" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:52:00.478855Z", "start_time": "2020-10-27T23:51:55.116271Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[LightGBM] [Warning] Accuracy may be bad since you didn't set num_leaves and 2^max_depth > num_leaves\n", "elapse:, 0.2872467041015625\n", "auc score: 0.9348548507555065\n" ] } ], "source": [ "time.sleep(5)\n", "\n", "lgb = LGBMClassifier(\n", " n_jobs=-1,\n", " max_depth=6,\n", " subsample=1,\n", " n_estimators=100,\n", " learning_rate=0.1,\n", " colsample_bytree=1,\n", " objective='binary',\n", " boosting_type='gbdt')\n", "\n", "start = time.time()\n", "lgb.fit(df_train_ordinal, y_train)\n", "lgb_ordinal_elapse = time.time() - start\n", "print('elapse:, ', lgb_ordinal_elapse)\n", "\n", "y_pred = lgb.predict_proba(df_test_ordinal)[:, 1]\n", "lgb_ordinal_auc = roc_auc_score(y_test, y_pred)\n", "print('auc score: ', lgb_ordinal_auc)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:52:02.600833Z", "start_time": "2020-10-27T23:52:02.552515Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
elapse_timeauc_score
LightGBM Ordinal0.2872470.934855
LightGBM0.3270710.935283
XGBoostHist0.8119820.935115
XGBoost14.4343120.934835
\n", "
" ], "text/plain": [ " elapse_time auc_score\n", "LightGBM Ordinal 0.287247 0.934855\n", "LightGBM 0.327071 0.935283\n", "XGBoostHist 0.811982 0.935115\n", "XGBoost 14.434312 0.934835" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# comparison table\n", "results = pd.DataFrame({\n", " 'elapse_time': [lgb_ordinal_elapse, lgb_elapse, xgb_hist_elapse, xgb_elapse],\n", " 'auc_score': [lgb_ordinal_auc, lgb_auc, xgb_hist_auc, xgb_auc]})\n", "results.index = ['LightGBM Ordinal', 'LightGBM', 'XGBoostHist', 'XGBoost']\n", "results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the result above, we can see that it requires even less training time without sacrificing any sort of performance. What's even more is that we now no longer need to perform the one hot encoding on our categorical features. The code chunk below shows this is highly advantageous from a memory-usage perspective when we have a bunch of categorical features." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:52:06.165449Z", "start_time": "2020-10-27T23:52:06.120179Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OneHot Encoding\n", "number of columns: 108\n", "memory usage: 13362752\n", "\n", "Ordinal Encoding\n", "number of columns: 14\n", "memory usage: 2344448\n" ] } ], "source": [ "print('OneHot Encoding')\n", "print('number of columns: ', df_train_one_hot.shape[1])\n", "print('memory usage: ', df_train_one_hot.memory_usage(deep=True).sum())\n", "print()\n", "\n", "print('Ordinal Encoding')\n", "print('number of columns: ', df_train_ordinal.shape[1])\n", "print('memory usage: ', df_train_ordinal.memory_usage(deep=True).sum())" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2020-10-27T23:52:09.079253Z", "start_time": "2020-10-27T23:52:08.314572Z" } }, "outputs": [ { "data": { "image/png": "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ckQcADwEtMt3zQJ6AMcCR+V171yB01mOM4XLTET0iogUEanx0s3ed/+87wmru+/mEhED83N4ZgXqrrFrL0mSJEmSPpuqqqoAOPTQQ7n//vuZMWMGs2bNYv78+Tz66KNsscUWfPrppwwYMIDJkycvV3fx4sV84Qtf4MYbb2TChAnMmzePuXPn8tprr7HvvvtSVVXFD37wAx599NF6/X7wwQccffTRzJ49mz333JPXX3+dmTNnMnfuXO6//346d+7Mk08+ybnnntvg+I899lgmT55c8PXMM88UrTd69GgOOeQQpk6dyuGHH86oUaOorKxk1qxZzJw5k8cee4zjjjuu6Re0lgcffJAHH3yw4Nh23nnnYtWmAccBvYCKlNL6QAWwN/BS/nlIRGxVt2JE9AD+jywgPBLolVLqQhYUvotsgu/vI2KHlToxDAqrmeTB0sERscuaHoskSZIkSVK56Nq1K6+88gojRozg6KOPXm5268EHH8yjjz5KmzZtmD17NjfffPNydf/4xz8yevRozjjjDDbffHMAWrRowU477cSf//xntttuOwCuueaaev3+8pe/ZNasWXTq1Inhw4fXpHpo2bIlRx99NDfccAMAt912G2+//XaznnNVVRUnn3wy8+bN4/jjj+ehhx6ib9++Ncc7d+7M1772NX760582a78lmpRSuielNDGltAQgpbQkpfQ8cBAwlyww/K0CdS8COgEfAEemlCbm9acCJwGjgNbASp+YQWE1l4HApUBDQeH5wDvAu6tjQGuhxWTn/86aHogkSZIkSfps6Ny5c0OzVtl2223ZY489ABg1atRyx/bee++i9dq2bcuxxx5bsB7AX/7yFwCOP/74gmkeTjjhBDbccEOWLl3KXXfd1fiJNMGIESMYM2YMbdu25YYbbiAimrX9VSWlNAsYl29+rvaxiGgBfDPf/G1KaW6dulXAL/PNr0dEp5UZizmFtdqklP4BbLumx7GmpJQ+ZC06/8rFVfS66M9rehjSZ94P+iwBYKDPm7Ra+MxJq5fPnLR6+cyptglXHlpy2W7dugHLUk00R72JEycCsM022xSs26JFC7beemumTZvGyJEjueyyy5rUd0Oqg8xf+9rXWH/99Zut3VUtIroBW+eb4+sc3h7onn9+vEgTf83fWwNfBurn9SiRM4UlSZIkSZKkz6glS5bwwgsvANSkeCjV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jx/PtGlZyG6LLbZYkSaqK82ts/8tsvgbwAFF6lbvXwQ8vyKdVzMovHYrfFcv+7tdn1KKEl5DS+xvCFkweTRwENAxpdQppdQ9X0zumLxck3IRN0FDU+NXiZTSZcDWwMVkaR9mA9sCFwBjI+Lbq3tMkiRJkiRJTbFo0SKOPPJInn76abp06cJf//pXdthhh5LqXnbZZVx11VVEBLfccssKBXDrSilxzjnnUFlZSZ8+fWpyANc+3pBJkyZx4403AnDwwQcXXKSuRYsWzJo1iyFDhtSrP2XKlJpcxoccckiTx96QSy65BIC2bduy3377LXessbr5TN+T882/1am7FBiWb54REe3r1G0BnJ9vPpJSms1KMCi8bqr+1mCz5mowIjYjy9VbBRyeUno8pVT3G4vuzdVfHdUzojdtpNwmdco3i5TS+JTSlSmlg8hmR+8LPEc2s/imiNiowQaaV0OpOaqPVbFs1rYkSZIkSSpjVVVVHHfccTz22GN07NiRv/zlL/Tt27fxisB1113Hj3/8YwB+/etfc+qppzap70suuYTHH398uZy/r7zyCgMGDODuu++mXbt2DBkypF7e3+eee46vfe1rDBs2jMmTl2VGnT9/Pvfddx977bUXn3zyCe3atWPw4MH1+t1uu+1qxnrBBRdw3333sWRJll7lzTffZMCAAcybN4+uXbty/vnn16vfq1cvIoKBAwfWO9a/f3+uuOIK3njjjZpZyCklXnnlFY444giGDcvitj/84Q/r5WrOz2XziNg/IjpU74+I9hFxJPAi0IPsV+uXF7ikV5JNWNwMeDCP1xERG5KlPd2NbJbwpQXqNolJaNZNfwe+DfSPiLb54mYrqybgmlIqlsLgqw3UX5q/r8gs4uocKe0j4osppX/ULRARW5PlE65dvtmllKqAZyLi68AnZKkydgUeXVV91rFPCcfeKCWfsCRJkiRJ+ux74YUXeOCBBwBYvHgxAwYMKFp200035Z//XLYk0/e//30AWrRowWWXXcZll11WtO4///nPmsXbqt19991cccUVAHTq1ImFCxeycOFCADbccEPuvfde+vWrv9xRSom//vWv/PWvfwWWLR43c+bMmkBst27duPvuu2sWnKvrhhtu4N133+Wpp57i2GOPpU2bNlRUVDBr1iwAOnfuzAMPPMDnPte0pbEmTpzIJZdcwiWXXELLli1p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oEWLFnz00UcMHz6c4cOHc9RRR3HPPffQqlWrevWvuuoqLr74YlJKRARdunRh+vTpPPLIIzzyyCNccskl/PznP1+hsa3MNanWqVMn2rZtW/RYId27d29wXLNnz2bBggW0bt2aHXfcsZRTkbSaOFNYTRIRgyMiRcTQNdD30Lzvwau77+aSjz9FRK81PRZJkiRJWpM22mgjDjnkEC699FJuueWWkuqMHTu2Jvh5wAEH8OabbzJ//nzmz5/PmDFj6N+/P1VVVZx11lm8++679eqvt956bLfddnz729/mhhtu4MQTTyx5vHvuuSe/+tWvGDVqFHPmzGHOnDksWLCA999/nwsvvBCABx54gCuvvLJe3eHDh3PRRReRUuLUU09l8uTJzJgxg08//ZSf/vSnRASXX34599xzT8njaa5rUu36669n8uTJBV+XX355wTrFyle/tt56awC+/vWv061btyafm6RVx5nCajYRcR7QBRiaUpqwhocjSZIkSVpLHXbYYQwYMKBme8KECSXVu/fee6mqqqJTp048+OCDdOjQoeZYnz59ePjhh9lkk02YM2cOjzzyCOedd95y9e+77z7WW2+9mu3BgweXPOaTTjqp4P5NN92Uq6++mo8//pg777yToUOHMmjQoOXKXHrppUAWWL7ttttq9nfs2JFBgwYxfvx4hgwZwkUXXcQxxxxDy5alh2tW9pqsKq+++iqvvfYaUPzaSVpznCmsppoOvAN8XODYecClQK/VOaB1zDv5a/GaHogkSZIkrSm1A7NNMWXKFAB69+69XPCzWqdOnejduzcA8+bNa7Z+S7HbbrsB8NFHHy23/+OPP67J6VssIPv9738fgPfff7/JuXdX9pqsKrfffjuwbEa4pLWLM4XVJCml3wC/WdPjWFellLZd02OoVrm4il4X/XlND0P6zPtBnyUADPR5k1YLnzlp9fKZU1NMuPLQlW6jV69eQLZg3Ny5c+sFQWfPns24ceMA6Nu370r31xQvvvgiAFtsscVy+99///2az9tss03Bur1796ZFixYsXbqUkSNHsv/++5fc79p4TZYsWcLdd98NwHHHHdekmc+SVg9nCkuSJEmSpHXCCSecQNu2bZk9ezZHHnkkY8eOJaVESok33niDAQMGMGfOHA488EAOPvjgVT6euXPnMmbMGM4880zuvfdeAM4666zlykREzefq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TN54441q299www288MILtG/fnpdeeolNN9209FyjRo3YbrvtapTAnDt3LqeddhrNmjXj+uuvZ7fddqu2fbdu3Zg5c2aVK23XlhdffJHPPvsMgJEjR7L77ruXnuvYsSO33HIL7777Ls8//zwPPfQQxxxzTLn4V155hWuuuYaIYNSoUey9996l5+rVq8dmm23GySefvGYGI0laJ7lSWHkHApcCfappswT4IPeQJEmS9B1Tv379Vb7GtGnTuPjii+nUqROXXXbZCtsvWbKE6667DoChQ4eWSwjX1sUXX8zUqVMZOnQom2yyyQrb16tXb51LCANMnz699HWPHj0qbZNfgT1v3rzlzl199dWUlJQwYMCAcglhSZLyXCmsGkspfQ5ss7b7odVj4ZJldL7g8bXdDek775ztlwIwxM+btEb4mZNWzuSr91tt1zr99NMpLi5mxIgRNG/efIXtx4wZw4wZM4gIDj/88JW+71tvvcVNN91E165dOeOMM5g2bdpKX2tt69y5c+nrt956q9xK4bz86usdd9yx3PE5c+bw2GOPAXDkkUfWXSclSes1VwpLkiRJklaL0aNHM2rUKH76058ycODAGsX8+9//BrJEaMuWLbnpppvYYYcdaNq0Ka1bt6ZPnz7ccccdpZulVaakpIQTTzyRkpIS/vjHP9Kgwbq1/qlXr160aNGCpk2b8v3vf5+jjjqKF198scr2PXv2LK01PGTIEJ5++mmWLs3+0evLL7/k1FNP5fnnn6dTp06cc8455WJfe+210rY9evTgySefpG/fvrRs2ZJmzZrRvXt3Lr/8coqLi+totJKk9UHBJYUjomtE3B4Rn0bEwogoioiXIuLkiKh029eIaBkR15WJmRoRIyKi2r9rym/KFhGdqzi/wo3bIuJ7EXF9RLwTEcW5x3sR8ZeI+EmFtvUjYt+IuC0i3oiI6RGxOCL+GxGjIqJvJdfvk7v/4NyhS8v0u1zfatjfHhFxd26OFkXE1xHxVEQcUk3M5Nx1+0REm4i4ITfXiyLi89xcb1xVfG1ExNjcvYZERNOIGBoRH0TEgoiYERH3RcRWK4qtyVgqHB+aOz4yMr+MiLciYm5EfBERd5T9foqIrXLHpuW+596JiBNWxxxIkiRJdWHevHmceuqpNGrUiFtuuaXGcR999BEAG220EQcffDCnn346b7/9Nk2bNqW4uJjnn3+eIUOGcOihh7Js2bJKr3HzzTfz+uuvc8wxx1S6qnZtGzduHPXqZb9+T548mb/97W/svvvunHnmmaS0/K9X9erV46GHHmK77bbjP//5D3vttRdNmjShRYsWbLzxxtx+++0cffTRvPrqq7Rr165cbH4+Ae666y769evHc889R0SwdOlSJkyYwCWXXELPnj3573//W7cDlyStswoqKRwRpwITgGOBzmQ1cpsB/wP8Cfh/EbFBhZiNgdeBX+ViEtAKOB54E9iyDvt7CFn93rOB7cjKfSwhK+FwHPDXCiHbAk8AJwI7Ak2AxcDGZDWDn4mIX1eIWQxMBxbmvp6X+7rso6b9PZFsrgYBmwLzyebqZ8ADEXFXRFRXpGxTsjk9C2hPNtedyOb65YhoXdO+1EAL4CWyOsqb5+7VDhgIjIuIOntfgXuBm4Ef5r7uCBwD/Csi2kXEj4BXc8eaAY3I3v/hEXFuHfZLkiRJWmmXXHIJn332Geeeey5bb711jeOKioqArBzCI488woknnsiMGTOYOXMm33zzDb/+dfYrzKhRo7jyyiuXi//888+56KKLaN26Nddee+3qGcxq0KRJE0455RT+9a9/UVxcTFFREfPnz+eNN95g//33B2DYsGFcddVVlcZvscUWPP300/zsZz8DYNmyZaWre5csWcLcuXOZNWvWcnH5+YTsPenduzfvvfceRUVFFBcXc/fdd7PhhhsyadIkjj766NU9bEnSeqJgksIRcSBwE1nS8zygXUqpObABsA/wEdkma7+vEHoH8APga+AAYMNc3I+BOcD1ddTf/wHuA5oCzwE9gQ1SSm2AlsBBwLMVwhYDtwN7Ay1TSi1TSs2ADsDFwDLgtxGxaz4gpfRySqkj8PfcoetSSh3LPmrR3z+RfU89AHwvpdSaLCl8EVnS9SigYlK6rJuAWcD/pJQ2JEuIHgAUkSXkq4utrcuA1mTvff5ePwamAW2Ayn8yW3UHAvuRzUXz3OPHwJfA94HLyd73F4EtU0qtyObw1lz8byKibR31TZIkSVop48ePZ9iwYXTu3Jn/+7//q1VsvixESUkJu+22G7fddhsbbbQRAC1btuTKK6/k0EMPBeCGG25g8eLF5eLzNYx/+9vfLrdqdm3q2LEjt9xyC7vvvjvNmjUDICLYcccdefTRRxkwYAAAV155ZblEbt7o0aPZaquteP3117n11luZPHkyc+bM4ZVXXmGfffZh1KhR9O7dm9dee61cXNkyG82bN+fRRx9l2223BaBhw4YMGjSIa665BoBnn32WV199tU7GL0lat61bhZbqSG516h9yXw5IKT2VP5dSWgw8FRH7AhOB4yJiaErpi4jYHdgr1/SwlNJzZeJeiIh9gHfqqNu/J3t//gXsnVJaUubexcDDuQdljn8I/KLihVJKM4ArIiKA3wAnA6+s5v5eTpYQfgk4PKW0LHfvuWSJ6A3JkrrnR8SNKaU5lVxjEfDTlNI3udilwKMRcQVwHXAoWUJ/dWgM7JVS+rjMsRci4kyypHb/iGiU+/5YnVoCQ1JKf6tw3/OAO4GTgA+Bg3LjJ6U0JyJ+CfyU7B8o9su1XaGIeKOKU9s0qAdn5zbjkVR3OjTNns/x8yatEX7mpJUzduzYSo9/+eWXpa9fffXVcl8DFBcXU1JSwv/+7/+ybNkyTjjhBF555ZVKr1FUVFTpfRYuXFj6+qc//Wmlbfr06cMDDzxAUVERI0aMYLvttgOyesQPPfQQXbp0oUuXLuViy/Z1/PjxlY6vOhMnTqRJkya1jqupgw46iPvvv5958+YxbNgw9thjj9JzX3zxBYMHD2bp0qVcccUVdOnShU8//ZRPP/0UgF/96lf897//5c0332Tw4MH88Y9/LBeb95Of/ISJEycud+8uXbrQpEkTFi5cyIgRI5g/f36djVOrV361eFWfWUmrV20/c+tTvfZCWSnch6xEwDtlE8JlpZQ+AcaRJWL75A4fmnseVzYhXCbmY75dYbvaRMQ2ZCuDAc4rmxBeRaNzz71X0/UAiIg2QL6+8VX5hHAF15CVqGgG9KviUsPzCeEK8snv7+eSy6vDAxUSwnmPkq1qbkyWgF3dpgF3VXL86TKvr8snhPNSSiVkK8YButZBvyRJkqSV8uyzzzJp0iR23nlnevTowYIFC8o98nWAS0pKljsG0Lbtt38I973vfa/Se5Q9PmPGjNLXw4YNIyI46aSTWLRoUbn7lk02588tWrRotY17VW288ca0atUKKJ/IBXjkkUdYsmQJW2+9demGcxXlV0+///77zJw5s/R4fpU1VD2fDRo0oFOnTkD5+ZQkFY6CWClMVjMYYKuI+LKadi1zz/n/c+6Ye36+mpjnyWq/rk4/yj3PTCnVakVvRDQlWwl8AFnN2tYs/z53WuUeltcDCLJkaqVzlVKanVu12ptsXu+rpNlrlRwD+LzM61ZkJUBWVaX3SiktiYgZZCU3VmcN47z3cgneisr+JFbV6vN8feca9yultFNlxyPijaUl7Hjd24XynwBp7cmvVvTzJq0ZfuaklTN5UJ/Kj0+eXPq6Z8+ebLPNNuXOjx07ltmzZwPw+uuv069fVes/4O233y49/9xzz9GnT3bPSZMm8fDD2TqQXXbZhe2333652LJJz65du5bGTp+e/Yh89tlnVz044IILLgBgjz32qPFqr27dupXep640bJjtdb7llluWu9f111+/wj60b9+eCy+8EIBOnTrxox9lv0Z27NiRoUOHArDVVltVGb/hhtl6m0033bTOx6nVJ//963smrRm1/cw1b9687jqzmhXKT8sb554bkyX7ViS/2Vy+IFV1W7J+Xs25lZXv42e1CcptijcWKLurwzyyOr0lQH1gI7IauqtTfp5m58pFVGVahfYVVbrGPqW0MKt8AUDD2nev5vfKyS8pWF33KuuLyg6mlJaVGWOlbchqQkPd9EuSJElaK37605+Wvv7ggw8qTQpPmjSp9HXnzp3XRLfq3KeffspXX30FwPe///1y5+rVy/6o97PPqv6VcMqUKaWvyyYhunTpwqabbsq0adP44IMPKo1dsmQJ//nPf4DvznxKkmqnUMpH5Mf5SEopavAYujY7uwr+QJYQ/g9wCNAmpdQspdQ+t2Hcj6qNXnWN6/j6kiRJktYxQ4YMIaVU5WPw4MFAtko3f6zsiqsf/OAH9OrVC8jKQVTm97/P9gPv2LEjO+64Y+nx6u6br78L2crklNIarcOaUqr2fH6Vb9OmTenbt2+5c/mSEW+88QZvvfVWpfEjRowAss34yq7gjgiOPvpoAO6+++5yq6zzhg8fzrx52R9g7rvvvjUZjiTpO6ZQksL5P7vfrJZxX+Weqyu3UN25/MrOqnYnaFnF8Vr3NyIakZWMABiUUnoopTSrQrOarJJeGfl5ahoR1W33u2mF9uubfJ3f6nabqOo9lSRJktYLX3/9delj1qxvf6UoKioqd66kpLKqaCvnmmuuoV69erz44oucfPLJfP311wDMmTOH//u//+OBBx4A4NJLL6V+/fqr7b4As2bNKjeuvDlz5pQ7vmTJ8lu9dO7cmYhgyJAhy53r06cPV111Fe+8805pDeWUEm+99RYHHXQQ992XVdQ7//zzadOmTbnY4447jsaNG7N06VIOOOAAHnnkkdIayVOnTuX4449n1KhRAJxyyinLzcl5551H+/btmT17NgcccADvv/8+kK0Qvueee0rLaQwcOJCuXd2yRJIKUaGUj/h37rlbRGySUqppyYc3gd2AH1fTZo9qzhUBbcmSoZMqOb9LFXHjcs9tIuJHKaVxVbQrayO+Xalb+T8lw0+rOA5ZeQnIagPX1ltk9YSDbMO5f1RsEBEtgXx92zdX4h7rgqLc86aVnYyIH5DVPJYkSZLWW+3aVb7OI7+aN6/sStxVtfvuu3PLLbdw6qmncttttzFixAhatWrF7NmzSxOqp59+OieffPJqu2dejx49ypViyBs4cGC5r8vWQa6JKVOmcOGFF3LhhRfSsGFDWrRowfz581mwYEFpm9NOO41LLrlkudjOnTtzxx13MHjwYKZOncqBBx5IvXr1aNq0aekKX4Cf//znpfWDy2rVqhWjR49mn3324cUXX+SHP/whrVq1KrfZ3m677cbw4cNrPB5J0ndLoSSFnwGmkm0gdy1wZFUNI6J1mRW29wOnA70i4scppX9VaLsFMLDiNcp4G+hDtoL36QqxjYEzKwtKKU2KiFeBnsDvImLPlNLy/yxdXjHfJma3B16vcL+NgdOqiZ+Te651UjOlNDMingP6AudHxAOVbKZ2PtkK27nAE7W9xzribbKyHP2Biyo5f8Ga7c6qadKwPh9evd/a7ob0nZf/M9WqNvCRtHr5mZPWXyeffDI77bQT119/PS+88AJfffUVbdq0Ydddd+WXv/wl++yzz9ruYq1ce+21jBkzhldffZUvv/ySmTNn0qhRI7p06ULv3r058cQT2XXXXauMHzhwID169ODGG2/kueeeY/LkySxatIgOHTqw4447cvTRR3P44YdTZm+Scnr27Mk777zDNddcw+OPP860adNo3LgxO++8M4MGDeL4448v3ehOklR4CiIpnFJaEhGnAg8DR0TEBsDQlNJ4gIhoCOwAHAacSC4xmlJ6MSLGAHsBD0TEccATKaWSiOgN/BVYRNXlBP5BlhQ+ISLeBO5JKS2KiO2AG6m+9MTZwPPA7sA/I+L8lNLruf42B/YD9k8pDcr1tTgixgG9gNsj4piU0viIqEe2evdPVL8K+N3c8z4RsXFKqarNzqpycW6sOwL3RcTZKaVpEdGMLLGeT5henVKaU8U11nUPAJcC20fEMODSlFJRRLQnSxIfDczn240KJUmSpPXOimrhljV58uQVthk5ciQjR46s0fV22WWX0rIKq6pz5841GktNxrAysQMGDGDAgAErfW2Arbfemptvvnml4zt16sSwYcOqrNUsSSpchVJTmJTSo8AvgMVkK3ffioj5EfENsAB4DTiX5WvCDgY+BtoBo4G5EVEMvEiWPP5VNbf9M/AKWVmH23Oxs4F3gO7AsdX09yXgKLKkc1/gtTL9nQ3cC/SuEHZWbizb58Y3l2xl7tNkZSx+UU1fRwEzyTaqmxYRX0TE5IiYXE1M2f6+DJxCVoZiAPBZRMwkK7nwW7KE9N+Aq2tyvXVRSuldss38IEt0z4qIWcCXZGM/ifW3XrIkSZIkSZIKRMEkhQFSSn8FupAl9t4l2wiuBfANMJZsFWiXCjFfkNX+vQGYAtQnS8r+hWxV7CfV3G8J2Srja4HJZAnTecBIsvq6E1bQ3/uAbYGbgQ9zhxuQ1Sf+M3BMhfavkK0UfhiYBTQEZgC3kSWhq7xfSulrshXFD5ElNtsBm+ceNZJSuo1sru4BvgCakc3VGGBASumolNKyai6xPvgVWQJ4ArCQrGTHU0DflNLItdgvSZIkSZIkqUYKonxEWSmlyWQramsTU0SWDKxsVfA0qinLkFIqBs7LPSpT7cZuKaVPqb4WcMX2E4CDqmlSXV8nktXMrer85Oric23eBAZV38vlYjrXoM3KbIBX2XX6rEp/Uvb3Z3/KPWocm1IaCgxdwX1XNLcrvIYkSZIkSZK0IgW1UliSJEmSJEmSCp1JYUmSJEmSJEkqICaFJUmSJEmSJKmAFFxNYa3/IuJ7wGu1DDsjpfT3uuiPJEmSJEmStD4xKaz1UX2gQy1jmtZFRyRJkiRJkqT1jUlhrXdSSpOBWNv9kCRJkiRJktZH1hSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJEmSJEkqICaFJUmSJEmSJKmAmBSWJEmSJEmSpAJiUliSJEmSJEmSCohJYUmSJGktKS4u5tFHH+Xiiy9m3333ZaONNiIiiAgmTZq0wviSkhKGDx9Or169aNWqFc2bN6dHjx5ce+21LF68uNrY2bNnc/nll7PLLrvQokULGjZsSPv27fnZz37GnXfeSUlJSZWxKSXuvfde9tprL9q2bUvjxo3p3Lkzxx9/PB9++GGVcUOGDCkd34oexx577ArHv7rnZN68eVx99dXsvPPOtGjRgg033JDtttuOiy66iNmzZ1cZt2jRIp566imuuOIKDjjgADp16lQ6jn/+858rNQ5JkqS61GBtd0CSJEkqVM888wwHHXTQSsUuWbKEAw88kCeeeAKARo0aUb9+fcaPH8/48eO5//77efbZZ2nWrNlysR9//DF9+/Zl6tSpANSrV4/mzZvz1VdfMWbMGMaMGcPdd9/No48+SpMmTcrFLl68mIEDB/Lwww8D0KBBA5o3b86UKVP4y1/+wj333MN9991H//79l7tvy5Yt6dChQ7VjmjlzJgA77rjjGp2Tzz77jL333rs0Gd+0aVMaNGjAe++9x3vvvcedd97J2LFj2WKLLZaLff/999lnn31q3V9JkqS1xZXC31ERMTkiUkT0WQv3TrlH5zV9b0mSpPVN+/bt6devH5deeinDhw+vcdxFF13EE088QZMmTRg5ciTz589n3rx5jB49mjZt2vDaa69x0kknVRp79NFHM3XqVNq2bcv999/PggULKCoqYtasWVx22WUAjBkzht/97nfLxV5wwQU8/PDDNGjQgGHDhjFnzhxmzpzJ1KlTOeSQQ1iwYAGHH344n3zyyXKxw4YN48svv6zycdFFFwFZMvfII4+s8Vys6pyUlJRw8MEHM2nSJDp27MiTTz7J3LlzmTNnDq+++ipdu3Zl6tSp7L///ixdurTSe7dq1Yo999yTCy64gAcffLDWfZckSVqTTAoXmIjoHBFDI+LMtd2XuhARZ+bG17mOrn9g7vp96uL6kiSpsOy///5Mnz6dxx9/nKFDh7LXXnvVKO7LL79k2LBhAFxzzTUMHjyY+vXrExH8/Oc/5/bbbwfg3nvvZeLEieViP/30U8aNGwfA73//ew499FAaNWoEZInNSy65hMGDBwPw0EMPlYudMWMGt9xyCwDnnnsup59+Ok2bNgVg00035b777mPrrbdmwYIFXHLJJbWejzvuuAOA/fbbj7Zt29YqdlXmZPTo0bzxxhulfdhnn32oVy/7VWmXXXbh4YcfpmHDhrz33nv89a9/Xe7e3bp1Y+bMmTz99NNcddVVHHzwwbUbuCRJ0hpmUvi76xPgA2B+heOdgUuB72RSmGxcl5KNsy4cmLt+nzq6viRJKiD169dfqbgHH3yQRYsW0bJlS0488cTlzh9wwAFsvfXWpJS45557yp2bPn166esePXpUev2ddtoJyGrslvXss8+W1uU988zlf5xs0KABp512GpAllOfOnVvjMU2YMIEJEyYAWe3h2lqVOXnyyScB2HbbbfnZz362XOyWW25ZWg7jzjvvXO58vXr1iIha91mSJGltsabwd1RKac+13Qet2xYuWUbnCx5f292QvvPO2T77M+Mhft6kNWKguoyKAAAgAElEQVR9+MxNvnq/Vb7Gc889B8CPf/zj5Wr+5v3sZz/jww8/5Nlnny13vHPnzqWv33rrLbp27bpcbH7VbMW6vlOmTAGyFcXt27ev9L7bbLMNAAsXLuTFF1+sca3d/Crhdu3ase+++9YopqxVmZP8uLp06VLl9fPjevnll5k/fz4bbLBBrfsoSZK0rnClsCRJkrSeee+99wDYbrvtqmzzwx/+EMg2QUsplR7v2LEjP//5zwE466yzeOCBB0pX/xYVFXH55Zdzxx130KJFC4YOHVrumvnVsMuWLavyvmVr7r777rs1Gs/SpUv529/+BsCRRx5Jw4YNaxRX1qrMSW3GVVJSwvvvv1/r/kmSJK1LTApXo+xmbRGxcUTcGhFTI2JBRLwfEWdFRL0y7QdExAsRURQRcyLi8YhYbulFRDTOtb0zIiZExNcRsTAipkTE3yJipxr2aZOI+GNE/CciFkXE+MralT0GPJf7cvMyG8LlH0PKtN0oIk6JiEciYlJEFEfEvIh4LyJuiIhOqzS5NRQRe0TEAxExLSIWR8TsiPgoIh6OiJPy85+r85uAzXOhz1UY29gy16wfEftGxG0R8UZETM9d+78RMSoi+lbSjz656w/OHbq04vyVaTuk4j0rud7QXJuRlZxrHxHXRsQ7uTlfmPu+ezkifhMRm1dySUmSVEC++OILADp1qvpHsvy5uXPnLlfG4fbbb2f33Xfnm2++YcCAATRt2pRWrVrRunVrfvOb33DggQcybtw4tt1223Jxm2+e/RhSXFzMtGnTKr1vPjlbtp8r8uSTTzJjxgxg5UpHlL3XysxJflzVJXtXZlySJEnrKpPCNfN94E3gJKAF0BDYBrgBGAYQEVcD/wB6kc1rc6Af8EJEbFXhenvl2h4NbJ9rn4DNgCOBcRFx9Ar6tDUwHvhfoAOwpAbj+AqYlXtdAkyv8FhQpu0FwC1Af2BLYDHQGNgWOAsYHxHdanDPlRYRJwJjgUOATcjGWB/4AXAAcCvQKNd8bm4MJbmvZ1F+bDPLXHpb4AngRGBHoAnZ+DYmqxn8TET8ukJ3FueuszD39TyWn79Vlkv4jgfOAbYjm/P5ZOPvBVwM1P7vKSVJ0ndKvtZvfpO3ypQtb1AxKdyuXTsee+wxjjrqKCBb/Tp79mwgWy07d+5cvvnmm+Wu2adPn9JVvNdee+1y5xcuXMiNN95Y+nVxcXGNxpMvHdGtWze6d+9eo5iKVmVO8nWEP/74Y0aNGrVc3DvvvMMTTzxR+nVNxyVJkrSuMilcM78HPgV2SCm1JEsMX5w798uIuBA4m2yTs5YppRZkyd4PgFbAbytcby5wI/BjoFlKqU1KqSnZKtc/kNV6Hh4Rm1XTp+uBL4DeKaUNU0rNgEOrG0RKaRcgvxXy1JRSxwqPv5dp/hlwIdANaJpSakuWoNwZeApoB9wTdbSjRkRsQDZGgNuBzcqMsy1ZYvRecknglNJ1KaWOwNRczMEVxlZ2C+jFuWvuTfZ+tcxdtwPZ+7oM+G1E7JoPSCm9nLt+fo6uqzh/q2nol5Ilpz8m+/5olFJqAzQl+566AvhyNd1LkiQVqHHjxrHVVlvx4IMPctVVV/HRRx8xd+5cJkyYwDHHHMPTTz/NnnvuyejRo8vFdejQgZNOOgmAm266iYsvvpjPP/+cJUuW8Oabb7LffvsxZcoUGjTIti6pV2/Fv27MnDmz9D6DBw9eQeu60b9/f3bYYQcAjjvuOO644w6KiopYsGABjz/+OPvvv3+5sdRkXJIkSesyN5qrmRKgX0qpCCClNB+4IiJ+AvQlS/pemlIalg9IKb0TEScA/wL6R0SjlNLi3LmxZCtgy0kpfQacFREtgOOAY4HLqujTUmCvlNL0MvEfr+pAy1zrxkqOLQPeiIgDyFZOb0eWuHx+dd23jK5AM7IVuSfm7p3vx0zgn7lHraWUPgR+UcnxGWTvawC/AU4GXlmZe6yCH+WeL0opvVCmb4uAd3KPGouIN6o4tU2DenD29kurOC1pdemQW7B2jp83aY1YHz5zY8eOrfLcl19++2+/r776armvy2rcuDFLlixh4sSJVV7vlVe+/THmrbfe4oMPPgCyFbWDBg1i9uzZXHjhhfzoRz9i2rRppeUghgwZwowZM3jyySc54YQTuPPOO2nUqFHptfbff39ee+01XnnlFa644gquuOKKcvc97rjjeOihhygqKmLOnDnVjhfg4YcfZvHixdSvX5/vf//7K2xflVWZE4DzzjuPc889l//+97/LlbBo0qQJJ554IrfccguQbUxX035OnDixyo3vvgvyq6ZX9n2TVDt+5qQ1q7afufXpr4n8J+6auTWfEK7g6dzzYrJSEhW9RFZuoDFZyYOayi/J6F1NmzvLJoTXpFyCckzuy+r6uCrm5J4bkq0MXpNqMv91JT/ujdfCvSVJ0nqibdvsx6PKSjzk5c81bdq0XNmEMWPGMHv2bFq2bMlee+1VaeyAAQMAmD59Oh9/XH7dQaNGjbjyyiu56KKL6NWrF506daJTp078z//8D7/73e844ogjSkszbLLJJiscy1NPPQVAz549ad269QrbV2VV5gSyesN//vOfOemkk+jWrRsdOnRg8803p1+/ftx222384Aff/ji/6aabrnQ/JUmS1gWuFK6Zt6s4PiP3PDmlNLfiyZRSSUR8DWwKlPsJNyLaAL8kK4PQBWhJVi+3rOo2c/t3Dfq9SiJiG+BUstXAnclW7lYsF1FXG859lHtsBfw7Im4GngQ+SGW3il5JEdGUbCXwAcAPyd6fip+HNbKZXgVPALsC1+RqUT8AjEspLag+rHIppUo3LYyIN5aWsON1b/ufAKmu5Vcr+nmT1oz14TM3eVCfqs9Nnlz6umfPnmyzzTaVtttll12YMmUKxcXF9OlT+fUefPBBALp27VquTf741ltvXWVsz549Oe644wBo06ZNpe369u3L5ZdfvtzxN998k6VLs/fh2GOPXW6zurLef/99Jk2aBMDZZ59dZX9qYlXmpKx99618+4YbbsjWgLRv354jjzyyxv3q1q3bKo1rXZdfOfVdHqO0LvEzJ61Ztf3MNW/evO46s5q5UrhmqtpeeNkKzpdt0zB/ICJ+CLxHVqKgF9CGbDOxGWQbluU3g9uwmut+VX2XV01EHA5MJEtcb5/ry2y+3VRtXg36uNJy5SKOBD4HtiBbif0+8HVE3B8R/Ve2nnFEbEy2mdsNwB5k9ZEXkc3pdODrXNM6GdsKXAM8SraB3inAs8CciHg5Is6NiFZroU+SJGkd85Of/ASAF154gYULF1baZsyY7A+79txzz3LH8/VwP/vssyqvP2XKlNLXtf3l5t577wWge/fu1SaE4dsN5tq0aUP//v1rdZ+KVmVOauK+++4DqFVCWJIkaV1lUnjt+CvZpmZvAvsAzVNKLVJKHXIblg3Itasu6bmsmnOrJCLaASPIEtl/J9tcrklKqXWZTdV+X4M+rpKU0utkK4WPAu4E/kOWQD8UeAR4PCIqrq6uiT8AW+eudwjQJqXULKXUPje2H1UbXYdSSotSSgeQ/WPB74BxQCrz9YcRscPa6p8kSVo3HHzwwTRu3JiioiL+/Oc/L3d+9OjRfPDBB0QERxxxRLlz+Q3Vpk+fvtxGcnkjRowAICLYZZddatyvCRMmcPPNNwPw61//utq2JSUl3H333QAcfvjh5eoWr4xVmZMVGT58OK+99hobbLABZ5xxxir1U5IkaV1gUngNi4jNgJ5kSd3+KaWnKik90WHN96ycfclKRbwHHJlSeiOltKRCmzXSx5TSgpTS31JKg1NKW5KtGr6KLFG6L1kJiBqLiEZkJSMABqWUHkopzarQbFXHlt/ZprodRVpWd4GU0riU0vkppV5kpS2OAD4jW9W8/G85kiRpvfX111+XPmbN+vbHkqKionLnSkpKSs917NixNDl53nnncdddd7FsWbZm4IknnuDYY48F4IgjjqBbt27l7nfooYey0UYbAdmmciNHjiytATxjxgx+/etfM2xYtn/y4YcfTvv27cvFP/fcc1x//fV8/PHHpfecPXs2t912G3379mXhwoUcdthhHHbYYdWO++mnn+bzzz8HYPDgwTWaqz59+hARlf4J56rMCWSJ37vuuovp07/dtuOzzz7j/PPP53//938BuO666+jcuXOlfZs1a1a59ytvzpw55Y4vWVLxx2pJkqQ1b90ttvbdld+V4quU0udVtPlpHd4//9tEdSt8832cmFIqqXgyV7ah7+ruWE2klD4FLoyI7wOHk5V/uKVMkxWNbyOyjf8A3qqiTXXzX5P5y29KWN0OJDVecpNSmgfcFxGzgH8CO0XEhrnjkiRpPdeuXbtKj/fq1avc159++mm5hOQVV1zBO++8wxNPPMExxxzDCSecQP369Zk/fz6Q1di99dZbl7tuixYteOCBBzjggAOYOXMmxx57LMceeyzNmzcvt2N2z549+dOf/rRc/JQpUzjnnHM455xzaNCgAc2bN6eoqIj8tg9HHHFEaVmI6uTbbLvttvTs2XOF7WtiZecE4OWXXy7tU9OmTWnQoEHpfDRs2JDrrruuNDlcmR49epQru5E3cODAcl8/99xz1gKVJElrnUnhNW927rlDRLRPKc0oezIitierpVtX5uSeq1upmu9j14iISjZ2OwHYcrX3rIyIaJRSWlxNk/zGa40rHM+Pr6rau8Vkq4yDrFby6xXuuzFwWjX3XdH14duNCTeJiJ1SSm9UuMfuQO/KAlcw7vyYg6zm8ColhZs0rM+HV++3KpeQVAP5jQmq21hK0upTSJ+5hg0bMnr0aEaMGMHIkSN57733WLZsGd27d+eII47gzDPPrLIkwx577MG7777LTTfdxFNPPcUnn3zCggULaNu2Ld26dWPgwIEcd9xxNGzYcLnY3XbbjTPPPJN//etfpRu7bbLJJvTq1Ytf/OIX7L333ivs+5w5cxg1ahRQ81XCNbEqc5LvxyuvvMLnn3/OsmXL2Gqrrdhrr7049dRTV1gfWZIkaX1iUnjNex+YRraK9O8RcUJK6eOIaAjsD/wRmMvyyc7V5SNgCdAyIg5JKT1YSZunyRKnXYEbI+LilFJRRLQATgKuBL4B2tZRHwH6RcT5wO3A/0spTQGIiA2AQbkHwFMV4t4FdgCOiIgnU0rldhlJKRVHxDiyGr23R8QxKaXxEVEP+AnwJ6pfBfxu7nmfiNg4pbTcJoMppSkR8SpZmZCREXFkSunt3Ht8IHAr2WaCrSu5/jsR8QAwCpiQUlqcW5m9C3BTrs1rlZS8kCRJ66nl//295urVq8dJJ53ESSedVOvYTTbZhKuvvpqrr766VnE/+MEP+P3vf7/ihtVo0aJF6erd2sgn/auzsnPyk5/8pHSzupUxefLklY6VJEla06wpvIblyjGcTlaGoA/wUUTMIUsEPwgsAs6sw/vPA+7NfflARBRFxOTc49Bcmw/INmMDOBWYlStdMItss7NnyBKbde1HwHBgckTMj4iZZPM0nGyl7BO512X9Jfc8AJgdEVNzY7uvTJuzyFbdbg+8FRFzc9d9mizR/Ytq+jQKmEm2Ud20iPgiP38V2p2eu0dXYGJEFOfu8Q/gNbLkf2XaA78GXgXmR8Q3ZN8TrwDdgK+B46vpnyRJkiRJklQtk8JrQUppFFlN3jFk5QwaAlOA64AeZCuJ69LJZJu1TSJbkbx57tGsTB/PBk4kq7u7CKife30msB/fbqZWV54FjgbuICvHMB9oTrZCeQxwDLB/SqlcP1JKzwIHAc+TJWU3IRtbxzJtXiFbKfwwWaK7ITADuA3oDkyoqlMppa/JVhQ/BHxFtvFbfv7KtnsF2A0YTVZjuAHwIXAu1c/fAWTvzUvAf8nek8XAROBqYLuU0sSq+idJkiRJkiStiOUjqpFS6ryC8yOBkStzjZTS82SJy8qMpYoSBivqU03apZQWABfmHtVdYwQwoorTQ3OPyuKqK79QIymlOcDduUdtYx8mS/hW12YCWfK4KlWOIZeUPaQG/XgT6F/F6aFUMn8r+L6QJEmSJEmSVpkrhSVJkiRJkiSpgJgUliRJkiRJkqQCYlJYkiRJkiRJkgqINYVV5yLiNeB7tQj5e0rpjLrqjyRJkiRJklTITAprTWgHdKhF+5Z11RFJkiRJkiSp0JkUVp1LKXVe232QJEmSJEmSlLGmsCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiRJkiRJUgExKSxJkiRJkiRJBcSksCRJkiRJkiQVEJPCkiRJkiRJklRATApLkiStRhFR48fzzz9fLrZPnz41jr3sssuWu3fnzp1XGHfddddV2u+vv/6a+++/n/PPP5++ffvSsmXL0piFCxeutvn54IMPOO200+jSpQsbbrghLVu2ZNttt+W4445bbj4qKioq4vLLL2fnnXemdevWbLDBBmyxxRYcfPDBjBw5ssq4zz77jNNPP52tt96apk2b0rp1a3r37s1tt91GSUnJahubJEmStL5osLY7IEmS9F3SoUOHas/PmTOHBQsW0KhRI7p27VruXJs2baqNX7hwIbNnzwZgxx13rLJd69atadSoUaXnNtxww0qP33333Zx11lnV9n1V3XjjjZx77rksXrwYgGbNmrF48WImTZrEpEmTqFevHnvssUelsf/6178YMGAAM2bMAKBx48Y0btyYTz/9lE8//ZSJEycyZMiQ5eKefvppDjnkEObMmQNAy5YtWbBgAS+//DIvv/wy999/P4899hhNmjSpm0FLkiRJ6yCTwpIkSavRl19+We357t27M2HCBH7+85/Ttm3bcuceeuihamPPOOMMbrzxRtq3b8++++5bZbuHHnqIPn361LjPkK1w3nTTTdlll13YeeediQguvPDCWl2jOrfddhtnnHEG9erV4/zzz+eUU05hs802A7I5GzNmDEuWLKk09s0336Rfv37MmzeP/v37c+mll5YmxWfPns24ceN46aWXloubOnUqhx56KHPmzKFXr14MHz6crl27snTpUh5++GGOP/54nnnmGc444wxuu+221TZWSZIkaV1nUliSJGkNGT9+PBMmTABg8ODBtYpdsmQJ99xzDwCDBg2iQYPV+2PcqaeeyhlnnFH69dixY1fbtSdPnszZZ58NwK233soJJ5xQ7nzHjh05+uijK41dtmwZxx57LPPmzWPQoEHcddddRETp+ZYtW7L33nuz9957Lxd7ww03MHv2bFq0aMGjjz7KRhttBECDBg049NBDmT9/PoMHD+bPf/4zZ511Fttss83qGrIkSZK0TrOmsCRJ0hpyxx13ANC+fXv69etXq9gnnniCr7/+GqDSMgmrqn79+qv9mnnDhg1j/vz57LrrrsslhFfkscceY+LEiTRt2pQbb7yxXEJ4RZ588kkgS6LnE8JlHXXUUbRr146SkhL+9re/1apfkiRJ0vrMlcJSgVq4ZBmdL3h8bXdD+s47Z/ulAAzx8/adN/nq/ao9v3Tp0tKVvkceeWStV/rmE8rdu3enW7duK9fJtSQ/7iOOOKLWsflk7d57702bNm1qFTtlyhQAunTpUun5evXqsfXWW/PVV18xZswYLr/88lr3T5IkSVofuVJYkiRpDXjyySdLN0mrbemIb775hscff7zGsWeddRbt2rWjUaNGdOzYkX79+nHPPfewbNmy2nd8FX3yySel4+7Rowfjxo1j//33p23btjRt2pRtttmGc889t7RNRf/+979LYz///HNOPPFENtlkExo3bsz3vvc9jj76aN5+++1KY/Oriqsb99Kl2T/cvPfeeys9RkmSJGl9Y1JYqkREbBQRp0TEIxExKSKKI2JeRLwXETdERKdqYltHxO8jYnJELIqIqRHx54j4XkT0iYgUEZOrie8aEbdHxKcRsTAiiiLipYg4OSIa1smAJUl1buTIkQDssMMOdO/evVax99xzD4sXL6Zhw4YMGjRohe3Hjx/P/PnzadKkCdOnT+fJJ59k0KBB7LnnnhQVFa1M91faRx99VPp67Nix7Lbbbjz22GMsWbKEiOCDDz7guuuuo3v37rz77rvlYhcuXMi0adMAmDVrFt27d2fEiBF88803NG3alGnTpnH33Xez0047cd999y1378033xyoOuG7dOnS0v4VFxczd+7c1TJmSZIkaV1nUliq3AXALUB/YEtgMdAY2BY4CxgfEf+fvfuOk6o6/zj+eZa2wBaKFEURjUQFsYAgSETEiKiEoAYRG6AJRgUMlojEAjaMJSoaG1HKLzaiIAK2VQMGFQvYAJWiFJW6wMLCLmX3+f1x74zD7myfBXS/79drXjNzzzn3nHNnL+XZM88p9N1dMzsQmAf8BTgYyAPqAZcBc4HDiuvUzAYDnwMDgRbATiAFOBF4DHjTzOpUeHYiIrJHbdiwgenTpwNlXyUMP6WOOOOMM2jUqFGR9Xr37s1LL73E+vXr2bp1K5s3b2b58uVcd911JCUlMWvWLM4777zyTaKcYoPQo0aN4te//jVz5sxh8+bNZGdn8+qrr9K4cWNWrVrFueeeG125W7DtmDFj2LFjB88//zzZ2dls2rSJL7/8khNOOIGdO3cycOBAFi1atFvf3bt3B4Kg+g8//FBobGPHjmXDhg3R91u2bEnYvEVERERE9mUKCovEtwIYARwN1Hb3hgRB4eOBN4BGwLNWeLebfxMEc9cAPYEUd08FOgMbgHuL6tDMegMPA1uBvwKNwrZ1gB7AYqAr8EBCZigiInvMc889x44dO6hevXqpVvrGWrBgAXPnzgVKDig/+OCDnHPOOTRs2DB6rHnz5tx77708/PDDAGRkZPDmm2+WcQbll5+fH31tZkyZMoUTTjgBCHL6nnHGGTz99NMAfPPNN0yePDlu2/z8fP7xj3/Qt2/faD7mo446iqlTp5KSkkJubi4PPvjgbn0PGzaMlJQUcnJy6NGjB++88w65ublkZmby6KOPcu2111Kjxk9fwklK0j+NRURERKRq0EZzInG4+5g4x/KAuWb2e4LVwK2BLsAsADM7BTgZcOBcd38vpu37ZtYDiPv9VTOrBkT+J9vH3d+IabsDeMPMzgC+AC41s5HuvqqkeZjZ3CKKjqieBNe02VVEsYgkSpPawfN1ut9+8WbOnFlk2SOPPAJAhw4dWLhwYZny1z7++OMApKWlkZqaWmw/xTnyyCNp2rQpq1ev5vHHH6dmzZrF1v/ss8+ir999990S6xflu+++i75u3749q1atYtWq3f8Kq1u3LgcddBArV67k//7v/2jcuDEAW7du3a1OixYt4s6/a9euTJ8+nenTp3PGGWcAP30ef/vb3xg1ahTz58/n1FNP3a1d06ZN6datW3QjvM8//7zc8xSpqiIr7Mv7Z5OIlI3uOZE9q6z33M/pm2daDiFSRu6+HcgI33aOKTonfH4vNiAc024ZUDjhYaArQbqJ+bEB4QLtlwJzCH6Z07Ws4xYRkb1j+fLlfP3118BP6QxKKy8vj7feeguAU089dbdVrWVlZhx++OEA/Pjjj+U+T1ntt99+0dcHHXRQkfUiZevWrYseq1OnDrVrB79ZOeCAA6hWrVqxbeNtVtexY0fGjRtHnz59aNmyJY0bN6Zly5ZcdNFFjB07NnpNGzdurICwiIiIiFQZWiksUgQzOwIYTLAauAVBbt+C6SJiN5w7LnyeXcxp/0eQL7igE8Pnlma2upj26eFz0f+rjuHu7eIdN7O5u/Jpe9+X+iNApLJFVgjrfvvlW3Zh17jHb7jhBgAaNGjAjTfeWKbA42uvvUZmZiYAI0aM4Pjjj6/QGCMrcBs2bEjXrvHHG0+XLl1ITk4uV58dOnTgyiuvJD8/n4MOOqjIfiMpLwqO7eijj+bDDz8kNTW1yLbz5s0DoFq1aqSmpgIUqnv++efHbfvkk09G65flmohIILJySvePyJ6he05kzyrrPRf5t+jPgVYKi8RhZucTpGq4CmgD1AWyCHIFryHI+0t4PCKyFKq4tA5FLc3aP3yuBTQp5hH5H7k2mxMR+RnIy8vj3//+NwD9+vUr80rUyAZzrVu3rnBA2N35+OOPATjkkEMqdK6yqFOnDp06dQKCnMFFiZS1aNFit+O//e1vAVi6dCl5eXlx20ZWYhdsW5LMzEwyMoIv/1xwwQVlaisiIiIi8nOmoLBIAWbWCBgL1ABeINhcLtnd67t7U3dvyk+bvRVcOVxekXtxqrtbKR4jE9SviIhUorfeeiuaqqGkTeIKysrKYurUqaVu6+7Flj/xxBMsW7YMgLPOOqtMY6moSy65BIDXX389bmB4xowZLFq0CIAzzzxzt7ILL7yQpKQksrKyGDduXKG2a9asieYELti2OO7O0KFDyc3NpU2bNvTs2bPUbUVEREREfu4UFBYp7AyCVBELgQvcfa677yxQp0mcduvD5/3jlFFC2ZrwuXmpRykiIvu8yErfVq1a0b59+zK1feGFF8jNzaVatWpcdNFFJdYfOnQoV199NbNnzyYnJyd6fOXKlQwfPpzBgwcDcMopp0Q3Y4uVn5/P+vXro4+srKxoWWZm5m5lBS1btgwzw8wYP358ofJLL72UVq1akZeXx/8JPgwAACAASURBVDnnnMNHH30U7fP111/nsssuA4L8vwUDu0ceeWS0/Nprr2XSpEns2hWkZVmwYAG9e/dm69at1K9fn2HDhhXqe8SIEbzxxhts3rw5euzTTz+ld+/ePPvss9SpU4dx48YVma9YREREROSXSAkORQo7MHz+wt3zCxaamQHd4rT7lGDjud8Uc+6Tijj+Qfh8tJk1c/cfSjtYERHZN23evJmXX34ZKPsqYfgpoNy9e3f237+43zcGtmzZwoQJExgzZgxJSUmkp6eTl5e3WzD05JNP5sUXX4zbfsWKFUWmlTjwwAN3e1/SquSCqlevzrRp0+jatSsLFy7khBNOIDU1lby8PLZt2wYEgfMXX3yR4K/Z3Y0ZM4alS5fyzjvv0LdvX5KTk6lVq1Y0cJ2ens5LL73EAQccEF1xHPHss88yevRoANLS0ti+fTvbt28HoFGjRrzwwgu0axc3Bb+IiIiIyC+WgsIihUWWRh1lZuaF/+f7J+BXcdpNIdiYrrOZdXL3D2ILzaw5EH+XG3gbWEmwgdy9QJGJDc2svrtvLHkaxUuuUY1Fd+/Zrw+LVEWRjQmK2oRMfrkmTZpETk4OSUlJpVrpG2vx4sW8//77QOkDyn/+859p1KgR77//PitWrCAzMzO6udvxxx9Pv379OPfcc0lK2jtfFDv00EP58ssvuffee5kyZQrfffcdSUlJtG3blj59+jBkyBDq1q0bt21ycjIZGRmMHTuWCRMmsHDhQnJzcznssMM444wzuP766znooPh7sN58881MmzaNzz//nNWrV5OcnEzr1q3p1asXQ4YMoUGDBpU5bRERERGRfZKVdaWHyC+dmR0OfEWQL/gR4GZ332RmacDlwF0EgeOGwAR3HxC2M2AWwWrgVcBlwOvu7mbWEXiaIH1EPWC5u7co0G8v4OWw36nASHf/LCyrARwDnAcMcvd6FZzj3JYtW7YtuJpKRBJPO0SL7Fm650T2LN1zInuW7jmRPaus91y7du2YN2/ePHff57+KppzCIgW4+zfAg+HbwcBGM9sIbATuIVjV+3icdg5cBKwgCP6+Cmw1sy0E6SEaANeF1bfHaf8KQSB5B/B74FMz22ZmmUAO8DFwPZCemJmKiIiIiIiIiEhVpKCwSBzufg0wiCBP8HagWvj6L8BZwK4i2q0A2gJjCILD1YBNwFigHZAZVt1URPtxwOEEQekFQB6QFrabCdwalouIiIiIiIiIiJSLcgqLFMHdxxIEc+MZGT7itcsErg4fuzGzP4cvvyqm32VA4e3TRUREREREREREEkArhUX2EDNrQJAeAiBjb45FRERERERERESqLgWFRRLIzE4ws4fN7HgzSw6PVTezbsB/CXINLwNe2ovDFBERERERERGRKkzpI0QSK5Vgc7rBAOEGdXWBmmH5BqCvu+funeGJiIiIiIiIiEhVp5XCIon1GXATMAtYCdQBdhJsGnc/cJS7f7T3hiciIiIiIiIiIlWdVgqLJJC7rwfuDB8iIiIiIiIiIiL7HK0UFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalCFBQWERGp4saPH4+ZFftISUkpsv28efMYMGAAhx56KMnJydSuXZvDDjuMSy+9lM8++6zIdhMnTuSKK67ghBNO4MADDyQ5OZmUlBRat27N0KFDWbx4cdx2y5YtK3G8sY/ly5eX6XqsX7+e//znP9xwww1069aN9PT06Llyc3NLdY45c+bQt29fmjVrRq1atWjatCm9evUiIyOjyDal+Rwij0MOOaRMcxIREREREYlVfW8PQERERPYNNWrUoEGDBnHL6tatG/f4o48+ytChQ8nLywMgOTkZgKVLl7J06VImTpzIo48+yqBBgwq1HTRoENu3bwcgKSmJ9PR0srKyWLhwIQsXLuTJJ59k3Lhx9OvXb7d21apVo0mTJsXOZePGjezYsYMmTZrQrFmz4idewL///W+GDRtWpjax/v73v3PjjTfi7pgZ9erVY/369UybNo1p06YxYsQI7rzzzkLtateuXeK81qxZA0Dbtm3LPT4RERERERGtFJaEMLORZuZmNn4v9D0+7HtkAs7l4aNFhQcmIvIzc+KJJ7J69eq4j6VLlxaqv3DhwmhA+LTTTmPBggVs27aNbdu28cUXX9C1a1fy8vIYPHhw3PaXX345zz77LMuWLWP79u1s2LCB7du387///Y+OHTuyfft2Bg4cyJIlS3Zrd9BBBxU5ztWrV7Ny5UrS0tIAuPDCC6levWy/AzczDjzwQM4++2zuvPNO7rrrrlK3feWVVxg+fDjuzmWXXcbq1avZsGEDGzdu5LbbbsPMuOuuu3juuecKte3bt2+x83rttdeidQcMGFCmOYmIiIiIiMRSUFgqnZn9JQwat9jbYxERkcR54YUXyMvLIy0tjcmTJ9OqVatoeoM2bdowdepUUlNT2blzJ9OmTSvU/qGHHqJfv34cfPDB0cBt9erV+c1vfsPrr79OSkoK27dvjxtALc6MGTNYv349AP379y/zvAYPHszKlSuZPHkyI0aMoFOnTqVue+uttwLQqVMn/vWvf9G4cWMAUlNTufnmm6PB3OHDh7Nr164yjWvChAkANG7cmDPOOKNMbUVERERERGIpKCyJsh74BlgVp+wvwK1Aiz05IBERqVyRVAYtW7aMm3M4LS2Nli1bArB169YynTs9PT3a9scffyxT20jw9LjjjuPoo48uU1sI0lOUx6pVq6I5lP/yl7/ErXPNNdcAsGLFCmbNmlXqc+/cuZNnn30WKN/qZxERERERkVj6H4UkhLs/Ajyyt8chpZe7M48Ww2fs7WGI/OJd1yZYDTpgH7vflt19VoXP0aJFCwAWL15MdnZ2ocDw5s2bo5vFlTUHbmZmJosWLQIo06Zq69evZ8aM4FqXZ5VwRaxYsSL6+vDDD49bp2XLliQlJZGfn09GRgannnpqqc792muvsW7dOmDPz0tERERERH55tFJYREREAFiwYAGtW7emdu3apKamctRRRzFs2DC+++67uPUvuugiateuzebNmznnnHNYuHAh7o67M3/+fHr37s2WLVvo3r17qdIduDtr165lxowZdO/ena1bt5KamlqmIOhzzz3Hzp07qVGjBhdccEGp2yWCmUVfRzbeKyg/Px93B4LrXVqR1c/HHHMMxxxzTAVGKSIiIiIioqDwz4aZHWlmj5vZIjPbZmabzOxLMxtjZu1i6tUysz5mNtHMPjez9WaWa2bLzeyZ2Lpx+lgWbrLW1cyam9m/zGxl2P47M7vPzNKLaFtoo7nIMeDg8NB/YzZyczObGVO3mpmdYWZPmNlcM1tjZjvM7Eczm2Jm3Sp6DRPBzH4VjvHb8LpsNLN3zeyPZhb3+8ZmlmRmA8zsv2aWaWY7zWydmS0ws6fNrEecNoeY2WPh550TfubLzWymmd1oZvtV/mxFpKpZv349X331FXXq1CE3N5cFCxbw4IMP0rp162jqglgHHnggkydPpl69emRkZNC6dWvq1KlDnTp1aNOmDQsXLuRvf/tb3HzCse644w7MjKSkJJo0aULPnj2ZN28ehxxyCBkZGTRp0qTUcxg/fjwAZ555Jo0aNSrT/CuqefPm0dcLFy6MW+err76KBoVXrYqXcamwzMxMpk+fDmiDORERERERSQwFhX8GzGwI8CVwOdASyAccOAoYAtwfU/00YBJwMdCG4DN2oDlwATDHzC4uocvDgE+Ay4B6YfsWwLXAJ2a2fymHng2sCccLsDF8H3lsiKl7JPAqMAhoCyQDO4D9gd7A22Z2Yyn7rRRm1hOYTzDGQ4BcoC5wEjAWeN3M6sZp+n/AOKAr0ADYCqQBrYCBwMgC/bQFPgf+TPB5VwO2E3yGJwN3Accncm4iUrUdcMABjBo1ivnz55Obm0tmZibZ2dnMmDGDVq1akZOTQ//+/Xn33XcLte3RowcZGRn86le/AiA3N5fc3Nzo602bNrFt27Zi+09JSaFJkybst99Pv+9q0aIFY8aM4YQTTij1PObPn8+8efOAvZNioWnTptEcxvfffz/5+fmF6vz973+Pvt6yZUupzvvcc8+xY8cOqlevvsdXP4uIiIiIyC+TgsL7ODPrA4whCAy+CLRy9xR3rw80BC4C5sY0yQ7rdwFS3L2Bu9cmWK37IEEe6SfNrDlFuw/IAk5y91SCwGdvgs3kDgMmlGbs7n6fuzcFVoaHznH3pjGPc2Kq7wCeBk4H0t093d1TgCbAzUAecKeZlT46kEBm9ivgeYJg9SzgCHevB6QSBOu3A78FHirQrgtBMD4PGAakhe2SgQOAAcDsAt3dF573Q6Ctu9cMP++6QHuCzzEr8bMUkaqqe/fu3HLLLbRu3ZqaNWsCUKtWLc4880zef/99DjvsMHbt2sXw4cMLtb311ltp3749tWrVYvr06axbt45169Yxffp0mjVrxj//+U86d+7Mxo0bi+z/L3/5C6tXr2bdunVs3bqVV199ldTUVH73u9/Rr18/du7cWap5RFIsNGzYkLPOqnjO5PK4+eabAfjss88499xzWbBgATt37mT58uUMHTqUSZMmUaNGDQCSkkr3z7DIvM444wwaN25cOQMXEREREZEqxSJfYZR9j5nVAL4DmgHPuXuFlweZ2VPApcBIdx9VoGwZQfA4F2jj7ksKlJ8CvBO+PcndZ8eUjQRuBSa4+4AiznuKu88s57hvBm4Dxrv7wAJl44H+wCh3H1me88ecK3JDHOLuy2KOR67bUuBod99WoN0g4AmCVdW/jlw7M/sr8HfgdXcvOaFm0GYbUBvo6O4fVnA+c4soOuKQQw+tc81t/6jI6UWkFJrUDp7X5OzdcRR0VLO42YDieu2117jnnnswM6ZMmUJ6etA2IyODu+66i/r16zNu3Ljo8YisrCwGDhzIxo0bOf/887n88stL3ee2bdu47LLLWL16NVdeeSV9+vQptn5eXh59+/YlMzOTs88+m6FDh5a6r5J89tlnDBs2DIA33ngjGjgvyoQJE6JpLArq0KEDNWvWZPbs2bRq1Yp//vOfxZ5r2bJlDBwY/LU3atQounTpUvYJVDGRFdipqal7eSQiVYPuOZE9S/ecyJ5V1ntu0KBBLF68eJ67F5m+dV+hlcL7tlMJAsJ5wPUJOmcksWPnYupMKhgQBnD3/wLvh2//kKDxlFZpxl0pLNg56Nzw7QMFA8KhfwE/AMbu12Zz+NzYzEp7v0XalDZNh4hIpTryyCOBYCO42Dy4kydPBoKVxgUDwgDp6emcdtppALz33ntl6rNOnTqcfvrpQBCULsknn3xCZmYmQLTd3tK/f38eeeQRunfvzsEHH0yTJk04+uijGTZsGKNHj47+w7JZs2YlnuuNN94AIC0tjU6dOlXquEVEREREpOqovrcHIMXqGD5/7u4/lLaRmTUArgLOAA4H0gnST8Q6oJhTzCymbBZwIkHe34Qys9oEeXR/T5Bvtz6Ff0aLG3dlOZTgGgL8N14Fd88PN867kN2vzdsEqTHaAjPN7EngHXf/sZj+XiXINTzRzB4FXgbmunvpvj+9+7ji/mbKzObuyqftfV/qjwCRynZdm10A7Gv327ILu5a6buymae3ataN9+/YAfP/99wB06dKFrl3jn2/hwoVMmjSJtWvXFlmnKIsXL2bChAmsXr26xLaPPfYYAEcddVSZViSXVZcuXUhOTi6xXteuXbnqqqsKHc/Ly2PFihUAnH322cXOKy8vjwsvvBCAiy++OBpgl+LNnDkToMw/byJSPrrnRPYs3XMie1ZZ77mf0yr+fet/qFJQZLv1FaVtYGatCFI8xG7VvgXIIUhtUJMg2BpvQ7SI4gLQkbKEbukebl43E/h1zOGtBJvT5RMEtfej+HFXlti5Fndtvi9Y390Xm9kVwCMEG9KdBNGUGq8DT7r7pwXOcz1BMP9E4IbwkWtmHwD/IUihsY99EV1Efsk+/PCnTDYtWrSIvo7kxI0EOeNZvnw5UL5/HH333XdAsBFdcTZt2sQrr7wC7J0N5sri9ddfZ+PGjdSsWZM//KH4L91kZGTw44/B7xAHDBiwB0YnIiIiIiJVhdJH/PKMIwgIzwN6AKnunubuTcJN3yJJGW1vDbAIDxIEhL8lSNXQINxQr3E47o7Ftt5zSl4eVoC7Pw0cAvwFmApkAi0IVkXPNbMRBepnAr8BTiPYNPBTgmD+KcCjwHwzO7D8UxAR+UlJewts3ryZu+++Gwjy4TZq9NPvyY455hgAnnvuObKzswu1zc7O5vnnnwfghBN23yd0165dxfa7fv16xo0bB8BJJ51UbN0XXniB3NxcqlWrFl1Zuy/Kysri+uuDbFCXXXbZbtcynsgGc61ateL444+v9PGJiIiIiEjVoaDwvm1N+HxwaSqbWXOgA0EO4l7u/oa7F/xfepPCLQspLkVDpGxdacZUGmZWkyBlBMCF7j7Z3QtuU1+acVeW2Lk2L6ZeJFBb6Nq4+xp3f8jdexOsJO4ATCEIzt9uZkcXqO/u/pa7X+3ubQlWSV8ObCBIZ/FAuWcjIhJj+fLldOzYkaeeemq3Fb87duzg9ddfp3PnzixatIikpCRGjx69W9srrrgCCFYK9+jRg3nz5pGXl0deXh7z5s2jR48e0XMW3Pjt7rvvZsCAAbz99tu7BZS3bt3K5MmTOfHEE1m9ejXVq1dnxIjdfndWSCR42r17d/bfv+R07DNnzsTMMLPo18Fi5efns379+ugjKysrWpaZmblbWUFr1qzhhhtuYO7cueTm5gKwc+dOXn31VTp37sxXX33FYYcdFg20FyUrK4uXX34Z2PdXP4uIiIiIyM+P0kfs2+aEz0ebWbNS5BWOBiWLqfvbUvR7MjC+mDIIViKXVn74XNTq5P2AWuHrgqkUIkoz7sryLbAJqEewWvfjghXCTeS6hm+LvTYeLMv72Mz6AMsIPrffAF8U02Yj8GS46d3j/PQ5iIhU2IcffhhNEZGcnEzdunXZvHkzO3cGqczr1KnD448/Trdu3XZr169fPz788EMeeugh3nvvPdq1a0etWsEf59u3bwfAzLj99tvp3r37bm137drFhAkTmDBhAmZGWloa1apVY9OmTeTnB39tpKWlMW7cONq1K3rj3kWLFvHBBx8AiUuxsGLFCg455JC4ZQceuPsXNQqutM7JyeGee+7hnnvuwcyoV68eW7Zsia6MPuaYY5gxYwZpaWnFjmHSpEnR1c8XX3xxBWYjIiIiIiJSmILC+7a3CXLYNgPuBS4ooX5kKVMTM2vs7mtjC82sTSnOAdDXzG53928LtO8CdA7f/qcU54nYHD7XK6J8C0G+YwPaAJ8U6Hd/YEgZ+ksod3czmwxcClxtZo+4+7YC1f5I8Dk5MdfGzGq6+44izptnZpHN42qF9ZOAJHcv6nvVObH1KyK5RjUW3X1WRU8jIiWIrEQty8Zue1KTJk0YM2YMs2fP5vPPP2fdunVkZWVRt25dWrZsyamnnsoVV1zBwQfH/9LKgw8+SK9evXjyySf54IMPWLMm+JJLixYt6Ny5M1dddRWdOnUq1O7SSy+lfv36vPPOO3z11VesWbOGzZs306BBA4444ghOP/10/vjHP9K0adNixz9x4kQA6tWrR69evSp4NSquUaNGjBo1infeeYdFixaxfv166tevT5s2bejbty+XXnop1auX/M+vyOrn0047rVSrn0VERERERMpCQeF9mLvvNLNrgeeBfmZWHbjF3b8GMLMGBPl327j7UOArgs3ODgReMLM/ufsSM6sB/I4gH202JQcUdwCvmdlAd38/DFSeBTwVlme4+3tlmMoC4JhwDq+5e26BeW4xszlAJ+BpM7vE3T8L+z0FeIy9nwP5LqAvQfqMGWb2Z3f/xsxqAZcQ5P4FeMrdl8a2M7MWwL+Bd919A4CZNQH+RpBr2IGMsH4a8JmZjQVeARaGwePItbgzrPdG5UxTRKqa2rVrM2TIEIYMKf/v3rp161ZoFXFJmjdvztVXX83VV19d7n4B7rjjDu64444ytenatWuxuZRbtGhRYq7lotStW5dbbrmFW265pVztI2bPnl2h9iIiIiIiIsVRTuF9nLu/AFxLkIKhD/CVmW0xs40EG5Y9CRwd1s0HhoZ1uwKLzWwzQSD4JWA7wWZnJbkOqA+8Z2ZbwvavEOTCXQKUNblhJJjcB8gys5VmtszMno+pM4xgFWwb4FMzyw77fQtoCFxWxj4TKgz09gNyCa7t1+FnsIXgM6hFsLK74PWtThC4nwJkmllW+Jms5qfVzze5+/yYNgcDdxCkk8gxs0yCQP1bBAH/b4FrEj1HERERERERERGpGhQU/hlw938AxwHjCHLQ1iBYXfoF8BBBQDVSdwrQjWDl6Zaw7nLgvvAc35eiyyXA8cDTBCkpqoX93g8c7+6ryjj+d4CzgVkEgd9mBIHPpjF1PiRYKfwysDEc91rgCeBY4POy9FkZ3H0aQdB6LMH1qANsA2YDg4DT3X1rgWYPEATqpwKLCFY81wJWAi8AXdz9rpj6m4GewIPARwSb1qUCWwlyGf8NONbdS/M5ioiIiIiIiIiIFKL0ET8T7v4FQU7b0tSdRRCAjWcmpUjF4O4rKMPqXHcfCYwspvxlgoBvcef4nCB4XJS443b3AcCAEoZYKu5e7LVx9yUEAeDSnm858HD4KE39fGBG+BAREREREREREUk4rRQWERERERERERERqUIUFBYRERERERERERGpQhQUFhEREREREREREalClFNYfnHM7DrgurK0cfemJdcSERERERERERH5+VNQWKLcvcXeHkOCpABN9vYgRERERERERERE9kVKHyG/OO4+0t2tLI+9PWYREREREREREZE9RUFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKkRBYREREREREREREZEqREFhERERERERERERkSpEQWERERERERERERGRKqRSgsJmVt/MupnZ8XHKmprZM2b2vZmtM7P/M7OmlTEOEREREREREREREdldZa0UHgRkABfEHjSzWsC7wPnAAUDDsM5MM6tTSWMRERERERERERERkVBlBYVPD5+fKXC8P3AYsAkYDFwGrAJahu9FREREREREREREpBJVVlD4kPB5YYHj5wEODHf3R919HDAQMODsShqLiIiIiIiIiIiIiIQqKyjcCMhy95zIATOrDpwI5AP/ian7FpAHHFFJ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rpl57naewUE9uXNu+7kcw5xzrmWFByMiIiIiIiIiIiIiAZWSFAZOLccYV+FRiIiIiIiIiIiIiEgBlZUUvryE9jjgfOAuvBIWjwHbKykWEREREREREREREfGplKSwc25eKbq9Z2YvAXOBEUC7yohFRERERERERERERA47qgfNOed2AQ8CpwDDjmYsIiIiIiIiIiIiIuHgqCaFAZxzS4H9wPVHOxYRERERERERERGRE91RTwqbWSReGYuTjnYsIiIiIiIiIiIiIie6o54UBroBVYGUox2IiIiIiIiIiIiIyImuUg6aK4lvd3Bj4FpgOOCAj45GLCIiIiIiIiIiIiLhpFKSwmaWU0KXCMD83YGNeMlhEREREREREREREalElVU+okoJD39SeBvwEtDWObejkmIREREREREREREREZ/KKh/RooT2Q0Cac25vJa0vIiIiIiIiIiIiIkFUSlLYOfe/yphXRERERERERERERH6bSikfYWYdzKxdGfq3MbMOlRGLiIiIiIiIiIiIiBxWWeUjvgS2A41L2X820KQS4xERERERERERERERKu+gOfAOkqvM/iIiIiIiIiIiIiJSRpWZFC6LWCDnaAchIiIiIiIiIiIicqI76klhM2sL1AW2He1YRERERERERERERE50FVLD18xuBW4tdDnezD4vbhhQGzgLcMBnFRGLiIiIiIiIiIiIiIRWUQe7nQJ0LXStapBroSwFhlVQLCIiIiIiIiIiIiISQkUlhecAW32vDXgL2AsMLmZMHpAO/OCcW1dBcYiIiIiIiIiIiIhIMSokKeycWw2s9r83s7eALOfcXytifhERERERERERERGpGBW1U7iwKLw6wSIiIiIiIiIiIiJyDKmUpLBzLrcy5hURERERERERERGR36aydgoXYGb1gEZADbyaw0E555YeiXhEREREREREREREwlWlJYXNzIABwIPAqaUY4iozHhERERERERERERGppCSsLyH8HnAN3s7gDKAmkAfsBOoA0b7umcCeyohDRERERERERERERAqKqKR5+wPX4iWALwFq+67vdM41AmKBrsAyvKTxk865JpUUi4iIHAUrV65k2LBhdO/enVNPPZW4uDiqVq1K48aNufbaa/nggw+Cjtu2bRsvvPACffr04cwzz6RevXpERUVRr149unTpwvjx4zlw4ECxa2/evJkBAwZw2mmnUa1aNeLj4+nYsSNvvvkmeXl5Qcds3LgRMyv1Y9OmTeX6XNavX89dd91F06ZNqVq1Ko0aNaJv376sWrWqxLELFiygT58+NGnShKpVq1KjRg3OPPNMHnnkEf73v/+FHJeYmFji/bz44ovluh8RERERERE5/lRWuYZb8cpBDHHOLQLwNg97nHOHgPlmtgj4NzDZzNY755ZXUjwiInKETZo0iTfffDPwPjY2loiICH799VfmzJnDnDlz6N27NzNmzCAqKirQb8mSJTzxxBOB91WrVqV69eqkpKSwePFiFi9ezOuvv87cuXNp3LhxkXW/+OILevfuTXp6OgBxcXFkZWWxdOlSli5dysyZM/noo4+IiYkpMC4yMpIGDRoUe0979uwhJyeHBg0aBF27JHPnzuW6664jMzMzEFtycjLvvvsus2fPZsqUKdxyyy1Bxw4dOpQxY8YE3teoUYOcnBx+/PFHfvzxRyZNmsSsWbPo2bNnyPXj4+OJjo4O2lajRo0y34+IiIiIiIgcnyprp/DZvufZha5H5n/jnMsFBgJRwOBKikWkwpnZRjNzZpZ0tGMROVa1b9+el19+mVWrVpGRkUFGRgZZWVls3ryZIUOGADB79uwCiU6Apk2bMnz4cObPn09KSgrZ2dns3buXvXv38tZbbxEbG8uPP/7IbbfdVmTNLVu2cMMNN5Cenk779u1Zs2YNaWlp7Nu3j5kzZxIXF8e8efN49NFHi4xt0qQJycnJIR9btmyhVq1aAPTr148qVcr2c9Xk5GRuuOEGMjMzufzyy9m4cSNpaWkkJyfTr18/Dh06xF133cUPP/xQZOznn38e+Jx+//vfs2HDBvbt20d2djZLly7l7LPPJjs7m1tuuYW9e/eGjOG9994LeX8PPPBAme5HREREREREjl+VlRSOBdKcc1n5rh3AqytcgHNuLZAOdKqkWERKzczONbMRZtb/aMcicry7/fbbeeyxx2jTpg2xsbGB602aNGHs2LGBHbFvv/12gXEdOnRgxIgRXHLJJdSpUydwvVatWtxzzz288sorAMyfP58tW7YUGPvSSy+xd+9eatWqxZw5c2jdujUAVapU4YYbbuC1114DvF3M69atK9P9fPzxx+zevTtwb2U1ZswY0tPTadKkCe+99x7NmjUDoH79+kydOpW2bduSk5PDM888U2TstGnTAGjRogXvvPMOiYmJAERERNC+fftAKY60tDQWLFhQ5thEREREREQkvFRWUngn3u7f/HYBVc2sUf6LZhYBVMM7fE7kaDsXGI5XF7s4/wN+wjsoUUTK4fzzzwfg119/Lde4YGM/+eQTwNvJW69evSJjb7nlFhISEsjLywskWktr6tSpAJx33nmcffbZJfQuKC8vj3/84x8APPDAAwWS5OCVrnj88ccB+OijjwKlL/x27NgBwNlnn01kZIFfugGgefPmgQT6/v37yxSbiIiIiIiIhJ/Kqim8CWhsZvWdczt9174GGuMdQPd6vr498BLIWyspFpEK55y77GjH8FtlH8wl8cmPj3YYcoLZOCZ0PdvCli5dCngJzbLwjwMCO2b9/Ie/tWzZMujYiIgITjvtNHbt2sXcuXMZOXJkqdbcvXs3H3/sfV/Ks0t406ZNgcRut27dgva54oorAMjJyeHLL7+kR48egTb/fX733Xfk5uYWSQxv2LCB1NRUwEtai4iIiIiIiBSnsnYK+/+PvXO+a9MBA/5kZgPN7BIzGwBMxTuU7sNKikVERI4R+/bt47vvvuOhhx7i3XffBeDhhx8ucVxOTg4bNmzgpZdeYtCgQQD06dOnyMFw/kNNc3NzQ8516NAhANauXVvquGfMmMHBgweJiori5ptvLvU4v40bNwbiO/PMM4P2qVevHvXr1w8a2913342ZsX79em699dbAfHl5eSxbtozrrrsOgHvuuSfk/AADBw4kISGB6OhoGjZsSI8ePZg+fXqxn5eIiIiIiIiceCorKfwuXp3gXv4Lzrl/4iV+Y4EXgS+Al4F4YAPer+xLOZhZLzP71Mx2mdkBM9tqZtPMrE0J47qb2Sxf/wNmlmxm/zGzp82sSYgxZ5jZG2b2s5llmlmama0xs9fMrG2hvgt9h7H1LyaGoAe2+er6OjN728wifD9I+NbM9ptZipnNMbMLipm3jZmNMbMvzWyz7/5SfDHdbWZFfv/azBwwxfe2i2/9/I+kfH2LPWhwo5ezAAAgAElEQVTOzBqY2TgzW+f7nPaa2XIzG2RmVUOMeds35wgzizSzx3z3nGlmqWb2kZm1C3XPIseqrVu3YmaYGTVr1uScc85hwoQJxMTEMHLkSB588MGQY0899VTMjKpVq3LKKacwaNAgsrKy6NOnD5MnTy7S31+nN1TC99ChQ6xfvx6AjIwM9u3bV6p78Nc97tGjBwkJCaUak19KSgoA8fHxxMTEhOzXqJFXYWn79u0Frrdr147JkycTExPDjBkzaN68ObGxsVSrVo0OHTqQkZHBiy++yJtvvllsHN988w2ZmZnExMSwY8cOPvnkE/r168dll11GWlpame9LREREREREjk+VkhR2zn3tnIt3zhXeTtUbeBT4EtgIfAu8AFzgnNtdGbGcyHzJ0qnAbKAbXoI9E69Mx83ACjMrcpy8mUWb2TvAJ3h/Jo2BLLyE/YXASOCuIOMeAdYA9wEtgDy8Xd6tgUeAcRV8i+DtLp8FvAScCRzEqz99NbDUzG4KMe5z4A9AR6Au3udSB+gCTATmmFnh8ik78H6YgW+dHYUeOaUK2EtWrwUeB1oCh4Bo4Hy8H4j818zqFzNFFeBjvB+anAHk4v3Z9gSWmFn70sQhcqyIjIykQYMGNGjQgOjoaMA7+G3o0KE89NBDxY5NSEigQYMGBWrw3njjjYwaNapIXV44XIJh+vTpbNu2rUj7xIkTA2UWwEsMl+T777/n66+/BspXOgIgOzsbgGrVqhXbr3r16gBBk9X9+/fngw8+CCSl9+/fT06O99dSZmYmqampgfeFXXfddcyePZvdu3ezf/9+0tPT2bRpE4MHDyYiIoJFixZx4403luveRERERERE5PhTWTuFg3LOHXLOjXfOdXHO/c4518Y59wfnXGrJoyWIJ4Db8BKzw4B451w8cDIwE+/P989m1rnQuJeBW/CSjc8CDZ1ztZ1zscApwBCgwOlNZtYHeA2IxEvSnumci/WtV9c336pKuMdrgWvwEqy1nHO1gVOBub5YppjZ74KM+xz4PXCSc66GL85Y4FYgGa+W9cD8A5xzDfF+aAGw1DnXsNBjKSUws3jgA7wE9Bq8H3jU8q3dB9gDnAMUd8LVQ3gJ5JuAWOdcTd+Y74EY4NWS4hA5lpx00kkkJyeTnJxMVlYWP/30E7fddhvDhw/n3HPP5Ycffgg5dtmyZSQnJ5ORkUFycjLPP/88H330EWeddRYzZ84s0n/gwIHExsaSlZVF9+7dmT9/PtnZ2aSkpDBhwgQGDRpEVNThc1AjIkr+16D/gLm6devSs2fpayZXpIMHD3L33XfTvXt3Tj31VBYuXMiePXvYtm0bM2bMICoqilGjRnH55Zdz8ODBIuNfeeUVevXqRd26dQPXmjZtygsvvMD48eMBmDt3Lp9//vkRuycRERERERE5eirroDmpZGYWCwz1vf2Tc+45f5tzbpuZ/R44CegEPIevvrOZtQL8u4cfdM69lX9e59wGvN2s+deKwkskA8wovAPcl9SfRvGJzvKKA552zvnXxzn3PzO7BvgGbyfuUODuQjEVKfrpnNsP/N3MNgGLgQfxdqpXpIfxPvc04ArnXLJv7VxglpmlA58BXc3sUufc/CBz1AYuds59mS/273xlOFYC55tZU+fc5pKCMbNQifrTq0TA42cdKsu9iZRo4cKFpep36623kpGRwcyZM7n++ut54403SpWg7dChA0899RR//OMfue222wCKlHP44x//yLPPPsv333/PZZcVPBOyYcOGXHrppUyfPh2Ab7/9NrB7OZjc3FymTPGqynTu3LnAIXellZGREah1nJGRUexntHOndzbrnj17CvT7+9//zl//+leaNWvGs88+i3OOb775JnBPo0aN4u6772bJkiU88cQTXHvttaWO74wzzqBhw4YkJyfzxhtvFPt5iBwP/L8BUNq/j0Tkt9F3TuTI0ndO5Mgq63euNL+Neqyo9J3CvhIHbc3sOjMr++k8EsrlQC28kgZjCzf6kpAjfW8vNrOGvte34pVkWFc4IVyMy/BKTOTi7SI+kjKBVwpfdM5lc7hcRW/zZ1xKwTm3BC9pm2hmjSokysNu8D1P8ieEC639ObDM9zbU72ovyZ8Qzjd2FbDV97b1bw1U5Gjr1csrO79+/fpAnd/S6NChAw0aNCA7O5sFCxYUab/ooouYMmUKffr0oUWLFtSvX58WLVpwyy23MHHixMBO4fr165eYAF25cmWgHnC3bt1KHWNhderUAbz/QAhV4gEO1x7Ov6MXYPbs2QBce+21BXY6+zVp0oSLLroIgK+++qpMsZkZLVu2BODXX38tobeIiIiIiIicCCp1p7CZDcKr65r//26n52uvDSwBooCkYEk0Ccl/iNy3zrk9IfosxkvkRvr6/xu4yNf27zKs5R/zrXOuaJHOyrXSt8M3mEW+59pAc+CX/I2+khf98O49Aa/0QmGNKFQqo7zMLJrDydqimarD5gPtOfxnWNiKYsZuwysPEl+amJxzbYNdN7NVh/Jo8+Ia/bKAVKyN/ZJK3Td/mYP4+HiSkko/9ne/+x07duwACDmub9++Qa+/9dZbgXElrfn6668D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OTfCOWe+w9dERERERERERESkglRk+QgLcb0HUL8C1xERERERERERERGRcqqoncIiIiIiIiIiIiIichxQUlhEREREREREREQkjCgpLCIiIiIiIiIiIhJGlBQWERERERERERERCSNKCouIiIiIiIiIiIiEkSoVOFcdM5sf7DpAiLb8nHPusgqMR0REREREREREREQKqcikcDSQVEx7cW0ArsIiEREREREREREREZGgKiopPLWC5hERERERERERERGRSlQhSWHn3B0VMY+IiIiIiIiIiIiIVC4dNCciIiIiIiIiIiISRpQUFhEREREREREREQkjSgqLiIiIiIiIiIiIhBElhUVERERERERERETCiJLCIiIiIiIiIiIiImFESWERERERERERERGRMKKksIiIiIiIiIiIiEgYUVJYREREREREREREJIwoKSwiIiIiIiIiIiISRpQUFhEREREREREREQkjSgqLiIiIiIiIiIiIhBElhUVERERERERERETCiJLCIiIiIiIiIiIiImFESWERERERERERERGRMKKksIiIiIiIiIiIiEgYUVJYREREREREREREJIwoKSwiIiIiIiIiIiISRpQUFhEREREREREREQkjSgqLiIiIiIiIiIiIhBElhUVERERERERERETCiJLCIiIiIiIiIiIiImFESWERkRJkZGQwZ84chg0bxpVXXkm9evUwM8yMdevWlWqOrKwsXnnlFTp16kRCQgIxMTE0a9aMK6+8knHjxpU6lg8++CCwtpmV6T62bt1KzZo1A2MXLlxYpvH5HThwgFdffZWOHTsSHx9PVFQUdevWpXPnzowfP56cnJyg4xITEwvEX9xj6tSpQedYu3Ytd955J4mJiVStWpV69erRtWtX/vnPf5b7fkRERERERETCSZWjHYCIyLFu3rx5XH/99eUev3btWq6++mp++eUXAKKioqhevTqbN29m8+bNzJ07l0GDBpU4z759+3jkkUfKHcfDDz/Mvn37yj3eb9euXXTt2pXvvvsucC0uLo7U1FSWLFnCkiVLmDx5Ml988QV169YtMDYhIYHs7OyQc+/fvz8QY5s2bYq0T5s2jTvvvDOQdK5duzbp6enMmzePefPm8dFHHzF16tQyJ8xFREREREREwol2CstxwcxqmtlLZvY/M8sxM2dmG3/jnEkVMY+Eh/r169OjRw+GDx/O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k3BBsly+a7cAm/FqB/8b2G9mGcAyoA4w2Nf9QJA13sFLGncCdpvZNjPbaGZflu2ORERERERERERElBQWKcmiEK+DXVscahLn3GagDfAaXnI4EkgDJgJtgRRf17QgY9cBlwOfAnuBhkAz4OTS3oSIiIiIiIiIiIifykfIMc859zbwdoi2EcCIEsb3B/oHub6QEg5vc84NBAYW0z4NmFbcHPn6pgCP+h4FmNn9vpc/hhi7mGKSziIiIiIiIiIiIqWlncIiR5mZ1QHu8r2dezRjERERERERERGRE5+SwiJHgJldaGbjzaydmcX4rlUxs0vxDqI7CdgIzD6KYYqIiIiIiIiISBhQ+QiRI6Mm8LDvgZntAWoA0b72VOAm51z20QlPRERERERERETChXYKixwZ3wBP4x1MtwWoDhwEfgDGAa2dc8uPXngiIiIiIiIiIhIutFNY5Ahwzu0Gnvc9REREREREREREjhrtFBYREREREREREREJI0oKi4iIiIiIiIiIiIQRJYVFREREREREREREwoiSwiIiIiIiIiIiIiJhRElhERERERERERERkTCipLCIiIiIiIiIiIhIGFFSWERERERERERERCSMKCksIiIiIiIiIiIiEkaUFBYREREREREREREJI0oKi4iIiIiIiIiIiIQRJYVFREREREREREREwoiSwiIiIiIiIiIiIiJhRElhERERERERERERkTCipLCIiIiIiIiIiIhIGFFSWERERERERERERCSMKCksIiIiIiIiIiIiEkaUFBYREREREREREREJI0oKi4iIiIiIiIiIiIQRJYVFREREREREREREwoiSwiIiIiIiIiIiIiJhRElhERERERERERERkTCipLCIiIiIiIiIiIhIGFFSWERERERERERERCSMKCksIiIiIiIiIiIiEkaUFBYREREREREREREJI0oKi4iIiIiIiIiIiIQRJYVFREREREREREREwoiSwiIiIiIiIiIiIiJhRElhERERERERERERkTCipLCIiIiIiIiIiIhIGFFSWERERERERERERCSMKCksIsecvLw8pkyZQteuXUlISCAqKoratWtz4YUX8vzzz5ORkRF0zIIFCxg7diw33ngjzZs3x8wwM954441i13POsXjxYoYMGUL79u2pU6cOUVFR1K9fn8svv5y3336bvLy8Crm3WbNmcc0119C4cWOqVq1Kw4YN6dixI08//TS7du0q0n/dunWMGjWKK664gkaNGhEdHU1cXBwXXHABzz//PGlpaSHXWrhwYeAzKO6xe/fuCrk3ERERERERETk+VDnaAYiI5JeZmcnVV1/N/PnzA9fi4uJIT09n+fLlLF++nIkTJzJ//nxOOeWUQJ/09HQuvfTScq05atQonn766cD7yMhIYmNj2bVrF1988QVffPEFkydP5qOPPqJWrVrlWiMjI4PevXszd+5cACIiIoiLi2PXrl3s2LGDpUuX0r17dxISEgJjvvrqKzp16hR4b2aBz2LFihWsWLGCN954g08++YTWrVuHXDsiIqLAvMHaRURERERERCR8KBMgxzQze9vMnJmNOAJrjfCt9XZlryWhjRw5kvnz52NmjB49mrS0NNLS0sjOzmbGjBnUrl2bTZs2cffddxcZW6NGDS6++GIGDhzI9OnTadiwYanWPHjwIHXq1GHgwIEsW7aM7Oxs0tLSSElJYfjw4URGRrJkyZKga5ZGbm4uPXv2ZO7cuTRt2pQZM2aQkZFBamoqWVlZfP/99/zf//0fdevWLRJXVFQUffv25eOPPyY9PZ09e/awb98+pk2bRkJCAlu3buWqq64iKysr5PpNmjQhOTk55KNOnTrlui8REREREREROT5pp7CIHFOmT58OwB133MGTTz4ZuB4dHU3fvn3Jzs7mjjvuYMGCBezZs4f4+Hjg8G7i/Ltehw4dWqo1r7/+eh5//PEiu4Dr1KnDiBEjMDNGjBjBzJkz2bRpE82aNSvTPb300kssWbKE+vXr89VXX3HyyScXuK9WrVrRqlWrIuNatGjBunXrCuyIBqhWrRo333wzjRo14pJLLmHTpk3885//5Pbbby9TXCIiIiIiIiISnrRTWESOKTt27ADgvPPOC9retm3bwOvMzMzAazMrdxmEc845p9iyEP379w+8XrVqVZnmPnjwIC+++CIAI0aMKJAQLknjxo2LJITzS0pKIjExsVxxiYiIiIiIiEj40k5hkTCVfTCXxCc/PtphALBxTM/A68TERH766SdWr14dtK8/+dmgQQMaN258ROLLX9YhNze3TGPnzp3Lzp07MTP69u1b0aFRt25dNm7cWOa4RERERERERCR8aaewiBxT7rnnHgCmTJnCmDFj2Lt3LwA5OTm8++67DBw4EDML7L49EhYtWhR4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+vWjfv36PPDAA1Uad9SoUQDsv//+7LnnnjWyVkmSJEmSlB7cKSxpu5s5cyZ777039evXp1GjRuyzzz4MGDCAuXPn1IugigAAIABJREFUbtK29I3jKgtW169fXzJ2RUaNGkWHDh3IyMigefPmHHHEEQwdOpT8/PytuJqK5eXl8cknnwBUeqO5G264gQULFnD99deX7CzenH/9618AHHDAASxfvpyBAwfSsWNHMjMzad26Nb/4xS948803t/oaJEmSJEnSj4+hsLQZIYSMEMKVIYS3QgjLQwjrQgiLQwgzQgjDQgidK+jTL4TwRgghL4SwNoTwRQjh8RDCJts6QwgnhhCKUo8TKljHoBBCDCGsCCFk1/yVbj+5ubn8+9//pkGDBqxZs4aZM2dy7733svfee/PMM89s1LZFixY0bNgQgFmzZpU7Xl5eHosXLwYgJyenwnk///xzcnJyyMrKYvny5bz11ltce+217LvvvsyYMaOGru5bN998M2vXrqVRo0acddZZ5bb54IMPuP/++/nJT37CNddcU+WxP/vss5Kff/azn3HXXXexcOFCGjRowOLFixk7dixHH300d91111ZfhyRJkiRJ+nExFJYqEUKoA7wG3At0BhoDq4AWwE+By4Ary/RpA7wLPAAcCTQB1gI7AxcB00MIvyjdJ8b4d2AYEIAnQgjNy4x5APCH1MsrY4zzauwit6O2bdvyhz/8gU8++YQ1a9awdOlSVq1axauvvspee+3F6tWrufDCC5kyZUpJn9q1a3PccccBSe3cgoKCTca9/fbbS35euXLlJucPPPBAHnroIebPn8+aNWvIy8sjLy+PESNG0LRpU+bPn0+3bt1YunRpjV3r3//+d+6//34A/vCHP9CyZctN2hQVFdG3b182bNjAgw8+WK26wMuXLwfgySefZP78+QwbNoz8/HyWLVvG3Llz6d69OzFGfvOb3zB58uSauShJkiRJkvSjYCgsVe484BjgG+B/gAYxxmZAJtAB6AeUbDENIdQFXgL2AyYAhwP1YoyNgbYk4XI94KkQwq5l5roGmJ1qN6LUmPWAp4G6wJgY48gav8rt5IQTTuD3v/89e++9d0kAmpmZycknn8xbb73Fbrvtxvr167nuuus26nf99ddTu3ZtcnJy6NatG++++y6FhYUsWrSIm2++mTvvvJO6desCUKvWpv+s9e/fn0suuYT27duXnG/atCl9+/Zl4sSJZGRkkJOTU2O7amfNmsV5551HUVERp5xyCldddVW57YYNG8Z7773HL3/5S37+859Xa46ioqKS52uvvZbLLruMevXqAZCdnc3o0aNp3749McaNQnNJkiRJkqQQY/yu1yB9b4UQhgOXAiNijJdWof2vgUeBN4DjYozrymkzAugLDIsx9itz7kDgbZIA+IIY41MhhHtJdiMvAvaJMVZ5O2sIYVoFp/bouMsuDf73/+6u6lBbbJ+dmlS57V//+leGDh1KCIGxY8fSpMm3fcePH8/dd99dbl3hTp06sccee/Dyyy/TvHlzXnjhhWqt8bbbbuO1116jY8eOPP7449XqW1ZOTg79+/cnNzeXvffemzvuuIP69etv0i43N5devXoRY+TJJ59khx122Oj8Oeecw+LFi7nwwgvp1avXJv1PPfXUkl3RL7744kbvVbFRo0bxxz/+kczMTF599VVq1669VdemLVP8OTVq1Og7XomUHvzOSduX3zlp+/I7J21f1f3O9enTh88++2x6jPGgbbmumuBOYalyxXcga1PF9hemnu8rLxBOGZV63mRraIxxOnBj6uWDIYTeQP/U697VCYR/iPbcMym3HGPcpDbwySefzKOPPkqPHj3YZZdd2HHHHdlzzz3p06cPDz74IIWFhQC0a9dui+etrB5xVXz99ddcffXV5ObmsttuuzFkyJByA2GARx99lIKCAs455xwaNmzI6tWrN3oUW7du3SbHIKm1DNC4ceNyA2GA9u3bA7B27dptdjM9SZIkSZL0w+NOYakSIYRjgEmply8DI4HJ5YWzqfrDBUAGsBRYX8GwtYEdgNUxxgbljFMLmExSj7jYQzHGy7bsKjYVQpjWPnuXA2udfX9NDVmheUO6V7ntrFmz2HvvvQF49913Ofjgg6vc96c//Skff/wx11xzTbXLJQwfPpzLL7+cBg0alFuzuCoWLVrEMcccw5w5c9hjjz2YMmVKuXWEi3Xp0qXatX5L/3t9zjnn8Nxzz9G8efMKayGPGTOGM888E4AlS5ZUuh5tO5MmTQKSz1zStud3Ttq+/M5J25ffOWn7qu537qCDDmL69OnuFJZ+6GKMk4HfkwS8PYAXgNwQwr9DCHeGEDqVat6cJBCG5EZ0rSp4FNcJKHcLaYyxCPh1qUPzgIE1cT3fd++8807J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1KhRpJSWLxs8eDALFizgySef5Mknn+SSSy7hmmuuYc8992x1e9dffz033HBDq/mOOeYYfv7zny+f79evH2uttRYzZ87kpptu4qabbuLTn/40V1xxBf369WvzcX3uc5/jiSeeaHO5yZMns/vuuy+fjwiGDBnCvHnzmDJlClOmTOGiiy7i1ltvZZtttmlom+eddx6PPvpom+siSZIkSZLUFvYUltSQ5uZmAPbff3+uvvpqZs+ezdy5c1m4cCG33HILm2++OW+++SZjx45l5syZdbc1f/58jjvuOAYPHsxWW21VN+/SpUsZMWIE3/3ud3n88cdZvHgx8+bN45VXXuErX/kKAH/4wx/49re/3a7j6tevH9tvvz1HHXUUF198Mfvuu29D5ZYuXUq/fv049NBD+eMf/8i8efN48803mT9/PpdffjnDhw9n+vTpHHDAATQ1NbW6venTp3Pqqaey2WabscEGG7TrWCRJkiRJkhphT2FJDVlvvfV4/PHH2W677VZY3r9/f/bbbz9uueUWdthhB+bNm8fFF1/MaaedVnNbp556Kv/6178455xzuPbaa3nuuedq5v3yl7/MxRdfzJprrrnC8hEjRnD++eezYMECJk2axAUXXMDpp5/OgAED2nRcDz/8MH369Fk+/9BDDzVUbsstt+S5557jne985wrLBwwYwOGHH86IESPYc889eemll7jqqqsYP3583e0de+yxywPKxx13XJuOQZIkSZIkqS3sKSypIUOGDFkpIFxuq622YtdddwWoOwTCY489xnnnncf222+/vKdvPe9///tXCgiXK41FvHDhQp599tlWt1epPCDcFhtvvPFKAeFyY8aMYdSoUUD99wPgxhtv5Prrr+eAAw7goIMOald9JEmSJEmSGmVPYamgFi1tZtRJf2w137Qz9m94m8OGDQNahpqotGzZMr70pS+xbNkyLrzwwnYHZKvts95+e8qwYcOYNm1a3XotWLCAr371qwwYMIDzzjuvG2snSZIkSZKKyp7CkjrF22+/zeTJkwFqPljt/PPP55FHHuHII4/kAx/4QKfs9/777weysYHf/e53d8o2O8Ps2bN56qmngNrvB7QMpXHKKacs71ksSZIkSZLUlQwKq5AiYlpEpIgYExEbR8SFEfF/EbE4Iv6W5xkZEV+PiNsi4oWIWBgR8yLi8Yg4PSLWbWUfERGH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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 501, "width": 706 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plotting the feature importance just out of curiosity\n", "\n", "# change default style figure and font size\n", "plt.rcParams['figure.figsize'] = 10, 8\n", "plt.rcParams['font.size'] = 12\n", "\n", "# like other tree-based models, it can also output the\n", "# feature importance plot\n", "plot_importance(lgb, importance_type='gain')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For tuning LightGBM's hyperparameter, the documentation page has some pretty good suggestions. [LightGBM Documentation: Parameters Tuning](http://lightgbm.readthedocs.io/en/latest/Parameters-Tuning.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Reference" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- [LightGBM Documentation: Parameters Tuning](http://lightgbm.readthedocs.io/en/latest/Parameters-Tuning.html)\n", "- [Blog: xgboost’s New Fast Histogram (tree_method = hist)](https://medium.com/data-design/xgboosts-new-fast-histogram-tree-method-hist-a3c08f36234c)\n", "- [Blog: Which algorithm takes the crown: Light GBM vs XGBOOST?](https://www.analyticsvidhya.com/blog/2017/06/which-algorithm-takes-the-crown-light-gbm-vs-xgboost/)\n", "- [Blog: Are categorical variables getting lost in your random forests?](http://roamanalytics.com/2016/10/28/are-categorical-variables-getting-lost-in-your-random-forests/)\n", "- [Blog: Lessons Learned From Benchmarking Fast Machine Learning Algorithms](https://blogs.technet.microsoft.com/machinelearning/2017/07/25/lessons-learned-benchmarking-fast-machine-learning-algorithms/)\n", "- [Stackoverflow: Why tree-based model do not need one-hot encoding for nominal data?\n", "](https://stackoverflow.com/questions/45139834/why-tree-based-model-do-not-need-one-hot-encoding-for-nominal-data)" ] } ], "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.6.4" }, "toc": { "nav_menu": { "height": "12px", "width": "252px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }