install.packages(“readxl”) install.packages(“ggpubr”)

install.packages(“flextable”)

install.packages(“janitor”)

#obviously to make this part work you may have to alter the path to the file to work for you. library(readxl) Firm_level_dataset_Chile <- read_excel(“C:/Users/baile/Downloads/Firm Level Dataset Chile.xlsx”)

Trade_Data_UK <- read_excel(“C:/Users/baile/Downloads/Trade Data for UK.xlsx”)

library(dplyr) library(tidyr) library(flextable) library(janitor) library(ggplot2) library(stringr)

#5a
#Create dummy variable
Firm_level_dataset_Chile$exporter<-ifelse(Firm_level_dataset_Chile$exports>0,1,0) 

#Creating a simple table

#Note, I left out owners and comissioned workers from total employment as they are likely not employees 
summary_table <- Firm_level_dataset_Chile%>%group_by(exporter)%>%summarise(avg_total_employment = mean(mceo+fceo+mskilled+fskilled+madm+fadm+munskilled+funskilled+mserv+fserv,na.rm = TRUE), avg_sale = mean(sales,na.rm = TRUE), avg_va = mean(va, na.rm = TRUE), avg_ceo_pay = mean(wageceo,na.rm = TRUE), avg_skilled_pay = mean(wageskilled,na.rm = TRUE), avg_unskilled_pay = mean(wageunskilled,na.rm = TRUE), avg_Admin_wage = mean(wageadm,na.rm = TRUE), avg_Services_wage = mean(wageserv,na.rm = TRUE), avg_Technology_Transfer_Spending = mean(asiiva+aseval,na.rm = TRUE), avg_Patent_expenses = mean(patimp,na.rm = TRUE), avg_Labour_Productivity = mean(ifelse((mceo+fceo+mskilled+fskilled+madm+fadm+munskilled+funskilled+mserv+fserv) == 0,NA,va/(mceo+fceo+mskilled+fskilled+madm+fadm+munskilled+funskilled+mserv+fserv)),na.rm = TRUE))

#Reformatting to better layout
summary_table_long <- summary_table %>% pivot_longer(cols = -exporter,names_to = "variable",values_to = "value") %>%pivot_wider(names_from = exporter,values_from = value,names_prefix = "exporter_")%>%mutate(Difference = exporter_1 - exporter_0)%>%mutate(Percentage_difference = (exporter_1 - exporter_0)/exporter_0 * 100)

#making the names clearer
summary_table_long <- summary_table_long %>%rename(Non_exporter = exporter_0,Exporter = exporter_1)

print(summary_table_long)
#5b
#Creating the table
Summary_table1 <- Firm_level_dataset_Chile %>% mutate(domestic_sales = sales - exports) %>% group_by(isic3_2d, description_industry) %>% summarise(total_domestic_sales = sum(domestic_sales, na.rm = TRUE), total_exports = sum(exports, na.rm = TRUE), total_sales = sum(sales, na.rm = TRUE),.groups = "drop")%>% mutate(export_share = round(100*total_exports/total_sales, 1)) %>% select(description_industry, total_domestic_sales, total_exports, total_sales, export_share) %>% arrange(desc(total_sales))

#Changing into a flex table as this made it much neater
ft <- flextable(Summary_table1)
ft <- autofit(ft)
ft

#Simple regression
model_industry <- lm(total_exports ~ total_domestic_sales, data = Summary_table1)
summary(model_industry)
#6a
#Cleaning the names so they are lower case
Trade_Data_UK <- Trade_Data_UK %>% clean_names()

#creating the summary table
Trade_Data_UK_avg <- Trade_Data_UK %>% group_by(year) %>% summarise(East_Asia_Pacific = mean(east_asia_pacific_exports_million_usd, na.rm = TRUE),EU = mean(eu_28_exports_million_usd, na.rm = TRUE),MENA= mean(middle_east_north_africa_exports_million_usd, na.rm = TRUE), North_America = mean(north_america_exports_million_usd, na.rm = TRUE), South_Asia = mean(south_asia_exports_million_usd, na.rm = TRUE), Sub_Saharan_Africa = mean(sub_saharan_africa_exports_million_usd, na.rm = TRUE))

#Converting to a long summarey table
Trade_Data_UK_long <- Trade_Data_UK_avg %>% pivot_longer(cols = -year,names_to = "region",values_to = "avg_exports")

