1637798053
AwuilbDvXz%3A6dfda93277b1a6adbc5e0c038456acc8-2942573e1c893702ad4992b795b4592b
s:34328:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjI5NDI1NzNlMWM4OTM3MDJhZDQ5OTJiNzk1YjQ1OTJiIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6Mjg6ImZpZWxkbWFwcy1hZGQtZWRpdC1jbG9uZS5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo0NDoidGVtcGxhdGVzL2FkbWluL2ZpZWxkbWFwcy1hZGQtZWRpdC1jbG9uZS5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjI0OTE0OiI8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iPD9waHAgZWNobyBlc2NfdXJsKCBhZG1pbl91cmwoICdhZG1pbi1wb3N0LnBocCcgKSApOyA/PiIgY2xhc3M9ImZpZWxkbWFwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZGlyZWN0X3VybF9lcnJvciIgdmFsdWU9Ijw/cGhwIGVjaG8gZXNjX3VybCggJGVycm9yX3VybCApOyA/PiIgLz4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZGlyZWN0X3VybF9zdWNjZXNzIiB2YWx1ZT0iPD9waHAgZWNobyBlc2NfdXJsKCAkc3VjY2Vzc191cmwgKTsgPz4iIC8+Cgk8P3BocCBpZiAoIGlzc2V0KCAkdHJhbnNpZW50ICkgKSB7ID8+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmFuc2llbnQiIHZhbHVlPSI8P3BocCBlY2hvIGVzY19odG1sKCAkdHJhbnNpZW50ICk7ID8+IiAvPgoJPD9waHAgfSA/PgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icG9zdF9maWVsZG1hcCIgPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iPD9waHAgZWNobyBlc2NfYXR0ciggJG1ldGhvZCApOyA/PiIgLz4KCTw/cGhwIGlmICggJ2VkaXQnID09PSAkbWV0aG9kICkgeyA/PgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSI8P3BocCBlY2hvIGFic2ludCggJG1hcFsnaWQnXSApOyA/PiIgLz4KCTw/cGhwIH0gPz4KCTxkaXYgY2xhc3M9ImZpZWxkbWFwX2xhYmVsIj4KCQk8bGFiZWwgZm9yPSJsYWJlbCI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnTGFiZWwnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+OiA8L2xhYmVsPgoJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibGFiZWwiIG5hbWU9ImxhYmVsIiByZXF1aXJlZCB2YWx1ZT0iPD9waHAgZWNobyBpc3NldCggJGxhYmVsICkgPyBlc2NfaHRtbCggJGxhYmVsICkgOiAnJzsgPz4iIC8+Cgk8L2Rpdj4KCTxmaWVsZHNldCBjbGFzcz0id29yZHByZXNzX3NpZGUiPgoJCTxkaXYgY2xhc3M9IndvcmRwcmVzc19vYmplY3QiPgoJCQk8bGFiZWwgZm9yPSJ3b3JkcHJlc3Nfb2JqZWN0Ij48P3BocCBlY2hvIGVzY19odG1sX18oICdXb3JkUHJlc3MgT2JqZWN0JywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PjogPC9sYWJlbD4KCQkJPGRpdiBjbGFzcz0ic3Bpbm5lciBzcGlubmVyLXdvcmRwcmVzcyI+PC9kaXY+CgkJCTxzZWxlY3QgaWQ9IndvcmRwcmVzc19vYmplY3QiIG5hbWU9IndvcmRwcmVzc19vYmplY3QiIHJlcXVpcmVkPgoJCQkJPG9wdGlvbiB2YWx1ZT0iIj4tIDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1NlbGVjdCBvYmplY3QgdHlwZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz4gLTwvb3B0aW9uPgoJCQkJPD9waHAKCQkJCSR3b3JkcHJlc3Nfb2JqZWN0cyA9ICR0aGlzLT53b3JkcHJlc3MtPndvcmRwcmVzc19vYmplY3RzOwoJCQkJZm9yZWFjaCAoICR3b3JkcHJlc3Nfb2JqZWN0cyBhcyAkb2JqZWN0ICkgewoJCQkJCWlmICggaXNzZXQoICR3b3JkcHJlc3Nfb2JqZWN0ICkgJiYgJHdvcmRwcmVzc19vYmplY3QgPT09ICRvYmplY3QgKSB7CgkJCQkJCSRzZWxlY3RlZCA9ICcgc2VsZWN0ZWQnOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRzZWxlY3RlZCA9ICcnOwoJCQkJCX0KCQkJCQllY2hvIHNwcmludGYoCgkJCQkJCSc8b3B0aW9uIHZhbHVlPSIlMSRzIiUyJHM+JTMkczwvb3B0aW9uPicsCgkJCQkJCWVzY19odG1sKCAkb2JqZWN0ICksCgkJCQkJCWVzY19hdHRyKCAkc2VsZWN0ZWQgKSwKCQkJCQkJZXNjX2h0bWwoICRvYmplY3QgKQoJCQkJCSk7CgkJCQl9CgkJCQk/PgoJCQk8L3NlbGVjdD4KCQk8L2Rpdj4KCTwvZmllbGRzZXQ+Cgk8ZmllbGRzZXQgY2xhc3M9InNhbGVzZm9yY2Vfc2lkZSI+CgkJPGRpdiBjbGFzcz0ic2FsZXNmb3JjZV9vYmplY3QiPgoJCQk8bGFiZWwgZm9yPSJzYWxlc2ZvcmNlX29iamVjdCI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2FsZXNmb3JjZSBPYmplY3QnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+OiA8L2xhYmVsPgoJCQk8ZGl2IGNsYXNzPSJzcGlubmVyIHNwaW5uZXItc2FsZXNmb3JjZSI+PC9kaXY+CgkJCTxzZWxlY3QgaWQ9InNhbGVzZm9yY2Vfb2JqZWN0IiBuYW1lPSJzYWxlc2ZvcmNlX29iamVjdCIgcmVxdWlyZWQ+CgkJCQk8b3B0aW9uIHZhbHVlPSIiPi0gPD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2VsZWN0IG9iamVjdCB0eXBlJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PiAtPC9vcHRpb24+CgkJCQk8P3BocAoJCQkJJHNmYXBpICAgICAgICAgID0gJHRoaXMtPnNhbGVzZm9yY2VbJ3NmYXBpJ107CgkJCQkkb2JqZWN0X2ZpbHRlcnMgPSBtYXliZV91bnNlcmlhbGl6ZSggZ2V0X29wdGlvbiggJ3NhbGVzZm9yY2VfYXBpX29iamVjdF9maWx0ZXJzJyApLCBhcnJheSgpICk7CgkJCQkkY29uZGl0aW9ucyAgICAgPSBhcnJheSgpOwoJCQkJaWYgKCBpc19hcnJheSggJG9iamVjdF9maWx0ZXJzICkgJiYgaW5fYXJyYXkoICd1cGRhdGVhYmxlJywgJG9iamVjdF9maWx0ZXJzLCB0cnVlICkgKSB7CgkJCQkJJGNvbmRpdGlvbnNbJ3VwZGF0ZWFibGUnXSA9IHRydWU7CgkJCQl9CgkJCQlpZiAoIGlzX2FycmF5KCAkb2JqZWN0X2ZpbHRlcnMgKSAmJiBpbl9hcnJheSggJ3RyaWdnZXJhYmxlJywgJG9iamVjdF9maWx0ZXJzLCB0cnVlICkgKSB7CgkJCQkJJGNvbmRpdGlvbnNbJ3RyaWdnZXJhYmxlJ10gPSB0cnVlOwoJCQkJfQoJCQkJJHNhbGVzZm9yY2Vfb2JqZWN0cyA9ICRzZmFwaS0+b2JqZWN0cyggJGNvbmRpdGlvbnMgKTsKCQkJCWZvcmVhY2ggKCAkc2FsZXNmb3JjZV9vYmplY3RzIGFzICRvYmplY3QgKSB7CgkJCQkJaWYgKCBpc3NldCggJHNhbGVzZm9yY2Vfb2JqZWN0ICkgJiYgJHNhbGVzZm9yY2Vfb2JqZWN0ID09PSAkb2JqZWN0WyduYW1lJ10gKSB7CgkJCQkJCSRzZWxlY3RlZCA9ICcgc2VsZWN0ZWQnOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRzZWxlY3RlZCA9ICcnOwoJCQkJCX0KCQkJCQllY2hvIHNwcmludGYoCgkJCQkJCSc8b3B0aW9uIHZhbHVlPSIlMSRzIiUyJHM+JTMkczwvb3B0aW9uPicsCgkJCQkJCWVzY19odG1sKCAkb2JqZWN0WyduYW1lJ10gKSwKCQkJCQkJZXNjX2F0dHIoICRzZWxlY3RlZCApLAoJCQkJCQllc2NfaHRtbCggJG9iamVjdFsnbGFiZWwnXSApCgkJCQkJKTsKCQkJCX0KCQkJCT8+CgkJCTwvc2VsZWN0PgoJCQk8P3BocCBpZiAoIGVtcHR5KCAkc2FsZXNmb3JjZV9vYmplY3RzICkgKSA6ID8+CgkJCQk8cCBjbGFzcz0iZGVzY3JpcHRpb24iPgoJCQkJCTw/cGhwCgkJCQkJZWNobyBzcHJpbnRmKAoJCQkJCQkvLyB0cmFuc2xhdG9yczogMSkgaXMgdGhlIGxpbmsgdG8gdHJvdWJsZXNob290aW5nIG9iamVjdCBtYXBzIGluIHRoZSBwbHVnaW4gZG9jdW1lbnRhdGlvbgoJCQkJCQknPHN0cm9uZz4nIC4gZXNjX2h0bWxfXyggJ1RoZSBwbHVnaW4gaXMgdW5hYmxlIHRvIGFjY2VzcyBhbnkgU2FsZXNmb3JjZSBvYmplY3RzIGZvciBvYmplY3QgbWFwcGluZy4nLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICkgLiAnPC9zdHJvbmc+JyAuIGVzY19odG1sX18oICcgVGhpcyBpcyBtb3N0IGxpa2VseSBhIHBlcm1pc3Npb25zIGlzc3VlLiBTZWUgJTEkcyBpbiB0aGUgcGx1Z2luIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHBvc3NpYmxlIHNvbHV0aW9ucy4nLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICkgLiAnPC9zdHJvbmc+JywKCQkJCQkJJzxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9NaW5uUG9zdC9vYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZS9ibG9iLzI3MS1vYmplY3QtbWFwLXBlcm1pc3Npb24taXNzdWVzL2RvY3MvdHJvdWJsZXNob290aW5nLm1kI29iamVjdC1tYXAtaXNzdWVzIj50cm91Ymxlc2hvb3Rpbmcgb2JqZWN0IG1hcHM8L2E+JwoJCQkJCSk7CgkJCQkJPz4KCQkJCTwvcD4KCQkJPD9waHAgZW5kaWY7ID8+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0ic2FsZXNmb3JjZV9yZWNvcmRfdHlwZXNfYWxsb3dlZCI+CgkJCTw/cGhwCgkJCWlmICggaXNzZXQoICRzYWxlc2ZvcmNlX3JlY29yZF90eXBlc19hbGxvd2VkICkgKSA6CgkJCQkkcmVjb3JkX3R5cGVzID0gJHRoaXMtPmdldF9zYWxlc2ZvcmNlX29iamVjdF9kZXNjcmlwdGlvbigKCQkJCQlhcnJheSgKCQkJCQkJJ3NhbGVzZm9yY2Vfb2JqZWN0JyA9PiAkc2FsZXNmb3JjZV9vYmplY3QsCgkJCQkJCSdpbmNsdWRlJyAgICAgICAgICAgPT4gJ3JlY29yZFR5cGVJbmZvcycsCgkJCQkJKQoJCQkJKTsKCQkJCWlmICggaXNzZXQoICRyZWNvcmRfdHlwZXNbJ3JlY29yZFR5cGVJbmZvcyddICkgKSA6CgkJCQkJPz4KCQkJCQk8bGFiZWwgZm9yPSJzYWxlc2ZvcmNlX3JlY29yZF90eXBlc19hbGxvd2VkIj48P3BocCBlY2hvIGVzY19odG1sX18oICdBbGxvd2VkIFJlY29yZCBUeXBlcycsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz46PC9sYWJlbD4KCQkJCQk8ZGl2IGNsYXNzPSJjaGVja2JveGVzIj4KCQkJCQk8P3BocCBmb3JlYWNoICggJHJlY29yZF90eXBlc1sncmVjb3JkVHlwZUluZm9zJ10gYXMgJGtleSA9PiAkdmFsdWUgKSA6ID8+CgkJCQkJCTw/cGhwCgkJCQkJCWlmICggaW5fYXJyYXkoICRrZXksICRzYWxlc2ZvcmNlX3JlY29yZF90eXBlc19hbGxvd2VkLCB0cnVlICkgKSB7CgkJCQkJCQkkY2hlY2tlZCA9ICcgY2hlY2tlZCc7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQkkY2hlY2tlZCA9ICcnOwoJCQkJCQl9CgkJCQkJCWVjaG8gc3ByaW50ZigKCQkJCQkJCSc8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZm9ybS1jaGVja2JveCIgdmFsdWU9IiUxJHMiIG5hbWU9IiUyJHMiIGlkPSIlMyRzIiU0JHM+JTUkczwvbGFiZWw+JywKCQkJCQkJCWVzY19odG1sKCAka2V5ICksCgkJCQkJCQllc2NfYXR0ciggJ3NhbGVzZm9yY2VfcmVjb3JkX3R5cGVzX2FsbG93ZWRbJyAuICRrZXkgLiAnXScgKSwKCQkJCQkJCWVzY19hdHRyKCAnc2FsZXNmb3JjZV9yZWNvcmRfdHlwZXNfYWxsb3dlZC0nIC4gJGtleSApLAoJCQkJCQkJZXNjX2h0bWwoICRjaGVja2VkICksCgkJCQkJCQllc2NfaHRtbCggJHZhbHVlICkKCQkJCQkJKTsKCQkJCQkJPz4KCQkJCQk8P3BocCBlbmRmb3JlYWNoOyA/PgoJCQkJCTwvZGl2PgoJCQkJPD9waHAgZW5kaWY7ID8+CgkJCTw/cGhwIGVuZGlmOyA/PgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InNhbGVzZm9yY2VfcmVjb3JkX3R5cGVfZGVmYXVsdCI+CgkJCTw/cGhwCgkJCWlmICggaXNzZXQoICRzYWxlc2ZvcmNlX3JlY29yZF90eXBlX2RlZmF1bHQgKSApIDoKCQkJCSRyZWNvcmRfdHlwZXMgPSAkdGhpcy0+Z2V0X3NhbGVzZm9yY2Vfb2JqZWN0X2Rlc2NyaXB0aW9uKAoJCQkJCWFycmF5KAoJCQkJCQknc2FsZXNmb3JjZV9vYmplY3QnID0+ICRzYWxlc2ZvcmNlX29iamVjdCwKCQkJCQkJJ2luY2x1ZGUnICAgICAgICAgICA9PiAncmVjb3JkVHlwZUluZm9zJywKCQkJCQkpCgkJCQkpOwoJCQkJaWYgKCBpc3NldCggJHJlY29yZF90eXBlc1sncmVjb3JkVHlwZUluZm9zJ10gKSApIDoKCQkJCQk/PgoJCQkJCTxsYWJlbCBmb3I9InNhbGVzZm9yY2VfcmVjb3JkX3R5cGVfZGVmYXVsdCI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnRGVmYXVsdCBSZWNvcmQgVHlwZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz46PC9sYWJlbD4KCQkJCQk8c2VsZWN0IGlkPSJzYWxlc2ZvcmNlX3JlY29yZF90eXBlX2RlZmF1bHQiIG5hbWU9InNhbGVzZm9yY2VfcmVjb3JkX3R5cGVfZGVmYXVsdCIgcmVxdWlyZWQ+PG9wdGlvbiB2YWx1ZT0iIj4tIDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1NlbGVjdCByZWNvcmQgdHlwZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz4gLTwvb3B0aW9uPgoJCQkJCTw/cGhwCgkJCQkJZm9yZWFjaCAoICRyZWNvcmRfdHlwZXNbJ3JlY29yZFR5cGVJbmZvcyddIGFzICRrZXkgPT4gJHZhbHVlICkgOgoJCQkJCQlpZiAoIGlzc2V0KCAkc2FsZXNmb3JjZV9yZWNvcmRfdHlwZV9kZWZhdWx0ICkgJiYgJHNhbGVzZm9yY2VfcmVjb3JkX3R5cGVfZGVmYXVsdCA9PT0gJGtleSApIHsKCQkJCQkJCSRzZWxlY3RlZCA9ICcgc2VsZWN0ZWQnOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJJHNlbGVjdGVkID0gJyc7CgkJCQkJCX0KCQkJCQkJaWYgKCAhIGlzc2V0KCAkc2FsZXNmb3JjZV9yZWNvcmRfdHlwZXNfYWxsb3dlZCApIHx8IGluX2FycmF5KCAka2V5LCAkc2FsZXNmb3JjZV9yZWNvcmRfdHlwZXNfYWxsb3dlZCwgdHJ1ZSApICkgewoJCQkJCQkJZWNobyBzcHJpbnRmKAoJCQkJCQkJCSc8b3B0aW9uIHZhbHVlPSIlMSRzIiUyJHM+JTMkczwvb3B0aW9uPicsCgkJCQkJCQkJZXNjX2F0dHIoICRrZXkgKSwKCQkJCQkJCQllc2NfYXR0ciggJHNlbGVjdGVkICksCgkJCQkJCQkJZXNjX2h0bWwoICR2YWx1ZSApCgkJCQkJCQkpOwoJCQkJCQl9CgkJCQkJZW5kZm9yZWFjaDsKCQkJCQk/PgoJCQkJCTwvc2VsZWN0PgoJCQkJCTw/cGhwCgkJCQllbmRpZjsKCQkJZW5kaWY7CgkJCT8+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icHVsbF90cmlnZ2VyX2ZpZWxkIj4KCQkJPD9waHAgaWYgKCBpc3NldCggJHB1bGxfdHJpZ2dlcl9maWVsZCApICkgOiA/PgoJCQkJPGxhYmVsIGZvcj0icHVsbF90cmlnZ2VyX2ZpZWxkIj48P3BocCBlY2hvIGVzY19odG1sX18oICdEYXRlIGZpZWxkIHRvIHRyaWdnZXIgcHVsbCcsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz46PC9sYWJlbD4KCQkJCTw/cGhwCgkJCQkkb2JqZWN0X2ZpZWxkcyA9ICR0aGlzLT5nZXRfc2FsZXNmb3JjZV9vYmplY3RfZmllbGRzKAoJCQkJCWFycmF5KAoJCQkJCQknc2FsZXNmb3JjZV9vYmplY3QnID0+ICRzYWxlc2ZvcmNlX29iamVjdCwKCQkJCQkJJ3R5cGUnICAgICAgICAgICAgICA9PiAnZGF0ZXRpbWUnLAoJCQkJCSkKCQkJCSk7CgkJCQk/PgoJCQkJPHNlbGVjdCBuYW1lPSJwdWxsX3RyaWdnZXJfZmllbGQiIGlkPSJwdWxsX3RyaWdnZXJfZmllbGQiPgoJCQkJPD9waHAKCQkJCWZvcmVhY2ggKCAkb2JqZWN0X2ZpZWxkcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKCQkJCQlpZiAoICRwdWxsX3RyaWdnZXJfZmllbGQgPT09ICR2YWx1ZVsnbmFtZSddICkgewoJCQkJCQkkc2VsZWN0ZWQgPSAnIHNlbGVjdGVkJzsKCQkJCQl9IGVsc2UgewoJCQkJCQkkc2VsZWN0ZWQgPSAnJzsKCQkJCQl9CgkJCQkJZWNobyBzcHJpbnRmKAoJCQkJCQknPG9wdGlvbiB2YWx1ZT0iJTEkcyIlMiRzPiUzJHM8L29wdGlvbj4nLAoJCQkJCQllc2NfYXR0ciggJHZhbHVlWyduYW1lJ10gKSwKCQkJCQkJZXNjX2F0dHIoICRzZWxlY3RlZCApLAoJCQkJCQllc2NfaHRtbCggJHZhbHVlWydsYWJlbCddICkKCQkJCQkpOwoJCQkJfQoJCQkJPz4KCQkJCTwvc2VsZWN0PgoJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj48P3BocCBlY2hvIGVzY19odG1sX18oICdXaGVuIHRoZSBwbHVnaW4gY2hlY2tzIGZvciBkYXRhIHRvIGJyaW5nIGZyb20gU2FsZXNmb3JjZSBpbnRvIFdvcmRQcmVzcywgaXQgd2lsbCB1c2UgdGhlIHNlbGVjdGVkIGZpZWxkIHRvIGRldGVybWluZSB3aGF0IHJlbGV2YW50IGNoYW5nZXMgaGF2ZSBvY2N1cnJlZCBpbiBTYWxlc2ZvcmNlLicsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L3A+CgkJCTw/cGhwIGVuZGlmOyA/PgoJCTwvZGl2PgoJPC9maWVsZHNldD4KCTxmaWVsZHNldCBjbGFzcz0iZmllbGRzIj4KCQk8bGVnZW5kPjw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ0ZpZWxkbWFwJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PjwvbGVnZW5kPgoJCTx0YWJsZSBjbGFzcz0id3AtbGlzdC10YWJsZSB3aWRlZmF0IHN0cmlwZWQgZmllbGRzIj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aCBjbGFzcz0iY29sdW1uLXdvcmRwcmVzc19maWVsZCI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnV29yZFByZXNzIEZpZWxkJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PjwvdGg+CgkJCQkJPHRoIGNsYXNzPSJjb2x1bW4tc2FsZXNmb3JjZV9maWVsZCI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2FsZXNmb3JjZSBGaWVsZCcsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L3RoPgoJCQkJCTx0aCBjbGFzcz0iY29sdW1uLWlzX3ByZW1hdGNoIj48P3BocCBlY2hvIGVzY19odG1sX18oICdQcmVtYXRjaCcsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L3RoPgoJCQkJCTx0aCBjbGFzcz0iY29sdW1uLWlzX2tleSI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2FsZXNmb3JjZSBLZXknLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC90aD4KCQkJCQk8dGggY2xhc3M9ImNvbHVtbi1kaXJlY3Rpb24iPjw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ0RpcmVjdGlvbicsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L3RoPgoJCQkJCTx0aCBjbGFzcz0iY29sdW1uLWlzX2RlbGV0ZSI+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnRGVsZXRlJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PjwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGZvb3Q+CgkJCQk8dHI+CgkJCQkJPHRkIGNvbHNwYW49IjYiPgoJCQkJCQk8cD48c21hbGw+CgkJCQkJCQk8P3BocAoJCQkJCQkJLy8gdHJhbnNsYXRvcnM6IHRoZSBwbGFjZWhvbGRlcnMgcmVmZXIgdG86IDEpIHRoZSBjYWNoZSBjbGVhciBsaW5rLCAyKSB0aGUgY2FjaGUgY2xlYXIgbGluayB0ZXh0CgkJCQkJCQllY2hvIHNwcmludGYoCgkJCQkJCQkJJzxzdHJvbmc+JyAuCgkJCQkJCQkJZXNjX2h0bWxfXyggJ05vdGU6JywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApIC4gJzwvc3Ryb25nPicgLiBlc2NfaHRtbF9fKCAnIHRvIG1hcCBhIGN1c3RvbSBtZXRhIGZpZWxkIChzdWNoIGFzIHdwX3Bvc3RtZXRhLCB3cF91c2VybWV0YSwgd3BfdGVybW1ldGEsIGV0Yy4pLCBXb3JkUHJlc3MgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSB2YWx1ZSBmb3IgdGhhdCBmaWVsZC4gSWYgeW91IGFkZCBhIG5ldyBtZXRhIGZpZWxkIGFuZCB3YW50IHRvIG1hcCBpdCwgbWFrZSBzdXJlIHRvIGFkZCBhIHZhbHVlIGZvciBpdCBhbmQgJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApIC4gJzxhIGhyZWY9IiUxJHMiIGlkPSJjbGVhci1zZndwLWNhY2hlIj4lMiRzPC9hPicgLiBlc2NfaHRtbF9fKCAnIHRvIHNlZSB0aGUgZmllbGQgbGlzdGVkIGhlcmUuJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApLAoJCQkJCQkJCWVzY191cmwoIGdldF9hZG1pbl91cmwoIG51bGwsICdvcHRpb25zLWdlbmVyYWwucGhwP3BhZ2U9b2JqZWN0LXN5bmMtc2FsZXNmb3JjZS1hZG1pbiZ0YWI9Y2xlYXJfY2FjaGUnICkgKSwKCQkJCQkJCQllc2NfaHRtbF9fKCAnY2xlYXIgdGhlIHBsdWdpbiBjYWNoZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKQoJCQkJCQkJKTsKCQkJCQkJCT8+CgkJCQkJCTwvc21hbGw+PC9wPgoJCQkJCQk8cD48c21hbGw+CgkJCQkJCQk8P3BocAoJCQkJCQkJZWNobyBzcHJpbnRmKCAnPHN0cm9uZz4nIC4gZXNjX2h0bWxfXyggJ05vdGU6JywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApIC4gJzwvc3Ryb25nPicgLiBlc2NfaHRtbF9fKCAnIHdoZW4gbWFwcGluZyBTYWxlc2ZvcmNlIGZpZWxkcywgYSAqIGluIHRoZSBmaWVsZCBuYW1lIGRlc2lnbmF0ZXMgYSByZXF1aXJlZCBmaWVsZCBmb3IgdGhpcyBvYmplY3QgdHlwZS4nLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICkgKTsKCQkJCQkJCT8+CgkJCQkJCTwvc21hbGw+PC9wPgoJCQkJCQk8cD48c21hbGw+CgkJCQkJCQk8P3BocAoJCQkJCQkJZWNobyBzcHJpbnRmKCAnPHN0cm9uZz4nIC4gZXNjX2h0bWxfXyggJ05vdGU6JywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApIC4gJzwvc3Ryb25nPicgLiBlc2NfaHRtbF9fKCAnIHdoZW4gbWFwcGluZyBTYWxlc2ZvcmNlIGZpZWxkcywgYSDwn5SSIGluIHRoZSBmaWVsZCBuYW1lIGRlc2lnbmF0ZXMgYSBsb2NrZWQgU2FsZXNmb3JjZSBmaWVsZC4gVGhpcyBtZWFucyB5b3UgY2FuIHB1bGwgZGF0YSBmcm9tIHRoYXQgZmllbGQgYnV0IHlvdSBjYW5ub3QgcHVzaCBkYXRhIHRvIGl0LicsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKSApOwoJCQkJCQkJPz4KCQkJCQkJPC9zbWFsbD48L3A+CgkJCQkJPC90ZD4KCQkJCTwvdHI+CgkJCTwvdGZvb3Q+CgkJCTx0Ym9keT4KCQkJCTw/cGhwCgkJCQlpZiAoIGlzc2V0KCAkZmllbGRtYXBfZmllbGRzICkgJiYgbnVsbCAhPT0gJGZpZWxkbWFwX2ZpZWxkcyAmJiBpc19hcnJheSggJGZpZWxkbWFwX2ZpZWxkcyApICkgewoJCQkJCWZvcmVhY2ggKCAkZmllbGRtYXBfZmllbGRzIGFzICRrZXkgPT4gJHZhbHVlICkgewoJCQkJCQkka2V5ID0gbWQ1KCAka2V5IC4gdGltZSgpICk7CgkJCQkJCT8+CgkJCQk8dHIgZGF0YS1rZXk9Ijw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz4iPgoJCQkJCTx0ZCBjbGFzcz0iY29sdW1uLXdvcmRwcmVzc19maWVsZCI+CgkJCQkJCTxzZWxlY3QgbmFtZT0id29yZHByZXNzX2ZpZWxkWzw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz5dIiBpZD0id29yZHByZXNzX2ZpZWxkLTw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz4iPgoJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iIj4tIDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1NlbGVjdCBXb3JkUHJlc3MgZmllbGQnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+IC08L29wdGlvbj4KCQkJCQkJCTw/cGhwCgkJCQkJCQkkd29yZHByZXNzX2ZpZWxkcyA9ICR0aGlzLT5nZXRfd29yZHByZXNzX29iamVjdF9maWVsZHMoICR3b3JkcHJlc3Nfb2JqZWN0ICk7CgkJCQkJCQlmb3JlYWNoICggJHdvcmRwcmVzc19maWVsZHMgYXMgJHdvcmRwcmVzc19maWVsZCApIHsKCQkJCQkJCQlpZiAoIGlzc2V0KCAkdmFsdWVbJ3dvcmRwcmVzc19maWVsZCddWydsYWJlbCddICkgJiYgJHZhbHVlWyd3b3JkcHJlc3NfZmllbGQnXVsnbGFiZWwnXSA9PT0gJHdvcmRwcmVzc19maWVsZFsna2V5J10gKSB7CgkJCQkJCQkJCSRzZWxlY3RlZCA9ICcgc2VsZWN0ZWQnOwoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCSRzZWxlY3RlZCA9ICcnOwoJCQkJCQkJCX0KCQkJCQkJCQllY2hvIHNwcmludGYoCgkJCQkJCQkJCSc8b3B0aW9uIHZhbHVlPSIlMSRzIiUyJHM+JTMkczwvb3B0aW9uPicsCgkJCQkJCQkJCWVzY19hdHRyKCAkd29yZHByZXNzX2ZpZWxkWydrZXknXSApLAoJCQkJCQkJCQllc2NfYXR0ciggJHNlbGVjdGVkICksCgkJCQkJCQkJCWVzY19odG1sKCAkd29yZHByZXNzX2ZpZWxkWydrZXknXSApCgkJCQkJCQkJKTsKCQkJCQkJCX0KCQkJCQkJCT8+CgkJCQkJCTwvc2VsZWN0PgoKCQkJCQk8L3RkPgoJCQkJCTx0ZCBjbGFzcz0iY29sdW1uLXNhbGVzZm9yY2VfZmllbGQiPgoJCQkJCQk8c2VsZWN0IG5hbWU9InNhbGVzZm9yY2VfZmllbGRbPD9waHAgZWNobyBlc2NfYXR0ciggJGtleSApOyA/Pl0iIGlkPSJzYWxlc2ZvcmNlX2ZpZWxkLTw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz4iPgoJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iIj4tIDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1NlbGVjdCBTYWxlc2ZvcmNlIGZpZWxkJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PiAtPC9vcHRpb24+CgkJCQkJCQk8P3BocAoJCQkJCQkJJHNhbGVzZm9yY2VfZmllbGRzID0gJHRoaXMtPmdldF9zYWxlc2ZvcmNlX29iamVjdF9maWVsZHMoCgkJCQkJCQkJYXJyYXkoCgkJCQkJCQkJCSdzYWxlc2ZvcmNlX29iamVjdCcgPT4gJHNhbGVzZm9yY2Vfb2JqZWN0LAoJCQkJCQkJCSkKCQkJCQkJCSk7CgkJCQkJCQkvLyBhbGxvdyBmb3IgYXBpIG5hbWUgb3IgZmllbGQgbGFiZWwgdG8gYmUgdGhlIGRpc3BsYXkgdmFsdWUgaW4gdGhlIDxzZWxlY3Q+CgkJCQkJCQkkZGlzcGxheV92YWx1ZSA9IGdldF9vcHRpb24oICR0aGlzLT5vcHRpb25fcHJlZml4IC4gJ3NhbGVzZm9yY2VfZmllbGRfZGlzcGxheV92YWx1ZScsICdmaWVsZF9sYWJlbCcgKTsKCQkJCQkJCWZvcmVhY2ggKCAkc2FsZXNmb3JjZV9maWVsZHMgYXMgJHNhbGVzZm9yY2VfZmllbGQgKSB7CgkJCQkJCQkJaWYgKCBpc3NldCggJHZhbHVlWydzYWxlc2ZvcmNlX2ZpZWxkJ11bJ25hbWUnXSApICYmICR2YWx1ZVsnc2FsZXNmb3JjZV9maWVsZCddWyduYW1lJ10gPT09ICRzYWxlc2ZvcmNlX2ZpZWxkWyduYW1lJ10gKSB7CgkJCQkJCQkJCSRzZWxlY3RlZCA9ICcgc2VsZWN0ZWQnOwoJCQkJCQkJCX0gZWxzZWlmICggaXNzZXQoICR2YWx1ZVsnc2FsZXNmb3JjZV9maWVsZCddWydsYWJlbCddICkgJiYgJHZhbHVlWydzYWxlc2ZvcmNlX2ZpZWxkJ11bJ2xhYmVsJ10gPT09ICRzYWxlc2ZvcmNlX2ZpZWxkWyduYW1lJ10gKSB7CgkJCQkJCQkJCS8vIHRoaXMgY29uZGl0aW9uYWwgaXMgZm9yIHZlcnNpb25zIHVwIHRvIDEuMS4yLCBidXQgaSB0aGluayBpdCdzIGZpbmUgdG8gbGVhdmUgaXQgZm9yIG5vdy4gaWYgd2UgcmVtb3ZlIGl0LCBwZW9wbGUncyBmaWVsZG1hcHMgd2lsbCBub3Qgc2hvdyBjb3JyZWN0bHkgaW4gdGhlIGFkbWluLgoJCQkJCQkJCQkkc2VsZWN0ZWQgPSAnIHNlbGVjdGVkJzsKCQkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCQkkc2VsZWN0ZWQgPSAnJzsKCQkJCQkJCQl9CgoJCQkJCQkJCWlmICggJ2FwaV9uYW1lJyA9PT0gJGRpc3BsYXlfdmFsdWUgKSB7CgkJCQkJCQkJCSRzYWxlc2ZvcmNlX2ZpZWxkWydsYWJlbCddID0gJHNhbGVzZm9yY2VfZmllbGRbJ25hbWUnXTsKCQkJCQkJCQl9CgoJCQkJCQkJCWlmICggZmFsc2UgPT09ICRzYWxlc2ZvcmNlX2ZpZWxkWyduaWxsYWJsZSddICkgewoJCQkJCQkJCQkkc2FsZXNmb3JjZV9maWVsZFsnbGFiZWwnXSAuPSAnIConOwoJCQkJCQkJCX0KCgkJCQkJCQkJaWYgKCBmYWxzZSA9PT0gJHNhbGVzZm9yY2VfZmllbGRbJ3VwZGF0ZWFibGUnXSApIHsKCQkJCQkJCQkJJGxvY2tlZCA9ICcg8J+Ukic7CgkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJJGxvY2tlZCA9ICcnOwoJCQkJCQkJCX0KCgkJCQkJCQkJZWNobyBzcHJpbnRmKAoJCQkJCQkJCQknPG9wdGlvbiB2YWx1ZT0iJTEkcyIlMiRzPiUzJHMlNCRzPC9vcHRpb24+JywKCQkJCQkJCQkJZXNjX2F0dHIoICRzYWxlc2ZvcmNlX2ZpZWxkWyduYW1lJ10gKSwKCQkJCQkJCQkJZXNjX2F0dHIoICRzZWxlY3RlZCApLAoJCQkJCQkJCQllc2NfaHRtbCggJHNhbGVzZm9yY2VfZmllbGRbJ2xhYmVsJ10gKSwKCQkJCQkJCQkJJGxvY2tlZAoJCQkJCQkJCSk7CgkJCQkJCQl9CgkJCQkJCQk/PgoJCQkJCQk8L3NlbGVjdD4KCgkJCQkJPC90ZD4KCQkJCQk8dGQgY2xhc3M9ImNvbHVtbi1pc19wcmVtYXRjaCI+CgkJCQkJCTw/cGhwCgkJCQkJCWlmICggaXNzZXQoICR2YWx1ZVsnaXNfcHJlbWF0Y2gnXSApICYmICcxJyA9PT0gJHZhbHVlWydpc19wcmVtYXRjaCddICkgewoJCQkJCQkJJGNoZWNrZWQgPSAnIGNoZWNrZWQnOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJJGNoZWNrZWQgPSAnJzsKCQkJCQkJfQoJCQkJCQk/PgoJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImlzX3ByZW1hdGNoWzw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz5dIiBpZD0iaXNfcHJlbWF0Y2gtPD9waHAgZWNobyBlc2NfYXR0ciggJGtleSApOyA/PiIgdmFsdWU9IjEiIDw/cGhwIGVjaG8gZXNjX2F0dHIoICRjaGVja2VkICk7ID8+IHRpdGxlPSI8P3BocCBlY2hvIGVzY19odG1sX18oICdUaGlzIHBhaXIgc2hvdWxkIGJlIGNoZWNrZWQgZm9yIGV4aXN0aW5nIG1hdGNoZXMgaW4gU2FsZXNmb3JjZSBiZWZvcmUgYWRkaW5nJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PiIgLz4KCQkJCQk8L3RkPgoJCQkJCTx0ZCBjbGFzcz0iY29sdW1uLWlzX2tleSI+CgkJCQkJCTw/cGhwCgkJCQkJCWlmICggaXNzZXQoICR2YWx1ZVsnaXNfa2V5J10gKSAmJiAnMScgPT09ICR2YWx1ZVsnaXNfa2V5J10gKSB7CgkJCQkJCQkkY2hlY2tlZCA9ICcgY2hlY2tlZCc7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQkkY2hlY2tlZCA9ICcnOwoJCQkJCQl9CgkJCQkJCT8+CgkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iaXNfa2V5Wzw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz5dIiBpZD0iaXNfa2V5LTw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz4iIHZhbHVlPSIxIiA8P3BocCBlY2hvIGVzY19hdHRyKCAkY2hlY2tlZCApOyA/PiB0aXRsZT0iPD9waHAgZWNobyBlc2NfaHRtbF9fKCAnVGhpcyBTYWxlc2ZvcmNlIGZpZWxkIGlzIGFuIEV4dGVybmFsIElEIGluIFNhbGVzZm9yY2UnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+IiAvPgoJCQkJCTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJjb2x1bW4tZGlyZWN0aW9uIj4KCQkJCQkJPD9waHAKCQkJCQkJaWYgKCBpc3NldCggJHZhbHVlWydkaXJlY3Rpb24nXSApICkgewoJCQkJCQkJaWYgKCAnc2Zfd3AnID09PSAkdmFsdWVbJ2RpcmVjdGlvbiddICkgewoJCQkJCQkJCSRjaGVja2VkX3NmX3dwID0gJyBjaGVja2VkJzsKCQkJCQkJCQkkY2hlY2tlZF93cF9zZiA9ICcnOwoJCQkJCQkJCSRjaGVja2VkX3N5bmMgID0gJyc7CgkJCQkJCQl9IGVsc2VpZiAoICd3cF9zZicgPT09ICR2YWx1ZVsnZGlyZWN0aW9uJ10gKSB7CgkJCQkJCQkJJGNoZWNrZWRfc2Zfd3AgPSAnJzsKCQkJCQkJCQkkY2hlY2tlZF93cF9zZiA9ICcgY2hlY2tlZCc7CgkJCQkJCQkJJGNoZWNrZWRfc3luYyAgPSAnJzsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJJGNoZWNrZWRfc2Zfd3AgPSAnJzsKCQkJCQkJCQkkY2hlY2tlZF93cF9zZiA9ICcnOwoJCQkJCQkJCSRjaGVja2VkX3N5bmMgID0gJyBjaGVja2VkJzsKCQkJCQkJCX0KCQkJCQkJfSBlbHNlIHsKCQkJCQkJCSRjaGVja2VkX3NmX3dwID0gJyc7CgkJCQkJCQkkY2hlY2tlZF93cF9zZiA9ICcnOwoJCQkJCQkJJGNoZWNrZWRfc3luYyAgPSAnIGNoZWNrZWQnOyAvLyBieSBkZWZhdWx0LCBzdGFydCB3aXRoIFN5bmMgY2hlY2tlZAoJCQkJCQl9CgkJCQkJCT8+CgkJCQkJCTxkaXYgY2xhc3M9InJhZGlvcyI+CgkJCQkJCQk8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0ic2Zfd3AiIG5hbWU9ImRpcmVjdGlvbls8P3BocCBlY2hvIGVzY19hdHRyKCAka2V5ICk7ID8+XSIgaWQ9ImRpcmVjdGlvbi08P3BocCBlY2hvIGVzY19hdHRyKCAka2V5ICk7ID8+LXNmLXdwIiA8P3BocCBlY2hvIGVzY19hdHRyKCAkY2hlY2tlZF9zZl93cCApOyA/PiByZXF1aXJlZD4gPD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2FsZXNmb3JjZSB0byBXb3JkUHJlc3MnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJCQkJCTxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJ3cF9zZiIgbmFtZT0iZGlyZWN0aW9uWzw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz5dIiBpZD0iZGlyZWN0aW9uLTw/cGhwIGVjaG8gZXNjX2F0dHIoICRrZXkgKTsgPz4td3Atc2YiIDw/cGhwIGVjaG8gZXNjX2F0dHIoICRjaGVja2VkX3dwX3NmICk7ID8+IHJlcXVpcmVkPiA8P3BocCBlY2hvIGVzY19odG1sX18oICdXb3JkUHJlc3MgdG8gU2FsZXNmb3JjZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L2xhYmVsPgoJCQkJCQkJPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9InN5bmMiIG5hbWU9ImRpcmVjdGlvbls8P3BocCBlY2hvIGVzY19hdHRyKCAka2V5ICk7ID8+XSIgaWQ9ImRpcmVjdGlvbi08P3BocCBlY2hvIGVzY19hdHRyKCAka2V5ICk7ID8+LXN5bmMiIDw/cGhwIGVjaG8gZXNjX2F0dHIoICRjaGVja2VkX3N5bmMgKTsgPz4gcmVxdWlyZWQ+IDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1N5bmMnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJCQkJPC9kaXY+CgkJCQkJPC90ZD4KCQkJCQk8dGQgY2xhc3M9ImNvbHVtbi1pc19kZWxldGUiPgoJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImlzX2RlbGV0ZVs8P3BocCBlY2hvIGVzY19hdHRyKCAka2V5ICk7ID8+XSIgaWQ9ImlzX2RlbGV0ZS08P3BocCBlY2hvIGVzY19hdHRyKCAka2V5ICk7ID8+IiB2YWx1ZT0iMSIgLz4KCQkJCQk8L3RkPgoJCQkJPC90cj4KCQkJCQkJPD9waHAKCQkJCQl9IC8vIEVuZCBmb3JlYWNoKCkuCgkJCQl9IC8vIEVuZCBpZigpLgoJCQkJPz4KCQkJCTx0ciBkYXRhLWtleT0iMCIgY2xhc3M9ImZpZWxkbWFwLXRlbXBsYXRlIj4KCQkJCQk8dGQgY2xhc3M9ImNvbHVtbi13b3JkcHJlc3NfZmllbGQiPgoJCQkJCQk8c2VsZWN0IG5hbWU9IndvcmRwcmVzc19maWVsZFswXSIgaWQ9IndvcmRwcmVzc19maWVsZC0wIj4KCQkJCQkJCTxvcHRpb24gdmFsdWU9IiI+LSA8P3BocCBlY2hvIGVzY19odG1sX18oICdTZWxlY3QgV29yZFByZXNzIGZpZWxkJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PiAtPC9vcHRpb24+CgkJCQkJCQk8P3BocAoJCQkJCQkJaWYgKCBpc3NldCggJHdvcmRwcmVzc19vYmplY3QgKSApIHsKCQkJCQkJCQkkd29yZHByZXNzX2ZpZWxkcyA9ICR0aGlzLT5nZXRfd29yZHByZXNzX29iamVjdF9maWVsZHMoICR3b3JkcHJlc3Nfb2JqZWN0ICk7CgkJCQkJCQkJZm9yZWFjaCAoICR3b3JkcHJlc3NfZmllbGRzIGFzICR3b3JkcHJlc3NfZmllbGQgKSB7CgkJCQkJCQkJCWVjaG8gc3ByaW50ZigKCQkJCQkJCQkJCSc8b3B0aW9uIHZhbHVlPSIlMSRzIj4lMiRzPC9vcHRpb24+JywKCQkJCQkJCQkJCWVzY19hdHRyKCAkd29yZHByZXNzX2ZpZWxkWydrZXknXSApLAoJCQkJCQkJCQkJZXNjX2h0bWwoICR3b3JkcHJlc3NfZmllbGRbJ2tleSddICkKCQkJCQkJCQkJKTsKCQkJCQkJCQl9CgkJCQkJCQl9CgkJCQkJCQk/PgoJCQkJCQk8L3NlbGVjdD4KCQkJCQk8L3RkPgoJCQkJCTx0ZCBjbGFzcz0iY29sdW1uLXNhbGVzZm9yY2VfZmllbGQiPgoJCQkJCQk8c2VsZWN0IG5hbWU9InNhbGVzZm9yY2VfZmllbGRbMF0iIGlkPSJzYWxlc2ZvcmNlX2ZpZWxkLTAiPgoJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iIj4tIDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1NlbGVjdCBTYWxlc2ZvcmNlIGZpZWxkJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PiAtPC9vcHRpb24+CgkJCQkJCQk8P3BocAoJCQkJCQkJaWYgKCBpc3NldCggJHNhbGVzZm9yY2Vfb2JqZWN0ICkgKSB7CgkJCQkJCQkJJHNhbGVzZm9yY2VfZmllbGRzID0gJHRoaXMtPmdldF9zYWxlc2ZvcmNlX29iamVjdF9maWVsZHMoCgkJCQkJCQkJCWFycmF5KAoJCQkJCQkJCQkJJ3NhbGVzZm9yY2Vfb2JqZWN0JyA9PiAkc2FsZXNmb3JjZV9vYmplY3QsCgkJCQkJCQkJCSkKCQkJCQkJCQkpOwoJCQkJCQkJCWZvcmVhY2ggKCAkc2FsZXNmb3JjZV9maWVsZHMgYXMgJHNhbGVzZm9yY2VfZmllbGQgKSB7CgkJCQkJCQkJCWVjaG8gc3ByaW50ZigKCQkJCQkJCQkJCSc8b3B0aW9uIHZhbHVlPSIlMSRzIj4lMiRzPC9vcHRpb24+JywKCQkJCQkJCQkJCWVzY19hdHRyKCAkc2FsZXNmb3JjZV9maWVsZFsnbmFtZSddICksCgkJCQkJCQkJCQllc2NfaHRtbCggJHNhbGVzZm9yY2VfZmllbGRbJ2xhYmVsJ10gKQoJCQkJCQkJCQkpOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJCT8+CgkJCQkJCTwvc2VsZWN0PgoJCQkJCTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJjb2x1bW4taXNfcHJlbWF0Y2giPgoJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImlzX3ByZW1hdGNoWzBdIiBpZD0iaXNfcHJlbWF0Y2gtMCIgdmFsdWU9IjEiIC8+CgkJCQkJPC90ZD4KCQkJCQk8dGQgY2xhc3M9ImNvbHVtbi1pc19rZXkiPgoJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImlzX2tleVswXSIgaWQ9ImlzX2tleS0wIiB2YWx1ZT0iMSIgLz4KCQkJCQk8L3RkPgoJCQkJCTx0ZCBjbGFzcz0iY29sdW1uLWRpcmVjdGlvbiI+CgkJCQkJCTxkaXYgY2xhc3M9InJhZGlvcyI+CgkJCQkJCQk8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0ic2Zfd3AiIG5hbWU9ImRpcmVjdGlvblswXSIgaWQ9ImRpcmVjdGlvbi0wLXNmLXdwIiByZXF1aXJlZD4gPD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2FsZXNmb3JjZSB0byBXb3JkUHJlc3MnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJCQkJCTxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJ3cF9zZiIgbmFtZT0iZGlyZWN0aW9uWzBdIiBpZD0iZGlyZWN0aW9uLTAtd3Atc2YiIHJlcXVpcmVkPiA8P3BocCBlY2hvIGVzY19odG1sX18oICdXb3JkUHJlc3MgdG8gU2FsZXNmb3JjZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L2xhYmVsPgoJCQkJCQkJPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9InN5bmMiIG5hbWU9ImRpcmVjdGlvblswXSIgaWQ9ImRpcmVjdGlvbi0wLXN5bmMiIHJlcXVpcmVkIGNoZWNrZWQ+IDw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1N5bmMnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJCQkJPC9kaXY+CgkJCQkJPC90ZD4KCQkJCQk8dGQgY2xhc3M9ImNvbHVtbi1pc19kZWxldGUiPgoJCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImlzX2RlbGV0ZVswXSIgaWQ9ImlzX2RlbGV0ZS0wIiB2YWx1ZT0iMSIgLz4KCQkJCQk8L3RkPgoJCQkJPC90cj4KCQkJPC90Ym9keT4KCQk8L3RhYmxlPgoJCTwhLS08ZGl2IGNsYXNzPSJzcGlubmVyIj48L2Rpdj4tLT4KCQk8P3BocAoJCWlmICggaXNzZXQoICRmaWVsZG1hcF9maWVsZHMgKSAmJiBudWxsICE9PSAkZmllbGRtYXBfZmllbGRzICkgewoJCQkkYWRkX2J1dHRvbl9sYWJlbCA9IGVzY19odG1sX18oICdBZGQgYW5vdGhlciBmaWVsZCBtYXBwaW5nJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOwoJCX0gZWxzZSB7CgkJCSRhZGRfYnV0dG9uX2xhYmVsID0gZXNjX2h0bWxfXyggJ0FkZCBmaWVsZCBtYXBwaW5nJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOwoJCX0KCQk/PgoJCTxwPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iYWRkLWZpZWxkLW1hcHBpbmciIGNsYXNzPSJidXR0b24gYnV0dG9uLXNlY29uZGFyeSI+PD9waHAgZWNobyAkYWRkX2J1dHRvbl9sYWJlbDsgPz48L2J1dHRvbj48L3A+CgkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj48P3BocCBlY2hvIGVzY19odG1sX18oICdBIGNoZWNrZWQgUHJlbWF0Y2ggKHdoZW4gc2F2aW5nIGRhdGEgaW4gZWl0aGVyIFdvcmRQcmVzcyBvciBTYWxlc2ZvcmNlKSBvciBTYWxlc2ZvcmNlIEtleSAob25seSB3aGVuIHNhdmluZyBkYXRhIGZyb20gV29yZFByZXNzIHRvIFNhbGVzZm9yY2UpIGZpZWxkIHdpbGwgY2F1c2UgdGhlIHBsdWdpbiB0byBjaGVjayBmb3IgYSBtYXRjaCBvbiB0aGF0IHZhbHVlIGJlZm9yZSBjcmVhdGluZyBuZXcgcmVjb3Jkcy4nLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9wPgoJPC9maWVsZHNldD4KCTxmaWVsZHNldCBjbGFzcz0ic3luY190cmlnZ2VycyI+CgkJPGxlZ2VuZD48P3BocCBlY2hvIGVzY19odG1sX18oICdBY3Rpb24gdHJpZ2dlcnMnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sZWdlbmQ+CgkJPGRpdiBjbGFzcz0iY2hlY2tib3hlcyI+CgkJCTw/cGhwCgkJCSR3b3JkcHJlc3NfY3JlYXRlX2NoZWNrZWQgID0gJyc7CgkJCSR3b3JkcHJlc3NfdXBkYXRlX2NoZWNrZWQgID0gJyc7CgkJCSR3b3JkcHJlc3NfZGVsZXRlX2NoZWNrZWQgID0gJyc7CgkJCSRzYWxlc2ZvcmNlX2NyZWF0ZV9jaGVja2VkID0gJyc7CgkJCSRzYWxlc2ZvcmNlX3VwZGF0ZV9jaGVja2VkID0gJyc7CgkJCSRzYWxlc2ZvcmNlX2RlbGV0ZV9jaGVja2VkID0gJyc7CgkJCWlmICggaXNzZXQoICRzeW5jX3RyaWdnZXJzICkgJiYgaXNfYXJyYXkoICRzeW5jX3RyaWdnZXJzICkgKSB7CgkJCQlmb3JlYWNoICggJHN5bmNfdHJpZ2dlcnMgYXMgJHRyaWdnZXIgKSB7CgkJCQkJc3dpdGNoICggJHRyaWdnZXIgKSB7CgkJCQkJCWNhc2UgJHRoaXMtPm1hcHBpbmdzLT5zeW5jX3dvcmRwcmVzc19jcmVhdGU6CgkJCQkJCQkkd29yZHByZXNzX2NyZWF0ZV9jaGVja2VkID0gJyBjaGVja2VkJzsKCQkJCQkJCWJyZWFrOwoJCQkJCQljYXNlICR0aGlzLT5tYXBwaW5ncy0+c3luY193b3JkcHJlc3NfdXBkYXRlOgoJCQkJCQkJJHdvcmRwcmVzc191cGRhdGVfY2hlY2tlZCA9ICcgY2hlY2tlZCc7CgkJCQkJCQlicmVhazsKCQkJCQkJY2FzZSAkdGhpcy0+bWFwcGluZ3MtPnN5bmNfd29yZHByZXNzX2RlbGV0ZToKCQkJCQkJCSR3b3JkcHJlc3NfZGVsZXRlX2NoZWNrZWQgPSAnIGNoZWNrZWQnOwoJCQkJCQkJYnJlYWs7CgkJCQkJCWNhc2UgJHRoaXMtPm1hcHBpbmdzLT5zeW5jX3NmX2NyZWF0ZToKCQkJCQkJCSRzYWxlc2ZvcmNlX2NyZWF0ZV9jaGVja2VkID0gJyBjaGVja2VkJzsKCQkJCQkJCWJyZWFrOwoJCQkJCQljYXNlICR0aGlzLT5tYXBwaW5ncy0+c3luY19zZl91cGRhdGU6CgkJCQkJCQkkc2FsZXNmb3JjZV91cGRhdGVfY2hlY2tlZCA9ICcgY2hlY2tlZCc7CgkJCQkJCQlicmVhazsKCQkJCQkJY2FzZSAkdGhpcy0+bWFwcGluZ3MtPnN5bmNfc2ZfZGVsZXRlOgoJCQkJCQkJJHNhbGVzZm9yY2VfZGVsZXRlX2NoZWNrZWQgPSAnIGNoZWNrZWQnOwoJCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCT8+CgkJCTxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI8P3BocCBlY2hvIGVzY19odG1sKCAkdGhpcy0+bWFwcGluZ3MtPnN5bmNfd29yZHByZXNzX2NyZWF0ZSApOyA/PiIgbmFtZT0ic3luY190cmlnZ2Vyc1tdIiBpZD0ic3luY190cmlnZ2Vycy13b3JkcHJlc3MtY3JlYXRlIiA8P3BocCBlY2hvIGVzY19hdHRyKCAkd29yZHByZXNzX2NyZWF0ZV9jaGVja2VkICk7ID8+Pjw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1dvcmRQcmVzcyBjcmVhdGUnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ijw/cGhwIGVjaG8gZXNjX2h0bWwoICR0aGlzLT5tYXBwaW5ncy0+c3luY193b3JkcHJlc3NfdXBkYXRlICk7ID8+IiBuYW1lPSJzeW5jX3RyaWdnZXJzW10iIGlkPSJzeW5jX3RyaWdnZXJzLXdvcmRwcmVzcy11cGRhdGUiIDw/cGhwIGVjaG8gZXNjX2F0dHIoICR3b3JkcHJlc3NfdXBkYXRlX2NoZWNrZWQgKTsgPz4+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnV29yZFByZXNzIHVwZGF0ZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L2xhYmVsPgoJCQk8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iPD9waHAgZWNobyBlc2NfaHRtbCggJHRoaXMtPm1hcHBpbmdzLT5zeW5jX3dvcmRwcmVzc19kZWxldGUgKTsgPz4iIG5hbWU9InN5bmNfdHJpZ2dlcnNbXSIgaWQ9InN5bmNfdHJpZ2dlcnMtd29yZHByZXNzLWRlbGV0ZSIgPD9waHAgZWNobyBlc2NfYXR0ciggJHdvcmRwcmVzc19kZWxldGVfY2hlY2tlZCApOyA/Pj48P3BocCBlY2hvIGVzY19odG1sX18oICdXb3JkUHJlc3MgZGVsZXRlJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PjwvbGFiZWw+CgkJCTxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI8P3BocCBlY2hvIGVzY19odG1sKCAkdGhpcy0+bWFwcGluZ3MtPnN5bmNfc2ZfY3JlYXRlICk7ID8+IiBuYW1lPSJzeW5jX3RyaWdnZXJzW10iIGlkPSJzeW5jX3RyaWdnZXJzLXNhbGVzZm9yY2UtY3JlYXRlIiA8P3BocCBlY2hvIGVzY19hdHRyKCAkc2FsZXNmb3JjZV9jcmVhdGVfY2hlY2tlZCApOyA/Pj48P3BocCBlY2hvIGVzY19odG1sX18oICdTYWxlc2ZvcmNlIGNyZWF0ZScsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L2xhYmVsPgoJCQk8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iPD9waHAgZWNobyBlc2NfaHRtbCggJHRoaXMtPm1hcHBpbmdzLT5zeW5jX3NmX3VwZGF0ZSApOyA/PiIgbmFtZT0ic3luY190cmlnZ2Vyc1tdIiBpZD0ic3luY190cmlnZ2Vycy1zYWxlc2ZvcmNlLXVwZGF0ZSIgPD9waHAgZWNobyBlc2NfYXR0ciggJHNhbGVzZm9yY2VfdXBkYXRlX2NoZWNrZWQgKTsgPz4+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnU2FsZXNmb3JjZSB1cGRhdGUnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ijw/cGhwIGVjaG8gZXNjX2h0bWwoICR0aGlzLT5tYXBwaW5ncy0+c3luY19zZl9kZWxldGUgKTsgPz4iIG5hbWU9InN5bmNfdHJpZ2dlcnNbXSIgaWQ9InN5bmNfdHJpZ2dlcnMtc2FsZXNmb3JjZS1kZWxldGUiIDw/cGhwIGVjaG8gZXNjX2F0dHIoICRzYWxlc2ZvcmNlX2RlbGV0ZV9jaGVja2VkICk7ID8+Pjw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1NhbGVzZm9yY2UgZGVsZXRlJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApOyA/PjwvbGFiZWw+CgkJCTxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+CgkJCQk8P3BocAoJCQkJLy8gdHJhbnNsYXRvcnM6IHBsYWNlaG9sZGVycyBhcmUgZm9yIHRoZSBjbGFzcyBuYW1lczogc2FsZXNmb3JjZV9wdXNoIGFuZCBzYWxlc2ZvcmNlX3B1bGwKCQkJCWVjaG8gc3ByaW50ZiggZXNjX2h0bWxfXyggJ1NlbGVjdCB3aGljaCBhY3Rpb25zIG9uIFdvcmRQcmVzcyBvYmplY3RzIGFuZCBTYWxlc2ZvcmNlIG9iamVjdHMgc2hvdWxkIHRyaWdnZXIgYSBzeW5jaHJvbml6YXRpb24uIFRoZXNlIHNldHRpbmdzIGFyZSB1c2VkIGJ5IHRoZSAlMSRzIGFuZCAlMiRzIGNsYXNzZXMgcmVzcGVjdGl2ZWx5LicsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKSwgJzxjb2RlPnNhbGVzZm9yY2VfcHVzaDwvY29kZT4nLCAnPGNvZGU+c2FsZXNmb3JjZV9wdWxsPC9jb2RlPicgKTsKCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJjaGVja2JveGVzIj4KCQkJPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icHVzaF9hc3luYyIgaWQ9InByb2Nlc3MtYXN5bmMiIHZhbHVlPSIxIiA8P3BocCBlY2hvIGlzc2V0KCAkcHVzaF9hc3luYyApICYmICcxJyA9PT0gJHB1c2hfYXN5bmMgPyAnIGNoZWNrZWQnIDogJyc7ID8+Pjw/cGhwIGVjaG8gZXNjX2h0bWxfXyggJ1Byb2Nlc3MgYXN5bmNocm9ub3VzbHknLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj4KCQkJCTw/cGhwCgkJCQkvLyB0cmFuc2xhdG9yczogcGxhY2Vob2xkZXIgaXMgZm9yIFdvcmRQcmVzcyBjcm9uIG1ldGhvZCBuYW1lCgkJCQllY2hvIHNwcmludGYoIGVzY19odG1sX18oICdJZiBzZWxlY3RlZCwgcHVzaCBkYXRhIHdpbGwgYmUgcXVldWVkIGZvciBwcm9jZXNzaW5nIGFuZCBzeW5jaHJvbml6ZWQgd2hlbiAlcyBpcyBydW4uIFRoaXMgbWF5IGluY3JlYXNlIHNpdGUgcGVyZm9ybWFuY2UsIGJ1dCBjaGFuZ2VzIHdpbGwgbm90IGJlIHJlZmxlY3RlZCBpbiByZWFsIHRpbWUuJywgJ29iamVjdC1zeW5jLWZvci1zYWxlc2ZvcmNlJyApLCAnPGNvZGU+d3BfY3JvbjwvY29kZT4nICk7CgkJCQk/PgoJCQk8L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0iY2hlY2tib3hlcyI+CgkJCTxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InB1c2hfZHJhZnRzIiBpZD0icHVzaC1kcmFmdHMiIHZhbHVlPSIxIiA8P3BocCBlY2hvIGlzc2V0KCAkcHVzaF9kcmFmdHMgKSAmJiAnMScgPT09ICRwdXNoX2RyYWZ0cyA/ICcgY2hlY2tlZCcgOiAnJzsgPz4+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnUHVzaCBkcmFmdHMnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj48P3BocCBlY2hvIGVzY19odG1sX18oICdJZiBzZWxlY3RlZCwgV29yZFByZXNzIHdpbGwgc2VuZCBkcmFmdHMgb2YgdGhpcyBvYmplY3QgdHlwZSAoaWYgaXQgY3JlYXRlcyBkcmFmdHMgZm9yIGl0KSB0byBTYWxlc2ZvcmNlLicsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0iY2hlY2tib3hlcyI+CgkJCTxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InB1bGxfdG9fZHJhZnRzIiBpZD0icHVsbC10by1kcmFmdHMiIHZhbHVlPSIxIiA8P3BocCBlY2hvIGlzc2V0KCAkcHVsbF90b19kcmFmdHMgKSAmJiAnMScgPT09ICRwdWxsX3RvX2RyYWZ0cyA/ICcgY2hlY2tlZCcgOiAnJzsgPz4+PD9waHAgZWNobyBlc2NfaHRtbF9fKCAnUHVsbCB0byBkcmFmdHMnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICk7ID8+PC9sYWJlbD4KCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj48P3BocCBlY2hvIGVzY19odG1sX18oICdJZiBzZWxlY3RlZCwgV29yZFByZXNzIHdpbGwgY2hlY2sgZm9yIG1hdGNoZXMgYWdhaW5zdCBleGlzdGluZyBkcmFmdHMgb2YgdGhpcyBvYmplY3QgdHlwZSwgYW5kIHdpbGwgYWxzbyB1cGRhdGUgZXhpc3RpbmcgZHJhZnRzLicsICdvYmplY3Qtc3luYy1mb3Itc2FsZXNmb3JjZScgKTsgPz48L3A+CgkJPC9kaXY+Cgk8L2ZpZWxkc2V0PgoJPD9waHAKCQlzdWJtaXRfYnV0dG9uKAoJCQkvLyB0cmFuc2xhdG9yczogdGhlIHBsYWNlaG9sZGVyIHJlZmVycyB0byB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG1ldGhvZCAoYWRkLCBlZGl0LCBvciBjbG9uZSkKCQkJc3ByaW50ZiggZXNjX2h0bWxfXyggJyUxJHMgZmllbGRtYXAnLCAnb2JqZWN0LXN5bmMtZm9yLXNhbGVzZm9yY2UnICksIHVjZmlyc3QoICRtZXRob2QgKSApCgkJKTsKCQk/Pgo8L2Zvcm0+CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ==";