view notebook/gmm-list-analysis.ipynb @ 13:cc8ceb270e79

add some gmm ipynbs
author mitian
date Fri, 05 Jun 2015 18:02:05 +0100
parents
children
line wrap: on
line source
{
 "metadata": {
  "name": "",
  "signature": "sha256:71e3c2bb9a7d67a9a397b725f0c1114f05dbe56d1991ef5cb863257aa88a6988"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%bash\n",
      "\n",
      "ls ../cache"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "1000-contrast6-dct-pca-2048_1024-wl20-ss10-ssm.txt\n",
        "1002-contrast6-dct-pca-2048_1024-wl20-ss10-ssm.txt\n",
        "Cache-1000-contrast6-dct-pca-2048_1024-wl20-ss10.txt-f_getGMMs-pickle.txt\n",
        "Cache-1000-contrast6-dct-pca-2048_1024-wl50-ss50.txt-f_getGMMs-pickle.txt\n",
        "Cache-1002-contrast6-dct-pca-2048_1024-wl20-ss10.txt-f_getGMMs-pickle.txt\n",
        "Cache-10hongniang01-contrast6-dct-pcamean--wl20-ss10.txt-f_getGMMs-pickle.txt\n"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import sys\n",
      "sys.path.insert(0,\"../\")\n",
      "sys.path.insert(0, '/Users/mitian/Documents/hg/segmenter/utils/')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import utils.gmmplot as gp"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%bash\n",
      "\n",
      "#rm ../cache/gmm_list.txt"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import cPickle as p\n",
      "with open(\"../cache/Cache-10hongniang01-contrast6-dct-pcamean--wl20-ss10.txt-f_getGMMs-pickle.txt\",\"r\") as f:\n",
      "    gmm_list = p.load(f)\n",
      "print len(gmm_list)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "1235\n"
       ]
      }
     ],
     "prompt_number": 17
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "g0 = gmm_list[0]\n",
      "len(g0.components)\n",
      "#print g0.components[0].covars\n",
      "#dir(g0.gmm)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "1"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "len(gmm_list[49].gmm.means_[0])\n",
      "print gmm_list[49].gmm.means_[0]\n",
      "print gmm_list[49].gmm.covars_[0][:2,:2]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[ 0.85296231  0.53451746  0.21546676  0.59680386  0.56988481  0.53920114\n",
        "  0.7503756   0.52364793  0.34387062  0.29799375  0.26085172  0.30439882\n",
        "  0.30225178  0.42498073  0.57177275  0.48702445  0.58831181  0.69667595\n",
        "  0.57755405  0.52266616]\n",
        "[[ 0.00221093 -0.00087832]\n",
        " [-0.00087832  0.01219112]]\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "from numpy.linalg import eigh\n",
      "from pylab import plt\n",
      "from matplotlib.patches import Ellipse\n",
      "import itertools\n",
      "\n",
      "def plot_gmm(gmm,sl=0):\n",
      "    '''Plot gaussians associated with a GMM.'''\n",
      "    splot = plt.subplot(111, aspect='equal')\n",
      "    X = gmm.sample(500)\n",
      "    Y = gmm.predict(X)\n",
      "    for i, (mean, covar, color) in enumerate(zip(gmm.means_, gmm.covars_, itertools.cycle (['r', 'g', 'b', 'c']))):\n",
      "        mean = mean[sl:sl+2]\n",
      "        covar = 10*covar[sl:sl+2,sl:sl+2]\n",
      "        v, w = eigh(covar)\n",
      "        u = w[0] / np.linalg.norm(w[0])\n",
      "        angle = 180 * np.arctan(u[1]/u[0]) / np.pi\n",
      "        plt.scatter(X[Y==i, 0], X[Y==i, 1], .1, color=color)\n",
      "        ellipse = Ellipse(mean, v[0], v[1], 180 + angle, color=color)\n",
      "        ellipse.set_alpha(0.6)\n",
      "        ellipse.set_clip_box(splot.bbox)        \n",
      "        splot.add_artist(ellipse)\n",
      "    plt.show()\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "figure(figsize=(8,8))\n",
      "plot_gmm(gmm_list[60].gmm)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\ngg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x1041e75d0>"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## 1) Visualising a sequence of fitted GMMs \n",
      "\n",
      "The code below generates a video taking a 2D slice from the data. The data in this case are generated by drawing samples from the fitted models. "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from matplotlib import animation\n",
      "from matplotlib.patches import Ellipse\n",
      "import matplotlib.gridspec as gridspec\n",
      "import itertools\n",
      "\n",
      "def print_progress(counter=\"\", message=\"\"):\n",
      "    sys.stdout.write(\"%(counter)s: %(message)s\" %vars())\n",
      "    sys.stdout.flush()\n",
      "    sys.stdout.write(\"\\r\\r\")\n",
      "\n",
      "fig = plt.figure(figsize=(8, 8), dpi=220)\n",
      "\n",
      "SL = 0\n",
      "    \n",
      "def setup_gmm(gmm,sl=SL):\n",
      "    '''Plot gaussians associated with a GMM.'''\n",
      "    splot = plt.subplot(111, aspect='equal')\n",
      "    X = gmm.sample(500)\n",
      "    Y = gmm.predict(X)\n",
      "    #scatters = [None,None]\n",
      "    scatters = splot.scatter(X[:,0],X[:,1], alpha=0.1)\n",
      "    for i, (mean, covar, color) in enumerate(zip(gmm.means_, gmm.covars_, itertools.cycle (['r', 'g', 'b', 'c']))):\n",
      "        mean = mean[sl:sl+2]\n",
      "        covar = 15*covar[sl:sl+2,sl:sl+2]\n",
      "        v, w = eigh(covar)\n",
      "        u = w[0] / np.linalg.norm(w[0])\n",
      "        angle = 180 * np.arctan(u[1]/u[0]) / np.pi\n",
      "        #scatters[i] = splot.scatter(X[Y==i, 0], X[Y==i, 1], .1, color=color)\n",
      "        ellipse = Ellipse(mean, v[0], v[1], 180 + angle, color=color)\n",
      "        ellipse.set_url(str(i))\n",
      "        ellipse.set_alpha(0.6)\n",
      "        ellipse.set_clip_box(splot.bbox)        \n",
      "        splot.add_artist(ellipse)         \n",
      "    return splot,scatters\n",
      "\n",
      "def update_gmm(gmm,splot,scatters,sl=SL):\n",
      "    '''Update gaussians associated with a GMM.'''\n",
      "    X = gmm.sample(500)\n",
      "    Y = gmm.predict(X)\n",
      "    scatters.set_offsets(X)\n",
      "    for i, (mean, covar, color) in enumerate(zip(gmm.means_, gmm.covars_, itertools.cycle (['r', 'g', 'b', 'c']))):\n",
      "        mean = mean[sl:sl+2]\n",
      "        covar = 15*covar[sl:sl+2,sl:sl+2]\n",
      "        v, w = eigh(covar)\n",
      "        u = w[0] / np.linalg.norm(w[0])\n",
      "        angle = 180 * np.arctan(u[1]/u[0]) / np.pi\n",
      "        #scatters[i].set_offsets(X[Y==i, :])\n",
      "        e = [x for x in splot.artists if x.get_url() == str(i)][0]\n",
      "        splot.artists.remove(e)\n",
      "        ellipse = Ellipse(mean, v[0], v[1], 180 + angle, color=color)\n",
      "        ellipse.set_url(str(i))\n",
      "        ellipse.set_alpha(0.6)\n",
      "        ellipse.set_clip_box(splot.bbox)        \n",
      "        splot.add_artist(ellipse)         \n",
      "    return splot,scatters\n",
      "\n",
      "splot,scatters = setup_gmm(gmm_list[0].gmm)\n",
      "\n",
      "def animate(i) :\n",
      "    print_progress(i)\n",
      "    update_gmm(gmm_list[i].gmm, splot,scatters)\n",
      "    \n",
      "frames = len(gmm_list)\n",
      "\n",
      "a=animation.FuncAnimation(fig, animate, frames=frames, interval=10, blit=True)\n",
      "#a.save('/Users/mitian/Documents/hg/seg/notebooks/gmm_list2.mp4', fps=5, extra_args=['-vcodec', 'libx264'])\n",
      "a.save('../figs/Cache-10hongniang01-contrast6-dct-pcamean--wl20-ss10.mp4', fps=3)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "0: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "0: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "1: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "2: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "3: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "4: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "5: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "6: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "7: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "8: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "9: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "10: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "11: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "12: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "13: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "14: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "15: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "16: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "17: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "18: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "19: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "20: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "21: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "22: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "23: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "24: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "25: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "26: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "27: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "28: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "29: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "30: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "31: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "32: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "33: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "34: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "35: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "36: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "37: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "38: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "39: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "40: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "41: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "42: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "43: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "44: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "45: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "46: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "47: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "48: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "49: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "50: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "51: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "52: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "53: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "54: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "55: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "56: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "57: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "58: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "59: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "60: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "61: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "62: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "63: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "64: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "65: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "66: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "67: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "68: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "69: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "70: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "71: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "72: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "73: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "74: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "75: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "76: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "77: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "78: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "79: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "80: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "81: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "82: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "83: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "84: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "85: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "86: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "87: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "88: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "89: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "90: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "91: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "92: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "93: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "94: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "95: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "96: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "97: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "98: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "99: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "100: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "101: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "102: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "103: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "104: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "105: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "106: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "107: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "108: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "109: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "110: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "111: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "112: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "113: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "114: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "115: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "116: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "117: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "118: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "119: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "120: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "121: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "122: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "123: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "124: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "125: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "126: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "127: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "128: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "129: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "130: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "131: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "132: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "133: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "134: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "135: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "136: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "137: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "138: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "139: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "140: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "141: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "142: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "143: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "144: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "145: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "146: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "147: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "148: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "149: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "150: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "151: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "152: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "153: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "154: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "155: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "156: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "157: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "158: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "159: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "160: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "161: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "162: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "163: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "164: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "165: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "166: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "167: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "168: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "169: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "170: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "171: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "172: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "173: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "174: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "175: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "176: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "177: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "178: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "179: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "180: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "181: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "182: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "183: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "184: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "185: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "186: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "187: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "188: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "189: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "190: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "191: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "192: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "193: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "194: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "195: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "196: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "197: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "198: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "199: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "200: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "201: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "202: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "203: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "204: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "205: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "206: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "207: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "208: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "209: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "210: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "211: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "212: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "213: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "214: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "215: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "216: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "217: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "218: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "219: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "220: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "221: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "222: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "223: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "224: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "225: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "226: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "227: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "228: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "229: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "230: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "231: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "232: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "233: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "234: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "235: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "236: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "237: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "238: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "239: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "240: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "241: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "242: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "243: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "244: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "245: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "246: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "247: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "248: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "249: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "250: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "251: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "252: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "253: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "254: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "255: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "256: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "257: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "258: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "259: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "260: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "261: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "262: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "263: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "264: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "265: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "266: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "267: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "268: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "269: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "270: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "271: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "272: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "273: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "274: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "275: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "276: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "277: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "278: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "279: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "280: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "281: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "282: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "283: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "284: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "285: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "286: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "287: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "288: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "289: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "290: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "291: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "292: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "293: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "294: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "295: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "296: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "297: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "298: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "299: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "300: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "301: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "302: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "303: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "304: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "305: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "306: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "307: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "308: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "309: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "310: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "311: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "312: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "313: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "314: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "315: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "316: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "317: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "318: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "319: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "320: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "321: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "322: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "323: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "324: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "325: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "326: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "327: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "328: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "329: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "330: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "331: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "332: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "333: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "334: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "335: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "336: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "337: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "338: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "339: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "340: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "341: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "342: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "343: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "344: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "345: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "346: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "347: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "348: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "349: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "350: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "351: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "352: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "353: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "354: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "355: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "356: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "357: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "358: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "359: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "360: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "361: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "362: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "363: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "364: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "365: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "366: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "367: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "368: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "369: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "370: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "371: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "372: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "373: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "374: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "375: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "376: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "377: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "378: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "379: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "380: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "381: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "382: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "383: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "384: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "385: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "386: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "387: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "388: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "389: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "390: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "391: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "392: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "393: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "394: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "395: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "396: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "397: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "398: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "399: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "400: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "401: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "402: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "403: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "404: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "405: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "406: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "407: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "408: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "409: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "410: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "411: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "412: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "413: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "414: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "415: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "416: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "417: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "418: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "419: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "420: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "421: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "422: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "423: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "424: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "425: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "426: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "427: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "428: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "429: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "430: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "431: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "432: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "433: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "434: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "435: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "436: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "437: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "438: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "439: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "440: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "441: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "442: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "443: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "444: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "445: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "446: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "447: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "448: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "449: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "450: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "451: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "452: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "453: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "454: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "455: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "456: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "457: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "458: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "459: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "460: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "461: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "462: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "463: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "464: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "465: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "466: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "467: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "468: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "469: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "470: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "471: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "472: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "473: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "474: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "475: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "476: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "477: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "478: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "479: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "480: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "481: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "482: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "483: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "484: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "485: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "486: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "487: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "488: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "489: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "490: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "491: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "492: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "493: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "494: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "495: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "496: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "497: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "498: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "499: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "500: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "501: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "502: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "503: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "504: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "505: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "506: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "507: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "508: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "509: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "510: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "511: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "512: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "513: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "514: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "515: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "516: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "517: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "518: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "519: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "520: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "521: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "522: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "523: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "524: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "525: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "526: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "527: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "528: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "529: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "530: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "531: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "532: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "533: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "534: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "535: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "536: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "537: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "538: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "539: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "540: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "541: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "542: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "543: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "544: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "545: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "546: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "547: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "548: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "549: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "550: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "551: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "552: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "553: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "554: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "555: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "556: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "557: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "558: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "559: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "560: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "561: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "562: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "563: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "564: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "565: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "566: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "567: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "568: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "569: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "570: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "571: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "572: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "573: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "574: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "575: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "576: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "577: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "578: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "579: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "580: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "581: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "582: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "583: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "584: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "585: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "586: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r"
       ]
      },
      {
       "ename": "LinAlgError",
       "evalue": "unrecoverable internal error.",
       "output_type": "pyerr",
       "traceback": [
        "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mLinAlgError\u001b[0m                               Traceback (most recent call last)",
        "\u001b[0;32m<ipython-input-19-fb46ff615b3c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     65\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0manimation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFuncAnimation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0manimate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mframes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minterval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mblit\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     66\u001b[0m \u001b[0;31m#a.save('/Users/mitian/Documents/hg/seg/notebooks/gmm_list2.mp4', fps=5, extra_args=['-vcodec', 'libx264'])\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 67\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'../figs/Cache-10hongniang01-contrast6-dct-pcamean--wl20-ss10.mp4'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
        "\u001b[0;32m/Library/Python/2.7/site-packages/matplotlib/animation.pyc\u001b[0m in \u001b[0;36msave\u001b[0;34m(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs)\u001b[0m\n\u001b[1;32m    764\u001b[0m                 \u001b[0;32mfor\u001b[0m \u001b[0manim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_anim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    765\u001b[0m                     \u001b[0;31m# TODO: Need to see if turning off blit is really necessary\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 766\u001b[0;31m                     \u001b[0manim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_draw_next_frame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mblit\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    767\u001b[0m                 \u001b[0mwriter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrab_frame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0msavefig_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    768\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;32m/Library/Python/2.7/site-packages/matplotlib/animation.pyc\u001b[0m in \u001b[0;36m_draw_next_frame\u001b[0;34m(self, framedata, blit)\u001b[0m\n\u001b[1;32m    801\u001b[0m         \u001b[0;31m# post- draw, as well as the drawing of the frame itself.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    802\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pre_draw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframedata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mblit\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 803\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_draw_frame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframedata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    804\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_post_draw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframedata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mblit\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    805\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;32m/Library/Python/2.7/site-packages/matplotlib/animation.pyc\u001b[0m in \u001b[0;36m_draw_frame\u001b[0;34m(self, framedata)\u001b[0m\n\u001b[1;32m   1104\u001b[0m         \u001b[0;31m# Call the func with framedata and args. If blitting is desired,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1105\u001b[0m         \u001b[0;31m# func needs to return a sequence of any artists that were modified.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1106\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_drawn_artists\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframedata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_args\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
        "\u001b[0;32m<ipython-input-19-fb46ff615b3c>\u001b[0m in \u001b[0;36manimate\u001b[0;34m(i)\u001b[0m\n\u001b[1;32m     59\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0manimate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     60\u001b[0m     \u001b[0mprint_progress\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 61\u001b[0;31m     \u001b[0mupdate_gmm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgmm_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgmm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msplot\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mscatters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     62\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     63\u001b[0m \u001b[0mframes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgmm_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;32m<ipython-input-19-fb46ff615b3c>\u001b[0m in \u001b[0;36mupdate_gmm\u001b[0;34m(gmm, splot, scatters, sl)\u001b[0m\n\u001b[1;32m     36\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mupdate_gmm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgmm\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msplot\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mscatters\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mSL\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     37\u001b[0m     \u001b[0;34m'''Update gaussians associated with a GMM.'''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 38\u001b[0;31m     \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgmm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m500\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     39\u001b[0m     \u001b[0mY\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgmm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     40\u001b[0m     \u001b[0mscatters\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_offsets\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;32m/Library/Python/2.7/site-packages/sklearn/mixture/gmm.pyc\u001b[0m in \u001b[0;36msample\u001b[0;34m(self, n_samples, random_state)\u001b[0m\n\u001b[1;32m    409\u001b[0m                 X[comp_in_X] = sample_gaussian(\n\u001b[1;32m    410\u001b[0m                     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmeans_\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcomp\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcovariance_type\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 411\u001b[0;31m                     num_comp_in_X, random_state=random_state).T\n\u001b[0m\u001b[1;32m    412\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    413\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;32m/Library/Python/2.7/site-packages/sklearn/mixture/gmm.pyc\u001b[0m in \u001b[0;36msample_gaussian\u001b[0;34m(mean, covar, covariance_type, n_samples, random_state)\u001b[0m\n\u001b[1;32m    100\u001b[0m         \u001b[0mrand\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiag\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcovar\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    101\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 102\u001b[0;31m         \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mU\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meigh\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcovar\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    103\u001b[0m         \u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m        \u001b[0;31m# get rid of tiny negatives\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    104\u001b[0m         \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;32m/Library/Python/2.7/site-packages/scipy/linalg/decomp.pyc\u001b[0m in \u001b[0;36meigh\u001b[0;34m(a, b, lower, eigvals_only, overwrite_a, overwrite_b, turbo, eigvals, type, check_finite)\u001b[0m\n\u001b[1;32m    399\u001b[0m                           \" fortran routine.\" % (-info))\n\u001b[1;32m    400\u001b[0m     \u001b[0;32melif\u001b[0m \u001b[0minfo\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mb1\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 401\u001b[0;31m         \u001b[0;32mraise\u001b[0m \u001b[0mLinAlgError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"unrecoverable internal error.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    402\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    403\u001b[0m     \u001b[0;31m# The algorithm failed to converge.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
        "\u001b[0;31mLinAlgError\u001b[0m: unrecoverable internal error."
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAABUCAYAAAB0vcXQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXlwI9l93z8PQKNxNkCQIHjPfe6h3dVKWnllaRPbsaRN\nSXZSjkpll6XI5SOxnZQqjnXYVV7ZrrIlWxVHsZ24JFslJxXfR1mRHEuWtSXFsnYl7e7sau6LQw4v\ngLiPRgONfvnjNWa41HCGM5whOeT7VKHY6H4PfA+P7G//3vv93k9IKdFoNBqNRnN/E9jqBmg0Go1G\no9k4WtA1Go1Go9kBaEHXaDQajWYHoAVdo9FoNJodgBZ0jUaj0Wh2AFrQNRqNRqPZAWxY0IUQbxVC\nnBFCnBdCfOAG139YCHFCCPGyEOIfhRAPr7euRqPRaDSa9SE2EocuhAgCZ4HvBeaAbwDvllKeXlHm\njcApKWVVCPFW4Bkp5RPrqavRaDQajWZ9bNRCfz1wQUo5LaXsAn8MvHNlASnlP0kpq/7b54CJ9dbV\naDQajUazPjYq6OPA7Ir3V/1za/FjwOfvsK5Go9FoNJo1CG2w/rrn64UQ/wx4H/Dk7dbVaDQajUZz\nczYq6HPA5Ir3kyhL+1X4jnCfBN4qpSzfZl0t/BqNRqPZVUgpxe3W2aigfxM4JITYC8wD7wLevbKA\nEGIK+EvgR6SUF26nbp/dnEDmmWee4ZlnntnqZmwZu7n/u6nvhUKZWi1CIBDg3LmrvPBCgc9+9nd4\n8smfJpFoEwgsUSolKRSqXLokuXJlkVbLxXX30W5foddrYZomntcDCnS7HlJOIsQyUsaBLOAhhIeU\nM1hWl8cff4CpqRhDQzaPP/4A6XSSEyfO0OmkqdUiVCqC8XHJ4cOH8bwernuOZHKSqak4Y2PDVCoV\nhCgzNJTGsmKYpnlXv5PdNP43Yjf3X4jb1nJgg4IupXSFEJ9GeasL4EtSytNCiJ/0r/8e8HFgD/A1\nIcQCMCelfL1fNwGc8evmtYe7RrO7KRbLFIseoVAU0zQpFktMT5eZm7tItztKNJpkerpEtZpASgfb\nngYsANrtS0AN5XebBgpIGQRM/7yFlFWE8AiHx1lcbGAYLfbvH+ORRx5gcbFMJHKEcFhiGB3abQfP\nC1GpVGk0ykQiglbLRogWiUSEhYUKlhUhHI5QqVSYmkrfdVHXaG6HDQm6H3r2XuAIfuiZEOKYL+R9\n/j3wUeAHgLKU8uMrrrWAY1LK0kbaodFo7m8sK0Y+v8SVK2Wq1RitVo96vc3sbJtSqUO5nKLdniMY\nDFGp2Nh2/9YlgCZQBuKAA4yiBN0Bkigx7wAeUCMQGAGOUKsts7xco1brcurUVWq1IrOzHTKZMQYH\nJ1lePoHnVVlamsXz4pjmOMvLJYLBGIZxmWh0gKGhDKZpYttQq7XIZrWga7aOjU65Xws9AxBC9EPP\nrlnaUsoCUBBCPL3GZ9zZ3MIu4amnntrqJmwpu7n/u6nvpmmSSoUZGUkhRJNWq4sQ48zMzBAMjtJu\n96jXl/C8Lq6bQgl4GdiLEm0DcFG+tm2UVX4QeMV/P4xa2XMxzYNIKTGMUTyvQ7FY4VvfKlOrLVAs\n1mg260jp0us1yOXCmKbF9LRLIjFANjtKsThNt1viwIE999Qi303jfyN2e//vhI0K+o1Cz95wG/Ul\n8PdCiB7we1LKT26wPTuO3f5HvZv7v9v6bpommUwE1+1x+vQlEokoi4tVpEzR7UZoNttImcIwDgAF\nIIGyHaaADLCEEu48sIC6PSX8a02CQZNQKAcsEwqZQIRarUk+D91uiVbLJpPJ0m7bzM19iUceeT0P\nPDDB3Fwew5CAIBZL4LoDTEyYhEIOtm0D4Hk1LCt9V7+P3Tb+q9nt/b8TNi1sbQ2elFIuCCGywBeF\nEGeklF9dXWilY8RTTz2lB1qjuQ9xHIdarQVwQycy0wxy9uwpXnmlSbFo0mi0cN1h2u0wtt1EyjBC\nJAgEogghkDKMssTDQM9/tVEW+yJK1C1gDIhjmkE8r4gQM5hmhEqlQDweZ2kpSj5fYXBwANeFsbGH\ngRCVSp16vYthDBGJVCiXF8hkYGgIRkeHyWbTK/qj1881d86zzz7Ls88+u+HP2ejWr0+gtnJ9q//+\nQ4AnpfzoDcr+EtBYtYZ+y+tCCLmbvdw1mp2A4zjMzFQIBJQDm+fVyOWiOE4PUGJ++fI8X/3qLDMz\nQapVgxMnXuHixSrN5iDtdgspzwMxYBCwgcsoQR9EWeYRlHXeBBooy9wBBoAs8XgXKecJBi8SCsVJ\npY4SCAwg5TyxWA7THGTv3mHGxqKMjYFh5Nm//ziZzAAzM5cwzQQDAzA2FuHQoZwWcM09Qz2wbk3Y\n2sNCiIsoj5M48D2rGnYU+DTwOtQucR/3z8eA7wd+zW9HCPiJDbZHo9FsMastcYBLl+ZpNCIMDQUw\nTZNq1eHUqQWy2Skcx+Hy5QuUyy3y+TC2HWBmpkC9nqXTuYptV1C3h2UgiLLEA/4rCnSBOspSd/zX\nMGpdfQgl/qdoNl1CoSCJxCEMYy+9nk0sBs3mGLXaLJlMi0YjgOsapNNTJBJxut1FhIBHHpmk3e6S\nTDrs36/FXLM9uZtT7teeJlaFrQWBfSiPle8VQswAx4ER1P7tF1HzZBlevR6v0WjuM1Za4o7jcObM\nOaSEQCBBt2vSaCyTTBosLuaR0sUwqiwu5jl/3qZaLXPixAInTxYxjAHK5TK12jzKTtiHmjrPoazv\nYZQ3+1ngUVSQzRzqNpNDWfILKHEvoQJqbFz3CIFACs8TdLsdGo0CUh4CYsTjgk6niesm8Lw2tZrN\n5GQWz0tRKNQYGQmwf/+YFnPNtuVueLm/vGLK/YPAO6WUv94vIKU8CYysnlL3182/vLouKzzkNRrN\n/UWt1iIQsAgEApRKDoVCAiEEqVSATqdIoQDhMOTzJQwjzvLyMqdOnef8+SbFYoHl5TD5/DBSzmHb\n8yintglU2FmM65Z3DGUHpFDT7BI15V5FCX4LNRUfR00eBoH9BAL76XbLeN5lYjEHGEKIEiMjRxkc\njBGLlTh+PMvwcIho9EHCYZtAoIFhCFKpsBZzzbZms5Oz3K26Go1mG9NoKGE3zSimGSUSyRIM9jBN\nl3Y7z8jICJ1Ol0uXKly5IpmdNZibO8TCQpdut0WjUaXXm0RN5AmUMCdR+1C5qFvHLCpsDdStbBll\no8RQa+ttlNWeRFntETyvTb0eJxg08LwlUqkoIyNThEIJXLfOyEiGffv2kEolKZcdut0EhpHFcXR0\nrWb7s5Ve7trTTaPZYVhWjEqlgm33cByJYbQolerMzV2lVrtMqxUhnc6Qzze4evUKpVKTRsOiUlli\naSmFbSeQ8iJqBS6GcnALoKxwD2Wpn0XFoKdQt5FBlEVeRlnv/Z3hyighd1EPBT3UOnsVx1kik5kg\nGOz6oWg9oEowaGLbeSwriedVMIwklUqFVqtCrRbh6lWo122SySjZ7IC22DXbik1JzrLRujpsTaO5\nPzBNk6mpNIHAIouL01QqIer1IHNzJSqVBq1WB9uuEQgkKBQqXLjwEt3uYYrFZRxnAeXEFkVNm59G\nTdoZqKl3ByXULurWlUQJPyihP4CaWi8BNQapU+EAPWzUenoKFaveJRyepF6XJJNtYrEi8XiEiYk0\nY2OQybQYHIyTSAxz9WqedjuI50mef36GkZG9mGaG+fka1eoSBw9qBznNxtkuYWshYAblRnrNy331\nnuxCiE8AP4z6j3xaSvmiX9cGLvjnDwGP36CuDlvTaLYpN4ot7zvG5fM2589XWVoq0W4HmJmpUizW\nKZeDNBo1FhYuUqnMY9sO6taxF3Ur6KCs7BZKtOuozWPiqCn3Fiq+fBAl/P319AiQ5jgXeC/Pcpgi\nH+bNnGICJfI9wCQQmCKdzhIMTjM2lmX//hGmpkKMjJg88MBxcjmDeNxlYaHA/HyCSCRLpbJIq1Vn\nYmKQgYEsjmOTSrU5fDhFNjuwWV+3ZpewVWFrt/RyF0L8MPDjqP9SA/i6EGJQStkQQhT9NhjAr+rk\nLBrN9malgJtmkKUl+1pseT9BSa3WwnVNXNchEDCoVODs2TmWlkJMT3+LViuF65o0mzZS7kdZzQGU\n4Pbfx1Ai7KH2Zb+EEvEIal29w/XbVxCYJMccP86f8mbOk0byKR7hFAe4PuX+AJDF875Or1djaGg/\nQ0ODNBqLgGRi4k0I0cayBjAMA9edQcoIwaBNLpdiehquXFnGMMZxnB62XWDPnsg9/841mvVyz73c\nge8G3iul/BO/zBnUo3YDZaE/IaUsbrAdGo3mHrN6c5hCYYZUKkcqFcVxHEolD9edx3GaPP98gXrd\nY3Z2gZMnK8zO9igWQ5RKGTwviLLE96G80lOote4mUPGvCZR1vsT17VsLqFtHzz/uAWlCCN7Bc7yH\nfyKCi8Tgd3iYz/AW1C2mDDzof04FMAmFXDKZHPG4STQ6RL1+hlqtSjI5wfx8hUzGpNMRBAJhPC9G\nvV7GceYIh2M4jo2UNWKx8OZ88RrNOtmMvdzX8mZfQu/lrtFsK262PevKkLRGo0Wl0sN1q0QiUS5f\nXqZQaGHbVzl79grN5hieN8L8fIF8vo5tG7TbDTyv639aC+WglkfdhuooS3oatYYeRd0mDqNW5Xqo\n8LUuSvBTwDxHOcX7ucQkLRxidOnxX/h+vsQUSsiDqKQsDwIhhKiQSoUYHhak0wIpHQzDJB5/lFLJ\nJZ02qdUa1Ouz7N17kGLRod1uEwwKDhwwGBgYIhiskkhEiUbTmKZeDtRsHzbLy32ttYA3SSnnb7WX\nu0ajuffUajVOnVogEEiSSMRelePbcRyWlyssLHSoVDqY5iCOE2Ru7gzz8/PMzHi025JAIMzcXJZW\nq0Mm4yJEDNu2KZfzOM4E15OoLPs/MyjRbaNuR/192cMo95xh1PR7ALWOrib2oszyHk7zDhZoIOgi\naQK/zFOc4yH/815BTdebqG1i92EYIcJhmwMHHsQwkti2S7M5zbFjTzAyEsM02wgRxLJCJBIWlqUe\nXmxbMji4D8+LvGr72rudkEWj2Qib4eW+usyEfw4p5bz/syCE+CvUFL5OzqLRbDKO4/DSSzMUiwlM\nM0CjUWNkxKJQKAMwN1clEIjz0ktXqNdNBgYkjcYi6XSSF144Sb0eZ//+B2g285TLHer1OKVSm0Kh\nQq3WpdEQKOfWIGpdPIaabl9CWc8SNZ2eQFnk+1HW+3nU1PtDqOnzAEep8PN8gWE8FkkzSomXSPNR\nHqXCKMoTvujXK/j1hkgkZohGSwwN7SGX20Ov10BKyfBwik4nj2keIRLxiEQ6TE2N4Hk1wCIWixCJ\ndJiYGATQCVk0d53t5OV+FrV/+zzwPPDulc5tQoi3Az8jpXy7n8zlt6SUT/h7uQellHUhRBz4AvAR\nKeUXVv0O7eWu0dxjrl5d5OtfX0bKccLhCO12keHhJrEYCJGk2YxQLueZnbWx7STdbp5azaPTqbKw\n0GJxscXAQJpEos3MTIFOJ02x2KFeXyIYXGBhoY2aPo+gLOYiSrgFSryP+i15ASXuMZS94QEvAXsI\nE+LdvMi7eJkaETxipOnxJ7yB/8URekiUrWD4nxtDPUDUCIVs9u8/wvDwIJ4XYmIiRC6XxXUb5HJJ\nYjGHiYkBJieHGBgIcvBgDuCm2eE0mnvFlni5SyldIcSnUaIugC9JKU+v9HKXUn5eCPFrQogOai7t\nfX71EdQ0+7hf9x9Wi7lGo9kc1GYpQ9i2C4DrBlhamuU1r3mcZrONbXfI5x2CwQjpdJRKJYxtw8LC\nRVz3IIbhsbBwEse5hBBpQqEwnU6JanUex3FQQt5A/auHUbeeNNf3XA+jPNcXub4ZTAC1Zp5mD4t8\ngFPsocY8EYZp0iDIB/lXvMyDXN9Uph+rngW6BIODRCImwWCNXq+GZR3FcS4Qi5kMDh4inY4wORln\nYCBMJiMZG0u/SryzWS3imvuHDQm6ECIIvBc4gno0/oYQ4piflKVf5u3AnJTyNUKINwD/Ffgj4Arq\nUfzoqro6dE2j2WSSySihUJt0Ok2rVcE0l9mzZxiAWs2lXndxnBCl0iL79kmGhoJMT58lGk1g23HC\n4RaWNcni4hWq1SDJZJZm08BxJGrK2+S6B3sQJdZBlGf7JCpE7TJK4DvAHqCK4Bxvp85P8SIOSfIM\nM84i/8g+/huvoQoon9swarXPQj0ESCCKEC3C4SS9Xg/XNeh0JPF4kqNHI+RykvHxAQ4e3IvneVhW\nW8eUa+5r7kbY2gUp5TSAEOKP+c4EK+8APgMgpXxOCJEWQoygYlZuVVej0WwC2ewA1eoSzWaLWAwM\nI0okAidOfAshxonHY1hWBSkbSNljZCTLI4+YXLzoMju7iGGE8DzwvACQJp93aDSKKIvcRU2dgxLu\n/pR6GyX0XZSoR/1rY0CeNDbv5wSvp8ICUVIEyWDzW/wgf0cSJeQW6oFh3v9Z5/qGM20MYz/hcBXD\niDA+/hDBIJjmENGoQyLRJhrN0G7bhEKOdnDT3PdsZdja2DrqajSaTcA0TQ4ezFGrtajValy5UmNp\nKUClYrG8fIVo1GN4eIxGo0OvZ7NnT5RHHjnM6GiRr3xlnsuXe8zMLOI4w3Q6DapVF9ftoibfwiiH\nN1Di3kUJbhi1QWQVZZUn6Hu4P8o0H+BLRLFZIM4INc4S5zd5mjlyqNtFkuuObz2u5z43CYdjJJNz\nZDIlkskm2eyTRCJjJJMtYrEWy8sLvPGNjyNliGp1iePHR/Uauea+Z6vD1taF9nLXaO4OjuNQKJRv\nmGDENE0sCy5ezFMoWBQKIVy3Q7lc5NKlJvPzi8Tj+4jFoFLpMjo6jmUZ5PMLfPvbr+C6JoHAa+l2\nC/R6F1BT7AMosS6i1rn3oKzyGMoi70+TBwGXAD3ezV/zI3yTIiE6xMnS4w+Y4q84Qg9Q6+wB/zWP\nCn1romLbTYSok053OHjwAJGISzY7TqtVodu9Qjo9QCrlcvjw64hELAYH09i2jeO0N2sINJrv4G55\nuW9V2NpVlAfLbSdn0Wg0d4bjOFy4sMTiokcgkGJ+vkGlssShQ9cTjKjNY5L0ei0cR7Cw0GR5uYNt\nR4hGe+zZk8C221y8uITr1qnVqly5kiEWewOGMU+pNI3npZByEBVr3kFZ5AnUZjDDqGl3/PNl+s5y\nSSx+jn/gdVwkT4IsDjOM8DGe4BINlDUfRtkHLf/V9s95qDC3cWIxg2RyicceyxCLZeh0EszPXyEc\nDjM6OkgsBqlUanO+dI1mHaw2VD/ykY/c0efcsaALITLArwJvFkJ8BfjXwLuAd68qOgd8SgjxK8Df\nARUp5ZIQ4qeB7xVCnET9ZyeBf3mn7dFoNDenVmvRbIaIRgeIRKK021Fsu0Kt1nqVN3ciEaPXu8qp\nUwUcZ4Jms0uttsDAwH7OnXuJViuAZYU5f/4lOp0MoVCaZtOmWGzTbnv0ekson1eL6/nMayiLPIay\n2i+jbg1xoMM+8vwSJ8lg42CSQfA/+S7+grfRYRa1Nu6gxH/M//wWKsNaP9Z8H5ZlMjwcY//+vYDB\nsWNvoVyuk83GicWSZDIJAoE4S0unmZp6DNu29QYxmh3DRiz0D6Jixz8O/CFwDvjYyrA14FPAe4C/\nAJ4EfgyVdQ3UotcfAG9BzcF9Snu4azRbQ3/LV8dxaLfr9HpNgsEa3e4FLCuH64aZnj5JIhEjlztK\nr9dhcTHE8nIQxynjeWFsW2LbZcLhOGoKve8xLlGiXkeJ/CxKzJV1/gbqfIjThAgQRHKKGL/N67jK\nIyjhx69XRD0QvOzXHfavRQCXYLDKyMhrmZrKYVku9To4TptMxiQUehgoUK0WicUGmJqaot2uMDgo\ndV5zzY5hI4L+DuAtvrX9EPCslPLXQMWfAwgh3ojyZH+P//6DqN0l+pyVUv7EBtqg0WjWiWXFiMfr\nLC4u4TgWntfAssA049eSrtTrHU6fnse2XcbGsgjRIBCIkkplKZXKBIMhBgcNut0chmFSLH4DxzlA\nIpElFDqLYXSJRpPYdp5u10Wtdx9CxZyfRk3DN1G3gR7/nEv8Il9H0CVPkt/lQb7CcSRXgRMoCz+G\ncnhrox4K2igr/SBq73cTSBCJXCGdjjI6OkQ0Os/k5Ai93gKjo8e5enWJxcUrjI8/RCQSJBTySCYt\nTFNqMdfsGDYi6Dkp5ZJ/vITaDWI1t/KC/1khxI8C3wT+k5SysoH2aDSam9D3ZE+lytTr1WtOcf10\np61WjTNnZnDdvQwN9VhevkwslqTbbWNZcODAwxSLDWy7RLUKxeIikUgcKdtUqycwjDixmMR153Hd\n/n7tU/5v73u1X0SJ8V4eZYZf5P/hEORPeB1/zmM0sFBr7TXUSpwSaxWKVqa/jauy+PMosXcxzSoH\nDx4mm80zMhLh4MEJ2u0mBw5kGRhwabdrDAyMYZoRMpk0nufRaJTJZqObNwAazT3mpoIuhPgi6hF5\nNb+w8o2UUgohbuTxfjMv+P8O/LJ//Cuoqfsfu1l7NBrNxjBNk4mJV/9LO06Z+fkO7XaIVmuQVqvH\n8LDFa197jOee+xq9XpKDB/cSCtkEgxXm58vMzV2i0bBxnDDF4kk6nSiBQBKo02icR8okSpBbKMs8\nghLqZdRtp0KbEJ/g9XyZGFWmUG40oFbvOqg1d5WrXIW2FfzPHELZDzZwFdOMcOzYJI89lmNkRJLJ\nCMLhEIODKaJRj9FRwejofur1CMViF8/zcBybQKCOZQ3e0+9bo9lMbiroUsrvW+uaEGJJCDEipVwU\nQoyiHpdXs6YXvJTyWnkhxKeAz671u3TYmkZzr1Ebv8RiUZrNRRzHIBoN8dBDQwghMc0y8biJlC3O\nnXPwvDDNZpdms4nrRun1uoRCCTqdBJ43gEqmEkKtd4e47tEuUCLtcZoQpxlECXfT/yn84yxqS9h+\ntrQZ/3odZb03gSbhcIaBgTSp1CipVBrbrgAWAwMZkknB0JCaVresGLZdYXDQpNGoEAzWOHZMx55r\ntgdbnpxFCPEJ4G1ct8I/J6V8/6oyIVSMioOalnfxk7cIIY4Bn0AFpnrAK1LKH7rB79HJWTSae0ih\nUKZQENh2m4WFKlJGgArtdovDhw8QDocpFK4CkrNn5/jSlxwuXVqiVttHo7FIpzOP604QDgdYWnoF\nZY1nUUJcRT3rl1HinAReRMWQj/rnXNS0uuG3yEBZ6RI1TZ/0P6vG9dW9GIlEl2QygWl6HDw4xfh4\nkNHRUfbsmSCXsxgYMInFWuzbp5YWbpbrXaPZTmxJcpY1GjIGfFJK+bSfvOWXgZ9BecY8s8KT/c9Q\nC2N5vx0Ld7stGo3m1liWyn1umimi0Qi12hLRqEk4vIdUSoVzNRo2Uko8b55mM0Cnk8EwhjAMSat1\nik6nR7lc5/qU+FXgYVRY2jJKhDOoNe9jKNHuoZzj5lAWd4zraU/TqNuCQG0eE/U/ZwyIEwhUiURi\nmKbNxMQEltVleDjL6OgI0WiIbtegXC4RiXSvTaubpqmTrWh2NBsR9H8BvMn3ch8BngXe7+c4f7pf\nSEr5m0KIPwc+2/eCX/G7H1lVX6PRbDKmaTI1lb5mvR44sNffAva6+DlOh0ajSbfr4rrTxGJjlEov\nEAh4uG6NZrMGPIDaHe5llChPo5zh4ihhdlCibvnnW1wPS+vHlY+ixD2I8mYfBvaiHhRCKOs/Rjzu\nEItZDAxEGB8fYmRkhHhcYJpNxsayNBo1IpFljh8/qi1xza7hXnu538v6Go3mLrHaerUsqFQq2DZ0\nOg7VapF2O8DioqDV6uI4ywjRodOZxjAEhjFEt9uPN4+gxPkS163xS6ipdem/+hnS+qlVTfrr4uqh\noOvX64v6NCqufRzDWCCROEgwWCISaROPe2SzPWKxIo899jjQxbIcjh07imVZ9/qr02i2Dffay31d\nbLS+RqO5u6y02peXK0xMjHPmzBKeZ5LJTOF5ZQKBLMGg2k/dtsN0u1WUCPczoI35x/MoETdQDnFh\nlMf7AErQu37ZCErAe34rDL+eyuCm3HGuEAw2iccfoteDbneJeDwKzPOOdzyOZakkMJaVAZR/gHqv\n18w1O5977eV+M9ZdX3u5azSbT99qdxyHl14qcPlynUYjQDw+TqNRotNp43mSZrOHbUuUMEdRk239\nBCq2f24/ysru7+leR1nzArVdRduvM4IS+jm/Pv75KOAgRItMZi+dziyTkykmJl6DafZ4/PHjWFbm\nWj5zx3GubZYDarZhaiqtRV2zLdkOXu4fA4pSyo/6O8ClpZQfXKPsXtQa+kO3W197uWs0W0c/ocsX\nv/htnn/eYW6ugOeZVKsOxWIF103Q7YYol8+ghFzSz5ymBHwCZYWHUU5tD6BEvJ8f/ZJ/XaJ8ZD2U\n6AdQ0+8l/7PCgMHgYIJUKsngYJbx8Szj4yNMTi7z5JP7OHIkfU3QC4UytVqEaFRtHGPbNpbVvnZd\no9nO3KmXe+DWRdbkfwA/L4ToAD+H2igGIcSYEOJzKxp2EbU91ANCiFkhxL/1L0ngI0KINvBh4Bsb\naItGo7nLOI7DpUvz5PM2CwsF8vkmUk6xvFym03EIBEq4bhOIEIn0Q8xAifBV/+cySrCXUdPveZR1\nnvGvS5T1HfGPCygBT6GE/QD9MLWhoePs2XOUdNokGq0TDBYQYobhYYtQqINlxTbni9FotikbEfSf\nAj4qpQwDvwH8OwAp5byU8ukV5d4LPA6clFJOSik/7Z9vAR+WUkaklJaU8i820BaNRnMX6U9ZNxoR\nzp9vsrwcJZXKYRgJgsFhgsEhQqFhOp0yjUaednscZW0HUOvhAI+hRLnmny/5ZWyUsPcd3qZQot2P\nXA2j4tdrwHmCwavkciZTU12SyTCJRJxkMsjYWJrx8QiDgw7Hj796kxjLiuF5NWzbXpFRTQu+Zmez\n4eQs/vFnUGFn3zFlLqX8qj/lfiNue0pBo9HcHW620YrKi24xNBTAdS9gGMMI0aDXK2OaSUqlV7Bt\ngZSDdLtXUY5sFZQj2xAqvtxFWd57UFb6VdQtp4QKbBlGTbGX/fp9h7oq6nnfIpkcJ5msMDYm2Lu3\nBRSIRMJISphiAAAJXElEQVS89rVPYJpxAoE5RkeTOE4Px3Gu9WF1KJ5l6fVzzc5nIxb63Qg7+1kh\nxAkhxO8LIXRCYo1mk+hb4LVahFotwsxMBcdxvqOcSugyiJSzhEINkskOnjeP47RoNm06nTZKlGuo\nafSjqLXwICo0zfaPJSqePIiaVrdQDwDnUOJdR1nmOZRVvx91e+phWQ+TSAxgWSaJhMPDDx8jlcog\nZZNo1ETKoRv2QTn1Dej0qJpdw1aGra07OYv2ctdo7i59C/y605g6149FN80g8/MXKBTazM9XSKUC\n2HaDmZkCzaaDbY/T7dbodqdRt5EJlCDb/vt5VIKVAMprfQjlBQ9KrHMopzcJnERZ58Moi34YJfIG\noVCITMbkwQcnGBiI0ekEcBzVVilbhMNBstlBTNP8jj5oNPcL28HL/Qzw1Iqwsy9LKY+uUXYvq7zc\n13tde7lrNHefm3mB9z3bL16scepUmUrFpdnM8+KLl1hczFGt1ul0sjSb36bXq6Ke+XMoIe9Pny9z\nfcvWPShBl6jMa/tQAt6gb4UrEX/Zb90UyuJPkM1GOHLE4KmnpojFhrHtJrmcQTKptn/dt2+Kffv2\n3rAPet92zf3KVuzl/gXgqyss88+tLiCEmAT+EBVoOiWE+A9Syk/4174jOcsG2qLRaG6D/v7ttq3e\nK6ex9DXP9nPnCkxPdyiVuhQKDsvLUUolQam0hEqaWKXX6/rH46jp8xpKtJdR1nfYf0n/esh/X0Bt\nDRvgelKWQdSDwXMoK93BNBeJxcLE45PMzuYJh21SqRzt9gDRaI89e+L+zIH9HX3QMeia3chG1tBv\nyKqwtS7KlTWBcoD7uBDiQ/61PwMeRM3R9dDJWW7I3ZiGuZ/Zzf2/l303TZNcLkqns0ins0gupyz1\nmZkKi4suzz2X5/nnK1y82OFb3zrJ2bNXqFSCOE6PdvsCtdrXUMIbRlnlFmoDmPOof+eHUPuyd1BJ\nVya5vpbe8s/3Q9oywBKhUJtEwiMeb5JKjROP5zCMKQIBF9MMk04PMTaWJR5X1v2+fUMcOpTDstpY\nVvuaaK9cTohGowQC1jVr/X5iN//tg+7/nbARQe8nZzkMvBmVSvVVYWtSykUp5duklGNSShNlxT/v\n1+8nZ3kN8D3+52lWsdv/qHdz/+9l3x3HYWnJJhweIRweYWnJplAoEwhYtFodmk0Tz4uzsLBMvR6l\nXq/Rbgs8z8O226h18b63ehs1vZ5HJWI57F8f9d+XUAIO6pbT31HOBL4NvIIQFxkcnGHv3nFyuQmG\nhg4RCs2TTh8Cxsnlxjl27ABDQ2mSSY/Dh0dJJq0d7fi2m//2Qff/Tti05Cz+OvmjqDm1266v0Wju\nHjdyiqvXFwmHU3S7HpnMKNXqMqlUklYrgetWcRyBlOMoi7yLWgPvoabQiygv9ihqBW0eFbY24Jft\n5zKXqN3iqijLfRBYwjCKBAIdLOsI4XAW1+3QbreJxxOEQk0Mo45h2AgRwDQ7pNORNePK11pO0Gh2\nOpvi5S6ESAB/DvxHKWVj9XWdnEWj2Xw6HYdWS4V5tdt1Go0C9fo8lUqLhYUSzaYgkcgRj5exbQPH\nCSCERIgYyk81h7LO51BCHkKFnwWAGOFwmW63SCgE4NLrOUADz5tFrcK5wCSmOUAo1KLZLJPPS4LB\nMt1uv+y3SSYlhw/vZWLCoFa7ypEjOcbHc2ta5DoGXbNbuede7kIIA/g/wN9KKX/rDuproddoNBrN\nrmKzvdz/BngP8FH/51+vLiCEEMDvA6dWivl668OddUqj0Wg0mt3GRiz0DPCnqKDRaeDfSCkrQogx\n4JNSyqeFEG8CvoIKMO3/og9JKf/vWvU30hmNRqPRaHYrdyzoGo1Go9Fotg93PQ59owghfkMIcdrf\n4/0vhRCpNcq9VQhxRghxXgjxgc1u571CCPFDQoiTQoieEOKxm5SbFkK8LIR4UQjx/Frl7iduo+87\ndewzQogvCiHOCSG+sFZ+g5029usZTyHEJ/zrJ4QQj252G+8lt+q/EOIpIUTVH+8XhRC/uBXtvBcI\nIf5ACLEkhFhzY7GdOva36vsdjbuUclu9gO8DAv7xrwO/foMyQeACKk7GAF4Cjm112+9S/4+iAnm/\nDDx2k3KXgcxWt3ez+77Dx/5jwM/7xx+40d/+Thv79Ywn8Hbg8/7xG4Cvb3W7N7n/TwF/s9VtvUf9\n/25UOPMra1zfyWN/q77f9rhvOwtdSvlFKaXnv30OlfVhNa8HLkgpp6WUXeCPgXduVhvvJVLKM1LK\nc+ssvqMcBtfZ9x079qiUxJ/xjz8D/MBNyu6UsV/PeF77XqSUzwFpIcRO2bdivX/PO2W8X4WU8quo\njQ3WYseO/Tr6Drc57ttO0FfxPuDzNzg/jsrN2Oeqf243IYG/F0J8Uwjx41vdmE1kJ4/9ejdb2klj\nv57xvFGZGz3o34+sp/8S+C5/yvnzQojjm9a6rWcnj/2tuO1x30jY2h1zkw1rPiyl/Kxf5heAjpTy\nf9+g3H3tybee/q+DJ6WUC0KILPBFIcQZ/4lvW3MX+r5Tx/52Nmu6L8d+DdY7nqstlfv672AF6+nH\nC8CklLIlhHgbKsT38L1t1rZip479rbjtcd8SQZdSft/Nrgsh3otaO/meNYrMobI99JlEPbndF9yq\n/+v8jAX/Z0EI8Veoqbttf1O/C33fsWPvO8iMyOubLeXX+Iz7cuzXYD3jubrMhH9uJ3DL/ksp6yuO\n/1YI8btCiIyUsrRJbdxKdvLY35Q7GfdtN+UuhHgr8J+Bd0op22sU+yZwSAixVwgRBt6F2qhmp3HD\n9RMhREwIkfSP46jENjst/exaa0c7eez7my3B2ps17bSxX894/g3wowBCiCeAyoqlifudW/ZfCJHz\nN+lCCPF6VLjxbhBz2Nljf1PuaNy32tPvBp5954ErwIv+63f982PA51aUextwFuUh+qGtbvdd7P8P\notaMbFQ+yr9d3X9gP8ob9iVUuqod0f/19H2Hj30G+HvgHPAFIL0bxv5G4wn8JPCTK8r8tn/9BDeJ\n/rgfX7fqP/DT/li/BHwNeGKr23wX+/5HqEw+Hf9//327Zexv1fc7GXe9sYxGo9FoNDuAbTflrtFo\nNBqN5vbRgq7RaDQazQ5AC7pGo9FoNDsALegajUaj0ewAtKBrNBqNRrMD0IKu0Wg0Gs0OQAu6RqPR\naDQ7AC3oGo1Go9HsAP4/cZ+aO4k+/GEAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x109c9dd90>"
       ]
      }
     ],
     "prompt_number": 19
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%bash\n",
      "\n",
      "ls -lah | grep mp4 "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "-rw-r--r--@   1 mitian  staff   6.7M 26 Sep 19:27 Innuendo-wl80-ss20-f_getGMMs-SL0.mp4\n",
        "-rw-r--r--@   1 mitian  staff   6.7M 26 Sep 19:22 Innuendo-wl80-ss20-f_getGMMs-SL1.mp4\n",
        "-rw-r--r--@   1 mitian  staff   2.1M 25 Sep 20:37 gmm_list.mp4\n",
        "-rw-r--r--@   1 mitian  staff   1.5M 16 Sep 17:59 kl_divergence-5.mp4\n"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### 2) Visualising a sequence of fitted GMMs using projection \n",
      "\n",
      "Try to visualise a projection of higher dimensional data"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from matplotlib import animation\n",
      "from matplotlib.patches import Ellipse\n",
      "import matplotlib.gridspec as gridspec\n",
      "import itertools\n",
      "from sklearn.decomposition import PCA\n",
      "\n",
      "\n",
      "def print_progress(counter=\"\", message=\"\"):\n",
      "    sys.stdout.write(\"%(counter)s: %(message)s\" %vars())\n",
      "    sys.stdout.flush()\n",
      "    sys.stdout.write(\"\\r\\r\")\n",
      "\n",
      "fig = plt.figure(figsize=(8, 8), dpi=220)\n",
      "\n",
      "SL = 0\n",
      "\n",
      "def setup_gmm(gmm,sl=SL):\n",
      "    '''Plot gaussians associated with a GMM.'''\n",
      "    splot = plt.subplot(111, aspect='equal')\n",
      "    X = gmm.sample(500)\n",
      "    Y = gmm.predict(X)\n",
      "    pca = PCA(n_components=2)\n",
      "    pca.fit(X)\n",
      "    Z = pca.transform(X)\n",
      "    #scatters = [None,None]\n",
      "    #scatters = splot.scatter(X[:,0],X[:,1], alpha=0.1)\n",
      "    scatters = splot.scatter(Z[:,0],Z[:,1], alpha=0.1)\n",
      "    for i, (mean, covar, color) in enumerate(zip(gmm.means_, gmm.covars_, itertools.cycle (['r', 'g', 'b', 'c']))):\n",
      "        mean = mean[sl:sl+2]\n",
      "        covar = 15*covar[sl:sl+2,sl:sl+2]\n",
      "        v, w = eigh(covar)\n",
      "        u = w[0] / np.linalg.norm(w[0])\n",
      "        angle = 180 * np.arctan(u[1]/u[0]) / np.pi\n",
      "        #scatters[i] = splot.scatter(X[Y==i, 0], X[Y==i, 1], .1, color=color)\n",
      "        ellipse = Ellipse(mean, v[0], v[1], 180 + angle, color=color)\n",
      "        ellipse.set_url(str(i))\n",
      "        ellipse.set_alpha(0.6)\n",
      "        ellipse.set_clip_box(splot.bbox)        \n",
      "        splot.add_artist(ellipse)         \n",
      "    return splot,scatters\n",
      "\n",
      "def update_gmm(gmm,splot,scatters,sl=SL):\n",
      "    '''Update gaussians associated with a GMM.'''\n",
      "    X = gmm.sample(500)\n",
      "    Y = gmm.predict(X)\n",
      "    pca = PCA(n_components=2)\n",
      "    pca.fit(X)\n",
      "    Z = pca.transform(X)\n",
      "    scatters.set_offsets(Z)\n",
      "    for i, (mean, covar, color) in enumerate(zip(gmm.means_, gmm.covars_, itertools.cycle (['r', 'g', 'b', 'c']))):\n",
      "        mean = mean[sl:sl+2]\n",
      "        covar = 15*covar[sl:sl+2,sl:sl+2]\n",
      "        v, w = eigh(covar)\n",
      "        u = w[0] / np.linalg.norm(w[0])\n",
      "        angle = 180 * np.arctan(u[1]/u[0]) / np.pi\n",
      "        #scatters[i].set_offsets(X[Y==i, :])\n",
      "        e = [x for x in splot.artists if x.get_url() == str(i)][0]\n",
      "        splot.artists.remove(e)\n",
      "        ellipse = Ellipse(mean, v[0], v[1], 180 + angle, color=color)\n",
      "        ellipse.set_url(str(i))\n",
      "        ellipse.set_alpha(0.6)\n",
      "        ellipse.set_clip_box(splot.bbox)        \n",
      "        splot.add_artist(ellipse)         \n",
      "    return splot,scatters\n",
      "\n",
      "splot,scatters = setup_gmm(gmm_list[0].gmm)\n",
      "\n",
      "def animate(i) :\n",
      "    print_progress(i)\n",
      "    update_gmm(gmm_list[i].gmm, splot,scatters)\n",
      "    \n",
      "frames = len(gmm_list)\n",
      "\n",
      "a=animation.FuncAnimation(fig, animate, frames=frames, interval=10, blit=True)\n",
      "#a.save('/Users/mitian/Documents/hg/seg/notebooks/gmm_list2.mp4', fps=5, extra_args=['-vcodec', 'libx264'])\n",
      "a.save('/Users/mitian/Documents/hg/seg/notebooks/10hongniang01-mfccs-wl40-ss10-f_getGMMs-pickle.mp4', fps=3)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "0: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "0: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "1: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "2: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "3: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "4: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "5: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "6: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "7: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "8: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "9: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "10: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "11: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "12: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "13: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "14: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "15: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "16: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "17: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "18: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "19: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "20: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "21: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "22: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "23: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "24: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "25: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "26: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "27: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "28: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "29: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "30: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "31: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "32: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "33: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "34: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "35: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "36: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "37: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "38: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "39: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "40: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "41: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "42: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "43: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "44: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "45: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "46: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "47: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "48: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "49: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "50: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "51: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "52: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "53: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "54: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "55: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "56: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "57: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "58: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "59: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "60: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "61: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "62: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "63: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "64: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "65: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "66: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "67: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "68: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "69: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "70: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "71: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "72: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r",
        "73: "
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\r",
        "\r"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10fb45a90>"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}