From 200a0bd6943af7ddeeb5f9f65fb4b9a3815dedd8 Mon Sep 17 00:00:00 2001 From: aeturrell Date: Thu, 7 Sep 2023 23:38:18 +0100 Subject: [PATCH] Update documentation --- ...f4ffa33da7842bc8ab8fadbab3d7ba0d56f411.svg | 594 + ...8c41998e833e828fa02f2e3bf7f262ee57e3ab.svg | 627 + ...cda922035d1cf889c4fc797e59abe728c39e89.svg | 2226 + _sources/auto-research-outputs.ipynb | 141 +- _sources/code-best-practice.ipynb | 50 +- _sources/coming-from-excel.ipynb | 14 +- _sources/coming-from-matlab.ipynb | 2 +- _sources/coming-from-r.ipynb | 2 +- _sources/coming-from-stata.ipynb | 2 +- _sources/craft-referee.ipynb | 4 +- _sources/craft-referee.md | 2 + _sources/craft-research-blogs.ipynb | 33 +- _sources/data-advanced.ipynb | 545 +- _sources/data-read-and-write.ipynb | 118 +- _sources/data-sharing.ipynb | 2 +- _sources/econmt-regression.ipynb | 36748 +--------------- _sources/vis-dashboards.ipynb | 2 +- _sources/wrkflow-command-line.ipynb | 2 +- _sources/wrkflow-environments.ipynb | 194 +- _sources/wrkflow-markdown.ipynb | 2 +- _sources/wrkflow-version-control.ipynb | 30 +- _sources/zreferences.ipynb | 2 +- auto-research-outputs.html | 2 +- code-advanced.html | 2 +- code-advcd-best-practice.html | 2 +- code-basics.html | 2 +- code-best-practice.html | 2 +- code-further-advanced.html | 2 +- code-preliminaries.html | 2 +- code-where.html | 2 +- coming-from-excel.html | 2 +- coming-from-matlab.html | 2 +- coming-from-r.html | 2 +- coming-from-stata.html | 2 +- craft-referee.html | 5 +- craft-research-blogs.html | 2 +- data-analysis-quickstart.html | 2 +- data-boolean.html | 2 +- data-databases.html | 6 +- data-exploratory-analysis.html | 6 +- data-extraction.html | 2 +- data-intro.html | 2 +- data-joining-data.html | 2 +- data-numbers.html | 2 +- data-read-and-write.html | 2 +- data-sharing.html | 6 +- data-spreadsheets.html | 2 +- econmt-bayes-bambi.html | 2 +- econmt-bayesian.html | 2 +- econmt-probability-random.html | 2 +- econmt-statistics.html | 2 +- geo-intro.html | 2 +- geo-vis.html | 2 +- maths-abstract.html | 115 +- maths-numerical.html | 86 +- searchindex.js | 2 +- text-intro.html | 2 +- text-nlp.html | 2 +- text-regex.html | 2 +- time-fcasts-env.html | 2 +- time-intro.html | 2 +- time-series.html | 2 +- vis-animation.html | 2 +- vis-common-plots.html | 2 +- vis-dashboards.html | 2 +- vis-intro.html | 2 +- vis-letsplot.html | 2 +- vis-matplotlib.html | 2 +- vis-narrative.html | 2 +- vis-plotnine.html | 2 +- vis-seaborn.html | 2 +- vis-tables.html | 2 +- workflow-basics.html | 2 +- wrkflow-command-line.html | 2 +- wrkflow-environments.html | 2 +- wrkflow-markdown.html | 2 +- wrkflow-rap.html | 2 +- wrkflow-version-control.html | 2 +- zreferences.html | 14 +- 79 files changed, 3933 insertions(+), 37747 deletions(-) create mode 100644 _images/75c7b06e5bb0ce0642e3c55ef9f4ffa33da7842bc8ab8fadbab3d7ba0d56f411.svg create mode 100644 _images/7fcc7da8cc07b3d4bba344c0908c41998e833e828fa02f2e3bf7f262ee57e3ab.svg create mode 100644 _images/f6bc8e0ed01b4b5b0f146a2902cda922035d1cf889c4fc797e59abe728c39e89.svg diff --git a/_images/75c7b06e5bb0ce0642e3c55ef9f4ffa33da7842bc8ab8fadbab3d7ba0d56f411.svg b/_images/75c7b06e5bb0ce0642e3c55ef9f4ffa33da7842bc8ab8fadbab3d7ba0d56f411.svg new file mode 100644 index 00000000..5cf8e2f2 --- /dev/null +++ b/_images/75c7b06e5bb0ce0642e3c55ef9f4ffa33da7842bc8ab8fadbab3d7ba0d56f411.svg @@ -0,0 +1,594 @@ + + + + + + + + 2023-09-07T23:34:49.257711 + image/svg+xml + + + Matplotlib v3.7.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/7fcc7da8cc07b3d4bba344c0908c41998e833e828fa02f2e3bf7f262ee57e3ab.svg b/_images/7fcc7da8cc07b3d4bba344c0908c41998e833e828fa02f2e3bf7f262ee57e3ab.svg new file mode 100644 index 00000000..8c793159 --- /dev/null +++ b/_images/7fcc7da8cc07b3d4bba344c0908c41998e833e828fa02f2e3bf7f262ee57e3ab.svg @@ -0,0 +1,627 @@ + + + + + + + + 2023-09-07T23:34:49.631100 + image/svg+xml + + + Matplotlib v3.7.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_images/f6bc8e0ed01b4b5b0f146a2902cda922035d1cf889c4fc797e59abe728c39e89.svg b/_images/f6bc8e0ed01b4b5b0f146a2902cda922035d1cf889c4fc797e59abe728c39e89.svg new file mode 100644 index 00000000..9d00887c --- /dev/null +++ b/_images/f6bc8e0ed01b4b5b0f146a2902cda922035d1cf889c4fc797e59abe728c39e89.svg @@ -0,0 +1,2226 @@ + + + + + + + + 2023-09-07T23:34:49.483269 + image/svg+xml + + + Matplotlib v3.7.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_sources/auto-research-outputs.ipynb b/_sources/auto-research-outputs.ipynb index 4f223a38..ed20f0b7 100644 --- a/_sources/auto-research-outputs.ipynb +++ b/_sources/auto-research-outputs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "9022538b", + "id": "11227fbd", "metadata": {}, "source": [ "(auto-research-outputs)=\n", @@ -76,67 +76,10 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "6b079742", + "execution_count": null, + "id": "856cd7bd", "metadata": {}, - "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", - "
timeLunchDinner
smoker
Yes2.833.07
No2.673.13
\n", - "
" - ], - "text/plain": [ - "time Lunch Dinner\n", - "smoker \n", - "Yes 2.83 3.07\n", - "No 2.67 3.13" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import seaborn as sns\n", "import pandas as pd\n", @@ -149,7 +92,7 @@ }, { "cell_type": "markdown", - "id": "cf830321", + "id": "b8cc8990", "metadata": {}, "source": [ "This can be turned into a $\\LaTeX$ table using the following command" @@ -157,28 +100,17 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "b9c3396a", + "execution_count": null, + "id": "8718d39e", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'\\\\begin{table}\\n\\\\caption{A Table}\\n\\\\label{tab:descriptive}\\n\\\\begin{tabular}{lrr}\\n\\\\toprule\\ntime & Lunch & Dinner \\\\\\\\\\nsmoker & & \\\\\\\\\\n\\\\midrule\\nYes & 2.830000 & 3.070000 \\\\\\\\\\nNo & 2.670000 & 3.130000 \\\\\\\\\\n\\\\bottomrule\\n\\\\end{tabular}\\n\\\\end{table}\\n'" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "table.to_latex(caption='A Table', label='tab:descriptive')" ] }, { "cell_type": "markdown", - "id": "6146ca9c", + "id": "622f507b", "metadata": {}, "source": [ "Or perhaps you have a regression table, for example" @@ -186,45 +118,10 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "33307ba5", + "execution_count": null, + "id": "b110daf0", "metadata": {}, - "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", - "
Dependent variable: target
(1)(2)
ABP416.673***397.581***
(69.495)(70.870)
Age37.24124.703
(64.117)(65.411)
BMI787.182***789.744***
(65.424)(66.887)
Intercept152.133***152.133***
(2.853)(2.853)
S1197.848
(143.812)
S2-169.243
(142.744)
Sex-106.576*-82.862
(62.125)(64.851)
Observations442442
R20.4000.403
Adjusted R20.3950.395
Residual Std. Error59.976 (df=437)59.982 (df=435)
F Statistic72.913*** (df=4; 437)48.915*** (df=6; 435)
Note:*p<0.1; **p<0.05; ***p<0.01
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import pandas as pd\n", "from sklearn import datasets\n", @@ -245,7 +142,7 @@ }, { "cell_type": "markdown", - "id": "1f3049d2", + "id": "71b240a5", "metadata": {}, "source": [ "which can similarly be cast into $\\LaTeX$ using `reg_results.render_latex()`.\n", @@ -437,18 +334,6 @@ "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.10.12" - }, "source_map": [ 14, 83, diff --git a/_sources/code-best-practice.ipynb b/_sources/code-best-practice.ipynb index 92f1471c..a5cb02f9 100644 --- a/_sources/code-best-practice.ipynb +++ b/_sources/code-best-practice.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "647ce369", + "id": "9cd4b31b", "metadata": {}, "source": [ "(code-best-practice)=\n", @@ -295,45 +295,17 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "c6e44fed", + "execution_count": null, + "id": "b8ca0695", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The Zen of Python, by Tim Peters\n", - "\n", - "Beautiful is better than ugly.\n", - "Explicit is better than implicit.\n", - "Simple is better than complex.\n", - "Complex is better than complicated.\n", - "Flat is better than nested.\n", - "Sparse is better than dense.\n", - "Readability counts.\n", - "Special cases aren't special enough to break the rules.\n", - "Although practicality beats purity.\n", - "Errors should never pass silently.\n", - "Unless explicitly silenced.\n", - "In the face of ambiguity, refuse the temptation to guess.\n", - "There should be one-- and preferably only one --obvious way to do it.\n", - "Although that way may not be obvious at first unless you're Dutch.\n", - "Now is better than never.\n", - "Although never is often better than *right* now.\n", - "If the implementation is hard to explain, it's a bad idea.\n", - "If the implementation is easy to explain, it may be a good idea.\n", - "Namespaces are one honking great idea -- let's do more of those!\n" - ] - } - ], + "outputs": [], "source": [ "import this" ] }, { "cell_type": "markdown", - "id": "adb781b0", + "id": "881288ad", "metadata": {}, "source": [ "## Advanced Coding Tips\n", @@ -416,18 +388,6 @@ "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.10.12" - }, "source_map": [ 14, 302, diff --git a/_sources/coming-from-excel.ipynb b/_sources/coming-from-excel.ipynb index 5cf127fe..b4a3f464 100644 --- a/_sources/coming-from-excel.ipynb +++ b/_sources/coming-from-excel.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "11e1ec8b", + "id": "1ceac46b", "metadata": {}, "source": [ "# Coming from Excel\n", @@ -57,18 +57,6 @@ "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.10.12" - }, "source_map": [ 14 ] diff --git a/_sources/coming-from-matlab.ipynb b/_sources/coming-from-matlab.ipynb index 66580f8c..6f109ed7 100644 --- a/_sources/coming-from-matlab.ipynb +++ b/_sources/coming-from-matlab.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "8e73a53a", + "id": "19bf82da", "metadata": {}, "source": [ "# Coming from Matlab\n", diff --git a/_sources/coming-from-r.ipynb b/_sources/coming-from-r.ipynb index c62e4054..37c0c933 100644 --- a/_sources/coming-from-r.ipynb +++ b/_sources/coming-from-r.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "0b7eda21", + "id": "75261ece", "metadata": {}, "source": [ "# Coming from R\n", diff --git a/_sources/coming-from-stata.ipynb b/_sources/coming-from-stata.ipynb index 8f4d353b..466a13e1 100644 --- a/_sources/coming-from-stata.ipynb +++ b/_sources/coming-from-stata.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "e53a4c0e", + "id": "a198dacf", "metadata": {}, "source": [ "# Coming from Stata\n", diff --git a/_sources/craft-referee.ipynb b/_sources/craft-referee.ipynb index 6ac36d27..61dbad44 100644 --- a/_sources/craft-referee.ipynb +++ b/_sources/craft-referee.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "2848c6f3", + "id": "146b20a2", "metadata": {}, "source": [ "(craft-referee)=\n", @@ -10,6 +10,8 @@ "\n", "In this chapter, you'll learn tips and tricks for writing referee reports. Much of this chapter is advisory: some of it might work for you, some of it might not. It's not intended to be a foolproof guide, or to cover everyone's preferences--but it is designed to help you get started on writing good referee reports.\n", "\n", + "This chapter very much stands on the shoulders of giants. Those giants include [The Turing Way](https://the-turing-way.netlify.app/)'s [Guidance on Peer Review](https://the-turing-way.netlify.app/communication/peer-review/peer-review-guidance.html), {cite:ts}`nyhan2015checklist`, {cite:ts}`berk2017write`, {cite:ts}`nicholas2011quick`, Econometrica's [guidelines for referees](https://www.econometricsociety.org/publications/econometrica/guidelines-referees), Marc Bellemare's [20 Rules for Refereeing](http://marcfbellemare.com/wordpress/5542), Tyler Cowan's [how to be a good referee](https://marginalrevolution.com/marginalrevolution/2006/10/how_to_be_a_goo.html), and Tatyana Deryugina's [how to be a constructive referee](https://deryugina.com/how-to-be-a-constructive-referee/).\n", + "\n", "What is the purpose of a referee report? We think there are two:\n", "\n", "1. to help the editor make a decision about whether to publish the paper in their journal\n", diff --git a/_sources/craft-referee.md b/_sources/craft-referee.md index b1607b98..5ae89d1a 100644 --- a/_sources/craft-referee.md +++ b/_sources/craft-referee.md @@ -17,6 +17,8 @@ kernelspec: In this chapter, you'll learn tips and tricks for writing referee reports. Much of this chapter is advisory: some of it might work for you, some of it might not. It's not intended to be a foolproof guide, or to cover everyone's preferences--but it is designed to help you get started on writing good referee reports. +This chapter very much stands on the shoulders of giants. Those giants include [The Turing Way](https://the-turing-way.netlify.app/)'s [Guidance on Peer Review](https://the-turing-way.netlify.app/communication/peer-review/peer-review-guidance.html), {cite:ts}`nyhan2015checklist`, {cite:ts}`berk2017write`, {cite:ts}`nicholas2011quick`, Econometrica's [guidelines for referees](https://www.econometricsociety.org/publications/econometrica/guidelines-referees), Marc Bellemare's [20 Rules for Refereeing](http://marcfbellemare.com/wordpress/5542), Tyler Cowan's [how to be a good referee](https://marginalrevolution.com/marginalrevolution/2006/10/how_to_be_a_goo.html), and Tatyana Deryugina's [how to be a constructive referee](https://deryugina.com/how-to-be-a-constructive-referee/). + What is the purpose of a referee report? We think there are two: 1. to help the editor make a decision about whether to publish the paper in their journal diff --git a/_sources/craft-research-blogs.ipynb b/_sources/craft-research-blogs.ipynb index c3584610..877d3d07 100644 --- a/_sources/craft-research-blogs.ipynb +++ b/_sources/craft-research-blogs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "96929700", + "id": "b2a88c3a", "metadata": {}, "source": [ "(craft-research-blogs)=\n", @@ -29,25 +29,14 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "c03c3df5", + "execution_count": null, + "id": "127cd78d", "metadata": { "tags": [ "remove-input" ] }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABiAAAAI4CAYAAADj1SFoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOzdd3gU1R7G8W/q7ibZ7CZAgNB7CYSEFBBURAUVRMWC2HvvXnvvvfcGKjZEEUREOqiAgJQESCEBEhJCJ72X3ftHYElMgACBScL7eZ773N2ZM7PvbCS7Ob8557g5nU4nIiIiIiIiIiIiIiIi9cjd6AAiIiIiIiIiIiIiItL0qAAhIiIiIiIiIiIiIiL1TgUIERERERERERERERGpdypAiIiIiIiIiIiIiIhIvVMBQkRERERERERERERE6p0KECIiIiIiIiIiIiIiUu9UgBARERERERERERERkXqnAoSIiIiIiIiIiIiIiNQ7FSBERERERERERERERKTeqQAhIiIiIiIiIiIiIiL1TgUIERERERERERERERGpdypAiIiIiIiIiIiIiIhIvVMBQkRERERERERERERE6p0KECIiIiIiIiIiIiIiUu9UgBARERERERERERERkXqnAoSIiIiIiIiIiIiIiNQ7FSBERERERERERERERKTeqQAhIiIiIiIiIiIiIiL1TgUIabSKioqMjiAiIiIiIiIiItJgORwOYmNi+fqrCUZHOSpFRcVGR5Aj5OZ0Op1GhziYd95+lxm/z2DPnszDPnbhX/OxWq3HIJUYoaysjLVr1rJ8+b/8/fcifH19+ezzT4yOJSIiIiIiIiIix8lHH37M9Om/s2P7Dtc2D08Ppv02lVatWtXpHA6Hg9EXXMSW9C2ubWazmV69evHF+M/qPbMRtmzZwkcffsKypcvIzs6mdevWTJ8xzehY1ZSUlHDn7XexaVMKr73+ChGREa59eXl5rFyxiuXLlvPXX38z6rxzueXWmw1MK0fK0+gAh3Lvffdw73338MrLr/LTpJ8B6NChPffedw+envvjOxxOCosKSducxrRfp5GRsdWoyHKMTPllCqmpaUz+eTLl5eVERPQ3OpKIiIiIiIiIiBxHt99xG7ffcRvTpv3Gs08/B0BFeQUTf/iRe++7p07nWLRocbXiQ8dOHfl6wpf4+fkdk8xGaNOmDc88+xSvvfo6U36ZanScWm3csJFVq1YDMG/ufFcBorS0lG8mfEtqSirz5s03MqLUgwZfgNhn0OBBrgJEn759OXXIqQdse+6okYw+/6LjFU2OkzGXjgEgIyODRX8vMjiNiIiIiIiIiIgY5fTTh7oKEABTfpnKzbfchI+PzyGP/XHiJDw8PKioqABg8KBBTar4AODm5oa3tzd9+/at9wLEihUriawyWuFIde/RnbPOGk56ejoXjD7ftd3b25vb77gNh8PBaaeeTkFBwVG/lhin0awBUfWXh5vbwdu2atWqXv4RSMNkt9uMjiAiIiIiIiIiIgbaVzAIDAwEID8/n6lTfz3kcampqSxbuoyhpw91bfP18z02IRsAN/dDdKQepkV/L+bzz76ol3N5enry0isv8s13E+jeo3uN/e7u7vj7+9fLa4lxGk0B4nDddvutmM0Wo2OIiIiIiIiIiIjIMXLxJftnQZn4/UQcDsdB20+a+BPt2rVj8OCTjnW0Jic9LZ2nnnoa5yHeY5GqmmwBondIb7y8Gs0MUyIiIiIiIiIiInKYIiIj6NmrJwAZGVtZMH/hAdsWFBQwffrvXDp2zKGnWJFq0janccftd5KTnWN0FGlkmlwP/S+TfyEgMJChQ0+rtr20tJSJP/zIsmXL2b17Nzt37KRbt65cfsXlnDZ0iKvdD99P5J2336W8vByAYcPP5O577qJly5a8+fpbTJ78i2vfgIEDuOzysZxyyskAxMbE8vprb5KQkMDgkwfz3vvvVMuwfNlyfv75F/bs2UPKphTsdhtnDjuT666/DovFXK1tQnwCU6b8SosWzbnxphv49JPPmPTjT/j7+/PRJx8QHBx80Pdh167dzJ41m9jYNbz2+iusiV3Dp59+zto1a/H09OSkQQO56+47adWqVY1j6/peVZW0PonvvvuezalplJaVuo4ZfeEFDBs+DLf//FIvKipi4cI/+WPGTJ588nEcTgcff/QJixctoaioiN4hvbn9jtsIC+t30OuszZHkFxERERERERGRxumKKy7jySeeBuC7b7/jjDNPr7Xdb9OmgxuMOu/cOi9uvGrlKn788Sd27thBQWEhWZlZ9OkTwpixYzjppIE12mdlZvH77zP4c+GffD7uM1atXMWrr77O1oyt3Hf/PVx40YWutofTV3goZWVlfPft98z8YxbuHu5UVFRw6qmn0CKoxUGPS09L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MRczYOCAGu1XrFjJLTfdCsDLr77ETz/+xJ7MTMxmM3abjSuvuoJBgwdVO+aZp59l9qw51SqiFouFAQMH8OZbrx9VfhERERERERERafjeeP1N/pgxk+zsbNc2Hx8fBg0exKuvvezalpeXx7333M+48Z9XO/7ee+5j9aqYarOtAJjMJvr27cunn31cbfvq1TF89+13xMasoVmzZnibvGnXri1XXHE5vUP2r3e6dOkyHnnoUfLy8qodHxwczKOPP1Jjmqa69hXW1by58/nh+4msX78eh8NBt27duPyKsZRXVPDLz1MYNPgkThp0Ej179sDNzQ2oLORM/+13fpn8Cxs2bKSiooL27dtz9jlncdnlY6uN7Njng/c/5JdfpuCGG0NPP4277r4Tm82Gw+Hgk48/5bdp08nLy6NHzx5cc+3VnHrqKaSnb+HuO+8hOzubMZdewi233sw1V13Lpk0p1YpH/v7+XDLmYm659WYuveQyNm/eXG2hbbvdzhVXXs71N1x32O+PGKfBFyDkyFQtQEyfMc3oODVULUD89vuvBAcHG5xIREREREREREREROpTo5iCSUREREREREREREREGhcVIEREREREREREREREpN6pANFE7VsZvrS09hXkjVZ15fqSklIDk4iIiIiIiIiIiIjIsaACRBNUVlbOmjVrAcjMzCJlU4rBiWpatXJVrY9FREREREREREREpGnQItRNzKyZs3n1ldfIyclxbfP09KRdu3Y89PADRA+INjAdpKelc9utd7Bt27Zq29u0bcOFF47m2uuuMSiZiIiIiIiIiIiIiNQnFSBERERERERERERERKTeaQomERERERERERERERGpdypAiIiIiIiIiIiIiIhIvVMBQkRERERERERERERE6p0KECIiIiIiIiIiIiIiUu9UgBARERERERERERERkXqnAoSIiIiIiIiIiIiIiNQ7FSBERERERERERERERKTeqQAhIiIiIiIiIiIiIiL1TgWIJsLpdJKSkoLT6TQ6ioiIiIiIiIiIiNSzkpISMjIyjI4hclhUgGgi3nnnHTp37sw777xjdBQRERERERERERGpZ+eccw7t27cnMTHR6CgidaYCRBMRFxdX7f9FRERERERERESk6YiLi8PhcKgAIY2KChAiIiIiIiIiIiIiIlLvVIAQERGRWjmdTuLi4sjLyzc6iuF27dzFxo0bjY4hIiIiVRQVFbFyxUqjY4iIiMhBeBodQEREGreEhESuvPyqatt8fHwwm824uUFhYRFFRUUAuLu7ExBgB6C0tIyCggIcDofruLGXXcqDDz1w3LJ/9eXXjPtiPD169ODtd9/CavU7bq/dUBUVFbF82XIWLVrM338tYteuXfz8y08n3HtTVlbG2jVrWbZsOUsWLyEhIZGbbr6RLl26GB1NRKRJmDd3Ps89+zz5+QcucpvNZm686Qauu/7a4xesDurr+0N+fj733/s/EhISue76a7n+huvqOWnD89orrzNt2m8MGDiAV159GS+vw+uSqKioIGl9Ev/+u4KlS5exetVqmjVrxvQZ045RYhERETlaKkCIiMhRKd5bXGjWLJB777uHwScPxmazufZ/+slnfPbp5wC0bNmy2h+IpaWlxMcn8NGHH7NyxUqKioqPa/bx476ksLCQ1atX8+/y5Zx+xunH9fUbouXLlrN06TJmzZxNQUGB0XEMs3p1DEv/WcrcufPI2JJhdBwRkSbnjDNP54wzTycnJ4dXX3mdWTNnufaF9AnhpZdfoG3btgYmPLD6+v6wfNlyVq5cBVQWNZp6ASInJ4cff5wEwMIFC9mwYQO9evU8rHMsW7ac1atWs3btWv5dvuJYxBQREZF6pimYRETkqBQWFgLw/AvPMWLkiGrFh0Px9vYmLKwf773/Di1btaRo77mOl8suH4vFYqFfWD+ioqMO2nbfKI6DKS4urjaio6Gr7ZqGnDaEhx95iJHnjjAgUcMRHR3F3ffcxV1332l0FBGRJs1ms3HppZdU2zZmzCUNtvgA9ff9ISIygpA+Ifj4+HDV1VfWd0xDHOx6bTYb550/CrPZzJAhp9K1a9fDPtegQSdxx5238+5772AymY46r4iIiBx7KkCIiMhRKSoqpmOnjgwYOOCIz2E2m7noogspKj50J399uu32W1m05C/Gf/kFVqv1gO327NnDC8+/eMjzvfrKa+zYsbM+Ix4zRUXFPPbI4wfcb7fbj1+YBiwgIMDoCCIiTV5gs2bVngcFtTAoSd3U1/cHm83GhG++4u/Ff3LTzTcei6jHlcPh4H/3P3jQNk8/8xSL//mbt95586DTL6VsSuH9dz844H6TyYTdXvebXkRERMQ4KkCIiMhRKSwq5KSTBh71eQYNOonCwuNbgKiLiooKHnv0CXbt3HXQdr9Onca0X3/D6WwcIyBefvFlkpM3GB1DREQED4/qf5a6e3gYlKT+1PX7Q1Py6SefsWzpsqM+T1FREQ8+8DAFhQefCtLdvfH/dyIiInIiUAFCRESOysknD+ba66456vN079Gdhx85+F1zRnj9tTdY8e/B5xhevTqGV15+9TglOnoTvv6G33+fYXQMERGRJqsu3x+aktmz5zDui/FHfZ6Kigoef/QJUlJS6iGViIiINARahFpERI5KYGBgvZzHw8ODLl261Mu5jkRZWXm1qQDKy8t56813+GnSzwc9bunSZTz0wMOUlpYe64hHzel0MuHrb3jv3feNjiIiItIkHOn3h0OdpzGZ8fsMnn3meZxOZ52PcTgcOJ1OPKqMdikqKuLpp57lzz//OhYxRURExCCN8xuOiIg0aU89+Qy/T//d9dzX15ezzzmbhx95EA8PD956422mTv2VgoL9Q/N79erF8LOHcfXVV7m2Tf/tdz777HMytmTg4+PDG2++Vm2tiqT1ScyaNZs5s+fw1DNPERkZ4dr3wvMvsmTxEtfz2Ng1DD/zLNfzjz/9iO3btvPcsy9QXl7u2n7VFde4ppIYfeFobrv91mrXVlBQwI8TJ7Ho70Vs376d7JwcWrVsycknn8w1111Ns//Mgw2Vi1v//fciZs2cxalDTuW880axcMGffPbZ56SmptKnTx/eevsN/Pz8Dvq+fvLxp0z5ZQru7u44HA527NhR7ZqeefZpBg0edMDj589fwKQfJ5G0PpnikmK6dO7MdTdcx+mnD621fXxcPDNnzmL7tu289sarbNu2nXfefpel/yzF19eHJ59+ssb0XX8u/JNp06azOXUzGRkZWP2t9O3bl0vHjiH6IAt9pqSk8tOkn1m1chV5eXlkZWfRqlUrTjnlZK697loCAuwHfW/+XPgnkydPITExkYryClq2DOL8C86nY8cOBz1ORESOn23btjNv7jzmzJnL6NEXcMHo89myZQtffzWBRX8vJjs7m44dO3D9jdczbNiZ1Y598YWX+GXylBrn7NqtKz9O+qHatqFDziA3N9f1/NKxl/LQww+4nh/t94d9N1yUlJSwZMk/zJk1hw0bNjDp5x9r5MvKzGLevPnMmTOX8PAwbr3tFjIzM/n6qwksmL+AXbt207p1K8ZediljLh1z0Pdv+/btTPjqGxYvWUJ+Xj5Op5POnTszaPBJnHbaEDp17oSbm9tBz/Ffv/wyhU8+/rTatqrXe+vtt3LhhaOByhsh1sSuYfbsOcydM48vvx5HcHCwq+3/7nuA9euTXM/nzJ7LP0v+2f9aUycf8rtObTIyMvj+ux9YvTqGbVu3UeGooEP79px19llcOnYMXl5eh31OERERqTsVIEREpMF57vlnKCwsYMH8hQBcMPp87v/ffa799z9wH0PPGMqN198EgL+/PxO+/Qp39+ozC547aiRt2gRz4w03c9fdd7iKD198Po4ZM/5gc+rmA2Z45tmnAYgIr+z07tcvlM++qP4HdpcuXZg15w+efuoZpv9WWTD55ruvq/0xXVVCfAL33fs/LrxoNB9+/AEWi4WUlFSeeuIpvvvue6ZP/50PPnyP3iG9AVi1chU//zSZP//8i+LiYgAGDhzIT5N+5o3X33QVPlauWMmypcs548zTD/q+3nb7rdx2+62cO+I8tm3bRsuWLZk+Y9pBjwHA6XR13DRr3gyHw0FJcQnx8Qk89MDDvPraK67XzsvL44vPx7Fw4Z9sSd8CQJ++fUhP38JNN9xMZlYmFeUV5Ofn8+PEH10FiOLiYh5/7Emys7N5+uknad+hPfn5+Xz91QTGj/uShQsWcuNNN9Qo6AB8Of4rPvrwY0JCQnjrnTcIDg5m185dPPnkU3z7zXcsXPgnX301noDAmgtKl5WV8fSTzzB33jzuvPMOXnn1JXx8fEjbnMYbr7/J+HFfHvr9ERGRYyohIZFvvv6GuXPnUVFRAcCoUecya+ZsXnj+RSwWM6WlZZSWlpKUlMyjDz+Gh7s7p5+x/3Px8Sce48wzz+Dee+53jVq89bZbal38ed6COTz/3AtM+/U3Hn/iUS686EKg/r4/bN26lU8++pSFf/5JQX7lzRStW7eu1iYjI4Nxn49n5qxZlBSXABAS0pvly//l8UefoKKiAnd3d0pLS9m8OY1XX3mdsrJyrrjy8lpzLV/+Lw898DA9evZg3PjPad68OQkJiTz84MN8+MFHfPjBR3h7e2O1VnbwX3n1ldVu6jiQCy8czYUXjubmG29h5cpVAMyeO6tam7Kycj54/wPmzJnLju07Dniujz75kK1btzJq5PkADBt+Js8+98whMxzMtF+n8d67H/DIow9z///uw+l08u+/K3jqiad5+613mPH7DD7+9CNsNi1oLSIicqxoDQgREWmQrrnmatfjlE015wEODw8jIqI/UNnpnZOdU+t50tPT8ff357zzz3Ntu2D0+Xz73QRCQ/vWc+oD27JlC7fecjsDBkZz8y03YbFYAOjUqSOvvf4q7u7u5OTkcM/d97nuuuzZqycvvvwCV119pes8ixctZvmy5cydP4fPv/iUzp070bJlEL169zxm2d955z1SU1L58acfmD1nJgv/ms9jjz8KVN7N+MnHn7jams0Wbr/jNj748H1XQaggv4DnnnmO1998jTlzZ3H2OWfh4+NTbbTFow8/xupVq3nzrddp36E9AH5+ftxx5+1ERUcC+zt+qlq9OoYP3v8Qh8PBmEsvdhV/WgS1cHVabEnfwqefflbrtT3+6BPMmjWb//3vfq6+5ip8fHwAaN+hPe+89zadOnc8ujdPRESOWs+ePXjplRe5487bXdtmz57D1199zYcfvc/subNY+Nd8nn72KaDys+nDDz+ucZ4BAwdw2eVjXc8LCwtrfT13d3fMZjNdu3V1FR+g/r4/BAQE8ODDD/D5fwoTVQUHB/PUM0+6ChoAMatjePWV13jm2aeYt2AOc+fP5v0P3nXdwf/5Z19QUlJS41zbtm3ngfsfJC8vj6eefoLmzZsD0KtXT55/4TlXO6vVj5mz/2D23Fl1Kj7UlYeHO1ddfSU/TPyONm1qv0njWJg7Zx7PPvM8d997F2cOOwMPDw88PT056aSB3HvfPQCsX5/Eo488ftwyiYiInIhUgBARkQapb2hfevToDsCy5cvZvXt3jTb7igpOp5PZs+fUep45s+cyatS5mM1m17bmzZvj4+NDeP/wY5C8di88/yL5+fm13mnZOrg1ffd2ZmRmZjJ16q8A+Pj44ObmRr+wfq62mzdv5oWXnsdq9aN/RH9+mjyJGTN/P+Coi/pgsZj5+NOP6Nq1q2vbRRdfSEifEAA2bUpx/Xy8vDwxmUy0a9fWtT5ISkoKN91yE3379sFms/HiSy/w9+I/GTPmEgB+nz6Dv/76m0vGXIzdbq/x+medtX8qh6/Gf1Vt35rYNa7He/ZkVtvXsmVLV4a1a9fVOO+vU6cxb958OnRozyVjLq6x393dnYsuvuiA74uIiBwf+6YF6ta9W7Vt4778gtB+oa5t5503ivDwys/21JRUdu7cWeNcV119les7wYzf/6CsrLxGm7KycubNm89ll42ttr2+vj9YLBasVis9evSgWbPa19Lad83dq1xzfn4+X3zxGYNPHuzaP2jwIIYPHwZU3pCRkJBY41zffvMtBQUF2Ow22rRpU21fv7B+9O7dC6j8HI2PTziqa6uNu7s7zZs3x2azERISUu/nr01+fj4vvvASrVu3ZtSoc2vsP/2M0/H0rJwQYtnSZcTHxR+XXCIiIiciFSBERKTB2tf5W1FewW/TptfYf9Kg/esH/PprzamEMjIyWLZsORddcmGNfQAmk6mekh5cYuJ6/l2+glatWtG2bdta2+z74x8gZnVstX1V5yY+behpxy33PqNHX+D6I72qqpm31zKlwr7cgYGBB12/4ZsJ3wIQGRVZ6/7eIftfZ+PGTdXm5T75lMEEBgbSrHkzBlZZ32Offe/Vviku9qmoqODzz74A4Iwzz6gxfdc+AQE1p20SERFjeHt7ux737x/uGk1YVfe9Ny8A7NhRswAREGDnvPNHAbB7924WzJ9fo82fC/+kvKycs885q8Y+qN/vD97eBz9X1Wvu1btXrdMJVr3mnTtqfh6vXrUaAEeFo9bXqDpV1datWw8e+Ch5m7wP3age/Dp1Grm5ufSP6F/ruhYWi5nOnTu5nsfExByXXCIiIicirQEhIiIN1jkjzubdd96joKCAab/+xnXXX1tt/8w/9s8xvD5xPYmJ6+nZs4dr288/TSYioj8dOhi7kPDiRYuByo6OqgszVlVeXuHqSMnPzz/guY538eFgqo5WKNm7RkVtDpZ5586dJCcnA/DIQ4+6FvCuyumkWidTZmYm/v7+QOU6HLPnzgSo1sFQUlLCwgV/kptXWayoulA4VE5jsW3bNqD6HbUiItK42Wz+rseltUxHBHDZZWP5adLPOJ1OfvzxJ4afNbza/l8m/8J554+qNnqyIfOvcs0lJaU19peVlQGVIyQKCwtd0w3uU3VaJJP38SkQHGv7vnvNnzefpf/8U2ubkpJS1/eLnJzcWtuIiIjI0VMBQkREGiwfHx/OGXE2P/80mbS0NFauWElEZARQ+cf0d99+x2WXj2XSpJ+oKK/g16m/0vORh4DKDuhff53G448/ZuQlALg62ENCejP+q3EGp6k/VTv8nUd4juSkZNfjL78a51r/4UhzbNq4iZ9/mszGTZs444yhWMyWGqMfAGKrTN1k8/evsV9ERBq/A302te/QnlNOOZm//vqbmNUxJCclu4rR6WnprFixksefNP77w5Fw1nLVnTp1YtPe9bSWLVvO0KGnVdtv3tsJ7+bmRq8qoxsbs+TkDQBcdvnYamuHiIiIyPGnKZhERKRBu7jKHPz71kaAynUDCguLuO32Wzn11FMA+GPGTNfii7Nmzcbby5shp516fAPXIjc3D4CioiKDkzQ8uXl5rsdFxUf+/iStT+Lee+7j4Yce4ZQhp/DpZx8z5tIx1aavqmrXrl2ux/8dHSEiIk3f5Vde7nr844+TXI9/+WUKgwafVGOthMbssisuw8PDA6ic9tDprF6kWLd3naThw4cRFBR03PMdC/uma9R3LxEREeOpACEiIg1at+7dCN27QPO8efPJy8vD4XAw4esJjL3sUnx9fbnwwtFA5dQC8+ZVzuX8048/MfrC2tcuON68vSs7wTMyju28yo2Rt9f+qR62pGcc0TkmTPiGK6+4mqKiYiZ8O4GTThp4yGOqFh127aq5wLmIiDRtUVGR9Ni7dsIfM2aSl5dHWVkZv02bzphLxxicrn6Fh4fxwkvP4+vnS2xMLM88/Sx79uyhrKycBQsW8v13PzDwpIE88dTjRketN/vWztiyZYvBSUREREQFCBERafD2LUZdUlzCH3/MZP68BezatZvLLh8LwMCTBtK6dWugctHBuLg41q9PYvSFFxgVuZoWLVoAUFBQwOrVMYdsn52dTdL6pGOcqmFo0aK56/HixUvqdMzy5f+6Hk+d8ivvvv0eDoeDp55+AoulbvN1V11ceu3atXVMKyIiTclll18GQHFxMdN+/Y358xbg72+tUyG7sRk+fBjjv/wCs9lM3Lp4xo65nJHnjOTHiT/yxJOP88GH79VYG6Ix2/f9YtWq1RQVHXidqn2Sk5LJzs4+xqlEREROTCpAiIhIgzds+JnY7DagssP5qy+/5qKLL8Rmq9zm7u7O+RecB8DKFSt59533OXXIKfU6jcDBpumpugZBeVnNdqGhoa7HH3/0SY2pD/77Oo8/9iSlexeMPBb25W0IUw/17NXTtUj1HzP+ICUl9aDtf58+g3lz57mef/LxpwAENgusdbqMA73Xffr2cT1eMH8hhYWFhxtdREQaubPPOYtmzZsB8NOkn/n5p5+5eMzF1T7Xj1ZD+KwFSE1N5a033uarr8fz8y+TmDNvFrPnzuKTTz/m7HPOOvprrnJ8WS3fhep8Gqp8pzqK9y60X+V3r4L8Ar7+6uuDtt21azdPPfl0o1l0XEREpLFRAUJERI6pfWsyAFRUVBzROUwmE+eeOxKA9Ynr2bRpE1dedUW1NhdccD4eHh44nU5WrljJxZdcfMjzOhwO1+MDdVTvG8K/e/eBp+mpOo1Qbe1OP2Movr6+QGWB5J2336319UpLS3nqico/gPv0CTlk/iPltXdKqJycnKPqJKgP3t7eDD9rGFB5/Q898BB79uypte3cOfN48423uOHG6wHIysxyreWQm5NL2X+KNrm5ua5zlZaWVNt30kkDXZ1OOTk5vP/eB7W+5s6dO12Pa1vMWkREjl5FecV/nh/5Z9PBivz/5eXlxZgxlwCQnp5OQkIio0aNOuRx9fX9AcDhdBz0PHVyiGNTU1O5/robOePMM1yLbde3fdNNwsGv2enYn7W2a/aqdp7avw8c7Ph9Ro061/V4/PgvmT9/Qa3tdu7cyR2338mo80epACEiInKMqAAhIiLH1I4dO1yPs7KyanQS19XFF1/kujvvvPNH0bx582r7WwS14OSTBwPQrl07BgyIPuQ583L3L4Cck51Ta5u2bSvvqs/I2Oqa+iclJZWXXnh5f5t2bV2Pp06dBlQWXl595TXS07fg6+vLbbff6mrz7TffccP1NzFjxh8kJq5n9eoYfpw4iUsvuYxVq1bz6GMPV8tQkJ/verxnT+Yhr+tQ2ratzFtaWsqM32cAsGvnLp564mlXkahq4ajq46qKi/dPaVBaWlpjf0FBZYd9ZlbmQTsJbrn1Fvz8/ADYtCmFMRePZfy4L4mNiSUxcT3z583nf/c/yCMPP8r9/7vPNbLF6m91dfCUlZXx/rsfuO6WTElJ5eEHH3GNrsjMzCI9LZ2ioiK2bt2Kl5cX991/ryvDpB9/4uWXXiEzs/L9dTgczJ+/gA/e/9DVZs6cuUyd8iv//LP0gNciIiKHb0eVYi/A9u07am1XdbTagT5XcnNyXY/r8p3joosvwmSu/KwYMXIEVqvfIY+pr+8PAPl5lZ/xubm5tV5T9WuuPU9OlWsur+WaP/7oU3Kyc3jpxZc58/ThjD7/Ii4cfXG1/1126eU8+cRTJCQk1v4ih7DvuwXA1ClTgcq1uZ568hny8vZ/j8nN25+1tveuWbNmrqmgYmNiSdmUAsDaNWt57933Xe0cDgdZWVmu1/mviMgIhp5+GlBZ4HrogYd54vEn+fvvRSQnJbNs6TI++vBjLr3kMpo3b86lTWzdDxERkYZEBQgRETkmnE4na9euY/Gi/fP6l5WV8dWXX9dpLt7/at+hPVFRkXh6enLNNVfX2mb0RZWLUV9Sh+kTdu3cxZIl/7ieT58+nZycmn8InznsTNfj22+9gxFnj+SWm25hzNhLXNuHDj0ND08PAH6f/junDz2TYWeeRVBQEO32FifGXnYpV1x5ueuY2JhYnnz8Ka647EpuvP4mXnv1ddzc3fjs80+qFVd27NjB5MlTXM/nzp1LclLyQa/tUM4cdobr8XPPPs85Z43kkosv5dzzzsXDo/I61ldZg+JAnRFx6+Jcj6tmKikp4eefJpObW9nJUFJcwjfffHvAjqDWrVvxzrtvYbVagco1MD784COuv+5GrrjsSh584GH+WfIPjz3xKOeOGuk6ztPTs9rz7777ntNOPZ1hZ5zFDdffyHXXX8upQ04BKv97vGzsFZw17Bx27Kjs6DrnnLO5487bXf+t/PzTZM4ePoKR54zilMFDePbp56oVKbKzs/nnn6VHd5eqiIhUs2fPHr795ttq2yb+MJHU1NQabROrfB5t2LChxv6KigpWrlq1v01yzTb/FRBg5+yzzwbg0iqf7QdSX98fnE4nc+bMdRXrCwsLmfbrbzVGiybE77/mjRs31prp339XuB5vSK7ZJjw8DHf3yj/9s7KySEtLY3Pq5mr/S0pKZsbvf3Dt1dexeNHiQ74PB7veLz4fx/Azz2LkOaMYeNIAV1EnNTWVmNWxrna//DKFoqKiaudxc3Pj9DOGApXfGy8dcxkjzjmXxx9/kssuG+va/vVXE1w3SOTn5zNv7vwamZ559mkiIiOAyvf7jxkzuffu+xh76eXcftudjPtiPOHhYbz51uuu7z8iIiJS/9yc+iu6SbjxxhsZN24cN9xwA1988YXRcUTkBPfaq28wdcrUA9457+bmhr/NnylTJ7vWcaiLpUuXsejvRTzw4P9q3e9wOLj1ltt5+503XVMe/Vd+fj6jRp7v6hyvyt3dnegB0Xz40f477EpLS3n5pVeYM3su3iZvBg4cyB133lZjvYE//pjJB+99SFZ2Fl27dOHa667h9DNOr/EaK1asZNLEScTExpKdnY2PxYdu3boybPiZXDD6Atcd/QBvvfk23337fa3X4ePjwzPPPs0ZZ9Z8jUNxOp28/94HTPllKg6Hg/D+Ydx2+6306NGD2bPnMPGHH4mN2d9B4OHhwcknD+aiiy9k8MmDmfjDj8yY8Ue1AoSHpwennnoK119/HTdcf1OtIyI8PD04bcgQXnvj1Vpz7dmzh28mfMuivxezbds2nE4nwcHBDBgYzdjLxrqKOVUVFxcz7ovxzPxjFnv27CEoKIjThg7h6muuIjAwkPT0LTz80COkpqTSvXt3br/zNqKjo6qdY926OL7/9ntWrVpNdnY2AQEBnDToJG666QYAHn/sCUaeO5LhZw1zFUlEROTozJs7n2effe6g09uZzWZuvOkGTjttCJ99+jnz5s2v1kEfGRXJOeeczQWjz2f2rNl8/fU31YoUnp6enHHG6dx2+620a9/ugK+zYcMGvvrya1548fkDtqnP7w+/TP6FN994u9pIwqrX/PAjDzJo8CA+eP9DZs+eQ0nx/u9TvXv34owzz+Da665h2dJljPtiPCtX7i+6uLm5ccopJ3PDTTdUm87xt2nT+fnnybRq1Yr0tDR279lDfl4+paWlNQrr7dq1Y+q0Xw74XhzIt998x4SvJ1BUVEyv3r24+ZabiIyMYOPGjVx/7Y3kVxnRuY+HpwejRp3Lk0894dqWm5vLM08/x9J/luJn9WPIkFO5/fbbCAgMYNqv03jl5ddq/Y5psVh46uknGH7WcNc2h8PBb9Om8/vvM0hOSqagsAC73U6fPn244ILzOHXIqYd9nSIiRmrZsiU7d+5kypQpXHDBBUbHEakTFSCaCBUgRERERERE5L/23STxzXdfExgYWGO/w+GgqKiIHdt38PvvM/jqy6+ZO282AYEBBqQVEZGDUQFCGiNNwSQiIiIiIiLSBM2dM48nH3+KG2+6odbiA1SO4PD19aVzl87cdfeddOnSGW+Td61tRURERA6XChAiIiIiIiIiTUxxcTGvvvIaTqeTsPCwOh1TXl5O+w7tDziVpYiIiMjhUgFCREREREREpIlJ2ZRCZmYmAMuWLjtk+4qKCt5/7wOuvOrKYx1NRERETiAqQIiIiIiIiIg0McFtgrFYLAC89dbbvP7aGyQkJNZYdHrHjh38OnUaN1x3EyF9QggL62dEXBEREWmiPI0OICIiIiIiIiL1y2az8dIrL/LE409SkF/AxB9+ZOIPP+Lh6UFgQCAeHh7k5uZSWFhIv36hPPX0E3Tu0tno2CIiItLEqAAhIiIiIiIi0gSdeuopTPttKtN/+5358xewbes2MjMzKS0tpVWrlgwZcirDhp9JeP9wo6OKiIhIE6UChIiIiIiIiEgTZbfbufKqK7jyqiuMjiIiIiInIBUgREQOIS4ujpSUFKNjiIg0Gp06dSIkJMToGCL1av78+RQWFhodQ0Sk0Rg4cCDNmzc3OoaIiBhMBQgRkUNo3749//zzD4VZhVSUVRgdR0SkwfLw8sAnwIchQ4YYHUWk3rVu3Zo///yToswio6OIiDRo3r7etG7XWsUHEREBVIAQETkkq9VK7969WbV8FUXZRYR0D8HL08voWCIiDUZZeRlxSXH4tvCld+/eWK1WoyOJ1LsePXoQGxtLUWYRXk4vunXsZnQkEZEGJTM7k/TtW7AEWBgwYIDRcUREpIFQAUJEpA7Cw8NJTEykJLcEL08v+vTsY3QkEZEGY13iOjxNnvj4+xAeroVMpWlyd3cnKiqK2ZmzyduaR5tWbQiwBxgdS0SkwZi5cCZmfxNt27WlTZs2RscREZEGwt3oACIijYHFYiE0NBSz3Ux8cjwlpSVGRxIRaRCKS4qJT47HbDcTGhqKxWIxOpLIMdO5c2eCWgZhspqIiY8xOo6ISIORvjWdzJxMvK3eREdHGx1HREQaEBUgRETqKDQ0FD+bH04PJ3FJcUbHERFpEOKT43F6OLHarYSGhhodR+SYcnNzIzo6GpO/ia07t7Fz906jI4mIGM7pdBIbH4vJZqZLly4EBQUZHUlERBoQFSBEROrI29ub8PBwzAFm1m9YT2FRodGRREQMVVhUyPoN6zEHmAkLC8Pb29voSCLHXLt27WjTtg0mfxMxcTFGxxERMVxKWgq5hXmYrSaioqKMjiMiIg2MChAiIoehd+/e2AJseJg9WJu41ug4IiKGWpOwBg+zB7YAGyEhIUbHETluoqOjMVm92Z21m4ztGUbHERExTEVFBbEJsVjsZnr06IHdbjc6koiINDAqQIiIHAZPT08iIiIw281sSN1Ibn6u0ZFERAyRm5/Lxs2bMNvNRERE4OHhYXQkkeOmZcuWdOrUCZPNxOp1q3E6nUZHEhExRHJKMsVlxZitld8HRERE/ksFCBGRw9S9e3cCmwfi5evJmvg1RscRETFEbFwsXr5eNGvRjO7duxsdR+S4i4qKwmQ1kVuYS+qWVKPjiIgcd2XlZaxLXIclwEJISAh+fn5GRxIRkQZIBQgRkcPk7u5OVFQUFpuFzRmbyczONDqSiMhxlZmdSdrWNCx2M5GRkbi76yulnHgCAwPp3r07FpuF2LhYHA6H0ZFERI6rxA2JlLuV4+PvQ3h4uNFxRESkgdJfiyIiR6BTp04EtQrCZK2cekFE5ESyet1qTFYTQS2D6Ny5s9FxRAwTGRmJyWqiqKyI5JRko+OIiBw3xSXFxCfFY7abCQ0NxWw2Gx1JREQaKBUgRESOgJubW+UClP4mtu/ewfZd242OJCJyXGzftZ3tu3dg8jcxYMAAo+OIGMpqtRISEoLZbmZt4lrKy8uNjiQiclzEJcWBF1jtVkJDQ42OIyIiDZgKECIiR6ht27a0bdcWs7+JmLgYo+OIiBwXMXExmP1NtG3XljZt2hgdR8Rw4eHh+Pj7UE45iRsSjY4jInLMFRQWkLQxCYvdQnh4OF5eXkZHEhGRBkwFCBGRoxAdHY231ZvMnEzSt6YbHUdE5JhK35pOZk4m3lZvoqOjjY4j0iBYLJbK6UfsZuKT4ykuKTY6kojIMbU2cS0eFg9sgTZ69+5tdBwREWngVIAQETkKQUGV85+b/E3ExsfidDqNjiQickw4nU5i42Mx2cx06dKFoKAgoyOJNBihoaH42fxwejiJT443Oo6IyDGTk5fDxs2bMNvMREZG4uHhYXQkERFp4FSAEBE5SlFRUZj9zeQW5pKSlmJ0HBGRYyIlLYXcwjzMVhNRUVFGxxFpULy9vQkPD8ccYGb9hvUUFhUaHUlE5JhYE78Gbz8vmgc1p1u3bkbHERGRRkAFCBGRoxQQEED37t2x2CzEJsRSUVFhdCQRkXpVUVFBbEIsFruZHj16YLfbjY4k0uD07t0bW4AND7MHaxPXGh1HRKTe7cnaQ9rWNMw2M1FRUbi5uRkdSUREGgEVIERE6kFkZCQmq4nismKSU5KNjiMiUq+SU5IpLivGbDUTERFhdByRBsnT05OIiAjMdjMbUjeSm59rdCQRkXoVExeDyWqiVetWdOzY0eg4IiLSSKgAISJSD/z8/OjTpw9mu5l1iesoKy8zOpKISL0oKy9jXeI6LAEWQkJC8PPzMzqSSIPVvXt3ApsH4uXryZr4NUbHERGpN9t2bmPH7h2YbCaio6ONjiMiIo2IChAiIvUkPDwcX5sv5W7lJG5INDqOiEi9SNyQSLlbOT7+PoSHhxsdR6RBc3d3JyoqCovNwuaMzWRmZxodSUSkXsTExWDyN9G+fXuCg4ONjiMiIo2IChAiIvXEbDYTGhqK2W4mPime4pJioyOJiByV4pJi4pPiMdv3/n4zm42OJNLgderUiaBWQZisJlavW210HBGRo5aWkUZWbhbeVm+ioqKMjiMiIo2MChAiIvWob9++WO1W8IK4pDij44iIHJW49XHgBVa7ldDQUKPjiDQKbm5uREdHY/I3sX33Drbv2m50JBGRI+ZwOIiNj8VsM9O1a1datGhhdCQREWlkVIAQEalH3t7ehIeHY7FbSNqYREFhgdGRRESOSEFhAUmbkrDYLfTv3x8vLy+jI4k0Gm3btqVtu7aY/U3ExMUYHUdE5IilpKWQV5SPyWoiMjLS6DgiItIIqQAhIlLPevfujS3QhofFg7WJa42OIyJyRNYkrMHD4oEt0EavXr2MjiPS6ERHR+Nt9SYzJ5P0relGxxEROWwVFRWsSVyDxW6mZ8+e2O12oyOJiEgjpAKEiEg98/DwICIiArPNzMbNm8jJyzE6kojIYcnJy2FTWgpmm5nIyEg8PDyMjiTS6AQFBdG5c2dM/iZi42NxOp1GRxIROSxJKUkUlxdj8bcQERFhdBwREWmkVIAQETkGunXrRrMWzfD282JN/Bqj44iIHJbYuFi8/bxoHtScbt26GR1HpNGKiorC7G8mtzCXlLQUo+OIiNRZaVkpcYlxWOwWQkJC8PX1NTqSiIg0UipAiIgcA+7u7pWdDjYzaVvT2JO1x+hIIiJ1sidrD+nb0jHbzERFReHm5mZ0JJFGKyAggO7du2OxWYhNiKWiosLoSCIidZK4IZFytwp8bb6EhYUZHUdERBoxFSBERI6RTp060bJVS0xWLUApIo1HTFwMJquJVq1b0bFjR6PjiDR6kZGRmKwmisuKSU5JNjqOiMghFRUXkZCcgNluJjQ0FLPZbHQkERFpxFSAEBE5hgYMGIDJZmLH7h1s27nN6DgiIge1bec2duzegclmIjo62ug4Ik2Cn58fffr0wRJgYV3iOsrKy4yOJCJyUHHr48AL/AOs9O3b1+g4IiLSyKkAISJyDAUHB9O+fXtM/hoFISINX0xcDCZ/E+3btyc4ONjoOCJNRnh4OD7+PpS7lZO4IdHoOCIiB1RQWEBSShIWu4X+/fvj5eVldCQREWnkVIAQETnGoqKi8LZ6k5WbRVpGmtFxRERqlZaRRlZuFt5Wb41+EKlnZvPeaUzsZuKT4ikuKTY6kohIrWLjY/G0eGJvZqdXr15GxxERkSZABQgRkWOsRYsWdO3aFZPNTGx8LA6Hw+hIIiLVOBwOYuNjMdvMdO3alebNmxsdSaTJ6du3L1a7FbwgLinO6DgiIjVk52aTkp6K2WYmMjISd3d1GYmIyNHTp4mIyHEQGRmJ2WoiryiflLQUo+OIiFSTkpZCXlE+JquJyMhIo+OINEne3t6Eh4djsVtI2phEQWGB0ZFERKqJjY/F28+LFi0rb6ASERGpDypAiIgcB3a7nZ49e2Kxm1mTuIaKigqjI4mIAFBRUUFsQiwWu5mePXtit9uNjiTSZPXu3RtboA0PiwdrE9caHUdExGV35m62bNuC2WYmKioKNzc3oyOJiEgToQKEiMhx0r9/fyz+ForLiklKSTI6jogIAOs3raekogSLv4WIiAij44g0aR4eHkRERGC2mdm4eRM5eTlGRxIRASAmLgaTv4nWwa3p0KGD0XFERKQJUQFCROQ48fPzIyQkBEuAhbjEOErLSo2OJCInuNKyUuLXx2OxWwgJCcHX19foSCJNXrdu3WjWohnefl6siV9jdBwREbbu2MrOPTsx+ZuIjo42Oo6IiDQxKkCIiBxHYWFh+Np8KXerIHFDotFxROQEl5CcQLlbBb42X8LCwoyOI3JCcHd3Jzo6GrPNTNrWNPZk7TE6koicwJxOZ+XoB5uJDh060Lp1a6MjiYhIE6MChIjIcWQ2mwkNDcVsN5OQnEBRcZHRkUTkBFVUXERCcgJm+97fS2az0ZFEThgdO3akVetWmKwmYuJijI4jIiewtIw0svOyMfmZiIqKMjqOiIg0QSpAiIgcZ3379sVq9wMviFsfZ3QcETlBxa2Pw83bDf8AK3379jU6jsgJJzo6GpPNxI7dO9i2c5vRcUTkBORwOIiNj8VsN9O1W1eaN29udCQREWmCVIAQETnOvLy8KhektltISkmioLDA6EgicoLJL8gnKSUJi91C//798fLyMjqSyAknODiY9u3bY/LXKAgRMcamtE0UlBRgtpo1+kFERI4ZFSBERAzQq1cvbIE2PC2exMbHGh1HRE4waxLW4GnxxN7MTq9evYyOI3LCioqKwtvqTVZuFmkZaUbHEZETSHl5OWsS1mC2menZsyf+/v5GRxIRkSZKBQgREQN4eHgQGRmJ2WYmJT2V7NxsoyOJyAkiOzebTekpmG1mIiMjcXfX10ERo7Ro0YKuXbtispmJjY/F4XAYHUlEThBJKUmUVJRi8bcQERFhdBwREWnC9BeniIhBunXrRvOg5nj7eWkUhIgcN7HxsZj8TLRoWdnxKSLGioyMxGw1kVeUT0paitFxROQEUFpWStz6OCx2M3379sXHx8foSCIi0oSpACEiYhA3Nzeio6Mx28xs2baF3Zm7jY4kIk3c7szdbNm2BbPNRFRUFG5ubkZHEjnh2e12evbsicVuZk3iGioqKoyOJCJNXEJyAg53B742X/r162d0HBERaeJUgBARMVCHDh1oHdwak1ULUIrIsbd63WpM/iZaB7emQ4cORscRkb0iIiKw+FsoLismKSXJ6Dgi0oQVFReRkJyA2W4mLCwMk8lkdCQREWniVIAQETFYdHQ0JpuJnXt2snXHVqPjiEgTtXXHVnZl7sLkbyI6OtroOCJSha+vLyEhIVgCLMQlxlFaVmp0JBFpotYlrsPN5IZ/gD99+vQxOo6IiJwAVIAQETFY69aVdyKb/CtHQTidTqMjiUgT43Q6iYmLwWQzVY68at3a6Egi8h9hYWH42nwpd6sgcUOi0XHkOCsuKSZBP3c5xvIL8klOTcZis9C/f388PT2NjiQiIicAfdqIiDQAUVFRpG1OI3trNmkZaXRoq6lRRKT+pGWkkZ2XjX+wP1FRUUbHEZFamM1mQkND+Sd3KQnJCXTr1A2L2WJ0rHqXnJLM3MXzWLluFTt376y2z2wy4+HhQVl5GSZvE/5+/nRs24GeXXpyavSpBNjsxoQ+Rnbs3sHKtStZsWYlaxLX0rFdR9547DWjYx3Qp99/xrzF8wnr3Y+HbnlQndeNUGxCLJ4WTwKaB9CzZ0+j44iIyAlC3xhERBqA5s2b07VbV+IL44mNj6VdcDvc3TVITUSOnsPhIDY+FrPdTNduXWnevLnRkUTkAPr27cu6desoyS0mbn0ckf0ijY5U77p16ka3Tt0oKS3hlkdvJTMnC4BWLVrx0fMf4OnpicPhYOeenaxJWMv0+b+zeMUSvvr5a846dThXX3gVPhYfg6+ifsxdNI+NaZtYsXal0VEOKS8/j9/nzwBg6eplbM7YTJcOXQxOJYcjKyeL1PRUrMFWIiMj9beGiIgcN/rEERFpICIjIzH5mSgoLmBT2iaj44hIE7EpbRMFJQWYrWaNfhBp4Ly8vOjfvz8Wu4WklCQKCguMjnTMmLxNdO/c3fW8eUAz1x317u7utGrRiuGnDuPtp97k1OhTqKioYMaCP3jwpYfIzcs1Kna9uuKCy3nizscaxUgXq5+VMwafgcnbRHRYNB3aHNvRuhWOCq2FUs9i42Mx+ZloEdSCLl1UPBIRkeNHBQgRkQbCZrPRq1cvzHYzaxLWUF5ebnQkEWnkysvLK0c/2Mz06tULf39/oyOJyCH06tULezM7nhZPYuNjjY5zTFnMhx7J4OHuwe1X3Yavjy8A6du2MGHKN8c62nHj7u6O1dfP6Bh1cs91d/HTRz/yxJ2PHfPpl376/WeSUpKP6WucSHbt2UXG9gxMNhPR0dG4ubkZHUlERE4gKkCIiDQg/fv3x+JvoaSihKSUJKPjiEgjl7QpiVJHGT42H/r37290HBGpAw8PDyIiIjDbzKSkp5Kdm210pGOmrn2gPhYf+vUKdT3/e/kiKhwVxyiVGC0mPpaJ037E6XAYHaXJWL1uNSZ/E8Ftgmnfvr3RcURE5ASjAoSISAPi6+tLnz59sNgtxK2P09BzETlipWWlxCXFYbGb6dOnDz4+TWPOdJETQbdu3Wge1BxvP68mPwqirlo2b+l6XFRcRG5enoFp5FjZsj2D1z99A4dTxYf6snX7VnZn7cbkXzn6QURE5HhTAUJEpIEJCwvD1+aLw91BQnKC0XFEpJGKT4rH4e7A1+ZLv379jI4jIofBzc2N6OhozDYzW7ZtYXfmbqMjNTgmb2+jI5ywHA7HMRmBsjFtE0+88SR5BSou1Ren08nquNWYbCY6duxIq1atjI4kIiInoGM7caOIiBw2k8lEv379+CfvHxKSE+jeuXujWJxQRBqOouIiEjckYmlhISwsDJPJZHQkETlMHTp0oHVwa0pyS4iJi+HMU840OpKhtmzb4noc3DIYgItvG1NttGif7iG89NCLrucvfvASK9aupKJif2f52FGXcvn5l1U7d05eDktW/sOiFYsJ6daby8+/jOzcbH6ZOYV/Vi0lMzuToGYtOPeMcxl5+oiD5szNz+WPhTNZtnoZmTlZVFRUEGALIKJPf0aePoLmgc0Pea1FxUVMmTWVRf8uZueenZi8TYT17sc1F19NULMgV7v45Hgef+PJatcH4OnhyYVnj+bK0Ve4ti1dvZTXPnmD8orKNca8vbwZ/9oX+FvrtjaQ0+kkceN6Fv27iMUrFvPqo69UG5UCUFJawsq1q1i8YjH5hfk8e98zlJeXM2PhH8xbPI+MHVvxs/gyOGowV4++qtpn08a0Tbz0wcsUFhW6tr380auutSYi+vTnnuvvBioLIPHJ8fy1/G/c3T249Yqb2ZyxmS9/+pr45Hia2QN58JYH6Ny+c7V8GzdvZNZfs4lLjqe4uJic/BwC/APo3a03Z506nN7detXpvWhMNmdsJqcgB//W/hr9ICIihlEBQkSkAerbty/r1q2jOLeYdYnriAqLMjqSiDQi6xLX4WZywz/Anz59+hgdR0SOUHR0NNu2bWNnxk627tjq6ng/0ezas4uYKlNRjRw6Ah+LDz9/PIlfZ09j3KTxtR73+J2PUVZWxofffMT8JQtq7N++aweTfp/EX8v/prS0spDRvWM3YhPW8MZnb+JwOHB3d6esvIyMHVv59PvPKC8v5/zh59X6estilvPeV+8T1qsfD9z8P4JbBlNWXsa7499j8sxf+G3+dP534/2c1H/gAa91+67tPPvOc+zYvZMAWwAVjgryCvL4+99FJGxM5P1n3nUtyN27W2/GvzaOJ958kvSt6a5tz9//LF5eXtXOOzB8IN+++w23P3477h4evPn4G3UqPpSXlzPhl29YtGLxQUfifDFxHIv+XURmTlbl+9i5O7syd/HiBy+TsT0Dq68fZWVlZJZm8dvc6ezYvZMn7nzMdXyX9p0Z99rnfP/rD0z87UcAHr39Yfr27Otqs2vPLibPnMI/q/4ha+/rnBJ1Mus3JfH0289QUlpCRUUFGTu2MmfRXG65/GYAysrL+PyHL5j112xGn3UBLz/0Iv5+/uQX5DN9/u/8OH0SC/5ZwBmDTuf2q26r8d41Vg6Hg9i4WMw2M926dyMwMNDoSCIicoLSFEwiIg2Qp6cnERERWGwWklOTyS/INzqSiDQSefl5JKcmY7FZ6N+/v+vuURFpfFq3bk2HDh0w+ZuIiYvB6XQaHem4Kygs4NVPX6esvAyAAWHRjDj9HNf+YacOO+jxXl5eDI4YVOu+ls2DuPvau7j3urtd2+KS4/n0u8+49/q7+fadCXzz9tc8fe9Trt+lE6f/WOsaXYtWLOblj14hOjSKB295wFUs8vL04tJzxwBQWlrKO+Pfpai4qPZrLcjnuXdf4OSok/nm7a8Z99rnfPfON4T1rpxGb3fmbmb9NbvaMQE2O7ddcYvreV5+7oE70J1O8gryufDs0QTY7LW3+Q93d3dGn3UB7z71do0RD1XdcOn1vPXkm7i7VXYx5Obl8Ow7z3Pm4NP5/t1vGf/6OD5+4SNataicAmh5zHISN66vU4Z9bP42bhp7A/+76X7Xtl2Zu/nypy958/HX+eylT+jfp//eRcv77b1kJ2989iYz/5zFeWeO4tqLr8Hfr7Lw4ufrx9hRl3Lv3pEV85bM59VPX8fRRBa/3pC6gcLSQsxWM5GRkUbHERGRE5gKECIiDVTPnj0JaB6Ap8WT2AQtQCkidbMmcQ2eFk8CmgfQs2dPo+OIyFGKiorCZDWRnZdNWkaa0XGOGYfTQXl55fRATqeT7bt28Pv8Gdz9zL0kbUrC3d2dS0ZczMO3PoSHu4frOJ86TFNpNplr3e7m5gZAx3adXNsKiwp5+eEXiegb4dof0ac/p0SdDFQWRDakbqx2nt2Zu3nvy/cxm8zcdNmNNV6nXXA72ge3ByqnVzrQjSXbd+/gytFXcMUFl7tGOfhYfLhp7P5zxiasqXFcnx596N2tNwDp27bU2gYqiyQApw0YUuv+2ri7uxNgC8DqZ6V7p24HbOfm5kagPRCbvw2A7Nwc7rn+bs4941xXQSS4ZWsuGXmx65g1B8h5IN5e3nh4eNCr6/7Ptg2pG7jz6jto06oNLZq14Jl7n2Li+98zMHwAALP/nsM/q5ZWKwT915ABQxi0t0i1PGY5M/+cdVi5GqLy8nLWJq7FbDPTu3dv/P3rNtWWiIjIsaBb4kREGih3d3ciIyOZkzmH1PRUenfrTYAtwOhYItKAZeVkkZqeijXYSmRkJO7uutdEpLFr3rw5Xbt1Jb4wntj4WNoFt2uS/7aTUpK59oHrcXNzo7y8DHcPD3wtvrRq0ZLTBg7hzJPPoHVQ62Py2l5VRop17dgFm9VWo02ndp1Y8M9CAPZk7am2b9LvP1FcUsxpA4fgY/Gp9TUeuuUBfp0zjT49+tCiWYta29j97QyKOKnG9nbB7TCbzBSXFLM7c1etx44ZeQnPvPMsAJP/mEy/XqE12iz8ZyEDwqLx8/Wr9RyHUpepifa9l/5+Vrp17Fpjf+cqxZ7d/3kf65zDc3+Ozu070bZ12wO2nfzHZAC6dep60OsefdYFLFm5ZO8xvzBi6DkHbNsYrN+4njJnGQG2AMLDw42OIyIiJzgVIEREGrAuXboQExRDSW4psfGxnHbSaUZHEpEGLCYuBpOfiRZBLejSpYvRcUSknkRGRrJx40Zyc3LZlLaJrrV07DZ2PTv3qLaAdENjrdJ5XXUKJofDwT+rlgLUWPS4qvZt2nPXtXcexetbKS4ppqSW6Z8A+vcJp1vHbiSnJhMTH8vGzRvp0mH/58CuPbuIS47nqXuePOIM9aFqEaDsANdyOLy9vA+4b8v2DLbv2gFA84CDL/7do3N3rH5W8vLz2JW5i7SMNNq3aX/U+YxQUlpCXFIc5kAzffv2xcen9qKYiIjI8dL0bp0REWlC3NzciI6OxmwzkbE9g117ar/rTURk5+7KRWpNNhPR0dGuqUNEpPGz2Wz06tULs93MmoQ1rqmKxCj71+LYlbmLnLwcgAOOfqgPrl/pB1kHpOr0Rj/vvfN/n4XL/iTAFuBaT6IhcHJs1zTZuj2jymsdWse2HV2Pt+3aXv+BjpP4pHicHk78bH7069dwft4iInLiUgFCRKSBa9++PcFtgjH5m1i9brXRcUSkgYqJi8HkbyK4TTDt2zfOuzZF5MD69++Pxd9CSUUJSSlJRseRvXJyc1yPi0uKDUxSuUB3hzYdAPhn5VK27tjq2rfwn4UMPWlotfUzmrqikv2LfRcVFR6yvdXX6nps9M/ySBUVF7F+43rMdjNhYWF4ex94hIiIiMjxogKEiEgjEB0djcnfxO6s3WzdvvXQB4jICSVjewa7s3Zj8q8c/SAiTY+vry99+vTBYrcQtz6u2jRAYpyqo83Sthq7SLibm5trFITD6eCXWVOAyoWa07dt4YzBpxsZ77jz89k/3dO2ndsO2b7q2hL+ftaDtGy41iauxd3kjn+APyEhIUbHERERAVSAEBFpFFq1akXHjh0x2UysjluN8yDD70XkxOJ0OitHP9hMdOzYkVatWhkdSUSOkbCwMHxtvjjcHSQkJxgdR4BmAc1cj1euXUVFRcUhjykqLjpkmyN1cuRg2rQMBmDBkoVkZmeyYOlCenbpQdtWbY7Z6zZEVadU2rpzGwWFBQdtX1CYD1QWcjpVWSy7scjLz2ND6gbMdjMRERF4emrJTxERaRhUgBARaSSio6Mx+ZnIKchhc8Zmo+OISAORuiWVnIIcTH4a/SDS1JlMJsLCwjDbzSQkJxzTjuzGqMLhOKzt9SHQHkjroNYA7Mnaw6y/Zh20/d/LF/Hnsr+OWR53d3cuHnERAGXlZUyZNZW/ly/i9EGNY/RD1REl5XUo5hxMs4BmrgXbnU6na7HwA0nblg5Azy49sfvbj+q1jbAmYQ2ePp4ENg+kR48eRscRERFxUQFCRKSRCAwMpFv3bphtZmLjYnEcwz+mRaRxcDgcrIlfg9lmplv3bgQGBhodSUSOsT59+mC1W3EzubEucZ3RcY5K1dECR1MkMJvMAGzZtqXWqaliE9a4Hpcd4QLeBxt8evaQs1yPx//0FbEJsbW2i02I5Y+FfzDslDOPKENdnTbwNIKaBwHw29zpFBYXckrUyUd93qojcI90MO6hjqs6DVJWTtaRvUgVY88d43r827zpB/z+nJKeys7dOwG47LyxR/26x1tWdhapW1Kx2CxERkbi7q6uHhERaTj0qSQi0ohERkZitpopLC1k4+aNRscREYNtSN1AYWkhZquZyMhIo+OIyHHg6elJREQEFpuF5NRk8gvyjY50xKp2MO/O3H3E5+nRuTsAeQV5fDjhY9cCwtt37eD9rz6oNv9/fHI8JSUl1Y6vuuDwgTrI8wryXI//W8QYefoIOrXrCEBpaSlPv/0sH3z9IavWrSYlPZWV61bxwdcf8sZnb3HnNXfUWAi6pLTUdeyB7GtTlwKKh4cHF541GqhcC+Kk8IH4+vge8rhDqfrfWtX3o6qive/lgd7H/CrHlddyLa2C9k8jOH/JfMrLy6moqODH6ZNYm7gWgMIqC0pnV1kEvDbRYdGMGDoCgJT0FH6bO73Wdt9O+RaAi86+kLDe/Q56zoYoJj4Gk9VEUKsgOnfubHQcERGRalSAEBFpRPz9/enVqxdmm5k1CWtq/cNNRE4M5eXlrE1ci9lmpnfv3vj7+xsdSUSOk549exLQPABPi+cB77Zv6JJTkknctN71fFfmLmb/NYey8rLDPtfl51+Op0flfPcL/lnAZXdfwaV3jOXmR2+hoKiQ+66/x9U2YUMCj73+BCvWrHBt25C6/6aOtANMc7mv8xuoMRWmt5c3T939JO2D2wOVo9Nm/z2HZ955lnuevZdn33mOFWtX8uRdjxO8d32GffZk7SE3Pxeo7NTfvmtHjdfevmsHOXmVHe05uTl1GhlwxuDTXYswnzH4jEO2P5Qt2zOI37B/3ZFZf82qVrjZl3NfkSIrJ4vcvNwa51lT7X2suWh3WO9++Fp8XG2vvO9qrr7/WvZk7aFvz74UFhe5FteuzLWFv5b/TYXjwNM13XL5TVx09oW4u7nz5c9fMen3nyjcO31ZVk4W745/j1Vxq7n8/Mu45uKr6/J2NCg7d+9k685tmPwrp2KsOo2ViIhIQ+Dm1EqmTcKNN97IuHHjuOGGG/jiiy+MjiMix1BhYSETJ04kMz2L0G59CekRYnQkETFA3Po41m5YS0DbAMaOHYuPj4/RkUTkONqwYQNzZs8hb2seI04fQYAtwOhIdTJn0Vw++/5zSkpLat3v7u5Om1Zt+PC59w/rvAkbEvn+1x9I2rQe3Nzo0KYDI08/hyEDhlDhqOChlx5hyMBTGRwxyLVwdFZOFhMmf8PfKxZVG33QtWNXBkcM4qJzLiQmPpZJ0yexLinOtd/NzY2o0EjGjLyE7ntHXwCUlZXx+4IZ/LX8bzK2baHC4aB1UGsGRZzEqDPPdRUE9vnku09ZunoZmdmZrm12fzsDwqK5cvQVuLm58c0v37J09TJXAQIg0BbAmaecyZUXXHHQ9+SJN55k685tfPHKZ0c8JU9aRhoPv/IIBVVGHezj4eHBGYNO585r7uDLn77ir+V/sydrj2t/i8AWRPWL4tqLryYnL4cJv3zL4hWLq02D1K1jN849YyRDTzrNtS0mPpZPv/+Mnbt3EtyyNSNPH8nZQ85i6eqlvPrJ67Uu9O3l6cWIoedww6XXH/BaNqVtYsaCP1iTuIbs3BysvlYsZgv9eocy4rRzaNNIF+me/edscivy6NyzE6NGjTI6jogcYy1btmTnzp1MmTKFCy64wOg4InWiAkQToQKEyIll+fLl/PvPv5RmlXL+Wedj8jYZHUlEjqOS0hJ+nfUr3oHeRJ8UTVRUlNGRROQ4czqdTJ48mS0bMmjh15zTqnTgipSVl3H1fdcw8oyRhyxUSOOVsT2DP5f+ibWNldGjR9OyZUujI4nIMaYChDRGmoJJRKQRCgsLw8/uh9PDSXxSvNFxROQ4i0+Kx+nhxM/mR79+jW+uahE5em5ubkRHR2O2mcjYnsGuPbuMjiQNyNJVyygqLmb4KcOMjiLHiNPpZPW61ZhsJjp37qzig4iINFgqQIiINELe3t6EhYVhtptZv3E9RXvnsRWRpq+ouIj1G9djtpsJCwvD29vb6EgiYpD27dsT3CYYk7+J1etWGx1HGogKRwU/zfiZ6LBogpoFGR1HjpHULankFuZispo0ElJERBo0FSBERBqpkJAQ/AP8cTO5V1sYUeqf0+kkOXVDtfmXRYyyNnEt7iZ3/AP8CQnRGjAiJ7ro6GhM/iZ2Z+1m6/atRseR46ysvIxFKxazOm61awHvr376ms0Zm7n03EsMTifHisPhIDYuFovNQo8ePQgIaBxrwIiIyInJ0+gAIiJyZDw9PYmIiGBhzkI2pG6gV9deWP2sRsc6rmYsmMFXP0+guKT4oO28PL0wm800D2hG29btCO8dxsD+A2osBlnV7szdrF2/jtiEWGLiYsjMyeLFB56nb8++9X0ZInWWl5/HhtQN+LXyIyIiAk9PfZUTOdG1atWKjh07kpSfxOq41bRu2Ro3NzejY8lx8uWkr5g+/3cAfH18aR7QjM0ZaQw/ZRhdOnQxOJ0cK8kpyRSVFWELshEREWF0HBERkYPSX60iIo1Yjx49iI2NpTinmDUJaxgcNdjoSMfViKEjGDF0BDv37OS1T98gaVOSa9+QAUPo0aU7DoeDwqJCMrZnsDouhpT0VP5e/jfjfhzH2FFjOX/4eTXOm5ufy+/zZ1BUUsRfy/+mvLz8eF6WyAGtSViDp48ngc0D6dGjh9FxRKSBiI6OZnPqZnK25bA5YzMd23Y0OpIcJ9m52a7HBYUFFBQW0LVDF24ce4NxoeSYKi8vZ23iWsx2MyEhIVitJ9YNSCIi0vioACEi0oi5u7sTFRXF7MzZpG5JpXe33gTYT7wh2EHNgjhnyNnVChCXnz+W1kGtq7UrLy/n1znT+OaXbykoKmTcpPFk5mRy3SXXVmvn7+fPNRdfDUBxSTHzlyw45tcgh1ZcUozZZDY6hmGysrNI3ZKKf7A/kZGRuLtrJk0RqRQYGEi37t2IK4wjNi6W9sHt9TviBHHl6CvYnbWbjZs3YfO3cUrUyYwddekJ/XnZ1CVuSKSccqz+VsLDw42OIyIickgqQIiINHKdO3cmqGUQpXmlxMTHMHTQUKMjGaJZQLNqz2vrePH09OSicy4E4OvJEwCYOvtXhp502gHvFm0e2Lx+g8oRycrJZvyk8fzvpvuNjmKY1XGrMVlNBLUKonPnzkbHEZEGJjIyko0bN5KTm8OG1A1079zd6EhyHAS3DOa1R181OoYcJ8UlxcQnx2MONBMaGorFYjE6koiIyCHpthgRkUbOzc3NtQDl1p3b2Ll7p9GRDOFxGHd6nnfmKCzmyj/YnE4nS1cvO2Bbdzd9VBqtwlHBG5+/yZ6sPUZHMcyO3TvYtms7Jn8T0dHRmt9dRGrw9/enV69emG1m1iau1fSBIk1QfHI8Tg8nVruV0NBQo+OIiIjUiXpVRESagHbt2tGmbRtM/iZi4mKMjtPgeXl50bZVW9fzE7ljuzH4/IcvWJu41ugYhopZF4PJ30Tbdm1p27btoQ8QkRNS//798bH5UOooY/3G9UbHEZF6VFhUyPoN6zEHmAkLC8Pb29voSCIiInWiAoSISBMRHR2NyerN7qzdZGzPMDpOg+d0OlyP/Xz8DEwiB1JRUcFn33/OjAV/GB3FUFu2bWFP9h5MVm+io6ONjiMiDZiPjw99+vTBEmAmLimOktISoyOJSD1Zm7gWD7MHtgAbISEhRscRERGpM60BISLSRLRs2ZJOnTqxPn89q9etJrhlsKZpOYDikmLStqa7nof2qp8h7GsT1zJvyXzWb0qiuKSYgsICmtkD6duzLyNPH0GHNh0OenxFRQWz/prNgn8WsnPPToqLi2gW0Jy+PfswMHwgvbv2wmQyHVG2srIylsf+y/wl8+nRpQdjRl7CprRNTJk1lbWJa8kvLKBl8yBOiT6FC88ejbfXge+qy8zOZMbCP4iJiyE3P5esnGx8LD507dCFUwecwilRpxxw8dOS0hKmzJrK3/8uIis7i5LSEsrKy1z7v3/vW1dB6IOvP2TlulWufYkb13P1/de6nr/wv+do36b9Eb0fjYXT6SQmLgaTzVS53ktQkNGRRKSBCwsLIyEhgT05e4hPiie8jxapFWnscvNz2ZC6EWtrPyIiIvDw8DA6koiISJ2pACEi0oRERUWRmppK7tZcUrek0qldJ6MjNUjfTf2e0rJSAKJCIwkPCTuq8xUWFfLO+Hf5d80Krr7wKm65/GYsZguZ2Zn8PGMy0+f/zuy/5nDhOaO58oIrau2cLywq5Ln3nmfzls08fNvD9OsVSkFRAV9MHMcfC2fyx8KZANisNtzc3Gge2Jy3nnjjkNk2pW3il5lT+HfNCoqKiwDo0qEL0+dNZ/ykr3A4HDhx4nQ6Sd+2he9//YFlq5fx/P+ew8+35siQmX/O4ouJ4+jbow/333gfwS2DKSsvY8nKJXwxcTz/rlnBtDnTefT2h2ss4F1WXsbjrz/B5ow0Hrr1QSL7RuB0OklO3cAn337CxrRN1drfc/3dAJx34wUA9OzSg5ceevHQP5AmJCU9hdzCXPyD/YmKijI6jog0At7e3oSFhbE4dzHrN66nZ9eernWPRKRxWhO/Bi9fL5q1aEb37lpgXkREGhdNwSQi0oQEBgbSvXt3LDYLsXGxOByOQx90giguKWZN4lpe+vAVfp0zDauvlbGjLuWR2x4+qvOWlZXx9NvPsnT1Mm4Ycx2jz7rA1dETaA/k5stv4srRV+BwOvh5xmQ+n/hFred5a9w7xCcnMOrMUYT17oebmxt+Pn7cdc2dtGu9f87/u6+7iwlvfVWn4gNA84DmXHTOhUT32995vejfxSxasYSn732Knz76kUkfTuSe6+7C1+IDwMa0Tbz31fs1zjVt7m989M3HdGzXkcfvfIzglsEAeHl6MWTAEF5+6EV8LD4kpybz6GuPk5uXW+34hUv/JCklmSEDTyUqNBI3Nzfc3d3p0bk7T93zlOv1pZLD4WBN/BosNgs9evQgICDA6Egi0kiEhITgH+CPm8n9hF9DR6Sxy8zOZHPGZix2M5GRkQccZSoiItJQ6ZNLRKSJiYyMxGQ1UVRWRHJKstFxDPO/Fx7k6vuv5er7r+WKe69i7J2X88QbT7J09VL69+nPSw+9wOXnX4aXl9dRvc7E335k/ab1BNoDOWfoObW2ufici+jeufJutd/nz2Dl2pXV9m9M28TymOUAdOvYtdo+Dw8PRgwd4Xq+Ys2Kw8rnb/WnU7tOnHbSaa5tzQKa8dKDL9CvVyheXl6YvE2cMfgMHrn9Yde0XUtXLyNxY6LrmC3btjB+0pcAXHbeWDw9aw6ibNu6LVeNvhKAHbt38Ml3n1bbn5yyAQA3ak4NFmCzc9aQsw7r2pq65JRkisqKMFlNREREGB1HRBoRT09PIiIisNjNbEjdQF5+ntGRROQIrV63GpPVRFDLIDp37mx0HBERkcOmAoSISBNjtVoJCQnBbDezNnEt5eXlRkcyxJtPvM6Et75iwltf8d073zDpo4m88MDzDIoYxKp1q7jr6Xt46OWH2Zyx+Yhfo6SkhOnzpgMQ2rMvHu61z8fr7u7O+Wee53r+8x+/VNsflxTnelxRy6iVQREnuR7v3L3ziLJ6e+4vtPTq2rPWu+f69erHgLD9ixz/texv1+PJM6fgcDjw8PCgb48+B3ydM08+w7WGw+KVS9i2c5trn93fBsCfy/4iJT2lxrHXXnyNFgTfq6y8jLWJazHbzYSEhGC1Wo2OJCKNTI8ePQhoFoCnxZM1CWuMjiMiR2D7ru1s370Dk7+JAQMGGB1HRETkiKgAISLSBIWHh+Pj70M55SRuSDz0AScAby9vQnv25ZHbHuK+G+7F3c2dxI3rue+5//Hnsr+O6JxxyfEUlRQD1Fjv4L/69wl3jS5I2JBAYVGha1/VItHurN01jg2wBeDtXbkotNdBFoeuD0MGDHE93rB5o+vxqr2LQdv8/A+6QLXJ20TfnpUFCqfTyap1q137Tht4Gt5e3hSXFPPwK48y+Y9fqi1ALfut37Cecsrx8fchPFwLyIrI4XN3dycqKgqz3UzqllSysrOMjiQihykmLgazv4l27dvRpk0bo+OIiIgcERUgRESaIIvFQmhoKGa7mfjkeEpKS4yO1KAMPek0Th88FIDyinLe/+oDdu45/JEFW3dkuB47nQdv6+vjS1CzIKBybv8dVUYyVF3jITY+ttbjTd4mALp27HLYOQ9H1fPn5Veu4VBYXERWTmXH1SEuE6Da4ufbd213PQ5u2Zq7rr0DDw8PikuK+XryBO548i6Wrl5WP+GbiOKSYuKT4zHbzYSGhmKxaPFYETkynTt3JqhlECariZj4GKPjiMhhSN+aTmZOJt5Wb6Kiog59gIiISAOlAoSISBMVGhqKn80Pp4ez2hQ/UunkyJNdj0vLSpnz99zDPkdhcZHrcVFx4UFaVrL67Z9Gp6S02PW4f9/+tAtuB8C/sStI35pe7bitO7aRl5+Hr48vw04edtg5D4fd3+56vG+0RVGV66w6cuNArL77r7O4pLjaviEDhvDMvU8R1KwFUFmgeOnDl3nqrafZvmvH0URvMuKT43F6OLHarYSGhhodR0QaMTc3N6KjozH5m9i6c9sRT+MnIseX0+kkNj4Wk81Mly5dCAoKMjqSiIjIEVMBQkSkifL29iY8PBxzgJn1G9bXqeP4RBLUvPofcrWtSXAoVdcrqLrWwYF4VVmHoWonvYe7B8/d9wxdO3TB4XTw/PsvEp+cgNPpZNvObbwz/h1sVhtP3vUEATb7Yec8HFXXsQi0BwLg5+Pr2lZSWkJmduZBz1HtOv1qrl3Qr1c/PnzuA8aMvMQ1siMmPpb7nrvvhC+WFRYVsn7DeswBZsLCwlxTb4mIHKl27drRpm0bTP4mYuJijI4jInWQkpZCbmEeZqtJox9ERKTRUwFCRKQJ6927N7YAGx5mD9YmrjU6ToNSUVF9cW7HoeZQqkXHth1djzdu3oTzEOfIL8wHwMfiQ6sWrartaxbQjNcff43e3XpTXlHOm5+/xZX3Xc0LH7xE3x59+fD59+ndrddhZzxcuXunXQLo2aUHUDn9U+ug1q7tG1I3HPQc+64ToHP7zrW2MZlMXDn6Cj596WOGnnQaAAVFhbw97p0TduF0gDUJa/Awe2ALsBESEmJ0HBFpIqKjozFZvdmdtZuM7RmHPkBEDFNRUUFsQiwWu5kePXpgt9uNjiQiInJUPI0OICIix46npycREREsyF7AhtSN9OrWC38/f6NjNQipW1KrPW/TMviwz9Gjc3cCbAFk5WSRm5/L2vXrCO3Zt9a2ZeVlrlESUaFReHh4VNtfXl7OR99+zOCIQZx7xkjXgtXH276RIO5u7pwStX+aqoHhA5gyayoAi1f+Q3RY9AHPkbY1DQCLyUxY736u7R9/+wljzh1Ds70jK6BylMV9N9yLr8WX6fN/Z+eeXWTsyKBDmw41zlteUXFU19bQ5ebnsnHzJqyt/YiIiKjx34iIyJFq2bIlnTp1Yn3+elavW01wy2DDPmdE5OCSU5IpLivGbrUTERFhdBwREZGjphEQIiJNXPfu3QlsHoiXrydr4tcYHeeYcTgddW/rcPD7/D9cz93c3Dht4JDDfk0PDw8uGXmx6/m0ub8dsO2qdaspLy/H08OTMVWO2ZfnlU9eI2P7Vkacfo6hnUJ/LV8EwCnRp9CmVRvX9vOHnYfFZAZgycol7M7cXevx5eXlrFq3GoBRw0ZVm6bK6XTy59I/az1u+Kn717b47wiIfVM67VsIu6mKjYvFy9eLZi2a0b17d6PjiEgTExUVhclqIrcwt0YRXkQahrLyMtYlrsMSYCEkJAQ/P79DHyQiItLAaQSEiEgT5+7uTlRUFLP3zGZzxmZ6Z/d2ze3flGTn5lR7XlJaWmu7ktISPpzwEYkbE13bLjrnQrp06FJr+6qd3gVFBTX2jxw6gpi4GJbH/svymOX8s2opJ/UfWK1NWXkZE6dNBODGsTe4FpzeZ9W6VSyPWQ7ApXdeRqAtAA+P6h/R7u7uNLMHMjhyMMNPGXZURYrklGScTmeNcySnJPPnsj9p2bwlt1x+U7V9gfZA7rruLl7/9A1KSkv47IfPefT2R2qc47d508nOzaZ3t16MPffSGq89ZdZUTh80tNpi14BrAeqg5kF0bNex2r5WQa1I35rOjt07iE1YQ79eoWzZtoVpc3/j9qtuO8J3oWHJzM4kbWsa/m38iYqKwt1d94iISP0KDAykR48erCtYR2xcLB3adNDvGpEGJnFDIuVu5fj7+xMeHm50HBERkXqhb5wiIieAzp07E9QqCJPVxOq9d6c3JRUVFSz8Z2G1bRMmT2B1XAzJKcnEJyewLGY5E3/7kTueuouFe+/Ct5jM3HDp9Vx94VW1nndj2iaWrPzH9fzPZX9RUlpSrY2bmxsP3/oQQ08aCsBbX7zNzD9nUVpWWQDZvms7L33wMunbt3DXtXcyYug5NV6nTas2rg750tJStu/aQcb2jGr/S9+aTkx8LB9O+Ii3vnjnSN4ml/jkeJ5551kSNybicDhwOBwsi1nOc++9QLvWbXnpoRfw8615x93JkYN58JYHsJjMLF29jDc/f4tdmbsAKCkpYersX5nwyzec1H8gz9z7NJ6eNe9zyMnL4dFXHyMmPpay8jIAEjYk8sXEL/Cx+PDATf+rthA2wOCIQa7HT731NNc/eAOPvf4EI08fcVTvQ0Oyet1qTFYTLVtVTpMiInIsREREYLKaKCorIjkl2eg4IlJFcUkx8UnxmO1mQkNDMZvNRkcSERGpFxoBISJygoiOjmbnjp1s37qD7bu211gEuTFaHrOcmX/OYlPaJjL/Mz3P8th/WR77b7Vt3t7e+PtaiejTn7DeYQwZeGqNO/EBCouLuPmRW6otyAyweMUS/lm1lKjQSB6/8zHXdi8vL+674R6GnXwGs/6azaTff2Lcj+OxWf3x87XSv084d157Z7W1D6pqHdSad556i8dff4I+PfqQvi2d3Vl7yMvPo6S0BIej+vRSfy77k3NOO/uIF6U+f/j52P3tfPD1R+zO2o3Z20RQ8yAuHTWGs089q9bCwT4nRw4mpFsIv837jRVrVnLX0/dg9jZhMpnp0bk7z9z7NP16hR709TN2bOWpt57Gw8MDb08vTCYz/fuEM3bUWFq1aFmj/SUjLmZX5m4Wr1iMl5cXvbv15srRV9batjHavms723fvwD/YSnT0gdfWEBE5WlarlZCQEFYVrGJt4lq6dOhy0N/5InL8xCXFgRdY7VZCQw/+XUpERKQx0bdNEZETRNu2bWnbri2b8jcRExfD2aedbXSkoxYdFn3QxZCPlI/ZwrfvTDjs4/r06EOfHn0O+7hde3bx7LvPc8nISzh90NBa25SVlZGTl0PixkS+mDiOxI2JR1yAABgx9JxaR2PURYDNztUXXnXAkSMHcvtVtx3RlEleXl7cc91d3HPdXYd9bGMQExeD2d9Eu/btaNOmzaEPEBE5CuHh4SQmJpKVm0XihkT69Dz8zy0RqV8FhQUkbUzCt6Uv/fv3x8vLy+hIIiIi9UZTMImInECio6PxtnqTmZNJ+tZ0o+MIkJuXy2OvP4Gvj+8Biw9Q2QnfPLA5J0edzPnDz8dbf5g2Celb08nMycTb6k1UVJTRcUTkBGCxWCqnd7GbiU+Op7ik2OhIIie8tYlr8bB4YAu00avXkd9gIiIi0hCpACEicgIJCgqic+fOmPxNxMbH4nQ6jY50wvvht4ns2L2D3l3r/sdmTl4OYb3Djl0oOS6cTiex8bGYbGa6dOlCUFCQ0ZFE5AQRGhqKn80Pp4eT+OR4o+OInNBy8nLYuHkTZpuZyMhIPDw8Dn2QiIhII6IChIjICSYqKgqzv5ncwlxS0lKMjnPCW7d+HQBr16+loqLi0O2T4nA4HLRt3fZYR5NjLCUthdzCPMxWk0Y/iMhx5e3tTXh4OOYAM+s3rKewqNDoSCInrNi4WLz9vGge1Jxu3boZHUdERKTeqQAhInKCCQgIoEePHlhsFmITYuvU6S3HTvs2HQBISknmsdefYMnKJZSUlFRrU1xSTEx8LG+Pe4eZC2ce9toLAAVVOpeKiouOLrQctYqKCmITYrHYzfTo0QO73W50JBE5wfTu3RtbgA0PswdrE9caHUfkhLQnaw/p29Ix28xERUXh5uZmdCQREZF6p0WoRUROQBERESQlJZGTm0NySjI9u/Y0OtIJ6+bLbmTHru0kpSSTsCGBhA0JAPj5+OHj40NJSQk5eTn4+/lz9YVXMfzUYYf9GoXFRcxfssD1fFnMMkaePpJWLVrW23XI4UlOSaa4rBi71U5ERITRcUTkBOTp6UlERAQLshewIXUjvbr1wt/P3+hYIieUmLgYTFYTrVq3omPHjkbHEREROSZUgBAROQH5+fnRp08fVhasZF3iOrp07IKXpxY1NoLNauO1R19l5dqVzFsyn81bNrM7aw/lFeW44UZI9xD69wlnyIBTMXmbDvv83075jp//mIzD4XBt275rBzc/egsWs4XrLrmWs4ecVZ+XJIdQVl7GusR1WAIshISE4OfnZ3QkETlBde/endjYWIpzi1kTv4aTo082OpLICWPbzm3s2L0Daxsr0dHRRscRERE5ZlSAEBE5QYWHh5OYmEhmbiaJGxLp27Ov0ZFOWO7u7kT1iyKqX/2vA3Dl6Cu4cvQV9X5eOXKJGxIpdyvH39+f8PBwo+OIyAnM3d2dqKgoZu+ZzeaMzfTO7k2gPdDoWCInhJi4GEz+Jtq3b09wcLDRcURERI4ZrQEhInKCMpvNhIaGYrabiU+Kp7ik2OhIIk1ecUkx8UnxmO17//2ZzUZHEpETXOfOnQlqFYTJamL1utVGxxE5IaRlpJGVm4W31VujH0REpMlTAUJE5ATWt29frHYreEFcUpzRcUSavLikOPACq91KaGio0XFERACIjo7G5G9i++4dbN+13eg4Ik2aw+EgNj4Ws81M165dad68udGRREREjikVIERETmDe3t6Eh4djsVtI2phEQWGB0ZFEmqyCwgKSNiZhsVvo378/Xl5ad0VEGoa2bdvStl1bzP4mYuJijI4j0qSlpKWQV5SPyWoiMjLS6DgiIiLHnAoQIiInuN69e2MLtOFh8WBt4lqj44g0WWsS1uBh8cAWaKNXr15GxxERqSY6OhpvqzeZOZmkb003Oo5Ik1RRUcGaxDVY7GZ69uyJ3W43OpKIiMgxpwKEiMgJzsPDg4iICMw2Mxs3byInL8foSCJNTk5eDpvSUjDbzERGRuLh4WF0JBGRaoKCgujcuTMmfxOx8bE4nU6jI4k0OUkpSRSXF2PxtxAREWF0HBERkeNCBQgREaFbt240a9EMbz8v1sSvMTqOSJMTGxeLt58XzYOa061bN6PjiIjUKioqCrO/mdzCXFLSUoyOI9KklJaVEpcYh8VuISQkBF9fX6MjiYiIHBcqQIiICO7u7kRHR2O2mUnbmsaerD1GRxJpMvZk7SF9Wzpmm5moqCjc3NyMjiQiUquAgAB69OiBxWYhNiGWiooKoyOJNBmJGxIpd6vA1+ZLWFiY0XFERESOGxUgREQEgI4dO9KqdStMVi1AKVKfYuJiMFlNtGrdio4dOxodR0TkoCIiIjBZTRSXFZOckmx0HJEmoai4iITkBMx2M6GhoZjNZqMjiYiIHDcqQIiIiEt0dDQmm4kdu3ewbec2o+OINHrbdm5jx+4dmGwmoqOjjY4jInJIfn5+9OnTB0uAhXWJ6ygrLzM6kkijF7c+DrzAP8BK3759jY4jIiJyXKkAISIiLsHBwbRv3x6Tv0ZBiNSHmLgYTP4m2rdvT3BwsNFxRETqJDw8HB9/H8rdyknckGh0HJFGraCwgKSUJCx2C/3798fLy8voSCIiIseVChAiIlJNVFQU3lZvsnKzSMtIMzqOSKOVlpFGVm4W3lZvjX4QkUbFbN47TYzdTHxSPMUlxUZHEmm0YuNj8bR4Ym9mp1evXkbHEREROe5UgBARkWpatGhB165dMdnMxMbH4nA4jI4k0ug4HA5i42Mx28x07dqV5s2bGx1JROSwhIaGYrVbwQvikuKMjiPSKGXnZpOSnorZZiYyMhJ3d3XBiIjIiUeffiIiUkNkZCRmq4m8onxS0lKMjiPS6KSkpZBXlI/JaiIyMtLoOCIih83Ly4vw8HAsdgtJG5MoKCwwOpJIoxMbH4u3nxctWlbe4CMiInIiUgFCRERqsNvt9OzZE4vdzJrENVRUVBgdSaTRqKioIDYhFovdTM+ePbHb7UZHEhE5Ir1798YWaMPD4sHaxLVGxxFpVHZn7mbLti2YbWaioqJwc3MzOpKIiIghVIAQEZFaRUREYPG3UFxWTFJKktFxRBqN9ZvWU1JRgsXfQkREhNFxRESOmIeHBxEREZhtZjZu3kROXo7RkUQajZi4GEz+JloHt6ZDhw5GxxERkf+zd99hUVxrHMe/LGV3gS00xYZYEBGkCGwSNZaYqDExMb1pers3vfdiYroluemJqaYnaqrGEntPlCYdBOkiSq8Lu/cPdIUACgoO4vt5njzP7M7Mmd8shh3mnXOOUIwUIIQQQrTKxcWFwMBAtG5a4pPiqTPXKR1JiG6vzlxHQnICWqOWwMBAXFxclI4khBAnxM/PDw8vD5xcHYlNiFU6jhCnhLx9eRQeKEStV2MymZSOI4QQQihKChBCCCHaFBoaiovBhXq7BpLSkpSOI0S3l5iaSL1dAy4GF0JDQ5WOI4QQJ0ylUmEymdAYNGTlZXGg+IDSkYTo1qxWa2PvB4OagQMH0qdPH6UjCSGEEIqSAoQQQog2aTQagoOD0Rg1JKYmUl1TrXQkIbqt6ppqElMT0Rg1hISEoNFolI4khBCdwtfXF+8+3qh1aqLjo5WOI0S3lpWbRUl5CWpX6f0ghBBCgBQghBBCHMPIkSPRu+nAEeKT45WOI0S3FZ8cj52THXo3HUFBQUrHEUKITmUymVAb1Owr2kd+Yb7ScYToliwWCzEJMWiMGob6DcXDw0PpSEIIIYTipAAhhBDiqBwdHQkLC0Nr1JKSkUJlVaXSkYTodioqK0jJSEFr1DJq1CgcHR2VjiSEEJ2qb9+++Pj4oNZLLwgh2rInaw+VtZVodBoiIyOVjiOEEEJ0C1KAEEIIcUwBAQEYPYw4aB2ISYhROo4Q3U5sYiwOWgeMHkYCAgKUjiOEEF0iMjISJ50TxWXFZOVmKR1HiG6lvr6e2MRYNAYNAQEB6PV6pSMJIYQQ3YIUIIQQQhyTvb094eHhaAwaMrIzKSkrUTqSEN1GSVkJe7Iz0Bg0REREoFLJ5ZUQomfy8vJi6NChqA0aYhJisFgsSkcSottIyUihtqEOZ4Mzo0aNUjqOEEII0W04KB1ACCHEqcHPz4+YmBhqy2uJSYhh/JnjlY4kRLcQkxCD2lWNV+/GG3NCCNGTRUREsGfPHkpzy8jIymCI7xClIwGQk5/DtqjtRCVEU1hUSGl5KWonNQCuzi709vLGp+8ABg3wRatxZsmfS7novOmMjRijcHLRE9SZ64hPjkdr1BAUFISzs7PSkYQQQohuQwoQQggh2sXOzg6TycTyouXk5OZQdLAIT3dPpWMJoaiig0Xk5Oeg76cnMjISOzs7pSMJIUSXMhqNDB8+nNjKWGKTYvEd4Iu9vb1ieQoPFLJoyVds2LERlUrFeWPP49qLrmbYoGE4OjpisVjIKchlw/YN/Lr6N2pqa2z7Thl3nmK5Rc+SkJKARWXBxeBCSEiI0nGEEEKIbkXGCBBCCNFuAwcOpE/fPqh1MgGlEABRu6NQ69X06duHgQMHKh1HCCFOivDwcLR6LTXmGlIyUhTLsTt5N/fPfpD12zfg5e7J/Kfn8d9ZdxI4LBBHR0cAVCoVPn0HMPOS63j3xbcZ6nukp1p1k2KEaK5GPpt2q66pJiktCY1RQ2hoKGq1WulIQgghRLciBQghhBAdYjKZUBvUFB4oJG9fntJxhFBM3r489h/cj1qvxmQyKR1HCCFOGhcXFwIDA9G6aYlPiqfOXHfSM0TFR/HsguepqKrAqDcy5+E5DBrge9R9vNy9ePmROQwfMhyA2trak5D01LNmy1q27NyqdIxTxu6k3dip7dC76QkKClI6jhBCCNHtSAFCCCFEh/Tp0/ikt1rf2AvCarUqHUmIk85qtRIdH43aoG7sGdSnj9KRhBDipAoNDcXF4EK9XQNJaUkn9dj7D+xn7sfzqa+vB+COa2/H26t3u/bVqDU8fPuDODk6UV1b3ZUxT0l7c/fy/lcfYLXKBOPtUVFZQWpmKlqDllGjRuHgIKNcCyGEEP8mBQghhBAdFhkZiVqnpqS8hKzcLKXjCHHSZeVmUVJegtpVej8IIU5PGo2G4OBgNEYNiamJVNecvJv5C7//hPKKcgCGDfJjTMToDu3fy6MXZ0eOlR4Q/1JSVsKct1+mtk4+l/aKSYzBQeuAm6cbw4cPVzqOEEII0S1JAUIIIUSHeXp6MtRvKBqjhpiEGCwWeUpOnD4sFgsxCTFojBqG+g3Fw8ND6UhCCKGIkSNHonfTgSPEJ8eflGNmZGeyLWq77fXksycfVzujw8+SHhBNFOzfx1Nzn2Ff0T6lo5wyikuLyczORGPUEBERgUolt1eEEEKI1kj/QCGEEMclIiKC9PR0ykrL2JO1p9mkjkL0ZHuy9lBZW4nB00BkZKTScYQQQjGOjo6EhYWxsXQjKRkpBPgF4OLs0qXHXLdtXbPhH0NGBB9XO5EhkUSGtP47vLaultWb/mJ79HYK9hdQXlmByk5F/z79MYVEcv7E83HWaFvdt/BAIRt3bGLDjg3MffINrFj5+udvWLdtPbV1tVwx7XIuO//SZvtkZGfw+19/kLY3jYLCAuztHfDp58M5oydy3thzsbOzO65zzMrN4vs/fmR38m7MZjOV1ZW2z+6MUBNP3f0kAEUHi5j95myKy0ps+3783Sd8sXgRAAP7+fDiQy+0aD99bzorNqwkPjWBmpoaSitKcdO7McJvBFPGTWaEX0Cruerr64lOiGbDjo309+7PlRdeQXxKPIuWfkX63j309+7HE3c9zj3P3deiZ43KTkWAXwCvPPqS7b3S8lJufex2W88NlZ2KJ+56nDNCu7aHYkxCDGpXNV69vBgyZEiXHksIIYQ4lUkBQgghxHExGAwEBAQQUxlDbGIsvv19Zdxb0ePV19c39n4waAgICECv1ysdSQghFBUQEEBcXBw1ZTXEJMQwuoPDIXVUdEK0bVnnqqO3Z/vmfmivpPQkXvvgDdROau6a9R+C/IOws7MjITWBj75dyBeLv+SXVb/y6J2PEDQs0Lbfkj+Xsi1qO0npR+bDqDXX8vI7r5CUnkx9Q+N8FT/8/kOzAsT3v//Aig0rue+me7nnxrsxm81s2bWVd798j4TUBDb/s5mn734KR0fHDp/H0/OeZejAIcx98nW8PLyoratl7dZ1LPz+k2bberp78v5L7/HX5r9467O3Abjt6luYNGZSq22b6818/O1CVmxYySVTZvDKoy+hd9VTUVnB72v+4Pvff2Dt1rVMGn0O/531H1v2zJxMfl39G1t3baOyqhKAy6ZeyvboHbzx4VzM9WasVivpWXvY/M8WFi34grc/f5f129cDoNVo+eCl93EzGJvlMegMfP/Ot7zy3qv8HfsPLz8yhxF+Izr0eXVUYVEhuQW56PvpMZlMx10kEkIIIU4H0kdQCCHEcRs1ahRavZbahlpSMlKUjiNEl0vZk0KdxYyzwZlRo0YpHUcIIRRnb29PeHg4GoOGjOxMSpo8Rd/ZrFYr2Xk5ttfuBrdObT95TwpPz32Wmppq5jz0AiOHj7TdWB7hN4JXHn2JwT6DKSkr4bn5z5PYZPLtqROmMufhF+jn3c/23jtfvMfE0RP5/t1vufbia3BxdsHU5Kn8pSt+5uufv+H+m+8jJKCxJ4ejoyPjzxjHpVMvASAqPpoPv/mow+fy+U9fUldXxw2X3YCXhxcAaic1U8dP4darbun4h3OI1Wpl7kfz+HP9Ci46dzo3Xn4DetfGYryriytXT7+K+2++F4C/tqzhtQ/fsA3V2cerD3dffxe3XHmzrb092Xv4/a/f+eiVD3jruQX4D/ZH56oj0G8ETo5O/GfmHbZeNbW1tW1Ojq1SqSgpK+XMsDO6vPgAEB0fjVqvpm+/vvj4+HT58YQQQohTmRQghBBCHDcXFxeCgoLQGrXEJ8dTZ65TOpIQXabOXEd8Sjxao4agoCCcnZ2VjiSEEN2Cn58fnr08cXJ1JCYhpsuOU1lVaetJAOCs7bzhnurr65n70TzqzHVMHT8VT3fPFttoNVruv/leVHYqzPVm5n40D7PZ3JhFo8XJ0YkhPoNt2w/o05/zxp6Lo4MjV0+/im//9zUP3fYgAPmF+Sxa+hUj/EYQPHxki2ONM42zLa/e/BfFpSUdOp+0zDQAWnsw/7yx5+LhdnzzF63cuIqtu7bh6ODIVRde2eo2488Yz+jwxp4wO6J38Of6FQCo1WpUKhUBQ49M1pyWmc7Dtz+Eu9Ed3/6+vPHka3z95iKGDR4GgLPWmQvOmQaAxWph+bo/Wz1mfmE+yXuSOW/sucd1Xh2RV5BHUXERar0ak6lrh3kSQgghegIpQAghhDghoaGhuBhcsKgsJKYmKh1HiC6TkJKARWXBxeBCSEiI0nGEEKLbsLOzw2QyoTFoyMnPoehgUZccx1xvPurrE7Fhx0bbBMyhgW3/jvft70toYCgA+w/uZ/32Dc3WNx2Ocpzp7Dbb+f2vP6ivr2+1+ADQt3cf25P/FouF5D1JrW7XFqPeAMDXP39jK5IcZm9vz53X3dGh9g5bvHwxAH6DhuLq4trmdpdMmdFknyXN1jX9jEICgjHoDEc95kXnTker1gCwbO3yFvNCAKzdug53g5vtZ9NVrFYrUfFRqA1qfH198fb27tLjCSGEED2BFCCEEEKcELVaTWhoKBqjhsTUxFb/KBTiVFddU01SWhIao4bQ0FDUarXSkYQQolsZOHAgffr2Qa1TEx0f3SXH0Lnomr2uqq7qtLZ37t5lW/Z0a9n7oamIkUeG4Psnbmeb2zk5ObW57vB+v67+jesfvLHV/ywWCxq1Bo1aQ1l5eXtPBYDJZ08GICYxlgfnPMzu5N0d2r81OQW5FOxvLNIc6zPyHzwMnWvjz2v/wf1k5Wa1ut3RPqPD9K56pk6YCkB5ZTkrNqxssc367RuYeNZE7FX2x2zvROzN3UtpZSlqV+n9IIQQQrSXzBYqhBDihAUFBdkmoNydtJvI0EilIwnRqXYn7cZObYfeTU9QUJDScYQQolsymUzk5+dTmFtI3r48+vbu26ntOzg4YNAZKC0vBaC4tBir1dopEwDnFeTalq3H2NZ3wCDbcsH+gg4fq7aulvzCfABuuuJGpoyb3OE2juXSqZeQmpnK9ugd7M3dy5NvPM3o8NHcdMUNxz1xd0c+I2jsLRKXFAdA/v4CfPod/1wJMybP4I81y6gz1/HLql+54JxpODo0Tm6dlJ5EfmE+k8acc9ztt4fFYiEmPgaNQYPfMD/c3d279HhCCCFETyE9IIQQQpwwBwcHwsPD0Rq0pGamUlFZoXQkITpNeUU5qZmpaA1aRo0a1WzoCCGEEEf06dOHgQMHotY39oKwWttzm7pjmg5ZVF1TTU5+zlG2br/q2pojy8foWaFv0hOjtsl+7VVRVWlbrjmO/dvDwcGBx//7GFdMuxwH+8bvrS07t3DXM/fw7a/f0dDQ0OE2q2uP9HI91mcEzXusnOh5uhmMnHtofocDxQdYt229bd3arevwH+xP/z79T+gYx5KWmUZVXRUanYaIiIguPZYQQgjRk0gBQgghRKcYPnw4bp5uOGgdiEnsugkohTjZYpNicdA64ObpxvDhw4+9gxBCnMYiIyNR69SUlJe0OezOCbUf0ryXZXxqQqe06+p8ZELrvEO9E9ricOjJe8A2zFBHODYpZB9PD4r2slfZM+vSmbz57HzCDs2NUGeu49tfv+Opuc90eNhMV+cjcz7kH+MzAmw9FAD0x/E5/dtl519iK6Ys+XMpFosFc72ZTf9s7vLeD/X19cQlxaExaBgxYgR6vb5LjyeEEEL0JFKAEEII0SlUKhURERFojBoyszMpLi1WOpIQJ6y4tJjM7Ew0xsanHVUquXQSQoij8fT0ZKjfUDRGDTEJMVgslk5tf2zEGLy9jkz8u2L9ik5p17e/r205LTPtqNtWVh3p6TnYZ3CHj+Xq7Gqb+2DX7qh29RRJSk+izlzX4WMB+PTzYfYDz/PiQy/Qz7sfAAmpCfy0bHGH2mn6GeUV5lPZpCdHaw5/TnZ2dgxqMmzV8fJy92LiWRMAyC3IZVvUdnbG7aS2tpazI8eecPtHk5yejNlqxtngTFhYWJceSwghhOhp5K9oIYQQnWbIkCF49fLCyVVNTIL0ghCnvpiEGNSuarx6eTFkyBCl4wghxCkhIiICtauayppK9mTt6dS2HRwcuPnKm2yv07P2sCN6x3G1VVJWYls+I+wM2/LWXVuPWhTIyjvSs+PMsDM7fFyVSoX/oGFAY0+CvzavOer2WblZfPL9Z816FBzLnHdebvFeSEAwbzzxGr08vACIio/61xZH5tKob2WIJg83D4b6DgXAarWydde2o+fOzwZg+JDhGPXGdmc/msunXWZ7GGDx8iWs3bqOM8POwKVJD5bOVltXS3xKPBqjhpEjR+Ls7NxlxxJCCCF6IilACCGE6DR2dnaYTCY0BjW5BbnsP7Bf6UhCHLfCokJyC3JRG9SYTKZOmeRUCCFOBwaDgYCAADRGDbGJsdTX13dq+2eGncG1F19je/32F++y/2DHrjkWL1/CvI/n215HjAy33VwvPLCfbVHb29x3e/TfAIzwCyB0REiHjnvYOaOPDBn08XcLSUxLanW7rLxsnntzNpedf2mHvofiEmM5UHKwxfuuLq6cNeosAMz/+rk4Oh4pcLTVk/XqC6+0Lf/21+9t9nDJyM6ksKgQgGsuurrduY+lT68+jDOdDdA4yXbUDiaNmdRp7bcmISUBq70VV4MrISHH9/MWQgghTmdSgBBCCNGpfHx86NuvL2q9mqjd/36yTohTR3R8NGq9mr79+uLj46N0HCGEOKWEh4ej1WupbaglJSOl09u/evpVzLzkOlQqFaXlpTz2yuOkHmPoJIDS8lJeee9Vdu3exZN3PWF7387Ojodve8j2JP0nP3xKRWVFi/1T9qSwI3oHBp2Bh259sMX6quoj8yqUlJW2mWPCmeMZNsgPaJxM+6k3nuaDrz8kOiGGjOxMdu7exUfffMxDcx4mLDCUM5v00GiP+oYGvly8qNV1+4r2AbRos0+Toa02/r2JqppqrFYrKzeuYu3WdQCYQk1MmzgNgIzsDH5b/Xurx/hq6VcAXDb10hZFmvZ+Rm25fNrltmKMu5s7IQHBHW6jvaprqklOT0Zj1BAaGmobOksIIYQQ7ScFCCGEEJ3OZDKh1qspKi4iryBP6ThCdFhuQS5FxUWo9Y29H4QQQnSMs7MzQUFBaI1a4pPjj3v+gqO58oIrmPPwiwwbPIyi4gM88tKjzPt4PjvjdjabYLm2rpak9GQ+/eEzHn/tScICw3jhodloNdpm7fXt3YfXHnsFby9vCosKeXres6RmpAJgsVjYEb2DOe+8TP8+/Xnt8VfxOjSU0eH1u1PiiUuKtb23dMXPVFS1LGIA2Nvb88RdTzCwX2OBu76hnmVrl/Ps/Oe4b/b9zH7zBX5f8wcTzhzPXbP+e1yfz9qta1nwyZsU7G8sOJjNZpau+JltUdsJGhbI5dMua7b9kIFD8PbqDUB2XjY3PHgjNzx0E9uitjPujLNt291x7W1cNvVSVHYqPvvpc37440eqDn3exaXFvPXp/9gVH8W1F1/DDZdf3+wYZeVl/PbXb7bXsUmxxCXFtWsejMN8+g4gLLBxHoZzzprYpfMzxSXFoVKr0LvpCQwM7LLjCCGEED2ZnbUj3/Si27r11lv55JNPuOWWW1i4cKHScYQQgj///JOU3SloLBqmnTNNhq8Rpwyr1cqyNcuoUdUwLGgYU6dOVTqSEEKckmpra/n22285mH2Q4b7DCTnO4YraIz4lnn9idxKfGs/+g0WUV5Sj1Wgx6o04OTrhN8iP8KAwggOCUTupj9qW2WxmxcaVbP5nC1m5WVitVpydnfHpM4AxEaOZcOYE7O3tm+1z3f2zKK8ob9GWnZ0delc9ixZ80eaxlq1dzsZ/NpGTn0NdXR1Gg5ERQwOYOmEqQcOO76b3ZXdegbnebHutUWuwWCx4e3lzzuiJXHTudBwcHFrstydrD29//g5787LwcvfivLHncsmUGS3O9/C2y9YuJzYplpKyUnQuOrQaLSEjgpk24XzbhNeH/bb6dz75/lMs1pbDNjk5OTFrxkwunnxRu87vu9++55tfvuWDl96jb+++7dqno8oryvlt9W+4ersy4ZwJBAQEdMlxhBCiI3r37k1hYSFLly5lxowZSscRol2kANFDSAFCCNHdHDx4kB9/+JGy/DJGjxqNb39fpSMJ0S4Z2RlsjdqKvo+eK668And3d6UjCSHEKSs6OpotG7dQvb+ai6dc3KLXgRDH4/k3X6CmtppXH3uly46x+e/N5Bbn0ndwX6644oou7WkhhBDtJQUIcSqSb1AhhBBdwt3dHb9hfmgMGmLiY9qcpFCI7sRisRCbEIvGoMFvmJ8UH4QQ4gQFBQWhM+qwU9uxO2m30nFED3Cg+AAxiTFMGTely45RXFJMZk4mWoOWiIgIKT4IIYQQJ0C+RYUQQnSZiIgINDoNVXVVpO9NVzqOEMeUlplGVV0VGp2GiIgIpeMIIcQpz8HBoXFCaoOW1MzUVid2FqIjflz2E3pXPWMjxnTZMaITolHr1PTy7sXgwYO77DhCCCHE6UAKEEIIIbqMXq8nICAAjUFDbGIs9fX1SkcSok319fXEJcWhMWgYMWIEer1e6UhCCNEjDB8+HDdPNxy0DsQkxigdR5xCYhJj2LJzq61wtS1qG8vX/cmlUy7B0dGxS45ZWFRIXmE+ar0ak8kk85gJIYQQJ6jlrFNCCCFEJxo1ahQpKSkcLCsmOT2ZQP/jm0xRiK6WnJ6M2WrGzeBGWFiY0nGEEKLHUKlUREREsOrgKjKzMxnhNwI3g5vSsUQ3t2XnVl59/zWgsSeNb7+B7MnKoH+f/lxwzrQuO250fDRqvZr+A/rTv3//LjuOEEIIcbqQHhBCCCG6lLOzM0FBQWiNGuJT4qmtq1U6khAt1NbVEp8Sj8aoYeTIkTg7OysdSQghepQhQ4bg1csLJ1c1MQnSC0IcW0lZiW25vr6etL3puLi48Ngdj+Dg0DXPUuYW5FJUXIRa54TJZOqSYwghhBCnGylACCGE6HKhoaG4Gl2x2ltJSElQOo4QLSSkJGC1t+JqcCUkJETpOEII0ePY2dlhMpnQGNTkFuSy/8B+pSOJbm7SmHM4O3IsWrUGV2dXzjadzbyn3sCnn0+XHM9qtRK1Owq1Qc3gwYPp1atXlxxHCCGEON3IEExCCCG6nJOTE6GhoWwu20xyejLDhw5Hq9EqHUsIAKprqklOT0brpSU0NBQnJyelIwkhRI/k4+ND3359qS2vJWp3FJPHT1Y6kujG1E5qHrnj4ZN2vIzsDMqqytD31RMZGXnSjiuEEEL0dNIDQgghxEkRGBiI3k2PnVpFXFKc0nGEsIlLikOlVqF30xMYKHOUCCFEVzKZTKj1aoqKi8gryFM6jhAAWCwWYhNi0Rq0+Pv74+Ymc5QIIYQQnUUKEEIIIU4KBwcHwsPD0Ro1pGWmUV5RrnQkISivKCctMw2NUUN4eHiXjSkthBCikbe3N76+vqgNaqLio7BarUpHEoLUjFSqzdWodWrCw8OVjiOEEEL0KFKAEEIIcdL4+/vj5uGGg9aB2MRYpeMIQWxiLA7ODrh7uuPv7690HCGEOC2YTCbUrmpKK0vZm7tX6TjiNFdfX09cUhwao4bAwEB0Op3SkYQQQogeRQoQQgghThqVSkVkZCQao4bMnEyKS4qVjiROY8UlxWTmZKI1aImMjESlkssiIYQ4Gdzd3fEb5ofGoCEmPgaLxaJ0JHEaS0pLop56nPXOhIWFKR1HCCGE6HHkL20hhBAn1eDBg+nVuxdqnZrohGil44jTWFR8FGqdml7evRg0aJDScYQQ4rQSERGBRqehqq6KtMw0peOI01RNbQ0JqQlojBqCg4PRarVKRxJCCCF6HClACCGEOKns7OxsE1DmFeZTWFSodCRxGtpXtI/8/QWo9WpMJhN2dnZKRxJCiNOKXq8nICAAjUFDXFIc9fX1SkcSp6GE1ASs9lZ0Rh3BwcFKxxFCCCF6JClACCGEOOkGDBhAv/79UOvVRMdHKx1HnIaid0ej1qvpP6A//fv3VzqOEEKclkaNGoWzwZk6i5nk9GSl44jTTFV1FclpyWjcNISGhuLk5KR0JCGEEKJHkgKEEEIIRZhMJtQ6J4qKi8gtyFU6jjiN5OTncKDkAGqdEyaTSek4Qghx2nJ2diYoKAitm4b4lHhq62qVjiROI3FJcdhr7DG4GQgMDFQ6jhBCCNFjSQFCCCGEInr37s2gQYNQG9RE7Y7CarUqHUmcBqxWK9Hx0agN6sb5SHr1UjqSEEKc1kJDQ3E1uGK1t5KQkqB0HHGaKKsoIy0zHY1RQ3h4OPb29kpHEkIIIXosKUAIIYRQTGRkJGqdmrKqMjJzMpWOI04DGdkZlFWVodapiYyMVDqOEEKc9pycnAgNDUVj1JCcnkx1TbXSkcRpICY+BkcXRzy8PBg2bJjScYQQQogeTQoQQgghFOPu7o6/vz9ag5aY+BgsFovSkUQPZrFYiE2IRWvQ4u/vj5ubm9KRhBBCAIGBgejd9NipVcQlxSkdR/RwB0sOkpWXhdaoITIyEpVKbosIIYQQXUm+aYUQQigqPDwctU5Ntbma1IxUpeOIHiw1I5VqczVqnZrw8HCl4wghhDjEwcGB8PBwtEYNaZlplFeUKx1J9GBRu6NQ69T09m4cDlQIIYQQXUsKEEIIIRSl0+kIDAxEY9QQlxRHfX290pFED2SuNxOXFIfGqCEwMBCdTqd0JCGEEE34+/vj5uGGg9aB2MRYpeOIHqpgfwEFRftQ69WYTCal4wghhBCnBSlACCGEUFxYWBjOemfqqScpLUnpOKIHSk5Lpp56nPXOhIWFKR1HCCHEv6hUKiIjI9EYNWTmZFJcUqx0JNEDRcdHo9GrGeAzgH79+ikdRwghhDgtSAFCCCGE4rRaLcHBwWiMGhJSE6itq1U6kuhBamprSEhNQGPUEBwcjFarVTqSEEKIVgwePJhevXuh1qmJTohWOo7oYbLzsjlYehAnnRORkZFKxxFCCCFOG1KAEEII0S0EBwfjanDFam8lPiVe6TiiB0lITcBqb0Vn1BEcHKx0HCGEEG2ws7PDZDKh1qvJK8ynsKhQ6Uiih7BarcQkxKA2aBgyZAi9evVSOpIQQghx2pAChBBCiG7BycmJsLAwNG4aktOSqaquUjqS6AGqqqtITktG46YhNDQUJycnpSMJIYQ4igEDBtCvfz/UejXR8dFKxxE9REZWBmVV5Wh0aun9IIQQQpxkUoAQQgjRbYwYMQKDmwF7jT1xSXFKxxE9QGxiLPYaewxuBgIDA5WOI4QQoh1MJhNqnRNFxUXkFuQqHUec4hoaGohJjEFr1ODv74/RaFQ6khBCCHFakQKEEEKIbsPBwYHw8HA0Rg1pmemUVZQpHUmcwsoqykjfuweNUUN4eDj29vZKRxJCCNEOvXv3ZtCgQagNaqJ2R2G1WpWOJE5hqRmp1Jhr0OgarweEEEIIcXJJAUIIIUS3MmzYMNw93XF0cSA2IVbpOOIUFhMfg6OLIx5eHgwbNkzpOEIIITogMjIStU5NWVUZmTmZSscRpyhzvZndSbvRumkJDAzE1dVV6UhCCCHEaUcKEEIIIboVlUpFZGQkWoOWvbl7OVhyUOlI4hR0sOQgWXlZaI0aIiMjUankkkcIIU4l7u7u+Pv7ozVoiYmPwWKxKB1JnIKS0pKot6vHWe9MWFiY0nGEEEKI05L8NS6EEKLbGTx4ML28e6HWNQ69IERHRe2OQq1T09u7cRgPIYQQp57w8HDUOjXV5mpSM1KVjiNOMTW1NSSkJKAxaggODkaj0SgdSQghhDgtOSgdQAghhGiNyWSicF8hBXn7KNhfgLeXt6J5UjNSWb35L3bu3kVhUWGzdRq1Bnt7e8z1ZtROavSuenz7D2T4kOGMM43DzWBUJvRpqmB/AQVF+9D31WEymZSOI4QQ4jjpdDoCAwPZVbmLuKQ4hgwcgoOD/Akr2ic+JR4cQWfUERwcrHQcIYQQ4rQlV29CCCG6pf79+9N/QH/2VOwhOj6aqROmKprHb5AffoP8qK2r5Y4n7uRgaTEA3l7evPfiOzg4OGCxWCg8UEhsYhy/r/mDzf9s4fOfvmDKuMlcf+ksnLXOip7D6SI6PhqNXs0AnwH069dP6ThCCCFOQFhYGElJSRSXFZOUlkTQ8CClI4lTQGVVJSnpKbj0dmHUqFE4OjoqHUkIIYQ4bckQTEIIIbotk8mEk86Jg6UHyc7LVjoOAGonNcMGH5nQ2NPNw/Y0pkqlwtvLm8njzmPBs/MYZzqbhoYGlq1dziMvP0pZeZlSsU8b2XnZHCw9iJPOSXo/CCFED6DVahuHzzFqSEhNoLauVulI4hQQlxSHvdYeg7uBgIAApeMIIYQQpzUpQAghhOi2evXqxeDBg1Hr1cQkxGC1WpWOBIBWc+yeDPYqe/476z+4OLsAkJ2fw5dLF3V1tNOa1WolJiEGtUHDkCFD8PLyUjqSEEKIThAcHIyrwRWrvbVxWB0hjqK0vJT0vXvQGDRERERgb2+vdCQhhBDitCYFCCGEEN1aZGQkGr2GsqoyMrIylI4DgJ1d+7Zz1joTEnBkzOGNOzbRYGnoolQiIyuDsqpyNDo1kZGRSscRQgjRSZycnAgLC0PjpiE5LZmq6iqlI4luLCY+BidXRzx7eeLn56d0HCGEEOK0JwUIIYQQ3Zqbmxv+/v5oDVpiEmNoaDi1buD39uxtW66uqaasvFzBND1XQ0MDMYkxaI0a/P39MRqNSkcSQgjRiUaMGIHBzYC9xp64pDil44hu6kDxAbLzs9EYNERGRmLX3qdGhBBCCNFlpAAhhBCi2wsPD0etU1NjriE1I1XpOCdE7eSkdIQeKTUjlRpzDRqdhvDwcKXjCCGE6GQODg6Eh4ejMWpIy0ynrELmVRItRcdHo9ap8e7jja+vr9JxhBBCCAE4KB1ACCGEOBZXV1eCgoLYWbmT3Um7GeI7BEcHR6VjtUtOfo5tuW/vvjhrnZutW7Z2ObtT4qmsqqS0ohQvdy8igyO4/PzL0Ov0LdqzWq0kpiWyZstayirKePKuJyguLWHpiqVsi9rOgeIDGHR6wkeGc/X0q/Bw82gzW8H+ffy2+jfiUxMoLCrEYrXQt3dfxpnO5oJzprX6GZeUlbD5ny2s376B+266hz69+rB0xc8sX7ecsopyJo05hzuuvf0EP7WOMdeb2Z20G62blsDAQFxdXU/q8YUQQpwcw4YNIyYmhpqyGmITYhlrGqt0JNGN5Bfms69oH7p+Okwmk9JxhBBCCHGIFCCEEEKcEsLCwkhKSuJg2UGS0pIYOXyk0pGOaf+B/UQnxNheXzBxmm35p2WL+Wrp1/gN8uOpu5+gt2dvDpQcZMHCBfy88he2RW3njSdfw6AzAFBWUcb3v/3A1l1bKSo+AEDQsEDiU+J59f3XKS0vRaVSYbFYKCo+wIoNK9mycysvPDSbIT6DW2Rbvekvvlj8JXdedwc3X3UTWCE2KZb5C9/k0x8+Y+3Wdcx56AV0rjoAVm1azYbtG4lLisNitQDQYLEwf+ECtuzcSn1DPQB/rFnGNRddjd61ZfGkqySlJVFvV49erycsLOykHVcIIcTJpVKpiIyMZOWBlezN3cuIkhG4G92VjiW6iej4aNR6NT4+PvTt21fpOEIIIYQ4RIZgEkIIcUrQaDQEBwejMWpISEmgprZG6UhHVVlVyWsfvoG53gzAGaEmpp1zPgAJqQl8uWQRFquFaRPPt80T4WF05/6b7wOgYH8B3/76na09tZOayePOY/q5023vFewv4IOvP+SmK27ku7e/YfEHP/LyI3Po790fgPLKcl5+55UWk3Vu/mcL//v8bW68/HrGRIzGXmWPvb09YYFh3HzljQBkZGfwxkdzbfuMiRjD7AeeI9A/0PbeV0u/wqefDz+8+x3/nfUfDDoDI/xG4Op88nog1NTWkJCSgMaoISQkBI1Gc9KOLYQQ4uQbPHgwvbx7odapidodpXQc0U1k5WZRXFaMk85Jej8IIYQQ3YwUIIQQQpwygoOD0Rl14AjxKfFKxwHAYrVQX9/49L/VaqVg/z7+WLOMe5+/n5Q9KahUKq6YdjmP3fko9ip7ABLTkmz7l5SVNGvP093T1ushOT3Z9r7aSc3AfgOZNvF823vm+npeengO54yeiLPWGXuVPUH+Qbz0yIu2NvYf3M8fa5fZ9qmqruLdL9+jl4cX54w+p8X5jB41Ggf7xg6S0QkxpGamAeCs0aJSqfAfPMy2rVaj5coLrsDBwYGp46ewaMEXvPrYy6hUJ+/yIj4lHhxBZ9QxcmT37xUjhBDixJlMJtR6NQVF+yjYX6B0HKEwi8VCTEIMGoOGoUOH4unpqXQkIYQQQjQhQzAJIYQ4ZTg6OhIWFsamsk2kpKcwfMhwXJxdFM2UkpHKjQ/fjJ2dHfX1ZlT29rhoXfD26s2EM8dz7thJ9OnVp9k+kcER/LzyF1QqFaEjQlu0eXii6qqa6lbWqW3LA/r0b3WeCDeDG1dccDkLv/sEgA3bN3LFtMsBWLVxNRVVFUSGRGJnZ9eyfbWaAX37k5GdCTT21vDzHWpbf7g4ATDOdHZbH8tJUVlVSUp6Ci69XRg1ahSOjqfGvCBCCCFOTP/+/ek/oD97KvYQHR/N1AlTlY4kFJSRlUF5dQUGdz0RERFKxxFCCCHEv0gBQgghxCllxIgRxMXFUVNWQ1xSHGeOOlPRPMMH+/Pyoy91aB+ffj58Of9zgGZFgDpzHduitlNRVQlAw6F5FY7H+DPG2QoQ2XnZmM1mHB0d+SduJwBbd20lKr71oSvM5jo06sahjCoqK9o8hpOj03Hn6wyxibHYa+0xuBsICAhQNIsQQoiTy2QykZOTw8G8g2TnZTOg7wClIwkFNDQ0EJsUi9aoYfjw4RiNRqUjCSGEEOJfpAAhhBDilGJvb094eDhriteQvncPAX4BtuGGTiVNCw9ZedksX7ecrLxsRo86C42TusW8DR1l0Bno5eFF4YH9WKwWyivLcTe6k5mTCcD0SRcy69KZJ3QMJZWWl7InKwNdH1ciIiKwt7dXOpIQQoiTqFevXgwePJikiiRiEmLo36d/qz37RM+WkpFCTX0Nbno3wsPDlY4jhBBCiFbIHBBCCCFOOX5+fnh4eeDk6khsQqzScY5bRnYGL/5vDq998DqmkEheevhFLjhnGg4OnfN8gFFvtC0f7q1Qeah3RU1d957E+1hi4mNwcnXEs5cnfn5+SscRQgihgMjISDR6DWVVZWRkZSgdR5xkdeY64pPi0Rq1BAYG4uKi7LCcQgghhGidFCCEEEKcclQqFSaTCY1BQ1ZeFgeKDygdqcOWrviZB158iJq6WuY/NZewwLBOP4bq0KTXTk5OtrkyHA8VNwoKT91JOw8UHyA7PxuNQUNkZOtzWQghhOj53Nzc8Pf3R2vQEpMYQ0NDg9KRxEmUmJpIvV0DLgYXQkNDlY4jhBBCiDZIAUIIIcQpydfXF+8+3qh1aqLjo5WO0yErN67isx8/x2q1cs8Nd6NWq4+903EorygDGuepOHyT3t3oDkB8agK1tbXHbCMjO5OyQ+10F9Hx0ah1arz7eOPr66t0HCGEEAoKDw9HrVNTY64hNSNV6TjiJKmuqSYpLQmNUUNISAgajUbpSEIIIYRogxQghBBCnLJMJhNqg5p9RfvIL8xXOk67ffPLt0DjEEneXr1brLdaT/wYVTXV5O9v7OUwzjTO9v7wIcMb11dXsfjPJUdt42DJQd789E3UTl1TIDke+YX57Cvah9qgxmQyKR1HCCGEwlxdXQkKCkLrpmV30m7M9WalI4mTID45HhxB76YjKChI6ThCCCGEOAopQAghhDhl9e3bFx8fH9T6k9sLoukQDw0WS4f2LS0v5WDJQQDKK8tb3CipqKyguKwYgDrz8d9E2fLPFiwWC95e3kw8a4Lt/UljzrEt/7jsJ7bu2tbq/geKD/DcgueZNGZStypARMdHo9ar8fHxoW/fvkrHEUII0Q2EhYXhrHem3q6epLQkpeOILlZZVUlKRgpao5ZRo0bh6OiodCQhhBBCHIUUIIQQQpzSIiMjcdI5UVxWTFZu1kk5ZnFpsW256GBRh/Z1dXbF0aHxD+X6+nq+XLzIVtDIyc/htQ9eR31owujS8lLy9uVTU1vDvqJ9LdrK3ZdHRVVFi/crqir47rfvcHJ04sFbH2j2h3mQfxBnhp0JNBZSXn3/NeZ9vIC/Y/8hIzuT6IQYvlr6Nfc8dx9uBjcuOGdas7ara6ptyyVlpR069xOVlZtFcVkxTjon6f0ghBDCRqPREBwcjMaoISElgZraGqUjiS4UkxCDg9YBo4eRgIAApeMIIYQQ4hgclA4ghBBCnAgvLy+GDh1KQmUiMQkx9O/TH5Wq6+rrqRmpJO1Jtr3ef3A/KzesYuLoCbbCwtHY29tzzuiJrNiwEoBfVv3Kig0rUTupsVgtPHrHw/y1eQ3rtq3HarVy/wsPYGdnx3P3PUNvz+bDNVXXVPPoy49z3YxrMYVG4ujgSEZ2Ju988S7VNTU8c+9TDB/i3yLD/Tffy0vvVBCXvBur1cr67etZv319s21MoSYevu1B7A9NZA2QnrWHrVFHekz8sfYPgvyDcDMY2/XZnQiLxUJMQgwag4ahQ4fi6enZ5ccUQghx6ggODiY+Pp7aslriU+IJHxmudCTRBUrKSsjIzkTXx5WIiIguveYTQgghROeQAoQQQohTXkREBHv27KE0t4yMrAyG+A7p9GOs2rSaj775mNq6lhM3v/Plu7z31fv08+7Huy+8fcy2br36FvSuetbv2EBJaQluBjfODDuDS6bMwKg30sujF1l52eTk5zCw30BmXnIdI/xGtGhn6MAhXDX9Sr7/7Qfe/uIdnByd0Lm4Ygo9g2fvexqDztDq8Z21zrz40Av8tWUN67auIyM7k+raavSueoYN8uO8sediCm3ew+DBFx8ibW96s/cSUhO54aEbcXV25Z0X/meb4LorZGRlUF5dgcFdT0RERJcdRwghxKnJ0dGRsLAwNpVtIiU9heFDhuPi7KJ0LNHJYhJicHJ1xKt34wMoQgghhOj+pAAhhBDilGc0Ghk+fDixlbHEJsXiO8AXe3v7Y+/YAeeNPZfzxp7bKW2pndTMunQmsy6d2er6Pr368Oaz89vVVkhACCEBIR3OoFKpOnRO85+Z1+FjdJaGhgZiEmPQGjUMHz4co9GoWBYhhBDd14gRI4iLi6OmrIa4pDjOHHWm0pFEJyo6WEROfg76fnoiIyOxs7NTOpIQQggh2kH6KwohhOgRwsPD0eq11JhrSMlIUTqO6ETJe5KpbahFq9cSHi5DagghhGidvb09ERERaAwa0vfuobT85M5VJLpWdHw0ar2aPn37MHDgQKXjCCGEEKKdpAAhhBCiR3BxcSEwMBCtm5b4pHjqzHVKRxKdoM5cR0JyAlqjlsDAQFxcZDgNIYQQbfPz88PDywMnV0diE2KVjiM6Sd6+PAoPFKLWqzGZTMfeQQghhBDdhhQghBBC9BihoaG4GFyot2sgKS1J6TiiEySmJlJv14CLwYXQ0FCl4wghhOjm7OzsMJlMaAwasvKyOFB8QOlI4gRZrdbG3g8GNQMHDqRPnz5KRxJCCCFEB8gcEEIIIXoMjUZDcHAwW8u2kZiaiN8gP7QardKxOlVlVaVtuaqmWsEkXa+6pprE1EQ0nlpCQkLQaDRKRxJCCHEK8PX1xbuPN7VltUTHRzNp7KR275uTn8O2qO1EJURTWFRIaXkpaic1AK7OLvT28san7wAGDfBFq3FmyZ9Luei86YyNGNNVp3Pay8rNoqS8BH1fvfR+EEIIIU5BUoAQQgjRo4wcOZL4+Hj2l9UQnxxPREiE0pE6TUNDA3+uX2F7nZmTSWxSHCP9g3rkRIzxyfHYOdmhd9MRFBSkdBwhhBCnEJPJREFBAfty95FfmE+fXkd/ar7wQCGLlnzFhh0bUalUnDf2PK696GqGDRqGo6MjFouFnIJcNmzfwK+rf6Omtsa275Rx53X16Zy2LBYLMQkxaIwahvoNxcPDQ+lIQgghhOggKUAIIYToURwdHQkLC2Nj6UZSMlII8AvAxfnUnzdgZ9xOXnn/NerqjsxtYbFYeHruMzg5OjE2cgz333yfggk7V0VlBSkZKbj2dmXUqFE4OjoqHUkIIcQppG/fvvj4+JBWnkZ0fPRRCxC7k3fz8ruvUlFVQS8PL566+ykGDfBtto1KpcKn7wBmXnIdU8ZP5pX3XiMtMw2A6ibFiNNdTW0NGnXn9Vjck7WHytpKDJ4GIiMjO61dIYQQQpw8UoAQQgjR4wQEBBAXF0dNWQ0xCTGMjhitdKQTFj4ynJ/e+0HpGCdNbGIsDloHjB5GAgIClI4jhBDiFBQZGUlWVhbFecVk5Wbh08+nxTZR8VG8+PZL1NfXY9QbmfPwHLy9eh+1XS93L15+ZA7Pzn+epPQkamtru+oUTimxSXEkpiVy1YVXdkp79fX1jb0fDBoCAgLQ6/Wd0q4QQgghTi6ZhFoIIUSPY29vT0REBBqDhozsTErKSpSOJDqgpKyEPdkZaAwaIiIiUKnkckUIIUTHeXl5MXToUNQGDTEJMVgslmbr9x/Yz9yP51NfXw/AHdfefsziw2EatYaHb38QJ0cnqmt79pxM7XGw5CBzP5pHQ0NDp7WZkpFCncWMs8GZUaNGdVq7QgghhDi55C96IYQQPdLQoUPx7OWJk6sjMQkxSscRHRCTEIPaVY1X78YbR0IIIcTxioiIQKNTU15dQUZWRrN1C7//hPKKcgCGDfJjTAd7TPby6MXZkWNP+x4QtbW1vPTOK536wEeduY745Hi0Rg1BQUE4Ozt3WttCCCGEOLmkACGEEKJHsrOzw2QyoTFoyMnPoehgkdKRRDsUHSwiJz8HjUFNZGRkj5xcWwghxMljNBoZPnw4WqOG2KRY2xP6GdmZbIvabttu8tmTj6v90eFnndY9IMrKy3juzdmkZqZ2arsJKQlYVBZcDC6EhIR0attCCCGEOLlkDgghhBA91sCBA+nTtw+1ZbVEx0dz7tnnKh1JHEPU7ijUejV9+vZh4MCBSscRQgjRA4SHh5OamkpxaTEpGSkEDA1g3bZ1WK1W2zYhI4KPq+3IkEgiQ5pPjmw2m9n0zybWbFnL/oNFlJSVYG9vz9CBQ7jwnAtabL9++3rmfbygRdsuWmcWPDsfby9v23svv/sq26K22V779vflf8+/2Ww/i8XCum3r2bBjIwX7Cyg8UIhBZyBoWBAzJl/EkIFD2jyf1Mw0lq1dTmpGKhVVFVRVV+Ht5c3o8LOYMfniZhNM19bW8uyC5yksKrS99/PKX/hz/Qpb/vdfes+2rqGhgWVrl7NmyxoKivZRX19Pbd2R3iNvPjufwT6Dqa6pJiktCa2XltDQUNRqdZt5hRBCCNH9SQFCCCFEj2YymcjPz6cwt5C8fXn07d1X6UiiDXn78th/cD+6fjpMJpPScYQQQvQQLi4uBAYGsrNiJ/FJ8QwZOITohGjbep2rjt6e7Zv74VgKDxQy+80XyCnI5b+z/sO5YycBsOnvzbz56VtExUdz85U3MWPyxbZ9xp8xHv/Bw3luwfPkF+YDEDoihOfvf67FPEhP3vU4f23+i7c+e5sJZ47nvpvvbba+rKKMOW+/jFFv5J4b78bD6E5ZeRmf/vgZa7asZdM/m7jzujuYMq55jw+r1cqH33zMsrXLMIWamPPwCxj1RnILcnntgzf45pdv+Sf2H15+9CWcHJ0AUKvVvPnsfOKS4nhq7jMAzJh8MddefE2rn81rH7zOjui/ufuGu5g4egL2KnuycrP4+LtPiEk8Mlzm7qTd2Knt0LvpCQoKOp4fgxBCCCG6ERmCSQghRI/Wp0/jk/RqvZro+OhmTzuK7sNqtRIdH43aoG7sudKnj9KRhBBC9CChoaG4GFyot2sgMTWR7Lwc2zp3g1unHeftz98hOz+H3p69mTJuMvYqe+xV9ow/YxznnDURgC8Wf8nBkoPN9vP26s3t19xqe11ZVdWi+HCYRq3FwcGBGy+/AXuVve19c72Z5xfMpqyijEfueAgPozsAep2ee268m769+9LQ0MD7iz4gPiW+WZvrtq1n2dplAFw6ZQZGvRGAft79uPO62wFIyUjl97/+OK7PJSYxlm1R2wkOGMm5YyfZcvv08+Hpe560Tf5dXlFOamYqWoOWUaNG4eAgz0wKIYQQpzopQAghhOjxIiMjUevUlJSXkJWbpXQc0Yqs3CxKyktQu6ql94MQQohOp9FoCA4ORmPUEJMQS31DvW2ds9al046TmJ4EQGkrEzIfHvqooaGBtMy0FuvDR4YzbJAfAKmZqW1es2zYsYGxEWNwP1RgOGzx8iWk7U3nsvMvxdHBsdk6e5U9YyPGAGCxWlj859Jm65MO5QZaTCbddMim5D3JrWY6lsPn29rcTmonNTMmzwAgNikWB60Dbp5uDB8+/LiOJYQQQojuRQoQQgghejxPT0+G+g09dNMhBovFonQk0YTFYiEmIQaNUYPfMD88PDyUjiSEEKIHGjlyJHo3HRb7hmbvm+vNnXaMc8dMQmWnYvyZE1qsUzs52ZaralqfuPqSKZfYln9fs6zF+uLSYnbE/M0F51zQ7H1zvdnWO2Gk/8hW2x7qe6SQkJia0Gzd6PDRaDVa+vTqg/9g/3/lPjIHQ1X18U24bdQbAIhJiCUqPqrF+mkTz8fN4EZmdiYao4aIiIg2e4AIIYQQ4tQi/RmFEEKcFiIiIkhPT6estIw9WXsY6jtU6UjikD1Ze6isrcTgaSAiIkLpOEIIIXooR0dHwsLCKCsua/Z+VXVVpx3jzuvu4LZrbm02NBJATn4OO+N22V43NOmB0dSZo86gl4cXhQf2s37bOm64bBYuzkd6aKzauJpBAwbhP3hYs/1SM9Ioq2g8r0dfeazVtq1Wq20S6QaLhTpznW0+h5CAYL7939ctbvpXVVex6Z/Nx8x9LKYQEwadgdLyUl743xwuPu8irrzwSpw1Wts2MQkxqF3V9OrdiyFD2p4oWwghhBCnFilACCGEOC0YDAYCAgKIqYwhNjEW3/6+Mq5wN1BfX9/Y+8GgISAgAL1er3QkIYQQPVhAQABxcXFo1BpqamuAxl4FVqu11eGBjsfh4kOduY6NOzaxbts6env1xs147Lkm7FX2XDjpQj794TOqa2tYs2Ut08+9EGjsMbhy40quuajlJM+ZOZm25U9fX3hc1zhNiw/Je1JYvm45JWWlnB05psNt/ZvOVcfDtz/Ey++8THVtDUv+XMqaLWuZdelMJo0+h6KDReQW5KLvpycyMrLTfhZCCCGEUJ70aRRCCHHaCA8PR6vXUttQS0pGitJxBJCyJ4U6ixlngzOjRo1SOo4QQogezt7enoiICPr262N7r7qmmpz8nKPs1THmejM/r/yF25+4k8ycTB694xHuvv4uBg8Y1K79J599HtpDPQOWrVuO1WoFYNfuXdTU1jLOdHaLfSqqKmzLNXU1x519d0o8j7/2JAu/+4QLJk7j+fufZdKYScfdXlMhAcG8/NjLDOw3EGica+Ltz9/h4ZcfZdXG1aj1avr264uPj0+nHE8IIYQQ3YMUIIQQQpw2nJ2dCQoKQmvUEp8cT525TulIp7U6cx3xKfFojRqCgoJwdnZWOpIQQojTwNChQwkMGtHsvfh/zYlwvPYV7ePhlx7h85++4K5Z/+GWq25G56rrUBvOWmfOHdt40z+3IJfohGgA/tywkvPOPg9HR8cW+zSddLqgsKDDuS0WCwu/+4QnX38KL3dPXn3sZfwOTYjdmYb4DObNZ+dz85U3oXNp/FzSMtP4cflP5BblYTKZOv2YQgghhFCWFCCEEEKcVkJDQ3ExuGBRWUhMTVQ6zmktISUBi8qCi8GFkJAQpeMIIYQ4TdjZ2THr+lno9UcKAyvWrzjhdmtra3n+zRfIyM5kwpnjiQyJPO62pk+6EJVd45/rf6xdzoHiA+zavYtpE6a2ur270d22vHP3rla3acpqtRKbFGd7/c2v3/Lr6t/QqjX8d9Z/sLe3P8reJ8be3p4Zky/mo1c+4OLzLsLOzg6LxcKmDZvRarXHbkAIIYQQpxQpQAghhDitqNVqQkND0Rg1JKYmUl1TrXSk01J1TTVJaUlojBpCQ0NRq9VKRxJCCHEaGTJkCOdPO3IzPz1rDzuidxxXWyVlJQCs276e3IJcAIYPGd5iu0MjKbWLt5c3Z4Q19gb4J+Yfvlr6NREjw/Hy8Gp1+4ChR4732+rfKS0vPWr73//+A6kZqQBUVlXy88pfAPDpN9A2/NOR3EcP3nS+hoaGhla3+WnZYpLSk5q95+LswjmjJxIyIhhoLODExMQe9VhCCCGEOPVIAUIIIcRpJygoCL2bHju1HbuTdisd57S0O2k3dmo79G56goKClI4jhBDiNDTr+lmERxyZf+jtL95l/8H9HWpj8fIlzPt4PgAZ2Rm29w+WHGyxbXZ+tm25zmw+ZtsXn3cRABarhb+2rOGCc6a1uW0vj16M9G/8Pi2rKOO1919v8yGLX1b9ysoNK23t5e3Lo66ucVjK4rLiVnIfmR+jrr5lbocmwz8dLG25/2Hrtq1v9tpisRCbEEvgyCPDYdW343MRQgghxKlFChBCCCFOOw4ODowaNQqtQUtqZioVlRXH3kl0mvKKclIzU9EatYwaNQoHBwelIwkhhDgN9enTh0sunUFYSCh2dnaUlpfy2CuPk5qZdsx9S8tLeeW9V9m1exdP3vUEAEa90bb+z/UryMprLDiY6838sWYZG//eZFufmNY4DOTe3L1tHmOE3wiG+g4FYECf/oQEHH24wpuuuBEH+8bv1N0p8dzz3L38uvo3UvakkJqZxvrt63nqjaf5/KcvuO/m+9CoNY25DUdyFxYV8svKX22vU/ak8M4X79q+q7PzsqmoqqCsvIziQ8UGb6/etu3/if3HVnz5O+Zvlq742bZu1cbVzSb7TstMo6quilpLY/HDxdWFiMiIo56jEEIIIU498he/EEKI09Lw4cOJjY2lpqyGmMQYxkSMUTrSaSM2KRYHrQNuHm4MH95yiAohhBDiZImMjCRrbxZuLm7s2buHzNy9PPLSo5xtGsuEM8czwm+EbUii2rpaMrIz2bJzC3/H/sPF513EeWefi72qcb6EcaZxLF6+hNq6WkrKSrjnuXtx0xupqKrEFBLJc/c9w73P34/VamXdtvXs2h3FUN+hPH//s23mmz7pQhZ88uZRez8cNtR3KA/e9gALFr6Jud5M4YH9LPzuk2bbuGideeI/jxESEGx7z8vdi7DAUKLiowH45IdP+e6371DZ26N2UvPMPU/x4TcfkXBo6MrbHrsdOzsVc596AzdDY+ElaFggu1PiKS0v5dbHb0fvqsfd4MZLj8yxHcdcb+bpec9y29W3EjoihLikOKot1fy9ZSeOjo7MfuF59Hp9e390QgghhDhFSAFCCCHEaUmlUhEREcGqg6vIzM5khN8I3AxuSsfq8YpLi8nMzkTXV0dERAQqlXTGFEIIoRxPT0+G+g2lrqqOwf0HMWjgYHbF7SI+NZ53vnyP8opytBotRr0RJ0cn/Ab5ER4UxnUzrkXt1Hz+or69+/DiQ7NZtOQr0rP2oLJTMbD/QM6fMJUzw84E4JqLrubnlb/g5OjE+DPGcd2Ma4+ab2zEGFZtXMWkMZPadT5jI8YwxGcwS1f8QnRCFAeKD2Jvb0+fXt5EjIzgwkkXtHq988jtD7No6VfsiPmb8spyPNw8GRs5hovPuwitRsstV97MvIULKCouYqivHzddcQN9e/ex7X/fzffyv8/eJjE9CTe9G2ebxnL19KtsvSwOO1hykNc+eB07Ozvs7e2xd7DnzDPOYO7c1xnmP6xd5yiEEEKIU4ud9VgzSolTwq233sonn3zCLbfcwsKFC5WOI4QQpwSr1crixYvJScvFy9WTCWdNUDpSj7du6zqKKoro79efSy+9tNnElUIIIYQSSktL+f777ynLLSMyONI27JHoGrV1tfyy4hec3J0wnWUiMjJS6UhCCHHK6N27N4WFhSxdupQZM2YoHUeIdpHHDoUQQpy27OzsMJlMaAxqcgty2X+gYxNPio4pLCoktyAXtUFNZGSkFB+EEEJ0CwaDgYCAADRGDbGJsdTX1ysdqUdLSEnAam/F1eBKSMjR57UQQgghxKlPChBCCCFOaz4+PvTt1xe1Xk3U7iil4/Ro0fHRqPVq+vbri4+Pj9JxhBBCCJvw8HC0ei21DbWkZKQoHafHqq6pJjk9GY1RQ2hoKE5OTkpHEkIIIUQXkwKEEEKI057JZEKtV1NUXEReQZ7ScXqk3IJcioqLUOvVmEwmpeMIIYQQzTg7OzNy5Ei0Ri3xyfHUmeuUjtQjxSXFoVKr0LvpCQwMVDqOEEIIIU4CKUAIIYQ47Xl7e+Pr64vaoCYqPgqZHqlzWa3Wxt4PBjW+vr54e3srHUkIIYRoISQkBBeDCxaVhcTURKXj9DjlFeWkZaahMWoIDw/HwcFB6UhCCCGEOAmkACGEEEJwqBeEq5rSylL25u5VOk6PkpmTSWllKWpX6f0ghBCi+1Kr1YSGhqIxakhMTaS6plrpSD1KbGIsDs4OuHu64+/vr3QcIYQQQpwkUoAQQgghAHd3d/yG+aExaIiJj8FisSgdqUewWCzEJsSiMWgY5j8Md3d3pSMJIYQQbQoKCkLvpsdObcfupN1Kx+kxikuKyczJRGvQEhkZiUoltyKEEEKI04V86wshhBCHREREoNFpqKqrIn1vutJxeoS0zDSq6qrQ6BqHWxBCCCG6MwcHB0aNGoXWoCU1M5WKygqlI/UI0QnRqHVqenn3YtCgQUrHEUIIIcRJJAUIIYQQ4hC9Xk9AQAAag4bYxFjq6+uVjnRKq6+vJy4pDo1Bw4gRI9Dr9UpHEkIIIY5p+PDhuHm64aB1ICYxRuk4p7x9RfvIK8xHrW8citHOzk7pSEIIIYQ4iaQAIYQQQjQxatQonA3O1FnMJKcnKx3nlJacnozZasbZ4ExYWJjScYQQQoh2UalUjb0ijRoyszMpLi1WOtIpLXp3NGq9mv4D+tO/f3+l4wghhBDiJJMChBBCCNGEs7MzI0eORGvUEJ8ST21drdKRTkm1dbXEp8SjMWoYOXIkzs7OSkcSQggh2m3IkCF49fLCyVVNTIL0gjheuQW5HCg5gFrnhMlkUjqOEEIIIRQgBQghhBDiX0JCQnA1umK1t5KQkqB0nFNSQkoCVnsrrgZXQkJClI4jhBBCdIidnR0mkwmNQU1uQS77D+xXOtIpx2q1ErU7CrVBzeDBg+nVq5fSkYQQQgihAClACCGEEP/i5OREaGgoGqOG5PRkqmuqlY50SqmuqSY5PRmNUUNoaChOTk5KRxJCCCE6zMfHh779+qLWq4naHaV0nFNORnYGZVVlqHVqIiMjlY4jhBBCCIVIAUIIIYRoRWBgIHo3PXZqFXFJcUrHOaXEJcWhUqvQu+kJDAxUOo4QQghx3EwmE2q9mqLiIvIK8pSOc8qwWCzEJsSiNWjx9/fHzc1N6UhCCCGEUIgUIIQQQohWODg4EB4ejtaoIS0zjfKKcqUjnRLKK8pJy0xDY9QQHh6Og4OD0pGEEEKI4+bt7Y2vry9qg5qo+CisVqvSkU4JqRmpVJurUevUhIeHKx1HCCGEEAqSAoQQQgjRBn9/f9w83HDQOhCbGKt0nFNCbGIsDs4OuHu64+/vr3QcIYQQ4oSZTCbUrmpKK0vZm7tX6TjdnrneTFxSHBqjhsDAQHQ6ndKRhBBCCKEgKUAIIYQQbVCpVERGRqIxasjMyaS4pFjpSN1acUkxmTmZaA1aIiMjUankMkMIIcSpz93dHb9hfmgMGmLiY7BYLEpH6taS05Kppx5nvTNhYWFKxxFCCCGEwuTOgBBCCHEUgwcPplfvXqh1aqITopWO061FxUeh1qnp5d2LQYMGKR1HCCGE6DQRERFodBqq6qpIy0xTOk63VVNbQ0JqAhqjhuDgYLRardKRhBBCCKEwKUAIIYQQR2FnZ2ebgDKvMJ/CokKlI3VL+4r2kb+/ALVejclkws7OTulIQgghRKfR6/UEBASgMWiIS4qjvr5e6UjdUkJqAlZ7KzqjjuDgYKXjCCGEEKIbkAKEEEIIcQwDBgygX/9+qPVqouOjlY7TLUXvjkatV9N/QH/69++vdBwhhBCi040aNQpngzN1FjPJ6clKx+l2qqqrSE5LRuOmITQ0FCcnJ6UjCSGEEKIbkAKEEEII0Q4mkwm1zomi4iJyC3KVjtOt5OTncKDkAGqdEyaTSek4QgghRJdwdnZm5MiRaN00xKfEU1tXq3SkbiUuKQ57jT0GNwOBgYFKxxFCCCFENyEFCCGEEKecsrIyYmNiT+oxe/fuzaBBg1Ab1ETtjsJqtZ7U43dXVquV6Pho1AZ143wZvXopHanTWCwWdu+Op6ioSOkoQghxSiguLiEqKlrpGF0qJCQEV4MrVnsrCSkJSsfpNsoqykjLTEdj1BAeHo69vb3SkYQQQgjRTTgoHUAIIUTnWbt2Hd99+z3JScmUl5e3uo2dnR3Ozs646lzx9fUlMHAEU6ZOZujQoSc5bfuZzWbi4xP4e8ffbN+2g9i4WEJDQvho4Ycttq2oqODB+x8iMTGJm26+kZtvuanTckRGRpKZmUlZXhmZOZkMGtA1Ey0vXr6EH37/gUE+g3nmnqdwcXbpkuN0hozsDMqqytD31RMZGal0nBNWUFDAju072LplG9u376C0tJQPP/4AT09PpaMJIQQAiYlJzLx2VrP3nJ2d0Wg02NlBVVU11dXVAKhUKtzcjADU1ZmprKzEYrHY9rv6mqt45NGHjzuL2WwmNiaWbdu2s3XLNpKSkhg1KqzV7+eewsnJidDQUDaXbSY5PZnhQ4ej1chEyzHxMTi6OOLh5cGwYcOUjiOEEEKIbkQKEEII0YNMnDiBiRMnUF5ewSUXX0pxcTEADg4OPP7EYwwZMpia2lry8/KJjo7mr9Vr2L5tO59+8hljxozmiaeeoE8fbwXPoHVr/lpLamoq27dtJyEh8ajb7ti+g507dwHw+WdfdGoBwt3dHX9/f3ZX7iYmPoaB/QaiUnV+Z8If/viR6toaElITiEmMZXT4WZ1+jM5gsViITYhFa9Di7++Pm5ub0pFO2K+//EZxcTHr12+gtlaG1hBCdD81h4oLHh7u3P/AfYwZOwaDwWBb/+EHH/HRhx8Djb33fl/2q21dXV0dCQmJvPfu++z8ZyfV1TUnlCU2Jpbt23fw945/SEw8+vdzTxIYGEhcXBw1ZbXEJcVhCj29hx88WHKQrLws9P0aH0boimsjIYQQQpy65MpACCF6IJ3OleDgkbbXwwOGc8mlMwgOCcZkiuTiGRfx3PPPsvSXxYSHjwJg8+YtzLruerKzspWK3aYpUydz9z138dobrx5z2/CIcAKDAnF2dmbW9TM7PUt4eDhqnZpqczWpGanH1UZtXW2zJ1D/7aJzp6NRawgYGkBwwMg2t1NaakYq1eZq1Do14eHhSsfpFLffcRuPPf4oU6dOUToKgO0pZiGEOKyqqgqAF+e8wLQLpjUrPhxL49P7Ifzv7Tfp7d2b6kNtHa/wiHD+e9d/ePX1l0+onVONg4MD4eHhaI0a0jLTKK9ovdfp6SJqdxRqnZre3o3DVQohhBBCNCUFCCGE6KFcdTrbstrJqdVtPDw8mLdgHu7u7gAUFxfzxhvzTkq+49G7d+9jbmMwGPhy0eds3Lye226/tdMz6HQ6AgMD0Rg1xCXFUV9f3+E2Pvj6Iw4UH2hz/XUzruWHd7/jtcdfwdXZ9UTidhlzvZm4pDg0Rg2BgYHomvx76wm8enkpHYG///6Hr7/6RukYQohuprq6Bt9Bvpxx5hnH3YZGo+Gyyy6luqZzipw9af6f9vL398fNww0HrQOxiSd3XqrupGB/AQVF+1Dr1ZhMp3dPECGEEEK0TgoQQgjRQ9nZtW87nc6VyVPOs73etnVbm/NHKK27TGgYFhaGs96ZeupJSkvq0L6rNq3mr81/YbG23QPiVJCclkw99TjrnQkLC1M6TqdTeviI/fuLeOqJp2hoaFA0hxCi+6mqruKss8484XZGjz6LqqrOKUAo/TtTCSqVisjISDRGDZk5mRSXFCsdSRHR8dFo9GoG+AygX79+SscRQgghRDd0+l0pCiGEaMHX19e23NDQQE52jnJhTgFarZbg4GA0Rg0JqQnU1rVvroCE1AQ++OrUn5iz5tD8FBqjhuDgYLRamXyzM1VX1/DQAw9x4MBBpaMIIbqhsWPHcONNN5xwO8P8h/HY4490QqLT1+DBg+nt3Ru1Tk10QrTScU667LxsDpYexEnnJL0fhBBCCNEmKUAIIYRoMYxQw1HmJziVmM0dHx6pvYKDg3E1uGK1txKfEn/M7aPio5n91ouY680dOs7xDPHU1RJSE7DaW9EZdQQHBysdp0cpLi7hnrvuJT4+QekoQohuyt3dHU9PzxNux97eniFDhnRCotOXnZ0dkZGRqPVq8grzKSwqVDrSSWO1WolJiEFt0DBkyBC8vJQfulAIIYQQ3ZOD0gGEEEIoLyMj07asUqkYMKD/Ubc/ePAg33z9LTu276CgoICqqmr69uvLOedMZNb1M3FxcWmxT1VVFX+tXsNvv/3OjBkXMe2Caez8Zydff/0tsTGxVFdXM3CgDxddfBFXXHn5cQ+3VFtby5YtW1m1YhVpaWn88NP3bW5rtVpZu2Ytv/76G8lJKdTX1+Ps4swwPz+uvPpKIiMjWt2vrq6OVStXs3rlX+Tk5FJdVY1GrWao71AuPOcCIkMim22/M24nb3/+TrPhdB6a84htyIop4yZz3YxrbesysjPYsGMTm/7exL033s3I4W1PRJ2+N50VG1YSn5pATU0NpRWluOndGOE3ginjJjPCL6DV/aqqq9gevZ1Nf29GrzNw3033UF1TzS+rfmX99g0UFhXiZjBy7thzueKCy7FX2dv2S05Lxrm3M6GhoTi1Mb8INPam2b5tO7//9gd6g57Hn3iM7OwcFn2xiM2bt3Dw4EG8enkxceIEbr3tljbnkaisrOSPP5ax4s+VHCg6QFFREc7OWkYGBzPr+pmEhoa0mQGgpKSEn35czLq16ykqKqKhoQEPDw9GjzmLq66+sl1zixxWV1fH1MnTKC0tbbEu0hTBBx++3+w9s9nMksVL+euvNRTk57N/fxGenp6cedYZXH/D9c3+X6uuruGu/95Nfl6+7b1FX37F4p8WA+Dq6sqSnxe3O6sQQhyPHTv+ZsniJaSmplFaUkpdXR2+vgOZOm0qV155BQ4OHfsTcuHHn/DpJ59RW9u8t6C9gz3vvPs2JlPz78yU5BS+++4HEhMSyMnJxcHBgSFDhnDh9Au4eMZF2LV3jMl/aWhoYOOGTfz8889k7c2ipKQUi8XC0KFDmXHJxVw4/YJm2+/bt48nHn+KmOgY23v9+vXlmmuv4Zprr6aoqIg3Xp/Hmr/WYDn04Mb3v/9AxMhwpo6fgin0SI+Az378nBUbVlJVXUWfXn14+ZE5eLh52NabzWY2/bOJNVvWsv9gESVlJdjb2zN04JBWryt+WraYL5csanGOaic1j//nUcJHhtve++T7T/l19W9YrVYAhvoOZf7Tc9v9uVVUVrBl11Y27thESEAwl0+7jP0H9/PFT1+yKz6K6ppqPFZ5kJaazm2332r793HgwAG++/Z71qxZS35ePkajgekXTef2O2476jXerp27+OmnJaSlpZGTk4NWo2V4wHAuvfQSJp17Tqv71NfX8+MPP/H773+Qm5OL2WympqbGtv6b777C39//hPcBKCgoYPFPS9i8eQsV5eUUFR3A09ODM888k5tuvpE+ffsc9fOMi9vNV4u+Ji42lqqqapzUTgQFBnL2uLMZM3b0MedTOZ5rcCGEEEJpUoAQQojTXFlZGX+t/sv2+uxxZ2MwGNrcfsvmLTzz9HP857938slnC7G3tychIZGnn3yGjz9ayO+//cFHCz+gb9++APzzz06++fpbtm3dZrv5cOH0C/jfW2/z5ReLUKlUthvzyckpvPH6XDZv2sy8BXOPenP73/Ly8vjgvQ9Zt349lRWVAPTp0/YfgfsL9/PkE0+xr7CQhx9+kNFjRuPg4MCGDRt54L4HWbNmLVPPn8KLc15oNrZ1fl4+99x9H5mZmTz+xGNU11RRuLeQqrIqflvzB1Hx0dx85U3MmHyxbZ/wkeF8Pu8z3vz0LdZsWQvAvKffoLdn8xvf3//+A+u2rSe3IPeY52uuN/PxtwtZsWEll0yZwSuPvoTeVU9FZQW/r/mD73//gbVb1zJp9Dn8d9Z/cHR0BKCiqoKvln7N+u0bqKxq/JzOjhxLRnYmr7z3CmUV5Wic1JjrzRQe2M83v3xLeUU5t13TOKF3bGIs9hp7DG4GAgMDW82Wm5vLJws/Y/269ZSUlACNP/PVq/7i+edmU1NTg52dHRaLhdycXL5a9DVr/lrLRx9/0OIP9+TkZO6/90FKy0p5+eWXmDBxPGZzPd9/9z0L5r/Jxg0beemVOZx33rmtZlm/bj2zZ7/IGSYTL78yB5+BPpjNZp57djZffP4l3333PXNeepFzzpl4zM8cwMnJiTXrVvPxRwv54P0PCQwcwXUzr2Ps2WNa/NGfm5vLPXffR0REBHPnvY5er6egoICXXnyZJYuXsuyP5bz6+iucffZYALRaDd98+xX//LOTO267E4BZ18/kjjtvb1c2IYQ4EWazmccfe5J1a9dx6WWX8MWXn+Hq6kp8fDyPPPwY896Yzz9/72Te/Dc6VAS49bZbmHX9TM6ZcC5Wq5Urr7qC6RddyKBBg1rMHbHw409YsmQpz89+jmefe5q6ujrW/LWWOS++RFRUFKtWrWbBm/M6dH0AUF5ezn333E9MTCx33Hk7r7/xGo6OjmzfvoPHHnmc5559noSERB597GHbPr179+bd997h0hmXUVjY2LPh4UceYtz4cQB4enry2uuvsPDjT3j/vQ8A6Ne7L7dcdTP9vJvPhXDTFTei1Wj59tfveOK/jzUrPhQeKGT2my+QU5DLf2f9h3PHTgJg09+befPTt1q9rrh82mUE+Qfx3PznqK5tvGl+2fmXcf2lM1v8bG656mbGnzGOB+c8TGRwBE/89/F2fWZZedl88dMXRCVE23pjBgwdzt+x/zDvo/nU1NWg1WqxWq0U7itk4cefUFZWxmOPP8qaNWuZ88JLqFQqVPYqamtr2Xdom9raWu5/4L4Wx7NYLLz26uvs2rmLF16cTcCIAKqra/jl51+YP28B27ZuY/pFF/Lc88+2OMfHHn2CDes38MyzT3HBhRdgb29Peno6896Yz/btO1o9v+PZ54/flzHnxZfw9vbmjXmvMXToUMrLy3nlpVdZvHgJa9asZeGnHzUb2rSpL79cxNtvvcM1117NC78swcnJiVUrV/H8cy+wfv0GAFxcXNBo1AC8Mfd1Qpo8ZNHRa3AhhBCiu5AhmIQQ4jRWXFzCIw8/ZrtJ7O3tfdTxoONi43jg/oe48qoruPyKy3B0dESlUhEUFMhzzz8DQH5+Pvfdc79t+KOBPj7cfsdtBIcceYr/y88XkZmRyedffsaWbZtYv3EtDzx4v+0m+ZYtW3n7f+906Fzc3Nx45LGH+XjhsedYKCoq4o7b7yQrK5tPPl3IuPHjbE/sjRt3NoFBjTfW/1y+gj9+X9Zs3xdmv0hGRgb9+vfj8isuIzIyEmc3Z9ROGsZGNt5I/mLxlxws6fj4/ZPPPo/5T89l+JCWT9w1ZbVamfvRPP5cv4KLzp3OjZffgN5VD4CriytXT7+K+2++F4C/tqzhtQ/fsD2d6aJ14c7r7mD2/c/Z2sspyOX1D17nuhnX8vVbi/h83mfMe3ouOtfGHgl/rF3GgeIDlFWUkb53DxqjhvDw8DafYNTrDVxz7dXNniaNiY7ls88+Z85LL7Jx8wa2bNvMvPlzbUM25OXl8egjjzUbcspqtfLYI09QWFhISHAwEyaOB8DR0YGZs67DZIqkoaGBV156lbq6uhY5Vq1azSMPP8a4cWfzymsv4zPQ59D+jtx22y0A1NbU8vyzs6mqqjrqZ95UYmISP/7wI3fd/V8+//Izpkyd3KL4UFZWxu233omnhwdPPvU4en3jz8fb25vX3ngVV1dXampqeOzRx8nOym73sYUQoqt88fmXrFu7DmgsGri6ugIQGBjI3Xf/F2gs6q5u8tBCezQ0NPD6a2/g4zOAb777ivsfuI8hQ4a0KD4s+vIr3n/vA2a/8LytV4STkxNTz5/CDTdeD8C2rdt47dXXO3xuC+a/RUxMLA4ODtx2+604OTlhZ2fHmWeewazrZwLw/XffEx/ffEhFrVbDlVddYXu9Z09Gi7avufZq23dAZU0VUbujbL0NmsovLCB0RCi+/X2bvf/25++QnZ9Db8/eTBk3GXuVPfYqe8afMY5zzmosjrd2XTF8iD8zpsywva6qrmyzMFRWUQ7A9ZfNancPFi93T+6/+T6uvODI+e+Kj+Lrn7/hsqmXcNm0S7j+xpn8tORHfAc1ntPin5bw8UcL+erLr/jwo/dZvWYlK1f9yTfffYWHZ2PR5btvv6e8vKLF8ea+Po+fl/7C3PlvEDCisfemVqvh6muu4sILG68nfvv1dz795LNm++3Y8Tfr1q4j0hTJRRdfZLs2GTJkCPPfnEe//i0nxj6efXJzc5k9+wXq6uq44MJpDB06FACdTsczzz2Nq6srxcXFzJ/3Zquf55o1a3lrwf/o08eb++6/F7VajZ2dHZOnTObWQ9ckAGeedSYrV69g5eoVzYoPx3MNLoQQQnQXUoAQQojTiNVqpaysjF07dzF/3gIunj6Df/7+B3t7ey648AK++vrLNoejaWho4Nlnnsfe3p7rb7i+xfqwUWG2buN79mSwft16ALx6eTF8uD/nnnvkCfWRwUHMf3MeQUGBODg44OrqysxZ1/HEk0eeyvv++x8oKCho97lptVp0Oh3+/v54eLgfdduX57zC3r1Z3H3PXXh5tRxH+9zzJtmW8/Pzm62LiY0F4OChCYKHDRuGu6c7ji4OODk0FlAaGhpIy0xrd/bD3AxuaDVaAv1a71lw2MqNq9i6axuODo5cdeGVrW4z/ozxjA4fDcCO6B38uX4FgO3mxKABg2zblpaV8Ox9zzD+jPG2oZb8fIcybcL5QONTiXHJu4mJj8HRxREPLw+GDRvWZj6dzhU/v6HMuGSG7T0nJ0c++fRjJkwcj1arwdHRgQkTx/Pu+2+jVjc+6ZeQkMjqVUdubBUXF5Od3Xhz/sDBlgWdwzcoSktL2bs3q9m6ffv2Mfu5F9BoNTz8yEMt9h00eBBDhgwGGod4Ki0ta/N8mlq96i8eevBh5rz0IjffclOLG2iHvTn/LQoKCrj19ltbrHN2dubscY3FqtqaWr755tt2HVsIIbpSbEysbfnwd9xhAQFHhvOLi41rd5vl5eXce8/9VFfX8NkXn7b5ZHh2dg7vvvMeYWFhrQ5/OHXqFNvyb7/+zoEDB9qdAY6cW319fYsh9AIChtuW42J3t9h3xoyLbQ9ILFu2vMV6FxcX29BAJaUlZBVkk5mT2WybOnMdO2J2MG3i+S32T0xPAhq/i/9tyMDGOTrauq6YPulCnLXOAKzbtp6KqpY39hvXrWPYID8G9hvY6vrWaDVadK4627UEQEN9PXMefgE77NB56ggMDGTgQB+uv36WLeeqVat59/138BvmZ9vP39+fq6++CmjsaRMVFdXsWFG7ovj++x+YMmUyAwe2zDhl6mTb8leLvm52gz3h0JxJrRVfNBoNs2bNbPH+8ewTH59AQ31jj91///+h1WoZ6NuYe3dcy39DAB998DEAw4cPb/EAx6WXXWK7Ftq8aXOLAtbxXoMLIYQQ3YUUIIQQ4jQQExPLeZOmMHb0OCaOn8Rtt97B1199Q2hYKM8+9wx/rlzGCy8+j5u7W5ttrF+/gaysLAIDR6DValrd5vANYYDo6Ohm65zUR4ZLCBsV1ur+F8+4CP/hjU//N9Q3NLsZ3RFOTuo218XFxrF+/QYcHR05b3Lrw/Zcc83V3HzLTVx/wyyuve6aZusuumg6KpWK86c13kRQqVRERkaiNWgpLTtyU6Oqpvq4sgO2Gx1tWby8cR4Av0FDcXVxbXO7S5o8Gbl4+ZI2j9G3d1/69Go5XFXTIkV2XjZZeVlojRoiIyPbvPHelLrJzzxgRAAaTct/N0OGDOGyyy+1vV7x5wrbspubG2ePG4u9vX2zm09H2j/yc66srGy27pOPP6W6uprx48fZnuL9t1dee5mLZ1zMi3Nm06eP9zHP56MPP+a9d9/jgw/ew3SGqc3tDhw4wB9/LMPJyYmQkNYn6R7R9P+VqOhjHlsIIbra1GlTcXR0JDBwhO1m6mFqTdu/b9uStTeLG2+4meDgkbz8ypxWvwMO++7b7zCbzUREhre6foDPANs8QQ0NDcR2oAgCjcMA2tvbM/bssbYeaYepm+Rq7dzc3N1sw/Slp6W3WoA5a/RZtuXsfdnExMfYeh4CbNyxCa1GS0Rwy/M7d8wkVHYqxp85ocU6dZOhplq7rnB1ceX8Qw8LVNdUs2xtywJJTW0N26K2c87o1udPOJamGQb2H0hGVgb1dvU4650JC2u8nvPzG2rbJiBgOFqttkU7Q5tsk5OT02zdoi+/Amjz5z8icIRtuaysjD170m2v3Q89dLJj+w62bt3WYt8rrry8xVwOx7NPePgo+g/oj6urK+MmjGuxj+bQNUlFZcsiUHl5BampqQA0NPl3cZjRaGRUeONnWVNTQ3FxcbP1J3oNLoQQQihN5oAQQojTQEhIMB8t/JDy8nJmXnc9OdmNf/jl5uZyzqRz0Onavol92OZNm4HGJ8Amn9vyZjBAXZ3Z9kdnWVn5cWWdev4UkpOSAUhMTDyuNo7m8NARA30HtnkzxNHRkbsODTfxb48/8RiPPPpws6fXBg8ejMrBnn3Fhbb3Ghq6pvt7TkEuBfv3AeDp1rL3RlP+g4ehc9VRXlHO/oP7ycrNwqefT7uPpWtS3MjKy8J/+DB6e/dm0KBBR9mr484/fyrffN3YCyAxMcn2vp2dHW++tYCGhoYWTwsmxCewa9eRJyibDt1ksVhYe2gYkdYmkDxsyJAhPPvc08fMV1tTwxOPPUlSUjKfffEJRqPxqNtv376D+vp6VCoV0y+4qNVt6hsabP+vtPdmnhBCdKVp085nypTJLX7fFh8sZtkfR25sN/1925Yd23fw2KNPcMedt3P1NVcdc/vNm7YA8M0337Jk8ZJWt7FYLLbfmyXFJcdss6kbb7qBWdfPbHFu+fkFzebBauvcLrv8UlasWAnAzz//wsjgkc3W/7nsT9tyesYeAoeOIDUjFf9DQyouW7vcNrzSv9153R3cds2tLdbl5OewM26X7XVb1xUzJl/E73/9Tm1dLb+t/p0Zky/GyfFI0WDrrm1YLBbGnXF2q/t3RENDAwkpCWg8NISEhNiuowzGtucOO8zZ2dm2XFV5ZNhDs7neNufCgvlv8c7b77a5/+GeAcVNfv7jx4/D3d2dgwcPct+99zNz5nXccuvNR52M+Xj28fDw4Jdfl2KxWJo9hFFfX8+WLVvJyW2cv+twL4mm6s1m2/K+gn2ttt+375Fhn/49x8nJugYXQgghuooUIIQQ4jSi0+mYO+8NbrrhZqqrq8nMyOTJx5/kzf8taHM8/8NSUxu7/k88ZwIvvTynyzKOGHHkKbeSktKjbHl8EhMaixptPRXfHoc/q9raWlauWMWyP5ZhdDOiM7hCFw/nn9dkguqWI0y35Nvfl7ikxqc18/cXdKgA0VRFZQVqvRqTqe0n/4+X37Bh2DvY01DfYJuPpKnDn3dFRQV//L6M1atWExAQ0OrwWQAFBQUcPDRk04n8nA975eXXyM/Pt032OLrJk66tSTv0/4qHhwd/rlx21G2FEKI7aXotsH3bdhYvXkpDQwMREa0/md6arKxs7r77XhrqG1i7dh2XX3HZUecdqKmpsQ23d/8D93HppZcc/wkcxeFza2hoYP36Dfzy86+4urq0OuTPv4VHhDN48CD27Mlg5YpVPPTwg7Yb6unp6WzYsJGZs67jq0VfU1NTw/6y/cQlxTFk4BAysjPIyM7g6XuebDvboeJDnbmOjTs2sW7bOnp79cbN2HbP1MMMOgNTxk3m19W/UVpeyupNq5k2cZpt/bpt6zgj1ISr84l/H5aUldC/fz90Rh0jRx4pwnRkUnJo/BkclpOdTU1N40Tar7z2MmeeeUaH2jIYDLz0yhweeuBhqqqq+OLzL/n9t9+56+67mH7Rha322DyefQ47vC4/L5/Fi5cQHRXD2LPHYDQY2iwuuLm7YTQaKSkpIS0tjQMHDuDh4dFsm8M9G3x8fFpcu5ysa3AhhBCiq8gQTEIIcZrx8xva7KnvLVu28uaCt465X/mhp6mqq2u6LBuAh/uR+RvU/3oCrDMcPNjYrb26A5MO/5vZbOarRV9z8fRLSE1N5dXXX+GVV19uNrxAV6muPTIEQ3X1sc9B56KzLdfUHv/PzkHtwACfAfTr13JixhPl6OiAQd/49GTToboOq6ys5L133+fSSy6nsrKS/73zPx58+AEGDBjQanuHf8YAVe34jI7lupnX4ubmRkNDA08+/hSZmZlH3b6srHE+ierq4x+GSwghlLJ27TquvvJavv76W/57153Mm/8G41sZcqYtbm5GZs68DoB//v6H11+be9Tty5s8rV3Thb83LRYLv/7yK5fMuIx1a9fz1NNP8NLLcxgVPqpd+196WeNwgVVVVaxcscr2/ueffUFkZAR333O3bQ6q9Iw91FNPUloSf6xdxhlhJtwMbRcTzPVmfl75C7c/cSeZOZk8escj3H39XQwe0L4eh5dMvQTHQ/NQLV3xCw2WQ3MVlBwkJjGWSWMmHW33disrL0Nr1DJq1KhjDhfZ7jbLjszBdLzfmyZTJB9/8pHtOuzAgYO8MPtFbph1I8nJyZ22DzT2Hn7m6We5/bY7GTbMj48WfsCNN91wzAcerpt5LdB4DfntN9+1WB93aO6ImbOua7HuZF2DCyGEEF1FChBCCHEamjxlMrOuPzLB3jdff8vPS3856j6OTo1/aP573N7O1vTpS08vr05v//BDenv3ZrVrGIl/y8vL4/qZN/C/t97myaef4MGHHsBgaLx5PnjwkRsFB0paTprcGZo+wZhfmH+ULRsdviEBoHfVHWXLo7NX23dJ7wdb+4d+7l7/+pknJydz1RXX8O0337HgzXncfMtNbY5/fFjTBzH3pO854Wzefbx5/Y1XcXBwoLy8nAfvf4jy8raHNzg89EVFRUWrPTqEEKI7qjk03NzDDz7C6DFn8b+332xz0uhjufueuxgzpnHy4sU/LeaHH35sc9vD1xcAOdm5bW53IkpKSvjPnXcx+/kXmTVrJi+8+Lxt0t72unD6BbYhhw5fM+Xn5bNixUpuvvVmHB0duHD6hUDjpNr1Dg1ExUex8e9NTJvQcvLpw/YV7ePhlx7h85++4K5Z/+GWq25G18Hvaw+jO5PGnGNrb9PfmwBYv30DbgY3QkeEdKi9ttjZ22FwNzSblPxENR1u6PAQocdj+HB/vv5mEQ88eL/tuiwhIZEbZt3U5pxiHd1n2bLlXHH5VSQnJfPlV18wecrkds2JBXDTzTdyw43Xo1Kp+PKLRXz91TfU1NRQVVXFxx8tJDYmlptuvrHZvFiHnaxrcCGEEKKrSAFCCCFOU/fcezcmU6Tt9auvvEZUkzH1/+3wjeGMPRnk5xccs/3c3Fzy8vI6nKvpDdu2JvA9EV6HbjjU1NSw49CYw0dT1aSnRHV1DXffdS8pKamcP20q48Y1H09Z12Riy+zcbNtYxZ3Jt7+vbTmvMJ/KqqPPH1BZ1TgZop2dXbNJpdujaXo3N7cWxYHOYrVaKStvfAIyJPjIz3z//iLu/u+95OfnM3PWdQQGBrarvV69etuWN2/a0q5CU9UxesSMCh/FQ488CDQWrx579IlmQ0g05dlkaKgtm7cc89h1dXXERMccczshhOhKL815mZUrV9Gvf78250FqL5VKxUuvzMHHp3HYv7lvzGPHjr9b3Vav19smud6yZWu7vjtjY2Kpra1tVxar1crDDz7KP3//Q3j4KK648vJ2nkVzOp2OyVPOAyAuLo496Xv48stFBI4YQWRkBACXXDIDOzs7rFYre7P3kpqdhsHVwMjhI1tts7a2lufffIGM7EwmnDmeyJDIVrdrj8vOv9RWzF+8fCnQOPzSxLMmtPsm+bHYO9kTERFxzGE7O6Lpwybt+c4E+Pvvf1p938HBgZmzruOX337mupnXolKpMJvNvDD7RUpLWx/Ws737bNu2neeeeZ7amloeffxR3NyM7T9JGq/D7r3vHp546nHUajWLFy9h2vkXcvmlV5Cens5nn3/C3ffc1eq+J+saXAghhOgqUoAQQojTlL29Pa+89jJ9+vQBGruEP/zQo23+wXK4GGCxWHj/vQ+O2nZVVRWPP/rEUcd8bktycgrQONnguPEnPmHiv4U3GWrhow8XYrFY2ty2uLiE2c+/aHu9fPly9mbuBSA4uJXiSJObJtV11WRkZTRbbceRR/Pbunl9LB5uHgz1HXrocFa27tp21O2z8hvH1R4+ZDhGvbFDx8rfd6SHRVcMvXRYZkYmtTWNN5KmTJ1se/+H73+wzeXw7wk/gTZvUnl5edqGZyosLGTJkqVHPf7KFStZ3mQC0bZceeUVzLjkYqBxbPT58xa0ul3TwtnChZ8e8ybZq6+8zr7CIxOYNx1J+3h66QghREft3bvXNtF0UGBgixvMx1NQ1+l0zF8wFxcXFxrqG3j80SfIbuUJd5VKRVBQEADZ2dn89utvR203PT2d+fPebDFRb1u2b99BVFTjAxYd+S5pzeVXXGZb/vTTz/jll1+5+dabbe8N8BlARGTjfBnpaXtI35uOT98BbQ4HuG77enIPze00fMjwVrK1Oxq9PXsz/ozGobIyczJZvHwJGdmZTBp9TvsbOQa1RoOfn1+ntQeN39l9+/YFGgsLbRWqDvv773/49utvba8/+/RzYmNim22j07ny4EMPcN/99wKNQznGNNnmePb56IOPbNeMwcf572j9uvVs2byF3/74hSVLf2LN2tUs+/MPXn3tlVb/bR52sq7BhRBCiK4iBQghhOihzHVm27LF0vofRUajkbnz37A9eVhSUsL99z1IZWXLp+qnXXC+7Qm6P37/g+++/b7VNsvLK7j/vgcJDQvt8PAG0HgzGOCaa69Gp2s+BEF7bxJYrJY2t59+0YW2cYvj4uJ47dXXWy1ClJeX8/BDj3DjTTfY3ks5VBwBKCoqarFPRkambdlebU9MYkyzQkPT8ZIPlhbTlqa5Wzvjqy+80rb821+/t1lEycjOpLCo8cb2NRdd3ebxWtPQ0ED63jTb68PDTnSFFYd+5qFhoZzRZPLJ5A583nX/usl/6eVHJjF9c8FbbfZ22bF9Bz/9uNhWWDiWx594zHYj4Ltvv2+1uBE2Kox+/RsLNnsz9/L8s7NbLSRYLBYWzH+T5ORkzj33yPjcTW+qtXbeQghxNE2Lnu0tdqekpNqWW/19uyfTtlxXW9fuLIMGD+LFObOxs7OjtLSUB+57kIqKihbbTT80dBHA3Dfmt9krbE/6Hu7+773ceNMN7Z74+Njf3UceFjhWwTgwMJDhAY2FguXL/mSgjw9nnz222TaHJ9EuKiqiurqGoUOGEJcU12p7GdlHjn2wlaEbsw89RABQZza3WP9vV0y7HJVd47XaoiVfMXzIcPp5n9gDBCWlJbZlT0+PDk843R7TL2r8+VutVp556tk251qK2hXFow8/xm133Nbs/WXLlre6/SWXzrAt1//r8+voPke7JjGb65sV11r7d7Ry5SoefuhR7r7nLoxGY6vHbsvJugYXQgghuooUIIQQoodq+kT1wYMH2txu+HB/nnrqSdvr9LR0nn7ymRY3Lfr378811xy5if3G63O5794HWPPXGlKSU/jnn518/tkXXHHZlZSWlvLfu/7T5jF3x+5u9f01a9aya1cUgUGB3Hb7rS3WFxUdOY+jjcFfUd54c6OsrKxFEaJXr17c3uQP159+XMyN19/Eb7/+TlJSMtHRMSz68iuuuvIaxk8YR0DAkScSPTw8bMuLf1psm1/AbDbzw/c/2G6kAxQVF1FjrmHjjo2297y9vG3LqzauBqDOXMcHX3/UbD6HiqojN2fKK1qepynUxLSJ04DGmxe/rf691c/hq6VfAXDZ1EtbjP9cXXNkosfWihypGalUVB/JYW7HjY+jSU5KabWN/Lx8vvnmWwwGA7NfeK7ZOs8mn/eiLxZRUNA47EBVVRUffvCR7YlWgOhDN6vS0hqLJldddSXDhjU+pVlbU8vdd93Liy/MYcuWraSmpLJl8xZefGEOTz7xNE8/81SLp32bFuEa6psXkV6f+5rtD/tXX3mNNWvWNttXpVLx0EMP2F6vXLmKa6+ZydIlP5OYkEhcbBy//Pwrs2bewNIlP/PCi883Gx7jcPECYNPGzezf33ijY8OGjXz55aIWn6EQQjS1b98+23JxcXG7fn83/X27a1dUs/Hvt27dxvvvH3nqOj4hAbPZTH5evu13ZbPfmf+6fhg/YTx33Hk70Hiz/4H7Hmwx2fD506YSGBRoa+v22+7k1VdeY/u27bbf2a+/NpdZM2/grLPOZMLE8cc8p8OafnevWrXa9n1hsVhY8edKvmsyIXBsTGOh4PB3SWuajtHftPfDYRPPmWi7wTz27DHoe+lJy0ynrKKsxbZNeyb+uX4FWXmNBQdzvZk/1ixj46G5HAAS0xIB2Ju7t81s/bz7MTr8rMbzs1ps80KciF27d9mW23oYobZJUaq8vGWBCZpPNv3vG/TXXneNrUduUVERM6+9nrf/9w67du4iJTmFDRs28uwzz3PHHf/h2uuuaXZtBvDLz782eyjhsNycxt4lLq4uRBwaJut49/HwPPLv6O233qGmpnFC6IKCAp58/MlmDxrERMdgNtc3K6S8/uobWCwWrrjsKs6fcgGXzriMSy+53PbfZZdewfWzbmT+vAW27/3DOvMaXAghhFCCnbUrBqgWJ92tt97KJ598wi233MLChQuVjiOEUJDVamXr1m08cN+Dzf4Yev2N15gwcXyb4/a+8frcZk9UTZg4gccef6TZE1Rmcz3PPfNcsxvt/xYcPJJ5C+bi7u7e7P1ff/2N2c+9ADQOr3T2uLO56eYb8fMbitlcz/Lly3njtbkEBAxn3oK5LXo/VFfX8PZbb/P99z8AYO9gzyeffNysy7rVamX16r94/NEnbO89+9wzXDj9gmbnbbVamT9vAd806cLflEql4rbbb21WqADIzsrm6quutf3RaWdnh4eHB+Xl5Ywbfza33nYLV195ra3ooVar8TB48PYLb+Ho4EjevnzuevZu280ZnauOhoYGLj//Mi6f1jisw4GSgzz5+lO2gkRkcAT333xfiwkprVYrXy5exNIVP4MdXHvxNVw46UKcNVqKS4v5cvEi1m1fz1UXXsnV069qcY67k3fz5BtPA+BucOPjVz+y9dAw15v55c9f2JH0D0lJSQCcPW4sb77V+pBDbcnLy2P6BY09C5ydnRk0eBD/+e+dREZG4ODgQNSuKGY//yJ15jreemsBfsOaD+sQFRXN7bfeYevhoVKp8PT0pLi4mMuvuIyxZ4/lrv/cbftZ6A16zp00iSefbvz5FxYWcvd/7yG9jYmovby8mDv/DYKCjswtYTbXs3v3bp5/brZtMswLLryAZ559GkfHI8MZ/PD9D7z26hu2XNdedw0zZ16HV68jY1l/8/U3LJj/Vps9VLy8vHhj3uuMHBnUYt3tt97Bzp2NN30cHR0xGo14enry0cIPcHZ2busjF0KcxqxWK7t3x3PPXfc2K9Lf+Z87mDlrJlpt2z3ZzGYzM6+7nrTUIzfeDUYDDfUN9PbuzVv/e5NbbrqFffsaH24wGAyo1Wp++Ok7aqpr+PHHn/hk4adAYy+uLxd93ux3usViYcp559uG1fMd5MuDD97PmWedaft+3l+4n7vuuof0tPQ2c1562SU89vijHRpeprS0lCsvv7rZU+seHu5UVVUzYkQAL8yZzaUzLrfdFDcYDbi5ubF4SesTZ1dXVzN18jQ8PD34afEPrc6v8OaCt1j05Vcs+uoLdsfvJjc9l77Gvow1Ne8tkbcvn/tm309tXeOx7ezscNMbqaiqxBQSyVXTr+Te5++3XVfoXfUM9R3K8/c/2+b5Ju9J4ZGXH238Ocz7HGft8X9nZOVlsWDhm6RnNX6Pent789kXnzS7NrRarXy16GveXPAW0Hjj/oMP3mNE4AjbNqWlpcx+/kXWr1sPwFC/obz73tt4eh6ZM2lP+h7uvuse27+xf7O3t+eWW2+2FbMO++zTz3nn7Xfx8vLi4UceYszYMWi1GtLS0nj26efYsyeDV157mYkTJ5zQPp9+8hnvvvOe7bWTkxN6vZ6qqiqeeOpxMjMym/0/4OjoyFNPP2kbWvLRRx7nr9WtT4b9b56ennyx6DO8vY88uHIi1+BCiJ6ld+/eFBYWsnTpUmbMmKF0HCHaRQoQPYQUIIQQAL/+8ivz5i5odXgDaLyROXrMaOYvmNtiXX19Pf+547/sajIRtZ2dHb179+bX339udgN/zZq1/LzkZxISEikrL0PnqmN4wHAuuOB8pp4/tdU/xpsWIJ56+gmKi0v47dffKSkpQa1WM2iwL9OnT2faBee36N7/0Ycf88nCT1sdxsbFxYW333mL9PR05s1dYCsONKXRaHjs8Ue46OKLmr3/99//8N233xMbE0tZWRlubm5ERIZz3XXXEjAioNXPMDYmlnfeeY+kpCTsVfaMCBzB5VdcZvsj9eOPFrJo0VeondQM8BmA/wA/QvxDbBNQrt++ni8Xf0VpRSkD+w7ksvMvZXT4WVRVV3HrY7c36/1wmMpORciIYGY/8HyLdXuy9rBs7XJik2IpKStF56JDq9ESMiKYaRPObzH0gtls5uPvFrLp783NjjWgT38igiO46Yob+XP9Cn5e9Qt5Bc3nA4k0RTBr1kzGjB3T6mfzb00LEBdOv4AxY8ew6ItF7M3KQqPR4OnpybnnTuLqa65q86b6xo2b+PjDj9mzJwONRkNoWAjXXHM14RGNY2y/POcVli1bjt6g55JLZnDTzTc2uzFVV1fHD9//yIo/V5CZuZeGhgYG+Axg0qRzWh3m60zT6FafFnZyciI0NIT3P3yPF1+Yw2+//d6sZ8Rhl11+GU8+9bjtdVJSMt989Q3/7NzJwQMHcVI74evry8SJE7jiystxdXVt87N7/rkXiI2JxcPDgylTJ3Pb7bei1WqP+pkLIU5Pr782l5+X/tzmEEKHi7RLf16MwWBodZt9+/bx1ptv8/eOv6mursbX15dpF57PFVdcjqOjIxs3buLlOa9QUVHBGWeaeODB+1nx58pmN2WbMhgMzHnpBfr268uN19/cas9FBwcHfvltSMas9QAAeX5JREFUqe1Ga11dHT/+8BMrV64iIyOD2ppaPDw9CA0N5fLLL2VUk3mcOiJjTwZvvfU/YmPiqG+ox8/Pj4tnXMT06RdiZ2fHz0t/4X//exurxcr4CeO47757cXN3a7O99959H39/fyad23oPg+zsHN7+3zu8/sar7Nmzh5V/rqQsr4zzJ56Pu7H5zeGk9CQWLfmK9Kw9qOxU+A0ayvkTpnJm2JkAfPfb9/y88hecHJ0Yf8Y4rptxLRp128Uki8XCZf+5grERY3notgfa3O5Y/lizjI++/bhFT9LD14Z/LP+NJYuXHPXaa8Omdfzx+x+8MHtOq+2ER4Tz4Ufv296rqKjgm6+/Ze2ateTk5FJfX0+v3r0IDw/n6quvZJj/sBbHOVxMOEylUqHVanFwcCA8fBS33X5ri/2OZ5+Ghga++fpbli5ZSkHBPtzc3BgzZjQ33HQ9/fr1o6SkhEcffozdu+Px8fHhlttu5rzzzm3WxvPPzaaiooK6OjN5uXkcLD5IVWUV9fX1LT6fGZdczDPPPt3ifI/nGlwI0bNIAUKciqQA0UNIAUII0d01LUA8N/tZLrpousKJut7OnTvZtnkbtQdquXjKxUe9YdBd1NTW8MuKX1B7qDlr7FmMGnV8N3ugZQFi9gvPd05IIYQQ4hSyZMkSslOzcdO4MWnspGPvcAIO94B48aHZhASEHHuHNmTlZrHpn03o+uq4/PLLm/VWEB1jtVqZ+8Y89qTv4d3332m1SNDQ0EBFRQVZe7P49JPPyMnJ4cfFPyiQVgjR3UkBQpyKpDwuhBBCdJHg4GB0Rh04/r+9u46O4mrDAP7EN57gwSlQCBpiOAGCu1uBFucDSoFS3IsUK1a8OC3uBIhBcCcJEGJAgkSAuPt8fyyZ7LIb3xCgz+8cDrs7M3fuzE5m5973CuDl51Xc2ckTLz8vQAswNDFE/fr1c9+AiIiIcmRrawsdIx2Ehr1D6IfQIt2X683LMCtjhga1GxQ4jYyMDHg+84TEWIIaNWow+FBIq1etxZHDRzF7zqxseyhoaGjA2NgY9RvUx4JFC6Cto/OZc0lERFR0GIAgIiIqIlpaWmjUqBF0TXTh98IP8QnxuW9UjOIT4uH3wg+6JrqwtLQU54QgIiKigqtYsSIqVqoIiZEOPLw8imw/H8I/4PLty+jWtqvCcJb5EfA6ALGJcdAx1IG1tXXuG1C2nnk9w5HDR1CihCkqV6mcp20iIyLQpEnjIs4ZERHR58MABBERURGqU6cOjEsYQ0NXA098nhR3dnL02PsxNHQ1YFzCGObmyufAICIiovyztbWFtqE2IqIj8Cb4TaHTi4qJwtW7V+H30g8AkJycjDU7/4S+rj46tGpf4HTT09Ph6e0JXRMJateuDRMTk0Ln9b/s4cNHAIDIyCj4+frlun5sbCx27vgbw38cVtRZIyIi+mw0c1+FiIio8GQnxo6P+7J7AqiShoYGrK2t4RrpihevXsK8pjmMDZVPAFqcomOj8fJ1AAzNDGBtbS036XhBxcXKfOfx/53vnIiI6FNlypRB9erV4R3nDc9nnqhoVrFQvRTmr12IV0GvAAClSpSCGtTwIeIDpo2eCh3tgg/f4xfgh+T0ZJgamcLKyqrA6ZBU9RrVAUiHtRo/bgJ+GvEj2ndoDzOzcuI6GRkZCAwIhJvbVVy5fAWLlyzKdrJ4IiKirxF7QBARUZGLjIyCs6Oz+N7xkhPCw8OLMUefV82aNVGydEloG2jh8bPHxZ0dpTy9PKFtoIVSZUqhZs2ahU4vOTkZp0+dEd8/uP8wTy3/iIiIvlU2NjaQGEkQkxCDgNcBhUorKiZKfB0WEYYPER/Qya4TWjexK3CaKakp8PLxgq6JLurWrQt9ff1C5ZGAZs2aYuy4MVBXV0d0dDQ2rN+Ibl26o1nTFujauTs6d+yKZk1aYOCAwQgMCMTmrX/hu+rfFXe2iYiIVIoBCCIiKlIL5i1Ee/sOePw4a/ihJ0+eoEO7TrBr2Qa3bt4qxtx9HmpqarC1tYXEWILXwa8RHvllBV/CI8PxJuQNJMYS2NjYFKpFJgCcPHESdi3b4MiRo+JnsbGxGDzoB7Ro1gpbNm8tbJaJiIi+OiYmJqhVqxZ0jXXh6e2J9PT0Aqc1+adJMCtjBi1NLVSpUBn/GzoeE4aNL1T+vP29kaaWDn1jfVhYWBQqLcoybvxYHD95FMOGD0Wt2rVgYmKCjPQMpKamoEKFCvjxp+E4efoElixdDCMjo+LOLhERkcpxCCYiIipSS5YuxpKli4s7G8WuatWqKGdWDskxyfDw8oB9C/vizpLIw8sDOoY6KGdWDlWrVi10en369kGfvn0KnzEiIqJvjJWVFfz8/BAdEw3/AH/UrlG7QOnYNLSBTUMbleUrMSkR3v7ekJTSRcOGDSGRSFSWNgFVqlTBlKm/FHc2iIiIigV7QBAREX0mtra20DHWwbuwdwh5H1Lc2QEAhLwPwbuwd9Ax1oGtrW1xZ4eIiOibZmBggHr16kHXVBdPfZ4iNS21uLMEAPDy9YKathqMTA1Rr1694s4OERERfUMYgCAiIvpMypcvj8qVK0PHSAceXh7FnR0AH3s/GOmgcuXKKF++fHFnh4iI6JvXqFEj6BnpIU0tDT7PfYo7O4iLj4NfgB90TXRhaWkJLS2t4s4SERERfUMYgCAiIvqMbGxsoG2ojciYSLwOel2seXkd9BqRMZHQNtRm7wciIqLPRCKRoEGDBpCYSPDM7xmSkpOKNT+PvR9DU1cTJiVNYG5uXqx5ISIiom8PAxBERESfUenSpVGjRg3oGEvg+cwTYRFhxRKIyMjIgOczT0iMJahRowZKlSpVJPsRBAFPnjxFQkJCkaRPRET/TR/ef8CLFy+KOxsF1qBBAxiaGAJagJefV6HTEwQB/oHPER0bna/tomKiEPAmEBJjCaytraGuzioCIiIiUi0+XRAREX1Gqamp0NbSxhPvJzjheBKjZozBjQc3P3s+Al4HIDYxDjqGOrCxUd0klgAQEREBJ0cnLFn0Ozp16IKfho9AVFSUSvdBRET/LampqXj08BG2btmGYT8MR+dOXeHi7FqgtBzOX0AbO3sMGjAEISGhKs5p3mhpaaFRo0bQNdGF3ws/xCfE5zuNsIgwXLnthvW7N2DE9JH4den0bBs1XLl9BUMmD8XkRVPwIfyD+LnnM09oG2ihdFlpA4kvVWhoKIYM+gGtW7XFubPnizs7RERElA8MQBAREX1G7u4e8PDwxKvA14iIioQAAYIgfNY8pKenw9PbE7omEtSuXRvGxsYqTd/h/AXcvXsP5x0cEBYWptK0iYjov8nd3QM3btzExYuX8OyZd6F+O/fvP4CYmBj4+/vD1aVgQQxVqFOnDoxLGENDVwNPfJ7ka9uYuBg4XL4A35e+uHbvOiKiI3Nc/+Sl04hLiEPg20DcfHgLgDSA8TbkLSTGEtjY2EBNTa3Ax1LUXJxd4evrh9jYWBw8+E9xZ4eIiIjygQEIIiKiz8jW1gaTf/kZk3/5WfwsPDL8s+bB96UvktOToWukCysrK5WnP2z4UMxfMA9NmjRRedpERPTflPn7+fPkSYVOa8CA/tA30Ef1GtXR1r6NCnJXMBoaGrC2tobEWIIXr17ma/gkIwMj/NhvOMb/MA6tbFvmun7Xtl2gp6uHKhUqo6ml9PfZw8sDOkY6MCtvhipVqhT4OFQlMTEx22V2re1QrVo1GBoaYsiQwZ8xV0RERFRYmsWdASIiov+icmblxNfvw94jJTUF2lraRb7flNQUPPN9Bl0TXdStWxf6+vpFti9TU5MiS5uIiP6bTE1NC51G33590LdfHxXkpvBq1qwJDw8PJMcm4/Gzx2jZOPdgwqdKlch9HqdOdh3Rya6j+D74XTDeh7+HYQVD2Nra5nufqhbwMgDHjh7HjFm/KV1eqVJFHD959DPnioiIiFSBPSCIiIiKWYaaAJ/nPp9lX97+3khTS4e+sT4sLCw+yz6JiIhIOTU1Ndja2kJiLMHr4NcF6hWprpa/Yr0gCNLeD8Y6qFKlCszMzPK9T1VKTEzEb9NnFmgeDCIiIvryMQBBRERUzDQlmvD290ZiUvZDD6hCYlIivP29ITGRoGHDhpBIJEW6PyIiIspd1apVUc6sHHQMdeDh5VHk+3sd9BpRsVHQMdAp9t4P6enpmDt7HgICAoo1H0RERFR0GIAgIiIqZjoSbUAL8PL1KtL9ePl6QU1bDUamhqhXr16R7ouIiOhrkJqaVtxZAADY2tpCx1gH78LeIeR9SJHtJyMjA+5P3SExkaDm9zVRsmTJIttXbhITEzF71lxcvXotX9t9Kd8ZERER5Q3ngCAiom9WfHw8HBwuwPGSE8LDwhEWFgY9PV3Ub9AAw4YPhYVFQ6XbeXv7wNnJGS4urvjrr42oXKUyHj18hAP7D8Lz8WOkJKegQcMG+GXKz6hVq1aOebjqdhUnTpyCj48P0tPSUbZsGfTs1RNVq2ZN9mhmZgZdE134BfjBvKY59PXyNy+Df+BzOFx2gJffMySnJENTQwNmZcxg39weLW1bQEtTC3HxcfAL8INBWQNYWlpCS0sLgiDAze0qHC85wsfbFwkJ8UhKTka5cuXQpEljDB48CGblcx6WISEhAf/+cwiuLq54//4D1NXVUb9BfYwY8WOe83/V7SrOnj2PV4GvEBQUBEMjQ9SvXx8DBw2Ara1Nvs4FEREV3tfy+1lQr1+9hpOTM5ycnDFs2FB079FNYZ2goCA4XnKCk6MzZs2ZCQuLhnjy+AkOHTqChw8eIjY2FhUrVcTIkSPQqXPW3Ap+vn44dOgw7t29j4iICFSqVBEjR42UW0eWr68vzp9zwOPHTzBwUH94R3jj78O7EBr2Du8+vIOerh4a1K6PQd0HoqJZxQIfc/C7YFy/fwOuNy+jSsXKaNTUAtbW1krXfffuHY4cPoob128gOjoGAgSUKV0Gbe3boE/f3jAxMVG6XUBAII4dPY5HDx8hNjYWkVGRKFeuHFq2bIGfRvykMDfUr1Onw9fXT3zv7OSC27dui+9Pnj4BAwMDANJr8urVa3B2dEZKaio2b9mU7bEmJSXh7JmzcHO7hrdv3yImOgbq6uqoWq0q7OxaoV//vtnOgaWKazg6Ohq7du7G1WvXEBMdg/iEeKSnpQMADAwMcPX6lWzzTkRE9C1iAIKIiL5Jvr6+mDJ5GqJjorF8+TK0bmOH1NQ0HDl8BOv+XI/r165j2YqlaN++nbiNi7Mrjhw+gkeP3MXP0tPTsX7dBvz7zyGUKl0KSYlJSE5Oxt07dzF2tBcOHfkH5cuXV9h/amoqFs5fBBdXV0yaNBF/rFwOPT09vH71GmtWr8XuXXvEdUuVKgUTU2MkxSTB85knmlk3y9MxpqWlYefhv+F22w3D+gzF2CFjoSfRReiHd/ht+Qys370Bp53OYMm0RXjm9wyaupowKWkCc3NzfPgQhpkzZsHfzx+/zZyOJb8vhra2Nt6+fYvNm7bgn4P/4uiRY5gy9RcMGjxQ6f6fP3+OX36eCi0tLcydPwc2NtZITU3FjRs3MXPGLKSl5dxCMSkpCXPnzEdUVBQWLpyPylUqIy4uDvv27sfuXXvgdsUNo8eMwv8mjM/T+SAiosL7mn4/8+vE8ZM4efIUfLyz5l0SIMit43blKnbv3gOvp1m9EtPS0rBj+07s3PE3dHV1oa+vj+TkZLx4/gJz58yDhqYG2rWzx/ZtO7B3zz6UKGGK+PgEpKSk4MWLl5g3dz709PXQqpV0gumUlBRs37YDl12v4PXr1wCkjRHKlCmLVZfWIDY2Furq6sjIyEBKagqu3buOO+53MWfibFjWa5SvY7501RGOVx3x4vVL8bMaNavD3NwcRkZGCuufPHESf65djx49e2DT5o0oW7YsEhISMGXyVGz+awsOHvgH69avRcNPglB7du/Fls1bUbduXfy5fg3Kly+PD+8/YP78BTh44B+4uV3F3r27YVoiaxLxLds2Izg4GN279gQAtO/QDouXLJJL19fXF3/v2IWbN28hOTkZAGBlZZnt8T72fIyZM2ZDIpFg7vw5sLKyhJqaGtzdPbB61Rps3LAJ/xz8B3+sXAFLmXRUdQ1HRUXhx+EjkJiQgLV/rkH9BvWRnp6Oe/fuY8XyPxAdFZ1t3omIiL5VHIKJiIi+OYIgYOZvs/H+/Xs0bNAArdvYAQC0tDQxdNgPsLW1QXp6OlYs+wMpKSnidvbt2mLnrh1o3jwrALBq5WoEBwXjzLnTuHDxPK5ed0Ov3tKCclxcHPbu3qc0D3Nnz4OjoxN+/XUahv84DHp6egCAylUqY/3Gdaj2XVVxXXV1dVhbW0NiLEHAm0BExUTleozp6elYtX0NHK86Yc6kOehm3w16El0AQLnSZWHfvC0AIPBtIHYe+hsv3wRAYiyBtbU1YmNjMXrUGHh6eGLZ8t/Ro0d3aGtrAwAqVqyIFSuXo3efXkhNTcXqVWtwYP9Bhf0HBwdj7JjxSEhIwLYdW2BjY/3xHGuhTZvW2Lx1M2Jj43I8htkz58D9kTvW/rkalatUBiBtGThx0gTY2ErT+3vnLly4cDHX80FERIX3tf1+5lfrNnb4e9dOtJMJnnyqkaUFNm5aL3csWzZvhfczb+zctQNu1y7joqMDdu/5GzoSHQDA1s1b8fvipXj37h3OXziLC5cccPX6FSxbvhRqamoQBAG7/t4tpqehoYHOXTph7Pgx4mdxcXFYvWoN2rS1w8D+AzCy309YO3c1aleXtrJPSU3Bqu2r8SH8Q76OubFFY/wxcwWayzRu0NbThqWlYiX+wQP/YNnSFRj+4zDMmDkdZcuWBQDo6enhx5+GA5C27p83d4Hcdu7uHvhr02ZkZGRgwMB+YqV86TKlxYDC2zdvsX37jnzlHQAqVKiARUsWYvmKZbmu++TJU4wfN0F8NrG2toKamhoAoFEjC/y9awdq1a6F8PAITJzwMzw9PMVtVXUNH/r3MN6+eYtBgwehfoP6AKTfd9OmTbBu/VpoaGrk+xwQERF97RiAICKib05kZCTevHkDAAiPiFBYbl7HHIC0EP3q1Wvx88xCas3va8qtu2rNSpiZlQMgrYSZ9utU6OpKK/vv3buvkP6Z02fh6noZVapURv8B/RSWq6uro2+/vnKf1ahRA6XKlIK2gRY8n3kqbPOp864OuON+B22atkZD8wYKy5tbNxdfB759BR0DHZQuWxo1atTAqpWr8fbNW9SrXw+t7FopTf/X6b/CzEw6/NLGDZvw4sULueUL5i1CdFQ0hg77AeXKlVPYvlq1qrDJYfgkh/MXcO3adfQf0E/pUA4dO2YNVbF3995s0yEiItX5Gn8/86NkyZLQ1ZWIQXNljI2NYWJighatWoif1axZA+s2/AkLi4ZQV5cWoRtaNEQ7e3sAwKtXr5EhZGDhogUoVaqUuF2nzh1h21g6ybPXUy/Ex8cDkFZI16hRA507d0LJkiUASHsFrl69Er9M+QUmpYwRlxQPdTV1LJm2GJU+Dr2UkJiAow7H8nXMpsYm0NHRQZ2adcTPKlaoIAZ2Mnk/88aG9RtRqVIljBo9UiEdG1sbGJsYAwDCwsLk5mF47PlYfB0eLn/dlC1bFiVKSI/xyZOn+co7IG2YoK+vj6bNmuS4XmpqGubOnovk5GT07ddHDJ7I0tPTw+Ili6Curo6UlBTMmT1PDKSp6hp+5vUs2zxWr14d9vZtcz5gIiKibxADEF+Z1NRUDB48GOPHj0dGRkaO62ZkZGD8+PEYPHgwUlNTP1MOiYiKn6mpKVq2agENDQ106qQ45rKOjo74OrMyQFZmbwAAaNZccTgkfX19VKhYAQDw/v17uWXp6enYueNvAIB9O3uxokJZHmWpqanB1tYWEmMJ3oa8RVhEWHaHh5TUFBw+dxgA0LqpndJ1alatgUk/ToRd41ao931dSIx1YGNjg5CQEDg5OgMAGn+sFFFGV1eCfv2llTwZGRnYt/eAuOzunbtwd5cOUdA+h1akn471LCuzV4V1NpVAdeqai69fvHiJmJiYbNMiIiLV+Bp/PwtCW0c713UkEon4um69ukrXqfF9DfG1ZTbDAtWsKV1HEAQEvQ1SzIu29JyWKlUKlatUhomJCWrXrg1dEwke+zyGlqYWhvUZJq5/4/6NXMuByoTJ9JyoVKmywvLNm7cgIyMDHTq2h4aGYit9bW1trF27Gj179sCataugpZU1mnOLls1RokQJlCxVEk2aNFbYNvO6iY9TvGbySvbaU8bxkiOCgoIBQGkeMtWsWUNcHhoaiksXL8ktL8w1DAAlPgaUjhw+itDQUIXlc+fNyfE4iIgy+fv7o3nz5jh4ULE3+qeCgoLQrl07rF+/vugzRlQAnAPiKxMfH4/Dh6WVTh07dkTv3r2zXffMmTPYvn07AGDr1q3ZThZGRPStUVNTw/oN65Cenq5QiH7m9UxufN/c5inIjvHHcZMzxyPO5OHugZCQEADyrejyokqVKjArb4bkmGR4eHmgXUvllfuezzwRn5gAAPiu0nfZptehZXuoQw1RKVEwK2+GKlWq4MTxk2LFRblyiq0DZTVv0RybNv4FALh185b4+cWPhXWJRIJKlSvl/QA/ev/+Pfz9/QEAs2bMhoaGYiWTIEBsYQgAERERSseqJiIi1flafz+Li4mxca7ryPY0iE9IyFO6VlZW8Pf3R2R0JPwC/GDTwBr6unqIT0xAfGICQj+EonxZxfkzspOYlIiQ9yHie00t+WqAmJgYsTV/7drZTw7eyLIRGlkqzkFRvXp1OLlInw0yexIA0u/Y7cpVxMRKGxEU9JrJC9nnlLJ5eL659XGy6xs3bqFHzx752ld21zAA9OrVEw7nLyAsLAw/DB6GST9PRM9ePbINqBERZef+/fu4desWnjx5gs6dO6NkyZLZrjt//ny4uroiNTUVU6ZM+XyZJMojBiC+MiYmJujbty9OnDiBxYsXo2fPnkofZjIyMrB48WIAQL9+yoe3ICL61mVWnsTFxcHh/AW4OLvA3NwcpUuXymXLgvOUGYbAuAAV5ra2tggJCcH7oPcIfhestILBP/C5+PrTIRRkBb8Lxvvw9zCsYIjGjaWt/V69eiUuF4TstpT67rtq0NTURFpaGiIjIxEXFwcDAwN4ekiP0cjISK6iIa/8/fzF13v27hLnfyAioi/D1/j7WSzy+RuYnp6ep/X09fVRt25dPIx7CC8fL1SvUh3VKlXDUz/pxNgxcTH5CkA89XkKaGafVz8/f6SnSfNmYGCQ53RlyT4PvHzxEsePncCLly9hb98GuhLdQvV+yItXr7OGBBNyecD5XibA9fbtW5Xmo5FlI/w8eRI2btiEqKgoLP19GY4dO47ffvtVafCGiCg73bt3R8mSJREeHo5169Zh6dKlStd78eIF9u/fDwAYNWrU58wiUZ4xDP8VWrBAOumXp6cnzpw5o3SdM2fOwNPTU259IqL/mvj4eGzZvBV9evdDfHw8Nv61EdOmT0WlSvlvtZ9XHz5kDXFQkJZ+ZmbSngo6Rjrw8PJQWoiOjo0WXyclJSlNRxAEeHh5QMdYB1WqVBHnaUiQaX2pbPgMWRoaGnIVEYmJ0n1lHmNBWzLGxMZmpZmUWKA0iIio6HyNv5/fGgsLC+gb6yNNLR0+z31gYmQiLtPSyn0IqUyxcbHwD/SHtm7220TIzPeRkFDw32U/Xz9M+WUqZs6YhZZ2LbF9x1YMGDgAWlpaBU4zrxLi8/58kzmXBQAkJar+OeTHn4Zj+YplYiNAXx9fjB41FnNmzUVkRKTK90dE3yZDQ0NMnz4dALBx40aEh4crXW/ZsmVIT09HjRo1MGTIkM+ZRaI8YwDiK9SgQQP07Ssdl3vx4sUKY4B+2vuhfv36nz2PRETFzdfXFwP7D8ahfw9j3fq1GDlqBHR1JblvWEiylSYfPmQ/j0NObGxsoGOog6jYKLwOeq2wXLaV4evgN0rTeB30GlGxUdAx0IGtbdZcD7LDGGVONJoT2bGQTT4W2DOPMTomWpy8MT+0ZSpO3r5RHA+biIiKz9f8+/ktkUgkaNCgASQmEnj7e0O2OUIJ47zPg/HY5zE0dTWhb5h9j0m53gsvXxYku9i//wCG/jAciYlJ2H9wP5o2zXnSaFUzNDIUX795nXOvBtnnEOM8DKNVEB07dcCJU8fQr39faGhKexQ5OjphyOChCHgZUCT7JKJvz8SJE1GyZEnExsZi3bp1Cstlez/Mnz8fmpoc6Ia+TAxAfKVy6gXB3g9E9F/34UMYJk2YjJCQEAwd9gPq1lU+eWRRkJ0c88mTJwVKo1SpUqhRswYkJhJ4PvNUCDSXMCkhvr7ncU9h+4yMDHg+84TERIKa39eEnp6+2JOiRs2sCTOfPfPONS+xH3srfPddNbEFY4kS0mNMT0vPUxqfkh3C46bMmM05yRybmoiIis7X/vv5ralfvz6MTA0BLYhzOJQrXRameQxAREZHIvBNICQmElStWi3b9cqULi2+vnr1Wq7pCoIg9ooEgNOnzmDDuo3IyMjAgoXzPkvA6lM15Z5vnuW4buacFABQK4c5LwrLxMQEs+fMwokTx9D844TW79+/x+9LlA+jQkT0qdx6QbD3A30tGID4Sn3aCyKzYkkQBPZ+IKL/vKNHjorDCdRvoHgfzG1s4MKoV7+e+PrKZTe5IY/yw9raGjoGOohPisfL1/KtEet9n7WPS1cvITwqQm75y9cvEZ8cD4mhBJaWlvh9yVJERkq7/Ddt2hQ6OjoAAB9vnxzHPg4ODkbix6EJ2rRtk7X/eln7dzjvkO9jq21eW8zDxQsXERAQmOP6DucvwNXFNd/7ISKi/PkWfj+/JVpaWmjUqBEkxhIEvwsGALSybZXn7T2feULHQAdlypZBmTJlsl2vTt060NXVBQA8ffIUN67fzDHdfXv3w/3RI/H9tq3bAQAlSpZAhQoVFNbP6bpRQ1bvi8IMvdW6TWvx9WXXKznu88WLrOeqNjLbqcLMGbORmpoq91mlypWwYdN62LW2AyCd74TXNxHlVXa9IEJCQtj7gb4aDEB8xWR7QWROKvrq1Sv2fiCi/zxfXz/xdViY4jAOshXeKcnJBdpHdgXbpk2boGSpkgCA6OhobNr4l9L13r9/L75WNjGjsbExzM3NITGR4LH3Y7lCuXmN2qhSQTpxc3xiAlZs+QNxCXEApIV3z2eekBhLUKtWLWzdsg0NGtRHiRLSXhOmpiboP6CfmNahfw9ne4xX3aStIA0NDTF4yGDx867duoivz5w5iyePlbdU/fA+azxv2WPU1tZGh47tAQApKSmYMX1GtmOauji7Yu2aPzFq9Mhs80lERKrxLfx+5ikPGTJ5KMKgiiqYm5sjNj4WSclJkOhI0M2+a562ex/2HkGhQdAx1oGNjY38ef/kmLW0tNC9Rzfx/aKFi+Hv56803QsXLuLZM280+9iiPzIiUpy/IyY6RqHyPSYmRvyNT0lRvGa0tLPmhwgLU/4sAECuN6iya6hFi+aoU8ccgLRS7soVt2zTuvaxl4dFIws0btI42/Wyk1NwIz4+Dm5uVxU+V1NTQ69ePcT3n54nIqLsfNoLIvN+ePz4cfZ+oK8GAxBfsQYNGqBfP2klkru7u9z//fv3Z+8HIvrPKlWypPj6wL4DCA0NBSCdgHn7th3ivRIAPDykQdvnz5+Ln8m2SsuukBkdk9V9X7YQqaWlhanTpojvjx45hhXL/xBblGZkZODy5Sv4a9NmcR1nZxecPnUGt2/fkduHlZUVdI10kZyeDL+ArEohNTU1/G/oeKirS3/G/V76YdKCyTjleBouN1wQGvEOr4PfYMf2v/Hu3TsMHDRALt0JE/8nFtKPHTsOLy8vheOLjY3Fgf0HoKGhgd+XLYGpqYm4rJVdKzT5OLZzelo6fpk8FRcvXhKDJPHx8Vj5xyp4ej4Wt9m6dTucnJzFyqtx48eJE1y/fBmAAf0GYfeuPfD08ISPjy8uu17Gr9N+w6yZszHt16k5ttwkIiLV+FZ+P3MTI5OHqOho5etEZ62TXcv8lOSseZDiPg5ZmNO+cgrahIeHIyQ4ROHzjIwMPHzwCGpqarCqa6l028jorImN4xOlQRkPLw/oGOmgfIXyqFy5cq7HPHbcWPG3NjIyEj8OH4E/167D/fsP4Ofrh6tuVzFzxmxs3bwNs+fMErczNDIU54tKTU3Fpg1/iecrICAQM3+bJfZ6jIiIxJvXb5CYmIjgYGmPjpIlS0JPTzo/haeHpzg/wpPHT7BxwyZxP7L5j1aSfzU1NSxfsQyGhtK5INatXS+3TaanT71w1e0aTE1NsXTZ7wrLC3MNZ9q2dbvcEFWZ3gZJ571q1KhRkc09QUTfJtleEJn3KTc3NwDs/UBfBwYgvnKZvRwyH8wz/2fvByL6L+ves7tYOf/yZQC6d+2Jzh27om3rdoiNjcWS3xeL6+7etQdt27TD0cPHxM+8vX3E18/9sypWMn14/wGvAl9lu07nzp0wcdIEcVLH48dOoFOHLujauTtaNrfD4oVL5CpZoqKicPv2HYWCrp6eHurXrw9dE114+XohJTWroqNOzTr4dfQ0aGlKWw5GREVgz7G92HJwGxzdnODqchllSpfGij+Wy00uCQA6OjrYsm0zmjZrIg0g/DwVzs4uSE9PBwD4+/lj4oSfkZiYhD/XrUXLli3ktpcW8peiYcMGAKQVAfPmzEcbO3t07dwdrVu1xcuXARg0eKC4jY+PD3x9fKGjI62kMDMrh/Ub/hQrCqKiorD5ry0YOWI0fhg8FL9Nn4nbt25jzrzZ6NY9b609iYiocL6V38+cxMTEyLWOd3Z0luuxB0hb9Ts5OYvvb1y/KQ5JmCklJQV379wV31+8cEkhnTev3+D6tevi+0uXnJCUpFgxDUgru8eMHofTp86I+3r79i2mTfkVQUHB6N6jG76rWQ2ezzzltnvx+iVuPbwtvr969xoC3wQiLDIMOkY6sLW1zdMxm5qa4K8tG8UgRHJyMv45+C/Gj/0fBg/6AdOmTsfz58+xZetfco0SNDU15X6n//nnX7Ru1Rbt7Tti1MjRGDHyJ7Syayke4+BBP6Bj+854907ak0VNTQ1t7aXDPKampmLggMHo0rkb5s6dj8GDBwEA0tPTce7seXEfAQGBuHXrtsL3XqlyJezasxMVK1VEcHAwxo+bIDayyMjIwLWr1zBtyjRUq1YVe/bugplZOYXvobDXMAAEBgRi3NjxePrUC+np6cjIyMCN6zexY9tOlC5dGgsWzlPYhogoJ7K9IDJ/IzIyMtj7gb4aakJRDuRJn0X//v1x/PhxufdHjx4txhwRERW/69dvYOf2nXj5MgASiQQWjRpi8OBBsLK2AgAsX7oCFy5chJGxEXr37oURI3/CrZu3cGD/QTx6lNXCU0tLC3at7TBwYH9YWlli29btOHvmrFhwBqSTDNq3s8fMWb9BQ0ND/PzpUy/8e/BfPHrkjqioKJiamqJps6YYM2YUAGDunHno2q0rOnRsL1bEfyo5ORmHDh1CxJsI1K5aGw3rNJRbHvwuBKccT8H9mQfCI8Ohoa6BcmZlMW78OHTq3DHX8+R25SrOnTuPp0+eIiEhASYmJihZsiRa2bVE/wH9ss0XIG0RevrUGVy4cBEvnr9AaloqKleqjO49umHgoAH4999DeO73HF27dYGNrY1YqSUrPDwcB/YfxI3rNxESEgJBEFC+fHk0bmKLQYMHoVKlirkeAxERqc638vupTI/uvRAcFKw0YFG1WlWcOHkMs2bOhrOTi8JyDQ0NdOzUAb8vXYIF8xfB8ZKj0p4RTZs1wV+bN2HRwsVyleay6YwcNQLj/zcOANCtSw+EhITAzMwMq9esxNat2/HY8zG0tbWgq6eH5s2aYejwH5CamoqLFy4iJigGHe06Qk9PH2NnjUNMnGIrfzU1NVSsUAHjJ47Dls3bcj1mWXFxcfjn4L+4fPkK3r6RzhP13XfV0LFTR/Qf0E/szSArKSkJu/7ejUsXHREeHo4yZcqgdRs7DP9xGEqUKIE3b95i5oxZCAwIxPfff48Jk/4HW1sbcfuYmBgsWrgEd27fgYGhAezsWmHChP/BtIQptmzeigP7DyIlJUVhv/r6+li9ZqXCMEopKSk4dfI0XJxd8OLFSwiCAAMDA1T7rhratbdHly6dFVoLX7t6TSXX8KSJP+P2rTtyaWhoaMDYxBit7ewwZuxomJbI2yTiRESyYmNjUa1aNbmha/ft24fhw4cXY66I8oYBiG/AkydP0KBBA7n3shOEEhHR183DwwO3rt9C4odE9OzYE7oSXYV1EpMSccbxDHRL66JZy2awsLD4/BklIiKifJENQJy/cDbHdc+cOYNAn0CY6JigXct2StcJeBOA2+63YWRmhP4D+otzQBER0dfvjz/+wOzZswEAZmZmeP36NYdfoq8Ch2D6BtSvXx/m5tKxvM3NzRl8ICL6xtSrVw9GpkZQ01HDU5+nStd56vMUajpqMDI14u8AERHRN8jW1hY6xjp4H/4ewe+CFZZnZGTg8bPHkBhL8H2t7xl8ICL6xkycOFHsMTh69GgGH+irwQDEN8LR0RFjxoyBo6NjcWeFiIhUTFNTE5aWltA11oV/oD/i4uPklsfGxcI/0B+6JrqwtLTkgygREdE3yMzMDFWqVIGOsQ48vDwUhlV6HvgcCSkJkBhKYGVlVUy5JCKiomJoaIgzZ85gxowZWLRoUXFnhyjPGID4RlSqVAk7duxApUqVijsrRERUBGrXrg3TUqbQ1NWEp7f8BJSPfR5DU1cTpiVNUbt27WLKIRERERU1Gxsb6BjoICo2Cq+DXoufp6Wl4YnPE0iMJahTpw6MjIyKMZdERFRUunbtipUrVyqdX4/oS8WrlYiI6Cugrq4Oa2trSEwkCHwTiMjoSABAZHQkAt8EQmIigbW1NR9EiYiIviJxcdJejfHx8Xlav1SpUqhRswYkJhJ4PvNERkYGAMD3hS9ShVToGeuhUaNGRZZfIiIiovxiLQUREdFXonr16ihdpjS0DXTg+UzaC8LzmSd0DHRQpmwZVK9evZhzSERERHkhCAIuXXREbGwsACAmJgYXHC4gPT09121tbGwgMZQgPikeL1+/RHJKMrz8vCAxkaB+/frQ09Mr6uwTERER5Zma8OnAkURERPTFev36NS44XEBMUAwa1W0Edy93GFUwQpeuXVC5cuXizh4RERHlwt//OUb+NAoJCQkKy7S0tNDQoiG279iaYxrXr1+H5wNPCPECKpevjBdBL1CyckkMHjwY2traRZV1IiIionzjLJVERERfkcqVK6N8hfJIjk3Go6ePIDGWoHyF8gw+EBERfSVq1qyB6zevFioNKysr+Pn5ITImEj4vfGBYzhAWFhYMPhAREdEXh0MwERERfWVsbW2hY6QDDS0N6BjpwNbWtrizRERERJ+Rnp4e6tevD10TXWjracPI1Ah169Yt7mwRERERKWAAgoiI6CtTrlw5VK1aFQZlDVC1alWUK1euuLNEREREn1nDhg2hb6wP3RK6sLKygqYmBzggIiKiLw8DEERERF8hW1tbaGhqsPcDERHRf5SOjg4sLCxgWsIUtWrVKu7sEBERESnFSaiJiIi+UoGBgahatWpxZ4OIiIiKSVpaGkJDQ1GxYsXizgoRERGRUgxAEBERERERERERERGRynEIJiIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGIAgIiIiIiIiIiIiIiKVYwCCiIiIiIiIiIiIiIhUjgEIIiIiIiIiIiIiIiJSOQYgiIiIiIiIiIiIiIhI5RiAICIiIiIiIiIiIiIilWMAgoiIiIiIiIiIiIiIVI4BCCIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGIAgIiIiIiIiIiIiIiKVYwCCiIiIiIiIiIiIiIhUjgEIIiIiIiIiIiIiIiJSOQYgiIiIiIiIiIiIiIhI5RiAICIiIiIiIiIiIiIilWMAgoiIiIiIiIiIiIiIVI4BCCIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGIAgIiIiIiIiIiIiIiKVYwCCiIiIiIiIiIiIiIhUjgEIIiIiIiIiIiIiIiJSOQYgiIiIiIiIiIiIiIhI5RiAICIiIiIiIiIiIiIilWMAgoiIiIiIiIiIiIiIVI4BCCIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGIAgIiIiIiIiIiIiIiKVYwCCiIiIiIiIiIiIiIhUjgEIIiIiIiIiIiIiIiJSOQYgiIiIiIiIiIiIiIhI5RiAICIiIiIiIiIiIiIilWMAgoiIiIiIiIiIiIiIVI4BCCIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGIAgIiIiIiIiIiIiIiKVYwCCiIiIiIiIiIiIiIhUjgEIIiIiIiIiIiIiIiJSOQYgiIiIiIiIiIiIiIhI5RiAICIiIiIiIiIiIiIilWMAgoiIiIiIiIiIiIiIVI4BCCIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGIAgIiIiIiIiIiIiIiKVYwCCiIiIiIiIiIiIiIhUjgEIIiIiIiIiIiIiIiJSOQYgiIiIiIiIiIiIiIhI5RiAICIiIiIiIiIiIiIilWMAgoiIiIiIiIiIiIiIVI4BCCIiIiIiIiIiIiIiUjkGIIiIiIiIiIiIiIiISOUYgCAiIiIiIiIiIiIiIpVjAIKIiIiIiIiIiIiIiFSOAQgiIiIiIiIiIiIiIlI5BiCIiIiIiIiIiIiIiEjlGICgb1Z0dDS8vX2KOxtUBNLT03H//oPizsZn5+//HGFhYcWdDSIiIiKib0JYWBjLjEQ5SE1Nw71795Genl6odBITE/HwwUMV5YqIvjaaxZ2Br42ry2UsWfw74uLisl1HIpFg9JhRGDHyp8+XMUJ6ejp8fHxw98493Lp5G48fP0bnLp2weMmi4s4aAfD19cWM32YhMSEBi5YsQrNmTfO1fWhoKO7du487t+/izu07iI6OxkP3+0WT2XyIjY3F/n0HcPfOXbx9G4Tk5GRUqFgB3bp3xdChP0BdveBx3tjYODx6+BB37tzFzRs3ERQUjO07t6FUqVJy64WGhmLalF8RHByCX6dPQ/ce3Qp7WN+0b+V8xcXFYdqUX+Ht7YMRI3/CyFEjijtLRERElA/e3j4YOmSY3Gd6enqQSCRQUwMSEhKRmJgIAFBXV4epqQkAICUlFfHx8cjIyBC3GzR4IH6bMf2z5T0v7ty5i4XzF0FHRxur1qxC7dq1ijtLSExMwpPHj3Hv3n3cvXMX3t4+6NqtC8uMVGyePHmKQ/8ehp+vH4KCgqCrp4u6depg5OiRaNTIoljyFBERgRs3buLG9Zu4c+cO4uPicevODWhoaOQ5jfT0dPj5+uH+/Qe4c+cu3B+5o2TJkjh/4WwR5pyIvlQMQOSTfbu2sG/XFtHR0Vj5x2o4XnIUl9WtVxfLVyxFxYoVizGH/11+fv64ctkNN2/chJ+ff3Fnhz5x5vQ5vH3zFgBw7MixfAcgTp44haCgILm/ueIWHByMUSPGoGmzpti9dxeioqIwbcqv8PJ6hg3rNkJHWwcDBw0ocPqXXS/D19cP5885ICEhIdv1XJxd4evrBwA4ePCfr7ZC/XP5Vs7Xvbv38PDhIwDA3j37GIAgIiL6yiR9DC6ULFkCU6b+guYtmsPY2Fhcvn3bDuzYvhMAULZsWbmKu5SUFDx75o0tm7fi4YOHSExM+ryZz4Mjh46IvXfPnjn3RQQgzp87j9DQUFy54oZXga+KOzv0H3fi+EmsWrkam/7aANvGtrhx/SZ+mz4Dt27dxv37D+DofFHunvC5XLrkiOf+L+Dm5ob0tIL1fLh79x7cH7njyZMnuH/vvzd6ARHJ4xBMBWRsbIyBA/vLfTZgQH8GH2Rkttb5XMzNa2PSzxMxb8Hcz7pfypvOXTqhbLmyKFmyBPr265vv7SdM/B+WLV+K776rVgS5yz9BEDB71ly8f/8eo0aPgKamJkqVKoW169aiYqWK0NDUQNmyZQu1j569emDGzOno2q1LjuvZtbZDtWrVYGhoiCFDBhdqn/8FX9P5yuk+amVthbr16kJPTw/Dhg/9jLkiIiIiVchsYPL70iXo0rVLvioatbW1YWHREBs3rUfZcmWRmENjleLSq3dPmJiYoEKF8uiWy/Ps59J/QD/8PHkS5sydXdxZ+ezl5aL2rR1PUfP3f46Vf6xCgwb1YdvYFgDQomVzzF84D5qamihdujS0tLSKJW9DhgzGgoXzYGtrU+A0mjVriomTJmDDxvXQ0dFRYe6oMPh3SsWFPSAKoUTJknLvy5QpXUw5+fLcv/8Anh6eGD1m1Gfft6mp6WffJ+Wufv16uHDxfKHTkX6/AYXPUCHdvn0HT588BQCUK1dO/Lx06VI4fuIYkpISYWhoqJJ95XZNV6pUEcdPHlXJvv4LvpbzFR4ejj/XrsOy5UuVLjc2Nsb+A3s/b6aIiIhIZRITk1C1WlU0btK4wGlIJBL07dsHT548UWHOVMOutR1cW9sVdzaUKmxDocI6f84BANCte9dizYeqfGvH8zns2bUH6enpKGdWTu7zLl06o2XLFpBIdKGlVbxVdiVKlMx9pVzo6OjAxMQY7969V0GOqDD4d0rFiT0gCkFDQ/70qedjPLxv2YcPYZg7e26hJyki+pLdvnVbfP3pWJhaWpoqCz7Qf1N6ejrmzJ6HD+8/FHdWiIiIqIgkJCagadMmhU6nWbOmSEhgq9b8+LQs/zk9f/4cK5b/gQwhI/eVvwLf2vF8Lrdv3wEApXMGGhoaFnvwAQDU1FSTjro668qKG/9OqbgxAEEqlZiYhF+n/orw8IjizgpRkQoKCi7uLNA3bPWqNXhwn2OlEhERfctatGiOn0b8WOh0vq/1PWbO+k0FOaKiFhERgWlTfkVS0pc3Z0dBfGvH87nExsYiJiamuLNB/xH8O6UvAQMQpDKRkVH4eeJkeHk9K+6s0BcuNTWtuLNQaElf6NiJ38K5/Zy+tPOVlpaGVSvX4NjR4/na7ks7DiIiIspdiRIlUKpUqUKno6GhgerVq6sgR0WHzypAUFAQxo0Z/800ZPrWjudz4jj89Lnw75S+FMXfp+s/ICQkFK4urnB2dkHv3r3Qq3dPvH37Fvv27seN6zcRFRWFqlWrYOTokWjfvp3ctsuWLsfJE6cU0qxRswaOHD0k91kbO3u5KPrAQQMxY+Z0uXXi4+Nx5PBR3Lh+A6GhoYiKjka5smXRokUL/DhiOEqWVBzjLykpCdev34DjJUe0smuFHj26w+3KVezYsROBgYGoV68e/ly3BhMnTEJIcIi43YH9B3Hi+AkAgIGBAU6ePqGQ9lW3qzh79jxeBb5CUFAQDI0MUb9+fQwcNCDXCY8ePXyEw4eP4rHnY6SlpcHYxBhdunRGmzatc9wuL3x9fXH+nAMeP36Cffv3ID4+Hv8c/BfOTs4ICgqGgYE+rG1sMGbsaFSrVlXczt3dA+PGjkd6mvzwU5qamvjxp+GYMPF/4mdXrrhh1ozZSEuTPozr6OjA4eJ5mJqaAABCgkPg6OgEx0uO2HdgLwRBwLat2+HgcAFJSUkYOXKEXIup+Ph4ODhcgOMlJ4SHhSMsLAx6erqo36ABhg0fCguLhkqP9cOHMLg4u8DJ0QkDBg1A586d8PLFS/zzz7+4c/suIiIiULZsWQwcNACDhwwSt3vz5i0O/XsYN27cwIf3H1CmbBkMHDQg20l9IyOjcOXyZTg5OaO8WXksWDQ/2/MfGRGJAwcO4urVa4iOioa6hjpsbW0wcuSIbLfJr9jYWBw/dgI3b9zC+w/vERkRCR0dHdSsWQP27ezRs1cPhUm/9u8/gIP7DwIAoqOz/tY6tOsov97BfXLzQuRFamoaThw/gYsXLyHobRAEQUCtWt/jh6FDct02Pj4eV69eg7OjM1JSU7F5yyal63l6eGLf3v14/PgJ0tLSEBsbKy4bPGQQpv/2q0q2AaQPOv/+cwju7h4ICQ5BekY6qlSujI6dOmLgoAFKJ1SLiYnBZdcrcHJ0go2tDUaM/AmhoaE4eOAf3Lh+E+/fv4epqSm6de+KMWNHQ1NT+hMWHh6Ow4eO4PLlKwgJDoGJiTG69+iOsePGKAyPldfzVZj7tqzQ0FCcOH4SN2/eQlxsLMLCwlGqVEk0adIEI0b+BLPyZnLrL/19GW7dvJV1/j0fy11fW7dvESsYkpOTcevWbTg7OuP58+c4evxItvlIS0vDpYuOuOx6Gc9fvEBcXBwy0jNQsWJFNG/RDIMGDYRpCeVzjQQGBsLZyQXOzi749depaNykMfx8/bB37348uH8fcXHxqFXre0yYNAE2NtbZ5oGIiIiKVnBwMPr1GYDk5GS5zzU0NNCpU0csWbpY/Mz7mTdGjhiNlJQUANLyyv6De1GrVi0AQFRUFJwcnXDu7HlMnTYFllaWuHLFDceOHIO3tw/S0tJQo0Z19B/YH126dFaan3fv3sHF2RVOTs5o3rwZxo4bk23eo6KicPzYCbhduYqwsDCkp6ejZMmSaNa8KQYOGpDtnA35fdZStRcvXmDXzt148PAhUlNSERsbC0EQAEjnwPhz3RoA0nPx88TJCAsPF7dds3ot/tr4FwCgevXq2Lp9i7jsmdczXLrkiNCQUKxasxIhIaFYv24D7ty+A319PcxfOB+LFixGWFiYuI2ZmRnOXzgrvl+1cg1OnjiJ1NRU8bNu3bti8ZJF2R7Pvbv3cOLEKTx58gRpqanQ1tZBtWpV0adfH9jZtRKHC8rL8axeuwod2nWSux6trCyx4+/t4vtpU6fjxo0bcuXnsePGYNz4sXL5ymudhIGBgbhNQeo+8sPb2wenTpyCu7s7EhISERkViVIlS8KiUSP06dtbafl72A/D8e7dO6SnZw2D4+zkIje8b4OGDbBm7ep85SUyMgpnTp/B5ctXEB0djQ8fPsDE2BiWVpYYMfInlQUow8PDcfDAP3C7chXv3r2Dvr4+LCwaYsjQIWjUyKLQ6SclJeHsmbNwc7uGt2/fIiY6Burq6qharSrs7FqhX/++0NfXzzGN0NBQ7N97ADdv3UJcbBwEQcB3332HZs2bonVrO1T7rhrUCji21Pv373HB4SLOn3PAps0bUa5cWZw7ew6nT53B8+cvoKamhjp1zDF02A9o3qJ5jmk9ePAQ586ew5MnT5GYkIjY2FiUKVMa1tbWGDCoP2rUqJHttkV13yEqUgIVWFBQkGBpYS3+u3//gdzyZ8+8hdkz5wg2Vo3FdY4dPS5cuugotGjWSmhv30Gwa9lGXGbVyEZwdXFV2M+d23eEJrbNxPV2bN+pND/p6enCooWLBUsLa+HE8RMKy595PRM6tu8sbN+2Q0hISBAEQRBevgwQhg4ZJlhaWAtt7OwFr6de4voPHzwUZs+cIzRr0kIu/0ePHBNsrZvIHbuLszTf9+8/ED/btnV7tucuMTFRmDZ1ujByxGjhVeArQRAEITY2Vvhr02Zx+y2btyrdNiMjQ1i75k/BqpGNsH7dBiEyMlIQBEF49+6dsGD+QqFDu05iGgvmL8w2D59KTk4WNm7YJPTq0Ufcvmvn7sKL5y+E7l17CJYW1oKNdWO5427auLlw8+YtuXTCwsKEfn36i+uMGjFGSE5OVrrPuLg4oUO7TkLnTl2FsLAwQRAEYd/e/cKIH0fK7ScmJkYYM2qs3Hlv0ayVmI6Pj4/QqUMXoWmT5sKVy26CIAhCSkqqcGD/QWm+rRoLTk7Ocvt+9MhdGDtmvGBtaSumeebMWeHkiVNCY5umQtMmzYXOnboKVo1sxOX79u0XBEEQjh09LjRv2lJo366j0LZ1O7m8Hjl8RG4/9+7dFyZOmCR37nL6Xu7duy+0aW0vDB0yTHj2zFsQBOn1cvrUGaFd2w5CGzt7MZ2CcrviJti1bCMMG/qjuI/09HTh+rUbQvduPQVLC2uhZ/fewvPnz7NNY8yosYXOR6bQ0FBhQP9BQnv7DoKr62UhLS1NSEtLE+7ffyD07tVX7pqWvc/4+PgI06f9JjRt3FxcPmbUWKX7cHVxFawtbYXp034TIiIiBUGQ/s39vXOXYG1pK6xetUYl2wiCIJw5fUawb9NecHZyEdLS0oTU1FTh1q3bQru2HQRLC2th8MAhQlRUlLj+i+cvhF8mTxEa2zSVu39cu3ZdaNnCTmhs01To0qmb3L30jxUrpXl0vSy0sbMX7Nu0F9q36yh3La77c71cvvJyvlR13xYEQTh/zkFoYttM6NWjj+Dv7y8IgiDExMQIs2fOESwtrAX7Nu2FgIAApdvm9H0GBQUJ8+cuEFq2sJO7V2Xn5csAoV+f/kJ7+w7C5ctXhLS0NEEQBMHP108YP/Z/gqWFtdCyuZ3g7OQit93du/eEXyZPkTunN2/cFA4e+EewtW4idOrQRWjRrJW4rLFNU+Hx4yfZ5oOIiIjyZ9vW7Xn6rZcVFxcnjB0zXtyuZ/feQlxcnNJ1U1JShCGDhwotm9uJzySuLq7C/8ZNkHt2v3P7jjBv7nyl5SFLC2th8cIlQkZGhpiui7OrMHLEaLlyRE5lQ7crbkKb1vbCrBmzxbJhSkqKMHvWXGmZq0lzwdX1ssJ2hXnWki3L56fMKMvTw1No2qS5MHLEaCE4OEQQBGm55fixE0LTJs2FqVN+VdjmzJmzcmUvWTExMcKfa9cJPbr3EtcZPuwn4fXrN0LH9p3lzv0vk6cIgiD9vnK6RlJTU4XNf23J9Vjj4uKE6dN+E+zbtBcczjsISUlJgiAIgtdTL7EuYtzY8UJCQmKejyfTwQP/5Phsm5ycLCyYv1DptVKQOglByH/dR36kpKQIy35fLlg1shE2rN8o1kdER0cL27ftEL+nhQsWZVsPoIrrL9Pt23eEVi1aC/Zt2guPHrkLgiC9Dteu/lOwtLAWmjVpIX6eX7Lfi9dTL6Fj+84Kf/+ZZaKdO/7ONp2unbvneh/z9PAUOnXoIvTq0Ue4f/+BeE959MhdGDzoB8HSwlpob99BePjgYbZp3L17T7Br2UYYO2a88OHDB0EQpOW7zPocSwtroYltM6G9fQehvX0HsX4jNydOnBRG/DhS7p7m5+cv/G/chGzvi9u37VCaVmxsrDBt6nTBxrqxsH/fASE+Pl4QBEF4//6DsPKP1YKlhbVgbWkrbNr4l5Cenq70PKnyvkP0uXAIpiJUu3YtLP9jGSZOmiB+5uTkjH1792Hzlk1wcnGE27XLWLh4AQBAEARs3rxVIZ3GTRrLtTxPSEhQuj91dXVIJBLUqFkDffr2kVv29u1bjB83AY2b2GLsuDHQ1dUFAFSrVhWrVq+Euro6oqOj8cvkqWIvitrmtbFsxVIMGz5UTOfmjZu4d/ceXC47Y+ff2/Hdd9VQtmwZmNepna9zM3vmHLg/csfaP1ejcpXKAKS9JCZOmgAbW2kL2r937sKFCxcVtl2/bgP+Ofgvfhg6BL9MmQwTExMAQJkyZbB4ySI0ado4X3nJpKGhgc5dOmHs+KyWOXFxcZg9ey4GDxkM1yvOuHvvNg7+ewANGtQHIG2BPGvmbISEhIrblCxZErNmzxTfR0VFQVtbW+k+BUFATEwMfvwxqwVG3359sHX7FlSpWkVc7/cly9C1W1fcuHUN4/83DoaGhmhl11JMY+Zvs/H+/Xs0bNAArdvYAZBOhDx02A+wtbVBeno6Viz7Q2zhBAA1atTAqtV/oGevHuJnp0+dwfnzDvhz/VpcveaGCxfP4/jJoyhZsgQAYPffe7Bp41+4fv0Gjhw7BCfnS3C94oyt2zZDIpEAAHb9vUeMvgPA99/XxOo1qzF16pRcv4OnT73wy+QpMDAwwJZtW2BuLr2uJBIJevbqgeV/LEN0dHSu6eTkyhU3/DrtNxgaGmLrts3iPtTV1dGiZXPs3vM3ypUrhzdv3mD0yLF4/ep1ofaXm9jYWIwdMx6BAYHY+NdGtG3bBhoaGtDQ0IC1tRV27dqZ7YTuFSpUwKIlC7F8xbJc97N2zTpkZGRgxszfxF42BgYGGDV6JIb/OExl27g4u2Lxot8xecrPaNfeHhoaGtDU1ETTpk0wZeovAABfXz/MnjVX3KacWTksXrIIo0aPFD+7des2tm7ZhoULF8Dt2mU4XDyHC5fOo+rHHkcnjp/Ezh1/4+D+g9i+YytcLjvByfkS/j18ECVLSf+WDh86gtjYuHydL1Xdt4OCgrB48RKkpKSga7cuYgsWQ0NDzF84DwYGBoiMjMSfa9dnm5fsmJqa4reZ07FTpvVYdt6+fYtRI0fj1evX2LBpA9q0aS32Cqn5fU1s2rwRzZs3Q3x8PGbNnA0XZ1dxWxsba6zfsA79+vcVPzuw/yCuul3FocP/4KKjA65evyK2UEtNTcX2bbnniYiIiIqOvr4+5i+YK/7eR0dHK+15CkjLPxHhEejdpxeqVq0KADA3N8eESRPE94C0xayGhgaOHDuEO3dvwcXVCSNG/iS2Ij5z5iwOHTosrm9pZYm/Nm/KU09eZ2cX/DZ9Jlq1aokVK5eLZUMtLS2MGTMKAJCclIxFCxbLlYOL8lkrrzZu+AvJScmYPHkSzMykvZ8lEgn69uuDX3+dlu/0JBJdTJj4P/y1eZPY0yA+Lh5LFi3B6rWr4OziiE6dO0JPTw/NmjcDALS1bwtjY+Ns09TU1ESHju1z3G9CQgJ+njgZt27dxo6d29Claxfo6OgAAOrUrQO71q0AAPfvPcCB/QfyfVy9evfMcbm2tjbs29krXVaQOomC1H3klSAImDNrLk6cOIkhPwzG5F9+FusjjIyMMHbcGLGHybmz5zFrxmxkZBTdpL/x8fGYNWM24uLi0MquldgLQSKRYMq0X1ClSmUkJSVh+dLlhd7XooWL0bJVCxz89wBcLjtj34G9sLdvC0B6XrZu2YZzZ88XKO0nT55i/LgJSEhIwLYdW2BtbSXeXxo1ssDfu3agVu1aCA+PwMQJP8PTw1MhjZCQUEyf9htiY2OxYOE8cXg7c/Pa+H3pEnE9Q0MDXHK6CCcXRwwfrrxM+ykba2tM+nmiXK+ZeXPno0bNGjhz7hTu3ruN8xfOoWevrGt9+7YdcLtyVS6dlJQUTJowGW5X3DBt2lQMGz4Uenp6AIDSpUthxszpmDhpAjIyMrBn916sWbVWIS+qvu8QfS4MQBShzBtmze9ryn22a8/faNCwgfhZjx7d0ahRIwBAYEAg3r9/r5DWsOHDxAreCw4XlY6hmZqaBlfXyxg8eJDCsqW/L0NcXBzGjB2tsMysvBnqf6xQj4iIwOnTZwAAenp6UFNTQ0OZroOvXr3C0uW/w9DQAJZWljh24iguXHJA+fLlcz8hHzmcv4Br166j/4B+4o+1rI4ds4Yb2bt7r9yye3fv4Z+D/8LQ0BDj/zdOafoDBvbPc15kaWhooEaNGujcuZNY4Z6UlITVq1di8JBBMDExgZqaGszNa2PLts2oVq0aAOlD4e5du+XSsrK2Er/TgIAA3Lt3X+k+Myv7OnfpJH6mr68PHR0d1K6dFdSpVq2qOCTQmLGj4XbtMpYtXwoAiIyMxJs3bwAA4RGKk3+b1zEHIC18vJKpTDc0NICxsTFat24t85khduzchmbNmkJLSzq8TdWqVdG7T28A0spy72fe+HPdGlSoUEHczraxrXgMYWFhePHihbjM2NgYuroSNGnaROk5yJSSkoJ5c+YjOSn5Y5DFQGEdGxtrfPddtRzTyUlUVBQWLlgEQRDw40/DlXbfLFWqFGbNkQaQYmJiMH/+wgLvLy9Wr1yDt2/eolv3rqhdu5bCctMSpmjXXvkDuYGBAfT19dG0Wc7nNjw8HKGhH4NkSrqb/vjTcLGQUZht4uLisGzpcpiZmaF7924K27S1bysOm3T3zl08+zhfjJ6eHoyNjcUHWEA6ZNDuPX/Dvl1b8d5XqlQp8SExPT0dzs4u2Lz1L7l7bK1atTBo0EAA0gpxd3d3cVlezpeq7tteXs/EruQR4fJ/l7q6umKA8emTp9nmJTu6urowNDRErVq1xHtVdhbMX4ToqGjYt20rBttkaWpqYsGi+dDX14cgCFi8aAkiIyIBZJ2L77//Xly/RMkS2LJtM76r/h0AaeBu9JhR4m/Ao4fu4rByREREVDwqVqyIjp06AJA+z168cEnpeg/uP8D79+/Rs2dWgySz8maoV68uWsgMH9K+Q3ssWrwQNWrUgLq6OkxLmGLSzxPlGo/s3P43EhOlE5yamppAV1eCxo1tc8znu3fvsHjhEkh0JUqH9az2XTVU//jMER8fLzcEalE+a+XVs2fSZ1llw7n07NUDZcqUzld6Wlqa0NHRQaVKFVGihPQZLyAgAGPGjUH9+vVgbGyMZcuX4vrNqxgwIKvMm1mBmZ3clm/+aws8PR/jx5+Gi894stq1yxpuNCQkRGF5bnIbMienPBakTqIgdR95derUaVy+fAXa2toY/TFA9qnOnTuJAZWrV6/hxPGT+dpHfgQEBIpD5EZEhMstU1dXx/e1pM/xL18GID4+vlD7smtth7nz5sDcvDZMTU1Qr15drFqzEl26Zg3Btu7P9fme3yI1NQ1zZ89FcnIy+vbro3S4NT09PSxesgjq6upISUnBnNnz5BpXAsDBAwcRHx8PYxNjuboKAGho0RB1PtaLhIdH4Nkz73zlsVLlSrC0soSlZSPxs2HDhmLar1NRsWJFqKmpwcysHBYsnIeu3bqK62zcuEmucebOHX/jyZMnKF26NPoP6Kd0Xz+N+BH16tcDABw5chQ3b9yUW67q+w7R58IAxGcg2/rd0rKRGIGXlfnDAADv3ikGIExNTdCjZ3cA0greK5cvK6xz1e0q0lLT0Kmz/Hj0Pj6+uH/vAcqVK4eKFSsqzWPmzRgAPNzlo8myLWZat2mtUOmYXwc+jqFvnc1Y4XXqZuXlxYuXcq0Stm3bAUEQ0LxFM6XnEZC2Di4sbW3pMZYqVUpshSNLV1cXk36eKL53cnRWaNkwcnTWfAV79+xTup8LDhdg17oVjIyMFJZlBgAAoFOnjgrLM5mamqJlqxbi2K6fkv2+lD10SHQl4us6dcyVjplfs2ZWZWxDi4a5rvP2TZCSfCjvBZLJ4fwFvHnzBhqaGmjTpk226xXm+z165Bji46TnoHGT7HvKtGzZQmxp//TJU9y//6DA+8zJq1evcPGitEDYvkP2LZNyO+bc/iaNjIzEv+NNG/9SuFaNjIzw8+RJhd7mzOmziImJgaWVpdIHIl1diVwAycPDQ2657LVYo0Z1MfAgq2bNrLEwzc1rK70P1JBZ5+3btwrL83IPK+x928rKEhUrVYSBgQFafWw1JkvyMQ9x8XEKy/Ij816lzKOHj8TWQTld76VKlUKnztIAYkJCAo4cOSq3XEs76zegcZPGYhApk7q6OmrUyJqXorC9lIiIiKjwRo4cIbai37dvv9JW2A4OF1C3Xl2llc6yz0uWVpbK9zFqhNjzNCYmBrdv3ZJbrp3LM9eunbuRmJgIO7tWcmP3y1qxcjl69uqJ35cuFlv7Ap/vWSsnmUGCrVu2KVSGampqyvWKz6/M5/ASJUrkOjdiYbx79w7Hjh4HAHTOZi6Pdu3tMfmXnzFw4ABMmDhB6TpFLa91EoWt+8hNZrm+Tt06SsvwmWR7bGRXF6AKNWpUR5065tDR0ZELFGXKrS4gPzp37qT081+nTxPLStHR0XB1UayryonjJUdxguQmOZRZatasIS4PDQ3FpYvygVX3R9KGZxnpynuctJVp7BYcXLAJmbVl6jQsrRopXWfK1MliWfJV4Cv4+PgCABITk3D4kHTOPhtba6V1KoC0bPXDD1nzan56/RTlfYeoKHES6i+EsXHWj1fKJ5OGZRo8eBCOHT0OQRBw5MgxdOjYQW75yRMn0aNnd4VKu8yIaVhYmMJkuZnS0tLFH424uOwf0gobfHj//j38/f0BALNmzIaGhmIMTBAgV9kXEREBIyMjhASHiJVpsi1yi0uLls1hYGCAuLg4xMXF4e2bt3LBimbNmqJu3Trw8nqGu3fuwtvbR64FckhIKB49csfGTetz3ZeOJPvzrqamhvUb1iE9PV3hR+yZ1zM8epTVArygLZONTbLv1ptJVy/rO0tIyP/DTWZFfOVKlaGrq1jxrAq3bmZN7lWunPKJ7DI1b94MgQGBAKR/Q0Uxua7jJSexMPi9TIt7VdPS0kLXbl1w+tQZOJx3QHBQMGbMnC5Xga6KbTLvNZddL+PO7dtK10lOTpF5QM1fl2cgb9eibAuqhHjlQ9apQk737ZIlS+LM2VPIyMgQC/+A9G/w1q3beBskDdJ9OmG9Kt2Umcy6bC7Xe4sWzXDi+AnpdjduZtvDLDtGcuciJYc1iYiI6HOo9l01tGnbBq4urngV+ApuV9zkKuCSkpJw5bIbJv/yc4H3oaOjA3v7tjh65BgA6aS8svvISUZGBq5ccQMAceJrZapXr44FC+cpfP4lPGv17tMLWzZvxb179zFs6I+YMWM6rKytVLqPwpa/c+N25SrS09Ohr6+PSpWUV9gD0t7PX4qczokq6z4+FRgYiKC30usqu0nRM9WvXw/GJsaIjopGaGgoXrx4obKJoGVJJBIc+Ge/Ql2AIAh4+PAR/Hz9xM8K20tZkk0Z3cTEBK3sWsHxkiMAaSOzbt27Kl1XmVv5KLM0b9Ectz5O2H3jxi30kOm9lTnZemxsLBISEhR61VSokDVqh042Q2SrQokSJWDb2BY3rt8AAHh7e8PcvPbHycqlZdPcrp+mzZpBTU0NgiDA0/Mx4uLixCDt57jvEBUFBiC+QEI2n1euUhktW7bAtWvX4eHuAX8/f3GYkDev3+DBg4eYO3+OwnaZFf5169bB7r27iirbeeLv5y++3rN3l9LeBdnx8MxqnZBTa4PPRVNTE7VqfY+HDx8BkA7v8+nxjBw1Er9Omw5AGrleuWqFuOzihYsoVapUji2T8yPzgSMuLg4O5y/AxdkF5ubmKF26VKHTVtaaPSdp2cxZkJ2MjAyxe7RsRaaqvX6dNQSVbFdIZWSDXMpa0auCh8fnu6anTJ2Cly9e4vHjJ3B3d8cPQ4ahV++emDDhfzAtobyHRX638fd/DgAYPGSQ3BwKqpTfazG7+TNULburKbNAHBIcghMnTsLD3RMtWjaHibEx3oW+K9I8yc5fktv1XlPuelfswZQfQrZng4iIiD6nUaNHwNVFOuTr3j375IIDbleuIi0tTRyqqaDMZVqTR0VF5Xm70NBQRHwcPja73g95UZzPWsN/HA4vr2e46nYVz/2fY+yY8bBvZ48pUyfna4ji4pQ5nIuBQe7DJH0NirLuQ25uwFyerQHpCAEPPvakf/vmbZEEIDJl1gVERETg9KkzuHnzFqysLKU9lGTqYIpKw4YNxADE+/cf8rXtq3yV0WVGXfikjF6tWjW8fBkAALh79x7atGktt1zyMeikpqYmd98qCnXqmIsBiKjIKAD5K5sZGhqgfHkzBAUFIz09HSHBIWLd37dw36H/Jg7B9JUZIjORl+wwGSdPnkKz5k0VxroDgJgY6ZiA+R2LryjEfByfEAASk/KXnw8fsn7IvpQxxkvIjL+urIuxXetW4nAwl10vy/3oXHC4iK7dumTb9S6/4uPjsWXzVvTp3Q/x8fHY+NdGTJs+FZUqVVJJ+kUpOjoGyR9bkBfldyvb7TRzKKbsyLa0zxzPVtXCPuM1bWgondi7V++eUFNTQ0ZGBk6eOIVePfvg6NFjSh+C8rtN5nBpX8K95ksRFBSE+fMWYOyY8fj++5rY8fc2/DTix0IVtPMqXmaixty6XJvIXe/8/oiIiL4FtWrVQouWLQBI50yQnZfugsMFtG5tB0NDw0Lto2QJmfJQPloVR3yccwoAEhIL3mO1OJ+1tLQ0sXrNSowcNUIcotLVxRX9+gzAju07v5gya04y5/5KSPg2nv+Ksu5D9tk6Lg/DGclODl5U5clMERERWPXHagwZNBRGRkbYtn0rJkz8n9ykyUUpt9EFciLbYz23MotsGT3pk+948A+DxbqVA/sPKpRVMxs8dujQHmXKlClwfvOihMx9MbPHTkI+ymbAp9dP1rF+C/cd+m9iAOIrY2NjjVofh0C5eOESYmNjkZqainNnz2PAwAFKt9H+OH535rh6xUlbK+uhVNk8ATlJk5l4WzYYUZxkgwelSin+uKupqWHkSOlcEBkZGdi//wAAwPuZNwICAtC9h+JEvQXh6+uLgf0H49C/h7Fu/VqMHDWiyIYxKgqyP5JhRfjdyvYyyJy4OzvaMuOMyv74q5LscX/4EFYk+5ClqyvB/AXz8Pfunahbry4AaY+ZlStWYdbMOUp7C+Rnm8xCZ1H1GPnaXLhwEf37DYSvjy/2H9yHDh07yA0RUNSMjLIqFN68zvl61/oM1zsRERF9fqNlJorOHEs8PDwcd+7eRTcVlEU0ZOaGKl0675OfynZqffniZYH2XdzPWoC0PDhx0gT8e/ggmjRtAkA6J9b2bTswfuwEuUrHL9LHLyI2NhYf8tly/UtUlHUfRjLBure5lCVl8wLkbRjZgrp75y769R0AV9fL2LlrB/r17ys3n+TnIDuEdql8Bj0M5cosOZcjZeuTPi2zNGpkgaXLf4e+gT48PTyxaOFihIeHIzU1DVeuuOHffw6hSdMmmLdgbr7yVxAamln1RJkjUsgGe9+8yb28rCUT0P30+vnq7zv0n8QAxFdo8BDphDRJSUk4e+YcLrtegZGRIZp+vPF8KvNBMD4+Hu7uHrmmHxUVJTdWoCrJDgckOz55TjJb6shGkTOj18UtKko62WqFihVQqpTyoY7ad2iHKh+HZnI4fwEfPoTBweECGjSoj6pVqxY6Dx8+hGHShMkICQnB0GE/oG7duoVO83MzMTEWgznv3r3H+/eKE7GrguwExs+eeee4rmxvndq1sx+XtjBMZa7pJ0+eFMk+lLGwaIj9B/bij1UrxPuDi7MLzpw5W6htMv++Hz1yz1MrH38//3x11f+a3LlzFwvnL0JyUjJmzJoBU1OTz54H2YnhvXO53mNjsq73WkV0vRMREdHnV79BfXES47t37sL7mTccLzmiVMmSOU74mleZw4sA0mFY8qpMmawW0zdv3MpTq13ZSrUv4VlLVvXq1bF5yyZs3b4FVapWAQC4u7tjz+69xZqv3JQpkxU0unr1Wq7rf+kVm0VZ91FTZvif16/fIDY25/kjMntjqKmpiY1IVc3f/zmmTv0V0VHRmPjzhBzn8ShKsr1DGlo0zNe28mX0ZzmuGxObNYegsjJLhw7tsXvP35BIJPB6+gyDBgxB185dceTwEcybPxd/bd6oMDdEUZC9Lzb4eF+UvX58vH1yHYYp9uPoAvoG+kpHOgG+3vsO/TcxAPEV6tS5o3QsPwDHjh7H8WPH0W9Av2zHRm/QIOtBcOuWbTne6NLS0jB3znykfJzAJ79kc6DsIbK2eW2xC9rFCxcR8HGS3+w4nL8gjltar35WxfqDhw8RGhpaoDyqiiAI8PeTPqx06qR8gitAOi7pTyN/AgCkpKTgwL4DcHJ0Ulnvh6NHjorjp9ZvUF9pPr90WlpacnMunD/nUCT7ad3GTnydeV1lJ7Mllrq6OuxatyqS/NSrl3VNO5y/UCT7AKSTsC1bulzh8/bt22HP3l3Q15eO+Xrn1p1CbZP5cBUfF499e/flmKcPH8KwYP5CSCRfT0+d/NixbYc4wXiDQvxdFqYLrex1e+vW7RwLjC9eZrU8bNOmdYH3SURERF+eUWNGia/37NkHB4eL6NK1i0p6C/h9LA+ZmZmJz4J5Ubp0KXGo2Pfv3+PkyVM5ru/k6ISLFy6J71X1rFUY06b8qvCZra0N9u7bDTMzMwDAbZlnZQBQkykxq2qolMx6gOzmPstpIm5LK0vx9f59+3Mcuig5ORnz5y1ESkpK1r7zeTzZzRWYrqJzUZR1H2XKlEGdj3MHCIKAK5cv57h+wMf5CBo0bCDXmFKV9u7Zi+Qk6VDGyv8OimS3CjKPVU9PD63s8ld2bt2mtfj6suuVHL+zFy9yLrMEBgbizzXrsHffbhw/eRTOro5wcnHEtu1b0alzx3zPJ1hQmffFhhYNUa5cOQDSsn9mPV5UVBQePHiY7fapqaliL4lWrVqKQy0BX859hyi/GIAohE9/yAvzo5mfByQtLS0MGNAfgHQYGW9vH3Tv3j3b9dvatxErCx8+eIj16zYo3V9KSgoWzJNWCMpWjOaH7LifYWGKQ8poa2ujQ8f24v5mTJ+B8PBwpWm5OLti7Zo/Mepjt+EaNWqgtnltANJzv3LFKvGhU5bspEd5GVuvoB48eIjw8AgYGxtj0OCBOa7bpUtncUKgQ4cOIy4+Hu07FG7Ct0y+Mi02lJ1z2SBPysd5FoqD7Hel7HLv2q2L+Hrf3v1KuyVmZGQgTOZ6iYvLudXJp3r07IGyZaXjPbq7e+TYKjyzBVCnzh1RpUoVJXkRZF4rXod50a1bV/H1ndt34OKsPCgi2yMkXskxy59b5fcSV9fLSEpS7JVgVt4MjRvbApA+6BRmm+7ds4Jqu3fvweXLV7I9nokTJqF7z+7FEoDIy/nKi5y2zenvMjU1Te76Tlbyd5l5L1X2Ny0rQ8jINi81atSA/cfJJpOSknDq5Ols07nmJr3eK1SsgG7du2a7Xna+gjgnERHRV0f2GSG7yuW8sLa2gkUjCwDSeel8vH1U0hgqPT0dLh8b9YwaPVJhbrvcnrn69Ostvl6/bgPu3b2ndD/37t7D8WMn0Kt3T/Gzwj5rqSJAcf/+A6XDFhkZGaGtfRtpXtLkn6/lyssqGoI1c+jdDx8+KC1by879kZoin5+2bdvAxMQEgHTYormz58kFGDKlpKRg9sw56NGjm9wx5PV4MofoCQwIVPp9yOZR2f7zqqjrPsaMHS2+PnzoSLblQH8/fwQHS4eBGjdujMJyub+NjIJfi35yfweK331gQID4Ojm54Oc1N25X3AAAw38cprQ3Uk5/by1aNBcDOyEhIbjyMS1lrn0so1s0skDjT3pwBQYGYuSI0bBvZy/X2+Bzi4uLw62btwEAY2W+e01NTYwalTUk3qF/DmWbxq2bt5CamqqwDfDl3HeI8osBiEJ498kwMaGh75SuJ9vqNLsbb0x0VleyTysBlenbry90JNKeBF26doGhYfaTbOnr6+N/E8aL7w8e+AejRo7BhQsX4ePjC3d3Dxw5fBQD+w/Go0fumD1nptz2shWe4eEROearQsWsrmE3rt8Ux7W/du26OP/BuPHjxEnBXr4MwIB+g7B71x54enjCx8cXl10v49dpv2HWzNmY9utUuQmCpk+fJj7YXrt2HTN/m4WQ4BBx+cMHD7F0yTLx/b2793H0yNEcf8RyEh4eLpd+ptTUVGzasAnq6uqYN39Ori0aNDU1MfzHYQCkDxtt2rTO8TsD5IMnOZ132TEWD+w7IPYMSUhIwPZtO+Du7i4u9/DwBAA8f/5c/CwmOlp8nV00XDZwESszNJEs2SFcUpQ83Mguj5bZZ6Y+fXuLE3bHxcVh/Nj/4dbNW+LfTGREJGbNmI13Mn9nf65dDxdnV4SE5K03jEQiwYo/lkNLSwuCIGDF8j+UPuC6OLvC18cXVapUxoyZM5SmFRmVNXFebn8X2an5fU307tNLfL9g/kIcOXxUfChPSUnB3zt3wdnJRVxn//6DuHTREd7ePuJnmZM/A8rPLQBER0WL4/5+Kujjw7Fs65OCbGNlbYU2baXv09PSMWP6TMybOx/Xr9+Av58/7t65iy2bt2Jg/8EoVaoUBn4yb020zH0wu2tR9sE5u27PsudDWQEnL+ersPftkjJzwmza8JcYyAkNDcWcWXPkjs/TwxOpqWkIDAwUP6v48V4aFBQsFsgCAgKxfOkKuf3EfTwHMTExSvM5e+5ssSXMju07xYKQrODgYJw8eQo6Eh2sXPWH3HwQAJAoOylhduciJus85uU3jIiIiHL37l3Wc29kZGShfmNHfuyRLQgCGjZsoLSBTXaePFY+VOjhQ0cQ9DYIrdu0lnumzZTb8//AgQPw/ceKwuSkZEyaOBm/L1mKW7duw9/PH7du3sLvS5Zizux5mDd/rlyAo7DPWuEylbW5DaWTnbS0NGzatFnpssw5CFq3tpP7vGKlrPKys5Mz4uPjIQgCTp86gwsOWT2iM8uCEZERuQZL6tWXtnwXBAEL5i9C5MfhXz58CMPGDZvg7OwMU1NTAMBTLy+5Z2GJRILfZkwX31+9eg2DBgzG8WMn4OXlhSdPnuL4sRMYPOgHlC1XFnYFPJ769esBkF4Hy5auEHtaBAUFYcnipXIBI3d3D4XhXPNaJ1HYuo/ctLJrhQEDpY1BfX39cOjfw0rX27x5CwDgx5+GK1SUAxC/IwAIjyhYWRKQ/zvYsW2H+N1GRkZh+dIVcqNGeHp4QhCEfM25IttjID5OeeNOh/MX4OX1DK1atRQbj8rKyMhAZKS07KysLkFNTQ3LVywT50hYt3a93DWa6elTL1x1uwZTU1MsXfa7wvKtW7YjOioay5etQLu2HdC7Z1/06d1P7t/ggUMwf94CubJ0QT15rHxY8K1btiE+Ph5DfhisMMzdgIH90apVSwDSvzVlDfZSU1OxY8ffAIDpv/2Kat9Vk1telPcdoqLEAEQBhYeH4+CBg3KfHT50WO6hJpOPzM1NtuI3U3p6Oh4+epS1jr/iOp8yNTVBp06dAAADB/XPdf1Bgwfih6FDxPeeHp6YP3cBfhg8FKNHjsGqlauhpq6GHTu3yc1l8O7dO5w4kdUd1sXFBf5+/tnup0SJErD62I0zIiIC3bv2QKcOXbBj207069cXAGBmVg7rN/wp/sBERUVh819bMHLEaPwweCh+mz4Tt2/dxpx5sxVa4jaybISFixaIXdAuX76C7t16okunrrBr2QaTJk7G5F8miesnJSXhxvWbSivE80IQBIwZPQ6nT50RH5Levn2LaVN+xYsXL7Fk6WK0/djCODfde3QTJ0Hu0SP7HisZGRl49PAR7t97IH52YP/BbCv+u/fsLnaffvkyAN279kTnjl3RtnU7xMbGYsnvi8V1d+/ag7Zt2uHo4WMApA+2586eF5ffvXNXoXCQnp4uN1+H25WreP3qtdw6H95/gJOTs/j+sutluQf51NRUXLhwUXzv7u6OZ17y4zvq6Ohg/fo/xbELQ0ND8fOkX9DGzh5dOnVFO/sO0NbRhn07e3EbDw8PvHr1CpKPw3rlRUOLhtiy9S+UKFECXl7PMGXyVLGXSGpqGs6dPY/Fi5agUaNG+Hv3ToVAkSAIuHnjJl4FvhI/O3jgYI7dlXPy24zpYiV+cnIyVq1cjTZ29ujWpQdaNG8FJydnuZYTgQGBeOz5WJzULD09Xe47DAgIxK1bt5UWVHb9vRt/rl0nthKLj4/Hn2vWwdfHFx06tFfaEi6/2yxavBBW1lYApOfq4oVLmDJ5KgYNHIIJ/5uEXX/vRqNGFlj752q5QmRKSgpOydxrPNw9FeYCEQQBN67fEN8/ePBA4TqKjo6WG8Lr5s1bcq3i8nq+Cnvf7tUrq4Wek5Mz2tjZo2P7zujfdyDa2LdBn75ZLf5+mTwV9m3awdcnqwVTu/btxNcTxk9El05dMW7MOAz4eL8XBAHOzi5i4TQhIQFnz5xTaB1pamqCXXt2wtzcXAzs3b1zVzxe90fumPi/n2FkZIgdO7fD/GMvM1ne3lk9hZ77v1BYnpiYJPcArmwdIiIiyjtBEPDkyVPcvJH1DJ6amoq9e/blaZ4tZZq3aI5q1aQVWd1zKIsos2fPXqz8YxXevpVWEicmJuHA/oPYsGEj2ndohz9WKg7bmZiYBEdHJ/H99Ws38OrVK7l1dHR0sGHTelSv/h0A6fPV6VNn8PPEyRg0cAh+nvQLbt64hfUb16Hyxzn1MhXmWSsmJgYH9meV5R89fIQ3r3OfVFgZh/MOWDBvIYKCggBIn2n37z8AtytusLKyxIiPgZ9M5ubmYqO9ly8D0KFdJ3Rs3wlXrrihY6eOSE5OxvFjJ8QK2OSkZBw4cDDH4NOIET+KDfzu3L6DDu06wq5lG3Tq0BlPHj/B6jWrxAYmQW+DMGrEaLnn5U6dO2LqtClimfLVq9dYsfwPDB/6E34aPgIrlv8BK0tLTP9NceiX3I4n0/j/jRPL8A7nHWDXqg1aNrdDj269EBcXh8VLFonrenp4YtyYcbhx/SaA/NdJFLTuI69mzPwNP/40HOrq6tiwfiN279ojPpOHhYVh0cLFuHXrNsb/bxwm//KzwvaJiYk4eeKk+N7d3R0PHzwsUK+cXr16ia8fPnyE9vYd0alDF3Tp1BUVK1XEhIkTxOXLl61A29bt8jTXR6Z27dqJPdaXLV2Bx56Pxd4bsbGx2L/vAJb+vgwDBw7A6rWrFIZ1S01Nxb69+8VGYXFxcXB1URy6qlLlSti1ZycqVqqI4OBgjB83AV5eXgCk9SPXrl7DtCnTUK1aVezZuwtmZuUU0mjUyELcf2RkJF6/fo1Xga/k/vn5+eOCw0X8NHwEbt64mefzoMzKlauwdcs2sdFtbGwsNm7YhCOHj2LwkEGY9utUhW3U1NSwcvUf6PpxJIT5cxfgxPGT4vl5+/Ytfp06HQEBAViwcD76D+indN+qvu8QfQ5qwtcwQPwXxNXlMhYvXpJt9BeQtiIYPWYUWre2w47tO+HqelmuUsjaxhqdO3dCr9494eTohH37DshVdmlqasLevi3+N2E8KlWulO1+nj9/jr179imN/mbnwYOHOHr4KDw8PREVFQU9XT3UrFkD7Tu0Q6/eveS6Zv25dh3+Ofiv0nT09PSwaPFC2LdTrHwPDg7GooVL8NjzMUqWLImOnTpgzNjRYrfLTOHh4Tiw/yBuXL+JkJAQCIKA8uXLo3ETWwwaPCjHCZQCAgJxYN8B3L17D+Hh4TA0NIS1tRVGjh6JmjVrSCcb6tYFnbt0KtBDRbcuPRASEgIzMzOsXrMSW7duFyt9dfX00LxZMwwd/oM4rFJejR/3P7x+/QbnHc5mO+Zq2zbtEB2l2EJITU0NpqamcHZ1VFh2/foN7Ny+Ey9fBkAikcCiUUMMHjxIrAhevnQFLly4CCNjI/Tu3QsjRv6EzX9twYH9BxUedNTV1dGwYUP8vXsHtmzeigP7DyrtJVClahWcPHUc27ftwI7tOxWWq6uro2u3LsjIEOB4yVFpi3YjIyPs3rsL1apVFT9LTEzC0SNH4ezkIhZSvqv+Hfr264MePbrjz7XrkJycjG7duiqd8yKv4uLicPTIMbi5SQMqmpqa0NPTRe3atdGpc0e0adtGYYzIv3fuwu5de5S2qldTU4ORkREO/rs/39eFIAhwcnTGmdNn4OPji8TERJiVN0OHDu3x408/4qrbVbi4uKBbt25o3qI5tLSkD+85fT/6+vpYvWYlGjdpjLCwMHRs31lheVp6Gr6rJj23vXr3lDvegmyTKSMjA+fOnoeDwwX4+/kjPiEeJiYmqFevHnr16qEwLujRI0exZvWfCpXnampqKFu2LBwunsPJEyexds06pUNCSSQSXLvhBofzDliyeKnCNa2mpgYrays0bNgg1/NVpkwZldy309PT8e8/h3Dq5CmEhr6Dqakpmjdvhh9HDEeFChUQFRWFGdNn4ulTL1SuXBmjxoxEe5mgQ0pKClYs/wPOTi7Q1tFGkyZNMHHS/1ChQoVcz8XMWb+hR88eCt/JBYeLuHTpEny8fZGSmgJjI2OUr1AerVvboXefXgrDYXl4eGLP7r1yQR91dXU0a94MPXv1QNu2bXDk8FEcOXJULiCnp6cH+3Zt8cuUX4p9QkgiIqKvzaqVa3D61Gmlz5vAx2dOYyOcOn0CxsbG+Up7yaLfccnREU7Ol8QK6+zIPuOvW78WDx8+grOzC5ISk6CtrY3a5rXQp09vpeO9jx0zHh7uHkqHjSpRogROnz0pDpMDSJ97jh45BsdLjggMfIX09HRUqlwJ9vZtMXjIILHhmqyCPmstWbwU586eUzp0jqGhIQ4f/Vccsz03TRs3l3uu1NXVRUZGBipWrIBu3bth8JDB4nO7LF9fXyxZvBQvnr9AuXLl0LNXDwwbPhR+vn4YNXKM0mdVDU0NtLazw6o1K5Xm5eWLl/jrry149PARUlNTUbVaVfTs1QN9+/aBhoYGJk74GVZWlmjfvl22dQw+Pr44eOAgHtx/iMjISBgaGqKhRUMMHDRAnMhcmeyOR3bcekAaCNi+bQeePHkKNTU11KhRHf0H9kfnzp2Qnp6OET+ORKcundCunb04CkJB6ySA/NV9FISvry+OHjmG+/cfIOLj0Mz6+nqwbWyL/gP6Ke1l1K/PALx69Urp9aelpYUmTRtj/YZ1+crHubPncfDgP3jz5g0MDQxh29gGw4YNxfe1vkdqaipmzZyD27dvo2yZshj8wyBxOO+8CgsLw6WLjrhz5w5evgxAXGwcDA0NoaenC2sba/Tp20duIulMZ8+cxR8rVim9l+nq6mLBwnno0FF+WOqUlBScOnkaLs4uePHiJQRBgIGBAap9Vw3t2tujS5fOCtfVp+fi+PETKFeuHN68fo2w8HDExcYhJSVFoYxYqVIlnD57MpuUlFu4YJEYvNu7fw9OnzqN69dvID0tHTo62mjQsAEGDhyARpaNck3r4YOHOHnyFNzdPRAdFQ1TU1MYGRuhWbOmGDhwAErLTBAvS9X3nZzOJ5EqMQBBpIRsAOL8hbMqSTM1NRXt2nbAwEEDMGHi/1SSJhERERERUV707dMfdeqY4/elS3JdVzYAsX3nNlh/bNhERPQlunjxEv7auBkH/tmndIjsjIwMJCYm4l3oOzg4XMDePfvg4uoE0xKmed6HbADinMOZfDc8JPov4xBMRJ/JlctXkJCQgN69exV3VoiIiIiI6D/k6VMvBAYEok/fPsWdFSIilXJxdsX8uQswesyobOfnVFdXh76+Pr6r/h1+njwJ1at/B22dwvWCIaK8YwCC6DNIT0/H7l17Yde6FczKmxV3doiIiIiI6D9kx/adqFW7Fho1sijurBARqUxSUhJW/rEKgiDAIo/3t7S0NFSuUlluKDgiKloMQBCpWGpqKpydXXD79h1xsrAN6zbi+fPnGDV6VDHnjoiIiIiIvlWCIOCq21Vcu3oNiYmJAIB//z2EmzduYvQYlkWI6NsS8DIAERERAIC7d+7mun56ejo2bfwLQ4cNLeqsEZEMzjZCpERcXBwAID4++8nGs7Puzw04cvgIAOlEZmXKlsGL5y/Qq3dPmJvXVmk+iYiIiIiIMv1z8F+s+3M9AEAikaBK1Srw9fFF48a2aNu2TZ7TySwPAUC8zGsioi9J+Qrloauri8TERPz55zq8efMG3bp3Q+3ataCmpiau9+7dO9y5fRenTp7GkKGDYWHRMN/7iovLqh+Kj8t/XRHRfxkDEEQyBEGA4yUnxMbGAgBiYmJwweECOnbqCA0NjTylERERLr6OjY1FbGwszM3NMf23X4skz0RERERERADElsCAdGgSXx9fVKhQHkuWLs5zGiEhobh69Zr4/uzZ87C0soShoaFK80pEVFjGxsZY/scyzJs7H/Fx8Th86AgOHzoCDU0NlDAtAQ0NDcTExCAhIQENGzbAgoXz8F317/K9nxcvXuDB/Qfi+5MnT2HyL5OhqytR5eEQfbPUBEEQijsTRF8Cf//nGPnTKCQkJCgs09LSQkOLhti+Y2uu6bx+9RoLFyyCj48vTEuYomPHDhgzdjT09PSKIttEREREREQAgMiISMybtwDu7u4w0NeHXWs7/G/C+GwnZv3U2NHj8PDhI4XP1dTUYGRkhJ27tqN69eqqzjYRUaFERUXh/DkHXL58BSHBIYiIiIC+vj7KlSsLCwsLtO/QDo0sGxUo7W5deiAkJEThc3V1dRgaGeLsudMwMDAo7CEQfdMYgCAiIiIiIiIiIiIiIpXjJNRERERERERERERERKRyDEAQEREREREREREREZHKMQBBREREREREREREREQqxwAEERERERERERERERGpHAMQRERERERERERERESkcgxAEBERERERERERERGRyjEAQUREREREREREREREKscABBERERERERERERERqRwDEEREREREREREREREpHIMQBARERERERERERERkcoxAEFERERERERERERERCrHAAQREREREREREREREakcAxBERERERERERERERKRyDEAQEREREREREREREZHKMQBBREREREREREREREQqxwAEERERERERERERERGpHAMQRERERERERERERESkcgxAEBERERERERERERGRyjEAQUREREREREREREREKscABBERERERERERERERqRwDEEREREREREREREREpHIMQBARERERERERERERkcoxAEFERERERERERERERCrHAAQREREREREREREREakcAxBERERERERERERERKRyDEAQEREREREREREREZHKMQBBREREREREREREREQqxwAEERERERERERERERGpHAMQRERERERERERERESkcgxAEBERERERERERERGRyjEAQUREREREREREREREKscABBERERERERERERERqRwDEEREREREREREREREpHIMQBARERERERERERERkcoxAEFERERERERERERERCrHAAQREREREREREREREakcAxBERERERERERERERKRyDEAQEREREREREREREZHKMQBBREREREREREREREQqxwAEERERERERERERERGpHAMQRERERERERERERESkcgxAEBERERERERERERGRyjEAQUREREREREREREREKscABBERERERERERERERqRwDEEREREREREREREREpHIMQBARERERERERERERkcoxAEFERERERERERERERCrHAAQREREREREREREREakcAxBERERERERERERERKRyDEAQEREREREREREREZHKMQBBREREREREREREREQqxwAEERERERERERERERGpHAMQRERERERERERERESkcv8HzmkH48hLQpYAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import craft_diss_pyramid as craft\n", "\n", @@ -56,7 +45,7 @@ }, { "cell_type": "markdown", - "id": "05fab354", + "id": "795a37fe", "metadata": {}, "source": [ "Each stage of the inverted pyramid is valuable, but it's important to recognise that:\n", @@ -162,18 +151,6 @@ "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.10.12" - }, "source_map": [ 14, 36, diff --git a/_sources/data-advanced.ipynb b/_sources/data-advanced.ipynb index 461cafd6..0e0e5fed 100644 --- a/_sources/data-advanced.ipynb +++ b/_sources/data-advanced.ipynb @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -33,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "51a55374", "metadata": { "tags": [ @@ -161,84 +161,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "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", - "
column1column2column3
01-1.3value_1
14-1.4value_2
20-2.9value_3
310-10.1value_2
49-20.4value_1
\n", - "
" - ], - "text/plain": [ - " column1 column2 column3\n", - "0 1 -1.3 value_1\n", - "1 4 -1.4 value_2\n", - "2 0 -2.9 value_3\n", - "3 10 -10.1 value_2\n", - "4 9 -20.4 value_1" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import pandera as pa\n", "\n", @@ -264,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -302,22 +227,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " column1 column2 column3\n", - "0 1 -1.3 value_1\n", - "1 4 -1.4 value_2\n", - "2 0 -2.9 value_3\n", - "3 10 -10.1 value_2\n", - "4 9 -20.4 value_1\n" - ] - } - ], + "outputs": [], "source": [ "validated_df = schema(df)\n", "print(validated_df)" @@ -384,84 +296,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "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", - "
column1column2column3
01-1.3value_1
14-1.4value_2
20-2.9value_3
310-10.1value_2
49-20.4value_1
\n", - "
" - ], - "text/plain": [ - " column1 column2 column3\n", - "0 1 -1.3 value_1\n", - "1 4 -1.4 value_2\n", - "2 0 -2.9 value_3\n", - "3 10 -10.1 value_2\n", - "4 9 -20.4 value_1" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from pandera.typing import Series\n", "\n", @@ -493,72 +330,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "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", - "
heightgroup
05.6A
16.4B
24.0A
37.1B
\n", - "
" - ], - "text/plain": [ - " height group\n", - "0 5.6 A\n", - "1 6.4 B\n", - "2 4.0 A\n", - "3 7.1 B" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = pd.DataFrame(\n", " {\n", @@ -591,84 +365,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "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", - "
column1column2column3
01-1.3-0.3
14-1.42.6
20-2.9-2.9
310-10.1-0.1
49-20.4-11.4
\n", - "
" - ], - "text/plain": [ - " column1 column2 column3\n", - "0 1 -1.3 -0.3\n", - "1 4 -1.4 2.6\n", - "2 0 -2.9 -2.9\n", - "3 10 -10.1 -0.1\n", - "4 9 -20.4 -11.4" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = pd.DataFrame(\n", " {\n", @@ -715,84 +414,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "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", - "
column1column2column3
01-1.3value_1
14-1.4value_2
20-2.9value_3
310-10.1value_2
49-20.4value_1
\n", - "
" - ], - "text/plain": [ - " column1 column2 column3\n", - "0 1 -1.3 value_1\n", - "1 4 -1.4 value_2\n", - "2 0 -2.9 value_3\n", - "3 10 -10.1 value_2\n", - "4 9 -20.4 value_1" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import great_expectations as ge\n", "\n", @@ -818,65 +442,18 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{\n", - " \"success\": true,\n", - " \"result\": {\n", - " \"observed_value\": \"int64\"\n", - " },\n", - " \"meta\": {},\n", - " \"exception_info\": {\n", - " \"raised_exception\": false,\n", - " \"exception_traceback\": null,\n", - " \"exception_message\": null\n", - " }\n", - "}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df.expect_column_values_to_be_of_type(\"column1\", \"int\")" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{\n", - " \"success\": false,\n", - " \"result\": {\n", - " \"observed_value\": 0.6,\n", - " \"element_count\": 5,\n", - " \"missing_count\": null,\n", - " \"missing_percent\": null\n", - " },\n", - " \"meta\": {},\n", - " \"exception_info\": {\n", - " \"raised_exception\": false,\n", - " \"exception_traceback\": null,\n", - " \"exception_message\": null\n", - " }\n", - "}" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df.expect_column_proportion_of_unique_values_to_be_between(\"column3\", 3, 5)" ] @@ -893,40 +470,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{\n", - " \"success\": true,\n", - " \"result\": {\n", - " \"element_count\": 5,\n", - " \"missing_count\": 0,\n", - " \"missing_percent\": 0.0,\n", - " \"unexpected_count\": 1,\n", - " \"unexpected_percent\": 20.0,\n", - " \"unexpected_percent_total\": 20.0,\n", - " \"unexpected_percent_nonmissing\": 20.0,\n", - " \"partial_unexpected_list\": [\n", - " -20.4\n", - " ]\n", - " },\n", - " \"meta\": {},\n", - " \"exception_info\": {\n", - " \"raised_exception\": false,\n", - " \"exception_traceback\": null,\n", - " \"exception_message\": null\n", - " }\n", - "}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df.expect_column_values_to_be_between(\n", " column=\"column2\",\n", @@ -960,7 +506,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -986,20 +532,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "User(id=123, signup_ts=datetime.datetime(2019, 6, 1, 12, 22), friends=[1, 2, 3], name='Katherine Johnson')" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "external_data = {\n", " \"id\": \"123\",\n", @@ -1064,7 +599,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1081,20 +616,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from cerberus import Validator\n", "\n", @@ -1113,20 +637,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'occupation': ['unknown field'], 'score': ['max value is 10']}" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "v.errors" ] diff --git a/_sources/data-read-and-write.ipynb b/_sources/data-read-and-write.ipynb index 7045d998..92147b57 100644 --- a/_sources/data-read-and-write.ipynb +++ b/_sources/data-read-and-write.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "78c8d40c", + "id": "b83196f7", "metadata": {}, "source": [ "(data-read-and-write)=\n", @@ -21,8 +21,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "0ca15e74", + "execution_count": null, + "id": "739ee2d9", "metadata": {}, "outputs": [], "source": [ @@ -40,7 +40,7 @@ }, { "cell_type": "markdown", - "id": "310e47a8", + "id": "b618fab4", "metadata": {}, "source": [ "## Reading in data from a file\n", @@ -109,100 +109,10 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "173a3758", + "execution_count": null, + "id": "90c3bc63", "metadata": {}, - "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", - "
windpressure
month
149.857143992.400000
438.863636998.121212
535.1741291003.875622
.........
1051.581085991.398440
1149.427412992.440938
1245.542453997.877358
\n", - "

10 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " wind pressure\n", - "month \n", - "1 49.857143 992.400000\n", - "4 38.863636 998.121212\n", - "5 35.174129 1003.875622\n", - "... ... ...\n", - "10 51.581085 991.398440\n", - "11 49.427412 992.440938\n", - "12 45.542453 997.877358\n", - "\n", - "[10 rows x 2 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = pd.read_csv('https://vincentarelbundock.github.io/Rdatasets/csv/dplyr/storms.csv')\n", "table = (df.groupby(['month'])\n", @@ -213,7 +123,7 @@ }, { "cell_type": "markdown", - "id": "9ca9c98a", + "id": "93917897", "metadata": {}, "source": [ "Our options for export of the `table` variable (which has datatype `pandas.core.frame.DataFrame`) are varied. For instance, we could use\n", @@ -264,18 +174,6 @@ "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.10.12" - }, "source_map": [ 14, 28, diff --git a/_sources/data-sharing.ipynb b/_sources/data-sharing.ipynb index 452a6dfe..f9c5a223 100644 --- a/_sources/data-sharing.ipynb +++ b/_sources/data-sharing.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "3919fd51", + "id": "7ae8e0a8", "metadata": {}, "source": [ "(data-sharing)=\n", diff --git a/_sources/econmt-regression.ipynb b/_sources/econmt-regression.ipynb index d472fec1..5f3be387 100644 --- a/_sources/econmt-regression.ipynb +++ b/_sources/econmt-regression.ipynb @@ -142,50 +142,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import scipy.stats as st\n", @@ -204,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "51a55374", "metadata": { "tags": [ @@ -238,121 +197,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "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", - "
nameheightmasshair_coloreye_colorgenderhomeworldspecies
0Luke Skywalker172.077.0blondbluemaleTatooineHuman
1C-3PO167.075.0NaNyellowNaNTatooineDroid
2R2-D296.032.0NaNredNaNNabooDroid
3Darth Vader202.0136.0noneyellowmaleTatooineHuman
4Leia Organa150.049.0brownbrownfemaleAlderaanHuman
\n", - "
" - ], - "text/plain": [ - " name height mass hair_color eye_color gender homeworld \\\n", - "0 Luke Skywalker 172.0 77.0 blond blue male Tatooine \n", - "1 C-3PO 167.0 75.0 NaN yellow NaN Tatooine \n", - "2 R2-D2 96.0 32.0 NaN red NaN Naboo \n", - "3 Darth Vader 202.0 136.0 none yellow male Tatooine \n", - "4 Leia Organa 150.0 49.0 brown brown female Alderaan \n", - "\n", - " species \n", - "0 Human \n", - "1 Droid \n", - "2 Droid \n", - "3 Human \n", - "4 Human " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = pd.read_csv(\n", " \"https://github.com/aeturrell/coding-for-economists/raw/main/data/starwars.csv\",\n", @@ -371,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -387,41 +234,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mass R-squared: 0.018\n", - "Model: OLS Adj. R-squared: 0.001\n", - "Method: Least Squares F-statistic: 1.040\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 0.312\n", - "Time: 20:40:08 Log-Likelihood: -385.50\n", - "No. Observations: 59 AIC: 775.0\n", - "Df Residuals: 57 BIC: 779.2\n", - "Df Model: 1 \n", - "Covariance Type: nonrobust \n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -13.8103 111.155 -0.124 0.902 -236.393 208.773\n", - "height 0.6386 0.626 1.020 0.312 -0.615 1.892\n", - "==============================================================================\n", - "Omnibus: 128.880 Durbin-Watson: 2.025\n", - "Prob(Omnibus): 0.000 Jarque-Bera (JB): 7330.447\n", - "Skew: 7.340 Prob(JB): 0.00\n", - "Kurtosis: 55.596 Cond. No. 895.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" - ] - } - ], + "outputs": [], "source": [ "print(results.summary())" ] @@ -435,45 +250,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
coef std err t P>|t| [0.025 0.975]
Intercept -13.8103 111.155 -0.124 0.902 -236.393 208.773
height 0.6386 0.626 1.020 0.312 -0.615 1.892
" - ], - "text/latex": [ - "\\begin{center}\n", - "\\begin{tabular}{lcccccc}\n", - "\\toprule\n", - " & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\\n", - "\\midrule\n", - "\\textbf{Intercept} & -13.8103 & 111.155 & -0.124 & 0.902 & -236.393 & 208.773 \\\\\n", - "\\textbf{height} & 0.6386 & 0.626 & 1.020 & 0.312 & -0.615 & 1.892 \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\end{center}" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "results.summary().tables[1]" ] @@ -489,1255 +268,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - " if pd.api.types.is_categorical_dtype(vector):\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - " if pd.api.types.is_categorical_dtype(vector):\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:08.350438\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "sns.scatterplot(data=df, x=\"height\", y=\"mass\", s=200, ax=ax, legend=False, alpha=0.8)\n", @@ -1766,41 +299,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mass R-squared: 0.580\n", - "Model: OLS Adj. R-squared: 0.572\n", - "Method: Least Squares F-statistic: 77.18\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 4.02e-12\n", - "Time: 20:40:08 Log-Likelihood: -252.48\n", - "No. Observations: 58 AIC: 509.0\n", - "Df Residuals: 56 BIC: 513.1\n", - "Df Model: 1 \n", - "Covariance Type: nonrobust \n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -32.5408 12.561 -2.591 0.012 -57.703 -7.379\n", - "height 0.6214 0.071 8.785 0.000 0.480 0.763\n", - "==============================================================================\n", - "Omnibus: 9.951 Durbin-Watson: 1.657\n", - "Prob(Omnibus): 0.007 Jarque-Bera (JB): 10.072\n", - "Skew: 0.793 Prob(JB): 0.00650\n", - "Kurtosis: 4.285 Cond. No. 888.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" - ] - } - ], + "outputs": [], "source": [ "results_outlier_free = smf.ols(\n", " \"mass ~ height\", data=df[~df[\"name\"].str.contains(\"Jabba\")]\n", @@ -1827,35 +328,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Robust linear Model Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mass No. Observations: 59\n", - "Model: RLM Df Residuals: 57\n", - "Method: IRLS Df Model: 1\n", - "Norm: TrimmedMean \n", - "Scale Est.: mad \n", - "Cov Type: H1 \n", - "Date: Thu, 07 Sep 2023 \n", - "Time: 20:40:08 \n", - "No. Iterations: 7 \n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -31.4968 2.180 -14.451 0.000 -35.769 -27.225\n", - "height 0.6273 0.012 51.102 0.000 0.603 0.651\n", - "==============================================================================\n", - "\n", - "If the model instance has been used for another fit with different fit parameters, then the fit options might not be the correct ones anymore .\n" - ] - } - ], + "outputs": [], "source": [ "results_robust = smf.rlm(\n", " \"mass ~ height\", data=df, M=sm.robust.norms.TrimmedMean(0.5)\n", @@ -1872,1125 +347,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:08.531319\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "ax.scatter(df[\"height\"], df[\"mass\"])\n", @@ -3016,45 +375,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
coef std err z P>|z| [0.025 0.975]
Intercept -13.8103 23.456 -0.589 0.556 -59.782 32.162
height 0.6386 0.088 7.263 0.000 0.466 0.811
" - ], - "text/latex": [ - "\\begin{center}\n", - "\\begin{tabular}{lcccccc}\n", - "\\toprule\n", - " & \\textbf{coef} & \\textbf{std err} & \\textbf{z} & \\textbf{P$> |$z$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\\n", - "\\midrule\n", - "\\textbf{Intercept} & -13.8103 & 23.456 & -0.589 & 0.556 & -59.782 & 32.162 \\\\\n", - "\\textbf{height} & 0.6386 & 0.088 & 7.263 & 0.000 & 0.466 & 0.811 \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\end{center}" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(smf.ols(\"mass ~ height\", data=df).fit(cov_type=\"HC2\").summary().tables[1])" ] @@ -3068,41 +391,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mass R-squared: 0.018\n", - "Model: OLS Adj. R-squared: 0.001\n", - "Method: Least Squares F-statistic: 52.75\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 1.16e-09\n", - "Time: 20:40:08 Log-Likelihood: -385.50\n", - "No. Observations: 59 AIC: 775.0\n", - "Df Residuals: 57 BIC: 779.2\n", - "Df Model: 1 \n", - "Covariance Type: HC2 \n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -13.8103 23.456 -0.589 0.558 -60.779 33.159\n", - "height 0.6386 0.088 7.263 0.000 0.463 0.815\n", - "==============================================================================\n", - "Omnibus: 128.880 Durbin-Watson: 2.025\n", - "Prob(Omnibus): 0.000 Jarque-Bera (JB): 7330.447\n", - "Skew: 7.340 Prob(JB): 0.00\n", - "Kurtosis: 55.596 Cond. No. 895.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors are heteroscedasticity robust (HC2)\n" - ] - } - ], + "outputs": [], "source": [ "print(results.get_robustcov_results(\"HC2\").summary())" ] @@ -3140,41 +431,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mass R-squared: 0.014\n", - "Model: OLS Adj. R-squared: -0.005\n", - "Method: Least Squares F-statistic: 39.44\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 2.63e-07\n", - "Time: 20:40:08 Log-Likelihood: -361.23\n", - "No. Observations: 55 AIC: 726.5\n", - "Df Residuals: 53 BIC: 730.5\n", - "Df Model: 1 \n", - "Covariance Type: cluster \n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -8.7955 29.150 -0.302 0.763 -65.929 48.338\n", - "height 0.6159 0.098 6.280 0.000 0.424 0.808\n", - "==============================================================================\n", - "Omnibus: 121.086 Durbin-Watson: 2.029\n", - "Prob(Omnibus): 0.000 Jarque-Bera (JB): 5943.317\n", - "Skew: 7.095 Prob(JB): 0.00\n", - "Kurtosis: 51.909 Cond. No. 958.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors are robust to cluster correlation (cluster)\n" - ] - } - ], + "outputs": [], "source": [ "xf = df.dropna(subset=[\"homeworld\", \"mass\", \"height\", \"species\"])\n", "results_clus = smf.ols(\"mass ~ height\", data=xf).fit(\n", @@ -3192,41 +451,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mass R-squared: 0.014\n", - "Model: OLS Adj. R-squared: -0.005\n", - "Method: Least Squares F-statistic: 35.10\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 1.96e-06\n", - "Time: 20:40:08 Log-Likelihood: -361.23\n", - "No. Observations: 55 AIC: 726.5\n", - "Df Residuals: 53 BIC: 730.5\n", - "Df Model: 1 \n", - "Covariance Type: cluster \n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -8.7955 30.636 -0.287 0.774 -68.841 51.250\n", - "height 0.6159 0.104 5.925 0.000 0.412 0.820\n", - "==============================================================================\n", - "Omnibus: 121.086 Durbin-Watson: 2.029\n", - "Prob(Omnibus): 0.000 Jarque-Bera (JB): 5943.317\n", - "Skew: 7.095 Prob(JB): 0.00\n", - "Kurtosis: 51.909 Cond. No. 958.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors are robust to cluster correlation (cluster)\n" - ] - } - ], + "outputs": [], "source": [ "xf = df.dropna(subset=[\"homeworld\", \"mass\", \"height\", \"species\"])\n", "two_way_clusters = np.array(xf[[\"homeworld\", \"species\"]], dtype=str)\n", @@ -3256,145 +483,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
modelmpgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.0110.03.902.62016.460144
1Mazda RX4 Wag21.06160.0110.03.902.87517.020144
2Datsun 71022.84108.093.03.852.32018.611141
3Hornet 4 Drive21.46258.0110.03.083.21519.441031
4Hornet Sportabout18.78360.0175.03.153.44017.020032
\n", - "
" - ], - "text/plain": [ - " model mpg cyl disp hp drat wt qsec vs am \\\n", - "0 Mazda RX4 21.0 6 160.0 110.0 3.90 2.620 16.46 0 1 \n", - "1 Mazda RX4 Wag 21.0 6 160.0 110.0 3.90 2.875 17.02 0 1 \n", - "2 Datsun 710 22.8 4 108.0 93.0 3.85 2.320 18.61 1 1 \n", - "3 Hornet 4 Drive 21.4 6 258.0 110.0 3.08 3.215 19.44 1 0 \n", - "4 Hornet Sportabout 18.7 8 360.0 175.0 3.15 3.440 17.02 0 0 \n", - "\n", - " gear carb \n", - "0 4 4 \n", - "1 4 4 \n", - "2 4 1 \n", - "3 3 1 \n", - "4 3 2 " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mpg = pd.read_csv(\n", " \"https://raw.githubusercontent.com/LOST-STATS/lost-stats.github.io/source/Data/mtcars.csv\",\n", @@ -3416,43 +507,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: mpg R-squared: 0.754\n", - "Model: OLS Adj. R-squared: 0.727\n", - "Method: Least Squares F-statistic: 28.59\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 1.14e-08\n", - "Time: 20:40:08 Log-Likelihood: -79.948\n", - "No. Observations: 32 AIC: 167.9\n", - "Df Residuals: 28 BIC: 173.8\n", - "Df Model: 3 \n", - "Covariance Type: nonrobust \n", - "===============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "-------------------------------------------------------------------------------\n", - "Intercept 28.6501 1.588 18.044 0.000 25.398 31.903\n", - "C(cyl)[T.6] -5.9677 1.639 -3.640 0.001 -9.326 -2.610\n", - "C(cyl)[T.8] -8.5209 2.326 -3.663 0.001 -13.286 -3.756\n", - "hp -0.0240 0.015 -1.560 0.130 -0.056 0.008\n", - "==============================================================================\n", - "Omnibus: 0.251 Durbin-Watson: 1.667\n", - "Prob(Omnibus): 0.882 Jarque-Bera (JB): 0.417\n", - "Skew: 0.163 Prob(JB): 0.812\n", - "Kurtosis: 2.545 Cond. No. 766.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" - ] - } - ], + "outputs": [], "source": [ "results_fe = smf.ols(\"mpg ~ hp + C(cyl)\", data=mpg).fit()\n", "print(results_fe.summary())" @@ -3467,21 +524,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['6', '4', '8']\n", - "Categories (3, object): ['4', '6', '8']" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mpg[\"cyl\"].unique()" ] @@ -3495,24 +540,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "C(cyl)[4] 28.6501 1.588 18.044 0.000 25.398 31.903\n", - "C(cyl)[6] 22.6825 2.228 10.180 0.000 18.119 27.246\n", - "C(cyl)[8] 20.1293 3.331 6.042 0.000 13.305 26.953\n", - "hp -0.0240 0.015 -1.560 0.130 -0.056 0.008\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "print(smf.ols(\"mpg ~ hp + C(cyl) -1\", data=mpg).fit().summary().tables[1])" ] @@ -3545,96 +575,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "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", - "
state_idfirm_idexog_0exog_1y
03383464-0.394555-0.296907-2.297673
101041130.540307-1.936750-7.134401
251050680.119799-0.0840092.083737
335156361-0.946084-0.206599-0.415670
41737235-1.602006-1.124126-4.181574
\n", - "
" - ], - "text/plain": [ - " state_id firm_id exog_0 exog_1 y\n", - "0 33 83464 -0.394555 -0.296907 -2.297673\n", - "1 0 104113 0.540307 -1.936750 -7.134401\n", - "2 5 105068 0.119799 -0.084009 2.083737\n", - "3 35 156361 -0.946084 -0.206599 -0.415670\n", - "4 17 37235 -1.602006 -1.124126 -4.181574" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from numpy.random import default_rng\n", "\n", @@ -3681,32 +624,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Absorbing LS Estimation Summary \n", - "==================================================================================\n", - "Dep. Variable: y R-squared: 0.9378\n", - "Estimator: Absorbing LS Adj. R-squared: 0.9224\n", - "No. Observations: 1000000 F-statistic: 9.822e+06\n", - "Date: Thu, Sep 07 2023 P-value (F-stat): 0.0000\n", - "Time: 20:40:11 Distribution: chi2(2)\n", - "Cov. Estimator: robust R-squared (No Effects): 0.9092\n", - " Varaibles Absorbed: 1.987e+05\n", - " Parameter Estimates \n", - "==============================================================================\n", - " Parameter Std. Err. T-stat P-value Lower CI Upper CI\n", - "------------------------------------------------------------------------------\n", - "exog_0 0.9989 0.0010 990.02 0.0000 0.9969 1.0009\n", - "exog_1 3.0002 0.0010 2973.0 0.0000 2.9983 3.0022\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "from linearmodels.iv.absorbing import AbsorbingLS\n", "\n", @@ -3743,22 +663,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 72.6405 6.004 12.098 0.000 60.378 84.903\n", - "lnhp -10.7642 1.224 -8.792 0.000 -13.265 -8.264\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "mpg[\"lnhp\"] = np.log(mpg[\"hp\"])\n", "print(smf.ols(\"mpg ~ lnhp\", data=mpg).fit().summary().tables[1])" @@ -3773,22 +680,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 72.6405 6.004 12.098 0.000 60.378 84.903\n", - "np.log(hp) -10.7642 1.224 -8.792 0.000 -13.265 -8.264\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "results_ln = smf.ols(\"mpg ~ np.log(hp)\", data=mpg).fit()\n", "print(results_ln.summary().tables[1])" @@ -3803,22 +697,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==================================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "----------------------------------------------------------------------------------\n", - "Intercept 80.1041 6.850 11.694 0.000 66.115 94.094\n", - "np.arcsinh(hp) -10.7646 1.224 -8.792 0.000 -13.265 -8.264\n", - "==================================================================================\n" - ] - } - ], + "outputs": [], "source": [ "print(smf.ols(\"mpg ~ np.arcsinh(hp)\", data=mpg).fit().summary().tables[1])" ] @@ -3850,23 +731,9 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "===================================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "-----------------------------------------------------------------------------------\n", - "Intercept 40.4091 2.741 14.744 0.000 34.804 46.015\n", - "hp -0.2133 0.035 -6.115 0.000 -0.285 -0.142\n", - "np.power(hp, 2) 0.0004 9.84e-05 4.275 0.000 0.000 0.001\n", - "===================================================================================\n" - ] - } - ], + "outputs": [], "source": [ "res_poly = smf.ols(\"mpg ~ hp + np.power(hp, 2)\", data=mpg).fit()\n", "print(res_poly.summary().tables[1])" @@ -3881,24 +748,9 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 39.6743 2.914 13.614 0.000 33.705 45.644\n", - "hp -0.0979 0.025 -3.956 0.000 -0.149 -0.047\n", - "disp -0.0734 0.014 -5.100 0.000 -0.103 -0.044\n", - "hp:disp 0.0003 8.69e-05 3.336 0.002 0.000 0.000\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "res_inter = smf.ols(\"mpg ~ hp * disp\", data=mpg).fit()\n", "print(res_inter.summary().tables[1])" @@ -3913,22 +765,9 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 25.8099 1.005 25.677 0.000 23.757 27.863\n", - "hp:disp -0.0001 1.91e-05 -7.409 0.000 -0.000 -0.000\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "print(smf.ols(\"mpg ~ hp : disp\", data=mpg).fit().summary().tables[1])" ] @@ -3957,42 +796,9 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Dependent variable: mpg
(1)(2)(3)
Intercept72.640***40.409***39.674***
(6.004)(2.741)(2.914)
disp-0.073***
(0.014)
hp-0.213***-0.098***
(0.035)(0.025)
hp:disp0.000***
(0.000)
np.log(hp)-10.764***
(1.224)
np.power(hp, 2)0.000***
(0.000)
Observations323232
R20.7200.7560.820
Adjusted R20.7110.7390.801
Residual Std. Error3.239 (df=30)3.077 (df=29)2.692 (df=28)
F Statistic77.301*** (df=1; 30)44.953*** (df=2; 29)42.475*** (df=3; 28)
Note:*p<0.1; **p<0.05; ***p<0.01
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from stargazer.stargazer import Stargazer\n", "\n", @@ -4009,47 +815,9 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\\begin{table}[!htbp] \\centering\n", - "\\begin{tabular}{@{\\extracolsep{5pt}}lccc}\n", - "\\\\[-1.8ex]\\hline\n", - "\\hline \\\\[-1.8ex]\n", - "& \\multicolumn{3}{c}{\\textit{Dependent variable: mpg}} \\\n", - "\\cr \\cline{2-4}\n", - "\\\\[-1.8ex] & (1) & (2) & (3) \\\\\n", - "\\hline \\\\[-1.8ex]\n", - " Intercept & 72.640$^{***}$ & 40.409$^{***}$ & 39.674$^{***}$ \\\\\n", - "& (6.004) & (2.741) & (2.914) \\\\\n", - " disp & & & -0.073$^{***}$ \\\\\n", - "& & & (0.014) \\\\\n", - " hp & & -0.213$^{***}$ & -0.098$^{***}$ \\\\\n", - "& & (0.035) & (0.025) \\\\\n", - " hp:disp & & & 0.000$^{***}$ \\\\\n", - "& & & (0.000) \\\\\n", - " np.log(hp) & -10.764$^{***}$ & & \\\\\n", - "& (1.224) & & \\\\\n", - " np.power(hp, 2) & & 0.000$^{***}$ & \\\\\n", - "& & (0.000) & \\\\\n", - "\\hline \\\\[-1.8ex]\n", - " Observations & 32 & 32 & 32 \\\\\n", - " $R^2$ & 0.720 & 0.756 & 0.820 \\\\\n", - " Adjusted $R^2$ & 0.711 & 0.739 & 0.801 \\\\\n", - " Residual Std. Error & 3.239 (df=30) & 3.077 (df=29) & 2.692 (df=28) \\\\\n", - " F Statistic & 77.301$^{***}$ (df=1; 30) & 44.953$^{***}$ (df=2; 29) & 42.475$^{***}$ (df=3; 28) \\\\\n", - "\\hline\n", - "\\hline \\\\[-1.8ex]\n", - "\\textit{Note:} & \\multicolumn{3}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\\\\n", - "\\end{tabular}\n", - "\\end{table}\n" - ] - } - ], + "outputs": [], "source": [ "print(stargazer_tab.render_latex())" ] @@ -4074,41 +842,9 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: y R-squared: 0.014\n", - "Model: OLS Adj. R-squared: -0.005\n", - "Method: Least Squares F-statistic: 0.7446\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 0.392\n", - "Time: 20:40:11 Log-Likelihood: -361.23\n", - "No. Observations: 55 AIC: 726.5\n", - "Df Residuals: 53 BIC: 730.5\n", - "Df Model: 1 \n", - "Covariance Type: nonrobust \n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "const -8.7955 127.191 -0.069 0.945 -263.909 246.318\n", - "x1 0.6159 0.714 0.863 0.392 -0.816 2.048\n", - "==============================================================================\n", - "Omnibus: 121.086 Durbin-Watson: 2.029\n", - "Prob(Omnibus): 0.000 Jarque-Bera (JB): 5943.317\n", - "Skew: 7.095 Prob(JB): 0.00\n", - "Kurtosis: 51.909 Cond. No. 958.\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" - ] - } - ], + "outputs": [], "source": [ "X = np.array(xf[\"height\"])\n", "y = np.array(xf[\"mass\"])\n", @@ -4138,24 +874,9 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[0.927388713624307, 'b'],\n", - " [-0.05975401040013389, 'a'],\n", - " [1.0437358922863453, 'a'],\n", - " [1.5056188793532617, 'b'],\n", - " [0.10762743224577262, 'a']], dtype=object)" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Set seed for random numbers\n", "seed_for_prng = 78557\n", @@ -4183,93 +904,9 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": {}, - "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", - "
ab
0FalseTrue
1TrueFalse
2TrueFalse
.........
197TrueFalse
198TrueFalse
199FalseTrue
\n", - "

200 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " a b\n", - "0 False True\n", - "1 True False\n", - "2 True False\n", - ".. ... ...\n", - "197 True False\n", - "198 True False\n", - "199 False True\n", - "\n", - "[200 rows x 2 columns]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pd.get_dummies(X[:, 1])" ] @@ -4283,24 +920,9 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 0.92738871, 0. , 1. ],\n", - " [-0.05975401, 1. , 0. ],\n", - " [ 1.04373589, 1. , 0. ],\n", - " [ 1.50561888, 0. , 1. ],\n", - " [ 0.10762743, 1. , 0. ]])" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "X = np.column_stack([X[:, 0], pd.get_dummies(X[:, 1])])\n", "X = np.array(X, dtype=float)\n", @@ -4316,42 +938,9 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: y R-squared: 0.998\n", - "Model: OLS Adj. R-squared: 0.998\n", - "Method: Least Squares F-statistic: 4.302e+04\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 6.90e-261\n", - "Time: 20:40:11 Log-Likelihood: 165.45\n", - "No. Observations: 200 AIC: -324.9\n", - "Df Residuals: 197 BIC: -315.0\n", - "Df Model: 2 \n", - "Covariance Type: nonrobust \n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "x1 1.9893 0.008 263.045 0.000 1.974 2.004\n", - "x2 1.9924 0.011 176.203 0.000 1.970 2.015\n", - "x3 3.8977 0.010 384.415 0.000 3.878 3.918\n", - "==============================================================================\n", - "Omnibus: 2.096 Durbin-Watson: 2.116\n", - "Prob(Omnibus): 0.351 Jarque-Bera (JB): 2.017\n", - "Skew: 0.245 Prob(JB): 0.365\n", - "Kurtosis: 2.955 Cond. No. 1.50\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" - ] - } - ], + "outputs": [], "source": [ "print(sm.OLS(y, X).fit().summary())" ] @@ -4396,145 +985,9 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
rownamesstateyearcpipopulationpacksincometaxpricetaxsrpricerincome
01AL19851.0763973000116.4862824601496832.500004102.18167133.34833594.96438110.763866
12AR19851.0762327000128.5345922621073637.000000101.47499837.00000094.30762210.468165
23AZ19851.0763184000104.5226144395693631.000000108.57875136.170418100.90962212.830456
34CA19851.07626444000100.36303744710281626.000000107.83734132.104000100.22058015.713321
45CO19851.0763209000112.9635394946667231.00000094.26666331.00000087.60842514.326190
\n", - "
" - ], - "text/plain": [ - " rownames state year cpi population packs income tax \\\n", - "0 1 AL 1985 1.076 3973000 116.486282 46014968 32.500004 \n", - "1 2 AR 1985 1.076 2327000 128.534592 26210736 37.000000 \n", - "2 3 AZ 1985 1.076 3184000 104.522614 43956936 31.000000 \n", - "3 4 CA 1985 1.076 26444000 100.363037 447102816 26.000000 \n", - "4 5 CO 1985 1.076 3209000 112.963539 49466672 31.000000 \n", - "\n", - " price taxs rprice rincome \n", - "0 102.181671 33.348335 94.964381 10.763866 \n", - "1 101.474998 37.000000 94.307622 10.468165 \n", - "2 108.578751 36.170418 100.909622 12.830456 \n", - "3 107.837341 32.104000 100.220580 15.713321 \n", - "4 94.266663 31.000000 87.608425 14.326190 " - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from linearmodels.iv import IV2SLS\n", "\n", @@ -4571,95 +1024,9 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " IV-2SLS Estimation Summary \n", - "==============================================================================\n", - "Dep. Variable: np.log(packs) R-squared: 0.9659\n", - "Estimator: IV-2SLS Adj. R-squared: 0.9279\n", - "No. Observations: 96 F-statistic: -1.296e+17\n", - "Date: Thu, Sep 07 2023 P-value (F-stat) 1.0000\n", - "Time: 20:40:11 Distribution: chi2(50)\n", - "Cov. Estimator: clustered \n", - " \n", - " Parameter Estimates \n", - "===================================================================================\n", - " Parameter Std. Err. T-stat P-value Lower CI Upper CI\n", - "-----------------------------------------------------------------------------------\n", - "Intercept 9.4924 0.0263 360.24 0.0000 9.4407 9.5440\n", - "np.log(rincome) 0.4434 \n", - "C(year)[T.1995] -0.0328 \n", - "C(state)[T.AR] 0.1770 0.0531 3.3338 0.0009 0.0729 0.2810\n", - "C(state)[T.AZ] -0.0899 0.0132 -6.8132 0.0000 -0.1158 -0.0640\n", - "C(state)[T.CA] -0.2781 0.0214 -12.996 0.0000 -0.3200 -0.2361\n", - "C(state)[T.CO] -0.2479 0.0090 -27.625 0.0000 -0.2655 -0.2303\n", - "C(state)[T.CT] -0.0171 0.0196 -0.8720 0.3832 -0.0556 0.0213\n", - "C(state)[T.DE] 0.1110 0.0291 3.8105 0.0001 0.0539 0.1682\n", - "C(state)[T.FL] 0.0762 0.0142 5.3596 0.0000 0.0483 0.1041\n", - "C(state)[T.GA] -0.0695 0.0251 -2.7706 0.0056 -0.1186 -0.0203\n", - "C(state)[T.IA] 0.0120 0.0739 0.1629 0.8706 -0.1328 0.1569\n", - "C(state)[T.ID] -0.1272 0.0077 -16.597 0.0000 -0.1423 -0.1122\n", - "C(state)[T.IL] -0.0339 0.0081 -4.1912 0.0000 -0.0497 -0.0180\n", - "C(state)[T.IN] 0.1198 0.0611 1.9609 0.0499 5.573e-05 0.2395\n", - "C(state)[T.KS] -0.0910 0.0305 -2.9884 0.0028 -0.1507 -0.0313\n", - "C(state)[T.KY] 0.3525 0.0631 5.5906 0.0000 0.2289 0.4761\n", - "C(state)[T.LA] 0.1315 0.0104 12.664 0.0000 0.1112 0.1519\n", - "C(state)[T.MA] -0.0403 0.0069 -5.8826 0.0000 -0.0538 -0.0269\n", - "C(state)[T.MD] -0.2322 0.0239 -9.7376 0.0000 -0.2790 -0.1855\n", - "C(state)[T.ME] 0.2008 0.0574 3.5011 0.0005 0.0884 0.3133\n", - "C(state)[T.MI] 0.1268 0.0745 1.7009 0.0890 -0.0193 0.2728\n", - "C(state)[T.MN] 0.0568 0.0490 1.1595 0.2463 -0.0392 0.1529\n", - "C(state)[T.MO] 0.0640 0.0476 1.3454 0.1785 -0.0292 0.1572\n", - "C(state)[T.MS] 0.1501 0.0272 5.5267 0.0000 0.0969 0.2034\n", - "C(state)[T.MT] -0.1522 0.0054 -28.250 0.0000 -0.1627 -0.1416\n", - "C(state)[T.NC] 0.0396 0.0191 2.0655 0.0389 0.0020 0.0771\n", - "C(state)[T.ND] -0.0311 0.0399 -0.7787 0.4361 -0.1092 0.0471\n", - "C(state)[T.NE] -0.0741 0.0375 -1.9765 0.0481 -0.1476 -0.0006\n", - "C(state)[T.NH] 0.3504 0.0315 11.114 0.0000 0.2886 0.4122\n", - "C(state)[T.NJ] -0.0873 6.107e-05 -1429.3 0.0000 -0.0874 -0.0872\n", - "C(state)[T.NM] -0.2858 0.0040 -71.049 0.0000 -0.2937 -0.2779\n", - "C(state)[T.NV] 0.1789 0.0259 6.9075 0.0000 0.1281 0.2296\n", - "C(state)[T.NY] -0.0719 0.0032 -22.256 0.0000 -0.0782 -0.0655\n", - "C(state)[T.OH] 0.0325 0.0402 0.8088 0.4186 -0.0463 0.1114\n", - "C(state)[T.OK] 0.0946 0.0538 1.7572 0.0789 -0.0109 0.2000\n", - "C(state)[T.OR] -0.0153 0.0673 -0.2269 0.8205 -0.1471 0.1166\n", - "C(state)[T.PA] -0.0031 0.0006 -4.8401 0.0000 -0.0044 -0.0019\n", - "C(state)[T.RI] 0.1394 0.0921 1.5136 0.1301 -0.0411 0.3200\n", - "C(state)[T.SC] -0.0212 0.0334 -0.6345 0.5257 -0.0866 0.0442\n", - "C(state)[T.SD] -0.0675 0.0711 -0.9488 0.3427 -0.2069 0.0719\n", - "C(state)[T.TN] 0.1473 0.0470 3.1340 0.0017 0.0552 0.2394\n", - "C(state)[T.TX] -0.0579 0.0136 -4.2560 0.0000 -0.0845 -0.0312\n", - "C(state)[T.UT] -0.4899 0.0276 -17.776 0.0000 -0.5440 -0.4359\n", - "C(state)[T.VA] -0.0559 0.0471 -1.1875 0.2350 -0.1482 0.0364\n", - "C(state)[T.VT] 0.2209 0.0467 4.7267 0.0000 0.1293 0.3125\n", - "C(state)[T.WA] 0.0064 0.0011 6.0151 0.0000 0.0043 0.0085\n", - "C(state)[T.WI] 0.0741 0.0590 1.2569 0.2088 -0.0415 0.1897\n", - "C(state)[T.WV] 0.1576 0.0582 2.7097 0.0067 0.0436 0.2716\n", - "C(state)[T.WY] -0.0169 0.0590 -0.2858 0.7750 -0.1325 0.0988\n", - "np.log(rprice) -1.2793 \n", - "===================================================================================\n", - "\n", - "Endogenous: np.log(rprice)\n", - "Instruments: taxs\n", - "Clustered Covariance (One-Way)\n", - "Debiased: False\n", - "Num Clusters: 2\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/linearmodels/iv/results.py:195: RuntimeWarning: invalid value encountered in sqrt\n", - " std_errors = sqrt(diag(self.cov))\n" - ] - } - ], + "outputs": [], "source": [ "results_iv2sls = IV2SLS.from_formula(\n", " \"np.log(packs) ~ 1 + np.log(rincome) + C(year) + C(state) + [np.log(rprice) ~ taxs]\",\n", @@ -4679,133 +1046,9 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " First Stage Estimation Results \n", - "=========================================\n", - " np.log(rprice)\n", - "-----------------------------------------\n", - "R-squared 0.9760\n", - "Partial R-squared 0.7070\n", - "Shea's R-squared 0.7070\n", - "Partial F-statistic 3.828e+16\n", - "P-value (Partial F-stat) 0.0000\n", - "Partial F-stat Distn chi2(1)\n", - "========================== =============\n", - "Intercept 4.4375\n", - " (410.34)\n", - "np.log(rincome) -0.0296\n", - " (-1.52e+06)\n", - "C(year)[T.1995] 0.0822\n", - " (3.725e+07)\n", - "C(state)[T.AR] -0.0190\n", - " (-3.5717)\n", - "C(state)[T.AZ] 0.0552\n", - " (20.534)\n", - "C(state)[T.CA] 0.0969\n", - " (5.3807)\n", - "C(state)[T.CO] -0.0044\n", - " (-0.1117)\n", - "C(state)[T.CT] 0.1269\n", - " (9.0641)\n", - "C(state)[T.DE] 0.0254\n", - " (7.9851)\n", - "C(state)[T.FL] 0.0598\n", - " (4.0067)\n", - "C(state)[T.GA] -0.0049\n", - " (-0.3455)\n", - "C(state)[T.IA] 0.0135\n", - " (0.5305)\n", - "C(state)[T.ID] 0.0297\n", - " (79.832)\n", - "C(state)[T.IL] 0.0476\n", - " (12.008)\n", - "C(state)[T.IN] -0.0460\n", - " (-76.127)\n", - "C(state)[T.KS] -0.0019\n", - " (-0.0855)\n", - "C(state)[T.KY] -0.0783\n", - " (-3.6663)\n", - "C(state)[T.LA] 0.0298\n", - " (2.6211)\n", - "C(state)[T.MA] 0.0816\n", - " (5.3671)\n", - "C(state)[T.MD] -0.0199\n", - " (-0.5429)\n", - "C(state)[T.ME] 0.0370\n", - " (1.8744)\n", - "C(state)[T.MI] 0.0363\n", - " (1.9899)\n", - "C(state)[T.MN] 0.0932\n", - " (8.6047)\n", - "C(state)[T.MO] -0.0056\n", - " (-12.033)\n", - "C(state)[T.MS] 0.0147\n", - " (2.1430)\n", - "C(state)[T.MT] -0.0183\n", - " (-9.6530)\n", - "C(state)[T.NC] -0.0672\n", - " (-1.8041)\n", - "C(state)[T.ND] 0.0130\n", - " (1.8765)\n", - "C(state)[T.NE] 0.0105\n", - " (2.4846)\n", - "C(state)[T.NH] -0.0175\n", - " (-0.6334)\n", - "C(state)[T.NJ] 0.0694\n", - " (5.2527)\n", - "C(state)[T.NM] 0.0301\n", - " (2.6464)\n", - "C(state)[T.NV] 0.1075\n", - " (16.434)\n", - "C(state)[T.NY] 0.0847\n", - " (5.1334)\n", - "C(state)[T.OH] -0.0197\n", - " (-22.592)\n", - "C(state)[T.OK] -0.0035\n", - " (-0.7109)\n", - "C(state)[T.OR] 0.0146\n", - " (0.2944)\n", - "C(state)[T.PA] 0.0152\n", - " (0.9986)\n", - "C(state)[T.RI] 0.0249\n", - " (0.5964)\n", - "C(state)[T.SC] -0.0530\n", - " (-2.1043)\n", - "C(state)[T.SD] -0.0190\n", - " (-1.4001)\n", - "C(state)[T.TN] 0.0051\n", - " (0.5517)\n", - "C(state)[T.TX] 0.0378\n", - " (4.0760)\n", - "C(state)[T.UT] 0.0577\n", - " (5.8788)\n", - "C(state)[T.VA] 0.0265\n", - " (0.5400)\n", - "C(state)[T.VT] 0.0228\n", - " (1.0969)\n", - "C(state)[T.WA] 0.1554\n", - " (13.780)\n", - "C(state)[T.WI] 0.0723\n", - " (5.1954)\n", - "C(state)[T.WV] 0.0205\n", - " (1.7212)\n", - "C(state)[T.WY] -0.0005\n", - " (-0.0220)\n", - "taxs 0.0051\n", - " (1.956e+08)\n", - "-----------------------------------------\n", - "\n", - "T-stats reported in parentheses\n", - "T-stats use same covariance type as original model\n" - ] - } - ], + "outputs": [], "source": [ "print(results_iv2sls.first_stage)" ] @@ -4819,25 +1062,9 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Wooldridge's regression test of exogeneity\n", - "H0: Endogenous variables are exogenous\n", - "Statistic: 17073105873634316.0000\n", - "P-value: 0.0000\n", - "Distributed: chi2(1)\n", - "WaldTestStatistic, id: 0x2a60d7c10" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "results_iv2sls.wooldridge_regression" ] @@ -4851,7 +1078,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -4869,144 +1096,9 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Model Comparison \n", - "========================================================\n", - " OLS 2SLS\n", - "--------------------------------------------------------\n", - "Dep. Variable np.log(packs) np.log(packs)\n", - "Estimator OLS IV-2SLS\n", - "No. Observations 96 96\n", - "Cov. Est. clustered clustered\n", - "R-squared 0.9675 0.9659\n", - "Adj. R-squared 0.9313 0.9279\n", - "F-statistic -6.708e+15 -1.296e+17\n", - "P-value (F-stat) 1.0000 1.0000\n", - "================== =============== ===============\n", - "Intercept 8.3597 9.4924\n", - " (484.80) (360.24)\n", - "np.log(rincome) 0.4974 0.4434\n", - " \n", - "C(year)[T.1995] -0.0885 -0.0328\n", - " \n", - "C(state)[T.AR] 0.1686 0.1770\n", - " (3.7460) (3.3338)\n", - "C(state)[T.AZ] -0.1280 -0.0899\n", - " (-49.908) (-6.8132)\n", - "C(state)[T.CA] -0.3320 -0.2781\n", - " (-9.0787) (-12.996)\n", - "C(state)[T.CO] -0.2591 -0.2479\n", - " (-345.21) (-27.625)\n", - "C(state)[T.CT] -0.1042 -0.0171\n", - " (-3.8346) (-0.8720)\n", - "C(state)[T.DE] 0.0900 0.1110\n", - " (3.3042) (3.8105)\n", - "C(state)[T.FL] 0.0325 0.0762\n", - " (1.9171) (5.3596)\n", - "C(state)[T.GA] -0.0691 -0.0695\n", - " (-2.4532) (-2.7706)\n", - "C(state)[T.IA] -0.0143 0.0120\n", - " (-0.2380) (0.1629)\n", - "C(state)[T.ID] -0.1422 -0.1272\n", - " (-8.4099) (-16.597)\n", - "C(state)[T.IL] -0.0766 -0.0339\n", - " (-10.214) (-4.1912)\n", - "C(state)[T.IN] 0.1231 0.1198\n", - " (2.0976) (1.9609)\n", - "C(state)[T.KS] -0.1073 -0.0910\n", - " (-4.8883) (-2.9884)\n", - "C(state)[T.KY] 0.3803 0.3525\n", - " (6.6476) (5.5906)\n", - "C(state)[T.LA] 0.1174 0.1315\n", - " (12.648) (12.664)\n", - "C(state)[T.MA] -0.1055 -0.0403\n", - " (-10.125) (-5.8826)\n", - "C(state)[T.MD] -0.2572 -0.2322\n", - " (-62.161) (-9.7376)\n", - "C(state)[T.ME] 0.1682 0.2008\n", - " (3.7655) (3.5011)\n", - "C(state)[T.MI] 0.0652 0.1268\n", - " (1.4699) (1.7009)\n", - "C(state)[T.MN] -0.0051 0.0568\n", - " (-0.1580) (1.1595)\n", - "C(state)[T.MO] 0.0600 0.0640\n", - " (1.2722) (1.3454)\n", - "C(state)[T.MS] 0.1472 0.1501\n", - " (6.1510) (5.5267)\n", - "C(state)[T.MT] -0.1469 -0.1522\n", - " (-26.043) (-28.250)\n", - "C(state)[T.NC] 0.0609 0.0396\n", - " (7.1838) (2.0655)\n", - "C(state)[T.ND] -0.0595 -0.0311\n", - " (-1.9467) (-0.7787)\n", - "C(state)[T.NE] -0.1002 -0.0741\n", - " (-3.4255) (-1.9765)\n", - "C(state)[T.NH] 0.3374 0.3504\n", - " (14.331) (11.114)\n", - "C(state)[T.NJ] -0.1458 -0.0873\n", - " (-11.223) (-1429.3)\n", - "C(state)[T.NM] -0.2981 -0.2858\n", - " (-28.465) (-71.049)\n", - "C(state)[T.NV] 0.1219 0.1789\n", - " (3.2128) (6.9075)\n", - "C(state)[T.NY] -0.1369 -0.0719\n", - " (-5.8164) (-22.256)\n", - "C(state)[T.OH] 0.0196 0.0325\n", - " (0.5379) (0.8088)\n", - "C(state)[T.OK] 0.0841 0.0946\n", - " (1.6659) (1.7572)\n", - "C(state)[T.OR] -0.0380 -0.0153\n", - " (-0.7768) (-0.2269)\n", - "C(state)[T.PA] -0.0333 -0.0031\n", - " (-16.905) (-4.8401)\n", - "C(state)[T.RI] 0.0900 0.1394\n", - " (1.3979) (1.5136)\n", - "C(state)[T.SC] -0.0037 -0.0212\n", - " (-0.1369) (-0.6345)\n", - "C(state)[T.SD] -0.0695 -0.0675\n", - " (-1.1052) (-0.9488)\n", - "C(state)[T.TN] 0.1373 0.1473\n", - " (3.2924) (3.1340)\n", - "C(state)[T.TX] -0.0964 -0.0579\n", - " (-3.8212) (-4.2560)\n", - "C(state)[T.UT] -0.5127 -0.4899\n", - " (-16.600) (-17.776)\n", - "C(state)[T.VA] -0.0628 -0.0559\n", - " (-1.7642) (-1.1875)\n", - "C(state)[T.VT] 0.2053 0.2209\n", - " (5.3662) (4.7267)\n", - "C(state)[T.WA] -0.0777 0.0064\n", - " (-6.5481) (6.0151)\n", - "C(state)[T.WI] 0.0260 0.0741\n", - " (0.5209) (1.2569)\n", - "C(state)[T.WV] 0.1490 0.1576\n", - " (2.4854) (2.7097)\n", - "C(state)[T.WY] -0.0150 -0.0169\n", - " (-0.2771) (-0.2858)\n", - "np.log(rprice) -1.0560 -1.2793\n", - " \n", - "==================== ================= =================\n", - "Instruments taxs\n", - "--------------------------------------------------------\n", - "\n", - "T-stats reported in parentheses\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/linearmodels/iv/results.py:195: RuntimeWarning: invalid value encountered in sqrt\n", - " std_errors = sqrt(diag(self.cov))\n" - ] - } - ], + "outputs": [], "source": [ "from collections import OrderedDict\n", "from linearmodels.iv.results import compare\n", @@ -5050,30 +1142,9 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "::\n", - "\n", - " Number of Observations - 32\n", - "\n", - " Number of Variables - 4\n", - "\n", - " Variable name definitions::\n", - "\n", - " Grade - binary variable indicating whether or not a student's grade\n", - " improved. 1 indicates an improvement.\n", - " TUCE - Test score on economics test\n", - " PSI - participation in program\n", - " GPA - Student's grade point average\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# Load the data from Spector and Mazzeo (1980)\n", "df = sm.datasets.spector.load_pandas().data\n", @@ -5083,36 +1154,9 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization terminated successfully.\n", - " Current function value: 0.402801\n", - " Iterations 7\n", - " Logit Regression Results \n", - "==============================================================================\n", - "Dep. Variable: GRADE No. Observations: 32\n", - "Model: Logit Df Residuals: 28\n", - "Method: MLE Df Model: 3\n", - "Date: Thu, 07 Sep 2023 Pseudo R-squ.: 0.3740\n", - "Time: 20:40:12 Log-Likelihood: -12.890\n", - "converged: True LL-Null: -20.592\n", - "Covariance Type: nonrobust LLR p-value: 0.001502\n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -13.0213 4.931 -2.641 0.008 -22.687 -3.356\n", - "GPA 2.8261 1.263 2.238 0.025 0.351 5.301\n", - "TUCE 0.0952 0.142 0.672 0.501 -0.182 0.373\n", - "PSI 2.3787 1.065 2.234 0.025 0.292 4.465\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "res_logit = smf.logit(\"GRADE ~ GPA + TUCE + PSI\", data=df).fit()\n", "print(res_logit.summary())" @@ -5127,85 +1171,9 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
Logit Marginal Effects
Dep. Variable: GRADE
Method: dydx
At: mean
\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
dy/dx std err z P>|z| [0.025 0.975]
GPA 0.5339 0.237 2.252 0.024 0.069 0.998
TUCE 0.0180 0.026 0.685 0.493 -0.033 0.069
PSI 0.4493 0.197 2.284 0.022 0.064 0.835
" - ], - "text/latex": [ - "\\begin{center}\n", - "\\begin{tabular}{lc}\n", - "\\toprule\n", - "\\textbf{Dep. Variable:} & GRADE \\\\\n", - "\\textbf{Method:} & dydx \\\\\n", - "\\textbf{At:} & mean \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\begin{tabular}{ccccccc}\n", - " \\textbf{} & \\textbf{dy/dx} & \\textbf{std err} & \\textbf{z} & \\textbf{P$> |$z$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\\n", - "\\midrule\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\begin{tabular}{lcccccc}\n", - "\\textbf{GPA} & 0.5339 & 0.237 & 2.252 & 0.024 & 0.069 & 0.998 \\\\\n", - "\\textbf{TUCE} & 0.0180 & 0.026 & 0.685 & 0.493 & -0.033 & 0.069 \\\\\n", - "\\textbf{PSI} & 0.4493 & 0.197 & 2.284 & 0.022 & 0.064 & 0.835 \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "%\\caption{Logit Marginal Effects}\n", - "\\end{center}" - ], - "text/plain": [ - "\n", - "\"\"\"\n", - " Logit Marginal Effects \n", - "=====================================\n", - "Dep. Variable: GRADE\n", - "Method: dydx\n", - "At: mean\n", - "==============================================================================\n", - " dy/dx std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "GPA 0.5339 0.237 2.252 0.024 0.069 0.998\n", - "TUCE 0.0180 0.026 0.685 0.493 -0.033 0.069\n", - "PSI 0.4493 0.197 2.284 0.022 0.064 0.835\n", - "==============================================================================\n", - "\"\"\"" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "marg_effect = res_logit.get_margeff(at=\"mean\", method=\"dydx\")\n", "marg_effect.summary()" @@ -5245,36 +1213,9 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization terminated successfully.\n", - " Current function value: 0.400588\n", - " Iterations 6\n", - " Probit Regression Results \n", - "==============================================================================\n", - "Dep. Variable: GRADE No. Observations: 32\n", - "Model: Probit Df Residuals: 28\n", - "Method: MLE Df Model: 3\n", - "Date: Thu, 07 Sep 2023 Pseudo R-squ.: 0.3775\n", - "Time: 20:40:12 Log-Likelihood: -12.819\n", - "converged: True LL-Null: -20.592\n", - "Covariance Type: nonrobust LLR p-value: 0.001405\n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -7.4523 2.542 -2.931 0.003 -12.435 -2.469\n", - "GPA 1.6258 0.694 2.343 0.019 0.266 2.986\n", - "TUCE 0.0517 0.084 0.617 0.537 -0.113 0.216\n", - "PSI 1.4263 0.595 2.397 0.017 0.260 2.593\n", - "==============================================================================\n" - ] - } - ], + "outputs": [], "source": [ "res_probit = smf.probit(\"GRADE ~ GPA + TUCE + PSI\", data=df).fit()\n", "print(res_probit.summary())" @@ -5282,85 +1223,9 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
Probit Marginal Effects
Dep. Variable: GRADE
Method: dydx
At: mean
\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
dy/dx std err z P>|z| [0.025 0.975]
GPA 0.5333 0.232 2.294 0.022 0.078 0.989
TUCE 0.0170 0.027 0.626 0.531 -0.036 0.070
PSI 0.4679 0.188 2.494 0.013 0.100 0.836
" - ], - "text/latex": [ - "\\begin{center}\n", - "\\begin{tabular}{lc}\n", - "\\toprule\n", - "\\textbf{Dep. Variable:} & GRADE \\\\\n", - "\\textbf{Method:} & dydx \\\\\n", - "\\textbf{At:} & mean \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\begin{tabular}{ccccccc}\n", - " \\textbf{} & \\textbf{dy/dx} & \\textbf{std err} & \\textbf{z} & \\textbf{P$> |$z$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\\n", - "\\midrule\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\begin{tabular}{lcccccc}\n", - "\\textbf{GPA} & 0.5333 & 0.232 & 2.294 & 0.022 & 0.078 & 0.989 \\\\\n", - "\\textbf{TUCE} & 0.0170 & 0.027 & 0.626 & 0.531 & -0.036 & 0.070 \\\\\n", - "\\textbf{PSI} & 0.4679 & 0.188 & 2.494 & 0.013 & 0.100 & 0.836 \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "%\\caption{Probit Marginal Effects}\n", - "\\end{center}" - ], - "text/plain": [ - "\n", - "\"\"\"\n", - " Probit Marginal Effects \n", - "=====================================\n", - "Dep. Variable: GRADE\n", - "Method: dydx\n", - "At: mean\n", - "==============================================================================\n", - " dy/dx std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "GPA 0.5333 0.232 2.294 0.022 0.078 0.989\n", - "TUCE 0.0170 0.027 0.626 0.531 -0.036 0.070\n", - "PSI 0.4679 0.188 2.494 0.013 0.100 0.836\n", - "==============================================================================\n", - "\"\"\"" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "p_marg_effect = res_probit.get_margeff(at=\"mean\", method=\"dydx\")\n", "p_marg_effect.summary()" @@ -5375,1013 +1240,9 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:12.230002\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import scipy.stats as st\n", "\n", @@ -6432,114 +1293,9 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "metadata": {}, - "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", - "
PigEvitCuLitterStartWeightFeedTime
04601Evit000Cu000126.526.50000NaN1
14601Evit000Cu000126.527.599995.2000052
24601Evit000Cu000126.536.5000017.6000003
34601Evit000Cu000126.540.2999928.5000004
44601Evit000Cu000126.549.0999845.2000015
\n", - "
" - ], - "text/plain": [ - " Pig Evit Cu Litter Start Weight Feed Time\n", - "0 4601 Evit000 Cu000 1 26.5 26.50000 NaN 1\n", - "1 4601 Evit000 Cu000 1 26.5 27.59999 5.200005 2\n", - "2 4601 Evit000 Cu000 1 26.5 36.50000 17.600000 3\n", - "3 4601 Evit000 Cu000 1 26.5 40.29999 28.500000 4\n", - "4 4601 Evit000 Cu000 1 26.5 49.09998 45.200001 5" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "data = sm.datasets.get_rdataset('dietox', 'geepack').data\n", "data.head()" @@ -6556,115 +1312,9 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
Model: MixedLM Dependent Variable: Weight
No. Observations: 861 Method: REML
No. Groups: 72 Scale: 6.0372
Min. group size: 11 Log-Likelihood: -2217.0475
Max. group size: 12 Converged: Yes
Mean group size: 12.0
\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept 15.739 0.550 28.603 0.000 14.660 16.817
Time 6.939 0.080 86.925 0.000 6.783 7.095
Group Var 19.503 1.561
Group x Time Cov 0.294 0.153
Time Var 0.416 0.033

\n" - ], - "text/latex": [ - "\\begin{table}\n", - "\\caption{Mixed Linear Model Regression Results}\n", - "\\label{}\n", - "\\begin{center}\n", - "\\begin{tabular}{llll}\n", - "\\hline\n", - "Model: & MixedLM & Dependent Variable: & Weight \\\\\n", - "No. Observations: & 861 & Method: & REML \\\\\n", - "No. Groups: & 72 & Scale: & 6.0372 \\\\\n", - "Min. group size: & 11 & Log-Likelihood: & -2217.0475 \\\\\n", - "Max. group size: & 12 & Converged: & Yes \\\\\n", - "Mean group size: & 12.0 & & \\\\\n", - "\\hline\n", - "\\end{tabular}\n", - "\\end{center}\n", - "\n", - "\\begin{center}\n", - "\\begin{tabular}{lrrrrrr}\n", - "\\hline\n", - " & Coef. & Std.Err. & z & P$> |$z$|$ & [0.025 & 0.975] \\\\\n", - "\\hline\n", - "Intercept & 15.739 & 0.550 & 28.603 & 0.000 & 14.660 & 16.817 \\\\\n", - "Time & 6.939 & 0.080 & 86.925 & 0.000 & 6.783 & 7.095 \\\\\n", - "Group Var & 19.503 & 1.561 & & & & \\\\\n", - "Group x Time Cov & 0.294 & 0.153 & & & & \\\\\n", - "Time Var & 0.416 & 0.033 & & & & \\\\\n", - "\\hline\n", - "\\end{tabular}\n", - "\\end{center}\n", - "\\end{table}\n", - "\\bigskip\n" - ], - "text/plain": [ - "\n", - "\"\"\"\n", - " Mixed Linear Model Regression Results\n", - "===========================================================\n", - "Model: MixedLM Dependent Variable: Weight \n", - "No. Observations: 861 Method: REML \n", - "No. Groups: 72 Scale: 6.0372 \n", - "Min. group size: 11 Log-Likelihood: -2217.0475\n", - "Max. group size: 12 Converged: Yes \n", - "Mean group size: 12.0 \n", - "-----------------------------------------------------------\n", - " Coef. Std.Err. z P>|z| [0.025 0.975]\n", - "-----------------------------------------------------------\n", - "Intercept 15.739 0.550 28.603 0.000 14.660 16.817\n", - "Time 6.939 0.080 86.925 0.000 6.783 7.095\n", - "Group Var 19.503 1.561 \n", - "Group x Time Cov 0.294 0.153 \n", - "Time Var 0.416 0.033 \n", - "===========================================================\n", - "\n", - "\"\"\"" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "md = smf.mixedlm(\"Weight ~ Time\", data, groups=data[\"Pig\"], re_formula=\"~Time\")\n", "mdf = md.fit(method=[\"lbfgs\"])\n", @@ -6682,90 +1332,9 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": {}, - "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", - "
GroupTimeposition_groupposition_time
460115.1096946.848209GroupTime
460216.1338757.364919GroupTime
460317.8466727.235199GroupTime
460519.7715677.374041GroupTime
464117.2651258.143678GroupTime
\n", - "
" - ], - "text/plain": [ - " Group Time position_group position_time\n", - "4601 15.109694 6.848209 Group Time\n", - "4602 16.133875 7.364919 Group Time\n", - "4603 17.846672 7.235199 Group Time\n", - "4605 19.771567 7.374041 Group Time\n", - "4641 17.265125 8.143678 Group Time" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "group_time_ests = pd.DataFrame.from_dict(mdf.random_effects).T\n", "group_time_ests[\"position_group\"] = \"Group\"\n", @@ -6784,2730 +1353,9 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - " if pd.api.types.is_categorical_dtype(vector):\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - " if pd.api.types.is_categorical_dtype(vector):\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - " if pd.api.types.is_categorical_dtype(vector):\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - " if pd.api.types.is_categorical_dtype(vector):\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/plot.py:1491: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n", - " with pd.option_context(\"mode.use_inf_as_na\", True):\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/plot.py:1491: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n", - " with pd.option_context(\"mode.use_inf_as_na\", True):\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:16.039721\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import seaborn.objects as so\n", "\n", @@ -9581,78 +1429,9 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": null, "metadata": {}, - "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", - "
incomefoodexp
0420.157651255.839425
1541.411707310.958667
2901.157457485.680014
3639.080229402.997356
4750.875606495.560775
\n", - "
" - ], - "text/plain": [ - " income foodexp\n", - "0 420.157651 255.839425\n", - "1 541.411707 310.958667\n", - "2 901.157457 485.680014\n", - "3 639.080229 402.997356\n", - "4 750.875606 495.560775" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = sm.datasets.engel.load_pandas().data\n", "df.head()" @@ -9667,7 +1446,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -9685,33 +1464,9 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " QuantReg Regression Results \n", - "==============================================================================\n", - "Dep. Variable: foodexp Pseudo R-squared: 0.6206\n", - "Model: QuantReg Bandwidth: 64.51\n", - "Method: Least Squares Sparsity: 209.3\n", - "Date: Thu, 07 Sep 2023 No. Observations: 235\n", - "Time: 20:40:16 Df Residuals: 233\n", - " Df Model: 1\n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 81.4823 14.634 5.568 0.000 52.649 110.315\n", - "income 0.5602 0.013 42.516 0.000 0.534 0.586\n", - "==============================================================================\n", - "\n", - "The condition number is large, 2.38e+03. This might indicate that there are\n", - "strong multicollinearity or other numerical problems.\n" - ] - } - ], + "outputs": [], "source": [ "print(q_results[4].summary())" ] @@ -9725,2056 +1480,9 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:16.224477\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "ols_res = smf.ols(\"foodexp ~ income\", df).fit()\n", "\n", @@ -11819,84 +1527,9 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": {}, - "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", - "
feature0feature1target
0-0.955945-0.345982-36.740556
1-1.2254360.8443637.190031
2-0.6920501.53637744.389018
30.0105001.78587057.019515
4-0.8954670.386902-16.088554
\n", - "
" - ], - "text/plain": [ - " feature0 feature1 target\n", - "0 -0.955945 -0.345982 -36.740556\n", - "1 -1.225436 0.844363 7.190031\n", - "2 -0.692050 1.536377 44.389018\n", - "3 0.010500 1.785870 57.019515\n", - "4 -0.895467 0.386902 -16.088554" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from statsmodels.regression.rolling import RollingOLS\n", "import statsmodels.api as sm\n", @@ -11917,7 +1550,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -11936,93 +1569,9 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": {}, - "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", - "
feature0feature1
20NaNNaN
21NaNNaN
22NaNNaN
.........
2720.53265534.919468
2820.47017135.365235
2920.00226135.666997
\n", - "

10 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " feature0 feature1\n", - "20 NaN NaN\n", - "21 NaN NaN\n", - "22 NaN NaN\n", - ".. ... ...\n", - "27 20.532655 34.919468\n", - "28 20.470171 35.365235\n", - "29 20.002261 35.666997\n", - "\n", - "[10 rows x 2 columns]" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "model.params[20:30]" ] @@ -12036,1728 +1585,9 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:16.465255\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = model.plot_recursive_coefficient(variables=[\"feature0\"])\n", "plt.xlabel(\"Time step\")\n", @@ -13774,39 +1604,9 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Statespace Model Results \n", - "==============================================================================\n", - "Dep. Variable: target No. Observations: 200\n", - "Model: RecursiveLS Log Likelihood -570.923\n", - "Date: Thu, 07 Sep 2023 R-squared: 0.988\n", - "Time: 20:40:16 AIC 1145.847\n", - "Sample: 0 BIC 1152.444\n", - " - 200 HQIC 1148.516\n", - "Covariance Type: nonrobust Scale 17.413\n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "feature0 20.6872 0.296 69.927 0.000 20.107 21.267\n", - "feature1 34.0655 0.302 112.870 0.000 33.474 34.657\n", - "===================================================================================\n", - "Ljung-Box (L1) (Q): 2.02 Jarque-Bera (JB): 3.93\n", - "Prob(Q): 0.16 Prob(JB): 0.14\n", - "Heteroskedasticity (H): 1.17 Skew: -0.31\n", - "Prob(H) (two-sided): 0.51 Kurtosis: 3.31\n", - "===================================================================================\n", - "\n", - "Warnings:\n", - "[1] Parameters and covariance matrix estimates are RLS estimates conditional on the entire sample.\n" - ] - } - ], + "outputs": [], "source": [ "reg_rls = sm.RecursiveLS.from_formula(\"target ~ feature0 + feature1 -1\", df)\n", "model_rls = reg_rls.fit()\n", @@ -13822,2418 +1622,9 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:16.629120\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = model_rls.plot_recursive_coefficient(\n", " range(reg_rls.k_exog), legend_loc=\"upper right\"\n", @@ -16257,53 +1648,9 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "::\n", - "\n", - " Number of observations: 51\n", - " Number of variables: 8\n", - " Variable name definitions:\n", - "\n", - " state\n", - " All 50 states plus DC.\n", - " violent\n", - " Rate of violent crimes / 100,000 population. Includes murder, forcible\n", - " rape, robbery, and aggravated assault. Numbers for Illinois and\n", - " Minnesota do not include forcible rapes. Footnote included with the\n", - " American Statistical Abstract table reads:\n", - " \"The data collection methodology for the offense of forcible\n", - " rape used by the Illinois and the Minnesota state Uniform Crime\n", - " Reporting (UCR) Programs (with the exception of Rockford, Illinois,\n", - " and Minneapolis and St. Paul, Minnesota) does not comply with\n", - " national UCR guidelines. Consequently, their state figures for\n", - " forcible rape and violent crime (of which forcible rape is a part)\n", - " are not published in this table.\"\n", - " murder\n", - " Rate of murders / 100,000 population.\n", - " hs_grad\n", - " Percent of population having graduated from high school or higher.\n", - " poverty\n", - " % of individuals below the poverty line\n", - " white\n", - " Percent of population that is one race - white only. From 2009 American\n", - " Community Survey\n", - " single\n", - " Calculated from 2009 1-year American Community Survey obtained obtained\n", - " from Census. Variable is Male householder, no wife present, family\n", - " household combined with Female householder, no husband present, family\n", - " household, divided by the total number of Family households.\n", - " urban\n", - " % of population in Urbanized Areas as of 2010 Census. Urbanized\n", - " Areas are area of 50,000 or more people.\n" - ] - } - ], + "outputs": [], "source": [ "crime_data = sm.datasets.statecrime.load_pandas()\n", "print(sm.datasets.statecrime.NOTE)" @@ -16318,1144 +1665,9 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:16.738600\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "st.probplot(crime_data.data[\"murder\"], dist=\"norm\", plot=plt);" ] @@ -17471,64 +1683,9 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "p = (\n", " ggplot(crime_data.data, aes(y=\"murder\", x=\"hs_grad\"))\n", @@ -17547,2860 +1704,9 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:16.892235\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "with plt.rc_context({\"font.size\": 5}):\n", " sm.graphics.plot_partregress(\n", @@ -20422,46 +1728,9 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " OLS Regression Results \n", - "==============================================================================\n", - "Dep. Variable: murder R-squared: 0.813\n", - "Model: OLS Adj. R-squared: 0.797\n", - "Method: Least Squares F-statistic: 50.08\n", - "Date: Thu, 07 Sep 2023 Prob (F-statistic): 3.42e-16\n", - "Time: 20:40:16 Log-Likelihood: -95.050\n", - "No. Observations: 51 AIC: 200.1\n", - "Df Residuals: 46 BIC: 209.8\n", - "Df Model: 4 \n", - "Covariance Type: nonrobust \n", - "==============================================================================\n", - " coef std err t P>|t| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept -44.1024 12.086 -3.649 0.001 -68.430 -19.774\n", - "hs_grad 0.3059 0.117 2.611 0.012 0.070 0.542\n", - "urban 0.0109 0.015 0.707 0.483 -0.020 0.042\n", - "poverty 0.4121 0.140 2.939 0.005 0.130 0.694\n", - "single 0.6374 0.070 9.065 0.000 0.496 0.779\n", - "==============================================================================\n", - "Omnibus: 1.618 Durbin-Watson: 2.507\n", - "Prob(Omnibus): 0.445 Jarque-Bera (JB): 0.831\n", - "Skew: -0.220 Prob(JB): 0.660\n", - "Kurtosis: 3.445 Cond. No. 5.80e+03\n", - "==============================================================================\n", - "\n", - "Notes:\n", - "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", - "[2] The condition number is large, 5.8e+03. This might indicate that there are\n", - "strong multicollinearity or other numerical problems.\n" - ] - } - ], + "outputs": [], "source": [ "results_crime = smf.ols(\n", " \"murder ~ hs_grad + urban + poverty + single\", data=crime_data.data\n", @@ -20485,2674 +1754,9 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/statsmodels/graphics/regressionplots.py:430: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " fig = abline_plot(0, fitted_line.params[0], color='k', ax=ax)\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:17.137259\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = plt.figure(figsize=(8, 6), dpi=150)\n", "\n", @@ -23169,2305 +1773,9 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:17.306109\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "with plt.rc_context({\"font.size\": 6}):\n", " sm.graphics.influence_plot(results_crime)" @@ -25482,64 +1790,9 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Put the results into a dataframe with Name, Coefficient, Error\n", "res_df = (\n", @@ -25570,7 +1823,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": null, "metadata": { "tags": [] }, @@ -25593,90 +1846,9 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": null, "metadata": {}, - "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", - "
agesalesonlineproducts
02.5070891383.89670702
10.0749632738.99420812
20.25929910876.93349606
31.62623412159.34432802
40.0265361584.62905603
\n", - "
" - ], - "text/plain": [ - " age sales online products\n", - "0 2.507089 1383.896707 0 2\n", - "1 0.074963 2738.994208 1 2\n", - "2 0.259299 10876.933496 0 6\n", - "3 1.626234 12159.344328 0 2\n", - "4 0.026536 1584.629056 0 3" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sales = dgp_marketplace(N=10_000)\n", "sales.head()" @@ -25700,53 +1872,9 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "(\n", " ggplot(sales, aes(x=\"age\", y=\"sales\")) +\n", @@ -25765,45 +1893,9 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
coef std err t P>|t| [0.025 0.975]
Intercept 7.3964 0.015 488.757 0.000 7.367 7.426
np.log(age) 0.1503 0.010 15.588 0.000 0.131 0.169
" - ], - "text/latex": [ - "\\begin{center}\n", - "\\begin{tabular}{lcccccc}\n", - "\\toprule\n", - " & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\\n", - "\\midrule\n", - "\\textbf{Intercept} & 7.3964 & 0.015 & 488.757 & 0.000 & 7.367 & 7.426 \\\\\n", - "\\textbf{np.log(age)} & 0.1503 & 0.010 & 15.588 & 0.000 & 0.131 & 0.169 \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\end{center}" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "smf.ols('np.log(sales) ~ np.log(age)', sales).fit().summary().tables[1]" ] @@ -25817,53 +1909,9 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
coef std err t P>|t| [0.025 0.975]
Intercept 6.5413 0.036 181.200 0.000 6.471 6.612
C(online)[T.1] 0.1798 0.026 6.888 0.000 0.129 0.231
np.log(age) 0.0642 0.010 6.456 0.000 0.045 0.084
products 0.3521 0.014 25.191 0.000 0.325 0.379
" - ], - "text/latex": [ - "\\begin{center}\n", - "\\begin{tabular}{lcccccc}\n", - "\\toprule\n", - " & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$> |$t$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\\n", - "\\midrule\n", - "\\textbf{Intercept} & 6.5413 & 0.036 & 181.200 & 0.000 & 6.471 & 6.612 \\\\\n", - "\\textbf{C(online)[T.1]} & 0.1798 & 0.026 & 6.888 & 0.000 & 0.129 & 0.231 \\\\\n", - "\\textbf{np.log(age)} & 0.0642 & 0.010 & 6.456 & 0.000 & 0.045 & 0.084 \\\\\n", - "\\textbf{products} & 0.3521 & 0.014 & 25.191 & 0.000 & 0.325 & 0.379 \\\\\n", - "\\bottomrule\n", - "\\end{tabular}\n", - "\\end{center}" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "smf.ols('np.log(sales) ~ np.log(age) + C(online) + products', sales).fit().summary().tables[1]" ] @@ -25885,7 +1933,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -25912,1378 +1960,9 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/binsreg/binsreg.py:782: UserWarning: To speed up computation, bin/degree selection uses a subsample of roughly max(5,000, 0.01n) observations if the sample size n>5,000. To use the full sample, set randcut=1.\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:18.022791\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
groupagebinisknotmidsalesci_lci_rci
0Full Sample0.0115940001478.9253851108.5540411609.694555501.140514
1Full Sample0.0360911001768.9178871620.0584242030.769312410.710888
2Full Sample0.0637762001929.0760081679.9642022105.934421425.970219
3Full Sample0.0930663001876.0623001683.1834122096.265756413.082344
4Full Sample0.1228064002006.2150091750.3747472296.841601546.466854
\n", - "
" - ], - "text/plain": [ - " group age bin isknot mid sales ci_l \\\n", - "0 Full Sample 0.011594 0 0 0 1478.925385 1108.554041 \n", - "1 Full Sample 0.036091 1 0 0 1768.917887 1620.058424 \n", - "2 Full Sample 0.063776 2 0 0 1929.076008 1679.964202 \n", - "3 Full Sample 0.093066 3 0 0 1876.062300 1683.183412 \n", - "4 Full Sample 0.122806 4 0 0 2006.215009 1750.374747 \n", - "\n", - " ci_r ci \n", - "0 1609.694555 501.140514 \n", - "1 2030.769312 410.710888 \n", - "2 2105.934421 425.970219 \n", - "3 2096.265756 413.082344 \n", - "4 2296.841601 546.466854 " - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Estimate binsreg\n", "br_est = binscatter(x='age', y='sales', data=sales, ci=(3,3))\n", @@ -27299,1432 +1978,9 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/plot.py:1491: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:18.112233\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "\n", @@ -28750,1195 +2006,9 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/binsreg/binsreg.py:782: UserWarning: To speed up computation, bin/degree selection uses a subsample of roughly max(5,000, 0.01n) observations if the sample size n>5,000. To use the full sample, set randcut=1.\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:18.487131\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
groupagebinisknotmidsalesci_lci_rci
0Full Sample0.0156890002078.5935471767.3758422198.167422430.791580
1Full Sample0.0503741002259.6845732162.7504742536.186849373.436375
2Full Sample0.0891332002423.7675172222.9002622583.428515360.528253
3Full Sample0.1293693002485.9732092212.8150332658.446275445.631243
4Full Sample0.1704334002545.0512562382.3623582786.886161404.523802
\n", - "
" - ], - "text/plain": [ - " group age bin isknot mid sales ci_l \\\n", - "0 Full Sample 0.015689 0 0 0 2078.593547 1767.375842 \n", - "1 Full Sample 0.050374 1 0 0 2259.684573 2162.750474 \n", - "2 Full Sample 0.089133 2 0 0 2423.767517 2222.900262 \n", - "3 Full Sample 0.129369 3 0 0 2485.973209 2212.815033 \n", - "4 Full Sample 0.170433 4 0 0 2545.051256 2382.362358 \n", - "\n", - " ci_r ci \n", - "0 2198.167422 430.791580 \n", - "1 2536.186849 373.436375 \n", - "2 2583.428515 360.528253 \n", - "3 2658.446275 445.631243 \n", - "4 2786.886161 404.523802 " - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Estimate binsreg\n", "br_est = binscatter(x='age', y='sales', w=['products'], data=sales, ci=(3,3))\n", @@ -29954,1416 +2024,9 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/plot.py:1491: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:18.571867\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots()\n", "\n", @@ -31387,3374 +2050,9 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/binsreg/binsreg.py:939: UserWarning: To speed up computation, bin/degree selection uses a subsample of roughly max(5,000, 0.01n) observations if the sample size n>5,000. To use the full sample, set randcut=1.\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/plotnine/utils.py:317: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/plotnine/utils.py:317: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:19.058487\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/rules.py:72: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead\n", - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/seaborn/_core/plot.py:1491: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:19.155089\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Estimate binsreg\n", "br_est = binscatter(x='age', y='sales', w=['products'], by=\"online\", data=sales, ci=(3,3))\n", @@ -34812,7 +2110,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -34821,37 +2119,9 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 32 entries, 0 to 31\n", - "Data columns (total 14 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 model 32 non-null object \n", - " 1 mpg 32 non-null float64 \n", - " 2 cyl 32 non-null category\n", - " 3 disp 32 non-null float64 \n", - " 4 hp 32 non-null float64 \n", - " 5 drat 32 non-null float64 \n", - " 6 wt 32 non-null float64 \n", - " 7 qsec 32 non-null float64 \n", - " 8 vs 32 non-null int64 \n", - " 9 am 32 non-null int64 \n", - " 10 gear 32 non-null int64 \n", - " 11 carb 32 non-null int64 \n", - " 12 lnhp 32 non-null float64 \n", - " 13 hp_boxcox 32 non-null float64 \n", - "dtypes: category(1), float64(8), int64(4), object(1)\n", - "memory usage: 3.5+ KB\n" - ] - } - ], + "outputs": [], "source": [ "mpg.info()" ] @@ -34865,3719 +2135,9 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fit complete\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/aet/mambaforge/envs/codeforecon/lib/python3.10/site-packages/specification_curve/__init__.py:350: FutureWarning: Returning a DataFrame from Series.apply when the supplied function returns a Series is deprecated and will be removed in a future version.\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " 2023-09-07T20:40:19.480464\n", - " image/svg+xml\n", - " \n", - " \n", - " Matplotlib v3.7.2, https://matplotlib.org/\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n" - ], - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import specification_curve as specy\n", "\n", diff --git a/_sources/vis-dashboards.ipynb b/_sources/vis-dashboards.ipynb index 3ecbfbb6..8db96d33 100644 --- a/_sources/vis-dashboards.ipynb +++ b/_sources/vis-dashboards.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "0fb97d4f", + "id": "8a27d851", "metadata": {}, "source": [ "(dashboards)=\n", diff --git a/_sources/wrkflow-command-line.ipynb b/_sources/wrkflow-command-line.ipynb index 444f33d5..4fb55b1f 100644 --- a/_sources/wrkflow-command-line.ipynb +++ b/_sources/wrkflow-command-line.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "df4de16e", + "id": "543aebdf", "metadata": {}, "source": [ "(wrkflow-command-line)=\n", diff --git a/_sources/wrkflow-environments.ipynb b/_sources/wrkflow-environments.ipynb index d106e8b8..9688f8a0 100644 --- a/_sources/wrkflow-environments.ipynb +++ b/_sources/wrkflow-environments.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "0fb319f3", + "id": "884e913b", "metadata": {}, "source": [ "(wrkflow-environments)=\n", @@ -87,186 +87,14 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "db5cce0b", + "execution_count": null, + "id": "de4de541", "metadata": { "tags": [ "hide-input" ] }, - "outputs": [ - { - "data": { - "text/html": [ - "
name: codeforecon\n",
-       "channels:\n",
-       "  - conda-forge\n",
-       "dependencies:\n",
-       "  - jupyter\n",
-       "  - numpy\n",
-       "  - pandas>=2.1.0\n",
-       "  - pip\n",
-       "  - python=3.10\n",
-       "  - matplotlib\n",
-       "  - pyyaml\n",
-       "  - scipy\n",
-       "  - seaborn\n",
-       "  - statsmodels\n",
-       "  - yaml\n",
-       "  - pyarrow\n",
-       "  - geopandas\n",
-       "  - geoplot\n",
-       "  - nltk\n",
-       "  - arrow\n",
-       "  - osmnx\n",
-       "  - pandas-datareader\n",
-       "  - pandasdmx\n",
-       "  - pdfminer.six\n",
-       "  - jupyter-book\n",
-       "  - pytest\n",
-       "  - rich\n",
-       "  - pyinstrument\n",
-       "  - loguru\n",
-       "  - pre-commit\n",
-       "  - pandera\n",
-       "  - linearmodels\n",
-       "  - sympy\n",
-       "  - pingouin\n",
-       "  - plotly\n",
-       "  - spacy\n",
-       "  - ydata-profiling\n",
-       "  - plotnine\n",
-       "  - altair\n",
-       "  - cerberus\n",
-       "  - great-expectations>=0.17.14\n",
-       "  - waterfallcharts\n",
-       "  - matplotlib-venn\n",
-       "  - pywaffle\n",
-       "  - joypy\n",
-       "  - jupyterlab\n",
-       "  - textstat\n",
-       "  - nbstripout\n",
-       "  - vega_datasets\n",
-       "  - ghp-import\n",
-       "  - colorcet\n",
-       "  - requests-cache\n",
-       "  - pip\n",
-       "  - arch-py\n",
-       "  - workalendar\n",
-       "  - wordcloud\n",
-       "  - bambi\n",
-       "  - pdftotext\n",
-       "  - bottleneck\n",
-       "  - openpyxl\n",
-       "  - python-slugify\n",
-       "  - pymc\n",
-       "  - python-dotenv\n",
-       "  - pip:\n",
-       "    - specification_curve\n",
-       "    - stargazer\n",
-       "    - matplotlib-scalebar\n",
-       "    - black-nb\n",
-       "    - pyhdfe\n",
-       "    - skimpy\n",
-       "    - graphviz\n",
-       "    - ruptures\n",
-       "    - sqlmodel\n",
-       "    - ibis-framework\n",
-       "    - binsreg\n",
-       "    - lets-plot\n",
-       "    - palmerpenguins\n",
-       "    - pyfixest\n",
-       "    - watermark\n",
-       "\n",
-       "
\n" - ], - "text/plain": [ - "name: codeforecon\n", - "channels:\n", - " - conda-forge\n", - "dependencies:\n", - " - jupyter\n", - " - numpy\n", - " - pandas>=\u001b[1;36m2.1\u001b[0m.\u001b[1;36m0\u001b[0m\n", - " - pip\n", - " - \u001b[33mpython\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.10\u001b[0m\n", - " - matplotlib\n", - " - pyyaml\n", - " - scipy\n", - " - seaborn\n", - " - statsmodels\n", - " - yaml\n", - " - pyarrow\n", - " - geopandas\n", - " - geoplot\n", - " - nltk\n", - " - arrow\n", - " - osmnx\n", - " - pandas-datareader\n", - " - pandasdmx\n", - " - pdfminer.six\n", - " - jupyter-book\n", - " - pytest\n", - " - rich\n", - " - pyinstrument\n", - " - loguru\n", - " - pre-commit\n", - " - pandera\n", - " - linearmodels\n", - " - sympy\n", - " - pingouin\n", - " - plotly\n", - " - spacy\n", - " - ydata-profiling\n", - " - plotnine\n", - " - altair\n", - " - cerberus\n", - " - great-expectations>=\u001b[1;36m0.17\u001b[0m.\u001b[1;36m14\u001b[0m\n", - " - waterfallcharts\n", - " - matplotlib-venn\n", - " - pywaffle\n", - " - joypy\n", - " - jupyterlab\n", - " - textstat\n", - " - nbstripout\n", - " - vega_datasets\n", - " - ghp-import\n", - " - colorcet\n", - " - requests-cache\n", - " - pip\n", - " - arch-py\n", - " - workalendar\n", - " - wordcloud\n", - " - bambi\n", - " - pdftotext\n", - " - bottleneck\n", - " - openpyxl\n", - " - python-slugify\n", - " - pymc\n", - " - python-dotenv\n", - " - pip:\n", - " - specification_curve\n", - " - stargazer\n", - " - matplotlib-scalebar\n", - " - black-nb\n", - " - pyhdfe\n", - " - skimpy\n", - " - graphviz\n", - " - ruptures\n", - " - sqlmodel\n", - " - ibis-framework\n", - " - binsreg\n", - " - lets-plot\n", - " - palmerpenguins\n", - " - pyfixest\n", - " - watermark\n", - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from rich import print\n", "\n", @@ -278,7 +106,7 @@ }, { "cell_type": "markdown", - "id": "429f9b23", + "id": "fd13900e", "metadata": {}, "source": [ "Of course, you can install packages as you go too, you don't have to specify them when you create the environment. With the relevant environment activated, use `conda install packagename` to do this.\n", @@ -363,18 +191,6 @@ "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.10.12" - }, "source_map": [ 14, 94, diff --git a/_sources/wrkflow-markdown.ipynb b/_sources/wrkflow-markdown.ipynb index 36ecd69b..ea3d3efa 100644 --- a/_sources/wrkflow-markdown.ipynb +++ b/_sources/wrkflow-markdown.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "c712c8cd", + "id": "5f1591a2", "metadata": {}, "source": [ "(wrkflow-markdown)=\n", diff --git a/_sources/wrkflow-version-control.ipynb b/_sources/wrkflow-version-control.ipynb index 2463491e..c6d10a9f 100644 --- a/_sources/wrkflow-version-control.ipynb +++ b/_sources/wrkflow-version-control.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b3701727", + "id": "07b5ebce", "metadata": {}, "source": [ "(wrkflow-version-control)=\n", @@ -136,18 +136,10 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "c96965c2", + "execution_count": null, + "id": "a2e280a9", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "aeturrell\n" - ] - } - ], + "outputs": [], "source": [ "%%bash\n", "git config --get user.name" @@ -155,7 +147,7 @@ }, { "cell_type": "markdown", - "id": "87afc3ca", + "id": "de54d660", "metadata": {}, "source": [ "You can check other settings with `git config --list`.\n", @@ -808,18 +800,6 @@ "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.10.12" - }, "source_map": [ 14, 143, diff --git a/_sources/zreferences.ipynb b/_sources/zreferences.ipynb index c03b6156..97572fc4 100644 --- a/_sources/zreferences.ipynb +++ b/_sources/zreferences.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "807410d2", + "id": "2ae9e72f", "metadata": {}, "source": [ "# Bibliography\n", diff --git a/auto-research-outputs.html b/auto-research-outputs.html index ccdd72d8..dd263010 100644 --- a/auto-research-outputs.html +++ b/auto-research-outputs.html @@ -222,7 +222,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-advanced.html b/code-advanced.html index f6663766..2c9409fe 100644 --- a/code-advanced.html +++ b/code-advanced.html @@ -222,7 +222,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-advcd-best-practice.html b/code-advcd-best-practice.html index 27a65d1a..08a3d908 100644 --- a/code-advcd-best-practice.html +++ b/code-advcd-best-practice.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-basics.html b/code-basics.html index c6a8ffe8..1854f2c2 100644 --- a/code-basics.html +++ b/code-basics.html @@ -222,7 +222,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-best-practice.html b/code-best-practice.html index 63f50b80..360cfd91 100644 --- a/code-best-practice.html +++ b/code-best-practice.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-further-advanced.html b/code-further-advanced.html index b1acb16c..625080ff 100644 --- a/code-further-advanced.html +++ b/code-further-advanced.html @@ -222,7 +222,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-preliminaries.html b/code-preliminaries.html index 17046773..78f41201 100644 --- a/code-preliminaries.html +++ b/code-preliminaries.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/code-where.html b/code-where.html index 5c272b99..c03c2fe2 100644 --- a/code-where.html +++ b/code-where.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/coming-from-excel.html b/coming-from-excel.html index e0f1f39d..f8d08477 100644 --- a/coming-from-excel.html +++ b/coming-from-excel.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/coming-from-matlab.html b/coming-from-matlab.html index 1584db21..b9b964e8 100644 --- a/coming-from-matlab.html +++ b/coming-from-matlab.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/coming-from-r.html b/coming-from-r.html index a6100c8d..a4baca25 100644 --- a/coming-from-r.html +++ b/coming-from-r.html @@ -222,7 +222,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/coming-from-stata.html b/coming-from-stata.html index 4a1ad0fb..23ce8bc3 100644 --- a/coming-from-stata.html +++ b/coming-from-stata.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    diff --git a/craft-referee.html b/craft-referee.html index 89b63d46..e9bd7260 100644 --- a/craft-referee.html +++ b/craft-referee.html @@ -220,7 +220,7 @@
  • Exploratory Data Analysis
  • Getting Data
  • Databases
  • -
  • Advanced Data
  • +
  • pandas alternatives, validation, and orchestration
  • Sharing Data
  • Coding

    @@ -558,6 +558,7 @@

    Contents

    Writing Referee Reports#

    In this chapter, you’ll learn tips and tricks for writing referee reports. Much of this chapter is advisory: some of it might work for you, some of it might not. It’s not intended to be a foolproof guide, or to cover everyone’s preferences–but it is designed to help you get started on writing good referee reports.

    +

    This chapter very much stands on the shoulders of giants. Those giants include The Turing Way’s Guidance on Peer Review, Nyhan [2015], Berk, Harvey, and Hirshleifer [2017], Nicholas and Gordon [2011], Econometrica’s guidelines for referees, Marc Bellemare’s 20 Rules for Refereeing, Tyler Cowan’s how to be a good referee, and Tatyana Deryugina’s how to be a constructive referee.

    What is the purpose of a referee report? We think there are two:

    1. to help the editor make a decision about whether to publish the paper in their journal

    2. @@ -595,7 +596,7 @@

      Reading the paperHand [2020] (see Writing Papers for more on the types of dark data)?

      +
    3. Does the author discuss issues that may affect the data, for example “dark data” Hand [2020] (see Writing Papers for more on the types of dark data)?

    4. The model, if there is one:

      diff --git a/craft-research-blogs.html b/craft-research-blogs.html index 856fbb6f..34898d8e 100644 --- a/craft-research-blogs.html +++ b/craft-research-blogs.html @@ -220,7 +220,7 @@
    5. Exploratory Data Analysis
    6. Getting Data
    7. Databases
    8. -
    9. Advanced Data
    10. +
    11. pandas alternatives, validation, and orchestration
    12. Sharing Data
    13. Coding

      diff --git a/data-analysis-quickstart.html b/data-analysis-quickstart.html index bd2bd72d..2e8e6d73 100644 --- a/data-analysis-quickstart.html +++ b/data-analysis-quickstart.html @@ -220,7 +220,7 @@
    14. Exploratory Data Analysis
    15. Getting Data
    16. Databases
    17. -
    18. Advanced Data
    19. +
    20. pandas alternatives, validation, and orchestration
    21. Sharing Data
    22. Coding

      diff --git a/data-boolean.html b/data-boolean.html index 28d7a5dc..f77f6b70 100644 --- a/data-boolean.html +++ b/data-boolean.html @@ -220,7 +220,7 @@
    23. Exploratory Data Analysis
    24. Getting Data
    25. Databases
    26. -
    27. Advanced Data
    28. +
    29. pandas alternatives, validation, and orchestration
    30. Sharing Data
    31. Coding

      diff --git a/data-databases.html b/data-databases.html index 73128a7a..8f208572 100644 --- a/data-databases.html +++ b/data-databases.html @@ -74,7 +74,7 @@ - + @@ -220,7 +220,7 @@
    32. Exploratory Data Analysis
    33. Getting Data
    34. Databases
    35. -
    36. Advanced Data
    37. +
    38. pandas alternatives, validation, and orchestration
    39. Sharing Data
    40. Coding

      @@ -1326,7 +1326,7 @@

      Where to Learn More About SQL

      next

      -

      Advanced Data

      +

      pandas alternatives, validation, and orchestration

      diff --git a/data-exploratory-analysis.html b/data-exploratory-analysis.html index 23d308e8..f3772f37 100644 --- a/data-exploratory-analysis.html +++ b/data-exploratory-analysis.html @@ -69,7 +69,7 @@ const thebe_selector_output = ".output, .cell_output" - + @@ -223,7 +223,7 @@
    41. Exploratory Data Analysis
    42. Getting Data
    43. Databases
    44. -
    45. Advanced Data
    46. +
    47. pandas alternatives, validation, and orchestration
    48. Sharing Data
    49. Coding

      @@ -2761,7 +2761,7 @@

      The pandas-profiling package -