This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

These lines load the packages for use in our current session.

install.packages("tidyverse")
install.packages("readr")
install.packages("data.table")
install.packages("ggplot2")
install.packages("janitor")
install.packages("lubridate")
install.packages("scales")
install.packages("corrplot")
install.packages("reshape2")
library(corrplot)
library(reshape2)
library(scales)
library(tidyverse)
library(lubridate)
library(readr)
library(ggplot2)
library(janitor)
library(data.table)

These lines import text file into Rstudio

masterfile11_d75_final <- read.delim("~/NYCS survey/2011 data files online/masterfile11_d75_final.txt")
masterfile11_gened_final <- read.delim("~/NYCS survey/2011 data files online/masterfile11_gened_final.txt")

combine both tables into one large data frame named nycs_2011

removes any empty rows and columns

nycs_2011 <- bind_rows(masterfile11_d75_final, masterfile11_gened_final)
nycs_2011 <- janitor::remove_empty(nycs_2011, which = c("rows"))
nycs_2011 <- janitor::remove_empty(nycs_2011, which = c("cols"))

Filter the data for school that did participate in the surveys

nycs_2011 <- nycs_2011%>%
  filter(studentssurveyed ==  "Yes")

This line created the dataframe “nycs_v2” with on the specific columns need for analysis

nycs_v2 <- select(nycs_2011, dbn, bn, N_s, N_t, N_p, nr_s, nr_t, nr_p,saf_p_11, com_p_11, eng_p_11, aca_p_11, saf_t_11, com_t_11, eng_t_11, aca_t_11, saf_s_11, com_s_11, eng_s_11, aca_s_11, saf_tot_11, com_tot_11, eng_tot_11, aca_tot_11)

Give each column in the nycs_v2 a clearer column name

nycs_v2 <- rename(nycs_v2, academic_total = aca_tot_11,
                    engagement_total = eng_tot_11,
                    communication_total = com_tot_11,
                    safety_respect_total = saf_tot_11,
                    stud_academic = aca_s_11,
                    stud_engagement = eng_s_11,
                    stud_communication = com_s_11,
                    stud_safety_resp = saf_s_11,
                    teacher_academic = aca_t_11,
                    teacher_engagement = eng_t_11,
                    teacher_communication = com_t_11,
                    teacher_safety_resp = saf_t_11,
                    parent_academic = aca_p_11,
                    parent_engagement = eng_p_11,
                    parent_communication = com_p_11,
                    parent_safety_resp = saf_p_11,
                    eligible_parent = nr_p,
                    eligible_student = nr_s,
                    eligible_teacher = nr_t,
                    student_respondents = N_s,
                    teacher_respondents = N_t,
                    parent_respondents = N_p)
Error in `rename()`:
! Can't rename columns that don't exist.
✖ Column `aca_tot_11` doesn't exist.
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.

Save data frame

write.csv(nycs_v2, file = "NYCS survey/nycs_working/nycs_v2.csv")

#Create a dataframe with data column grouped by demographic


perception_academic <- select(nycs_v2, parent_safety_resp, parent_communication, parent_engagement, parent_academic,
                                 teacher_safety_resp, teacher_communication, teacher_engagement, teacher_academic,
                                 stud_safety_resp, stud_communication, stud_engagement, stud_academic,
                                 academic_total)

Now we calculate the correlations between all of these columns

#create the plot

cor_matrix <- cor(perception_academic, use = "complete.obs")
corrplot(cor_matrix, method = "circle", type = "upper", tl.col = "black", tl.srt = 45)

#organize the data to make it easier to work with #Rearrange data using “melt”. This puts all perception scores in one column, and the group in another.

academic.df <- select(nycs_v2 , stud_academic, teacher_academic, parent_academic)
academic.df <- melt(academic.df)

#create the boxplot