#Changing the way the year data is formatted 
Trade_Data_UK_long$year <- as.integer(Trade_Data_UK_long$year)

#Creating the graph
ggplot(Trade_Data_UK_long, aes(x = year, y = avg_exports, colour = region)) + geom_line(size = 1.2) + geom_point(size = 2) + scale_x_continuous(breaks = 2013:2024, labels = as.character(2013:2024)) + labs(title = "Average UK Exports by Region (2013–2024)",x = "Year",y = "Average Exports (Million USD)",colour = "Region") + theme_minimal(base_size = 14) + theme(legend.position = "bottom",plot.title = element_text(face = "bold"))

#Find the total avg exports for each industry
industry_avg_exports <- Trade_Data_UK %>% group_by(product_code) %>% summarise(avg_total_exports = mean(total_exports_million_usd, na.rm = TRUE)) %>% arrange(desc(avg_total_exports))

#Filter out the top 5
top5_industries <- industry_avg_exports %>% slice_max(avg_total_exports, n = 5) %>% pull(product_code)

#Filter the data set for just the top 5 industries
UK_top5 <- Trade_Data_UK %>% filter(product_code %in% top5_industries)

#Convert the data set to long form
UK_top5_long <- UK_top5 %>% pivot_longer(cols = c(east_asia_pacific_exports_million_usd,eu_28_exports_million_usd,middle_east_north_africa_exports_million_usd,north_america_exports_million_usd,south_asia_exports_million_usd,sub_saharan_africa_exports_million_usd),names_to = "region",values_to = "exports")

#Cleaning up the names
UK_top5_long <- UK_top5_long %>% mutate(region = case_when(str_detect(region, "eu_28") ~ "EU",str_detect(region, "north_america") ~ "North America",str_detect(region, "south_asia") ~ "South Asia",str_detect(region, "east_asia_pacific") ~ "East Asia-Pacific",str_detect(region, "middle_east_north_africa") ~ "MENA",str_detect(region, "sub_saharan_africa") ~ "Sub-Saharan Africa",TRUE ~ region))

#Plotting the exports of the top 5 industries 
ggplot(UK_top5_long, aes(x = year, y = exports, colour = region)) + geom_line(size = 1.2) + facet_wrap(~ product_name, scales = "free_y") + scale_x_continuous(breaks = 2013:2024) + labs(title = "Exports by Region for Top 5 UK Industries (2013–2024)",x = "Year",y = "Exports (Million USD)",colour = "Region") + theme_minimal(base_size = 14) + theme(legend.position = "bottom",plot.title = element_text(face = "bold"),axis.text.x = element_text(angle = 45, hjust = 1))
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQppbnN0YWxsLnBhY2thZ2VzKCJyZWFkeGwiKQ0KaW5zdGFsbC5wYWNrYWdlcygiZ2dwdWJyIikNCg0KaW5zdGFsbC5wYWNrYWdlcygiZmxleHRhYmxlIikNCg0KaW5zdGFsbC5wYWNrYWdlcygiamFuaXRvciIpDQoNCiNvYnZpb3VzbHkgdG8gbWFrZSB0aGlzIHBhcnQgd29yayB5b3UgbWF5IGhhdmUgdG8gYWx0ZXIgdGhlIHBhdGggdG8gdGhlIGZpbGUgdG8gd29yayBmb3IgeW91LiANCmxpYnJhcnkocmVhZHhsKQ0KRmlybV9sZXZlbF9kYXRhc2V0X0NoaWxlIDwtIHJlYWRfZXhjZWwoIkM6L1VzZXJzL2JhaWxlL0Rvd25sb2Fkcy9GaXJtIExldmVsIERhdGFzZXQgQ2hpbGUueGxzeCIpDQoNClRyYWRlX0RhdGFfVUsgPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvYmFpbGUvRG93bmxvYWRzL1RyYWRlIERhdGEgZm9yIFVLLnhsc3giKQ0KDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeSh0aWR5cikNCmxpYnJhcnkoZmxleHRhYmxlKQ0KbGlicmFyeShqYW5pdG9yKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShzdHJpbmdyKQ0KDQpgYGB7cn0NCiM1YQ0KI0NyZWF0ZSBkdW1teSB2YXJpYWJsZQ0KRmlybV9sZXZlbF9kYXRhc2V0X0NoaWxlJGV4cG9ydGVyPC1pZmVsc2UoRmlybV9sZXZlbF9kYXRhc2V0X0NoaWxlJGV4cG9ydHM+MCwxLDApIA0KDQojQ3JlYXRpbmcgYSBzaW1wbGUgdGFibGUNCg0KI05vdGUsIEkgbGVmdCBvdXQgb3duZXJzIGFuZCBjb21pc3Npb25lZCB3b3JrZXJzIGZyb20gdG90YWwgZW1wbG95bWVudCBhcyB0aGV5IGFyZSBsaWtlbHkgbm90IGVtcGxveWVlcyANCnN1bW1hcnlfdGFibGUgPC0gRmlybV9sZXZlbF9kYXRhc2V0X0NoaWxlJT4lZ3JvdXBfYnkoZXhwb3J0ZXIpJT4lc3VtbWFyaXNlKGF2Z190b3RhbF9lbXBsb3ltZW50ID0gbWVhbihtY2VvK2ZjZW8rbXNraWxsZWQrZnNraWxsZWQrbWFkbStmYWRtK211bnNraWxsZWQrZnVuc2tpbGxlZCttc2Vyditmc2VydixuYS5ybSA9IFRSVUUpLCBhdmdfc2FsZSA9IG1lYW4oc2FsZXMsbmEucm0gPSBUUlVFKSwgYXZnX3ZhID0gbWVhbih2YSwgbmEucm0gPSBUUlVFKSwgYXZnX2Nlb19wYXkgPSBtZWFuKHdhZ2VjZW8sbmEucm0gPSBUUlVFKSwgYXZnX3NraWxsZWRfcGF5ID0gbWVhbih3YWdlc2tpbGxlZCxuYS5ybSA9IFRSVUUpLCBhdmdfdW5za2lsbGVkX3BheSA9IG1lYW4od2FnZXVuc2tpbGxlZCxuYS5ybSA9IFRSVUUpLCBhdmdfQWRtaW5fd2FnZSA9IG1lYW4od2FnZWFkbSxuYS5ybSA9IFRSVUUpLCBhdmdfU2VydmljZXNfd2FnZSA9IG1lYW4od2FnZXNlcnYsbmEucm0gPSBUUlVFKSwgYXZnX1RlY2hub2xvZ3lfVHJhbnNmZXJfU3BlbmRpbmcgPSBtZWFuKGFzaWl2YSthc2V2YWwsbmEucm0gPSBUUlVFKSwgYXZnX1BhdGVudF9leHBlbnNlcyA9IG1lYW4ocGF0aW1wLG5hLnJtID0gVFJVRSksIGF2Z19MYWJvdXJfUHJvZHVjdGl2aXR5ID0gbWVhbihpZmVsc2UoKG1jZW8rZmNlbyttc2tpbGxlZCtmc2tpbGxlZCttYWRtK2ZhZG0rbXVuc2tpbGxlZCtmdW5za2lsbGVkK21zZXJ2K2ZzZXJ2KSA9PSAwLE5BLHZhLyhtY2VvK2ZjZW8rbXNraWxsZWQrZnNraWxsZWQrbWFkbStmYWRtK211bnNraWxsZWQrZnVuc2tpbGxlZCttc2Vyditmc2VydikpLG5hLnJtID0gVFJVRSkpDQoNCiNSZWZvcm1hdHRpbmcgdG8gYmV0dGVyIGxheW91dA0Kc3VtbWFyeV90YWJsZV9sb25nIDwtIHN1bW1hcnlfdGFibGUgJT4lIHBpdm90X2xvbmdlcihjb2xzID0gLWV4cG9ydGVyLG5hbWVzX3RvID0gInZhcmlhYmxlIix2YWx1ZXNfdG8gPSAidmFsdWUiKSAlPiVwaXZvdF93aWRlcihuYW1lc19mcm9tID0gZXhwb3J0ZXIsdmFsdWVzX2Zyb20gPSB2YWx1ZSxuYW1lc19wcmVmaXggPSAiZXhwb3J0ZXJfIiklPiVtdXRhdGUoRGlmZmVyZW5jZSA9IGV4cG9ydGVyXzEgLSBleHBvcnRlcl8wKSU+JW11dGF0ZShQZXJjZW50YWdlX2RpZmZlcmVuY2UgPSAoZXhwb3J0ZXJfMSAtIGV4cG9ydGVyXzApL2V4cG9ydGVyXzAgKiAxMDApDQoNCiNtYWtpbmcgdGhlIG5hbWVzIGNsZWFyZXINCnN1bW1hcnlfdGFibGVfbG9uZyA8LSBzdW1tYXJ5X3RhYmxlX2xvbmcgJT4lcmVuYW1lKE5vbl9leHBvcnRlciA9IGV4cG9ydGVyXzAsRXhwb3J0ZXIgPSBleHBvcnRlcl8xKQ0KDQpwcmludChzdW1tYXJ5X3RhYmxlX2xvbmcpDQpgYGANCg0KYGBge3J9DQojNWINCiNDcmVhdGluZyB0aGUgdGFibGUNClN1bW1hcnlfdGFibGUxIDwtIEZpcm1fbGV2ZWxfZGF0YXNldF9DaGlsZSAlPiUgbXV0YXRlKGRvbWVzdGljX3NhbGVzID0gc2FsZXMgLSBleHBvcnRzKSAlPiUgZ3JvdXBfYnkoaXNpYzNfMmQsIGRlc2NyaXB0aW9uX2luZHVzdHJ5KSAlPiUgc3VtbWFyaXNlKHRvdGFsX2RvbWVzdGljX3NhbGVzID0gc3VtKGRvbWVzdGljX3NhbGVzLCBuYS5ybSA9IFRSVUUpLCB0b3RhbF9leHBvcnRzID0gc3VtKGV4cG9ydHMsIG5hLnJtID0gVFJVRSksIHRvdGFsX3NhbGVzID0gc3VtKHNhbGVzLCBuYS5ybSA9IFRSVUUpLC5ncm91cHMgPSAiZHJvcCIpJT4lIG11dGF0ZShleHBvcnRfc2hhcmUgPSByb3VuZCgxMDAqdG90YWxfZXhwb3J0cy90b3RhbF9zYWxlcywgMSkpICU+JSBzZWxlY3QoZGVzY3JpcHRpb25faW5kdXN0cnksIHRvdGFsX2RvbWVzdGljX3NhbGVzLCB0b3RhbF9leHBvcnRzLCB0b3RhbF9zYWxlcywgZXhwb3J0X3NoYXJlKSAlPiUgYXJyYW5nZShkZXNjKHRvdGFsX3NhbGVzKSkNCg0KI0NoYW5naW5nIGludG8gYSBmbGV4IHRhYmxlIGFzIHRoaXMgbWFkZSBpdCBtdWNoIG5lYXRlcg0KZnQgPC0gZmxleHRhYmxlKFN1bW1hcnlfdGFibGUxKQ0KZnQgPC0gYXV0b2ZpdChmdCkNCmZ0DQoNCiNTaW1wbGUgcmVncmVzc2lvbg0KbW9kZWxfaW5kdXN0cnkgPC0gbG0odG90YWxfZXhwb3J0cyB+IHRvdGFsX2RvbWVzdGljX3NhbGVzLCBkYXRhID0gU3VtbWFyeV90YWJsZTEpDQpzdW1tYXJ5KG1vZGVsX2luZHVzdHJ5KQ0KDQpgYGANCg0KYGBge3J9DQojNmENCiNDbGVhbmluZyB0aGUgbmFtZXMgc28gdGhleSBhcmUgbG93ZXIgY2FzZQ0KVHJhZGVfRGF0YV9VSyA8LSBUcmFkZV9EYXRhX1VLICU+JSBjbGVhbl9uYW1lcygpDQoNCiNjcmVhdGluZyB0aGUgc3VtbWFyeSB0YWJsZQ0KVHJhZGVfRGF0YV9VS19hdmcgPC0gVHJhZGVfRGF0YV9VSyAlPiUgZ3JvdXBfYnkoeWVhcikgJT4lIHN1bW1hcmlzZShFYXN0X0FzaWFfUGFjaWZpYyA9IG1lYW4oZWFzdF9hc2lhX3BhY2lmaWNfZXhwb3J0c19taWxsaW9uX3VzZCwgbmEucm0gPSBUUlVFKSxFVSA9IG1lYW4oZXVfMjhfZXhwb3J0c19taWxsaW9uX3VzZCwgbmEucm0gPSBUUlVFKSxNRU5BPSBtZWFuKG1pZGRsZV9lYXN0X25vcnRoX2FmcmljYV9leHBvcnRzX21pbGxpb25fdXNkLCBuYS5ybSA9IFRSVUUpLCBOb3J0aF9BbWVyaWNhID0gbWVhbihub3J0aF9hbWVyaWNhX2V4cG9ydHNfbWlsbGlvbl91c2QsIG5hLnJtID0gVFJVRSksIFNvdXRoX0FzaWEgPSBtZWFuKHNvdXRoX2FzaWFfZXhwb3J0c19taWxsaW9uX3VzZCwgbmEucm0gPSBUUlVFKSwgU3ViX1NhaGFyYW5fQWZyaWNhID0gbWVhbihzdWJfc2FoYXJhbl9hZnJpY2FfZXhwb3J0c19taWxsaW9uX3VzZCwgbmEucm0gPSBUUlVFKSkNCg0KI0NvbnZlcnRpbmcgdG8gYSBsb25nIHN1bW1hcmV5IHRhYmxlDQpUcmFkZV9EYXRhX1VLX2xvbmcgPC0gVHJhZGVfRGF0YV9VS19hdmcgJT4lIHBpdm90X2xvbmdlcihjb2xzID0gLXllYXIsbmFtZXNfdG8gPSAicmVnaW9uIix2YWx1ZXNfdG8gPSAiYXZnX2V4cG9ydHMiKQ0KDQojQ2hhbmdpbmcgdGhlIHdheSB0aGUgeWVhciBkYXRhIGlzIGZvcm1hdHRlZCANClRyYWRlX0RhdGFfVUtfbG9uZyR5ZWFyIDwtIGFzLmludGVnZXIoVHJhZGVfRGF0YV9VS19sb25nJHllYXIpDQoNCiNDcmVhdGluZyB0aGUgZ3JhcGgNCmdncGxvdChUcmFkZV9EYXRhX1VLX2xvbmcsIGFlcyh4ID0geWVhciwgeSA9IGF2Z19leHBvcnRzLCBjb2xvdXIgPSByZWdpb24pKSArIGdlb21fbGluZShzaXplID0gMS4yKSArIGdlb21fcG9pbnQoc2l6ZSA9IDIpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IDIwMTM6MjAyNCwgbGFiZWxzID0gYXMuY2hhcmFjdGVyKDIwMTM6MjAyNCkpICsgbGFicyh0aXRsZSA9ICJBdmVyYWdlIFVLIEV4cG9ydHMgYnkgUmVnaW9uICgyMDEz4oCTMjAyNCkiLHggPSAiWWVhciIseSA9ICJBdmVyYWdlIEV4cG9ydHMgKE1pbGxpb24gVVNEKSIsY29sb3VyID0gIlJlZ2lvbiIpICsgdGhlbWVfbWluaW1hbChiYXNlX3NpemUgPSAxNCkgKyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiYm90dG9tIixwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIpKQ0KDQpgYGANCg0KYGBge3J9DQoNCiNGaW5kIHRoZSB0b3RhbCBhdmcgZXhwb3J0cyBmb3IgZWFjaCBpbmR1c3RyeQ0KaW5kdXN0cnlfYXZnX2V4cG9ydHMgPC0gVHJhZGVfRGF0YV9VSyAlPiUgZ3JvdXBfYnkocHJvZHVjdF9jb2RlKSAlPiUgc3VtbWFyaXNlKGF2Z190b3RhbF9leHBvcnRzID0gbWVhbih0b3RhbF9leHBvcnRzX21pbGxpb25fdXNkLCBuYS5ybSA9IFRSVUUpKSAlPiUgYXJyYW5nZShkZXNjKGF2Z190b3RhbF9leHBvcnRzKSkNCg0KI0ZpbHRlciBvdXQgdGhlIHRvcCA1DQp0b3A1X2luZHVzdHJpZXMgPC0gaW5kdXN0cnlfYXZnX2V4cG9ydHMgJT4lIHNsaWNlX21heChhdmdfdG90YWxfZXhwb3J0cywgbiA9IDUpICU+JSBwdWxsKHByb2R1Y3RfY29kZSkNCg0KI0ZpbHRlciB0aGUgZGF0YSBzZXQgZm9yIGp1c3QgdGhlIHRvcCA1IGluZHVzdHJpZXMNClVLX3RvcDUgPC0gVHJhZGVfRGF0YV9VSyAlPiUgZmlsdGVyKHByb2R1Y3RfY29kZSAlaW4lIHRvcDVfaW5kdXN0cmllcykNCg0KI0NvbnZlcnQgdGhlIGRhdGEgc2V0IHRvIGxvbmcgZm9ybQ0KVUtfdG9wNV9sb25nIDwtIFVLX3RvcDUgJT4lIHBpdm90X2xvbmdlcihjb2xzID0gYyhlYXN0X2FzaWFfcGFjaWZpY19leHBvcnRzX21pbGxpb25fdXNkLGV1XzI4X2V4cG9ydHNfbWlsbGlvbl91c2QsbWlkZGxlX2Vhc3Rfbm9ydGhfYWZyaWNhX2V4cG9ydHNfbWlsbGlvbl91c2Qsbm9ydGhfYW1lcmljYV9leHBvcnRzX21pbGxpb25fdXNkLHNvdXRoX2FzaWFfZXhwb3J0c19taWxsaW9uX3VzZCxzdWJfc2FoYXJhbl9hZnJpY2FfZXhwb3J0c19taWxsaW9uX3VzZCksbmFtZXNfdG8gPSAicmVnaW9uIix2YWx1ZXNfdG8gPSAiZXhwb3J0cyIpDQoNCiNDbGVhbmluZyB1cCB0aGUgbmFtZXMNClVLX3RvcDVfbG9uZyA8LSBVS190b3A1X2xvbmcgJT4lIG11dGF0ZShyZWdpb24gPSBjYXNlX3doZW4oc3RyX2RldGVjdChyZWdpb24sICJldV8yOCIpIH4gIkVVIixzdHJfZGV0ZWN0KHJlZ2lvbiwgIm5vcnRoX2FtZXJpY2EiKSB+ICJOb3J0aCBBbWVyaWNhIixzdHJfZGV0ZWN0KHJlZ2lvbiwgInNvdXRoX2FzaWEiKSB+ICJTb3V0aCBBc2lhIixzdHJfZGV0ZWN0KHJlZ2lvbiwgImVhc3RfYXNpYV9wYWNpZmljIikgfiAiRWFzdCBBc2lhLVBhY2lmaWMiLHN0cl9kZXRlY3QocmVnaW9uLCAibWlkZGxlX2Vhc3Rfbm9ydGhfYWZyaWNhIikgfiAiTUVOQSIsc3RyX2RldGVjdChyZWdpb24sICJzdWJfc2FoYXJhbl9hZnJpY2EiKSB+ICJTdWItU2FoYXJhbiBBZnJpY2EiLFRSVUUgfiByZWdpb24pKQ0KDQojUGxvdHRpbmcgdGhlIGV4cG9ydHMgb2YgdGhlIHRvcCA1IGluZHVzdHJpZXMgDQpnZ3Bsb3QoVUtfdG9wNV9sb25nLCBhZXMoeCA9IHllYXIsIHkgPSBleHBvcnRzLCBjb2xvdXIgPSByZWdpb24pKSArIGdlb21fbGluZShzaXplID0gMS4yKSArIGZhY2V0X3dyYXAofiBwcm9kdWN0X25hbWUsIHNjYWxlcyA9ICJmcmVlX3kiKSArIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSAyMDEzOjIwMjQpICsgbGFicyh0aXRsZSA9ICJFeHBvcnRzIGJ5IFJlZ2lvbiBmb3IgVG9wIDUgVUsgSW5kdXN0cmllcyAoMjAxM+KAkzIwMjQpIix4ID0gIlllYXIiLHkgPSAiRXhwb3J0cyAoTWlsbGlvbiBVU0QpIixjb2xvdXIgPSAiUmVnaW9uIikgKyB0aGVtZV9taW5pbWFsKGJhc2Vfc2l6ZSA9IDE0KSArIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJib3R0b20iLHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJib2xkIiksYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxKSkNCg0KYGBgDQoNCg0KDQoNCg==