aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/articles/the-birthday-paradox.md303
-rw-r--r--content/posts/2021-11-11-the-birthday-paradox.md56
-rw-r--r--static/files/articles/birthday-paradox/people-vs-probability.svg1509
-rw-r--r--static/files/articles/birthday-paradox/probability-basics.svg279
4 files changed, 2147 insertions, 0 deletions
diff --git a/content/articles/the-birthday-paradox.md b/content/articles/the-birthday-paradox.md
new file mode 100644
index 0000000..1ab1e07
--- /dev/null
+++ b/content/articles/the-birthday-paradox.md
@@ -0,0 +1,303 @@
+---
+slug: the-birthday-paradox
+title: "The Birthday Paradox"
+
+# date (optional for articles)
+date: "2021-11-11T06:46:00-04:00"
+
+# draft articles are not visible on live site
+draft: true
+
+# show on articles page
+show: true
+
+# uncomment to show table of contents
+toc: true
+
+tables:
+ probs:
+ cols:
+ - id: num_people
+ name: Number of People
+ tip: Number of people in room.
+ - id: probability
+ name: Probability
+ tip: Probability that at least two people in a room with this many people share a birthday.
+ - id: percent
+ name: Percent
+ tip: Probability represented as a percentage.
+ align: right
+ rows:
+ - num_people: 1
+ probability: 0.0
+ percent: 0.00%
+ - num_people: 2
+ probability: 0.00273
+ percent: 0.27%
+ - num_people: 3
+ probability: 0.0082
+ percent: 0.82%
+ - num_people: 4
+ probability: 0.01635
+ percent: 1.64%
+ - num_people: "..."
+ - num_people: 22
+ probability: 0.47569
+ percent: 47.57%
+ - num_people: 23
+ probability: 0.50729
+ percent: 50.73%
+ _css: has-text-weight-bold has-background-info-light
+ - num_people: 24
+ probability: 0.53834
+ percent: 53.83%
+ _css: has-text-weight-bold has-background-info-light
+ - num_people: 25
+ probability: 0.56869
+ percent: 56.87%
+ _css: has-text-weight-bold has-background-info-light
+---
+
+## Introduction
+
+I share my birthday with my mom. Yesterday while talking her on ~~my~~
+her birthday I asked if she had heard of the [Birthday Paradox][bp]
+(also known as the [Birthday Problem][bp]).
+
+The [birthday problem][bp] goes like this:
+
+> How many people have to be in a room before the probability that two
+> people in the room share a birthday is greater than 50%?
+
+Even if you already know the answer, the [birthday problem][bp] is a fun
+puzzle because:
+
+* The answer is counterintuitive (hence the name *birthday paradox*).
+* The solution relies on elements of [combinatorics][], [set theory][],
+ and [probability][].
+* The implications affect security, particularly [cryptographic
+ hash algorithms][hash].
+
+The next section covers the math that you'll need. If you're already
+familiar with [probability][], feel free to skip to [Solving the
+Birthday Problem][solving].
+
+## Probability Crash Course
+
+Before we get started on the solution to the [Birthday Problem][bp],
+here is a brief crash course in [probability][]:
+
+1. The expression `N!`, where `N` is a non-negative integer, is called a
+ [factorial][], and it is means "the product of all the numbers from
+ `N` to `1`". So `5! = 5 × 4 × 3 × 2 × 1 = 120`. To make our lives
+ easier, `0!` is defined to be `1`.
+2. In [probability][], an occurance is called an *event*, and the
+ probability of an *event* `A` is denoted `P(A)`.
+3. The value of a probability is a real number between `0` and `1`,
+ inclusive (written `P(A) ∈ [0, 1]`). Inclusive means that `0` and
+ `1` are valid probabilities, where `0` means "this event is
+ impossible" and `1` means "this event will occur with certainty".
+4. You can convert a probability to a percentage by multiplying by
+ `100` and appending a trailing `%`. So `P(A) = 0.1` means `10%`,
+ `P(A) = 0.2` means `20%`, and so on.
+5. The probability of two [independent][] events `A` and `B` both
+ occurring is written `P(A ⋂ B)` and read as "the [joint
+ probability][] of A and B". The value is calculated as `P(A) ×
+ P(B)`. This pattern of multiplication continues, so the probability
+ of three [independent][] events `A`, `B`, and `C` occurring is `P(A ⋂
+ B ⋂ C) = P(A) × P(B) × P(C)`, and so on. The upside-down U symbols
+ represent an [intersection][intersection].
+6. The probability of an event `A` **not** occurring is written `P(¬A)`
+ and calculated as `1 - P(A)`. This is useful because sometimes it
+ is much easier to calculate the probability that an event will not
+ occur, as we'll see below.
+
+Here's what all chicanery above like visually:
+
+{{< figure
+ src="/files/articles/birthday-paradox/probability-basics.svg"
+ class="image"
+ width=492
+ height=556
+ caption="Visual representation of probability basics."
+>}}
+
+To calculate a [discrete][] (countable) probability, you sum up all the
+matching events, then divide the sum by the total number of possible
+events.
+
+For example, if you put one red marble and three blue marbles in a jar
+and then randomly choose a single marble out of the jar, then the
+probability that you will choose the red marble is:
+
+```
+P(R) = probability of choosing a red marble
+P(R) = number of red marbles / total number of marbles
+P(R) = 1/(1 + 3) = 0.25 = 25%
+```
+
+Here's a more complicated example: Let's say you put 3 red marbles and 5
+blue marbles in a jar, pick a marble from the jar at random, and then
+roll a fair, [6-sided die][die]. What is the probability that you will
+pick a red marble from the jar **and** roll a 5 or a 6 on the [die][]?
+
+```
+P(R) = probability of choosing a red marble
+P(R) = number of red marbles / total number of marbles
+P(R) = 3/(3 + 5) = 0.375 = 37.5%
+
+P(D) = probability of rolling a 5 or a 6 on the die
+P(D) = number of matching die faces / total number of die faces
+P(D) = 2/6 = ~0.333 = ~33.3%
+
+P(R ⋂ D) = P(R) × P(D)
+P(R ⋂ D) = 3/8 × 1/3 = 0.125 = 12.5%
+```
+
+## Solving the Birthday Problem
+
+Let's get back to the problem at hand. I'll save you a bit of time and
+a lot of headache by telling you now that the [birthday problem][bp] is
+one of those pesky probability problems where it easier to calculate the
+opposite; that is, the [probability][] that everyone in the room has a
+*unique* birthday.
+
+Now that that piece of bookkeeping is out of the way, let's get started.
+
+Ff there is one person in the room, then the probability that everyone
+has a unique birthday is `1.0` (`100%`).
+
+```
+P1 = P(one person) = 365/365
+P1 = 1.0 = 100%
+```
+
+If there are two people in the room, the probability that everyone has a
+unique birthday can be calculated by multiplying the probability from
+the previous step by the probability that the second person's birthday
+is not the same as the first person's birthday. Algebraically:
+
+```
+P2 = P(second person has a unique birthday)
+P2 = P1 × 364/365
+P2 = 365/365 × 364/365 = (365 × 364)/(365^2) = 364/365
+P2 = ~0.9972 = 99.7%
+```
+
+When we a third person, a pattern begins to emerge:
+
+```
+P2 = P(third person has a unique birthday)
+P3 = P2 × 363/365
+P3 = 365/365 × 364/365 × 363/365 = (365 × 364 × 363)/(365^3)
+P3 = ~0.9917 = ~99.2%
+```
+
+Do you see the pattern?
+
+The probability that everyone in a room of `N` people has a unique
+birthday is the product of the numbers between `365` and `365 - N`
+(inclusive), divided by `365^N` (365 to the Nth power). In other words:
+
+```
+B(N) = P(everyone in a room of N people has a unique birthday)
+B(N) = 365!/((365 - N)! * 365^N)
+```
+
+At this point you can continue and find a precise algebraic solution,
+but often for discrete propabilities it's convenient to write a script
+to do the work for you.
+
+So I wrote a [Ruby][] script which uses the complement of the algorithm
+derived above to calculate the probability of shared birthdays in a room
+containing `N` for `N ∈ [1, 50]`, and render the results as a table and
+a chart.
+
+The full script a bit unwieldy for this article, but it is available in
+the [GitHub repository for this article][github].
+
+Here is the portion of the script for the derived equasion:
+
+```ruby
+# memoize 365!
+F365 = 365.factorial
+
+#
+# Return the probability that at least one pair of people in a room of N
+# people share a birthday.
+#
+# (This is the formula that we derived in the original article).
+#
+def shared_birthdays(v)
+ 1 - F365 / (365 - v).factorial * (365 ** -v)
+end
+```
+&nbsp;
+
+Below is are the script results with the relevant chart bars and table
+rows highlighted:
+
+{{< figure
+ src="/files/articles/birthday-paradox/people-vs-probability.svg"
+ class="image"
+ width=614
+ height=461
+ caption="Number of People versus Probability of Shared Birthday."
+>}}
+
+{{< table "probs" >}}
+
+So the answer to the birthday problem is as follows: **If there are 23
+people in the room, then the probability of at least one shared birthday
+is greater than 50%**.
+
+## Implications
+
+This result is called the *birthday paradox* is because it doesn't feel
+intuitive. When asked, most people will guess that a much higher
+number of people (50 or 130) are needed before the probability is
+greater than 50%.
+
+*TODO:* segue into hash algorithms.
+
+## Further Reading
+
+* [GitHub repository for the scripts used in this article][github]
+* [The Birthday Problem (Wikipedia)][bp]
+
+[bp]: https://en.wikipedia.org/wiki/Birthday_problem
+ "The birthday problem."
+[combinatorics]: https://en.wikipedia.org/wiki/Combinatorics
+ "The mathematics of counting."
+[set theory]: https://en.wikipedia.org/wiki/Set_theory
+ "The mathematics of sets."
+[probability]: https://en.wikipedia.org/wiki/Probability
+ "The mathematics of determining how likely an event is to occur."
+[hash]: https://en.wikipedia.org/wiki/Cryptographic_hash_function
+ "Cryptographic hash algorithm."
+[intersection]: https://en.wikipedia.org/wiki/Intersection_(set_theory)
+ "Intersection."
+[independent]: https://en.wikipedia.org/wiki/Probability#Independent_events
+ "Independent events in probability theory."
+[discrete]: https://en.wikipedia.org/wiki/Random_variable#Discrete_random_variable
+ "A random value with a countable number of possible values."
+[joint probability]: https://en.wikipedia.org/wiki/Joint_probability_distribution#Coin_flips
+ "Joint probability."
+[die]: https://en.wikipedia.org/wiki/Dice
+ "Dice."
+[factorial]: https://en.wikipedia.org/wiki/Factorial
+ "Factorial unary operator."
+[ruby]: https://ruby-lang.org/
+ "Ruby programming language."
+[csv]: https://en.wikipedia.org/wiki/Comma-separated_values
+ "Comma-separated values."
+[html]: https://en.wikipedia.org/wiki/HTML
+ "HyperText Markup Language"
+[yaml]: https://en.wikipedia.org/wiki/YAML
+ "YAML Ain't a Markup Language"
+[hugo-table-shortcode]: https://github.com/pablotron/hugo-shortcode-table
+ "Table shortcode for Hugo."
+[github]: https://github.com/pablotron/birthday-paradox
+ "GitHub repository for scripts used in this article."
+[solving]: #solving-the-birthday-problem
+ "Solving the Birthday Problem"
diff --git a/content/posts/2021-11-11-the-birthday-paradox.md b/content/posts/2021-11-11-the-birthday-paradox.md
new file mode 100644
index 0000000..df1abd6
--- /dev/null
+++ b/content/posts/2021-11-11-the-birthday-paradox.md
@@ -0,0 +1,56 @@
+---
+slug: the-birthday-paradox
+title: "The Birthday Paradox"
+date: "2021-11-11T06:46:00-04:00"
+draft: true
+---
+> How many people have to be in a room before the probability that two
+> or more people in the room share a birthday is greater than 50%?
+
+This is called the [Birthday Problem][bp], and the solution is known as
+the *birthday paradox*. It is a fun puzzle because:
+
+* The answer is counterintuitive (hence the name *birthday paradox*).
+* The solution relies on elements of [combinatorics][], [set theory][],
+ and [probability][].
+* The implications affect security, particularly [cryptographic
+ hash algorithms][hash].
+
+The explanation started as a blog post but got too long, so I moved it
+to a full article instead. You can read the full article at the
+following link:
+
+[The Birthday Problem][bp]
+
+[bp]: {{< relref "/content/articles/the-birthday-paradox.md" >}}
+ "The birthday problem."
+[combinatorics]: https://en.wikipedia.org/wiki/Combinatorics
+ "The mathematics of counting."
+[set theory]: https://en.wikipedia.org/wiki/Set_theory
+ "The mathematics of sets."
+[probability]: https://en.wikipedia.org/wiki/Probability
+ "The mathematics of determining how likely an event is to occur."
+[hash]: https://en.wikipedia.org/wiki/Cryptographic_hash_function
+ "Cryptographic hash algorithm."
+[intersection]: https://en.wikipedia.org/wiki/Intersection_(set_theory)
+ "Intersection."
+[independent]: https://en.wikipedia.org/wiki/Probability#Independent_events
+ "Independent events in probability theory."
+[discrete]: https://en.wikipedia.org/wiki/Random_variable#Discrete_random_variable
+ "A random value with a countable number of possible values."
+[joint probability]: https://en.wikipedia.org/wiki/Joint_probability_distribution#Coin_flips
+ "Joint probability."
+[die]: https://en.wikipedia.org/wiki/Dice
+ "Dice."
+[factorial]: https://en.wikipedia.org/wiki/Factorial
+ "Factorial unary operator."
+[ruby]: https://ruby-lang.org/
+ "Ruby programming language."
+[csv]: https://en.wikipedia.org/wiki/Comma-separated_values
+ "Comma-separated values."
+[html]: https://en.wikipedia.org/wiki/HTML
+ "HyperText Markup Language"
+[yaml]: https://en.wikipedia.org/wiki/YAML
+ "YAML Ain't a Markup Language"
+[hugo-table-shortcode]: https://github.com/pablotron/hugo-shortcode-table
+ "Table shortcode for Hugo."
diff --git a/static/files/articles/birthday-paradox/people-vs-probability.svg b/static/files/articles/birthday-paradox/people-vs-probability.svg
new file mode 100644
index 0000000..79c01fc
--- /dev/null
+++ b/static/files/articles/birthday-paradox/people-vs-probability.svg
@@ -0,0 +1,1509 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Created with matplotlib (https://matplotlib.org/) -->
+<svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+ <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <cc:Work>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:date>2021-11-11T21:40:19.356436</dc:date>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs>
+ <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
+ </defs>
+ <g id="figure_1">
+ <g id="patch_1">
+ <path d="M 0 345.6
+L 460.8 345.6
+L 460.8 0
+L 0 0
+z
+" style="fill:#ffffff;"/>
+ </g>
+ <g id="axes_1">
+ <g id="patch_2">
+ <path d="M 41.33 303.64
+L 450 303.64
+L 450 24
+L 41.33 24
+z
+" style="fill:#ffffff;"/>
+ </g>
+ <g id="patch_3">
+ <path clip-path="url(#p83f537fc34)" d="M 59.905909 303.64
+L 65.874073 303.64
+L 65.874073 303.64
+L 59.905909 303.64
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_4">
+ <path clip-path="url(#p83f537fc34)" d="M 67.366114 303.64
+L 73.334277 303.64
+L 73.334277 302.890735
+L 67.366114 302.890735
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_5">
+ <path clip-path="url(#p83f537fc34)" d="M 74.826318 303.64
+L 80.794482 303.64
+L 80.794482 301.389461
+L 74.826318 301.389461
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_6">
+ <path clip-path="url(#p83f537fc34)" d="M 82.286522 303.64
+L 88.254686 303.64
+L 88.254686 299.152645
+L 82.286522 299.152645
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_7">
+ <path clip-path="url(#p83f537fc34)" d="M 89.746727 303.64
+L 95.71489 303.64
+L 95.71489 296.19401
+L 89.746727 296.19401
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_8">
+ <path clip-path="url(#p83f537fc34)" d="M 97.206931 303.64
+L 103.175095 303.64
+L 103.175095 292.535513
+L 97.206931 292.535513
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_9">
+ <path clip-path="url(#p83f537fc34)" d="M 104.667136 303.64
+L 110.635299 303.64
+L 110.635299 288.207343
+L 104.667136 288.207343
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_10">
+ <path clip-path="url(#p83f537fc34)" d="M 112.12734 303.64
+L 118.095504 303.64
+L 118.095504 283.23969
+L 112.12734 283.23969
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_11">
+ <path clip-path="url(#p83f537fc34)" d="M 119.587545 303.64
+L 125.555708 303.64
+L 125.555708 277.670979
+L 119.587545 277.670979
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_12">
+ <path clip-path="url(#p83f537fc34)" d="M 127.047749 303.64
+L 133.015913 303.64
+L 133.015913 271.545122
+L 127.047749 271.545122
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_13">
+ <path clip-path="url(#p83f537fc34)" d="M 134.507954 303.64
+L 140.476117 303.64
+L 140.476117 264.903289
+L 134.507954 264.903289
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_14">
+ <path clip-path="url(#p83f537fc34)" d="M 141.968158 303.64
+L 147.936322 303.64
+L 147.936322 257.800369
+L 141.968158 257.800369
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_15">
+ <path clip-path="url(#p83f537fc34)" d="M 149.428363 303.64
+L 155.396526 303.64
+L 155.396526 250.283021
+L 149.428363 250.283021
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_16">
+ <path clip-path="url(#p83f537fc34)" d="M 156.888567 303.64
+L 162.856731 303.64
+L 162.856731 242.40888
+L 156.888567 242.40888
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_17">
+ <path clip-path="url(#p83f537fc34)" d="M 164.348771 303.64
+L 170.316935 303.64
+L 170.316935 234.230093
+L 164.348771 234.230093
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_18">
+ <path clip-path="url(#p83f537fc34)" d="M 171.808976 303.64
+L 177.777139 303.64
+L 177.777139 225.804296
+L 171.808976 225.804296
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_19">
+ <path clip-path="url(#p83f537fc34)" d="M 179.26918 303.64
+L 185.237344 303.64
+L 185.237344 217.186379
+L 179.26918 217.186379
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_20">
+ <path clip-path="url(#p83f537fc34)" d="M 186.729385 303.64
+L 192.697548 303.64
+L 192.697548 208.42849
+L 186.729385 208.42849
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_21">
+ <path clip-path="url(#p83f537fc34)" d="M 194.189589 303.64
+L 200.157753 303.64
+L 200.157753 199.591009
+L 194.189589 199.591009
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_22">
+ <path clip-path="url(#p83f537fc34)" d="M 201.649794 303.64
+L 207.617957 303.64
+L 207.617957 190.720593
+L 201.649794 190.720593
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_23">
+ <path clip-path="url(#p83f537fc34)" d="M 209.109998 303.64
+L 215.078162 303.64
+L 215.078162 181.869389
+L 209.109998 181.869389
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_24">
+ <path clip-path="url(#p83f537fc34)" d="M 216.570203 303.64
+L 222.538366 303.64
+L 222.538366 173.084054
+L 216.570203 173.084054
+z
+" style="fill:#1f77b4;opacity:0.5;"/>
+ </g>
+ <g id="patch_25">
+ <path clip-path="url(#p83f537fc34)" d="M 224.030407 303.64
+L 229.998571 303.64
+L 229.998571 164.411247
+L 224.030407 164.411247
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_26">
+ <path clip-path="url(#p83f537fc34)" d="M 231.490612 303.64
+L 237.458775 303.64
+L 237.458775 155.88939
+L 231.490612 155.88939
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_27">
+ <path clip-path="url(#p83f537fc34)" d="M 238.950816 303.64
+L 244.91898 303.64
+L 244.91898 147.559652
+L 238.950816 147.559652
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_28">
+ <path clip-path="url(#p83f537fc34)" d="M 246.41102 303.64
+L 252.379184 303.64
+L 252.379184 139.449479
+L 246.41102 139.449479
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_29">
+ <path clip-path="url(#p83f537fc34)" d="M 253.871225 303.64
+L 259.839388 303.64
+L 259.839388 131.597295
+L 253.871225 131.597295
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_30">
+ <path clip-path="url(#p83f537fc34)" d="M 261.331429 303.64
+L 267.299593 303.64
+L 267.299593 124.019566
+L 261.331429 124.019566
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_31">
+ <path clip-path="url(#p83f537fc34)" d="M 268.791634 303.64
+L 274.759797 303.64
+L 274.759797 116.746484
+L 268.791634 116.746484
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_32">
+ <path clip-path="url(#p83f537fc34)" d="M 276.251838 303.64
+L 282.220002 303.64
+L 282.220002 109.789026
+L 276.251838 109.789026
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_33">
+ <path clip-path="url(#p83f537fc34)" d="M 283.712043 303.64
+L 289.680206 303.64
+L 289.680206 103.163659
+L 283.712043 103.163659
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_34">
+ <path clip-path="url(#p83f537fc34)" d="M 291.172247 303.64
+L 297.140411 303.64
+L 297.140411 96.881363
+L 291.172247 96.881363
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_35">
+ <path clip-path="url(#p83f537fc34)" d="M 298.632452 303.64
+L 304.600615 303.64
+L 304.600615 90.944881
+L 298.632452 90.944881
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_36">
+ <path clip-path="url(#p83f537fc34)" d="M 306.092656 303.64
+L 312.06082 303.64
+L 312.06082 85.362447
+L 306.092656 85.362447
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_37">
+ <path clip-path="url(#p83f537fc34)" d="M 313.552861 303.64
+L 319.521024 303.64
+L 319.521024 80.128572
+L 313.552861 80.128572
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_38">
+ <path clip-path="url(#p83f537fc34)" d="M 321.013065 303.64
+L 326.981229 303.64
+L 326.981229 75.243257
+L 321.013065 75.243257
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_39">
+ <path clip-path="url(#p83f537fc34)" d="M 328.473269 303.64
+L 334.441433 303.64
+L 334.441433 70.701011
+L 328.473269 70.701011
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_40">
+ <path clip-path="url(#p83f537fc34)" d="M 335.933474 303.64
+L 341.901637 303.64
+L 341.901637 66.493601
+L 335.933474 66.493601
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_41">
+ <path clip-path="url(#p83f537fc34)" d="M 343.393678 303.64
+L 349.361842 303.64
+L 349.361842 62.61005
+L 343.393678 62.61005
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_42">
+ <path clip-path="url(#p83f537fc34)" d="M 350.853883 303.64
+L 356.822046 303.64
+L 356.822046 59.036633
+L 350.853883 59.036633
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_43">
+ <path clip-path="url(#p83f537fc34)" d="M 358.314087 303.64
+L 364.282251 303.64
+L 364.282251 55.765119
+L 358.314087 55.765119
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_44">
+ <path clip-path="url(#p83f537fc34)" d="M 365.774292 303.64
+L 371.742455 303.64
+L 371.742455 52.779038
+L 365.774292 52.779038
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_45">
+ <path clip-path="url(#p83f537fc34)" d="M 373.234496 303.64
+L 379.20266 303.64
+L 379.20266 50.064669
+L 373.234496 50.064669
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_46">
+ <path clip-path="url(#p83f537fc34)" d="M 380.694701 303.64
+L 386.662864 303.64
+L 386.662864 47.605544
+L 380.694701 47.605544
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_47">
+ <path clip-path="url(#p83f537fc34)" d="M 388.154905 303.64
+L 394.123069 303.64
+L 394.123069 45.385195
+L 388.154905 45.385195
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_48">
+ <path clip-path="url(#p83f537fc34)" d="M 395.61511 303.64
+L 401.583273 303.64
+L 401.583273 43.387156
+L 395.61511 43.387156
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_49">
+ <path clip-path="url(#p83f537fc34)" d="M 403.075314 303.64
+L 409.043478 303.64
+L 409.043478 41.597703
+L 403.075314 41.597703
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_50">
+ <path clip-path="url(#p83f537fc34)" d="M 410.535518 303.64
+L 416.503682 303.64
+L 416.503682 40.00037
+L 410.535518 40.00037
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_51">
+ <path clip-path="url(#p83f537fc34)" d="M 417.995723 303.64
+L 423.963886 303.64
+L 423.963886 38.578688
+L 417.995723 38.578688
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="patch_52">
+ <path clip-path="url(#p83f537fc34)" d="M 425.455927 303.64
+L 431.424091 303.64
+L 431.424091 37.31619
+L 425.455927 37.31619
+z
+" style="fill:#ff0000;opacity:0.5;"/>
+ </g>
+ <g id="matplotlib.axis_1">
+ <g id="xtick_1">
+ <g id="line2d_1">
+ <defs>
+ <path d="M 0 0
+L 0 3.5
+" id="mf6d8f5d467" style="stroke:#000000;stroke-width:0.8;"/>
+ </defs>
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="55.429786" xlink:href="#mf6d8f5d467" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_1">
+ <!-- 0 -->
+ <g transform="translate(52.248536 318.238437)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 31.78125 66.40625
+Q 24.171875 66.40625 20.328125 58.90625
+Q 16.5 51.421875 16.5 36.375
+Q 16.5 21.390625 20.328125 13.890625
+Q 24.171875 6.390625 31.78125 6.390625
+Q 39.453125 6.390625 43.28125 13.890625
+Q 47.125 21.390625 47.125 36.375
+Q 47.125 51.421875 43.28125 58.90625
+Q 39.453125 66.40625 31.78125 66.40625
+z
+M 31.78125 74.21875
+Q 44.046875 74.21875 50.515625 64.515625
+Q 56.984375 54.828125 56.984375 36.375
+Q 56.984375 17.96875 50.515625 8.265625
+Q 44.046875 -1.421875 31.78125 -1.421875
+Q 19.53125 -1.421875 13.0625 8.265625
+Q 6.59375 17.96875 6.59375 36.375
+Q 6.59375 54.828125 13.0625 64.515625
+Q 19.53125 74.21875 31.78125 74.21875
+z
+" id="DejaVuSans-48"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="xtick_2">
+ <g id="line2d_2">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="130.031831" xlink:href="#mf6d8f5d467" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_2">
+ <!-- 10 -->
+ <g transform="translate(123.669331 318.238437)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 12.40625 8.296875
+L 28.515625 8.296875
+L 28.515625 63.921875
+L 10.984375 60.40625
+L 10.984375 69.390625
+L 28.421875 72.90625
+L 38.28125 72.90625
+L 38.28125 8.296875
+L 54.390625 8.296875
+L 54.390625 0
+L 12.40625 0
+z
+" id="DejaVuSans-49"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-49"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="xtick_3">
+ <g id="line2d_3">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="204.633876" xlink:href="#mf6d8f5d467" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_3">
+ <!-- 20 -->
+ <g transform="translate(198.271376 318.238437)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 19.1875 8.296875
+L 53.609375 8.296875
+L 53.609375 0
+L 7.328125 0
+L 7.328125 8.296875
+Q 12.9375 14.109375 22.625 23.890625
+Q 32.328125 33.6875 34.8125 36.53125
+Q 39.546875 41.84375 41.421875 45.53125
+Q 43.3125 49.21875 43.3125 52.78125
+Q 43.3125 58.59375 39.234375 62.25
+Q 35.15625 65.921875 28.609375 65.921875
+Q 23.96875 65.921875 18.8125 64.3125
+Q 13.671875 62.703125 7.8125 59.421875
+L 7.8125 69.390625
+Q 13.765625 71.78125 18.9375 73
+Q 24.125 74.21875 28.421875 74.21875
+Q 39.75 74.21875 46.484375 68.546875
+Q 53.21875 62.890625 53.21875 53.421875
+Q 53.21875 48.921875 51.53125 44.890625
+Q 49.859375 40.875 45.40625 35.40625
+Q 44.1875 33.984375 37.640625 27.21875
+Q 31.109375 20.453125 19.1875 8.296875
+z
+" id="DejaVuSans-50"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-50"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="xtick_4">
+ <g id="line2d_4">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="279.23592" xlink:href="#mf6d8f5d467" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_4">
+ <!-- 30 -->
+ <g transform="translate(272.87342 318.238437)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 40.578125 39.3125
+Q 47.65625 37.796875 51.625 33
+Q 55.609375 28.21875 55.609375 21.1875
+Q 55.609375 10.40625 48.1875 4.484375
+Q 40.765625 -1.421875 27.09375 -1.421875
+Q 22.515625 -1.421875 17.65625 -0.515625
+Q 12.796875 0.390625 7.625 2.203125
+L 7.625 11.71875
+Q 11.71875 9.328125 16.59375 8.109375
+Q 21.484375 6.890625 26.8125 6.890625
+Q 36.078125 6.890625 40.9375 10.546875
+Q 45.796875 14.203125 45.796875 21.1875
+Q 45.796875 27.640625 41.28125 31.265625
+Q 36.765625 34.90625 28.71875 34.90625
+L 20.21875 34.90625
+L 20.21875 43.015625
+L 29.109375 43.015625
+Q 36.375 43.015625 40.234375 45.921875
+Q 44.09375 48.828125 44.09375 54.296875
+Q 44.09375 59.90625 40.109375 62.90625
+Q 36.140625 65.921875 28.71875 65.921875
+Q 24.65625 65.921875 20.015625 65.03125
+Q 15.375 64.15625 9.8125 62.3125
+L 9.8125 71.09375
+Q 15.4375 72.65625 20.34375 73.4375
+Q 25.25 74.21875 29.59375 74.21875
+Q 40.828125 74.21875 47.359375 69.109375
+Q 53.90625 64.015625 53.90625 55.328125
+Q 53.90625 49.265625 50.4375 45.09375
+Q 46.96875 40.921875 40.578125 39.3125
+z
+" id="DejaVuSans-51"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-51"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="xtick_5">
+ <g id="line2d_5">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="353.837965" xlink:href="#mf6d8f5d467" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_5">
+ <!-- 40 -->
+ <g transform="translate(347.475465 318.238437)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 37.796875 64.3125
+L 12.890625 25.390625
+L 37.796875 25.390625
+z
+M 35.203125 72.90625
+L 47.609375 72.90625
+L 47.609375 25.390625
+L 58.015625 25.390625
+L 58.015625 17.1875
+L 47.609375 17.1875
+L 47.609375 0
+L 37.796875 0
+L 37.796875 17.1875
+L 4.890625 17.1875
+L 4.890625 26.703125
+z
+" id="DejaVuSans-52"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-52"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="xtick_6">
+ <g id="line2d_6">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="428.440009" xlink:href="#mf6d8f5d467" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_6">
+ <!-- 50 -->
+ <g transform="translate(422.077509 318.238437)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 10.796875 72.90625
+L 49.515625 72.90625
+L 49.515625 64.59375
+L 19.828125 64.59375
+L 19.828125 46.734375
+Q 21.96875 47.46875 24.109375 47.828125
+Q 26.265625 48.1875 28.421875 48.1875
+Q 40.625 48.1875 47.75 41.5
+Q 54.890625 34.8125 54.890625 23.390625
+Q 54.890625 11.625 47.5625 5.09375
+Q 40.234375 -1.421875 26.90625 -1.421875
+Q 22.3125 -1.421875 17.546875 -0.640625
+Q 12.796875 0.140625 7.71875 1.703125
+L 7.71875 11.625
+Q 12.109375 9.234375 16.796875 8.0625
+Q 21.484375 6.890625 26.703125 6.890625
+Q 35.15625 6.890625 40.078125 11.328125
+Q 45.015625 15.765625 45.015625 23.390625
+Q 45.015625 31 40.078125 35.4375
+Q 35.15625 39.890625 26.703125 39.890625
+Q 22.75 39.890625 18.8125 39.015625
+Q 14.890625 38.140625 10.796875 36.28125
+z
+" id="DejaVuSans-53"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-53"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="text_7">
+ <!-- Number of People -->
+ <g transform="translate(200.972031 331.916562)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 9.8125 72.90625
+L 23.09375 72.90625
+L 55.421875 11.921875
+L 55.421875 72.90625
+L 64.984375 72.90625
+L 64.984375 0
+L 51.703125 0
+L 19.390625 60.984375
+L 19.390625 0
+L 9.8125 0
+z
+" id="DejaVuSans-78"/>
+ <path d="M 8.5 21.578125
+L 8.5 54.6875
+L 17.484375 54.6875
+L 17.484375 21.921875
+Q 17.484375 14.15625 20.5 10.265625
+Q 23.53125 6.390625 29.59375 6.390625
+Q 36.859375 6.390625 41.078125 11.03125
+Q 45.3125 15.671875 45.3125 23.6875
+L 45.3125 54.6875
+L 54.296875 54.6875
+L 54.296875 0
+L 45.3125 0
+L 45.3125 8.40625
+Q 42.046875 3.421875 37.71875 1
+Q 33.40625 -1.421875 27.6875 -1.421875
+Q 18.265625 -1.421875 13.375 4.4375
+Q 8.5 10.296875 8.5 21.578125
+z
+M 31.109375 56
+z
+" id="DejaVuSans-117"/>
+ <path d="M 52 44.1875
+Q 55.375 50.25 60.0625 53.125
+Q 64.75 56 71.09375 56
+Q 79.640625 56 84.28125 50.015625
+Q 88.921875 44.046875 88.921875 33.015625
+L 88.921875 0
+L 79.890625 0
+L 79.890625 32.71875
+Q 79.890625 40.578125 77.09375 44.375
+Q 74.3125 48.1875 68.609375 48.1875
+Q 61.625 48.1875 57.5625 43.546875
+Q 53.515625 38.921875 53.515625 30.90625
+L 53.515625 0
+L 44.484375 0
+L 44.484375 32.71875
+Q 44.484375 40.625 41.703125 44.40625
+Q 38.921875 48.1875 33.109375 48.1875
+Q 26.21875 48.1875 22.15625 43.53125
+Q 18.109375 38.875 18.109375 30.90625
+L 18.109375 0
+L 9.078125 0
+L 9.078125 54.6875
+L 18.109375 54.6875
+L 18.109375 46.1875
+Q 21.1875 51.21875 25.484375 53.609375
+Q 29.78125 56 35.6875 56
+Q 41.65625 56 45.828125 52.96875
+Q 50 49.953125 52 44.1875
+z
+" id="DejaVuSans-109"/>
+ <path d="M 48.6875 27.296875
+Q 48.6875 37.203125 44.609375 42.84375
+Q 40.53125 48.484375 33.40625 48.484375
+Q 26.265625 48.484375 22.1875 42.84375
+Q 18.109375 37.203125 18.109375 27.296875
+Q 18.109375 17.390625 22.1875 11.75
+Q 26.265625 6.109375 33.40625 6.109375
+Q 40.53125 6.109375 44.609375 11.75
+Q 48.6875 17.390625 48.6875 27.296875
+z
+M 18.109375 46.390625
+Q 20.953125 51.265625 25.265625 53.625
+Q 29.59375 56 35.59375 56
+Q 45.5625 56 51.78125 48.09375
+Q 58.015625 40.1875 58.015625 27.296875
+Q 58.015625 14.40625 51.78125 6.484375
+Q 45.5625 -1.421875 35.59375 -1.421875
+Q 29.59375 -1.421875 25.265625 0.953125
+Q 20.953125 3.328125 18.109375 8.203125
+L 18.109375 0
+L 9.078125 0
+L 9.078125 75.984375
+L 18.109375 75.984375
+z
+" id="DejaVuSans-98"/>
+ <path d="M 56.203125 29.59375
+L 56.203125 25.203125
+L 14.890625 25.203125
+Q 15.484375 15.921875 20.484375 11.0625
+Q 25.484375 6.203125 34.421875 6.203125
+Q 39.59375 6.203125 44.453125 7.46875
+Q 49.3125 8.734375 54.109375 11.28125
+L 54.109375 2.78125
+Q 49.265625 0.734375 44.1875 -0.34375
+Q 39.109375 -1.421875 33.890625 -1.421875
+Q 20.796875 -1.421875 13.15625 6.1875
+Q 5.515625 13.8125 5.515625 26.8125
+Q 5.515625 40.234375 12.765625 48.109375
+Q 20.015625 56 32.328125 56
+Q 43.359375 56 49.78125 48.890625
+Q 56.203125 41.796875 56.203125 29.59375
+z
+M 47.21875 32.234375
+Q 47.125 39.59375 43.09375 43.984375
+Q 39.0625 48.390625 32.421875 48.390625
+Q 24.90625 48.390625 20.390625 44.140625
+Q 15.875 39.890625 15.1875 32.171875
+z
+" id="DejaVuSans-101"/>
+ <path d="M 41.109375 46.296875
+Q 39.59375 47.171875 37.8125 47.578125
+Q 36.03125 48 33.890625 48
+Q 26.265625 48 22.1875 43.046875
+Q 18.109375 38.09375 18.109375 28.8125
+L 18.109375 0
+L 9.078125 0
+L 9.078125 54.6875
+L 18.109375 54.6875
+L 18.109375 46.1875
+Q 20.953125 51.171875 25.484375 53.578125
+Q 30.03125 56 36.53125 56
+Q 37.453125 56 38.578125 55.875
+Q 39.703125 55.765625 41.0625 55.515625
+z
+" id="DejaVuSans-114"/>
+ <path id="DejaVuSans-32"/>
+ <path d="M 30.609375 48.390625
+Q 23.390625 48.390625 19.1875 42.75
+Q 14.984375 37.109375 14.984375 27.296875
+Q 14.984375 17.484375 19.15625 11.84375
+Q 23.34375 6.203125 30.609375 6.203125
+Q 37.796875 6.203125 41.984375 11.859375
+Q 46.1875 17.53125 46.1875 27.296875
+Q 46.1875 37.015625 41.984375 42.703125
+Q 37.796875 48.390625 30.609375 48.390625
+z
+M 30.609375 56
+Q 42.328125 56 49.015625 48.375
+Q 55.71875 40.765625 55.71875 27.296875
+Q 55.71875 13.875 49.015625 6.21875
+Q 42.328125 -1.421875 30.609375 -1.421875
+Q 18.84375 -1.421875 12.171875 6.21875
+Q 5.515625 13.875 5.515625 27.296875
+Q 5.515625 40.765625 12.171875 48.375
+Q 18.84375 56 30.609375 56
+z
+" id="DejaVuSans-111"/>
+ <path d="M 37.109375 75.984375
+L 37.109375 68.5
+L 28.515625 68.5
+Q 23.6875 68.5 21.796875 66.546875
+Q 19.921875 64.59375 19.921875 59.515625
+L 19.921875 54.6875
+L 34.71875 54.6875
+L 34.71875 47.703125
+L 19.921875 47.703125
+L 19.921875 0
+L 10.890625 0
+L 10.890625 47.703125
+L 2.296875 47.703125
+L 2.296875 54.6875
+L 10.890625 54.6875
+L 10.890625 58.5
+Q 10.890625 67.625 15.140625 71.796875
+Q 19.390625 75.984375 28.609375 75.984375
+z
+" id="DejaVuSans-102"/>
+ <path d="M 19.671875 64.796875
+L 19.671875 37.40625
+L 32.078125 37.40625
+Q 38.96875 37.40625 42.71875 40.96875
+Q 46.484375 44.53125 46.484375 51.125
+Q 46.484375 57.671875 42.71875 61.234375
+Q 38.96875 64.796875 32.078125 64.796875
+z
+M 9.8125 72.90625
+L 32.078125 72.90625
+Q 44.34375 72.90625 50.609375 67.359375
+Q 56.890625 61.8125 56.890625 51.125
+Q 56.890625 40.328125 50.609375 34.8125
+Q 44.34375 29.296875 32.078125 29.296875
+L 19.671875 29.296875
+L 19.671875 0
+L 9.8125 0
+z
+" id="DejaVuSans-80"/>
+ <path d="M 18.109375 8.203125
+L 18.109375 -20.796875
+L 9.078125 -20.796875
+L 9.078125 54.6875
+L 18.109375 54.6875
+L 18.109375 46.390625
+Q 20.953125 51.265625 25.265625 53.625
+Q 29.59375 56 35.59375 56
+Q 45.5625 56 51.78125 48.09375
+Q 58.015625 40.1875 58.015625 27.296875
+Q 58.015625 14.40625 51.78125 6.484375
+Q 45.5625 -1.421875 35.59375 -1.421875
+Q 29.59375 -1.421875 25.265625 0.953125
+Q 20.953125 3.328125 18.109375 8.203125
+z
+M 48.6875 27.296875
+Q 48.6875 37.203125 44.609375 42.84375
+Q 40.53125 48.484375 33.40625 48.484375
+Q 26.265625 48.484375 22.1875 42.84375
+Q 18.109375 37.203125 18.109375 27.296875
+Q 18.109375 17.390625 22.1875 11.75
+Q 26.265625 6.109375 33.40625 6.109375
+Q 40.53125 6.109375 44.609375 11.75
+Q 48.6875 17.390625 48.6875 27.296875
+z
+" id="DejaVuSans-112"/>
+ <path d="M 9.421875 75.984375
+L 18.40625 75.984375
+L 18.40625 0
+L 9.421875 0
+z
+" id="DejaVuSans-108"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-78"/>
+ <use x="74.804688" xlink:href="#DejaVuSans-117"/>
+ <use x="138.183594" xlink:href="#DejaVuSans-109"/>
+ <use x="235.595703" xlink:href="#DejaVuSans-98"/>
+ <use x="299.072266" xlink:href="#DejaVuSans-101"/>
+ <use x="360.595703" xlink:href="#DejaVuSans-114"/>
+ <use x="401.708984" xlink:href="#DejaVuSans-32"/>
+ <use x="433.496094" xlink:href="#DejaVuSans-111"/>
+ <use x="494.677734" xlink:href="#DejaVuSans-102"/>
+ <use x="529.882812" xlink:href="#DejaVuSans-32"/>
+ <use x="561.669922" xlink:href="#DejaVuSans-80"/>
+ <use x="618.347656" xlink:href="#DejaVuSans-101"/>
+ <use x="679.871094" xlink:href="#DejaVuSans-111"/>
+ <use x="741.052734" xlink:href="#DejaVuSans-112"/>
+ <use x="804.529297" xlink:href="#DejaVuSans-108"/>
+ <use x="832.3125" xlink:href="#DejaVuSans-101"/>
+ </g>
+ </g>
+ </g>
+ <g id="matplotlib.axis_2">
+ <g id="ytick_1">
+ <g id="line2d_7">
+ <defs>
+ <path d="M 0 0
+L -3.5 0
+" id="m365e9f4b26" style="stroke:#000000;stroke-width:0.8;"/>
+ </defs>
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="41.33" xlink:href="#m365e9f4b26" y="303.64"/>
+ </g>
+ </g>
+ <g id="text_8">
+ <!-- 0 -->
+ <g transform="translate(31.14875 305.539609)scale(0.05 -0.05)">
+ <use xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="ytick_2">
+ <g id="line2d_8">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="41.33" xlink:href="#m365e9f4b26" y="248.748812"/>
+ </g>
+ </g>
+ <g id="text_9">
+ <!-- 20 -->
+ <g transform="translate(27.9675 250.648422)scale(0.05 -0.05)">
+ <use xlink:href="#DejaVuSans-50"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="ytick_3">
+ <g id="line2d_9">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="41.33" xlink:href="#m365e9f4b26" y="193.857624"/>
+ </g>
+ </g>
+ <g id="text_10">
+ <!-- 40 -->
+ <g transform="translate(27.9675 195.757234)scale(0.05 -0.05)">
+ <use xlink:href="#DejaVuSans-52"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="ytick_4">
+ <g id="line2d_10">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="41.33" xlink:href="#m365e9f4b26" y="138.966437"/>
+ </g>
+ </g>
+ <g id="text_11">
+ <!-- 60 -->
+ <g transform="translate(27.9675 140.866046)scale(0.05 -0.05)">
+ <defs>
+ <path d="M 33.015625 40.375
+Q 26.375 40.375 22.484375 35.828125
+Q 18.609375 31.296875 18.609375 23.390625
+Q 18.609375 15.53125 22.484375 10.953125
+Q 26.375 6.390625 33.015625 6.390625
+Q 39.65625 6.390625 43.53125 10.953125
+Q 47.40625 15.53125 47.40625 23.390625
+Q 47.40625 31.296875 43.53125 35.828125
+Q 39.65625 40.375 33.015625 40.375
+z
+M 52.59375 71.296875
+L 52.59375 62.3125
+Q 48.875 64.0625 45.09375 64.984375
+Q 41.3125 65.921875 37.59375 65.921875
+Q 27.828125 65.921875 22.671875 59.328125
+Q 17.53125 52.734375 16.796875 39.40625
+Q 19.671875 43.65625 24.015625 45.921875
+Q 28.375 48.1875 33.59375 48.1875
+Q 44.578125 48.1875 50.953125 41.515625
+Q 57.328125 34.859375 57.328125 23.390625
+Q 57.328125 12.15625 50.6875 5.359375
+Q 44.046875 -1.421875 33.015625 -1.421875
+Q 20.359375 -1.421875 13.671875 8.265625
+Q 6.984375 17.96875 6.984375 36.375
+Q 6.984375 53.65625 15.1875 63.9375
+Q 23.390625 74.21875 37.203125 74.21875
+Q 40.921875 74.21875 44.703125 73.484375
+Q 48.484375 72.75 52.59375 71.296875
+z
+" id="DejaVuSans-54"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-54"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="ytick_5">
+ <g id="line2d_11">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="41.33" xlink:href="#m365e9f4b26" y="84.075249"/>
+ </g>
+ </g>
+ <g id="text_12">
+ <!-- 80 -->
+ <g transform="translate(27.9675 85.974858)scale(0.05 -0.05)">
+ <defs>
+ <path d="M 31.78125 34.625
+Q 24.75 34.625 20.71875 30.859375
+Q 16.703125 27.09375 16.703125 20.515625
+Q 16.703125 13.921875 20.71875 10.15625
+Q 24.75 6.390625 31.78125 6.390625
+Q 38.8125 6.390625 42.859375 10.171875
+Q 46.921875 13.96875 46.921875 20.515625
+Q 46.921875 27.09375 42.890625 30.859375
+Q 38.875 34.625 31.78125 34.625
+z
+M 21.921875 38.8125
+Q 15.578125 40.375 12.03125 44.71875
+Q 8.5 49.078125 8.5 55.328125
+Q 8.5 64.0625 14.71875 69.140625
+Q 20.953125 74.21875 31.78125 74.21875
+Q 42.671875 74.21875 48.875 69.140625
+Q 55.078125 64.0625 55.078125 55.328125
+Q 55.078125 49.078125 51.53125 44.71875
+Q 48 40.375 41.703125 38.8125
+Q 48.828125 37.15625 52.796875 32.3125
+Q 56.78125 27.484375 56.78125 20.515625
+Q 56.78125 9.90625 50.3125 4.234375
+Q 43.84375 -1.421875 31.78125 -1.421875
+Q 19.734375 -1.421875 13.25 4.234375
+Q 6.78125 9.90625 6.78125 20.515625
+Q 6.78125 27.484375 10.78125 32.3125
+Q 14.796875 37.15625 21.921875 38.8125
+z
+M 18.3125 54.390625
+Q 18.3125 48.734375 21.84375 45.5625
+Q 25.390625 42.390625 31.78125 42.390625
+Q 38.140625 42.390625 41.71875 45.5625
+Q 45.3125 48.734375 45.3125 54.390625
+Q 45.3125 60.0625 41.71875 63.234375
+Q 38.140625 66.40625 31.78125 66.40625
+Q 25.390625 66.40625 21.84375 63.234375
+Q 18.3125 60.0625 18.3125 54.390625
+z
+" id="DejaVuSans-56"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-56"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="ytick_6">
+ <g id="line2d_12">
+ <g>
+ <use style="stroke:#000000;stroke-width:0.8;" x="41.33" xlink:href="#m365e9f4b26" y="29.184061"/>
+ </g>
+ </g>
+ <g id="text_13">
+ <!-- 100 -->
+ <g transform="translate(24.78625 31.08367)scale(0.05 -0.05)">
+ <use xlink:href="#DejaVuSans-49"/>
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
+ </g>
+ </g>
+ </g>
+ <g id="text_14">
+ <!-- Probability of Shared Birthday (%) -->
+ <g transform="translate(18.706563 248.879375)rotate(-90)scale(0.1 -0.1)">
+ <defs>
+ <path d="M 34.28125 27.484375
+Q 23.390625 27.484375 19.1875 25
+Q 14.984375 22.515625 14.984375 16.5
+Q 14.984375 11.71875 18.140625 8.90625
+Q 21.296875 6.109375 26.703125 6.109375
+Q 34.1875 6.109375 38.703125 11.40625
+Q 43.21875 16.703125 43.21875 25.484375
+L 43.21875 27.484375
+z
+M 52.203125 31.203125
+L 52.203125 0
+L 43.21875 0
+L 43.21875 8.296875
+Q 40.140625 3.328125 35.546875 0.953125
+Q 30.953125 -1.421875 24.3125 -1.421875
+Q 15.921875 -1.421875 10.953125 3.296875
+Q 6 8.015625 6 15.921875
+Q 6 25.140625 12.171875 29.828125
+Q 18.359375 34.515625 30.609375 34.515625
+L 43.21875 34.515625
+L 43.21875 35.40625
+Q 43.21875 41.609375 39.140625 45
+Q 35.0625 48.390625 27.6875 48.390625
+Q 23 48.390625 18.546875 47.265625
+Q 14.109375 46.140625 10.015625 43.890625
+L 10.015625 52.203125
+Q 14.9375 54.109375 19.578125 55.046875
+Q 24.21875 56 28.609375 56
+Q 40.484375 56 46.34375 49.84375
+Q 52.203125 43.703125 52.203125 31.203125
+z
+" id="DejaVuSans-97"/>
+ <path d="M 9.421875 54.6875
+L 18.40625 54.6875
+L 18.40625 0
+L 9.421875 0
+z
+M 9.421875 75.984375
+L 18.40625 75.984375
+L 18.40625 64.59375
+L 9.421875 64.59375
+z
+" id="DejaVuSans-105"/>
+ <path d="M 18.3125 70.21875
+L 18.3125 54.6875
+L 36.8125 54.6875
+L 36.8125 47.703125
+L 18.3125 47.703125
+L 18.3125 18.015625
+Q 18.3125 11.328125 20.140625 9.421875
+Q 21.96875 7.515625 27.59375 7.515625
+L 36.8125 7.515625
+L 36.8125 0
+L 27.59375 0
+Q 17.1875 0 13.234375 3.875
+Q 9.28125 7.765625 9.28125 18.015625
+L 9.28125 47.703125
+L 2.6875 47.703125
+L 2.6875 54.6875
+L 9.28125 54.6875
+L 9.28125 70.21875
+z
+" id="DejaVuSans-116"/>
+ <path d="M 32.171875 -5.078125
+Q 28.375 -14.84375 24.75 -17.8125
+Q 21.140625 -20.796875 15.09375 -20.796875
+L 7.90625 -20.796875
+L 7.90625 -13.28125
+L 13.1875 -13.28125
+Q 16.890625 -13.28125 18.9375 -11.515625
+Q 21 -9.765625 23.484375 -3.21875
+L 25.09375 0.875
+L 2.984375 54.6875
+L 12.5 54.6875
+L 29.59375 11.921875
+L 46.6875 54.6875
+L 56.203125 54.6875
+z
+" id="DejaVuSans-121"/>
+ <path d="M 53.515625 70.515625
+L 53.515625 60.890625
+Q 47.90625 63.578125 42.921875 64.890625
+Q 37.9375 66.21875 33.296875 66.21875
+Q 25.25 66.21875 20.875 63.09375
+Q 16.5 59.96875 16.5 54.203125
+Q 16.5 49.359375 19.40625 46.890625
+Q 22.3125 44.4375 30.421875 42.921875
+L 36.375 41.703125
+Q 47.40625 39.59375 52.65625 34.296875
+Q 57.90625 29 57.90625 20.125
+Q 57.90625 9.515625 50.796875 4.046875
+Q 43.703125 -1.421875 29.984375 -1.421875
+Q 24.8125 -1.421875 18.96875 -0.25
+Q 13.140625 0.921875 6.890625 3.21875
+L 6.890625 13.375
+Q 12.890625 10.015625 18.65625 8.296875
+Q 24.421875 6.59375 29.984375 6.59375
+Q 38.421875 6.59375 43.015625 9.90625
+Q 47.609375 13.234375 47.609375 19.390625
+Q 47.609375 24.75 44.3125 27.78125
+Q 41.015625 30.8125 33.5 32.328125
+L 27.484375 33.5
+Q 16.453125 35.6875 11.515625 40.375
+Q 6.59375 45.0625 6.59375 53.421875
+Q 6.59375 63.09375 13.40625 68.65625
+Q 20.21875 74.21875 32.171875 74.21875
+Q 37.3125 74.21875 42.625 73.28125
+Q 47.953125 72.359375 53.515625 70.515625
+z
+" id="DejaVuSans-83"/>
+ <path d="M 54.890625 33.015625
+L 54.890625 0
+L 45.90625 0
+L 45.90625 32.71875
+Q 45.90625 40.484375 42.875 44.328125
+Q 39.84375 48.1875 33.796875 48.1875
+Q 26.515625 48.1875 22.3125 43.546875
+Q 18.109375 38.921875 18.109375 30.90625
+L 18.109375 0
+L 9.078125 0
+L 9.078125 75.984375
+L 18.109375 75.984375
+L 18.109375 46.1875
+Q 21.34375 51.125 25.703125 53.5625
+Q 30.078125 56 35.796875 56
+Q 45.21875 56 50.046875 50.171875
+Q 54.890625 44.34375 54.890625 33.015625
+z
+" id="DejaVuSans-104"/>
+ <path d="M 45.40625 46.390625
+L 45.40625 75.984375
+L 54.390625 75.984375
+L 54.390625 0
+L 45.40625 0
+L 45.40625 8.203125
+Q 42.578125 3.328125 38.25 0.953125
+Q 33.9375 -1.421875 27.875 -1.421875
+Q 17.96875 -1.421875 11.734375 6.484375
+Q 5.515625 14.40625 5.515625 27.296875
+Q 5.515625 40.1875 11.734375 48.09375
+Q 17.96875 56 27.875 56
+Q 33.9375 56 38.25 53.625
+Q 42.578125 51.265625 45.40625 46.390625
+z
+M 14.796875 27.296875
+Q 14.796875 17.390625 18.875 11.75
+Q 22.953125 6.109375 30.078125 6.109375
+Q 37.203125 6.109375 41.296875 11.75
+Q 45.40625 17.390625 45.40625 27.296875
+Q 45.40625 37.203125 41.296875 42.84375
+Q 37.203125 48.484375 30.078125 48.484375
+Q 22.953125 48.484375 18.875 42.84375
+Q 14.796875 37.203125 14.796875 27.296875
+z
+" id="DejaVuSans-100"/>
+ <path d="M 19.671875 34.8125
+L 19.671875 8.109375
+L 35.5 8.109375
+Q 43.453125 8.109375 47.28125 11.40625
+Q 51.125 14.703125 51.125 21.484375
+Q 51.125 28.328125 47.28125 31.5625
+Q 43.453125 34.8125 35.5 34.8125
+z
+M 19.671875 64.796875
+L 19.671875 42.828125
+L 34.28125 42.828125
+Q 41.5 42.828125 45.03125 45.53125
+Q 48.578125 48.25 48.578125 53.8125
+Q 48.578125 59.328125 45.03125 62.0625
+Q 41.5 64.796875 34.28125 64.796875
+z
+M 9.8125 72.90625
+L 35.015625 72.90625
+Q 46.296875 72.90625 52.390625 68.21875
+Q 58.5 63.53125 58.5 54.890625
+Q 58.5 48.1875 55.375 44.234375
+Q 52.25 40.28125 46.1875 39.3125
+Q 53.46875 37.75 57.5 32.78125
+Q 61.53125 27.828125 61.53125 20.40625
+Q 61.53125 10.640625 54.890625 5.3125
+Q 48.25 0 35.984375 0
+L 9.8125 0
+z
+" id="DejaVuSans-66"/>
+ <path d="M 31 75.875
+Q 24.46875 64.65625 21.28125 53.65625
+Q 18.109375 42.671875 18.109375 31.390625
+Q 18.109375 20.125 21.3125 9.0625
+Q 24.515625 -2 31 -13.1875
+L 23.1875 -13.1875
+Q 15.875 -1.703125 12.234375 9.375
+Q 8.59375 20.453125 8.59375 31.390625
+Q 8.59375 42.28125 12.203125 53.3125
+Q 15.828125 64.359375 23.1875 75.875
+z
+" id="DejaVuSans-40"/>
+ <path d="M 72.703125 32.078125
+Q 68.453125 32.078125 66.03125 28.46875
+Q 63.625 24.859375 63.625 18.40625
+Q 63.625 12.0625 66.03125 8.421875
+Q 68.453125 4.78125 72.703125 4.78125
+Q 76.859375 4.78125 79.265625 8.421875
+Q 81.6875 12.0625 81.6875 18.40625
+Q 81.6875 24.8125 79.265625 28.4375
+Q 76.859375 32.078125 72.703125 32.078125
+z
+M 72.703125 38.28125
+Q 80.421875 38.28125 84.953125 32.90625
+Q 89.5 27.546875 89.5 18.40625
+Q 89.5 9.28125 84.9375 3.921875
+Q 80.375 -1.421875 72.703125 -1.421875
+Q 64.890625 -1.421875 60.34375 3.921875
+Q 55.8125 9.28125 55.8125 18.40625
+Q 55.8125 27.59375 60.375 32.9375
+Q 64.9375 38.28125 72.703125 38.28125
+z
+M 22.3125 68.015625
+Q 18.109375 68.015625 15.6875 64.375
+Q 13.28125 60.75 13.28125 54.390625
+Q 13.28125 47.953125 15.671875 44.328125
+Q 18.0625 40.71875 22.3125 40.71875
+Q 26.5625 40.71875 28.96875 44.328125
+Q 31.390625 47.953125 31.390625 54.390625
+Q 31.390625 60.6875 28.953125 64.34375
+Q 26.515625 68.015625 22.3125 68.015625
+z
+M 66.40625 74.21875
+L 74.21875 74.21875
+L 28.609375 -1.421875
+L 20.796875 -1.421875
+z
+M 22.3125 74.21875
+Q 30.03125 74.21875 34.609375 68.875
+Q 39.203125 63.53125 39.203125 54.390625
+Q 39.203125 45.171875 34.640625 39.84375
+Q 30.078125 34.515625 22.3125 34.515625
+Q 14.546875 34.515625 10.03125 39.859375
+Q 5.515625 45.21875 5.515625 54.390625
+Q 5.515625 63.484375 10.046875 68.84375
+Q 14.59375 74.21875 22.3125 74.21875
+z
+" id="DejaVuSans-37"/>
+ <path d="M 8.015625 75.875
+L 15.828125 75.875
+Q 23.140625 64.359375 26.78125 53.3125
+Q 30.421875 42.28125 30.421875 31.390625
+Q 30.421875 20.453125 26.78125 9.375
+Q 23.140625 -1.703125 15.828125 -13.1875
+L 8.015625 -13.1875
+Q 14.5 -2 17.703125 9.0625
+Q 20.90625 20.125 20.90625 31.390625
+Q 20.90625 42.671875 17.703125 53.65625
+Q 14.5 64.65625 8.015625 75.875
+z
+" id="DejaVuSans-41"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-80"/>
+ <use x="58.552734" xlink:href="#DejaVuSans-114"/>
+ <use x="97.416016" xlink:href="#DejaVuSans-111"/>
+ <use x="158.597656" xlink:href="#DejaVuSans-98"/>
+ <use x="222.074219" xlink:href="#DejaVuSans-97"/>
+ <use x="283.353516" xlink:href="#DejaVuSans-98"/>
+ <use x="346.830078" xlink:href="#DejaVuSans-105"/>
+ <use x="374.613281" xlink:href="#DejaVuSans-108"/>
+ <use x="402.396484" xlink:href="#DejaVuSans-105"/>
+ <use x="430.179688" xlink:href="#DejaVuSans-116"/>
+ <use x="469.388672" xlink:href="#DejaVuSans-121"/>
+ <use x="528.568359" xlink:href="#DejaVuSans-32"/>
+ <use x="560.355469" xlink:href="#DejaVuSans-111"/>
+ <use x="621.537109" xlink:href="#DejaVuSans-102"/>
+ <use x="656.742188" xlink:href="#DejaVuSans-32"/>
+ <use x="688.529297" xlink:href="#DejaVuSans-83"/>
+ <use x="752.005859" xlink:href="#DejaVuSans-104"/>
+ <use x="815.384766" xlink:href="#DejaVuSans-97"/>
+ <use x="876.664062" xlink:href="#DejaVuSans-114"/>
+ <use x="915.527344" xlink:href="#DejaVuSans-101"/>
+ <use x="977.050781" xlink:href="#DejaVuSans-100"/>
+ <use x="1040.527344" xlink:href="#DejaVuSans-32"/>
+ <use x="1072.314453" xlink:href="#DejaVuSans-66"/>
+ <use x="1140.917969" xlink:href="#DejaVuSans-105"/>
+ <use x="1168.701172" xlink:href="#DejaVuSans-114"/>
+ <use x="1209.814453" xlink:href="#DejaVuSans-116"/>
+ <use x="1249.023438" xlink:href="#DejaVuSans-104"/>
+ <use x="1312.402344" xlink:href="#DejaVuSans-100"/>
+ <use x="1375.878906" xlink:href="#DejaVuSans-97"/>
+ <use x="1437.158203" xlink:href="#DejaVuSans-121"/>
+ <use x="1496.337891" xlink:href="#DejaVuSans-32"/>
+ <use x="1528.125" xlink:href="#DejaVuSans-40"/>
+ <use x="1567.138672" xlink:href="#DejaVuSans-37"/>
+ <use x="1662.158203" xlink:href="#DejaVuSans-41"/>
+ </g>
+ </g>
+ </g>
+ <g id="patch_53">
+ <path d="M 41.33 303.64
+L 41.33 24
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+ </g>
+ <g id="patch_54">
+ <path d="M 450 303.64
+L 450 24
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+ </g>
+ <g id="patch_55">
+ <path d="M 41.33 303.64
+L 450 303.64
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+ </g>
+ <g id="patch_56">
+ <path d="M 41.33 24
+L 450 24
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+ </g>
+ <g id="text_15">
+ <!-- Number of People vs. Probability of Shared Birthday -->
+ <g transform="translate(128.807031 18)scale(0.09 -0.09)">
+ <defs>
+ <path d="M 2.984375 54.6875
+L 12.5 54.6875
+L 29.59375 8.796875
+L 46.6875 54.6875
+L 56.203125 54.6875
+L 35.6875 0
+L 23.484375 0
+z
+" id="DejaVuSans-118"/>
+ <path d="M 44.28125 53.078125
+L 44.28125 44.578125
+Q 40.484375 46.53125 36.375 47.5
+Q 32.28125 48.484375 27.875 48.484375
+Q 21.1875 48.484375 17.84375 46.4375
+Q 14.5 44.390625 14.5 40.28125
+Q 14.5 37.15625 16.890625 35.375
+Q 19.28125 33.59375 26.515625 31.984375
+L 29.59375 31.296875
+Q 39.15625 29.25 43.1875 25.515625
+Q 47.21875 21.78125 47.21875 15.09375
+Q 47.21875 7.46875 41.1875 3.015625
+Q 35.15625 -1.421875 24.609375 -1.421875
+Q 20.21875 -1.421875 15.453125 -0.5625
+Q 10.6875 0.296875 5.421875 2
+L 5.421875 11.28125
+Q 10.40625 8.6875 15.234375 7.390625
+Q 20.0625 6.109375 24.8125 6.109375
+Q 31.15625 6.109375 34.5625 8.28125
+Q 37.984375 10.453125 37.984375 14.40625
+Q 37.984375 18.0625 35.515625 20.015625
+Q 33.0625 21.96875 24.703125 23.78125
+L 21.578125 24.515625
+Q 13.234375 26.265625 9.515625 29.90625
+Q 5.8125 33.546875 5.8125 39.890625
+Q 5.8125 47.609375 11.28125 51.796875
+Q 16.75 56 26.8125 56
+Q 31.78125 56 36.171875 55.265625
+Q 40.578125 54.546875 44.28125 53.078125
+z
+" id="DejaVuSans-115"/>
+ <path d="M 10.6875 12.40625
+L 21 12.40625
+L 21 0
+L 10.6875 0
+z
+" id="DejaVuSans-46"/>
+ </defs>
+ <use xlink:href="#DejaVuSans-78"/>
+ <use x="74.804688" xlink:href="#DejaVuSans-117"/>
+ <use x="138.183594" xlink:href="#DejaVuSans-109"/>
+ <use x="235.595703" xlink:href="#DejaVuSans-98"/>
+ <use x="299.072266" xlink:href="#DejaVuSans-101"/>
+ <use x="360.595703" xlink:href="#DejaVuSans-114"/>
+ <use x="401.708984" xlink:href="#DejaVuSans-32"/>
+ <use x="433.496094" xlink:href="#DejaVuSans-111"/>
+ <use x="494.677734" xlink:href="#DejaVuSans-102"/>
+ <use x="529.882812" xlink:href="#DejaVuSans-32"/>
+ <use x="561.669922" xlink:href="#DejaVuSans-80"/>
+ <use x="618.347656" xlink:href="#DejaVuSans-101"/>
+ <use x="679.871094" xlink:href="#DejaVuSans-111"/>
+ <use x="741.052734" xlink:href="#DejaVuSans-112"/>
+ <use x="804.529297" xlink:href="#DejaVuSans-108"/>
+ <use x="832.3125" xlink:href="#DejaVuSans-101"/>
+ <use x="893.835938" xlink:href="#DejaVuSans-32"/>
+ <use x="925.623047" xlink:href="#DejaVuSans-118"/>
+ <use x="984.802734" xlink:href="#DejaVuSans-115"/>
+ <use x="1036.902344" xlink:href="#DejaVuSans-46"/>
+ <use x="1068.689453" xlink:href="#DejaVuSans-32"/>
+ <use x="1100.476562" xlink:href="#DejaVuSans-80"/>
+ <use x="1159.029297" xlink:href="#DejaVuSans-114"/>
+ <use x="1197.892578" xlink:href="#DejaVuSans-111"/>
+ <use x="1259.074219" xlink:href="#DejaVuSans-98"/>
+ <use x="1322.550781" xlink:href="#DejaVuSans-97"/>
+ <use x="1383.830078" xlink:href="#DejaVuSans-98"/>
+ <use x="1447.306641" xlink:href="#DejaVuSans-105"/>
+ <use x="1475.089844" xlink:href="#DejaVuSans-108"/>
+ <use x="1502.873047" xlink:href="#DejaVuSans-105"/>
+ <use x="1530.65625" xlink:href="#DejaVuSans-116"/>
+ <use x="1569.865234" xlink:href="#DejaVuSans-121"/>
+ <use x="1629.044922" xlink:href="#DejaVuSans-32"/>
+ <use x="1660.832031" xlink:href="#DejaVuSans-111"/>
+ <use x="1722.013672" xlink:href="#DejaVuSans-102"/>
+ <use x="1757.21875" xlink:href="#DejaVuSans-32"/>
+ <use x="1789.005859" xlink:href="#DejaVuSans-83"/>
+ <use x="1852.482422" xlink:href="#DejaVuSans-104"/>
+ <use x="1915.861328" xlink:href="#DejaVuSans-97"/>
+ <use x="1977.140625" xlink:href="#DejaVuSans-114"/>
+ <use x="2016.003906" xlink:href="#DejaVuSans-101"/>
+ <use x="2077.527344" xlink:href="#DejaVuSans-100"/>
+ <use x="2141.003906" xlink:href="#DejaVuSans-32"/>
+ <use x="2172.791016" xlink:href="#DejaVuSans-66"/>
+ <use x="2241.394531" xlink:href="#DejaVuSans-105"/>
+ <use x="2269.177734" xlink:href="#DejaVuSans-114"/>
+ <use x="2310.291016" xlink:href="#DejaVuSans-116"/>
+ <use x="2349.5" xlink:href="#DejaVuSans-104"/>
+ <use x="2412.878906" xlink:href="#DejaVuSans-100"/>
+ <use x="2476.355469" xlink:href="#DejaVuSans-97"/>
+ <use x="2537.634766" xlink:href="#DejaVuSans-121"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <defs>
+ <clipPath id="p83f537fc34">
+ <rect height="279.64" width="408.67" x="41.33" y="24"/>
+ </clipPath>
+ </defs>
+</svg>
diff --git a/static/files/articles/birthday-paradox/probability-basics.svg b/static/files/articles/birthday-paradox/probability-basics.svg
new file mode 100644
index 0000000..b8e2a6d
--- /dev/null
+++ b/static/files/articles/birthday-paradox/probability-basics.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="130.05736mm"
+ height="153.61749mm"
+ viewBox="0 0 130.05736 153.6175"
+ version="1.1"
+ id="svg839"
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
+ sodipodi:docname="probability-basics.svg">
+ <defs
+ id="defs833" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.0895616"
+ inkscape:cx="360.02233"
+ inkscape:cy="409.71925"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ inkscape:document-rotation="0"
+ showgrid="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1163"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid1402"
+ originx="-10.377566"
+ originy="-58.002574" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata836">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-10.377566,-58.00257)">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.411524;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1408"
+ width="60.854168"
+ height="66.237556"
+ x="10.583333"
+ y="58.208332" />
+ <rect
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.411524;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1408-3"
+ width="60.854164"
+ height="66.237556"
+ x="79.375"
+ y="58.208332" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.411524;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1408-6"
+ width="60.854168"
+ height="66.237556"
+ x="10.583328"
+ y="137.58333" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.411524;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1408-3-7"
+ width="60.854168"
+ height="66.237556"
+ x="79.374992"
+ y="137.58333" />
+ <ellipse
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472"
+ cx="40.454033"
+ cy="92.07811"
+ rx="14.453718"
+ ry="14.453717" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="35.819675"
+ y="131.34454"
+ id="text1476"><tspan
+ sodipodi:role="line"
+ id="tspan1474"
+ x="35.819675"
+ y="131.34454"
+ style="font-size:4.93889px;stroke-width:0.264583px">P(A)</tspan></text>
+ <ellipse
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472-6"
+ cx="109.30119"
+ cy="92.473396"
+ rx="14.453718"
+ ry="14.453717" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="102.54754"
+ y="131.38501"
+ id="text1476-2"><tspan
+ sodipodi:role="line"
+ id="tspan1474-9"
+ x="102.54754"
+ y="131.38501"
+ style="font-size:4.93889px;stroke-width:0.264583px">P(¬A)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:3.175px;line-height:6.61458px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="39.6875"
+ y="164.04167"
+ id="text1568"><tspan
+ sodipodi:role="line"
+ id="tspan1566"
+ x="39.6875"
+ y="164.04167"
+ style="stroke-width:0.264583px"></tspan></text>
+ <path
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 38.712572,183.33805 c -1.940724,-1.1162 -4.899116,-4.10448 -5.891879,-5.95142 -0.957032,-1.78047 -1.865108,-5.26022 -1.858755,-7.12277 0.01885,-5.52772 3.306268,-10.99436 8.096738,-13.46408 l 1.869492,-0.96381 1.583351,0.83094 c 0.87084,0.45701 2.397749,1.6411 3.393129,2.63131 2.938671,2.92339 4.431566,6.49727 4.437801,10.62375 0.0064,4.22817 -1.433738,7.70907 -4.428394,10.70372 -1.542719,1.54271 -4.677544,3.61418 -5.439883,3.59462 -0.131016,-0.003 -0.923734,-0.40038 -1.7616,-0.88226 z"
+ id="path1632" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="30.510578"
+ y="210.67232"
+ id="text1476-7-9"><tspan
+ sodipodi:role="line"
+ id="tspan1474-0-3"
+ x="30.510578"
+ y="210.67232"
+ style="font-size:4.93889px;stroke-width:0.264583px">P(A ⋂ B)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="92.649872"
+ y="210.58772"
+ id="text1476-7-9-1"><tspan
+ sodipodi:role="line"
+ id="tspan1474-0-3-8"
+ x="92.649872"
+ y="210.58772"
+ style="font-size:4.93889px;stroke-width:0.264583px">P(A ⋂ B ⋂ C)</tspan></text>
+ <path
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 105.58652,175.29751 c -4.09099,-2.36267 -6.933209,-6.76584 -7.600285,-11.77438 -0.151581,-1.13811 -0.136848,-1.16176 1.330014,-2.13541 4.417681,-2.93229 10.861821,-3.21873 15.410621,-0.68499 2.57293,1.43315 2.71329,1.6367 2.45103,3.55437 -0.26905,1.96735 -1.2501,4.48878 -2.38997,6.14257 -1.64332,2.38422 -5.12148,5.18039 -6.98556,5.61588 -0.48485,0.11327 -1.14918,-0.102 -2.21585,-0.71804 z"
+ id="path1690" />
+ <ellipse
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472-6-2"
+ cx="45.645264"
+ cy="170.12524"
+ rx="14.453718"
+ ry="14.453717" />
+ <ellipse
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472-6-1"
+ cx="35.761864"
+ cy="169.98906"
+ rx="14.453718"
+ ry="14.453717" />
+ <ellipse
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472-6-1-6-7"
+ cx="107.58426"
+ cy="173.44156"
+ rx="14.453718"
+ ry="14.453717" />
+ <ellipse
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472-6-2-2"
+ cx="112.58969"
+ cy="162.62218"
+ rx="14.453718"
+ ry="14.453717" />
+ <ellipse
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.09257;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1472-6-1-6"
+ cx="102.7063"
+ cy="162.48599"
+ rx="14.453718"
+ ry="14.453717" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="38.751125"
+ y="113.81914"
+ id="text1476-9"><tspan
+ sodipodi:role="line"
+ x="38.751125"
+ y="113.81914"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="107.01363"
+ y="103.23579"
+ id="text1476-9-0"><tspan
+ sodipodi:role="line"
+ x="107.01363"
+ y="103.23579"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734-2">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="23.470512"
+ y="189.17651"
+ id="text1476-9-3"><tspan
+ sodipodi:role="line"
+ x="23.470512"
+ y="189.17651"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734-7">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="54.503803"
+ y="189.20442"
+ id="text1476-9-5"><tspan
+ sodipodi:role="line"
+ x="54.503803"
+ y="189.20442"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734-9">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="87.101913"
+ y="150.74863"
+ id="text1476-9-3-2"><tspan
+ sodipodi:role="line"
+ x="87.101913"
+ y="150.74863"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734-7-2">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="125.01437"
+ y="150.77654"
+ id="text1476-9-5-8"><tspan
+ sodipodi:role="line"
+ x="125.01437"
+ y="150.77654"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734-9-9">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:10.2894px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="105.42612"
+ y="194.78162"
+ id="text1476-9-7"><tspan
+ sodipodi:role="line"
+ x="105.42612"
+ y="194.78162"
+ style="font-size:4.93889px;stroke-width:0.264583px"
+ id="tspan1734-3">C</tspan></text>
+ </g>
+</svg>