ggplot(academic.df , aes(x = variable, y = value, fill = variable)) + geom_boxplot(alpha = 0.7) +
  labs(title = "Comparison of Academic Perceptions by Group", x = "Group", y = "Academic Perception Score") + theme(axis.text.x = element_text(angle = 45))

repeat same process for engagement

#organize the data to make it easier to work with #Use melt to rearrange date #create the boxplot

engagement.df <- select(nycs_v2, stud_engagement, teacher_engagement, parent_engagement)

engagement.df <- melt(engagement.df)

ggplot(engagement.df , aes(x = variable, y = value, fill = variable)) + geom_boxplot(alpha = 0.7) + labs(title = "Comparison of Engagement Perceptions by Group",x = "Group", y = "Engagement Perception Score") + theme(axis.text.x = element_text(angle = 15))

#Repeat same process for communication #organize the data to make it easier to work with #Use melt to rearrange date #create the boxplot

communication.df <- select(nycs_v2 , stud_communication, teacher_communication, parent_communication)

communication.df <- melt(communication.df)

ggplot(communication.df , aes(x = variable, y = value, fill = variable)) + geom_boxplot(alpha = 0.7) + labs(title = "Comparison of Communication Perceptions by Group", x = "Group", y = "Communication Perception Score") + theme(axis.text.x = element_text(angle = 15))

#Repeat same process for Safety & Respect #organize the data to make it easier to work with #Use melt to rearrange date #create the boxplot

safety_respect.df <- select(nycs_v2 , stud_safety_resp, teacher_safety_resp, parent_safety_resp)

safety_respect.df <- melt(safety_respect.df)

