Last active
April 15, 2017 13:29
-
-
Save ypwhs/ce57ba23d1368e742a885a9d99b2fb0c to your computer and use it in GitHub Desktop.
鼠标轨迹可视化
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import cv2\n", | |
"\n", | |
"%matplotlib inline\n", | |
"%config InlineBackend.figure_format = 'retina'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nKbluYYv0mdfae9sm1y1o0T5zrd3bNrmOfaHkOrluipLrelmk37zeynV9LNpnrrNvKtlumFprpgWm\nJOck+S9JWpI/SvJrSd7b/fypJN+66jbu8PkfTXJrkpdMmV4wZfunJflaktuT/J9JfqPrp5bkrTMe\n4/Ju/U1JfifJK5P8fbfsFavug0365i+7Nn41ybXdv9+8yfa70jdJXtGt//tu+99JcnO37PK90mdJ\nDnTr/3LG9XfZMs4/SSV569jf9G90v5/bu9/X01bcZ8/p2vYPSf7vJP82ye93f5ctyduSlGutf5+5\n1u5t3z1J/qLrq19L8pokH+na+/kk/8h1ZtrrU/Z5ruv64Ghku2ltlut2sM/itXajfXLdDveZa+3e\n9sl1prWfItclct2sfpHrdrjf4vU2ket2vM9cZ/dpo2w3wGnlDdhrU5I/7S6On51Y/lvd8tevuo07\nfP5Hkxydc9sHJPlikruTXDi2/JQkh7v+eubEPgeS3NX9ER4YW35mks90+zxu1f0w43wvTvLI7gn5\nidk8hOxK3yQ51C3/TJIzJ451c3e8A9s5713sswPd+jcucPyFzz/JP+v2uSbJKWPLv6f7fX0xyf1X\n2GdPSvLUJCdMLH9okr/r2v5jrrVt9ZlrrbtGZix/Wdfu17nOTHt9yj7Pdd25Ho1sN+1c5bqd7bMD\n8VqbyHW70WeutSbXmfbHFLkuketmnatct/P9diD7/PU2ct1u9Nm+v87Gr5MZy2W7Vf5eVt2AvTRl\n9C65luSGKU8C98/onQF3JDl91W3dwT44mvmD2092/fUHU9Y9qVv3gYnlv9Itf+kixxvalK1DyK70\nTZL/q1v+7Cn7zDzeQPuszwvqwuef5Opu+cWLHG8IU5IXdu17jWttW33mWtv8XL+7a9tVrjPTXp4i\n122c69HIdlud9xMj1y27z7zWbn2+ct1y+sy1tvm5ynWmtZgi122c69HIdVud9xMj1+1Ev3m93fxc\n5brl9JnrbOvzle1WOPnO1sVc3M3f3Vr7xviK1tpXM3q3w2lJHrvbDdtlJ1fVj1fVC6vqf6uqi2d8\ntveTuvmfTFl3dZJjSQ5V1clz7vOuiW32st3qm3Xsz2+rqn/ZXX//sqq+a5NtFzr/qjolo3fhHEvy\nwXn2GZj/2s2/NrbMtba5aX22wbU23VO7+SfGlrnO2Ivkum+S7bbHc2B/Xmtnk+sWJ9ctTq5jXch1\n3yTXbY/nwO3xejudXLc4ua4f2W6FTlp1A/aYg938+hnrP53k0iTnJnnPrrRoNR6a5E0Ty26oqme3\n1j4wtmxmf7XWvlZVNyR5VJJHZPTZ/1vtc2NV3ZHk7Ko6rbV2bDsnsWI73jdVdXqSb09ye2vtxilt\n+HQ3P3cb57EKP9BN96qq9yd5Vmvt78aW9Tn/c5KcmORvW2vTXswH22dVdVKSn+h+HH9Rc63NsEmf\nbXCtJamqFyT5liRnJLkwyX+fUWj7tbHNXGfsRXLdN8l22+M5sD+vtVPIdYuT6+Yj17HG5Lpvkuu2\nx3Pg9ni9nSDXLU6um59sNyxGti7mjG5+24z1G8sfuAttWZU3JHlyRuHt9CSPTvLvMxrG/66q+u6x\nbfv017z7nDFj/V6xG32zbtfrsST/R5ILMvp8+DOTfH+S92X0cSbv6Z7YN+xkHw+xz34tyXcmeWdr\n7U/HlrvWZpvVZ661+3pBkn+T5HkZhbY/SXJpa+1LY9u4ztiLXFMjst32eQ5cnNfazcl1i5Pr5iPX\nsa5cUyNy3fZ5DuzH6+1sct3i5Lr5yXYDotjKQlprL22tvbe19l9aa8daa59srT0nyW8lOTXJS1bb\nQtZVa+2LrbX/vbX2sdbard10dUbvTv1wkn+S5J+vtpWrUVU/l+SKJJ9K8r+suDl7wmZ95lq7r9ba\nQ1trldF/2P+njN7p9vGqOn+1LQOWQbZjFbzWzibXLU6um59cB+tNrmNVvN5OJ9ctTq5bjGw3LIqt\ni9nqHVoby2/dhbYMzeu7+RPGlvXpr3n3mfUuib1iN/pmX1yv3Uc6/Ifux926/gbTZ1V1eZLfTvLX\nGX1x+y0Tm7jWJszRZ1Pt92ut+w/72zMKsd+a0Rffb3CdsRe5pjYn283Pc+CS7PfXWrlucXJdP3Id\na8g1tTm5bn6eA5doP7/eynWLk+v6k+2GQbF1Mdd181mfLf3Ibj7rOyLW2cbQ9PGh+jP7q/vs9Ydn\n9CXXfzvnPmd1x//cHv7uhw073jettTuSfD7Jt3TrJ63T9Xrc9dfz/P8mydeTPKL7Pcyzz8pU1fOS\nvCbJJzMKIV+YsplrbcycfbaZfXmtjWutfTaj4PuoqvpvusWuM/YiuW5zst38PAcu1758rZXrFifX\nbZ9cxxqR6zYn183Pc+Dy7bvXW7lucXLdcsh2q6XYupj3dfNLq+o+fVdV909yUUafHf4Xu92wAXhs\nNx//o3xvN//BKds/IclpSQ631u6ec58fmthmL9utvtkv/Tnt+ksWPP/W2l1JDmfU/4+fZ59Vqapf\nTPLKJH+d7ZKpAAAgAElEQVSZUQj54oxNXWudBfpsM/vuWpvh27r517u564y9SK7bnGw3P8+By7Xv\nXmvlusXJdUsl17EO5LrNyXXz8xy4fPvq9VauW5xct3Sy3aq01kwLTEn+NElL8rMTy3+rW/76Vbdx\nB8/9vCSnT1l+IMmnu/N/4djyB2T0rpK7k1w4tvyUjJ60WpJnThzr4UnuSnJzkgNjy89M8plun8et\nui/m6Ksndm1984z1u9I3SQ51yz+T5MyJ39nN3fEObOdcd7HPzk9ywpTlT+7OoyU5tN3zT/LPun2u\nSXLK2PLv6X5fX0zygBX31S93bfxokgdtsa1rbfE+2/fXWkbvXDtjyvITkrxso92uM9Nen7KPc113\nnrLdfP30xMh1y+6zff9aO9YWuW5n+2zfX2uR60z7ZIpcJ9fN109PjFy3E/22719vu3bIdTvbZ66z\nJtsNearuhJlTVZ2T0UX4kCR/nOTaJN+X5OKMhkEfaq3dvLoW7pyqeklGX1B9dZLPJvlqknOS/HBG\nf5zvTPKjrbV7xvZ5epK3ZfTHdGWSW5L8SJKD3fL/uU1chFX1s0lendEf4VuS3JPksiRnJ/nN1toL\nduwkt6E716d3Pz40yf+Q0btpPtgtu2m87bvVN1X1m0l+PsnnuuPeL8kzMvr89p9trb12u+fe1yJ9\nVlXvz+gjBw5ndC5J8l1JntT9+5dba7865TEWOv+qqiT/b0b9+qkk7+i2fUZG1/mPtdb+eDvnvR1V\n9awkb8zo3UmvyfTvQjnaWnvj2D77+lpbtM9ca/d+fMu/TfLnSW7I6Dr4b5N8f5JHJPlCkie31v56\nbJ99fZ2xN+3nXJfIdpuR6xYn1y1OrlucXLc4uY79Qq6T62aR6/qR7RYj1y1OrutHthuwVVd79+KU\n5B8leUOSGzO6yD6b5FUZq9iv45TRH+z/k9GTzK1J/mtG74q4KslPJKPi/ZT9Lsoo1H05yZ1J/irJ\n85OcuMljPTXJBzIKh3ck+UiSZ626D7bon5dk9O6NWdPRVfVNkv+12+6Obr8PJHnKXuqzJD+V5D8m\nOZrk9ozejfN3GT3ZP36Z55/kpO738Ffd7+XL3e/p0DLOe4f7rCV5v2utf5+51lqSfGeS12b0ES43\n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\nOzI2VXVWVf1Bf/y9ff3Tx/Z1qwwZs6rav8Hca1V1xQbPM6j/VXV4VZ3bvx7f7l+fa6rqwFb0ezOq\n6qlV9YtV9b6quq1v371V9fGqen1Vrft3fZXn2tAxM9cebdu/r6qPVNWfT7Ttj6rq16rqqTPqrOw8\nY3nVCsd1idhulhLXDTZkzLzXPto2cd1AQ8fMXHu0beI6AADYRtVaW3QblkpVPSvJjUm+N8kHknwh\nyd9LclqSLyZ5cWvtrsW1cHtV1cEkT07yznXuvq+1duHU8T+V5H8meTDJlUnuTvLKJCcmuaq19jPr\nPMfZSS5Ocldf5+EkZyQ5PslFrbXzt6o/W6mq/jjJDya5L8lXkzw3yX9vrf3cjON3ZGyq6sIk5/Vt\nuirJE5KcmeQpSc5prV0yvtebM2TMqmp/ktuT/EmS96/zcJ9vrV21Tr1B/a+qSvLedOP6xSRX98e+\nJsm+JK9urX1geG+3RlW9IcnvJLkjybVJvpLk+5L8dJJj0s2pn2kTf9xXfa4NHTNz7dH2PZzkM0lu\nTnJnkqOTvDDJKUn+IskLW2t/PnH8Ss8zltOqx3WJ2G4Wcd1w4rrhxHXDievGEdcBAMA2a60pA0qS\nDydp6QL/yf3v6Pdfuug2bnP/DyY5OOexT0r3Qe6hJKdM7N+X7sRmS3LmVJ396T7Q3ZVk/8T+Y5Pc\n1td50aLHYUZ/T0vy7CSV5NS+rZcvcmySHOj335bk2KnHuqt/vP2b6fcOjtn+/v7LBjz+4P4n+dm+\nzieS7JvY/8P963Vnku9Z4Ji9LN2JjsOm9h+X7mRTS3cyx1wbP2bmWj9HZux/e9/u/2SeKctesuJx\nXd/XgxHbrddXcd32jtn+eK9NxHU7MWbmWhPXKYqiKIqiKMp2Fz8jPEC/+uEV6U5K/fbU3b+W5P4k\nP19VR+9w03arM5I8LckVrbVPr+1srT2Y5IL+5i9P1fmFJEcmuaS1dnCizjeT/EZ/8w3b1eDNaK1d\n21q7tbXW5jh8p8Zm7fbb++PW6hxMN4ePTPK6Odq7LQaO2Rhj+r827hf0r8danT9M9w3tp6V7/Rai\ntfbR1trVrbW/ntr/9SSX9jdPnbhr5efaiDEbYy/OtQdn3PXefvvsiX0rP89YPuK6UVYmthPXDSeu\nG05cN5y4bhxxHQAAbC/J1mFO67f/a50Pd3+Z7lusR6X7OZ697Miq+rmqektV/cuqOm3GdVte1m8/\ntM59NyR5IMmBqjpyzjofnDpmme3U2OzF8XxGVf1SP/9+qapesMGxg/pfVfvSfcP6gSQfm6fOLvNX\n/drb1BgAAAeBSURBVPaRiX3m2sbWG7M15tr6XtlvPzuxzzxjGYnrvktstzn+Bo7nvXY2cd1w4rrh\nxHUAALAFjlh0A5bMif32T2fcf2u6FRLPSfKRHWnRYhyX5D1T+26vqte11q6f2DdzvFprj1TV7Ume\nl+SEJLfMUeeOqro/yfFVdVRr7YHNdGLBtn1s+pU435/uemt3rNOGW/vtczbRj0X40b48qqquS3JW\na+0rE/vG9P9ZSQ5P8qXW2nonaXbtmFXVEUle29+cPGFhrs2wwZitMdeSVNX5SZ6Y7jpopyT5B+lO\nyP3mxGHmGctIXPddYrvN8TdwPO+16xDXDSeum4+4DgAAtoeVrcMc02/vnXH/2v4n70BbFuXdSV6e\n7qTc0Ul+IMnvpruuyger6gcnjh0zXvPWOWbG/ctiJ8Zmr83XB5L82yQnp7v2z7FJXprk2nQ/FfaR\nqZ963M4x3o1j9ptJnp/kmtbahyf2m2uzzRozc+2xzk/3k6pvSndC7kNJXtFa+38Tx5hnLCNzqiO2\n2zx/A4fzXrsxcd1w4rr5iOsAAGAbSLYySGvt3/TXyfm/rbUHWmufb629Ick7kvyNJG9bbAvZq1pr\nd7bW/nVr7TOttXv6ckO6VUefSvK3k/ziYlu5GFX1L5Kcl+QLSX5+wc1ZChuNmbn2WK2141prlS4R\n89PpVjH8UVWdtNiWAVtBbMcieK+dTVw3nLhufuI6AADYHpKtwxzqm/dr++/ZgbbsNpf225dM7Bsz\nXvPWmfUN2GWxE2OzEvO1/6mu/9Lf3Kn5t2vGrKrOTvIfk9yc5LTW2t1Th5hrU+YYs3Wt+lzrEzHv\nS3dy8qlJ/tvE3eYZy8ic2pjYbn7+Bm6RVX+vFdcNJ64bR1wHAABbS7J1mC/221nXDXl2v5117a+9\nbO1nhyZ/gmnmePXX1HlmkkeSfGnOOk/vH/+rS3xNrzXbPjattfuTfC3JE/v7p+2l+fq4+Tey/3+W\n5DtJTuhfh3nqLExVvSnJxUk+n+7k0tfXOcxcmzDnmG1kJefapNbal9Od0HxeVf3Nfrd5xjIS121M\nbDc/fwO31kq+14rrhhPXbZ64DgAAtoZk6zDX9ttXVNVjxq6qvifJi9NdE+b/7HTDdoEX9tvJD1wf\n7bc/ts7xL0lyVJIbW2sPzVnnx6eOWWY7NTarMp7rzb9kYP9baw8muTHd+P/IPHUWpar+VZLfSvLH\n6U4u3TnjUHOtN2DMNrJyc22GZ/Tb7/Rb84xlJK7bmNhufv4Gbq2Ve68V1w0nrttS4joAANis1poy\noCT5cJKW5Jyp/e/o91+66DZuY9//TpKj19m/P8mtff/fMrH/Sem+LfxQklMm9u9L92G0JTlz6rGe\nmeTBJHcl2T+x/9gkt/V1XrTosZhjrE7t23r5jPt3ZGySHOj335bk2KnX7K7+8fZvpq87OGYnJTls\nnf0v7/vRkhzYbP+T/Gxf5xNJ9k3s/+H+9bozyZMWPFa/2rfx00mecohjzbXhY7bycy3dqoRj1tl/\nWJK3r7XbPFOWvWSF47q+n2K7+cbp1IjrtnrMVv69dqIt4rrtHbOVn2sR1ymKoiiKoijKtpdqrYX5\nVdWz0n3A+N4kH0hyS5K/n+S0dD9xc6C1dtfiWrh9quptSc5LckOSLyf5yyTPSvKP0n3wuibJP26t\nPTxR51VJrkr3QemKJHcn+ckkJ/b7/0mbmoRVdU6Sd6X7gHVlkoeTnJHk+CQXtdbO37ZObkLf11f1\nN49L8g/TfUv6Y/2+b0y2fafGpqouSvLmJF/tH/cJSV6T7to857TWLtls38caMmZVdV26n5O6MV1f\nkuQFSV7W//tXW2u/vs5zDOp/VVWS96Yb1y8kubo/9jXp5vmrW2sf2Ey/N6OqzkpyWbpvnl+c9a9x\nd7C1dtlEnZWea0PHzFx79Gf5/l2Sjye5Pd08+L4kL01yQpKvJ3l5a+3miTorPc9YTqsc1yViu42I\n64YT1w0nrhtOXDecuA4AAHbAorO9y1iS/K0k705yR7oPEF9O8s5MfBtzL5Z0H8b+R7oPj/ck+at0\n33j930lem3TJ+3XqvTjdybpvJvl2ks8lOTfJ4Rs81yuTXJ/upN/9Sf4wyVmLHoNDjM/b0n0zd1Y5\nuKixSfJP++Pu7+tdn+T0ZRqzJK9P8vtJDia5L903rb+S7oP8j2xl/5Mc0b8On+tfl2/2r9OBrej3\nNo9ZS3KduTZ+zMy1liTPT3JJup/m+0a663Ld2/ftbZmximSV55myvCUrGtf1fRfbzW7vod47Di5q\nXHbr38AhYxbvtfOOmbhuk2NmronrFEVRFEVRFGUnipWtAAAAAAAAACMctugGAAAAAAAAACwjyVYA\nAAAAAACAESRbAQAAAAAAAEaQbAUAAAAAAAAYQbIVAAAAAAAAYATJVgAAAAAAAIARJFsBAAAAAAAA\nRpBsBQAAAAAAABhBshUAAAAAAABgBMlWAAAAAAAAgBEkWwEAAAAAAABGkGwFAAAAAAAAGEGyFQAA\nAAAAAGAEyVYAAAAAAACAESRbAQAAAAAAAEaQbAUAAAAAAAAYQbIVAAAAAAAAYIT/D2ekYrNwN45N\nAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x10b9c7050>" | |
] | |
}, | |
"metadata": { | |
"image/png": { | |
"height": 245, | |
"width": 941 | |
} | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"with open('dsjtzs_txfz_training_sample.txt') as f:\n", | |
" d = f.read()\n", | |
"\n", | |
"def draw(data):\n", | |
" img = np.ones((1200,3400,3), np.uint8)*255\n", | |
" id, points, destination, label = data.split(' ')\n", | |
" p = np.array([map(int, x.split(',')) for x in points.split(';')[:-1]])\n", | |
" p[:,1] -= 2000\n", | |
" \n", | |
" for p1, p2 in zip(p[:-1], p[1:]):\n", | |
" cv2.line(img,(p1[0],p1[1]),(p2[0],p2[1]),(255,0,0), 16)\n", | |
" \n", | |
" d = map(int, map(float, destination.split(',')))\n", | |
" img = cv2.line(img, (d[0], 0), (d[0], 3400), (0,0,255), 32)\n", | |
" d[0] += 256\n", | |
" img = cv2.line(img, (d[0], 0), (d[0], 3400), (0,0,255), 32)\n", | |
" \n", | |
" if label == '1':\n", | |
" label = 'human'\n", | |
" else:\n", | |
" label = 'machine'\n", | |
" cv2.putText(img, label, (100, 200), cv2.FONT_HERSHEY_DUPLEX, 4,(0,0,0),8,cv2.LINE_AA)\n", | |
" cv2.imwrite('train_%s.png' % id, img)\n", | |
" return True\n", | |
"\n", | |
"map(draw, d.split('\\n')[:-1])\n", | |
"\n", | |
"plt.figure(figsize=(16, 4))\n", | |
"for i in range(5):\n", | |
" plt.subplot(2, 3, i+1)\n", | |
" img = cv2.imread('train_%d.png' % (i+1))[:,:,::-1]\n", | |
" plt.imshow(img)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB1sAAAHrCAYAAACJsPTbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAWJQAAFiUBSVIk8AAAIABJREFUeJzs3X2wLGd9H/jvT7plXSSDEI4JOErqghbJKsCOdZUYpA1I\nopa1YzB4UQKuclDwS4KD8IIl16YAb4TXOE5ZGCxhm5Q3Ro6UirTBZbtICYwLkIQRJuYSBxMuLzK6\nGGwRjIQuSAIR4Wf/mD7SaDRzzkyfOWfePp+qrr6np7vn6ef0mfnd+c7TXa21AAAAAAAAADCbExbd\nAAAAAAAAAIBVJGwFAAAAAAAA6EHYCgAAAAAAANCDsBUAAAAAAACgB2ErAAAAAAAAQA/CVgAAAAAA\nAIAehK0AAAAAAAAAPQhbAQAAAAAAAHoQtgIAAAAAAAD0IGwFAAAAAAAA6EHYCgAAAAAAANCDsBUA\nAAAAAACgB2ErAAAAAAAAQA/CVgAAAAAAAIAe1j5srarTq+o3q+ovq+r+qjpWVW+uqtMW3TYAAKan\nrgMAWB9qOwBgXVRrbdFt2DNVdUaSW5M8PsnvJflEkr+f5MIkn0xyfmvtzsW1EACAaajrAADWh9oO\nAFgn6z6y9dcyKNp+qrX2wtbav2ytXZTkTUnOSvKGhbYOAIBpqesAANaH2g4AWBtrO7K1+4bcbUmO\nJTmjtfbXQ489OskdSSrJ41tr9y6kkQAA7EhdBwCwPtR2AMC6WeeRrRd283cPF21J0lr7apIPJDk5\nyTP2u2EAAMxEXQcAsD7UdgDAWjmw6AbsobO6+acmPP7pJM9NcmaS92y3o6o6MuGhpyW5J4Nv4gEA\nTHIoyVdaa09adENWlLoOAFgWh6Ku26251HbqOgBglw5lTnXdOoetp3bz4xMe31r+2F08x4mPetSj\nHnf22Wc/bhf7gPn7yEceueycc/a/HZMse/sA5uzo0aM5ePCgeqE/dR0wu2WvOZe9fcBY6rq52Ova\nTl23KMv83rbMbQNgIeZZ161z2Do3rbXD45ZX1ZGzzz77nCNHJn2RDhak6pHLluk8Xfb2AczZ4cNj\nSwkWQF0HG2TZa85lbx8wlrpueajrltAyv7ctc9sAWIh51nXrfM/WrW/BnTrh8a3ld+9DWwAA6E9d\nBwCwPtR2AMBaWeew9ZPd/MwJjz+lm0+6PwQAAMtBXQcAsD7UdgDAWlnnsPV93fy5VfWw46yqRyc5\nP8l9Sf5ovxsGAMBM1HUAAOtDbQcArJW1DVtba3+W5N1JDiV5xcjDr09ySpJrW2v37nPTAACYgboO\nAGB9qO0AgHVzYNEN2GP/IsmtSa6qquckOZrke5NcmMGlSF67wLYBADA9dR0AwPpQ2wEAa2NtR7Ym\nD35T7twk12RQsF2W5Iwkv5LkGa21OxfXOgAApqWuAwBYH2o7AGCdrPvI1rTWPpfkZYtuBwAAu6Ou\nAwBYH2o7AGBdrPXIVgAAAAAAAIC9ImwFAAAAAAAA6EHYCgAAAAAAANCDsBUAAAAAAACgB2ErAAAA\nAAAAQA/CVgAAAAAAAIAehK0AAAAAAAAAPQhbAQAAAAAAAHoQtgIAAAAAAAD0IGwFAAAAAAAA6EHY\nCgAAAAAAANCDsBUAAAAAAACgB2ErAAAAAAAAQA/CVgAAAAAAAIAehK0AAAAAAAAAPQhbAQAAAAAA\nAHoQtgIAAAAAAAD0IGwFAAAAAAAA6EHYCgAAAAAAANCDsBUAAAAAAACgB2ErAAAAAAAAQA/CVgAA\nAAAAAIAehK0AAAAAAAAAPQhbAQAAAAAAAHoQtgIAAAAAAAD0IGwFAAAAAAAA6EHYCgAAAAAAANCD\nsBUAAAAAAACgB2ErAAAAAAAAQA/CVgAAAAAAAIAehK0AAAAAAAAAPQhbAQAAAAAAAHoQtgIAAAAA\nAAD0IGwFAAAAAAAA6EHYCgAAAAAAANCDsBUAAAAAAACgB2ErAAAAAAAAQA/CVgAAAAAAAIAehK0A\nAAAAAAAAPQhbAQAAAAAAAHoQtgIAAAAAAAD0IGwFAAAAAAAA6EHYCgAAAAAAANCDsBUAAAAAAACg\nB2ErAAAAAAAAQA/CVgAAAAAAAIAehK0AAAAAAAAAPQhbAQAAAAAAAHoQtgIAAAAAAAD0IGwFAAAA\nAAAA6EHYCgAAAAAAANCDsBUAAAAAAACgB2ErAAAAAAAAQA/CVgAAAAAAAIAehK0AAAAAAAAAPQhb\nAQAAAAAAAHoQtgIAAAAAAAD0IGwFAAAAAAAA6EHYCgAAAAAAANCDsBUAAAAAAACgB2ErAAAAAAAA\nQA/CVgAAAAAAAIAehK0AAAAAAAAAPSwsbK2qY1XVJkxfmLDNeVV1Y1XdVVVfq6qPVtWrqurEbZ7n\neVV1U1Udr6p7qupDVXXJ3h0ZAMBmUdcBm6BqMAGsM3UdAMDsDiz4+Y8nefOY5feMLqiqFyT57SRf\nT3JDkruSPD/Jm5Kcn+Qfjdnm0iRXJ7kzyXVJvpHk4iTXVNXTW2uXz+cwAAA2nroOAGA9qOsAAGaw\n6LD17tbaFTutVFWPSfIbSb6Z5ILW2oe75T+b5L1JLq6ql7TWrh/a5lCSKzMo8s5trR3rlv9ckj9O\ncllV/XZr7YPzPCAAgA2lrgNWnpGrAEnUdQAAM1mVe7ZenOTbk1y/VbglSWvt60le1/34kyPb/GiS\nk5K8Zatw67b5cpJf6H58+V41GACAsdR1AADrQV0HAJDFj2w9qap+JMnfSXJvko8muaW19s2R9S7q\n5u8as49bktyX5LyqOqm1dv8U27xzZJ1tVdWRCQ995zTbAwBsAHUdsFJ2GsXa2v60A2AJqesAAGaw\n6LD1CUmuHVl2e1W9rLV289Cys7r5p0Z30Fp7oKpuT/LUJE9OcnSKbe6oqnuTnF5VJ7fW7tvNQQAA\noK4DAFgT6joAgBksMmx9W5L3J/nvSb6aQeF1aZJ/luSdVfXM1tp/69Y9tZsfn7CvreWPHVo2zTan\ndOttW7y11g6PW959g+6c7bYFANgA6jpgZYyOaDWCFeBh1HVzson3AR/3ltqnH7w3A7BqFha2ttZe\nP7LoY0leXlX3JLksyRVJfmi/2wUAwGzUdcCq2MQPvgFmoa5jGVQJXAFYLScsugFjvLWbP2to2da3\n3U7NeFvL7+6xzaRv0gEAsDvqOmBpteaDXIAZqOtmtPU+s0nTPPphS9VDEwAsu2UMW/+qm58ytOyT\n3fzM0ZWr6kCSJyV5IMlnptzmid3+P+/+DwAAe0ZdBwCwHtR17AtfhAJgFS1j2PqMbj5ciL23m3/f\nmPWfleTkJLe21u6fcpvvH1kHAID5U9cB+2Z4BMykUTA7jb4BYCJ1HftmmhGzALBMFhK2VtXZVXXK\nmOWHkryl+/G6oYfenuRLSV5SVecOrX8wyc93P/76yO7eluT+JJd2+93a5rQkr+l+fGsAAOhNXQcs\nA5cYBNg9dR0AQD8HFvS8L05yWVXdkuSzSb6a5IwkP5DkYJIbk1y5tXJr7StV9RMZFHE3VdX1Se5K\n8oNJzuqW3zD8BK2126vqZ5JcleTDVXVDkm8kuTjJ6Une2Fr74J4e5ZIY/uDBt8EAgDlT17FQQjZG\nPfh/HucGwKzUdQAAPSwqbH1fBkXX9yQ5P4P7Mdyd5A+TXJvk2tYeHgu21n63qp6d5LVJXpRBkXdb\nkp9OctXo+t02V1fVsSSXJ3lpBiN5P57kda2139qbQ1suPnwCAPaYuo6FUesyypdLAXZFXQcA0MNC\nwtbW2s1Jbu6x3QeS/MMZt3lHknfM+lzryAcPAMC8qevoYy9CUrUuAOyOug4AoJ+F3LMVAADYTIJW\nAAAAYJ0s6jLC7AP3agUAYBlMCljVqAAAAMCqM7IVAAAAAAAAoAcjW9fQXlyaDQCAvbVVw63TaM9x\ndek6HR8AAACAka0AAMDcCVoBAACATWBk65rzgRYAwGpZ1fubbnd1lWVvOwAAAEBfRrYCAAC7ImgF\nAAAANpWRrWtm+IMuH2wBAKyOSbXbVn23LPd03S5YTRbfPgAAAID9ZGQrAACskJ3CTgAAAAD2j5Gt\nAACwxLZGig6HrMsSuBrFCgAAAGw6I1sBAGAFLFuwuWztAQAAAFgEYSsAAKyI1pYj5FyGNgAAAAAs\nA5cRBgCAFSPsBAAAAFgORrYCAAAAAAAA9CBsBQAAAAAAAOhB2LrGqgYTAAAAAAAAMH/CVgAAAAAA\nAIAehK1rprVHLjO6FQAAAAAAAOZP2LqGxgWuAAAAAAAAwHwJW9fUaOBqdCsAAAAAAADMl7AVAAAA\nAAAAoAdh6xpr7eEjXKuMcAUAAAAAAIB5EbYCAAAAAAAA9HBg0Q1g722Nbt0a1To8unX03q4AAAAA\nAADAdIxsBQAAAAAAAOhB2LpBxo1idR9XAAAAAAAA6EfYumFamxy6AgAAAAAAANMTtm4ogSsAAAAA\nAADsjrB1g40b5SpwBQAAAAAAgOkcWHQDWLzWHh6y7hS4jhsVCwAAAAAAAJvGyFaSzBagGv0KAAAA\nAAAARrYyZHSE63ZG1zPaFQAAAAAAgE0jbOVhdgpNJ4WxVQJXAAAAAAAANouwlZlsN/rVaFcAAAAA\nAAA2ibCVmY2GqO7hCgAAAAAAwCYStrJrk0a7TgphjXgFAAAAAABgHZyw6AawHlp7aNqJkbAAAAAA\nAACsAyNbWYhxgasRrwAAAAAAAKwSYStzNyk0NaIVAAAAAACAdeIywuybnUauVglkAQAAAAAAWB1G\ntrKvxgWuAlYAAAAAAABWkbCVpTMavrqXKwAAAAAAAMvIZYRZuNa2D1SNfAUAAAAAAGAZGdnKShgX\nuBrxCgAAAAAAwCIJW1ka7ucKAAAAAADAKnEZYZbaTpcX3poAAAAAAABgvxnZytIbDlwFqwAAAAAA\nACwLYSsrpbXxgeukENZ9XQEAAAAAANgrwlZWzmiAut1o1yqBKwAAAAAAAHtD2MraGxfGCmABAAAA\nAADYLWErK29ccOrergAAAAAAAOw1YStradK9Xbe4xysAAAAAAAC7JWxlbfUZ8eoerwAAAAAAAExL\n2AojhgNZwSsAAAAAAACTCFvZKNuFp+NGvRrpCgAAAAAAwCTCVuhMus/ruGUCWAAAAAAAAIStMGQ4\nRN3p/q4AAAAAAABsthMW3QBYVrNechgAAAAAAIDNYmQrbGM0cB0OWd3PFQAAAAAAYLMJW2EXRke4\nCl8BAAAAAAA2h8sIwwxac3lhAAAAAAAABoStMGcCVwAAAAAAgM0wl7C1qi6uqqur6v1V9ZWqalV1\n3Q7bnFdVN1bVXVX1tar6aFW9qqpO3Gab51XVTVV1vKruqaoPVdUlOzzPJVX1X7r1j3fbP6/vsULy\n0AjX4QkA1oG6DgBgPajrAAD2x7xGtr4uyaVJ/m6Sv9hp5ap6QZJbkjwrye8keUuSb0nypiTXT9jm\n0iTvSPK0JNcl+Y0k35Hkmqq6csI2Vya5JskTu/WvS/L0JO/o9gdzMxy4VhnhCsDKUtcBAKwHdR0A\nwD6YV9j66iRnJnlMkp/cbsWqekwGhdQ3k1zQWvux1trPZFD4fTDJxVX1kpFtDiW5MsldSc5trb2i\ntfbqJN+V5M+SXFZVzxzZ5rwkl3WPf1dr7dWttVckOdzt58puv7BnBK4ArCB1HQDAelDXAQDsg7mE\nra2197XWPt3aVBdTvTjJtye5vrX24aF9fD2Db9wljywAfzTJSUne0lo7NrTNl5P8Qvfjy0e22fr5\nDd16W9scS/Kr3f5eNkV7YWrj/gK2RrmOTgCwjNR1AADrQV0HALA/5jWydRYXdfN3jXnsliT3JTmv\nqk6acpt3jqyzm21g16a9h6vAFYA1oK4DAFgP6joAgJ4OLOA5z+rmnxp9oLX2QFXdnuSpSZ6c5OgU\n29xRVfcmOb2qTm6t3VdVpyT5W0nuaa3dMaYNn+7mZ07T4Ko6MuGh75xmezZTawJVANaeug4AYD2o\n6wAAelrEyNZTu/nxCY9vLX9sj21OHZnP8hwwd1ujXIenYcJYAFacug4AYD2o6wAAelrEyNaV01o7\nPG559w26c/a5Oay40RGvw/+e6i4qAEBv6joAgPWgrgMAlsUiRraOfqtt1Nbyu3tsc3xkPstzwL6Z\nFKoa6QrAilHXAQCsB3UdAEBPiwhbP9nNH3H/hao6kORJSR5I8pkpt3liklOSfL61dl+StNbuTfIX\nSb61e3zUU7r5I+4pAftlu8B1eAKAJaauAwBYD+o6AICeFhG2vrebf9+Yx56V5OQkt7bW7p9ym+8f\nWWc328C+mnQv12ECVwCWmLoOAGA9qOsAAHpaRNj69iRfSvKSqjp3a2FVHUzy892Pvz6yzduS3J/k\n0qo6NLTNaUle0/341pFttn5+bbfe1jaHkryi29/b+h8GzJf7tQKwgtR1AADrQV0HANDTgXnspKpe\nmOSF3Y9P6ObPrKprun9/qbV2eZK01r5SVT+RQRF3U1Vdn+SuJD+Y5Kxu+Q3D+2+t3V5VP5PkqiQf\nrqobknwjycVJTk/yxtbaB0e2ubWqfjnJTyf5aFW9Pcm3JHlxkscleWVr7dg8jh/mZTRw3RrVujUX\nyAKw19R1AADrQV0HALA/5hK2Jvm7SS4ZWfbkbkqSzya5fOuB1trvVtWzk7w2yYuSHExyWwaF1lWt\nPTJSaq1dXVXHuv28NINRuR9P8rrW2m+Na1Rr7bKq+tMMvhn3z5L8dZKPJPml1tp/7neosDjDlxQW\nvAKwR9R1AADrQV0HALAPakydxJSq6sg555xzzpEjRxbdFNbcpPu2TvzzHbfBMv2tL3v7AObs8OHD\nSZIjR464E/eSUtfBGlr2mnPZ2weMpa5bfuq6BVrm97ZlbhsACzHPum5eI1uBBRitE9WIAAAAAAAA\n+0fYCitg0r1cR1UJXAEAAAAAAPbLCYtuADA7gSoAAAAAAMDiGdkKK2rSaNeqRBYLAAAAAACw94xs\nBQAAAAAAAOhB2AprYqdLC0+6zysAAAAAAAD9uIwwbJDhwNV9XwEAAAAAAHbHyFZYI61NH6Ia6QoA\nAAAAALA7RrbCBpslcDUSFgAAAAAA4OGMbIUNsTXqtW9oaiQsAAAAAADAwxnZCkxtNHA12hUAAAAA\nANhkwlbYQLOGpJNGtVYJXAEAAAAAgM3lMsLAjgSqAAAAAAAAj2RkKzAVgSsAAAAAAMDDGdkKAAAA\nAAAA0IOwFQAAAAAAAKAHYSsAAAAAAABAD8JWAAAAAAAAgB6ErQAAAAAAAAA9CFsBAAAAAAAAejiw\n6AasuENHjx7N4cOHF90O2Nmyn6fL3j6AXTh69GgOHjy46GawPXUdbIJl/xtf9vYB6rrVoK5bJsv8\ne1jmtgGw5+ZZ11VrbS472kRVdX+SE5P8t0W3ZYV8Zzf/xEJbsVr0WT/6bXb6bHb6bHab2meHknyl\ntfakRTeE8dR1vWzq3/Nu6bfZ6bPZ6bPZ6bPZbWqfHYq6bqmp63rb1L/p3dBns9Nns9Nns9Nn/Wxi\nvx3KnOo6I1t352NJ0lrzNagpVdWRRJ/NQp/1o99mp89mp89mp89YYuq6Gfl77ke/zU6fzU6fzU6f\nzU6fscTUdT34m56dPpudPpudPpudPutHv+2Oe7YCAAAAAAAA9CBsBQAAAAAAAOhB2AoAAAAAAADQ\ng7AVAAAAAAAAoAdhKwAAAAAAAEAP1VpbdBsAAAAAAAAAVo6RrQAAAAAAAAA9CFsBAAAAAAAAehC2\nAgAAAAAAAPQgbAUAAAAAAADoQdgKAAAAAAAA0IOwFQAAAAAAAKAHYSsAAAAAAABAD8JWAAAAAAAA\ngB6ErT1U1elV9ZtV9ZdVdX9VHauqN1fVaYtu217rjrVNmL4wYZvzqurGqrqrqr5WVR+tqldV1Ynb\nPM/zquqmqjpeVfdU1Yeq6pK9O7Ldq6qLq+rqqnp/VX2l65PrdthmX/qmqi6pqv/SrX+82/55fY91\nXmbps6o6tM2516rq+m2eZ6bjr6oTq+rV3e/ja93v58aqOm8ex70bVfVtVfXjVfU7VXVb177jVfWH\nVfVjVTX2dX2Tz7VZ+8y59mDb/k1VvaeqPjfUtv9aVf+qqr5twjYbe56xumqD67pEbTdJqetmNkuf\nea99sG3quhnN2mfOtQfbpq5jI5S6Tl03Rqnrepml37zfquv6mLXPnGcPKbXdcmqtmWaYkpyR5H8k\naUl+N8kvJnlv9/Mnknzbotu4x8d/LMndSa4YM10+Zv0XJHkgyT1J/l2SX+r6qSX5TxOe49Lu8S8l\n+dUkb0ryuW7ZlYvug2365k+6Nn41ydHu39dts/6+9E2SK7vHP9et/6tJ7uyWXboqfZbkUPf4n0w4\n/y6ex/EnqST/aehv+pe638893e/rBQvus5d3bfvLJP8hyb9O8pvd32VL8vYk5Vzr32fOtQfb940k\nf9T11S8muTrJH3ft/Yskf9t5Zlr1KRte13V9cCxqu3FtVtftYZ/Fe+1W+9R1e9xnzrUH26euM639\nFHVdoq6b1C/quj3ut3i/TdR1e95nzrOHtVFtt4TTwhuwalOS3+9OjleOLP/lbvlbF93GPT7+Y0mO\nTbnuY5J8Mcn9Sc4dWn4wya1df71kZJtDSb7e/REeGlp+WpLbum2eueh+mHC8FyZ5SveCfEG2L0L2\npW+SnNctvy3JaSP7urPb36HdHPc+9tmh7vFrZtj/zMef5Ie7bT6Q5ODQ8r/X/b6+mOTRC+yzi5I8\nP8kJI8ufkOTPu7a/yLm2qz5zrnXnyITlb+ja/WvOM9OqT9nwuq471mNR2407VnXd3vbZoXivTdR1\n+9FnzrWmrjNtxhR1XaKum3Ss6rq977dD2fD326jr9qPPNv48Gz5PJixX2y3y97LoBqzSlMG35FqS\n28e8CDw6g28G3JvklEW3dQ/74FimL9x+tOuv3xrz2EXdYzePLP+5bvnrZ9nfsk3ZuQjZl75J8u+7\n5S8bs83E/S1pn/V5Q535+JPc0i2/cJb9LcOU5DVd+652ru2qz5xr2x/rd3dt+wPnmWmVp6jrto71\nWNR2Ox33BVHXzbvPvNfufLzquvn0mXNt+2NV15nWYoq6butYj0Vdt9NxXxB13V70m/fb7Y9VXTef\nPnOe7Xy8arsFTu7ZOpsLu/m7W2t/PfxAa+2rGXzb4eQkz9jvhu2zk6rqR6rqNVX1f1bVhROu7X1R\nN3/XmMduSXJfkvOq6qQpt3nnyDqrbL/6Zh378zuq6p93598/r6rv2mbdmY6/qg5m8C2c+5K8f5pt\nlsz/7OYPDC1zrm1vXJ9tca6N9/xu/tGhZc4zVpG67iFqu93xGtif99rJ1HWzU9fNTl3HulDXPURd\ntzteA3fH++146rrZqev6Udst0IFFN2DFnNXNPzXh8U8neW6SM5O8Z19atBhPSHLtyLLbq+plrbWb\nh5ZN7K/W2gNVdXuSpyZ5cgbX/t9pmzuq6t4kp1fVya21+3ZzEAu2531TVack+VtJ7mmt3TGmDZ/u\n5mfu4jgW4X/rpgdV1U1JLmmt/fnQsj7Hf0aSE5N8prU27s18afusqg4keWn34/CbmnNtgm36bItz\nLUlVXZ7kW5OcmuTcJP9rBkXbLw6t5jxjFanrHqK22x2vgf15rx1DXTc7dd101HWsMXXdQ9R1u+M1\ncHe8345Q181OXTc9td1yMbJ1Nqd28+MTHt9a/th9aMuivC3JczIo3k5J8vQk/zaDYfzvrKrvHlq3\nT39Nu82pEx5fFfvRN+t2vt6X5P9JcjiD68OfluTZSd6XweVM3tO9sG/Zyz5exj77xSRPS3Jja+33\nh5Y71yab1GfOtYe7PMm/SvKqDIq2dyV5bmvtr4bWcZ6xipxTA2q73fMaODvvtdtT181OXTcddR3r\nyjk1oK7bPa+B/Xi/nUxdNzt13fTUdktE2MpMWmuvb629t7X2P1pr97XWPtZae3mSX07yqCRXLLaF\nrKvW2hdba/93a+0jrbW7u+mWDL6d+qEk/0uSH19sKxejqn4qyWVJPpHknyy4OSthuz5zrj1ca+0J\nrbXK4D/s/0cG33T7r1V1zmJbBsyD2o5F8F47mbpuduq66anrYL2p61gU77fjqetmp66bjdpuuQhb\nZ7PTN7S2lt+9D21ZNm/t5s8aWtanv6bdZtK3JFbFfvTNRpyv3SUd/t/ux/06/5amz6rq0iS/kuTj\nGdy4/a6RVZxrI6bos7E2/Vzr/sP+OxkUsd+WwY3vtzjPWEXOqe2p7abnNXBONv29Vl03O3VdP+o6\n1pBzanvquul5DZyjTX6/VdfNTl3Xn9puOQhbZ/PJbj7p2tJP6eaT7hGxzraGpg8P1Z/YX92115+U\nwU2uPzPlNk/s9v/5Fb73w5Y975vW2r1J/iLJt3aPj1qn8/UR51/P4/+zJN9M8uTu9zDNNgtTVa9K\ncnWSj2VQhHxhzGrOtSFT9tl2NvJcG9Za+2wGhe9Tq+pvdIudZ6widd321HbT8xo4Xxv5Xquum526\nbvfUdawRdd321HXT8xo4fxv3fquum526bj7UdoslbJ3N+7r5c6vqYX1XVY9Ocn4G1w7/o/1u2BJ4\nRjcf/qN8bzf/vjHrPyvJyUluba3dP+U23z+yzirbr77ZlP4cd/4lMx5/a+3rSW7NoP//wTTbLEpV\n/V9J3pTkTzIoQr44YVXnWmeGPtvOxp1rE3xHN/9mN3eesYrUddtT203Pa+B8bdx7rbpuduq6uVLX\nsQ7UddtT103Pa+D8bdT7rbpuduq6uVPbLUprzTTDlOT3k7QkrxxZ/svd8rcuuo17eOxnJzllzPJD\nST7dHf9rhpY/JoNvldyf5Nyh5QczeNFqSV4ysq8nJfl6kjuTHBpaflqS27ptnrnovpiiry7o2nrd\nhMf3pW+SnNctvy3JaSO/szu7/R3azbHuY5+dk+SEMcuf0x1HS3Lebo8/yQ9323wgycGh5X+v+319\nMcljFtxXP9u18cNJHrfDus612fts48+1DL65duqY5SckecNWu51nplWfssF1XXecarvp+umCqOvm\n3Wcb/1471BZ13d722cafa1HXmTZkirpOXTddP10Qdd1e9NvGv9927VDX7W2fOc+a2m6Zp+oOmClV\n1RkZnITqmeDaAAAgAElEQVSPT/J7SY4m+d4kF2YwDPq81tqdi2vh3qmqKzK4QfUtST6b5KtJzkjy\nAxn8cd6Y5Idaa98Y2uaFSd6ewR/T9UnuSvKDSc7qlv/jNnISVtUrk1yVwR/hDUm+keTiJKcneWNr\n7fI9O8hd6I71hd2PT0jyv2fwbZr3d8u+NNz2/eqbqnpjkp9O8vluv9+S5MUZXL/9la21t+z22Pua\npc+q6qYMLjlwawbHkiTfleSi7t8/21r7+THPMdPxV1Ul+f8y6NdPJHlHt+6LMzjPX9Ra+73dHPdu\nVNUlSa7J4NtJV2f8vVCOtdauGdpmo8+1WfvMufbg5Vv+dZI/THJ7BufB30zy7CRPTvKFJM9prX18\naJuNPs9YTZtc1yVqu+2o62anrpudum526rrZqevYFOo6dd0k6rp+1HazUdfNTl3Xj9puiS067V3F\nKcnfTvK2JHdkcJJ9NsmbM5TYr+OUwR/sf8zgRebuJP8zg29F/EGSlyaD8H7MdudnUNR9OcnXkvxp\nklcnOXGb53p+kpszKA7vTfLHSS5ZdB/s0D9XZPDtjUnTsUX1TZJ/2q13b7fdzUmet0p9luTHkvzn\nJMeS3JPBt3H+PIMX+38wz+NPcqD7Pfxp93v5cvd7Om8ex73HfdaS3ORc699nzrWWJE9L8pYMLuHy\npQzu3XC8O7YrMuHbhpt8nplWd8qG1nXdsavtJrd3p/eOY4vql2V9DZylz+K9dto+U9ftss+ca+o6\n02ZNUdep68a3d6f3jmOL6pdlfg2cpd/i/Xaa/lLX7bLPnGcPtk1tt6STka0AAAAAAAAAPZyw8yoA\nAAAAAAAAjBK2AgAAAAAAAPQgbAUAAAAAAADoQdgKAAAAAAAA0IOwFQAAAAAAAKAHYSsAAAAAAABA\nD8JWAAAAAAAAgB6ErQAAAAAAAAA9CFsBAAAAAAAAehC2AgAAAAAAAPQgbAUAAAAAAADoQdgKAAAA\nAAAA0IOwFQAAAAAAAKAHYSsAAAAAAABAD8JWAAAAAAAAgB6ErQAAAAAAAAA9rH3YWlWnV9VvVtVf\nVtX9VXWsqt5cVactum0AAExPXQcAAADAsqnW2qLbsGeq6owktyZ5fJLfS/KJJH8/yYVJPpnk/Nba\nnYtrIQAA01DXAQAAALCM1n1k669l8IHcT7XWXtha+5ettYuSvCnJWUnesNDWAQAwLXUdAAAAAEtn\nbUe2dqMfbktyLMkZrbW/Hnrs0UnuSFJJHt9au3chjQQAYEfqOgAAAACW1YFFN2APXdjN3z38gVyS\ntNa+WlUfSPLcJM9I8p7tdlRVRyY89LQk92TwwR8AwCSHknyltfakRTdkRanrAIBlcSjqOgAAhqxz\n2HpWN//UhMc/ncGHcmdmhw/ltnHiox71qMedffbZj+u5PXvhIx955LJzztn/dkyy7O0DYO6OHj2a\ngwcPqhf6U9fBvCxzLTqubcnytA8g6joAAB5pncPWU7v58QmPby1/7E47aq0dHre8qo6cffbZ5xw5\nMmmABAtR9chly/Q7Wvb2ATB3hw+PLSWYnroO5mWZa9FxbUuWp30AUdcBAPBIJyy6AQAAAAAAAACr\naJ3D1q0RDqdOeHxr+d370BYAAPpT1wEAAACwlNY5bP1kNz9zwuNP6eaT7v0FAMByUNcBAAAAsJTW\nOWx9Xzd/blU97Dir6tFJzk9yX5I/2u+GAQAwE3UdAAAAAEtpbcPW1tqfJXl3kkNJXjHy8OuTnJLk\n2tbavfvcNAAAZqCuAwAAAGBZHVh0A/bYv0hya5Krquo5SY4m+d4kF2ZwmbnXLrBtAABMT10HAAAA\nwNJZ25GtyYOjIM5Nck0GH8ZdluSMJL+S5BmttTsX1zoAAKalrgMAAABgGa37yNa01j6X5GWLbgcA\nALujrgMAAABg2az1yFYAAAAAAACAvSJsBQAAAAAAAOhB2AoAAAAAAADQg7AVAAAAAAAAoAdhKwAA\nAAAAAEAPwlYAAAAAAACAHoStAAAAAAAAAD0IWwEAAAAAAAB6ELYCAAAAAAAA9CBsBQAAAAAAAOhB\n2AoAAAAAAADQg7AVAAAAAAAAoAdhKwAAAAAAAEAPwlYAAAAAAACAHoStAAAAAAAAAD0IWwEAAAAA\nAAB6ELYCAAAAAAAA9CBsBQAAAAAAAOhB2AoAAAAAAADQg7AVAAAAAAAAoAdhKwAAAAAAAEAPwlYA\nAAAAAACAHoStAAAAAAAAAD0IWwEAAAAAAAB6ELYCAAAAAAAA9CBsBQAAAAAAAOhB2AoAAAAAAADQ\ng7AVAAAAAAAAoAdhKwAAAAAAAEAPwlYAAAAAAACAHoStAAAAAAAAAD0IWwEAAAAAAAB6ELYCAAAA\nAAAA9CBsBQAAAAAAAOhB2AoAAAAAAADQg7AVAAAAAAAAoAdhKwAAAAAAAEAPwlYAAAAAAACAHoSt\nAAAAAAAAAD0IWwEAAAAAAAB6ELYCAAAAAAAA9CBsBQAAAAAAAOhB2AoAAAAAAADQg7AVAAAAAAAA\noAdhKwAAAAAAAEAPwlYAAAAAAACAHoStAAAAAAAAAD0IWwEAAAAAAAB6ELYCAAAAAAAA9CBsBQAA\nAAAAAOhB2AoAAAAAAADQg7AVAAAAAAAAoAdhKwAAAAAAAEAPwlYAAAAAAACAHoStAAAAAAAAAD0I\nWwEAAAAAAAB6ELYCAAAAAAAA9CBsBQAAAAAAAOhB2AoAAAAAAADQg7CVpVE1mAAAAAAAAGAVCFtZ\nCkJWAAAAAAAAVo2wlaUjeAUAAAAAAGAVLCxsrapjVdUmTF+YsM15VXVjVd1VVV+rqo9W1auq6sRt\nnud5VXVTVR2vqnuq6kNVdcneHRmzEq4CwGpT1wEAAACwqQ4s+PmPJ3nzmOX3jC6oqhck+e0kX09y\nQ5K7kjw/yZuSnJ/kH43Z5tIkVye5M8l1Sb6R5OIk11TV01trl8/nMOhL0AoAa0NdBwAAAMDGWXTY\nendr7YqdVqqqxyT5jSTfTHJBa+3D3fKfTfLeJBdX1Utaa9cPbXMoyZUZfHh3bmvtWLf855L8cZLL\nquq3W2sfnOcBAQBsKHUdAAAAABtnVe7ZenGSb09y/dYHcknSWvt6ktd1P/7kyDY/muSkJG/Z+kCu\n2+bLSX6h+/Hle9VgdjY8qrW1xbUDANhX6joAAAAA1saiR7aeVFU/kuTvJLk3yUeT3NJa++bIehd1\n83eN2cctSe5Lcl5VndRau3+Kbd45sg5LoDWXFQaAFaauAwAAAGDjLDpsfUKSa0eW3V5VL2ut3Ty0\n7Kxu/qnRHbTWHqiq25M8NcmTkxydYps7qureJKdX1cmttfu2a2RVHZnw0Hdutx2TGdUKAGtHXQcA\nAADAxlnkZYTfluQ5GXwwd0qSpyf5t0kOJXlnVX330LqndvPjE/a1tfyxPbY5dcLj7JFpglYjXAFg\npajrAAAAANhICxvZ2lp7/ciijyV5eVXdk+SyJFck+aH9btc4rbXD45Z3IyPO2efmsESM0AUAdR1s\nInUwAAAADCxyZOskb+3mzxpattNoha3ld/fYZtIICfbAOn8oU2VELgCMUNfBmhlX86qDAQAA2GTL\nGLb+VTc/ZWjZJ7v5maMrV9WBJE9K8kCSz0y5zRO7/X9+p/t6wSSTPlDyQRMAPEhdB2timkBV6AoA\nAMAmWsaw9RndfPgDtvd28+8bs/6zkpyc5NbW2v1TbvP9I+uwD9ZpVOvosYwejw+aACCJug5W3ri6\ndqv+HVcHT9oGAAAA1tVCwtaqOruqThmz/FCSt3Q/Xjf00NuTfCnJS6rq3KH1Dyb5+e7HXx/Z3duS\n3J/k0m6/W9ucluQ13Y9vDfti2g9bVjmEnfRBEwCsM3Uds9gK4cZNLJdJv5dxNa/QFQAAgE12YEHP\n++Ikl1XVLUk+m+SrSc5I8gNJDia5McmVWyu31r5SVT+RwYdzN1XV9UnuSvKDSc7qlt8w/ASttdur\n6meSXJXkw1V1Q5JvJLk4yelJ3tha++CeHiVjTRuobn0ws2wB7HYjdLd+9qESABtEXcdEs9RE40ZP\nsv8m/c6m+X1MqoWXta4HAACAeVhU2Pq+DD5M+54k52dwn627k/xhkmuTXNvaw/8r3lr73ap6dpLX\nJnlRBh/e3Zbkp5NcNbp+t83VVXUsyeVJXprBSN6PJ3lda+239ubQlteiPuSY9fLBrT18m6rl+WBm\n2mMZPQYAWGPquhXSpz7pU4dN8zw71UvLXktt1y973c877b9v7TztSNad7BS67nb/AAAAsEwWEra2\n1m5OcnOP7T6Q5B/OuM07krxj1udaZ6vwzfI+geuDx7V3zQIARqjrlts8AstZv/g2y8jIcfe9XxWT\n+mWvj2Ga/c/jy4rz+L/CNFd9WaYvVgIAAEAfixrZygKMCzC3lu+k77fnZx3VOrrPadq7Xx/K7eZY\nAAD223Y10qz13yxffJvlOfq0a9FmqT1n6ec+oeM86+K9rHVX4fcKAAAAfQlbN8y4y7WNfrDT50Oa\ncR+uzSMEndTeRfJhEQCw7OZxudbd3NpBvTS94X7e7SjPee4LAAAAmI6wdQONu5zXrAHmrPfY2u2H\nRuP2OWm9jFlv0QEtAMB+mlfINk3gOs+6b9Xt55VQ5rl/V3ABAACA/k5YdANYnGk+SGlt/DTusd08\nT9/2TvP88+TDJwBg02wXrm5i0LoXx7jbq8zs1b4AAACAnRnZuuHm+WHRfny41vc5FvHB3yZ82AgA\nbIZxI1zHrbNpJl2qt+/9ahd9CeBN/B0CAADAbhnZCgAA7Gg/rmSyyvZjFOm0z9FndKvfIQAAAPQj\nbAUAAKYyr1GcjOcSwAAAALB6hK0AAMDUhKt7O8p3XoHrLO3wOwUAAID+hK0AAMBMWntoYv6jUOfd\nr0bJAgAAwN4RtgL8/+3df8xsd10n8PeHNvTaYktBtGA3uZSFYkA0vXUXLgotRJRsUYQqNVG6/NgV\nQ7tLbY0J4spmxXWzBZFWqdnN0t3tZgupAVJTQAMtResiXEQgXLCVXhAsVlq42Ja2Fr/7xzlPGabP\nPHfOeX7MM3der+Sbc+fM+c58z2e+95nPnM+cOQAAI213IXOnzm4FAAAAxlFsBQAA2AJbWdzc6OeE\nxzyPs1sBAABgeyi2AgAA7EJbUbx1disAAABsL8VWAACAXW4rzkx1disAAABsPcVWAACAgabPGN2u\nM0idmQoAAAC7m2IrAADAUUzBFgAAALaPYisAAMAuplgKAAAAu9exix4AAADAMtrJImhr3TVXxz7n\ng/1ctxUAAAC2lDNbAQAAloAzXAEAAGD3UWwFAAAAAAAAGEGxFQAAAAAAAGAExVYAAAAAAACAERRb\nAQAAAAAAAEZQbAUAAAAAAAAYQbEVAAAAAAAAYATFVgAAAAAAAIARFFsBAAAAAAAARlBsBQAAAAAA\nABhBsRUAAAAAAABgBMVWAAAAAAAAgBEUWwEAAAAAAABGUGwFAAAAAAAAGEGxFQAAAAAAAGAExVYA\nAAAAAACAERRbAQAAAAAAAEZQbAUAAAAAAAAYQbEVAAAAAAAAYATFVgAAAAAAAIARFFsBAAAAAAAA\nRlBsBQAAAAAAABhBsRUAAAAAAABgBMVWAAAAAAAAgBEUWwEAAAAAAABGUGwFAAAAAAAAGEGxFQAA\nAAAAAGAExVYAAAAAAACAERRbAQAAAAAAAEZQbAUAAAAAAAAYQbEVAAAAAAAAYATFVgAAAAAAAIAR\nFFsBAAAAAAAARlBsBQAAAAAAABhBsRUAAAAAAABgBMVWAAAAAAAAgBEUWwEAAAAAAABGUGwFAAAA\nAAAAGEGxFQAAAAAAAGAExVYAAAAAAACAERRbAQAAAAAAAEZQbAUAAAAAAAAYQbEVAAAAAAAAYATF\nVgAAAAAAAIARFFsBAAAAAAAARtiSYmtVnVtVl1XVh6rq61XVquqqI/TZX1XXVdWdVfWNqvpEVb2m\nqo7ZoM85VXVDVR2uqruq6sNVdf4Rnuf8qvrzfvvDff9zxu4rAMDRTF4HAAAAAPPbqjNbX5fkgiQ/\nmORLR9q4qn4yyY1JnpXknUkuT/LwJL+d5OoZfS5Icm2Spya5Ksl/S/K4JFdW1aUz+lya5Mokj+23\nvyrJ9ye5tn88AAC+nbwOAAAAAOa0VcXWi5I8KcmJSX5xow2r6sR0B8i+meSs1torWmu/nO6A3p8l\nObeqzpvqszfJpUnuTHJma+3VrbWLkjwtyV8nubiqnjHVZ3+Si/v7n9Zau6i19uok+/rHubR/XAAA\nvkVeBwAAAABz2pJia2vt+tbaza21Nsfm5yZ5TJKrW2sfnXiMe9OdSZE89MDey5Mcl+Ty1tqhiT5f\nTfKb/c1XTfVZu/2Gfru1PoeS/G7/eC+bY7wAACtDXgcAAAAA89uqM1uHeE6/fO86992Y5J4k+6vq\nuDn7vGdqm830AQBgfvI6AAAAAFbasQt4ztP75V9N39Fae6Cqbk3ylCSnJTk4R5/bquruJKdW1fGt\ntXuq6oQk35vkrtbabeuM4eZ++aR5BlxVB2bc9eR5+gMAHKXkdQAAAACstEWc2XpSvzw84/619Y8c\n0eekqeWQ5wAAYBh5HQAAAAArbRFnti6d1tq+9db3Z0acscPDAQBgJHkdAAAAAFtpEWe2Tp+tMG1t\n/ddG9Dk8tRzyHAAADCOvAwAAAGClLaLY+tl++ZDralXVsUken+SBJJ+bs89jk5yQ5IuttXuSpLV2\nd5IvJXlEf/+0J/bLh1wrDACAucnrAAAAAFhpiyi2fqBf/vg69z0ryfFJbmqt3Tdnn+dPbbOZPgAA\nzE9eBwAAAMBKW0Sx9ZokX0lyXlWdubayqvYk+Y3+5lun+rwtyX1JLqiqvRN9Tk7y2v7mFVN91m7/\nar/dWp+9SV7dP97bxu8GAMDKk9cBAAAAsNKO3YoHqaoXJnlhf/OUfvmMqrqy//dXWmuXJElr7etV\n9W/SHZy7oaquTnJnkp9Icnq//u2Tj99au7WqfjnJW5J8tKrenuT+JOcmOTXJG1trfzbV56aqelOS\nX0ryiaq6JsnDk7wkyaOSXNhaO7QV+w8AcLSQ1wEAAADA/Lak2JrkB5OcP7XutL4lyeeTXLJ2R2vt\nXVX17CS/muTFSfYkuSXdAbS3tNba9BO01i6rqkP947w03Vm5n07yutba/1xvUK21i6vqk+nOePi3\nSf4pyceS/NfW2h+O21UAgKOavA4AAAAA5lTrHP9iTlV14IwzzjjjwIEDix4Kk6oeum43zfPdPj4A\ntty+ffuSJAcOHFjnTYDdQF7HytjNueh6Y0t2z/gAIq8DAOChFnHNVgAAAAAAAIClp9gKAAAAAAAA\nMIJiKwAAAAAAAMAIiq0AAAAAAAAAIyi2AgAAAAAAAIyg2AoAAAAAAAAwgmIrAAAAAAAAwAiKrQAA\nAAAAAAAjKLYCAAAAAAAAjKDYCgAAAAAAADCCYisAAAAAAADACIqtAAAAAAAAACMotgIAAAAAAACM\noNgKAAAAAAAAMIJiKwAAAAAAAMAIiq0AAAAAAAAAIyi2AgAAAAAAAIyg2AoAAAAAAAAwgmIrAAAA\nAAAAwAiKrQAAAAAAAAAjKLYCAAAAAAAAjHDsogew5PYePHgw+/btW/Q4OJLd/hrt9vEBsCkHDx7M\nnj17Fj0MNiavY3Xt9nm/28cHrBR5HQAA06q1tugxLK2qui/JMUn+ctFjWSJP7pefWegolouYjSNu\nw4nZcGI23KrGbG+Sr7fWHr/ogbA+ed0oq/r/ebPEbTgxG07MhhOz4VY1ZnsjrwMAYIIzWzfnU0nS\nWvNV6zlV1YFEzIYQs3HEbTgxG07MhhMzdjF53UD+P48jbsOJ2XBiNpyYDSdmAADQcc1WAAAAAAAA\ngBEUWwEAAAAAAABGUGwFAAAAAAAAGEGxFQAAAAAAAGAExVYAAAAAAACAEaq1tugxAAAAAAAAACwd\nZ7YCAAAAAAAAjKDYCgAAAAAAADCCYisAAAAAAADACIqtAAAAAAAAACMotgIAAAAAAACMoNgKAAAA\nAAAAMIJiKwAAAAAAAMAIiq0jVNWpVfU/qupvq+q+qjpUVW+uqpMXPbbt1u9rm9G+PKPP/qq6rqru\nrKpvVNUnquo1VXXMBs9zTlXdUFWHq+quqvpwVZ2/fXu2eVV1blVdVlUfqqqv9zG56gh9diQ2VXV+\nVf15v/3hvv85Y/d1qwyJWVXt3WDutaq6eoPnGbT/VXVMVV3Uvx7f6F+f66pq/1bs92ZU1aOr6pVV\n9c6quqUf3+Gq+pOqekVVrft3fZXn2tCYmWsPju2/VNX7q+pvJsb2F1X161X16Bl9VnaesbxqhfO6\nRG43S8nrBhsSM++1D45NXjfQ0JiZaw+OTV4HAADbqFprix7DUqmqJyS5Kcl3J3l3ks8k+RdJzk7y\n2STPbK3dsbgRbq+qOpTkkUnevM7dd7XWLp3a/ieT/EGSe5O8PcmdSV6Q5PQk17TWfnqd57ggyWVJ\n7uj73J/k3CSnJnlja+2SrdqfrVRVH0/yA0nuSvLFJE9O8n9aaz83Y/sdiU1VXZrk4n5M1yR5eJLz\nkjwqyYWttcvH7/XmDIlZVe1NcmuSv0zyrnUe7lOttWvW6Tdo/6uqkrwjXVw/m+TaftuXJNmT5MWt\ntXcP39utUVWvSvLWJLcluT7JF5J8T5IXJTkp3Zz66Tbxx33V59rQmJlrD47v/iQfS/LpJLcnOSHJ\n05OcmeRvkzy9tfY3E9uv9DxjOa16XpfI7WaR1w0nrxtOXjecvG4ceR0AAGyz1po2oCV5X5KWLvGf\nXP+mfv0Vix7jNu//oSSH5tz2xHQf5O5LcubE+j3pDmy2JOdN9dmb7gPdHUn2Tqw/OcktfZ9nLDoO\nM/b37CRPTFJJzurHetUiY5Nkf7/+liQnTz3WHf3j7d3Mfu9gzPb291854PEH73+Sn+37/GmSPRPr\nf6h/vW5P8p0LjNlz0h3oeNjU+lPSHWxq6Q7mmGvjY2au9XNkxvo39OP+PfNMW/aWFc/r+n09FLnd\nevsqr9vemO2N99pEXrcTMTPXmrxO0zRN0zRN07a7+RnhAfqzH56X7qDU707d/etJ7k7y81V1wg4P\nbbc6N8ljklzdWvvo2srW2r1JXtff/MWpPi9PclySy1trhyb6fDXJb/Y3X7VdA96M1tr1rbWbW2tt\njs13KjZrt9/Qb7fW51C6OXxckpfNMd5tMTBmY4zZ/7W4v65/Pdb6fCTdN7Qfk+71W4jW2gdaa9e2\n1v5pav2Xk1zR3zxr4q6Vn2sjYjbG0TjX7p1x1zv65RMn1q38PGP5yOtGWZncTl43nLxuOHndcPK6\nceR1AACwvRRbhzm7X/7ROh/u/iHdt1iPT/dzPEez46rq56rqtVX176vq7BnXbXlOv3zvOvfdmOSe\nJPur6rg5+7xnaptltlOxORrj+biq+oV+/v1CVT1tg20H7X9V7Un3Det7knxonj67zD/2ywcm1plr\nG1svZmvMtfW9oF9+YmKdecYyktd9i9xuc/wNHM977WzyuuHkdcPJ6wAAYAscu+gBLJnT++Vfzbj/\n5nRnSDwpyft3ZESLcUqS/z217taqellr7YMT62bGq7X2QFXdmuQpSU5LcnCOPrdV1d1JTq2q41tr\n92xmJxZs22PTn4nzvemut3bbOmO4uV8+aRP7sQg/2rcHVdUNSc5vrX1hYt2Y/X9CkmOSfK61tt5B\nml0bs6o6NslL+5uTByzMtRk2iNkacy1JVV2S5BHproN2ZpIfTndA7rcmNjPPWEbyum+R222Ov4Hj\nea9dh7xuOHndfOR1AACwPZzZOsxJ/fLwjPvX1j9yB8ayKG9L8tx0B+VOSPL9SX4/3XVV3lNVPzCx\n7Zh4zdvnpBn3L4udiM3RNl/vSfKfkuxLd+2fk5M8O8n16X4q7P1TP/W4nTHejTH7rSRPTXJda+19\nE+vNtdlmxcxc+3aXpPtJ1dekOyD33iTPa639/cQ25hnLyJzqyO02z9/A4bzXbkxeN5y8bj7yOgAA\n2AaKrQzSWvuP/XVy/q61dk9r7VOttVcleVOS70jy+sWOkKNVa+321tp/aK19rLX2tb7dmO6sow8n\n+edJXrnYUS5GVf27JBcn+UySn1/wcJbCRjEz175da+2U1lqlK8S8KN1ZDH9RVWcsdmTAVpDbsQje\na2eT1w0nr5ufvA4AALaHYuswR/rm/dr6r+3AWHabK/rlsybWjYnXvH1mfQN2WexEbFZivvY/1fXf\n+5s7Nf92Tcyq6oIkv5Pk00nObq3dObWJuTZljpita9XnWl+IeWe6g5OPTvK/Ju42z1hG5tTG5Hbz\n8zdwi6z6e628bjh53TjyOgAA2FqKrcN8tl/Oum7IE/vlrGt/Hc3WfnZo8ieYZsarv6bO45M8kORz\nc/Z5bP/4X1zia3qt2fbYtNbuTvKlJI/o7592NM3Xh8y/kfv/10m+meS0/nWYp8/CVNVrklyW5FPp\nDi59eZ3NzLUJc8ZsIys51ya11j6f7oDmU6rqu/rV5hnLSF63Mbnd/PwN3For+V4rrxtOXrd58joA\nANgaiq3DXN8vn1dV3xa7qvrOJM9Md02Y/7fTA9sFnt4vJz9wfaBf/vg62z8ryfFJbmqt3Tdnn+dP\nbbPMdio2qxLP9eZfMnD/W2v3JrkpXfx/ZJ4+i1JVv5Lkt5N8PN3BpdtnbGqu9QbEbCMrN9dmeFy/\n/Ga/NM9YRvK6jcnt5udv4NZaufdaed1w8rotJa8DAIDNaq1pA1qS9yVpSS6cWv+mfv0Vix7jNu77\n9yU5YZ31e5Pc3O//ayfWn5ju28L3JTlzYv2edB9GW5Lzph7r8UnuTXJHkr0T609Ockvf5xmLjsUc\nsTqrH+tVM+7fkdgk2d+vvyXJyVOv2R394+3dzL7uYMzOSPKwddY/t9+PlmT/Zvc/yc/2ff40yZ6J\n9T/Uv163JzlxwbH6tX6MH03yqCNsa64Nj9nKz7V0ZyWctM76hyV5w9q4zTNt2VtWOK/r91NuN1+c\nzk3MX68AAAMESURBVIq8bqtjtvLvtRNjkddtb8xWfq5FXqdpmqZpmqZp296qtRbmV1VPSPcB47uT\nvDvJwST/MsnZ6X7iZn9r7Y7FjXD7VNXrk1yc5MYkn0/yD0mekORfpfvgdV2Sn2qt3T/R54VJrkn3\nQenqJHcm+Ykkp/frf6ZNTcKqujDJW9J9wHp7kvuTnJvk1CRvbK1dsm07uQn9vr6wv3lKkh9L9y3p\nD/XrvjI59p2KTVW9MckvJfli/7gPT/KSdNfmubC1dvlm932sITGrqhvS/ZzUTen2JUmeluQ5/b9/\nrbX2G+s8x6D9r6pK8o50cf1Mkmv7bV+Sbp6/uLX27s3s92ZU1flJrkz3zfPLsv417g611q6c6LPS\nc21ozMy1B3+W7z8n+ZMkt6abB9+T5NlJTkvy5STPba19eqLPSs8zltMq53WJ3G4j8rrh5HXDyeuG\nk9cNJ68DAIAdsOhq7zK2JP8syduS3JbuA8Tnk7w5E9/GPBpbug9j/zfdh8evJfnHdN94/eMkL026\n4v06/Z6Z7mDdV5N8I8knk1yU5JgNnusFST6Y7qDf3Uk+kuT8RcfgCPF5fbpv5s5qhxYVmyT/ut/u\n7r7fB5Ocs0wxS/KKJH+Y5FCSu9J90/oL6T7I/8hW7n+SY/vX4ZP96/LV/nXavxX7vc0xa0luMNfG\nx8xca0ny1CSXp/tpvq+kuy7X4X7fXp8ZZ5Gs8jzTlrdlRfO6ft/ldrPHe6T3jkOListu/Rs4JGbx\nXjtvzOR1m4yZuSav0zRN0zRN07SdaM5sBQAAAAAAABjhYYseAAAAAAAAAMAyUmwFAAAAAAAAGEGx\nFQAAAAAAAGAExVYAAAAAAACAERRbAQAAAAAAAEZQbAUAAAAAAAAYQbEVAAAAAAAAYATFVgAAAAAA\nAIARFFsBAAAAAAAARlBsBQAAAAAAABhBsRUAAAAAAABgBMVWAAAAAAAAgBEUWwEAAAAAAABGUGwF\nAAAAAAAAGEGxFQAAAAAAAGAExVYAAAAAAACAERRbAQAAAAAAAEb4/76Q8HECr7wyAAAAAElFTkSu\nQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1020da810>" | |
] | |
}, | |
"metadata": { | |
"image/png": { | |
"height": 245, | |
"width": 941 | |
} | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"with open('dsjtzs_txfz_test_sample.txt') as f:\n", | |
" d = f.read()\n", | |
"\n", | |
"def draw(data):\n", | |
" img = np.ones((1200,3400,3), np.uint8)*255\n", | |
" id, points, destination = data.split(' ')\n", | |
" p = np.array([map(int, x.split(',')) for x in points.split(';')[:-1]])\n", | |
" p[:,1] -= 2000\n", | |
" \n", | |
" for p1, p2 in zip(p[:-1], p[1:]):\n", | |
" cv2.line(img,(p1[0],p1[1]),(p2[0],p2[1]),(255,0,0), 16)\n", | |
" \n", | |
" d = map(int, map(float, destination.split(',')))\n", | |
" img = cv2.line(img, (d[0], 0), (d[0], 3400), (0,0,255), 32)\n", | |
" d[0] += 256\n", | |
" img = cv2.line(img, (d[0], 0), (d[0], 3400), (0,0,255), 32)\n", | |
" \n", | |
" cv2.imwrite('test_%s.png' % id, img)\n", | |
" return True\n", | |
"\n", | |
"map(draw, d.split('\\n')[:-1])\n", | |
"\n", | |
"plt.figure(figsize=(16, 4))\n", | |
"for i in range(5):\n", | |
" plt.subplot(2, 3, i+1)\n", | |
" img = cv2.imread('test_%d.png' % (i+1))[:,:,::-1]\n", | |
" plt.imshow(img)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.13" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment