Skip to content

Instantly share code, notes, and snippets.

@derkling
Last active June 5, 2018 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derkling/fe01e5ddf639e18b5d85a3b1d2e84b7d to your computer and use it in GitHub Desktop.
Save derkling/fe01e5ddf639e18b5d85a3b1d2e84b7d to your computer and use it in GitHub Desktop.
20180531_UtilEst_RunningAvg
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# RT-PELT Validation Mainline v4.17"
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "USE_UTIL_EST = True\nKERNEL_DIR = '/data/Code/linux-kernel'",
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Imports"
},
{
"metadata": {
"collapsed": true,
"run_control": {
"frozen": false,
"read_only": false,
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "import logging\nreload(logging)\nlogging.basicConfig(\n format='%(asctime)-9s %(levelname)-8s: %(message)s',\n datefmt='%I:%M:%S')\n\n# Enable logging at INFO level\nlogging.getLogger().setLevel(logging.INFO)\n# Comment the follwing line to disable devlib debugging statements\n#logging.getLogger('ssh').setLevel(logging.DEBUG)",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Generate plots inline\n%pylab inline",
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": "Populating the interactive namespace from numpy and matplotlib\n",
"name": "stdout"
}
]
},
{
"metadata": {
"collapsed": true,
"run_control": {
"frozen": false,
"read_only": false,
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "import json\nimport os\nimport subprocess\nimport time\n\nimport devlib\nimport trappy\nimport pandas as pd\n\nfrom env import TestEnv\nfrom git import Git\nfrom trace import Trace\nfrom wlgen import RTA, Periodic, Ramp, PerfMessaging",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"run_control": {
"frozen": false,
"read_only": false
}
},
"cell_type": "markdown",
"source": "# Utility Functions"
},
{
"metadata": {
"collapsed": true,
"run_control": {
"frozen": false,
"read_only": false,
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "def run(wload, collect='ftrace', governor='schedutil',\n use_util_est=False, trace_name=None):\n \n # Run workload on target\n if not trace_name:\n logging.info(\"#### Set [%s] CPUFreq governor\", governor)\n te.target.cpufreq.set_all_governors(governor)\n if governor == 'schedutil':\n for cpu_id in range(te.platform['cpus_count']):\n if 'up_rate_limit_us' in te.target.cpufreq.get_governor_tunables(0):\n te.target.cpufreq.set_governor_tunables(\n cpu_id, 'schedutil', **{\n 'up_rate_limit_us' : '10000',\n 'down_rate_limit_us' : '10000'\n })\n else:\n te.target.cpufreq.set_governor_tunables(\n cpu_id, 'schedutil', **{\n 'rate_limit_us' : '5000',\n }) \n\n# feats = te.target.execute('cat /sys/kernel/debug/sched_features')\n# if 'UTIL_EST' in feats:\n# logging.info(\"#### Enable Utilization estimation\")\n# feature = 'UTIL_EST' if use_util_est else 'NO_UTIL_EST'\n# te.target.execute(\"echo {} > /sys/kernel/debug/sched_features\"\\\n# .format(feature))\n# else:\n# logging.warning(\"### Kernel missing UtilEst support (i.e. sched_feat(UTIL_EST) no available)\")\n\n if 'trace' in collect:\n logging.info('#### Setup FTrace')\n te.ftrace.start()\n if 'energy' in collect:\n logging.info('#### Start energy sampling')\n te.emeter.reset()\n\n logging.info('#### Start RTApp execution')\n wload.run(out_dir=te.res_dir)\n\n if 'energy' in collect:\n logging.info('#### Read energy consumption: %s/energy.json', te.res_dir)\n (nrg, nrg_file) = te.emeter.report(out_dir=te.res_dir)\n if 'trace' in collect:\n logging.info('#### Stop FTrace')\n te.ftrace.stop()\n \n trace_name = 'trace_{}.dat'.format(wload.name)\n trace_file = os.path.join(te.res_dir, trace_name)\n logging.info('#### Save FTrace: %s', trace_file)\n te.ftrace.get_trace(trace_file)\n \n # Reset governor to ondemand\n te.target.cpufreq.set_all_governors('ondemand')\n\n logging.info('#### Save platform description: %s/platform.json', te.res_dir)\n (plt, plt_file) = te.platform_dump(te.res_dir)\n \n platform = te.platform\n \n # Load specified trace\n else:\n results_dir = os.path.join(\n os.environ.get('LISA_HOME'), 'results',\n my_conf['results_dir'])\n trace_file = os.path.join(results_dir,\n 'trace_{}.dat'.format(trace_name))\n logging.info('#### Using trace_file: %s', trace_file)\n \n platform_file = os.path.join(results_dir, 'platform.json')\n with open(platform_file, 'r') as fh:\n platform = json.load(fh)\n \n logging.info('#### Parse trace')\n events_to_parse = my_conf['ftrace']['events']\n trace = Trace(platform, trace_file, events_to_parse)\n\n return trace_file, trace\n\ndef plot_signals(trace, tasks, cpus,\n additional_signals=[], #'last', 'ewma',\n x_min=0, x_max=None):\n \n trace.setXTimeRange(x_min, x_max)\n \n # Add additional signals\n signals = ['residencies'] + additional_signals\n \n trace.analysis.tasks.plotTasks(tasks, signals)\n trace.analysis.frequency.plotCPUFrequencies(cpus)\n trace.analysis.frequency.plotCPUFrequencyResidency(cpus, pct=True)\n",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"run_control": {
"frozen": false,
"read_only": false
}
},
"cell_type": "markdown",
"source": "# Target Connection"
},
{
"metadata": {
"collapsed": true,
"run_control": {
"marked": false
},
"trusted": true
},
"cell_type": "code",
"source": "# Setup a target configuration\nmy_conf = {\n \n # Define the kind of target platform to use for the experiments\n \"platform\" : 'linux', # Linux system, valid other options are:\n # android - access via ADB\n # linux - access via SSH\n # host - direct access\n \n # Preload settings for a specific target\n \"board\" : 'juno', # load JUNO specific settings, e.g.\n # - HWMON based energy sampling\n # - Juno energy model\n # valid options are:\n # - juno - JUNO Development Board\n # - tc2 - TC2 Development Board\n # - oak - Mediatek MT63xx based target\n\n # Define devlib module to load\n \"exclude_modules\" : [\n 'hwmon', # do not load HWMON, we do not need to measure NRG\n ],\n\n # Account to access the remote target\n \"host\" : '192.168.90.1',\n \"username\" : 'root',\n \"password\" : '',\n\n # Comment the following line to force rt-app calibration on your target\n \"rtapp-calib\" : {\n \"0\": 584, \"1\": 262, \"2\": 262, \"3\": 584, \"4\": 584, \"5\": 584 \n },\n\n # Binary tools required to run this experiment\n # These tools must be present in the tools/ folder for the architecture\n \"tools\" : ['rt-app', 'taskset', 'trace-cmd'],\n \n # FTrace events end buffer configuration\n \"ftrace\" : {\n \"events\" : [\n \"cpu_idle\",\n \"cpu_frequency\",\n \"sched_load_se\",\n \"sched_load_cfs_rq\",\n \"sched_util_est_task\",\n \"sched_util_est_cpu\",\n \"sched_switch\",\n \"sched_wakeup\",\n ],\n \"buffsize\" : 10240\n },\n \n \"results_dir\" : time.strftime(\"%Y%m%d\") + \"_RT-PELT_JunoR2\",\n\n}",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"scrolled": false,
"run_control": {
"frozen": false,
"read_only": false
},
"trusted": true
},
"cell_type": "code",
"source": "te = TestEnv(my_conf, force_new=True)\ntarget = te.target",
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": "12:57:39 INFO : Using base path: /data/Code/lisa\n12:57:39 INFO : Loading custom (inline) target configuration\n12:57:39 WARNING : Wipe previous contents of the results folder:\n12:57:39 WARNING : /data/Code/lisa/results/20180531_RT-PELT_JunoR2\n12:57:39 INFO : Devlib modules to load: ['bl', 'cpufreq']\n12:57:39 INFO : Connecting linux target:\n12:57:39 INFO : username : root\n12:57:39 INFO : host : 192.168.90.1\n12:57:39 INFO : password : \n12:57:39 INFO : Connection settings:\n12:57:39 INFO : {'username': 'root', 'host': '192.168.90.1', 'password': ''}\n12:57:41 INFO : Initializing target workdir:\n12:57:41 INFO : /root/devlib-target\n12:57:44 INFO : Topology:\n12:57:44 INFO : [[0, 3, 4, 5], [1, 2]]\n12:57:45 INFO : Loading default EM:\n12:57:45 INFO : /data/Code/lisa/libs/utils/platforms/juno.json\n12:57:46 INFO : Enabled tracepoints:\n12:57:46 INFO : cpu_frequency\n12:57:46 INFO : cpu_idle\n12:57:46 INFO : sched_load_cfs_rq\n12:57:46 INFO : sched_load_se\n12:57:46 INFO : sched_switch\n12:57:46 INFO : sched_util_est_cpu\n12:57:46 INFO : sched_util_est_task\n12:57:46 INFO : sched_wakeup\n12:57:46 INFO : Using configuration provided RTApp calibration\n12:57:46 INFO : Using RT-App calibration values:\n12:57:46 INFO : {\"0\": 584, \"1\": 262, \"2\": 262, \"3\": 584, \"4\": 584, \"5\": 584}\n12:57:46 INFO : HWMON module not enabled\n12:57:46 WARNING : Energy sampling disabled by configuration\n12:57:46 INFO : Set results folder to:\n12:57:46 INFO : /data/Code/lisa/results/20180531_RT-PELT_JunoR2\n12:57:46 INFO : Experiment results available also in:\n12:57:46 INFO : /data/Code/lisa/results_latest\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "te.target.kernel_version",
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "4.17.0-rc6-00223-g6f5385567418-dirty 167 SMP PREEMPT Thu May 31 12:40:58 BST 2018"
},
"metadata": {}
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "big_cpu = target.core_cpus(target.big_core)[-1]",
"execution_count": 9,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# CFS Task Running Alone"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, test_id, calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p60': Periodic(\n period_ms=100, # period\n duty_cycle_pct=60, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n# 'task_p20': Periodic(\n# period_ms=10, # period\n# duty_cycle_pct=20, # duty cycle\n# duration_s=2, # duration \n# delay_s=0.020, # delay (20ms)\n# cpus=str(big_cpu), # pinned on last big CPU,\n# sched={\n# 'policy': 'FIFO',\n# 'prio': 10,\n# }\n# ).get(),\n },\n run_dir=target.working_directory\n);",
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": "12:57:46 INFO : Setup new workload p60\n12:57:46 INFO : Workload duration defined by longest task\n12:57:46 INFO : Default policy: SCHED_OTHER\n12:57:46 INFO : ------------------------\n12:57:46 INFO : task [task_p60], sched: using default policy\n12:57:46 INFO : | loops count: 1\n12:57:46 INFO : + phase_000001: duration 3.000000 [s] (30 loops)\n12:57:46 INFO : | period 100000 [us], duty_cycle 60 %\n12:57:46 INFO : | run_time 60000 [us], sleep_time 40000 [us]\n12:57:46 INFO : | CPUs affinity: 2\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"text": "12:57:51 INFO : #### Set [schedutil] CPUFreq governor\n12:57:58 INFO : #### Setup FTrace\n12:58:04 INFO : #### Start RTApp execution\n12:58:04 INFO : Workload execution START:\n12:58:04 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/p60_00.json 2>&1\n12:58:08 INFO : #### Stop FTrace\n12:58:08 INFO : #### Save FTrace: /data/Code/lisa/results/20180531_RT-PELT_JunoR2/trace_p60.dat\n12:58:13 INFO : #### Save platform description: /data/Code/lisa/results/20180531_RT-PELT_JunoR2/platform.json\n12:58:13 INFO : #### Parse trace\n12:58:14 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": "12:58:14 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nfRPQyJwsAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x7fc7ecfde810>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_load_se')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util', 'running']][2.5:3].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": "12:58:14 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHjCAYAAAAuQTKuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X+UXnV9J/D3F8LIj+GHQhqRpIYz\nTRVSK8osYktdW9pVkBayS6uVVuRAqWttaV27sjln7Y899dAurLTbrVvECq6uP4IdodR2y0FtNxbT\nJgoCiT1DaHSC/IipvwKLEfzuH3ODIZkhk2Tmeb4zz+t1zpy5z73fZ57PhA/3mff93nufUmsNAAAA\n9Nsh/S4AAAAAEgEVAACARgioAAAANEFABQAAoAkCKgAAAE0QUAEAAGiCgAoAAEATBFQAAACaIKAC\nAADQhEX9LiBJTjjhhLp8+fJ+lwEAAMAc2LBhw1drrYv3Na6JgLp8+fKsX7++32UAAAAwB0opX5rJ\nOKf4AgAA0AQBFQAAgCYIqAAAADShiWtQAQAAWvad73wnW7duzeOPP97vUpp2+OGHZ+nSpTnssMMO\n6PkCKgAAwD5s3bo1Rx99dJYvX55SSr/LaVKtNdu3b8/WrVtz8sknH9DPcIovAADAPjz++OM5/vjj\nhdNnUErJ8ccff1CzzAIqAADADAin+3aw/0YCKgAAAE0QUAEAAOaxG264IV/5yleeenzZZZdl48aN\nSZLly5fnq1/9ar9K228CKgAAwDy2Z0C9/vrrc+qpp/axogPnLr4AAAD74Xf+4t5s/Mo3Z/Vnnvq8\nY/JbP73yGcds2bIl5513Xu65554kydVXX50bbrghW7ZsyUUXXZQjjjgid9xxR84555xcffXVGR0d\nndUae8EMKgAAwDx14YUXZnR0NB/84Adz55135ogjjuh3SQfFDCoAAMB+2NdMJwfODCoAAMA8sGjR\nonz3u9996vHBfN5oqwRUAACAeWDJkiV55JFHsn379nz729/OrbfemiQ5+uij861vfavP1c0Op/gC\nAADMA4cddlje8Y535IwzzshJJ52UF77whUmSN77xjXnTm9701E2S5rNSa+13DRkdHa3r16/vdxkA\nAABT2rRpU0455ZR+lzEvTPVvVUrZUGvd522FzaACAHDw1r8vufum6be/6MJk9JLe1QPMS65BBQDg\n4N19U/LQ3VNve+juZw6vAB0zqAAAzI7nvii55C/3Xv++1/S+FmBeMoMKAABAEwRUAAAAmiCgAgAA\n0AQBFQAAYMBddtll2bhxY7/LcJMkAACA+abWmlprDjlkduYcr7/++ln5OQdLQAUAANgff3Xl9B+r\ndKCe+6LknKuecciWLVvyqle9Ki972cuyYcOGbNy4MbXWJMlNN92UW2+9NTfccEPe+MY35phjjsn6\n9evz0EMP5Q/+4A9y4YUX5tOf/nR++7d/OyeccELuueeenH766fnABz6QUkpe+cpX5uqrr87o6GiG\nh4dzxRVX5NZbb80RRxyRm2++OUuWLMnmzZtz0UUX5dFHH83555+fa6+9Njt27JjVfwan+AIAAMwT\n4+PjefOb35x77703Rx111LTjHnzwwaxduza33nprrrzyyqfWf/7zn8+1116bjRs35v77789nPvOZ\nvZ776KOP5swzz8xdd92VV7ziFXnPe96TJLniiityxRVX5O67787SpUtn/5eLGVQAAID9s4+Zzrn0\n/Oc/P2eeeeY+x11wwQU55JBDcuqpp+bhhx9+av0ZZ5zxVLg87bTTsmXLlpx11llPe+7Q0FDOO++8\nJMnpp5+e2267LUlyxx135OMf/3iS5PWvf33e9ra3zcrvtDszqAAAAPPE7rOmpZSnlh9//PGnjXvW\ns5711PKu04D3XH/ooYfmiSee2Os1DjvssKd+9nRj5ooZ1Hlm3ZprMjw+1u8y+mLHilV52c/+h36X\nAQAATViyZEk2bdqUF7zgBRkbG8vRRx89p6935pln5mMf+1he+9rX5sMf/vCcvIaAOs8Mj49l2c7N\nmRga6XcpPbVs5+ZMjI8lEVBb4oCJfmyJftSPrRjUXlz+nfuz49mnZEm/C+FpBrUfk8HYN1511VU5\n77zzsnjx4oyOjs76DYv2dO211+YXfuEX8nu/93t59atfnWOPPXbWX6PsPt3bL6Ojo3X9+vX9LmNe\nuPedk+eHr1y9ts+V9Na97zwry79zf476/pdMPeBFFyajl/S2KHLvO88a3AMmQyMD9/9h6/SjfmzF\noPbiYzufzOeP/clc/hv/Ze+N73vN5PdL/rK3RTGw/TgX+8ZNmzbllFNOmbWfNx899thjOeKII1JK\nyYc//OF86EMfys0337zXuKn+rUopG2qto/t6DTOozAufOeLHkyQrp9q46xbfAmpfDOIfxrsOFNGe\n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\n",
"text/plain": "<matplotlib.figure.Figure at 0x7fc7ecf63650>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#!kernelshark $trace.ftrace.trace_path",
"execution_count": null,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# CFS Task Preempted by RT Task"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "rtapp = RTA(target, test_id, calibration=te.calibration())\nrtapp.conf(\n kind='profile',\n params={\n 'task_p60': Periodic(\n period_ms=100, # period\n duty_cycle_pct=60, # duty cycle\n duration_s=2, # duration \n cpus=str(big_cpu) # pinned on last big CPU\n ).get(),\n 'task_p20': Periodic(\n period_ms=10, # period\n duty_cycle_pct=20, # duty cycle\n duration_s=2, # duration \n delay_s=0.020, # delay (20ms)\n cpus=str(big_cpu), # pinned on last big CPU,\n sched={\n 'policy': 'FIFO',\n 'prio': 10,\n }\n ).get(),\n },\n run_dir=target.working_directory\n)",
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"text": "12:58:47 INFO : Setup new workload p60\n12:58:47 INFO : Workload duration defined by longest task\n12:58:47 INFO : Default policy: SCHED_OTHER\n12:58:47 INFO : ------------------------\n12:58:47 INFO : task [task_p20], sched: {'policy': 'FIFO', 'prio': 10}\n12:58:47 INFO : | start delay: 0.020000 [s]\n12:58:47 INFO : | loops count: 1\n12:58:47 INFO : + phase_000001: duration 2.000000 [s] (200 loops)\n12:58:47 INFO : | period 10000 [us], duty_cycle 20 %\n12:58:47 INFO : | run_time 2000 [us], sleep_time 8000 [us]\n12:58:47 INFO : | CPUs affinity: 2\n12:58:47 INFO : ------------------------\n12:58:47 INFO : task [task_p60], sched: using default policy\n12:58:47 INFO : | loops count: 1\n12:58:47 INFO : + phase_000001: duration 2.000000 [s] (20 loops)\n12:58:47 INFO : | period 100000 [us], duty_cycle 60 %\n12:58:47 INFO : | run_time 60000 [us], sleep_time 40000 [us]\n12:58:47 INFO : | CPUs affinity: 2\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 16,
"data": {
"text/plain": "'p60_00'"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tracefile, trace = run(rtapp, use_util_est=USE_UTIL_EST)\n# tracefile, trace = run(None, use_util_est=USE_UTIL_EST, trace_name=test_id)",
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": "12:58:55 INFO : #### Set [schedutil] CPUFreq governor\n12:59:01 INFO : #### Setup FTrace\n12:59:07 INFO : #### Start RTApp execution\n12:59:07 INFO : Workload execution START:\n12:59:07 INFO : /root/devlib-target/bin/rt-app /root/devlib-target/p60_00.json 2>&1\n12:59:11 INFO : #### Stop FTrace\n12:59:11 INFO : #### Save FTrace: /data/Code/lisa/results/20180531_RT-PELT_JunoR2/trace_p60.dat\n12:59:15 INFO : #### Save platform description: /data/Code/lisa/results/20180531_RT-PELT_JunoR2/platform.json\n12:59:15 INFO : #### Parse trace\n/data/Code/lisa/libs/trappy/trappy/ftrace.py:203: UserWarning: Cached data is from another trace, invalidating cache.\n warnings.warn(warnstr)\n12:59:16 INFO : Platform clusters verified to be Frequency coherent\n",
"name": "stderr"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_util_est_task')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util_avg', 'util_est_enqueued', 'util_est_ewma']].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"text": "12:59:16 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nuEPPfLhDfTq7vRD8ip2HJUnRkYy9b6j1BSVaX1BS28MA4WPT/lJt2l+qv27Yr+hIvtgMJ1sOHNOW\nA8cUFWHUuV2s1+XUyVqrcPhfx7sJECRRIdLClto+VoO60iW8KWgpghcOllZ4XUK9fv31C5hFtQlC\n5G0DTeB6r5t3NvGFdVNFOfjFQ4ViVGzbq9zx5YMaihbUELLn8An9adUe9e3ChwB8Yc3BNfpw74d1\n3matFJO67YxtN13aT2vLNmntmpavbfXB1S3/IAA8FWGkycO6eV0GgEbq0j5WmR2ZMT8cPO+bpOd9\nk/RZfHh0PyaghpA/rtytp977XNGR7nYtQOt7au1TWnFghSJN3TM5x6Sc2Q302Y3vt0ZZtbI6ZdW7\nz1/W7VMsM1EDIcnFHhmVVT498+EORRi6wjfH9qIyr0s4S5XP6tkPd8hKqvL5vS4npK344Ve8LgFB\nFi5DLQioIeTUe2yEca9rAbzjt37lpeXpd1f87qzbqn1+9fvhm7XXR/XupPm3X9ia5TXIE3+vaeXt\nm+r2WDuX7So+7nUJIaeiyq/fL9up6MgIWetWiDkeIrMe/+jabI3p19nrMs5SWlGtn7y+SZJ7f1eO\nV1Z7XUKDJMRE6vOi40qIiVSX9nFel1OrvMqnHzt6biurCczNcbLar6EPvy2f32p4z45el3OGKp9b\n7xHhjoAKtBG/u3mkxg9I9bqM86Kho+k+K6xp6cjsFO9xJaHjUFml/mPRJ5KkfgydaJJvjOrh/Df2\nrv1dCZUQs/wHE5QQHakIYxTh6HhK185taXnozFPw/0b38LqEOpVW1HyBU3Ck3ONKzlQRJmM7QwUB\nFWimUw3arjdsG0nG9SLRJE//v+G6uH+qIoxRfAxdpZvC57dOTliT1iFWZRWh0eKGxnF9htcIYxTl\n+JcPrnL93H70gwnq0p6hYk0RKhNihjoCaojw+a1+s+Rzr8tAHW4e00td2scqMsLo+WW7vC4HLSAq\nwqjata/qT2OMUWIsf84BAPWLjDB8YQ2nNeirMWPMTmPMBmPMWmPMqsC2TsaYd4wxnwV+dgxsN8aY\nJ4wx24wx640xw1vyCbQVx0/yDbqrLurbWf85dYiGZNQsyl1w5ITHFQHuKTzm/lIpAADAe43pu3Gp\ntTbXWpsXuP6ApMXW2v6SFgeuS9KVkvoH/t0m6TfBKhbudxtpyy7q11nXX5ChidldNfOiXl6XAzjD\nGGl9QYmMkdrHRXtdDpopKf6Lc8ikfQCAYGtOn7ApksYHLj8naYmk+wPbn7c1UyIuN8YkG2PSrbX7\nm1Mo4LqM5Hj94oZcr8s4Q1RkhG4f10f7Syo0NDPZ63LQRv3fA5eppLxKHeKildbBndlA0TTDuifr\n/X+5VAmxkYp0eDxWdKRh5s1GyurWQdfldlPHxBglOjyenXMbvji3kBoeUK2kvxljrKTfWmvnSEo7\nLXQekJQWuJwhac9p9y0IbDsjoBpjblNNC6t69HBzJjEgHPzbVfWvQ4rQdOvY3tp9+IRyu7v95UN6\nUrzSk9ycXZgPQ03TIyXB6xLQAjrEReuXMy7wuoyQ5XdsuarT9evSTlcPSVdibKQ6JcR4XU7Icfnc\n9kpJ1DVD05UaRhNfNTSgjrXW7jXGdJH0jjFmy+k3WmttILw2WCDkzpGkvLw8d886gDYrIbqmBSEh\nJrJ26nuX/Ps1g70uAS3klrG99enBY4qPjtTSbYe8LgdBdMclfbVxb4mqfH7tOMT6xeHk7kv7afXu\nI7K2ZliD36EOBu1io/TUjUwL01TfGtNby7YXKzLC6KMdh1Xlc2e5qPiYSD35jfA6tw0ag2qt3Rv4\nWSjpFUn5kg4aY9IlKfCzMLD7XkndT7t7ZmAbAISUf796sH5/S77+9YpBkqQDpUz0g9bxH9cM1u9v\nGaUenRLks1bW4W/v0TgPXDlIL9w6Sn1SE3W0vIr1FcPI9yYO1Iu3jtbQzGSVVVbrWEW14qPd7SqN\nhrtnQn/94Z9Ga3iPjjpZ7Vfx8ZMs69aC6m1BNcYkSoqw1h4LXJ4o6ceSXpM0U9KjgZ+LAnd5TdLd\nxpg/SholqYTxp8FjrVTp8zu95AUQLpISonVx/1R1Sy7TsMwkVVb7dfngtPrvCARJbHSEKqpqvqmP\ni2ZNynAypl9nfbz7qIwxurBvitflIIi+fWlf5fXsKEnK79PJ42oQTP80ro+GZibJWmlkL85tS2lI\nF980Sa8E1kuKkvQHa+1bxpiVkhYYY26RtEvS1wL7vyHpKknbJJ2QdHPQq27DTgXTomOVioniwwrQ\nGvqmttOiu8d6XUZI4e9TcNx2cV9ld6tZwmps/84eV4NgumZoN10ztJvXZaAFdIiL1lf4MrNJXO8s\n0i42ShOyOLctrd6Aaq3dLmlYHduLJU2oY7uVdFdQqsM5/fyrw3QxH1YQ4qIjzwwxPnoGhI0x/Trr\nqW8MV5cO4TNpgxeSEqJ11ZB0r8sIKSN6dtS7mw9qQFo7Ld1WzN+VMDK8Z0e9sWG/BqS114fbDnFu\nw0hMYBnFmKgIVZ/0cW7buOYsM4MW5PdbnQwMwI457UP8XZf21cTBXTXM8Vk7gYa4ZECqfv7VYeqa\nFKebnvlIuw+fapuuAgAAIABJREFUkCRFsd5vyIuOjNDVQ90NVrndk/W3Tw4qK729Vu48ouKyyrCa\nAbEtmz4iU9NHZOr/th3S0m3F2n34hHp3TvS6LATBtcO66dph3bR612F9uO2Qdh8+oW5JLF0VDr55\nUS+lJ8crNipC31uwTrsPn1BKIrMNt1UEVEfd8cJq/W3TQUnSV7LS9IsbahqxOybEEE4RNuKiIzVt\nRKYkac5NeTVvSO1inF2SBOHjmxf20jcv7KWtB47pxrnLVX7Sx1rBYSavVyc9ev0QnTjp05DMJK/L\nQRANzUzWf08bqrLKamWld/C6HARB53ax+np+D/n8Vj6/1bGKag3s2t7rsuARAqqjdh8+of5d2inC\nGO0qZhp6hD/G68ALA7u216p/v9zrMtACYqIiNCOfddbDUXRkhL42snv9OyLkREYYfTWPc9vWMYuF\nw/qkJqpvF7olAQAAAGgbCKgAAAAAACcQUEPAZ4Vlumz2EklSYLkfAAAAAAg7BNQQUVnl18wLe2oi\n4/QAAAAAhCkmSQoRKe1i9KMpOV6XAQAAAAAthhZUAAAAAIATCKgAAAAAACcQUAEAAAAATiCgAgAA\nAACcQEAFAAAAADiBgAoAAAAAcAIBFQAAAADgBAJqPY5VVOn1/31IB5fM8boUAAAAAAhrUV4X4Lry\nKp+u2ftLaa+k8be1ymNWVvvkt7ZVHgsAAAAAXEELaj26tI9r1cdbsrVQWf/xlj49WKaoCE4PAAAA\ngLaDBOSYgiPl8lvp7kv76d4J/b0uBwAAAABaDV18G2H5Cw81/c4mQn0uuUldMvs0aPdvXtSz1Vtv\nAQAAAMBLBNRGGL3tl807wGe/kGKTzrvL13x+XRvrU7snoyQZza6q1qOxVua4pJ9GN+/xQ4G/uuan\n8bYMAAAAAK2PgNpAVaPu0smx/9rk+//8vx/SlRnlGtmz03n3+/xAqZZ9XqwZ2d2VEB2l9TuKtWlf\nqdKT4nRlTnqTHz+kxCRI3Ud7XQUAAACAVkZAbaDouHaKbp/c5Pu/YK9QTM/eGnnloPPut3r5Lv14\n60Zdc+kEJbSP0yhrNeBElTrERUmRDBkGAAAAEL4IqI4zxqhTYozXZQAAAABAi6NJDgAAAADgBFpQ\ngXqsPLBST6x5Qn75vS6lTp8f/VxZnbK8LgMAAABoNgIqUI9l+5ZpbdFaXdTtIq9LqdOw1GG6otcV\nXpcBAAAANBsBFWiASBOp317+W6/LAAAAAMIaY1ABAAAAAE4goAIAAAAAnEBABQAAAAA4gYAKAAAA\nAHACARUAAAAA4AQCKgAAAADACQRUh/x1/X4t2VrodRkAAAAA4AnWQXXIvX/8WD6/Ved2seoQF+11\nOQAAAADQqgioDvH5re65rJ+++5UBiogwXpcDAAAAAK2KLr6OMcYQTgEAAAC0SQRUAAAAAIATCKgA\nAAAAACcQUAEAAAAATiCgAgAAAACc0OCAaoyJNMZ8bIx5PXC9tzHmI2PMNmPMfGNMTGB7bOD6tsDt\nvVqmdAAAAABAOGlMC+p9kjafdv0xSY9ba/tJOiLplsD2WyQdCWx/PLAfAAAAAADn1aCAaozJlHS1\npLmB60bSZZIWBnZ5TtJ1gctTAtcVuH1CYH8AAAAAAM6poS2ov5T0r5L8gespko5aa6sD1wskZQQu\nZ0jaI0mB20sC+wMAAAAAcE71BlRjzDWSCq21q4P5wMaY24wxq4wxq4qKioJ5aAAAAABACGpIC+oY\nSdcaY3ZK+qNquvb+SlKyMSYqsE+mpL2By3sldZekwO1Jkoq/fFBr7RxrbZ61Ni81NbVZTwIAAAAA\nEPrqDajW2n+z1mZaa3tJmiHp79baGyW9J2l6YLeZkhYFLr8WuK7A7X+31tqgVg0AAAAACDvNWQf1\nfknfM8ZsU80Y02cC25+RlBLY/j1JDzSvRAAAAABAWxBV/y5fsNYukbQkcHm7pPw69qmQ9NUg1AYA\nAAAAaEOa04IKAAAAAEDQEFABAAAAAE5oVBdftIyFqwv02FtbJEnG41oAAAAAwCu0oDpg3Z6jKimv\n0k2je+ra3G5elwMAAAAAnqAF1RHtYqP0k+tyvC4DAAAAADxDCyoAAAAAwAkEVAAAAACAEwioAAAA\nAAAnEFABAAAAAE4goAIAAAAAnEBABQAAAAA4gYAKAAAAAHACARUAAAAA4AQCKgAAAADACQRUAAAA\nAIATCKgAAAAAACcQUAEAAAAATiCgAgAAAACcQEAFAAAAADiBgAoAAAAAcAIBFQAAAADgBAIqAAAA\nAMAJBFSPbdxbov0l5V6XAQAAAACei/K6gLas4MgJXfPrDyVJ3TvFe1wNAAAAAHiLgOqhEyd9kqTv\nfmWAvjYy0+NqAAAAAMBbdPF1QL8u7ZSeRAsqAAAAgLaNgAoAAAAAcAIBFQAAAADgBAIqAAAAAMAJ\nTJIEp1T5qjR3w1yVVZV5XUqtjws/9roEAAAAoE0goMIpWw5v0f+s+x/FRsYq0kR6XU6tIZ2HeF0C\nAAAAEPYIqHCKX35J0i8v/aXGZoz1uBoAAAAArYkxqAAAAAAAJxBQAQAAAABOIKACAAAAAJxAQAUA\nAAAAOIGA2oqsrNclAAAAAICzCKitxHhdAAAAAAA4joAKAAAAAHACAdUjPr/V1gPHvC4DAAAAAJxB\nQPXIKx/v1T0vfSxJSoiN9LgaAAAAAPAeAdUjZRVVkqTfzRqpcf1TPa4GAAAAALxHQPVYbvdkRUYw\nhRIAAAAA1BtQjTFxxpgVxph1xphPjDE/CmzvbYz5yBizzRgz3xgTE9geG7i+LXB7r5Z9CqGp2s+S\nMwAAAABwuoa0oFZKusxaO0xSrqQrjDGjJT0m6XFrbT9JRyTdEtj/FklHAtsfD+yHL3lpxW5JUlQk\nracAAAAAIDUgoNoaZYGr0YF/VtJlkhYGtj8n6brA5SmB6wrcPsEYQwr7kpTEWMVFR6h9XLTXpQAA\nAACAExo0BtUYE2mMWSupUNI7kj6XdNRaWx3YpUBSRuByhqQ9khS4vURSSh3HvM0Ys8oYs6qoqKh5\nzyIUmZrxpwAAAACAGg0KqNZan7U2V1KmpHxJg5r7wNbaOdbaPGttXmoqs9gCAAAAQFvXqFl8rbVH\nJb0n6UJJycaYqMBNmZL2Bi7vldRdkgK3J0kqDkq1AAAAAICw1ZBZfFONMcmBy/GSLpe0WTVBdXpg\nt5mSFgUuvxa4rsDtf7fWMmUtAAAAAOC8GtKCmi7pPWPMekkrJb1jrX1d0v2SvmeM2aaaMabPBPZ/\nRlJKYPv3JD0Q/LJDW2lFlVbsOCxWmgEAAACAL0TVt4O1dr2kC+rYvl0141G/vL1C0leDUl2YOlhS\nIUnq0znR40oAAAAAwB2NGoOK4Brbv7PXJQAAAACAMwioAAAAAAAnEFABAAAAAE4goAIAAAAAnEBA\nBQAAAAA4gYAKAAAAAHACARUAAAAA4AQCKgAAAADACQRUAAAAAIATCKgAAAAAACcQUAEAAAAATiCg\nAgAAAACcQEAFAAAAADiBgAoAAAAAcAIBFQAAAADgBAIqAAAAAMAJBNRWtq3wmO58cY3XZQAAAACA\ncwiorWzT/mPaVlimK7K7Kr93J6/LAQAAAABnEFA98v1JA9WlfZzXZQAAAACAMwioAAAAAAAnEFAB\nAAAAAE4goAIAAAAAnEBABQAAAAA4gYAKAAAAAHACARUAAAAA4AQCKgAAAADACQRUAAAAAIATCKgA\nAAAAACcQUAEAAAAATiCgAgAAAACcQEAFAAAAADiBgAoAAAAAcAIBFQAAAADgBAIqAAAAAMAJBFQA\nAAAAgBMIqAAAAAAAJxBQAQAAAABOIKACAAAAAJxAQAUAAAAAOIGACgAAAABwAgEVAAAAAOCEKK8L\naEsWfbxPWw8c87oMAAAAAHASAbUVHSit0KGySmV2jFdq+1ivywEAAAAAp9TbxdcY090Y854xZpMx\n5hNjzH2B7Z2MMe8YYz4L/OwY2G6MMU8YY7YZY9YbY4a39JMIJd8Y1UMf3n+ZkuKjvS4FAAAAAJzS\nkDGo1ZL+2Vo7WNJoSXcZYwZLekDSYmttf0mLA9cl6UpJ/QP/bpP0m6BXDQAAAAAIO/UGVGvtfmvt\nmsDlY5I2S8qQNEXSc4HdnpN0XeDyFEnP2xrLJSUbY9KDXjkAAAAAIKw0agyqMaaXpAskfSQpzVq7\nP3DTAUlpgcsZkvacdreCwLb9p22TMeY21bSwqkePHo0su3UdiojQ+2Wfy376cpOPEdFhg6L9Vjsr\nP9fLn24NYnXhZc+xPfXvBAAAACAsNTigGmPaSXpZ0nestaXGmNrbrLXWGGMb88DW2jmS5khSXl5e\no+7b2p5P6qDfHV4hLVvR5GNEpdX8sj8ulz5eFrzawpGRUUpcitdlAAAAAGhlDQqoxpho1YTTF621\nfw5sPmiMSbfW7g904S0MbN8rqftpd88MbAtZVUZKMFFaNO3NJh/jkp+9p5PVVtNHZOifJw4MYnXh\nJy4yTslxyV6XAQAAAKCV1RtQTU1T6TOSNltrf3HaTa9Jminp0cDPRadtv9sY80dJoySVnNYVOGRF\nyKhrYtemH6A6Wbbar/iIlOYdBwAAAADCVENaUMdIuknSBmPM2sC2H6gmmC4wxtwiaZekrwVue0PS\nVZK2SToh6eagVhyiqnx+r0sAAAAAAKfVG1CttR9KMue4eUId+1tJdzWzrrBz+yV9tWlfqa7IpvUU\nAAAAAOrSqFl80XT3XzHI6xIAAAAAwGn1roMKAAAAAEBrIKACAAAAAJxAQAUAAAAAOIGACgAAAABw\nAgEVAAAAAOAEAioAAAAAwAkEVAAAAACAEwioAAAAAAAnEFABAAAAAE4goAIAAAAAnEBABQAAAAA4\ngYAKAAAAAHACARUAAAAA4AQCKgAAAADACQRUAAAAAIATCKgAAAAAACcQUAEAAAAATiCgAgAAAACc\nQEAFAAAAADiBgAoAAAAAcAIBFQAAAADgBAIqAAAAAMAJBFQAAAAAgBMIqAAAAAAAJxBQAQAAAABO\nIKACAAAAAJxAQAUAAAAAOIGACgAAAABwAgEVAAAAAOAEAioAAAAAwAkEVAAAAACAEwioAAAAAAAn\nEFABAAAAAE4goAIAAAAAnEBABQAAAAA4gYAKAAAAAHACAbUB/paYoGr5vS4DAAAAAMJalNcFhILC\nqCjJ+rwuAwAAAADCGi2oDXRHhxyvSwAAAACAsEZABQAAAAA4gYAKAAAAAHBCvQHVGPOsMabQGLPx\ntG2djDHvGGM+C/zsGNhujDFPGGO2GWPWG2OGt2TxAAAAAIDw0ZAW1HmSrvjStgckLbbW9pe0OHBd\nkq6U1D/w7zZJvwlOmQAAAACAcFdvQLXWvi/p8Jc2T5H0XODyc5KuO23787bGcknJxpj0YBULAAAA\nAAhfTR2Dmmat3R+4fEBSWuByhqQ9p+1XENh2FmPMbcaYVcaYVUVFRU0sAwAAAAAQLpo9SZK11kqy\nTbjfHGttnrU2LzU1tbllAAAAAABCXFMD6sFTXXcDPwsD2/dK6n7afpmBbQAAAAAAnFdTA+prkmYG\nLs+UtOi07d8MzOY7WlLJaV2BAQAAAAA4p6j6djDGvCRpvKTOxpgCSQ9JelTSAmPMLZJ2SfpaYPc3\nJF0laZukE5JuboGaAQAAAABhqN6Aaq39+jlumlDHvlbSXc0tCgAAAADQ9jR7kiQAAAAAAIKBgAoA\nAAAAcAIBFQAAAADgBAIqAAAAAMAJBFQAAAAAgBMIqAAAAAAAJxBQAQAAAABOIKACAAAAAJxAQAUA\nAAAAOIGACgAAAABwQpTXBQAAAAAIL1VVVSooKFBFRYXXpaCVxcXFKTMzU9HR0U26PwEVAAAAQFAV\nFBSoffv26tWrl4wxXpeDVmKtVXFxsQoKCtS7d+8mHYMuvgAAAACCqqKiQikpKYTTNsYYo5SUlGa1\nnBNQAQAAAAQd4bRtau55J6ACAAAAAJxAQAUAAAAAOIGACgAAAKDNmDdvnvbt21d7/dZbb9WmTZsk\nSb169dKhQ4e8Kg0ioAIAAABoQ74cUOfOnavBgwd7WBFOxzIzAAAAAFrMj/7yiTbtKw3qMQd366CH\nJmefd5+dO3fqmmuu0caNGyVJs2fP1rx587Rz507deOONio+P17Jly3TllVdq9uzZysvLq/dxr7vu\nOu3Zs0cVFRW67777dNttt+npp5/W559/rp/97GeSagLwqlWr9OSTT+onP/mJXnjhBaWmpqp79+4a\nMWKEvv/97zf/FxDGaEEFAAAA0CZMnz5deXl5evHFF7V27VrFx8c36v7PPvusVq9erVWrVumJJ55Q\ncXGxpk2bpldeeaV2n/nz52vGjBlauXKlXn75Za1bt05vvvmmVq1aFeynE5ZoQQUAAADQYupr6Qwl\nTzzxRG0Y3bNnjz777DONHj1affr00fLly9W/f39t2bJFY8aM0a9+9StNmTJFcXFxiouL0+TJkz2u\nPjQQUAEAAACEnaioKPn9/trrFRUVzTrekiVL9O6772rZsmVKSEjQ+PHja485Y8YMLViwQIMGDdLU\nqVNZA7YZ6OILAAAAIOykpaWpsLBQxcXFqqys1Ouvvy5Jat++vY4dO9bo45WUlKhjx45KSEjQli1b\ntHz58trbpk6dqkWLFumll17SjBkzJEljxozRX/7yF1VUVKisrKz28XF+tKACAAAACDvR0dF68MEH\nlZ+fr4yMDA0aNEiSNGvWLN1xxx21kyQ11BVXXKGnn35aWVlZGjhwoEaPHl17W8eOHZWVlaVNmzYp\nPz9fkjRy5Ehde+21Gjp0qNLS0jRkyBAlJSUF90mGIWOt9boG5eXlWZcHDQ95boju6JCju6a+5HUp\nAAAAgPM2b96srKwsr8vwXFlZmdq1a6cTJ05o3LhxmjNnjoYPH+51WS2urvNvjFltra13qmRaUAEA\nAACgBdx2223atGmTKioqNHPmzDYRTpuLgAoAAAAAAcXFxZowYcJZ2xcvXqyUlJRGHesPf/hDsMpq\nMwioAAAAABCQkpKitWvXel1Gm8UsvgAAAAAAJxBQAQAAAABOIKACAAAAAJxAQAUAAAAAOIGACgAA\nAKDNmDdvnvbt21d7/dZbb9WmTZskSb169dKhQ4da5HHCzbx583T33XcH/bjM4gsAAACg5bz5gHRg\nQ3CP2XWIdOWjTbrrvHnzlJOTo27dukmS5s6dG8zKzvk4aBhaUAEAAACEnZ07dyonJ6f2+uzZs5WT\nk6NVq1bpxhtvVG5ursrLyzV+/HitWrWqQcd84YUXlJ+fr9zcXN1+++3y+Xzy+XyaNWuWcnJyNGTI\nED3++ONauHDhWY9Tl9WrV+uSSy7RiBEjNGnSJO3fv1+SNH78eN1///3Kz8/XgAED9MEHH0iSysvL\nNWPGDGVlZWnq1KkaNWpUbe3t2rWrPe7ChQs1a9YsSVJRUZGmTZumkSNHauTIkVq6dKkk6eGHH9bs\n2bNr75OTk6OdO3ee83lK0u9+9zsNGDBA+fn5tccJNlpQAQAAALScJrZ0toTp06dryZIlmj17tvLy\n8hp1382bN2v+/PlaunSpoqOj9e1vf1svvviisrOztXfvXm3cuFGSdPToUSUnJ+vJJ5887+NUVVXp\nnnvu0aJFi5Samqr58+frhz/8oZ599llJUnV1tVasWKE33nhDP/rRj/Tuu+/qN7/5jRISErR582at\nX79ew4cPr7fu++67T9/97nc1duxY7d69W5MmTdLmzZsb/Twvv/xyPfTQQ1q9erWSkpJ06aWX6oIL\nLmjU77AhCKgAAAAAUI/Fixdr9erVGjlypKSa1swuXbpo8uTJ2r59u+655x5dffXVmjhxYoOOt3Xr\nVm3cuFGXX365JMnn8yk9Pb329uuvv16SNGLEiNqWzffff1/33nuvJGno0KEaOnRovY/z7rvv1o6x\nlaTS0lKVlZU1+nl+9NFHGj9+vFJTUyVJN9xwgz799NMGPdfGIKACAAAACDtRUVHy+/211ysqKpp1\nPGutZs6cqZ/+9Kdn3bZu3Tq9/fbbevrpp7VgwYLaVtD6jpedna1ly5bVeXtsbKwkKTIyUtXV1fUe\nzxhTe/n05+r3+7V8+XLFxcWdsf+5fj/nep6vvvpqvTUEA2NQAQAAAISdtLQ0FRYWqri4WJWVlXr9\n9dclSe3bt9exY8cafbwJEyZo4cKFKiwslCQdPnxYu3bt0qFDh+T3+zVt2jQ98sgjWrNmTYMeZ+DA\ngSoqKqoNqFVVVfrkk0/OW8O4ceP0hz/8QZK0ceNGrV+//oznu3nzZvn9fr3yyiu12ydOnKhf//rX\ntdfXrl0rqWbG4lO1rlmzRjt27Djv8xw1apT+8Y9/qLi4WFVVVfrTn/7UgN9a49GCCgAAACDsREdH\n68EHH1R+fr4yMjI0aNAgSdKsWbN0xx13KD4+/pytl3UZPHiwHnnkEU2cOFF+v1/R0dF66qmnFB8f\nr5tvvrm2NfJUy+OXHyc+Pv6M48XExGjhwoW69957VVJSourqan3nO99Rdnb2OWu48847dfPNNysr\nK0tZWVkaMWJE7W2PPvqorrnmGqWmpiovL6+2G+8TTzyhu+66S0OHDlV1dbXGjRunp59+WtOmTdPz\nzz+v7OxsjRo1SgMGDDjv8xw9erQefvhhXXjhhUpOTlZubm6Df3eNYay1LXLgxsjLy7MNnTnLC0Oe\nG6I7OuTorqkveV0KAAAA4LzNmzcrKyvL6zLC3vjx45s04VNLq+v8G2NWW2vrLZQuvgAAAAAAJ9DF\nFwAAAAACiouLNWHChLO2L168WCkpKU065tSpU2vHeJ7y2GOPadKkSU063ilLlixp1v1d1CIB1Rhz\nhaRfSYqUNNda687iRwAAAABwDikpKbUTCQXL6ZMW4fyC3sXXGBMp6SlJV0oaLOnrxpjBwX4cAAAA\nAEB4aYkxqPmStllrt1trT0r6o6QpLfA4raLk6E6vSwAAAACANqElAmqGpD2nXS8IbDuDMeY2Y8wq\nY8yqoqKiFigjOKy1yrXRGtW7ef3DAQAAAADn59kkSdbaOZLmSDXLzHhVR32SO/bW72et8boMAAAA\nAAh7LdGCuldS99OuZwa2AQAAAICn5s2bp3379tVev/XWW7Vp0yZJUq9evXTo0KEWeRw0TEu0oK6U\n1N8Y01s1wXSGpG+0wOMAAAAAcNxjKx7TlsNbgnrMQZ0G6f78+5t033nz5iknJ0fdunWTJM2dOzeY\npZ3zcdAwQW9BtdZWS7pb0tuSNktaYK39JNiPAwAAAADnsnPnTuXk5NRenz17tnJycrRq1SrdeOON\nys3NVXl5ucaPH69Vq1Y16JgvvPCC8vPzlZubq9tvv10+n08+n0+zZs1STk6OhgwZoscff1wLFy48\n63Hqsnr1al1yySUaMWKEJk2apP3796uwsFAjRoyQJK1bt07GGO3evVuS1LdvX504cUKzZs3SnXfe\nqdGjR6tPnz5asmSJvvWtbykrK0uzZs2qPf6dd96pvLw8ZWdn66GHHmrib7J1tcgYVGvtG5LeaIlj\nAwAAAAgdTW3pbAnTp0/XkiVLNHv2bOXl5TXqvps3b9b8+fO1dOlSRUdH69vf/rZefPFFZWdna+/e\nvdq4caMk6ejRo0pOTtaTTz553sepqqrSPffco0WLFik1NVXz58/XD3/4Qz377LOqqKhQaWmpPvjg\nA+Xl5emDDz7Q2LFj1aVLFyUkJEiSjhw5omXLlum1117Ttddeq6VLl2ru3LkaOXKk1q5dq9zcXP3n\nf/6nOnXqJJ/PpwkTJmj9+vUaOnRo836JLcyzSZIAAAAAIFQsXrxYq1ev1siRIyVJ5eXl6tKliyZP\nnqzt27frnnvu0dVXX62JEyc26Hhbt27Vxo0bdfnll0uSfD6f0tPTJUkXXXSRli5dqvfff18/+MEP\n9NZbb8laq4svvrj2/pMnT5YxRkOGDFFaWpqGDBkiScrOztbOnTuVm5urBQsWaM6cOaqurtb+/fu1\nadMmAioAAAAAtLaoqCj5/f7a6xUVFc06nrVWM2fO1E9/+tOzblu3bp3efvttPf3001qwYIGeffbZ\nBh0vOztby5YtO+u2cePG6YMPPtCuXbs0ZcoUPfbYYzLG6Oqrr67dJzY2VpIUERFRe/nU9erqau3Y\nsUOzZ8/WypUr1bFjR82aNavZv4PW0BKz+AIAAACAp9LS0lRYWKji4mJVVlbq9ddflyS1b99ex44d\na/TxJkyYoIULF6qwsFCSdPjwYe3atUuHDh2S3+/XtGnT9Mgjj2jNmjUNepyBAweqqKioNqBWVVXp\nk09qpu65+OKL9cILL6h///6KiIhQp06d9MYbb2js2LENrre0tFSJiYlKSkrSwYMH9eabbzb6OXuB\nFlQAAAAAYSc6OloPPvig8vPzlZGRoUGDBkmSZs2apTvuuEPx8fF1tl6ey+DBg/XII49o4sSJ8vv9\nio6O1lNPPaX4+HjdfPPNta21p1pYv/w48fHxZxwvJiZGCxcu1L333quSkhJVV1frO9/5jrKzs9Wr\nVy9ZazVu3DhJ0tixY1VQUKCOHTs2uN5hw4bpggsu0KBBg9S9e3eNGTOmwff1krHWel2D8vLybENn\nzgIAAADgts2bNysrK8vrMuCRus6/MWa1tbbemano4gsAAAAAcAJdfAEAAAAgoLi4WBMmTDhr++LF\ni5WSktKkY06dOlU7duw4Y9tjjz2mSZMmNel44YyACgAAACDorLUyxnhdRqOlpKRo7dq1QT3mK6+8\nEtTjuay5Q0jp4gsAAAAgqOLi4lRcXNzssILQYq1VcXGx4uLimnwMWlABAAAABFVmZqYKCgpUVFTk\ndSloZXFxccrMzGzy/QmoAAAAAIIqOjpavXv39roMhCC6+AIAAAAAnEBABQAAAAA4gYAKAAAAAHCC\ncWFmLWNMkaRdQTpcZ0mHgnQsIFzwugDqxmsDOBuvC6BuvDaap6e1NrW+nZwIqMFkjFllrc3zug7A\nJbwugLqwbdKgAAAEp0lEQVTx2gDOxusCqBuvjdZBF18AAAAAgBMIqAAAAAAAJ4RjQJ3jdQGAg3hd\nAHXjtQGcjdcFUDdeG60g7MagAgAAAABCUzi2oAIAAAAAQhABFQAAAADghJANqMaYK4wxW40x24wx\nD9Rx+yxjTJExZm3g361e1Am0JmPMs8aYQmPMxnPcbowxTwReN+uNMcNbu0agtTXgdTHeGFNy2vvF\ng61dI9DajDHdjTHvGWM2GWM+McbcV8c+vGegTWng64L3jBYW5XUBTWGMiZT0lKTLJRVIWmmMec1a\nu+lLu8631t7d6gUC3pkn6UlJz5/j9isl9Q/8GyXpN4GfQDibp/O/LiTpA2vtNa1TDuCEakn/bK1d\nY4xpL2m1MeadL32W4j0DbU1DXhcS7xktKlRbUPMlbbPWbrfWnpT0R0lTPK4J8Jy19n1Jh8+zyxRJ\nz9sayyUlG2PSW6c6wBsNeF0AbY61dr+1dk3g8jFJmyVlfGk33jPQpjTwdYEWFqoBNUPSntOuF6ju\n/zzTAl1SFhpjurdOaYDTGvraAdqaC40x64wxbxpjsr0uBmhNxpheki6Q9NGXbuI9A23WeV4XEu8Z\nLSpUA2pD/EVSL2vtUEnvSHrO43oAAG5aI6mntXaYpF9LetXjeoBWY4xpJ+llSd+x1pZ6XQ/ggnpe\nF7xntLBQDah7JZ3eIpoZ2FbLWltsra0MXJ0raUQr1Qa4rN7XDtDWWGtLrbVlgctvSIo2xnT2uCyg\nxRljolXzIfxFa+2f69iF9wy0OfW9LnjPaHmhGlBXSupvjOltjImRNEPSa6fv8KUxEteqpg850Na9\nJumbgZkZR0sqsdbu97oowEvGmK7GGBO4nK+a98Zib6sCWlbg//wzkjZba39xjt14z0Cb0pDXBe8Z\nLS8kZ/G11lYbY+6W9LakSEnPWms/Mcb8WNIqa+1rku41xlyrmtm4Dkua5VnBQCsxxrwkabykzsaY\nAkkPSYqWJGvt05LekHSVpG2STki62ZtKgdbTgNfFdEl3GmOqJZVLmmGttR6VC7SWMZJukrTBGLM2\nsO0HknpIvGegzWrI64L3jBZm+H0CAAAAAFwQql18AQAAAABhhoAKAAAAAHACARUAAAAA4AQCKgAA\nAADACQRUAAAAAIATQnKZGQAAXGKMSZG0OHC1qySfpKLA9RPW2os8KQwAgBDDMjMAAASRMeZhSWXW\n2tle1wIAQKihiy8AAC3IGFMW+DneGPMPY8wiY8x2Y8yjxpgbjTErjDEbjDF9A/ulGmNeNsasDPwb\n4+0zAACg9RBQAQBoPcMk3SEpS9JNkgZYa/MlzZV0T2CfX0l63Fo7UtK0wG0AALQJjEEFAKD1rLTW\n7pckY8znkv4W2L5B0qWBy1+RNNgYc+o+HYwx7ay1Za1aKQAAHiCgAgDQeipPu+w/7bpfX7wnR0ga\nba2taM3CAABwAV18AQBwy9/0RXdfGWNyPawFAIBWRUAFAMAt90rKM8asN8Zs+v/t3cEJAAAIxDD3\nn9qHSxRMtihyOLdZBYAXvJkBAAAgwQUVAACABIEKAABAgkAFAAAgQaACAACQIFABAABIEKgAAAAk\nCFQAAAASFmrSZmtLTwpbAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x7fc7ed172b50>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "df = trace.data_frame.trace_event('sched_load_se')\ndf[df.pid == trace.getTaskByName('task_p60')[0]][['util', 'running']][1.5:1.8].plot(figsize=(16,8), drawstyle='steps-post');\nlogging.info(\"Task Utilization\")",
"execution_count": 21,
"outputs": [
{
"output_type": "stream",
"text": "01:00:34 INFO : Task Utilization\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHkCAYAAAAzRAIWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X2UZXdZJ/rvE5KYN5pgjOmmkzaB\niWJjLXukJh0UnSCOEAZtuLeHl0aFHjB4LyjX0RF0ucSLK7MyrjjKLNcgAUngjphgawxDGIXhXmYu\n3BDtYLSSjgwBGtJtd9KJSBNiEhJ+9486Faqr6+VU18vZ55zPZ61adc7v7F31VPeuXb/nPL+Xaq0F\nAAAABu2kQQcAAAAAiQQVAACAjpCgAgAA0AkSVAAAADpBggoAAEAnSFABAADohL4S1Kp6U1XdUVV3\nVtX/0Wv71qr6aFV9tvf5qb32qqr/WFV3V9XfVNX3reUPAAAAwGhYMkGtqu9J8tNJLknyvUleXFX/\nJMlbknystXZxko/1nifJ5Uku7n1ckeQdaxA3AAAAI6afCup3J7m1tfZQa+2xJP89yf+SZEeS9/aO\neW+Sl/Qe70jyvjbtU0nOrqpNqxw3AAAAI6afBPWOJD9YVedU1RlJXpTkgiTntdYO9Y45nOS83uPN\nSe6Zdf6BXhsAAAAs6OSlDmit3VVV/z7JR5J8LcntSR6fc0yrqracb1xVV2R6CHDOPPPMZz/zmc9c\nzukAAAAMidtuu+3+1tq5Sx23ZIKaJK2130/y+0lSVf8u01XRe6tqU2vtUG8I7329ww9musI64/xe\n29yveU2Sa5JkcnKy7d27t59QAAAAGDJV9cV+jut3Fd9v733ekun5p+9P8sEkr+4d8uokN/UefzDJ\nT/VW8700yVdmDQUGAACAefVVQU3yx1V1TpKvJ3lDa+0fquqqJB+oqtcm+WKSl/WO/XCm56neneSh\nJLtXOWYAAABGUL9DfH9wnrYHkjx/nvaW5A0rDw0AAIBx0m8Fdd19/etfz4EDB/Lwww8POpROO+20\n03L++efnlFNOGXQoAAAAK9LZBPXAgQN58pOfnAsvvDBVNehwOqm1lgceeCAHDhzIRRddNOhwAAAA\nVqSvRZIG4eGHH84555wjOV1EVeWcc85RZQYAAEZCZxPUJJLTPvg3AgAARkWnE1QAAADGhwT1BFx3\n3XX5u7/7uyeev+51r8u+ffuSJBdeeGHuv//+QYUGAAAwtCSoJ2Bugvrud787W7duHWBEAAAAw6+z\nq/jO9n/+lzuz7++OrurX3Pq0DXnrjz1r0WP279+fF7/4xbnjjjuSJFdffXWuu+667N+/P6961aty\n+umn55Zbbsnll1+eq6++OpOTk6saIwAAwDhRQV2mnTt3ZnJyMn/wB3+Q22+/PaeffvqgQwIAABgJ\nQ1FBXarSCQAAwPBTQV3EySefnG984xtPPLffKAAAwNqRoC7ivPPOy3333ZcHHnggjzzySD70oQ8l\nSZ785Cfnq1/96oCjAwAAGC1DMcR3UE455ZT82q/9Wi655JJs3rw5z3zmM5Mkr3nNa/IzP/MzTyyS\nBAAAwMpVa23QMWRycrLt3bv3mLa77ror3/3d3z2giIaLfysAAKDLquq21tqS256ooAKslr3XJlN7\njm+f2JlM7l7/eAAAhow5qACrZWpPcnjq2LbDU/MnrQAAHEcFFWA1bZxIdt/8zefX/svBxQIALDzC\naZSM0GgtFVQAAGB0zTfCaZSM2GgtFVQAAGC0zR3hNEpGbLSWCioAAACdIEEdkNe97nXZt2/foMMA\nAIDRsvfa6arizMcoD+8dQYb49qm1ltZaTjppdXL6d7/73avydQBg7IzqgicjtMgJDNTMnNONE9PP\nN05M/34xFIYjQf2vb1n9dz42TiSXX7XoIfv3788LXvCCbN++Pbfddlv27duX1lqSZM+ePfnQhz6U\n6667Lq95zWuyYcOG7N27N4cPH85v/uZvZufOnfn4xz+eX//1X8+3fdu35Y477sizn/3s/Of//J9T\nVbnsssty9dVXZ3JyMmeddVbe9KY35UMf+lBOP/303HTTTTnvvPPyuc99Lq961avyta99LTt27Mjv\n/M7v5MEHH1zdfwcAGDZzO5+jYKafI0GF1THKc05H3HAkqAP02c9+Nu9973tz6aWX5qyzzlrwuEOH\nDuUTn/hE/vZv/zY//uM/np07p9+l+au/+qvceeededrTnpYf+IEfyCc/+ck897nPPebcr33ta7n0\n0ktz5ZVX5pd+6Zfyrne9K7/6q7+aN73pTXnTm96UV77ylfm93/u9Nf05YV2NavVj1DrM0GWj1vkc\nsUVOAE7UcCSoS1Q619J3fMd35NJLL13yuJe85CU56aSTsnXr1tx7771PtF9yySU5//zzkyTbtm3L\n/v37j0tQTz311Lz4xS9Okjz72c/ORz/60STJLbfckj/90z9NkuzatSu/+Iu/uCo/EwzcKFY/EkOI\nAABWaDgS1AE688wzn3hcVU88fvjhh4857lu+5VueeDwzDHhu+5Oe9KQ89thjx32PU0455YmvvdAx\nMHJGrfoBsFKHp46vpJqXCixlxN7wt4rvMpx33nm566678o1vfCM33njjmn+/Sy+9NH/8x3+cJLn+\n+uvX/PsBAAMysfP4TubhqdGcDgGsrsuvGuiI09WmgroMV111VV784hfn3HPPzeTk5JovWPQ7v/M7\n+Ymf+IlceeWVeeELX5inPOUpa/r9AIABmdx9fKXUvFRgDElQF3HhhRfmjjvueOL5zp07n1j8aLbr\nrrvumOczietll12Wyy677In23/3d333i8cc//vHjjp/7PTZv3pxPfepTqapcf/31+cxnPrOSHwcA\nAIbPchdXHMV1LsaIBLXDbrvttrzxjW9May1nn3123vOe9ww6JABYH4t1SHU+Ybwsd3FFixYONQlq\nh/3gD/5g/vqv/3rQYcCJW6iDqXMJLGWxDqnOJ4wfiyuOjU4nqK21Y1bO5XizVwyGzlmog6lzCfRD\nhxRg7HQ2QT3ttNPywAMP5JxzzpGkLqC1lgceeCCnnXbaoEOBhelgAgDQp84mqOeff34OHDiQI0eO\nDDqUTjvttNNy/vnnDzoMAACAFetsgnrKKafkoosuGnQYAAAArJOTBh0AAAAAJBJUAAAAOkKCCgAA\nQCd0dg4qADAiFtoTeTH2SwYYSxJUoD86mMCJWmhP5MXYLxnGQz/9C/2JsSJBBfqjgwmshD2Rgfn0\n07/QnxgrfSWoVfXzSV6XpCWZSrI7ye8l+edJvtI77DWttdurqpK8PcmLkjzUa//0agcODIAOJgCw\n2vQvmGXJBLWqNif5uSRbW2v/WFUfSPKK3sv/trU2tyZ/eZKLex/bk7yj9xkAAAAW1O8qvicnOb2q\nTk5yRpK/W+TYHUne16Z9KsnZVbVphXECAAAw4pZMUFtrB5NcneRLSQ4l+Upr7SO9l6+sqr+pqt+u\nqm/ptW1Ocs+sL3Gg1wYAAAALWjJBraqnZroqelGSpyU5s6p+IskvJ3lmkn+W5FuTvHk537iqrqiq\nvVW198iRI8sOHAAAgNHSzxDfH0nyhdbakdba15P8SZLvb60d6g3jfSTJtUku6R1/MMkFs84/v9d2\njNbaNa21ydba5LnnnruynwIAAICh10+C+qUkl1bVGb0Vep+f5K6ZeaW9tpckuaN3/AeT/FRNuzTT\nQ4IPrUHsAAAAjJAlV/Ftrd1aVXuSfDrJY0n+Ksk1Sf5rVZ2bpJLcnuRneqd8ONNbzNyd6W1mdq9B\n3AAAAIyYvvZBba29Nclb5zT/8ALHtiRvWGFcAMAw2HttMjV3x7k5Dk9N73MIAEvod5sZAIDjTe2Z\nTkAXs3Eimdi5PvEAMNT6qqACI04FBFiJjRPJ7psHHQUAI0AFFVABAQCgE1RQgWkqIAAADJgKKgAA\nAJ0gQQUAAKATDPEFAACWp58FFvthEUbmUEEFAACWp58FFvthEUbmUEEFAACWzwKLrAEVVAAAADpB\nggoAAEAnGOILAAAsbu6iSBY3Yo2ooAIAAIubuyiSxY1YIyqoAADA0iyKxDpQQQUAAKATVFABgGPN\nnWu2GPPQAFhFElQYVTqYwImamWvWz33BPDQAVpEEFUaVDiawmMXexJq5d5hrBsA6k6DCMNPBBE7U\nYm9iedMKgAGRoMIw08EEVsKbWAB0jAQVhp0OJgAAI8I2MwAAAHSCCioAjIvZ89at3g1AB6mgAsC4\nmJm3npinDkAnqaDCMJm7aq8KCLBc5q0D0GEqqDBMZlc/EhUQAABGigoqDBvVDwAARpQEFQAAxtHc\nqUOLMa2IdWKILwAAjKO5U4cWY1oR60QFFQAAxpWpQ3SMCioAAACdIEEFAACgEySoAAAAdIIEFQAA\ngE6QoAIAANAJElQAAAA6QYIKAABAJ0hQAQAA6ISTBx0AAACwQnuvTab2LO+cw1PJxom1iQdOkAQV\nAIbZcjqlOqMwuqb2LP93fONEMrFz7WKCEyBBBYBhtpxOqc4ojLaNE8numwcdBayIBBUGTfUDWCmd\nUgBGRF+LJFXVz1fVnVV1R1X9YVWdVlUXVdWtVXV3Vd1QVaf2jv2W3vO7e69fuJY/AAy9mepHP1Q/\nAAAYYUtWUKtqc5KfS7K1tfaPVfWBJK9I8qIkv91au76qfi/Ja5O8o/f5y621f1JVr0jy75O8fM1+\nAhgFqh8AAND3NjMnJzm9qk5OckaSQ0l+OMnMuMT3JnlJ7/GO3vP0Xn9+VdXqhAsAAMCoWjJBba0d\nTHJ1ki9lOjH9SpLbkvxDa+2x3mEHkmzuPd6c5J7euY/1jj9n7tetqiuqam9V7T1y5MhKfw4AAACG\n3JIJalU9NdNV0YuSPC3JmUleuNJv3Fq7prU22VqbPPfcc1f65QAAABhy/Qzx/ZEkX2itHWmtfT3J\nnyT5gSRn94b8Jsn5SQ72Hh9MckGS9F5/SpIHVjVqAAAARk4/CeqXklxaVWf05pI+P8m+JP9Pkpnl\nRF+d5Kbe4w/2nqf3+v/dWmurFzIAAACjqJ85qLdmerGjTyeZ6p1zTZI3J/k3VXV3pueY/n7vlN9P\nck6v/d8kecsaxA0AAMCIWXKbmSRprb01yVvnNH8+ySXzHPtwkn+18tAAAAAYJ30lqADAOth7bTK1\nZ+njZjs8Nb2XMgCMgH73QQUA1trUnumEczk2TiQTO5c+DgCGgAoqrLblVkBUP4DZNk4ku28edBRA\nl/TTt9CfYESooMJqW24FRPUDAFhMP30L/QlGhAoqrAUVEABgNelbMCZUUAEAAOgECSoAAACdIEEF\nAACgEySoAAAAdIIEFQAAgE6QoAIAANAJElQAAAA6QYIKAABAJ0hQAQAA6AQJKgAAAJ0gQQUAAKAT\nTh50AAAwFvZem0ztWfyYw1PJxon1iQcAOkgFFQDWw9Se6QR0MRsnkomd6xMPAHSQCir0q5/qR6IC\nAixs40Sy++ZBRwEAnaWCCv3qp/qRqIAAAMAJUkGF5VD9AACANaOCCgAAQCdIUAEAAOgECSoAAACd\nIEEFAACgEyySBAAAa6HfLeqWYgs7xogKKgAArIV+t6hbii3sGCMqqAAAsFZsUQfLooIKAABAJ0hQ\nAQAA6AQJKgAAAJ0gQQUAAKATLJIEAACrYe62MraHgWVTQQUAgNUwd1sZ28PAsqmgAgDAarGtDKyI\nCioAAACdIEEFAACgEySoAAAAdII5qAAAQGe9/9Yv5abbD8772o5tm7Nr+5Z1joi1JEGFuUvCL8RS\n8QAA6+6m2w9m36Gj2bppwzHt+w4dTRIJ6oiRoMLMkvBLJZ+WigcAGIitmzbkhtc/55i2l7/zlgFF\nw1paMkGtqu9KcsOspqcn+bUkZyf56SRHeu2/0lr7cO+cX07y2iSPJ/m51tqfr2bQsOosCQ8spN9R\nFksxCgMAlrRkgtpa+0ySbUlSVU9KcjDJjUl2J/nt1trVs4+vqq1JXpHkWUmeluS/VdV3ttYeX+XY\nAWDt9TvKYilGYQDAkpY7xPf5ST7XWvtiVS10zI4k17fWHknyhaq6O8klSdTgGYylqh+qGsBSjLIA\ngHWx3G1mXpHkD2c9f2NV/U1Vvaeqntpr25zknlnHHOi1HaOqrqiqvVW198iRI3NfhtUzU/1YiKoG\nAAB0Qt8V1Ko6NcmPJ/nlXtM7kvxGktb7/FtJ/nW/X6+1dk2Sa5JkcnKy9XsenBDVD4CBsUUEAP1a\nzhDfy5N8urV2b5LMfE6SqnpXkg/1nh5McsGs887vtQFDTAcTOFGrvUXEYvejYeZeCrC8BPWVmTW8\nt6o2tdYO9Z6+NMkdvccfTPL+qvoPmV4k6eIkf7EKsQIDZA8yYCVWc4uIhe5Hw8y9FNbOqL6pNdso\nvcHVV4JaVWcm+RdJXj+r+Teralumh/jun3mttXZnVX0gyb4kjyV5gxV8YTTYg4yxMHdhNQupddJ8\n96Nh5l4Ka2cU39SabdTe4OorQW2tfS3JOXPafnKR469McuXKQgNG1Si/kzlK72COrbnbylhIDWDo\njdqbWrON2htcy91mBobD7AqI6kfnjOo7maP2DuZYs7AaAAyEBJXRNLsCovrRSaP4TuaovYMJALDe\nJKiMLhUQAAAYKicNOgAAAABIVFABAGBxc1f3XsgYrXux0IKHXVgscG5so7juxShTQQUAgMXMrG2x\nlDFa92JmwcPZ9h062olV+ufGtnXThuzYtnmAEbEcKqgAALAUa1scZ+6Ch11aLHAUF2McFxJUAABg\nIPrZG90Q3fFiiC8AADAQ8w0VnssQ3fGiggoAAAyM4bjMpoIKAABAJ6igAgCds9i8NPPRYP3ZuoX1\nIkEF1sxCHUx/1IClzMxLm+9eYT4arL+5v5N+D1krElQYYotVGLqwUfZCHUx/1GDwun7/SMxLg67x\nO8l6kKDCEFsoAZxZDU8HE1jIMNw/ABg/ElQYcvMlgMvdKNseZDCe3D8A6Bqr+AL2IANOmPsHAKtJ\nBRVIYigucOLcPwBYLSqoAAAAdIIEFQAAgE4wxBcAxsTsBY0sXMTY2nttMrVneeccnko2TqxNPKzI\nvkNHj1vczf1tuElQYYjMXS3TDRhYjtlby1i4iLE1tWf5CefGiWRi59rFxAlZ6B7m/jbcJKgwRObu\nW+gGDH1aTsVkxCslFjSCTP+O77550FGwQru2b7Fn8wiSoMKQ0bmEE7CciolKCTCEFtuTeMe2zRI5\nhoYEleGhAgKshIoJMMLmjrKaMbNPsQSVYSFBZXiogAAALGi+UVZzFxCCrpOgMlxUQAAAYGRJUAGA\ngZlvi4iZdquUA4wfCSqwYjqYwIlYbBVyq5QDjCcJKrAiOpjAibJFBABzSVCBFdHBBABgtZw06AAA\nAAAgkaACAADQERJUAAAAOsEcVADoiPff+qXcdPvBeV/bsW2z+d4AjDwJKqyyhTqYOpfAUm66/eC8\n2zPtO3Q0SdxDgM5baOu5xY63JR2zSVBhlc3XwdS5BPq1ddOG3PD65xzTtpzOHkC/Fhu1MVc/ieSJ\nbC1nSzrmkqDCGpjbwdS5hFW099pkas/8r03sTCZ3r288AENqoVEb8+knkbT1HKtBggrAcJnakxye\nSjZOHNv+xU9Mf8yXvM53PADzjtqAQZKgAjB8Nk4ku28+tm2xyurGienqKgDQaRJUBmOxjuRCVECW\n5dYv/H3fQ4stUMBImNxteO8qcf8AYFCWTFCr6ruS3DCr6elJfi3J+3rtFybZn+RlrbUvV1UleXuS\nFyV5KMlrWmufXt2wGXoLDdFbjArIsq3mvBJgvLh/MJT6eQPcG97QaUsmqK21zyTZliRV9aQkB5Pc\nmOQtST7WWruqqt7Se/7mJJcnubj3sT3JO3qf4VjzDdFjVZlXApwo9w+GUj9vgHvDGzptuUN8n5/k\nc621L1bVjiSX9drfm+TjmU5QdyR5X2utJflUVZ1dVZtaa4dWKWYAAJifN8BhqC03QX1Fkj/sPT5v\nVtJ5OMl5vcebk9wz65wDvbZjEtSquiLJFUmyZYvlqAEAYD797FdqPjijou8EtapOTfLjSX557mut\ntVZVbTnfuLV2TZJrkmRycnJZ5wKLm5kPZl4YsFzuH9A9/exXaj44o2I5FdTLk3y6tXZv7/m9M0N3\nq2pTkvt67QeTXDDrvPN7bcA6sVE2jI9+Kisz+qmwuH/A6lns93PHts3L+l0zL5xxsZwE9ZX55vDe\nJPlgklcnuar3+aZZ7W+squszvTjSV8w/hYWtducSGC/9VFZmqLDA+lro93PfoaNJ4s0gmEdfCWpV\nnZnkXyR5/azmq5J8oKpem+SLSV7Wa/9wpreYuTvT28zYlA4WoXMJrJTKCnTXfL+f/e4zDOOorwS1\ntfa1JOfMaXsg06v6zj22JXnDqkQHY0LnEgAAkpMGHQAAAAAkElQAAAA6QoIKAABAJyxnFV8AAGDI\n7Dt0dN6FmewOQBdJUAEAYEQttvq/3QHoIgkqAACsgrl7m3ehQrlr+xb7rTJUJKgAsA7mdlzn04XO\nLHDi5u5trkIJyydBhT7107lMdDCB+c3tuM5HZxaGn73NYWUkqNCnfjqXiQ4msDAdVwBYnAQVlkHn\nEtbY3muTqT2LH3N4Ktk4sT7xAADrSoIKQHdM7Vk6Ad04kUzsXLeQFhrev2PbZguPAMAqk6Ay8hab\nO6qDCR20cSLZffOgo3jCfMP79x06miTuHwCwyiSojLyF5o7qYAL9mju8f74N7wGAlZOgsvo6OIds\nvrmjOpgAANAtElRWXwfnkAEMu32Hjs77xpqtrQAYJRJU1kbH5pB1gc4lcKIW27rK1lYAjBIJKqwD\nnUtgJXZt32K+PABjQYIK60DnEgAAlnbSoAMAAACARAUVAI4xd+9k88QBYP1IUBlJszuYOpfAcszd\nO9k8cQBYPxJURtLsDqbOJbBc8+2dDACsPQkqI0sHEwCGxN5rp/dRX6ml9mEHOs8iSQAADNbUnunk\ncqU2TiQTO1f+dYCBUUEFAGDwNk4ku28edBTAgElQAQAYG3NX6p5tx7bN9i2HAZOgAgAwNuau1D1j\n36GjSbJuCeq+Q0fz8nfe0vexdiRgXEhQAQAYK/MtpNhvsrgalru7gB0JGCcSVAAAWEe7tm8xlBgW\nYBVfAAAAOkGCCgAAQCdIUAEAAOgEc1ABAFhfe69NpvZ88/nhqel9UIGxJ0EFAGB9Te05NindOJFM\n7BxsTItYbO/U2WwHAysnQQUAYP1tnEh23zzoKPqy0N6pc9kOBlZOggoAAEuYb+9UYPVJUBl7hu0A\nAEA3WMWXsTczbGcphu0AAMDaUkGFGLYDAABdIEEFgBOw79DRvPydtyzreNMEAGBxElTG2szQXp1G\nGB6LzRvfsW1zdm3fsuYxnMhwf9MEAGBpfSWoVXV2kncn+Z4kLcm/TvKCJD+d5EjvsF9prX24d/wv\nJ3ltkseT/Fxr7c9XOW5YsdkdRZ1GGB4Lbfcw84bTeiSou7ZvWZfvAwDjpt8K6tuT/FlrbWdVnZrk\njEwnqL/dWrt69oFVtTXJK5I8K8nTkvy3qvrO1trjqxg3rJgOJgyv+eaNL2e4LQDQTUsmqFX1lCQ/\nlOQ1SdJaezTJo1W10Ck7klzfWnskyReq6u4klyTRc+AJXRiiB6yivdcmU3tW/nUOTyUbJ1b+dQCA\nodTPNjMXZXoY77VV9VdV9e6qOrP32hur6m+q6j1V9dRe2+Yk98w6/0Cv7RhVdUVV7a2qvUeOHJn7\nMiNuoa1d9h062teepEDHTO2ZTi5XauNEMrFz5V8HABhK/QzxPTnJ9yX52dbarVX19iRvSfK7SX4j\n03NSfyPJb2V6bmpfWmvXJLkmSSYnJ9sy42YEGKIHI2bjRLL75kFHAQAMsX4qqAeSHGit3dp7vifJ\n97XW7m2tPd5a+0aSd2V6GG+SHExywazzz++1AQAAwIKWrKC21g5X1T1V9V2ttc8keX6SfVW1qbV2\nqHfYS5Pc0Xv8wSTvr6r/kOlFki5O8hdrEDurzRwyAABggPpdxfdnk/xBbwXfzyfZneQ/VtW2TA/x\n3Z/k9UnSWruzqj6QZF+Sx5K8wQq+Q2JmDtlKk0tzyAAAgBPQV4LaWrs9yeSc5p9c5Pgrk1y5grgY\nFHPIgBG02Mrhc823xyoAsD76raDCwOlgAidqZuXwfu4LWzdtyI5txy0+DwyBfvoK+gjQbRJUhoYO\nJrAS860cDoyWfvoK+gjQbRJUhooOJgCwGH0FGG79bDMDAAAAa04FFYATM3trKttLASNg36Gjefk7\nb5m33bxVWB8SVABOzOytqWwvBQy5xealmrcK60eCCsCJszUVMCJ2bd+SXdu3DDoMGHvmoAIAANAJ\nKqjjbPb8scQcMgAAYKBUUMfZzPyxGeaQAQAAA6SCOu7MHwMAADpCggoAwEC9/9Yv5abbDx7XvmPb\nZgsXwZgxxBcAgIG66faD2Xfo6DFt+w4dnTdpBUabCioAAAO3ddOG3PD65zzx/OXvvGWA0QCDIkEF\nAGDl5u4OsBg7BwALMMQXAICVm7s7wGLsHAAsQAUVAIDVYXcAYIUkqAB0xkIrec6279DRbN20YZ0i\nAgDWkyG+AHTGfCt5zrV104bs2LZ5nSICANaTCioAnTJ3JU8AYHxIUFl1hugBg7Lv0NF5t6ZwzwGA\n4WCIL6vOED1gEHZs27xgEuqeAwDDQQWVNbGSIXoqIMCJ2LV9S3Zt3zLoMIA+zB1t5W88MEMFlU5R\nAQGA0Td3tJW/8cAMFVQ6RQUEAMaDBdGA+aigAgAA0AkSVAAAADpBggoAAEAnSFABAADoBAkqAAAA\nnWAVXwBWbO6ehrPt2LbZ6twAQF9UUAFYsbl7Gs7Yd+jogokrAMBcKqgArIr59jR8+TtvGVA0AMAw\nUkEFAACgE1RQeYI5ZAAAwCBJUHnCzByyrZs2HNM+M69MggoAY2LvtcnUnuWdc3gq2TixNvEAY0OC\nyjHMIYMxt5xOqc4ojK6pPcv/Hd84kUzsXLuYgLEgQQXgm5bTKdUZhdG2cSLZffOgowDGjAQVgGPp\nlAIdse/Q0WWN5JpvqhIwXCSoAAB0zo5tm5d9ztZNG07oPKA7JKgAAHTOru1bLNAIY6ivBLWqzk7y\n7iTfk6Ql+ddJPpPkhiQXJtkR+JeyAAASsElEQVSf5GWttS9XVSV5e5IXJXkoyWtaa59e9ciZnwVO\ngHUye2sqw+oAgNVwUp/HvT3Jn7XWnpnke5PcleQtST7WWrs4ycd6z5Pk8iQX9z6uSPKOVY2Yxc0s\ncNIPC5wAKzCzNVViWB0AsDqWrKBW1VOS/FCS1yRJa+3RJI9W1Y4kl/UOe2+Sjyd5c5IdSd7XWmtJ\nPlVVZ1fVptbaoVWPnvlZ4ARYJ/NtTQUAcKL6qaBelORIkmur6q+q6t1VdWaS82YlnYeTnNd7vDnJ\nPbPOP9BrAwAAgAX1Mwf15CTfl+RnW2u3VtXb883hvEmS1lqrqracb1xVV2R6CHC2bDEBfhBmzx9L\nzCEDAAAGq58K6oEkB1prt/ae78l0wnpvVW1Kkt7n+3qvH0xywazzz++1HaO1dk1rbbK1Nnnuueee\naPyswOz5Y4k5ZAAAwGAtWUFtrR2uqnuq6rtaa59J8vwk+3ofr05yVe/zTb1TPpjkjVV1fZLtSb5i\n/ml3mT8GAAB0Rb/7oP5skj+oqlOTfD7J7kxXXz9QVa9N8sUkL+sd++FMbzFzd6a3mdm9qhEDAAAw\nkvpKUFtrtyeZnOel589zbEvyhhXGBQAAwJjpdx9UAAAAWFMSVAAAADpBggoAAEAnSFABAADohH5X\n8QUAYEzc+9WHc/+Dj+Rt77zluNd2bNucXdu3DCAqYByooAIAcIz7H3wkDz36+HHt+w4dzU23HxxA\nRMC4UEEFYE3tO3Q0L5+nCrPQsVs3bVjjiIB+nHHqk3LD659zTNtiv8vvv/VLfSevfteBhaigArBm\ndmzbvKxO6NZNG7Jj2+Y1jAhYKzfdfjD7Dh3t61i/68BCVFABWDO7tm8xVw3GyNZNG46rugIshwQV\nYFTtvTaZ2rO8cw5PJRsn1iYeAIAlSFDpizlkMISm9iw/4dw4kUzsXLuYAAAWIUFlScudI2JeCXTI\nxolk982DjgIAoC8SVJZkDhkAALAeJKhdt9w5ZOaPAQAAQ0qC2nXLnUNm/hgAsJg+3vy+8Oufz/5T\nnr5OAQF8kwR1GJhDBgCslj7e/N5/ytPzydOfl2etY1gAiQQVAGD8LPHm99t6K/dfsV7xAPScNOgA\nAAAAIJGgAgAA0BESVAAAADpBggoAAEAnSFABAADoBAkqAAAAnSBBBQAAoBMkqAAAAHSCBBUAAIBO\nkKACAADQCScPOgAAuuP9t34pN91+sK9j9x06mq2bNqxxRADAOJGgAoyoe7/6cO5/8JG87Z23HPfa\njm2bs2v7luPab7r9YN+J59ZNG7Jj2+ZViRUAIJGgAoys+x98JA89+vhx7fsOHU2SeRPUZDrxvOH1\nz1nT2IDhte/Q0bx8nje+jKoAVoMEFWCEnXHqk45LNufrWAL0Y7FRE0ZVAKtBgjpizB8DANbKru1b\nFhx9AbAaJKgdt9AcMvPHAACAUSNB7bj55pCZPwYAAIwiCeoQmDuHzPwxAABgFElQAQDGyGJbUM2w\nTgUwKCcNOgAAANbPQltQzWadCmBQVFABAMbMfFtQAXSBCioAAACdIEEFAACgEwzxBRhGe69NpvYs\nesiFX/989p/y9HUKCABg5fqqoFbV/qqaqqrbq2pvr+3Xq+pgr+32qnrRrON/uarurqrPVNUL1ip4\ngLE1tSc5PLXoIftPeXo+efrz1ikgAICVW04F9XmttfvntP12a+3q2Q1VtTXJK5I8K8nTkvy3qvrO\n1triy8UBsDwbJ5LdNy/48swWElesVzwAACu0FnNQdyS5vrX2SGvtC0nuTnLJGnwfAAAARki/FdSW\n5CNV1ZK8s7V2Ta/9jVX1U0n2JvmF1tqXk2xO8qlZ5x7otTGXOWQAAABP6LeC+tzW2vcluTzJG6rq\nh5K8I8kzkmxLcijJby3nG1fVFVW1t6r2HjlyZDmnjg5zyAAAAJ7QVwW1tXaw9/m+qroxySWttf8x\n83pVvSvJh3pPDya5YNbp5/fa5n7Na5JckySTk5PthKIfBeaQAQAAJOmjglpVZ1bVk2ceJ/nRJHdU\n1aZZh700yR29xx9M8oqq+paquijJxUn+YnXDBgAAYNT0U0E9L8mNVTVz/Ptba39WVf9XVW3L9PzU\n/UlenySttTur6gNJ9iV5LMkbrOALAADAUpZMUFtrn0/yvfO0/+Qi51yZ5MqVhQYAAMA4WYttZgAA\nAGDZJKgAAAB0Qr/7oAIwQvYdOpqX91YJn9u+ddOGAUQErEgfe6vPsMc60GUqqABjZse2zQsmoVs3\nbciObZvXOSJgxfrYW32GPdaBLlNBBRgzu7Zvya7tWwYdBrDalthbfYY91oEuU0EFAACgE1RQh5T5\nYwAAwKiRoA6hxeaHmT8GAKPp1j/6rZz12Rvnfe3ib+zPqZuP27YeYOhIUIeQ+WMAMH7O+uyNueDR\nz+WeU59xTPtDjz6ez556YZ41sXNAkQGsHgkqAMCQuOfUZ+RZv/KJY9pmpvzcMPmcQYQEsKokqABD\n6N6vPpz7H3zkidU452NOOgAwbKziCzCE7n/wkTz06OOLHmNOOgAwbFRQAYbUGac+KTe83pA+AGB0\nqKACAADQCSqoA2QOGQAAwDepoA6QOWQAAADfpII6YOaQAQAATFNBBQAAoBMkqAAAAHSCBBUAAIBO\nMAcVAKCD7v3qwznry3dl/797bpLkgkc/l3tOfcaAowJYWxJUAIAOuunx788/bQ/ljN7ze059Rh68\n+KUDjQlgrUlQAQA66GNnvCgfO+NFVvsHxoo5qAAAAHSCCirAOrr1j34rZ332xgVff/Dil2b7v/qF\ndYwIGAW3fuHv8/J33tLXsfsOHc3WTRvWOCKAE6OCCrCOzvrsjbng0c/N+9oFj35u0eQVYDH7Dh3t\n67itmzZkx7bNaxwNwIlRQQVYZ/ec+ow861c+cVz7nb2VOgFOxNZNG8xXBYaeCioAAACdIEEFAACg\nEySoAAAAdII5qAAdcuHXP59c+y/7Om7/KU9fh4gAANaPBBWgIz55+vOSJM/q49j9pzw9nzz9eX0d\nC4y2mRV5rcwLjAIJKsAauverD+esL9+V/b0Vei949HO559RnzHvsx854UT52xotyw+6lV+F8W2+/\nwytWL1RgSO3aviW7tm8ZdBgAq0KCuky3/tFvLbpP4YMXvzTb/9UvrGNEQJfd9Pj355+2h3JG7/k9\npz4jD1780oHGBADQVRLUZTrrszcuWAG54NHP5Z7P3phEggpMe6Iqam9CAIAlSVBPwD2nPiPP+pVP\nHNd+Z28IHwAAAMtnmxkAAAA6QQV1lfW7RcTMsbaJAAAAmKaCuoo+efrzlpVwzmwTAQAAgArqqlrO\nFhGJbSIAAABmU0EFAACgE1RQ+/Cp//TTefI/3JUkC24xAwCwEvsOHc3Le6OrZp5v3bRhgBEBrL++\nEtSq2p/kq0keT/JYa22yqr41yQ1JLkyyP8nLWmtfrqpK8vYkL0ryUJLXtNY+vfqhD8Y9pz4jD178\n0kGHAQCMkB3bNh/XtnXThnnbAUbZciqoz2ut3T/r+VuSfKy1dlVVvaX3/M1JLk9yce9je5J39D4P\nrUv/93cNOgQAYITt2r4lu7ZvGXQYAAO3kjmoO5K8t/f4vUleMqv9fW3ap5KcXVWbVvB9AAAAGAP9\nJqgtyUeq6raqmll09rzW2qHe48NJzus93pzknlnnHui1HaOqrqiqvVW198iRIycQOgAAAKOk3yG+\nz22tHayqb0/y0ar629kvttZaVbXlfOPW2jVJrkmSycnJZZ0L0FUWOQEAOHF9JaittYO9z/dV1Y1J\nLklyb1Vtaq0d6g3hva93+MEkF8w6/fxeG8BIs8gJAMDKLJmgVtWZSU5qrX219/hHk7wtyQeTvDrJ\nVb3PN/VO+WCSN1bV9ZleHOkrs4YCA4wsi5wAAKxMPxXU85LcOL17TE5O8v7W2p9V1V8m+UBVvTbJ\nF5O8rHf8hzO9xczdmd5mZveqRw0AAMDIWTJBba19Psn3ztP+QJLnz9PekrxhVaIDAABgbCxnH1QA\n1tjcRZYWO87iSwDAqJGgAnTEchZTsvgSADCKJKgAHWGRJQBg3J006AAAAAAgUUEFAAAYWlufNlpr\nUkhQAQAAhtRbf+xZgw5hVRniCwAAQCeooK6yfreImDnWNhEAAADTJKiraLlbPtgmAgAA4JskqKvI\nFhEAAAAnzhxUAAAAOkGCCgAAQCdIUAEAAOgECSoAAACdIEEFAACgEySoAAAAdIIEFQAAgE6QoAIA\nANAJElQAAAA6QYIKAABAJ0hQAQAA6AQJKgAAAJ0gQQUAAKATJKgAAAB0ggQVAACATpCgAgAA0AkS\nVAAAADpBggoAAEAnVGtt0DGkqo4k+eKg41jEtyW5f9BB0FmuDxbj+mAxrg+W4hphMa4PFtO16+M7\nWmvnLnVQJxLUrquqva21yUHHQTe5PliM64PFuD5YimuExbg+WMywXh+G+AIAANAJElQAAAA6QYLa\nn2sGHQCd5vpgMa4PFuP6YCmuERbj+mAxQ3l9mIMKAABAJ6igAgAA0AljnaBW1Xuq6r6qumOB1y+r\nqq9U1e29j1+b9doLq+ozVXV3Vb1l/aJmvazw+thfVVO99r3rFzXrZanro3fMZb1r4M6q+u+z2t0/\nRtwKrw/3jzHQx9+Yfzvr78sdVfV4VX1r7zX3kBG3wuvDPWTE9XF9PKWq/ktV/XXvb8zuWa+9uqo+\n2/t49fpF3b+xHuJbVT+U5MEk72utfc88r1+W5Bdbay+e0/6kJP8zyb9IciDJXyZ5ZWtt35oHzbo5\n0euj99r+JJOttS7tPcUq6uP6ODvJ/5fkha21L1XVt7fW7nP/GA8nen30Xtsf94+Rt9Q1MufYH0vy\n8621H3YPGQ8nen30nu+Pe8hI6+NvzK8keUpr7c1VdW6SzyTZmOSsJHuTTCZpSW5L8uzW2pfXLfg+\njHUFtbX2P5L8/QmcekmSu1trn2+tPZrk+iQ7VjU4Bm4F1wdjoI/rY1eSP2mtfal3/H29dvePMbCC\n64Mxscy/Ma9M8oe9x+4hY2AF1wdjoI/royV5clVVppPSv0/yWJIXJPloa+3ve0npR5O8cK3jXa6x\nTlD79Jxeefy/VtWzem2bk9wz65gDvTbGz3zXRzJ9Y/hIVd1WVVcMKjgG6juTPLWqPt67Dn6q1+7+\nQbLw9ZG4fzBLVZ2R6Q7kH/ea3EN4wjzXR+IeQvK7Sb47yd8lmUryptbaNzIk94+TBx1Ax306yXe0\n1h6sqhcl+dMkFw84Jrpjsevjua21g1X17Uk+WlV/23u3i/FxcpJnJ3l+ktOT3FJVnxpsSHTIvNdH\na+1/xv2DY/1Ykk+21ozoYT7zXR/uIbwgye1JfjjJMzJ9Hfy/gw2pfyqoi2itHW2tPdh7/OEkp1TV\ntyU5mOSCWYee32tjjCxyfaS1drD3+b4kN2Z6SBbj5UCSP2+tfa03D+h/JPneuH8wbaHrw/2DuV6R\nY4dvuocw29zrwz2EJNmd6WkkrbV2d5IvJHlmhuT+IUFdRFVt7I3dTlVdkul/rwcyvSDBxVV1UVWd\nmumbwwcHFymDsND1UVVnVtWTe+1nJvnRJAuu5MnIuinJc6vq5N4QrO1J7or7B9PmvT7cP5itqp6S\n5J9n+nqZ4R5CkvmvD/cQer6U6RE6qarzknxXks8n+fMkP1pVT62qp2b6+vjzgUW5gLEe4ltVf5jk\nsiTfVlUHkrw1ySlJ0lr7vSQ7k/xvVfVYkn9M8oo2vezxY1X1xkz/hz4pyXtaa3cO4EdgDZ3o9dG7\nEdzYy11PTvL+1tqfDeBHYA0tdX201u6qqj9L8jdJvpHk3a21O3rnun+MuBO9Pqrq6XH/GAt9/I1J\nkpcm+Uhr7Wsz57XW9EHGwIleH0n0QcZAH9fHbyS5rqqmklSSN8+s6lxVv5HpN7qS5G1dnD4w1tvM\nAAAA0B2G+AIAANAJElQAAAA6QYIKAABAJ0hQAQAA6AQJKgAAAJ0w1tvMAMBqqKpzknys93RjkseT\nHOk9f6i19v0DCQwAhoxtZgBgFVXVryd5sLV29aBjAYBhY4gvAKyhqnqw9/myqvrvVXVTVX2+qq6q\nqldV1V9U1VRVPaN33LlV9cdV9Ze9jx8Y7E8AAOtHggoA6+d7k/xMku9O8pNJvrO1dkmSdyf52d4x\nb0/y2621f5bkf+29BgBjwRxUAFg/f9laO5QkVfW5JB/ptU8leV7v8Y8k2VpVM+dsqKqzWmsPrmuk\nADAAElQAWD+PzHr8jVnPv5Fv/k0+KcmlrbWH1zMwAOgCQ3wBoFs+km8O901VbRtgLACwriSoANAt\nP5dksqr+pqr2ZXrOKgCMBdvMAAAA0AkqqAAAAHSCBBUAAIBOkKACAADQCRJUAAAAOkGCCgAAQCdI\nUAEAAOgECSoAAACdIEEFAACgE/5/uxOvK2QmX2oAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x7fc7ed18da50>"
},
"metadata": {}
}
]
}
],
"metadata": {
"kernelspec": {
"name": "python2",
"display_name": "Python 2",
"language": "python"
},
"language_info": {
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"name": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12",
"file_extension": ".py",
"codemirror_mode": {
"version": 2,
"name": "ipython"
}
},
"gist": {
"id": "fe01e5ddf639e18b5d85a3b1d2e84b7d",
"data": {
"description": "20180531_UtilEst_RunningAvg",
"public": false
}
},
"toc": {
"threshold": 4,
"number_sections": true,
"toc_cell": false,
"toc_window_display": false,
"toc_section_display": "block",
"sideBar": true,
"navigate_menu": true,
"moveMenuLeft": true,
"colors": {
"hover_highlight": "#DAA520",
"selected_highlight": "#FFD700",
"running_highlight": "#FF0000"
},
"nav_menu": {
"width": "252px",
"height": "367px"
}
},
"_draft": {
"nbviewer_url": "https://gist.github.com/fe01e5ddf639e18b5d85a3b1d2e84b7d"
},
"hide_input": false
},
"nbformat": 4,
"nbformat_minor": 1
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment