lab4 wip
authorNils Forssén <nilfo359@student.liu.se>
Mon, 9 Dec 2024 22:59:34 +0000 (23:59 +0100)
committerNils Forssén <nilfo359@student.liu.se>
Mon, 9 Dec 2024 22:59:34 +0000 (23:59 +0100)
lab3.ipynb
lab4.ipynb [new file with mode: 0644]

index d182f4d22633463ce468d4feb0864f1d90b4b0d1..902cf9365c88cb0a607817f5a404f885d6d2fa22 100644 (file)
@@ -2,31 +2,32 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 216,
+   "execution_count": 22,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "false\n",
-      "E 001 0.09194006176001843\n",
-      "F 011 0.10044199605928064\n",
-      "I 000 0.09001139008976541\n",
-      "K 010 0.09375029190797854\n",
-      "A 1101 0.08150941374330535\n",
-      "B 1111 0.08989783497267806\n",
-      "G 1000 0.0668103243291321\n",
-      "H 1100 0.08057201293810362\n",
-      "N 1001 0.07055842596421082\n",
-      "O 1011 0.07855492779739327\n",
-      "C 11100 0.039887641242750384\n",
-      "D 10100 0.0323610532077545\n",
-      "J 10101 0.03919481968937199\n",
-      "M 111010 0.021870851482333923\n",
-      "L 1110111 0.020059872102495702\n",
-      "P 1110110 0.0025790827134272113\n",
-      "decoded: KFFNNBAC\n"
+      "Source entropy:  3.752113900074267\n",
+      "A 100 0.11124094587747317\n",
+      "G 011 0.10871437801707752\n",
+      "J 010 0.10387210756270529\n",
+      "N 000 0.10117027679041204\n",
+      "D 0011 0.05197115173264662\n",
+      "H 1011 0.06917828453811696\n",
+      "I 0010 0.05068162249832686\n",
+      "K 1100 0.06944726813123069\n",
+      "L 1111 0.09883293392076788\n",
+      "O 1101 0.08712441679935146\n",
+      "F 10101 0.03078339099377846\n",
+      "P 11101 0.04731352894459562\n",
+      "B 101000 0.013013334609193211\n",
+      "C 101001 0.014536815467673516\n",
+      "E 111001 0.022193047647813914\n",
+      "M 111000 0.019926496468836808\n",
+      "decoded: JGGAKLPM\n",
+      "Average codeword length:  4.375\n"
      ]
     }
    ],
@@ -34,6 +35,7 @@
     "import random\n",
     "from heapq import heappush, heappop, heapify\n",
     "from collections import defaultdict\n",
+    "import math\n",
     "\n",
     "num_of_letters = 16\n",
     "\n",
     "            continue\n",
     "    break\n",
     "\n",
+    "\n",
+    "source_entropy = -1*sum([p * math.log2(p) for l, p in probabilities.items()])\n",
+    "print(\"Source entropy: \", source_entropy)\n",
+    "\n",
     "def huffman_coding(probabilities):\n",
     "    heap = [[weight, [symbol, \"\"]] for symbol, weight in probabilities.items()]\n",
     "    heapify(heap)\n",
     "encoded_string=\"01001101110011001111111011110000\"\n",
     "decoded_symbols = huffman_decoding(encoded_string, code_dict)\n",
     "\n",
-    "print(f\"decoded: {decoded_symbols}\")\n"
+    "print(f\"decoded: {decoded_symbols}\")\n",
+    "\n",
+    "average_len = sum([len(code) for l, code in code_dict.items()]) / len(code_dict)\n",
+    "print(\"Average codeword length: \", average_len)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Report Questions\n",
+    "\n",
+    "## 1. What is the difference between lossless and lossy compression?\n",
+    "\n",
+    "Lossy compression loses data, lossless does not.\n",
+    "\n",
+    "## What type of compression is done with Huffman coding?\n",
+    "\n",
+    "Lossless, Huffman coding does not lose any information.\n",
+    "\n",
+    "## 2. Why Huffman source code is called fixed to variable-length coding?\n",
+    "\n",
+    "Every symbol maps to a huffman code of variable length depending on the probability of the symbol.\n",
+    "\n",
+    "## 3. What is the prefix condition?\n",
+    "\n",
+    "No codeword is the prefix of another codeword: The output can be iterated through linearly. \n",
+    "\n",
+    "## 4. Why Huffman codes are said to be instantaneous?\n",
+    "\n",
+    "You only need to encode once, which takes a fixed amount of time. \n",
+    "\n",
+    "## 5. Calculate the entropy of the source in Student task 1 and the average length of the corresponding Huffman code in Student task 2. Comment on your results and relate it to the source-coding theorem.\n",
+    "\n",
+    "Average len < H(X) < Average len + 1. Average bits cannot be lower than entropy.\n"
    ]
   }
  ],
