{ "cells": [ { "cell_type": "markdown", "id": "intro", "metadata": {}, "source": [ "# Tutorial 2 — Analysis\n", "\n", "Companion notebook to [Tutorial Part 2](../tutorial.rst). It loads the three solved `tutorial_02` scenarios, inspects the extracted consumer values, compares food-group consumption and the objective breakdown across scenarios, and finally compares total GHG emissions against the fixed-diet run from Tutorial 1.\n", "\n", "Prerequisites: both tutorial workflows must have been solved locally.\n", "\n", "```bash\n", "tools/smk -j4 --configfile config/tutorial/01_ghg_prices.yaml\n", "tools/smk -j4 --configfile config/tutorial/02_consumer_values.yaml\n", "```" ] }, { "cell_type": "markdown", "id": "setup-md", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "setup", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:09.723879Z", "iopub.status.busy": "2026-04-17T22:58:09.723787Z", "iopub.status.idle": "2026-04-17T22:58:10.141906Z", "shell.execute_reply": "2026-04-17T22:58:10.141303Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "project_root = Path(\"..\", \"..\").resolve()\n", "scenarios = [\"baseline\", \"ghg_mid\", \"ghg_high\"]\n", "\n", "\n", "def load_analysis(config_name: str, filename: str) -> pd.DataFrame:\n", " \"\"\"Concatenate a per-scenario parquet file for a given tutorial config.\"\"\"\n", " results = project_root / \"results\" / config_name / \"analysis\"\n", " return pd.concat(\n", " pd.read_parquet(results / f\"scen-{s}\" / filename).assign(\n", " scenario=s, config=config_name\n", " )\n", " for s in scenarios\n", " )" ] }, { "cell_type": "markdown", "id": "values-md", "metadata": {}, "source": [ "## Inspect the extracted consumer values\n", "\n", "The `baseline` solve fixes consumption at observed 2020 levels; the dual variables of the binding per-(food, country) equality constraints on the `food_consumption` links are the consumer values. Each value is expressed in bn USD per Mt of that food in that country — the marginal utility the non-baseline scenarios use when letting diet shift." ] }, { "cell_type": "code", "execution_count": 2, "id": "values", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:10.143568Z", "iopub.status.busy": "2026-04-17T22:58:10.143407Z", "iopub.status.idle": "2026-04-17T22:58:10.163889Z", "shell.execute_reply": "2026-04-17T22:58:10.163336Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
foodfood_groupcountryvalue_bnusd_per_mt
0cottonseed-oiloilTZA-49.999989
1cottonseed-oiloilSSD-49.999989
2cottonseed-oiloilETH-49.980656
3cottonseed-oiloilDJI-49.971268
4cottonseed-oiloilUGA-49.969624
5cottonseed-oiloilKEN-49.968948
6cottonseed-oiloilSOM-49.968010
7cottonseed-oiloilERI-49.967186
8cottonseed-oiloilZWE-49.964008
9cottonseed-oiloilSDN-49.963116
\n", "
" ], "text/plain": [ " food food_group country value_bnusd_per_mt\n", "0 cottonseed-oil oil TZA -49.999989\n", "1 cottonseed-oil oil SSD -49.999989\n", "2 cottonseed-oil oil ETH -49.980656\n", "3 cottonseed-oil oil DJI -49.971268\n", "4 cottonseed-oil oil UGA -49.969624\n", "5 cottonseed-oil oil KEN -49.968948\n", "6 cottonseed-oil oil SOM -49.968010\n", "7 cottonseed-oil oil ERI -49.967186\n", "8 cottonseed-oil oil ZWE -49.964008\n", "9 cottonseed-oil oil SDN -49.963116" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "values = pd.read_csv(\n", " project_root / \"results/tutorial_02/consumer_values/baseline/values.csv\"\n", ")\n", "\n", "# Top 10 (food, country) pairs by absolute consumer value.\n", "top = (\n", " values.reindex(\n", " values[\"value_bnusd_per_mt\"].abs().sort_values(ascending=False).index\n", " )\n", " .head(10)[[\"food\", \"food_group\", \"country\", \"value_bnusd_per_mt\"]]\n", " .reset_index(drop=True)\n", ")\n", "top" ] }, { "cell_type": "markdown", "id": "consumption-md", "metadata": {}, "source": [ "## Does the diet actually move?\n", "\n", "Tutorial 1 held consumption fixed; Tutorial 2 lets it respond. The stacked bars below show global food-group consumption (Mt) for each scenario — we expect animal-product categories to contract and plant-based categories to expand as the GHG price rises." ] }, { "cell_type": "code", "execution_count": 3, "id": "consumption", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:10.165294Z", "iopub.status.busy": "2026-04-17T22:58:10.165195Z", "iopub.status.idle": "2026-04-17T22:58:10.326408Z", "shell.execute_reply": "2026-04-17T22:58:10.325776Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnMAAAHWCAYAAAAciQ/OAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZopJREFUeJzt3QeUE2XXB/BL7713FkRYYOldeq/Sly5NepUiINIREJAuVaQjICBdBKRLR5DeFwGl997Md/73O5M3ybbssrvJbP6/c/K6mcxOJpO85O69z3OfKBaLxSJEREREZEpRXX0CRERERBR6DOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmyC3Nnz9fokSJEuCtT58+LjmXq1evRujzkjmdOXNGhg4dGuDnpVWrVpI5c2aXnBcRRV7RXX0CREGZN2+e5MiRw25b2rRpedHIrYO5YcOGSdmyZf0FboMGDZIePXq47NyIKHJiMEduLXfu3FKoUCHxBG/fvtUMYPTo/L9lZJU1a1ZXnwIRRUIss5KprVu3TooXLy5x48aVBAkSSKVKlWT//v3+9tu7d69UqFBB98G+JUqUkI0bN/rb78CBA/LJJ59I7NixNQM4YMAADbKcZbFYZNSoUZIpUyY9BgLRrVu3apYGN8POnTs1cFu0aJH07t1b0qVLJ7FixZJLly7p4z/++KPkzZtXj5E0aVKpW7eunD171u65HI8ZWCkP5T4819ixY+Wbb76RjBkzWs/t999/d+p1PXr0SM8zS5Ysep4pU6aU6tWry7lz56z7PHjwQDp37qyvJWbMmLrvwIED5fXr13bHwrl07dpVX7u3t7e+H3itGzZssNvv7t270r59e8mQIYM+Z4oUKfS92bZtm3UfvE68XkeBXe+lS5dKv379JE2aNBI/fnypVauW3L59W54+farPlTx5cr21bt1anj17FuB5z5o1Sz7++GM9p5w5c8qyZcvsSvINGzbUn8uVK2cdGoDtAb038OrVK/2ceXl56XXD9evSpYtec1v4vZo1a8rmzZulQIECEidOHM1a47NCRB7OQuSG5s2bZ8HH88CBA5a3b9/a3QxLlizRfSpXrmxZs2aNZfny5ZaCBQtaYsaMadmzZ491v507d1pixIihj2Ef7IvfiRIlimXZsmXW/U6fPm2JGzeuJWfOnJaffvrJsnbtWkuVKlUsGTNm1Ofx8/ML9rwHDBig+7Zv396yefNmy5w5c/T306RJYylTpox1vx07duh+6dKlszRo0MCybt06y4YNGyz379+3jBo1Sh9r0qSJZePGjZaFCxdasmTJYkmUKJHlwoUL1mPgeLbHNLRs2dKSKVMm632cN46XIUMGS8mSJS2rVq2y/Pzzz5bChQvrddm3b1+Qr+nJkyeWXLlyWeLFi2cZPny45bffftNj9OjRw7J9+3bd5+XLl5Y8efLoPuPHj7ds2bLFMmjQIEv06NEt1atXtzseziVz5syWIkWKWFasWGHZtGmTpWzZsrrv5cuXrfvh2qdIkcIye/ZsfQ/xvg0ePNjuPcPrxOt15HhtjOuN/Vu1aqXvzcyZMy3x48e3lCtXzlKpUiVLnz599Ly//fZbS7Ro0SzdunXzd964hsbnA+9Z1apVdTuuJ9y5c8f6/n3//feW/fv36w3bA3pv/vvvP32deO24Xnh+XD9cx/z581tevXpl91rTp0+vz4/PBN6Hhg0b6nPt2rUryPeQiCI3BnPk1sFcQDcEdO/fv7ekTZvW4uPjoz8bnj59akmZMqWlRIkS1m3FihXTbXjM8O7dO0vu3Ln1yxFfqNCoUSNLnDhxLLdu3bLbL0eOHE4Fcw8ePLDEihVLj2MLX+b4/YCCi9KlS9vt+/DhQz0HxwDo2rVreuymTZuGOpjD9ULQZRukJU2a1FKxYsUgXxcCOPz+1q1bA90HgRH2QXBmC4ERtiNIMeB+qlSp9PkNuOZRo0a1jB492roNgVbPnj2DPLeQBnO1atWy2w/Hx/bu3bvbba9Tp45eG1vYL7DPx0cffWTdhsAO++I5g3tvEFRi37Fjx9rthz86sB2BrO1rjR07tuXvv/+2bsP7ifPs0KFDEFeJiCI7llnJrS1cuFAOHz5sd8OYsvPnz8u///4rLVq0kKhR//cxRumsfv36Wi598eKFPH/+XA4ePCgNGjTQxwzRokXT371x44YeC3bs2KGl2FSpUtnt16hRI7tz+u+//+Tdu3fW2/v373U7nhMlRV9fX7v9ixUrFugMRpyrLZSIX7586a90iFJj+fLlnS6LBqRevXpaXjWg5Iwy4+7du62vISC//vqrlhUrVqwY6D7bt2+XePHi6XW2ZbwOx/NGCRLPb8A1R+n277//tm4rUqSIlidHjhyp1zYk5e7AoExpC2VeqFGjhr/tKBs7lloD+3ygPI7PUkjhuoHj+41SLa6n43XLly+flskNeD/x3theNyLyPAzmyK3hSxVju2xvcP/+ff0vxj45wlg3BFwPHz7UG5Iqge1neyz8N3Xq1P72c9w2fPhwiREjhvVmDGo3jmP7ZW8IaFtA5x/c6zIeD43AXtubN2/8BS2OY9fSp08f5LGNa4fxYbYQoCH4djzvZMmS+TsGxqAhkDUsX75cWrZsKT/88IOOi8TYwc8++0xu3boloYVj2MIYtaC2YzybraA+H6F5b/A7uD4YD2gL1xHHDc11IyLPw2COTMn4Urt586a/x5CxQ7YuSZIkesPPge0HGPBuHDOgQMFxGwbK22YK169fb3dOGFAf3DEMjsFPcK/LOFcjK+M4uQDu3bsX4HMF9toQuNhmLR0h0Agu64Tzxuv+/2rk/9y5c0ezl7bn7Sz8zqRJk3QCBzJPo0ePltWrV9tlsUJ6DT5UUJ+PgAKt4OB3cH0QMNvCdcRxQ3PdiMjzMJgjU8qePbvO+sPsRNsAAmXVVatWWWe4olRVtGhRDQJssxfI3C1evFgzTihTGaU/lLVsgzGUH5EhcsyQ2WYKfXx8dDueB1kSx/1RInS2DIbzxixFnJstBFMoyaHMZ0Dp9sKFC3bBDDI5+/btC/DYuAa2mSbM4EQgWqpUKS0XBqZatWr6PEZJMCA4L2T31qxZ469Mbjz+IVBaxExSzFb+888/7a7BiRMn7PbFuRql87AW2OcD2Vkje4nPADiTLTOui+P7jc8wPssfet2IyDOwoRWZErJtaLXRrFkzHQfVoUMHDWrGjRunLR3GjBlj3RcZHQQBCNawegQyUdOnT5dTp07JTz/9ZM2Off3119rqBGPTBg8erMHg999/r1+qzkCprlevXvp8yAiinQiCMDSQRdnUdmxfYBInTqyNZb/66istKTZp0kQDNBwDWaghQ4ZY98WYP7TJaN68ubRr1073wzVJmDBhgMdGwIbrgHNEMPvtt9/KkydP9NhB6dmzpwYstWvXlv79++tYNgQqu3bt0muP64pzxbVCWRSZNAS4aAeDNi1oYRLUeLuAPH78WI/btGlTbb+B8XXIgqItB8b+2V4DvH60RMH4QwTNuAaOZcuwgkwZPh94j/CHAj5HaM9i254EvRFh9uzZet5439B2JKDMHd6PKlWqaLsUvBdovYLgFO9z/vz59fUREQXL1TMwiIKazXr48OEgLxDaVRQtWlRn+aGdQ4UKFSx//PGHv/3QqqR8+fK6D2YkYobr+vXr/e2H38VjmDmaOnVqS9++fXVGobOtSTAzduTIkTpLFi1S0K4DLUfy5s1rqVu3rr/ZlUZLC0c//PCD/i6OgZYktWvX1tYpjhYsWGDx9vbW14+WFZgFGdhsVswsHTZsmPXc0PoC7S2cgVm2aEWCNitoZ4LZwTVq1LCcO3fOug/aqnTs2FHbsKDVBs4BrVps22sAzqVLly5BzkzF7+BYuAYJEybU9yx79uyWIUOGWJ4/f253vTETFK1bcA0KFSqk7VICm83qeL0D+5zhebD97t27/s57+vTplqxZs+p1wExWtMhxNGnSJIuXl5e2OMHv4XnA8b0xZqT269dPt+OYuH6dOnXSa+54fXDNHQU2q5mIPEcU/E/wIR8RhZafn59ml5BtQcYtoiFThswQspYRva5tZIIMLpr5Tps2zdWnQkRkh2VWojD0119/aekWK0yg3ImxW0bps23btrzWREQU5hjMEYUhjKM6cuSIzJ07V8fuJUqUSJeVwjJagbUnISIi+hAssxIRERGZGFuTEBEREZkYgzkiIiIiE2MwR0RERGRinADhJDRZxXJKaALquAQTERF5BnTzwuopWAnGmUbgRBGBwZyTEMhlyJAhfN8NIiIyhevXr1uXcCNyNQZzTkJGzvg/cGDLJRERUeSGZdfwh73xnUDkDhjMOckorSKQYzBHROTZONyG3AkL/kREREQmxmCOiIiIyMRYZiUiIoog79+/l7dv3/J6k1NixIgh0aJFC3Y/BnNEREQR4NmzZ3Ljxg1tb0Lk7NhMzJqOHz9+kPsxmCMiIoqAjBwCubhx40qKFCk4gYKChaD/7t27+rnJli1bkBk6BnNEREThDKVVfDkjkIsTJw6vNzkFn5erV6/q5yeoYI4TIIiIiCIIW5pQeHxeGMwRERGRNXjA2L7AHDlyRJo1a8ar5WZYZiUiInKBzP03hstxr46pIeGlUKFCsmTJkgAfe/funUSPzrDCFZiZIyIi8lCrV6+WHDlySPHixWXEiBHW7c2bN9fALU+ePFKzZk25c+eObt+5c6duB4zlSp48uQwfPlxKlSol48aNk9SpU+uyl4YBAwZIv379XPDKPAuDOSIiIg+EAK1du3aydu1a2b9/v8SKFcv62KRJk7SkeuLECSlZsqQGbAG5f/++fPTRR7Jnzx4N3Nq2bSuzZs3Sx16/fi3z5s2TTp06Rdhr8lQM5oiIiDzQgQMHpECBApI9e3a93759e+tjKKUiA+fj4yM//PCDHD9+PMBjxI4dW5o0aWK937lzZ5k/f768efNGli1bJkWLFpXMmTNHwKvxbAzmiIiIPFBgzYsRuE2bNk1+/fVXOXnypEyYMEFevXoV4L7x4sWzm3GZLl06LbmuXLlSvv/+e+natWu4nT/9D4M5IiIiD4RxcseOHZMLFy7ofWTg4OHDh5IwYUJJmjSpZtiMsqmzevTooePknjx5IhUrVgyXcyd7DOaIiIg8UMqUKWX27NlSq1YtKVGihESN+v8hQbly5XQcHCZGVKlSRfLlyxei4xYrVkwSJ04sXbp0YV+9CBLFwkXinIK/MBIlSiSPHz/Wv1iIiMjzhPa7AGVKPz8/8fLy0nFmkRlmsxYpUkQzfgkSJHD16Zias58bNoQxkbM5vMXTeZ876+pTICKiQAwePFh+/PFHGTNmDAO5CMQyKxEREYUJtDDBwvAtW7bkFY1ADOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMTYmoSIiMgVhiYKp+M+Dp/jkttiZo6IiIjIxBjMEREReajDhw9L+fLlpVChQlKgQAFZtWqVbp82bZpky5ZNtw8aNEiSJ09u/Z3AHrt7965UrlxZfHx8JE+ePNK6dWuXvS5PwzIrERGRB3r06JF06NBBNm7cKGnSpJF79+5JwYIFJUWKFDJ69Gg5duyYrt/as2dP6++cOHEi0McWL14smTNnli1btuj9Bw8euOR1eSJm5oiIiDzQvn375MqVK1KtWjXJly+fVKxYUbBc+44dO6R69eoarIFthm3nzp2BPlasWDHZvHmz9O7dW9atWyfx4sVzwavyTMzMmYjvAL5dJ139JhARRRII3FAO3b17t932yZMnyz///BPo70SJEiXAx4oXLy7Hjx+Xbdu2abn266+/1gxetGjRwuX86X+YmSMiIvJAJUqUkIsXL8r27dut2xCMlS1bVjZt2qRlV1iwYIH18aAe8/Pzk/jx44uvr69MnTpVLly4IM+ePYvQ1+SpmOohIiLyQEmSJJH169dL37595YsvvpC3b99KxowZZc2aNfLll19q2RRj6TBBIlGi/2+jkjdv3kAfQwl2woQJmol7//69jBs3zvoYha8oFuRMKVhPnjzRD+Xjx48lYcKELrliPgt8xNOdbMlCKxGZ77vg1atXmrny8vKS2LFji7t7+vSpJEiQQH8eOnSoXLp0SSc4BPcYhS1nPzfMzBEREZGd/v37yx9//CFv3rzRQGLOnDlOPUauwWCOiIiI7Hz//feheoxcgxMgiIiIiEyMwRwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIyEOtXbtWvL29dTmvkyedb/105MgRadasmXWN17Fjx4bjWVJwOJuViIgoEvUODUk/zpkzZ8rw4cOlYcOGdtvfvXsn0aMHHiIUKlRIlixZYhfMoZkwuQYzc0RERB6oe/fusmfPHunXr58u7YU1V7/77jtdsmvAgAEyf/58adCggXX/DRs26GPGag8I6KBjx44a0CG7Z2wbOXKkNeOH299//+2iV+kZmJkjIiLyQFOmTJETJ05Inz59pGbNmhrMvX79WgM1QDDnbHYPQRzWdYWHDx/K+PHj5ebNmxInThx58eKFRI3K3FF44tUlIiIi1aZNmw++EljmLFu2bNK8eXOZNWuWPHjwwBRLmJkZgzkiIiJS8ePHt14JjJl7//693TqhzogWLZocOHBAevbsKXfu3JFixYppOZfCD8usRERE5E/WrFnlr7/+0iAOgd3SpUsDzcShlGpMmnj69KneSpUqpbfTp0/LsWPH9GcKHwzmiIiIyJ/ixYtLlSpVJHfu3JI5c2bJnz+/lkwdJU2aVNuU+Pj4SLx48WTNmjU6ceL58+c6Dg8l15YtW/IKh6MoFovFIi4yY8YMvV29elXv58qVSwYPHizVqlXT+zi1YcOGyezZs3VAZdGiRXWBX+xnwGBNDN786aef5OXLl1KhQgWZPn26pE+f3roPfhezdtatW6f3P/30U5k6daokTpzY6XN98uSJJEqUSB4/fqx/hUSmaexmEpIp90REYS203wXIbvn5+YmXlxfHj1GYf25cOmYOAdeYMWO0+SBu5cuXl9q1a2tKFtC3ZsKECTJt2jQ5fPiwpE6dWipVqqTpWwNq8r/88ossW7ZM9u7dK8+ePdNZObZ1/qZNm+osm82bN+sNP7do0cIlr5mIiIgo0mTmAoJ07bhx43RGTdq0aTVYQw8cIwuXKlUq+fbbb6VDhw76l1GKFClk0aJF0qhRI93n33//lQwZMsimTZs0PXz27FnJmTOnDsZEZg/wM9LH586dk+zZszt1XszMuQdm5ojIlZiZo4hkisycLWTSkF1DjR2BFk7+1q1bUrlyZes+sWLFkjJlysi+ffv0/tGjR+Xt27d2+yAARH3f2Gf//v2aEjcCOcDMGmwz9gkIAkf8n9b2RkRERORuXB7MYS04TIVGoIYu0iiZIpOGQA6QibOF+8Zj+G/MmDElSZIkQe6TMmVKf8+LbcY+ARk9erQGfMYN2T4iIiIid+PyYA5lToxhQ+mzU6dOOuPlzJkz1scxE8YWqsKO2xw57hPQ/sEdB0uZoIxr3K5fvx7CV0ZERETkAcEcMmsfffSRLgWCbFjevHll8uTJOtkBHLNnaEBoZOuwz5s3b3S2alD73L5929/z3r1711/WzxYyhZipZHsjIiIicjcuD+YCyphhvBoG+yEQ27p1q/UxBG67du3SBYGhYMGCEiNGDLt9sBbcqVOnrPtg/B0ya4cOHbLuc/DgQd1m7ENERERkVi5tGvzVV19pTzmMR0O7EUyAwAK/aB+CEihmso4aNUobDuKGn+PGjautRgBj2dq2bSu9e/eWZMmS6UxY9JxD48KKFSvqPt7e3lK1alVp166drhEH7du31/Ylzs5kJSIiCmtnc3iHy0X1PndWIhL6w6L/q9FVgjwsmEP5E/3ekE1DYJYnTx4N5NBLDr788kttBNy5c2dr0+AtW7ZIggQJrMeYOHGiLh/i6+trbRo8f/58XRvOsGTJEm0abMx6RdNg9K4jIiKioBnLdAVm+PDhvIQu5nZ95twV+8y5B/aZI6LI0mfOHTJzq1atkoEDB0qcOHGkfv36MmjQIK2UIWkyfvx4Wb9+vRQuXFg+++wzTaygfRheCxIxmCgIrVq10nHvXbt2laFDh8qFCxf0GJcvX9bhUitXrtTKGXlAnzkiIiKKOJgsiGFHCNiOHTumbcJsYfw6hj6hkT/WZt22bZv8+eef2uN1xYoVunJTQDAufcGCBdqZAm3AjCFOFH4YzBEREXkgtAQrUKCAjkmH1q1b2z2OlZgMGMb0+eef65h0NN7/+++/ta1YQDAW3sjEYRIiMnQUicfMERERkWsE12/VNlOHCYto54UMHsbP1atXT0uAAbEtB2L8OsbcUfhiZo6IiMgDIcOGkumlS5f0PkqjgcEkxPTp02sgd/78ebuWYOR6zMwRERF5IGTaZs6cKTVq1ND2XrVq1dLerWgB5ujrr7/WSQ/oDoHxc+XLl3fJOVPAOJvVSZzN6h44m5WIIstsVndgzFyFefPmydy5c2Xv3r2uPi0K4eeGmTkiIiIPNWXKFPn55591XBsmLcyZM8fVp0ShwGCOiIjIQ6HHHG5kbpwAQURERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxtmsRERELvB9x+3hctwuM51r6IulvNBnznbZLjInZuaIiIiITIzBHBERkYe7ePGiLutVuHBhyZs3r0yfPt362KpVqyRHjhySP39+GTlypGb0nj17po/Z/gzJkyeXq1ev6s9Y9mvw4MFSokQJyZgxoyxevFgmT54sRYoUkaxZs8rOnTutv/fbb79JyZIlpWDBglK0aFHZvXu39bw++eQTPScfHx9dVoz8Y5mViIjIg71//16aNm0qixYt0qDtxYsXUqxYMb2lT59e2rdvLwcOHJBs2bLJpEmTQnTsly9fyr59++Tw4cNSpkwZGT9+vBw6dEhWrFghX331lT525coVGTZsmGzevFmXSLt06ZLui6Bw2rRpGmRiX3jw4EE4XQVzYzBHRETkwc6fPy+nT5+Wxo0bW7dhLN2ZM2fkxo0bUqBAAQ3koHXr1vLFF184fexGjRrpf3EMBHa+vr56Hxk4BHGAIA4BXOnSpe1+9/r167qtb9++8vz5cw3wKlasGCavObJhMEdEROTBLBaLlkePHz/u77G1a9dqKTUw0aJF08ye7cLwtozF4bGf432sB2s8f9WqVWXhwoX+jp8lSxYt027dulWzdMgMbtq0KdSvNbLimDkiIiIPlj17dokbN65dMIVMGUqaKLUePXpU78OCBQvsfhdj3w4ePKg/r169WjNoIVW5cmXNzp06dcq6DaVYY8xcypQp5bPPPpOxY8dquZf8Y2aOiIjIg0WPHl3Wr1+v5VOMaUOmLUWKFLJkyRJJly6dzJw5U8etJUuWTGrVqiUxYsTQ4A+QKevSpYsGXOXKldN9QgolXEyO+Pzzz7UU++bNGy3L4vl//vln/W/MmDE1g4dzIf+iWHB1KFhPnjyRRIkSyePHj3WApiv4LPART3ey5UlXnwIRebDQfheg/Ojn5ydeXl7WUqNZYPxcggQJ9Od58+bJ3LlzZe/eva4+LY/wysnPDTNzREREFKgpU6Zohgxj3JImTSpz5szh1XIzDOaIiIgoUAMHDtQbuS9OgCAiIiIyMQZzRERERCbGYI6IiIjIxBjMEREREZkYJ0AQERG5wHeNaobLcXsv3xAuxyX3xWDORE76XXP1KRARkYebP3++LrH18ccfi7tp1aqVFCpUSLp27SqehGVWIiIiClEwd+HCBV4xN8LMnIlkfrVUPN1VV58AEVEkESVKFBkzZoyuqXrnzh0ZPHiwtG7dWh/LnDmzbNiwQXLnzq33ke3CUl9Yo/XIkSPSvXt3+frrr2XUqFHaSBhLemEZMDQWxs+dOnUK8Dnv3r0rzZo1k5s3b+rzFyxYUFeVABx/xYoVeozUqVPLrFmzJEOGDPL27VsZNGiQbN++XZf6ypEjhy7rlThxYvnnn3903VYcF6sk4BwMP/zwg0yYMEGXAsN23C9atKhERgzmiIiIPBSWiDp48KCcPXtWihQpIi1atNC1WgOD9VOxjmqfPn2kZs3/H/NXu3Zt6d27tzRt2lTvP3z4MNDfx+8iUNyyZYvef/Dggf536dKlmu3bv3+/RIsWTRYtWqSl0rVr18q4ceMkfvz4cujQId13xIgRMmTIEJk8ebIGlaVLl9b7V65ckbx580rVqlV1P5wTXlfatGk1IHz9+rVEVgzmiIiIPBSyZODt7a1B3K1btyR9+vQhOka5cuVk5MiRmrUrX768lCxZMtB9ixUrJhMnTtRAq0yZMlKlShXdvmbNGs34IVMHyKQhqDMew5q4K1eu1PvIzmXNmlV/3rFjhy43BlmyZJEKFSpYnwvngqxdrVq1pFq1am45xi+sMJgzkVdV0rn6FIiIKBKxXbwdwRNKnIDAzrZkiQXfA9OzZ0/59NNP5ffff5evvvpKS7PTp08PcN/ixYvL8ePHZdu2bbJq1Sot1R47dkwsFov+3KZNG3+/g8dwPARnIbF69Wo5evSo7Ny5U6pXr64BZ+PGjSUy4gQIIiIisoPMF8qvgPLm+fPnrY8lTJhQHj9+bL2Px5AVa9eunQZzBw4cCPRq+vn5acnU19dXpk6dqqXVZ8+eaTCIgM0ou6IsiiAP8BjGvr148ULv47+nT5/WnxHg/fjjj/rz1atXNaAEBKWXL1/WsX4oCTdo0MBapo2MmJkjIiJyAXfuB/fNN99Iy5YtZe7cuVKgQAHJlSuX9bH27dtrmRRj2TABYtOmTVruxEQDZPe+++67QI+LLBkCM+yHzB+OkShRIh2rd//+fSlbtqxOjEAw1rZtW8mfP7/0799fhg0bppMX8Bj069dPzwnj5j777DP5+eeftYxasWJFfRzHxmQOjN9DljFFihTWiRaRURQL8pcULNTr8YHDXyP4q8QVUu84Lp7uVrl8rj4FIvJgof0uQJkSWSnMuLQtbRKFxeeGZVYiIiIiE2OZlYiIiMJUx44dAxw7h9YjceLE4dUOYwzmiIiIKEyhqS9FHJZZiYiIiEyMwRwRERGRiTGYIyIiIjIxlwZzo0ePlsKFC0uCBAkkZcqUUqdOHbvGhNCqVSvtK2N7w3IgtrDeWrdu3SR58uQSL148bTB448YNu33QawZ9bDCl3Ohp8+jRowh5nURERESRcgLErl27pEuXLhrQoUHgwIEDpXLlynLmzBkNygxYNNe22R8aEzouJbJ+/XpZtmyZJEuWTJsZYgFgLONhrO2GBYAR4G3evNna9BABHX6PiIgoot3ovydcjpt+TKkP+n2skYr1U5csWaKrKmAVhXv37oXZ+VEkC+aMwMqAgA0ZOgRhpUuXtm6PFSuWpE6dOsBjoHEjOlQvWrTI2vl58eLFkiFDBl37DYv4nj17Vp8L06TRQRrmzJmja8QhE5g9e/ZwfZ1ERERmgeANgRyZh1uNmTPWekuaNKm/5T8Q5GGpDqz9dufOHetjCPywhhsyeoa0adPqQr/79u2z9rVBadUI5AClWmwz9iEiIvI0SHRgua48efJImTJltDKG71wEdGQebhPMYVWxXr16ScmSJTUQM1SrVk3/Qti+fbuu93b48GFdWBfj5ODWrVtadk2SJInd8VKlSqWPGfsgGHSEbcY+jnB8LNtieyMiIooskBhp3ry5LFiwQE6cOKHDj3x9fV19WhRRZVZkwhAEvXjxQhevdcykhUbXrl31w7R371677Y0aNbL+jCAPfy1kypRJNm7cKPXq1QsyODQW5AXbnwPbx3FyBhb2JXInZ3N4i6fzPnfW1adAFCkcPHhQ8uXLJz4+Pnq/WbNmOo795s2brj41Cq/M3LNnz2TWrFlStmxZLU9mzpxZcubMqcEcgiuUP5E1Cw3MRF23bp3s2LFD0qdPH+S+adKk0ee7ePGi3sdYujdv3uhsVce/OJCdM/a5ffu2v2PdvXvXuo+jAQMGaNnXuF2/fj1Ur42IiMgdBZbQCCzJQSYP5jCrBcEbJg2gxLl69Wo5fvy4Th7AeLQhQ4bobNRKlSrpzFMj0HLmg4SMHI6HMqqXl1ewv3P//n0NrBDUQcGCBSVGjBiydetW6z74q+LUqVNSokQJvY+JDgjIDh06ZPcXCbYZ+zjCpIuECRPa3YiIiCILfDfiuxyTBAEdIZBQCWzCIZm8zIpJAsiaGalYR0WKFJE2bdrIjBkz5Mcff9SWI9myZQv2uEjnLl26VNauXau95ozxa8j8YSFeZAOHDh0q9evX1+ANU6S/+uor7SdXt25d675t27bVdiRoS4KSb58+ffRcjdmt3t7eGmQie4jsImBsANqXcCYrERF5IlTW0AkC5dX3799L4sSJZcWKFXaTDMkcoliQHnPVkweSykWLEjQLfvnypTYSPnbsmDb4RUBXrlw5GTFihLYeMbx69Ur69u2rgSF+p0KFCjJ9+nS7fR48eCDdu3fXci6gsfC0adP0w+sMTIBA4IhsnquydKl3HBdPd6tcPvFkHDPHMXPkWqH9LsD3lJ+fn1agYseOHa7nSJGHs5+bEE+AQAZu8uTJmkmz9fz5cx37hsycs4KLI5Gd++2334I9Dl7g1KlT9RYYZOzQf46IiIjIo1uTYAozsl+OsG3hwoVhdV5ERERE5IToIUktI5OG29OnT+3Sfai1b9q0KcBebkRERETkBsEcxpYZC91jJQZH2M6+bERERERuGsxhNiuycmhNsmrVKrtGwViBAb3fsIwWEREREblhMIc12wCzKjBLNGpUt1kJjIiIiMhjOR3MXbt2zVpOvXHjRqD7ZcyYMWzOjPxZYqnPqyKXPfoa+A4I1Qp8kcpJV58AURhBH1UzHTc46AWLJTfv3btnPQ/0hkX1jsKX098MtqszGC1FbPvEGcuCYDIEEREReTaMo0cT/4CCOawaFT06/zgNK07XShGoobw6aNAgXYMVjXz//PNP6824T0RERO4P3+vInn3yySc6sfGnn36yPrZ582YpUKCA5MmTR4dZnTlzRrfv3LlTs28GLJ2J5T4ddezYUf+LJTPz5cunq0pgMQA078eKTHnz5pVx48ZJhw4drL+DxQGwwhOa/FPIOB0Wo7SKHnPz58+XmTNnSvPmzXUZLSyVRUREROYM6P744w+5cuWKLs1ZsmRJXZsc3/HGMp5LliwRX19fDdychTgBy2diOdD48eNbt+/du1d2796t2xC8YUnNsWPH6qoac+fOldq1a9tNsKQwzsxh4d1+/frpgrwrV66Uhw8fStGiRaVYsWIyZ84c+e+//5w9FBEREbmBzz//XP+bJUsWDeT27NkjBw8e1GyasR471m5FQufmzZsf/HwICo3gDi3PsPY6kkQYqoX13bt27frBz+GJQjUlFW84IuiLFy9K3LhxNZ2KCJuIiIjMnakzxsAH9BjGudmOjcfaoSFhm6UDlF0RxG3cuFFSpUol+fPn/4Cz91yhCuaQNkU0jxr7s2fP5Pvvv3d6wXoiIiJyD8Z66piJihIokjXFixeX48ePayUOli1bJunTp9cKHSZDokXZ/fv39bFFixYFemys4f748eMgnz9Hjhw65q5Tp07MykXEmDmkV7H26rx587TEirQrgrpcuXJ9yPMTERGRi2B8HCZA3L17V6ZOnaoTHY0gDd/zyMIhWbNixQrdni5dOp2hikkQCMJKly4d6LF79+6tCw3EiRNHtmzZEuh+7dq100CuQYMG4fAKPUMUi9FnJBiYWowVHlq2bCmffvqpxIgRI8D9MPMlMsLatBigib8yEiZM6JJz+H17VvF0Fcp7dp85nwX/P4bFk51syU5zZL7vApQjkdFCZst2bXNXQtkUa607lj4jWufOnSVNmjTaLYNC97lxOjOHnjBoHDxixAgZOXKkbnOMA9lnjoiIiJzx77//auYOs1e//fZbXrQP4HQwh8iQiIiIIgcnC3PhBtW+c+fOufQcPC6Yy5QpU/ieCRERERGFTzCH8mpI1lz9559/dJAkha09u1t4/CWtUN7jLwEREVHIW5MULlxYZ5scOnQo0H0wGBTNg3Pnzi2rV6925rBEREREFBGZOfSaGTVqlK6nhlmsmJKMWjdmVqBNCdZsO336tG7HWmvVqlX70PMiIiIiorDKzGGmyfjx43XmCTo1o1nwvXv3dAUIQC+ao0eP6vpuDOSIiIiI3HACBCATV69ePb0RERGR+/UO9fR+nJ4oVMt5ERERkecqW7asbNiwwaXnMGnSJLlz545Lz8FdMJgjIiLycFgYwGwYzP0PgzkiIiIPhFWbvvvuO82yDRgwQJf2QueKIkWK6NKcHTt2lLdv3+q+mOhYtGhRKVCggI6TxzJTQdm5c6fky5dPj+Hj46O/d+rUKWnUqJHkzJlTKlWqJM+ePdN98Rz9+/fX58XvNG7cWB49eqSPLV26VJ83f/78+timTZt0+/Dhw3UcP9ZzzZcvnxw/flw8WYjGzJFrff6qAt8CIiIKM69fv9bAC9q3by+lS5fWNmNYHQKB3bRp0+SLL76QFi1aSPfu3XV99gMHDsgnn3wS7LHR5WL+/Pkyc+ZM6dKli3bEwO+mT59eqlevroEanhNdMLA+rNH+DMuGDhkyRCZPnixVqlSRJk2aaOB59epVKVGihPz9998yePBg+fHHH2XlypXaEs3TMZgjIiLyUG3atLH+vGbNGg22kK2Dly9fSsyYMeXJkyeaVUNAB8WKFdNsW3CyZ8+uWTNAZg5BGAI5KFiwoFy5csX6vHgOBGbw5s0byZo1q3UpUWQCb9y4IdGjR9dOGjjORx99FObXwuOCuQsXLmgkj4GH//33n91jiJaJiIjI/SEjZkA2DoFVlixZ7PZBoIXMWEihA4YhWrRo/u4jWDSed/r06VK+vP8lflByRWu0OnXqWFulBVfi9UQhDuaQfu3UqZMkT55cUqdObfcG42cGc0RERObz6aefypgxYzSwQhYMiwLcv39fs2AoZS5ZskSzcyiHnjx5Mkyfd8KECZrxixs3rrx48UIzcrly5dJzyJw5s+63ePFivW9ImDChrj5FoQjmRo4cKd98843069eP14+IiCiS9IPD7FB8t6M0GjVqVF3x6dtvv9VgbuHChdK6dWuZOHGilkwxKSGsYPLDsGHD9JhGggjngWAO4+bq1q2r670XL17cbp14jOHDOcWNG1fH5hklXU8UxYL8ZgggEsasEcc0bGSHNHOiRIn0rwBcA1e40X+PeLr0Y0qJJ/NZEPw4lcjuZMuwywgQRdR3AUqDyDZ5eXnZlRuJwuJzE+LWJA0bNpQtW7aE9NeIiIiIyB3KrEi3Dho0SGe8YDYL0rC2kPYkIiKiyA/j3a5du2a3LUmSJLJjxw6XnZMnCnEwN3v2bJ39smvXLr3ZQq2bwRxR+DnpZ/+PJhGRK61bt45vgBmDOdRuicg1Mr9a6vGX/qrHXwEiojBsGmzMnQhN/xkKueV+33r8Zestnj0B4lWVdK4+BSIiigxrs2KKMsbLxYkTR29Yw23RokVhf3ZEREREFLaZOTT2wwSIrl276tpsyM798ccfupgultnAGm4UPmIn6cVLS0QUSaTeET6Lw98q57n91jxViDNzU6dOlRkzZmgjQcxiqV27towdO1Y7Rk+ZMiV8zpKIiIjCHRazx0THsNaqVSuZNm2amNHQoUN1vVhnYLUKrGMb0sciPJi7efOmlChRwt92bMNjRERE5HnB3Lt37yQyGjZsmNPBnKtEDU2fuRUrVvjbvnz5csmWLVtYnRcRERGFIyx036hRI8mZM6fkzZtXKleurEOmzpw5o0tjofoGffv2lcKFC+u2MmXKyMWLF62BH9ZpHz58uJQqVUord//88480aNBAx9LjhmFZBhy3YsWK8vHHH0u9evU0QMIKB1jn/fr169b9BgwYEOSSofj9o0ePWu/PmzdPjwe3bt0SX19fKVKkiD6/7Xrxe/bs0fH+2N6tWzfJlCmTNVOG11SjRg19nbgWqDYCroeRsMLrv3PnjixdulSXHsufP79u27Rpk935YQ3b0qVLa7yEoWkBCeo8I2TMHCJUvPm7d+/WMXOYybp37175/fffAwzyiIiIyP1s3rxZF65HkAUPHjyQEydOSJ8+feTIkSPW/RBYjRs3Tn9etmyZjo3fsGGD3r9//74GLUYwUq5cOalevbqsXLlS79+9e9d6HCwFilghZsyYGuysWrVKmjRpIm3btpVZs2bp2u+vX7/W4AwLEwRVssU+BQsW1Pvz58/Xc4aWLVvKwIED9fjIFNasWVN++eUXPSc8108//aSBJ7YZZd/3799L06ZNdSJnjhw55MWLF1KsWDG9zZw5U89t37592mMXqlSposdC/IOAFoHe33//bV1E4fbt2xojYR4BzhGxkuNatoGdJ9ahjZBgrn79+nLw4EFdbHfNmjU6AQJR/aFDhzRKJSIiIveHDNS5c+ekc+fOmnFDwBMQLOGJrNvTp0/lv//+0/VpDVgvFIENPHv2TIOerVu3Wh9PkSKF9Wdkz9ABA5CRunz5sv6M50ewg4AQwSJ+xviywCAQQryBrBcyehcuXJBq1arJ8+fPZfv27RpMGXBOeI1Zs2bV50YgBwiaEidOrD+fP39eTp8+LY0bN7b+Hl4rgtwCBQoE2G+3WbNmcuPGDYkePboGbQjmENQCglNA1hLPgwDWNpgL6jwjtM8cIs3FixeH+kmJiIjItbJkyaIBCwKLbdu2yZdffimTJk2y2wdLdWFlJyRssD8yd+XLl7c+Hi9ePKd7zdouFB8tWjTrGLt06dJpkIVs3vfffy/ffPNNkMfB/giysPrEX3/9JS1atNCgCmVjnMvhw4f9LTWK/QI7TySlEHghc+gMBH3jx4+XOnXq6P2kSZNquTgwjs+LgDiw8wzXMXO2UTh+DupGRERE7g+ZJQQVGBuH4ARBTbJkyeTx48fWffAzyqIY14bHg5qRijJkyZIltXJnsC2zBqVHjx5azkUcgXF1wWnTpo38+OOP2ve2VatWui1BggQaFI4ZM8a637///quvE+VTZMTQSg3Wrl0rjx490p+zZ88ucePG1WMZLl26pGVn47i21wSlaSNziMQW7ttCCRjw+6hgVqhQwe7xoM4zXDNzWDQXM1VTpkypacmAolu8ydiO2rOzRo8eLatXr9bUItKfqDuj5QkurO1xMU4Ps2twwZCqROSeK1cu6z6osaNejlo4InNcOAxeTJ8+vXUf/C7+ujDWkcOHF2ljI81KREQUkVzdD+7kyZPSv39//Z5FtggZLnwP4zs4d+7cmonDd2bDhg31OzdjxoxSqVKlII+JcWeYXID9kS1D9grf4cHB+DR8H7dv396pTB/aonXq1EknXubMmdNu8kGvXr10ooMRYGLcG+IBTFzAhAbEGxjblypVKkmUKJGe5/r163UsIIJaxDEoD+NY0Lt3b81G4vdQcp48ebKWT5EhLF68uF4XW5hYgWANcRPiDpSUHQV1nqERxWKsyRWEXbt26QA+vGD8HBTU3Z1VtWpVTVdi9gjSrRgMiA8X0r5I3QKCO6RcMcARM1gwQBIDC1HjRnQLeEPxRmAf/FWBC4+IGLNdkMoF1NMR9RpTrvGBQWSN33MG/lrAm47oPGHChOIK33fcLp6uy8z/pfc9UXg1GTUTV38BkmcL7XcBynAYa+Xl5WVXbqT/h7FvCHow/s34bg9rT58+tR57x44dOvYOExiiRg3VYlgRwtnPjVOZOdsADQfMkCGDv8gZMaHt1GJnZ9I4piaR/UMQhhkeOCbq9wjyjGnHCxYs0GgaEXaHDh30/1Bz587VvwaM1CzSnjhHjAHArJOzZ8/qc2F2jDEIcc6cORpRIyi0zQS6s/I7u7j6FNzAWVefABERhSFMfEDJFGXH8ArkALNnUQJGFjJWrFhazXPnQC5cJ0AgmDNKrraQCcNjISmzOjJq0hhMCIhG0YsFvW8MeAMQXGLGDII5BH5v37612ydt2rSaIsY+COb279+vf0nZziZBShfbsI9ZgjkiIqLIBn3qcHNUqFAhf42IUb41yp8h1apVK+v4usgmxMGcMTbOEabVfkjqGMdF/RiDJxGIAQI5QCbOFu5jGrCxDwZnYlyf4z7G7+O/jsEnYJuxjyOMw8PNwMkdREREEce21x2FUTCHQAsQyKGjM2Z+GJCNQ+85dEIOra5du+qUZzQgdhRQSTe4AZKO+wQ1aSOwyRnODNokIiIiMkUwd+zYMWsAhEkKyIYZ8DOaDxodmEMKM18wYwYTG2xncmAqNCB7liZNGut2LKdhZOuwD5YEwWxV2+wc9jHWkMU+ts35bKdMO2b9bJcTMQJYIzOHcXhEREREpgzmMPMDWrdurdNyw2JGJwJDBHJYwmLnzp065s4W7iMQQzdpY3UJBG6YUYtZrkYDYzTdwz5Y5wwwpg/rrY0dO1bvY6IDxuOh6aExRRiZRGwzAj5HGJuHGxEREVGkGjNnNMMDzF5FmTK0fVG6dOmis1LRvA8zWIzxa5iYgH4uOHbPnj1l1KhR2ksGN/yMEi/WUTP2xdIZaEeCtiSYPIEMIXq3GLNbvb29tQ1Ku3btdI01ozUJ1kLj5AciIiLyqGAOM0swlmzKlCk66cFodocM25AhQ0K0NMWMGTP0v2XLlvUXMBozTrC8CBoBY+02o2kwmvbZTl/GVGP0wENmzmgajJ5zRo85wOwXNO8zZr2iaXBQnayJiIjCU+b+G8PluFfH1Aj97169qt+xSHgYsGYrmuxjfdOwgj6vGzZssE54DA20LkNiJ2UAExw9TfTQTFRAWRQlTJQvAa0/hg4dqovNooOxs5zoV6zZORwbt8BgFi0+aLgFBhk7ridLREQUdDCH5vq2wdymTZvc8pIhmEMFLiWDOefWZrWFJnvIeqHHW548efSGn9HwD48RERGR+0Mlq1GjRrocFiYxonKF5a6wChO6U6CCZWTRMA7dqKT17dtXG/tjUuC4ceNk2bJlOv4cy1jhZ9tkjFHBAyxmj2DR0YQJE3QlKIyNx7h2jGm3PQbGyKMqh3H0xlAv9KXDeqYNGjTQcz1+/Liu6ISYBPeR8cMQLk8R4swcsmDGArO2sM12hisRERG5L6yMhOFLCN6M5v9oEYZx50H1eLt27ZpOWsQ4d5ReMWYdDfgxyRBrsWKZzpDAmrBG9wis1IRx8EbwaMQdCPCwmhOCPexvrBqxcuVKa6kWy3OhOojAEqs8eFJ/2OihmbQwYsQIjY6N2Z5orov1U1GCJSKi8HM2h7fHX17vc1zWLywgG3fu3Dkdk46VlTA2zhkNGzbUZbCw2hKybQjgjO4S6CaB9URDsogAWp8hhrh//76Of0dwic4VRoKoWbNm1smMeBxBZEATLytUqKCTJpGtQ5bxQ3rfRvpgDhf9999/1wuJDwL89ddfeuFxIY01VGH16tVhe7ZEREQUJrJkyaKB0/bt23Utc0w4xDi04NgGaphoaNw3Jh0aS3Dhvu0SnwjyHCF2qF+/vmb6EAwim4YuFbbBnOPzOS7xZVuuPX36tLZSQ5YOQSBekycIcTCXOHFivfC22EyXiIjIXG7cuKHN9jE2Du271qxZoy2+jHXSPxRKsCiPIkuG5M7z58/97YMAD+urG3FEUBMZHaHfre25njt3TtduxQ0ZPMzK9RQf1GeOiIiIzAmrOfXv3187S2CMGcaiYbwZ+q9iHBoyd1idKbSQ5cPQLMw2LVeunAaKAQVkmMyAsXAZM2a0TrpwBtqNYSGDuHHj6sRMtE27cOGCZvSwzWh/5gmiWJzpD0LW1C/+CgiL1S9Cg2NlxOPHyqTecdzj/994q5znjIMJCP8dcO2/A6H9LkAGys/PT2dkhmQ8GXm2V05+bkKcmcMARcwiQU0a658imreF2TBEFD6WWOyHOHimy64+ASIitxLiYK558+Zy+fJlnTqMRerRA4aIiIiITBLM7d27V2/GTFYiijh7drfw+MtdobzHXwIiog9bASJHjhzaNZqIiIiITBjMTZ8+XQYOHCi7du3S8XMYDGp7IyIiIiI37zOHWTzly9vXOjApFuPnbBsEElHY+vxVBV5SIiL6sGAOHZXRw2Xp0qWcAEFERBRaQxOFz7UbGjZNfykSB3NY/BZLeqGpIBERRSzfASH+ZzvSOenqE6APggqesfQXhY0Q/6tQqFAhuX79OoM5IhdY7vetx1/33lLK468BUVjAZMZWrVrpShAxYsTQattXX30lffr0kSNHjlgTODVr1pSrV6/q/WnTpsnkyZO1cXK1atV0lYV79+7peqk1atTQsfQ4Lha5nzNnjnV1hmXLlulKEFgLFkt2FS9enG+iK4O5bt26SY8ePaRv377i4+OjHwBbefLkCcvzIyIionCwefNmefjwoQZYRtP/EydOBLo/Hhs9erRW5xCY9ezZ0/oYMm0YfoUluzCGvnPnzjphEoEhoKUZfi9btmx8L90hmGvUqJH+t02bNtZtmPjACRBE4S92kl68zEQUJtAvFovTI/AqU6aMVK9ePcj9d+7cqfsgkAOsi7p48WL9GTHAxIkTZePGjZqlw0TJ0qVLW3+3ZMmSDOTcKZjDGmFEROQaJ/2u8dJTmMiSJYtm5bZv3y7btm2TL7/8UoMz264UWBvUYCRtAoKsHFqW7d69WxIkSCBTpkzRnw3x48fnu+ZOwVymTJnC50yIiChYqcvs8virdMvjr0DYuHHjhiRJkkQ+/fRTqVq1qqxZs0bXW0fSBmPfUDJdtGiRdf+yZcvKuHHjdIxc8uTJZcGCBdbHUK7F/gjknj59quPkECySmwZzCxcuDPLxzz777EPOh4iIiCIAJj70799fM24I4lq0aKHlVoxzw2THzJkz25VKUZZF9q5YsWKSJk0a7TeLiRDGd//atWslZ86cki5dOilVqpT8888/fB8jSBQL3sUQQBRv6+3bt/LixQvtPYdZKxhAGRlhdQt8aDEOIGHChC45h7M5vMXTeZ87K56MnwF+BlLvOC6e7la5fKb7LkC5EhkvLy8viR07tpgVsm7IvsHQoUPl0qVL1nFzFPac/dyEODOHVKqjixcvSqdOnXSGKxEREUVOyOT98ccf8ubNGw0w0H6EXC9Muk9iqvGYMWOkefPmOjOGiIiIIp/vv//e1adAAYgqYQQ9Zv7999+wOhwRERERhUdmbt26dXb3MeTu5s2b2hX6k08+CenhiIiIiCgig7k6derY3UfPmRQpUuislu++++5DzoWIiIiIwjuYw/RlIiIiIookY+bQKfr48eMBznIlIiIiIjfLzGFhXR8fH2nbtq0GcmgouH//fu0xt2HDBu0QTUREREHzWeATLpfoZMuTbnfpsbpE2rRppUiRIsHui/51z549k/Hjx4foMU8W4szcypUrtQs0rF+/Xq5evartSBDkDRw4MDzOkYiIiEwMwdyhQ4dcfRqRVoiDOazJljp1av1506ZN0rBhQ/n44481U4elQYiIiMj9jRw5Urp162a9j4xX0qRJ9XsemS9k0QoUKCDVq1eX69ev6z5Y+aJ+/fqSI0cOnfiIJcCw/JexIhSaCuP38uXLJ40bN5ZHjx5prIBOGOhHi+0//PCD3Lp1S8qVKycFCxaUXLlySffu3bU7huHatWv6vLlz59a1YwMbyhXYea5fv17y5Mmjz4djYKmxyCzEwVyqVKnkzJkzWmLdvHmzVKxYUbdjSS/0miMiIiL316pVK1m+fLmu5gA///yzBlhbtmyRCxcu6BCqP//8U5o0aSJdu3bVfYYPH67LeqIit2rVKtm7d6/1eOPGjZP48eNrBg5j6RGkDRkyRIMsBGQI9LD9888/l8SJE2vAdfToUTlx4oRcuXJFj2fYs2ePzJs3T06dOiXp06cPsPK3dOnSQM/z66+/lpkzZ+rz4fhYczYyC/GYudatW4uvr68usou2JJUqVdLtBw8e1EidiIiI3B+CpPz582vWrEGDBho8ffnll7Jw4UI5cuSIZs0AyRsjWbNjxw6ZOnWq/oygzrZdGUqpWLsWw7EAQWLWrFkD7YzRr18/DQaRkbtz545m0XAeULNmTU0eQfv27TXucITnC+w8K1SooMO/cLzKlSvrsSOzEAdzGHyIlCVSmSixxooVS7fjAiLqJiIiInNAgmb+/Pka7Fy6dEmqVasmCxYs0MxWmzZt/O2PwAuJnIDgsenTp2v5NTgTJkyQ+/fvayIIC8j36tVLF5UPTEDPiecL7DwnTJggp0+f1uCzZcuW0qxZMw1UI6tQtSZBpPvFF19oVG/Axapdu3ZYnhsRERGFo7p162pZFOPZMP4NiRmURBGUPXjwwDoW7tixY/ozyrAI9gDj4WzHouH3EERh2BXgvwioIGHChDrezoAxcBh/j0Du9u3bWuK1tXHjRs3Wwdy5c61DumwFdZ7nzp3TMi/Krp06dZIDBw5IZBbizBz8/vvvesOFdmwi/OOPP4bVuREREVE4QnUNVTYERWfPntVtCOqQNUOrMWTE3r17p5McUZIdPHiwZvNy5swpmTNn1mU8EyVKpL+H6tywYcOkaNGi1kwaSqkIqnBMjNFD0IYACxMe8LzICKZLl85fsIYyKZ7Tz89PsmTJYg0gbQV1ngMGDNDxdDFjxtTWaTNmzIjUn6MoFtvpI07AG4UBkIUKFbKOm7P1yy+/SGSEcQD4wOIvC/yF4Qpnc3iLp/M+9///2Hgqfgb4GUi947h4ulvl8pnuuwAlRAQmXl5emo0yK2S/MDYNrwHXomTJkpqNCyhzRh/O2c9NiDNzmB2C+joiYiIiIvIcKI9iXB0CupcvX+pYNAZyrhfiYA6zU0qUKBE+Z0NERERuK2XKlNpOhEw+AQL9YdDbhYiIiIhMmJlD/Xb27Nmybds27a4cI0YMu8dROyciIiIiNw3m0EnZaL6Hzsy2Aus9Q0RERERuEsyhAR8RERERmbjPnOHGjRuajUOPGCIiInJ9qyFPb+HkiUI8AQJNgtFnDn12MmXKJBkzZtQFc0eMGOGvgXBwdu/eLbVq1ZK0adNqUIh11myhwSC2296KFStmt8/r16+lW7dukjx5cokXL552hEaQ6TiVGq1UcM644Wd0riYiIqLAoTGw45AqZ+D7+tmzZy69tP/++6+uWOEJQhzMDRw4UKZNm6ZLf2DZjD///FNGjRqlC+8OGjQoRMd6/vy55M2bV48XmKpVq8rNmzett02bNtk9joV00ah42bJlumAvPjxYoBc9cAxNmzaV48ePy+bNm/WGn9knj4iIyLyQQAoqiZQ2bVqPGRoW4jIrltT44YcfNANmQECGUmvnzp3lm2++cfpYaDyIW3BLjWD9toCgAzfWbFu0aJG1aeHixYslQ4YMOtu2SpUqujwJAjisy4YlRmDOnDlSvHhxOX/+vGTPnt3p8yUiIoosZs2apQkZ/BeTG/FdvmXLFqlUqZImZ7AUFqxatUrat2+vCRUsl4XF7eHSpUvSsWNHXdozatSoMnToUKlTp46/57l48aImXrAfetV26NBB44XA4Lu9TZs2uq4rAjLEF6lSpZLx48frc1y+fFmTQXj+X3/9VSZNmiQ7d+7U1SlQfUOMki1bNrl69aquVnXv3j1rthCJqNWrV+u5GEuTISDE8mKIGxBzRI8eXf744w9TrdQR4swcFrTNkSOHv+3YZix2G5bwBqFJ4ccffyzt2rWzLrwLaFyIN69y5crWbXjjc+fOLfv27dP7+/fv1zfXCOQApVpsM/YJCMq3WKrE9kZERBRZIGjbunWr/oz11pHkwH8BgY2RJMGwJHxfHjp0SMaNGyf//POPbsfqD76+vhoIYs1VBHrXr1+3ew5UyVAd++677+Tw4cP6nYyVpBBEBgZDuZIkSSLnzp3TQBJVN1vItuEYeF4Eev369dNjo+rWqVMn+eKLLwI9NgK0gwcPapUPARzWc/3rr7/0dZ85c0Z/3r59uzWQjbSZOaMsOmXKFLvt2IbHwhKydliIF2PzsDYZ/lIoX768BnGInm/duqUXHG+6LUTweAzwXwSDjrDN2Ccgo0eP1nVoiYjcScdd9mOLPZIL12aNTLCAPVy5ckWDN3zv9e3bV5MXWKS+cOHC1qANUqRIob+D72OsS4vgCQEcIBOGdVoReDVp0sT6HKiAIcPWuHFj67anT59q4FSgQIEAzwvBGoZuAb7fHbN9GEpl+72+ZcsW3R/HRZYtqOSL8Vq8vb01A4c4AK8JiSFkAzHGrkaNGpppjNTB3NixY/WF4o1HFI+0JSJ2ROOO49k+VKNGjaw/I9uGdCkCu40bN0q9evUC/T2LxWLX8y6g/neO+zgaMGCA9OrVy3ofHw6Ub4mIXOnzVxX4BlCYqVChgpYqUbIsU6aMBkPIhiEwQ7ADtuXGaNGiaTYL36Hg+D3qeB/7YYIiAj9nBff9HD9+fOvP165d0wwbsoYIypCtQ9InMAG9FlTqEHDu2rVLA0l8/2OC5kcffSSRNpjDm41Ie/r06ZoCxUVHYIX6N0qc4SlNmjQazKH+DhhLh/o7ZqvaZudQijXWj8U+t2/f9nesu3fvagYvMMj84UZE5E6W+30rnq63lHL1KUQaKKWiTFm6dGm9j8wUqlK9e/cO8veQmcMCAhhHj3FnGMeGcWaOExoxLj1u3LiycOFC+eyzz3QbAsekSZPqLSA4BxwX3+Mo8a5duzbQBA7G18WMGVO/6xGPBDWhMjCIBxDYYcgWSs8I6pA5jNTBHKBGHZKJDmHl/v37mgFEUAcFCxbU5cRQ80fdHjBAE9OokUEEZA/xZiNqL1KkiG5DvRzbjICPiIgoorlDPzhk5pDdMsbHIZjBRAPjflCWLFmikxkwAQGZNEw8cKxgIbu3fv16HceG42IMHcq1+N3AGBMTcubMqa1RPvnkE82eBcTHx0eHY+XKlUtbpeH8QwpxBcbko9SKzCRig+AmZ7qbKBYjV+qkefPmaYoTF88WBj++ePFCWrZs6fSx0EYEETrkz59f13VFRG5E7Ji1Ur9+fQ3eMCvlq6++0g8dZqgmSJBAfw+DHTds2CDz58/X3+nTp48GfRhXh0gb8Kag3wxm7ABm5SDDhw+Ys1BmxYcJQSD+IolMDSbNxB3+8XMlfgb4GfiuUU3xdL2Xb3DZc4f2uwDrmmOsmZeXl6lmSboCgioEfbhOuN4o+SI+cCbAjGyc/dyEeIQfpvWi/u0IgxHRby4kjhw5okEcboAxavgZUTkCsZMnT0rt2rV1JiuCRPwXM2GMQA4mTpyogyORmUP0jnQugjQjkAP8BYDoHSlU3PLkyaPtTIiIiMi9YOgUvs9RxsUkjAYNGnhkIBeuZda///5bI0RHyHQhaxYSZcuWtQ6iDMhvv/0W7DEQqWIWizHzJSDI2KH/HBEREbkexrbbthUzoEyK9ieorlE4BnPIwGG2COrYttCbJVmyZCE9HBEREXkYxBIhmeFKQQtxmRW9YjANGNN3UdPGDQ32evToYddHhoiIiOyFcJg6eTiLk5+XEGfmRo4cqaVWzIAxetBg9gemHId0zBwREYVM7CT/639J5mGM40Y7rThx4rj6dMgk8HkB23kAYRLMoZ/L8uXLNahDihQfSkwuwJg5IiIiCuDLNnp0naCHnmZoqWW2FQYo4iFRhs8LPjdG8ixM+8wZS3fgRkREEaf8zi683GK+FkXow4Y2W2gzgeoWkTMQ9KN/XlArYnxQMEdEREQhq2whCWKUzoic+cw4k8VlMEdERBRB8MXMpsEU1li0JyIiIjIxBnNEREREJuZUmRVNgp2FpbKIiIiIyI2COayPhpkUgTWvMx7Df9FEmIiIiIjcKJjDVGoiIiIiMmkwx4bARERERO4p1K1Jzpw5I9euXfPXL+fTTz8Ni/MiIiIiovAI5q5cuSJ169aVkydP2o2jM7oTc8wcERERkRu3JunRo4d4eXnJ7du3db2w06dPy+7du6VQoUKyc+fO8DlLIiIiIgqbzNz+/ftl+/btkiJFCu1kjVvJkiVl9OjR0r17dzl27FhID0lEREREEZWZQxk1fvz4+nPy5Mnl33//tU6SOH/+fGjPg4iIiIgiIjOXO3dubSKcJUsWKVq0qIwdO1YXgp09e7ZuIyIiIiI3Dua+/vpref78uf48cuRIqVmzppQqVUqSJUsmy5cvD49zJCIiIqKwCuaqVKli/RmZOLQoefDggSRJksQ6o5WIiIiI3LzPHFy/fl0DuPTp04fdGRERERFR+E2AePfunQwaNEgSJUokmTNn1okP+Bnl17dv34b0cEREREQUkZm5rl27yi+//KITH4oXL25tVzJ06FC5d++ezJw580POh4iIiIjCM5j76aefZNmyZVKtWjXrtjx58kjGjBmlcePGDOaIiIiI3LnMGjt2bC2vOsI2tCghIiIiIjcO5rp06SIjRoyQ169fW7fh52+++UZLsERERETkZmXWevXq2d3ftm2bzmDNmzev3v/rr7/kzZs3UqFChfA5S1K+Az5o8nGkcNLVJ0BERORmnIoOMFvVVv369e3uZ8iQIWzPioiIiIjCLpibN2+ec0cjIiIioggV6rrd3bt35fz589o0+OOPP5YUKVKE7ZkRERERUdhPgMC6rG3atJE0adJI6dKldV3WtGnTStu2beXFixchPRwRERERRWQw16tXL9m1a5esX79eHj16pLe1a9fqtt69e3/IuRARERFReJdZV61aJStXrpSyZctat1WvXl3ixIkjvr6+MmPGjJAekoiIiIgiKjOHUmqqVKn8bU+ZMiXLrERERETuHsxhPdYhQ4bIq1evrNtevnwpw4YNs67VSkRERERuWmadPHmyVK1a1do0GLNZjx8/rst8/fbbb+FzlkREREQUNsFc7ty55eLFi7J48WI5d+6cWCwWady4sTRr1kzHzRERERGRm/eZQ9DWrl27sD8bIiIiIgr7YG7dunVOH/DTTz8N2RkQERERUfgGc3Xq1HHqYBg/9/79+9CfDRERERGFfTD333//heyoREREROSerUmIiIiIyIQTINBL7vfff5eaNWvq/QEDBsjr16+tj0eLFk1GjBihLUqIiIiIyM0ycwsXLpRZs2ZZ70+bNk327dsnx44d0xtalYR0Ka/du3dLrVq1JG3atDrebs2aNXaPo+3J0KFD9XHMoMUSYqdPn7bbBwFlt27dJHny5BIvXjydgHHjxg27fR4+fCgtWrSQRIkS6Q0/Y01ZIiIiIo8J5pYsWSJt2rSx27Z06VLZsWOH3saNGycrVqwI0ZM/f/5cGw8jMAzI2LFjZcKECfr44cOHJXXq1FKpUiV5+vSpdZ+ePXvKL7/8IsuWLZO9e/fKs2fPNHtoOxGjadOm2th48+bNesPPCOiIiIiIPKbMeuHCBfn444+t91FOjRr1f7FgkSJFpEuXLiF68mrVquktIMjKTZo0SQYOHCj16tXTbQsWLNB1YRFEdujQQR4/fixz586VRYsWScWKFXUfZAgzZMgg27ZtkypVqsjZs2c1gDtw4IAULVpU95kzZ44uPXb+/HnJnj17iM6ZiIiIyJSZOQRO0aP/L/a7e/euZM6c2W7Gq+0Yug/l5+cnt27dksqVK1u3xYoVS8qUKaPlXTh69Ki8ffvWbh+UZLFKhbHP/v37tbRqBHJQrFgx3WbsQ0RERBTpgzmsxXrq1KlAHz9x4oTuE1YQyAEycbZw33gM/40ZM6YkSZIkyH1Spkzp7/jYZuwTEASmT548sbsRERERmTaYq169ugwePFhevXoV4EzXYcOGSY0aNcL6/HRihGP51XGbI8d9Ato/uOOMHj3aOmECN5RuiYiIiEwbzH311Vfy4MEDHWOGyQ5r167VZb4wSQHbMGMU+4QVTHYAx+zZnTt3rNk67PPmzRt97qD2uX37tr/jo0zsmPWzhdYrKC0bt+vXr4fJ6yIiIiJySTCHwAdjzLy9vaV///5St25dXeYLQU/OnDl1JmlQwVFIeXl5aSC2detW6zYEbrt27ZISJUro/YIFC0qMGDHs9rl586aWg419MNEBwdihQ4es+xw8eFC3GfsEBOPzEiZMaHcjIiIiMu1sViPAwsxQZOguXbqk2z766CNJmjRpqJ4cbUSM4xiTHtA2BMfLmDGjth0ZNWqUZMuWTW/4OW7cuNpqBFD+bNu2rfTu3VuSJUumv9enTx/x8fGxzm5F8Fm1alVp166dtU9e+/bttX0JZ7ISERGRRwVzBgRNaEXyoY4cOSLlypWz3u/Vq5f+t2XLljJ//nz58ssvdTxe586dtZSKGalbtmyRBAkSWH9n4sSJOsvW19dX961QoYL+LlaksO2R1717d+usVzQWDqy3HREREZGZRLFgJgAFC7NZkQlEedZVJVefBT7i6U62PCme7GwOb/F03ufOiifjZ8C1nwF3+C4gCvWYOSIiIiJyPwzmiIiIiDxtzBy5xkm/a7z0REREZIeZOSIiIiITYzBHREREZGIM5oiIiIhMjMEcERERkYkxmCMiIiIyMQZzRERERCbGYI6IiIjIxNhnzkQyv1oqnu6qq0+AiIjIzTAzR0RERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEyMwRwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmRiDOSIiIiITYzBHREREZGIM5oiIiIhMjMEcERERkYkxmCMiIiIyMQZzRERERCbGYI6IiIjIxBjMEREREZkYgzkiIiIiE2MwR0RERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEzMrYO5oUOHSpQoUexuqVOntj5usVh0n7Rp00qcOHGkbNmycvr0abtjvH79Wrp16ybJkyeXePHiyaeffio3btxwwashIiIi8rBgDnLlyiU3b9603k6ePGl9bOzYsTJhwgSZNm2aHD58WAO9SpUqydOnT6379OzZU3755RdZtmyZ7N27V549eyY1a9aU9+/fu+gVEREREYWd6OLmokePbpeNs83KTZo0SQYOHCj16tXTbQsWLJBUqVLJ0qVLpUOHDvL48WOZO3euLFq0SCpWrKj7LF68WDJkyCDbtm2TKlWqRPjrISIiIvKoYO7ixYtaRo0VK5YULVpURo0aJVmyZBE/Pz+5deuWVK5c2bov9ilTpozs27dPg7mjR4/K27dv7fbBsXLnzq37BBXMoTyLm+HJkyfh+CqJnOM7wO3/Lxvu/pebJyIity+zInhbuHCh/PbbbzJnzhwN3kqUKCH379/XnwGZOFu4bzyG/8aMGVOSJEkS6D6BGT16tCRKlMh6QzaPiIiIyN24dTBXrVo1qV+/vvj4+GiZdOPGjdZyqgGTIhzLr47bHDmzz4ABA7RMa9yuX7/+Qa+FiIiIyOOCOUeYjYrADqVXYxydY4btzp071mwd9nnz5o08fPgw0H0Cg5JtwoQJ7W5ERERE7sZUwRzGsJ09e1bSpEkjXl5eGqxt3brV+jgCt127dmkpFgoWLCgxYsSw2wczYk+dOmXdh4iIiMjM3Ho0dZ8+faRWrVqSMWNGzaaNHDlSJyK0bNlSy6RoO4IJEdmyZdMbfo4bN640bdpUfx9j3dq2bSu9e/eWZMmSSdKkSfWYRtmWiIiIyOzcOphDc98mTZrIvXv3JEWKFFKsWDE5cOCAZMqUSR//8ssv5eXLl9K5c2ctpWLCxJYtWyRBggTWY0ycOFHbm/j6+uq+FSpUkPnz50u0aNFc+MqIiIiIwkYUC2YDULCQEUSmD5MhXDV+LnP//58A4smujqkhnsxngY94upMtPbs5ydkc3uLpvM+d9ejvAiJTj5kjIiIiInsM5oiIiIhMjMEcERERkYkxmCMiIiIyMbeezUpE9k76XeMlISIiO8zMEREREZkYgzkiIiIiE2MwR0RERGRiDOaIiIiITIwTIIhMJPOrpeLprrr6BIiI3Awzc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEyMwRwRERGRiTGYIyIiIjIxBnNEREREJsZgjoiIiMjEGMwRERERmRiDOSIiIiITYzBHREREZGIM5oiIiIhMjMEcERERkYkxmCMiIiIyMQZzRERERCbGYI6IiIjIxBjMEREREZkYgzkiIiIiE2MwR0RERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdERERkYgzmiIiIiEwsuqtPgIiInOc7gP9sn+QHhsgO/1UgIjKRk37XXH0KRORmGMwREZlI5ldLxdNddfUJELkZjpkjIiIiMjGPCuamT58uXl5eEjt2bClYsKDs2bPH1adERERE9EE8Jphbvny59OzZUwYOHCjHjh2TUqVKSbVq1eTaNY4/ISIiIvPymGBuwoQJ0rZtW/n888/F29tbJk2aJBkyZJAZM2a4+tSIiIiIQs0jgrk3b97I0aNHpXLlynbbcX/fvn0uOy8iIiKiD+URs1nv3bsn79+/l1SpUtltx/1bt24F+DuvX7/Wm+Hx48f63ydPnoir/Pf6hXg6V15/d8DPAD8D/Ay49jNgPLfFYnHZORB5ZDBniBIlit19/J/RcZth9OjRMmzYMH/bUZol10k0iVff0/EzQO7wGXj69KkkSpTI1adB5DnBXPLkySVatGj+snB37tzxl60zDBgwQHr16mW9/99//8mDBw8kWbJkgQaAkRn+GkUge/36dUmYMKGrT4dchJ8D8vTPAJIACOTSpk3r6lMh8qxgLmbMmNqKZOvWrVK3bl3rdtyvXbt2gL8TK1YsvdlKnDixeDr84+2J/4CTPX4OyJM/A8zIkbvxiGAOkGVr0aKFFCpUSIoXLy6zZ8/WtiQdO3Z09akRERERhZrHBHONGjWS+/fvy/Dhw+XmzZuSO3du2bRpk2TKlMnVp0ZEREQUah4TzEHnzp31RiGHkvOQIUP8lZ7Js/BzQPwMELmfKBbOryYiIiIyLY9oGkxEREQUWTGYIyIiIjIxBnMmV7ZsWenZs6fLnr9Vq1ZSp04dtzkfspc5c2Zdh9jdOPM5cddzN5PwvoY7d+7UvpuPHj0KdJ+hQ4dKvnz5QnRc/jtCFDIeNQGCwt/q1aslRowYvNTEzwmpPn36SLdu3Xg1iMIRgzkKU0mTJuUVJX5OyCp+/Ph6I6LwwzJrJPDu3Tvp2rWrrlCB5ca+/vpr6yLQixcv1kbJCRIkkNSpU0vTpk11GTPDw4cPpVmzZpIiRQqJEyeOZMuWTebNm2d9/J9//tEefUmSJNFjY8WMq1evOl0eQZln1KhR0qZNGz2HjBkzasNmWyF9DvofLCuE9y9evHiSJk0amThxor/34MWLF0Fe/3379mkZLHbs2PpZWbNmjZbOjh8/7nSZ7bfffpP8+fPrZ6h8+fL6Gfv111/F29tbVwlo0qSJnkdgnxPsX6tWLf19Ly8vWbJkCd9mE7z/hqNHj+rvxo0bV0qUKCHnz58PtMyKf6+6d+9u/feqX79+0rJlS7vhGsYSil9++aX+gYh/u3AcIgoYg7lIYMGCBRI9enQ5ePCgTJkyRf9B/+GHH/SxN2/eyIgRI+Svv/7Sf6T9/Px0nJth0KBBcubMGf3iPXv2rMyYMUPXsjW+BMqVK6d/Ve/evVv27t2rP1etWlWP66zvvvtO/6E/duyY9vnr1KmTnDt3Lkyfw1NhZZM//vhD1q1bp8vT7dmzR/7880+nrz+CAQRRPj4++nv4rODLNaTwRTtt2jQNDLBmp6+vr47VWrp0qWzcuFHPberUqYH+Pj6TCOC3b98uK1eulOnTp9v90UHu/f4PHDhQn+fIkSP6bxGCx8B8++23Gqzjj0acO9Z6xb9NAf27hiAV/66NHTtWG77jNRJRANBnjsyrTJkyFm9vb8t///1n3davXz/dFpBDhw4hZWd5+vSp3q9Vq5aldevWAe47d+5cS/bs2e2O/fr1a0ucOHEsv/32m95v2bKlpXbt2nbn06NHD+v9TJkyWZo3b269j2OlTJnSMmPGDKefgwL25MkTS4wYMSw///yzddujR48scePGtb4HwV1//DdZsmSWly9fWveZM2eOfkaOHTsW7KXfsWOH7rtt2zbrttGjR+u2y5cvW7d16NDBUqVKlQA/J+fPn9f9Dxw4YH387Nmzum3ixIl8+032/m/cuFG3GcccMmSIJW/evNbHU6VKZRk3bpz1/rt37ywZM2b09+9IyZIl7Z6rcOHC+m8bEfnHzFwkUKxYMS2LGLD27MWLF+X9+/f61zjKlli2DGUWlGAA69IC/kpftmyZlkFQ0kBmxbZ0cunSJf09Y9wLSh6vXr2Sy5cvO31+efLksf6M80TJxMi6hNVzeKIrV67I27dvpUiRInYLgGfPnt3p649yGB5Hic1gezxn2T5HqlSptNyWJUsWu22BZdqQEUY2B9kjQ44cObQMR+Z7/1HuhYDe78ePH8vt27ftniNatGhSsGDBII9pHJfZWqKAcQJEJIaAqHLlynrD2DmMi0MQV6VKFWsJs1q1avL3339rKWzbtm1SoUIF6dKli4wfP17HrOAf2YDGL+FYznKc3YovFBwbwuo5PJExLtI2kLfd7sz1x77B/b4zbJ8DxwvqOZ19HWTe9x8Ce7+dOefgzpuI7DEzFwkcOHDA331MZMC4mHv37smYMWOkVKlSmu0I6C9bBE0Ys4SAD+OcjAHSBQoU0AxfypQp5aOPPrK7IQMQFiLiOSKrrFmz6hfeoUOHrNsw/gjX01n4TJw4cUJev35t3YZxTxEJkyQwKN72eZExCqp3GZnz/cf/p5GltT1no4JARKHHYC4SwIBzDITGF+BPP/2kA8179OihM9dixoyp91GSwSBpDHC2NXjwYFm7dq2WOk+fPi0bNmzQL1fALDlMhkCZFgOrMXli165deuwbN26EyblHxHNEVihNYxZg3759ZceOHfr+YeB51KhRnc5yYXYzsh3t27fXcidmpSIrG5GZMpQFMeGlXbt2OtgdpffPP/9cZ7ZS5Hv/0XNu9OjR+u8O/s3C/9cxq56ZWaLQYzAXCXz22Wfy8uVLHYeCEin+scQ/zsi4zZ8/X37++WfJmTOnZuiMf6gNCPYGDBig41NKly6t41cwhg4w7gkzTBEU1qtXT4M8fFngudBuIixExHNEZhMmTNAxkjVr1pSKFSvKJ598otfQdgxUUHCN169fr20oMG4SsxIR4IOzxwgLmNmYIUMGKVOmjH4O8PlFtpYi3/uP2bJoVYN/t3DuGCeLoR8R+XkjimyiYBaEq0+CiMLG8+fPJV26dNomom3btqE6BsYvtm7dWgerMztmLmZ8/5EZRACKdjaOlQMicg4nQBCZGMYaYWwksrL48kUvLkDZ2lkLFy7UmacIAtCPEJkTfLEykHN/Znz/MeFqy5YtmoXFWD30J8TwCpR8iSh0WGYlMjmUzvPmzatlNmRmMPbQaPzsjFu3bknz5s01O/LFF19Iw4YNrZNgOnbsaG0Z43jDY+R6Znv/MaYPwz8KFy6sZeGTJ0/qTHpjrC4RhRzLrEQUKMx+xgzJwMZbcVxb5Mb3n8gcGMwRERERmRjLrEREREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIhNjMEdEEQ6tKRInTswrT0QUBjiblYgiHJZre/r0KVubEBGFAQZzRBSh3r59KzFixOBVJyIKIyyzEpncypUrxcfHR5dfSpYsmXUlAPjxxx8lV65cEitWLEmTJo107drV+ntY/slY0B4NgMuXL6/LORmGDh2qi68vWrRIMmfOLIkSJZLGjRtrRs2wefNmKVmypJZM8dxY8P3y5cvWx69evSpRokSRFStWSNmyZXUx9cWLFwdYZp0xY4ZkzZpVYsaMKdmzZ9fnJSKi4DGYIzKxmzdvSpMmTaRNmzZy9uxZ2blzp9SrV08sFosGR126dNGADUsmrVu3Tj766CP9PTxeo0YNXcpp06ZNcvToUSlQoIBUqFBBHjx4YD0+ArM1a9bIhg0b9LZr1y4ZM2aM9XEEjb169ZLDhw/L77//rks11a1bVxdPt4X1Prt3767nWKVKFX+v45dffpEePXpI79695dSpU9KhQwdd7H3Hjh3hev2IiCIFCxGZ1tGjRy34v/HVq1f9PZY2bVrLwIEDA/y933//3ZIwYULLq1ev7LZnzZrVMmvWLP15yJAhlrhx41qePHlifbxv376WokWLBno+d+7c0fM5efKk3vfz89P7kyZNsttv3rx5lkSJElnvlyhRwtKuXTu7fRo2bGipXr16MFeAiIiYmSMyMSywjmwayqxYIH3OnDny8OFDXVPz33//1ccCgkzcs2fPtDRqu3i6n5+fXZkU5dUECRJY76NUi2MbsG/Tpk0lS5YsWqr18vLS7deuXbN7vkKFCgX5OpCxw6LrtnAf24mIKGjRg3mciNxYtGjRZOvWrbJv3z7ZsmWLTJ06VQYOHKglz6CgDIrADGVZR7Zj2RwnKmD8m20JtVatWpIhQwYNItOmTauP5c6dW968eWP3e/HixQv2teDYtlAKdtxGRET+MTNHZHIIeJDFGjZsmBw7dkwnECDAQ1YtsKAO4+MwXi569Og6js72ljx5cqee9/79+5o5+/rrrzUD6O3trVnB0MDv7t27124bAlRsJyKioDEzR2RiBw8e1ICtcuXKOisV9+/evatBEGajduzYUbdXq1ZNZ6H+8ccf0q1bN53xWrx4calTp458++23OnsUZVlMhsC24MqikCRJEi3Tzp49W7N8KK32798/VK+jb9++4uvra52EsX79elm9erVs27YtVMcjIvIkDOaITAzj1Hbv3i2TJk2SJ0+eSKZMmeS7777T4A1evXolEydOlD59+mjGrUGDBtZsHgI3lGQxExYBYOrUqaV06dKSKlUqp54bM1eXLVums1RRWkVAOGXKFG1BElIIICdPnizjxo3T42Hs3bx580J1LCIiT8OmwUREREQmxjFzRERERCbGYI6IiIjIxBjMEREREZkYgzkiIiIiE2MwR0RERGRiDOaIiIiITIzBHBEREZGJMZgjIiIiMjEGc0REREQmxmCOiIiIyMQYzBERERGZGIM5IiIiIjGv/wOH3DhytMgdjwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "consumption = load_analysis(\"tutorial_02\", \"food_group_consumption.parquet\")\n", "by_group = (\n", " consumption.groupby([\"scenario\", \"food_group\"])[\"consumption_mt\"]\n", " .sum()\n", " .unstack(\"food_group\")\n", " .reindex(scenarios)\n", ")\n", "\n", "ax = by_group.plot.bar(stacked=True, ylabel=\"Global consumption (Mt)\", rot=0)\n", "ax.set_title(\"Food-group consumption\")\n", "ax.legend(bbox_to_anchor=(1.02, 1), loc=\"upper left\", fontsize=8)\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "breakdown-md", "metadata": {}, "source": [ "## Objective breakdown with the utility term visible\n", "\n", "The `consumer_values` column represents utility gained from (or disutility of deviating from) baseline consumption, entering the minimisation as a subtraction. It is negative when the flexible diet still sits close enough to baseline that the piecewise utility is net positive; it can turn positive at high GHG prices, when the optimiser pushes consumption far enough away from baseline that the cumulative utility loss exceeds the gain. Meanwhile `ghg_cost` is negative because the model achieves net-negative emissions at these prices — the gap between `ghg_cost` columns in Tutorial 1 vs Tutorial 2 measures how much extra mitigation the flexible diet unlocks." ] }, { "cell_type": "code", "execution_count": 4, "id": "breakdown", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:10.328044Z", "iopub.status.busy": "2026-04-17T22:58:10.327731Z", "iopub.status.idle": "2026-04-17T22:58:10.343468Z", "shell.execute_reply": "2026-04-17T22:58:10.342897Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
categoryghg_costconsumer_valuescrop_productionanimal_production
scenario
baselineNaNNaN51.8140.36
ghg_mid-595.94-33.9829.1714.60
ghg_high-2672.7688.1729.514.17
\n", "
" ], "text/plain": [ "category ghg_cost consumer_values crop_production animal_production\n", "scenario \n", "baseline NaN NaN 51.81 40.36\n", "ghg_mid -595.94 -33.98 29.17 14.60\n", "ghg_high -2672.76 88.17 29.51 4.17" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "breakdown = (\n", " load_analysis(\"tutorial_02\", \"objective_breakdown.parquet\")\n", " .set_index(\"scenario\")\n", " .reindex(scenarios)\n", ")\n", "columns = [\"ghg_cost\", \"consumer_values\", \"crop_production\", \"animal_production\"]\n", "breakdown[columns].round(2)" ] }, { "cell_type": "markdown", "id": "compare-md", "metadata": {}, "source": [ "## Fixed-diet vs flexible-diet at the same GHG price\n", "\n", "Tutorial 1 and Tutorial 2 share the same GHG prices but differ in whether diet is allowed to respond. The gap between the two bars at each GHG price is a rough measure of the additional, demand-side abatement available when consumption is free to move." ] }, { "cell_type": "code", "execution_count": 5, "id": "compare", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:10.345366Z", "iopub.status.busy": "2026-04-17T22:58:10.345184Z", "iopub.status.idle": "2026-04-17T22:58:10.435432Z", "shell.execute_reply": "2026-04-17T22:58:10.435000Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario baseline ghg_mid ghg_high\n", "config \n", "tutorial_01 -3674.2 -8344.0 -9830.1\n", "tutorial_02 -3674.3 -11918.8 -13363.8\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW2hJREFUeJzt3Qe4U1X29/FFbwrSm3QL3QKCiIqoFEHGwgiKIioyIDKggCA2QKUoRYRRbBQVRVRARXAElKKAdClSFKRK74jS8z6/Pe/JPwm35F5uPff7eZ5wycnOyc7JSbKydssUCAQCBgAAgHQvc2pXAAAAAEmDwA4AAMAnCOwAAAB8gsAOAADAJwjsAAAAfILADgAAwCcI7AAAAHyCwA4AAMAnCOwAAAB8gsAOSWLs2LGWKVOmGC/du3e3zZs3u/+rXEorW7asPfTQQ4m+/+zZs13d9dej/Wm/ifHxxx/bsGHDEnSfU6dOWcWKFW3gwIHBbfPnz7c+ffrYoUOHLLHWrFnj9qHXJzmcz3FK7H337Nnj7luoUCHLnTu31alTx7777rtzyn399df24IMPWrVq1SxbtmzuNY6J7nvBBRfYH3/8YWnFc889Z6VLl7asWbPaRRdd5LbddNNN7pJcYnoP69zRtn379sV7/+SuX1yPdT6fPzt27HDP8+eff07Q/T744AMrXLiwHT16NLitf//+9sUXX9j5ePPNN5Ptc/R8jtP53PeTTz6xK6+80nLmzGklSpSwJ554wv7888+wMt9//7098sgj7nMwT548VrJkSbvjjjts6dKl5+zvxhtvdPvIqAjskKTGjBljCxYsCLt07tzZihcv7v7ftGlTXxzx559/3iZPnpxigZ0+zA8ePGj//ve/wwK7vn37nndgp30kV2B3PscpMU6cOGG33HKLC8Zef/11+/LLL61o0aLWuHFjmzNnTlhZ1eunn36yypUr2xVXXBHrPrW/WrVq2TPPPGNpgZ5Tv379XFCq5zRz5swUedz0/B4+n7orsNN7JCGB3V9//eXOl549e9qFF16YbgK71HiNP/roI7vvvvvsmmuusW+++cZ69+7tnt/dd98dVm7kyJHuc6pLly42bdo09/7Wj7hrr73WBX2hXnrpJXec1q9fbxlR1tSuAPylatWqVrNmzRhv0xvQLypUqJBij3X69GkbNGiQ+7WqX6rpgb7YlC1LyeMko0aNstWrV7ugV5k6qV+/vgvcevToYQsXLgyWfffddy1z5v/9tu3UqVOMv/w9jz/+uLVs2dJefvllK1WqlKUmPT/RD6YiRYqk2OPmyJEj3b6HU7ru77//vu3fv98effRRSw/OnDnjPmdS+jjpcZ966ilr2LChez9671cFw/fff78L9G677Ta3/Y033jjnfNcPtksuucQFzDfffHNwe7169ezyyy+3IUOG2DvvvGMZDRk7pIjINP3x48ftqquucm/Kw4cPB8vt2rXLihUr5ppR9KaXkydPui9UpeD1waPmjYcfftj27t17TnOlvrx1fwUV119/vS1atChB9Vy3bp37sND91ZTXoUOHsKaUuJoJA4GA+5WoJoVcuXJZ/vz57Z///Kf9/vvvwTJ6XlOnTrUtW7aENVfH5auvvnLNgK1btw5uU9OQPhClXLlywf14zcX6v8rE1Syt1+Kee+4Jfph6+wjNBowePdoFRWoiKVCggN111122du3ac46FmipXrVrlPqD1oawsV2zHSR/QairRh7QCVTWFvvrqq+71O1/KwukD3QvqRM2VDzzwgDsXQptTvaAuGs2aNXPP0fvyiY0ysTqGGzZsOOc2ZW+yZ88ebLZcvny53X777e446LxWE5QyJdu3b491/zqWaoYVZSJje5090bx31LyvYzFlypSw++q10/tAr2t8TW3btm1zGZa8efNavnz53PGOfH8mtn5x0XtO506ZMmXcOXr11Ve7YCBSbHX/7bffrFWrVsHXoFKlSu789Oj9pEySqF7eeySuY+5ll3TOeM3kovsdO3bMBX3efrzmYq9JO7YuLl5GXa//L7/84jK13j5C319bt251xz70+Si4OXv27DnHQsdNx16fHyo7a9asGI+TzmU990svvdSdD2oC1XPzzovzoYz5zp073f5D6XNJ77fQbH9MP2JURhl3nX+RWrdu7VpHYvr89jsCOyTLL7/QS0z0Ifzpp5+6VLoyUaIPH/1K04f1+PHjLUuWLG6b+lHoy0cfwAqK9P8ZM2a4D8W///47uM927drZ4MGDXROVmquaN2/uvmzUhBmN3bt3u196yogoQPvwww9dPw9lc6LRvn1716/j1ltvdc0t2oc+hK+77jq3b9G2unXruuAztLk6LnrO+lDTB5hHmQCvWXbSpEnB/eiLLVoKIvRLV/Rl5u3Da4YZMGCAtW3b1qpUqeIeQ00fK1eudEGTvhAjv6D/8Y9/uF/NOvZquorNxo0b3Wup46t+bnoMZSR1/M6XXrvq1aufs93bptcjMRSQ6XXUaxEXfamqbGQAoffFuHHj3BeifjDoC75BgwbuvNCx1/msoFD95uL6ItIXnY6X/Pe//3WvV2xZoWjfOwo4lRVp06aN+8HhdalQADJixAgXeMdHAb9+pH3++ecuSNH536hRoziD9YS8t2Oj80z117HUYz722GPucyCaJjh1Q1DQpnNGwY/ORZ37yoR656/eTzoWooDae4/ElYlTYK6gRz+WQul++sHXpEmT4H70eZAQev3Lly/vfhR7+/CCHwXDOkenT5/umiL1g1CfRerjHNNn2PDhw10Tpj4zFQwruI6tKbpgwYLutdE5p/NVP5Zq16593k2dXvY58j2rPq+qj3d7bJQUWLZsmfuMinTTTTe591lo3+gMIwAkgTFjxgR0OsV0OXXqVGDTpk3u/yoXasKECW77sGHDAi+88EIgc+bMgenTpwdvHz9+vLt94sSJYfdbvHix2/7mm2+662vXrnXXn3zyybByH330kdvepk2beJ9Dz549A5kyZQr8/PPPYdsbNGjg9jFr1qzgNu2vTJkywesLFixwZYYMGRJ2323btgVy5coV6NGjR3Bb06ZNw+4bn0qVKgUaN258zvZBgwa5x9SxjaTtvXv3Pme7Hjf0WHz22WfnPDc5ePCgq3eTJk3Ctm/dujWQI0eOQKtWrYLbtD/tY/To0ec8XuRxinTmzBl3fnzwwQeBLFmyBA4cOBD1fWOSLVu2QPv27c/ZPn/+fFfHjz/+OMb7Pf744+72uDz77LPu/Pzzzz/jLHf33XcHLr74YvfcPNOmTXP7nzJliru+ZMkSd/2LL74IJJReV9137969Ydvr1avnLgl978i+fftcnWvVqhVYtmxZIHfu3IEHHngg7H4xvYe9usT2vhs3blyS1C8mOkdz5swZuOuuu8K2z5s3z90/9LFiqnujRo3ccz58+HDY/Tt16uT2652LXn0iP7ti432m/fTTT+fclidPnhg/i7zjGNvnauh7vEqVKmHPzfP000+7sgsXLgzb/thjj7nPtfXr14cdiwoVKgROnjwZVja2z+lQp0+fdve79NJLw173aO4bqV+/fu4+O3fuPOe2hg0bBi677LI473///fcHsmbN6t5P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NCUeDWyYMWOGbd++3WXgND+dAjhdPOXKlbNp06bZ7Nmz3UTIL730kssYMocdAABITWm+KTax1GwauVqEl9n7+uuv47xvtWrVbO7cuXGW0ZQoy5YtO+96AgAAJJUMlbEDAADwMwI7AAAAnyCwAwAA8AkCOwAAAJ8gsAMAAPAJAjsAAACfILADAADwCQI7AAAAnzivwO7EiRNJVxMAAACkXGD37bffujVUtf6qFrvPnTu3XXjhhW4Vhn79+tmOHTvOrzYAAABI3sDuiy++sMsvv9zatGljmTNntqeeesomTZrkAr1Ro0a5wG7mzJlWvnx569Chg+3duzfxNQIAAEDyrRXbv39/Gzx4sDVt2tQFdpFatGjh/v7xxx/2+uuv2wcffGDdunVLXI0AAACQfIHdokWLotpZyZIl7dVXX01cTQAAAHBeGBULAACQkTJ2obp27Rp12aFDhyZ09wAAAEipwG758uW2bNkyO336tBtQIb/++qtlyZLFrr766mC5TJkyJbZOAAAASInArlmzZm6Kk/fff9/y58/vth08eNAefvhhu+GGGxg0AQAAkF762A0ZMsQGDBgQDOpE/3/55ZfdbQAAAEgngd2RI0ds9+7d52zfs2ePHT16NKnqBQAAgOQO7O666y7X7Pr555/b9u3b3UX/b9u2rd19990J3R0AAABSq4/dW2+9Zd27d7cHHnjATp069b+dZM3qArtBgwYlVb0AAACQ3IGd1od98803XRC3ceNGCwQCdskll1iePHkSuisAAACkhQmKd+7c6S6XXXaZC+oU4AEAACAdBXb79++3W265xQV0TZo0ccGdPProo0x1AgAAkJ4CuyeffNKyZctmW7dudc2ynpYtW9p///vfpK4fAAAAkquP3fTp0+3bb7+1iy++OGz7pZdealu2bEno7gAAAJBaGbtjx46FZeo8+/btsxw5ciRVvQAAAJDcgd2NN95oH3zwQdiasGfPnnWjZOvXr5/Q3QEAACC1mmIVwN100022ZMkSO3nypPXo0cN++eUXO3DggM2bNy+p6gUAAIDkzthVrlzZVq5cabVq1bIGDRq4plmtOLF8+XKrUKFCQncHAACA1MrYSbFixaxv375JVQcAAACk5gTFAAAASKeBndaFVX86LR+mZtgxY8aE3b57927LkiVLctQRAAAASRnY9evXz42G7dChgzVs2NBNVNy+ffuwMiwrBgAAkA762H300Uf23nvv2e233+6uP/zww3bbbbe5v6NHjw5OfQIAAIA0nrH7448/rGrVqsHrGgE7e/ZsW7BggbVu3drOnDmTXHUEAABAUgZ2Ggm7cePGsG0lSpSw77//3hYvXmxt2rSJdlcAAABIzcDu5ptvto8//vic7V5wt3nz5qSuGwAAAJKjj93zzz9v69ati/G2kiVL2ty5c2369OkJeWwAAACkRmBXpkwZd4lN8eLFaY4FAABITxMUf/bZZ24JMQ2kqFatmvv/559/njy1AwAAQNIHdmfPnrWWLVu6y5o1a9xExeXLl7dffvnFbbv33nuZxw4AACA9NMUOGzbMZs6caV999VVwLjuPtmk+u9dff92eeOKJ5KgnAAAAkipjN3bsWBs0aNA5QZ384x//sFdffdVGjRoV7e4AAACQWoHdb7/9Zrfeemust+u2DRs2WGqbOnWq1a5d23LlymWFChVyfQBDbd261Zo1a2Z58uRxt3fu3NlOnjwZVmbVqlVWr149tw+N+H3xxRfPaWaeM2eO1ahRw3LmzOmapN96660UeX4AAADn3RSrIOfQoUNWunTpGG8/cuSIK5OaJk6caO3atbP+/fu7efcUjClI82h1jKZNm1rhwoXtxx9/tP3797uRvCo3YsSI4PNo0KCB1a9f3028/Ouvv9pDDz3kAsFu3bq5Mps2bbImTZq4xxo3bpzNmzfPOnbs6PbbvHnzVHv+AAAgY4s6sKtTp46NHDnSXWLyxhtvuDKp5fTp09alSxfXXNy2bdvg9ssvvzz4f82zp4Ef27ZtcxMry5AhQ1zg1q9fP8ubN69bE/f48eOu6TlHjhxu9K+Cu6FDh1rXrl3derjKzinAVb9DqVSpki1ZssQGDx5MYAcAANJ+U+yzzz7r+tC1aNHCFi1a5DJbhw8ftp9++snuueceGz16tD3zzDOWWpYtW+bWs82cObNdddVVbl692267zY3a9WhdWwVqXlAnjRo1shMnTtjSpUuDZdQMq6AutMyOHTuCq2uoTMOGDcMeX2UU3J06dSrG+ukxdMxCLwAAAKkS2F133XU2YcIEmzVrlsvM5c+f3woUKGB169Z128aPH+/+n1p+//1397dPnz723HPP2ddff+3qqCDtwIED7rZdu3ZZ0aJFw+6nMtmzZ3e3xVbGux5fGWUN9+3bF2P9BgwYYPny5QteSpUqlWTPHQAAIMETFN911122ZcsWNyGxAhVd1K9NAxKSq2+ZAjU1f8Z1UaZM8+x5mUXVRQMbxowZ427XpMoeXY+kPnah2yPLeAMnElomVK9evVyG07uoORgAACBV+th5cufO7QK8lNKpUyc3+XFcypYta0ePHnX/r1y5cnC7mlM1YlWBpxQrVswWLlwYdt+DBw+65lMvA6cyXmbOs2fPHvc3vjJZs2a1ggULxlhH1SW0eRcAACDVMnbff/+9C5pi6humDFSVKlXshx9+SOr6uSlJKlasGOdFU44oQ6fAaf369cH7KmBTvzhvjVs1Ia9evdp27twZNqBC99P9vTJz584NmwJFZdQvTwGkV2bGjBlh9VSZmjVrWrZs2ZL8GAAAACRpYKcRoJreQyNHI6nPWPv27d3I0dSienXo0MF69+7tgiwFeI899pi7TYM7RAMeFJy2bt3ali9fbt99951179497Hm1atXKBXoaKasgcPLkyW76FG9ErOhx1CStbWvXrnUDRzSwRPsCAABI84HdihUrrHHjxrHerqDJG1maWjTViZptFbhdc801LvhSplEDJCRLlixuAmNl+DTQQyN877zzTjdNSWiQqmzc9u3bXQZO89MpgNPFU65cOZs2bZrNnj3brrzySnvppZds+PDhTHUCAADSRx+73bt3x9nMqP5le/futdSk+ilICw3UImn+OY2YjUu1atVcc2xcNNpWU6wAAACku4ydltYKXcUh0sqVK93ccQAAAEjjgZ2W0HrhhRfcqgyR/v77b9e37fbbb0/q+gEAACCpm2I16e+kSZPssssuc1OQaKkuDSbQ4AEtJ6Z1WDWHHAAAANJ4YKc53ObPn+9Gmmqy3dAJebWc1ptvvnnOagwAAABIoxMUaz44jQbVpL4bNmxwwd2ll14aHHUKAACAdLKkmDzyyCNuBKymE6lVq1YwqDt27Ji7DQAAAOkksHv//ffdYIlI2vbBBx8kVb0AAACQXE2xWkpMTa+6aF1WTfLr0cAJNdEWKVIkoY8PAACAlA7sLrroIjdQQheNjI2k7X379k2qegEAACC5ArtZs2a5bN3NN99sEydOtAIFCgRvy549uxtYUaJEiYQ+PgAAAFI6sNMSWrJp0yYrVaqUZc6c4O55AAAASAuB3datW4NNrtu3b49zLVYAAACk4cCuXLlywf+H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ihcv7so8/vjjwZHBN910kw0ZMsTmzp3rmmF1XSKbYtetW2fXX3+95cyZ0ypXrmwzZ8505b/44gteYQBAhkHGDuetV69e9u6779prr73mgitNtKtAS33jGjdubNdee61rOt2zZ489+uij1qlTJxs7dmzw/rNmzXJBnf5u2LDBWrZsaVdeeaW1a9fOJk2aZE8//bStXr3a/T+mlRkUWCo4VEC5cOFCO3r0qHXr1o1XFgCQ4RDY4bwoiHr99dftP//5j7Vp08Ztq1ChggvwFOz9/fff9sEHHwT7w6lcs2bNXIavaNGiblv+/Pnd9ixZsljFihWtadOm9t1337nArkCBAm4+PwV0xYoVi7EO06dPd821s2fPDpZRxrBBgwa8ugCADIWmWJyXtWvX2okTJ+yWW26J8bYrrrgibJBD3bp1XYZt/fr1wW1VqlRxQZ1H2Ttl96KlfZUqVSos8KtVq1YinxEAAOkXgR3Oi/rOxSYQCMQ68W7o9sgltHSbgr9oxfU4AABkJOkmsFPT2nXXXeea5S666KJzbl+xYoXdd999LnOjYEOjKNVEGEmd+evVq+fKlCxZ0l588UUXGISaM2eO1ahRw3XEL1++vL311lvn7GfixImuk74GC+jv5MmTLSO69NJL3bFU02kkHZeff/7Zjh07Ftw2b948y5w5s1122WVJVgc1327dutV2794d3KY+fQAAZDTpJrA7efKk3XPPPfbYY4/FePvSpUvdFBjjxo2zX375xZ599lnXqV99tzxHjhxx/a5KlCjhvvhHjBjhRmMOHTo0WGbTpk3WpEkTu+GGG2z58uX2zDPPWOfOnV0g51mwYIHr4N+6dWsXUOpvixYtXMf9jEbBb8+ePa1Hjx6uL536uv300082atQou//++93t6nunwQ8aHPHvf//bHS+vf11S0Guqfn16nJUrV7rgUa+/kMkDAGQk6WbwRN++fd3f0NGUoR555JGw68q0KQDTSEqNwpSPPvrIjh8/7vahTJvmRfv1119dYNe1a1cXBCg7p9GV3lQayvwtWbLEBYBa/UB0m4IJBY6iv8ryafv48eMto3n++ecta9as9sILL9iOHTtcH7kOHTq47Oq3335rXbp0sWuuucZd1zEMDaSTgvrnaVoTjbjV4+i1HzRokBukocASSHf6HE7tGgBIp9JNYJcYhw8fdqMqPQr01AyroM7TqFEjF5ht3rzZypUr58o0bNgwbD8qowyU5lZTfzCVefLJJ88pk1GXuFLTqjJkXpYsVLVq1ez777+P9b4xBeqRxzGm46rXK7I59scffwxeV9ZONLceAAAZhW8DOwVfn376qU2dOjW4bdeuXW5i21Bek6BuU2Cnv5HNhLp++vRp27dvn8tGxVZG22OjkaO6hDYLI+moj+MFF1zg+vxpLjxlCTUCV020AABkFKnax65Pnz6u+TOui5pBE0p97O644w7XNBg5l1lknytv4ETo9sSWias/14ABA9wap95FgzyQtPPpdezY0WXutJqFmmS//PJLDjEAIENJ1Yyd+r7de++9cZaJzLDFZ82aNW4JK01u+9xzz4XdpnnOIrNq3nxpXgYutjLqQ6blruIqE9eAADX3qh9faMaO4C7pPPjgg+4CAEBGlqqBXaFChdwlqShTp6BOoyO9tUpD1alTx41y1Qhbb2kqrVqgUbJeAKkyU6ZMCbufytSsWTM435rKzJgxI6yfncpoOpbYqF9faN8+AACADDvdieYp05xo+nvmzBn3f128BeUV1NWvX981vSozpoyaLnv37g3uo1WrVi64UlOdpt9Qv6z+/fsHR8SKRnNu2bLFbdPKCaNHj3YDJ7p37x7cj/pvKZDTslhaE1V/tej8E088kQpHBgAAIJ0Fduovd9VVV1nv3r1dMKf/6+L1wfvss89cEKcpTTTAwbuor5VHfduUadu+fbvLwKlPlgK40CZSDaCYNm2aW3dUC9G/9NJLNnz48OBUJ6LM3CeffGJjxoyx6tWru5GdEyZMsNq1a6fwUQEAAPg/mQKRyy4gRaiPnQJNTcmSN2/esNs0154mSlaQyTxsGQOvOQBf6JPP0o0+h30RM6TbjB0AAADiRmAHAADgEwR28J2bbropQQNZ1J9Sg2cOHTqUrPUCACC5+XblCb8q+/T/raSREjYPbJrgoEqDThKyvJomqtZarxrlnBS0PrA3NU1yWLVqlZuDcdGiRW7Juvbt27v1cr2R1Tt37rRu3brZ0qVL7bfffrPOnTtn2OXmAAApi4wdfENr+YqCrQsvvDDZOrBqSh3Nfbh48WIbMWKEDR482IYOHRoso6XjChcu7NbOveKKK5KlHgAAxITADklG8wPOmTPHXn/99eCScJoK5qKLLgorp+ycl93S7X379rUVK1aE3Uc0Z6GWhtMasBoF1KJFC9u9e3dYpk/ZQc01WL58eTdHoQZ5RzbFjhs3zk1vo2BPq4ZoPkNvxZGE0nQ6GsGqOlatWtXuvvtuN+m1AjtvgLkmu9Yx0EoYGsUEAEBKIbBDklEwo1U5tJybmiN10WTScWnZsqVrtqxSpUrwPtqmIOnOO++0AwcOuGBR8w9u3LjR3RZqw4YN9umnn9rEiRNjbcrVSiOaj1DBo4JKTSWjIDQxFixYYPXq1QtbRaRRo0a2Y8cO27x5c6L2CQBAUqGPHZKMslNaqi137twuMyZZsmSJ8z65cuVyGTmtxevdRxTIrVy50gVh3pq6H374oQsA1QTqTTytoE3b1fQZm0ceeST4f2X2NOF0rVq13ETXeuyE0GomkesXe2sE6zbNPQgAQGohY4c0Scu5KaDzgjqpXLmya9bVbZ4yZcrEGdTJ8uXLXZOuyqo5Vk21XlNvYnjNyB6vCTZyOwAAKY3ADsl7gmXOHAx8Igc5xEX3iSlQityeJ0+eOPdz7Ngxa9iwocvMqa+dsn1aI9jL9iWUsorKzIXy+ut5mTsAAFILgR2SlJpiQ/vVKZt29OhRF2B5IvvCRd7Hy84po7Zt27bgtjVr1rjlVCpVqhR1fdatW2f79u2zgQMH2g033GAVK1ZM9MAJUR/CuXPnhgWF06dPd6NkI5toAQBIaQR2SFIKbhYuXOgGEiigql27tutzp5GjGujw8ccfB0e9ht5HfekU8Ok+mi7k1ltvterVq9v9999vy5Ytc3PGaZSpBi5ohGu0Spcu7QJHTUvy+++/21dffeUGUiSWRtRq4IQGX6xevdpl//r3729du3YNyyTqueiifnx79+51/1dgCgBAciKwQ5Lq3r27GzChjJuydZr3TU2g06ZNs2rVqtn48ePdNCWhmjdvbo0bN7b69eu7+6iMgiSNYM2fP7/deOONLtDTwIcJEyYkqD7anwLJzz77zNVJmTvNO3c+A0Q0sGP79u0uwOzYsaML6nQJddVVV7mLJilWMKv/N2nSJNGPCwBANDIFIjtAIUUo4FGQoKZFzdEWSvOkKYOlEZY5c+bkFckAeM0B+EKfdDR3Z5/D5oeYIRIZOwAAAJ8gsANC3HbbbW4EbUwX9aUDACAtY4JiIMR7771nf//9d4zHRGvQAgCQlhHYASFKlizJ8QAApFs0xQIAAPgEgR0AAIBPENgBAAD4BIEdAACATxDYAQAA+ASBHXznpptusieeeCLq8rNnz3ZLmB06dChZ6wUAQHJjupP0JqWXa0ngkisKqq688kobNmxY9A/Rp49bF/bnn3+2pDBp0iTLli2bJZdVq1ZZp06dbNGiRW5uu/bt29vzzz/vgkPv8UeOHOmez4kTJ6xKlSruOTZq1CjZ6gQAgJCxg2+cOnXK/VWwdeGFFybben0NGjSwEiVK2OLFi23EiBE2ePBgGzp0aLDM3LlzXZlp06bZ0qVLrX79+tasWTNbvnx5stQJAAAPgR2SzEMPPWRz5syx119/3WWvdBk7dqxddNFFYeWUnfOyW7q9b9++tmLFirD7yNatW+2OO+5wy3lp0eMWLVrY7t27g/tRFkzZwdGjR1v58uUtR44cFggEzmmKHTdunNWsWdMFe8WKFbNWrVrZnj17EvUcP/roIzt+/LirY9WqVe3uu++2Z555xgV2emxRtrJHjx52zTXX2KWXXuqWItPfKVOmJOoxAQCIFoEdkowCujp16li7du1s586d7nLmzJk479OyZUvr1q2ba6707qNtCpLuvPNOO3DggAsWZ8yYYRs3bnS3hdqwYYN9+umnNnHixFibck+ePGkvvfSSCx4VVG7atMkFoYmxYMECq1evngsiPWpi3bFjh23evDnG+5w9e9aOHj3KkmQAgGRHHzskmXz58ln27Nktd+7cLjMmWbJkifM+uXLlchm5rFmzBu8jCuRWrlzpgrBSpUq5bR9++KELANUEqmyYF7Rpe+HChWN9jEceeST4f2X2hg8fbrVq1bI///zTPXZC7Nq1y8qWLRu2rWjRosHbypUrd859hgwZYseOHXMZRwAAkhMZO6RJa9eudQGdF9RJ5cqVXbOubvOUKVMmzqBO1LdNTboqq+ZYNdV6Tb2J4TUje7wm2MjtMn78eNdkPGHCBCtSpEiiHg8AgGgR2CFZZc6cORj4RA5yiIvuE1OgFLk9T548ce5HmbKGDRu6zJz62inbN3ny5GC2L6GUVVRmLpTXX8/L3HkUzLVt29Y1Fd96660JfiwAABKKplgkKTXFhvarUzZN/csUYHlBWGRfuMj7eNk5ZdS2bdsWzNqtWbPGDh8+bJUqVYq6PuvWrbN9+/bZwIEDg/tZsmRJop+f+hBqsISCQtVbpk+f7kbJhjbRKlOnJmD9bdq0aaIfDwDSlQROkYWkR8YOSUrBzcKFC91AAgVUtWvXdn3uFAxpoMPHH38cHPUaeh/1pVPAp/to7jdluKpXr27333+/LVu2zM0Z9+CDD7qBCxrhGq3SpUu7AEzTkvz+++/21VdfuYEUiaURtRo4ocEXq1evdtk/jXrt2rVrMJOoYE51Vd+6a6+91mX4dFFQCgBAciKwQ5Lq3r27GzChjJuydZr3TU2gmtOtWrVqwT5noZo3b26NGzd2873pPiqjIEkjWPPnz2833nijC/Q08EHNmwmh/SmQ/Oyzz1ydlLnTvHPnM0BEAzu2b9/uAsyOHTu6oE4Xz9tvv22nT5+2xx9/3IoXLx68dOnSJdGPCwBANDIFIjtAIUUo4FGQoCyO5mgLpXnSlMHSCMucOXPyimQAvOYAgMTEDJHI2AEAAPgEgR0Q4rbbbnMjaGO6qC8dAABpGaNigRDvvfee/f333zEeE61BCwBAWkZgB4QoWbIkxwMAkG7RFAsAAOATBHZpGAOWMw5eawBAUiCwS4OyZcvm/v7111+pXRWkEG95M80BCABAYtHHLg3Sl7sWu/fWINXKDTGtmwp/OHv2rO3du9e9zlmz8pYEACQe3yJplBabFy+4g79lzpzZLX9GAA8AyBCBXb9+/Wzq1KluPVGt/Xno0KFYy+7fv9+uuOIK++OPP+zgwYMu++VZtWqVderUya09qukr2rdvb88//3zYF+qcOXPcElG//PKLW9y9R48e1qFDh7DHmDhxorvfxo0brUKFCq5+d911V5I9X9VHy1AVKVLETp06lWT7Rdqkc1rBHQAAGSKwUx+ke+65x+rUqWOjRo2Ks2zbtm3dAvIK7CKX5GjQoIFbk3Tx4sX266+/usXc8+TJY926dXNltJRXkyZNrF27dm6N03nz5rn1QLXmqNY0lQULFljLli3dYvIK5rQQfIsWLezHH390i94ndbMs/a4AAIAv14rVgu5PPPFErBm7kSNHuoXiX3jhBbvlllvCMna6rVevXrZ7927LkSOH26ZF4UeMGOEWdVeWrGfPnvbVV1/Z2rVrg/tUtm7FihUuoBMFdQoSv/nmm2AZLWKvBeu1gH1Sr/sGAAAyriMZda3YNWvW2IsvvmgffPBBjM1aCszq1asXDOqkUaNGtmPHDtu8eXOwTMOGDcPupzJLliwJNonGVmb+/PnJ9MwAAADi55vA7sSJE3bffffZoEGDXCf0mOzatcuKFi0ats27rtviKnP69Gnbt29fnGW8fcRWP0XcoRcAAADf9LHr06eP9e3bN84y6gtXs2bNePelJtZKlSrZAw88EGe5yFGHXkt06PbElolrROOAAQNifK4EeAAAIC5erBBN77lUDew0OvXee++Ns0zZsmWj2tf333/vRrx+/vnnYU++UKFC9uyzz7qgSlOIRGbVvOlEvAxcbGU0v1jBggXjLBOZxYsMPDXS1qOBHZUrV7ZSpUpF9fwAAEDGdvToUdfXLs0Gdgq6dEkKmn7k77//Dsv0PfLII/bDDz+46UhEI2qfeeYZN8JW00vI9OnT3ZQmXgCpMlOmTAnbt8ooa+itCKEyM2bMsCeffDKszHXXXRdr/dSvL7Rv3wUXXGDbtm2zCy+8kLnLkunXjYJmHWMGpyA94dxFesW5m3yUrFJQp3jFN9OdbN261Q4cOOD+njlzxs1nJ5dccokLkrzgzeP1h1PzrDcqtlWrVi5zpylOFOD99ttv1r9/fzeC1mtG1QjY//znPy67pilPNFBC06uEjnbt0qWL3XjjjfbKK6/YHXfcYV9++aXNnDnTTXcSLQ3uuPjii5Pk2CB2CuoI7JAece4iveLcTR7xZeqCAulEmzZt1LZ6zmXWrFkxltd23X7w4MGw7StXrgzccMMNgRw5cgSKFSsW6NOnT+Ds2bNhZWbPnh246qqrAtmzZw+ULVs2MHLkyHP2/9lnnwUuv/zyQLZs2QIVK1YMTJw4MYmfMc7H4cOH3euvv0B6wrmL9IpzN21Id/PYAdFgnkCkV5y7SK84d9MG30x3AoRSf8bevXuH9WsE0gPOXaRXnLtpAxk7AAAAnyBjBwAA4BMEdgAAAD5BYIcUc9NNN9kTTzyRakdc09zceeedaaY+8A/Ngzls2DBLa6I5x9Nq3ZF8kvs1nz17tptC7NChQ3GuPHXllVcmaL98Zkcn3cxjByS1SZMmBSedBvyIcxxpVffu3e3f//53alfDlwjskGEVKFAgtasAJCvOcaRVWlhAFyQ9mmKRok6fPu3WCNZqIFp797nnnguu6ztu3Di3dJuWWdN6vFopxFvLVw4ePGj333+/FS5c2HLlymWXXnqpjRkzJmz93ZYtW1r+/PndvrUqyObNm6NO66t5QiuRaCk61aF06dL2zjvvhN0noY8Bf9BSPjr38uTJY8WLF7fXXnvtnPPnr7/+ivPcmT9/vmt6ypkzpzvPv/jiC9dc5a2iE03T1rfffmtXXXWVO/9vvvlm9/745ptv3Ao7mu3/vvvuc/XwRNZR5Zs1a+buX65cOfvoo4+S7Bgh7Ujt89WzdOlSd9/cuXO7JTfXr18fa1Osvhs6d+4c/G7o2bOntWnTJqz7jJw9e9Z69OjhfrToe0L7QTgCO6So999/37JmzWoLFy604cOHuw+c9957z92mNXxfeuklW7FihfsQ2bRpk+sX53n++edtzZo17ots7dq1NnLkyOBaw/qQql+/vvsFOHfuXLe8m/7fuHFjt99oDRkyxH0QLV++3Dp27GiPPfaYrVu3LkkfA+mPlhicN2+effXVV26daK1BvWzZsqjPHX3RKqCqVq2au5/Oc31xJZS+xLTkob50tQ5yixYtXF+pjz/+2KZOnerqNmLEiFjvr/eTfoh8//339vnnn9ubb74Z9uMJ/pBWztdnn33WPc6SJUvc574CydhoiU790NCPddVdkx3reyCm7xAFrPoOefXVV+3FF190zxEhUnvpC2Qc9erVC1SqVClsCbeePXu6bTFZtGiRWxbs6NGj7nqzZs0CDz/8cIxlR40a5ZZ4C933iRMnArly5Qp8++23wWXp7rjjjrD6dOnSJXi9TJkygQceeCB4XfsqUqRIcEm5aB4D/nPkyBG3dKCWEfQcOnQokDt37uD5E9+5o78FCxYM/P3338Ey7777rju/ly9fHm8dvCUSZ86cGdw2YMAAt23jxo3Bbe3btw80atQoxnN8/fr1rvxPP/0UvH3t2rVu22uvvZaoY4O0J62er1OnTnXbvH327t07cMUVVwRvL1q0aGDQoEHB66dPnw6ULl36nM/s66+/PuyxrrnmGvc9gv9Dxg4p6tprr3XpfE+dOnXst99+szNnzrhfjmraLFOmjGseUNOBbN261f3VL8pPPvnEpe+VilfWIjTlv2HDBnc/r++GUvXHjx+3jRs3Rl2/6tWrB/+veirV72U0kuoxkL78/vvvdurUKatVq1bYYtyXX3551OeOmqB0u5q1PKH7i1boYxQtWtQ1cZUvXz5sW2wZOGW5lTVRlsZTsWJF1/QF/0ir56uahCWm8/Pw4cO2e/fusMfIkiWL1ahRI859evsl6xyOwRNIExQcNWzY0F3U10796BTQNWrUKNjMedttt9mWLVtck9PMmTPtlltusccff9wGDx7s+l3oQyCmPkPaV7QiR8nqA0/7lqR6DKQvXh/Q0B8kodujOXdUNr77RyP0MbS/uB4z2ucBf0nL56vEdn5GU+f46o3/IWOHFPXTTz+dc12DINS3Y9++fTZw4EC74YYbXCYhpl9hCqDUT0jBn/oWeR1+r776apf5K1KkiF1yySVhF/1aTQop8RhIeypUqOC+TBYtWhTcpv4/OheipfN55cqVduLEieA29TtKSRpgoQ7qoY+rzExcc40h/UmP56s+P5VtDq2z14qDhCOwQ4pSh2917NUXyvjx411H7y5durhRWdmzZ3fX1ZSgTr/qsBvqhRdesC+//NI1h/7yyy/29ddfuy8r0QgwDaRQU646CmvgxZw5c9y+t2/fniR1T4nHQNqjpneNznvqqads1qxZ7txTJ/DMmTNHnf3SCG9lFf71r3+5JlGNblWmOSUzaGqK00Cfdu3auY7n6lrw6KOPuhGy8I/0er5qTrsBAwa4z3h9P+hzVTMhkGFOOAI7pKgHH3zQ/v77b9eXQs2oejPrw0OZuLFjx9pnn31mlStXdpk774PEo8CvV69ero/FjTfe6PpgqM+dqK+RRqoqQLz77rtdwKcPMz2WpoFICinxGEibhg4d6vqD3n777Xbrrbda3bp13esf2gcpLjo/pkyZ4qaKUB9RjRbUDxWJdh9JQSMOS5UqZfXq1XPnsN57ykDDX9Lj+apRt5quR98Rqrv6MKsrTkq+P/wik0ZQpHYlACA9OXbsmJUsWdJN5dC2bdtE7UN9NR9++GHXcZysGZJTejxflTFUMKopfSJbbxA3Bk8AQDzU10f9QJVp1heb5s4SNctH64MPPnAjWPUFq7kalaHQlxZBHZJaejxfNTBu+vTpLpusvn2ar1HdXdQsjIShKRYAoqCuAVdccYVr2lIGRP0svQmyo7Fr1y574IEHXBbiySeftHvuuSc4+KdDhw7BKXQiL7oN8Pv5qj6A6o5zzTXXuKbjVatWudkPvH7UiB5NsQCQyjQCXCMXY+vvRD84pCWcr2kbgR0AAIBP0BQLAADgEwR2AAAAPkFgBwAA4BMEdgAAAD5BYAcAPqSpIy666KLUrgaAFMaoWADwIS11d/ToUaZKATIYAjsA8JlTp05ZtmzZUrsaAFIBTbEAEI/PP//cqlWr5pZTKliwYHA2fxk9erRVqVLFcuTIYcWLF7dOnToF76flnP71r3+5rJkmGr755pvd8kyePn36uEXWP/zwQytbtqzly5fP7r33Xpdp8/z3v/+166+/3jWr6rG1sPvGjRuDt2/evNkyZcpkn376qd10001u0fRx48bF2BQ7cuRIq1ChgmXPnt0uv/xy97gA/IXADgDisHPnTrvvvvvskUcesbVr19rs2bPt7rvvtkAg4AKlxx9/3AVvWgLpq6++sksuucTdT7c3bdrULc00bdo0W7p0qV199dV2yy232IEDB4L7V5D2xRdf2Ndff+0uc+bMsYEDBwZvVwDZtWtXW7x4sX333Xdu6aW77rrLLZIeSmt5du7c2dWxUaNG5zyPyZMnW5cuXaxbt262evVqa9++vVvUfdasWbz+gJ8EAACxWrp0aUAflZs3bz7nthIlSgSeffbZGO/33XffBfLmzRs4fvx42PYKFSoE3n77bff/3r17B3Lnzh04cuRI8PannnoqULt27Vjrs2fPHlefVatWueubNm1y14cNGxZWbsyYMYF8+fIFr1933XWBdu3ahZW55557Ak2aNOHVB3yEjB0AxEELqSvLpqZYLYT+7rvv2sGDB916mTt27HC3xUQZuj///NM1n4Yukr5p06awplQ1wV544YXB62rO1b49KtuqVSsrX768a84tV66c275169awx6tZs2acr6MyeVpcPZSuazsA/8ia2hUAgLQsS5YsNmPGDJs/f75Nnz7dRowYYc8++6xrFo2LmkoVpKnpNlJo37fIQQ7qLxfazNqsWTMrVaqUCyhLlCjhbqtataqdPHky7H558uSJ97lo36HUXBy5DUD6RsYOAOKh4EfZrb59+9ry5cvd4AMFe8q2xRbgqT+d+tdlzZrV9bsLvRQqVCiqY75//36XUXvuuedcZrBSpUouW5gYuu+PP/4Ytk3BqrYD8A8ydgAQh4ULF7rgrWHDhm50q67v3bvXBUQa1dqhQwe3/bbbbnOjWefNm2f//ve/3cjZOnXq2J133mmvvPKKG4WqplsNpNC2+JpOJX/+/K4p95133nHZPzW/Pv3004l6vZ566ilr0aJFcADHlClTbNKkSTZz5kxef8BHCOwAIA7q1zZ37lwbNmyYHTlyxMqUKWNDhgxxgZwcP37cXnvtNevevbvLxP3zn/8MZvkUxKnZViNqFQwWK1bMbrzxRitatGhUx1wjYD/55BM32lXNrwoOhw8f7qY1SSgFk6+//roNGjTI7U999caMGZOofQFIu5igGAAAwCfoYwcAAOATBHYAAAA+QWAHAADgEwR2AAAAPkFgBwAA4BMEdgAAAD5BYAcAAOATBHYAAAA+QWAHAADgEwR2AAAAPkFgBwAA4BMEdgAAAOYP/w9rt+tl3i5KDgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "emissions = pd.concat(\n", " [\n", " load_analysis(\"tutorial_01\", \"net_emissions.parquet\"),\n", " load_analysis(\"tutorial_02\", \"net_emissions.parquet\"),\n", " ]\n", ")\n", "totals = (\n", " emissions.groupby([\"config\", \"scenario\"])[\"mtco2eq\"]\n", " .sum()\n", " .unstack(\"scenario\")\n", " .reindex(columns=scenarios)\n", ")\n", "print(totals.round(1))\n", "\n", "ax = totals.T.plot.bar(ylabel=\"Net GHG (MtCO2eq)\", rot=0)\n", "ax.set_title(\"Fixed-diet (tutorial_01) vs flexible-diet (tutorial_02)\")\n", "plt.tight_layout()" ] } ], "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.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }