diff --git a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb index 11852458..beda05fb 100644 --- a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb +++ b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb @@ -9,42 +9,85 @@ "\n", "The code at the end of this file explores contact tracing data about an outbreak of the flu, and demonstrates the dangers of incomplete and non-random samples. This assignment is modified from [Contact tracing can give a biased sample of COVID-19 cases](https://andrewwhitby.com/2020/11/24/contact-tracing-biased/) by Andrew Whitby.\n", "\n", - "Examine the code below. Identify all stages at which sampling is occurring in the model. Describe in words the sampling procedure, referencing the functions used, sample size, sampling frame, any underlying distributions involved. \n" + "\n" ] }, { "cell_type": "markdown", - "id": "4ea73db3", + "id": "85c70f56", "metadata": {}, - "source": [] + "source": [ + "*Explanation/summary of the article (for my use, to ensure I understood the argument  before deciphering the code)*\n", + "- Whitby critiques the NYT article, arguing that small gatherings are not the primary cause of surges in Covid-19 infections. \n", + "- Only a small proportion of infections can be identified through contact tracing.\n", + "- Contact tracing does not provide a random sample and, therefore, is not representative of the overall situation.\n", + "- It is easier to trace infections from institutions or events that regularly document data compared to private gatherings, restaurants, supermarkets, etc.\n", + "- There is also a comment on the limitations of small sample sizes.\n", + "- Whitby presents a model based on a sample of 1,000 participants: 200 attended two weddings, while the other 800 participated in 80 branches, all occurring simultaneously. He initially determines a constant infection coefficient of 0.1 for all 82 events.\n", + "- To introduce randomness into his model, Whitby changes this coefficient to represent the probability of an individual being infected (known in epidemiology as the attack rate) at 10%. This indicates that the infection rate is not constant and can vary. If he were to repeat the trial 50,000 times (i.e., 50,000 samples of 1,000, with 800 attending branches and 200 attending weddings), he would see varying results.\n", + "- Primary contact tracing refers to the likelihood of linking an infection to a source event, while secondary contact tracing involves identifying all infections after a specific event has been identified.\n", + "- Understanding these two concepts helps clarify the difference between random sampling and observational data obtained through interviews, as weddings are traceable events, unlike branches. This difference accounts for the variations observed between the blue and red histograms." + ] + }, + { + "cell_type": "markdown", + "id": "a058afa6", + "metadata": {}, + "source": [ + "Question 1: Examine the code below. Identify all stages at which sampling is occurring in the model. Describe in words the sampling procedure, referencing the functions used, sample size, sampling frame, any underlying distributions involved. " + ] + }, + { + "cell_type": "markdown", + "id": "1338f7fe", + "metadata": {}, + "source": [ + "Answer:\n", + "\n", + "After creating a (hypothetical/theoretical) dataframe of 1,000 non-infected individuals (800 who attended brunches and 200 who attended weddings), the sampling process occurs in three stages:\n", + "\n", + "(1) Simple Random Sampling (SRS) Without replacement: the code first draws a simple random sample from the 1,000 individuals in the simulation, without replacement. The sample size is determined by multiplying the attack rate (theoretically known parameter) by the sampling frame (i.e., 0.1 * 1,000 = 100). From this sample, 100 individuals are considered infected. This sampling assumes that each individual has a 10% chance of being infected, which is based on a uniform distribution learned in the first lesson, where every outcome in a given set or interval is equally likely.\n", + "\n", + "(2) Primary contact tracing: next, the simulation/code examines the 100 infected individuals selected in the previous step. Here, the code uses a binomial distribution to model the success or failure of contact tracing. This involves 100 independent random Bernoulli trials (using the np.random.rand function). The parameter value for successful contact tracing is set at 0.2, implying that 80% (the complementary distribution) will not be traced. This process samples from this group of 100 individuals to determine how many of their infections have been traced. Drawing on the example from the first lesson (where p=0.5 and n=100), the expected outcome (mean) is 20, with a standard deviation of 4.\n", + "\n", + "(3) Repetition of the sampling process: Finally, the entire simulation is rerun 1,000 times. This process reminded me of bootstrapping. However, the current repetition procedure is not based on empirical data. Instead, it models the population when the parameters (as in our case) are known. It does not estimate population parameters such as mean, standard deviation, or confidence intervals. (I am unsure id this process considered as \"sampling\" per se)" + ] }, { "cell_type": "markdown", "id": "3d9b2ccc", "metadata": {}, "source": [ - "Modify the number of repetitions in the simulation to 10 and 100 (from the original 1000). Run the script multiple times and observe the outputted graphs. Comment on the reproducibility of the results." + "Question 2: Modify the number of repetitions in the simulation to 10 and 100 (from the original 1000). Run the script multiple times and observe the outputted graphs. Comment on the reproducibility of the results." ] }, { "cell_type": "markdown", "id": "4cf5d993", "metadata": {}, - "source": [] + "source": [ + "Answer: \n", + "\n", + "Since a random seed was not generated, the results vary with each execution of the script. Each time the script runs, the first two stages produce 1,000 different values. In the next stage, I will add a random seed, as we learned in the Python and LCR modules, to ensure reproducibility." + ] }, { "cell_type": "markdown", "id": "32603ce7", "metadata": {}, "source": [ - "Alter the code so that it is reproducible. Describe the changes you made to the code and how they affected the reproducibility of the script. The script needs to produce the same output when run multiple times." + "Question 3: Alter the code so that it is reproducible. Describe the changes you made to the code and how they affected the reproducibility of the script. The script needs to produce the same output when run multiple times." ] }, { "cell_type": "markdown", "id": "77613cc3", "metadata": {}, - "source": [] + "source": [ + "Answer:\n", + "\n", + "I set a random seed using the \"np.random.seed\" function with the integer 2026 as its argument. I positioned the random seed outside the simulation event function, before the simulation repetition function. This setup allows the simulation event function to generate different random values for the first two sampling procedures, depending on the number of repetitions required in the specified range (e.g., 10, 100, 1000)." + ] }, { "cell_type": "markdown", @@ -56,10 +99,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "ab8587a0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYiJJREFUeJzt3Ql4U2Xe/vEftEAplF02ZVMRqyIIbrgrCALjK4LjBorKqIO4774uIKggKq4IDqOAoqK4rygg6qi4gCAItaKioOwqay3QNv/rfuY9+SelLW3p07TJ93NdISQ5SZ5zTk6a+zxblVAoFDIAAAAAAFDmqpb9SwIAAAAAACF0AwAAAADgCaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAOAZ88884ztv//+Vq1aNatXr16si4NSqlKlig0bNizWxUA+F1xwgbVu3brSfyZiuR4FycnJsRtvvNFatGhhVatWtT59+pTbe//8889u206aNKnc3hMAfCJ0Ayg1/SDSD6O5c+daZffOO+94CVTfffed+zG9zz772IQJE+xf//rXLp+zYMECGzBggPuxW6NGDWvQoIF169bNJk6caLm5uebLZ5995rbBhg0bzKfnnnvOHnrooV0up7Lo87WrywknnOC1vIniww8/jNquOkm099572/nnn28//fRTrItXaQUBsqDLkUce6X1/vvTSS6V6/lNPPWX33XefnXHGGTZ58mS75pprYvZdUN7efPNNO/74461x48aWmprqjoMzzzzTpk+fHuuiAaikkmNdAACoKKF77NixZR689cM3Ly/PHn74Ydt33313ufy///1v++c//2lNmjSx8847z9q2bWubN2+2WbNm2aBBg2zVqlX2v//7v+YrdN95553uJIHPGnn90P7222/t6quvLnK5vn37Rm2zLVu22ODBg+300093jwW0rcrDX3/9ZcnJ8f9n88orr7TDDjvMduzYYV9//bU7UfT222/bokWLrHnz5lbR6GSWjrGK7pxzzrFevXpF3bfHHntYRfXBBx/YnnvuaQ8++GC5fxe0atXKHW868VPe7r//frvhhhtc6L7llltc6P7hhx9s5syZNnXqVDvllFPKvUwAKr/4//UAADG0du1ad12cEPv555+7wN2lSxd3EiAt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XyKiTzcAAABQyShwd0pL834pabBv2rRp+FK3bl1X8x3c/u677ywtLc3effdd69y5s9WoUcM++eQTV7N72mmnWZMmTVwoP+yww2zmzJlRr7tt2za76aabXFDV8/bdd1978sknw49/++231rNnT/d8vc55550X1QR/69atdv7557vHmzVrZg888ECR6zFp0iS788477ZtvvnHroIvuC1obqLx6rTp16tiZZ55pa9asKTJ068TD6tWrw/d99NFHdvPNN7uQHVi2bJn98ssvbnlZsWKFe+169epZgwYN3Hv+/PPP4eV1wuLaa691jzds2NBuvPFGdyIjUnHWW83LI5vYa13//e9/2+mnn26pqanWtm1be+ONN6Keo9u6PyUlxZV38uTJ7nlq2i5aj1NPPdXq16/vatEPPPBAe+eddyxREboBAAAAlBuFzVGjRllGRoYdfPDBtmXLFuvVq5fNmjXL5s+fb6eccooLbAq3AQXH559/3h555BH3vCeeeCJca66gd9JJJ9khhxxic+fOtenTp7sQrMAauOGGG1zQff311+399993Yffrr78utIxnnXWWXXfddS4sqvZeF92Xl5fnwu8ff/zhXm/GjBn2008/uccKc/TRR1u1atVc7bYsWbLE/vrrLxs0aJD9/vvvLmyLHleI7dKli+3YscN69OjhTlKoqfmnn37q1lfbZvv27W55BWidCHjqqafcyQuVKX+NeknXO6ATDtp+CxcudPumf//+7vVF5T3jjDOsT58+7qTEpZdearfeemvU84cMGeJOlHz88ce2aNEiu/fee6NaOSSa+G7LAQAAAKBCGT58uJ188snh26rF7dChQ/j2iBEjXHhUberll19u33//vb344osu4Hbr1s0ts/fee4eXf+yxx1zgvueee8L3KYiqVlzPbd68uasVnzJlinXt2tU9rprZvfbaq9Ay1qxZ04VENX1XLX1AZVCIVPDU68vTTz/twrn6RquWPj/V9B5++OEu8J5zzjnu+phjjnE19kcddZS73aZNG3etwK37VVYFfNU4B/3k1f9btdparnv37q52+pZbbrG+ffuG+4m/99574ffVyYySrndATd5VVtF21cmOL7/80oV+nfBo166d3Xfffe5x/V8tDe6+++7w83XCpF+/fta+ffud9lcioqYbAAAAQLk59NBDo24rHF5//fWWnp7uQqXC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Vr/tV1991Q444ABbsGCBq6muV69e1PIK2KtXr3b/13Vk4A4eDx4rzLZt29wloJAOAAAAAEDc1XS3a9fOBewvvvjCBg8ebAMHDnRNxn0aOXKk1a1bN3xp0aKF1/cDAAAAACSmmIdu1Wbvu+++1rlzZxeGO3ToYA8//LA1bdrUDZC2YcOGqOU1erkeE13nH808uB0sU5BbbrnFNm7cGL6sWLHCy7oBAAAAABJbzEN3fnl5ea7pt0J4tWrVbNasWeHHMjMz3RRhao4uulbz9LVr14aXmTFjhpt+TE3UC1OjRo3wNGXBBQAAAACAuOrTrRrnnj17usHRNm/e7EYq//DDD+29995zzb4HDRpk1157rTVo0MAF4yuuuMIFbY1cLt27d3fh+rzzzrPRo0e7fty33Xabm9tbwRoAAAAAgIQN3aqhPv/8823VqlUuZB988MEucJ988snu8QcffNCqVq1q/fr1c7XfGpn88ccfDz8/KSnJ3nrrLdcXXGG8Vq1ark/48OHDY7hWAAAAAABUgNCtebiLkpKSYmPHjnWXwrRq1creeecdD6UDAAAAACDO+nQDAAAAAJDQofunn34q+5IAAAAAABBnShW6NcXXiSeeaFOmTLHs7OyyLxUAAAAAAIkaur/++ms36JlGFtd82Jdeeql9+eWXZV86AAAAAAASLXR37NjRHn74YVu5cqU99dRTbvTxY445xg466CAbM2aMrVu3ruxLCgAAAABAIg2klpycbH379rVp06bZvffeaz/88INdf/311qJFi/BUYAAAAAAAJKrdCt1z5861yy67zJo1a+ZquBW4f/zxR5sxY4arBT/ttNPKrqQAAAAAACTCPN0K2BMnTrTMzEzr1auXPf300+66atX/Zvg2bdrYpEmTrHXr1mVdXgAAAAAA4jt0jxs3zi666CK74IILXC13QRo3bmxPPvnk7pYPAAAAAIDECt1Lly7d5TLVq1e3gQMHlublAQAAAABI3D7dalquwdPy032TJ08ui3IBAAAAAJCYoXvkyJHWqFGjApuU33PPPWVRLgAAAAAAEjN0L1++3A2Wll+rVq3cYwAAAAAAoJShWzXaCxcu3On+b775xho2bFgW5QIAAAAAIDFD9znnnGNXXnmlzZ4923Jzc93lgw8+sKuuusrOPvvssi8lAAAAAACJMnr5iBEj7Oeff7auXbtacvJ/XyIvL8/OP/98+nQDAAAAALA7oVvTgb3wwgsufKtJec2aNa19+/auTzcAAAAAANiN0B3Yb7/93AUAAAAAAJRR6FYf7kmTJtmsWbNs7dq1rml5JPXvBgAAAAAg0ZUqdGvANIXu3r1720EHHWRVqlQp+5IBAAAAAJCIoXvq1Kn24osvWq9evcq+RAAAAAAAJPpAavvuu2/ZlwYAAAAxk5WVYfG0HhkZ8bE+sdSoUSNr2bJlrIsBJF7ovu666+zhhx+2xx57jKblAAAAldz6vO1W1YXUARZPBgyIr/WJhdSUFMvIzCR4A+Uduj/55BObPXu2vfvuu3bggQdatWrVoh5/5ZVXdqdMAAAAKEebQzmmYXGH12ht+1RraJVdXm6Wbf0rww5IT7daqamxLk6llZGVZQMyMmz9+vWEbqC8Q3e9evXs9NNP3533BQAAQAXTpmpNS09Os8ouVycSzKxjaqqlpVX+9QGQgKF74sSJZV8SAAAAAADijLrvlEpOTo7NnDnTnnjiCdu8WecSzVauXGlbtmwpy/IBAAAAAJBYNd2//PKLnXLKKbZ8+XLbtm2bnXzyya7pzr333utujx8/vuxLCgAAAABAItR0X3XVVXbooYfan3/+aTVr1gzfr37es2bNKsvyAQAAAACQWDXd//nPf+yzzz5z83VHat26tf32229lVTYAAAAAABKvpjsvL89yczUuZLRff/2VESIBAAAAANid0N29e3d76KGHwrerVKniBlAbOnSo9erVqzQvCQAAAABA3ClV8/IHHnjAevToYQcccIBlZ2fbueeea0uXLrVGjRrZ888/X/alBAAAAAAgUUL3XnvtZd98841NnTrVFi5c6Gq5Bw0aZP37948aWA0AAAAAgESWXOonJifbgAEDyrY0AAAAAAAkeuh++umni3z8/PPPL215AAAAAABI7NCteboj7dixw7KystwUYqmpqYRuAAAAAABKO3r5n3/+GXVRn+7MzEw75phjGEgNAAAAAIDdCd0Fadu2rY0aNWqnWnAAAAAAABJVmYXuYHC1lStXluVLAgAAAACQWH2633jjjajboVDIVq1aZY899pgdffTRZVU2AAAAAAASL3T36dMn6naVKlVsjz32sJNOOskeeOCBsiobAAAAAACJF7rz8vLKviQAAAAAAMSZMu3TDQAAAAAAdrOm+9prry32smPGjCnNWwAAAAAAkJihe/78+e6yY8cOa9eunbvv+++/t6SkJOvUqVNUX28AAAAAABJVqUL3qaeeamlpaTZ58mSrX7++u+/PP/+0Cy+80I499li77rrryrqcAAAAAAAkRp9ujVA+cuTIcOAW/f+uu+5i9HIAAAAAAHYndG/atMnWrVu30/26b/PmzaV5SQAAAAAA4k6pQvfpp5/umpK/8sor9uuvv7rLyy+/bIMGDbK+ffuWfSkBAAAAAEiUPt3jx4+366+/3s4991w3mJp7oeRkF7rvu+++si4jAAAAAACJE7pTU1Pt8ccfdwH7xx9/dPfts88+VqtWrbIuHwAAAAAAidW8PLBq1Sp3adu2rQvcoVCo7EoGAAAAAEAihu7ff//dunbtavvtt5/16tXLBW9R83KmCwMAAAAAYDdC9zXXXGPVqlWz5cuXu6bmgbPOOsumT59empcEAAAAACDulKpP9/vvv2/vvfee7bXXXlH3q5n5L7/8UlZlAwAAAAAg8Wq6t27dGlXDHfjjjz+sRo0aZVEuAAAAAAASM3Qfe+yx9vTTT4dvV6lSxfLy8mz06NF24oknlmX5AAAAAABIrOblCtcaSG3u3Lm2fft2u/HGG23x4sWupvvTTz8t+1ICAAAAAJAoNd0HHXSQff/993bMMcfYaaed5pqb9+3b1+bPn+/m6wYAAAAAAKWo6d6xY4edcsopNn78eLv11lv9lAoAAAAAgESs6dZUYQsXLvRTGgAAAAAAEr15+YABA+zJJ58s+9IAAAAAAJDoA6nl5OTYU089ZTNnzrTOnTtbrVq1oh4fM2ZMWZUPAAAAAIDECN0//fSTtW7d2r799lvr1KmTu08DqkXS9GEAAAAAAKCEobtt27a2atUqmz17trt91lln2SOPPGJNmjTxVT4AAAAAABKjT3coFIq6/e6777rpwgAAAAAAQBkNpFZYCAcAAAAAAKUM3eqvnb/PNn24AQAAAAAogz7dqtm+4IILrEaNGu52dna2/fOf/9xp9PJXXnmlJC8LAAAAAEBcKlHoHjhw4E7zdQMAAAAAgDII3RMnTizJ4gAAAAAAJLTdGkgNAAAAAAAUjtANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAAAgHkP3yJEj7bDDDrO0tDRr3Lix9enTxzIzM6OWyc7OtiFDhljDhg2tdu3a1q9fP1uzZk3UMsuXL7fevXtbamqqe50bbrjBcnJyynltAAAAAACoQKH7o48+coH6888/txkzZtiOHTuse/futnXr1vAy11xzjb355ps2bdo0t/zKlSutb9++4cdzc3Nd4N6+fbt99tlnNnnyZJs0aZLdcccdMVorAAAAAAD+K9liaPr06VG3FZZVUz1v3jw77rjjbOPGjfbkk0/ac889ZyeddJJbZuLEiZaenu6C+pFHHmnvv/++LVmyxGbOnGlNmjSxjh072ogRI+ymm26yYcOGWfXq1WO0dgAAAACARFeh+nQrZEuDBg3ctcK3ar+7desWXmb//fe3li1b2pw5c9xtXbdv394F7kCPHj1s06ZNtnjx4gLfZ9u2be7xyAsAAAAAAHEbuvPy8uzqq6+2o48+2g466CB33+rVq11Ndb169aKWVcDWY8EykYE7eDx4rLC+5HXr1g1fWrRo4WmtAAAAAACJrMKEbvXt/vbbb23q1Kne3+uWW25xterBZcWKFd7fEwAAAACQeGLapztw+eWX21tvvWUff/yx7bXXXuH7mzZt6gZI27BhQ1Rtt0Yv12PBMl9++WXU6wWjmwfL5FejRg13AQAAAAAgbmu6Q6GQC9yvvvqqffDBB9amTZuoxzt37mzVqlWzWbNmhe/TlGKaIqxLly7utq4XLVpka9euDS+jkdDr1KljBxxwQDmuDQAAAAAAFaimW03KNTL566+/7ubqDvpgq591zZo13fWgQYPs2muvdYOrKUhfccUVLmhr5HLRFGMK1+edd56NHj3avcZtt93mXpvabAAAAABAwobucePGuesTTjgh6n5NC3bBBRe4/z/44INWtWpV69evnxt1XCOTP/744+Flk5KSXNP0wYMHuzBeq1YtGzhwoA0fPryc1wYAAAAAgAoUutW8fFdSUlJs7Nix7lKYVq1a2TvvvFPGpQMAAAAAIE5GLwcAAAAAIN4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAACeELoBAAAAAPCE0A0AAAAAgCeEbgAAAAAAPCF0AwAAAADgCaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAACeELoBAAAAAPCE0A0AAAAAgCeEbgAAAAAAPCF0AwAAAADgCaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8Sfb1wgAAAEAsbc3KinUR4mL7ZWRkWEXUqFEja9myZayLAewSoRsAAABxJS+0vUKHxcri+/+7HjBggFVEKSmplpmZQfBGhUfoBgAAQFwJhXLcdUpKO6uWXDvWxam0auVmmf2VYenpUyw1Nd0qkqysDMvIGGDr168ndKPCI3QDAAAgLlWtmmpJyWmxLkalH/xJgTstrVOMSwNUXgykBgAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAACeELoBAAAAAPCE0A0AAAAAgCeEbgAAAAAAPCF0AwAAAADgCaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAADxGLo//vhjO/XUU6158+ZWpUoVe+2116IeD4VCdscdd1izZs2sZs2a1q1bN1u6dGnUMn/88Yf179/f6tSpY/Xq1bNBgwbZli1bynlNAAAAAACoYKF769at1qFDBxs7dmyBj48ePdoeeeQRGz9+vH3xxRdWq1Yt69Gjh2VnZ4eXUeBevHixzZgxw9566y0X5C+55JJyXAsAAAAAAAqWbDHUs2dPdymIarkfeughu+222+y0005z9z399NPWpEkTVyN+9tlnW0ZGhk2fPt2++uorO/TQQ90yjz76qPXq1cvuv/9+V4MOAAAAAECsVNg+3cuWLbPVq1e7JuWBunXr2hFHHGFz5sxxt3WtJuVB4BYtX7VqVVczXpht27bZpk2boi4AAAAAACRM6FbgFtVsR9Lt4DFdN27cOOrx5ORka9CgQXiZgowcOdIF+ODSokULL+sAAAAAAEhsFTZ0+3TLLbfYxo0bw5cVK1bEukgAAAAAgDhUYUN306ZN3fWaNWui7tft4DFdr127NurxnJwcN6J5sExBatSo4UY7j7wAAAAAAJAwobtNmzYuOM+aNSt8n/peq692ly5d3G1db9iwwebNmxde5oMPPrC8vDzX9xsAAAAAgIQdvVzzaf/www9Rg6ctWLDA9clu2bKlXX311XbXXXdZ27ZtXQi//fbb3Yjkffr0ccunp6fbKaecYhdffLGbVmzHjh12+eWXu5HN43Hk8uXLl9v69etjXQxUQI0aNXLHDBCJ74zS0cwYkpX13+t4Eo/rBABARRfT0D137lw78cQTw7evvfZadz1w4ECbNGmS3XjjjW4ub827rRrtY445xk0RlpKSEn7Os88+64J2165d3ajl/fr1c3N7x+OP5/R27SwrYo5yIJCakmIZmZkEb4TxnbH7MjIGWLwKhbbHuggAACSMmIbuE044wc3HXZgqVarY8OHD3aUwqhV/7rnnLN6ptko/nqekp1t6amqsi4MKJCMrywZkZLjPCKEbAb4zSm9rVpYtyciwWjXTrWpSfG27T3N+t8ezf7ZQXk6siwIAQMKIaehGyenHc6e0tFgXA0AlwXdGyW3WoJxmlpaUaknJ8bXtluVmxboIAAAknAo7kBoAAAAAAJUdoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAACeELoBAAAAAPCE0A0AAAAAgCeEbgAAAAAAPCF0AwAAAADgCaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAACeELoBAAAAAPCE0A0AAAAAgCeEbgAAAAAAPCF0AwAAAADgCaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8CTZ1wsDAAAAqPyysjKsopYpI6PilS0RNGrUyFq2bBnrYlQahG4AAAAAO1mft901i83IGGAV1YABFbds8Sw1JcUyMjMJ3sVE6AYAAACwk82hHMszs+E1Wts+1RpaRZKXm2Vb/8qwA9LTrVZqaqyLk1AysrJsQEaGrV+/ntBdTIRuAAAAAIVqU7WmpSenxboYUXJ1UsDMOqamWlpaxSobkB+hGwBKaPny5e7sbkUW9HHbmpXlfpSg+LTNAAAAygqhGwBKGLjbtUu37OzKEcyWZGRYTqwLUUnlhUKWFOtCAACASo/QDQAloBpuBe709CmWmppuFZVGddXAN7VqpltaEn3dSmJHzh+Wnb3MQqFQrIsCAADiAKEbAEpBgTstrZNVdFWTUi2pgvXDq+hy8ypHKwYAAFA5aBYAAAAAAADgAaEbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAE8I3QAAAAAAeELoBgAAAADAE0I3AAAAAACeELoBAAAAAPCE0A0AAAAAgCfJvl4YAAAAAHzampUV6yIk7DbPyMjw+j6NGjWyli1bWjwgdAMAAACoVPJC28sl+GFn3//f9YABA7y+T0pKqmVmZsRF8CZ0AwAAAKhUQqEcd52S0s6qJdeOdXESSq3cLLO/Miw9fYqlpqZ7eY+srAzLyBhg69evJ3QDAAAAQKxUrZpqSclpsS5GQg4KpsCdltYpxqWpHBhIDQAAAAAATwjdAAAAAAB4QugGAAAAAMAT+nQDcYLRO8t3O2uAj4qsopcPAAAgUcRN6B47dqzdd999tnr1auvQoYM9+uijdvjhh8e6WIB3q7Zvd01WfE/bgGgaUbMyCP3flCoAAACIjbgI3S+88IJde+21Nn78eDviiCPsoYcesh49elhmZqY1btw41sUDvNqQk2N5ZjahdWvr1LBhrIsT97ZmZdmSjAyrVTPdqialWkX1ac7v9nj2zxbK+++UKgAAAIiNuAjdY8aMsYsvvtguvPBCd1vh++2337annnrKbr755lgXDygX7WrWtE5pTJnh22YzU4xNS6rYU5Qs0xyaAAAAiLlKP5Da9u3bbd68edatW7fwfVWrVnW358yZE9OyAQAAAAASW6Wv6V6/fr3l5uZakyZNou7X7e+++67A52zbts1dAhs3bnTXmzZtsopqy5Yt7nre5s22JTc31sVBBZKxdau7XrB1q4U2bIh1ceJeVlaW6ZslZcc6S8pRvXfF9FPOf7/XFuf8aX+F+M4oiZzcTaa/EDV2rLfkvP8eX/GCz0X87+PSirfPBvs4/j8X7OPY+Tkv211v3jzPcnP/m1HKWlZWZjgDVeSMFpQtFAoVuVyV0K6WqOBWrlxpe+65p3322WfWpUuX8P033nijffTRR/bFF1/s9Jxhw4bZnXfeWc4lBQAAAADEmxUrVthee+0VvzXdjRo1sqSkJFuzZk3U/brdtGnTAp9zyy23uIHXAnl5efbHH39Yw4YNrUqVKlZRz6K0aNHC7dA6derEujgoJ+z3xMR+T0zs98TEfk9M7PfExH6PP6q/3rx5szVv3rzI5Sp96K5evbp17tzZZs2aZX369AmHaN2+/PLLC3xOjRo13CVSvXr1rDLQAcpBmnjY74mJ/Z6Y2O+Jif2emNjviYn9Hl/q1q27y2UqfegW1VoPHDjQDj30UDc3t6YM27p1a3g0cwAAAAAAYiEuQvdZZ51l69atszvuuMNWr15tHTt2tOnTp+80uBoAAAAAAOUpLkK3qCl5Yc3J44Gaww8dOnSnZvGIb+z3xMR+T0zs98TEfk9M7PfExH5PXJV+9HIAAAAAACqqqrEuAAAAAAAA8YrQDQAAAACAJ4RuAAAAAAA8IXTH0NixY61169aWkpJiRxxxhH355ZdFLj9t2jTbf//93fLt27e3d955J+pxdc/XCO7NmjWzmjVrWrdu3Wzp0qWe1wKx3u8XXHCBValSJepyyimneF4L+Nzvixcvtn79+rnltT81DeLuvibiY78PGzZsp+Nd3w+ovPt9woQJduyxx1r9+vXdRX+78y/P3/fE2+f8bY+//f7KK6+46Y3r1atntWrVcrMtPfPMM1HLcKzHL0J3jLzwwgtufnGNYPj1119bhw4drEePHrZ27doCl//ss8/snHPOsUGDBtn8+fOtT58+7vLtt9+Glxk9erQ98sgjNn78ePviiy/cAa3XzM7OLsc1Q3nvd9Ef4lWrVoUvzz//fDmtEXzs96ysLNt7771t1KhR1rRp0zJ5TcTHfpcDDzww6nj/5JNPPK4FfO/3Dz/80H3Pz5492+bMmWMtWrSw7t2722+//RZehr/vibfPhb/t8bXfGzRoYLfeeqvb5wsXLrQLL7zQXd57773wMhzrcUyjl6P8HX744aEhQ4aEb+fm5oaaN28eGjlyZIHLn3nmmaHevXtH3XfEEUeELr30Uvf/vLy8UNOmTUP33Xdf+PENGzaEatSoEXr++ee9rQdiu99l4MCBodNOO81jqVHe+z1Sq1atQg8++GCZviYq734fOnRoqEOHDmVeVpSd3T02c3JyQmlpaaHJkye72/x9T7x9Lvxtr/jK4u/wIYccErrtttvc/znW4xs13TGwfft2mzdvnmsyEqhataq7rbNfBdH9kcuLznwFyy9btsxWr14dtUzdunVdU5fCXhOVf79HnjVv3LixtWvXzgYPHmy///67p7VAeez3WLwmypbPfaSmhs2bN3e14v3797fly5eXQYlRUfa7Wjzs2LHD1YoJf98Tb58H+Nsev/tdzchnzZplmZmZdtxxx7n7ONbjG6E7BtavX2+5ubnWpEmTqPt1WwdbQXR/UcsH1yV5TVT+/R40P3v66afdl/e9995rH330kfXs2dO9Fyrnfo/Fa6Js+dpH+vE1adIkmz59uo0bN879SFPf0M2bN5dBqVER9vtNN93kTqoEP7z5+554+1z42x6f+33jxo1Wu3Ztq169uvXu3dseffRRO/nkk91jHOvxLTnWBQCwe84+++zw/zXQ2sEHH2z77LOPO0PetWvXmJYNQNnSj+6AjnWF8FatWtmLL77oxn5A5ab+/FOnTnXf3xqYCYm7z/nbHp/S0tJswYIFtmXLFndCRX3C1WrphBNOiHXR4Bk13THQqFEjS0pKsjVr1kTdr9uFDZ6j+4taPrguyWui8u/3gujLW+/1ww8/lFHJUd77PRavibJVXvtIo+Dut99+HO9xsN/vv/9+F8Def/99F7AC/H1PvH1eEP62x8d+VxP0fffd141cft1119kZZ5xhI0eOdI9xrMc3QncMqElJ586d3RmuQF5enrvdpUuXAp+j+yOXlxkzZoSXb9OmjTsgI5fZtGmTG/mwsNdE5d/vBfn1119dvy9NN4HKud9j8ZooW+W1j1Rb8uOPP3K8V/L9rhGLR4wY4boNaEqhSPx9T7x9XhD+tsfnd7yes23bNvd/jvU4F+uR3BLV1KlT3WiEkyZNCi1ZsiR0ySWXhOrVqxdavXq1e/y8884L3XzzzeHlP/3001BycnLo/vvvD2VkZLgRbKtVqxZatGhReJlRo0a513j99ddDCxcudKNetmnTJvTXX3/FZB3hf79v3rw5dP3114fmzJkTWrZsWWjmzJmhTp06hdq2bRvKzs6O2Xpi9/b7tm3bQvPnz3eXZs2auX2s/y9durTYr4n43O/XXXdd6MMPP3THu74funXrFmrUqFFo7dq1MVlH7P5+19/u6tWrh1566aXQqlWrwhd9v0cuw9/3xNnn/G2Pz/1+zz33hN5///3Qjz/+6JbXbzv9xpswYUJ4GY71+EXojqFHH3001LJlS/fFq2kHPv/88/Bjxx9/vJsuItKLL74Y2m+//dzyBx54YOjtt9+OelxTDdx+++2hJk2auC+Brl27hjIzM8ttfVD++z0rKyvUvXv30B577OHCuKYZuvjiiwlelXy/60eWzonmv2i54r4m4nO/n3XWWS6Q6/X23HNPd/uHH34o9/VC2e13fW8XtN91kjXA3/fE2uf8bY/P/X7rrbeG9t1331BKSkqofv36oS5durjgHoljPX5V0T+xrm0HAAAAACAe0acbAAAAAABPCN0AAAAAAHhC6AYAAAAAwBNCNwAAAAAAnhC6AQAAAADwhNANAAAAAIAnhG4AAAAAADwhdAMAAAAA4AmhGwCABFClShV77bXXYl0MW716tZ188slWq1Ytq1evXqyLAwCAd4RuAAAKccEFF7iwqkv16tVt3333teHDh1tOTo5VVMOGDbOOHTvudP+qVausZ8+eFmsPPvigK8uCBQvs+++/j3VxAADwLtn/WwAAUHmdcsopNnHiRNu2bZu98847NmTIEKtWrZrdcsstOy27fft2F85jIRQKWW5ubqGPN23a1CqCH3/80Tp37mxt27aNdVEAACgX1HQDAFCEGjVquMDaqlUrGzx4sHXr1s3eeOONcE14nz597O6777bmzZtbu3bt3P2LFi2yk046yWrWrGkNGza0Sy65xLZs2RJ+zeB5d955p+2xxx5Wp04d++c//+lCe0Ah/8orr7TGjRtbSkqKHXPMMfbVV1+FH//www9dDfy7777rQqzKOWXKFPea33zzTbiGftKkSQU2Ly9uGe+//35r1qyZW0YnHHbs2FHk9ho3bpzts88+7uSDtsczzzwTfqx169b28ssv29NPP+3Ko/cozFNPPWUHHnigWy+9/+WXXx5+bMyYMda+fXvXRL1FixZ22WWXRZX9l19+sVNPPdXq16/vltHr6IRJ4Ntvv3W1/rVr17YmTZrYeeedZ+vXrw8//tJLL7nXD7aN9vnWrVuLXG8AAApD6AYAoAQUxCLD8axZsywzM9NmzJhhb731lgtnPXr0cIFPIXnatGk2c+bMqNAYPC8jI8OF5+eff95eeeUVF5gDN954owuokydPtq+//to1bdfr/vHHH1Gvc/PNN9uoUaPca6mv9HXXXedCpppw63LWWWfttA7FLePs2bNdzbSuVQ4F+CDEF+TVV1+1q666ypVBwfbSSy+1Cy+80D1f9F5qOXDmmWe6sj388MOFBncFfJ0I0MkBneTQ+geqVq1qjzzyiC1evNiV64MPPnDbK6Dn6qTFxx9/7J5/7733uoAtGzZscCcbDjnkEJs7d65Nnz7d1qxZ48okKtc555xjF110UXj/9O3b17UkAACgVEIAAKBAAwcODJ122mnu/3l5eaEZM2aEatSoEbr++uvDjzdp0iS0bdu28HP+9a9/herXrx/asmVL+L633347VLVq1dDq1avDz2vQoEFo69at4WXGjRsXql27dig3N9c9t1q1aqFnn302/Pj27dtDzZs3D40ePdrdnj17tlJg6LXXXosq89ChQ0MdOnTYaV207KuvvlqiMrZq1SqUk5MTXubvf/976Kyzzip0ex111FGhiy++OOo+PadXr17h29qeeu2iaD1vvfXWUHFNmzYt1LBhw/Dt9u3bh4YNG1bgsiNGjAh179496r4VK1a47ZOZmRmaN2+e+//PP/9c7PcHAKAo1HQDAFAE1V6rllRNvNUkWTXHGqwsoGbIkf24VTvaoUMH16w5cPTRR1teXp6rEQ9omdTU1PDtLl26uCbSK1ascLXLasat5wXUj/zwww93rx/p0EMPLfE6FbeMqjFPSkoK31Yz77Vr1xb5upFlDl43f5mLotdfuXKlde3atdBlVCuvx/fcc09LS0tzzcN///13y8rKco+rWf5dd93l3nvo0KG2cOHC8HPV9F4179qnwWX//fd3j2m7a7votbVf//73v9uECRPszz//LHb5AQDIj9ANAEARTjzxRDfS9tKlS+2vv/5yzZkjw2rk/2PB5/sr6EdSP2wFc9/N94vy888/29/+9jc7+OCDXfP7efPm2dixY91jQbP/f/zjH/bTTz+5MK7m5Tox8eijj7rHdGJD/b21TyMv2r/HHXecO8mgrgLqK3/AAQe456lv+rJly7yuNwAgfhG6AQDYRahVf+KWLVtacvKuJ/1IT093tamRA299+umnrh9yMNCaaBmF+MDnn3/ual01MFgwEJmeF1DNt/pEKwgWRc8rahTzkpSxpPS6kWUOXndXZY6kmmsNuKY+7wVRyFbwf+CBB+zII4+0/fbbz9WM56ftqMHp1FdefcxVYy2dOnVyfcH1HtqvkZfgBIZOLqiWXH3s58+f77ap+qsDAFAahG4AAMpQ//79XVP0gQMHusHE1JT5iiuucLWuGik7oFrZQYMG2ZIlS9zI2moGrYHMFHwV/jRS+g033OAG+tIyF198sWs+recURWFStbKqvdWI3BpQrLRlLCmVVwOtaSA01RxrlHGF3uuvv75Er6Pm+wrVGixNr6OB5IKaaoVjnYDQbdVma3T08ePHRz3/6quvtvfee89tBz1X66cTAsEgaxqMToOl6SSGmpRrWQ34ppMVX3zxhd1zzz1ukLXly5e78q9bty78fAAASorQDQBAGVI/bYU4BbvDDjvMzjjjDNdH+LHHHotaTvdprmo1aVY/8f/5n/+J6iuuEcn79evngrBqZ3/44Qf3uhpxvCh6jkYIV7N4TUemkdFLW8aS0hRjGpFc04ypP/gTTzzh5jg/4YQTSvQ6Ohnw0EMP2eOPP+5eR83JFb5Ffa4V5jUi+UEHHWTPPvusjRw5Mur5Cs8K1wrK2haqDddriaZ2U+27lunevbvru62QXq9ePXfCQ9O3adTzXr16uefddttt7gSA+vMDAFAaVTSaWqmeCQAASkXzU2vqqsh5swEAQHyiphsAAAAAAE8I3QAAAAAAeELzcgAAAAAAPKGmGwAAAAAATwjdAAAAAAB4QugGAAAAAMATQjcAAAAAAJ4QugEAAAAA8ITQDQAAAACAJ4RuAAAAAAA8IXQDAAAAAOAJoRsAAAAAAPPj/wETbmYv4phryQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Import necessary libraries\n", "import pandas as pd\n", @@ -146,6 +200,319 @@ "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ada78e4e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9sAAAJOCAYAAACnVRSYAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXRlJREFUeJzt3QeYVOXdP+6H3gRRULBrLIhdMSrR2LvxtSbGWNAYNfYao6+JvRt7TYw1Jtao0SRWbLErdiXYhYRilyZ9/tf3ef+zv9llgQXOMsvufV/XuMzMmTPPnHNmPJ/ztFalUqmUAAAAgMK0Lm5VAAAAQBC2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBCvKnP/0prbzyyqldu3ape/fu1S4Oc6hVq1bptNNOq3YxqGO//fZLyy677Hx/TFTzc9RnypQp6YQTTkhLLbVUat26ddp5553n2Xt/8sknedvedNNN8+w9AeYlYRuYpTgRihOiV155Jc3v/vnPfzZKkPr3v/+dT6KXX375dN1116U//OEPs3zN66+/nvbee+98ktuhQ4e08MILpy233DLdeOONaerUqamxPPfcc3kbfPPNN6kx/eUvf0mXXnrpLJeLssTxNavbpptu2qjlbSmefPLJWts1Lg5973vfS/vuu2/66KOPql28+VY5ONZ322CDDRp9f959991z9PobbrghXXjhhWn33XdPN998czrmmGOq9lswrz3wwANpk002SYsuumjq3Llz/h785Cc/SQ899FC1iwY0E22rXQCAeR22r7rqqsIDd5zwTps2LV122WVphRVWmOXyf/zjH9Mvf/nL1KtXr7TPPvukFVdcMY0ZMyYNHDgwHXDAAWnEiBHpf//3f1Njhe3TTz89XxxozBr4OMF+++2309FHHz3T5Xbdddda22zs2LHpkEMOSbvsskt+riy21bzw3XffpbZtm///Ho888sj0/e9/P02ePDm9+uqr+QLRP/7xj/TWW2+lxRdfPDU1cRErvmNN3Z577pm23377Wo8tssgiqal6/PHH0xJLLJEuueSSef5bsMwyy+TvW1zwmdd+97vfpV/96lc5bJ900kk5bH/wwQfpscceS7fffnvadttt53mZgOan+Z9NAMwDn332Wf7bkPD6wgsv5KDdv3//HP67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+2ejjTbKTfcrg3X8+7DDDktfffVV+uSTT2o9HuE8TJw4MR1//PFpiSWWSF26dEnrr7/+dOE8tndcpIntFtvvyy+/nO79zzvvvFzuKOsBBxyQJkyYMN0223nnnRt8PJVr5uNzxXGxyiqrpMceeyxv73Jri7iYEds7tmkss8wyy6Rzzz13htsIAACaG2G7mbj55ptzIHvxxRfTBRdckM4444z06KOP5udefvnltO2226af/OQnuSl5NBsOP/7xj/PcxhEUBw0alNZZZ520xRZb5AAY/vGPf+QAF83Co9/zwIEDczAN99xzT1pyySXz+8Q641afe++9Nx111FHpuOOOS2+//XZuIh0hNWpwK51++um5fG+++WZ+vwjX5XL89re/Te+++24u5+DBg3N4n1HT8PhsUaYoW5QpPnvlNorA/+yzz6Zrr702/fe//83vFRcT4iJDrPf6669PZ5111nTbNt7vpZdeysH7kEMOydsuas5fffXVtPXWW+f+8OPH19/1IPZLvEflZ47QHNt6ww03rHn8o48+yhcJymE7wurzzz+fbr/99rxd4j1jP77//vv5+djXEZ5juegeEK+rW/Y777wzB+VzzjknvfLKKzn8Xn311fWWs6HHU8xPH+E8An48/4c//CGdfPLJtV5/+eWX5wsm8f5DhgxJf/7zn2sufAAAQEugGXkzscYaa6RTTz01/ztqfq+88socjrfaaqtcIxw1t1ErXG7G/Mwzz+TwGGE7ngu/+93vcs1kDCx20EEHpbPPPjv99Kc/zUG4bM0118x/o8azTZs2uba0vM76xDqj5vTQQw/N94899tj0wgsv5MfLoTLEMnvuuWf+dwTDCGtRvgiXEUDXXnvttO666+bnZxbaokl0lCnKVrdcsV0iOJZFQIym3LGtolZ25ZVXTsOHD0+//vWv0ymnnJJat25d85l/85vf5H+fdNJJuaY4wveBBx6YH4tlI6hHII4m4PWJz3rXXXflf8eFg6hdjs+08cYb5+AdFyDib9QCxzriM0ftffxdfPHF8+uiljv6o8fjsY3iwkJsn6iBDiuttFIeAC+WKbv00ktzII9biDAetdB1a7dn53iK0B1N9aO85W0cx0o8VxbljtdF7Xds26jZBgCAlkTNdjMR4ahS1GBGkJ6RqMkdO3Zs6tGjR1pggQVqbh9//HEOUiFqS6P2dW5ETXTU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koYMGVLz2AILLFDz71KplKZOnZratm3eu3mzzTZL9957b63HnnjiibTUUkulJ598slbYjvsDBgyYp+UrT2UHAAC0HPpsz0AE7XW6dm302+wG+t69e9fcFlxwwVzTXb7/73//O3Xt2jU9+OCDqV+/fqlDhw7pmWeeyTW5O+20U+rVq1cO49///vfTY489Vmu9MY/5r3/96xxQ43UrrLBCuv7662uef/vtt9N2222XXx/r2WeffWo1tR83blzad9998/OLLbZYuuiii2b6OW666aZ0+umnpzfeeCN/hrjFY+XWBVHeWFe3bt3ST37ykzRq1KiZhu244DBy5Miax5566ql04okn5nBd9vHHH6dPP/00Lx+GDRuW1929e/e08MIL5/f85JNPapaPCxXHHntsfr5Hjx7phBNOyBcwKjXkc0cz8sqm9PFZ//jHP6Zddtklde7cOa244orp/vvvr/WauB+Px/R3Ud6bb745vy6asIf4HDvuuGNaaKGFcq35qquumv75z3/OdJsDAADzjrDdDEXIPO+889LgwYPTGmuskcaOHZu23377NHDgwPTaa6+lbbfdNge1CLVlERhvu+22dPnll+fX/f73v6+pJY+At/nmm6e11147vfLKK+mhhx7K4TeCatmvfvWrHHD/9re/pUceeSSH3FdffXWGZdxjjz3Scccdl0Ni1NbHLR6bNm1aDr1fffVVXt+jjz6aPvroo/zcjGy44YapXbt2uTY7vPvuu+m7775LBxxwQPryyy9zyA7xfITX/v37p8mTJ6dtttkmX5yIJuXPPvts/ryxbSZNmpSXj+AcFwBuuOGGfNEiylS3Bn12P3dZXGiI7ffmm2/mfbPXXnvl9Yco7+6775523nnnfDHi4IMPTieffHKt1x922GH5AsnTTz+d3nrrrXT++efXatUAAABUV/NuX9xCnXHGGWmrrbaquR+1tmuuuWbN/TPPPDOHxqg9Pfzww9N7772X7rzzzhxst9xyy7zM9773vZrlr7zyyhy0zznnnJrHIoBGLXi8dvHFF8+14LfeemvaYost8vNRE7vkkkvOsIydOnXK4TCauEetfFmUIcJjBM5Yf7jllltyKI++z1ErX1fU7K633no56O65557570YbbZRr6H/wgx/k+8stt1z+G0E7Ho+yRrCPGuZyP/jo3x212LHc1ltvnWujTzrppLTr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Imy//PLL6fe//31aY401aj1+zDHHpAceeCDddddd6amnnkrDhw9Pu+66a9XKCQAAAPNF2B47dmzaa6+90nXXXZcWWmihmse//fbbdP3116eLL744bb755qlfv37pxhtvTM8991x64YUXqlpmAAAAmJm2qcqimfgOO+yQttxyy3TWWWfVPD5o0KA0efLk/HjZyiuvnJZeeun0/PPPpw022KDe9U2cODHfykaPHt3InwAAoOWYMGFomjz5i2oXgwKMHz84/x08+P/+NoaePXvm83doiaoatm+//fb06quv5mbkdY0cOTK1b98+de/evdbjvXr1ys/NyLnnnptOP/30RikvAEBLD9qvvNQnTZk2odpFoUB77713o627c8eOafCQIQI3LVLVwvawYcPSUUcdlR599NHUsWPHwtZ70kknpWOPPbZWzfZSSy1V2PoBAFqqqNGOoH1W575pudadq10c5tK0qePTuO8Gp1X69k1dOhe/PwePH5/2Hjw4ffHFF8I2LVLVwnY0E//ss8/SOuusU/PY1KlT09NPP52uvPLK9PDDD6dJkyalb775plbtdoxG3rt37xmut0OHDvkGAEDjiKDdt23XaheDuTQ1pTQmpbRW586pa1f7E5pN2N5iiy3SW2+9Veux/fffP/fL/vWvf51ro9u1a5cGDhyYp/wKQ4YMSUOHDk39+/evUqkBAACgCYftuHq22mqr1XqsS5cueU7t8uMHHHBAbhK+8MILp27duqUjjjgiB+0ZDY4GAAAATUHVRyOfmUsuuSS1bt0612zHCOPbbLNNuvrqq6tdLAAAAJh/wvaTTz5Z634MnHbVVVflGwAAAMwvWle7AAAAANDcCNsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAoWNuiVwgAzH+GDh2avvjii2oXo9kbPHhw/jt+/P/9nd/Mr+UGqAZhGwBauAjaffv0SeMnTKh2UVqMwYP3TvOzUmlStYsA0OQJ2wDQwkWNdgTtW/v2TX07d652cZq1cePHp3cHD05dOvVNrdvMf9v62SlfpqsnfJJK06ZUuygATZ6wDQBkEbTX6dq12sVo1saklCKmdm3TObVpO/9t64+njq92EQDmGwZIAwAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEBzCtvXXHNNWmONNVK3bt3yrX///unBBx+seX7ChAnpsMMOSz169EgLLLBA2m233dKoUaOqWWQAAABo2mF7ySWXTOedd14aNGhQeuWVV9Lmm2+edtppp/TOO+/k54855pj0wAMPpLvuuis99dRTafjw4WnXXXetZpEBAABgltqmKtpxxx1r3T/77LNzbfcLL7yQg/j111+f/vKXv+QQHm688cbUt2/f/PwGG2xQpVIDAADAfNJne+rUqen2229P48aNy83Jo7Z78uTJacstt6xZZuWVV05LL710ev7552e4nokTJ6bRo0fXugEAAECLCttvvfVW7o/doUOH9Mtf/jLde++9aZVVVkkjR45M7du3T927d6+1fK9evfJzM3LuueemBRdcsOa21FJLzYNPAQAAAE0obPfp0ye9/vrr6cUXX0yHHHJIGjBgQHr33XfneH0nnXRS+vbbb2tuw4YNK7S8AAAA0KT7bIeovV5hhRXyv/v165defvnldNlll6U99tgjTZo0KX3zzTe1ardjNPLevXvPcH1RQx43AAAAmK9qtj/66KPUWKZNm5b7XUfwbteuXRo4cGDNc0OGDElDhw7NfboBAACgWdVsR030Jptskg444IC0++67p44dO85xk+/tttsuD3o2ZsyYPPL4k08+mR5++OHc3zrWf+yxx6aFF144z8N9xBFH5KBtJHIAAACaXc32q6++mtZYY40chKNJ98EHH5xeeuml2V7PZ599lvbdd9/cb3uLLbbITcgjaG+11Vb5+UsuuST96Ec/SrvttlvaeOON83vdc889c1JkAAAAaNo122uttVbuV33RRRel+++/P910001po402SiuttFL6+c9/nvbZZ5+0yCKLzHI9MY/2zESN+VVXXZVvAAAA0CJGI2/btm3adddd01133ZXOP//89MEHH6Tjjz8+T7cVNdYjRoworqQAAADQEsL2K6+8kg499NC02GKLpYsvvjgH7Q8//DA9+uijafjw4WmnnXYqrqQAAADQnJuRR7C+8cYb8+jg22+/fbrlllvy39at/y+7L7fccrlp+bLLLlt0eQEAAKB5hu1rrrkm983eb7/9cq12fRZddNFZ9skGAACA5miOwvb7778/y2Xat2+fBgwYMCerBwAAgJbXZzuakMegaHXFYzfffHMR5QIAAICWFbbPPffc1LNnz3qbjp9zzjlFlAsAAABaVtgeOnRoHgStrmWWWSY/BwAAAC3ZHIXtqMF+8803p3v8jTfeSD169CiiXAAAANCywvaee+6ZjjzyyPTEE0+kqVOn5tvjjz+ejjrqqPTTn/60+FICAABAcx+N/Mwzz0yffPJJ2mKLLVLbtv+3imnTpqV9991Xn20AAABavDkK2zGt1x133JFDdzQd79SpU1p99dVzn20AAABo6eYobJettNJK+QYAAADMZdiOPto33XRTGjhwYPrss89yE/JK0X8bAAAAWqo5CtsxEFqE7R122CGtttpqqVWrVsWXDAAAAFpS2L799tvTnXfembbffvviSwQAAAAtceqvGCBthRVWKL40AAAA0FLD9nHHHZcuu+yyVCqVii8RAAAAtMRm5M8880x64okn0oMPPphWXXXV1K5du1rP33PPPUWVDwAAAFpG2O7evXvaZZddii8NAAAAtNSwfeONNxZfEgAAAGjJfbbDlClT0mOPPZZ+//vfpzFjxuTHhg8fnsaOHVtk+QAAAKBl1Gx/+umnadttt01Dhw5NEydOTFtttVXq2rVrOv/88/P9a6+9tviSAgAAQHOu2T7qqKPSuuuum77++uvUqVOnmsejH/fAgQOLLB8AAAC0jJrtf/3rX+m5557L821XWnbZZdN///vfosoGAAAALadme9q0aWnq1KnTPf6f//wnNycHAACAlmyOwvbWW2+dLr300pr7rVq1ygOjnXrqqWn77bcvsnwAAADQMpqRX3TRRWmbbbZJq6yySpowYUL62c9+lt5///3Us2fPdNtttxVfSgAAAGjuYXvJJZdMb7zxRrr99tvTm2++mWu1DzjggLTXXnvVGjANAAAAWqK2c/zCtm3T3nvvXWxpAAAAoKWG7VtuuWWmz++7775zWh4AAABomWE75tmuNHny5DR+/Pg8FVjnzp2FbQAAAFq0ORqN/Ouvv651iz7bQ4YMSRtttJEB0gAAAGjx5ihs12fFFVdM55133nS13gAAANDSFBa2y4OmDR8+vMhVAgAAQMvos33//ffXul8qldKIESPSlVdemTbccMOiygYAAAAtJ2zvvPPOte63atUqLbLIImnzzTdPF110UVFlAwAAgJYTtqdNm1Z8SQAAAKCZKLTPNgAAADCHNdvHHntsg5e9+OKL5+QtAAAAoGWF7ddeey3fJk+enPr06ZMfe++991KbNm3SOuusU6svNwAAALQ0cxS2d9xxx9S1a9d08803p4UWWig/9vXXX6f9998//fCHP0zHHXdc0eUEgLkydOjQ9MUXX1S7GE3S4MGD899x48enMdUuTDMX2xhaynFZXm/5NwZmpmfPnmnppZdOzUmrUszbNZuWWGKJ9Mgjj6RVV1211uNvv/122nrrrZvUXNujR49OCy64YPr2229Tt27dql0cAKoUtPv06ZsmTBB0ZubalNJK1S5EC9GlyzqpXbv577zknxNHpd98Nzj9qVPftGqHXtUuDnNp8uQv07hxbzXa+t9LKf2y0dZOc9OxY+c0ZMjgJh24Zzdbtp3TN/n888+nezweGzPGNXEAmpao0Y6g3bfvralz577VLk6TM3784DR48N6pS6e+qWubztUuTrM2ecpXacKEj9Mc1HVA4UqlKflvx459Uru2CxS+/i5Tx6f03WC/vTT4/0Px/+umHLZn1xyF7V122SU3GY85tddbb7382Isvvph+9atfpV133bXoMgJAIeJkr2vX/ze2CLW1btM5tWnbtdrFaNamTtO6gqandevG+e6Xpz3y20tLNUdh+9prr03HH398+tnPfpYHScsrats2HXDAAenCCy8suowAAADQ/MN2586d09VXX52D9YcffpgfW3755VOXLl2KLh8AAADMd8qtO+bIiBEj8m3FFVfMQVv/IwAAAJjDsP3ll1+mLbbYIq200kpp++23z4E7RDNy034BAADQ0s1R2D7mmGNSu3bt8lQq0aS8bI899kgPPfRQkeUDAACAltFnO+bYfvjhh9OSSy5Z6/FoTv7pp58WVTYAAABoOTXb48aNq1WjXfbVV1+lDh06FFEuAAAAaFlh+4c//GG65ZZbau63atUqTZs2LV1wwQVps802K7J8AAAA0DKakUeojgHSXnnllTRp0qR0wgknpHfeeSfXbD/77LPFlxIAAACae832aqutlt5777200UYbpZ122ik3K991113Ta6+9lufbBgAAgJZstmu2J0+enLbddtt07bXXppNPPrlxSgUAAAAtqWY7pvx68803G6c0AAAA0FKbke+9997p+uuvL740AAAA0FIHSJsyZUq64YYb0mOPPZb69euXunTpUuv5iy++uKjyAQAAQPMO2x999FFadtll09tvv53WWWed/FgMlFYppgEDAACAlmy2wvaKK66YRowYkZ544ol8f4899kiXX3556tWrV2OVDwAAAJp3n+1SqVTr/oMPPpin/QIAAADmcoC0GYVvAAAAYDbDdvTHrtsnWx9tAAAAmIs+21GTvd9++6UOHTrk+xMmTEi//OUvpxuN/J577pmd1QIAAEDLDdsDBgyYbr5tAAAAYC7C9o033jg7iwMAAECLNFcDpAEAAADTE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoDmF7XPPPTd9//vfT127dk2LLrpo2nnnndOQIUNqLTNhwoR02GGHpR49eqQFFlgg7bbbbmnUqFFVKzMAAAA06bD91FNP5SD9wgsvpEcffTRNnjw5bb311mncuHE1yxxzzDHpgQceSHfddVdefvjw4WnXXXetZrEBAABgptqmKnrooYdq3b/ppptyDfegQYPSxhtvnL799tt0/fXXp7/85S9p8803z8vceOONqW/fvjmgb7DBBlUqOQAAAMwnfbYjXIeFF144/43QHbXdW265Zc0yK6+8clp66aXT888/X7VyAgAAQJOt2a40bdq0dPTRR6cNN9wwrbbaavmxkSNHpvbt26fu3bvXWrZXr175ufpMnDgx38pGjx7dyCUHAACAJlqzHX2333777XT77bfP9aBrCy64YM1tqaWWKqyMAAAAMN+E7cMPPzz9/e9/T0888URacsklax7v3bt3mjRpUvrmm29qLR+jkcdz9TnppJNyc/TybdiwYY1efgAAAGgyYbtUKuWgfe+996bHH388LbfccrWe79evX2rXrl0aOHBgzWMxNdjQoUNT//79611nhw4dUrdu3WrdAAAAoMX02Y6m4zHS+N/+9rc813a5H3Y0/+7UqVP+e8ABB6Rjjz02D5oWwfmII47IQdtI5AAAADRVVQ3b11xzTf676aab1no8pvfab7/98r8vueSS1Lp167Tbbrvlgc+22WabdPXVV1elvAAAANDkw3Y0I5+Vjh07pquuuirfAAAAYH7QJAZIAwAAgOZE2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUrG3RKwQAACgbP35wtYtAEze+mR4jwjYAAFC4L6ZNys1oBw/eu9pFYT7QOqU0YsSI1JwI2wAAQOHGlKakaSmlMzosm5Zv16PaxaEJ+3Dyl+mUiZ+kb775JjUnwjYAANBolmvdKfVt27XaxaAJmzZ1fGqODJAGAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAaE5h++mnn0477rhjWnzxxVOrVq3SfffdV+v5UqmUTjnllLTYYoulTp06pS233DK9//77VSsvAAAANPmwPW7cuLTmmmumq666qt7nL7jggnT55Zena6+9Nr344oupS5cuaZtttkkTJkyY52UFAACAhmqbqmi77bbLt/pErfall16afvOb36SddtopP3bLLbekXr165Rrwn/70p/O4tAAAADCf99n++OOP08iRI3PT8bIFF1wwrb/++un555+vatkAAACgydZsz0wE7RA12ZXifvm5+kycODHfykaPHt2IpQQAAID5qGZ7Tp177rm5Brx8W2qppapdJAAAAFqYJhu2e/funf+OGjWq1uNxv/xcfU466aT07bff1tyGDRvW6GUFAACA+SJsL7fccjlUDxw4sFaT8BiVvH///jN8XYcOHVK3bt1q3QAAAKDF9NkeO3Zs+uCDD2oNivb666+nhRdeOC299NLp6KOPTmeddVZaccUVc/j+7W9/m+fk3nnnnatZbAAAAGi6YfuVV15Jm222Wc39Y489Nv8dMGBAuummm9IJJ5yQ5+I+6KCD0jfffJM22mij9NBDD6WOHTtWsdQAAADQhMP2pptumufTnpFWrVqlM844I98AAABgftFk+2wDAADA/ErYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIK1LXqFzLmhQ4emL774otrFYD7Qs2fPtPTSS1e7GMwH/K78n8GDB+e/48f/319qs10AoHjCdhM6Ie7bp08aP2FCtYvCfKBzx45p8JAhAjcz5XdleoMH713tIjRppdKkahcBAJoNYbuJiJqnOCG+tW/f1Ldz52oXhyZs8Pjxae/Bg/MxI2wzM35X/p9x48endwcPTl069U2t27TsbVGfZ6d8ma6e8EkqTZtS7aIAQLMhbDcxcUK8Tteu1S4G0Iz4XUlpTEopYmTXNp1Tm7Yte1vU5+Op46tdBABodgyQBgAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAACiYsA0AAAAFE7YBAACgYMI2AAAAFEzYBgAAgIIJ2wAAAFAwYRsAAAAKJmwDAABAwYRtAAAAKJiwDQAAAAUTtgEAAKBgwjYAAAAUTNgGAACAggnbAAAAUDBhGwAAAAombAMAAEBLDNtXXXVVWnbZZVPHjh3T+uuvn1566aVqFwkAAADm37B9xx13pGOPPTadeuqp6dVXX01rrrlm2mabbdJnn31W7aIBAADA/Bm2L7744nTggQem/fffP62yyirp2muvTZ07d0433HBDtYsGAAAA81/YnjRpUho0aFDacsstax5r3bp1vv/8889XtWwAAAAwI21TE/bFF1+kqVOnpl69etV6PO7/+9//rvc1EydOzLeyb7/9Nv8dPXp0asrGjh2b/w4aMyaNnTq12sWhCRsyfnz+GxeiyscN1GfIkCH5r9+VlMaPH5/i/xodJ3+e2kwZU+3iNDkfTfm//1e+M+Xr9F2pZR8rjW3K1NEpzlI6TP4itZ02Ls1vHCvNS2Mfj44XGuqjqaNr/n/dlHNbuWylUqlBy7cqNXTJKhg+fHhaYokl0nPPPZf69+9f8/gJJ5yQnnrqqfTiiy9O95rTTjstnX766fO4pAAAALQEw4YNS0suueT8XbPds2fP1KZNmzRq1Khaj8f93r171/uak046KQ+oVjZt2rT01VdfpR49eqRWrVqlpnyVZKmllso7rlu3btUuDvMZxw9zw/HD3HD8MDccP8wNxw/z+viJeuoxY8akxRdfvEHLN+mw3b59+9SvX780cODAtPPOO9eE57h/+OGH1/uaDh065Ful7t27p/lF7Gg/Fswpxw9zw/HD3HD8MDccP8wNxw/z8vhZcMEFG7xskw7bIWqpBwwYkNZdd9203nrrpUsvvTSNGzcuj04OAAAATVGTD9t77LFH+vzzz9Mpp5ySRo4cmdZaa6300EMPTTdoGgAAADQVTT5sh2gyPqNm481FNH0/9dRTp2sCDw3h+GFuOH6YG44f5objh7nh+KGpHz9NejRyAAAAmB+1rnYBAAAAoLkRtgEAAKBgwjYAAAAUTNhuJFdddVVadtllU8eOHdP666+fXnrppZkuf9ddd6WVV145L7/66qunf/7zn7Wej671MSL7Yostljp16pS23HLL9P777zfyp6C5HD/77bdfatWqVa3btttu28ifgvnh+HnnnXfSbrvtlpeP4yKmV5zbdTJ/K/r4Oe2006b7/YnfK5qn2Tl+rrvuuvTDH/4wLbTQQvkW5zZ1l3f+07IUffw4/2lZrpqN4+eee+7JU0t37949denSJc949ac//anw3x9huxHccccdeX7wGN3u1VdfTWuuuWbaZptt0meffVbv8s8991zac8890wEHHJBee+21tPPOO+fb22+/XbPMBRdckC6//PJ07bXXphdffDEfFLHOCRMmzMNPxvx6/IT4n8uIESNqbrfddts8+kQ05eNn/Pjx6Xvf+14677zzUu/evQtZJ/Ovxjh+wqqrrlrr9+eZZ55pxE/B/HL8PPnkk/n/X0888UR6/vnn01JLLZW23nrr9N///rdmGec/LUdjHD/B+U/LcMdsHj8LL7xwOvnkk/Ox8+abb6b9998/3x5++OFif39iNHKKtd5665UOO+ywmvtTp04tLb744qVzzz233uV/8pOflHbYYYdaj62//vqlgw8+OP972rRppd69e5cuvPDCmue/+eabUocOHUq33XZbo30OmsfxEwYMGFDaaaedGrHUzK/HT6VlllmmdMkllxS6TuYvjXH8nHrqqaU111yz8LLS9Mztb8WUKVNKXbt2Ld188835vvOflqXo4yc4/2k51ivgXGXttdcu/eY3vyn090fNdsEmTZqUBg0alJsZlLVu3Trfjysn9YnHK5cPcdWkvPzHH3+cRo4cWWuZBRdcMDePmNE6mT81xvFTeQV40UUXTX369EmHHHJI+vLLLxvpUzA/HT/VWCdNU2Pu62h2t/jii+da8L322isNHTq0gBLT3I6faCkxefLkXOMUnP+0HI1x/JQ5/2n+Js3l8RPNxQcOHJiGDBmSNt5440J/f4Ttgn3xxRdp6tSpqVevXrUej/uxw+oTj89s+fLf2Vkn86fGOH7KTahuueWW/ENy/vnnp6eeeiptt912+b1o2cdPNdZJ09RY+zpOTG666ab00EMPpWuuuSafwEQ/yzFjxhRQaprT8fPrX/86X5Qpn9w6/2k5GuP4Cc5/WoYv5vD4+fbbb9MCCyyQ2rdvn3bYYYd0xRVXpK222qrQ35+2s/lZgPnQT3/605p/xwBqa6yxRlp++eXz1d4tttiiqmUDmrc4sS2L354I38sss0y6884781gTEKLf/+23357/vxSDG0ERx4/zH2ama9eu6fXXX09jx47NF2Siz3e0wNp0001TUdRsF6xnz56pTZs2adSoUbUej/szGjwmHp/Z8uW/s7NO5k+NcfzUJ35I4r0++OCDgkrO/Hr8VGOdNE3zal/HyK8rrbSS359mZm6On9/97nc5LD3yyCM5DJU5/2k5GuP4qY/zn+ap5xweP9HUfIUVVsgjkR933HFp9913T+eee26hvz/CdsGiGUK/fv3y1ZGyadOm5fv9+/ev9zXxeOXy4dFHH61Zfrnllss7tXKZ0aNH51HxZrRO5k+NcfzU5z//+U/usxRTGdCyj59qrJOmaV7t66hB+PDDD/3+NDNzevzEaL9nnnlm7mYQ0/BUcv7TcjTG8VMf5z/NU/uC/v8Vr5k4cWKxvz8NHkqNBrv99tvzSHU33XRT6d133y0ddNBBpe7du5dGjhyZn99nn31KJ554Ys3yzz77bKlt27al3/3ud6XBgwfnkVvbtWtXeuutt2qWOe+88/I6/va3v5XefPPNPLLicsstV/ruu++q8hmZf46fMWPGlI4//vjS888/X/r4449Ljz32WGmdddYprbjiiqUJEyZU7XPSNI6fiRMnll577bV8W2yxxfKxEv9+//33G7xOmo/GOH6OO+640pNPPpl/f+L3assttyz17Nmz9Nlnn1XlM9J0jp84t2nfvn3p7rvvLo0YMaLmFv/fqlzG+U/LUPTx4/ynZbl9No+fc845p/TII4+UPvzww7x8nEfH+fR1111X6O+PsN1IrrjiitLSSy+dfwRiKPoXXnih5rlNNtkkT0VQ6c477yyttNJKeflVV1219I9//KPW8zH8/G9/+9tSr1698oG0xRZblIYMGTLPPg/z7/Ezfvz40tZbb11aZJFFcgiP6XkOPPBAQakZm53jJ05A4rpr3Vss19B10rwUffzsscceOYjH+pZYYol8/4MPPpjnn4umd/zE/4/qO37ionGZ85+Wpcjjx/lPy3PFbBw/J598cmmFFVYodezYsbTQQguV+vfvnwN7pSJ+f1rFfxpeDw4AAADMij7bAAAAUDBhGwAAAAombAMAAEDBhG0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsA0Iy0atUq3XfffdUuRho5cmTaaqutUpcuXVL37t2rXRwAmOeEbQBavP322y+H1Li1b98+rbDCCumMM85IU6ZMSU3VaaedltZaa63pHh8xYkTabrvtUrVdcskluSyvv/56eu+996pdHACY59rO+7cEgKZn2223TTfeeGOaOHFi+uc//5kOO+yw1K5du3TSSSdNt+ykSZNyKK+GUqmUpk6dOsPne/funZqCDz/8MPXr1y+tuOKK1S4KAFSFmm0ASCl16NAhB9VlllkmHXLIIWnLLbdM999/f03N984775zOPvvstPjii6c+ffrkx9966620+eabp06dOqUePXqkgw46KI0dO7ZmneXXnX766WmRRRZJ3bp1S7/85S9zWC+LcH/kkUemRRddNHXs2DFttNFG6eWXX655/sknn8w17g8++GAOr1HOW2+9Na/zjTfeqKmRv+mmm+ptRt7QMv7ud79Liy22WF4mLjRMnjx5ptvrmmuuScsvv3y+6BDb409/+lPNc8suu2z661//mm655ZZcnniPGbnhhhvSqquumj9XvP/hhx9e89zFF1+cVl999dwUfamllkqHHnporbJ/+umnaccdd0wLLbRQXibWExdKyt5+++1cy7/AAgukXr16pX322Sd98cUXNc/ffffdef3lbRP7fNy4cTP93ADQUMI2ANQjAlhlKB44cGAaMmRIevTRR9Pf//73HMq22WabHPQiHN91113pscceqxUWy68bPHhwDs233XZbuueee3JQLjvhhBNyML355pvTq6++mpuwx3q/+uqrWus58cQT03nnnZfXFX2hjzvuuBwuo6l23PbYY4/pPkNDy/jEE0/kmuj4G+WI4F4O7/W5995701FHHZXLEIH24IMPTvvvv39+fYj3ipYCP/nJT3LZLrvsshkG9gj2cQEgLgrExY34/GWtW7dOl19+eXrnnXdyuR5//PG8vcritXGx4umnn86vP//883OwDt98802+yLD22munV155JT300ENp1KhRuUwhyrXnnnumn//85zX7Z9ddd80tBwCgECUAaOEGDBhQ2mmnnfK/p02bVnr00UdLHTp0KB1//PE1z/fq1as0ceLEmtf84Q9/KC200EKlsWPH1jz2j3/8o9S6devSyJEja1638MILl8aNG1ezzDXXXFNaYIEFSlOnTs2vbdeuXenPf/5zzfOTJk0qLb744qULLrgg33/iiSci/ZXuu+++WmU+9dRTS2uuueZ0nyWWvffee2erjMsss0xpypQpNcv8+Mc/Lu2xxx4z3F4/+MEPSgceeGCtx+I122+/fc392J6x7pmJz3nyySeXGuquu+4q9ejRo+b+6quvXjrttNPqXfbMM88sbb311rUeGzZsWN4+Q4YMKQ0aNCj/+5NPPmnw+wPA7FCzDQAp5drqqBWNptzR9DhqimMQsrJoblzZTztqQ9dcc83cfLlsww03TNOmTcs14GWxTOfOnWvu9+/fPzeFHjZsWK5Njuba8bqy6Ce+3nrr5fVXWnfddWf7MzW0jFFD3qZNm5r70Zz7s88+m+l6K8tcXm/dMs9MrH/48OFpiy22mOEyUQsfzy+xxBKpa9euuRn4l19+mcaPH5+fj+b3Z511Vn7vU089Nb355ps1r40m9lHTHvu0fFt55ZXzc7HdY7vEumO//vjHP07XXXdd+vrrrxtcfgCYFWEbAFJKm222WR45+/3330/fffddbrZcGVIr/10Njfn+EfArRT/rCOSN3Ux/Zj755JP0ox/9KK2xxhq5mf2gQYPSVVddlZ8rN+//xS9+kT766KMcwqMZeVyQuOKKK/JzcUEj+nPHPq28xf7deOON88WF6BIQfeFXWWWV/Lroe/7xxx836ucGoOUQtgHg/w+z0V946aWXTm3bznqyjr59++ba08oBtZ599tncz7g8gFqIZSK8l73wwgu5ljUG/CoPMBavK4ua7ujzHAFwZuJ1MxuVfHbKOLtivZVlLq93VmWuFDXVMZBa9GmvT4TrCPwXXXRR2mCDDdJKK62Ua8Lriu0Yg85FX/joQx411GGdddbJfb3jPWK/Vt7KFy7iokLUikcf+tdeey1v0+iPDgBFELYBYA7stddeucn5gAED8iBh0WT5iCOOyLWsMfJ1WdTCHnDAAendd9/NI2VHc+cYoCwCb4S+GPn8V7/6VR7AK5Y58MADczPpeM3MRIiMWtiorY0RtmOgsDkt4+yK8sYAajHAWdQUx6jhEXaPP/742VpPNNOPMB2DoMV6YoC4cs10hOK48BD3o/Y6Rju/9tpra73+6KOPTg8//HDeDvHa+HxxIaA8eFoMMheDoMXFi2g6HsvGQG5xkeLFF19M55xzTh48bejQobn8n3/+ec3rAWBuCdsAMAeiH3aEtwh03//+99Puu++e+wBfeeWVtZaLx2Ku6Wi6HP3A/+d//qdWX/AYYXy33XbLAThqYz/44IO83hhBfGbiNTHidzR/j2nFYqTzOS3j7IqpwmKE8ZguLPp7//73v89zlG+66aaztZ64CHDppZemq6++Oq8nmo1H6A7RpzpCfIwwvtpqq6U///nP6dxzz631+gjNEaojIMe2iNrvWFeIKdqitj2W2XrrrXPf7Ajn3bt3zxc6Yhq2GMV8++23z6/7zW9+k4N/9NcHgCK0ilHSClkTAFBLzC8dU1BVznsNALQMarYBAACgYMI2AAAAFEwzcgAAACiYmm0AAAAomLANAAAABRO2AQAAoGDCNgAAABRM2AYAAICCCdsAAABQMGEbAAAACiZsAwAAQMGEbQAAAEjF+v8A7lYEmUT5AnoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Import necessary libraries\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "# Note: Suppressing FutureWarnings to maintain a clean output. This is specifically to ignore warnings about\n", + "# deprecated features in the libraries we're using (e.g., 'use_inf_as_na' option in Pandas, used by Seaborn),\n", + "# which we currently have no direct control over. This action is taken to ensure that our output remains\n", + "# focused on relevant information, acknowledging that we rely on external library updates to fully resolve\n", + "# these deprecations. Always consider reviewing and removing this suppression after significant library updates.\n", + "import warnings\n", + "warnings.simplefilter(action='ignore', category=FutureWarning)\n", + "\n", + "# Constants representing the parameters of the model\n", + "ATTACK_RATE = 0.10\n", + "TRACE_SUCCESS = 0.20\n", + "SECONDARY_TRACE_THRESHOLD = 2\n", + "\n", + "def simulate_event(m):\n", + " \"\"\"\n", + " Simulates the infection and tracing process for a series of events.\n", + " \n", + " This function creates a DataFrame representing individuals attending weddings and brunches,\n", + " infects a subset of them based on the ATTACK_RATE, performs primary and secondary contact tracing,\n", + " and calculates the proportions of infections and traced cases that are attributed to weddings.\n", + " \n", + " Parameters:\n", + " - m: Dummy parameter for iteration purposes.\n", + " \n", + " Returns:\n", + " - A tuple containing the proportion of infections and the proportion of traced cases\n", + " that are attributed to weddings.\n", + " \"\"\"\n", + " # Create DataFrame for people at events with initial infection and traced status\n", + " events = ['wedding'] * 200 + ['brunch'] * 800\n", + " ppl = pd.DataFrame({\n", + " 'event': events,\n", + " 'infected': False,\n", + " 'traced': np.nan # Initially setting traced status as NaN\n", + " })\n", + "\n", + " # Explicitly set 'traced' column to nullable boolean type\n", + " ppl['traced'] = ppl['traced'].astype(pd.BooleanDtype())\n", + "\n", + " # Infect a random subset of people\n", + " infected_indices = np.random.choice(ppl.index, size=int(len(ppl) * ATTACK_RATE), replace=False)\n", + " ppl.loc[infected_indices, 'infected'] = True\n", + "\n", + " # Primary contact tracing: randomly decide which infected people get traced\n", + " ppl.loc[ppl['infected'], 'traced'] = np.random.rand(sum(ppl['infected'])) < TRACE_SUCCESS\n", + "\n", + " # Secondary contact tracing based on event attendance\n", + " event_trace_counts = ppl[ppl['traced'] == True]['event'].value_counts()\n", + " events_traced = event_trace_counts[event_trace_counts >= SECONDARY_TRACE_THRESHOLD].index\n", + " ppl.loc[ppl['event'].isin(events_traced) & ppl['infected'], 'traced'] = True\n", + "\n", + " # Calculate proportions of infections and traces attributed to each event type\n", + " ppl['event_type'] = ppl['event'].str[0] # 'w' for wedding, 'b' for brunch\n", + " wedding_infections = sum(ppl['infected'] & (ppl['event_type'] == 'w'))\n", + " brunch_infections = sum(ppl['infected'] & (ppl['event_type'] == 'b'))\n", + " p_wedding_infections = wedding_infections / (wedding_infections + brunch_infections)\n", + "\n", + " wedding_traces = sum(ppl['infected'] & ppl['traced'] & (ppl['event_type'] == 'w'))\n", + " brunch_traces = sum(ppl['infected'] & ppl['traced'] & (ppl['event_type'] == 'b'))\n", + " p_wedding_traces = wedding_traces / (wedding_traces + brunch_traces)\n", + "\n", + " return p_wedding_infections, p_wedding_traces\n", + "\n", + "# Run the simulation 100 times\n", + "results = [simulate_event(m) for m in range(100)]\n", + "props_df = pd.DataFrame(results, columns=[\"Infections\", \"Traces\"])\n", + "\n", + "# Plotting the results\n", + "plt.figure(figsize=(10, 6))\n", + "sns.histplot(props_df['Infections'], color=\"blue\", alpha=0.75, binwidth=0.05, kde=False, label='Infections from Weddings')\n", + "sns.histplot(props_df['Traces'], color=\"red\", alpha=0.75, binwidth=0.05, kde=False, label='Traced to Weddings')\n", + "plt.xlabel(\"Proportion of cases\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Impact of Contact Tracing on Perceived Flu Infection Sources\")\n", + "plt.legend()\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "a142fb87", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWGBJREFUeJzt3QeYVOXdP+4HqaIoig0UsSM27MbeUUl8bTFGUdEYY+xGjUrMGyUascQajRijojGxl5iiRo0ldsWuBMWGBXuhCVLmf32f9zf7n10WWGDPDrt739c14sycOfPMKbPzOU9rUyqVSgkAAABodAs0/ioBAACAIHQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAPMgz/96U9p9dVXT+3bt09du3atdnGYS23atEmnn356tYtBHQcddFBaYYUVmv0xUc3PUZ+pU6emk046KfXs2TMtsMACaffdd2+y937nnXfyth02bFiTvSdAtQndQL3iB1H8MHr22WdTc/fPf/6zkED13//+N/+YXnnlldOVV16Z/vCHP8z2NS+88ELaf//984/djh07psUXXzztsMMO6ZprrknTpk1LRXn88cfzNvjqq69Skf7yl7+kiy66aLbLRVni+JrdbZtttim0vK3FQw89VGu7xkWilVZaKR144IHprbfeqnbxmq1ygKzv9p3vfKfw/XnrrbfO1euvvvrqdN5556Xvf//76dprr00/+9nPqvZd0NT+9re/pa233jottdRSqXPnzvk8+MEPfpDuueeeahcNaMHaVbsAAE0Rui+77LJGD97xw3f69Onp4osvTqussspsl//jH/+YfvrTn6all146HXDAAWnVVVdN48aNSw888EA65JBD0pgxY9IvfvGLVFToHjx4cL5IUGSNfPzQfuWVV9Jxxx03y+X23HPPWtts/Pjx6fDDD0977LFHfq4stlVT+Oabb1K7di3/T+IxxxyTNtpoozRlypT03HPP5QtF//jHP9LLL7+cevTokeY3cTErzrH53b777pv69+9f67Ell1wyza/+/e9/p2WXXTZdeOGFTf5d0KtXr3y+xYWfpvbb3/42/fznP8+he9CgQTl0jxo1Kt1///3pxhtvTDvvvHOTlwloHVr+LwyAgnzyySf534aE2CeffDIH7k033TRfBOjSpUvNc/GjNFoUxA/U1mKdddbJt7LPPvssh+54LFoCzMykSZNShw4dcpPYxtSpU6fUGmy55Za5djMcfPDBabXVVstBPGo7I4TMiwkTJqSFFlooNaZqBLO5sf7668/yuJ0fv7uq1R0mauircb5Fk/ozzjgj7bjjjulf//rXTL/Pm1IR5wwwf9K8HGiwqCVdeOGF0+jRo9P3vve9/P9RWxK1yCFqy7bbbrv8IyJqM6Kmo74m64888kg67LDDUrdu3dIiiyySm7h++eWXtZb961//mr773e/m2rdohh1NuOMHU31NsJ966qlcy7TYYovl947gFrXP5TKXy1fZ9HN2fv/736c111wzv3eU4cgjj6zVNDv6Z5522mk1NVqz6/8ZtcyxzJ///Odagbtsww03zGWt/DF2wgkn1DRD7927d66lKZVKtV4X6zzqqKPSnXfemdZaa628bJS7sqlklCtqd8KKK65Ysw2iaWyIpu2x36K5Zbx+jTXWSJdffnm9n+Puu+/OtUTxGWLfRa1peT9HU/CoNX333Xdr3mNe+rGWm9BGDdQvf/nLfKxFzdTYsWPTF198kU488cS09tpr5+MwyrLLLrukF198sd6gHtsgAmb82O/evXuuTX/zzTdrbcfK/Vdu/h61YOXWAYsuumgOqhMnTqy1/qi1i+C6xBJL5O3yP//zP+mDDz5ocJ/g+LEfLR2iVj/K17dv3xyC62vGHMdA1E7H+RD7Krb/M888M5dbOOX9Ht5+++1a+zjCeZxL8XniPHz11Vfr/S6IbRjnXiw3YMCA/Fy59Ufsm/g8cX5EDWLdrirXX3992mCDDdKCCy6Yu1n88Ic/TO+9994M71M+hqJ2PpaLfVBXHBPxXnFMlE2ePDmfo9GiIrZVnEvRjzkerxT3o3l1lLO8/95///1UpPKxHf82Vn/nhhyz5fU/+OCDeZ+Wz9NyOWLfRZPw+A6J7RnHZHxX1/1+npfvgpl9xqh9Lx93UfbddtstjRgxYo4/48zEhb04TjbffPN6n4/vvzk9L+dkPzbVOfPGG2+kvfbaKy2zzDJ5Xcstt1xe7uuvv57l9gGKpaYbmCMReiPcbLXVVuncc8/NITJCX/xQOvXUU/OPiAg0Q4cOzWE6anYj6FWK5ePHUvyAGjlyZA548eOs/AMmxI+V+IFy/PHH53/jB9mvfvWr/KMp+iKW3XffffkCQASpY489Nv/QiB9qf//73/P9+MH44Ycf5uVi0LOGiHJFSI6+1lH7Wi5jhJvHHnss177FD9Prrrsu3XHHHfm5KGNlzW2l+DEYTchjmy2//PKzff8I1vHDP34Yx4++ddddN9177705OEeYq9sk9NFHH0233357OuKII/IPuUsuuST/6IqLI3FhI/bH66+/nm644Yb82giHlc1fo/zxIzveM5pYR5/HWFf8EIyLDWWxT370ox/lZaNWNPbh888/nwP+fvvtl/d//LCLwFIuY2yXeRUXW6J2OwJVBKT4/9deey1faNh7773z8fXxxx+nK664IoeAeK7cVDqO1zg+YvvHD884JqJJfxwP0bIgwuusRF/PWP+QIUNyc+zoIhA/zs8555xaP6Zvvvnm3GUg+vE+/PDDOag2RAT2CCgRIuK8iPe65ZZb8jrjIk+Ut1KEmih/HNdxrsQ5GPs3+mXPTa1w+cJDHCchzpGBAwemnXbaKX/GOHbj+Nhiiy3yvq68iBI1h7FcPBcXA+KCSIhjNo6V+J748Y9/nJf7z3/+k1t7xMWl8Jvf/Cb97//+b96+scynn36afve73+VzJN6nvlrY+HzR/SCO9djXcRyUxbEQx0bs4xDHbhzPcW785Cc/SX369MkXBeO4jHMhli+L948wE8fwZpttlr9rGrr/ymI7RairFGGwGjX1szpm45yPfRzbP7p0xDIhtk+I4yr2XYTYuJAUF2MuvfTSvE/K331FfBdE8+44XqJ/dXz/xnkRx0ME5PgMdS/eNeS8rCuej7Aa329HH310Dq2NdV42VNHnzLfffpvXH+dCfMb4exh/M+LvYZQ7jkmgSkoA9bjmmmuiSrX0zDPP1Dw2cODA/NhZZ51V89iXX35ZWnDBBUtt2rQp3XjjjTWP//e//83LnnbaaTOsc4MNNih9++23NY+fe+65+fG//vWvNY9NnDhxhjIddthhpc6dO5cmTZqU70+dOrW04oorlnr16pXLUWn69Ok1/3/kkUfm9TfEJ598UurQoUOpX79+pWnTptU8fumll+Z1XH311TWPxWeLxz799NNZrvPFF1/Myx177LENKsOdd96Zlz/zzDNrPf79738/b+dRo0bVPBbLRXkrHyu/3+9+97uax84777z82Ntvvz3D+9W3rXfaaafSSiutVHP/q6++KnXp0qW0ySablL755puZbuvvfve7eX/MqdiGdY+XBx98MD8W5ahbxjgGKvdPiM/WsWPH0q9//euax2J/xTouuOCCGd6zstx137u8b3/0ox/Ves0ee+xR6tatW8394cOH5+WOO+64WssddNBBM6yzPhdddFFe7vrrr695LM6NTTfdtLTwwguXxo4dW/PZYrl47y+++KJm2Thn4vG//e1vs3yf8raM7RHb+sMPPyz94x//KK2wwgr5mIrzfNy4caWuXbuWDj300Fqv/eijj0qLLrporcfL3wWnnHJKrWX//e9/58ePOeaYmW7vd955p9S2bdvSb37zm1rPv/zyy6V27drVejzep/J4uvfee+v9vP379691vP7pT38qLbDAAqX//Oc/tZYbOnRofv1jjz2W77/wwgv5/hFHHFFruf32269B+6+8X+q7xTaf2eco74/KZSrXF9+Vs1J+/S233DLHx2zYeuutS2uuuWatx2Jbxev//Oc/13r8nnvuqfX4vH4X1PcZ11133dJSSy1V+vzzz2t9j8U+PPDAA+fqM9bnV7/6VX79QgstVNpll13ysRbn8Nyel3OyH5vinHn++ednOC6A+YPm5cAci6vsZXF1PZo+R013XIEvi8fiufpGRo6ap8oaoKhNjhrW6OtcFjUSZVGzF7VI0fQwapRi1PAQV/ejJib6RNetGWtIE/KZ1bhEbUGss7Lf8KGHHpqbUEaTyTkVtfOhvmbl9Ynt0LZt21zTVCmam0c+jGadlaJGvrLGNmrco6wNHZW6cltH7VRs66gxjteXmyRGzXDsh1NOOWWG/phzu60bKmpeK8sYorlwef9Ebfbnn3+ea9LiuIuar7Lbbrst1+xHrU9dDSl39MOvFMdgvFd5n5ab8UfLgEr1vd/M9nXURsVAXGVxbsS+j5rIqDWvtM8+++RuFJXlCQ3d11E7GbWd0RIganOjG0M0mY3atNjHURsWZYljoHyLY3GTTTbJLS/qinO3Umzv2K7lrhf1be+oqY6a6Pi+qHyf2A4xuGB971PZHD7250033VTzWDR9jrLHtimLWsmovY3p/Crfo9ycvvwe5e+cuufa7AYCrO87LcpQeYvmyNUwu2N2ZmKbRU1o9Hmu3GbRnDnOrfI2a+zvghhAMmZ1iFrkytrn+B6LslT+XZjXzxgtmKK1yHrrrZdbD0WNfHy+6JNf2ZR9Ts/LOVHkOVOuyY7PNrvm9kDT0rwcmCPl/maV4g999Bur+4MrHq+vL2D8SKgUP+iieXi5j3GI/obRjzeaetb9IVUOguWmsdGXubFEM/cQ4a1SNGWNpo/l5+dEBOAQP1QbWoYIRXVDerkJaN0y1NdkPYJZfdu+PtFsNH7wPfHEEzP8UIttHfuxiG3dUHW7J1T2gYy+93HhpbKvf7mpdIhyx76c25HJ627bcuCNbRv7NfZFhP+6ZWzIaPYhXh/nQ92B4Rq6ryvL0xDRRSMCSgTpCK/xPuVtE31BQzmYzuw4LovXxXlfKbZ3HLuzarob7xMXj+p+D5TNqkl2vGd0nYjgFE1o4+JLBJLo710ZuuM9IkTNbATx8qBZ5f1Xt5tB3fN/duKzxMWv+cHsjtmZiW0W53vdvs11t1ljfxfM7Ds3xPEZAbLugGNz+xlDBOm4xd+VGA8kmnXH8bTrrrvmLifxN25Oz8uGKvqcie+h6JJ1wQUX5K5fca5HN4sY5E/TcqguoRuYI/FjfU4erzvwV0NEbVvUtMaPp1//+tf5B3H8EIoazJNPPrlZTCFUN4DFj63oU1qEedn28YNv++23zzWC8UMtBpuKCwxR0xN9MeeHbV23ljucddZZuX9j1NxGn+/4wRo/kKOGsjHL3JjH9fxQnhioaWbhsLzdos9v1KDVVffCRWVrgzkR7xMX6KLFRn2fZ3bjAES/7ejTHa/ffffdc3/6OH4ra5bjPeKzxjFdnzjOq2lmNcL1DRTZVMdIbLMI3BHW6jM/TYHWGOdl/H2JmvS4RWiNFh8RwuNvT1H7sSnOmfPPPz+3GojBSGOU9qidj77v0T+8buAHmo7QDTS5uGq/7bbb1tyP5nrRxLA8z20MqBZNBaMGKwaJKascYTmUa6eidmJWtUxz0uQxRl0PMXha1GyXRZPzeP+5qc2KwXKi9jBq7WOk2dn94I8yRDP3qBmvrO0uN6svl3FOzGwbxKBCUWN411131ao9qtvEt3Jbz6oWt+im5mW33nprPoauuuqqGS7YlAeKK5c7fkhHTWgRg1rFvogfxHFsVNZCxQBMDX39Sy+9lNdR+WN8Xvb13Crv4whec1trG+uImskYXX5mNXexTISjqJWLEeXnVHwnRMuYaGIeA1LFeRXNhOu+R4xkHxeUZnVMlvdfuUVEWZz/RSrXzFbOiDAvNaiNIbZZfO/E4GX1XeiqXK4xvwsqv3PrivMgzueip9WK7hURuuPv0Jycl42xH4s4Z+KCU9yitdjjjz+e92kMbnrmmWc2uFxA49KnG2hyMeVRhKCyGB05RmuNkVtD+Up+Za1FhN5oSlwp+uHFj5AYSbzuj57K15Z/sNVdpj4RNqKmN0YAr1xHhLtoejmnoxqXRfPtWF+McB0XGeoaPnx4zXQ0cfEhakpi1OBKUfMcP2TL22lOzGwb1Let43PGNGKV+vXrly8ARI1JTME1q23dFFPTRLnr1mpFn9QYqbdSNEWOvo91t2Vj1VbHSMGh7rEZowo3ROzrjz76qFYf5TgX4vVRezUntW6N8Vmi9i9aEVSen2UxWvLsxPaO7Rp9Z2e2vWO09dh/sUzdfRD344LbrEQIirnG44JR1MrH9qpsWh6i72scC1deeWW9I1NHc+VQPpfifK8U3ylFitAW2yCmT6xU9zhqSrHN4nsnWo7UFdu4/N3R2N8FcQElZmiI77/K76cI9VFTW74YO6+i60x0oalPeZyM8oWXhp6XjbEfG/OciSbzUc5KEb7jnKk7VR7QtNR0A00uAnTUQMWPvKjdiB8oUWMVfc9CTNsTNQgxgFY0jYugGT+u6/7YiB8SEdijL178aItpbuIHXNRGRJ/wqD0IMVBOiHVFsIgfL+WpheprQhlT4MSPm5gnNcpULmPMQxt94+ZGfKaYLzwG3IqmsBG+o2Y0arOjZj9qmsu1EPF5ohY3au+in3s0m40fn9FcMJpPz26aq/qUt0GsMz571PrG+8QP6LjIEP8f0wXFBYEIKlHbWa71CRHGIvTHIHqxHWJaoNhHUZsYP2bLFwzifeKHavQrjOXiB2qsu7HFNGDR9SD2eWzbaLofzWIrWyeEmLYupnaL8jz99NO5j2MErqjRi30RcwHPi/i88aM5Qlr88C1PGRbTUjWkti8G4Iqm0tEcNC68xNRIUYsf/exjnQ0dfK8xxD6O8ymOzbigFcdJnA8x9VwMIBi1ZfVdvKgUx228PkJstGiJcyhqC2P6o3gupl+K4zeO9TjP4viOJuLxOaO1QEzBF9ukcr7t+kTIjgAUF7MiVJT72pZFGaLZeQy4Fa02ouwRKOO7IR6P74ao3YzvjejfG+d3BMQ4lmJ6uYa2VJhb0b82pruLzxDHSGyTmNap3G+6GiJIxndAhOkY2Cy+G+J7IvZjXNCKMRTiYkcR3wUxDWRcAIkpJmP6rPKUYbGdGjLXfUNE2WL/xjkax2W0OIqQH9PHxfEZx2EMsDYn52Vj7MfGPGei1UcsH2WKGvEI4PG3M/7mxfcUUEXVHj4daF5ThsVUK3XVN/1MiOliYtqYuut8+OGHSz/5yU9Kiy22WJ5+ZcCAAbWmigkxpc93vvOdPB1Zjx49SieddFLNdEF1p2d59NFHSzvuuGOexibKt84669SaLiumFjv66KNLSy65ZJ4eqSFffTFF2Oqrr15q3759aemlly4dfvjhM0xL1tApwyrF9DQxHVF8plh3bIPtt9++dO2119aaAiumb/rZz35Ws9yqq66ap/2qnJInxPvHlGj1bfvYX5XOOOOM0rLLLpun4amcPuyuu+7K26xTp055CqlzzjmnZqqtulOMxbKbbbZZ3i+LLLJIaeONNy7dcMMNNc+PHz8+f76Yeipe39Dpw2Y1ZVh909/ElGEnnHBCqXv37rksm2++eemJJ57Ix2LcKsV0Y6eeemqeXi625TLLLJOnX3vzzTdnO2VY3X1bPoYrt8uECRPyPlh88cXz8bz77ruXRo4cmZc7++yzZ/vZP/7449LBBx9cWmKJJfL0b2uvvfYMU0aVpyCKY6CuhkxtNattWd+yMWVcTBMWx8TKK6+cp0B79tlnZ/tdUD7fopxx/sTnifMupmeqOzXTbbfdVtpiiy3yeuIWy8d2jG1X+T71HUNxHvTs2bPeqfUqp3iKYzm+m2IquTjXYrrCwYMHl77++uua5WLaq5iuKaacinLsuuuupffee2+Opgyrb79Uqu9zxLG111575WkQo2wxJeIrr7wyz1OGNeSYndl3dvjDH/6Qt1OcV/GdGsdjfP/GNHON8V0ws2nR7r///nwel9cX++G1116rtcycfMa6pkyZUrryyivz+RlliWMitv16662X99/kyZPn+Lyck/3YFOfMW2+9ladTi3M2zt34Ttp2223ztgWqq038p5qhH2g9YpTYqJl85plnci0TtFRRUxi1Ztdff30aMGBAtYsDAFSRPt0AMA+iKWxd0QQ1uj9UDgQIALRO+nQDwDw499xzc7/P6H8Z02rFoExxi36W1Z6aCgCoPqEbAOZBDM5033335VGfYyC6mHotBn+qO40VANA66dMNAAAABdGnGwAAAAoidAMAAEBBmnWf7unTp6cPP/wwdenSJbVp06baxQEAAKCVKJVKady4calHjx551pIWGbojcBsZFgAAgGp577330nLLLdcyQ3fUcJc/5CKLLFLt4gAAANBKjB07NlcCl3Npiwzd5SblEbiFbgAAAJra7Lo6G0gNAAAACiJ0AwAAQEGEbgAAAChIs+7T3VDTpk1LU6ZMqXYxoNVp3759atu2bbWLAQAAVdOupc+b9tFHH6Wvvvqq2kWBVqtr165pmWWWme0AEwAA0BK16NBdDtxLLbVU6ty5sx/90MQXvSZOnJg++eSTfL979+7VLhIAADS5di25SXk5cHfr1q3axYFWacEFF8z/RvCOc1FTcwAAWpsWO5BauQ931HAD1VM+B42rAABAa9RiQ3eZJuVQXc5BAABasxYfugEAAKBaWmyf7lkZPXp0+uyzz5rkvZZYYom0/PLLN8mgcQcccEB6/PHH8zRNRY3YPmzYsHTcccdVdUT4GKDrsMMOS7feemv68ssv0/PPP5/WXXfd1Bo0ZPuffvrp6c4770wvvPBCvn/QQQfl5eMxAACgabVrjYG7d+8+adKkiU3yfp06dU4jR46Yo+A9NyHpwgsvTGPGjMlBa9FFF02NYYUVVsgBL25l++yzT+rfv3+qpnvuuSeHz4ceeiittNJK+cJGNZ1yyil5X/33v/+teSz+v0+fPmngwIG5rGXx/3HBIPZveZCxol188cX5QgUAAND0Wl3ojhruCNx9+lyfOnfuU+h7TZw4Io0YsX9+z6Jru9988820wQYbpFVXXbXQ94mg2FRhcVafNaaf2myzzWa6zLfffps6dOjQJOXZdttt0znnnJNbG8R81OHBBx9MPXv2zBcGKsXj3/nOd5p0GzbWRRgAAGDOtdo+3RG4u3RZv9BbY4X6bbbZJh1zzDHppJNOSosvvngOdtGEuLJG+rbbbkvXXXddHrQqaspD1Kb++Mc/TksuuWRaZJFF0nbbbZdefPHFWuv+29/+ljbaaKPUqVOnXGO8xx571Lznu+++m372s5/ldZYHw4qa2q5du9Zax+WXX55WXnnlHHJ79+6d/vSnP9V6Pl77xz/+Ma87RrKOCwN33XVXzfPRRHzAgAG5nBFG4/lrrrmm3m0Rn+3oo4/OLRZivfHZy+U96qijcq18fI6ddtopP/7www+njTfeOHXs2DEH9aiVnjp1aq1tG+uL1y222GJp6aWXTldeeWWaMGFCOvjgg1OXLl3SKqusku6+++6Z7p8tttgiN+mvDNjx/0ceeWT64osv0jvvvFPr8QjpYfLkyenEE09Myy67bFpooYXSJptsMkNIj+0dF2xiu8X2+/zzz2d4/7PPPjuXO8p6yCGHpEmTJs2wzXbfffcGH0/lmvr4XHFcrLHGGun+++/P27vc+iIuasT2jm0ay/Tq1SsNGTJkptsIAABaq1Ybupuba6+9Ngezp556Kp177rnp17/+dbrvvvvyc88880zaeeed0w9+8IPcxDyaE4e99947z48cgXH48OFp/fXXT9tvv30OguEf//hHDnLRXDz6RT/wwAM5oIbbb789Lbfccvl9Yp1xq88dd9yRjj322HTCCSekV155JTedjrAaNbqVBg8enMv30ksv5feLkF0ux//+7/+m1157LZdzxIgROcTPrMl4fLYoU5QtyhSfvXIbRfB/7LHH0tChQ9MHH3yQ3ysuKsTFhljvVVddlc4888wZtm2839NPP50D+OGHH563XdSkP/fcc6lfv365v/zEifV3SYj9Eu9R+ZkjPMe23nzzzWsef+utt/LFgnLojtD6xBNPpBtvvDFvl3jP2I9vvPFGfj72dYToWC66DcTr6pb95ptvzoH5rLPOSs8++2wOwb///e/rLWdDj6eY4z5CegT9eP4Pf/hDOvXUU2u9/pJLLskXTuL9R44cmf785z/XXAABAAAqlJqxr7/+Ojqq5n/r+uabb0qvvfZa/rfS8OHD82s22GB4aZttSoXe4j3iveI958TAgQNLu+22W839rbfeurTFFlvUWmajjTYqnXzyyTX3Y/l4Xdl//vOf0iKLLFKaNGlSrdetvPLKpSuuuCL//6abbloaMGDATMvRq1ev0oUXXljrsWuuuaa06KKL1tzfbLPNSoceemitZfbee+9S//79a+7HNvjlL39Zc3/8+PH5sbvvvjvf33XXXUsHH3xwqaGiTFG2SrGN1ltvvVqP/eIXvyj17t27NH369JrHLrvsstLCCy9cmjZtWr3bdurUqaWFFlqodMABB9Q8NmbMmFzeJ554YqZlOvXUU0urrbZa/v9XX301b/tY11lnnVU68MAD8+NXXXVVqVOnTnmfvPvuu6W2bduWPvjgg1rr2X777UuDBg3K/7/vvvvW2o5hn332qbX9Yx8eccQRtZbZZJNNSn379p3r4yn2S7t27fLnLrvvvvvyNrjjjjvy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fpcuhd7mJtQvs8wyNbdFF10013yX7//3v/9NXbp0SXfffXfaYIMNUseOHdOjjz6aa3Z32223tPTSS+dQvtFGG+X5zytNnjw5nXzyyTmoxutWWWWVdNVVV9U8/8orr6Rddtklvz7Wc8ABB9Rqgj9hwoR04IEH5ue7d++ezj///Fl+jmHDhqXBgwenF198MX+GuMVj5dYGUd5Y1yKLLJJ+8IMfpI8//niWoTsuPHz00Uc1jz388MPplFNOySG77O23307vvvtuXj689957ed1du3ZNiy++eH7Pd955p2b5uGBx/PHH5+e7deuWTjrppBmmr2vI547m5ZVN7OOz/vGPf0x77LFH6ty5c1p11VXTXXfdVes1cT8e79SpUy7vtddem18XTdtDfI5dd901LbbYYrkWfc0110z//Oc/Z7nNAQCA+U+rDd3NWYTNs88+O40YMSKts846afz48al///7pgQceSM8//3zaeeedc2CLcFsWwfGGG25Il1xySX7dFVdcUVNrHkFvu+22S+utt1569tln0z333JNDcATWsp///Oc56P71r39N//rXv3LYfe6552Zaxn322SedcMIJOSxG7X3c4rHp06fn8PvFF1/k9d13333prbfeys/NzOabb57at2+fa7fDa6+9lr755pt0yCGHpM8//zyH7RDPR4jddNNN05QpU9JOO+2UL1JEU/PHHnssf97YNt9++21ePgJ0XAi4+uqr88WLKFPdGvU5/dxlccEhtt9LL72U982AAQPy+kOU9/vf/37afffd80WJww47LJ166qm1Xn/kkUfmCyWPPPJIevnll9M555xTq5UDAADQPLTsdskt1K9//eu044471tyPWty+ffvW3D/jjDNyeIza1KOOOiq9/vrr6eabb84Bd4cddsjLrLTSSjXLX3rppTlwn3XWWTWPRRCNWvF4bY8ePXKt+PXXX5+23377/HzUzC633HIzLeOCCy6YQ2I0fY9a+rIoQ4TICJ6x/nDdddflcB59o6OWvq6o6d14441z4N13333zv1tssUWusd9ss83y/RVXXDH/G4E7Ho+yRsCPGudyP/no/x212rFcv379cu30oEGD0p577lnTT/zee++ted+4mDGnn7ssmrxHWUNs17jY8fTTT+fQHxc8evfunc4777z8fPx/tDT4zW9+U/P6uGCy1157pbXXXnuG/QUAADQfarqboQ033LDW/QiHJ554YurTp08OlRF2oza7XNMdA5m1bds2bb311vWuL2pbo5Y4Xle+rb766vm5aLoet6gd3mSTTWoF/QiLcyrKFWG7HLjDGmuskcsdz81qxPByU/L4N+6H+EyVj5eblsdnGjVqVK7pLn+mKPOkSZPy5/n6669z7XvlZ4oLBJXbdl4+d7RAqLxoEM3oP/nkk3w/msrXvbgQFxUqHXPMMenMM8/MtfwxeF7UmAMAAM2P0N0M1R0pOwJ31GxHjWo0pY6QHTWk5WbUUes8KxHaozl6vK7y9sYbb6StttoqzQ8iTEet+wcffJDDdfkCQjl0R0COPtzRTL78maLfe93PFOvYb7/9Ci9vNIevFLXtUfPeUD/+8Y9zs/voWx8tA+JiwO9+97sCSgoAABRJ6G4Bor9yNGeOgbsibEdz7soBw+KxCHzRN7k+66+/fnr11VfzgGAxwFrlLQL+yiuvnEPkU089VfOaL7/8MgfYWenQoUMerKxS1MZHOI5bWfTRjn7lUeM9M9GMPNb3+9//PtdWR6AOUWP86aef5ubw5Wbo5c8UFw2WWmqpGT5TDFAXtxgYrfIzTZ06NQ0fPrzm/tx+7tmJmvLoO18pmtbXFa0BfvrTn6bbb78994+/8sor5+l9AQCApid0twAxCnYEs6jJjWbVUZNbWasaYTqm0frRj36U582O/tRROxz9vMuDdsUgX9EHOcJf1BpH3+aDDz44h+Zomh2DlsWgYv/+979z/+MI+QssMOvDJ9433ivKFSOhx8Bg0ac8LgLEwGIxIFn0c45B3qLGum6z+UpRWx/zdUdtbzS5jubyIYJ45ePlGuZY/xJLLJEHbYva//Jnjmbb77//fl7m2GOPzQPSxTaJkeGPOOKImtHDw9x+7tmJgdPi/WI0+XJ/+/LI7uX+58cdd1zeB1Hu2E7R/D8uWAAAAM1Lqx1ILebQbgnvES644IIcqKM2OIJmhLmxY8fWWubyyy9Pv/jFL3KwjBG/Y97wuB9ioLSoLY/XxQBjEY579eqVB/0qB8wY9KvcDD36SUfNa/SLnpUYCCwuBkTT8AizMZBZhNYYCfzoo4/OTddj/fE+DWk6HeuJ0bzL/bnLIrBHKC335w4xVVcsG58pBkobN25cWnbZZfOAaNG/OsRniH7dcUEiyhHbMFoLVH6uufncsxODvt166615XRdffHEe/C1GLz/88MPzIHAhLnbExZC4QBDljW104YUXztP7AgAATa9Nqe7ExM1IBMtoJhwhqBykyqIJctQSRsCJaaTKYnCxPr17p4mTJjVJGTt36pRGjByZQy7MTIxcHqOnVza7bylmdi4CQEsSLdOi+9vwDTZI63fpUu3iQLP23LhxaYPhw3PXz+g22hzzaKuu6Y7wGyE4mjs3hah5FripK/qmR3/0bt265VYGUaMe07sBAAAtS6sL3SFCsCBMNcUgbzElWPSlj2MxmprHnOEAAEDL0ipDN1Rb9M/WRxsAAFo+o5cDAABAQYRuAAAAKEiLD92V81UDTc85CABAa9Zi+3R36NAhz7384YcfpiWXXDLfb9OmTbWLBa1GzEb47bffpk8//TSfi3EOAgBAa9NiQ3f8yI95gceMGZODN1AdnTt3ziO0xzkJAACtTYsN3SFq1uLH/tSpU9O0adOqXRxoddq2bZvatWunlQkAAK1Wiw7dIX7st2/fPt8AAACgKWnvCQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAABoqaH7gw8+SPvvv3/q1q1bWnDBBdPaa6+dnn322WoXCwAAAOZZu1RFX375Zdp8883Ttttum+6+++605JJLpjfeeCMttthi1SwWAAAANP/Qfc4556SePXuma665puaxFVdcsZpFAgAAgJbRvPyuu+5KG264Ydp7773TUkstldZbb7105ZVXVrNIAAAA0DJqut966610+eWXp+OPPz794he/SM8880w65phjUocOHdLAgQNnWH7y5Mn5VjZ27NgmLjEAwPxl9OjR6bPPPqt2MVq9ESNG5H8nTJyYxqWWqX379qlTp07VLgY0O1UN3dOnT8813WeddVa+HzXdr7zySho6dGi9oXvIkCFp8ODBVSgpAMD8Gbh79+6TJk2aWO2i8P+8NmJEmppapgUWWCBtsvHGgjc0p9DdvXv3tMYaa9R6rE+fPum2226rd/lBgwblWvHKmu7oEw4A0BpFDXcE7j59rk+dO/epdnFatYkTR6QRI/ZPCy3YJ3Vp2zm1NNOmT8yfccqUKUI3NKfQHSOXjxw5stZjr7/+eurVq1e9y3fs2DHfAAD4/0Xg7tJl/WoXg6gNbts5tW3XJbU4LbX6Hlr6QGo/+9nP0pNPPpmbl48aNSr95S9/SX/4wx/SkUceWc1iAQAAQPMP3RtttFG644470g033JDWWmutdMYZZ6SLLrooDRgwoJrFAgAAgObfvDx873vfyzcAAABoaapa0w0AAAAtmdANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAtMXSffvrpqU2bNrVuq6++ejWLBAAAAI2mXaqyNddcM91///0199u1q3qRAAAAoFFUPeFGyF5mmWWqXQwAAABoeX2633jjjdSjR4+00korpQEDBqTRo0dXu0gAAADQ/Gu6N9lkkzRs2LDUu3fvNGbMmDR48OC05ZZbpldeeSV16dJlhuUnT56cb2Vjx45t4hIDAABAMwndu+yyS83/r7POOjmE9+rVK918883pkEMOmWH5IUOG5GAOAAAAzUHVm5dX6tq1a1pttdXSqFGj6n1+0KBB6euvv665vffee01eRgAAAGiWoXv8+PHpzTffTN27d6/3+Y4dO6ZFFlmk1g0AAADmV1UN3SeeeGJ6+OGH0zvvvJMef/zxtMcee6S2bdumfffdt5rFAgAAgObfp/v999/PAfvzzz9PSy65ZNpiiy3Sk08+mf8fAAAAmruqhu4bb7yxmm8PAAAAradPNwAAALQkQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACA+Sl0v/XWW41fEgAAAGhh5ip0r7LKKmnbbbdN119/fZo0aVLjlwoAAABaa+h+7rnn0jrrrJOOP/74tMwyy6TDDjssPf30041fOgAAAGhtoXvddddNF198cfrwww/T1VdfncaMGZO22GKLtNZaa6ULLrggffrpp41fUgAAAGhNA6m1a9cu7bnnnumWW25J55xzTho1alQ68cQTU8+ePdOBBx6YwzgAAAC0VvMUup999tl0xBFHpO7du+ca7gjcb775ZrrvvvtyLfhuu+3WeCUFAACAZqbd3LwoAvY111yTRo4cmfr375+uu+66/O8CC/xfhl9xxRXTsGHD0gorrNDY5QUAAICWXdN9+eWXp/322y+9++676c4770zf+973agJ32VJLLZWuuuqqBq/z7LPPTm3atEnHHXfc3BQJAAAAWkZN9xtvvDHbZTp06JAGDhzYoPU988wz6YorrsgjogMAAECrrumOpuUxeFpd8di11147R+saP358GjBgQLryyivTYostNjfFAQAAgJZT0z1kyJBcM11XNCn/yU9+0uAa7nDkkUem7373u2mHHXZIZ5555iyXnTx5cr6VjR07dg5LDgAAzK0JEydWuwi0AhNa2HE2V6F79OjRebC0unr16pWfa6gbb7wxPffcc7l5eUPD/uDBg+eorAAAwLyZXvo2/ztixIhqF4VW4PX/929LmYJ6rkJ31Gi/9NJLM4xO/uKLL6Zu3bo1aB3vvfdeOvbYY/P0Yp06dWrQawYNGpSOP/74WjXdMSc4AABQnFJpav63U6feqX27hatdHFq4TlM/T2nSO+mrr75KrTZ077vvvumYY45JXbp0SVtttVV+7OGHH84h+oc//GGD1jF8+PD0ySefpPXXX7/msWnTpqVHHnkkXXrppbkZedu2bWu9pmPHjvkGAAA0vQUW6JzatutS7WLQwrWdpnl5OuOMM9I777yTtt9++9Su3f+tYvr06enAAw9MZ511VoPWEa99+eWXaz128MEHp9VXXz2dfPLJMwRuAAAAaBWhO6YDu+mmm3L4jiblCy64YFp77bVzn+6GilrytdZaq9ZjCy20UG6eXvdxAAAAaDWhu2y11VbLNwAAAKCRQnf0vR42bFh64IEHcr/saFpe6d///vfcrDY99NBDc/U6AAAAaDGhOwZMi9Ad82tHU/A2bdo0fskAAACgNYbumF/75ptvTv3792/8EgEAAEALscDcDqS2yiqrNH5pAAAAoLWH7hNOOCFdfPHFqVQqNX6JAAAAoDU3L3/00UfTgw8+mO6+++605pprpvbt29d6/vbbb2+s8gEAAEDrCt1du3ZNe+yxR+OXBgAAAFp76L7mmmsavyQAAADQwsxVn+4wderUdP/996crrrgijRs3Lj/24YcfpvHjxzdm+QAAAKB11XS/++67aeedd06jR49OkydPTjvuuGPq0qVLOuecc/L9oUOHNn5JAQAAoDXUdB977LFpww03TF9++WVacMEFax6Pft4PPPBAY5YPAAAAWldN93/+85/0+OOP5/m6K62wwgrpgw8+aKyyAQAAQOur6Z4+fXqaNm3aDI+///77uZk5AAAAMJehu1+/fumiiy6qud+mTZs8gNppp52W+vfv35jlAwAAgNbVvPz8889PO+20U1pjjTXSpEmT0n777ZfeeOONtMQSS6Qbbrih8UsJAAAArSV0L7fccunFF19MN954Y3rppZdyLfchhxySBgwYUGtgNQAAAGjN2s31C9u1S/vvv3/jlgYAAABae+i+7rrrZvn8gQceOLflAQAAgNYdumOe7kpTpkxJEydOzFOIde7cWegGAACAuR29/Msvv6x1iz7dI0eOTFtssYWB1AAAAGBeQnd9Vl111XT22WfPUAsOAAAArVWjhe7y4GoffvhhY64SAAAAWlef7rvuuqvW/VKplMaMGZMuvfTStPnmmzdW2QAAAKD1he7dd9+91v02bdqkJZdcMm233Xbp/PPPb6yyAQAAQOsL3dOnT2/8kgAAAEAL06h9ugEAAIB5rOk+/vjjG7zsBRdcMDdvAQAAAK0zdD///PP5NmXKlNS7d+/82Ouvv57atm2b1l9//Vp9vQEAAKC1mqvQveuuu6YuXbqka6+9Ni222GL5sS+//DIdfPDBacstt0wnnHBCY5cTAAAAWkef7hihfMiQITWBO8T/n3nmmUYvBwAAgHkJ3WPHjk2ffvrpDI/HY+PGjZubVQIAAECLM1ehe4899shNyW+//fb0/vvv59ttt92WDjnkkLTnnns2fikBAACgtfTpHjp0aDrxxBPTfvvtlwdTyytq1y6H7vPOO6+xywgAAACtJ3R37tw5/f73v88B+80338yPrbzyymmhhRZq7PIBAABA62peXjZmzJh8W3XVVXPgLpVKjVcyAAAAaI2h+/PPP0/bb799Wm211VL//v1z8A7RvNx0YQAAADAPoftnP/tZat++fRo9enRual62zz77pHvuuWduVgkAAAAtzlz16f7Xv/6V7r333rTccsvVejyamb/77ruNVTYAAABofTXdEyZMqFXDXfbFF1+kjh07Nka5AAAAoHWG7i233DJdd911NffbtGmTpk+fns4999y07bbbNmb5AAAAoHU1L49wHQOpPfvss+nbb79NJ510Unr11VdzTfdjjz3W+KUEAACA1lLTvdZaa6XXX389bbHFFmm33XbLzc333HPP9Pzzz+f5ugEAAIC5qOmeMmVK2nnnndPQoUPTqaeeWkypAAAAoDXWdMdUYS+99FIxpQEAAIDW3rx8//33T1dddVXjlwYAAABa+0BqU6dOTVdffXW6//770wYbbJAWWmihWs9fcMEFjVU+AAAAaB2h+6233korrLBCeuWVV9L666+fH4sB1SrF9GEAAADAHIbuVVddNY0ZMyY9+OCD+f4+++yTLrnkkrT00ksXVT4AAABoHX26S6VSrft33313ni4MAAAAaKSB1GYWwgEAAIC5DN3RX7tun219uAEAAKAR+nRHzfZBBx2UOnbsmO9PmjQp/fSnP51h9PLbb799TlYLAAAALdIche6BAwfOMF83AAAA0Aih+5prrpmTxQEAAKBVm6eB1AAAAICZE7oBAACgIEI3AAAAFEToBgAAgJYYui+//PK0zjrrpEUWWSTfNt1003T33XdXs0gAAADQMkL3csstl84+++w0fPjw9Oyzz6btttsu7bbbbunVV1+tZrEAAACg6acMa2y77rprrfu/+c1vcu33k08+mdZcc82qlQsAAACafeiuNG3atHTLLbekCRMm5GbmAAAA0NxVPXS//PLLOWRPmjQpLbzwwumOO+5Ia6yxRr3LTp48Od/Kxo4d24QlBQAAgGY2ennv3r3TCy+8kJ566ql0+OGHp4EDB6bXXnut3mWHDBmSFl100Zpbz549m7y8AAAA0GxCd4cOHdIqq6ySNthggxyq+/btmy6++OJ6lx00aFD6+uuva27vvfdek5cXAAAAmk3z8rqmT59eqwl5pY4dO+YbAAAANAdVDd1Rc73LLruk5ZdfPo0bNy795S9/SQ899FC69957q1ksAAAAaP6h+5NPPkkHHnhgGjNmTO6jvc466+TAveOOO1azWAAAAND8Q/dVV11VzbcHAACAlj2QGgAAALRUQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAALTE0D1kyJC00UYbpS5duqSllloq7b777mnkyJHVLBIAAAC0jND98MMPpyOPPDI9+eST6b777ktTpkxJ/fr1SxMmTKhmsQAAAKBRtEtVdM8999S6P2zY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6eGHH05PPfVUreVPP/30NHjw4CqUFAAAAGb03nvvpeWWWy7NlzXdSyyxRGrbtm36+OOPaz0e95dZZpkZlh80aFAedK1s+vTp6YsvvkjdunVLbdq0aZIyw/xyVa1nz575BF9kkUWqXRyoCucBOA8gOA+olqi/HjduXOrRo8csl6tq6O7QoUPaYIMN0gMPPJB23333miAd94866qgZlu/YsWO+VeratWuTlRfmN/GHxR8XWjvnATgPIDgPqIZFF110tstUNXSHqLkeOHBg2nDDDdPGG2+cLrroojRhwoQ8mjkAAAA0Z1UP3fvss0/69NNP069+9av00UcfpXXXXTfdc889MwyuBgAAAM1N1UN3iKbk9TUnB+oX3SxOO+20GbpbQGviPADnAQTnAfO7qo5eDgAAAC3ZAtUuAAAAALRUQjcAAAAUROgGAACAggjdMJ+47LLL0gorrJA6deqUNtlkk/T000/Pcvlbbrklrb766nn5tddeO/3zn/+s9fxBBx2U2rRpU+u28847F/wpoOnOg1dffTXttddeefk4vmPKyXldJ7TE8+D000+f4e9B/P2AlnIeXHnllWnLLbdMiy22WL7tsMMOMywfw1jFbEndu3dPCy64YF7mjTfeaIJPAkI3zBduuummPGd9jLz53HPPpb59+6addtopffLJJ/Uu//jjj6d99903HXLIIen5559Pu+++e7698sortZaLkD1mzJia2w033NBEnwiKPw8mTpyYVlpppXT22WenZZZZplHWCS3xPAhrrrlmrb8Hjz76aIGfApr2PHjooYfy76IHH3wwPfHEE6lnz56pX79+6YMPPqhZ5txzz02XXHJJGjp0aHrqqafSQgstlNc5adKkJvxktFoxejlQXRtvvHHpyCOPrLk/bdq0Uo8ePUpDhgypd/kf/OAHpe9+97u1Httkk01Khx12WM39gQMHlnbbbbcCSw3VPQ8q9erVq3ThhRc26jqhpZwHp512Wqlv376NXlYoyrx+d0+dOrXUpUuX0rXXXpvvT58+vbTMMsuUzjvvvJplvvrqq1LHjh1LN9xwQwGfAGpT0w1V9u2336bhw4fnZk5lCyywQL4fV2vrE49XLh/iam3d5ePK71JLLZV69+6dDj/88PT5558X9Cmg6c+DaqwTilTkMRvNaHv06JFrxQcMGJBGjx7dCCWG+fM8iBYgU6ZMSYsvvni+//bbb6ePPvqo1joXXXTR3Gzd3wOagtANVfbZZ5+ladOmpaWXXrrW43E//kDUJx6f3fLRtPy6665LDzzwQDrnnHPSww8/nHbZZZf8XtASzoNqrBOKVNQxG8Fi2LBh6Z577kmXX355DiDR/3XcuHGNUGqY/86Dk08+OV9kKofs8uv8PaBa2lXtnYFC/fCHP6z5/xhobZ111kkrr7xyrv3efvvtq1o2AJpOXHAti78FEcJ79eqVbr755jw2CLQkMb7BjTfemH/vxCBsMD9Q0w1VtsQSS6S2bdumjz/+uNbjcX9mg+LE43OyfIgmhfFeo0aNaqSSQ3XPg2qsE4rUVMds165d02qrrebvAS3uPPjtb3+bQ/e//vWvfIGprPw6fw+oFqEbqqxDhw5pgw02yM3Ay6ZPn57vb7rppvW+Jh6vXD7cd999M10+vP/++7lPd0yVAS3hPKjGOqFITXXMjh8/Pr355pv+HtCizoMYnfyMM87I3Sg23HDDWs+tuOKKOVxXrnPs2LF5FHN/D2gSdQZWA6rgxhtvzCNoDhs2rPTaa6+VfvKTn5S6du1a+uijj/LzBxxwQOmUU06pWf6xxx4rtWvXrvTb3/62NGLEiDwybfv27Usvv/xyfn7cuHGlE088sfTEE0+U3n777dL9999fWn/99UurrrpqadKkSVX7nNCY58HkyZNLzz//fL517949H/Px/2+88UaD1wmt4Tw44YQTSg899FD+exB/P3bYYYfSEkssUfrkk0+q8hmhsc+Ds88+u9ShQ4fSrbfeWhozZkzNLX4PVS4T6/jrX/9aeumll/IMLyuuuGLpm2++qcpnpHURumE+8bvf/a60/PLL5z8aMVXGk08+WfPc1ltvnacAq3TzzTeXVltttbz8mmuuWfrHP/5R89zEiRNL/fr1Ky255JI5jMc0MoceeqigQYs6DyJAxLXjurdYrqHrhNZwHuyzzz45kMf6ll122Xx/1KhRTf65oKjzIH7n1HceRKVEWUwb9r//+7+lpZdeOgf67bffvjRy5Mgm/1y0Tm3iP01Tpw4AAACtiz7dAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0A0AK0adMm3XnnndUuRvroo4/SjjvumBZaaKHUtWvXahcHAKpO6Aag1TrooINyWI1bhw4d0iqrrJJ+/etfp6lTp6b51emnn57WXXfdGR4fM2ZM2mWXXVK1XXjhhbksL7zwQnr99derXRwAqLp21S4AAFTTzjvvnK655po0efLk9M9//jMdeeSRqX379mnQoEEzLPvtt9/mcF4NpVIpTZs2babPL7PMMml+8Oabb6YNNtggrbrqqtUuCgDMF9R0A9CqdezYMQfWXr16pcMPPzztsMMO6a677qqpCd99993Tb37zm9SjR4/Uu3fv/PjLL7+ctttuu7Tgggumbt26pZ/85Cdp/PjxNessv27w4MFpySWXTIssskj66U9/mkN7WYT8Y445Ji211FKpU6dOaYsttkjPPPNMzfMPPfRQroG/++67c4iNcl5//fV5nS+++GJNDf2wYcPqbV7e0DL+9re/Td27d8/LxAWHKVOmzHJ7XX755WnllVfOFx9ie/zpT3+qeW6FFVZIt912W7ruuutyeeI9Zubqq69Oa665Zv5c8f5HHXVUzXMXXHBBWnvttXMT9Z49e6YjjjiiVtnffffdtOuuu6bFFlssLxPriQsmZa+88kqu9V944YXT0ksvnQ444ID02Wef1Tx/66235vWXt03s8wkTJszycwPA3BK6AaBCBLHKcPzAAw+kkSNHpvvuuy/9/e9/z+Fsp512yoEvQvItt9yS7r///lqhsfy6ESNG5PB8ww03pNtvvz0H5rKTTjopB9Rrr702Pffcc7lpe6z3iy++qLWeU045JZ199tl5XdFX+oQTTsghM5pwx22fffaZ4TM0tIwPPvhgrpmOf6McEeDLIb4+d9xxRzr22GNzGSLYHnbYYenggw/Orw/xXtFy4Ac/+EEu28UXXzzT4B4BPy4ExMWBuMgRn79sgQUWSJdcckl69dVXc7n+/e9/5+1VFq+NixaPPPJIfv0555yTA3b46quv8sWG9dZbLz377LPpnnvuSR9//HEuU4hy7bvvvulHP/pRzf7Zc889c0sCAChECQBaqYEDB5Z22223/P/Tp08v3XfffaWOHTuWTjzxxJrnl1566dLkyZNrXvOHP/yhtNhii5XGjx9f89g//vGP0gILLFD66KOPal63+OKLlyZMmFCzzOWXX15aeOGFS9OmTcuvbd++fenPf/5zzfPffvttqUePHqVzzz0333/wwQcjBZbuvPPOWmU+7bTTSn379p3hs8Syd9xxxxyVsVevXqWpU6fWLLP33nuX9tlnn5lur80226x06KGH1nosXtO/f/+a+7E9Y92zEp/z1FNPLTXULbfcUurWrVvN/bXXXrt0+umn17vsGWecUerXr1+tx9577728fUaOHFkaPnx4/v933nmnwe8PAPNCTTcArVrUXkctaTTxjibJUXMcg5WVRTPkyn7cUTvat2/f3Ky5bPPNN0/Tp0/PNeJlsUznzp1r7m+66aa5ifR7772Xa5ejGXe8riz6kW+88cZ5/ZU23HDDOf5MDS1j1Ji3bdu25n408/7kk09mud7KMpfXW7fMsxLr//DDD9P2228/02WiVj6eX3bZZVOXLl1y8/DPP/88TZw4MT8fzfLPPPPM/N6nnXZaeumll2peG03vo+Y99mn5tvrqq+fnYrvHdol1x37de++905VXXpm+/PLLBpcfAOaU0A1Aq7btttvmkbbfeOON9M033+TmzJVhtfL/q6HI94+gXyn6YUcwL7r5/qy888476Xvf+15aZ511cvP74cOHp8suuyw/V272/+Mf/zi99dZbOYxH8/K4MPG73/0uPxcXNqK/d+zTylvs36222ipfZIiuAtFXfo011sivi77pb7/9dqGfG4DWS+gGoFWLUBv9iZdffvnUrt3sJ/Xo06dPrk2tHHjrsccey/2QywOthVgmQnzZk08+mWtdY2Cw8kBk8bqyqPmOPtERBGclXjerUcznpIxzKtZbWebyemdX5kpRcx0DrkWf9/pEyI7gf/7556fvfOc7abXVVss143XFdozB6aKvfPQxjxrrsP766+e+4PEesV8rb+ULGHFxIWrJo4/9888/n7dp9FcHgCII3QAwBwYMGJCbog8cODAPJhZNmY8++uhc6xojZZdFrewhhxySXnvttTyydjSDjoHMIvhG+IuR0n/+85/ngb5imUMPPTQ3n47XzEqEyaiVjdrbGJE7BhSb2zLOqShvDLQWA6FFzXGMMh6h98QTT5yj9UTz/QjVMVharCcGkivXVEc4jgsQcT9qs2N09KFDh9Z6/XHHHZfuvffevB3itfH54oJAeZC1GIwuBkuLixjRpDyWjQHf4mLFU089lc4666w8yNro0aNz+T/99NOa1wNAYxO6AWAORD/tCHER7DbaaKP0/e9/P/cRvvTSS2stF4/FXNXRpDn6if/P//xPrb7iMSL5XnvtlYNw1M6OGjUqrzdGHJ+VeE2MEB7N4mM6shgZfW7LOKdiirEYkTymGYv+4FdccUWe43ybbbaZo/XExYCLLroo/f73v8/riebkEb5D9LmOMB8jkq+11lrpz3/+cxoyZEit10d4jnAdQTm2RdSGx7pCTO0Wte+xTL9+/XLf7QjpXbt2zRc8Yvq2GPW8f//++XW//OUv8wWA6M8PAEVoE6OpFbJmAGilYn7qmLqqct5sAKB1UtMNAAAABRG6AQAAoCCalwMAAEBB1HQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEAqxv8HPP6/XVAu5mkAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Import necessary libraries\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "# Note: Suppressing FutureWarnings to maintain a clean output. This is specifically to ignore warnings about\n", + "# deprecated features in the libraries we're using (e.g., 'use_inf_as_na' option in Pandas, used by Seaborn),\n", + "# which we currently have no direct control over. This action is taken to ensure that our output remains\n", + "# focused on relevant information, acknowledging that we rely on external library updates to fully resolve\n", + "# these deprecations. Always consider reviewing and removing this suppression after significant library updates.\n", + "import warnings\n", + "warnings.simplefilter(action='ignore', category=FutureWarning)\n", + "\n", + "# Constants representing the parameters of the model\n", + "ATTACK_RATE = 0.10\n", + "TRACE_SUCCESS = 0.20\n", + "SECONDARY_TRACE_THRESHOLD = 2\n", + "\n", + "def simulate_event(m):\n", + " \"\"\"\n", + " Simulates the infection and tracing process for a series of events.\n", + " \n", + " This function creates a DataFrame representing individuals attending weddings and brunches,\n", + " infects a subset of them based on the ATTACK_RATE, performs primary and secondary contact tracing,\n", + " and calculates the proportions of infections and traced cases that are attributed to weddings.\n", + " \n", + " Parameters:\n", + " - m: Dummy parameter for iteration purposes.\n", + " \n", + " Returns:\n", + " - A tuple containing the proportion of infections and the proportion of traced cases\n", + " that are attributed to weddings.\n", + " \"\"\"\n", + " # Create DataFrame for people at events with initial infection and traced status\n", + " events = ['wedding'] * 200 + ['brunch'] * 800\n", + " ppl = pd.DataFrame({\n", + " 'event': events,\n", + " 'infected': False,\n", + " 'traced': np.nan # Initially setting traced status as NaN\n", + " })\n", + "\n", + " # Explicitly set 'traced' column to nullable boolean type\n", + " ppl['traced'] = ppl['traced'].astype(pd.BooleanDtype())\n", + "\n", + " # Infect a random subset of people\n", + " infected_indices = np.random.choice(ppl.index, size=int(len(ppl) * ATTACK_RATE), replace=False)\n", + " ppl.loc[infected_indices, 'infected'] = True\n", + "\n", + " # Primary contact tracing: randomly decide which infected people get traced\n", + " ppl.loc[ppl['infected'], 'traced'] = np.random.rand(sum(ppl['infected'])) < TRACE_SUCCESS\n", + "\n", + " # Secondary contact tracing based on event attendance\n", + " event_trace_counts = ppl[ppl['traced'] == True]['event'].value_counts()\n", + " events_traced = event_trace_counts[event_trace_counts >= SECONDARY_TRACE_THRESHOLD].index\n", + " ppl.loc[ppl['event'].isin(events_traced) & ppl['infected'], 'traced'] = True\n", + "\n", + " # Calculate proportions of infections and traces attributed to each event type\n", + " ppl['event_type'] = ppl['event'].str[0] # 'w' for wedding, 'b' for brunch\n", + " wedding_infections = sum(ppl['infected'] & (ppl['event_type'] == 'w'))\n", + " brunch_infections = sum(ppl['infected'] & (ppl['event_type'] == 'b'))\n", + " p_wedding_infections = wedding_infections / (wedding_infections + brunch_infections)\n", + "\n", + " wedding_traces = sum(ppl['infected'] & ppl['traced'] & (ppl['event_type'] == 'w'))\n", + " brunch_traces = sum(ppl['infected'] & ppl['traced'] & (ppl['event_type'] == 'b'))\n", + " p_wedding_traces = wedding_traces / (wedding_traces + brunch_traces)\n", + "\n", + " return p_wedding_infections, p_wedding_traces\n", + "\n", + "# Run the simulation 10 times\n", + "results = [simulate_event(m) for m in range(10)]\n", + "props_df = pd.DataFrame(results, columns=[\"Infections\", \"Traces\"])\n", + "\n", + "# Plotting the results\n", + "plt.figure(figsize=(10, 6))\n", + "sns.histplot(props_df['Infections'], color=\"blue\", alpha=0.75, binwidth=0.05, kde=False, label='Infections from Weddings')\n", + "sns.histplot(props_df['Traces'], color=\"red\", alpha=0.75, binwidth=0.05, kde=False, label='Traced to Weddings')\n", + "plt.xlabel(\"Proportion of cases\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Impact of Contact Tracing on Perceived Flu Infection Sources\")\n", + "plt.legend()\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "f6d17b39", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX9JJREFUeJzt3QecFOX9P/CH3kRRULCBxoLYWyzRJPYafxYSjbGgMWqMvetPY++9a2JUNBpr1Kix18Su2PWCXTCAiA3kpO//9X1+/73X3nHAATcc3L3fr9ey7Ozs7DMzO3v7madMq1KpVEoAAABAo2vd+IsEAAAAgtANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A1QsL/+9a9phRVWSO3atUvdunVr6uIwi1q1apVOOeWUpi4Gdey1115pqaWWmuc/E025HvWZNGlSOuaYY9KSSy6ZWrdunXbYYYc59t6ffvpp3rYDBw6cY+8JUCShG5hl8YMofhi9+uqraV734IMPFhKo/vOf/+Qf08sss0y69tpr05///OcZvuaNN95Iu+++e/6x26FDh7TQQgulzTbbLN1www1p8uTJqSjPP/983gbffvttKtLf/va3dMkll8xwvihLfL5mdNtoo40KLW9L8fTTT9farnGS6Ec/+lHac88908cff9zUxZtnlQNkfbf11luv8P151113zdLrr7/++nT++eenX/7yl+nGG29Mhx9+eJN9F8xp999/f/r5z3+eFllkkdS5c+d8HOy8887p4YcfbuqiAfOotk1dAIC5JXRfeeWVjR6844fvlClT0qWXXpqWXXbZGc7/l7/8Jf3+979PPXv2THvssUdabrnl0pgxY9ITTzyR9tlnnzR8+PD0v//7v6mo0H3qqafmkwRF1sjHD+133nknHXbYYdOdb6eddqq1zb7//vt0wAEHpB133DE/Vxbbak744YcfUtu2zf/P5iGHHJJ+/OMfp4kTJ6bXXnstnyj65z//md5+++202GKLpblNnMyKY2xut+uuu6Ztttmm1rSFF144za2efPLJtPjii6eLL754jn8X9OnTJx9vceJnTrvgggvS0UcfnUP38ccfn0P3hx9+mB5//PF02223pa222mqOlwmY9zX/Xw8ATWjkyJH5viEh9sUXX8yBe/31188n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RX4+/h+1yCeffHI+MREnNaLssb/KoqY5+oBHX/gYPK1///65j3wE9FkVzd1jwL243FycJIgAf/7556ftttsuDwQXorVABPIYaT3mj/liWxdxMiO0KtX36WthRo8enUcS/O677/LBCgC0zMDdr2/fVD2DUXOZN3Xu2DFVDR48zwTvCCDR5zRCYDkolD+nffv2S+PG1X/5pyJ07Ng5DR5cNc9sO6grmuXH4HAffvhhPgnTGMfizORINd0AACnlGu4I3Df365f6de7c1MWhEVVVV6fdq6ryPp7Xg2OUPwLwnGyR0dxaCdD83XPPPXlAt7gsWATtaMUQzddnNnA3FqEbAKBCBO41u3Zt6mLANEUAFoJh2qIfd/Ttj5YhcdIomrZH3/OmInQDAADQbOy55575NrdwyTAAAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEJcMAwCAeUhce3jUqFFz7P3iOsfN8brgG220UVp99dXTJZdckpqLvfbaK3377bfp3nvvbfB6L7XUUumwww7LN4ohdAMAwDwUuPv17Zuqx42bY+/ZuWPHVDV4cIOCd6tWrab7/Mknn5xOOeWUNC+IckZ4feONN2ZrOeutt14Ouddcc03NtPj/AQcckG644YYclMvi/x999FH697//neaUV155JXXp0mWOvV9LJHQDAMA8Imq4I3Df3K9f6te5c+HvV1VdnXavqsrv25DQPXz48Jr/33777emkk05KgwcPrpk233zz1fy/VCqlyZMnp7Ztm3ck2XjjjdM999xTa9pTTz2VllxyyfT000/XCt3xeMCAAXO0fAsvvPAcfb+WSJ9uAACYx0TgXrNr18JvMxvse/XqVXNbYIEFcs13+fF//vOf1LVr1/TQQw+ltdZaK3Xo0CE9++yzuWZ3++23Tz179syh/Mc//nF6/PHHay13/Pjx6dhjj81BNV637LLLpuuuu67m+XfeeSdtvfXW+fWxnD322KNWE/yxY8emPffcMz+/6KKLpgsvvHC66zFw4MB06qmnpjfffDOvQ9xiWrm1QZQ3ljX//POnnXfeOX3xxRfTDd1x4mHEiBE105555pl03HHH5ZBd9sknn6TPPvsszx+GDh2al92tW7e00EIL5ff89NNPa+aPExZHHHFEfr579+7pmGOOyScyKjVkvaN5eWUT+1jXv/zlL2nHHXdMnTt3Tsstt1y67777ar0mHsf0jh075vLeeOON+XXRtD3Eemy33XZpwQUXzLXoK620UnrwwQdTSyV0AwAAc0yEzXPOOSdVVVWlVVddNX3//fdpm222SU888UR6/fXX01ZbbZUDW4TbsgiOt956a7rsssvy6/70pz/V1JpH0Ntkk03SGmuskV599dX08MMP5xAcgbXs6KOPzkH3H//4R3r00Udz2H3ttdemWcZddtklHXnkkTksRu193GLalClTcvj9+uuv8/Iee+yx9PHHH+fnpmWDDTZI7dq1y7Xb4b333ks//PBD2meffdJXX32Vw3aI5yPErr/++mnixIlpyy23zCcpoqn5c889l9c3ts2ECRPy/BGg40TA9ddfn09eRJnq1qjP7HqXxQmH2H5vvfVW3je77bZbXn6I8v7yl79MO+ywQz4psf/++6cTTjih1usPPPDAfKLkX//6V3r77bfTueeeW6uVQ0vTvNtyAAAAc5XTTjstbb755jWPoxZ3tdVWq3l8+umn5/AYtakHHXRQev/999Mdd9yRA+5mm22W5/nRj35UM/8VV1yRA/dZZ51VMy2CaNSKx2sXW2yxXCt+8803p0033TQ/HzWzSyyxxDTL2KlTpxwSo+l71NKXRRkiREbwjOWHm266KYfz6BsdtfR1RU3vOuuskwPvrrvumu833HDDXGP/k5/8JD9eeuml830E7pgeZY2AHzXO5X7y0f87arVjvi222CLXTh9//PFpp512qukn/sgjj9S8b5zMmNn1Losm71HWENs1Tna8/PLLOfTHCY++ffum888/Pz8f/4+WBmeeeWbN6+OESf/+/dMqq6wy1f5qidR0AwAAc8zaa69d63GEw6OOOir169cvh8oIu1GbXa7pjoHM2rRpk37+85/Xu7yobY1a4nhd+bbCCivk56LpetyidnjdddetFfQjLM6sKFeE7XLgDiuuuGIudzw3vRHDy03J4z4eh1inyunlpuWxTh9++GGu6S6vU5R53LhxeX2+++67XPteuU5xgqBy287OekcLhMqTBtGMfuTIkflxNJWve3IhTipUOuSQQ9IZZ5yRa/lPPvnkXGPekgndAADAHFN3pOwI3FGzHTWq0ZQ6QnbUkJabUUet8/REaI/m6PG6ytsHH3yQfvazn6W5QYTpqHX/73//m8N1+QRCOXRHQI4+3NFMvrxO0e+97jrFMn7zm98UXt5oDl8patuj5r2hfve73+Vm99G3/u23384nAy6//PLUUgndAABAk4n+ytGcOQbuirAdzbkrBwyLaRH4om9yfdZcc8307rvv5gHBYoC1ylsE/GWWWSaHyJdeeqnmNd98800OsNPTvn37PFhZpaiNj3Act7Loox39yqPGe1qiGXks76qrrsq11RGoQ9QYf/nll7k5fLkZenmd4qTBIossMtU6xQB1cYuB0SrXadKkSWnQoEE1j2d1vWckasqj73ylaFpfV7QG+P3vf5/uvvvu3D/+2muvTS2V0A0AADSZGAU7glnU5Eaz6qjJraxVjTAdl9H67W9/m6+bHf2po3Y4+nmXB+2KQb6iD3KEv6g1jr7Ne++9dw7N0TQ7Bi2LQcWefPLJ3P84Qn7r1tOPQvG+8V5RrhgJPQYGiz7lcRIgBhaLAcmin3MM8hY11nWbzVeK2vq4XnfU9kaT62guHyKIV04v1zDH8nv06JEHbYva//I6R7Ptzz//PM9z6KGH5gHpYpvEyPB/+MMfakYPD7O63jMSA6fF+8Vo8uX+9uWR3cv9zw877LC8D6Lcr732Wm7+HycsWioDqQEAwDwmrp/dXN7noosuyoE6aoMjaEaYGz16dK15rr766vS///u/OVjGiN9xzfB4HGKgtKgtj9fFAGMRjvv06ZMH/SoHzBj0q9wMPfpJR81r9IuenhgILE4GRNPwCLMxkFmE1hgJ/OCDD85N12P58T4NaTody4nRvMv9ucsisEcoLffnDnGprpg31ikGShszZkxafPHF84Bo0b86xDpEv+44IRHliG0YrQUq12tW1ntGYtC3u+66Ky/r0ksvzYO/xejlBxxwQB4ELsTJjjgZEicI5p9//ryNLr744tRStSrVvZhbCxQHdTTRiA9g+UMMALQsURsTTT4HrbVWvj4xzcdrY8aktQYNyk1vo9nuvCCaIEctYQScuIxUWQwu1q9v31Q9btwcK0vnjh1T1eDBOehCfWLk8hg9vbLZfXMxbhrH4szkSDXdAAAwj4jgGwE4mjvPKVH7LHBTKfqmR3/07t2751YGUaMel3ejfkI3AADMQyIAC8E0pRjkLS4JFn3p47MYTc3jmuHUT+gGAACgwaJ/dkvuoz2zjF4OAAAABRG6AQAAoCBCNwAAzKUqr1cNzJvHoD7dAAAwl2nfvn2+9vKwYcPSwgsvnB+3atWqqYsFLUapVEoTJkxIX375ZT4W4xicVUI3AADMZeJHflwXePjw4Tl4A02jc+fOeYT2OCZnldANAABzoahZix/7kyZNSpMnT27q4kCL06ZNm9S2bdvZbmUidAMAwFwqfuy3a9cu34B5k4HUAAAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAANDcQ/c555yTWrVqlQ477LCaaePGjUsHHnhg6t69e5pvvvlS//790xdffFHrdUOGDEnbbrtt6ty5c1pkkUXS0UcfnSZNmtQEawAAAABzYeh+5ZVX0p/+9Ke06qqr1pp++OGHp/vvvz/deeed6ZlnnknDhg1LO+20U83zkydPzoF7woQJ6fnnn0833nhjGjhwYDrppJOaYC0AAABgLgvd33//fdptt93StddemxZccMGa6d9991267rrr0kUXXZQ22WSTtNZaa6Ubbrghh+sXX3wxz/Poo4+m9957L918881p9dVXT1tvvXU6/fTT05VXXpmDOAAAALTo0B3Nx6O2erPNNqs1fdCgQWnixIm1pq+wwgqpd+/e6YUXXsiP436VVVZJPXv2rJlnyy23TKNHj07vvvvuHFwLAAAAmFrb1IRuu+229Nprr+Xm5XWNGDEitW/fPnXr1q3W9AjY8Vx5nsrAXX6+/Ny0jB8/Pt/KIqQDAABAs6npHjp0aDr00EPTLbfckjp27DhH3/vss89OCyywQM1tySWXnKPvDwAAQMvQZKE7mo+PHDkyrbnmmqlt27b5FoOlXXbZZfn/UWMd/bK//fbbWq+L0ct79eqV/x/3dUczLz8uz1Of448/PvcZL9/iBAAAAAA0m9C96aabprfffju98cYbNbe11147D6pW/n+7du3SE088UfOawYMH50uErb/++vlx3McyIryXPfbYY2n++edPK6644jTfu0OHDnmeyhsAAAA0mz7dXbt2TSuvvHKtaV26dMnX5C5P32effdIRRxyRFlpooRyMDz744By011tvvfz8FltskcP1Hnvskc4777zcj/vEE0/Mg7NFsAYAAIAWO5DajFx88cWpdevWqX///nngsxiZ/Kqrrqp5vk2bNumBBx5IBxxwQA7jEdoHDBiQTjvttCYtNwAAAMx1ofvpp5+u9TgGWItrbsdtWvr06ZMefPDBOVA6AAAAmMeu0w0AAADNldANAAAABRG6AQAAoCBCNwAAABRE6AYAAICWMHo5ADRHQ4YMSaNGjWrqYjADVVVV+X5sdXUaM5352rVrl6+wAgANIXQDQMGBu2/ffmncuOqmLgoN9F5VVZo0nedbt26d1l1nHcEbgAYRugGgQFHDHYG7X7+bU+fO/Zq6OExHdXVVqqraPXXp1C91bdO53nkmT6nO802cOFHoBqBBhG4AmAMicHftumZTF4MGaN2mc2rTtmv9T06vChwA6mEgNQAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCtC1qwQAAzdXY6uqmLgKzsL+qqqqmeq5Hjx6pd+/eTVAqoKUQugEAGmhKacI0wxtzr/f///3uu+8+1XMdO3ZOgwdXCd5AYYRuAIAGKpUm5fuOHfumdm3na+ri0EBdJlen9ENV6tfv5tS5c7+a6dXVVamqavc0atQooRsojNANADCTWrfunNq07drUxWAmBzGKwN2165pNXBqgpTGQGgAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAM0xdF999dVp1VVXTfPPP3++rb/++umhhx6qeX7cuHHpwAMPTN27d0/zzTdf6t+/f/riiy9qLWPIkCFp2223TZ07d06LLLJIOvroo9OkSZOaYG0AAABgLgrdSyyxRDrnnHPSoEGD0quvvpo22WSTtP3226d33303P3/44Yen+++/P915553pmWeeScOGDUs77bRTzesnT56cA/eECRPS888/n2688cY0cODAdNJJJzXhWgEAAMD/aZua0HbbbVfr8Zlnnplrv1988cUcyK+77rr0t7/9LYfxcMMNN6R+/frl59dbb7306KOPpvfeey89/vjjqWfPnmn11VdPp59+ejr22GPTKaecktq3b99EawYAAABzUZ/uqLW+7bbb0tixY3Mz86j9njhxYtpss81q5llhhRVS79690wsvvJAfx/0qq6ySA3fZlltumUaPHl1TWw4AAAAtsqY7vP322zlkR//t6Ld9zz33pBVXXDG98cYbuaa6W7duteaPgD1ixIj8/7ivDNzl58vPTcv48ePzrSxCOgAAADS7mu6+ffvmgP3SSy+lAw44IA0YMCA3GS/S2WefnRZYYIGa25JLLlno+wEAANAyNXnojtrsZZddNq211lo5DK+22mrp0ksvTb169coDpH377be15o/Ry+O5EPd1RzMvPy7PU5/jjz8+fffddzW3oUOHFrJuAAAAtGxNHrrrmjJlSm76HSG8Xbt26Yknnqh5bvDgwfkSYdEcPcR9NE8fOXJkzTyPPfZYvvxYNFGflg4dOtRcpqx8AwAAgGbVpztqnLfeeus8ONqYMWPySOVPP/10euSRR3Kz73322ScdccQRaaGFFsrB+OCDD85BO0YuD1tssUUO13vssUc677zzcj/uE088MV/bO4I1AAAAtNjQHTXUe+65Zxo+fHgO2auuumoO3Jtvvnl+/uKLL06tW7dO/fv3z7XfMTL5VVddVfP6Nm3apAceeCD3BY8w3qVLl9wn/LTTTmvCtQIAAIC5IHTHdbinp2PHjunKK6/Mt2np06dPevDBBwsoHQAAADSzPt0AAADQXAjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAAMxNofvjjz9u/JIAAABAMzNLoXvZZZdNG2+8cbr55pvTuHHjGr9UAAAA0FJD92uvvZZWXXXVdMQRR6RevXql/fffP7388suNXzoAAABoaaF79dVXT5deemkaNmxYuv7669Pw4cPThhtumFZeeeV00UUXpS+//LLxSwoAAADzmLaz9eK2bdNOO+2Utt1223TVVVel448/Ph111FHpf//3f9POO++czj333LTooos2XmkBYC4wZMiQNGrUqAbNW1VVle+rq//vnrmXfQTAXBe6X3311VzTfdttt6UuXbrkwL3PPvukzz//PJ166qlp++231+wcgGYXuPv17ZuqZ3JMk6qq3QsrE42rVJrQ1EUAoKWH7mhCfsMNN6TBgwenbbbZJt100035vnXr/2utvvTSS6eBAwempZZaqrHLCwBNKmq4I3Df3K9f6te58wznH1tdnd6rqkpdOvVLrdvMeH6aznOTvkpXjfs0laZMauqiANDSQ/fVV1+dfvvb36a99tprms3HF1lkkXTdddfNbvkAYK4UgXvNrl1nON+YlFJEuK5tOqc2bWc8P03nk8nVTV0EAJqhWQrdH3zwwQznad++fRowYMCsLB4AAABa7ujl0bT8zjvvnGp6TLvxxhsbo1wAAADQMkP32WefnXr06FFvk/KzzjqrMcoFAAAALTN0x8itMVhaXX369MnPAQAAALMYuqNG+6233ppq+ptvvpm6d+/eGOUCAACAlhm6d91113TIIYekp556Kk2ePDnfnnzyyXTooYemX//6141fSgAAAGgpo5effvrp6dNPP02bbrppatv2/xYxZcqUtOeee+rTDQAAALMTuuNyYLfffnsO39GkvFOnTmmVVVbJfboBAACA2QjdZcsvv3y+AQAAAI0UuqMP98CBA9MTTzyRRo4cmZuWV4r+3QAAANDSzVLojgHTInRvu+22aeWVV06tWrVq/JIBAABASwzdt912W7rjjjvSNtts0/glAgAAgJZ8ybAYSG3ZZZdt/NIAAABASw/dRx55ZLr00ktTqVRq/BIBAABAS25e/uyzz6annnoqPfTQQ2mllVZK7dq1q/X83Xff3VjlAwAAgJYVurt165Z23HHHxi8NAAAAtPTQfcMNNzR+SQAAAKCZmaU+3WHSpEnp8ccfT3/605/SmDFj8rRhw4al77//vjHLBwAAAC2rpvuzzz5LW221VRoyZEgaP3582nzzzVPXrl3Tueeemx9fc801jV9SAAAAaAk13Yceemhae+210zfffJM6depUMz36eT/xxBONWT4AAABoWTXd//73v9Pzzz+fr9ddaamllkr//e9/G6tsAAAA0PJquqdMmZImT5481fTPP/88NzMHAAAAZjF0b7HFFumSSy6pedyqVas8gNrJJ5+cttlmm8YsHwAAALSs5uUXXnhh2nLLLdOKK66Yxo0bl37zm9+kDz74IPXo0SPdeuutjV9KAAAAaCmhe4kllkhvvvlmuu2229Jbb72Va7n32WeftNtuu9UaWA0AAABasraz/MK2bdPuu+/euKUBAACAlh66b7rppuk+v+eee85qeQAAAKBlh+64TneliRMnpurq6nwJsc6dOwvdAAAAMKujl3/zzTe1btGne/DgwWnDDTc0kBoAAADMTuiuz3LLLZfOOeecqWrBAQAAoKVqtNBdHlxt2LBhjblIAAAAaFl9uu+7775aj0ulUho+fHi64oor0gYbbNBYZQMAAICWF7p32GGHWo9btWqVFl544bTJJpukCy+8sLHKBgAAAC0vdE+ZMqXxSwIAAADNTKP26QYAAABms6b7iCOOaPC8F1100ay8BQAAALTM0P3666/n28SJE1Pfvn3ztPfffz+1adMmrbnmmrX6egMAAEBLNUuhe7vttktdu3ZNN954Y1pwwQXztG+++Sbtvffe6ac//Wk68sgjG7ucAAAA0DL6dMcI5WeffXZN4A7x/zPOOMPo5QAAADA7oXv06NHpyy+/nGp6TBszZsysLBIAAACanVkK3TvuuGNuSn733Xenzz//PN/+/ve/p3322SfttNNOjV9KAAAAaCl9uq+55pp01FFHpd/85jd5MLW8oLZtc+g+//zzG7uMAAAA0HJCd+fOndNVV12VA/ZHH32Upy2zzDKpS5cujV0+AAAAaFnNy8uGDx+eb8stt1wO3KVSqfFKBgAAAC0xdH/11Vdp0003Tcsvv3zaZpttcvAO0bzc5cIAAABgNkL34Ycfntq1a5eGDBmSm5qX7bLLLunhhx+elUUCAABAszNLfbofffTR9Mgjj6Qlllii1vRoZv7ZZ581VtkAAACg5dV0jx07tlYNd9nXX3+dOnTo0BjlAgAAgJYZun/605+mm266qeZxq1at0pQpU9J5552XNt5448YsHwAAALSs5uURrmMgtVdffTVNmDAhHXPMMendd9/NNd3PPfdc45cSAAAAWkpN98orr5zef//9tOGGG6btt98+Nzffaaed0uuvv56v1w0AAADMQk33xIkT01ZbbZWuueaadMIJJxRTKgAAAGiJNd1xqbC33nqrmNIAAABAS29evvvuu6frrruu8UsDAAAALX0gtUmTJqXrr78+Pf7442mttdZKXbp0qfX8RRdd1FjlAwAAgJYRuj/++OO01FJLpXfeeSetueaaeVoMqFYpLh8GAAAAzGToXm655dLw4cPTU089lR/vsssu6bLLLks9e/YsqnwAAADQMvp0l0qlWo8feuihfLmwWXX22WenH//4x6lr165pkUUWSTvssEMaPHhwrXnGjRuXDjzwwNS9e/c033zzpf79+6cvvvii1jxDhgxJ2267bercuXNeztFHH52bwAMAAMA8N5DatEL4zHrmmWdyoH7xxRfTY489li9HtsUWW9QK8ocffni6//7705133pnnHzZsWL4meNnkyZNz4J4wYUJ6/vnn04033pgGDhyYTjrppNkqGwAAAMzR5uXRX7tun+3Z6cP98MMP13ocYTlqqgcNGpR+9rOfpe+++y6Pkv63v/0tbbLJJnmeG264IfXr1y8H9fXWWy89+uij6b333suDukUz99VXXz2dfvrp6dhjj02nnHJKat++/SyXDwAAAOZY6I6a7b322it16NChpun373//+6lGL7/77rtnqTARssNCCy2U7yN8R+33ZpttVjPPCiuskHr37p1eeOGFHLrjfpVVVqnVr3zLLbdMBxxwQHr33XfTGmusMUtlAQAAgDkaugcMGDDV9boby5QpU9Jhhx2WNthgg7TyyivnaSNGjMg11d26das1bwTseK48T92B3MqPy/PUNX78+HwrGz16dKOtBwAAAMxS6I6m3UWJvt1xKbJnn302FS0GcDv11FMLfx8AAABattkaSK2xHHTQQemBBx7IlyJbYoklaqb36tUrD5D27bff1po/Ri+P58rz1B3NvPy4PE9dxx9/fG7KXr4NHTq0gLUCAACgpWvS0B19xCNw33PPPenJJ59MSy+9dK3n11prrdSuXbv0xBNP1EyLS4rFJcLWX3/9/Dju33777TRy5MiaeWIk9Pnnnz+tuOKK9b5v9EmP5ytvAAAA0KTNy4toUh4jk//jH//I1+ou98FeYIEFUqdOnfL9Pvvsk4444og8uFqE44MPPjgH7RhELcQlxiJc77HHHum8887LyzjxxBPzsssDvgEAAECLC91XX311vt9oo42m6jseo6SHiy++OLVu3Tr1798/D34WI5NfddVVNfO2adMmN02P0cojjMdI6jHg22mnnTaH1wYAAADmotAdzctnpGPHjunKK6/Mt2np06dPevDBBxu5dAAAANAMBlIDAACA5kjoBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABSkbVELBgCAeUFVVVVTF4FG0qNHj9S7d++mLgbUInQDANAiTZgwPDf83H333Zu6KDSSjh07p8GDqwRv5ipCNwAALdKkSd+mlKakpZa6NnXvvmZTF4fZVF1dlaqqdk+jRo0SupmrCN0AALRonTr1TV27Ct1AMQykBgAAAAVR0w0AQItpflzphx8++f/3g9OYMV2aqFTMrnbteqSOHTUnZ+4ldAMA0KyNmjIhN++M/r71+fTTfdOnn87xYtFI2rbumNZeZ3BTFwOmSegGAKBZG1OalKaklE7rsFRapl33mukTJ32Vxo37NHXs2De1aztfk5aRWfPJlOp0YnVVmjhxVFMXBaZJ6AYAoEVYunWn1K9t15rHE6ZUp+qUUufWnVP7iunMQyY1dQFgxgykBgAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAcwzd//rXv9J2222XFltssdSqVat077331nq+VCqlk046KS266KKpU6dOabPNNksffPBBrXm+/vrrtNtuu6X5558/devWLe2zzz7p+++/n8NrAgAAAHNZ6B47dmxabbXV0pVXXlnv8+edd1667LLL0jXXXJNeeuml1KVLl7TlllumcePG1cwTgfvdd99Njz32WHrggQdykN9vv/3m4FoAAABA/dqmJrT11lvnW32ilvuSSy5JJ554Ytp+++3ztJtuuin17Nkz14j/+te/TlVVVenhhx9Or7zySlp77bXzPJdffnnaZptt0gUXXJBr0AEAAKCpzLV9uj/55JM0YsSI3KS8bIEFFkjrrrtueuGFF/LjuI8m5eXAHWL+1q1b55pxAAAAaLE13dMTgTtEzXaleFx+Lu4XWWSRWs+3bds2LbTQQjXz1Gf8+PH5VjZ69OhGLj0AAADMxTXdRTr77LNzrXn5tuSSSzZ1kQAAAGiG5trQ3atXr3z/xRdf1Joej8vPxf3IkSNrPT9p0qQ8onl5nvocf/zx6bvvvqu5DR06tJB1AAAAoGWba0P30ksvnYPzE088UasZePTVXn/99fPjuP/222/ToEGDauZ58skn05QpU3Lf72np0KFDvsRY5Q0AAACaVZ/uuJ72hx9+WGvwtDfeeCP3ye7du3c67LDD0hlnnJGWW265HML/+Mc/5hHJd9hhhzx/v3790lZbbZX23XfffFmxiRMnpoMOOiiPbG7kcgAAAFp06H711VfTxhtvXPP4iCOOyPcDBgxIAwcOTMccc0y+lndcdztqtDfccMN8ibCOHTvWvOaWW27J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fvjhqQZXAwAAgDmpWYTuEE3Jp9WcvDmI5vAnn3zyVM3iad7s95bJfm+Z7PeWyX5vmez3lsl+b7nm+dHLAQAAYG7VuqkLAAAAAM2V0A0AAAAFEboBAACgIEJ3E7ryyivTUkstlTp27JjWXXfd9PLLL093/jvvvDOtsMIKef5VVlklPfjgg7Wej+75MYL7oosumjp16pQ222yz9MEHHxS8FjT1ft9rr71Sq1atat222mqrgteCIvf7u+++m/r375/nj/0Zl0Gc3WXSPPb7KaecMtXxHt8PzLv7/dprr00//elP04ILLphv8be77vz+vre8fe5ve/Pb73fffXe+vHG3bt1Sly5d8tWW/vrXv9aax7HefAndTeT222/P1xePEQxfe+21tNpqq6Utt9wyjRw5st75n3/++bTrrrumffbZJ73++utphx12yLd33nmnZp7zzjsvXXbZZemaa65JL730Uj6gY5njxo2bg2vGnN7vIf4QDx8+vOZ26623zqE1ooj9Xl1dnX70ox+lc845J/Xq1atRlknz2O9hpZVWqnW8P/vsswWuBUXv96effjp/zz/11FPphRdeSEsuuWTaYost0n//+9+aefx9b3n7PPjb3rz2+0ILLZROOOGEvM/feuuttPfee+fbI488UjOPY70Zi9HLmfPWWWed0oEHHljzePLkyaXFFlusdPbZZ9c7/84771zadttta01bd911S/vvv3/+/5QpU0q9evUqnX/++TXPf/vtt6UOHTqUbr311sLWg6bd72HAgAGl7bffvsBSM6f3e6U+ffqULr744kZdJvPufj/55JNLq622WqOXlcYzu8fmpEmTSl27di3deOON+bG/7y1vnwd/2+d+jfF3eI011iideOKJ+f+O9eZNTXcTmDBhQho0aFBuMlLWunXr/DjOftUnplfOH+LMV3n+Tz75JI0YMaLWPAsssEBu6jKtZTLv7/fKs+aLLLJI6tu3bzrggAPSV199VdBaMCf2e1Msk8ZV5D6KpoaLLbZYrhXfbbfd0pAhQxqhxMwt+z1aPEycODHXigV/31vePi/zt7357vdoRv7EE0+kwYMHp5/97Gd5mmO9eRO6m8CoUaPS5MmTU8+ePWtNj8dxsNUnpk9v/vL9zCyTeX+/l5uf3XTTTfnL+9xzz03PPPNM2nrrrfN7MW/u96ZYJo2rqH0UP74GDhyYHn744XT11VfnH2nRN3TMmDGNUGrmhv1+7LHH5pMq5R/e/r63vH0e/G1vnvv9u+++S/PNN19q37592nbbbdPll1+eNt988/ycY715a9vUBQBmz69//eua/8dAa6uuumpaZpll8hnyTTfdtEnLBjSu+NFdFsd6hPA+ffqkO+64I4/9wLwt+vPfdttt+fs7Bmai5e5zf9ubp65du6Y33ngjff/99/mESvQJj1ZLG220UVMXjYKp6W4CPXr0SG3atElffPFFrenxeFqD58T06c1fvp+ZZTLv7/f6xJd3vNeHH37YSCVnTu/3plgmjWtO7aMYBXf55Zd3vDeD/X7BBRfkAPboo4/mgFXm73vL2+f18be9eez3aIK+7LLL5pHLjzzyyPTLX/4ynX322fk5x3rzJnQ3gWhSstZaa+UzXGVTpkzJj9dff/16XxPTK+cPjz32WM38Sy+9dD4gK+cZPXp0HvlwWstk3t/v9fn8889zv6+43ATz5n5vimXSuObUPorako8++sjxPo/v9xix+PTTT8/dBuKSQpX8fW95+7w+/rY3z+/4eM348ePz/x3rzVxTj+TWUt122215NMKBAweW3nvvvdJ+++1X6tatW2nEiBH5+T322KN03HHH1cz/3HPPldq2bVu64IILSlVVVXkE23bt2pXefvvtmnnOOeecvIx//OMfpbfeeiuPern00kuXfvjhhyZZR4rf72PGjCkdddRRpRdeeKH0ySeflB5//PHSmmuuWVpuueVK48aNa7L1ZPb2+/jx40uvv/56vi266KJ5H8f/P/jggwYvk+a534888sjS008/nY/3+H7YbLPNSj169CiNHDmySdaR2d/v8be7ffv2pbvuuqs0fPjwmlt8v1fO4+97y9nn/rY3z/1+1llnlR599NHSRx99lOeP33bxG+/aa6+tmcex3nwJ3U3o8ssvL/Xu3Tt/8cZlB1588cWa537+85/ny0VUuuOOO0rLL798nn+llVYq/fOf/6z1fFxq4I9//GOpZ8+e+Utg0003LQ0ePHiOrQ9zfr9XV1eXtthii9LCCy+cw3hcZmjfffcVvObx/R4/suKcaN1bzNfQZdI89/suu+ySA3ksb/HFF8+PP/zwwzm+XjTefo/v7fr2e5xkLfP3vWXtc3/bm+d+P+GEE0rLLrtsqWPHjqUFF1ywtP766+fgXsmx3ny1in+aurYdAAAAmiN9ugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AaAFaNWqVbr33nubuhhpxIgRafPNN09dunRJ3bp1a+riAEDhhG4AmIa99torh9W4tW/fPi277LLptNNOS5MmTUpzq1NOOSWtvvrqU00fPnx42nrrrVNTu/jii3NZ3njjjfT+++83dXEAoHBti38LAJh3bbXVVumGG25I48ePTw8++GA68MADU7t27dLxxx8/1bwTJkzI4bwplEqlNHny5Gk+36tXrzQ3+Oijj9Jaa62VlltuuaYuCgDMEWq6AWA6OnTokANrnz590gEHHJA222yzdN9999XUhO+www7pzDPPTIsttljq27dvnv7222+nTTbZJHXq1Cl179497bfffun777+vWWb5daeeempaeOGF0/zzz59+//vf59BeFiH/kEMOSYssskjq2LFj2nDDDdMrr7xS8/zTTz+da+AfeuihHGKjnDfffHNe5ptvvllTQz9w4MB6m5c3tIwXXHBBWnTRRfM8ccJh4sSJ091eV199dVpmmWXyyYfYHn/9619rnltqqaXS3//+93TTTTfl8sR7TMv111+fVlpppbxe8f4HHXRQzXMXXXRRWmWVVXIT9SWXXDL94Q9/qFX2zz77LG233XZpwQUXzPPEcuKESdk777yTa/3nm2++1LNnz7THHnukUaNG1Tx/11135eWXt03s87Fjx053vQFgWoRuAJgJEcQqw/ETTzyRBg8enB577LH0wAMP5HC25ZZb5sAXIfnOO+9Mjz/+eK3QWH5dVVVVDs+33npruvvuu3NgLjvmmGNyQL3xxhvTa6+9lpu2x3K//vrrWss57rjj0jnnnJOXFX2ljzzyyBwyowl33HbZZZep1qGhZXzqqadyzXTcRzkiwJdDfH3uueeedOihh+YyRLDdf//90957751fH+K9ouXAzjvvnMt26aWXTjO4R8CPEwFxciBOcsT6l7Vu3Tpddtll6d13383levLJJ/P2KovXxkmLf/3rX/n15557bg7Y4dtvv80nG9ZYY4306quvpocffjh98cUXuUwhyrXrrrum3/72tzX7Z6eddsotCQBglpQAgHoNGDCgtP322+f/T5kypfTYY4+VOnToUDrqqKNqnu/Zs2dp/PjxNa/585//XFpwwQVL33//fc20f/7zn6XWrVuXRowYUfO6hRZaqDR27Niaea6++urSfPPNV5o8eXJ+bbt27Uq33HJLzfMTJkwoLbbYYqXzzjsvP37qqaciBZbuvffeWmU++eSTS6utttpU6xLz3nPPPTNVxj59+pQmTZpUM8+vfvWr0i677DLN7fWTn/yktO+++9aaFq/ZZpttah7H9oxlT0+s5wknnFBqqDvvvLPUvXv3mserrLJK6ZRTTql33tNPP720xRZb1Jo2dOjQvH0GDx5cGjRoUP7/p59+2uD3B4DpUdMNANMRtddRSxpNvKNJctQcx2BlZdEMubIfd9SOrrbaarlZc9kGG2yQpkyZkmvEy2Kezp071zxef/31cxPpoUOH5trlaMYdryuLfuTrrLNOXn6ltddee6bXqaFljBrzNm3a1DyOZt4jR46c7nIry1xebt0yT08sf9iwYWnTTTed5jxRKx/PL7744qlr1665efhXX32Vqqur8/PRLP+MM87I733yySent956q+a10fQ+at5jn5ZvK6ywQn4utntsl1h27Ndf/epX6dprr03ffPNNg8sPAHUJ3QAwHRtvvHEeafuDDz5IP/zwQ27OXBlWK//fFIp8/wj6laIfdgTzopvvT8+nn36afvGLX6RVV101N78fNGhQuvLKK/Nz5Wb/v/vd79LHH3+cw3g0L48TE5dffnl+Lk5sRH/v2KeVt9i/P/vZz/JJhugqEH3lV1xxxfy66Jv+ySefFLreADRfQjcAzCDURn/i3r17p7ZtZ3zRj379+uXa1MqBt5577rncD7k80FqIeSLEl7344ou51jUGBisPRBavK4ua7+gTHUFweuJ10xvFfGbKOLNiuZVlLi93RmWuFDXXMeBa9HmvT4TsCP4XXnhhWm+99dLyyy+fa8briu0Yg9NFX/noYx411mHNNdfMfcHjPWK/Vt7KJzDi5ELUkkcf+9dffz1v0+ivDgCzQugGgEa022675aboAwYMyIOJRVPmgw8+ONe6xkjZZVEru88++6T33nsvj6wdzaBjILMIvhH+YqT0o48+Og/0FfPsu+++ufl0vGZ6IkxGrWzU3saI3DGg2KyWcWZFeWOgtRgILWqOY5TxCL1HHXXUTC0nmu9HqI7B0mI5MZBcuaY6wnGcgIjHUZsdo6Nfc801tV5/2GGHpUceeSRvh3htrF+cECgPshaD0cVgaXESI5qUx7wx4FucrHjppZfSWWedlQdZGzJkSC7/l19+WfN6AJhZQjcANKLopx0hLoLdj3/84/TLX/4y9xG+4ooras0X0+Ja1dGkOfqJ/8///E+tvuIxInn//v1zEI7a2Q8//DAvN0Ycn554TYwQHs3i43JkMTL6rJZxZsUlxmJE8rjMWPQH/9Of/pSvcb7RRhvN1HLiZMAll1ySrrrqqrycaE4e4TtEn+sI8zEi+corr5xuueWWdPbZZ9d6fYTnCNcRlGNbRG14LCvEpd2i9j3m2WKLLXLf7Qjp3bp1yyc84vJtMer5Nttsk1934okn5hMA0Z8fAGZFqxhNbZZeCQDMkrg+dVy6qvK62QBA86SmGwAAAAoidAMAAEBBNC8HAACAgqjpBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAVIz/B+GZIExU75V2AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Import necessary libraries\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "# Note: Suppressing FutureWarnings to maintain a clean output. This is specifically to ignore warnings about\n", + "# deprecated features in the libraries we're using (e.g., 'use_inf_as_na' option in Pandas, used by Seaborn),\n", + "# which we currently have no direct control over. This action is taken to ensure that our output remains\n", + "# focused on relevant information, acknowledging that we rely on external library updates to fully resolve\n", + "# these deprecations. Always consider reviewing and removing this suppression after significant library updates.\n", + "import warnings\n", + "warnings.simplefilter(action='ignore', category=FutureWarning)\n", + "\n", + "# Constants representing the parameters of the model\n", + "ATTACK_RATE = 0.10\n", + "TRACE_SUCCESS = 0.20\n", + "SECONDARY_TRACE_THRESHOLD = 2\n", + "\n", + "\n", + "def simulate_event(m):\n", + " \"\"\"\n", + " Simulates the infection and tracing process for a series of events.\n", + " \n", + " This function creates a DataFrame representing individuals attending weddings and brunches,\n", + " infects a subset of them based on the ATTACK_RATE, performs primary and secondary contact tracing,\n", + " and calculates the proportions of infections and traced cases that are attributed to weddings.\n", + " \n", + " Parameters:\n", + " - m: Dummy parameter for iteration purposes.\n", + " \n", + " Returns:\n", + " - A tuple containing the proportion of infections and the proportion of traced cases\n", + " that are attributed to weddings.\n", + " \"\"\"\n", + " # Create DataFrame for people at events with initial infection and traced status\n", + " events = ['wedding'] * 200 + ['brunch'] * 800\n", + " ppl = pd.DataFrame({\n", + " 'event': events,\n", + " 'infected': False,\n", + " 'traced': np.nan # Initially setting traced status as NaN\n", + " })\n", + "\n", + " # Explicitly set 'traced' column to nullable boolean type\n", + " ppl['traced'] = ppl['traced'].astype(pd.BooleanDtype())\n", + "\n", + " # Infect a random subset of people\n", + " infected_indices = np.random.choice(ppl.index, size=int(len(ppl) * ATTACK_RATE), replace=False)\n", + " ppl.loc[infected_indices, 'infected'] = True\n", + "\n", + " # Primary contact tracing: randomly decide which infected people get traced\n", + " ppl.loc[ppl['infected'], 'traced'] = np.random.rand(sum(ppl['infected'])) < TRACE_SUCCESS\n", + "\n", + " # Secondary contact tracing based on event attendance\n", + " event_trace_counts = ppl[ppl['traced'] == True]['event'].value_counts()\n", + " events_traced = event_trace_counts[event_trace_counts >= SECONDARY_TRACE_THRESHOLD].index\n", + " ppl.loc[ppl['event'].isin(events_traced) & ppl['infected'], 'traced'] = True\n", + "\n", + " # Calculate proportions of infections and traces attributed to each event type\n", + " ppl['event_type'] = ppl['event'].str[0] # 'w' for wedding, 'b' for brunch\n", + " wedding_infections = sum(ppl['infected'] & (ppl['event_type'] == 'w'))\n", + " brunch_infections = sum(ppl['infected'] & (ppl['event_type'] == 'b'))\n", + " p_wedding_infections = wedding_infections / (wedding_infections + brunch_infections)\n", + "\n", + " wedding_traces = sum(ppl['infected'] & ppl['traced'] & (ppl['event_type'] == 'w'))\n", + " brunch_traces = sum(ppl['infected'] & ppl['traced'] & (ppl['event_type'] == 'b'))\n", + " p_wedding_traces = wedding_traces / (wedding_traces + brunch_traces)\n", + "\n", + " return p_wedding_infections, p_wedding_traces\n", + "\n", + "# add a random seed for reproducability of results \n", + "np.random.seed(2026) \n", + "# Run the simulation 1000 times with reproducability\n", + "\n", + "results = [simulate_event(m) for m in range(1000)]\n", + "props_df = pd.DataFrame(results, columns=[\"Infections\", \"Traces\"])\n", + "\n", + "# Plotting the results\n", + "plt.figure(figsize=(10, 6))\n", + "sns.histplot(props_df['Infections'], color=\"blue\", alpha=0.75, binwidth=0.05, kde=False, label='Infections from Weddings')\n", + "sns.histplot(props_df['Traces'], color=\"red\", alpha=0.75, binwidth=0.05, kde=False, label='Traced to Weddings')\n", + "plt.xlabel(\"Proportion of cases\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Impact of Contact Tracing on Perceived Flu Infection Sources\")\n", + "plt.legend()\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, { "cell_type": "markdown", "id": "f418c720", @@ -193,7 +560,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "sampling-env", "language": "python", "name": "python3" }, @@ -207,7 +574,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.0" + "version": "3.11.13" } }, "nbformat": 4,