library(tidyverse)
library(openintro)
library(infer)
## Warning: package 'infer' was built under R version 4.3.3
global_monitor <- tibble(
scientist_work = c(rep("Benefits", 80000), rep("Doesn't benefit", 20000))
)
ggplot(global_monitor, aes(x = scientist_work)) +
geom_bar() +
labs(
x = "", y = "",
title = "Do you believe that the work scientists do benefit people like you?"
) +
coord_flip()

global_monitor %>%
count(scientist_work) %>%
mutate(p = n /sum(n))
## # A tibble: 2 × 3
## scientist_work n p
## <chr> <int> <dbl>
## 1 Benefits 80000 0.8
## 2 Doesn't benefit 20000 0.2
samp1 <- global_monitor %>%
sample_n(50)
Exercise 1
The data for both the sample and the population shows that 14% of
people believe that the work of scientists is not beneficial. The sample
data is 0.06 off from the population data. However, they are still
close.
samp1 %>%
count(scientist_work) %>%
mutate(p_hat = n /sum(n))
## # A tibble: 2 × 3
## scientist_work n p_hat
## <chr> <int> <dbl>
## 1 Benefits 40 0.8
## 2 Doesn't benefit 10 0.2
Exercise 2
I would not expect the same sample proportion as another student’s.
This is because sampling will most likely come out different each time.
The proportions could be close; however, they will not be exactly the
same due to the sampling process yielding different results every time
it is done.
Exercise 3
In samp2, the data is different. More people are in the “does not
benefit” column. Only 3 more people are in this column (10), compared to
the previous sample (7). Although, since the sample size is so small,
this has an impact on the p_hat.
The sample of 1000 would be a more appropriate estimate of the
population proportion since the larger the sample, the closer the
statistic will get to the actual population parameter. Note: larger
sample size means less variability.
sample_props50 <- global_monitor %>%
rep_sample_n(size = 50, reps = 15000, replace = TRUE) %>%
count(scientist_work) %>%
mutate(p_hat = n /sum(n)) %>%
filter(scientist_work == "Doesn't benefit")
ggplot(data = sample_props50, aes(x = p_hat)) +
geom_histogram(binwidth = 0.02) +
labs(
x = "p_hat (Doesn't benefit)",
title = "Sampling distribution of p_hat",
subtitle = "Sample size = 50, Number of samples = 15000"
)

set.seed(4444)
samp2 <- global_monitor %>%
sample_n(50)
samp2 %>%
count(scientist_work) %>%
mutate(p.hat = n /sum(n))
## # A tibble: 2 × 3
## scientist_work n p.hat
## <chr> <int> <dbl>
## 1 Benefits 40 0.8
## 2 Doesn't benefit 10 0.2
Exercise 4
There were 15,000 samples taken, which means, there are 15,000 data
points used to make this plot. The plot looks mostly normally
distributed, but with a slight skew to the right. The center appears to
be around 0.2, which is consistent with the population parameter.
global_monitor %>%
sample_n(size = 50, replace = TRUE) %>%
count(scientist_work) %>%
mutate(p_hat = n /sum(n)) %>%
filter(scientist_work == "Doesn't benefit")
## # A tibble: 1 × 3
## scientist_work n p_hat
## <chr> <int> <dbl>
## 1 Doesn't benefit 9 0.18
Exercise 5
There are 25 observations in this object. Each observation is a
sample proportion that makes up the sampling distribution.
sample_props_small <- global_monitor %>% rep_sample_n(size = 10, reps = 25, replace = TRUE) %>%
count(scientist_work) %>%
mutate(p_hat = n /sum(n)) %>%
filter(scientist_work == "Doesn't benefit")
ggplot(data = sample_props50, aes(x = p_hat)) +
geom_histogram(binwidth = 0.02)

Exercise 6
Each observation is the proportion that came out of the
simulation:
n = 10; mean = 0.22; se = 0.11
n = 50; mean = 0.2; se = 0.06
n = 100; mean = 0.2; se = 0.04
The mean of these gets closer to 0.2; the true mean as we increase
the number of samples. The se decreases, which means that as you
increase the sample size, there is less variability. The distribution
begins to appear normal when you make the sample larger, since at n =
10, there is a right skew.
Exercise 7 - More Practice
Based on this sampling, the best estimate is that 80% believe that
the work of scientists is beneficial.
set.seed(5555)
samp3 <- global_monitor %>%
sample_n(15)
samp3 %>%
count(scientist_work) %>%
mutate(p.hat = n /sum(n))
## # A tibble: 2 × 3
## scientist_work n p.hat
## <chr> <int> <dbl>
## 1 Benefits 12 0.8
## 2 Doesn't benefit 3 0.2
Exercise 8 - More Practice
Based on the sampling here, the estimate is 0.798. The true
population proportion is 0.8. So, this estimate is very close.
sample_props15 <- global_monitor %>% rep_sample_n(size = 15, reps = 2000, replace = TRUE) %>%
count(scientist_work) %>%
mutate(p_hat = n /sum(n)) %>%
filter(scientist_work == "Benefits")
ggplot(data = sample_props15, aes(x = p_hat)) +
geom_histogram(binwidth = 0.02) +
labs(
x = "p_hat (Benefits)",
title = "Sampling distribution of p_hat",
subtitle = "Sample size = 15, Number of samples = 2000")

mean(sample_props15$p_hat)
## [1] 0.7984667
global_monitor %>%
count(scientist_work) %>%
mutate(p = n /sum(n))
## # A tibble: 2 × 3
## scientist_work n p
## <chr> <int> <dbl>
## 1 Benefits 80000 0.8
## 2 Doesn't benefit 20000 0.2
Exercise 9 - More Practice
When n = 150, the shape is more normal.
Based on this, the proportion is very nearly 0.8, since the mean of
the sampling distribution is 0.799. Which is 0.001 off from the true
proportion (0.8). Closer than what we found from Exercise 8 above.
sample_props150 <- global_monitor %>% rep_sample_n(size = 150, reps = 2000, replace = TRUE) %>%
count(scientist_work) %>%
mutate(p_hat = n /sum(n)) %>%
filter(scientist_work == "Benefits")
ggplot(data = sample_props150, aes(x = p_hat)) +
geom_histogram(binwidth = 0.02) +
labs(
x = "p_hat (Benefits)",
title = "Sampling distribution of p_hat",
subtitle = "Sample size = 150, Number of samples = 2000")

mean(sample_props150$p_hat)
## [1] 0.7994033
Exercise 10 - More Practice
The spread of the n = 150 sampling distribution is smaller than the
sampling distribution where n = 15. Based on this, it would be my
preference to predict the proportion from this distribution with a
smaller spread because there is less variability in the data. This would
mean that the value from sampling is closer to the true proportion.
LS0tDQp0aXRsZTogIkxhYiA1OiBTYW1wbGluZyBEaXN0cmlidXRpb25zIg0KYXV0aG9yOiAiQ29saW4gUy4iDQpkYXRlOiAiQXByaWwgMjEsIDIwMjQiDQpvdXRwdXQ6IG9wZW5pbnRybzo6bGFiX3JlcG9ydA0KLS0tDQoNCmBgYHtyIGxvYWQtcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkob3BlbmludHJvKQ0KbGlicmFyeShpbmZlcikNCg0KZ2xvYmFsX21vbml0b3IgPC0gdGliYmxlKA0KICBzY2llbnRpc3Rfd29yayA9IGMocmVwKCJCZW5lZml0cyIsIDgwMDAwKSwgcmVwKCJEb2Vzbid0IGJlbmVmaXQiLCAyMDAwMCkpDQopDQoNCmdncGxvdChnbG9iYWxfbW9uaXRvciwgYWVzKHggPSBzY2llbnRpc3Rfd29yaykpICsNCiAgZ2VvbV9iYXIoKSArDQogIGxhYnMoDQogICAgeCA9ICIiLCB5ID0gIiIsDQogICAgdGl0bGUgPSAiRG8geW91IGJlbGlldmUgdGhhdCB0aGUgd29yayBzY2llbnRpc3RzIGRvIGJlbmVmaXQgcGVvcGxlIGxpa2UgeW91PyINCiAgKSArDQogIGNvb3JkX2ZsaXAoKSANCg0KZ2xvYmFsX21vbml0b3IgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHAgPSBuIC9zdW0obikpDQoNCnNhbXAxIDwtIGdsb2JhbF9tb25pdG9yICU+JQ0KICBzYW1wbGVfbig1MCkNCg0KYGBgDQoNCiMjIyBFeGVyY2lzZSAxDQoNClRoZSBkYXRhIGZvciBib3RoIHRoZSBzYW1wbGUgYW5kIHRoZSBwb3B1bGF0aW9uIHNob3dzIHRoYXQgMTQlIG9mIHBlb3BsZSBiZWxpZXZlIHRoYXQgdGhlIHdvcmsgb2Ygc2NpZW50aXN0cyBpcyBub3QgYmVuZWZpY2lhbC4gVGhlIHNhbXBsZSBkYXRhIGlzIDAuMDYgb2ZmIGZyb20gdGhlIHBvcHVsYXRpb24gZGF0YS4gSG93ZXZlciwgdGhleSBhcmUgc3RpbGwgY2xvc2UuDQoNCmBgYHtyIHZpZXctZ2lybHMtY291bnRzfQ0KDQpzYW1wMSAlPiUNCiAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpDQoNCmBgYA0KDQoNCiMjIyBFeGVyY2lzZSAyDQoNCkkgd291bGQgbm90IGV4cGVjdCB0aGUgc2FtZSBzYW1wbGUgcHJvcG9ydGlvbiBhcyBhbm90aGVyIHN0dWRlbnQncy4gVGhpcyBpcyBiZWNhdXNlIHNhbXBsaW5nIHdpbGwgbW9zdCBsaWtlbHkgY29tZSBvdXQgZGlmZmVyZW50IGVhY2ggdGltZS4gVGhlIHByb3BvcnRpb25zIGNvdWxkIGJlIGNsb3NlOyBob3dldmVyLCB0aGV5IHdpbGwgbm90IGJlIGV4YWN0bHkgdGhlIHNhbWUgZHVlIHRvIHRoZSBzYW1wbGluZyBwcm9jZXNzIHlpZWxkaW5nIGRpZmZlcmVudCByZXN1bHRzIGV2ZXJ5IHRpbWUgaXQgaXMgZG9uZS4NCg0KYGBge3IgdHJlbmQtZ2lybHN9DQoNCmBgYA0KDQoNCiMjIyBFeGVyY2lzZSAzDQoNCkluIHNhbXAyLCB0aGUgZGF0YSBpcyBkaWZmZXJlbnQuIE1vcmUgcGVvcGxlIGFyZSBpbiB0aGUgImRvZXMgbm90IGJlbmVmaXQiIGNvbHVtbi4gT25seSAzIG1vcmUgcGVvcGxlIGFyZSBpbiB0aGlzIGNvbHVtbiAoMTApLCBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgc2FtcGxlICg3KS4gQWx0aG91Z2gsIHNpbmNlIHRoZSBzYW1wbGUgc2l6ZSBpcyBzbyBzbWFsbCwgdGhpcyBoYXMgYW4gaW1wYWN0IG9uIHRoZSBwX2hhdC4NCg0KVGhlIHNhbXBsZSBvZiAxMDAwIHdvdWxkIGJlIGEgbW9yZSBhcHByb3ByaWF0ZSBlc3RpbWF0ZSBvZiB0aGUgcG9wdWxhdGlvbiBwcm9wb3J0aW9uIHNpbmNlIHRoZSBsYXJnZXIgdGhlIHNhbXBsZSwgdGhlIGNsb3NlciB0aGUgc3RhdGlzdGljIHdpbGwgZ2V0IHRvIHRoZSBhY3R1YWwgcG9wdWxhdGlvbiBwYXJhbWV0ZXIuIE5vdGU6IGxhcmdlciBzYW1wbGUgc2l6ZSBtZWFucyBsZXNzIHZhcmlhYmlsaXR5Lg0KDQpgYGB7ciBwbG90LXByb3AtYm95cy1hcmJ1dGhub3R9DQpzYW1wbGVfcHJvcHM1MCA8LSBnbG9iYWxfbW9uaXRvciAlPiUNCiAgICAgICAgICAgICAgICAgICAgcmVwX3NhbXBsZV9uKHNpemUgPSA1MCwgcmVwcyA9IDE1MDAwLCByZXBsYWNlID0gVFJVRSkgJT4lDQogICAgICAgICAgICAgICAgICAgIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgbXV0YXRlKHBfaGF0ID0gbiAvc3VtKG4pKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHNjaWVudGlzdF93b3JrID09ICJEb2Vzbid0IGJlbmVmaXQiKQ0KDQpnZ3Bsb3QoZGF0YSA9IHNhbXBsZV9wcm9wczUwLCBhZXMoeCA9IHBfaGF0KSkgKw0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDAuMDIpICsNCiAgbGFicygNCiAgICB4ID0gInBfaGF0IChEb2Vzbid0IGJlbmVmaXQpIiwNCiAgICB0aXRsZSA9ICJTYW1wbGluZyBkaXN0cmlidXRpb24gb2YgcF9oYXQiLA0KICAgIHN1YnRpdGxlID0gIlNhbXBsZSBzaXplID0gNTAsIE51bWJlciBvZiBzYW1wbGVzID0gMTUwMDAiDQogICkNCg0Kc2V0LnNlZWQoNDQ0NCkNCnNhbXAyIDwtIGdsb2JhbF9tb25pdG9yICU+JQ0KICBzYW1wbGVfbig1MCkNCg0Kc2FtcDIgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHAuaGF0ID0gbiAvc3VtKG4pKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgNA0KDQpUaGVyZSB3ZXJlIDE1LDAwMCBzYW1wbGVzIHRha2VuLCB3aGljaCBtZWFucywgdGhlcmUgYXJlIDE1LDAwMCBkYXRhIHBvaW50cyB1c2VkIHRvIG1ha2UgdGhpcyBwbG90LiBUaGUgcGxvdCBsb29rcyBtb3N0bHkgbm9ybWFsbHkgZGlzdHJpYnV0ZWQsIGJ1dCB3aXRoIGEgc2xpZ2h0IHNrZXcgdG8gdGhlIHJpZ2h0LiBUaGUgY2VudGVyIGFwcGVhcnMgdG8gYmUgYXJvdW5kIDAuMiwgd2hpY2ggaXMgY29uc2lzdGVudCB3aXRoIHRoZSBwb3B1bGF0aW9uIHBhcmFtZXRlci4NCg0KYGBge3IgZGltLXByZXNlbnR9DQpnbG9iYWxfbW9uaXRvciAlPiUNCiAgc2FtcGxlX24oc2l6ZSA9IDUwLCByZXBsYWNlID0gVFJVRSkgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHBfaGF0ID0gbiAvc3VtKG4pKSAlPiUNCiAgZmlsdGVyKHNjaWVudGlzdF93b3JrID09ICJEb2Vzbid0IGJlbmVmaXQiKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgNQ0KDQpUaGVyZSBhcmUgMjUgb2JzZXJ2YXRpb25zIGluIHRoaXMgb2JqZWN0LiBFYWNoIG9ic2VydmF0aW9uIGlzIGEgc2FtcGxlIHByb3BvcnRpb24gdGhhdCBtYWtlcyB1cCB0aGUgc2FtcGxpbmcgZGlzdHJpYnV0aW9uLg0KDQpgYGB7ciBjb3VudC1jb21wYXJlfQ0Kc2FtcGxlX3Byb3BzX3NtYWxsIDwtIGdsb2JhbF9tb25pdG9yICU+JSByZXBfc2FtcGxlX24oc2l6ZSA9IDEwLCByZXBzID0gMjUsIHJlcGxhY2UgPSBUUlVFKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICAgICAgICAgICAgICAgICAgICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoc2NpZW50aXN0X3dvcmsgPT0gIkRvZXNuJ3QgYmVuZWZpdCIpDQoNCmdncGxvdChkYXRhID0gc2FtcGxlX3Byb3BzNTAsIGFlcyh4ID0gcF9oYXQpKSArDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC4wMikNCg0KYGBgDQoNCg0KIyMjIEV4ZXJjaXNlIDYNCg0KRWFjaCBvYnNlcnZhdGlvbiBpcyB0aGUgcHJvcG9ydGlvbiB0aGF0IGNhbWUgb3V0IG9mIHRoZSBzaW11bGF0aW9uOg0KDQpuID0gMTA7IG1lYW4gPSAwLjIyOyBzZSA9IDAuMTENCg0KbiA9IDUwOyBtZWFuID0gMC4yOyBzZSA9IDAuMDYNCg0KbiA9IDEwMDsgbWVhbiA9IDAuMjsgc2UgPSAwLjA0DQoNClRoZSBtZWFuIG9mIHRoZXNlIGdldHMgY2xvc2VyIHRvIDAuMjsgdGhlIHRydWUgbWVhbiBhcyB3ZSBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHNhbXBsZXMuIFRoZSBzZSBkZWNyZWFzZXMsIHdoaWNoIG1lYW5zIHRoYXQgYXMgeW91IGluY3JlYXNlIHRoZSBzYW1wbGUgc2l6ZSwgdGhlcmUgaXMgbGVzcyB2YXJpYWJpbGl0eS4gVGhlIGRpc3RyaWJ1dGlvbiBiZWdpbnMgdG8gYXBwZWFyIG5vcm1hbCB3aGVuIHlvdSBtYWtlIHRoZSBzYW1wbGUgbGFyZ2VyLCBzaW5jZSBhdCBuID0gMTAsIHRoZXJlIGlzIGEgcmlnaHQgc2tldy4NCg0KYGBge3IgcGxvdC1wcm9wLWJveXMtcHJlc2VudH0NCg0KYGBgDQoNCg0KIyMjIEV4ZXJjaXNlIDcgLSBNb3JlIFByYWN0aWNlDQoNCkJhc2VkIG9uIHRoaXMgc2FtcGxpbmcsIHRoZSBiZXN0IGVzdGltYXRlIGlzIHRoYXQgODAlIGJlbGlldmUgdGhhdCB0aGUgd29yayBvZiBzY2llbnRpc3RzIGlzIGJlbmVmaWNpYWwuDQoNCmBgYHtyIGZpbmQtbWF4LXRvdGFsfQ0Kc2V0LnNlZWQoNTU1NSkNCnNhbXAzIDwtIGdsb2JhbF9tb25pdG9yICU+JQ0KICBzYW1wbGVfbigxNSkNCg0Kc2FtcDMgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHAuaGF0ID0gbiAvc3VtKG4pKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgOCAtIE1vcmUgUHJhY3RpY2UNCg0KQmFzZWQgb24gdGhlIHNhbXBsaW5nIGhlcmUsIHRoZSBlc3RpbWF0ZSBpcyAwLjc5OC4gVGhlIHRydWUgcG9wdWxhdGlvbiBwcm9wb3J0aW9uIGlzIDAuOC4gU28sIHRoaXMgZXN0aW1hdGUgaXMgdmVyeSBjbG9zZS4NCg0KYGBge3J9DQpzYW1wbGVfcHJvcHMxNSA8LSBnbG9iYWxfbW9uaXRvciAlPiUgcmVwX3NhbXBsZV9uKHNpemUgPSAxNSwgcmVwcyA9IDIwMDAsIHJlcGxhY2UgPSBUUlVFKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICAgICAgICAgICAgICAgICAgICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoc2NpZW50aXN0X3dvcmsgPT0gIkJlbmVmaXRzIikNCg0KZ2dwbG90KGRhdGEgPSBzYW1wbGVfcHJvcHMxNSwgYWVzKHggPSBwX2hhdCkpICsNCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAwLjAyKSArDQogIGxhYnMoDQogICAgeCA9ICJwX2hhdCAoQmVuZWZpdHMpIiwNCiAgICB0aXRsZSA9ICJTYW1wbGluZyBkaXN0cmlidXRpb24gb2YgcF9oYXQiLA0KICAgIHN1YnRpdGxlID0gIlNhbXBsZSBzaXplID0gMTUsIE51bWJlciBvZiBzYW1wbGVzID0gMjAwMCIpDQoNCm1lYW4oc2FtcGxlX3Byb3BzMTUkcF9oYXQpDQoNCmdsb2JhbF9tb25pdG9yICU+JQ0KICBjb3VudChzY2llbnRpc3Rfd29yaykgJT4lDQogIG11dGF0ZShwID0gbiAvc3VtKG4pKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgOSAtIE1vcmUgUHJhY3RpY2UNCg0KV2hlbiBuID0gMTUwLCB0aGUgc2hhcGUgaXMgbW9yZSBub3JtYWwuDQoNCkJhc2VkIG9uIHRoaXMsIHRoZSBwcm9wb3J0aW9uIGlzIHZlcnkgbmVhcmx5IDAuOCwgc2luY2UgdGhlIG1lYW4gb2YgdGhlIHNhbXBsaW5nIGRpc3RyaWJ1dGlvbiBpcyAwLjc5OS4gV2hpY2ggaXMgMC4wMDEgb2ZmIGZyb20gdGhlIHRydWUgcHJvcG9ydGlvbiAoMC44KS4gQ2xvc2VyIHRoYW4gd2hhdCB3ZSBmb3VuZCBmcm9tIEV4ZXJjaXNlIDggYWJvdmUuDQoNCmBgYHtyfQ0Kc2FtcGxlX3Byb3BzMTUwIDwtIGdsb2JhbF9tb25pdG9yICU+JSByZXBfc2FtcGxlX24oc2l6ZSA9IDE1MCwgcmVwcyA9IDIwMDAsIHJlcGxhY2UgPSBUUlVFKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICAgICAgICAgICAgICAgICAgICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoc2NpZW50aXN0X3dvcmsgPT0gIkJlbmVmaXRzIikNCg0KZ2dwbG90KGRhdGEgPSBzYW1wbGVfcHJvcHMxNTAsIGFlcyh4ID0gcF9oYXQpKSArDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC4wMikgKw0KICBsYWJzKA0KICAgIHggPSAicF9oYXQgKEJlbmVmaXRzKSIsDQogICAgdGl0bGUgPSAiU2FtcGxpbmcgZGlzdHJpYnV0aW9uIG9mIHBfaGF0IiwNCiAgICBzdWJ0aXRsZSA9ICJTYW1wbGUgc2l6ZSA9IDE1MCwgTnVtYmVyIG9mIHNhbXBsZXMgPSAyMDAwIikNCg0KbWVhbihzYW1wbGVfcHJvcHMxNTAkcF9oYXQpDQoNCmBgYA0KDQoNCiMjIyBFeGVyY2lzZSAxMCAtIE1vcmUgUHJhY3RpY2UNCg0KVGhlIHNwcmVhZCBvZiB0aGUgbiA9IDE1MCBzYW1wbGluZyBkaXN0cmlidXRpb24gaXMgc21hbGxlciB0aGFuIHRoZSBzYW1wbGluZyBkaXN0cmlidXRpb24gd2hlcmUgbiA9IDE1LiBCYXNlZCBvbiB0aGlzLCBpdCB3b3VsZCBiZSBteSBwcmVmZXJlbmNlIHRvIHByZWRpY3QgdGhlIHByb3BvcnRpb24gZnJvbSB0aGlzIGRpc3RyaWJ1dGlvbiB3aXRoIGEgc21hbGxlciBzcHJlYWQgYmVjYXVzZSB0aGVyZSBpcyBsZXNzIHZhcmlhYmlsaXR5IGluIHRoZSBkYXRhLiBUaGlzIHdvdWxkIG1lYW4gdGhhdCB0aGUgdmFsdWUgZnJvbSBzYW1wbGluZyBpcyBjbG9zZXIgdG8gdGhlIHRydWUgcHJvcG9ydGlvbi4NCg0KYGBge3J9DQoNCmBgYA==