{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Gravitational Wave Localizations and Galaxy Crossmatch Module\n", "\n", "**Lecturer:** Leo Singer
\n", "**Jupyter Notebook Author:** Leo Singer, Dave Cook, & Cameron Hummels\n", "\n", "This is a Jupyter notebook lesson taken from the GROWTH Winter School 2018. For other lessons and their accompanying lectures, please see: http://growth.caltech.edu/growth-astro-school-2018-resources.html\n", "\n", "## Objective\n", "Learn how to use LIGO/Virgo localizations and match with galaxies\n", "\n", "## Key steps\n", "- Manipulate HEALPix localization files\n", "- Cross-match a LIGO localization with a galaxy catalog\n", "\n", "## Required dependencies\n", "\n", "See GROWTH school webpage for detailed instructions on how to install these modules and packages. Nominally, you should be able to install the python modules with `pip install `. The external astromatic packages are easiest installed using package managers (e.g., `rpm`, `apt-get`).\n", "\n", "### Python modules\n", "* python 3\n", "* astropy\n", "* numpy\n", "* scipy\n", "* matplotlib\n", "* healpy\n", "* ligo.skymap\n", "\n", "### External packages\n", "None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, some imports: Numpy, Matplotlib, Healpy, and parts of Astropy." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import astropy.utils.data\n", "from matplotlib import pyplot as plt\n", "import numpy as np\n", "import healpy as hp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are some extra imports for the galaxy cross matching:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from astropy.table import Table, vstack, hstack, Column\n", "import astropy.units as u\n", "from astropy.coordinates import SkyCoord\n", "import ligo.skymap.plot\n", "from scipy.stats import norm\n", "import scipy.stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And configure Matplotlib to send plot output directly to the notebook:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## HEALPix Basics\n", "\n", "This section on using HEALPix localization files is adapted from the [LIGO/Virgo Public Alerts User Guide](https://emfollow.docs.ligo.org/userguide/tutorial/skymaps.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download and read localization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start by downloading a sample localization file from the User Guide. We could do this on the command line using `curl`:\n", "\n", " $ curl -O https://emfollow.docs.ligo.org/userguide/_static/bayestar.fits.gz\n", "\n", "But after all, this is a Python lesson, so let's download the file using the handy `astropy.utils.data.download_file` function from Astropy." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "url = 'https://emfollow.docs.ligo.org/userguide/_static/bayestar.fits.gz'\n", "filename = astropy.utils.data.download_file(url)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let's read in the HEALPix data using Healpy. Note that by default, Healpy only reads the first column, which provides the 2D probability distribution on the sky." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NSIDE = 2048\n", "ORDERING = NESTED in fits file\n", "INDXSCHM = IMPLICIT\n", "Ordering converted to RING\n" ] } ], "source": [ "prob = hp.read_map(filename)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Manipulating HEALPix Coordinates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get a quick look at a HEALPix data set, you can use the `hp.mollview` function:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hp.mollview(prob)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What actually is stored in `prob`?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2.70726059e-66, 1.27374324e-66, 2.62611513e-67, ...,\n", " 2.04700874e-40, 1.05781210e-35, 4.44174764e-31])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prob" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's a one-dimensional array! Yet it represents in 2D image. How does that work? HEALPix is a way to *index* equal-area regions on the unit sphere using integers.\n", "\n", "To decode HEALPix indices, you need to know the resolution of the map, which is described by a parameter called `nside`. `nside` is the number of subdivisions of 12 base HEALPix tiles, so the relation between the length of a HEALPix array, `npix`, and its resolution, `nside`, is\n", "\n", "$$\n", " \\mathsf{npix} = 12 \\cdot \\mathsf{nside}^2.\n", "$$\n", "\n", "The functions `hp.npix2nside` and `hp.nside2npix` convert between length and resolution." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "50331648" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "npix = len(prob)\n", "npix" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2048" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nside = hp.npix2nside(npix)\n", "nside" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `hp.pix2ang` allow us to convert from (ra, dec) and HEALPix pixel index.\n", "\n", "*Note*: by default, these functions return 'physics' spherical coordinates $(\\theta, \\phi)$ in radians, but you can switch to 'astronomy' spherical coordinates in degrees by passing the keyword argument `lonlat=True`.\n", "\n", "Let's look up the right asce3nsion and declination of pixel 123." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(129.375, 89.81725848475484)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipix = 123\n", "ra, dec = hp.pix2ang(nside, ipix, lonlat=True)\n", "ra, dec" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `hp.ang2pix` does the opposite. Let's find the pixel that contains the point RA=194.95, Dec=27.98." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "13361492" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ra = 194.95\n", "dec = 27.98\n", "hp.ang2pix(nside, ra, dec, lonlat=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the most probable sky location? Just find the pixel with the maximum valuem, and then find its right ascension and declination." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "32883013" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipix_max = np.argmax(prob)\n", "ipix_max" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(194.30419921875, -17.856895095545468)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hp.pix2ang(nside, ipix_max, lonlat=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Probability distributions with scipy.stats" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Imagine I have a t statistic with 3 degrees of freedom.\n", "#Scipy provides a t distribution class that we can use to get values from \n", "#the t statistic probability density function (PDF).\n", "#As a start, we plot the PDF for a t statistic with 3 degrees of freedom:\n", "\n", "# Make a t distribution object for t with 3 degrees of freedom\n", "t_dist = scipy.stats.t(3)\n", "# Plot the PDF\n", "t_values = np.linspace(-4, 4, 1000)\n", "plt.plot(t_values, t_dist.pdf(t_values))\n", "plt.xlabel('t value')\n", "plt.ylabel('probability for t value')\n", "plt.show()\n", "\n", "#The t distribution object t_dist can also give us the cumulative distribution function (CDF). \n", "#The CDF gives the area under the curve of the PDF at and to the left of the given t value:\n", "\n", "plt.plot(t_values, t_dist.cdf(t_values))\n", "plt.xlabel('t value')\n", "plt.ylabel('probability for t value <= t')\n", "plt.title('CDF for t distribution')\n", "plt.show()\n", "\n", "#Say I have a t value x drawn from a t distribution with 20 degrees of freedom. \n", "#The PDF gives the probability for given values of x. Because it is a probability density, \n", "#the sum of the probabilities of all possible values for x: ∞" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Show relationship of PDF and CDF for three example t values.\n", "#give the students most of the code for these plots\n", "example_values = (-1.5, 0, 1.5)\n", "pdf_values = t_dist.pdf(t_values)\n", "cdf_values = t_dist.cdf(t_values)\n", "fill_color = (0, 0, 0, 0.1) # Light gray in RGBA format.\n", "line_color = (0, 0, 0, 0.5) # Medium gray in RGBA format.\n", "fig, axes = plt.subplots(2, len(example_values), figsize=(10, 6))\n", "for i, x in enumerate(example_values):\n", " cdf_ax, pdf_ax = axes[:, i]\n", " cdf_ax.plot(t_values, cdf_values)\n", " pdf_ax.plot(t_values, pdf_values)\n", " # Fill area at and to the left of x.\n", " pdf_ax.fill_between(t_values, pdf_values,\n", " where=t_values <= x,\n", " color=fill_color)\n", " pd = t_dist.pdf(x) # Probability density at this value.\n", " # Line showing position of x on x-axis of PDF plot.\n", " pdf_ax.plot([x, x],\n", " [0, pd], color=line_color)\n", " cd = t_dist.cdf(x) # Cumulative distribution value for this x.\n", " # Lines showing x and CDF value on CDF plot.\n", " x_ax_min = cdf_ax.axis()[0] # x position of y axis on plot.\n", " cdf_ax.plot([x, x, x_ax_min],\n", " [0, cd, cd], color=line_color)\n", " cdf_ax.set_title('x = {:.1f}, area = {:.2f}'.format(x, cd))\n", " # Hide top and right axis lines and ticks to reduce clutter.\n", " for ax in (cdf_ax, pdf_ax):\n", " ax.spines['right'].set_visible(False)\n", " ax.spines['top'].set_visible(False)\n", " ax.yaxis.set_ticks_position('left')\n", " ax.xaxis.set_ticks_position('bottom')\n", " \n", "#For example, say I have drawn a t value x at random from a t distribution \n", "#with 20 degrees of freedom. The probability that x<=1.5 is:\n", "\n", "# Area of PDF at and to the left of 1.5\n", "t_dist.cdf(1.5)\n", "#>0.9253...\n", "\n", "#The total area under the PDF is 1, and the maximum value for the CDF is 1. \n", "#Therefore the area of the PDF to the right of 1.5 must be:\n", "\n", "# Area of PDF to the right of 1.5\n", "1 - t_dist.cdf(1.5)\n", "#>0.0746...\n", "\n", "#This is the probability that our t value x will be >1.5. \n", "#In general, when we sample a value x at random from a t distribution, \n", "#the probability that x>q is given by:\n", "\n", "#ℙ(x>q)=1−CDF(q)\n", "#where CDF is the cumulative distribution function for a t value.\n", "\n", "\n", "#have the students fill out the example for 90% or something\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Working with LIGO/Virgo 3D localizations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "LIGO/Virgo localization files for compact binary mergers include directional estimates of distance. The distance information is stored in three additional columns. To get the distance estimates, we need to ask for all four columns: `PROB`, `DISTMU`, `DISTSIGMA`, and `DISTNORM`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "url = 'https://dcc.ligo.org/public/0146/G1701985/001/bayestar.fits.gz'\n", "filename = astropy.utils.data.download_file(url)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NSIDE = 2048\n", "ORDERING = NESTED in fits file\n", "INDXSCHM = IMPLICIT\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n" ] } ], "source": [ "prob, distmu, distsigma, distnorm = hp.read_map(\n", " filename, field=[0, 1, 2, 3])\n", "\n", "npix = len(prob)\n", "nside = hp.npix2nside(npix)\n", "pixarea = hp.nside2pixarea(nside)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=225709\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
CLUIDID_OTHERNAMERADECDMDM_KINBTCARATIO_B2APATYPEM21RA_NEDDEC_NEDZZERRA_NEDB2A_NEDPA_NEDTYPE_NEDSOURCEB_TB_TERRB_R25B_R25ERRFUV_1FUVERR_1NUV_1NUVERR_1RA_SDSSDEC_SDSSPETROMAG_UPETROMAG_GPETROMAG_RPETROMAG_IPETROMAG_ZPETROMAGERR_UPETROMAGERR_GPETROMAGERR_RPETROMAGERR_IPETROMAGERR_ZMODELMAG_UMODELMAG_GMODELMAG_RMODELMAG_IMODELMAG_ZMODELMAGERR_UMODELMAGERR_GMODELMAGERR_RMODELMAGERR_IMODELMAGERR_ZDESIGNATION_WISERA_WISE_1DEC_WISE_1W1MPROW1SIGMPROW1SNRW2MPROW2SIGMPROW2SNRW3MPROW3SIGMPROW3SNRW4MPROW4SIGMPROW4SNRDESIGNATION_2MASSRA_2MASSDEC_2MASSR_K20FEJ_M_K20FEJ_MSIG_K20FEJ_FLG_K20FEH_M_K20FEH_MSIG_K20FEH_FLG_K20FEK_M_K20FEK_MSIG_K20FEK_FLG_K20FECOORD_SOURCEBTC_SOURCESIZE_SOURCEDM_SOURCEDM_KIN_OTHERDM_RANGEZ_SOURCEDM_FLAGRA_GALEXDEC_GALEXNUV_2NUVERR_2FUV_2FUVERR_2FLAGS_FUVRA_WISE_2DEC_WISE_2WISE1WISE1ERRWISE4WISE4ERRFUVNUVFUVERRNUVERRMAGBLUM_BSFR_FUVMSTARDISTMPCHAGALHACANDdP_dVPdP_dAP_A
int64bytes40bytes30float64float64int64float64float64float64float64float64bytes40float64float64float64float64float64float64float64float64bytes3bytes12float64float64float64float64float64float64float64float64float64float64float32float32float32float32float32float32float32float32float32float32float32float32float32float32float32float32float32float32float32float32bytes19float64float64float64float64float64float64float64float64float64float64float64float64float64float64bytes16float64float64float64float64float64int64float64float64int64float64float64int64bytes3bytes17bytes17bytes17bytes47float64bytes3int64float64float64float32float32float32float32int16float64float64float32float32float32float32float32float32float32float32float32float64float64float64float32int16int16float32float32float32float32
231192N/A2dFGRS S805Z4170.00162-56.1410699999933.18027481140323nan1e+201e+201e+20N/A1e+200.00162-56.141060.0103816464543342590.0002971e+201e+201e+20GNED_20161120nan1e+20nan1e+2020.34190.15838620.03650.0858811e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J000000.26-560827.50.0011127-56.140987215.9830.04623.715.9180.1248.712.5581e+200.39.0021e+20-0.4N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz33.09060.08967481140322775NED00.0026155762934943604-56.1407478334413920.03650.0858809820.341930.1583855500.0011127-56.140987215.9830.0469.0020.520.341920.03650.158386nannannan0.0164270836265184479255697.8624861443.25686000.00.00.00.0
231193472509PGC5973600.0068-39.5130999999933.3151041868750117.841e+200.81283175.0N/A1e+200.0068-39.513090.0110466880723834040.0001191e+201e+201e+20GNED_20161120nan1e+20nan1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20N/A1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedclu.v2clu.v2nedz33.2254/33.18000.13510418687501158NED00.007313433062165586-39.5122984629911520.249180.1194300720.617890.2075267300.00.0nan0.0nan0.020.6178920.249180.20752673nan17.845.307357561598291e+41nannan46.027866000.00.00.00.0
231195497360PGC60.0090515.8818899999934.6656628883578415.081e+200.70794687.6-0.300000009.290.0090515.881880.0205751881003379823.3e-0519.00.7105.0GNED_20161120nan1e+20nan1e+2017.89480.052306517.50150.02428580.008745004302170415.88171271506376816.57777815.44914814.9218714.65134314.4028010.022480890.0061467030.0045977460.00564722620.0108778516.57643315.46315714.91755714.64105614.3857080.0130515050.00294021730.00270334750.00270710440.0052141347J000002.18+155253.80.009100415.881626312.1780.02346.612.0920.02348.18.110.02152.56.0190.05121.500000214+15525390.00895315.881669.513.3270.039012.5840.056012.310.0670nedclu.v2+a.40clu.v2+a.40nedz34.6900/34.57600.11399999999999721NED00.00910112526844493615.8815058617398317.5015050.02428581617.8948290.05230654400.009100415.881626312.1780.0236.0190.05117.894817.50150.0523065nan15.082.339386031800773e+430.879944101456220610355846084.14297185.72995000.00.00.00.0
231196474856PGC7505060.00996-27.7419499999935.29073622314846418.311e+200.47863164.0N/A1e+200.00996-27.741940.027438381686806680.0002971e+201e+201e+20GNED_20161120nan1e+20nan1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J000002.36-274430.90.0098518-27.741934315.2680.0426.815.1560.09112.012.1731e+201.38.9371e+20-0.4N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedclu.v2clu.v2nedz35.2500/35.20110.08963622314846731NED00.009707923128452632-27.7420348416773721.1672170.278063821.4610790.4363927500.0098518-27.741934315.2680.048.9370.521.46107921.1672170.43639275nan18.312.1238871411927357e+420.095674911511479081069583801.8125993114.32659000.00.00.00.0
231200528573PGC6753910.01362-33.5096799999934.96730712257798518.571e+200.691831144.0N/A1e+200.01362-33.509670.0236413720995187760.0002971e+201e+201e+20GNED_20161120nan1e+20nan1e+2020.66040.15174320.09160.07667591e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J000003.20-333033.70.0133729-33.509369716.6510.08313.117.3030.5152.112.2851e+200.58.3871e+201.5N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedclu.v2clu.v2nedz34.9100/34.87760.08970712257798397NED00.013499105611231244-33.5092903415969320.09160.07667585520.660370.1517431300.0133729-33.509369716.6510.0838.3870.520.660420.09160.151743nan18.571.2409655175467712e+420.12211077330362756222148532.9807124498.505714000.00.00.00.0
231206534792PGC11240390.02304-1.215599999935.574317.591e+200.7413186.9N/A1e+200.02304-1.21550.0312659218907356261e+201e+201e+201e+20UvSNED_20161120nan1e+20nan1e+201e+201e+201e+201e+200.023088624282308956-1.216374038152013218.62214317.7072617.17064717.02219216.6295490.095904490.0325833450.0160633230.0288439540.0696493518.6433717.64032217.15783516.92105516.7080970.043929440.009315410.009245760.0110898110.032711327J000005.57-011257.60.0232444-1.216023615.2920.0427.115.1080.08912.212.3980.4672.38.5541e+200.9N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedclu.v2clu.v2ned_2012112035.66000.08569999999999567N/A00.023040469206642218-1.21549750910660318.9216480.03607401619.0577370.0593869800.0232444-1.216023615.2920.048.5540.519.05773718.9216480.05938698nan17.595.3524990050153495e+420.3095167168516951358440700.9837348130.27467000.00.00.00.0
231207N/AUSGC U0010.0233326.1902899999935.135299907836774nan1e+201e+201e+20N/A1e+200.0233326.190280.0255429614335298541e+201e+201e+201e+20GTrNED_20161120nan1e+20nan1e+201e+201e+201e+201e+200.0169259660992793226.19676295402018724.76850923.12087822.39664821.95252421.497282.75815250.5922760.475191150.69665131.086400424.73939324.27878622.11059421.2519920.5618971.23949440.711362960.170685470.113038240.24993625J000005.21+261122.00.021716326.189456517.7190.2135.116.6621e+201.112.0880.4892.28.4571e+20-1.0N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz35.04560.08969990783677417NED00.00.00.00.00.00.000.021716326.189456517.7190.2138.4570.5nannan0.0nan25.256023.0658317970055924e+39nan96970633.79079935106.429000.00.00.00.0
231208231209DUKST 349-0640.02492-35.6582299999935.42525964272521nan1e+201e+201e+20N/A1e+200.02492-35.658220.029191952198743820.0002131e+201e+201e+20GNED_20161120nan1e+20nan1e+2018.7590.05915218.44430.0156661e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J000006.03-353930.00.0251585-35.658344414.6990.04623.614.5740.0618.111.170.1338.28.7111e+200.6N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz35.3356/35.29590.1293596427252055NED00.024983397999790213-35.6581785808850318.4211650.02931013718.7589950.05915200700.0251585-35.658344414.6990.0468.7110.518.75918.44430.059152nannannan0.295339127255143832044675021.7072265121.63314000.00.00.00.0
231210N/AUGC 128900.029318.2791899999936.097222767584576nan1e+201e+201e+20E1e+200.029318.279180.0397791750729084-999.060.00.91e+20GNED_20161120nan1e+20nan1e+201e+201e+2020.78610.265441e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J000007.03+081645.10.029338.2792211.5210.02348.111.6030.02248.610.4840.1268.68.6381e+200.300000701+08164480.0292258.27911823.611.8620.032611.1010.043610.7790.0596nedN/AN/Anedz36.00750.08972276758457554NED00.029219782815484018.27935205893599920.7861120.265440321.591870.5833424320.029338.2792211.5210.0238.6380.521.5918720.78610.58334243nannannan0.252870931433639370894043111.6906165.74657000.00.00.00.0
231213497361PGC120.036-6.37499999934.8547322507632314.030.05044440.3170.01.20000001e+200.036-6.3740.0224469695240259172.7e-0552.60.3170.0GNED_20161120nan1e+20nan1e+2017.71130.0678117.29680.03684060.03612959593030496-6.374013573347971516.05697414.78959714.1465413.78324113.47853850.037782530.013460680.0072698240.0080855710.01948488716.27774614.896173514.14183213.74109313.3972720.0175067860.00271096080.00248015160.0024356640.004228183J000008.65-062226.40.036046-6.374018411.9460.02348.211.9010.02642.58.5290.02740.56.660.09611.300000865-06222630.036053-6.37399926.312.2740.027011.5240.036011.240.0590nedclu.v2ned_20121120nedz34.8400/34.76510.08963225076323056NED00.03616868643439375-6.374222114506590516.8094670.03452976417.8117030.09128930400.036046-6.374018411.9460.0236.660.09617.711317.29680.06781nan14.037.323686388808671e+430.7293206317194915262072350.89321393.52904000.00.00.00.0
............................................................................................................................................................................................................................................................................................................................................................
654837N/AGALEXASC J234305.34-552311.9355.77191-55.3866899999934.663817920809926nan1e+201e+201e+20N/A1e+20355.77191-55.386680.020557714626193047-999.01e+201e+201e+20VisNED_20161120nan1e+20nan1e+2021.57270.17599220.91720.04285971e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J234305.38-552312.4355.7724516-55.386794216.1630.04822.415.1030.06217.612.3330.4192.68.2661e+201.0N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz34.63400.029817920809925624NED0355.7721764234055-55.38679042625647520.8370130.1489137121.9286040.413019270355.7724516-55.386794216.1630.0488.2660.521.572720.91720.175992nannannan0.09256044687004351263298097.9673837785.65714000.00.00.00.0
654838N/AGALEXASC J234344.33-545403.7355.93484-54.9011999999933.15866794249002nan1e+201e+201e+20N/A1e+20355.93484-54.901190.010278857313096523-999.01e+201e+201e+20VisNED_20161120nan1e+20nan1e+2020.21370.092334119.21480.01651941e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J234344.41-545403.5355.9350627-54.900992115.0470.03233.413.8560.03432.210.9560.1278.58.5580.3812.9N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz33.12900.029667942490021915NED0355.9347096300996-54.9010409786521119.2580.0348957520.2136960.092334130355.9350627-54.900992115.0470.0328.5580.38120.213719.21480.0923341nannannan0.022261448517084066183987110.1889945342.82857000.00.00.00.0
654842N/ASDSS J234403.01+003122.6356.012550.5229599999934.95860381469648nan1e+201e+201e+20N/A1e+20356.012550.522950.023546807467937471e+203.350.97122.0GNED_20161120nan1e+20nan1e+201e+201e+201e+201e+20356.01395395080610.523619933437692522.00231621.42951621.68138322.85100622.8269710.312078770.23191170.357829871.20274581.956809921.8476421.22722821.5164722.61219422.8269080.15591190.0512051250.085009250.358398380.7732769N/A1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz34.92900.02960381469647899NED0356.01120094140980.52134503880309517.6400990.02826610818.1254670.04627340330.00.0nan0.0nan0.018.12546717.6400990.046273403nan21.0132871.2970715057836036e+41nannan98.111694000.00.00.00.0
654845N/AGALEXASC J234414.08-364635.4356.05836-36.7765599999932.115015347041364nan1e+201e+201e+20N/A1e+20356.05836-36.776550.0063564451411366461.3e-051e+201e+201e+20GNED_20161120nan1e+20nan1e+2018.26180.054834118.18980.0321971e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J234414.03-364634.7356.0584841-36.776308715.0550.03630.514.7790.06117.712.2211e+201.28.2671e+201.6N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz32.08600.029015347041365658NED0356.0586949332161-36.7765091352403818.1897640.0321970418.2617550.0548340680356.0584841-36.776308715.0550.0368.2670.518.261818.18980.0548341nannannan0.0217243493058917969843546.5578939626.48519000.00.00.00.0
654864N/A2MASX J23454008+0144274356.417041.7409299999935.3877005203879116.371e+201e+201e+20N/A1e+20356.417041.740920.0286913737654685971e+2015.40.7165.0GNED_20161120nan1e+20nan1e+2018.6960.080230718.41480.0428454356.417048928266241.740976337558005817.28971716.20464315.69939915.39794915.1932320.0405788420.00642992140.00591019630.0070233010.02013248217.35351416.16076515.65992515.34259915.1289310.0227814730.00413906430.0038023340.00413068660.010281904J234540.10+014427.3356.41711631.740928814.0730.0336.213.890.04623.410.5860.10310.58.0191e+201.923454008+0144274356.4170231.7409597.714.8360.086014.1980.114014.0840.1680nedNED_20150113N/Anedz35.35800.029700520387912377NED0356.417518137019331.741270849657479618.414790.0428454318.6960030.080230680356.41711631.740928814.0730.038.0190.518.69618.41480.0802307nan16.371.3864898197522259e+430.39466617044460213515610064.078043119.54739000.00.00.00.0
654880N/AAGC 331333356.7534927.263199999935.53731436266381nan1e+201e+201e+20N/A1e+20356.7534927.26310.0307378936558961870.000321e+201e+201e+20GNED_20161120nan1e+20nan1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20N/A1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz35.50800.02931436266380416NED00.00.00.00.00.00.00356.7533827.260978116.6770.0858.8020.5nannan0.0nannannannan366645225.4569402128.07455000.00.00.00.0
654908N/AGALEXASC J235033.20-363303.2357.63789-36.55199999932.45496002982655nan1e+201e+201e+20N/A1e+20357.63789-36.5510.007433669641613967e-061e+201e+201e+20GNED_20161120nan1e+20nan1e+2018.3810.065753918.15170.03664781e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J235033.13-363301.7357.6380696-36.550484815.1040.03432.115.1380.07514.412.2311e+200.68.3451e+201.8N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz32.42600.02896002982654977NED0357.6383747584509-36.5508962292272818.1516880.03664782318.3810060.0657538850357.6380696-36.550484815.1040.0348.3450.518.38118.15170.0657539nannannan0.02701093033610680591307044.6905354730.973623000.00.00.00.0
654916N/A2dFGRS S274Z118357.82371-29.2636799999926.65351796417011319.131e+201e+201e+20N/A1e+20357.82371-29.263670.00051394279580563310.0002131e+201e+201e+20VisNED_20161120nan1e+20nan1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J235117.70-291550.4357.8237579-29.264017913.5020.02542.813.3810.0335.712.0551e+201.98.9031e+200.0N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedNED_20150113N/Anedz26.62400.029517964170114652NED00.00.00.00.00.00.00357.8237579-29.264017913.5020.0258.9030.5nannan0.0nan19.133.501418754522525e+38nan1908655.0664323762.1414285000.00.00.00.0
654960N/ASNF 20080706-004 HOST358.782387.6893999999936.14385126737829nan1e+201e+201e+20N/A1e+20358.782387.689390.040642604231834415e-051e+201e+201e+20GNED_20161120nan1e+20nan1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20nannannan1e+201e+201e+201e+201e+201e+20J235507.69+074122.7358.78208317.689643115.1670.03828.615.0690.0912.012.2520.3992.78.9051e+20-1.3N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz36.11400.029851267378290913NED00.00.00.00.00.00.00358.78208317.689643115.1670.0388.9050.5nannan0.0nannannannan2575495771.518145169.34418000.00.00.00.0
654995N/ASDSS-II SN 03674359.791620.1629899999935.8790081642414nan1e+201e+201e+20N/A1e+20359.791620.162980.035976000130176544-999.01e+201e+201e+20VisNED_20161120nan1e+20nan1e+2023.08130.20435623.70410.331849359.79156614372150.1630237553981678222.2474422.66706522.49953322.4936420.7426760.4827710.32397590.520717740.643079760.539378723.47423722.78463622.5373323.14647722.01590.523076240.142466860.162672880.377172080.53411627N/A1e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+201e+20N/A1e+201e+201e+201e+201e+2011e+201e+2011e+201e+201nedN/AN/Anedz35.85000.029008164241396628NED00.00.00.00.00.00.00359.78896890.163195316.0930.0628.7350.523.081323.7041nannan22.846945.593250283121446e+400.17582424577163125860049955.2722148149.9000.00.00.00.0
" ], "text/plain": [ "\n", "CLUID ID_OTHER NAME ... P dP_dA P_A \n", "int64 bytes40 bytes30 ... float32 float32 float32\n", "------ -------- ---------------------------- ... ------- ------- -------\n", "231192 N/A 2dFGRS S805Z417 ... 0.0 0.0 0.0\n", "231193 472509 PGC597360 ... 0.0 0.0 0.0\n", "231195 497360 PGC6 ... 0.0 0.0 0.0\n", "231196 474856 PGC750506 ... 0.0 0.0 0.0\n", "231200 528573 PGC675391 ... 0.0 0.0 0.0\n", "231206 534792 PGC1124039 ... 0.0 0.0 0.0\n", "231207 N/A USGC U001 ... 0.0 0.0 0.0\n", "231208 231209 DUKST 349-064 ... 0.0 0.0 0.0\n", "231210 N/A UGC 12890 ... 0.0 0.0 0.0\n", "231213 497361 PGC12 ... 0.0 0.0 0.0\n", " ... ... ... ... ... ... ...\n", "654837 N/A GALEXASC J234305.34-552311.9 ... 0.0 0.0 0.0\n", "654838 N/A GALEXASC J234344.33-545403.7 ... 0.0 0.0 0.0\n", "654842 N/A SDSS J234403.01+003122.6 ... 0.0 0.0 0.0\n", "654845 N/A GALEXASC J234414.08-364635.4 ... 0.0 0.0 0.0\n", "654864 N/A 2MASX J23454008+0144274 ... 0.0 0.0 0.0\n", "654880 N/A AGC 331333 ... 0.0 0.0 0.0\n", "654908 N/A GALEXASC J235033.20-363303.2 ... 0.0 0.0 0.0\n", "654916 N/A 2dFGRS S274Z118 ... 0.0 0.0 0.0\n", "654960 N/A SNF 20080706-004 HOST ... 0.0 0.0 0.0\n", "654995 N/A SDSS-II SN 03674 ... 0.0 0.0 0.0" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#load in CLU catalog\n", "clu=Table.read('data/CLU_NEDonly.fits')\n", "clucoord=SkyCoord(ra=clu['RA']*u.deg,dec=clu['DEC']*u.deg)\n", "nclu=np.size(clu)\n", "\n", "#sky localization colmns to the galaxy catalog: probability density and p-value per volume and per area.\n", "probdencol=Column(np.zeros(nclu,dtype='f4'),name='dP_dV')\n", "probcol=Column(np.zeros(nclu,dtype='f4'),name='P')\n", "probdenAcol=Column(np.zeros(nclu,dtype='f4'),name='dP_dA')\n", "probAcol=Column(np.zeros(nclu,dtype='f4'),name='P_A')\n", "clu.add_columns([probdencol,probcol,probdenAcol,probAcol])\n", "clu" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#get coord of max prob density for plotting purposes\n", "#ipix_max=np.where(prob == np.max(prob))\n", "ipix_max = np.argmax(prob)\n", "ra_max, dec_max = hp.pix2ang(nside, ipix_max, lonlat=True)\n", "center = SkyCoord(ra=ra_max*u.deg,dec=dec_max*u.deg)\n", "center" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy_healpix/core.py:519: RuntimeWarning: invalid value encountered in bilinear_interpolation_weights\n", " result = _core.bilinear_interpolation_weights(lon, lat, nside)\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy_healpix/core.py:484: RuntimeWarning: invalid value encountered in ring_to_nested\n", " return _core.ring_to_nested(ring_index, nside)\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#plot up the sky localization and overplot the galaxies\n", "ax = plt.axes(\n", " [0.05, 0.05, 0.9, 0.9],\n", " projection='astro globe',\n", " center=center)\n", "\n", "ax.grid()\n", "ax.imshow_hpx(filename, cmap='cylon')\n", "ax.plot(\n", " center.ra.deg, center.dec.deg,\n", " transform=ax.get_transform('world'),\n", " marker=ligo.skymap.plot.reticle(inner=0,outer=1),\n", " markersize=10,\n", " markeredgewidth=2)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "#calc probability density per area on the sky for each galaxy\n", "dp_dA=prob[ipix]/pixarea\n", "clu['dP_dA']=dp_dA\n", "\n", "#probability along radial distance\n", "dp_dr=clu['DISTMPC']**2 * distnorm[ipix] * norm(distmu[ipix],distsigma[ipix]).pdf(clu['DISTMPC'])\n", "\n", "#calc probability density per volume for each galaxy\n", "dp_dV=prob[ipix] * distnorm[ipix] * norm(distmu[ipix],distsigma[ipix]).pdf(clu['DISTMPC'])/pixarea \n", "clu['dP_dV']=dp_dV" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# of galaxies in 90% volume = 3047\n", " NAME dP_dV P \n", "------------------------ ---------------------- ----------------------\n", " PGC47394 6.317992998346537e-64 0.899883254360382\n", " PGC82565 6.317992998346537e-64 0.8997641503042281\n", " PGC49468 6.317992998346537e-64 0.8996450462480743\n", " PGC37565 6.317992998346537e-64 0.8995259421919205\n", " PGC70582 6.317992998346537e-64 0.8994068381357666\n", "SDSS_J124305.87+242703.8 6.334407010119384e-64 0.8992877340796128\n", " MCG -02-05-043 6.334407010119384e-64 0.899168320593648\n", " PGC40483 6.36402347040082e-64 0.8990489071076831\n", " ... ... ...\n", " UGCA 339 2.2638103395560794e-63 0.0034142113450347576\n", " HIPASS J1008-33 2.2638525648239792e-63 0.002987447665691437\n", " [TSK2008] 0687 2.263866444423913e-63 0.002560676026224261\n", "SDSS J105200.35+274532.7 2.2638875317927865e-63 0.0021339017702352706\n", " AGC748687 2.2639016072753102e-63 0.0017071235389472146\n", " PGC26218 2.2639016072753102e-63 0.001280342654210411\n", " PGC43746 2.2639016072753102e-63 0.0008535617694736073\n", " PGC32259 2.2639016072753102e-63 0.00042678088473680365\n", "Length = 3047 rows\n" ] } ], "source": [ "#use normalized cumulative dist function to calculate Volume P-value for each galaxy\n", "clu.sort('dP_dV')\n", "clu.reverse()\n", "cum_sort=np.cumsum(clu['dP_dV'])\n", "cumnorm_sort=cum_sort/np.max(cum_sort)\n", "clu['P']=cumnorm_sort\n", "\n", "#ID galaxies inside the 90% prob by volume\n", "icut90=np.where(clu['P'] <= 0.9)\n", "clucut90=clu[icut90]\n", "clucut90coord=SkyCoord(ra=clucut90['RA']*u.deg,dec=clucut90['DEC']*u.deg)\n", "\n", "print('# of galaxies in 90%% volume = %i' %(np.size(icut90)))\n", "\n", "#sort by WISE 1 Luminosity (proportional to galaxy stellar mass)\n", "clucut90.sort('P')\n", "clucut90.reverse()\n", "\n", "#then print list of prioritized galaxies\n", "clucut90['NAME','dP_dV','P'].pprint(max_lines=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise for students\n", "\n", "Following the examples above, find galaxies in 90% prob contour for GW170817, then sort by Wise1 luminosity.\n", "\n", "Information on WISE zeropoints and flux transformations\n", "http://wise2.ipac.caltech.edu/docs/release/allsky/expsup/sec4_4h.html" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NSIDE = 1024\n", "ORDERING = NESTED in fits file\n", "INDXSCHM = IMPLICIT\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "\n", "# of galaxies in 90% volume = 42\n", " NAME LumW1 ... P \n", "---------------------------- ------------------------- ... -------------------\n", " PGC45466 1.0884088954320000597e+42 ... 0.6995353723555456\n", " PGC45657 7.5032646027206775e+41 ... 0.7965022626584416\n", " PGC45426 7.367336809737711801e+41 ... 0.3905416510700604\n", " PGC45514 7.159408041749106282e+41 ... 0.636392013632011\n", " PGC45408 6.191420321536100089e+41 ... 0.20082875617890292\n", " PGC46199 3.728938562939855379e+41 ... 0.7710150928931331\n", " PGC46410 2.957639646390979745e+41 ... 0.8792942624546624\n", " PGC45475 1.3404951718770816046e+41 ... 0.6805763434781986\n", " ... ... ... ...\n", "ABELL 1664_13:[PSE2006] 1313 2.1890173247059815035e+39 ... 0.8851443911817604\n", " PGC45679 1.9114414792285373049e+39 ... 0.42337005469909356\n", "ABELL 1664_03:[PSE2006] 2951 6.403713666703690913e+38 ... 0.8999323517709407\n", " PGC4075686 0.0 ... 0.5624329696124779\n", " HIPASS J1321-31b 0.0 ... 0.838117879353231\n", " PGC45404 0.0 ... 0.7146971370109703\n", " UGCA 325 0.0 ... 0.15857534419648253\n", " [TSK2008] 0052 0.0 ... 0.7293957356412174\n", "Length = 42 rows\n" ] } ], "source": [ "#load in CLU catalog\n", "clu=Table.read('data/CLU_NEDonly.fits')\n", "#clu=Table.read('data/CLU_20170106_galexwise_DaveUpdate.fits')\n", "clucoord=SkyCoord(ra=clu['RA']*u.deg,dec=clu['DEC']*u.deg)\n", "nclu=np.size(clu)\n", "\n", "#sky localization colmns to the galaxy catalog: probability density and p-value per volume and per area.\n", "probdencol=Column(np.zeros(nclu,dtype='f4'),name='dP_dV')\n", "probcol=Column(np.zeros(nclu,dtype='f4'),name='P')\n", "probdenAcol=Column(np.zeros(nclu,dtype='f4'),name='dP_dA')\n", "probAcol=Column(np.zeros(nclu,dtype='f4'),name='P_A')\n", "clu.add_columns([probdencol,probcol,probdenAcol,probAcol])\n", "\n", "#load in healpix map\n", "prob,distmu,distsigma,distnorm=hp.read_map('data/GW170817_prelim.fits.gz',field=[0,1,2,3],dtype=('f8','f8','f8','f8'))\n", "npix=len(prob)\n", "nside=hp.npix2nside(npix)\n", "pixarea=hp.nside2pixarea(nside)\n", "\n", "#get coord of max prob density for plotting purposes\n", "#ipix_max=np.where(prob == np.max(prob))\n", "ipix_max = np.argmax(prob)\n", "theta_max, phi_max = hp.pix2ang(nside, ipix_max)\n", "ra_max = np.rad2deg(phi_max)\n", "dec_max = np.rad2deg(0.5 * np.pi - theta_max)\n", "center = SkyCoord(ra=ra_max*u.deg,dec=dec_max*u.deg)\n", "\n", "print(center)\n", "#calc hp index for each galaxy\n", "theta=0.5 * np.pi - clucoord.dec.to('rad').value\n", "phi=clucoord.ra.to('rad').value\n", "ipix=hp.ang2pix(nside,theta,phi)\n", "#calc probability density per volume for each galaxy\n", "dp_dV=prob[ipix] * distnorm[ipix] * norm(distmu[ipix],distsigma[ipix]).pdf(clu['DISTMPC'])/pixarea \n", "clu['dP_dV']=dp_dV\n", "\n", "#use normalized cumulative dist function to calculate Volume P-value for each galaxy\n", "clu.sort('dP_dV')\n", "clu.reverse()\n", "cum_sort=np.cumsum(clu['dP_dV'])\n", "cumnorm_sort=cum_sort/np.max(cum_sort)\n", "clu['P']=cumnorm_sort\n", "\n", "#ID galaxies inside the 90% prob by volume\n", "icut90=np.where(clu['P'] <= 0.9)\n", "clucut90=clu[icut90]\n", "clucut90coord=SkyCoord(ra=clucut90['RA']*u.deg,dec=clucut90['DEC']*u.deg)\n", "\n", "print('# of galaxies in 90%% volume = %i' %(np.size(icut90)))\n", "#sort the galaxies by WISE band 1 luminosity,then print list of prioritized galaxies\n", "W1lumcol=Column(np.zeros(nclu,dtype='f8'),name='LumW1')\n", "clu.add_column(W1lumcol)\n", "\n", "#constants needed\n", "F0=309.540\n", "clight=2.99792458e18 #Angstoms/sec\n", "lamW1=33526. #Angtroms\n", "\n", "fluxJyW1=F0*10**(-0.4*clucut90['W1MPRO']) #in Jy\n", "fluxdenW1=fluxJyW1*1e-23 #erg/s/cm^2/Hz\n", "freqW1=clight/lamW1\n", "\n", "#distcm=n4*np.pi*(cp.float128(lucut90['DISTMPC'])*1.086e24)**2)\n", "clucut90['LumW1']=fluxdenW1 * freqW1 * 4*np.pi*(np.float128(clucut90['DISTMPC'])*1.086e24)**2\n", "\n", "#sort by WISE 1 Luminosity (proportional to galaxy stellar mass)\n", "clucut90.sort('LumW1')\n", "clucut90.reverse()\n", "\n", "#then print list of prioritized galaxies\n", "clucut90['NAME','LumW1','dP_dV','P'].pprint(max_lines=20)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise for students\n", "\n", "Now, plot up the sky localization and overplot the galaxies on it." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy_healpix/core.py:519: RuntimeWarning: invalid value encountered in bilinear_interpolation_weights\n", " result = _core.bilinear_interpolation_weights(lon, lat, nside)\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy_healpix/core.py:484: RuntimeWarning: invalid value encountered in ring_to_nested\n", " return _core.ring_to_nested(ring_index, nside)\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/home/chummels/miniconda3/lib/python3.7/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVwAAAEnCAYAAADl8/suAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXd8FHX6x9+zO9t30xMSCL13BBRFBRUbp57cqVgRvLOc/WynnudPPPudDRXvBFGKCCqCYi/oKU0RRXoJNaTXTbbv7Oz8/phNgohAQrYl83699rWb3dn5Ptnd+cwzz/f5Po+gKAoaGhoaGtFHF28DNDQ0NNoLmuBqaGhoxAhNcDU0NDRihCa4GhoaGjFCE1wNDQ2NGKEJroaGhkaM0AQ3SRAEIU0QhEWCIGwTBGGrIAgnCYKQIQjCF4IgFETu0yPb6gRBmCsIwipBEAbG2/ZERPs8NeKBJrjJwzTgU0VR+gFDga3AfcAyRVF6A8sifwOcDXwP/AG4Kw62JgPa56kRczTBTQIEQUgFxgCzABRFCSqK4gQuBOZENpsDTIg81gPhyE2IrbWJj/Z5asQLTXCTg+5AJfC6IAjrBEF4VRAEG9BBUZTSyDZlQIfI48+AscBS4NmYW5v4aJ+nRlwQtKW9iY8gCCOB74CTFUX5XhCEaUA9cKuiKGkHbFerKEp6vOxMFrTPUyNeaB5uclAEFCmK8n3k70XAcKBcEIQ8gMh9RZzsSza0z1MjLmiCmwQoilIG7BcEoW/kqXHAFtRL3MmR5yYD78fBvKRD+zw14oUWUkgSBEEYBrwKGIHdwDWoJ8y3gS7APmCioig1cTMyidA+T414oAmuhoaGRozQQgoaGhoaMUKMtwEaSYdQX1+fvmbNmj6FhYV9nE5nt/r6+k71dXW5fr8/T5ZDqbIcsgUDQXMgGDAE/AF9UJJ0ep1OEASdotMJCDohLAhC2GAwyFaL1W+xWLwGo7FOp9dXGAzGKrvdXpKTk7O3a9eu28eOHbvNarWWAXK8/3ENjWNFCyloHAr9pk2b+nz11VdnFBcXn+DxuAc7a2q6lZaVOiorq0RZlrHZbKSmpJCakkJKagqpqSlkpKdht9mwWCzYLGYsZjNmixmzyYiiQDgcJqyECcth5HAYvz+Ay+3G5fbgcrlxeTx43B7q6uupqamlpqYGl9uNIAhYLJZwfn4nX4fc3PK01PT12Tk5P/Xq1WvlqFGjvs/NzfXG+wPT0DgaNMHVsC1YsOCsjRs3nl9bXX1q4f7CroWFhSaALp3z6da1C10659Ojaz69unelc8dcLGYjJqMBUR/diFRYUQgGQ/iDErX1Lgp27WXz9l0U7NpD4f5iysvLcLvdZGVlyb17967s0CH3u85duiwbM2bM+4MGDdofVeM0NFqAJrjtjK+++qrP6tWrJ5eWFJ+3a+fO/nv27jVmZ2UxaGB/hgzsy3GDBjKoX09sVjOCkNirWKucbjbtKkYJBSgpKmLdxi1s3b6DfYX7sVmt4UGDBpV17trtk+OPP37heeed9z8gFG+bNdo3muC2cbZv397xo48+um7XzoLL161b19vlcukGDxzA8cOHMnb0CIYO6Ic+yp5qNAmHFbbuLcXjCzCif1f0Oh2KolBaUc1Xy79jxfc/8tPPG/D5fAwcMKCmZ+8+H4wdO3bm2WefvQrQfvwaMUUT3LaHbsmSJeesWLHilo0b1o8rLCw0DRrQnzPGnMT5Z51Ol/zceNsXFfaUVFFeXc8JA7uh0/36BOLz+/lqxRo++fIbVn33AwajURkxYsT27j16vj5hwoT/9O7d2xUHszXaGZrgtg3EV1555arNmzbe9uOPa4eKOp3w+3PPEMafdToD+vaKt20xY1dRBXVuP8f17XzEcEhpeSVfL1/Np8u+VX7euEUYPmJExcBBg1+bMGHCM717966Kkcka7QxNcJMX3VtvvTVh5coVD65euXJoXm42f/jdmcL554wjOysz3rbFBUVRWL9jP6kOK907Zh31+yRJ4uvlq3n3g89Y/cM6hgwZUtV/4KAZEydOfFLzfDVaE01wk4zFixcPXb169WNr13x3LkpYd+XFvxcuvnA8aamp8TYtIZDlMCvW72R4vy44rOZmvz8UCrF89RrmL/pAWbtuozD65JN3njT65KmTJk1agFoPV0OjxWiCmxwYX3jhhbtWr1xxz44d29MnXvg7Lr/oArp07hRvuxKSWpeXLbtLGD2k5zFlWni9PhZ/8CmzFy5WQmFFHnXiSR+OH/+7O0477bS9rWetRntCE9wE5rPPPuv55Zdfvvj1smXnZmVlCHf8ZQpnn35KwqdrJQIbCorISLGR36F1ytnuKyzi9TcXsfjDzxk9evTe08ededell166BC3TQaMZaIKbgLz11lvnfP755y+tWrmi19njTuP2GybTo4vmzTaHoBRi5fqdjBneB/0hshZavN9gkEXvf8LLr89XMjKz/aNPPuXpCy644JGBAwdKrTaIRptFE9zEQXj11VenfL3sy2c3bNyYduWlF3PLny/HbrXE266kZfu+Mgyinh6dsqOy/x9+Ws/z/52t7C0qCY8ff97s62+44facnBxPVAbTaBNoght/hOeff/72Lz7/7LGa6mrrpZdcxLVXTMDeggkfjV8ihWRW/FzA2OF90emiF4bZs28//3rhFX7asFUZ/7vz3v3jRRddN2TIEGfUBtRIWjTBjR/CK6+8csNHHy591lVfb7n4oou46LwzyM3Usg1aky27S0ixWVotlns4SkrLeWb6q3y98ntl/Pjzlky55popWlqZxoFoghsHZs6cedlnn34yo6qy3H7lZZcJI4YPY3CvThhEfbxNa3P4AkHWbtnHqcf1jtmYlVXVPPHcf1i5Zl14wh8vmnnxxRff1rt372DMDNBIWDTBjSGLFy8+cfHixe/s2bkj/57bbiA1J58+XTrQKUdrDBtN1mzeQ9+uuaTaYxsP31u4n4eemEZhSXno9xP+8H933HHHk2hZDe0aTXBjwOrVq3MWLVq0ZNkXn43+263XM2bMqewqrmREv65arDYGlFXXUVnrYnCv/LiMv3HzNu5/5GnFYLa4/3jRJZdNmjTp47gYohF3NMGNLvpHH330uSWLF91ywdmnC3ffch0l1W5q6j2M6N9VCyHEiLCi8M2P26M+eXYkPvnia/7x2HOMPe30jRdPnHju6NGjS+JmjEZc0AQ3Srz55pvnvPHGG++kWI32f0+9V8jvlMfGncUoisLg3vnotMULMWXDziJyM1LIyUiJqx2BQIBnp89i0QefKRdfMvHF+//+9zvQlgy3GzTBbWUKCgocr7766geff/rx2Cf/7x7OGTcWRVFYt70Qs8lI/2652kqxOFDtdFNYXsNxfbvE2xQA9heVcOeDjyuyonNfdsWV4ydOnLgy3jZpRJ/krTydgLz00kt//tM1U2oVf/3YFR+/3Si2P20vxGYxMaB7nia2cSIj1Uaty0uiOBid8zvyzusvCVdfcp7j8Uf/ueKfDz+8uKCgwBhvuzSii+bhtgLr1q1Lff3115f98N2qES8//TDHDRkEqOUCNxQUYTSI9O+eF2crY4uiKCiRe5RfTs0LAggI6n0MT0DrthfSNTeTjFRbzMY8Gmqdddz5wKNU1rp8l1x62QWTJ09eFm+bNKKDJrjHyOuvv37x7NdmLTj1xOHi/91zK0Zjk5OybW8pQUlmcK9OSePZhmSZQDBEUAoRlGQCUggpFEIKyY23kBwmFLkPH+b3IwgCAr8WVQUFReGw3qYgCIg6HXq9DoOoRxR1GPR6DKIeo0HEYNBjEkWMRhGTQcQg6o/4GZdUOqlz+xL25Pfpl//jvn/+mwl/uGjh1IcfvgqtNXybQxPcFrJ582bDm2++ueTjD5ee99JTUzn5xJG/eH1fWTXl1fUcP6BbQoitoihIIRmvP4g3EMTnl/AHgvgCEv6gREhW5230Oh2miIgZDSJGgx6DKGIU9RHh02MQdYh6PXq9rlULwxxsb0gOE5JlpFDDfeQmyQRD6kkhIIUIBNUTAqhCbTaKmE1GLCYDFpMBq8mI1WxEr9fx3abdjDmuT1Rsbg1qnXVcf8cDisFsq5s85ZoTzznnnO3xtkmj9dAEtwUsWbJk0KxZs1Z0SLenPv/4gzgc9l+8Xl3nZsvuUk4a0jPqrcQPJiiFcHn9uH0BPN4Abl8AXyCIooBB1GM1G7GajFjMBiwmI2aTAbPR0GZS1MLhMP5gCH9Awhc5oagnGPWx2xsgPcWKw2rGZjFht5iwW01YzcaEODGCerJ5ff47TH9tvjJ5yp/uvu22256Nt00arYMmuM3k5Zdfvu3VGa88f+9t1wmX/vGCX73uC0h8t3EXJw7ugcUUvTmQkCxT7/ZT7/FR7/Hj8vgJhkIYDSJ2q1kVEosJm9WE1WSMa/5pIrF5d0lEbI24fQHcXvXmCwQRBAG7xUSKzUyKzUKK3YLZKMZNiLcX7OKaW+7lxNEnr7nxpptP1ZYHJz+a4B494gMPPPDx5598dNa8/z5Dvz6/bs4YVhRWb9hF364dyEpztNrAUkimzu3F6fLhdHlx+wLodbomYbCZcdjMGA1iq43ZVqmocVFRU8+gXr+uLyyHw7i9AVweP3UeH/VuH/6ghMloIM1uIc1hJd1hxWwyxEyEA4EAdz7wGCWVte6/3HTzSC3EkNxognsUfPrpp/mzZs36ySIq2f95+hFsNusht9u6pxSdTqBv15a3IlcUBY8vSE29m5p6L06XF51OIM1hJc1uJc1hxWE1Jczlb7IhhWRWb9zVrDiuPyDhdKvfhdPlwxcIYrOYyEixkZFiI81hOWRr9tZk9pvvMH3Wm+Ebbrzp6muvvXZ+VAfTiBqa4B6B+fPnj3vppZc+mXzJBYYbrrniN4Wups7D1j2ljB7avD5aiqLg9gWocrqpcrpxe/1YzSYyU9WDOdVhidrEVHvlm592cMrQXuhbGF9vOil6qKn34HR5MYh6MlNtZKXZSU+xReU7+2n9Jv50671cMvGyVx/4xz+uRyuEk3RognsYpk+ffueMV/7z9POPPSCcfuro39wuJIdZ8XMBxw/ohs1iOuJ+A0GJiloXlbUu6tw+bBYT2WkOMtPsmvcaA9bv2E9+h3QyU+1H3vgoCQRDVNe5qXS6qK33YjKIZKc7yMlw4LCaW+07raqu4Yrr/sqAwUPXX3f9DcdrrX2SC01wD43wyCOPzH1/8aKrFrw6jd49ux924027irFZTHTvmHXI1xVFoc7to7y6nvLaenSCEDkYU0izWzSBjTH7SqsJyWF65ken9Q6odXgralxU1Lpwe/2kp9jIzUghO93RYs+6AUmSuOnu/8MfovqOu+7uN3z48KpWMlsjymiCexBr164V586du2rHlo3HL5w1jbTUw3dgcLq8bNpVzMlDe/1COBVFobrOTUlVHdVONw6bmdzMVHLSHdrkVpypc/vYWVTBiH5dYzJeWFGorfNQVl1PpdOF1WwkLyuV3MwUDGLLfguKovDUtP/y1cq1gZtvuXX4hRdeuKWVzdaIAtqRfwCbN2+2TZ8+fYsS8HT5YMFMDAbDYbdXFIWNO4sZ2icfQRBQFIWaOg9FlU5q6tykp9jomJXGoB6dtLSsBMJhNePy+GM2nk4QyEyzk5mmhjBcHj8lVU5WbdiNySDSKSeNvKxURP3R50ILgsB9f72R7l0+MD326CMby8rKzr3hhhu+iNb/oNE6aIIbYfXq1TlPP/30tl6dc9KffOiho7rM319eS5rDiiAIbNlTSnl1HWkOK52y0xncq5NWgjFB0ekEBEFADofjMiHpsJnpa8ulb9dc3F4/xRVOVvy8E7vVROcOGeSkO446zHTpHy8gv2Oe7uZ7p34mCMJV119//ZtRNl/jGNBCCsDSpUu7v/jii5vOGXOC9e5brz+q9/iDEt/8uB2L2YhRFOncIZ3crFQtoyBJ+GnbPnrmZ5NqP3SKX6xRFAWny8f+8hqq69x0yEyla27GUU3CAvy8cTOTb/6b8pcbb77lxhtvfDnK5mq0kHYvuIsXL+737LPP/nzdlX80Tb78oiNu7/L42VNSRUmlk1SHlWF98qO6okwjOhQUlmM2GejcISPepvwKORymtKqOfaXV6ASBbh2zyM1MOaLXu71gF5ddezuTp/zp73+9444nYmSuRjNo14L7wQcfDHzqqafW3X7tFYZLJpz3m9spikJFjYtdxZUIAnTOyWBHYRljR/TVPNokpay6jpp6LwMStHJYAy6vn70lVVQ53XTukEHXvMzD1r3YV1jEH66+kUsvu+Lxe++774EYmqpxFLRbwX3//fcH/+tf//rxr9dd+ZtiGw6H2V9Ry57iKtIdVnrkZ+Owmtm6pxSr2UjXvMwYW63RWnh8ATbvLuGEgYdP+UsUpJBMYVkNhWXV5KQ76JGfg8V06End0rIKzr/sWq6cdPVjd9511z9ibKrGYWiXk2bvvPPOgOeff/43xVYOhyksrWFvaRW5mamcNLgnJqP6UUmhEGXVdYwd3jfWZmu0IlazEa8/eWrBGEQ9PfOz6d4pi5JKJ2s27yHNYaF35w5Yzb8MaeXl5rD0zRlccMV1D+j1ev/tf/3ro3EyW+Mg2p3gLlmypMfzzz+/7lBiGw4rFJZVs6ekio7ZaZwyrPevLt/2lFTTLS9LS/NKchrioYqiJNXCE50gkJ+TTqfsNMqq61m7ZS9pDit9unTAfIDH26ljLkvm/ocJk/7yiKDTebUSj4lBuxLcNWvWdJg+ffqmGyZdbDxQbBVFobSqjh2F5XTISDmk0ILq+RZX1CZ0AWuNo8dsNOAPSkk56SkIQuPiidKqOr7btJsOGSn06pzT+Nvt2iWfRbOnc9Hkm55RFMV1++23z4yz2e0e/dSpU+NtQ0zYtm2bferUqbvPPHmE4y9/urLxeafLy09bC5FkmWF9O5N3mNSuovJazEYx7q22NVqHWpcHk9Hwq0vyZEIQBBw2M13yMvH6AmwoKEInCKRGloxnpKdx+ikn8vepj51vMpnXHXfccVp5xzjSLqbYN2/ebHj88ce39eveMe3Om68F1Fjs+oIiNu8uYVCvTgzr0xmz8bdXlimKwt7SKrrlHbpegkbyocZxA/E2o1VoSB87ZVhvXF4/K37eidPlBaBv757MePZR4eWXXlzyzjvvnBBnU9s17SGkILz88ss/mIRQp8cfvAdQmwlu31dGr845DDnKBo9Ol6+xJY1G28BiNuJyx26JbywwiHoG9exEvcfHxoJiUh0W+nXLY9TI43jonlt0/37h+ZXp6ek9zzzzzMJ429oeafOCO3Xq1IV7d24b+v78GQRDcuMl18lDezWriMy+0iq6aWlgbQqryUh5dX28zYgKKTYLo4f2ZG9pNSt+LmBwr05cMP5MSssrxWnPP7fFbDbnnnLKKe7m7lcQBDPwLWBC1Y9FiqI8JAhCd2AhkAn8CExSFCUoCIIdeBOwA1cpilLSav9kEtKmQwrTpk2776Ol701cMHMaNfVeVq3fSX5OOiP6d22W2IZkmVqXl6y01qufqhF/LCYDvkDbLScrCALdO2ZxwsBubNtbxtY9pVx79WUM7d/TNvu11zbTsuM/AJyhKMpQYBhwriAIJwJPAc8pitILqAX+HNn+KuAV4HbgtmP+p5KcNiu4c+fOHf/aa689tvC1FymqcrGrqJKThvQkL+vw5RYPRWlVHXlZqUmVPqRxZIwGkaAUircZUcdqNjF6SE/0Oh2rNuzk/jtvpqaytMvUhx76sLn7UlQaPGND5KYAZwCLIs/PASZEHuuBcOTW7g+gNim47777bvfp06cvfe7Rv+vK6yX0eh0nDu5x2Emxw1FUUUt+Aq651zg22tMJVBAE+nTtQP9ueazZvJdnn5jKxx8uHT9t2rT7WrAvvSAIPwMVwBfALsCpKErD2asIaOjSOR/Vs30JePHY/5PkJuqCKwiCWRCENYIgrBcEYbMgCA9Hnu8uCML3giDsFAThLUEQjJHn7YIgLBUE4StBEDo2d7yCggLjvHnz1k65dIKos6bTs1M2fbvmtvjgCkohpJCM/SirNmkkFzqdgCyH421GzMhMs3PS4J7sr3Tx9ONTeW3WzMfnzJlzWnP2oSiKrCjKMCAfOAHod5htnYqijFcU5XRFUYqOzfrkJxYebkxjPq+++uoXKVZjRv+hIxjerysdMo8tZ1YNJ6Qd0z40EpeGxQ/tCbPJwOihPbE60rj9phuEmTNe+eLrr79u9oywoihO4GvgJCBNEISGiZF8oLgVTW4zRF1wYxnzeeGFF+7/6svPx0y6ejInDupBis18zPaXVtXRsQVxX43kwGQQCbSDOO7B6HU6RvTvyvEjR3D88GHim/PfWMdRHG+CIGQLgpAWeWwBzgK2ogrvxZHNJgPvR8n0pCYmMdxYxHwWLlw4cubMmY/efeedjB3Rr1XyZUOyTECSjroItEbyYTKKBIPtT3BBjesO6tmRa6dcxfbt2zo/+cQTM47ibXnA14IgbAB+AL5QFOVD4F7gTkEQdqKmhs2KnuXJS0zycBVFkYFhkTPjEo4Q8wHGN2f/e/fuNc2aNet/l196ie6P54xucWO+g6msdZGd5miVfWkkJkaDSCDUPgUXVNEd2LMTj099gOtvufPajp06Lb766qs/+a3tFUXZABx3iOd3o8ZzNQ5DTLMUohXzmT59+mfpqQ7bXddf2WpiC1Be4zrmGLBGYqOmhsnxNiPunDx8AHfdfjMzXnll6dq1a7UffZSIRZZCVGM+M2fOnPLJxx+NfflfUxtr1rYGiqJQW+8h3WFrtX1qJB5GUd8ucnGPhCAI/OnSCxjQr4/4+muzVsfbnrZKLDzcqMV8Vq9enTNjxoxXpz05layM1p3Y8vqDWM1Gre5tG8cgikghzcMFVXSff/Q+Vq5cOeCll166Pd72tEWSusXOddddtz3FauzzzMN/a/V97yutJiTL9MzPafV9ayQObl+ArXtKOX5At3ibkjB8/9MGbrzrQeWl6S/njx49ul3XPmhtknal2bPPPnvXlo3r+zz14J1R2X9VnZvMVK12QlvHoNdrHu5BjBo+hAvOGSfMmztnebxtaWskpeD+9NNPWQsXLnzy1WlPILbiJNmB1Lt9pNotUdm3RuJgEHWENMH9Ff93z81s2bShx7PPPnt3vG1pSySl4M6ZM+fz88adIvbv2ysq+/cHJUwGsV2ttW+v6HQ6wkkcVosWer2eGc89xsIFbz71/fffa4VEWomkE9xZs2ZdumLFiqH3/fUvURujtt5LeoqWnaDRvunbuyfnnn6KbtE7b38Wb1vaCkkluAUFBcb58+fPnvbo/TqTKXqrv5wuL2kOa9T2r6GRLNx/x418+cXnI+fPn39+vG1pCySV4M6dO/f1Xl3yzKecdHxUx6lz+0hzaPFbDQ2LxcwTD97N2wsXvoVa50TjGEgawf3yyy97LF269LLH/nFX1MfyBYItrp2rkXwIgqDFcQ/DuWeehlGvWB995JHn4m1LspM0grt48eKlkyf+XpedFd2+YkEphFGbMGtX6NtZTdyW8Nxj/2DJ4ndvXrt2rdbY7xhICsGdN2/e77777rsBt1x3ddTHqvf4cViPvayjRvKg1+kIhzUP93Dkd8pj/JljdIveeWdxvG1JZpJBcIV333133iP33ioYjcaoD+b2+nG0Qh1djeRBpxMIhzUP90jce9sNfPzRh2M+/vjjwfG2JVlJeMF94YUXbvPU16b/7uzTYzKe2xvQ2um0M3Q6HbIWwz0iDoedm/50JR8uff+9eNuSrCS64Oo/+uijJx574E4hVjFVt08T3PaGThC0kMJRcu3Vl7Lm++97vPbaa2fH25ZkJKEFd9q0aQ9aDILlhBHDYjamPyi1SrcIjeRBEASSuYhTLBFFkQfuupGvl305L962JCOJLLjie++9d/8/7/trzAZsOOi0DIX2hU5AE9xm8PvxZ7F+w4ac+fPn/z7etiQbMWmx0xIef/zxRztkphqGDOofszEbUsI02hexzsNdv3ELsxcs4oG7biErM/nKFOj1ep7+59/ZtH3XPJz7Lou5AZIHJC94q8FdAQEXSAH1NZ0IJjsYzGCwqDcAayboDGCOWgfuz0nresQqSImqLuKnn356x4ynH4qpq+kLSFi0cEKLCSsK4bCCoiiEFfVe1TFF7dPcgKCKnICAIKhZAjpBUJ+Lw9WFIAi/tC8KuN0e3lryIa+98TY52ZlcP/ly+p0wjm5d8qM7cHRJefOtdz6O6YhKGBQFwiEISxCW1ecav0Ad6HQgHOKmi57c7SksVqqrq48YMUhIwZ02bdp92Wl2Y78+0akG9lv426nghhWFoBQ64CYTlEJIIbnpJsuEQmFCskzoNxYJCIIqnDpdg3jSKKoH0uBMHijM4bDym16mXqdDr9dh0OsQRT2GA25GUcRo0GM0iBgNIiaDiF7fzEiZAEqUFPen9ZuYMftNvlu7jokTzmfRnP+Ql6sWte/WJZ+1X38QlXHbJLIE4SC4SlWv1l0BAQ9IflV4dXrVu224GSygN4ApBazZ6uMoMfLMi47KU0hEwRW++OKL+x786/UxH9gflDC1oSW9iqIQDMn4/EF8AQl/QMIXCOIPSviDocZeXoKAKlxGEZMoYogImNVsxCDqG0VO1OsR9TpEvS5mnmiDGDcI/S9OAiEZf1Ci3uMjKIUIRE4WciSnVq/TYTYZMBsNmE0GLI03I2aTAV3kfxCgVT1cl8vNgneX8vqb75DfMY/rrr6Ml595FJ0ukadMkgR/nXrfEEZoENtwSBVcvR70YpO4GixgSJxCVAknuLNmzbrG4/GYR438VSfmqBOQQkm36CGsKHh9QTy+AG5fAK8/gMeniiqAQdRjNRsbhSYzzd4oQEZRn/AThIIgoNcL6PU6mpusF5Jl/IEQ/qB6ovH5g9TUedTHgabPJxCUkOUw/qCEzWLCZjFhEJtXp0VRFNau28CMOQv44af1XH7R73nvjRl0yMluptUav4nkUYXU7VIFNxQR21AkfquPyFlD6MBgUeO2BltUvdvmkHCC+8UXXzz+t5smx6UqUUAKkZWgk2ZyOIzL48fl9Tfe+wISggBWk7FRKPKy0rCZVQ8u0cU02oh6PXZOE6OpAAAgAElEQVSrHrv1t6U6KIXYUFCE2WTA4w9SUevC7Q0gh8MYRD12qxmH1USKzYzDavlVZ+i6unrmv/M+cxYuonuXzlw/5Qpeee5xzZttbWT1BIm3WhXbgEf1cEMB9d4Q+Y51YtMNEsq7hQQT3AULFpyyc+fO7HPPPC0u4ydKloI/KFHn8lHn9lHn8eHxBdAJAnariRSbhcxUO13zMrGaje1eVI8Vo0HEZBTJTnOQmfbLHnZBKdR4giutqmO7p5ygFMJkFPG4XHy7YhXffb+Gc04/mQ8Xvka0Cyu1a8JBCNSB5AOvs0lsA171dZ0+IrQG1ZvVG5rENkG8W0gwwV25cuXz117xR128RESS5GZfSh7zmCGZ2novtS4PTpcXrz+IyWgg1W4h1W4hLzsVu8WkCWsUUSASyP0lRoNIZqq9sZlorbOON95ewrsffM7w44Zyzpln8PsLfofHF2R7UQ3lTj9pKVbSHVbtZNiayJKaBiZL6kSZrw6CXlV0wzKIRlVsDSY1HazBw9VHwgkJRMII7r59+9KWL18+/Il734ybDVIouoKrKApef5DqOg81dW6cbh96nY70yEGan5OuHahxQFHUbIpDv6aw6vsfmTHnTTZt3cFVEyewaPZLv8qfDUohnG4fznovxRW1eP1BrGYjmal2MlJspDksWpihpYSDhxbboE/1bA0m9SZamjITGjzcBPJuIYEEd968eY+fcvwwweGIX2vysKKgb8WDQlEUPL4gVU4XVXVuXB5/40HYJS+TIXbtIEwIFOVXqWs1tU7mLnyXeW8tYWC/Plw/+XJOPnHkb54MjQaRnHQHOemOyC4VPJFJusKyajbs9GEQ9WSl2clKs5OutXA6eiQvBOrV2K2vXg0jBH3qa0YLiCYw2dRUMJ3YlJmgi351weaSKIIrLF++fPIzD0W/m0O0CUghKmtdVNa6cLq8WM0mstLs9OncAYfNrHmvCYiiKI31FJavWsOMOQvYvnM3ky79A18seYOM9OavThIEAbvFhN1iokuu6g37gxLVTjf7y2vZuLO4tf+NtonkUb1bbw3UVzSJbdAPRrPq2ZpsYHKoQmtOiWQmJJ53CwkiuLNnzz7f5/OZBw3oG29Tmo2iKNS5fZRX11NR60IQIDvdQde8TIb16awJbBLg8weY99ZiZr+xkCED+3HztZM48fjhrf7dmY0GOuWk0yknvVX322ZpyEwI1IO7SvVu/W7wedTYrTUFjNZIOMHctIzXnJqQ3i0kiOCuWbNm6pSJFyTNtXU4HKbK6aa0qo6aeg8pNgsdMlMY1SkrIbIcNI6Moij8b8VqZsxewKDjjifLYWLZ+/NJS02Nt2kaB+KtUr1bX53q2fo8qpdrsqrhBINJ9W7NKer2plRVqBNssqyBuKvD/v37zd9///2wJ+69Md6mHBY5HKay1kVxpZN6t4+sNDsds9MY3Du/ccWSRuJTUVnF7DcXseDdpYwYNpg7bvozmFMZ0KOjVgc50ZA86r2vtsm7DXghHAaTWRXdhnACqJ5tWFKX8SYocRfcpUuX3tKzaychNTUlrnYcqjyfoihUOd0UVdTidHnJTnfQvWMW6Q6rFipIIsLhMMu+WcnMuQspLCrmmisu4ZsP3yIlRT1Qv9+0G732fSYWDWLrrQFvXSSU4AW/D4ympsky0RKpEJaierbWbPU+AeO3kACC+8MPP9w66ZILE+LX3nDMubx+9pfVUF5TT0aKjc4dMrR4bBJSVl7B6/Pf4a0lHzJqxDDuvf0vjBj263Zc4bCCTqd9twlDQ+zWXaamgnlqwVOv3kIhsKVEwgnmpjKMoHq4kLBiC3EW3M2bN6f/+OOPnWf++x/xNANQc3ADksyKnwsQ9Xq65GbQt1tuq6aJaUQfWZb54uvlzJizgPKKKqZccTHLP36Hw6UbqoKrfc8Jhb9OFd76CnDXgKsW/H4wm8HmAEuKGk5oyLtNwFVlhyKugrt06dI7Txo5FIMhfh+Sy+tnT0kV1U43SlhhRP+uWEyJOcOp8duUlJbz2vy3eee9jzh51EgevOdWjhsy6KjeK4fDmoebKMhSU4FxZyG4qqC+Bjxu9XWrDaypTbFbk6MpBSxBJ8oOJK6Cu23btqsvv+CsmP/SFUWhosbF7uJKALp3zGJgj46s+HmnJrZJhCzLfPrlN8ycu4Cq6lr+PGkiqz5bjM3WvEUFYUXRJj4TgYZ6t5JXDSXUV0BtOThrwR8Ehx3saWBxqIJrzWjybhM0Dexg4ia4FRUVtp9//rnzjH89ELMx5XCYovJa9pRUke6wMqhXJxxWtRyjEimErZH47C8q4bX5b/Pu0k8Ze/Io/nn/nRxrKyYtPh9nGsTWW6UWqHFXQW0p1FaB26PWubXawGxv8m51opoGBgkfSmggboK7ePHiP/fu3TtkMkW/xUJIltlbUs3+8hrystI4aUhPTAfly2oHXGITCoX4+POvmTl3IfUuF3+edCnffbEEq9USb9M0jpWGSbKG4uLuCqgrhZpycNaBPwDpqWCxN3m3BktTGlj0+pS1OnET3HXr1v35onPHRFVsQ7LMnpJqispr6Nwhg1OP642oj0upXY0Wsq+wiFlvvM17H33OGWNO4smH7mVg/z7xNkujtWhcTeZU7701qndbVwG1NeD2gUEPFouandCQCmbNUEMP9o4JnQZ2MPESXGH9+vUDn/r7zVHZeTgcZm9pNftKq+mSm8GY4/o0v8+VRtyQJIkPP1vGzDkL8fn9XDvpMtYsew+zObm6cWgcJQ05tw0Fajw14KwCZz0EZbAYwWxRyzCabGDPBn89ZPVT35ckYgtxEtyPPvroFFEUW30ZpaIolFTVUVBYTl5WqubRJhl79u3n1bkL+eDTZZx9xqk8+9g/iHYj0XA4rE2YxZPGBQ7Vqoh6nap3W10FrgCEAaMxUi/B2NTZIbWz+t4kCidAnAT3u+++u27cySNbVQmdLi+bdhXjsJk5aXCPNtUMsi0TDAZZ+smXzJy7AFkOc+2kS/m/v92GyRSbZbYhOYyoXf3Eh0axrVLvA27wVIOzEmrrwRsGux7MxgOW8jrAmqmGExwd42d7C4mL4O7evfvsG664sFX2FZRCbN1TitsXYEivfFLsLZ9EEYSmUn0a0WXn7r28OnchH3/xP8afOZaX/vVPevfsHnM7QrKMGOMuHxocELuNTJR5a1TBbfBunQEIKWDUq2JrNKvhBEu6GnpI75lUsdsG4iG4xi1btuScePzUY9qJoigUVzopKCynd+cODOmdf8xCKer0hGQZgxj3Fc9tkkAgwHsffc6r895CpxO4dtJl/PPvd2I0xi+HUgppHm7MOTgrwVsTid1Wg7MCKmvBpYCRpvit2Q6WVFVg7blqClkSLHQ4mJgry5w5c87Lzs6WjUZji8f2ByTWF+zHaBA5eWivViuJKIp6pFAYrcJi67Jj525mzlnIZ199y/nnnMF/n32Mnt27xtssAEIhzcONC95KNaWrwbP11al5t8XFUBmAoAApAphNYLKALV31bk2RIldJKLYQB8HdsmXLxDNOGt7icUsqnWzfV8bAHh3JyWjdCmNGg56gFMJqTo5VK4mM3+9n8Qef8eq8hZiMRq6bfDmP/989cV3GfSgkWcagTazGlobYrT+SlRBwqwVqKoqg1Am1OrCEwSqCzQaOdLBnHFA3ITnFFuIguCUlJaeOv/S8Zr8vJMts3FmMLIdb1as9EKOoRwrJrb7f9sSWbQXMnLuAZd+s4sLfncVrL/2Lbl06t3yHB8bpohCzi3bjUI2DODgFLOBSvdvqYiguhYowBHSQBtjNkJIKqTmqd2vNbGqDnqTEWnCFgoKCvJHDhjTrTS6vn5+27aNbXhZdcjOiNqllNIgEpVBU9t2W8fn8LHr/Y2a98RZ2m43rJ1/Ov//5d8RjjYU3FDLRpzXF/VoZTXBjiCxFuu+WHeDdetQCNSWFUOSGagOYw2DTgd0GKZmQkgP2HHUfSezdQowFd926df0kScJuP/oPrbTKyfZ95Qzv2+WYMhCOBqNBJKAJ7lGzact2ZsxZwDcrv+MP55/D3P88S5fOnVpvAG+lunyzYZ19FA42KSRjtiavx5RUhINqVoIsqWGEgEft5FBdCsUVUKVTvdvMENiM4HA0ebd6Q0J3cjhaYiq4X3755UXDhg0Loc4/HhZFUSgorKC63s3oIT1j0ivMbDRQU++J+jjJjNfr4+33PmTWvLfJSE/l+slX8NzjD6Jv7Tiot1K97NQbQBe99B9JkjEaNA836shSU41bXy34nBHvthpK9kO1BJUWMITBpoDdAmlZ4MiJlGFMTdrMhAOJqeDu27dv3OhhfY8otmFFYf2O/eh1OkYN6hGzlUAmo4g/GJ1L12Rn/cYtzJy7kOWr13DJhPNYOOtFOnXMjc5gkqcpZQjUJHdDdLybYCikpQHGgobYrbtCXU3W4N3WlEFpLZSI4NFDngQOPaSlQloHsKapsdskK1LzW8T0l1ZRUTFw6EXnHHYbORxm7Za9ZKTY6NU5J6aLEMwmA/6AJrgNuN0e3lryIa+98TYdcrK4fvLlTHvyodb3Zg/GVQrVuyCloyq2ptToebghzcONOrKkCqa7vGmSLOhVe5VVVkClDKWRjhypsjpZlpoBKdlNvwFr16Rc6HAwMRXcwsLCjP6HWRsfksOs2byHjtlpdMvLjKFlKiYthgvA8lVreHXeQtau28j4s07jif/7G+lpqYTkED+t30QoFCIUkpHDMqGQ/Jt/NyAIAoLQVAJT/Vs45N86XxVGbxkGRcKQUYHRYsOQ3hWD2YxBNGA0GjAYRAyiem80GnDY7S0+CQSkEEbNw40ukketlRBw8czTS7lryhC6fXMye3vMgtIaKDFClQidA2BRwGGD9BywZanvd+S1iXACxFBwKyoqOvj9ft1vVeOXw2F+2LyH/Jw0uuTGXmxBq4kLsHbdBs69eDL9+/aiZ/cuFBaVMGPOAgwGEVEU0et0iKKIKOp/9bder0fUNz0WBKGxsHtDcfdD/x3pmhwOIjtLkFzVBGUFSSxC0hkJ8gNSKIQkhZAkiaAkqY9DEhWV1fzxgnP5x923tuj/DYcVrZJcNJEl1UNtKCoOaqtzUL3b/TIUWSEE2GRw6CA9HVI7gDW9adK0DYQTIIaC+9lnn53euXNn+VBjKorCj1v3kZeVGjexbUDU69p1qpAsy1x92R/5z7OPxX5wVwns/J+aBJ+WB9m91RJ8h7mMXL5qDYuWfhw7GzUOz8F505JHnfx0VzD9jaHAMgj61NdLa6DUBIVGyJXAHoJUE92KbmLvqGK15q0sgSmtTYQTAGJ2ai8oKDh1aL/uhxTbjTuLSbVb6NYxK1bm/CZWsxGvPxhvM+KGJIXisxrMWwllG6GuHMIy2LPAnHLEg8xkMhJs4URnWCtU1LocKlfaW6Uu3/U1TYIuy/oSgOmhl2CLhRA6SJEhPQyZEU82JVJY3BzJTmgDYgsxFNzKysqh/Xr1+NXze0qqCMkyfbp0iJUph0UV3EC8zYgbQUnCGI/SlrIE5TuhruqAdfNHrpdsNBoIBFt2ggxKIYzt9EomJgScEA6paWCe2kNu4vNEynBmSGo4ISuS+aI3NIUTkqRB5NEQs5BCXV1djx7duvziuZo6D8UVTkYP7ZkwnobNYsLja88erhT7NClZgpJ1ULlfXTef1gkcuUcVtzMZTQQCLfu+AsEQppbXUNI4kIbFKQ3iKHlY9enXrP7smwM22gDAz6/051b+gx94eWIK36eNZE368dwufM0dmSEoQK2bAG3Gs20glh5uercu+Y1/B6UQG3YWMaJ/V/S6xJm0sJlNeHzt18ONS0ihdhfs3wSVZZDeEbJ6qq2vjwKDQSQktyyzJBAMYUqwYjpJy4FiGwktjB4zBFf/kdw1aQDm9Dsxp98JwLAbtnJp93sxp9/JlLd9vL34Y/aW3ckdnbaqk2Wg1kzQGdR9tiHRjdXpXaiurjbldmhKXt+4s5jeXTokXGUuu9WEuz0LbijGIQW/E8q2wO6tkBFZN687+opQer3+FylozSEgSZqH2xo0xG4PEN01n5RS/5MJ0qBoxQWAxIVpBt6qhb6fzwbgwjQDL917H68TuUIpityAbtNrgJrGIW4/OZs7Tk2MsOOxEJNfm9vtzlIUBV3Eky2vriesKHTKTrxUj/ZewCYYjGFIQZbUtfW7foTSSug3XJ0saUbrFFGvR5ZbKLhaSOHYaQglyJJ6ktQbwFvJCadbWZZ/FXw7ie1nT4G3Z/K+UxXm7WdPaXz7KZFb1eYLqNr8e44/UWLithB7b+ugnnjbSDpYAzG5lv/8888HZWZmyqDm227dW8rgnq1Y5KSVEfXtt0xjTEMKASfsXgmbN0KqDdJy1eaAzUAUxZZ7uEEJs9b77tg4UGxBTQMzWNVVZRF+fqU/AGf8r6lLd9/PZ7Pt7ZmMG6d6rZem13LzNds44aQDMh3awEKHg4nJ6b2oqGhQXl5eGGBPcRUds9MwmxL3h+6wmnB7/aSntL0v/EhIIQlDLFpe+J1QVQBbV8FuH5zZHdLym32QiaK+xTFcv+bhHhsN5Rb1BggH+fqHrXyzZiNWV1dsnq7ATLIB0scA8NVp06H2Wba9PZNtSNyc+wcYGuljl9lJLVJjTgFcRx3DTzZi8mtzuVzdcnJyhJAss7+8hlOP6xOLYVuMw2amvr0KrhTCGG0PV/JA3X4o3w5rdoBdgPw+as3TZk6QHIuH69c83GMjHIm9Rjzc00cN5fSBkXma/T+yLPgSy7+dxImlJnYJozjjfzfjmDCD7WdPaYzjFp37IjCFom/G4+j4M6m/y/nFPtsaMQkpuN3uTrmpJkNhWQ35HTISvmlfis2Cy+2PtxlxIRiUoh9ScJVCZQFsXAk/WyDfAXn9IbX5fc70Oh2hUMs83Pa8ovCYkQ9x6d8QTqjdx799OY0vT7ls/C/eeqXwLiPPcQDw+NnqKsH8i7aSek73pp5lbSx220BMPFyv15vXJ78zhWU1nDz0t4vXJAopNgs7CsuPvGEbRApJGERH9AbwO9VKYDVFsHofOIzQbyjkHH4J728hiiKyHG6xOYmS/510hIORspnqpf/u0tnsqVjQ+PLwyHns1DHzOFWZxzZmAvD9CX9jvlLRuN1FvA3AMtdT4FKfm3U27C6+ih6d/hSDfyS2xERwPR5PttliJdVuSQqPwmRUMxWUdrj0M+pdbCUvlG6HbT+hLMpCuKYa+p7c4phdS2O4UkhO+CuthKUhdnvAd9Yjbwo9zKeqf2xbxgevF9Br87bG17edpt4P+LuTxv4Dl0HVg/3IemQb47q8rD5nj6w00zzcluN2u1NlQaRTTnoshmsVLCYj/oCEJcHyhKNNOBxuTN9rNQ68/NyzAmrL4X+lyGQhDukG6V1bHK9raQxXi98eAw21DQ6Ms3ormf5pIWzqCZwL2ediffk6ln87CcfWtZxqX0j/y0p+tatLz1oB3wJMVJ8YfjWMuTtW/0nMiYngBoNBS1BWyEq1x2K4ViHVbsHp9rU7wYUoXGY31DIt3wiFm2DvLio/ySd7cBUMPlet6N/C1UQ6nY5wuPkhBV9AwpLAmTIJS8PJ88DqXZHY7c1j7LxdsYYtOnX+ox+QXTYGP2v52N4Rx8KOlLwcZPm3k7jWP4588/lw6j0sE15nXM/X1X3Zjz4HOxmJleAa01Ls6HTJc3me5rDidHnJyzpyAZW2REOd2laj4fJTdkLJRijeC+/6KCWd7NEB6Hp86453lPgCQcym9ncybRUaxFZnbPJ26/ZDfRkT89fAz1thi45lYw799tse/paMPy+AfMCeAR7UernNzMFORmISxPL5fGJuVkYshmo10hwWnC5vvM2IOa0et27wbhtWlG0pZdPGjtgJw5gT1W1Mxxava8lJwu+XsJg1D7fZHFwqUWdUSzCCOhFaVASlYag69Mms401GMrrUQ25kYtYUubfntpmat4fjqARXEIRzBUHYLgjCTkEQ7os8N1AQhNWCIMwRBOGw+/H5fPrsjOTyFC0mI/6g1PoeX4KjKK0cUmi4BC1eDys2Is/N5luK6DGqGHqfdEzhhAZaYq83EMSqebjN48BYfEOhmoBTva/YAWV7oKQOik2ww8Rx49Q0P1f/kfzw8MNN7x3ohpxIvq5oZlzvN9pMk8gjcUTBFQRBD0wHxgMDgMsFQRgA3An8HlgLnH24ffj9fl1WenIJLjSUamx/hWxaTXAlT8S7dcI378BaK19iRUCAC1LVugnH6N22FDWGqwlui2gQ24aFD65yqNqrerclApQb8UlGqjE1viUETLxfZPyEp6GL0FT31mBRxTZOv4NYczQe7gnATkVRdiuKEgQWAhcCekABwsBhj9BgMCg47JZjtTXmZKTYqKlvX2GFqHj027+Aryop2ZzNU3zJBeTCyNNbxbttKUEppHXrbS4HlmBsEFt/HdSXqd5taT2UmVAKjdRjohKoeuVqADoBr03pzN6v7oe8NLUj74SXVMG1xr/TS6w4GsHtBOw/4O+iyHPTgI+Ak4DPD7cDQRASqubt0aIKrifeZsQUhVaK4TZU6neXwHefIH+Zwbd4kID8K/dAVg+1on8caDiptLcc62PiUJ0XvFXgrlC929JSqFCgwogXA05E9uPiZ4r5/OGHOY4BdEGCnn7Iy1MFVzQ35fK28dhtAy1WQUVR1imKMkpRlKsURTlsIqTBYEjKQGiaw8Kd9/6jRWlHyYo6adZKOwsHoWwT/K+SIhy8wCoe4iwYMwjs2XFbKx+QQjz+xFNxGbvNIEWu/OrLoGIflDrVhpDFBtwYqQZ2sp9yoAPQn050yHVCZwtk5ILJ1tSzrg210DkSRyO4xcCB+Rr5keeOGkEQklK0dDodGzZs5LOvlsfblJjSap6fqxRWLoECK5sJoQfOHFoBg05Xu/HGiaLSClauWh238ZMeSb3qe+Zv/1IzE4qLoUqGWgN+ROoRKcXLJgoBOJ5u9EAHI1zQMVft6mFJB52oerjtxLuFoxPcH4DegiB0FwTBCFwGLG3WIDqdkqyz/YMG9mPe2+/F24yY0Wrfk+RROzls349/j43l/MzfGQdXZUJOn7geZKvXrCMlJSVu4yc1DbFbb7V6X7EPKuugygBOPR4MOBEopJwKYPdX6xhKD7rhgu56yO2s5t6aHGpIqR15t3AUgqsoSgi4BfgM2Aq8rSjK5uYMIgiC0tKq/PHmwt+dzeatO+JtRsxolTzchk4Oe3+CSoUibJgxMz63DgaPjnuC++btBXTMzTnyhhqHxlvF1vP/qj4uL4OaEHj1KFUiHkSqCLKXHY2rqnpiRDfWCflZkJ6nercGi9rRoR15t3CUK80URfkY+LilgxiNRiUQCGIymY68cYJx23VXc9zxJ8XbjJgiHD7p5MiEg+CtgW2boVpkH2HOZDBMLISep7SOkcfApZdcxN9uvS7eZiQnkveXIlldBx4BvHp8GKhDTxk1VKPQCVgPdMMDvWXI6Qi2DFVsDdY2We/2SMQkdcBqtYZc7uSc7dfrdRhEPf6gdOSN2wA6nY6wcgzxdllSD8pdq6DWA1ts+AlxMnUw9gy13mmcDzSPL4DDZo6rDUlJJHaL64DSpS4JvDq2hvyRcEKYcqoRgcH0BcA8qhby0yGzI1jS1HBCO4vdNhCTWgoWi0VyezzJl4gbITvNQWWti84dkmt5cksQj6ELLtBUJ7VoB9RL1FbZycME1xRBp/4J0TolJIdj1yizLSBLrPrgQ/7Y9TTu+e9U9bmhPQF4pr4XZKDehkLGZgnXZjd5ZNKPfHXb3gHI6632rLOmt1uxhdgJbiBZPVyA7AwHe4or24fgimKLOyg0FqrZ/yOUlUIQajHSDw8M6QbZfePu3cpyGJ2Wf9tsRp93NmwK4uo/kqknyWy9fREfD+3J7N/tY+N0ga31ErNOvJZ/vziu8T2R+l/k/kktMo4MlMFdWXBPx/Y1WdZATATXZDJ5XG53dizGigZpdgt1bl+7KEguisfg4TbMYNcUgS8ANXpEFKy/L4OhU9RZ6Th7Nh5/AJsl+eYS4oYsUTnrTapeWwD/UTs6bL19UePLbz8RYmvk8eUfvkPvOfMIIjGQfEbhp+dX0yjbeD8MPBk69AVHB3VlWTv1cGMSwzUajfX1LncshooKgiCQYlNFt62j1ze/g4KiKMjhMFJIxu8sxVdViceWhVvJw5Fvpn5UL+rT+1Mf1FPv8VHv8ePy+nH7Anj9QfwBiaAUIiTLzU5LC4fDzToJenwBbJb26V21lOxrLqb/V/Ma/+5/98DGxxPvF+lfrVb8qqi2o0Mgj0yu+OopTpxdo26UlaumgplT1HBCO0sFO5CYeLhWq7WssqpmSCzGihY5GQ7Ka+p574OPyMrI4Pxzxx35TUmEoigEpRBmix2daKaoopagFFJvIRlJkpFC6k0+xCIWnQB6AXRBDzrLcIQuA9CdEkI4W4LenRA8dvDVg+BCUdQlxIoC4bCCoiiEw2HksEJYCXOw5uoEAVHUY4jcjKIeo0HEaNAjoNC5Sxe8/iAmo3jEJeRuX/CQHu7sN99pk9/rMXFgsXFZokEuKr8q/MVmWzPVZmTd+hbTDYCDGrA2pIKZUtRUsHZMTAQ3NTW1uMQZkFEL3iQcf7rlHj787CtysjLZtLqpLISzro5rb7uPTVu3AwK333YbFh28/d5HfLrsGzrkZPHgPbfFz/CjRFEUgiEZry+INxDE5w/iCwTxBSR8gaYSlEaDSEpGNmE5hM8fxGgQSbVbMRoaxE7EIOrQ63S/9ioljzpZtv1HcP0Ae/bCqgCcbofuf4W8ji2O38rhMKFQOCL46glAPRnIuD0+hg8fycadRQSCIcKR/8VkEHny38+wYuVqsjIzWPnFe1jNJnbu3sfjT/6b6toaBEHg+smXc/tf1GaFyfa9RpN/F7t5puLAzBx1zvu/Yyfw37ETGp+11i2m0/blFPctY+v2DjSVj0AAACAASURBVFgQ6XOwrNjSwRqZ/9C3v9zbA4mJ4Kalpe3bsWNHmAQV3CmXX8wt103m6r/c+Yvnb7/vYc4dN5ZFc/5DMBhk2ZrNFO3ewTlnjOHKiRO49E83x8niQyOFZNxePy5vAI8v0HjJrigKBlGPzWLCajJiMRtId1gxmwyYTYZfeIXbNvyIz+end5czm2+Avw78LrBHitL0kWHYSZAz4JguI/U6HXqjDpNRBH7pndY66/jfV1/w4O3XND6nKAoBKcT1ky/jpmsncevdD1BaVY/XH6CyzsNVV09iyMABCIrM5ZOvZfjw4QQlmbPPOJWrJv4h4b7XeHBPromRezfzzQ9bGp/779gJ/OWbg1dd6rj2uWy2plcB6uqzP793UEKSLatpGW87DidAjAQ3Ozu74Ntvv43FUC1izMmj2Fu4/xfP1dXV8+2qNcx++RkAjEYjvbp0ZMvGn8nLUcvJHfMCgRYSVhTcHj91Hh/1bj/1Xh/+gISo1+OwmrBbzaSnWOncIR2r2dSs1kZ6va5FXXB/cSCZ7WAQYXB36DFK9Wyj5NUEg0GMhl/uWxAEzEYD5505hr2F+zGKIoN7dQLA6w9y2oixBIIh3L4AvXp0Z2vBHgrLq7HZ7CxfV4DT5WN3cSWpNgspSdJpOhqcfuJwTj+uh3rlUrGN/0amYaa6F7P1Q4n+XWHwFSLvTelEsG+Iiu1d6Qz06FLFk5F9lIXeA+uwhJgwTQRiIrgDBw7c9PLLLyfVr3ZP4X6yszK55ua7Wb9pKyOGDebR/7sXpyu2E2eKouDy+qmt9+J0ealz+wgrCg6rmRSbmex0Oz3yszEbxVbJoBD1IrLczIUPDbE+yQdmB0gByMqE/qNU7zaKB5okhTAYjm7/QSmEQdSrgmwyUFZexvYdBVx2wZks/vBTsjIyOGlID2wWEzqdjuJKJ1v2lCKHw9gsJtIcVtIdVtIcFkR9Uv2cm0fj9xlJ5fTXg7u66XVJpv9IGfapJ9lXJp/FogvrsNUvadwku3ASAINL3oWSdxufv7Hv5dzU78ro2p/AxERwhw8fvjMQCCRVQdxQSOan9Zt48ampjBp5HLffN5Xpr7zOuHPP55RhvQBY+NpLrT6uFJKprfdQXeeh5v/bO+/4KOr0j79na7Ipu+m9koQSOkgRQUREQBFPRIoNFcvpnWe5s9zPs5/t9Kynnt1Dz15OUdTzVKQpvZcE0nvfzfbZnfn9sQkEpSRhsyXs+/WKks3Md767s/OZZ57vU0wWnKKLqIgwYqIiSE+KoXBAap9e7J6wsF5YuJLTI7iRcR63QuZASCns87hb0eVCre7e19hscxCl82SYmc0W5l32W556+G6io6NYsnj+we0+/tcLh+0nyzJmq4M2s5WaxjZ2l9Qg4wkXjNVHEKePIFyr6R8hg51i29m7zNoEjnawtELnqRQlEAGLEpC4+M3/ccVPpWj3ZZFraIHfGEm+9D0SKi5lx6g/gz7NEwqm0Jz0Vq6v0m2sSqVScjgcimCpp5Cemkx6ajLjx44C4MLzZvPIUy+waPFiGlraSU3wTksQ0eWm2Wimqc1Mi9GCIAjEROuI00eQkxZPmMa3X1BP4kMP43CV6kMXaHgMhDVDYj7E931VMFEUf+VSOBrtVjuRujBEUWTe5ddx8fzzuWDOzOPuJwgCURFhREWEHUx+cUsSbe1WWowWthdXY3M4iY4IJ94QSUJMJLqw4PieH5Gu3RwAbK1gNXYRXBnsArSpACcy4NqXQzJ2GGKFhC4+XG0UaIOvvVZf4bP8xtTUVEtZRVXUwPwBvjrkCZGclEhGWir7ig8wMH8A//txDUMG5pMar2d/ZUOvBVeWZdrarTS0ttPY2o4kycQZIkmIiWJgVrLf/YUqlRLR1Yu6EW6xoyhJOMSkd1SE6vusMqdT7LZLwWyxE2+I5Krf387ggjxuuWFpr4+rVCiI00cSp48kH895NZptNLWZ2V5cjd0pEhOtIzEmmnhDpN/Pa4/p7KBrbAFzC7S3Ubfveu5lBrhlcApQqmbFnqdo4WEikYjBBrlOiOuS46SL8/QsO8kt2058JriJiYl1B0orAlJwF131e35Y8xNNza2kF07gvjtu5qpLF/DsY/dy8TU34XSK5GZn8Po/HkcfGU671Y7bLaFUds9LIrrcNLa2U9dspM1swxAZTmJsNNmp8Wi7+TjsK9Qqde8zzbTRnosrMtHT9toHF5noEo/qUvjleb3skks4c9Jolr33McOGDGLk5FkAPPSX25g944wTmocgCBiidBiidORlJCJJEi0mKw0tJooq6lErFSTF6UmOiw6eTDe7ERxmjzvBZgaHk3vbP/BYuFYVYod8aJCJRoRRVkjQQlyX0peiFcJSPP8Oia7vBFev1+/ZX1qW76vj9YR3Xn32iK+PHFbIxu8//9XrSbHR1LeYjmnlOkUXtU1GapuMOESRxJhoclLjMUTpAtrXp9GocTicvdtZrfNcYDqdz1pei6LrqIVofnlev9+4l6ljBiK3lvX5vBQKBfGGSOINkQDYHE7qmk1s31+FU3STFBuABdDd4iF3gqPTndDmcSfY7eCWPNatC7ApcXTIhw6JGOyQbfdYtzFdBFcX3/H0ExylGIWYbG65YSlPPHgXAI8/+xJmi4V777jZK+P7THDj4uK27quomgkEfSBeWmIMReV1vxJc0eWmtslIdUMrottNSpyeYXlpwWPRAFqNBoezF63hO60XSe3TimBOp4hGc/yvlMvtRqk8QsKGjwjXashJjScnNR7R5aa+xeSXeRwVt3j4v9U6MBaDzQg2C4giSBJIMjgEaFchdlQGiEREUWiFRAXExYM+ibrkMhj4etC1QNdqNXz8+VfcefP1xMd5v1iVzyIHCgoKfti9e3eQObKOTHREGBa7E9HlRpJl6ptNbNxdxppt+7E5nAzPT2fKqALyM5OCSmzBY+GWlFdSU1tPY1MzbUYjVqsNURSPXuega0fXPi4sLUkSNpsdo9FEQ2MTtfUN3YpSaLccilDwN2qVkvTEGH9P49dIXZ5s7EZPdIKt3eNO6IxckfBU/WpXInXEoRtwQKYNYsLBEA/RiRCZdEi4OxdUgwCVSsU1ly/iyedf7Zvx+2TUIzBv3ryfHnjgAWV/qLglCAJx+gg27SnH5nASp48kLyMRfWR40L+3lKREVq/dwCnTziMtNYnIiAhE0YXoEo/p25VlGQEZOv4Lh5pRHk2oe/NdEAQBrUaDVqs5+P9rlyw+7n4mq43oUNHx7tHZkddmJHvtNMqSd4IkY2QW7YbZYAAGH9q85vaONAcZ2ApRgog+xnSolVKQZZfdsPQyhp82k9tuvNbrY/tyxcYWHx/vqK1r0KamJPnwsN5DlmXqW0yU1TTjdLlwuSVOH11w3IIpwURmRhotZdtYv2krL735Dlu272LxhXO5fNE8EuLjjr2zaAlYX127xR6YftNA4JfuhM7oBEdH4kOHdatnBfqGj6FMCd/rMaOl7fYHSN94LQwWYORQGHyap0loZHJQ+W67Eh0dxWUL5/HMS28QHubdm7RPlSIzM7Nq647dx98wwHC53ZRUN7JycxENLe0U5qYyZVQBWpUKp9jLYt0BjCAIjB87ileffYwfPn+XyAgdcxZdxYIrb+B/K9ccueW9uxehZD7EZA5ZuMekqztBtHqiE2ztHX+TPOXgFApPhIJDAQiE03HOo90QH+1ZLNMZDg8FCyJ3Qldu+u2VvLrsPSxWq1fH9angJiQkrN9SXB007XsdThd7SmtZtaUYSZKZNCKP4fnpB/thpSfFUFnf6udZ9i3R0VFcd+UlrPvmE/70+2t5/5PljJl6Lo8+9QL1DY2HNpScAf3o6BBdaH2cRBI0SL+ISnGLHsF1dkljVyg8wusGRAWoJZTJHfslKiAuFvRJEJ16yHcLQWnhAsTGGLjo/HN5ddn7Xh3X1xbut5s3bz6BDoW+we4U2XmgmnU7DhARruH00QXkZST+Kng9NcFATWNbj4tmByOCIDB21HD++dTD/PjF+8TGGPjNJddy4eW/5Ztvv/NYvQFqydidYkhsj8Yvn0wk0ZOi3VVwFQrPD3j8tJIAiW7I6IhmiY+A2EQwpIHk8hSqAc8NOMCffI7Frb9bSlNLi1fHFHwpFpWVlTGzZ89u3rFqeUCuLDlFF8WVDTS2tpOXkUhaguG4izqb95aTlRJHnD7SR7MMLLZs38nLry9j7cZtzJ97LldcPJ9A89E3tJhobG2ncECav6dyGGPPmHPEOG+f0iX29snVTTz9c/txd/lD6bfcXPwdJDuoGv4y6ckPwsAxkDEKYnM8RcY7LdsAvQl7m7HT57Fx48bj6ppP05wyMjJak5KSHBWV1WGZGYHz5XdLEiXVTVTVtzAgPYHBOSndbjSYmRxHeW3zSSu4o4YP5fmH78Ti1vDeJ8tZcOXviI+L4ZrLFzFj2hSUAVBVy2i2ER0ZtE2jfcbNE/XcPEKE1gpoKIaGCrL3LKIs80Uwm6GuCcqc0KgGgwTJMunht3lqZkQlHCoyfpKJbU/w+fJ6fn7+vjU/b/T1YY+ILMvUNLWxaksxyDJTRheQmRzXo66ucfoITBY74om0Fg9WOluvKNVEROi48pKLWLXiA+6742a+/O8PjD79HB742zNU19T5dZpGiw19SHCPj9Tx+O+yeUpsdtLQUcu6s2ynzg1JLogPg4R4MCRBdHJHDHaH7zYktkfE54KblZX11Y+b9vjdsWOxOfhpZwn1zSYmDMslPzOpV+FdgiCQnhhDZb13fT1BwxEWy4YPHcyzj93Hum8+ITM9lUVLb+S8RUtZ/tX/et+C/QQwWx1EBkjSQ0BxJP+qo90jtpIbuj6dyJIn6UEpQ5QbYpQQZ4DYJIhO8NTPON7YQURfuVp9LriTJ09etnHjRr89Z0qyTHFFPRv3lFGQmcSogZknXAIxMzmWyvqWk2Lx7CBdL6ijWDM6XTiXL7qQH798n4fvvo1vV65mzNRzuefhv1NRWe2TabrcbhSC0KOnlpMWu9GzYCZ2NIFUdTmvUsd3WwtECxAb0VE3IcVj3SrVnsWyzptvEFu4DY1NaJPy2Vd8wOtj+1xwJ02atFutVkstrW2+PjTtVjtrtu7HLUlMHpnvNb+rRq0iShdGs9HilfGCgs5Qom6GghUOLuCph+/hp/9+Sn5uDpdffyvnXHQF//nymz61ek1me8idcDy6RhOIdo91C6Dqcm4lyaMWYQLo1WDQgyERohI7OvJ2qXkbxGIL8LdnXkIUXTzy1IteH9sfKVLy0KFD9337w2rfHVCWKatpYtOecoblpTEoOwWFl7PDclLjKa1p8uqYAUvX2gk9vLjCw8O4ZMFv+P7zd3n8gf/jx7XrGX36udz14OO/6ivnDdrMVvRRviumEzQcLRxMEj2hXQolqDSUjf3i0DZKBUSowBAFMfGgT4TIeIhK9vw9gOOwu0tDYxOvvvUeGo2az1Z8Q2m5d7+TfslJHTRo0AdfrtzgEyeP6HKzaU85bWYbp43Mx9BHF19MdAR2h4itt6UNT0IGD8zjiQfvYv3/PqVwUD5Lb7yDWRdezkefrUAUvfP1aGu3YghZuMem82lFcsGeL2HNk7D5Fdj6Oux82/M3cQdEV0BMFci7wV4NEXGe9jldU3j7gXW7+MK5KBQKrr58MQ/9/R9eHd8vgjt79uyXNm3apOprn6fZamft9v0kxUUzsiADVTcLhveW7NQ4ymqaj79hf0Cp9trFFRYWxqIL5/Ltp2/z9CP38PPGrYyZOoc773uUA6XlJzS2yWIPpfQeD4XmUMGavDNh8p9g4o2en5Ed7ed1o0E9DCLHQs4cKJgOMRkeq1jX0eEhyMUWYOPW7dxx028B+P3Vl7N91x6vju8vC7c2KyvLsntvcZ8do7G1nY17yhlZkHmwD1Vfk5ZgoK7Z2POut8FEH68+F+Tl8tj9d7Lx+88YPWIov731LmZccCkffPoFTmfPnh4OLpj1o+JCfYJo8YRzdZ5bhRJUWs+PomN9W6OBiIgOV0K8x7pVqDwVwYK0XsKR+P7zd0lP83SoiI0x8PO3//Hq+H77Jg4cOPCHL1dv7ZPg1ar6VvaW1TFhWK5PF0wUCgWpCYb+HyLmg4tLo9Ew//xz+ObjZbzwxINs3raTsWecx213P0zxgdJujWE029BHnZzuhKnnLmDgKdMYOXkWIyfPoqHRs75gNls4b+GVTDv/Umpq6z0bK9VgbT50XpUq0EZ4xLZTcHUREGUAfRxExR8qUhOkFcH8hd8Ed8KECc989tlnXh+3tKaJyvoWJg7P9XnHW/AsnpXVNp9cIWJ9zICcLB6+53Y2fv8Z48eO5Mbb72X6+Rfz7kef4XAcvTtFq8lKzEm8YPb2S0+xddUKtq5aQWJCPABvvf8J115xCU8/dBfPvPwvz4ai1dOPTrR5Ym9VYaDWeoRX2ZGMqtV5xFafCJGxnsgEpToktj3Eb4I7f/78bwGptq7Ba2OWVDfS0GJi3NAcVH5KKdWoVcRER1DXHGAtVLyFHx8dNRoN886bxYoP3+Tlpx9h554iTpk2l1vvepC9Rft/tX1buxVDVEgQuuJ2SygUAgqVBhmhI3FFDY6O76tC5RFbhcrz00lENETFeVwJ4TEe61bRP9wIvsSfzi15zJgx6z9Z/rVXBquoa6ahpZ1ThmT7vSB4XnoCB6q8dyMJOAIgiygnK4MH7/ojm1cuZ/LEU7j1rr9yxpyFvPXeJ9hsnsD9dqudKF1wtTjyJlfc8CdGTp7FA3975uAT18UXzeWZf77B7267m98vvdizoWg9JK4KtafVfaeYKpQweilEGCAi1uNK6MwqU0f0G9+tr/CrMk2YMOGJD7743wn7cetbTFTUtTB2SHZALJBEhGsJ06hpNpr9PZV+j0ql4vxzzuaL91/njX88TnFJKeOnn8+f7nkE0ekM+pZHveXtl55mx9qvWfXlB6xat4Fl730MgEGvZ8WHb3oWh1K7tC8XbR3WbZjn/8oOC1el9bgTwqIgvIvYhumPcuQQx8Kv6rRw4cL/OBwOubGp96FU7VY7e0prOaUwp8/DvnpCfmYSxRX90MoVAzebLisznfvuvIXNK5czZdKprPvpZ04/5yLefOdDrFbb8QfoR6SlepIRoqIiWXzheazftO3XG3Vap6L10L8Vqg4LV+Xx56q1EB4NOj3oOhpf6uIP39/HKONyDy4Gjpw8i0eefN4v8+gNPi3PeASk0aNHr/vg0y8nX7/00h7v7HK72by3nNEDM9F2o3OrL+mMjvD4EfvZwk2AP0aqVCoG5OVxypgRXLXgXF57+30mzvgNU04dz9WXLWT40MHHHySIcblctBlNxMfFIooiy7/+jumnT/r1hgfDwNSAzXNeu/ptFSrPAppS6fHbqsM9vlvw62JZeHgYW1et6Pb2TqcTtVodEE87fjcJzzjjjPuWffRFrwJXd+6vJjs1PmBrnRZkJVFUUe/vaXiPAPDddpcWk4XY6AjS01K4+7Y/sHnlF8w+ayr3PPIkp828kNfeeh+Lxbv9qgIFh8PJ2fMuY/ikmYycMpu0lCSuvnzRkTfuek7V4YcSWjotXW1kxyJZbMdCWvBEJtQ3NPLHv/yV5IGn4M3F+RPB72bhvHnzvnvllVccu/YUhRcOLuj2fg0tJhyim0wfJTX0htjoCNxuyRMPGqA3hR7xy95XAYokybjcEpouTz1KpZJZZ53BrLPOoKa2ntff/oBJM+dx6rgxXLNkESOHFfpxxsfGY6X+D6vV3u19brl+6WG/v/vRETpLuDtC6pzthwrWHDyoDbUgMeeMcYR3FhYP0wfE043NZmfk5FkHf7/z5utZcMGcg7+Xllfy6FMv8O7Hy7lgztl88/EyZFnuWV3mPorq9GmLnaNx7733vmE2my9+/K7fd+sG4JYkVm0pZvzQXMK1/v8CHIsWo4X9VQ2MK8zx91ROHGvjoTTOAKbVZKGstplRAzOPuZ0kSXz7w2peevMdamrrueLi+Sy8YA5RUb7p3tHdFjur121g8uz5PpjRr3n/mT8zf9aUQ64ErcHvohuZPgRz1dG7f4+cPIttO/eg10ehCw/vlSvBYrHSdGALKlX3bNKAbLFzNGbPnn3XVVddddkjd/y2W2+wpKqRtMSYgBdbgFh9BO4KKfh9uaIlaOIuO90Jx0OhUDBj2hRmTJtCXX0Db/z7Q6accxHjRo/gmiWLGTNymA9me3xOm3gKlTvXYbN338LtFi6bx6XgsndUCFN5/g/gMKPWasnOTD8UkaA1ePf4fcTmlV/w0WcruO/Rp9Hpwrn39puYPeMMf08LCBALF+DSSy8tmz/r9KzzZp91zO1El5vVW4uZMrrA7/G23aXVZGVfuSfVOGjpjE4IAv/d+l2lDMlJ6VWXB0mS+H7VOl5689+UV1azZNGFLL5wLtHRUV6fp1+bSHb6bh1tB9skHcRuPPRvta4joyxw2p4fz8LtRJIkPvpsBU+98BofvPF8nzY37a6FGzCKNWXKlHufe+P948bkVtQ1k5kcGzRiCxATrUMQBFqCuUB51xq4AYwsy1hsDiLCe5fwoFAoOPP0Sbz32j/47N+vYLZYmTpnIUtvvJ2fN27pXynbnVlmB0PC1B21EXSHFs8CTGzhkA+38+eOex854nYKhYL555/Dmq8/CphO0gFj4QKK6dOnW5976E7toIK8I24gyzIrNxcxaUQeapX/u8H2BJPFxo791Zw6fEBAhKf0iM5W2gFywR2Lzrhsb/rMZVlm5ZqfeOmNd9hfWs7lC+dx8UVzMehPLPjf723SRUvHuRUPdxd1lmpUqg8JchCce38SdBYuIJ1++un/evr1D4/ab6XVZCU6IizoxBYgOiKccK2G+pYgrbEQBNYtQHOb2est6wVBYOppE/n3K8/w5fuv4xSdnDn3YpZcfytrf94UnFbvYeFgXTrtSuLhtY6V6qA598FAIAkul1122W3r1q1TGo1HFqWapjZSE4LDcX8kBmcns6+8Pvgu0CAJBwNoNlqIN/RdlEF8XCw3X7+Ujd9/zlWXLOCF195i3Jlzeeafr9PaZjz+AIFGV2GFLjUUurgSQniNgBLcrKystsmTJ6999aP/HtGX67mYvL944SvCwzTEGyKpqAvCerkBEH95PGRZxmSx+aTDgyAITD51HMv++SRff+Qpczjjgku57LpbWLV2ffDdVLtymF83ZN16k4ASXIDp06df88Ybbyh+Wd1fdHmq9wdSvYTeUJCZSEl1Iy53n9Re9y5uMaiyyyx2J7owjc995LExBm689grW/+8/XHfFxbz61nuMPWMOTz7/Cs0trT6dS69QaI4srP2g5XmgEXDqNXfu3N0TJ07ct+y9Tw57vd1qJ6of9KZSq1Rkp8QHV2GbIBHdpjazX5+ABEHg1PFjeOP5J/jff95Go9Ywa/4SFi+9kR9Wrwscq/dgDYWjCG1XgQ2JrVcJOMEFOPvss5c+99o7sruLFWi1O4kI6x+PN1mpcTS0mrDaA9g32nlRipagWaFuam0noQ/9tz3BoNdzw9WX8fO3n/KH665g2XufMGbquTz+7EucSHU8r3AsEe3qSgiJrdcJiEyzX3LBBRes+eyzzyo++PSLrIXzzgPAKbrQaAJyuj1GIQgMzkllV0kNpwzJ9vd0jszB1tkdwvvL4PgAQ5blgHwKEgSB8WNHMX7sKEymdv794X+Ys+gqsjLSOjbwg83jdoHQEenT2UJHtB56rdPq9cfc+jmBFId7GMuWLTvr6aef/mr9Nx8oFAoFxRX1hIdpSE+M8ffUvMb6XaXkpMaTEBNgC4GdcbfQ0e+qIzIkgAXXZLZRVFHP2EC9gXVBlmV27NrLtPMvITs729/TCeEFSktL5ebm5uPeoQJWcAEuvfTS8tmnn5K56MK57K9sQKtR+azluS+w2h1s2F3G5JEFKBQBlAzRNe2zsxxfAIstwIGqBlRKJVkpcf6eSlBR09hGVUMrpwzJPuZiY2fS0dQxA2ltMzL1vIvlJ596OmPatGnVPpxu0BPQzwxz5sy59IG/vyjbHQ7UKiWiKwhW9nuALkxLcpyekupGf0/lcCTnIQtXHREUcbgNre2B96QQ4FhsDooq6hlZkHHcyA7R5T6YcPTo0y9yzjnnfh0S254T0IJ70UUX/ThlypR9j//jdcI0auyO4Fgt7wl5GYlUNbRiC6QFtE4fXpBUB3NLEg6nC10/WVT1BW5JYtPeckbkZxxWN/ho2B0iYVo1VdW1fPvjOvniSy5Z7INp9jsCWnAB5syZM/+t9z+R3W4n7VaHv6fjdZQKBYW5qWzfH4DGQqcbIcCjFFqM3SvHGOIQ24uryEiKJSa6e9lk7VY7keFa7n30aX7zm3n/KiwsDIIA48Aj4AX3nHPO2Xn22WevfuS5NyWr3RE4sYxeJCEmCpVKQU1Tm7+n4iHIsowaWttJjA25E7pLWU0TsiyT3QN/d1u7lYb6OopKK12XXX75dX04vX5NwAsuwJw5cy787rvvhLa2Viy2/mflAgzNTWNfWV1g+Kk7SzEG+EJZJ56Eh8CIvw10mo1mKutbGZF/fL9tV5razDz0+DOcO+e8ezMyMrxcCf3kISgEd/r06Q0XX3zx8/948RW5rjlIq20dB61GRV5GIrtKavw9laDKNLI5nKiVClTK4Ksg52usdifbi6sYOzgLZQ9S5G12Jz/9/DNReoPxtttue6gPp9jvCQrBBbjzzjtvUigU9k9XfNcv3QoA6Ykx2B0ija3t/p5KwAttJw0t7STGRvt7GgGP6HKzcXcZIwoyCO/h4uL+ilre+vc7zLvwonn0WXvFk4OgEVzAtXDhwiWvvv4GtY39018vCAIjCtLZVVITGK6FIKCu2URSXEhwj4Uky2zaU05uekKPFxdlWebJ519h5sxZGxYsWPC/PpriSUMwCS5XXnnl+5MmTdrzwJMv9du7bLhWQ25aPLsDwbUQ4LglCZvDSWQvSQwL1AAAIABJREFU2+mcDMiyzI7iKmKjI3qVpfnT5l1s3bZdXrT44tl9ML2TjqASXIA5c+acvXLlSlat3+7vqfQZGUmx2J0iDcHaHcJHeLo7RARfyyIfUlRRjwzkZyb2eF9Jkrj1rgdYuHDR/aNHj27y/uxOPoJOcOfOnVt51VVXPXTTnffiFPtfIgR0uhYy2FVSg1M8asehk566ZhPJcSfWV6w/U17bTFu7jeH56b26KT3+/Ovk5+U33nb77ff1wfROSoJOcAFuvfXWvwwaNKjh7sde8PdU+owwjZqB2clsK6rst4uEJ4IsyzQbvd+/rL/QWSNh7OAsFL0Q2/LKat789wdcctllUwgtlHmNPhVcQRDmCoKwXRCErYIgbBQE4bQuf7tcEITijp/Lu7w+tWPbx44xtLxo0aLTX3jpFT7/78q+fAt+JTXegFqlDM6WPH2M0WwjKiIssIr+BAgNLSb2VzUwrjCnR+FfnciyzO9uu4clV1z5zFlnnbX3eNv34XXe7+jTamGCIEQCFlmWZUEQhgPvy7I8SBCEWGAjMBbP3XMTMEaW5VZBEN4DlgAPAi/LsnzUE56Xl7ettrZ2eH3xZiJ1gVUH1Vu43G5Wb93P2MFZfn2PsizjcruxOUTsThcOp4hTdOMUXYguN6LLjcvtxuWScElSj6xypUKBSqlApVKiVilRK5Vo1Eo0ahVajQqtRk2YRk2YRnXw0XhPaS3REWGk9aNynd6gqa2dXSW1TBiWi7YbNRKOxLJ3P+GrH39ufvvf7yQC0vG27+vrvD/RpxW9ZVk2d/k1gkOPJmcD/5VluQVAEIT/AjOBd/BY3TKeE31M8yU9PX1kRUWFa/4Vv1csf+efKBVB6SE5JiqlkpEFGWzeW8GkkXl9+h5lWcZqd2K2OTBbHVhsDqx2J3anx1euVikPCp9Wo0ajVhERrkGjUnWIpScBQalQdNvylGUZtyThcku4XBKi240ounG6XDhFF60mKw6nR+Q756FSKmi32MlOjYeGViJ1YUTqtP3y/PeEZqOZnQdqTkhsS8oq+PuLr8l33Pl/k+mG2ELfX+f9iT5voSAIwm+Ah4FE4JyOl9OAyi6bVXW8BvAKsBb4XpblPcca+4cffpAHDhx4zdbtO17+eMVKYf45Z3h38gGCIUpHelIMuw7UMDw/3StjuiUJo9lGW7sVo9lGu8WOJMuEazVE6bRE6LSkJRjQhWsPsyy9jSAIqJRKT6ZYN+Px20xWdhyoRh8ZjtnqoL7FhNnqQJJldGEa9JHhGCJ1GKLC0WqCI4HjRGluM7PjQDXjh+YS1sv3LIoil1//R5YsufLuBQsWHPPa+yV9eZ33J/pccGVZ/gT4RBCEKcADwPTjbP818HV3x9+3b9+rL774our+R554YfiQAmFgTtrxdwpCclLj2bC7jOqG1l49RtudIi1GC81GM60mKzIy+kgdhshwslPiiIoID5qOyA1t7WSlxJKaYDjsdVmWsdicGC02moxm9lc14BRdREWEERcdSZwhgihdWL8LI2tsbWdXSQ3jh+YSru39DebeR59m7LgJe/5w000P9nTfvr7O+wteF1xBEG4Aru74dbYsyzUAsiz/KAhCriAI8UA1MLXLbunAD7095nXXXffPAwcOLPrzg09MefnvDwix+v5Xqk8QBEYNzGTNtv3oI8OP6891uyWajGYaWtppNppRq5TE6SNJjtMzOCclqGsP1DUZmTAs91evC4JApE5LZId1Dh4RNlnstJgsFJXXe/qe6cJIiI0iKSaasBMQqECgvtnE3vI6JgzrvWUL8P2qtazbtEN8+ZVXJ3Rne39c5/2Bvl40ywMOdDjTRwOf4/nQY/A40Ed3bLoZjzO918vxxcXFmhtvvLFp3NhRUbffsARdWP/MPjKabWwtqmTSiAG/Ek2n6KK22UhdkxGbQyReH0libBRx+sherVYHIhabg+3FVUwcPqBX+3cKcENrOw0tJtxuiaS4aFLiDUQHWAPK41Hd0EpJdRPjh+Z0q4j40ahvaOTsC5dw4023nH3llVd+09P9fXmdBzt97VKYB1wmCIII2IAFskfhWwRBeADY0LHd/Sd6EvLz853XXHPNqffff/+2nJxsxcXnnYla1T+6/HZFHxlOblo8W/dVMmZwFm5JorbJSFVDK6LoJiVeT2Fuar+N2qhubCM10XD8DY+CIAjoI8PRR4aTn5GI6HJR12xib1ktVruTlHg9GUkxAX/DLqtporqxjQnDcg+2vukNoiiyaOlNLFh08dO9EdsOfHadBzsB3USyN7z44ovXvvDCCy889tD9wvSJw/vtyvWG3aVYbU4kWSYlXk96UuxJUVNg5eYiJg7LPSGL7miILrfn5lXfggxkpcSREq8PqO+QLMvsK6/DZLEzZnDWCc/tpjvvRxkWveuJJ58cRijBoc/pdybgdddd98+GhoYzn3j6H/MM0Xcoxg3N7TeLJJIkU9PYRmlNE1qNCkmWGZydQnL8yZHe2m6xE6ZR9YnYgifsLTM5lszkWCw2B+W1zRRX1JMSryc7Nf6EfKTeQJJkthVXolQojttltzu89d4nlFbXW1948YFTCImtT+h3Fm4HiiuuuKI4Ojo6+4rFFypGdKMraSDjliTKa5spr20mMTaa3LR4wrUaHKKLddsPMGZwFlH91IXQlT2ltURFhPWq6lVvcUsS1Q2tlNY0YYjSkZ+R5JdmlZ31bBNiohiQnnDC3+etO3ax9Ka7pHvvu7/w3HPPPSmSDgKBwHlW8i7SDTfcMGrPnj22b779jp0HqoOyHoEky5TVNvPj5iJcLonTRuZTmJtKuNZzwWvVKkYPymTTnnIc/bzIjSzL1DUbfV6sRqlQkJkcx5RRBSTGRLNxdxnbi6sOJmH4AovNwdrt+8lKiSMvI/GExbaqupYlN9zGlVctXRQSW9+ivPfee/09hz4hNTXVodfrP3rx5VevS09JUajDI0iIiQoaS7extZ1Ne8rQqFWMGphJYmzUEf11Wo2acK2GnQeqSUs09KpQSTDQarJid4p+S+UVBIEoXRiZybG4JZntxVU4XW4MUbo+/cyb2trZsq+CkQWZJMSceKPM9nYzcxZdzeJLL//rjTfe+KwXphiiB/RbwQUYOHBgc3h4+IYnnnpm8ajhQwUXyoAXXYdTZGtRJa0mK6MGZpKaYDjuwkikTovbLVFa00RKvD6g319vKaqoJz0xhgg/LwwKgkB0RBgZybG0mazsPFBDlC7M624GWZYprWmitKaJ8YW5Xok6cblcXLjkeqbPmPn57bffcfXx9wjhbfq14AIMHz58v8vlannymX/MOv20iYLR6iQpNjogRam2yciWfRXkpiUwKDu5R+E+MdE6Wk0WmtrMXrGEAgm3JLG3rI4huakBc94UgkBcR5zzrpJajGYbcYZIr1i7LrfEtqJKnC43YwZneWWRUJZlrv/jX0hOz97914cennLCA4boFf1ecAHGjx+/vqmpSf/8P18Zf9YZU4T6VjPJcYFjCUqSxM4D1TS1WRhXmIMhStercRJioqioa8HuFInpYe+qQKa2sQ2VSkViAN5I1CoV6YkxmK0OdpXUEG+IPCGBNFsd/LyrlNR4A4Oyk73mrrj/sWeoaTI13nTzLQWJiYmhhnl+or8umv2Ku+6665bZs2d/cPvdD0oapcD6XaW43P7/3jlFF+t2lBCu1TCuMPuELlZBEBg9KJO6ZhPVDf2n0WZFXQuZSbH+nsZREQSBAekJDBuQzvpdpTS1mY+/0xGobmhl454yRuSnk5US57X5/f0fr7B1z4H2W279Y15hYWH/bJMSJJw0ggtw9913L5oyZcr/brvnIXeCIYJ120t8utr8S2wOJ+t2HGBAeoJXVp8BFB0xmiXVTdT3g55oVrsTSZKJ1AV+UkdMtI6Jwwawu6SGmsa2bu/ncktsLaqkpsnIpBF5vX7CORIvv/ku/1213n7b7XfkjR07Nvi/EEFOf43DPRbCrbfeuq68vHzsc4/8Rbm3vJ7RgzKJjgj36SRsDpGfd5YwLC+tT9rEdFrOQ3NTiTMEbxuavWW1RIRryQhgC/eXiC43P+8sITct4VcVzX6J0Wxla1ElWSnxZCXHetXN9c6H/+Hltz5y3nX3PQXTpk0r99rAIXrNSWXhdiA/8cQTpyYnJ++88c9/dQ3PS2Xz3grqmo0+m4DocrNhVylDB/SN2AJo1CrGFeaw40A1rSZLnxyjr5FkmdomI6nxva+d4A/UKiXjh+ayv7LhqO4FWZYprqhnW3EVowdlkZ0S51Wx/eDTL/jH6++6brzp5mEhsQ0cTkbBBZCee+65MampqTuvuukv7rGDMiipbmJfeV2fJ0jIsuyJREhPIL6PLc9wrZpxhTlsK66ird3ap8fqCxqaTcQbgrPSmVql5JTCHHbsr8LmcB72N7PVwZpt+3G5JU4bkef1LMFl737Mc6/+23XLrX8cdv755xd5dfAQJ0TwfZO9h/upp54aM2DAgM0Lr/2Te2R+Gi6Xm/W7ShFdfZe1VV7Xglaj9ll6qi5MwylDstmyryLoRLe0tonslHh/T6PXhGvVDMtLZ8veCmRZRpZlDlQ1sGlvGYW5qQzOSUHh5cI4L7/5Lm+8/x/xtjvuHHLBBReEssgCjJNZcAGkxx9/fEJhYeHa3yy50Z2TEktGUixrth2gtQ/EyeEUKa1upDA3xetjH4uIcC3jCnMOJlQEAxabA1mSiQqyGrW/JN4QSWREGMUV9azZth+H08VpI/P7JGzvuZfe5MPl/3X85e57C84555xirx8gxAlzsgsugPToo4+ePnr06K/PXnC1pFXKnDIkm537q9lf2eBVF0NRRQP5mUl+6bbQKbrbiitpNvYubMmXlFY3eZpEBjlut4QgCBRVNFCYm8qQ3FSvl3uUZZkH/vYsK35YZ7nlj3/KmTp1aplXDxDCa4QE14P88MMPnzNr1qzXZsy/SmpsbGDSiAE4nCI/7Sj5lQ+uN4guN81G88HWL/5AF6Zh/NAcduyvpqGl3W/zOB6iy01jW3vQl52sazayamsxEWEactPiMdscXj+Gy+Xi2pv/j6KymsYH//pQ2tlnn13r9YOE8BonRaZZd5k8efLndrvddfvdf5126ikjhOGDBhCmUbN5bwUqpYLoiN43IKxuaCU8TNPnC2XHQ61SkhJvYFtxJWqVMiAf2ctrm4mOCO+zCI6+xmxzsGVfBRabk9EDPUVndGEaiisavBreZrFYmb/kBlLSs/b+8bbbCwoLC4PDX3QSExLcXzBhwoRVKpVq///d98j5uZlpwvAhBaQnxlBW20xFXQtx+shetTQprmggKyUuINp2q5QKUhMM7C6pwSVJxHgx0P5EkWVPJa5heWkB1WmhO4guN3tL6yipamRQdjID0hNRdXxXNGoVJdWNZCTGolCcePhXQ2MTcxYtZdKUM75+5NHHJsXFxfXv+pz9hJDgHoExY8bsCAsL+/bJf7x8qcloVJ46bjQp8QY0KiVbiyqRAUNkeI+s3aKKegoykwKmfoNSoSA10cCBqkaMZhvxhsiAmFttkxEQSAmi2FtJ8lRq27G/iqS4aIbnpx+xJ1qbyUq4Vn2wnnFv2bpjFxcu+R3n/+bCJ+++555LCXVrCBpOxkyzbrN69eqU5557bptGo4l5+W93qbRaLS63m31l9bSYLAzLS+tWGqYsy6zcXMTUMQN9MOueIcsyu0pqcDhdjByY4VerUpZlVm/dz5jBWX7pqtBTZFmmurGN/ZUNpMTpGZCRcMwF0aLyeiK6tHDvDe99/Dl/e+5V+eprr7v02muvfbvXA4XwCyHBPQ67du1Sv/nmmz+sWbNmwoevPqVISU4EwGSxsWN/NRHhWgZnp6DVHL3ojCRJrN66nymjC3w17R5TWt1EdWMrpwzJOeZ76UsaW9uprG9h9KAsvxy/u3i6T5goqqgnNlpHQWZSt1xFB6oaD/ZN6ylut5u7/voE2/ccsN/w+xvHzZ49e0dv5h7Cv4RcCschMTFROuuss15ramqKvO3uB08tLBggZGWmo9WoyUiKQZJlthZV4DpO9f+y2uaADnOKidYRplGzZV8FMdERfmmYuK2oksE5qX4T/OPRKbRb9lXgdksMz0snLTGm22F+TW1mtGpVj+t2NLe0ctGVvyMsKubA3ffcO2DixIlVvZl/CP8TEtxuctppp/1Xo9H8/PfnXrqotrZWedqEsSgUnsiFzORYWttt7NhfhUIhEB1xuH9XEATKapvJ8nK+vLeJCNcSZ4hk894KNGqVTyMYmo1mTBY7OWmBd1OSOlwHW4sqcUsSw/LSyUiK7fHiaWV9K/GGyB75cFetXc/CpX9gxsxzXnvsb387Kz4+/sRjFEP4jZBLoYds3Lgx7qWXXvq5rKwse9lzDymTEhMO/s0puthf2UBDazt5GYmkJRgOCuyGXaUMyk4JyDCsXyK63GzeW05keBiDc1N80idt7fYDDM1NJTrSt1XbjoXL7aairoWKuhYSDJ5uuWHa3lv+KzcXMWlEHqpu1IZwu908/OQLfLNynevKq5ZesGTJks97feAQAUNwxd0EAGPHjm1+6aWX8qdNm/bPGfOvkr79YfXBv2nUKobkpjJhWC5t7VZWbi6ioq4FSZJJjI32aUWyE0GtUjKuMAe1Ssm67QewOfq2ZnBTmxm1ShkwYmu1O9lVUsOqLcW4JZlJIwZQOCD1hMTWaneiViq6Jba1dQ3MvuhKaprby556+pmUkNj2H0IW7gnw2muvnfHOO+8sL8hK1T123x1ERBweseBwihyoaqS+xURaQgzVja1MHTMwoN0Kv6SxtZ2dB6oZkptKUmy018eXZZk12/YzoiDD61WzejqPxlYzZbVNOEUX2anxpMYbvBIzC7C3rA5dmJrM5KN3cpBlmfc+/pyHn/6nvHDh4ifv/POf/0go5KtfERLcE6SysjLs+eef//yrr74689mH/k84beIpv9pGdLkpr23uWNWOYFhemt+7z/YEh1Nky75KInVaBuekeDV0rK7JSG2zkVEDM702Zk+wO0Qq61uobmzDEKUjJzUOfaR3E0FEl5vVW4uZMrrgqJ9dY1Mz1//xbhSacNNFCxZOnTdv3havTiJEQBASXC/x5ptvznv99dffHjtsoPaBP99CePivrTWr3cmabfsJ16pRKZVkp8SRGBftEx/piSLLMiXVTVQ1tDKyIAO9Fx7/JVnmx81FjB+ac8LJAD3BLUnUN5uoqGtBdLnJSI4lLcHQqwzC7rDrQDWRurCj9in76LMV3P+3Z1m4+OK37rzzz0sA/zfbC9EnhATXi+zatSvilVdeWf7999+f/shdNwszp0/91TYl1Y1YbU4yU+Ior22iqc1MUmw0Gcmxfn2k7i4mi52tRRUkxUaTn5F0Qo/cpTVN2B0ig3P6vlylJMs0tZmpbmilrd3q+cyTYvt8EbPFZGFPSS2njhjwK1dSRWU1N/35QWSl2rRg4aIZCxcu/LlPJxPC74QEtw9YtmzZ2R9++OEHKpUq/JkHblOlpSYf/Jssy/y8s5TMlFhS4w24JYm6JiOV9a2ILjepCQZSEwyEn8ACTV8jSTLFlfXUN5sYnp/eq6aHTtHFmm37mTwqv8/KVUqSRFObmdomIy0mC7H6CNITYojVR/jEj+5wiqzdfoBxhTmHuZBEUeSpF17jnU++kOdftPCZO++88xZA6vMJhfA7IcHtO5SPPvros++88861Vyw8X3HD0ktRqTwB/aLLxdrtBxiWl05sl0LUDqdIdWMbtY1GZGRS4vWkxOuPmJcfCJgsdrYXV2KI0jEwK7lHj+Tbi6uIidZ5vTmkU3TR0NJOXbORdqudOEMkqfF64vS+rRXhcrv5aUcJBZnJJMZGHXx91dr13HLXX5l46mn7FixaNGPSpEkVPptUCL8TEtw+5ssvv8z69NNPl2/atGnIfX+6QXHO2dMQBAGr3cn6XaWMKMg4YrUuu1OktslIXZMRp8tFgiGKpNhoYqIjvLZy7g1kWaa8roXS6kYKMpNI7RJ7fDRa263sLqnh1OG/fszuKZIk0Wqy0tjWTmOrp7B6YmwUyXHRv0pA8RUut5v1O0vJSI49eEMpKavgjvv/JpssdseF8y+6fOnSpe/7fGIh/E5IcH3EsmXLZn/++efLmpub9Y/fc4ty1PChWGwONuz29LdKiIk66r4ut5vG1nYaWtppMVkI12pIiIkkTh+JvodVy/oKh+hib2ktZpuDwtzUo7oZJFlm9dZiRhVk9sp/6nJLtLVbaTaaaTZacIouYqJ0JMREEW+IRKP2b1qwQ3SxYVcpWSlxZCTF0tLaxoOPP8ea9Vuk38y78Jk77rjjj4QWxU5aQoLrW4QXXnjh5g8++OCh9KQ4zX13/EFISUlmw64y0pNiut0q22Jz0NRmpqnNjMliQ6tRExutIyYqAkOUzq+1CIxmG7tLatCoVQzKTv5V+FtxRT2SJDMwO/koIxxCkmXMFjttZiut7TaM7VZkICZKR6w+gjh9ZED5uo1mG1v2VTAkJ4WocA3Pv7qMN9/7VJ47d+6KJVdcuWjAgAEmf88xhH8JCa4f2LVrl/qjjz56YsWKFb8tzM9W3XHzb2l3CkiSzPD89B6HJ9kcIq0mC63tVtrarThFF+FaDfrIcKIiwojShRERru1WlpO3aGgxsbe8Dn2kjoLMRMK1GkwWG1v3VXLayLzDutVKsozN7qTdasdsdWCy2Gm32pFlmShdGPrIcAxROgxR4X7pB3c8ZFmmoq6FstomBmcl8e/3P+a1tz9kytSpW847b+68GTNmlPp7jiECg5Dg+pHKysqwf/3rX08tX758aWF+tvLKyy/BiZohuakkHsPFcDxkWcbmEDFZbJgsdswdQibJMmqVEl2YBp1WQ1iYmnCNhjCtCq1ajUat9Kp7QpZlahrbKKpsIEKrps1iIzs5DgQBm92J1e7EIXoaFejCNESGaw/eIKJ0YSh9eIPoLTaHyPbiSmTJzaqV37PsvU+Ydub07TNnzV40c+bM3f6eX4jAIiS4AUBNTU34a6+99sQXX3yxNDstSTVz1ixh6JDBnvx9L5dJdIourHYnVocTm13E7hCxO0UcoguneKhLiyAIqDpy/xUKBUqFgEIQPILcqcmyxzqVZRm3JCNJEi6356fr90qtUtJqsiAAunBPAe74jj5fWrUqIHzQPUWSZcpqmtixr5Sf165m+VffMu3MM7ecO+e8i6dPn77H3/MLEZiEBDeA2LVrl3rFihV3f//997cYjcaw2TNnKC44ZwZ5mYk+f5SWZBmXy41bknC7PWLaKa6d3xgBjzArBMEjykoBpUKBSqU8LHtu54FqqupbmTFhCG3tNg5UN2J3iGSlxJGWYAgKS7YTWZapbzHxzar1rPhyBfuK9svTpp/17fTp06+ZOXNmmb/nFyKwCQluYCK88cYbl3/77bd/3b59e8rUKacJly+6gBGDBvjUD+sNapuMbNxTxpmnDDosntjmcFJe20xtk5FYfQQZSbHEROkC1tr1FB838vZHX7D8iy9RKlWuM8+a8cqCBQtuDy2GheguIcENcD744IMxq1evfnLlypWTUpISFIsvuoD55551QqUCfYXJYmPl5iLGDs4mJV5/xG06q3RVNrRgMttIio0mJd6AISowwt0kWWbtpp28/K/32LBhA2PHjGkYN2HiPb/73e9eIpQdFqKHhAQ3SKipqQl/77337li9evXv9+zZEzNj2ulcsXgewwfnBYQw/RKb3cl3G/eSn5FEQVZSt/ZxuyXqW03UNhkxmW0YonQkxkQRb4jyeahbdX0jr7/7OZ9/8SUKhUKadub0z2fOnPmnyZMnF/t0IiH6FSHBDUKWL18+4rvvvntww4YNZ1stZvU5Z5/JFYsvICcjzd9TAzxZct9t2EtGUgzD8tJ7NYYsy54MstZ2mtrMiG43+shwYqJ06KN0RHsxikGWZcw2B7WNLXyy/L989e131NbWMunUSSUTJk687+qrr36LkDUbwguEBDe4ET755JOZq1atunPt2rWnCrKknHHm6SyYO5MhA/P8MiGr3ckPm/aRmmBgZEGG18aVJIk2s422ditGs412ix23JBGmUaML0xCmVROmUaNRq1CrlCiVio6oCpBlDkZQOF1unE4XNocnLK2huZWf12/k5/XrKS0t47RJk2pGjx37zLx5855NTk62eu0NhAhBSHD7E4o333zz3K1bt964bdu2yfX19epZ004T5sycxqnjxqBW973Pt9nYzrrtpeSkxVGY2/fWtizLODrC3GwOEYdTxCm6EF0SbklCkiRkQEBAqfCEualVKqprqlm1Zh3//X6VbLZYGTV6zP4hQ4a8dtlllz2bmJho6fOJhzhpCQluP2XNmjWFixcv/lSlUqVEREToUpPiOWPSeGHqaeMZPWKo1wV4T2kt+6saGJ6XftRC2/5AlmXKKqpYueYnflizQd66Y5eQlp5uHzxk6I/jx49/cf78+Z8DruMOFCKEFwgJbj9GEIRs4Asgae7cuc8NHjx4xIEDByYXFRXFJsXHMHHsSGHMiKGMHTWclOTEXh3D2G5l/e4yJEni1BF5fi+ibrXa2LpjN5u27eCnTdvknbv3CWlpac68gkFbBwwY8PFZZ5315pAhQ+r8OskQJy0hwT0JEAThGiBLluX/63hJs2zZshn79u07v76+fkpJSUlmY2OjJjs9hdHDhwiDCwYwKH8ABXm5R2wVJEkStU1Giirqsdgc5KYlMCQ31afvye12U1FVw77iA+wtLmHz9t3y7n3FglqtkXMG5DWkpKRsyszMXDF//vx3UlNTm306uRAhjkJIcEMA0NbWpv/Pf/5zdlFR0fS2trYxDQ0NOZWVlXq71axIiI+To6INQlx8PDGGGGJiY0lJTmJUYT7D8jMOK0TjLdxuNw2NzVTV1Hb81FFVU8+Bsgq5tLwSWUZITU11JCanVBkMhu2ZmZk/Tp8+/fNCAMH3AAACsElEQVShQ4eWEOp0GyJACQluiGNiNBpjVqxYMb68vPwUk8k0yGQy5RuNxtTm5mZDQ0NDmCRJSiQXyBAVFSnHxuiJjopCq9Wg1agFjVqNRq1Go1EjyzKi6EJ0uRBFEafLJTudIqZ2M21GE21GE26321OsQUCOjUtwxMfHtxsMhvrIyMjS6Ojo4qSkpC0zZsxYnZ2dXUEoVCtEkBES3BAnigBEtbW1xW3atCm9oqIi1Wg0xsuyHOV2u3UulytMFEWtw+HQCIIgq9Vql1qtFlUqlV2hUNgAi16vb0xJSakbPXp0dUpKSiPQSqhId4h+SEhwgwRBEKYCTwFqoEmW5dM7Xp8JPA0ogVdkWX6k4/VC4BWgCLhCluWQNXgEQp9rCF8SEtwgQBAEA7AWmCnLcoUgCImyLDcIgqDEc+GfBVQBG4BFsizvFgThVeAOYCFQLMvyV/6af6AS+lxD+JrgKj118rIY+FiW5QoAWZYbOl4fB+yXZblElmUn8C4wt+NvSjyLRxKHKtiGOJzQ5xrCp4QENzgoAGIEQfhBEIRNgiBc1vF6GlDZZbuqjtfA8zj8BTAR+MZnMw0uQp9rCJ/i3xanIbqLChgDnAmEA+sEQfjpWDvIsrwFGO+DuQUzoc81hE8JWbgBiiAINwiCsFUQhK1ADfC1LMsWWZabgB+BEUA10LVCTHrHayGOQuhzDeFPQotmQYAgCIOB54CzAQ2wHs+izV48iztn4hGEDcBiWZZ3+WmqQUXocw3ha0IuhSBAluU9giB8BWzHs1jziizLOwEEQfgd8DWexZzXQqLQfUKfawhfE7JwQ4QIEcJHhHy4IUKECOEjQoIbIkSIED4iJLghQoQI4SNCghsiRIgQPiIkuCFChAjhI0KCGyJEiBA+IiS4IUKECOEjQoIbIkSIED7i/wGru6ZISlsWEwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.axes(\n", " [0.05, 0.05, 0.9, 0.9],\n", " projection='astro globe',\n", " center=center)\n", "\n", "ax_inset = plt.axes(\n", " [0.59, 0.3, 0.4, 0.4],\n", " projection='astro zoom',\n", " center=center,\n", " radius=10*u.deg)\n", "\n", "for key in ['ra', 'dec']:\n", " ax_inset.coords[key].set_ticklabel_visible(False)\n", " ax_inset.coords[key].set_ticks_visible(False)\n", "ax.grid()\n", "ax.mark_inset_axes(ax_inset)\n", "ax.connect_inset_axes(ax_inset, 'upper left')\n", "ax.connect_inset_axes(ax_inset, 'lower left')\n", "ax_inset.scalebar((0.1, 0.1), 5 * u.deg).label()\n", "ax_inset.compass(0.9, 0.1, 0.2)\n", "\n", "ax.imshow_hpx('data/GW170817_prelim.fits.gz', cmap='cylon')\n", "ax_inset.imshow_hpx('data/GW170817_prelim.fits.gz', cmap='cylon')\n", "for coord in clucut90coord:\n", " ax_inset.plot(\n", " coord.ra.deg, coord.dec.deg,\n", " transform=ax_inset.get_transform('world'),\n", " marker=ligo.skymap.plot.reticle(inner=0,outer=1),\n", " markersize=10,\n", " markeredgewidth=1)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }