Skip to content

Instantly share code, notes, and snippets.

@ka-pr
Last active June 13, 2019 17:27
Show Gist options
  • Select an option

  • Save ka-pr/bb1bfa98c7cabbb7c803337c0bc77b17 to your computer and use it in GitHub Desktop.

Select an option

Save ka-pr/bb1bfa98c7cabbb7c803337c0bc77b17 to your computer and use it in GitHub Desktop.
HCL python
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Computing hazard curve for a given characteristic earthquake at a target site using the openquake hazardlib library\n",
"\n",
"### In the hazard curve calculation, we need to define \n",
" (1) earthquake source(s), \n",
" (2) target site(s) information, \n",
" (3) ground motion prediction equation(s), and\n",
" (4) target ground motion intensity type(s) with the corresponding ground motion intensity levels for the calculation.\n",
"\n",
"#### This notebook we demonstrate the hazard curve calculation for one single source (characterisitc earthquake in this case), one singe site. However, multiple sources, target sites are available, but it's beyond the scope of this demonstration. For the further information, please check out https://github.com/gem/oq-hazardlib or some more exmpales in https://github.com/GEMScienceTools/notebooks/tree/master/hazardlib\n",
"\n",
" \n",
"#### Developed by Yen-Shin Chen, 20/01/2017\n",
"\n",
"\n",
"#### Modified from https://github.com/GEMScienceTools/notebooks/tree/master/hazardlib\n",
"\n",
"\n",
"To use this notebook you will need to have openquake hazard lib installed. Please follow the instructions from the openquake github to do this."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:root:Cannot find the rtree module, using slow filtering\n"
]
}
],
"source": [
"%matplotlib inline\n",
"\n",
"from openquake.hazardlib.source import CharacteristicFaultSource\n",
"from openquake.hazardlib.geo.surface.simple_fault import SimpleFaultSurface\n",
"from openquake.hazardlib.mfd import ArbitraryMFD, YoungsCoppersmith1985MFD\n",
"from openquake.hazardlib.geo import Point, Line\n",
"from openquake.hazardlib.pmf import PMF\n",
"from openquake.hazardlib.const import TRT\n",
"from openquake.hazardlib.tom import PoissonTOM\n",
"from openquake.hazardlib.calc.hazard_curve import calc_hazard_curves\n",
"from openquake.hazardlib.site import Site, SiteCollection\n",
"from openquake.hazardlib.imt import SA\n",
"from openquake.hazardlib.gsim.akkar_2014 import AkkarEtAlRjb2014\n",
"from openquake.hazardlib import const\n",
"\n",
"import numpy\n",
"from mpl_toolkits.basemap import Basemap\n",
"from matplotlib import pyplot\n",
"from matplotlib import collections"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. Define a planar characteristic fault source, we need to assign:\n",
" (1) source id\n",
" (2) fault source name\n",
" (3) tectonic regionalisation type (e.g., Active Shallow Crust)\n",
" (4) magnitude frequency distribution (e.g., arbitaray magnitude frequency distirbution, youngs&coppersmith 1995 magnitude frequency distirbution, truncated Guterberg-Richter magnitude frequency distirbution)\n",
" (5) temporal occurence model (e.g., Poisson model for 50 years)\n",
" (6) characteristic fault source surface\n",
" (7) rake angle\n",
" \n",
" For assigning the parameters for magnitude frequency distribution (Youngs and Coppersmith 1995 is recommended for Characteristic fault source), please check the following link, and the demonstration at the bottom of this notebook.\n",
" \n",
" http://docs.openquake.org/oq-hazardlib/stable/mfd.html#module-openquake.hazardlib.mfd.youngs_coppersmith_1985"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"src = CharacteristicFaultSource(\n",
" source_id='1',\n",
" name='characteristic fault',\n",
" tectonic_region_type='Active Shallow Crust',\n",
" mfd=YoungsCoppersmith1985MFD.from_characteristic_rate(\n",
" min_mag=5.0, b_val=0.85, char_mag=6.75,\n",
" char_rate=0.000125, bin_width=0.1),\n",
" temporal_occurrence_model=PoissonTOM(50.),\n",
" surface=SimpleFaultSurface.from_fault_data(fault_trace = Line([Point(10, 45.), Point(10., 46.), Point(10.2, 46.5)]), \n",
" upper_seismogenic_depth = 0.0, \n",
" lower_seismogenic_depth = 4.2426406871192848, \n",
" dip = 45.0, \n",
" mesh_spacing = 1.0),\n",
" rake=90.\n",
")\n",
"sources = [src]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. Define the investigated site includes a geographical location defined by its position as well as its soil characteristics.\n",
"\n",
" (1) location: representing where the site is located.\n",
" (2) vs30: Average shear wave velocity in the top 30 m, in m/s.\n",
" (3) vs30measured: Boolean value, ``True`` if ``vs30`` was measured on that location and ``False`` if it was inferred.\n",
" (4) z1pt0: Vertical distance from earth surface to the layer where seismic waves start to propagate with a speed above 1.0 km/sec, in meters.\n",
" (5) z2pt5: Vertical distance from earth surface to the layer where seismic waves start to propagate with a speed above 2.5 km/sec, in km.\n",
" (6) backarc\": Boolean value, ``True`` if the site is in the subduction backarc and ``False`` if it is in the subduction forearc or is unknown"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"s1 = Site(location=Point(10.2, 45.5, 0),\n",
" vs30=760, vs30measured=True,\n",
" z1pt0=3.4, z2pt5=5.6, backarc=False)\n",
"\n",
"sites = SiteCollection([s1])\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. Define the GMPE and the investigated ground motion intensity types /uncertainty truncation level"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"gsims = {const.TRT.ACTIVE_SHALLOW_CRUST: AkkarEtAlRjb2014()}\n",
"truncation_level = 3.\n",
"imts = {'SA(1.0)': [0.005, 0.007, 0.0098, 0.0137, 0.0192, 0.0269, 0.0376, 0.0527, 0.0738, 0.103, 0.145,\n",
" 0.203, 0.284, 0.397, 0.556, 0.778, 1.09, 1.52, 2.13]}\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4. Hazard curve calculation"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"curves = calc_hazard_curves(\n",
" sources, sites, imts, gsims, truncation_level)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 5. Visualise the hazard curve and save it as a pdf file"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqUAAAHwCAYAAACfcxbrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XecVNX5x/HPA9hAs7YIasQSVCyoiIpEQGPBn200xpIV\nYwG7qNlEE41GjElUsEXFlkhs0VFjQaJGsQOxIWuLiiWi2A0WVEAp+/z+OHfc2d0pu9yZvbOz3/fr\nNa+7c9s5sx5nH8495znm7oiIiIiIJKlL0hUQEREREVFQKiIiIiKJU1AqIiIiIolTUCoiIiIiiVNQ\nKiIiIiKJU1AqIiIiIolTUCoiIiIiiVNQKiIiIiKJU1AqIiIiIolTUCoi0smY2fZm1hC9hiZdHxER\nUFAqIhWiWaB0ZiuvuTbrmt7lrmMVKtk602a2lpmdYmaTzGymmX1tZvPM7D0zu9/MTjezdUpVnohU\nn25JV0BEpJklCZRKFlxJ25jZMsB5wDHAMrT8b7F69BoGnG1m/wB+5e7vt2tFRaTiKSgVEZElYmar\nAPcAAwnB6JfATcCjwHvAQqAXsB2wL7A+sD/wBHBpAlUWkQqmoFRERNrMzAz4B40B6T+BI9x9do7T\n7wV+a2Y/B8a2Xy1FpCNRUCoiIkviF8AOhID0fmBfd28odIG732hmDwMblL96ItLRaKKTiFQ1Mxto\nZn8ws0fN7EMz+9bM5pjZy2Z2hZltVODa0VkTqVrzOqTZ9UuZ2Z5mdpmZPWNmn5nZAjObbWZPRfdf\npUj9347u/bfo/QAzu87M3jKzb8ysRSBoZsua2W/N7PlowtFsM5tqZkdEPZyxmNlSwK+it98AI4sF\npBnu/oG7P9bsfpkJa28VKffQ6LzFuSa2teJ3tTja/9/ovCmt+KxrROU1mNl5ec75npmdFv2OP4na\n2AdmNtHMflqsDBEJ1FMqIlXLzA4Fro3eZk/AWR7oC2wEHGlmJ7r7lXluE2cS1V+BQ3LcYyVga2Ab\nYJSZ7e3uTxQo3wHM7GjgMqBr1vEmwaCZ9SSM6eybVe5ywCDgR8BPgYuW8PNk7AqsEd3/H+7+Ucz7\nlUqx31Xm93ETcAYwyMx6u/usAvesBSy69u/ND5rZTsCtwMo0/e/cE9gT2NPM7gMOcPd5S/KhRDoL\nBaUiUs26AZ8BE4ApwBvAXEJAtSVwIrAqcJmZvdq8Bw+4nDBuMp+uwPXAFoSApHlw0xX4L3AnMC06\nvghYG9gZGAGsAtxpZpvmGY+ZsQ3wc+Ad4AJgevT5hmROMLOuhPGbmYD0AeAq4F2gN3AcYRb8ygXK\naY3ts36+N+a9yqHY7yoTlBpwECF7QD4HRduX3f0/2QfMbDvgvujeHxGC4BeADwht7EDgYGA3QjvZ\nP+bnEqlqCkpFpBKtZmabtOK8FYscvw+4yd2/abb/BeBfZnYpIVjtB/yepsEWUZCYN1A0s/NpDEj/\nlCOoPdPdZ+a4tB64y8yuAJ4Evg+cAIwu8Fk2juq9vbt/mbX/yayfjyEE2w5c7e7HZR17DrjbzP4K\njCxQTmtsnvXz9Jj3KoeCvyt3f83M6gm/q7xBqZltCPQnRy+pmXWL9nUD/gXs16ydPQ/cFw0R+Auw\nr5nt5O4Pl+DziVQljSkVkUp0HPBSK157F7qJu3+YIyDNPv4VcCahx2ywma3U2gpGQwN+RQhY7nL3\nFgn/8wSk2cdfBq6Jyt+nUHFROcc3C7KaOzbafgz8Ms85vwD+V6herZA9DvaTmPcqtdb+rm6KtpuY\nWb885wyPtg6kmx37GaHH+xvgkHztzN2vAZ6J3h5WuOoinZuCUhGpRN6GV6uZWXczW9vMNjazTaLe\n2IVZp2ye79pm99kOuDoq/wXCo+LWXLeima3XrPwvosMbR4/f83m3wLhTzKwXoYfQgdsKBElzgdta\nU98CVsj6eW7Me5VDwd9V5BYax+MelOecWsLv89/u/m6zY6lo+7i7f1akrMmEYHlQkfNEOjU9vheR\nSvR7dz+72Elmdi1waJFzViH0aGaStxeafb5qK8rsDdwBLE3okUy5+/wC529K6LX8P0Ii+Xy6ECZA\n5Rou4MCLRaqW3ds3rci5zwDHFzmnkK+yfu4BfB3jXqXWmt8V7v6hmT0K7EQIPk/LPm5m2wA/JM8E\nJ2Cr6Nj/5cqAkEeh//4inZ6CUhGpWmY2gDDZJ3tmdK7e1UygulyR+/UgJIlfDfgW+Im7v1fg/JHA\nlYTv2kI9u60p//NCdaPp5KVij9Q/LnK8mE+zfu5JZQWlUPx3lXETIShdy8yGuHt2iqjMo/uFwO05\nrl0t2ralt37ZNpwr0uno8b2IVKUol+ZthN7HBcCFhIlMqwPLuntXd+8K9Mm+rMhtbyL0SDpwtLs/\nVaD8DQkBaVdCEHgyMIAwHnPprPKPaGX5i4vULVucNFat8ULWz1uWuawl0drf1R2EMaGQ9QjfzLoA\nBxAtDODuuYLczFCLfxHaRGtem7XpU4h0MuopFZFqtSOwLiGwONbdr81zXqvSI5nZuYRxhA5c6O43\nFLnkMMJ37CJgqLu/Eaf8VsgOnHoWObfY8WIepzF5/h4UTpvVGpnH38U6SnrELKcJd//KzO4B9gP2\nM7NR7r6Y0Hvak/Df+qY8l39K+AfO0u7+SinrJdJZqadURKpVdkqpQhN7tip2IzMbDvyGEKTc5+6/\nbkP5LxQISFtVfiu9lPXz1kXOLXa8mAcIuTgN2N/MVo95v8wY1WIpvsqxPGkm6FyZkE8UQm5RCPWa\nmOe65wiff6soPZSIxKSgVESqVXagkLOHLVpy88hCNzGzbQlpmxx4hTAppi3l5+3di4K5VL7jbeHu\nHwKv0hgoLpOnzO6ER9NxylpISEoPYZzk+NYuX2pma5rZj5vtzqTOWsHM1s9z3VKE1ahK7T4ae5mH\nR7+3fQj/ve9092/zXJcJVmuAw8tQL5FOR0GpiFSr7N7Jw/Kccx4FxkSa2VqE1ZiWJqwMtZe7t3ZS\nT6b89aPAtvm9lwNuprSTXzJLpfYijKHN5c80TtKJ4xLCcqZGyCwwwcwKZi+Iepyn0zRTAIThABm/\nIreLgTWXrKr5RQH27YTPsRdhbGkm5dXNBS69nrBSlgEXmNmQAudiZtuZ2dD4NRapXnrkICLV6gHC\nLPTVgD+Z2brAXYSUS32AowjjTqcCg/Pc4yZCgOeEFZ96FFlp6j13nxP9fCNhlaauhJV9zo/K+obw\nyL6OkHLo3wXKb6srCb12/YHjzGw9GpcZXYuQBmoXQsqoWI/w3d3N7ABCNoKBhIDuv2Z2E/AI8B5h\n5novYFtCL2dm+dPm93rezJ4k5PE8KuqtvB6YQ0jjdTSwA+F3tV2ceudxE6HHfDkag/mPgbyrL7n7\ngujzPwosDzxiZrcQlrSdSej0WZ0wuW1fYFNgFCFnqYjkoKBURKqSu88zs0MIgeiyhMDm6OxTCMHT\nCcDLeW6zVrQ14NJWFHsYcENU/rNmNho4i/CI90/Nq0h4BP4KxYPSVj0ad/fFZrYnIZjakNCD+X/N\nyrwfuAiY1Jp7FinvUzPbgdDjfCwhODsmerU4nTCh6e/kHuM7AniM8I+IQ2maf9aB8wnDE4oFpa36\nXTWpmPtkM8sE7itG5aXdvWAWA3d/Ovr8t0XXDqcxlVSTU6NXoRWmRDo9Pb6vQGZ2p5l9ZmZxV10R\n6WiWJJVR3vyf7j6J0Cv5d+B9QmqoTwjBz5HuvjMwr9A9so4Ve7VIoO7ufyDMTp9EePz/LaHX8nZg\nF3f/TbHP0Mrj2WV+SOgpPYMw+WkeYczkk4QsBLsTejDbvCJWnvIWuPsvCT2apwIPAu9E5c4n/N4f\nAE4H1nX3w9z9oxz3eY0wlOJK4G3C7+oTwpjP3d391MypReq9pJ8rTdP/noUe3WfX+xnCZz8GuIfw\neb8lfPZZNH72vu6eKwm/iESsyD8EJQHRuKMVgEPdPdaEBBEREZGOQD2lFcjdJ1N5K6SIiIiIlI2C\nUhERERFJnILSmMxsiJlNNLP3zazBzFrkHDSz481sppnNN7OnzCxu4moRERGRqqKgNL4ewPPAceQY\nXG9mBxJSjIwmTD54AXggO5+fmR1nZs+ZWX2+hNciIiIi1UwTnUrIzBqAfdx9Yta+p4Cn3f2k6L0R\nZt9e6u5jC9xrB+B4d9+/wDmrALsSZqp+U4rPICIiIlLAssA6wAPu/mkpb6w8pWUULYs3ADgnsy9K\nOP0QIUl0vuseBDYjJOqeBezv7k/nOHVXGtdtFhEREWkvw2ll6rTWUlBaXqsSVnP5uNn+jwmJrXNy\n911aef+3Af7+97+z0UYbLUn92kVdXR0XX3xxRd9/Se7Rlmtac26xcwodz3es3L/7UlD7iN8+ynGs\nEqht6LujELWPZNrHq6++ysEHHwxRDFJKCko7tm8ANtpoI7bcMu/y3Ymrqakpa/1Kcf8luUdbrmnN\nucXOKXQ837Fy/+5LQe0jfvsox7FKoLah745C1D6Sax+Rkg8b1ESn8poNLAZ6NtvfE2ixokm1qq2t\nrfj7L8k92nJNa84tdk6h4/mOff115ae7VfuI3z6W9Filtw+1DX13FKL2kVz7KBdNdCqhNkx0mkWY\n6HR+zPK2BKZPnz694v9FK8no1asXH33Uaf79I22k9iH5qG1IPvX19QwYMABggLvXl/Leenwfk5n1\nAPoAFu1az8w2Bz5z93eBi4DrzGw68AxQB3QHritVHerq6qipqaG2trbd/1Ujla1fv35JV0EqmNqH\n5KO2Ic2l02nS6TRz5swpWxkKSuPbCniUkKPUCTlJAa4HRrj7bVFO0rMJj+2fB3Z19/+VqgIXX3yx\nekolpxEjRiRdBalgah+Sj9qGNJfp+MrqKS05Pb7vwPT4XkRERNpTOR/fa6KTiIiIiCROQalIFRsz\nZkzSVZAKpvYh+ahtSBI0prQKaKKT5DNv3rykqyAVTO1D8lHbkObaY6KTxpR2YBpTKiIiIu1JY0pF\nREREpKopKBURERGRxCkoFalis2fPTroKUsHUPiQftQ1JgoLSKlBXV0cqlSKdTiddFakwSoAthah9\nSD5qG9JcOp0mlUpRV1dXtjI00akD00QnKaa+vl5tQ/JS+5B81DYkH010EpEloj8qUojah+SjtiFJ\nUFAqIiIiIolTUCoiIiIiiVNQKlLFxo8fn3QVpIKpfUg+ahuSBAWlIlWsvr6kY9Clyqh9SD5qG5KE\nks2+N7P1gUOAQUAvYDlgV3d/M+ucTYHewFx3f7wkBXdimdn3Q4cOpaamhtraWmpra5OuloiIiFSZ\ndDpNOp1mzpw5TJ48Gcow+z52UGpmXYCxwEmEnleLDjnQz91fyTp3d+AeYBGwrru/H6vwTk4poURE\nRKQ9VXpKqKuBOqAr8AFwe74T3f0+YGZ07n4lKFtEREREqkCsoNTMdgJGRm/PAdZx9wOKXPYPQm/q\njnHKFhEREZHqEben9Khoe5+7n+Hui1txzTPRdpOYZYtIEalUKukqSAVT+5B81DYkCXGD0kGEsaNt\nyR3xXrTtFbNsESli1KhRSVdBKpjah+SjtiFJiBuUrhZt327DNQujbbeYZYtIEcOGDUu6ClLB1D4k\nH7UNSULcoHRutP1+G675QbT9LGbZIiIiIlIl4vZWvgVsCWwMPNjKa3aLti/HLFsidXV1ylMqIiIi\nZZOdp7Rc4vaUTiLMpD8+yldakJltDBxGGId6X8yyJXLxxRczceJEBaTSwoQJE5KuglQwtQ/JR21D\nmqutrWXixIlcfPHFZSsjblB6KeER/g+Bq8wsb8+rme1CCGKXJTy6/2vMskWkiHQ6nXQVpIKpfUg+\nahuShFKs6DQcuCF6+x5wL3AMoTf0GkJP6nZA3+jnBmBvd783VsGiFZ1ERESkXZVzRafYM+Dd/SYz\nW0hY2Wkt4GhCQApwRLTNLD36NXCoAlIRERERyVaKZUZx99uAPsBoYDqwmBCIZl4vA+cCfdz9rlKU\nKSIiIiLVo2S5Qt39U+APwB+iSU8rE9a4/8zdFxa8WEREREQ6tZL0lDbn7g3uPtvdP1ZAKpKcww8/\nPOkqSAVT+5B81DYkCWUJSkWkMmhVFilE7UPyUduQJMSafW9mvYBzore/c/f3i5y/JuERvwOnuLtW\ndYohM/t+6NChSp4vIiIiZZOdPH/y5MlQhtn3cYPSU4AxwPPu3qqcRGZWD2wO1Ln7pUtcuCgllIiI\niLSrcqaEivv4fhih1/P2NlxzK2FG/m7FThQRERGRziFuULpptH2mDdc8G203i1m2iBQxderUpKsg\nFUztQ/JR25AkxA1KV4m2/2vDNbObXSsiZTJ27NikqyAVTO1D8lHbkCTEDUq/jrY1bbjme9F2Qcyy\nRaSIW265JekqSAVT+5B81DYkCXGD0vei7aA2XLNdtC04U19E4uvevXvSVZAKpvYh+ahtSBLiBqWP\nESYtnWBm3ytyLtE5owiTox6LWbaIiIiIVIm4QenVhABzdeBeM+uZ78Qop+m9wBrRNVfHLFtERERE\nqkSsoNTdXwYuIfSW/gh408yuMbNDzWxY9DrUzMYDb0TnOHC5uz8ft/IiUtgpp5ySdBWkgql9SD5q\nG5KEbiW4x8mEiU6HAz2iba5Fcy3aXgP8ogTlikgRvXv3TroKUsHUPiQftQ1JQqwVnZrcyCwF/AbY\nlsYANMOBJ4Ax7n5PSQoUregkIiIi7aqcKzqVoqcUAHefCEw0s5WBLYBVo0Ozgefc/fNSlSVN1dXV\nUVNTQ21tLbW1tUlXR0RERKpMOp0mnU4zZ86cspVRsp5SaX/qKRUREZH2VM6e0riz70Wkgs2YMSPp\nKkgFU/uQfNQ2JAkKSkWq2K9//eukqyAVTO1D8lHbkCSUZEypmXUD9gCGAOsBKwBdi1zm7r5TKcoX\nkdzGjRuXdBWkgql9SD5qG5KE2EGpmQ0GbgSy80c0n32fzaPjGswqUmZK6yKFqH1IPmobkoRYQamZ\n9QXuB5YjBJoLCEnyPwMaYtdORERERDqFuD2lvwW6A4uB0cCl7v517FqJiIiISKcSd6LTjoTH8Je4\n+zkKSEUqy5gxY5KuglQwtQ/JR21DkhA3KM0kyL8rbkVEpPTmzZuXdBWkgql9SD5qG5KEWMnzzexd\nYA1g61InUJXilDxfRERE2lMlJ8+fGm03jVsREREREem84k50ugj4KXCSmd3s7otKUCeRijZhAsyd\nC6uvDmusEV4rrABWKBGaiIiIFBQrKHX3aWb2C+BS4E4zG+Hus0tTNZHKdN558PTTTfd1794YoK6x\nRtOAtXnw2p5mz57NqquuWvxE6ZTUPiQftQ1JQtw8pWdGPz4D7Am8Y2YPAjOAoqOk3f3sOOWLJOHD\nD1vumzcP3nwzvArp0SN/4Nq7N2y0EayySunqOmLECCZOnFi6G0pVUfuQfNQ2JAlxJzo10HRlpjat\n1OTuxZYilQI00an9ucMyy8DCheUrY7XVYOONQ4C68caNP/fq1fYhAvX19Wobkpfah+SjtiH5lHOi\nU+xlRmm5pKhG1knVmjcPtt8ePvgg9Jh+/nnpy/jkk/B67LGm+1dcsWmwmtmutRZ0yTNlUX9UpBC1\nD8lHbUOSEKunVJKV6SkdOnQoNTU11NbWUltbm3S1OpX580Nw+uGHIVDNvLLff/ghfPFF+erQowf0\n7du0V3XjjWG99aCrnkWIiEgJpNNp0uk0c+bMYfLkyVCGnlIFpR2YHt93HPPmFQ5e338f3nqrtMMC\nll8eBg2CwYPDa+DAEMCKiIgsqUp/fC8iRXTvDj/8YXjls2hRCExfeSW8Xn21cTt/ftvL/PprePDB\n8Tz44Egg9JpuuSUMGRKC1O22C+NXpfMaP348I0eOTLoaUoHUNiQJCkpFKkS3brDBBuG1zz6N+xsa\nYNaslsHqK6/Al18Wu2s9EP6wLF4M06aF10UXhaMbbNDYkzp4MPTpo3yrnUl9fb0CD8lJbUOSoMf3\nHZge33du7uHxf65gdfYSZgvu2bNpkLrFFiFYFhERgQ7w+N7MlgaGA/sAmwOrAssVuczdXX/uRJaQ\nWWOe0513bnrso4/giSdg6tTwqq8PPaXFfPwx3HFHeEEYg7rttiFA3XnnMEZVk6dERKQcYveUmtkG\nwARgQ9qWDsqVpzQe9ZRKa82dG1ahmjoVpkyBJ58M+9pq1VVhzz1h771hl100cUpEpLOp2J5SM+sB\n/AtYF2gA7gb+BxxJSKL/R2BlYCtgYLTvSeDBOOWKSNv06AE77hheECZVvfBCY0/qlCmhl7SY2bPh\nuuvCa9llQ+/p3nvDXnuFR/8iIiJLKk/K7VY7hhCQLgaGufu+wKWZg+4+2t1PcPdBwADgVWBb4FN3\n/33MskWkiFQqlXN/t24wYACcdBL84x9hbOqbb4Zgc+RI2HDD4vf+5hu45x448siwTOqPfgTnnRfG\ntmqoeseQr32IqG1IEuKO6dyL0Pt5m7s/UuhEd3/OzH4MvABcZGZPuvv0mOWLSAGjRo1q1XlmjSmr\nDj007Pvf/+Df/w49qZMmwUsv5b/ePQwJePJJOO00WH/90IOaSoVgVeNQK1Nr24d0PmobkoRYY0rN\n7BNgFeBAd7892rcJ8BIhWF3K3RuaXXMyMBa43t0PX+LCRWNKpV3NnAkTJ8Ldd8Pkya2bOAWN41BT\nKRg2TONQRUQ6snKOKY37+H7FaPtO1r5vs37O9efn39F2+5hli0g7Wnfd8Lj/kUdCL+rf/w777x9W\njiokMw51331DgLrXXnDNNeEeIiIiGXGD0nnRNru7NXuV794Fru0Vs2wRSchKK8Hw4XDbbSHovP9+\nOPZYWHPNwtdlj0NdY42wSMBdd8GCBe1TbxERqVxxg9KZ0XaNzA53nw18Fr3dLsc1A6Kt/gyJlNmE\nCRPKXsYyy8Cuu8IVV8C778Kzz8LvfgebbVb4ukWLwlCAffcNE6VGjQqrTWmSVPtpj/YhHZPahiQh\nblD6bLTdqtn+hwk5S08xs5UzO81sPeBUQs/q8zHLFpEi0ul0u5ZnFmb1n312SDk1cyZccklIRVVo\nstNnn8Hll8M228Amm8CYMfD+++1X786qvduHdBxqG5KEuBOdDgBuAV509y2y9m8HTCEEn58DjxLG\nlw4Glo/2/9zdb17yqosmOklH8vnn8K9/wYQJ4RH+/PmFz+/SJeRBPeQQ+MlPoHv39qmniIjkV8kT\nne4BJgNfmdkPMzvd/d/A2YTe0pWBfYFdCQEpwLUKSEU6l5VWgoMOCuNQP/ooTHYaMiT/+Q0NIRXV\nwQdDr14hf+rkyXq8LyJSrWIvM1rw5mY7AUcAmxByor4B3ODud5St0E5EPaVSDd56C264Ibxmzix+\n/rrrht7TQw6B9dYrf/1ERKRROXtKyxqUSnkpKJVq0tAQkvVff33oTf3qq+LXDBkSkv3vtx/U1JS/\njiIinV0lP74XkQp2+OEdZ32KLl1CkHnNNeHx/k03hWT7ZvmvmTIFjjgiPN4/7DCYrjXi2qQjtQ9p\nX2obkgQFpSJVbNiwYUlXYYl07x7Gnz7wQEgzdd55sNFG+c//5pvQw7rVVjBoENx8s3KftkZHbR9S\nfmobkgQ9vu/A9PheOhP3kAP1+ushnQ5ppArp2ROOOgqOOSYk6hcRkfgSf3xvZovL8FpUyg9SLczs\nB2b2qJm9bGbPm9l+SddJpBKYwdZbw7hx8MEHcOedsPfe0K1b7vM//hj+8AdYe2048MDwqF//BhcR\nqVytfXxvZXpJS4uAk9x9E0IarT+b2XIJ10mkoiyzTMhdOmFCSLL/xz/mX+J00aIwcWroUOjfP4xZ\nnTcv97kiIpKcVj2+N7PRRU7Zg8ZVnV4GngE+jt73BLYGNiUkzX8WuA/A3X/f9ip3Lmb2PLCHu7dY\n30aP76WYqVOnMnjw4KSr0S4WLQpB6rhx8Pjjhc9daaWQ9/TYYzt3WqnO1D6kbdQ2JJ/EH9+7++/z\nvQiB5lbAC8BAd+/n7iPd/bfRa6S7bwYMjM7ZKtxSAWkxZjYA6JIrIBVpjbFjxyZdhXbTrVtIDfXY\nY2GJ06OOyr8K1OefwwUXQJ8+kEqFJP0NDe1a3YrQmdqHtI3ahiQh1uz7KDn+WcDrwGB3n5bv3OjY\nEOBNYLSZ7Ryn7EphZkPMbKKZvW9mDWaWynHO8WY208zmm9lTZrZ1K+67MnA9cGQ56i2dwy233JJ0\nFRKx2WZw9dXw3ntw0UXwwx/mPs8d/vlP2HXXMLv/ssvgyy/bt65J6qztQ4pT25AkxE0JdSKhp/Q8\nd59b7OTonPMI40lPiFl2pegBPA8cR/hdNGFmBwIXAqOB/oTe4gfMbNWsc44zs+fMrN7MljGzpYG7\ngHPc/en2+BBSnbp38gXjV1oJ6urg9dfh3ntht93yn/v663DiiWFs6vHHw3//2371TEpnbx+Sn9qG\nJCFuUJoZR/piG655IdoW7S3sCNz9fnc/093vJvfkrTrgane/wd1nAMcA84ARWfe4wt37u/uW7v4t\noYf0YXe/uT0+g0i169IFdt8d7rsvBJ+/+AV873u5z/36a7jiCthgAxg+HP7zn/atq4hIZxU3KF05\n2rZlgb/Mn4KVYpZd8cxsKWAA8HBmn4eZZQ8Bg/Jcsx2wP7BPVu/pJoXK2X333UmlUk1egwYNYsKE\nCU3OmzRpEqlUi9EFHH/88YwfP77Jvvr6elKpFLNnz26yf/To0YwZM6bJvlmzZpFKpZgxY0aT/Zdd\ndhmnnHJKk33z5s0jlUoxderUJvvT6XTOFUQOPPBAfQ59jpJ+jvXXhw8+OJCrrprAlVfCJt/93zUJ\naPwcDQ0hCX+/fsfTv/94nnmmsj4HVMd/D30OfQ59jsr9HOl0mlQqRb9+/ejTpw+pVIq6uroW5ZZK\nrOT5ZvZfYB3gSncf1cprxhEedb/t7lU179XMGoB93H1i9H514H1gUPZjeDMbAwx195yBaRvK0+x7\nKeiUU07h/PPPT7oaFc09TI4aNy7M3i804WmnneD002GHHQovf9pRqH1IPmobkk/is+8LuJ/wyPpo\nMzug2MlRIvijCWMv74tZtogU0bt376SrUPHM4Mc/hjvugJkz4eSTYfnlc5/78MOw447wox+FCVId\nPRm/2oclgxwvAAAgAElEQVTko7YhSYjbU7omIS/pCtGufwLXAdOATwjBZyZP6aGEZ2MGfAlsUm2p\njnL0lC5FGD/608y+aP91QI27/yRmeeopFSmDzz4LM/EvuSSkj8pns83gtNNg//2ha9f2q5+ISFIq\ntqc0Cir3Ar4iBJt7AXcAs4BvgG+jn++gMSD9Cti72gLSXNx9ITAd2Cmzz8wsev9EUvUSkcJWXhlG\nj4Z33oHzz4devXKf9+KLUFsLffvC+PGwYEH71lNEpJrEfXyPu08B+hECzwbyLynaANwJbObuRdZb\n6TjMrIeZbW5mW0S71overxW9vwg40swOMbO+wFVAd0KPcknU1dWRSqVIp9OluqWIACusEB7nz5wJ\nV14J66yT+7w334Qjjgj5UC+9VMuYikj1yUx6qtiJTi1uZtYT+DEhSM3MzP8ceAl41N0/KllhFcLM\ntgcepWWO0uvdfUR0znHArwlDGZ4HTnD3Z0tQth7fS0EzZsygb9++SVejaixcCLfcAueeC6++mv+8\nVVcN+VGPOw5WXLH96tdWah+Sj9qG5FPOx/clDUqlfSkolWJSqRQTJ04sfqK0SUNDmKl/zjkwfXr+\n8773PRg1KuRF/f73269+raX2IfmobUg+FTumVEQq27hx45KuQlXq0gX23RemTYMHHoChQ3Of9+WX\nIXBde2044wz46qv2rWcxah+Sj9qGJKGkQamZLWdmg81sv2gMZZ41U0SkPSitS3mZwbBh8PjjMGVK\nWDUql/nz4U9/gj594OqrYdGi9q1nPmofko/ahiShJI/vo0k95xBWIloq61A/d38l67yRhDylc4Bh\nrrEDsWQe3w8dOpSamhpqa2upra1Nuloindpzz4Uxp7ffnj+P6UYbhVn9u+9eHUn4RaT6pdNp0uk0\nc+bMYfLkyVCJY0rNbCBwL2HZ0OyvV6dlULoaIUXUUsDu7v5ArMI7OY0pFalcr70G550HN94Iixfn\nPmenneCCC2CLLXIfFxGpNBU7ptTMVgTuJsy0/4iwfGi/fOe7+yfAv6K3e8QpW0SKa76usbSfDTeE\na6+Fl16CvfbKfc7DD8OWW8Jhh8F777Vr9QC1D8lPbUOSEHdM6YnAasBswvruV7n7y0WueYjQo7pN\nzLJFpIh5SpiZuI02gokT4ZFHQgDanDtcfz1ssEH7T4ZS+5B81DYkCXGXGZ0GbAmc7u7nZe1vIMfj\n++jYDsAjwKfuXoFJUjoOPb4X6VgaGuCmm+C3v83fM7raanD22TByJHTr1r71ExEppmIf3wN9ou3k\nNlyTWUlaM/NLRCs6iXQMXbrAz38Or78eZuMvv3zLcz75BI45BjbfHO67L/9kKRGR9lTxKzqZ2Xxg\naWBbd5+Wtb9QT+mPgKnAl+5ewWudVD71lIp0bB9/DL//PfzlL5oMJSIdQyX3lH4SbddtwzWZr9YP\nYpYtIkXMnj076SpIAT17whVXJDcZSu1D8lHbkCTEDUqfjra7teZkMzPgSEIv6pSYZbeamf3QzAaa\nWc/2KlOkEowYMSLpKkgrZCZDPfww9O/f8ni5JkOpfUg+ahuShLhB6U2EmfTDzaw1D5cuBDaPfr4+\nZtmY2Wpmdlz0qslxvI+ZTQdeB54A3jezO8xspbhli3QEZ511VtJVkDbYcUd49lm44Qb4wQ9aHs+s\nDLX++nDHHfHLU/uQfNQ2JAmxglJ3vxt4FOgGPGxmx0YJ8jO6mdkaZra/mU0BTiL0kt7p7k/EKTuy\nLzAOOMnd52QfMLNlCDlRtyAEzkb4vPsQcquKVD2NNe54MpOhXnst/2Sojz+G/faD4cPhs8+WvCy1\nD8lHbUOSELenFOCnwHOEFZ3GAR8SAk+i/e8CtwA/IgSGTwOHlaBcgGFRWXflOHYY8MPo54mEgPif\nUR22M7MDS1QHEZGS6949pI56880wG79r15bn3HwzbLop3Htv+9dPRKTUYgel7v4FMAg4F/iSxl7J\n5q/5wFhgB3efG7fcyIbR9qkcxw6Kto+4+z7ufpm7701j8v6flagOiVNKKJHq1bMnXHklvPgi7JZj\n9P6HH8Kee8KIETBnTsvjIiKlUPEpoVrczKwHsD2wFWGlp67Ap4Qe04eaP2IvQXmfAKsAA9392az9\nywFfEIYV/Mzd/5F17GfAzcC77r52KevT3pQSSooZP348I0eOTLoaUiLuIfn+CSfAF1+0PL7WWjB+\nPOyyS+vup/Yh+ahtSD6VnBKqCXef6+73ufvZ7j7K3Y919zPc/Y5SB6SRTJ7Thmb7twWWIjzaf6jZ\nsZnRdjVEqlx9fUm/LyRhZnDwwfCf/+TuNX33XRg2DI49Fr7+uvj91D4kH7UNSUJJg9IEZL52ezXb\nv0O0fcXdP292bGG0XVSuSolUissvvzzpKkgZrLlmGEd6zTWwwgotj191FWy2GTz+eOH7qH1IPmob\nkoSSBqVmtpyZDTaz/czsEDMr91KiM6Lt/zXb/1NCL2mur+RMAPtxuSolIlJuZjByZEi8v+OOLY/P\nnAk//jHU1cG8ee1fPxGRtipJUGpma5nZjYR17R8HbgWuBX7Q7LyRZvaMmT0YJdKP617CpKWjonRU\nm5rZBcDG0fE7c1yTGXz5fgnKFxFJ1Nprw4MPwrhxYcZ+Nnf4859DQv4nn0ymfiIirRU7KDWzgYSJ\nTAcBS9M42z6XfwKbATsS0jnFlUlBtXT08wtAZlrYk+7+aI5r9iL0ok4rQfkiIonr0gWOPx5eeAEG\nD255/PXXw/5TT4Vvv23/+omItEasoNTMViQkol8Z+Ag4DuiX73x3/4SQ0B5gjzhlR/ebA+wM1NM0\n/dQU4IAc9d0c2Dp6+2Dc8iuFUkJJPqlUKukqSDvq0wceewwuvBCWWabpsYYGGDMGBgyA6dPDPrUP\nyUdtQ5qr+JRQZnYmcBYwG9jK3WdF+xsIvZH93P2VZtccD1wGPOPu2y5x4S3rsi5hvOiH7v52nnM2\nJ6zwBHCzuy/MdV5HoZRQUsykSZMYNqwUDyWko5kxAw49FJ55puWxrl3h9NNhm20mscceah/Skr47\nJJ9ypoTqFvP6zKPwizIBaSu8HG1/WPCsNnL3mTSme8p3zguER/winYL+qHReffvCv/8N558Po0fD\nwqx/gi9eDGefDVtsMYzevaFf3udb0lnpu0OSEHdMaZ9oO7kN12RSNMWemW9mDWa2yMx+HfdeIiLV\npls3OO208Li+f/+Wx59/PjzOHzMmTIoSEUlS3KB02WjblsfgPaLt/JhlAyygcQypiIjk0K8fPP10\n6DHt1uz52MKFYQLUwQfDN98kUz8REYgflH4SbddtwzWZMZ0fxCw7+x5KhC+Sw4QJE5KuglSIpZaC\ns84Kwekmm2T2NraPm2+GnXaCTz7JdbV0NvrukCTEDUqfjrY5FrxrKcpNeiRhHGopejczwwYGlOBe\nIlVHGRmkuS23DI/zTz0VoGn7eOIJGDgQXnkl56XSiei7Q5IQNyi9ifD4fLiZbVHsZOBCYPPo5+tj\nlg1hFv9i4OR2WD1KpMO59dZbk66CVKBlloFzz4V77721xTKlb78NgwbBpEmJVE0qhL47JAmxglJ3\nvxt4lDCL/+FoVaXVsk7pZmZrmNn+ZjYFOInQS3qnuz8Rp+yo/OnACcDawONm9qO49xQR6Sx23z3M\n0O/du+n+L78Mx666Kpl6iUjnFDclFIR15h8G+hNWVRpHCDwhrPSUzYCngMNKUC5m9rfox9cIPbBT\nzOxd4EXCLP/FBS53dx9ZinqIiHRUmUlQe+/dNKfp4sVw7LHw2mtwwQUht6mISDnFSp7/3U3MlgZG\nE1Z0qslz2jxCwHqmuy+IXShNkvR/tyvaFvtQRghKO/TXbCZ5/tChQ6mpqaG2tpba2tqkqyUiHdD8\n+XDYYXDbbS2P7blnmAjV/FG/iHQe6XSadDrNnDlzmDx5MpQheX5JgtLvbmbWA9ge2ApYDegKfEro\nMX0oWha0lOW9TfEANC93b0vWgIqjFZ2kmMMPP5xrr7026WpIhWrePhoaQtqoP/6x5bmbbQb33ANr\nrdWOFZTE6LtD8qnkFZ2acPe5wH3Rq+zcfZ32KEeko9KqLFJI8/bRpQv84Q+w/vpwxBFNV4F68UXY\nZhuYOBG23rqdKyrtTt8dkoS4s+9FpIJpOIcUkq99HHIIPPwwrLJK0/0ffQTbbw933NEOlZNE6btD\nkhA7KDWz3tFrmVacu2zm/LjliohI+QwZAk89BRtu2HT//Pmw334hpZSWJhWRUooVlJrZMGAm8BLQ\nvRWXdAdeBt4ysx3ilC0iIuXVpw88+STsuGPLY7/9LYwYAQtKMm1VRCR+T+n+hJnsE9z982Inu/tn\nwB1RuQfGLDsnM+tqZqua2VpZvbg5X+UoX6SSTJ06NekqSAVrTftYaSW4//4wxrS5666DYcPg009L\nXzdJlr47JAlxg9JBhNnvbVn744Gsa0siCkJ/b2YvAN8AHwNvE3px873eKlX5IpVq7NixSVdBKlhr\n28dSS8Ff/gLnnw9mTY89/nhYAer118tQQUmMvjskCXGD0nWibVu+jt6MtiVJxxSt4vQf4AygHyEN\nlbXyJVLVbrnllqSrIBWsLe3DDE4+Ge68E7o3G6z1xhuw7bbw2GOlrZ8kR98dkoS4QWkmpVShlZOa\ny5y7bMyyMbNVgLsJOVHnAn8GzooOOzASOAW4FZgf7ZsKHA6MiFu+SKXr3jx6EMmyJO1jn31gyhRY\nY42m+z//HHbZBf72t9zXScei7w5JQtygdHa0Xa8N12TO/Sxm2QCjgFWAb4FB7v5LwphVANz9Wne/\n0N1rgT7AZGA7YGN3v74E5YuIdDpbbhmWJO3fv+n+RYtg5Eg49dSQiF9EpC3iBqXPR9u2TFr6WbT9\nT8yyAXYj9H7+zd1fLnSiu38I7A78FzjZzHLMJxURkdZYc02YPBn23rvlsTFj4Fe/UsooEWmbuEHp\n3YSxmfua2f7FTjazA4B9CYHkhJhlQ+j9BHgoa993X4Nm1mRte3efD1xMqPMxJSi/ItTV1ZFKpUin\n00lXRSrMKaecknQVpILFbR/LLx8S6Z98cstjf/5zWB1KOiZ9d0hz6XSaVCpFXV1d2cqIu8zo9cBp\nhAlPN5vZQOASd383+yQzWwuoA04gBI3vAtfELBvge9H2nax932T9vALwRbNrno22A0tQfkW4+OKL\n2XLLLZOuhlSg3r2V+UzyK0X76No1zMrfcEM45hhYnDXDYPRoqKmBk06KXYy0M313SHO1tbXU1tZS\nX1/PgAEDylKGecznK2a2BWGs5vI09lLOAj6Mfl4dyLRuA74Gtnf352IVHMr+DKghjCd9Jtq3ImG8\nqgMD3P35ZtcMAR4HvnX35eLWIUlmtiUwffr06QpKRSRxN98MBx/c8rH9ddfBoYcmUiURKbGsoHSA\nu9eX8t6xlxmNgr6BwHM0plpaO9o3MPo5s386sE0pAtJIJr3Ud/+kc/cvgI+itz/Occ3gaDu3RHUQ\nERHgoIPg8stb7h8xAu66q/3rIyIdS+ygFMDdX3X3AcCuwGWEtEuvRa+pwKXALu6+tbvPKEWZkaej\n7dbN9t9PCIJ/bWbrZ3aa2baEFFEOTCthPUREBDj2WDjnnKb7GhrgZz+Dhx7KfY2ICJQoKM1w9wfd\n/SR3H+ruG0evoe7+C3d/uJRlRR4gmmjVbP9FwCJC/tKXzWyamb0CTAFWjM65pAz1EakoM2aU8t+A\nUm3K1T5OPRWaz5NZsCDkOH3qqbIUKSWm7w5JQkmD0gQ8ANwAPGVm360Q5e7/AY4lJOrvBgwA+hJW\newI4y93vb+e6irS7X//610lXQSpYudqHWUgLdeSRTffPnQu77QYvvVSWYqWE9N0hSYg10cnM+i7p\n43gzO8bdr1riwltXxobAYcAmhOD0DeBGd3+20HUdhSY6STGzZs3SLFrJq9ztY/FiGD4cbr216f5e\nvcKqUH365L5OkqfvDsmnkic6TTez49pygZl938zuAXIMhy8td3/N3U9z95S77x4NLaiKgFSkNfRH\nRQopd/vo2hVuuCH0jmb76CPYeWd4//2yFi8x6LtDkhA3KF0OuMzM7jGz1YqdbGZ7AS8RVmISEZEq\nt/TScPvtMHhw0/3vvAO77AKzZ+e+TkQ6n7hB6TTCRKPdgJeioLMFM1vOzK4mrOK0GmH2+7kxy87J\nzLqY2apm1rv5ik4iItL+uneHe+6B/v2b7n/11dCL+uWXydRLRCpL3KD0R8CfgAbg+8AEM7vKzL5L\nSm9mWwPPA0cQAth3gB3c/YyYZX/HzLqa2UgzmwLMAz4G3gI2bHbenmY21sxOL1XZIpVszJgxSVdB\nKlh7to+aGrj//rDyU7Znn4VUCubPb7eqSCvou0OSECsodffF7v47YAfgbULQeSRQb2bbmtmZhDyl\nfaJjfwc2c/epccrNFg0bmAL8BdgOWJrGZP3NvQ2cDJwdrUQlUtXmzZuXdBWkgrV3+1htNXjwQWg+\nXPHxx+GAA2DhwnatjhSg7w5JQuxlRr+7kdkKhMlLB9O43CiE4PAL4Bh3v60khTWW2RV4gpA8vwG4\nnbDk6bioDv3c/ZVm1zwJbAP80d1Hl7I+7U2z70WkI3r9dRgyBD75pOn+gw6CG2+ELh09WaFIFavk\n2fffcfev3P0QIE1jL6UBc4CtSh2QRg4lBKQLgT3c/WfufkWRayZG9Rpc5DwRESmDDTaABx4Ij/Sz\n3XwzjBoFJeorEZEOpmRBqZnVmFka+BmhlzITmH4PuNPMNilVWVlqo7KudvcHWnnNc9F2w4JniYhI\n2WyxBdx7Lyy3XNP9V14Jp2vUv0inVJKg1My2B14EDiAEo68APwbuit73A6aZ2UmlKC/LZtF2Yhuu\nyTwwWqXEdRGpOLOVb0cKSLp9bLcd3HUXLLVU0/3nngtjxyZTJwmSbhvSOcUKSs2sm5mdBzwErBXt\nvpTwuP5xd/8pYdb9XGBZ4CIze8DMVo9TbpbMOvaftuGaTJqoxSWqQ+Lq6upIpVKk0+mkqyIVZsSI\nEUlXQSpYJbSPXXcNj+2bjyP9zW/gL39Jpk5SGW1DKks6nSaVSlFXV1e2MuIuMzod2ILQG/oRcJi7\nT8px3nqEmffbEh63fw4c7e53LHHh4b4fEvKe/sTdJ2btbyD/RKeDorq84+7rxik/aZroJMXU19er\nbUheldQ+xo+HI45ous8M0mk48MBk6tSZVVLbkMpSyROd+hMC0rsJAWCLgBTA3d8iTCw6i9BDuTJw\na65z2+jlaLt1G645kBCwTitB+SIVTX9UpJBKah8jR8KFFzbd5w4HHwz33ZdMnTqzSmob0nnEDUrn\nAke6+0/cveAjdHdvcPezCcHpm+TOI9pWE6L7jDKzlYqdbGb7AZlVp2L10oqISGn98pdwRrNlVRYt\ngv32gxdeSKZOItJ+YveUuvv4tlzg7s8QeliviVk2wF+BWYQZ/pPMbONcJ5nZamb2J+BmQi/pf4By\npKgSEZEYzj47pIXKNn9+SK7/1VfJ1ElE2kfcFZ3eXMLr5rr70XHKju7zLbA38CUwAHjJzLLHkP7d\nzF4HPgBOBboBnwE/9VKtGiBSwcaPb9O/GaWTqcT2YQaXXAI//3nT/a+/DkcfrRym7aUS24ZUvw6/\nboa7v0AYU/ok4VF+36zDmxOWOO0SHXsGGLikwbRIR1NfX9Ix6FJlKrV9dOkC11wDWzebLZBOh/1S\nfpXaNqS6lXKZ0RpgP2AQ0AvoDhzu7u9knbMGIY3TN9Hkp5Iys8FACtiKMCu/KyFd1HPARHd/sNRl\nJkmz70Wkms2cCf37w5w5jfuWWQaefho23zy5eol0ZuWcfd+tFDcxs1HAn4DlM7sIYzd7NDt1B0I6\npm/M7Afu/lkpys9w96nA1FLeU0REkrHuunDttbDvvo37vv02jC999llYYYXk6iYipRf78b2Z/R64\nBFgBWABML3D6LYR8pssAP41btoiIVLef/AROarYWoMaXilSnuCs6DQAyCTz+DvRy923yne/uDcA/\nCD2pu8QpOyr/HjP7iZmVpMdXREQqz9ixGl8q0hnE7SkdRQgwn3T3Q9x9TrELCBOSAPrFLBtgd+B2\n4H0zu9DMNi3BPUWqRiqVSroKUsE6SvtYemm49VaoqWm6/4QTlL+0XDpK25DqEjcoHUoYOzquDde8\nHW3XjFk2wCeEoPj7wC+AF8zsGTM72sy+V4L7i3Roo5onfBTJ0pHaR2Z8abbM+FLlLy29jtQ2pHrE\nDUpXj7avteGab6LtMjHLhhDY7k1Y2WkRIUDdCrgC+NDMbjSzHUtQjkiHNGzYsKSrIBWso7UPjS9t\nPx2tbUh1iBuULoi2K7bhmp7R9ouYZePui939n+6+L/AD4GTCak0GLAccBDxoZm+Z2e/MbK24ZYqI\nSHLyjS/961+TqY+IlE7coHRWtF2/Dddkei7b0rtalLv/z90vcvfNCMn0rwLmEALUdYCzgJlmNsnM\nDjSzpUtZvoiIlF9mfOmKzbpCTjxR40tFOrq4QenDhKDvmNacbGZrAkcRxqFOill2Xu4+3d2PIwwv\nOAh4KCqzC7ATcDPh8f5lZta/XPUQSdqECROSroJUsI7aPvKNL91/f40vLZWO2jakY4sblI4DFgKb\nm9nvCp1oZhsC9wM1wDzg6phlF+Xu37r7Le4+DNiZkCM1YyXgOOBZM3vKzDTVUKpOOp1OugpSwTpy\n+9hnH/jFL5rue+MNjS8tlY7cNqTjir3MqJmdDIwl9EROA+4Ezoven00IWrcDhtEYBB/l7uNjFdy6\nui0H7A8cDgwh9OpadPh1YC3C2FOi+v4T+Jm7f0MHoGVGRaQzW7AABg+GadOa7r/6ajjqqGTqJFLt\nyrnMaOwVndz9AuA3hNnv2wDnEgI8gDOBPwD/R1iHvgH4ZbkDUjPbzsyuIfSMXgtsT/isXwN/BQa6\ne1+gF3AsIUA1YC/g1HLWTURESkPjS0WqS+ygFMDdzwe2IASAs2nskcy8vgTSQH93v6QUZTZnZmuY\n2Wlm9howmdA7ukJU/pPASGB1dz/a3adF9f7K3a8GNiEk4TfCGFQREekANL5UpHqUJCgFcPdX3X2k\nu/ckzHbfBhgEbACs4u7D3f0/pSoPwMyWNrMDzOxfwDvAHwmZAAz4FLgY2MTdt3P3a919Xp66LwYu\niN6uXco6tpWZ1ZjZNDOrN7MXzeyIJOsjIlLpNL5UpDqULCjN5u6z3P1Zd3/a3d+M1rwvhw8JPbDD\nCMMDAB4EDgTWdPdfufurrbzXp9G2W2mr2GZfAkPcfUtgIPBbM1sp4TpJB3X44YcnXQWpYNXUPsaM\nUf7SUqqmtiEdR9IBWFyZYO09wtCBv7n7O0t4r8+A35ekVjF4mHmWmWiVmYRleU4XKUirskgh1dQ+\nll4abrsN+veHL7KWZjnxRBg4EDbfPLm6dUTV1Dak44g9+z5JZnYHcA1wv3fkD9KMmdUAjwN9gFPc\n/co852n2vYhIlrvvDo/zs62/PkyfDiuskEydRKpJRc++T5K7/9Td/5VkQGpmQ8xsopm9b2YNufKd\nmtnxZjbTzOZHOVG3znWvDHef4+5bAOsCw83s++Wqv4hINdl7b6ira7pP40tFOoYOHZRWiB7A84RE\n/C2+8szsQOBCYDTQH3gBeMDMVs065zgzey6a3LRMZr+7/y86f0h5P4KISPU47zzYZpum+9Jp+Mtf\nkqmPiLSOgtKY3P1+dz/T3e8m99jPOuBqd7/B3WcQlmSdB4zIuscV7t4/mtxUY2bLw3eP8YcCr5X9\ng0hVmjp1atJVkApWre0jX/7Sk06C559Ppk4dTbW2DalsCkrLyMyWAgYAD2f2RUMNHiKky8plbWCK\nmT1HGFd6ibu/XO66SnUaO3Zs0lWQClbN7WOddeC665ru+/ZbOOAA+PLLJGrUsVRz25DKpaC0vFYl\npKr6uNn+jwmrSbXg7tOiXtP+7r6Fu19TrJDdd9+dVCrV5DVo0CAmTJjQ5LxJkyaRSrUY8srxxx/P\n+PFNF9mqr68nlUoxe/bsJvtHjx7NmDFjmuybNWsWqVSKGTNmNNl/2WWXccoppzTZN2/ePFKpVIt/\nhafT6ZwpSA488EB9jhif45ZbbqmKz5FNn6N0n+M3v/lNVXyOfP896utHM3hw08/xxhuz2GijjvU5\nkvjvMXz48Kr4HNXy3yOpz5FOp0mlUvTr148+ffqQSqWoaz5ou4Q69Oz7SmNmDcA+7j4xer868D4w\nyN2fzjpvDDDU3fP1lra2PM2+FxEpYMECGDIEnnmm6f6774Ycf9NFpIjEZ9+b2edm9qmZbdhs/9Do\ntVy+azu52cBioGez/T2Bj9q/OiIinUu+8aUnnghz5yZTJxHJrbWP72uAFWlcNSnjMeARQuoiacbd\nFwLTgZ0y+8zMovdPJFUvEZHOZJ114LLLmu575x344x8TqY6I5NHaoDSzTGiuFaA69WpDZtbDzDY3\nsy2iXetF79eK3l8EHGlmh5hZX+AqoDtwXQLVlU6m+VgmkWydqX0MHw477NB03wUXwCuvJFKditeZ\n2oZUjtYuM/o5sDKwHvBi+arTIW0FPErIUeqEnKQA1wMj3P22KCfp2YTH9s8Du0Y5SEuirq6Ompoa\namtrqa2tLdVtpQr07t076SpIBetM7cMMrrgCNtsMFi0K+xYtguOPh0ceCcelUWdqG9I66XSadDrN\nnDlzylZGqyY6mdn9wC7ADOBk4HVgIfA2IRAbBrzR1sLdfVZbr5FGmugkItI2p50Wkutnu/FGOPjg\nZOoj0tGUc6JTa3tKLyMEnn2Be5odM2DSEpTtbSg/JzPrQeip3AhYC1geWA6YD3wNvAu8Cjzr7hrS\nLiLSyf3ud2F1p3feadz3q1/BHnvASislVy8RaWVQ6O73mtko4E+ESU/NteuDDzMbCpxCmDC0TJHT\nAb41s4eA8919SlkrJyIiFat7d7j0Uth778Z9n3wCZ5wBl1+eXL1EpA09le5+hZldS+iZXJMQDF5L\n6ErtHD8AACAASURBVPH8HSEfZ1mZ2dLA34DMwMnWBsPLAnsAe5jZzcBId19QhiqKVJQZM2bQt2/f\npKshFaqzto9UKrwmTmzcd+WVcNhhsPXWiVWronTWtiHJipU8P0oW70A/dy/7HEYz+yewOyEYXUxY\nrvNxwljXd4G5wLeEgLkH4ZF+X2B7YGdCSisH7nX3Dp82OTOmdOjQoZroJDmlUikmZv/lFcnSmdvH\nO+/ARhvB/PmN+wYMgKefhq7Nkx92Qp25bUhu2ROdJk+eDGUYUxo3KH2MEOQd5u7vFDk9FjP7GXBz\nVN49wHHu3ureWTP7AXAFsGd0j1p3v60cdW0vmugkxcyaNUuzaCWvzt4+zjsvTHzKNm5cmJHf2XX2\ntiH5Jb6iUz7uvoO7/7jcAWnksGj7KGEpzzYNF3D394B9CAn/DRhRysqJVCL9UZFCOnv7+OUvQ29p\nttNPh4+03l6nbxuSjFhBaT5m1s3Mvh+9Ys2wz7I5oYfzEl/C7l13bwAuzrqfiIh0UksvHXKXZpsz\nB04+OZn6iHR2JQtKzWwjM7vMzF4FviGs7f4R8I2ZvWpml5rZxjGKyKxc/EHMqmauX7HgWSIiUvV2\n2AF+/vOm+266KSTUF5H2VZKg1MzOJaz0dBywYXRfi15don3HAy+Y2TlLWMzH0XbTeLWlX7P7dXh1\ndXWkUinS6XTSVZEKM2bMmKSrIBVM7SM4/3xYsVk3xXHHwYJOnKNFbUOaS6fTpFIp6urqylZG7Efr\nZnYZIRjNpGd6FXia0EsK0AvYBtiYMPv9N2bWw91PamNRU4DhwOlmNtHdP1+Cuq4EnE4YBlA1+Uov\nvvhiTXSSnObNm5d0FaSCqX0EPXvCOeeEQDTjtdfgggvgt79Nrl5JUtuQ5jIZfrImOpVc3Nn32xGC\nOycEo0e5+xN5zh0EXEXoqXRgSL5zC1w/hRD8zgJ+Ddzl7otacW03YF/gPGAdoAEY7O5Ptbb8SqTZ\n9yIipbF4MWy7LTz7bOO+ZZeFV16BdddNrl4ilaYSlhnN5+hoOxPYzt3n5DvR3Z+MVmKaDqwLHAO0\nOiiNrv8jcCbQG7gF+NLM/r+9+w5zqzrzOP59sSnGgOmmek1JgA2EgDGOKaaYUBNBEtpAQjG9hR2y\nkE3YDTYQsoYQsoGEasA0UZbgOICpC5hePEAIYEI3mBIMxBRT7Xf/uFeMpBnVK+nc0fw+z6NH0tHR\nve9MTobX597zngeJ6pS+TrS16OfAIkRbjq5GVKd0NLAU3bO5p/T1hFRERBpnwAA477yoeH5urubT\nT+EnP4mK7FtL9y0U6Z+SJqVbEs16/ne5hDTH3eea2UTg/Pi7NXH38Wb2JtGM55D4sUP8KCf352Qu\n8DN3v6DWc4uISHsbMSK6hJ+/3eiNN0ZJaf62pCLSHEkXOq0UPz9ew3dyU71D6zmhu58PrAn8DHiQ\n6FK8lXksiPv9DFhTCan0J3PmzAkdgqSYxkdPp54a3WOa7yc/gY8/DhNPKBobEkLSpPTT+HlwDd/J\n9f2s3pO6+/vufoa7bw4sTnSf6k7AnsB+8fNOcfvi7r553L/mxVEifdm4cdojQkrT+Ohp6aXhzDML\n22bNglNOCRNPKBobEkLShU5dREXof+vux1f5nTOAnwKPu3tzlm/1E7mFTmPGjGHIkCFfrYwTyenq\n6tIiOClJ46N37jB2LNx1V3fbwIHwxBPwjW+Ei6uVNDakWDabJZvNMnfuXKZPnw5NWOiUNCk9FfgF\n0eKiXdz9zgr9twGmAQsDp7n7f9V9ctHqexGRJpk5E775Tfjii+62MWPg7ru16En6t2auvk96+f53\nwAdESeY0MzvHzDY2s6+Oa2YLxW3nALcQrYz/IP6uiIhI6qy7LhxfdP1v+nS4/PIw8Yj0B4mSUnef\nQ3T/5hdEK/mPAB4FPjaz2Wb2OvBx3HYEUfL6ObCHu7+b5NzlmNlAM/u2mf0wfow2s4WbdT4REWk/\nJ54Iw4cXtv37v8P7Wp0g0hSJtxl199uAbwOP0b3ifVFgZWCV+HWu/TFglLvfkfS8vTGzJc3sN8B7\nwP3AtfHjPuA9MzvLzLTnvfQbkyZNCh2CpJjGR3mLLw5nn13Y9s47/WOXJ40NCSFxUgrg7k+4+6bA\nKKJtPLPArfEjG7eNcvdN3f3Jes5hZi+b2YtmtnaJz1chKv3USVQ4v7g01GDgJ8D9ZrZyPTGI9DVd\nXQ293UfajMZHZd/9bs8apeefD488EiaeVtHYkBASLXRqJTNbQFSofwN3f6aXz+8FNo/fvke049Mz\n8Xf+FdgbWC5+f7e7j21F3M2khU4iIs03axastx7kbwe/8cZRYjpgQLi4REJI80KnVDCzXYkSUiea\nnV3T3Y929z+6+7nufgywFnA70azp1mb2nXARN1ZnZyeZTIZsNhs6FBGRtjNsGJx0UmFbVxece26Y\neERCyGazZDIZOjs7m3aOtpgpNbOriRZczQK+4e697r1hZoOBp4HVgcnu3qerA2umVESkNT7/HDba\nCJ7J+6/PUktFpaNW1g1h0o9oprSyTYkS1nNLJaQA8WfnEc2WjmpRbCIi0sctskjPmdEPPohW44tI\nY7RLUprbqfjBKvo+ED+v0qRYRFIjk8mEDkFSTOOjNmPGwH77FbZddRXcWXbbmL5JY0NCaJekdH78\n/M8q+s6NnxdvUiwiqXH00UeHDkFSTOOjdmecAUsXFRY89lhYsCBMPM2isSEhtEtS+mL8PKSKvkvE\nz9UksCJ92vbbbx86BEkxjY/arbgi/PrXhW1PPw3/+79h4mkWjQ0JoS8mpaea2cX5D2Cp+LP1q/j+\nWvHznOaEJyIi7ezQQ2GDDQrbJkyA+fN77y8i1emLSemuwP5Fj+HxZ9X8026L+Pm5hkcmIiJtb6GF\nepaIeuYZuO66MPGItIu+lJTOquKxnpktVeoAZrYY8AOilfrVLIoS6dOmTJkSOgRJMY2P+n3/+/DN\nbxa2tdNsqcaGhJAoKTWzRRoVSCXuPtzd16jwWNfdPyhzmK2Ap4DpQBuulxQppA0VpByNj/ottBCM\nH1/YNnMmXHttkHAaTmNDQkhUPN/M5gBXApe4+xMNi0qqkiueP2bMGIYMGUJHRwcdHR2hwxIR6RcW\nLIi2G33yye62ddeFv/1N249K+8lms2SzWebOncv06dOhCcXzkyaluV2WAJ4EJgFXufv7DYhNKtCO\nTiIiYU2ZEl3Kz3fFFbDvvmHiEWm2NO/odAPwJdEOSd8Cfg+8YWZZM1M9CRERaWu77hptP5rv5JPh\nyy/DxCPSlyVKSt39h0Q7I3USzZQasCjRPvTTzOxVM5tgZmskjlRERCRlzHreW/r3v8PVVwcJR6RP\nS7z63t3fdff/cfeNgBHAH4D3iRLU1YH/BJ43s/8zs33jFfAi0gIHHnhg6BAkxTQ+GuN734vuLc3X\n12dLNTYkhIaWhHL3x939GKLZ072AW4juOV2IaOX7ZcCbZnaumW3ayHOLSE/alUXK0fhojN5mS59/\nHq66Kkg4DaGxISEkWuhU1QnMVgEOICpy/7W4OXfSZ4gWR03W4qjaaaGTiEg6uMOmm8Jjj3W3rb02\nPPssDBwYLi6RRkvzQqeK3P0N4HfAROAtuhNSA74BnAm8bma/NbNq9q4XERFJld5mS194Aa68Mkg4\nIn1SU5NSM9sy3pv+LeBCYChRMvpP4ALggfj9IOBY4AkzW62ZMYmIiDTDzjvDyJGFbaec0rfvLRVp\npYYnpWa2mpmdaGbPA3cTXbZfIv74bmBfYBV3P9zdtwDWBS6NPx8GnNromET6q/vuuy90CJJiGh+N\n1dts6YsvwuWXBwknEY0NCaEhSamZLWpme5vZrcDLwMnAWkSzoG8Bvwa+5u5j3T3r7p/lvuvuf3f3\nccCEuP/YRsQkInD66aeHDkFSTOOj8XbaCUaNKmw75RT44osw8dRLY0NCSJSUmtmmZvZH4E2i7Ua3\nAwYAC4C/ALsCq7v7ie7+UoXD3RA/r5wkJhHpdrWKJUoZGh+N19ts6csv973ZUo0NCaFR24xa3PQi\ncDFwqbu/WeOx1gKeB9zdtWtwFXKr78eMGcOQIUPo6Oigo6MjdFgiIv2aO4weDQ8/3N22xhrw3HOw\n8MLh4hJJIpvNks1mmTt3LtOnT4cmrL5vRFL6GfAn4CJ3vyvBsRYDRgG4+z01fnc54EfAlsCawJJE\nM7bluLuvVUeoqaGSUCIi6XTrrbDjjoVtF14IBx8cJh6RRmlmSaik1dOOBa5oRI1Rd/8UqCkZBTCz\nPYhW8i+Va6r2lLWeS0REpBrbbx/Nlj74YHfbqafCfvvBIouEi0skzRLdU+ruZ4csem9mo4CriBJS\nI7q39SbgcmByhcdlAUIWaanjjz8+dAiSYhofzWMGEyYUtr36KkyeHCaeWmlsSAiJZkrN7CWiGccd\n3P2FKr8zjKg0VCMun/+M6DL9J8Ah7t6HN3UTabxhw4aFDkFSTOOjubbbDjbbDB54oLvt1FNh//3T\nP1uqsSEhJC0JNTx+1PJ/r4XzvpfUZkRJ8X8rIRXp6ZhjjgkdgqSYxkdz9TZbOmsWXHJJmHhqobEh\nITR9m9EmWzp+vjVoFCIiIr0YOxa22KKw7Ve/gs8/DxOPSJqFSEpz+9vPa8CxcmWntGhJRERSp7fZ\n0tdeg4svDhOPSJqFSEp/FD+/2oBj3RE/j2jAsUTazsyZM0OHICmm8dEa22wDW25Z2ParX8Fnn/Xe\nPw00NiSEmpJSM/u//EfeR5cUf9bL434ze5OojJQDtzUg/t8AnwL/bmZLNOB4Im3lhBNOCB2CpJjG\nR2v0Nlv6+uswaVKYeKqhsSEh1FQ8v5cdnOr1EjDa3d9JeBzMbDeislBPAePc/emkx+wrVDxfKpk1\na5ZW0UpJGh+ttfXWcE9eNe5VV4UXX4RFFw0WUkkaG1JKmornT6fw/s2t4vczgI/LfM+JZjTfBB4A\nrnb3cv2rYma5u3KeAUYCfzWzp4CZVL5n1d39oKQxiKSZ/qMi5Wh8tNb48dGl/JzZs+Gii+Coo4KF\nVJLGhoTQiG1GHdjA3Z9pWFS1n/+rJqpb9GRESWmlrUhTTTOlIiJ9yzbbwN13d79fZZVotnSxxYKF\nJFKTNM2UFruMKAkMtavTLLTyXkRE+ogJE2Crrbrfv/EGXHghqCyoSPJtRg9w9wPd/c3KvRvP3Ye7\n+xr1PkLELNJKEydODB2CpJjGR+uNGQPbblvY9utfw6efhomnFI0NCaGvF88XkTLmzWtEOWBpVxof\nYYwfX/j+zTfhgguChFKSxoaEkOieUglL95SKiPRN220Hd97Z/X6lleCll2DQoHAxiVSjmfeUVjVT\nambz48eXJdrreXxZ6nxSm87OTjKZDNlsNnQoIiJSheK6pW+9BeefHyYWkWpks1kymQydnZ1NO0dV\nM6XxKncoWrGe116PPr/6PTTNlIqI9F3bbw+33979XrOl0hekYfX9hBrbG8rM5scv3d0H9tJej4Jj\nibSjOXPmsPzyy4cOQ1JK4yOs8eMLk9K33oLzzoMmTkRVTWNDQugT95RqprZ3mimVSjKZDFOnTg0d\nhqSUxkd4O+wAt+Vtuj10aDRbuvji4WICjQ0pLQ0zpaEFnakV6avGFy/zFcmj8RHehAmFSenbb0ez\npccdFy4m0NiQMPrETKn0TjOlIiJ93047wS23dL8fPhxeeAEG9OlredKugq++FxERkeb45S8L37/y\nSuHsqUh/UdXlezMb04yTu/v0ZhxXRESkr/j2t2GjjeDxx7vbzjsvmkEV6U+qvaf0bhq/x7zXcH4R\nqcOkSZM46KCDQochKaXxkQ5mcPjhcNhh3W033givvQarrx4mJo0NCaGWy/fWhIeINFFXV0Nv95E2\no/GRHh0dsOSS3e8XLICLLgoXj8aGhFBt8fytmnFyd7+nGcftL7TQSUSkfRx5JJx7bvf7lVeGV1+F\nhRcOF5NIseAloZQ8ioiINNdhhxUmpW++GV3G//73w8Uk0kpafS8iIpICG24Io0cXtp13XphYREJQ\nUioiIpIShx9e+P622+DFF8PEItJqSkpF2lgmkwkdgqSYxkf67LEHLLNMYdsFF7Q+Do0NCaHaOqVf\nlfZ195N7a69H/rFEpPGOPvro0CFIiml8pM+gQXDAAXDWWd1tF18MJ58Miy7aujg0NiSEalffLyCu\nU+ruA3prr0f+saR2Wn0vItJ+nnsO1l23sO2qq6KyUSKhpWWb0VK1RVWnVEREpEHWWQe22aawTQue\npD+oKil194Vyj1Lt9Tya8yOJiIj0bcULnqZPh6efDhOLSKsoMRRpY1OmTAkdgqSYxkd67bYbrLhi\nYdv557fu/BobEoKSUpE2ls1mQ4cgKabxkV6LLALFW89fdhl8/HFrzq+xISEoKU0hMxtkZq+Y2emh\nY5G+7ZprrgkdgqSYxke6HXIIWN7qi7lzoVX/k2lsSAgNS0rNbICZ/cDM/mhm95rZ0/HjXjM718x+\naGZVlaASTgQeDB2EiIiEs8YasOOOhW1a8CTtrCFJqZllgJeB64DDgM2A9eLHZsChwLXAK2a2WyPO\n2a7MbG1gHWBa6FhERCSs4gVPjz4KM2aEiUWk2RInpWZ2LHADsCrdZZ5eAR6KH6/kugKrANeb2b8l\nPW8b+w3wc1QyS0Sk39t5Z1httcK2Vi54EmmlREmpmY0CziRKoD4EfgYMdfe13H2z+LEWMDT+bG7c\n94z4u32amW1pZlPNbLaZLYhnjIv7HGVmL5vZJ2b2kJmNLHO8DPCcu7+Qa2pW7NI/HHjggaFDkBTT\n+Ei/gQOje0vzXXVVdH9pM2lsSAhJZ0qPi48xF9jM3c9w9znFndx9jrufQXQpf278neMSnjsNBgNP\nAEfSy85WZrYXUdJ+ErAR8CRwq5ktn9fnSDN73My6gK2Avc3sJaIZ04PN7D+b/2NIu9p+++1DhyAp\npvHRNxx0EAzI2//w44/hyiube06NDQmhqm1GS37Z7A2iWdAT3f2/q/zOfwCnAW+7+8p1nzxl4i1X\nd3P3qXltDwEPu/ux8XsDXgN+7+5lV9ab2f7AN9z9hDJ9tM2oiEg/8IMfwA03dL/fYAN48snC1fki\nrZCWbUZ7s0z8fFcN38n1XTrhuVPNzBYGRgB35to8+hfAHcDoUHGJiEjfc8QRhe+fegoeVI0WaTNJ\nk9I3A323L1geGAC8XdT+NrBSpS+7++Rys6T5dt55ZzKZTMFj9OjRPXbkuO2228hketz2ylFHHcWk\nSZMK2rq6ushkMsyZU3g3xkknncTEiRML2mbNmkUmk2HmzJkF7WeffTbHH398Qdu8efPIZDLcd999\nBe3ZbLbXe5j22msv/Rz6OfRz6Ofo9z/HjBkTWWutgp+Evfbqez9Hu/zv0V9+jmw2SyaTYYMNNmDt\ntdcmk8nQ2dnZ47yNkvTy/QXAQcDPK12OzvvOz4BfAxe7+8F1nzxlii/fm9nKwGxgtLs/nNdvIjDG\n3RPPluryvVRy3333scUWW4QOQ1JK46NvOeMMOCFvqmLRRWH2bFhuucafS2NDSknz5fszgU+A/zCz\nr1fqHPf5GfAxcEbCc6fdHGA+0T23+YYCb7U+HOmPTj9dm4JJaRoffcsBB0Tbj+Z89hlMntycc2ls\nSAiJklJ3fw7YPX77kJn9m5ktW9zPzJaJ65k+EDftGX+3bbn7F8AMYGyuLV7oNJbu34NIU1199dWh\nQ5AU0/joW1ZYAXbfvbDtvPMgwQXPkjQ2JISqLt+b2f9V6LIq8DWiskhOtLvTP+LXQ4E16K65+QLR\nZW1397E9D9V3mNlgYG2in62LqMzVXcB77v6ame0JXAocDjwCdBIl8eu6+zsNOP/GwIwxY8YwZMgQ\nOjo66OjoSHpYERFJqXvvhTFjCtvuvBO23TZMPNJ/ZLNZstksc+fOZfr06dCEy/fVJqULiBLM3opP\n5A5QbWGK3HHc3QdU6pxmZrYVURJa/Euc7O7j4j5HAicQJedPAMe4+2MNOr/uKRUR6UfcYf314Zln\nutv22AOuvTZcTNK/NPOe0oFV9ptOL8Xh+zt3v4cKt0C4+x+BP7YmIhERaWdmcPjh8JOfdLfdcAO8\n9RasVLGui0i6VXVPqbtv7e7bNPrR7B9OpL8rLkUikk/jo2/68Y9h0KDu919+CRdf3NhzaGxICElX\n34tIig0bNix0CJJiGh9909JLQ/HygQsugPnzG3cOjQ0JIVGdUglLC51ERPqnRx+FTTctbLvpJth5\n5zDxSPtLzUInSSctdBIR6Z/cYZNNoCsvJfje92Dq1HAxSf+QhoVOVTOz4URbbA6iwop8d5/e6POL\niIi0u9yCp0MP7W676SaYNQt05V36qobcU2pm65jZZDN7H3gReBi4m6hcUqlHpdqnIpJQ8T7MIvk0\nPvq2jg5Ycsnu9wsWwEUXNebYGhsSQuKk1Mx2Iyoc/yNgCNHsaLUPEWmiE/I3yhYpovHRty2xRLQS\nP99FF8EXXyQ/tsaGhJAoKTWz1YEriC7VvwH8G5C7mOBEW2ruAUyMPwe4D9gO0P4TIk12zjnnhA5B\nUkzjo+877LDC92++CX/5S/LjamxICIkWOpnZGcBPgQ+B9dz9DTP7BvAURTs2mdkgYBKwF3C1u++b\nKHLR6nsREWHzzeGBB7rff+c7cNtt4eKR9pT61fdm9jjwTeB0d/953NZrUhp/thDRHvAbAXu6+/V1\nn1y0+l5ERLj8cthvv8K255+HtdcOE4+0t2auvk96T+nw+Dnv32jd25GaWcHqfndfAPye6H7ScQnP\nLSIi0u/tvjssu2xh2wUXhIlFJImkSeng+Pm1vLZ5ea+H9PKdp+PnDROeW0QqmDhxYugQJMU0PtrD\noEFwwAGFbRdfDJ99Vv8xNTYkhKRJ6dz4ebG8tnfzXq/Vy3dyieryCc8tIhXMmzevcifptzQ+2kd+\nvVKAd9+F6xPcIKexISEkTUqfi5/XzDW4+4fAq/Hb7Xv5znfi538mPLeIVDBhwoTQIUiKaXy0j3XW\ngW2Latqce279x9PYkBCSJqUPxs/fLmq/kei+0ePNbJtco5ntCRxLdN/p/QnPLSIiIrHDDy98f999\n8Le/hYlFpB5Jk9KbiZLPH5hZ/kr7M4juLV0CuMPM3jGzD4Es0aX+BXEfaYDOzk4ymQzZbDZ0KCIi\nEsiuu8LQoYVt558fJhZpP9lslkwmQ2dnZ9POkbQklAG/BAYCF7r7rLzPdgKuBJYu+tpnwBHufmnd\nJxZAJaGksjlz5rD88rp9W3qn8dF+TjwRTjut+/1SS8Ebb8DgwaW/0xuNDSkltSWhPDLB3f8rPyGN\nP5sGfA04AjgHOI+o0P7aSkhFWmPcOFVek9I0PtrPIYeA5W3i/cEHcM01tR9HY0NCGFi5S/3c/V1A\nFw9EAhk/fnzoECTFND7az/DhsNNOcPPN3W1//jPUmmNqbEgISe8pFZEU020dUo7GR3sq3m36zjtr\nr1mqsSEhNDwptchaZjYyfqwV33sqIiIiTbbDDoWX8D/+OFqJL5J2DUtKzWxHM5tKVFD/78BD8ePv\nwAdm9pd48ZOIiIg0yQorwCabFLZNmxYmFpFaJE5KzWxxM7seuAnYhagMlBU9BgM7Azea2Q1mVuM6\nQClHJaGklEmTJoUOQVJM46N97VQ0BZR/j2k1NDakWCtKQiVKSs1sIaJapbsRJZ9fEiWnJwGHx4+T\niIrpfxH3yQA365J+45x11llMnTqVjuIbiaTf6+pqaLUOaTMaH+2rOCl99ll49dXe+/ZGY0OKdXR0\nMHXqVM4666ymnSNpndIjgD8Q7dB0G3Cwu88u0XdV4EJgx7j/0e6eYBM0UZ1SERHpzfz5USH9d9/t\nbjv33J67PonUKrV1SoH94+dHgV1KJaQA8WffAx4hmjHdv1RfERERqd+AAbD99oVtuq9U0i5pUroe\n0aznWe6+oFJnd58P/DbvuyIiItIExZfw6ykNJdJKSZPS3LX/v9fwneeLvisiIiINtsMOhe9VGkrS\nLmlS+mL8vGIN38n1fbFsLxFJLJPJhA5BUkzjo72tuCKMHFnYVu0lfI0NCSFpUpoluj90vxq+sx/R\nLGkdu/GKSC2OPvro0CFIiml8tL/iS/jVJqUaGxJC0qT090AXsLeZnVCps5kdD3QAjwO/S3huEalg\n++KVDiJ5ND7aX3FS+swzMGtW5e9pbEgIA6vpZGbDynx8MHA+8Gsz6wAmE63G/wfRjOhQYCTwY+Bb\n8WeHAisBVfxfQ0REROoxciQst1xhaahp0+Cww8LFJFJKVXVKzWx+E87t7l5VUiy9y9UpHTNmDEOG\nDKGjo0MF9EVEpMA++0D+hn+77gpTpoSLR/qmbDZLNptl7ty5TJ8+HQLWKS3eNrRRD2kA7egkpUzR\nf3mkDI2P/qGe0lAaG1KsFTs6VTtTeWDTIhCRpslms+y2226hw5CU0vjoH4pLQ330UVQaauzY0t/R\n2JAQqkpK3X1yswMRkca75hoVuZDSND76hxVXhE02gcce626bNq18UqqxISEkXX0vIiIiKVdvaSiR\nVlJSKiIi0ubqLQ0l0koNXf1uZkOBrYH1gWXj5veAvwF3u/vbjTyfiIiIVLbpprDssvDee91tKg0l\nadOQmVIzW9nMskR1R68CfgEcHj9+EbfNMrOrzGzlRpxTRCo78ECtUZTSND76jwEDei54KncJX2ND\nQkiclJrZhsBfgT2BhSld/mlhYC/gSTPbIOl5RaQy7coi5Wh89C+9lYb6/PPe+2psSAiJklIzGwzc\nBCxHlHjeQZR4DgcWix/DiRLW2+I+ywM3mdniSc4tIpWpdq2Uo/HRv5QqDdUbjQ0JIelM6dHAKsAC\n4BB3397dr3P3We7+efyY5e7/6+47Em1J6sCqwFEJzy0iIiJVypWGyqdV+JImSZPSXYmSzEvdfVKl\nzu5+MXAJ0Yzp9xOeW0RERGqg0lCSZkmT0q/Hz1fX8J3cDrxfL9tLqtbZ2UkmkyGbv7mxCHBfEQew\nlAAAGB5JREFUqWtzImh89EfFSenTT8Nrr/Xsp7EhxbLZLJlMhs7Ozqadw9y9/i+bfUq0gGmku3dV\n+Z2NgceAz9x9UN0nl9zvcsaMGTPYeOONQ4cjKZTJZJg6dWroMCSlND76n/nzo8v4+aWhzj8fDj20\nsJ/GhpTS1dXFiBEjAEZUm/tVK+lM6Tvx83o1fGfd+HlOwnOLSAVXX13LRQzpbzQ++p8BA6B4Yf3N\nN/fsp7EhISRNSh8iuj/0ODOrWIg/7nMc0X2oDyU8t4hUsPjiKnIhpWl89E/VlIbS2JAQkiall8XP\n3yIq87RKqY7xZ38BcteZL014bhEREalRLaWhRFop0Taj7v4XM5sC7AZsB7xkZrcBDwP/IJoRHQqM\nAr4DLBJ/9QZ3vynJuUVERKR2Q4fCiBEwY0Z327RpsO224WISgcZsM9oBXEd0GX8RYBfgZOA84Pz4\n9S7AonGf64B9G3BeEang+OOPDx2CpJjGR/+1886F74tLQ2lsSAiJk1J3/8zd9wK+B0wDPqHnFqOf\nxJ991933cvfPkp5XRCobNmxY6BAkxTQ++q9KpaE0NiSERCWhej2g2QBgTWDZuOk94CV3n9/QE4lK\nQomISF2qLQ0lUiy1JaHMbFj8yCWguPt8d3/e3R+OH88rIRUREUmP3kpDaXcnCS3p5ftXgJeBvZOH\nIiIiIq1SfAn/jjt6loYSaaWkSekn8fOjSQMRkcabOXNm6BAkxTQ++rfeSkPdf3/0WmNDQkialM6O\nnwckDUREGu+EE04IHYKkmMZH/5YrDZUvdwlfY0NCSJqU3hY/b5E0EBFpvHPOOSd0CJJiGh9SfAk/\nl5RqbEgISZPS/yG6hP/vZrZqA+IRkQZSWRcpR+NDipPSv/0tKg2lsSEhJEpK3f15YB9gceAhM9vH\nzBap8DURERFJgVGjYJllCtu0Cl9CSbTNqJn9X/zyHWAN4HJgkpk9D7wPlCsF5e4+Nsn5RUREpH65\n0lDXXNPdNm2a6pVKGEkv328NbAUMj98b0Xai6wNbxp8XP7bKey0N0NnZSSaTIZvNhg5FUmbixImh\nQ5AU0/gQ6Lnl6B13wGmnaWxIoWw2SyaTobOzs2nnSDRTCkwHGrsllNTsrLPO0o5O0qt58+aFDkFS\nTONDoPfSUM89p7EhhTo6Oujo6Mjf0anhEiWl7r51g+IQkSaYMGFC6BAkxTQ+BLpLQ82Ykd+msSGt\nl/TyvYiIiPRxpUpDibSSklIREZF+rlRpKJFWqispNbNdzOxsM5tqZjeZ2YVmtq+ZLdzoAEWkfnPm\nzAkdgqSYxofk9CwNNYdbbgkVjfRXNSWlZjbUzB4EpgJHArsAOwLjgMuAmWa2QcOjFJG6jBs3LnQI\nkmIaH5KTKw3VbZwu4UvLVZ2UmtkAomR0FFHpp94eawC3mtnyjQ9VRGo1fvz40CFIiml8SL7CS/jj\nueMO+PzzUNFIf1TLTOmewEiiElAvAAcBGwDrAXsAD8X9hgI/bWCMIlInlQqTcjQ+JN+OO+a/25gP\nP4QHHggVjfRHtSalAK8Am7r7Je7+tLs/5+7XExXLv4doxnSPxoYpIiIizTR0KBT/O+Xmm8PEIv1T\nLUnpRkSzpGe6+z+LP3T3+cBJ8ds1zGzJBsQnIiIiLaLSUBJSLUnpCvHzY2X65H+m+0pFAps0aVLo\nECTFND6kWPeWo9HYUGkoaaVaktJB8fNHpTq4e/6+ZIvVFZGINExXV1foECTFND6kWHdpqO6xodJQ\n0irNLJ5vTTy2iFThD3/4Q+gQJMU0PqRYd2mo7rGhS/jSKtrRSURERL5SfF+pSkNJqwys4ztHmtk/\nGtHP3U+u4/wiIiLSJIWlofiqNNTWWwcJR/qRepLSIyp87lX2A1BSKiIikiK50lD5txxPm6akVJqv\n1sv3pXZyquchIk2WyWRChyAppvEhpXz4YeHY0H2l0gq1zJRu07QoRKQpjj766NAhSIppfEgpRxxx\nNMcd1/3+qafg9ddhtdXCxSTtz9y9ci9JJTPbGJgxY8YMbRcoIiIN8+WXsMIK8M+8rXIuvBAOPjhc\nTJIOXV1djBgxAmCEuze0rpxW34uIiEiBgQNzpaG66RK+NJuS0pQxs1fM7Akze9zM7gwdj4iI9E/F\npaFuv12loaS5lJSmzwJgtLtv5O5jQwcjfduUKVNChyAppvEhpUyZMqVkaSiRZlFSmj6G/neRBpk4\ncWLoECTFND6klIkTJ7LSSlFpqHy6hC/NpOQnfRyYbmYPm9k+oYORvm2FFVYIHYKkmMaHlJIbG8WX\n8JWUSjMpKU3AzLY0s6lmNtvMFphZj6J/ZnaUmb1sZp+Y2UNmNrLCYTd39xHArsAvzGz9pgQvIiJS\nQXFSmisNJdIMSkqTGQw8ARxJ905WXzGzvYAzgZOAjYAngVvNbPm8PkfGi5q6zGxRd38TwN3fAm4G\n+nytp2w2m/rj13OMWr5TTd9Kfcp93uzfcTNpfCQfHxob4Y6f9rFR6fNK3x01CpZeurDt7rsrhtQS\nGh/hx0ejKSlNwN1vcfdfuvuf6X2Xqk7gfHe/zN1nAocD84Bxecf4Y7yoaWNggJktARA/bws83fQf\npMn0h6P9/nA0ksaHktJSNDbC/+0YOBA23LCwLb92aUgaH+HHR6PVsqOT1MDMFgZGAKfl2tzdzewO\nYHSJrw0FbjAzBwYAF7j7jDKnWQzg2WefbUzQTTJ37ly6uhpaX7fhx6/nGLV8p5q+lfqU+7zUZ488\n8khTf/eNoPGRfHzU+1nax4fGRjr+dnz8ceFns2ZBGoaNxkeY8ZGXcyxWVZA10I5ODWJmC4Dd3H1q\n/H5lYDZReaeH8/pNBMa4e6nEtJZz7gNcmfQ4IiIiIjXa192vauQBNVPat90K7Au8AnwaNhQRERHp\nBxYDhhPlIA2lpLR55gDziS7J5xsKvNWIE7j7u0BD/5UiIiIiUkFTtlHQQqcmcfcvgBnAV7symZnF\n77UnhoiIiEgezZQmYGaDgbXpXnm/ppltCLzn7q8BvwUuNbMZwCNEq/EXBy4NEK6IiIhIammhUwJm\nthVwFz1rlE5293FxnyOBE4gu2z8BHOPuj7U0UBEREZGUU1IqIiIiIsHpnlIRERERCU5JaZszsyFm\n9mi8jelfzezg0DFJOpjZamZ2l5k9bWZPmNnuoWOSdDGzP5nZe2Z2behYJD3M7LtmNtPMnjOzg0LH\nI+mS5O+GLt+3uXjF/6Lu/qmZDSLatnSEu78fODQJzMxWAlZ097+a2VCiahFfc/dPAocmKWFmY4Al\ngf3dfc/Q8Uh4ZjYAeAbYCvgI6AJG6b8pkpPk74ZmStucR3KF9QfFz1aqv/Qf7v6Wu/81fv02UW3d\nZcNGJWni7tOJEg+RnE2Bv8V/Pz4CbgK2DxyTpEiSvxtKSvuB+BL+E8As4Ax3fy90TJIuZjYCWMjd\nZ4eORURSbRWiLbRzZgOrBopF2oyS0pQxsy3NbKqZzTazBWaW6aXPUWb2spl9YmYPmdnIcsd097nu\n/i1gDWBfM1uhWfFL8zRjbMTfWRaYDBzSjLilNZo1PqR9aIxIOWkYH0pK02cwUT3TI+lZ/xQz2ws4\nEzgJ2Ah4ErjVzJbP63OkmT0eL25aNNfu7u/E/bds7o8gTdLwsWFmiwA3AKe5+8Ot+CGkaZr2t0Pa\nRuIxArwBrJb3ftW4Tfq+RoyPRLTQKcXMbAGwm7tPzWt7CHjY3Y+N3xvwGvB7dz+9l2OsCMxz94/M\nbAhwH7C3uz/dkh9CmqIRYyPukwWedfeTWxC2tEijxkfcb2vgKHffo7lRSyvVO0byFjptDXwIPAps\npoVO7SXp35B6/25oprQPMbOFgRHAnbk2j/5VcQcwusTX/gW418weB+4B/kcJafupZ2yY2ebAHsBu\nebNj32hFvNJadf7twMxuB64BdjKzWWY2qtmxShjVjhF3nw/8FLibaOX9b5SQtr9a/oYk+bsxsDHh\nSossDwwA3i5qfxtYp7cvuPujRNPs0t7qGRv3o78B/UXN4wPA3b/TzKAkVaoeI+5+I3Bji+KSdKhl\nfNT9d0MzpSIiIiISnJLSvmUOMB8YWtQ+FHir9eFIimhsSDkaH1KJxoiU05LxoaS0D3H3L4h23Rmb\na4tvNB4LPBAqLglPY0PK0fiQSjRGpJxWjQ/dT5YyZjYYWJvuXZfWNLMNgffc/TXgt8ClZjYDeATo\nBBYHLg0QrrSQxoaUo/EhlWiMSDlpGB8qCZUyZrYVcBc9a4RNdvdxcZ8jgROIps2fAI5x98daGqi0\nnMaGlKPxIZVojEg5aRgfSkpFREREJDjdUyoiIiIiwSkpFREREZHglJSKiIiISHBKSkVEREQkOCWl\nIiIiIhKcklIRERERCU5JqYiIiIgEp6RURERERIJTUioiIiIiwSkpFREREZHglJSKiARgZtua2QIz\ne9PMFgsdTxJmtqqZfWZmn5rZ2k04/j3x7+q4Rh87Pn5T4xeR6igpFZG2ZmaLm9lhZnaTmb1uZp/E\nycc/zOwRM5tkZgeb2Wo1HPOSOElaYGbP1hGTAb8DHDjD3T/tpc8iZjbKzI42s8vMbKaZzY/POb/W\nc1YZ1zfM7Hwze8HM5sW/o+nx729Aqe+5+2zgYmAR4DcNjmkPYEvgbeDcRh47p5nxi0j1zN1DxyAi\n0hRmNhq4GlidKAHstVv8/Ja7r1LFMQcRJUiD4+86MNrdH6khrn2AK4B3gOHu/kkvfS4B9s9rysVv\ngLt7ySSxHmZ2CHA2UWJW/Lsy4BFgZ3d/r8T3hwHPAwOBUe7+WANiMuAZ4OvAz9y9aQljM+IXkdpo\nplRE2pKZfQ24BViNKMn6M7Af8G1gY2B74HjgVuDzGg79Q2CJ+PVH8fN+NYZ3YhzTeb0lpHk8fnwA\n3AO8VeN5qmJmOxPNQi4cn+MYYBSwE/CnOIaRwA1xotgzUPdZwPVECex/Nii0PYB1gE9o0ixpTpPi\nF5EaaKZURNqSmV1HlEA6cIC7X16m73LAnu5eMfExs1uB7YAZwMPAUcC7wMru/mUV398OuC2Oaz13\n/3uJfnsAg4BH3f3ZuO0uYCsaOFNqZgOBmcCawFxgI3d/pajPOcCRccwHuvtlJY71XWAqMB/4WvFx\n6ojtfqJ/RFzt7vsmOVaV52to/CJSG82UikjbMbOFgJ2JkqjHyiWkAO7+bpUJ6crA2PjtFcCV8etl\nge9WGd7B8XNXqYQ0juk6d78sl5A20feJElIHTiuRiB0PvJ/3upRbiBL0hYADkwRlZusAo+O3VyU5\nVg0aFr+I1E5JqYi0oxWIZhkBXmjgcX9M9HdzPtHs3UN5x694Cd/MFgW+R5QAXt/AuJLYLe/15N46\nxLcYXEt0aftfS61Qj2eK/xL32zthXHvGzx8TJYtlmdnqZnaumb0UL2abbWY3mNnW8ecnVVok1uD4\nRaRGSkpFpB3l3yO6XgOP+yOihPJOd/9H3HYlURKzs5ktU+H7o+hOlh9qYFxJbBE/P5f3M/XmnrzX\nm5fpl/u51jaztRLEtU383OXuZasNmNm2wNPAYcC/EC3WWgnIAHea2c9rOG+j4heRGikpFZG24+7v\nA68SJYsbmtnxpRboVMvMNgLWj99ekfdR7vXCQEeFw2yZC5HontSgzGww3ZUJZlbonv95uUQ/vwrB\nVnXGNZAogXfg0Qp91yBaxDYY+AL4PdEtFiOJLsE/A/wK2LHK0yeOX0Tqo6RURNrV2fGzAROBF83s\nd2a2p5kNr+N4ufJM84Abco3u/iLRgiej8iX8zeLnl9z9wzpiaLT82qyvV+j7Wt7r1cv0e4ooOQQY\nUU9QwEZ0zyg/XqHvb4kSUoDd3b3T3e929654QdZIokRzVJXnbkT8IlIHJaUi0q7OAibRXVZpOPAT\norqlL8U7KWXjFddlxYXj946Pc4O7zyvqkltINdLMvl7mULnyVOUuk7fSknmvPyrZK/Jx3uslSnWK\nL7XnapmuWWdc+clyyd9VvPDsu0S/0+vc/S+9xPMpcGi1J25Q/CJSByWlItKWPHIIUT3SW4hmvzzv\nMRTYC5ga7+xULgHZEVgxfn1lL59fQ/fs2o/LHGeF+Pn9Mn1aKX9700q1Wj/Lez2oZK/Ie0QzxyvV\nExTdvyco/7vaBsiVxrqiVCd3/yvwZA3nTxq/iNRBSamItDV3v9PddwGWIyoTdRLRCut/0p2gbgJM\nN7OhJQ6Tu3T/NnB7L+d4l6gIvxEthipl2fg5LUlp/vami1Tou2je63IF/6H75xtctldpy+a9Lve7\nWj/vdaV7dGvZoSlp/CJSByWlItIvuPtH7n6ru5/q7rsRzZSOozsBWRk4pfh7ZjaE7jJO17j7ghKn\nyF3CH2ZmpRbI5JLASjONrZJ/X2vJS/Kx/ASt0qX+3M/3RdlepeUny+V+V/nVDt6pcMxKn+dLGr+I\n1EFJqYj0S+7+hbtPBvaJmwz4QS9d96Z7lvDYuNZljwfRJfycUgueconRsiU+b7XZea9XK9krkr+4\n6bWSvSLLEiXx/6wnKAoTyBC/q6Txi0gdlJSKSL/m7rfRnWQtE285mi//HlGv4mHAD81sMXp6J/68\nUj3TlnD3j4h+dgPWrdA9//NKu0zlfr5ZdYaWn5SW+13lX9pfoWSv6j7PlzR+EanDwNABiIikwBt0\nzwR6rjFe/LRZ3HY1UT3MctYETiNa1f59IFv0+VNEe7mnqSj7fUT1VdcxsxXLFNDPvyXh/lIHM7MV\ngaWIfmdP1xnTU3mvy1UzyD/+CODGMn03qebEDYpfROqgpFRE+jUzGwT8a/z2A3d/L+/j/fNe/8bd\ny9bMjEtH/ZTo8u9+9ExK7wUOAZYws/VasK99NabQXfT/AOD04g7x72hPokTtGXcvt3XryLzXD9cT\nkLu/aWYvAWsUHa/Y3cACopneH1MiKTWzDYENqzx94vhFpD66fC8ibcfMBpvZQ2a2S7mdnOLPziGa\n2XR6zoTuGz+/Uikhha9qXE4hSpLG9rKa/96815tWOl4j5N33+lKJLjcALxHF/PN4h6Riv6H7knaP\npLVI7uf6FJhea7x57o1jKvl7cvfZwE1xv93NLFPcJ76N4gLyZsAraFT8IlIjzZSKSLvalKj002wz\nmwI8SLT16IfA0kS7Bo0DNoj7/xP4Ze7LZrYF0eV4B66v4bzXAwcR1c/8EXBm7gN3f9XM/hqfcyww\nudRB4oS2eGvMlfI+37/os3vdvVTiWTIhc/cvzewYot/VEOABMzuVaBekZYgKz/8gPsa9lKkHGhsb\n973V3T+r0LecPxPNVA8zszXL/GzHxedcHPhfMzuXKNH+gOj3fALR/bCPUt0/BBoVv4jUyNyr/cej\niEjfYGaLEs3+5ZK4UrOluT+Afwc63P2JvGNcSJRcOjDa3R/p5fu9nXsg0S5ESwN/dfdvFX1+FNEW\nqB8CQ+Mdh3o7zlbAXdWcM3ZAvK1m8XFyJaxecfeSGwSY2UFEs8aL0PP35USXsr9bdHtD8TH+hej3\nDrCHu/+phviLjzWAaBHWUOAkdz+1TN/tgD8Rla3qLfbxRJMw/wV84u691h9tZPwiUjtdvheRtuPu\nn7n7qsDmRMXybwZeJKqv+SUwl2gF+TVEJaE2KEpIFwV2J0poXq82IY3P/SXRrKMD68f3M+a7gqj4\n/BJAj8vNxYer8lGqdmrxMcrFPYlosdCFRL+rT4A5RLOjhwNblEtIY/sQJYVvUHlRWFnxrRCXxMfb\np0LfO4gK6Z8PvEK0+9RbRP877ODupxAtXoLof/tSGha/iNROM6UiIi1mZn8AjgBud/cdQsfTCPH9\nuc8CXwP+w93PaMAxVyeaxV6EKCl+MMGxbie6NH+vu/fY3KAZ8YtIbTRTKiLSeicDHwPbmVlLFjy1\nwN5E5ZvmAH9oxAHd/bX4WEZ06b0uZrYKMIZotvihEt0aHr+I1EZJqYhIi7n728BZ8dtfluvbh/yC\nKOn7pbvPa+Bxf0V0yX0HM+u11qiZlaz7Gq++vxRYOG7qcd9trFnxi0iVtPpeRCSM04n3VjezxUot\neOoLzGxl4Drgc6LySw3j7u+b2Y+I7nddvkS3i8xsMHAtMAN4j6jM1ybAkcDaRAnnRe7eoyB+M+MX\nkerpnlIREenTzOwuosvzvVVZyP1H7k/Aj1TmSSS9lJSKiEifZmbfItrWdVtgNaJ97o2oNNdDwGR3\nvyVchCJSDSWlIiIiIhKcFjqJiIiISHBKSkVEREQkOCWlIiIiIhKcklIRERERCU5JqYiIiIgEp6RU\nRERERIJTUioiIiIiwSkpFREREZHg/h9P3s2W9W8cQAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f586d2c6150>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = pyplot.figure(figsize=(7, 5))\n",
"ax = fig.add_subplot(111)\n",
"\n",
"ax.plot(list(imts.values())[0], curves[list(imts.items())[0][0]][0], color='b', linewidth=3)\n",
"ax.set_xscale('log')\n",
"ax.set_yscale('log')\n",
"ax.grid()\n",
"txt = ax.set_xlabel('SA(1.0) (g)', fontsize=20)\n",
"txt = ax.set_ylabel('Probability of exceedance \\n in 50 years', fontsize=20)\n",
"ax.set_title('Hazard Curve', fontsize=20)\n",
"pyplot.savefig('./hazard_curve.pdf')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 6. Plot map of the characteristic fault rupture and the target site\n",
" (1) In the function, get_map_projection, we create the map projection for ecah specific fault rupture\n",
" (2) In the function, get_mesh_boundary, we obtain the coordinate of the fault rupture\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def get_map_projection(src):\n",
" \"\"\"\n",
" Return map projection specific to source.\n",
" \"\"\"\n",
" # extract rupture enclosing polygon (considering a buffer of 10 km)\n",
" rup_poly = src.get_rupture_enclosing_polygon(10.)\n",
" min_lon = numpy.min(rup_poly.lons)-3.\n",
" max_lon = numpy.max(rup_poly.lons)+3.\n",
" min_lat = numpy.min(rup_poly.lats)-2.5\n",
" max_lat = numpy.max(rup_poly.lats)+2.5\n",
" \n",
" # create map projection\n",
" m = Basemap(projection='merc', llcrnrlat=min_lat, urcrnrlat=max_lat,\n",
" llcrnrlon=min_lon, urcrnrlon=max_lon, resolution='l', epsg=4269)\n",
"\n",
" return min_lon, max_lon, min_lat, max_lat, m"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def get_mesh_boundary(mesh):\n",
" \"\"\"\n",
" Return coordinates of mesh boundary\n",
" \"\"\"\n",
" boundary_lons = numpy.concatenate((mesh.lons[0, :], mesh.lons[1:, -1], mesh.lons[-1,:-1][::-1], mesh.lons[:-1, 0][::-1]))\n",
" boundary_lats = numpy.concatenate((mesh.lats[0, :], mesh.lats[1:, -1], mesh.lats[-1,:-1][::-1], mesh.lats[:-1, 0][::-1]))\n",
" \n",
" return boundary_lons, boundary_lats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### We make use of the two functions above to obtain the rupture boundary and the corresponding magnitude"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# loop over ruptures, extract rupture surface boundary and magnitude\n",
"min_lon, max_lon, min_lat, max_lat, m = get_map_projection(src)\n",
"\n",
"boundaries = []\n",
"mags = []\n",
"for rup in src.iter_ruptures():\n",
" surf = rup.surface\n",
" mesh = surf.get_mesh()\n",
" mag = rup.mag\n",
"\n",
" boundary_lons, boundary_lats = get_mesh_boundary(mesh)\n",
" xx, yy = m(boundary_lons, boundary_lats)\n",
"\n",
" boundaries.append([(x, y) for x, y in zip(xx, yy)])\n",
" mags.append(mag)\n",
"boundaries = numpy.array(boundaries)\n",
"mags = numpy.array(mags)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Plot rupture and the target site"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/export?bbox=6.86934907792,42.40655941,13.3862884593,49.0910408971&bboxSR=4269&imageSR=4269&size=2000,2051&dpi=96&format=png32&f=image\n"
]
},
{
"data": {
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.
View raw

(Sorry about that, but we can’t show files that are this big right now.)

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.
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.
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.
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.
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.
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.
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.
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.
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