library(tidyverse)
library(pewdata)
pew <- read.csv("January 3-10, 2018 - Core Trends Survey/January 3-10, 2018 - Core Trends Survey - CSV.csv")

Reading in the .CSV file.

glimpse(pew)
Rows: 2,002
Columns: 70
$ respid      <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 20, 21, 23, 24, 25, 26, 27, 28, 2…
$ sample      <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
$ comp        <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
$ int_date    <dbl> 180103, 180103, 180103, 180103, 180103, 180103, 180103, 180103, 180103, 180103, …
$ lang        <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,…
$ cregion     <dbl> 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 2, 1, 1, 2, 1, 2, 1, 1, 3, 3, 2,…
$ state       <dbl> 42, 45, 34, 24, 33, 37, 12, 34, 51, 54, 51, 12, 42, 37, 51, 21, 39, 42, 36, 26, …
$ density     <dbl> 5, 2, 5, 4, 2, 3, 5, 5, 1, 2, 2, 5, 4, 1, 2, 2, 2, 3, 1, 5, 4, 5, 1, 3, 4, 2, 4,…
$ usr         <chr> "U", "S", "S", "S", "R", "U", "U", "S", "R", "R", "S", "U", "S", "R", "S", "U", …
$ qs1         <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ sex         <dbl> 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2,…
$ eminuse     <dbl> 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1,…
$ intmob      <dbl> 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1,…
$ intfreq     <dbl> 1, NA, 3, 4, 2, 2, 2, 2, NA, 2, 2, 2, NA, 3, 2, 2, NA, 4, NA, 3, 3, 3, 2, NA, 2,…
$ home4nw     <dbl> 1, NA, 1, 1, 1, 1, 1, 1, NA, 1, 1, 1, NA, 1, 1, 1, NA, 2, NA, 1, 1, 1, 1, NA, 1,…
$ bbhome1     <dbl> 2, NA, 2, 2, 2, 2, 2, 2, NA, 2, 2, 2, NA, 2, 2, 2, NA, NA, NA, 2, 2, 2, 2, NA, 2…
$ bbhome2     <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ device1a    <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1,…
$ smart2      <dbl> 1, 2, 1, 1, 1, 1, 1, 1, NA, 1, 1, 1, NA, 1, 1, 1, 2, 1, NA, NA, NA, 2, NA, 2, NA…
$ snsint2     <dbl> 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1,…
$ device1b    <dbl> 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1,…
$ device1c    <dbl> 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1,…
$ device1d    <dbl> 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 9, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2,…
$ web1a       <dbl> 2, 2, 2, 2, 2, 1, 2, 2, NA, 2, 1, 2, NA, 1, 2, 2, 2, 2, NA, 2, 2, 2, 2, 2, 2, 2,…
$ web1b       <dbl> 1, 2, 2, 2, 2, 2, 2, 2, NA, 2, 1, 2, NA, 2, 2, 2, 2, 2, NA, 2, 2, 2, 2, 2, 2, 2,…
$ web1c       <dbl> 1, 2, 2, 1, 1, 1, 1, 1, NA, 1, 1, 1, NA, 1, 1, 2, 2, 1, NA, 2, 2, 2, 2, 2, 2, 2,…
$ web1d       <dbl> 1, 2, 2, 2, 2, 2, 2, 2, NA, 2, 2, 2, NA, 2, 2, 2, 2, 1, NA, 2, 2, 2, 2, 2, 2, 2,…
$ web1e       <dbl> 1, 2, 2, 2, 1, 1, 1, 1, NA, 1, 1, 1, NA, 1, 2, 2, 2, 1, NA, 1, 2, 1, 1, 2, 2, 1,…
$ web1f       <dbl> 1, 2, 2, 2, 2, 2, 2, 2, NA, 2, 2, 2, NA, 1, 2, 2, 2, 2, NA, 2, 2, 2, 2, 2, 2, 2,…
$ web1g       <dbl> 2, 2, 2, 2, 1, 1, 1, 1, NA, 2, 2, 2, NA, 1, 1, 2, 2, 8, NA, 1, 2, 1, 1, 2, 2, 2,…
$ web1h       <dbl> 2, 2, 2, 2, 1, 1, 1, 1, NA, 2, 2, 2, NA, 2, 2, 2, 2, 2, NA, 8, 2, 2, 2, 2, 2, 2,…
$ sns2a       <dbl> NA, NA, NA, NA, NA, 2, NA, NA, NA, NA, 1, NA, NA, 4, NA, NA, NA, NA, NA, NA, NA,…
$ sns2b       <dbl> 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
$ sns2c       <dbl> 1, NA, NA, 3, 3, 1, 3, 2, NA, 2, 3, 5, NA, 1, 5, NA, NA, 5, NA, NA, NA, NA, NA, …
$ sns2d       <dbl> 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5, NA, NA, NA…
$ sns2e       <dbl> 3, NA, NA, NA, 2, 3, 5, 4, NA, 4, 4, 3, NA, 4, NA, NA, NA, 3, NA, 1, NA, 1, 1, N…
$ pial5a      <dbl> 2, 2, 1, 2, 1, 3, 3, 2, 6, 1, 1, 2, 1, 1, 3, 2, 1, 1, 1, 1, 1, 3, 1, 6, 1, 4, 4,…
$ pial5b      <dbl> 1, 3, 2, 3, 2, 5, 3, 2, NA, 2, 4, 1, NA, 3, 1, 1, 4, 1, NA, NA, NA, 2, NA, 2, NA…
$ pial5c      <dbl> 2, NA, 1, 3, 1, 1, 3, 2, NA, 2, 1, 1, NA, 1, 3, 1, NA, 3, NA, 4, 1, 2, 1, NA, 4,…
$ pial5d      <dbl> 3, NA, NA, 3, 3, 1, 4, 3, NA, 3, NA, 4, NA, 3, 4, NA, NA, NA, NA, NA, NA, NA, NA…
$ pial11      <dbl> 1, 8, 1, 2, 1, 3, 8, 1, 8, 1, 1, 1, 8, 1, 2, 1, 2, 1, 2, 1, 1, 1, 3, 2, 1, 1, 2,…
$ pial11a     <dbl> 1, NA, 1, 1, 1, NA, NA, 1, NA, 1, 1, 1, NA, 1, 1, 1, 1, 1, 1, 1, 1, 1, NA, 1, 1,…
$ `pial11ao@` <chr> "information has become available more frequently and easier", NA, "it connects …
$ pial11_igbm <dbl> 1, 9, 2, 5, 1, 9, 9, 1, 9, 1, 1, 1, 9, 1, 8, 1, 7, 1, 8, 1, 1, 1, 9, 4, 1, 2, 4,…
$ pial12      <dbl> 1, NA, 1, 1, 1, 1, 1, 1, NA, 1, 1, 1, NA, 1, 8, 1, NA, 1, NA, 1, 1, 1, 1, NA, 2,…
$ books1      <dbl> 1, 5, 0, 2, 6, 18, 3, 2, 3, 97, 5, 8, 6, 3, 98, 12, 0, 1, 0, 0, 0, 0, 0, 4, 1, 1…
$ books2a     <dbl> 1, 1, NA, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, NA, 2, NA, NA, NA, NA, NA, 1, 1…
$ books2b     <dbl> 2, 2, NA, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, NA, 1, NA, NA, NA, NA, NA, 2, 2…
$ books2c     <dbl> 2, 2, NA, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, NA, 2, NA, NA, NA, NA, NA, 2, 2…
$ age         <dbl> 33, 76, 99, 60, 55, 58, 99, 72, 58, 68, 65, 63, 88, 64, 40, 50, 67, 30, 84, 43, …
$ marital     <dbl> 2, 1, 5, 2, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 3, 8, 1, 6, 4, 5, 1, 1, 1, 9, 1,…
$ educ2       <dbl> 3, 98, 5, 5, 4, 7, 5, 6, 1, 6, 7, 6, 7, 6, 7, 4, 4, 3, 3, 3, 5, 3, 4, 3, 1, 99, …
$ emplnw      <dbl> 1, 3, 5, 8, 1, 1, 5, 4, 4, 3, 3, 2, 3, 3, 4, 1, 3, 6, 3, 6, 6, 3, 3, 2, 3, 99, 3…
$ hisp        <dbl> 2, 2, 2, 2, 2, 2, 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 1, 9, 2,…
$ racem1      <dbl> 1, 1, 1, 1, 1, 1, 9, 1, 2, 1, 1, 1, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 7, 9, 1,…
$ racem2      <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ racem3      <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ racem4      <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ racecmb     <dbl> 1, 1, 1, 1, 1, 1, 9, 1, 2, 1, 1, 1, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 5, 9, 1,…
$ birth_hisp  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ inc         <dbl> 6, 4, 4, 2, 7, 7, 9, 6, 1, 2, 2, 6, 4, 5, 99, 9, 3, 1, 3, 1, 2, 3, 2, 2, 1, 99, …
$ party       <dbl> 2, 3, 1, 2, 1, 3, 2, 3, 1, 4, 1, 3, 2, 1, 1, 1, 3, 3, 4, 8, 3, 1, 3, 1, 4, 9, 1,…
$ partyln     <dbl> NA, 8, NA, NA, NA, 2, NA, 2, NA, 8, NA, 1, NA, NA, NA, NA, 8, 2, 1, 8, 1, NA, 1,…
$ hh1         <dbl> 5, 2, 1, 2, 3, 2, 2, 2, 1, 2, 5, 2, 2, 2, 9, 9, 1, 2, 2, 5, 4, 3, 3, 6, 2, 9, 2,…
$ hh3         <dbl> 4, 2, NA, 2, 3, 2, 2, 2, NA, 2, 4, 2, 2, 2, 2, 2, NA, 2, 2, 3, 4, 3, 3, 2, 2, 2,…
$ ql1         <dbl> 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1,…
$ ql1a        <dbl> NA, 2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2, NA, NA, NA, NA, NA, 2, NA, 1, …
$ qc1         <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ weight      <dbl> 1.7463586, 1.6597644, 0.4908044, 0.9479652, 0.9159586, 0.4850252, 0.6532008, 0.4…
$ cellweight  <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …

A glimpse of the data.

pew <- pew %>% 
  mutate(web1c = as.factor(web1c))


pew %>% 
  count(web1c)

Converting Facebook use data to be a factor.

pew <- pew %>%
mutate(Facebook = fct_recode(web1c, 
                             "yes" = "1", 
                             "No" = "2",
                             "Dont know" = "8",
                             "Refused" = "9"))
      
pew %>%
  count(Facebook)

Re-coding numerical data to give character labels for use of Facebook.

pew <- pew %>% 
  mutate(educ2 = as.factor(educ2))


pew %>% 
  count(educ2)

Converting the education data to be a factor.

pew <- pew %>%
  mutate(Education = fct_recode(educ2,
                            "Less than HS" = "1", 
                            "Some HS" = "2", 
                            "HS graduate" = "3", 
                            "Some college" = "4", 
                            "Associate degree" = "5", 
                            "College degree" = "6", 
                            "Some grad school" = "7", 
                            "Grad degree" = "8", 
                            "Don't know" = "98", 
                            "Refused" = "99"))


pew %>%
count(Education)

Re-coding numerical data to give character labels for education level.

pew %>% 
  drop_na(intfreq) %>%
  count(Facebook, Education)

Facebook use by education level.

pew %>% 
  drop_na(intfreq) %>% 
  ggplot(aes(x = Facebook, fill = Education)) +
  geom_bar()

This vertical stacked bar graph indicates that there were almost an equal amount of Facebook users with the educational level of Some HS and College degree. It also appears that individuals with less than a High School diploma, were less likely to be on Facebook.

pew %>% 
  drop_na(intfreq) %>% 
  ggplot(aes(x = Education, fill = Facebook)) +
  scale_fill_viridis_d() +
  geom_bar(position = "dodge") +
coord_flip() +
theme_minimal()

This is a vertical bar graph representing the same thing as the previous graph. Those with a college degree the largest population to use Facebook. It appears those with a less than High School education were on Facebook the least.

pew <- pew %>% 
  mutate(Education = fct_collapse(educ2,
                                         College_below = c("College degree", "Associate degree",  "Some college", "HS graduate", "Some HS", "Less than HS"),
                                         Grad_above = c("Grad degree", "Some grad school", "Don't know", "Refused")))

pew %>% 
  count(Education)

This shows education level grouped by under-graduate and graduate level.

pew %>% 
  drop_na(intfreq) %>% 
  ggplot(aes(x = Education, fill = Facebook)) +
  scale_fill_viridis_d() +
  geom_bar(position = "fill") +
coord_flip()

This is a horizontal stacked bar graph representation of the data. College degree utilized Facebook the most while those with less than a High school education utilized it the least.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShwZXdkYXRhKQpgYGAKCgoKCgpgYGB7ciB3YXJuaW5nPUZBTFNFfQpwZXcgPC0gcmVhZC5jc3YoIkphbnVhcnkgMy0xMCwgMjAxOCAtIENvcmUgVHJlbmRzIFN1cnZleS9KYW51YXJ5IDMtMTAsIDIwMTggLSBDb3JlIFRyZW5kcyBTdXJ2ZXkgLSBDU1YuY3N2IikKYGBgCgoKUmVhZGluZyBpbiB0aGUgLkNTViBmaWxlLgoKCmBgYHtyfQpnbGltcHNlKHBldykKYGBgCgoKQSBnbGltcHNlIG9mIHRoZSBkYXRhLgoKCmBgYHtyfQpwZXcgPC0gcGV3ICU+JSAKICBtdXRhdGUod2ViMWMgPSBhcy5mYWN0b3Iod2ViMWMpKQoKCnBldyAlPiUgCiAgY291bnQod2ViMWMpCmBgYAoKCkNvbnZlcnRpbmcgRmFjZWJvb2sgdXNlIGRhdGEgdG8gYmUgYSBmYWN0b3IuCgoKYGBge3J9CnBldyA8LSBwZXcgJT4lCm11dGF0ZShGYWNlYm9vayA9IGZjdF9yZWNvZGUod2ViMWMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5ZXMiID0gIjEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEb250IGtub3ciID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWZ1c2VkIiA9ICI5IikpCiAgICAgIApwZXcgJT4lCiAgY291bnQoRmFjZWJvb2spCmBgYAoKClJlLWNvZGluZyBudW1lcmljYWwgZGF0YSB0byBnaXZlIGNoYXJhY3RlciBsYWJlbHMgZm9yIHVzZSBvZiBGYWNlYm9vay4KCgpgYGB7cn0KcGV3IDwtIHBldyAlPiUgCiAgbXV0YXRlKGVkdWMyID0gYXMuZmFjdG9yKGVkdWMyKSkKCgpwZXcgJT4lIAogIGNvdW50KGVkdWMyKQpgYGAKCgpDb252ZXJ0aW5nIHRoZSBlZHVjYXRpb24gZGF0YSB0byBiZSBhIGZhY3Rvci4KCgpgYGB7ciB3YXJuaW5nPVRSVUV9CnBldyA8LSBwZXcgJT4lCiAgbXV0YXRlKEVkdWNhdGlvbiA9IGZjdF9yZWNvZGUoZWR1YzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGVzcyB0aGFuIEhTIiA9ICIxIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU29tZSBIUyIgPSAiMiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhTIGdyYWR1YXRlIiA9ICIzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU29tZSBjb2xsZWdlIiA9ICI0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNzb2NpYXRlIGRlZ3JlZSIgPSAiNSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbGxlZ2UgZGVncmVlIiA9ICI2IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU29tZSBncmFkIHNjaG9vbCIgPSAiNyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyYWQgZGVncmVlIiA9ICI4IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRG9uJ3Qga25vdyIgPSAiOTgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWZ1c2VkIiA9ICI5OSIpKQoKCnBldyAlPiUKY291bnQoRWR1Y2F0aW9uKQpgYGAKCgpSZS1jb2RpbmcgbnVtZXJpY2FsIGRhdGEgdG8gZ2l2ZSBjaGFyYWN0ZXIgbGFiZWxzIGZvciBlZHVjYXRpb24gbGV2ZWwuCgoKYGBge3J9CnBldyAlPiUgCiAgZHJvcF9uYShpbnRmcmVxKSAlPiUKICBjb3VudChGYWNlYm9vaywgRWR1Y2F0aW9uKQpgYGAKCgpGYWNlYm9vayB1c2UgYnkgZWR1Y2F0aW9uIGxldmVsLgoKCmBgYHtyfQpwZXcgJT4lIAogIGRyb3BfbmEoaW50ZnJlcSkgJT4lIAogIGdncGxvdChhZXMoeCA9IEZhY2Vib29rLCBmaWxsID0gRWR1Y2F0aW9uKSkgKwogIGdlb21fYmFyKCkKYGBgCgoKVGhpcyB2ZXJ0aWNhbCBzdGFja2VkIGJhciBncmFwaCBpbmRpY2F0ZXMgdGhhdCB0aGVyZSB3ZXJlIGFsbW9zdCBhbiBlcXVhbCBhbW91bnQgb2YgRmFjZWJvb2sgdXNlcnMgd2l0aCB0aGUgZWR1Y2F0aW9uYWwgbGV2ZWwgb2YgU29tZSBIUyBhbmQgQ29sbGVnZSBkZWdyZWUuIEl0IGFsc28gYXBwZWFycyB0aGF0IGluZGl2aWR1YWxzIHdpdGggbGVzcyB0aGFuIGEgSGlnaCBTY2hvb2wgZGlwbG9tYSwgd2VyZSBsZXNzIGxpa2VseSB0byBiZSBvbiBGYWNlYm9vay4KCgpgYGB7cn0KcGV3ICU+JSAKICBkcm9wX25hKGludGZyZXEpICU+JSAKICBnZ3Bsb3QoYWVzKHggPSBFZHVjYXRpb24sIGZpbGwgPSBGYWNlYm9vaykpICsKICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpICsKICBnZW9tX2Jhcihwb3NpdGlvbiA9ICJkb2RnZSIpICsKY29vcmRfZmxpcCgpICsKdGhlbWVfbWluaW1hbCgpCmBgYAoKClRoaXMgaXMgYSB2ZXJ0aWNhbCBiYXIgZ3JhcGggcmVwcmVzZW50aW5nIHRoZSBzYW1lIHRoaW5nIGFzIHRoZSBwcmV2aW91cyBncmFwaC4gVGhvc2Ugd2l0aCBhIGNvbGxlZ2UgZGVncmVlIHRoZSBsYXJnZXN0IHBvcHVsYXRpb24gdG8gdXNlIEZhY2Vib29rLiBJdCBhcHBlYXJzIHRob3NlIHdpdGggYSBsZXNzIHRoYW4gSGlnaCBTY2hvb2wgZWR1Y2F0aW9uIHdlcmUgb24gRmFjZWJvb2sgdGhlIGxlYXN0LgoKCmBgYHtyfQpwZXcgPC0gcGV3ICU+JSAKICBtdXRhdGUoRWR1Y2F0aW9uID0gZmN0X2NvbGxhcHNlKGVkdWMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlZ2VfYmVsb3cgPSBjKCJDb2xsZWdlIGRlZ3JlZSIsICJBc3NvY2lhdGUgZGVncmVlIiwgICJTb21lIGNvbGxlZ2UiLCAiSFMgZ3JhZHVhdGUiLCAiU29tZSBIUyIsICJMZXNzIHRoYW4gSFMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFkX2Fib3ZlID0gYygiR3JhZCBkZWdyZWUiLCAiU29tZSBncmFkIHNjaG9vbCIsICJEb24ndCBrbm93IiwgIlJlZnVzZWQiKSkpCgpwZXcgJT4lIAogIGNvdW50KEVkdWNhdGlvbikKYGBgCgoKVGhpcyBzaG93cyBlZHVjYXRpb24gbGV2ZWwgZ3JvdXBlZCBieSB1bmRlci1ncmFkdWF0ZSBhbmQgZ3JhZHVhdGUgbGV2ZWwuCgoKYGBge3J9CnBldyAlPiUgCiAgZHJvcF9uYShpbnRmcmVxKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gRWR1Y2F0aW9uLCBmaWxsID0gRmFjZWJvb2spKSArCiAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSArCiAgZ2VvbV9iYXIocG9zaXRpb24gPSAiZmlsbCIpICsKY29vcmRfZmxpcCgpCmBgYAoKClRoaXMgaXMgYSBob3Jpem9udGFsIHN0YWNrZWQgYmFyIGdyYXBoIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhLiBDb2xsZWdlIGRlZ3JlZSB1dGlsaXplZCBGYWNlYm9vayB0aGUgbW9zdCB3aGlsZSB0aG9zZSB3aXRoIGxlc3MgdGhhbiBhIEhpZ2ggc2Nob29sIGVkdWNhdGlvbiB1dGlsaXplZCBpdCB0aGUgbGVhc3QuCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg==