Skip to content

Instantly share code, notes, and snippets.

@adityam
Last active August 29, 2015 14:16
Show Gist options
  • Save adityam/39ed0fff4ad7bc7d2e09 to your computer and use it in GitHub Desktop.
Save adityam/39ed0fff4ad7bc7d2e09 to your computer and use it in GitHub Desktop.
Best Response Dynamics
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Modeling\n",
"\n",
"A bimatrix game may be modeled by a pair of matrices $M_1$ and $M_2$, where $M_i$ denotes the payoff of player $i$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Best response function\n",
"\n",
"Given a bimatrix game $(M_1, M_2)$, and an action $(a_1, a_2)$, the best response function $\\mathcal B(a_1, a_2)$ return an action profile $(b_1, b_2)$, where $b_1$ is the best response of player 1 to action $a_2$ (and, similarly, $b_2$ is the best response of player 2 to action $a_1$)."
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"bestResponse (generic function with 2 methods)"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function bestResponse(M1, M2, a1, a2)\n",
" b1 :: Int = indmax(M1[:,a2])\n",
" b2 :: Int = indmax(M2[a1,:])\n",
" \n",
" return (b1, b2)\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Best response dynamics\n",
"\n",
"Given a bimatrix game $(M_1, M_2)$ and an initial response $(a_1, a_2)$, the best response dynamics returns a sequence of action profile $(A_1, A_2)$, where $(A_1^{1}, A_2^{1}) = (a_1, a_2)$ and for $n > 1$, $(A_1^{n}, A_2^n) = \\mathcal B(A_1^{n-1}, A_2^{n-1})$"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"bestResponse (generic function with 2 methods)"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function bestResponse(M1, M2, a1, a2, N)\n",
" A1 = zeros(Int, N) \n",
" A2 = zeros(Int, N)\n",
" \n",
" BR(α1, α2) = bestResponse(M1, M2, α1, α2)\n",
" \n",
" (A1[1], A2[1]) = (a1, a2)\n",
" \n",
" for n in 2:N\n",
" (A1[n], A2[n]) = BR(A1[n-1], A2[n-1])\n",
" end\n",
" \n",
" return (A1, A2)\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Best response with inertia\n",
"\n",
"The key difference from the regular best response dynamics is that, at each stage, each player plays the best response with probability $p$ and sticks to the previous response with probability $1-p$"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"bestResponseInertia (generic function with 1 method)"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function bestResponseInertia(M1, M2, a1, a2, N, p)\n",
" A1 = zeros(Int, N) \n",
" A2 = zeros(Int, N)\n",
" \n",
" function BR(α1, α2)\n",
" (b1, b2) = bestResponse(M1, M2, α1, α2)\n",
" \n",
" # Note that each player needs to randomize independently.\n",
" (θ1, θ2) = rand(2)\n",
" \n",
" return ((θ1 < p ? b1 : α1), (θ2 < p ? b2 : α2))\n",
" end\n",
" \n",
" (A1[1], A2[1]) = (a1, a2)\n",
" \n",
" for n in 2:N\n",
" (A1[n], A2[n]) = BR(A1[n-1], A2[n-1])\n",
" end\n",
" \n",
" return (A1, A2) \n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Battle of sexes game"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(\n",
"2x2 Array{Int64,2}:\n",
" 2 0\n",
" 0 1,\n",
"\n",
"2x2 Array{Int64,2}:\n",
" 1 0\n",
" 0 2)"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"M1 = [2 0; 0 1]; M2 = [1 0; 0 2];\n",
"(M1, M2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Computing best response dynamics"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"N = 20; p = 0.9;\n",
"(a1,a2) = (2,1)\n",
"(A1, A2) = bestResponse(M1, M2, a1, a2, N);\n",
"(B1, B2) = bestResponseInertia(M1, M2, a1, a2, N, p);"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"using PyPlot"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": [
"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"
],
"text/plain": [
"Figure(PyObject <matplotlib.figure.Figure object at 0x7f91ab6f7e10>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject <matplotlib.legend.Legend object at 0x7f91ab444a90>"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"figure(figsize=(8,2))\n",
"plot(A1, \"b\", A2, \"r\")\n",
"xlabel(\"Iteration\")\n",
"ylabel(\"Best Response\")\n",
"yticks([1,2])\n",
"title(\"Best response dynamics\")\n",
"legend([\"A1\", \"A2\"], loc=\"upper left\", bbox_to_anchor=(1, 1))"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAAwsAAAD0CAYAAADUirrrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xt8DOf+B/DPbCJXQhIiIUVcQqQqSRGyQSjq1lbohaJCq6UU0ZuWIIpqi9JT+dH29GjqUG1deshRrWvtxiUEdUlK3VLklJCEECLJ8/tju1trN7KT7O5k5fN+vfKqnZmdz3fXSuc7+zwzkhBCgIiIiIiI6B4qpQsgIiIiIqKqic0CERERERGZxWaBiIiIiIjMYrNARERERERmsVkgIiIiIiKz2CwQEREREZFZbBaIiIiIiMgsNgtERERERGQWmwUiIiIiIjKLzQIRERmJi4uDSqVCVlaW0qXY1cyZM6FSqbBz506lSyEiqjLYLBA5CJVKZfLj5uaGoKAgxMXFITMz0671VNcDyupCkiSlS7A7SZIMP0REpOOsdAFEZDlJkjBjxgzD4/z8fOzduxfJyclYs2YNNBoN2rZta9d66MEkhFC6BLsbP348hgwZgoceekjpUoiIqgw2C0QOZvr06SbLJkyYgE8//RSLFi3Cv/71L7vVIoSolgeV9GDy9fWFr6+v0mUQEVUpHIZE9ADo2bMnACAnJ8fs+lWrVqFbt26oU6cO3N3d0bp1a8yZMwdFRUUm2+7YsQP9+/dHYGAgXF1d4efnhw4dOiAxMdGwjUqlQnJyMgAgKCjIMCwqKCio3FqXL18OlUqFr776CikpKejSpQu8vLygUv3966i4uBhJSUno2LEjvLy84OnpiYiICCxZssRsc7Ju3Tp069YN/v7+cHNzQ0BAADp37oykpCSj7WJiYqBSqVBUVIRp06YhKCgIbm5uaN68OWbNmoU7d+6Yrfnnn3/G448/Dh8fH7i5uSE4OBhTpkxBfn6+ybb6jJKSEsydOxctWrSAm5sbGjVqhLfeeqvC77nezZs38f777yMsLAw1a9ZErVq1EBUVhW+++abc9/5eW7ZsQefOneHp6QlfX1/ExsYiIyPDZLvMzEyoVCp07969zH21adMGLi4u+PPPPw2vSaVSITExEYcOHUK/fv1Qp04deHp6omvXrkhNTTXZx8WLFzFr1iyo1Wr4+/vD1dUVDRs2xPPPP4/jx4+bbH/27FmoVCqMHDkSp06dwtNPPw1fX194eXmhV69e+PXXXwEAly9fxksvvYSAgAC4u7ujffv22LFjh8n+9HMWfvnlF7PvwahRo9CkSRO4ubmhfv366NKlC5YuXWq0nZy/SyIihyCIyCFIkiRUKpXZdRMmTBCSJIlZs2aZrBs5cqSQJEk0btxYjB49WrzxxhtCrVYLSZJEt27dxJ07dwzbpqSkCEmShI+Pj4iLixNTp04VY8eOFV27dhX+/v6G7WbOnCnCwsKEJEkiPj5eJCYmisTERLF48eJyX8e//vUvIUmS6Nevn3BychJPPvmkePvtt8Wzzz4rhBCiqKhIPP7440KSJNG6dWsxduxYER8fL9q2bSskSRLDhg0z2l9SUpKQJEk0aNBAvPLKK2Lq1Kli9OjRokOHDqJDhw5G23bt2lVIkiSefPJJ0aBBAzFx4kTxxhtviObNmwtJksQTTzxhUu+SJUuEJEnCy8tLvPTSS+Kdd94RkZGRQpIkERISInJzc81mPPPMMyIgIEC8+OKLIj4+XgQHBwtJksSIESOMtrf0PRdCiNzcXBEeHi4kSRLt27cXEyZMEOPHjzfUP23atHLff73vvvtOqFQq4eHhIUaOHCneffdd0blzZ1GnTh3Dazh37pxh++7duwtJksSJEydM9qXRaAyvWW/79u1CkiTRv39/4eHhIXr06CHefPNN8eyzzwonJyfh5uYmMjIyjPazatUq4eHhIfr37y/Gjx8v3n77bREbGytq1KghPD09xaFDh4y2P3PmjJAkScTExIi6deuKLl26iDfeeEMMGjRIqFQq4ePjI44fPy6CgoJERESEiI+PFyNGjBAuLi7Czc1NZGVlGe1vxowZQpIksXPnTqPlGzduFO7u7sLZ2Vn0799fvPvuu2Ls2LGiU6dOomnTpobt5PxdEhE5CjYLRA5CkiQhSZKYOXOmmDFjhpgxY4aIj48X0dHRQqVSidjYWHHjxg2j5+gPzJ999llx+/Zto3UzZ84UkiSJRYsWGZbFxsYKSZLE4cOHTfKvXLli9HjEiBEmB5SW0Nfk5OQkNm/ebLJef8AWHx8vSktLDctLSkrEiy++KCRJEuvXrzcsDw8PF25ubuLy5cvl1qw/CG7ZsqXIy8szLL9165bo1KmTkCRJfP3114blZ86cETVq1BB16tQRJ0+eNNrXmDFjhCRJYvTo0WYz2rVrZ9RI3LhxQzRv3lw4OTmJ7Oxsw/KKvOcLFy40Wn7r1i3Ru3dvoVKpxMGDB032c6/r168LHx8f4eLiIg4cOGC0Lj4+3tCY3v13+/333wtJksQbb7xhsr/hw4cLSZLEli1bDMv0zYIkSSI5Odlo+2XLlglJksTYsWONll+6dEkUFBSY7D89PV14enqK3r17Gy3XNwuSJIn333/faN17771naPLuzVm5cqXhM3Y3c83C5cuXhZeXl3B1dRW7du0yqe38+fOGP8v5uyQichRsFogchP6gyNxPaGioWLFihclzwsLChKurq8jPzzdZV1xcLOrWrSvat29vWDZw4MAyzx7fq7LNQmxsrMm6kpIS4ePjIxo2bGjUKOjl5uYKlUpldAY7IiJCeHp6mpzhN0d/IG/uvdqxY4fh2xY9/QFnQkKCyfZXr14VtWrVEh4eHkaNmD5j27ZtJs/RH4ympKQYlln6nufk5AgnJycRGRlpdv2hQ4eEJEnizTffvO9+hBBixYoVQpIkERcXZ7IuPz9f1K5d26RZKC4uFg0bNhT16tUTRUVFhuVXr14Vbm5uokWLFkb70TcLXbp0Mcm4c+eOcHZ2Nvrslad///7Czc1NFBcXG5bpm4WmTZuafF6ysrKEJEmiZs2aJg1IcXGxcHFxEd27dzdabq5ZmD9/vpAkSUyaNKncGuX8+yEichSc4EzkQCRJQklJieFxYWEhjh49iilTpmD48OHIyMjA7NmzAejGth8+fBj16tXDwoULze7PxcXF6JKrw4YNw7p16xAZGYnBgweja9euUKvVCAwMtPpriYyMNFl24sQJ5Obmom7dumWO8XZzczOp+fXXX0doaCgGDx6Mzp07Q61Wo169emVmd+3a1WSZWq2GSqXCoUOHDMsOHjwIAOjWrZvJ9t7e3ggPD8euXbuQkZFhdBUqSZLQrl07k+fo38fc3Fyj+i15z9PS0lBaWgohBGbOnGmyb/18C0suoZueng7A/Pvg5eWFsLAwk3H7Tk5OGD16NBITE7FmzRoMHjwYAPDVV1/h9u3bePnll81mmXsfnJ2dUb9+faP3QS8lJQVLly7F/v37ceXKFRQXFxvWSZKEnJwc1K9f3+g5YWFhJlfmCggIAAAEBwfD09PT5LXUq1cP58+fN1vz3fbs2QMA6NOnT7nb2vPfDxGRvbBZIHJg+smaa9euRWBgID788EOMGTMGgYGBhgOxy5cvY9asWWXu4+6DrNjYWGzcuBELFizAP//5T8PkzXbt2mHevHn3neAql7+/v8myK1euAABOnjxZZs2SJOHGjRuGx/Hx8ahbty6SkpKwePFifPzxx5AkCd26dcNHH32E8PBwk+ffe7AJ6A5g69atazRJXD+B2VytwN8HpNeuXTNZV6tWLbMZAIwaPkvfc/17k5aWhrS0NLP13PvelEX/usy9D0DZr3f06NGYM2cOPvvsM0Oz8Nlnn8HV1RUjR440+5zatWubXe7s7Gz0PgDA4sWLER8fDx8fH/Ts2RONGjWCh4cHJEnCunXrcPjwYdy+fduiDP17fb/8sia03y0vLw8A0LBhw3K3tee/HyIie+HVkIgeALVr10ZwcDCKi4sNZ431B0kREREoLS0t8+feA7a+ffti69atyMvLw9atWxEfH4+jR4+iX79+Vr3xm7l7NOhrHjhw4H3rPXXqlNHzhg8fjt27d+Pq1atISUnBiy++iB07dqBXr14mV4gSQhiu2HO34uJi5OTkwMvLy6Se7Oxss69Bv7ysA1JLWfKe6zMmT5583/dm69at5ebp92XufQCA//3vf2aXN2jQAE8++SR27NiBEydO4JdffkFmZiYGDhxY6UuOFhcXY+bMmQgICMCxY8ewatUqfPDBB5gxYwamT58OPz+/Su2/ourUqQMAFn0LAdjv3w8Rkb2wWSB6QOi/SRB/XVq0Zs2aCA0NxdGjR80O9yiPu7s7unXrhgULFuDdd9/F7du3sWnTJsN6JycnADBpNiojJCQEderUwe7du42Gn1jKy8sLffr0wWeffYa4uDhcuXIFu3btMtnO3GUzNRoNSktLjb6JiIiIKHP7vLw8HDp0CO7u7ggJCZFdqzn3e887dOhQ5mU95Xr00UcBmH9d+fn5OHToUJk33Hv11VcB6L5RWLZsGQDglVdeqXRNOTk5yM/PR1RUlMk3HgUFBUhPT1fkJoCdOnUCAGzevFnW88r790NE5CjYLBA9ANavX4+zZ8/CxcUFUVFRhuWTJ09GUVERRo0aZfaeALm5uYZx+QDwyy+/mD34159pdnd3NyzTn0nOysqy2utwcnLCa6+9huzsbEyYMAG3bt0y2SY7O9voXgDbt283uy/9WfO7a9Z77733DMNLAODWrVt45513AMBoOM2wYcNQo0YN/OMf/zD5NiMhIQHXr183bFNRlr7nfn5+GDp0KPbv34/Zs2ejtLTU5DmnTp3C2bNny8186qmn4O3tjZUrV+LAgQNG62bOnGl2WJVe9+7d0bJlSyxfvhxr165FSEgIunTpUm5mefz8/ODh4YG0tDSjoVR37tzBxIkTDcOw7G3EiBHw8vJCUlKS2XtD3P2Ng5x/P0REjoJzFogciBACiYmJhm8Pbty4gePHj2PTpk2QJAlz5841mtg7cuRIHDhwAElJSWjWrBkef/xxPPTQQ7h69SrOnDmDXbt2YdSoUYabl02YMAEXL16EWq1G48aN4eLiggMHDmD79u1o3LixYZw6APTo0QPz58/H6NGjMXDgQNSsWRPe3t4YN25cpV5jQkICDh8+jKVLl2LDhg3o1q0bGjZsiEuXLuHkyZNITU3F3LlzDWfzY2NjUatWLXTs2BGNGzeGEAK7du3C/v378eijj6JHjx4mGaGhoQgNDcXTTz8NZ2dn/PDDDzh9+jT69++PYcOGGbZr3LgxFi1ahHHjxiEiIgLPPvss6tati507d2LPnj0ICQnBBx98YPbvyVJy3vNPP/0UJ0+exPTp0/H1119DrVajfv36uHjxIjIyMrB//3588803aNKkyX0zPT098dlnn+G5555D586d8dxzz8Hf3x8ajQbHjh1Dly5d7vsNxpgxYxAfHw8AZU5slkulUmHChAmYN28e2rRpgyeffBJFRUXYvn078vLy0K1btzIbQ1vy9fXFypUr8fTTT6NLly7o27cvHn74YeTn5+PXX3/FhQsXcPr0aQDy/i6JiByGgldiIiIZ9Ne+v/uSqc7OzqJBgwZiwIABRte4v9fGjRtF//79hZ+fn3BxcREBAQEiMjJSJCQkiN9++82w3bfffiuGDBkiWrRoIWrWrCm8vLxEmzZtxLRp00ROTo7JfhcuXChCQkKEq6urkCRJBAUFlfs6li9fLlQqlfjqq6/uu93XX38tHnvsMcP9AAIDA0Xnzp3F+++/b3Rt+6VLl4rY2FjRtGlT4eHhIXx8fERERIT46KOPTC6Z2bVrV6FSqURRUZGYNm2aCAoKEq6urqJZs2Zi1qxZRpcEvdtPP/0kevXqJby9vYWrq6to0aKFePvtt81ekjYmJqbMm+eZe+1y3/OioiLx6aefiqioKFG7dm3h6uoqGjduLHr06CEWL14s63r+P//8s4iOjja8bwMGDBC//fabiIuLM7l06t30l7D18PAo85K1+kunJiYmml3fpEkTk89LcXGxWLhwoWjdurVwd3cXAQEB4oUXXhBZWVlma9JfOnXkyJFmM+69FG55+TNnzhQqlcrkpmxCCHHs2DHxwgsviIYNGwoXFxfh7+8vYmJixOeff27YRu7fJRGRI5CEkHEKjIjIgcXExGDXrl1WnWdRHW3btg09evTACy+8gOXLlytdDhER2RDnLBARkSz6oVfjx49XuBIiIrI1zlkgomqFX6ZWzK+//ooffvgBBw4cwM8//4ynnnrK7A3XiIjowcJmgYiqDUmSFLn85oPg4MGDmDFjBmrXro3BgwcbJsUTEdGDjXMWiIiIiIjILM5ZICIiIiIisxxyGFJ2djays7OVLoOIiIiIyhAQEICAgACly6BKcrhmITs7G927d0dmZqbSpRARERFRGVq1aoVt27axYXBwDtksZGZmYsWKFYY7uBLZyqRJk7Bo0SKly6BqgJ81shd+1sgeMjIyMGzYMGRnZ7NZcHAO1yzohYSEICIiQuky6AFXp04dfs7ILvhZI3vhZ42I5OAEZyIiIiIiMovNAhERERERmcVmgYiIiIiIzGKzQHQfQ4YMUboEqib4WSN74WeNiORgs0B0H/yfKtkLP2tkL/ysEZEcbBaIiIiIiMgsh710KhERERE5vpMnT+L69etKl1Et1apVCy1atLjvNmwWiIiIiEgRJ0+eRHBwsNJlVGsnTpy4b8PAZoGIiIiIFKH/RmHFihUICQlRuJrqRX+X7fK+1WGzQERERESKCgkJ4Z3FqyhOcCYiIiIiIrPYLBARERERkVlsFoiIiIiIyCw2C0REREREZBabBSIiIiIiMovNAhERERERmaV4s7B161aMGDECwcHB8PT0RGBgIAYMGID09HSlSyMiIiIisimVSmXy4+bmhqCgIMTFxSEzM9PkOcXFxVi8eDFGjhyJsLAwuLi4QKVS4Z///KfV66vwfRYyMjKwc+dOXLlyBaNGjUJAQAAuXLgAb29veHh4WLyfZcuW4fLly4iPj0doaCguX76MBQsWoGPHjti8eTO6detW0RKJiIiIiKo8SZIwY8YMw+P8/Hzs3bsXycnJWLNmDTQaDdq2bWtYX1BQgPj4eEiShPr16yMgIAB//PEHJEmyem2ym4WSkhKMHj0ay5cvB6B7cX369EFAQADGjBmD8PBwzJo1y+L9ffrpp/Dz8zNa1rt3bzRv3hxz585ls0BERERED7zp06ebLJswYQI+/fRTLFq0CP/6178Myz09PbFp0yaEhYWhfv36mDlzpqzjbzlkD0OaM2cOVq1ahfnz5+Po0aMQQhjW9enTB5s3b5a1v3sbBUD3BoSEhOD8+fNyyyMiIiIieiD07NkTAJCTk2O0vEaNGnj88cdRv359m9cg+5uF5cuXY9q0aZg8eTKKi4uN1jVp0gSnTp2qdFH5+flIT09Hjx49Kr0vIiIiIiJHtGXLFgBAhw4dFKtBdrNw4cIFREVFmV3n5uaG69evV7qocePGobCwEFOnTq30voiIiIiIqjIhBBITEw0jdq5du4a0tDSkpqZiwIABeP311xWrTXaz4Ofnh1OnTpmdS3DixAkEBgZWqqCEhASsXLkSn376KcLDwyu1L6s7fx7QaoHnnqtO0QqHExERERm7eRMwc5Egm2vVCpBxHR9ZEhMTTZa1bt0agwYNknXxIGuT3Sz07dsXc+fORe/evREQEGBYnpeXh08++QRPPPFEhYtJTEzEnDlzMHfuXLz66qv33fa11ybB17eO0bIhQ4ZgyJAhFc4v1+LFwMKFQJ8+gJeX7XKqVrTC4URERFSVrVq1CqtWrTJalpeXZ9PMzEzg0UdtGmHWgQNARIT19ytJEkpKSgyPCwsLcfToUUyZMgXDhw9HRkYGZs+ebf1gC8huFhITE7Fp0yaEhoYavl2YOnUqjhw5gho1aiAhIaFChSQmJhp+pkyZUu72zz+/COPG2eBv6340GqC0FNizB+jVq7pEKxxOREREVZm5k7Xp6el41IZH861a6Q7c7a1VK/vkuLu7o3379li7di0CAwPx4YcfYsyYMZUewVMRspsFf39/7Nu3DzNnzsTGjRvh5OSEw4cPo3///pg1axZ8fX1lF/Hee+8hMTERCQkJFjcbhw/LjqmcwsK/P5VarV0PmhWMVjiciIiIyJSHh23O8Fc1tWvXRnBwMA4ePIj09HTHaBYAXcOwdOlSqxSwYMECzJgxA71790bfvn2xZ88eo/UdO3Y0+7xDh6wSb7m0NODOHSAoSHemvXpEKxxOREREVL3l5uYCgNHtCuypwndwvtsff/yBY8eOoX379rK/Wdi4cSMkScKPP/6IH3/80WjdveO37nbkiO4YtkaNCpctj1YL1KoFvPwyMHu2XcMVjFY4nIiIiKj6Wr9+Pc6ePQsXF5cyr0Zqa7KbhalTp+LmzZv4+OOPAeiu/9q/f38UFRWhTp062LVrF0JDQy3e3/bt2+WWAAC4dUs3FKlduwo9XT6NBujUCejSBbhxw67hCkYrHE5ERET04Lv30qk3btzA8ePHsWnTJkiShLlz56JevXpGz5k3bx4y/7ok1KG/htx8+eWX+OWXXwAAnTt3xosvvljp2mQ3C2vXrkV8fLzh8bRp09C2bVu8++67mDlzJmbPnm0yI94WatTQnfS2y3FraSmQmgpMnqybeu/qardwBaMVDiciIiKqHiRJMrp0qpOTE/z8/PDUU09h/PjxeOyxx0yes3nzZuzcuROSJBn2sXv3bqSmpkKSJKhUKmWahQsXLqBFixYAdLeeTktLQ0pKCnr37o3bt29j8uTJlS7KEqGhupPeEyfaIez4cSAvD1CrdQfM7dvbLVzBaIXDiYiIiB58paWlFXpeRUfnyKWS+wQhhOFFabVaqFQqdO3aFYBu4nNOTo51KyxDWJjuJLdd5npotYCTExAZqXscHW23cAWjFQ4nIiIiIqXJbhaaNm2KDRs2AABWr16NDh06wN3dHQCQnZ0Nb29v61ZYhrZtgexs4MwZO4RpNEB4OODpqXusVtstXMFohcOJiIiISGmym4UxY8bgk08+gY+PD7755huMHj3asC41NVXW5ObKaNtW91+t1g5hWq3urLqefja6HcIVjFY4nIiIiIiUJrtZGDt2LFauXImhQ4ciOTkZcXFxhnU3b97EiBEjrFlfmWrXBlq3tsOl/y9e1J1JV6v/XubjY5dwBaMVDiciIiKiqqBC91kYPHgwBg8ebLL8888/r3RBcuiH0NuUPuDug2Y7hSsYrXA4EREREVUFsr9ZqErUauDYMeDqVRuGaDRA06ZAQIDdwxWMVjiciIiIiKoC2c1CUVER3nvvPYSEhMDDwwMqlcrox8nJyRZ1mqUfTp+aasOQe8ft3xu+e/eDGK1wOBERERFVBbKHIb377rv4+OOP0adPHwwYMACurq5G6/U3hrCHoCDA3193XNu/vw0CCgqAQ4eAl18uO1yjAfr1e5CiFQ4nIiIioqpCdrPw7bffIiEhATNnzrRBOfJIku5Et83m2+7dC5SUmD/Drg+30fh9BaMVDiciIiKiqkL2MKTc3FzDTdiqguhoIC0NuH3bBjvXaABvb6BVK/Pr1Wpg3z6bhCsYrXA4EREREVUVspuFzp0749ChQ7aopULUat0x64EDNti5VqsLUJXxNkVH68LT0x+kaIXDiYiIiKiqkN0s/OMf/8Dnn3+ONWvWoKioyBY1yRIWprvBsNVHxRQX6ybx3nvp0Lu1bQt4eFh9HJSC0QqHExEREVFVIrtZCAsLw+nTp/HMM8/A3d0dXl5eqFWrltF/7cnZGYiMtMFx65Ejuom+5sbt69WoAXTsaPVORcFohcOJiIiIqCqRPcF50KBB911vz6sh6UVHA0uWAELo5t9ahUYDuLgA7drdfzu1Gvi//7NquILRCocTERERUVUiu1lYvny5DcqoHLUamDUL+O23sufkyqbV6g6Y3dzuv110NPDee8CJE0DLlo4erXA4ERERUfWiMjNH1MXFBQEBAejatSumTJmCVvcc4J48eRJr167F5s2bcfLkSVy6dAne3t6IjIxEfHw8YmJirFaf7GahKurYUTcXV6u1UrMgBLBrFzB0qOXhGo1VDpr10cOG2T1a4XAiIiKi6kmSJMyYMcPwOD8/H3v37kVycjLWrFkDjUaDtm3bGtYnJCTg22+/RevWrdG/f3/4+PggMzMT//nPf7BhwwYsWrQIEyZMsEptsucsAMDvv/+OYcOGISAgAC4uLmjYsCFeeOEFnDp1yipFyeXlBTzyiBXnLZw7B1y8eP9x+zYK10ffb36xjaIVDiciIiKqvqZPn274WbBgATQaDcaPH48bN25g0aJFRtv27t0bBw4cwNGjR/F///d/mDNnDtasWYOtW7eiRo0aePPNN/G///3PKnXJbhYyMzPRvn17rFmzBhEREXjhhRfQtm1bfPvtt2jfvj0yMzOtUphcVr1PmH5HUVF2D1cwWuFwIiIiIrpbz549AQA5OTlGy+Pi4hAeHm6yfZcuXdC1a1fcuXMHWisdo8luFt599134+vri5MmTSElJwRdffIH//ve/+P333+Hr64t3333XKoXJpVYDJ08Cf/5phZ1pNLrxTHXr2j1cwWiFw4mIiIjoblu2bAEAdOjQweLnuLi4GP23smTPWdi5cycWL16MwMBAo+WBgYGYMWMGXnvtNasUJpd+xFBqKhAbW8mdabWWDUGyQbiC0QqHExEREVVPQggkJiZCCAEAuHbtGtLS0pCamooBAwbg9ddft2g/586dw5YtW+Dp6YkuXbpYpTbZzcLNmzdRt4wzz76+vigsLKx0URURGAg0aqQ7OV6p49a8PODoUWDyZLuHKxitcDgRERGRDDdvAkoMfW/VSndjWhtITEw0Wda6dWsMGjQIHhZk3r59G0OHDkVRURFmz56N2rVrW6Uu2c1CcHAwVqxYgd69e5us++abb0wu7WRPVhlCv3u37qpAcs6wWylcwWiFw4mIiIhkyMwEHn3U/rkHDgAREVbfrSRJKCkpMTwBZVl+AAAgAElEQVQuLCzE0aNHMWXKFAwfPhwZGRmYPXt2mc8vLi7G0KFDkZqaimeeeQZvvPGG1WqT3SxMnDgRL730EvLz8xEXF4eAgABcvHgRK1aswH/+8x988cUXVitOLrUa+PZbXbNZ4aZPowH8/IBmzewermC0wuFEREREMrRqpTtwVyLXDtzd3dG+fXusXbsWgYGB+PDDDzFmzBiTaQCArlF4/vnnsXbtWjz33HP497//bdVaZDcLo0aNwp9//on33nsPKSkphuXu7u6YO3cuRo0aZdUC5YiOBoqLgbQ0oGvXCu5EP25f7l2JrRCuYLTC4UREREQyeHjY5Ax/VVO7dm0EBwfj4MGDSE9PN2kW7ty5g+eeew7r16/H0KFDkZycDEnusVw5KnSfhXfeeQcXL15ESkoKkpOTkZKSggsXLmDKlClWLU6u0FDd5f8rfOn/oiJg717L7jNg5XAFoxUOJyIiIqKy5ObmAoBh8rNeUVERBg0ahPXr12PEiBH4+uuvrd4oAJW4g3OdOnXQp08fa9ZSaU5OulsEVHgI/cGDwK1b8sftWyFcwWiFw4mIiIjInPXr1+Ps2bNwcXFB1F33wbp9+zYGDhyITZs24aWXXsKyZctsVkOFmoX8/HwsWbIEO3bswJUrV+Dr64uYmBi8+uqrqFOnjrVrlEWtBubPB0pLAZXc7000GsDdHTBzkwtbhysYrXA4ERERUfV276VTb9y4gePHj2PTpk2QJAlz585FvXr1DNuPGTMGmzZtQt26ddGgQQOzV1Lq1q0bulphiLjsZuHMmTOIiYnBH3/8gcaNG6N+/fo4ceIEtmzZgqVLl2LHjh1o2rRppQurqOhoICEBOHYMaNNG5pO1WiAyEqhRw+7hCkYrHE5ERERUvUmSZHTA7+TkBD8/Pzz11FMYP348HnvsMaPtz549C0mScOXKFcyaNcvs/lQqlTLNwsSJE3H79m1otVp06tTJsDw1NRWxsbGYOHEiNmzYUOnCKqpDB8DZWXeyXNZxqxC6J738st3DFYxWOJyIiIioeistLZX9nO3bt9ugEvNkjxnZtm0bZs+ebdQoAEBUVBTmzJmDbdu2Wa24itBPjpc9hP7334HLlys2br+S4QpGKxxORERERFWZ7GbB1dUVjRo1MrvuoYcegqura6WLqiy1ugIX59FodJcNvacJske4gtEKhxMRERFRVSa7WXjyySfx3XffmV33/fff44knnqh0UZUVHQ2cOwecPy/jSVqtbghNZW+NXYFwBaMVDiciIiKiqkx2szB06FD89NNPePrpp7Fu3Trs3r0ba9euxaBBg/Dzzz/jhRdeQHp6uuFHCfrbBcgaFaPRVOw+A1YIVzBa4XAiIiIiqspkT3Du1asXAOCPP/7A2rVrTdb37NnT8GdJklBSUlKJ8iqmfn2geXPdcfBzz1nwhMuXgd9+A6ZPt164VmtRuILRCocTERERUVUnu1n48ssvbVGH1UVHyzjJnZqq+681zrDr92Ph+H0FoxUOJyIiIqKqTnazEBcXZ4MyrE+tBpKTgevXgVq1ytlYqwUCA4EyJm7LFh0NfP21ReEKRiscTkRERERVnVVut5uVlYUff/wRV65cscburCI6WndD4T17LNhYP25fkqwTrlZbHK5gtMLhRERERFTVyW4Wpk6divj4eMPjLVu2IDg4GH379kWLFi1w7NgxqxZYUS1bAr6+FoyKKSwE9u+v3H0G7tWqlS68nHFQCkYrHE5EREREjkB2s7B27VqEhIQYHk+bNg1t27bFunXr0LhxY8yePduqBVaUJOlOdJd73Lp/P3DnjvXG7d8dXk6noo+25vG6hdEKhxMRERGRI5A9Z+HChQto0aIFACAnJwdpaWlISUlB7969cfv2bUyePNnqRVaUWg3MmgUUFwPOZb1SjUY3vr5NG7uHa7WKRSscTkRERPS3jIwMpUuodix9z2UfzQkhUFpaCgDQarVQqVTo2rUrAMDf3x85OTlyd2kz0dHAjRvA4cPAo4+WsZFWC3TsaP0DWwvCNRrdjZOdnOwerXA4EREREVDrrwuiDBs2TOFKqq9a5VyURvYRctOmTbFhwwY89thjWL16NTp06AB3d3cAQHZ2Nry9vStWqQ08+ijg6qo7LjZ73FpaqmsW7pqDYa9we0RrtQq+7jLDiYiIiHRatGiBEydO4Pr160qXUi3VqlXLMGKoLLKbhTFjxmDcuHFITk5GXl6e0X0XUlNTERoaKr9SG3F1Bdq31x23TpxoZoOMDCAvz7rzFSwM10dbc8rAvdEaDTBhgpkNFA0nIiIi+lt5B6ukLNnNwtixY+Ht7Q2tVovIyEijr41u3ryJESNGWLXAytLfb0EIM1cI1Wh0w3AiI+0ermC0wuFERERE5CgqdJ+FwYMH4x//+IfJ+LLPP/8cw4cPt0ph1hIdDWRnA2fPmlmp1QJhYUDNmnYP12qB8HDA09Pu0QqHExEREZGjqPBN2TIzM7Fs2TLMmTMH2dnZAICLFy/i5s2bVivOGqKidP81ezVPjcY2Q3EsCNffD02BaIXDiYiIiMhRyG4WSkpKMGrUKLRu3Rpjx47F9OnTDc3CK6+8gnnz5lm9yMrw8QFatzZzv4WLF4EzZ2zbLJQRrmC0wuFERERE5EhkNwtz5szBqlWrMH/+fBw9ehRCCMO6Pn36YPPmzVYt0BrM3idMfyBryzPsZYQrGK1wOBERERE5EtnNwvLlyzFt2jRMnjwZwcHBRuuaNGmCU6dOWa04a4mOBo4dA3Jz71qo1QJNmwIBAXYPVzBa4XAiIiIiciSym4ULFy4gSj8m/R5ubm5V8jq5+pPoqal3LbT1uP37hCsYrXA4ERERETkS2c2Cn59fmd8enDhxAoGBgZUuytqaNgX8/e8aQl9QABw6ZNtx+2WEKxitcDgRERERORrZzULfvn0xd+5cnD9/HtJd19DPy8vDJ598gieeeMKqBVqDJN0zhH7vXqCkxD5n2O8JVzBa4XAiIiIicjSym4XExEQUFxcjNDQUgwYNAgBMnToVDz/8MAoLC5GQkGD1Iq0hOhpISwNu34bubLe3NxASYvdwBaMVfd1ERERE5HhkNwv+/v7Yt28fhgwZgv3798PJyQmHDx9G3759sXv3bvj6+tqizkpTq4Fbt4D0dOjOdkdFAaoK32aiwuEKRiv6uomIiIjI8VToqNHf3x9Lly7F+fPncefOHVy8eBGfffYZ/P39kZWVZe0arSIsDPDwAFJ/KQZ277bPuP17wkt2aZWKVvR1c94CERERkWOy2inm3NxcvP7662jZsqW1dmlVNWoAkZHA+U1HdBN97TFu/57w65s0SkUr+ro5b4GIiIjIMVncLBw4cAAvv/wy+vTpg1GjRmHPnj0AACEEFi1ahGbNmuHjjz/Gk08+abNiKys6GnDdr4VwcQHat7d7uOt+LVxqCCWiFX3d0GqBu27eR0RERESOwaJmYdeuXYiKisIXX3yBzZs3Y/ny5ejatSu2bNmC2NhYTJ48GWFhYdi7dy9Wr15t65orLDoaCLuhwa3WjwJubvYNV6vhXpCD2NATSkQr+rqRkwOcOGHfXCIiIiKqNIuahTlz5sDf3x87d+5EQUEBjhw5gnbt2uGZZ57BTz/9hBUrVmDbtm1ob++z1jJ1jBSIhgYn/e04bv8vomMnlECFgf72H7/fqaNyrxudOukmVHPeAhEREZHDsahZSEtLw4wZM9C5c2d4eHggNDQUSUlJyM/Px+zZs/H888/buk6r8MrLQiAuYEeRHcft/yUrzwtH0AaRd+w/fl/J1w0vL6BNG85bICIiInJAFjULeXl5CLnn2vytWrUCAHTq1Mn6VdnKX2e3/30mSpFoDaLR8KwCZ9j/et0rz9r/dQP4e94CERERETkUi5oFIQScnJyMlukfu7q6Wr8qW9FocK1BS+w7Uw+XLtk9GmcaRMP51AkoEZ7foBX2nrb/6wagaxZOKPC6iYiIiKhSnC3dcOXKldDcNZSkpKQEALBixQrs2LHDaNvJkydbpzpr02qh6hINfKM70R0ba9do9OqsBlYDSE0FBgywa7hTFzXwjf2jAfx9uVZFwomIiIiooixuFj755BOzyxctWmSyrEo2C3l5wJEjqDlpEhql2rdZ+Csa8fEPAbsb6b5msNdBs/51x8ejUap9ow0eeghoZOfXTURERESVZlGzcPr0aVvXYXu7d+uu9R8dDbXavvNt9dFqNaBkuFqt4NQBRcOJiIiIqCIsahaaNGli4zLsQKsF6tUDmjdHdDTw/ffAzZuAh4d9ov38gObNASXD9dGFhYC7u+2jjSgaTkREREQVYfEdnB2eRqM7YJUkqNXAnTtAWpr9otVqQJIAJcPtHW1E0XAiIiIiqojq0SwUFQH79hkm2j78sO7y//YYFaOPjtbfD03BcH20Irc8UDSciIiIiCqiejQLBw/qhr/8ddDs5KS7sbA9jlv10foLAikZbs9oE4qGExEREVFFVI9mQasF3NyA8HDDouho3ZU8S0ttH+3ubhStaLi9os1SNJyIiIiI5KoezYJGA0RGAi4uhkVqNZCfDxw7ZvvoDh2MohUNt1e0WYqGExEREZFcspuFUaNG4cyZM2bXnTt3DqNGjap0UVYlhO4Mu2EckE6HDoCzs22nDuijDfMVqkC4PaLLpGg4EREREcklu1lYvnw5Ll++bHbd5cuXsXz58srWZF2//w5cumRy0OzpqRudY8sh9Proe/oURcPtEV0mRcOJiIiISC6rDkPKzc2Fq6urNXdZeVqt7pqlnTqZrIqOtu1J7vtEKxpu6+j7UjSciIiIiOSw6KZsO3fuxM6dOyGEAAB88cUX+PHHH422KSwsxPr169G6dWvrV1kZGo3usp116pisUquBjz8GLlwAGja0a7Si4baOvi9Fw4mIiIhIDouahe3bt2PWrFmGx1988YXZ7Ro3bowlS5ZYpzJr0WqBbt3MrtKP0NFqgWeftWu0ouG2jr4vRcOJiIiISA6LhiG9/fbbuHTpEi5dugQA+PHHHw2P9T/5+fk4c+YMunfvbtOCZcnJATIzzUwa0PH3B5o1s80Q+nKiFQ23ZXS5FA0nIiIiIjks+mbB3d0d7u7uAIDTp0+jQYMGcDG6FmgVlZqq+6/J5Yj+Zqsh9BZEKxrOeQtEREREVB7ZE5zr16+PwsJCo2WrV6/GlClTsGXLFqsVZhUajW5cfKNGZW6iVgOHDgHXr9s9WtFwW0VbRNFwIiIiIrKU7GZh+PDhmDhxouHxJ598giFDhuDDDz/E448/jpSUFKsWWCn6+wxIUpmbREfrbii8d6/doxUNt1W0RRQNJyIiIiJLyW4W0tLS8Pjjjxsef/LJJxg6dChyc3MxcOBALFiwwKoFVtitW8D+/feZNKDTqhXg62vdIfQWRgMtWwI+PoqE2yLaYoqGExEREZGlZDcLly9fRmBgIADd/IXTp0/jtddeQ+3atTFq1CgcOXLE6kVWyP79QFFROZMGdCffo6KsO4TewmhApdId1CsQbotoiykaTkRERESWkt0seHh4IC8vDwCg0Wjg6emJ9u3bAwDc3NxQUFBg3QorSqMBatYE2rQpd9PoaGD3bqC42HrRtWpZFK1ouLWjZVE0nIiIiIgsIbtZePjhh7FkyRIcOXIESUlJ6NatG6S/xsZnZWXB39/f6kVWiFaru3uxc/kXfFKrgRs3gF9/tV50x44WRSsabu1oWRQNJyIiIiJLyG4Wpk+fjp07d6Jt27Y4dOgQ3nrrLcO6//73v4iIiLBqgRVSWqo7aC530oBOu3aAq6t1htDro8sdglQFwq0ZLZui4URERERkCdnNQvfu3ZGRkYHvvvsOx48fR/RdB6bdunUzah4Uk5kJ5OZafNDs6qo7drXGEHp9tIV9iqLh1oyWTdFwIiIiIrKERTdlu1eTJk3QpEkTk+VjxoypbD3WodEATk5AZKTFT4mOBr7+GhCinMudWj9a0XBrRVeIouFEREREVB7Z3ywAwK1bt7B06VIMHjwYPXv2xMmTJwEA69evx+nTp61aYIVoNEBYmG6Cs4XUauDiReDs2cpFa7Wyo/8OP3fO7uHWiq4QRcOJiIiIqDyym4WcnBy0a9cOr776Knbu3ImtW7fi+l934v3hhx8wf/58qxcpm4z5CnpRUX8/tTI0GhnzFe4Nr+z4/QqEWyu6QhQNJyIiIqLyyG4W3nrrLeTn5yMtLQ1//PGH0bqYmBjs2LHDWrVVTHY2cPq07INmX18gJKRyx636aJl9iqLh+mhFpg4oGk5ERERE5ZE9Z2Hjxo2YN28eHn30URTfc438wMBAnD9/3mrFVYj+wFP2Ebuuv6jMcWslohUNj45W8OS+ouFEREREdD+yv1m4du2a2cnNAHDnzh2TBsLuNBogKAho0ED2U9Vq4OhR3QWF7BytaLhaDRw7VvHoSlE0nIiIiIjuR3az0KRJE6Smpppdl5aWhpYtW1a6qEqpwHwFPf3Ipd27Kx4te75CFQiPjtZdkKii0ZWiaDgRERER3Y/sZmHYsGH44IMP8MMPPxgt37dvHxYvXozhw4dbrTjZCgqAgwcrfNDctClQv37FRsXooyvYpygaXpnoSlM0nIiIiIjuR/achbfeegtarRaxsbHw9vYGADz++OO4cuUK+vTpg4kTJ1q9SIvt2weUlFT4oFmSKj51QB9d4W8WFAyvTHSlKRpORERERPcj+5sFFxcXpKSkYOXKlejTpw8ee+wx9OjRAytWrMCGDRvg5ORkizoto9EAdeoArVtXeBdqte7Yu6ioYtEhIRWOVjS8otFWoWg4EREREZWlQndwVqlUGDx4MAYPHmzteipHq9Vdu19VoXvNAdCd5L51C0hPBzp2lBetVlcqWtHwikZbhaLhRERERFSWyhzaAtBdHWn//v3IysqyRj0VV1KimyRb4XFAOmFhgIeHvCH0+ugKz1eoAuEVibYaRcOJiIiIqCwWNwsbN27EsGHDMHLkSPz8888AgCVLliAgIAAdOnRAUFAQnn76ady5c8dmxd7XkSPA9euVPmiuUQOIjJQ3hF4fXck+RdHwikRbjaLhRERERFQWi5qFlJQUPPnkk1izZg3WrFmDvn37YtmyZZgwYQK6dOmCN954A4899hjWrl2LpKQkW9dsnkajO+hs377Su1KrdcetQsiLbteu0tGKhsuNtipFw4mIiIjIHIuahfnz56N79+7Izc1Ffn4+Xn31VUyaNAmjR4/Gpk2b8OGHH+Knn37CyJEjkZycbOuazdNqdQfM7u6V3lV0NHD5MnDypN2jFQ2XG21VioYTERERkTkWNQvHjh3D+PHj4ebmBkmS8Oabb+L27dsYOHCg0XYDBw7E6dOnbVJouTQaK0wa0OnYUXdFT0uH0FsxWtFwudFWpWg4EREREZljUbOQk5ODgIAAw+P69esDAOrWrWu0na+vL/Lz861YnoWysoDz560waUCndm3gkUcsG0Jv5WhFw+VEW52i4URERERkjsUTnCVJMvvnKkF/Njoqymq7jI627CS3DaJ13xQoFG5ptE0oGk5ERERE97L4PguZmZlwdtZtXlxcDADIyMgw2ua3336zYmkyaLVAy5ZAvXpW26VaDSxZohtGf7/d2iBa16kkJSkSbmm0TSgaTkRERET3srhZiIuLM1k2fPhwa9ZScVadNKCjH9mj1QIDBtw/2mpDkKpAuKXRNqFoOBERERHdy6Jm4csvv7R4h3YfopSfr7vXwKRJVt3tQw/pfu533GqjaEXDLYm2GUXDiYiIiOheFjUL5r5VqDJ279Zdm9/K3ywA5c9b0Edb/ZsFhcMtna9hE4qGExEREdHdLJ7gXGVptbrx7S1aWH3XajVw4ABQWHj/6ObNrR6taHh50TalaDgRERER3c3xmwX9fAUbDH+Kjgbu3AHS0sqOjo62SbSi4eVF25Si4URERER0N8duFu7cAfbutdE4IODhhwEvL/OX/tdH22D0k+Lh94u2OUXDiYiIiOhujt0sHDyoG65io4NmJyegUyfzQ+j10TbqUxQNv1+0zSkaTkRERER3c+xmQaMB3NyAiAibRajVQGoqUFpqvFyr1UWHh9ssWtHwsqLtQtFwIiIiItJz7GZBqwU6dABcXGwWER0N5OUBx48bL9dogMhIm0YrGl5WtF0oGk5EREREeo7bLAhhozuiGevQQTcy5u5RMfpom81XqALh+mhFpg4oGk5EREREeo7bLJw/D1y6ZPODZk9P3Sinu49bT53SRdu4T1E0XB+tyNQBRcOJiIiISM9xm4WDB3WXDe3UyeZRarXxcatGY7doRcPVagVP7isaTkRERESAIzcLhw8DoaGAt7fNo6KjgbNngQsXdI+1Wt0VPuvUsXm0ouHR0cCZM8DFizaPqmLhRERERARUgWahoKAAb731Fnr16oV69epBpVIhMTGx/CceOmSHcUA6+pFO+hPddpmvUAXC7422K0XDiYiIiAioAs1CTk4OPv/8c9y5cwexsbEAAMmSuxKfPWu3g2Z/f6BZM91xa04OkJlptz5F0XB9tCJTBxQNJyIiIiKgCjQLTZo0QW5uLrZv3473339f3pPtdsT+99SB1NS/H1eH8HunTNiVouE6q1atUjSfqg9+1she+FkjIjkUbxbuJoSwfOO6dYHGjW1XzD2io3Ujn378EWjY0K7Riobro69ft1tkFQnX4f9UyV74WSN74WeNiOSoUs2CLOHhuqsC2Ylarbuh8Fdf6f5sx2hFw/XRe/faLbKKhBMRERGR4zYLbdvaNa5VK8DHB7h5066jnxQP10crMs9Y0XAiIiIicla6gAoLC7NrnEoFREUBGzfaeb6CwuH66J9/Bp54wq7RAFRoFhoFp3U/44/mdg8HABScz0fGv9MVyabqhZ81shd+1qoXlbMKLZ+z7zETPVgctlnIKCkB0u37y65lS9182+Jiu0crGh4cDCxcCDz6qF1jAQDPIxivYyEwTIFwAMUAChXKpuqFnzWyF37WqpcCeOBGi112z83IyLB7JtmGwzULAQEBaNCgAYaNGKFYDZGRikUrHG5/K//6URL/l0r2ws8a2Qs/a9XJTWXO9gFo0KABAgICFMkm63HIZmH//v3Izs5WuhQiIiIiKkNAQACbhQdAlWgWNm3ahBs3buD6X5fIPHbsGL7//nsAQL9+/eDu7m60PT98RERERES2JwlZNzewjaCgIJw7dw6A7u7N+pIkScKZM2fQqFEjJcsjIiIiIqqWqkSzQEREREREVY/j3meBiIiIiIhsymGahYKCAkyaNAkNGzaEu7s7wsPDsXr1aqXLogfMjh07oFKpzP7s27dP6fLIQRUUFOCtt95Cr169UK9ePahUKiQmJprdNj09HT169ECtWrXg7e2NQYMG4cyZM3aumByVpZ+1uLg4s7/nWrdurUDV5Ii2bt2KESNGIDg4GJ6enggMDMSAAQOQbuby7vy95tgcplkYOHAgkpOTMXPmTPz4449o3749hgwZglWrVildGj2A3n//fezZs8foJzQ0VOmyyEHl5OTg888/x507dxAbGwtANyfrXpmZmYiJiUFxcTG+++47fPnllzhx4gQ6d+6MnJwce5dNDsjSzxoAuLu7m/ye40k4stSyZcuQlZWF+Ph4bNq0CYsXL8alS5fQsWNHbN++3bAdf689AIQDSElJEZIkiW+++cZoea9evUTDhg1FSUmJQpXRg2b79u1CkiSxZs0apUuhB1ROTo6QJEkkJiaarHvmmWeEn5+fuH79umHZuXPnhIuLi3j77bftWSY9AO73WRsxYoSoVauWAlXRg+LPP/80WVZQUCD8/f1Fjx49DMv4e83xOcQ3C+vWrUOtWrXwzDPPGC0fOXIkLl68iL179ypUGT2oBOf9k42U9dkqLi7Gxo0bMWjQINSsWdOwvFGjRujWrRvWrVtnrxLpAVHe7zH+nqPK8PPzM1nm6emJkJAQnD9/HgB/rz0oHKJZOHr0KEJCQqBSGZfbpk0bALr7MhBZ07hx41CjRg3Url0bvXv3hlarVbokesCdOnUKt27dwiOPPGKyrk2bNvj9999RVFSkQGX0oCosLERAQACcnZ3x0EMP4bXXXkNubq7SZZEDy8/PR3p6umHYLn+vPRiqxE3ZynPlyhU0b97cZLmPj49hPZE11KlTB5MmTUJMTAx8fX1x8uRJfPTRR4iJiUFKSgp69eqldIn0gNL/HtP/Xrubj48PhBDIzc1F/fr17V0aPYDCwsIQHh6Ohx9+GIDu4g4ff/wxtm7dirS0NHh6eipcITmicePGobCwEFOnTgXA32sPCodoFojsJSwsDGFhYYbHarUasbGxaNOmDd5++202C0T0QJg0aZLR48ceewzh4eF4+umn8cUXX2DixIkKVUaOKiEhAStXrsSnn36K8PBwpcshK3KIYUi+vr5mvz24evWqYT2RrdSuXRv9+vXD4cOHcfv2baXLoQeU/veY/vfa3a5evQpJkuDt7W3vsqgaiY2NhaenJ+cBkmyJiYmYM2cO5s6di1dffdWwnL/XHgwO0Sw88sgjyMjIQGlpqdHyI0eOAIDha1QiWyvrEoREldWsWTO4u7vj119/NVl35MgRtGjRAi4uLgpURtWFEMLk/7NE5UlMTDT8TJkyxWgdf689GByiWYiNjUVBQQG+//57o+XLly9Hw4YNERkZqVBlVB3k5uZiw4YNCA8P5y81shlnZ2c88cQTWLt2LQoKCgzLs7KysH37dgwcOFDB6qg6+P7771FYWIhOnTopXQo5iPfeew+JiYlISEhAQkKCyXr+XnswOMSchd69e6Nnz54YO3Ysrl27hmbNmmHVqlX46aef8O9//5tne8lqhg4diqCgIERERMDHxwcnT57EggULcPnyZSQnJytdHjmwTZs24caNG7h+/ToA3VXc9CdA+vXrB3d3dyQmJqJ9+/bo378/pkyZgsLCQkyfPh1+fiATnaIAAAadSURBVH54/fXXlSyfHEh5n7VLly5h2LBheP7559G0aVMIIbBz504sXrwYDz/8MF566SUlyycHsWDBAsyYMQO9e/dG3759sWfPHqP1HTt2BAD+XnsQKHeLB3kKCgrExIkTRUBAgHB1dRVhYWFi9erVSpdFD5h58+aJ8PBwUadOHeHs7Cz8/PzEoEGDxP79+5UujRxckyZNhCRJQpIkoVKpjP587tw5w3YHDhwQPXr0EJ6enqJ27dpi4MCB4vTp0wpWTo6mvM9abm6uGDhwoAgKChIeHh7C1dVVtGzZUkyZMkVcu3ZN6fLJQcTExBh9vu7+UalURtvy95pjk4TgXVmIiIiIiMiUQ8xZICIiIiIi+2OzQEREREREZrFZICIiIiIis9gsEBERERGRWWwWiIiIiIjILDYLRERERERkFpsFIiIiIiIyi80CERERERGZxWaBiKq15cuXQ6VSIT09HQDw3//+F4mJiQpXdf86mjRpglGjRtm5IiIiqo7YLBAR3cURmoUffvgBCQkJdq6IiIiqI2elCyAiqmokSbL6PgsLC+Hu7m6VOtq2bWuNkoiIiMrFbxaIiAAIIRAXF4ekpCQIIaBSqQw/WVlZhm2SkpIQFhYGDw8P+Pj44JlnnsGZM2eM9hUTE4M2bdrgl19+QVRUFDw9PfHiiy8CAFavXo1evXqhQYMG8PDwQOvWrfHOO+/g5s2bhueXV0eTJk0wcuRIo8ysrCwMGzYM9evXh5ubG1q3bo2FCxdCCGHY5uzZs1CpVFiwYAEWLlyIoKAg1KpVC1FRUdi7d69N3lciInJs/GaBiAi6s/jTp0/HzZs38f3332PPnj2Gdf7+/gCAV155BV999RUmTpyIjz76CFeuXMGsWbMQFRWFw4cPw8/Pz7Cv7OxsDB8+HG+//TbmzZsHlUp3bubkyZPo06cPJk2ahFq1aiEjIwMffPAB9u3bh61btwJAuXVIkmT0rcPly5cRFRWF4uJizJ49G02aNMGGDRvwxhtv4NSpU1iyZInRa12yZAlCQkLwySefQAiBhIQE9O3bF2fOnIGXl5cN3l0iInJUbBaIiP7StGlTwwF/hw4djNbt2bMHX3zxBT7++GNMnDjRsLxz584IDg7GwoULMW/ePAC6byCuXr2KNWvWoGvXrkb7mTZtmuHPQgh06tQJrVq1QkxMDI4cOYI2bdrctw5zFi5ciIsXL2Lfvn1o164dAKBnz54oKSnB0qVLMWnSJLRo0cKwvZeXFzZu3GhoOBo0aIAOHTpg06ZNeO655yx+v4iI6MHHYUhERBbQH1wPHToUxcXFhp/69evjkUcewY4dO4y29/HxMWkUAOD06dN4/vnnERAQAGdnZ7i4uCAmJgYAkJmZWaHatm3bhtDQUEOjoBcXFwchBLZv3260vF+/fkbfTLRp0wYADMOciIiI9PjNAhGRBf78808IIQxn/O/VrFkzo8cBAQEm2xQUFKBz587w8PDAnDlzEBwcDA8PD2RlZWHgwIEoLCysUG1XrlxB06ZNTZbra7hy5YrRcl9fX6PHrq6uAFDhfCIienCxWSAiskDdunUhSRI0Go3h4Ppu9y4zdyWjbdu2ITs7Gzt37kTnzp0Ny69evVqp2nx9fXHx4kWT5fpldevWrdT+iYio+uIwJCKiu+gP+m/dumW0/IknnoAQAufPn0dERITJT2hoaLn71jcQLi4uRsuXLVtmcR3m9OjRA8ePH8fBgweNlicnJ0OSJHTr1q3cfRAREZnDbxaIiO7yyCOPAAA++OAD9O7dG05OTmjbti2ioqLw8ssvY+TIkdi/fz86d+4MT09PZGdnQ6PR4JFHHsGYMWMM+7n7kqV6arUa3t7eGDNmDGbMmAFnZ2f8+9//xq+//mpxHTVq1DDZd3x8PJKTk9GvXz/MmjULjRo1QkpKCpKSkjBu3Dg0b97cmm8RERFVI2wWiKjau3vI0PPPPw+tVoukpCTMmjULAHDmzBk0atQIS5cuRceOHbFs2TIkJSWhtLQUDRo0QHR0NCIjI432Z24Yko+PD1JSUvD6669j2LBh8PT0xIABA7B69WpEREQYbXu/Ou7dd926dZGamop33nkH77zzDq5du4ZmzZph/vz5mDx5stXeJyIiqn4kYe70FxERERERVXucs0BERERERGaxWSAiIiIiIrPYLBAR/X/7dSAAAAAAIMjfeoERyiIAYMkCAACwZAEAAFiyAAAALFkAAACWLAAAAEsWAACAJQsAAMCSBQAAYMkCAACwAr0nabx2I6lvAAAAAElFTkSuQmCC"
],
"text/plain": [
"Figure(PyObject <matplotlib.figure.Figure object at 0x7f91ab62d0d0>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject <matplotlib.legend.Legend object at 0x7f91ab3ed790>"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"figure(figsize=(8,2))\n",
"plot(B1, \"b\", B2, \"r\")\n",
"xlabel(\"Iteration\")\n",
"ylabel(\"Best Response\")\n",
"yticks([1,2])\n",
"title(\"Best response dynamics\")\n",
"legend([\"B1\", \"B2\"], loc=\"upper left\", bbox_to_anchor=(1, 1))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 0.3.6",
"language": "julia",
"name": "julia 0.3"
},
"language_info": {
"name": "julia",
"version": "0.3.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment