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

Libraries Involved in developing the R scripts.

library(knitr)
library(ggplot2)
library(dplyr)
library(rworldmap)
library(tidyverse)
library(treemapify)
library(treemap)

Reading the file in .csv format. The file can be downloaded from IUCN website by specifing the years’ of data needed.

wild <- read.csv("C:/Users/Sharathchandra B M/Desktop/Syracuse_IM_2nd_Sem/IST719/Poster/WildLifeTrade2016-2017.csv", header = T, stringsAsFactors = F)
wild[is.na(wild)] <- 0
wild2 <- wild
wild <- wild2

Renaming column names’ to understand. Changing of values according to the IUCN Cites document.

colnames(wild) <- c("Year","Appendix","Scientific Name","Class Name","Order Name","Family Name","Genus Name","Importer Country","Exporter Country","Origin Country","Imp Quantity","Exp Quantity","Sold Good Term","Units Traded","Purpose Of Trade","Source Of Trade")
wild$`Purpose Of Trade` <- ifelse(wild$`Purpose Of Trade`=="B", "Breeding",
                     ifelse( wild$`Purpose Of Trade`=="E", "Educational",
                             ifelse ( wild$`Purpose Of Trade`=="G", "Garden",
                                      ifelse( wild$`Purpose Of Trade`=="H", "Hunting",
                                              ifelse ( wild$`Purpose Of Trade`=="L", "Law",
                                                       ifelse ( wild$`Purpose Of Trade`=="M", "Medical",
                                                                ifelse( wild$`Purpose Of Trade`=="R", "reintroduction to wild",
                                                                        ifelse ( wild$`Purpose Of Trade`=="P", "Personal",
                                                                                 ifelse ( wild$`Purpose Of Trade`=="Q", "Circus",
                                                                                          ifelse( wild$`Purpose Of Trade`=="S", "Scientific",
                                                                                                  ifelse ( wild$`Purpose Of Trade`=="T", "Commercial",
                                                                                                           ifelse ( wild$`Purpose Of Trade`=="Z", "Zoo",
                                                                                                                    "Unknown"))))))))))))
wild$`Exporter Country` <- ifelse(wild$`Exporter Country` %in% c("CN", "HK"), "China",
                         ifelse( wild$`Exporter Country`=="US", "USA",
                                 ifelse ( wild$`Exporter Country`=="AE", "Unite Arab Emirates",
                                          ifelse( wild$`Exporter Country`=="BE", "Belgium",
                                                  ifelse ( wild$`Exporter Country`=="CZ", "Czech Republic",
                                                           ifelse ( wild$`Exporter Country`=="NL", "Netherlands",
                                                                    ifelse( wild$`Exporter Country`=="ID", "Indonesia",
                                                                            ifelse ( wild$`Exporter Country`=="IT", "Italy",
                                                                                     ifelse ( wild$`Exporter Country`=="SG", "Singerpore",
                                                                                              ifelse( wild$`Exporter Country`=="MY", "Malaysia",
                                                                                                      ifelse ( wild$`Exporter Country`=="JP", "Japan",
                                                                                                               ifelse ( wild$`Exporter Country`=="MG", "Madagascar",
                                                                                                                        ifelse ( wild$`Exporter Country`=="FR", "France",
                                                                                                                                 ifelse ( wild$`Exporter Country`=="DE", "Germany",
                                                                                                                                          ifelse ( wild$`Exporter Country`=="GB", "Britain",
                                                                                                                                                   ifelse ( wild$`Exporter Country`=="PE", "Peru",
                                                                                                                                                            ifelse ( wild$`Exporter Country`=="DE", "Germany",
                                                                                                                                                                     ifelse ( wild$`Exporter Country`=="ES", "Spain",
                                                                                                                                                                              ifelse ( wild$`Exporter Country`=="ZW", "Zimbabwe",
                                                                                                                                                                                       ifelse ( wild$`Exporter Country`=="PH", "Philippines",
                                                                                                                                                                                                ifelse ( wild$`Exporter Country`=="MC", "Monaco",
                                                                                                                                                                                                         ifelse ( wild$`Exporter Country`=="IL", "Israel",
                                                                                                                                                                                                                  ifelse ( wild$`Exporter Country`=="AR", "Argentina",
                                                                                                                                                                                                                           ifelse ( wild$`Exporter Country`=="GT", "Guatemala",
                                                                                                                                                                                                                                    ifelse ( wild$`Exporter Country`=="KW", "Kuwait",
                                                                                                                                                                                                                                             ifelse ( wild$`Exporter Country`=="DK", "Denmark",
                                                                                                                                                                                                                                                      ifelse ( wild$`Exporter Country`=="UY", "Uruguay",
                                                                                                                                                                                                                                                               ifelse ( wild$`Exporter Country`=="GE", "Geogria",
                                                                                                                                                                                                                                                                        ifelse ( wild$`Exporter Country`=="PL", "Poland",
                                                                                                                                                                                                                                                                                 ifelse ( wild$`Exporter Country`=="TN", "Tunisia",
                                                                                                                                                                                                                                                                                          ifelse ( wild$`Exporter Country`=="KE", "Kenya",
                                                                                                                                                                                                                                                                                                   ifelse ( wild$`Exporter Country`=="NO", "Norway",
                                                                                                                                                                                                                                                                                                            ifelse ( wild$`Exporter Country`=="UG", "Uganda",
                                                                                                                                                                                                                                                                                                                     ifelse ( wild$`Exporter Country`=="MA", "Morocco",
                                                                                                                                                                                                                                                                                                                              ifelse ( wild$`Exporter Country`=="BS", "Bahamas",
                                                                                                                                                                                                                                                                                                                                       ifelse ( wild$`Exporter Country`=="NP", "Nepal",
                                                                                                                                                                                                                                                                                                                                                ifelse ( wild$`Exporter Country`=="IN", "India",
                                                                                                                                                                                                                                                                                                                                                         ifelse ( wild$`Exporter Country`=="NI", "Nicaragua",
                                                                                                                                                                                                                                                                                                                                                                  ifelse ( wild$`Exporter Country`=="PY", "Paraguay",
                                                                                                                                                                                                                                                                                                                                                                           ifelse ( wild$`Exporter Country`=="AM", "Armenia",
                                                                                                                                                                                                                                                                                                                                                                                    ifelse ( wild$`Exporter Country`=="TH", "Thailand",
                                                                                                                                                                                                                                                                                                                                                                                             ifelse ( wild$`Exporter Country`=="CA", "Canada",
                                                                                                                                                                                                                                                                                                                                                                                                      ifelse ( wild$`Exporter Country`=="NG", "Nigeria",
                                                                                                                                                                                                                                                                                                                                                                                                               ifelse ( wild$`Exporter Country`=="MX", "Mexico",
                                                                                                                                                                                                                                                                                                                                                                                                                       ifelse ( wild$`Exporter Country`=="CM", "Cameroon",
                                                                                                                                                                                                                                                                                                                                                                                                                                 ifelse ( wild$`Exporter Country`=="FJ", "Fiji",
                                                                                                                                                                                                                                                                                                                                                                                                                                          ifelse ( wild$`Exporter Country`=="ZA", "South Africa",
                                                                                                                                                                                                                                                                                                                                                                                                                                                   ifelse ( wild$`Exporter Country`=="JM", "Jamaica",
                                                                                                                                                                                                                                                                                                                                                                                                                                                            ifelse ( wild$`Exporter Country`=="AD", "Andorra",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     wild$`Exporter Country`)))))))))))))))))))))))))))))))))))))))))))))))))
