Skip to content

Instantly share code, notes, and snippets.

@saimn
Last active February 24, 2016 22:34
Show Gist options
  • Save saimn/f143251187f7e95fe57f to your computer and use it in GitHub Desktop.
Save saimn/f143251187f7e95fe57f to your computer and use it in GitHub Desktop.
Astropy fast reader - write benchmark
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Speed comparison for writing between io.ascii and Pandas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook compares the relative performance of the following writers for various kinds of table data:\n",
"* io.ascii.write using the legacy pure-Python writer\n",
"* io.ascii.write using the fast Cython-based writer\n",
"* pandas.to_csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Summary##\n",
"* The io.ascii fast writer is generally about 2-4 times faster than the legacy converter, although less for low-precision floats and much more for integers.\n",
"* Setting `strip_whitespace=False` can improve writing time for string values."
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Import modules"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/simon/miniconda2/lib/python2.7/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n",
" warnings.warn(self.msg_depr % (key, alt_key))\n"
]
}
],
"source": [
"import timeit\n",
"from astropy.io import ascii\n",
"import pandas\n",
"import numpy as np\n",
"from astropy.table import Table, Column\n",
"from cStringIO import StringIO\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Create a table with custom random values"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def make_table(size, n_floats, n_ints, n_strs, float_format, str_val):\n",
" cols = []\n",
" for i in xrange(n_floats):\n",
" dat = np.random.uniform(low=1, high=10, size=size) # random float values from 1 to 10\n",
" cols.append(Column(dat, name='f{}'.format(i)))\n",
" for i in xrange(n_ints):\n",
" dat = np.random.randint(low=-9999999, high=9999999, size=size) # random integers\n",
" cols.append(Column(dat, name='i{}'.format(i)))\n",
" for i in xrange(n_strs):\n",
" dat = np.repeat(str_val, size) # repeat str_val\n",
" cols.append(Column(dat, name='s{}'.format(i)))\n",
" t = Table(cols)\n",
"\n",
" if float_format is not None:\n",
" # Set format for float columns\n",
" for col in t.columns.values():\n",
" if col.name.startswith('f'):\n",
" col.format = float_format\n",
"\n",
" return t"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Test each writer and plot the results"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def plot_case(n_floats=10, n_ints=0, n_strs=0, float_format=None, str_val=\"abcde12345\", strip=True):\n",
" global table, np_table, pandas_table, flt_format, strip_whitespace\n",
" strip_whitespace=strip\n",
" flt_format = float_format\n",
" n_rows = (100, 200, 500, 1000, 2000, 5000, 10000, 20000) # include 50000 for publish run\n",
" numbers = (10, 10, 5, 2, 1, 1, 1, 1)\n",
" repeats = (3, 3, 3, 3, 3, 3, 3, 2)\n",
" # store times for each writer in lists\n",
" times_slow = []\n",
" times_fast = []\n",
" times_pandas = []\n",
" for n_row, number, repeat in zip(n_rows, numbers, repeats):\n",
" table = make_table(n_row, n_floats, n_ints, n_strs, float_format, str_val)\n",
" np_table = np.array(table)\n",
" pandas_table = pandas.DataFrame(np_table)\n",
" # slow writer\n",
" t = timeit.repeat(\"out = StringIO(); ascii.write(table, out, fast_writer=False, strip_whitespace=strip_whitespace)\", \n",
" setup='from __main__ import ascii, table, StringIO, strip_whitespace', number=number, repeat=repeat)\n",
" times_slow.append(min(t) / number)\n",
" # fast writer\n",
" t = timeit.repeat(\"out = StringIO(); ascii.write(table, out, fast_writer=True, strip_whitespace=strip_whitespace)\", \n",
" setup='from __main__ import ascii, table, StringIO, strip_whitespace', number=number, repeat=repeat)\n",
" times_fast.append(min(t) / number)\n",
" # Pandas\n",
" t = timeit.repeat(\"out = StringIO(); pandas_table.to_csv(out, float_format=flt_format)\", \n",
" setup='from __main__ import pandas_table, pandas, StringIO, flt_format', number=number, repeat=repeat)\n",
" times_pandas.append(min(t) / number)\n",
" # plot points\n",
" plt.loglog(n_rows, times_slow, '-ob', label='io.ascii Python')\n",
" plt.loglog(n_rows, times_fast, '-or', label='io.ascii Fast-c')\n",
" plt.loglog(n_rows, times_pandas, '-oc', label='Pandas')\n",
" plt.grid()\n",
" plt.legend(loc='best')\n",
" plt.title('n_floats={} n_ints={} n_strs={} float_format={}'.format(n_floats, n_ints, n_strs, float_format))\n",
" plt.xlabel('Number of rows')\n",
" plt.ylabel('Time (sec)')\n",
" print('Fast-C to Python speed ratio: {:.2f} : 1'.format(times_slow[-1] / times_fast[-1]))\n",
" print('Pandas to Fast-C speed ratio: {:.2f} : 1'.format(times_fast[-1] / times_pandas[-1]))"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Floating-point values"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 2.12 : 1\n",
"Pandas to Fast-C speed ratio: 2.04 : 1\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/simon/miniconda2/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
},
{
"data": {
"image/png": "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\nvy6fAH7dQGk1AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf281be250>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=10, n_ints=0, n_strs=0, float_format=None)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Mixture of data types"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 3.81 : 1\n",
"Pandas to Fast-C speed ratio: 1.95 : 1\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf0511b5d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=10, n_ints=10, n_strs=10, float_format=None)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Mixture of data types with low-precision floating-point values"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 3.37 : 1\n",
"Pandas to Fast-C speed ratio: 1.55 : 1\n"
]
},
{
"data": {
"image/png": "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\nwGiVvPLKK9x///106NCB//znPy69h6J6kDGMwBQwASM1Fc790BerxfLlJiIj67v0b/lyk9MyjLJd\noyjG1fhbt25l/vz5rF27ls2bN/PTTz+xaFHprJYQGxvL4sWL+eabb4iNjeXjjz8GYMqUKbzzzjts\n2bKFuLg4ACZMmEBkZCQ7duxgxYoVtGvX7rx9lv7bmQMHDrBnzx66dOlCfHz82RZRcnIyiqLQrVs3\nnnvuOfr378/mzZu58koj2+bx48eZOXMm69evZ+bMmeTm5vLHH38wYcIEli9fzrZt27BarUyePPns\nvnbu3Mns2bNZv349M2bMIDc31/U3UghR5QKmS8q4UDiP83/w8xg2zMKcOaedP6mU+HgLy5dfWEZl\nLkJev349d999N7Vr1wZgxIgRLF++nPvuu++8x11++eWsX7+ejRs3sm/fvrMtgREjRvDaa69x+vRp\n7rzzTsBojWzfvh3A5auowWhd9O3bF7vdTmRkJDNmzKBly5Y0btyY119/ndzcXFasWIGqqmWWcdNN\nN1GrVi1q1apFkyZNOHnyJFu2bGHAgAE0btwYgH/84x889dRTPPfcc2U+p/j9ENWbjGEEpoBpYSQk\nxBEbOwEjaADkERs7gYSEuCoto6TyzvYBxowZw7fffstDDz3EiBEjzi558tBDD7Fw4UK2bdtG//79\n0XW90suhFI9hbN26lS+++II+ffoAEBoayt///nc+//xz1qxZw9ChQ10qz2QyUdFFLUNCQir8HCFE\n1QqYgBETE0VS0miGDUukR4/nGTYssUID3u4qo/hHsX///nz66afk5uZisVhYsGABAwYMAODFF19k\nx44dAKxbt45Ro0YRGxvLnj17zpazZcsWmjVrxssvv8y+ffvIycnhlltuYebMmQDk5OTw559/ulyn\nsn6sR44cyZw5c2jYsCENGzYEoGXLlhctu7isPn36sG7dOtLT09F1nXnz5tG/f3+X6iSqNxnDCEwB\n0yUFxg/+nDnjvVpGcauie/fujBo1igEDBqAoCoMGDWL48OEAHDlyhMzMTADGjRuHqqpERUXRpUsX\nTpw4gdVqZc2aNUyYMIG8vDz+/e9/U6dOHRITE3n66ae58cYbqVWrFi+99BJBQeWfE1yspdOiRQsa\nNGjA3Xffffa26667jsLCQnr06HHemETp8lq3bk1iYiLDhg3DbrfTrVs3nnrqqQrXQQhRPfhlPoy/\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf281be750>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=10, n_ints=10, n_strs=10, float_format='%.4f')"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Low-precision floating-point values"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 1.66 : 1\n",
"Pandas to Fast-C speed ratio: 1.42 : 1\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEcCAYAAADUX4MJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FFXXwH83yaZCQicgECJIVMRX9BNFkCJNVFAhjLzw\nCsGCKGKhYwARiNKsVLEQFRDGGEGQZugBEQVsSLFAGoQa0pPd7M73x2xCCAlskt1N2ft7nn2S2d05\n98zc2Tlz7rn3HKFpGhKJRCKRXA+3ilZAIpFIJFUDaTAkEolEYhPSYEgkEonEJqTBkEgkEolNSIMh\nkUgkEpuQBkMikUgkNiENhkQikUhsQhoMOyOECBBCxAghUoUQc4QQrwshNla0XpUJIUQvIcQBIYRH\nReviagghPhBCpAgh9gghOgshsitQlwlCiAtCiL+EEJ4VpUdlpHA/VbQuhZEGw/4MBloBzYBw63t2\nWR0phAi1h/ERQtQSQrwnhEgSQmwo5vPJQoh4IcTfQohnytteUTRN26xp2l2apuXZqO8CIcT48rYr\nhKgvhFgvhLgohNglhGhZXpmlaPv/hBBHHCj/un0mhLgVeBHoBnSxvm2va7NeaYyPEKIm8CbwLHCr\npmlGe+hRHkpznQkhagohNggh0oQQ64QQfoU+6yaEeMtGOd7WPttW6L3i+qlSIA2G/akPHNY0LVXT\nNJOdZdfFPj9wAfwJHLjqAyH+BwwD7gUeBWYLITrYoc3yUMdOcr4E/gUaAd9ZX87CXn13FaXoswZA\nrqZpByvBtVnX+nePA3QpK6W5zp4DzgBNgfPAcACr1zwRmGGjnNeBop62I/upfGiaJl9FXsAJoC8Q\nDVwA9gFNbdjvOSAbyAPSgDvQL4gNhb7TAFgOnEW/eU0GPAp9/hSwB0gBDgOdre+/AeQCJqvs+db3\nxwNJwDngK/Sb4VAg3fq9tEL/by2i7xW6Wd/bAYwttL0I+KSYY30dWABMAf4GkoHBNp7fJ4ATtpxv\nYJv1fOZaj0EBvIEvgItAHPA2+o/u4xKOexrQHDAD9a1yDcAl4H579b913yHWfr0IbAJuBp4Gcqzt\npwHfWr+7HRgERFn7z6+E/bsUOa78Y/vb1j4D2liPN1+HUUBnIKvQdwzAdOCktT+XAXULfd4ZWA+c\nBhKBl63vdweyCsn+5TrnqLb1vJqBDGCe9f07refkEvAL0K/QPkOt/TESSLCe06HAWuAV9GvwqLXf\nulr7LAV4s5CMmtbj+9X62VagyTWusy0Ufz09BSwGHrfu2x9YaP1/FPCkjdfK7ei/3ZeAbSX1U0Xf\nD6/QuaIVqIwv9BvGIWvneaM/ib9n475FDUTBNrpHt8f6Q/RDv4n9Bkwu9P0XgVus3w0H4q4h+2br\nBX474An0A7xLcZzFGYxTQO9C2yOB2BL2zUB/svVEN1wXAWFDu08A/9p6vq03kfGFtkdYf/T1gAAK\n3Viu0WZP4EyR934CnrFX/wM10A16T3QD9iCXDdRQ4M8i39+O/uDQG3C/1v7XadfWPitqIIpuv2U9\n1iboN9cVQEyhzx9HvxkbgPvRb2otipNlg85BXGnAA63Xz3Cr/C4UMujW83cJ+BDwRf99DAWMwFjA\ny3pNpgOfo3sLnQELEGKV4Wf9bkPrNbsB+Kyk6+w6+r+M/tBSF/0B8EXr9fgdutexCviGYh5ICt0L\n9qEPYQ/FajDKci6d+ZJDUiUzS9O03zVNywFi0G/O5eVO4C7gRU3TMjVNO4nuYbyY/wVN0xYAx4Cb\n0J8wmggh6pUg7yL6Tfsu9Bt1tFXf8lDX2m4+aVwePijKbk3Tlmn6+PM69Jt3wzK2W5rzHQfUAm7X\n9KG/aBvkFz0uuPaxlaX/c9CfzO9EN9ybNE07d519vtQ0baOmaeYy7g+l67NiEUII4AVggqZpiZqm\npaNfl12FELcAaJr2jaZp29G9ZF8gE2hbmnaKa9r6dzBwRNO0pZqmmTRN2wF8SqHfBvr5GaVpWpam\naRbre/9omjZP07Rc9GvQF93bugjsQj8X+fpnapo2D0gFbkM3tHeVUe+PAB/gCLqB+xjde8n3vBei\nG4KlJQT0RwIpmqatKGP7FYI0GCVTeDz2IvoTSXlpDpzWNC2z0Ht/AfXzg2ZCiOfQvY556PEQ0H8E\nVyuoaWeBdsA9wFFr4NMghHjSOsPiYpHXFht0PI9+488nAH24pFgVCv1/0fq3rOfJ5vOtadpG9KGb\nMUKIX4UQTwAIIT4sctz5/0/l6uOC0h3bdY9L04P47dCfbg8LIeYKIfyvs1vS9fa3zmYq2p8pQoij\n1l1L02clURfdq/irkD4pVtk3Aggh7hdC/ID+9NwB/Wm+2GuzDAQDx4u891d+21YualcHxwv304Ur\nPtAf11Ow9p31t/E+cBB9GMuda+gvhNhYwvUUZjVaoZqmNdA07Ql0o+ShadrP6EZoj6ZpaejDezcV\nkdsUeA14Pv+tknSobMhpjc7lBBAohPArZDRuAs5rmpYphGiHbihaaJp2VgjRkMszrfJxL7yhado/\nwAghRB3gW8CoadocdHe5LBxBf/rKnz3VBn1suKIpetw7gZ1CiNbADiHESU3TnkOPI12FEKIZUEcI\nEahpWrL1qa8Vdj42TdNOA+OFENOAz4BZ6E/uVx2DrftrmvYC+rh/Sdijzy6gG4Cb0D04hBC10YdZ\n/rEGc9cBgzRN22D9fEARGeV5AD2BPuRVmJbo8Rx78SpwN9BG0zSz9UGjc5HvFPSRpmm9SyF7Onps\nA/ThMXf04TBvdA+kMIMBf+Cg7tjhCXgJIS5qmmavCR4OQXoYjicb/aIBfVz8APCBEKKGEKI5+oU2\n3/p5fXQjHmD9sRad4pcEtLFOD/UWQtwphBglhKiF3pd5lO6Jr7gnm4/QDVATIUQbIBTd3S6rPHuQ\nBHQQQvgIIbyEEIOFEI8IIbzQx/zd0IcHSkTTtHj0IOYUIYQ3+lh2gqZpe+2lpBCiqRAiXAjRAL0f\nTVzujyQgWAhxo7X90u5/LcraZ9mAhxDC3fo0vgiYZdXDH/263KZp2lH081sTqGu99oahxyHySQIM\nQohOJR1fcYdc6P8VwC1CiGetnkBn9BvwAhtlFSezKPXRj8NPCNECfUpvYa64zmxuUIiBwPZCw4e/\nA32snkQr4Li137cKIW7UNG2Wpml+mqbVsRqIkejDu5XaWIA0GCVhz+mPm9BvFP+1jrs+jn7RnkCf\n3RKFHmwE2Ax8jW5UNgO70Z/68lkN/IHuqs9Hd7fbo0+RPYo+c2Xu9RQS+hqMdPTpfz2EPpd8MYCm\naauBpcBeYA0wWtO0/TYea1nP2/X2mw20QD++wda/r6LP1tkGvGMd874eT6Lf5JKAXsAjZdSnJIzo\nAc/96E/pNYFJ1s+2oc/yOYgeDC2unWvtXyLl6LNfrPostG5PRfdS9qBfY2ZgoLWNdHQj+z76kGlD\n9CBxvg5/Wz9bB/wohLDl3lJw/JqmJaPPtvof+nDafOApTdN22yCnWJnFbH+AHgeJs8r/vMh3i15n\n10UI4Ytu2D4o9ParQATwIzBG07Qs9JhbCFcPi1YphDUq7xQURVkIhAHBqqqeVRRlFvpY6DFguKqq\nFkVR7gFGA4dVVZ3uNOUkEolEck2c7WG8hT4dEkVR2gBtVFW9H/3JKn+88DH0uel+xUqoYIQQydYn\n8sKvdCHE3xWtW2VBCPG29ZwUPUdpQohuFa1feZD9bxvV+RpwZZxqMFRVTUR3CUH3LPLd5v3WbYAa\nqqqagVxFUa4V6KsQNE0L1DTNv8irpqZpTkszUdnRNG2M9ZwUPUf+mqZtrWj9yoPsf9uozteAK1OR\ns6TqAPHW/+PR0xoApCqK4gF4qaqaci0BW7dudd54mkQikVQjunXrVupJKhVpMC5weZZFEJfnUK9D\nz/nzuy1C7rzzTvtrJpFIJNWYgwcPlmm/ijAY+VYtlsszetqh54RBVdUfgaLzuyXVjNjYWDp27FjR\nakjKiOw/18RpBkNRlBboi9JaA5Ho09oOKoqyG33h0WZn6SKRSCSS0uPUabX2ZuvWrZockpJIJJLS\ncfDgwTLFMOTCPYlEIpHYRLXMJZWcnIzFYrn+FyUVRmpqKgEBti16dXNzIzAw0MEaSUqDjGG4JtXS\nYFgsFho3blzRakiuQWn659SpUw7URCKR2IockpJIJKVGeheuiTQYEolEIrEJaTAkEkmpiY2NrWgV\nJBWANBgSiUQisQmXMhhxcQkMHz6Xvn3nMnz4XOLiEpwq4+zZszz55JPk5eWVut2ycuTIEV54QS/4\ntmvXLl5//fWrvlO3bl06d+5Mu3btuOuuu/jwww+vKTMpKYn169cXbM+ePZs333zTvopLKjUyhuGa\nVMtZUsURF5dAv37LOHFiJnrm9EwOHJhMdPQwgoKaOkVGgwYN+OKLslZOLRu33HILixYtAqBTp050\n6tTpqu8IIdixYwdCCM6cOUOvXr3o2LEjrVu3Llbmn3/+yfr163nkkZLqD0kkkuqIy3gYERGrCt3o\nAfw4cWImERGrnCYjISGB2267rWD7k08+oUOHDnTs2JGIiIhi99m8eTOPPPIInTp1om/fvly4oOdo\njI6O5s4776Rz5868/fbbAKSlpTFy5Ejuu+8+HnjgAQ4dOsSePXt46KGHAPjyyy8ZMWJEse3kr/hv\n2LAhbdq04d9//6VXr17s27ev4DvdunVj//79jBkzhu+//54uXbrw559/AhAXF8eQIUNo3bo1U6dO\nLdjn22+/pVOnTnTs2JExY8aQm5sL6F7J9OnT+d///kfr1q154403bDqHksqBjGG4Ji5jMJKT4eqa\nTH5ERRmoU6e2Ta+oKEOxMnTZtmEt+s7u3buJjIxk8+bN7Nixg19++YUVK1Zc9f3g4GBWrlzJrl27\nCA4O5rPPPgPg3Xff5e2332bnzp0MHDgQgMmTJ1OnTh327t3LN998Q0hIyBVtFv2/OI4cOcKhQ4do\n27Ytw4cPL/CITpw4gRCCdu3aMWnSJHr27MmOHTu49dZbAX2YavHixcTExLB48WIyMjL4+++/mTx5\nMlFRUcTGxpKXl8c777xT0Nb+/fv58MMPiYmJYcGCBWRkZNh+IiUSidNxmSEpfaFwJlfe8DMJDTWx\ndOk1y24UMHy4iaioq2WUZRFyTEwMAwYMoEaNGgAMGTKEqKgoBg++spRwy5YtiYmJYdu2bRw+fLjA\nExgyZAgzZ84kJSWFxx57DNC9kT179gDYvIoadO+ia9euWCwW6tSpw4IFC2jSpAkNGjTgzTffJCMj\ng2+++QZFUUqUcd999+Hn54efnx8NGzbkwoUL7Ny5k169etGgQQMAnnrqKV599VUmTZpU4j7550NS\nuZExDNfEZTyM8PCBBAdPRjcaAJkEB08mPHygU2UU5npP+wDPPfccP/zwA88++yxDhgwpSHny7LPP\nsnz5cmJjY+nZsyeappU5HUp+DGP37t2sXbuWLl26AODp6Un//v1Zs2YNmzZtol+/fjbJMxgMlDap\npYeHR6n3kUgkzsVlDEZQUFOio4cRGhpBx46vERoaUaqAt71k5N8Ue/bsyVdffUVGRgYmk4kvvviC\nXr16ATB16lT27t0LwJYtWwgLCyM4OJhDhw4VyNm5cyeNGjVi2rRpHD58mPT0dLp3787ixYsBSE9P\nJzEx0WadSrpZDx06lKVLl1KvXj3q1asHQJMmTa4pO19Wly5d2LJlC2fPnkXTNJYtW0bPnj1t0klS\nuZExDNfEZYakQL/hL106rkJl5HsVHTp0ICwsjF69eiGEoHfv3gwaNAiAkydPcv78eQDGjh2Loig0\nbdqUtm3bcvr0afLy8ti0aROTJ08mMzOTCRMm4O/vT0REBKNHj6Z9+/b4+fnx+uuv4+Z2/WeCa3k6\nN9xwA3Xr1mXAgMs1re6++25yc3Pp2LHjFTGJovJatGhBREQEoaGhWCwW2rVrx6uvvlpqHSQSSeWg\nWtbDOHXqlEw+aCdOnjzJ0KFDiYmJwWAwVIgOsj8lEvtS1noYLuVhSErHm2++yZo1a/jggw8qzFhI\nJJLKg8vEMCSl57XXXmP//v3ce++9Fa2KpJIhYxiuiTQYEolEIrEJaTAkEkmpkeswXBNpMCQSiURi\nE9JgSCSSUiNjGK6JNBgSiUQisQk5rVYikZSaio5hxMUlEBGxiuRkPU9cePjAUmVckJQNl/IwEuLi\nmDt8OHP79mXu8OEkxMU5VUZlL6DUuXNnunTpwoIFC0rdzubNm4mPjy+3vhLJ9civSxMVFU5s7JtE\nRYXTr9+yMhVEk5QOl1npnRAXx7J+/Zh54oS19BFMDg5mWHQ0TYOCbGrPHjIqI/Xq1ePcuXPlSs/x\n1FNPMXToUDp37mxHzXTkSu/KR2xsbIV5GcOHzyUqKpyrM09HlDv1j6tQ1pXeLuNhrIqIKLjRg36p\nzTxxglUlFC5yhIyqUEApH7PZzOTJk+nRowft2rXjrbfeKnh/xIgR/N///R89evTg0KFDzJkzh5iY\nGMaMGcOQIUOKlf/FF1/QsWNHOnXqxJw5c2w6XxJJceh5L8tXl0ZSNlwnhpGcXMwlBoaoKGpHRdkk\novjySVCaK7W4Akre3t7897//ZcWKFVfVw8gvoOTv78/LL7/MZ599xujRowsKKHXt2pWkpCTgygJK\nqampGAwGDh06VKoCSvm4u7vz+OOPM3PmTLKysmjdujVDhw7l/Pnz7N69m8OHD3Pp0iUMBgNt27Yl\nNjaWsWPHFlsCdt++fSxYsIBNmzZRu3ZtTp06ZfP5klROKsq72LjRwC+/eFJcbZuy1KWRlA6X8TAI\nDCyoYpFPJmAKDSXl4kWbXqbQ0GJllOVKLVxAycPDgyFDhrBly5arvteyZUv27dvHxIkTOXz4MCdP\nngQuF1CKjo6mUaNGgO6NvPzyy4BeQMnX19cmXfILKOXHMPLragQHB/PRRx8xbtw4DAYD8fHxtGrV\nilatWvH8889z+vRp/PyKmlDYtGlTgazNmzezadMmBg8eTO3atQHk8JKk1Jw/L3jmGT+mTPFh/vwB\ndq1LI7EdlzEYA8PDmRwcXOgS0+MPA8PDnSqjMJWtgNLOnTvZsWMHbm5uJCUl8cgjjxAYGMhbb71F\ny5YtsVgseHt788033zBo0CCee+45Pv7446vkPfjggwWyevXqVWa9JJUXZ63D0DT4+msDHTv607ix\nhV270ujfv3G569JIyobLGIymQUEMi44mIjSU1zp2JCI0tNTBanvIqCoFlA4ePEidOnXo06cPaWlp\nBcNeycnJHD16lPvvv5+wsDB27doF6EWVEhKKn6XSrVs3vvzySy5dugTA0aNHbdJL4tokJQkGDfLj\nnXd8WLkyg+nTs8l3mvPr0nz77TiWLh0njYWTcJ0YBvoNf9zSpRUqo6oUUOrcuTMrV66kc+fO3H77\n7bRq1QqA1NRUXnvtNc6cOYObmxsffPABAAMHDuT5559n3bp1rFq16ipZYWFhPPjgg3h5edG1a1em\nTZtW5nMoqXgcGcPQNPjsM08iInx45plcPvssE09PhzUnKQUuM61WUnWR/ek6nDjhxiuv+JKZKfjg\ng0xuvVUOZzoCOa1WIpE4DXvHMMxmWLjQix49atKjh4nNm9OlsaiEuNSQlEQiqXwcOeLGSy/54e2t\nsWVLOjfeKA1FZUV6GBKJpNTYI4ZhNMLcud707VuTwYNzWbs2QxqLSo70MCQSidM5dMidl17ypXFj\nje3b02jSpOrGUl0J6WFIJJJSU9YYRnY2TJvmw8CBNRg1KpdVqzKksahCSA9DIpE4hb17PXj5ZV/a\ntDETG5tG/frSUFQ1pMGQSCSlpjQxjPR0mD7dhw0bPJkzJ4uHHzY5UDOJI3EpgxEXH09EZCTJRiOB\nnp6Eh4UR1KyZU2XUrVuX2267jezsbMxmM8OHD+e5554r7aEUy4gRI+jSpQsDB8qcOpLKQUyMB6NH\n+9K5cx579qRRq5Z9vIqEuDg9S7S1gtLA8PAqXWKgquAyBiMuPp5+8+ZxYtAg8PGB7GwOzJtH9Nix\nNt/w7SEjP2+TEIIzZ87Qq1cvOnbsSOvWrctzeBKJU7lePYyUFEF4uA9793rw/vtZdO1qv6Jhxdal\nOXCgytelqQq4TNA7IjLy8o0ewMeHE4MGEREZ6VQZcDmfVMOGDWnTpg0nTpwosf4EQNu2bVm+fDm9\ne/fmtttuY//+/QBYLBbCw8Np164djz32GMeOHSvYZ//+/Tz++ON06dKF7t27c+LECUBPq37PPffQ\nqVMnxo4dWyq9JRJbWLvWQIcO/vj7a8TGptnVWIB9attIyobLeBjJRuPlG30+Pj5EXbxI1K+/2ibk\n4sViZSQbjWXS6ciRIxw6dIi33nqrxPoTjRs3RtM0MjIy2LhxI++++y5LliyhXbt2LF++nMOHD7N3\n714sFguhoaEFshs1asSHH35IgwYNePvtt3n//fd57733WLJkCS+88AJDhw61OTmhRFKU4ryLM2cE\n48b5cuyYO59+msG995rt33BGBm6xseWuSyMpGy5jMAI9PfU5fYVv+NnZhNapw9L//McmGcPr1CGq\nGBmBpciMll97wmKxUKdOHRYsWECTJk2Ay/Unfvnll4L6E/k5lB588EFA9za2bt0KwLZt2xg6dCge\nHno3Fs631LRpU/bu3cv8+fP59ddfcXd3B+CJJ54oqHgnYx0Se6BpsGqVJ6+/7sOQIbksXZqJt7f9\n2/HYtQvfl17CzcurmPJJlKkujaR0uMyQVHhYGMErV+pGAyA7m+CVKwkPC3OqjPwYxu7du1m7di1d\nunQBKLH+RFEMBkPBkJbZbCY9Pb3YdmbMmMGKFSsYOHAgr776aoGsvn37sn79epKSkrjvvvvIyMiw\nWXeJJC4ugeHD59K582SGD5/LDz8kMmBADZYs8SIqKoPJk3PsbyzS0/EdMwa/F14ga+5cQtessWtd\nGontuIzBCGrWjOixYwndsoWOX31F6JYtpQpW20tGcbUnoOT6E9eiXbt2rFu3DovFQlpa2hUxjM2b\nNzNw4EBat27NgQMHCt6PjY2lRo0ajB8/npycHOLi4mzWXeLaxMUl0K/fMqKiwvn994VERYXTp08k\nt976LzEx6dx+u/2HoDx27MC/Y0cwGknbs4e8Hj3sUpdGUjZcZkgK9Bv+0qlTK1RGSVX2Sqo/ca19\nnn76aX799Vfat29Py5Ytad68ecFno0aNYty4cQQGBhZ4MaDX137ttdfIzMykT58+cnaWxGYiIlZx\n4sRMKBRutlimk5wcgcEwzr6NpaXhO3Uqhq1byXz3XfK6d7/iY3vUtpGUHlkPQ1Lpkf1ZsWRkwM6d\nBsaOnc2ZMzOu+rxjx9f49lv7GQyPrVvxffVV8h54gKzp08Hf326yJTplrYfhUh6GRCKxjRMn3Niy\nxcCWLQZ++smDu+7KIzAQzpy5Otxsr1izSE3FZ/JkPHbtIuv998nr2tU+giV2w2ViGBKJpGRMJoiN\n9WDKFB/uucef3r1r8vvv7oSF5fLHH5f45psMIiMHEBw8GQqFm4ODJxMeXv7Zdh7ff49/hw7g6Ula\nbKw0FpUU6WFIJC7K+fOCmBgDmzcb2LHDgxtvtNCjh4nFizO54w4zRcvBBwU1JTp6GBEREfkZOQgP\nH0ZQUNMy6yAuXcInPByPPXvIXLSIvE6dbNrPHml+JKVHGgyJxEXQNPj9d/eCoaZjx9zp3NlEz54m\n3nori8DA68czg4KasnSpfeIVhk2b8B0zBuPDD5MWGws1ati0nz1S9EjKhjQYEkk1JjNTD1hv2WLg\n++8N+Pho9Ohh4rXXsmnfPg8vr7LJvV4uqWshUlLwee01PH78kcwPPySvlHKulaKnvLMgJdemWhoM\nNzc3Tp06VdFqSK5BamoqAQEBNn3XrejYiOSaxMXpAevNmw3s3+/BnXfm0aOHiRdfzKFly4otgWrY\nsAHfceMw9ulD2u7d4Fc0ycf1+btotgUoV4oeie1US4MRKFMEVHrkNNnSEReXQETEqkKxg4EFsQOT\nCfbv9ygwEikpgu7dTTz5ZC6ffprhkFmppfUuxMWL+EyciMeBA2R+9BF5991X6jZNmsa7Z85wxGgs\nNs1PaVL0SMpGtTQYEkl1In+F9eVFc5ns3z+FZ555lkOHWrB9uwdBQRZ69jSxcGEmbdteHbCuSAzr\n1uE7fjzGxx/XvQpf31LLOJ6Tw/Px8QS4u7Pm+ed54YMProhhBK9cSbjMvuxwpMGQVAjlGQN3NYpb\nYR0fP4MlS2YzfvwEZs7MolEj5y7AtaX/xPnz+E6YgPtvv5GxbBnme+8tdTsWTePD8+d5+8wZXgsM\nZFjdugghiB479spZUjLg7RSkwZBIKjmnTwPFJPS+8cY8hgypnOP2hjVr8J04EeOAAWTOn18mryLB\naGRkfDy5msaWm27ixkIRenuk+ZGUHmkwJBWC9C5s459/3PjrLwMUk9C7IkN1JfWfOHcO33HjcD9y\nhIzPP8fcrl2pZWuaxsqUFKadOsXI+vUZ1aAB7iXkU5M4l0o00imRSPLJzYU5c7zp1asmgwf/l+bN\nHbPC2m5oGoboaPzvvx9L8+ak7dhRJmNxxmRi8MmTLDl3jjUtWvBKw4bSWFQipIchqRBkDKNkYmM9\nGDPGl5tuMrNjRxpNmjRkyBD7rrAuv46X+0+cOaN7FcePk7F8Oeb/+78yyfz20iXGJyXxvzp1iAwK\nwrMyRe4lgDQYEkml4fx5wdSpPuzebWD27CweeshU8Jk9V1iXh4S4OFZFRJB67Bg/hITwv7Ztufm9\n98j93//IXLqUslRPupSXx4SkJA5kZfF58+a0K8PaDIlzkAZDUiFI7+IyFgusWOHJzJk+DBhg5Icf\nUm3NkuFUEuLiWNavHzNPnNAn9/7+O1PXrmXYp59yw8MPl0nmtvR0XkpI4CF/f3a2aoWftZSwpHIi\nDYZEUoEcOeLGmDG+GI2CqKgM2rSxf9U6e7EqIqLAWIAegp9uMhGxdi3jSmkwMs1mXj99ms1pacxv\n2pSuNWvaXV+J/ZGDhJIKITY2tqJVqFCysmDGDG/69q1J//4mNm9Or5zGIjOzIEmgx7ffFjO5F0hO\nLpXIHzOsm+1vAAAgAElEQVQz6Xz8OJkWC7EhIdJYVCGc4mEoirIQCAOCVVU9qyjKLKADcAwYrqqq\npdB36wNfAeNVVd3vDP0kEmcSE+PBuHG+3HWXmd2702zKEus0NA23v/7CEBOD4fvv8ThwgLy2bTF1\n64a5c2cyv/++yOResHV+b67FwqzkZL5MSWHuDTfQp1YtRxyBxIE4y8N4C/gVQFGUNkAbVVXvB4xA\n78JfVFX1HPCpk/SSVBCuGMNIThY89ZQf48f7Mm9eFh9/nFk5jEVmJobNm/EZNw7/tm2p2a8f7seP\nk/v001z64w8y1q4l96WXeGLOHCYHBxea3AuTg4MZGB5+3Sb+yM6m219/8VduLrtatZLGooriFA9D\nVdVERVFyrJsdgHzPYb91+ztFUQYD9VVVfQ+QE68l1QazGZYt82L2bG/CwnJZuDDzqmSrTkXTcPv7\nb92LiInB46efyLvjDkzdu5OxciWWW26BYtY+NA0KYlh0NBEREeTP7x0WHk7ToKASm8rTNOafPcui\nc+eY3rgxA2vXRsh1FVWWigh61wHirf/HA/cCqKq6osj35FVVjXGVdRi//ebO6NG+eHtrrFuXzs03\nV1B68awsPGJjC4yEyM3F1L07uWFhZCxbhq0pbZsGBTFu6VKb+u+f3Fyej4/H182N7a1a0URmk63y\nVETQ+wKQ/0gSZN0uQFGUdsBAYJSiKHWuJ6xw8DQ2NlZuy+1KsZ2eDmFhKTz6qBfDhuWybl0G58/v\ncqo+h1SVpPHjqREaSq2bb8Y4Ywb/mkxkfvEFqX/8wZYBA9heu3aBsbBX+xZN4+Pz53ngzz+58+JF\nom+8kSaenpWqf+R22RCa5pwxVEVRtgNPAPWBuaqqPqQoymJgraqqm8oic+vWrdqdd95pTzUlknKh\nafDddwYmTfKlUycT06dnU7euk+IU2dlXehHZ2Zi6d9dfXbrY7EWUh0SjkVEJCaRbLCxu2pSbyrCQ\nT+J4Dh48SLdu3Uo9iuPwISlFUVoA84DWQCQwHzioKMpu4Aiw2dE6SCTOICHBjQkTfPjnH3eWLMmk\nQ4c8+8m2rrDOjx0MtMYO3P799/KMph9/JK9NG0w9epD52WeYW7cuNhbhCDRNQ01JYcrp0wyvV49X\nGjTAQ8Yqqh0ONxiqqv4DPF7k7Y2ObldSuYmNrT4xDJMJlizx4v33vRkxIpdlyzLLXCu7OK5aYQ1M\n2bKFF/39aZ6Xh+mBB/TUHB9/jGZj2dvyUrj/zuflMToxkX9yc4kKDub2MqQyl1QN5EpviaQc/PST\nHtSuX19jy5Z0brzR/kHt4lZYz0hL46127RizerXTvAiAuPh4IiIjOXbuHCHbtnFf//7MBpTatVna\nrBneMmFgtUYaDEmFUNW9i9RUwfTpPmzcaGDGjCz69TM57L4tjh0rdoW1JSfH6cai37x5BaVRf8/O\nZs38+Xz48ss8Lmu0uwTycUAiKQWaBl9/baB9e3+E0PjhhzT693eMsRAXL+I7ahSGv/8uWCyXT2lW\nWNuLiMjIy3W0AXx8yAsLY+NXXzlVD0nFIQ2GpEIo7/S+iuDff93o378G773nzWefZTBvXjYBAQ6Y\nAaVpeKoq/vfdh+bnR78tW8q8wtoeXMrLY/XFi2xLS+OqFYc+PiQbK2eZWIn9kUNSEsl1yM2FDz7w\n5sMPvXjllRxGjMjFw0G/HLd//8V3zBjEhQtkrFiB+a67aAqlXmFdXs6aTGxIS2PdpUv8lJVFpxo1\naOHtzcXs7CuNRnY2gXJBnssgDYakQqgqMYz86nctW+ZXv3PQmgqjEe/58/FavJicV14hd8QIClul\n/BXWjiTBaGR9airrU1M5nJ1Nd39/htSty2fNm1PD3Z244cOviGGQnU3wypWEjx3rUL0klQdpMCSS\nYrhwQa9+t2uXgVmzsnj4YdP1dyoj7vv24ffqq1iaNSN92zYszZo5rK2i/JWTU2Ak4o1GHgwI4OUG\nDehUo8ZVM56CmjUjeuxYIiIjSTYaCfT0JHzsWIKcqK+kYpEGQ1IhVNZ1GBYLrFzpyYwZPoSGGtm7\nNxVHlWsQly7h88YbGLZsISsiAtOjjzp81pOmafyRk8O61FTWXbpEmtnMwwEBvN6oEffVqHHdxXZB\nzZqxdOrUStt/EsciDYZEYuXoUb36XW6u4KuvMrj9dgcVNNI0DNHR+E6ZgvGhh0jbu9ehC+4smsbP\nWVkFngTAIwEBfNC0KXf5+uImV2RLbMQmg6EoSk3gJuBG4AxwXFXVM45UTFK9qein07i4BCIiVpGc\nDPXrQ506Q1mz5iYmTMhh2LBcHFVa2i0uDt8xY3A7fZqMyEjM7do5pJ08TWNvRgbrUlP5LjWVWh4e\n9AkI4PPmzWnt7V3uFOMV3X+SiqFEg6EoijvwX2AUYAJOAolAPaC5oigNgK+B+aqqXnS8qhKJfYiL\nS6Bfv2WcODETrMk2fH2n8s03Q7n77qaOadRkwmvRIrw/+ICcUaPIHTkSDAa7NpFrsbAjI4N1ly6x\nKS2NIE9P+gQEsLZFC5kEUGIXruVhTAFSgF6qql4q+qGiKB5AX2ChoihPqqpqv0xrkmpPRY6BR0Ss\nKmQsAPzIyprORx9FcPfd4+zenvtPP+H76qtoDRuSvnUrlubNSy0jPyVHQbA5LIygZs3IMJuJSU9n\nfWoqMWlp3ObjwyMBAUwMDHRo/QkZw3BNSjQYqqpOy/9fUZRahY2GoiieQANVVaOBaIdqKJHYEaMR\nfv7ZDYpJtpGcbOfG0tLwmTEDz/XryZo5E1O/fmUKahdNyUF2Njtmz+a2QYM44O/P3X5+PBIQwJuN\nG9PAzl6LRFIYW1d6RymK0qTQdhNk3W1JOaiIp9Pduz3o1Mmf7Gx3KCbZht0ybWgahrVrCWjfHmEy\nkbZ3L6b+/cs8A6q4lBznn3ySzI0b+fWWW4i68UbC6tZ1qrGQ3oVrYqvBqK+qamL+hqqq/wINHaOS\nRGJfTp8WPPusHy++6MuUKdls3Nif4ODJUCjZRnDwZMLDB5a7LbeEBPz++198Zs0i45NPyHrvPbTa\ntcsl81RubrEpObyAWo5aci6RFIOtBuOcoigP528oitILyHCMShJXwBm5pEwmWLjQi/vv9ycoyMze\nvWk8/LCJ5s2bEh09jNDQCDp2fI3Q0Aiio4cRFFSOgHdeHl4LFlCza1fMd99N2s6dmO+9t9zH8HNm\nJr/n5kJ29pUfVHBKjqqYC0xSfmx9PBkFfKMoylxAA7yA/g7TSiIpJ3v2eDBunC+BgRY2bUqnZcsr\n61QEBTVl6VL7BLjdDx7Ug9q1a5O+eTOWFi3KLTPbYmFWcjKrU1KYHBbGkqVLZUoOSYVjc01v6zTb\nVuheyXFVVR2XK8FGZE1vSVGSkwWvv+7D3r0GIiKy6NPHcXUqSE/HJyICzzVryH7jDYyKYpeV2vsz\nMxmVkEBrb2/mNGlCPQ+PEmdJSSRlwaE1vRVFqQ9MAhqpqvpfRVFqK4rSWlVV6ZdKKgV5efDxx17M\nm+fNk08a+eGHVGrUcFx7hu++w3fCBExduugrtevUKbfMLIuFN5OT+Tolhdk33EDfWrUKPstPySGR\nVCS2Dkl9jj59trt12wjMBdo7QilJ9cee8/j37XNn7Fi9TOp336UTEmL/Mqn5iMREfCdOxP34cTKX\nLCHPXseQkcGohATu8PUlNiSEupU8mC3XYbgmtga9m6uq+hFgBlBVNZOrJ7JLJE7l7FnBCy/48swz\nNRgzJofo6AzHGQuzGa8lS/Dv0gVzmzak7d5tF2ORaTYzKSmJp+LieL1xYz4KCqr0xkLiuth6ZZ5X\nFCUEPeCNoij9AZkORFJmyvN0mpcHy5Z5MWeON4MG6cNPjsooC+D+2296UNvXl/QNG7C0amUXuXut\nXsXdfn7EhoRQpwoZCulduCa2XqHPAV8CrRRFOWZ97zHHqCSRlMyPP7ozfrwvAQEa69alc/PNjht+\nIiMDn1mz8PzqK7KnTsU4aJBdgtoZZjMzTp9mfWoq85o0obcDM9VKJPbEpiEpVVX/BO62vh4DblFV\n9YgjFZNUb0o7j//cOcGLL/ry1FM1eOmlHNauzXCosTBs3oz/ffchLlwgbc8ejIMH28VY7M7I4P7j\nx0m3WIgNCamyxkKuw3BNbDIYiqL0BmpZjcRTwM+KojzoUM0kEsBshk8+8eK++/ypVUvjhx9S6d/f\ncVNlxenT+IWF4RMeTtb8+WQtXoxWr1655WaYzYxLTGREfDyzb7iBRc2aUbsKDUFJJGD7kNQM4H5F\nUdqjexnhwHvAzY5STFK9sWUM/Kef9OEnPz+NtWvTufVW+3kUCXFxrIqIgORkCAxk4MSJtNy+He9Z\ns8gNCyNz8eKr03GUkZ3p6bycmEhHPz/2hoQQ4KhiG05ExjBcE1sNRh10b+Q1YLSqqgcVRZnlOLUk\nrsyFC4Lp0334/nsD06ZlM2CA0a4eRUJcHMv69WPmiRPWahgw9dtveeGWW6j37bdYbrnFLu2kmc1M\nO32a79PSeKdJE3r4+9tFrkRSUdicrRa9Nkaq1Vi0B/5xnFqS6k5xY+BmM0RGetK+vT++vhr79qWi\nKPY1FgCrIiIKjAXo88OnG4180rKl3YzF9vR07j92DLOmsSckpNoZCxnDcE1s8jBUVR2vKMpbqqqm\nWN/6DT2/lERiFw4edGfcOF88PSE6OoPbbnNQPW2A06eLqYYBnCl/1eE0s5kpp06xPT2d95o25QFH\nzveVSJzMtUq0jgH+AtarqmopZCzyF+5lKopyBxAGjJUV9yS2ULiW9uef/8DIkQOJjAxh0yYDr7+e\nzRNP2N+jKIzbsWMY/vqLoitPM4HyFsSISUvj1cREevj7ExsSgn81iFWUhIxhuCbX8jA+BV4EpimK\n8gd6Te8k9HhGc+A24G9grjQWElsorpZ2dPRUBgwYzr59DQkIsC0RZplIS8Nn3jw8v/yS/4aFMfnr\nr5l58mRBDGNycDDDwsPLJDrVbCY8KYndGRnMb9qULtKrkFRTrlWiNQWYoSjKHCAEPVNtMHAK2Akc\nKex1SCTXo7ha2hbLdMzmCAIC7F9LGwBNw/Orr/B54w09UeCePTRs0IBh//sfEYVmSQ0LD6dpUFCp\nxW9JS2N0YiK9rV5FzWrsVRRG5pJyTa4bw1BVNRc9ZvGb49WRVGfi4sAptbStuP/+Oz4TJiBycshY\ntgxzu3YFnzUNCmLc0qVlln0pL4/wU6fYm5nJ4mbNuN+RqXElkkqCrbOkJJIyk50N8+Z58+uvnji0\nlrYVkZKCz7hx1AgNxagopH///RXGorxsSk2lw7Fj1HBzY3erVi5pLKR34ZpIgyFxGJoGa9YYuPde\nf377zZ2vv3ZcLW0AzGY8P/sMf2tp1LR9+zCGhYGdholS8vIYER9P+KlTLA0KYnaTJtRwkSEoiQRs\nL6DkjZ6A8AbrFFsfIEhV1aMO1U5SZfntN3cmTfIhPV2wcGEWHTvmAU2Ijh5GREQEx46lEhISQHh4\nOWtpW3H/6Sd8J0wALy8yoqIwt2lT/oMoxHepqYxPTKRvrVrsatUKPxc3FDKG4ZrYutJ7GfpCvYeB\n8YAvsBTo5CC9JFWUM2cEM2fqq7QnTszmySeNVzzg59fSttcNR5w9i88bb2DYvp3sadMwDhhglySB\n+VzIy2NiUhKHsrL4OCiI9i44/CSR5GPrkNQdqqpORq+0h6qqF4DqtXRVUi5yc+H9973o0EFPErh/\nfyphYcYSR4PKbSxMJr2gUYcOaHXqkLpvn91qaufz7aVLdDx2jIYGA7tCQqSxKIT0LlwTWz2MLGtd\n7/wCSvdiNR4S10bTYMMGA1Om+HDzzWY2b06nRQsH1qgAPHbvxnfCBCwNG5K+fj2WkBC7yj+fl8f4\nxEQO5+QQ2bw59/jJ4pISCdhuMF4GtgJNFEXZDLQBQh2mlaRK8Oefbrz2mi9nz7rx9ttZdO1q+/rN\nsgxJiaQkfKdOxf3nn8meMQNTnz529SgA1ly6xMSkJJ6oXZuFzZrh4ybnhRSHjGG4JrbmkopVFKUT\n0N761j65aM91OX9e8NZbPqxfb2DcuBzCwnJxaGmH3Fy8Fy3Ca+FCcp9+msz588HXt1wi4+LjiYiM\nJNloJNDTk+cGD+YDd3eO5uTwRfPm3C29ConkKkrzMw8EcgABtFUUBVVVtzlGLUllxGiEjz/24t13\nvenf38i+fWnUrl22dB62Pp16fP89vpMmYQ4JIT0mBkvz5mVqrzBx8fH0mzePE4MG6TUvsrOJnjuX\nIU8/zc677sJbehXXRXoXromt02o/B/oCfwAm69saIA2GC6BpsGWLHqcICrKwfn06ISGOjVO4nTiB\nT3g47n/9RdZbb5HXo4fdZEdERl42FgA+PljCwsjYuBHvu++2WzsSSXXDVg+jI9BYVdUsRyojqXwc\nPerG5Mm+JCS4ERGRRY8e9skzWeIYeFYW3u++i9eyZeS8+CKZy5aBl5dd2szndG7u1dX0fHxINsp5\nHLYiYxiuia2+dwz6kJTERUhJEUyc6EOfPjXp1s1EbGya3YxFsWgahrVr8b/3XtxPnCBt505yX3nF\n7sbiWE4OR41GPV9JYbKzCfT0tGtbEkl1w1YPYwWwR1GUvwq/qaqqXLhXzcjLg2XLvJg715u+ffU4\nRd269ks7XriW9g+ff87A8HCCsrPxnTQJt7NnyVq0iDwHPLnmWCy8e/Ysn54/z9ODB6N++iknC8Uw\ngleuJHzsWLu3W12R3oVrYqvB+BiYD+zncgxDUs3Yts2D8HBfAgMtrFmTzq232jdOUVwt7SlbtjBK\nCAwTJ5L79NM4YrpVbEYGoxMTudnbmx2tWnGDpyf/HTv2illS4WPHEtSsmd3blkiqE7b+OpNVVX3T\noZpIKoy//3ZjyhQfjh93Z8aMbHr3Njmk6l1xtbRnpKXxZp8+jH3uObu3l5KXx9TTp9mens7sG27g\n4YCAgs+CmjVj6dSpdm/TVZAxDNfEVoPxlaIo84ANhd+U02qrFoXLowYGwksvDWTVqlasWuXJSy/l\nEBmZae+QwZWUUEtbS7Hvkh5N0/j60iWmnDrFo7Vqsbeal0uVSJyFrQbjcevfuwq9J6fVViFKKo/a\nt+9z7N3bgAYNHFgeFXA/cADD8eMOqaVdmJO5uYxJTORsXh5fNG/O/8kFeA5Beheuia0rvbs6WhGJ\nYympPKqHRwQNGjioPCrgdvw4PhERePz8MwOHD2fyihV2q6VdGJOmsejcOeafPctLDRrwfP36GBwx\nriaRuDDXNBiKonRRVXWHoigPFPe5HJKqGmgaHDkicGZ5VJGUhM+cORg2bCBn1CgyFy8m0NeXYaGh\nREREkHrsGAEhIWWupV2YA1lZvJKQQAMPD2JuuonmDh1Xk4CMYbgq1/MwHgF2AFOK+UwOSVVy8ldo\nz53rTXy8BxQzIOSI8qje772H5/Ll5A4dStpPP6HVqlXweX4tbXvccNLMZt5MTmbtpUvMaNyY/rVq\nIaRXIZE4jOsZjEkgh6SqGhYLfPedgbff9sZshrFjc7j99v6Ehk6+Ioahl0cdZp9GMzPxXroUr0WL\nMPXpQ1psLFqjRiV+vbzG4rvUVCYkJdG1Zk32hoRQ26HZDyVFkd6Fa3K9X9mPwJ3OUERSfsxmWLvW\nwNtv++DlpTF+fA4PPmhCz6XXtKA8av4sKbuURzWZ8Fy+HJ9588i75x7SN27E0rKlPQ6nWJKMRiYm\nJXEsN5clzZrRURY1kkicxvUMhvTvqwB5efD115688443tWppTJuWRffueVetpcgvj2oXLBYMa9bg\n8+abWJo1I2P5csxt29q8e2mHpMyaxqcXLjAnOZmn6tXjo6AgmVW2ApExDNfkegYjyJqptlhUVR1i\nZ30kpcBkgtWrPXn3XW8aNbIwZ04WnTpdbSjsiqbhsX07PjNmgJsbWW+/TV7nzg5sEA5nZ/NKYiKe\nQrC+ZUtCvL0d2p5EIime6xmMdPRKe5JKRG4urFzpyXvveXPjjRbmz8/ivvscmBjQivuBA/hMn47b\n6dNkh4dj6tu3zBXvbHk6zbJYmJuczIqUFMIDA3myTh3cZFC7UiC9C9fkegbjoqqqnzlFE8l1yc6G\nzz/34oMPvGnd2sxHH2XSrp3Z4e0WXkuRPX48xsGDHZLzqTDb0tMZm5hIW19fdrdqRUODwaHtSSSS\n63O9QeBfnKKF5JpkZsKCBV7cdVcAu3d7sHx5Bqqa4XBjIZKS8H35ZWo+/DB5d91F6k8/YRw61C7G\nIjY2ttj3z5lMPBcXx+jERGbfcAOfBAVJY1EJKan/JNWba/7yVVW105xLSVlIS4NPPvFmyRIv2rfP\nQ1UzuO02x3sU11tL4Qg0TWPFxYvMSE7midq12dOqFX4y/5NEUqmQk9crIampgg8/9OKjj7zo2tXE\n2rXp3HyzY0uiAqVeS1EW4uLjC9KKf75tG+FhYRgbNGBMYiIZFgtfBQdzu6+vXduU2B8Zw3BNpMGo\nRFy8KFi82Itly7zo1cvExo3ptGzpBEPhpLUUcfHx9Js373I97exsYmbPxvLYY0y84w6erVcPdxnU\nlkgqLdJgVALOnRMsXOjNF1940qePiZiYdJo3t7+hKFztjsBABk6axI2HDpV5LUVpiYiMvGwsAHx8\nuPTkkzy0aRMjevRwWLsS+yPXYbgm0mBUIKdPC+bP92bVKk/69zeyc2caTZo4Js14cdXupn77LS+0\nbEkDJ6ylAEg2Gi8bi3x8fEjLc/yUYIlEUn7kUtkKIDFRMH68Dx06+AOwZ08ac+dmO8xYQPHV7qYb\njXxy661OMRYAZiH0ucGFyc4m0NPTKe1L7If0LlwTaTCcSFycG6+84kunTv74+MC+fWm8+WY2jRo5\ntngRZjPi8OFiq905LL95IZJNJoaePEli164ELl9+2WhkZxO8ciXhYWEO10EikZQfpwxJKYqyEAgD\nglVVPasoyiygA3AMGK6qqqXQd4cAtwHnVFWd6wz9HM0//7jxzjvebNpk4KmncvnppzTq1nWwkQDI\nyMBr5Uq8lizBIy3N4dXuiqJpGl9cvMiM06cZWrcuH3bpwpmWLYmIjOTYuXOE1K9P+NixBDVr5jAd\nJI5BxjBcE2d5GG8BvwIoitIGaKOq6v2AEehd5LvLVVUdD9zoJN0cxtGjbgwf7suDD9akWTMLBw6k\nER6e43BjIZKS8HnjDQLuuAOPPXvIXLyY/lu3Mjk4WDcSXK52N9AO1e6K45/cXB795x8+v3CBNS1a\nMLlRI7zd3Ahq1oylU6cS8cQTLJ06VRoLiaQK4RQPQ1XVREVRcqybHYD91v/3W7e/UxRlMFBfVdX3\nFEUJBC45QzdHcPiwO/PmebN3rwcjRuQyb14q/v6Ob9f911/xWrwYw5YtGBWF9JgYLM2bA9AUGBYd\nTUShWVL2qHZXFJOmsfDsWRacO8fohg15roSpsvLptGoj+881qYhZUnWAeOv/8cC9AKqqrgBQFMUL\nmA6MsUVYYdc4P12BM7bj4hJ45ZX5XLzoSUhIAOHhA9m+/RKrV7fi5MkGjByZw+DBMXh7m/H3d6A+\nFgtds7LwWrSIvKNH+eeRR2h86BBaQID+eWJiwffjEhJoP2TIFfvHJSTYTZ9le/eywNub5gEBbL3p\nJhJ++okfjh2rkP6R23Jbbl97uywITXPCWDqgKMo2YCDwONBIVdVpiqIMA1qqqhpe6HtLgIZAAjBX\nVdWEkmRu3bpVu/NO59d3iotLoF+/ZVdUr/PxmUqNGi8yenRDhgzJvWr2qN3JysJz9Wq8Fy9G8/Mj\nZ+RITI8+ChWQdynTbGbWmTOoKSlMb9QIpXbt65ZKlWPgVRvZf1WbgwcP0q1bt1KvknWmh5GvXCyQ\nH8xuB6wt/CVVVUc4UacyERGxqpCxAPAjO3s6Dz4YwXPP2alAUQmI5GS8PvkEr8hI8tq1I+u998hr\n377MacbLy/b0dEYnJnK3ry+xrVpRXyYKlEiqLQ43GIqitADmAa2BSGA+cFBRlN3AEWCzo3WwF5oG\nP//sTmysGxQzSfXcOce17X74MF6LFmHYsAFjaKjDS6Fej4t5eUw5dYrYjAzmNWlCj1IGaeTTadVG\n9p9r4nCDoarqP+jDUIXZ6Oh27UlcnBuq6omqeiIE1K0rSE6+epKq3WeoahoeW7fivXAh7sePk/vM\nM6QdOIBWp46dGyqNShrRly4x+dQpHq1Viz0hIdSQWWUlEpdApgYpgbQ0WLPGk9WrPTl+3J3HHzey\nZEkmd95pJj5+AP36Tb4ihhEcPJnwcDtlg8/JwVNV9fiEhwe5I0di7NcPKnhFdKLRyNjEROJNJj5v\n3py7/Yp6WbYjx8CrNrL/XBNpMAphMsH27R6sXu1FTIyBzp1NjByZS/fupivu1UFBTYmOHkZERET+\nDFXCw4cRFNS0XO2Lc+fw+vRTvJYtw/yf/5A1ezZ5999fYfGJfMyaxqcXLjA7OZkR9evzef36eLrJ\nJAESiavhtFlSjsAes6Q0DX77zZ3Vqz2JjvYkKMjCwIG5PPaYidq1nXNu3I4exXvxYgzffovpscfI\nGTECS0iIU9q+HkdycnglIQF3IXivSRNaeXtXtEoSiaScVIVZUpWKU6cEUVGerFrlRVYWKIqR775L\np0ULJ9SfAD0+sXMn3osW4f7bb+Q+9ZRe2a5ePee0fx1yLRbePXuWT86fZ1JgIGF16+Ima1VIJC6N\nSxmMjAz47jtPVq3y5Ndf3enTx8Tbb2dxzz15OG2EJTcXz6+/xmvRIoTFQs4LL2D8/HOoRE/uP2Zm\n8nJCAi28vNjRqhU3OCB2IsfAqzay/1yTam8wzGbYvduD1as92bTJwD335DFkSC4PPmhy/OK6QoiL\nF/FatgyvTz7BfMstZL/xBnkPPFDh8YnCpJnNzDx9mvWpqbx5ww08GhBw3QV4EonEdai2BuPIETdU\n1QtV9aRBAwtPPGFk+vRs6td3bszG7e+/8VqyBM/oaEwPP0x6VBSWW291qg62sDktjbGJiXStWZO9\nIWV731cAAA9LSURBVCHU8nDspSGfTqs2sv9ckypvMIYPn0t4+ECCgppy7pzg66/1qbBnz7qhKEai\notK55RYnxSXy0TQ89uzBa9EiPH7+mdywMNJ++AGtYUPn6mEDZ00mJp06xS9ZWSxs2pRONWtWtEoS\niaSSUuUNRlRUODt3TiEk5Hl++60FDz1kYtq0bDp2zMOR68muqo8dHk7Txo3xXLNGj09kZZHz/PNk\nfvwx+Po6TpFSEBcfT0RkJMlGI4GenrR+7DEWurszqHZt5oeE4OvEqbJyDLxqI/vPNanyBkNPyTGD\n5s1n8ccfo6lRw/EtFlcfe8rWrYzy8KDJzTeTPWkSed2747xI+vWJi4+n37x5nBg0SK+rnZ3Nt4sX\nE/nKKzzYuHFFqyeRSKoAleeOVi788PIyO8VYQPH1sWekpPDJf/5Dxtq15PXsWamMBUBEZORlYwHg\n44Nx6FCiV6+uEH3k02nVRvafa1INPAxwSB6n4sjJwWP3btx37y62PrYlJ6e4vSoFf2Vnc9W0MB8f\nko3GilFIIpFUOSrXY3CZyM/jNNAh0kVKCp6rV+M3dCi1QkLwfvddaNCgoNTpZS1waH3sspJmNjMu\nMZFjRiNkZ1/5YXY2gRWUnyq/mIukaiL7zzWp8gYjNDSC6Ojy53EqjFtcHF6LF1Ojb18C/vMfDOvW\nYerZk9QDB8jYsIEBn3/u1PrYZUHTNL65dIn2R49i0jQ2jRxJ8MqVl41GdjbBK1cSHhZWoXpKJJKq\ng8vnkgJA03D/5RcMGzZg2LgRt3PnMPXsiemhhzB17lzsLKdiZ0nZuT52WYnLzWVcUhKJJhPvNGnC\nvdasskVnSYWHhRHUrFkFayuRSJxNWXNJua7BMBrx2L0bw8aNeG7ciObnh6l3b4y9e2O++24cOifX\nQZg0jUXnzjH/7FlG1q/PSJlVViKRFINMPmgDIjUVj++/x3PDBjy2bcMSEoLxoYdI/+YbLK1aVbR6\n5WJ/ZiajExMJNBiIuekmmnt5VbRK10TO46/ayP5zTaq9wRCJiXhah5o8DhzA1KEDpt69yZo1C61B\ng4pWr9xcystjenIym1JTmdG4Mf1q1ZL5nyQSiUOo8gZj7vDhV8YPNA3333+/HI84dQpTz57kPvMM\nGcuXQzmqxFUm8kulTjl1it4BAfxw880EVKFhNPl0WrWR/eeaVHmDER4VxeSff+aZCRNocfAgho0b\nwWDA9NBDZM+aRV67dlUyHnEtTuTmMjYxkTN5eUQ2b067amIEJRJJ5abKR0T9gJknT6KGh6M1bEjG\n6tWk/fwz2TNmkNe+fbUyFkaLhXfPnKHHX3/RuWZNtrdqVWWNhZzHX7WR/eeaVHkPA3SjYbr1VnJG\nj65oVRzGvowMRicl0cRgYOtNNxFUyYPaEomk+lEtDEZlXWVtD1L+v717D46yOuM4/g0oEIVGIIAI\nBIKSoBatta33ekHtxRtFfDqjBeO0oyhSb9ixpXgFi4XRFooiUxUHpPZRcLTtVNF6KV4qtQjOWIE6\nUTMpAQJGJJCEXLZ/7JsSQ7J5iWQ3b97f55/s9exJnsn72/ec3XPq6rirrIwXP/+cWV1oUyONgUeb\n6hdPkR+S6ozfsj4QEokET1VUcOqGDfTIyuKt0aMZp09AiUgGRT4wZk2YwFUrVnSab1kfCMU1NYwv\nLmb+1q0sGTGCXw8dyle60FwMaAw86lS/eIr8kNStixZlugsHzJ6GBuaVl7OwvJwbBw5k8oABHKQz\nChHpJCIfGF3Fm5WV3FxaSn7PnrxSUMCwDK0imy4aA4821S+eFBgZ9mldHXeUlfHyzp3MPuIILuwi\nk9oi0vVEfg4jqhKJBE9++imnbtjAod268VZhIRfFaFJbY+DRpvrFk84wMuDD4Jvan9XXsyw/n6+3\nsHy6iEhno8BIo5qGBn67dSuLtm3j5kGDuDo3N7aT2hoDjzbVL54UGGnyemUlt5SWMqpnT14tKGBo\nF5/UFpGuR3MYHWx7XR1TSkq4tqSE2wcPZml+vsICjYFHneoXTwqMDpJIJFgWTGrndO/Om4WFXJCT\nk+luiYi0m4akOsDG6mpuKS1lV0MDnp/P8ZrU3ofGwKNN9YsnBcYBVN3QwANbt/LItm3cOmgQP8nN\npXtMJ7VFpOtRYLTTJyUlzFq8mM179nB4jx6cO2ECc7KyODo7m9cKChiieYqUtCd0tKl+8aTAaIdP\nSkoYP3cuH11+OWRnQ1UVz8ybx9ypU7lyxIhMd09EpENo0rsdZi1evDcsALKzqS8q4o3lyzPbsQjR\nu9NoU/3iSYGxnxKJBO/v3r03LBplZ7N5z57MdEpEJA0UGPvhvd27GVdcTGldHVRVffHOqioO17xF\naPocf7SpfvGkwAhhU20tU0pKsI8+YlxODi9PnUr+smV7Q6Oqivxly5heVJTRfoqIdCRNeqdQWV/P\nvPJyHtm2jaL+/Vk9enRy57vcXFZMm/aFT0lNnzaN4Xl5me5yZGgMPNpUv3hSYLSgPviW9uzNmzm9\nd29ea2Htp+F5eSy6/fYM9VBEJP00JNXMKzt3ctbGjfyhooIl+fk8PHy41n7qABoDjzbVL550hhFY\nX13NHZs28WFNDXcOHqyd70REmol9YJTX1jJ7yxb+tGMHNw0cyJIRI+jRTSdeHU1j4NGm+sVTbAOj\nqqGBheXlLCgvx/r25e3CQvoeFNs/h4hIm2L3VrohkeDpigpOXr+ed6uqWDlqFPcOGaKwSDONgUeb\n6hdPsTpK/qOykl9u2gTAwrw8TundO8M9EhGJjlgERnFNDXeWlbF2925mDB7MpYcdRjdNaGeUxsCj\nTfWLpy4dGBV1dczZsgWvqGDKgAE8nJdHtia0RUTapUsePfc0NPBQeTknbdhATSLBm4WF3DRokMKi\nE9EYeLSpfvHUpc4wEokEf96xg7vKyhjZsyfPHnkkR/fqleluiYh0CZEPjKvvvpvpRUVsz81lxqZN\n7KivZ87QoZzdp0+muyYpaAw82lS/eIp8YDx9/vn8dfZsssePZ8YJJ3B5v37aR1tEpANEf1A/O5td\nkyZx+htvMLF/f4VFRGgMPNpUv3iKfmAAZGezrbY2070QEenSukZgaLe7yNEYeLSpfvEU/cDQbnci\nImkR+cCYsHIlK7TbXeRoDDzaVL94ivynpLTrnYhIekT+DEOiSWPg0ab6xZMCQ0REQlFgSEZoDDza\nVL94UmCIiEgoaZn0NrMFQBGQ7+5bzWw2cBqwAbja3RuaPPYHwElApbvPTEf/JP00Bh5tql88pesM\n41fAOgAzGwOMcfczgD3A95o+0N2fcffbgOFp6puIiISQlsBw91KgOrh6GrA6uLw6uI6ZXWFmNwaX\nlwCl6eibZIbGwKNN9YunTHwPox9QElwuAU4GcPcnAMwsy90nmtl8M+vl7tWttAPAmjVrOrSz0jEO\nOeQQ1S7CVL94ykRgbGfvcNPw4HpT15rZSGB3W2ExduxYLU0rIpIm6QyMxoP768Cc4PK3gGebPsjd\nH0xjn0REJKQODwwzOxKYCxwLLAbmA2vMbBXwAfBCR/dBRES+vKxEIpHpPoiISAToi3siIhKKAkNE\nREJRYIiISCgKDBERCSUSGyiFWYvKzCYBXwXK3X1O661JuoWsn9YQ64TCrgNnZucCP3X3izPWWdlH\nyP+9G4AxQLG735uqvaicYYRZi2qpu/8MGJmZLkoKbdZPa4h1Wm3Wzsy6A99Fy/l0RmGOnQ3ADuDD\nthqLRGCEWYsqSMrDgc/S30NJJUz9QGuIdUYha1cEPM7eL+dKJxGyfg+5+y3ARWZ2cKr2IhEYzTRf\ni6ofgJn1Au4GUp5SSca1Vr8sd58I5Aa1lM6nxdoBXwPGAyea2ehMdExCaa1+PYKf1bSRCVEMjNbW\novoNMACYZWbDMtExCaW1+l1rZnMJsYaYZEyLtXP3qe5+F/COu6/PVOekTa39700O5jpK3b0mVQOR\nmPQOpFyLyt0nZ6JTElpb9dMaYp1X2HXgrktnpyS0tv737g/bUKcPDK1FFW2qX3SpdtHWEfXTWlIi\nIhJKFOcwREQkAxQYIiISigJDRERCUWCIiEgoCgwREQlFgSEiIqEoMEREJBQFhkSWmTWY2VVNrl8Z\nLGB4oNp/xczOOVDtpXidS8xsrZn9saNfS+TLUGBIlH0O3GBm2U1ui+I3Ua8DZrj7DzPdEZFUOv3S\nICIpdAOeAKYB9zS9w8zOBGYGa/9jZo8Bq9z90eDyRuAcYBRwI3AKcAnJVTy/7+51QVOXmdmdwGBg\nnrvPD9obB8wk+T/0krtfH9xeAtwPTAQudfePg9t7Ag8AZwD1wCx3f8rMpgCnAiPNbLC7L2ryO3yh\nLaAP8DvgMOC/wGR3LzGz94HL3P3fZjYLONbdxwVLVX8MDAOmBr9nBTDf3R9r599cYkxnGBJlhwIL\ngCvMbGAL96c62zie5KY/vyAZOk+RXHNnCHBuk8dtcfdvk9w7YKaZ5ZnZUcHzTgKOAXLMrHGnuSFA\ntruf2BgWgduC28cA3wHmmFmBuy8A3gGuaRoWzdsiuU/IcuAOdz8eWAYsDR73InBmcPk4oK+ZdQO+\nAbwd7Ip3N3A+8E3g+RR/F5FWKTAk6qqB+0geEGv343kr3b2e5EYy2939neD6uyTPJhr9HcDdtwL/\nBE4EziP5rn0V8C+SB+HGZaOz2LsiaFMXAA8GbW0BniN5AG9LY1sFQK27vxq0sRQ4zsz6ACuBM80s\nB6gB3iMZFt8G/hY8/0Hg98B57l4W4nVF9qEhKekKHgeuB5rvxZBy97BA85CppfWd4+qAXcHl59z9\nmhYekyC55WVL2jO/0rSt1p7/GrCQ5HDXKpJnI2OB00kO1+HuPzezUcBsM/uxu1/Wjr5IzOkMQ6Is\nC5Lb8wLTSYZGo83AsWaWY2bDSb7bTtlOK44CMLNjgDHA28BLwMXB0BRmNjREW38huUlUlpkNAi6k\n7eWlm7a1ETg4mJvBzK4A1rn7TnffBRQDk4BXSQbIWcAwd//AzLqb2dnu/h9gBskwEdlvCgyJsv+/\n43b350keNBuvbwBWkFz3/z6S4//7PK+F680vn2Bmq4EngYnuviM48F4DLDezd4FHm8yhtHYWMJu9\nw0UvALcG7aR6TtPfr47kNqj3mNk64EckJ8MbrQTOcvd17r6N5O6Ta4P7egNXmtlakkNhN7XyeiIp\naT8MEREJRWcYIiISigJDRERCUWCIiEgoCgwREQlFgSEiIqEoMEREJBQFhoiIhPI/fnyQ82x2ezgA\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf03620e90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=10, n_ints=0, n_strs=0, float_format='%.4f')"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"String values"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 3.85 : 1\n",
"Pandas to Fast-C speed ratio: 2.22 : 1\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf02f03710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=0, n_ints=0, n_strs=10)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Quoted string values"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 2.26 : 1\n",
"Pandas to Fast-C speed ratio: 2.08 : 1\n"
]
},
{
"data": {
"image/png": "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\njIiIqPJf5CJ42PBby+0AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf036b8050>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=0, n_ints=0, n_strs=10, str_val=\"'asdf asdfa'\")"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"String values without whitespace stripping"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 4.78 : 1\n",
"Pandas to Fast-C speed ratio: 1.32 : 1\n"
]
},
{
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf02ef6790>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=0, n_ints=0, n_strs=10, strip=False)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Integer values"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fast-C to Python speed ratio: 9.90 : 1\n",
"Pandas to Fast-C speed ratio: 1.07 : 1\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fcf02ef6d10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(n_floats=0, n_ints=10, n_strs=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test auto_format_func"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from astropy.table.pprint import _auto_format_func\n",
"from astropy.io.ascii.cparser import auto_format_func"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"val = 1.11\n",
"format_ = '%0.2f'"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n",
"Wall time: 19.1 µs\n"
]
},
{
"data": {
"text/plain": [
"'1.11'"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time auto_format_func(format_, val)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n",
"Wall time: 10 µs\n"
]
},
{
"data": {
"text/plain": [
"'1.11'"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time _auto_format_func(format_, val)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The slowest run took 19.51 times longer than the fastest. This could mean that an intermediate result is being cached.\n",
"1000000 loops, best of 3: 868 ns per loop\n"
]
}
],
"source": [
"%timeit auto_format_func(format_, val)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The slowest run took 15.01 times longer than the fastest. This could mean that an intermediate result is being cached.\n",
"1000000 loops, best of 3: 397 ns per loop\n"
]
}
],
"source": [
"%timeit _auto_format_func(format_, val)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python2",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment