1. Comapre Baseline
First make a data frame of the baseline results.
baseline_df <- rbind(no_pines$ABG[scn == "no_pines-baseline", ], test$ABG[scn == "test-baseline"])
baseline_df$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = baseline_df$pft_name )
baseline_df$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = baseline_df$pft_name)
baseline_df$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = baseline_df$pft_name)
baseline_df_AGB <- baseline_df
baseline_LAI <- rbind(no_pines$LAI[scn == "no_pines-baseline", ], test$LAI[scn == "test-baseline"])
baseline_LAI$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = baseline_LAI$pft_name )
baseline_LAI$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = baseline_LAI$pft_name)
baseline_LAI$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = baseline_LAI$pft_name)
ggplot(data = baseline_df) +
geom_point(aes(datetime, value, color = scn)) +
THEME +
facet_grid(pft_name ~ scn, scales = "free") +
labs(title = 'Above Ground Biomass',
y = unique(baseline_df$unit))

ggplot(data = baseline_LAI) +
geom_point(aes(datetime, value, color = scn)) +
THEME +
facet_grid(pft_name~scn, scales = "free") +
labs(title = 'LAI',
y = unique(baseline_LAI$unit))

Removing the pines does not impact the above ground biomass and the LAI values, this is somewhat expected considering the test runs I did for Alexey.
2. What happens when SLA values are changed?
First make a data frame of the results.
SLA_df <- rbind(no_pines$ABG[scn %in% c("no_pines-UMBS_SLA", "no_pines-baseline"), ], test$ABG[scn == "test-UMBS_SLA"])
SLA_df$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = SLA_df$pft_name )
SLA_df$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = SLA_df$pft_name)
SLA_df$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = SLA_df$pft_name)
SLA_df_AGB <- SLA_df
SLA_LAI <- rbind(no_pines$LAI[scn %in% c("no_pines-UMBS_SLA", "no_pines-baseline"), ], test$LAI[scn == "test-UMBS_SLA"])
SLA_LAI$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = SLA_LAI$pft_name )
SLA_LAI$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = SLA_LAI$pft_name)
SLA_LAI$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = SLA_LAI$pft_name)
ggplot(data = SLA_df_AGB) +
geom_point(aes(datetime, value, color = scn)) +
THEME +
facet_wrap("pft_name", scales = "free", ncol = 1) +
labs(title = 'Above Ground Biomass',
y = unique(SLA_df_AGB$unit))

ggplot(data = SLA_LAI) +
geom_line(aes(datetime, value, color = scn)) +
THEME +
facet_grid(pft_name~scn, scales = "free") +
labs(title = 'LAI',
y = unique(SLA_LAI$unit))

3. What happens when Vcmax values are changed?
Vcmax_df <- rbind(no_pines$ABG[scn %in% c("no_pines-UMBS_Vcmax", "no_pines-baseline"), ], test$ABG[scn == "test-UMBS_Vcmax"])
Vcmax_df$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = Vcmax_df$pft_name )
Vcmax_df$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = Vcmax_df$pft_name)
Vcmax_df$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = Vcmax_df$pft_name)
Vcmax_ABG <- Vcmax_df
Vcamx_LAI <- rbind(no_pines$LAI[scn %in% c("no_pines-UMBS_Vcmax", "no_pines-baseline"), ], test$LAI[scn == "test-UMBS_Vcmax"])
Vcamx_LAI$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = Vcamx_LAI$pft_name )
Vcamx_LAI$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = Vcamx_LAI$pft_name)
Vcamx_LAI$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = Vcamx_LAI$pft_name)
ggplot(data = Vcmax_ABG) +
geom_point(aes(datetime, value, color = scn)) +
THEME +
facet_wrap("pft_name", scales = "free", ncol = 1) +
labs(title = 'Above Ground Biomass',
y = unique(SLA_df_AGB$unit))

ggplot(data = Vcamx_LAI) +
geom_line(aes(datetime, value, color = scn)) +
THEME +
facet_grid(pft_name~scn, scales = "free") +
labs(title = 'LAI',
y = unique(SLA_LAI$unit))

4. What happens when both SLA and Vcmax are changed?
Vcmax_df <- rbind(no_pines$ABG[scn %in% c("no_pines-Vcmax-SLA", "no_pines-baseline"), ], test$ABG[scn == "test-UMBS_Vcmax"])
Vcmax_df$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = Vcmax_df$pft_name )
Vcmax_df$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = Vcmax_df$pft_name)
Vcmax_df$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = Vcmax_df$pft_name)
SLA_Vcmax_ABG <- Vcmax_df
Vcamx_LAI <- rbind(no_pines$LAI[scn %in% c("no_pines-Vcmax-SLA", "no_pines-baseline"), ], test$LAI[scn == "test-UMBS_Vcmax"])
Vcamx_LAI$pft_name <- gsub(pattern = 'Temperate broadleaf,', replacement = 'Temp. broad', x = Vcamx_LAI$pft_name )
Vcamx_LAI$pft_name <- gsub(pattern = 'successional|-successional', replacement = '', x = Vcamx_LAI$pft_name)
Vcamx_LAI$pft_name <- gsub(pattern = 'Northern North American', replacement = 'N NA ', x = Vcamx_LAI$pft_name)
SLA_Vcmax_LAI <- Vcamx_LAI
ggplot(data = SLA_Vcmax_ABG) +
geom_point(aes(datetime, value, color = scn)) +
THEME +
facet_wrap("pft_name", scales = "free", ncol = 1) +
labs(title = 'Above Ground Biomass',
y = unique(SLA_df_AGB$unit))

ggplot(data = SLA_Vcmax_LAI) +
geom_line(aes(datetime, value, color = scn)) +
THEME +
facet_grid(pft_name~scn, scales = "free") +
labs(title = 'LAI',
y = unique(SLA_LAI$unit))

LS0tCnRpdGxlOiAiV2hhdCBoYXBwZW5zIHdoZW4gd2UgcmVtb3ZlIHBpbmVzIGZyb20gRUQ/ICIKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIsICVZJylgIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoKIyMgT2JqZWN0aXZlIAoKMS4gV2hhdCBoYXBwZW5zIHdoZW4gcGluZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgYmFzZWxpbmU/CgpNYXJrZG93biBzZXQgdXAKCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIFRoZSBkZWZhdWx0cyBmb3IgdGhlIGNodW5rcwprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGZpZy53aWR0aCA9IDgsIGZpZy5oZWlnaHQgPSA1KQoKIyBMb2FkIHJlcXVpcmVkIGxpYnJhcmllcwpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZGF0YS50YWJsZSkKbGlicmFyeShsdWJyaWRhdGUpCmxpYnJhcnkoZWQ0Zm9ydGUpCmxpYnJhcnkoY293cGxvdCkKbGlicmFyeShmb3J0ZWRhdGEpCmxpYnJhcnkoZm9ydGVkYXRhKQpsaWJyYXJ5KGZvcnRlYmFzZWxpbmUpCmxpYnJhcnkoYXNzZXJ0dGhhdCkKCiMgU2V0IHVwIHRoZSBkaXJzIApCQVNFX0RJUiAgIDwtIGhlcmU6OmhlcmUoKQpJTlBVVCAgICAgIDwtIGZpbGUucGF0aChCQVNFX0RJUiwgIkEuaW5wdXRzIikKT1VUUFVUX0RJUiA8LSBmaWxlLnBhdGgoQkFTRV9ESVIsICJFRC1vdXRwdXRzIikKRFJBS0VfRElSICA8LSBmaWxlLnBhdGgoQkFTRV9ESVIsICJDLmFuYWx5c2lzIiwgImRyYWtlIikKYXNzZXJ0X3RoYXQoYWxsKGRpci5leGlzdHMoYyhJTlBVVCwgT1VUUFVUX0RJUiwgRFJBS0VfRElSKSkpKQoKIyBEZWZpbmdlIHRoZSBncmFwaGljcyB0aGVtZXMgClRIRU1FIDwtIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDIwKQpgYGAKCgojIyBQcm9jZXNzIEVEIFJlc3VsdHMgCgpJbiB0aGlzIGFuYWx5c2lzIHdlIGFyZSBnb2luZyB0byBiZSBjb21wYXJpbmcgdGhlIEVEIHRlc3QgYW5kIHRoZSBFRCBubyBwaW5lIHJ1bnMsIGFsdGhvdWdoIHRoZXNlIHJ1bnMgc2hvdWxkIGJlIAoKCmBgYHtyfQojIFJ1biB0aGUgZHJha2UgcGxhbnMgdGhhdCBwcm9jZXNzIHRoZSBkYXRhLiAKIyBzb3VyY2UoZmlsZS5wYXRoKERSQUtFX0RJUiwgJ3Byb2Nlc3Mtb3V0cHV0cy5SJykpICMjIEtBTFlOIE5FRUQgdG8gZmlndXJlIG91dCB0aGUgY29ycmVjdCB3YXkgdG8gZXhlY3V0ZSB0aGlzISB1c2doICMgc28gZnJlYWtpbmcgYW5ub3lpbmcgCgojIEltcG9ydCB0aGUgb3V0cHV0IGZpbGVzIApub19waW5lcyA8LSByZWFkUkRTKGZpbGUucGF0aChPVVRQVVRfRElSLCAibm9fcGluZXMtZGF0YS5yZHMiKSkKdGVzdCAgICAgPC0gcmVhZFJEUyhmaWxlLnBhdGgoT1VUUFVUX0RJUiwgInRlc3QtZGF0YS5yZHMiKSkKYGBgCgojIyAgey50YWJzZXR9CgojIyMgMS4gQ29tYXByZSBCYXNlbGluZQoKRmlyc3QgbWFrZSBhIGRhdGEgZnJhbWUgb2YgdGhlIGJhc2VsaW5lIHJlc3VsdHMuIApgYGB7cn0KYmFzZWxpbmVfZGYgPC0gcmJpbmQobm9fcGluZXMkQUJHW3NjbiA9PSAibm9fcGluZXMtYmFzZWxpbmUiLCBdLCB0ZXN0JEFCR1tzY24gPT0gInRlc3QtYmFzZWxpbmUiXSkKYmFzZWxpbmVfZGYkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ1RlbXBlcmF0ZSBicm9hZGxlYWYsJywgcmVwbGFjZW1lbnQgPSAnVGVtcC4gYnJvYWQnLCB4ID0gYmFzZWxpbmVfZGYkcGZ0X25hbWUgKQpiYXNlbGluZV9kZiRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnc3VjY2Vzc2lvbmFsfC1zdWNjZXNzaW9uYWwnLCByZXBsYWNlbWVudCA9ICcnLCB4ID0gYmFzZWxpbmVfZGYkcGZ0X25hbWUpCmJhc2VsaW5lX2RmJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdOb3J0aGVybiBOb3J0aCBBbWVyaWNhbicsIHJlcGxhY2VtZW50ID0gJ04gTkEgJywgeCA9IGJhc2VsaW5lX2RmJHBmdF9uYW1lKQpiYXNlbGluZV9kZl9BR0IgPC0gYmFzZWxpbmVfZGYKCgpiYXNlbGluZV9MQUkgPC0gcmJpbmQobm9fcGluZXMkTEFJW3NjbiA9PSAibm9fcGluZXMtYmFzZWxpbmUiLCBdLCB0ZXN0JExBSVtzY24gPT0gInRlc3QtYmFzZWxpbmUiXSkKYmFzZWxpbmVfTEFJJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdUZW1wZXJhdGUgYnJvYWRsZWFmLCcsIHJlcGxhY2VtZW50ID0gJ1RlbXAuIGJyb2FkJywgeCA9IGJhc2VsaW5lX0xBSSRwZnRfbmFtZSApCmJhc2VsaW5lX0xBSSRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnc3VjY2Vzc2lvbmFsfC1zdWNjZXNzaW9uYWwnLCByZXBsYWNlbWVudCA9ICcnLCB4ID0gYmFzZWxpbmVfTEFJJHBmdF9uYW1lKQpiYXNlbGluZV9MQUkkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ05vcnRoZXJuIE5vcnRoIEFtZXJpY2FuJywgcmVwbGFjZW1lbnQgPSAnTiBOQSAnLCB4ID0gYmFzZWxpbmVfTEFJJHBmdF9uYW1lKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IGJhc2VsaW5lX2RmKSArIAogIGdlb21fcG9pbnQoYWVzKGRhdGV0aW1lLCB2YWx1ZSwgY29sb3IgPSBzY24pKSArIAogIFRIRU1FICsgCiAgZmFjZXRfZ3JpZChwZnRfbmFtZSB+IHNjbiwgc2NhbGVzID0gImZyZWUiKSArCiAgbGFicyh0aXRsZSA9ICdBYm92ZSBHcm91bmQgQmlvbWFzcycsIAogICAgICAgeSA9IHVuaXF1ZShiYXNlbGluZV9kZiR1bml0KSkKYGBgCgoKYGBge3J9CmdncGxvdChkYXRhID0gYmFzZWxpbmVfTEFJKSArIAogIGdlb21fcG9pbnQoYWVzKGRhdGV0aW1lLCB2YWx1ZSwgY29sb3IgPSBzY24pKSArIAogIFRIRU1FICsgCiAgZmFjZXRfZ3JpZChwZnRfbmFtZX5zY24sIHNjYWxlcyA9ICJmcmVlIikgKwogIGxhYnModGl0bGUgPSAnTEFJJywgCiAgICAgICB5ID0gdW5pcXVlKGJhc2VsaW5lX0xBSSR1bml0KSkKYGBgCgpSZW1vdmluZyB0aGUgcGluZXMgZG9lcyBub3QgaW1wYWN0IHRoZSBhYm92ZSBncm91bmQgYmlvbWFzcyBhbmQgdGhlIExBSSB2YWx1ZXMsIHRoaXMgaXMgc29tZXdoYXQgZXhwZWN0ZWQgY29uc2lkZXJpbmcgdGhlIHRlc3QgcnVucyBJIGRpZCBmb3IgQWxleGV5LiAKCiMjIyAyLiBXaGF0IGhhcHBlbnMgd2hlbiBTTEEgdmFsdWVzIGFyZSBjaGFuZ2VkPyAKCkZpcnN0IG1ha2UgYSBkYXRhIGZyYW1lIG9mIHRoZSByZXN1bHRzLiAKYGBge3J9ClNMQV9kZiA8LSByYmluZChub19waW5lcyRBQkdbc2NuICVpbiUgYygibm9fcGluZXMtVU1CU19TTEEiLCAibm9fcGluZXMtYmFzZWxpbmUiKSwgXSwgdGVzdCRBQkdbc2NuID09ICJ0ZXN0LVVNQlNfU0xBIl0pClNMQV9kZiRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnVGVtcGVyYXRlIGJyb2FkbGVhZiwnLCByZXBsYWNlbWVudCA9ICdUZW1wLiBicm9hZCcsIHggPSBTTEFfZGYkcGZ0X25hbWUgKQpTTEFfZGYkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ3N1Y2Nlc3Npb25hbHwtc3VjY2Vzc2lvbmFsJywgcmVwbGFjZW1lbnQgPSAnJywgeCA9IFNMQV9kZiRwZnRfbmFtZSkKU0xBX2RmJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdOb3J0aGVybiBOb3J0aCBBbWVyaWNhbicsIHJlcGxhY2VtZW50ID0gJ04gTkEgJywgeCA9IFNMQV9kZiRwZnRfbmFtZSkKU0xBX2RmX0FHQiA8LSBTTEFfZGYKCgpTTEFfTEFJIDwtIHJiaW5kKG5vX3BpbmVzJExBSVtzY24gJWluJSBjKCJub19waW5lcy1VTUJTX1NMQSIsICJub19waW5lcy1iYXNlbGluZSIpLCBdLCB0ZXN0JExBSVtzY24gPT0gInRlc3QtVU1CU19TTEEiXSkKU0xBX0xBSSRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnVGVtcGVyYXRlIGJyb2FkbGVhZiwnLCByZXBsYWNlbWVudCA9ICdUZW1wLiBicm9hZCcsIHggPSBTTEFfTEFJJHBmdF9uYW1lICkKU0xBX0xBSSRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnc3VjY2Vzc2lvbmFsfC1zdWNjZXNzaW9uYWwnLCByZXBsYWNlbWVudCA9ICcnLCB4ID0gU0xBX0xBSSRwZnRfbmFtZSkKU0xBX0xBSSRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnTm9ydGhlcm4gTm9ydGggQW1lcmljYW4nLCByZXBsYWNlbWVudCA9ICdOIE5BICcsIHggPSBTTEFfTEFJJHBmdF9uYW1lKQpgYGAKCgpgYGB7cn0KZ2dwbG90KGRhdGEgPSBTTEFfZGZfQUdCKSArIAogIGdlb21fcG9pbnQoYWVzKGRhdGV0aW1lLCB2YWx1ZSwgY29sb3IgPSBzY24pKSArIAogIFRIRU1FICsgCmZhY2V0X3dyYXAoInBmdF9uYW1lIiwgc2NhbGVzID0gImZyZWUiLCBuY29sID0gMSkgKwogIGxhYnModGl0bGUgPSAnQWJvdmUgR3JvdW5kIEJpb21hc3MnLCAKICAgICAgIHkgPSB1bmlxdWUoU0xBX2RmX0FHQiR1bml0KSkKYGBgCgpgYGB7cn0KZ2dwbG90KGRhdGEgPSBTTEFfTEFJKSArIAogIGdlb21fbGluZShhZXMoZGF0ZXRpbWUsIHZhbHVlLCBjb2xvciA9IHNjbikpICsgCiAgVEhFTUUgKyAKICBmYWNldF9ncmlkKHBmdF9uYW1lfnNjbiwgc2NhbGVzID0gImZyZWUiKSArCiAgbGFicyh0aXRsZSA9ICdMQUknLCAKICAgICAgIHkgPSB1bmlxdWUoU0xBX0xBSSR1bml0KSkKYGBgCgojIyMgMy4gV2hhdCBoYXBwZW5zIHdoZW4gVmNtYXggdmFsdWVzIGFyZSBjaGFuZ2VkPyAKCmBgYHtyfQpWY21heF9kZiA8LSByYmluZChub19waW5lcyRBQkdbc2NuICVpbiUgYygibm9fcGluZXMtVU1CU19WY21heCIsICJub19waW5lcy1iYXNlbGluZSIpLCBdLCB0ZXN0JEFCR1tzY24gPT0gInRlc3QtVU1CU19WY21heCJdKQpWY21heF9kZiRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnVGVtcGVyYXRlIGJyb2FkbGVhZiwnLCByZXBsYWNlbWVudCA9ICdUZW1wLiBicm9hZCcsIHggPSBWY21heF9kZiRwZnRfbmFtZSApClZjbWF4X2RmJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdzdWNjZXNzaW9uYWx8LXN1Y2Nlc3Npb25hbCcsIHJlcGxhY2VtZW50ID0gJycsIHggPSBWY21heF9kZiRwZnRfbmFtZSkKVmNtYXhfZGYkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ05vcnRoZXJuIE5vcnRoIEFtZXJpY2FuJywgcmVwbGFjZW1lbnQgPSAnTiBOQSAnLCB4ID0gVmNtYXhfZGYkcGZ0X25hbWUpClZjbWF4X0FCRyA8LSBWY21heF9kZgoKVmNhbXhfTEFJIDwtIHJiaW5kKG5vX3BpbmVzJExBSVtzY24gJWluJSBjKCJub19waW5lcy1VTUJTX1ZjbWF4IiwgIm5vX3BpbmVzLWJhc2VsaW5lIiksIF0sIHRlc3QkTEFJW3NjbiA9PSAidGVzdC1VTUJTX1ZjbWF4Il0pClZjYW14X0xBSSRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnVGVtcGVyYXRlIGJyb2FkbGVhZiwnLCByZXBsYWNlbWVudCA9ICdUZW1wLiBicm9hZCcsIHggPSBWY2FteF9MQUkkcGZ0X25hbWUgKQpWY2FteF9MQUkkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ3N1Y2Nlc3Npb25hbHwtc3VjY2Vzc2lvbmFsJywgcmVwbGFjZW1lbnQgPSAnJywgeCA9IFZjYW14X0xBSSRwZnRfbmFtZSkKVmNhbXhfTEFJJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdOb3J0aGVybiBOb3J0aCBBbWVyaWNhbicsIHJlcGxhY2VtZW50ID0gJ04gTkEgJywgeCA9IFZjYW14X0xBSSRwZnRfbmFtZSkKYGBgCgoKYGBge3J9CmdncGxvdChkYXRhID0gVmNtYXhfQUJHKSArIAogIGdlb21fcG9pbnQoYWVzKGRhdGV0aW1lLCB2YWx1ZSwgY29sb3IgPSBzY24pKSArIAogIFRIRU1FICsgCmZhY2V0X3dyYXAoInBmdF9uYW1lIiwgc2NhbGVzID0gImZyZWUiLCBuY29sID0gMSkgKwogIGxhYnModGl0bGUgPSAnQWJvdmUgR3JvdW5kIEJpb21hc3MnLCAKICAgICAgIHkgPSB1bmlxdWUoU0xBX2RmX0FHQiR1bml0KSkKYGBgCgoKYGBge3J9CmdncGxvdChkYXRhID0gVmNhbXhfTEFJKSArIAogIGdlb21fbGluZShhZXMoZGF0ZXRpbWUsIHZhbHVlLCBjb2xvciA9IHNjbikpICsgCiAgVEhFTUUgKyAKICBmYWNldF9ncmlkKHBmdF9uYW1lfnNjbiwgc2NhbGVzID0gImZyZWUiKSArCiAgbGFicyh0aXRsZSA9ICdMQUknLCAKICAgICAgIHkgPSB1bmlxdWUoU0xBX0xBSSR1bml0KSkKYGBgCgoKIyMjIDQuIFdoYXQgaGFwcGVucyB3aGVuIGJvdGggU0xBIGFuZCBWY21heCBhcmUgY2hhbmdlZD8gCmBgYHtyfQpWY21heF9kZiA8LSByYmluZChub19waW5lcyRBQkdbc2NuICVpbiUgYygibm9fcGluZXMtVmNtYXgtU0xBIiwgIm5vX3BpbmVzLWJhc2VsaW5lIiksIF0sIHRlc3QkQUJHW3NjbiA9PSAidGVzdC1VTUJTX1ZjbWF4Il0pClZjbWF4X2RmJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdUZW1wZXJhdGUgYnJvYWRsZWFmLCcsIHJlcGxhY2VtZW50ID0gJ1RlbXAuIGJyb2FkJywgeCA9IFZjbWF4X2RmJHBmdF9uYW1lICkKVmNtYXhfZGYkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ3N1Y2Nlc3Npb25hbHwtc3VjY2Vzc2lvbmFsJywgcmVwbGFjZW1lbnQgPSAnJywgeCA9IFZjbWF4X2RmJHBmdF9uYW1lKQpWY21heF9kZiRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnTm9ydGhlcm4gTm9ydGggQW1lcmljYW4nLCByZXBsYWNlbWVudCA9ICdOIE5BICcsIHggPSBWY21heF9kZiRwZnRfbmFtZSkKU0xBX1ZjbWF4X0FCRyA8LSBWY21heF9kZgoKVmNhbXhfTEFJIDwtIHJiaW5kKG5vX3BpbmVzJExBSVtzY24gJWluJSBjKCJub19waW5lcy1WY21heC1TTEEiLCAibm9fcGluZXMtYmFzZWxpbmUiKSwgXSwgdGVzdCRMQUlbc2NuID09ICJ0ZXN0LVVNQlNfVmNtYXgiXSkKVmNhbXhfTEFJJHBmdF9uYW1lIDwtIGdzdWIocGF0dGVybiA9ICdUZW1wZXJhdGUgYnJvYWRsZWFmLCcsIHJlcGxhY2VtZW50ID0gJ1RlbXAuIGJyb2FkJywgeCA9IFZjYW14X0xBSSRwZnRfbmFtZSApClZjYW14X0xBSSRwZnRfbmFtZSA8LSBnc3ViKHBhdHRlcm4gPSAnc3VjY2Vzc2lvbmFsfC1zdWNjZXNzaW9uYWwnLCByZXBsYWNlbWVudCA9ICcnLCB4ID0gVmNhbXhfTEFJJHBmdF9uYW1lKQpWY2FteF9MQUkkcGZ0X25hbWUgPC0gZ3N1YihwYXR0ZXJuID0gJ05vcnRoZXJuIE5vcnRoIEFtZXJpY2FuJywgcmVwbGFjZW1lbnQgPSAnTiBOQSAnLCB4ID0gVmNhbXhfTEFJJHBmdF9uYW1lKQpTTEFfVmNtYXhfTEFJIDwtIFZjYW14X0xBSQpgYGAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IFNMQV9WY21heF9BQkcpICsgCiAgZ2VvbV9wb2ludChhZXMoZGF0ZXRpbWUsIHZhbHVlLCBjb2xvciA9IHNjbikpICsgCiAgVEhFTUUgKyAKZmFjZXRfd3JhcCgicGZ0X25hbWUiLCBzY2FsZXMgPSAiZnJlZSIsIG5jb2wgPSAxKSArCiAgbGFicyh0aXRsZSA9ICdBYm92ZSBHcm91bmQgQmlvbWFzcycsIAogICAgICAgeSA9IHVuaXF1ZShTTEFfZGZfQUdCJHVuaXQpKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IFNMQV9WY21heF9MQUkpICsgCiAgZ2VvbV9saW5lKGFlcyhkYXRldGltZSwgdmFsdWUsIGNvbG9yID0gc2NuKSkgKyAKICBUSEVNRSArIAogIGZhY2V0X2dyaWQocGZ0X25hbWV+c2NuLCBzY2FsZXMgPSAiZnJlZSIpICsKICBsYWJzKHRpdGxlID0gJ0xBSScsIAogICAgICAgeSA9IHVuaXF1ZShTTEFfTEFJJHVuaXQpKQpgYGA=