wild$`Importer Country` <- ifelse(wild$`Importer Country` %in% c("CN", "HK"), "China",
                                                    ifelse( wild$`Importer Country`=="US", "USA",
                                                            ifelse ( wild$`Importer Country`=="AE", "Unite Arab Emirates",
                                                                     ifelse( wild$`Importer Country`=="BE", "Belgium",
                                                                             ifelse ( wild$`Importer Country`=="CZ", "Czech Republic",
                                                                                      ifelse ( wild$`Importer Country`=="NL", "Netherlands",
                                                                                               ifelse( wild$`Importer Country`=="ID", "India",
                                                                                                       ifelse ( wild$`Importer Country`=="IT", "Italy",
                                                                                                                ifelse ( wild$`Importer Country`=="SG", "Singerpore",
                                                                                                                         ifelse( wild$`Importer Country`=="MY", "Malaysia",
                                                                                                                                 ifelse ( wild$`Importer Country`=="JP", "Japan",
                                                                                                                                          ifelse ( wild$`Importer Country`=="MG", "Madagascar",
                                                                                                                                                   ifelse ( wild$`Importer Country`=="FR", "France",
                                                                                                                                                            ifelse ( wild$`Importer Country`=="DE", "Germany",
                                                                                                                                                                     ifelse ( wild$`Importer Country`=="GB", "Britain",
                                                                                                                                                                              ifelse ( wild$`Importer Country`=="PE", "Peru",
                                                                                                                                                                                       ifelse ( wild$`Importer Country`=="DE", "Germany",
                                                                                                                                                                                                ifelse ( wild$`Importer Country`=="ES", "Spain",
                                                                                                                                                                                                         ifelse ( wild$`Importer Country`=="ZW", "Zimbabwe",
                                                                                                                                                                                                                  ifelse ( wild$`Importer Country`=="PH", "Philippines",
                                                                                                                                                                                                                           ifelse ( wild$`Importer Country`=="MC", "Monaco",
                                                                                                                                                                                                                                    ifelse ( wild$Exporter=="IL", "Israel",
                                                                                                                                                                                                                                             ifelse ( wild$`Importer Country`=="AR", "Argentina",
                                                                                                                                                                                                                                                      ifelse ( wild$`Importer Country`=="GT", "Guatemala",
                                                                                                                                                                                                                                                               ifelse ( wild$`Importer Country`=="KW", "Kuwait",
                                                                                                                                                                                                                                                                        ifelse ( wild$`Importer Country`=="DK", "Denmark",
                                                                                                                                                                                                                                                                                 ifelse ( wild$`Importer Country`=="UY", "Uruguay",
                                                                                                                                                                                                                                                                                          ifelse ( wild$`Importer Country`=="GE", "Geogria",
                                                                                                                                                                                                                                                                                                   ifelse ( wild$`Importer Country`=="PL", "Poland",
                                                                                                                                                                                                                                                                                                            ifelse ( wild$`Importer Country`=="TN", "Tunisia",
                                                                                                                                                                                                                                                                                                                     ifelse ( wild$`Importer Country`=="KE", "Kenya",
                                                                                                                                                                                                                                                                                                                              ifelse ( wild$`Importer Country`=="NO", "Norway",
                                                                                                                                                                                                                                                                                                                                       ifelse ( wild$`Importer Country`=="UG", "Uganda",
                                                                                                                                                                                                                                                                                                                                                ifelse ( wild$`Importer Country`=="MA", "Morocco",
                                                                                                                                                                                                                                                                                                                                                         ifelse ( wild$`Importer Country`=="BS", "Bahamas",
                                                                                                                                                                                                                                                                                                                                                                  ifelse ( wild$`Importer Country`=="NP", "Nepal",
                                                                                                                                                                                                                                                                                                                                                                           ifelse ( wild$`Importer Country`=="IN", "India",
                                                                                                                                                                                                                                                                                                                                                                                    ifelse ( wild$`Importer Country`=="NI", "Nicaragua",
                                                                                                                                                                                                                                                                                                                                                                                             ifelse ( wild$`Importer Country`=="PY", "Paraguay",
                                                                                                                                                                                                                                                                                                                                                                                                      ifelse ( wild$`Importer Country`=="AM", "Armenia",
                                                                                                                                                                                                                                                                                                                                                                                                               ifelse ( wild$`Importer Country`=="TH", "Thailand",
                                                                                                                                                                                                                                                                                                                                                                                                                        ifelse ( wild$`Importer Country`=="CA", "Canada",
                                                                                                                                                                                                                                                                                                                                                                                                                                 ifelse ( wild$`Importer Country`=="NG", "Nigeria",
                                                                                                                                                                                                                                                                                                                                                                                                                                          ifelse ( wild$`Importer Country`=="MX", "Mexico",
                                                                                                                                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                                                                                                                                                   ifelse ( wild$`Importer Country`=="CM", "Cameroon",
                                                                                                                                                                                                                                                                                                                                                                                                                                                            ifelse ( wild$`Importer Country`=="FJ", "Fiji",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ifelse ( wild$`Importer Country`=="ZA", "South Africa",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ifelse ( wild$`Importer Country`=="JM", "Jamaica",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ifelse ( wild$`Importer Country`=="AD", "Andorra",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                wild$`Importer Country`)))))))))))))))))))))))))))))))))))))))))))))))))
wild$`Exp Quantity` <- ifelse(wild$`Units Traded` %in% c("kg", "L", "l"), wild$`Exp Quantity`*1000, wild$`Exp Quantity`)
wild$`Imp Quantity` <- ifelse(wild$`Units Traded` %in% c("kg", "L", "l"), wild$`Imp Quantity`*1000, wild$`Imp Quantity`)

Which are the top 10 countries which export species?

i1 <- filter(wild,  `Exp Quantity` >0 & !is.na(`Exporter Country`))
icountry <- group_by(i1, `Exporter Country` )
ic2 <- dplyr::summarise(icountry,  count=n(), add=sum(`Exp Quantity`, na.rm=TRUE))
ic2 <- arrange(ic2, desc(add))
ic20 <- ic2[1:10,]
p1 <- ggplot(ic20, aes(x=reorder(`Exporter Country`,add),y=add))+
  geom_bar(aes(y=add,fill=add), stat="identity")+scale_fill_gradient(low="skyblue", high="darkblue")+
  labs(x="Top 10 countries involved in WildLife Export Trade", y="Exported Quantity",
       title="Top 10 Countries involved in Wildlife Export Trade under supervision of CITES", subtitle = "China is the most involved country in Wildlife Export Trade. Most Developing countries in the world are high exporters in WildLife Trade.")+ theme(legend.position="none", axis.text.x = element_text(hjust = 1)) +
  ylim(0,8000000000) + theme(panel.grid.major.y = element_line(color = "grey", size = 0.75, linetype = "dotted")) + theme(panel.grid.major = element_blank()) + theme(panel.grid.minor = element_blank()) +
  theme(panel.background = element_rect(fill = "white"), axis.ticks = element_blank(), axis.text.y = element_text(color = "black", vjust = -1))
p1

Top 10 Countries shown in worldmap.

n <- joinCountryData2Map(ic2, joinCode="NAME", nameJoinColumn="Exporter Country")
34 codes from your data successfully matched countries in the map
73 codes from your data failed to match with a country code in the map
209 codes from the map weren't represented in your data
mapCountryData(n, nameColumnToPlot="add", mapTitle="World Map of Top 10 Countries exporting species" , colourPalette = "RdBu")
colourPalette should be set to either a vector of colours or one of :white2Black black2White palette heat topo terrain rainbow negpos8 negpos9 
setting to heat colours as default

Which are the top 10 Countries importing species?

e1 <- filter(wild,  `Imp Quantity` >0 & !is.na(`Importer Country`))
ecountry <- group_by(e1, `Importer Country` )
ec2 <- dplyr::summarise(ecountry, add=sum(`Imp Quantity`, na.rm=TRUE), count=n())
ec2 <- arrange(ec2, desc(add))
ec20 <- ec2[1:10,]
p2 <- ggplot(ec20, aes(x=reorder(`Importer Country`,add),y=add))+
  geom_bar(aes(y=add,fill=add), stat="identity")+scale_fill_gradient(low="lightgreen", high="darkgreen")+
  labs(x="Top 10 countries involved in WildLife Import Trade", y="Imported Quantity",
       title="Top 10 Countries involved in Wildlife Import Trade under supervision of CITES", subtitle="China is the most involved country in Wildlife Import Trade. We can see the most import trade comes from Asia, Western Europe and North America.")+ theme(legend.position="none", axis.text.x = element_text(hjust = 1)) +
  ylim(0,16000000000) + theme(panel.grid.major.y = element_line(color = "grey", size = 0.75, linetype = "dotted")) + theme(panel.grid.major = element_blank()) + theme(panel.grid.minor = element_blank()) +
  theme(panel.background = element_rect(fill = "white"), axis.ticks = element_blank(), axis.text.y = element_text(color = "black", vjust = -1))
p2

Top 10 Importing Countries shown in the worldmap

n <- joinCountryData2Map(ec2, joinCode="NAME", nameJoinColumn="Importer Country")
28 codes from your data successfully matched countries in the map
56 codes from your data failed to match with a country code in the map
215 codes from the map weren't represented in your data
mapCountryData(n, nameColumnToPlot="add", mapTitle="World Map of Top 10 Countries importing species" , colourPalette = "rainbow")

How are the goods of species consumed or used by humans?

t1 <- filter(wild,!is.na(`Sold Good Term`))
t1p <- group_by(t1, `Sold Good Term` )
t2p <- dplyr::summarise(t1p,  count=n())
t2p <- filter(t2p, count>300)
t2p$`Sold Good Term` <- ifelse(t2p$`Sold Good Term` == "carvings","claws",
                          ifelse(t2p$`Sold Good Term` == "roots","talons", t2p$`Sold Good Term`))
sum(t2p$count)
[1] 62621
t2p$percent <- t2p$count/sum(t2p$count) * 100
t2p$percent <- round(t2p$percent,2)
t2p$label <- paste(t2p$`Sold Good Term`, t2p$percent, sep = "\n")
t2p$label <- paste(t2p$label,"%")
treemap(t2p, index="label", vSize="count", type="index", 
        palette="Paired", title="WildLife Trade Term(Human Consumption) Treemap", fontsize.title=12, fontsize.labels = c(7,7))

What is the purpose of trade of species?

t2 <- filter(wild,!is.na(`Purpose Of Trade`))
t3p <- group_by(t2, `Purpose Of Trade` )
t4p <- dplyr::summarise(t3p,  count=n())
t4p <- filter(t4p, count>300)
t4p$percent <- t4p$count/sum(t4p$count)*100
t4p$percent <- round(t4p$percent,2)
t4p$label <- paste(t4p$`Purpose Of Trade`,t4p$percent,sep="\n")
t4p$label <- paste(t4p$label,"%")
treemap(t4p, index="label", vSize="count", type="index", 
        palette="Dark2", title="WildLife Purpose Of Trade Treemap", fontsize.title=12,fontsize.labels = 10)

Top 5 Animals imported.

animalI <- wild[wild$`Imp Quantity`>20000000,]
rownames(animalI) <- NULL
animalIT <- animalI[-c(9:15,20:44,52:63,72:79),]
rownames(animalIT) <- NULL
animalIT <- animalIT[-c(2:5,7:10,12:17,19:25,27),]
rownames(animalIT) <- NULL
animalIT <- animalIT[order(-animalIT$`Imp Quantity`),]
animalIT$`Scientific Name` <- ifelse(animalIT$`Scientific Name` == "Anguilla anguilla","European Eel",
                                     ifelse(animalIT$`Scientific Name` == "Strombus gigas","Queen Conch",
                                            ifelse(animalIT$`Scientific Name` == "Scleractinia spp.","Stony Coral",
                                                   ifelse(animalIT$`Scientific Name` == "Crocodylus siamensis","Siamese Crocodile",
                                                          ifelse(animalIT$`Scientific Name` == "Crocodylus niloticus","Nile Crocodile",animalIT$`Scientific Name`)))))
