summaryrefslogtreecommitdiff
path: root/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb')
-rwxr-xr-xProgramming_in_C_using_ANSI_C/KamthaneChapter15.ipynb726
1 files changed, 726 insertions, 0 deletions
diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
index 92842ba6..5a99346e 100755
--- a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
+++ b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
@@ -1,3 +1,728 @@
+<<<<<<< HEAD
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:23cf65a359a2231e3abd5faae195b73ed4d5756e6083812ae87c387c1bb53f5a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 15: Additional in 'C'<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.1, Page number: 505<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Allocate memory to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#malloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many number : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 4 = 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 1\t2\t3\t4\t"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.2, Page number: 506<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Memory allocation to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many Number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#calloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many Number : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 58\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 98\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 45\t58\t98\t"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.3, Page number: 507<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reallocate memory \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "str1 = \"India\"\n",
+ "\n",
+ "#in python, value tagged method is used for data storage instead of memory tagging.\n",
+ "#no realloc function is in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"str = %s\"%(str1))\n",
+ "str1 = \"Hindustan\"\n",
+ "sys.stdout.write(\"\\nNow str = %s\"%(str1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "str = India\n",
+ "Now str = Hindustan"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.4, Page number: 508<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display unused memory \n",
+ "\n",
+ "import psutil\n",
+ "\n",
+ "psutil.phymem_usage()\n",
+ "\n",
+ "#There is no coreleft() function in python. phymem_usage function in the module psutil gives the \n",
+ "#status and usage of physical memory in python."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 6,
+ "text": [
+ "usage(total=3165270016L, used=987840512L, free=2177429504L, percent=31.2)"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.5, Page number: 510<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Linked list\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialziation\n",
+ "ch = 'y'\n",
+ "p = 0\n",
+ "q = []\n",
+ "\n",
+ "#Function Definitions\n",
+ "def gen_rate(m):\n",
+ " q.append(m)\n",
+ " \n",
+ "def show():\n",
+ " print q\n",
+ " \n",
+ "def addatstart(m):\n",
+ " q.insert(0,m)\n",
+ " \n",
+ "def append(m,po):\n",
+ " q.insert(po,m)\n",
+ "\n",
+ "def erase(d):\n",
+ " q.remove(d)\n",
+ " \n",
+ "def count():\n",
+ " print len(q)\n",
+ " \n",
+ "def descending():\n",
+ " q.sort(reverse=True)\n",
+ " \n",
+ "#Get choice\n",
+ "while ch == 'y':\n",
+ " n = int(raw_input(\"1. Generate\\n2. Add at starting\\n3. Append\\n4. Delete\\n5. Show\\n6.Count\\n7.Descending\\nEnter your choice: \"));\n",
+ " #There is no switch statement in python\n",
+ " if n == 1:\n",
+ " i = int(raw_input(\"How many node you want : \"))\n",
+ " for j in range(0,i):\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " gen_rate(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 2:\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " addatstart(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 3:\n",
+ " m = int(raw_input(\"Enter the element and position \"))\n",
+ " po = int(raw_input(\"Enter the element and position\"))\n",
+ " append(m,po)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 4:\n",
+ " d = int(raw_input(\"Enter the number for deletion : \"))\n",
+ " erase(d)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 5:\n",
+ " show()\n",
+ " else:\n",
+ " if n == 6:\n",
+ " count()\n",
+ " else:\n",
+ " if n == 7:\n",
+ " descending()\n",
+ " show()\n",
+ " else:\n",
+ " sys.stdout.write(\"Enter value between 1 to 7\")\n",
+ " \n",
+ " ch = raw_input(\"Do u wnat to continue (y/n)\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Generate\n",
+ "2. Add at starting\n",
+ "3. Append\n",
+ "4. Delete\n",
+ "5. Show\n",
+ "6.Count\n",
+ "7.Descending\n",
+ "Enter your choice: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many node you want : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[1, 5, 4, 7]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do u wnat to continue (y/n)n\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.6, Page number: 518<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw circle, line and arc using graphics function\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# matplotlib package is used for graphics\n",
+ "#Give proportionate sizes to draw\n",
+ "#draw circle\n",
+ "circle2=plt.Circle((.5,.5),.2,color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(circle2)\n",
+ "\n",
+ "\n",
+ "#draw line\n",
+ "figure()\n",
+ "pylab.plot([210,110],[150,150])\n",
+ "\n",
+ "#Draw ellipse\n",
+ "figure()\n",
+ "from matplotlib.patches import Ellipse\n",
+ "e = Ellipse(xy=(35, -50), width=10, height=5, linewidth=2.0, color='g')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(plt.axes().bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 5,
+ "text": [
+ "(-65, -35)"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x399d950>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x399d690>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nb941fx8Pm8j+DW82my1pwYIFl/xd50S0F198cfsrr7zyK5nGb6z+yTB+27Zt22U0GmuTkpJs8fHx\njUFBQfZHH330HVnGbqz+PfbYY4dkGLuxWmFh4c5XX311izfjd8dn9EII5YknnjiYkZFR/swzz/x+\ncP3atWuPvf322xsA4O23396Qn59/5E7XcifcrH+NjY0Jg8vvv//+jzMzMy/5p0LftLS0RA/+6etw\nOPQlJSV5JpPJKsv43ax/wz8RPl3Hb9euXc/V1tYm2my25Hffffen999//yfvvPPOY7KM3Vj9O3To\n0OOy/N/r6ekJ6urqCgUAu90efOLEidWZmZmXvBq/O/0qdPr06WWKoniysrLKhp/u1NraGrly5cqP\np/spXmP176OPPvrBY489digzM/PiwoULP1+3bt2RpqamOH/X6k27ePFipslkupCVlVWWmZl5cc+e\nPc8KMXCKlwzjd7P+yTJ+g81isSwfPCtFlrEb3k6ePGke7N+jjz76jgxjV11dnZyVlVWWlZVVNn/+\n/Mu7du3a5u34KUJMy8NzRER0m3iHKSIiyTHoiYgkx6AnIpIcg56ISHIMeiIiyTHoiYgk9/8B1dqr\nlLRzGX0AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2610890>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.7, Page number: 519<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw boxes and fill with different designs.\n",
+ "\n",
+ "%pylab\n",
+ "#matplotlib package is used for graphics\n",
+ "from matplotlib.patches import Rectangle\n",
+ "from matplotlib.collections import PatchCollection\n",
+ "\n",
+ "e = Rectangle(xy=(35, -50), width=10, height=5, linewidth=2.0, color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(ax.bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])\n",
+ "\n",
+ "#There are no different automatic fill styles. user should create the styles."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQwMA0hA49Hv27NGePXtUWlqqBx54QCdOnJAkdXd3q76+XuFwWKFQSG1tbcrLy8vagAEA6XF83/cX\nexAAgPmzIN+MTSQS2rFjhzZu3KhNmzbpF7/4hSTp+vXrikaj+sY3vqHvfOc7+vzzzxdiOFk32/wa\nGhoUiURSXx577733Fnmk6fvnP/+pbdu2qby8XCUlJTpw4IAkO2s32/wsrN2X3b17V67rqqqqSpKd\n9bvnv+dnaf3WrFmjzZs3y3Vdbd26VVL667cgZ/TJZFLJZFLl5eW6deuWHn/8cb3zzjt644039NBD\nD+mVV17RT37yE924cUNHjhyZ7+Fk3Wzz+81vfqPc3FzV1dUt9hAz8ve//13Lli3TnTt3tH37dv3s\nZz9TR0eHibWTZp7fH/7wBxNrd8/Pf/5z9fb26ubNm+ro6NArr7xiZv2k6fNrbGw0s36FhYXq7e3V\nihUrUvvSXb8FOaP/+te/rvLycknSgw8+qA0bNmhsbEwdHR167rnnJEnPPfec3nnnnYUYTtbNNj9J\nsnBlbNmyZZKkyclJ3b17V/n5+WbWTpp5fpKNtZOk0dFRvfvuu3r++edTc7K0fjPNz/d9M+snTf+z\nmO76LfgvNRsZGVFfX5+2bduma9euafXq1ZKk1atX69q1aws9nKy7N7+KigpJX/w+oLKyMu3du/e+\nfXv873//W+Xl5Vq9enXqEpWltZtpfpKNtZOkl156ST/96U8VCv3fX3dL6zfT/BzHMbN+juOosrJS\nW7Zs0a9+9StJ6a/fgob+1q1bevrpp/Xaa69N+wKV4zhyHGchh5N1t27d0ve//3299tprevDBB/XC\nCy9oeHhY58+f18MPP6yXX355sYcYSCgU0vnz5zU6Oqru7m6dOXNmyuP3+9r99/xisZiZtfv973+v\nVatWyXXdWc9w7+f1m21+VtZPkv74xz+qr69Pp0+f1i9/+Ut98MEHUx7/Kuu3YKH/17/+paefflq7\nd+9WdXW1pC/+S3Tvm7fj4+NatWrVQg0n6+7N79lnn03Nb9WqValFeP755xWPxxd5lJlZvny5vvvd\n76q3t9fU2t1zb349PT1m1u5Pf/qTOjo6VFhYqF27dun999/X7t27zazfTPP7wQ9+YGb9JOnhhx+W\n9MXvE/ve976neDye9votSOh939fevXtVUlKiF198MbX/ySef1JtvvilJevPNN1OBvN/MNr/x8fHU\n7VOnTqm0tHQxhpeRiYmJ1Nvef/zjH+rq6pLrumbWbrb5fflXf9yvaydJhw8fViKR0PDwsN5++219\n+9vf1ltvvWVm/Waa34kTJ0z83ZO++KDAzZs3JUm3b99WZ2enSktL01+/tL9LG8AHH3zgO47jl5WV\n+eXl5X55ebl/+vRp/29/+5u/c+dOf926dX40GvVv3LixEMPJupnm9+677/q7d+/2S0tL/c2bN/tP\nPfWUn0wmF3uoabtw4YLvuq5fVlbml5aW+kePHvV93zezdrPNz8La/bdYLOZXVVX5vm9n/b7szJkz\nqfk9++yzJtZvaGjILysr88vKyvyNGzf6hw8f9n0//fXjC1MAYBz/K0EAMI7QA4BxhB4AjCP0AGAc\noQcA4wg9ABhH6AHAOEIPAMb9B4rEH5DkLOd4AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7373590>"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.8, Page number: 520<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display text in different size, font, vertically and horizontally \n",
+ "\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from pylab import *\n",
+ "\n",
+ "#Tkinter package is used for graphics\n",
+ "# set limits so that it no longer looks on screen to be 45 degrees\n",
+ "xlim([-5,5])\n",
+ "\n",
+ "# Locations to plot text\n",
+ "l1 = array((1,1))\n",
+ "l2 = array((5,5))\n",
+ "\n",
+ "# Rotate angle\n",
+ "angle = 90\n",
+ "trans_angle = gca().transData.transform_angles(array((45,)),\n",
+ " l2.reshape((1,2)))[0]\n",
+ "\n",
+ "# Plot text\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 25)\\n\\n',fontsize=25,\n",
+ " rotation=0)\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 16)',fontsize=16,\n",
+ " rotation=0)\n",
+ "th1 = text(l1[0],l1[1],'Hello(Vertical Text)',fontsize=16,\n",
+ " rotation=angle)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAASvCAYAAAA39ApSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFNfj//+ZpRfpoNgAxUZUYpfYAMWKvZfYYmJMSGwx\n3YglxRiVqO8YjcYSeywotogCahKNiga7EUUURRFQqiDL7u8Pz3zf87m/XTqavPN8nHPP0Zk7c++U\nZfe1M3tH1uv1EgAAAADgvzQvugMAAAAA8HdDUAIAAAAAAUEJAAAAAAQEJQAAAAAQEJQAAAAAQEBQ\nAgAAAAABQQkAUCJr164dq9FodF5eXgmlmVdRHj586Org4PC4WrVq9588eWJVWe08L56enrc0Go1u\n3bp1Y150X/4JQkNDQzUajS4gICD6Rffl36Qi9vvzONfT09Od3n333SV169a9YWFhka/RaHQajUaX\nmZlpV1lt/h0o23n06NFOL7ovf3c9e/bcr9FodEeOHOlc0mUISgDwN6d8UNFoNLri6t66dctTqVtZ\nH0pkWTb6AL6i5pXXzJkz52ZmZtp99NFHX1pZWT1Rz4uJifEvzQcG5YPbuHHj1lRWf0uqMvfZ8xIe\nHt4vNDQ0dPfu3X0ru63S7C/lOJelzJ49e1ZlbocoLCxsyuzZs2fFxcX5Ps92S8rQfi/tca+sc72w\nsNCkc+fOR5YtWxZy69YtT0tLy7xq1ardr1at2v2S/N2sbKGhoaGzZ8+elZiY6FEZ65dlWf9P+DuS\nn59vERER0TskJGRZy5Ytzzg4ODw2MzMrcHV1fRgYGBi1bNmykKK+BFP/nS+qrF69+jVDy8+dO3em\nJEnStGnTFul0uhJlINOybSoA4HkrzRvhP+WNs6QuXrzYeNWqVRNq1Khxd9KkScuN1Svtdr/IfeTt\n7R1vbW2da29vn/Gi+lBRwsPD+61fv3702LFj1/bt23f3i+6Pws3NLeXp06fm4vTc3Fxr5UqDq6vr\nQxMTk0KxTpUqVbKeRx8VYWFhU27fvl3by8srwdfXN+55tl0UV1fXhw0aNLhWu3bt2+K8v8txj4yM\nDIqLi/M1Nzd/GhUVFfjKK6/8/qL6YsicOXM+kyRJCggIiPbw8EisyHU3aNDgmizLemtr69yKXG9l\nCA4O3qu+mmNmZlZQpUqVrPT0dKeYmBj/mJgY/yVLlrx74MCBHnXr1r1R1LqqVat239g8GxubHEPT\nW7RoEdunT589e/bs6bN69erXXn/99R+K6zNBCQD+B+n1evlF96EiLViwYIZOp9OMGzdujbm5+dMX\n3Z+KcPjw4S4vug//606dOtXa0PR169aNGTdu3BpZlvWnT59uZSgE4Jm33377P2+//fZ/XnQ/inLh\nwoUmkiRJTZs2Pf93C0mKyvpS5sqVK40qY72VQavVmnp6et4aN27cmj59+uxRvhB4/Pixww8//PD6\n7NmzZ8XHx3v36NHjwIULF5pYWFjkG1qPLMv6e/fuVS9LHyZNmrR8z549fRYsWDCjJEGJW+8AAH9r\n6enpTtu2bRsiy7J+9OjR6190f2DcPyWg/537+XfumzEvus+5ubnWkiRJtra22S+yH8V50fvpRZs3\nb96n8fHx3jNnzpyrvmrq4ODweMaMGQuUW+bi4+O9t2/fPqgy+hAUFBTp7u6eHB8f7x0ZGRlUXH2C\nEgD8C128eLHxG2+8sbJevXrXra2tc21tbbObNm16/tNPP52XlpbmXBlt3rhxo+6kSZOW16tX77qV\nldUTOzu7zObNm5+dO3fuzKysrCrGllu/fv3o/Px8ixYtWsR6e3vHV0bfDDl37lyz0aNHr/fw8Ei0\ntLTMc3R0fNSuXbvfvv3228mGbueSpP//oBbR0dEB/fr1C3d3d082MTEpVP8mytgP3P39/WNKch++\nsYEzYmJi/AcPHvxzjRo17lpYWOS7uLikdunS5fDatWvHGrsvX/zB/pEjRzr36tVrn6ur60NLS8s8\nHx+fy3PmzPksPz/fQmxLo9Ho1q9fP1qSnl2pEfup/s3Y/fv3qy1duvSdvn377m7UqNEVe3v7DCsr\nqyfe3t7xr7/++g+XL1/2KdnRqXxZWVlVvvrqqw/9/PxOODk5pVtYWOTXqlXrzvDhwzefPHmyrVh/\n69atQ5VtDg8P72donX/++efLlpaWeRqNRvfll19+JEn/3fe3b9+uLUmSNG7cuDXiPixJf2NjY1to\nNBqdmZlZgaEBDCZOnLhCWd++fft6ifM3b948XKPR6MRbwwwN5lDa46729OlT8wULFszw9fWNs7Gx\nybG3t8/o3LnzkV9++aVbSbZTbezYsWvVvycTf8Mi/s4sLy/PMiwsbMorr7zyu6Oj4yNLS8s8Dw+P\nxDFjxqwr6rdhymt1/fr1o0vTf6V/kvQsJAUEBEQX9RpOSkqqOXXq1MUvvfTSJRsbmxwLC4v86tWr\n32vRokXstGnTFp05c6al2Iax/V3S3+cZG6SjMt4j2rVr91tR5/OQIUO2KWHX0LZWBI1GoxsyZMg2\nSZKklStXvlHsAnq9nkKhUCh/4zJr1qxQWZZ1Go2msLi6t27d8pBlWSfLsm7dunWjDdWZP3/++xqN\nplBZp62tbZalpeUTZbnq1avfPXfu3MvicmvWrBkry7LOy8vrZmnm6fV6aevWrUMsLCzylDbt7e0f\nW1lZ5Spt1q5dO/HKlSsNDS3bo0eP/bIs66ZOnbrI2HZHR0f7K+s+evRox+L2k4eHxy1ZlnXjxo37\n0dD8RYsWTVX6ptFoCh0dHdOV/suyrPP19f0zOTm5WlH7ISwsbLK4vLo9pQ/icRowYMAOd3f3e8aK\ncqwM7eupU6cuUvpoYmKidXJySjMzM3uqTOvcufPhrKwsW2PnmL+/f/TXX389Q728iYmJVlk+MDDw\nSGFhoUZZ7vfff/erVq1asnIsrayscsX+njhxoq1Sf8yYMWuVdZmbm+e7uLg8NDc3z1fOR0tLyyc7\nduwYUNTrICAgIKq8rynlOGk0msLExMTa4vxz5869XLNmzTtKX83MzJ7a29s/Vr9uvvzyyw/F5V57\n7bVVsizrnJ2dU+/cuVNTPS87O9umQYMGV5XjoEz/5ptvplerVi1Z2c8ODg6PxH1Ykm3S6XSyo6Nj\nukajKdyzZ09vcb63t/d1ZXumTZu2UJw/YcKEH2RZ1o0dO3ZNcfu9tMddOdeXLVv2dps2bU7Ksqyz\nsLDIs7Ozy1Dv0x9//HFcaY7j5MmTw9zd3e/Z2tpmKeeUug8LFy6cptRNSkqq0bhx4wvKPrCwsMhT\n9pdyvi9dujTE2N8LjUZTWNr+K/1T2nR2dk5V969169Z/KHX//PNPX0dHx3T1Oefs7Jyqfv2Jx0av\n10vG/u61atXqVFF/R5S/C4ZeT2V9j6iI4uTklCbLsu6dd95ZIs5T/50vTxvbt28fKMuyztHRMV2n\n08lF1a3wDaRQKBRKxZbSBKWEhATPooLSqlWrXpNlWWdnZ5fx5ZdffvjgwQM3vf7Zh6zY2NjmnTt3\nPizLsq5WrVq3s7OzbdTLljUoxcbGNlfelDt06HDs4sWLLyltRkREBFevXv2uLMs6b2/v62KbWq3W\nxM7OLkOWZd2WLVuGGttu9RtoTExMp+L2U1FBKSIiIljZh/37999569YtD71eLz19+tTsp59+GqX0\np127dr+qQ4N6P1hZWeWampoWjB8/fnVSUlINvV4vFRYWam7cuFFH7IOxQGuoxMbGNrexscmWZVkX\nEhKyVD1v6dKlIUq/33zzzeXKsc3JybEOCwubrByDYcOGbTZ2jjk6OqabmJhoP/nkk3lpaWlOer1e\nyszMrKLMl2VZZ+jD7NixY9cUFTyVMm/evE8WLlw47dKlSz7qfXfp0iWfUaNG/STLss7W1jbr3r17\n7sb6WNlB6d69e+5ubm4PZFnWDRo06OezZ88202q1Jnq9XkpJSXH97LPPZiv7Mjw8vK962ZycHOtG\njRpdlmVZ16lTpxj1No4bN+5HWZZ1rq6uKYa2ryzng1j69u0bLsuybsqUKYvV0+/cuVNTlmWdvb39\nY1mWdS+//PI5cdm6devGG2q/qP1e0uOubJuTk1NarVq1bu/Zs6e3sk+vXbtW38/P73dZlnVVqlTJ\nzMjIsCvtdoeGhs4q6tzQarUmSsBxdHRM37Rp0/CCggJTvV4v3bx506t37957lPPhwIED3Su6/yX5\nEkf529uyZcvTf/zxR2tlekFBgen169e9Fy5cOO2bb76ZXpZ1i2X//v09lAAmrrM87xHlLefPn2+i\n/J1ZuXLl6+J85e+8LMs6Pz+/3+3s7DIsLCzyataseWfgwIHbd+/e3ack7SQlJdVQ9ltsbGzzoupW\n2MZRKBQKpXKK+kNq1apV7xdVXFxcHhoLSpmZmVUcHBweaTSawkOHDgUZakur1Zq0bNnytCzLurCw\nsMnqeWUNSt27dz8gy7Kufv361548eWIpzj937tzLygdP8U378uXLjZQ3NCVgGSrqN1BHR8f04vaT\n8iHB0Ac89QddQ982qoPU9u3bBxraD8qH7KKOa2k/GCclJdVQQmXXrl1/UX8Iz83NtVK+iR05cuQG\nQ8urg5T44UB9js2ePfszQ8sPHDhwuyzLuqCgoEPiPOVKUXEfmIsrwcHBEbIs6+bNm/eJsddBZQel\n8ePHr5ZlWTdq1KifjC2/ePHiKcYCR1xcXFPl23dlX27evHmY0l5ERERwRZwPhsq33377rizLuqZN\nm8app69bt260LMu6CRMm/FCzZs07Go2mUAnCer1eSkxMrK307/bt27VKut9LetyVbbOyssq9du1a\nfXH+w4cPXZR9tnHjxhGl3e7izo0tW7YMVbYvMjKyizhfq9WatG3b9oQsy7omTZqcr+j+lyTMWFlZ\n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\njV11ft7vEeHh4f2GDh26tbCw0GTAgAE7t2zZMqykw+EbYmNjk6NcCUxISPAqqq4yxLl4NVhEUAKA\nfwnl1pCKul2iJKpWrfpA+fedO3dqGaun3GplamqqVd9ip/RZkiRJ/ZuLyqL0NzU11cXYs5Ik6b/9\nLe5Ntjz279/fc+rUqYslSZI+/fTTeSNGjNhkrK7S7+JuWXse/TZm+/btg3Q6ncbHx+fyli1bhrVo\n0SJWvPUnOTnZ/Xn3S019vpXndXL27Nnmyq1Eyq1CU6dOXXz16tWG5e5kMZSwc/369Xp3796tIQYl\n5d96vV6OiooKVObXr1//L/X2/y9Rzvei/gYpoV1d/0Vo167db1999dWHx48f7/Do0SPH3bt3923S\npMmFJ0+eWI0fP/7H4m4VE61YsWLi4sWLp8qyrF++fPmkom4pfp7vEbt27eo/ZMiQbVqt1rR///67\nlOeQVXa7CuVYq9+jDCEoAcC/RLt27X6TpGcf4u7fv1/tebTZvHnzs7Is6/V6vXzkyJHOxuodPny4\niyQ9+1CpvhpTv379v+zs7DL1er18/vz5ppXd35YtW56RpGdXAIw9MFPd31atWp2ujH7ExcX5Dh06\ndKtOp9MMHTp0q/jgTJHS76SkpJrXr1+vZ6hOYWGhiXKVoaL7rX6oprE6yodUQ78xUCj79UVp1arV\naTMzswK9Xi9HRET0Lss6cnJybIYPH765oKDArEuXLof/+OOPNq1btz715MkTq2HDhm0xFsBLsg9L\nokGDBteU35dERUUFxsTE+JuYmBT6+/vHKHWU0BQVFRVYntvuKqrPlU0534v6GxQTE+NfWFhoIsuy\nvrJe16XdTxYWFvm9e/eO2Llz5wBJkqT8/HyLX3/9tX1Jlz906FDXkJCQZZL07KqS+oHXhjyv94id\nO3cOGDp06FYlJG3btm1IRVyFz87OtlUG4jD2W11Jeva3KCMjw16WZb0yMI8xBCUA+JcYPHjwzw4O\nDo+fPn1qPm3atEVF1dXpdJqMjAz78rZpb2+f0b1794OSJEkLFiyYYeie9ri4ON8dO3YMlCRJEkcr\nkmVZr9zadPLkybbl7U9xmjRpcsHHx+eyXq+X582b96mh0fH279/f89SpU60N9bci3Lt3r3pwcPDe\nnJwcm7Zt255ct27dmOKWCQoKinR2dk7T6/WysVHvVqxYMTE5OdldlmV9Rffbzs4uU5KejXJorI7y\n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\nZV3Xjz/+OD49Pd1p0qRJy8vbh/LYvXt3Xzs7u8yKXGdpPHr0yHHOnDmf1a5d+3azZs3OlWUdsizr\ni9ovy5cvn5SVlVVFkiRJr9fLc+fOnXnmzJmWe/bs6aOuV61atftlaV+tIranOK+//voPPXv23F/S\nNst6zmi1WtORI0dubN++/a/Lly+fZG5u/tTW1ja7PH03JCwsbErHjh2P9e/ff1dplmvRokXsyZMn\n2zZq1OhKRffJkNTUVJc1a9aMa9GiRWzXrl0P7dy5c4CxfXvmzJmWgYGBUYGBgVGrV69+zd7ePuOv\nv/6qn5OTY6PUqVat2v233nrru6lTpy4+ceKE3/PYBqCyEZQA4F9Kr9fLFbWeBQsWzBg/fvyP5ubm\nTytinaX19OlTc3Nz86e+vr5xL6J9UUXtW0PED9IuLi6pZmZmBa1btz5VWW1W5vbUqFHjbo0aNe5W\ndpt3796tkZ2dbTt48OCf27dv/2tFrltUlr5XqVIlqzKPocjT0/NWWlqasyRJ0uHDh7vs3LlzgKF6\nOp1OM3r06PVBQUGRO3bsGKhM79Sp01Gx7qRJk5Z/88037x07dqxjx44dj1Ve74Hng1vvAOB/TEJC\ngtfIkSM3urm5pVhaWuY1a9bsXHh4eL+yrOvgwYPd/fz8TlhbW+c6ODg87t+//66//vqrvrpOTEyM\nf3x8vPfIkSM3lrfvp06dat2lS5fDVapUybK1tc3u0qXL4dOnT7dS1xk7duzaWrVq3Tlx4oTfK6+8\n8ru1tXXuBx98MF+S/u9ta7du3fI0dltaQEBAtLK+zMxMu5CQkGXVq1e/Z2lpmdewYcOrYWFhU8Rt\n1Gg0uoiIiN4hISHLXF1dH7q6uj589dVXf8rIyLBX2qtTp85NSXp2lURpa/369aMlSZIOHTrUtWfP\nnvurV69+z8bGJqdJkyYXFi1aNE2n01X4e3Fubq71Bx98MN/LyyvBwsIiv06dOje/+OKLj5UP8Dk5\nOTYNGza82qZNmz+0Wu3/+9L00KFDXTUajW758uWTEhMTPYraHtGOHTsGajQa3d27d2so06ZPn75Q\no9HoVq9e/ZoyLTIyMkij0eiuXLnSSJL+7613xe1DSXoWQg4fPtylefPmZ5X9WNz5HRoaGurl5ZUg\nSZL02muvrVafA3q9Xl68ePHUBg0aXLOwsMivXr36vXfeeWepctVOodFodDNnzpy7ZMmSd728vBLs\n7Owy/f39Yy5fvuyj1PH09Lx1+/bt2hs3bhyp9F25FfSvv/6q379//11Vq1Z9YGVl9cTDwyNxyJAh\n2woLC00k6f9/652yXwyVdevWjVHarMjXuyExMTH+V69ebTht2rRFxdX18vJKaNOmzR8rV658o6La\nB14kghIA/ANotVpTsSgfsNTu3LlTq02bNn9cuHChSVhY2JSIiIjezZs3Pztw4MAdERERvUvT5sGD\nB7v36tVrn52dXea2bduGLF++fNLFixcbt2/f/td79+5VV9dzdXV9WL9+/b/K0/fz58837dSp09GM\njAz7devWjVm/fv3ozMxMu06dOh09f/58U3XdjIwM++HDh28eOXLkxoMHD3YfMWLEJkn6v7etVa9e\n/d7JkyfbqsuqVasmaDQanY+Pz2VJevZtea9evfatXbt27IwZMxbs3bs3uHv37genTZu26JNPPvlc\n7OPkyZO/NTExKdy8efPwWbNmzd6xY8fAyZMnf6u0p3wr//HHH3+htKncVpaQkOAVGBgYtWrVqgn7\n9+/vOWbMmHWhoaGhhtopD61Wa9qtW7dfVq9e/drUqVMXHzx4sPuECRNWzZ07d+aMGTMWSJIk2djY\n5GzZsmVYXFyc78yZM+dKkiQ9ePCg6ujRo9f37dt396RJk5a7u7snF7U9In9//xhZlvVRUVGByrSo\nqKhAKyurJ+K0atWq3VdfGVMfM0Nt9urVa59S98aNG3WnTJkS9t57732zc+fOAe7u7smDBw/++caN\nG3WN7ZPXX3/9h59//nmwJEnSzJkz5548ebLt8uXLJ0mSJH3yySefT58+fWG3bt1+2bt3b/D777//\n9dq1a8f26tVrn3hlaMOGDaMOHDjQY+nSpe+sWbNm3O3bt2v37dt3t3I+h4eH96tWrdr97t27H1T6\nruzfXr167UtOTnb//vvv3zx06FDXr7766kNLS8s8Y0H59ddf/0F97p44ccJvwIABO01NTbUNGjS4\nJkkV+3o35tdff20vSZL05MkTq7Zt2540Nzd/WrVq1QeTJ0/+Ni8vz1Ks3759+18jIyODKqJt4IXT\n6/UUCoVC+ZuWNWvWjJVlWVdUmT179mdK/fHjx692c3N7kJ6e7qheT1BQ0KGXX375nPL/WbNmhcqy\nrFPXEdfVokWLM/Xr179WWFioUaYlJCR4mpmZPZ02bdpCZVpAQEBUQEBAVHn7PnDgwO2Ojo7pGRkZ\n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\nICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAA\nICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAA\nACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAA\nAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoA\nAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhK\nAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgI\nSgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAI\nCEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAA\nCAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAA\nAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAA\nAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIA\nAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoIS\nAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKC\nEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAAC\nghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAA\nAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAA\nAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAA\nAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQA\nAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAE\nAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICg\nBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICA\noAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACA\ngKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAA\ngICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAA\nAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEA\nAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgB\nAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAo\nAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAg\nKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAg\nICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAA\nICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAA\nACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAA\nAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoA\nAF1G7TEAACAASURBVAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAA\nAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQA\nAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAE\nAAAAAAKCEgAAAAAICEoAAAAAICAo4f9j7+6jvKzrxP+/PjgQfVPS0FBnJgcEYdDEGwRvSseKuFkl\nN03RVBJTjvvTtFxjv7Wl2Gqi25ZGW7TeBGuR/soVNRzvJ7eMO1NMRRsMdAYXDBGDUgaG+f3RD4VX\nOFrKXJ/l83ic4zl85noLr65zPPH8XNf1vgAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKU\nAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACA\nRCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFK\nAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABA\nIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUA\nAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACAR\nSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAA\nQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAgl\nAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAg\nEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIA\nAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAI\nJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAA\nIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQS\nAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQ\nCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkA\nACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiE\nEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAA\nkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJ\nAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABI\nhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQA\nAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRC\nCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAA\nSIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEE\nAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAk\nQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIA\nAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKh\nBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAA\nJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVAC\nAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAAS\noQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEA\nACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQ\nAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAA\nEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgB\nAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJ\nUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAA\nABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQo\nAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAA\niVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQA\nAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBE\nKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAA\nAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKU\nAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACA\nRCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFK\nAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABA\nIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUA\nAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEBSVfQAwOsWL17c/6677hq5YMGCocuXL989ImL3\n3XdfPnTo0AUjRoy4Z5999vlt0TMCAFSCUkdHR9EzQMW76667Rk6ZMmVSU1NTQ7du3TbW1dUt7d27\n94sREStXrtz12Wef3Wvjxo3djjzyyAcnTZo0ZfTo0XcWPTMAwPbMrXdQsNGjR995/PHH/7S2trbl\nzjvvHL1q1ar3LV68uP/cuXOHz507d/gzzzyz90svvbTLnXfeOXqvvfZ69sQTT7xZKAEAbFtCCQpW\nX1+/aMmSJX2nT58+fuTIkXf16tXrD3nNTjvttGbkyJF3TZ8+ffySJUv67rvvvk8UMSsAQKVw6x0A\nAEDiihKUkUsvvfSrzz///J5bO/Y///M/e1x66aVf7eqZAAAqkStKUEa6deu2cc6cOYcOGzZsXj62\nYMGCocOGDZu3ceNGX3AAAGxjnf6Fa8KECdf36dNnxQc/+MHfvNGaz33uc9cMGDCgeciQIQsfeeSR\nA9/5EYGIiNWrV+/8rne9a13RcwAAVIJO36N0xhln3HDeeed9+/TTT5+xteOzZ88es3jx4v7Nzc0D\n5s6dO/ycc8757pw5cw7dNqPC9umBBx44+oEHHji6o6OjFBExbdq0iXfccccxm6955ZVX3n3HHXcc\nYxMHAICu0WkoffjDH/7vpUuX1r3R8dtuu23s+PHjp0dEDB8+fO7q1at3XrFiRZ8+ffqseIfnhO3W\nz3/+86P+5V/+5Z83fb7hhhvOyGt69OjRNnjw4Cevueaaz3XtdAAAlanTUHozy5Ytq66trW3Z9Lmm\npqa1tbW1JodSqVTyIBS8DevWrXvXI488cuARRxzxy6JnoWttutIIAHStt/1QeP4/8TeKoo6OjkL/\nufjiiwufoVz+cS6cC+fif8e5AACK87ZCqbq6ellLS0vtps+tra011dXVy97+WFCZJk2aFBs2bNjq\nsd///vdxzDHHbPUYAADvrLcVSmPHjr1txowZp0dEzJkz59Cdd955teeT4G93zTXXxOGHHx7PPPPM\nFj+/++67Y//9949f//rXBU0GAFBZOg2lk08+eebhhx/+0NNPPz2wtra25frrr58wbdq0idOmTZsY\nETFmzJjZ/fr1+13//v0XT5w4cdq///u//0PXjP3Xa2hoKHqEsuFcvK7czsW8efPij3/8Yxx00EEx\nffr0aGtriy984QsxevToGDp0aDz22GPb7M8ut3NRJOcCAOiSF86WSqUO99vDW/PKK6/E+eefH9de\ne2306dMnVq9eHVdeeWWcd955RY9GFyuVStFhMwcAKMTb3swBeGe9+93vjsMPPzx69OgRK1asiAED\nBsSxxx5b9FgAABVFKEEZ+cMf/hAnn3xyTJgwIc4444z45S9/GevXr48DDjggfvSjHxU9HgBAxXDr\nHZSRvn37xpo1a+Laa6+N4447LiIi/vSnP8X5558f1113XZx66qkxY8aMgqekq7j1DgCKI5SgjDQ0\nNMQPf/jDqK6u/otjP/3pT+Pss8+OF198sYDJKIJQAoDiCCUoIx0dHVEqvfHfi1taWqK2tvYNj7N9\nEUoAUJyqogcAXrcpkhYuXBgPPvhgrFq1Ks4+++zYY489orm5Ofr06VPwhAAAlcEVJSgj69ati09/\n+tNxyy23RMSfw2n+/Plx0EEHxSc/+cnYZ5994oorrih4SrqKK0oAUBy73kEZ+fKXvxz33Xdf3Hjj\n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\n4G+2fv36+Kd/+qf41re+FRER7e3tBU9EV3FFCQCK0+l7lObNmzesf//+i+vq6pZGRIwbN+7Hs2bN\n+sTmofSjH/3olOOPP/6nNTU1rREROZKAv01zc3PMmDEjbrzxxnj22WejV69eceKJJxY9FgBAReg0\nlJYtW1ZdW1vbsulzTU1N69y5c4dvvqa5uXnA+vXrux999NEPrFmzZqfzzz//6tNOO+0/8+91ySWX\nvPbrhoaGaGhoeNvDw/Zm1apV8eMf/zhmzJgR8+bNi27dusWIESPi61//ehx33HHRs2fPokdkG2pq\naoqmpqaixwAA4k1CqVQqven9cuvXr+/+61//+qD77rvvo3/605/+z2GHHfarQw89dM6AAQOaN1+3\neSgBr2tra4s77rgjZsyYEXfeeWesX78+Bg8eHFOmTIlTTz019thjj6JHpIvkL5EmT55c3DAAUOE6\nDaXq6uplLS0ttZs+t7S01G66xW6T2trall133XXlu9/97lfe/e53v3LkkUc+uHDhwiE5lICt2333\n3WP16tXRu3fvmDhxYowfPz4OPvjgoscCAKhone56N3To0AXNzc0Dli5dWtfW1tbjpptuOmns2LG3\nbb7mE5/4xKxf/OIXH2pvb9/hT3/60/+ZO3fu8MGDBz+5bceG7ceRRx4Zt9xySzz//PNxzTXXiCQA\ngDLQ6RWlqqqqDVOnTj135MiRd7W3t+9w5plnXldfX79o2rRpEyMiJk6cOG3QoEFPjRo1qnH//fd/\nrFu3bhvPOuus/xBK8NbdeuutRY8AAEDihbNQsKuvvjrOOeec6NGjx1tav27duvje974X559//jae\njKLZHhwAiiOUoGBDhgyJVatWxYQJE+LTn/507LPPPltd9+STT8bMmTPjhhtuiN69e8fChQu7eFK6\nmlACgOIIJShYe3t7XH/99XHVVVfF4sWLY7fddot99903evfuHRERK1eujN/85jexatWq6NevX1x0\n0UVx1llnRbdunT5iyHZAKAFAcYQSlImOjo5oamqKxsbGmD9/fqxYsSJKpVL06dMnhg4dGh//+Mfj\nox/9aNFj0oWEEgAURygBlCmhBADFce8OAABAIpSgzDz//PNx4YUXxtChQ6Nfv35xyCGHxEUXXRTL\nly8vejQAgIrh1jsoI7/97W/jQx/6UKxevTqOOOKI6NOnTyxfvjweeuih2GWXXeIXv/hFDBgwoOgx\n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\njBkze2vHNg8lAP5S/hJp8uTJxQ0DABWu01AqlUpv+X65Bx544Ojrr79+wi9/+csj3v5YAAAAxek0\nlKqrq5e1tLTUbvrc0tJSW1NT05rXPfbYY/ufddZZ/9HY2Dhql112eWlbDAoAANBVOt31bujQoQua\nm5sHLF26tK6tra3HTTfddNLYsWNv23zNc88994FPfvKTt9x4442n9u/ff/G2HRcAAGDb6/SKUlVV\n1YapU6eeO3LkyLva29t3OPPMM6+rr69fNG3atIkRERMnTpx26aWXfvWll17a5ZxzzvluRET37t3X\nz5s3b1hXDA8AALAtdLo9+Dv2h9geHOCvZntwACjOm75wFgAAoNIIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAICkYkKpqamp6BHKhnPx\nOufidc7F65wLAOBNQ6mxsXHUoEGDnhowYEDzlClTJm1tzec+97lrBgwY0DxkyJCFjzzyyIHv/Jhv\nn7/4vM65eJ1z8Trn4nXOBQDQaSi1t7fvcO65505tbGwc9eSTTw6eOXPmyYsWLarffM3s2bPHLF68\nuH9zc/OA73//+2efc8453922IwMAAGxbnYbSvHnzhvXv339xXV3d0u7du68fN27cj2fNmvWJzdfc\ndtttY8ePHz89ImL48OFzV69evfOKFSv6bMuhAQAAtqWqzg4uW7asura2tmXT55qamta5c+cOf7M1\nra2tNX369Fmx+bpSqfROzfw3mzx5ctEjlA3n4nXOxeuci9c5FwBQ2ToNpVKp1PFWfpOOjo4tKij/\ne/k4AABAOev01rvq6uplLS0ttZs+t7S01NbU1LR2tqa1tbWmurp62Ts/KgAAQNfoNJSGDh26oLm5\necDSpUvr2traetx0000njR079rbN14wdO/a2GTNmnB4RMWfOnEN33nnn1fm2OwAAgP9NOr31rqqq\nasPUqVPPHTly5F3t7e07nHnmmdfV19cvmjZt2sSIiIkTJ04bM2bM7NmzZ4/p37//4ve85z1/vOGG\nG87omtEBAAC2jVJHx1t6DGm78o1vfOPCiy666KqVK1fu+r73vW9V0fMU5aKLLrrqjjvuOKZHjx5t\ne++99zM33HDDGe9973tfLnqurtLY2Djqggsu+FZ7e/sOn/3sZ6+dNGnSlKJnKkpLS0vt6aefPuOF\nF154f6lU6jj77LO//7nPfe6aoucqSnt7+w5Dhw5dUFNT03r77bcfW/Q8AEDXe9MXzm5vWlpaau+5\n554Re+2117NFz1K0j3/843c/8cQT+y5cuHDIPvvs89uvf/3r/7fombrKW3lHWCXp3r37+m9+85uf\nf+KJJ/adM2fOod/5znf+n0o+H1dfffX5gwcPfvKtbmgDAGx/Ki6UvvCFL/zblVde+cWi5ygHI0aM\nuKdbt24bI/78DqzW1taaomfqKm/lHWGVZPfdd19+wAEHPBoRseOOO66tr69f9Pzzz+9Z9FxFaG1t\nrZk9e/aYz372s9fasRMAKldFhdKsWbM+UVNT07r//vs/VvQs5eb666+fMGbMmNlFz9FVtvb+r2XL\nllUXOVO5WLp0ad0jjzxy4PDhw+cWPUsRPv/5z3/zqquuumjTlwgAQGXqdDOH/41GjBhxz/Lly3fP\nP7/sssu+/PWvf/3/3n333R/f9LNK+Lb4jc7H5Zdf/qVjjz329og/n5sePXq0nXLKKT/q+gmL4Zaq\nrVu7du2OJ5xwwk+uvvrq83fccce1Rc/T1e64445j3v/+979w4IEHPtLU1NRQ9DwAQHG2u1C65557\nRmzt548//vh+S5Ys6TtkyJCFEX++vebggw9+eN68ecPe//73v9C1U3adNzofm/zgBz/4zOzZs8fc\nd999H+2qmcrBW3lHWKVZv3599+OPP/6np5566o3HHXfcrUXPU4SHHnro8Ntuu23s7Nmzx7z66qs9\n//CHP/Q6/fTTZ2x6BQIAUDkqcte7iIi+ffsuefjhhw+u5F3vGhsbR1144YXf+PnPf37UrrvuurLo\nebrShg0bqgYOHPj0fffd99E999zz+WHDhs2bOXPmyfX19YuKnq0IHR0dpfHjx0/v3bv3i9/85jc/\nX/Q85eDnP//5Uf/6r//6j3a9A4DKVFHPKG3OrVcR55133rfXrl2744gRI+458MADH/mHf/iH/6+9\nO7RhIIYBKJp5wowPlXWDkM51E4R0g7Cg4GOdp7SKdLQBeW8CI0tfBj5Xz/Qvvz/Ccs6fUsp710hK\nKaUxxlFrffXeHxFxRcTVWnuunms1ewIA9rXtRQkAAODOthclAACAO0IJAABgIpQAAAAmQgkAAGAi\nlAAAACZCCQAAYPIF5fe6JjownXYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x3f2e190>"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.9, Page number: 521<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display status of mouse button pressed \n",
+ "\n",
+ "from Tkinter import *\n",
+ "from tkFileDialog import askopenfilename\n",
+ "import Image, ImageTk\n",
+ "\n",
+ "if __name__ == \"__main__\":\n",
+ " root = Tk()\n",
+ "\n",
+ " #setting up a tkinter canvas with scrollbars\n",
+ " frame = Frame(root, bd=2, relief=SUNKEN)\n",
+ " frame.grid_rowconfigure(0, weight=1)\n",
+ " frame.grid_columnconfigure(0, weight=1)\n",
+ " xscroll = Scrollbar(frame, orient=HORIZONTAL)\n",
+ " xscroll.grid(row=1, column=0, sticky=E+W)\n",
+ " yscroll = Scrollbar(frame)\n",
+ " yscroll.grid(row=0, column=1, sticky=N+S)\n",
+ " canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)\n",
+ " canvas.grid(row=0, column=0, sticky=N+S+E+W)\n",
+ " xscroll.config(command=canvas.xview)\n",
+ " yscroll.config(command=canvas.yview)\n",
+ " frame.pack(fill=BOTH,expand=1)\n",
+ "\n",
+ " \n",
+ "\n",
+ " #function to be called when mouse is clicked\n",
+ " def printcoords(event):\n",
+ " #outputting x and y coords to console\n",
+ " print \"Mouse Button pressed\"\n",
+ " print (event.x,event.y)\n",
+ " #mouseclick event\n",
+ " canvas.bind(\"<Button 1>\",printcoords)\n",
+ "\n",
+ " root.mainloop()\n",
+ " \n",
+ "import win32api, win32con\n",
+ "\n",
+ "print \"Current cursor position at \" \n",
+ "print win32api.GetCursorPos()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mouse Button pressed\n",
+ "(207, 115)\n",
+ "Current cursor position at "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(502, 188)\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.10, Page number: 523<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change mouse cursor.\n",
+ "\n",
+ "#Placing the cursor on top of the circle button will change the pointer to circle\n",
+ "# and plus button to plus symbol\n",
+ "\n",
+ "from Tkinter import *\n",
+ "import Tkinter\n",
+ "\n",
+ "top = Tkinter.Tk()\n",
+ "\n",
+ "B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
+ " cursor=\"circle\")\n",
+ "B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
+ " cursor=\"plus\")\n",
+ "B1.pack()\n",
+ "B2.pack()\n",
+ "top.mainloop()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+=======
{
"metadata": {
"name": ""
@@ -751,4 +1476,5 @@
"metadata": {}
}
]
+>>>>>>> 0ee873700378b995b441b1be6652178f741aea5b
} \ No newline at end of file