diff --git a/lab4.ipynb b/lab4.ipynb
new file mode 100644 (file)
index 0000000..c8e372e
--- /dev/null
@@ -0,0 +1,1318 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 613,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "import matplotlib.pyplot as plt\n",
+    "import scipy as stats\n",
+    "from scipy.fftpack import fft, rfft, irfft, fftfreq, rfftfreq\n",
+    "import scipy.signal\n",
+    "from scipy.stats import norm, expon\n",
+    "import math"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 614,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[-7. -5. -3. -1.  1.  3.  5.  7.]\n",
+      "[[0.7071067811865476, 0.7071067811865475], [-0.7071067811865475, 0.7071067811865476], [-0.7071067811865477, -0.7071067811865475], [0.7071067811865474, -0.7071067811865477]]\n",
+      "[[0.9238795325112867, 0.3826834323650898], [0.38268343236508984, 0.9238795325112867], [-0.3826834323650897, 0.9238795325112867], [-0.9238795325112867, 0.3826834323650899], [-0.9238795325112868, -0.38268343236508967], [-0.38268343236509034, -0.9238795325112865], [0.38268343236509, -0.9238795325112866], [0.9238795325112865, -0.3826834323650904]]\n",
+      "[[np.float64(-3.0), np.float64(-3.0)], [np.float64(-3.0), np.float64(-1.0)], [np.float64(-3.0), np.float64(1.0)], [np.float64(-3.0), np.float64(3.0)], [np.float64(-1.0), np.float64(-3.0)], [np.float64(-1.0), np.float64(-1.0)], [np.float64(-1.0), np.float64(1.0)], [np.float64(-1.0), np.float64(3.0)], [np.float64(1.0), np.float64(-3.0)], [np.float64(1.0), np.float64(-1.0)], [np.float64(1.0), np.float64(1.0)], [np.float64(1.0), np.float64(3.0)], [np.float64(3.0), np.float64(-3.0)], [np.float64(3.0), np.float64(-1.0)], [np.float64(3.0), np.float64(1.0)], [np.float64(3.0), np.float64(3.0)]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "M = 8\n",
+    "first = (2 - 1 - M)\n",
+    "last = (16 - 1 - M)\n",
+    "PAM8 = np.linspace(first, last, 8)\n",
+    "print(PAM8)\n",
+    "\n",
+    "M = 4\n",
+    "QPSK = [[math.cos((math.pi/M) + 2 * math.pi * m / M), math.sin((math.pi/M) + 2 * math.pi * m / M)] for m in range(M)]\n",
+    "print(QPSK)\n",
+    "\n",
+    "M = 8\n",
+    "PSK8 = [[math.cos((math.pi/M) + 2 * math.pi * m / M), math.sin((math.pi/M) + 2 * math.pi * m / M)] for m in range(M)]\n",
+    "print(PSK8)\n",
+    "\n",
+    "M = 4\n",
+    "first = (-3)\n",
+    "last = (3)\n",
+    "PAM4 = np.linspace(first, last, 4)\n",
+    "QAM16 = []\n",
+    "for i in PAM4:\n",
+    "    for j in PAM4:\n",
+    "        QAM16.append([i, j])\n",
+    "print(QAM16)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 615,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Assign gray codes: \n",
+    "\n",
+    "g_PAM8 = {format(k, '03b'): i for k, i in enumerate(PAM8)}\n",
+    "\n",
+    "g_QPSK = {format(k, '03b'): i for k, i in enumerate(QPSK)}\n",
+    "\n",
+    "g_PSK8 = {format(k, '03b'): i for k, i in enumerate(PSK8)}\n",
+    "\n",
+    "g_QAM16 = {format(k, '03b'): i for k, i in enumerate(QAM16)}"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 616,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[<matplotlib.lines.Line2D at 0x7fc1d0552590>]"
+      ]
+     },
+     "execution_count": 616,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAF2CAYAAABu5+/BAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAk+UlEQVR4nO3ce1xVdb7/8ffmXumGQGWHgRfyVpaWBuL8ylIeQ9NtPNFJyMnLMDp1xLFwPMpkQ3nmHJqsKTHLR51J6whpdKopx+xh2GVK8oLdVORkDy942ZAaGy8hCN/fHy33tGWDIGzZyuv5eKxHD7/r813r890r99u19wKbMcYIANDpBXR0AwAA/0AgAAAkEQgAAAuBAACQRCAAACwEAgBAEoEAALAQCAAASQQCAMBCIAAAJBEIgIelS5fKZrO5t7CwMPXv31+ZmZmqqKjwqF21apVsNptiYmLU0NDg9Xi9e/eWzWZTcnKy1/0vvvii+1ybNm3y2FdSUqLbb79dDodDXbp00TXXXKO8vDzV19e3z2KB0wR1dAOAP5o3b5769OmjmpoaffLJJ3r++ee1atUqbdmyRRdffLEkKT8/X71799auXbu0du3aJt/0w8LC9MEHH8jpdMrhcHjsy8/PV1hYmGpqajzGS0pKNHLkSPXr10+zZ8/WxRdfrHfffVczZszQt99+qwULFvhm4ejcDAC3JUuWGElm48aNHuNZWVlGkikoKDDGGHP06FFzySWXmLy8PHPttdeaSZMmeT1er169zJgxY4zdbjfPPPOMx77y8nITEBBgUlNTG51zypQpJiQkxBw6dMhjzo033mjsdnt7LBVohI+MgBYYPXq0JGnnzp2SpDfffFM//PCD/vVf/1VpaWl64403Gv0r/5SwsDDdddddKigo8Bh/9dVXdemllyolJaXRnOrqaoWFhSkiIsJj/LLLLtNFF13UDisCGiMQgBb49ttvJUlRUVGSfvyo5+abb5bD4VBaWpqOHDmid955p8n59957rzZs2OA+jiQVFBTo7rvvVnBwcKP6m266SdXV1frtb3+r0tJS7d69W4sXL9Ybb7yh7Ozsdl4d8CMCAfDC5XLp4MGD2rt3r1asWKF58+bpoosu0u23367Kykq9//77SktLkyTFxcUpKSlJ+fn5TR5v9OjRcjgcevXVVyVJpaWl+uKLL3Tvvfd6rZ8yZYoyMzP18ssv68orr1Tv3r2VmZmpvLw8zZgxo/0XDIhAALxKTk5W9+7dFRsbq7S0NHXp0kVvvvmmevbsqeXLlysgIECpqanu+vT0dL377rv6/vvvvR4vMDBQ99xzjzsQ8vPzFRsbqxtuuKHJ+vj4eKWkpOjll1/WihUrdMcdd2j69Ol666232n29gMRTRoBXixYtUv/+/RUUFKTo6GgNGDBAAQE//vtp2bJlSkhI0KFDh3To0CFJ0rXXXqva2loVFhZq6tSpXo957733Ki8vT19++aUKCgqUlpYmm83mtfbxxx/XggUL9M0336hLly6SpHvuuUc333yzpk2bpttvv11BQfz1Rfvi/yjAi4SEBA0fPrzR+DfffKONGzdKkvr169dof35+fpOBkJiYqPj4eD344IPauXNnkx8XSdJzzz2n0aNHu8PglDvvvFNZWVnatWuXrrjiitYsCTgjAgFohfz8fAUHB+t//ud/FBgY6LHvk08+UV5envbs2aO4uDiv89PT0/WnP/1JgwYN0tChQ5s8T0VFhdcfQKurq5MknTx58uwXATSBQABaIT8/XzfccIPGjRvXaF9SUpLy8vL06quvavbs2V7n/+Y3v1FgYKASExObPU///v21Zs0aHTp0yP1kU319vV577TV17dpV8fHxbV8McBq+VAZaaP369dqxY4fuvPNOr/t79uyp6667rtmnjXr16qVHH31Uv/jFL5o915w5c3T48GElJibqiSee0MKFC3XDDTeopKREs2fP9vqoKtBWBALQQqfe6O+4444ma+644w59/fXX+uqrr9p0rvHjx2v16tW6/PLLNX/+fP3+97/X0aNHtXjxYj388MNtOjbQFJsxxnR0EwCAjscdAgBAEoEAALAQCAAASQQCAMBCIAAAJBEIAABLp/xJ5YaGBu3fv19du3Zt8peLAcD5xBijI0eOKCYmxv2LGFurUwbC/v37FRsb29FtAEC7Ky8v1+WXX35WcztlIHTt2lXSjy+c3W7v4G4AoO2qq6sVGxvrfn87G50yEE59TGS32wkEABeUtnwMzpfKAABJBAIAwEIgAAAkEQgAAAuBAACQRCAAACwEAgBAEoEAALAQCAAASQQCAMBCIAAAJBEIAAALgQAAkEQgAAAsBAIAQBKBAACwEAgAAEkEAgDAQiAAACQRCAAAC4EAAJBEIAAALAQCAEASgQAA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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAF2CAYAAABqEj/8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAuSklEQVR4nO3de1wU16EH8N8uyi5EWUQeCw1REKPiC8WywaYhiVsX9Xq1eYnRoNRANZrUYH2QT5SiaYiP+sk1pZJ6fVaM1n581F5LQlBjowRyQa7xeaNFQWUhStkFVMTdc//IdZITHgKygMvv+/nMp5mZM2fPmaHn58zO7KiEEAJERET/T93RDSAios6FwUBERBIGAxERSRgMREQkYTAQEZGEwUBERBIGAxERSRgMREQkYTAQEZGEwUBERBIGA1EDtmzZApVKpUxarRaPP/445s2bh7KyMqXcpUuXEBcXh379+kGr1UKv1+Opp55CcnKyVN/TTz+NIUOG1Puc7OxsuLu7Y+TIkaioqAAA2O12pKenIywsDD169ICfnx/GjRuH48ePO7bTRP+vW0c3gKgzW758OYKCgnD79m18/vnnWL9+PQ4ePIhTp07h2rVr+PGPfww3Nzf84he/QN++fVFaWoqCggKsXLkSKSkpTdZ96NAhTJw4EQMGDMCnn34KLy8vAMDChQuxdu1aTJ8+Ha+99hoqKyvx4YcfIioqCseOHUNERER7dJ26MAYDURPGjRuHUaNGAQBeffVV9O7dG2vXrsX+/fvx+eefo7q6GoWFhejTp4+0XXl5eZP1fvbZZ5g4cSIef/xxKRTu3r2L9evX44UXXsCf/vQnpfyLL76I4OBgZGRkMBjI4XgpiagFnn32WQBAUVERLl68iEcffbReKACAr69vo3X84x//wIQJExASEoJPP/0UvXv3VtbV1dXh1q1b8PPzq1efWq2Gm5tbG/WEqHEMBqIWuHjxIgCgd+/e6NOnD0pKSnDo0KFmb3/s2DGMHz8eQUFByM7Ohre3t7Tezc0NBoMBW7ZsQUZGBoqLi3Hy5EnMnDkTvXr1QkJCQpv2h6ghvJRE1ASLxYLr16/j9u3bOHbsGJYvXw43Nzf827/9G5588kn86U9/wpgxYxAWFoaoqCg888wz+NnPfgZ3d/d6dZWWlmLcuHHo06cPDh06VC8U7tm+fTumTJmC6dOnK8uCg4Nx7NgxBAcHO6yvRPfwjIGoCUajET4+PggMDERMTAx69OiBvXv34kc/+hEGDx6MwsJCTJ8+HZcuXcJ//Md/YPLkyfDz88OGDRvq1VVTU4Oqqir4+fnBw8Oj0c/s2bMnBg8ejLlz52LPnj34wx/+gLt372Ly5Mm4fv26I7tL9C1BRPVs3rxZABBpaWkiKytLHD58WJw5c0bYbLYGy9+9e1ecPHlSvPvuu8LT01MAEFlZWcr6qKgoMXjwYLFy5UoBQPz85z8Xd+/erVdPXV2dGDJkiJg3b560/H//939F9+7dxaJFi9q2o0QN4KUkoiZEREQodyU1xcXFBUOHDsXQoUMRGRmJZ555BhkZGTAajVK5RYsW4caNG1i1ahXi4+OxceNGqFQqZf3Ro0dx6tQprF27Vtquf//+GDRoEI4dO9Y2HSNqAoOBqI3dC5LS0tIG169cuRIVFRX4z//8T/Tq1Qu/+93vlHX3Hp6z2Wz1tqurq8Pdu3cd0GIiGb9jIGqlf/zjH6irq6u3/ODBgwCAAQMGNLrthx9+iBdeeAFr167FO++8oyx//PHHAQA7d+6UyhcUFOD8+fMYMWJEWzSdqEk8YyBqpZUrVyI/Px/PPfcchg0bBuDbAXzbtm3w8vLC/PnzG91WrVYjIyMDFosFS5cuhZeXF1577TWEh4fjZz/7GbZu3Qqr1YqxY8eitLQUH3zwAdzc3Jqsk6itMBiIWumtt97Cjh078NlnnyEjIwM3b96Ev78/YmJisHTpUgQFBTW5vaurK/bu3Quj0YjXX38dnp6eePnll7F//36sWbMGO3fuRGZmJlxdXfHTn/4UK1asaPIshKitqIQQoqMbQUREnQe/YyAiIgmDgYiIJAwGIiKSMBiIiEjCYCAiIolDg+Ho0aOYOHEiAgICoFKpsG/fvvtuc+TIEYwcORIajQYhISHYsmVLvTJpaWno27cvtFotDAYD8vLy2r7xRERdlEOfY6ipqcHw4cPxi1/8As8999x9yxcVFWHChAmYPXs2MjIykJ2djVdffRX+/v4wmUwAgF27diExMRHp6ekwGAx4//33YTKZcP78+SZfjvJ9drsd165dQ8+ePaXfqSEielgJIVBVVYWAgACo1Q/4b/72+rU+AGLv3r1Nllm0aJEYPHiwtGzKlCnCZDIp8xEREWLu3LnKvM1mEwEBASI1NbXZbSkpKREAOHHixMnpppKSkmaPhY3pVE8+5+Tk1Ps1SpPJpPwMwJ07d5Cfn4+kpCRlvVqthtFoRE5OTrM/p2fPngCAkpKSJn8Xn4joYWG1WhEYGKiMbw+iUwWD2Wyu965bPz8/WK1W3Lp1C//6179gs9kaLHPu3LlG662trUVtba0yX1VVBQDw8PBgMBCRU2mLy+Nd4q6k1NRU6HQ6ZQoMDOzoJhERdVqdKhj0er3ye/T3lJWVwcPDA25ubvD29oaLi0uDZfR6faP1JiUlwWKxKFNJSYlD2k9E5Aw6VTBERkYiOztbWpaVlYXIyEgA3/4aZXh4uFTGbrcjOztbKdMQjUajXDbi5SMioqY5NBiqq6tRWFiIwsJCAN/ejlpYWIji4mIA3/5LPjY2Vik/e/Zs/POf/8SiRYtw7tw5/OEPf8Cf//xnvPnmm0qZxMREbNiwAVu3bsXZs2cxZ84c1NTUIC4uzpFdISLqOh74vqYmHD58uMHbqWbMmCGEEGLGjBkiKiqq3jZhYWHC1dVVBAcHi82bN9er94MPPhCPPfaYcHV1FREREeKLL75oUbssFosAICwWSyt7RkTUubTluNYl38dgtVqh0+lgsVh4WYmInEJbjmud6nZV6hpsdoG8ogqUV92Gb08tIoK84KLmE+gPKx5P58NgoHaVeaoUKQfOoNRyW1nmr9MieWIooof4d2DLqDV4PJ1Tp7oriZxb5qlSzNleIA0iAGC23Mac7QXIPFXaQS2j1uDxdF4MBmoXNrtAyoEzaOgLrXvLUg6cgc3e5b7yeijxeDo3BgO1i7yiinr/svw+AaDUcht5RRXt1yhqNR5P58ZgoHZRXtX4INKactSxeDydG4OB2oVvT22blqOOxePp3BgM1C4igrzgr9OisZsYVfj2bpaIIK/2bBa1Eo+nc2MwULtwUauQPDEUAOoNJvfmkyeG8v73hwSPp3NjMFC7iR7ij/XTR0Kvky8v6HVarJ8+kve9P2R4PJ0XfxKDP4nR7vikrHPh8ewc+JMY9FBzUasQ2a93RzeD2giPp/PhpSQiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiSbsEQ1paGvr27QutVguDwYC8vLxGyz799NNQqVT1pgkTJihlZs6cWW99dHR0e3SFiMjpOfxFPbt27UJiYiLS09NhMBjw/vvvw2Qy4fz58/D19a1Xfs+ePbhz544yf+PGDQwfPhwvvviiVC46OhqbN29W5jUajeM6QUTUhTj8jGHt2rWIj49HXFwcQkNDkZ6eDnd3d2zatKnB8l5eXtDr9cqUlZUFd3f3esGg0Wikcr169XJ0V4iIugSHBsOdO3eQn58Po9H43Qeq1TAajcjJyWlWHRs3bkRMTAweeeQRafmRI0fg6+uLAQMGYM6cObhx40abtp2IqKty6KWk69evw2azwc/PT1ru5+eHc+fO3Xf7vLw8nDp1Chs3bpSWR0dH47nnnkNQUBAuXryIt956C+PGjUNOTg5cXFzq1VNbW4va2lpl3mq1trJHRETOz+HfMTyIjRs3YujQoYiIiJCWx8TEKP89dOhQDBs2DP369cORI0cwZsyYevWkpqYiJSXF4e0lInIGDr2U5O3tDRcXF5SVlUnLy8rKoNfrm9y2pqYGO3fuxKxZs+77OcHBwfD29saFCxcaXJ+UlASLxaJMJSUlze8EEVEX49BgcHV1RXh4OLKzs5Vldrsd2dnZiIyMbHLb3bt3o7a2FtOnT7/v51y5cgU3btyAv79/g+s1Gg08PDykiYiIGubwu5ISExOxYcMGbN26FWfPnsWcOXNQU1ODuLg4AEBsbCySkpLqbbdx40ZMnjwZvXv3lpZXV1dj4cKF+OKLL3Dp0iVkZ2dj0qRJCAkJgclkcnR3iIicnsO/Y5gyZQq++eYbLFu2DGazGWFhYcjMzFS+kC4uLoZaLefT+fPn8fnnn+OTTz6pV5+LiwtOnjyJrVu3orKyEgEBARg7dixWrFjBZxmIiNqASgghOroR7c1qtUKn08FisfCyEhE5hbYc1/hbSUREJGEwEBGRhMFAREQSBgMREUkYDEREJGEwEBGRhMFAREQSBgMREUkYDEREJGEwEBGRhMFAREQSBgMREUkYDEREJGEwEBGRhMFAREQSBgMREUkYDEREJGEwEBGRhMFAREQSBgMREUkYDEREJGEwEBGRhMFAREQSBgMREUkYDEREJGEwEBGRhMFARESSdgmGtLQ09O3bF1qtFgaDAXl5eY2W3bJlC1QqlTRptVqpjBACy5Ytg7+/P9zc3GA0GvH11187uhtERF2Cw4Nh165dSExMRHJyMgoKCjB8+HCYTCaUl5c3uo2HhwdKS0uV6fLly9L6VatWYd26dUhPT0dubi4eeeQRmEwm3L5929HdISJyeg4PhrVr1yI+Ph5xcXEIDQ1Feno63N3dsWnTpka3UalU0Ov1yuTn56esE0Lg/fffx9tvv41JkyZh2LBh2LZtG65du4Z9+/Y5ujtERE7PocFw584d5Ofnw2g0fveBajWMRiNycnIa3a66uhp9+vRBYGAgJk2ahNOnTyvrioqKYDabpTp1Oh0MBkOTdRIRUfM4NBiuX78Om80m/YsfAPz8/GA2mxvcZsCAAdi0aRP279+P7du3w263Y/To0bhy5QoAKNu1pM7a2lpYrVZpIiKihnW6u5IiIyMRGxuLsLAwREVFYc+ePfDx8cGHH37Y6jpTU1Oh0+mUKTAwsA1bTETkXBwaDN7e3nBxcUFZWZm0vKysDHq9vll1dO/eHSNGjMCFCxcAQNmuJXUmJSXBYrEoU0lJSUu7QkTUZTg0GFxdXREeHo7s7Gxlmd1uR3Z2NiIjI5tVh81mw1dffQV/f38AQFBQEPR6vVSn1WpFbm5uo3VqNBp4eHhIExERNayboz8gMTERM2bMwKhRoxAREYH3338fNTU1iIuLAwDExsbiRz/6EVJTUwEAy5cvxxNPPIGQkBBUVlZi9erVuHz5Ml599VUA396xNH/+fLzzzjvo378/goKCsHTpUgQEBGDy5MmO7g4RkdNzeDBMmTIF33zzDZYtWwaz2YywsDBkZmYqXx4XFxdDrf7uxOVf//oX4uPjYTab0atXL4SHh+P48eMIDQ1VyixatAg1NTVISEhAZWUlnnzySWRmZtZ7EI6IiFpOJYQQHd2I9ma1WqHT6WCxWHhZiYicQluOa53uriQiIupYDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpI4/DkGZ2GzC+QVVaC86jZ8e2oREeQFF7Wqo5tFRE6ks4wzDIZmyDxVipQDZ1Bq+e5FQP46LZInhiJ6iH8HtoyInEVnGmd4Kek+Mk+VYs72AulgAYDZchtzthcg81RpB7WMiJxFZxtnGAxNsNkFUg6cQUOPht9blnLgDGz2LvfwOBG1kc44zjAYmpBXVFEvwb9PACi13EZeUUX7NYqInEpnHGcYDE0or2r8YLWmHBHRD3XGcYbB0ATfns37tdbmliMi+qHOOM4wGJoQEeQFf50Wjd0spsK3dw1EBHm1Z7OIyIl0xnGGwdAEF7UKyRO/fQ/EDw/avfnkiaF8noGIWq0zjjMMhvuIHuKP9dNHQq+TT+P0Oi3WTx/J5xiI6IF1tnGGL+pp5gstOssTiUTkvB5knGnLF/XwyedmclGrENmvd0c3g4icWGcZZ3gpiYiIJAwGIiKSMBiIiEjCYCAiIgmDgYiIJAwGIiKSMBiIiEjCYCAiIgmDgYiIJO0SDGlpaejbty+0Wi0MBgPy8vIaLbthwwb89Kc/Ra9evdCrVy8YjcZ65WfOnAmVSiVN0dHRju4GEVGX4PBg2LVrFxITE5GcnIyCggIMHz4cJpMJ5eXlDZY/cuQIpk6disOHDyMnJweBgYEYO3Ysrl69KpWLjo5GaWmpMn300UeO7goRUZfg8B/RMxgM+PGPf4zf//73AAC73Y7AwEC8/vrrWLJkyX23t9ls6NWrF37/+98jNjYWwLdnDJWVldi3b1+r2tSWPzZFRNQZtOW45tAzhjt37iA/Px9Go/G7D1SrYTQakZOT06w6bt68ibq6Onh5yS+pOHLkCHx9fTFgwADMmTMHN27caLSO2tpaWK1WaSIiooY5NBiuX78Om80GPz8/abmfnx/MZnOz6li8eDECAgKkcImOjsa2bduQnZ2NlStX4rPPPsO4ceNgs9karCM1NRU6nU6ZAgMDW98pIiIn16l/dvu9997Dzp07ceTIEWi1373AIiYmRvnvoUOHYtiwYejXrx+OHDmCMWPG1KsnKSkJiYmJyrzVamU4EBE1wqFnDN7e3nBxcUFZWZm0vKysDHq9vslt16xZg/feew+ffPIJhg0b1mTZ4OBgeHt748KFCw2u12g08PDwkCYiImqYQ4PB1dUV4eHhyM7OVpbZ7XZkZ2cjMjKy0e1WrVqFFStWIDMzE6NGjbrv51y5cgU3btyAvz9fs0lE9KAcfrtqYmIiNmzYgK1bt+Ls2bOYM2cOampqEBcXBwCIjY1FUlKSUn7lypVYunQpNm3ahL59+8JsNsNsNqO6uhoAUF1djYULF+KLL77ApUuXkJ2djUmTJiEkJAQmk8nR3SEicnoO/45hypQp+Oabb7Bs2TKYzWaEhYUhMzNT+UK6uLgYavV3+bR+/XrcuXMHL7zwglRPcnIyfvOb38DFxQUnT57E1q1bUVlZiYCAAIwdOxYrVqyARqNxdHeIiJyew59j6Iz4HAMROZuH5jkGIiJ6+DAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiJJuwRDWloa+vbtC61WC4PBgLy8vCbL7969GwMHDoRWq8XQoUNx8OBBab0QAsuWLYO/vz/c3NxgNBrx9ddfO7ILRERdhsODYdeuXUhMTERycjIKCgowfPhwmEwmlJeXN1j++PHjmDp1KmbNmoUTJ05g8uTJmDx5Mk6dOqWUWbVqFdatW4f09HTk5ubikUcegclkwu3btx3dHSIi5yccLCIiQsydO1eZt9lsIiAgQKSmpjZY/qWXXhITJkyQlhkMBvHLX/5SCCGE3W4Xer1erF69WllfWVkpNBqN+Oijj5rVJovFIgAIi8XS0u4QEXVKbTmuOfSM4c6dO8jPz4fRaFSWqdVqGI1G5OTkNLhNTk6OVB4ATCaTUr6oqAhms1kqo9PpYDAYGq2ztrYWVqtVmoiIqGEODYbr16/DZrPBz89PWu7n5wez2dzgNmazucny9/63JXWmpqZCp9MpU2BgYKv6Q0TUFXSJu5KSkpJgsViUqaSkpKObRETUaTk0GLy9veHi4oKysjJpeVlZGfR6fYPb6PX6Jsvf+9+W1KnRaODh4SFNRETUMIcGg6urK8LDw5Gdna0ss9vtyM7ORmRkZIPbREZGSuUBICsrSykfFBQEvV4vlbFarcjNzW20TiIiaoE2+DK8STt37hQajUZs2bJFnDlzRiQkJAhPT09hNpuFEEK88sorYsmSJUr5Y8eOiW7duok1a9aIs2fPiuTkZNG9e3fx1VdfKWXee+894enpKfbv3y9OnjwpJk2aJIKCgsStW7ea1SbelUREzqYtx7Vujg6eKVOm4JtvvsGyZctgNpsRFhaGzMxM5cvj4uJiqNXfnbiMHj0aO3bswNtvv4233noL/fv3x759+zBkyBClzKJFi1BTU4OEhARUVlbiySefRGZmJrRaraO7Q0Tk9FRCCNHRjWhvVqsVOp0OFouF3zcQkVNoy3GtS9yVREREzcdgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDg2GiooKTJs2DR4eHvD09MSsWbNQXV3dZPnXX38dAwYMgJubGx577DG88cYbsFgsUjmVSlVv2rlzpyO7QkTUZXRzZOXTpk1DaWkpsrKyUFdXh7i4OCQkJGDHjh0Nlr927RquXbuGNWvWIDQ0FJcvX8bs2bNx7do1/OUvf5HKbt68GdHR0cq8p6enI7tCRNRlqIQQwhEVnz17FqGhofjyyy8xatQoAEBmZibGjx+PK1euICAgoFn17N69G9OnT0dNTQ26dfs2x1QqFfbu3YvJkye3qm1WqxU6nQ4WiwUeHh6tqoOIqDNpy3HNYZeScnJy4OnpqYQCABiNRqjVauTm5ja7nnudvBcK98ydOxfe3t6IiIjApk2b0FS+1dbWwmq1ShMRETXMYZeSzGYzfH195Q/r1g1eXl4wm83NquP69etYsWIFEhISpOXLly/Hs88+C3d3d3zyySd47bXXUF1djTfeeKPBelJTU5GSktK6jhARdTEtPmNYsmRJg1/+fn86d+7cAzfMarViwoQJCA0NxW9+8xtp3dKlS/GTn/wEI0aMwOLFi7Fo0SKsXr260bqSkpJgsViUqaSk5IHbR0TkrFp8xrBgwQLMnDmzyTLBwcHQ6/UoLy+Xlt+9excVFRXQ6/VNbl9VVYXo6Gj07NkTe/fuRffu3ZssbzAYsGLFCtTW1kKj0dRbr9FoGlxORET1tTgYfHx84OPjc99ykZGRqKysRH5+PsLDwwEAhw4dgt1uh8FgaHQ7q9UKk8kEjUaDv/71r9Bqtff9rMLCQvTq1YuDPxFRG3DYdwyDBg1CdHQ04uPjkZ6ejrq6OsybNw8xMTHKHUlXr17FmDFjsG3bNkRERMBqtWLs2LG4efMmtm/fLn1R7OPjAxcXFxw4cABlZWV44oknoNVqkZWVhXfffRe//vWvHdUVIqIuxaHPMWRkZGDevHkYM2YM1Go1nn/+eaxbt05ZX1dXh/Pnz+PmzZsAgIKCAuWOpZCQEKmuoqIi9O3bF927d0daWhrefPNNCCEQEhKCtWvXIj4+3pFdISLqMhz2HENnxucYiMjZPBTPMRAR0cOJwUBERBIGAxERSRgMREQkYTAQEZGEwUBERBIGAxERSRgMREQkceiTz87EZhfIK6pAedVt+PbUIiLICy5qVUc3i4icSGcZZxgMzZB5qhQpB86g1HJbWeav0yJ5Yiiih/h3YMuIyFl0pnGGl5LuI/NUKeZsL5AOFgCYLbcxZ3sBMk+VdlDLiMhZdLZxhsHQBJtdIOXAGTT0Y1L3lqUcOAObvcv93BQRtZHOOM4wGJqQV1RRL8G/TwAotdxGXlFF+zWKiJxKZxxnGAxNKK9q/GC1phwR0Q91xnGGwdAE3573f3tcS8oREf1QZxxnGAxNiAjygr9Oi8ZuFlPh27sGIoK82rNZROREOuM4w2BogotaheSJoQBQ76Ddm0+eGMrnGYio1TrjOMNguI/oIf5YP30k9Dr5NE6v02L99JF8joGIHlhnG2f4as9mvgKvszyRSETO60HGmbZ8tSeffG4mF7UKkf16d3QziMiJdZZxhpeSiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQODYaKigpMmzYNHh4e8PT0xKxZs1BdXd3kNk8//TRUKpU0zZ49WypTXFyMCRMmwN3dHb6+vli4cCHu3r3ryK4QEXUZDn3Abdq0aSgtLUVWVhbq6uoQFxeHhIQE7Nixo8nt4uPjsXz5cmXe3d1d+W+bzYYJEyZAr9fj+PHjKC0tRWxsLLp37453333XYX0hIuoyhIOcOXNGABBffvmlsuzvf/+7UKlU4urVq41uFxUVJX71q181uv7gwYNCrVYLs9msLFu/fr3w8PAQtbW1zWqbxWIRAITFYmlWeSKizq4txzWHXUrKycmBp6cnRo0apSwzGo1Qq9XIzc1tctuMjAx4e3tjyJAhSEpKws2bN6V6hw4dCj8/P2WZyWSC1WrF6dOnG6yvtrYWVqtVmoiIqGEOu5RkNpvh6+srf1i3bvDy8oLZbG50u5dffhl9+vRBQEAATp48icWLF+P8+fPYs2ePUu/3QwGAMt9YvampqUhJSXmQ7hARdRktDoYlS5Zg5cqVTZY5e/ZsqxuUkJCg/PfQoUPh7++PMWPG4OLFi+jXr1+r6kxKSkJiYqIyb7VaERgY2Oo2EhE5sxYHw4IFCzBz5swmywQHB0Ov16O8vFxafvfuXVRUVECv1zf78wwGAwDgwoUL6NevH/R6PfLy8qQyZWVlANBovRqNBhqNptmfSUTUlbU4GHx8fODj43PfcpGRkaisrER+fj7Cw8MBAIcOHYLdblcG++YoLCwEAPj7+yv1/va3v0V5eblyqSorKwseHh4IDQ1tYW+IiOiHHPbl86BBgxAdHY34+Hjk5eXh2LFjmDdvHmJiYhAQEAAAuHr1KgYOHKicAVy8eBErVqxAfn4+Ll26hL/+9a+IjY3FU089hWHDhgEAxo4di9DQULzyyiv4n//5H3z88cd4++23MXfuXJ4VEBG1AYc+4JaRkYGBAwdizJgxGD9+PJ588kn88Y9/VNbX1dXh/Pnzyl1Hrq6u+PTTTzF27FgMHDgQCxYswPPPP48DBw4o27i4uOBvf/sbXFxcEBkZienTpyM2NlZ67oGIiFqPr/Z8wFfgERF1Bm05rvG3koiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiCYOBiIgkDAYiIpIwGIiISMJgICIiiUODoaKiAtOmTYOHhwc8PT0xa9YsVFdXN1r+0qVLUKlUDU67d+9WyjW0fufOnY7sChFRl9HNkZVPmzYNpaWlyMrKQl1dHeLi4pCQkIAdO3Y0WD4wMBClpaXSsj/+8Y9YvXo1xo0bJy3fvHkzoqOjlXlPT882bz8RUVfksGA4e/YsMjMz8eWXX2LUqFEAgA8++ADjx4/HmjVrEBAQUG8bFxcX6PV6adnevXvx0ksvoUePHtJyT0/PemWJiOjBOexSUk5ODjw9PZVQAACj0Qi1Wo3c3Nxm1ZGfn4/CwkLMmjWr3rq5c+fC29sbERER2LRpE4QQbdZ2IqKuzGFnDGazGb6+vvKHdesGLy8vmM3mZtWxceNGDBo0CKNHj5aWL1++HM8++yzc3d3xySef4LXXXkN1dTXeeOONBuupra1FbW2tMm+1WlvYGyKirqPFZwxLlixp9Avie9O5c+ceuGG3bt3Cjh07GjxbWLp0KX7yk59gxIgRWLx4MRYtWoTVq1c3Wldqaip0Op0yBQYGPnD7iIicVYvPGBYsWICZM2c2WSY4OBh6vR7l5eXS8rt376KioqJZ3w385S9/wc2bNxEbG3vfsgaDAStWrEBtbS00Gk299UlJSUhMTFTmrVYrw4GIqBEtDgYfHx/4+Pjct1xkZCQqKyuRn5+P8PBwAMChQ4dgt9thMBjuu/3GjRvx7//+7836rMLCQvTq1avBUAAAjUbT6DoiIpI57DuGQYMGITo6GvHx8UhPT0ddXR3mzZuHmJgY5Y6kq1evYsyYMdi2bRsiIiKUbS9cuICjR4/i4MGD9eo9cOAAysrK8MQTT0Cr1SIrKwvvvvsufv3rXzuqK0REXYpDn2PIyMjAvHnzMGbMGKjVajz//PNYt26dsr6urg7nz5/HzZs3pe02bdqERx99FGPHjq1XZ/fu3ZGWloY333wTQgiEhIRg7dq1iI+Pd2RXiIi6DJXogvd5Wq1W6HQ6WCwWeHh4dHRziIgeWFuOa/ytJCIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiKJQ1/UQ9QQm10gr6gC5VW34dtTi4ggL7ioVR3dLGolHk/nw2CgdpV5qhQpB86g1HJbWeav0yJ5Yiiih/h3YMuoNXg8nRMvJVG7yTxVijnbC6RBBADMltuYs70AmadKO6hl1Bo8ns6LwUDtwmYXSDlwBg29R/bespQDZ2Czd7k3zT6UeDydG4OB2kVeUUW9f1l+nwBQarmNvKKK9msUtRqPp3NjMFC7KK9qfBBpTTnqWDyezo3BQO3Ct6e2TctRx+LxdG4MBmoXEUFe8Ndp0dhNjCp8ezdLRJBXezaLWonH07kxGKhduKhVSJ4YCgD1BpN788kTQ3n/+0OCx9O5MRio3UQP8cf66SOh18mXF/Q6LdZPH8n73h8yPJ7OSyWE6HL3k1mtVuh0OlgsFnh4eHR0c7ocPinrXHg8O4e2HNf45DO1Oxe1CpH9end0M6iN8Hg6H4ddSvrtb3+L0aNHw93dHZ6ens3aRgiBZcuWwd/fH25ubjAajfj666+lMhUVFZg2bRo8PDzg6emJWbNmobq62gE9ICLqmhwWDHfu3MGLL76IOXPmNHubVatWYd26dUhPT0dubi4eeeQRmEwm3L793b3Q06ZNw+nTp5GVlYW//e1vOHr0KBISEhzRBSKirkk42ObNm4VOp7tvObvdLvR6vVi9erWyrLKyUmg0GvHRRx8JIYQ4c+aMACC+/PJLpczf//53oVKpxNWrV5vdJovFIgAIi8XS/I4QEXVibTmudZq7koqKimA2m2E0GpVlOp0OBoMBOTk5AICcnBx4enpi1KhRShmj0Qi1Wo3c3Nx2bzMRkTPqNF8+m81mAICfn5+03M/PT1lnNpvh6+srre/WrRu8vLyUMg2pra1FbW2tMm+1Wtuq2URETqdFZwxLliyBSqVqcjp37pyj2tpqqamp0Ol0yhQYGNjRTSIi6rRadMawYMECzJw5s8kywcHBrWqIXq8HAJSVlcHf/7sHY8rKyhAWFqaUKS8vl7a7e/cuKioqlO0bkpSUhMTERGXeYrHgscce45kDETmNe+OZaINH01oUDD4+PvDx8XngD21IUFAQ9Ho9srOzlSCwWq3Izc1V7myKjIxEZWUl8vPzER4eDgA4dOgQ7HY7DAZDo3VrNBpoNBpl/t4O5JkDETmbqqoq6HS6B6rDYd8xFBcXo6KiAsXFxbDZbCgsLAQAhISEoEePHgCAgQMHIjU1FT//+c+hUqkwf/58vPPOO+jfvz+CgoKwdOlSBAQEYPLkyQCAQYMGITo6GvHx8UhPT0ddXR3mzZuHmJgYBAQENLttAQEBKCkpQc+ePVFVVYXAwECUlJTwKehmsFqt3F8twP3VMtxfLXdvnxUXF0OlUrVoLGzUg98k1bAZM2YIfPu+Dmk6fPiwUgaA2Lx5szJvt9vF0qVLhZ+fn9BoNGLMmDHi/PnzUr03btwQU6dOFT169BAeHh4iLi5OVFVVtbqdvHW1Zbi/Wob7q2W4v1rOEfusS/5W0vfxd5NahvurZbi/Wob7q+Ucsc86zXMMRETUOXT5YNBoNEhOTpa+nKbGcX+1DPdXy3B/tZwj9lmXv5RERESyLn/GQEREMgYDERFJGAxERCRhMBARkaTLBYOj3iznzFrz1rynn3663g8szp49u51a3L7S0tLQt29faLVaGAwG5OXlNVl+9+7dGDhwILRaLYYOHYqDBw+2U0s7h5bsry1bttT7O9Jqte3Y2o519OhRTJw4EQEBAVCpVNi3b999tzly5AhGjhwJjUaDkJAQbNmypcWf2+WCwVFvlnNmrX1rXnx8PEpLS5Vp1apV7dDa9rVr1y4kJiYiOTkZBQUFGD58OEwmU70fe7zn+PHjmDp1KmbNmoUTJ05g8uTJmDx5Mk6dOtXOLe8YLd1fAODh4SH9HV2+fLkdW9yxampqMHz4cKSlpTWrfFFRESZMmIBnnnkGhYWFmD9/Pl599VV8/PHHLfvgNnuG+iHTlm+Wc2atfWteVFSU+NWvftUOLexYERERYu7cucq8zWYTAQEBIjU1tcHyL730kpgwYYK0zGAwiF/+8pcObWdn0dL91dz/n3YFAMTevXubLLNo0SIxePBgadmUKVOEyWRq0Wd1uTOGlmrOm+Wc2YO8NS8jIwPe3t4YMmQIkpKScPPmTUc3t13duXMH+fn50t+GWq2G0Whs9G8jJydHKg8AJpOpS/wttWZ/AUB1dTX69OmDwMBATJo0CadPn26P5j6U2urvq9O8wa2zas6b5ZxZa9+a9/LLL6NPnz4ICAjAyZMnsXjxYpw/fx579uxxdJPbzfXr12Gz2Rr822jshVVms7nL/i21Zn8NGDAAmzZtwrBhw2CxWLBmzRqMHj0ap0+fxqOPPtoezX6oNPb3ZbVacevWLbi5uTWrHqc4Y3hY3yzXkRy9zxISEmAymTB06FBMmzYN27Ztw969e3Hx4sU27AU5u8jISMTGxiIsLAxRUVHYs2cPfHx88OGHH3Z005yaU5wxdPSb5R5Gzd1nrX1r3g/de5HShQsX0K9fvxa3tzPy9vaGi4sLysrKpOVlZWWN7hu9Xt+i8s6kNfvrh7p3744RI0bgwoULjmjiQ6+xvy8PD49mny0AThIMHf1muYdRc/dZa9+a90P3XtT0/XB92Lm6uiI8PBzZ2dnKy6Tsdjuys7Mxb968BreJjIxEdnY25s+fryzLyspCZGRkO7S4Y7Vmf/2QzWbDV199hfHjxzuwpQ+vyMjIerc/t+rvq6XfjD/sLl++LE6cOCFSUlJEjx49xIkTJ8SJEyekl/0MGDBA7NmzR5l/7733hKenp9i/f784efKkmDRpkggKChK3bt3qiC60u+joaDFixAiRm5srPv/8c9G/f38xdepUZf2VK1fEgAEDRG5urhBCiAsXLojly5eL//7v/xZFRUVi//79Ijg4WDz11FMd1QWH2blzp9BoNGLLli3izJkzIiEhQXh6egqz2SyEEOKVV14RS5YsUcofO3ZMdOvWTaxZs0acPXtWJCcni+7du4uvvvqqo7rQrlq6v1JSUsTHH38sLl68KPLz80VMTIzQarXi9OnTHdWFdlVVVaWMUQDE2rVrxYkTJ8Tly5eFEEIsWbJEvPLKK0r5f/7zn8Ld3V0sXLhQnD17VqSlpQkXFxeRmZnZos/tcsHgqDfLObP7vTWvqKhI2ofFxcXiqaeeEl5eXkKj0YiQkBCxcOFCp30r1wcffCAee+wx4erqKiIiIsQXX3yhrIuKihIzZsyQyv/5z38Wjz/+uHB1dRWDBw8W//Vf/9XOLe5YLdlf8+fPV8r6+fmJ8ePHi4KCgg5odcc4fPhwg+PVvX00Y8YMERUVVW+bsLAw4erqKoKDg6WxrLn4s9tERCRxiruSiIio7TAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCQMBiIikjAYiIhIwmAgIiIJg4GIiCT/B88ZmY6y81vSAAAAAElFTkSuQmCC",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"PAM8\")\n",
+    "plt.plot(PAM8, [0]*8, 'o')\n",
+    "\n",
+    "x = [x for x, y in QPSK]\n",
+    "y = [y for x, y in QPSK]\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"QPSK\")\n",
+    "plt.plot(x,y,'o')\n",
+    "\n",
+    "x = [x for x, y in PSK8]\n",
+    "y = [y for x, y in PSK8]\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"PSK8\")\n",
+    "plt.plot(x,y,'o')\n",
+    "\n",
+    "x = [x for x, y in QAM16]\n",
+    "y = [y for x, y in QAM16]\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"QAM16\")\n",
+    "plt.plot(x,y,'o')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 647,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "errors:  0\n",
+      "PAM8 Symbol error rate (SER):  0.0\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[<matplotlib.lines.Line2D at 0x7fc1da226500>]"
+      ]
+     },
+     "execution_count": 647,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# PAM8\n",
+    "SNR_list =np.linspace(-10, 100, 100)\n",
+    "symbol_error_rate = []\n",
+    "\n",
+    "symbols = np.zeros(10**2)\n",
+    "for i in range(10**2):\n",
+    "    symbols[i] = np.random.randint(0, 2)\n",
+    "    \n",
+    "PAM8_symbols = []\n",
+    "for i in symbols:\n",
+    "    PAM8_symbols.append(PAM8[int(i)])\n",
+    "\n",
+    "\n",
+    "for SNR_dB in SNR_list:\n",
+    "\n",
+    "    SNR_linear = 10**(SNR_dB / 10)\n",
+    "\n",
+    "    signal_power = np.mean(np.abs(PAM8_symbols)**2)\n",
+    "    noise_power = signal_power / SNR_linear\n",
+    "    num_symbols = len(PAM8_symbols)\n",
+    "\n",
+    "    noise = noise_power * np.random.normal(0, 1, len(PAM8_symbols))\n",
+    "    rx_signal = [PAM8_symbols[i] + noise[i] for i in range(len(PAM8_symbols))]\n",
+    "\n",
+    "    detected_idx = np.zeros(num_symbols, dtype=int)\n",
+    "    for i, r in enumerate(rx_signal):\n",
+    "        distances = [np.linalg.norm(np.array(r) - s) for s in PAM8]\n",
+    "        detected_idx[i] = np.argmin(distances)\n",
+    "\n",
+    "    detected_symbols = []\n",
+    "    for i in detected_idx:\n",
+    "        detected_symbols.append(PAM8[int(i)])\n",
+    "        \n",
+    "    errors = 0\n",
+    "    for i in range(len(PAM8_symbols)):\n",
+    "        if PAM8_symbols[i] != detected_symbols[i]:\n",
+    "            errors += 1\n",
+    "            \n",
+    "    SER = errors / num_symbols\n",
+    "    \n",
+    "    symbol_error_rate.append(SER)\n",
+    "\n",
+    "print(\"errors: \", errors)\n",
+    "print(\"PAM8 Symbol error rate (SER): \", SER)\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"PAM8\")\n",
+    "plt.plot(rx_signal, [0]*len(rx_signal), 'o', color=\"red\")\n",
+    "plt.plot(PAM8, [0]*len(PAM8), 'o', color=\"blue\")\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"PAM8 symbol error rate\")\n",
+    "plt.plot(SNR_list, symbol_error_rate, 'o', color=\"blue\")\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 632,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[-0.7071067811865477, -0.7071067811865475]\n",
+      "errors:  75\n",
+      "QPSK Symbol error rate (SER):  0.75\n",
+      "errors:  67\n",
+      "QPSK Symbol error rate (SER):  0.67\n",
+      "errors:  61\n",
+      "QPSK Symbol error rate (SER):  0.61\n",
+      "errors:  65\n",
+      "QPSK Symbol error rate (SER):  0.65\n",
+      "errors:  71\n",
+      "QPSK Symbol error rate (SER):  0.71\n",
+      "errors:  64\n",
+      "QPSK Symbol error rate (SER):  0.64\n",
+      "errors:  70\n",
+      "QPSK Symbol error rate (SER):  0.7\n",
+      "errors:  76\n",
+      "QPSK Symbol error rate (SER):  0.76\n",
+      "errors:  80\n",
+      "QPSK Symbol error rate (SER):  0.8\n",
+      "errors:  66\n",
+      "QPSK Symbol error rate (SER):  0.66\n",
+      "errors:  67\n",
+      "QPSK Symbol error rate (SER):  0.67\n",
+      "errors:  72\n",
+      "QPSK Symbol error rate (SER):  0.72\n",
+      "errors:  60\n",
+      "QPSK Symbol error rate (SER):  0.6\n",
+      "errors:  61\n",
+      "QPSK Symbol error rate (SER):  0.61\n",
+      "errors:  62\n",
+      "QPSK Symbol error rate (SER):  0.62\n",
+      "errors:  64\n",
+      "QPSK Symbol error rate (SER):  0.64\n",
+      "errors:  66\n",
+      "QPSK Symbol error rate (SER):  0.66\n",
+      "errors:  61\n",
+      "QPSK Symbol error rate (SER):  0.61\n",
+      "errors:  54\n",
+      "QPSK Symbol error rate (SER):  0.54\n",
+      "errors:  56\n",
+      "QPSK Symbol error rate (SER):  0.56\n",
+      "errors:  67\n",
+      "QPSK Symbol error rate (SER):  0.67\n",
+      "errors:  59\n",
+      "QPSK Symbol error rate (SER):  0.59\n",
+      "errors:  56\n",
+      "QPSK Symbol error rate (SER):  0.56\n",
+      "errors:  58\n",
+      "QPSK Symbol error rate (SER):  0.58\n",
+      "errors:  60\n",
+      "QPSK Symbol error rate (SER):  0.6\n",
+      "errors:  57\n",
+      "QPSK Symbol error rate (SER):  0.57\n",
+      "errors:  53\n",
+      "QPSK Symbol error rate (SER):  0.53\n",
+      "errors:  52\n",
+      "QPSK Symbol error rate (SER):  0.52\n",
+      "errors:  55\n",
+      "QPSK Symbol error rate (SER):  0.55\n",
+      "errors:  49\n",
+      "QPSK Symbol error rate (SER):  0.49\n",
+      "errors:  56\n",
+      "QPSK Symbol error rate (SER):  0.56\n",
+      "errors:  41\n",
+      "QPSK Symbol error rate (SER):  0.41\n",
+      "errors:  52\n",
+      "QPSK Symbol error rate (SER):  0.52\n",
+      "errors:  46\n",
+      "QPSK Symbol error rate (SER):  0.46\n",
+      "errors:  49\n",
+      "QPSK Symbol error rate (SER):  0.49\n",
+      "errors:  47\n",
+      "QPSK Symbol error rate (SER):  0.47\n",
+      "errors:  40\n",
+      "QPSK Symbol error rate (SER):  0.4\n",
+      "errors:  39\n",
+      "QPSK Symbol error rate (SER):  0.39\n",
+      "errors:  35\n",
+      "QPSK Symbol error rate (SER):  0.35\n",
+      "errors:  34\n",
+      "QPSK Symbol error rate (SER):  0.34\n",
+      "errors:  32\n",
+      "QPSK Symbol error rate (SER):  0.32\n",
+      "errors:  32\n",
+      "QPSK Symbol error rate (SER):  0.32\n",
+      "errors:  19\n",
+      "QPSK Symbol error rate (SER):  0.19\n",
+      "errors:  35\n",
+      "QPSK Symbol error rate (SER):  0.35\n",
+      "errors:  13\n",
+      "QPSK Symbol error rate (SER):  0.13\n",
+      "errors:  21\n",
+      "QPSK Symbol error rate (SER):  0.21\n",
+      "errors:  25\n",
+      "QPSK Symbol error rate (SER):  0.25\n",
+      "errors:  20\n",
+      "QPSK Symbol error rate (SER):  0.2\n",
+      "errors:  16\n",
+      "QPSK Symbol error rate (SER):  0.16\n",
+      "errors:  10\n",
+      "QPSK Symbol error rate (SER):  0.1\n",
+      "errors:  12\n",
+      "QPSK Symbol error rate (SER):  0.12\n",
+      "errors:  11\n",
+      "QPSK Symbol error rate (SER):  0.11\n",
+      "errors:  11\n",
+      "QPSK Symbol error rate (SER):  0.11\n",
+      "errors:  10\n",
+      "QPSK Symbol error rate (SER):  0.1\n",
+      "errors:  10\n",
+      "QPSK Symbol error rate (SER):  0.1\n",
+      "errors:  9\n",
+      "QPSK Symbol error rate (SER):  0.09\n",
+      "errors:  6\n",
+      "QPSK Symbol error rate (SER):  0.06\n",
+      "errors:  6\n",
+      "QPSK Symbol error rate (SER):  0.06\n",
+      "errors:  7\n",
+      "QPSK Symbol error rate (SER):  0.07\n",
+      "errors:  3\n",
+      "QPSK Symbol error rate (SER):  0.03\n",
+      "errors:  4\n",
+      "QPSK Symbol error rate (SER):  0.04\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  1\n",
+      "QPSK Symbol error rate (SER):  0.01\n",
+      "errors:  1\n",
+      "QPSK Symbol error rate (SER):  0.01\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  1\n",
+      "QPSK Symbol error rate (SER):  0.01\n",
+      "errors:  1\n",
+      "QPSK Symbol error rate (SER):  0.01\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "QPSK Symbol error rate (SER):  0.0\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[<matplotlib.lines.Line2D at 0x7fc1dc58b6a0>]"
+      ]
+     },
+     "execution_count": 632,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAF2CAYAAACRaQhmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0o0lEQVR4nO3de3RTVaI/8G+S0lSEtJY+0kekIAIqT4t0ytwCSq8gXgeGYYBaQbhIdQkKFh3bO0gVHx0UtYyiKEtlcS8IAnV0EPFCCz+L9hYsckUQFIShLU2hdEgKXFtI9u+PmNC0eZw8Ttqefj9rnQU92SdnJ+355mTvffZRCSEEiIhIEdTtXQEiIgoehjoRkYIw1ImIFIShTkSkIAx1IiIFYagTESkIQ52ISEEY6kRECsJQJyJSEIY6EZGCMNSpSzp8+DAeeOABJCUlQavVIjExEQ888ACOHDniVG7t2rVQqVSOJSIiAv3798eCBQtQV1fnVPbUqVOYM2cObrrpJkRERECv12P06NEoKChwKjd27FgMGjSoTZ1KSkrQvXt33H777WhoaAj+i6YuIay9K0AUasXFxcjKykJ0dDTmzp2LPn364NSpU3jvvfewZcsWbNq0CZMmTXLaZtmyZejTpw9++eUX7N27F2+//Ta2b9+O77//Ht27d8fx48dxxx134LrrrsO///u/IyUlBbW1tThw4ACWL1+O5557zmOdSktLcd9992HAgAHYtWsXoqOj5XwLSMkEURdy/Phx0b17dzFw4EBx9uxZp8fOnTsnBg4cKHr06CF+/vlnIYQQH3zwgQAg9u/f71Q2NzdXABAbNmwQQgjx6KOPirCwMHHq1Kk2+6yrq3P6ecyYMeK2225z/Lxnzx7RvXt3MXToUFFfXx+U10ldF5tfqEt55ZVXcPnyZbz77ruIjY11eiwmJgbvvPMOLl68iFdeecXj89x1110AgJMnTwIATpw4geTkZPTu3btN2bi4OLfPU1ZWhnvvvRf9+vXDrl270KtXL19fEpEThjp1KX//+9+RkpKCjIwMl4+PHj0aKSkp+Pvf/+7xeU6cOAEAjhDu3bs3qqqqUFpaKrkuX331FSZOnIg+ffqgpKQEMTExkrclcoehTl2GyWTCmTNnMHToUI/lhgwZgurqajQ2NjptW19fj+rqamzatAnLli3Dddddh3/7t38DADz++OMIDw/HuHHjMHz4cCxatAiffPIJLl++7HIftbW1uOeee9C7d2+UlpYy0CloGOrUZdhDumfPnh7L2R9vGeqZmZmIjY2FwWDAjBkz0KNHD3z88cdISkoCANx22204ePAgHnjgAZw6dQorV67E5MmTER8fjzVr1rTZx6VLl9DY2Ij4+HjodLpgvUQihjp1Ha7C2pXGxkaoVCqns+dVq1Zh586d2L17N44cOYKff/4Z48ePd9quf//++M///E/U19fju+++w0svvYSwsDDk5ORg165dTmX79euH5cuXo7S0FFlZWbBYLEF6ldTVcUgjdRmRkZFITEzEd99957Hcd999h+TkZISHhzvWjRw5EiNGjJC0H41Gg8GDB2Pw4MFIT0/HnXfeifXr1yMzM9Op3J/+9CecP38eL7/8MubNm4f33nsPKpXK9xdG1ALP1KlLue+++3Dy5Ens3bvX5eNlZWU4deoU/vjHPwZlf/YPgtraWpePL1++HA899BA++OADPPnkk0HZJ3VtDHXqUp588kl0794dDz/8MM6fP+/0WENDAx555BHodDosWLDAp+ctKyvDlStX2qzfvn07AGDAgAFut33nnXcwdepUvPbaa3jhhRd82i9Ra2x+oS6lX79+WLduHbKysjB48OA2V5T+85//xMaNG9GnTx+fnnf58uWorKzElClTMGTIEADAgQMHsG7dOkRHR2PRokVut1Wr1Vi/fj1MJhOeeeYZREdH49FHHw3kZVJX1t5XPxG1h0OHDon7779f6PV6oVarBQAREREhDh8+7FTO3RWlrX311Vdi/vz5YtCgQSIyMlJ069ZN3HjjjWL27NnixIkTTmVbX1Fqd/HiRfGb3/xGqNVqsX79+sBfJHVJKiGEaO8PFqL2tm7dOsyePRsPPPAA1q1b197VIfIbm1+IAMyaNQu1tbXIy8tDcnIyXnrppfauEpFfeKZORKQgHP1CRKQgDHUiIgVhqBMRKQhDnYhIQRQ3+sVqteLMmTPo2bMn59EgIkUQQqCxsRGJiYlQqz2fiysu1M+cOQODwdDe1SAiCrqqqiokJyd7LKO4ULdPr1pVVcV5qolIEcxmMwwGg9d7AQAKDHV7k4tOp2OoE5GiSGlSZkcpEZGCMNSJiBSEoU5EpCAMdSIiBWGoExEpCEOdiEhBFDekkYgoKCwWoKwMqK0FEhKAjAxAo2nvWnnFUCciaq24GFi4EKiuvrYuORlYuRKYMqVt+Q70AcDmFyKiloqLgalTnQMdAGpqbOuLi9uWT0kB7rwTuP9+278pKW3LhQhDnYjIzmKxnaG7uiGcfd2iRbZygO8fACHAUCcisisraxvQLQkBVFXZyvn6ARAisof6qlWrkJKSgoiICKSlpWHfvn0eyxcVFWHAgAG47rrrYDAY8MQTT+CXX36Ru5rBY7EAe/YAH35o+zfEv1AiCsAnn0grV1vr2wdACMnaUbpp0ybk5uZi9erVSEtLQ1FREcaPH49jx44hLi6uTfkNGzYgLy8P77//PkaNGoUff/wRs2fPhkqlwmuvvSZnVZ352+nha+cKEXUcxcVAUZG0sgkJtnyQQmq5YBEyGjlypJg/f77jZ4vFIhITE0VhYaHL8vPnzxd33XWX07rc3Fzx29/+VvI+TSaTACBMJpN/ld66VYjkZCFsn7O2JTnZtt7bdiqV83aAbZ1K5X17Igquq1eF2L1biA0bbP9eveq+3K5dQvTo0fb4dbUYDNeeW0r53bsDfim+5Jpsod7U1CQ0Go34+OOPndbPmjVL/O53v3O5zfr160VkZKSoqKgQQghx4sQJMXDgQPHiiy+63c8vv/wiTCaTY6mqqvI/1P0N5qtX234QtN7e/odARPKTenLmqpy3xf4c9uPeVWYE+bjvEKFeU1MjAIivv/7aaf1TTz0lRo4c6Xa7lStXim7duomwsDABQDzyyCMe91NQUCAAtFl8DvVAgjmEn9hE5IXUkzN35TwtU6a43lfr5wnyN3RfQr1DjX7Zs2cPXnrpJbz11ls4cOAAiouL8dlnn+H55593u01+fj5MJpNjqaqq8m/ngXR6+NO2xg5VouDzNiJFCNvjzc3uy3myc6fzMMUpU4AtW4CkJOdyycm29e3QlyZbR2lMTAw0Gg3q6uqc1tfV1UGv17vc5plnnsHMmTPx0EMPAQAGDx6MS5cuIScnB3/+859d3nBVq9VCq9UGXuFAOj0SEqRtay/HDlUieXg7OQNsjz/8sPdyrjQ22saftwzsKVOASZOUf0VpeHg4UlNTUVJS4lhntVpRUlKC9PR0l9tcvny5TXBrfn1jhK+fqL7yNZhbysiwhbK7W02pVIDBYCvXAS9WIFIMqSdna9cGtp/W4881GmDsWCAry/Zve84RE5QGHzc2btwotFqtWLt2rThy5IjIyckRUVFRwmg0CiGEmDlzpsjLy3OULygoED179hQffvih+Pnnn8V///d/i5tuuklMmzZN8j79Hv1y9aoQvXp5bk/r1ct9p4eUtjV2qBLJS2r/VjCWEPaR+ZJrso5Tnz59Os6dO4elS5fCaDRi2LBh2LFjB+Lj4wEAp0+fdjozX7JkCVQqFZYsWYKamhrExsbivvvuw4svvihnNaVrarK1f2dkAF9/7fxVy9625qpZpajI9viePdLb7ceOlfe1ECmR/VuzP00rvvJ1/HmoJv0KwYdMSPl9pu7LJ7xG436olKexsRs2SHv+DRuC9G4QdUFbt3a8M3V/r3/5Vacd/dKupF4eDLQdqdKyPdxT21og7fZEJM2UKcBzz0krq9P5/vwt+8ikCHE/mkoIuXsgQ8tsNiMyMhImkwk6qb8wiwXQ64H6ev93rFLZvvadPOn+K5XFYpuSs6bG9VAqKc9BRN5ZLEDv3rZjzRX7sfbaa8Af/yj9ee2DIaQOV7Qf8+6agyQe877kGs/UAVs7VyCBDngex26n0diGLQKuR8oIYWt/Z6AT+ab1dR8A8Ne/2o6z1sea/eeiItuZ8tatQK9e0vYjdfy5vT7PPhvySb8Y6kBwJ9zx9lz2DtXo6LaPSf3DIqJr3N2kApB+YdD58973ExsLHD/uPdA3b7Z987/zTuCFF6S9hiBmEG9nBwTUhm2BGmXIQC0SkIBaZNSehaa5ue3omNZn3w0NbZ+soaHthQ1E5J69vbp1c6a9vXrLFuDUKfejTuxXoLbQ5phGGTSwAufO2Y5rTyPT/vQn4JVXfH8dwexHk9592zn4NfrF28Q8bpat+L1IxmnnDm2cFlvVf3AuGxMjxEcfOe+LY9WJAhOMY6nVqDe3xzR+731k2ubNvo+gkXi8c/SLr7y1dbtQjN9jKragGs5f7WqQhKnWj1CM319bWV8PTJtm+xTvoBPrE3U6wTiWWjR7eDymscV2TLs7o7ZYgEcf9aX2zm37QexHY6jbuZuYp1evNm3dFnU3LMRK2L7wOb+F4tefF6EIltZv7yuvSB++FOqJ9Yk6m2DcpOLXm/VYoPZ+TGvegGVUhuvJ+MrKbM0zvpBp0i+2qbfkbmIewGld2ZXfovrubm6fRkCNKtyIMmRgLP6f84NvvimtLhyrTuRZoNd9FBcDCxYAAMqQgWoY3D6FgBpVliSU/eVLjF2T3faq8alTpdYaWLIEGDdOtitKGeqt2S8eaq3FutoPpT1VLVz8MXm7LMA+blXqhQ1EXZV9SgBv1320PpYsFuDFF4GCAscql8eqC7UFqwG4uIhI6m3wYmNtwxxlHLbM5hc/SD5BgI9NKDK1sREpkqe+MFfHksUCLFtma3JpEeiA9GM1AWfarhTCtj8px+yqVbIf2wx1P9hOEARUsLp8XAUrDDiNDHjp7IyJcf65HSfWJ+qUpN6korgYiI+3hbmL4cQZKEMyqjwc08LzMS2E9xvdPPWUb1ev+onNL1K0ml1Nk5GBlVn7MfWVkVDB6uhIAeD4oyjCItvYVk+Kimx/jB1gYn2iTsvbTSrcjWVvQQMrVmIhpmKLm2NaJe2YXrTI9mHSss09NhZ46y3f2t0D4XXQYyfj9yyN7riaXS0pSYhevVyOaTXgH9fGtAZzljci8p23sewSrj0x9GwQW587JP2Y9jRTq598yTVO6OWJhE94t1efecKJu4hCY88e2+X6PnAc06okJEzLQMb6R6BB+07G50uusfnFHU83sG1BA2vbYYuesDOUKHT8uN5DAyvGzu4DvPMOEB7uWIuVK20neSqVcy50sGOaHaXuSLmBrT/YGUoUOr5e75GcDHz0EfDgg7bZG+0XFwHSO2XbGc/U3QnmFZ0REUBuLnDXXe1/U1qirsTX29vNmAE88YTzPOxJSbZpfKdM8d4p2wGwTd0dP9rivEpOtn2F6yCf6ERdwowZwKZNgT/P1q3tduzyJhnBYP+ElzjBlyTV1bLcvoqI3LBYgJ07g/NcOTnex6J3AAx1d/yYuVGyRYs6xR8HUadXVub63gX+OH/+2l2VOjCGuifuOkaSkgC1n28dp9YlCp1gz3bqKdRdzd7YDthR6s2kSUBk5LVf5tixtiU/3787nNhxal0i+YVqttPiYtsQ6NazN7ZDH5rsZ+qrVq1CSkoKIiIikJaWhn379nksf+HCBcyfPx8JCQnQarXo378/tm/fLnc1XbPf+zAz03avwRdeAGbPBj75BHj5ZdtcDv72enNqXSL5BbtvzNUMrvaLFFuPsLHfUi/UfWgBX7/qwcaNG0V4eLh4//33xeHDh8W8efNEVFSUqKurc1m+qalJjBgxQkycOFHs3btXnDx5UuzZs0ccPHhQ8j6DNk3A1q2ub2+nUtmWrVvtlRbi9deFuOeea48H4fZVRBQk7o5lX5devdoetyG6PaUvuSZrqI8cOVLMnz/f8bPFYhGJiYmisLDQZfm3335b9O3bVzQ3N/u9z6CEur+/KFfzxHj6QCCi0PB2bEpZXB23re5xKtc8Tx3iHqXNzc2orKxEZmamY51arUZmZibKy8tdbvPpp58iPT0d8+fPR3x8PAYNGoSXXnoJllB3OPh778MpU2x3Lt+92zbChVPrEnUM9mPzuedcP65S2ZannrIdpy0lJ7sfox6MW+oFmWwdpfX19bBYLIiPj3daHx8fj6NHj7rc5ueff0ZpaSmys7Oxfft2HD9+HI8++iiuXLmCglaT2ts1NTWhqanJ8bPZbA688oH8oux3Tho7FlixokNfeUbUpWg0wNKlwKBBrjs1i4pswV1YKP24DfSWejLoUKNfrFYr4uLi8O6770Kj0SA1NRU1NTV45ZVX3IZ6YWEhnnP36euvYP2i3N0aj4jaj7dL/X05bv29pZ6MZGt+iYmJgUajQV1dndP6uro66PV6l9skJCSgf//+0LT4VLzllltgNBrR3Nzscpv8/HyYTCbHUlVVFXjlvfWYq1SAwcD7iBJ1VvbgzsoKbD4mX2+pFwKyhXp4eDhSU1NRUlLiWGe1WlFSUoL09HSX2/z2t7/F8ePHYbVem4/8xx9/REJCAsIdU2A602q10Ol0TkvAOuAviog6qI42e2NAXbJebNy4UWi1WrF27Vpx5MgRkZOTI6KiooTRaBRCCDFz5kyRl5fnKH/69GnRs2dPsWDBAnHs2DGxbds2ERcXJ1544QXJ+wzqnY9c9ZgbDBy9QkRtyXDHIztfck3WNvXp06fj3LlzWLp0KYxGI4YNG4YdO3Y4Ok9Pnz4NdYvL7Q0GA7744gs88cQTGDJkCJKSkrBw4UI8/fTTclbTvU4wzSYRdRAdpA+NU+8SEXVwnHqXiKiLYqgTESkIQ52ISEEY6kRECsJQJyJSEIY6EZGCMNSJiBSEoU5EpCAMdSIiBWGoExEpCEOdiEhBGOpERArCUCciUhCGOhGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRjqREQKwlAnIlIQhjoRkYIw1ImIFIShTkSkICEJ9VWrViElJQURERFIS0vDvn37JG23ceNGqFQqTJ48Wd4KEhEphOyhvmnTJuTm5qKgoAAHDhzA0KFDMX78eJw9e9bjdqdOncKTTz6JjIwMuatIRKQYsof6a6+9hnnz5mHOnDm49dZbsXr1anTv3h3vv/++220sFguys7Px3HPPoW/fvnJXkYhIMWQN9ebmZlRWViIzM/PaDtVqZGZmory83O12y5YtQ1xcHObOnet1H01NTTCbzU4LEVFXJWuo19fXw2KxID4+3ml9fHw8jEajy2327t2L9957D2vWrJG0j8LCQkRGRjoWg8EQcL2JiDqrDjX6pbGxETNnzsSaNWsQExMjaZv8/HyYTCbHUlVVJXMtiYg6rjA5nzwmJgYajQZ1dXVO6+vq6qDX69uUP3HiBE6dOoX77rvPsc5qtdoqGhaGY8eO4aabbnLaRqvVQqvVylB7IqLOR9Yz9fDwcKSmpqKkpMSxzmq1oqSkBOnp6W3KDxw4EIcOHcLBgwcdy+9+9zvceeedOHjwIJtWiIi8kPVMHQByc3Px4IMPYsSIERg5ciSKiopw6dIlzJkzBwAwa9YsJCUlobCwEBERERg0aJDT9lFRUQDQZj0REbUle6hPnz4d586dw9KlS2E0GjFs2DDs2LHD0Xl6+vRpqNUdqmmfiKjTUgkhRHtXIpjMZjMiIyNhMpmg0+nauzpERAHzJdd4ikxEpCAMdSIiBWGoExEpCEOdiEhBGOpERArCUCciUhCGOhGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRjqREQKwlAnIlIQhjoRkYIw1ImIFIShTkSkIAx1IiIFYagTESkIQ52ISEEY6kRECsJQJyJSEIY6EZGChCTUV61ahZSUFERERCAtLQ379u1zW3bNmjXIyMjADTfcgBtuuAGZmZkeyxMR0TWyh/qmTZuQm5uLgoICHDhwAEOHDsX48eNx9uxZl+X37NmDrKws7N69G+Xl5TAYDLj77rtRU1Mjd1WJiDo9lRBCyLmDtLQ03HHHHXjzzTcBAFarFQaDAY899hjy8vK8bm+xWHDDDTfgzTffxKxZs7yWN5vNiIyMhMlkgk6nC7j+RETtzZdck/VMvbm5GZWVlcjMzLy2Q7UamZmZKC8vl/Qcly9fxpUrVxAdHe3y8aamJpjNZqeFiKirkjXU6+vrYbFYEB8f77Q+Pj4eRqNR0nM8/fTTSExMdPpgaKmwsBCRkZGOxWAwBFxvIqLOqkOPfvnLX/6CjRs34uOPP0ZERITLMvn5+TCZTI6lqqoqxLUkIuo4wuR88piYGGg0GtTV1Tmtr6urg16v97jtihUr8Je//AW7du3CkCFD3JbTarXQarVBqS8RUWcn65l6eHg4UlNTUVJS4lhntVpRUlKC9PR0t9u9/PLLeP7557Fjxw6MGDFCzioSESmKrGfqAJCbm4sHH3wQI0aMwMiRI1FUVIRLly5hzpw5AIBZs2YhKSkJhYWFAIDly5dj6dKl2LBhA1JSUhxt7z169ECPHj3kri4RUacme6hPnz4d586dw9KlS2E0GjFs2DDs2LHD0Xl6+vRpqNXXvjC8/fbbaG5uxtSpU52ep6CgAM8++6zc1SUi6tRkH6ceahynTkRK02HGqRMRUWgx1ImIFIShTkSkIAx1IiIFYagTESkIQ52ISEEY6kRECsJQJyJSEIY6EZGCMNSJiBSEoU5EpCAMdSIiBWGoExEpCEOdiEhBGOpERArCUCciUhCGOhGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRjqREQKEpJQX7VqFVJSUhAREYG0tDTs27fPY/nNmzdj4MCBiIiIwODBg7F9+/ZQVJOIqNOTPdQ3bdqE3NxcFBQU4MCBAxg6dCjGjx+Ps2fPuiz/9ddfIysrC3PnzsW3336LyZMnY/Lkyfj+++/lrioRUaenEkIIOXeQlpaGO+64A2+++SYAwGq1wmAw4LHHHkNeXl6b8tOnT8elS5ewbds2x7rf/OY3GDZsGFavXu11f2azGZGRkTCZTNDpdMF7IURE7cSXXJP1TL25uRmVlZXIzMy8tkO1GpmZmSgvL3e5TXl5uVN5ABg/frzb8kREdE2YnE9eX18Pi8WC+Ph4p/Xx8fE4evSoy22MRqPL8kaj0WX5pqYmNDU1OX42m80B1pqIqPPq9KNfCgsLERkZ6VgMBkN7V4mIqN3IGuoxMTHQaDSoq6tzWl9XVwe9Xu9yG71e71P5/Px8mEwmx1JVVRWcyhMRdUKyhnp4eDhSU1NRUlLiWGe1WlFSUoL09HSX26SnpzuVB4CdO3e6La/VaqHT6ZwWIqKuStY2dQDIzc3Fgw8+iBEjRmDkyJEoKirCpUuXMGfOHADArFmzkJSUhMLCQgDAwoULMWbMGLz66qu49957sXHjRnzzzTd499135a4qEVGnJ3uoT58+HefOncPSpUthNBoxbNgw7Nixw9EZevr0aajV174wjBo1Chs2bMCSJUvwH//xH7j55pvxt7/9DYMGDZK7qkREnZ7s49RDjePUiUhpOsw4dSIiCi2GOhGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRjqREQKwlAnIlIQhjoRkYIw1ImIFIShTkSkIAx1IiIFYagTESkIQ52ISEEY6kRECsJQJyJSEIY6EZGCMNSJiBSEoU5EpCAMdSIiBWGoExEpCEOdiEhBZA31hoYGZGdnQ6fTISoqCnPnzsXFixc9ln/ssccwYMAAXHfddbjxxhvx+OOPw2QyyVlNIiLFkDXUs7OzcfjwYezcuRPbtm3Dl19+iZycHLflz5w5gzNnzmDFihX4/vvvsXbtWuzYsQNz586Vs5pERIqhEkIIOZ74hx9+wK233or9+/djxIgRAIAdO3Zg4sSJqK6uRmJioqTn2bx5Mx544AFcunQJYWFhXsubzWZERkbCZDJBp9MF9BqIiDoCX3JNtjP18vJyREVFOQIdADIzM6FWq1FRUSH5eewvQkqgExF1dbIlpdFoRFxcnPPOwsIQHR0No9Eo6Tnq6+vx/PPPe2yyaWpqQlNTk+Nns9nsX4WJiBTA5zP1vLw8qFQqj8vRo0cDrpjZbMa9996LW2+9Fc8++6zbcoWFhYiMjHQsBoMh4H0TEXVWPp+pL168GLNnz/ZYpm/fvtDr9Th79qzT+qtXr6KhoQF6vd7j9o2NjZgwYQJ69uyJjz/+GN26dXNbNj8/H7m5uY6fzWYzg52IuiyfQz02NhaxsbFey6Wnp+PChQuorKxEamoqAKC0tBRWqxVpaWlutzObzRg/fjy0Wi0+/fRTREREeNyPVquFVqv17UUQESmUbB2lt9xyCyZMmIB58+Zh3759+Oqrr7BgwQLMmDHDMfKlpqYGAwcOxL59+wDYAv3uu+/GpUuX8N5778FsNsNoNMJoNMJischVVSIixZB1SMn69euxYMECjBs3Dmq1Gn/4wx/w17/+1fH4lStXcOzYMVy+fBkAcODAAcfImH79+jk918mTJ5GSkiJndYmIOj3Zxqm3F45TJyKl6RDj1ImIKPQY6kRECsJQJyJSEIY6EZGCMNSJiBSEoU5EpCAMdSIiBWGoExEpCEOdiEhBGOpERArCUCciUhCGOhGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRjqREQKwlAnIlIQhjoRkYIw1ImIFIShTkSkIAx1IiIFYagTESmIrKHe0NCA7Oxs6HQ6REVFYe7cubh48aKkbYUQuOeee6BSqfC3v/1NzmoSESmGrKGenZ2Nw4cPY+fOndi2bRu+/PJL5OTkSNq2qKgIKpVKzuoRESlOmFxP/MMPP2DHjh3Yv38/RowYAQB44403MHHiRKxYsQKJiYlutz148CBeffVVfPPNN0hISJCrikREiiPbmXp5eTmioqIcgQ4AmZmZUKvVqKiocLvd5cuXcf/992PVqlXQ6/Ve99PU1ASz2ey0EBF1VbKFutFoRFxcnNO6sLAwREdHw2g0ut3uiSeewKhRozBp0iRJ+yksLERkZKRjMRgMAdWbiKgz8znU8/LyoFKpPC5Hjx71qzKffvopSktLUVRUJHmb/Px8mEwmx1JVVeXXvomIlMDnNvXFixdj9uzZHsv07dsXer0eZ8+edVp/9epVNDQ0uG1WKS0txYkTJxAVFeW0/g9/+AMyMjKwZ8+eNttotVpotVpfXgIRkWL5HOqxsbGIjY31Wi49PR0XLlxAZWUlUlNTAdhC22q1Ii0tzeU2eXl5eOihh5zWDR48GK+//jruu+8+X6tKRNTlyDb65ZZbbsGECRMwb948rF69GleuXMGCBQswY8YMx8iXmpoajBs3DuvWrcPIkSOh1+tdnsXfeOON6NOnj1xVJSJSDFnHqa9fvx4DBw7EuHHjMHHiRPzLv/wL3n33XcfjV65cwbFjx3D58mU5q0FE1GWohBCivSsRTGazGZGRkTCZTNDpdO1dHSKigPmSa5z7hYhIQRjqREQKwlAnIlIQhjoRkYIw1ImIFIShTkSkIAx1IiIFYagTESkIQ52ISEEY6kRECsJQJyJSEIY6EZGCMNSJiBSEoU5EpCAMdSIiBWGoExEpCEOdiEhBGOpERArCUCciUhCGOhGRgjDUiYgUhKFORKQgDHUiIgWRLdQbGhqQnZ0NnU6HqKgozJ07FxcvXvS6XXl5Oe666y5cf/310Ol0GD16NP7v//5PrmoSUVdmsQB79gAffmj712Jp7xoFLEyuJ87OzkZtbS127tyJK1euYM6cOcjJycGGDRvcblNeXo4JEyYgPz8fb7zxBsLCwvC///u/UKs76BcKiwUoKwNqa4GEBCAjA9Bo2rtWRCRFcTGwcCFQXX1tXXIysHIlMGVK+9UrUEIGR44cEQDE/v37Hes+//xzoVKpRE1Njdvt0tLSxJIlSwLat8lkEgCEyWQK6Hm82rpViORkIYBrS3KybT0RdWxbtwqhUjkfv4BtnUrV4Y5jX3JNllPg8vJyREVFYcSIEY51mZmZUKvVqKiocLnN2bNnUVFRgbi4OIwaNQrx8fEYM2YM9u7d63FfTU1NMJvNTovsiouBqVOdP+EBoKbGtr64WP46EJF/LBbbGboQbR+zr1u0qNM2xcgS6kajEXFxcU7rwsLCEB0dDaPR6HKbn3/+GQDw7LPPYt68edixYwduv/12jBs3Dj/99JPbfRUWFiIyMtKxGAyG4L0QVxT+B0GkKK7azMvK2p6QtSQEUFVlK9cJ+RTqeXl5UKlUHpejR4/6VRGr1QoAePjhhzFnzhwMHz4cr7/+OgYMGID333/f7Xb5+fkwmUyOpaqqyq/9Syb1D+KNNxTV+ULU6RQXAykpwJ13Avffb/s3JQX45BNp29fW+r7PDtDx6lNH6eLFizF79myPZfr27Qu9Xo+zZ886rb969SoaGhqg1+tdbpeQkAAAuPXWW53W33LLLTh9+rTb/Wm1Wmi1Wgm1DxKpv+gnnrj2fyV0vhB1JvYm0tbfqGtqgKIiac/xayb5tM8O0PHqU6jHxsYiNjbWa7n09HRcuHABlZWVSE1NBQCUlpbCarUiLS3N5TYpKSlITEzEsWPHnNb/+OOPuOeee3ypZnC1HuHSqllJEntb+5YtDHYiuXlrIlWpALXa/Vm0SmUL44wM6fv09CES6mNfrt7aCRMmiOHDh4uKigqxd+9ecfPNN4usrCzH49XV1WLAgAGioqLCse71118XOp1ObN68Wfz0009iyZIlIiIiQhw/flzyfoM6+sXdCJdevVz3nHtaVCohDAYhrl4NvF5E5N7u3b4dl4GOfrl6tW1OBPnY9yXXZAv18+fPi6ysLNGjRw+h0+nEnDlzRGNjo+PxkydPCgBi9+7dTtsVFhaK5ORk0b17d5Geni7Kysp82m/QQt3TkCd3fxBSllavl4iCbMMGacfiokVtw9hg8H04o9QPkQCOfV9yTSWEq+8onZfZbEZkZCRMJhN0Op1/T2Kx2DpU3HWIqlRAdDQQEWH7euWLDRuArCz/6kVE3u3ZY+sU9Wb3blsTS6AXEH74oa0j1pv/+i8gKcmvffmSa7JdUdqpSRnhcv48sGuX7ZdSWwvU1Tl3jrrja+cLEfkmI8PWJl5T47pdvWWbuUYDjB0b2P6kHtOLFgH19dd+lqkTtYNef9/OpI5w2bPH9oeRlQU8+igQE+O+rEoFGAy+db4Qke80GltYArbjriX7z0VFwZvSw/4h0npfrbUMdEC2ixUZ6q5I/eR94QVbM82f/gTcdFPbX5qdHH9IROTelCm2ESdJSc7rk5O9j0Txday5lA8RV2S6WJFt6q7Y29TdfX3zVa9ewOOPA3/+s+tQ58RgRPLw9diSMtbc3XO62jY2Fjh3zns9d+/22AzkU6753R3bQQV99Is/I1zcLa4m/OLEYEQdg5RJvrwdr1ev2ka5bNhg+/e//ktaNmzY4LFqHWJIY3uRfZx6IEvrMbCdbKY4IsWSMta8Vy9px3VLQRruyCGNvja/ePqKZrEA06YFrzPD3vN+/LitHd7TsMnkZODkSTbFEAWDp+Nc6jBId9wdr96aciUe577kGjtK3U36s2WL7Rc9ebLHQLdAjT0Ygw8xA3swBhZvb6kQ1yb8UvBMcUQdiqvjPC4OWLbMFrwtrjfx+ZgG3B+voR6JY6uLsvjU/OKu+UPishW/F8k47dy8htNiK37vffvrrw9KWxsReeHtOO/RQwidLvBjGrBdpequDgFcvcrmFylfU7xdNepFMX6PqdgC25t37ZNcBdsUwlswFVPwsV/P7cRLrzgReeDDcR60Y3rzZts1K62beQIY5eZL80vXDfUA2tAsUCMFp1CNJLhqwVLBimRU4yT6QPPrH4TP2KZOFDiJx3lQj2l7gNsF4cpRtqlL4c8E+L8qQwaqYYC7t09AjSrciDKM9nsfAHixElGgJM7NJP2YlnBFeOsLiUJ8m8uuG+oBzMFSC2nb1kbf5ryiVy9pO+jVi3OvEwWDlAt/4MMxLbGcE3tjSIhuc9l1J/TyNumPBwmQdpaf8NFKQDP1WhuaxQJkZnrfcNMmYNw4n+pERC5IuKkP4MMxLbFcGy1Hx8jcR9Z1Q90+1GjqVFv7tQ/BnoEyJKMKNUiCcNn+JpDc6zIysL/tmPekJPdfCe3t6OwYJQqO1nO/uOH9mLa1qWcgwCHGATT7StV1m18A95P+eKGBFSuxEMC1nnE7288CRednQpN5p60pZdEiW4fNxx8Dv/zi+kk56RdR8Nm/kXvh/ZgGirDI/4EPdqGYelvqUM/Owq9pAlrP17BxoxBqtV/j1A34h/QxrS2XXr04LQCRHD76KKBrT9we062nDdBoPE8zEMAt7ThOPdBZGpctAwoKJBW1QI0yZKAWCUhALTJQ5t+neXIycOoUz9KJgsnVzIleeD2me/UC3n0XmDTJedx5XR0wY0bbJ7R/Cw9g8APvfBQIi+XaZb0SaGDFWPy/wPdbXR2SThQixbNf5PPJJ7bmTB95PabPn/+1YIu7JhUXA08+6bp8crKtHiEazcZQb62sDGhoaJ99h6AThUjR/Dgz95lKZesnmzTp2jzqU6e6H2zx6qshHZ7ctTtKXfH1RtLBxPuXEvnPHq5yBjrgPDzRYrF9iLgLdJUKWLw4JOPT7RjqrUm8WCGoeP9SosB4C1c51NZKu0l9iGdbZai3JvFihaDjUEYi/3kLV3c83Szem4QE6U2mIWxalS3UGxoakJ2dDZ1Oh6ioKMydOxcXL170uI3RaMTMmTOh1+tx/fXX4/bbb8fWrVvlqqJrPo5ZDxinBCAKnK+haf92XFNjmwl1yRLft83IkN5kGsKmVdlCPTs7G4cPH8bOnTuxbds2fPnll8jJyfG4zaxZs3Ds2DF8+umnOHToEKZMmYJp06bh22+/lauaziwW2xIdHZr9AUB+vq3DhYj850totrzQLzzcNoLl2Wdto1Ra38jCHfs3a/vFTe62a4+mVb9Gwntx5MgRAUDs37/fse7zzz8XKpVK1NTUuN3u+uuvF+vWrXNaFx0dLdasWSN5337fozTY9yO1X3AgpRxvNE0UGPs9RqUcc+5uTiHlZvOutnW3XRDvNdzuN55+7733RFRUlNO6K1euCI1GI4qLi91u96//+q/i3nvvFefPnxcWi0V8+OGHonv37uKnn36SvG+/Ql3qHZDc3Xi29bJgge3K1I8+8v5HEuRfPlGX5S2UFy2yHZeerup0dXIXG+t92wDvbORNu4f6iy++KPr3799mfWxsrHjrrbfcbvfPf/5T3H333QKACAsLEzqdTnzxxRce9/XLL78Ik8nkWKqqqnwLdW93EQeEiI4WYtcu2yIl1FveGVzqN4AALyMmIhGccG09bYjUY9Lf7STwJdR9alPPy8uDSqXyuBw9etTvpqBnnnkGFy5cwK5du/DNN98gNzcX06ZNw6FDh9xuU1hYiMjISMdiMBh826mUXvOGhmtXj/nafjZliu3y/9df97yPdhj6RKQ49uNt925gwwbbvydP+jYQwX6sZ2XZ/pU6Ks3f7YLMpytKFy9ejNmzZ3ss07dvX+j1epw9e9Zp/dWrV9HQ0AC9Xu9yuxMnTuDNN9/E999/j9tus91cYujQoSgrK8OqVauwevVql9vl5+cjNzfX8bPZbPYt2H0ZkuRpul5PsyxqNEB8fHDrQ0Sutbx8vwvyKdRjY2MRK2Ecd3p6Oi5cuIDKykqkpqYCAEpLS2G1WpGWluZym8uXLwMA1GrnLw8ajQZWq/sJsrRaLbRardSX0JavQ5Ls0/W2vhTZ2/wOHXDoExEpUNAafVqZMGGCGD58uKioqBB79+4VN998s8jKynI8Xl1dLQYMGCAqKiqEEEI0NzeLfv36iYyMDFFRUSGOHz8uVqxYIVQqlfjss88k79fnjlJvvebu2rp9bT/zdz9E1OW1e0epEEKcP39eZGVliR49egidTifmzJkjGhsbHY+fPHlSABC7W3Qq/vjjj2LKlCkiLi5OdO/eXQwZMqTNEEdvAhr9IuOQpJDuh4gUhfOp+zOfuqvZ3QyG4E+ZGar9EJFi+JJrDPWW7PMw2ye9b3l/0WAK1X6ISBF4kwx/harXvIv3zhORfDhLIxGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRQ3pNE+7N5sNrdzTYiIgsOeZ1IuK1JcqDc2NgKA71PwEhF1cI2NjYiMjPRYRnFXlFqtVpw5cwY9e/aESur9BhXGPv1wVVWV71fVkkd8b+XB99UzIQQaGxuRmJjYZibb1hR3pq5Wq5GcnNze1egQdDodDxCZ8L2VB99X97ydoduxo5SISEEY6kRECsJQVyCtVouCgoLA7ghFLvG9lQff1+BRXEcpEVFXxjN1IiIFYagTESkIQ52ISEEY6kRECsJQV4iGhgZkZ2dDp9MhKioKc+fOxcWLFz1uM3bsWKhUKqflkUceCVGNO65Vq1YhJSUFERERSEtLw759+zyW37x5MwYOHIiIiAgMHjwY27dvD1FNOxdf3te1a9e2+duMiIgIYW07L4a6QmRnZ+Pw4cPYuXMntm3bhi+//BI5OTlet5s3bx5qa2sdy8svvxyC2nZcmzZtQm5uLgoKCnDgwAEMHToU48ePx9mzZ12W//rrr5GVlYW5c+fi22+/xeTJkzF58mR8//33Ia55x+br+wrYri5t+bf5j3/8I4Q17sQEdXpHjhwRAMT+/fsd6z7//HOhUqlETU2N2+3GjBkjFi5cGIIadh4jR44U8+fPd/xssVhEYmKiKCwsdFl+2rRp4t5773Val5aWJh5++GFZ69nZ+Pq+fvDBByIyMjJEtVMWnqkrQHl5OaKiojBixAjHuszMTKjValRUVHjcdv369YiJicGgQYOQn5+Py5cvy13dDqu5uRmVlZXIzMx0rFOr1cjMzER5ebnLbcrLy53KA8D48ePdlu+K/HlfAeDixYvo3bs3DAYDJk2ahMOHD4eiup2e4ib06oqMRiPi4uKc1oWFhSE6OhpGo9Htdvfffz969+6NxMREfPfdd3j66adx7NgxFBcXy13lDqm+vh4WiwXx8fFO6+Pj43H06FGX2xiNRpflPb3vXY0/7+uAAQPw/vvvY8iQITCZTFixYgVGjRqFw4cPc8I+LxjqHVheXh6WL1/uscwPP/zg9/O3bHMfPHgwEhISMG7cOJw4cQI33XST389LFKj09HSkp6c7fh41ahRuueUWvPPOO3j++efbsWYdH0O9A1u8eDFmz57tsUzfvn2h1+vbdDhdvXoVDQ0N0Ov1kveXlpYGADh+/HiXDPWYmBhoNBrU1dU5ra+rq3P7Pur1ep/Kd0X+vK+tdevWDcOHD8fx48flqKKisE29A4uNjcXAgQM9LuHh4UhPT8eFCxdQWVnp2La0tBRWq9UR1FIcPHgQAJCQkBDsl9IphIeHIzU1FSUlJY51VqsVJSUlTmeNLaWnpzuVB4CdO3e6Ld8V+fO+tmaxWHDo0KEu+7fpk/buqaXgmDBhghg+fLioqKgQe/fuFTfffLPIyspyPF5dXS0GDBggKioqhBBCHD9+XCxbtkx888034uTJk+KTTz4Rffv2FaNHj26vl9AhbNy4UWi1WrF27Vpx5MgRkZOTI6KiooTRaBRCCDFz5kyRl5fnKP/VV1+JsLAwsWLFCvHDDz+IgoIC0a1bN3Ho0KH2egkdkq/v63PPPSe++OILceLECVFZWSlmzJghIiIixOHDh9vrJXQaDHWFOH/+vMjKyhI9evQQOp1OzJkzRzQ2NjoeP3nypAAgdu/eLYQQ4vTp02L06NEiOjpaaLVa0a9fP/HUU08Jk8nUTq+g43jjjTfEjTfeKMLDw8XIkSPF//zP/zgeGzNmjHjwwQedyn/00Ueif//+Ijw8XNx2223is88+C3GNOwdf3tdFixY5ysbHx4uJEyeKAwcOtEOtOx9OvUtEpCBsUyciUhCGOhGRgjDUiYgUhKFORKQgDHUiIgVhqBMRKQhDnYhIQRjqREQKwlAnIlIQhjoRkYIw1ImIFIShTkSkIP8f/oAVL9ykKXwAAAAASUVORK5CYII=",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWkAAAF2CAYAAACs+2kAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9DUlEQVR4nO3dfVxUZf4//tcMxeAdowgOIpPjTdqdQaEQ7Zq6UTzKNV3TDFOULSvXLKW2pFWpLEntxjbZNNfS7pQyyt3yoSXKJ002e8D6Lc1MTQKJGSBzUFyZnLl+f8xvRsa5O2cYmLvX8/E4D+PMdc65ZqA3h/e53telEEIIEBFRUFIGugNEROQegzQRURBjkCYiCmIM0kREQYxBmogoiDFIExEFMQZpIqIgxiBNRBTEGKSJiIIYgzSFPZ1Ohz/+8Y9+O191dTUUCgXWr1/vt3MSucMgHaQOHjyIadOmoV+/flCpVEhKSsK0adPw3XffObVdv349FAqFfYuJicGQIUPw0EMPwWAwOLStrq5GXl4eBg0ahJiYGCQmJuKmm25CYWGhQ7vRo0fjmmuucbpWWVkZunbtiuuvvx4nT57075umsPHee+9h5cqVge5GWLgk0B0gZ6WlpcjJyUFcXBzuvfdeDBgwANXV1Vi3bh02b96MkpISjB8/3um4Z555BgMGDMC5c+ewZ88evPbaa9i6dSsOHDiArl274ujRoxgxYgS6dOmCP//5z9DpdKivr0dVVRWWLVuGp59+2mO/du7ciXHjxmHo0KHYsWMH4uLiOuojoBD33nvv4cCBA5g3b16guxLyGKSDzLFjxzB9+nQMHDgQX3zxBRISEuyvPfLIIxg5ciSmTZuGb775BgMGDHA49rbbbsPw4cMBAPfddx969+6Nl156CVu2bEFOTg5efvllnDlzBvv370f//v0djm1oaPDYr//7v//DuHHjMGTIEAboTnD+/HlYLBZER0c7vdbS0oJu3br5fG4hBM6dO4cuXbpIPubs2bPo2rWrz9ck3zHdEWRWrFiBs2fP4vXXX3cI0AAQHx+PNWvW4MyZM1ixYoXXc/3hD38AABw/fhyA9RdAcnKyU4AGgD59+rg9z+7duzF27FgMHjwYO3bsQO/evb1e+8iRI7jzzjuRmJiImJgYJCcn4+6774bRaAQAjBo1CikpKS6PHTp0KLKzswFcyP++8MILKC4uxsCBA9G1a1fceuutqK2thRACS5YsQXJyMrp06YLx48e7TcN89tlnSE1NRUxMDK666iqUlpY6tfnxxx8xefJkxMXFoWvXrrjhhhvw6aefen2/7pw6dQrz5s2DVquFSqXC4MGDsWzZMlgsFnubtu9x5cqVGDRoEFQqFb777js89dRTUCgU+O677zB16lT06tULv//97wFYA/mSJUvs7XU6HZ588km0trY69MGWk9++fTuGDx+OLl26YM2aNW77bEt1VVZW4qabbkLXrl3x5JNPAgC2bNmCsWPHIikpCSqVCoMGDcKSJUtgNpsdjv/000/x008/2VNwOp3O/npraysKCwsxePBgqFQqaLVaPP744079JiveSQeZf//739DpdBg5cqTL12+66SbodDr8+9//xj/+8Q+P5zp27BgA2INq//79sWPHDuzcudMewL358ssvcfvtt2PAgAEoKytDfHy812NMJhOys7PR2tqKuXPnIjExEXV1dfjkk09w6tQpqNVqTJ8+HbNmzcKBAwccct9ff/01fvjhByxcuNDhnO+++y5MJhPmzp2LkydPYvny5bjrrrvwhz/8AeXl5XjiiSdw9OhRvPrqq3jsscfwxhtvOBx/5MgRTJkyBQ8++CBmzJiBN998E5MnT8a2bdtwyy23AAAMBgNuvPFGnD17Fg8//DB69+6NDRs24I477sDmzZvxpz/9SdJnZnP27FmMGjUKdXV1eOCBB3DZZZdh7969KCgoQH19vVPO9s0338S5c+dw//33Q6VSOfy1MnnyZFx++eVYunQpbLML33fffdiwYQMmTZqERx99FF999RWKiopw6NAhfPTRRw7nPnz4MHJycvDAAw9g1qxZGDp0qMe+//LLL7jttttw9913Y9q0adBoNACszz+6d++O/Px8dO/eHTt37sTixYvR3Nxsv3H429/+BqPRiBMnTuDll18GAHTv3h0AYLFYcMcdd2DPnj24//77ceWVV+Lbb7/Fyy+/jB9++AEff/yxrM84IggKGqdOnRIAxPjx4z22u+OOOwQA0dzcLIQQ4s033xQAxI4dO0RjY6Oora0VmzZtEr179xZdunQRJ06cEEIIceDAAdGlSxcBQKSmpopHHnlEfPzxx6KlpcXpGqNGjRJxcXGiR48e4uqrrxYNDQ2S38d///tfAUB88MEHHt9rTEyMeOKJJxz2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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# QPSK\n",
+    "SNR_list =np.linspace(-10, 10, 100)\n",
+    "symbol_error_rate = []\n",
+    "\n",
+    "symbols = np.zeros(10**2)\n",
+    "for i in range(10**2):\n",
+    "    symbols[i] = np.random.randint(0, 4)\n",
+    "    \n",
+    "QPSK_symbols = []\n",
+    "for i in symbols:\n",
+    "    QPSK_symbols.append(QPSK[int(i)])\n",
+    "    \n",
+    "print(QPSK_symbols[1])\n",
+    "\n",
+    "for SNR_dB in SNR_list:\n",
+    "\n",
+    "    SNR_linear = 10**(SNR_dB / 10)\n",
+    "\n",
+    "    signal_power = np.mean(np.abs(QPSK_symbols)**2)\n",
+    "    noise_power = signal_power / SNR_linear\n",
+    "    num_symbols = len(symbols)\n",
+    "\n",
+    "    noise_x = noise_power * np.random.normal(0, 1, len(QPSK_symbols))\n",
+    "    noise_y = noise_power * np.random.normal(0, 1, len(QPSK_symbols))\n",
+    "    QPSK_x = [x for x, y in QPSK_symbols]\n",
+    "    QPSK_y = [y for x, y in QPSK_symbols]\n",
+    "    rx_signal = list(zip(QPSK_x + noise_x, QPSK_y + noise_y))\n",
+    "\n",
+    "    detected_idx = np.zeros(num_symbols, dtype=int)\n",
+    "    for i, r in enumerate(rx_signal):\n",
+    "        distances = [np.linalg.norm(np.array(r) - s) for s in QPSK]\n",
+    "        detected_idx[i] = np.argmin(distances)\n",
+    "\n",
+    "    detected_symbols = []\n",
+    "    for i in detected_idx:\n",
+    "        detected_symbols.append(QPSK[int(i)])\n",
+    "\n",
+    "    errors = 0\n",
+    "    for i in range(len(QPSK_symbols)):\n",
+    "        if QPSK_symbols[i] != detected_symbols[i]:\n",
+    "            errors += 1\n",
+    "    SER = errors / num_symbols\n",
+    "\n",
+    "    print(\"errors: \", errors)\n",
+    "    print(\"QPSK Symbol error rate (SER): \", SER)\n",
+    "    \n",
+    "    symbol_error_rate.append(SER)\n",
+    "\n",
+    "r_x = [x for x, y in rx_signal]\n",
+    "r_y = [y for x, y in rx_signal]\n",
+    "\n",
+    "x = [x for x, y in QPSK]\n",
+    "y = [y for x, y in QPSK]\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"QPSK\")\n",
+    "plt.plot(r_x, r_y,'o', color=\"red\")\n",
+    "plt.plot(x,y,'o', color=\"blue\")\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"QPSK symbol error rate\")\n",
+    "plt.plot(SNR_list, symbol_error_rate, 'o', color=\"blue\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 633,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "errors:  86\n",
+      "PSK8 Symbol error rate (SER):  0.86\n",
+      "errors:  80\n",
+      "PSK8 Symbol error rate (SER):  0.8\n",
+      "errors:  88\n",
+      "PSK8 Symbol error rate (SER):  0.88\n",
+      "errors:  90\n",
+      "PSK8 Symbol error rate (SER):  0.9\n",
+      "errors:  83\n",
+      "PSK8 Symbol error rate (SER):  0.83\n",
+      "errors:  82\n",
+      "PSK8 Symbol error rate (SER):  0.82\n",
+      "errors:  86\n",
+      "PSK8 Symbol error rate (SER):  0.86\n",
+      "errors:  82\n",
+      "PSK8 Symbol error rate (SER):  0.82\n",
+      "errors:  81\n",
+      "PSK8 Symbol error rate (SER):  0.81\n",
+      "errors:  84\n",
+      "PSK8 Symbol error rate (SER):  0.84\n",
+      "errors:  79\n",
+      "PSK8 Symbol error rate (SER):  0.79\n",
+      "errors:  82\n",
+      "PSK8 Symbol error rate (SER):  0.82\n",
+      "errors:  85\n",
+      "PSK8 Symbol error rate (SER):  0.85\n",
+      "errors:  81\n",
+      "PSK8 Symbol error rate (SER):  0.81\n",
+      "errors:  77\n",
+      "PSK8 Symbol error rate (SER):  0.77\n",
+      "errors:  80\n",
+      "PSK8 Symbol error rate (SER):  0.8\n",
+      "errors:  79\n",
+      "PSK8 Symbol error rate (SER):  0.79\n",
+      "errors:  83\n",
+      "PSK8 Symbol error rate (SER):  0.83\n",
+      "errors:  83\n",
+      "PSK8 Symbol error rate (SER):  0.83\n",
+      "errors:  75\n",
+      "PSK8 Symbol error rate (SER):  0.75\n",
+      "errors:  77\n",
+      "PSK8 Symbol error rate (SER):  0.77\n",
+      "errors:  77\n",
+      "PSK8 Symbol error rate (SER):  0.77\n",
+      "errors:  73\n",
+      "PSK8 Symbol error rate (SER):  0.73\n",
+      "errors:  75\n",
+      "PSK8 Symbol error rate (SER):  0.75\n",
+      "errors:  68\n",
+      "PSK8 Symbol error rate (SER):  0.68\n",
+      "errors:  81\n",
+      "PSK8 Symbol error rate (SER):  0.81\n",
+      "errors:  74\n",
+      "PSK8 Symbol error rate (SER):  0.74\n",
+      "errors:  73\n",
+      "PSK8 Symbol error rate (SER):  0.73\n",
+      "errors:  74\n",
+      "PSK8 Symbol error rate (SER):  0.74\n",
+      "errors:  73\n",
+      "PSK8 Symbol error rate (SER):  0.73\n",
+      "errors:  82\n",
+      "PSK8 Symbol error rate (SER):  0.82\n",
+      "errors:  60\n",
+      "PSK8 Symbol error rate (SER):  0.6\n",
+      "errors:  69\n",
+      "PSK8 Symbol error rate (SER):  0.69\n",
+      "errors:  67\n",
+      "PSK8 Symbol error rate (SER):  0.67\n",
+      "errors:  71\n",
+      "PSK8 Symbol error rate (SER):  0.71\n",
+      "errors:  61\n",
+      "PSK8 Symbol error rate (SER):  0.61\n",
+      "errors:  67\n",
+      "PSK8 Symbol error rate (SER):  0.67\n",
+      "errors:  65\n",
+      "PSK8 Symbol error rate (SER):  0.65\n",
+      "errors:  62\n",
+      "PSK8 Symbol error rate (SER):  0.62\n",
+      "errors:  58\n",
+      "PSK8 Symbol error rate (SER):  0.58\n",
+      "errors:  57\n",
+      "PSK8 Symbol error rate (SER):  0.57\n",
+      "errors:  62\n",
+      "PSK8 Symbol error rate (SER):  0.62\n",
+      "errors:  53\n",
+      "PSK8 Symbol error rate (SER):  0.53\n",
+      "errors:  58\n",
+      "PSK8 Symbol error rate (SER):  0.58\n",
+      "errors:  58\n",
+      "PSK8 Symbol error rate (SER):  0.58\n",
+      "errors:  55\n",
+      "PSK8 Symbol error rate (SER):  0.55\n",
+      "errors:  55\n",
+      "PSK8 Symbol error rate (SER):  0.55\n",
+      "errors:  49\n",
+      "PSK8 Symbol error rate (SER):  0.49\n",
+      "errors:  44\n",
+      "PSK8 Symbol error rate (SER):  0.44\n",
+      "errors:  48\n",
+      "PSK8 Symbol error rate (SER):  0.48\n",
+      "errors:  43\n",
+      "PSK8 Symbol error rate (SER):  0.43\n",
+      "errors:  43\n",
+      "PSK8 Symbol error rate (SER):  0.43\n",
+      "errors:  36\n",
+      "PSK8 Symbol error rate (SER):  0.36\n",
+      "errors:  39\n",
+      "PSK8 Symbol error rate (SER):  0.39\n",
+      "errors:  35\n",
+      "PSK8 Symbol error rate (SER):  0.35\n",
+      "errors:  26\n",
+      "PSK8 Symbol error rate (SER):  0.26\n",
+      "errors:  30\n",
+      "PSK8 Symbol error rate (SER):  0.3\n",
+      "errors:  30\n",
+      "PSK8 Symbol error rate (SER):  0.3\n",
+      "errors:  31\n",
+      "PSK8 Symbol error rate (SER):  0.31\n",
+      "errors:  16\n",
+      "PSK8 Symbol error rate (SER):  0.16\n",
+      "errors:  21\n",
+      "PSK8 Symbol error rate (SER):  0.21\n",
+      "errors:  22\n",
+      "PSK8 Symbol error rate (SER):  0.22\n",
+      "errors:  19\n",
+      "PSK8 Symbol error rate (SER):  0.19\n",
+      "errors:  18\n",
+      "PSK8 Symbol error rate (SER):  0.18\n",
+      "errors:  12\n",
+      "PSK8 Symbol error rate (SER):  0.12\n",
+      "errors:  13\n",
+      "PSK8 Symbol error rate (SER):  0.13\n",
+      "errors:  18\n",
+      "PSK8 Symbol error rate (SER):  0.18\n",
+      "errors:  12\n",
+      "PSK8 Symbol error rate (SER):  0.12\n",
+      "errors:  5\n",
+      "PSK8 Symbol error rate (SER):  0.05\n",
+      "errors:  7\n",
+      "PSK8 Symbol error rate (SER):  0.07\n",
+      "errors:  4\n",
+      "PSK8 Symbol error rate (SER):  0.04\n",
+      "errors:  4\n",
+      "PSK8 Symbol error rate (SER):  0.04\n",
+      "errors:  1\n",
+      "PSK8 Symbol error rate (SER):  0.01\n",
+      "errors:  2\n",
+      "PSK8 Symbol error rate (SER):  0.02\n",
+      "errors:  2\n",
+      "PSK8 Symbol error rate (SER):  0.02\n",
+      "errors:  2\n",
+      "PSK8 Symbol error rate (SER):  0.02\n",
+      "errors:  1\n",
+      "PSK8 Symbol error rate (SER):  0.01\n",
+      "errors:  1\n",
+      "PSK8 Symbol error rate (SER):  0.01\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  2\n",
+      "PSK8 Symbol error rate (SER):  0.02\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  1\n",
+      "PSK8 Symbol error rate (SER):  0.01\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n",
+      "errors:  0\n",
+      "PSK8 Symbol error rate (SER):  0.0\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[<matplotlib.lines.Line2D at 0x7fc1dc47e140>]"
+      ]
+     },
+     "execution_count": 633,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWkAAAF2CAYAAACs+2kAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA41klEQVR4nO3de1hU5do/8O+AchIYRQ6CkKilpZWWCpl5KpLUTC52RZ5Aa2sptjXKnV6vSlpqapkmnra7sgzSMsvrLV/3TsKyJG1r7J2Zvlbw4omDGuAhGZl5fn+s34wzMIc1wxzWzHw/1zVXmzXPWuthtt0t77mf+1EJIQSIiEiRAjw9ASIisoxBmohIwRikiYgUjEGaiEjBGKSJiBSMQZqISMEYpImIFIxBmohIwRikiYgUjEGafNqWLVugUqnwr3/9y2nXnDx5MpKTk512PSJrGKQVSh9c9K+QkBD06NEDM2fORHV1tcnYiooKTJkyBd27d0dISAg6deqEIUOGID8/32TcsGHDcPvtt7e4V3FxMcLCwnD33Xfj4sWLAACdToeNGzeib9++CA8PR1xcHEaOHIkDBw647pcmn3D27Fm89NJLKCsr8/RUfEIbT0+ArFu8eDG6du2Ka9eu4ZtvvsGGDRuwe/duHD16FGFhYfjll18wYMAAhIaG4sknn0RycjLOnTuHI0eOYPny5Vi0aJHV63/55ZcYM2YMevbsib179yIqKgoAMGfOHKxatQoTJ07EjBkzUFdXh02bNmHo0KH49ttvkZKS4o5fn7zQ2bNnsWjRIiQnJ6Nv376eno7XY5BWuJEjR6J///4AgD//+c/o2LEjVq1ahV27dmHcuHF44403cPnyZZSVlaFLly4m59bU1Fi99ldffYUxY8agR48eJgG6qakJGzZswKOPPoqtW7caxj/22GPo1q0bCgsLGaRd7MqVK2jXrl2L4zqdDhqNBiEhIU6/tiXXrl1DUFAQAgL4F29P4KfuZe6//34AQHl5OQDg119/RWJiYosADQCxsbEWr7N//36MHj0aN998M/bu3YuOHTsa3rt+/Tr++OMPxMXFtbheQEAAQkNDbc5z7dq16N27N8LCwtChQwf0798fRUVFAICSkhKoVCp88sknLc4rKiqCSqVCaWkpACn/Gx4ejsrKSjz88MMIDw9H586dsW7dOgDAjz/+iPvvvx/t2rVDly5dDPdo7urVq3j66afRsWNHREZGIjs7G7///nuLcevXr0fv3r0RHByMhIQE5Obmoq6uzubva8n//M//YPDgwWjXrh0iIiIwevRo/PTTTyZj9L/jr7/+ilGjRiEiIgITJkwAAKhUKsycOROFhYWGee3ZswcA8MMPP2DkyJGIjIxEeHg4HnjgAXz33Xcm19anzb766ivMmDEDsbGxSExMtDjfffv2QaVSYdu2bZg/fz46d+6MsLAwNDQ04OLFi3jhhRdwxx13IDw8HJGRkRg5ciT+/e9/m5w/YMAAAMCUKVMM6botW7YYxhw8eBAPPfQQ1Go1wsLCDH87I/MYpL3Mr7/+CgCGoNqlSxecOnUKX375pexrfPvttxg1ahS6du2K4uJiREdHm7wfGhqK1NRUbNmyBYWFhaisrMR//vMfTJ48GR06dMC0adOsXn/z5s34y1/+gl69emH16tVYtGgR+vbti4MHDwKQcuNJSUkoLCxscW5hYSG6d++OgQMHGo5ptVqMHDkSSUlJWLFiBZKTkzFz5kxs2bIFDz30EPr374/ly5cjIiIC2dnZhv+AGZs5cyZ+/vlnvPTSS8jOzkZhYSEyMjJg3Kn3pZdeQm5uLhISEvD666/jT3/6EzZt2oQRI0bg+vXrsj9fva1bt2L06NEIDw/H8uXLsWDBAhw7dgz33XcfKioqTMY2NTUhPT0dsbGxeO211/CnP/3J8N6XX36J5557DllZWVizZg2Sk5Px008/YfDgwfj3v/+Nv/71r1iwYAHKy8sxbNgww+dsbMaMGTh27BgWLlyIuXPn2pz7yy+/jM8//xwvvPACli5diqCgIPz222/49NNP8fDDD2PVqlWYM2cOfvzxRwwdOhRnz54FANx2221YvHgxAGDatGnYunUrtm7diiFDhhh+lyFDhqChoQH5+flYunQp6urqcP/99+PQoUN2f8Z+QZAivfPOOwKA2Lt3r6itrRWnTp0S27ZtEx07dhShoaHi9OnTQgghjh49KkJDQwUA0bdvXzFr1izx6aefiitXrrS45tChQ0VUVJSIiIgQvXv3FjU1NRbvf/LkSXH33XcLAIZXt27dxPHjx23OfezYsaJ3795Wx8ybN08EBweLuro6w7GamhrRpk0bkZ+fbziWk5MjAIilS5cajv3+++8iNDRUqFQqsW3bNsPx48ePCwAm5+s/x379+gmNRmM4vmLFCgFA7Nq1y3DvoKAgMWLECKHVag3jCgoKBADx9ttvm8ypS5cuVn+/S5cuifbt24upU6eaHK+qqhJqtdrkuP53nDt3bovrABABAQHip59+MjmekZEhgoKCxK+//mo4dvbsWRERESGGDBnS4ve/7777RFNTk9U5CyFESUmJ4f/rq1evmrx37do1k89GCCHKy8tFcHCwWLx4seHY999/LwCId955x2SsTqcTt9xyi0hPTxc6nc5w/OrVq6Jr167iwQcftDk/f8QnaYVLS0tDTEwMkpKS8MQTTyA8PByffPIJOnfuDADo3bs3ysrKMHHiRFRUVGDNmjXIyMhAXFwcNm/e3OJ6V65cwaVLlxAXF4fIyEiL942IiEDv3r2Rm5uLnTt3Yv369WhqakJGRgbOnz9vdc7t27fH6dOn8f3331sck52djcbGRuzYscNwbPv27WhqasLEiRNbjP/zn/9scv2ePXuiXbt2ePzxxw3He/bsifbt2+O3335rcf60adPQtm1bw8/Tp09HmzZtsHv3bgDA3r17odFoMHv2bJPc69SpUxEZGYnPP//c6u/c3BdffIG6ujqMGzcO58+fN7wCAwORmpqKkpKSFudMnz7d7LWGDh2KXr16GX7WarX45z//iYyMDHTr1s1wPD4+HuPHj8c333yDhoYGk2tMnToVgYGBsuefk5PTIq0VHBxs+Gy0Wi0uXLiA8PBw9OzZE0eOHLF5zbKyMpw8eRLjx4/HhQsXDJ/JlStX8MADD+Drr7+GTqeTPUd/wS8OFW7dunXo0aMH2rRpg7i4OPTs2bPFFzg9evTA1q1bodVqcezYMXz22WdYsWIFpk2bhq5duyItLc0w9uabb0Z2djZefPFFjBs3Dh999FGLf3mbmpqQlpaGYcOGYe3atYbjaWlp6N27N1auXInly5dbnPOLL76IvXv3IiUlBTfffDNGjBiB8ePHY9CgQYYxt956KwYMGIDCwkI89dRTAKRUxz333IObb77Z5HohISGIiYkxOaZWq5GYmAiVStXiuLlc8y233GLyc3h4OOLj4w1ph//7v/8DIAV6Y0FBQejWrZvhfblOnjwJ4MZ3CM01/w9kmzZtLOaKu3btavJzbW0trl692mKugJRu0Ol0OHXqFHr37m3xGraYG6/T6bBmzRqsX78e5eXl0Gq1hveMv9OwRP+Z5OTkWBxTX1+PDh062DVXX8cgrXApKSmG6g5bAgMDcccdd+COO+7AwIEDMXz4cBQWFpoEaQD461//igsXLmDFihWYOnUq3nrrLZNg9/XXX+Po0aNYtWqVyXm33HILbrvtNptf8tx22204ceIEPvvsM+zZswcff/wx1q9fj4ULF5qUBGZnZ2PWrFk4ffo0Ghsb8d1336GgoMDs72Xp9zVHKGBHOP0T4datW9GpU6cW77dpY/qvnvFTanNyvqi1xd5rmBu/dOlSLFiwAE8++SRefvllREVFISAgALNnz5b1BKwfs3LlSouleeHh4XbN0x8wSPsofWA/d+6c2feXL1+Oixcv4u9//zs6dOiA119/3fCefrGM8ZOS3vXr19HU1GTz/u3atUNWVhaysrKg0WiQmZmJJUuWYN68eYbysSeeeAJ5eXn44IMP8Mcff6Bt27bIysqy+3eV4+TJkxg+fLjh58uXL+PcuXMYNWoUABiqY06cOGGSQtBoNCgvL2/xHzpbunfvDkCqiLH3XFtiYmIQFhaGEydOtHjv+PHjCAgIQFJSklPvCQA7duzA8OHD8dZbb5kcr6urM/nyufnfbvT0n0lkZKTTPxNfxpy0l9u/f7/ZygN9rtXcX4n1Nm3ahEcffRSrVq3CK6+8Yjjeo0cPAMC2bdtMxh85cgQnTpzAXXfdZXVOFy5cMPk5KCgIvXr1ghDCZK7R0dEYOXIk3n//fRQWFuKhhx5qUWniLH/7299M7r1hwwY0NTVh5MiRAKRUTlBQEN58802TJ/G33noL9fX1GD16tF33S09PR2RkJJYuXWr2/5/a2loHfxPpbxAjRozArl27TKpEqqurUVRUhPvuu8/q9w2tuW/zv6V89NFHOHPmjMkxfQ1289LFfv36oXv37njttddw+fLlFtdvzWfiy/gk7eWWL1+Ow4cPIzMzE3feeScAKZi+9957iIqKwuzZsy2eGxAQgMLCQtTX12PBggWIiorCjBkz0K9fPzz44IN499130dDQgBEjRuDcuXNYu3YtQkNDrV4TAEaMGIFOnTph0KBBiIuLw88//4yCggKMHj0aERERJmOzs7Px6KOPApDKvlxFo9HggQcewOOPP44TJ05g/fr1uO+++/DII48AkJ5O582bh0WLFuGhhx7CI488Yhg3YMAAs19mWhMZGYkNGzZg0qRJuPvuu/HEE08gJiYGlZWV+PzzzzFo0CCzqR25XnnlFXzxxRe47777MGPGDLRp0wabNm1CY2MjVqxY4fB1rXn44YexePFiTJkyBffeey9+/PFHFBYWmvzNA5CemNu3b4+NGzciIiIC7dq1Q2pqKrp27Yq///3vGDlyJHr37o0pU6agc+fOOHPmDEpKShAZGYn//u//dsncvZpni0vIEn3p1Pfff2913Lfffityc3PF7bffLtRqtWjbtq246aabxOTJk03Ks4SQSvDMlcZdvnxZ3HPPPSIgIEAUFhYKIaSyqMWLF4tevXqJ0NBQoVarxcMPPyx++OEHm3PftGmTGDJkiOjYsaMIDg4W3bt3F3PmzBH19fUtxjY2NooOHToItVot/vjjjxbv5+TkiHbt2rU4bul36dKlixg9erThZ/3n+NVXX4lp06aJDh06iPDwcDFhwgRx4cKFFucXFBSIW2+9VbRt21bExcWJ6dOni99//73FnGyV4OmVlJSI9PR0oVarRUhIiOjevbuYPHmy+Ne//mXzdxRCKsHLzc01+96RI0dEenq6CA8PF2FhYWL48OHiwIEDJmPk/jkyni8A8dFHH7V479q1a+L5558X8fHxIjQ0VAwaNEiUlpaKoUOHiqFDh5qM3bVrl+jVq5do06ZNi3K8H374QWRmZhr+fHTp0kU8/vjjori4WNYc/Y1KCAV8y0J+q6mpCQkJCRgzZkyLXCcRMSdNHvbpp5+itrYW2dnZnp4KkSLxSZo84uDBg/jPf/6Dl19+GdHR0bIWQxD5Iz5Jk0ds2LAB06dPR2xsLN577z1PT4dIsfgkTUSkYHySJiJSMAZpIiIF84rFLDqdDmfPnkVERITFJadERN5ECIFLly4hISHB6q43XhGkz54965JeBEREnnbq1Cmru+V4RZDWLyU+deqUS3oSEBG5W0NDA5KSklq0SmjOK4K0PsURGRnJIE1EPsVWCpdfHBIRKRiDNBGRgjFIExEpGIM0EZGCMUgTESkYgzQRkYJ5RQmeK2i1wP79wLlzQHw8MHgwYGHzaSIij/HLIL1zJzBrFnD69I1jiYnAmjVAZqbn5kVE1JzfpTt27gQefdQ0QAPAmTPS8Z07PTMvIiJz/CpIa7XSE7S5Dtr6Y7NnS+OIiJTAr4L0/v0tn6CNCQGcOiWNIyJSAr8K0ufOOXccEZGr+VWQjo937jgiIlfzqyA9eLBUxWGJSgUkJUnjiIiUwK+C9K5dwB9/mH9P3y1w9WrWSxORcvhNkNaX3l24YP79qChgxw7WSRORsvhFkLZWeqcXGgqMHeu+ORERyeEXQdpW6R0gvc/SOyJSGr8I0iy9IyJv5bO9O4wbKFVXyzuneekdmzARkaf5ZJA210ApMNDycm+VSirNMy69YxMmIlICn0t3WGqgZC1AA6ald2zCRERK4VNBWk4VR/N0RWKiaemds5swabXAvn3ABx9I/2TzJiKyh0+lO+RUcWi1wBtvAHFx5vPM9jRhGjbM+r2YMiGi1vKpIC23OiMuDhg3rnXXsDVOnzJp/kSuT5lw4QwRyeFT6Q5nNFCy5xqWUhnsW01EzuJTT9L6BkpnzpgPkOaqOBy9xvnzQHKy+VRGVJTzUiZE5N986kk6MFAKksCNqg09uQ2U5FzjiSeAxx+3XP2xa5e8+XLxDBHZ4lNP0oCU592xw/wXdqtXm88DN1+0Mnas5Wu8/jqQl2c5laFSAYWF8uZqLbViPKfYWOlYTQ0X1RD5G58L0oAUiMeOlbda0FoFRkVFy2vIqf6orQViYqSUiCNpF3NzMsYKESL/4ZNBGpACspwSOXsrMOSmKCZMkAKpSmV6fVtpF0tzkjs/IvItPpWTtoetCgwhgGeeATSaG+P37QOOHZN3/S5dpOtHR5seb754Ru6cms8PcH+FCBfmELmfzz5J2yJn4UttrRRUJ0+WApOt8XqBgcBzz934OToamDhRSsFYyyfLmZOeuytEuDCHyDP89klabtqithZYuVJ+8ARaPmFeuCAFs4sXrX/h50i1hzsqRNjLhMhz/PZJ2hU7glvqtKev+pg1C1CrLVdpODInR86xpwWrrbSQSiWlXcaOZcUJkSv47ZO0ftFK81poR0RESCkRazlaIaQn0bQ0YPx4YPhwaTGM8VOoPXNydGfznTul+w4fbnkexuzpZUJEzue3Qdp40UprXboEbNli/3nN0wXWFtIYc3Rnc0fSFtzVhsiz/CJIW6pK0C98aV6B4S76FMKsWUBxsTS/qCjgww+Bzp0tn2etQsQSR/uJOKMfChG1gnBAQUGB6NKliwgODhYpKSni4MGDVse/8cYbokePHiIkJEQkJiaK2bNniz/++EP2/err6wUAUV9fb/dcP/5YiMREfVGd9EpMlI7rNTYKERNjOsaTr8REIT78UIiSEiGKioTYu1d6FRVJx5qa7P4YREmJvHuXlJie19QkzUelMj9epRIiKcmxORH5M7lxze4gvW3bNhEUFCTefvtt8dNPP4mpU6eK9u3bi+rqarPjCwsLRXBwsCgsLBTl5eXiH//4h4iPjxfPPfec7Hs6GqQ//th8cFGppJdxoNaPtRSM7Hm19hrm5tdaRUXy7l1UZPlzbP57uWKeRP7CZUE6JSVF5ObmGn7WarUiISFBLFu2zOz43Nxccf/995scy8vLE4MGDZJ9T0eCtP4J0FogbP4EaO6pOylJiDlzhIiOlhfkFi2yfl97ArUzn1AdfZK29dkwQBM5Rm5csysnrdFocPjwYaSlpRmOBQQEIC0tDaWlpWbPuffee3H48GEcOnQIAPDbb79h9+7dGDVqlMX7NDY2oqGhweRlL0eqEjIzpX4dJSVAUZH0z/JyYMUK6cu1mBjr94yJAbp3l75E3LtXusbevY5VkZibX2vYqhyxVS1i6bPhQhYiF7Mn8p85c0YAEAcOHDA5PmfOHJGSkmLxvDVr1oi2bduKNm3aCADimWeesXqf/Px8AaDFy54n6db89d4Se1Iixnnv1qRSZs+WPz9H58+0BZH7ueRJ2hH79u3D0qVLsX79ehw5cgQ7d+7E559/jpdfftniOfPmzUN9fb3hderUKbvv64qqBH01iLXKCz3jsjZ7zmtu9WrnreizNA9HqkWIyD1UQgghd7BGo0FYWBh27NiBjIwMw/GcnBzU1dVhl5lu94MHD8Y999yDlStXGo69//77mDZtGi5fvoyAANv/nWhoaIBarUZ9fT0iIyNlzVWrlRZp2Nphpbzc/pVy+hV7Z85IPTpqa82Pa36P5j2iJ0+2vdy8NfO0NX85Kw6JyDXkxjW7nqSDgoLQr18/FBcXG47pdDoUFxdj4MCBZs+5evVqi0Ac+P8jgh3/fbCbM3ZpsXbtYcOkJ1JLARpomVfWnzduHPDAA/IW0zg7N918HsOGMUATKZnd6Y68vDxs3rwZ7777Ln7++WdMnz4dV65cwZQpUwAA2dnZmDdvnmH8mDFjsGHDBmzbtg3l5eX44osvsGDBAowZM8YQrF3F1X+9b+1qvMxMaQGJM+9FRL7F7gZLWVlZqK2txcKFC1FVVYW+fftiz549iIuLAwBUVlaaPDnPnz8fKpUK8+fPx5kzZxATE4MxY8ZgyZIlzvstrLBnlxZ7tSbvrU85hIe3/hrcYovId9mVk/YUR3LS7uBo3tvW9ljOuAZ7PRMpm0ty0mTKkby3pSZH5rTmGuz1TOQbGKRbyZ68t9ztsZxxDf377t5ii4icy2+b/juT3Ly33O2x5s+Xqj9acw3AtDLEHVtsEZHzMUg7iZzdyeVWaPTqZflaSt1ii4hcg+kON3LGKkh9FYc9jh3j7t5E3opB2o1a2+Ro504gJ8f++77yiu1tsohImRik3ag1qyD1FR1nzjh+f1Z8EHkfBmk3c2QVpL1VIZaYq/iwtLWYpeNE5F784tAD7F0FKbei47XXgLo6Kb1hiXHFx8WLLRfEJCZKPT0++KDlcS6OIXI/BmkPkVMNoie3OiMhQXrJsWuXFHSbP52fPg0YNSw00KdK2NKUyL2Y7vAC9lSFyK3+KCy0L32i3yJg1iymPojciUHaC8itCjl/3nb1h0olbfNlrcWqNadPA27qjUVEYJD2CnKqQp54Anj8cevVH/qxEya0bj75+awQIXIXBmkvYa0qZPt26Ys+W+mLzp2la4wd2/r5sCcIkXswSHsRSzt2x8TIq/7YskW6hq30iRzO3i2GiMxjdYeXMVcVIrf6o6bmxjXWrJGqNVqDPUGIXI9P0j7AkZ4g+vRJdLTr7ssFMUStxyDtAxztCZKZKX3RGBNj3/1s9RgBpC8Wk5OlniHjx7N3CJGjGKR9QGt6ggQFARs3SuPk5Kjl7LRuaecY9g4hsh+DtI9ozc7ols7t2FF62XM9a31GuFsMkf24Ea2PMd5B3N5dw82dC9h3vX37pNSGLSUl3C2G/JvcuMbqDh9jT08Quefacz25FR+sDCGSh+kOcipn7D5DRDfwSZpazThNEhsr5a3PnDGfl1appPetVYYQ0Q0M0tQqO3e27EndsaMUoFUq00AtpzKEiEwx3UEOs1Rqd/Gi9M+oKNPjcipNiMgUn6T9RGuqPixdz1qpnUoFhIYCe/dKy9GdcU8if8Qg7QfMpSRaux2WrS29hJDeDwyUtuMiIscw3eHjXLX6j6V2RO7BIO3DXLn6T24JXfPtvNh0icg+DNI+TE5KwtG+0HJ7Uk+efONpnU2XiOzHIO3DXJmSsNbUyZg+rfLXv7LpEpEjGKR9mKtX/+kbMyUkWB6j32V81So2XSJyBIO0D3O0z7Q9MjOBd9+1Pc5aAG5N2oXI1zFI+7DW9Jm2h35brtZiJQhRSwzSPq41fablclazpOaVIETEftJ+w9krDptfOznZclMlQLqXTmf5faD1C2yIvIncuMYnaT+h7xU9bpz0T2cuz7aVVlGpgLw88+8bY6UHUUsM0uQUttIqK1bIqwQBWOlBZIzpDnIqW2mV4mIgLc32dbi9Fvk6bp9FHmFr+y65lSCs9CCSMN1BbsXttYjswyBNbuWOBTZEvoRBmtzKXQtsiHwFgzS5naVKkOhoqbVqVJT56g62OSV/xCBNHpGZCVRUSFUcs2cDMTFAba30FG2uhSnbnJK/YgkeeZR+55jmfwr1qY8dO6R/2hrDVYrkbeTGNQZp8hj9cnJLGxOoVDdSItbGJCYC5eXMY5N3YZ00KYalBS5yN7O1xrjNKRe/kC9ikCaXsrZTeWOj8+7DxS/kq/jFIbmMrZ3KT5503r24+IV8lUNBet26dUhOTkZISAhSU1Nx6NAhq+Pr6uqQm5uL+Ph4BAcHo0ePHti9e7dDEyZlsFUOJ2en8s2bbS9sSUzk4hfyb3YH6e3btyMvLw/5+fk4cuQI+vTpg/T0dNRYaMqg0Wjw4IMPoqKiAjt27MCJEyewefNmdG5eJEteQ045nNx889Sp0s+WFrasWcPFL+TnhJ1SUlJEbm6u4WetVisSEhLEsmXLzI7fsGGD6Natm9BoNPbeyqC+vl4AEPX19Q5fg5zj44+FUKn028veeKlU0uvjj6VxRUUtx5h7FRVJ5yQmmh5PSrpxLf19bY0h8iZy45pdJXgajQZhYWHYsWMHMjIyDMdzcnJQV1eHXbt2tThn1KhRiIqKQlhYGHbt2oWYmBiMHz8eL774IgJlPv6wBE8Z5JTM6cvh9u+XnrBt0bcklbNzjCt3lyFyN5eU4J0/fx5arRZxcXEmx+Pi4nD8+HGz5/z222/48ssvMWHCBOzevRu//PILZsyYgevXryM/P9/sOY2NjWg0+uq/oaHBnmmSi8hJYejL4fSNlCxtqaUP6Ppcsq0Wp3LHEPkal1d36HQ6xMbG4m9/+xv69euHrKws/Nd//Rc2btxo8Zxly5ZBrVYbXklJSa6eJskgt8zt3Dk2UiJyFruepKOjoxEYGIjq6mqT49XV1ejUqZPZc+Lj49G2bVuT1MZtt92GqqoqaDQaBAUFtThn3rx5yNNvigfpSZqB2vPs7QWtb6Rkrk569WrLS7ntSWsYj9XvNl5Tw3QI+Q67gnRQUBD69euH4uJiQ05ap9OhuLgYM2fONHvOoEGDUFRUBJ1Oh4AA6cH9f//3fxEfH282QANAcHAwgoOD7ZkauYG9KQxACsRjx8oPutYWvzQP6ubGGuPu4+QT7P1Gctu2bSI4OFhs2bJFHDt2TEybNk20b99eVFVVCSGEmDRpkpg7d65hfGVlpYiIiBAzZ84UJ06cEJ999pmIjY0Vr7zyitO/BSXX01d3NK/waF7d0Zpr26ocsTbW2XMichW5cc3uIC2EEGvXrhU33XSTCAoKEikpKeK7774zvDd06FCRk5NjMv7AgQMiNTVVBAcHi27duoklS5aIpqYm2fdjkFYWV5TDNTW1vGbzV0yMEI2N8sYaB+qkJOkcIiVxSQmep7AET3mcXQ63b5+8kr2YGGDmTMBCYZBF3H2clIZd8MilnF0OJ7dypLbW/gBtz/WJlIYNlkgRXN0giQ2YyFsxSJMi2NpF3FFswETejkGaFMF48Ys9rAV1LpohX8AgTYqhX/wSHS1v/KJFLXccN6bffVytBoqLucs4eSdWd5DiaDRS6qO21vz7xo2cgJYrDj/7DCgstHw+F7mQEsiNa3ySJsUJCgI2bpSCsa2+H/oqk3HjgAceAOrrpQBsKUADN3aGMe5/TaRUDNKkSPrUR/N0RmKidNzcU7C13WCM6d+fPZupD1I+1kmTYtnb98NWK1Vj3GWcvAWDNCmaPYtmHFmwwkUupHQM0uR1LC1Jd2TBChe5kNIxSJNXsdbKdOxY661UjZlrq0qkRPzikLzGzp1SVUbzvLO+WmPXLsu7wRjjIhfyJgzS5BWsVW4YV2uMHWu+KsSYtQoRIqVhuoO8gj2b4DavCuG2WuTNGKTJK9izCS7AncXJdzDdQV7B3k1wiXwFgzR5BVutTNmSlHwVgzR5BeNWprb6eRD5EgZp8hqO9PMg8nb84pC8ir39PIi8HYM0eR1WbpA/YbqDiEjB+CRNfsVScyYipWKQJr9hrTkTv3QkpWK6g/yCreZM3EqLlIpP0uTz5DRneuYZ4I8/pPI+pkBISfgkTT5PzrZatbXAxInA8OFAcjKfrEk5GKTJ59m7RRZTIKQkDNLk8+xtusTdxElJGKTJ59lqzmSOcX9qIk9ikCafZ605ky3cTZw8jUGa/IKl5ky2sD81eRqDNPmNzEygogIoKQHefx+IiWF/alI+1kmTXzFuzhQaKlVxqFSmNdTsT01Kwidp8lvsT03egE/S5NfYn5qUjkGa/B77U5OSMUiTX2LLUvIWDNLkd9iylLwJvzgkv8KWpeRtGKTJb8hpWcp+HaQ0THeQ37DVslTfr2PtWiAuDoiNlY7X1DBvTZ7DIE1+Q24fjueeM3+ceWvyBKY7yG+0tg8H89bkCQzS5DccaVlqjHlr8gQGafIbrWlZqsc+0+RuDNLkVxxtWdoc+0yTuzBIk98xbllaVAS88Yb912CfaXIXVneQXzLu16HVAq+/Ln0xaK6G2phKJeW12Wea3IVP0uT35Oaq2WeaPMGhIL1u3TokJycjJCQEqampOHTokKzztm3bBpVKhYyMDEduS+QycnLV7DNNnmB3umP79u3Iy8vDxo0bkZqaitWrVyM9PR0nTpxArH6JlhkVFRV44YUXMJh/TySFat5bmisOSQlUQtjKwplKTU3FgAEDUFBQAADQ6XRISkrCs88+i7lz55o9R6vVYsiQIXjyySexf/9+1NXV4dNPP5V9z4aGBqjVatTX1yMyMtKe6RIRKZLcuGZXukOj0eDw4cNIS0u7cYGAAKSlpaG0tNTieYsXL0ZsbCyeeuope25HpEhaLbBvH/DBB9I/ubCFXMmudMf58+eh1WoRFxdncjwuLg7Hjx83e84333yDt956C2VlZbLv09jYiMbGRsPPDQ0N9kyTyGXYi5rczaXVHZcuXcKkSZOwefNmREdHyz5v2bJlUKvVhldSUpILZ0kkD3tRkyfYlZPWaDQICwvDjh07TCo0cnJyUFdXh127dpmMLysrw1133YVAo29bdDodAClNcuLECXTv3r3Ffcw9SSclJTEnTR6j1QLJyZZbnerrp8vL+eUiyeOSnHRQUBD69euH4uJiwzGdTofi4mIMHDiwxfhbb70VP/74I8rKygyvRx55BMOHD0dZWZnFJ+Tg4GBERkaavIg8SW4vavb0IGezuwQvLy8POTk56N+/P1JSUrB69WpcuXIFU6ZMAQBkZ2ejc+fOWLZsGUJCQnD77bebnN++fXsAaHGcSMnk9upgTw9yNruDdFZWFmpra7Fw4UJUVVWhb9++2LNnj+HLxMrKSgQEcCEj+Ra5vTrY04Ocze46aU9gnTR5mj4nbam/B3PSZC+X5KSJ/JW1/h7s6UGuxCBNJINWC0RFSTXSzatJ2dODXImtSolsMLeAJToamDhR6vXBnh7kSnySJrLC0gKWCxek9MfFiwzQ5Fp8kiayQKuVnqDNfVEohJSLnjULUKvZKY9ch0GayAI5C1hOnwaM+o2xjwc5HdMdRBY4sjCFfTzI2RikiSxwZGGKPjUyezZbmJJzMEgTWTB4sJS+sLbvoTns40HOxCBNZIHcDWotYR8PcgYGaSIr5GxQawn7eJAzMEgT2ZCZCVRUACUlQFERsHev9TSISgUkJUnpEqLWYgkekQyBgcCwYTd+XrNGquJQqUzrqNnHg5yNT9JEDrCUBmEfD3I2PkkTOSgzU+rdsX+/9CUhVxySKzBIE7VC8zQIkbMx3UFEpGB8kiZyE62WqRGyH4M0kRuY60nNZkwkB9MdRC5mqSc1mzGRHHySJnIy47RGx47A009b70k9e7ZUJcLUB5nDIE3kRObSGtYYN2NilQiZwyBN5CT6tIa5p2Zb2IyJLGFOmsgJrG21JQebMZElfJImcgJbW21ZolJJVR5sxkSW8EmayAlak65gMyayhkGayAkcSVfExLAZE9nGdAeRE+i32jpzRl5eOiZGSo8EBbl+buTd+CRN5ARyt9pSqaTXxo0M0CQPgzSRk8jZaov9psleTHcQOVHzHtOxsdLxmho2VSLHMEgTORl7TJMzMUgTOQHbkJKrMEgTtRLbkJIr8YtDolZgG1JyNQZpIgdZ69ehPzZ7tjSOyFEM0kQOstWvw7gNKZGjGKSJHCS3XwfbkFJrMEgTOUhuvw62IaXWYJAmcpC+X4elZeAqFZCUxDak1DoM0kQOstavQ/8z25BSazFIE7WCpX4d7NFBzsLFLESt1LxfB1cckjMxSBM5Aft1kKsw3UFEpGB8kiZSCDZpInMYpIkUgE2ayBKmO4g8jE2ayBoGaSIPYpMmsoVBmsiDlixhkyayjkGayEN27gTy8+WNZZMm/8UgTeQB+jSHXGzS5L8cCtLr1q1DcnIyQkJCkJqaikOHDlkcu3nzZgwePBgdOnRAhw4dkJaWZnU8kT+w1YvaGJs0+Te7g/T27duRl5eH/Px8HDlyBH369EF6ejpqamrMjt+3bx/GjRuHkpISlJaWIikpCSNGjMCZM2daPXkib2VP+oJNmvybSghz3ytblpqaigEDBqCgoAAAoNPpkJSUhGeffRZz5861eb5Wq0WHDh1QUFCA7OxsWfdsaGiAWq1GfX09IiMj7ZkukSLt2wcMH2573KOPArm5XNjii+TGNbuepDUaDQ4fPoy0tLQbFwgIQFpaGkpLS2Vd4+rVq7h+/TqioqIsjmlsbERDQ4PJi8iX2OpFrbdjhxTMk5NZL+2v7ArS58+fh1arRVxcnMnxuLg4VFVVybrGiy++iISEBJNA39yyZcugVqsNr6SkJHumSaR41npRm8OFLf7LrdUdr776KrZt24ZPPvkEISEhFsfNmzcP9fX1htepU6fcOEsi97DUi9ocIaTXM88AGk3L97VaKYXywQfSP7n4xXfYFaSjo6MRGBiI6upqk+PV1dXo1KmT1XNfe+01vPrqq/jnP/+JO++80+rY4OBgREZGmryIfFFmJlBRAZSUAPPn2x5fWyulSYyfqHfulNIhw4cD48czPeJr7ArSQUFB6NevH4qLiw3HdDodiouLMXDgQIvnrVixAi+//DL27NmD/v37Oz5bIh+k70Xdq5e88bW1N1If7Pvh++zugpeXl4ecnBz0798fKSkpWL16Na5cuYIpU6YAALKzs9G5c2csW7YMALB8+XIsXLgQRUVFSE5ONuSuw8PDER4e7sRfhci72btgRb8YxlLfD5VK6vsxdiwrQ7yZ3UE6KysLtbW1WLhwIaqqqtC3b1/s2bPH8GViZWUlAgJuPKBv2LABGo0Gjz76qMl18vPz8dJLL7Vu9kQ+RF/xceaM+cBrTAjbi2GM+35w1xjvZXedtCewTpr8hT594cx/K4uKgHHjnHc9cg6X1EkTkWvpKz6io513Tfb98G4M0kQeYK1kLjNTSnnExFg+X6WSUiPWFsSoVOz74QsYpIncTE7JXFAQsHGjFGibB2H9z2vWWF4Qo/+ZfT+8H4M0kRvZUzJnabFLYqJ0PDNT3hjybvzikMhNtFrpidlSVYY+hVFebvr0K2cXce407n3kxjXuFk7kJrZ6SFsqmdMvdrFGzhjyTkx3ELmJ3B7S3CqLjDFIE7mJ3FI4lsyRMQZpIjex1UOaJXNkDoM0kZtY6yHNkjmyhEGayI2cWTLHHtL+gdUdRG6WmSl1pmtNydzOnVIXPONqkcRE6UmdtdG+hXXSRF7GUhMmfcqEi1i8A+ukiXyQRiNtoWWth/SsWYBaDdTUcGGLL2BOmshL7Nwp5bJray2P0feZTkvjVlq+gkGayAvoUxznz9t/LrfS8m4M0kQKp9VKKQxHvz3Snzd7NitAvBGDNJHC2er5IYdxXxDyLgzSRArnzF4e7AvifRikiRTOmb082BfE+zBIEymcrZ4fgLQnYufO7AviixikiRTOVs8PlQrYtAl4803LYwD2BfFWDNJEXoBbafkvLgsn8iLcSst3cFk4kQ/iVlr+h+kOIiIFY5AmIlIwBmkiIgVjkCYiUjB+cUjkB1jx4b0YpIl8HLfa8m5MdxD5MH0f6uZd9Nhj2nswSBP5KGt9qNlj2nswSBP5KFt9qNlj2jswSBP5KLm9o9ljWtkYpIl8VGysvHHsMa1sDNJEPmjnTiAnx/oY9pj2DizBI/Ix+ooOa/0t2WPaezBIE/kQuTuLd+wITJwIqNVAcTFQU8NFLkrFftJEPmTfPmD4cMfP5yIX95Eb15iTJvIhra3U4CIX5WGQJvIhra3U4CIX5WGQJvIhcnYWt4WLXJSFQZrIh1jbWdxeXOSiDKzuIPIx+l3Dm3e+s1d1NVBYCNTWAjExQKdO0nG5lSBsj+ocrO4g8lHGQTI2Fpg8WfpiUM6/8YGBtnPS1ipB2B7VNrlxjUGayE/oF7kA8gK1Lfp0yo4dpoHX0mIaS+P9FYM0EbVg7gnXWEAAoNPZd83oaKCoCDh//sYTu6Xrq1TSE3V5uWnqwx9TIwzSRGRW8zQIAHz2GfDOO0B9vXvmUFICDBsm/W9/TY3IjWv84pDIzwQG3giQgBQk16xxTgpELn3liKXUiH5RDVMjDNJEfk1urw9nO3oU+Oc/gaeftr5zzNNPAxERN1IpAFBVZb7iRP++vf/bWddzWZpGOKCgoEB06dJFBAcHi5SUFHHw4EGr4z/88EPRs2dPERwcLG6//Xbx+eef23W/+vp6AUDU19c7Ml0isqCkRAgpJPLljFdiohAffyzvs5cb1+xezLJ9+3bk5eUhPz8fR44cQZ8+fZCeno6amhqz4w8cOIBx48bhqaeewg8//ICMjAxkZGTg6NGjrfzPCxG1FhesOJcrep/Y/cVhamoqBgwYgIKCAgCATqdDUlISnn32WcydO7fF+KysLFy5cgWfffaZ4dg999yDvn37YuPGjbLuyS8OiVyjtV3zqCVLFSzNuaQLnkajweHDh5GWlnbjAgEBSEtLQ2lpqdlzSktLTcYDQHp6usXxANDY2IiGhgaTFxE5n5xeH2o18N57wD/+IZXbkXXO7n1iV5A+f/48tFot4uLiTI7HxcWhqqrK7DlVVVV2jQeAZcuWQa1WG15JSUn2TJOIZLLW60Olkl5vvw1MmgSMGAFs2nTjOFnnrFSSIhsszZs3D/X19YbXqVOnPD0lIp+l7/XRubPp8cTEliVwlsZSS87a4NeuErzo6GgEBgaiurra5Hh1dTU66WtXmunUqZNd4wEgODgYwcHB9kyNiFohMxMYO1beqr/mYzt2BCZMkMrk6EZO2lkb/Nr1JB0UFIR+/fqhuLjYcEyn06G4uBgDBw40e87AgQNNxgPAF198YXE8EXmGfpHLuHHSP6196WU8lmmQG1yywa+9dZXbtm0TwcHBYsuWLeLYsWNi2rRpon379qKqqkoIIcSkSZPE3LlzDeO//fZb0aZNG/Haa6+Jn3/+WeTn54u2bduKH3/8UfY9WSdNpHwffyzVCRvXDSclCTFnTsvj5l72jFXqKynJ+XXSDvXuKCgowMqVK1FVVYW+ffvizTffRGpqKgBg2LBhSE5OxpYtWwzjP/roI8yfPx8VFRW45ZZbsGLFCowaNUr2/ViCR+QdLDVK0h8/c8Z2f2pzvUVcsULQ0ysO2WCJiEjBuFs4EZEPYJAmIlIwBmkiIgVjkCYiUjAGaSIiBWOQJiJSMK/YmUVfJchueETkK/TxzFYVtFcE6UuXLgEAu+ERkc+5dOkS1Gq1xfe9YjGLTqfD2bNnERERAZUdzQEaGhqQlJSEU6dOcRGMEX4ulvGzMY+fi2WOfjZCCFy6dAkJCQkICLCcefaKJ+mAgAAkJiY6fH5kZCT/YJnBz8Uyfjbm8XOxzJHPxtoTtB6/OCQiUjAGaSIiBfPpIB0cHIz8/HxuINAMPxfL+NmYx8/FMld/Nl7xxSERkb/y6SdpIiJvxyBNRKRgDNJERArGIE1EpGA+G6SXLFmCe++9F2FhYWjfvr3ZMZWVlRg9ejTCwsIQGxuLOXPmoKmpyb0TVYDk5GSoVCqT16uvvurpabndunXrkJycjJCQEKSmpuLQoUOenpLHvfTSSy3+bNx6662enpbbff311xgzZgwSEhKgUqnw6aefmrwvhMDChQsRHx+P0NBQpKWl4eTJk065t88GaY1Gg8ceewzTp083+75Wq8Xo0aOh0Whw4MABvPvuu9iyZQsWLlzo5pkqw+LFi3Hu3DnD69lnn/X0lNxq+/btyMvLQ35+Po4cOYI+ffogPT0dNTU1np6ax/Xu3dvkz8Y333zj6Sm53ZUrV9CnTx+sW7fO7PsrVqzAm2++iY0bN+LgwYNo164d0tPTce3atdbf3MHd273GO++8I9RqdYvju3fvFgEBAaKqqspwbMOGDSIyMlI0Nja6cYae16VLF/HGG294ehoelZKSInJzcw0/a7VakZCQIJYtW+bBWXlefn6+6NOnj6enoSgAxCeffGL4WafTiU6dOomVK1cajtXV1Yng4GDxwQcftPp+PvskbUtpaSnuuOMOxMXFGY6lp6ejoaEBP/30kwdn5hmvvvoqOnbsiLvuugsrV670q7SPRqPB4cOHkZaWZjgWEBCAtLQ0lJaWenBmynDy5EkkJCSgW7dumDBhAiorKz09JUUpLy9HVVWVyZ8ftVqN1NRUp/z58YoGS65QVVVlEqABGH6uqqryxJQ85i9/+QvuvvtuREVF4cCBA5g3bx7OnTuHVatWeXpqbnH+/HlotVqzfx6OHz/uoVkpQ2pqKrZs2YKePXvi3LlzWLRoEQYPHoyjR48iIiLC09NTBH28MPfnxxmxxKuepOfOndviS4zmL3//l0rPns8qLy8Pw4YNw5133olnnnkGr7/+OtauXYvGxkYP/xbkaSNHjsRjjz2GO++8E+np6di9ezfq6urw4YcfenpqfsOrnqSff/55TJ482eqYbt26ybpWp06dWnx7X11dbXjP27Xms0pNTUVTUxMqKirQs2dPF8xOWaKjoxEYGGj4/1+vurraJ/4sOFP79u3Ro0cP/PLLL56eimLo/4xUV1cjPj7ecLy6uhp9+/Zt9fW9KkjHxMQgJibGKdcaOHAglixZgpqaGsTGxgIAvvjiC0RGRqJXr15OuYcnteazKisrQ0BAgOFz8XVBQUHo168fiouLkZGRAUDaaKK4uBgzZ8707OQU5vLly/j1118xadIkT09FMbp27YpOnTqhuLjYEJQbGhpw8OBBi9Vl9vCqIG2PyspKXLx4EZWVldBqtSgrKwMA3HzzzQgPD8eIESPQq1cvTJo0CStWrEBVVRXmz5+P3Nxcv+r0VVpaioMHD2L48OGIiIhAaWkpnnvuOUycOBEdOnTw9PTcJi8vDzk5Oejfvz9SUlKwevVqXLlyBVOmTPH01DzqhRdewJgxY9ClSxecPXsW+fn5CAwMxLhx4zw9Nbe6fPmyyd8eysvLUVZWhqioKNx0002YPXs2XnnlFdxyyy3o2rUrFixYgISEBMN/9Ful1fUhCpWTkyMAtHiVlJQYxlRUVIiRI0eK0NBQER0dLZ5//nlx/fp1z03aAw4fPixSU1OFWq0WISEh4rbbbhNLly4V165d8/TU3G7t2rXipptuEkFBQSIlJUV89913np6Sx2VlZYn4+HgRFBQkOnfuLLKyssQvv/zi6Wm5XUlJidl4kpOTI4SQyvAWLFgg4uLiRHBwsHjggQfEiRMnnHJvtiolIlIwr6ruICLyNwzSREQKxiBNRKRgDNJERArGIE1EpGAM0kRECsYgTUSkYAzSREQKxiBNRKRgDNJERArGIE1EpGAM0kRECvb/AAGaprmB5XmWAAAAAElFTkSuQmCC",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# PSK8\n",
+    "\n",
+    "SNR_list = np.linspace(-10, 10, 100)\n",
+    "symbol_error_rate = []\n",
+    "\n",
+    "symbols = np.zeros(10**2)\n",
+    "for i in range(10**2):\n",
+    "    symbols[i] = np.random.randint(0, 8)\n",
+    "    \n",
+    "PSK8_symbols = []\n",
+    "for i in symbols:\n",
+    "    PSK8_symbols.append(PSK8[int(i)])\n",
+    "    \n",
+    "\n",
+    "for SNR_dB in SNR_list:\n",
+    "\n",
+    "    SNR_linear = 10**(SNR_dB / 10)\n",
+    "\n",
+    "    signal_power = np.mean(np.abs(PSK8_symbols)**2)\n",
+    "    noise_power = signal_power / SNR_linear\n",
+    "    num_symbols = len(PSK8_symbols)\n",
+    "\n",
+    "    noise_x = noise_power * np.random.normal(0, 1, len(PSK8_symbols))\n",
+    "    noise_y = noise_power * np.random.normal(0, 1, len(PSK8_symbols))\n",
+    "    PSK8_x = [x for x, y in PSK8_symbols]\n",
+    "    PSK8_y = [y for x, y in PSK8_symbols]\n",
+    "    rx_signal = list(zip(PSK8_x + noise_x, PSK8_y + noise_y))\n",
+    "\n",
+    "    detected_idx = np.zeros(num_symbols, dtype=int)\n",
+    "    for i, r in enumerate(rx_signal):\n",
+    "        distances = [np.linalg.norm(np.array(r) - s) for s in PSK8]\n",
+    "        detected_idx[i] = np.argmin(distances)\n",
+    "\n",
+    "    detected_symbols = []\n",
+    "    for i in detected_idx:\n",
+    "        detected_symbols.append(PSK8[int(i)])\n",
+    "\n",
+    "    errors = 0\n",
+    "    for i in range(len(PSK8_symbols)):\n",
+    "        if PSK8_symbols[i] != detected_symbols[i]:\n",
+    "            errors += 1\n",
+    "            \n",
+    "    SER = errors / num_symbols\n",
+    "\n",
+    "    print(\"errors: \", errors)\n",
+    "    print(\"PSK8 Symbol error rate (SER): \", SER)\n",
+    "\n",
+    "    symbol_error_rate.append(SER)\n",
+    "\n",
+    "x = [x for x, y in PSK8]\n",
+    "y = [y for x, y in PSK8]\n",
+    "\n",
+    "r_x = [x for x, y in rx_signal]\n",
+    "r_y = [y for x, y in rx_signal]\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"PSK8\")\n",
+    "plt.plot(x,y,'o', color=\"blue\")\n",
+    "plt.plot(r_x,r_y,'o', color=\"red\")\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"PSK8 symbol error rate\")\n",
+    "plt.plot(SNR_list, symbol_error_rate, 'o', color=\"blue\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "errors:  95\n",
+      "QAM16 Symbol error rate (SER):  0.95\n",
+      "errors:  96\n",
+      "QAM16 Symbol error rate (SER):  0.96\n",
+      "errors:  95\n",
+      "QAM16 Symbol error rate (SER):  0.95\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  98\n",
+      "QAM16 Symbol error rate (SER):  0.98\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  94\n",
+      "QAM16 Symbol error rate (SER):  0.94\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  94\n",
+      "QAM16 Symbol error rate (SER):  0.94\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  97\n",
+      "QAM16 Symbol error rate (SER):  0.97\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  96\n",
+      "QAM16 Symbol error rate (SER):  0.96\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  94\n",
+      "QAM16 Symbol error rate (SER):  0.94\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  94\n",
+      "QAM16 Symbol error rate (SER):  0.94\n",
+      "errors:  95\n",
+      "QAM16 Symbol error rate (SER):  0.95\n",
+      "errors:  91\n",
+      "QAM16 Symbol error rate (SER):  0.91\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  86\n",
+      "QAM16 Symbol error rate (SER):  0.86\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  91\n",
+      "QAM16 Symbol error rate (SER):  0.91\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  92\n",
+      "QAM16 Symbol error rate (SER):  0.92\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  90\n",
+      "QAM16 Symbol error rate (SER):  0.9\n",
+      "errors:  93\n",
+      "QAM16 Symbol error rate (SER):  0.93\n",
+      "errors:  85\n",
+      "QAM16 Symbol error rate (SER):  0.85\n",
+      "errors:  91\n",
+      "QAM16 Symbol error rate (SER):  0.91\n",
+      "errors:  87\n",
+      "QAM16 Symbol error rate (SER):  0.87\n",
+      "errors:  88\n",
+      "QAM16 Symbol error rate (SER):  0.88\n",
+      "errors:  86\n",
+      "QAM16 Symbol error rate (SER):  0.86\n",
+      "errors:  84\n",
+      "QAM16 Symbol error rate (SER):  0.84\n",
+      "errors:  89\n",
+      "QAM16 Symbol error rate (SER):  0.89\n",
+      "errors:  82\n",
+      "QAM16 Symbol error rate (SER):  0.82\n",
+      "errors:  88\n",
+      "QAM16 Symbol error rate (SER):  0.88\n",
+      "errors:  84\n",
+      "QAM16 Symbol error rate (SER):  0.84\n",
+      "errors:  84\n",
+      "QAM16 Symbol error rate (SER):  0.84\n",
+      "errors:  82\n",
+      "QAM16 Symbol error rate (SER):  0.82\n",
+      "errors:  84\n",
+      "QAM16 Symbol error rate (SER):  0.84\n",
+      "errors:  87\n",
+      "QAM16 Symbol error rate (SER):  0.87\n",
+      "errors:  84\n",
+      "QAM16 Symbol error rate (SER):  0.84\n",
+      "errors:  87\n",
+      "QAM16 Symbol error rate (SER):  0.87\n",
+      "errors:  81\n",
+      "QAM16 Symbol error rate (SER):  0.81\n",
+      "errors:  82\n",
+      "QAM16 Symbol error rate (SER):  0.82\n",
+      "errors:  78\n",
+      "QAM16 Symbol error rate (SER):  0.78\n",
+      "errors:  79\n",
+      "QAM16 Symbol error rate (SER):  0.79\n",
+      "errors:  85\n",
+      "QAM16 Symbol error rate (SER):  0.85\n",
+      "errors:  74\n",
+      "QAM16 Symbol error rate (SER):  0.74\n",
+      "errors:  76\n",
+      "QAM16 Symbol error rate (SER):  0.76\n",
+      "errors:  75\n",
+      "QAM16 Symbol error rate (SER):  0.75\n",
+      "errors:  68\n",
+      "QAM16 Symbol error rate (SER):  0.68\n",
+      "errors:  77\n",
+      "QAM16 Symbol error rate (SER):  0.77\n",
+      "errors:  65\n",
+      "QAM16 Symbol error rate (SER):  0.65\n",
+      "errors:  69\n",
+      "QAM16 Symbol error rate (SER):  0.69\n",
+      "errors:  64\n",
+      "QAM16 Symbol error rate (SER):  0.64\n",
+      "errors:  69\n",
+      "QAM16 Symbol error rate (SER):  0.69\n",
+      "errors:  64\n",
+      "QAM16 Symbol error rate (SER):  0.64\n",
+      "errors:  70\n",
+      "QAM16 Symbol error rate (SER):  0.7\n",
+      "errors:  63\n",
+      "QAM16 Symbol error rate (SER):  0.63\n",
+      "errors:  61\n",
+      "QAM16 Symbol error rate (SER):  0.61\n",
+      "errors:  58\n",
+      "QAM16 Symbol error rate (SER):  0.58\n",
+      "errors:  53\n",
+      "QAM16 Symbol error rate (SER):  0.53\n",
+      "errors:  67\n",
+      "QAM16 Symbol error rate (SER):  0.67\n",
+      "errors:  55\n",
+      "QAM16 Symbol error rate (SER):  0.55\n",
+      "errors:  47\n",
+      "QAM16 Symbol error rate (SER):  0.47\n",
+      "errors:  39\n",
+      "QAM16 Symbol error rate (SER):  0.39\n",
+      "errors:  43\n",
+      "QAM16 Symbol error rate (SER):  0.43\n",
+      "errors:  42\n",
+      "QAM16 Symbol error rate (SER):  0.42\n",
+      "errors:  49\n",
+      "QAM16 Symbol error rate (SER):  0.49\n",
+      "errors:  42\n",
+      "QAM16 Symbol error rate (SER):  0.42\n",
+      "errors:  26\n",
+      "QAM16 Symbol error rate (SER):  0.26\n",
+      "errors:  41\n",
+      "QAM16 Symbol error rate (SER):  0.41\n",
+      "errors:  27\n",
+      "QAM16 Symbol error rate (SER):  0.27\n",
+      "errors:  39\n",
+      "QAM16 Symbol error rate (SER):  0.39\n",
+      "errors:  24\n",
+      "QAM16 Symbol error rate (SER):  0.24\n",
+      "errors:  18\n",
+      "QAM16 Symbol error rate (SER):  0.18\n",
+      "errors:  17\n",
+      "QAM16 Symbol error rate (SER):  0.17\n",
+      "errors:  14\n",
+      "QAM16 Symbol error rate (SER):  0.14\n",
+      "errors:  18\n",
+      "QAM16 Symbol error rate (SER):  0.18\n",
+      "errors:  15\n",
+      "QAM16 Symbol error rate (SER):  0.15\n",
+      "errors:  8\n",
+      "QAM16 Symbol error rate (SER):  0.08\n",
+      "errors:  9\n",
+      "QAM16 Symbol error rate (SER):  0.09\n",
+      "errors:  7\n",
+      "QAM16 Symbol error rate (SER):  0.07\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[<matplotlib.lines.Line2D at 0x7fc1dc6b6e60>]"
+      ]
+     },
+     "execution_count": 631,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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x8qVKwUA0a5dO9GvXz9RVFQk1q5dK+Li4kTbtm3F2bNnbd5famqqGDFihM19srOzRUJCgtDpdIZtBw8eFADE+vXrDduGDBkiAIhNmzYZth05ckQAEEFBQeKf//ynYfunn35qdrz+cxg1apTJ9Z988kkBQPzrX/8SQghRXl4uAIjHH3/cZL+5c+cKAOLzzz83aZO9dEdFRYXQarViyZIlJtu///578Ytf/MJku/4eCwsLTfY9efKkACDCw8PNUme9e/cWsbGx4sKFC4Zt//rXv0RQUJDIzc01u//s7Gyb7dVbv369ACAGDhwobty4YfLelStXzPYvKysTAMS7775r2GYt3dHQ0CAiIyPF1KlTTbZXVVWJiIgIs+2BgD1pD9P34OylFPTvG/f4ioqKEBcXZ+hBaTQajBs3Dlu2bIFOp7N4nrZt2+LXv/41Nm/eDADYtGkT7r33XnTo0MGp+9D3zDUaDUpKSpCTk4Pp06fjgw8+wM8//4w1a9bYPD4yMhKHDh3CsWPHrO6Tm5uLs2fPorS01LCtqKgIYWFhePjhh032bd26tUlvtlu3boiMjESPHj1MqmD0/33ixAmz682YMcPk+6eeegoAsGvXLpOveXl5Jvs988wzAICdO3davRdLiouL0dzcjLFjx6Kmpsbwat++Pbp06WJy3wAQEhKCKVOmWDzXww8/bJI6q6ysRHl5OSZPnoyoqCjD9l69euH+++833IuxadOmKWr/1KlTodVqTbaFhYUZ/vv69eu4cOECOnfujMjISMNfSbbs3r0btbW1yM7ONvlMtFot0tLSzD6TQMAg7WGWgq8lDQ0N0Gg0iI6OBgDodDps2bIFw4YNw8mTJ3H8+HEcP34caWlpqK6uRklJidVz5eTkYPfu3Th16hQ++OADp1MdwM1/jCNHjkTr1q0N2++55x507NgR+/bts3n8iy++iNraWnTt2hV33nknnn32WXz33Xcm+9x///2Ij483pDyam5uxefNmjB492uyXXFJSEjQajcm2iIgIJCcnm20DpPRIS126dDH5vlOnTggKCjL8if3jjz8iKCgInTt3Ntmvffv2iIyMxI8//mjznls6duwYhBDo0qULYmJiTF4//PADzp07Z7J/YmIigoODLZ6rY8eOJt/r29KtWzezfXv06IGamhpcvnzZ5jnssbT/1atXsXDhQiQnJyMkJATR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",
+      "text/plain": [
+       "<Figure size 400x400 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# QAM16\n",
+    "SNR_list = np.linspace(-10, 10, 100)\n",
+    "symbol_error_rate = []\n",
+    "\n",
+    "symbols = np.zeros(10**2)\n",
+    "for i in range(10**2):\n",
+    "    symbols[i] = np.random.randint(0, 16)\n",
+    "    \n",
+    "QAM16_symbols = []\n",
+    "for i in symbols:\n",
+    "    QAM16_symbols.append(QAM16[int(i)])\n",
+    "\n",
+    "for SNR_dB in SNR_list:\n",
+    "\n",
+    "    SNR_linear = 10**(SNR_dB / 10)\n",
+    "\n",
+    "    signal_power = np.mean(np.abs(QAM16_symbols)**2)\n",
+    "    noise_power = signal_power / SNR_linear\n",
+    "    num_symbols = len(QAM16_symbols)\n",
+    "\n",
+    "    noise_x = noise_power * np.random.normal(0, 1, len(QAM16_symbols))\n",
+    "    noise_y = noise_power * np.random.normal(0, 1, len(QAM16_symbols))\n",
+    "    QAM16_x = [x for x, y in QAM16_symbols]\n",
+    "    QAM16_y = [y for x, y in QAM16_symbols]\n",
+    "    rx_signal = list(zip(QAM16_x + noise_x, QAM16_y + noise_y))\n",
+    "\n",
+    "    detected_idx = np.zeros(num_symbols, dtype=int)\n",
+    "    for i, r in enumerate(rx_signal):\n",
+    "        distances = [np.linalg.norm(np.array(r) - s) for s in QAM16]\n",
+    "        detected_idx[i] = np.argmin(distances)\n",
+    "\n",
+    "    detected_symbols = []\n",
+    "    for i in detected_idx:\n",
+    "        detected_symbols.append(QAM16[int(i)])\n",
+    "\n",
+    "    errors = 0\n",
+    "    for i in range(len(QAM16_symbols)):\n",
+    "        if QAM16_symbols[i] != detected_symbols[i]:\n",
+    "            errors += 1\n",
+    "            \n",
+    "    SER = errors / num_symbols\n",
+    "\n",
+    "    print(\"errors: \", errors)\n",
+    "    print(\"QAM16 Symbol error rate (SER): \", SER)\n",
+    "    \n",
+    "    symbol_error_rate.append(SER)\n",
+    "\n",
+    "x = [x for x, y in QAM16_symbols]\n",
+    "y = [y for x, y in QAM16_symbols]\n",
+    "\n",
+    "r_x = [x for x, y in rx_signal]\n",
+    "r_y = [y for x, y in rx_signal]\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"QAM16\")\n",
+    "plt.plot(x,y,'o', color=\"blue\")\n",
+    "plt.plot(r_x,r_y,'o', color=\"red\")\n",
+    "\n",
+    "plt.figure(figsize=(4, 4))\n",
+    "plt.title(\"QAM16 symbol error rate\")\n",
+    "plt.plot(SNR_list, symbol_error_rate, 'o', color=\"blue\")\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "4000000\n",
+      "7000000\n",
+      "4000000\n"
+     ]
+    },
+    {
+     "ename": "NameError",
+     "evalue": "name 'snr_dbs' is not defined",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[547], line 56\u001b[0m\n\u001b[1;32m     52\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28mlen\u001b[39m(decoded))\n\u001b[1;32m     55\u001b[0m plt\u001b[38;5;241m.\u001b[39mfigure(\u001b[38;5;241m2\u001b[39m)\n\u001b[0;32m---> 56\u001b[0m plt\u001b[38;5;241m.\u001b[39msemilogy(\u001b[43msnr_dbs\u001b[49m, ber_encoded, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mo-\u001b[39m\u001b[38;5;124m'\u001b[39m, label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWith hamming\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m     57\u001b[0m plt\u001b[38;5;241m.\u001b[39msemilogy(snr_dbs, ber_plain, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124ms-\u001b[39m\u001b[38;5;124m'\u001b[39m, label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWithout encoding\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m     58\u001b[0m plt\u001b[38;5;241m.\u001b[39mtitle(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mber communication with and without encoding\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
+      "\u001b[0;31mNameError\u001b[0m: name 'snr_dbs' is not defined"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<Figure size 640x480 with 0 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "def hamming_encode(data):\n",
+    "    if len(data) % 4 != 0:\n",
+    "        raise ValueError(\"input data multiple of 4\")\n",
+    "\n",
+    "    G = [[1, 0, 0, 1, 0, 1, 1],\n",
+    "         [0, 1, 0, 1, 0, 1, 0],\n",
+    "         [0, 0, 1, 1, 0, 0, 1],\n",
+    "         [0, 0, 0, 0, 1, 1, 1]]\n",
+    "    \n",
+    "    encoded_data = []\n",
+    "    for k in range(0, len(data), 4):\n",
+    "        block = data[k:k+4]\n",
+    "        for i in range(7):\n",
+    "            sum = 0\n",
+    "            for j in range(4):\n",
+    "                sum += block[j] * G[j][i]\n",
+    "            encoded_data.append(sum  % 2)\n",
+    "        \n",
+    "    return encoded_data\n",
+    "\n",
+    "def hamming_decode(recieved_data):\n",
+    "    if len(recieved_data) % 7 != 0:\n",
+    "        raise ValueError(\"Recieved data length mult of 7\")\n",
+    "    \n",
+    "    H = [[1, 0, 1, 0, 1, 0, 1],\n",
+    "         [1, 1, 0, 0, 1, 1, 0],\n",
+    "         [1, 1, 1, 1, 0, 0, 0]]\n",
+    "    \n",
+    "    decoded_data = []\n",
+    "    for k in range(0, len(recieved_data), 7):\n",
+    "        block = recieved_data[k:k+7]\n",
+    "        syndrome= []\n",
+    "        for i in range(3):\n",
+    "            syndrome_sum = 0\n",
+    "            for j in range(7):\n",
+    "                syndrome_sum += block[j] * H[i][j]\n",
+    "            syndrome.append(syndrome_sum % 2)\n",
+    "        error_pos = sum([2 ** i for i, bit in enumerate(syndrome) if bit])\n",
+    "        if error_pos > 0:\n",
+    "            block[7-error_pos] ^= 1\n",
+    "        decoded_data.extend([block[0], block[1], block[2], block[4]])\n",
+    "    return decoded_data\n",
+    "\n",
+    "data = np.zeros(4 * (10 ** 2))\n",
+    "for i in range(4 * (10 ** 2)):\n",
+    "    data[i] = np.random.randint(0, 2)\n",
+    "\n",
+    "encoded = hamming_encode(data)\n",
+    "print(len(data))\n",
+    "print(len(encoded))\n",
+    "decoded = hamming_decode(encoded)\n",
+    "print(len(decoded))\n",
+    "\n",
+    "\n",
+    "plt.figure(2)\n",
+    "plt.semilogy(snr_dbs, ber_encoded, 'o-', label=\"With hamming\")\n",
+    "plt.semilogy(snr_dbs, ber_plain, 's-', label=\"Without encoding\")\n",
+    "plt.title(\"ber communication with and without encoding\")\n",
+    "plt.xlabel(\"SNR (db)\")\n",
+    "plt.ylabel(\"bit error rate\")\n",
+    "plt.legend()\n",
+    "plt.grid(True)\n",
+    "plt.show()\n",
+    "\n",
+    "\n",
+    "\n",
+    "Also check with Rayleigh-fading channel"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}