ggplot(data = animalIT,aes(x=reorder(animalIT$`Scientific Name`,animalIT$`Imp Quantity`),y=animalIT$`Imp Quantity`)) + geom_bar(stat = "identity") + 
  labs(x="Top 5 Wildlife Animals imported",y="Imported Quantity in kgs (1kg = 2.21 lbs)",title = "Top 5 Animals imported in the world",subtitle="European Eel, Queen Conch and Siamese Crocodile are listed in Red List of IUCN as critically endangered species.") + 
  ylim(0,3000000000) + theme(panel.grid.major.y = element_line(color = "grey", size = 0.75, linetype = "dotted")) + theme(panel.grid.major = element_blank()) + theme(panel.grid.minor = element_blank()) +
  theme(panel.background = element_rect(fill = "white"), axis.ticks = element_blank(), axis.text.y = element_text(color = "black", vjust = -1))

Top 5 animals exported

animalO <- wild[wild$`Exp Quantity`>188500000,]
rownames(animalO) <- NULL
animalOT <- animalO[-c(2,12,13,16:19),]
rownames(animalOT) <- NULL
animalOT <- animalOT[-c(1:3,7,9:11),]
rownames(animalOT) <- NULL
animalOT <- animalOT[order(-animalOT$`Exp Quantity`),]
animalOT$`Scientific Name` <- ifelse(animalOT$`Scientific Name` == "Anguilla anguilla","European Eel",
                                     ifelse(animalOT$`Scientific Name` == "Acipenser baerii","Siberian sturgeon",
                                            ifelse(animalOT$`Scientific Name` == "Strombus gigas","Queen Conch",
                                                   ifelse(animalOT$`Scientific Name` == "Acipenser ruthenus","Sterlet",
                                                          ifelse(animalOT$`Scientific Name` == "Acipenser gueldenstaedtii","Russian sturgeon",animalOT$`Scientific Name`)))))
ggplot(data = animalOT,aes(x=reorder(animalOT$`Scientific Name`,animalOT$`Exp Quantity`),y=animalOT$`Exp Quantity`)) + geom_bar(stat = "identity") +
  labs(x="Top 5 Wildlife Animals exported",y="Exported Quantity in kgs (1kg = 2.21 lbs)",title = "Top 5 Animals exported in the world",subtitle="All of the Fauna here are listed in Red List of IUCN as critically endangered species.") + 
  ylim(0,3000000000) + theme(panel.grid.major.y = element_line(color = "grey", size = 0.75, linetype = "dotted")) + theme(panel.grid.major = element_blank()) + theme(panel.grid.minor = element_blank()) +
  theme(panel.background = element_rect(fill = "white"), axis.ticks = element_blank(), axis.text.y = element_text(color = "black", vjust = -1))

LS0tDQp0aXRsZTogIklTVCA3MTkgSW5mb3JtYXRpb24gVmlzdWFsaXphdGlvbiBQb3N0ZXIgQ29kZSINCmF1dGhvcjogIlNoYXJhdGhjaGFuZHJhIEJNIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIA0KDQpMaWJyYXJpZXMgSW52b2x2ZWQgaW4gZGV2ZWxvcGluZyB0aGUgUiBzY3JpcHRzLiANCg0KYGBge3J9DQpsaWJyYXJ5KGtuaXRyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocndvcmxkbWFwKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHRyZWVtYXBpZnkpDQpsaWJyYXJ5KHRyZWVtYXApDQpgYGANClJlYWRpbmcgdGhlIGZpbGUgaW4gLmNzdiBmb3JtYXQuIFRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gSVVDTiB3ZWJzaXRlIGJ5IHNwZWNpZmluZyB0aGUgeWVhcnMnIG9mIGRhdGEgbmVlZGVkLg0KDQpgYGB7cn0NCndpbGQgPC0gcmVhZC5jc3YoIkM6L1VzZXJzL1NoYXJhdGhjaGFuZHJhIEIgTS9EZXNrdG9wL1N5cmFjdXNlX0lNXzJuZF9TZW0vSVNUNzE5L1Bvc3Rlci9XaWxkTGlmZVRyYWRlMjAxNi0yMDE3LmNzdiIsIGhlYWRlciA9IFQsIHN0cmluZ3NBc0ZhY3RvcnMgPSBGKQ0Kd2lsZFtpcy5uYSh3aWxkKV0gPC0gMA0Kd2lsZDIgPC0gd2lsZA0Kd2lsZCA8LSB3aWxkMg0KYGBgDQoNClJlbmFtaW5nIGNvbHVtbiBuYW1lcycgdG8gdW5kZXJzdGFuZC4gQ2hhbmdpbmcgb2YgdmFsdWVzIGFjY29yZGluZyB0byB0aGUgSVVDTiBDaXRlcyBkb2N1bWVudC4NCmBgYHtyfQ0KY29sbmFtZXMod2lsZCkgPC0gYygiWWVhciIsIkFwcGVuZGl4IiwiU2NpZW50aWZpYyBOYW1lIiwiQ2xhc3MgTmFtZSIsIk9yZGVyIE5hbWUiLCJGYW1pbHkgTmFtZSIsIkdlbnVzIE5hbWUiLCJJbXBvcnRlciBDb3VudHJ5IiwiRXhwb3J0ZXIgQ291bnRyeSIsIk9yaWdpbiBDb3VudHJ5IiwiSW1wIFF1YW50aXR5IiwiRXhwIFF1YW50aXR5IiwiU29sZCBHb29kIFRlcm0iLCJVbml0cyBUcmFkZWQiLCJQdXJwb3NlIE9mIFRyYWRlIiwiU291cmNlIE9mIFRyYWRlIikNCg0Kd2lsZCRgUHVycG9zZSBPZiBUcmFkZWAgPC0gaWZlbHNlKHdpbGQkYFB1cnBvc2UgT2YgVHJhZGVgPT0iQiIsICJCcmVlZGluZyIsDQogICAgICAgICAgICAgICAgICAgICBpZmVsc2UoIHdpbGQkYFB1cnBvc2UgT2YgVHJhZGVgPT0iRSIsICJFZHVjYXRpb25hbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYFB1cnBvc2UgT2YgVHJhZGVgPT0iRyIsICJHYXJkZW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoIHdpbGQkYFB1cnBvc2UgT2YgVHJhZGVgPT0iSCIsICJIdW50aW5nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBQdXJwb3NlIE9mIFRyYWRlYD09IkwiLCAiTGF3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBQdXJwb3NlIE9mIFRyYWRlYD09Ik0iLCAiTWVkaWNhbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKCB3aWxkJGBQdXJwb3NlIE9mIFRyYWRlYD09IlIiLCAicmVpbnRyb2R1Y3Rpb24gdG8gd2lsZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBQdXJwb3NlIE9mIFRyYWRlYD09IlAiLCAiUGVyc29uYWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgUHVycG9zZSBPZiBUcmFkZWA9PSJRIiwgIkNpcmN1cyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoIHdpbGQkYFB1cnBvc2UgT2YgVHJhZGVgPT0iUyIsICJTY2llbnRpZmljIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgUHVycG9zZSBPZiBUcmFkZWA9PSJUIiwgIkNvbW1lcmNpYWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBQdXJwb3NlIE9mIFRyYWRlYD09IloiLCAiWm9vIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iKSkpKSkpKSkpKSkpDQoNCndpbGQkYEV4cG9ydGVyIENvdW50cnlgIDwtIGlmZWxzZSh3aWxkJGBFeHBvcnRlciBDb3VudHJ5YCAlaW4lIGMoIkNOIiwgIkhLIiksICJDaGluYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IlVTIiwgIlVTQSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkFFIiwgIlVuaXRlIEFyYWIgRW1pcmF0ZXMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkJFIiwgIkJlbGdpdW0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkNaIiwgIkN6ZWNoIFJlcHVibGljIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJOTCIsICJOZXRoZXJsYW5kcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJJRCIsICJJbmRvbmVzaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iSVQiLCAiSXRhbHkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iU0ciLCAiU2luZ2VycG9yZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09Ik1ZIiwgIk1hbGF5c2lhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iSlAiLCAiSmFwYW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJNRyIsICJNYWRhZ2FzY2FyIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iRlIiLCAiRnJhbmNlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iREUiLCAiR2VybWFueSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkdCIiwgIkJyaXRhaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJQRSIsICJQZXJ1IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iREUiLCAiR2VybWFueSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkVTIiwgIlNwYWluIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iWlciLCAiWmltYmFid2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJQSCIsICJQaGlsaXBwaW5lcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09Ik1DIiwgIk1vbmFjbyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IklMIiwgIklzcmFlbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkFSIiwgIkFyZ2VudGluYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkdUIiwgIkd1YXRlbWFsYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IktXIiwgIkt1d2FpdCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkRLIiwgIkRlbm1hcmsiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJVWSIsICJVcnVndWF5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iR0UiLCAiR2VvZ3JpYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IlBMIiwgIlBvbGFuZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IlROIiwgIlR1bmlzaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJLRSIsICJLZW55YSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09Ik5PIiwgIk5vcndheSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IlVHIiwgIlVnYW5kYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09Ik1BIiwgIk1vcm9jY28iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJCUyIsICJCYWhhbWFzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iTlAiLCAiTmVwYWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJJTiIsICJJbmRpYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09Ik5JIiwgIk5pY2FyYWd1YSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IlBZIiwgIlBhcmFndWF5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iQU0iLCAiQXJtZW5pYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IlRIIiwgIlRoYWlsYW5kIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iQ0EiLCAiQ2FuYWRhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iTkciLCAiTmlnZXJpYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09Ik1YIiwgIk1leGljbyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iQ00iLCAiQ2FtZXJvb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWA9PSJGSiIsICJGaWppIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iWkEiLCAiU291dGggQWZyaWNhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEV4cG9ydGVyIENvdW50cnlgPT0iSk0iLCAiSmFtYWljYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBFeHBvcnRlciBDb3VudHJ5YD09IkFEIiwgIkFuZG9ycmEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsZCRgRXhwb3J0ZXIgQ291bnRyeWApKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpDQoNCndpbGQkYEltcG9ydGVyIENvdW50cnlgIDwtIGlmZWxzZSh3aWxkJGBJbXBvcnRlciBDb3VudHJ5YCAlaW4lIGMoIkNOIiwgIkhLIiksICJDaGluYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IlVTIiwgIlVTQSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkFFIiwgIlVuaXRlIEFyYWIgRW1pcmF0ZXMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkJFIiwgIkJlbGdpdW0iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkNaIiwgIkN6ZWNoIFJlcHVibGljIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJOTCIsICJOZXRoZXJsYW5kcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJJRCIsICJJbmRpYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJJVCIsICJJdGFseSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJTRyIsICJTaW5nZXJwb3JlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iTVkiLCAiTWFsYXlzaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJKUCIsICJKYXBhbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09Ik1HIiwgIk1hZGFnYXNjYXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJGUiIsICJGcmFuY2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJERSIsICJHZXJtYW55IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iR0IiLCAiQnJpdGFpbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IlBFIiwgIlBlcnUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJERSIsICJHZXJtYW55IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iRVMiLCAiU3BhaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJaVyIsICJaaW1iYWJ3ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IlBIIiwgIlBoaWxpcHBpbmVzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iTUMiLCAiTW9uYWNvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkRXhwb3J0ZXI9PSJJTCIsICJJc3JhZWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJBUiIsICJBcmdlbnRpbmEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJHVCIsICJHdWF0ZW1hbGEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJLVyIsICJLdXdhaXQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJESyIsICJEZW5tYXJrIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iVVkiLCAiVXJ1Z3VheSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkdFIiwgIkdlb2dyaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJQTCIsICJQb2xhbmQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJUTiIsICJUdW5pc2lhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iS0UiLCAiS2VueWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJOTyIsICJOb3J3YXkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJVRyIsICJVZ2FuZGEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJNQSIsICJNb3JvY2NvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iQlMiLCAiQmFoYW1hcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09Ik5QIiwgIk5lcGFsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iSU4iLCAiSW5kaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJOSSIsICJOaWNhcmFndWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJQWSIsICJQYXJhZ3VheSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkFNIiwgIkFybWVuaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJUSCIsICJUaGFpbGFuZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkNBIiwgIkNhbmFkYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09Ik5HIiwgIk5pZ2VyaWEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJNWCIsICJNZXhpY28iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkNNIiwgIkNhbWVyb29uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAoIHdpbGQkYEltcG9ydGVyIENvdW50cnlgPT0iRkoiLCAiRmlqaSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IlpBIiwgIlNvdXRoIEFmcmljYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UgKCB3aWxkJGBJbXBvcnRlciBDb3VudHJ5YD09IkpNIiwgIkphbWFpY2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlICggd2lsZCRgSW1wb3J0ZXIgQ291bnRyeWA9PSJBRCIsICJBbmRvcnJhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGQkYEltcG9ydGVyIENvdW50cnlgKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQ0KDQp3aWxkJGBFeHAgUXVhbnRpdHlgIDwtIGlmZWxzZSh3aWxkJGBVbml0cyBUcmFkZWRgICVpbiUgYygia2ciLCAiTCIsICJsIiksIHdpbGQkYEV4cCBRdWFudGl0eWAqMTAwMCwgd2lsZCRgRXhwIFF1YW50aXR5YCkNCg0Kd2lsZCRgSW1wIFF1YW50aXR5YCA8LSBpZmVsc2Uod2lsZCRgVW5pdHMgVHJhZGVkYCAlaW4lIGMoImtnIiwgIkwiLCAibCIpLCB3aWxkJGBJbXAgUXVhbnRpdHlgKjEwMDAsIHdpbGQkYEltcCBRdWFudGl0eWApDQpgYGANCg0KV2hpY2ggYXJlIHRoZSB0b3AgMTAgY291bnRyaWVzIHdoaWNoIGV4cG9ydCBzcGVjaWVzPw0KYGBge3J9DQppMSA8LSBmaWx0ZXIod2lsZCwgIGBFeHAgUXVhbnRpdHlgID4wICYgIWlzLm5hKGBFeHBvcnRlciBDb3VudHJ5YCkpDQppY291bnRyeSA8LSBncm91cF9ieShpMSwgYEV4cG9ydGVyIENvdW50cnlgICkNCmljMiA8LSBkcGx5cjo6c3VtbWFyaXNlKGljb3VudHJ5LCAgY291bnQ9bigpLCBhZGQ9c3VtKGBFeHAgUXVhbnRpdHlgLCBuYS5ybT1UUlVFKSkNCmljMiA8LSBhcnJhbmdlKGljMiwgZGVzYyhhZGQpKQ0KaWMyMCA8LSBpYzJbMToxMCxdDQoNCnAxIDwtIGdncGxvdChpYzIwLCBhZXMoeD1yZW9yZGVyKGBFeHBvcnRlciBDb3VudHJ5YCxhZGQpLHk9YWRkKSkrDQogIGdlb21fYmFyKGFlcyh5PWFkZCxmaWxsPWFkZCksIHN0YXQ9ImlkZW50aXR5Iikrc2NhbGVfZmlsbF9ncmFkaWVudChsb3c9InNreWJsdWUiLCBoaWdoPSJkYXJrYmx1ZSIpKw0KICBsYWJzKHg9IlRvcCAxMCBjb3VudHJpZXMgaW52b2x2ZWQgaW4gV2lsZExpZmUgRXhwb3J0IFRyYWRlIiwgeT0iRXhwb3J0ZWQgUXVhbnRpdHkiLA0KICAgICAgIHRpdGxlPSJUb3AgMTAgQ291bnRyaWVzIGludm9sdmVkIGluIFdpbGRsaWZlIEV4cG9ydCBUcmFkZSB1bmRlciBzdXBlcnZpc2lvbiBvZiBDSVRFUyIsIHN1YnRpdGxlID0gIkNoaW5hIGlzIHRoZSBtb3N0IGludm9sdmVkIGNvdW50cnkgaW4gV2lsZGxpZmUgRXhwb3J0IFRyYWRlLiBNb3N0IERldmVsb3BpbmcgY291bnRyaWVzIGluIHRoZSB3b3JsZCBhcmUgaGlnaCBleHBvcnRlcnMgaW4gV2lsZExpZmUgVHJhZGUuIikrIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIsIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMSkpICsNCiAgeWxpbSgwLDgwMDAwMDAwMDApICsgdGhlbWUocGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyZXkiLCBzaXplID0gMC43NSwgbGluZXR5cGUgPSAiZG90dGVkIikpICsgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSkgKyB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpKSArDQogIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ3aGl0ZSIpLCBheGlzLnRpY2tzID0gZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHZqdXN0ID0gLTEpKQ0KcDENCmBgYA0KDQpUb3AgMTAgQ291bnRyaWVzIHNob3duIGluIHdvcmxkbWFwLg0KYGBge3J9DQpuIDwtIGpvaW5Db3VudHJ5RGF0YTJNYXAoaWMyLCBqb2luQ29kZT0iTkFNRSIsIG5hbWVKb2luQ29sdW1uPSJFeHBvcnRlciBDb3VudHJ5IikNCg0KbWFwQ291bnRyeURhdGEobiwgbmFtZUNvbHVtblRvUGxvdD0iYWRkIiwgbWFwVGl0bGU9IldvcmxkIE1hcCBvZiBUb3AgMTAgQ291bnRyaWVzIGV4cG9ydGluZyBzcGVjaWVzIiAsIGNvbG91clBhbGV0dGUgPSAiUmRCdSIpDQpgYGANCg0KV2hpY2ggYXJlIHRoZSB0b3AgMTAgQ291bnRyaWVzIGltcG9ydGluZyBzcGVjaWVzPw0KYGBge3J9DQplMSA8LSBmaWx0ZXIod2lsZCwgIGBJbXAgUXVhbnRpdHlgID4wICYgIWlzLm5hKGBJbXBvcnRlciBDb3VudHJ5YCkpDQplY291bnRyeSA8LSBncm91cF9ieShlMSwgYEltcG9ydGVyIENvdW50cnlgICkNCmVjMiA8LSBkcGx5cjo6c3VtbWFyaXNlKGVjb3VudHJ5LCBhZGQ9c3VtKGBJbXAgUXVhbnRpdHlgLCBuYS5ybT1UUlVFKSwgY291bnQ9bigpKQ0KZWMyIDwtIGFycmFuZ2UoZWMyLCBkZXNjKGFkZCkpDQplYzIwIDwtIGVjMlsxOjEwLF0NCg0KcDIgPC0gZ2dwbG90KGVjMjAsIGFlcyh4PXJlb3JkZXIoYEltcG9ydGVyIENvdW50cnlgLGFkZCkseT1hZGQpKSsNCiAgZ2VvbV9iYXIoYWVzKHk9YWRkLGZpbGw9YWRkKSwgc3RhdD0iaWRlbnRpdHkiKStzY2FsZV9maWxsX2dyYWRpZW50KGxvdz0ibGlnaHRncmVlbiIsIGhpZ2g9ImRhcmtncmVlbiIpKw0KICBsYWJzKHg9IlRvcCAxMCBjb3VudHJpZXMgaW52b2x2ZWQgaW4gV2lsZExpZmUgSW1wb3J0IFRyYWRlIiwgeT0iSW1wb3J0ZWQgUXVhbnRpdHkiLA0KICAgICAgIHRpdGxlPSJUb3AgMTAgQ291bnRyaWVzIGludm9sdmVkIGluIFdpbGRsaWZlIEltcG9ydCBUcmFkZSB1bmRlciBzdXBlcnZpc2lvbiBvZiBDSVRFUyIsIHN1YnRpdGxlPSJDaGluYSBpcyB0aGUgbW9zdCBpbnZvbHZlZCBjb3VudHJ5IGluIFdpbGRsaWZlIEltcG9ydCBUcmFkZS4gV2UgY2FuIHNlZSB0aGUgbW9zdCBpbXBvcnQgdHJhZGUgY29tZXMgZnJvbSBBc2lhLCBXZXN0ZXJuIEV1cm9wZSBhbmQgTm9ydGggQW1lcmljYS4iKSsgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJub25lIiwgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoaGp1c3QgPSAxKSkgKw0KICB5bGltKDAsMTYwMDAwMDAwMDApICsgdGhlbWUocGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyZXkiLCBzaXplID0gMC43NSwgbGluZXR5cGUgPSAiZG90dGVkIikpICsgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSkgKyB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpKSArDQogIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ3aGl0ZSIpLCBheGlzLnRpY2tzID0gZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHZqdXN0ID0gLTEpKQ0KcDINCmBgYA0KDQpUb3AgMTAgSW1wb3J0aW5nIENvdW50cmllcyBzaG93biBpbiB0aGUgd29ybGRtYXANCmBgYHtyfQ0KbiA8LSBqb2luQ291bnRyeURhdGEyTWFwKGVjMiwgam9pbkNvZGU9Ik5BTUUiLCBuYW1lSm9pbkNvbHVtbj0iSW1wb3J0ZXIgQ291bnRyeSIpDQptYXBDb3VudHJ5RGF0YShuLCBuYW1lQ29sdW1uVG9QbG90PSJhZGQiLCBtYXBUaXRsZT0iV29ybGQgTWFwIG9mIFRvcCAxMCBDb3VudHJpZXMgaW1wb3J0aW5nIHNwZWNpZXMiICwgY29sb3VyUGFsZXR0ZSA9ICJyYWluYm93IikNCmBgYA0KDQpIb3cgYXJlIHRoZSBnb29kcyBvZiBzcGVjaWVzIGNvbnN1bWVkIG9yIHVzZWQgYnkgaHVtYW5zPw0KYGBge3J9DQp0MSA8LSBmaWx0ZXIod2lsZCwhaXMubmEoYFNvbGQgR29vZCBUZXJtYCkpDQoNCnQxcCA8LSBncm91cF9ieSh0MSwgYFNvbGQgR29vZCBUZXJtYCApDQp0MnAgPC0gZHBseXI6OnN1bW1hcmlzZSh0MXAsICBjb3VudD1uKCkpDQp0MnAgPC0gZmlsdGVyKHQycCwgY291bnQ+MzAwKQ0KdDJwJGBTb2xkIEdvb2QgVGVybWAgPC0gaWZlbHNlKHQycCRgU29sZCBHb29kIFRlcm1gID09ICJjYXJ2aW5ncyIsImNsYXdzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHQycCRgU29sZCBHb29kIFRlcm1gID09ICJyb290cyIsInRhbG9ucyIsIHQycCRgU29sZCBHb29kIFRlcm1gKSkNCnN1bSh0MnAkY291bnQpDQp0MnAkcGVyY2VudCA8LSB0MnAkY291bnQvc3VtKHQycCRjb3VudCkgKiAxMDANCnQycCRwZXJjZW50IDwtIHJvdW5kKHQycCRwZXJjZW50LDIpDQoNCnQycCRsYWJlbCA8LSBwYXN0ZSh0MnAkYFNvbGQgR29vZCBUZXJtYCwgdDJwJHBlcmNlbnQsIHNlcCA9ICJcbiIpDQp0MnAkbGFiZWwgPC0gcGFzdGUodDJwJGxhYmVsLCIlIikNCg0KdHJlZW1hcCh0MnAsIGluZGV4PSJsYWJlbCIsIHZTaXplPSJjb3VudCIsIHR5cGU9ImluZGV4IiwgDQogICAgICAgIHBhbGV0dGU9IlBhaXJlZCIsIHRpdGxlPSJXaWxkTGlmZSBUcmFkZSBUZXJtKEh1bWFuIENvbnN1bXB0aW9uKSBUcmVlbWFwIiwgZm9udHNpemUudGl0bGU9MTIsIGZvbnRzaXplLmxhYmVscyA9IGMoNyw3KSkNCmBgYA0KDQpXaGF0IGlzIHRoZSBwdXJwb3NlIG9mIHRyYWRlIG9mIHNwZWNpZXM/DQpgYGB7cn0NCnQyIDwtIGZpbHRlcih3aWxkLCFpcy5uYShgUHVycG9zZSBPZiBUcmFkZWApKQ0KDQp0M3AgPC0gZ3JvdXBfYnkodDIsIGBQdXJwb3NlIE9mIFRyYWRlYCApDQp0NHAgPC0gZHBseXI6OnN1bW1hcmlzZSh0M3AsICBjb3VudD1uKCkpDQp0NHAgPC0gZmlsdGVyKHQ0cCwgY291bnQ+MzAwKQ0KdDRwJHBlcmNlbnQgPC0gdDRwJGNvdW50L3N1bSh0NHAkY291bnQpKjEwMA0KdDRwJHBlcmNlbnQgPC0gcm91bmQodDRwJHBlcmNlbnQsMikNCnQ0cCRsYWJlbCA8LSBwYXN0ZSh0NHAkYFB1cnBvc2UgT2YgVHJhZGVgLHQ0cCRwZXJjZW50LHNlcD0iXG4iKQ0KdDRwJGxhYmVsIDwtIHBhc3RlKHQ0cCRsYWJlbCwiJSIpDQoNCnRyZWVtYXAodDRwLCBpbmRleD0ibGFiZWwiLCB2U2l6ZT0iY291bnQiLCB0eXBlPSJpbmRleCIsIA0KICAgICAgICBwYWxldHRlPSJEYXJrMiIsIHRpdGxlPSJXaWxkTGlmZSBQdXJwb3NlIE9mIFRyYWRlIFRyZWVtYXAiLCBmb250c2l6ZS50aXRsZT0xMixmb250c2l6ZS5sYWJlbHMgPSAxMCkNCmBgYA0KDQpUb3AgNSBBbmltYWxzIGltcG9ydGVkLg0KYGBge3J9DQphbmltYWxJIDwtIHdpbGRbd2lsZCRgSW1wIFF1YW50aXR5YD4yMDAwMDAwMCxdDQpyb3duYW1lcyhhbmltYWxJKSA8LSBOVUxMDQphbmltYWxJVCA8LSBhbmltYWxJWy1jKDk6MTUsMjA6NDQsNTI6NjMsNzI6NzkpLF0NCnJvd25hbWVzKGFuaW1hbElUKSA8LSBOVUxMDQphbmltYWxJVCA8LSBhbmltYWxJVFstYygyOjUsNzoxMCwxMjoxNywxOToyNSwyNyksXQ0Kcm93bmFtZXMoYW5pbWFsSVQpIDwtIE5VTEwNCmFuaW1hbElUIDwtIGFuaW1hbElUW29yZGVyKC1hbmltYWxJVCRgSW1wIFF1YW50aXR5YCksXQ0KYW5pbWFsSVQkYFNjaWVudGlmaWMgTmFtZWAgPC0gaWZlbHNlKGFuaW1hbElUJGBTY2llbnRpZmljIE5hbWVgID09ICJBbmd1aWxsYSBhbmd1aWxsYSIsIkV1cm9wZWFuIEVlbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGFuaW1hbElUJGBTY2llbnRpZmljIE5hbWVgID09ICJTdHJvbWJ1cyBnaWdhcyIsIlF1ZWVuIENvbmNoIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGFuaW1hbElUJGBTY2llbnRpZmljIE5hbWVgID09ICJTY2xlcmFjdGluaWEgc3BwLiIsIlN0b255IENvcmFsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShhbmltYWxJVCRgU2NpZW50aWZpYyBOYW1lYCA9PSAiQ3JvY29keWx1cyBzaWFtZW5zaXMiLCJTaWFtZXNlIENyb2NvZGlsZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGFuaW1hbElUJGBTY2llbnRpZmljIE5hbWVgID09ICJDcm9jb2R5bHVzIG5pbG90aWN1cyIsIk5pbGUgQ3JvY29kaWxlIixhbmltYWxJVCRgU2NpZW50aWZpYyBOYW1lYCkpKSkpDQoNCg0KDQoNCg0KZ2dwbG90KGRhdGEgPSBhbmltYWxJVCxhZXMoeD1yZW9yZGVyKGFuaW1hbElUJGBTY2llbnRpZmljIE5hbWVgLGFuaW1hbElUJGBJbXAgUXVhbnRpdHlgKSx5PWFuaW1hbElUJGBJbXAgUXVhbnRpdHlgKSkgKyBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyANCiAgbGFicyh4PSJUb3AgNSBXaWxkbGlmZSBBbmltYWxzIGltcG9ydGVkIix5PSJJbXBvcnRlZCBRdWFudGl0eSBpbiBrZ3MgKDFrZyA9IDIuMjEgbGJzKSIsdGl0bGUgPSAiVG9wIDUgQW5pbWFscyBpbXBvcnRlZCBpbiB0aGUgd29ybGQiLHN1YnRpdGxlPSJFdXJvcGVhbiBFZWwsIFF1ZWVuIENvbmNoIGFuZCBTaWFtZXNlIENyb2NvZGlsZSBhcmUgbGlzdGVkIGluIFJlZCBMaXN0IG9mIElVQ04gYXMgY3JpdGljYWxseSBlbmRhbmdlcmVkIHNwZWNpZXMuIikgKyANCiAgeWxpbSgwLDMwMDAwMDAwMDApICsgdGhlbWUocGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyZXkiLCBzaXplID0gMC43NSwgbGluZXR5cGUgPSAiZG90dGVkIikpICsgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSkgKyB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpKSArDQogIHRoZW1lKHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ3aGl0ZSIpLCBheGlzLnRpY2tzID0gZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHZqdXN0ID0gLTEpKQ0KDQpgYGANCg0KVG9wIDUgYW5pbWFscyBleHBvcnRlZA0KYGBge3J9DQphbmltYWxPIDwtIHdpbGRbd2lsZCRgRXhwIFF1YW50aXR5YD4xODg1MDAwMDAsXQ0Kcm93bmFtZXMoYW5pbWFsTykgPC0gTlVMTA0KYW5pbWFsT1QgPC0gYW5pbWFsT1stYygyLDEyLDEzLDE2OjE5KSxdDQpyb3duYW1lcyhhbmltYWxPVCkgPC0gTlVMTA0KYW5pbWFsT1QgPC0gYW5pbWFsT1RbLWMoMTozLDcsOToxMSksXQ0Kcm93bmFtZXMoYW5pbWFsT1QpIDwtIE5VTEwNCmFuaW1hbE9UIDwtIGFuaW1hbE9UW29yZGVyKC1hbmltYWxPVCRgRXhwIFF1YW50aXR5YCksXQ0KYW5pbWFsT1QkYFNjaWVudGlmaWMgTmFtZWAgPC0gaWZlbHNlKGFuaW1hbE9UJGBTY2llbnRpZmljIE5hbWVgID09ICJBbmd1aWxsYSBhbmd1aWxsYSIsIkV1cm9wZWFuIEVlbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGFuaW1hbE9UJGBTY2llbnRpZmljIE5hbWVgID09ICJBY2lwZW5zZXIgYmFlcmlpIiwiU2liZXJpYW4gc3R1cmdlb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoYW5pbWFsT1QkYFNjaWVudGlmaWMgTmFtZWAgPT0gIlN0cm9tYnVzIGdpZ2FzIiwiUXVlZW4gQ29uY2giLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGFuaW1hbE9UJGBTY2llbnRpZmljIE5hbWVgID09ICJBY2lwZW5zZXIgcnV0aGVudXMiLCJTdGVybGV0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoYW5pbWFsT1QkYFNjaWVudGlmaWMgTmFtZWAgPT0gIkFjaXBlbnNlciBndWVsZGVuc3RhZWR0aWkiLCJSdXNzaWFuIHN0dXJnZW9uIixhbmltYWxPVCRgU2NpZW50aWZpYyBOYW1lYCkpKSkpDQoNCmdncGxvdChkYXRhID0gYW5pbWFsT1QsYWVzKHg9cmVvcmRlcihhbmltYWxPVCRgU2NpZW50aWZpYyBOYW1lYCxhbmltYWxPVCRgRXhwIFF1YW50aXR5YCkseT1hbmltYWxPVCRgRXhwIFF1YW50aXR5YCkpICsgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgbGFicyh4PSJUb3AgNSBXaWxkbGlmZSBBbmltYWxzIGV4cG9ydGVkIix5PSJFeHBvcnRlZCBRdWFudGl0eSBpbiBrZ3MgKDFrZyA9IDIuMjEgbGJzKSIsdGl0bGUgPSAiVG9wIDUgQW5pbWFscyBleHBvcnRlZCBpbiB0aGUgd29ybGQiLHN1YnRpdGxlPSJBbGwgb2YgdGhlIEZhdW5hIGhlcmUgYXJlIGxpc3RlZCBpbiBSZWQgTGlzdCBvZiBJVUNOIGFzIGNyaXRpY2FsbHkgZW5kYW5nZXJlZCBzcGVjaWVzLiIpICsgDQogIHlsaW0oMCwzMDAwMDAwMDAwKSArIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmV5Iiwgc2l6ZSA9IDAuNzUsIGxpbmV0eXBlID0gImRvdHRlZCIpKSArIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2JsYW5rKCkpICsgdGhlbWUocGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSkgKw0KICB0aGVtZShwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAid2hpdGUiKSwgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCB2anVzdCA9IC0xKSkNCg0KYGBg