{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"SWAN\"\n", "\"EP-SFT\"\n", "

\n", "

Integration of SWAN with Spark clusters

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The current setup allows to execute PySpark operations on CERN Hadoop and Spark clusters. \n", "\n", "This notebook illustrates the use of __Spark in SWAN to access CERN Accelerator logging service data__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Connect to the cluster (NXCals)\n", "*Env - bleeding egde python3 & nxcals*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To connect to a cluster, click on the star button on the top and follow the instructions\n", "* The star button only appears if you have selected a SPARK cluster in the configuration\n", "* The star button is active after the notebook kernel is ready\n", "* SELECT NXCALS configuration bundle\n", "* Access to the cluster and NXCALS data is controlled by acc-logging-team, please write to acc-logging-team@cern.ch\n", "\n", "NXCals API - http://nxcals-docs.web.cern.ch/current/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### NXCals DataExtraction API" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1) Extract data using device/property pairs" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# reference to NXCALS API - http://nxcals-docs.web.cern.ch/current/\n", "# source the nxcals python libs\n", "from cern.nxcals.api.extraction.data.builders import *\n", "from cern.nxcals.pyquery.builders import *\n", "\n", "# build the query and load data into spark dataframe\n", "df1 = DevicePropertyQuery \\\n", " .builder(spark) \\\n", " .system(\"CMW\") \\\n", " .startTime(\"2021-01-10 00:00:00.000\") \\\n", " .endTime(\"2021-01-11 00:00:00.000\") \\\n", " .entity() \\\n", " .parameter(\"RADMON.PS-10/ExpertMonitoringAcquisition\") \\\n", " .buildDataset()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "86398" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1.count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Inspect data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+-------------------+------------------+------------------+------------+------------------+\n", "| acqStamp| voltage_18V| current_18V| device| pt100Value|\n", "+-------------------+------------------+------------------+------------+------------------+\n", "|1610236888815202000| null| 45.91139405965806|RADMON.PS-10| 108.86628699|\n", "|1610237136819218000| null| null|RADMON.PS-10|109.53605934000001|\n", "|1610237338822497000| null| 45.77429965138436|RADMON.PS-10|108.89605465000001|\n", "|1610237350822686000| 19.9731320142746| 45.98755761981011|RADMON.PS-10|109.17884742000001|\n", "|1610237381823188000|19.979225099086765|45.850463211536415|RADMON.PS-10| 109.68489764|\n", "|1610237980832878000| null|45.850463211536415|RADMON.PS-10|109.71466530000001|\n", "|1610238283837795000|19.982271641492847| 45.98755761981011|RADMON.PS-10|109.46164019000001|\n", "|1610238495841218000|19.974655285477642| 45.75906693935395|RADMON.PS-10|108.88117082000001|\n", "|1610238547842045000| null| 45.74383422732354|RADMON.PS-10|109.74443296000001|\n", "|1610238758845482000| null| 46.15511745214463|RADMON.PS-10|109.56582700000001|\n", "|1610238964848821000| 19.9731320142746| 45.78953236341477|RADMON.PS-10|109.71466530000001|\n", "|1610239208852774000|19.979225099086765| 46.18558287620545|RADMON.PS-10|109.19373125000001|\n", "|1610239232853163000| null| 45.71336880326272|RADMON.PS-10| 109.43187253|\n", "|1610239359855206000| null| null|RADMON.PS-10|108.92582231000002|\n", "|1610239414856100000| null| 46.09418660402299|RADMON.PS-10| 109.04489295|\n", "|1610239781862006000| null| 46.09418660402299|RADMON.PS-10| 109.05977678|\n", "|1610239810862505000| null| null|RADMON.PS-10|109.35745338000001|\n", "|1610239857863294000| null| 46.15511745214463|RADMON.PS-10|108.89605465000001|\n", "|1610240110867365000| null| null|RADMON.PS-10|109.16396359000001|\n", "|1610240466873131000| null| null|RADMON.PS-10| 109.4169887|\n", "+-------------------+------------------+------------------+------------+------------------+\n", "only showing top 20 rows\n", "\n" ] } ], "source": [ "df1.select('acqStamp','voltage_18V','current_18V','device','pt100Value').show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Draw a plot with matplotlib" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import matplotlib\n", "import pandas as pd\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3QAAAFACAYAAAD05D4pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XeYG9W5P/Dvkba5go2NsTGwpgVwsEmy9G5Ch4RLIOCEC+QXEiC5CTfJDYEQgkNwgMSEFhIwhBYDplc3MMa9rnvv6931Vm9vajPn98doRjOjGWm0q12tvN/P8/DglUbS0WjKeU95j5BSgoiIiIiIiLKPL9MFICIiIiIios5hQEdERERERJSlGNARERERERFlKQZ0REREREREWYoBHRERERERUZZiQEdERERERJSlGNARERERERFlKQZ0REREREREWYoBHRERERERUZbKyXQB7IYNGyYLCwszXQwiIiIiIqKMWL169QEp5XAv2/a6gK6wsBDFxcWZLgYREREREVFGCCH2ed2WQy6JiIiIiIiyFAM6IiIiIiKiLMWAjoiIiIiIKEv1ujl0TsLhMMrLyxEIBDJdlD6poKAAo0ePRm5ubqaLQkREREREJp4DOiGEH0AxgP1SymuEEALAIwBuBKAA+JeU8hnba44B8AEAP4BcAM9KKZ9PtZDl5eUYNGgQCgsLoX0s9RQpJerq6lBeXo4xY8ZkujhERERERGSSSg/dPQC2Ahgc/ft2AEcBOElKqQohDnd4TSWAc6SUQSHEQACbhBCfSCkrUilkIBBgMJchQggcdthhqK2tzXRRiIiIiIjIxtMcOiHEaABXA3jJ9PDdAB6WUqoAIKWssb9OShmSUgajf+Z7/TyXMnT2pdRF3PdERERERL2T1wDrKQD3AlBNjx0H4CYhRLEQYpYQ4gSnFwohjhJCbABQBuBxp945IcRPo+9TzJ4gIiIiIiIib5IGdEKIawDUSClX257KBxCQUhYBeBHAy06vl1KWSSnHATgewG1CiBEO20yVUhZJKYuGD/e0IDoREREREVGf56WH7lwA3xFClACYDmCCEGIagHIA70e3+RDAuERvEu2Z2wzg/E6Xtg+bP38+li5dmnCbhQsX4pvf/CZycnLw3nvvWZ679957MXbsWJx88sn45S9/CSklbr/9drzwwguW7T766CNcddVVaS8/HVzaghEUl9RnuhhERETUy7QGI1i9j3WEnpQ0oJNS3i+lHC2lLARwM4B5UspbAHwEYEJ0swsB7LC/VggxWgjRL/rvIdCCw+1pKntWUBTF8reUEqqqumztzktAd/TRR+PVV1/FD37wA8vjS5cuxZIlS7BhwwZs2rQJq1atwoIFCzBx4kRMnz7dsu306dMxceLElMtHfcsHa/fjpqnL0R6KZLooRERE1Iu8V1yGm15YjkBYSb4xpUVX1qF7DMAbQohfAWgFcAcACCGKANwlpbwDwMkAnhBCSAACwBQp5cauFPhPn27GlormrrxFnFNGDcZD145Nut3rr7+OKVOmQAiBcePGwe/345prrsENN9wAABg4cCBaW1sxf/58PPjggxgyZAi2bduGzz//HJdffjnOPPNMrF69GjNnzsT27dvx0EMPIRgM4rjjjsMrr7yCgQMHorCwELfddhs+/fRThMNhvPvuuygoKMDzzz8Pv9+PadOm4dlnn8X558d3dBYWFgIAfD5rnC6EQCAQQCgUgpQS4XAYI0aMwIknnojbb78dlZWVGDlyJNrb2zF37ly8+OKLXd+pdFBrD0agqBIRVWa6KERERNSLtIUURFSJYFhFQa4/08XpE1LKOimlnC+lvCb670Yp5dVSylOllGdLKddHHy+OBnOQUn4hpRwnpRwf/f/U9H+FnrF582ZMnjwZ8+bNw/r16/H0008n3H7NmjV4+umnsWOH1nG5c+dO/OxnP8PmzZsxYMAAPPLII5g7dy7WrFmDoqIi/P3vfzdeO2zYMKxZswZ33303pkyZgsLCQtx111341a9+hXXr1jkGc4mcffbZuPjiizFy5EiMHDkSl19+OU4++WT4/X5cf/31eOeddwAAn3zyCS6++GIMGjQoxb1DfQ0DOSIiInKiRusIISX1EWnUOV3pocsILz1p3WHevHm44YYbMGzYMADA0KFDE25/xhlnWBbiPuaYY3DWWWcBAJYvX44tW7bg3HPPBQCEQiGcffbZxrbXX389AOBb3/oWPvjggy6XfdeuXdi6dSvKy8sBAJdeeikWLlyICy64ABMnTsRvf/tb3HPPPZg+fTpuvfXWLn8eHfxUBnRERETkQJFaHSHMgK7HZF1AlylSyrj12HJycoz5cFJKhEIh47kBAwZYtjX/LaXEpZdeirfeesvxs/Lz8wEAfr8fkUjX5yh9+OGHOOusszBw4EAAwJVXXonly5fjggsuwLnnnovKykqsX78eS5cujZtTR+RE76GTjOuIiIjIRG/0jSisJPSUTi/03ddccskleOedd1BXVwcAqK+vR2FhIVav1lZz+PjjjxEOhz2911lnnYUlS5Zg165dAID29nZjaKabQYMGoaWlxfg7GFZQVt8O6aFGffTRR2PBggWIRCIIh8NYsGABTj75ZADa/Lrvf//7uO2223DVVVehoKDA03eg7KCoEve+tx47q1uSb5wClZFc2kgp8cePNzEjWC9XVt+O655bgsU7D2S6KJi5sRLffW4Jmjq83XOod5syZzt+/uaahNvUNAfwy7fWoiPEJBPU++k9dBxy2XMY0Hk0duxYPPDAA7jwwgsxfvx4/PrXv8ZPfvITLFiwAOPHj8eyZcvieuXcDB8+HK+++iomTpyIcePG4ayzzsK2bdsSvubaa6/Fhx9+iNNOOw2LFi1CazCChvaQpfVj1apVGD16NN59913ceeedGDtWG556ww034LjjjsOpp56K8ePHY/z48bj22muN102cOBHr16/HzTff3Ik9Q71ZXVsQ7xSXY8mu9FZCOYcufSKqxOvL9uF7/1qW6aJQAooqsa6sEbWtgUwXBXVtIawva0QowsrSwWBffXvSZG9rShvwyfoK7K5t7aFSEXWeHsdxyGXP4ZDLFNx222247bbbLI8tX77c+Pfjjz8OALjoootw0UUXGY8XFhZi06ZNltdNmDABq1ativuMkpIS499FRUWYP38+AODEE0/Ehg0bjOdqW4Jxrz399NONeXJmfr8/br05s2984xueevooC0V/1nQHYAoDurThqZcd8nO19s9gOPMVlByfNvyf5+HBIdcnklZ89esErxeUDfRRPBxy2XPYQ5elGICRFyoDul6Pw1ezQ36Olnq7Nwwh8kcDOrZ+Hxxy/CJpxVd/ltcLygYKs1z2OPbQZaHJkyfjrbffQURRkZ/jhxDAjTfeiAceeCDTRaNeJtZKlt6LqhHQsW7RZaygZYf8nN7TQ5frZw/dwcTv8yVtdNOvE7xeUDbQr01sdOo5WRPQOWWZ7GuklFAl8MADD+D//c+vUdsSxMlHDEZuTvd2tGZ7b6CqSrSHFQzM9364B8IK/D6BXL9134YVFYoqU1ooMxhRUHKgHSMPLcDgglzPr0sH1UgdnN7fMKLyIp0u5npceyiC/nlZc1m2aAtGUNHYgdFD+qNfnvX8CCsqIoqMezwRKSXaQwoGpHDedqc8PaCLdH9SimBEgZRwvc74fVpZenIua3MgbLl+tQYjKV1TDwZSSuyqacWQAXkIKyqCYRWFw7zNnU8k1y+SXlP123AmYvhQRIUqne977aEI8nP8Rq+x19fRwaUjpCDXL5ATrTO5Dbm0163c6lqUuqzYgwUFBairq8v6wKKrmgMRbK1shqLKHhtHL6VEXV1dVme/fGruDnz9oTloaveeEW7ii8sx5fPtcY//1z+X4KQHZ6f0+eUNHbj8qYX4altNSq9LB2kMuUx3D11a365PM7e4T5iyIIMl6ZrifQ249MmF2FLZFPfc47O24YcvLXd4lbvnF+zB2IfmoKY580lIAG3emk8AwR5IRPK79zbgnulrE5YF6LmGlZV76zFu0uf4art2DdtZ3YJxk+akPXtuNrj0yYV4fdk+PPLZVtzxenFa3jPH5/M85DIT9aBHZ23FbS+vdHzulD/Owf0fbHB87oEPN+J/kmTvpIPD1c8swouL9hp/u/XQ3fj8Mjzz5U7j75MenI2bXmBCsHTIiua10aNHo7y8HLW1tZkuSka1BiJo7AgDjQVoDoTRFlTgaypwbBlLp4KCAowePbpbP6M7fbqhEoCW8fGQ/t56yKqbAqhqiq9IbtqfOBOZEz0TXSZaoIxWsrTPoWNEly7mRdqrmgOIKKrRyplN9O+h9x6ZVbcEsbu2LaX3m7lRO28rmwI4fHDmG5SEEMjP8fdIQFfdHERDe8j1ef2a31MJBz5Zvx8AsLumFRd/7XBUNAWgSi051wkjBvVIGXoDIbSgXk3z9TTX7yUpij7kMq0f7UllYwA1DonYdO8Ul+OvN4yPe7y6JeiYwI0OPtXNAVQ2dRh/qy7LFlQ3B1Bta6RbU9rY/QXsA7IioMvNzcWYMWMyXYyMe37Bbjw2axuW338JXpmzHe+vqcSy+ydg5CH9Ml20Xs3fiYxwqkxfZUkP6PIyEtBp/093xc9YWJyT6LrMflgGIioGZmFApx8Tfoeh8aqUaA6EOxWs9qaR9vm5vh5ZKkCVEq3BiOvzPT2Hblul1hM3eoh2rwmE++5aaH6fMNbYSut7JvktY0Mue/6aG1HVTvUMSikR6oEhypR5qoTl2qgfz/a6hyoz0yjRF2RfraEPC0dPFkXKHpnHcbDQK5ip9FKpUqZtOJPeQpXXzXMdnUhjHHt6K6HpbqHuy+wVtGytLCtGD51DQBcdJp7KQti9sbEgP8fXI9deKZEwoOvpOXTbqqxDK/Veyt73C3U/IYRxzqZr+GOOX0uKkuj9MpkUJaw4n43Jvr+UzHLYV0hIy2/tvg6dZGKfbsKALovoJ4uqyh4Z9nOw6FwPnUx/D10GAjr9K4fTXPHjwuLpYw+OD8qALnoDb0hhHqt+zxfoPV10eTm+HslyKSHREoi4VpiNOXQ9UFlW1VhvoX6o6sdoX6yX+YXQztk0Hpa5vuSNjplch07roUv9dRKyR3q0KfNUaU2+5jbkUpV987rRExjQpaimOYBHPtuCrZXaXKqN5U1YuutAj3y2fmFUZecCur9/sQOzN1Um3W7ulmrsqmn19J6BsILXlpb0aI9NKKLitaUlnisz+vCk1HroUg9aaluCeH91/MLuf/p0M4Ds66FraAvhkc+2YEN5/Ph2txa2zzdX4W9ztsU9/saKfXh1yV6HV3S/kgNt+PNnW1Ba1255vLE9hOkrS42/F+yoxbaq1OdIdlXckMtekBa/M/RhaOYRlXM2V2FPbavRWtsYnRcmpcR/lpWgI5Q8eE005PL91eV4p7gMj87cmlJZ/+/d9Z1KUtRdc+g+WV+Bikbz/BMtQLYfCzM2VOLJL3bg3eIyAD0z5LK0Pnbe6Oe9vg8aO9zn+QFa8pQvt1Z36fNnbtS+85dbqzF5xhZMnrHFSM7i1Yo9dVhT2tClcui04ZHxj68ra8TyPXWdek99GHJDWwhvrNjnGMiv3FsPQMsm2xnnPjYPj87casxNTURKiWnL96EloDXAhBXnXpVkFfMlu+pQ3RzEO8VleHHhnk6VuyuW76nDujL3+VkRRcUjn23B4p09U4fraZ+sr8A/5u1MvqED+/3RyWcbKlDeEL0+yNgoMiB2bbIfb6r03kOn1xue/GIHZtneZ8GOWjzy2RbLufLKkr34/vPL4ubo9RUM6FLU2BHGS4v3Yu8BbYL/tf9YjB+8tKJHPtvooZNAsBOt+NOW78NiD8HnHa8X49t/95Zt7x/zduGhTzbjo3X7Uy5PZxWX1OOhTzYnvFCb+YweOu8Vsc4Mufx0fQV+8+76uGyaO6q14Dijc+g6UfFrCUTw0uK92FkdH9y79V6u3FuPV5aUxD3++eZqfLi2544Rs/r2EP69eC921VqHjf32vQ2474ON2FyhZWW87eWVuOKpRT1evoNlyKVTUpR739uA15fFKqj1bVoA8MWWajz48WY8Pjs++PeqNRjBb95djz98tAn/Xuy9saAtGMF7q8vxo1dXpfyZ3THkUlUl7pm+Fu8WxxqD9GOiJWi9lizeVYu3Vpbiiy1akNQTPeX2QBMASuu0+9+sjVUJX3vpkwvx49e6lgly8a4DeGNFKf46ezteXlKCfy/eiyccMhAn8tjsbXjyix1dKofOJ5wbtK57bglunppaJled3uP64dr9eODDTahwSMi1Ptqw1pklaPbUtmJ/YwdeWLgHv3lnfdLtS+vb8YePNsWOM6VzPXS6TF3/b566HNc9t8T1eVUCLy3ea+zbg82C7bV4a2VZp177i7fW4r4PNmJ3rXPjvpQS90xfh7eiQZ8qbUMuowfM/O21ttd5n0M3e1MVPllfgTdWxNddV5fU499L9lqWM/vTp1uwsqQejSmMBDmYMKBLka8T87HSxdxD15lx6T4h0j4ZVW+h7WyrYWfoFwqvQzlyjIDO+2eoqkz5xqkHgAGXCl9+RoZcOk9MToXTK/XWN/tNPsfvnH57cL9cNAd67hgxGz4wHwDisq3VtWp/e+kl6k4HS0DnlBQlGFHQEVKM76jfaNtC2rGQKJNjsgqkosSuA6kc3V25dmsBXZqXAJHa/EJzA5JexFbbORNWJHJ8sbWeemLZAvPu0gPzlmi5euJY9Qntc8Oqiiu/fgQuPWVEytez9qCStqF/5gQm6bqd5kRHkVQ3a9ckxeH76XOROpPU2qminXD76L7qiP6+Xa3vSCnhkPy21zhYl8Ty+zo/53JPNCtxrssPp6gSiiqNa4GEdb6c26itVHroEm2mylh93K6bE7/3Wr34FOud9PkhmUgKETbPoevEsKzuSLesy8Tl0Ou8MH8n1mzShzylQr+WmX8b840iM3PoogFdJyp+iYa6uVUKcv0CYYeMaIMKcozhOz1t+CDngK4zcyu7g/2nydYhl0YPnT924EQULYGTXj+tN4Zcan8nuu8m+1XMaRp6apJ9dwy51MtuPg7188eeGEVRJXL8PmMJlJ5YtsC8b2M9h1q5vDYsdqVX0xdNQqKo0WDW50s5wAhElLSd53qWy3TWGfUAvbpF65lzur7qDYyiB9K+6p+vX4vCinPCFq97NKJK18p3JulFOkjjOfhE8uypbvT7tdvPpp+DbUHt3FaldMxyaSel9wBaQroe76qUroFbT5wjvREDuhTprc+ZqATGeug6d4P0+0TaKz56woJMXBC9DqHsfFKU1CpusUnAsd/G/JmZmUOn/b8zw3Ri7xH/Wrd9mev3QToEw4MKcjLWQ1eQ68eggpy4gE6vYKQ7BXmqDtYeOiklItF5YPox1GAP6BLcePXXuG1i7TlKoZW9Cz93Xjf00OnFtgZ02v/je+hU5PhEjy5bYP4E/ZKrj8hItnaazv49UqGPLIkoEn6fDz6fSLlhsiOkpC0xlE+ItPfo6ElRaqJzf5zu0/r9qDN1VUtiIQ9F1xsK9GtRREmtF9wuEFZ6Z0CX6QJ0M18X6nx6o43bNSYW0EV76KSth87lc6WUcY2Yibj9Rqp0v3+wh4488ffw+j9memuoYspymcq5qrXWpLdMmbxGew1S9Dk9KQd0Kf7GeiXD3MNifotMzKHTj490Z8Nz6xnIcUlAM7ggF6GImrFg5fBB+ahtde6hy/Qa6fYbX0eWBnR6YKyP0NHPt6Cpd6QhOodO/8ZduXzY91tPxOX5Ob5OzV9OxKmHzt4TptN66ESsh64nAjqHHjq9Eud1GGNLFwI6IWLDtPw+bQh9yj10YSWlOdSJWHo90rT79WuRvni3U8CY7kzFiRjnrmnIpdP55TWwDUTUXl3JPkg76ODvQg9dsnUP9WHBbaFYNl7rsgVuQy69j6hItJlM0EPXGxsPegIDuhT5Ta36+02TxV9fVoLz/zovbvvC+2ag8L4Zju9V0diBEx6YaWTMVFSJwvtm4MqnnRMzhCLa0W3v2k70GWY+D+OpH/lsi+Pjf5m5Fc99tcv1dQ99sjmuHD9/Yw0K75uBXTUtrq+ze3SW9jmnPjQHhffNQEk0+YyTZMON5myuwqmT5hjv4bb9Ha8V4w8fbbQ8pqrA5opm4zudOmkOalqcMyf9/M01uHnqMqNCO3lGLOOeeX//79vr8MOXvE2aV1WJW15akXI2t7j3MYZcpn5Rv+KphQC05CFLd8cmJJc3tGNZNJubhPX408fbT124B3/8eJPxmkEFOQCsFbvpK0vxy7fWWj7z1++swzurkk/i/v2HG3GV7TyRUjt/bnphGQBgTWkDznn0S0x4Yj46QgpqmoP49+K9GDdpDgJhJdZz6+Hm8qdPN+PWl1di6e4DuOmFZYgoKr773BKcOmkO7ogmfZgyZzuemust8cI5j35pZAN16qF77qtdjpkbw4pq7O/C+2bgjtdWYUtFM8ZNmoPZm5wTVFz+5EJMXbgb93+wEf9ZVgIA2FDeiBP/MMvoEQCAn7xejM82VADQrkVXPr0IhffNiMvcN3tTFW5/ZWXc5+gNGjm2NdICYTVu2QKjImi7706KXkce/Ch27HznH0scGwLsP5vbte2iv31lua45raj12tISXPS3rxxfb5af6/cUxIy533otvO3llUa2W92inbUovG8GTvnjHADacfj8gt148KNN2Fyh3RNaAhF8tHY/fv7mGgBaI5bf5zNl7k1fa8TlTy60nLMA8E5xGe6Zvs74W0ZHh6wq0TJGhhQVtS1BFN43A5c9aU2kZT4/L5oyH8GIgvF/+tySre63767H3dNW49RJczDhifnGuWum9Yhpx5Pf53MdRvb47G247rkluPXllfho7X6MmzTHuEcHIio27W/G03O1jH/m64DZ/sYOXPX0Iqwva8TVzyzCrI2VuP6fS4wRMTXNAVQ1B7CjuhWfbajEngNt+NofZhnZW802lDfiuueWoCOk4D/LSnD/BxvitvnTp5sxdeFuI0Cvic6hM3+9T9ZXYNykOcYIA/th/p/l+3Df+xuMe8aCHbW4/4MNKLxvBibP0I57Yemgi993O6tbcNzvZ6Ksvh1fbq3GLdFEb3rDcVhRk64LWd0cMK5L9vUm24MR+ITAxvImx2NlTWkDbvjXUseRR//37npMXbgbpz38OV5bWuL42XdPW43C+2bgp687J+C5Z/paFN43A/873Xq/EcZoAufv9NxXu/D1aF1k3KQ5xuO7alpReN8M435eVt+OcZPm4NP1FcY2+r5I1oj567fX4Xv/Wppwm0Qiioqbpy6z3KN12qis2N8r99bj1IfmOB6vbl5ftg/jJs1BU3sYb64oxbmPafXccPTa0xaMxEYCRWIfVmMaEfP5Zu3e9K/5u9ERViABbK1sxnf/sdjyWbM3VeHHtmRV5mP3e/9ail+/rV2PtCGX2pMX/PUr3PmfYsfX6CbP2GL8Xm+uKMWpk+YYDYwHCwZ0KTK3Pu82pfb/48ebUVbf4fIqZ19urUZYkXhjxT4AsWGUeoBnp7d+aDfV1G/kfpG8+32eSwCxdPeBlFMyb6/WAjm9cuLFst11WLG33miZ3plg+YRklZlQREVLIGKaQ+f83edurca05db0vPb91BKIuDbjtQUjaA8pRoV2mWk/2eefeG2pDikqFu86gPUeM3m66UpSlDZTshDzvMAlCTKl6hXNxbsOYOnu2H4YXJALAJZ5dF9sqY5LHb9gey1W70ueXjwUUeMqDfrPuyKa3nvT/iZUNAWwp7YNFU0B1LYGEVZUNAe0G5B+M/DSWvjKkhIs3FGLdWWNWLG3Hh1hBcGwgpZABAt2aN9h6e4DWLbb2zlS1xYyfpO4ZQsiKpbtrrMcRzr78TN3aw0e+GgjmgMR12HY26tb8JeZ27B4Vy1WRivirywpQSiiYlE0XXdYUfHFlmrjeOsIK8Z16J/zd1veb/Gu2rjMZUD8kMuIqYdOP1WNZQuir7GvMbdop/a+7SHFSJyiqBIHbL2rQHzvgFubRUN72DIUyOnnfuiTzSixLWvhxGtSFPtnLNhRG5f91X49UlSJ4pJ6SzbA1kAYa0obMG9rTXQbFbnmHro0zqFrCYTjEgQt3nnAcp6pUlqGLmsJabQy7LBlw623VZaqm4Jo6ghjsqmhYuHOWizbU4eWQARN7WHHOXl6VsnYHDrngG7RTu38XLijFm2hCJoDEQhoDQ16EN4e1o6pYERxHAK+o6oFWyqbMXNTJTZXNGPain1YU9poZC6O3dOajNcEo8Gi3ZaKZqwra0RNSwDL99Y7ZphetrsOK/c2GCMb9N558zUpEr1m6ezHfXGJ9t7BiHbP2FjeaOz7FxftjftMp5Etb68qg6JKzNpUifVljcb9NzbkUiZNqGZef9KcGRXQzkGfTxhBQF2r9djYvL8Jxfsa4jJEA1qWxM0VzWhsD7vOw9b3W8Dl3NTneS20LU+QrB9n+Z46Yx6r+TdYE71HLdmlXaNVKdEciDgOQa5LEjS0h5QuDUluCylYvqceG8qb4p4TtrwJU+ZsR0swgi0udUwnrUHtXPL7BX7/4UajkUS/9rSbkl6Zv7+53qdnEV1Vot2bpZTYVtWM9bYybyhvtDRi26+jTR1hI+mcOSlKaX075myOLY/i1EP34qK9xu8VjChdGjXQWzGgS5HfVAns6nw0fSigfmIke7tQ9EBWpOzUHDovE2SbO5wvmFI6Vx4SXRD1YX6pZBezz4VJVN5klRn9WT3LZSq/l+O2CebyCJcMoubH8nP8noc/6BfGrlbYYssWdK0l33yh3lbl3uOqT+4PRqyJUZx66PbVt1uGa+if46U3Mdfvi6v82Ss69n1d0xw0hmiYJ1SnMh/HPJy2X54/+rmxz0vl99XnVNqPtWBYQVhRHY9B+3cUAlhb2mh8fiLaORydh6M/Fv2/MRTSYZiN33bc670IcQGVLSmK/lnmHjqjkq930NneW//tVSktDWROQZT927r1ICjRnp10SDXLZSpzrRRVqzSbE6G0Rlu/O8Jag5HWSyWMAKC7h/7bgzJVahU4XaJh7+0ha4VJ/33Mv7kqY8dNKKI6ZgI2J0Xx+wR8LkMuzeemfs/xCWH5vWKiSCnEAAAgAElEQVQdw849M/q2emBb3qAdg3ovvv7d7d87x36SwLwIu4pgWHUc2i2jw89ybMen+Xe1V07tX13fVr/GqzIWwHilL+0jpfW80vep28Li5odyTVMK7Pfx9lDEkpSt3dZwkGgEazCiwC+0QL7NJSOxXi/LdRmDp+9Ct6kHia4dTpIFaWbpnu5gp+9Tp8/xC2EZgXKgTbt2Dx2Q5/n99XMix7RvtfnR2uOtwYix99ySJMWPpnCv75qvCRLS0uhnvparUrpO+Uk24jI2hzvxdtmGAV2KckxBWFfnbOg3Af3mkOzt9O3Mc+hSkWyCrJQyrtcj9pxzUJAoqYFe3lTKah9OmqhClCxI0V/bmfkmTpvaexPMn+MTzkP3zDcE+/CHRPRALtzFQEzfB11JigJY9932BAGdPk8wGB1WoRtk9NBplTxVlSitb4cqrXPGIqr0NNcl1y/iWkPt39B+M+4IK+gIxZb+6MzcSr0hRQLol+u3fK7icd6lXnHXj8u4coYURFTnieP2tx8/+lCMP+pQANoQ42SMfWY7lOtsc9vMh7LfVkmqjvbQ2Mtt76GLnf/xyxYYlXtb+fTjfke19RhzyurrdQ5dJNqrZWznvJkneSmuQ+dWAQXiv7tTI2FLMGJZzDuiSOT6fMZ9qLvnVcUHdNKyRE2ixjq3bK3m66iUsZ6fkKIiL8cfv320sUwP6HJc7mPm3yUW0FmvL/oxa2Q3tB0NeoVUD4iMgC76OrclTuznCGBehF1BMKK4ZInUAtVcW0Bo3tRne2/7fUZKa4OrKqVl7qWX41X/BPv8Jr03RDuXEx9r1nPM2qPXHlIsyybZ5wnr+9f5d1WhSIn+eX7X/a/XQ5x+BzP76ZIsy6XbvaG+LX7EgNv7eLn3JhvOmkgsGVv8e/htvdn6+exPEsmYj1W9I8Ea0Dn30LldD+y7UZUuczKj/7cc46ai6r30ehncly1I8v30tz7IIjoGdCnSG9LS0UMXy1QWq2Qmop8soUjnFvn0C5EwAURHWHG9+Kiy8+uypdJDp0prlr9E9ZVk5dH3kX0/Jy2Dy4e6nftSwhjaE/+cuaXVe2+QHsj1xh66RAGd3khhnzcQ66HTKvTVLQHjuDD3SERUb0FRrt+HsO248jKnqq4tNkfF73Pfzo05sDACOqk3tHgLDvXvrQd09o8PRBREPPbQ5fl9ePqm0wAAczZXY1uV+1AaKePPGSP7ZPRGr3+m9bi1Hvi1RiY+6/vrr7UnRQmEVWPZgob2EFRTggX7OaVXqO3DtJ3WdnT7fDs9EEiHVJctSGWuSkSJ7+FtDcRav9tDEURUFX6fMBpOlDS2/jvtPXtAJ6W09P64tchHFNWhB137v72HTv/OIcWthy7WI5DjE/D7hGNvhDmA1H8jIYTlWmQEdLYyGd/HWH/NmuFP/7+9Z8n+3ayPxQLxYER1vJdJ6Xx8qrb7htP72r9T2NJDF7umVjYGkicfMgW45rfXr3deFha399DZ7zmJsmzHrjvWx2W0gVeVQP+8nLhe39h7a/936ikFYr+3/fxKVqF3K6+9h87e2Gv+jZLde7saUxj3eKfhyj5h2aexBrXEzAG3fi6Zj1GJWANeq3kOnWsPnfUTVZm4DG7r3CqqtEyV6GxSlGQZlLNVTqYLkG30g3pHdYvjZNdlu+vQ1BHGySMH4bDogsYA8Lv3NuCEEQMBAN86ZgjGjjrEWLjxQGsIZfXtlpPoQHS+z8hD+gHQKsgb92vjjf9imoOQqHJtt726BaOH9MO6skb0y/UjrKj4+pGHGM/be+ciioqZm6pQ0diBbVUtGDtqMMKKit21rTjpiMEA4JooRHt97IbW1B5Gbau27fGHDwKgjZd++NMteP6/v4Vh0X3V3BE2Kt2AvuiuxLxtNfD7BC762uFYZxpitqO6BQ1tIYQVifNOGGb5/HXR+UD6mO+66H7+bEMlvl802vL76FRV4pl5Ox2/j31uV3MgjA9Wl2NzRROOGz7QcrPYVtWMXL/PcmHR1y/aXNGEysYARh5agJqWIIYPzLf8DgAwY0NldB/GXyBLDrThsIF5Rq9XMKKgtK4dJ4wYFP99oheuTfubsbO6BSeMGIT3V5djcL9cXHrKCLSHIli44wDGjhqM+rYQGjvCuPDE4XHvowcC01eWWm5m5pvV7tpWY8ilPh+pNRjB4p21xu979xtr8N3TRuHacaOM1/3PG2vx5M2n4chD+yEUUfHZhkocOWQrfnDG0TjmsAFxZQGiAV10f++qacWRh/bDngPWOTxO95ZqPRhRpVE5U1Ttt3RTappbpd/ctle1xLJkSm1OTURRUd0cwrNf7sTNZxyNhvYQjh7aHwW51l4HvaKrNzTYKw0r9tRH132yliMQVjDb1gsXUlTLfIgrnlqE4j98G8MG5mNNaQPabUOv9N/LGHIW3Rf6/J51ZY3YWtmMEYMLjNd8vqUazYEwSuvaccrIwcZkd3u59eN/xZ56DCzIMXoM9zd24LCBeca+ajEFKbM3VeHUIw/BIf3z8J3xo1znyJgD6X/M24ndtW34+cXHWbZ5f3U5mgMRnF44FD6hXVev+PoRiKgSq0rqsXpfPcobOvCyaS5bY3sIh/aPDT+S0rru0ZaKZhx/+EC8trQEp48ZippoQ8Ta0gbUtYYQUSXGjhqMo4b2j+1j04G3aX+TZb7QgdYgQhEVow7tF1eZVKSMCxhW72swhji3hxTsqW3D6KH9MSA63DeiSry1shTL99Thd1echFGH9rO8fs7mKgTCCq4+daRxbgLaOSOlRFVzAOcdPwxCCFQ2BVBa346algDW7GvEoIIcVDVbr+8VTQHLHL/aliA22ubBLNtdhwH58T1t+nHT1BGGlBILdtSivi1kDD2WUhvSWtsShKJKHHGIdgzqPTtC1SqoczZXoTkQwaKdtWhsD+MXb63FrHvOt9yP9flEiiotc4vsFbmXF+/Ft08ZgZNHavez0ro243uZKapEWX173P7Qma+DiirxxZYq7IrO/w6GVayMzuv93+lr8aNzxxi96vprd9rmH5rjDnvldHdNK2qaA2jqCKMg128kaHt7pZZMKhBWLA0J5Q0dGDE4/l63o7oFLYEICnJj9yn7kMvZm6vQEVLQFv1vf2MHNpY3YXBBDooKh1re7973Yklf5myuQmvQej9etPNA3H0uEFZQ3tBu9Lztq2tHfVsIY0cNhjANl1VVrYfO3OM9e1MV7pq2GvddeZKx/+xDV+30a9SWimZUNnXgkpNHAIAlwZ3ZPtu82n11bTjmsAH4YE3sHLj07wuMY1ivu5gvjevLGvG1EYMs5/sXW6qxprQBl54yAjUtQbSHFMzeVIna1hCG9M/FsIH5aGwP4ezjhmFzRRPWljbiyEP7YcTgApwyajCW7DqAy04ZgRy/z3H+2trSBrQFFWwobzTuN+b5iatK6jF/ew1GD+mP/nl+nDFmKPL8PuysacXJIwcbgZ/2Xlo96h/zYknxVNOQy1BENT5brycUR+fKmfe7ed6plM7rGurX/7lbq3H1qSNR3tCB/BwfDkSvoeYeusqmgJFkyy6iqpi5sRInjxyMoQPyMHtTLBHTrpoWo8Fw5Z56rCltgKJK3HH+scaatdmKAV2K9IrQJ+srHIeUTHxRy6Iz6dpTcN4JsYrx28XWzH1TbhyPZ6MnyOJdB/CT14vxgzOPNp4vemQuAKDksasBwHKC6YEdAPzIlhHITWWTdsH6clsNvjQlonjnzrNxxhjtwmwP6NpCiiUL4c6aVvxl5la8sqQEC357EY45bABmbnQf5qVX/FfurcNLi/YYf295+HL0z8vBd/6xBABw8ZT52DjpcgDxF1YpJdaUNuDH0UyCOydfiamL9gDQTv5rnlmMkKLiayMGYc6vLrC89tVoRiz9YvCXmVsxMD8Hj8/ehvKGdkz+r1PjyhxWVTw1NxbQ5Znmat35n9WWbf/ruSXYHQ3KtdTaseeuenoRVAlcOz4WuPiEtn7S9JVl+M/yfcbjNxUdhcdvGGd57z99uiVanviL3g3PL8MPzzwav7r0RADA/R9sxAdr9mPNg5fGjY03XzM/WLsfv7viJPzm3fUAtGOrvi2Eu6atxuPfOxVLd9dhfVkj5v/24vj9Et0H931gzQb65BexfXXJEwvw/C3ftDy/vaoZd01bg0eu+7rx2MfrKnC46cK5sqQeK/fW4bvjjzQee2HBHrywYI9x/NvlRYdchhUV1z67GL+57MS4Spg54DhzzFCs2FtvTJx+c2WpkRBEkRLP2xJ/mN3y7xXGv/XhSzc+b83Gd/UzsWxdT3yxA7trWzFjYyUmfWcsfnjmMZZt9X2p90bYkyAV72vAiSMGxgV0rcEI/vixNVPiurJG/OyNNZbH3lpRil9ccgKmLtgTF+Sas5ABACSwZPcBI/HJ2tJGXPn0Irxxx5mWzb7aVoN7pq/D87d8y2iZtZdPf/zWl+MzYFqG/bSHjNc2ByJ4MPqdjh02wHWYnnnY2JTPtUyih9mO9Qdt+8YngF2Tr4KUwKqSBjw7b1dcMpfzHv8KC++NHe/F+xpwerSiurmiCVc/sxgnHTEI26pajGMI0Co3K6PJmx7/3qm4aWjs2j13a2xy/l3TtAYM3Z8/24L9DR147+5z4r6jqsq4RiPzfNVAWEFdWwh1bSFcEG10UVSJ+6PnpNP76tesvQfa8L/f1q4XbcEIrnl2kbGvJ117Ci4bewQALaHQ7z/YZPkOZqv3NWBNqTVRkzkLpqJK4x5otyl632psD+Od4jL87v2NxvfW5ef4cfpk671PT4oipcT2qhZUNmlB1Z8+3WIETb94a62l51Qv/6frKyxJWPShXPp9/IkvdqCuLYRJ3xkLAFgSTWqkN7bqVClx68srsdcl67L5+A4rKu6atsa4xpmP3Y/WVWB/YwfevUv7nSSA5XvqsXxPfAVYZ++FeGbeLmyuaMaX22pw7PABGBNt9HriC+28+GJLtXHPA7SsxEccYq2o1jQHcNmTC42/f3aR1jgiHUYe1ZuCw+KSeuP3fuLG8RgzPNbgZg70n523y6jfmP3Ldp391dvrMGtTlVH3+deC3Vi4oxYf/uwcfOPoIZalmvrnW4dc3jVNO7Yfm7XNeCzHpctGj6X03/+d4jJ8sKYcG6L1jvdWl2PKjePjXldju6e8tnQf/njtKZbHzInbtlVq56t5D/7u/Y0YdWg/nG+qD/7irTUIhFVjf/TL9eOuadbrOADM+OV5ePjTLZbrwOGD8lHTEsSzE7+Ba8ePMgV0sU99afFefLG52th/9W0hXP1MLOvsAx9as9mec9xh+O+zjsHP31yD5b+/xDJqRq8X6scXEA3oTJ+nbx9SVOxv7MANtvvjS4v34qXFe42/l++pw5D+1uv39JWlRnK6/3lzLf4zZp+lPvjGCu25t4vLUNUcwIId2rXc/L105z3+Vdxjum//PXbc32HKilrXFnI8BrIJh1ymSL8weBk553ZxAeKDp5ZAJK5CatbVIXNu772mNFaBsGeYsg+VDEVU42ZuH4qTSGVTwNKrYx/2kCjbkJ49ShdRpGmonuI65Mf5vWK/W6PLXEF72fSeBSe7TTd9Ycsgqr9NpemCpPfQ2dkbFS3DNRy+X0N7yNKjtDxaCXFav8wpMYmZ3nukV+7cDmu3id3mVjcgvjW5uUP77Qb3y7U8Xlofn1EwlTmO+gLmzR1hdIQVHGgNJZxDd903jrQ8Z+7VUlVpuYHZ1ZkyLHodbre2rBFhRVoaYnT2IZdO2XG1rHLWb5Rs3oNOb8VWpIz7PfRhWfqlSUIav5FZta0nQk+WtNM0t81+LCcaTmx+qqE95DhnxGlf6ZwCPbdzWOe3Jc9wGs7XGoxYhqftqY1VzqqigYNemTJfpyTchxvar2fmURR1rbFzN27+YJLj33wNz3NY7zFRL7M5EFm5t96yP7dVtVjKrGekc6L3DJqZz51VtpZ5M/P5uLUytk/Mx3l+bvxvJKLLFqjSOofN3CPR2B5yHNp/oM3e06a/Z+wx8zmiX+fi1/9LPHzWXLk1ggc1NkLFzNxj6zZHfLfpOHQaFqjXH1oDkbjz0JwR9vtFo3GNqVFRZz9WLHPJ7EOZTb9b/7zYPaQ5EHZNonbu8Yc5Pm6nZ/LVv2F19JzTj0e9Z16VEv1z3Ydc6tyGVusBvKJKo3fIPjfRi8aOxPWe2DII1p2oz8U0yhmX6Mb5OPD7hJF8S6cHmdW2oe9hRUtEFggrqG4KWK5PxSX1RkOIk6W76zDl8+1QJfDIZ1sto8CcXP/Ppbjm2Vgj5tmPzgOg3dv0ZQ0SCSsSn5iWeADiG4v1xjMn5mv/yEMK4p4/61itUW70kH745YTjLc9dPW4kvnXMEADAy7cXGY8faqujZCMGdCmKLUacvPLpdnHpl+uPqyBLKRMGdF1dbsgtaNpk6u2zB5mOFZZOTN6zv28q76Co9gm6sbkZ5hu617HQRmuWS8XcXqlKFNCZCTjPnzK3burLRtgrs/YbtnkX2+fQRRQ1elOKPabf0J0q/OYiDSrIjTtu+xkBnZJwnoXbfEX7MW4/ZpwyZAEwWtZ1AiKlRovcaOVcH3IRCMcnHTD/HofbhlJ4zaQqpbTOJ3DpQbLTh+o4zSnQH9MDOqfzXvs+1se8LpaqX1tU29wcKaXx2ea3KqmL73Wwf5T++1c0xSom9kpIooAkYqt8O0k0/88psYNbAiedENZjKt8h4QZgTTqxv8F96Rn7wt9eG5PMrevaPDjn/ZRsLuduU1CWY8uQbP+3nfn4t6fPF8J6nCa6D/XPTzyox20tRMA6r9a6WHlsG7cslzrz8Wy+hrvd3+xJNJwCKPOlSf9t7MGhosqE+9f83fTy6u9lL0NbyNow4GSFqcfOqa4RW94g/rub/z5jzGEYmJ8De/OB/Z4TNDXo2Y9D83FuDugTZfUdfWh/x8fNzK/VhyzqjQPmhDL63/3y/K5zGHXmYcVu9IbdzkyfStag1x6K4EBrMG6k0exNVVi88wDmbavGrI2VccmS3N7312+vN4Y82j0yYyvOefRLI4B6Y0Upxtw/Eyc9OBvFtp7+n9pGFznRG6g/WV/huCyNWX6OD4f2jwVAJ0anEwHAaabhxIncVHSU5e9l90/AINP15d+3FVmev+yUERhckIPbzynExz8/13j8pdtOj3vv317+NQDA/132Ndx9kTWgu3bcSHw7OtT2nOOGYVQ0IDQPm89WnodcCiH8AIoB7JdSXiO0K8IjAG4EoAD4l5TyGdtrTgPwLwCDo9tMllK+na7CZ5KXxYjd6l+KQ+IHVcZ375s5LRqZis4EdG5BD5BadqC4gC6F4FSV1mx/jR2x4VpuE3CTvV+i1yq2m/ZhA7yNqfYJ5wnf5oUrRTQpTXxF3f197UMu9Qu/+WaofxWn6QPmMg0uyIk7buN66FwOa7cbTq7tQ+0Bj35DjpsHUtuGIw/tZ7nxpZJ0Rw+GmqItph0hBbn9rJezRBlSzcdUonM5pFiTGaS6XIhTr4F+7OmVGKc11iqaAig8zHqDER6b34xhSjI+2YK9UiqldW6EG/14q2iMtfLaz+NEAYk5KK5vCzseZ4/McG8Vdjr+kiUc8Qkk7aEDrBU7e0u6mTk4VGWn2rYs61XaJUuoY1731O+Q6ClRgHn4oFgrtn0dSeFhORudUw+d2SzTXBU7c6+Q26c5Bd3mQ9h8GTFn9XO7Ptl7kGJZLmNvZP7qbkGbKmXCjMPmpD36tU7/LPu8O/u8VicrS2JrUNp7C4HY+RSMKJZRIHb9cp1/L/stR28Yc8o+aL5X5ud6C+jckpOYtYUiceXQe+D0Mhhz6CTQP8+P/Y2J911tSwAlB9oQjKiWa+/8HbFpJtNXlWLain2Q0joE9M+fbUEwoiAUTWLjdO2esaESxSVzXT9/1qYqzHJo1Fiwo9YYIpiKZOvFnXv8MFQ1B4zpA/dccgLyc3346+ztlu1+f9VJ+MvMbU5vYfjVt0/Ek3N3YNY950NRpaUHzu71H5+JTfubcPNUbXj1H64+xRhqf+cFx+LuN+KHj5qdUTgU3zzmUMtUpJGH9EvYa6pn7Ew08k2nZ7POy/E5jICy3qsqoj2XRw21zj/ORqnMobsHwFZowRkA3A7gKAAnSSlVIcThDq9pB3CrlHKnEGIUgNVCiDlSyq6tlpxB+nHg5WbuFvSEFDVuiJcqpWuCkfZQJK47OlVuyQZK6trRHAhjcEGutx66Tohfc8Z7TUhVrUPPzEM9OxPQGRnBXG7cne6hE87fyzxp1++LDvmwbWMPdszP23tyQ8YNztpbALj10FmHXNpvwH6fQK5fIBBRtKFNLlWt0vp2x5u31x46p2vw2FGDjYBOiNTW69ETijS0afu3I6zEDSk1B2pSAiePHGzMV7PsP9V9CZJAyPZ9PPbQ6ZyO0aBtyKVTQKeV0fq31yGX+rXFnBEMsA4T1IcgVTR2OA7VtYsYAZ17D12ioMDcS9HYHrJUDL0IOpQx0RBNILoGk+k8dxrOB1iDhPIElWPztcHcWBCX4S5BmQJhJTaPy/ZzJg3ozMPwov83N/gk6kHqH01ScqA1GLeOpD3wTcQ85M5JdbN7o6R9gXInjj10pouH+XrjdEwk+kzAPIfO9JgpUHMbJZC8h840WsT2XmW24eXmHjq3g8U8DNtp0elA9HxqCUQSTlnol+etFaihPbYOpb1I5sCmwHQOBcKq62c7LXJt95cZW4374yvRREX63z96dRXOP2GYkQBtnmnef9Ejc10b1uZurcHcrTVxj5t/H/P8scdnx4Kct1eVIS/Hh/wcH/JyfJasnWajDu2X8Dj/83e1+ZjmOb1D+ufihf8uMt77yqfj5305Wfjbi/HUlzssSVh013/zSPztxvHYe6ANF0+Zj2vGjTTm1b+3uhxSxoZaXz72iKQBnf7bemnckS5z6IDEQ791ikPDgf21TiNU9HU4k9EbBvJzfHH3TfPbmp86+iDooRNeFj4VQowG8BqAyQB+He2hWwngB1LK5M27sfdZD+AGKaVzGkEARUVFsri42O3pjJmzuQpvryrDk98/DeMf/jzp9nkOCx+b6RPtdcMG5jtW7DZMugzjJiX/PEBLNlLXGsLFU+YbN+gNky7DPW+txVcJutDvv/IkCIGkJ7zZX28Yh/L6djzj0Lr/1++Nw/MLd8dNLDf74ZlHG5NcAeCO88ZYJs3qrhh7RFxmv0Re/dHpeHtVGS7+2uG49/0Ncc8/cNXJmDxzKw4flI+VD3wbv3hrLT61jeX24pcTjo/77td/80jHC28yt559DPrl+vHp+gpUNAXw5h1n4gcvxRJxHH/4QHz2i/NQkOtHaV07LvjbVxh5SAF+fN4Y/Pi8MRhz/8y49zzr2KGYcNLhlt90+k/PwqlHHoKxD81JWJ5nJ34DUz7fHpfhy8n4ow7F+rJY+8yxwwZgj2lomP67/uyi44zEG7orv36E0Zr59M2n4exjD8MZf/nSss3S+ybgHH1IyR1n4tzjh+H1ZSVYva8BH6+rwJD+uY6ZrgYX5OD6b442EuMkMqR/Lq4ZN8pIVLPtz1fg9EfmoiUYQeFh/Y2MnZ1x3Wmj8NG6CvxiwvFxSQJevr0I//Pm2oTDiF68tQh1rUH86dMtUKRMaQkQN+ayaOv5xd8DJp5xNN5aGTs//++yE41kJLqhA/JQ3xbCgDw/biw6ytO+7qxRhxSgI6xg2f2X4KQHZwMAhg3MsyR/cHLqkYdYkkh5MXRAnjHpP9HcSrMfnnk0qpoCuHb8KExduCdpyzqQ+iLlTn56wbGYunCP8XfJY1cbyVzOPvYwY47Sn6/7Ok4+YlBcsoJUy/Xzi4/Dc1+5JxBK5PKxI4ykRG7M982nbz4NLy/ei/UeggOvvnvaKFz8tcPxTnEZlu6O9YLpCVgu/NtXjte9r40YhO3V3jJKL7r3Ypz/168SbvPuXWfj9MKhuHjKfNdEK0XHDIkbOtcZ9pEQ2eKbRx+KrZUtcQ1OE884GiUH2oxj2wv7emy6eb+5EBOeWABAO96+e1psrnVjewinPfxF3Gv65fo9NYLZzf+/i/CLt9Yixy9QVt+e9NrlxbeOGYLvF43G797fiCvGHoHGjhAKDxuABTtqE86ZS+TGb43GrWcX4tp/uPfQffvkEbjlrKNx+yvekvKlm/n+VPLY1Si8b4bjdv/58RloDymWhHb2Oopu25+viMtI3RsIIVZLKYuSb+l9Dt1TAO4FYL7KHwfgJiFEsRBilhDihCSFOgNAHoC4u4EQ4qfR9ymurU29W7onlNW3Y962Gs8LPSfr3bK3kroF1lPmbHd83MmMDZUIhBVLa2sgpCQM5gDg0VnbLNkKvfhkXYVjMAcAUxftSRjMAbAEcwAcgzkAKQVzgJaAZd62GktrtpneC6oPb+1MMAcALy6KL699XphXZfXteGHhHqPr3xzM6e+rl/ONlVrQUdkUwNNf7nRMaAFomdPsAfrmimZPLfHPfbXLUzAHwBLMAYi7UOq/68yN8UOx7CnWnTJ6vmYKEn4Y3S9//HgzPl6n7Q+3tMXNgQjeWLHP8Tm7hvawpWcyGFaNYU5dCeYALasdAMeMb3n+5HNCpq8sxQsL96AjrKQlmLOXJaw4t3iagzl9Ozu9t7wtpHRrMAdow2Ia2sOWBhO3394s1WAO0L5XY3vYczAHaNezedtrsKe21VMwB3hPsJOIU6/RIdHJ/eYKr5TS8zmdqFwFLvMQvUjWowpY75uvLS1JazAHaL1N//v2OkswZ+bWC+c1mAOAJz5Pfs++8flluC1B1kwAaQnmAPeU/J1x6SkjLH9//cjBLlsmd/WpI42szD80ZfgGgIH5OfjgZ+filR9p86POPf4w3HnBscjL8eHR60/FD886Ou79Ejnh8IGOj5uTc9kDrJUuSTk6E8wBWm/xxv3aEgTpCOYALevs+9FrYlhRsXxPPaavKrMkekrVu6vLky50PndrdZfXyO0K+/3JTX6OHwVluD0AACAASURBVC+aGryA+DqKrjcGc6lKGtAJIa4BUCOltM+qzAcQiEaOLwJ4OcF7jATwHwA/kjJ+BpWUcqqUskhKWTR8ePwaWL1JVxcTT/V9X1/mrVIKaOO07WOQnSrJTrzOodC5rccDpD7PKJ0EogtOunTLe6kEdlZFJ2+c/iRr5wCxi43lQi1Ty346pH98UhQnnRnKmozT71E4zLrGnNOQy0THWTKpZM00n37pGmqcTK6HeSYRNT7bZbr99IJjk26T6vWhuzz8WWwYU28pky7HJxznO3UnxeH8Hz0kfuiQqsqkSWS6W6qf3x2/rtP8JgCYOHU5rv/nkrQEP3ojTjKdmVOVqv5J5jym6tHrrUv9/Pi8MZ1+L3ODif1U1huvQqY54/3zchCKaEnB0nWPMicAOsY25K4hyRzdVHU1U7kbY1+Z9kmyhsJkvNxyUrm/dqdEowy//8KytDWMZAMvPXTnAviOEKIEwHQAE4QQ0wCUA3g/us2HAMY5vVgIMRjADAB/kFI6L1CTBWLpaLvn/dNxbizYXhs/CTxJK4reQua151FnT2tu5pSGvSclmjibLJGCV07TmTrb6paXk7xiPzA6P8x8oZbwlpxHN3RAnqeLcCrJSbxyytBoDuCEEI5lS3ScJZPKuWr+6O4IaJ3kuiTpMEs2dycdnJazsOstN2+3dep6A79PWBah7wleG+xUmTzBghduIx+8sI9KScYtu1930AOGdBjs4Xz6xtHeMgF21WWnjPCcAdoL+3ykrlwqLQGd7TjWgxN7UhRAmx8Vt55mEm73glrTNJdjbEmo6lJYmsmLVOdfe6UHdOYGk65er700InZXgJqq6/651PW5g2FeXCqS1iiklPdLKUdLKQsB3AxgnpTyFgAfAZgQ3exCADvsrxVC5EEL9l6XUr6btlJngH4Z667WcrfhVKlcjFuCEeysti0knOSk+/qRhwBIPVBNNBE701TpnuK9O3voOstt8rXZwGg6X3NyCWnLAJrM4H65no7f7ghonBJ62IcbOQUuNQkmn6eTuULRUwFdnoffPRRdPL27XP+NI3GgJXnFxakniKxyfD7HJSC605v2oeuL9uCf8+OH9z782Ra8t7q8y5/ntfeptyqKrj9l985dZ2PaHWd6CsaS8XIrvXzsEfh/57r3bo0d1fmhjGbHDh/YbY3QgLflm9y0WXronN/HWLZAlcZ6bO2h1NafBdzrQeYeOnva+oY0B3S1LsmvukrfF1WdnDPnxMuvmskhl2b2aR9m/76tCOefMKwHS5NZXVmH7jEA3xNCbATwKIA7AEAIUSSEeCm6zfcBXADgdiHEuuh/p3WpxBmWasuQV27jsieekdpY8d9/aM2Gmeyk85IpLJvow1jcuuFXm7rf3bIL9jQvLdG1LUHUtgQt2cNUGR8UJRKKqJ4mSnd2MnUiO2riW+c/XBubD1XXGkRrMD7Ydhvvnm7mm2265+248VLRWrm3PuFyJl3l84mEC0nrqnoosM5mrcGIsZZTpjwyY2tcyvJ0GuWwiG938dJznCq34Vc1zQHsqmlNy3BrL42d7SEFd17oPtT5Wy6BZ6rG2Ia1d1VZg7UHuis9QduqWowRM05D6+tag0av1tbKZiPAagmEPWVSNHNbX9IcDGza34SwokJVJerbQmkfabS6m4b+6XP303mf8HJvKm/o2dEInbG7ti1t8xWzgacslz2pt2a5dMuiQ0RE1JudOGIgdlR3frgkZafTC4dgVUnfmUPUVa/9vzNwysjBOH2y+1pzfcFj15/a5aWyesqdFxyLF2yJTzpDz3Tb23RHlksiIiLKQqX1vb81ndKvsxkZ+6r8HJ+RJbYvc0se1Bv1S3Pin2zGgI76rAG8EBBRH9Cbk8lQ93Gau0zuCnL9yMvx9fm6QU9kYE2Xp+amtuTWwYwBHfVZRx+W3vkFREREvQV76FKTH808fGj/vAyXhLy6/ZzCTBeh12BAlyI92yBlP/u6M0RERAeLtiADulTo671y2GX2OG44G+Z1jE5S1NrDC8dS98nxsLAzERFRNkrHQul9ycVT5me6CJSiBz/enJb3mbulGt8+ZURa3itT2ENHfdYXW6ozXQQiIiIiyqA7Xu992fVTxYCO+qygy2LuRERERETZggEdERERERFRlmJAR32W38c5dERERESU3RjQUZ81bCBTExMRERFRdmNA50FY4Vyrg1F1czDTRSAiIiIi6hIGdB40toczXQQiIiIiIqI4DOg8EJxqRUREREREvRADOg98jOiIiIiIiKgXYkDnAcM5IiIiIiLqjRjQERERERERZSkGdB7sb+zIdBGIiIiIiIjiMKDz4PDB+ZkuAhERERERURwGdB4U5PozXQQiIiIiIqI4DOg8YFIUIiIiIiLqjRjQeSC4bAEREREREfVCDOg8kFJmughERERERERxGNB5UNUUyHQRiIiIiIiI4jCg82DIgLxMF4GIiIiIiCgOAzoPBubnZLoIREREREREcRjQERERERERZSkGdB74mOWSiIiIiIh6IQZ0REREREREWcpzQCeE8Ash1gohPov+LYQQk4UQO4QQW4UQv3R53WwhRKP+umykctkCIiIiIiLqhVLJ9nEPgK0ABkf/vh3AUQBOklKqQojDXV73NwD9AdzZ2UJmWkRlQEdERERERL2Ppx46IcRoAFcDeMn08N0AHpZSqgAgpaxxeq2U8ksALV0sZ0YpDOiIiIiIiKgX8jrk8ikA9wJQTY8dB+AmIUSxEGKWEOKEzhZCCPHT6PsU19bWdvZtuk1EUZNvRERERERE1MOSBnRCiGsA1EgpV9ueygcQkFIWAXgRwMudLYSUcqqUskhKWTR8+PDOvk23YQ8dERERERH1Rl7m0J0L4DtCiKsAFAAYLISYBqAcwPvRbT4E8Er3FDHz8nP9mS4CERERERFRnKQ9dFLK+6WUo6WUhQBuBjBPSnkLgI8ATIhudiGAHd1WygwryOXqDkRERERE1Pt0JVJ5DMD3hBAbATwK4A4AEEIUCSGM5ClCiEUA3gVwiRCiXAhxeVcKnAlctYCIiIiIiHqjVJYtgJRyPoD50X83Qst8ad+mGNHgLvr3+V0qIRERERERETniWEIiIiIiIqIsxYCOiIiIiIgoSzGgIyIiIiIiylIM6IiIiIiIiLIUAzoiIiIiIqIsxYDOAy5bQEREREREvREDOiIiIiIioizFgI6IiIiIiChLMaDzQIJjLomIiIiIqPdhQEdERERERJSlGNARERERERFlKQZ0REREREREWYoBnQdctoCIiIiIiHojBnQeMJ4jIiIiIqLeiAGdByLTBSAiIiIiInLAgM4D9tAREREREVFvxICOiIiIiIgoSzGgIyIiIiIiylIM6DyQTHNJRERERES9EAM6IiIiIiKiLMWAjoiIiIiIKEsxoCMiIiIioj4r26dXMaDzILt/YiIiIiIiOlgxoCMiIiIiIspSDOiIiIiIiKjPOtAaynQRuoQBnQdZPqyWiIiIiIhcBMJKpovQJQzoiIiIiIiIshQDOiIiIiIioizlOaATQviFEGuFEJ9F/xZCiMlCiB1CiK1CiF+6vO42IcTO6H+3pavgREREREREXZXt06tyUtj2HgBbAQyO/n07gKMAnCSlVIUQh9tfIIQYCuAhAEXQsv+vFkJ8IqVs6FKpe1qW/8hERERERHRw8tRDJ4QYDeBqAC+ZHr4bwMNSShUApJQ1Di+9HMAXUsr6aBD3BYArulZkIiIiIiKi9JBZ3nvjdcjlUwDuBaCaHjsOwE1CiGIhxCwhxAkOrzsSQJnp7/LoYxZCiJ9G36e4trbWY5GIiIiIiIj6tqQBnRDiGgA1UsrVtqfyAQSklEUAXgTwstPLHR6LC4GllFOllEVSyqLhw4d7KHbPyvaonYiIiIiIDk5eeujOBfAdIUQJgOkAJgghpkHrbXs/us2HAMY5vLYc2jw73WgAFZ0uLRERERERERmSBnRSyvullKOllIUAbgYwT0p5C4CPAEyIbnYhgB0OL58D4DIhxBAhxBAAl0UfIyIiIiIioi7qyjp0jwH4nhBiI4BHAdwBAEKIIiHESwAgpawH8GcAq6L/PRx9jIiIiIiIKOP60rIFkFLOBzA/+u9GaJkv7dsUIxrcRf9+Gc7z67JGtv/IRERERER0cOpKDx0REREREVFWy/a+GwZ0REREREREWYoBnQfZHrUTEREREZEzmeXzqxjQebC/oSPTRSAiIiIiom4QUtRMF6FLGNB5UNsayHQRiIiIiIioG/iEyHQRuoQBnQfHDhuY6SIQEREREVE3yPExoDvoDSpIaXUHIiIiIiKiHsGAjoiIiIiI+qzsTonCgI6IiIiIiChrMaDzINujdiIiIiIicqaq2V3bZ0BHRERERER9VkdYyXQRuoQBHRERERER9Vk5vuwOibK79ERERERERF2Q4+eyBQc9md3DaomIiIiIyEWWL0PHgI6IiIiIiChbMaAjIiIiIqI+q6kjkukidAkDOg8kFy4gIiIiIqJeiAEdERERERH1Wf3z/JkuQpcwoCMiIiIioj7Ln+VZURjQERERERERZSkGdF5wCh0RERER0UEp25coY0BHRERERESUpRjQERERERERZSkGdB5keS8sEREREREdpBjQERERERFRn5Xta04zoCMiIiIiIspSDOiIiIiIiKjPCkXUTBehSxjQeZDtqUyJiIiIiMhZrj+7QyLPpRdC+IUQa4UQn0X/flUIsVcIsS7632kur3tcCLEp+t9N6So4ERERERFRX5eTwrb3ANgKYLDpsd9KKd9ze4EQ4moA3wRwGoB8AAuEELOklM2dKSwREREREVE6ZftoPE89dEKI0QCuBvBSiu9/CoAFUsqIlLINwHoAV6T4HhmX7ZlviIiIiIjo4OR1yOVTAO4FYJ8xOFkIsUEI8aQQIt/hdesBXCmE6C+EGAbgYgBH2TcSQvxUCFEshCiura1NpfxERERERER9VtKATghxDYAaKeVq21P3AzgJwOkAhgL4nf21UsrPAcwEsBTAWwCWAYg4bDdVSlkkpSwaPnx4yl+iu2V7NywRERERER2cvPTQnQvgO0KIEgDTAUwQQkyTUlZKTRDAKwDOcHqxlHKylPI0KeWlAASAnWkqe48RItMlICIiIiKi7pDt06uSBnRSyvullKOllIUAbgYwT0p5ixBiJAAIIQSA6wBssr82mhnzsOi/xwEYB+DzNJa/R7CHjoiIiIiIeqNUslzavSGEGA6t120dgLsAQAhRBOAuKeUdAHIBLNJiPjQDuEVKGTfkkoiIiIiIiFKXUkAnpZwPYH703xNctikGcEf03wFomS6zmsouOiIiIiKig1K2V/Wze1n0HqKoWf4rExERERHRQYkBnQd+H7OiEBERERFR78OAzgPBNJdERERERNQLMaDzQGb7wFoiIiIiIjooMaDzgPEcERERERH1RgzoPAiElUwXgYiIiIiIukG2d94woPNgd21bpotAREREREQUhwGdB4f2z810EYiIiIiIqBtIZHcXHQM6D7hsARERERER9UYM6DwIRdRM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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p_df = df1.select('acqStamp','current_18V').toPandas()\n", "p_df.plot('acqStamp','current_18V',figsize=(15,5))\n", "#p_df.sort_values(by='acqStamp').plot(pd.to_datetime(p_df['acqStamp'],unit='ns'),'current_18V',figsize=(15,5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2) Extract data using variable names" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "df2 = DataQuery.builder(spark).byVariables() \\\n", " .system('CMW') \\\n", " .startTime('2018-04-29 00:00:00.000').endTime('2018-04-30 00:00:00.000') \\\n", " .variable('LTB.BCT60:INTENSITY') \\\n", " .build()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nxcals_valuenxcals_entity_idnxcals_timestampnxcals_variable_name
01846.24520341524960170465000000LTB.BCT60:INTENSITY
11579.96520341524960421265000000LTB.BCT60:INTENSITY
21813.40520341524960602465000000LTB.BCT60:INTENSITY
32382.25520341524960924065000000LTB.BCT60:INTENSITY
47478.39520341524960931265000000LTB.BCT60:INTENSITY
52388.88520341524961032065000000LTB.BCT60:INTENSITY
62383.04520341524961047665000000LTB.BCT60:INTENSITY
72404.83520341524961060865000000LTB.BCT60:INTENSITY
82400.61520341524961938065000000LTB.BCT60:INTENSITY
92390.86520341524962168465000000LTB.BCT60:INTENSITY
\n", "
" ], "text/plain": [ " nxcals_value nxcals_entity_id nxcals_timestamp nxcals_variable_name\n", "0 1846.24 52034 1524960170465000000 LTB.BCT60:INTENSITY\n", "1 1579.96 52034 1524960421265000000 LTB.BCT60:INTENSITY\n", "2 1813.40 52034 1524960602465000000 LTB.BCT60:INTENSITY\n", "3 2382.25 52034 1524960924065000000 LTB.BCT60:INTENSITY\n", "4 7478.39 52034 1524960931265000000 LTB.BCT60:INTENSITY\n", "5 2388.88 52034 1524961032065000000 LTB.BCT60:INTENSITY\n", "6 2383.04 52034 1524961047665000000 LTB.BCT60:INTENSITY\n", "7 2404.83 52034 1524961060865000000 LTB.BCT60:INTENSITY\n", "8 2400.61 52034 1524961938065000000 LTB.BCT60:INTENSITY\n", "9 2390.86 52034 1524962168465000000 LTB.BCT60:INTENSITY" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2.toPandas()[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3) Extract data using key/value pairs." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "df3 = DataQuery.builder(spark).byEntities().system('WINCCOA') \\\n", " .startTime('2018-06-15 00:00:00.000').endTime('2018-06-17 00:00:00.000') \\\n", " .entity().keyValue('variable_name', 'MB.C16L2:U_HDS_3') \\\n", " .build()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "df3.toPandas().to_csv('/eos/user/p/pkothuri/winccoa_hds.csv', index=False)" ] } ], "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.5" }, "sparkconnect": { "bundled_options": [ "NXCALS_NEW", "NXCALS" ], "list_of_options": [] } }, "nbformat": 4, "nbformat_minor": 2 }