{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sage test display notebook\n", "\n", "This is to test various displays in the **Jupyter Notebook** (classic) or **JupyterLab**: LaTeX, interactive widgets, 2d and 3d plots, animated 3d plots, Matplotlib interface, etc., especially in the scope of `%display latex`. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 10.7, Release Date: 2025-08-09'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sage.version.banner" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\sin\\left(x^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\sin\\left(x^{2}\\right)$" ], "text/plain": [ "sin(x^2)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sin(x^2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check that long outputs are wrapped (cf. this [comment in #36129](https://github.com/sagemath/sage/pull/36129#issuecomment-1711714578)):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle x^{20} + 20 \\, x^{19} + 190 \\, x^{18} + 1140 \\, x^{17} + 4845 \\, x^{16} + 15504 \\, x^{15} + 38760 \\, x^{14} + 77520 \\, x^{13} + 125970 \\, x^{12} + 167960 \\, x^{11} + 184756 \\, x^{10} + 167960 \\, x^{9} + 125970 \\, x^{8} + 77520 \\, x^{7} + 38760 \\, x^{6} + 15504 \\, x^{5} + 4845 \\, x^{4} + 1140 \\, x^{3} + 190 \\, x^{2} + 20 \\, x + 1\\)" ], "text/latex": [ "$\\displaystyle x^{20} + 20 \\, x^{19} + 190 \\, x^{18} + 1140 \\, x^{17} + 4845 \\, x^{16} + 15504 \\, x^{15} + 38760 \\, x^{14} + 77520 \\, x^{13} + 125970 \\, x^{12} + 167960 \\, x^{11} + 184756 \\, x^{10} + 167960 \\, x^{9} + 125970 \\, x^{8} + 77520 \\, x^{7} + 38760 \\, x^{6} + 15504 \\, x^{5} + 4845 \\, x^{4} + 1140 \\, x^{3} + 190 \\, x^{2} + 20 \\, x + 1$" ], "text/plain": [ "x^20 + 20*x^19 + 190*x^18 + 1140*x^17 + 4845*x^16 + 15504*x^15 + 38760*x^14 + 77520*x^13 + 125970*x^12 + 167960*x^11 + 184756*x^10 + 167960*x^9 + 125970*x^8 + 77520*x^7 + 38760*x^6 + 15504*x^5 + 4845*x^4 + 1140*x^3 + 190*x^2 + 20*x + 1" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "((1+x)^20).expand()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Miscellaneous outputs in the scope of `%display latex`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that [#32859](https://github.com/sagemath/sage/issues/32859) is fixed (output of `type()`)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|<class|\\verb| |\\verb|'sage.symbolic.expression.Expression'>|\\)" ], "text/latex": [ "$\\displaystyle \\verb||$" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that [#32208](https://github.com/sagemath/sage/issues/32208) is fixed" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|{1,|\\verb| |\\verb|2}|\\)" ], "text/latex": [ "$\\displaystyle \\verb|{1,|\\verb| |\\verb|2}|$" ], "text/plain": [ "{1, 2}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "set([1,2])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{l}\n", "\\verb| |\\verb|┌──────────────┐|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|1|\\verb| |\\verb|2|\\verb| |\\verb|3|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|4|\\verb| |\\verb|top|\\verb| |\\verb|5|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|6|\\verb| |\\verb|7|\\verb| |\\verb|8|\\verb| |\\verb|│|\\\\\n", "\\verb|┌────────────┼──────────────┼─────────────┬────────────┐|\\\\\n", "\\verb|│|\\verb| |\\verb|9|\\verb| |\\verb|10|\\verb| |\\verb|11|\\verb| |\\verb|│|\\verb| |\\verb|17|\\verb| |\\verb|18|\\verb| |\\verb|19|\\verb| |\\verb|│|\\verb| |\\verb|25|\\verb| |\\verb|26|\\verb| |\\verb|27|\\verb| |\\verb|│|\\verb| |\\verb|33|\\verb| |\\verb|34|\\verb| |\\verb|35|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|12|\\verb| |\\verb|left|\\verb| |\\verb|13|\\verb| |\\verb|│|\\verb| |\\verb|20|\\verb| |\\verb|front|\\verb| |\\verb|21|\\verb| |\\verb|│|\\verb| |\\verb|28|\\verb| |\\verb|right|\\verb| |\\verb|29|\\verb| |\\verb|│|\\verb| |\\verb|36|\\verb| |\\verb|rear|\\verb| |\\verb|37|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|14|\\verb| |\\verb|15|\\verb| |\\verb|16|\\verb| |\\verb|│|\\verb| |\\verb|22|\\verb| |\\verb|23|\\verb| |\\verb|24|\\verb| |\\verb|│|\\verb| |\\verb|30|\\verb| |\\verb|31|\\verb| |\\verb|32|\\verb| |\\verb|│|\\verb| |\\verb|38|\\verb| |\\verb|39|\\verb| |\\verb|40|\\verb| |\\verb|│|\\\\\n", "\\verb|└────────────┼──────────────┼─────────────┴────────────┘|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|41|\\verb| |\\verb|42|\\verb| |\\verb|43|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|44|\\verb| |\\verb|bottom|\\verb| |\\verb|45|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|46|\\verb| |\\verb|47|\\verb| |\\verb|48|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|└──────────────┘|\\\\\n", "\n", "\\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{l}\n", "\\verb| |\\verb|┌──────────────┐|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|1|\\verb| |\\verb|2|\\verb| |\\verb|3|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|4|\\verb| |\\verb|top|\\verb| |\\verb|5|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|6|\\verb| |\\verb|7|\\verb| |\\verb|8|\\verb| |\\verb|│|\\\\\n", "\\verb|┌────────────┼──────────────┼─────────────┬────────────┐|\\\\\n", "\\verb|│|\\verb| |\\verb|9|\\verb| |\\verb|10|\\verb| |\\verb|11|\\verb| |\\verb|│|\\verb| |\\verb|17|\\verb| |\\verb|18|\\verb| |\\verb|19|\\verb| |\\verb|│|\\verb| |\\verb|25|\\verb| |\\verb|26|\\verb| |\\verb|27|\\verb| |\\verb|│|\\verb| |\\verb|33|\\verb| |\\verb|34|\\verb| |\\verb|35|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|12|\\verb| |\\verb|left|\\verb| |\\verb|13|\\verb| |\\verb|│|\\verb| |\\verb|20|\\verb| |\\verb|front|\\verb| |\\verb|21|\\verb| |\\verb|│|\\verb| |\\verb|28|\\verb| |\\verb|right|\\verb| |\\verb|29|\\verb| |\\verb|│|\\verb| |\\verb|36|\\verb| |\\verb|rear|\\verb| |\\verb|37|\\verb| |\\verb|│|\\\\\n", "\\verb|│|\\verb| |\\verb|14|\\verb| |\\verb|15|\\verb| |\\verb|16|\\verb| |\\verb|│|\\verb| |\\verb|22|\\verb| |\\verb|23|\\verb| |\\verb|24|\\verb| |\\verb|│|\\verb| |\\verb|30|\\verb| |\\verb|31|\\verb| |\\verb|32|\\verb| |\\verb|│|\\verb| |\\verb|38|\\verb| |\\verb|39|\\verb| |\\verb|40|\\verb| |\\verb|│|\\\\\n", "\\verb|└────────────┼──────────────┼─────────────┴────────────┘|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|41|\\verb| |\\verb|42|\\verb| |\\verb|43|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|44|\\verb| |\\verb|bottom|\\verb| |\\verb|45|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|│|\\verb| |\\verb|46|\\verb| |\\verb|47|\\verb| |\\verb|48|\\verb| |\\verb|│|\\\\\n", "\\verb| |\\verb|└──────────────┘|\\\\\n", "\n", "\\end{array}$" ], "text/plain": [ " ┌──────────────┐\n", " │ 1 2 3 │\n", " │ 4 top 5 │\n", " │ 6 7 8 │\n", "┌────────────┼──────────────┼─────────────┬────────────┐\n", "│ 9 10 11 │ 17 18 19 │ 25 26 27 │ 33 34 35 │\n", "│ 12 left 13 │ 20 front 21 │ 28 right 29 │ 36 rear 37 │\n", "│ 14 15 16 │ 22 23 24 │ 30 31 32 │ 38 39 40 │\n", "└────────────┼──────────────┼─────────────┴────────────┘\n", " │ 41 42 43 │\n", " │ 44 bottom 45 │\n", " │ 46 47 48 │\n", " └──────────────┘\n" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "RubiksCube()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that [#33729](https://github.com/sagemath/sage/issues/33729) is fixed" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\ZZ}{\\Bold{Z}}\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\ZZ/6\\ZZ\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\ZZ}{\\Bold{Z}}\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\ZZ/6\\ZZ$" ], "text/plain": [ "Ring of integers modulo 6" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IntegerModRing(6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of IPython native LaTeX display via `_repr_latex_`\n", "\n", "IPython implements LaTeX display of all objects that are endowed with a method `_repr_latex_`, cf. IPyhton's [rich display documentation](https://ipython.readthedocs.io/en/stable/config/integrating.html)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "%display plain" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "sin(x^2)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = sin(x^2)\n", "s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the plain text mode, the only way to get the LaTeX display of some object is via the function `view`, which generates a pdf file:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "view(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us test the `_repr_latex_` mechanism of IPython via the method `_latex_` of Sage objects:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\\\sin\\\\left(x^{2}\\\\right)'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s._latex_()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "class NativeDisplay(SageObject):\n", "\n", " def __init__(self, data):\n", " self._data = data\n", "\n", " def _repr_latex_(self):\n", " try:\n", " return '$' + self._data._latex_() + '$'\n", " except (AttributeError, NotImplementedError): \n", " return None # if None is returned, plain text is used\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get a LaTeX display, even if we are the scope of `%display plain`:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "sin(x^2)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sin\\left(x^{2}\\right)$" ], "text/plain": [ "<__main__.NativeDisplay object at 0x7e816e0b1940>" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NativeDisplay(s)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<__main__.NativeDisplay object at 0x7e816e0b1910>" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NativeDisplay([s, s])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<__main__.NativeDisplay object at 0x7e816e7ad850>\n" ] } ], "source": [ "g = plot(s)\n", "print(NativeDisplay(g))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test of IPython native LaTeX display in the scope of `%display latex`\n", "**(this fails in Sage 9.6.rc2 and Sage 10.2.rc1)**:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\verb|<__main__.NativeDisplay|\\verb| |\\verb|object|\\verb| |\\verb|at|\\verb| |\\verb|0x7e816e0840e0>|\\)" ], "text/latex": [ "$\\displaystyle \\verb|<__main__.NativeDisplay|\\verb| |\\verb|object|\\verb| |\\verb|at|\\verb| |\\verb|0x7e816e0840e0>|$" ], "text/plain": [ "<__main__.NativeDisplay object at 0x7e816e0840e0>" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%display latex\n", "\n", "NativeDisplay(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of matplotlib.pyplot\n", "\n", "### Check that [#32882](https://github.com/sagemath/sage/issues/32882) is fixed:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGdCAYAAADuR1K7AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAASIhJREFUeJzt3XlcVXXi//HXZUcF3ABBcDdUEATMpLQyy9KyzTZpyqaZZuoLapqVWlNjM6VNZa6jU1lNY2gZWZZmWrlkaWaA+74igogmIMh27/n94S9nSFSuAecu7+fjcR+P7rnnwJvTkfvmfD73HIthGAYiIiIiLsLD7AAiIiIidUnlRkRERFyKyo2IiIi4FJUbERERcSkqNyIiIuJSVG5ERETEpajciIiIiEtRuRERERGX4mV2gIZms9k4cuQIAQEBWCwWs+OIiIhILRiGQXFxMeHh4Xh4XPjcjNuVmyNHjhAZGWl2DBEREbkE2dnZREREXHAdtys3AQEBwJmdExgYaHIaERERqY2ioiIiIyPPvo9fiNuVm1+GogIDA1VuREREnExtppRoQrGIiIi4FJUbERERcSkqNyIiIuJSVG5ERETEpajciIiIiEtRuRERERGXonIjIiIiLkXlRkRERFyKyo2IiIi4FIcpNxMnTsRisfD4449fcL1Vq1aRmJiIn58fHTp0YPbs2Q0TUERERJyCQ5SbH3/8kTfeeIPY2NgLrrd//34GDRpE3759yczMZPz48YwYMYL09PQGSioiIiKOzvRyc+rUKe6//37efPNNmjVrdsF1Z8+eTZs2bZgyZQpdu3blj3/8Iw8//DCvvvpqA6UVERERR2d6uUlJSeHmm2/m+uuvv+i6a9euZcCAAdWW3XjjjWzYsIHKysoatykvL6eoqKjaQ0REROpeRZWNFz7bxrvf7Tc1h6l3BZ8/fz4ZGRn8+OOPtVo/Ly+P0NDQastCQ0OpqqqioKCAsLCwc7aZOHEiEyZMqJO8IiIiUrNDx0tJnZfBpsOF+Hh6cFNMGK2C/EzJYtqZm+zsbEaOHMncuXPx86v9D//rW50bhlHj8l+MGzeOwsLCs4/s7OxLDy0iIiLn+GJzLjdP+5ZNhwsJ8vfmn/cnmFZswMQzNz/99BP5+fkkJiaeXWa1Wlm9ejUzZsygvLwcT0/Patu0atWKvLy8asvy8/Px8vKiRYsWNX4fX19ffH196/4HEBERcXNllVZeWrKd99YeBCChTVOmJyfQuqm/qblMKzf9+/dn8+bN1Zb9/ve/p0uXLjz99NPnFBuApKQkPvvss2rLli1bRs+ePfH29q7XvCIiIvJf+wtKSE3LYOuRM3NZ/3xNB8YMiMLb0/TpvOaVm4CAAGJiYqota9y4MS1atDi7fNy4ceTk5PDee+8B8OijjzJjxgxGjx7NI488wtq1a5kzZw7z5s1r8PwiIiLuatHGI4xL30RJhZXmjX147Z44+kWFmB3rLFMnFF9Mbm4uhw4dOvu8ffv2LFmyhFGjRjFz5kzCw8OZNm0aQ4YMMTGliIiIeyirtDLhs23MW3/mvblXu+ZMGxpv6vyamliMX2bkuomioiKCgoIoLCwkMDDQ7DgiIiJOYU/+KVLTMtiRV4zFAqn9OjGyf2e8GmgYyp73b4c+cyMiIiLm+zjjMM9+soXSCistm/jw+r096Ns52OxY56VyIyIiIjUqraji+U+3suCnwwAkdWjB1Pt6EBLoWMNQv6ZyIyIiIufYdbSYlPcz2J1/Cg8LjOx/GanXdcLTo+bryjkSlRsRERE5yzAMFmw4zHOLtlBWaSM4wJdp98WT1LHm68k5IpUbERERAaCkvIpnP9nCwswcAPp2bsnr9/agZRPnuhiuyo2IiIiwPbeIlPcz2FdQgocFnhgQxWPXdMTDCYahfk3lRkRExI0ZhkHa+kNM+GwbFVU2WgX6MW1oPL3aNzc72iVTuREREXFTxWWVjPt4M59vygWgX1Qwr93Tg+aNfUxO9tuo3IiIiLihLTmFpKRlcPB4KV4eFp68MYpH+nZwymGoX1O5ERERcSOGYfDe2oO8uHg7FVYbrZv6M21oPIltm5kdrc6o3IiIiLiJwtOVPP3RJpZuzQPg+q6hvHp3LE0bOfcw1K+p3IiIiLiBrOyTpKZlcPjn03h7Whg3sCu/v6odFovzD0P9msqNiIiICzMMgzlr9vPy0h1UWg0im/szY2gCcZFNzY5Wb1RuREREXNTJ0grGLNjEV9uPAjAwphWThsQS5O9tcrL6pXIjIiLign46+DPD0zI4UliGj6cHz97SlQd6t3XJYahfU7kRERFxITabwRvf7uOVL3ditRm0a9GIGckJxLQOMjtag1G5ERERcRHHT5XzxIKNrNx5DIDBceG8dEcMAX6uPQz1ayo3IiIiLmD9/hMMn5fB0aJyfL08eH5wNEN7RbrFMNSvqdyIiIg4MZvN4J8r9zB5+S5sBnQIbszM5AS6hgWaHc00KjciIiJO6lhxOaM/zOLb3QUA3Bnfmr/dHkNjX/d+e3fvn15ERMRJfb+ngJEfZHGsuBw/bw9euC2GuxMj3HIY6tdUbkRERJyI1WYw7evdTPtmN4YBnUOa8M/7E+gcGmB2NIehciMiIuIk8ovKGDk/i7X7jgNwT88IJtwag7+Pp8nJHIvKjYiIiBP4dvcxRn2QRcGpChr5ePLiHTHcER9hdiyHpHIjIiLiwKqsNqZ8tZuZK/dgGNClVQAzkhPoFNLE7GgOS+VGRETEQeUWnmbkvCzWHzgBQPIVbXjulm74eWsY6kJUbkRERBzQih35jP4wi59LK2ni68VLd3bn1rhws2M5BZUbERERB1JptfHqlzv51+p9AMS0DmTG0ATatWxscjLnoXIjIiLiIHJOnmZ4WgYZh04CMCypLeNv7oqvl4ah7KFyIyIi4gCWbzvKmAUbKTxdSYCfF/8YEsvA7mFmx3JKKjciIiImqqiyMemLHbz93X4A4iKCmJGcQGTzRiYnc14qNyIiIibJPlFKaloGGw8XAvCHPu15+qYu+Hh5mJzMuanciIiImGDpllye/GgTxWVVBPl78+rdcdzQLdTsWC5B5UZERKQBlVVambhkO/9eexCAhDZNmTY0nohmGoaqKyo3IiIiDeRAQQkpaRlsPVIEwJ+v6cCYAVF4e2oYqi6p3IiIiDSAzzYeYdzHmzlVXkWzRt5MvqcH/bqEmB3LJanciIiI1KOySisTPtvGvPWHAOjVrjlTh/YgLMjf5GSuS+VGRESknuw9doqU9zPYkVeMxQIp13bi8es746VhqHqlciMiIlIPFmYe5pmFWyitsNKyiQ+v39uDvp2DzY7lFlRuRERE6tDpCivPfbqFBT8dBiCpQwum3teDkEA/k5O5D5UbERGROrLraDEp72ewO/8UFguM7N+Z4dd1xtPDYnY0t6JyIyIi8hsZhsGCnw7z3KdbKKu0ERzgy9T7enBlx5ZmR3NLKjciIiK/QUl5FX/5ZAsfZ+YA0LdzSybf04PgAF+Tk7kvlRsREZFLtD23iJS0DPYdK8HDAk8MiOKxazrioWEoU6nciIiI2MkwDOatz2bCZ1spr7LRKtCPaUPj6dW+udnRBDD1g/azZs0iNjaWwMBAAgMDSUpK4osvvjjv+itXrsRisZzz2LFjRwOmFhERd1ZcVsmI+VmMX7iZ8iob10YFs2RkXxUbB2LqmZuIiAgmTZpEp06dAPj3v//NbbfdRmZmJtHR0efdbufOnQQGBp59Hhys6waIiEj925JTSGpaBgeOl+LpYeGpG6N4pG8HDUM5GFPLzeDBg6s9f/HFF5k1axbr1q27YLkJCQmhadOm9ZxORETkDMMw+M+6g/z98+1UWG20burPtKHxJLZtZnY0qYHDzLmxWq0sWLCAkpISkpKSLrhufHw8ZWVldOvWjWeffZZ+/fqdd93y8nLKy8vPPi8qKqqzzCIi4voKT1cyNn0TX2zJA+D6rqG8encsTRv5mJxMzsf0crN582aSkpIoKyujSZMmLFy4kG7dutW4blhYGG+88QaJiYmUl5fzn//8h/79+7Ny5UquvvrqGreZOHEiEyZMqM8fQUREXNTG7JOkzssg+8RpvD0tjB3YlYevaofFomEoR2YxDMMwM0BFRQWHDh3i5MmTpKen89Zbb7Fq1arzFpxfGzx4MBaLhUWLFtX4ek1nbiIjIyksLKw2b0dEROQXhmHw9ncHmPTFdiqtBhHN/JmZnEBcZFOzo7mtoqIigoKCavX+bfqZGx8fn7MTinv27MmPP/7I1KlT+de//lWr7Xv37s3cuXPP+7qvry++vrqQkoiI1M7J0grGLNjEV9uPAnBTdCteviuWIH9vk5NJbZlebn7NMIxqZ1ouJjMzk7CwsHpMJCIi7uKngz8zYl4mOSdP4+PpwbO3dOWB3m01DOVkTC0348ePZ+DAgURGRlJcXMz8+fNZuXIlS5cuBWDcuHHk5OTw3nvvATBlyhTatWtHdHQ0FRUVzJ07l/T0dNLT0838MURExMnZbAZvfruPV77cSZXNoG2LRsxMTiCmdZDZ0eQSmFpujh49ygMPPEBubi5BQUHExsaydOlSbrjhBgByc3M5dOjQ2fUrKioYM2YMOTk5+Pv7Ex0dzeLFixk0aJBZP4KIiDi5EyUVPPFhFit2HgPgltgwJt7ZnQA/DUM5K9MnFDc0eyYkiYiIa1u//wQj5mWSV1SGj5cHfx0czdBekRqGckBONaFYRESkodlsBrNW7WXy8l1YbQYdghszMzmBrmH6o9cVqNyIiIhbKThVzqgPsvh2dwEAd8S35u+3x9DYV2+JrkL/J0VExG18v7eAkfOzOFZcjp+3By/cFsPdiREahnIxKjciIuLyrDaD6d/sZtrXu7EZ0DmkCTPvT+Cy0ACzo0k9ULkRERGXll9UxuMfZPH93uMA3J0YwYTbomnko7dAV6X/syIi4rK+3X2MUR9kUXCqgkY+nvz99hjuTIgwO5bUM5UbERFxOVVWG1O+2s3MlXswDOjSKoAZyQl0CmlidjRpACo3IiLiUvIKyxgxL5P1B04AkHxFG567pRt+3p4mJ5OGonIjIiIuY8XOfJ74cCMnSipo4uvFS3d259a4cLNjSQNTuREREadXabXx6rKd/GvVPgCiwwOZkZxA+5aNTU4mZlC5ERERp5Zz8jTD0zLIOHQSgAeT2jJ+UFcNQ7kxlRsREXFay7cdZcyCjRSeriTAz4t/DIllYPcws2OJyVRuRETE6VRU2Xh56Q7mrNkPQFxEENOHJtCmRSOTk4kjULkRERGnkn2ilNR5mWzMPgnAw1e1Z+zALvh4eZgbTByGyo2IiDiNpVtyefKjTRSXVRHk782rd8dxQ7dQs2OJg1G5ERERh1deZeWlxdv599qDAMS3acr0ofFENNMwlJxL5UZERBzagYISUudlsCWnCIA/X9OBMQOi8PbUMJTUTOVGREQc1uebjjA2fTOnyqto1sibyff0oF+XELNjiYNTuREREYdTVmnlhc+3kfbDIQAub9eMaUPjCQvyNzmZOAOVGxERcSh7j50i5f0MduQVY7HA/13bkVHXX4aXhqGkllRuRETEYSzMPMwzC7dQWmGlRWMfXr+3B1dfFmx2LHEyKjciImK60xVWnl+0hQ83HAagd4fmTLsvnpBAP5OTiTNSuREREVPtPlpMSloGu46ewmKBEdd1ZkT/znh6WMyOJk5K5UZEREyzYEM2f/l0C2WVNoIDfJl6bw+u7NTS7Fji5FRuRESkwZWUV/GXT7fwcUYOAH07t2TyPT0IDvA1OZm4ApUbERFpUDvyikh5P4O9x0rwsMDoGy7j/67thIeGoaSOqNyIiEiDMAyD+T9m89dFWymvshEa6Mu0++K5okMLs6OJi1G5ERGReldcVsn4hVv4bOMRAK6NCua1u+No0UTDUFL3VG5ERKRebckpJDUtgwPHS/H0sPDkjVH8qW8HDUNJvVG5ERGRemEYBnPXHeRvn2+nwmojPMiP6cnxJLZtbnY0cXEqNyIiUueKyioZm76JJZvzALi+ayiv3h1L00Y+JicTd6ByIyIidWpj9klS52WQfeI03p4Wnr6pC3/o0x6LRcNQ0jBUbkREpE4YhsE73x1g4hfbqbQaRDTzZ0ZyAj0im5odTdyMyo2IiPxmJ0srePKjTSzfdhSAm6Jb8fJdsQT5e5ucTNyRyo2IiPwmGYd+ZnhaJjknT+Pj6cEzN3flwaS2GoYS06jciIjIJbHZDN5as49/LN1Jlc2gbYtGzExOIKZ1kNnRxM2p3IiIiN1OlFQwZsFGvtmRD8AtsWFMvLM7AX4ahhLzqdyIiIhdfjxwghHzMsktLMPHy4PnB3cjuVcbDUOJw1C5ERGRWrHZDGat2svk5buw2gw6tGzMjOQEuoUHmh1NpBqVGxERuaiCU+WM+iCLb3cXAHBHfGv+fnsMjX31NiKOR0eliIhc0Nq9xxk5P5P84nL8vD144dYY7u4ZoWEocVgqNyIiUiOrzWDGN3uY+vUubAZ0DmnCzPsTuCw0wOxoIhekciMiIufILy7j8flZfL/3OAB3J0Yw4bZoGvnobUMcn45SERGpZs3uAh7/IJOCUxU08vHk77fHcGdChNmxRGpN5UZERACostqY+vVuZqzYg2FAl1YBzEhOoFNIE7OjidjFw8xvPmvWLGJjYwkMDCQwMJCkpCS++OKLC26zatUqEhMT8fPzo0OHDsyePbuB0oqIuK68wjKS3/qB6d+cKTZDe7Xhk5SrVGzEKZl65iYiIoJJkybRqVMnAP79739z2223kZmZSXR09Dnr79+/n0GDBvHII48wd+5cvvvuO/7v//6P4OBghgwZ0tDxRURcwsqd+Yz+cCMnSipo7OPJxCGx3BoXbnYskUtmMQzDMDvE/2revDmvvPIKf/jDH8557emnn2bRokVs37797LJHH32UjRs3snbt2lp9/aKiIoKCgigsLCQwUBeeEhH3VWm18dqyXcxetReAbmGBzLw/gfYtG5ucTORc9rx/O8ycG6vVyoIFCygpKSEpKanGddauXcuAAQOqLbvxxhuZM2cOlZWVeHufe0+T8vJyysvLzz4vKiqq2+AiIk7oyMnTDJ+XyU8HfwbgwaS2jB/UFT9vT5OTifx2ppebzZs3k5SURFlZGU2aNGHhwoV069atxnXz8vIIDQ2ttiw0NJSqqioKCgoICws7Z5uJEycyYcKEeskuIuKMvtp2lDEfbeRkaSUBvl68fFcsg7qf+/tTxFmZOqEYICoqiqysLNatW8djjz3GsGHD2LZt23nX//UVMX8ZVTvflTLHjRtHYWHh2Ud2dnbdhRcRcSIVVTb+/vk2/vjeBk6WVhIbEcTiEX1VbMTlmH7mxsfH5+yE4p49e/Ljjz8ydepU/vWvf52zbqtWrcjLy6u2LD8/Hy8vL1q0aFHj1/f19cXX17fug4uIOJHsE6WkzstkY/ZJAB6+qj1jB3bBx8v0v3FF6pzp5ebXDMOoNkfmfyUlJfHZZ59VW7Zs2TJ69uxZ43wbERGBpVvyePKjjRSXVRHo58Wrd8cxILqV2bFE6o2p5Wb8+PEMHDiQyMhIiouLmT9/PitXrmTp0qXAmSGlnJwc3nvvPeDMJ6NmzJjB6NGjeeSRR1i7di1z5sxh3rx5Zv4YIiIOqbzKysQlO3j3+wMAxLdpyvSh8UQ0a2RuMJF6Zmq5OXr0KA888AC5ubkEBQURGxvL0qVLueGGGwDIzc3l0KFDZ9dv3749S5YsYdSoUcycOZPw8HCmTZuma9yIiPzKweMlpKZlsjmnEIA/X92BMTdG4e2pYShxfXZf5yY7OxuLxUJExJn7jKxfv560tDS6devGn/70p3oJWZd0nRsRcXWfbzrC2PTNnCqvolkjb167J47ruoRefEMRB2bP+7fdFT45OZkVK1YAZz6afcMNN7B+/XrGjx/PCy+8cGmJRUTkNyurtPLMws2kpmVyqryKy9s1Y8nIvio24nbsLjdbtmyhV69eAHz44YfExMTw/fffk5aWxrvvvlvX+UREpBb2HTvFHf/8nvd/ODOU/3/XdmTeI70JC/I3OZlIw7N7zk1lZeXZj1Z/9dVX3HrrrQB06dKF3Nzcuk0nIiIX9UlmDuMXbqa0wkqLxj5MvrcH11wWbHYsEdPYfeYmOjqa2bNn8+2337J8+XJuuukmAI4cOXLea82IiEjdO11h5emPNvH4B1mUVljp3aE5S0b2VbERt2f3mZuXX36ZO+64g1deeYVhw4YRFxcHwKJFi84OV4mISP3afbSYlLQMdh09hcUCI67rzIj+nfH0qPlq7SLuxK5yYxgG7du35+DBg1itVpo1a3b2tT/96U80aqRrJ4iI1LcFG7J57tOtnK60Ehzgy9R7e3Blp5ZmxxJxGHaXm86dO7N161Y6d+5c7bV27drVZS4REfmVkvIq/vLpFj7OyAGgT6eWvH5vD4IDdIsZkf9lV7nx8PCgc+fOHD9+/JxyIyIi9WdHXhEp72ew91gJHhYYfcNlPHZtJw1DidTA7gnF//jHP3jyySfZsmVLfeQREZH/YRgG89cf4rYZ37H3WAmhgb7Me6Q3qddpfo3I+dh9heJmzZpRWlpKVVUVPj4++PtXv4bCiRMn6jRgXdMVikXEWZwqr2L8x5tZtPEIANdcFszke+Jo0UTDUOJ+7Hn/tvvTUlOmTLnUXCIiUktbjxSSmpbJ/oISPD0sjBkQxZ+v7oCHztaIXJTd5WbYsGH1kUNERDgzDDX3h0P87fNtVFTZCA/yY3pyPIltm5sdTcRpXNJdwffu3cs777zD3r17mTp1KiEhISxdupTIyEiio6PrOqOIiFsoKqtkXPpmFm8+c7X367uG8MpdcTRr7GNyMhHnYveE4lWrVtG9e3d++OEHPv74Y06dOgXApk2beP755+s8oIiIO9h0+CS3TFvD4s25eHlYePbmrrz5YE8VG5FLYHe5GTt2LH//+99Zvnw5Pj7//UfXr18/1q5dW6fhRERcnWEYvL1mP0Nmfc+hE6VENPPno8eu5I99O2CxaH6NyKWwe1hq8+bNpKWlnbM8ODiY48eP10koERF3UFhayZMfbWTZtqMA3Bgdyj/uiiPI39vkZCLOze5y07RpU3Jzc2nfvn215ZmZmbRu3brOgomIuLLMQz+TmpZJzsnT+Hh68MzNXXkwqa3O1ojUAbuHpZKTk3n66afJy8vDYrFgs9n47rvvGDNmDA8++GB9ZBQRcRk2m8Gbq/dx9+y15Jw8TdsWjUh/7EqGXdlOxUakjth9Eb/Kykoeeugh5s+fj2EYeHl5YbVaSU5O5t1338XT07O+stYJXcRPRMzyc0kFTyzYyDc78gG4OTaMiXd2J9BPw1AiF2PP+7fd5eYXe/fuJTMzE5vNRnx8vNPca0rlRkTMsOHACYbPyyS3sAwfLw+eu6Ub91/RRmdrRGqpXq9Q/IuOHTvSoUMHAP3jFBE5D5vNYPbqvby2bBdWm0GHlo2ZkZxAt3D9cSVSX+yecwMwZ84cYmJi8PPzw8/Pj5iYGN566626ziYi4tQKTpXz0Ls/8o+lO7HaDG7vEc6i4X1UbETqmd1nbv7yl7/w+uuvM3z4cJKSkgBYu3Yto0aN4sCBA/z973+v85AiIs5m3b7jjJiXSX5xOX7eHky4NZp7ekbqTLdIA7B7zk3Lli2ZPn06Q4cOrbZ83rx5DB8+nIKCgjoNWNc050ZE6pPVZjDjmz1M/XoXNgM6hTRhZnICUa0CzI4m4tTqdc6N1WqlZ8+e5yxPTEykqqrK3i8nIuIy8ovLGPVBFt/tOXNB07sSI3jhtmga+Vzy9EYRuQR2z7n53e9+x6xZs85Z/sYbb3D//ffXSSgREWfz3Z4CBk1dw3d7juPv7clrd8fx6t1xKjYiJqjVv7rRo0ef/W+LxcJbb73FsmXL6N27NwDr1q0jOztbF/ETEbdTZbUx7evdTF+xB8OAqNAAZt6fQKeQJmZHE3FbtSo3mZmZ1Z4nJiYCZ651A2fuKxUcHMzWrVvrOJ6IiOM6WlTG8HmZrN9/AoChvSJ5fnA0ft6OfTFTEVdXq3KzYsWK+s4hIuJUVu7MZ/SHGzlRUkFjH09eurM7t/XQ/fVEHIEGg0VE7FBltfHa8l3MWnnmzHW3sEBmJMfTIVjDUCKOwu5yU1ZWxvTp01mxYgX5+fnYbLZqr2dkZNRZOBERR3Lk5GlGzMtkw8GfAXigd1ueubmrhqFEHIzd5ebhhx9m+fLl3HXXXfTq1UsXpBIRt/D19qM8sWAjJ0srCfD1YtKQWG6ODTM7lojUwO5ys3jxYpYsWcJVV11VH3lERBxKRZWNfyzdwVtr9gPQvXUQM5LjaduiscnJROR87C43rVu3JiBAV9oUEdeXfaKU4fMyyco+CcDvr2rH2IFd8PXSMJSII7P7In6vvfYaTz/9NAcPHqyPPCIiDuHLrXncPO1bsrJPEujnxb8eSOT5wdEqNiJOwO4zNz179qSsrIwOHTrQqFEjvL29q71+4sSJOgsnItLQyqusTFyyg3e/PwBAj8imTB8aT2TzRuYGE5Fas7vcDB06lJycHF566SVCQ0M1oVhEXMbB4yWkpmWyOacQgD9d3YEnb4zC29Puk9wiYiK7y83333/P2rVriYuLq488IiKmWLwpl7Hpmygur6JpI28m3xPHdV1CzY4lIpfA7nLTpUsXTp8+XR9ZREQaXFmllb8v3sbcdYcA6Nm2GdOGxhPe1N/kZCJyqewuN5MmTeKJJ57gxRdfpHv37ufMuQkMDKyzcCIi9WnfsVOkpGWyPbcIgP+7tiOjb7gMLw1DiTg1i2EYhj0beHic+Uf/67k2hmFgsViwWq11l64eFBUVERQURGFhoYqYiBv7NCuH8R9vpqTCSovGPky+twfXXBZsdiwROQ973r/tPnOjm2iKiDM7XWFlwmdbmf9jNgBXtG/OtKHxhAb6mZxMROqK3eXmmmuuqY8cIiL1bk9+MSnvZ7LzaDEWCwy/rjMjruukYSgRF2N3uVm9evUFX7/66qsvOYyISH356KfD/OWTLZyutNKyiS9T7+vBVZ1amh1LROqB3eXm2muvPWfZ/86/cfQ5NyLiXkorqvjLJ1tJzzgMwFWdWvD6vT0ICdAwlIirsvtc7M8//1ztkZ+fz9KlS7n88stZtmyZXV9r4sSJXH755QQEBBASEsLtt9/Ozp07L7jNypUrsVgs5zx27Nhh748iIi5uZ14xg6evIT3jMB4WGH3DZbz38BUqNiIuzu4zN0FBQecsu+GGG/D19WXUqFH89NNPtf5aq1atIiUlhcsvv5yqqiqeeeYZBgwYwLZt22jc+MJ33N25c2e12dLBwfqUg4icYRgGH/yYzfOLtlJeZSM00Jep98XTu0MLs6OJSAOwu9ycT3Bw8EXPuvza0qVLqz1/5513CAkJ4aeffrro3J2QkBCaNm1qb0wRcXGnyqt4ZuFmPs06AsA1lwUz+Z44WjTxNTmZiDQUu8vNpk2bqj03DIPc3FwmTZr0m2/JUFh45n4uzZs3v+i68fHxlJWV0a1bN5599ln69etX43rl5eWUl5effV5UVPSbMoqI49p6pJDhaZnsKyjB08PCmAFR/PnqDnh46B54Iu7E7nLTo0cPLBYLv772X+/evXn77bcvOYhhGIwePZo+ffoQExNz3vXCwsJ44403SExMpLy8nP/85z/079+flStX1ni2Z+LEiUyYMOGSc4mI4zMMg7k/HOJvn2+jospGWJAf04fG07Pdxf9QEhHXY/cVig8ePFjtuYeHB8HBwfj5/bYJeikpKSxevJg1a9YQERFh17aDBw/GYrGwaNGic16r6cxNZGSkrlAs4iKKyioZl76ZxZtzAejfJYRX746jWWMfk5OJSF2q1ysUt23b9pKDnc/w4cNZtGgRq1evtrvYwJmzRnPnzq3xNV9fX3x9NdYu4oo2HT5Jalomh06U4uVhYezALvyhT/tzbg8jIu7lkiYUf/3113z99dfk5+djs9mqvWbP0JRhGAwfPpyFCxeycuVK2rdvfylxyMzMJCws7JK2FRHnYxgG735/gJeWbKfSatC6qT8zkuOJb9PM7Ggi4gDsLjcTJkzghRdeoGfPnoSFhf2mv5BSUlJIS0vj008/JSAggLy8PODMx839/f0BGDduHDk5Obz33nsATJkyhXbt2hEdHU1FRQVz584lPT2d9PT0S84hIs6jsLSSp9I38uXWowAM6BbKK3fFEdTI2+RkIuIo7C43s2fP5t133+WBBx74zd981qxZwLlXPX7nnXd46KGHAMjNzeXQoUNnX6uoqGDMmDHk5OTg7+9PdHQ0ixcvZtCgQb85j4g4tsxDP5OalknOydN4e1oYP6grD13ZTsNQIlKN3ROKW7Rowfr16+nYsWN9ZapX9kxIEhHHYBgGb327n5eX7qDKZtCmeSNmJMcTG9HU7Ggi0kDsef+2+/YLf/zjH0lLS7vkcCIi9vi5pII//nsDLy7ZTpXN4ObuYXw+oo+KjYicl93DUmVlZbzxxht89dVXxMbG4u1dfZx78uTJdRZORNzbhgMnGDEvkyOFZfh4efCXW7rxuyvaaBhKRC7okq5Q3KNHDwC2bNlS7TX9whGRumCzGcxevZfXlu3CajNo37IxM5LjiQ4/9952IiK/Zne5WbFiRX3kEBEB4PipckZ/uJFVu44BcFuPcF68oztNfOvsVngi4uL020JEHMa6fccZOT+To0Xl+Hp58MJt0dzTM1JnhUXELio3ImI6q81g5oo9TPlqFzYDOgY35p/3JxLVKsDsaCLihFRuRMRU+cVljPogi+/2HAdgSEIEf7s9mkY++vUkIpdGvz1ExDTf7Slg5PwsCk6V4+/tyd9uj+GuRPvvLyci8r9UbkSkwVltBlO/3s30b3ZjGBAVGsCM5Hg6h2oYSkR+O7sv4gfwn//8h6uuuorw8HAOHjwInLnn06efflqn4UTE9RwtKiP5zXVM+/pMsbnv8kg+SblKxUZE6ozd5WbWrFmMHj2aQYMGcfLkSaxWKwBNmzZlypQpdZ1PRFzIql3HGDT1W37Yf4LGPp5Mva8Hk4bE4u/jaXY0EXEhdpeb6dOn8+abb/LMM8/g6fnfX0g9e/Zk8+bNdRpORFxDldXGy0t3MOzt9RwvqaBrWCCfDe/DbT1amx1NRFyQ3XNu9u/fT3x8/DnLfX19KSkpqZNQIuI6jpw8zYh5mWw4+DMAv+vdhmdv7oaft87WiEj9sLvctG/fnqysLNq2bVtt+RdffEG3bt3qLJiIOL9vdhxl9IcbOVlaSYCvFxOHdOeW2HCzY4mIi7O73Dz55JOkpKRQVlaGYRisX7+eefPmMXHiRN566636yCgiTqbSauMfS3fw5rf7AejeOogZyfG0bdHY5GQi4g7sLje///3vqaqq4qmnnqK0tJTk5GRat27N1KlTue++++ojo4g4kewTpQyfl0lW9kkAHrqyHeMGdcHXS8NQItIwLIZhGJe6cUFBATabjZCQkLrMVK+KiooICgqisLCQwMBAs+OIuJQvt+bx5IKNFJVVEejnxT/uiuOmmFZmxxIRF2DP+/dvuohfy5Ytf8vmIuIiyqusTPpiB+98dwCAuMimzBgaT2TzRuYGExG3ZHe5OX78OM899xwrVqwgPz8fm81W7fUTJ07UWTgRcXyHjpeSkpbB5pxCAB7p254nb+yCj9clXSNUROQ3s7vc/O53v2Pv3r384Q9/IDQ0FIvFUh+5RMQJLNmcy9MfbaK4vIqmjbx59a44ru8WanYsEXFzdpebNWvWsGbNGuLi4uojj4g4gbJKKy8u3s5/1p25/Upi22ZMHxpPeFN/k5OJiFxCuenSpQunT5+ujywi4gT2F5SQ8n4G23KLAHjs2o6MvuEyvD01DCUijsHucvPPf/6TsWPH8txzzxETE4O3t3e11/UJJBHX9WlWDuM/3kxJhZXmjX2YfE8c10Y5z6clRcQ92F1umjZtSmFhIdddd1215YZhYLFYzt5IU0RcR1mllb8u2sr8H7MB6NW+OdPui6dVkJ/JyUREzmV3ubn//vvx8fEhLS1NE4pF3MCe/GJS3s9k59FiLBYY3q8TI/p3xkvDUCLioOwuN1u2bCEzM5OoqKj6yCMiDiT9p8M8+8kWTldaadnElyn39qBPZ13fSkQcm93lpmfPnmRnZ6vciLiw0ooqnvt0Kx/9dBiAKzu2YMp9PQgJ0DCUiDg+u8vN8OHDGTlyJE8++STdu3c/Z0JxbGxsnYUTkYa3M6+YlLQM9uSfwsMCj19/GSn9OuHpoSFoEXEOdt9bysPj3HF2i8XiNBOKdW8pkZoZhsGHG7J5ftFWyipthAT4MvW+eJI6tjA7mohI/d5bav/+/ZccTEQc06nyKp5duJlPso4A0LdzS16/twctm/ianExExH52l5u2bdvWRw4RMcm2I0WkpmWwr6AETw8LTwy4jEev7oiHhqFExEld0l3B9+7dy5QpU9i+fTsWi4WuXbsycuRIOnbsWNf5RKSeGIbB+z8c4oXPt1FRZSMsyI9pQ+O5vF1zs6OJiPwmdl+o4ssvv6Rbt26sX7+e2NhYYmJi+OGHH4iOjmb58uX1kVFE6lhRWSWp8zJ59pMtVFTZuK5LCItH9FWxERGXYPeE4vj4eG688UYmTZpUbfnYsWNZtmwZGRkZdRqwrmlCsbi7zYcLSZ2XwcHjpXh5WHjqpij+2KeDhqFExKHZ8/5td7nx8/Nj8+bNdO7cudryXbt2ERsbS1lZmf2JG5DKjbgrwzD49/cHeGnJDiqsNlo39Wd6cjwJbZqZHU1E5KLq9dNSwcHBZGVlnVNusrKyCAnRDfREHFFhaSVPpW/ky61HARjQLZRX7oojqJH3RbYUEXE+dpebRx55hD/96U/s27ePK6+8EovFwpo1a3j55Zd54okn6iOjiPwGWdknSU3L4PDPp/H2tDB+UFceurKd7gsnIi7L7mEpwzCYMmUKr732GkeOnLkmRnh4OE8++SQjRoxw+F+YGpYSd2EYBnPW7GfSFzuoshm0ad6IGcnxxEY0NTuaiIjd6nXOzf8qLi4GICAg4FK/RINTuRF3cLK0gjELNvLV9nwABnVvxaQhsQT6aRhKRJxTvc65OX36NIZh0KhRIwICAjh48CBz5syhW7duDBgw4JJDi0jd+OngCYanZXKksAwfLw/+cks3fndFG4c/qyoiUlfsLje33XYbd955J48++ignT56kV69e+Pj4UFBQwOTJk3nsscfqI6eIXITNZvCv1ft4ddlOrDaD9i0bMyM5nujwILOjiYg0KLsv4peRkUHfvn0B+Oijj2jVqhUHDx7kvffeY9q0aXUeUEQu7vipcn7/7o+8vHQHVpvBrXHhfDa8j4qNiLglu8/clJaWnp1js2zZMu688048PDzo3bs3Bw8erPOAInJhP+w7zoj5mRwtKsfXy4O/3hrNfZdHahhKRNyW3WduOnXqxCeffEJ2djZffvnl2Xk2+fn5mqAr0oCsNoPpX+9m6JvrOFpUTsfgxnyaehVDe2l+jYi4N7vLzXPPPceYMWNo164dV1xxBUlJScCZszjx8fF1HlBEznWsuJxhb6/nteW7sBlwZ0JrFqX2oUsr/YEhImJ3ubnrrrs4dOgQGzZsYOnSpWeX9+/fn9dff92urzVx4kQuv/xyAgICCAkJ4fbbb2fnzp0X3W7VqlUkJibi5+dHhw4dmD17tr0/hojT+n5PAQOnfsuaPQX4e3vyyl2xTL6nB4197R5lFhFxSXaXG4BWrVoRHx+Ph8d/N+/VqxddunSx6+usWrWKlJQU1q1bx/Lly6mqqmLAgAGUlJScd5v9+/czaNAg+vbtS2ZmJuPHj2fEiBGkp6dfyo8i4jSsNoPJy3dx/5wfKDhVzmWhTViUehV394w0O5qIiEP5TRfxq2vHjh0jJCSEVatWcfXVV9e4ztNPP82iRYvYvn372WWPPvooGzduZO3atRf9HrqInzijo0VljJyfybp9JwC4t2ckf701Gn8fT5OTiYg0jHq9iF99KiwsBKB58+bnXWft2rXnXCzwxhtvZM6cOVRWVuLtXf0KrOXl5ZSXl599XlRUVIeJRerf6l3HGPVBFsdLKmjk48lLd3Tn9vjWZscSEXFYlzQsVR8Mw2D06NH06dOHmJiY866Xl5dHaGhotWWhoaFUVVVRUFBwzvoTJ04kKCjo7CMyUqfwxTlUWW38Y+kOHnx7PcdLKugaFsjnw/uo2IiIXITDlJvU1FQ2bdrEvHnzLrrurz/m+svIWk0ffx03bhyFhYVnH9nZ2XUTWKQe5RaeZuib6/jnyr0AJF/RhoX/dyUdgpuYnExExPE5xLDU8OHDWbRoEatXryYiIuKC67Zq1Yq8vLxqy/Lz8/Hy8qJFixbnrO/r64uvr2+d5hWpT9/sOMoTH27k59JKmvh6MWlId26JDTc7loiI0zC13BiGwfDhw1m4cCErV66kffv2F90mKSmJzz77rNqyZcuW0bNnz3Pm24g4k0qrjVe+3Mkbq/cBENM6kBlDE2jXsrHJyUREnIupw1IpKSnMnTuXtLQ0AgICyMvLIy8vj9OnT59dZ9y4cTz44INnnz/66KMcPHiQ0aNHs337dt5++23mzJnDmDFjzPgRROrE4Z9Luedfa88Wm4eubEf6Y1eq2IiIXAJTz9zMmjULgGuvvbba8nfeeYeHHnoIgNzcXA4dOnT2tfbt27NkyRJGjRrFzJkzCQ8PZ9q0aQwZMqShYovUqWVb8xizYCNFZVUE+Hnxyl2x3BQTZnYsERGn5VDXuWkIus6NOIqKKhsTv9jOO98dACAuIogZyQlENm9kbjAREQfktNe5EXEXh46Xkjovg02Hz1zb6Y992vPUTV3w8XKYDzCKiDgtlRuRBrZkcy5Pf7SJ4vIqgvy9ee3uOK7vFnrxDUVEpFZUbkQaSFmllRcXb+c/6w4CkNi2GdOGxtO6qb/JyUREXIvKjUgD2F9QQmpaBluPnLn9x6PXdOSJAZfh7alhKBGRuqZyI1LPFm08wrj0TZRUWGne2IfX7omjX1SI2bFERFyWyo1IPSmrtDLhs23MW3/mUga92jVn2tB4WgX5mZxMRMS1qdyI1IM9+adITctgR14xFguk9uvEyP6d8dIwlIhIvVO5EaljH2cc5tlPtlBaYaVlEx9ev7cHfTsHmx1LRMRtqNyI1JHSiiqe+3QrH/10GIArO7Zgyr09CAnUMJSISENSuRGpA7uOFpPyfga780/hYYGR/S8j9bpOeHpYzI4mIuJ2VG5EfgPDMFiw4TDPLdpCWaWNkABfpt4XT1LHFmZHExFxWyo3IpeopLyKZxZu5pOsIwD07dyS1+/tQcsmviYnExFxbyo3Ipdg25EiUtMy2FdQgqeHhdE3XMZj13TEQ8NQIiKmU7kRsYNhGKStP8SEz7ZRUWWjVaAf05Pjubxdc7OjiYjI/6dyI1JLxWWVjPt4M59vygWgX1Qwr93Tg+aNfUxOJiIi/0vlRqQWtuQUkpKWwcHjpXh5WHjqpij+2KeDhqFERByQyo3IBRiGwXtrD/Li4u1UWG20burPtKHxJLZtZnY0ERE5D5UbkfMoPF3J0x9tYunWPABu6BbKK3fF0rSRhqFERByZyo1IDbKyT5KalsHhn0/j7Wlh3MCu/P6qdlgsGoYSEXF0Kjci/8MwDOas2c/LS3dQaTWIbO7PjKEJxEU2NTuaiIjUksqNyP93srSCMQs28dX2owAMjGnFpCGxBPl7m5xMRETsoXIjAvx08ATD0zI5UliGj6cHf7mlK7/r3VbDUCIiTkjlRtyazWbwxrf7eOXLnVhtBu1aNGJGcgIxrYPMjiYiIpdI5Ubc1vFT5TyxYCMrdx4DYHBcOC/dEUOAn4ahREScmcqNuKX1+08wfF4GR4vK8fXy4K+3RnPf5ZEahhIRcQEqN+JWbDaDf67cw+Tlu7AZ0CG4MTOTE+gaFmh2NBERqSMqN+I2jhWXM/rDLL7dXQDAnfGt+dvtMTT21T8DERFXot/q4ha+31PAyA+yOFZcjp+3B3+7LYa7e0aaHUtEROqByo24NKvNYNrXu5n2zW4MAy4LbcLM5AQ6hwaYHU1EROqJyo24rPyiMkbOz2LtvuMA3NMzggm3xuDv42lyMhERqU8qN+KSvt19jFEfZFFwqoJGPp68eEcMd8RHmB1LREQagMqNuJQqq40pX+1m5so9GAZ0aRXAzPsT6BjcxOxoIiLSQFRuxGXkFp5m5Lws1h84AUDyFW147pZu+HlrGEpExJ2o3IhLWLEjn9EfZvFzaSVNfL2YeGd3BseFmx1LRERMoHIjTq3SauPVL3fyr9X7AIhpHciMoQm0a9nY5GQiImIWlRtxWjknTzM8LYOMQycBeOjKdowb1AVfLw1DiYi4M5UbcUrLtx1lzIKNFJ6uJMDPi1fuiuWmmDCzY4mIiANQuRGnUlFlY9IXO3j7u/0AxEUEMSM5gcjmjUxOJiIijkLlRpxG9olSUtMy2Hi4EIA/9GnP0zd1wcfLw+RkIiLiSFRuxCks3ZLLkx9torisiiB/b169O44buoWaHUtERByQyo04tLJKKxOXbOffaw8CkNCmKdOTE2jd1N/kZCIi4qhUbsRhHSgoISUtg61HigD48zUdGDMgCm9PDUOJiMj5qdyIQ/ps4xHGfbyZU+VVNG/sw2v3xNEvKsTsWCIi4gRUbsShlFVaeeHzbaT9cAiAXu2aM21oPK2C/ExOJiIizkLlRhzG3mOnSHk/gx15xVgskNqvEyP7d8ZLw1AiImIHU981Vq9ezeDBgwkPD8disfDJJ59ccP2VK1disVjOeezYsaNhAku9WZh5mMHT17Ajr5iWTXx47+FePDEgSsVGRETsZuqZm5KSEuLi4vj973/PkCFDar3dzp07CQwMPPs8ODi4PuJJAzhdYeX5RVv4cMNhAJI6tGDqfT0ICdQwlIiIXBpTy83AgQMZOHCg3duFhITQtGnTug8kDWrX0WJS3s9gd/4pLBYY2b8zw6/rjKeHxexoIiLixJxyzk18fDxlZWV069aNZ599ln79+p133fLycsrLy88+LyoqaoiIcgGGYbDgp8M89+kWyiptBAf4MvW+HlzZsaXZ0URExAU41YSGsLAw3njjDdLT0/n444+Jioqif//+rF69+rzbTJw4kaCgoLOPyMjIBkwsv1ZSXsUTH27kqY82UVZpo2/nlnwxsq+KjYiI1BmLYRiG2SEALBYLCxcu5Pbbb7dru8GDB2OxWFi0aFGNr9d05iYyMpLCwsJq83ak/m3PLSIlLYN9x0rwsMATA6J47JqOeGgYSkRELqKoqIigoKBavX875bDU/+rduzdz58497+u+vr74+vo2YCL5NcMwmLc+mwmfbaW8ykarQD+mDY2nV/vmZkcTEREX5PTlJjMzk7CwMLNjyHkUl1UyfuEWPtt4BIB+UcG8dk8Pmjf2MTmZiIi4KlPLzalTp9izZ8/Z5/v37ycrK4vmzZvTpk0bxo0bR05ODu+99x4AU6ZMoV27dkRHR1NRUcHcuXNJT08nPT3drB9BLmBLTiGpaRkcOF6Kl4eFJ2+M4pG+HTQMJSIi9crUcrNhw4Zqn3QaPXo0AMOGDePdd98lNzeXQ4cOnX29oqKCMWPGkJOTg7+/P9HR0SxevJhBgwY1eHY5P8Mw+M+6g/z98+1UWG20burPtKHxJLZtZnY0ERFxAw4zobih2DMhSexXeLqScR9vYsnmPACu7xrKq3fH0rSRhqFEROTSudWEYnEcG7NPkjovg+wTp/H2tDB2YFcevqodFouGoUREpOGo3MhvZhgGb393gElfbKfSahDZ3J8ZQxOIi2xqdjQREXFDKjfym5wsreDJjzaxfNtRAAbGtGLSkFiC/L1NTiYiIu5K5UYuWcahnxmelknOydP4eHrw7C1deaB3Ww1DiYiIqVRuxG42m8Gb3+7jlS93UmUzaNeiETOSE4hpHWR2NBEREZUbsc+Jkgqe+DCLFTuPATA4LpyX7oghwE/DUCIi4hhUbqTW1u8/wYh5meQVleHr5cHzg6MZ2itSw1AiIuJQVG7komw2g1mr9jJ5+S6sNoMOwY2ZmZxA1zBdJ0hERByPyo1cUMGpckZ9kMW3uwsAuDO+NX+7PYbGvjp0RETEMekdSs5r7d7jjJyfSX5xOX7eHrxwWwx3J0ZoGEpERByayo2cw2ozmP7NbqZ9vRubAZ1DmjDz/gQuCw0wO5qIiMhFqdxINfnFZTw+P4vv9x4H4J6eEUy4NQZ/H0+Tk4mIiNSOyo2ctWZ3AY9/kEnBqQoa+Xjy4h0x3BEfYXYsERERu6jcCFVWG1O+2s3MlXswDOjSKoAZyQl0CmlidjQRERG7qdy4ubzCMkbMz2T9/hMAJF/Rhudu6Yaft4ahRETEOancuLGVO/MZ/eFGTpRU0MTXi5fu7M6tceFmxxIREflNVG7cUKXVxmvLdjF71V4AosMDmZmcQLuWjU1OJiIi8tup3LiZnJOnGTEvk58O/gzAsKS2jBvUVcNQIiLiMlRu3MhX247yxIKNFJ6uJMDPi38MiWVg9zCzY4mIiNQplRs3UFFl4x9Ld/DWmv0AxEUEMX1oAm1aNDI5mYiISN1TuXFx2SdKSZ2XycbskwD8oU97nr6pCz5eHuYGExERqScqNy5s6ZZcnvxoE8VlVQT5e/Pq3XHc0C3U7FgiIiL1SuXGBZVXWXlp8Xb+vfYgAAltmjJtaDwRzTQMJSIirk/lxsUcKCghdV4GW3KKAPjzNR0YMyAKb08NQ4mIiHtQuXEhn286wtj0zZwqr6JZI28m39ODfl1CzI4lIiLSoFRuXEBZpZW/fb6N9384BMDl7ZoxbWg8YUH+JicTERFpeCo3Tm7vsVOkvJ/BjrxiLBZIubYTj1/fGS8NQ4mIiJtSuXFin2TmMH7hZkorrLRo7MOU+3rQt3Ow2bFERERMpXLjhE5XWPnroq18sCEbgKQOLZh6Xw9CAv1MTiYiImI+lRsns/toMSlpGew6egqLBUb278zw6zrj6WExO5qIiIhDULlxIgs2ZPPcp1s5XWklOMCXqff14MqOLc2OJSIi4lBUbpxASXkVf/l0Cx9n5ADQt3NLJt/Tg+AAX5OTiYiIOB6VGwe3I6+IlPcz2HusBA8LPDEgiseu6YiHhqFERERqpHLjoAzDYP6P2fx10VbKq2y0CvRj2tB4erVvbnY0ERERh6Zy44BOlVcx/uPNLNp4BIBro4KZfE8Pmjf2MTmZiIiI41O5cTBbcgpJTcvgwPFSPD0sPHVjFI/07aBhKBERkVpSuXEQhmEwd91B/rZ4OxVVNsKD/JienEBi22ZmRxMREXEqKjcOoKiskrHpm1iyOQ+A67uG8urdsTRtpGEoERERe6ncmGzT4ZOkpmVy6EQp3p4Wxg7sysNXtcNi0TCUiIjIpVC5MYlhGLzz3QEmfrGdSqtBRDN/ZiYnEBfZ1OxoIiIiTk3lxgSFpZU8+dFGlm07CsBN0a14+a5Ygvy9TU4mIiLi/FRuGljmoZ9JTcsk5+RpfDw9ePaWrjzQu62GoUREROqIyk0DsdkM5qzZz8tLd1BlM2jbohEzkxOIaR1kdjQRERGXonLTAH4uqeCJBRv5Zkc+ALfEhjHxzu4E+GkYSkREpK6p3NSzHw+cYMS8THILy/Dx8uCvg6MZ2itSw1AiIiL1xMPMb7569WoGDx5MeHg4FouFTz755KLbrFq1isTERPz8/OjQoQOzZ8+u/6CXwGYzmLliD/e9sY7cwjI6BDfm05SrSL6ijYqNiIhIPTK13JSUlBAXF8eMGTNqtf7+/fsZNGgQffv2JTMzk/HjxzNixAjS09PrOal9Ck6V89C7P/LKlzux2gzuiG/NZ6l96BoWaHY0ERERl2fqsNTAgQMZOHBgrdefPXs2bdq0YcqUKQB07dqVDRs28OqrrzJkyJB6SmmfdfuOM2JeJvnF5fh5e/DCbTHcnRihszUiIiINxKnm3Kxdu5YBAwZUW3bjjTcyZ84cKisr8fY+d4JueXk55eXlZ58XFRXVSzarzWDGN3uY+vUubAZ0DmnCzPsTuCw0oF6+n4iIiNTM1GEpe+Xl5REaGlptWWhoKFVVVRQUFNS4zcSJEwkKCjr7iIyMrJds6/Yd5/WvzhSbuxMj+DT1KhUbEREREzjVmRvgnOEdwzBqXP6LcePGMXr06LPPi4qK6qXgXNWpJY/0bU/XsEDuTIio868vIiIiteNU5aZVq1bk5eVVW5afn4+XlxctWrSocRtfX198fX0bIh7P3NytQb6PiIiInJ9TDUslJSWxfPnyasuWLVtGz549a5xvIyIiIu7H1HJz6tQpsrKyyMrKAs581DsrK4tDhw4BZ4aUHnzwwbPrP/rooxw8eJDRo0ezfft23n77bebMmcOYMWPMiC8iIiIOyNRhqQ0bNtCvX7+zz3+ZGzNs2DDeffddcnNzzxYdgPbt27NkyRJGjRrFzJkzCQ8PZ9q0aQ7zMXARERExn8X4ZUaumygqKiIoKIjCwkICA3VRPREREWdgz/u3U825EREREbkYlRsRERFxKSo3IiIi4lJUbkRERMSlqNyIiIiIS1G5EREREZeiciMiIiIuReVGREREXIrKjYiIiLgUp7oreF345YLMRUVFJicRERGR2vrlfbs2N1Zwu3JTXFwMQGRkpMlJRERExF7FxcUEBQVdcB23u7eUzWbjyJEjBAQEYLFY6vRrFxUVERkZSXZ2tu5bdRHaV7WnfVV72lf20f6qPe2r2quvfWUYBsXFxYSHh+PhceFZNW535sbDw4OIiIh6/R6BgYE6+GtJ+6r2tK9qT/vKPtpftad9VXv1sa8udsbmF5pQLCIiIi5F5UZERERcispNHfL19eX555/H19fX7CgOT/uq9rSvak/7yj7aX7WnfVV7jrCv3G5CsYiIiLg2nbkRERERl6JyIyIiIi5F5UZERERcisqNiIiIuBSVGzv985//pH379vj5+ZGYmMi33357wfVXrVpFYmIifn5+dOjQgdmzZzdQUvPZs69WrlyJxWI557Fjx44GTGyO1atXM3jwYMLDw7FYLHzyyScX3cZdjyt795W7HlcTJ07k8ssvJyAggJCQEG6//XZ27tx50e3c9bi6lP3lrsfWrFmziI2NPXuBvqSkJL744osLbmPGcaVyY4cPPviAxx9/nGeeeYbMzEz69u3LwIEDOXToUI3r79+/n0GDBtG3b18yMzMZP348I0aMID09vYGTNzx799Uvdu7cSW5u7tlH586dGyixeUpKSoiLi2PGjBm1Wt+djyt799Uv3O24WrVqFSkpKaxbt47ly5dTVVXFgAEDKCkpOe827nxcXcr++oW7HVsRERFMmjSJDRs2sGHDBq677jpuu+02tm7dWuP6ph1XhtRar169jEcffbTasi5duhhjx46tcf2nnnrK6NKlS7Vlf/7zn43evXvXW0ZHYe++WrFihQEYP//8cwOkc1yAsXDhwguu487H1f+qzb7ScXVGfn6+ARirVq067zo6rv6rNvtLx9Z/NWvWzHjrrbdqfM2s40pnbmqpoqKCn376iQEDBlRbPmDAAL7//vsat1m7du056994441s2LCBysrKestqtkvZV7+Ij48nLCyM/v37s2LFivqM6bTc9bj6Ldz9uCosLASgefPm511Hx9V/1WZ//cKdjy2r1cr8+fMpKSkhKSmpxnXMOq5UbmqpoKAAq9VKaGhoteWhoaHk5eXVuE1eXl6N61dVVVFQUFBvWc12KfsqLCyMN954g/T0dD7++GOioqLo378/q1evbojITsVdj6tLoePqzJ2UR48eTZ8+fYiJiTnvejquzqjt/nLnY2vz5s00adIEX19fHn30URYuXEi3bt1qXNes48rt7gr+W1kslmrPDcM4Z9nF1q9puSuyZ19FRUURFRV19nlSUhLZ2dm8+uqrXH311fWa0xm583FlDx1XkJqayqZNm1izZs1F19VxVfv95c7HVlRUFFlZWZw8eZL09HSGDRvGqlWrzltwzDiudOamllq2bImnp+c5Zx7y8/PPaaW/aNWqVY3re3l50aJFi3rLarZL2Vc16d27N7t3767reE7PXY+ruuJOx9Xw4cNZtGgRK1asICIi4oLr6riyb3/VxF2OLR8fHzp16kTPnj2ZOHEicXFxTJ06tcZ1zTquVG5qycfHh8TERJYvX15t+fLly7nyyitr3CYpKemc9ZctW0bPnj3x9vaut6xmu5R9VZPMzEzCwsLqOp7Tc9fjqq64w3FlGAapqal8/PHHfPPNN7Rv3/6i27jzcXUp+6sm7nBs1cQwDMrLy2t8zbTjql6nK7uY+fPnG97e3sacOXOMbdu2GY8//rjRuHFj48CBA4ZhGMbYsWONBx544Oz6+/btMxo1amSMGjXK2LZtmzFnzhzD29vb+Oijj8z6ERqMvfvq9ddfNxYuXGjs2rXL2LJlizF27FgDMNLT0836ERpMcXGxkZmZaWRmZhqAMXnyZCMzM9M4ePCgYRg6rv6XvfvKXY+rxx57zAgKCjJWrlxp5Obmnn2UlpaeXUfH1X9dyv5y12Nr3LhxxurVq439+/cbmzZtMsaPH294eHgYy5YtMwzDcY4rlRs7zZw502jbtq3h4+NjJCQkVPuo4LBhw4xrrrmm2vorV6404uPjDR8fH6Ndu3bGrFmzGjixeezZVy+//LLRsWNHw8/Pz2jWrJnRp08fY/HixSakbni/fKT0149hw4YZhqHj6n/Zu6/c9biqaR8BxjvvvHN2HR1X/3Up+8tdj62HH3747O/14OBgo3///meLjWE4znFlMYz/P7NHRERExAVozo2IiIi4FJUbERERcSkqNyIiIuJSVG5ERETEpajciIiIiEtRuRERERGXonIjIiIiLkXlRkRERFyKyo2IiIi4FJUbERERcSkqNyIiIuJSVG5ERETEpfw/RVgDrlkwE4AAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display latex\n", "\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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tK9qT/vKPtpftad9VXv1sa8udsbmF5pQLCIiIi5F5UZERERcispNHfL19eX555/H19fX7CgOT/uq9rSvak/7yj7aX7WnfVV7jrCv3G5CsYiIiLg2nbkRERERl6JyIyIiIi5F5UZERERcisqNiIiIuBSVGzv985//pH379vj5+ZGYmMi33357wfVXrVpFYmIifn5+dOjQgdmzZzdQUvPZs69WrlyJxWI557Fjx44GTGyO1atXM3jwYMLDw7FYLHzyyScX3cZdjyt795W7HlcTJ07k8ssvJyAggJCQEG6//XZ27tx50e3c9bi6lP3lrsfWrFmziI2NPXuBvqSkJL744osLbmPGcaVyY4cPPviAxx9/nGeeeYbMzEz69u3LwIEDOXToUI3r79+/n0GDBtG3b18yMzMZP348I0aMID09vYGTNzx799Uvdu7cSW5u7tlH586dGyixeUpKSoiLi2PGjBm1Wt+djyt799Uv3O24WrVqFSkpKaxbt47ly5dTVVXFgAEDKCkpOe827nxcXcr++oW7HVsRERFMmjSJDRs2sGHDBq677jpuu+02tm7dWuP6ph1XhtRar169jEcffbTasi5duhhjx46tcf2nnnrK6NKlS7Vlf/7zn43evXvXW0ZHYe++WrFihQEYP//8cwOkc1yAsXDhwguu487H1f+qzb7ScXVGfn6+ARirVq067zo6rv6rNvtLx9Z/NWvWzHjrrbdqfM2s40pnbmqpoqKCn376iQEDBlRbPmDAAL7//vsat1m7du056994441s2LCBysrKestqtkvZV7+Ij48nLCyM/v37s2LFivqM6bTc9bj6Ldz9uCosLASgefPm511Hx9V/1WZ//cKdjy2r1cr8+fMpKSkhKSmpxnXMOq5UbmqpoKAAq9VKaGhoteWhoaHk5eXVuE1eXl6N61dVVVFQUFBvWc12KfsqLCyMN954g/T0dD7++GOioqLo378/q1evbojITsVdj6tLoePqzJ2UR48eTZ8+fYiJiTnvejquzqjt/nLnY2vz5s00adIEX19fHn30URYuXEi3bt1qXNes48rt7gr+W1kslmrPDcM4Z9nF1q9puSuyZ19FRUURFRV19nlSUhLZ2dm8+uqrXH311fWa0xm583FlDx1XkJqayqZNm1izZs1F19VxVfv95c7HVlRUFFlZWZw8eZL09HSGDRvGqlWrzltwzDiudOamllq2bImnp+c5Zx7y8/PPaaW/aNWqVY3re3l50aJFi3rLarZL2Vc16d27N7t3767reE7PXY+ruuJOx9Xw4cNZtGgRK1asICIi4oLr6riyb3/VxF2OLR8fHzp16kTPnj2ZOHEicXFxTJ06tcZ1zTquVG5qycfHh8TERJYvX15t+fLly7nyyitr3CYpKemc9ZctW0bPnj3x9vaut6xmu5R9VZPMzEzCwsLqOp7Tc9fjqq64w3FlGAapqal8/PHHfPPNN7Rv3/6i27jzcXUp+6sm7nBs1cQwDMrLy2t8zbTjql6nK7uY+fPnG97e3sacOXOMbdu2GY8//rjRuHFj48CBA4ZhGMbYsWONBx544Oz6+/btMxo1amSMGjXK2LZtmzFnzhzD29vb+Oijj8z6ERqMvfvq9ddfNxYuXGjs2rXL2LJlizF27FgDMNLT0836ERpMcXGxkZmZaWRmZhqAMXnyZCMzM9M4ePCgYRg6rv6XvfvKXY+rxx57zAgKCjJWrlxp5Obmnn2UlpaeXUfH1X9dyv5y12Nr3LhxxurVq439+/cbmzZtMsaPH294eHgYy5YtMwzDcY4rlRs7zZw502jbtq3h4+NjJCQkVPuo4LBhw4xrrrmm2vorV6404uPjDR8fH6Ndu3bGrFmzGjixeezZVy+//LLRsWNHw8/Pz2jWrJnRp08fY/HixSakbni/fKT0149hw4YZhqHj6n/Zu6/c9biqaR8BxjvvvHN2HR1X/3Up+8tdj62HH3747O/14OBgo3///meLjWE4znFlMYz/P7NHRERExAVozo2IiIi4FJUbERERcSkqNyIiIuJSVG5ERETEpajciIiIiEtRuRERERGXonIjIiIiLkXlRkRERFyKyo2IiIi4FJUbERERcSkqNyIiIuJSVG5ERETEpfw/RVgDrlkwE4AAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display plain\n", "\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check that `%matplotlib widget` works in the scope of `%display latex` ([#33469](https://github.com/sagemath/sage/issues/33469))" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "`%matplotlib notebook` provided an interactive Matplotlib window in the old Jupyter Notebook. It is however not supported by **Jupyterlab**; one must use `%matplotlib widget` instead, which requires the package [ipympl](https://matplotlib.org/ipympl/).\n", "See [Matplotlib documentation](https://matplotlib.org/stable/users/explain/figure/interactive.html#other-python-prompts) for details. \n", "To install `ipympl` and therefore enable `%matplotlib widget`, you can uncomment the following cell:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "# !pip install ipympl" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**This failed in Sage 9.6.beta5 but has been fixed in Sage 9.6.beta7**:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/eric/sage/10.7/local/var/lib/sage/venv-python3.12/lib/python3.12/site-packages/traitlets/traitlets.py:1385: DeprecationWarning: Passing unrecognized arguments to super(Toolbar).__init__().\n", "NavigationToolbar2WebAgg.__init__() missing 1 required positional argument: 'canvas'\n", "This is deprecated in traitlets 4.2.This error will be raised in a future release of traitlets.\n", " warn(\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bc9aac41e1214cdfb84f800df8c1bbeb", "version_major": 2, "version_minor": 0 }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAASypJREFUeJzt3XlcVXXi//H3ZUcF3ABFcF8BQdyS0sosTSezsk2axqapGfvikmSLTsu0apOVC6Y1WU1jaBlqNi5p5VqaKeC+L4AKIi6AINu95/eHv5zIJVTgwD2v5+NxH4/uuedw35zHifP2fM5iMwzDEAAAACzDxewAAAAAqFoUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALIYCCAAAYDEUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALIYCCAAAYDEUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALIYCCAAAYDEUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALIYCCAAAYDEUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALIYCCAAAYDEUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALIYCCAAAYDEUQAAAAIuhAAIAAFgMBRAAAMBiKIAAAAAWQwEEAACwGAogAACAxVAAAQAALMbN7AA1mcPh0NGjR+Xj4yObzWZ2HAAAUA6GYSgvL09BQUFycbHmsTAK4DU4evSoQkJCzI4BAACuQnp6uoKDg82OYQoK4DXw8fGRdG4D8vX1NTkNAAAoj9zcXIWEhJzfj1sRBfAa/DLs6+vrSwEEAKCGsfLpW9Yc+AYAALAwCiAAAIDFUAABAAAshgIIAABgMRRAAAAAi6EAAgAAWAwFEAAAwGIogAAAABZDAQQAALAYpyyA48ePl81m05NPPnnZ+VatWqUuXbrIy8tLLVu21IwZM6omIAAAgImcrgD+/PPP+uCDDxQREXHZ+Q4ePKgBAwaoV69eSk5O1rhx4zRy5EglJiZWUVIAAABzOFUBPHPmjB566CH961//Ur169S4774wZM9S0aVNNmjRJHTp00GOPPaZHH31UEydOrKK0AADgcgzDMDuC03KqAhgbG6s//OEPuvXWW3933nXr1qlv375lpvXr108bN25USUnJRZcpKipSbm5umRcAAKh4yWmn1H/yGh3Kzjc7ilNymgI4Z84cJSUlafz48eWaPzMzU4GBgWWmBQYGqrS0VNnZ2RddZvz48fLz8zv/CgkJuebcAADgfwzD0L9WH9B9M9ZpV2aeJizZZXYkp+QUBTA9PV2jRo3SrFmz5OXlVe7lbDZbmfe/HGr+7fRfjB07Vjk5Oedf6enpVx8aAACUcSq/WI/9e6NeX7xTpQ5DAzo20j/vu/w5/bg6bmYHqAibNm1SVlaWunTpcn6a3W7X6tWrFR8fr6KiIrm6upZZplGjRsrMzCwzLSsrS25ubmrQoMFFv8fT01Oenp4V/wsAAGBxGw+d1MjZyTqaUygPNxe9cEeo/nhd00selMG1cYoC2KdPH23durXMtD//+c9q3769nn322QvKnyRFR0fr66+/LjNt2bJl6tq1q9zd3Ss1LwAAOMfhMDRj9X69vWyP7A5DLRrWVnxMlMKC/MyO5tScogD6+PgoPDy8zLTatWurQYMG56ePHTtWR44c0aeffipJGjZsmOLj4xUXF6fHH39c69at08yZMzV79uwqzw8AgBWdOFOkuC82a9We45KkQZ2C9PrdHVXH0ynqSbVmmTWckZGhtLS08+9btGihxYsXa/To0Zo2bZqCgoI0ZcoUDR482MSUAABYw08HTmjknGQdyy2Sp5uLXr4zTA90C2HIt4rYDG6yc9Vyc3Pl5+ennJwc+fr6mh0HAIBqz+4w9N6KfXr32z1yGFIr/9qa9lBntW9UdftR9t8WOgIIAADMlZVXqNGfp+iHfSckSYM7B+vVu8JUy4M6UtVY4wAAoNL9sC9bo+akKPtMkbzdXfXqXeG6t0uw2bEsiwIIAAAqjd1haPJ3ezX1+70yDKltYB1Ni+msNoE+ZkezNAogAACoFMdyCzVydrJ+OnhSkvRgtxC9NDBM3h4X3p4NVYsCCAAAKtyqPccV93mKTuQXq7aHq964p6MGdWpidiz8fxRAAABQYUrtDr29fI+mr9wvSerQ2FfTYqLU0r+OycnwaxRAAABQIY6ePquRs5O1MfWUJOmPPZrq+T+EysudId/qhgIIAACu2fe7jinui806XVCiOp5umjC4o+6ICDI7Fi6BAggAAK5aid2ht77ZrQ9WH5AkdWzip/iYKDVrUNvkZLgcCiAAALgqh08VaHhCslLST0uSHrm+ucYOaC9PN4Z8qzsKIAAAuGLfbM/U03M3K7ewVL5ebvrnvZG6PbyR2bFQThRAAABQbkWldk1Ysksf/3BIkhQZUlfxQ6IUUr+WucFwRSiAAACgXNJOFCg2IUlbj+RIkh7v1UJP92svDzcXk5PhSlEAAQDA71q8NUPPfrlFeUWlqlvLXRPvjdStoYFmx8JVogACAIBLKiyx6/VFO/Wf9amSpC7N6mnqkCgF1fU2ORmuBQUQAABc1MHsfMV+lqQdGbmSpCdubqW429rK3ZUh35qOAggAAC7wVcoRjZu3VfnFdtWv7aF37o/Uze0CzI6FCkIBBAAA5xWW2PXy19s1e0O6JKl7i/qa8mCUGvl5mZwMFYkCCAAAJEn7ss4o9rMk7T6WJ5tNGt67tUb1aSM3hnydDgUQAAAocdNhPb9gm86W2NWwjqcmPdBJPds0NDsWKgkFEAAACysoLtWLX23Xl5sOS5Kub9VAkx7spAAfhnydGQUQAACL2nMsT7GfJWlv1hm52KRRfdpq+C2t5epiMzsaKhkFEAAAizEMQ19sTNdLC7ersMShAB9PTX4wStGtGpgdDVWEAggAgIWcKSrV8/O3akHKUUlSrzYN9e4DndSwjqfJyVCVKIAAAFjEjqO5Gp6QpAPZ+XJ1sempvm017MZWcmHI13IogAAAODnDMPTZT2l65b87VFzqUGM/L00ZEqVuzeubHQ0moQACAODE8gpL9Ny8rVq0JUOSdEv7AE28L1L1a3uYnAxmogACAOCkth7O0fDZSUo9USA3F5ueub2dHuvZkiFfUAABAHA2hmHo3z8e0huLd6nY7lCTut6aGhOlzk3rmR0N1QQFEAAAJ5JztkTPfrlFS7dnSpJuCw3UxHsj5VfL3eRkqE4ogAAAOImU9NManpCkw6fOyt3VprH9O+jPNzSXzcaQL8qiAAIAUMMZhqGZaw9qwpJdKnUYalq/luJjohQRXNfsaKimKIAAANRgpwuKNWbuZn27M0uSNKBjI00YHCFfL4Z8cWkUQAAAaqhNqSc1IiFZR3MK5eHmohfuCNUfr2vKkC9+FwUQAIAaxuEw9P7qA5q4bLfsDkMtGtZWfEyUwoL8zI6GGoICCABADXLiTJGemrtZK3cflyTdGRmkN+7pqDqe7NJRfmwtAADUED8dOKGRc5J1LLdInm4u+sedYXqwWwhDvrhiFEAAAKo5u8PQeyv26d1v98hhSK38a2vaQ53VvpGv2dFQQ1EAAQCoxo7nFWn05ylauy9bknRP5yZ6dVC4ajPki2vA1gMAQDX1475sjfo8RcfziuTt7qpXBoXpvq4hZseCE6AAAgBQzdgdhiZ/t1dTv98rw5DaBtbRtJjOahPoY3Y0OAkKIAAA1cix3EKNmpOs9QdOSpIe6Bqif9wZJm8PV5OTwZlQAAEAqCZW7zmu0Z+n6ER+sWp5uOqNuzvqrqgmZseCE6IAAgBgslK7Q+8s36P3Vu6XJHVo7KtpMVFq6V/H5GRwVhRAAABMlJFzViNnJ+vnQ6ckSQ9d11Qv3BEqL3eGfFF5XMwOUBGmT5+uiIgI+fr6ytfXV9HR0VqyZMkl51+5cqVsNtsFr127dlVhagCA1a3YlaUBk9fo50OnVMfTTfExUXr97o6UP1Q6pzgCGBwcrAkTJqh169aSpH//+98aNGiQkpOTFRYWdsnldu/eLV/f/91E09/fv9KzAgBQYndo4je79f7qA5Kk8Ca+ih/SWc0b1jY5GazCKQrgwIEDy7x//fXXNX36dK1fv/6yBTAgIEB169at5HQAAPzP4VMFGjE7WclppyVJj1zfXGMHtJenG0f9UHWcogD+mt1u19y5c5Wfn6/o6OjLzhsVFaXCwkKFhobq+eefV+/evS87f1FRkYqKis6/z83NrZDMAABrWLY9U09/uUU5Z0vk4+Wmt+6N0O3hjc2OBQtymgK4detWRUdHq7CwUHXq1NH8+fMVGhp60XkbN26sDz74QF26dFFRUZH+85//qE+fPlq5cqVuvPHGS37H+PHj9fLLL1fWrwAAcFLFpQ6NX7JTH/9wSJIUGVJX8UOiFFK/lrnBYFk2wzAMs0NUhOLiYqWlpen06dNKTEzUhx9+qFWrVl2yBP7WwIEDZbPZtHDhwkvOc7EjgCEhIcrJySlzLiEAAL9IO1Gg4bOTtOVwjiTpsZ4t9Mzt7eXh5hTXYdZIubm58vPzs/T+22mOAHp4eJy/CKRr1676+eefNXnyZL3//vvlWr5Hjx6aNWvWZefx9PSUp6fnNWcFAFjDkq0ZeubLLcorKpWft7vevi9St4YGmh0LcJ4C+FuGYZQ5Wvd7kpOT1bgx52EAAK5dYYldbyzeqU/XpUqSujSrpylDotSkrrfJyYBznKIAjhs3Tv3791dISIjy8vI0Z84crVy5UkuXLpUkjR07VkeOHNGnn34qSZo0aZKaN2+usLAwFRcXa9asWUpMTFRiYqKZvwYAwAkczM7X8IQkbT967kLBYTe10lN928rdlSFfVB9OUQCPHTumhx9+WBkZGfLz81NERISWLl2q2267TZKUkZGhtLS08/MXFxdrzJgxOnLkiLy9vRUWFqZFixZpwIABZv0KAAAnsHDzUY1N3KL8Yrvq1/bQ2/dHqne7ALNjARdwmotAzMBJpAAA6dyQ78tf79DsDecONnRvXl9ThkSpkZ+XyclwMey/neQIIAAAZtmXdUbDE5K0KzNPNps0vHdrjerTRm4M+aIaowACAHCV5iUd1vMLtqmg2K6GdTw06YEo9WzT0OxYwO+iAAIAcIUKikv10lfbNXfTYUnS9a0aaNIDnRTgy5AvagYKIAAAV2DPsTzFfpakvVln5GKTRvVpq+G3tJari83saEC5UQABACgHwzA0d+NhvbhwmwpLHArw8dTkB6MU3aqB2dGAK0YBBADgd+QXler5Bds0P/mIJKlXm4Z694FOaliHp0OhZqIAAgBwGTszchX7WZIOZOfL1cWmuNva6ombWsmFIV/UYBRAAAAuwjAMJWxI08tf71BxqUONfL00NSZK3ZrXNzsacM0ogAAA/EZeYYnGztuq/27JkCT1buevt+/vpPq1PUxOBlQMCiAAAL+y7UiOYhOSlHqiQG4uNj1zezs91rMlQ75wKhRAAAB0bsj303Wpen3RThXbHWpS11tTY6LUuWk9s6MBFY4CCACwvJyzJXr2yy1auj1TknRbaKDeujdCdWsx5AvnRAEEAFhaSvppDU9I0uFTZ+XuatPY/h305xuay2ZjyBfOiwIIALAkwzA0c+1Bvbl0l0rshkLqeyt+SGdFhtQ1OxpQ6SiAAADLOV1QrDFzt+jbncckSf3DG2nC4Aj5ebubnAyoGhRAAIClbEo9pREJSTqaUygPVxe9cEcH/bFHM4Z8YSkUQACAJTgchj5Yc0BvfbNbdoeh5g1qKT6ms8Kb+JkdDahyFEAAgNM7mV+suC9StHL3cUnSnZFBeuOejqrjyW4Q1sSWDwBwahsOntTI2cnKzC2Up5uL/nFnmB7sFsKQLyyNAggAcEoOh6H3Vu7TO8v3yGFILf1ra1pMZ3Vo7Gt2NMB0FEAAgNM5nlekuC9StGZvtiTpnqgmevWucNVmyBeQRAEEADiZH/dla9TnKTqeVyQvdxe9Oihc93UNMTsWUK1QAAEATsHuMDTlu72a8v1eGYbUNrCOpsV0VptAH7OjAdUOBRAAUONl5RZq1JwUrTtwQpJ0f9dgvXxnuLw9XE1OBlRPFEAAQI22Zu9xjf48RdlnilXLw1Wv3x2uu6OCzY4FVGsUQABAjVRqd2jSt3s1beU+GYbUvpGPpj3UWa3865gdDaj2KIAAgBonI+esRs1O0YZDJyVJD13XVC/cESovd4Z8gfKgAAIAapQVu7IU90WKThWUqI6nm8bf01EDI4PMjgXUKBRAAECNUGJ3aOI3u/X+6gOSpPAmvoof0lnNG9Y2ORlQ81AAAQDV3pHTZzUiIUlJaaclSY9c31xjB7SXpxtDvsDVoAACAKq15TuOaczczco5WyIfLze9dW+Ebg9vbHYsoEajAAIAqqXiUocmLNmlj344KEmKDPZTfExnhdSvZXIyoOajAAIAqp30kwUanpCkzYdzJEl/6dlCz97eXh5uLiYnA5wDBRAAUK0s3Zahp7/corzCUvl5u2vifZG6LTTQ7FiAU6EAAgCqhcISu8Yv3ql/r0uVJHVuWldTYzqrSV1vk5MBzocCCAAw3aHsfMUmJGn70VxJ0t9uaqkxfdvJ3ZUhX6AyUAABAKb6evNRjZ23VWeKSlW/tofevj9SvdsFmB0LcGoUQACAKQpL7HrlvzuU8FOaJKl78/qaMiRKjfy8TE4GOD8KIACgyu0/fkaxnyVpV2aebDZpeO/WGtWnjdwY8gWqBAUQAFCl5icf1t/nb1NBsV0N63jo3Qc6qVcbf7NjAZZCAQQAVImzxXa9+NU2zd10WJIU3bKBJj/YSQG+DPkCVY0CCACodHuO5Sn2syTtzTojF5s0qk9bDb+ltVxdbGZHAyyJAggAqDSGYWjupsN68attKixxyN/HU1MejFJ0qwZmRwMsjQIIAKgU+UWlemHBNs1LPiJJ6tWmod59oJMa1vE0ORkACiAAoMLtzMhVbEKSDhzPl4tNeqpvOz1xUyu5MOQLVAtOcb399OnTFRERIV9fX/n6+io6OlpLliy57DKrVq1Sly5d5OXlpZYtW2rGjBlVlBYAnJdhGEr4KU13TftBB47nq5Gvl+b8NVqxvVtT/oBqxCmOAAYHB2vChAlq3bq1JOnf//63Bg0apOTkZIWFhV0w/8GDBzVgwAA9/vjjmjVrln744Qf93//9n/z9/TV48OCqjg8ATiGvsETj5m/T15uPSpJ6t/PX2/d3Uv3aHiYnA/BbNsMwDLNDVIb69evrrbfe0l/+8pcLPnv22We1cOFC7dy58/y0YcOGafPmzVq3bl25vyM3N1d+fn7KycmRr69vheQGgJpo25EcDU9I0qETBXJzsenpfu30eK+WHPVDtcT+20mOAP6a3W7X3LlzlZ+fr+jo6IvOs27dOvXt27fMtH79+mnmzJkqKSmRu7v7RZcrKipSUVHR+fe5ubkVFxwAaiDDMPSf9al67b87VWx3qEldb00ZEqUuzeqZHQ3AZThNAdy6dauio6NVWFioOnXqaP78+QoNDb3ovJmZmQoMDCwzLTAwUKWlpcrOzlbjxo0vutz48eP18ssvV3h2AKiJcs6WaOy8LVq8NVOSdGuHQE28L0J1azHkC1R3TnERiCS1a9dOKSkpWr9+vZ544gkNHTpUO3bsuOT8NlvZYYlfRsJ/O/3Xxo4dq5ycnPOv9PT0igkPADXM5vTTumPqGi3emil3V5teuCNU//pTF8ofUEM4zRFADw+P8xeBdO3aVT///LMmT56s999//4J5GzVqpMzMzDLTsrKy5ObmpgYNLn1zUk9PT3l6cv8qANZlGIY++uGQJizZqRK7oZD63oof0lmRIXXNjgbgCjhNAfwtwzDKnK/3a9HR0fr666/LTFu2bJm6du16yfP/AMDqThcUa8zcLfp25zFJUv/wRpowOEJ+3vzdBGoapyiA48aNU//+/RUSEqK8vDzNmTNHK1eu1NKlSyWdG7o9cuSIPv30U0nnrviNj49XXFycHn/8ca1bt04zZ87U7Nmzzfw1AKDa2pR6SiNnJ+vI6bPycHXR83d00MM9ml32tBkA1ZdTFMBjx47p4YcfVkZGhvz8/BQREaGlS5fqtttukyRlZGQoLS3t/PwtWrTQ4sWLNXr0aE2bNk1BQUGaMmUK9wAEgN9wOAz9a80BvfXNbpU6DDVvUEvxMZ0V3sTP7GgAroGp9wFMT0+XzWZTcHCwJGnDhg1KSEhQaGio/vrXv5oVq9y4jxAAZ3Yyv1hPfZGiFbuPS5IGRgbpjbvD5ePFkC9qNvbfJl8FHBMToxUrVkg6d2uW2267TRs2bNC4ceP0yiuvmBkNACxtw8GTGjB5jVbsPi5PNxe9cXdHTXmwE+UPcBKmFsBt27ape/fukqQvvvhC4eHh+vHHH5WQkKBPPvnEzGgAYEkOh6FpK/ZpyL/WKzO3UC39a2tB7A2Kua4p5/sBTsTUcwBLSkrO31bl22+/1Z133ilJat++vTIyMsyMBgCWk32mSKM/T9GavdmSpHuimujVu8JV29MpThcH8CumHgEMCwvTjBkztGbNGi1fvly33367JOno0aOXvR8fAKBirdt/QgMmr9GavdnycnfRP++N0Nv3R1L+ACdl6v/Zb775pu6++2699dZbGjp0qCIjIyVJCxcuPD80DACoPHaHoanf79WU7/bKYUhtAupo2kOd1TbQx+xoACqRaQXQMAy1aNFCqampstvtqlfvfw8O/+tf/6patWqZFQ0ALCErt1BPfp6iH/efkCTd3zVYL98ZLm8PV5OTAahsphbANm3aaPv27WrTpk2Zz5o3b25OKACwiDV7j2v05ynKPlOsWh6uev3ucN0dFWx2LABVxLQC6OLiojZt2ujEiRMXFEAAQOUotTs06du9mrZynwxDat/IR/ExndU6oI7Z0QBUIVMvAvnnP/+pp59+Wtu2bTMzBgBYQmZOoWL+9ZPiV5wrfzHXNdWC2Bsof4AFmfokkHr16qmgoEClpaXy8PCQt7d3mc9PnjxpUrLy4U7iAGqKFbuz9NQXm3Uyv1h1PN30xj0ddWdkkNmxAFOw/zb5KuBJkyaZ+fUA4PRK7A5NXLZb7686IEkKC/LVtJjOat6wtsnJAJjJ1AI4dOhQM78eAJzakdNnNXJ2sjalnpIkDY1uprEDOsjLnat8Aasz/Q6f+/fv18cff6z9+/dr8uTJCggI0NKlSxUSEqKwsDCz4wFAjfTtjmN6au5m5ZwtkY+Xm/45OEL9OzY2OxaAasLUi0BWrVqljh076qefftK8efN05swZSdKWLVv00ksvmRkNAGqk4lKHXvvvDj326UblnC1RZLCfFo3oRfkDUIapBfC5557Ta6+9puXLl8vDw+P89N69e2vdunUmJgOAmif9ZIHue3+dPlx7UJL06A0tNHfY9WragBvrAyjL1CHgrVu3KiEh4YLp/v7+OnHihAmJAKBmWrotQ09/uUV5haXy83bXxPsidVtooNmxAFRTphbAunXrKiMjQy1atCgzPTk5WU2aNDEpFQDUHEWldr2xaKf+vS5VktS5aV1NGRKl4Hoc9QNwaaYOAcfExOjZZ59VZmambDabHA6HfvjhB40ZM0Z/+tOfzIwGANXeoex8DZ7+4/ny97ebWurzv0VT/gD8LlNvBF1SUqJHHnlEc+bMkWEYcnNzk91uV0xMjD755BO5ulbvWxVwI0kAZvnvlqN6LnGrzhSVql4td71zfyf1bh9gdiygRmD/bXIB/MX+/fuVnJwsh8OhqKioGvNsYDYgAFWtsMSuV/67Qwk/pUmSujWvpylDotTYz/t3lgTwC/bf1eA+gJLUqlUrtWzZUpJks9lMTgMA1dP+42cU+1mSdmXmyWaTYm9urSdvbSM3V1PP5gFQA5n+V2PmzJkKDw+Xl5eXvLy8FB4erg8//NDsWABQrSxIPqKBU9dqV2aeGtT20KePdteYfu0ofwCuiqlHAF944QW9++67GjFihKKjoyVJ69at0+jRo3Xo0CG99tprZsYDANOdLbbrHwu36/ON6ZKk6JYNNPnBTgrw9TI5GYCazNRzABs2bKipU6dqyJAhZabPnj1bI0aMUHZ2tknJyodzCABUpr3H8hSbkKQ9x87IZpNG3tJGI/u0kasLp8oA14L9t8lHAO12u7p27XrB9C5duqi0tNSERABQPczdmK4Xv9qusyV2+ft4avIDnXR964ZmxwLgJEw9eeSPf/yjpk+ffsH0Dz74QA899JAJiQDAXPlFpYr7IkVPf7lFZ0vs6tWmoRaP7EX5A1ChqvwIYFxc3Pn/ttls+vDDD7Vs2TL16NFDkrR+/Xqlp6dzI2gAlrMrM1exnyVp//F8udikuNva6v9ubi0XhnwBVLAqL4DJycll3nfp0kXSuXsBSueeA+zv76/t27dXdTQAMIVhGJrzc7r+sXC7ikodCvT11JQHo3RdywZmRwPgpKq8AK5YsaKqvxIAqq28whKNm79NX28+Kkm6uZ2/3r4vUg3qeJqcDIAzqxY3ggYAK9p2JEfDE5J06ESBXF1seqZfOz3eqyVDvgAqnakFsLCwUFOnTtWKFSuUlZUlh8NR5vOkpCSTkgFA5TEMQ7PWp+rV/+5Usd2hID8vTY3prC7N6pkdDYBFmFoAH330US1fvlz33nuvunfvzmPgADi93MISPZe4RYu3ZkqSbu0QqIn3RahuLQ+TkwGwElML4KJFi7R48WLdcMMNZsYAgCqx5fBpxSYkKf3kWbm72vTs7e31l54t+McvgCpnagFs0qSJfHx8zIwAAJXOMAx9/MMhjV+yUyV2Q8H1vBUf01mdQuqaHQ2ARZl6I+i3335bzz77rFJTU82MAQCVJqegRH/7zya98t8dKrEbuj2skRaN7EX5A2AqU48Adu3aVYWFhWrZsqVq1aold3f3Mp+fPHnSpGQAcO2S0k5pREKyjpw+Kw9XF/39Dx30p+hmDPkCMJ2pBXDIkCE6cuSI3njjDQUGBvJHEYBTcDgMfbj2gP65dLdKHYaaNailaTGdFd7Ez+xoACDJ5AL4448/at26dYqMjDQzBgBUmFP5xXpq7mZ9vytLknRHRGONv6ejfLzcf2dJAKg6phbA9u3b6+zZs2ZGAIAK8/Ohkxo5O1kZOYXycHPRSwNDFdO9KaMbAKodUwvghAkT9NRTT+n1119Xx44dLzgH0NfX16RkAFB+Doeh6av2653le2R3GGrZsLbiYzorNIi/YQCqJ5thGIZZX+7icu4i5N/+69gwDNlsNtntdjNilVtubq78/PyUk5NDWQUsKvtMkUZ/nqI1e7MlSXdHNdFrd4WrtidP2gSqK/bfJh8BXLFihZlfDwDXZN3+Exo1J1lZeUXycnfRK3eG676uwQz5Aqj2TC2AN910k5lfDwBXxe4wFP/9Pk3+bo8chtQmoI6mPdRZbQO5sT2AmsHUArh69erLfn7jjTdWURIAKJ+svEI9OSdFP+4/IUm6r0uwXh4UploeDPkCqDlM/Yt18803XzDt10Mn1f0cQADWsnZvtp78PEXZZ4pUy8NVr90Vrns6B5sdCwCumKmPgjt16lSZV1ZWlpYuXapu3bpp2bJl5f4548ePV7du3eTj46OAgADddddd2r1792WXWblypWw22wWvXbt2XeuvBcDJlNodenvZbj380U/KPlOk9o18tHB4T8ofgBrL1COAfn4X3hX/tttuk6enp0aPHq1NmzaV6+esWrVKsbGx6tatm0pLS/X3v/9dffv21Y4dO1S7du3LLrt79+4yVwD5+/tf2S8BwKll5hRq5JxkbTh47tGUQ7o31UsDQ+Xl7mpyMgC4etXypBV/f//fPYL3a0uXLi3z/uOPP1ZAQIA2bdr0u+cRBgQEqG7dulcTE4CTW7k7S3FfbNbJ/GLV9nDV+MERujMyyOxYAHDNTC2AW7ZsKfPeMAxlZGRowoQJ1/R4uJycHElS/fr1f3feqKgoFRYWKjQ0VM8//7x69+59yXmLiopUVFR0/n1ubu5VZwRQfZXYHXpn+R5NX7lfkhTa2FfTHuqsFg0vP6IAADWFqQWwU6dOstls+u29qHv06KGPPvroqn6mYRiKi4tTz549FR4efsn5GjdurA8++EBdunRRUVGR/vOf/6hPnz5auXLlJY8ajh8/Xi+//PJV5QJQMxw9fVYjZidrU+opSdKfoptp3IAODPkCcCqmPgkkNTW1zHsXFxf5+/vLy8vrqn9mbGysFi1apLVr1yo4+MpO0B44cKBsNpsWLlx40c8vdgQwJCTE0ncSB5zJtzuOacyXm3W6oEQ+nm56894IDejY2OxYACoYTwIx+Qhgs2bNKvTnjRgxQgsXLtTq1auvuPxJ5448zpo165Kfe3p6ytPT81oiAqiGiksd+ufSXfpw7UFJUkSwn+KHdFbTBrVMTgYAlcP0i0C+++47fffdd8rKypLD4SjzWXmHgQ3D0IgRIzR//nytXLlSLVq0uKosycnJatyYf+0DVpJ+skDDZydrc/ppSdKjN7TQc/3by8PN1LtkAUClMrUAvvzyy3rllVfUtWtXNW7c+KqfnxkbG6uEhAR99dVX8vHxUWZmpqRzt5nx9vaWJI0dO1ZHjhzRp59+KkmaNGmSmjdvrrCwMBUXF2vWrFlKTExUYmJixfxyAKq9pdsy9cyXm5VbWCpfLzdNvC9SfcMamR0LACqdqQVwxowZ+uSTT/Twww9f08+ZPn26pAufLPLxxx/rkUcekSRlZGQoLS3t/GfFxcUaM2aMjhw5Im9vb4WFhWnRokUaMGDANWUBUP0Vldo1fvEuffLjIUlSVNO6mjokSsH1GPIFYA2mXgTSoEEDbdiwQa1atTIrwjXhJFKg5kk9ka/hCcnaeuTc7aL+dmNLjenXTu6uDPkCVsH+2+RHwT322GNKSEgwMwIAC1m0JUN3TFmrrUdyVK+Wuz56pKvGDuhA+QNgOaYOARcWFuqDDz7Qt99+q4iICLm7u5f5/J133jEpGQBnUlhi12uLdmjW+nOngXRrXk9ThkSpsZ+3yckAwBymPwmkU6dOkqRt27aV+exqLwgBgF87cPyMYhOStTPj3JN7/u/mVoq7ra3cOOoHwMJMLYArVqww8+sBOLmvUo5o3Lytyi+2q0FtD73zQCfd1Nbf7FgAYDrT7wMIABXtbLFdL3+9XXN+Tpck9WhZX5MfjFKg79U/ZQgAnAkFEIBT2ZeVp9jPkrX7WJ5sNmnELW00qk8bubpwWgkA/IICCMBpfLnpsF5YsE1nS+zy9/HU5Ac66frWDc2OBQDVDgUQQI1XUFyq5xds07ykI5Kknq0b6t0HOsnfh2d3A8DFUAAB1Gi7MnMV+1mS9h/Pl4tNirutrZ64uTVDvgBwGabfB+E///mPbrjhBgUFBSk1NVXSuef0fvXVVyYnA1CdGYahORvSNCj+B+0/nq9AX0/NfryHht/C+X4A8HtMLYDTp09XXFycBgwYoNOnT8tut0uS6tatq0mTJpkZDUA1dqaoVE9+nqLn5m1VUalDN7X11+KRvXRdywZmRwOAGsHUAjh16lT961//0t///ne5urqen961a1dt3brVxGQAqqvtR3M0cOpafZVyVK4uNj17e3t9/Eg3NajD+X4AUF6mngN48OBBRUVFXTDd09NT+fn5JiQCUF0ZhqFZP6Xp1f/uUHGpQ0F+XpoaE6UuzeqbHQ0AahxTC2CLFi2UkpKiZs2alZm+ZMkShYaGmpQKQHWTW1iisYlbtWhrhiTp1g4BeuveSNWr7WFyMgComUwtgE8//bRiY2NVWFgowzC0YcMGzZ49W+PHj9eHH35oZjQA1cSWw6c1PCFZaScL5OZi03P92+svPVvwvHAAuAamFsA///nPKi0t1TPPPKOCggLFxMSoSZMmmjx5sh588EEzowEwmWEY+uTHQ3pj8U6V2A01qeut+JgoRTWtZ3Y0AKjxbIZhGGaHkKTs7Gw5HA4FBASYHaXccnNz5efnp5ycHPn6+podB3AaOQUleiZxs77ZfkyS1C8sUP8cHCm/Wu4mJwPgDNh/V6MbQTdsyOOaAEjJaac0PCFZR06flYeri/7+hw76U3QzhnwBoAKZWgBPnDihF198UStWrFBWVpYcDkeZz0+ePGlSMgBVzTAMfbjmoN5cukulDkPNGtRS/JDO6hjsZ3Y0AHA6phbAP/7xj9q/f7/+8pe/KDAwkH/hAxZ1Kr9YY+Zu1ne7siRJf4horPH3dJSvF0O+AFAZTC2Aa9eu1dq1axUZGWlmDAAm2njopEbMTlZGTqE83Fz04h2heui6pvyDEAAqkakFsH379jp79qyZEQCYxOEwNGP1fr29bI/sDkMtG9ZWfExnhQZZ84RsAKhKphbA9957T88995xefPFFhYeHy9297HCPVa/MAZzdiTNFivtis1btOS5JuqtTkF67u6PqeFab69IAwKmZ+te2bt26ysnJ0S233FJmumEYstlsstvtJiUDUFnWHzihUXOSdSy3SF7uLnr5zjDd3zWEIV8AqEKmFsCHHnpIHh4eSkhI4CIQwMnZHYamrdinSd/ukcOQWgfU0bSYzmrXyMfsaABgOaYWwG3btik5OVnt2rUzMwaASpaVV6jRn6foh30nJEn3dgnWK4PCVMuDIV8AMIOpf327du2q9PR0CiDgxH7Yl61Rc1KUfaZI3u6ueu2ucA3uEmx2LACwNFML4IgRIzRq1Cg9/fTT6tix4wUXgURERJiUDMC1sjsMTf5ur6Z+v1eGIbUL9NG0h6LUOoAhXwAwm6nPAnZxcblgms1mqzEXgfAsQeDijuUWauTsZP108NzTfIZ0D9FLA8Pk5e5qcjIAYP8tmXwE8ODBg2Z+PYBKsGrPcY3+PEUn84tV28NVb9zTUYM6NTE7FgDgV0wtgM2aNTPz6wFUoFK7Q28v36PpK/dLkkIb+yo+Jkot/euYnAwA8FumX4K3f/9+TZo0STt37pTNZlOHDh00atQotWrVyuxoAMrp6OmzGjk7WRtTT0mSHu7RTH//QweGfAGgmrrwJLwq9M033yg0NFQbNmxQRESEwsPD9dNPPyksLEzLly83MxqAcvp+1zENmLJGG1NPycfTTdNiOuvVu8IpfwBQjZl6EUhUVJT69eunCRMmlJn+3HPPadmyZUpKSjIpWflwEimsrMTu0D+X7tK/1pw7l7djEz/Fx0SpWYPaJicDgMtj/21yAfTy8tLWrVvVpk2bMtP37NmjiIgIFRYWmpSsfNiAYFXpJws0YnayUtJPS5L+fENzPde/vTzdOOoHoPpj/23yOYD+/v5KSUm5oACmpKQoICDApFQALueb7Zl6eu5m5RaWytfLTW/dF6l+YY3MjgUAuAKmFsDHH39cf/3rX3XgwAFdf/31stlsWrt2rd5880099dRTZkYD8BtFpXZNWLJLH/9wSJLUKaSupg6JUkj9WuYGAwBcMVOHgA3D0KRJk/T222/r6NGjkqSgoCA9/fTTGjlypGw2m1nRyoVDyLCKtBMFik1I0tYjOZKkx3u10NP92svDzdTryADgqrD/NrkA/lpeXp4kycen5jwmig0IVrB4a4ae/XKL8opKVbeWu96+L1J9OgSaHQsArhr7b5OHgM+ePSvDMFSrVi35+PgoNTVVM2fOVGhoqPr27WtmNMDyCkvsem3RDs1anyZJ6tqsnqYMiVJQXW+TkwEArpWpBXDQoEG65557NGzYMJ0+fVrdu3eXh4eHsrOz9c477+iJJ54wMx5gWQez8xX7WZJ2ZORKkv7v5laKu62t3FwZ8gUAZ2DqX/OkpCT16tVLkvTll1+qUaNGSk1N1aeffqopU6aYGQ2wrK9SjuiOKWu0IyNXDWp76N+Pdtczt7en/AGAEzH1CGBBQcH5c/6WLVume+65Ry4uLurRo4dSU1PNjAZYTmGJXf9YuF1zfk6XJF3Xor6mDIlSoK+XyckAABXN1H/St27dWgsWLFB6erq++eab8+f9ZWVlWfakTMAM+7LyNCj+B835OV02mzSyTxt99th1lD8AcFKmFsAXX3xRY8aMUfPmzXXdddcpOjpa0rmjgVFRUWZGAywjcdNhDZz6g3Yfy1PDOp6a9ZfrON8PAJycqX/h7733XqWlpWnjxo1aunTp+el9+vTRu+++W+6fM378eHXr1k0+Pj4KCAjQXXfdpd27d//ucqtWrVKXLl3k5eWlli1basaMGVf1ewA1UUFxqcbM3ayn5m7W2RK7bmjdQItH9dQNrRuaHQ0AUMlM/yd+o0aNFBUVJReX/0Xp3r272rdvX+6fsWrVKsXGxmr9+vVavny5SktL1bdvX+Xn519ymYMHD2rAgAHq1auXkpOTNW7cOI0cOVKJiYnX9PsANcHuzDzdGf+Dvtx0WC42Ke62tvr00esU4MOQLwBYQbW5EXRFOn78uAICArRq1SrdeOONF53n2Wef1cKFC7Vz587z04YNG6bNmzdr3bp15foebiSJmsYwDH2xMV0vLdyuwhKHAn09NfnBKPVo2cDsaABQZdh/m3wVcGXJyTn3uKr69etfcp5169ZdcLPpfv36aebMmSopKZG7u/sFyxQVFamoqOj8+9zc3ApKDFS+M0Wlen7+Vi1IOffYxRvb+uvd+yPVoI6nyckAAFXN9CHgimYYhuLi4tSzZ0+Fh4dfcr7MzEwFBpZ9nFVgYKBKS0uVnZ190WXGjx8vPz+/86+QkJAKzQ5Ulh1Hc3Xn1LVakHJUri42PXN7O33ySDfKHwBYlNMdARw+fLi2bNmitWvX/u68NputzPtfRsN/O/0XY8eOVVxc3Pn3ubm5lEBUa4Zh6LOf0vTKf3eouNShxn5emjokSl2bX/roOADA+TlVARwxYoQWLlyo1atXKzg4+LLzNmrUSJmZmWWmZWVlyc3NTQ0aXPx8KE9PT3l6csQENUNuYYnGztuqRVsyJEl92gdo4n2Rqlfbw+RkAACzOUUBNAxDI0aM0Pz587Vy5Uq1aNHid5eJjo7W119/XWbasmXL1LVr14ue/wfUJFsP52j47CSlniiQm4tNz/Vvr7/0bHHJo9sAAGtxinMAY2NjNWvWLCUkJMjHx0eZmZnKzMzU2bNnz88zduxY/elPfzr/ftiwYUpNTVVcXJx27typjz76SDNnztSYMWPM+BWACmEYhj754aAGT/9RqScK1KSut+YOi9ZjvVpS/gAA5znFEcDp06dLkm6++eYy0z/++GM98sgjkqSMjAylpaWd/6xFixZavHixRo8erWnTpikoKEhTpkzR4MGDqyo2UKFyCkr0TOJmfbP9mCSpb2ig3ro3Un61OKINACjLKe8DWFW4jxCqi5T00xqekKTDp87K3dWmcQM66JHrm3PUDwAugv23kxwBBKzKMAzNXHtQE5bsUqnDUNP6tRQfE6WI4LpmRwMAVGMUQKCGOl1QrDFzN+vbnVmSpD90bKzxgzvK14shXwDA5VEAgRpoU+pJjUhI1tGcQnm4ueiFO0L1x+uaMuQLACgXCiBQgzgcht5ffUATl+2W3WGoRcPaio+JUliQn9nRAAA1CAUQqCFOnClS3BebtWrPcUnSoE5Bev3ujqrjyf/GAIArw54DqAF+OnBCI+ck61hukTzdXPTKoDDd3zWEIV8AwFWhAALVmN1h6L0V+/Tut3vkMKRW/rX13kNd1K6Rj9nRAAA1GAUQqKaO5xVp9OcpWrsvW5I0uHOwXr0rTLU8+N8WAHBt2JMA1dCP+7I1ck6Kss8UydvdVa/eFa57uwSbHQsA4CQogEA1YncYmvzdXk39fq8MQ2oX6KP4mCi1CWTIFwBQcSiAQDVxLLdQo+Yka/2Bk5KkB7uF6KWBYfL2cDU5GQDA2VAAgWpg1Z7jivs8RSfyi1Xbw1Vv3NNRgzo1MTsWAMBJUQABE5XaHXpn+R69t3K/JKlDY19Ni4lSS/86JicDADgzCiBgkoycsxo5O1k/HzolSfpjj6Z6/g+h8nJnyBcAULkogIAJvt91TE99sVmnCkpUx9NNEwZ31B0RQWbHAgBYBAUQqEIldofe+ma3Plh9QJLUsYmf4mOi1KxBbZOTAQCshAIIVJHDpwo0YnayktNOS5Ieub65xg5oL083hnwBAFWLAghUgWXbMzVm7mblFpbK18tN/7w3UreHNzI7FgDAoiiAQCUqLnVo/JKd+viHQ5KkyJC6ih8SpZD6tcwNBgCwNAogUEnSThRo+OwkbTmcI0l6vFcLPd2vvTzcXExOBgCwOgogUAkWb83Qs19uUV5RqerWctfEeyN1a2ig2bEAAJBEAQQqVGGJXa8v2qn/rE+VJHVpVk9Th0QpqK63yckAAPgfCiBQQQ5m5yv2syTtyMiVJD1xcyvF3dZW7q4M+QIAqhcKIFABvko5onHztiq/2K76tT30zv2RurldgNmxAAC4KAogcA0KS+x6+evtmr0hXZLUvUV9TXkwSo38vExOBgDApVEAgau0L+uMhickaVdmnmw2aXjv1hrVp43cGPIFAFRzFEDgKiRuOqznF2zT2RK7Gtbx1KQHOqlnm4ZmxwIAoFwogMAVKCgu1YtfbdeXmw5Lkq5v1UCTHuykAB+GfAEANQcFECinPcfyFPtZkvZmnZGLTXry1raK7d1ari42s6MBAHBFKIDA7zAMQ19sTNdLC7ersMShAB9PTX4wStGtGpgdDQCAq0IBBC7jTFGpnp+/VQtSjkqSerVpqHcf6KSGdTxNTgYAwNWjAAKXsONoroYnJOlAdr5cXWx6qm9bDbuxlVwY8gUA1HAUQOA3DMNQwoY0vfz1DhWXOtTYz0tThkSpW/P6ZkcDAKBCUACBX8krLNFz87Zq0ZYMSdIt7QM08b5I1a/tYXIyAAAqDgUQ+P+2HclRbEKSUk8UyM3Fpmdub6fHerZkyBcA4HQogLA8wzD07x8P6Y3Fu1Rsd6hJXW9NjYlS56b1zI4GAECloADC0nLOlujZL7do6fZMSVLf0EC9dW+k/Gq5m5wMAIDKQwGEZaWkn9bwhCQdPnVW7q42jRvQQY9c31w2G0O+AADnRgGE5RiGoZlrD2rCkl0qdRhqWr+W4mOiFBFc1+xoAABUCQogLOV0QbHGzN2sb3dmSZIGdGykCYMj5OvFkC8AwDoogLCMTaknNSIhWUdzCuXh5qIX7gjVH69rypAvAMByKIBweg6HoQ/WHNBb3+yW3WGoRcPaio+JUliQn9nRAAAwBQUQTu3EmSI9NXezVu4+Lkm6MzJIb9zTUXU82fQBANbFXhBO66cDJzRyTrKO5RbJ081F/7gzTA92C2HIFwBgeRRAOB27w9B7K/bp3W/3yGFIrfxra9pDndW+ka/Z0QAAqBZczA5QUVavXq2BAwcqKChINptNCxYsuOz8K1eulM1mu+C1a9euqgmMSnE8r0hDP9qgt5efK3/3dG6ihcN7Uv4AAPgVpzkCmJ+fr8jISP35z3/W4MGDy73c7t275ev7v3Lg7+9fGfFQBX7cl61Rn6foeF6RvN1d9cqgMN3XNcTsWAAAVDtOUwD79++v/v37X/FyAQEBqlu3bsUHQpWxOwxN/m6vpn6/V4YhtQ2so2kxndUm0MfsaAAAVEtOUwCvVlRUlAoLCxUaGqrnn39evXv3vuS8RUVFKioqOv8+Nze3KiLiMo7lFmrUnGStP3BSkvRA1xD9484weXu4mpwMAIDqy2nOAbxSjRs31gcffKDExETNmzdP7dq1U58+fbR69epLLjN+/Hj5+fmdf4WEMLxoptV7jmvA5DVaf+Ckanm4atIDnfTmvRGUPwAAfofNMAzD7BAVzWazaf78+brrrruuaLmBAwfKZrNp4cKFF/38YkcAQ0JClJOTU+Y8QlSuUrtD7367R++t3C/DkDo09tW0mCi19K9jdjQAQA2Qm5srPz8/S++/LT8E/Gs9evTQrFmzLvm5p6enPD09qzARfisj56xGzk7Wz4dOSZIeuq6pXrgjVF7uHPUDAKC8KIC/kpycrMaNG5sdA5ewYleW4r5I0amCEtXxdNOEwR11R0SQ2bEAAKhxnKYAnjlzRvv27Tv//uDBg0pJSVH9+vXVtGlTjR07VkeOHNGnn34qSZo0aZKaN2+usLAwFRcXa9asWUpMTFRiYqJZvwIuocTu0MRvduv91QckSeFNfBU/pLOaN6xtcjIAAGompymAGzduLHMFb1xcnCRp6NCh+uSTT5SRkaG0tLTznxcXF2vMmDE6cuSIvL29FRYWpkWLFmnAgAFVnh2XdvhUgUbMTlZy2mlJ0iPXN9fYAe3l6caQLwAAV8spLwKpKpxEWrmWbc/U019uUc7ZEvl4uemteyN0ezhD9ACAa8P+24mOAMJ5FJc6NH7JTn38wyFJUmSwn+JjOiukfi1zgwEA4CQogKhW0k4UaPjsJG05nCNJeqxnCz1ze3t5uFn2lpUAAFQ4CiCqjSVbM/TMl1uUV1QqP293vX1fpG4NDTQ7FgAATocCCNMVltj1xuKd+nRdqiSpS7N6mjIkSk3qepucDAAA50QBhKkOZudreEKSth8991zlYTe10lN928rdlSFfAAAqCwUQplm4+ajGzduqM0Wlql/bQ2/fH6ne7QLMjgUAgNOjAKLKFZbY9fLXOzR7w7n7MnZvXl9ThkSpkZ+XyckAALAGCiCq1L6sMxqekKRdmXmy2aThvVtrVJ82cmPIFwCAKkMBRJWZl3RYzy/YpoJiuxrW8dC7D3RSrzb+ZscCAMByKICodAXFpXrpq+2au+mwJCm6ZQNNfrCTAnwZ8gUAwAwUQFSqPcfyFPtZkvZmnZGLTRrVp62G39Jari42s6MBAGBZFEBUCsMwNHfjYb24cJsKSxzy9/HUlAejFN2qgdnRAACwPAogKlx+UameX7BN85OPSJJ6tWmodx/opIZ1PE1OBgAAJAogKtiOo7kanpCkA9n5cnWxKe62tnriplZyYcgXAIBqgwKICmEYhhI2pOnlr3eouNShRr5emhoTpW7N65sdDQAA/AYFENcsr7BEY+dt1X+3ZEiSerfz19v3d1L92h4mJwMAABdDAcQ12XYkR7EJSUo9USA3F5ueub2dHuvZkiFfAACqMQogrophGPp0XapeX7RTxXaHmtT11pQhUerSrJ7Z0QAAwO+gAOKK5Zwt0bNfbtHS7ZmSpFs7BGrifRGqW4shXwAAagIKIK5ISvppDU9I0uFTZ+XuatPY/h305xuay2ZjyBcAgJqCAohyMQxDM9ce1JtLd6nEbiikvrfih3RWZEhds6MBAIArRAHE7zpdUKwxc7fo253HJEn9wxtpwuAI+Xm7m5wMAABcDQogLmtT6kmNSEjW0ZxCebi66Pk7OujhHs0Y8gUAoAajAOKiHA5DH6w5oLe+2S27w1DzBrUUH9NZ4U38zI4GAACuEQUQFzhxpkhPzd2slbuPS5IGRgbpjbvD5ePFkC8AAM6AAogyNhw8qRGzk3Qst0iebi76x51herBbCEO+AAA4EQogJJ0b8n1v5T69s3yPHIbU0r+2psV0VofGvmZHAwAAFYwCCB3PK1LcFylaszdbknRPVBO9ele4anuyeQAA4IzYw1vcj/uyNerzFB3PK5KXu4teGRSu+7oEM+QLAIATowBalN1haMp3ezXl+70yDKlNQB2991BntQn0MTsaAACoZBRAC8rKLdSoOSlad+CEJOn+rsF6+c5weXu4mpwMAABUBQqgxazec1yjP0/Rifxi1fJw1et3h+vuqGCzYwEAgCpEAbSIUrtD7367R++t3C/DkNo38lF8TGe1DqhjdjQAAFDFKIAWkJFzVqNmp2jDoZOSpJjrmurFO0Ll5c6QLwAAVkQBdHIrdmUp7osUnSooUR1PN42/p6MGRgaZHQsAAJiIAuikSuwOTfxmt95ffUCSFN7EV/FDOqt5w9omJwMAAGajADqhI6fPakRCkpLSTkuShkY307g/dJCnG0O+AACAAuh0lu84pjFzNyvnbIl8vNz0z8ER6t+xsdmxAABANUIBdBLFpQ5NWLJLH/1wUJIUGeyn+JjOCqlfy+RkAACguqEAOoH0kwUanpCkzYdzJEl/6dlCz97eXh5uLiYnAwAA1REFsIZbsjVDzyRuUV5hqfy83TXxvkjdFhpodiwAAFCNUQBrqMISu95YvFOfrkuVJHVuWldThkQpuB5DvgAA4PIogDXQoex8xSYkafvRXEnS325qqTF928ndlSFfAADw+yiANczCzUc1bt5WnSkqVb1a7nrn/k7q3T7A7FgAAKAGoQDWEIUldr389Q7N3pAmSerevL4mD+mkxn7eJicDAAA1jdOMGa5evVoDBw5UUFCQbDabFixY8LvLrFq1Sl26dJGXl5datmypGTNmVH7Qq7D/+BndNe0Hzd6QJptNGt67tRIev47yBwAArorTFMD8/HxFRkYqPj6+XPMfPHhQAwYMUK9evZScnKxx48Zp5MiRSkxMrOSkV2Z+8mENnLpWuzLz1LCOhz59tLvG9GsnN873AwAAV8lphoD79++v/v37l3v+GTNmqGnTppo0aZIkqUOHDtq4caMmTpyowYMHV1LK8isoLtVLX23X3E2HJUnRLRto8oOdFODrZXIyAABQ0zlNAbxS69atU9++fctM69evn2bOnKmSkhK5u7tfsExRUZGKiorOv8/Nza2UbHuO5Sn2syTtzTojm00a1aeNRtzSRq4utkr5PgAAYC2WHUfMzMxUYGDZGyYHBgaqtLRU2dnZF11m/Pjx8vPzO/8KCQmplGzx3+/T3qwz8vfx1GePXacnb21L+QMAABXGsgVQkmy2sqXKMIyLTv/F2LFjlZOTc/6Vnp5eKbleHRSue7sEa/HIXrq+VcNK+Q4AAGBdlh0CbtSokTIzM8tMy8rKkpubmxo0aHDRZTw9PeXp6Vnp2fxqnXukGwAAQGWw7BHA6OhoLV++vMy0ZcuWqWvXrhc9/w8AAMBZOE0BPHPmjFJSUpSSkiLp3G1eUlJSlJZ27sbJY8eO1Z/+9Kfz8w8bNkypqamKi4vTzp079dFHH2nmzJkaM2aMGfEBAACqjNMMAW/cuFG9e/c+/z4uLk6SNHToUH3yySfKyMg4XwYlqUWLFlq8eLFGjx6tadOmKSgoSFOmTKkWt4ABAACoTDbjlysfcMVyc3Pl5+ennJwc+fr6mh0HAACUA/tvJxoCBgAAQPlQAAEAACyGAggAAGAxFEAAAACLoQACAABYDAUQAADAYiiAAAAAFkMBBAAAsBgKIAAAgMU4zaPgzPDLQ1Ryc3NNTgIAAMrrl/22lR+GRgG8Bnl5eZKkkJAQk5MAAIArlZeXJz8/P7NjmIJnAV8Dh8Oho0ePysfHRzabrUJ/dm5urkJCQpSenm7Z5xSWF+uq/FhX5ce6Kj/WVfmxrsqvMteVYRjKy8tTUFCQXFyseTYcRwCvgYuLi4KDgyv1O3x9ffkjUU6sq/JjXZUf66r8WFflx7oqv8paV1Y98vcLa9ZeAAAAC6MAAgAAWAwFsJry9PTUSy+9JE9PT7OjVHusq/JjXZUf66r8WFflx7oqP9ZV5eIiEAAAAIvhCCAAAIDFUAABAAAshgIIAABgMRRAAAAAi6EAmuS9995TixYt5OXlpS5dumjNmjWXnX/VqlXq0qWLvLy81LJlS82YMaOKklYPV7K+Vq5cKZvNdsFr165dVZi46q1evVoDBw5UUFCQbDabFixY8LvLWHW7utJ1ZdVtSpLGjx+vbt26ycfHRwEBAbrrrru0e/fu313OitvW1awrq25b06dPV0RExPmbPEdHR2vJkiWXXcaK21RlogCa4PPPP9eTTz6pv//970pOTlavXr3Uv39/paWlXXT+gwcPasCAAerVq5eSk5M1btw4jRw5UomJiVWc3BxXur5+sXv3bmVkZJx/tWnTpooSmyM/P1+RkZGKj48v1/xW3q6udF39wmrblHRupxsbG6v169dr+fLlKi0tVd++fZWfn3/JZay6bV3NuvqF1bat4OBgTZgwQRs3btTGjRt1yy23aNCgQdq+fftF57fqNlWpDFS57t27G8OGDSszrX379sZzzz130fmfeeYZo3379mWm/e1vfzN69OhRaRmrkytdXytWrDAkGadOnaqCdNWTJGP+/PmXncfq29UvyrOu2Kb+Jysry5BkrFq16pLzsG2dU551xbb1P/Xq1TM+/PDDi37GNlXxOAJYxYqLi7Vp0yb17du3zPS+ffvqxx9/vOgy69atu2D+fv36aePGjSopKam0rNXB1ayvX0RFRalx48bq06ePVqxYUZkxayQrb1dXi21KysnJkSTVr1//kvOwbZ1TnnX1CytvW3a7XXPmzFF+fr6io6MvOg/bVMWjAFax7Oxs2e12BQYGlpkeGBiozMzMiy6TmZl50flLS0uVnZ1daVmrg6tZX40bN9YHH3ygxMREzZs3T+3atVOfPn20evXqqohcY1h5u7pSbFPnGIahuLg49ezZU+Hh4Zecj22r/OvKytvW1q1bVadOHXl6emrYsGGaP3++QkNDLzov21TFczM7gFXZbLYy7w3DuGDa781/senO6krWV7t27dSuXbvz76Ojo5Wenq6JEyfqxhtvrNScNY3Vt6vyYps6Z/jw4dqyZYvWrl37u/Nafdsq77qy8rbVrl07paSk6PTp00pMTNTQoUO1atWqS5ZAq29TFY0jgFWsYcOGcnV1veDoVVZW1gX/uvlFo0aNLjq/m5ubGjRoUGlZq4OrWV8X06NHD+3du7ei49VoVt6uKoLVtqkRI0Zo4cKFWrFihYKDgy87r9W3rStZVxdjlW3Lw8NDrVu3VteuXTV+/HhFRkZq8uTJF53X6ttUZaAAVjEPDw916dJFy5cvLzN9+fLluv766y+6THR09AXzL1u2TF27dpW7u3ulZa0OrmZ9XUxycrIaN25c0fFqNCtvVxXBKtuUYRgaPny45s2bp++//14tWrT43WWsum1dzbq6GKtsW79lGIaKioou+plVt6lKZdLFJ5Y2Z84cw93d3Zg5c6axY8cO48knnzRq165tHDp0yDAMw3juueeMhx9++Pz8Bw4cMGrVqmWMHj3a2LFjhzFz5kzD3d3d+PLLL836FarUla6vd99915g/f76xZ88eY9u2bcZzzz1nSDISExPN+hWqRF5enpGcnGwkJycbkox33nnHSE5ONlJTUw3DYLv6tStdV1bdpgzDMJ544gnDz8/PWLlypZGRkXH+VVBQcH4etq1zrmZdWXXbGjt2rLF69Wrj4MGDxpYtW4xx48YZLi4uxrJlywzDYJuqChRAk0ybNs1o1qyZ4eHhYXTu3LnMbQKGDh1q3HTTTWXmX7lypREVFWV4eHgYzZs3N6ZPn17Fic11JevrzTffNFq1amV4eXkZ9erVM3r27GksWrTIhNRV65fbSfz2NXToUMMw2K5+7UrXlVW3KcMwLrqeJBkff/zx+XnYts65mnVl1W3r0UcfPf833d/f3+jTp8/58mcYbFNVwWYY//8sSgAAAFgC5wACAABYDAUQAADAYiiAAAAAFkMBBAAAsBgKIAAAgMVQAAEAACyGAggAAGAxFEAAAACLoQACAABYDAUQAADAYiiAAAAAFkMBBAAAsBgKIAAAgMVQAAEAACyGAggAAGAxFEAAAACLoQACAABYDAUQAADAYiiAAAAAFkMBBAAAsBgKIAAAgMVQAAEAACyGAggAAGAxFEAAAACLoQACAABYDAUQAADAYiiAAAAAFkMBBAAAsBgKIAAAgMVQAAEAACyGAggAAGAx/w8cblHe1cBwLQAAAABJRU5ErkJggg==", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous view', 'arrow-left', 'back'), ('Forward', 'Forward to next view', 'arrow-right', 'forward'), ('Pan', 'Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect', 'arrows', 'pan'), ('Zoom', 'Zoom to rectangle\\nx/y fixes axis', 'square-o', 'zoom'), ('Download', 'Download plot', 'floppy-o', 'save_figure')]))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display latex\n", "\n", "#%matplotlib notebook\n", "%matplotlib widget\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test of the solution proposed at [#33469](https://github.com/sagemath/sage/issues/33469):" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\verb|<class|\\verb| |\\verb|'IPython.core.display.DisplayObject'>|, \\verb|<class|\\verb| |\\verb|'ipywidgets.widgets.widget.Widget'>|\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\verb||, \\verb||\\right)$" ], "text/plain": [ "(,\n", " )" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sage.repl.display.formatter.IPYTHON_NATIVE_TYPES" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\verb|<class|\\verb| |\\verb|'IPython.core.display.DisplayObject'>|, \\verb|<class|\\verb| |\\verb|'ipywidgets.widgets.widget.Widget'>|, \\verb|<class|\\verb| |\\verb|'ipywidgets.widgets.widget.Widget'>|\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\verb||, \\verb||, \\verb||\\right)$" ], "text/plain": [ "(,\n", " ,\n", " )" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import ipywidgets\n", "sage.repl.display.formatter.IPYTHON_NATIVE_TYPES += (ipywidgets.Widget,)\n", "\n", "sage.repl.display.formatter.IPYTHON_NATIVE_TYPES" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bc9aac41e1214cdfb84f800df8c1bbeb", "version_major": 2, "version_minor": 0 }, "image/png": "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ISHB3r59u/3YY4/Z9erVs/fv32/btm0/9dRT9pAhQ8rm/+677+y6deva48aNs7dv324nJCTYvr6+9r/+9S9Tv0K1utj19dprr9mLFy+2d+/ebW/dutV+6qmnbEn2okWLTP0K1eLkyZN2amqqnZqaakuyX331VTs1NdU+cOCAbdtsVz91sevKqduUbdv2Aw88YAcHB9urVq2yMzIyyl75+fll87BtnXEp68qp29bEiRPtNWvW2Pv27bM3b95sT5o0yfby8rKXL19u2zbbVHWgABry9ttv223atLH9/Pzsvn37lrtNQFxcnH3dddeVm3/VqlV2nz59bD8/P7tt27b21KlTqzmxWRezvl588UW7Q4cOdkBAgN2wYUP76quvtpcuXWogdfX68XYSP3/FxcXZts129VMXu66cuk3Ztn3W9STJnjlzZtk8bFtnXMq6cuq2NWLEiLK/05s2bWr369evrPzZNttUdbBs+//OogQAAIAjcA4gAACAw1AAAQAAHIYCCAAA4DAUQAAAAIehAAIAADgMBRAAAMBhKIAAAAAOQwEEAABwGAogAACAw1AAAQAAHIYCCAAA4DAUQAAAAIehAAIAADgMBRAAAMBhKIAAAAAOQwEEAABwGAogAACAw1AAAQAAHIYCCAAA4DAUQAAAAIehAAIAADgMBRAAAMBhKIAAAAAOQwEEAABwGAogAACAw1AAAQAAHIYCCAAA4DAUQAAAAIehAAIAADgMBRAAAMBhKIAAAAAO8/8A44ZlIT5Zn4wAAAAASUVORK5CYII=", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous view', 'arrow-left', 'back'), ('Forward', 'Forward to next view', 'arrow-right', 'forward'), ('Pan', 'Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect', 'arrows', 'pan'), ('Zoom', 'Zoom to rectangle\\nx/y fixes axis', 'square-o', 'zoom'), ('Download', 'Download plot', 'floppy-o', 'save_figure')]))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib widget\n", "import matplotlib.pyplot as plt\n", "plt.plot([1, 2, 3, 4])\n", "plt.ylabel('some numbers')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of interact in the scope of `%display latex`\n", "\n", "First we test it with `%display plain`:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e88ee5c4dc1541a291012d6487539cd1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Interactive function with 1 widget\n", " n: IntSlider(value=10, description='n', max=30, min=-10)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%display plain \n", "\n", "@interact\n", "def f(n=10):\n", " print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and then we switch on the LaTeX display:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b5c7ab1ada4540faa0909fbfd2b6df60", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Interactive function with 1 widget\n", " n: IntSlider(value=10, description='n', max=30, min=-10)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@interact\n", "def f(n=10):\n", " print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of 2d interactive plots" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ff919fc2686f4c1fa879cdeb99e8b8ca", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Interactive function with 5 widgets\n", " a: SelectionSlider(description='a', options=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), value=1)\n", " color: SageColorPicker(value='#ff0000', description='color')\n", " axes: Checkbox(value=True, description='Show axes')\n", " x_label: TransformText(value='$x$', description='x-label', layout=Layout(max_width='81em'))\n", " y_label: TransformText(value='$y$', description='y-label', layout=Layout(max_width='81em'))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@interact\n", "def _(a = slider([1..10]), \n", " color=Color('red'),\n", " axes=checkbox(True, 'Show axes'), \n", " x_label=input_box('$x$', 'x-label', str),\n", " y_label=input_box('$y$', 'y-label', str)):\n", " axes_labels = [x_label, y_label] if axes else None\n", " show(plot(cos(a*x), (x, 0, 2*pi), color=color, thickness=2), \n", " axes=axes, axes_labels=axes_labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test of 3d plots" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x, y = var('x y')\n", "g = (plot3d(sin(x*y), (x, -pi, pi), (y, -pi, pi), color='green')\n", " + sphere() \n", " + icosahedron(center=(0, 0, 2), color='red')\n", " + text3d('A nice plot', (-4, -4, 2), color='orange', \n", " fontsize='200%', fontfamily='serif', fontweight='bold'))\n", "g" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Animated 3D plots" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 20\n", "animate([plot3d(sin((x - k*pi/(n-1))*y), (x, -pi, pi), (y, -pi, pi))\n", " for k in range(n)]).interactive(delay=10)" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 10.7", "language": "sage", "name": "sagemath" }, "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.12.3" } }, "nbformat": 4, "nbformat_minor": 4 }