{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# GitHub API usage example" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "%load_ext restmagic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some calls require personal API token: https://blog.github.com/2013-05-16-personal-api-tokens/" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "token = ''" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requests defaults are set.\n" ] } ], "source": [ "%%rest_root https://api.github.com\n", "Accept: application/vnd.github.v3+json\n", "Authorization: Token $token" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get top 10 forked projects from the GitHub, for the \"ipython\" query" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
forks_countwatchers
full_name
wesm/pydata-book60526585
donnemartin/data-science-ipython-notebooks404713738
ipython/ipython364313004
jrjohansson/scientific-python-lectures13192256
jdwittenauer/ipython-notebooks10861935
jupyterhub/jupyterhub8273631
PipelineAI/pipeline7752950
powerline/powerline7419322
ogrisel/parallel_ml_tutorial5711444
jadianes/spark-py-notebooks570832
\n", "
" ], "text/plain": [ " forks_count watchers\n", "full_name \n", "wesm/pydata-book 6052 6585\n", "donnemartin/data-science-ipython-notebooks 4047 13738\n", "ipython/ipython 3643 13004\n", "jrjohansson/scientific-python-lectures 1319 2256\n", "jdwittenauer/ipython-notebooks 1086 1935\n", "jupyterhub/jupyterhub 827 3631\n", "PipelineAI/pipeline 775 2950\n", "powerline/powerline 741 9322\n", "ogrisel/parallel_ml_tutorial 571 1444\n", "jadianes/spark-py-notebooks 570 832" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = %rest -q search/repositories?q=ipython&sort=forks&per_page=10\n", "df = pd.DataFrame(r.json()['items'], columns=('full_name', 'forks_count', 'watchers'))\n", "df.set_index('full_name', inplace=True)\n", "df" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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2WcfKioq6NChQ77u6qRZs2Z8/fXXAGvcsLRFixYrt0tKStbpGjMnXBuItCZpPHB9I4dSo4g4rLFjqI2yG8DeCdwQERv9s2i6bduecn/r0GyD1JjfGO7Xrx8jR47kF7/4BePHj6djx460a9cub90dd9yR6667juOPP55Ro0ax55578vbbb9O7d2969+7Ns88+yz/+8Y+8Cddhhx3GbbfdxkEHHUSzZs348MMP2X333Vm0aBF//etf2WWXXbjvvvv4j//4DyBbw1VRUcGRRx7Jo49W/a7Vmtq2bcuSJUtqrbe2fElxAxERiyNit4i4qbFjWVsRMaLy1glFHqcsItZIUCPixYjYseq9rMzMrHBlZWVUVFSw1157cemll3LPPffUWL9Lly6MHDmSk046ibfffpuLL76Ybt260bVrVw444AC6d++et92PfvQjdthhB/baay+6d+/OAw88QMuWLbn77rs56aST6NatG5tssglDhgwB4KqrruJnP/sZvXr1oqSk9vtkd+jQgb59+9K1a9eiLppXRH2/HGVmTUGvXr2ivLy8scMwswK8/vrrfPOb32zsMDY6+c67pIqI6FVoH57hMjMzMysyr+EyMzOzRjd69GguueSS1co6d+7M448/3kgRNSwnXGZmZtbovvWtb/Gtb32rscMoGl9SNDMzMysyJ1xmZmZmReaEy8zMzKzIvIbLzMxsQ1XWvoH7K869oG+88UYGDx7MZpttVv3QZWW0adOGiy66qCgxNDbPcJmZmVlR3XjjjXz22WdFHaOm5zGuDzzDZbaxWzy94f+VXB9F+pe1mTWc6667jhYtWnDeeedxwQUXMHPmTMaOHcvYsWO58847adeuHVOnTuXzzz/nxBNP5Oqrr2bYsGEsXryYgw46iI4dOzJu3Diee+45LrvsMlasWEHHjh0ZM2YMAPPmzWPAgAH8/e9/5/zzz+e8884D4P7772fYsGF8+eWX9O7dm1tuuYWSkhLatGnD2WefzYsvvsgf//hHnnrqKZ588kmaNWvG4YcfzvXXrz9Pw/MMl5mZmRWkX79+TJgwAYDy8nKWLl3K8uXLmTBhAv379+faa6+lvLycWbNm8dJLLzFr1izOO+88ttlmG8aNG8e4ceN47733OOuss3j00UeZOXMmo0aNWtn/G2+8wejRo5kyZQpXX301y5cv5/XXX+ehhx5i0qRJzJgxg5KSEkaOHAnAp59+Su/evZk5cybf/OY3efzxx5k7dy6zZs3iiiuuaJRzVB0nXJaXpCGSTq1HuwGSnsp531zStIaNbo0xB0m6OW2XSapxAUAhdQocd2kN+0ol/aDAfi6r5/jPSNq8ljqLJHWsT/9mZlXts88+VFRU8Mknn9CiRQv69OlDeXk5EyZMoF+/fjz88MPsvffe9OzZk7lz5zJv3rw1+njttdfo378/nTt3BmDLLbdcue/oo4+mRYsWdOzYka233pp3332XMWPGUFFRwb777kuPHj0YM2YMCxYsAKCkpIQTTjgBgPbt29OyZUvOPPNMHnvssRrXizUGX1K0NUhqFhG3NlB3BwKT1raTFNNXDRDPulIK/AB4oIC6lwG/LrRjSSJ7DupR9QvNzKx+mjdvTufOnRkxYgQHHHAAe+21F+PGjeOvf/0rrVq14vrrr2fq1KlsscUWDBo0iGXLltWp/xYtWqzcLikp4auvviIiOO200/jNb36zRv2WLVuufEB1s2bNmDJlCmPGjOGRRx7h5ptvZuzYsWt3wA3IM1xNmKQLJc1JP+ensl9Imi9poqQHK2d6JI2XdKOkcuBnubNAks6TNE/SLEn/k8paS7pL0hRJ0yUdV00YRwDPphmfNySNlPS6pEckbZb6ulLS1BTn8JRQ5Ivp25Imp/FelPSNWo5/Z0nPSaqQNEFSlwLP23hJN0gqT7HuK+kxSW9J+lUhfQBDgX6SZki6IHcWLo3xVJoNHAq0SvVGpn35PrfS9LndC8wBts+dvZL0RDrOuZIGFxijmVmd9evXj+uvv57+/fvTr18/br31Vnr27Mknn3xC69atad++Pe+++y7PPvvsyjZt27ZlyZIlAOy///68/PLLLFy4EIAPP/ywxvEOOeQQHnnkEf71r3+trP+3v/1tjXpLly7l448/5qijjuKGG25g5syZDXXIDcIzXE2UpH2A04HegIDJkiYBJwDdgebANKAip9mmlU8+l1SWU34p0Dkivsi5hHU5MDYizkhlUyS9mCeUg4Crga2B3YEzI2KSpLuAnwDXAzdHxDVp3PuAY4C/5IlpC2D/iAhJPwJ+DvzfGk7DcGBIRLwlqTdwC3BwDfVzfRkRvST9DPgzsA/wIfC2pBsi4oNa2l8KXBQRx6TYB+WrFBGXSvppRPRI9fJ9bi8B/wZ2BU6LiNdS3dyuzoiIDyW1AqZKerSmGFNSNhigpN1WlC67u5bDWd2ioUfXqb6ZFUkjfNmkX79+XHvttfTp04fWrVvTsmVL+vXrR/fu3enZsyddunRh++23p2/fvivbDB48mCOOOGLlWq7hw4dz/PHH8/XXX7P11lvzwgsvVDveHnvswa9+9SsOP/xwvv76a5o3b84f//hHdtxxx9XqLVmyhOOOO45ly5YREfzhD38o2jmoDydcTdeBwOMR8SmApMeAI4E/R8QyYJmkv1Rp81A1fc0CRkp6AngilR0OHJuzFqolsENuI0nbAh9GxGcpOfhHRFReXrwfOI8s4TpI0s+BzYAtgbmsSrhyY9oOeEhSJ2BTYGF1By+pDXAAMConMWlRXf08nkyvs4G5EfG/qd8FwPZAbQlXfeX73PqleP5WmWzlcZ6k76bt7cmSs2pjjIjhZAkpLTrtGg0Uu5ltBA455BCWL1++8v2bb765cnvEiBF525x77rmce+65K98feeSRHHnkkavVKSsrW+39nDlzVm4PHDiQgQMHrtHv0qWrltJ26tSJKVOmFHQMjcEJl+X6tJryo4H+wLeByyV1I5t9OSEi5udWrHKZ7whgdM77qn/YQ1JLspmnXhHxjzSz1rKamG4C/hART0oaAJTVcCybAB9VzhzVwxfp9euc7cr39fnv5itWv4TfsrqKNcj7+aRzcSjQJyW34+vZv5mZFYnXcDVdE4DvSNpMUmvgu8CzwLcltUwzQMfU1omkTYDtI2IccAnQHmhDlkidm7Peqmee5kekMSvtIKlP2v4BMJFVicH7KaYTawinPfDPtH1aTXFHxCfAQkknpfgkqXtNbRrYEqBtzvtFQA9Jm0jaHtgvZ99ySc3Tdr7PbUItY7UH/p2SrS7A/g1yBGZm1mCccDVRETENGAFMASYDd0TEVLJLU7PIEqHZQG0LAEqA+yXNBqYDwyLiI+CXZOvAZkmam96vJKkE2CUi3sgpng+cI+l1YAvgT6mv28kWgo8GptYQSxnZJcIK4P1a4gY4GThT0kyyy5TVLewvhlnACkkzJV1A9k3NhcA8YBjZ+rlKw8nO48hqPrfptYz1HNAsndehQHWXHc2sCYjwKoB1qaHOt/zBbVwktYmIpekbgi8Dg9Mf+YYe50DghxExJL0vBZ6KiK4NPZatnV69ekV5eXljh2FmBVi4cCFt27alQ4cOVb84Y0UQEXzwwQcsWbJk5X3DKkmqqPxSVyG8hmvjM1zSHmSX8u4pRrIFEBETyS4ZmplZA9luu+145513eO+99xo7lI1Gy5Yt2W677da6HydcG5mIKOju50UYdxGwXs1uSfoj0LdK8X9HRMH3SEhfILivSvEXEdF7beMzM6uq8sajtuFxwmUbrYg4pwH6mA3U95uQZma2kfCieTMzM7Mic8JlZmZmVmROuMzMzMyKzAmXmZmZWZE54TIzMzMrMidcZmZmZkXmhMvMzMysyHwfLrON3eLpUNa+saMwa5rKantcrW0sPMNlZmZmVmROuKxJkTRI0s1pe4ikU9eyv2clrf1DtOo/fqmkOWm7l6RhjRWLmZnVny8pWpMhabXf54i4dS37awV0iIh31iqw+o9f9XjKgfLGiMXMzNaOZ7isKNLMzBuSRkp6XdIjkjaTdIik6ZJmS7pLUgtJ+0p6LLU7TtLnkjaV1FLSglS+s6TnJFVImiCpSyofIelWSZOB31WJoUzSRWl7vKTfSpoi6U1J/VJ5iaTrJE2VNEvS2TldDADGp3qLJP0uxT1F0i45xzk2tR0jaYfU50JlNpe0QlL/VP9lSbtKap2Of0o6H8el/YMkPSlpLDCmyvEMkPRUzrHdlY5rgaTzcur9MPU7Q9Jtkkoa5lM1M7P6csJlxbQ7cEtEfBP4BLgQGAEMjIhuZDOsPwams+oB0P2AOcC+QG9gciofDpwbEfsAFwG35IyzHXBARFxYSzzNImI/4HzgqlR2JvBxROybxjxLUue070jguZz2H6e4bwZuTGU3AfdExF7ASGBYRKwA5gN7AAcC04B+kloA20fEW8DlwNgUz0HAdZJapz73Bk6MiP+o5Xi6AN8C9gOuktRc0jeBgUDfiOgBrABOrqUfMzMrMl9StGL6R0RMStv3A78AFkbEm6nsHuCciLhR0tspWdgP+APQHygBJkhqAxwAjJJU2XeLnHFGpSSnNo+l1wqgNG0fDuwl6cT0vj2wK7AQ6EuW3FV6MOf1hrTdBzg+bd/Hqlm2CekYOgO/Ac4CXgKm5ox7bOUMHNAS2CFtvxARHxZwPE9HxBfAF5L+BXwDOATYB5iazlUr4F9VG0oaDAwGKGm3FaXL7i5guOotGnr0WrU3M2vqnHBZMUWV9x8BHaqp+zLZjNJy4EWymbAS4GKymdiP0oxNPp8WGM8X6XUFq373RTZzNjq3oqSdyBLGL3OKo5rtfF4mm73bBriS7DgGkCVileOeEBHzq4zbm7ofD6w6JpHNuP1XTQ0jYjjZrCEtOu1a27GYmdla8iVFK6YdJPVJ2z8gW/BdWrn+CTiFbNYHskTkfODViHiPLDHbHZgTEZ8ACyWdBJDWRnVvoBhHAz+W1Dz1vVu6tFf1ciJkl+oqX19N268A30vbJ7MqoZpCNiv3dUQsA2YAZ5MlYpXjnqs0DSWpZwMdzxjgRElbp363lLRjA/VtZmb15ITLimk+cI6k14EtyC7DnU52aXA28DVQ+U3CyWSXxCoTklnA7IionH05GThT0kxgLnBcA8V4BzAPmJZuv3Ab2UzREayZcG0haRbwM+CCVHYucHoqPyXtI13q+wfwWqo3AWgLzE7vfwk0B2ZJmpver7WImAdcATyfYnoB6NQQfZuZWf1p1d8zs4YjqRR4KiK6NnIodZYWt0+KiF45ZYuAXhHxfqMFViQtOu0anU67sfaKNfAaLjPb2EiqyP07URuv4TKrIs1OFfwf0Yau27btKXfCZGZWVE64rCgiYhGwwc1uVSciShs7BjMz23B5DZeZmZlZkTnhMjMzMysyJ1xmZmZmReaEy8zMzKzInHCZmZmZFZkTLjMzM7Mic8JlZmZmVmROuMzMzMyKzAmXmZmZWZH5TvNmG7vF06GsfWNHsX4p+7ixIzCzJsYzXGZmZmZF5oTLGo2kFZJmSJojaZSkzVL5K2vR53hJvdL2M5I2X8sYZ0j6nyplIySdmPP+e5Iur6GPbSQ9shYxLJLUMW3X+9yYmVnjccJljenziOgREV2BL4EhABFxQEN0HhFHRcRH9W0v6ZtACdBPUusaqh4JPFdDHIsj4sTq9tdFQ50bMzNbt5xw2fpiArALgKSl6XWApJclPS1pvqRbJW2S9h0u6VVJ09LsWJuqHVbODEkqlfS6pNslzZX0vKRWqc7Okp6TVCFpgqQuOV18H7gPeB44Ll/QkgT0AKZJKpN0X4rrLUlnpTqlkuak7UGS/pxm4t6SdFVOXz+UNCXNqt0mqSTPeLnnZrykRyS9IWlkigVJ+0h6KR3TaEmd6vhZmJlZA/OieWt0kppR/SzRfsAewN/S/uMljQeuAA6NiE8lXQJcCFxTwzC7At+PiLMkPQycANwPDAeGRMRbknoDtwAHpzYDgcOALsC5wAN5+u0JzIyISPnOXsD+QGtguqSnqzmmrsBnwNRU59M0Xt+IWC7pFuBk4N4ajqknsCewGJgE9JU0GbgJOC4i3pM0ELgWOCO3oaTBwGCAknZbUbrs7hqGKcyioUevdR9mZk2VEy5rTK0kzUjbE4A789SZEhELACQ9CBwILCNLwialJGdT4NVaxloYEZVjVQClaVbsAGBU6gegRRqrF/B+RPxd0j+BuyRtGREfVun3CODZnPd/jojPgc8ljSNLrmZUafNCRHyQxnksHdNXwD5kCRhAK+BftRzTlIh4J/UzAygFPiJL5l5I/ZQA/1u1YUQMJ0s2adFp16hlHDMzW0tOuKwxfR4RPWqpUzUZCEBkScv36zDWFznbK8gSmk2Aj6qJ4ftAF0mL0vt2ZLNit1epd3gqryneqqo7pnsi4r+qO4A8qh5Ts9TP3IjoU4d+zMysyLyGy9Z3+0nqnNZuDQQmAq+RXT6rXPPVWtJude04Ij4BFko6KfUjSd3TWP8JdIuI0ogoJVvDtVqCJ6k90Kxytio5TlJLSR2AAcDUPEMfJmnLtI7sO2SXA8cAJ0raOvW9paQd63pMwHxgK0l9Uj/NJe1Zj37MzKwBOeGy9d1U4GbgdWAh8HhEvAcMAh6UNIvscmKXanuo2cnAmZJmAnPJEqt+wD8jYnFOvZeBPaosQD8MeLFKf7OAcWRJ4S+r9FFpCvBoqvtoRJRHxDyydWnPp2N6AajzYveI+BI4EfhtOqYZZJdNzcysESnCyzds/SRpAHBRRBzT2LHkI+kO4I6IeC29LwOWRsT1NbQZBPSKiJ+ukyAL0KLTrtHptBvXuh8vmjezjYmkiojoVWh9r+Eyq6eI+FFjx9AQum3bnnInS2ZmReUZLrONXK9evaK8vLyxwzAz26DUdYbLa7jMzMzMiswJl5mZmVmROeEyMzMzK7KCEy5JB0o6PW1vJalz8cIyMzMzazoKSrjSA3YvASrvgt2c7Dl0ZmZmZlaLQme4vgscS/aAXdLNHNsWKygzMzOzpqTQhOvLyO4fEZA9SqV4IZmZmZk1LYUmXA9Lug3YXNJZZI8zqfoQXzMzMzPLo6A7zUfE9ZIOAz4BdgeujIgXihqZmZmZWRNR8KN9IuIFSZMr20jaMiI+LFpkZrZuLJ4OZe0bO4qmo+zjxo7AzNZDBSVcks4GrgaWAV8DIlvPtVPxQjMzMzNrGgpdw3UR0DUiSiNip4joHBFOtjZCkl5p4P4GSdqmHu1GSDqxjm0WSepYzb5Okp6XtI2kR+oaTwFjny9ps3q0Gy+p4Gd1pTZL6zqOmZkVV6EJ19vAZ8UMxDYMEXFAA3c5CKhTwiWp4EvhdXAEMDoiFkdEnRK5Ap0P1CnhklRShDjMzKwRFJpw/RfwiqTbJA2r/ClmYLZ+krRU0gBJT+WU3SxpUNpeJOl3kmZLmiJpF0ltJS2U1DzVaZfenwT0AkZKmiGplaR9JL0kqULSaEmdUpvxkm6UVA78LA3dX9IrkhZUznbVFFvy89zYcsqPAJ5wr3l3AAAgAElEQVSVVCppTmo7SNLNOX09JWlAznm4QdJcSWPS0xd2ljQtp/6ukqZJOo8sqRwnaVzad7ikV9P+UZLa5Jy/36Z+TkpdnZTifVNSv9piS+9Xi62gD9fMzIqm0JmC24CxwGyyNVxmNfk4IrpJOhW4MSKOkTQeOBp4Avge8FhEjJJ0DnBRRJSnhOwm4LiIeE/SQOBa4IzU76YR0QuyS4pAJ+BAoAvwJFDIpcDVYgOOSTNJu0fEPEmlBR5ja6A8Ii6QdCVwVUT8VNLHknpExAzgdODuiLhJ0oXAQRHxfrqseQVwaER8KukS4ELgmtT3BxGxdzrOIUCziNhP0lHAVcChdY0N+GluBUmDgcEAJe22onTZ3QUeds0WDT26QfoxM2tqCk24mkfEhUWNxJqSB3Neb0jbdwA/J0u4TgfOytNud6Ar8IIkgBLgf3P2P1Sl/hMR8TUwT9I31iK23sDkAttX+jonnvuBx9L2HcDpKcEaCOyXp+3+wB7ApHScmwKv5uyvepyVfVcApWsR20oRMRwYDtCi065RQJ9mZrYWCk24nk3/Iv4L8EVloW8LsdH6itUvR7essj+qbkfEpHS5bgBQEhFz8vQrYG5E9Klm3E+rvP8iZ1v1jQ04Enguz3i19ZWv30fJZpTGAhUR8UGeugJeiIjvV9NXdce5glX/zdYnNjMzaySFruH6PmkdF9m/siuA8mIFZeu9vwF7SGohaXPgkCr7B+a85s7c3As8AORev1rCqudyzge2ktQHQFJzSXuug9gOIXt6QlWLgB6SNpG0PavPVm0CVC6u/wEwESAilgGjgT9R/XG+BvStXEMmqbWk3epykPWJzczMGk+hd5rvXOxAbIMREfEPSQ8Dc4CFwPQqdbaQNItsZiZ3Fmck8CtWXdYDGAHcKulzoA9ZojBMUnuy388bgbl1CK5OsaUF5csiYkluN+l1UupjHvA6MC2nzqfAfpKuAP7FqkSu8ji/CzyfUzYceE7S4og4KC3kf1BSi7T/CuDNQo9zLWIzM7NGoOyZ1AVUlLqSrTtZeekiIu4tUly2HpLUAZgWETvWUGcR0Csi3s+z70SyBfGnFC/KupH0Q2C7iBia3u8D/CEi/qOWdksjok01+y4C2kfELxo84CJo0WnX6HTajQ3SlxfNm9nGQlJF5Re5ClHoneavAgaQJVzPkK15mUh2icg2AspuTjoeuL6e7W8i+705qgHDWmsRcX/ltrIbjD4AXFrf/iQ9DuwMHLz20a0b3bZtT7kTJTOzoip00fyJQHdgekScnr4Rdn8tbawJiYjFQK3rjCKitJrycxs6poYWEeUUcIypbt7ZrYj4boMGZWZmTUKhi+Y/T1+//0pSO7J1IdsXLywzMzOzpqPQGa7y9I2v28m+obiU1b99ZmZmZmbVKPRbij9Jm7dKeg5oFxGziheWmZmZWdNR8EOAJW0L7FjZRlL/iHi5WIGZmZmZNRWFfkvxt2T38plHdrdryO5V5ITLzMzMrBaFznB9h+zhvl/UWtPMzMzMVlPotxQXAM2LGYiZmZlZU1XoDNdnwAxJY1j94dXnFSUqMzMzsyak0ITryfRjZmZmZnVU6G0h7qlpv6RHI+KEhgnJzNapxdOhrH1jR1E3ZR83dgRmZnVS6Bqu2uzUQP00eZJeyVM2Ij3YuZD210g6NG2fL2mznH2XNVykDU/S9yRdLulYSfV6XqGkAZIOyHlf8LkrtqqfRw31Fknq2ADjrTfHbmZmNWuohCsaqJ8mLyIOqL1Wje2vjIgX09vzgdw/8OtlwiWpJG0eCTwXEU9GxNB6djcAWKtzWERVPw8zMzOg4RIuK5CkpcrcLGm+pBeBrdO+fSU9lraPk/S5pE0ltZS0IJWPkHSipPOAbYBxksZJGgq0kjRD0shU94eSpqSy2yoTnxTDtZJmSnotPYwcSd+WNFnSdEkv5pSXSboo5xjmSCotYIzfS5oJ9JEkoAcwTdIgSTfnHM+tksolvSnpmFT+sqQeOWNOlNQdGAJckMbrl3b3l/SKpAWVMz7pHF+XYp0taWAqHyBpvKRHJL0haWSKrernVG09SYekczRb0l2SWlT9PFK9wyW9KmmapFGSch94/fPUfoqkXVL9UkljJc2SNEbSDjWVV4n3l+lclkgaKmleqn99jb+QZma2TjRUwrXGHyyr0XeB3YE9gFNZNWMznSwpAegHzAH2BXoDk3M7iIhhwGLgoIg4KCIuJXvIeI+IOFnSN8luVts3InqQ3bD25NS8NfBaRHQnu3ntWal8IrB/RPQE/gf4eU0HUcAYkyOie0RMBHoCMyMi32xoKbAfcDTZ46NaAncCg9I4uwEtI2ImcCtwQzrOCal9J+BA4Bigcubs+HQuuwOHAtdJ6pT29SSbjdqD7HJ432oOcY16KbYRwMCI6Ea2DvLHVT8PZZcMrwAOjYi9gXLgwpy+P07tbwZuTGU3AfdExF7ASGBYLeWk83MdsBVwOrA52e/Xnqn+r6o5NjMzW4cKfrRPLS5poH42Fv2BByNiBbBY0liAiPhK0tspkdkP+EOqWwJMqLa3/A4B9gGmpomZVsC/0r4vgafSdgVwWNreDngoJSabAgvXYowVwKM5dY8Anq2mn4cj4mvgrTST1wUYBfxC0sXAGWRJTnWeSO3nVc7KkSVglef4XUkvkSWvnwBTIuIdAEkzyBK+iXn6zVdvCbAwIt5Mde4BzmFV0lRpf7JEbVI6N5uy+gPfH8x5vSFt9yFLFAHuA35XSznAL8gS28Epzo+BZcCdkp5i1ee8GkmDgcEAJe22onTZ3fmqNZhFQ48uav9mZuu7GhMuSbPJvz5LQKR/QRMRzxchto3Vy2RrnZYDL5IlGiXAxXXsR2SzIv+VZ9/ynJmmFaz6PbgJ+ENEPClpAFCWyr9i9dnQlgWMsSwlO5UOB6r7JmvV37GIiM8kvQAcB/wnWWJXndwnIBQy25pbfwXQTFJv4LZUdiVZYrZGvQL6zo3jhYj4fjX7o5rtupoK7CNpy4j4MCXt+5ElwycCPwUOXmPwiOHAcIAWnXb1GkwzsyKr7ZLiMcC38/xUllv9vAwMTOttOgEH5eybQHYZ69WIeA/oQHb5cU6efpYAbXPeL5dU+USAMcCJkirXh20pacda4moP/DNtn5ZTvgjYO/WzN9C5LmNIag80i4gPqhn3JEmbSNqZ7NLd/FR+B9nls6kR8e9qjrk6E1h1jrcimymcUl3liJicLlP2iIia7jk3HyitXHcFnAK8lCe218guQVauz2qdLo1WGpjzWjnz9QrwvbR9MqtmNasrB3iO7DLq05LapnVi7SPiGeACskuqZmbWyGr8F3tE/G1dBbIRCeBxslmHecDfWf1S02TgG6x6MPgs4P9Us/ZpOPCcpMURcVB6P0vStLSO6wrgeUmbkM2YnQPU9JmWAaMk/RsYy6rE6lHgVElzU3xvAkTEvALHOIxstq46fydLhtoBQyJiWeq/QtInQO71rr8Aj0g6Dji3hj4fJ7sUN5PsnP88Iv6fpC41tKlVRCyTdDrZeWpGNsN0a9q92uchaRDwoKQWaf8VpHMHbCFpFtksWuUs2LnA3eky6ntka7JqKq+MaZSktmQ3J/4B8Oe01kysvm7MzMwaifL/HU87pSXUfEmxXbECa4okdQCmRURtM01NiqQ7gDsi4rU8+0YAT0XEI3n2bQOMB7qkNVpWBC067RqdTqu6BK1heQ2XmTU1kioioleh9Wub4Srk0o0VICd52Oi+ph8RP6prG0mnAtcCFzrZKq5u27an3AmRmVlRFbQION99fwAi4u8NG07TFRGLgd1qrbiRiYhB1ZTfC9y7bqMxMzMrjkK/dfV0znZLsrU984E9GzwiMzMzsyam0IdXd8t9n76p9pOiRGRmZmbWxNTrTvMRMY3s7udmZmZmVotC13DlfrV8E7KbUC4uSkRmZmZmTUyNM1yS7kubV5Ld0LEt0ILscSHHFTc0MzMzs6ahthmufdLtDP5O9tiXXJuRPbPNzMzMzGpQW8J1K9njWzoD5TnlIrsh6k5FisvMzMysyajxkmJEDIuIbwJ3R8ROOT+dI8LJlpmZmVkBCvqWYkT8uNiBmJmZmTVVhd741MyaqsXToax9Y0fRcMo+buwIzMzWUK/7cJmZmZlZ4Tb6hEvSK3Upz9k/QNJTxYmqYUlqLmlaHdv0kjRsLca8rMr7V3K2r5M0N70OSQ+qLor0OR2Q836EpBOLME6ppDn1bDsofRvYzMyaqI3+kmJEHJD7XlKziPiqavkG7kBgUl0aREQ5q38zta4uA36d01/u+RwMbBkRK9ai/0INAJYCNSbQjWwQMIc63Ey48ve0aBGZmVmD8gyXtDTNgkyQ9CQwr7I8vSrNxMyRNFvSwJzmbSQ9IukNSSMlKbW5UtLU1GZ4Tvl4Sb+VNEXSm5L6pfI9U9kMSbMk7SqptaSnJc1M/QxMdQ+RND3FcpekFql8kaSrJU1L+7rkxHkE8GwNfe4r6ZVUPkVS29wZvNTurrRvuqTjUvkgSY9Jek7SW5J+l8qHAq3S8Yyscj6fBNoAFZIGSiqTdFHat4ukF1Mc0yTtnOfzGiHpVknl6Rwek8pfltQjp95ESd2BIcAFKZZ+aXf/dLwLKme7qvuc03kYn+9zruF3qiT1NTV9nmfn7Lsk9T9T0tA0fi9gZIqxVfosO6b6vSSNT9tlku6TNAm4r7pxJHVK52NGOp5+a0ZpZmbr0kY/w5Vjb6BrRCysUn480APoDnQEpkp6Oe3rCexJNjMxCegLTARujohrYOXd+o8B/pLaNIuI/SQdBVwFHEqWFPx3RIyUtClQAhwFLI6Io1M/7SW1BEYAh0TEm5LuBX4M3Jj6fj8i9pb0E+Ai4Eep/CDgauDIPH1uCjwEDIyIqZLaAZ9XOQeXA2Mj4gxJmwNTJL2Y9vVI5+ELYL6kmyLiUkk/jYgeVfohIo6VtLRyn6SynN0jgaER8Xg61ur+QVAK7AfsDIyTtAtwJ9lM0fmSdgNaRsRMSbcCSyPi+jTemUAnslm/LsCTwCPU73OuzpnAxxGxb0qIJ0l6Po13HNA7Ij6TtGVEfCjpp8BFaVaRWvK5PYADI+JzSYOrGed4YHREXCuphOwmxWZm1oiccK0yJU+yBdkf5gfT5a93Jb0E7At8ktq8AyBpBlkiMBE4SNLPyf7QbQnMZVXC9Vh6rUj1AV4FLpe0HfBYRLwlaTbwe0m/BZ6KiAlpxmZhRLyZ2t0DnMOqhCu37+NTXNsCH6Y/8Pn67Ab8b0RMBYiIT1K73HNwOHBs5UwU0BLYIW2PiYiPU5t5wI7AP/Kf4upJagtsGxGPpzhqeorBwxHxNfCWpAVkicwo4BeSLgbOIEtMq/NEaj9P0jdSWX0+5+ocDuylVWvF2gO7kiXXd0fEZ+kYP6yhj+o8GRGVCXF140wF7pLUPB3rjKqdpGRtMEBJu60oXXZ3PUJZe4uGHt0o45qZrWsb/SXFHJ/Wo80XOdsrgGZpZuYW4MSI6AbcTpagVG2zgpTwRsQDwLFkM0vPSDo4JVV7A7OBX0m6sg7xrOyb7HLi6DROffqE7MkCJ0REj/SzQ0S8XmXMquM2CEnXpktjuUlDVKkWKYl5gWwG6T/JZsuqkxtzjdNJeepXfs69K+OSdGzVsIFzc85X54h4voBxKn3Fqv82W1bZl/t7mneciHgZ6A/8ExihPF9KiIjhEdErInqVbNaEbglhZraecsJVuwnAwLReZiuyP2RTaqhf+QfyfUltgFq/ESdpJ2BBRAwD/kw2a7EN8FlE3A9cR5YozQdK0yU0gFOAl2rp/gjg2TROdX12krRvqtNWUtWkaTRwbuXaJUk9azsmYHmaYSlIRCwB3pH0nTRGC0mbRcTllQlFTvWTJG2ibI3XTukYAO4AhgFTI+LfqWwJ2UPXa1OnzzkiJuckOk9W2T0a+HHl8UvaTVJrsoTwdEmbpfItq4lxEbBP2j6hhpjzjiNpR+DdiLid7JzsXdvBm5lZcfmS4pqzJVXLHwf6ADNT2c8j4v9p9UXpqxpFfCTpdrJvnf0/sss7tflP4BRJy1ObX5NdzrpO0tfAcuDHEbFM0unAqJQUTSV73mVeaf3OLhHxRirqlqfPL5UtEL9JUiuyWbZDq3T1S7LLlrMkbQIsJFuXVpPhqf60iDi5gHMAWQJ5m6RrUnwnAQvy1Ps7WTLUDhhSefkxIiokfQLkXh/7C/CIsoX+59Ywdp0+51rcQXbZcVpKUt8DvhMRzylb2F8u6UvgGbJvc44AbpX0eYrhauBOSb8Extd1HLJvZl6cfp+WAkW77YaZmRVGEdXlG02fpA7AtIjYsZDyDY2kA4EfRsSQxo6loUgaQbb+7JE8+7YhS1C6pDVaVoAWnXaNTqfdWHvFIvAaLjPbUEmqiIhehdbfaGe4cv44X19I+YYoIiZS8+LuJiOtU7oWuNDJVt1027Y95U58zMyKaqNNuCJiMbBboeW2foiIQdWU3wvcu26jMTMzK4wXzZuZmZkVmRMuMzMzsyJzwmVmZmZWZE64zMzMzIrMCZeZmZlZkTnhMjMzMysyJ1xmZmZmReaEy8zMzKzInHCZmZmZFdlGe6d5M0sWT4ey9o0dhZlZ4co+buwI6swzXGZmZmZF5oTLNiiSXqlnu80l/STn/QBJTzVgXM0lTVufYzQzs8bjhMs2KBFxQD2bbg78pNZa9XcgMAnW6xjNzKyROOGyDYqkpel1gKSXJT0tab6kWyVtIukMSTfm1D9L0g3AUGBnSTMkXZd2t5H0iKQ3JI2UpNTmEEnTJc2WdJekFql8kaSrJU1L+7rkhHYE8Ox6HqOZmTUSL5q3Ddl+wB7A34DngOOBh4HLJV0cEcuB04GzgSVA14joAVkyBPQE9gQWk81O9ZVUDowADomINyXdC/wYqEyQ3o+IvdOlv4uAH6Xyg4Cr1/MYV5I0GBgMUNJuK0qX3V3zmbY6WTT06MYOwczWM57hsg3ZlIhYEBErgAeBAyNiKTAWOCbN7jSPiNk1tH8nIr4GZgClwO7Awoh4M9W5B+if0+ax9FqR6iNpW+DDiPhsfY2xqogYHhG9IqJXyWb+hqKZWbF5hss2ZFHN+zuAy4A3gJqmbr7I2V5BYf89VLbJrX8EMHo9j9HMzBqRZ7hsQ7afpM6SNgEGAhMBImIysD3wA7JZJcgu17UtoM/5QKmkXdL7U4CXammzcv3WehyjmZk1IidctiGbCtwMvA4sBB7P2fcwMCki/g0QER8AkyTNyVmQvoaIWEa2pmqUpNnA18Ct1dWXVALsEhFvrK8xmplZ4/PlBtugRESbnLefRMQx1VQ9ELihStsfVKkzPmffT3O2x5AtVq86dmnOdjkwQNKBwOT1OcZqxjYzs3XICZc1KZI2B6YAM1NSUlQRMZF0mbBQ6zrG2nTbtj3l/ladmVlROeGyDVJEjCdn9ien/CNgt3UdTz4bQoxmZrZueA2XmZmZWZE54TIzMzMrMidcZmZmZkXmhMvMzMysyJxwmZmZmRWZEy4zMzOzInPCZWZmZlZkTrjMzMzMiswJl5mZmVmR+U7zZhu7xdOhrH1jR2Fmtm6VfbxOh/MMl5mZmVmRrdOES1KZpIvW5ZgNRdJlVd6/UmC770m6PE/5Ikkd6zJmQ5M0RNKpxRyjhrGfSQ9xrk/by3K2SyXNabjI6k9SD0lHFVBvkKSbG2C89ebYzcysZp7hqoUymwCrJT8RcUCBXRwJPFfP4YuacEXErRFxbzHHqGHso9JDnOujqOdlLfQAak24zMxs41P0hEvS5ZLelDQR2D2V9ZD0mqRZkh6XtEUqHy/pt5KmpDb9UvkgSY9Jek7SW5J+l9P/4ZJelTRN0ihJbVL5Ikm/kTRDUrmkvSWNlvS2pCGpThtJY1Lb2ZKOS+WlkuZLuheYA9wJtEp9jUx1lqbXASnuRyS9IWmkJKV9IvsjPE1SB0nPS5or6Q5AOcfwhKSKtG9wKhuaZ8w16uU533um8zcjnd9dU/mp6f1MSfelspUzjpJ2Tue3QtIESV1S+QhJwyS9ImmBpBNzxroknbeZKd5q+8kT5yJJHdO5rjxvr6fzuJmkgyU9kVP/sPS7ssZ5AUok3Z7Oy/OSWtXn9yxPjNX9PraUdHc69umSDpK0KXANMDDFNlBSa0l3pfbTK3+/ku1T/29JuipnzAslzUk/59dWnrN/pzTGvtX9DpiZWeMp6qJ5SfsA3yNLOpoB04AK4F7g3Ih4SdI1wFVA5R+RZhGxn7JLM1cBh6byHkBP4AtgvqSbgM+BK4BDI+JTSZcAF5L94QP4e0T0kHQDMALoC7QkS6JuBZYB342IT5Rd3ntN0pOp7a7AaRHxWjqWkyKiRzWH2hPYE1gMTErjTEzlMyMi0h/ViRFxjaSjgTNz2p8RER+mRGGqpEcj4lJJP60yZr56H1SJZQjw3xExMiUBJZL2TOfpgIh4X9KWeY5hODAkIt6S1Bu4BTg47esEHAh0AZ4EHpF0JHAc0DsiPsvps6Z+qrM7cGZETJJ0F/AT4PfALZK2ioj3gNOBuyLiL7nnRVIp2Wf1/Yg4S9LDwAnA/dTv96yqfPXOASIiuqWE8nlgN+BKoFdE/DTF9mtgbEScoezy6RRJL6Z+9wO6Ap+RfZZPA5GOszdZQj5Z0ktk/zDKV/7vNM7uwP8AgyJiZvpvY7XfgaoHpSxhHwxQ0m4rSpfdXfMnZA1u0dCjGzsEM1uHiv0txX7A4xHxGUBKZloDm0fES6nOPcConDaPpdcKoDSnfExEfJz6mQfsCGwO7AFMUjaptCnwak6byuRpNtAmIpYASyR9kf4Afgr8WlJ/4GtgW+Abqc3fKpOtAkyJiHdSbDNS3BOBI4BnU53+wPEAEfG0pH/ntD9P0nfT9vZkCUTVRKrQeq8Cl0vaDngsJT4HA6Mi4v00/oe5DZTNCh4AjErnEaBFTpUnIuJrYJ6kyvNzKHB35WebEsHa+qnOPyJiUtq+HzgvIv5/e/cebGV13nH8+xPlZhTw0pSIFlASh5qKSi2MlzFG8UYFbcxYbQEvk9pbqti0Jto0ppMZkziJtUl1HAzWlqgRNRKSqiReIKmg3K8iBAjxFq0iWh0R5ekfa214Pdn7XPC8+8L5fWb2nPdd79prP+/ae5/9nLXWu8+NSiNxfyZpOjAWqLXebGNELM3bi4Chkgawe6+ztqrVOxH4N4CIeEbSr0gJV1vjgHO1a91iX+CwvD2nkixLuj+3GaT3y1uF8pNISVa18lnAwcCDwPkRsTq3/VuvgbaBRcRtpOSYPoNHRDvnb2Zm3aAZvxZiW/75Ph+Mb1thu3JMpA+uP+2grR1t7r8j3/9i0gfWcRGxXdIm0ocipGSsqzG3jXscabSlJkmnkJKXsXmk6PFCDB3WywlYZUrq8oj4vqQFwDnATyT9RSfi3wt4vZ0RvOL5qUadmu1I6kVKWABmRcSX29yv7Qd+ZX868CPSSOS9EfFeJ+J7H+jXToxt77Pz+cqJ3THACxFxdq16XSDgTyJi7QcK08hfrXPuqq3AZlLCthqg2msgIh7dzfbNzKwblL2Gay4wUVI/SfsBf0xKZLYU1s38OfBErQY6MB84QdIRAHnNTLWRhloGAC/nZOtTpFGzWrZL2qezDecRlr0LU35zgYvysbOAQYUYtuQk6khgTI3HrFovIh6IiFH5tlDScGBDRNxMGvn4A+BR4AJJB+bH/8CUYkS8AWyUdEE+LklHd3CKc4BLJPWvtFmrnYh4vxBj22QL4DBJY/P2RaTRQSLiBdI07XWk5Ktav1SVR0O79DqLiEtyjB0tfJ9HStbJr7fDgLXAm8B+hXoPA38r7VzTd0zh2OmSDsjTwxNJU9HzSO+X/pL2Bc7LZbXKAd7N+5MkVV5f1V4DZmbWQKUmXBGxGLgHWEaaWns6H5oMfFPSctLarK9Wb6HD9l8BpgB35baeJK0z6qwZwGhJK0jTVc+0U/c2YLl2LdTuyOnATwv71wMnS1pFmlrcnMsfAvaWtAa4gZREVnvM9uoVfRZYmac2jwLujIhVwNeAJyQtA75V5X4XA5fl46tI67NqioiHSFNaC/NjVabNutROthb463xug4BbCsdmkKYc1xTKOvtcdMvrrIp/B/bKr5t7SGuntgGPASOVF80D/wLsk2NdlfcrngLuA5YD90XEwvx+uSMfWwBMi4gltcorDeWpxvHAVZLOpcproJvO28zMdpMivHyjDEpXIk7rwjqwHikvep8dEUfVOP4dYElE3F7PuHqSPoNHxODJNzU6jB7Hi+bNWpukRRExurP1m3EN1x4hIi5vdAytTtIi0hT01Y2OZU/2yUMGsNAf/mZmpXLCZQ0VEZtI017Vjh1X32jMzMzK4W+aNzMzMyuZEy4zMzOzkjnhMjMzMyuZEy4zMzOzkjnhMjMzMyuZEy4zMzOzkjnhMjMzMyuZEy4zMzOzkvmLT816uheWwFcGNDoK25N9ZWujIzBrOI9wmZmZmZXMCZf1CJKukXRxN7SzSdJBHdT50m60OyX/o+4PRdJQSSs/bDtmZta9nHBZT3EG8EidHqvLCZeZme3ZnHBZXUn6gqTP5+1vS3o0b58qaYakcZKelLRY0r2SPpKP3yBptaTlkm7MZXdIukXSfEkbJJ0i6XuS1ki6o/CY+wO9I+KVfJ9bJS2U9Kyk8bnOXEmjCvf5uaSjJR0o6RFJqyRNA1So80NJi/Kxz1XiBPpJWippRq16NRwq6XFJ6yT9c+FxpkpamW9XdlReOD5c0hJJf9iFp8jMzErgRfNWb/OAq4GbgdFAH0n7ACcBy4HrgNMi4i1J/whMlfRd4DzgyIgISQML7Q0CxgLnArOAE4DLgacljYqIpcBpwM8K9xkKHA8cDjwm6QjgdmAKcKWkjwN9I2KZpJuBn0fEVyWdA1xWaOfSiHhNUr/8ePdFxDWS/iYiRnVQ79UqfXM8cBTwdq73YyCASyOD094AAAjPSURBVIA/IiV7CyQ9QfpjqVr5FgBJnwDuBqZExLJ2ng8zM6sDJ1xWb4uA4/Ko0zZgMSnxOomUMI0EfiEJoDfwJLAVeAe4XdJsYHahvR/lJGwF8JuIWAEgaRUpsVoKnAlML9znBxGxA1gnaQNwJHAv8E+SvgBcCtyR654MnA8QET+WtKXQzuclnZe3DwVGANUSqc7Wm1NJxCTdD5xISrgeiIi3CuUnkZKsauWzgIOBB4HzI2J1lcchj7R9DqDX/gcz9J3p1aqZVbXphnMaHYJZy/GUotVVRGwHNpJGk/6HNOL1KeCIXD4nIkbl28iIuCwi3iON/swExgMPFZrcln/uKGxX9it/UBwPPFUM47fDireBOcAE4LPAjPbOQ9IppJGzsRFxNLAE6NvZepLOy9OOSyWNrhVXezG0YyuwmZSwVRURt0XE6IgY3au/vxLCzKxsTrisEeYBfw/MzdtXkBKR+cAJeYoPSftK+nhexzUgIn4CXAUc3dkHkvT7wDMR8X6h+AJJe0k6HBgOrM3l00hTnU9HRGUkay5wUW7rLNIUJsAAYEtEvC3pSGBMof3teZq0Zr2IeKCQWC7MdU+XdECeepwI/CL3z0RJ/SXtS5panddOOcC7eX+SpIs621dmZlYeTylaI8wDrgWezGu13gHm5UXtU4C7JPXJda8D3gQelNSXNJU2tQuPdRYfHBGDNPrzFLA/cEVEvAMQEYskvcEHpx+vz/GsIo3Ibc7lDwFXSFpDStjmF+5zG7Bc0mLS9GStem09BdwHDAH+q5KI5QsAKiN00yJiSa1ySUPzubyVLwiYI+n/ImJWO49rZmYlU8TuzlqYNT9Jc4BJEfFi3r8DmB0RM6vU/RjwOGlx/o56xtlIfQaPiMGTb2p0GNZCvIbLDCQtiojRHddMPMJle7SIOL0z9SRNAr4GTO1JyRbAJw8ZwEJ/gJqZlcoJl/UoETGlRvmdwJ31jcbMzHoKL5o3MzMzK5kTLjMzM7OSOeEyMzMzK5kTLjMzM7OS+WshzHo4SW+y68tfW81BwP82Oojd4Ljrr1Vjb9W4oXVj72zcvxcRB3e2UV+laGZru/JdMs1E0sJWjN1x11+rxt6qcUPrxl5W3J5SNDMzMyuZEy4zMzOzkjnhMrPbGh3Ah9CqsTvu+mvV2Fs1bmjd2EuJ24vmzczMzErmES4zMzOzkjnhMuvBJJ0paa2k9ZKuaYJ4DpX0mKTVklZJ+rtcfoCkOZLW5Z+Dcrkk3ZzjXy7p2EJbk3P9dZIm1yn+XpKWSJqd94dJWpDju0dS71zeJ++vz8eHFtr4Yi5fK+mMOsU9UNJMSc9IWiNpbCv0uaSr8utkpaS7JPVt1j6X9D1JL0taWSjrtj6WdJykFfk+N0tSiXF/M79Wlkt6QNLAwrGqfVnrd02t56uMuAvHrpYUkg7K+/Xp74jwzTffeuAN6AX8EhgO9AaWASMbHNNg4Ni8vR/wLDAS+AZwTS6/Bvh63j4b+G9AwBhgQS4/ANiQfw7K24PqEP9U4PvA7Lz/A+DCvH0r8Jd5+6+AW/P2hcA9eXtkfh76AMPy89OrDnH/B3B53u4NDGz2PgcOATYC/Qp9PaVZ+xw4GTgWWFko67Y+Bp7KdZXve1aJcY8D9s7bXy/EXbUvaed3Ta3nq4y4c/mhwMPAr4CD6tnfHuEy67mOB9ZHxIaIeBe4G5jQyIAi4sWIWJy33wTWkD5YJ5CSAvLPiXl7AnBnJPOBgZIGA2cAcyLitYjYAswBziwzdklDgHOAaXlfwKnAzBpxV85nJvDpXH8CcHdEbIuIjcB60vNUZtwDSB9OtwNExLsR8Tot0Oek75LsJ2lvoD/wIk3a5xExF3itTXG39HE+tn9EzI+UDdxZaKvb446IRyLivbw7HxhSiLtaX1b9XdPBe6Tb486+DfwDUFzAXpf+dsJl1nMdAvy6sP9cLmsKecrnGGAB8NGIeDEfegn4aN6udQ6NOLebSL/Id+T9A4HXCx9MxRh2xpePb831GxH3MOAVYLrSdOg0SfvS5H0eEc8DNwKbSYnWVmARrdHnFd3Vx4fk7bbl9XApaYQHuh53e++RbidpAvB8RCxrc6gu/e2Ey8yajqSPAPcBV0bEG8Vj+S/Kprq8WtJ44OWIWNToWHbD3qSpl1si4hjgLdL01k5N2ueDSCMTw4CPAftS/ohaaZqxjzsi6VrgPWBGo2PpiKT+wJeALzcqBidcZj3X86T1DBVDcllDSdqHlGzNiIj7c/Fv8jA++efLubzWOdT73E4AzpW0iTRdcirwr6Spicq/UCvGsDO+fHwA8GoD4ob01/lzEbEg788kJWDN3uenARsj4pWI2A7cT3oeWqHPK7qrj59n17Resbw0kqYA44GLc7JIB/FVK3+V2s9XdzuclJwvy+/TIcBiSb+7G3HvVn874TLruZ4GRuSrhHqTFhLPamRAeU3H7cCaiPhW4dAsoHKF0GTgwUL5pHyV0Rhga56ieRgYJ2lQHgkZl8tKERFfjIghETGU1I+PRsTFwGPAZ2rEXTmfz+T6kcsvVLqibhgwgrQ4tzQR8RLwa0mfyEWfBlbT5H1OmkocI6l/ft1U4m76Pi/olj7Ox96QNCb3xaRCW91O0pmk6fNzI+LtNudTrS+r/q7J/V/r+epWEbEiIn4nIobm9+lzpAt0XqJe/d3ZFf+++ebbnncjXZ3zLOkKomubIJ4TSdMqy4Gl+XY2aa3Hz4B1wE+BA3J9Ad/N8a8ARhfaupS0aHc9cEkdz+EUdl2lOJz0gbMeuBfok8v75v31+fjwwv2vzeezlm660qwTMY8CFuZ+/yHpiqym73PgeuAZYCXwn6Sr45qyz4G7SGvNtpM+7C/rzj4GRud++CXwHfIXm5cU93rS2qbKe/TWjvqSGr9raj1fZcTd5vgmdl2lWJf+9jfNm5mZmZXMU4pmZmZmJXPCZWZmZlYyJ1xmZmZmJXPCZWZmZlYyJ1xmZmZmJXPCZWZmZlYyJ1xmZmZmJXPCZWZmZlay/wcqcgl7w9qKuwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df.plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true }, "source": [ "## Follow Github User\n", "Personal API token is required to perform the call: https://blog.github.com/2013-05-16-personal-api-tokens/" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%rest PUT user/following/gvanrossum" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Unfollow GitHub user" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%rest -q DELETE user/following/gvanrossum" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true }, "source": [ "## Search GitHub for \"pritn\" string in Python code" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://github.com/Ramieltje/octotelegram/blob/a5a15408ce586c6defdcbd54a6fae7195deb38dd/CS1301%20exercises/Hello%20world.py\n", "https://github.com/abdallah-ali-abdallah/Simply-Raspberry-Pi-Book/blob/6f273337b76ba8083abf74cd9652ad187896392c/Attachments/1-%20Python%20Examples%20(Source%20Codes)/4-1%20Motion%20Detector.py\n", "https://github.com/runei/IA/blob/77fa1e103162e67b7823ca1ea4dbed396afb3a88/trabDCG.py\n", "https://github.com/infixsrf/Trash/blob/4d0493cdad38e48f3f63a9ef95877fa52df7bd4c/programmer.py\n", "https://github.com/lxxcumt/learnpython/blob/b63b01b31c283962576cd0dc2d55ee97e9f48d13/ex25.py\n", "https://github.com/CHTramp/Git-/blob/90e8339a52a571c88d2b6e68e9475593c846517f/Python%E8%AF%BE%E7%A8%8B%E4%BB%A3%E7%A0%81/%E8%AF%BE%E7%A8%8B%E5%AD%A6%E4%B9%A0%E4%BB%A3%E7%A0%81/day6-%E5%87%BD%E6%95%B0%E6%93%8D%E4%BD%9C/%E5%87%BD%E6%95%B0%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86%E7%9A%84homework.py\n", "https://github.com/deepnighttwo/deepnighttwo/blob/baeee505d1d48a92adaff874552c0db08f32e6bb/myutilities/workpy/parseasindetailshead/parseasindetailsheadline.py\n", "https://github.com/MHM18/hm18/blob/cee7c3220c76c4046ee6ba23c3c8459fa21fc485/hmpro/zhangxiyang/import_file2.py\n", "https://github.com/Alex1996a/ML/blob/a5c79631d0d7058669949814c4300ee53224e6f6/RL/treaser_on_right.py\n", "https://github.com/MHM18/hm18/blob/cee7c3220c76c4046ee6ba23c3c8459fa21fc485/hmpro/zhangxiyang/test4.py\n", "https://github.com/MHM18/hm18/blob/cee7c3220c76c4046ee6ba23c3c8459fa21fc485/hmpro/zhangxiyang/test5.py\n", "https://github.com/MHM18/hm18/blob/cee7c3220c76c4046ee6ba23c3c8459fa21fc485/hmpro/zhangxiyang/dictionary/import_file/import_file5.py\n", "https://github.com/shenxiangzhuang/PythonDataAnalysis/blob/3c096c86836c479e2ac305d09c8fa9aa04303825/Ch2Data/DataIO/Mpymysql/Mbase.py\n", "https://github.com/ktomczuk/pythonbootcamp/blob/87d9be61b773d9b9b53e4087294765555a67f216/z3/2.py\n", "https://github.com/MHM18/hm18/blob/cee7c3220c76c4046ee6ba23c3c8459fa21fc485/hmpro/zhangxiyang/dictionary/import_file/import_file3.py\n", "https://github.com/jjnguy/PublicFun/blob/c4538a3aba8e0ed4e91286b408c47b2d079c69a1/coms362_Project/src/ID3Tag.py\n", "https://github.com/chenxizhan/docs/blob/310d8bbdd8163605e486bfcc69a9de28b60604ff/doc-root/python/samples/ch8.py\n", "https://github.com/ali225/Python-Examples-Source-Codes-With-Raspberry-PI-project/blob/bd1c5d060e360223770f072c40515e990390e532/4-1%20Motion%20Detector.py\n", "https://github.com/tyouei/python_deepi/blob/d0af7fe4ced51c433790dd4600a04beb1be72a92/base/python_cpitalize.py\n", "https://github.com/yucefsourani/taalam-kotob/blob/fb235e300f309d3ef574889ce767a1786aa39f10/raspberry_pi/Attachments/1-%20Python%20Examples%20(Source%20Codes)/4-1%20Motion%20Detector.py\n", "https://github.com/ncarkaci/Ag-ve-Bilgi-Guvenligi-Ders-Notlari/blob/bd074c1b93b3ea07058f371f607ad827245fb838/3.%20Ders%20Python/lecture6.py\n", "https://github.com/Subashini06/SUBA/blob/9ef1062d6529fb1ab8b2e7a017bcda2d5d64c661/printingnxtnum.py\n", "https://github.com/TakiyaHideto/python/blob/adae181a4bd9535c0c9a0277239f83ec065c2bc7/ele.me/CountScoreFresh.py\n", "https://github.com/svatozde/DDW-HW4/blob/8ec82b068a5ad69269a08da1b4ece5889615c2a2/HW4.py\n", "https://github.com/nolsen97/cs1113/blob/b1f1d397509871a74a26283239cb5fd9c0468c1e/hello.py\n", "https://github.com/ruuuu/massenger_gb/blob/efa4635d5c4995f0da3a461c77cc4ee3a413b2a9/First.py\n", "https://github.com/BowenH98/test/blob/fbf1f3f4c7d723aaa173a1ec550d595e48064d77/Assigment_1_final_version.py\n", "https://github.com/trossossp3/Python/blob/67fd60dd2d2cbde6b06d8befc6ea5896a17470b0/DMOJ/hello.py\n", "https://github.com/GIHUNKIM/impython/blob/9c72e7bcc458abb9ae315bb49268741882f17b05/PythonApplication17/PythonApplication17/PythonApplication17.py\n", "https://github.com/cbaikuntha/Safi1/blob/b8e92a2246256e497d394f3dedb364b528ebbd0c/f_Safi.py\n", "== 30 of total 672 ==\n" ] } ], "source": [ "r = %rest -q search/code?q=pritn+in:file+language:python\n", "data = r.json()\n", "urls = [i['html_url'] for i in data['items']]\n", "print('\\n'.join(urls))\n", "print(\"== {0} of total {1} ==\".format(len(urls), data['total_count']))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }