{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "alpha-mind的data文件夹提供了对于因子数据进行中性化、标准化和去极值化的函数：\n",
    "* [neutralize.py](https://github.com/alpha-miner/alpha-mind/blob/master/alphamind/data/neutralize.py)：提供了风险中性化函数*neutralize*\n",
    "* [standardize.py](https://github.com/alpha-miner/alpha-mind/blob/master/alphamind/data/standardize.py): 提供了标准化函数*standardize*和与sklearn类似的算子*Standardizer*以及*GroupStandardizer*\n",
    "* [winsorize.py](https://github.com/alpha-miner/alpha-mind/blob/master/alphamind/data/winsorize.py)：提供了去极值化的函数*winsorize_normal*\n",
    "\n",
    "标准化和去极值化函数的特别之处在于，他们还可以按组别（对应的实际问题，比如按行业）进行数据处理。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 去极值化处理\n",
    "#### 全截面处理\n",
    "\n",
    "alpha-mind提供了*winsorize_normal*这一函数，假设数据服从正太分布，进行去极值化处理。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xe5f7048>]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmYJPld3vn5ReR9Z1ZWVZ/Vx3T3zLQ0Gh2D0IGxHtkY\nBLsSYLwGLwaz+6DVLj52vesH/Nhr8Pp6fGD7sQ3Geuy1DX6M0APCCK8M2Fzi0DEzYjSjuXt6erqq\nq+vMyjMiMq7f/hERWVlVeVdmdlcR7/PMM12RURGRlZFvvL/v8X6FlJIQIUKECHG6oDzoCwgRIkSI\nENNHSO4hQoQIcQoRknuIECFCnEKE5B4iRIgQpxAhuYcIESLEKURI7iFChAhxChGSe4gQIUKcQoTk\nHiJEiBCnEEPJXQjx/wohtoQQX+vzuhBC/DMhxC0hxPNCiHdP/zJDhAgRIsQ4iIywz78D/gXw031e\n/whw3f/v64F/6f9/IMrlsrx8+fJIFxkiRIgQITw8++yzO1LKxWH7DSV3KeXnhRCXB+zyMeCnpedj\n8EUhREEIcVZKeX/QcS9fvswzzzwz7PQhQoQIEaILQoi3RtlvGjH388Bq189r/rYQIUKECPGAMNeE\nqhDi40KIZ4QQz2xvb8/z1CFChAjxhwrTIPd7wMWuny/4245ASvlJKeVTUsqnFheHhoxChAgRIsSE\nmAa5fxb4Pr9q5n1AbVi8PUSIECFCzBZDE6pCiJ8FPgSUhRBrwI8CUQAp5U8BnwO+FbgFaMAPzOpi\nQ4QIESLEaBilWuZ7hrwugR+a2hWFCBEiRIhjI+xQDREiRIhTiJDcQ3TQbNv84h+sPejLCBEixBQQ\nknuIDn7laxv8Hz/3Ve7stB70pYQIEeKYCMk9RAdNwwJgTzMf8JWECBHiuAjJPUQHmuUAUNOtB3wl\nIUKEOC5Ccg/RgWGG5B4ixGlBSO4hOtBD5R4ixKlBSO4hOtAC5a6F5B4ixElHSO4hOjgtyr3ZtqmG\nSeEQf8gRknuIDvRTEnP/m599kY//zLMP+jJChHigCMk9RAeBcq+ecHLfqBtsN9oP+jJChHigCMk9\nRAenRblrpkPbf1CFCPGHFSG5h+ggUO71U0Duhu0+6MsIEeKBIiT3EB2cFuWum3ao3EP8oUdI7iE6\n0E4JuYfKPUSIkNxDdMHw1a5mOpgnmBx108FxJbZzct9DiBDHRUjuITrQLYd4xLslTqp6l1LSMm0A\n2if4AXXaYVgOH/h7v85vvrr1oC/l1CIk9xCAR4q65XAmnwBOLrm3bRdXev82wrj7Q4vdlsl6zeCl\n9fqDvpRTi5DcQwAeKUoJZ3Inm9yDpDCEyv1hRvDg3WuFncSzQkjuIYD9ZGqg3E9qOaRmheR+EtAh\n99DHaGYIyf0hw+/f2uFjP/F7tO35hhSCGveTHpbR/Xg7hGGZhxnBZxN6AM0OIbk/ZHj6zh5fXa2y\nUTPmet6AFM+e8LCMFoZlTgQMy/tsTrrVxcOMkNwfMlRanifKTnO+3ii66X3ZAuVePaHL5QPkHir3\nhxb7YZlQuc8KIbk/ZNjxE0zbjfne9EFYJpuIko6pJ1a5dydUw0amhxcdk7oTKiJOAkJyf8hQaXqk\nPm/lrvlhmURUJZ+MnlhyD5X7yUAnLKOZuEHtaoipIiT3hwyV1oMh92CZnIyq5E40ue8nVMOY+8OL\n4H5zJTQMe8jeISZBSO4PGXYfELkHijcV85T7SS2F1LvUelgt8/Ci+7MJ4+6zQUjuDxFcV3Zu9N3m\ng4m5J2MqhdRJVu5htcxJQEjus0dI7g8RarqF48cf518ts0/u+WSUqn4yv3AhuZ8MdK+wwnLI2SAk\n94cIQUhGVQQ781bu5n7M/SQnVHXTRlUEEIZlHmYECVUIG5lmhZDcHyIEydQr5TQ7c54BqlsOEUUQ\nVRXyySiG5c69S3Ya0EyHfDKKEKFyf5hhWA5R1XsI77VOppB42HHiyH21ovHvf//OgXrmaePF9Ro/\n/muvIuV8S7SCBqZHl7M02vZcladmOiRjKgD5ZBQ4mV2quumQjKrEI8pMSyH/6mee56d++42ZHf+0\nQ7ccFjNxhAiV+6wwErkLIb5FCPGqEOKWEOJHeryeF0L8shDiq0KIF4UQPzD9S/Xw4nqNH/3si7y+\n1ZjVKfjMV+7xz3/j1oGl4zwQhGJuLGf9n+en3g3LI0WAfCoGnEzzMM10SMVU4hF1psr9t17d5stv\nVmZ2/NOOtuV28jsPwjzs9nbz1IfthpK7EEIFfgL4CHAT+B4hxM1Du/0Q8JKU8kngQ8CPCyFiU75W\nAK4tecT3+mZzFocH4G5FA6BhzPemC8IyN5YzwHwrZnTLI0XYV+4nsXtQswJyV2YaVqrpFs12WJ89\nKQzLWykWU7G5V8u0bYdv/We/w3/44ltzPe+8MYpyfy9wS0p5W0ppAp8CPnZoHwlkhRACyAAVYCZ3\n/uWFFDFV4bUZKvdVn9zrc26uqLRMsolIx99lnspdMx0S0dMQlrFJxlQSUXVmKy/TdtFMh1ZI7hND\ntxwSEa/sdt4iomHYGJbb+Z6fVoxC7ueB1a6f1/xt3fgXwOPAOvAC8JeklDP5ZkVUhauL6Zkpdykl\na3s6MH/lvtsyKWfilDNx4AGEZU5BzL3VdkjFIjNV7sHfJST3ydGt3Odddht0xG7Pudx43phWQvWb\ngeeAc8A7gX8hhMgd3kkI8XEhxDNCiGe2t7cnPtm1pczMYu5VbX+5Pe9ld6XVppSOsZgNyH1+N30Q\nq4aTTe66TxrxqEJ7Rsq95pNRs326Y7azhGG5xCMqhWR07tUyTZ/cd+ZszjdvjELu94CLXT9f8Ld1\n4weAz0gPt4A3gccOH0hK+Ukp5VNSyqcWFxcnvWZuLGdZregHfESmhbtdS7V5e17sNk1K6RiJqEom\nHmF7juWQQZUJQC4RAU4muWumTSqqkoioGDNW7rO4//6wwLAcElGFQio292qZYEX+oJT7z3zhDs++\ntTfz84xC7k8D14UQV/wk6XcDnz20z13gjwEIIZaBR4Hb07zQblxf8hKOb2y1pn7s1b1ucp9/WGYh\n7eWhy5nYXMMynuL1SD2iKmTjkRNK7g7peGSmyj2IEWumEzoaToigOquYitIyHcw59iQ0/BX5PMVT\nACklP/bLL/Ebr2zO/FxDyV1KaQN/HvhV4GXg01LKF4UQnxBCfMLf7W8BHxBCvAD8OvDDUsqdWV30\ndb9U8LXN6YdmVit659/zVO5SSvZannIHWMjE51stYzoko/u3Qy4ZpXYCq2V0v15/lqWQ3Q+9Vqje\nJ4JueQn8gn+/z1O9B2GZZtueab9ML+iWg+NKsonozM8VGWUnKeXngM8d2vZTXf9eB/7EdC+tPy4v\npIiqYiYVM6t7Wqf9fp7VMnXdxnYlC34ytZyJcXt7+iuTfvBKIfdvh5NoQWDaLrYrvbBMVJlZHXN3\ndUer7czli3raYFguiahCMeX97fY0iyV/xOOs0b0i32m2uVhKzeW83rk9TskmRqLeY+HEdaiCXzFT\nznBrBhUzqxWNywspMvFI5wk/D+z43an7YZn4fMMyXaWQcDLJvdv8bJbKvdvoKqx1Hx9SSgw7CMs8\nAOXe9ZnNO+4eNAbOQxCcSHIHuL6cmY1yr2hcKKXIJiJzjbkHDUylLnLf0ywsZ/axSNtxMR23k1CF\nk0numuV9aWddCtnduRsmVcdH23aREuK+SR0w1y7V7nDrvOPuQTQgFyr3/ri+lGVtb7oVM44ruVfV\nuVgMyH1+X9wgvt4hd78cMiD9WSKwXw1KIYET6enePXBklk1M3SozVO7jI0h0J6IqxQcQc2+0bXzj\n0LmTeyAYQ+U+ADeWM0g53YqZzbqB5UgulpJkE1Ea7fkr96CBaTHj3fTzuPkCck/ETrZyPxiWmW0T\nU2Ar3Apr3cdGUKIaVMvAfJV707A5m08C85+b0AiV+3DMomImqHFfKXkx93kq98ARspj2bvaA5Hfn\noNwN01NSqa6wTC4ZpW27J8pcqVu5e+TujuTsaTsuP/vlu9gjhsCqusUZP/kXdqmOj+AhnIgqJKMq\nsYgyX+VuWJTSMYqp6AMIy3gPsVwyVO59ccmvmHl9a3pJ1cBrIgjLzDWh2jTJxiPEIx7BBlUz8/B1\nD2LVyUPKHU5WI1MQokvFVOJRFSnBHIGwv/xmhb/6mRf40ogujzXd4lzBI/cwLDM+upW7EIJiKjpX\n87Bm2yYTj7CYnW/RAoTVMiMh6lfMvD5F5b66pyMEnCt4YZl5lkJWWialzL6RZtn/9zxuvu4pTAFO\nIrnvvw8voQqjDewICHrUv3VNszhf8Jb1oXIfH0ZXzB3wnSHnm1DNJjxyfxAxd1URB75rs8KJJXeY\nfsXMWkXjbC5BLKKQewDVMkEyFSAT9whqruR+4pV7V1jG//KMElYKcg6jJK+llNR0izN+zLY15yaY\n04Dgfov7TXOF1Hwb5hqGTSYRoZyJP4BSSJtcIoJnoDtbnExyr68D06+YuVvROg0NmXiEtu3OrS3a\nsx6Id34WQvi17vOrlulWEwU/0XWSulS1rqqfRKDcR6iYCchmFHJvmQ62KymmoqRiaqjcJ0B3WAag\nkJyvp3uzbZONR1jMxNlpmHOduNYwLM7G2+DOXhScPHL/6s/BP34cdt+YesXM6p5P7s/9R77/me9A\nwZ1bTHW32fYamF75/+DHHwezRXlOMcGA3Bd2vgz/8BpolROp3HX/IZ//vb/NB7/yl4HRwjLR6m2e\ni/8gsjLcDin4e3zbS/8XfyXycyG5TwDDdEjQ5u0/9z547dcopuc3jUlKid5u87+/9Kd5n/ab6JYz\n19VXw7D5jP4/w3/9GzM/18kj90sf8P7/0i9x3Z9YNA37X8Ny2Ky3uVhMwaufI6evkkWbS2hGSsme\n5sfc3/p9aKzD9qssZmJzUe5BOCNdfRVa27D10v40phNE7sH7iG29QKH6IjBaWCZZv0VBtMjsvTp0\n36CqY7H6PDfFnTChOgEM22FJVIm2NmD1ix1nyGEK+rn/9rN86ef+/rHOrVsOGbdJsb3GFe0FYD5F\nCwE0vUWCNiQLMz/XySP3wkU4/x546Ze4tJD2PGamYENwr+oZhl0sJWHtWe9UojmXcsi6YWM50lPu\nlTe9jTuvs5Cej3IPCDBu+3/Hyu1Ok8XJUu4OsYiCaNeJ+u9lFOUujDoAij7c666mWwhcYmaFnNBC\n5T4BDMsli+++Wl2lmIpiu3Log1J9+pNcefmnBu4zDE3DJi+8lX7B3ADmbEGg17z/J4szP9XJI3eA\nmx+D+88Rra9OrWImqHF/JF73lDNQoNmpS50lgljvQiYGewG5v0Y5G6PSMmduKxso3qjt/x0rt1EV\nQTYROVFDsjsDR4waEasByJEamZS2R+7R9u7QfWuaRYEmQnoEFSZUx4duOuREQO53KXT8ZQbfawVz\ngwW5h21NvpqtGzYFvAd/Wve+5/OsmBFG1ftHIlTuvfH4R73/v/xZri1nplLrvuaT+yXjlc62vGjN\nRbkHDUylVLdyf41yJo7jypknm4KEYsTcJ3c4eRYEmul4jVjtOkK6pDFGSqgqlve+k+bwAQo13WJB\neA+DtGyFyn0CGLZDjn1yD8zDBt3nruOw7G6hCkll6/CsoNHRbO8r91hzDZBzrXVX2z65h2GZPihd\ngbNPwku/xI2lLKt72rF9mVf3dGIRhXzl+c62Aq25NDIFcfVlsQe27ye/83rXLNUZk7s/FUe0/SWj\nT+4nzYJA84djY3jvI4c2knKPmh5ZZ+w9nCGrpKpuUfbJPeWG5D4JDMsl5xMsjfuU4t7ffJBy39m4\nS0x4f+vq5lsTn7thWOTwzq1YLUqiOTfl7rqSmO3dO2FYZhAe/yisPc0T2YZXMbN9PPW+WtG4WEwi\n7j0DeW+qYF4055JQ7fjKWN4ykeUnoPIG5ZRXKrY7Y2XRGbHnx57ZvQ1SnkByd8hHXXC8v2dWaKNV\ny/jx+QXqQ9vga7rFkuL9neLSQDdO95DlWcCwHIqq4f8kWXC9ecqDlPvu2mudfze3Vyc+d3fMHeBm\nqjY35d40bfLS56kwLDMAN78dgCfqvw0c32PmbkVjpRiH9efgkQ8DXsx9PmEZ76bO6/5Ne+ObwTE5\nhzeKa9YJn86gDl/xYrWguUU+GZ37fMvjQDcdypH9SVo5WiNVy8T8sMyCqA2tda9qFhdi++Sg+Ko/\nxOgwLIeSsv85FS3vPh+k3Fub+2Wq1t7axOdutG3y7H9+jyaqc1Puje4HS6jcB6B8DZbexsLqr06l\nYma1ovHu5DaYDVh5P8SyLKitzrzFWWK3aZKJR4jW3gKhwrU/BsCCfheYQ1jG9MIytOsQz3sbK7d9\n5X5ywg6aZbMQMTo/Z4U+knKPO75yF/Wh5F7XLc5G9oVE1G4ODeWEOAjddCio++Se8RObg5S7tXsH\nAFsquPX7E587IFgpPOq7Gt2ZG7nXdWuf3BP5mZ/v5JI7wM2Podz9Iu8ptbl1jFr3YKTeE+KWt+HC\nU5AsUlb1uYRldlttz3pg702v1HPpcQBS9dtEFDHzZaM3HNuPVZ970ttYuU0uGaWuW3Pt4DsONNOh\npB5U7qMkVJOuR+5Fmuw1tIH7VnWTZWX/XsvRCgd2jAnDdskLDTLLIBTU2irZRGSgcldrd9mmyI4o\nEWltTHzupuEr98wZiGVZUXbm0ksC/oOFFnY0C0roLTMYNz8GSL49+QfHUu6BG+RV8xVPuZYegWSB\nBWVe1TK+r0zlTShe8ZZs6SWU3ddYyMRm3mShmTapaMSLuS8/4a0eKrcpJGOYjjuzoRfThm465LuW\n+1mhj9bE5PoJNiFpVrcG7lvTLcrKfigmK/TQ031MGJZDTuiQWoDsOait+uZh/Uk2rd1jN3qWWqRM\n0tic+NwNw6KkaohkAQorLLvbbDfacxEwDcNT7s4c4u1w0sl96TEo3+CD7d87VsVMQO6LtRfh/LtB\nUSBZnFsT027T9BuYbkPpqrexfKNTMTN75e6SjTrgtCFVgsJKJywDJ6eRSTMdTxH6KIyYUE27TZqq\nt0xu1wYTR1WzKMqaR0x4yj3sUh0PhuV4FSuJvLdSrd71bX/732dFa4Nm8hyt+BJZa3izWT802zZF\nRfMSmoUVFuwNTMediwNs3bC8VUNI7iPi5se4UPsKRVmfuGJmdU8jQZtE5WWv+xUgWSTH/KplLiTb\nYFS9Mk+A8vVOrfusB3YYZleCK5H3HjBd5F7VT0ZSVTcdst3krurDSyGlJI1GJe5VSDn14co951a9\n1R2EXaoTwLAc0mgQz3lCorpKIRWj1ke525bJkruNlb2ImVpmwRnebNYPjbZNQbS8OvPCCjnjPiDn\nEndvGDYF0fRWDXPAqSB3gcufUJ+ZuGJmtaLz3sQqQjpevB0gWSAjZ6/cpZRUWiZXFK8cjGJA7jdA\nr3Apoc8+LGPZFNXD5P4meX+gwElwhgyGfGelT+7RFAVFHx5Ssg1i2OwlVwBwW9t9d3Vc6dnF2nuw\ncA3waulbYcx9LBiWS0a2IOGTe/0epaToq9y3198kIlzU0iXIniUjdJr14Q1nvdAwbH/VUIDCRaJ2\nkxytuZF7nhZqujTzc8FpIPfltyNLV/k29csTd6qu7ml8Y8pvjOhS7mm3QWPGIYlG28Z0XC7iVwB0\nh2WA6+o6O83Z2pLqprsfqw7IvV2jpHh/z5MQlgnsfjNS83IG2bPkxfAmJumXfzbSlwBQtf5L/rpu\nEcck7rQ6K6ys0MKY+5jQLYeU64dl8hdBOlyK1PrG3CtrXqFDaukqkcJ5AHbvT9bI1DQsMrLZUe4A\nF8TOXGrd67pFQbRQU7Mvg4TTQO5CIG5+jA8oX2N9fbL617sVjXcqb0B+BTJL3sZkkYi0cczpDeDu\nhUrQnWr75F687P2/fB2AS/LezGOCummTFz65x3OdB8xC2/t7DiL3L/+z7+Urv/LvZnZtoyLIt6Rk\n01OEiTw5MVy5m01PARrp89ioA/1lqrpFCX91mFnGiWU95R6GZcaCYdpeEjsIywDnlW0aht1zjm1r\ny6txL56/RnLBC581tiYjd90wSEq9E3MHuCC256LcO6WQc6hxh9NA7gCPfxQVl7MbvzX2r7quZG1P\n55r5qpdMDeB/ANF2daZ1zEE8fcG855dnecNCyF+ESIKzVlDrPpubT0qJbjn77eCBcgeyfp19P3Lf\n2VjlvZVfZuWLP4rWrM3k+kZFYH7WIY1EziuFHKLcjabn9SHjebRIgaTZf46q5yvjv8/0IsRzZNHC\nhOq4sHRUHD+h6hHsWb9LtZfFtFO5gyMFi+cfIbfs7a/vTtjIFDTqJQtQ8FZrXjnk7Mm9rTeIYocJ\n1bFw7l3U42d5r/47Y1fMbDfbZO09Cub9/Xg7dMi9IJoz/fIGTTM5fXU/mQpexc7CdRZ0T6HMKu7e\ntl1cCZnAyCmRg+IlQJCsv4UQ9HWGXHvhdwAoU+Wrn/lHM7m+URHUmiechkcaiTwZhlfLWC1PuSvJ\nAnqsRMbe6xsCq2pmx1eG9KK/OgiV+7jouI8mcpC/AMCCE3SpHg3NROqrbIsFYvEE5bOXAbBrk5mH\nqYF/UqLgfcejaa7FKnNR7q7m5wnChOoYEIKdlW/hG5QXePPe+li/ulrReFJ5w/vh/FFy95whZxdz\nDnxjEo27+/H2AOXrZJreknRWFTNGJ1bdpdwjcchfROy9SS4R7TuwQ7/zJWyp8LX4O7l5+99Q25u8\nRO24CB7qMduP5cZzpOVw+wFb85S7kspjxRdYoNa3K7mmW5Q7yr2Mksh7tr8huY+FuBWQu3+vZc9S\n9L3VezUypbV1KrGzACTTWeqkURrjd6m6riRqdRl3CQGFFS6pu/PxdA/sfsOwzHiIvv3biQmH5ou/\nNtbvefH2W0ihek6TAQLlzmyV+27LJEEbtbWxXykToHyDaH2VOObMlo3BiL20bIFQIOZNt6J0pcuC\noDe5Z3ee407kCslv+3vkafHSz//tmVzjKOhMYbLrHeWelq2hyj0gdzVZwEktskCdvT4P0ppusYBP\nDpklRDJPXtFDT/cxYDkuqUBIBFYX+YtkjMCC4Oi9VrLu00qe6/xcURaIaeM3MrVMu+MI2VHPhRXO\nsT2XsIw6Ry93OEXkXrzyDgDc6t2xfm+1ovNO8QZy6eZ+vBsOhGVmWQ5ZaZnciPmKt3SY3K8jkFxR\nNmYWlunEqp2mF6sOprL7te79PN1dx+GS8Sq7hSd45B0f4Nnsh3ly7T+yszG5Y99xELyPiOW/j0Se\nuGxjm4NXPK4/GSeaLiAyiyyIet9VUk3zvNxlNAWxNMRz5MOwzFjwulODEKBP7oUVEk0vzHK4YsZs\nGyzKXezcxc62emyRtNm/ZLUfmt2mYQHBFi6y6GzOJSzTCQmFYZnxkM4UMGQU2RzvQ1+rNHmnehvl\nwnsOvuB/+AVmG5aptEzelvArNI6Qu1cO+WRii+0Z+V8E4Yy469cdByhdBb3C2bjRk9xXX3uOrNAR\nfp5i6aM/RgyLW5/5f2ZyncOgWx7BRsx95Q6gWoN7H6RRx5YKsWSWSHaJlGhTrVZ77lvVLZbVOiJd\n9jb4YZkwoTo6DozYC+63wkXU5j0U3CMx9+17b6AKiVq6vH+MxDIFe/wQYMOw9wsHupR7ym3SblZn\nPvHsQEhoDjg15C4UhaooEBlhDmY3rO1b3lKtO94OEE3iqvGZT2PabZlci/rXfDgs4zfK3Ixuzjws\nk7AbB53q/Pj/VXW7J7lvvvJ7ACw//kEALl5/kq+UvpV3b36G+28NHzQ9bWimg8BFmH4pZNwjjtgQ\ncseo0iBFMhYhUVgGQN/rbUxV0y3PNCy96G1I5MjQojWHLubTgn7KXbg255TqkbDM3j2vxj29tJ+P\ncjJnJhq3FzQReefeJ3eAM3J7psPgLccl5dQPnnvGODXkDlCPFIm1+5ey9UJpz5+8dP6QchcCmSiQ\npznTGvPdZpsryqZ3o6cOda7FUpBf4ZqyPrOBHfuJyOZ+DBQ65H6J+z2rZeTaM9RJcfH6fp5i5Tv/\nJgCrv/hjM7nWQdBNhyw6AnlAucecwY1tot2gLlOkYiqp0hkAjD7+MlXNNw3rkHseFRfbGOwkGWIf\nhuXsK/d4oNw9gn00WT2i3DW/xr104Vpnm5I7N9G4vYZhURBNnEgSIrED5551rXswJMQVKsSzMztP\nN0YidyHEtwghXhVC3BJC/EiffT4khHhOCPGiEOK3p3uZo0GLlkhbo5O7abtcar+CqaRg8dEjrwvf\nPGyWo/YqLZPz7sbRSpkA5eusuPdmZksaKPeo1TgYlvGbqc6796lqR21/y9UXeCv+GIq6b1165uI1\nvrL8J3nP3n/h7mvPzeR6+0EzD5GG/14S9mDlrrbrvnJXiec85e40evvL1HWLoqxDEJbxyUmYvcM4\nIY7CG7Gn4SpRiCa9jXmPYK/FKuy1DgoJp/IWtlRYPLe/qo2XvPLJccftBTF3t1vE5PfJfZZJ1brh\nDVa3ol15rRljKLkLIVTgJ4CPADeB7xFC3Dy0TwH4SeCjUsq3AX9qBtc6FGa8RM4Z3XNivarzpLhF\ntfi2nv7KIlWkOMNSSCkluy2TJfv+0ZBMgPINlq277Db13q8fE4FyV61DYZlYCrLnWLLXsV3ZSVgC\naK06l+w7NBffeeR4N/7k36BNjO3P/uhMrrcfWqbNQjC6rUu5J5zBHcaKVachUySiKiLjKfJ+eZuq\n1ibvVg+EZcBT/yFGg+4rdyea3Se5gpcsvazuHjGpizZW2VIWiURjnW2ZRW//ccftdUbsdYdF0mXc\nSILzYrZDO4IhIXZs9kM6Aoyi3N8L3JJS3pZSmsCngI8d2ufPAJ+RUt4FkFIOttabEZzUIkVZw+3R\nwtwLazt73BRvYZ95d8/XRbJEaYae7i3TwbVN8ubG0WRqgPJ1Yq5BztyZyVCIQLmrZn1/mRygdJVS\nDwuCO8//HhHhkrzy9UeOV1q+wPMXv5f3NH+LW1/93alfbz/opsNCNCD3/Zh7UjYHJsqiVoM6XliG\nlKfI1T55G0evEcE+EJYB/28XYiQEMXcn1nWvRZOQXuSC2D5S557R19mLnjmwrbDsdZaOO24vINgD\nroxCIPN1NaqaAAAgAElEQVQrc1HueVq4c4q3w2jkfh7ofkSu+du6cQMoCiF+SwjxrBDi+3odSAjx\ncSHEM0KIZ7a3xy9lGgaRWSQqHBrV0Y7dfOsPiAmHRA+SAiBZnOmQ7N1mm3NiF0XaA8IyXsXMI8o6\nO43ph2Y6icj2IeUOsHCVnOZ99N3kXrv1RQBWnvgjPY9587v+GlUy1P/r35/69faD1j0/tUu554Z0\nqUatJk1SRFUFYil0kSRm9PaXiQakH5C7v7yPmKFyHxVBzF0ejjsXVlh2t46UQi5Y92mlDtJNafEc\nplRx6+M1LAbzUw8bdynFFS4qs1Xudd1fNcypDBKml1CNAO8Bvg34ZuD/FkLcOLyTlPKTUsqnpJRP\nLS4uTunUXRfhx0yrO6N96Or6VwDIX3tf7x2SBfIztP3dbZlcEn7ybkBYBuARsT6TLjrDcshg+InI\no8o93t4lg3aA3OMbX2FdLFNaOvyM95ArLHA79SRFbTJzp0mgmw6lYH5qPNdJWuWGOEPG7Qaakun8\n3IyUSPbI2xiWQ9bxY+uHlHvCCeeojgrdV+7ysJAorFC2N9nryu8YeotF9nD8uHgARVWpTDBuz0uo\nthCHShFFYYWLM06oNnzlrszJERJGI/d7wMWuny/427qxBvyqlLIlpdwBPg88yZyRzHvk3twdrTU5\nX3mBbVFCLfQmKZJFErQxZlQNUWl2kXu/sExmCSeW4xExm4qZA6PpDn/hgooZsXWA3M+3XuR+5m0D\nj9uOlci58zMT00ybYud9FEBRMSMZsoOUu+sSczUMNd3ZZMSKnl/7IXimYV2+MtB5GGaFFs5RHRFt\nv85dHL7X8hfJmZtYtt0JFW6tvg5ApHTpyHGqkTJJY7zobzOocz+sngsr5GnSmNAjfhQEgzoiDxm5\nPw1cF0JcEULEgO8GPnton18CvkEIERFCpICvB16e7qUOR2rBa1E2qqM90XPGGpuxlf47+DeB1GdT\nDVHxlbtUE54jZC8IgVO6xiNivWfFjOs4fOGn/zpvvfKVia5BMx2Wol2Ktxsdct/oDOzYXr/DMrtY\nZ3vnKQLYiRJ5WQd3PvNXNdOh0CF3733YkQw5ofX3l2nXUZC0I/shAiuxQEHWjvzOQV+Zg8rds/0N\nLQhGQaDcj5B7YYWINClT69S6V9c9z6fMmUeOHEdLLJKzxgvtaoZBGuNonblfDqnUJ3SaHAF1vU0O\njeicBnXACOQupbSBPw/8Kh5hf1pK+aIQ4hNCiE/4+7wM/ArwPPBl4F9LKb82u8vujXzZI3dryBzM\nzv72Dnpiqf8O/vJNMWZD7kFYRhYvey6QfaAuPebF3Hso96d/4cd5/+1/zsbn/+1E16BbXeGMw184\nP1R0WWx2lPuq7wRZuP7+gcd1kwtEhIutzU4NdUO3/Pmp0RSo3nhAO5YbrNzbnhI31f2wjJsqUxb1\njltngKrW5Svjz08lksAVEbIi7FIdFUHMXU0eJXeAi2K74+2jBzXu569xGGbqzNjj9lwtMO46RO5+\n2CfZmsxpchSYrRqKkCgPE7kDSCk/J6W8IaV8REr5d/xtPyWl/Kmuff6hlPKmlPLtUsp/OqsLHoR8\naRlHCmRr+HJNug4LbgU71UcxQ4fcI+0ZkXuzzWVlC2WhTzLVh7p0gzNij0btYCx4/c1XeOJFz2o3\nYozXvBVAN23K6kHF20E8g8wsc1nZJ/f2nS9jSpXLbx9M7iLtEWBzb/JJ9eNAC+andq0+nFiWLAOU\nu+/tbUX3lbvILFKiTqVpHNg1CMvY8SKoEX9ngR3zfONPm7/M87/9i6zfmX6ncds0yQgDNdVbPZ8X\nO517zd27iylVFn2b3wPIniUtjCPfiYHoZ9zlnzvfvj+z3ImrVXqfe4Y4VR2qaiTCnsijDBiVFqC6\nu0lMOIjccHKPWbWZjLmrNNusiM3+ydQAflI1sners8l1HPZ+9uO4KGywQMKcbGiwbjkUO/XhR288\nUbrKI+o+ued2n+Ot6FUSyfSRfbuhZr3QhdanlX/a0E3Hn8u5rwhlPO8nVPsod8NT4nYXuUezS6hC\nUqscFAhVzWRB1JB+uWQAJ5YlK/RTR+5Xf+N/Ze0//djUj+v6f3PlsHLPe2m9C2KnUzETa9xlS1k6\n0CgXIBi3V7l/Z+RzK+0+yj2zhK3EOSe22W31zms9858/yRd/8uMjn+sw+q4aZohTRe4ADaVAzBhO\n7pUNzz0yVuyTTIUOuedodpI804RTv08Cs38yNYBP7qn67c6mp3/+H/E286u8+I4f5l5khaQ5WfhD\nMx0KateIvcMoXWXFD8s4ts3l9mtUCk8MPW4054W72rX5tDxopu0NHOlafci4p9zb/Ubt+crd7Xrf\n8YL3sNf3DiblvZh7vdPotH+OvKfcT5Htb1urkxE6ueabUz+2CCYhHb7X4hncRInzYrsTc88a6+z5\nPu6HEYzbq2+N3siktvt4uwiBkTrn1br3KDeWrsuZZ/8x7938NHvb4/vIA2AEgzoeroTqiUIzWhyJ\n6Jo7HrmnFi703ykY2MFsyiETTd+eeBi5Fy/joFLU7wBw7/YrPPHSj/N84ine+x1/CS1aIjNGZ243\nDMuhIA659HWjdIVFWUFv1XnrlWdJCwN15b1Dj5vIe+RuNabfz9ALmtk1dNmH9CclDUqoAgcaatJF\nj9wPP5QCL3c1eyhHk8gdS7nvbd/n5b/zfu7dnnv9QV80/FLis/Zd5JQT4iJo+Dqc3wEornBB7FD1\nY+5lewM93Vt85Ze8UIpRGZ3cYx1XxqPq2cld4ILY6Vlu/Oozv84FeR9FSG4//Ssjn68bByZAzQmn\njtzb8QWyzvA4nFnxkifBTdIT8RyuUCnMyIIgp/nkPiwso0apxC9wxryL6zhUP/WDOCgs/Y//CqEo\nGLEiOWeyvIBXvaBDJOFNxTkMv2Im2Vpl+9XfB2D55jcMPW6q6Pu0jGnBPAkcV9K2XRKBJ70P4Vvy\ntofE3GXX76R8cncaB3MFNd1iUakh0geVu5IskKM1cUL17gu/w+PWS9z76n+d6PdngWbFU6d5Wuzt\nTKhU+0AxAnI/KiSUwkUuKp5y15o1StSP1LgHKJ+7DIBTHa2nxXZcbwQj9CRYpXiJ82Kn59yE2pd+\nBk3Gacok9hu/OdL5DiNqBl7uoXKfGHayTGGE+mq75t20C2cGkLufMCvMwBlSSknJXMdF7SR0BqGe\nucKKe48v/Nw/4G3m87z8jh/hzEWvisCML5CgDeZgH5Ve8BKRrd5KCjrkntdXEWvPUCXDhauDa9wB\ncpkMDZmE1uxH73Vsi53mgfehJPNexU4/75ce8V8l6z2UaB18KDVammcXmzmo3NVk/ljK3dj2Qm3O\n3ugK1LFtapVt2oY2dWUNYFT3H2wbt1+Y6rHV7hF7h1HwCLbaandq3KMLl3seJ5HKUCONaI728Gm1\nnX273x7KPVa+TFnU2asdFEmG3uLx3f/GS/lv5Fb6nZyvfHmk8x05vjnfQR3gdZaeLqQWSQsDrVUn\nle4RZvChNu9TIUcpnhh4ODeep6BN3xlSMx3Oyw0aibPk/dK9QWjnH+H6zu9w/tV/wvPJr+PrvuMv\ndl6zk36Sr7XtTQgaA4bpkIlrvePt0FlVLLTvUTa/xt3E47xjQNlmgHwyyobMouqTJXrHQdBAFHea\nBxSh4hOIq/fxfjGqaDJOLN61YkkWcVBQtIPX7TYD64GDCdVIqnCsahlZuQOAOkaN9fP/+KO8S/P8\n9F0p0IlhiDgmcdYzN3nXX/5PiBE+o36wa/tJ8ObaS8C3THysw4gE5N7rfstfJIGJ3dyidt8LM/aq\ncQ9QUcrEtNES9o225Rl3KQkiPVaosQXfr2b3LeDtne0v/daneTct4k/9WVprL3DhtS9w/61XOXvp\nqIvsIMTtBnYkRiRwwpwDTp1yV/xEXnVr8HItrm+xp5YH7gMgE0XyTN88rNIyWRGb6JmLw3cG3IXr\nRIWDi8Ly9/6rA1/eoILDmSC+rVlBlUkfck8W0CIFrthvcMl5i1YPJ8heiEdU9kRu4hLNcaCbDnFM\nVNc8QBqRtK+S+vQpuEadBkmS0a5qDEWlqeSItQ+SuzjsKxNsT+RJizZae7Lu4VjTI/WkPnr445z2\nCq9GHuULV36IL138AZ4/8528vvBhdmPneHfzt49tt+w2vXxDW0Zxt1871rEOIzpQuXsr2HhrHX3r\nDgDlC9f7HqsRWyQz4ri9YFCHHet9n4uCR+5K7eCYTuX5T7FFiZsf+DbOvMt7yK09O17c3bAcMrJJ\nO9pfbM4Cp065x/NezLS+u865K4/13S9tbtOMDSd3kSqSF3dYn3LMfbdlclls0iz08bU5hNzVp+Bp\nePmdf433XjioZoIKDqO2wXi63SPGZLIFieW++zRSF/nj1rOoQpK62sdkrdfvKXkWJ6ziGQeaP6gD\nOEAakaCWuk9YxtWr1GXac4TsQjNSJHXIXyYarEAOkXtwPlebzGoh5w+GLpij9QOYbYOyrHD77Hfw\n/u//uwde21x7A/71u1n/0s9z6bHBHcQD0dqhKtPsqoskuyq0poGY7Q9P6aXcfXJP6+uwt4ohoyws\n9S94MBJLnK2+MdJ5m23PuMuJ9wmL+OeONvZXULuba7xd+zJPn/teliIRLj36bnYoIO58HvhLI50X\nfC930cSao90vnELlHiTEjCH11UVnl/ag7lQfSrpEYQbVMrXKlmdiNKxSxsfK419H9Yde4b3f8ReO\nvBZUcLSr4zUMuX4iMuk2+4dlAD17ibTwlOmlPk6QvdCKFEhZ8yH3zmzMLnKP+j4enfK7Q3D12lHl\nDhixEhn7oNrvKPkj5O793Rx9MnJfcrz7dNHdHil+vn3vTVQhiRSP5mmWLzzCa5EbLKweLzkb0bep\nkKeausyCMV3zt7jdwBDJ/Uawbvi+7vn2OrHmPTbV5YHhJTdzlpKsjjRuLzDukv2qVTLLWES9B4uP\n13/93xERLme/8fsBb5TnndxTXK4/M1auI1g1OPGQ3I+FrG9B0K73JzrLbFOUNZxM7xrabkTTJQoz\nsP01tz3FEV/sH1M8jMJi7+uN+aEoa8B77oUgERl3BiRUASvvPYDWxFkK5QFNX4dgxIpknBrMoAGs\nG3r3FKZDCVUApY/fujRq1GWaxCFytxIL5N0qtj8XwHXlvpI/FHMPztfvATIItb0dcrTYZIGEsEaq\nTNlb9xKNyaXeomD34jdxw36NrXuT16jH27vUlAJm8Rpn3U0MffxEfT8k3OYBo7aDL+Yx1CwL9iZZ\n4x61PjXuAUTeG7e3uzk8GR14ufdNaCoKtdgyBXP/Myi/8RleV69x+fH9+crulT9KmSp3Xnl26Dm7\nz10QLdx+q4YZ4dSRe6Hs3RBuoz/RVbZWPZ+H3HByF8kSeaHRNKbsyFjxvnzps0eckcdGJpulKRO4\nY5YddsjdbvSPuUMnqbqRHV4l0w0zXiKK1TcsMi1opk1W9GjE6gzT6H1+4cfcU7GDKlKmyiyIeqeZ\npmnaXlmeiPZovpl8GtPOqhfPXs29C4DK/eGErG3fAaB4rrcoOPf13wXAm7/76bGvJ0DS2qMZKRFd\nuoEqJPfffGniYx1GymliqP1niLaSZznPDmV7s2+Ne4DOuL2N4asLLyzTPOLlfuDcqXMsu1tYjsub\nLz3NNecNdq9954F9Vt7zEQA2nxs97l7XLXKHh4TMAaeO3BPJNHVSiAEleDX/SR8vDb55gE5dqt2a\nrr9MtH7HO/zS6Mq9H3KJKLsyd6R8bxh00yGGRcRtD1Tu0SWv5NI++56++/SCnfANtsa8rnGhWw45\njoZlggdWv0lJou2N2EvGDn4NRGaRnNDZq3m/V/NNw9rx0tH5l/45FHMC5X7fW725Kx8EoLF5Z+jv\nOJW3cKVg8Xzv+2blxjtZFedI3Z6s2QYga1fQY0UKK97DfO/uixMf6zCSUsOMZPq+3s5c4FFllaJo\nIvvUuAfIlD1y13ZHVO60iKT7k7uZucB5scNu02Tz8/8WS6rc+GN/7sA+Z1ausybOklgdfcpYcG4l\nNT/TMDiF5A5QEwWiAywImjte0iRTHqFSxSd3qU236iPZvMsORW9W6TGRS0TZJXekfG8Y9AOT6PuT\n+8rbv4Ev3vgrvO1bPzHW8WXgnjjmdY2LVtvZV+7dK5BIAosIMau3qlbNOnWOhmUifg6j7jfzBHa/\nVqJHAt5/mET7nGMQzB0vWXnmHR8GoL07XIFG6mtsixKxPiW8QlFYO/NhHjO+Sm1vgh4D2yQrm7QT\nZc5e9UoC2xuvjH+cPkjLFma0v3J3che5ILzrjpYHG+oF4/baleFujppmkBHGQHInf5FFUWNrd5dH\nNj7H19Jf33Mgzb3S13NN+yqWOdpqvqlpZIU++NwzwKkk92akSKLdn1CC2YuF5eHNQ52Osinb/qaN\nTXYjwxO6oyCbiLAr80T7jIfrBz1wUoSByl1RVd73Z/462fx4ykPx49Oz7lLVTLu3cheCpkgTDSo0\numEZKK5JXR4NyyQKXuVQkJQPHCEPm4YBnbBMpNc5hkDsvUVDJrl47R0YMgrV4Qo0pd+jEu1f2QRQ\nfM93EhUOr//uL4x9Tfime25ykXS2wAZlopVbQ35pNLiuJCNbB4zaDkPpShRnzwwm92DcnqwPz1VY\nLU+cHZ7C1I2gYereb36SRfaQ7/jTvfe79iEyQueN5z4/9LwA7aZXVBDLhMr92DBiJdI9pukEcOv3\nsaRKafHc8IP5cTJ1yra/OXObRmx65L4jc8QHPNB6QTMdcgzwlTkmIr4zpDFmFc+4CB5SUigQO7jk\n10SKmN1DVfu+MnXSR6plUiUvF9P25wJUNY/cD5uGAR1yj/c6xxAkWmtsRc4gFIVtZZFYa3grfdHa\npJUcfN/eeNeH2KGA8up/HvuaOrkq/8G8HV8hr90Z+zi9YNj+cOwB9d7R0uXOvxcvDs5HBeP2oq3h\n5O4GA3cGeLsESep33/331Enztg/9Dz33u/p1H8GVgr0X/9vQ8wLY/oMlll0Yaf9p4VSSu+lXO/RD\npLXJrij2tBI9go6n+3RHxpXcHYzkYAU2KiKqQl0tkLSqY00+MqzRlPukCKp4zPpsnSE13/xMxHNH\nYuKakvFsCQ7Dr25pyKOlkFl/opfT8K67pnkTgtRsj89LjWAqKZJua2wv8Hx7nXrcO1c1tkzaGFy+\na1smS+4OVnaA2R0e6b2x8Ed5rPGlsStdNN8NM7Bh0HJXOWetTsXmwPCrmpxYf+WeXLzsnVfGKSwM\n/35UI2US7RFWhvpwy92c3w27LPZ4eeGbiCd6h0wL5TPcjlwld//3hp8XcP2BNcocfWXglJK7m16i\nSAOrT/1r0tikFhnxKdrl6T4tuHqNDDp2evSywmFoRYooOGOFjw4o9wF17pMik82jy9jMnSF106Gg\nGj1XH4aS9ko9j7zQpdwPNTFFA+dHPynfalZJCIt4vvdKy4xmvVF7Y8xRla7LkrNFO+vlffTkWUr2\n4Ifgzv23iAgXtXh0puhhJN/+UVKizatf+OWRrwn2/fdjfmiK8nXSwmBn4+6A3xoNbb1JTDjIAavE\n9LIXitlUz4xkoTDquD3Rb1BHF5Kl81jSuxfy7/uzA4+3s/g+rrdfQmsO54WA3OdpGganlNwVf/lc\n6+O9nLF2aMVHDIn4N0Pc6uNPMgHq215sVeRGCAuNCCPm3zhjVKboM1bu+aSX6JXN2ZqHaabt2Rb3\neA+GmiXl9lLu3pe9IZNHyJ1YGoMYim85YPsKPpLrfc/Y0aw3JHuMOaq7W/dIiTb4be9O7gKL7NEe\nMIy9cs+LfQfqdhAe+8B/R0Mmab8wHrmbfigq6fvap889DsDm7efHOk4vtIOKswFCQkkVaZKkFh9e\npgyjj9tTRzHuUlS2lUVWxTkefc+HBx4v/fgfJyYcbj0zPDTTebCEpZDHRyzvqY7qbu8YZsmtYCVH\nJHc1QltNk5UN2vZ0BjI0tjwVFC0NXl6PAzM+ftmhbtozjbnnk1EqMouYsXmYZjrkhd6z4qcdSZN0\neyj3ATF3hKCuFIj7CWrprzxEuvc948Ry5BhvjurOmlfjnljylKpa9BT8znr/ipnWplddU+hT496N\nWDzBa7n3c23v8zj26Nfl1DfRZJxc3hMLS1ff4Z373vH95q2Wr2AHeZoLwddWvg/55PeMdtARx+1F\nrT6DOg5h+4/8TRrf/E+GrhquPfVNmDKC9sqvD73EB+HlDqeU3BPBNJ3KUeWutxrkaOFmRw+JmNE8\neTE9Z0hj1yP35MII1Tojwul2hhwRgXKXCBgQB50UHrnnZu4MqQ+wLTYjOc8Y7TD8sIyhplEVceTl\nVrRI0rdOEFpvR8gAMu4p93GcIVsbAVF7PQSpsqfgq/f7e7nYe959s3jh6MDonnjs2yhR57VnhxPQ\n/oXtsCNzFFOeU+ni2Uu0ZAJ2jm8g5vj+O0dG7B3C+/6nf8C7vuXPjXTMUcftDRrU0Y0nP/zd3Hzf\ncBfMZDrL6/HHKW9/cei+0Qdg9wunlNwzfkLMqB5NUO3e95RRJD9CA5MPO16gMEVnSLvq1eXmFkdz\nhBwFblCmN4Z/um66nnKPZ+EYFrH9kEtG2SVLrD1bZ0jNdMhIrefqw4pkSGKAc+izC4ZjR3qvWDx/\nGY/cI30cIQN4o/bGI3drx+tGDYg6f9ZT8EEHai+otbvsUBg6vzbAjW/4TkwZofaVXxz5ulR9m13y\nFFIxwKubX49ePDDicVI4flJzGLmPg1HH7cXtOpYS7z2QZkLUz36Qq/ZtqjuDE+Exq46hJGEEa+9p\n4lSSe6F8sNqhG3U/JJIYIyTixgu+v8yUzMPq6+zKLOXi9G5yNVPCRYyl3DXLpqDoiBnE2wESUZWa\nyJOYsXmYZjmkZW/l3rF4bR/KmbTruCh9/e+txAIFWUVKuV9i2ke5K8k8WTFeWEap36VCjnTWU3OL\n57wyPHtArXtKX2c3MvqKM5sv8XLyXVzY+s2Rq11ixi475Mkl9mv/a6nLLLZHHybSD65vrhZJTe9+\nG2Xcnmm7ZNwW7T4P8klRfPs3+aP3/svA/RJOHUOdr90vnFJyz+SKtGUUmkfJXat4DUzZpdFVs0wW\nfWfI6ZiHRVr32aJ04At0XKSTSaoygxyjYcgwHfKKPpNkagAtUiDqTjYlalQYbZOk7D1wxIn6de+H\njb2MGrqSJhnr/RnIVJkF6tQ1i6S1h65k+qo+Jekpd20Mck+21tjpIupEKkOFHEq9f7dlwdygmRwt\n0RjAeOQjXJAb3Hn56ZH2T5gVGmoR0VVSahUf4QzbI1WGDIIMyH2KnZqjjNsL7H6tKfupX3vnN9KU\nSaxb/UfvSSlJOw3MOXu5wykld6Eo7IkCSo9Yr+3fBKUzw8vJAijJAnnRmtqovaSxRUUtH/gCHRe5\nRJQdmesMWhgFmukPx55BGWSAdqeKZ4YVM2YTBdnzIeUE7+0IudfRlKPWAwFEZomocKjubZOx92hF\n+3cXRlIFosJB10fvUi2a92kkD4YGd9UlklrvCi/XcVhytzFHHO4S4JE/8qdwpWDjy58ZvrPrkrb3\n0A+91/gZby7C+htfG+vcR+CvnmIDzLvGxSjj9pozstyNRGNDR++1fDtqe85e7nBKyR2gESn0tiBo\n3EeTcbK50W8wNV0iT4vmlJS7153aO3478TGTngXBOK3+nVLIGSp3K6ji0WZH7pHA9bFHzF3G+vit\nGzVa4uigjs4xg4le2+vk3apnGtYH0cx45nKObXtEnT1I1M3EGXJm7/jtzsZdYsJBKY5H7uUzK7wW\ne4zFtRE83vU9VFyMQ++1eMnzmKmuHs9ATLTr2FIhnhp3pMxgDBu3Vze8EXvuDPzUjQsf5IK839di\nOfCR7zskZIY4teSuRUtHpukARLVNdpWFsWZMRjMLnjJrTaGRyW6Tc6voiek1MAFkffOwcWLuRmAc\nNoMyyABuMijRnF3FTGTA6DbpbzNbh+L+7TpNUkdr3H0k/YleO5trLIj6vsNlD8T8iU+ONhq5b6+/\n6RP15YOXlD7HotN7aEdQ455YHG24Szf2Vv4E15w32F6/M3jHlrfqs5MHhcfZKzdxpMDafHXsc3dD\nbdepkyLRJxQ2KYaN22u2bW+YywyqVfKPvBeA+6/2Dnt5Xu7Nzn04T5xacm/HF8g5RxN5SWObenQ8\nj4dYztvfbk6h6qPhLR+n2Z0KkPP9ZZQxFLJm9k9ETg3p4yn3tVtf44s/+YNs3H295+uuKweObhPB\npKTDY/CMGnWZ6huWSS14se3azjoLor5fjdQDik8a7ojTmHbXvPeSWj5kjJW/QFoY1KtHH4TNoMb9\n7PgW0anL3rCJ3TsvDN7RD+kdNkhLJNPcV5aJjTjSrh9Uq0FDpkhERrD9GANGYomC3f/+6ljuzqBD\n9Pyj3t9WW/1qz9fruqfcxRRDUaPi1JK7kypTkLUjKihvb6OP2p3qI+L7MDtTUJ9uzU/8jDAoZBxk\nfU/3iFkHe/jYMfCamNJ9EpHTQsdsa8yYu6E1+cK/+T9Z/JkP8b6tT/Pmb/107/3s3iP2OvDL7o6o\nasNTkf3CMjmf3PW9+5RoQC/TsACJPhU5fdDa9EiyeO7g8OdYyav82Ll3lERt3w548cL45J4996h3\neVuD3R2lv+pTske/H7uJFQrHNBCLmHUapImq08s1wf64vX4WvC1dJyt01BlY7uYKC9xnkehO7yav\nVrNJQlgDh4TMCqeW3EV6kZhwDqgg6bosuJXxVXPwxNePX9Kn7XglW2phet2pAPlkhF3ywUlG+yWz\niYI7U+WeSBcwpYo7Brk/9+ufovIP3837V/81L+T/KHtkUfd6q8Z+w7EDKP62XjH3mnvUNCxA0veR\nydRvoQhJJDNAEIw5as+p3MGVgqWLB5uRMsteyKWxeTR+K+qrVMiRyoz/WZXPXfaqxyqDa9Ut33og\nkjv6/dBzj3DeXsN1Ju/SjtpNWiI11UICAHXxGqqQrN/unRMwfcvdaHo2lrubqWuUW71XlkbD45/I\njMK19AUAACAASURBVM49CKeW3CM534Jge7+0rF7dJSEsGKM7FZiqp7ve6U6dXgMT7Ct3YOS4e2dC\n0Qxj7vlUjAo5rB49B4exfudV/uAffIR3/s7/giVifO2b/gNP/eVfYCN6kUyrt3GV3j0cu8cKJBGL\n0pBJZPdn57rQrrPnJvuGZVCj1Mhwtu0RbayPaVj3efvNaj2MSP0uW2LhyMCN0jkvTNNraEdSu8du\nZDIX0WwixhpLxOqDh4G0axtYUiXdw7dfWbxBQlhsrE7u7R6zG7SU6SZTAcrXvAlh27ee6fl6QO6x\n7GwIVi8+xgVnracvUNsP5cbnbPcLp5jcAwuCVpcFQWXjDrDfsjwyfHJXp0Du1t49mjJBsTjdDzso\nhQRGJveI5ceqZ6jcAwsCZ4gz5FuvfIXiv/0GHm09yxev/kXO/vAzvP2D/z0AzfQlymbv+u+Dyv0o\nuccjKg2SHbsBAMwGINlzEn3DMgB1tcAN4a20ksUBgsA/b6TPrNbDyGj3qESPHq+0eB5TRnB7NDIV\nzA0aiclCeUIINiPnyGqDG5Gs+ha75Cikj055yly4CcDOm0Pi9gMQt5tev8CUceH6OzFlBHvtuZ6v\nu/4UtVkp99j5J4gIl9XXj8bdHd/LPZkLyX1qSJd8f5m9/RKppu/GmC6PGRLxE2YR8/jkLuv32JRF\nytneY9ImRSKqUFN8kh4xBNIZPzfDmHs+GWVXZpFD8hU7z/8qSWFy/0//Cu/7vr91QNXahcssUenZ\nRKOZXiWEo/ZuLY9HFOoyjej24/eJfs9N9Q3LgGejXPBXBanCAHKPprBRiYw4sGPBuk8rdVRgKKrK\nllIm1jzYkBPYA49b496NauKC94CUAzznm1vsyhxF33qgG2euPgGAdn/ykXsJt4k+A+UejcW5G7lE\neq933Fv64dRBU5iOg/Ij3sph740/OPJaYPcbnfMUJhiR3IUQ3yKEeFUIcUsI8SMD9vs6IYQthPiu\n6V3iZMiVvS+PVd+fAmT43am5xTENu6JJTBGbiu1vpLXBfVliMTM9jwvw1Nm4zpCdCUUzdKvLp6Je\n56U++IETqbxOTaZYufHkkddiS17i8f6bR7+8WmcARO8HVDzqKXfR7iLezqCO/qWQAEZ8X20FYb6e\nEAJDTY80jaltaJTlHnau9z1Yix4d2rG7dY+EsBCFycldz14iQRua/adiCW2bHZnvmIZ1o1g+6zUL\n7faOLQ+F65B0Bw/HPg4q2Uc5377Vs4y0kwuZkXHX+as3acsozkaPJq8ZP1gGYSi5CyFU4CeAjwA3\nge8RQtzss9/fB35t2hc5CQoLZ3CkOGBBYPuVKgtnx3dj1NUcCfv45J7QN9kWC+SS0631BVASOWwR\nHYncTdv1yiBhtjF33/Y3YgwuI0033uSucoFojzK5/HmvQ7K21pvcc0LD7UfuvnJXuitZOna/g8k9\naMCyUYc+ANtqtvdQkEPYWnvDS9D68zoPQ0uepWAdzE8EpZPxCWrcA7gF73zObv+kalT3fGUKPZS7\nUBTuR1bINCY0EPP/5m11+u6jAO7yE5So9xwqorSHD+o4DiLRGKuRFVLVo6uaWT9YBmEU5f5e4JaU\n8raU0gQ+BXysx35/AfgFYLYz1UaEGolQFbl9u1ZAaW5SJTOyq1432tEcSeeY5O46ZMwd6tHFqVcM\nAGSTMepKYaSwjNed2r/KZFrwwjI5onYL7P7T4sv6HTZjvR+6Z654WqJXKZ8WeNL3eUAlogoNkvuN\nTnBQuQ8Iy0jfKKwm8kNdM81IpvdQkEOo3vOIOr3cu6TRzp5jUe5id00Ra255Sd38mcnJPVr2zte6\n38e6V0oS5i47Mkehh3IHqGeusGxOOJHJD4VZA4ZjHwf5q15oZP2Vo1YAans0u9/jYC97g3PG0You\n1ax6hn4z6I4dhlHI/TzQnYlZ87d1IIQ4D3wH8C8HHUgI8XEhxDNCiGe2t2c7eg2grhSIGftEF9c2\n2FMmS2yY0TxZ2Rx7TuYBtLZRcdAS0xmMfRi5ZIQ9kR9JueumQ47+VSbTQj7phWWA/g8dvUrBrVBL\nX+75ciZXZIcC6t5R1aj7yr3flyceUanL9CFy71LuA8hd8csfG5HhpGBFs6Tk8Dmq2pb3HkoXrvd8\nXS1cRBWSnfv7lS3Wzh0Ayn1+ZxSkl69gSwV9s0+1S7tBxG3TUItE1d604JauUabas8lqKAKL5RkZ\naF147OsA0O8eTarGrDptMV2738NwFm9Spsru5trBc5t1NJGeiaX2MEzrjP8U+GEp5UBfUSnlJ6WU\nT0kpn1pcnK63Si+0okWS5n44IGXuTOzpYscL5DnmwI66Fxay0tNtYAqQjftEOgq5Ww45oeMoMYhO\nN7nbjURUpa4Mqb/f9QinXeg/hGI7er5nOWQQc+/nER73lXvUauwnE0eMuUd9fxk9OjxeGkxjGjZH\n1a28hSlVFs9e7vl6wh/asdc1tEPU7lIjTbZHieKoOFPMcU+WcfuFZfx7pjvPcOTaznoj9zZuT1Ax\n46tnJzabmHs2X2JNnCG2c/TaEnYdfUbhoACZFS9XdP+1Zw9sj8/h3P0wCrnfA7ozORf8bd14CviU\nEOIO8F3ATwohvn0qV3gMGLEFMl0WBAV7B2NC1ex5ureoH8c8zCd3mZ0NueeSEbbc3GhhGV+52zNa\nJndjmDNke8OLpcvyjb7HaKQvsWgdLYf0HlIDyN1X7oq0wfLDUH7lTGOIco/7FTJGbDipurHcSNOY\nYo27bClLqJHeOZcg9NLautPZltDW2VaPZ1dxJp/gLblMtHan9w4+uVsDPHQWLr8NgNrdCQzE/Adq\nv8T3NLCVusFSj2aihNOgHZntfX7OtyFo3j1YDpm06xiR+YdkYDRyfxq4LoS4IoSIAd8NfLZ7Bynl\nFSnlZSnlZeDngf9NSvmfpn61Y8JOlim6XjLFsW1KsoqTnqwRBN/TfZyBDIfh+uSujjEFahzkElE2\nnaz3RR1U8gbolk1WaDgzGK93GB3TLa33cl5bfwVTqqQPe610wS1cYZE9Wo2D5aiaaZNFQ031Dp14\nMfeU90OQ3DJqOGock+hA5Z72a9utRH9fmf0T5cii0xoyJDtrrLMX6/9wL5/3/gZWZX+Vkm/fn7jG\nPcBCOsYqy6RbfWrd/cIDN9V/ZXvm0mNYUsXemsBAzA+FyVnaS5dvckHep1nfF3RSStJuc+Z+6qWl\n817ocPulA9tTczh3PwwldymlDfx54FeBl4FPSylfFEJ8QgjxiVlf4LGQLpMWBnqrwd7WPSLCRcmf\nm+hQSqpEUpg0m6N7dh9Gu7LqkVhpuqZhAbKJKBt2BmwDzMHXGYzY61dlMk24qaBEs7dyd7df5S15\nhuVC/2uJ+uWQG28e/PK0Dd0rE+yTUI2pCg2Z9Hf2E2tGHctXcoOamIrLF7Ckipsd4Z5J5MkKnZbe\nP2kMsGhvoKX791mkswWqZFDqXuw2qHFvp48nCBRFsBu/4BUFaD0ql3zlLgbYLERjcdbVsyRqExiI\nBQ/WGSbvkyvvAmCtazBJ23a9Feoc/NTXE49QbOwnrB1XkpHN/Wlgc8ZIMXcp5eeklDfk/9/emUdJ\ndtX3/XNf1at96b1r9kU9ow2JkZCELOEgsR0BDoKQBeywxYlCDmCT4xyHLIds5sTn5JycLCZRiIEQ\nwGBsjC3M4mAMwggQEpqRhJA0m2Z61D29d9fStde7+eO+V13d07V0V9Wrmar7OWfO9FS9rnq3pupX\nv/e9v9/3J+V1UspP2Lc9LKV8eJtj3y+l/ONOn+hu8ERVlr66OMuqPV7PN7S74O6YDuXTu/clL62+\nzALDjEWDu36MRjie7kBT3T1bLNte7t1/43lDw1Qw6mru5uo5zsm9JOL1tf+h/cr8KjmzOWuUTudp\nnTI3IQQ5z5ZpTPkkRTu417UfACKxEV5621e55W2/UfcYB0cWymfqN7qtp9cYJoUVb1yvvuyZIGAP\n7VhbnickCjDU/jD1bNh+jNVtvMft94s32nhPajl0lMnszodlS/u1N7qYue+94dUAJC88Vb0tnVdN\nbt3wct9KdugGDpSnq5VOGdvu1wq4X+MOfdyhCuAbUsE9vTzLut2dGtlpA5ON02FWTO/e9lcmZ7ks\nRxjrcAOTQ9XTHZrq7rmS3bbvgs90LOQnSXT7c6qUCK9f5JzcQyJWP7hvlENu0VSdgN0gaBSqwd3+\nIiikKNjNNKEm3uLHX3V/dc5pI7y2619xvf77Y2FaBUVzrHFJY8qfIFZQzUZLto+7f+xw03NoRtmu\ndWflyuBeSc+zIiPEw6GGj1Hcexd75ULd4RT1qOTWWJd+TH/3KlbG9xxilRhibmNTNVNQdr9u+Kl7\n9rwCvygxY0+sSuWKxFmvOpO6TV8H9+CQY9s6R2FVbcYNTe4uuPsdT/cGH95meDKXmZcjjEevbBLp\nBI6nO9A0c8+XlOFWt4Zj11Ith9xOc195CY+sMGsebKx/R4fscsjNQUU4UkuDdVQ30xxvoHySvN0G\n32hDdSeYYfX8pQYDO5KzKlBH69S4OxRDexi1lAaenlMSSCxRfz+iVTyj6ktFbuMOWU4tqO7U8PY1\n7g6jN74WgEtP/9WOntvKJklT3z+/EwjD4GX/dQynNq7u0lll9+tGh+jI0dsBWDqnrhwy6TW8wupJ\ndyr0eXCPjSkJppicQ6ZmqUjB8PjuZJlQTF2uVrbTK1tBSvy5edt6oDulh8oZslVZRmXuHhc652JB\nk0Uritwuc19S2Ww63LxBZ8Hcf0U5pKfoaLn1M/dqy3uN5p61Daz83s58BPy2bFdpMK2rsKSC6tiB\n+lVBADK+nxhZ0skVirZDZDs17g7jw0NcliOUFq/UzK30Asty++7UWo684m6y0k/5pR/t6LktezhK\np75M67E+fBMHyxeq3u75lPq8uuGnvv/YrZSkh+KsunLIpXpn9wt9HtyH7EBupRcxMnMsi2G85u6y\n5qpdaHaXnu75NUwrz1KXrAdAae4r2Flqk+BeKOQJiQKekDuZ+7KMYm0339UO7sXh5kMoMuGDTJQ2\nN4l4is2dLctOtUKN5p41wgRND4bRmU5hf9QO7g2mMcnVabLSz0iTBMO0h3Ysz55HrE2TlkFiQ+27\nCk7GAkzLCcpLV2buIrvAErFtfWVq8Zo+zgduZHTlSpOsRsi8k7l3N+R4996KX5R4+ewzAORtGdXb\nhUEdW/EHQrzs2U9wRdkQFGwv9265UTajr4N7IBhWlRLrCwTyiyS9u/+AiKD6DxL5XQb3lNogW/dP\ndMV6AFQpZAGfylSbaO5WTmWx3jolhJ3Esf3dVpZZOsMCIy1ZIFeGjzDG2qZSN59j5tZoo84MKH+Y\nGs09I8INZaCdEnBc/xrYQvszl1jwTDad3xueOAxAcu4l/OszLLbwO62wJx7ggpXAs3alXu7JLdum\nYc2Tn/TEHRwpnyed3MFVbD6lRux1OXMfP6Y6VZdtb/eSLaP6Iu5Y7i5HjpHIqSujcka933vh5Q59\nHtwBksYQZn6ZaHGRzC67UwHwRylj4CnUz8waYte4F0PdKYMEFdzB7qhskrnLnApCbmnuyzKGp7AG\nlc1NYNbSac5U9pCINa8g8m9TDmmWm2fuftOrZJh8UvnblPNNfWV2SrWJqlDfGTKen2XN31wWHN6j\nJKr80kVi+cuk2qxxd5iMBbgoJ/DnF6FYY3JWymOW0rbm3jy4R469Bo+QXDj1/ZafW9jDsbsty+yb\nuoW8NCnPqGaiij0YPdClQR1bKY3dRIJFkqtLlO3nDsZ1cO8Kae8wgcIyQ9YyxWAbni5CkBFRzN16\nuqft7tTY7jT/VogElNyz7m0huLewEdkp4sGaKp7aPQspYfFFuwyyeRVFfL9qf0/ObJTi+csZZczU\noK09YBqsi5DS3O3sPd3EEXLHONOY6nz5q3r1eQqR5rMExhKHKEsDa+0S45X5tmvcHVRwt5OL2ooZ\n+72yxPZ2v1s5cuI+KlKwfuaHLT+3UVSZu7/bsozpY9o8QmRNdT07fuoBl4ZlhA7cCsDMi09i2QlU\nKN5CE1wX6PvgnvONEi8tMEwaK9Je1rzuie7e0z01i4XYdj5lp/AYgojfS8rT3Bmy6pTnQp27Y/sL\nbK51z8xjFNN2cG+euScOK+vfUk05ZMDKqFLHBrKF3+shQ1hl7va6k53e3PN4yRHAU9o+c0+uLBAR\nOeTQoRYeysuiGCW48gJRkUM2qYtvFZ/XYC1of7nUVszYwX3NGGrpNYnEhnnJe5TI4s+aHuvgLarM\nvduyDMBa7Hr2Fc4pb3dbJvO5NCwjcUxVzKQvnqpKuFpz7xKlwCj7pdK7PTsdr7eFvCe6a093mZpV\nU25i3TFOcogFWnOGrM77dLMUEjZ/6dibqWflXvY0aGByCEeHWGQYz5oKTFJK1d7dZACE32uQIaSy\ndvvDvmYFOi4RZEUYs86ovcVLaq3+8dZKGlfNSY7mVNWFrwM17g6lmP3lsnpl5l7yj7S8H7Q0cjtH\n889Xq1IaP2kewyp1XAqrh5y8hWHSzM+c35jA1cWBNLVM7D1CkjDMP4fIr6m9Hl/np0+1Qt8H91qv\njMBwe8G94I0T2qWne3n15a42MDlEAyYrxNXmpVXf58TjBKEudgw6OJo7sDlzt4P7OWsvkw0amGpZ\n9G2UQxbKFlFyVSuBegRMD0lCKnN3RuxVOizLAFlPGF95e9uHndarZ4OJqiVztIHnzk6JDY2xJmLb\nZu6VYOt7UuaRewmJAi/9/CfND7arlNzK3ONHVPY89+ITeAtrFOiu82ktwjB42XeUodRpzEKStIhA\nlwoomtH3wd2IbLxho+M7nJ26hZIvTkTuzlvGSs4wL0cYi3Y3uMeCXhYrMZBWdcTXdpiOfOBC5h4w\nDdLV+a41FTNLZygaQVK+cWKB1spDM+GDVXdINYWpubOl32uQshzNXQWa1UrnM/eCJ4K/sn3mXr74\nOEXpJXHk5pYeqxTZSEQ6UePukIj7mZaTmzV32zTMGU7SCgdP3A/AyvOPNj/YmXzlUuZ+4MY7saQg\nd+kUZjFFRnT3ankrmfj1HCi9hK+0xrrRG7tfGIDgbsY3XCBHEofbeqyyf4iYzCCbOC5uh5HpzuzU\nrcQCJnMV+83cQHevzk/1d//NJ4TACgyrjc8tmftl8wCJeLBlOaAypMoh08kV1gtlouSaOlsGTA9J\nGVRZux1oFsuBjmfuBW+UoLXNqD0pOTT/XX4euJ1wtLUvU8Oel5qVfoZGd+lkug174kHOVSY2d6mu\nL5IlSDjS+lXc+N7DzIhJfLNXTj66gk2Ze/dDTjg6xIyxB//Sc7afurvBXSReQUgU2Js73TMvdxiA\n4B6wPbkL0iQ23N6AEBkYIiayZPMt6Iy1lHKYxTXm5HDXrAccogEvl8vNG5l8lQw5IwRG9zMpgGjI\nT9bY4i+zdIYL7GvoKbMV/6TKYucvPG97ua9jNZGW/F6D1UoQiulqtc5SqfPBvVxn1N7SmZ8yKRdI\nHXlzy4/lDO1Y8Ex0pMbdQTUyTUJqZmPs4foiy3VmpzZiNvZKDq0/s+1Q6k3UDEdxQ5YBWAgfZzJ7\nmkAlTc7rrivj0BHlTrmfBQo9svuFAQju0VFVI7xsjLT9IZG2R0QmucMxY3aN+5wLmnssaPJy0d7A\naRDcg+UMecO9jCYeNEka8Y3MvZCB5CVerOxp6Aa5laFqOeQL1SlMzfYN/F6DVcuuxknNAIKVsq/j\nEkHZFyMss1fcPv/4H1GWBvvu/tstP1bMHtqR9Hd2sItqZJpESAvW1N6FzCywYDXvTt2Ktf9uRkny\n8vkmwzuqmXu4Y3YPzSiO38w+Oc9oeZ6Cy8F9//HbsKS6Eu3WWMFW6PvgHhtT2mXS236tqWGXNOWS\nO7T9tYP7kjFKPLizD9BOiQa8TBec4F7/PAPWetUZ0Q3iQZNVYhuauz1a7+ncREuVMg5OOWRx4QzZ\nQlE5WzZx3fObno2BHWuXkP4o60Wr48Hd8kWJsk6lUpPJSsno9Lc5abyCqUOtlzSO7VN2DPlQZ/si\nVK27LfPY0oyVWWBJxhhpoYGplsQr7gPg8rPfa3ygLYUVveGudWdvJXRwI3t2w8t903NH4swY6ku5\n7HenSmc7+j+4x0coSi9Zf/szW70R9QVR3MZ4qSFpVYpZCCa6/uaOBUyWrTBSGA0z97DMVD3N3SAe\nNFmS0Y3MfUnVqp+29u5IlglF4iwwgmf1AsVsGkPIuiP2HPxeg5S0g3vyEgTiWJKOyzLSH8cnKqxn\nN6SZ0twvSJQuMbvnDTv6v4/GR3h87G8RedXf6+g5OuP2gI1N1cwiSy2Yhm3lwPETrBGBiz9ufKCd\nubv5ftt3/V3VnysuB3eAxZCaByx1cO8ewjB4eugNWFNvavux4je8liUZI/zs53b2iylV3WF1aXZq\nLdGAiYWBFRypG9wtSxKWWVfmpzrEgyYLlRrPm6XTSGFwUU621MBUy6JvH9HsxWp7dzNny62ZuzN9\nquOVG3blUS610YU79/gfYUlB7LZ37PjhXv3hz3LzPW/p2OkBRPxeiv4RCkZIZe5WBSO/0pJp2FYM\nj4cLoVvYkzzV+MB8igoeMN2r9x7be4gl1PvCDS/3rRRGlXyIC66r9ej74A5w5z/9Q+58+4fafpz9\n4yN8yXoj++a/X808WyJ1mYwIE2mxUqIdHMfJcmC0bnCvjh5zObjPlyPI3ApYFiydJhs+QBFzR7IM\nwHr4EBOlGSpZlRE2Mz8LeA1S0g4shSRlu7qm05m7EXKmMdUYm53+c07KY9xxy40dfa52SMSDzHv3\nqkam7DJCWrvK3AHyiTs5IGdZnn+5wUHKPz/QZDBKp5kNqOy5FwE2sF/ZEBguWA3XYyCCe6fwegz+\neuhBSsKEH3+y9V9MzTBP9zdTYcM8rOAfrau550oVoiLXtMqko+dlNzIJp/5+6QwrAVUR0moDk0Nl\n+CijJCnaQ6R94eaZe4qNqwPnS63R/NTd4LXloaIT3FfOM5k9w3NDryUa6O5ey05IxANcIqEyd8dX\nRrbmK7OVoRv+BgAXTzXQ3QspsoZ7m6kO68NqelcvhmUcvu31nPYeZ+LGe11/bgcd3HfIWGI/3/bc\nB09/qal/i4NMzTJbGWa8yw1MoDZUobEzZLZQIurScGyHqu0vwPoCLJ9l1jyA6RGM7nAjLzCpMjJx\nWckBvkjjD6+/NnOHluan7gZnIERpXVkcpE5+Td1+04MdfZ52ScQCnC2PwerF6n7Qsoy1ZPe7lSO3\n3ktBmhTPP1b/oHyS9Q5bLLeCaWfPpgte7lsZHt/D8X/9BAePn3D9uR10cN8hU+MR/mv2TVDOwxOf\nbul3ZGqWWculzN2uxsl4h+t++RRyabzCcsU0zEE5Q9oy0MxTUClwnn1MxgI7HpgxtF9VzIwkVQme\nv0lwD5geMjWZe7E6P7WzwcYfUVcQzqi94rN/yrPWYe440bsP+HbsiQd4vjAOVglm1RfksohX3zs7\nwR8Icc53PcPLT9U/KJ8iI0IEvO4G92P3vIMnht7Modte7+rzXi3o4L5DrpuIcNbaR+bg6+GJ/w2l\nfONfqJQR6wvMMdx16wHYyNxTniEoJDcaVWooZNzzcnfYlLlfVCPani8ldlQp45A4rC63p8pq36PZ\nOvxegwoeKl6VvTszVTu9oep8yVi5NUjOMLb2DI+Z93B80t0OyWZMxpWvOwCXVIdp0T+GZ5dTqVLj\nt3O0dJbceh0v+3yStHQ/c48Pj3HnR79MfKT9SrlrER3cd8jUhPqgPnvoPUr2eOYPG/9CZh4hLbuB\nqbvdqbChua8Jx8vlyuzdqTJpVkLYSeKhGvOwaRXcT2XHdtTA5BAMR1lghAlhe+u30MQEUDLV/13O\nHo7daVkmZA+EsHJJKr/4OgDZ697iWm13qzgTmQC49DglYWK2MZErOHUvpqhw/tQPtj+gkCJF0BXr\nAc0G+tXeIUfHIggBP7VuhsStamO1Uft1TXdqt31lQAUsn8fYCKTb6O4lu8rEcGHEnoNqYrJlmZXz\nyNAYp9O+HVfKOCz6lAlcAbOp458TxJ1uQWc4dqdlmVAkRlkaiEKKzKmvcdrax0233tnR5+gEk7EA\ncwxTMXyQXyNlxBna4b5HLYdPKNkjdbpOcM8nSVruyzKDjg7uOyTo87BvKMjZpXW45yOw9CKc/cv6\nv5CuCe4uyDKgyiGX5Db+6TbS1oTdmJ/qEA+alPCqwRpAZWSKfMnacaWMw3pYDZFeF81rp53M3dHa\ns0LVvHdaJgj6vKQJEc5ME53/Kf9P3sW9U70ZsdaIPfEgEoO0PbhjhaFdbaY6xEfGeck4RHj+ySvv\ntCwopFmzggRclmUGHR3cd8HURISzCxm4+R0Q3Qs//u/1D3bResAhFjCZa2AeZtkdg81KCDtJ0PRg\negTrXvWc6YjyKN+zwwYmB2tY/b4jsTTCb2fuBY86Nk24ek6dxDAEacJct/IDDCwuJd5wVZVAOgyH\nTHxeg0VTWRssytiuatxrWRi+jeO5p7Ge+sLmK9liGpCsWkGdubuMDu67YGo8wvnFDBXhhVf/Y3jp\nB3D5me0PTs1SEj48oVHXtFflDOnY/l4Z3KUd3P0ulogJIYgHTdIeFdyXgocBdqW5A/gmjwOQa8H8\nLGBn7nnbftXpVu3GBl9WhPDKItPWOEduvrvjj98JhBAkYgFmhNLd58rRXdW41zJ/ywf5hTyE8ciH\n4DNvgtmT6o4a/3ytubuLfrV3wdREhELZYmY1B696vxrO/OPf2/7g1CwrnjHGYu5IMqDKIRcKJnj8\n2wZ3YRs5+aLudu7FgiZJoeSiGY+SBHYb3IcPqHLIQgte3U7mnq9m7iEMAT5P59/+Ofs5vmXdxX03\ntDGQvcskYgHOVdT5zVsxhtvQ3AH2Hbmedxb/Lc/d+buwegE+dT98/aPqZ2DNcmdQh2YDd/uB+wSn\nYubsYpqDN0zCbe9RZZHH3gTmFplh4XkWcWcz1SEa8HI5mYfwOFx+Gl74xqb7h5O/oCg9BIPussF/\nogAAEJJJREFUlujFgyYrGRXcz8q9CJFlYpf7EIlDtjtkCxYKjuaetSfyqECT6cqVVN6IQgWeCLyG\nhyZ7N6ihGYl4gBdWlRHekoxxtM3MfWoiisTg0fAbufkjvwrf/114/H/ByS8A7o3Y02ygg/suuG5c\nBYlzC+u87gbg7n8CT34avvrr2x5/1nijKw1MDrGASSpXgn1H4KVH1Z8ajgHTTHDQZQ00HjQ5n9nL\nfeFxzuTjjEcqmLvMnoPhKOc8R8jHDjc91vQYeAzBkm8vBOKsWiGCvib9CbtkxZfgQmGSiRvvuepK\nIGtJxAN8a30S6TM5J/fyqjY193jQJBELcGY+A4EpeOA/qqTnW7+NvPgYM3JMyzIuo4P7LhgO+xgN\n+9SmKsDwIfjIU5BbueJYKSX/6pMXeK9LlTKgMvdUvgTv+mL1sriWhx89xx+8UKFO4VrXiAdNPi/f\nwj/4yMe5/KUzu5ZkHPb91g85ZLYWlPxeg58Nv4UH/s5DrD9ykaCvO4HmkbF/xMeW38p/uj7Rlcfv\nFIlYgEvlYb779kf5/h+/xENtZu4AxxNRTs/XNDJN3gTv+zqzM5e4+HvP6szdZXRw3yXXTUQ4u1gz\nUm3ogPqzhWS2yHplxvXMPV+yKHqj+Pa88or7f5jJExkuunY+DvGgyUpeQnCYuWSOw6PtWcAGQq3L\nSn6vQb4iIDhMtni+a/qvPxAiZ4SvyhLIWpwv1qdXvIDY8aCO7Tg+EeHz55epWHKj21UIsqbauNfB\n3V1aSl+EEA8IIV4UQpwVQnxsm/t/TQjxjBDiWSHEj4QQV0aUPsMph2w2LHspo9r/3apxhw1/mXS+\ndMV9FUty6tIatx9y3wY1HjRJ5UtYluRyMr/rBqbdEDA95EsVQLliBrtkP/vuuw7y8b9501VZAlmL\nE9yfv6w219upc3c4PhmlULaYXtk8ajBfUqWRekPVXZoGdyGEB/gk8GbgJuDdQoibthz2EvBaKeUt\nwH8APtXpE73amBqPkMyVWMo0zoAX0iq4u2E94OD4y6Tz5SvuO7eYIVMoc/tB953y4kETKdVrks6X\nmXQxuPu9BoWyCjK5UoVgl/TfX7pulPf+0uGuPHYn2VMN7kpGGeqALHPM9tDZJM2gXm/QmbvbtPIO\nvws4K6U8L6UsAl8GNnmYSil/JKV0JhT8BNjf2dO8+nAqZs4tXjntvhYn+LtZLeP4y6S2ydxPTqv/\nptt6ENydK4oX5lS26Gbm7vd6KJTtzL1YGfgscjzixxAws5Yj5PPg78Dm+jG7OujMluCerwZ3vaHq\nJq282vuASzX/ftm+rR6/DnyrnZO6FqiWQy40Ce7VzN3dDVWAVO7KzP2pi2sMhUwOj4ZcOx8Hp0P3\nxTn14U/EdteduhsCplGVB3KlCiGXpwJdbXg9RlUq7IQkA2qE376hIKfnN38m8jpz7wkd/SoVQtyP\nCu7/vM79DwkhnhRCPLm4WH9487XAnniAkM/TPLhnCngN4Zr1ADTW3E9eWuW2A0M9KdOrBnc7s2u3\nWmYnbM3cdaCharfcCUnG4fhkRMsyVwmtBPcZoLYMZL992yaEELcCvw88KKVc3u6BpJSfklLeIaW8\nY3z82vZYFkJw3XikBVmmwFjEv+OBFO1Qzdy3BPdUvsSZhUxPJBnYLnN3MbibWzT3LpVCXks4X66d\nytxBbaqeX1ynXNnwlynYV0xalnGXVl7tJ4BjQogjQggf8C7gkdoDhBAHgT8B3iOlPN3507w6qRqI\nNWAxXWAs6t5mKtRm7ptlmWcuJZESbjvYm4nsTnA/s5BhKGS6OrzB7/VsyDJFLctAdzL3Y5NRihWL\nC8sbFTN5+4pp0Pc53KZpcJdSloEPA38BPA98RUr5nBDig0KID9qHfRwYBf6HEOKUEGIb78/+Y2oi\nwuVknkzhSm3bYSlTdFVvB4j4vAiB6lKt4eT0KkLAKw/0NrgXy5arWTs4mXsFKSW5kpZlABK2I2cn\natwdrt9mUzVX1LJML2jpOklK+U0p5XEp5XVSyk/Ytz0spXzY/vkfSimHpZQn7D93dPOkrxYcG4Lz\ndaSZhXSeF+ZSHJtw18PFMAQRv5fUlsz95KU1jk1EqtU0bhPyefDa8pSbejtAwOuhULJ0zXUNibhK\nOtq1+61lakINs6ndVM1XZRn9mruJFsHaoFnFzBd/Mk3Zkvzqqw+5eVqA7S9To7lLKTk5vcptB3qj\nt8OG7S+4WwYJG5m7s7nX6SlM1yJOtVK7dr+1BH0eDgyHOL1Qk7mXKvhsfx+Ne+jg3gaHRkN4DbFt\ncC+UK3zx8Wnuv36CI2PttdnvhmjAu6kU8sJyltVsqWd6u4MT3N0sgwS7ialkkS2q10Rn7nBkLIzp\nEW3bQGzl+GSE03MbwT1fquDXm6muo3eV2sD0GBwaDW0b3L/xzGWWMgXef89h908MtalaWwrZy+al\nWpzNXkcScIuA6SFfrlRrrt3czL1aScQD/Ohjr+949/TxySjff3GRYtnC51VXTPrL1H3012mbTG01\nEENJIJ997AJTExF++dhYT84rFtisuZ+cXiPi91alpF5Rzdx3OV5vt/i9BqWKJFPQlRu1jEf9He95\nOD4ZpWxJLiyvA7qvoFfo4N4mUxMRLi5nKZY36nqfml7l2Zkk77vncM88vWOBLZn7pVVOHBjque7Z\nM83dbq9fyyo7CJ25d4+tHjP5kqVr3HuAfsXbZGoiQsWSTK+sV2/7zGMXiAa8vPP2Ri4N3SUWNKul\nkNlimecvp3uut8NGcJ90uRTSCS5rWfWa6ODePa4bj2DUVMzktSzTE3Rwb5OpcVXX6+jul5M5vv3z\nOd5154GeNspEA17ShTKWJXn25SQVS14Vwf3EgSFOHBgiFnD3tbkic9fBpmsETA+HRsPVTdVcsVKd\nY6txD72h2iZHx1WlgRPcP//ji0gpe277Ggsoe931YpmTl9YAONHDMkiHd75qP+98lfumoc4c1VUn\nc9fBpqscn4xUyyHzZctVbyWNQmfubRL2e9kbD3B2IUO+VOFLP53mDTdOcmDEfdfFWjb8ZcqcnF7l\n8Gioo52I1xrOhp6Tues69+5yfDLKxeUshXKFfLF7/vma+uhXvAM4I/f+7NQMq9kSH7j3SK9PqVpy\nmMqVeGp6reclkL3GydzX7H2IgA7uXeXYZJSKJTm/uE6+rKtleoEO7h1gaiLCuYV1PvvYBW5IRLn7\n6EivT6maub84l2YxXeD2q0Bv7yVOE42WZdzheE3FTL5UIdCBYSCanaGDeweYmoiQK1V4YS7NB+7t\nXfljLY5/zKOnlW/+oGfutbKM6RGYHv3W7yZHxsJ4DMHp+bSafKWvlFxHv8M7wJRtIDYcMnnwRO/K\nH2txZJkfnF4kYBpcn4j2+Ix6S1WWyZa0ROACfq+HI2NhTs9nyJctbT/QA/Qr3gGOTUbxGoJfe/Wh\nqyZwOLLM8nqRW/cNDXym6pRCrmaLWpJxieOTEV6cS1MsW/o17wG6FLIDjIR9fOM3frlaFnk1EK2p\nI78a6tt7jdPElM6XGR3gqiE3OTYR5ZvPzgHa7rcXDHY610GuT0SvquzY7/VUpQgd3Dcyd9CBxi2O\nT25IgQHv1fPZGBT0K97HOLr7oG+mwobmDtp6wC2uT2yY1OnX3H20LNPHRANefB7DdR+Xq5HabF03\nMLnDoVHlF1+qSH211AN0cO9j7rlulGiPRupdbfhqM3cdaFzB9BgcHYvw4nx6kyymcQcd3PuY33n7\nLb0+hasGjyF0FtkDjk2q4K5lGffRmrtmYHC6JLUs4x7OpqreUHUf/YprBgankUbLMu5xy/44AKMd\nHuWnaY4O7pqBwdF9gz302R807js+zrc/+stMTQx2h3Qv0MFdMzDozN19hBDckIj1+jQGEh3cNQPD\nRuau3/aa/ke/yzUDg2NBoGUZzSCgg7tmYHC6VLUsoxkEdHDXDAxVWUYHd80AoIO7ZmBwZBld564Z\nBHRw1wwMTuauO1Q1g4AO7pqBoaq568xdMwDo4K4ZGJyMXcsymkGgpeAuhHhACPGiEOKsEOJj29wv\nhBD/zb7/GSHE7Z0/VY2mPXS1jGaQaBrchRAe4JPAm4GbgHcLIW7actibgWP2n4eA/9nh89Ro2sbp\nUNWau2YQaCVzvws4K6U8L6UsAl8GHtxyzIPA/5WKnwBDQog9HT5XjaYtAtUOVR3cNf1PK616+4BL\nNf9+GXh1C8fsAy63dXYaTQd56617MAxBxK87VDX9j6sbqkKIh4QQTwohnlxcXHTzqTUajo5H+ND9\nU70+DY3GFVoJ7jPAgZp/77dv2+kxSCk/JaW8Q0p5x/j4+E7PVaPRaDQt0kpwfwI4JoQ4IoTwAe8C\nHtlyzCPAe+2qmbuBpJRSSzIajUbTI5qKj1LKshDiw8BfAB7gM1LK54QQH7Tvfxj4JvAW4CyQBT7Q\nvVPWaDQaTTNa2lmSUn4TFcBrb3u45mcJfKizp6bRaDSa3aI7VDUajaYP0cFdo9Fo+hAd3DUajaYP\n0cFdo9Fo+hCh9kJ78MRCLAIXd/nrY8BSB0/nWmJQ167XPVjoddfnkJSyaaNQz4J7OwghnpRS3tHr\n8+gFg7p2ve7BQq+7fbQso9FoNH2IDu4ajUbTh1yrwf1TvT6BHjKoa9frHiz0utvkmtTcNRqNRtOY\nazVz12g0Gk0Drrng3myea78ghPiMEGJBCPHzmttGhBDfEUKcsf8e7uU5dgMhxAEhxPeEEL8QQjwn\nhPhN+/a+XrsQIiCE+KkQ4ml73f/Ovr2v1+0ghPAIIU4KIf7c/nffr1sIcUEI8awQ4pQQ4kn7to6t\n+5oK7i3Oc+0X/g/wwJbbPgZ8V0p5DPiu/e9+owz8lpTyJuBu4EP2/3G/r70AvE5K+UrgBPCAbZ/d\n7+t2+E3g+Zp/D8q675dSnqgpf+zYuq+p4E5r81z7AinlD4CVLTc/CHzO/vlzwNtdPSkXkFJellI+\nZf+cRn3g99Hna7fnD2fsf5r2H0mfrxtACLEfeCvw+zU39/2669CxdV9rwb3erNZBYbJmCMocMNnL\nk+k2QojDwG3A4wzA2m1p4hSwAHxHSjkQ6wb+C/DbgFVz2yCsWwJ/KYT4mRDiIfu2jq1bTwq+RpFS\nSiFE35Y6CSEiwFeBj0opU0KI6n39unYpZQU4IYQYAr4mhHjFlvv7bt1CiF8BFqSUPxNC3LfdMf24\nbpvXSClnhBATwHeEEC/U3tnuuq+1zL2lWa19zLwQYg+A/fdCj8+nKwghTFRg/6KU8k/smwdi7QBS\nyjXge6g9l35f973A24QQF1Ay6+uEEF+g/9eNlHLG/nsB+BpKdu7Yuq+14N7KPNd+5hHgffbP7wP+\nrIfn0hWEStE/DTwvpfzPNXf19dqFEON2xo4QIgi8EXiBPl+3lPJfSCn3SykPoz7PfyWl/Pv0+bqF\nEGEhRNT5GXgT8HM6uO5rrolJCPEWlEbnzHP9RI9PqSsIIb4E3IdyiZsH/g3wp8BXgIMoR82/K6Xc\nuul6TSOEeA3w18CzbGiw/xKlu/ft2oUQt6I20DyopOsrUsp/L4QYpY/XXYsty/wzKeWv9Pu6hRBH\nUdk6KHn8D6SUn+jkuq+54K7RaDSa5lxrsoxGo9FoWkAHd41Go+lDdHDXaDSaPkQHd41Go+lDdHDX\naDSaPkQHd41Go+lDdHDXaDSaPkQHd41Go+lD/j86wfh3sIRUqQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc7a7f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from alphamind.data.winsorize import winsorize_normal\n",
    "\n",
    "# 假设有50只股票，每只股票有1个因子，构成一个矩阵\n",
    "factors = np.random.rand(50, 1)\n",
    "\n",
    "# 为了展示方便，取一个标准差为上下界\n",
    "clean_factors = winsorize_normal(factors, num_stds=1)\n",
    "\n",
    "%matplotlib inline\n",
    "plt.plot(factors)\n",
    "plt.plot(clean_factors)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 分行业处理\n",
    "有时候需要进行分组去极值化，如按行业来分组。针对这种情况，只需要多传递一个分组参数给*winsorize_normal*。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xd354940>]"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd354c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 假设所有股票可分为2个组别（如行业），前25个和后25个分属不同类别\n",
    "industry = np.concatenate([np.array([1.0]*25), np.array([2.0]*25)])\n",
    "\n",
    "# 此时令前25个因子和后25个因子的标准差不一样\n",
    "factors =  np.concatenate([ 10*np.random.rand(25, 1),  np.random.rand(25, 1)])\n",
    "\n",
    "# 为了展示方便，取一个标准差为上下界\n",
    "clean_factors = winsorize_normal(factors, num_stds=1, groups=industry)\n",
    "\n",
    "%matplotlib inline\n",
    "plt.plot(factors)\n",
    "plt.plot(clean_factors)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 标准化处理\n",
    "标准化函数的使用与去极值化类似,故不再重复，下文仅展示分组进行标准化处理的例子。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xd3fcb70>]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd2e2cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from alphamind.data.standardize import standardize\n",
    "\n",
    "# 假设所有股票可分为2个组别（如行业），前25个和后25个分属不同类别\n",
    "industry = np.concatenate([np.array([1.0]*25), np.array([2.0]*25)])\n",
    "\n",
    "# 此时令前25个因子和后25个因子的标准差不一样\n",
    "factors =  np.concatenate([ 10*np.random.rand(25, 1),  np.random.rand(25, 1)])\n",
    "\n",
    "# 为了展示方便，取一个标准差为上下界\n",
    "clean_factors = standardize(factors, groups=industry)\n",
    "\n",
    "%matplotlib inline\n",
    "plt.plot(factors)\n",
    "plt.plot(clean_factors)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "另外还提供了类似sklearn风格的算子*Standardizer*和*GroupedStandardizer*，使用*fit,transform*方法可以得到同样的效果。具体请参见sklearn相关的帮助以及本项目代码。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 中性化处理\n",
    "#### 风险（风格）中性化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "from alphamind.data.neutralize import neutralize\n",
    "\n",
    "# 假设有30只股票，每只股票有10个因子，构成一个矩阵\n",
    "raw_factors = np.random.rand(30, 10)\n",
    "\n",
    "# 假设每只股票对应有4个风险因子，构成一个矩阵\n",
    "risk_factors = np.random.rand(30, 4)\n",
    "\n",
    "# 因子的风险中性化，就是原始因子对风险因子求线性回归后的残差\n",
    "ret_neutralize_1 = neutralize(risk_factors, raw_factors)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 风险以及行业中性化\n",
    "生成环境中一般还需要进行行业中性化，对于*neutralize*来说只需要增加一个入参，把每只股票对应的行业标签以np数组传递进去。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 假设所有股票可分为3个组别（如行业）\n",
    "industry = np.random.randint(3, size=30)\n",
    "\n",
    "# 对因子进行风险和行业中性化\n",
    "ret_neutralize_2 = neutralize(risk_factors, raw_factors, industry)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 如果令所有行业都是一样，那么将得到与 ret_neutralize_1一样的结果\n",
    "industry = np.random.randint(1, size=30)\n",
    "ret_neutralize_3 = neutralize(risk_factors, raw_factors, industry)\n",
    "# print(ret_neutralize_1)\n",
    "\n",
    "# print(ret_neutralize_3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 仅行业中性\n",
    "如果只想进行行业中性化处理，那么可以令风险因子（*neutralize*的第一个入参）为全部元素为1的矩阵。下面进行一个简单测试。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 0.]\n",
      " [ 0.]\n",
      " [ 0.]\n",
      " [ 0.]\n",
      " [ 0.]\n",
      " [-2.]\n",
      " [-1.]\n",
      " [ 0.]\n",
      " [ 1.]\n",
      " [ 2.]]\n"
     ]
    }
   ],
   "source": [
    "# 假设有10只股票，每只股票有1个因子\n",
    "factor = np.array([1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0])\n",
    "\n",
    "# 假设所有股票可分为2个行业，前5和后5 分属于不同行业\n",
    "industry = np.array([1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0])\n",
    "\n",
    "risk_factors = np.ones((10, 1))\n",
    "\n",
    "ret_neutralize_4 = neutralize(risk_factors, factor, industry)\n",
    "\n",
    "print(ret_neutralize_4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "行业中性化后的因子为原始因子减去行业内平均值，结果与预期一样。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 预处理合成函数\n",
    "alpha-mind 还提供了一个预处理函数*factor_processing*, 集成了以上描述函数的所有功能，可以一步进行因子数据的预处理功能。\n",
    "- 入参*pre_process*需传递预处理的子函数列表，如去极值化和标准化。如果传递了风险因子的参数，中性化函数会在预处理之后自动触发。\n",
    "- 入参*post_process*指的是在中性化处理（如果有的话）或*pre_process*完成之后，还需要进行的处理。同样可以将去极值化和标准化函数作为列表传递进去。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "from alphamind.data.processing import factor_processing\n",
    "from alphamind.data.standardize import standardize\n",
    "\n",
    "# 假设有30只股票，每只股票有10个因子，构成一个矩阵\n",
    "raw_factors = np.random.rand(30, 10)\n",
    "\n",
    "# 假设每只股票对应有4个风险因子，构成一个矩阵\n",
    "risk_factors = np.random.rand(30, 4)\n",
    "\n",
    "# 假设所有股票可分为3个组别（如行业）\n",
    "industry = np.random.randint(3, size=30)\n",
    "\n",
    "ret_preprocess = factor_processing(raw_factors,\n",
    "                                   pre_process=[winsorize_normal, standardize],\n",
    "                                   risk_factors=risk_factors,\n",
    "                                   groups=industry)\n"
   ]
  }
 ],
 "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.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