ggplot(safety_respect.df , aes(x = variable, y = value, fill = variable)) + geom_boxplot(alpha = 0.7) + labs(title = "Comparison of Safety & Respect Perceptions by Group",x = "Group", y = "Safety & Respect Perception Score") +  theme(axis.text.x = element_text(angle = 15))
LS0tDQp0aXRsZTogIk5ZQyBTY2hvb2wgU3VydmV5ICBSIE5vdGVib29rIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQphdXRob3I6IEphdmF1bmllIFdhbHRlcnMNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UNCmV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4NCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuaw0Kb3IgYnkgcGxhY2luZyB5b3VyIGN1cnNvciBpbnNpZGUgaXQgYW5kIHByZXNzaW5nICpDdHJsK1NoaWZ0K0VudGVyKi4NCg0KIyBUaGVzZSBsaW5lcyBsb2FkIHRoZSBwYWNrYWdlcyBmb3IgdXNlIGluIG91ciBjdXJyZW50IHNlc3Npb24uDQoNCmBgYHtyfQ0KaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikNCmluc3RhbGwucGFja2FnZXMoInJlYWRyIikNCmluc3RhbGwucGFja2FnZXMoImRhdGEudGFibGUiKQ0KaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpDQppbnN0YWxsLnBhY2thZ2VzKCJqYW5pdG9yIikNCmluc3RhbGwucGFja2FnZXMoImx1YnJpZGF0ZSIpDQppbnN0YWxsLnBhY2thZ2VzKCJzY2FsZXMiKQ0KaW5zdGFsbC5wYWNrYWdlcygiY29ycnBsb3QiKQ0KaW5zdGFsbC5wYWNrYWdlcygicmVzaGFwZTIiKQ0KbGlicmFyeShjb3JycGxvdCkNCmxpYnJhcnkocmVzaGFwZTIpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShqYW5pdG9yKQ0KbGlicmFyeShkYXRhLnRhYmxlKQ0KYGBgDQoNCiMgVGhlc2UgbGluZXMgaW1wb3J0IHRleHQgZmlsZSBpbnRvIFJzdHVkaW8NCg0KYGBge3J9DQptYXN0ZXJmaWxlMTFfZDc1X2ZpbmFsIDwtIHJlYWQuZGVsaW0oIn4vTllDUyBzdXJ2ZXkvMjAxMSBkYXRhIGZpbGVzIG9ubGluZS9tYXN0ZXJmaWxlMTFfZDc1X2ZpbmFsLnR4dCIpDQptYXN0ZXJmaWxlMTFfZ2VuZWRfZmluYWwgPC0gcmVhZC5kZWxpbSgifi9OWUNTIHN1cnZleS8yMDExIGRhdGEgZmlsZXMgb25saW5lL21hc3RlcmZpbGUxMV9nZW5lZF9maW5hbC50eHQiKQ0KDQpgYGANCg0KIyBjb21iaW5lIGJvdGggdGFibGVzIGludG8gb25lIGxhcmdlIGRhdGEgZnJhbWUgbmFtZWQgbnljc18yMDExDQoNCiMgcmVtb3ZlcyBhbnkgZW1wdHkgcm93cyBhbmQgY29sdW1ucw0KDQpgYGB7cn0NCm55Y3NfMjAxMSA8LSBiaW5kX3Jvd3MobWFzdGVyZmlsZTExX2Q3NV9maW5hbCwgbWFzdGVyZmlsZTExX2dlbmVkX2ZpbmFsKQ0Kbnljc18yMDExIDwtIGphbml0b3I6OnJlbW92ZV9lbXB0eShueWNzXzIwMTEsIHdoaWNoID0gYygicm93cyIpKQ0Kbnljc18yMDExIDwtIGphbml0b3I6OnJlbW92ZV9lbXB0eShueWNzXzIwMTEsIHdoaWNoID0gYygiY29scyIpKQ0KYGBgDQoNCiMgRmlsdGVyIHRoZSBkYXRhIGZvciBzY2hvb2wgdGhhdCBkaWQgcGFydGljaXBhdGUgaW4gdGhlIHN1cnZleXMNCg0KYGBge3J9DQpueWNzXzIwMTEgPC0gbnljc18yMDExJT4lDQogIGZpbHRlcihzdHVkZW50c3N1cnZleWVkID09ICAiWWVzIikNCmBgYA0KDQojIFRoaXMgbGluZSBjcmVhdGVkIHRoZSBkYXRhZnJhbWUgIm55Y3NfdjIiIHdpdGggb24gdGhlIHNwZWNpZmljIGNvbHVtbnMgbmVlZCBmb3IgYW5hbHlzaXMNCg0KYGBge3J9DQpueWNzX3YyIDwtIHNlbGVjdChueWNzXzIwMTEsIGRibiwgYm4sIE5fcywgTl90LCBOX3AsIG5yX3MsIG5yX3QsIG5yX3Asc2FmX3BfMTEsIGNvbV9wXzExLCBlbmdfcF8xMSwgYWNhX3BfMTEsIHNhZl90XzExLCBjb21fdF8xMSwgZW5nX3RfMTEsIGFjYV90XzExLCBzYWZfc18xMSwgY29tX3NfMTEsIGVuZ19zXzExLCBhY2Ffc18xMSwgc2FmX3RvdF8xMSwgY29tX3RvdF8xMSwgZW5nX3RvdF8xMSwgYWNhX3RvdF8xMSkNCmBgYA0KDQojIEdpdmUgZWFjaCBjb2x1bW4gaW4gdGhlIG55Y3NfdjIgYSBjbGVhcmVyIGNvbHVtbiBuYW1lDQoNCmBgYHtyfQ0Kbnljc192MiA8LSByZW5hbWUobnljc192MiwgYWNhZGVtaWNfdG90YWwgPSBhY2FfdG90XzExLA0KICAgICAgICAgICAgICAgICAgICBlbmdhZ2VtZW50X3RvdGFsID0gZW5nX3RvdF8xMSwNCiAgICAgICAgICAgICAgICAgICAgY29tbXVuaWNhdGlvbl90b3RhbCA9IGNvbV90b3RfMTEsDQogICAgICAgICAgICAgICAgICAgIHNhZmV0eV9yZXNwZWN0X3RvdGFsID0gc2FmX3RvdF8xMSwNCiAgICAgICAgICAgICAgICAgICAgc3R1ZF9hY2FkZW1pYyA9IGFjYV9zXzExLA0KICAgICAgICAgICAgICAgICAgICBzdHVkX2VuZ2FnZW1lbnQgPSBlbmdfc18xMSwNCiAgICAgICAgICAgICAgICAgICAgc3R1ZF9jb21tdW5pY2F0aW9uID0gY29tX3NfMTEsDQogICAgICAgICAgICAgICAgICAgIHN0dWRfc2FmZXR5X3Jlc3AgPSBzYWZfc18xMSwNCiAgICAgICAgICAgICAgICAgICAgdGVhY2hlcl9hY2FkZW1pYyA9IGFjYV90XzExLA0KICAgICAgICAgICAgICAgICAgICB0ZWFjaGVyX2VuZ2FnZW1lbnQgPSBlbmdfdF8xMSwNCiAgICAgICAgICAgICAgICAgICAgdGVhY2hlcl9jb21tdW5pY2F0aW9uID0gY29tX3RfMTEsDQogICAgICAgICAgICAgICAgICAgIHRlYWNoZXJfc2FmZXR5X3Jlc3AgPSBzYWZfdF8xMSwNCiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2FjYWRlbWljID0gYWNhX3BfMTEsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudF9lbmdhZ2VtZW50ID0gZW5nX3BfMTEsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudF9jb21tdW5pY2F0aW9uID0gY29tX3BfMTEsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudF9zYWZldHlfcmVzcCA9IHNhZl9wXzExLA0KICAgICAgICAgICAgICAgICAgICBlbGlnaWJsZV9wYXJlbnQgPSBucl9wLA0KICAgICAgICAgICAgICAgICAgICBlbGlnaWJsZV9zdHVkZW50ID0gbnJfcywNCiAgICAgICAgICAgICAgICAgICAgZWxpZ2libGVfdGVhY2hlciA9IG5yX3QsDQogICAgICAgICAgICAgICAgICAgIHN0dWRlbnRfcmVzcG9uZGVudHMgPSBOX3MsDQogICAgICAgICAgICAgICAgICAgIHRlYWNoZXJfcmVzcG9uZGVudHMgPSBOX3QsDQogICAgICAgICAgICAgICAgICAgIHBhcmVudF9yZXNwb25kZW50cyA9IE5fcCkNCmBgYA0KDQojIFNhdmUgZGF0YSBmcmFtZQ0KDQpgYGB7cn0NCndyaXRlLmNzdihueWNzX3YyLCBmaWxlID0gIk5ZQ1Mgc3VydmV5L255Y3Nfd29ya2luZy9ueWNzX3YyLmNzdiIpDQoNCmBgYA0KDQojQ3JlYXRlIGEgZGF0YWZyYW1lIHdpdGggZGF0YSBjb2x1bW4gZ3JvdXBlZCBieSBkZW1vZ3JhcGhpYw0KDQpgYGB7cn0NCg0KcGVyY2VwdGlvbl9hY2FkZW1pYyA8LSBzZWxlY3Qobnljc192MiwgcGFyZW50X3NhZmV0eV9yZXNwLCBwYXJlbnRfY29tbXVuaWNhdGlvbiwgcGFyZW50X2VuZ2FnZW1lbnQsIHBhcmVudF9hY2FkZW1pYywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlYWNoZXJfc2FmZXR5X3Jlc3AsIHRlYWNoZXJfY29tbXVuaWNhdGlvbiwgdGVhY2hlcl9lbmdhZ2VtZW50LCB0ZWFjaGVyX2FjYWRlbWljLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R1ZF9zYWZldHlfcmVzcCwgc3R1ZF9jb21tdW5pY2F0aW9uLCBzdHVkX2VuZ2FnZW1lbnQsIHN0dWRfYWNhZGVtaWMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2FkZW1pY190b3RhbCkNCmBgYA0KDQojIE5vdyB3ZSBjYWxjdWxhdGUgdGhlIGNvcnJlbGF0aW9ucyBiZXR3ZWVuIGFsbCBvZiB0aGVzZSBjb2x1bW5zDQoNCiNjcmVhdGUgdGhlIHBsb3QNCg0KYGBge3J9DQpjb3JfbWF0cml4IDwtIGNvcihwZXJjZXB0aW9uX2FjYWRlbWljLCB1c2UgPSAiY29tcGxldGUub2JzIikNCmNvcnJwbG90KGNvcl9tYXRyaXgsIG1ldGhvZCA9ICJjaXJjbGUiLCB0eXBlID0gInVwcGVyIiwgdGwuY29sID0gImJsYWNrIiwgdGwuc3J0ID0gNDUpDQpgYGANCg0KI29yZ2FuaXplIHRoZSBkYXRhIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHdvcmsgd2l0aCAjUmVhcnJhbmdlIGRhdGEgdXNpbmcNCiJtZWx0Ii4gVGhpcyBwdXRzIGFsbCBwZXJjZXB0aW9uIHNjb3JlcyBpbiBvbmUgY29sdW1uLCBhbmQgdGhlIGdyb3VwIGluDQphbm90aGVyLg0KDQpgYGB7cn0NCmFjYWRlbWljLmRmIDwtIHNlbGVjdChueWNzX3YyICwgc3R1ZF9hY2FkZW1pYywgdGVhY2hlcl9hY2FkZW1pYywgcGFyZW50X2FjYWRlbWljKQ0KYWNhZGVtaWMuZGYgPC0gbWVsdChhY2FkZW1pYy5kZikNCmBgYA0KDQojY3JlYXRlIHRoZSBib3hwbG90DQoNCmBgYHtyfQ0KZ2dwbG90KGFjYWRlbWljLmRmICwgYWVzKHggPSB2YXJpYWJsZSwgeSA9IHZhbHVlLCBmaWxsID0gdmFyaWFibGUpKSArIGdlb21fYm94cGxvdChhbHBoYSA9IDAuNykgKw0KICBsYWJzKHRpdGxlID0gIkNvbXBhcmlzb24gb2YgQWNhZGVtaWMgUGVyY2VwdGlvbnMgYnkgR3JvdXAiLCB4ID0gIkdyb3VwIiwgeSA9ICJBY2FkZW1pYyBQZXJjZXB0aW9uIFNjb3JlIikgKyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1KSkNCg0KYGBgDQoNCiMgcmVwZWF0IHNhbWUgcHJvY2VzcyBmb3IgZW5nYWdlbWVudA0KDQojb3JnYW5pemUgdGhlIGRhdGEgdG8gbWFrZSBpdCBlYXNpZXIgdG8gd29yayB3aXRoICNVc2UgbWVsdCB0byByZWFycmFuZ2UNCmRhdGUgI2NyZWF0ZSB0aGUgYm94cGxvdA0KDQpgYGB7cn0NCmVuZ2FnZW1lbnQuZGYgPC0gc2VsZWN0KG55Y3NfdjIsIHN0dWRfZW5nYWdlbWVudCwgdGVhY2hlcl9lbmdhZ2VtZW50LCBwYXJlbnRfZW5nYWdlbWVudCkNCg0KZW5nYWdlbWVudC5kZiA8LSBtZWx0KGVuZ2FnZW1lbnQuZGYpDQoNCmdncGxvdChlbmdhZ2VtZW50LmRmICwgYWVzKHggPSB2YXJpYWJsZSwgeSA9IHZhbHVlLCBmaWxsID0gdmFyaWFibGUpKSArIGdlb21fYm94cGxvdChhbHBoYSA9IDAuNykgKyBsYWJzKHRpdGxlID0gIkNvbXBhcmlzb24gb2YgRW5nYWdlbWVudCBQZXJjZXB0aW9ucyBieSBHcm91cCIseCA9ICJHcm91cCIsIHkgPSAiRW5nYWdlbWVudCBQZXJjZXB0aW9uIFNjb3JlIikgKyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDE1KSkNCmBgYA0KDQojUmVwZWF0IHNhbWUgcHJvY2VzcyBmb3IgY29tbXVuaWNhdGlvbiAjb3JnYW5pemUgdGhlIGRhdGEgdG8gbWFrZSBpdA0KZWFzaWVyIHRvIHdvcmsgd2l0aCAjVXNlIG1lbHQgdG8gcmVhcnJhbmdlIGRhdGUgI2NyZWF0ZSB0aGUgYm94cGxvdA0KDQpgYGB7cn0NCmNvbW11bmljYXRpb24uZGYgPC0gc2VsZWN0KG55Y3NfdjIgLCBzdHVkX2NvbW11bmljYXRpb24sIHRlYWNoZXJfY29tbXVuaWNhdGlvbiwgcGFyZW50X2NvbW11bmljYXRpb24pDQoNCmNvbW11bmljYXRpb24uZGYgPC0gbWVsdChjb21tdW5pY2F0aW9uLmRmKQ0KDQpnZ3Bsb3QoY29tbXVuaWNhdGlvbi5kZiAsIGFlcyh4ID0gdmFyaWFibGUsIHkgPSB2YWx1ZSwgZmlsbCA9IHZhcmlhYmxlKSkgKyBnZW9tX2JveHBsb3QoYWxwaGEgPSAwLjcpICsgbGFicyh0aXRsZSA9ICJDb21wYXJpc29uIG9mIENvbW11bmljYXRpb24gUGVyY2VwdGlvbnMgYnkgR3JvdXAiLCB4ID0gIkdyb3VwIiwgeSA9ICJDb21tdW5pY2F0aW9uIFBlcmNlcHRpb24gU2NvcmUiKSArIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMTUpKQ0KDQpgYGANCg0KI1JlcGVhdCBzYW1lIHByb2Nlc3MgZm9yIFNhZmV0eSAmIFJlc3BlY3QgI29yZ2FuaXplIHRoZSBkYXRhIHRvIG1ha2UgaXQNCmVhc2llciB0byB3b3JrIHdpdGggI1VzZSBtZWx0IHRvIHJlYXJyYW5nZSBkYXRlICNjcmVhdGUgdGhlIGJveHBsb3QNCg0KYGBge3J9DQpzYWZldHlfcmVzcGVjdC5kZiA8LSBzZWxlY3Qobnljc192MiAsIHN0dWRfc2FmZXR5X3Jlc3AsIHRlYWNoZXJfc2FmZXR5X3Jlc3AsIHBhcmVudF9zYWZldHlfcmVzcCkNCg0Kc2FmZXR5X3Jlc3BlY3QuZGYgPC0gbWVsdChzYWZldHlfcmVzcGVjdC5kZikNCg0KZ2dwbG90KHNhZmV0eV9yZXNwZWN0LmRmICwgYWVzKHggPSB2YXJpYWJsZSwgeSA9IHZhbHVlLCBmaWxsID0gdmFyaWFibGUpKSArIGdlb21fYm94cGxvdChhbHBoYSA9IDAuNykgKyBsYWJzKHRpdGxlID0gIkNvbXBhcmlzb24gb2YgU2FmZXR5ICYgUmVzcGVjdCBQZXJjZXB0aW9ucyBieSBHcm91cCIseCA9ICJHcm91cCIsIHkgPSAiU2FmZXR5ICYgUmVzcGVjdCBQZXJjZXB0aW9uIFNjb3JlIikgKyAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAxNSkpDQpgYGANCg==