diff --git a/paper_results_jawra/HUC01_catchment_outputs.ipynb b/paper_results_jawra/HUC01_catchment_outputs.ipynb new file mode 100644 index 0000000..6ac3abd --- /dev/null +++ b/paper_results_jawra/HUC01_catchment_outputs.ipynb @@ -0,0 +1,410 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f90305a2", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import glob\n", + "import h5py \n", + "import random\n", + "import matplotlib.pyplot as plt\n", + "import pickle as pkl\n", + "import os" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "22278105", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keys: \n" + ] + } + ], + "source": [ + "filename = \"./routing_outputs/q_lstm_good.h5\"\n", + "with h5py.File(filename, \"r\") as f:\n", + " # List all groups\n", + " print(\"Keys: %s\" % f.keys())\n", + " a_group_key = list(f.keys())[0]\n", + " # Get the data\n", + " data = list(f[a_group_key])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "43982ec8", + "metadata": {}, + "outputs": [], + "source": [ + "mydir = \"./catchment_outputs/\"\n", + "file_list = glob.glob(mydir + \"/*.csv\") # Include slash or it will search in the wrong directory!!" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "22bffcc7", + "metadata": {}, + "outputs": [], + "source": [ + "n_catchments = len(file_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4e742426", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ngen_exceedences = {}\n", + "ngen_sorted_flows = {}\n", + "for cat_out_indx in [random.randrange(n_catchments) for i in range(1000)]:\n", + " catchment_id = file_list[cat_out_indx].split(\"-\")[-1].split(\".\")[0]\n", + " with open(file_list[cat_out_indx], \"r\") as f:\n", + " data = pd.read_csv(f)\n", + " flowz = data[\"land_surface_water__runoff_depth\"]*3600\n", + " sort = np.sort(flowz)[::-1]\n", + " exceedence = np.arange(1.,len(sort)+1) / len(sort)\n", + " exceedence = exceedence*100\n", + " ngen_exceedences[catchment_id] = exceedence\n", + " ngen_sorted_flows[catchment_id] = sort\n", + " plt.plot(exceedence, sort, c='grey', lw=.1)\n", + "plt.xlabel(\"Exceedence [%]\")\n", + "plt.ylabel(\"Flow rate\")\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e725edb9", + "metadata": {}, + "outputs": [], + "source": [ + "n_flow_values = []\n", + "for i in list(ngen_exceedences.keys()):\n", + " n_flow_values.append(ngen_exceedences[i].shape[0])\n", + "min_n_flow_values = np.min(np.array(n_flow_values))\n", + "max_n_flow_values = np.max(np.array(n_flow_values))\n", + "new_ngen_exceedences = {}\n", + "new_ngen_sorted_flows = {}\n", + "for i in list(ngen_exceedences.keys()):\n", + " indexing_array = np.sort(np.random.randint(0,ngen_exceedences[i].shape[0], min_n_flow_values))\n", + " new_ngen_exceedences[i] = ngen_exceedences[i][indexing_array]\n", + " new_ngen_sorted_flows[i] = ngen_sorted_flows[i][indexing_array]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a8ee6e48", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_exc = pd.DataFrame(new_ngen_exceedences)\n", + "df_sort = pd.DataFrame(new_ngen_sorted_flows)\n", + "\n", + "mean_ngen_sorted_flows = df_sort.mean(axis=1).values\n", + "max_ngen_sorted_flows = df_sort.max(axis=1).values\n", + "min_ngen_sorted_flows = df_sort.min(axis=1).values\n", + "\n", + "mean_ngen_exceedence = df_exc.mean(axis=1).values\n", + "max_ngen_exceedence = df_exc.max(axis=1).values\n", + "min_ngen_exceedence = df_exc.min(axis=1).values\n", + "\n", + "plt.plot(mean_ngen_exceedence, mean_ngen_sorted_flows, label=\"mean\")\n", + "plt.plot(max_ngen_exceedence, max_ngen_sorted_flows, label=\"max\")\n", + "plt.plot(min_ngen_exceedence, min_ngen_sorted_flows, label=\"min\")\n", + "plt.xlabel(\"Exceedence [%]\")\n", + "plt.ylabel(\"Flow rate\")\n", + "plt.yscale(\"log\")\n", + "plt.legend()\n", + "plt.show()\n", + "plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e2e1d3f9", + "metadata": {}, + "outputs": [], + "source": [ + "# Definitions\n", + "area_index='area_geospa_fabric'\n", + "sample_basin = '11532500'\n", + "drop_these = ['high_prec_timing','root_depth_50',\n", + " 'root_depth_99','zero_q_freq','water_frac','organic_frac']\n", + "if True: # Open the attributes from the coding workshop. These are already set up to do regression\n", + " openthis = '/home/NearingLab/data/camels_all_coding_workshop.csv'\n", + " attributes = pd.read_csv(openthis, sep=',', index_col='gauge_id')\n", + "else: # Open a slightly more extrnsive data set.\n", + " openthis = '/home/NearingLab/data/camels_attributes_v2.0/camels_all.txt'\n", + " attributes = pd.read_csv(openthis, sep=';', index_col='gauge_id')\n", + " \n", + "# Add the basin ID as a 8 element string with a leading zero if neccessary\n", + "basin_id_str = []\n", + "for a in attributes.index.values:\n", + " basin_id_str.append(str(a).zfill(8))\n", + "attributes['basin_id_str'] = basin_id_str\n", + "\n", + "# These are bad for the regression analysis.\n", + "attributes = attributes.drop(drop_these, axis=1)\n", + "# Get the hydrologic units for each basin.\n", + "data_dir = '/home/NearingLab/projects/jmframe/lstm_camels_NWM_post_processing_paper_april2021/data/'\n", + "with open(data_dir + 'usgs_site_info.csv', 'r') as f:\n", + " usgs_sites = pd.read_csv(f, skiprows=24, index_col='site_no')\n", + "usgs_idx_int = []\n", + "for idx in usgs_sites.index.values:\n", + " usgs_idx_int.append(int(idx))\n", + "usgs_sites.reindex(usgs_idx_int)\n", + "usgs_sites = usgs_sites.reindex(usgs_idx_int)\n", + "basin_hydro_unit = []\n", + "for b in attributes.basin_id_str.values:\n", + " huc_cd = usgs_sites.loc[int(b),'huc_cd']\n", + " hu = '{:08d}'.format(huc_cd)\n", + " basin_hydro_unit.append(hu[0:2])\n", + "attributes['basin_hydro_unit'] = basin_hydro_unit" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7263a294", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1013500\n", + "file does not exist, moving on\n", + "1022500\n", + "1030500\n", + "file does not exist, moving on\n", + "1031500\n", + "1047000\n", + "1052500\n", + "1054200\n", + "1055000\n", + "1057000\n", + "1073000\n", + "1078000\n", + "1118300\n", + "file does not exist, moving on\n", + "1121000\n", + "file does not exist, moving on\n", + "1123000\n", + "1134500\n", + "1137500\n", + "1139000\n", + "1139800\n", + "1142500\n", + "1144000\n", + "1162500\n", + "1169000\n", + "1170100\n", + "1181000\n", + "1187300\n", + "1195100\n" + ] + } + ], + "source": [ + "obs_flows_huc01 = {}\n", + "for i in attributes.index.values:\n", + " if attributes.loc[i, 'basin_hydro_unit'] != '01':\n", + " continue\n", + " print(i)\n", + " fname = f\"/home/NearingLab/data/camels_data_hourly/usgs_streamflow/{str(i).zfill(8)}-usgs-hourly.csv\"\n", + " if not os.path.exists(fname):\n", + " print(\"file does not exist, moving on\")\n", + " continue\n", + " with open(fname, \"r\") as f:\n", + " df = pd.read_csv(f)\n", + " df = df.loc[pd.to_datetime(df['date']) > pd.to_datetime(\"2008-10-01 00:00:00\")]\n", + " df = df.loc[pd.to_datetime(df['date']) < pd.to_datetime(\"2010-10-01 00:00:00\")] \n", + " obs_flows_huc01[i] = df['QObs(mm/h)'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4d57e1fd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "camels_exceedences = {}\n", + "camels_sorted_flows = {}\n", + "for cam_id_huc01 in obs_flows_huc01.keys():\n", + " \n", + " flowz = obs_flows_huc01[cam_id_huc01]\n", + " flowz = flowz[~np.isnan(flowz)]\n", + " sort = np.sort(flowz)[::-1]\n", + " exceedence = np.arange(1.,len(sort)+1) / len(sort)\n", + " exceedence = exceedence*100\n", + " \n", + " camels_exceedences[cam_id_huc01] = exceedence\n", + " camels_sorted_flows[cam_id_huc01] = sort\n", + " \n", + " plt.plot(exceedence, sort, c='grey', lw=.1)\n", + "plt.xlabel(\"Exceedence [%]\")\n", + "plt.ylabel(\"Flow rate\")\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1896b0ca", + "metadata": {}, + "outputs": [], + "source": [ + "n_flow_values = []\n", + "for i in list(camels_exceedences.keys()):\n", + " n_flow_values.append(camels_exceedences[i].shape[0])\n", + "min_n_flow_values = np.min(np.array(n_flow_values))\n", + "max_n_flow_values = np.max(np.array(n_flow_values))\n", + "new_camels_exceedences = {}\n", + "new_camels_sorted_flows = {}\n", + "for i in list(camels_exceedences.keys()):\n", + " indexing_array = np.sort(np.random.randint(0,camels_exceedences[i].shape[0], min_n_flow_values))\n", + " new_camels_exceedences[i] = camels_exceedences[i][indexing_array]\n", + " new_camels_sorted_flows[i] = camels_sorted_flows[i][indexing_array]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "993afcf5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEMCAYAAADal/HVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABgP0lEQVR4nO2deXyU1fX/33cm+75vBMhKgEAI+64gorjgXtHaWuRbrf60tvbb9WtbW2tr+63Wb61tLVq0tgrWfam4i6IgewiENSsJ2ROyTPaZub8/7iQEyDpLZhLu+/Wa12SeeZ77nGeSPGfuOed+jpBSotFoNBpNfxjcbYBGo9FoPBvtKDQajUYzINpRaDQajWZAtKPQaDQazYBoR6HRaDSaAdGOQqPRaDQDoh2FRqPRaAZEOwqNRqPRDIjHOwohRIoQ4u9CiJfdbYtGo9Gcj7jFUQghNgghqoUQB8/avkoIcVQIkS+E+DGAlLJQSvlf7rBTo9FoNO6bUTwLrOq9QQhhBP4MXAZMBW4WQkwdedM0Go1G0xsvd5xUSvmZECLprM3zgHwpZSGAEGITcDVwaChjCiHuAO4ACAwMnD158mS7bGvttBDgY7TrWI1GoxnN7Nmzp1ZKGX32drc4in4YB5T2el0GzBdCRAK/BmYKIX4ipXy4r4OllOuB9QBz5syRu3fvtsuIt3PLuTIrwa5jNRqNZjQjhCjpa7snOQrRxzYppawD7hwpIyICfEbqVBqNRjMq8KSqpzJgfK/XiUD5cAYQQqwWQqxvbGy024gOs9XuYzUajWYs4kmOYheQLoRIFkL4ADcBbw5nACnlW1LKO0JDQ+02wmzV/Tk0Go2mN24JPQkhNgLLgCghRBnwgJTy70KIe4D3ACOwQUqZN9K2hfh5UjROo7GPrq4uysrKaG9vd7cpGg/Ez8+PxMREvL29h7S/u6qebu5n+zvAO/aOK4RYDaxOS0uzdwgqGvU/lmb0U1ZWRnBwMElJSQjRV/pPc74ipaSuro6ysjKSk5OHdIwnhZ4cxhmhp7SYICdapNG4h/b2diIjI7WT0JyDEILIyMhhzTbHlKNwBvvLGtxtgkbjFLST0PTHcP82xpSjcEbV08KUSCdapNFoNKOfMeUonBF62l5Y50SLNJrzFyEE//3f/93z+pFHHuEXv/iFXWM9++yzlJcPq1reLpYtW8acOXN6Xu/evZtly5YBMHPmTHJycgAwm80EBgbyr3/9q2ff2bNns3fvXp599lmEEHz00Uc977322msIIXj55XO1TdeuXXvOdqvVyr333su0adOYPn06c+fOpaioiPnz55Odnc2ECROIjo4mOzub7OxsiouLSUpKYunSpWeMk52dzbRp0xz9WMaWo3AGi1Kj3G2CRjMm8PX15dVXX6W2ttbhsUbKUQBUV1ezefPmc7YvWrSIbdu2AbB//34yMjJ6Xre0tFBYWMiMGTMAmD59Ohs3buw5dtOmTT3vDYUXX3yR8vJycnNzOXDgAK+99hphYWHs2LGDnJwcHnzwQdasWUNOTg45OTkkJSUB0NzcTGmpErg4fPiwXdffF2PKUTgj9LStwPE/ao1GA15eXtxxxx089thj57xXU1PD9ddfz9y5c5k7dy5ffPEFAFdffTXPPfccAH/729+45ZZbePnll9m9eze33HIL2dnZtLW18c477zB58mSWLFnCvffey5VXXgmoG/a6deuYO3cuM2fO5I033gCUo7nuuutYtWoV6enp/PCHP+zX7h/84Ac89NBD52xfvHhxj2PYtm0bd955Z88MY+fOncyaNQujUenELV26lJ07d9LV1YXJZCI/P5/s7Owhf3YVFRXEx8djMKhbdGJiIuHh4YMed+ONN/Liiy8CsHHjRm6+uc8C02EzphYNSCnfAt6aM2fO7faOoXMUmrHGL9/K41B5k1PHnJoQwgOrMwfd7+677yYrK+ucG/N3vvMd7rvvPpYsWcKJEye49NJLOXz4MOvXr2fx4sUkJyfz6KOP8uWXXxIREcETTzzBI488wpw5c2hvb+db3/oWn332GcnJyWfcDH/9619z0UUXsWHDBhoaGpg3bx4XX3wxADk5Oezbtw9fX18yMjL49re/zfjx4zmbhQsX8tprr/HJJ58QHBzcs33RokX89Kc/BZSjeOCBB9i4cSPNzc1s27aNxYsX9+wrhODiiy/mvffeo7GxkauuuoqioqIhf7433ngjS5YsYevWraxYsYKvfe1rzJw5c9DjbrjhBtauXcv3v/993nrrLZ5//nn++c9/Dvm8/TGmZhQOY+6gbPtL7rZCoxkzhISEcOutt/L444+fsf3DDz/knnvuITs7m6uuuoqmpiaam5uJjY3lwQcfZPny5Tz66KNEREScM+aRI0dISUnpWQPQ21G8//77/Pa3vyU7O5tly5bR3t7OiRMnAFixYgWhoaH4+fkxdepUSkr61L8D4Kc//ek5s4qkpCQ6OzuprKzkyJEjZGRkMHfuXHbs2MG2bdtYtGjRGfvfdNNNbNq0iU2bNg37m31iYiJHjx7l4YcfxmAwsGLFijNyHv0RERFBeHg4mzZtYsqUKQQEBAzrvP0xpmYUDiOMpE0cj5RSlxZqxgxD+ebvSr773e8ya9Ysbrvttp5tVquV7du34+/vf87+Bw4cIDIyst+chJT9y+xIKXnllVfIyMg4Y/uOHTvw9fXteW00GjGbzf2Oc9FFF/Gzn/2ML7/88oztCxcu5OWXXyY+Ph4hBAsWLOCLL75g586dLFiw4Ix9582bx8GDB/H392fSpEn9nqs/fH19ueyyy7jsssuIjY3l9ddfZ8WKFYMet2bNGu6++26effbZYZ+zP/SMojcGI4Unq7UwoEbjRCIiIrjxxhv5+9//3rPtkksu4Yknnuh53TvWv3nzZvbt28cjjzzSE64JDg6mubkZgMmTJ1NYWEhxcTFAT0we4NJLL+VPf/pTjzPZt2+f3Xbff//9/O///u8Z2xYvXsxjjz3GwoULAeU4nnvuOeLi4ggLCztnjIcffpjf/OY3wz733r17exyl1WolNzeXiRMnDunYa6+9lh/+8Idceumlwz5vf4wpR+FwMlsIUiL9nGuURqPhv//7v8+ofnr88cfZvXs3WVlZTJ06lSeffJKOjg5uv/12NmzYQEJCAo8++ijr1q1DSsnatWu58847exLCf/nLX1i1ahVLliwhNjaW7pL4n/3sZ3R1dZGVlcW0adP42c9+ZrfNl19+OdHRZ/bwWbx4MYWFhT2OIj4+HovFck7YqZvLLruM5cuXD3qub33rWyQmJpKYmMjChQuprq5m9erVTJs2jaysLLy8vLjnnnuGZHdwcDA/+tGP8PFxXssEMdA0brTiSOOiw9s3E5RxIeMjnBPb02jcweHDh5kyZYq7zXAZJpOJoKAgpJTcfffdpKenc99997nbrFFFX38jQog9Uso5Z+87pmYUziBa1uJt1B+LRuPJPPXUU2RnZ5OZmUljYyPf+ta33G3SmEYns8/CHJFOramDuFAdgtJoPJX77rtPzyBGEP3V+SxCTx3QyWyNRqPpxZhyFM5Yme2fNI+G1k4nWqXRaDSjmzHlKJwhCsjJPc4zSKPRaMYAY8pROIXEufh7G91thUaj0XgM2lGcTdluTrV2Dbj6U6PRDM5olBkfCuXl5dxwww1D2vfhhx/m+eefd7FFrkc7irNJvoAp8cE0tnW52xKNZlQzWmXGByMhIaHPvhJ98f7773PJJZe42CLXox1FL3YU1nFsxzu0d1oorW9ztzkazahmNMqMJyUl8T//8z8sXLiQOXPmsHfvXi699FJSU1N58sknASguLu5pBjTQuE1NTXR2dhIdHc3atWu56667WL58OSkpKXz66aesW7eOKVOmsHbt2p5j7rrrLubMmUNmZiYPPPAAAI2NjWRkZHD06FFAiSA+9dRTdv9e7EJKOeYes2fPlvawdsMO+V+PvSSluVN+cqTKrjE0Gk/g0KFDZ7zOLW2QVY1t8nBFoyytb5H51c2ysMYkT9S1yKOVTbKioU0eKGuQtc3tMre0QdabOvp8rm5qlwdPNgzJhsDAQNnY2CgnTpwoGxoa5O9//3v5wAMPSCmlvPnmm+XWrVullFKWlJTIyZMnSymlrKyslKmpqfKzzz6T6enpsq6uTkop5YUXXih37dolpZSyra1NJiYmysLCQimllDfddJO84oorpJRS/uQnP5H//Oc/pZRSnjp1Sqanp0uTySSfeeYZmZycLBsaGmRbW5ucMGGCPHHixDk2T5w4Uf7lL3+RUkr53e9+V06fPl02NTXJ6upqGR0dLaWUsqioSGZmZkop5YDjvvLKK/JnP/uZlFLKb3zjG3LNmjXSarXK119/XQYHB8vc3FxpsVjkrFmz5L59+6SUsud6zWazvPDCC+X+/fullFK+//77csGCBXLjxo3y0ksvHdLnPxhn/41IKSWwW/ZxTx1TC+6EEKuB1WlpaXYd7200EN9VDC21SGmkw2zB10sntjUae+ktM95bKfbDDz/k0KFDPa/7khl/7bXXhiwzvn79ekCFet58800eeeQRgD5lxoEemfG++lFcddVVgOpSZzKZCA4OJjg4GD8/PxoaGs7Zv79x33333TMUc1evXo0QgunTpxMbG8v06dMByMzMpLi4mOzsbP7973+zfv16zGYzFRUVHDp0iKysLFauXMlLL73E3Xffzf79+4f46TuPMeUopIONi3y8DByUqeATyLKMYD49VsOyjBgnW6nRjDzTE9WNLCakf8WBbjWCyCAlxx0e6NPnc3Swbx9H989okxnv3s9gMJxxjMFg6POY/sbduXMnf/3rX4c8blFREY888gi7du0iPDyctWvX0t7eDqjP6/Dhw/j7+1NfX09iYmK/n4Er0DmKXvh4GQiz1EJdPkII2rv0Cm2NxlFGq8y4I+Tl5TF58uSe1qhDoampicDAQEJDQ6mqqjqjb/djjz3GlClT2LhxI+vWraOra2SLbbSj6IWvl4EiSwyEKm89a2IYOaUN7jVKoxkDjEaZcUfYvHkzq1atGtYxM2bMYObMmWRmZrJu3bqe1qrHjh3j6aef5tFHH2Xp0qVccMEFffb0diVaZrwXP3/jIJ/nHOLjGwNgypWYLVY+z6/V4SfNqEPLjLuXlStX8txzzxEfH+9uU/pFy4zbiY/RQL3FHyJSAPAyGrCOQUeq0Yx2PF1m/IMPPvBoJzFcxlQy21F8vAy0WAxK7yl2KgBWK1itEoNB99DWaDwFLTM+sugZRS98vYx0WcASNbln29JJUWzNd3xlqUaj0YxWtKPoRYK5lExRTEddUc82Xy8jFquuftJoNOcvY8pRONqPYmHhH/lf77/R5h1+xvYladG8tLvUGSZqNBrNqGNMOQrpYD8K4e2HL110tjSq5IQNHy8DGXHBWK06sa3RaM4/xpSjcBSDzVE0+cRB65l5ibSYIF7UswqNZshUVlZy0003kZqaytSpU7n88ss5duxYz/uPPfYYfn5+9I4AbNmyBSHEGYvz9u3bhxCiR5Zj7dq1JCcnk52dTXZ2NosWLQKUQN8999xzjh0bNmxg+vTpPWsruoUCh8LatWuHrBQ7UmzZsqVHBHGk0I6iFwZvf3xFF/X+SVB77Iz3Any8mD0xnNL6VvcYp9GMIqSUXHvttSxbtoyCggIOHTrEb37zG6qqqnr22bhxI3PnzuW1114749jp06efsdp606ZNzJgx44x9fv/735OTk0NOTg7btm3r146ysjJ+/etf8/nnn5Obm8uXX35JVlaWk67SPiwWi1vPbw/aUfTC6OOHL500WbygreGc9yfFBvPh4So6zKPvF63RjCSffPIJ3t7e3HnnnT3bsrOzWbp0KQAFBQWYTCYeeughNm7ceMaxEyZMoL29naqqKqSUvPvuu1x22WV22VFdXU1wcDBBQUEABAUF9YgJ9qakpIQVK1aQlZXFihUreoQEQQkYLl26lEmTJvH2228DSqJj3rx5ZGdnk5WVxfHjxwH417/+1bP9W9/6Vo9TCAoK4uc//znz58/nN7/5DTfeeGPP+Fu2bGH16tWAEjVcuHAhs2bN4itf+QomkwmAd999t0dW/dVXX7Xrs3AEvY6iF96+/vjRRUuHGYK8+9zntsXJvJ1bzhXT4xFCr63QjAI2/xgqDzh3zLjpcNlv+3374MGDzJ49u9/3N27cyM0338zSpUs5evQo1dXVxMScVkC44YYbeOmll5g5cyazZs06Q0QP4Ac/+EGPjEVmZma/XeRmzJhBbGwsycnJrFixguuuu67nptybe+65h1tvvZVvfOMbbNiwgXvvvZfXX38dUP0nPv30UwoKCli+fDn5+fk8+eSTfOc73+GWW26hs7MTi8XC4cOHefHFF/niiy/w9vbm//2//8fzzz/PrbfeSktLC9OmTePBBx/EbDaTkpJCS0sLgYGBvPjii6xZs4ba2loeeughPvzwQwIDA/nd737HH/7wB374wx9y++238/HHH5OWlsaaNWv6/VxdhZ5R9MIYGIGv6KKjpQms/c8aMhNCKaptGUHLNJqxxaZNm7jpppswGAxcd911vPTSS2e8f+ONN/LSSy/1OJSz6R16GqjVqNFo5N133+Xll19m0qRJ3HfffX22Y92+fTtf/epXAfj617/O559/foYtBoOB9PR0UlJSOHLkCAsXLuQ3v/kNv/vd7ygpKcHf35+PPvqIPXv2MHfuXLKzs/noo48oLCzsseP6668HVEOnVatW8dZbb2E2m/nPf/7D1VdfzZdffsmhQ4dYvHgx2dnZ/OMf/6CkpIQjR46QnJxMeno6Qgi+9rWvDfvzdhQ9o+iFT2gcABZTFcycC+U5kJB9zn7JUYHkljXw2bEaLpgUPbJGajTDZYBv/q4iMzOz3yRwbm4ux48fZ+XKlQB0dnaSkpLC3Xff3bNPXFwc3t7efPDBB/zxj38cMA8xGEII5s2bx7x581i5ciW33XbboL27e0cLzo4cCCH46le/yvz58/nPf/7DpZdeytNPP42Ukm984xs8/PDD54zn5+d3hpLsmjVr+POf/0xERARz584lODgYKSUrV648JxSXk5Pj9ujFoDMKIcRCIcSfhRC5QogaIcQJIcQ7Qoi7hRD21aF6KN42R4GpBvzDoan/Hr1ZiWHEhPhSrGcWGs05XHTRRXR0dJzRsnPXrl18+umnbNy4kV/84hcUFxdTXFxMeXk5J0+epKSk5IwxHnzwQX73u98NS6r7bMrLy9m7d2/P65ycHCZOnHjOfosWLWLTpk0APP/88yxZsqTnvZdeegmr1UpBQQGFhYVkZGRQWFhISkoK9957L1dddRW5ubmsWLGCl19+merqagDq6+vPuaZuli1bxt69e3nqqad6QkkLFizgiy++ID8/H4DW1laOHTvG5MmTKSoqoqCgAOAcRzISDOgohBCbgW8C7wGrgHhgKvBTwA94QwhxlauNHClEkIqRWpoqwegFfgP7wYzYYPaeODUSpmk0owohBK+99hoffPABqampZGZm8otf/IKEhAQ2bdrEtddee8b+1157bc+NuptFixZxzTXX9Dn+D37wg57y2OzsbDo7OwFVIpuYmNjz6Orq4vvf/z6TJ08mOzubF198kT/+8Y/njPf444/zzDPPkJWVxT//+c8z9snIyODCCy/ksssu48knn8TPz48XX3yRadOmkZ2dzZEjR7j11luZOnUqDz30EJdccklPV7qKioo+7TcajVx55ZVs3ry5p9Q1OjqaZ599lptvvpmsrCwWLFjAkSNH8PPzY/369VxxxRUsWbKkT0fnagaUGRdCREkpBxQ6Gso+I429MuM0V8KjGTwX8W1uvfchyH0Jsr4y4CEVjW00tZnJiAu201qNxvmMdZlxjeM4TWZcSlkrhDAKIT4caB+7LfU0AqKwIvBqs13S1Kvh8NsDHhIX4kdxnQ4/aTSascugOQoppQVoHWv5iD4xetFqDMW/w+YovHzAyxc6TP0eIoQgKzGULUerR8hIjUajGVmGWvXUDhwQQnwA9Hx9llLe6xKreiGECAT+AnQCW6SU/dfCOYFW3yiCTKdO96CYuAjyXoOZ/ZekxYf6U9XU4UqzNBqNxm0MdR3Ff4CfAZ8Be3o97EIIsUEIUS2EOHjW9lVCiKNCiHwhxI9tm68DXpZS3g64PHHe5RdJFA2calXJMXwCIXbaoMd1mq0cKLNPtVaj0Wg8mSHNKKSU/3DyeZ8FngCe694ghDACfwZWAmXALiHEm0Ai0L2s1OXaGYbgWKLrCjhR30pkkG01aPk+iJ4M3n79HjcvOYKDJ7Wj0Gg0Y48hzSiEEEVCiMKzH/aeVEr5GVB/1uZ5QL6UslBK2QlsAq5GOY3E4djrCH7h8UTTSElt8+mN066DxrJBj21s6+JwRZMLrdNoNJqRZ6g33jnAXNtjKfA48C8n2zIO6K3jXWbb9ipwvRDir8Bb/R0shLhDCLFbCLG7pqbGbiMCJ2TjK7poLu0VFfMLhcNvntGjoi8WpUZi6jBTdkorzGo0Y0Fm/Gwuv/xyGhoaBt1v+/bt3H777Xafx9MYkqOQUtb1epyUUv4fcJGTbelrjbqUUrZIKW+TUt41UCJbSrleSjlHSjknOtp+WQ2fCXMB8KrYe+YbS78HR/r1U4CqgJo1IZyc0gb2lJzCohsdac5TxqrM+DvvvENYWNig+7377rusWrXK7vN4GkMNPc3q9ZgjhLgTcPYKszJgfK/XiUD/Ghp94GgrVAAiUmkxBBFSt//c9/zDwdI14OFGg+DKrAQSw/35Ir9WKdFqNOcZo01mfO3atdx1110sX76clJQUPv30U9atW8eUKVNYu3Ztz35JSUnU1tZSXFzMlClTuP3228nMzOSSSy6hra2tZ7+PPvqIiy++mGeffZZrrrmG1atXk5yczBNPPMEf/vAHZs6cyYIFC6ivVxH4p556irlz5zJjxgyuv/56WltVVOLqq6/muedUKvdvf/sbt9xyi12fg6MMNfT0aK/Hw8Bs4MYBjxg+u4B0IUSyEMIHuAl4czgDONoKFQCDgdqQaaR0HMF09k0++QLIeWFIw8SG+LEoNZIXd5VS1dRuvz0ajTMo36eUB6ryoOEE1B6HugI4VQzVh5WuWXkOtNSqfVvr+342VUNF7qCns0dmvDfdMuPbtm3rV2a8O/Q00M2zt8z4bbfdxltv9R8VOHXqFB9//DGPPfYYq1ev5r777iMvL48DBw6Qk5Nzzv7Hjx/n7rvvJi8vj7CwMF555RUAamtr8fb2pvs+dPDgQV544QV27tzJ/fffT0BAAPv27WPhwoU9TuC6665j165d7N+/nylTpvSE3tavX8+DDz7I1q1befTRR/nTn/7Ur/2uZKihp+W9HiullLdLKY/ae1IhxEZgO5AhhCgTQvyXlNIM3IPSlToM/FtKmWfvORzBOm42k0Qph4r7mNDETYe2oek7eRkNrFuSTHlDG//eXXqu49FozlM8TWYcYPXq1QghmD59OrGxsUyfPh2DwUBmZibFxcXn7N+dJwGYPXt2zz7vv/8+l1xySc9+y5cvJzg4mOjoaEJDQ3v6YUyfPr3nmIMHD7J06VKmT5/O888/T16euvXFxsby4IMPsnz5ch599FEiIiL6vVZXMqTyWNuq7AeAC2ybPgUelFLaFeORUp77m1fb3wHesWdMUKEnYHVaWpq9QwAQM3kxxrw/U3zgC+ZlTDjzzXGzYOujsOR7METp35kTwpk5IZzPj9disWlrTR8XSkSgj0N2ajRDJmGmeg6O63+fkAT1HBilngMi+n4OimEwRqPMePesxWAwnDGDMRgMmM3nfsnrvY/RaOwJPW3evJnvfe97fe7Xe+ze465du5bXX3+dGTNm8Oyzz7Jly5aeYw4cOEBkZCTl5cOKxDuVoYaeNgDNqHDTjUAT8IyrjLIXp4SegMCU+QB0FO/se4e5t0PJF8Med0l6FBdOiiYzIYSa5g6e+Pg4p1o6HTFVo/FIRpvMuLOQUpKbm9sz0xgqzc3NxMfH09XVdcYMaefOnWzevJl9+/bxyCOPUFRU5GSLh8ZQHUWqlPIB2xqHQinlL4EUVxrmVgKjqPObQHLTLprb+0he+4Wontqd9pXBRgX5khEXzLcuTKW4roVNO08wkIqvRjPaGG0y485iz549zJw5c9iNhn71q18xf/58Vq5cyeTJkwHo6Ojg9ttvZ8OGDSQkJPDoo4+ybt06t9wrBpQZ79lJiO3AD6SUn9teLwYekVIudLF9w6JX6On27mbn9lLx8o+IPrCe9y7fyhXz+5HwyP03ZDknp7/h8yJmTQynsrGNiybH4uOlu9Rq7EfLjLuHhx56iLS0NG666SZ3mzIow5EZH6oo4J3Ac7ZchUCtql7roJ1OR0r5FvDWnDlz7Fvp0tYA5g4IjiV24c0YDj5J3Y4XoT9HEZmmZhU+AXbb3M26JapkL88oOFTRRF55I/OSIogI9DktJaLRaDyan/70p+42wSUMVetpPzBDCBFiez02dSpa66CxFIJjMSTMoDJgEgtrX+GU6aeE93WzHjcLPv8/WHiP6ojnBDITVH4le3wYNc0dHK5opsZUw8TIQLITw5SirUaj0YwgQ6168gWuB5IAr+74m5TyQZdZ5g6C48DbX/0sBNb5d5H+yX28/cHLXHltP7Xas26F8r2qqsTo7VRzooN9iQ5WDqrTbOWJT/JZnhFDkJ8XyVGBTj2XZuwhpRx2rFxzfjDcPMdQA+FvoAT6zKh+FN0Pj8LhldmdLXDydIVEwuJbaDCEE37g73RZ+tF5CoiAoFgo+tS+cw4RHy8D965IZ3J8MEcrm3lx1wkOlY/NiZ3Gcfz8/Kirq9NFEppzkFJSV1eHn1//athnM9Rk9kEp5eBNGTwEu3tmWy1qpWpkas+mwpd+Skren3j/ore55IKl/R/bVA4FHw/Y4MjZnKhr5fWck1w7cxwJYf4YdVhKY6Orq4uysjLa27UqgOZc/Pz8SExMxNv7zCiIo8nsbUKI6VLKA4PvOooxGKHwkzMcRdKqe2nPW491y+8wzV9IkG8/H1lIAqQsV/IG8faLjg2HCZEB3LsinbzyRvKPmahp7iB7QhiTYp0tw6UZbXh7e/epaaTR2MOAoSchxAEhRC6wBNhr6z6X22v72CP5wjNeGoJjaMj6JqusW3n1tRf7OchG6DjoaFLhq0EkyZ1JZkIoyyfH8JU5iYT6e/PnT/LZU3JKN1LSaDROYcDQkxBiwCWMUsqSgd4faZyyjmL3MzDntjO3dbZQ98gcTB1mOr75OZPGxw48RlMFHHwFFp2rjT9SdJgtHDzZRK2pAz9vI3EhfqTFBOnwlEaj6Zf+Qk+DOYrdwBfAZmCLlHJUBDztzlEAVB+B6IxzdJyajmwhaNM1fOJ/CRf98MXBq0mkhAMvwaRVaiW3m9lRWEeAjxcfHK7ihlmJRAT59B9G02g05yX9OYrBqp4WAK8By4BPhRDvCCG+I4SY5AIbPYOOJqg4txdFyORlHEr9Jiva3mPHS48OPo4QkHG50oRqqXOBocNjfkok0xND+e6KdPx8DGw+UMFnx2r44FAVRyub+6/q0mg05z1Dqnrq2VmIeOAyYBWQDmyXUv4/F9lmNw7NKDpboekkRKWf85bVbCb3kcvIbNtD8apnSF949eDjmTtVZ7xxsyE8yT6bXMyeklM0t3dxvMrEiikxRAb6Ehrg3DUhGo3G87Er9DTIgAZgoZRy+DKqLsYhRwGw8ymY9Q3wOlcGvOFULbWPryBRltN2/b8In37p0MY89AbETjujosoTqWnu4MvCOvy9jRiNguzEMEL9vfWKcI3mPMAhRyGEmAPcD0ykV0mtlHJk6kCHiNNEAU01YOlUVUx9cLSwGPmP1SSLSixrXiBgysqhjVu+D2rzIesr9ts2wryfV4m/j5Gjlc2snBpLQpg/3kYtWKjRjEUcdRRHgR8AB4CeYLanVT114/CMAmDbEwNWLW3df5ioV24kxVCJec0LBA7VWXS2wJH/QMZl4Dt61jtIKSlvbGdbfi2xIX6YrVbiQvxJiQ7Ez9v+fgEajcZzcNRRfC6lXOISy1yAUxxF40nw8j3d7asPPth9iMQ315BiqKTr6r8RNPO6oY3d2Qp1+dDVChMWOGanm+g0W8mvNtFlsbLlaA1L0iNp67QyLzlCS6RrNKMURx3FCuBm4COgo3u7lPJVZxrpLJziKKSErY/A4vsGVIbduv8wQa9+nZniOM3zvkvwqp+rFd5DoWQbePkph5E0avxwn5gtVorrWqlp7qChtRN/HyMWqyQ1OoiwAG/CAnTbV43G03HUUfwLmAzkcTr0JKWU65xqpZNwiqMAVbFUtguSFg+42/ZjJyl//h6uFx/TnLCE4K8+C0HRQz9P0VblMCKSB5zBjDaklOwrbSDI14vtBXUsTovk4yPVrJwahwDGRwToBYAajQfhqKM4IKWc7hLLXIC9jqKxtYsOs4WYkF6qinmvq3yC18DNg45VNfPK0w9zX+d6pG8Ivl95CkP6iqGf3NKlFGglkHxBnxVXYwGrVdLcbmZXcT1Rwb7sLKpj5oRwGlu7mJ+iwla+XjrnodG4A0cdxVPAY1LKQ64wztnY6yjyq03UmTqYnxJ55hv7/gXZt5yzWvts6kwdPPb863z95INkGMpomXUngZf94nSPi6HQXAkNJ1QDpfRLRlXC216klLR0Wsg72UinReU+shLD8PM29DRy0mg0rsdRR3EYSAWKUDkKgQo9jany2Ob2Ltq6LMQEn6XTXlegZhShiYOOIaVk07ZjyPd+ylcN72MKnEDQmqdhwvzhGWOqhuYKVVI7/Svgc341KmrrtLCzuB5vg6CquZ2YYD+a283MTQon2M9bJ8w1GhfgqKPoUxxwrJXHltS1UFrfxpL0PvIE256AeXcMOSRUVNvCM/98ljsa/kCCqKNr7v/D95KfDW92AaqctrkS8l6DJfcNPVE+xrBY1d/p9oI6/H2M7CiqY1VmHK2dFlKiAwnw0bpVGo2jOLwyWwgRDoznzAV3e/s/wn3Y6yhaOsyYOszEhvTR+amlVoWEOk0qhzAEzBYrT32YS9jnD3Kz8SPaAhPxX/VLyLwODHZ8Iz65F6oOQtZNYzaHMRzqTB2cqG/F10s5juzxYbR0WFiUGqlXkms0duDojOJXwFqgAJVuBRV6usiZRjoLex1FeUMbRyubWT45pv+dSndBUAyED6jAfga5ZQ0898JzrDM9zVRDCe3RWfhd/ushO5xzOP6Beo7LguBBJM/PI6SU1DR38NGRasaF+VNQY2JpehRVTR0sSo3U/aM1mkFwxsrs6VLKTlcY52zsdRRtnRYa2jqJDx0gPCQl7N4Ac9YNmtzuTYfZwj+/KKTok2e4W24iQdTRkXwxvqsehNjMYdsKwPEPlYS5MEDiOb9bDdDaaaa0vg1TRxeFNS2E+HvjbRT4eRsZHx7A+IgAd5uo0XgMjjqKV4C7pJTVrjDO2djrKGqaO9h74hSXZsYNvvOOv8Hcbw47Z3CqpZO/fpSHcdd67jK8TrBowzz9Zrwvvn9IyfI+OfGlSnaf3AtpF6u2rPrb84AU1bbgbRS8l1dFZkIIhTUtzEuOwGKVZMSN/UozjaYvnCEK+AZwkDNXZl/lTCOdhSMziqqmdpKihlBh1Fylelf0IUc+FErqWnjinV2kH13PWq/3MAqJJfMGfJbcC3HT7BoTcwe0N6rEd/KFUJ133pTYOoOSuhZMHWaqmzqQSLyNBjq6rFil5MKMaLwNBp370IxpHHUUecDfOFcU8FNnGuks7HUUTe1dfH68lsunxw/tgCPvQHAcjJs17HN1k1vWwD/f/Zypxc+xxriFANFB58Rl+FzwHUhZ7tjMoKkCpEXZmXwB1BdA6grw7iNZr+mXkroWuiySDw9XsTg1isJaE/OSIwjy9SLYT/ft0IwdHHUUn0opL3SJZS7AXkchpSS3rJEZ48OGflBrPex5BhZ9Z0BNqMHIK2/kmQ/3EnNsI2uN7xEjGuiInIrvBd+FadeB0Qk3pFMlIK1w+C2YciX4BA9PakTTkzA3GgTbC+uICPShqc2MlJLxEQHEhvgR7OelFXU1oxJHHcUfUCGnNzkz9DSmymMBXtlTxvWzh5kr6GyFuuNQc8zhXhOFNSY2fHoEy/5/s068TbrhJO3+cfgs/BaGWV9TFVfOoLMVjr6jEuklX0DGFWp2pHMbdlPd3E7OiQYig3w5XNHElPgQQDJ7YoS7TdNohoSjjuKTPjZ7XHmsMxoX7S6uZ06Snf/Y7U1wcrd6Hj/foRtvTXMHL3xZTNGXr3Nj5+ssMh7CIrwwp67Ed/YtkH6p89ZSWMzQWmfLbSyFgk9g3u2D6ltpBqamuYOWDjPHqprx9jJQZ+pkanwIUxNC3G2aRtMnTm+F6sk4MqP49+5Srp+V6LiqadkeaKtXIaMJi+y+qXdZrLyXV8lHn21lSuUbXGP8ghjRQJdvOMasGzBk3wwJs5w3E5ASao+r3Ebx5yopbulUMw8923CIDrOFUy1dfHykmoWpkfx7dylfmZ3I9sI6FqZEsr2wjpVTYs8UpdRoRhC7HIUQ4mvAC1JKaz/vpwLxUsrPnWapE3DEURyvamZcuL/zJCGaKqCxDGqOKBVaB2TE86tN/HtnIeV7NnOp+WMuMe7Bly46w9PxmfVVyFrTb/tWu7FaVPmtb5B6nrJaSaIH6HCKK9hVXE/ZqVYmxQazv7SRhDA/uiySUH9vyhvaSIsJoqqpnSXpUQiU45ZIDELgZRB6UaHGIex1FN8B1gF7bI8awA9IAy4EaoEfSykdaFDtfBxxFKX1rVQ2tTPX3vBTf5g7lMM4sV2J/DkQ1ukwW/jgUBXv7DpCaOF/uM74GXMNx5AIuiYsxWf212DyFerm7mzaGuDYuxCfDSf3QOY14B2gZxsjSPd6n4hAH9q7LFglWKxWfL2MnKhvZVpCKIW1JqKDfZk9MRwvgwGz1YpRCLx0v3PNANgdehJCGIGLgMVAPNAGHAY2SylPuMBWh3HEUXSarRyqaCJ7OJVPw8FUDW2noHALTLlKzTAcqGiqamrn9X0n2bFnDzPqN3OdcSvjRQ1mgx/WtBX4TLsGJl0Kfi6Q6+5oVtdydLMKUdXlq3M5o0JL4zBN7V28n1fF3KRwdhWfIiU6kC8L67hsWjzbC+qYMT6U1OggXaGl6UHnKIbBa/vKuHamnaukh4qU6iZ78BUYP08lwCcsdKjE9lhVM6/tLaUs52PmtGxhlXEXsaIBq/DCPG4ePlMvh9SLIGaqa2YADSdUV8D8D5TjaDqpzneeKt56OjXNHXx8pIpZE8LZWVzPwpRI3j9URUZsMJ0WK+EBPpxsaCUtOpj0WO1Qzge0oxgGO4vqmZc8gjF4KaH6sFrjULLNlgfwtTsPIKUkr7yJt/aXcWL/p0xv2c5Fhn1MNpQC0OUfjVf6ckTKRZCyDEKGuMBwuFQfAaRq9Zq2Qq1kj8vSjmOUUVLXwqnWLgprTEyICKDW1EmH2YKft5Hp40I5cLKRaeNCGRc2TAl9jcehHcUw2HyggsuGujrbFbQ1wPH3VR6geCtMXKxmH+NmD7t6SkrJ4YpmPj5SRU5eHhGVX7DYcJClxoNE0ASANSoDQ6rNaSQtdo3kR3uTWmviHajWbSTOVXIjSUt0fmMU0mm20tjWRbCfF83tZo5UNlHT3EFGXDA5pQ1MSwjF22ggKsgHCXgZBO1mq3YmHo52FMNg6/EalqZ70Ipli1lVTXn7q0Vyi75t91A1zR1sOVrNJ4crqTq+h9mWHC4wHmSe8Sg+shNp8EIkzoPU5cpxJMxyKBw2IOU5Svm2bJdad9JYpnIc2nGMejrNVopqW+iyWLFYJQE+Rk61dpFb1sCyjBh2FdczNT6EkvpWrpqR4G5zNTYcXXAXC/wGSJBSXiaEmAoslFL+3fmmOo6jjmJXcT3hAd6kxXigmF5niwrlCAPETIawCXYP1WG2sLOono8OV/PZoVLimvaz1HCAi7zzSJdFGJBYfUMwJF+gnEbKcohMdd2N/FSJmjmV71W5DZ9gCIwc/DjNqCWvvJEAHy+2F9SxMDWy5/nz/FqSIwPxNgpSooMorDGREh2El0EQHqibdrkKRx3FZuAZ4H4p5QwhhBewT0o53fmmOo6jjuJUSyfN7WYmRHpwrwKrFfZvhPgZqkw1a41DYn9SSgpqWthWUMsX+bUcKigiqzOXJYYDXOSTR6xVKcxbQxIxpC5XM47kCx1aFzIgzVXKYQTFQuUBmLAAhBGi0lxzPo3Hcaqlk7qWDmJC/KhuaicmxI83cspJjQ6kztTJhIgAjlQ2kR4bzJS4EPx9dO7LURx1FLuklHOFEPuklDNt23KklNnON9VxHHUUAH/44BjfWznJSRa5mPYm1Ve76FMVKrJ0wMRFDg1ptlg5WN7EF/m1fH6shpoTR1jAfpYaD7LEeIhA2QKAJXY6xrSL1GxjwoLh9wQfClKqRHjVITWTqi+E8KTTDZt0cvy8pqKxjcrGdkpPtREd5EtblxkpIdDXi6qmdlKigjhY3si85Ah2FNazICWCLwvrCfH3IiM2GB8vA1YJvl4GTB1mwgK8qWnuYFyYPycb2hgX5k+tqZO0GBesS/IwHHUUW4DrgQ+klLOEEAuA33mqoqwzHEVuWQNZiWHOMWgk6WpTIZzOFtWPInYaNJbC1KsdGrat08Luknq2FdSxu7AGyveyQOayxHiQ2YbjeGHBYvDFkjgfn0krVKgqdprr8htWi8ppHHtXzTqkVZ1TrxjXDJHm9i7qTJ2YrRIpJb5eRprau4gK8qWisY2JkYGU1LUwMTKQHYV1mK2SyCDbIkcrBPt5UdnUTmp0ELlljSxIiaCgpoWVU0dve2JHHcUs4E/ANFTzomjgK1LK/c42tI9zpwD3A6FSyhuGcowzHMXzO0q4Zf7Q+2J7NK31ULpDhW6MXurGam/7VRttnRb2nTjFjqJ6cgrK8D25nQUyl8WGg2QYygDoMgbQHjuLgLQlGCcuUJVOrlgtDmpWZapWs6rx89UMK22FToxrRpTS+la2Hq8lKzGUghoTcSF+NLWbbfIqsCzDSerPLsJRR+ELWIAMQABHAYOUsmOQ4zYAVwLVUsppvbavAv4IGIGnpZS/HYINL4+ko8ivNjEuzH/sxT3NndBcDrX5YG5TLVTDkyAixaFhO81WDpY3sru4nqKi43id2E56Rx5zDMeYLE5gEBIrRprDMjBOXEBg8jxE4hyISAWDC2QlKnKVbMrJPUoyxTfYeWq7Go0d7C6uJyLQ5wwRyDkTI3g7t5zrZyUiBEQE+lDf0klkkC9WKQkZ4cZYjjqKvVLKWYNt6+O4CwAT8Fy3o7BJghwDVgJlwC7gZpTTePisIdZ19+keaUexq7geAfZLjo8WOltVCKf6kJL5aG9UjiMh26FhpZScbGhj74kGDhWV0l60g+j6vcziKFmGAgKF+o7RYQyiJSoLv6S5BCTNU2tFnLkAUEo1uzj0hpphnPhS6WBZOtXMSs84NB5ASV0LJ0+1kRoTRH61ifSYIN4/VEVyVCCh/t50mJWmV2ywn0uLbOwVBYwDxgH/Ar4KdP9XhQBPSiknD+HEScDbvRzFQuAXUspLba9/AiClPNtJnD3OgI5CCHEHcAfAhAkTZpeUlAxm2oBYrZKPj1Rz8SiON9qFuQMsXapr36RVUJmrNKmcoN/UabZyuKKJ3NI6KvL3I8r3Ed+SxwxRwGRRirewAGDyiaYtegZ+SfMISpmPGDfTeVpVHc3KOZbugOjJUPyZqt4q2QaTrwT/cNfMcDSaYWKxShpaO/EyGpBSIiW8uLuUSzPjzignXjElhlgnSdPb6yi+AawF5gC9v6I3A89KKV8dwomTONNR3ACsklJ+0/b668B8KeU9/RwfCfwaNQN5ejCHAs6ZUQB8dLiKFVPOM0dxNrXHVeK45HMV+w+b4FSBweb2LvLKm8grqaS+cB++VfsY33aYLFFIqqGiZ786v4mYombgM2EOURkL8U7Icm7v785WVQBw+A3lOAo+UWs5OppUPkc3cdJ4KG/nlhMV5EuAj9HhAhxHQ0/XSylfsfPESZzpKL4CXHqWo5gnpbR/ufFZOMtRlDe0sb+0wb1yHp5EXYHSpPL2g5BxauYRneH0m2hzexdHKpspOFGGqXAXvtX7iDcdJkvkEyMaAOjCiwq/FJojZmAcP5uoyYuInJCJcGaVldUCFTngGwqFnyjRxvJ9yoH4hbhG6kSjsZONO09w8zz7F+CCEyQ8hBBXAJmofhQASCkfHMJxSTgh9DREGx1uhXo2+0sbmOEqyfHRSmu9em6pUTmNqoMwfoH6efx8l4RuzBYrRTUmiovzaSnciXfVPmKb8siw5hMs2pQ5+FHsM4lTYdOxJswkNG0BSckZhDpzJW9nK5jblbR6wkzVXyRxDlTlqfa0PoHOneloNENkd3E9MQ7mMBydUTwJBADLgaeBG4CdUsr/GsKxSZzpKLxQyewVwElUMvurUsq8IV/NIDhrRgHwRs5JMhNCPFPOw5OwdCmHYbWoeP/UqyE43uWVRo0tHRQf209TwQ6M5XuJajpIUlchPsIMQI0M5bAhnergqbTHZOOfNI+k8eNIjw12bkVJW4P6DI6/pxRyKw9A1CRoPAGB0araLCRBJep9Q3UeRON0Glo7OdnQRmaC/aFhRx1FrpQyq9dzEPCqlPKSQY7bCCwDooAq4AEp5d+FEJcD/4eqdNogpfz1sK+o7/M5fUbRZbFSUGNiclyIU8Y7L5ASWmph/wvqW3bRp5C6QiWQZ97i+tN3tVOdv5fG/C+RJ/cSWp9LTOcJDKi/9WJrLPtlKiU+6bSFZyDiZ5AwbjzpMUGkxQQRGeSCfESHSSXSG0qUU/HyhfYG8A1RiyQj0yAgEoI8SIxSM+pwtEWCo45ip5RynhDiS+A6oA44KKVMt9siF+LMGYXFKnlpdyk3ORj706AE/8p2q8oqn0AVqvIJVMnx8fNce+72Rqwn99FYsJOukl341+4nuKOq5+0Sawz7ZBr7rOkU+k7GGp3JxLgI0qKDSI9VDiQuxM81PamtFmiusDV+6lCfS2CUKuuNmaryIaEubqSl0dC/oxhq5u8tIUQY8HtgLyCBp5xnnudiNAjCArxp6TAT6OsiOYrzBf9wSF957nZTNRx8VclvWLrUGofJVzj33H6hGFKXEZ667PS2ljqoPoS1bA8xJTu57ORurmnbBlboqvLiUFUyu8xpvGxN5oBModJrHCkxwaTHBJMWE0RqtHIgEyMD8HakF7XBqBxBX86grUGFsWqPqRmJX6jaljATrGal5qvRuJih9Mw2AAuklNtsr30BPyll4wjYZxfOnFGA6kvdabYyPsKD1WTHEpYu2PcvNcuo2K9Wb9cXqLxHWwP4hynJDp9A9W3bmTSehJO74eQeZOlOKN+HMLcD0GYMJt97Eru7ktnalsR+ayp1hOJtFEyMDCQlKpDkXo9JscGukcS2WtUMpOmkcjJVeWpNSO1xSF6qdK/Ck5x/Xs2Yx9HQ03Yp5UKXWOZEXJGj6GZMaT+NRhrLlFps5QEVjqk+rJzEyT2QfYvKiQTHqXi/M+P8FjPUHoWTe1WDpZN71Sp2qRYHtvgnUOo/hVzS2N6exMdN8TSaTzuHqCBf0mICSYsJIi06iJToIJKjAkkI88docHIYqzs3VHVQrTo/sR2SL4DCLWom196kHEhbvUqwG32cspBSM3Zw1FH8EshFJbA9viWes2cUAJ8crWZBcuTY034a7bQ1qFBVzRGITIf8D2zfpoVqIeuK6qLOFqUlZZt5cHKPyi8AUhjoipxMbeh02+wjhS+aojhW00Zzu7lnCB+jgeSoQFKibU7EFspKiQ4kwMcFIc6uNuVkwyYqRxIzRSnvJl2gig0S56ge5+ETVUjLP0LNUnR11nmFo46iGQgEzEA7SspDSik9shTIFY4ip7QBAXpNxWigw6Scx5G31cLAhhJ1Qyz+TK33aK1V37SdianmtNPofrQ3qPe8A5EJM2iNyqY8YDJHDWkcaA2noLaVwhoTJfWtWKyn/w/HhfmTFBVAekwwk2KDmRQbxITIAKKDfF2TTO+NlKrowNyuCg98g9TrkESlPOwfrpyN7gEyJjkvema7MvQE8MmRapZlRLv+n1XjWkp3qlnBqSJIWqri/UlLnSsQKKVqsNTtNMp2K90sS6d63y8U4rMhYSZdcTMo9c3gSHs4+TUt5FebKKlr4Xi1idZOS8+QYQHepEYHkRodaJt9qJ8nRgY6P4x1NuYOFdYyt6vEusEbrF0qHOgdoBpWxU4Dg5frepBoXM554Si6ccWMAmBbQS0zEsN09dNYosOkEuUttdBpUmsZfIOVppWzF8aZO6HmsJIBKc9Rz1V56oYL6tt6wsweB2KNz+akNZL8mhaKapXjKKgxUVjTQq3ptMK/r5cKY/UOYaXFqFyIn/cIfPO3dIGpCpoqoKlMzTgqD6hwVsk25YQbTqgOiAajKkLQeCTaUTiBkroWPjpczbolyU4fW+MhSAl1+UqepLNFOY+UZeom7grMHcpZVOTYHMg+lai32vIZAZHKefRyIIQk0NhmpqDWRH61ieNVzeRXm8ivMVF2qo3uf2khYHx4gFpIGBtkC2UpRzKiX3akVOE/Lz/I/1DJvBRvhXFzoGwnJC87reJ74kvlYEzVEJWuChQ0I4Z2FE5id3E9yVGBrlm9q/E8WuqgtU6p5ybMhJqjSnbd0qnKdF1BV7tyHuV7bQ4kRzkPW6UVgTGqX0hvB2Lr4dHeZaGwpoX8GhMFNueRX2WisNZEl+XMPEiKLYTVnQdJjw0m1N9NVVBSqoe1S3VibDyhqrKKv4Cw8WrG4hemkvJGHzXr62pVyXdzB0Rl6MS7E3A0mf0gsBXYJqVscYF9TsHVOQqAslOt5JY1kj0+jIQwf5ecQ+PBNJxQN7LDb0HSYlUyO+ky9c3XlbmrrjaoPHh61lGRoyq9pFW9HxR32nF0O5Gg0203zRYrJfWtHK9q5niViePVJorrVD6kdx4kNsTX5jiCyYgLJj1GOZAgTwq3WszKUVs6lFNtqVYzsKpDEDdNOdaJi9VsZerVygH5BusmVUPAUUexDlgCLET1otgKfCalfMPZhjoDV84oQLVJrWxsZ1JcEDHBWin0vKciVyV4Q8erBHbcdLXKPCTBteftbFG5gO58R/k+ZYdN04rgeJVgjs9SNsVOh4jkMyqWrFbVifB4dTPHqkwcq2zmWLUKZbV3WXv2Swj1Iy02mEkx3ZImwaTHBo14q85h0dmi5FBKtqnP4cQ2Vf2W/4FyJJUHYOJCNWuMzlCO5DyXjndK6MnW8e5G4PtAuJTSIz9VVzsKgIrGNo5VmbhwkhZx0/RCSvVN3+CtvvUHx6nFbZHpIxMa6Wi2OY99yoFVHrDNPGyzBu9AGD8X4meokNW4WSr5fNa3bYtVcqJ7BmLLgxyvVjmRDvNpBxIX4ke6Lf8xOS6YVJsj8WgHAur3ZOlUM7LaY2pGlv+Byp8UfaY+n8pclTdpLFWvXZWn8iAcnVE8DUxFKcBuBT4H9kopzQMe6CZGwlEAvLDjBMsylKPQYShNv1Tkqk55LTXKacRmjuxNp6tdVVtV5anZR+mXKtfSXarrH6FCVeNmqee46Wp21EeoxmKVlJ1q7QlfHa9WoaxjVc19OpC0GOVElDMJIizAtbLzTsfSBaeKVSK+6NPTUikRKcqBRKapsJdPEMQM2hna43HUUbwGJACHgE9RYadCp1vpJEbKUTS3d+FtNPDv3aXcujDJ5efTjAHMnepGbelSSViDl0qKhya6PlR1th3Vh1TC/OTe09VW3TOPgCiV6xi/QDmQcbMHTN5brJLS+lbyq00cszmPfNsMpK3rdA4kKsjXlvcIssm6KycSGegz+tYnWa2qKq6jWb0u/VJ9bl2qkZZytELNRoJHR0tlZ4WepgCXAvcBRimlR2ofj5Sj6Ob9vEqmxIdglZKJkbpGXDNMmiqU/tKpEuU4DAbwCVY3mJHsltfZemap7sm9aiYCgFCyH4lzVXgmIVtVGg2yuK47B5Lfa/bRHcIydZwOSIT6e/csJMyIU8n09FgXSruPFBazcsYdTcqB+ASpsl+fQI8MZTk6o7gSWApcAIQD24GtUsoNzjbUEUai6qkvSutbCfL14rV9J/UaC43jWK0qTFWXr+RG/EJVUnby6pEvAW1rUE6jbJdqPFW6CzpswtE+QbbZxpzTFVehiUOqLpJSUtnU3hO2KqpVFVgFNSZqTZ09+wX5eqm8R0wQGbHBpMYEkhYdTEKYH16OSLu7C6tFrdL38lVCl15+SiXZJ8gjynsddRR/Bj5DOYdyF9jnVEZ6RtFNUW0LyVF6RqFxAVaLKsn1D1PhIHf15bbakr8V+087j+pDpxcIBkariqLkC9QjMm3YZak1zR09CwjzbUn0Y1WmM1ajexkEEyIDyE4MY1KcbR1ITDDjwvwxuFrOxJlICUf+oxpVVR9W5bwB9neocxSHQ09CiFhgru3lTilltRPtcyruchRf5NcS6u9NQY0Ji1WyJD1Kl89qnIuUkPM8RE9RN+Bxs9xt0ZkLBMt2QfHnqlcGqBLdpKWnHUe4/VL9p1o6ya8xUVhjorhOJdRzyxqobj7tQPy9jUyKC2ZqfDBT4kPIiA0mJTqIqKBRkAMxd8Cx95RzjZ3qFhMcnVF8BXgE2IJSjl0K/EBK+bKT7XQK7nIUvdl74hRBvl5MivXICmLNaMdqVVU4/uFKdHDadZ4T8+4WRCz6TD2Kt6pQGigNreQLIGEWpF3skOPoprG1S+U/qlUY63BFE4crmmls6+rZJzzAm0mxynlMiQ8mIy6E1OhAgj2tjLezVYlUntyriht8g1T5sqtUAM7CUUexH1jZPYsQQkQDH0opZzjdUifgCY7C1GHmjZyTLEqNYntBHVmJofh5G0iL0Y5D42TMnWCqVN9Gk5aoUNDk1eDlIaWo3WtLehzH56cl2KOnQOpySFkOExepG6NTTqlyIMeqlJTJ8epmDlc0c7Sy+YwqrImRAWQmhJARG0JGXBBT4kMYHx7gOeGrilylzJv/EaRcqAoKXIijjuKAlHJ6r9cGYH/vbZ6EJziKvnhhxwm+On+Cu83QjHWaK1VL18pcmL3W86QrumccR/4DBR9ByXYlx2HwVondlOXKecRnO12y3GpbSHi0qpljlc0cqmgir7yJ0lOtPWKKQb5eTIkPZmp8CJPjQ5gcp2YiI6LEOxBFW5XTSDznPu40HHUUvweygI22TWuAXCnlj5xqpZPwVEdRWGMiJdo535g0mkGxmJUqa0ezWkAXl+WZvSK62pRqbOEnUPCJcnCgZN6Tl56ecUSkuMzptXVaOF7dzKFy5Tjyyhs5WtlMi00Hy8sgSIsJsjmP0/mPmJARzEFKqRLe9YUw+QqXfBbOSGZfDyxG5Sg+k1K+5lwTHcdd5bFD5U8fHeeSzDh2l9SzMCWS7YV1LEyJ5N28Sv7fsjR3m6cZy9QXQlO5mm2kXTxiMW+7aKlV+ZeCT1S/78ZStT10AqQuU7LvycsgMNKlZlitkrJTbRyubCK3rIFD5U0cqmiiqul08jw+1I8ZiWFMts1AZk4IJzrYxcrSVYdUsYB3gBKmdCJaZtyD0WW1mhGjpVYllo+8DfPuUAv7PKB+v1+6w1Tds42irbZ1HEKJHaYsU7ONpKUjNluqM3VwtErlPHJKGzhQ1kBJ/enQVXpMELMnhjM3KYLpiaGkRQc5P+dhMaseHzVHIHWF08ql7XIUtl7ZEluP7N5vcZ71zHYlz+8o4Zb5jld/aDRDpvsGfPx9lRewdKkOdJ6OxaxWjhd8opxH6Q61hsM3FCZdCpnXQOpFKpY/grR2mjlc0cSXhfXsLq5nT8kpmtrV2pJgXy+yxoeSlRjGwpRI5iZF4O/jpHxHzVEVWnRS3sJeR5HiyZpO/THaHEWtqYMPDlWRmRBCUW0LMcF+tNjkDQJ9vahubic5KpC88iYWpkSSpGcfGmdTfViFpTpbYMqV7rZm6HS2qq55x99TCxLbG5VC7qRLVclw+iVqFfQIY7VK8mtM5JY1klN6ipzSBo5UNGO2SryNgpkTwrkgPYoLJkWTmRDqWM/z/S+qirGw8Q7bba+j2COlnC2E+EhKucJhK0aI0eYohoOefWhciqVLVSP5haoOcoHRasYxGrB0qTUbh96Aw28r+RPfEJX4nXKVbabhvgWwrZ1mdhWfYlt+LdsK6jhwUkmhhPh5sSg1isuz4rl4SgwBPnaE0L54HOZ/y2GnaK+j2Ae8DnwTeOzs96WUf3DIKhcxlh2FrpzSjChtDZD3qlKPrcpTooBBMcqReDIWs0qE572qnEZHo2qlmnktZN2oZFDcnJupbm5ne0Ed2/Lr+PRYDZVN7QT4GFk5NZarsxNYmh6N91D1rMwdsPc5tZgxOsNum+x1FBnANcB3gSfPfl9K+Uu7LXIhY9lR6BmFxm1YulQp69F3VCOmunzIuMzz24yaO9VCv/0vwNHNaqYUOgGm3wBzvwmh49xtIVarZGdxPW/klLP5YAUNrV1EB/ty/axEbpk/gfERASNih6PrKC6TUm52iWUuYCw7iqqmdo5UNtPaYSYmxJei2lYyE0LYe+LUGSW3vZ/nJUWw98QpMuJCKK1vJdjPi0BfL+YmuU98TDMGMFWrDnF5r0HaSij5XIV43ChqNygdJlXxdeBltdhPSvUtPGsNTL3KI1qhdpqtbDlazb93l/HJ0WqklKyaFscdF6SSPT7MpefW5bGaHjrMFj45UsOqaXHuNkUzluhstZXe/ket1Sj6VIV6AqPcbVnf1BdB7ouwfxOcKgIvf5XPyFqj8hkesDixorGNf2wr4YUdJTS1m1mUGsn3Vk5ijou+5J0XjsLTF9x5Cl0WK8eqmslM8PA4s2Z0Y+5Ui+WOvgMzvqpmGp4YopJSqd7u36RyGm2nIDAGsm9WEigRKe62EFOHmY07TrB+ayG1pg7WLU7m+5dkOK/M1sZ54Si60TOKgWnvsrD5YAXXzvTIBoWasUh5juo9HZqoEuOe6DBAObfj7ysp92PvqdBa6nKYfZvKxxjdqzbb2mnmN+8c5l9fniA5KpDH1mQ7NRzlDAmPRUAS0DMfk1I+5ywDnYl2FIPzXl4lft5GjELQ1N5FXKgfBdUmshLD2FNyigUpEXxZWM/C1Ei2F9T1PM9JCtfS6Rr7kBJKtqkSztIdMOsbTlOLdQlNFbDnGdj3PDSVqd4as25Vj1D3fsnall/LD17OpcbUwfqvz2ZZRoxTxnU0mf1PIBXIAbo1eqWU8l6nWOdktKNwHW/nlnNlVoK7zdCMdixdqnzV0qUWxxncrMw6EBYz5H8AuzfA8Q/UbGjSKrVuIflCt82OTrV0csvTOyg91cp7372AhDDHV6M76igOA1PlKIlTaUfhOrbl17IozUOTk5rRh6VLVU2FJkJrnboBuzm8MyCnSmDvP9SahZYaGD8fLvqpqpxyAyV1LVz2x61kjw/jX/8132FNqf4cxVBXnBwEdImMhg6z1d0maMYSRm+1AG7CQojNhIYTsPUPSunWEwmfCCt+DvflweWPQGMZ/GM1PHulkkofYSZGBvLzK6eyraCOjbtOuOw8Q3UUUcAhIcR7Qog3ux8us0rjsZito2JSqRltCKGqiyJTYen31Oxi51NqgZ8n4uUL826Hb++FVb9V4nwbLoVnroDSXSNqypq545k1IYy/binA6qL/z6EWCv/CJWfXjEp2FdfT3mXBKlU3sOqmdpKiAjlU3sScpHB2F59iblIEu4rrz3nOHBdCYU0LcaF+NLV14WUw4ONloKG1k4QwfwpqTEwbF0rOiYZzjl2QGsk4J8RhNaOAuOnqcfxDJbUhrarxUpBzkrZOw9sPFtylEtx7noXP/w/+frFaR3Lhj0ZEJ0sIwZq54/nRKwcoqmsh1QUSP7o8VjMszBYr3V9aJBKDEFilxCiETRnTQJfF2u+zl0HtZzSo4wTijLEsVtmzz9nH7ik5xWKdHzk/aapQs4yqg2pBnKeW13Y0q5nQ9j8rUcLM6+CCH0DsVJee9khlE6v+byv/tyaba2baL0niUI5CCLFACLFLCGESQnQKISxCiCa7rdGMWryMagbg42XA18uIt1E9exkNqtzWIAZ87t6v+7izx+q9z9nH1po6BjdQMzYJiYe4aRA/AyoPwO5nPDMs5RusQmffzYULfqi0pf66EF65XfUxdxGp0UH4GA0crnDNbXmoOYongJuB44A/Sk32CZdYpNH0g+4CqCFmiupsN+tWOPASnNyrFsl5Gj6BcNH98L1DsOR7cPhN+NNs+ORh6Gp3+um8jQYmRgZQVNvi9LFh6I4CKWU+YJRSWqSUzwDLXGKRRtMPeeV6EquxYTAqZxEYpVZRe2qVVEAEXPwA3L0DMlbBp7+FJ+ao0FRnq1NPFRbgTWNbl1PH7GaojqJVCOED5Agh/lcIcR+gv95pRpR5yR6sSqpxD2ETYM5tSojwVLG7remf8CT4yrNw6xsQMg7e+x94PBu2/8VpM4xQf++e9qvOZqiO4uu2fe8BWoDxwPUusegshBDXCCGeEkK8IYS4ZCTOqfFMdhTWu9sEjacy73Zob1JyGxbX3CydQsoy+K/34LbNqqfHez+BvyxQzZUcLCwK8femyUUziiGVx0opS4QQ/kD8cJoVCSE2AFcC1VLKab22rwL+CBiBp6WUvx3g3K8DrwshwoFHgPeHen7N2GLWxDCe31FyTr+N+ckR7C4+xZT4EErqW4kK9KHdbMFihWA/L6qa2kmJCiL3ZEO/PTu6n2ckhnG8upmEUH8a27rwNhpYPtnDSjI1fROfpUpqd65Xi/fCk9yuydQvExfBbf+Bgo9h84/gxVvUKu+VD8KEBXYNGervutDTUCU8VqNu0j5SymQhRDbwoJTyqkGOuwAwAc91OwohhBE4BqwEyoBdqES5EXj4rCHWSSmrbcc9Cjwvpdw7mL26PFbjLLYcrXaa4JpmBDHVwMndamHcxMUO95J2KRYz7PsnbHkYTFWQukLlNeJnDGuYxz44xh8/Ok7Bby7HaKeUh6MSHr8A5gENAFLKHJSS7IBIKT8Dzo4XzAPypZSFUspOYBNwtZTygJTyyrMe1ULxO2DzQE5CCHGHEGK3EGJ3TU3NEC9LoxkYLVkySgmKVrLg0ZOhbDec3ONui/rH6KXyLPfuU/IgFTnwtwvhtTuVRMgQ8fFSt3Oz1fl/s0N1FGYpZaOTzjkOKO31usy2rT++DVwM3CCEuLO/naSU66WUc6SUc6Kjo51jqea8JzLQx90maBwhJAGSFisxP0/HJxCW/rdyGIu/AwdfhT/NUdpXQ1gz0j2LsLhAxmPIooBCiK8CRiFEuhDiT8A2O8/Z15yo3yuTUj4upZwtpbxTSvmknefUaOziRL1zSxg1bsI3BKqPQHOV6vXtyfiFwspfwrd3q6ZJH/0Snpin8hkD4OUBjuLbQCbQAWwEmoDv2nnOMlTVVDeJgFOKoIUQq4UQ6xsbnTX50ZzvZMTpJk1jggkLwD9chXLKcxyuMBoRwibAzRvh66+Blw/881p4+3vQYepzd4Nws6OQUrZKKe+XUs61hXful1LaW/y7C0gXQiTb1mbcBDhFiVZK+ZaU8o7QUN0LWuMcckob3G2Cxhn4BkFwLCTOhuA4Ja0xWki9CO78HBbeo5onPblYdQo8Cy+jchSuUHgesDx2MCnxIVQ9bUSt4I4SQpQBD0gp/y6EuAd4D1XptEFKmTcsqzWaEWJRqhYhHHPEZwFS6UWNm2177eF4+8Olv4bJV8Drd8Ezl8Oib8NFP1OzDU7nKFwhNT7YOoqFqMTzRmAHfecX+kVKeXM/298B3hnOWEPBVsa7Oi0tzdlDa85TthfUaY2psUj8DPXYvWF0OIpuJi6CO7+Ad38M2x5XrVmvehzGz8NoCz11uSH0FAf8DzANtUBuJVArpfxUSvmp061xEB160jibhamRSCn1wwkPjyT9Esj/CJoroXSnu60ZGr5BcPUTcPOL0NEEf78EPvpVz83cFZ/1gDMKKaUFeBd4Vwjhi1oYt0UI8aCU8k9Ot0aj8UDezq0gKTKQQxWNzEmKYGdRPQtSIvmysO6c5xmJYRytamJCRAC1pk4lky4Eze1dxIX6UVDTwvRxoew9carfMeZMDCentIG0mCAqGtsJ9femy2Kl02wlPNCHk6famBQbzP6yhn7HmJ+s7MxMCKWoroWYYF9aOswIAf7eXtSaOkb0mgJ9vZifHEFsiJ+7f51nEhgDlk5VmtppUovfjEPt5+ZmMlap0t/NP4atj5Ax2QrMcUmeftCV2TYHcQXKSSShEs8bpJSuE1e3k16hp9uPHz/ubnM0Go2N3LIGIoN8PbtDYfk+VQ01bpa7LRkeViu8sg6Z9wbXdPyCJ35wO+MjAuwayq6V2UKIf6DWS8wCfmmrevqVJzoJ0KEnjcZTCfL1wtdryF0N3EPUJGhvVB3qRhMGA6x+nA7fcP7H+wXXnGKQ978OTAK+A2wTQjTZHs26w51GoxkqdS2dtHZY3G3GwPgEqgVu6ZdAXYG7rRkefiEcTV3HfMMRvGqPOn34wXIUHv4V4Ex01ZNG45kkhPkT5DNKYv9dbSBHn8bXicSr+UuOmfvDUpw+9qhyBIOhQ08ajWdSUttCfasHtizti5jJcPQdqM1Xay0qD6qqKA+n0zec96xzkS5Ixo8SF6/RaEYzabFB+Hsb3W3G0Lng++o5Kg3MHbB/I8xe61aTBkPYpyw+JMbUjEKj0Xgm+VUmak2jZEZxNl6+kLTU3VYMGVeUx2pHodFoXE5abBBRQaNYsv3gq1BzDNoa3G1JvwT4GIkL8bO7adFADKnD3WhBr6PQaDyTbfm1xIf5j145FEuXSnIffx8yr1MlqWMQRzvcjQp0Mluj8UxG/YzC6A1+IRAcD9WH3G3NiDOmHIVGo/FMRnWOojfxM5SS63mGdhQajcblpMYEETmaZxTd+AYp8cCaY7BjvbutGTF0eaxGo3E5BTUmEkL9CfHzdrcpjpNt657Q2XenubHImJpR6FaoGo1nkhgWQKj/GHASvak5Ah3N7rZiRBhTjkInszUaz6TG1IGpw+xuM5xL2sXQeFKpt45xdOhJo9G4nAAfI7WmDrYer2VBSgRfFtazMDWS7QV1LEiJYEdRPdMSQimsNREb4oep3YzBAH7eRupMnUyMDOBQeVNP74zuY89+zh4fxpHK070z/H2MGASY2s3EhvpRWNPCyqmxzpnd+IXBiS/BLxRC4h0fz4MZU+soupkzZ47cvXu3u83QaDQeyAs7TvDV+ROcM1hXm2pHOvUq54znZs6LdRQajUYzGAtSIpw3mLc/BEQ6bzwPRTsKjUZzXvFlYb1zB2ytg8NvjwqFWXvRjkKj0ZxXzJwQ5twBp14FKcvg6GbnjutBjClHoctjNRrNYBwqd0FzTt8gSL7A+eN6CGPKUejyWI1GMxhJUQGuGbjgY9eM6wGMKUeh0Wg0g1HT7CLNqclXwO4NUF/kmvHdiHYUGo3mvMLfx0Wd9kISYM46KPrMNeO7Ee0oNBrNeYUL+vqcSdx0F59g5NGOQqPRnFeY2l0sJVJ10LXjuwHtKDQazXlFTIifa08QlQFle6ClTj03Vbj2fCOAdhQajea8oqi2xbUniM9SHfGEUM8ntkNjmWvP6WK0KKBGozmvmDYuxLUn8PZXzgIgIAJipkBFLoQmuva8LmRMzSj0gjuNRjMYe0saRvaERm+oOTyy53QyY8pR6AV3Go1mMBamukHELzwZyvdB++j8EjumHIVGo9EMxvaCupE/aeIckBKaq0b+3E5AOwqNRnNe4VSZ8aHi5QvjZkHJ5yN/biegHYVGozmvcLrM+HBIGp3CgdpRaDSa8wq35Ci6KR6d8h7aUWg0mvMKt+QouolMh/2bwFTjPhvsQDsKjUZzXjE3Kdx9J5+4CKZeDUfeGlUd8bSj0Gg05xX7TjS47+QGo1qQl3UTVOW5z45hoh2FRqM5r5gUF+xuE8AnAEzV7rZiyGhHodFozitOnmpztwmKCQug9ri7rRgS2lFoNJrzivAAb3eboPALhaZy1RWv8gDsWA+tbizdHQAtCqjRaM4rOixWd5ugCIiAlAvVAyA8CeoK1HYPw+NnFEKIKUKIJ4UQLwsh7nK3PRqNZnTTZfYQR3E2vsFQutPdVvSJSx2FEGKDEKJaCHHwrO2rhBBHhRD5QogfDzSGlPKwlPJO4EZgjivt1Wg0Y5+wAB93m9A/SUvcbUGfuDr09CzwBPBc9wYhhBH4M7ASKAN2CSHeBIzAw2cdv05KWS2EuAr4sW0sjUajsZvyBg9JZvdF8VaQFtXoKGqSaqs6YSEExbjVLJc6CinlZ0KIpLM2zwPypZSFAEKITcDVUsqHgSv7GedN4E0hxH+AF1xoskajGeOkxQS524T+mX0bWDohZJxab+EXBodeh7n/5Vaz3JHMHgeU9npdBszvb2chxDLgOsAXeGeA/e4A7rC9NAkhjtppXxRQa+exoxV9zecH+ppHLd8c6o6OXu/Evja6w1GIPrbJ/naWUm4Btgw2qJRyPbDebqtsCCF2SynPq1yIvubzA33NYx9XXa87qp7KgPG9XicC5W6wQ6PRaDRDwB2OYheQLoRIFkL4ADcBb7rBDo1Go9EMAVeXx24EtgMZQogyIcR/SSnNwD3Ae8Bh4N9SSk9Sx3I4fDUK0dd8fqCveezjkusVUvabHtBoNBqNxvNXZms0Go3GvWhHodFoNJoB0Y7CxnBkRUYrQojxQohPhBCHhRB5Qojv2LZHCCE+EEIctz27sQWYaxBCGIUQ+4QQb9tej+lrFkKE2fTRjth+3wvPg2u+z/Z3fVAIsVEI4TfWrrkvWaSBrlEI8RPbPe2oEOJSe8+rHQVnyIpcBkwFbhZCTHWvVS7BDPy3lHIKsAC423adPwY+klKmAx/ZXo81voMqnuhmrF/zH4F3pZSTgRmoax+z1yyEGAfcC8yRUk5DSQLdxNi75meBVWdt6/Mabf/bNwGZtmP+YrvXDRvtKBQ9siJSyk5gE3C1m21yOlLKCinlXtvPzaibxzjUtf7Dtts/gGvcYqCLEEIkAlcAT/faPGavWQgRAlwA/B1AStkppWxgDF+zDS/AXwjhBQSg1meNqWuWUn4GnN20or9rvBrYJKXskFIWAfmoe92w0Y5C0ZesyDg32TIi2DS4ZgI7gFgpZQUoZwK4V4HM+fwf8EOgt770WL7mFKAGeMYWbntaCBHIGL5mKeVJ4BHgBFABNEop32cMX3Mv+rtGp93XtKNQDEtWZLQjhAgCXgG+K6Vscrc9rkQIcSVQLaXc425bRhAvYBbwVynlTKCF0R9yGRBbXP5qIBlIAAKFEF9zr1Vux2n3Ne0oFOeNrIgQwhvlJJ6XUr5q21wlhIi3vR8PjJ6u74OzGLhKCFGMCileJIT4F2P7msuAMinlDtvrl1GOYyxf88VAkZSyRkrZBbwKLGJsX3M3/V2j0+5r2lEozgtZESGEQMWtD0sp/9DrrTeBb9h+/gbwxkjb5iqklD+RUiZKKZNQv9ePpZRfY2xfcyVQKoTIsG1aARxiDF8zKuS0QAgRYPs7X4HKwY3la+6mv2t8E7hJCOErhEgG0gG7Wujpldk2hBCXo2LZRmCDlPLX7rXI+QghlgBbgQOcjtf/DypP8W9gAuof7itSSs/s8u4ANsn670sprxRCRDKGr1kIkY1K3vsAhcBtqC+GY/mafwmsQVX37UNpcwcxhq7ZJou0DCUnXgU8ALxOP9cohLgfWIf6TL4rpdxs13m1o9BoNBrNQOjQk0aj0WgGRDsKjUaj0QyIdhQajUajGRDtKDQajUYzINpRaDQajWZAtKPQjDmEEBYhRE6vx4ivShZCbBFCOL3J/RDPe1QIcZXt9e+EELlCiOd67fP1buVg2+ulQohDvRVJNZreeLnbAI3GBbRJKbPdbYQbuUVKuVsIEQosklJmCSGeF0JMRwnDraWXAqmUcqttHdHb7jFX4+noGYXmvEAIEWr7pp1he71RCHG77edbbd+69wsh/mnbFi2EeEUIscv2WGzbHmjrCbDLJrh3tW27vxBik22cFwH/Xue+RAixXQixVwjxkk1rCyFEsRDil7btB4QQk23bg4QQz9i25Qohrh9onAGwAj62lcr+QBfwA+Bxm8yFRjMktKPQjEX8zwo9rZFSNgL3AM8KIW4CwqWUTwkhMoH7gYuklDNQfStA9XN4TEo5F7ie0xLl96NkQOYCy4Hf25RZ7wJapZRZwK+B2QBCiCjgp8DFUspZwG7ge71srbVt/yvwfdu2n6HUT6fbxvt4COOcg01K/hXUKuUioBGYK6UcizIWGheiQ0+asUifoScp5QdCiK+gmlTNsG2+CHhZSllr26db3uFiYKr6Mg5AiBAiGLgEJTLYfVP3Q0knXAA8bhsjVwiRa3t/AaoZ1he2sXyA7b3M6hZm3ANc1+vcN/Wy+5RNBXegcfpESvm/wP8CCCGeBn4uhPim7TpypZQPDTaGRqMdhea8QQhhAKYAbUAESl1T0Lf0sgFYKKVsO2sMAVwvpTx61nb6GUcAH0gpb+7HrA7bs4XT/4992TTYOAMihJhp+/EY8Ecp5QW2UFm6lPK4PWNqzh906ElzPnEfSlH0ZmCDTXL9I+BGm0ggQogI277vo0JV2LZn2358D/i2zWH0vgF/Btxi2zYNyLJt/xJYLIRIs70XIISYNIidZ5873M5xevMr4OeAN0r4ElQOI2AYY2jOU7Sj0IxFzs5R/NZ2U/0mqmf4VtSN/adSyjxUTuFTIcR+oFt+/V5gji2ZfAi407b9V6ibba6tnPRXtu1/BYJsIacfYpNzllLWoKqMNtre+xKYPIj9DwHhQoiDNpuW2zkOAEKIa4BdUspyW0vU7UKIA8o8uX8oY2jOb7R6rEYzhhBCbEFJqe8e5nFJwNtSymmusEszutEzCo1mbFGPquy6aqgHCCGWAm8BtS6zSjOq0TMKjUaj0QyInlFoNBqNZkC0o9BoNBrNgGhHodFoNJoB0Y5Co9FoNAOiHYVGo9FoBuT/AyYHOeozHNVkAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_exc = pd.DataFrame(new_camels_exceedences)\n", + "df_sort = pd.DataFrame(new_camels_sorted_flows)\n", + "\n", + "mean_camels_sorted_flows = df_sort.mean(axis=1).values\n", + "max_camels_sorted_flows = df_sort.max(axis=1).values\n", + "min_camels_sorted_flows = df_sort.min(axis=1).values\n", + "\n", + "mean_camels_exceedence = df_exc.mean(axis=1).values\n", + "max_camels_exceedence = df_exc.max(axis=1).values\n", + "min_camels_exceedence = df_exc.min(axis=1).values\n", + "colz = ['#1f77b4', '#ff7f0e', '#2ca02c', '#bdbdbd']\n", + "plt.plot(mean_ngen_exceedence, mean_ngen_sorted_flows, label=\"Nextgen NWM LSTM\", c=colz[0])\n", + "plt.plot(max_ngen_exceedence, max_ngen_sorted_flows, '--', c=colz[0], label=\"Nextgen min/max\", lw=.4)\n", + "plt.plot(min_ngen_exceedence, min_ngen_sorted_flows, '--', c=colz[0], lw=.4)\n", + "plt.plot(mean_camels_exceedence, mean_camels_sorted_flows, label=\"CAMELS observed\", c=colz[1])\n", + "plt.plot(max_camels_exceedence, max_camels_sorted_flows, '--', c=colz[1], lw=.4, label=\"CAMELS min/max\")\n", + "plt.plot(min_camels_exceedence, min_camels_sorted_flows, '--', c=colz[1], lw=.4)\n", + "plt.xlabel(\"Exceedence [%]\")\n", + "plt.ylabel(\"Mean flow rate (mm/hour)\")\n", + "plt.yscale(\"log\")\n", + "plt.ylim([0.001,10])\n", + "plt.legend()\n", + "plt.savefig(\"flow_duration_curve.pdf\")\n", + "plt.savefig(\"flow_duration_curve.png\")\n", + "plt.show()\n", + "plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "081aa89b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/paper_results_jawra/README.md b/paper_results_jawra/README.md new file mode 100644 index 0000000..4bcd714 --- /dev/null +++ b/paper_results_jawra/README.md @@ -0,0 +1,22 @@ +# Analysis of the LSTM for Nextgen National Water Model +The US Geological Survey (USGS) utilizes a network of stream gauges that cover an average catchment area of 167 km² to monitor water flow across the U.S. However, in the Next Generation Water Model (Nextgen), models are applied to much smaller catchments than those traditionally gauged. This study demonstrates that a machine learning model known as Long Short-Term Memory (LSTM) trained on larger, gauged catchment data can be effectively downscaled to predict streamflows in the finer-scale catchments of the Nextgen hydrofabric. + +In the HUC 01 region of New England, characterized by its post-glacial landscape with thin, coarse soils and significant groundwater contributions to streamflow, the LSTM was applied across approximately 10,000 catchments covering over 191,020 km². This region includes diverse hydrologic conditions, driven by snowmelt and various rainfall events. When comparing the flow duration curves (FDCs) from these smaller catchments with those from larger, comparable CAMELS basins, the LSTM predictions align well with observed high flows but tend to overestimate low flows—a common challenge in hydrological modeling due to the model’s sensitivity to low flow dynamics. The variability in the FDCs predicted by the LSTM across these many small catchments is expected, given their number and the broad range of hydrologic conditions they encompass. + +![Flow Duration Curve](flow_duration_curve.png) + +## Contents +* HUC01_catchment_outputs.ipynb. This is a python notebook to explore and analyze the runoff that is predicted from the two-three year simulation of HUC 01 (New England). +* lstm_agu.gif: animation of the two month LSTM simulation over New England. + +# See these other repositories for more information +[NeuralHydrology](https://neuralhydrology.readthedocs.io/en/latest/) +[CAMELS dataset from NCAR](https://ral.ucar.edu/solutions/products/camels) +[Next Generation U.S. National Water Model](https://github.com/NOAA-OWP/ngen) + +# References +Frame, J. M., Araki, R., Bhuiyan, S. A., Bindas, T., Rapp, J., Bolotin, L., Deardorff, E., Liu, Q., Haces-Garcia, F., Liao, M., Frazier, N., & Ogden, F. L. (2024). Machine learning for a heterogeneous water modeling framework. Presented at CIROH Developers Conference, Salt Lake City, Utah. Manuscript submitted for publication, Journal of The American Water Resources Association. Based on NWC Summer Institute capstone reports from 2021-2023. + +Jonathan M. Frame, 2022, “Deep Learning for Operational Streamflow Forecasts: A Long Short-Term Memory Network Rainfall-Runoff Module for The National Water Model”. Dissertation: University of Alabama Department of Geological Sciences. [Link](https://ir.ua.edu/bitstream/handle/123456789/9436/u0015_0000001_0004409.pdf) + +Frame, J. M., Flowers, T., Ogden, F. L., Peckham, S. D., Bartel, R., Johnson, D. W., Frazier, N. J., Halgren, J. S., Mattern, D., Cui, S., Kratzert, F., & Nearing, G. S. (2021, December 17). Deep learning for the Next Generation U.S. National Water Model. Paper presented at the AGU Fall Meeting 2021, Room 271-273, Convention Center. [Link](https://agu.confex.com/agu/fm21/meetingapp.cgi/Paper/859605) \ No newline at end of file diff --git a/paper_results_jawra/flow_duration_curve.png b/paper_results_jawra/flow_duration_curve.png new file mode 100644 index 0000000..bac867f Binary files /dev/null and b/paper_results_jawra/flow_duration_curve.png differ diff --git a/paper_results_jawra/lstm_agu.gif b/paper_results_jawra/lstm_agu.gif new file mode 100644 index 0000000..a3f4f3c Binary files /dev/null and b/paper_results_jawra/lstm_agu.gif differ