Skip to content

Instantly share code, notes, and snippets.

@hsanchez
Forked from tungwaiyip/Typicality Lab.ipynb
Created February 15, 2021 21:10
Show Gist options
  • Save hsanchez/8845a601e621f19d948aae555d42496e to your computer and use it in GitHub Desktop.
Save hsanchez/8845a601e621f19d948aae555d42496e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Typicality Lab"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook page is an experiment with the concept of typicality in information theory. For detail please reference the textbook below."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# system setup and utility functions\n",
"import itertools\n",
"import math\n",
"import numpy as np\n",
"\n",
"log = np.log2\n",
"np.random.seed(1923312426)\n",
"\n",
"def H(p):\n",
" return -np.sum(p * log(p))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Model of the information source"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The information source is model as a sequence of i.i.d. random variables \n",
"\n",
"- $\\{X_k, k \\leq 1\\}$, $X_k$ i.i.d. ~ $p(x)$\n",
"- ${\\bf X}$ denotes generic r.v. with entropy $H(X) < \\infty$\n",
"- In weak typicality, ${\\cal X}$ maybe countable infinite\n",
"- In strong typicality, $|{\\cal X}| < \\infty$\n",
"\n",
"Here we use `XSET` to represent a three element alphabet ${\\cal X} = \\{\\_, 1, 2\\}$ with probability defined by `pvals = [0.6, 0.25, 0.15]`.\n",
"\n",
"Some helper functions are created. `random_xvec()` is used to generate random sample of **X**. `p_xvec()` model the probability of \n",
"\n",
"$p({\\bf X}) = p(X_1 )p(X_2 )\u00b7\u00b7\u00b7p(X_n )$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# model the information source\n",
"n = 10\n",
"XSET = ['_','1','2']\n",
"pvals = np.array([0.6, 0.25, 0.15])\n",
"\n",
"# H(X) = 1.35272420 for this model\n",
"HX = H(pvals)\n",
"\n",
"def random_xvec():\n",
" \"\"\" draw random sequence xvec base on distribution pvals \"\"\"\n",
" return np.random.choice(3, n, True, pvals)\n",
"\n",
"def format(xv):\n",
" return ''.join(XSET[x] for x in xv)\n",
"\n",
"def p_xvec(xv):\n",
" \"\"\" probability of the sequence xv \"\"\"\n",
" return np.prod([pvals[x] for x in xv])\n",
"\n",
"def emp_H(xv):\n",
" \"\"\" The empirical entropy of xv \"\"\"\n",
" return -log(p_xvec(xv)) / n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This demonstrates how to create a sequence and to generate some random seqeuence."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# xv1 is all 0, i.e. the most probable sequence\n",
"xv1 = np.zeros(n, np.int32)\n",
"\n",
"# xv1 is a sequence of evenly distributed X_i\n",
"xv2 = np.array([i % len(XSET) for i in range(n)])\n",
"\n",
"# xv3 is all 2, i.e. the least probable sequence\n",
"xv3 = 2*np.ones(n, np.int32)\n",
"\n",
"# and 8 randomly draw sequence\n",
"xv_rand_samples = [random_xvec() for i in range(8)]\n",
"\n",
"print('xv1 = %s <- the most probable seq, p=%0.6f' % (format(xv1), p_xvec(xv1)))\n",
"print('xv2 = %s p=%0.6f' % (format(xv2), p_xvec(xv2)))\n",
"print('xv3 = %s <- the least probable seq, p=%0.6e' % (format(xv3), p_xvec(xv3)))\n",
"print('')\n",
"print('Random samples =')\n",
"for xv in xv_rand_samples:\n",
" print('%s' % format(xv))\n",
" \n",
"# all samples\n",
"xv_samples = [xv1, xv2, xv3] + xv_rand_samples"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"xv1 = __________ <- the most probable seq, p=0.006047\n",
"xv2 = _12_12_12_ p=0.000007\n",
"xv3 = 2222222222 <- the least probable seq, p=5.766504e-09\n",
"\n",
"Random samples =\n",
"_2___1_1__\n",
"___1___22_\n",
"__1_2_2___\n",
"____1____1\n",
"___1___2__\n",
"_1___1__21\n",
"__12__2___\n",
"22__1____1\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
" Weak AEP"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A sequence is weakly typical if its empirical entropy is close the true entropy H(X). The empirical entropy of the sequence $\\bf x$ is defined as \n",
"\n",
"$$ - \\frac 1 n \\log {p({\\bf x})} = - \\frac 1 n \\sum_{k=1}^n \\log {p(x_k)} $$\n",
"\n",
"Let's compute $H(X)$ and compare it to empirical entropy of the sample sequences. Compare their empirical entropy to $H(X)$.\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(\"H(X) = %0.8f\" % (H(pvals)))\n",
"print(\"\\nEmpirical entropy\\n\")\n",
"print(\"xv1 = %0.8f\" % (emp_H(xv1)))\n",
"print(\"xv2 = %0.8f\" % (emp_H(xv2)))\n",
"print(\"xv3 = %0.8f\" % (emp_H(xv3)))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"H(X) = 1.35272420\n",
"\n",
"Empirical entropy\n",
"\n",
"xv1 = 0.73696559\n",
"xv2 = 1.71587592\n",
"xv3 = 2.73696559\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The weakly typical set $W_{[X]\\epsilon}^n$ with respect to $p(x)$ is the set of\n",
"sequences $x = (x_1 ,x_2 ,\u00b7\u00b7\u00b7 ,x_n) \\in {\\cal X}^n$ such that\n",
"\n",
"$$\\Big| - \\frac 1 n \\log {p({\\bf x})} - H(X) \\Big| \\leq \\epsilon$$\n",
"\n",
"Let's set $\\epsilon = 0.1$ and check which of the samples are in the weakly typical set. That is their empirical entropy are in the range from about 1.25 to 1.45."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"epsilon = 0.1\n",
"HX = H(pvals)\n",
"\n",
"print(\"H(X) = %0.8f, epsilon = %f\\n\" % (HX,epsilon))\n",
"print(\"Entropy range: %0.8f - %0.8f\\n\" % (HX-epsilon, HX+epsilon))\n",
"\n",
"for xv in xv_samples:\n",
" emp_xv = emp_H(xv)\n",
" is_w = abs(emp_xv - HX) <= epsilon\n",
" print(\"%s %s emp=%0.8f\" % (format(xv), (\"W\" if is_w else \"-\"), emp_xv))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"H(X) = 1.35272420, epsilon = 0.100000\n",
"\n",
"Entropy range: 1.25272420 - 1.45272420\n",
"\n",
"__________ - emp=0.73696559\n",
"_12_12_12_ - emp=1.71587592\n",
"2222222222 - emp=2.73696559\n",
"_2___1_1__ - emp=1.18957248\n",
"___1___22_ W emp=1.26326903\n",
"__1_2_2___ W emp=1.26326903\n",
"____1____1 - emp=0.98957248\n",
"___1___2__ - emp=1.06326903\n",
"_1___1__21 W emp=1.31587592\n",
"__12__2___ W emp=1.26326903\n",
"22__1____1 W emp=1.38957248\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Probability for Weakly Typical Set"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"WEAP says that with n sufficiently large, $Pr({\\bf X} \\in W_{[X]\\epsilon}^n) > 1 - \\epsilon$. We will verify this later.\n",
"\n",
"First we check this on a small model with $n=10, \\epsilon=0.1$. We plot the entropy distribution of all sequences below. As we can see, most of the sequence are not considered typical. Only a small number of all possible sequence fall between $H(X) \\pm \\epsilon$.\n",
"\n",
"This may seems contradictory. However notice that empirical entropy is minus log probability. This means sequence toward the left have lower entropy, thus high probability, than sequences toward the right. This can be highlighted by the position of `xv1`, `xv2`, and `xv3`. The all **_** `xv1` on the left is the most probable sequence with $p=0.6^{10}$. The all **2** `xv2` on the right is the least probable sequence with $p=0.15^{10}$. With this in mind you can see the shaded typical set are more probable than the majority of the sequences toward the right, though not necessary the top most probable sequences."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# check that the model is not too big to compute\n",
"assert len(XSET) ** n < 1000000 \n",
"p_Xn = np.array([p_xvec(np.array(i)) for i in (itertools.product(xrange(len(XSET)),repeat=n))])\n",
"p_Xn.sort()\n",
"emp_Xn = -log(p_Xn) / n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# plot Entropy Distribution\n",
"fig, ax = plt.subplots(figsize=(9, 6))\n",
"plt.hist(emp_Xn, bins=25, facecolor='green')\n",
"plt.axvline(HX-epsilon, color='black')#, linestyle='dashed', linewidth=2)\n",
"plt.axvline(HX+epsilon, color='black')#, linestyle='dashed', linewidth=2)\n",
"plt.title(\"Entropy Distribution of $X^n$\")\n",
"plt.xlabel(\"Empirical Entropy\")\n",
"ymax = ax.get_ylim()[1]\n",
"ax.add_patch(Rectangle(\n",
" (HX-epsilon,0), 2*epsilon, ymax, \n",
" color=\"b\", alpha=0.2))\n",
"plt.text(HX, ymax*.75, '$H(X) \\pm \\epsilon$',\n",
" horizontalalignment='center',\n",
" rotation='vertical')\n",
"\n",
"# annotate xv1, xv2, xv3\n",
"_h = ymax*0.2\n",
"emp1 = emp_H(xv1)\n",
"emp2 = emp_H(xv2)\n",
"emp3 = emp_H(xv3)\n",
"plt.plot([emp1,emp2,emp3], [_h]*3, 'o', c=\"R\")\n",
"plt.text(emp1, _h*1.15, 'xv1')\n",
"plt.text(emp2, _h*1.15, 'xv2')\n",
"plt.text(emp3, _h*1.15, 'xv3')\n",
"assert 1"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\njBs3TrNnz9aECRMUEBCg73znO/rxj3+s2tpaJScnKzc313eZsSS5XC4lJyfL5XIpMDBQOTk5vsJy\ncnKUlpamuro6JSYmaurUqZ0qGAAA9H5tBhRJevDBB/Xggw82aRsyZIg2bNjQ4vwZGRnKyMho1j5+\n/Hjt3Lmzk2UCAICLCXeSRZvi4uL8XQLOwPqwHtaJtbA+eo927yTb0wyj/ePwQGf0hnNQAOBC09nv\ndfagAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgALCMkMEhvgeQduYVMjjE30MA\n0E3avZMsAPSU2oO1UmYX+mfWdlstAPyLPSgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgA\nAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMBy\nCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMByCCgAAMBy2g0on332mWJj\nY32vQYMGadmyZaqurlZ8fLwiIyOVkJCgmpoaX5+srCxFREQoKipK69ev97Vv3bpV0dHRioiI0IIF\nC87PiAAAwAWv3YAyatQobd++Xdu3b9fWrVs1YMAA3XLLLcrOzlZ8fLxKSko0ZcoUZWdnS5KKi4uV\nn5+v4uJiFRQUaN68eTJNU5I0d+5c5ebmyuPxyOPxqKCg4PyODgAAXJDO6RDPhg0bFB4erhEjRmjt\n2rVKTU2VJKWmpmr16tWSpDVr1iglJUVBQUFyOp0KDw9XUVGRKisrVVtbK7fbLUmaPXu2rw8AAMCZ\nzimgvPzyy0pJSZEkVVVVyWazSZJsNpuqqqokSRUVFXI4HL4+DodDXq+3WbvdbpfX6+3yAAAAQO/T\n4YBy4sQJvfLKK7r99tubTTMMQ4ZhdGthAC48IYNDfP8edOYFAKcFdnTG119/XePHj9fQoUMlNe41\n2b9/v8LCwlRZWalhw4ZJatwzUlZW5utXXl4uh8Mhu92u8vLyJu12u73Fz8rMzPS9j4uLU1xc3LmM\nCYCf1B6slTK7sICu9AVgCYWFhSosLOzycjocUFauXOk7vCNJSUlJysvL06JFi5SXl6fp06f72mfO\nnKmFCxfK6/XK4/HI7XbLMAyFhISoqKhIbrdbK1asUHp6eoufdWZAAQAAF46zdywsWbKkU8vpUEA5\n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\nnWQBAIDlEFAAAIDlEFAAAIDlEFAAAIDlEFAAAIDlEFAAAIDlEFAAAIDlEFAAAIDlEFAAAIDlEFAA\nAIDlEFBQIDsYAAAWw0lEQVQAAIDltPksHgDABSRAvge0dkbwoGAdqjnUjQUBnUdAAYDeokFSZue7\n12bWdlclQJdxiAcAAFgOAQUAAFgOAQUAAFgO56AA3ejauGt19PARf5cBABc8AgrQjY4ePiL9uJOd\nn+/WUgDggsYhHgAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkE\nFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDkEFAAAYDntBpSysjJNnjxZY8aM0dix\nY7Vs2TJJUnV1teLj4xUZGamEhATV1NT4+mRlZSkiIkJRUVFav369r33r1q2Kjo5WRESEFixYcB6G\nAwAAeoN2A0pQUJB+//vf6+OPP9bmzZv17LPP6pNPPlF2drbi4+NVUlKiKVOmKDs7W5JUXFys/Px8\nFRcXq6CgQPPmzZNpmpKkuXPnKjc3Vx6PRx6PRwUFBed3dAAA4ILUbkAJCwtTTEyMJOmSSy7R6NGj\n5fV6tXbtWqWmpkqSUlNTtXr1aknSmjVrlJKSoqCgIDmdToWHh6uoqEiVlZWqra2V2+2WJM2ePdvX\nBwAA4EzndA5KaWmptm/frokTJ6qqqko2m02SZLPZVFVVJUmqqKiQw+Hw9XE4HPJ6vc3a7Xa7vF5v\nd4wBAAD0Mh0OKIcPH9aMGTO0dOlSBQcHN5lmGIYMw+j24nqz6upqTZ48WcHBwbrvvvv8XQ7gf7u/\n/jNH0nOS9vixFuACsGXLFsXGxio2NlZXXHGF8vPz/V1StwrsyEwnT57UjBkzNGvWLE2fPl1S416T\n/fv3KywsTJWVlRo2bJikxj0jZWVlvr7l5eVyOByy2+0qLy9v0m6321v8vMzMTN/7uLg4xcXFneu4\nLK9fv3569NFHtWvXLu3atcvf5QD+N+DrP+dJ+kLSCkkP+K8cwOqio6O1detWBQQEaP/+/Ro7dqxu\nu+029enTx691FRYWqrCwsMvLaXcPimmauvfee+VyuXT//ff72pOSkpSXlydJysvL8wWXpKQkvfzy\nyzpx4oT27Nkjj8cjt9utsLAwhYSEqKioSKZpasWKFb4+Z8vMzPS9LqRw8sEHH2jcuHE6fvy4jhw5\n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\nMs+mTZvMadOm9XRpF623337b3LZtmzl27NgWp7/66qvmjTfeaJqmaW7evNmcOHFiT5Z30WlvfbB9\n9LzKykpz+/btpmmaZm1trRkZGdns3y22k57TkfXBdtKzjhw5YpqmaZ48edKcOHGi+c477zSZ3pnt\no8f3oHT0Zm0mR556zKRJkxQaGtrq9LVr1yo1NVWSNHHiRNXU1KiqqqqnyrvotLc+JLaPnhYWFqaY\nmBhJ0iWXXKLRo0eroqKiyTxsJz2nI+tDYjvpSQMGDJAknThxQvX19RoyZEiT6Z3ZPno8oHTkZm2G\nYegf//iHxo0bp8TERBUXF/d0mThDS+usvLzcjxVd3Ng+/Ku0tFTbt29vdt8jthP/aG19sJ30rIaG\nBsXExMhms2ny5MlyuVxNpndm++jxhwV25AY23/nOd1RWVqYBAwbo9ddf1/Tp01VSUtID1aE1Z/9P\npDffdM/q2D785/Dhw7rtttu0dOlSXXLJJc2ms530rLbWB9tJzwoICNCOHTt08OBB3XDDDSosLFRc\nXFyTec51++jxPSh2u11lZWW+n8vKyuRwOJrMExwc7NtddOONN+rkyZOqrq7u0TrxL2evs/Lyctnt\ndj9WdHFj+/CPkydPasaMGbr77rs1ffr0ZtPZTnpWe+uD7cQ/Bg0apJtuukkffvhhk/bObB89HlAm\nTJggj8ej0tJSnThxQvn5+UpKSmoyT1VVlS9pbdmyRaZpNjuehZ6TlJSkP/3pT5Ia7wY8ePBg2Ww2\nP1d18WL76Hmmaeree++Vy+XS/fff3+I8bCc9pyPrg+2k5xw4cEA1NTWSpLq6Or3xxhuKjY1tMk9n\nto8eP8TT2s3annvuOUnST37yE/3lL3/Rf/7nfyowMFADBgzQyy+/3NNlXlRSUlL01ltv6cCBAxox\nYoSWLFmikydPSmpcH4mJiXrttdcUHh6ugQMHavny5X6uuHdrb32wffS89957Ty+++KKuuOIK3z+8\njz32mPbt2yeJ7aSndWR9sJ30nMrKSqWmpqqhoUENDQ2aNWuWpkyZ0uR7vTPbBzdqAwAAluOXG7UB\nAAC0hYACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4AC9CJ9+vTxPV4+NjZWjz/+eLcs96ab\nbtKhQ4fOeVpb/uu//kv33Xdfi+1Dhw5tMo5PP/20zWU99dRTqqurO+caAFhXj9+oDcD5M2DAAG3f\nvr3bl/vqq682azt9C6WWpnVEa8/hMAxDKSkpWrZsWYeXtXTpUs2aNUv9+/dvNq2hoUEBAfxfDLjQ\nsNUCFwGn06mMjAzFxsZqwoQJ2rZtmxISEhQeHu6722NhYaGuvfZa3XzzzYqKitLcuXN9IcTpdKq6\nulqlpaUaNWqUUlNTFR0drbKyMt80SfrTn/6kcePGKSYmxvdo9VdeeUVXXXWVvvOd7yg+Pl5ffPFF\nu/W2dP/I0w8fu/322zV69GjdfffdkqRly5apoqJCkydP1pQpUyRJl1xyiX72s58pJiZG77//vn73\nu98pOjpa0dHRWrp0qaTGp+BGRUXp7rvvlsvl0u233666ujpt3LhRt9xyi+9z33jjDd16662d/dUD\n6CwTQK/Rp08fMyYmxvdatWqVaZqm6XQ6zT/84Q+maZrmT3/6UzM6Oto8fPiw+c9//tO02WymaZrm\npk2bzH79+pl79uwx6+vrzfj4ePMvf/mLr/+XX35p7tmzxwwICDCLiop8n3l62q5du8zIyEjzyy+/\nNE3TNKurq03TNM2vvvrKN+8LL7xgPvDAA6Zpmuby5cvN+fPnNxvD8uXLzaFDh/rGEBsba9bV1Zmb\nNm0yBw0aZHq9XrOhocH87ne/a7733ntNajjNMAzzz3/+s2mapvnhhx+a0dHR5tGjR83Dhw+bY8aM\nMbdv327u2bPHNAzD/Mc//mGapmnOmTPHfOKJJ0zTNM2oqCjzwIEDpmmaZkpKirlu3brOrxQAncIe\nFKAX6d+/v7Zv3+573X777b5ppx/KGR0dre9+97saOHCgvvnNb6pv376+c0jcbrecTqcCAgKUkpKi\nd999t9lnXH755XK73U3aTNPUxo0blZyc7HsgW2hoqKTGJ5YnJCToiiuu0BNPPKHi4uI2x2AYhu68\n807fGLZt26Z+/fr56hs+fLgMw1BMTIxKS0tbXEafPn00Y8YMSdK7776rW2+9Vf3799fAgQN16623\n6p133pFhGBoxYoS++93vSpLuvvtu33hnzZqlFStWqKamRps3b9aNN97YZs0Auh8BBbhI9O3bV5IU\nEBCgb3zjG772gIAAnTp1SlLT80JM02zx3I2BAwe2uHzDMFo8NHPfffcpPT1dH330kZ577rkOncza\n0nLOHIPUGEJO1322fv36+cZydl2maTaZ1lL7PffcoxdffFEvv/yykpOTOYcF8AO2OuAi09qXv9T4\nWPrS0lI1NDQoPz9f11xzTYeWaRiGrr/+ev35z3/2nY/y1VdfSZIOHTqk4cOHS2q8Qqcr9bUmODi4\n1SuJJk2apNWrV6uurk5HjhzR6tWrNWnSJJmmqX379mnz5s2SpJdeekmTJk2SJF166aUaPny4Hn30\nUd1zzz3nXA+AriOgAL1IXV1dk8tzMzIyms1jGEaTPQdnvr/yyis1f/58uVwujRw50neyaGvzn/mz\ny+XSz3/+c1133XWKiYnRAw88IEnKzMzU7bffrgkTJmjo0KFN9l60dCWPYRjKz89vMo7333+/1fkl\n6cc//rGmTp3qO0n2zPliY2OVlpYmt9utq666Sj/60Y80btw4SdKoUaP07LPPyuVy6eDBg5o7d66v\n38yZM3XZZZdp1KhRLX4mgPPLMDvz3xUAvU5hYaGefPJJvfLKK/4upUeUlpZq2rRp2rlzZ4vT58+f\nr/Hjx7MHBfAT7oMCQFLrezR6s9bGO378eAUHB+v3v/99D1cE4DT2oAAAAMvhHBQAAGA5BBQAAGA5\nBBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5/x8FN76WzmFy8QAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x5e627d0>"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The cumulative probability chart below gives a clearer view. Althought the size of $W_{[X]\\epsilon}^n$ is relatively small, the probablity $Pr({\\bf X} \\in W_{[X]\\epsilon}^n)$ is about 0.3192."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# adding from the smallest to the largest ends in exactly 1. High five!\n",
"cum_prob = p_Xn.cumsum()\n",
"\n",
"# find the boundary of the typical set\n",
"p_lo = 2**(-n*(HX+epsilon))\n",
"p_hi = 2**(-n*(HX-epsilon))\n",
"index_lo = np.sum(p_Xn <= p_lo)\n",
"index_hi = np.sum(p_Xn <= p_hi)\n",
"x_typ = np.arange(index_lo, index_hi)\n",
"cum_prob_typ = cum_prob[index_lo:index_hi]\n",
"prob_typ = cum_prob[index_hi] - cum_prob[index_lo]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, ax = plt.subplots(figsize=(9, 6))\n",
"ax.set_ylim(top=1.0)\n",
"\n",
"plt.plot(cum_prob, color=\"g\")\n",
"plt.plot(x_typ, cum_prob_typ, color=\"black\", lw=3)\n",
"ax.add_patch(Rectangle(\n",
" (index_lo,0), index_hi-index_lo, 1.0, \n",
" color=\"b\", alpha=0.2))\n",
"plt.text(index_lo*0.9, 0.5, '$Pr(x \\in W) = %0.4f$' % prob_typ, \n",
" fontsize=16, horizontalalignment='right')\n",
"plt.text(index_lo*0.9, 0.4, '$|W| = %d$' % len(cum_prob_typ), \n",
" fontsize=16, horizontalalignment='right')\n",
"plt.title(\"Cumulative Probability of Weakly Typical Set\")\n",
"plt.xlabel(\"Number of Sequences\")\n",
"plt.ylabel(\"Cumulative Probability\")\n",
"assert 1"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGJCAYAAABy9cILAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcjXn/P/DXadMi2mmRImPPFmmyNBjrbR9kKYMhhDH8\n7Gbsg7mHMbjHxCAziAzukOIWCcNk7CQjpE0p7Wnv/P7o2zUdpzqh03XK6/l4eMy5rnNd13md03De\nfbZLIpVKpSAiIiKq4dTEDkBERERUFVjUEBERUa3AooaIiIhqBRY1REREVCuwqCEiIqJagUUNERER\n1QosaogArFy5Em5ubu98fps2bRASElKFiapWcHAwGjVq9E7nRkZGQk1NDUVFRWU+v379ekydOrXM\nYwcOHIjffvvt3UK/peXLl8PU1BQWFhbV8nplqehzfp+fQVWbMWMG1q5d+17XUKX3Q1SCRQ2J6uDB\ng3BwcIC+vj4sLCwwcOBAXLlypdpzSCSSSh/7+eef4+uvv5bZd//+ffTo0aNKM5UUCPr6+tDX14et\nrS02btxYpa9RFZYsWYJdu3aV+dzp06eFYtHb2xvdu3dXSoaoqChs3rwZ4eHhiIuLk3u+efPm8PX1\nFbavXLkCNTU1uX316tUrt3gTS926dYX/B9TU1KCrqwt9fX3Uq1cPPj4+73TNHTt2YPny5VWcVJaf\nnx/at2+P+vXrw9TUFL1790ZkZKTC8xQV0UQVYVFDotm8eTO++uorLF++HC9fvkR0dDQ8PT1x4sSJ\nas+iymtQpqWlISMjAz4+Pli9ejXOnDkjd0xBQYEIyVRHVFQUjI2NYWxsXObzPXv2lGlJCwkJQYsW\nLeT2ffzxx1BTU61/FjMzM5GRkYGMjAw0btwYp06dQkZGBtLT0zF27Fix45UpIiICEydOxA8//IC0\ntDQ8e/YMnp6eUFdXr/Q1VPnvJKku1frbSx+MtLQ0rFixAj/99BOGDRsGHR0dqKurY9CgQUJrxJst\nIm82d9vY2OD777+Hvb099PX1MWXKFCQkJGDAgAGoX78+Pv30U6SmppZ5bsn558+fLzPfqFGjYG5u\nDgMDA/Ts2RNhYWEAgJ07d+LgwYP47rvvoK+vj6FDh8pcKy4uDrq6ukhJSRGudevWLZiamqKwsBAA\nsGfPHrRq1QpGRkbo378/oqKiKvWZde3aFa1bt8aDBw8QHBwMKysrfPfddzA3N8eUKVOQl5eHuXPn\nwtLSEpaWlvjqq6+Ql5cnc43169fD1NQUtra2OHjwoLDf398fHTp0QP369WFtbY1Vq1bJvf7u3bth\naWkJCwsLbNq0SdhfUdedi4sLdu/ejfDwcEyfPh1Xr16Fvr4+jIyM8Ndff6FBgwYyX17Hjh1D+/bt\ny7xWWloa3N3dYWZmBhsbG6xbtw5SqRTnzp1D3759ERcXB319fUyePFnu3B49esgUMJcvX8aiRYtk\n9l26dElobbt27Ro+/vhjGBoaon379rh48aJw3N69e9GqVSvUq1cPTZs2xc6dO8vMCwBbt25F69at\n5VqP/v3vf+Ozzz6T2TdnzhzMnTu33GuVlpeXByMjI9y/f1/Y9/LlS+jp6eHVq1fC/x/l/bzf/LtV\nulXFzs5OKJzf5r2Wdvv2bdja2uKTTz4BUNzaNGLECOHvoFQqxYYNG2BnZwcTExOMGTNG+DtT8jMw\nMDCAvr4+/vzzz0q9JhHAooZEcvXqVeTk5GD48OHlHiORSCrsFpJIJDh27BiCgoLw6NEjnDp1CgMG\nDMCGDRvw8uVLFBUVYevWrRWeX55BgwYhIiICiYmJ6NixI8aPHw8AmDZtGsaPH49FixYhIyMDfn5+\nMteysLCAk5MTjh49Klzr4MGDGDVqFNTV1eHn54f169fj+PHjSEpKQvfu3RX+ti2VSiGVSnHlyhU8\nePAAHTp0AAAkJCQgJSUFUVFR8PLywtq1axEaGoo7d+7gzp07CA0NlRk3ER8fj1evXiEuLg779u3D\ntGnT8PfffwMo/tLZv38/0tLS4O/vjx07dgjvrURwcDAiIiJw9uxZbNy4EUFBQQo/x5KfYYsWLeDl\n5QUnJydkZGQgOTkZDg4OMDExkWl5+u233zBx4sQyrzV79mxkZGTg2bNnuHjxIn799Vfs3bsXffr0\nQUBAACwsLJCRkYE9e/bIndu9e3c8ePAAqampKCoqwl9//YUxY8YgNTVV2PfHH3+gR48eiI2Nxb/+\n9S988803SElJwffff4+RI0fi1atXAIAGDRrA398f6enp2Lt3L7766ivcunVL7jVXr16NX3/9FSEh\nIXLjfCZMmIDAwECkpaUBKG5pO3z4cLnv/U1aWloYO3Ys9u/fL+zz8fFBnz59hNaqhIQEuZ/348eP\nZX4uABAaGoqJEydi06ZNSEtLQ0hICGxsbN7qvb6pU6dOCA8Px7x58xAcHIzMzEyZ57du3YoTJ04g\nJCQEL168gKGhITw9PQEUF5fAPy2Ujo6OlfpMiAAWNSSSV69ewcTERGFTv6Im6NmzZwuDQ7t37w4n\nJye0a9cOderUwfDhwyv1D3BZPv/8c+jp6UFTUxMrVqzAnTt3kJGRUalc48aNE8Y6SKVSHD58GOPG\njQMA/Pzzz1iyZAmaN28ONTU1LFmyBLdv30Z0dHS51zMxMYGxsTGmTp2KjRs3Cr/9qqmpYdWqVdDU\n1IS2tjYOHjyIb775BiYmJjAxMcGKFSvkBumuWbMGmpqa6NGjBwYNGiSMKenZsydat24NAGjbti1c\nXV1lWicAYMWKFdDR0UGbNm0wadIkmfdYGWUd5+7uLnwxJycn4+zZs8JnVVphYSEOHz6M9evXQ09P\nD40bN8b8+fOF96coQ+PGjWFtbY2QkBDcuXMHzZo1g7a2NpydnYV9eXl5cHR0xP79+zFw4ED0798f\nANCnTx84ODjA398fQPHgZ1tbWwDFrQp9+/YVvohLssybNw/nzp3DhQsXyuwSMzc3R/fu3XHkyBEA\nQGBgIExNTYWCtTLc3d1lxtT89ttvci1mb/68Dx8+LHed3bt3Y8qUKejduzeA4sK8efPmlXqv5bG1\ntUVwcDBiY2MxevRomJqaYtKkScjKygIAoQi3sLAQ/o79/vvvKCoqYrcTvRcWNSQKY2NjJCUlvfdg\nwAYNGgiPdXR0ZLa1tbXlfkOsjMLCQixevBh2dnaoX7++8I96UlJSpc4fMWIErl69ivj4eISEhEBN\nTQ3dunUDADx//hxffvklDA0NYWhoKHzhxcbGlnu9V69eITk5GWFhYZg1a5aw39TUFFpaWsJ2XFwc\nGjduLGxbW1vLdHsYGhpCR0dH2G7cuLHw/J9//olPPvkEZmZmMDAwgJeXl9AyUaJ0992b135X48eP\nx8mTJ/H69Wv4+vqiR48eMj/DEklJScjPz5d7fxV9bm8q6YIq3c3UrVs3hISEICQkBI6OjtDU1MTz\n589x5MgR4WdkaGiIK1euID4+HgAQEBCArl27wtjYGIaGhjh9+rTMZ5WamopffvkFixcvhr6+frl5\nJk6cKBR0+/fvf+vZd46OjtDR0UFwcDDCw8Px5MkTDBkyRHi+rJ/3ixcv5K4TExODpk2blvkait6r\nonyHDx/Gy5cvcenSJYSEhGDdunUAigcDDx8+XPh8W7VqBQ0NDSQkJLzNR0Akh0UNicLJyQl16tTB\n8ePHyz1GT08Pr1+/FrZLvlQqUt5veW9eq7CwEImJiWUee/DgQZw4cQJBQUHCIMfS11Y0U8rQ0BB9\n+/bF4cOHcfDgQZnuJWtra+zcuRMpKSnCn6ysLHTt2lXhe3vTmzksLCxkZpdERUXJdHukpKTIfAbP\nnz+HpaUlgOLWpWHDhiEmJgapqamYPn26XMFZeuxPVFSUcO675gUAKysrdO3aFceOHavwi93ExASa\nmppy78/KyqrSr1+6qCmZhdW9e3eEhITg8uXLQqFjbW0NNzc3mZ9RRkYGFi5ciNzcXIwcORILFy7E\ny5cvkZKSgoEDB8r8f2doaIhTp05h0qRJ+OOPP8rNM3ToUNy9exf379+Hv7+/0MX5NkoKo99++w2j\nRo2SKXLL+nmXNd29UaNGiIiIkNtfmfdaWQ4ODhg+fDgePHgAoPgzDgwMlPmMX79+DXNz87eaiUj0\nJhY1JIr69etj9erV8PT0hJ+fH16/fo38/HwEBARg0aJFAID27dvj9OnTSElJQXx8PLZs2fLOr/fR\nRx8hJycHp0+fRn5+PtauXYvc3Nwyj83MzESdOnVgZGSErKwsLF26VOb5Bg0a4OnTpxW+3rhx47Bv\n3z4cPXpUpjtl+vTp+Pbbb4WBx2lpaUIXxPsaO3Ys1q5di6SkJCQlJWH16tVyRcKKFSuQn5+PS5cu\nwd/fH6NGjQJQ/J4NDQ2hpaWF0NBQHDx4UO7LZe3atcjOzsaDBw/g7e2NMWPGvFW+Bg0aICYmBvn5\n+TL73d3dsXHjRty/fx8jRowo81x1dXWMHj0ay5YtQ2ZmJp4/f44ffvgBEyZMqPTr9+jRAzdv3kRI\nSAicnZ0BFHe1PX36FBcuXBCKmgkTJuDkyZM4e/YsCgsLkZOTI3Sl5OXlIS8vT+g6DQgIwNmzZ8t8\nrQMHDmDEiBG4fv16mXl0dHQwcuRIjBs3Do6Ojm9VoJWYMGECjh07hgMHDsDd3V3u+fJ+3iXjtABg\nypQp2Lt3L86fP4+ioiLExsbi0aNHlX6vZbly5Qp++eUX4ReH8PBwnDx5Uijep0+fjqVLlwqFcmJi\nojDr0dTUFGpqanjy5Mlbfx5ELGpINPPmzcPmzZuxdu1amJmZwdraGj/99JMweNjNzQ3t2rWDjY0N\n+vfvD1dXV4W/xZV+vvRgyPr16+Onn37CF198ASsrK9StW1emO6X0se7u7mjcuDEsLS3Rpk0bODk5\nyVx3ypQpCAsLg6GhYblfwkOGDEFERATMzc3Rtm1bYf+wYcOwaNEiuLq6on79+mjbtm2ZU7TLej+K\nnlu+fDkcHBxgb28Pe3t7ODg4CGuRSCQSmJubw9DQEBYWFnBzc4OXlxc++ugjAMBPP/2Eb775BvXq\n1cOaNWvkChaJRIKePXvCzs4Offr0wYIFC9CnTx+5z66izL1790br1q3RsGFDmJmZCftHjBiBqKgo\nDB8+HNra2uW+323btkFPTw9NmjRB9+7dMX78eEyaNKlSnxUANGvWDGZmZjA3N0e9evWEcxwdHZGR\nkYGPP/4YQHHrkZ+fH7799lvh/8tNmzZBKpVCX18fW7duxejRo2FkZAQfHx9hBtybOfr06YM9e/Zg\n8ODBuH37dpkZJ06ciPv377/zwo+NGjVCx44dZbo4SzRs2LDcn3fpn1nnzp2FQcAGBgZwcXFBVFTU\nW73XNxkYGODEiRNo27Yt9PX1MWDAAIwYMQILFy4EAHz55ZcYMmQI+vbti3r16sHJyQmhoaEAAF1d\nXSxbtgzOzs4wNDQU9hNVhkSqxFFZkydPhr+/P8zMzHDv3r0yj5kzZw4CAgKgq6sLb2/vtxooR0S1\nQ7NmzeDl5YVevXqJHaVaRUdHo0WLFkhISEDdunXf6RpTpkyBpaUlVq9eLewLDg6Gm5tbhQPQiWoj\npbbUTJo0CYGBgeU+f/r0aURERODx48fYuXMnZsyYocw4RKSCjh07BolE8sEVNEVFRdi0aRPGjh37\nzgVNZGQkjh07hilTplRxOqKaSUOZF+/evXuFy2KfOHFCWJfB0dERqampSEhIKHP2AxHVPi4uLggP\nD6+2+0OpiqysLDRo0AC2trYV/uJXka+//hpbtmzB0qVLZWaFleCAW/oQKbWoUSQ2NlZmXIOVlRVi\nYmJY1BB9IIKDg8WOIAo9Pb13Wm6gtDVr1mDNmjVlPlcyLoboQyP6QOE3h/TwtwsiIiJ6F6K21Fha\nWsoMZIuJiSlz7Qs7OztO7yMiIqolmjZtWub6SO9L1KJmyJAh2L59O1xdXXHt2jUYGBiU2fX05MkT\nLp1dhVauXImVK1eKHaNW4GdZtfh5Vi1+nlVHVT7LM2cAExOxUxRLSgL69ZPff+TBEfiG+eLIqPLX\n4FJWr4xSi5qxY8fi4sWLSEpKQqNGjbBq1Sph4S0PDw8MHDgQp0+fhp2dHfT09LB3715lxiEiIiIl\nK5IWQU0izugWpRY1pW+2Vp7t27crMwIRERFVIzGLGtEHClP1c3FxETtCrcHPsmrx86xa/DyrDj/L\nymNRQ9WKfzmrDj/LqsXPs2rx86w6/Cwrr0haBAnEmcnMooaIiIiqTH5RPjTVNUV5bRY1REREVGXy\nC/OhqcaihoiIiGq4gqICFjVERERU8+UX5UNDTZxl8FjUEBERUZXJL+SYGiIiIqoF2P1EREREtQK7\nn4iIiKhWYPcTERER1QrsfiIiIqJagd1PREREVCuw+4mIiIhqBXY/ERERUa3A7iciIiKqFXhDSyIi\nIqoV2P1EREREtUJ+IbufiIiIqBZg9xMRERHVCux+IiIiolqB3U9ERERUK+QU5EBbQ1uU12ZRQ0RE\nRFUmuyAbOpo6orw2ixoiIiKqMtn52dDRYFFDRERENRxbaoiIiKhWyCnIYUsNERER1XzZ+dkcKExE\nREQ1H7ufiIiIqFbgQGEiIiKq8QqKCgCAt0kgIiKimi07X7yuJ4BFDREREVWR7ALxBgkDLGqIiIio\niog5ngZgUUNERERVJKcgh91PREREVPNlF7ClhoiIiGoBMRfeA1jUEBERURURc+E9gEUNERERVREx\n7/sEsKghIiKiKsJ1aoiIiKhW4EBhIiIiqhVe57+GrqauaK/PooaIiIiqRGZeJvS19EV7fRY1RERE\nVCUycjNQV6uuaK/PooaIiIiqRGZeJosaIiIiqvlY1BAREVGtkJnPooaIiIhqAY6pISIiolqB3U9E\nRERUK2TmZUK/Dqd0ExERUQ3HlhoiIiKqFTLyOKaGiIiIagG21BAREVGNJ5VKkZaThnp16omWgUUN\nERERvbfX+a+hqa4JLXUt0TKwqCEiIqL3lpabhvp16ouagUUNERERvbe0nDTU12ZRQ0RERDUcW2qI\niIioVqj1LTWBgYFo0aIFmjVrho0bN8o9n5SUhP79+6N9+/Zo06YNvL29lRmHiIiIlKRWt9QUFhZi\n1qxZCAwMRFhYGHx8fPDw4UOZY7Zv344OHTrg9u3bCA4Oxvz581FQUKCsSERERKQkaTm1uKgJDQ2F\nnZ0dbGxsoKmpCVdXV/j5+ckcY25ujvT0dABAeno6jI2NoaGhoaxIREREpCRpueJ3PymtgoiNjUWj\nRo2EbSsrK/z5558yx0ydOhW9evWChYUFMjIy4Ovrq6w4REREpETpuem1t6VGIpEoPObbb79F+/bt\nERcXh9u3b8PT0xMZGRnKikRERERKIvZqwoASW2osLS0RHR0tbEdHR8PKykrmmD/++APLli0DADRt\n2hS2trZ49OgRHBwc5K63cuVK4bGLiwtcXFyUkpuIiIjeXkXdT8HBwQgODlZ6BqUVNQ4ODnj8+DEi\nIyNhYWGBw4cPw8fHR+aYFi1a4Ny5c3B2dkZCQgIePXqEJk2alHm90kUNERERqZaKZj+92RixatUq\npWRQWlGjoaGB7du3o1+/figsLMSUKVPQsmVLeHl5AQA8PDywdOlSTJo0Ce3atUNRURG+++47GBkZ\nKSsSERERKYkqrFMjkUqlUlETVIJEIkENiElERKRUZ84AJiZipyiWlAT06/fPdtsdbbF/+H60a9hO\n4bnK+l7nisJERET03uIz49GwbkNRM7CoISIioveSX5iP1JxUmOiK24zEooaIiIjeS+LrRBjrGENd\nTV3UHCxqiIiI6L0kZCagQd0GYsdgUUNERETvRxXG0wAsaoiIiOg9xWfGo4EeW2qIiIiohkvISmBL\nDREREdV8bKkhIiKiWoEtNURERFQrxGfGc/YTERER1XwJmWypISIiolqAU7qJiIioxsstyEVGXgaM\ndIzEjsKihoiIiN7dy6yXMNMzg5pE/JJC/ARERERUYyVkJajEdG6ARQ0RERG9B1UZTwOwqCEiIqL3\noCo3swRY1BAREdF7iM+MR0M9ttQQERFRDZeQxZYaIiIiqgU4poaIiIhqBc5+IiIiolqBLTVERERU\nK3D2ExEREdV42fnZyC7IhqG2odhRALCoISIioneUkJUAMz0zSCQSsaMAYFFDRERE7yghM0FlxtMA\nLGqIiIjoHcVnxqvMzCeARQ0RERG9o4QsttQQERFRLaBK07kBFjVERET0jhIyVWfhPYBFDREREb2j\n+Cy21BAREVEtEJ8ZrzIL7wEsaoiIiOgdPU99jsb1G4sdQ8CihoiIiN5aXlEuEl8nwrKepdhRBCxq\niIiI6K0l5kbBUt8SGmoaYkcRsKghIiKit5aQGwlbQ1uxY8hgUUNERERvLSE3Ejb1bcSOIYNFDRER\nEb21+NxnsDGwETuGDBY1RERE9NbY/URERES1QkJuJFtqiIiIqOaLz30GW4Ma1lKzdetWpKSkVEcW\nIiIiqgFyCrORWZACc31zsaPIUFjUJCQkoHPnzhg9ejQCAwMhlUqrIxcRERGpqJisCDSsYws1iWp1\n+ChMs27dOvz999+YPHkyvL290axZMyxduhRPnjypjnxERESkYiIzH6GRTguxY8ipVImlpqaGhg0b\nokGDBlBXV0dKSgo+++wzLFiwQNn5iIiISMU8z3oEK53mYseQo7Co+fHHH9GpUycsXLgQzs7OuH//\nPnbs2IEbN27g2LFj1ZGRiIiIVISf3x6c2eeDtOtJiImJETuODIU3bEhOTsaxY8fQuLHsXTjV1NRw\n8uRJpQUjIiIi1RMUdARP/3iAp3iAa33747PPPhM7kkBhS82TJ0/kCho3NzcAQKtWrZSTioiIiFTS\ns2cPhcctW7YUMYk8hUXNgwcPZLYLCgpw48YNpQUiIiIi1ZST8xovXjwHAKipqcPOzk7kRLLKLWq+\n/fZb6Ovr4969e9DX1xf+mJmZYciQIdWZkYiIiFRAZOQj4bG5eRPUqVNHxDTyyi1qli5dioyMDPy/\n//f/kJGRIfxJTk7Ghg0bqjMjERERqYDIyH+6nho1Uq2uJ6CCgcLh4eFo0aIFRo0ahZs3b8o937Fj\nR6UGIyIiItUSGRkuPLa2rkFFzaZNm7Br1y7Mnz8fEolE7vkLFy4oNRgRERGpltKDhK2sVG/xvXKL\nml27dgEAgoODqysLERERqbDSRU2Naqk5evRomS00JUaMGKGUQERERKR6CgoKEB39WNhu1KgGtdSc\nPHmSRQ0REREBAOLiniE/Pw8AYGJiDj29+iInklduUePt7V2NMYiIiEiVlR4kbGurel1PQAVFzf79\n+zFhwgRs2rQJEokEUqlU5r/z5s2rzpxEREQkotLjaWxsVK/rCahgnZqsrCwAENanyczMlFmvpjIC\nAwPRokULNGvWDBs3bizzmODgYHTo0AFt2rSBi4vL278DIiIiUrrSa9TY2KhmS41EKpVKlXHhwsJC\nNG/eHOfOnYOlpSU6d+4MHx8fmftEpKamwtnZGWfOnIGVlRWSkpJgYmIiH/L/WoiIiIg+ZGfOAGV8\nTVaLSZOccO/eNQDATz+dQ5MmvdGv37tdS1nf65W6oeXgwYNhYmICU1NTDB06FE+fPlV44dDQUNjZ\n2cHGxgaamppwdXWFn5+fzDEHDx7EyJEjYWVlBQBlFjREREQkLqlUWrO7n0qMGzcOo0ePxosXLxAX\nF4dRo0Zh7NixCi8cGxuLRo0aCdtWVlaIjY2VOebx48dITk7GJ598AgcHB/z222/v8BaIiIhImV69\nikdmZhoAQE9PH6amFiInKpvCoiY7Oxtubm7Q1NSEpqYmJkyYgJycHIUXrmg6eIn8/HzcvHkTp0+f\nxpkzZ7BmzRo8fvxY4XlERERUfUrPfLKxaVmp73gxlDv7KTk5GVKpFAMGDMD69euF1pnDhw9jwIAB\nCi9saWmJ6OhoYTs6OlroZirRqFEjmJiYQEdHBzo6OujRowfu3LmDZs2ayV1v5cqVwmMXFxcOKiYi\nIqom79v1FBwcXC13KCh3oLCNjU2ZlVjJlO5nz55VeOGCggI0b94cQUFBsLCwQJcuXeQGCoeHh2PW\nrFk4c+YMcnNz4ejoiMOHD6NVq1ayITlQmIiISLSBwuvWeeD48Z0AgFmz1uPzzxcjKQkqN1C43Jaa\nyMjI97uwhga2b9+Ofv36obCwEFOmTEHLli3h5eUFAPDw8ECLFi3Qv39/2NvbQ01NDVOnTpUraIiI\niEhc9+5dFR63bt1FxCQVq9SU7vv37yMsLExmLI27u7tSg5XGlhoiIiJxWmoyM9PxyScGkEqlUFNT\nQ3BwGnR169aslpoSK1euxMWLF/HgwQMMGjQIAQEB6NatW7UWNURERCSO+/f/FAoQOzt76OrWFTlR\n+RTOfvr9999x7tw5mJubY+/evbhz5w5SU1OrIxsRERGJ7O7dP4TH7dp9LGISxRQWNTo6OlBXV4eG\nhgbS0tJgZmYmM6uJiIiIaq/S42natnUSMYliCrufOnfujJSUFEydOhUODg7Q09PDxx+rdqVGRERE\n76+oqEi4NQIA2Nur9vf/W937KTIyEunp6bC3t1dmJjkcKExERFT9A4WfPHmAMWPaAACMjMxw5ky8\nsNxLjRwoLJVKcezYMVy+fBkSiQTdu3ev9qKGiIiIql/p8TT29h+r7ErCJRSOqZk5cya8vLxgb2+P\nNm3awMvLCzNnzqyObERERCSiu3f/GU+j6l1PQCVaai5cuICwsDCoqRXXP59//jkXyCMiIvoAyLbU\nqPYgYaASLTV2dnaIiooStqOiomBnZ6fUUERERCSu1NRXeP78EQBAQ0MTLVp0EjmRYuW21AwePBgA\nkJGRgZYtW6JLly6QSCQIDQ1F586dqy0gERERVb/79/+Z9dS8eQdoa+uImKZyyi1q5s+fL7NdMjio\n5IaWREREVHvduSM7SLgmKLeocXFxER7Hx8fj+vXrkEgk6NKlC8zMzKojGxEREYmk9KJ7qr6ScAmF\nY2p8fX3h6OiII0eOwNfXF126dMGRI0eqIxsRERGJoKCgAPfv/ylsq/pKwiUUzn5au3Ytrl+/LrTO\nJCYmondk0CPMAAAgAElEQVTv3hg1apTSwxEREVH1i4i4h5yc1wCABg0aoUEDK5ETVY7ClhqpVApT\nU1Nh29jYmKv7EhER1WI1bSp3CYUtNf3790e/fv0wbtw4SKVSHD58GAMGDKiObERERCSC0uNpasog\nYUBBUSOVSjF79mxcv34dV65cAQB4eHhg+PDh1RKOiIiIqt+bt0eoKRS21AwcOBD379/HyJEjqyMP\nERERiSgpKR6xsc8AAHXqaOOjj9qJnKjyKhxTI5FI0KlTJ4SGhlZXHiKiGuv69etITEwUO0a5cnNz\ncerUKbFjkIor3fXUqlVnaGpqiZjm7Shsqbl27Rr279+Pxo0bQ09PD0BxsXP37l2lhyMiqg67du3C\nkSNHcO7cOYwZMwYNGzZEQUEBoqOjoa2tjR9++AHm5uYVXuP69eu4ffu20ldcz8jIgKenJw4cOABN\nTU1MnDgRXl5eiImJwYIFC3D48GG0atUKn332GVauXAkA2Lx5M9avX4+GDRtiwYIF8PX1xejRo6s8\nW15eHhYvXgwzMzMUFhYiKSkJ//73v6GhUfZXTUREBHbv3g1dXV2kpqZCTU0N69atg5aW7Jfo6dOn\nsXfvXrnlRHJzc7F8+XIYGBigoKAAALBixQrh+ZcvX2Lr1q0oLCzE7du30bVrVyxbtqzcPFSs9E0s\na8pU7hISqYKpTM+fPwcAuRlPNjY2Sgv1JolEwhlXRKRUO3bswDfffCPX0jJ+/Hg8f/4cly9fLvfc\nnJwcjBs3DseOHXvvHKmpqfj5559x9+5dmX/3vv76a5mbCdvY2MDCwgJ//PGHzPlqamrw8vLC1KlT\nZfYvWbIEa9asgYaGBiZMmIBvv/0W1tbW7523tMWLFyMrKwvbtm0DAHz11VfQ1NTEd999V+bxHTt2\nxMKFC+Hq6goAcHBwQPv27fHLL78AAPz8/BASEoJ79+6hoKAA58+flzl//PjxsLOzw6pVqwAAEydO\nRNeuXTFjxgxIpVJ4eHjgxx9/hI6ODnJyctCpUyf07t0bW7durdL3XZ3OnAFMTJT7GlOmdMOdO8Xj\naL///r9wcRla5nFJSUC/fu/2Gsr6Xi+3+ykhIQFffvklZs6ciZ9//hlGRkawsbER/hAR1SbBwcH4\n5JNP5PYbGxvj3r17FZ77448/Cl/M7yMsLAwjR45E165dcfDgQfj4+Ah/Shc0AGBkZCR3flBQENTU\n1PDq1SuZ/QEBARg9erTQQvHll19izZo17523tNzcXOzYsQNjxowR9o0aNQp79uyp8LzSwxuaNm0q\nTEoBgKFDh2LTpk1wdnaW+wJ88uQJfHx8hPsUAkCvXr2we/duAMWtQFeuXMGjR8U3ZNTW1oabmxu8\nvLyQl5f37m+0lsvPz8PDh38J2zVpOjdQQVHj7u6OunXrYvbs2cjIyMCcOXOqMxcRUbUKCQlB7969\nZfZJpVKcOXMGAwcOrPDc/fv3Y8SIEe/1+vn5+ZgxYwb2798vc5ua8hgbG8ts5+Tk4MyZM2jSpIlM\nUZObm4uwsDB06NBB2Ne5c2dcunQJr1+/fq/Mpd25cwcZGRlo2rSpsK9x48ZITk7GrVu3yjzn5s2b\n2Lx5s7AdERFRZvddWb/R37x5E4Ds52Bubo7bt28jPT0dWlpaePnyJR4/fiw8r6enh/z8fKSnp7/9\nG/xAPHp0C3l5uQAAK6umMDKqWbdFKrdjMT4+HuvWrQNQvFZN6b8QRES1ycOHD5GQkCBT1OTm5mLJ\nkiWwtrZG27ZtMX78eCxZsgTXr19HcnIy0tLSsHr1aoSHh8PIyEhunEZ2dja2bdsGbW1tXL9+HdOn\nT8e1a9dw9epVrF69Wq7l5dixY3B1dVU4dqeEsbExMjMzhe0ffvgBM2bMwKVLl5CUlCTs9/b2xuTJ\nk+XO79KlC86fP49//etflXo9RaKjowFAGHsJAPr6+gCA2NhYhd8hV69eRXJyMjZt2lSp13tz3A1Q\nXBgWFRUhJiYGrVq1kutKDA0NRZs2bWCi7P6bGqwm3sSytHKLGqlUiuTkZOFxYWGhsA2U3fRJRFQT\nXbx4EXp6ejh69CiA4oImOzsbffv2Rf/+/WFhYYG0tDTMnj0b/v7+2LhxIwICArB69WrcunULzZs3\nl7vmtm3bMHv2bOjo6GDYsGHw8vLCnj17sHr1anh4eMgVNaGhoVi0aFGlMxsbGwtjHh89eoTCwkLY\n2trCyMhIaKmJiYmBjo4ODA0N5c5v2rQpbt++LVfUFBQUYObMmcjPz1eYwdXVFf3+b1BFdnY2gOJu\nnhJ16tQBUDy4uTzPnj3D6dOncejQIXh7e8usYF8RZ2dnaGpqIjExEba2tgCKu+8AlNkS8/TpUxw9\nehT/+9//KnX9D5Xsons1q+sJqKCoSU9PR6dOnWT2lWxLJBI8ffpUucmIiKpJcHAwevfuXWZRcfDg\nQfTt2xdXrlzBtGnToKuriylTpgitHwkJCTAwMJA5RyqVwtnZGTo6OgCKi47NmzdDQ0MDaWlpZWYo\nKCjAl19+WW7GNwcKGxsbQyKRAADWrVsHLy8vYX/Jv8/79+8vt1AyNjZGeHi43H4NDQ3s3Lmz3Bzl\nefMzACC0JJUudN5ka2sLT09PTJw4UWgRW7t2rcLXMzExwddffy3caDknJwdXr14VnistLy8PkyZN\nwq5du+Ds7Pw2b+uDU1MX3StRblETGRlZjTGIiMRz8eJFzJs3r8znxo0bh6ysLFy/fh2HDh0CAJlZ\nQ3l5eXJdIRKJRPjyjI2NxZMnT9CjR48KM9jb26NXr15Cq4MiJiYmkEql2LdvHwYOHCgUUMbGxggN\nDUVISAi6desmFD5vqlOnDoqKiir1WpVhaWkJAEhLSxNaW0paaCozy6pu3boYOnQo1q9fj2nTplXq\nnOXLl+PQoUPYunUrdHV14ebmhkuXLsHOzk7muDlz5mDevHkYOrTsWTxULD4+Ci9fxgIAdHXromnT\nNiInenucrE9EH7Tw8HAkJCRU+Bv8pUuXYG1tDSsr+TsVm5mZlflLYFFREdTU1BAUFIROnToJY02u\nXLlS5muNGTMGixcvxvbt2yuV29jYGCkpKThx4oTQbVayPzExEdeuXcPChQvLPf/Vq1do0KCB3P78\n/Hx4enq+dfeTvb290EpUUtSEhYVBX18fbdu2lTv3ypUrGDZsGPbs2SPMYNLU1IRUKpVrzSqvMDty\n5Ai6d+8uFFRLly6Fu7u7zDEbN27E0KFDhXsWHj58GIMGDULdunUVvr8Pzc2bIcJje/uPoa6uLmKa\nd8Oihog+aBcvXoSWlpZcd3tp58+fl5sZVcLW1hYnTpyQ2ff7779j1qxZiI+Px3//+1989NFHAIq7\nY/74448yi5q6detixIgR8PT0xMqVKxWOLTEyMkJERAR8fX1l9hsbGyMvLw9ubm4Vnp+QkFDme9bU\n1Hyn7id1dXW4urriyJEjcHR0BAD4+PjAw8NDaMkKCAjAsWPH4OXlBT09PWhrawvvUyqV4vz583B2\ndpYrgspbz2TWrFnYvn07Ro0ahejoaAQFBeH06dPC897e3oiLi0P79u0RGBgoZCg97Zz+cevWP0VN\nhw4VtyyqKoWL76kCLr5HRFXt4cOH2LZtGwICApCUlAR3d3d4enrKDeAFgGHDhmHmzJno27ev3HN5\neXlo3bq1zNTha9euYfPmzXB0dETXrl2xbds29OzZE69fv4anp2eFY0wePXqETZs2ISEhQaZba+XK\nlWjdurWwfevWLezdu1duIbnjx4/j6dOnmD9/foXvv2vXrvDz8yuzteZdZWVlYe7cuWjcuLGwovCm\nTZuE97FlyxZs2bIFDx8+hI6ODs6ePYtbt24hKysLz549g4GBAdatW4d69eoBAM6ePYvff/8d/v7+\nSElJwfDhw+Hs7IyZM2cCAHx9fXHv3j1oaWkhLi4OCxcuFLrvwsPD0a5dO7kWp+7du+PixYtV9p6r\nmzIX3xsxojmiov4GAOzaFYIOHbpXeLwqLr5XqaLm0qVLiIiIwKRJk5CYmIjMzMxK9/tWBRY1RKTK\nxo0bh0WLFqFdu5px47+kpCSMHDmyRn+5f6iUVdQkJcWjf//i5QS0tOrgwoVU1KlTfvFdfI7qFTUV\n3tASKP7t4LvvvsP69esBFP9WMmHChCoPQkRUU61atUq4NUBNsGXLFuHWAkQA8NdfF4THbdo4Kixo\nVJXCoub48ePw8/MTBrlZWlpWuOYAEdGHplmzZrC2tsa1a9fEjqLQkydPkJiYWKlVi+nDERLyz7iw\nLl36iJjk/SgsaurUqQM1tX8Oy8rKUmogIqKa6JtvvsGZM2fw8uVLsaOUKy8vDzt27MCPP/4odhRS\nIfn5ebhy5Z8B1j171typ7wqLmlGjRsHDwwOpqanYuXMnevfujS+++KI6shER1SgrVqyAmZnq3itH\nS0sL33//fYUDlenDc+NGMLKyildhtrCwgZ2d/BT8mkLhlO4FCxbg7Nmz0NfXx99//401a9bg008/\nrY5sREREpGQXL/oJj3v2HFruukA1gcKiZtOmTXB1dS1zKiMRERHVXFKp9I2iZpiIad6fwu6njIwM\n9O3bF926dcP27duRkJBQHbmIiIhIye7duybcGqFefSO0b99N5ETvp1JTuh88eID//Oc/ePHiBXr0\n6FHuyppERERUc5w86S08/sRlODQ0avaNBhQWNSXMzMzQsGFD4b4iREREVHPl5LzG2bOHhO3BgyeJ\nmKZqKCxqfvrpJ7i4uKB3795ISkrCL7/8grt371ZHNiIiIlKS4OD/CrOerK2boV27j0VO9P4UtjNF\nRUVhy5YtaN++fXXkISIiompw4sRe4fG//vV5jZ71VKLcoiY9PR316tXDggULIJFIkJycLPO8kZGR\n0sMRERFR1YuPj8L160EAiu/DNHBgxXd1rynKLWrGjh0Lf39/dOrUqczq7dmzZ0oNRkRERMpx6tSv\nwg0lHR0/RcOGjUROVDXKLWr8/f0BAJGRkdWVhYiIiJRMKpXi1ClvYftf//pctCxVTeFA4bKmb3NK\nNxERUc10+/ZlxMQ8AQDUrVsfLi41e8G90sptqcnOzsbr16+RmJgoM54mPT0dsbGx1RKOiIiIqlbp\ntWn69nWFtraOeGGqWLlFjZeXF3788UfExcWhU6dOwn59fX3MmjWrWsIRERFR1cnOzsK5c77C9pAh\nNX9tmtLKLWrmzp2LuXPnYuvWrZgzZ051ZiIiIiIlCAo6itevMwEANjYt0Lp1F5ETVS2F69TMmTMH\n9+/fR1hYGHJycoT97u7uSg1GREREVevkyX/Wphk8eFKtWJumtErd+2n27NmYNWsWLly4gIULF+LE\niRPVkY2IiN7Tixcv8P3336vctaj6xcY+w40bwQAANTU1DBw4QdxASqCwqPn9999x7tw5mJubY+/e\nvbhz5w5SU1OrIxsREb2nvLw8ZGVlVcm1cnNzq+xaVP1OndonPHZy6g9TUwsR0yiHwqJGR0cH6urq\n0NDQQFpaGszMzBAdHV0d2YiIqAplZGTA3d0d6urq0NbWhoeHBwAgJiYGY8eOhZqaGtq0aYOVK1cK\n52zevBmmpqZo27Yt9u/fr/SMAwcORFxcnLCdl5eHefPmYcOGDVi3bh2++uorFBQUCM/n5uZiwYIF\nWLduHVatWoVVq1bJXO/ly5dYvnw5lixZggEDBmDVqlUy538oioqK4O//T1EzePDn4oVRIoVFTefO\nnZGSkoKpU6fCwcEBHTp0wMcf1/ybXhERfWj09fXx66+/olGjRujYsSO8vLwAAFZWVvDx8QEAfPnl\nlzJFzbx58/DFF1/g1q1bcHNT7lL6vr6+CAwMlCk6vvnmG+Tn52Px4sVYtmwZAGDp0qXC85MnT4au\nri6WLVuGFStW4OnTp9ixYweA4kXmli9fjmXLlmH9+vU4fvw4fH19MW/ePKW+D1V08+ZFxMVFAgDq\n1TNEjx5DxA2kJJW6S7ehoSGmT5+Os2fPYt++fdi7d6+i04iISEWVde++oKAgqKmp4dWrVzL7AwIC\nMGbMGGhoKJxX8l7S09Nx+fJlmX25ubnYsWMHxowZI+wbNWoU9uzZAwB48uQJfHx8MHjwYOH5Xr16\nYffu3QCAiIgIXLlyBY8ePQIAaGtrw83NDV5eXsjLy1Pq+1E1pdem6ddvHLS06ogXRonKLWpu3LiB\nmzdvyvxJSUlBYWEhbt68WZ0ZiYioChkbG8ts5+Tk4MyZM2jSpIlMUZObm4uwsDC0b99e6Zm8vLyE\n7rASd+7cQUZGBpo2bSrsa9y4MZKTk4XvJUD2/Zibm+P27dtIT0+HlpYWXr58icePHwvP6+npIT8/\nH+np6Up+R6ojKysDQUG/C9u1bW2a0sotvefPn1/hVK8LFy4oJRARESmXsbExMjMzhe0ffvgBM2bM\nwKVLl5CUlCTs9/b2xuTJk5We56+//kLLli2hp6cns79k/Gbp/fr6+gCAuLg41Kkj39qQn5+PoqIi\nxMTEoFWrVkhMTJR5PjQ0FG3atIGJiUlVvw2Vde7cEeTkvAYANG3aBi1adBQ5kfKUW9QEBwdXYwwi\nIqouxsbGeP78OQDg0aNHKCwshK2tLYyMjISWmpiYGOjo6MDQ0FDh9QoKCjBz5kzk5+crPNbV1RX9\n+vUTtgsLC3Hq1CmsXLlS7gbK2dnZAIq7jUqUFDIZGRno27cvNDU1kZiYCFtbWwBAWFgYAJTZEvP0\n6VMcPXoU//vf/xTmrE1q+9o0pSnsJN23b1+ZH0BlFt8LDAzE3LlzUVhYiC+++AKLFi0q87jr16/D\nyckJvr6+GDFiRCViExHRuzI2Nhb+XV+3bp0wYNjY2BhPnz4FAOzfv7/cf7PfpKGhgZ07d75TFm9v\nb0yaVHZ3iIGBgdy+khYmbW1tGBsb4+uvv4avry+6dOmCnJwcXL16FQDkWmLy8vIwadIk7Nq1C87O\nzu+UtSaKjo7A7dvFY5XU1dUxYMB4kRMpl8Ki5vr168L//NnZ2Th//jw6duyosKgpLCzErFmzcO7c\nOVhaWqJz584YMmQIWrZsKXfcokWL0L9/f0il0vd4K0REVBkmJiaQSqXYt28fBg4cCB2d4hsaGhsb\nIzQ0FCEhIejWrZvSf6OPi4tDTk4OGjduLLO/5LvA0tISAJCWlgZTU1MAxS00AGBtbQ0AWL58OQ4d\nOoStW7dCV1cXbm5uuHTpEuzs7GSuOWfOHMybNw9Dhw5V6ntSNaUHCDs7D4KxcQPxwlQDhUXN9u3b\nZbZTU1NlRqKXJzQ0FHZ2drCxsQFQ3OTo5+cnV9Rs27YNn332Ga5fv/4WsYmI6F0ZGxsjJSUFJ06c\nwNGjR2X2JyYm4tq1a1i4cGGlr5efnw9PT8+37n46f/48nj59iiVLlgAoXlMGADZu3AgnJyeMHz9e\naD0qKWrCwsKgr6+Ptm3bAgCOHDmC7t27CwXQ0qVL5X7p3rhxI4YOHYoBAwYAAA4fPoxBgwahbt26\nlX6PNVFx117tX5umtLeeo6erq4tnz54pPC42NhaNGjUStq2srPDnn3/KHePn54fz58/LtAgREZHy\nGBkZISIiAr6+vjL7jY2NkZeX99br0Whqar5T99OECRMwYcI/S/UHBwdj7969WLx4sdAS4+rqiiNH\njsDR0REA4OPjAw8PD2hpaQEAZs2ahe3bt2PUqFGIjo5GUFAQTp8+LVzT29sbcXFxaN++PQIDAwH8\nM029trt+/TxevowBABgYmKBbt0EiJ1I+hUVN6fn/RUVFCAsLw+jRoxVeuDIFyty5c7FhwwZIJBJI\npVJ2PxERVYOGDRti5syZsLe3l9u/cuVKmJubV3umf//73/D394dEIoGnpyeGDx+OyZMnY8OGDZg7\ndy7Wrl2LwsJCGBgYYO3atcJ527Ztw927dxEeHo64uDgcOnRImOIdHh4ODw8P5OfnY9u2bcI53bt3\nr/b3J4ZTp7yFxwMGjIemppZ4YaqJwqJm/vz5/xysoYHGjRvLtMCUx9LSUuZ2CtHR0bCyspI55saN\nG3B1dQUAJCUlISAgAJqamhgyRH6lw9IrXLq4uMDFxUVhBiIiktehQwd06NBBbv/w4cNFSFNswYIF\nWLBggdx+PT097Nq1q9zzRo8eXe4v2i1atEBubm6VZaxJMjJScf7CMWF78GBx16YJDg6ullnVCoua\nkuIhPT1dWLo6OTm5zBUpS3NwcMDjx48RGRkJCwsLHD58WFiGu0TJKHsAmDRpEgYPHlxmQQPIFjVE\nRERUvv/9zxd5uTkAgI8+ao+PPmonap43GyPevEdXVVFY1Hh5eWHFihWoU6cO1NSKFyCWSCQyBUmZ\nF9bQwPbt29GvXz8UFhZiypQpaNmypTB18M2VI4mIiKhqlF6bpjavIPwmiVTBQBY7Oztcu3ZN1NUX\nS8bcEBHR20lOTsbZs2eFrn5VuRa9mzNnAEVfxw8f3oCbmwMAQENDE4GBcTAwqPrv8KQkoNQ6im9F\nWd/rCm9o2aRJE2ENAyIiqlmMjIyqrAipymuRckilUmzb9s+iiZ98MlwpBY2qUtj9tGHDBjg5OcHJ\nyUmYQieRSLB161alhyMiIqLKu3btLEJDgwAAaurq8PBQztgVVaWwqJk2bRr69OmDtm3bQk1NDVKp\nlOvJEBERqZiioiKZVpqhQ6bAxqaFiImqn8KiprCwEJs3b66OLERERPSOAgIO4O+/7wAAtLV14eGx\nUtxAIlA4pmbAgAHw8vLCixcvkJycLPwhIiIi1ZCbm4MdO5YL2+PHz4OJSfUvoig2hS01Bw8ehEQi\nwYYNG2T2V+ZWCURERKR8R478B/HxUQCKb4ng5ia/kOGHQGFRExkZWQ0xiIiI6F1kZKRiz551wvYX\nX3yDunXriZhIPAqLmn379pU5MPjNu6ASERFR9fP23oD09BQAgKVlE4wc+eEubquwqCl99+zs7Gyc\nP38eHTt2ZFFDREQksvj4aPgc+lHYnjlz3Qdx48ryKCxqtm/fLrOdmpr6QdyynYiISNV5ea0Q7vHU\nsmUnfPpp2Tf3/FAonP30Jl1dXQ4SJiIiEllExH34++8TtufM+U64R+OHSmFLzeDBg4XHRUVFCAsL\nK/c270RERFQ9tm9fjKKiIgDAxx/3R+fOvUROJD6FRc38+fP/OVhDAzY2NrCyslJqKCIiIirfjRsX\ncfmyP4DiWxfNnr1R5ESqodyi5vHjx0hISICLi4vM/suXLyM3NxdNmzZVdjYiIiJ6g1QqxdatC4Xt\ngQPd0KyZvYiJVEe5nW9z585FvXry89zr1auHuXPnKjUUERERlS0o6CgePAgFAGhqamH69NUiJ1Id\n5RY1CQkJsLeXr/zs7e05UJiIiEgEBQX5+OmnpcL2mDGzYW7eWMREqqXcoiY1NbXck3JycpQShoiI\niMoXELALUVGPAQD6+gaYNGmpgjM+LOUWNQ4ODti5c6fc/l27dqFTp05KDUVERESyMjIycODAKmH7\n88+XoH59IxETqZ5yBwpv2bIFw4cPx4EDB4Qi5saNG8jNzcXx48erLSAREREBmzZtQmrqSwCAmZkV\nxoyZLXIi1SORSqXS8p6USqW4cOEC7t+/D4lEgtatW6NXr+qfBy+RSFBBTCIiolotPj4eTe2a4nXW\nawDAihV7MXjw56JmSkoC+vV7t3OV9b1e4To1EokEvXr1EqWQISIiomJ37txBvjQfANC0aRsMHOgm\nciLVpHDxPSIiIhKX5keaMFtiho5/DUOfXoOgrq4udiSVxKKGiIhIheUU5GD6qenYMWoHtDoPhomJ\n2IlU14d95ysiIiIVt/7SerRt0BaDmw9WfPAHji01REREKio8KRz/uf4f3J5+W+woNQJbaoiIiFSQ\nVCrF9FPT8U3Pb2BVjzeSrgwWNURERCpo3519yMzLhGdnT7Gj1BjsfiIiIlIxSa+TsPjcYpwefxrq\napzpVFlsqSEiIlIxC/63AGPbjEVH845iR6lR2FJDRESkQi48u4Cgp0F4MPOB2FFqHLbUEBERqYjU\nnFR87vc5dgzaAf06+mLHqXFY1BAREamAImkRpp6ciiEfDcGgjwaJHadGYvcTERGRClh8bjFi02Px\n67BfxY5SY7GoISIiEtmmPzbh1N+ncHnyZeho6ogdp8ZiUUNERCSi3+78hq2hW3F50mUY6RiJHadG\nY1FDREQkkoDHAVjwvwW4MPECGtVvJHacGo9FDRERkQiuxVyD+3/dccL1BFqathQ7Tq3A2U9ERETV\n7GHiQww7NAzeQ73h1MhJ7Di1BosaIiKiahSTHoP+B/rju0+/49TtKsaihoiIqJokZyej3/5+mNV5\nFtzbuYsdp9ZhUUNERFQNXue/xmCfwRhgNwALnBeIHadWYlFDRESkZPmF+Rjz+xg0MWyC7z79Tuw4\ntRaLGiIiIiWSSqWYdmoaCosKsWfIHqhJ+NWrLJzSTUREpERLgpbgYeJDBLkHQVNdU+w4tRqLGiIi\nIiX54eoP8Hvkh8uTLkNPS0/sOLUeixoiIiIlOHD3AH649gMuT74MY11jseN8EFjUEBERVbEzEWcw\n7+w8nHc/D+v61mLH+WCwqCEiIqpCobGhmHB8Av475r9obdZa7DgfFA7BJiIiqiKPkh5h6KGh2DNk\nD5ytncWO88FhUUNERFQFYtNj0W9/P3zb61sMbj5Y7DgfJBY1RERE7yklOwX9D/THDIcZmNRhkthx\nPlgsaoiIiN5Ddn42hhwagj62fbDQeaHYcT5oLGqIiIjeUUFRAVyPusK6vjU29dsEiUQidqQPGmc/\nERERvQOpVIrpp6YjtyAXR0Yd4e0PVACLGiIionew/Pxy3E24i/MTz0NLXUvsOAQWNURERG9tXcg6\nHA8/joufX0Rdrbpix6H/w6KGiIiokqRSKTZe2Yhf7/6K4InBMNUzFTsSlcKihoiIqBJe57/GTP+Z\n+CvuL5x3Pw9zfXOxI9EblD6qKTAwEC1atECzZs2wceNGuecPHDiAdu3awd7eHs7Ozrh7966yIxER\nEUg8fZkAABs8SURBVL2Vx68ew2m3EwqKCvDnF3/Csp6l2JGoDEotagoLCzFr1iwEBgYiLCwMPj4+\nePjwocwxTZo0QUhICO7evYuvv/4a06ZNU2YkIiKit/Lf8P/CeY8zpneajt+G/wY9LT2xI1E5lNr9\nFBoaCjs7O9jY2AAAXF1d4efnh5YtWwrHODk5CY8dHR0RExOjzEhERESVUlBUgGVBy3DowSGcHHsS\njlaOYkciBZRa1MTGxqJRo0bCtpWVFf78889yj9+9ezcGDhyozEhEREQKxWfGY+zRsdBS18KNaTdg\nomsidiSqBKV2P73NyooXLlzAnj17yhx3Q0REVF0uR12Gw04H9LDugdPjTrOgqUGU2lJjaWmJ6Oho\nYTs6OhpWVlZyx929exdTp05FYGAgDA0Ny7zWypUrhccuLi5wcXGp6rhERPQBk0ql2HJtCzZc2YC9\nQ/diYDP2HFSV4OBgBAcHK/11JFKpVKqsixcUFKB58+YICgqChYUFunTpAh8fH5kxNVFRUejVqxf2\n79+Prl27lh1SIoESYxIR0Qfu1etXmO4/Hc9SnuH30b/DxsBG7EhlOnMGMFGRhqOkJKBfv3c7V1nf\n60rtftLQ0MD27dvRr18/tGrVCmPGjEHLli3h5eUFLy8vAMDq1auRkpKCGTNmoEOHDujSpYsyIxER\nEck49vAY2u5oCyt9K1yefFllCxpSTKktNVWFLTVERFTVErMSMTtgNm7F38KeIXvgbO0sdiSF2FJT\nMd5SlIiIPjhHHhyB/c/2aFSvEW573K4RBQ0pxtskEBHRByMhMwGepz3xIPEBjo85jq5WZY/lpJqJ\nLTVERFTrSaVS+NzzQbuf26GZUTPc8rjFgqYWYksNERHVavGZ8ZjhPwOPXz3GybEn0dmys9iRSEnY\nUkNERLWSVCrF/rv70e7ndmht2ho3pt1gQVPLsaWGiIhqnbiMOHic8sDz1Oc4Pe40Oll0EjsSVQO2\n1BARUa0hlUqx7/Y+tP+5PTo27Ii/pv3FguYDwpYaIiKqFWLSYzDt5DS8yHyBs25n0b5he7EjUTVj\nSw0REdVoUqkUu2/uRgevDnCyckLoF6EsaD5QbKkhIqIaKyotClNPTkXS6yScdz+Ptg3aih2JRMSW\nGiIiqnGkUim8/vJCp52d0LNxT1ybco0FDbGlhoiIapbI1Eh8ceILpOemI3hiMFqbtRY7EqkIttQQ\nEVGNEJUWhXln5qHTzk7o27Qv/pjyBwsaksGihoiIVNq9hHtwP+6O9j+3hwQS3Pa4jYXOC6Ghxs4G\nksX/I4jo/7d352FR1fsfwN+ssqMoDMiI4Mg67Kt6syISXBI1Da1bpuVS3q55n5s3e3499+l2c8ml\nW0ameelqLrhVprmAiqi5YSxiYi4sioKoIILDMjDz/f1BnhxBU7YBfL+e5zwz53vOHD7n48L7+c6Z\nOUQdjhACqQWpWHRkETKvZuLtiLexdNhSdDfrru/SqANjqCEiog5Do9XguzPfYeGRhaiorcDsQbPx\n3fjvYGZspu/SqBNgqCEiIr2rrqvGqqxVWHJ0CRwsHfB/g/8PsZ6xMDTgVRL08BhqiIhIb0qrSrHs\nxDLEn4jHAPkArB69Gn9y+ZO+y6JOiqGGiIjaXUF5AT45+gnWZq/FGK8xSH01Fd723vouizo5hhoi\nImo3mcWZWHRkEZJykzA1eCp+mfELelv31ndZ1EUw1BARUZsSQmBf/j4sPLwQOddzMGvALCx/bjls\nutnouzTqYhhqiIioTdRr67H59GYsOrIItZpazB40Gy/5vQRTI1N9l0ZdFEMNERG1KpVaha8zv8Yn\nxz6Bi60LPoz8EMPdh/OTTNTmGGqIiKhVXFddR3xaPL78+UsM7jsYiWMTMUA+QN9l0WOEoYaIiJpN\nCIGfLv2E5enLsePcDoxXjsdPr/0Ej54e+i6NHkMMNURE9MhuVt/Emuw1WJG+AlqhxfSQ6fh82Oew\nM7fTd2n0GGOoISKihyKEQNqVNCxPX46tv27FsP7DsGz4MjzZ90kYGBjouzwihhoiInqwytpKrDu1\nDst/Xo7b6tuYHjIdC99aCHtLe32XRqSDoYaIiBqp19Zjf/5+bDy9Ed+e+RZRblFYHL0Yz7g9w08x\nUYfFUENERAAagsyBggPYdHoTvvv1O/Tr0Q8v+LyAnBk5cLJ20nd5RH+IoYaI6DF2s/om9ubtRVJu\nEraf2w4XWxfE+cQhbUoa3Hq46bs8okfCUENE9Bip19Yj7Uoaki4kITkvGaevncYTLk8gRhGD9554\nDwo7hb5LJGo2hhoioi7uYvlFJOUmITk3GSn5Kehj2wcxihh8FPkRnnB5At2Mu+m7RKJWwVBDRNTF\nqNQqHLh4AEkXkpCUm4Sy6jIMUQxBrGcsPh/2Oa+PoS6LoYaIqJMTQiC7JBtJuQ0hJu1KGkKcQhCj\niMH6sesR6BjITyzRY4GhhoioE7qmuoY9uXuQlJuEPXl7YGVqhRhFDN6OeBuRrpGw7mat7xKJ2h1D\nDRFRJ6DWqHGk8AiSc5ORlJuE3LJcRLpFIrpfND54+gP069FP3yUS6R1DDRFRBySEwIWyC1KIOXDx\nADx6eiBGEYNPYz7FAPkAmBiZ6LtMog6FoYaIqIOoqK1ASn6KdIFvraYW0YpovOT3Er4e9TV6WfTS\nd4lEHRpDDRGRnmi0GmQUZ0gX+GZdzcJA+UDEKGLwl/C/QGmv5I0iiR4BQw0RUTvRCi3ybubh0MVD\nSMpNwt68vZBZyRCjiMH7g9/H4L6DYWFioe8yiTothhoiojag0WpwtvQsMoozpCXzaiZ6mPVAhDwC\n0f2isWjIIvSx7aPvUom6DIYaIqIWUmvUyLmeoxNgskuy4WTthGCnYAQ7BuP9J99HkGMQelr01He5\nRF0WQw0R0SOoqa/BqZJTUnhJL05HzvUcuPVwkwLMCz4vINAxELZmtvoul+ixwlBDRNQEIQSKbxfj\n9LXTOH39NE6WnERGcQbOl56HR08PhDiFINgpGJMCJ8Ff5g9LU0t9l0z02GOoIaLHmhACJaoSKbzc\necy5ngMjQyMo7ZVQ2isxUD4Qfwn7C3wdfGFmbKbvsomoCQw1RPTYuKa61ii8nL5+GgCk8OIn88ME\n3wlQOijhYOmg54qJ6FEw1BBRl3Oj6kaT4aVeWy+FF6WDEuN8xkHpoITMUsbvgyHqAhhqiKjTKq0q\nbRRccq7noKa+Rie8jPYaDaWDEk5WTgwvRF0YQw0RdVhCCFyvuo5Lty5JS97NPCnIVNVVQemglAJM\nrGcsfOx94GztzPBC9BhiqCEivampr0HhrUKd0HLp1iVcqvj9uYWJBVxsXRoWGxe4dnfFcPfhUNor\nIbeRM7wQkYShhojaxL2zLBfLLzYKLOU15ZDbyHVCywD5AMTZxsHF1gV9bPvAytRK36dCRJ0EQw0R\nNUt1XTUKK5qYZfltKawohJWplU5gcbF1waA+g6QxmZUMhgaG+j4VIuoiGGqIqBGVWoUrlVdwpeIK\nLldcxpXK3x/vvF1UUVuhO8vyW2CZ4DtBWufNGYmoPTHUED1G6jR1KFGVoLiyGMW3i1FcWYyiyiKd\n0HK54jKq66oht5HD2cYZchs55NZyePT0wDNuz8DZ2hl9u/eFg6UDZ1mIqENhqCHqhIQQUNWpUFpV\nirLqMp2ltLrxWFl1Ga6pruFmzU3YW9jDydoJjlaOcLJyQm/r3gh3Dsfz3s/D2bohxNiZ2/ECXCLq\ndBhqiPRICIFKdaVuKLk3qNQ0MVZdBlMjU9iZ2+ksPc17ws7cDjJLGbx7eTeMWTSM9bLoBXsLexgZ\nGun7tImI2gRDDVErEEKgorbivrMkpVWlKKtpPHaz5ibMjM2aDCZ25nZwsnaC0kGpM2Znboce5j14\n/yEionu0aajZvXs3Zs2aBY1GgylTpuDdd99ttM/MmTOxa9cuWFhYYNWqVQgKCmrLkoh0qDVqqNQq\n3FbfhqpOpfO8srYSt2pv4VbNLVTUVjQ8/2393sfymnJYmFj8Hkx+mx2xM2tYl9vIEeAY0Ghmxc7c\nDqZGpvpuAxFRl9BmoUaj0eCtt97C3r174ezsjLCwMMTGxsLb21vaZ+fOnbhw4QLOnz+P48eP4803\n38SxY8faqiT6TWpqKp5++ml9l/HQhBCorq9uCBtqFVR1Kun5nQDS5La62/cNLHf2ERCwMrWCpYll\nw6Oppc66bTdb2JrZwqabDRQ9FLA1s5XGbLvZ4syJM4h+Nho9zHrAxMhE363q9Drb382Ojv1sPexl\n59BmoSYtLQ39+/eHq6srAGDChAn44YcfdELNtm3b8OqrrwIAIiIiUF5ejpKSEshksrYqi9C8f5xC\nCNRqalFdV42a+poHLtX1Ld/n7p9TXV+NbkbdpNBxvwBiaWIJS1NLdDfrDmdr50b7NNrf1LLFsyTb\nM7fj5VEvt+gY9Dv+4mhd7GfrYS87hzYLNVeuXEGfPn2kdblcjuPHj//hPpcvX+7UoUYIAa3QQiM0\nDY9aDTRCIz3eb6xeWw+1Ro06TR3qtHWNHlu07Z7xX079gmNrjzW57c6jWqOGWqOWgkWtphbdjLrB\nzNgMZsZmMDcxl57fu5gbN72tl0Wv+2570DHNjc15cSsREf2hNgs1D/txUCHEQ71u+LrhEBAQQjR6\n1ArtfbcJ/Lb9EbbdHTruBJSHHdMKLQxgACNDIxgZGMHQwFB6/qAxI0MjmBqZwsTQBCZGJjqPpkam\njcbut93cxBw2hjYPfO2WQ1swMWJi08e96/HuYGFqZMrvJCEioo5NtJGjR4+KmJgYaX3evHliwYIF\nOvtMnz5dJCYmSuuenp7i6tWrjY6lUCgEAC5cuHDhwoVLF1gUCkWbZI82m6kJDQ3F+fPnUVBQgN69\ne2Pjxo1ITEzU2Sc2Nhbx8fGYMGECjh07hu7duzf51tOFCxfaqkwiIiLqItos1BgbGyM+Ph4xMTHQ\naDR4/fXX4e3tjRUrVgAApk+fjuHDh2Pnzp3o378/LC0t8b///a+tyiEiIqIuzkCIey5qISIiIuqE\nOvSVn7t374aXlxfc3d3x8ccf67ucDuW1116DTCaDn5+fNFZWVoYhQ4bAw8MD0dHRKC8vl7bNnz8f\n7u7u8PLyQnJysjSenp4OPz8/uLu74+2335bGa2trMX78eLi7u2PAgAG4ePFi+5yYHhQWFiIyMhJK\npRK+vr5YunQpAPazuWpqahAREYHAwED4+PjgvffeA8B+toRGo0FQUBBGjhwJgL1sCVdXV/j7+yMo\nKAjh4eEA2M+WKC8vx7hx4+Dt7Q0fHx8cP35cv/1skyt1WkF9fb1QKBQiPz9fqNVqERAQIHJycvRd\nVodx8OBBkZGRIXx9faWx2bNni48//lgIIcSCBQvEu+++K4QQ4vTp0yIgIECo1WqRn58vFAqF0Gq1\nQgghwsLCxPHjx4UQQgwbNkzs2rVLCCHEF198Id58800hhBAbNmwQ48ePb7dza2/FxcUiMzNTCCFE\nZWWl8PDwEDk5OexnC6hUKiGEEHV1dSIiIkIcOnSI/WyBJUuWiJdeekmMHDlSCMF/6y3h6uoqSktL\ndcbYz+abOHGiSEhIEEI0/HsvLy/Xaz87bKg5cuSIzqen5s+fL+bPn6/Hijqe/Px8nVBz96fHiouL\nhaenpxCi8SfPYmJixNGjR0VRUZHw8vKSxhMTE8X06dOlfY4dOyaEaPiL2qtXrzY/n45i1KhRYs+e\nPexnK1CpVCI0NFT88ssv7GczFRYWiqioKJGSkiKee+45IQT/rbeEq6uruHHjhs4Y+9k85eXlws3N\nrdG4PvvZYd9+auqL+a5cuaLHijq+u7+NWSaToaSkBABQVFQEuVwu7Xenl/eOOzs7Sz2+u//Gxsaw\ntbVFWVlZe52K3hQUFCAzMxMRERHsZwtotVoEBgZCJpNJb+2xn83zt7/9DYsWLYKh4e//XbOXzWdg\nYIBnn30WoaGhWLlyJQD2s7ny8/Nhb2+PyZMnIzg4GFOnToVKpdJrPztsqHnYL++jphkYGLCHj+j2\n7dsYO3YsPvvsM1hbW+tsYz8fjaGhIbKysnD58mUcPHgQ+/fv19nOfj6cH3/8EQ4ODggKCmr0RaV3\nsJeP5vDhw8jMzMSuXbvwxRdf4NChQzrb2c+HV19fj4yMDMyYMQMZGRmwtLTEggULdPZp73522FDj\n7OyMwsJCab2wsFAnyVFjMpkMV69eBQAUFxfDwcEBQONeXr58GXK5HM7Ozrh8+XKj8TuvuXTpEoCG\nv7i3bt2CnZ1de51Ku6urq8PYsWPxyiuvYPTo0QDYz9Zga2uLESNGID09nf1shiNHjmDbtm1wc3PD\niy++iJSUFLzyyivsZQs4OTkBAOzt7TFmzBikpaWxn80kl8shl8sRFhYGABg3bhwyMjLg6Oiot352\n2FBz95f3qdVqbNy4EbGxsfouq0OLjY3F6tWrAQCrV6+WfjnHxsZiw4YNUKvVyM/Px/nz5xEeHg5H\nR0fY2Njg+PHjEEJgzZo1GDVqVKNjbdmyBVFRUfo5qXYghMDrr78OHx8fzJo1SxpnP5vnxo0b0qcd\nqqursWfPHgQFBbGfzTBv3jwUFhYiPz8fGzZswDPPPIM1a9awl81UVVWFyspKAIBKpUJycjL8/PzY\nz2ZydHREnz59cO7cOQDA3r17oVQqMXLkSP31s3mXB7WPnTt3Cg8PD6FQKMS8efP0XU6HMmHCBOHk\n5CRMTEyEXC4XX3/9tSgtLRVRUVHC3d1dDBkyRNy8eVPaf+7cuUKhUAhPT0+xe/duafznn38Wvr6+\nQqFQiL/+9a/SeE1NjXjhhRdE//79RUREhMjPz2/P02tXhw4dEgYGBiIgIEAEBgaKwMBAsWvXLvaz\nmbKzs0VQUJAICAgQfn5+YuHChUIIwX62UGpqqvTpJ/ayefLy8kRAQIAICAgQSqVS+r3CfjZfVlaW\nCA0NFf7+/mLMmDGivLxcr/3kl+8RERFRl9Bh334iIiIiehQMNURERNQlMNQQERFRl8BQQ0RERF0C\nQw0RERF1CQw1RERE1CUw1BB1QoaGhnjnnXek9cWLF+Nf//pXqxx70qRJ+Pbbb1vlWA+yefNm+Pj4\nNPoyLa1Wi5kzZ8LPzw/+/v4IDw9HQUFBm9dDRJ0fQw1RJ2Rqaorvv/8epaWlAFr3XmktOVZ9ff1D\n75uQkID//ve/2Ldvn874xo0bUVxcjFOnTiE7Oxtbt25F9+7dm10TET0+GGqIOiETExNMmzYN//nP\nfxptu3emxcrKCgCQmpqKp556CqNHj4ZCocCcOXOwZs0ahIeHw9/fH3l5edJr9u7di7CwMHh6emLH\njh0AAI1Gg9mzZyM8PBwBAQH46quvpOMOHjwYo0aNglKpbFRPYmIi/P394efnhzlz5gAAPvzwQxw+\nfBivvfYa/vGPf+jsf/XqVen+PADQu3dvKdQkJydj0KBBCAkJQVxcHFQqFQBg9+7d8Pb2RkhICGbO\nnImRI0cCAD744AMsWbJEOpavr690H5m1a9ciIiICQUFBeOONN6DVaqV+vf/++wgMDMTAgQNx7do1\nAA13ch4zZgwCAwMRGBiIY8eO3fc4Go0GkyZNkmabPv300wf9cRJRK2GoIeqkZsyYgXXr1qGiokJn\n/N6ZlrvXs7OzsWLFCpw5cwZr1qxBbm4u0tLSMGXKFHz++ecAGu6FdfHiRZw4cQI7duzAG2+8gdra\nWiQkJKB79+5IS0tDWloaVq5cKb0tlJmZiaVLl+Ls2bM6P7uoqAhz5szB/v37kZWVhRMnTuCHH37A\nP//5T4SGhmL9+vVYuHChzmvi4uKwfft2BAUF4Z133kFWVhaAhntKzZ07F/v27UN6ejpCQkLwySef\noKamBtOmTcOPP/6I9PR0lJSUSOd8v16cOXMGmzZtwpEjR5CZmQlDQ0OsW7cOQMP9gQYOHIisrCw8\n+eSTWLlyJQBg5syZiIyMRFZWFjIzM+Hj49PoOEZGRli3bh1OnjyJoqIiabZp8uTJj/aHS0TNYqzv\nAoioeaytrTFx4kQsXboU5ubmD/WasLAwyGQyAED//v0RExMDoGEGY//+/QAafvHHxcVJ+/Tr1w+/\n/vorkpOTcerUKWzZsgUAUFFRgQsXLsDY2Bjh4eHo27dvo5934sQJREZGomfPngCAP//5zzh48KB0\ns7qm7tLi7OyMs2fPIiUlBSkpKYiKisLmzZtRVVWFnJwcDBo0CACgVqsxaNAgnD17Fm5ublAoFACA\nl19+WZpFaooQQgpGoaGhABpuvOno6Aig4a29ESNGAABCQkKwZ88eAMD+/fuxdu1aqUc2Njb45ptv\nGh1HJpNh5MiRyMvLw8yZMzFixAhER0f/0R8NEbUChhqiTmzWrFkIDg7WmQkwNjaW3krRarVQq9XS\ntm7duknPDQ0NpXVDQ8MHXg9zZ4YjPj4eQ4YM0dmWmpoKS0vL+77u7uAihNCZPbnf9TumpqYYOnQo\nhg4dCplMhq1btyI6OhpDhgzB+vXrdfY9efKkzvrdP+/uXgBATU2N9PzVV1/FvHnzGv1sExMT6fm9\nfWkqhN3vONnZ2di9ezeWL1+OTZs2ISEhoclzJaLWw7efiDqxHj16IC4uDgkJCVJAcHV1RXp6OgBg\n27ZtqKure6RjCiGwefNmCCGQm5uLvLw8eHl5ISYmBsuWLZN+yZ87dw5VVVUPPFZYWBgOHDiA0tJS\naDQabNiwAU899dQDX5OZmYmioiIADaHs5MmTcHV1xYABA3D48GHk5uYCAFQqFc6fPw8vLy8UFBRI\n1wQlJibq9CIjIwMAkJGRgfz8fBgYGCAqKgpbtmzB9evXAQBlZWXStTb3ExUVhS+//BJAw/VFFRUV\n9z1OaWkp6uvr8fzzz+Pf//63VAMRtS3O1BB1QnfPcPz9739HfHy8tD516lSMGjUKgYGBGDp0qHSh\n8L2vu/d4d1+H4uLigvDwcFRUVGDFihUwNTXFlClTUFBQgODgYAgh4ODggO+//17ntfdycnLCggUL\nEBkZCSEEnnvuOeki3vu5du0apk6ditraWgBAREQE3nrrLZiammLVqlV48cUXpW1z586Fu7s7vvrq\nK4wYMQIWFhYYPHiwFHzGjh2Lb775Br6+voiIiICnpycAwNvbGx999BGio6Oh1WphYmKCZcuWwcXF\npdFM0p31zz77DNOmTUNCQgKMjIywfPlyRERENHkcMzMzTJ48WZolWrBgwQPPmYhah4Foaj6ViKiT\nOnDgABYvXozt27fruxQiamd8+4mIupzW/N4eIuo8OFNDREREXQJnaoiIiKhLYKghIiKiLoGhhoiI\niLoEhhoiIiLqEhhqiIiIqEtgqCEiIqIu4f8BxVax2ZnWQYwAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x5e620f0>"
]
}
],
"prompt_number": 9
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Size of Typical Set"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How big is the weakly typical set? The theorem says for n sufficiently large,\n",
"\n",
"$$(1-\\epsilon)2^{n(H(X)-\\epsilon)} \n",
"\\leq | W_{[X]\\epsilon}^n | \n",
"\\leq 2^{n(H(X)+\\epsilon)}\n",
"$$\n",
"\n",
"So the total number of weakly typical sequences is approximately equal to $2^{nH(X)}$. We compute the number for n=10 below as an example."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(\"With n=%d, approximately %d out of %d sequence are typical\" % (10, 2**(10*H(pvals)), len(XSET)**10))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"With n=10, approximately 11806 out of 59049 sequence are typical\n"
]
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We want to see the number as $n \\to \\infty$. For a large n, it is too slow to enumerate all possible sequence. Instead we optimize the calculation by enumerating them as equivalent multinomial sequence."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# this code is to efficiently generate all sequences' probabilty by enumerating multinomials\n",
"\n",
"factorial = [1,1]\n",
"for i in range(2,500): factorial.append(factorial[-1] * i)\n",
" \n",
"def _enum_3_multinomial(n):\n",
" \"\"\" enumerate all possible multinomial tuples (hardcoded to 3) \"\"\"\n",
" fact_n = math.factorial(n)\n",
" for n1 in range(n+1):\n",
" for n2 in range(n1,n+1):\n",
" nv = (n1, n2-n1, n-n2)\n",
" # multinomial coefficient\n",
" m_coeff = factorial[n] / (factorial[nv[0]] * factorial[nv[1]] * factorial[nv[2]])\n",
" yield m_coeff, nv\n",
"\n",
"def _enum_seq_count_prob(n):\n",
" log_p = log(pvals)\n",
" size = (n+1)*(n+2) / 2 # only work for multinomial of 3\n",
" count_array = np.zeros(size)\n",
" prob_array = np.zeros(size)\n",
" for i, (m_coeff, nv) in enumerate(_enum_3_multinomial(n)):\n",
" count_array[i] = m_coeff\n",
" prob_array[i] = 2**np.sum(log_p * nv) \n",
" return count_array, prob_array \n",
" \n",
"def measure_typical(epsilon, n, count_array, prob_array):\n",
" HX = H(pvals)\n",
" p_lo = 2**(-n*(HX + epsilon))\n",
" p_hi = 2**(-n*(HX - epsilon))\n",
" \n",
" is_typical = np.logical_and(p_lo <= prob_array, prob_array <= p_hi)\n",
" count_sum = count_array[is_typical].sum()\n",
" prob_sum = np.sum(prob_array[is_typical] * count_array[is_typical])\n",
" return count_sum, prob_sum\n",
"\n",
"# test it on our sample\n",
"#count_array, prob_array = _enum_seq_count_prob(10)\n",
"#print('size=%s, p=%s' % measure_typical(epsilon, 10, count_array, prob_array))\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# computation intensive step to generate data for the range of n interested\n",
"xs = np.arange(10,200,4)\n",
"count_n_array, prob_n_array = zip(*[_enum_seq_count_prob( m) for m in xs])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally we plot the size of weakly typical set with $n$ getting large. We compare 3 different $\\epsilon$ at 0.1, 0.01, and 0.001. We can see that the size of weakly typical set grow exponetially as predicted by the theory. It is also close to the asymptotic size of $2^{nH(X)}$."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# set size for different n and epsilon\n",
"size_100 = [measure_typical(0.1 , m, count_n_array[i], prob_n_array[i])[0] for i,m in enumerate(xs)]\n",
"size_010 = [measure_typical(0.01 , m, count_n_array[i], prob_n_array[i])[0] for i,m in enumerate(xs)]\n",
"size_001 = [measure_typical(0.001, m, count_n_array[i], prob_n_array[i])[0] for i,m in enumerate(xs)]\n",
"\n",
"fig, ax = plt.subplots(figsize=(8, 8))\n",
"ax.set_yscale('log')\n",
"plot(xs, size_100, label=\"$\\epsilon = .1$\")\n",
"plot(xs, size_010, label=\"$\\epsilon = .01$\")\n",
"plot(xs, size_001, label=\"$\\epsilon = .001$\")\n",
"plot(xs, 2**(xs*HX), label=\"$2^{nH(X)}$\",ls='--', color='black', lw=2)\n",
"plt.title(\"Weakly Typical Set Size\")\n",
"plt.xlabel(\"n\")\n",
"assert pylab.legend(loc='upper left', prop={'size':16})"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x5f957d0>"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We also plot the probabilty of a sequence in weakly typical set as $n$ gets large. In the case of $\\epsilon = 0.1$, we see that the probabilty trend toward the theoretical value $1 - \\epsilon = 0.9$.\n",
"\n",
"For smaller $\\epsilon = 0.05$ and $0.01$, the probabilty is taking much longer and still not close to the expected value of 1. We might need a very large n to exhibit the expected result. We also do not rule out there are software or numerical error. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# probability for different n and epsilon\n",
"p_100 = [measure_typical(0.1 , m, count_n_array[i], prob_n_array[i])[1] for i,m in enumerate(xs)]\n",
"p_050 = [measure_typical(0.05, m, count_n_array[i], prob_n_array[i])[1] for i,m in enumerate(xs)]\n",
"p_010 = [measure_typical(0.01, m, count_n_array[i], prob_n_array[i])[1] for i,m in enumerate(xs)]\n",
"\n",
"fig, ax = plt.subplots(figsize=(8, 8))\n",
"#ax.set_yscale('log')\n",
"plt.plot(xs, p_100, label=\"$\\epsilon = .1$\")\n",
"plt.plot(xs, p_050, label=\"$\\epsilon = .05$\")\n",
"plt.plot(xs, p_010, label=\"$\\epsilon = .01$\")\n",
"plt.title(\"Probability of a Sequence is in Weakly Typical Set\")\n",
"plt.xlabel(\"n\")\n",
"assert pylab.legend(loc='upper left', prop={'size':16})"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x61ce3b0>"
]
}
],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Reference\n",
"\n",
"- Information Theory and Network Coding, Yeung, Raymond W. 2008"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment