{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cc6de378-9634-4315-9208-5513d3c7b391",
   "metadata": {},
   "source": [
    "# Cohort Analysis and RFM Segmentation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc427da0-f34e-46b3-a87a-5cbef8d3021e",
   "metadata": {},
   "source": [
    "![](http://d35fo82fjcw0y8.cloudfront.net/2016/03/03210554/table1a2.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "587fffaf-6eee-46a5-958d-58c460b4bf55",
   "metadata": {},
   "source": [
    "- Cohort : Group of subject sharing a defining characteristic\n",
    "- Can be viewed acrossed time, version etc...\n",
    "- Cohorts are used in medicine, psychology, econometrics, ecology and many other areas to perform a cross-section (compare difference across subjects) at intervals through time.\n",
    "\n",
    "- Types of cohort\n",
    "  - Time Cohorts are customers who signed up for a product or service during a particular time frame. Analyzing these cohorts shows the customers’ behavior depending on the time they started using the company’s products or services. The time may be monthly or quarterly even daily.\n",
    "  - Behaovior cohorts are customers who purchased a product or subscribed to a service in the past. It groups customers by the type of product or service they signed up. Customers who signed up for basic level services might have different needs than those who signed up for advanced services. Understaning the needs of the various cohorts can help a company design custom-made services or products for particular segments.\n",
    "  - Size cohorts refer to the various sizes of customers who purchase company’s products or services. This categorization can be based on the amount of spending in some periodic time after acquisition or the product type that the customer spent most of their order amount in some period of time."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "051a9c62-5da6-45d7-b113-e8daa21bcc33",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4c38056f-5eef-4028-b7b8-7c99feb3c188",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import scipy as sp\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt \n",
    "import sklearn\n",
    "import numpy as np\n",
    "import pickle\n",
    "import joblib\n",
    "import itertools\n",
    "import datetime as dt\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from aiking.data.external import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "10717661-f64d-47d6-870e-b65212fab8b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "sns.set()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97413fba-7a4d-459e-992a-a2dd98290f66",
   "metadata": {},
   "source": [
    "## Read and clean the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1bf442cc-8bdc-41b7-89f8-9c5c4b9432d1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# path = untar_data(\"kaggle_datasets::jihyeseo/online-retail-data-set-from-uci-ml-repo\"); path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e74e8e15-3521-470b-bf2d-271cc628297b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# !ls /Landmark2/pdo/aiking/archive/ # -d /Landmark2/pdo/aiking/data/online-retail-data-set-from-uci-ml-repo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "504fcc8c-3e91-4381-951c-b4b40a9de014",
   "metadata": {},
   "outputs": [],
   "source": [
    "# !ls /Landmark2/pdo/aiking/data/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ddf0631e-0f12-4cf8-90a3-632eafdf61d3",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>536365</td>\n",
       "      <td>85123A</td>\n",
       "      <td>WHITE HANGING HEART T-LIGHT HOLDER</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.55</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>536365</td>\n",
       "      <td>71053</td>\n",
       "      <td>WHITE METAL LANTERN</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>536365</td>\n",
       "      <td>84406B</td>\n",
       "      <td>CREAM CUPID HEARTS COAT HANGER</td>\n",
       "      <td>8</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.75</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029G</td>\n",
       "      <td>KNITTED UNION FLAG HOT WATER BOTTLE</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029E</td>\n",
       "      <td>RED WOOLLY HOTTIE WHITE HEART.</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    536365    85123A   WHITE HANGING HEART T-LIGHT HOLDER         6   \n",
       "1    536365     71053                  WHITE METAL LANTERN         6   \n",
       "2    536365    84406B       CREAM CUPID HEARTS COAT HANGER         8   \n",
       "3    536365    84029G  KNITTED UNION FLAG HOT WATER BOTTLE         6   \n",
       "4    536365    84029E       RED WOOLLY HOTTIE WHITE HEART.         6   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID         Country  \n",
       "0 2010-12-01 08:26:00       2.55     17850.0  United Kingdom  \n",
       "1 2010-12-01 08:26:00       3.39     17850.0  United Kingdom  \n",
       "2 2010-12-01 08:26:00       2.75     17850.0  United Kingdom  \n",
       "3 2010-12-01 08:26:00       3.39     17850.0  United Kingdom  \n",
       "4 2010-12-01 08:26:00       3.39     17850.0  United Kingdom  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_excel('Online Retail.xlsx'); df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e19cb033-0129-4eec-a932-5cec7026aa0c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['InvoiceNo', 'StockCode', 'Description', 'Quantity', 'InvoiceDate',\n",
       "       'UnitPrice', 'CustomerID', 'Country'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3279d26e-a549-420c-b474-f27476d42a96",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 541909 entries, 0 to 541908\n",
      "Data columns (total 8 columns):\n",
      " #   Column       Non-Null Count   Dtype         \n",
      "---  ------       --------------   -----         \n",
      " 0   InvoiceNo    541909 non-null  object        \n",
      " 1   StockCode    541909 non-null  object        \n",
      " 2   Description  540455 non-null  object        \n",
      " 3   Quantity     541909 non-null  int64         \n",
      " 4   InvoiceDate  541909 non-null  datetime64[ns]\n",
      " 5   UnitPrice    541909 non-null  float64       \n",
      " 6   CustomerID   406829 non-null  float64       \n",
      " 7   Country      541909 non-null  object        \n",
      "dtypes: datetime64[ns](1), float64(2), int64(1), object(4)\n",
      "memory usage: 33.1+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3b610632-1ba0-4c1c-b1ec-1c51700064da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "InvoiceNo           0\n",
       "StockCode           0\n",
       "Description      1454\n",
       "Quantity            0\n",
       "InvoiceDate         0\n",
       "UnitPrice           0\n",
       "CustomerID     135080\n",
       "Country             0\n",
       "dtype: int64"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "74250b94-a248-46b7-b70f-d88bcdcd4725",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df.dropna(subset=['CustomerID']); df.isnull().sum().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "be7bd2ed-3e7d-4b32-8f39-87f400049805",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5225"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.duplicated().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "731092a1-b3d0-4f5f-b046-c437bdc38f3e",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop_duplicates()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9d50cfa4-6d36-487f-8aa3-cef455d22a08",
   "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>Quantity</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>401604.000000</td>\n",
       "      <td>401604.000000</td>\n",
       "      <td>401604.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>12.183273</td>\n",
       "      <td>3.474064</td>\n",
       "      <td>15281.160818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>250.283037</td>\n",
       "      <td>69.764035</td>\n",
       "      <td>1714.006089</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-80995.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>12346.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.250000</td>\n",
       "      <td>13939.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.950000</td>\n",
       "      <td>15145.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>12.000000</td>\n",
       "      <td>3.750000</td>\n",
       "      <td>16784.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>80995.000000</td>\n",
       "      <td>38970.000000</td>\n",
       "      <td>18287.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Quantity      UnitPrice     CustomerID\n",
       "count  401604.000000  401604.000000  401604.000000\n",
       "mean       12.183273       3.474064   15281.160818\n",
       "std       250.283037      69.764035    1714.006089\n",
       "min    -80995.000000       0.000000   12346.000000\n",
       "25%         2.000000       1.250000   13939.000000\n",
       "50%         5.000000       1.950000   15145.000000\n",
       "75%        12.000000       3.750000   16784.000000\n",
       "max     80995.000000   38970.000000   18287.000000"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7b05ecbc-b590-4d5f-a6c4-ea08dd6f2f68",
   "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>Quantity</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>392692.000000</td>\n",
       "      <td>392692.000000</td>\n",
       "      <td>392692.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>13.119702</td>\n",
       "      <td>3.125914</td>\n",
       "      <td>15287.843865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>180.492832</td>\n",
       "      <td>22.241836</td>\n",
       "      <td>1713.539549</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.001000</td>\n",
       "      <td>12346.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.250000</td>\n",
       "      <td>13955.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.950000</td>\n",
       "      <td>15150.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>12.000000</td>\n",
       "      <td>3.750000</td>\n",
       "      <td>16791.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>80995.000000</td>\n",
       "      <td>8142.750000</td>\n",
       "      <td>18287.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Quantity      UnitPrice     CustomerID\n",
       "count  392692.000000  392692.000000  392692.000000\n",
       "mean       13.119702       3.125914   15287.843865\n",
       "std       180.492832      22.241836    1713.539549\n",
       "min         1.000000       0.001000   12346.000000\n",
       "25%         2.000000       1.250000   13955.000000\n",
       "50%         6.000000       1.950000   15150.000000\n",
       "75%        12.000000       3.750000   16791.000000\n",
       "max     80995.000000    8142.750000   18287.000000"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=df[(df['Quantity']>0) & df['UnitPrice']>0]; df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f037510a-1492-4804-a8a0-f9f17870146b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(392692, 8)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "482f9bfb-9848-4159-9afa-725ff4b80bfc",
   "metadata": {},
   "source": [
    "## Cohort Analysis\n",
    "\n",
    "We need to create labels\n",
    "\n",
    "Invoice period - Year & month of a single transaction\n",
    "\n",
    "Cohort group - Year & month of customer first purchase\n",
    "\n",
    "Cohort period/ Cohort index - Customer stage in its lifetime(int). It is number of months passed since first purchase"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "568ac6d0-2c76-4d5c-8455-dc63994364de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "InvoiceNo      18532\n",
       "StockCode       3665\n",
       "Description     3877\n",
       "Quantity         301\n",
       "InvoiceDate    17282\n",
       "UnitPrice        440\n",
       "CustomerID      4338\n",
       "Country           37\n",
       "dtype: int64"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "80e40002-84dd-49a5-b571-702e60aad74a",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>537626</td>\n",
       "      <td>85116</td>\n",
       "      <td>BLACK CANDELABRA T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>2.10</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>537626</td>\n",
       "      <td>22375</td>\n",
       "      <td>AIRLINE BAG VINTAGE JET SET BROWN</td>\n",
       "      <td>4</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>4.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>537626</td>\n",
       "      <td>71477</td>\n",
       "      <td>COLOUR GLASS. STAR T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>3.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>537626</td>\n",
       "      <td>22492</td>\n",
       "      <td>MINI PAINT SET VINTAGE</td>\n",
       "      <td>36</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>0.65</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>537626</td>\n",
       "      <td>22771</td>\n",
       "      <td>CLEAR DRAWER KNOB ACRYLIC EDWARDIAN</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>1.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>968</th>\n",
       "      <td>581180</td>\n",
       "      <td>20719</td>\n",
       "      <td>WOODLAND CHARLOTTE BAG</td>\n",
       "      <td>10</td>\n",
       "      <td>2011-12-07 15:52:00</td>\n",
       "      <td>0.85</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>969</th>\n",
       "      <td>581180</td>\n",
       "      <td>21265</td>\n",
       "      <td>PINK GOOSE FEATHER TREE 60CM</td>\n",
       "      <td>12</td>\n",
       "      <td>2011-12-07 15:52:00</td>\n",
       "      <td>1.95</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>970</th>\n",
       "      <td>581180</td>\n",
       "      <td>23271</td>\n",
       "      <td>CHRISTMAS TABLE SILVER CANDLE SPIKE</td>\n",
       "      <td>16</td>\n",
       "      <td>2011-12-07 15:52:00</td>\n",
       "      <td>0.83</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>971</th>\n",
       "      <td>581180</td>\n",
       "      <td>23506</td>\n",
       "      <td>MINI PLAYING CARDS SPACEBOY</td>\n",
       "      <td>20</td>\n",
       "      <td>2011-12-07 15:52:00</td>\n",
       "      <td>0.42</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>972</th>\n",
       "      <td>581180</td>\n",
       "      <td>23508</td>\n",
       "      <td>MINI PLAYING CARDS DOLLY GIRL</td>\n",
       "      <td>20</td>\n",
       "      <td>2011-12-07 15:52:00</td>\n",
       "      <td>0.42</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>973 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0      537626     85116      BLACK CANDELABRA T-LIGHT HOLDER        12   \n",
       "1      537626     22375    AIRLINE BAG VINTAGE JET SET BROWN         4   \n",
       "2      537626     71477    COLOUR GLASS. STAR T-LIGHT HOLDER        12   \n",
       "3      537626     22492              MINI PAINT SET VINTAGE         36   \n",
       "4      537626     22771  CLEAR DRAWER KNOB ACRYLIC EDWARDIAN        12   \n",
       "..        ...       ...                                  ...       ...   \n",
       "968    581180     20719               WOODLAND CHARLOTTE BAG        10   \n",
       "969    581180     21265         PINK GOOSE FEATHER TREE 60CM        12   \n",
       "970    581180     23271  CHRISTMAS TABLE SILVER CANDLE SPIKE        16   \n",
       "971    581180     23506         MINI PLAYING CARDS SPACEBOY         20   \n",
       "972    581180     23508       MINI PLAYING CARDS DOLLY GIRL         20   \n",
       "\n",
       "            InvoiceDate  UnitPrice  CustomerID  Country  \n",
       "0   2010-12-07 14:57:00       2.10     12347.0  Iceland  \n",
       "1   2010-12-07 14:57:00       4.25     12347.0  Iceland  \n",
       "2   2010-12-07 14:57:00       3.25     12347.0  Iceland  \n",
       "3   2010-12-07 14:57:00       0.65     12347.0  Iceland  \n",
       "4   2010-12-07 14:57:00       1.25     12347.0  Iceland  \n",
       "..                  ...        ...         ...      ...  \n",
       "968 2011-12-07 15:52:00       0.85     12347.0  Iceland  \n",
       "969 2011-12-07 15:52:00       1.95     12347.0  Iceland  \n",
       "970 2011-12-07 15:52:00       0.83     12347.0  Iceland  \n",
       "971 2011-12-07 15:52:00       0.42     12347.0  Iceland  \n",
       "972 2011-12-07 15:52:00       0.42     12347.0  Iceland  \n",
       "\n",
       "[973 rows x 8 columns]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample = df[df['CustomerID'].isin([12347.0, 18283.0, 18287.0])].reset_index(drop=True); sample"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "638840e5-5aa2-4f19-93a3-c138d9400d8c",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "      <th>InvoiceMonth</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>537626</td>\n",
       "      <td>85116</td>\n",
       "      <td>BLACK CANDELABRA T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>2.10</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>537626</td>\n",
       "      <td>22375</td>\n",
       "      <td>AIRLINE BAG VINTAGE JET SET BROWN</td>\n",
       "      <td>4</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>4.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>537626</td>\n",
       "      <td>71477</td>\n",
       "      <td>COLOUR GLASS. STAR T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>3.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>537626</td>\n",
       "      <td>22492</td>\n",
       "      <td>MINI PAINT SET VINTAGE</td>\n",
       "      <td>36</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>0.65</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>537626</td>\n",
       "      <td>22771</td>\n",
       "      <td>CLEAR DRAWER KNOB ACRYLIC EDWARDIAN</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>1.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    537626     85116      BLACK CANDELABRA T-LIGHT HOLDER        12   \n",
       "1    537626     22375    AIRLINE BAG VINTAGE JET SET BROWN         4   \n",
       "2    537626     71477    COLOUR GLASS. STAR T-LIGHT HOLDER        12   \n",
       "3    537626     22492              MINI PAINT SET VINTAGE         36   \n",
       "4    537626     22771  CLEAR DRAWER KNOB ACRYLIC EDWARDIAN        12   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID  Country InvoiceMonth  \n",
       "0 2010-12-07 14:57:00       2.10     12347.0  Iceland   2010-12-01  \n",
       "1 2010-12-07 14:57:00       4.25     12347.0  Iceland   2010-12-01  \n",
       "2 2010-12-07 14:57:00       3.25     12347.0  Iceland   2010-12-01  \n",
       "3 2010-12-07 14:57:00       0.65     12347.0  Iceland   2010-12-01  \n",
       "4 2010-12-07 14:57:00       1.25     12347.0  Iceland   2010-12-01  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample['InvoiceMonth'] = sample['InvoiceDate'].apply(lambda x: dt.datetime(x.year, x.month, 1)); sample.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "77cbbfec-55de-45a9-b37a-c872fa09959c",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "      <th>InvoiceMonth</th>\n",
       "      <th>CohortMonth</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>537626</td>\n",
       "      <td>85116</td>\n",
       "      <td>BLACK CANDELABRA T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>2.10</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>537626</td>\n",
       "      <td>22375</td>\n",
       "      <td>AIRLINE BAG VINTAGE JET SET BROWN</td>\n",
       "      <td>4</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>4.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>537626</td>\n",
       "      <td>71477</td>\n",
       "      <td>COLOUR GLASS. STAR T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>3.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>537626</td>\n",
       "      <td>22492</td>\n",
       "      <td>MINI PAINT SET VINTAGE</td>\n",
       "      <td>36</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>0.65</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>537626</td>\n",
       "      <td>22771</td>\n",
       "      <td>CLEAR DRAWER KNOB ACRYLIC EDWARDIAN</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>1.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    537626     85116      BLACK CANDELABRA T-LIGHT HOLDER        12   \n",
       "1    537626     22375    AIRLINE BAG VINTAGE JET SET BROWN         4   \n",
       "2    537626     71477    COLOUR GLASS. STAR T-LIGHT HOLDER        12   \n",
       "3    537626     22492              MINI PAINT SET VINTAGE         36   \n",
       "4    537626     22771  CLEAR DRAWER KNOB ACRYLIC EDWARDIAN        12   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID  Country InvoiceMonth CohortMonth  \n",
       "0 2010-12-07 14:57:00       2.10     12347.0  Iceland   2010-12-01  2010-12-01  \n",
       "1 2010-12-07 14:57:00       4.25     12347.0  Iceland   2010-12-01  2010-12-01  \n",
       "2 2010-12-07 14:57:00       3.25     12347.0  Iceland   2010-12-01  2010-12-01  \n",
       "3 2010-12-07 14:57:00       0.65     12347.0  Iceland   2010-12-01  2010-12-01  \n",
       "4 2010-12-07 14:57:00       1.25     12347.0  Iceland   2010-12-01  2010-12-01  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# sample['CohortMonth'] = \n",
    "sample['CohortMonth'] = sample.groupby('CustomerID')['InvoiceMonth'].transform('min'); sample.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c8247277-b411-41a9-bf69-8dade164811a",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "      <th>InvoiceMonth</th>\n",
       "      <th>CohortMonth</th>\n",
       "      <th>CohortIndex</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>537626</td>\n",
       "      <td>85116</td>\n",
       "      <td>BLACK CANDELABRA T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>2.10</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>537626</td>\n",
       "      <td>22375</td>\n",
       "      <td>AIRLINE BAG VINTAGE JET SET BROWN</td>\n",
       "      <td>4</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>4.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>537626</td>\n",
       "      <td>71477</td>\n",
       "      <td>COLOUR GLASS. STAR T-LIGHT HOLDER</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>3.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>537626</td>\n",
       "      <td>22492</td>\n",
       "      <td>MINI PAINT SET VINTAGE</td>\n",
       "      <td>36</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>0.65</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>537626</td>\n",
       "      <td>22771</td>\n",
       "      <td>CLEAR DRAWER KNOB ACRYLIC EDWARDIAN</td>\n",
       "      <td>12</td>\n",
       "      <td>2010-12-07 14:57:00</td>\n",
       "      <td>1.25</td>\n",
       "      <td>12347.0</td>\n",
       "      <td>Iceland</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    537626     85116      BLACK CANDELABRA T-LIGHT HOLDER        12   \n",
       "1    537626     22375    AIRLINE BAG VINTAGE JET SET BROWN         4   \n",
       "2    537626     71477    COLOUR GLASS. STAR T-LIGHT HOLDER        12   \n",
       "3    537626     22492              MINI PAINT SET VINTAGE         36   \n",
       "4    537626     22771  CLEAR DRAWER KNOB ACRYLIC EDWARDIAN        12   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID  Country InvoiceMonth  \\\n",
       "0 2010-12-07 14:57:00       2.10     12347.0  Iceland   2010-12-01   \n",
       "1 2010-12-07 14:57:00       4.25     12347.0  Iceland   2010-12-01   \n",
       "2 2010-12-07 14:57:00       3.25     12347.0  Iceland   2010-12-01   \n",
       "3 2010-12-07 14:57:00       0.65     12347.0  Iceland   2010-12-01   \n",
       "4 2010-12-07 14:57:00       1.25     12347.0  Iceland   2010-12-01   \n",
       "\n",
       "  CohortMonth  CohortIndex  \n",
       "0  2010-12-01            1  \n",
       "1  2010-12-01            1  \n",
       "2  2010-12-01            1  \n",
       "3  2010-12-01            1  \n",
       "4  2010-12-01            1  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample['CohortIndex'] = (sample['InvoiceMonth'].dt.year-sample['CohortMonth'].dt.year)*12\\\n",
    "                       + sample['InvoiceMonth'].dt.month-sample['CohortMonth'].dt.month\\\n",
    "                       + 1; sample.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "702ddbba-cc45-45ea-a6bf-ac3058be276e",
   "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>CohortMonth</th>\n",
       "      <th>CohortIndex</th>\n",
       "      <th>CustomerID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2011-05-01</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2011-05-01</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CohortMonth  CohortIndex  CustomerID\n",
       "0   2010-12-01            1           1\n",
       "1   2010-12-01            2           1\n",
       "2   2010-12-01            5           1\n",
       "3   2010-12-01            7           1\n",
       "4   2010-12-01            9           1\n",
       "5   2010-12-01           11           1\n",
       "6   2010-12-01           13           1\n",
       "7   2011-01-01            1           1\n",
       "8   2011-01-01            2           1\n",
       "9   2011-01-01            4           1\n",
       "10  2011-01-01            5           1\n",
       "11  2011-01-01            6           1\n",
       "12  2011-01-01            7           1\n",
       "13  2011-01-01            9           1\n",
       "14  2011-01-01           10           1\n",
       "15  2011-01-01           11           1\n",
       "16  2011-01-01           12           1\n",
       "17  2011-05-01            1           1\n",
       "18  2011-05-01            6           1"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample_data = sample.groupby(['CohortMonth', 'CohortIndex'])['CustomerID'].apply(pd.Series.nunique).reset_index();\n",
    "sample_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c312bd18-369c-4f11-b83e-e47fa8a0c0fa",
   "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>CohortIndex</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortMonth</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",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-12-01</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-05-01</th>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "CohortIndex   1    2    4    5    6    7    9    10   11   12   13\n",
       "CohortMonth                                                       \n",
       "2010-12-01   1.0  1.0  NaN  1.0  NaN  1.0  1.0  NaN  1.0  NaN  1.0\n",
       "2011-01-01   1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  1.0  NaN\n",
       "2011-05-01   1.0  NaN  NaN  NaN  1.0  NaN  NaN  NaN  NaN  NaN  NaN"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample_data.pivot(index='CohortMonth', \n",
    "                  columns='CohortIndex',\n",
    "                  values='CustomerID')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "298deff2-1eb6-41f9-a45e-a3b6b6dcc26e",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "      <th>InvoiceMonth</th>\n",
       "      <th>CohortMonth</th>\n",
       "      <th>CohortIndex</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>536365</td>\n",
       "      <td>85123A</td>\n",
       "      <td>WHITE HANGING HEART T-LIGHT HOLDER</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.55</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>536365</td>\n",
       "      <td>71053</td>\n",
       "      <td>WHITE METAL LANTERN</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>536365</td>\n",
       "      <td>84406B</td>\n",
       "      <td>CREAM CUPID HEARTS COAT HANGER</td>\n",
       "      <td>8</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.75</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029G</td>\n",
       "      <td>KNITTED UNION FLAG HOT WATER BOTTLE</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029E</td>\n",
       "      <td>RED WOOLLY HOTTIE WHITE HEART.</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    536365    85123A   WHITE HANGING HEART T-LIGHT HOLDER         6   \n",
       "1    536365     71053                  WHITE METAL LANTERN         6   \n",
       "2    536365    84406B       CREAM CUPID HEARTS COAT HANGER         8   \n",
       "3    536365    84029G  KNITTED UNION FLAG HOT WATER BOTTLE         6   \n",
       "4    536365    84029E       RED WOOLLY HOTTIE WHITE HEART.         6   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID         Country InvoiceMonth  \\\n",
       "0 2010-12-01 08:26:00       2.55     17850.0  United Kingdom   2010-12-01   \n",
       "1 2010-12-01 08:26:00       3.39     17850.0  United Kingdom   2010-12-01   \n",
       "2 2010-12-01 08:26:00       2.75     17850.0  United Kingdom   2010-12-01   \n",
       "3 2010-12-01 08:26:00       3.39     17850.0  United Kingdom   2010-12-01   \n",
       "4 2010-12-01 08:26:00       3.39     17850.0  United Kingdom   2010-12-01   \n",
       "\n",
       "  CohortMonth  CohortIndex  \n",
       "0  2010-12-01            1  \n",
       "1  2010-12-01            1  \n",
       "2  2010-12-01            1  \n",
       "3  2010-12-01            1  \n",
       "4  2010-12-01            1  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['InvoiceMonth'] = df['InvoiceDate'].apply(lambda x: dt.datetime(x.year, x.month, 1))\n",
    "# df['InvoiceMonth'].unique()\n",
    "df['CohortMonth'] = df.groupby('CustomerID')['InvoiceMonth'].transform('min')\n",
    "# df['CohortMonth'].unique()\n",
    "df['CohortIndex'] = (df['InvoiceMonth'].dt.year-df['CohortMonth'].dt.year)*12\\\n",
    "                       + df['InvoiceMonth'].dt.month-df['CohortMonth'].dt.month\\\n",
    "                       + 1; df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "694759c3-b9f6-4d87-8a08-edeb6a32067f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13])"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.CohortIndex.unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9e66dc6e-1461-4c02-bcb1-5605f5fb2dfa",
   "metadata": {},
   "source": [
    "### Retention Rate Table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c036c300-a097-4e5a-a01b-02b180eee87c",
   "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=\"13\" halign=\"left\">CustomerID</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortIndex</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortMonth</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",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-12-01</th>\n",
       "      <td>25670.0</td>\n",
       "      <td>10111.0</td>\n",
       "      <td>8689.0</td>\n",
       "      <td>11121.0</td>\n",
       "      <td>9628.0</td>\n",
       "      <td>11946.0</td>\n",
       "      <td>11069.0</td>\n",
       "      <td>11312.0</td>\n",
       "      <td>11316.0</td>\n",
       "      <td>14098.0</td>\n",
       "      <td>13399.0</td>\n",
       "      <td>21677.0</td>\n",
       "      <td>7173.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01</th>\n",
       "      <td>10877.0</td>\n",
       "      <td>2191.0</td>\n",
       "      <td>3012.0</td>\n",
       "      <td>2290.0</td>\n",
       "      <td>3603.0</td>\n",
       "      <td>3214.0</td>\n",
       "      <td>2776.0</td>\n",
       "      <td>2844.0</td>\n",
       "      <td>3768.0</td>\n",
       "      <td>4987.0</td>\n",
       "      <td>6248.0</td>\n",
       "      <td>1334.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-01</th>\n",
       "      <td>8826.0</td>\n",
       "      <td>1388.0</td>\n",
       "      <td>1909.0</td>\n",
       "      <td>2487.0</td>\n",
       "      <td>2266.0</td>\n",
       "      <td>2012.0</td>\n",
       "      <td>2241.0</td>\n",
       "      <td>2720.0</td>\n",
       "      <td>2940.0</td>\n",
       "      <td>2916.0</td>\n",
       "      <td>451.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-03-01</th>\n",
       "      <td>11349.0</td>\n",
       "      <td>1421.0</td>\n",
       "      <td>2598.0</td>\n",
       "      <td>2372.0</td>\n",
       "      <td>2435.0</td>\n",
       "      <td>2103.0</td>\n",
       "      <td>2942.0</td>\n",
       "      <td>3528.0</td>\n",
       "      <td>4214.0</td>\n",
       "      <td>967.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-04-01</th>\n",
       "      <td>7185.0</td>\n",
       "      <td>1398.0</td>\n",
       "      <td>1284.0</td>\n",
       "      <td>1296.0</td>\n",
       "      <td>1343.0</td>\n",
       "      <td>2007.0</td>\n",
       "      <td>1869.0</td>\n",
       "      <td>2130.0</td>\n",
       "      <td>513.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-05-01</th>\n",
       "      <td>6041.0</td>\n",
       "      <td>1075.0</td>\n",
       "      <td>906.0</td>\n",
       "      <td>917.0</td>\n",
       "      <td>1493.0</td>\n",
       "      <td>2329.0</td>\n",
       "      <td>1949.0</td>\n",
       "      <td>764.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-06-01</th>\n",
       "      <td>5646.0</td>\n",
       "      <td>905.0</td>\n",
       "      <td>707.0</td>\n",
       "      <td>1511.0</td>\n",
       "      <td>1738.0</td>\n",
       "      <td>2545.0</td>\n",
       "      <td>616.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-07-01</th>\n",
       "      <td>4938.0</td>\n",
       "      <td>501.0</td>\n",
       "      <td>1314.0</td>\n",
       "      <td>1336.0</td>\n",
       "      <td>1760.0</td>\n",
       "      <td>517.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-08-01</th>\n",
       "      <td>4818.0</td>\n",
       "      <td>1591.0</td>\n",
       "      <td>2831.0</td>\n",
       "      <td>2801.0</td>\n",
       "      <td>899.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-09-01</th>\n",
       "      <td>8225.0</td>\n",
       "      <td>2336.0</td>\n",
       "      <td>2608.0</td>\n",
       "      <td>862.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-10-01</th>\n",
       "      <td>11500.0</td>\n",
       "      <td>3499.0</td>\n",
       "      <td>869.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-11-01</th>\n",
       "      <td>10821.0</td>\n",
       "      <td>1100.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-12-01</th>\n",
       "      <td>961.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            CustomerID                                                      \\\n",
       "CohortIndex         1        2       3        4       5        6        7    \n",
       "CohortMonth                                                                  \n",
       "2010-12-01     25670.0  10111.0  8689.0  11121.0  9628.0  11946.0  11069.0   \n",
       "2011-01-01     10877.0   2191.0  3012.0   2290.0  3603.0   3214.0   2776.0   \n",
       "2011-02-01      8826.0   1388.0  1909.0   2487.0  2266.0   2012.0   2241.0   \n",
       "2011-03-01     11349.0   1421.0  2598.0   2372.0  2435.0   2103.0   2942.0   \n",
       "2011-04-01      7185.0   1398.0  1284.0   1296.0  1343.0   2007.0   1869.0   \n",
       "2011-05-01      6041.0   1075.0   906.0    917.0  1493.0   2329.0   1949.0   \n",
       "2011-06-01      5646.0    905.0   707.0   1511.0  1738.0   2545.0    616.0   \n",
       "2011-07-01      4938.0    501.0  1314.0   1336.0  1760.0    517.0      NaN   \n",
       "2011-08-01      4818.0   1591.0  2831.0   2801.0   899.0      NaN      NaN   \n",
       "2011-09-01      8225.0   2336.0  2608.0    862.0     NaN      NaN      NaN   \n",
       "2011-10-01     11500.0   3499.0   869.0      NaN     NaN      NaN      NaN   \n",
       "2011-11-01     10821.0   1100.0     NaN      NaN     NaN      NaN      NaN   \n",
       "2011-12-01       961.0      NaN     NaN      NaN     NaN      NaN      NaN   \n",
       "\n",
       "                                                                  \n",
       "CohortIndex       8        9        10       11       12      13  \n",
       "CohortMonth                                                       \n",
       "2010-12-01   11312.0  11316.0  14098.0  13399.0  21677.0  7173.0  \n",
       "2011-01-01    2844.0   3768.0   4987.0   6248.0   1334.0     NaN  \n",
       "2011-02-01    2720.0   2940.0   2916.0    451.0      NaN     NaN  \n",
       "2011-03-01    3528.0   4214.0    967.0      NaN      NaN     NaN  \n",
       "2011-04-01    2130.0    513.0      NaN      NaN      NaN     NaN  \n",
       "2011-05-01     764.0      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-06-01       NaN      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-07-01       NaN      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-08-01       NaN      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-09-01       NaN      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-10-01       NaN      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-11-01       NaN      NaN      NaN      NaN      NaN     NaN  \n",
       "2011-12-01       NaN      NaN      NaN      NaN      NaN     NaN  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cohort_counts = df.groupby(['CohortMonth', 'CohortIndex'])[['CustomerID']].count().unstack(); cohort_counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1c9c22bb-cc9a-4138-b756-38c72ba2ea9b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CohortMonth\n",
       "2010-12-01    25670.0\n",
       "2011-01-01    10877.0\n",
       "2011-02-01     8826.0\n",
       "2011-03-01    11349.0\n",
       "2011-04-01     7185.0\n",
       "2011-05-01     6041.0\n",
       "2011-06-01     5646.0\n",
       "2011-07-01     4938.0\n",
       "2011-08-01     4818.0\n",
       "2011-09-01     8225.0\n",
       "2011-10-01    11500.0\n",
       "2011-11-01    10821.0\n",
       "2011-12-01      961.0\n",
       "Name: (CustomerID, 1), dtype: float64"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cohort_size = cohort_counts.iloc[:,0]; cohort_size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "82b54f72-00ae-4258-9b50-25305250aea9",
   "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>CohortIndex</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortMonth</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",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-12-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>39.388</td>\n",
       "      <td>33.849</td>\n",
       "      <td>43.323</td>\n",
       "      <td>37.507</td>\n",
       "      <td>46.537</td>\n",
       "      <td>43.120</td>\n",
       "      <td>44.067</td>\n",
       "      <td>44.083</td>\n",
       "      <td>54.920</td>\n",
       "      <td>52.197</td>\n",
       "      <td>84.445</td>\n",
       "      <td>27.943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>20.143</td>\n",
       "      <td>27.691</td>\n",
       "      <td>21.054</td>\n",
       "      <td>33.125</td>\n",
       "      <td>29.549</td>\n",
       "      <td>25.522</td>\n",
       "      <td>26.147</td>\n",
       "      <td>34.642</td>\n",
       "      <td>45.849</td>\n",
       "      <td>57.442</td>\n",
       "      <td>12.264</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>15.726</td>\n",
       "      <td>21.629</td>\n",
       "      <td>28.178</td>\n",
       "      <td>25.674</td>\n",
       "      <td>22.796</td>\n",
       "      <td>25.391</td>\n",
       "      <td>30.818</td>\n",
       "      <td>33.311</td>\n",
       "      <td>33.039</td>\n",
       "      <td>5.110</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-03-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>12.521</td>\n",
       "      <td>22.892</td>\n",
       "      <td>20.901</td>\n",
       "      <td>21.456</td>\n",
       "      <td>18.530</td>\n",
       "      <td>25.923</td>\n",
       "      <td>31.086</td>\n",
       "      <td>37.131</td>\n",
       "      <td>8.521</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-04-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>19.457</td>\n",
       "      <td>17.871</td>\n",
       "      <td>18.038</td>\n",
       "      <td>18.692</td>\n",
       "      <td>27.933</td>\n",
       "      <td>26.013</td>\n",
       "      <td>29.645</td>\n",
       "      <td>7.140</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-05-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>17.795</td>\n",
       "      <td>14.998</td>\n",
       "      <td>15.180</td>\n",
       "      <td>24.714</td>\n",
       "      <td>38.553</td>\n",
       "      <td>32.263</td>\n",
       "      <td>12.647</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-06-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>16.029</td>\n",
       "      <td>12.522</td>\n",
       "      <td>26.762</td>\n",
       "      <td>30.783</td>\n",
       "      <td>45.076</td>\n",
       "      <td>10.910</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-07-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>10.146</td>\n",
       "      <td>26.610</td>\n",
       "      <td>27.055</td>\n",
       "      <td>35.642</td>\n",
       "      <td>10.470</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-08-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>33.022</td>\n",
       "      <td>58.759</td>\n",
       "      <td>58.136</td>\n",
       "      <td>18.659</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-09-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>28.401</td>\n",
       "      <td>31.708</td>\n",
       "      <td>10.480</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-10-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>30.426</td>\n",
       "      <td>7.557</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-11-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>10.165</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-12-01</th>\n",
       "      <td>100.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "CohortIndex     1       2       3       4       5       6       7       8   \\\n",
       "CohortMonth                                                                  \n",
       "2010-12-01   100.0  39.388  33.849  43.323  37.507  46.537  43.120  44.067   \n",
       "2011-01-01   100.0  20.143  27.691  21.054  33.125  29.549  25.522  26.147   \n",
       "2011-02-01   100.0  15.726  21.629  28.178  25.674  22.796  25.391  30.818   \n",
       "2011-03-01   100.0  12.521  22.892  20.901  21.456  18.530  25.923  31.086   \n",
       "2011-04-01   100.0  19.457  17.871  18.038  18.692  27.933  26.013  29.645   \n",
       "2011-05-01   100.0  17.795  14.998  15.180  24.714  38.553  32.263  12.647   \n",
       "2011-06-01   100.0  16.029  12.522  26.762  30.783  45.076  10.910     NaN   \n",
       "2011-07-01   100.0  10.146  26.610  27.055  35.642  10.470     NaN     NaN   \n",
       "2011-08-01   100.0  33.022  58.759  58.136  18.659     NaN     NaN     NaN   \n",
       "2011-09-01   100.0  28.401  31.708  10.480     NaN     NaN     NaN     NaN   \n",
       "2011-10-01   100.0  30.426   7.557     NaN     NaN     NaN     NaN     NaN   \n",
       "2011-11-01   100.0  10.165     NaN     NaN     NaN     NaN     NaN     NaN   \n",
       "2011-12-01   100.0     NaN     NaN     NaN     NaN     NaN     NaN     NaN   \n",
       "\n",
       "CohortIndex      9       10      11      12      13  \n",
       "CohortMonth                                          \n",
       "2010-12-01   44.083  54.920  52.197  84.445  27.943  \n",
       "2011-01-01   34.642  45.849  57.442  12.264     NaN  \n",
       "2011-02-01   33.311  33.039   5.110     NaN     NaN  \n",
       "2011-03-01   37.131   8.521     NaN     NaN     NaN  \n",
       "2011-04-01    7.140     NaN     NaN     NaN     NaN  \n",
       "2011-05-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-06-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-07-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-08-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-09-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-10-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-11-01      NaN     NaN     NaN     NaN     NaN  \n",
       "2011-12-01      NaN     NaN     NaN     NaN     NaN  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "retention = (cohort_counts.divide(cohort_size, axis=0)*100).round(3)\n",
    "retention.columns = retention.columns.droplevel()\n",
    "retention.index = retention.index.astype('str')\n",
    "retention"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3d12b4af-fa42-44e3-992e-c2041b2e042e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtYAAAH1CAYAAADSwLnDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAADHVElEQVR4nOzdd3xUVfrH8c/MpPdCAmkkkJDQiwbpvQsCKirrz8IKlgjiKitiAymClFVXabpiR1BUQGpoIj3SIZR0CJDek0kyyZTfH4EhgUBCSGaCed6+8jJzz51zv7kzJM+cOfeMwmAwGBBCCCGEEELcFaW5AwghhBBCCPF3IIW1EEIIIYQQtUAKayGEEEIIIWqBFNZCCCGEEELUAimshRBCCCGEqAVSWAshhBBCCFELpLAWQoh67MiRIwwZMsTcMYQQQlSDQtaxFkI0dP379ycjIwOVSoWdnR29evXivffew97evsr7Pv3004wcOZLHHnusVrKEhISwbds2/P39a6W/W7l8+TIDBgzAzs4OAFdXV8aOHcsLL7xQrftPmzaNxo0b89prr9VlTCGEuKfIiLUQQgDLly/n+PHjrFu3jrNnz/LFF1+YO5JJHD58mOPHj/Pf//6XpUuXsn//fnNHEkKIe5YU1kIIUY6Hhwc9e/bk3Llzxm0nTpxg7NixhIaGMnLkSCIiIgD4+OOPOXLkCLNmzaJTp07MmjULgLi4OP75z3/ywAMPMGTIEDZv3mzsa9q0acycOZMXXniBTp068dhjj5GYmAjA//3f/wEwatQoOnXqxObNm4mIiKB3797G+8fFxfH0008TGhrK8OHD2blzZ7X6rkq7du0ICgqq8HNPnjyZHj16cP/99/N///d/xMTEAPDTTz+xYcMGVqxYQadOnXjppZcASE1N5ZVXXqFr167079+f7777rvonXggh/gaksBZCiHJSUlLYu3cvTZs2BcqKxRdffJGwsDD++usv3nzzTSZPnkxWVhavvfYaoaGhTJ8+nePHjzN9+nQKCwt57rnnGDFiBAcOHODjjz9m5syZxMbGGo+xefNmJk2axOHDh2natCkff/wxACtXrgRg/fr1HD9+nAcffLBCttLSUl566SV69OjBgQMHePfdd/n3v/9NfHx8lX1X5cSJE8TExFSYgtK7d2/Cw8M5ePAgrVu35t///jcATzzxBA899BDjx4/n+PHjLF++HL1eT1hYGCEhIezZs4dvv/2Wb7/9lr1799bgURBCiHuTFNZCCAFMnDiRTp060adPH9zc3Jg8eTJQVuT27t2bPn36oFQq6dGjB23btuXPP/+stJ/du3fj4+PDo48+ioWFBa1bt2bIkCFs3brVuM/AgQNp3749FhYWjBw5ssIo8e2cPHmSwsJCXnjhBaysrOjWrRv9+vVj06ZNNe67a9eutG/fnieeeIInn3ySgQMHGtvGjBmDg4MDVlZWvPLKK5w/f578/PxK+zl9+jRZWVlMmjQJKysr/Pz8ePzxxyuM1gshxN+dhbkDCCFEfbBkyRK6d+/OX3/9xZQpU8jOzsbJyYmkpCS2bt3KH3/8YdxXq9XSpUuXSvu5cuUKp06dIjQ01LhNp9MxcuRI4+1GjRoZv7exsaGwsLBaGdPS0mjSpAlK5fUxEW9vb1JTU2vc96FDh1AoFHz33Xds2LCB0tJSrKys0Ol0fPzxx2zdupWsrCzjMbOzs3F0dKz0505LS7vp5y5/Wwgh/u6ksBZCiHIeeOABHnnkEebPn8/SpUvx8vJi1KhRzJkzp1r39/LyonPnznz99de1ns3T05OUlBT0er2x0E1OTiYgIOCu+lWpVPzzn/9k27Zt/Pjjj4wbN44NGzawc+dOvv76a3x9fcnPz6dz585cW0hKoVBU6MPLywtfX1+2bdt2V1mEEOJeJlNBhBDiBs8++ywHDhzg/PnzjBw5kj/++IO9e/ei0+nQaDRERESQkpIClI0QX7p0yXjfvn37cuHCBdatW0dpaSmlpaWcOnWKuLi4ah37xv7Ka9++PTY2Nnz55ZeUlpYSERHBrl27bpqLXVMvvPACX375JRqNBrVajZWVFa6urhQVFfHRRx9V2Nfd3Z3Lly9XyGZvb88XX3xBcXExOp2O6OhoTp06VSvZhBDiXiCFtRBC3MDNzY1Ro0axZMkSvLy8WLp0KZ9//jndunWjT58+rFixAr1eD8AzzzxDeHg4nTt3Zs6cOTg4OLBixQo2b95Mr1696NmzJ4sWLaKkpKRax540aRLTpk0jNDT0pvnJVlZWLF++nD179tC1a1dmzpzJggULCAwMrJWfu2/fvjg7O/Pzzz8zevRovL296dWrF8OHD6djx44V9h0zZgyxsbGEhoby8ssvo1KpWL58OefPn2fAgAF07dqVd999l4KCglrJJoQQ9wL5gBghhBBCCCFqgYxYCyGEEEIIUQuksBZCCCGEEH9b8+fPp3///oSEhBAdHW3cnpCQwBNPPMGQIUN44oknuHDhQrXabkcKayGEEEII8bc1YMAAVq5ciY+PT4XtM2bM4MknnyQ8PJwnn3yS6dOnV6vtdqSwFkIIIYQQ95S8vDwuX75801deXt5N+4aGhuLl5VVhW2ZmJmfPnmXEiBEAjBgxgrNnz5KVlXXbtqrIOtb1RLFOb+4IVVryxhZzR6iSIbPI3BGqpAhwNneEqmXV//MIgP89cC7zq7caiFmpZIylNlgHuZk7QrVoi0vNHaFKDw5rae4IVVr3/HpzR6jS1I1PmzsCUDc1zrfffsvixYtv2j5p0iReeeWVKu+fnJxM48aNUalUQNl6/p6eniQnJ2MwGG7Z5uZ2+3/nUlgLIYQQQoh7yrPPPsvDDz9803YnJyczpLlOCmshhBBCCFFn6mJhZycnp7sqor28vEhNTUWn06FSqdDpdKSlpeHl5YXBYLhlW1Xk/T8hhBBCCNGguLu706pVKzZu3AjAxo0badWqFW5ubrdtq4qMWAshhBBCiDpk3s8inDNnDtu2bSMjI4N//vOfuLi4sGnTJt5//32mTZvG0qVLcXJyYv78+cb73K7tduSTF+sJuXixdsjFi7VELl6sPXLxYoMhFy/WHrl4sXbUl4sXi7S6Wu/T1kJV633WBhmxFkIIIYQQdaYhDeFKYS2EEEIIIepMA6qr5eJFIYQQQgghaoOMWAshhBBCiDrTkKaCyIi1EEIIIYQQtUBGrIUQQgghRB1qOEPWUljfY1atXMnv69YSEx3NsOHDmT13nrEt4uBB5s6ZTUpyMm3bt2f2B3Px9vEBoKSkhDkzZ7JjWzg2NraMGz+eZ8aNM1nuYf/XkaYt3LG0UqHO03Dkj3hOR1wCoF0XPzoPCMTe0ZorCVmErz6FOk9jsmzXPPhiZ5q29sTS2gJ1bjGHN0dx+s8LFfbpNqoVPR5pw8/z95B4Ns3kGa9xcbPj2Ze7En02jS2/ReIX4Eq/B0NwdLLBYDBw+WIOuzadpyDf9Odx2DP30TS4Udljna/hyI5YTh9MBCC4kzfdHwzB0cWW/Owi9m08R+ypFJNnvMbFxZZnx4USHZ3Ols3neaBLU7p0aWpsVyjAwkLJsqUHKCrSmidjPX6sK+a05dmXupTlXHe2QtuQh1rRtpM3Kz47QE62+ZZyrM8ZHx4QRONG9uj1ZQWIuqiUlRvP4ePpwOgBQZRqry/JuufIZc4nZJk8I8CYYS1p4uGA/up7+wWFJXz362kCfJ3p3MGbRi62aHV6Ei7l8GdEYoXcppKanMSyT+Zz/sxpLC0t6dFnAM9Peh2VxfWSZ1f4Jj6e9z6T/v0OQ0aMNmk+lYWSQS93wb9jE2wdrMlOyWfPt8dJOJoEQEhPf3r+Xwcc3e3Iy1Cz57sTxB66ZNKMta0hTQUxSWGdnZ3N1KlTSUxMxMrKCn9/f2bNmoWbmxsnTpxg+vTpaDQafHx8WLhwIe7u7gBMmTKFiIgI0tPTOXbsGPb29sY+b3e/G92qn4SEBKZPn056ejoWFha0a9eOGTNmYGNjU2k/u3btYsGCBeh0Otq0acO8efOwtbWlpKSEsLAwIiMjAYiIiKjN01eBh6cHz7/4Egf270Ojuf6HNDs7m9dfncyMWbPp068fSz79lKlTXueH1T8BsGzxYhIvXmTrjp1kZGQwYdw4AgMD6dGrV51lLe+vHbFsW30KnU6Pm6c9j7/cldQruVhZW9DzwRB+XnqI7Aw1/Ua3YfjTnfh5ySGT5CovYmMU4SuOotPqcfNy5IlpfUi7mEPqhRwAnD3tCe7sS4EZC4NrBgxvSUpSnvF2ZrqaX78/jjpfg0qloEf/IAaOaMW6VSdMnu2vbTFs+/FE2Xls7MDjk7uTejmXwjwNDz5zH+v+9xcXzqbRrI0nDz0Xyv9m7KCowDxrPQ8YGERKSv717BGJ/BWRaLzdrbs/vr7OZiuqoX4/1uUNGBZCSlL+Tdt9/JxxdrM1Q6Kb1feMe45c5mxc5k3b1UWlfLPujBkSVe6PQxc5E51eYZu1lQV/nUjiSko+KpWCYX0D6fVAU3YduGDyfMs+mY+ziyvf/boFdUE+7/17EpvW/8LIR8cCUJCfx88/fE3TgOYmzwagVCnJz1Czato28tLVBIb6MOrN3nw1aQN6nZ4RU3rw25zdJBxNonmoD6Om9ebz8WspzC02S15xZ0wyx1qhUDBhwgTCw8PZsGEDfn5+LFq0CL1ezxtvvMH06dMJDw8nNDSURYsWGe83ZswY1q+/eQH2qu53o1v1Y2lpyVtvvcXWrVv5/fffKSoqYsWKFZX2oVaree+991i+fDnbt2/H3t7euK9SqWT8+PF88803d3hm7tzAQYPpP3AgLi4uFbbv3L6dwKAgBg8dirW1NS9NnEh0VBQJ8fEAbFi/jhfCwnBydqZ5YCCPPDaG9evW1nneazJTC9Bd/RAcg6HsTSEXd3sCWzcm+mQymakF6HUGDm2PwS/QHWd3O5NlM2a8kodOey2jAQMGXDwdjO0Dn+7Enp9PG/cxl5C2jdEUl5IYf33EqlBdgrrciKXeYMDFTIVCZkp+xfNoAJdG9ji42KApKuXC1ZH+hDNplGp0uDSyv113dSYkxAONRktiYvYt92ndujFnzqSaMFVF9f2xviakTWM0xVoSbxhFVSgU9B8awq4t0WZKdt29kPFeFhWfycUruWh1ejQlOk5HpeNd7venKaUmJ9Gr3yCsrK1xdW/EfQ90I/FCvLH92y+W8NCjT+Dk7GKWfKUaLft/PEVemhoMEHf4CjmpBTQJcsfR3Z5idalx9Dr+yBVKNVpcvMxzLmuLoQ6+6iuTFNYuLi506dLFeLtjx44kJSURGRmJtbU1oaGhAIwdO5atW7ca9+vWrVulo9BV3e9Gt+rH19eX1q1bA2XFcfv27UlKSqq0jz179tC2bVsCAgKMx9yypeyTCC0sLOjevTuOjo63Ow11Ki42luCQEONtOzs7fP38iIuNJS83l/T0dELKtYeEtCQuNtakGQc82pbJHw7lubf6os7TkHDu6lQKhcK4z7VvGzUxz7kc+EwnXv1iNOPnD0WdU0z8yWQAgjv7oNPqSTDjtAUAK2sV3fsFsjv85iLA0dmGidP68uq7Awjt7s/h/RdMH/CqAY+3Y/J/HuS59wagzism4UwqqYk5ZKbkE9i2MQoFBLVvgk6rJ73caKypWFmp6N4jgN1/xN1yHx9fZ+zsrIi5YWTOVO6Vx9rKSkX3vs3ZvS3mprb7u/pxOTGHjLQCMyS77l7ICNCtgxfjH2nHo4Na4FOuKLW1tuC5h9vyzMjW9LzPBwszf1Jmj/t9efHJTjw+vBW+t/hd7dvEkcwc87y7N3LMP9izaxvFxcVkpqdxNOIA9z/QDYDoc2eIjTrHsJGPmiVbZexcbHDzcSIjMYeU2EyyLuUS9IAvCqWCoK5+6Ep1pCfkmDumqCaTz7HW6/WsWrWK/v37k5ycjLe3t7HNzc0NvV5PTk7OTSOy5dX0frdTXFzMr7/+yuuvv16tY3p7e5OcnFyjY9WFwkI1rm4VP07X0dERtVpNYWEhAA7lCn8HRwcK1WqTZtz5ayS7fovEO8AV30D3skL1fBojnr6PkwcukpOhpuvgFhj0BiytzPNRpTu+O87O74/jHeSOXysPdFo9ljYW9BrTljUL95olU3k9+gcReTyJgkrmoOfnFrPkw93Y2FrQ7n5fsjIKzZCwzM6fT7NrzWm8m7nh26LssTYY4Oxfl3lw3P1YWCjR6fRs+OoI2pLa/6jbqvToEUBkZAoFt5mC0qZNY6Kj0yktNc87FPfKY92jX2BZzhvmeDs6WdP+fh9++N9fZkp23b2Q8cCJJLJyi9HpDQT7uzK8T3NWbzlPdl4xq7dEkZ1XjKO9FQO7+dPzPh92HzbPnNt9Ry6RmV2EXm8guLk7IwcFs3JdJLnlzm1TbydaBTVi9Yazt+mp7rTt0InwjWt54sG+6PU6+g8ZTteefdHpdCz7eD4vvvoGSmX9WBRNqVIw4t89idwZR9blskGGyF3xjHijJxZWKnSletZ/uIdSjfmmo9WKBjTJ2uTPrNmzZ2NnZ8dTTz1l6kPfklar5bXXXqNr164MGDDA3HFqxM7OHnVBxRGXgoIC7O3tsbOzM96+Rl2gxs7e9G/BGwxwJSEbRxcbOvTwJzEmkwPh0Ywcdz8T3u1PXlYRJRot+WYa6TBmjMnEwdWWDv0D6TG6NWcPJJJnxuIFwKOJA02bu3H04MXb7ldcpOXMiSRG/aMDCqXitvvWJYMBrsRn4ehiS4deATQNaUTv0a35+b/7+fi1jfz03wMM/kdHPHycTJrLw8Oepv6uHD1y+Zb7WFgoCQ724KyZpoHcK4+1R2MHmjZz5eihxJva+g4J5tCeBEo0pn/hVN69kBEgNbOQUq0evd7A+YQsktPVBHg7UVisJTuvbG5tvrqEA8evEOjnYracKelqSrV6dHoD52IzSErNJ8D3ep4mHvYM7RPIpl2x5OSZfk6wXq9nxtTJdOvVj1+27mHl+u2oC/L55vPP2Lz+FwICg2jZpp3Jc1VKAcOn9ESn1bNjedmLO/8OTej7z/tY/dY2Fo1eyaq3tjF0clc8m7maOezdaUhTQUw6Yj1//nwuXrzI8uXLUSqVeHl5VZh6kZWVhVKprHLU+Xb3W7ZsmXFayFtvvUXXrl1v25dOp+Pf//43zs7OvPvuu8btM2fO5NixYwB8/PHHeHl5VbgoMSkpCS8vr2r/7HUtMCiIDevXGW8XFhZy+dIlAoOCcHJ2xsPDg+io83Tr3gOAqKjzBAYFmSktKJUKXK7Ooz6x/yIn9pcVEK4e9nQdGERGys0XGJmaUqXExdMevxAPHNxs6dg/EABbJ2semtiVw5ui+GtzlMny+AW44exiywuvlV1wammlQqFU4O7RhR8+r3jBrFKpwN7BGmtrFcVmvPDuWhaXRvaoVEoux2aSeikXgNTEHFIuZuMf4kH6FdNNB/Hzc8HZ2YYXXiz73WBpqUKhAPen7+OH78v+zQe1aERxsZZLl3JMlqtCxnvksfYLcC3L+a8e13MqFLh72OPsaouPnwu9B17/PfOP50L5Izya85Gme8FyL2S8tcpfLCnM93q5UtfyeLjZMXJgMNv3JXAp2fRTvADy8/JIT01hxMOPY2llhaWVFQOGPsQPK5bh5eNH5MljHDm0Hyi7iDE+NoqE2Ghe+tdUk2cdNrkb9i42/PL+LvS6slLRs7kbl86kkhJbdi1ASkwmyVGZ+Hf0Ii3h1teDiPrDZIX1Rx99RGRkJF988QVWVlYAtG3bluLiYo4cOUJoaCirV69m6NChVfZ1u/uFhYURFhZWrUx6vZ5p06ahUqn44IMPUJT7bTVjxowK+3p6ejJ79mwuXLhAQEAAq1evZtiwYdX98WuNVqtFp9Oh0+nR6XRoNBpUKhX9Bw7k40UL2bFtG7369OHzZUtpERxMs+ZlVz2PGDWK/y1fTps2bcnMzOS3NWuY9cFck2S2dbCiaZA78WfT0JbqaBrciJadvNn0w3FUFkpcGtmRmVKAo4sNgx5rx7G9F9CYuECwc7TGr7UH8SeS0Zbo8G/TmFZd/di4LIKD686htLj+3HhqxgB2rzpp8vnWp45e5nzk9WN27u6Pk4stOzaeI6iVJ5lpBWRnFWJra0nfIcGkJuWZvNCydbCiaXAj4iNTyx7rEA9a3u/Dpm+OoinW8sCgIDx8nEi/koenrxM+ge6c2HvBpBlPnUrm/PnrSyV27uyHk7MNO7Zfn3/bpk1jzp41X2F1LzzWZTmvVChAO3dvipOzLTs2nweo8Ds1bEov1q0+SXqqaecy3wsZrSxVNGlkx5XUAvQGAy38XfH2tGfv0cv4eDqQV6Ahv7AUBztLunX0JuFyrknzXWNtpaKJhwOXU/LKpoI0c8ensSO7DyXi7mLL6CEh7D50kQQzvSAFcHZxobGXN5vX/8IjTzxFUVERu8I3ERDYgrB/vUlpyfUpK3OnT6VHnwEMenCUyXMOntgFdz9nfnp3R4XpcCkxGXQZ0wbPZq6kJWTj2dwV3zaeHDfhIE5daEAzQUxTWMfExPD5558TEBDA2LFly934+vqyZMkSFixYwIwZMyosm3fNpEmTOHXqFABDhw4lODiYFStWoFQqb3u/G92qnz179vD7778THBzMI488AsB99913U1EN4ODgwKxZs3jxxRfR6/W0atWKd955x9j+6KOPkpqaSl5eHr1796ZXr1588MEHd3/ybvC/5ctZvnSJ8famDRt46eWJhE2axH8++S/zPpjD229OpV379sz/z0fG/V6e9ApzZs5k6MABWNvY8M/xE0y21B4G6NDDn4GPtUOhgLzsIv5Yf5a4M2lY21gw/KlOuLjbUaLREnn4Mvu3mP4XiAEDHfsHMujZ+1AoFeRlFLJr5Unijt88j96gN1CsLqXUxG8fa0v1aEuvzwkuKdGh1eopKizF0cmavkOCsbO3okSj5dKFbNavPmnSfNd06BnAwCc6XH+sf4sk7mphc2BLFA+N74y9ozWFBRoitsVw8bxpLw7UavVoy63sUlJ69TwWlQLg4GBF06au7Nxx84VupnKvPNZl5/LGnDqKCksr3b+osLTCuTeFeyGjUqmgS3svXK+uTZ6dp2HzngRy8jUE+DgxqLs/1lYWFGu0xF/O4dBJ81zfo1Qq6HafD24uQRj0BrJyi9mwM4acvGIG9WyGnY0FA3s2Y2DPZgDkF2j4fm2kyXO+PWsB/1v8Eb+u+q5sYYL7OjNh4mtXrzO6fq2RhYUltnb22DuYdsUNJw97Og4LRluiY+L3Y4zbty2J4OzuBPavOsWot3pj72JLYV4xh9ac5kIlf4tE/aQwGBrS64j6q1hn3iXcqmPJG1vMHaFKhkzzrzFdFUWAs7kjVC2r/p9HAPzvgXOZb541uu+ImVeZ+LuwDnKreqd6QFtc+YuK+uTBYS3NHaFK656/eRnf+mbqxqfNHQGA7KLaf8652lrWep+1QX6bCiGEEEIIUQvkI82FEEIIIUTdaUCTI6SwFkIIIYQQdabhlNUyFUQIIYQQQohaISPWQgghhBCizjSgmSAyYi2EEEIIIURtkBFrIYQQQghRZwwNaJa1FNZCCCGEEKLuNJy6WqaCCCGEEEIIURtkxFoIIYQQQtSZBjRgLSPWQgghhBBC1AYZsRZCCCGEEHWmIS23J4W1qDbNjlhzR6iSha+ruSNUSXcq2dwRqmTZtom5I1SL/vJlc0eokiG/xNwRqqYwd4CqqfyczB2hShprlbkjVIt9C3dzR6jSqlYLzB2hSi/HvGnuCPeQhlNZy1QQIYQQQgghaoGMWAshhBBCiDrTkKaCyIi1EEIIIYQQtUBGrIUQQgghRJ1pQAPWUlgLIYQQQoi6I1NBhBBCCCGEEHdERqyFEEIIIUQdajhD1jJiLYQQQgghRC2QEWshhBBCCFFnZI61EEIIIYQQ4o7IiLUQQgghhKgzDWjA2jSFdXZ2NlOnTiUxMRErKyv8/f2ZNWsWbm5unDhxgunTp6PRaPDx8WHhwoW4u7sDMGXKFCIiIkhPT+fYsWPY29sb+7xd241qeoy66udurFq5kt/XrSUmOpphw4cze+48Y1vEwYPMnTOblORk2rZvz+wP5uLt4wNASUkJc2bOZMe2cGxsbBk3fjzPjBtXJxlvpLJUMeSdfjTr6oeNsw05l3L549P9xO+7CEBAFz+GvN0XpyaOJJ1OYcN728lLzjdJNmNGCyWDJnbBv5MXtg7WZCfns+fbYyQcSQIgpJc/Pf+vA46N7MnLULPn2+PEHrxk2oyWSoa83ZeALn7YONmQczmX3Z8dJH7/RZQWSkbNG0KT1p64eDuxcsJvJB69YtJ81zz40gM0beOJpbUF6pxiDm+K4vSfCbh7OzLsxQdwaewAQGpCNru+P05mkmkf62uG/6s7/u2aYGljgTqniL/WnuXUjjgAmrZrzKAXOuPkYU9ydAabPztEXrrapPlUlkoGT+6G/33e2Dhak5OUx54VR4k/XPa4Wlir6PdiZ1r2aYbKQklaXBY/vr7F9BlfKZcxuZKML9yQcYppMwI8+HxnmrbyKHtO5hZzeEs0p/dewMndjhcWDqOkWGvc968tURzacN7kGa9xcbXl2ec6Ex2VzpaN5wCwtbWk38Agmge6YzAYSIjLYvPVNlNb88V0ki/FoFSqAHBwcmPclE/5649f+Wv3WuN+er0ena6Ul95Zga29k8nydX6+Cx2fvA/P1o2J/PUU61/+DQCfUF/6vTMQ747e6HUGLuxLYOubGylILTBZtgatAc0FURgMdf/T5uTkEBUVRZcuXQCYP38+ubm5zJkzhyFDhjBv3jxCQ0NZunQply5dYt68smLx4MGDBAcH071795uK1du1lafX62t8jLro51aKdfpq7bdj+zaUCiUH9u9Do9EYC+vs7GxGDBnMjFmz6dOvH0s+/ZRjR4/ww+qfAPjvRx9x/NgxPl2yhIyMDCaMG8fsuXPp0atXtTN+1OmzO/qZrrG0taDruPs5tf4sucn5BPVqxqj5Q/ny0R8oKSwlbNM4Nr+/g5g/E+gzqRt+93nz7VM/1+hYFr6uNctobcEDY9pwensseelqAjv78NDU3nz18u/odXpe/OoRfpv9BwlHkmje2YdRb/Xh83/+RmFu8R0fS5ecW7OMNhZ0efY+Tv9+jtyUfIJ6BjBy3hBWPPYj+elq7n+8Hcln03h4wTDWvxV+V4W1ZdsmNb6vu48TOakF6LR63LwceeLtvvz2n73kpKmxtrMkL6MQhQI6DgqifZ9mfPvO9hofS19QUvOcfs7kJOeX5fRxYuzsgfw6Zzd56WpeWDaSrUsjiD18mV5PdsC3lSc/TAuv0XEM+TXLaGljwQOPt+V0eCx5aQUEPuDLQ+/05avn15GXWsCIab1RqhRsX3yI4vwSPAPdSI3JrNGxUNTsbpY2FjzwWFtObyuX8e2+fPXC1YxvXs245O4zqvxqXpy5ezuSk6Yue6ybOPLEm7357ZP9FBWU8MLCYfxnwm8Y9Hf/p1AR4n7XfTz6eHssLJTk5WmMhfUTT3YkJSWfg/suoNXqadTInrS0mheE9i1qnnPNF9Np2ak37ToPvO1+B3f8xJWEc4x5/v0aHSf1uZ9qdL+WD7XGoDcQ1D8IC1tLY2EdNLAFVvZWxO6KRa/V8+DCETg2cWTlmO9qdByAl2PerPF9TcXDw9HcEQC4kl1Y6336uNrVep+1wSRzrF1cXIxFNUDHjh1JSkoiMjISa2trQkNDARg7dixbt2417tetWzfjiPCNbtdW3t0coy76uVsDBw2m/8CBuLi4VNi+c/t2AoOCGDx0KNbW1rw0cSLRUVEkxMcDsGH9Ol4IC8PJ2ZnmgYE88tgY1q9bW8kRal9pkZa9yyLITcoHA8TuSSD3Sh5NWjcmZEAQGXGZnN8ei65Ex95lh/AM9sA9oGYFco0zarTsX3mSvDQ1GCDuryvkpBbQpIU7jo3sKVaXGEev4w9foVSjxcXLwbQZi7Xs+/wvcpOvnse9F66eR0/0Wj2HfzzJ5RPJ6GuhQLgbmVfy0GnLXigaDAYMGHDxdEBTWEpextVfrgoFBr3BOHptlpyXco05MRjAAC5NHAju6kfGpVyiDiSiK9Wzf/UpPAJccPMx3agblD3e+787QV5qQdlzMuIyuSn5NAl2x83PmaBufmz9+ABFuRoMekPNi+q7zfh9JRlblMv4iXkzAmQm5V9/TmLAYDDg4lk37yrejZBWnmg0WhIv5hi3+Qe44uhkw54/4igp0aHXG+6qqDYFg8HA2WN/0uq+viY/9vkNZ4nadI7CrKIK22N3xHB2/RlK8jVoi0r563+H8Ovib/J8DZWhDr7qK5PPsdbr9axatYr+/fuTnJyMt7e3sc3NzQ29Xk9OTs5NhWNN1dYxTJH1bsTFxhIcEmK8bWdnh6+fH3Gxsbi7u5Oenk5IufaQkJb8sXOnOaJi72aHm78LGbGZ3PdEO9KiM4xtpUVaci7n0CjIncwL2WbJB2DnYoObjxMZF3PITson61IuQV18iTt8hcAuvuhKdaQn5JgtH4Cdmy1u/i6kx2WZNUdlBj7biTa9ArC0tiD1QjbxJ5ONbZOWj8LKxgKFQsH+386YMSUMeqEzbfs3L8sZl0X8sSR6/V8H0so990o1OnJSC2jk50zWlTyzZbVzscHN14mMCzl4tWxEXpqans92os3AQNRZRez77jjRey+aLV+FjBdz8Aq5mvGZGzLuM0/GgU91pE0P/7LH+mI28adSsHWwBuCFhcPAYODi2TT+/Pk0RXfxTkhNWVmp6N4zgDWrT9KuvZdxu5e3E9lZhQwd3opmzd3IzSnizz/iuHypZu981Yb94T+yb+tKXD286TH4H/g1b1uh/cqFcxSp82jRtsstejA//+4BpJ9PM3cM8Tdk8sJ69uzZ2NnZ8dRTT7F9e83fAhYVFRaqcXVzq7DN0dERtVpNYWHZKKGD4/W3hBwcHShUm3bOKIDSQsnID4dw+vdzZF7IxtLWisLsiiMLxfklWNlZmjzbNUqVghFv9CJyRxxZl8sKqcid8YyY2gsLKxW6Uj3r5/1JqUZbRU91mNFCyci5Qzi94TxZZnwBcis7vj3Ozu+O493CHb9WntdHhoHFL63H0lpFm54B5GWY/jlY3vYvDrPjyyN4hzSiaZvG6Ep1WNlYUJinqbCfRl2Kla15n5MPvd2HyG1xZF3KJbinPx7NXInae4ElT/yET2sPxnwwiMyLOWQmmqfgUqoUPPTWLTKOvZpxziAyE82TcccPJ9i58gTeQe74hXig0+opKtDw/aydpCXmYutgxcCnOvLgCw/w60f7TJ6vR69mRJ5KpiC/4nPP0dGagGZuhG85T/jm87QI8WDUI+346osIiopKTZ6z59CncG/sh1JlQdTJ/az/9kOemrwIF/fr08fOHttNi7ZdsbK2NXm+6vBs05g+U/ux+smV5o7SYDSgKdamXW5v/vz5XLx4kU8++QSlUomXlxdJSUnG9qysLJRK5V2NAC9btoxRo0YxatQoDh06VONj1FY/pmJnZ4+6oOLbgwUFBdjb22NnZ2e8fY26QI1dHV1geUsKGPnBYHSlesLn7QagtKgEawerCrtZO1hRUmj6PxgAKGD4v3ui0+rYsSwCAP+OXvR97n5WT9vGopE/sOrNcIa+2g3P5qadrlI+40NzBqEv1bFt/p/myVANBgNcic7EwdWWDgMCK7SVanSc2BXHsBcfwM7J2kwJyxj0Bq6cS8exkR0dhwZTUqzF+oYi2trOkhIzFDEAKGDEtN7oSvVs/+wgANoSLbpSHQd+OIleq+fSqVQSTyQTcL+P+TK+2RudVs/2xVczaq5mXFlPMnL1ORlz9TnZrzmlGh2pF3Iw6A0U5mnY8cMJmrVtjKWNacecPDwdaBrgytHDl29q02r15OYUEXkqBb3eQNS5NPLzi/E28dSka7yaBmNlbYuFhSVt7u+Lt39LEqKOGdtLSzTEnD5IazNMA6kO12Zu/N+aZ9k6bTOJB837Dk9DIlNB6sBHH31EZGQkX3zxBVZWZYVU27ZtKS4u5siRI4SGhrJ69WqGDh16V8cJCwsjLCzMeFuv19foGLXVj6kEBgWxYf064+3CwkIuX7pEYFAQTs7OeHh4EB11nm7dewAQFXWewKAgk2YcPnMQ9u52/DRxPfqrI5jpsVm0G9nKuI+lrQWuvs5kxJpnLuawf3XH3sWWX2bsRK8r+6fr2dyVS5GppFydH5oSk0lyVAb+Hb1Iizf9aPHwGQOwd7Pj51d+N57H+kypUuDiefNcaoVCgYW1BQ6utjeNEJuDUqnApYkDmYm5tOnX3Ljd0lqFSxMHMsz01vuDU3pi52rLL29vNz4n0yt53plzRMiY8Z1yGRMqyWjqYLegVClw8bj1/H5FDS/mrCm/pi44O9nwQlg3ACytVCgU4P7s/Zw4foXmQTdcv1NfTiRXz1W5J1/smQhsbB3wbd7GfKFuwdnPhWfW/5M9C//g1E8nzB1H/E2ZZMQ6JiaGzz//nLS0NMaOHcuoUaOYOHEiSqWSBQsWMHPmTAYPHszhw4eZMmWK8X6TJk2id+/eAAwdOpTx48dXq628uzlGXfRzt7RaLRqNBp1Oj06nQ6PRoNVq6T9wILExMezYtg2NRsPny5bSIjiYZs3LCoQRo0bxv+XLycvNJSE+nt/WrGHU6IfrJGNlhr7bn0bNXfn5lQ1oNTrj9uhdcXgEuRMyMAiVlYqeL3YhLSbDLPOrB0/qgrufM7/O3IW25HrGlOhMfNt4GkeoPZu74dumcaWFQ10b8k5f3Ju5sebVjRXOI5QtfaayUt30vSnZOVkT0tUPS+uywiCgXWNadWtK4plU/Nt64unvgkIBVjYW9Pu/DmjUJWQmmX7esp2zNS17+mNpY4FCqSCgoxctewWQeCqF6IhLeDR1JrirHypLJd0fb0f6hRyzzK8e/Go33P2d+fXdHRWek5dOpZCXpqbbP9qjUCrwaeNJ045eJBwx/RKLg1/thntTZ359rxoZO5g+o52jNSEP+F5/TrZpTKsufiSeS6NJc1dcmziAAmzsrej/ZAcSz6VRUmTaaV6nTiTx5RcRfPfNEb775ginTiSREJ/Frz+fIjY6AxsbC1q3bYxCAS1CPHBwtCbJDM/H4iI1F6JPoC0tQa/Tce74Hi4nnCMguJNxn7PHdtPqvj4oTP3q5CqFSonK2gKlSmH8XqFS4ujlyDO/P8dfXxzi6NeHzZKtQTMYav+rnjLJcnuiatVdbm/Z4sUsX7qkwraXXp5I2KRJHDpwgHkfzCE5KYl27dsza+48fCpZx9raxoZ/jp9wx+tY13S5PScvRyaFP4dWo0Vf7ufcMmsXZzZHXV/H2suJpNMpbHxvW9kKIjVQ0+X2nDzteembR9GW6Cpk3PbZIc7uTqDTiBBCR7fC3sWWwtxijm+M4vDaszU6Vk2X23PycmTi5nE3ncetc/7gzJZowjY9i4t3xbeHlz74TdkqIneopsvt2TpaMXJydzz8nFEoFeRlFHJsWwyndycQ/IAvPR5tg6ObHdoSHSnxWez5+fRdjQTXdLk9WydrRk/thUeAKwqFgrx0NUc3nefU9rJ1rP3bN2Hg86Fl61jHZLL504M1Xse6psvtOXnaE/bj42hLtMZRYIDwjw9wdlc8jfxdGDqlBx7NXMlLU7Pnq6PE7E+s0bFqutyek6c9YSsryfhJuYyvl8v4dc0z1nS5PVtHK0a+3LXsOalQkJdZyLEdsZzec4GWXXzp9Uhb7Jys0RSVGi9erOk7KLWx3B5Atx4BuLjaGpfb8/F1ZsDgFjg725KVWcjuXbFcuVzzfzc1XW6vsCCXdd/MJSv9CkqlElcPH7oPGot/iw4AFORm8uWCMMa99l9cGnlV0dvt1XS5vT7T+tN3Wv8K23Z/uAsMBvq+NYCSgoqP7Tzf2TXOKMvtVV9iZu1fT9PUvf6t7ANSWNcb1S2szammhbUp1bSwNqWaFtamdDfrWJvS3axjbSo1LaxNyjyDi3fkbtaxNpXaKqzr2t2sY20qNS2sTUkK6+q7WAeFtX89LazlI82FEEIIIUSdaUhDuCZdFUQIIYQQQoi/KxmxFkIIIYQQdaYhzTqWEWshhBBCCCFqgYxYCyGEEEKIOtNwxqtlxFoIIYQQQohaISPWQgghhBCizjSkOdZSWAshhBBCiDrTgOpqmQoihBBCCCFEbZARayGEEEIIUWca0lQQGbEWQgghhBCiFsiItag2fXaBuSNUSWdV/5/SKl8Xc0eoki65/j/WAAa1xtwRqqSwtzZ3hCopXWzMHaFqWr25E1TJEJlu7gjVcnj6N+aOUKUPL39m7giiFjWgAWsprIUQQgghRN0xNKCVrGUqiBBCCCGEELVARqyFEEIIIUSdaUhTQWTEWgghhBBCiFogI9ZCCCGEEKLONKQRaymshRBCCCFEndE3oMpapoIIIYQQQghRC2TEWgghhBBC1JkGNGAtI9ZCCCGEEELUBhmxFkIIIYQQdUY+IEYIIYQQQghxR2TE+h6zauVKfl+3lpjoaIYNH87sufOMbREHDzJ3zmxSkpNp2749sz+Yi7ePDwAlJSXMmTmTHdvCsbGxZdz48TwzbpxJMoc+G0r7x9vjGeLBmd/PsOH1jcY2CxsLBr43kNYjWqG0UJJ2Lo3vxnxvklzlqSyVDJnWh4AH/LBxsibnch67lxwk/kAi3m0b0zusC01aemDQG7h49ArbF+5FnVlo2owWSgaFdcG/YxNsHazJTslnz3fHSTiaBEBIT396PtkBR3c78jLU7Pn+BLGHLpk2o6WSwZO74X+fNzaO1uQk5bFnxVHiD18BwMJaRb8XO9OyTzNUFkrS4rL48fUtps/4Ri8CQn3LHusrefy5LIL4Q5dwD3BlxPR+uPo4A5ASlc72j/aTeSHbpBmNOW9xLp0aOxC28jFKikqN+0esPs2BlSdNnnP4K91o2q4xltYWqHOK+Gv9OU7vikdpoWTEq91o0twNZ08HVs/YyaWzaSbPB/Dgiw/QtI1nWcbcYg5viuL0nwm4ezsy7MUHcPF0ACD1Qja7vj9OZlK+6TO+VC5jTiUZG1/NmGC+jDd6Y9s0ArsEotPqAMhJyuaddm+ZOZWojxrSHGuTFNbZ2dlMnTqVxMRErKys8Pf3Z9asWbi5uXHixAmmT5+ORqPBx8eHhQsX4u7uDsCUKVOIiIggPT2dY8eOYW9vb+zzdm03utUxEhISmD59Ounp6VhYWNCuXTtmzJiBjY1Npf3s2rWLBQsWoNPpaNOmDfPmzcPW1paSkhLCwsKIjIwEICIiohbPXkUenh48/+JLHNi/D41GY9yenZ3N669OZsas2fTp148ln37K1Cmv88PqnwBYtngxiRcvsnXHTjIyMpgwbhyBgYH06NWrzrJek5+az75P9xHYpzkWNhWfcsPnP4jSQsnyfp9TlFNE4zaN6zxPZZQqJXmpBax8YS25KfkE9fBn9LwhrBi7Ghsna078dob4Q4notQYGv9mbETP689PkjVV3XMsZ8zPUrHprG3npagJDfRg1tTdfvbIBvVbPiNd78NsHu0k4mkTzUB9GTevN5+PXUphbbNKMeelqfnx9C3lpBQQ+4MvI9/rx1fPryEstYOhrPVCqFHz53G8U55fgGehmsmzlM+anqvnx5d/JTc0nsHtTRs0ZxFdPraEgQ826t7eTm5KPQqngvkfbMGr2QL56eo1Zct7qXF7zyaiVGPTm/Yt1aO0Zti6LQKfV4+btyNiZA0i7kE16Yi5XzmVwdFMUI1/vadaMERvPE77iSFlGL0eeeKsvaRezyUlT8/tnB8nLKEShgI4Dgxjxcle+fXe76TNuOE/4l+Uyvn2LjIOCGDGxK9++Y/qMlVn5r+/Z+/Uec8cQ9ZyhAVXWJpkKolAomDBhAuHh4WzYsAE/Pz8WLVqEXq/njTfeYPr06YSHhxMaGsqiRYuM9xszZgzr16+vtM/btZV3u2NYWlry1ltvsXXrVn7//XeKiopYsWJFpf2o1Wree+89li9fzvbt27G3tzfuq1QqGT9+PN98880dnpk7N3DQYPoPHIiLi0uF7Tu3bycwKIjBQ4dibW3NSxMnEh0VRUJ8PAAb1q/jhbAwnJydaR4YyCOPjWH9urV1nhcgamsU0eHRFGUXVdjuHuhO8KBgNr25mcKsQgx6AymnU0yS6UalxVr2fXGY3OR8MEDsvovkJuXRpJUH8QcSOb8zjhJ1KVqNlqM/ncKng5fpM2q07F91irw0NRgg7vAVclILaBLkjmMje4rVpcbR6/gjVygt1uLSxMG0GYu17P/uBHmpBWUZIy6Tm5JPk2B33PycCermx9aPD1CUq8GgN5Aak2nSfNcy7ltxhNyUssc6bn8iucn5NGnZCE1BSdl2AAUY9AZcfZ1MnvFazludy/ok83IeOq0eAANlI1MujR3Qa/Uc3RzFlfMZZi/+M6+Uy2gwYMCAi6cDmsJS8jKuvvOkUGDQG4wjw5JRCFETJhmxdnFxoUuXLsbbHTt2ZNWqVURGRmJtbU1oaCgAY8eOZcCAAcybVza9oVu3brfs83Zt5d3uGL6+vsb9lEol7du3Jy4urtJ+9uzZQ9u2bQkICDD2M23aNCZNmoSFhQXdu3fn8uXL1cpUF+JiYwkOCTHetrOzw9fPj7jYWNzd3UlPTyekXHtISEv+2LnTHFGNvDt6k3sllz5TetPukXYUpBWw56M9nN8SZdZcAHZutrg1dSE9Luumtqb3eZMRf/N2U7NzscHNx4mMxByyk/LJupxL0AO+xB25QuADvuhKdaRfyDF/Rl8nMi7k4NWyEXlpano+24k2AwNRZxWx77vjRO+9aN6Mrra4+TmTnnB9use/tv0TK1tLFEoFe/932Izprit/Lq8J+/ExMMCFo0n88cVhivI0t+6gDg2cEErbvs2wtLYgNT6L+OPJZslxOwOf7USbngFlGS9kE3/yesZJy0ZhZWOBQqFg/29nzJux1y0yLq8fGW/06OwxPDrnMVKiU1g741ei9pw3dyRRDzWgAWvTz7HW6/WsWrWK/v37k5ycjLe3t7HNzc0NvV5PTk7OTSOyNVXdYxQXF/Prr7/y+uuvV6sfb29vkpPrzx+PwkI1rm4V31Z3dHRErVZTWFg22uHg6Ghsc3B0oFCtNmnGGzl5OeLZ0pPzm8/zSeh/8b3fl7HfPEF6zFdkxpp+JPMapUrJyNmDOL0piqyLORXaPILc6TGhM79M2WyecFcpVQpGTOlJ5K44si7nARC5K54R/+6JhZUKnVbP+g/3UKrRmjXjQ2/3IXJbHFmXcgnu6Y9HM1ei9l5gyRM/4dPagzEfDCLzYg6Ziblmyqhk5MwBnN4SXeGx/mTw11jaWND2wRDyUsw/l/XGc2lpY8G3L/9OamwWtk7WDJ7cjYfe7sPP07aZJd+OL4+w86ujeAe749e6MbpSnVly3M6Ob4+z87vjeLdwx6+lp3F0GGBx2HosrVS06RVAXob5fi9WyNjqhowvrcfSWkWbnubNWN4v7/xM8rkktCVaHni8C5N/e5X3H5hOeny6uaMJYTYmXxVk9uzZ2NnZ8dRTT5n60Lek1Wp57bXX6Nq1KwMGDDB3nBqxs7NHXVBQYVtBQQH29vbY2dkZb1+jLlBjd5t56aZQWqxFV6Jj76f70JfqSTyUyIUDF2neu7n5QingodkD0Wv1bJtfcd6gq68zT3w6gh3/2cvlE2Z8UaWA4a/3RKfVs2P5XwD4d2hC33H3sfrtbSx6eCWr3trG0Fe64tnM1WwZR0zrja5Uz/bPDgKgLdGiK9Vx4IeT6LV6Lp1KJfFEMgH3+5gv44z+ZRkX7bupubRYy/G1ZxgxvT92rpVfd2ESlZzL0mItKdGZGPQGCnOK2f7ZIZqF+mBla77r0Q16A1fOZ+DobkvHwS3MluN2DAa4Ep2Jg5stHfoHVmgrLdFxYlccw158ADtHazMlLJfR1ZYOA27IqCmX0cl8Ga9JOBxPcUEx2hItB37YT8zBWNoN7WDuWKIeMtTBf3fqjz/+YPTo0YwaNYqRI0eybVvZQERCQgJPPPEEQ4YM4YknnuDChQt39bOatLCeP38+Fy9e5JNPPkGpVOLl5UVSUpKxPSsrC6VSeVej1cuWLWPUqFGMGjWKQ4cOVXkMnU7Hv//9b5ydnXn33XeN+82cOdPYT3x8/E39JCUl4eVl+nm2txIYFER01PUpFIWFhVy+dInAoCCcnJ3x8PAgOur6W3RRUecJDAoyR1SjtHOVrRBg3veLhr/XH3s3W36bugW97vpokVMTR8YuHcn+FUeI3BxtxoQwbHI37F1sWD/vT/S6svPl2dyNS2dSSYnNAgOkxGSSHJ2Jf0fzPEcfnNITO1db1s3cZcyYHn/zyhrmfHvwwbf7Yu9my9q3wys81uUplAosbCxw9DDfi9DKzuWNjBcGKRUmTFY5pUpp8rn9d0qpVBhXAilPoVBgYWWBg5utGVJVpFTdJqO1BQ6u5s94E4MBhfmfgqIeMhhq/+vOjm9g6tSpLFiwgPXr17NgwQLefPNN9Ho9M2bM4MknnyQ8PJwnn3yS6dOn39XParLC+qOPPiIyMpIlS5ZgZWUFQNu2bSkuLubIkSMArF69mqFDh97VccLCwli/fj3r16+na9eutz2GXq9n2rRpqFQqPvjgAxTlfiPMmDHD2E/z5s3p1asXp0+fNr6SWb16NcOGDburrDWh1WrRaDTodHp0Oh0ajQatVkv/gQOJjYlhx7ZtaDQaPl+2lBbBwTRrXjb6O2LUKP63fDl5ubkkxMfz25o1jBr9sEkyK1QKVNYqFEoFSqWy7HuVgsSIRHKTcukxqQcKlQLfUF/8u/kT/2e8SXLdaMhbfXBv5sqa1zaj1Vx/K9vBw54nl4/i6M+nOf6reec2Dn65C+6+zvw6+w+0JdczpsRk4NvG0zhC7dncFd/WnqSbYZm4wa92w93fmV/f3VEh46VTKeSlqen2j/YolAp82njStKMXCUeumDzjkKm9cA9w5Zc3tlR4rAM6+9I42B2FUoGVnSUDJnenOE9TYV6zKd3qXHq1bISbrxMowMbJmoGTunLxRDIl6tLb9Fb77Jysadm9KZY2FiiUCgI6NKFlD38unk4FypaIVFkqb/repBkdrQnp4oeltQqFAgLaNaZVt6Yknk3Fv40nnv4uKBRgZWNBvyc7oFGXkJmUZ9qMTtaEdK0k45lU/NvekPH/zJPxRrbOdrQZ1BYLa0uUKiVdxnYjuGcIkdtOmzWXaDjy8vK4fPnyTV95eZX/21AqleTnl03ty8/Px9PTk+zsbM6ePcuIESMAGDFiBGfPniUrq+bXUSkMJlgDJSYmhhEjRhAQEGBcys7X15clS5Zw7NgxZsyYUWEpvEaNGgEwadIkTp06RWpqKp6engQHBxtX4rhd241udYzdu3fz4osvEhwcjFJZ9gv/vvvuY8aMGZX2s2PHDhYuXIher6dVq1Z8+OGHxmkWjz76KKmpqWRmZuLh4UGvXr344IMPqn2Oim8xYnajZYsXs3zpkgrbXnp5ImGTJnHowAHmfTCH5KQk2rVvz6y58/CpZB1raxsb/jl+wh2vY70oYF7VO1Wi92u96P167wrb9ny0hz0f76VRcCNGLBiOZytPci/nsnvhn0RtrfnFi6rGLjW6n1MTRyZufAatRlthVHDr3N24+jnT68UHKCmsWLT8p/cXNcvoVbNVJpw87Hnpq0fQlugqjLBuWxLB2T8T6DQ8hNCRLbF3saUwr5jjm6I4vO5cjY5lKKrZ3GwnT3vCfnwcbUnF8xj+8QHO7oqnkb8LQ6f0wKOZK3lpavZ8dZSY/Yk1OhaAQX3nF+s5NXHg5bVP3fxYz9+DTquj9wudcfRwQKvRknQ2jT+XRVR6EWt1Kexr9pb97c6lwWCg93P3Y+diQ0lhKReOJbH7iyOob1h5p7qUNZzqYutkzagpPfHwd0GhUJCXoebY5mhO7Sy7CPyFJQ/hfMOo6+cv/05e+p3PEVbUcJqLraMVI1/pjoefMwqlgryMQo5tj+H07gSCO/vS49E2OLrZoS3RkRKfxZ41p8m4VMM5/zX8a2rraMXIyTdk3HY14wOVZPz5LjIC537eVOP7XuPQyJF/rX8NrxAv9DoDyVHJrJv5G2d31s7gw4eXP6uVfho6Dw/HqncygaPxtX/d1IFNP7J48eKbtk+aNIlXXnnlpu0HDx7kX//6F3Z2dqjVar744gssLCx488032bTp+r+JBx98kIULF9KmTZsa5TJJYS2qVt3C2pxqWlibUk0La1OqaWFtSjUtrE2tJoW1qdW0sDalmhbWplTTwtqk7pG/prVRWNc1Kaxrx9+5sG7RyLLS0WknJyecnCr+ndVqtUyYMIFXXnmF+++/n6NHjzJlyhQWLFjAzJkza7Wwvgd+UwkhhBBCiHtVXYzhVlZA38q5c+dIS0vj/vvvB+D+++/H1tYWa2trUlNT0el0qFQqdDodaWlpd3UNneknvAkhhBBCiAbD3BcvNmnShJSUFOKvfmheXFwcmZmZ+Pv706pVKzZuLPsk5Y0bN9KqVSvc3Gr+qcAyYi2EEEIIIf62PDw8eP/993n11VeNC1XMnTsXFxcX3n//faZNm8bSpUtxcnJi/vz5d3UsKayFEEIIIUSdqcm607Vt5MiRjBw58qbtgYGBrFmzptaOI1NBhBBCCCGEqAUyYi2EEEIIIepMQ1p/TkashRBCCCGEqAUyYi2EEEIIIepMQ/rIFCmshRBCCCFEnWlAdbVMBRFCCCGEEKI2yIi1EEIIIYSoMw1owFpGrIUQQgghhKgNMmItqk2fX2zuCFWy8FWZO0KVdJdzzB2hakqFuRNUi16tMXeEKlk4WJs7QtUU9f/xVjjW//N46Ztt5o5QLR9e/szcEUQDIxcvCiGEEEIIUQsaUF0tU0GEEEIIIYSoDTJiLYQQQggh6kxDmgoiI9ZCCCGEEELUAhmxFkIIIYQQdaYBDVhLYS2EEEIIIeqOoQGtZC1TQYQQQgghhKgFMmIthBBCCCHqTEOaCiIj1kIIIYQQQtQCGbEWQgghhBB1RkashRBCCCGEEHfEJCPW2dnZTJ06lcTERKysrPD392fWrFm4ublx4sQJpk+fjkajwcfHh4ULF+Lu7g7AlClTiIiIID09nWPHjmFvb2/s83ZtN7rVMfR6Pf/4xz8oKioCwMPDg5kzZ+Lr63tH/dxpnruxauVKfl+3lpjoaIYNH87sufOMbREHDzJ3zmxSkpNp2749sz+Yi7ePDwAlJSXMmTmTHdvCsbGxZdz48TwzblydZLxR5+e70OHJTni2bkzkr6f4/eW1ADQK8WD08kdxbeYGQPKJJLa+uYmMqHST5CpPZalk8Bu9CAj1xcbJmpwrefy5LIL4Q5dwD3BlxPR+uPo4A5ASlc72j/aTeSHb5BmHvN2XgC5+2DjZkHM5l92fHSR+/0WUFkpGzRtCk9aeuHg7sXLCbyQevWLSfMaM0/oS0MX3esbFB4k/kFiW8YPB1zO+sNYsGQFC/68j7R9ug0dwI85sOs/Gt8KNbR3HtKPb851xaGTPpWNX2PhOOAVpapNnVFkqGfxKN/zv88bG0Zqc5Dz2rDhK/OGyc2ZhraLfC51p2acZKgslaXFZ/Dhli8lzDn+lK03bNsbS2gJ1ThF//X6e07viUaqUjHi1G02au+Hsac/q93dx6WyayfMBDHv2PpqGNMLSSoU6T8ORHbGcPpBIy84+DPpHB+N+CgVYWlnw/Yd/knYp1yxZr2kc0phHP34cv45NKcgo4Pd31nJ6wymzZhKipuQDYmqZQqFgwoQJhIeHs2HDBvz8/Fi0aBF6vZ433niD6dOnEx4eTmhoKIsWLTLeb8yYMaxfv77SPm/XVt7tjqFUKvnyyy/5/fff+f333+nduzcffvjhHfdzJ3nuloenB8+/+BKjH3mkwvbs7Gxef3UyE1+ZzJ6Dh2jTpi1Tp7xubF+2eDGJFy+ydcdOvvzmG75ZsYL9e/fWeV6A/JR89i76kxM/HLtp+5pnV7MwYC6Lms8jest5Hv3qcZNkupFSpSQ/Vc2PL//Ox4O+Ys8XfzFqziCcmzhSkKFm3dvb+WTI1/x32DfE7L3AqNkDzZIxL6WAleN/46Nen7NnySFGzx+Ks5cjAJePJ7HhnW0UpJu+CKyQMbWAlc+v5aM+X7BnWQSjPyyX8UQyG97bTkGG+TIC5KcVsG9ZBCd/jaywvekDvvR9rSdrJq7nP12XkHM5l9H/GW6WjEqVkrx0NT9O2cIno39g79fHGPluP5waOwAw9F89sHW05svxv/HfR35k5/K/zJLz0NqzfDFxA5+O+5W1C/bSa2w7GjdzBeDK+XQ2fXaQguwis2S75q9tMXw5fQeL/72F9Z//RY+HWuLp58z5w1f47PXNxq+dP50mJ11t9qJaqVIy/qcXObvlDG/7TuXnV1bx1Ipn8QjyNGsuIWrKUAdf9ZVJCmsXFxe6dOlivN2xY0eSkpKIjIzE2tqa0NBQAMaOHcvWrVuN+3Xr1s04Inyj27WVV9UxHB0djd8XFBSgVFZ+Su4ma20aOGgw/QcOxMXFpcL2ndu3ExgUxOChQ7G2tualiROJjooiIT4egA3r1/FCWBhOzs40DwzkkcfGsH7d2jrPC3B+w1miNp2jKKuwwnZNbjG5iTllNxQK9Do9bldHr02ttFjLvhVHyE3JBwPE7U8kNzmfJi0boSkoKdsOoACD3oCrr5N5Mn7+F7nJZRlj914g90oeTVp7otfqOfzjSS6fSEavN9+vnNJiLfu+uCFjUh5NWl3NuOpqRp15fy1GbY8lemcsRTnFFba36BvIua3RZMRmoi/Vs2/ZIfw7++Hi52zyjKXFWvZ/f4K81IKy52TEZXJT8mnSwh03P2eCuvmx9ZMDFOVqMOgNpMZkmjwjQOblPHRaPVA2j9JgAJcmDuh1eo5ujuZKVAYGMz4nATKT88tlNJRl9Lj5XcXWXfw4+9clU8e7iWdIY5y9nNn92S4MegMxf0aTcCie0H90Nnc0IUQVTH7xol6vZ9WqVfTv35/k5GS8vb2NbW5ubuj1enJycm4qHGuqOsd4/vnnOXv2LK6urqxYsaLG/ZhTXGwswSEhxtt2dnb4+vkRFxuLu7s76enphJRrDwlpyR87d5oj6k2mXnwbK3srFEoFu+fuMnccAOxcbXHzcyY94fp0j39t+ydWtpYolAr2/u+wGdOVsXOzxc3fhfS4LHNHuSU7N1vcmrqQHm+eoq8mFIpy31N2w7NFI3LMPIpp52KDm68TGRdz8AppRF6amp7PdKLNwEDUWUXs++440fsumiXbwPH307ZvMyytLUiNzyL+WLJZctzOgCfa0aarH5ZWFqQm5pBwJrVCu6ObLb5B7oT/cMI8AaugUCjwau1d9Y5C1EMNaSqIyQvr2bNnY2dnx1NPPcX27dtNffhK/e9//0Ov1/P555+zbNky3n//fXNHumOFhWpc3SqO9jo6OqJWqyksLBspdig3Ou/g6ECh2rxvx1+zwH8ulnaWdPhHJ3Iv5Zg7DkqVkpEzB3B6SzRZF6/n+WTw11jaWND2wRDyro1gm4nSQsnIuUM4veE8WSae611dSgslI+cM5vTG82RdyDF3nGqJ25vAwx+N4Njqk2RdzKHnxK4Y9AYsbC3NmkupUvDQW32I3BZH1qVcgnv649HMlai9F1gy9id8WnswZs4gMhNzyEw0/QuAHSuOsvOrY3gHu+PXxhOdVmfyDFXZ+dNpdv18Gu/mbvi2cEdXqq/Q3uYBP67EZpKXWXiLHkwnLTqV/PR8+r82kN2f7aJFn2ACewYRuyfG3NGEEFUw6aog8+fP5+LFi3zyyScolUq8vLxISkoytmdlZaFUKu9qBHjZsmWMGjWKUaNGcejQoWofQ6lUVpgnXdN+zMXOzh51QUGFbQUFBdjb22NnZ2e8fY26QI1dHV1gWROlhaUc+eowo5Y/il0jM+ZSwIgZ/dGV6tm+aN9NzaXFWo6vPcOI6f2xc7UxQ0BAAQ/NGYS+VMe2+X+aJ0NVFPDQrIFlGRfsMXeaartwMJE9nx3g0U9HMnHnBHKv5KFRl5BvzhdSChjxZm90Wj3bFx8EQKvRoivVcWDlSfRaPZdOpZJ4IpmA+33MFtNgMHAlKgNHdzs6Dg4yW47bMRjgSlwWji62dOgdUKGtdRdfzkSYfxoIgF6rZ8XYL2g9pA2z4+fRb/IATvx2jJwr9fNFtBBVuTZNrDa/6iuTjVh/9NFHREZG8sUXX2BlZQVA27ZtKS4u5siRI4SGhrJ69WqGDh16V8cJCwsjLCzMeFuv19/yGFlZZW+hu10d6d26datxusSd9FMfBAYFsWH9OuPtwsJCLl+6RGBQEE7Oznh4eBAddZ5u3XsAEBV1nsCg+vXHT6FUYGlriZO3E4Vmurjtwbf7Yu9my5opm9Hr9JXuo1AqsLCxwNHDnsLs4kr3qUvDZwzA3s2On1/5Hb228ozmNnz6AOzd7fh58oZ6m/FWjv54gqM/ngDALcCVHi91JT0mw2x5HpzSEztXW355Z7txbnr5KUrX1Je/M0qlAperF1jWV0qlApdyL+C9m7vh4GxD9PGk29zLtJIjk1g89L/G26/ufJ3DKyPMmEiImqvPhXBtM8mIdUxMDJ9//jlpaWmMHTuWUaNGMXHiRJRKJQsWLGDmzJkMHjyYw4cPM2XKFOP9Jk2aRO/evQEYOnQo48ePr1Zbebc7Rnp6OhMmTOChhx7ioYceYv/+/SxcuPCO+7mTPHdLq9Wi0WjQ6fTodDo0Gg1arZb+AwcSGxPDjm3b0Gg0fL5sKS2Cg2nWvDkAI0aN4n/Ll5OXm0tCfDy/rVnDqNEP10nGGylUSlTWFihUSpTlvm/eN5Am7b1QKBVYOVozeO5QinOKSDfDcnsAQ6b2wj3AlV/e2IJWc/2t7IDOvjQOdi/LaWfJgMndKc7TkGGG6Q1D3umLezM31ry6sUJGKFueTWWluul7UxvyVl/cm7my5l+b6m1GhUqBykqFQqVAqVQav1dZqfBoUXYRspOXIw/OGsTh749RnKcxS87Br3bDvakzv763A23J9XN56VQKeWlquv2jPQqlAp82njTt4EXCEdMuX2jnZE3L7k2xtLZAoVAQ0KEJLXv4c/F02fxllYUSlaXypu9NydbBipD7vbG0VqFQgH8rD1qG+pBY7vdMmy6+RJ9IplRTf6aweLX1xsLaAktbS/q9OgCnJk5E/CCFtRD1ncLQkGaU12PFtxgdvdGyxYtZvnRJhW0vvTyRsEmTOHTgAPM+mENyUhLt2rdn1tx5+FSyjrW1jQ3/HD/hjtexXuA+4472v6bPtH70mda/wrY/P9xF2rk0+r0zACdvJ0qLtSQdvczOWdtJu+Giojth1apmb4U7NXHg5bVPodVoK6xYsXX+HnRaHb1f6IyjhwNajZaks2n8uSyixhcNGopLa5bRy5GJm8ddzXj9+bJ1zh+c2RJN2KZncfGuuFrJ0ge/KVuh404pFVXvU1nGJo5M3PTszRnn7i7LuOGZmzOO+LZmGQG9umYFb69J3eg9qXuFbXsWH+Cvb4/x9A9P4OrnQom6hJNrI/nzk/13taqFhV/NVrpx8rQnbOXjaEsqPifDPznA2V3xNPJ3YejrPfBo5kpempo9Xx8lZn9ijY6ldLWt0f1sHa0ZNaUHHv4uKBQK8jLUHNsSzamdZasRvbD4IZw9K07t+nziBvJqsCSk0sOuZhkdrHhoQigePs4oFJCXVcTx3fGcPlB2rlQWSl6aN4QNXx4mMeru3pm49M22u7p/eSM/GE3XZ7ujslQRfyCWX6esISO+dt45eefCvKp3En8LHh6OVe9kAluPX671Pod2qvwzR8xNCut6orqFtTnVtLA2pZoW1qZU08LapGpYWJtaTQtrU6ppYW1KNS2sTammhbUp1WZhXZeksG44pLA2PZOvCiKEEEIIIRqOhjSEK4W1EEIIIYSoMw2psDb9lSRCCCGEEEL8DcmItRBCCCGEqDOGerMgaN2TEWshhBBCCCFqgYxYCyGEEEKIOiNzrIUQQgghhBB3REashRBCCCFEnWlIH5kihbUQQgghhKgzDaiulqkgQgghhBBC1AYZsRZCCCGEEHWmAQ1YS2Etqs/Cx83cEaqky8g3d4SqKRTmTlA15T2QEbAM8jR3hCoZNFpzR6iSoVRn7ghViv9qs7kjVOn9xIXmjiCEMDMprIUQQgghRJ2RixeFEEIIIYSoBQ2orpaLF4UQQgghhKgNMmIthBBCCCHqTAMasJYRayGEEEIIIWqDjFgLIYQQQog6IxcvCiGEEEIIUQsaUF0tU0GEEEIIIYSoDTJiLYQQQggh6kxDmgoiI9ZCCCGEEELUAhmxFkIIIYQQdabhjFdLYX3PWbVyJb+vW0tMdDTDhg9n9tx5xraIgweZO2c2KcnJtG3fntkfzMXbxweAkpIS5sycyY5t4djY2DJu/HieGTfOJJnvf7ID7Ue1wSPYnbObo9j4zjZjW4dH29JtQmccGtlx6VgSm97dRkG62iS5ygt9qhPtH2mLR0gjzmw8z8Y3txjbWg0LoferPXBs7EheSh67/7OX6B2x5sn4cJvrGadtrZhxcverGfPZ/ZF5MgKE/l/HspzBjTiz6Twb3wo3tnUc045uz3fGoZE9l45dYeM74RSkmfbxVlkoGfRyF/w7NsHWwZrslHz2fHuchKNJAIT09Kfn/3XA0d2OvAw1e747QeyhSybNCKCyVDL4lW743+eNjaM1Ocl57FlxlPjDVwCwsFbR74XOtOzTDJWFkrS4LH6csqWKXmvf8H91x79dEyxtLFDnFPHX2rOc2hEHQNN2jRn0QmecPOxJjs5g82eHyDPDv+/yPkr/pMJtS1sr9nzxJ2te/8k8gYQQfysmmQqSnZ3N888/z5AhQ3jooYeYNGkSWVlZAJw4cYKRI0cyZMgQnnvuOTIzM433mzJlCj179iQkJAS1uuIv49u13eh2x7jmrbfeqrKvXbt2MXToUAYNGsS//vUvioqKgLKidfz48XTp0oUuXbpU+7zUhIenB8+/+BKjH3mkwvbs7Gxef3UyE1+ZzJ6Dh2jTpi1Tp7xubF+2eDGJFy+ydcdOvvzmG75ZsYL9e/fWadZrCtLU7P88glO/namwvWlnX/q+2oNfJv3OR92XkXs5l9ELHzRJphvlpxWwb+lBTv4SWWG7Y2MHRi0azo65f7Co03/ZNf9PRn80Ajs3O/NkXHao8owLH2THvN0suu9Tdi34k9H/GW6WjNdzRnDy14o5mz7gS9/XerJm4nr+03UJOZdzGf2f4SbPp1Qpyc9Qs2raNj55YjX7vj/BqDd74+Rpj4O7LSOm9GDXl0f45PHV7P7qGA/9uyd2zjZmyZmXrubHKVv4ZPQP7P36GCPf7YdTYwcAhv6rB7aO1nw5/jf++8iP7Fz+l8kzAhz69Qyfv7iO//7fz/w29096PtmBxs3dsHW05uE3e7Nv1Sk+fXoNKXFZjJzS0ywZy3vd41/Gr7cC3qS0qITjvx41dywh/tYMhtr/qq9MUlgrFAomTJhAeHg4GzZswM/Pj0WLFqHX63njjTeYPn064eHhhIaGsmjRIuP9xowZw/r16yvt83Zt5VV1DCgrmBUKxW37UavVvPfeeyxfvpzt27djb2/PihUrAFAqlYwfP55vvvmmyjx3a+CgwfQfOBAXF5cK23du305gUBCDhw7F2tqalyZOJDoqioT4eAA2rF/HC2FhODk70zwwkEceG8P6dWvrPC9A1I5YonfFUZRbXGF7UJ9mnN8WTUZcJvpSPfuWR9C0sy8ufs4myVUh47YYonfEUpRTVGG7YxNHivOLiduTAEDs7nhKikpxbepSfzI2dqA4X1NJRtOfR4Co7bFE74ylKKfi492ibyDntkaTEXv18V52CP/OfiZ/vEs1Wvb/eIq8NDUYIO7wFXJSC2gS5I6juz3F6lLj6HX8kSuUarS4eDmYNCNAabGW/d+fIC+1oCxnxGVyU/Jp0sIdNz9ngrr5sfWTAxTlajDoDaTG3DxgYAqZl3LRafVlNwwGMIBLEweCu/qRcSmXqAOJ6Er17F99Co8AF9x8nMySszIdR3ciPz2f2P3meXdHiIbCYDDU+ld9ZZLC2sXFpcJIbseOHUlKSiIyMhJra2tCQ0MBGDt2LFu3Xn97u1u3bri7u1fa5+3ayqvqGNnZ2SxevJi33nrrtv3s2bOHtm3bEhAQYOxny5ayt10tLCzo3r07jo6OVeapK3GxsQSHhBhv29nZ4evnR1xsLHm5uaSnpxNSrj0kpCVxsfXgj0n5FzRXv/UIqvpxNZXk0ylkxGXRon8gCqWC4IFB6Ep0pEWlmzuaUXJkKhlxmZVkzDB3tJtUfLjLbni2aGSmNGXsXGxw83EiIzGHlNhMsi7lEvSALwqlgqCufuhKdaQn5Jg1ozGnrxMZF3PwCmlEXpqans904pVf/sFzX4wmuKe/2bINeqEzr61+gglLRqLOLiL+WBLuTZ1Ju5Bt3KdUoyMntYBGZnjhfCtdnupKxMoIc8cQQvyNmHyOtV6vZ9WqVfTv35/k5GS8vb2NbW5ubuj1enJycm4aka2pqo4xa9YsJk+eXGVRfGM/3t7eJCcn10rG2lBYqMbVza3CNkdHR9RqNYWFhQA4lPsZHRwdKKxiCk1di993kdGLHuTYT6fIvphNr7CuGPQGLG0tzZqrPIPewOm1Zxj90QgsrC3Qler4bfLvlBaVmjuakUFv4PS6M4z+z/DrGV/dUK8yAsTtTeDhj0ZwbPVJsi7m0HNi2eNtYcbHW6lSMOLfPYncGUfW5TwAInfFM+KNnlhYqdCV6ln/4R5KNVqzZbyW86G3+hC5LY6sS7kE9/THo5krUXsvsGTsT/i09mDMnEFkJuaQmZhr8nzbvzjMji+P4B3SiKZtGqMr1WFlY0FhnqbCfhp1KVb15N+3W1M3WvQKZuVL35s7ihB/e/V3fLn2mbywnj17NnZ2djz11FNs377d1IevYPPmzVhaWtK3b1+z5qgNdnb2qAsKKmwrKCjA3t4eOzs7421ra2sA1AVq7OztTZ6zvAuHEtm75CCPfjICa3sr/vr+OBp1CfkpBVXf2UQCuvvTf2offnhqNclnUvFq24THlz/M6gm/knouzdzxAAjo3pT+b/Thh6d/up5x2WhWP/8rqefqz8j6hYOJ7PnsAI9+OhIrBysOf3fs6uOdb55AChg+pSc6rZ4dV+cn+3doQt9/3sfqt7aREpdFkyB3HnmvL7/M2EVaQnYVHdZdzhFv9kan1bN98UEAtBotulIdB1aexKA3cOlUKoknkgm438cshTWUvcC7ci6dNn2a0XFoMCXFWqxvKKKt7SwpqScv+B74RxfiDsSSedE8U2iEEH9PJi2s58+fz8WLF1m+fDlKpRIvLy+SkpKM7VlZWSiVyrsarV62bJlxqsdbb71122P89ddfHDp0iP79+xvbR4wYwf/+9z9WrlzJsWPHAPj444/x8vIiIuL6W4ZJSUl4eXnVOGdtCwwKYsP6dcbbhYWFXL50icCgIJycnfHw8CA66jzduvcAICrqPIFBQWZKe93RVSc5uuokAG7+LvR4sQvpsfVnCkPjVp5cOnyZ5MhUoGxqyJWTyQR09683hXXjlp5cOnJDxlPJBHTzr1eFNcDRH09w9McTALgFuNLjpa6kx5jn8R42uRv2Ljb88v4u9Lqy8RTP5m5cOpNKSmzZxdUpMZkkR2Xi39HLbIX1g1N6Yudqyy/vbDfmTK8kS30ZEVIqFbg0cSAzMZc2/Zobt1taq3Bp4kDGJfMU/jd64P+6sn1ReNU7CiHuWn2eE13bTPYBMR999BGRkZEsWbIEKysrANq2bUtxcTFHjhwBYPXq1QwdOvSujhMWFsb69etZv349Xbt2ve0x3n//ffbs2cOuXbvYtWsXABs3biQoKIgZM2YY+2nevDm9evXi9OnTXLhwwdjPsGHD7iprTWi1WjQaDTqdHp1Oh0ajQavV0n/gQGJjYtixbRsajYbPly2lRXAwzZqX/WEbMWoU/1u+nLzcXBLi4/ltzRpGjX7YJJkVKgUqKxUKpQKFUln2/dVt1+ZTO3k5Muz9gRz+4TjFN7x9bOqMSqXCmDH5dDJ+oT40buUJQOPWnviF+ppljrUxo0qJUlU+Y8rVjB5lGVt54ne/eTJWzKlAeePj3eL64/3grEEc/v6YWR7vwRO74O7nzK+z/kBbojNuT4nJwLe1J57NXAHwbO6KbxtP0i+Yp6ge/Go33Js68+t7OyrkvHQqhbw0Nd3+0R6FUoFPG0+advAi4cgVk+azc7amZU9/LG0sUCgVBHT0omWvABJPpRAdcQmPps4Ed/VDZamk++PtSL+QQ9aVPJNmrEyzrs1x8Xbh2G+yGogQptCQVgVRGEzwMiImJoYRI0YQEBCAjU3ZslW+vr4sWbKEY8eOMWPGDDQaDT4+PixcuJBGjcouZpo0aRKnTp0iNTUVT09PgoODjStx3K7tRrc7RnkhISEcO3YM+1tMkdixYwcLFy5Er9fTqlUrPvzwQ+M0i0cffZTU1FQyMzPx8PCgV69efPDBB9U+R8U6fbX2W7Z4McuXLqmw7aWXJxI2aRKHDhxg3gdzSE5Kol379syaOw+fStaxtrax4Z/jJ9zxOtYftf/vHe1/Ta+Xu9JrYrcK2/YuOchf3x/n6W8fw8XPhZLCEk6tPcOfnx7AoK/5U9JQUrO5sL1e6U7vyT0qbNvz6X72fnaA0Kc60Xnc/di721OYXcjRH44T8dWRGmekihVobpvxle4VM3524HrGZ++7nnHlibvLqKxZRoBek7rRe9INORcf4K9vj/H0D0/g6udCibqEk2sj+fOT/Xf1eFsGed7xfZw87Hnp60fQlujQl/t3t21JBGd3J9BpRAihI1ti72JLYV4xxzdFcXjtuRpnNNRwfraTpz1hKx9HW6I1jlQDhH9ygLO74mnk78LQ13vg0cyVvDQ1e74+Ssz+xBodS+FgVaP72TpZM3pqLzwCXFEoFOSlqzm66TyntpetY+3fvgkDnw8tW8c6JpPNnx6s8TrWF7fW3vKg//jsSazsrPh2/De11ifA+4kLa7U/Ie6Wh4f5FlUob+WfcbXe5//1Caz1PmuDSQprUbXqFtbmVNPC2pRqWlibVA0La5O6i8LalGpSWJtaTQtrU6ppYW1KtVlY1xUprEV9U18K6x92135h/VTf+llYm2wqiBBCCCGEEH9n8pHmQgghhBCizhjqzeXVdU8KayGEEEIIUWca0qRjmQoihBBCCCFELZARayGEEEIIUWdkxFoIIYQQQghxR2TEWgghhBBC1JmGtLKzFNZCCCGEEKLONJyyWqaCCCGEEEIIUStkxFoIIYQQQtQZg77hjFnLiLUQQgghhBC1QEashRBCCCFE3Wk4A9ZSWIvqM5RozR2hSnp1sbkj/C1YhXibO0K1qAJdzR2hSvp0tbkjVKloc6S5I1Tp/cSF5o4ghBBVksJaCCGEEELUGVluTwghhBBCiNoghbUQQgghhBB/DxqNhrlz53Lw4EGsra3p2LEjs2fPJiEhgWnTppGTk4OLiwvz588nICCgxseRwloIIYQQQtSZ+jBgvXDhQqytrQkPD0ehUJCRkQHAjBkzePLJJxk1ahTr169n+vTpfPfddzU+jhTWQgghhBDinpKXl0deXt5N252cnHBycqqwTa1Ws27dOv78808UCgUAjRo1IjMzk7Nnz/L1118DMGLECGbPnk1WVhZubm41yiWFtRBCCCGEqDN18QEx3377LYsXL75p+6RJk3jllVcqbLt06RIuLi4sXryYiIgI7O3tefXVV7GxsaFx48aoVCoAVCoVnp6eJCcnS2EthBBCCCHqoTqYC/Lss8/y8MMP37T9xtFqAJ1Ox6VLl2jdujVvvvkmJ0+e5KWXXuK///1vreeSwloIIYQQQtxTKpvycSteXl5YWFgwYsQIADp06ICrqys2Njakpqai0+lQqVTodDrS0tLw8vKqcS75SHMhhBBCCFFnDIba/7oTbm5udOnShf379wOQkJBAZmYmAQEBtGrVio0bNwKwceNGWrVqVeNpICAj1kIIIYQQ4m9u5syZvP3228yfPx8LCwsWLFiAk5MT77//PtOmTWPp0qU4OTkxf/78uzqOFNZCCCGEEKLu1IP19vz8/Pj+++9v2h4YGMiaNWtq7TgmKayzs7OZOnUqiYmJWFlZ4e/vz6xZs3Bzc+PEiRNMnz4djUaDj48PCxcuxN3dHYApU6YQERFBeno6x44dw97e3tjn7dpudLtjhISEEBwcjFJZNitmwYIFhISEVNrPrl27WLBgATqdjjZt2jBv3jxsbW0pKSkhLCyMyMhIACIiImrlvFVm1cqV/L5uLTHR0QwbPpzZc+cZ2yIOHmTunNmkJCfTtn17Zn8wF28fHwBKSkqYM3MmO7aFY2Njy7jx43lm3Lg6y1le6FOdaP9IWzxCGnFm43k2vrnF2NZqWAi9X+2BY2NH8lLy2P2fvUTviDVJrgoZ/xlKh8c74NnSkzPrzvD7a78D4OzrzOS/JlOiLjHue2DJAfZ+stfkGe+FnCpLJYP/1R3/+3ywcbIiJymfPf87Qvxfl3Fq7EDY6icoKSo17h+x6hQHvj9h0owAw57uSNMWjbC0VqHO03BkZxynD10CoF1XPzoPDMLeyZor8VmE/3gSdZ7G5BkBhr/chaZtGmNpbYE6t5i/Npzn9O54vILc6flYWxo3c8WgN3DpXDo7vz2GOqfYpPk6P9+FDk92wrN1YyJ/PcXvL68FoFGIB6OXP4prs7K3U5NPJLH1zU1kRKWbNJ8Qon6QjzSvZQqFggkTJtClSxcA5s+fz6JFi5gzZw5vvPEG8+bNIzQ0lKVLl7Jo0SLmzSsrFseMGcPbb79N9+7db+rzdm3l6fX62x4DYPXq1bctzKFsDcT33nuPlStXEhAQwDvvvMOKFSuYNGkSSqWS8ePH4+rqyrg6LlY9PD14/sWXOLB/HxrN9T/22dnZvP7qZGbMmk2ffv1Y8umnTJ3yOj+s/gmAZYsXk3jxIlt37CQjI4MJ48YRGBhIj1696jQvQH5aAfuWHqR5r2ZY2Fx/yjk2dmDUouGsCVtL3J4Egvo255FPR7K47xcUZhXWea7yClIK2PfffTTv0xxLG8ub2he0XIBBZ/5fDPU9p1KlJC9NzY//2kReWgGBXfwYOaMfXz231rjPJyO+r5Oll+7EX9tj2fbjKXQ6PW6e9jz+SjdSL+dhZWNBzxEt+XnxQbLT1fR7pA3Dn72Pnz87aJach9afY+sXh9Fp9bh5OzL23X6kXczGxt6Sk7viuHAqBb3OwMBx9zHsxQf4Zf4ek+bLT8ln76I/CewfhIWtRYXta55dTW5iDgqlgs7Pd+HRrx7n8x5LTJpPCCFMzSQXL7q4uBiLaoCOHTuSlJREZGQk1tbWhIaGAjB27Fi2bt1q3K9bt27GkeUb3a6tvKqOUV179uyhbdu2xo+5HDt2LFu2lI28WlhY0L17dxwdHe+43zs1cNBg+g8ciIuLS4XtO7dvJzAoiMFDh2Jtbc1LEycSHRVFQnw8ABvWr+OFsDCcnJ1pHhjII4+NYf26tZUcofZFbYshekcsRTlFFbY7NnGkOL+YuD0JAMTujqekqBTXpi6V9FK3zm85T9TWKIqyi6re2Yzqe87SYi37vz1OXmoBGCDu0CVykwtoEtLI3NEqyEwpQKfTA2Cg7F1Kl0Z2BLbxJPpEMpkpBeh1Bg6Fx+AX5I6zu515cl7JQ6e9mvPqBTsung4knEwhOuIyJUVatCU6jm2LxSfY9Of4/IazRG06R9ENL4Q1ucXkJuaU3VAo0Ov0uDWr+cVAQoh7nL4Ovuqpao9Y5+Tk8NVXX3Hu3DkKCyv+El25cmW1D6jX61m1ahX9+/cnOTkZb29vY5ubmxt6vd74ee21oTrHePrpp9HpdPTu3ZtXXnkFKyurKvvx9vYmOTm5VjLWhrjYWILLTWGxs7PD18+PuNhY3N3dSU9PrzDFJSSkJX/s3GmOqEbJp1PIiMuiRf9AYnfH06J/ILoSHWn18O3iyX9NBgPE741nx+wdFGXVz8K2vuW0c7XBzc+JjIRs47aw1U8AcOHIFf5Y/hdFZppmMeCxtrR5wA9LKxWpl3JJOJuGl78LKK7vY/yELi9HcjNN+y7KNQP/eT9tewdgaW1BakI28Sdu/r3j19KDjMs3fwKZuU29+DZW9lYolAp2z91l7jhCCFHnql1YT5kyhZKSEoYNG4atrW2NDzh79mzs7Ox46qmn2L59e437qS27d+/Gy8uLgoIC3njjDZYsWcJrr71m7lh3rLBQjesNy8M4OjqiVquNL4Qcyo2oOzg6UKhWmzTjjQx6A6fXnmH0RyOwsLZAV6rjt8m/U1puDq65FWYV8uXQL0k5k4Kdqx3D5g7j4cUP8+OTP5o7WgX1MadSpeChd/oSGR5L1qVcLG0s+PbF9aTGZmLrbM3gV7vz0Lt9+XlquFny7VwTya5fIvFu5opvkDs6rZ6Ec+mMePY+Tu6/SE66mq5DWmDQG7C0UpklI8COr4+y85tjeAe749fKE51WV6Hdw8+Zbo+0Zu1/9pkp4a0t8J+LpZ0lHf7RidxLOeaOI4QwE5ljXYnjx49z6NChSkdzq2v+/PlcvHiR5cuXo1Qq8fLyIikpydielZWFUqm8q9HqZcuWGad6vPXWW1Ue49oi4A4ODjz22GPGz4ufOXMmx44dA+Djjz/Gy8urwkWJSUlJd7WAeG2zs7NHXVBQYVtBQQH29vbY2dkZb1tbWwOgLlBjV8W88roW0N2f/lP78MNTq0k+k4pX2yY8vvxhVk/4ldRzaWbNdk1pYSnJp8pGCNUZara8s4XXT76Olb1VhQsFza3e5VTAiLf7oivVs/2/B8oyFmtJic4AoDC7mO3/Pcik357EytaywgWNpmQwwJX4bFqF+tKhpz/H91zgwJYoRj4XipWNBcd2x1Oi0ZJv4osCb85p4EpUBq17+NNxYBDHwmMAcGnswKNv9mbXd8e5EpVh1oy3UlpYypGvDvPvuGksfeBTCjPM+4JeCCHqUrUL65CQEFJSUmjatGmNDvTRRx8RGRnJF198YSzO27ZtS3FxMUeOHCE0NJTVq1czdOjQGvV/TVhYGGFhYcbber3+lsfIzc3F2toaGxsbtFot4eHhtGrVCoAZM2ZU6NfT05PZs2dz4cIFAgICWL16NcOGDburrLUpMCiIDevXGW8XFhZy+dIlAoOCcHJ2xsPDg+io83Tr3gOAqKjzBAYFmSltmcatPLl0+DLJkalA2dSQKyeTCejuX28K65tcfdGtUCpuv5+5mTnng2/0ws7Vhl+mbUN/i4spDddC1oOPqVIqFbg0KnuheWLfRU7suwiAq4c9XQe3ICM535zxjJQqJS6NHQBwamTH42/35eDas5y9mre+UigVWNpa4uTtJIW1EA1QAxqwvn1h/csvvxi/79q1KxMmTOCRRx6hUaOKF8mMGTPmtgeJiYnh888/JyAggLFjxwLg6+vLkiVLWLBgATNmzKiwFN41kyZN4tSpUwAMHTqU4OBgVqxYUWVbeUql8pbHiI+PZ/r06SgUCrRaLZ06deLVV1+t9GdwcHBg1qxZvPjii+j1elq1asU777xjbH/00UdJTU0lLy+P3r1706tXLz744IPbnpea0Gq16HQ6dDo9Op0OjUaDSqWi/8CBfLxoITu2baNXnz58vmwpLYKDada8OQAjRo3if8uX06ZNWzIzM/ltzRpmfTC31vNVRqFSoFQpUSgVKJUKVFYq9Do9yaeT6f7CAzRu5UnquTQat/bEL9SXoz+eMEmumzJaKMtyqhSorFXotXq82nuhydOQGZ+JrYstQ+YM4cL+C2jyzTMv+F7IOfi17rj7u7B6yha0JdenLXi18kBTUELW5VxsHK0Z+Eo3Lh5PokRt2tFqWwcrmrZoRPyZVLSlOpqGeNDyPm82fXcclYUSFw97MpPzcXS1YdAT7Tm2JwGNGUbU7ZysadrGk7hjyWhLdPi3a0zLbk3ZuPggDq62PPFOP45vi+HkzjiTZ7tGoVKitFCW/V+lRGVtgV6rp1mvZhRmFZIamYKlvRX93h1AcU4R6fXw+gkhhAk0oMpaYbjNxJenn3666g4UCr777rtaDdUQFeuqd4nrssWLWb604pJVL708kbBJkzh04ADzPphDclIS7dq3Z9bcefhUso61tY0N/xw/4Y7Xsf5Py//c0f7X9HqlO70n96iwbc+n+9n72QFCn+pE53H3Y+9uT2F2IUd/OE7EV0dqdBwAvbpmb9n3ntKbPlP6VNj253/+JDMuk37T+mHfyB5NvoaEPQnsmLMDdbp5Rt1MldMqxLvqnSpxba1qbYm2wkh1+Ef7MegN9J4Qip2LDSWFpVw4eoXdyw+jvosVTizaN77j+9jaW/HQc/fj4e2EQgl5WUUc33OB0wcTsba14InJ3XFxt6NEoyUy4jL7N52/q78J+ho+BraO1oz6V3c8mrqgUCjIy1BzLDyGU3/E0/2RNvQY05aS4ooF/3+f+61GxyraHFmj+/WZ1o8+0/pX2Pbnh7tIO5dGv3cG4OTtRGmxlqSjl9k5aztpZ1JrdByAsJipNb6vEA2Vh0fdr1ZWHct+OVXrfYaNaV/rfdaG2xbWwnSqW1ibU00La1OqaWEtKqppYW1qNSmsTa2mhbUp1bSwNiUprIW4c/WlsF665mSt9/nyYx1qvc/aUO3ZjaNHj650+yOPPFJbWYQQQgghhLhnVfvixYsXb744xmAwcPny5VoNJIQQQggh/kbq/5vytabKwnrq1LK330pLS43fX3PlyhWCzLyyhBBCCCGEqL8a0qzjKgvr8svr3bjU3n333XfXy+MJIYQQQgjxd1BlYT1p0iQAOnToQK9eveo8kBBCCCGE+BuREeub9erVi/j4eM6fP2/8iOxrqlrHWgghhBBCiL+7ahfWy5cvZ8mSJbRs2RIbGxvjdoVCIYW1EEIIIYSoVAMasK5+Yf3tt9+yZs0aWrZsWZd5hBBCCCHE30hDunix2utY29jY0Pzqx2MLIYQQQgghKqp2Yf3qq68yZ84c0tLS0Ov1Fb6EEEIIIYSolKEOvuqpak8FmTZtGgBr1qwxbjMYDCgUCs6dO1f7yYQQQgghhLiHVLuw3rlzZ13mEPcAg6bU3BGqZCgsMXeEKtl0rf8fqqRwtDJ3hOppbG/uBFXK/nqPuSNU6bW498wdQQjxN2bQ1+Mh5lpW7cLax8cHAL1eT0ZGBo0aNUKprPZMEiGEEEIIIf7Wql0ZFxQUMHXqVNq3b0/v3r1p3749b775Jvn5+XWZTwghhBBC3MsMhtr/qqeqXVjPmTOHoqIiNmzYwKlTp9iwYQNFRUXMmTOnLvMJIYQQQoh7WAOqq6s/FWTv3r3s2LEDW1tbAJo1a8a8efMYNGhQnYUTQgghhBDiXlHtEWtra2uysrIqbMvOzsbK6h65yEkIIYQQQpheAxqyrvaI9ZgxY3juuecYN24c3t7eJCUl8c033/D444/XZT4hhBBCCCHuCdUurMPCwvD09GTjxo2kpaXh6enJhAkTGDNmTF3mE0IIIYQQ97CG9JHm1S6sFQoFY8aMkUJaCCGEEEJUXwP6kO4qC+t169ZV2cno0aNrIYoQQgghhBD3rioL62nTpuHv70+jRo0qHcpXKBRSWAshhBBCiErJVJBynnnmGbZu3Yq9vT2jR49m4MCBshKIEEIIIYQQN6iysH777bd588032bt3L+vWrWPu3Ln07duX0aNHExoaaoqMopxVK1fy+7q1xERHM2z4cGbPnWdsizh4kLlzZpOSnEzb9u2Z/cFcvK9+FH1JSQlzZs5kx7ZwbGxsGTd+PM+MG2eSzKHP3k/7x9rjGeLBmd/PsmHKRmObhY0FA98dQOsRrVBaKEk7l8Z3j/1gklzldX6+Cx2e7IRn68ZE/nqK319eC0CjEA9GL38U12ZuACSfSGLrm5vIiEo3eUaVpZJBk7ri39ELW0drspPz2fP1MRKOXKF1v2YMntzNuK9CocDSxoJvJ20gNTbrNr3WvuGvdKNpu8ZYWlugzinir/XnOL0rHqWFkhGvdqNJczecPR1YPWMnl86mmTTbjVxcbXn2+c5En09ny+/n8G3qwuP/15HSUp1xn53hMZw9nWLybF1f6M59T4bSpE0TTv5ygl/DfgZAZaniiRX/wKeTL67+bvzvweUk7Is3eT4hhKiuBjRgXb2LF1UqFX379qVv377k5+ezbNkynnnmGb766iu6du1a5f2zs7OZOnUqiYmJWFlZ4e/vz6xZs3Bzc+PEiRNMnz4djUaDj48PCxcuxN3dHYApU6YQERFBeno6x44dw97e3tjn7dpudLtj5OTkMGvWLM6cOYOFhQXDhg1j0qRJd9zPneS5Gx6eHjz/4ksc2L8PjUZj3J6dnc3rr05mxqzZ9OnXjyWffsrUKa/zw+qfAFi2eDGJFy+ydcdOMjIymDBuHIGBgfTo1atOcpaXn1rAvk/3E9inORY2FZ9ywz98EKWFkuX9v6Aop4jGbRrXeZ5KM6bks3fRnwT2D8LC1qLC9jXPriY3MQeFUkHn57vw6FeP83mPJSbPqFQqyU9Xs2rqVvLS1AR29mXU2334Kmw9Z/9I4OwfCcZ92w4KpNs/Opi8qAY4tPYMW5dFoNPqcfN2ZOzMAaRdyCY9MZcr5zI4uimKka/3NHmuygwYEkxKcn6FbQX5Gr5YfNBMia7LT87jj4U7CR4QjIWtZYW2C4cusH/pPv7x3VNmSieEEHegAVXW1f6AmPz8fFavXs3zzz/Pjh07ePnll2nVqlW17qtQKJgwYQLh4eFs2LABPz8/Fi1ahF6v54033mD69OmEh4cTGhrKokWLjPcbM2YM69evr7TP27WVV9Uxpk2bRvv27QkPD2fTpk088cQTNeqnunnu1sBBg+k/cCAuLi4Vtu/cvp3AoCAGDx2KtbU1L02cSHRUFAnxZSNZG9av44WwMJycnWkeGMgjj41h/bq1dZ4XIGprFNHboinKLqqw3T3QneBBLdg0bTOFWYUY9AZSzDAyCHB+w1miNp2jKKuwwnZNbjG5iTllNxQK9Do9bldHr02tVKNl/w8nyUtVgwHi/rpMTmo+TYLcb9q37cBAzuyMM0NKyLych05bdgm4gbLfpy6NHdBr9RzdHMWV8xkY9Ob/JRvS2hONRkvihWxzR6nUmQ2RnNt0hsLsis9JXamOA0v3cfHQBQy6BnSpvRBC3AOqHLHetWsX69at49ixY/Tv35833niD+++//44O4uLiQpcuXYy3O3bsyKpVq4iMjMTa2to4pWTs2LEMGDCAefPKpjd069at0v6qaivvdse4cOEC0dHRLFu2zLi/h4fHHfdzJ3nqSlxsLMEhIcbbdnZ2+Pr5ERcbi7u7O+np6YSUaw8JackfO3eaI6qRd0cvcq/k0uf13rR7pC0FaQXs+Xgv57dEmTVXZaZefBsreysUSgW75+4ydxwA7FxscPNxJuNiToXtTp72+LZtzJaPDpgnGDBwQiht+zbD0tqC1Pgs4o8nmy1LZaysVHTv1Yw1P56gXUevCm129la89GoPtKU6YqMz2PdnPNpSKWCFEKKm5OLFcl5++WWaNWvGQw89hI2NDfv27WPfvn0V9nn11VerfUC9Xs+qVavo378/ycnJeHt7G9vc3NzQ6/Xk5OTcNCJbU7c7RmxsLI0bN+add97h3LlzNGrUiKlTp9KiRYs76qe2st6NwkI1rm4VR1IdHR1Rq9UUFpaNeDk4OhrbHBwdKFSrTZrxRk5NnPBs6cn5LVF80vlTfO/zZew3j5Mek0FmbKZZs91ogf9cLO0s6fCPTuReyjF3HJQqBSPe7EXkjliyLudVaGszMJDLZ9LITS0wUzrY8eURdn51FO9gd/xaN0ZXbs5yfdCjTzMiTyZTkK+psD0rs5DvVhwmK6MQJ2cbhj3Uir4Dg9ixJdpMSYUQQtxLqpwKMnr0aDp27EhOTg4pKSmVft2J2bNnY2dnx1NPmX9uoF6v5+TJkzzyyCOsXbuWxx57jLCwMHPHqhE7O3vUBRULqYKCAuzt7bGzszPevkZdoMaujuaBV1dpcSm6Eh17P92HvlRPYkQiFw5epHnv5mbNdSulhaUc+eowo5Y/il0jM547BQx/oxe6Uj07lkTc1Nx2QCCR280zDaQ8g97AlfMZOLrb0nHwzS9WzcXD04GmAW4c/evSTW2F6hKyMspeiOblFrNnVxzBIZW/iyWEEKKa9HXwVU9VOWL94Ycf1trB5s+fz8WLF1m+fDlKpRIvLy+SkpKM7VlZWSiVyrsaAV62bBlbt24F4K233rrtMby8vPDy8jJO7xg8eDBvvPEGWVlZ/PTTT9Xupz4IDApiw/p1xtuFhYVcvnSJwKAgnJyd8fDwIDrqPN269wAgKuo8gUFBZkpbJu18JStr1PO3ixRKBZa2ljh5O1GYYZ4R/2Gv9cDe1YZf3tuJXlfxfPm09sDe3ZbofRfMkq0ySpUSlyYO5o5h5OfvgrOzDS9MKpu+ZWmlQqFQ4P6cPT98daTCvgYAhcL0IYUQQtyTqn3x4gMPPFDp9urOLf7oo4+IjIxkyZIlxnWw27ZtS3FxMUeOlP0xW716NUOHDq1upEqFhYWxfv161q9fT9euXW97jLZt22JnZ0dMTAwAhw8fxtnZGVdX1zvqx5S0Wi0ajQadTo9Op0Oj0aDVauk/cCCxMTHs2LYNjUbD58uW0iI4mGbNy0Z/R4waxf+WLycvN5eE+Hh+W7OGUaMfNklmhUqBylqFQqVAWe77xIhEcpNy6TGxOwqVAt9QX/y7+RP/p+mXDlOolKisLVColCjLfd+8byBN2nuhUCqwcrRm8NyhFOcUkW6G5fYABr/SFXc/Z36dsQttyc3TK9oODCJ6XyIlRVozpAM7J2tadm+KpY0FCqWCgA5NaNnDn4unUwFQWShRWSpv+t6UTh1P4stlh/huxRG+W3GEU8eSSIjL5NfVJ/Hzd8HRyRoAR0drevVrTlx0hskzQtkLEgvrsvOoVCmwsLZAqbp67qxUWFhb3PS9EELUSwZD7X/VUwpDNWeUd+rUiePHj1fYVlpaSs+ePYmIuPnt6PJiYmIYMWIEAQEB2NjYAODr68uSJUs4duwYM2bMqLCEXaNGjQCYNGkSp06dIjU1FU9PT4KDg1mxYkWVbTe63TFOnz7NzJkzKSkpwdbWlnfeeYf27dvfcT93kqcyxdW8un/Z4sUsX1pxqbeXXp5I2KRJHDpwgHkfzCE5KYl27dsza+48fCpZx9raxoZ/jp9wx+tYL2pWs3cver/Wi96vVVzWb8/He9nz8V4aBTdixPwH8WzlSe6VPHYv2E1UeM3ns+rziqreqRJ9pvWjz7T+Fbb9+eEu0s6l0e+dATh5O1FarCXp6GV2ztpO2pnUGme06VqzdwqcPO156bsxaEt06Ms9X7Z9epCzfySgslQycdUTrJvzB4kn7m51FYVjzT4EytbJmlFTeuLh74JCoSAvQ82xzdGcurpCyQtLHsLZs+Lo9ecv/05ees1G/5WdmtTofuV16xWAi6stW34/x/0P+HF/Fz9sbCwoLiolJqrs4sXSSl7EVFfmh1tqdL8Bbw1iwFuDKmzbOW87O+dt543T03D1r3hNxYK288hJrNkKJ6/FvVej+wkh6jcPD8eqdzKB/yzeX+t9TpnUo9b7rA1VFtZPPvkkCoWCEydO0LFjxwptKSkptGjRguXLl9dlxgahuoW1OdW0sDalmhbWplTTwtqUalpYm1ptFNZ1raaFtSlJYS3E35MU1qZX5fuHjz32GAaDgdOnTzNmzBjjdoVCgbu7e7U+IEYIIYQQQjRQ9X/ssNZUWVg//PDD6HQ6du/ezfDhw43zo4UQQgghhBDXVfsjzSMiIrCwkAtkhBBCCCHEHajHFxvWtmpfkj969GhWrVpVl1mEEEIIIcTfTQNaFaTaQ9CnTp3ihx9+YMWKFTRp0gRFubVdV65cWSfhhBBCCCGEuFdUu7B+/PHHefzxx+syixBCCCGE+LuRixdv9vDDpvkwESGEEEIIIe5Fd3Q14q+//sr69etJTU2lcePGjBo1ikcffbSusgkhhBBCiHtdPZ4TXduqXVgvW7aMdevW8dxzz+Ht7U1SUhJffvklaWlphIWF1WVGIYQQQghxr5LC+mZr1qzh+++/N35ENkDPnj156qmnpLAWQgghhBANXrUL66KiItzc3Cpsc3Fxobi4uNZDCSGEEEKIv4kGdPFitdex7tWrF//+97+Jj4+nuLiYuLg4pk2bRs+ePesynxBCCCGEEPeEao9YT58+nVmzZjFy5Eh0Oh0WFhYMHTqU9957ry7ziXokPzvD3BGq5N6jg7kjVE1R9S7mpnC1MXeEakmft8ncEao0JX6GuSMIIYR5yRzrmzn8f3t3HhdVuf8B/DPD6rCDoGxuILigaVG4YBaiUiqjpun16tVECwS1Ms2l8AouuWRWIGb5S2/XsGsqiHVF0cwl9WquZLKHKIisIoMMzPL7g5wcQdZZUD7vXvN6cc5zznM+4uR855nnPGNujnXr1uGjjz5CSUkJbGxsIBQ2esCbiIiIiOip1qTl9u7du4esrCxIJBK1/QMHDtRoKCIiIiJ6Sig4Yl3L3r17ERERAZFIBFPTvz4mFggEOHLkiFbCEREREdETru3U1Y0vrD/55BN8+umnGDp0qDbzEBERERE9kRpdWMvlcq4AQkRERERN04ZuXmz03YezZ89GTEwMFIo2tBghEREREVEj1TtiPXToUAgENWuDKZVKFBYW4quvvoK1tbXacceOHdNWPiIiIiJ6kvHmxRrr16/XVQ4iIiIiehq1nbq6/sL6hRde0FUOIiIiIqInWqNvXqyurkZMTAzi4+Nx584dODg4QCwWIzg4GMbGxtrMSERERERPqjZ082KjC+v169fjypUrWLFiBZycnJCbm4vNmzejvLwcS5cu1WZGIiIiIqJWr9GF9cGDBxEfHw8bGxsAQLdu3dCrVy+IxeIGC+uSkhIsWrQIN27cgLGxMTp37oyIiAjY2tri0qVLCA8Ph1QqhbOzM9avXw87OzsAwIIFC3D27FkUFBTgwoULMDMzU/VZX9ujHneNCxcuYMWKFarjioqKYG9vj3379jWpn6bmaYnYnTuxP24f0lJT8cqoUYhcvUbVdvb0aaxeGYnbeXnw6tsXkatWw8nZGQBQVVWFlStWIOlQIkxN22FGUBD+MWOGVjI+auCbvvD++/Po2NsRl76/gN3Bu1RtbkO7Y+zG8bB2sUHO+Rv4T3AsSnNKdJLrYQZGQgwPG4DO/RzRzsIEJXn3cPzrC8g6fwu9Xu6KEfP++nZRgUAAI1ND7AhLQH56sW4zhj6ScftDGefWkXGubjMCwKszn0Onng4wMjaApEyKc4mpuHoyGwBgaGyAlyZ4wcPbGQYGQtzJuYvvNpzQaT4AGPjmYDz3d2907O2Iy99fxO7g71RtbkPdId44HtYu1sg5fwO7g7/Ty3OSiOip0YZuXmz0cnvKxwzjP27/wwQCAWbNmoXExEQkJCTA1dUVGzZsgEKhwMKFCxEeHo7ExER4e3tjw4YNqvMmTJiA+Pj4Ovusr+1h9V3j2WefRXx8vOrRt29fjB49usn9NCVPS9k72GP2W8EYO3682v6SkhK8O38eQufOw/HTZ9C7txcWLXhX1R4TFYUb2dk4mHQEX23fju3btuHUCd0UNGW37+LI+sM4981Ztf0iOzP8Y+cMHIo8iBWdPsDNizn4+45/6CTTo4RCIe4VSBC76CA2vfYtTu64CPHSobDsYIZrP2Vh07hvVY/D0WdQkntP5wWrWsYJ3+Lkvy5CvGQoLB3+zDj+W9XjcPQZlOTpPiMAnP1vKr5ckojP5x9AXPRp+Ip7oUMnawDAiKn9YGpmjK/DkxD19gEc+89VnecDap6TR9cn4fw3/1PbL7ITYdrO6TgceRARncJx8+JNTNkxVS8ZiYieGkotPFqpRhfWAQEBCAkJwYkTJ5CRkYHjx48jNDQUAQEBDZ5rbW0NHx8f1Xa/fv2Qm5uL5ORkmJiYwNvbGwAwefJkHDx4UHXcwIEDVSPCj6qv7WENXeOBoqIinDp1CmKxuFn9NDZPS/kPHwE/f/9aSx4eOXwYbu7uGBEQABMTEwSHhiI1JQVZmZkAgIT4OLwZEgJLKyt0c3PD+IkTEB9X98i8pv22/yquHUhGRXGF2n6vwD7Iv34bV+MuQyaV4fDqRDh6OcHew0EnuR5WLZXh1L8voyxfAiiBjP/dRGn+PXR0r/136uXvht+OZOgn487LKLvzSMbuj8mYpPuMAFCUdw9yWc1690plzb9/1vZmsO1oDrdnHHHom4u4X14FpRLIv1Gql4y/7U/GtQO/PeY5mY+rcVcgk8qQtPrQn89Je73kJCKiJ0ujp4IsXLgQMTExiIiIwJ07d9ChQweMGjUKISEhTbqgQqFAbGws/Pz8kJeXBycnJ1Wbra0tFAoFSktLaxWOzdXYa8TFxWHw4MFo3759i/rRl4z0dHh4eqq2RSIRXFxdkZGeDjs7OxQUFMDzoXZPzx746cgRfURV6dCjI3Kv5qq2qyuqUJRViA49OqIg9Y4ekwEia1PYOluhMLtUbb+lgxlcvDrgvxt/0U+whzSY8RP9ZfSf8gx6D+oEI2ND5N8oRWbybXTv74Sy4goMCuyJXgNcIblbiV8SriPtQm7DHepIhx4dkVfrOVn053OyQI/JiIieYG3o5sUGR6x//fVXrF+/HsbGxpg/fz4OHz6My5cv49ChQ6iqqsK1a9eadMHIyEiIRCJMndq6Pl7du3cvXnvtNX3HaLaKCgnMLSzU9llYWEAikaCiomZU7uF2cwtzVEgkOs34KBNzE1SWVartqyyrhImFiZ4S1RAaCDD6/SFITkpH8c0ytbbe/m64+dsd3M0v11O6GkIDAUYvekzGYfrPmPTtZXw2NwGx644j7UIu5DIFLGzawd7ZClX3q7Fl4X9xJPYyXpnxHGw7WjTcoY4YmxvX8Zy8r/fnJBERPRkaLKy/+OILPP/883W2+fj4YMuWLY2+2Nq1a5GdnY1NmzZBKBTC0dERubl/jQ4VFxdDKBS2aAQ4JiYGYrEYYrEYZ86cadQ1Ll26hLt372Lo0KEt6kefRCIzSMrVC6ny8nKYmZlBJBKpth+QlEsg0tINlo0lLZfC1MJUbZ+JhSmk96R6SgRAAIxaOATyagWSos/WavYa5obkw/qZYqHyIKNMgaTNj8mop2kgD1MqgVvpRTC3aYdnhnaFrFoOuUyB0z+kQCFX4mZqEXJSCtCll+6n/jxOVXkVTB55Tprq+zlJRPSkUyg1/2ilGiysf//9dwwZMqTOtkGDBiE5OblRF9q4cSOSk5MRHR2tWvfay8sLlZWVOH/+PABg165djZqzXZ+QkBDVzYgDBgxo1DX27NmDwMBAGBoatqgffXJzd0dqSopqu6KiAjdzcuDm7g5LKyvY29sjNeW6qj0l5Trc3N31EVUl//ptOPb5a3qNkcgYdl3tkH/9tt4yvfLOYJjZmCJ+5TEo5Or/4zr3soeZXTuknvxDP+H+9Mrbg2Fm3bozPkwoFMDa3gwFj4ysA63v/pOa56SjattIZAxbPT8niYjoydFgYV1eXo7q6uo622QyGSSNmE6QlpaGL774Anfu3MHkyZMhFosRGhoKoVCIdevWYcWKFRgxYgTOnTuHBQsWqM4LCwvDiy++CKDm5smgoKBGtan9ARu4RmVlJX788ccGp4G0JKsmyWQySKVSyOUKyOVySKVSyGQy+Pn7Iz0tDUmHDkEqleKLmM3o7uGBrt26AQBGi8X4cssWlN29i6zMTOzdvRviseO0kvFRQgMhDE0MITQQQij86+ffEq6iY8+O8ArsC0MTQ/gvHoHbv+XpbX71iLkDYOdqhT3Lj0JWJa/V7uXvjtSTN1B1X6aHdDVGhA2AXScr7Pln68wosjCG5/POMDIxgEAAdOnlgJ4vuODG9QLcTCtEWXEFfF7xgEAogJObLTp5tscf1/J1nvPBc1JgIIBA7TmZ/Odzsg8MTQwxbPHwP5+TnF9NRNRsbWhVEIGygfXyXnvtNYSEhMDf379WW1JSEmJiYrBnzx6tBWwrKuWKRh0XExWFLZuj1fYFzwlFSFgYzvzyC9asWom83Fz06dsXEavXwLmOdaxNTE3xRtCsJq9jvdz6vSYd/4D/kpEYvnSk2r7DqxORtCYR7i91h/jj8bBxtcWN89nYHRyLkhvNXzPYbvAzzTrP0sEMwf+aAFmVHIqH/i4OfXYa137KgoGREKGxkxC38ifcuNTC0UtB806zdDBD8I46Mn7+UMZvJyFuVcszCl0tm3VeO3NjBAb7wN7FEgKBAGXFFbhwJBNX/xxBt3O0wMh/PAt7F0uUFVXgRNw1pF/Ka3bOwthTzTrPf8kI+C8dobYvafUhJK05BPeXuiPw43GwcbX5cx3rXS16Ti7IXN7sc4mIWsLevnXcw/LxktqrsbXUgjWtZ9bAwxosrBMSEvDRRx9h+fLl8Pf3h1AohEKhQFJSEiIiIrB48eLHrv1MjdfYwlqfmltY61JzC2udamZhrUvNLax1rbmFtS6xsCYifWFhrXsNLrc3ZswYFBYW4v3330d1dTWsra1RWloKIyMjzJs3j0U1ERERET1e6x871JhGrWP9xhtvYOLEibh48aJq3eb+/fvD3Nxc2/mIiIiIiFosKioKn3/+ORISEuDh4YFLly4hPDwcUqkUzs7OWL9+fYu/7K/RXxBjbm7+2NVBiIiIiIjq1Aq+IOa3337DpUuXVPeeKRQKLFy4EGvWrIG3tzc2b96MDRs2YM2aNS26TqO/0pyIiIiIqMmUSo0/ysrKcPPmzVqPsrLaS7tWVVUhIiIC//znP1X7kpOTYWJiAm9vbwDA5MmTcfBgy+eCN3rEmoiIiIioNdixYweioqJq7Q8LC8PcuXPV9n366acIDAyEi4uLal9eXh6cnP76Lg1bW1soFArVlOfmYmFNRERERNqjhZsXp0+fjnHjan8fh6Wl+qpWFy9eRHJyMt57Tzcrm7GwJiIiIqIniqWlZa0iui7nzp1DRkYGhg0bBgC4ffs2goKCMG3aNOTm5qqOKy4uhlAobNFoNcA51kRERESkTVqYY91Yb775Jk6ePImjR4/i6NGj6NixI7Zt24ZZs2ahsrIS58+fBwDs2rULAQEtXxubI9ZEREREpD2tYFWQRwmFQqxbtw7Lly9XW26vpVhYExEREVGbcPToUdXPzz77LBISEjTaPwtrIiIiItIefvMiUW32YwfqO0KDLCf20neEBinlre8jsUcVLknUd4RGWZC5XN8RiIiIVFhYExEREZH2tMI51trCVUGIiIiIiDSAI9ZEREREpD1taMSahTURERERaU8bunmRU0GIiIiIiDSAI9ZEREREpD1taCoIR6yJiIiIiDSAI9ZEREREpD1taMSahTURERERaQ9vXiQiIiIioqbgiDURERERaY2SU0GotYrduRP74/YhLTUVr4wahcjVa1RtZ0+fxuqVkbidlwevvn0RuWo1nJydAQBVVVVYuWIFkg4lwtS0HWYEBeEfM2boLPerwS+gU28HGJkYQlJaiXM/pODqz1mwc7LAK2+9AOsO5gCA/KwSHP3mIopy7+ks2wPfxXyIvBupEAoNAADmVraYuSgKSqUSZ4/uwZUzhyC9L0HXHs9i+IQQmJiKdJ7xP1+EIy/noYyWtnjjvc8BABdP/YhfTyagsuIebNo74aUxb8C5S0+dZ/T+ez/0Hdcb9h7t8dsP13FgSaKqrd+EPhg4+3mYtzdDzoVbOLAsEeV3JDrPSEREpA06KaxLSkqwaNEi3LhxA8bGxujcuTMiIiJga2uLS5cuITw8HFKpFM7Ozli/fj3s7OwAAAsWLMDZs2dRUFCACxcuwMzMTNVnfW2Pqu8a33//PXbs2AGhUAgDAwMsXboU3t7eTe6nKXlawt7BHrPfCsYvp05CKpWq9peUlODd+fOwPCISQ19+GdGffYZFC97Fv3d9BwCIiYrCjexsHEw6gsLCQsyaMQNubm4YPGSIVnI+6mzCdSR+dR5ymQK2jhaYtPQl3MkuQekdCfZ/fhplhRUQCIB+w90xOnQAdiw7rJNcj/IbOwt9fYar7bv26zFc+/VnTA5dDdN2Zvjx2004GvcVXpk8Tz8ZA2ehzwv+avvybqTixMF/Y9JbkXBw7oYrZxOx/5t1eGvZV6oiXFfu3SnHyZiz6ObbGYamf/0T0+kFF7z0ji/+Pf0/KM4uwYilL2Psx6Pw72n/0Wk+IiLSsTY0Yq2TOdYCgQCzZs1CYmIiEhIS4Orqig0bNkChUGDhwoUIDw9HYmIivL29sWHDBtV5EyZMQHx8fJ191tf2sPquUVJSgtWrV+Prr79GfHw8QkNDER4e3uR+mpKnpfyHj4Cfvz+sra3V9h85fBhu7u4YERAAExMTBIeGIjUlBVmZmQCAhPg4vBkSAksrK3Rzc8P4iRMQH7dP63kfKLpVBrms5u4FpVIJJZSwdjCHtKIaZYUVNQcJBFAqlKrR69Yi49o59HlhGCyt28PYpB2ef3kcUi6fQnWVtOGTdaSspAB2HVzRwcUNAoEAvZ59CfclZagoL9N5lpTD6Ug9ko77pZVq+7u/5IbfD6aiML0IimoFTsacQefnXWHtaqXzjEREpEMKLTxaKZ0U1tbW1vDx8VFt9+vXD7m5uUhOToaJiYlqhHjy5Mk4ePCg6riBAweqRoQfVV/bw+q7hlKphFKphERS81H0vXv30LFjxyb305Q82pKRng4PT0/VtkgkgourKzLS01F29y4KCgrg+VC7p2cPZKSn6zSj//T+mP/VOAStfwWS0kpkXs5TtYVtEeOd/xuPYdP642zCdZ3metjJ/+5E9PLpiI1agpyMZNV+tflhSiXksmqUFObqISFwMnEnNkfMwK6YpaqMXTz7Q6lUIO9GKhQKOZLPHYW9Y1eYWVjrJePjCAQP/YyaDYfu7fWUhoiISLN0PsdaoVAgNjYWfn5+yMvLg5OTk6rN1tYWCoUCpaWltUZkm6u+a9ja2iIiIgLjxo2DpaUlFAoFvvnmmyb3o6msLVFRIYGNra3aPgsLC0gkElRU1IwIm1tYqNrMLcxRIdHt3NakHRdx5F8X4dTdDq49HVQj2AAQFRwPIxMD9PbtgrJC/cy5fXHUNNg5uEJoaIiUSyex7+vV+MfbG9HFsz/OH4uD5zODYdrODP87VjPSL6uq0nnGIa9MhV0HVwgNDJFy+STidqzBtPkfw8q2A7p7DcB3Wz6AEkqYmJph/BsfQPBwJatnGSeyMG7jaFzYdRnF2aXwDR0ApUIJw3ZG+o5GRETaxKkg2hMZGQmRSISpU6fq+tK1lJeXY+fOnfj+++9x7NgxLF68GGFhYU/k3asikRkk5eVq+8rLy2FmZgaRSKTafkBSLoFIS/PA66NUArdSi2Bu0w7PDHNTa6uWynHpaAZeeesFiCxNdJ7NsZMHjE3bwdDQCL29X4Zz5x7IvP4r+jw/DJ79huA/Wz7E9o/no5NbHwCAubXuP6Fw7OQBY5M/Mz73Mpy69EDW9QtIPncEv50/iunvbMLbK7/DK5PmI27HapSXFes84+P8cfoGjn/+C177LBChR2bh7q0ySCVVuHdb9zeqEhERaYNOR6zXrl2L7OxsbNmyBUKhEI6OjsjN/evj9OLiYgiFwhaNAMfExKimaCxZsqTeaxw8eBAWFhbo1q0bAODVV1/FkiVLUFJSgu+++67R/bQGbu7uSIiPU21XVFTgZk4O3NzdYWllBXt7e6SmXMfAQYMBACkp1+Hm7q6ntIDQQABrh9pzqQUCAQxNDGFu0w4VZXqew/znaK9AKMTgkZMxeORkAMAfKZdgbmULC0vb+s7WCQEEUEKJO3lZ6NbDGzb2NZ+qdPXsDzMLG+Rmp8Cjz0A9p/zLr99ewq/fXgIA2HaxweDgAShIK9RvKCIi0q4nb7yy2XQ2Yr1x40YkJycjOjoaxsbGAAAvLy9UVlbi/PnzAIBdu3YhICCgRdcJCQlBfHw84uPjMWDAgHqv4eLigmvXrqGoqAgAcObMGZibm8PGxqZJ/eiSTCaDVCqFXK6AXC6HVCqFTCaDn78/0tPSkHToEKRSKb6I2YzuHh7o+uebhtFiMb7csgVld+8iKzMTe3fvhnjsOJ1kFlmawHOAK4xMDCAQAF36dEDPgZ1w47d8dPZygENnawgEgLGpIV7++zOQSqpQlKvbm+4q70vwR8pFyKqroJDL8fuFn3Ez8xq6ePbH/Yp7KC28DaVSiaL8HBxL+BoD/V+HQKjbD3wq70vwR+pDGS8ex82sa+jq0R8dXdyRmfIrSotqcmanXUZJYS7ad3DVaUYAEBgIYGBsAIGBoGa1nT9/NjA2gH33mlF+S0cLvBoxHOe+uYBKfb+BIiIi0hCBUgfzHtLS0jB69Gh06dIFpqamAGqK2ujoaFy4cAHLly9XW8Kuffuam5nCwsJw5coV5Ofnw8HBAR4eHti2bVuDbY+q7xpff/01/vOf/8DIyAjGxsZYvHjxY5fba27WxqiUN+4W15ioKGzZHK22L3hOKELCwnDml1+wZtVK5OXmok/fvohYvQbOdaxjbWJqijeCZjV5HeuoGXuadPwD7SyMEThvEOxdrSAQClBWWIELh9Jw9VgWPF5wweDXesPCVgRZlRy3M4tx/D9XUZhzt1nXspzYq1nnVZTfxd5tK1FccAtCgRC2Ds4YNPJv6OLRD8UFuYj7ejXulRainZklnvUdDe+hgc26DgAo5c37X66i/C72bV+F4ju3IBQKYWPvjMEj/obO3Z+BUqnEL4d34dqvx1B5vxwWVnZ44eXx6PXsS826VuFDa0831ZCwgXgxbJDavuNRv+B/Oy5g2r8nwcbVGlWSKlzel4yfN52CUtH8f4LePPFms88lInra2dtbNHyQDmyY/r3G+3xvxwSN96kJOimsqWGNLaz1qbmFtS41t7DWpeYW1rrUksJal1hYExE9XqsprP+xW+N9vveviRrvUxN0fvMiEREREdHTiF9pTkRERETa0/o/qNUYjlgTEREREWkAR6yJiIiISGtacpP6k4aFNRERERFpTxtaJ4NTQYiIiIiINIAj1kRERESkPW1nwJoj1kREREREmsARayIiIiLSHt68SERERESkAW2nruZUECIiIiIiTeCINTWaorRS3xEadDc2Wd8RGlR04Jy+IzRoQeZyfUcgIqKnBZfbIyIiIiKipuCINRERERFpD29eJCIiIiLSgLZTV3MqCBERERGRJnDEmoiIiIi0RsmbF4mIiIiIqCk4Yk1ERERE2sMRayIiIiIiagqOWBMRERGR9ij0HUB3WFgTERERkfZwKggRERERETUFR6yfMLE7d2J/3D6kpabilVGjELl6jart7OnTWL0yErfz8uDVty8iV62Gk7MzAKCqqgorV6xA0qFEmJq2w4ygIPxjxgydZDYwFGJ4iA869+uIduYmKLl9D8f/dRFZv+YCADx9O8N3yjOwsBOhrFCC499cQvqZHJ1ke9ioUB906t0BRiaGkNytxP8SruPqT5lwdLeD7+te6NDVBkqFEjnXCnBkxwVISit1nnHgm4Px3N+90bG3Iy5/fxG7g79TtbkNdYd443hYu1gj5/wN7A7+DqU5JTrPSEREpKbtDFjrZsS6pKQEs2fPxsiRIzFmzBiEhYWhuLgYAHDp0iUEBgZi5MiRmDlzJoqKilTnLViwAL6+vvD09IREIlHrs762R9V3jT179mDMmDEYNWoUgoODUVpa2qx+mpKnJewd7DH7rWCMHT9ebX9JSQnenT8PoXPn4fjpM+jd2wuLFryrao+JisKN7GwcTDqCr7Zvx/Zt23DqxAmt5XyY0ECIe4USxC45hE2Td+Hkvy9BvOhFWDqYwdy2HUa/OxhHt53Hpkm7cOzrCxjzni9EVqY6yfawM/G/Y+u8A/gsaC/2bTiBIX8W06ZmRrh8JANb5x3AF3MPoKqyGq8Ev6DzfABQdvsujq5Pwvlv/qe2X2QnwrSd03E48iAiOoXj5sWbmLJjql4yEhERtVU6KawFAgFmzZqFxMREJCQkwNXVFRs2bIBCocDChQsRHh6OxMREeHt7Y8OGDarzJkyYgPj4+Dr7rK/tYfVdIyMjA5s2bcKOHTvwww8/oG/fvti4cWOT+2lKnpbyHz4Cfv7+sLa2Vtt/5PBhuLm7Y0RAAExMTBAcGorUlBRkZWYCABLi4/BmSAgsrazQzc0N4ydOQHzcPq3nBYBqqQynYq+g7I4EUAIZ526hNL8cHd3tYNHeDJWSatXodeb5W6iulMG6o7lOsj2s6GYZ5LKaOyyUypqHdQdzZF2+jdSzN1F1XwZZlRwXEtPh7NFe5/kA4Lf9ybh24DdUFFeo7fcK7IP86/m4GncFMqkMSasPwdHLCfYe9nrJSUREpKJQav7RSumksLa2toaPj49qu1+/fsjNzUVycjJMTEzg7e0NAJg8eTIOHjyoOm7gwIGws7Ors8/62h5W3zVSU1PRs2dP2NraAgCGDh2KhISEJvfTlDzakpGeDg9PT9W2SCSCi6srMtLTUXb3LgoKCuD5ULunZw9kpKfrIypE1qawdbZE4Y1S3E4vQvHNu3B/wQUCoQDuA1whr5aj4I9SvWTzn/kc3t7+GmZtfBWS0kpkXsyrdYxrT3sU3izTQ7rH69CjI/Ku5qq2qyuqUJRVhA49OuoxFREREf4ardLko5XS+RxrhUKB2NhY+Pn5IS8vD05OTqo2W1tbKBQKlJaW1hqRba76rtGjRw9cvXoVOTk5cHFxwYEDB1BRUVHn9XWRtSUqKiSw+fMNwgMWFhaQSCSoqKgZ3TS3sFC1mVuYo0KLU1YeR2ggwOgFvkg+moHiP4vT5KOZGP2eLwyNDSCXKRD/0XFUS2U6zwYASf/3K458fQFOHnZw7eUAuUyu1m7fyQoDx/fCvg0n9ZLvcYzNjSEpVP/7rCy7DxMLEz0lIiIiant0vipIZGQkRCIRpk7V//zPrl274oMPPsA777yD119/HVZWVgAAQ8Mn755OkcgMkvJytX3l5eUwMzODSCRSbT8gKZdAZGam04wQAKPe9YVcpkDSlpo5wp2f6YiXZjyLXUsPYcO4nYhdcggBcwfAoauNbrM9RKlU4lZKISxs26Gfv7tqv3UHc7z2/os4uuMibqUU6i1fXarKq2BioT4v3dTCFNJ7Uj0lIiIi+pNSC49WSqeF9dq1a5GdnY1NmzZBKBTC0dERubl/fXxdXFwMoVDYohHgmJgYiMViiMVinDlzpsFrjBo1Ct9//z12796NQYMGoUOHDjA3N29yP/rm5u6O1JQU1XZFRQVu5uTAzd0dllZWsLe3R2rKdVV7Ssp1uLm719WV1rwybyDMrE0Rv+ZnKOQ1/1c4dLNFzm/5uJ1eDCiB22lFyEstQud+jjrNVhehUAjrDjVzvS3bi/D6spdwet81XDuZredkteVfvw3HPn/9zoxExrDtaof867f1mIqIiKht0VlhvXHjRiQnJyM6OhrGxsYAAC8vL1RWVuL8+fMAgF27diEgIKBF1wkJCUF8fDzi4+MxYMCABq9RUFAAAJBKpfjss88wc+bMZvWjKzKZDFKpFHK5AnK5HFKpFDKZDH7+/khPS0PSoUOQSqX4ImYzunt4oGu3bgCA0WIxvtyyBWV37yIrMxN7d++GeOw4neUeMccHdi5W2BP5E2RVf02vuJ1WCJfeDqoRaoduNnDp5YCCP3S7TJzI0gQ9BrrCyMQQAoEAXfp2RI9BnZD9Wz7Mbdph0gcv42JiGi4nZeg016OEBkIYmhhCYCCAQFjzs9BAiN8SktGxZ0d4BfaBoYkhhi0ejtu/5aEgtUCveYmIiJQKpcYfrZVAqdT+DPC0tDSMHj0aXbp0galpzcfVLi4uiI6OxoULF7B8+XJIpVI4Oztj/fr1aN++ZsWFsLAwXLlyBfn5+XBwcICHhwe2bdvWYNuj6rvGrFmzkJubi+rqarz66quYP38+hMK63280N2tjVMob932fMVFR2LI5Wm1f8JxQhISF4cwvv2DNqpXIy81Fn759EbF6DZzrWMfaxNQUbwTNavI61p+N3dmk4x+wtDdD8P+Nh6xKDsVDf85D0Wdx7ecs9B/lCe/AHjCzboeKskpc/CEF5+J+b9a1BObGzTqvnYUJxO8Mgn0nawgEApQVSnAhMQ1XjmZi0Gu9MXiCF6oqq9XO+fSNvc26VtGBc806DwD8l4yA/9IRavuSVh9C0ppDcH+pOwI/HgcbV5s/17HehZIbzXuDsiBzebMzEhFR62Bvb9HwQTqwdvjXGu/z/cNvaLxPTdBJYU0Na2xhrU/NLax1qbmFtS61pLDWFRbWRERPPhbWuvfk3aVHRERERE+ONjSEq/NVQYiIiIiInkYcsSYiIiIi7WnFNxtqGkesiYiIiIg0gCPWRERERKQ9bWidDBbWRERERKQ9nApCRERERERNwRFrIiIiItKatvSVKRyxJiIiIiLSAI5YExEREZH2tKE51iysiYiIiEh7OBWEiIiIiIiagiPW1GgCYwN9R2jQjfhj+o7QoPDsdfqOQEREpDttaCoIR6yJiIiIiDSAI9ZEREREpD1taMSahTURERERaQ3XsSYiIiIioibhiDURERERaU8bmgrCEWsiIiIiIg3giDURERERaQ/nWBMRERERUVNwxJqIiIiItKcNzbFmYU1EREREWqPv5fZKSkqwaNEi3LhxA8bGxujcuTMiIiJga2uLS5cuITw8HFKpFM7Ozli/fj3s7OyafS1OBSEiIiKip5ZAIMCsWbOQmJiIhIQEuLq6YsOGDVAoFFi4cCHCw8ORmJgIb29vbNiwoUXX0klhXVJSgtmzZ2PkyJEYM2YMwsLCUFxcDAC4dOkSAgMDMXLkSMycORNFRUWq8xYsWABfX194enpCIpGo9Vlf26PqO7a+6z+quVk1KXbnTvxt4gR4P9MXHy5dotZ29vRpiEe9Cp9n+yNoxnTk3rqlaquqqkL4smUY9Lw3/IYMwb+2b9daxrqMmjcQIV+Nw7xvJiLo89HoM8xN1dapTwfM/GwU3v72dUxaMQyW9iKdZnsc2062CN4XirW3PsaqrI8wceMkCA34XpSIiKhJFEqNP8rKynDz5s1aj7KyslqXt7a2ho+Pj2q7X79+yM3NRXJyMkxMTODt7Q0AmDx5Mg4ePNiiP6pOqoTmvlOYMGEC4uPj6+yzvrbGHtuUdyotyapJ9g72mP1WMMaOH6+2v6SkBO/On4fQufNw/PQZ9O7thUUL3lW1x0RF4UZ2Ng4mHcFX27dj+7ZtOHXihNbzPnBm3zVsDY7HZ9N2Y99HxzHkb33RoZsN2lmYYOzCITgZewWfT/8etzOKMOZdX53lqs/rn/4N5XfuYVm39/HRgNVw9+2OIW8O1XcsIiKiNm/Hjh0YNmxYrceOHTvqPU+hUCA2NhZ+fn7Iy8uDk5OTqs3W1hYKhQKlpaXNzqWTwrq57xQGDhz42Hku9bU19timvFNpSVZN8h8+An7+/rC2tlbbf+TwYbi5u2NEQABMTEwQHBqK1JQUZGVmAgAS4uPwZkgILK2s0M3NDeMnTkB83D6t532gKOcu5DIFgJq5VkoA1h0t0H2ACwpz7iL1dA7k1Qr88t1V2He2hq2zpc6yPY5dZztc2PsrZFIZ7uWX4drha+jYy1HfsYiIiJ4sWhixnj59Oo4cOVLrMX369HqjREZGQiQSYerUqVr5o+r85sXGvlN4tHDUhqZcX99ZG5KRng4PT0/VtkgkgourKzLS02FnZ4eCggJ4PtTu6dkDPx05otOM/rO94fVyNxiZGCI/sxiZF3IxZMozKMguVR1TLZWjNL8c7V2tUHyr9sc5unQs+iiem+CNtOOpENmI0GtEb/wQuV+vmYiIiJ44Wrh50dLSEpaWTRuEW7t2LbKzs7FlyxYIhUI4OjoiNzdX1V5cXAyhUNiiuk7nE0a1/U6hraqokMDcwkJtn4WFBSQSCSoqKgBArd3cwhwVWpwLXpekL8/j06m78e2yw0g9kwN5tRxGpoaQVlSpHVdVUQ2jdvpfsCb9ZDo69nLC+vxPsDL9I+RcyMaV/Zf1HYuIiIiaaOPGjUhOTkZ0dDSMjY0BAF5eXqisrMT58+cBALt27UJAQECLrqPTwvrBO4VNmzZp7Z1CTEwMxGIxxGIxzpw5U++x9V3/0X60kVWTRCIzSMrL1faVl5fDzMwMIpFItf2ApFwCkZmZTjMCgFKhxK3rBbCwE6HfyO6orpTBuJ2R2jHG7YxQfV+m82wPEwgEmBMfhsvxF/Fe+7fxvst7aGcjgnjlOL3mIiIieuJoYSpIU6SlpeGLL77AnTt3MHnyZIjFYoSGhkIoFGLdunVYsWIFRowYgXPnzmHBggUt+qPqbFjwwTuFrVu31vlOwdvbWyPvFEJCQhASEtKoY+u7/qP9KBQKjWfVJDd3dyTEx6m2KyoqcDMnB27u7rC0soK9vT1SU65j4KDBAICUlOtwc3fXU1pAaCCAdUcLFOaUwuulbqr9RiYGsO5ojsKcu3rLBgAiWxFsO9nh+JZjkFXJICuW4ew3pzEqPBDxH+hubjoRERG1TPfu3ZGSklJn27PPPouEhASNXUsnI9bNfacQFhaGF198EQAQEBCAoKCgRrU96nHHNuWdSkuyapJMJoNUKoVcroBcLodUKoVMJoOfvz/S09KQdOgQpFIpvojZjO4eHujaraZoHS0W48stW1B29y6yMjOxd/duiMfqZvRVZGmCHoM7w8jUEAKhAF36OaKHbxdkX7mNtLM30d7VCh4DXGFgJMTAiX1QkF2q9/nVkiIJCrMKMWT2ixAaCNHOqh1e+PsA5CbfavhkIiIiUlEqlRp/tFYCZWtO14ZUyhWNOi4mKgpbNker7QueE4qQsDCc+eUXrFm1Enm5uejTty8iVq+Bs7MzgJp1rFeuWIGkQ4kwMTXFG0Gz8I8ZM5qU8fPXdzXp+AfaWZpA/J4v7LvYQCAQoKxAggs/puBKUgYAoHPfDhg2yxuW7c2Ql1aE/0adQVlB8+Z/3/iv5pYQdO7rgtfWTYRzHxco5Aqk/pyC7xd8h3t37rWo3/DsdRpKSERE9Hj29hYNH6QDqzxa9qUrdVmW+p7G+9QEFtatRGMLa31qbmGtS5osrLWFhTUREekCC2vd0//SC0RERET09GpDY7j8fmYiIiIiIg3giDURERERaU8Tl8d7knHEmoiIiIhIAzhiTURERERao2xDI9YsrImIiIhIe5Stf+UzTeFUECIiIiIiDeCINRERERFpTxuaCsIRayIiIiIiDeCINRERERFpTxv6ghgW1kRERESkPW1oKggLa2q0okMX9B2hQeHZ6/QdgYiIiNooFtZEREREpDXKNjQVhDcvEhERERFpAEesiYiIiEh7OMeaiIiIiEgD2lBhzakgREREREQawBFrIiIiItIe3rxIRERERERNwRFrIiIiItIaJedYExERERFRU3DEmoiIiIi0pw3NsWZhTURERETaw6kg1FrF7tyJv02cAO9n+uLDpUvU2s6ePg3xqFfh82x/BM2Yjtxbt1RtVVVVCF+2DIOe94bfkCH41/btOss88M3BCPt5PlYWfoSJWyaptbkNdce7vy5CRP5qzP4hGNauNjrLRURERKRJOimsS0pKMHv2bIwcORJjxoxBWFgYiouLAQCXLl1CYGAgRo4ciZkzZ6KoqEh13oIFC+Dr6wtPT09IJBK1Putre5Sm+mluVk2yd7DH7LeCMXb8eLX9JSUleHf+PITOnYfjp8+gd28vLFrwrqo9JioKN7KzcTDpCL7avh3bt23DqRMntJbzYWW37+Lo+iSc/+Z/avtFdiJM2zkdhyMPIqJTOG5evIkpO6bqJBMRERHphlIL/7VWOimsBQIBZs2ahcTERCQkJMDV1RUbNmyAQqHAwoULER4ejsTERHh7e2PDhg2q8yZMmID4+Pg6+6yvrSnHNraflmTVJP/hI+Dn7w9ra2u1/UcOH4abuztGBATAxMQEwaGhSE1JQVZmJgAgIT4Ob4aEwNLKCt3c3DB+4gTEx+3Tel4A+G1/Mq4d+A0VxRVq+70C+yD/ej6uxl2BTCpD0upDcPRygr2HvU5yEREREWmSTgpra2tr+Pj4qLb79euH3NxcJCcnw8TEBN7e3gCAyZMn4+DBg6rjBg4cCDs7uzr7rK+tKcc2tp+WZNWFjPR0eHh6qrZFIhFcXF2RkZ6Osrt3UVBQAM+H2j09eyAjPV0fUVU69OiIvKu5qu3qiioUZRWhQ4+OekxFREREmqRQKjT+aK10PsdaoVAgNjYWfn5+yMvLg5OTk6rN1tYWCoUCpaWluo7VoNaetaJCAnMLC7V9FhYWkEgkqKioGSl+uN3cwhwVWpyy0hjG5saoLKtU21dZdh8mFiZ6SkRERESapoBS44/WSueFdWRkJEQiEaZO5VxaTRKJzCApL1fbV15eDjMzM4hEItX2A5JyCURmZjrN+Kiq8iqYWJiq7TO1MIX0nlRPiYiIiIiaT6eF9dq1a5GdnY1NmzZBKBTC0dERubl/TQUoLi6GUCisNX+4KWJiYiAWiyEWi3HmzBmN9aONrJrk5u6O1JQU1XZFRQVu5uTAzd0dllZWsLe3R2rKdVV7Ssp1uLm76yOqSv7123Ds46jaNhIZw7arHfKv39ZjKiIiItIkpVKh8UdrpbPCeuPGjUhOTkZ0dDSMjY0BAF5eXqisrMT58+cBALt27UJAQECLrhMSEoL4+HjEx8djwIABGutHG1mbQyaTQSqVQi5XQC6XQyqVQiaTwc/fH+lpaUg6dAhSqRRfxGxGdw8PdO3WDQAwWizGl1u2oOzuXWRlZmLv7t0Qjx2nk8xCAyEMTQwhMBBAIKz5WWggxG8JyejYsyO8AvvA0MQQwxYPx+3f8lCQWqCTXERERESaJFAqtf91OGlpaRg9ejS6dOkCU9Oaj/5dXFwQHR2NCxcuYPny5ZBKpXB2dsb69evRvn17AEBYWBiuXLmC/Px8ODg4wMPDA9u2bWuw7VGa6qe5WRujUt64d18xUVHYsjlabV/wnFCEhIXhzC+/YM2qlcjLzUWfvn0RsXoNnJ2dAdSsY71yxQokHUqEiakp3giahX/MmNHofADwT+tFTTr+Af8lI+C/dITavqTVh5C05hDcX+qOwI/HwcbVBjnnb2B38C6U3Chp1nUAYEHm8mafS0RE9DSxt7do+CAdWGrZvPqhPqvL1mm8T03QSWFNDWtsYa1PzS2sdYmFNRERUY3WUlgvtnhP431+dG9DwwfpAb95kYiIiIhIAwz1HYCIiIiInl5KtP5P5TWFI9ZERERERBrAEWsiIiIi0hpFG7qdjyPWREREREQawBFrIiIiItKatjTHmoU1EREREWkNp4IQEREREVGTcMSaiIiIiLRG0YamgnDEmoiIiIhIAzhiTURERERao2xDc6xZWBMRERGR1rSlqSAsrKnRFmQu13cEIiIiolaLhTURERERaQ2X2yMiIiIioibhiDURERERaQ2/eZGIiIiISAMU4FQQIiIiIiJqAo5YExEREZHWKJRtZyoIR6yJiIiIiDSAI9ZEREREpDVKzrEmIiIiIqKm4Ig1EREREWlNW5pjzcKaiIiIiLSmLa1jrZOpICUlJZg9ezZGjhyJMWPGICwsDMXFxQCAS5cuITAwECNHjsTMmTNRVFSkOm/BggXw9fWFp6cnJBKJWp/1tT3qccdmZWVh2rRpCAgIwOjRo7FkyRJUVlY+tp+jR48iICAAw4cPx9tvv4379+8DAKqqqhAUFAQfHx/4+Pg0+ffTFLE7d+JvEyfA+5m++HDpErW2s6dPQzzqVfg82x9BM6Yj99YtVVtVVRXCly3DoOe94TdkCP61fbtWcxIRERG1NToprAUCAWbNmoXExEQkJCTA1dUVGzZsgEKhwMKFCxEeHo7ExER4e3tjw4YNqvMmTJiA+Pj4Ovusr62xxxoZGWHJkiU4ePAg9u/fj/v372Pbtm119iGRSPDhhx9iy5YtOHz4MMzMzFTHCoVCBAUFYbsOilV7B3vMfisYY8ePV9tfUlKCd+fPQ+jceTh++gx69/bCogXvqtpjoqJwIzsbB5OO4Kvt27F92zacOnFC63mJiIiobVMolRp/tFY6Kaytra3VRnL79euH3NxcJCcnw8TEBN7e3gCAyZMn4+DBg6rjBg4cCDs7uzr7rK+tsce6uLigV69eAGqK4759+yI3N7fOPo4fPw4vLy906dJFlfW///0vAMDQ0BCDBg2ChYVFo/K0hP/wEfDz94e1tbXa/iOHD8PN3R0jAgJgYmKC4NBQpKakICszEwCQEB+HN0NCYGllhW5ubhg/cQLi4/ZpPS8RERFRW6HzVUEUCgViY2Ph5+eHvLw8ODk5qdpsbW2hUChQWlqq61iorKzEnj174OfnV2f7o1mdnJyQl5enq3gNykhPh4enp2pbJBLBxdUVGenpKLt7FwUFBfB8qN3Tswcy0tP1EZWIiIjaEIUW/mutdF5YR0ZGQiQSYerUqbq+9GPJZDK88847GDBgAIYNG6bvOM1SUSGB+SMj5hYWFpBIJKioqAAAtXZzC3NUNDA3nYiIiKillEqlxh+tlU4L67Vr1yI7OxubNm2CUCiEo6Oj2tSL4uJiCIXCWtMcmiImJgZisRhisRhnzpxp8Hi5XI733nsPVlZW+OCDD1T7V6xYoeonMzOzVtbc3Fw4Ojo2O6emiURmkJSXq+0rLy+HmZkZRCKRavsBSbkEIjMznWYkIiIieprpbLm9jRs3Ijk5GVu3boWxsTEAwMvLC5WVlTh//jy8vb2xa9cuBAQEtOg6ISEhCAkJadSxCoUCixcvhoGBAVatWgWBQKBqW758udqxDg4OiIyMxB9//IEuXbpg165deOWVV1qUVZPc3N2REB+n2q6oqMDNnBy4ubvD0soK9vb2SE25joGDBgMAUlKuw83dXU9piYiIqK1ozVM3NE0nI9ZpaWn44osvcOfOHUyePBlisRihoaEQCoVYt24dVqxYgREjRuDcuXNYsGCB6rywsDC8+OKLAICAgAAEBQU1qu1Rjzv2+PHj2L9/P1JTUzF+/HiIxWKsWLGizj7Mzc0RERGBt956C8OHD8e9e/cwc+ZMVftrr72GyZMno6ysDC+++CKWLVvWzN9W/WQyGaRSKeRyBeRyOaRSKWQyGfz8/ZGeloakQ4cglUrxRcxmdPfwQNdu3QAAo8VifLllC8ru3kVWZib27t4N8dhxWslIRERE1BYJlK15okobUilv3Lu5mKgobNkcrbYveE4oQsLCcOaXX7Bm1Urk5eaiT9++iFi9Bs7OzgBq1rFeuWIFkg4lwsTUFG8EzcI/ZsxoUsZ7xZyTTURE9KSwt9f+amWN8TfDSRrvM1b2ncb71AQW1q1EYwtrfWJhTURE9ORoLYX1ZMOJGu9zl2y3xvvUBJ2vCkJERERE9DTS2c2LRERERNT2tOZvStQ0jlgTEREREWkAR6yJiIiISGuUXG6PiIiIiIiagiPWRERERKQ1bWmONQtrIiIiItIafvMiERERERE1CQtrIiIiItIapVKp8UdTZWVlYdKkSRg5ciQmTZqEP/74Q/N/ULCwJiIiIqKn3PLlyzFlyhQkJiZiypQpCA8P18p1OMeaiIiIiLRGG3Osy8rKUFZWVmu/paUlLC0t1fYVFRXh2rVr+PrrrwEAo0ePRmRkJIqLi2Fra6vRXCysWwlTg9b/4YGpvYW+IxAREdETZr/ygMb7/PzzzxEVFVVrf1hYGObOnau2Ly8vDx06dICBgQEAwMDAAA4ODsjLy2NhTURERERt2/Tp0zFu3Lha+x8drdY1FtZERERE9ESpa8rH4zg6OiI/Px9yuRwGBgaQy+W4c+cOHB0dNZ6r9c8/ICIiIiJqJjs7O/Ts2RMHDtRMSTlw4AB69uyp8WkgACBQNmfNEiIiIiKiJ0RGRgYWL16MsrIyWFpaYu3atejWrZvGr8PCmoiIiIhIAzgVhIiIiIhIA1hYExERERFpAAtrIiIiIiINYGFNRERERKQBLKyJiIiIiDSAhfVTZu3atfDz84OnpydSU1P1HadOJSUlmD17NkaOHIkxY8YgLCwMxcXF+o5Vy5w5cxAYGIixY8diypQp+P333/Ud6bGioqJa7d+5n58fAgICIBaLIRaLceLECX1HqkUqlWL58uUYMWIExowZgw8//FDfkWq5efOm6ncoFovh5+eHF154Qd+xavnpp58wduxYiMViBAYG4tChQ/qOVMuxY8cwbtw4jBkzBlOnTkVOTo6+Iz323+6srCxMmjQJI0eOxKRJk/DHH3+0uoyt7XWnrjyt7XXncb+zJ+l1hx5DSU+Vc+fOKXNzc5Uvv/yyMiUlRd9x6lRSUqI8c+aMavujjz5SLlmyRI+J6lZWVqb6+fDhw8qxY8fqMc3jJScnK4OCglrt33lrzfWwyMhI5apVq5QKhUKpVCqVBQUFek7UsJUrVypXrFih7xhqFAqF0tvbW/X3/fvvvyv79eunlMvlek72l9LSUuULL7ygzMzMVCqVSmVcXJxy5syZek71+H+7p02bpoyLi1MqlTVZp02bpq+Ij83Y2l536srT2l53Hvc7e1Jed+jxOGL9lPH29tbKV3RqkrW1NXx8fFTb/fr1Q25urh4T1c3CwkL1c3l5OQQCgR7T1K2qqgoRERH45z//qe8oTyyJRIK4uDjMnz9f9Xfcvn17PaeqX1VVFRISEvDaa6/pO0otQqEQ9+7dAwDcu3cPDg4OEApbz0tNdnY22rdvj65duwIAhg4dipMnT+r9U7O6/u0uKirCtWvXMHr0aADA6NGjce3aNb1lfdzrS2t73akrT2t73Xnc7+xJeN2h+hnqOwC1bQqFArGxsfDz89N3lDotW7YMp06dglKpxFdffaXvOLV8+umnCAwMhIuLi76j1Ou9996DUqnEc889h3fffReWlpb6jqSSk5MDa2trREVF4ezZszAzM8P8+fPh7e2t72iPdfToUXTo0AG9e/fWdxQ1AoEAmzZtwpw5cyASiSCRSLB161Z9x1LTtWtXFBYW4sqVK+jbty8SEhIAAHl5eVr5euOWyMvLQ4cOHWBgYAAAMDAwgIODQ6vM+iTh6w5pU+sZRqA2KTIyEiKRCFOnTtV3lDqtWrUKx44dwzvvvIN169bpO46aixcvIjk5GVOmTNF3lHrt3LkT+/fvx549e6BUKhEREaHvSGrkcjlycnLQq1cv7N27F++99x7mzp2L8vJyfUd7rD179rTK0WqZTIYvvvgCmzdvxk8//YSYmBi8/fbbkEgk+o6mYmFhgU8++QRr1qzB+PHjUVRUBEtLS1XxSk8/vu6QNrGwJr1Zu3YtsrOzsWnTplb1UXFdxo4di7Nnz6KkpETfUVTOnTuHjIwMDBs2DH5+frh9+zaCgoJw8uRJfUdT8+DjTmNjY0yZMgUXLlzQcyJ1jo6OMDQ0VH3c/swzz8DGxgZZWVl6Tla3/Px8nDt3DmPGjNF3lFp+//133LlzB8899xwA4LnnnkO7du2QkZGh52TqBg0ahNjYWOzduxdTp05FZWUlOnXqpO9YtTg6OiI/Px9yuRxAzZvAO3futKppF08avu6QtrXuZxU9tTZu3Ijk5GRER0fD2NhY33FqkUgkyMvLU20fPXoUVlZWsLa21l+oR7z55ps4efIkjh49iqNHj6Jjx47Ytm0bfH199R1NpaKiQjXfVqlU4scff0TPnj31nEqdra0tfHx8cOrUKQA1qzAUFRWhc+fOek5Wt3379mHo0KGwsbHRd5RaOnbsiNu3byMzMxMAkJGRgaKiolZXtBYUFAComRKwceNGTJ48GSKRSM+parOzs0PPnj1x4MABAMCBAwfQs2dPTgNpJr7ukC4IlEqlUt8hSHNWrlyJQ4cOobCwEDY2NrC2tsYPP/yg71hq0tLSMHr0aHTp0gWmpqYAABcXF0RHR+s52V8KCwsxZ84c3L9/H0KhEFZWVnj//fdb3ZzWh/n5+WHLli3w8PDQdxSVnJwczJ07F3K5HAqFAm5ubvjggw/g4OCg72hqcnJysHTpUpSWlsLQ0BBvv/02hg4dqu9YdRo5ciSWLVuGF198Ud9R6rR//358+eWXqpuu5s2bB39/fz2nUrds2TJcuHAB1dXVGDx4MJYuXQoTExO9Znrcv90ZGRlYvHgxysrKYGlpibVr16Jbt26tKmNre92pK8+mTZta1etOXRl37NjxxL3uUG0srImIiIiINIBTQYiIiIiINICFNRERERGRBrCwJiIiIiLSABbWREREREQawMKaiIiIiEgDWFgTEWnJ2bNnW+2yeEDrz0dE9KRhYU1E1AgJCQkYP348+vfvD19fX8yaNQvnz5/XaYa9e/fib3/7m9q+xYsX45NPPtFpDiIiqpuhvgMQEbV2X3/9NbZu3YoVK1bA19cXRkZGOHHiBI4cOQJvb2+dZJDJZDq5DhERNR9HrImI6nHv3j189tlnCA8Px4gRIyASiWBkZAQ/Pz+8//77qKqqwqpVq+Dr6wtfX1+sWrUKVVVVan383//9HwYOHAhfX1/s2bNHre9FixZhwIABePnll7F582YoFAoANaPTkydPxurVq+Hj44N33nkHy5cvx6VLl9C/f/86C/qbN2/C09MT+/btw0svvQQfHx/ExMSo2isrK7F48WI8//zzePXVV3H16lW18/Pz8zF37lwMGDAAfn5++Ne//gUAKC0txYsvvoijR48CqPnq5eHDhyMuLk4jv2MioqcFR6yJiOpx8eJFSKVSDB8+vM72mJgYXL58GfHx8RAIBJgzZw42b96Mt99+GwBQWFiIe/fu4fjx4/jll19UX/FtZWWFyMhI3Lt3D0lJSSgtLUVQUBDs7e0xceJEAMCVK1cwatQonDp1CjKZDD/++CN2796N2NjYejP/+uuvOHjwIP744w9MmDABI0aMgJubG6KionDjxg0cPnwY9+/fx+zZs1XnKBQKhISEwM/PDx9//DHy8/MxY8YMdO3aFUOGDMHq1avx/vvv45lnnsEnn3yCnj17YuzYsRr5HRMRPS04Yk1EVI/S0lLY2NjA0LDucYiEhASEhobCzs4Otra2CA0Nxf79+1XthoaGCA0NhZGREYYOHQqRSISsrCzI5XL8+OOPWLBgAczNzeHi4oI33nhD7VwHBwdMmzYNhoaGMDU1bXTmsLAwmJqaokePHujRoweuX78OAPjvf/+L4OBgWFtbw9HREdOmTVOdc/XqVRQXFyMsLAzGxsZwdXXF66+/jh9//BEA4Ovri4CAAMyYMQM///wzVqxY0aTfIxFRW8ARayKielhbW6OkpAQymazO4vrOnTtwcnJSbTs5OeHOnTtq5z98Xrt27VBRUYGSkhJUV1fXOjc/P1+13bFjx2Zlbt++fa3rPcjq6Oiodr0Hbt26hTt37qhNMZHL5Wrbr7/+Ov79738jODgYNjY2zcpGRPQ044g1EVE9+vfvD2NjYyQlJdXZ7uDggNzcXNV2Xl4eHBwcGuzXxsYGRkZGtc7t0KGDalsgEKid8+h2U9nb2yMvL0/teg84OjrCxcUF58+fVz0uXryIL7/8EkBNkR0eHo6xY8fi22+/RXZ2douyEBE9jVhYExHVw8LCAvPmzUNERASSkpJw//59VFdX4+eff8a6deswatQoxMTEoLi4GMXFxYiOjsaYMWMa7NfAwAABAQH45JNPUF5ejlu3buHrr79GYGDgY8+xs7NDfn5+rZsjG+uVV17B1q1bcffuXdy+fRvffPONqq1v374wMzPD1q1bUVlZCblcjtTUVFy5cgUAsGXLFggEAqxevRpBQUF4//33IZfLm5WDiOhpxcKaiKgBM2fOxOLFi7F582YMHDgQL730Enbu3Al/f3/MmTMHXl5eCAwMRGBgIHr37o05c+Y0qt8PP/wQ7dq1g7+/P6ZMmYLRo0fjtddee+zxAwYMgLu7O3x9feHj49PkP0dYWBicnJwwbNgwzJw5E2KxWNVmYGCALVu24Pr16xg2bBgGDBiADz74AOXl5UhOTsb27duxdu1aGBgYqG563Lp1a5MzEBE9zQRKpVKp7xBERERERE86jlgTEREREWkAC2siIiIiIg1gYU1EREREpAEsrImIiIiINICFNRERERGRBrCwJiIiIiLSABbWREREREQawMKaiIiIiEgD/h/d04uSFGDwXgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 864x576 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,1, figsize=(12,8))\n",
    "sns.heatmap(data=retention, annot=True, fmt='0.0f', ax =ax, vmin = 0.0,vmax = 100,cmap=\"BuPu_r\").set(title='Retention Rate')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ff0f1cd-5a0c-4805-8d03-095ec1ce66d7",
   "metadata": {},
   "source": [
    "### Average Quantity Purchased"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5ec5deef-c992-48dd-b922-4289e984b564",
   "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=\"13\" halign=\"left\">Quantity</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortIndex</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortMonth</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",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-12-01</th>\n",
       "      <td>12.117180</td>\n",
       "      <td>15.670062</td>\n",
       "      <td>15.725860</td>\n",
       "      <td>15.931121</td>\n",
       "      <td>13.625364</td>\n",
       "      <td>14.922736</td>\n",
       "      <td>16.113199</td>\n",
       "      <td>15.638083</td>\n",
       "      <td>18.207405</td>\n",
       "      <td>17.700028</td>\n",
       "      <td>19.047018</td>\n",
       "      <td>13.599991</td>\n",
       "      <td>15.383382</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01</th>\n",
       "      <td>17.471086</td>\n",
       "      <td>13.471931</td>\n",
       "      <td>12.707503</td>\n",
       "      <td>15.283843</td>\n",
       "      <td>12.845407</td>\n",
       "      <td>15.388923</td>\n",
       "      <td>14.974063</td>\n",
       "      <td>14.991561</td>\n",
       "      <td>11.628981</td>\n",
       "      <td>10.623621</td>\n",
       "      <td>9.597151</td>\n",
       "      <td>10.184408</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-01</th>\n",
       "      <td>11.201903</td>\n",
       "      <td>13.740634</td>\n",
       "      <td>19.032478</td>\n",
       "      <td>12.045838</td>\n",
       "      <td>12.335834</td>\n",
       "      <td>12.330517</td>\n",
       "      <td>13.571174</td>\n",
       "      <td>13.401471</td>\n",
       "      <td>10.965646</td>\n",
       "      <td>12.416324</td>\n",
       "      <td>13.390244</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-03-01</th>\n",
       "      <td>9.962552</td>\n",
       "      <td>11.741027</td>\n",
       "      <td>13.310624</td>\n",
       "      <td>10.120573</td>\n",
       "      <td>13.756057</td>\n",
       "      <td>13.014265</td>\n",
       "      <td>13.456492</td>\n",
       "      <td>13.851474</td>\n",
       "      <td>11.324869</td>\n",
       "      <td>9.700103</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-04-01</th>\n",
       "      <td>10.043702</td>\n",
       "      <td>10.417740</td>\n",
       "      <td>9.772586</td>\n",
       "      <td>11.870370</td>\n",
       "      <td>11.962770</td>\n",
       "      <td>8.691579</td>\n",
       "      <td>10.001070</td>\n",
       "      <td>9.678404</td>\n",
       "      <td>7.567251</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-05-01</th>\n",
       "      <td>11.457044</td>\n",
       "      <td>9.745116</td>\n",
       "      <td>14.224062</td>\n",
       "      <td>12.757906</td>\n",
       "      <td>11.217013</td>\n",
       "      <td>8.758695</td>\n",
       "      <td>10.764495</td>\n",
       "      <td>113.763089</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-06-01</th>\n",
       "      <td>10.664896</td>\n",
       "      <td>14.727072</td>\n",
       "      <td>10.869873</td>\n",
       "      <td>13.663137</td>\n",
       "      <td>10.690449</td>\n",
       "      <td>9.960707</td>\n",
       "      <td>9.506494</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-07-01</th>\n",
       "      <td>9.921021</td>\n",
       "      <td>13.750499</td>\n",
       "      <td>7.398021</td>\n",
       "      <td>8.178144</td>\n",
       "      <td>6.213636</td>\n",
       "      <td>7.164410</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-08-01</th>\n",
       "      <td>10.083230</td>\n",
       "      <td>6.199246</td>\n",
       "      <td>5.440127</td>\n",
       "      <td>6.150660</td>\n",
       "      <td>7.056730</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-09-01</th>\n",
       "      <td>12.138359</td>\n",
       "      <td>6.316353</td>\n",
       "      <td>8.090107</td>\n",
       "      <td>8.959397</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-10-01</th>\n",
       "      <td>8.999304</td>\n",
       "      <td>7.275221</td>\n",
       "      <td>8.492520</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-11-01</th>\n",
       "      <td>7.906848</td>\n",
       "      <td>10.027273</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-12-01</th>\n",
       "      <td>15.185224</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Quantity                                                         \\\n",
       "CohortIndex         1          2          3          4          5          6    \n",
       "CohortMonth                                                                     \n",
       "2010-12-01   12.117180  15.670062  15.725860  15.931121  13.625364  14.922736   \n",
       "2011-01-01   17.471086  13.471931  12.707503  15.283843  12.845407  15.388923   \n",
       "2011-02-01   11.201903  13.740634  19.032478  12.045838  12.335834  12.330517   \n",
       "2011-03-01    9.962552  11.741027  13.310624  10.120573  13.756057  13.014265   \n",
       "2011-04-01   10.043702  10.417740   9.772586  11.870370  11.962770   8.691579   \n",
       "2011-05-01   11.457044   9.745116  14.224062  12.757906  11.217013   8.758695   \n",
       "2011-06-01   10.664896  14.727072  10.869873  13.663137  10.690449   9.960707   \n",
       "2011-07-01    9.921021  13.750499   7.398021   8.178144   6.213636   7.164410   \n",
       "2011-08-01   10.083230   6.199246   5.440127   6.150660   7.056730        NaN   \n",
       "2011-09-01   12.138359   6.316353   8.090107   8.959397        NaN        NaN   \n",
       "2011-10-01    8.999304   7.275221   8.492520        NaN        NaN        NaN   \n",
       "2011-11-01    7.906848  10.027273        NaN        NaN        NaN        NaN   \n",
       "2011-12-01   15.185224        NaN        NaN        NaN        NaN        NaN   \n",
       "\n",
       "                                                                     \\\n",
       "CohortIndex         7           8          9          10         11   \n",
       "CohortMonth                                                           \n",
       "2010-12-01   16.113199   15.638083  18.207405  17.700028  19.047018   \n",
       "2011-01-01   14.974063   14.991561  11.628981  10.623621   9.597151   \n",
       "2011-02-01   13.571174   13.401471  10.965646  12.416324  13.390244   \n",
       "2011-03-01   13.456492   13.851474  11.324869   9.700103        NaN   \n",
       "2011-04-01   10.001070    9.678404   7.567251        NaN        NaN   \n",
       "2011-05-01   10.764495  113.763089        NaN        NaN        NaN   \n",
       "2011-06-01    9.506494         NaN        NaN        NaN        NaN   \n",
       "2011-07-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-08-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-09-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-10-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-11-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-12-01         NaN         NaN        NaN        NaN        NaN   \n",
       "\n",
       "                                   \n",
       "CohortIndex         12         13  \n",
       "CohortMonth                        \n",
       "2010-12-01   13.599991  15.383382  \n",
       "2011-01-01   10.184408        NaN  \n",
       "2011-02-01         NaN        NaN  \n",
       "2011-03-01         NaN        NaN  \n",
       "2011-04-01         NaN        NaN  \n",
       "2011-05-01         NaN        NaN  \n",
       "2011-06-01         NaN        NaN  \n",
       "2011-07-01         NaN        NaN  \n",
       "2011-08-01         NaN        NaN  \n",
       "2011-09-01         NaN        NaN  \n",
       "2011-10-01         NaN        NaN  \n",
       "2011-11-01         NaN        NaN  \n",
       "2011-12-01         NaN        NaN  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cohort_counts = df.groupby(['CohortMonth', 'CohortIndex'])[['Quantity']].mean().unstack(); cohort_counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "10fb3dd2-ea78-47dd-9c97-cf3ec2e4b18f",
   "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>CohortIndex</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CohortMonth</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",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2010-12-01</th>\n",
       "      <td>12.117180</td>\n",
       "      <td>15.670062</td>\n",
       "      <td>15.725860</td>\n",
       "      <td>15.931121</td>\n",
       "      <td>13.625364</td>\n",
       "      <td>14.922736</td>\n",
       "      <td>16.113199</td>\n",
       "      <td>15.638083</td>\n",
       "      <td>18.207405</td>\n",
       "      <td>17.700028</td>\n",
       "      <td>19.047018</td>\n",
       "      <td>13.599991</td>\n",
       "      <td>15.383382</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-01-01</th>\n",
       "      <td>17.471086</td>\n",
       "      <td>13.471931</td>\n",
       "      <td>12.707503</td>\n",
       "      <td>15.283843</td>\n",
       "      <td>12.845407</td>\n",
       "      <td>15.388923</td>\n",
       "      <td>14.974063</td>\n",
       "      <td>14.991561</td>\n",
       "      <td>11.628981</td>\n",
       "      <td>10.623621</td>\n",
       "      <td>9.597151</td>\n",
       "      <td>10.184408</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-01</th>\n",
       "      <td>11.201903</td>\n",
       "      <td>13.740634</td>\n",
       "      <td>19.032478</td>\n",
       "      <td>12.045838</td>\n",
       "      <td>12.335834</td>\n",
       "      <td>12.330517</td>\n",
       "      <td>13.571174</td>\n",
       "      <td>13.401471</td>\n",
       "      <td>10.965646</td>\n",
       "      <td>12.416324</td>\n",
       "      <td>13.390244</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-03-01</th>\n",
       "      <td>9.962552</td>\n",
       "      <td>11.741027</td>\n",
       "      <td>13.310624</td>\n",
       "      <td>10.120573</td>\n",
       "      <td>13.756057</td>\n",
       "      <td>13.014265</td>\n",
       "      <td>13.456492</td>\n",
       "      <td>13.851474</td>\n",
       "      <td>11.324869</td>\n",
       "      <td>9.700103</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-04-01</th>\n",
       "      <td>10.043702</td>\n",
       "      <td>10.417740</td>\n",
       "      <td>9.772586</td>\n",
       "      <td>11.870370</td>\n",
       "      <td>11.962770</td>\n",
       "      <td>8.691579</td>\n",
       "      <td>10.001070</td>\n",
       "      <td>9.678404</td>\n",
       "      <td>7.567251</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-05-01</th>\n",
       "      <td>11.457044</td>\n",
       "      <td>9.745116</td>\n",
       "      <td>14.224062</td>\n",
       "      <td>12.757906</td>\n",
       "      <td>11.217013</td>\n",
       "      <td>8.758695</td>\n",
       "      <td>10.764495</td>\n",
       "      <td>113.763089</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-06-01</th>\n",
       "      <td>10.664896</td>\n",
       "      <td>14.727072</td>\n",
       "      <td>10.869873</td>\n",
       "      <td>13.663137</td>\n",
       "      <td>10.690449</td>\n",
       "      <td>9.960707</td>\n",
       "      <td>9.506494</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-07-01</th>\n",
       "      <td>9.921021</td>\n",
       "      <td>13.750499</td>\n",
       "      <td>7.398021</td>\n",
       "      <td>8.178144</td>\n",
       "      <td>6.213636</td>\n",
       "      <td>7.164410</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-08-01</th>\n",
       "      <td>10.083230</td>\n",
       "      <td>6.199246</td>\n",
       "      <td>5.440127</td>\n",
       "      <td>6.150660</td>\n",
       "      <td>7.056730</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-09-01</th>\n",
       "      <td>12.138359</td>\n",
       "      <td>6.316353</td>\n",
       "      <td>8.090107</td>\n",
       "      <td>8.959397</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-10-01</th>\n",
       "      <td>8.999304</td>\n",
       "      <td>7.275221</td>\n",
       "      <td>8.492520</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-11-01</th>\n",
       "      <td>7.906848</td>\n",
       "      <td>10.027273</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-12-01</th>\n",
       "      <td>15.185224</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "CohortIndex         1          2          3          4          5          6   \\\n",
       "CohortMonth                                                                     \n",
       "2010-12-01   12.117180  15.670062  15.725860  15.931121  13.625364  14.922736   \n",
       "2011-01-01   17.471086  13.471931  12.707503  15.283843  12.845407  15.388923   \n",
       "2011-02-01   11.201903  13.740634  19.032478  12.045838  12.335834  12.330517   \n",
       "2011-03-01    9.962552  11.741027  13.310624  10.120573  13.756057  13.014265   \n",
       "2011-04-01   10.043702  10.417740   9.772586  11.870370  11.962770   8.691579   \n",
       "2011-05-01   11.457044   9.745116  14.224062  12.757906  11.217013   8.758695   \n",
       "2011-06-01   10.664896  14.727072  10.869873  13.663137  10.690449   9.960707   \n",
       "2011-07-01    9.921021  13.750499   7.398021   8.178144   6.213636   7.164410   \n",
       "2011-08-01   10.083230   6.199246   5.440127   6.150660   7.056730        NaN   \n",
       "2011-09-01   12.138359   6.316353   8.090107   8.959397        NaN        NaN   \n",
       "2011-10-01    8.999304   7.275221   8.492520        NaN        NaN        NaN   \n",
       "2011-11-01    7.906848  10.027273        NaN        NaN        NaN        NaN   \n",
       "2011-12-01   15.185224        NaN        NaN        NaN        NaN        NaN   \n",
       "\n",
       "CohortIndex         7           8          9          10         11  \\\n",
       "CohortMonth                                                           \n",
       "2010-12-01   16.113199   15.638083  18.207405  17.700028  19.047018   \n",
       "2011-01-01   14.974063   14.991561  11.628981  10.623621   9.597151   \n",
       "2011-02-01   13.571174   13.401471  10.965646  12.416324  13.390244   \n",
       "2011-03-01   13.456492   13.851474  11.324869   9.700103        NaN   \n",
       "2011-04-01   10.001070    9.678404   7.567251        NaN        NaN   \n",
       "2011-05-01   10.764495  113.763089        NaN        NaN        NaN   \n",
       "2011-06-01    9.506494         NaN        NaN        NaN        NaN   \n",
       "2011-07-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-08-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-09-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-10-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-11-01         NaN         NaN        NaN        NaN        NaN   \n",
       "2011-12-01         NaN         NaN        NaN        NaN        NaN   \n",
       "\n",
       "CohortIndex         12         13  \n",
       "CohortMonth                        \n",
       "2010-12-01   13.599991  15.383382  \n",
       "2011-01-01   10.184408        NaN  \n",
       "2011-02-01         NaN        NaN  \n",
       "2011-03-01         NaN        NaN  \n",
       "2011-04-01         NaN        NaN  \n",
       "2011-05-01         NaN        NaN  \n",
       "2011-06-01         NaN        NaN  \n",
       "2011-07-01         NaN        NaN  \n",
       "2011-08-01         NaN        NaN  \n",
       "2011-09-01         NaN        NaN  \n",
       "2011-10-01         NaN        NaN  \n",
       "2011-11-01         NaN        NaN  \n",
       "2011-12-01         NaN        NaN  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "avg_quantity = cohort_counts\n",
    "avg_quantity.columns = avg_quantity.columns.droplevel()\n",
    "avg_quantity.index = avg_quantity.index.astype('str')\n",
    "avg_quantity"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64e4ac95-3e57-41cd-a5df-e570cb016185",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "113.7630890052356"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "avg_quantity.max().max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a8c876a4-8f25-4f8f-a214-7be15548cfcd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtkAAAH1CAYAAAAjy+JOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAACsG0lEQVR4nOzdd3gU1dvG8e9ueiUdUoCAEFpoIRB6L0HpoCCiKEWJguWHoFhAKSLlxQZSFBUbICKE0AKISlEQCAiRKiWUhJBKSc/Ovn+gK0vKhrDZSczz8cp1sVPO3M6WPDl75oxGr9frEUIIIYQQQpiNVu0AQgghhBBC/NdIkS2EEEIIIYSZSZEthBBCCCGEmUmRLYQQQgghhJlJkS2EEEIIIYSZSZEthBBCCCGEmUmRLYQQwshDDz3E/v371Y4hhBAVmkbmyRZCiKI9/vjjnDx5kr1792Jra1smx/jpp59YtGgRf/31F3Z2dnTo0IFJkyZRtWrVMjnenV599VWqVq3KSy+9VOj6jz76iLi4OObPn1/mWYQQ4r9EerKFEKIIly9f5uDBg2g0Gn788ccyOcbWrVuZOHEiI0eOZN++fWzcuBEbGxuGDx/OjRs3yuSYQgghyp4U2UIIUYT169fTtGlTBg4cyPr16wHIzc0lNDSU06dPG7ZLTU2lSZMmpKSkAPDJJ5/Qvn172rdvz5o1a6hXrx5xcXEF2tfr9cyZM4eIiAj69u2Lvb093t7ezJo1CwcHB7788kvgdm/yyy+/bNjv8uXL1KtXj/z8fADWrl1L7969ad68Od26dWPVqlWGbffv30/Hjh357LPPaNOmDe3bt2ft2rUArF69mqioKJYvX07z5s0ZN24cAF27duXXX39l165dLF26lC1bttC8eXP69evHli1bGDRokNH/x+eff05ERMT9nm4hhPhPkSJbCCGKEBkZSd++fenbty979uwhOTkZW1tbevTowaZNmwzbbdmyhZYtW+Lp6cmuXbv44osv+Pzzz9m+fXuxY5vPnTtHfHw84eHhRsu1Wi09e/Zkz549Jcrp6enJ0qVLiYmJYfbs2cyePZs///zTsD45OZmbN2+ya9cuZs2axfTp07l+/TpDhw6lb9++jB49msOHD7NkyRKjdjt27MgzzzxD7969OXz4MBs2bKBbt25cvnyZs2fPGp2nAQMGlCirEEJUFlJkCyFEIQ4ePEh8fDy9e/cmODiY6tWrs3HjRgD69u1rVGRHRUXRt29fAENPb926dXFwcGDChAlFHiMtLQ0AHx+fAuu8vb0N603p3LkzNWrUQKPR0KpVK9q1a8fBgwcN662trXnuueewsbGhU6dOODo6cv78+RK1fTdbW1t69+7Nhg0bADhz5gxXrlyhS5cupWpPCCH+q6TIFkKIQqxfv5527drh4eEBQJ8+fVi3bh0AYWFhZGdn88cff3D58mVOnjxJ9+7dAbh27RrVqlUztOPr61vkMdzd3Q373C0pKcmw3pRffvmFRx55hFatWhEaGsquXbuMCnQ3Nzesra0Njx0cHMjMzCxR24UZOHAgUVFR6PV6IiMj6d27d5ldFCqEEBWVtelNhBCicsnOzmbLli0oikK7du2A22Oxb9y4wcmTJ6lfvz7h4eFs3LgRLy8vOnfujLOzM3C7VzoxMdHQVkJCQpHHqV27NtWqVWPr1q2MHTvWsFxRFLZt20bXrl2B20Vxdna2YX1ycrLh37m5uTz//PPMmTOHbt26YWNjw7PPPktJJ47SaDT3vL5Zs2bY2Nhw8OBBNm7cKDOPCCFEIaQnWwgh7rJjxw6srKzYtGkT69evZ/369WzevJnQ0FDDBZB9+/Zly5YtREVF0adPH8O+4eHh/PDDD5w9e5asrCw+/vjjIo+j0Wh45ZVXWLx4MVFRUeTk5JCUlMTrr79OWloaI0aMAKBBgwYcOHCA+Ph4bt68ydKlSw1t5Obmkpubi4eHB9bW1vzyyy/s3bu3xP+vnp6eXL58udj1V65cQVEUo+UDBgxg+vTpWFtbExoaWuLjCSFEZSFFthBC3GXdunUMGjQIPz8/vL29DT+PPfYYUVFR5Ofn07RpUxwcHLh27RodO3Y07NupUycef/xxnnjiCXr06EHTpk0BihxO8eCDDzJ37ly++OILWrVqRfv27YmNjeWrr74yjNVu164dDz74IP369WPQoEFG45+dnZ154403ePHFF2nZsiUbN2409ICXxJAhQ/jrr78IDQ3l2WefLbD+n4syw8LCGDhwoGF5//79OXPmDP369SvxsYQQojKRm9EIIUQZOnv2LH369OHYsWNG46KLsmfPHiZOnMgXX3xBgwYNLJCwdLKzs2nTpg3r1q0jMDBQ7ThCCFHuSE+2EEKY2fbt28nNzeX69evMmzePLl26lKjABmjfvj2zZ8/myJEjZRvyPq1cuZLGjRtLgS2EEEWQnmwhhDCz0aNHc+TIEaysrGjZsiXTpk0rdJq+iqpr167o9XoWLVpEw4YN1Y4jhBDFSktLY/LkyVy8eBFbW1tq1qzJ9OnT8fDw4MiRI0ydOpWcnBz8/f2ZN28enp6eBdrIyspiypQp/Pnnn1hZWfHKK6+YnLpUimwhhBBCCPGflZ6ezqlTpwgLCwNgzpw5XL9+nZkzZ9KrVy9mz55NaGgoH3/8MZcuXWL27NkF2li4cCFXr15l5syZXLhwgccee4xt27bh5ORU5HFluIgQQgghhKhQbty4weXLlwv83Lhxo8C2bm5uhgIbbk9DGh8fT2xsLHZ2doYZkoYNG8bWrVsLPd6WLVsYOnQoAIGBgQQHB7Nr165iM8o82eXER8dLPuWWWrr41lM7gkmm5vwtDzSU/4xnbiSa3qgcCHByUzuCSc7WDmpHMClPyVc7gknVHKqoHcGk/AryxbCDVfnvX/v56hm1I5gU6FxwSEF509SjfAxTy9Yppje6RytWrGDhwoUFlo8fP77YO+0qisLKlSvp2rUrCQkJ+Pn5GdZ5eHigKArp6em4ubkZ7RcfH4+/v7/hsa+vL1evXi02oxTZQgghhBCiQhk5cqTRtKL/cHV1LXa/GTNm4OjoyIgRI9i+fXtZxQOkyBZCCCGEEGWoLL7jcXV1NVlQ323OnDnExcWxZMkStFotvr6+xMfHG9anpqai1WoL9GID+Pn5ceXKFTw8PIDbd/O9cwhKYcr/d0ZCCCGEEELchwULFhAbG8uiRYsMNwcLDg4mOzubgwcPArBq1SrDDbjuFh4ezurVqwG4cOECx44do0OHDsUeU3qyhRBCCCHEf9aZM2dYunQpgYGBDBs2DICAgAAWLVrE3LlzmTZtmtEUfv/o378/y5Yto2rVqowePZpXX32VHj16oNVqmT59Os7OzsUeV6bwKyfkwkfzkAsfzUMufDQfufDRPOTCR/ORCx/NQy58LLmsMrjwsSK8jqUnWwghhBBClJkK8ven2UmRLYQQQgghylDlrLLLf1+7EEIIIYQQFYz0ZAshhBBCiDJTOfuxpSdbCCGEEEIIs5MiWwghhBBCCDOT4SIV3NHNP3Ji5x5S4q4Q1CGM7s+PBuDqqbPsX7mOa2fj0Gg1+DeqT8cxw3HycLN4xs1rvufnTZuJO3uO9j26M2HqG4Z1OdnZrPhwIb/+uBNdfj4169Zh5pKPVcn408bNxJ09S4eePQpk/OLDj/h1x+2MgXXrMHPpYhUyrmHnHRmfn/pmgYx7d/z4d8a6zFIhI8De9Zs4uG0nVy/E0axzB4ZOfqHANtu/Ws32L1cyds7b1A1pavGM0d//wK7NW7l09jxte3Rl3BtTAEhKSOCFwY9i52Bv2LbviOEMeuoJi2fc+N0adm7cyIWzZ+nYsycvTptqWJeTnc1nH3zInh07DM/3u8uWWjxjRXhvf7/yWzZvWM+5M2fo3vtB3pgxy7Dux+itLF+8iGuJiVStVo1nJrxAx67dLJ4R4IdV37J1QyTnzpyhW3hvptyRc2f0Vj5f8jFJiYn4VKvG2PHP00GFnN99+w0bIyM5e+Y0PXs/yLRZ7xjWrV/7PV8u/5SU5GSahoTw5vSZePtYfvq4ivD5s3XNWn7evIWLZ8/Rrkc3nnvzdQCuJSQwftAj2Dn8O+1n/xHDGTLqSYtnNDeZXaQMpaWlMXnyZC5evIitrS01a9Zk+vTpeHh4cOTIEaZOnWo0Cbin5+25JydOnMj+/ftJSkoiJiYGJycnQ5vF7Xe3oto5f/48U6dOJSkpCWtraxo3bsy0adOwt7cvtJ2dO3cyd+5cdDodjRo1Yvbs2Tg4OJCbm0tERASxsbEA7N+/35ynr1hO7m60fLgvFw/Hkp+bZ1iecyuDRj060XtyMBorLbuWfcOPCz+j39T/WSzbPzy8vBj81JMc2bef3Jwco3VLZs9Bp9PxwapvcHZ15cIZdeZG9fDyYsiokRzZ93uBjItnv4suX8eHq7+9nfG0Ohndvbx5eNSTHC7kPH48+12UfB0frV6pakYAV08Puj32MKcPHiHvrpwAKfEJHNu1FxcPdxXS3ebu5cWAkY9z9PcDhWb8NHojVtbq9kF4eHvxyKhRxOzbV+D5XvjObBRdPh9/txpnV1fOnz6tTsYK8N728vbmybHPsP/XveTckTEpMZHpr73Kux98ROt27flt9y7emDSRtZujcS/id0nZ5vTh8TFP8/tvv5KbnW2Uc9brU5j1/oeEtWvPvt27mTZ5Iqs3b8Xdw7I5vX18GPX0M+z7dS85d2Q8dOB3Fn/4AR8v/5waNWvwf+++yxuTJ7H0ixUWzQcV5PPH24tBTz7BH/sL/r4B+GLbZtU/f4R5WGS4iEajYcyYMURHRxMVFUX16tWZP38+iqIwadIkpk6dSnR0NKGhocyfP9+w35AhQ4iMjCzQnqn97lZUOzY2NkyZMoWtW7eyYcMGsrKyWL58eaFtZGRk8Oabb7JkyRK2b9+Ok5OTYVutVsvo0aP54osv7vHM3L8H2rSgdlgI9i7Gdx2q2aIJddq1xNbRARs7Oxo/2I2EE+r8kmvdpTNhnTriUsX4ZhKXL8RxYPcexk15hSru7lhZWfFA/foqZuyESxXXuzJe4MCuPURMefXfjA3UydjGkPHu83iBA7t2l4uMAI07tCG4XWscXV0KXb/uo2X0HvME1jbq/RJp1bkjLTt1wMXV1fTGKmnbpQutO3fCtZDn+/fdu3huyhTD812nQQNVMlaE93bn7j3o2LUbVdzcjJZfS0zE2cWVNu07oNFoaNuxEw4ODly5fEmVnB27dadD125UuetcJl27nbP13znbdOyIvYMDVy5ZPmeX7j3o3K1gxj2//EK3Hj15oE4dbGxsGf3MOA4fOsjlSxctnrEifP6Ede5Eq0LeN/9l+jL4qQgsUmS7ubkRFhZmeNysWTPi4+OJjY3Fzs6O0NBQAIYNG8bWrVsN27Vp06bQ3mlT+92tqHYCAgJo2LAhcLtQbtKkCfHx8YW2sWvXLoKDgwkMDDQcc8uWLQBYW1vTtm1bXFwKf1OXB/HHT+FRw1/tGEb+On4cb99qrP7kU57s9SAvPfY4v+38Se1YRs4cP4G3bzVWffIpI3v25sXhI8phxuN/Z/yEJ3qG88Lwx8pdxn8c/WUv1jY2NAgLVTtKsZ4fNIzx/YewZOa73EhPVzuOkdN/Hsenmi/fLvuEx3r0ZMKjw/l15061YxmpCO/t+o0aEVi7Nrt//gmdTseunT9iY2PLA3WD1I5mpF7DRtSsXYu9f+fcvfNHbG1seCCofOXU31H2/HMj6bNn/lIrTqEqyufPswMfZly/QXw8851y9/kj7o3FL3xUFIWVK1fStWtXEhIS8PPzM6zz8PBAURTSTbyoSrtfcbKzs1m7di1du3Yt0TH9/PxISEgo9fEsKfnCJQ58F0W7kY+oHcVIyrVrXDx7DkcnZz7ZGMmYif9j4YxZXD5/Qe1oBoaMzk58umkDY1+eyEfTZ5bTjM4s3xTF2Jcn8uH0GVwqRxkBsjOz2PLZ1/R7drTaUYrkUqUKM5cv4cMfVjHr82VkZ2ay6K1Zpne0oORr14g7exZHZ2e+2LyJZya9zPtvT+fS+fNqRzOoCO9tKysrwvv05e1XJ9OlZQhvTXmFyW9OxcHRUe1oRqysrOjVpx8zprxCj1YtmPHaq0x8YxoODuUnZ5t27dkRHc2ZU6fIzs5m+ZLFaDQasrOz1I5mUBE+f1yrVGH2Z5/w8bo1vPvFp2RlZvLRW9PVjiXug8WL7BkzZuDo6MiIESMsfegi5efn89JLL9G6dWu6dVPnopeykp6QSNSM9+gw+lH8Gpavng9bOzusra0Z8tRIbGxsaBTSnEYhIRz5/Xe1oxnY/Z3x4aeeNGQMbhHCEQuOuzfF9q6MwSEh5S4jwPYvVxLSvTMe1aqqHaVI9o6O1G5QHytra6p4ePDkxBc49vsBsjIy1Y5m8M9rcuiopwzPd+MWLThcjp7vivDePrDvNz5+fwEfLf+cnw8eZtHyz3n37WmcPnlS7WhGDu77jSXvL+D9Tz9nx4EYPvj0c+ZOn8aZcpSzVZs2PP3sc7z6vxcZ0Ksnvv7+ODo54VO1mtrRDCrK588Df3/+uHl4MHriS/yxv3x9/pRWZR0uYtFBSXPmzCEuLo4lS5ag1Wrx9fU1Gp6RmpqKVqvF7a6xc3crbr/Fixcbho5MmTKF1q1bF9uWTqfj5ZdfpkqVKrzxxr9Xxr/99tvExMQA8N577+Hr62t0QWN8fDy+vr4l/n9Xw41ryUROm0/Lh/tSv3NbteMUULNOnQLLNBoVghSjsIzlLWRgoeexfGUE+OvwUa4np/Bb1O1hVhnXb/D1zHl0fmQQXYYNUjld4f45j3q9onKSf1WE57sivLfPnDpJs5AWNGgUDECD4MY0bNyEg/t/I0il8eOF+evUKZqEtKB+o0YANAgOpmFwYw7t30fdcpTz4UeH8/CjwwGIu3CBz5Yt5YHCPj9VUhE/fyiHnz/i3lisJ3vBggXExsayaNEibG1tAQgODiY7O5uDBw8CsGrVKsLDw022Vdx+ERERREZGEhkZabLAVhSFV199FSsrK2bNmmX0i2ratGmGdmrXrk2HDh04duwYFy5cMByzd+/e93wezE3R6cjPzUNRFPSKcvvfOh23UtJYP3UejR/sRnB4F1Uz6vLzyc3JQVF0KIpCbk4Ouvx8GjZvhle1qvzw5Vfo8vM5+cdRYmNiaHbH+H2LZ9QpKDpdgYxrV9zOeOKPo8QeiqFZazUz6lB0d57H5n9n/PLvjH9w7FAMzVXICLf/cM3LzUX/92syLzcXnU7H0/OmM/GTD3lpyXu8tOQ9XD3dGfxCBG37W/599O9rUjE6l3/9eZz4uIsoisLN69dZ8d5HNAxphqOzs+lGyyijTtGhKP++JhuFNMerWjXWrFiBLj+f43/8wbFDhwgx8XlXlhnL83s7Pz+fnJwcdDodik5HTk4O+fn5NGgUzB+HYww916dPnOCPmEOqjcn+J6eiKOgUxZCzfqNGHDscY+i5Pn3yBEcPx6iS886Myh0Zc3JyOHvmDHq9nqsJ8cx++y2GPTaiwEW7llChPn90xu+bM3/+afT58/mCD2gU0lyVzx9hHhq9vuxnLzxz5gx9+vQhMDDQMD1eQEAAixYtIiYmhmnTphlNxefl5QXA+PHjOXr0KImJifj4+BAUFGSY0aO4/e5WVDs///wzzzzzDEFBQWi1t//eCAkJYdq0aYW2s2PHDubNm4eiKDRo0IB3330Xx7/H7w0ePJjExERSUlLw9vamQ4cOzJpV8rGcHx3fW+Jt77R/1XoOrN5gtKzl0H5oNBp+XxWJjb2d0bpnVpZ+7uQuvvVKtd/qT5bz3fLPjJY9MnoUQ8eO5uK5cyx+513i/jqLd7VqDB/3NGGdO5U6Y2l79FZ98inffXpXxjGjGDZ2DBfPnePjWbP/zRjxDK3vJyOlz7j6U+PZb4aOGW3IuGjWbOL++gvvatV4LOIZWnfuXOqMZ24klnrfbV+uZMdXq42WdX98KD2feNRo2ewRYxnyv/H3NU9tgJNbqfb7/tPP+eEz4+nFBo0aiV+NGqxe+gk30tJxcHIkuGUow597Brf7mNLN2drB9EaF+HbZJ6z69FOjZcPGjGH402O5ePYcH82axYW//sLHtxojxkXQpkvnUmfMU/JLtZ8l39vVHEpXsC1fvIjPlhh/7o0aF8HoiOf4fuW3fPfNV6SmpODu7sGgocN4dOSTpc6Yfx+/Tj9f/DFf3DW3/ZPPRPBUxLP8sOpbvv/ma1JTUnBzd2fg0EcZ+sTIUh/Lwap0/WvLPl7Ep4uN5zofE/Esj454nGeeHMnly5dwdHSk74CBjJvwPFZWVqXO+PPV0s2GZcnPn0Dn0n0ufPfpZ3y//HOjZUNGP4VfjRqsXLKMG2lpODg50qRlS0aMj7ivz5+mHpafq7wwN/J0Zm/T1ab0ry9LsUiRLUwrbZFtSaUtsi2pvH1tXpjSFtmWdD9FtiWVtsi2pNIW2ZZU2iLbkkpbZFvS/RTZllTaItuSSltkW1Jpi2xLKi9F9vVc83/GVLEt/3OJl/93mhBCCCGEEBWMFNlCCCGEEEKYWfnvaxdCCCGEEBVWxRhIZX7Sky2EEEIIIYSZSZEthBBCCCGEmUmRLYQQQgghhJnJmGwhhBBCCFFmKsjslmYnRbYQQgghhCgzlbTGluEiQgghhBBCmJsU2UIIIYQQQpiZFNlCCCGEEEKYmYzJFkIIIYQQZaayjsmWIrucGBzYUu0IJu1LOqN2BJPSc7PUjmBSiGd1tSOYVBHOI0Cgs6faEUy6lV8xzmV59+mpXWpHMCkp67raEUokNTtN7QgmOdo4qR3BpLeCHlI7QgVSOctsGS4ihBBCCCGEmUlPthBCCCGEKDOVdZ5s6ckWQgghhBDCzKTIFkIIIYQQwsxkuIgQQgghhCgzlXS0iPRkCyGEEEIIYW7Sky2EEEIIIcqM9GQLIYQQQgghzEKKbCGEEEIIIcxMimwhhBBCCCHMTMZkCyGEEEKIMlNZb0ZjkSI7LS2NyZMnc/HiRWxtbalZsybTp0/Hw8ODI0eOMHXqVHJycvD392fevHl4enoCMHHiRPbv309SUhIxMTE4OTkZ2ixu3d1Ke4yyasec1q36lq0bIjn/1xm6hvfm1emzANi+eSMLZk43bKfX68nJzmbJN6uo17CRRbL949fIzcRs+4mrF+Jo2rkDD0+aAEBi3CXWzP2QlISrAPjXfYC+z46mas3qFs0HcChqG7E/7iLpwiUadGrDQy+NAyD54mU2LVhCWkIiANXq1KL7M0/gVSPA4hkBtq5Zyy+bt3Lx7Dna9ejGs2++BsC1hAQmDBqKnYODYdv+I4YzeNRIi2c8GBXN0R2/kHThEg07taXv/yIASLp4maj/+5j0hGvA7XPZY9xIvFU4l1vXrOXnzVsM5/G5N18Hbp/H8YMeKXAeh4x60uIZo7//gV2bt3Lp7Hna9ujKuDemAJCUkMALgx/FzsHesG3fEcMZ9NQTkrEIx7f+zF8/7yPtYjy124XS4bnbOa6dPs/h1VEkn7uIRqvFt1Fdwp56BEf3KhbPeH77r1zeE8PNy1fxa92UZmMfBkDJzydm8WquX7hMVnI6rV8di1eD2hbPB5DwUwzXfj1GZnwyXi0bUPfJBw3r0k/EcX7ldnJSb+Bcy5c6Tz6Ivaflz+OlH/cTv+cIt64kUi2sMY1GDzSsSz1+jpNfbyI79TpVavvTcNRAHLzcLJ5RVB4WKbI1Gg1jxowhLCwMgDlz5jB//nxmzpzJpEmTmD17NqGhoXz88cfMnz+f2bNnAzBkyBBee+012rZtW6DN4tbdSVGUUh+jLNoxN09vHx4f+zQHfv2VnJxsw/IeD/ahx4N9DI+3bljPV58sJahBQ4vmA3D19KDL8CGcOXSEvJxco+WPvTkJt6re6BWF3zZsZdU7C3hh6XsWz+js6U6boQM4H3OU/Nx/Mzp7uDNgygu4+nihV/TEbNrGhrkLGbXwXYtnBHD39mLQk0/wx/7fyc3JKbD+822bsLJW9wsqZw932g0byLmYo+Tf8Xy7eLgz6LWXqPL3uTy0aRvr53zI2EVzLZ7R1Hn8Yttm1c+ju5cXA0Y+ztHfD5BXSMZPozdKxhJydK9C00HhXPnjBLrcPMPy3IxMgrq3p0vTBmitrNi3fDV7Pv6Knq+Pt3hGe3dX6vbrQtKxM+jy8ozWeQTVpHavdhxa+K3Fc93JtoozAQ+1Jf3P8yh5+YblebcyObVkHQ88EY5HkzpcjNzN6U820OTVxy2e0c7NhVp9O5IS+5dRxtybGfyxaBUNn+yPV7Mgzq3bybEla2j1xliLZxSVh0XGZLu5uRkKbIBmzZoRHx9PbGwsdnZ2hIaGAjBs2DC2bt1q2K5NmzaGnuK7FbfuTvdzjLJox9w6dutO+y7dcHUrvscgOmoDPfv0Q6PRWCjZv4Lbt6ZRuzAcXVyMljs4O+FezQeNRoMe0FppSYlPsHg+gHptWxLUJhQHV2ej5fbOTlSp6v33edOj1WoNvdpqCOvciZadOuBcxVW1DKbUb9eKem1a4uBS8Fy63XEuNSqey7DOnWjVqSMuVSzf01ZSrTp3pGWnDri4lt/nuiJkBAgMa07NVs2wczH+hjGgeSNqtQnB1tEBaztb6od3IvHUWVUy+oYGU61FI2ycHY2Wa62tqd2rPR5BgWi0lv/8vpNnSBCezepi4+RgtDwl5jSOfl54taiP1saa6n3bkXk5icyrKRbP6NOiIT4hDQqcx2uHTuDs50PVlo2wsrGhdv8u3Lp0lYyEJItnrIz0ZfBfRWDxLgZFUVi5ciVdu3YlISEBPz8/wzoPDw8URSE9PR03NzezHM9cx7BE1rJyNT6eozGHmPzWdNMbq+DtgSPIzcpGr9fT/Ylhascp1PtDxxoydnhssNpxivTcwEfQaDQ0bhXKiPERuJbD1+b/PTLacC47jhiidpxCPTvwYTQaDU1ahTJi/LPl8jw+P2gYGg0Etwxl+PhxktEMEk/8hXt1X7VjVDhZCSk4BvgYHlvZ2WLn7UZWfDKO1Szf+VSYjPhrOFevanhsZWeLg48Ht64k4eTrrWIy8V9m8SJ7xowZODo6MmLECLZv327pw1dK2zZuoHHzEHz91RlHbMq0dV+Tm5XNoe0/4V61fH7Yvbj6E3Kzs4n9cTdVfLzUjlOAa5UqvPPZMgLr1uHmjRt8Nv89PnprBq+//39qRytg4nfLyc3O5tiOXeXuXLpWqcLszz4xnMfl8xfw0VvTef39BWpHM3CpUoWZy5dQs24dbt24wefz32fRW7OY8v48taMZVISMd0uNu8yR7zfTbfI4taNUOLqc3AI9x9YOduiyc4vYw/J02bnY3PVNxu2MBYc5CWEuFp3Cb86cOcTFxfH++++j1Wrx9fUlPj7esD41NRWtVntfPcOLFy+mf//+9O/fn3379pX6GOZqpzzYtjGKXn37qR2jWLYO9oT16cV3cz/kVlq62nEKZWtvT/Pe3di4YAkZ6dfVjmPE3tGRBxrUx8raGjcPD0ZNfJGj+w+QlZGpdrRC2drbE/Jgd6IWLC5X5/Lu8zh64kv8Uc7Oo72jI7X/zljFw4MnJ77Asd8l4/24cfUa299ZRNhTD1OtQR2141Q4Vna25N9VrOqycrCyt1UpUUFW9rYFCur8rBys7O1USlS56PXm/6kILNaTvWDBAmJjY1m2bBm2trffeMHBwWRnZ3Pw4EFCQ0NZtWoV4eHh93WciIgIIiIiDI8VRSnVMczVjtqOHTlMSlISnbr3VDuKSXq9nrycXG6kpOLs7qZ2nELp9Xryc3K4lZKGk4lx8Kr6e+y9Xq+oHKRot5/vHG6mpJbfc1kBzqNGMt6XW0kpRM/4kKaDe1OnY5jpHUQBDr6eJO370/BYl5NLdlI6Dn7l55sqJz8fEn49Ynisy8klKykNZ//y+e2pMK85c+YQHR3NlStXiIqKIigoiMuXL/Pcc88Ztrl58ya3bt3i999/L7D/Rx99xLfffouPz+1hUSEhIUybNs3kcS1SZJ85c4alS5cSGBjIsGG3x9wGBASwaNEi5s6dy7Rp04ymxfvH+PHjOXr0KADh4eEEBQWxfPlyk+vupNVqS32MsmjH3HT5+eh0OhSdgqIo5ObkYGVlZbiiPzoqkg7duuNooSkFC82o06HodCjK7Yx5ubloraw4d+QYTlVcqVarJrnZOWz74lscnJ1UmdJN+TujXqegVxTy/84Yd/Q4jq4ueAfWIC8nm91frcHe2QnP6n6mGy0DRT3f506dxsnZmWrVA8i4eZMvFnxAw5DmODo7m27UzAznUrn7XP6Jg6sLPoE1ycvJ5pcvv8Pe2Qmv6v4Wz/jvedTddR5P4eTsYjiPny/4gEYqnUdDRkVB0f2b8fyp0zje8VyveO8jGoY0k4zFUP5+z/z7msxDa6Ul6/pNtk7/gPq9OlG/Z0dVst2ZUX9HRl1uHhorLVorK3R5+YauO31+PrrcPLQ21ha/kN2QT6+AoqDk5aPRavFsHkTc2p9JiTmFe+MHuLTxVxwDvFUZj/3PZw//nMe8PDRaLT4hDTizZhuJB4/j1bQu5zb8jHNAVRmPbSFqdzx369aNJ554gscee8ywLCAggMjISMPjWbNmodPpimxjwIABvPLKK/d0XI1eX1E63f/b4jNLN3btiyUfs2LpYqNlI5+J4Mlxz5Kbk8Og7l14e/4CWoS1vu+M+5LOlGq/HV+u4sevvzNa1m3EI1QNrMH2L1ZyPTkFGztbAurVodeoEfjWDix1xvTcrFLtt+ebtexd+YPRsnaPDsKrZgC7v17DzeRUrG1t8Q16gE4jh+JTq0apM4Z4ln4e8DWffsb3y78wWjZk9JP41ajByiXLuJGWjoOTI41btmTE+HG4lXLGmz9Sr5Q6465vvmfPt2uNlrUfPhjvGgH88vUabianYG1ri1/QA3R5chg+tWqW+ljNPEr3B9l3n37G98s/N1o2ZPRTd5zHNBycHGnSsiUjxkeU+jwC5OuL/tAuzveffs4Pn60wWjZo1Ej8atRg9dJPDM91cMtQhj/3zH1lLC1LZtx++Xip9z383UaOfL/ZaFmzIQ+CRsORNZuwtjMeMvD4V6WbRjQpq/RDn06t28GZ9T8aLas7oBv1Bnbnx4lzyEpON1rXdf5kHL3dS3Ws1Oy0Uu13MWoPlzf+arQsoE9bavRtT/qJC5xfuePfebJHPoi9V+m/oXK0KV3H0Nn1P3F+w89Gy2r168wDA7qQ8udZTn2zmeyUdFxrB9Bo9AAcvEp3DgHeCnqo1Ptaire3i+mNLKC0NU5xnPOzuXHjRoHlrq6uuBYx41HXrl1ZsmQJQUFBRstzc3Pp2LEjy5cvp1GjgvcS+eijj8jMzJQiu6IqixeguZW2yLak0hbZlnQ/Rbal3E+RbUmlLbItqbRFtjB2P0W2pdxPkW1JpS2yLam0RbYlSZFdcmVR46xdvpSFCxcWWD5+/HgmTJhQ6D5FFdlbt25l8eLFRj3bd/roo49Ys2YNVapUwdvbmwkTJtC8eXOTGdW/S4AQQgghhPjPKot5rUeOHMnAgQMLLC+qF7s4a9euZfDgoqfnHTZsGOPGjcPGxoa9e/fy7LPPsnnzZtzdi/8mRIpsIYQQQghRoRQ3LOReJCYmcuDAAebOLfruw97e/47db9euHb6+vpw5c4ZWrVoV27ZFp/ATQgghhBCVS3mewm/dunV06tSp2F7pxMR/70584sQJrly5Qq1atUy2LT3ZQgghhBDiP2vmzJls27aN5ORknnrqKdzc3Ni0aRNwu8h+/fXXC+wzduxYnn/+eRo3bsyCBQv4888/0Wq12NjYMHfuXKPe7aLIhY/lhFz4aB5y4aN5yIWP5iMXPpqHXPhoPnLho3nIhY8ldzkj2+xtBjjZm71Nc5PhIkIIIYQQQpiZDBcRQgghhBBlprIOmZAiWwghhBBClJmymMKvIpDhIkIIIYQQQpiZ9GQLIYQQQogyU1nn2JCebCGEEEIIIcxMerLLiWUnf1Q7gkktvE1PvK62wTWbqR3BpC/O7FM7gkk2Wiu1I5TI3sSzakcwyc+pitoRTNIp5b+X6WZe+Z+es66bn9oRSsTbvp7aEUzq6FRD7QjCjMr/J0zZkCJbCCGEEEKUocpZZstwESGEEEIIIcxMerKFEEIIIUSZqaTXPUpPthBCCCGEEOYmPdlCCCGEEKLMVNab0UiRLYQQQgghykxlLbJluIgQQgghhBBmJj3ZQgghhBCizFTOfmzpyRZCCCGEEMLspCdbCCGEEEKUnUo6h5/0ZAshhBBCCGFm0pNdwZ2O3s35X34n/VI8NduG0DriMQB0+fn89tFXpJ67SEZyGl3ffI6qDeuqknHP+k0c3PYjCefjaN6lI8Mmv1Bgm21frWLbipU8Pedtglo0s3jG7779ho2RkZw9c5qevR9k2qx3DOvWr/2eL5d/SkpyMk1DQnhz+ky8fXwsnvHY5h85+dNeUuKuULdDK7pNGA3A1VNn+X3lepLOXUCj1eLfqB7tRw/HycPN4hkB/ti0g+M795ASd5mgDmH0fGEsAAmn/uK3b9dx7ewFtFot/sH16DxmhCo5K0LGX9dv5uC2nVy9EEezzh14ZPLzBbbZ8dVqtn+5ijFz3qJuSFOLZ/wtcjMx23/i6oU4mnbuwJCXJwCQGHeJ7+d9SErCVQD86zxAn2dHU7VmdYtnBPhr2x7idh3g+qUEqrdpTstxjwKg5Oezf+E3pJ2/RGZyGh1fj8CnYR1VMh7ZtJ0/f7z9mqzXsTW97nhN/vrNDyT+/ZoMCK5P57EjcFbhNVlRnm9R/lTOfmwL9WSnpaUxduxYevXqRd++fRk/fjypqakAHDlyhH79+tGrVy9GjRpFSkqKYb+JEyfSvn176tWrR0ZGhlGbxa27W1HHOH/+PI8//jjh4eH06dOHKVOmkJ2dXWQ7O3fuJDw8nB49evDiiy+SlZUFQG5uLqNHjyYsLIywsLBSnaPScnB3pdHAHtTuXPC4XvVq0ea5x7F3c7VoprtV8fSg+2OP0KpX90LXJ8cncPSXX3H1dLdwsn95+/gw6uln6DtwkNHyQwd+Z/GHHzDvw4Xs2Psrfv4BvDF5kioZHT3caDGkDw26tTdanpORScOeHXl8yVweXzoXGwd7di78XJWMAE4ebrR6uC8Nu3cwWp5zK5PGPTvx1LL5PPXJfGwdHNj+0aeSsQiunu50e+xhWvbqVuj6lPgEju36FRcP9d43Lp4edBk+hBY9jTO6enow/I1JvPn9l7zx3Rc0aNOS1bMXqJTy9udk/QHdCezUqsA6r3q1aPXscOzdXFRI9i8nD3fCHulHo7tek9m3MmjcqzOjP/k/Rn/6f9g62LPtQ3VekxXl+Rblj74M/qsILFJkazQaxowZQ3R0NFFRUVSvXp358+ejKAqTJk1i6tSpREdHExoayvz58w37DRkyhMjIyELbLG7dnYo7ho2NDVOmTGHr1q1s2LCBrKwsli9fXmg7GRkZvPnmmyxZsoTt27fj5ORk2Far1TJ69Gi++OKLezwz9696q6YEtGyCnbOT0XIra2vqP9gZ7/q10Wg1Fs91p8Yd2hDcrjWOroX/Elv34VIeGvsEVtY2Fk72ry7de9C5WzeqVKlitHzPL7/QrUdPHqhTBxsbW0Y/M47Dhw5y+dJFi2d8oHULaoeFYO9i/FzXDGlMnbYtsXV0wMbOjsa9u3H15BmL5/tHnTahPNC6BfYuzkbLA1s0oW67Vtj9nbPpg92IP/GXZCxCcIc2NGoXVuT7Zv1Hn9B7zBNY26j3hWRw+9Y0bFswo4OzE+7VfNBoNOgBjVZLSnyCOiEB/5ZN8A9tjO1dn5Naa2vq9u6IV73aaDTqjp6s2yaUOoW8Jmu1aErQna/Jh7oTf0Kd93dFeb6FKC8s8qni5uZm1MPbrFkz4uPjiY2Nxc7OjtDQUACGDRvG1q1bDdu1adMGT0/PQtssbt2dijtGQEAADRs2BG4Xyk2aNCE+Pr7Qdnbt2kVwcDCBgYGGdrZs2QKAtbU1bdu2xcVF3Z6QiuiPX/ZibWNDg7BQtaMU6c6/mPV/X7xx9ow6hVdJxB8/jUd1f7VjmHTlz1N41vBTO0axymvGo7/sxdrGmvphLdSOUqzpg0Ywrc9QNn78KZ2GDVY7zn/C7ddk+Xx/y/MtiqLX683+UxFY/E93RVFYuXIlXbt2JSEhAT+/f3+BeXh4oCgK6enpZjteSY+RnZ3N2rVr6dq1a4na8fPzIyFB/lK/H9mZmWz57Cv6PzdG7ShFatOuPTuiozlz6hTZ2dksX7IYjUZDdnaW2tEKlXzhEgfXbKDNyIfVjlKspAuX2P/dBtqPHKp2lCKV14w5mVls/ewb+j5bft83/5j6w9dMXfc1fZ8bg98DtdSOU+ElXbjIvtWRdHiyfL0m/yHPtxDGLF5kz5gxA0dHR0aMGGHpQxcpPz+fl156idatW9OtW+HjH4X5bftyFSHdO+NRraraUYrUqk0bnn72OV7934sM6NUTX39/HJ2c8KlaTe1oBVxPSGTTzPdpP+pR/BoGqR2nSOkJiURO/z86jR6Of6N6ascpVHnOuP3LVYR074RHNctffFsatvb2tHqoF2vmfcgtM3agVDbpCYmse/v/6DzmMQLK2WvyTvJ8C/Eviw7mmzNnDnFxcSxZsgStVouvr6/R8IzU1FS0Wi1ubm6lPsbixYsNw0GmTJli8hg6nY6XX36ZKlWq8MYbbxi2e/vtt4mJiQHgvffew9fXl/379xvWx8fH4+vrW+qcAv46fJT0pGR+23B72M2t6zf4auY8ugwdRNdy9FXjw48O5+FHhwMQd+ECny1bygN11JmBoCg3ryWz4a3/o8XDfanXua3acYp041oyP0ydS6tH+tGgSzu14xSqvGf86/BRrien8FvU7c+5jOs3+GbmfDo/MpDOwwaZ2Fsder2evJxcbiSn4nwfn++V1Y1ryaydOpewR/rTsBy+Ju8mz7e4W0W5UNHcLFZkL1iwgNjYWJYtW4atrS0AwcHBZGdnc/DgQUJDQ1m1ahXh4eH3dZyIiAgiIiIMjxVFKfIYiqLw6quvYmVlxaxZs9Bo/r1AcNq0aUbt+vj4MGPGDC5cuEBgYCCrVq2id+/e95XVHBSdDr1OQVEU9IoeXW4eGistWisrdHn5hgnglXwdutw8tDbWRv+flqDT6W7nVG7nzMvNRWtlxTNzp6PT6QzbffDcRPqNG039ViEWzQe3v83Q6XQof2fMycnBysoKnU7H5YsXqV2nDolXE5j99lsMe2wErnddIGkJik6HolNQFD16RSE/Nw+tlZbM9BtETptPcO+uBPfqbPFchee8/Xzfznn7+c5Mv8EPb86h6UPdaRJe+LAsyfivf943yl3vm7Hz3kbJ//d989H4SfR55inqqfC+Keq9fe7IMZyquFKtVk1ys3PYvuJbHJyd8K4RYPGM8O/npL4cf04qd53Lf1+T1/n+zXdp+mA3mvYuH6/J8v58C1FeaPQWGD1+5swZ+vTpQ2BgIPb29sDtiw4XLVpETEwM06ZNIycnB39/f+bNm4eXlxcA48eP5+jRoyQmJuLj40NQUJBhRo/i1t2tqGP8/PPPPPPMMwQFBaHV3h45ExISUqDA/seOHTuYN28eiqLQoEED3n33XRwdHQEYPHgwiYmJpKSk4O3tTYcOHZg1a1aJz9FbMVtKvO2djn2/hdi10UbLggf3ovGQ3myY8DYZyWlG6/p++CbO3qYvGC1MC+/SjbGLXrGS7V+tMlrW4/Fh9Br5qNGyWY+N5eH/PXdf82R3rFq6HuZlHy/i08UfGy0bE/Esj454nGeeHMnly5dwdHSk74CBjJvwPFZWVqXO+MWZfaXa7/dVkRz8boPRstBH+qHRwIHVG7C2tzNa9/S3xv8/98JGW/r/v30r17F/tfHMP2FD+4NGw/5V67G5K+ezq5aW+lilZcmMfk6l+4Ns+5er2PHVaqNl3R8fSo8nhhkte3fE0wz+33P3NU+2Tindr4EdX61i59ffGS3rOuIRqtaswfYVK7mRnIK1nS3V69Wh51Mj8K0dWOqMMcnnS73vn2ujOfHDNqNlDQb1pNHgXmx+YSaZd31O9n7/dZy8Pe75ONWdvUqd8beV69i3ar3RstbDBoAG9q0s+Jocv3pZqY/lbV+6i/Qt+Xx3dKpR6n3Fv7y9y8eEDCeup5ne6B41qKLe9KUlZZEiW5hW2iLbkkpbZFtSaYtsSyptkW1J91NkC2OlLbItqbRFtiXdT5FtKfdTZFtSaYtsS5Ii2zykyFaX3PFRCCGEEEKUmcranytFthBCCCGEKDOV9cJHdW9xJYQQQgghxH+QFNlCCCGEEEKYmRTZQgghhBBCmJmMyRZCCCGEEGWmsl74KD3ZQgghhBBCmJn0ZAshhBBCiDJTOfuxpcgWQgghhBBlSKbwE0IIIYQQQpiF9GQLIYQQQogyJD3ZQgghhBBCCDOQnuxyIj4jRe0IJjnZ2KsdwaRsXb7aEUw6mXZJ7Qgm9akZonaEEknPzVI7gklKBZi6ysHaRu0IJtlqy/+vqwOJJ9WOUCLvNhysdgRRyVSAj8EyUf4/tYQQQgghRIUlFz4KIYQQQgghzEJ6soUQQgghRJmpnP3Y0pMthBBCCCGE2UlPthBCCCGEKDN6la98nDNnDtHR0Vy5coWoqCiCgoIA6Nq1K7a2ttjZ2QHw8ssv06FDhwL7Z2VlMWXKFP7880+srKx45ZVX6NKli8njSpEthBBCCCHKkLpFdrdu3XjiiSd47LHHCqz78MMPDUV3UZYvX46zszPbt2/nwoULPPbYY2zbtg0nJ6di95MiWwghhBBCVCg3btzgxo0bBZa7urri6upqtCw0NPS+jrVlyxbeffddAAIDAwkODmbXrl307t272P2kyBZCCCGEEGWmLPqxV6xYwcKFCwssHz9+PBMmTChxOy+//DJ6vZ4WLVrwv//9r0CBDhAfH4+/v7/hsa+vL1evXjXZthTZQgghhBCiQhk5ciQDBw4ssLywIrko33zzDb6+vuTm5jJr1iymT5/O/PnzzZZRimwhhBBCCFFmyuLOt4UNC7lXvr6+ANja2jJ8+HAiIiIK3c7Pz48rV67g4eEBQEJCAmFhYSbblyn8hBBCCCFEpZKZmcnNmzeB27OfbN68mQYNGhS6bXh4OKtXrwbgwoULHDt2rNBZSO5mkZ7stLQ0Jk+ezMWLF7G1taVmzZpMnz4dDw8Pjhw5wtSpU8nJycHf35958+bh6ekJwMSJE9m/fz9JSUnExMQYXcVZ3Lq7FXUMRVF49NFHycrKAsDb25u3336bgICAe2rnXvOY05WdB7i69w8yrlzDp1Uj6o/qb1iXduI8Z77ZQk7qdVxq+VN/VD/sPd0skutOf275iTM//UbqxXgeaB9Kp/FPAnDt9DkOrtpAyrmLaLRafBsG0Wb0UBzdq1g8477IzcRs/5nEC3E06dyewS/fHs91Le4S38/7iNSE22Ov/OrUps+zo/GpWd3iGQEu/7ifhL1HuHXlGlVbBdNw9L9flaUeP8fpbzaRnXod11oBNBg1AAcvN4tn3L1+Iwe27STh/AVCunTk0ckvFtgm+qtVRK/4lnFzphPUopnFM/4etZU/tv/CtQsXCe7cjv7/exaApIuXWT9/EWlXEwHwrVOL8HFP4V2j8M+EsvRr5GZitv3E1QtxNO3cgYcn3X5NJsZdYs3cD0n5+zXpX/cB+j47mqoqvCZ3r9/I79E/Gp7r4a+8VGCb6C9XsnXFt4ybO4N6KjzXAKeid3H+l99JvxRPzbYtaBNxe4YBXX4+v370JannLpGRnEq3N8dTtWFdVTLG7zzItd+OkXElCe+WDQl6qo9hXfqJC5z9Npqc1Bu41PKj7lN9sPe0/OekEKWlqDy7yMyZM9m2bRvJyck89dRTuLm5sWTJEiZMmIBOp0NRFB544AGmTZtm2Kd///4sW7aMqlWrMnr0aF599VV69OiBVqtl+vTpODs7mzyuRm+ByQvT09M5deqUoWt9zpw5XL9+nZkzZ9KrVy9mz55NaGgoH3/8MZcuXWL27NkA/PbbbwQFBdG2bdsChWtx6+6kKEqxx7h58yYuLi7A7UH0Bw4cKHQgval2SpqnKE/v/vqetv9H0qETaLQaUmPPoeTlGYrsvJuZ7H9tIfVG9sGzaRDn1//M9TMXCXltVKmOA1DXzd/0RoU4v+8wGq2Gy0eOo8vNNRTZl2JiycvOIaBZQ7RWVvz66Soy09IJf+P5UmcMdPEu1X5/7tmHRqvhr4NHyMvNNRTZWbcyyL6VgVtVb/SKwv6orRzcuoMJS94rdcadl4+Vet9rh46j0WhI/fMsutw8Q5GdezOD36Z8SIOR/fBsFsT5dT+RfiaO0NfHluo4fWqGlDrj0d2/otFqOXUghrzc3AJFdnJ8Ap9NfYfMmzcZPvnF+yqy03OzSrXfib370Wi0nI35g/zcXEORnX0rg+yMDKr4eKNX9BzYGM3h6J2M+3heqTM6WNuUar/YPfvQaDScOXSEvJxcQ5F992vytw23X5MvLC39a9LeqnQZj+7+FY1Gw8mDh8nLySlQZN9+rmeRceMmw1956b6K7APXzpV630u//wEaDQlHT6LLzTMqss9s24NH7ers+eAL2k144r6K7Is3TV8IVZTkmFNoNBrSjp9Dyc03FNl5NzM5+PoS6j7RG4+mdYmL3MWNM5doOmVkqY/1bsPBpd5XVCze3i5qRwBgX9Jls7fZ2tvynR/3yiLDRdzc3IzGrjRr1oz4+HhiY2Oxs7MzTK0ybNgwtm7datiuTZs2hp7iuxW37k6mjvFPgQ1w69YttNrCT8n9ZC1L3i0a4NW8PjbODkbLk2JO4uTnjXdoQ7Q21gT260jGpUQyE5ItnrFW6+YEtmqGvYvxHx7VQ4Kp3bYFto4OWNvZ0rB3ZxJPnrV4PoBG7VvTsG0YDq7GH0gOzk64V/NBo9GgBzRaLanxpf9Fer98WjTEO6QB1k53P98ncPLzxqdlI6xsbKjVvzO3LiWSkZBk8YxNOrSlcbvWOBYxVm7th0voM3YkVtbqXRLSoF0Y9du2xMHFuCfC3tkJt6q3n2/Qo9VqDd9iWFpw+9Y0aheGo0vxr0mtlZaU+ARVMjbp0JbG7dvg5Fr4L/Lbz/WTqj7XANVbNaV6yybYORt/BllZW1P/wc741H8AjVajUrrbvELq4dk8CJu73tsph0/h6OeFV2gDtDbW1OjbnozL18hMSFEpqRCipCz+yacoCitXrqRr164kJCTg5+dnWOfh4YGiKKSnp+Pm5maW45XkGGPHjuX48eO4u7uzfPnyUrdTnmTGJ+EUUNXw2MrOFntvdzLik3D09VIxWdGuHj+DW3U/0xuqYOagx8nNykav19P1iWFqxykg40oSLtWrGR5b2dni4O1OxpUknHxL17tfFo78sgdrGxsahoWyVu0wxZjz8FOG57vziIfVjlOotweOMGTsXg5fk3c+16L0MuKTcaruY3h8+7Pcjcz4JBx9Ld+xI0RplMWFjxWBxYvsGTNm4OjoyIgRI9i+fbulD1+oTz75BEVRWLp0KYsXL+att95SO9J90+XkYuPsaLTM2sEOXXauSomKl3LhMoe/30SPyYVf2au2N374itzsbA5v/xk3n/JTtP5Dl5OLjctdz7ejPbrsHJUSFZSdmcnmz75i3Jzpakcx6ZU1n5Obnc0fO36hSjl8vgGmrfua3KxsDm3/Cfeq5StjdmYmm5Z/ScTcGWpHqfCUQt7bVg526HLK52e5EOJfFp1dZM6cOcTFxfH++++j1Wrx9fUlPj7esD41NRWtVntfPcOLFy+mf//+9O/fn3379pX4GFqtliFDhhAZGXlf7ZQXVna2BQosXXYOVva2KiUq2vWEa0S/8xGtn3qEaipddFQStvb2tHyoJ9/P+5Bb6dfVjmPEys4WXZbx852flYOVvZ1KiQqK/nIlLbp3waNaVdMblwO29vaEPtiDyP9bREY5e77/YetgT1ifXnw390NupaWrHccgesVKQivQc12eae1syb/rva3LysXKrvx9lgtRFH0Z/FcRWKwne8GCBcTGxrJs2TJsbW9/OAQHB5Odnc3BgwcJDQ1l1apVhIeH39dxIiIijOY5VBSlyGOkpqYCGOY93Lp1K/Xq1bvndsojRz9vEn/9w/BYl5NLVlIaTn7lq8frZlIKW6a/T/PBD1G3U2u145ik1+vJy8nlRnIKzm7l5+p+J39vrhZ4vlNx8i8/z/eZw0e5npTMrxs2A3Dr+g1WzJxL16GD6TasfF6Idfv5zuFGSipO5ej5vpPhNZmSirO7m9pxADh9+A+uJyWz947n+ssZc24/148OUTldxeLk50Xib/9eLK3LySU7KQ3HcvZZLkRxZLhIGTpz5gxLly4lMDCQYcNujx0MCAhg0aJFzJ07l2nTphlNi/eP8ePHc/ToUeD2HIVBQUGGMdPFrbuTVqst8hhJSUlMmTKFvLw8gALHL2k795LH3PQ6Bb3yz48eJS8fjVaLV0g9zn2/g6RDJ/BsUpe4qF04BVRVZTy2otOh6P7NmJ+bh9ZKS1b6DTa/9R4NwzvToFdHi+e6k06nQ9Hp0CsKiqKQl5uL1sqK80dicaziQrVaNcnNzmHHipU4ODupMqUbYMiIXo9e0aPLy0Oj1eId0oC/1mzn2sHjeDaty/kNv+AcUFWV8dj/nEtF0Rmdy4i5M9DpdIbt3n9uIv3GjaJBqxYWz6jc+XzrFPL/eb7/+BPHKi5UDaxJXk42P325GntnZ7yrl25mnfvx73k0fk2eO3IMpyquhtfkti++Ve01WVTGZ+fNNHqu33v2f/SPGK3Kcw1/v2/u+KzU5eahsdKitbJCl5cPfxcASr4OXW4eWhvrvy9+tRz9HZ+RekUxfJZ7Nq/H+e9/IvnQSTya1OHixr04BfjIeGwhKgCLTOEnTCvtFH4XIn8hLmqX0bKafTsS2L8TacfPcebbreSk3DFP9n3Mm1zaKfwOrY7i8JpNRsuaP/wQGo2GmO82Yn3XkIYnv/6g1BlLO4Xfj1+t5qevvzNa1mXEI1StWZ0dK1ZyIzkVaztbAurVoedTj1GtdmCpM97PFH7nIn/iwoZfjJYF9utE7f5dSD1+ltPfbCY75Tqutf3/nifbvVTHuZ8p/Lau+JZtX60yWtbz8WGEjxxutGzGY2MY+r/xqkzh9/PXa9j17fdGyzoOH4JPzQB++uo7biSnYGNri1+9OnR78lGq1qpZ6oylncJvx5er+PGu12S3EY9QNbAG279YyfXkFGz+fk32GjUC3/t4TZZ2Cr+tK74l+suVRst6PfFoged6+vDRDJ04QbUp/I5+v4XYtVuNlgUPDqfJkN5ETnibjORUo3X9PpyKs/e9F7H3M4Vf3IbdXNq4x2hZ9T7tqdmvA+nHz3N25TZyUm/gXMuPoCcfuq/PcpnCr/IoL1P4/XL1gtnb7FQt0OxtmpsU2eVEaYtsSyptkW1JpS2yLel+imxLuZ8i25JKW2RbUmmLbEsqbZFtSfdTZFvK/RTZliRFduUhRba61J28VAghhBBC/KdVlAsVzU2KbCGEEEIIUWaUylljW3YKPyGEEEIIISoD6ckWQgghhBBlprIOF5GebCGEEEIIIcxMerKFEEIIIUSZqaw3o5GebCGEEEIIIcxMerKFEEIIIUSZqaw92VJkCyGEEEKIMiMXPgohhBBCCCHMQnqyhRBCCCFEmZHhIkJV2grwpcKVW8lqRzDpVOpFtSOY1MCjptoRTDpz45raEUpkz+Xf1Y5gkpejr9oRTMrV5agdwaQLaafUjmDS6vavqx1BCFGOSJEthBBCCCHKjF56soUQQgghhDAvRS58FEIIIYQQQpiD9GQLIYQQQogyU1kvfJSebCGEEEIIIcxMerKFEEIIIUSZqaw3o5EiWwghhBBClBkZLiKEEEIIIYQwC+nJFkIIIYQQZaaSdmRLT7YQQgghhBDmJj3ZQgghhBCizFTWm9FIkV3BXd75O1f3HuHWlWtUbRVMg1EDDOtST5zjzDebyU69jmutABqM6o+9p5vFM8bt2MflPTHcvJyIX1gTmowdbFiXfPwsx7+MIiv1Om61A2gyZhAOXu4Wzxi/8yCJvx0l40oS3i0bUu+pvoZ1aSfOc/bbaHJSb+BSy4+gp/pi71nF4hljt/zE6Z9+JfViPHXat6Tz+CcBSDx9joOrNpB8Lg6NVotvwyDajR6Go7vlMwIc27yTUz/tJSXuCnU7tKLrhFEAXD11lgMr15P0d06/RvVoP/pRnDzcVMl5J38nD8Y06EZt16rcyMvkq1O7+P3aX6pmqgjv7YSfDpH46zEy45PwbtmAuk/2MaxLP3GBcyu3kZN6A+daftR98iFV3jeFqerozotN+9PQoyZ5Sj67rhxj4bGNKHpF7WhCiP8QiwwXSUtLY+zYsfTq1Yu+ffsyfvx4UlNTAThy5Aj9+vWjV69ejBo1ipSUFMN+EydOpH379tSrV4+MjAyjNotbd7fijvGPKVOmmGxr586dhIeH06NHD1588UWysrIAyM3NZfTo0YSFhREWFlbi82IOdlVcqNmnI77tmhktz72ZSezH31FrQBfaf/AKLoG+/Ln0e4tmM2R0c6FO384EdGhxV8YMDn/0LXUHdaf7wteoEujP4Y9Xq5LR1s2Z6g+2o2q7JkbL825mcmLxD9Ts34k27/8P50BfTi5bp0pGJ/cqhAx5iHpd2xotz7mVSYPuHXj043cYvng2Ng72/LzoC1UyAjh5VKHFkD7U79bOaHlORiYNe3ZixJI5jFg6B1sHe35a+LlKKf+l1Wh4pXl/DiWd46mdi1j653aeb/wgvo6W/2PvThXhvW1bxZnqD7Wlatu73je3Mjm5ZB01+nck7L0Xca5ZjVOfRKqSsTAvNu1PWk4GQ7bMYuzOD2jiVZv+tVqrHUuI/yxFrzf7T0VgkSJbo9EwZswYoqOjiYqKonr16syfPx9FUZg0aRJTp04lOjqa0NBQ5s+fb9hvyJAhREYW/sFc3Lo7mToG3C6eNRpNse1kZGTw5ptvsmTJErZv346TkxPLly8HQKvVMnr0aL744guTeczNu0UDvJvXx8bZ0Wh5cswJnPy88QlthJWNNbX6debWpUQyEpItnrFaaCOqtmiIrbOD0fKrh47j7O+Db6tgrGxtqDOwKzcvXeVWfJLFM3qF1MereT1snIwzJh8+haOfF96hDdDaWFOzbwcyLl8jU4XzWKt1CIGtmmHv4mS0vEZIMLXbtsDW0QFrO1uCe3ch8eRZi+f7R+3WLagV1hx7F2ej5TVDGvNA21BsHR2wsbMjuHdXrp5Ut7cYbvdiu9s5szHuEAp6YlMvcSr9Cp38GqiaqyK8tz1D6uHZLAjru943KTGncfTzwqtFfbQ21tTo257My9fIvFqwg0MN1Zw8+OXKUfKUfNJybnHg2ikCXauqHUuI/yy9Xm/2n4rAIkW2m5ubUQ9vs2bNiI+PJzY2Fjs7O0JDQwEYNmwYW7duNWzXpk0bPD09C22zuHV3MnWMtLQ0Fi5cyJQpU4ptZ9euXQQHBxMYGGhoZ8uWLQBYW1vTtm1bXFxcTOaxlIz4azgH/PtLw8rOFgdvdzLir6mYytitK9dwqe5reGxtZ4ujjwe3rpSfjJnxSThV9zE8trKzxd7bjcx4yxc0JZVw/DTu1f3UjmFS/PHTuFf3VztGETRUd/ZSO0ShKsJ7OzMhCaeAwt43lv8DujBr/9pDl4Cm2FnZ4GXvSquq9TiQeFrtWEKI/xiLzy6iKAorV66ka9euJCQk4Of3bzHg4eGBoiikp6eb7XimjjF9+nSef/55kwXy3e34+fmRkJBgtpzmpsvJxdrB3miZlYM9uuxclRIVpMvOwcbBzmiZtYM9+dk5KiUqSJeTV+A8WjvYo8spP+fxTikXLhPz/SbCHh9semMVpVy4xKE1UbQZOUTtKMRnpHEjN5P+gS2x0mhp6lmThh4B2FnZqB2tUBXivZ2Th9Vd720rB7tyk/FoynkCXXzY2Octvuv9GqfSrrAn4U+1Ywnxn6WgN/tPRWDxInvGjBk4OjoyYsQISx+6gM2bN2NjY0Pnzp3VjmJ2Vna2BYpVXXYOVva2KiUqyMrerkDG/OwcrO3titjD8qzsbNBl3ZUxKwcru/JzHv9xPeEaW975iDZPDcW3YV214xTpekIim2Z+QLtRj+LXMEjtOOj0CnMPRxLiXYtPO4+jb2Aov109RUr2TbWjFapCvLftbNDdnTErt1xk1KBhTttR7I7/kwejpjJg03RcbB14ulFvtaMJIf5jLFpkz5kzh7i4ON5//320Wi2+vr7Ex8cb1qempqLVanFzcyv1MRYvXkz//v3p378/+/btK/YYv//+O/v27aNr16507doVgD59+vDXX3/x9ttvG9o5d+5cgXbi4+Px9fUtcPzywsnPh1uXEg2PdTm5ZCWl4uTnU8xeluXs78ONi1cNj/Nzcsm8loqzf/nJ6OjnTcblf7+G1+Xkkp2UhqNf+RpKcDMphU3T3ydk8IMEdSq/F3DdvJZC1FsLaPFwH+p1bqN2HIO4W8lMO/AdT/30MTMPraWqgxt/Xb9qekcVVIT3tqNvUe8bbxVT3eZi60BVR3fWn/uVPEXHjdxMtsYdJKxaPbWjCfGfJWOyy9iCBQuIjY1l0aJF2Nre7s0IDg4mOzubgwcPArBq1SrCw8Pv6zgRERFERkYSGRlJ69atiz3GW2+9xa5du9i5cyc7d+4EYOPGjdSpU4dp06YZ2qlduzYdOnTg2LFjXLhwwdBO797q93woOgVdXj56RUGv6NHl5aPoFLxC6pMRf41rh46jy8vnQtQvOAdUxcnX8sWhotOhy81Dr+jRKwq63DwUnY6qIQ25dSWRqwf+RJebx1+RP+ESUBVnFX4R63UKSl4+ekUPiv72v3UKns2DyLiSRPKhkyh5+VzcuAenAB8cVTqP+X+fR0VRyP/7PGakpLHxrQU0Cu9Mw16dLJ6r6JwK+jty3kpJY8O0+QT37kqjXp3VjmmkprMXNlorbLXW9AsMxc3OiZ+uqDt8oCK8tw3vG/3tjHe+bzKvJJMcc/t9c2njXhwDfHCsZvo6mrJ2IzeT+IwU+tVujVajxcnGnl41WnCunP5RJcR/QWUdLqLRW+DPgTNnztCnTx8CAwOxt789ljAgIIBFixYRExPDtGnTyMnJwd/fn3nz5uHldfuXxfjx4zl69CiJiYn4+PgQFBRkmNGjuHV3K+4Yd6pXrx4xMTE4OTkV0grs2LGDefPmoSgKDRo04N1338XR8faV/4MHDyYxMZGUlBS8vb3p0KEDs2bNKvE5Grf72xJve6fzkT9zIeoXo2WBfTtRq39nUo+f48y3m8lOuY5rLX/qjxqAg5dbqY4DYG9dujGqZ9b9yF+RPxktq9O/C3UHdiP5z784/tVGslLScasdQOMxg3H0Lv3UabdyM0u1X9yGXVzcuMdoWY0+7anZryNpx89zduUd82Q/2Qf7+ziPDTxqlmq/g6ujiFmz0WhZyMN90Gjg0HcbCwyzGfX1h6XOaKW1KvW+B1ZFcvC7KKNloY/0BY2Gg6s3FMg59ttFpT7Wnsu/l3rfOz0e1JFuAY2x0mg5mXaF5Sd3cjUz3SxtezmW7hsvS763c3Wluw7iYtRuLm3ca7Ssep921Ojb4a55sn2pO/Kh+3rfXEg7Vep97/ZAFV+ea9yXB6r4ougVDied5aOjG0jLuXVf7a5u/7qZEgphHt7e5WNChq/OHjZ7m48/0NzsbZqbRYpsYVppi2xLKm2RbUmlLbItqbRFtiXdT5FtSeYqsstSaYtsSyptkW1J5iyyy4oU2aK8KS9F9oq/Ysze5sg6IWZv09wsfuGjEEIIIYQQ/3VyW3UhhBBCCFFmKuugCSmyhRBCCCFEmakoFyqamwwXEUIIIYQQwsykJ1sIIYQQQpQZtYeLzJkzh+joaK5cuUJUVBRBQUGkpaUxefJkLl68iK2tLTVr1mT69Ol4eHgU2P/VV1/l119/xd399uxn4eHhREREmDyu9GQLIYQQQoj/rG7duvHNN9/g7+9vWKbRaBgzZgzR0dFERUVRvXp15s+fX2QbTz/9tOH+KSUpsEF6soUQQgghRBlSyqAj+8aNG9y4caPAcldXV1xdXY2WhYaGFtjOzc2NsLAww+NmzZqxcuVKs2aUIlsIIYQQQpSZsrjwccWKFSxcuLDA8vHjxzNhwoR7aktRFFauXEnXrl2L3Obzzz9n9erVVK9enYkTJ/LAAw+YbFeKbCGEEEIIUaGMHDmSgQMHFlh+dy92ScyYMQNHR0dGjBhR6PqXXnoJb29vtFot69evZ8yYMezYsQMrq+Jv3CZFthBCCCGEKDN6vWL2NgsbFlIac+bMIS4ujiVLlqDVFn6pYtWqVQ3/HjBgALNnz+bq1atGY7wLIxc+CiGEEEKISmfBggXExsayaNEibG1ti9wuMTHR8O/du3ej1WqNCu+iSE+2EEIIIYQoM4rKU/jNnDmTbdu2kZyczFNPPYWbmxvvv/8+S5cuJTAwkGHDhgEQEBDAokWLAOjfvz/Lli2jatWqvPLKK6SkpKDRaHB2dmbx4sVYW5suoTV6tScvFADMOrJN7Qgmnbser3YEkx4L6qR2BJMu3kpVO4JJF25eUztCifyZdFLtCCbVcq+ldgSTprfop3YEk26mZqgdQYgKx9vbRe0IAHx84jezt/lsgzZmb9PcpCdbCCGEEEKUGX0lva26FNlCCCGEEKLMqD1cRC1y4aMQQgghhBBmJj3ZQgghhBCizEhPthBCCCGEEMIspCdbCCGEEEKUGbnwUQghhBBCCDNTyuCOjxWBDBcRQgghhBDCzKQnWwghhBBClJnKet9D6ckWQgghhBDCzKQnWwghhBBClBlFLnwsO2lpaUyePJmLFy9ia2tLzZo1mT59Oh4eHhw5coSpU6eSk5ODv78/8+bNw9PTE4CJEyeyf/9+kpKSiImJwcnJydBmcevuVtwx6tWrR1BQEFrt7U79uXPnUq9evULb2blzJ3PnzkWn09GoUSNmz56Ng4MDubm5REREEBsbC8D+/fvNct5K4uTWXzj7y37SLiZQq10I7Z59HABdfj67P1xByrmLZCSl0nPq81RrVNdiue4Uv/Mg1347RsaVJLxbNiToqT6GdeknLnD222hyUm/gUsuPuk/1wd6zisUz/vzDBn7bup348xcI7dqJkVNeLrDNphXfsPHzr3h+/js0CA2xeMaDUdEc+3EXSRcu0bBTW/q8NA6A5IuXiVqwmPSERACq1alFj2dG4lUjwOIZAU5H7+b8L7+Tfimemm1DaB3xGHD7NfnbR1+Reu4iGclpdH3zOao2VOc1eTd/Jw/GNOhCbdeq3MjL4qtTu/j92llVM53b/isXdx/k5qWr+LduRsgzjwCg5Odz8OOVpJ+/QlZyGu1eexqvBg9YLNfKb75hw/p1nDl9mt4PPcSMd2YDkJeby6uTJ3E8Npb4+Hg+/WIFLVu1KrB/Xm4uDw8aSEZGBtt/+tliuYUQ6pF5ssuQRqNhzJgxREdHExUVRfXq1Zk/fz6KojBp0iSmTp1KdHQ0oaGhzJ8/37DfkCFDiIyMLLTN4tbdydQxAFatWkVkZCSRkZFFFtgZGRm8+eabLFmyhO3bt+Pk5MTy5csB0Gq1jB49mi+++KKEZ8R8HNyr0HhQL+p0aV1gnU+92rQf/wQObq4Wz3UnWzcXqj/Yjqrtmhgtz7uZyYnFP1Czf0dav/8SzoG+nFq2XpWMVbw86P34o7Tp3bPQ9UlX4on5eTdVPD0snOxfLp7utBs6gCY9Ohktd/ZwZ+CUF3lx1Se88O0y6oS1YP3cj1RKCQ7urjQa2IPancMKrPOqV4s2zz2OvcqvyTtpNRomN+/HoaTzPLVzMUv/3MGExr3xdXRTNZe9myv1+nWjRseWBdZ5BgXSYtxQ7Kq4WDyXt483Y58Zx4BBgwqsax4Swqw5c/Hy8ipy/y8++wx3d/eyjCiEEOWCRYpsNzc3wsL+/YXbrFkz4uPjiY2Nxc7OjtDQUACGDRvG1q1bDdu1adPG0ON8t+LW3cnUMUpq165dBAcHExgYaGhny5YtAFhbW9O2bVtcXCz/C69mWDNqtGyKnbNxT76VtTUNH+pC1foPoNGqO/TeK6Qens2DsHFyMFqecvgUjn5eeIU2QGtjTY2+7cm4fI3MhBSLZ2zesT3NOrTFybXw53DV+4sY+MworKzVG2FVr20rgtq0xOGujPbOTrhV9Uaj0QB6tFotaX/3aquhequmBLRsUuhrsv6DnfGuXxuNVqNSuoL8nTzwsHNiY1wMCnpiUy9xKj2ejn4NVM3l1zIY39BG2Do7Gi3XWlvzQHgHPOvVUuU8du/Rk67du+Pm5ma03MbWlhFPjCSkRQu0VlaF7nv58mU2bYxi9NinLZBUCFFe6PV6s/9UBCWuGNLT0/nss884ceIEmZmZRuu++eabEh9QURRWrlxJ165dSUhIwM/Pz7DOw8MDRVFIT08v8AFeWiU5xuOPP45Op6Njx45MmDABW1tbk+34+fmRkJBgloyVVUZ8Mk7VfQyPrexssfd2IzM+CUdf039AWcqhn3dhbWtDcOuCX32XJwuGjiE3Kxu9Xk/Hx4aoHadC0wA1nIvujRWl8+6smUx48UXs7O3VjiKEEGWuxEX2xIkTyc3NpXfv3jg4OJjeoQgzZszA0dGRESNGsH379lK3Yy4///wzvr6+3Lp1i0mTJrFo0SJeeukltWNVCkpOLjYuxr10Vg526HJyVUpUUHZmJpGffMEL899RO4pJ/1v9KbnZ2Rz7cTdVfKRALKn4jDSu52bRLzCUTXExNPIIoKFHALGpl9SO9p/y447tKDqFbt17cOD339WOI4SwoMo6JrvERfbhw4fZt29fob28JTVnzhzi4uJYsmQJWq0WX19f4uPjDetTU1PRarX31Yu9ePFiw3CQKVOmmDyGr68vAM7Ozjz88MN8/vnnALz99tvExMQA8N577+Hr62t0QWN8fLxhX1E6Wjtb8rNyjJbpsnKxsiv9a8zcNn7xNWE9u+HpW03tKCVia29PSO9uvP/YOJ5ePA8nN8tfRFrR6PQKcw9vYHSDLgyoFcrZG4n8evU0+YpO7Wj/GZmZmbw/fz4LlyxVO4oQQlhMiYvsevXqcfXqVWrUqFGqAy1YsIDY2FiWLVtmKNSDg4PJzs7m4MGDhIaGsmrVKsLDw0vV/j8iIiKIiIgwPFYUpchjXL9+HTs7O+zt7cnPzyc6OpoGDW6Pw5w2bZpRuz4+PsyYMYMLFy4QGBjIqlWr6N27931lreyc/LxI/O2Y4bEuJ5fspDQc/bxVTGXs1KEjpCUls2v9RgBuXr/Op2+/Q89HH6HX8EdUTlc4vV5Pfk4ON1PSpMguoYu3kpl2YI3h8cxWQ/k5/riKif5bLsbFER8fz1OP3579KC8vj1u3btK1Qwe+WrUKf39/lRMKIcqSnsp5W/Vii+zvv//e8O/WrVszZswYBg0aVODK8SFDih//eebMGZYuXUpgYCDDhg0DICAggEWLFjF37lymTZtmNL3eP8aPH8/Ro0cBCA8PJygoyDCjR3Hr7qTVaos8xrlz55g6dSoajYb8/HyaN2/OCy+8UOj/g7OzM9OnT+eZZ55BURQaNGjA66+/blg/ePBgEhMTuXHjBh07dqRDhw7MmjWr2PNiDopOh16noFcU9IoeXW4eGistWisrdHl5/DM1pZKfjy43D62N9d8XyFnOnfn0ioKSl49Gq8WzeT3Of/8TyYdO4tGkDhc37sUpwEeV8di6fN3tc6koKIpCXk4uWisrXljwLrr8fMN2c8Y9z+DnnqZRq4IzPpQ1RaczPN+KopCfeztj3NHjOLi64BNYg7ycbH75ag32zk54Vfcz3WgZ5fwnY8HXZD78/bWhkq9T7TV5txrOXiRkpqFBQ68aTXG3c+LnK+oW2Ubvbb1Sbs5jfn4+Op0OnU5Bp9ORk5ODlZUV1tbW5ObmGi5IysvLIycnB1tbW+rUrUv0jzsNbRw5cph3Z85k1fdrcfdQb8YeIYRlVNbhIhp9MZdoPv53r0OxDWg0fPnll2YNVRnNOrKtVPsdWbOZo99vMVrWZEhvmj38IGvHTyMjKdVo3aCP3sLZp3RF7Lnr8aY3KkTcht1c2rjHaFn1Pu2p2a8D6cfPc3blNnJSb+Bcy4+gJx/C3sutVMcBeCyok+mNCrHx86/YtML4At6HRj5Gn6eM3wOvD32CEZNevK95si/eSjW9USF2f/M9e1b+YLSs/aOD8KoZwK6v13AzORVrW1v8gh6g88hh+NQq3bdOABduXiv1vse+30Ls2mijZcGDe9F4SG82THibjOQ0o3V9P3wTZ+/SvSb/TDpZ6px3ejyoA10DgrHWaDmRdoXPTv7E1czrZmm7lnutUu138oftnFq3w2hZvYHdqT+oB9teepesu85jjwWv4OhduoJ1eot+Jd528cKFLPl4kdGycc8+R8T48fTu3s1oeB7A5u07CvRUH/j9d157ZfI9zZN9MzWjxNsKIW7z9rb8rGeFmXE42vRG9+jN5r3M3qa5FVtkC8spbZFtSaUtsi2ptEW2JZW2yLak+ymyLclcRXZZKm2RbUn3UmSrRYpsIe5deSmy346596mTTZkWcn/Diy2hxBMoDxgwoNDlgwq5IYEQQgghhBCVWYkvfIyLiyuwTK/Xc/nyZbMGEkIIIYQQ/x16KuegCZNF9uTJk4HbF7H88+9/XLlyhTp16pRNMiGEEEIIUeFV1gsfTRbZd07Zd/f0fSEhIfc95Z4QQgghhBD/NSaL7PHjxwPQtGlTOnToUOaBhBBCCCHEf0dlnWOjxGOyO3TowLlz5zh58iSZmZlG60zNky2EEEIIIURlUuIie8mSJSxatIj69etjb29vWK7RaKTIFkIIIYQQhVLkwsfirVixgjVr1lC/fv2yzCOEEEIIIf5DFH3lvK16iefJtre3p3bt2mWZRQghhBBCiP+EEhfZL7zwAjNnzuTatWsoimL0I4QQQgghRGH0er3ZfyqCEg8XefXVVwFYs2aNYZler0ej0XDixAnzJxNCCCGEEKKCKnGR/eOPP5ZljkovPSdD7QgmjW3YXe0IJkVeiFE7gkmtq9ZVO4JJf6Zmqx2hRNwdvdWOYFJiRrLaEUy6mVr+P3+EEBWXXPhogr+/PwCKopCcnIyXlxdabYlHmwghhBBCCFFplLjIvnXrFtOnT2fz5s3k5+djbW3NQw89xBtvvIGLi0tZZhRCCCGEEBVURRlDbW4l7oqeOXMmWVlZREVFcfToUaKiosjKymLmzJllmU8IIYQQQlRgil5v9p+KoMQ92bt372bHjh04ODgAUKtWLWbPnk2PHj3KLJwQQgghhBAVUYl7su3s7EhNTTValpaWhq2trdlDCSGEEEKI/wbpyTZhyJAhjBo1iieffBI/Pz/i4+P54osveOSRR8oynxBCCCGEEBVOiYvsiIgIfHx82LhxI9euXcPHx4cxY8YwZMiQsswnhBBCCCEqMD2V88aFJS6yNRoNQ4YMkaJaCCGEEEKUWEUZ3mFuJovs9evXm2xkwIABZogihBBCCCHEf4PJIvvVV1+lZs2aeHl5FTrPoUajkSJbCCGEEEIUqrLOk22yyH7iiSfYunUrTk5ODBgwgO7du8uMIkIIIYQQQhTDZJH92muv8corr7B7927Wr1/PO++8Q+fOnRkwYAChoaGWyCiKcX77r1zcfYibl6/i37opzZ++PduLkp/PocWrSD9/mazkdNpOGYtXgwdUybh97Xr2bI7m8rnztO7ehbGvvwJAUsJVXn74Mewc7A3bPvTYMPo/+bjFM57dtpe43Qe5cSmBgDbNCH1mGHD7PP6+6FvSz18mMzmNDq+Nw7uhOucRYO/6TRzctpOrF+Jo1rkDQye/UGCb7V+tZvuXKxk7523qhjS1eMaK8Jq8svMAV/f+QcaVa/i0akT9Uf0N69JOnOfMN1vISb2OSy1/6o/qh72nm8UzXv0phqTfYsmMT8YztD51nnzQsO76yTjOr9xBbuoNnGv58sDI3th5VrF4RiGEKAmFytmTXaJ5sq2srOjcuTPvv/8+W7ZswdXVlSeeeIJ9+/aV6CBpaWmMHTuWXr160bdvX8aPH2+Yc/vIkSP069ePXr16MWrUKFJSUgz7TZw4kfbt21OvXj0yMjKM2ixu3d2KO0Z6ejr/+9//6NWrFw899BALFy4sVTv3ksec7NxcCerfleodC/7B41E3kJBnhmFXRd3b3rt7edJv5GN0eCi80PWLt2xg2fZNLNu+SZUCG8De3ZX6/btRs1PLAuu86tUiNOJR1c8jgKunB90ee5iWvboXuj4lPoFju/bi4uFu4WT/qgivSdsqztTs055q7ZoZLc+7mcmfH6+h1oDOtPtgEi6Bfhxf+oM6Gd2c8X+wDd5tg40z3srk9JL1VO/XntAFE3CqWY0zn0apklEIIUqiss6TXeKb0dy8eZNVq1YxduxYduzYwbPPPkuDBg1KtK9Go2HMmDFER0cTFRVF9erVmT9/PoqiMGnSJKZOnUp0dDShoaHMnz/fsN+QIUOIjIwstM3i1t3J1DFeffVVmjRpQnR0NJs2bWLo0KGlaqekeczNr2Uwvi0aYevsaLRca23NA+Ht8awXiEarsXiuO4V26kCLju1xdnVVNUdx/Fs2xi80GFtnJ6PlWmtr6oR3wKteLTTaEr9dykzjDm0IbtcaR9fCi9R1Hy2j95gnsLYp8cRBZlcRXpPeLRrg1bw+Ns4ORsuTYk7i5OeNd2hDtDbWBPbrSMalRDITki2e0aN5EB7N6mLjZJwx9fAZHPy88GxRD62NNQF92pJxOYmsqylFtCSEEJXbnDlz6Nq1K/Xq1eP06dOG5efPn2fo0KH06tWLoUOHcuHChUL31+l0vP3223Tv3p0ePXqwZs2aEh3XZNWwc+dOnn/+eXr37s3x48eZNGkS27ZtY/z48VSpUrKvJ93c3AgLCzM8btasGfHx8cTGxmJnZ2cYdjJs2DC2bt1q2K5NmzZ4enoW2mZx6+5U3DEuXLjA6dOnGTlypGF7b2/ve27nXvKIgv435FFeHDiUT96Zy83062rHqbCO/rIXaxsbGoTJMK7SyoxPwimgquGxlZ0t9t7uZMQnqZjKWFZ8Mo4B/35O3c7oRma85f8QEEKIktDr9Wb/uRfdunXjm2++wd/f32j5tGnTGD58ONHR0QwfPpypU6cWun9UVBQXL15k27ZtrF69mo8++ojLly+bPK7J7q5nn32WWrVq0bdvX+zt7dmzZw979uwx2uaFFwqOCy2KoiisXLmSrl27kpCQgJ+fn2Gdh4cHiqKQnp6Om5tbidssTnHH+Ouvv6hatSqvv/46J06cwMvLi8mTJ1O3bt17asdcWSsblypVeOvTj6lRpw63blznywUfsmT6O0xaMEftaBVOdmYWWz77mrFz3lI7SoWmy8nF5q4eeGsHO3TZuSolKkiXk4eNi3HvtpW9LbrsPJUSCSGE5d24cYMbN24UWO7q6orrXd+cF3YNYUpKCsePH+fzzz8HoE+fPsyYMYPU1FQ8PDyMtt28eTMPP/wwWq0WDw8PunfvztatWxkzZkyxGU0W2QMGDECj0ZCenm5q0xKZMWMGjo6OjBgxgu3bt5ulzdJSFIU//viDiRMnEhoayrZt24iIiGDHjh2q5qos7B0dqFW/HgBVPDx4/KXneaH/w2RlZuLg6Ghib3Gn7V+uJKR7ZzyqVTW9sSiSlZ0tuuwco2W67Bys7MvPjEpWdjbosoyLfl12Llb2NiolEkKI4illcMfHFStWFHod3fjx45kwYYLJ/RMSEqhatSpWVlbA7esPfXx8SEhIKFBk393R6uvry9WrV00ew2SR/e6775pspKTmzJlDXFwcS5YsQavV4uvrS3x8vGF9amoqWq32vnqGFy9ebBjGMWXKlGKP4evri6+vr+EvnJ49ezJp0iRSU1NZvXp1idsR5qH5e5iuXqmct1+9H38dPsr15BR+i9oCQMb1G3w9cx6dHxlEl2GDVE5XcTj6eZP46x+Gx7qcXLKS0nDyK3wYmRoc/LxI+i3W8FiXk0tOUjqOfl4qphJCCMsaOXIkAwcOLLD87l5sNZX46qhWrVrx+++/F1jepk0bfvvtN5P7L1iwgNjYWJYtW2aYZzs4OJjs7GwOHjxIaGgoq1atIjy88BkoSioiIoKIiAjDY0VRijxGcHAwjo6OnDlzhrp163LgwAGqVKmCu7v7PbWjJkWnQ69T0Ct69IoeXW4eGistWisrdHn58Pe4JSVfhy43D62NNRqNZS860+Xr0Ol0KIqCoijk5uRiZWXFhVOncXRxpmqAP5k3b/L1+4uo37wpjs7OFs0Hd55HpfjzqMtX7TzC7YsvFJ3u75wKebm5aK2seHredJR8nWG7D8e/TN9nRlGvVYjFM1aE1+S/z/XtnEpePhqtFq+Qepz7fgdJh07g2aQucVG7cAqoiqOv5QvYO1+P6P/N6NGsLhfX/kxKzCncGz/A5U2/4RjgjUM1uSZECFE+lcXNaAobFnIvfH19SUxMRKfTYWVlhU6n49q1a/j6+ha6bXx8PE2aNAEK9mwXpcRFdl5ewfF+eXl5KCXodTxz5gxLly4lMDCQYcNuzz8cEBDAokWLmDt3LtOmTSMnJwd/f3/mzZtn2G/8+PEcPXoUgPDwcIKCgli+fLnJdXfSarVFHkOj0fDOO+8wZcoUcnNzcXBwYOHChYX+wi+unXvJY26nI3dyev2PhseXfz1M0IBu1B/Ug52vzCcrOR2AffM+A6D7/03G0dujsKbKzIYVX7P+8y8Nj3+N3sGAp56gWo3qfL9sOTfS0nFwcqRRaAsi3nrDotn+cXL9j5xc9+/wpUt7Y6g/sAcNB/dk+6S5ZCanAbB3zqcA9HpvCk4WPo8AP37zHTu+Wm14HPPjL3R/fCg9n3jUaDutVouDizN2Dg53N1HmKsJrMm7jbuKidhkeX9t3jJp9OxLYvxONIoZw5tutnPx0PS61/Gn4tDrfBFze/BtXNv1qeJy8/zj+D7Wlet92BD3Tn/OrfuSvzzfjHOhLndF9VckohBAlodeXv2+oPT09adCgARs3bqR///5s3LiRBg0aFBgqArfrujVr1tCzZ0/S09PZsWMH33zzjcljaPQm/rwYPnw4Go2GI0eO0KxZM6N1V69epW7duixZsuTe/s9EAZP2r1M7gkmDaxecQ7q8ibwQo3YEk1pXLXhhbXmzJ+Gk2hFK5Hqu5eakL62c/Gy1I5g0P7jwqUuFEBWbt7f693cAGPPLCrO3+WmnkaY3+tvMmTPZtm0bycnJuLu74+bmxqZNmzh79iyvvvoqN27cwNXVlTlz5lC7dm0Axo4dy/PPP0/jxo3R6XRMnz6dvXv3GtYVNeXznUz2ZD/88MPo9XqOHTvGkCFDDMs1Gg2enp60bt26xP+TQgghhBCictGrfMfHN954gzfeKPhN+QMPPFDknNeffPKJ4d9WVla8/fbb93xck0X2wIED0el0/Pzzzzz00EOG8dRCCCGEEEKIwpVoTLaVlRX79+/H2lq9u8gJIYQQQoiKpywufKwISnyf6AEDBrBy5cqyzCKEEEIIIf5j9Chm/6kIStw1ffToUb7++muWL19OtWrVjGbgKMkVlkIIIYQQQlQWJS6yH3nkER555JGyzCKEEEIIIf5jlEo6XKTERXZhd9URQgghhBBCFHRPVzKuXbuWyMhIEhMTqVq1Kv3792fw4MFllU0IIYQQQlRw5fFmNJZQ4iJ78eLFrF+/nlGjRuHn50d8fDyffvop165dM7r9uBBCCCGEEP9Qe55stZS4yF6zZg1fffUV/v7+hmXt27dnxIgRUmQLIYQQQghxhxIX2VlZWQXu5+7m5kZ2dvm/ZbAQQgghhFBHZR0uUuJ5sjt06MDLL7/MuXPnyM7ONtzvvX379mWZTwghhBBCiAqnxD3ZU6dOZfr06fTr1w+dToe1tTXh4eG8+eabZZmv0kjPuaV2BJNSsjPUjmDSbxd3qx3BpGOJf6gdwaT4xNNqRygRZxdPtSOYtLbLDLUjCCGEqirrHR9LXGQ7Ozszd+5c3n33XdLS0nB3d0erLXFHuBBCCCGEEJXGPU3hd/PmTc6fP09GhnGPZps2bcwaSgghhBBC/DdUlNugm1uJi+wffviB6dOn4+joiL29vWG5RqPhxx9/LJNwQgghhBCiYpM7Pprw3nvv8cEHH9CpU6eyzCOEEEIIIUSFV+IiW6fTyUwiQgghhBDinlTWm9GU+MrFsWPHsnjxYhSlco6rEUIIIYQQoqSK7cnu1KkTGo0GuD39SnJyMp9++ilubm5G2/38889llU8IIYQQQlRglfVmNMUW2fPmzbNUDiGEEEII8R8k82QXolWrVpbKIYQQQgghxH9GiS98zMvLY/HixURGRnLt2jV8fHzo378/48aNw9bWtiwzCiGEEEKICkrmyTZh3rx5HD16lLfffhs/Pz/i4+P5+OOPuXXrFq+99lpZZhRCCCGEEKJCKXGRvXXrViIjI3F3dwegdu3aNGzYkP79+5ssstPS0pg8eTIXL17E1taWmjVrMn36dDw8PDhy5AhTp04lJycHf39/5s2bh6enJwATJ05k//79JCUlERMTg5OTk6HN4tbdrahjxMTE8Pbbbxu2S0lJwdvbm3Xr1t1TO/eax5yu7DxA4q9HybhyDZ+Wjag3qp9hXdqJ8/z17VZyUq/jUsufek/1xd7TzSK57rR7/UYObNtJwvkLhHTpyKOTXyywTfRXq4he8S3j5kwnqEUzi2e825b+M40e21rZEHn2Vz78I1KlRIXzcajCs417U98tgDxFx96rJ1j2Z3S5m/i/Z+3WPNN8ANWcvEjOSuetXcs4nHha7VgAbB04x+ixnZUN68/u4YPDP6iUSAgh/lsq65jsEk/hV9QJKsmJ02g0jBkzhujoaKKioqhevTrz589HURQmTZrE1KlTiY6OJjQ0lPnz5xv2GzJkCJGRhRc1xa27U3HHCAkJITIy0vDTpEkT+vTpc8/t3Esec7Nzc6HGQ+2p1q6p0fK8m5kcX/w9gf070fb9l3Gp6cuJpYX/8VDWqnh60OOxRwjr1b3Q9cnxCfzxy15cPT0snKxovSPfMPwM2jidXF0eP185qnasAp5t3Jv0nEwe3/EeE3YvI9ijJg/VDFU7lpEwv2BeaDmUt3Z9QvsvxzJm0ywu30xSO5ZB+LpXDD8Do94kR5fHz5eOqB1LCCH+M/R6xew/FUGJi+zw8HAiIiLYvXs3Z8+eZdeuXTz33HOEh4eb3NfNzY2wsDDD42bNmhEfH09sbCx2dnaEht4uCoYNG8bWrVsN27Vp08bQU3y34tbdydQx/pGSksLevXvp379/qdopaR5z8wqpj1fzelg7ORgtTz58Eic/b7xDG6K1saZmv45kXE4kMyHZ4hmbdGhL43atcXR1LXT92g+X0GfsSKysS/zFikV19G9MWs4tjiafVztKAVUd3NmTcJw8RUd6TgaHkv6ihou32rGMjAsZxLLD6zmWdBY9epIy00jKTFM7VqE6+TclPecmfySfUzuKEEKICq7ERfakSZNo06YN06dPZ9CgQcycOZPWrVszefLkezqgoiisXLmSrl27kpCQgJ+fn2Gdh4cHiqKQnp5+T20Wp6THWL9+Pe3atcPLy+u+2ikvMuKTcArwMTy2srPF3tudjPjy04MIcOSXPVjb2NAwrHz1vt6pV81QtsUdUjtGoSLP76ejXyPstNZ42rsQ6l2HmKSzascy0Go0NPSqhbu9C5EPz2fLsA94pc0T2FnZqB2tUOGBLYmOO6h2DCGE+E9R0Jv9pyIwWWQfOnSIefPmYWtrywsvvMD27dv5448/2LZtG7m5uRw/fvyeDjhjxgwcHR0ZMWJEqUOXhR9++IHBgwerHcNsdNm5WDvYGy2zdrBDl52rUqKCsjMz2fzZVwx8bqzaUYpU1dGNpt612VpOC6/Y1IvUcPbmu/BXWNH9Rc5cT+C3q6fUjmXg4VAFGytruge2ZPTGGTy67nXqedZkTLPCvzFSU1VHd5p612Hrhd/VjiKEEOI/wGSRvXTpUlq2bFnourCwMJYsWVLig82ZM4e4uDjef/99tFotvr6+xMfHG9anpqai1WoL3FHyXixevJj+/fvTv39/9u3bV6JjHDlyhOvXr9OpU6f7aqc8sbK3JT87x2hZfnYOVvblZ7rF6C9X0qJ7FzyqVVU7SpF61mjBseTzXC2Hwxs0wPRWj/Lr1ZMM3vouj0bPx9nGnqcadFM7mkFO/u0/6lYd305y1nXSc27xdewW2lVvamJPy+tVM5RjyedIyEhVO4oQQvynVNYx2SYHwZ44cYIOHToUuq5t27Ylnr5vwYIFxMbGsmzZMsO82sHBwWRnZ3Pw4EFCQ0NZtWpVicZ4FyciIoKIiAjDY0VRTB5j7dq19OvXD+s7xgSXpp3yxMnPm8Rf/71QT5eTS3ZSGk5+5We87pnDR7melMyvGzYDcOv6DVbMnEvXoYPpNqx8fKvQs0YLvj31k9oxCuVi44CPoxsbLxwgX9FxU8lix6U/eLxeZz4/8aPa8QC4mZvJ1Vsp6O/8aq+cfsvXK7Al35wsH+dNCCFExWeyyL516xZ5eXlYWVkVWJefn09GRobJg5w5c4alS5cSGBjIsGHDAAgICGDRokXMnTuXadOmGU2L94/x48dz9OjtQjE8PJygoCCWL19uct2dtFptscfIzs5m8+bNfPfdd8X+P5hqp6R5zE2vU9ArCuj16PUKSl4+Gq0Wz+b1OPf9jyQdOoFnk7rERe3Gyb8qjr6FjzkvSzqdDkWnQ1F0KIpCXm4uWisrIubOQKfTGbZ7/7mJ9Bs3igatWlg8Y2EaedTEy6FKuZxVBOBGXhZXM9J4sGYLfjj3Gw5WtnSr3oTzN6+pHc3IhjO7GNawJ79ePka+ks9jweHsvnhE7VhGgj0D8XKowk8yq4gQQpidvrz2rpQxk0V27dq12bNnD927F5x+bc+ePdSuXdvkQerWrcupU4WPEw0JCSEqKqrQdQsXLiyyzeLW3csx7O3tOXSoZBe1lTZrWYrbtJuLUbsNj6/ti6VG3w4E9utEw3GD+WtlNKeWR+JSy48GTw9UJeP2r1ez7atVhseHdvxMz8eHET5yuNF2Gq0WR2dn7Bwc7m5CFb1qhrL7yjGy8nNMb6ySWYfW8HSjngx5oC069BxNvsCnf25TO5aRTw9H4mbvwvohc8nR5bH9/O8s/2OD2rGMhAe2Ytflo+X6uRZCiIqqss6TrdGb+D+Piori3XffZdq0aXTv3h2tVouiKOzYsYPp06fz6quvFjm3tCi5sbu+UjuCSQNqtVI7gknzfv9U7QgmOdsVPpVheRJfTm4UY4qzi+WnzbxXa7vMUDuCEKKS8vZ2UTsCAH03zTJ7m1EPvW72Ns3NZE923759SU5O5pVXXiEvLw83NzfS09OxsbHh+eeflwJbCCGEEEIUqaJcqGhuJbr7x1NPPcXDDz/M4cOHSU9Px83NjebNm+Ps7FzW+YQQQgghhKhwSnyLPWdn5yJnGRFCCCGEEKIwcuGjEEIIIYQQZqZU0uEiJb6tuhBCCCGEEKJkpCdbCCGEEEKUmco6hZ/0ZAshhBBCCGFm0pMthBBCCCHKjJ7KOSZbimwhhBBCCFFmZLiIEEIIIYQQwiykJ1sIIYQQQpQZueOjUJW1tvw/FW9um6l2BJOyMq6rHcGk646uakcwydnFQ+0IJbK2ywy1IwghhBCFKv+VnRBCCCGEqLDUvuPj5cuXee655wyPb968ya1bt/j999+Ntvvoo4/49ttv8fHxASAkJIRp06aV+rhSZAshhBBCiP+sgIAAIiMjDY9nzZqFTqcrdNsBAwbwyiuvmOW4UmQLIYQQQogyo5TB7CI3btzgxo0bBZa7urri6lr0sMzc3FyioqJYvny52TPdTYpsIYQQQghRZsriwscVK1awcOHCAsvHjx/PhAkTitxv586dVK1alUaNGhW6ftOmTezZswdvb28mTJhA8+bNS51RimwhhBBCCFGhjBw5koEDBxZYXlwvNsDatWsZPHhwoeuGDRvGuHHjsLGxYe/evTz77LNs3rwZd3f3UmWUIlsIIYQQQpSZsrgZjalhIYVJTEzkwIEDzJ07t9D13t7ehn+3a9cOX19fzpw5Q6tWrUqVUW5GI4QQQggh/vPWrVtHp06diuyZTkxMNPz7xIkTXLlyhVq1apX6eNKTLYQQQgghyk45uRnNunXreP31142WjR07lueff57GjRuzYMEC/vzzT7RaLTY2NsydO9eod/teSZEthBBCCCHKTHm542N0dHSBZZ988onh33PmzDHr8WS4iBBCCCGEEGYmPdlCCCGEEKLMlMWFjxWBFNkV3OUf95Ow9wi3rlyjaqtgGo7+dzqb1OPnOP3NJrJTr+NaK4AGowbg4OWmXtg79KzdmmeaD6CakxfJWem8tWsZhxNPqx3LyIpBs2harR75yu27Ql3LSOHBr55VOVVBvWq35umQgfg6eZKcdZ1pvyzjcOIptWMBED1ontFjOysb1p/dzfsxa1VKJIQQQliGRYrstLQ0Jk+ezMWLF7G1taVmzZpMnz4dDw8Pjhw5wtSpU8nJycHf35958+bh6ekJwMSJE9m/fz9JSUnExMTg5ORkaLO4dXcr7hjff/89K1asQKvVYmVlxWuvvUZoaOg9t3MveczJ1s2FwD4dSf3zLLrcPMPy3JsZHPt4NQ1G9sOzWRDn1/3En0vXEPr6WIvkKk6YXzAvtBzKqzsXEpt0Di9HN7UjFWnmL0v5/s/tascoUph/MC+0HMYrOz8ql+ey1w+TDP92sLZlfb9Z/HTpiHqBhBBCWFx5GZNtaRYZk63RaBgzZgzR0dFERUVRvXp15s+fj6IoTJo0ialTpxIdHU1oaCjz58837DdkyBCje83fqbh1dyruGGlpabzzzjt8/vnnREZG8txzzzF16tR7bude8pibT4uGeIc0wNrJwWh5UswJnPy88WnZCCsbG2r178ytS4lkJCRZPOPdxoUMYtnh9RxLOosePUmZaSRlpqkdq0KKCBnEssPrKsS57BTQjPScm/yRdFbtKEIIISxIr9eb/acisEiR7ebmRlhYmOFxs2bNiI+PJzY2Fjs7O0PP8bBhw9i6dathuzZt2hh6iu9W3Lo7FXeMf56ojIwMAG7evEm1atXuuZ17yWMpGVeScKn+7/+LlZ0tDt7uZFxRt8jWajQ09KqFu70LkQ/PZ8uwD3ilzRPYWdmomqsoL7V9gl/Hfs03Q+bQ0j9Y7ThGbp/L2rjbuxL58P+x9dEPy/W5DA9sxdYLB9SOIYQQQliExcdkK4rCypUr6dq1KwkJCfj5+RnWeXh4oCgK6enpuLm5meV4xR3Dw8OD6dOnM3DgQFxdXVEUha+++uqe2zFXVnPS5eRi4+JotMza0R5ddo5KiW7zcKiCjZU13QNbMnrjDPIVHQt6vMSYZv1ZdOh7VbPd7f/2ruCv1EvkKXk8WLcji/u+wcCVL3Lp+lW1owHg+c+5rPXPucznvZ7/Y0zzASw6uEbteEaqOrrTzLsOcw58q3YUIYQQFibDRSxkxowZODo6MmLECEsfuoBbt27xzTff8P333/Pzzz/z6quvMn78+ArzNURxrOxs0WUZF9T5WTlY2duplOi2nPxcAFYd305y1nXSc27xdewW2lVvqmquwhxNPE1mXhZ5unwiT+4kJuEkHWu2UDuWQbbRuUy/fS6PbaF9QPk7l70CW3Is+RwJGalqRxFCCCEswqJF9pw5c4iLi+P9999Hq9Xi6+tLfHy8YX1qaiparfa+eoYXL15M//796d+/P/v27Sv2GHv27MHFxYXatWsD8OCDD3Lx4kXS0tLuqZ3yyMnfm1uX/709qC4nl6ykVJz8S3/nInO4mZvJ1Vsp6LnjD5kK8jeNXq9Ho9GoHcPAcC7v+KNQX05PZnhgK7Zc+F3tGEIIIVQgY7LL2IIFC4iNjWXRokXY2toCEBwcTHZ2NgcPHgRg1apVhIeH39dxIiIiiIyMJDIyktatWxd7jICAAI4fP05KSgoA+/btw9nZGXd393tqR02KTocuLw/0evSKHl1eHopOh3dIA25duca1g8fR5eVxfsMvOAdUxclX3SIbYMOZXQxr2BN3e1dcbB15LDic3RePqB3LiIutE+1qNMfWygYrjZY+9ToR6t+IPXExakczsuH0LoY1uvNc9mZ3OZu9I9izFl4OVfjp0mG1owghhBAWY5Ex2WfOnGHp0qUEBgYybNgw4HaBu2jRIubOncu0adOMpsX7x/jx4zl69CgA4eHhBAUFsXz5cpPr7qTVaos8RnBwMGPGjGHEiBHY2Nhga2vLBx98UGhvZXHt3Esec7uwcRcXNvxieJy47yiB/TpRu38XGj/7CKe/2czxT3/AtbY/jZ4ZUuZ5SuLTw5G42buwfshccnR5bD//O8v/2KB2LCPWVla80GYEtd390ekVzqddYcLGd7iQHm96Zwv65PB63OxdiHx43t/ncj+fHrH8LDfFCa/Vil2Xj5KVr+71AEIIIdShVyrnmGyNvqL0uf/HRexZqXYEk/af2qx2BJOyMq6rHcEke0dXtSOY5OzioXaEEvmh6yy1IwghRLnl7e2idgQAWn/1jNnb3Pf4UrO3aW4Wv/BRCCGEEEKI/zq5rboQQgghhCgzMoWfEEIIIYQQwiykJ1sIIYQQQpSZynr5nxTZQgghhBCizMhwESGEEEIIIYRZSE+2EEIIIYQoM5V1uIj0ZAshhBBCCGFm0pMthBBCCCHKTGUdky1FthBCCCGEKDOVtciW4SJCCCGEEEKYmfRklxMNPWqoHcGk3zXl/2+y2rVD1Y5gkrOdm9oRTFrY7Cm1IwghhPiPkAsfhRBCCCGEEGYhPdlCCCGEEKLMVNYx2VJkCyGEEEKIsqPIcBEhhBBCCCGEGUhPthBCCCGEKDOVdbiI9GQLIYQQQghhZtKTLYQQQgghyoxM4SeEEEIIIYQwC+nJFkIIIYQQZaayjsmWIlsIIYQQQpQZGS4ihBBCCCGEMAvpya7gjm7+kRM795ASd4WgDmF0f340AFdPnWX/ynVcOxuHRqvBv1F9Oo4ZjpOHm7qB/9azVhhPNx9ANSdPUrKuM233JxxJPK12LCM+DlV4tvGDNHALIE/RsefqcZb9GY1Sjv4i93dyZ1T9ztR28eFGXhZfn97DgaRzascSQgghDCrrcBGL9GSnpaUxduxYevXqRd++fRk/fjypqakAHDlyhH79+tGrVy9GjRpFSkqKYb+JEyfSvn176tWrR0ZGhlGbxa27W3HHWLt2LX379uWhhx5i3LhxpKenl6qde8ljTk7ubrR8uC8Nu7U3Wp5zK4NGPToxculcRi6bh62DPT8u/MxiuYoT5teI51s+wlu7P6XDV88wZvM7XLmZpHasAp5t/CDXczIYsWMBE3YvpbFHTR6q2VLtWAZajYaXm/YhJukCo35exrLjOxnfuBe+jm5qRxNCCCEqPYsU2RqNhjFjxhAdHU1UVBTVq1dn/vz5KIrCpEmTmDp1KtHR0YSGhjJ//nzDfkOGDCEyMrLQNotbd6fijnH27Fnef/99VqxYwaZNm2jSpAkLFiy453buJY+5PdCmBbXDQrB3cTZaXrNFE+q0a4mtowM2dnY0frAbCSfOWDxfYZ5pPpBPDkcSm3QWPXqSMtNIykxTO1YB1Rzc2J1wnDxFR1pOBoeSzlLTxVvtWAb+ju542Dmx6eJh9Oj5M+0yp9IT6OBbX+1oQgghhIFerzf7T0VgkSLbzc2NsLAww+NmzZoRHx9PbGwsdnZ2hIaGAjBs2DC2bt1q2K5NmzZ4enoW2mZx6+5U3DFOnz5NgwYN8PDwAKBTp05ERUXdczv3kkct8cdP4VHDX+0YaDUaGnrVwt3BhfVD5rJ56HtMbv04dlY2akcrYP35/XT0a4Sd1hpPexdaeNfhUNJfascqlgao7lx+X4dCCCEqH71eMftPRWDxCx8VRWHlypV07dqVhIQE/Pz8DOs8PDxQFKXYIRv3qrhj1K9fn2PHjnHp0iX0ej0bN24kMzOz0ONbImtZSb5wiQPfRdFu5CNqR8HDvgo2VtZ0C2zJmE2zGL7+Tep51mR0s35qRyvgz9SL1HT2Zk34q3zZ/SX+uh7Pb1dP/X979x4e45n/D/w9MzmfTBJJTATR7iKEUqOhjVOc0sqprVY25ad1aBuirUOL0mQlpRtSVBHS1bK7SrerRSwhqqX41lI0UrT5IkEnB3KQyDnzzPcPv84amSTEM/NMzPt1XXNdnnnu577fGa35+LjnGalj6WmqynCzrhoRXR6HQiZHH4/O6OneEfZyftSCiIhIamYvspOSkuDk5IQJEyaYe+lGunbtikWLFmHWrFl48cUX0a5dOwCAjc3DU6SU5RciPWklBk/5E3x7dpM6Dmq1dQCAL85l4kb1TZTV3sKW7Aw85feYxMkMyQAkPhGDYwUX8FzGB4jetxwuto54JWCk1NH0tDoBKT/tRj+vrtgwZArCuvTD/xTmoLj2ltTRiIiI9Kx1u4hZq8nk5GTk5eVh/fr1kMvlUKlU0Gg0+vMlJSWQy+VQKpWtXiM1NVW/jWPBggUtrjF27FiMHTsWAJCVlYXPP/8cLi4u9z2PJSovuoGdCSkY8EI4egx7Uuo4AICKuioU3CrGnf976GB5/7O42jrC20mJ9NwTaBC0qBCqkXn1DCZ2H47Pzh+QOp7elVvFWHxyu/44ccALOKw5L2EiIiIiAsxYZK9YsQLZ2dlIS0uDnZ0dACAwMBA1NTU4efIk1Go1tm3bhtDQ0AdaJzY2FrGxsfpjQRCaXeP69evw8vJCbW0tVq9ejcmTJ7dqHqkIWi0ErQBBEKATBDTU1UOukKOqrBw74pej9zMjEBg6XOqYBtJzvsf4gJE4di0LDYIWL/UagyNXz0gdy0B5fTUKKksxtosa2y8dg6PCDiM6PYbcikKpoxno7OKJ/KoyyCDD6E694W7vhO9YZBMRkQVpK3uoxSbTmaHnnpOTg7CwMPj7+8PBwQEA4Ofnh7Vr1+LUqVNISEhAbW0tOnbsiOXLl6N9+/YAgLi4OGRlZaGwsBDe3t7o1q0bNm7c2OK5uzW3xtSpU6HRaFBfX49nnnkGb775JuRy47toWpv1Xnx87ug9j73T8W07cOKLXQbPDRgfAZlMhv9s2wlbB3uDc69tTW3VOgCw6Ye0Vl97JxuZAnMHvoTQRwaiVluPA5f/g49O/hN12voHnruD96MiJLztETcfTOs1Bo+4+kALHbJuXMb67AyU1T3YLRpd7JXiBATw0h+fQkjHXrCRyXG+TIPPLhxCYfXNB553Td9XREhHRERS8vJylToCAKDbiqdFn/PX2XtFn1NsZimyqWWtLbLNSawi25TELLJNRcwi21RYZBMRtX0ssqX18HzCj4iIiIgsjiX0c0NCQmBnZwd7+9v/wj937lwMHjzYYEx1dTUWLFiAn3/+GQqFAvPmzcPw4a3fcssim4iIiIgeeqtXr0a3bk3faW3jxo1wcXFBZmYmcnNz8dJLL2H//v1wdnZu1Xpmv4UfEREREVmPtvJlNHv37sX48eMBAP7+/ggMDMThw4dbPR872URERETUppSXl6O8vLzR825ubnBzczN6zdy5c6HT6dC/f3/Mnj270TiNRoOOHf/77dgqlQoFBQWtzsgim4iIiIhMxhR7sjdv3ow1a9Y0ej4uLg4zZ85s9PyWLVugUqlQV1eHJUuWIDExESkpKaLnuhOLbCIiIiIyGVN87nHSpEl49tlnGz3fVBdbpVIBAOzs7BATE2PwXSi/8/X1xW+//QYPDw8AQH5+PoKCglqdkUU2EREREbUpzW0LuVtVVRW0Wi1cXV2h0+mwZ88eBAQENBoXGhqKL774Ar1790Zubi7Onj2LDz/8sNUZWWQTERERkclIfQu/4uJizJw5E1qtFoIg4NFHH0VCQgIAIDIyEmlpafDx8cGUKVMwf/58jBo1CnK5HImJiXBxcWn1uiyyiYiIiOih1alTJ+zYscPouZ07d+p/7eTkhNWrV4u2LotsIiIiIjIZqTvZUmGRTUREREQmo4N1Ftn8MhoiIiIiIpGxk20hjv52SuoILXJ1ay91hBbZKuyljtCiNX1fkToCERGR2VjrdhF2somIiIiIRMZONhERERGZjJU2sllkExEREZHpCFZaZXO7CBERERGRyNjJJiIiIiKT4QcfiYiIiIhIFOxkExEREZHJsJNNRERERESiYCebiIiIiEzGShvZLLKJiIiIyHS4XYSIiIiIiERhlk52aWkp3nnnHVy5cgV2dnbo0qULEhMT4eHhgTNnziA+Ph61tbXo2LEjli9fDk9PTwDAnDlzcPz4cVy/fh2nTp2Cs7Ozfs7mzt2tubHNrX+31mY1J19nd0zuMRSPuHqjvL4aW349ihPXL0mSpSl7o5YaHNspbLHz4jGsPvO1RImM83Z0w2s9R6O7e0fUCw04VvALNp7/xmpvqk9ERNQa7GSbkEwmw9SpU7Fv3z6kp6ejU6dOSElJgSAIePvttxEfH499+/ZBrVYjJSVFf924ceOwc+dOo3M2d+5ex7a0/v2MvZ88piKXyfD2Y2Nx6noupnz3CT459y1m9B4NlZNS0lx3e3rHu/rHc+l/Rp22Ht9d+0nqWI281nM0btZV4ZWDazDryCYEenTG050flzoWERERtQFmKbKVSiWCgoL0x3379oVGo0F2djbs7e2hVqsBANHR0cjIyNCPGzRoUJNd5ebO3evYlta/n7H3k8dUfJ3c4W7vjD1XzkAHHX4uvYZfy/IxWNVd0lzNGeLXB6U1t5B1w7K67QDg7aTE0YILqBe0KKurxKnrl9DZpb3UsYiIiNoUnU4n+qMtMPuebEEQsHXrVoSEhCA/Px++vr76cx4eHhAEAWVlZWbJcj/rS531Qfi5SFv8N2dMFzX2XzkpdQyj0nNPIFgVADu5DTzsXfC41yM4ZYF/GSAiIrJkLLLNJCkpCU5OTpgwYYK5l37o5VeV4WZdNcK7PA6FTI4+Hp3Q070j7OWWeRMZHyd3POb1KDJyLbPIPldyDZ1d2mPrqFn4NGQGLt4swPHCHKljERERURtg1iI7OTkZeXl5WLVqFeRyOVQqFTQajf58SUkJ5HI5lEplq9dITU1FZGQkIiMj8cMPPzQ7trn1757HFFnFptUJ+PCnf6Oflz/WD5mMsV364X8Kc1BSe0vqaEaN7twfZ29cRkFVidRRGpEBiB/wAv6n8FeMz1yBiQc+grOtAyZ1HyZ1NCIiojZFpxP/0RaYrcW5YsUKZGdnIy0tDXZ2dgCAwMBA1NTU4OTJk1Cr1di2bRtCQ0MfaJ3Y2FjExsbe09jm1r97HkEQRM9qClduFSPx5Ff648QB43BIc17CRE0b3UWNz385KHUMo1xsHeHt2A578n5Eg6BFhaDFwWtnEdNtMDb/8p3U8YiIiMjCmaXIzsnJwYYNG+Dv74/o6GgAgJ+fH9auXYtly5YhISHB4LZ4v4uLi0NWVhYAIDQ0FN26dcPGjRtbPHe3psbK5fJm179TS2PvJ48pdXbxRH5VGWSQYXSn3lDaO1lkkd3L0x/tHd0s8q4iAFBRX42CqjKEdu6HHZf/A0eFHYZ3DERexXWpoxEREbUpbWUPtdhkOmv9yS1MdObHoszz0h+fwvCOPWEjk+NCWT4+u3AIhdU3RZm74GauKPMAwOzHx8FBYYulJ7aKNicAKJ29RZurq6s3pgSMgL+bNwSdgLPFV5B2LhM366oeaN5P1NNFSkhERNQ0Ly9XqSMAANwXDhR9ztIlzW8JtgSW+Yk4arUtOUexJeeo1DFatOLUv6SO0KLLFUVY9B9x/xJARERE1oFFNhERERGZjLV+U7LZb+FHRERERPSwYyebiIiIiEzGShvZ7GQTEREREYmNnWwiIiIiMhlrvZEdi2wiIiIiMhkdrLPI5nYRIiIiIiKRsZNNRERERCZjrdtF2MkmIiIiIhIZO9lEREREZDLW2slmkU1EREREJmOlNTaLbEtRVn1D6ggt6uHTX+oILUrqES51BCIiIiIW2URERERkOta6XYQffCQiIiIiEhk72URERERkMtbayWaRTUREREQmY61FNreLEBERERGJjJ1sIiIiIjIZgZ1sIiIiIiISAzvZRERERGQyVtrIZiebiIiIiEhs7GQTERERkclIfXeR0tJSvPPOO7hy5Qrs7OzQpUsXJCYmwsPDw2Dc/PnzcezYMbi7uwMAQkNDERsb2+p1WWQTERERkclIXWTLZDJMnToVQUFBAIDk5GSkpKRg6dKljca++uqrmDBhgijrssh+yPg4KjGjz1gEuHdCvdCAI/nnsD47A4JOkCzTtYP/QcHRM7j1WxF8nghEwOQo/bmS85eQs2UPakpuwq2rHwImR8LBUylZViIiIrJ85eXlKC8vb/S8m5sb3NzcDJ5TKpX6AhsA+vbti61bt5o8o1n2ZJeWlmLatGkYM2YMwsPDERcXh5KSEgDAmTNnEBERgTFjxmDy5MkoLi7WXzdnzhwEBweje/fuqKysNJizuXN3E2ue1mY1pxl9xuJmbSVi9qdgxqH16O3pj3D/AZLlAQD7dq7oEjYEqqf6GjxfV1GF7HX/RNeo4Qj+aB5c/VX4ecO/pAlJREREpqET/7F582aMGDGi0WPz5s3NRhEEAVu3bkVISIjR85999hnCw8Mxffp0XLx48YF+bLMU2b+36fft24f09HR06tQJKSkpEAQBb7/9NuLj47Fv3z6o1WqkpKTorxs3bhx27txpdM7mzt3P2Hud50GymlMHJ3cc1vyMeqEBpbW38GPR/6KLq7ekmbz6B8CrXw/YujgZPH/j1Hk4+3rBW90LClsbdI0YhltXC1GZf0OipERERNQWTJo0Cd98802jx6RJk5q9LikpCU5OTka3hMyaNQuZmZlIT0/H6NGjMXXqVGi12lZnNEuRbaxNr9FokJ2dDXt7e6jVagBAdHQ0MjIy9OMGDRoET09Po3M2d+5+xt7rPA+S1Zx2XPoBQzsGwl5hC08HV6i9/4CTRTlSxzKqUlMEFz8f/bHC3g6OXu6o1BRJmIqIiIhEpdOJ/nBzc4Ofn1+jx91bRe6UnJyMvLw8rFq1CnJ54xLYx8dH/3xUVBSqqqpQUFDQ6h/b7Huy72zT5+fnw9fXV3/Ow8MDgiCgrKwMSqXS3NGa1Vayni3OxdNd+uOrpxdAIVcg88ppHCu4IHUso7S1dbB1cTZ4TuHoAG1NnUSJiIiISHSC9DfKXrFiBbKzs5GWlgY7OzujYwoLC+Hjc7v59/3330Mul+uPW8PsRfadbfrMzExzL/9Qk0GG9wdOxN68HzH7yF/hoLDD7L5RmNJzFDaes7zXWmFvh4aaWoPntDW1UDgY/4+fiIiI6H7l5ORgw4YN8Pf3R3R0NADAz88Pa9euRWRkJNLS0uDj44N58+ahuLgYMpkMLi4uSE1NhY1N60tlsxbZv7fp169fD7lcDpVKBY1Goz9fUlICuVz+QJ3h1NRU/TaOBQsWYODAgaLMY4qsYnO1c4SPkxK7Lh9HvaBFvVCN/VdPY1KPEIsssp19vZF/7Cf9sba2DtXXS+DsK+0eciIiIhKRxI3sP/7xj/jll1+Mnrvz83SbNm0SdV2zFdnG2vSBgYGoqanByZMnoVarsW3bNoSGhj7QOrGxsQ904/Cm5hEEQfSsYiuvq0J+ZQnC/AfgXxePwVFhh5Gd+uJyeaGkuQStAJ3w+0MHbX0DZHI52j/eA//7r0wU/XgOnn26ITf9EFz8fOCsai9pXiIiIqIHJdOZ4Q7hOTk5CAsLg7+/PxwcHAD8t01/6tQpJCQkoLa2Fh07dsTy5cvRvv3tIisuLg5ZWVkoLCyEt7c3unXrho0bN7Z47m5izdParPcidFfCPY9tziNuHfB6YCi6unWAoBPw043LWJe9B2W1D35bQX/37q267vLO75CbfshwrvCh6Bo5DCXnLiHn8z2oKb4Jt64d0WNyFBzbK1udMalHeKuvJSIieph4eblKHQEAIHu9p+hz6tafE31OsZmlyKaWiVVkm1Jri2xzYpFNRER0m8UU2a+aoMhOs/wi2yy38CMiIiIisib8WnUiIiIiMh0r3TTBTjYRERERkcjYySYiIiIi07HORjY72UREREREYmMnm4iIiIhMx0r3ZLPIJiIiIiLTEaQOIA1uFyEiIiIiEhk72URERERkOla6XYSdbCIiIiIikbGTTURERESmY52NbBbZRERERGRCgnVW2SyyLcQHwdOljtAiP62T1BGIiIiI2gQW2URERERkOtbZyOYHH4mIiIiIxMZONhERERGZjpXewo9FNhERERGZjnXW2NwuQkREREQkNnayiYiIiMh0rPQWfuxkExERERGJjJ1sIiIiIjIdK/3gIzvZREREREQiYyebiIiIiEzHOhvZLLKJiIiIyISs9IOPZimyS0tL8c477+DKlSuws7NDly5dkJiYCA8PD5w5cwbx8fGora1Fx44dsXz5cnh6egIA5syZg+PHj+P69es4deoUnJ2d9XM2d+5uTY29fPky4uPjcf36ddjY2KB3795ISEiAg4OD0XkOHjyIZcuWQavVolevXvjggw/g6OiIuro6xMbGIjs7GwBw/PhxsV66FmV8uR2H92TgysVLeHLUCEx/710AQFF+Pt54bjzsHR31YyMmxOD5yZPMlo2IiIjIWpllT7ZMJsPUqVOxb98+pKeno1OnTkhJSYEgCHj77bcRHx+Pffv2Qa1WIyUlRX/duHHjsHPnTqNzNnfuXsfa2tpiwYIFyMjIwK5du1BdXY2NGzcanaOyshLvvfce1q9fj8zMTDg7O+vHyuVyTJkyBZs2bbqnPGLy8GqPZ1/+fxgW9ozR85/u/zc2H9yHzQf3scAmIiIi89OZ4NEGmKXIViqVCAoK0h/37dsXGo0G2dnZsLe3h1qtBgBER0cjIyNDP27QoEH6rvbdmjt3r2P9/PzQs2dPALcL5T59+kCj0Rid4/DhwwgMDIS/v78+6969ewEANjY2ePLJJ+Hq6npPecT0xLChGDB0MFzbuZl9bSIiIiIyzux7sgVBwNatWxESEoL8/Hz4+vrqz3l4eEAQBJSVlUGpVJo1V01NDbZv347Zs2cbPX93Vl9fX+Tn55srXqvFPfsiZDIZej+hxktxsXAz8+tKREREVo638DOPpKQkODk5YcKECeZeukkNDQ2YNWsWBg4ciBEjRkgdRxRu7dphyadpWPP1P7F00yeorqrCmj8nSR2LiIiIrA23i5hecnIy8vLysGrVKsjlcqhUKoPtGSUlJZDL5Q/UxU5NTUVkZCQiIyPxww8/tDheq9Vi7ty5aNeuHRYtWqR/fvHixfp5Ll261CirRqOBSqVqdU5Tc3BywqMBPaCwsYHSwwOT57yFrOMnUF1ZJXU0IiIiooee2baLrFixAtnZ2UhLS4OdnR0AIDAwEDU1NTh58iTUajW2bduG0NDQB1onNjYWsbGx9zRWEATMnz8fCoUCS5YsgUwm059LSEgwGOvt7Y2kpCTk5ubC398f27Ztw9NPP/1AWc3q//9sOp0gcRAiIiKyKryFn+nk5ORgw4YN8Pf3R3R0NIDbHzpcu3Ytli1bhoSEBINb+P0uLi4OWVlZAIDQ0FB069ZNf0eP5s7dramxhw8fxq5du9CtWzc899xzAIDHH3+8UYENAC4uLkhMTMRrr70GQRAQEBCAhQsX6s8///zzKCwsRHl5OYYMGYLBgwdjyZIlD/rStUjb0ACtVgtBK0AQBNTV1kKhUODSL7/C2cUFHTr5obKiAptWfISej/eDk4uLyTMRERERWTuZTmelu9EtzOmSwlZd9+VfP8X2jZsMnnt+ysvw7dwZ29anoby0DI7OTug9YABeinsdynu8I4sxflqnVl9LRERE5uXlZf67nhkji/AXfU7drlzR5xQbi2wL0doi25xYZBMREbUdFlNkh3cRfU5dep7oc4rN7HcXISIiIiJ62Jn9PtlEREREZEWs9J4L7GQTEREREYmMnWwiIiIiMh0r/fgfO9lERERERCJjJ5uIiIiITMc6G9kssomIiIjIhLhdhIiIiIiIxMAim4iIiIhMRzDB4z5dvnwZ48ePx5gxYzB+/Hjk5uY2GqPVarF48WKMHDkSo0aNwpdffnn/C92BRTYRERERPdQSEhIQExODffv2ISYmBvHx8Y3GpKen48qVK9i/fz+++OILfPzxx7h27Vqr12SRTURERESmo9OJ/igvL8e1a9caPcrLyxstX1xcjHPnziEsLAwAEBYWhnPnzqGkpMRg3J49e/DCCy9ALpfDw8MDI0eOREZGRqt/bH7w0UL08/CROgIRERGR6HSZre8GN+Xjjz/GmjVrGj0fFxeHmTNnGjyXn58PHx8fKBQKAIBCoYC3tzfy8/Ph4eFhMM7X11d/rFKpUFBQ0OqMLLKJiIiIqE2ZNGkSnn322UbPu7m5SZDGOBbZRERERNSmuLm53XNBrVKpUFhYCK1WC4VCAa1Wi6KiIqhUqkbjNBoN+vTpA6BxZ/t+cU82ERERET20PD09ERAQgN27dwMAdu/ejYCAAIOtIgAQGhqKL7/8EoIgoKSkBAcOHMCYMWNava5Mp7PSO4QTERERkVW4ePEi5s+fj/Lycri5uSE5ORmPPPIIpk2bhjfeeAO9e/eGVqtFYmIijh49CgCYNm0axo8f3+o1WWQTEREREYmM20WIiIiIiETGIpuIiIiISGQssomIiIiIRMYim4iIiIhIZCyyiYiIiIhExiL7IZOcnIyQkBB0794dv/76q9RxjCotLcW0adMwZswYhIeHIy4uDiUlJVLHamT69OmIiIhAVFQUYmJicP78eakjNWnNmjUW+3seEhKC0NBQREZGIjIyEt9//73UkRqpra1FQkICRo8ejfDwcLz33ntSR2rk2rVr+tcwMjISISEheOKJJ6SO1ci3336LqKgoREZGIiIiAvv375c6UiPfffcdnn32WYSHh2PChAm4evWq1JGa/LP78uXLGD9+PMaMGYPx48cjNzfX4jJa2vuOsTyW9r7T1GvWlt536B7o6KFy4sQJnUaj0Q0fPlz3yy+/SB3HqNLSUt0PP/ygP/7LX/6iW7BggYSJjCsvL9f/OjMzUxcVFSVhmqZlZ2frpkyZYrG/55aa605JSUm6JUuW6ARB0Ol0Ot3169clTtSy999/X7d48WKpYxgQBEGnVqv1v9/nz5/X9e3bV6fVaiVO9l9lZWW6J554Qnfp0iWdTqfT7dixQzd58mSJUzX9Z/fEiRN1O3bs0Ol0t7NOnDhRqohNZrS09x1jeSztfaep16ytvO/QvWEn+yGjVqsbfU2opVEqlQgKCtIf9+3bFxqNRsJExrm6uup/fevWLchkMgnTGFdXV4fExET8+c9/ljpKm1VZWYkdO3bgzTff1P8et2/fXuJUzaurq0N6ejqef/55qaM0IpfLUVFRAQCoqKiAt7c35HLLeavJy8tD+/bt0bVrVwDA0KFDceTIEcn/Nc3Yn93FxcU4d+4cwsLCAABhYWE4d+6cZFmben+xtPcdY3ks7X2nqdesLbzv0L2zkToAWTdBELB161aEhIRIHcWohQsX4ujRo9DpdPjrX/8qdZxGPvroI0RERMDPz0/qKM2aO3cudDod+vfvj9mzZ8PNzU3qSHpXr16FUqnEmjVrcPz4cTg7O+PNN9+EWq2WOlqTDh48CB8fH/Tq1UvqKAZkMhlWrVqF6dOnw8nJCZWVlUhLS5M6loGuXbvixo0byMrKQp8+fZCeng4AyM/Pb/QVy1LLz8+Hj48PFAoFAEChUMDb29sis7YlfN8hc7Gc9gJZpaSkJDg5OWHChAlSRzFqyZIl+O677zBr1iwsW7ZM6jgGTp8+jezsbMTExEgdpVlbtmzBrl27sH37duh0OiQmJkodyYBWq8XVq1fRs2dPfPXVV5g7dy5mzpyJW7duSR2tSdu3b7fILnZDQwM2bNiAdevW4dtvv0VqaireeustVFZWSh1Nz9XVFStXrsQHH3yA5557DsXFxXBzc9MXsvTw4/sOmQuLbJJMcnIy8vLysGrVKov652RjoqKicPz4cZSWlkodRe/EiRO4ePEiRowYgZCQEBQUFGDKlCk4cuSI1NEM/P5PonZ2doiJicGpU6ckTmRIpVLBxsZG/0/yjz32GNzd3XH58mWJkxlXWFiIEydOIDw8XOoojZw/fx5FRUXo378/AKB///5wdHTExYsXJU5m6Mknn8TWrVvx1VdfYcKECaipqUHnzp2ljtWISqVCYWEhtFotgNt/ISwqKrKorRltDd93yJws+78wemitWLEC2dnZWLt2Lezs7KSO00hlZSXy8/P1xwcPHkS7du2gVCqlC3WXV199FUeOHMHBgwdx8OBBdOjQARs3bkRwcLDU0fSqqqr0+3N1Oh327NmDgIAAiVMZ8vDwQFBQEI4ePQrg9t0ciouL0aVLF4mTGff1119j6NChcHd3lzpKIx06dEBBQQEuXboEALh48SKKi4stroC9fv06gNvbBlasWIHo6Gg4OTlJnKoxT09PBAQEYPfu3QCA3bt3IyAggFtFWonvO2RuMp1Op5M6BInn/fffx/79+3Hjxg24u7tDqVTi3//+t9SxDOTk5CAsLAz+/v5wcHAAAPj5+WHt2rUSJ/uvGzduYPr06aiuroZcLke7du0wb948i9sDe6eQkBCsX78e3bp1kzqK3tWrVzFz5kxotVoIgoBHH30UixYtgre3t9TRDFy9ehXvvvsuysrKYGNjg7feegtDhw6VOpZRY8aMwcKFCzFkyBCpoxi1a9cufPLJJ/oPbL3xxhsYOXKkxKkMLVy4EKdOnUJ9fT2eeuopvPvuu7C3t5c0U1N/dl+8eBHz589HeXk53NzckJycjEceecSiMlra+46xPKtWrbKo9x1jGTdv3tzm3neoeSyyiYiIiIhExu0iREREREQiY5FNRERERCQyFtlERERERCJjkU1EREREJDIW2UREREREImORTURkIsePH7fYW+0Blp+PiKgtY5FNRHQP0tPT8dxzz6Ffv34IDg7G1KlTcfLkSbNm+Oqrr/CnP/3J4Ln58+dj5cqVZs1BREQts5E6ABGRpfvss8+QlpaGxYsXIzg4GLa2tvj+++/xzTffQK1WmyVDQ0ODWdYhIiJxsJNNRNSMiooKrF69GvHx8Rg9ejScnJxga2uLkJAQzJs3D3V1dViyZAmCg4MRHByMJUuWoK6uzmCOTz/9FIMGDUJwcDC2b99uMPc777yDgQMHYvjw4Vi3bh0EQQBwu2sdHR2NpUuXIigoCLNmzUJCQgLOnDmDfv36GS3ur127hu7du+Prr7/GsGHDEBQUhNTUVP35mpoazJ8/HwMGDMAzzzyDs2fPGlxfWFiImTNnYuDAgQgJCcHf/vY3AEBZWRmGDBmCgwcPArj99c+jRo3Cjh07RHmNiYgeRuxkExE14/Tp06itrcWoUaOMnk9NTcVPP/2EnTt3QiaTYfr06Vi3bh3eeustAMCNGzdQUVGBw4cP49ixY/qvGW/Xrh2SkpJQUVGBAwcOoKysDFOmTIGXlxdeeOEFAEBWVhbGjh2Lo0ePoqGhAXv27MGXX36JrVu3Npv5xx9/REZGBnJzczFu3DiMHj0ajz76KNasWYMrV64gMzMT1dXVmDZtmv4aQRAQGxuLkJAQfPjhhygsLMTLL7+Mrl27YvDgwVi6dCnmzZuHxx57DCtXrkRAQACioqJEeY2JiB5G7GQTETWjrKwM7u7usLEx3pNIT0/HjBkz4OnpCQ8PD8yYMQO7du3Sn7exscGMGTNga2uLoUOHwsnJCZcvX4ZWq8WePXswZ84cuLi4wM/PD6+88orBtd7e3pg4cSJsbGzg4OBwz5nj4uLg4OCAHj16oEePHrhw4QIAYO/evXj99dehVCqhUqkwceJE/TVnz55FSUkJ4uLiYGdnh06dOuHFF1/Enj17AADBwcEIDQ3Fyy+/jEOHDmHx4sX39ToSEVkbdrKJiJqhVCpRWlqKhoYGo4V2UVERfH199ce+vr4oKioyuP7O6xwdHVFVVYXS0lLU19c3urawsFB/3KFDh1Zlbt++faP1fs+qUqkM1vvdb7/9hqKiIoNtKFqt1uD4xRdfxD/+8Q+8/vrrcHd3b1U2IiJrwU42EVEz+vXrBzs7Oxw4cMDoeW9vb2g0Gv1xfn4+vL29W5zX3d0dtra2ja718fHRH8tkMoNr7j6+X15eXsjPzzdY73cqlQp+fn44efKk/nH69Gl88sknAG4X3PHx8YiKisLnn3+OvLy8B8pCRPSwY5FNRNQMV1dXvPHGG0hMTMSBAwdQXV2N+vp6HDp0CMuWLcPYsWORmpqKkpISlJSUYO3atQgPD29xXoVCgdDQUKxcuRK3bt3Cb7/9hs8++wwRERFNXuPp6YnCwsJGH6y8V08//TTS0tJw8+ZNFBQU4O9//7v+XJ8+feDs7Iy0tDTU1NRAq9Xi119/RVZWFgBg/fr1kMlkWLp0KaZMmYJ58+ZBq9W2KgcRkTVgkU1E1ILJkydj/vz5WLduHQYNGoRhw4Zhy5YtGDlyJKZPn47AwEBEREQgIiICvXr1wvTp0+9p3vfeew+Ojo4YOXIkYmJiEBYWhueff77J8QMHDsQf/vAHBAcHIygo6L5/jri4OPj6+mLEiBGYPHkyIiMj9ecUCgXWr1+PCxcuYMSIERg4cCAWLVqEW7duITs7G5s2bUJycjIUCoX+A5NpaWn3nYGIyFrIdDqdTuoQREREREQPE3ayiYiIiIhExiKbiIiIiEhkLLKJiIiIiETGIpuIiIiISGQssomIiIiIRMYim4iIiIhIZCyyiYiIiIhExiKbiIiIiEhk/wcPCKikYgyFeQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 864x576 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,1, figsize=(12,8))\n",
    "sns.heatmap(data=avg_quantity, annot=True, fmt='0.0f', ax =ax, vmin = 0.0,vmax = 20,cmap=\"BuGn_r\").set(title='Avg Quantity')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f5f8101-5295-4462-a012-9ed9a0fe0761",
   "metadata": {},
   "source": [
    "## RFM Analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e92e958e-cc0c-41f8-88df-754719e48bef",
   "metadata": {},
   "source": [
    "![](http://d35fo82fjcw0y8.cloudfront.net/2018/03/01013508/Incontent_image.png)\n",
    "The RFM values can be grouped in several ways:\n",
    "\n",
    "1.Percentiles e.g. quantiles\n",
    "\n",
    "2.Pareto 80/20 cut\n",
    "\n",
    "3.Custom - based on business knowledge\n",
    "\n",
    "We are going to implement percentile-based grouping.\n",
    "\n",
    "Process of calculating percentiles:\n",
    "\n",
    "- Sort customers based on that metric\n",
    "- Break customers into a pre-defined number of groups of equal size\n",
    "- Assign a label to each group\n",
    "\n",
    "- Recency, Frequency and Monetary Value Calculations\n",
    "\n",
    "- Recency\n",
    "\n",
    "  - When was last order?\n",
    "\n",
    "  - Number of days since last purchase/ last visit/ last login\n",
    "\n",
    "- Frequency\n",
    "\n",
    "  - Number of purchases in given period (3 - 6 or 12 months)\n",
    "\n",
    "  - How many or how often customer used the product of company\n",
    "\n",
    "  - Bigger Value => More engaged customer\n",
    "\n",
    "  - Not VIP [ Need to associate to monetary value for that]\n",
    "\n",
    "- Monetary\n",
    "\n",
    "  - Total amount of money spent in period selected above\n",
    "\n",
    "  - Differentiate between MVP/ VIP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "47c127c4-a4f9-407a-925f-f25fee4a410e",
   "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>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "      <th>InvoiceMonth</th>\n",
       "      <th>CohortMonth</th>\n",
       "      <th>CohortIndex</th>\n",
       "      <th>TotalSum</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>536365</td>\n",
       "      <td>85123A</td>\n",
       "      <td>WHITE HANGING HEART T-LIGHT HOLDER</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.55</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "      <td>15.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>536365</td>\n",
       "      <td>71053</td>\n",
       "      <td>WHITE METAL LANTERN</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "      <td>20.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>536365</td>\n",
       "      <td>84406B</td>\n",
       "      <td>CREAM CUPID HEARTS COAT HANGER</td>\n",
       "      <td>8</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.75</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "      <td>22.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029G</td>\n",
       "      <td>KNITTED UNION FLAG HOT WATER BOTTLE</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "      <td>20.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029E</td>\n",
       "      <td>RED WOOLLY HOTTIE WHITE HEART.</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>2010-12-01</td>\n",
       "      <td>1</td>\n",
       "      <td>20.34</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    536365    85123A   WHITE HANGING HEART T-LIGHT HOLDER         6   \n",
       "1    536365     71053                  WHITE METAL LANTERN         6   \n",
       "2    536365    84406B       CREAM CUPID HEARTS COAT HANGER         8   \n",
       "3    536365    84029G  KNITTED UNION FLAG HOT WATER BOTTLE         6   \n",
       "4    536365    84029E       RED WOOLLY HOTTIE WHITE HEART.         6   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID         Country InvoiceMonth  \\\n",
       "0 2010-12-01 08:26:00       2.55     17850.0  United Kingdom   2010-12-01   \n",
       "1 2010-12-01 08:26:00       3.39     17850.0  United Kingdom   2010-12-01   \n",
       "2 2010-12-01 08:26:00       2.75     17850.0  United Kingdom   2010-12-01   \n",
       "3 2010-12-01 08:26:00       3.39     17850.0  United Kingdom   2010-12-01   \n",
       "4 2010-12-01 08:26:00       3.39     17850.0  United Kingdom   2010-12-01   \n",
       "\n",
       "  CohortMonth  CohortIndex  TotalSum  \n",
       "0  2010-12-01            1     15.30  \n",
       "1  2010-12-01            1     20.34  \n",
       "2  2010-12-01            1     22.00  \n",
       "3  2010-12-01            1     20.34  \n",
       "4  2010-12-01            1     20.34  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['TotalSum'] = df['UnitPrice']*df['Quantity']; df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a322c9a1-ea22-421d-986f-7df6a2e7f11e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2011-12-10 12:50:00')"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "snapshot_date = df['InvoiceDate'].max()+ dt.timedelta(days=1); snapshot_date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "65d92d85-ab52-45e2-8a1b-9c4d3cb9d2d8",
   "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>InvoiceDate</th>\n",
       "      <th>InvoiceNo</th>\n",
       "      <th>TotalSum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CustomerID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12346.0</th>\n",
       "      <td>326</td>\n",
       "      <td>1</td>\n",
       "      <td>77183.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12347.0</th>\n",
       "      <td>2</td>\n",
       "      <td>182</td>\n",
       "      <td>4310.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12348.0</th>\n",
       "      <td>75</td>\n",
       "      <td>31</td>\n",
       "      <td>1797.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12349.0</th>\n",
       "      <td>19</td>\n",
       "      <td>73</td>\n",
       "      <td>1757.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12350.0</th>\n",
       "      <td>310</td>\n",
       "      <td>17</td>\n",
       "      <td>334.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18280.0</th>\n",
       "      <td>278</td>\n",
       "      <td>10</td>\n",
       "      <td>180.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18281.0</th>\n",
       "      <td>181</td>\n",
       "      <td>7</td>\n",
       "      <td>80.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18282.0</th>\n",
       "      <td>8</td>\n",
       "      <td>12</td>\n",
       "      <td>178.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18283.0</th>\n",
       "      <td>4</td>\n",
       "      <td>721</td>\n",
       "      <td>2045.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18287.0</th>\n",
       "      <td>43</td>\n",
       "      <td>70</td>\n",
       "      <td>1837.28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4338 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            InvoiceDate  InvoiceNo  TotalSum\n",
       "CustomerID                                  \n",
       "12346.0             326          1  77183.60\n",
       "12347.0               2        182   4310.00\n",
       "12348.0              75         31   1797.24\n",
       "12349.0              19         73   1757.55\n",
       "12350.0             310         17    334.40\n",
       "...                 ...        ...       ...\n",
       "18280.0             278         10    180.60\n",
       "18281.0             181          7     80.82\n",
       "18282.0               8         12    178.05\n",
       "18283.0               4        721   2045.53\n",
       "18287.0              43         70   1837.28\n",
       "\n",
       "[4338 rows x 3 columns]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rfm = df.groupby(['CustomerID']).agg({'InvoiceDate': lambda x: (snapshot_date -x.max()).days, \n",
    "                                      'InvoiceNo':'count',\n",
    "                                      'TotalSum':'sum'})\n",
    "rfm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e06b1b30-d0ee-4316-89c7-d7cca60d036c",
   "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>Recency</th>\n",
       "      <th>Frequency</th>\n",
       "      <th>MonetaryValue</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CustomerID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12346.0</th>\n",
       "      <td>326</td>\n",
       "      <td>1</td>\n",
       "      <td>77183.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12347.0</th>\n",
       "      <td>2</td>\n",
       "      <td>182</td>\n",
       "      <td>4310.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12348.0</th>\n",
       "      <td>75</td>\n",
       "      <td>31</td>\n",
       "      <td>1797.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12349.0</th>\n",
       "      <td>19</td>\n",
       "      <td>73</td>\n",
       "      <td>1757.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12350.0</th>\n",
       "      <td>310</td>\n",
       "      <td>17</td>\n",
       "      <td>334.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18280.0</th>\n",
       "      <td>278</td>\n",
       "      <td>10</td>\n",
       "      <td>180.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18281.0</th>\n",
       "      <td>181</td>\n",
       "      <td>7</td>\n",
       "      <td>80.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18282.0</th>\n",
       "      <td>8</td>\n",
       "      <td>12</td>\n",
       "      <td>178.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18283.0</th>\n",
       "      <td>4</td>\n",
       "      <td>721</td>\n",
       "      <td>2045.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18287.0</th>\n",
       "      <td>43</td>\n",
       "      <td>70</td>\n",
       "      <td>1837.28</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4338 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            Recency  Frequency  MonetaryValue\n",
       "CustomerID                                   \n",
       "12346.0         326          1       77183.60\n",
       "12347.0           2        182        4310.00\n",
       "12348.0          75         31        1797.24\n",
       "12349.0          19         73        1757.55\n",
       "12350.0         310         17         334.40\n",
       "...             ...        ...            ...\n",
       "18280.0         278         10         180.60\n",
       "18281.0         181          7          80.82\n",
       "18282.0           8         12         178.05\n",
       "18283.0           4        721        2045.53\n",
       "18287.0          43         70        1837.28\n",
       "\n",
       "[4338 rows x 3 columns]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rfm.rename(columns={'InvoiceDate':'Recency',\n",
    "                    'InvoiceNo': 'Frequency',\n",
    "                    'TotalSum': 'MonetaryValue'},\n",
    "           inplace = True,\n",
    "        )\n",
    "rfm"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ae4cccb-1f3e-46b5-9b6a-d42f440c645d",
   "metadata": {},
   "source": [
    "Recency\n",
    "\n",
    "- Better rating to customer who have been active more recently\n",
    "\n",
    "Frequency & Monetary Value\n",
    "\n",
    "- Different rating / higher label (than above)-we want to spend more money & visit more often\n",
    "\n",
    "Now let’s see the magic happen\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "46001e3d-1a9a-4512-9380-c213106608e5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}