MSBuZXcgY29tbWl0IGluIGdhbGF4eS1jZW50cmFsOgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dh bGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzLzJkZjQyNGZjMDUzNi8KQ2hhbmdlc2V0OiAgIDJk ZjQyNGZjMDUzNgpVc2VyOiAgICAgICAgZ3VlcmxlcgpEYXRlOiAgICAgICAgMjAxNC0wNi0wNCAw Nzo0OTo0MwpTdW1tYXJ5OiAgICAgQ2hhcnRzOiBBZGRpbmcgY2hhcnQgc3Vic2V0IHNlbGVjdGlv biBmaWx0ZXIsIHNldHRpbmcgem9vbWFibGU9CiBjaGFydHMgYXMgZGVmYXVsdApBZmZlY3RlZCAj OiAgMzEgZmlsZXMKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEzMjMwYzI5YTcy MTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTExMWZiYTEyODIgY29uZmln L3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNoPQphcnRz L2Jhci9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRz L3N0YXRpYy9jaGFydHMvaGlnaGNoYXJ0cy9iYXIvY29uPQpmaWcuanMKKysrIGIvY29uZmlnL3Bs dWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNoYXJ0cy9iYXIv Y29uPQpmaWcuanMKQEAgLTMsNiArMyw3IEBACiByZXR1cm4gJC5leHRlbmQodHJ1ZSwge30sIGNv bmZpZywgewogICAgIHRpdGxlICAgICAgIDogJ1JlZ3VsYXInLAogICAgIGNhdGVnb3J5ICAgIDog J0JhciBkaWFncmFtcycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBoaWdoY2hhcnRzJywK ICAgICBjb2x1bW5zICAgICA6IHsKICAgICAgICAgeCA6IHsKICAgICAgICAgICAgIHRpdGxlICAg ICAgIDogJ1ZhbHVlcyBmb3IgeC1heGlzJywKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdj ZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTEx MWZiYTEyODIgY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFy dHMvaGlnaGNoPQphcnRzL2Jhcl9ob3Jpem9udGFsL2NvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRzL2Jhcl9o b3I9Cml6b250YWwvY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25z L2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvYmFyX2hvcj0KaXpvbnRhbC9jb25maWcu anMKQEAgLTMsNiArMyw3IEBACiByZXR1cm4gJC5leHRlbmQodHJ1ZSwge30sIGNvbmZpZywgewog ICAgIHRpdGxlICAgICAgIDogJ0hvcml6b250YWwnLAogICAgIGNhdGVnb3J5ICAgIDogJ0JhciBk aWFncmFtcycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBoaWdoY2hhcnRzJywKICAgICBj b2x1bW5zICAgICA6IHsKICAgICAgICAgeCA6IHsKICAgICAgICAgICAgIHRpdGxlICAgICAgIDog J1ZhbHVlcyBmb3IgeC1heGlzJywKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEz MjMwYzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTExMWZiYTEy ODIgY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGln aGNoPQphcnRzL2Jhcl9ob3Jpem9udGFsX3N0YWNrZWQvY29uZmlnLmpzCi0tLSBhL2NvbmZpZy9w bHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvYmFy X2hvcj0KaXpvbnRhbF9zdGFja2VkL2NvbmZpZy5qcworKysgYi9jb25maWcvcGx1Z2lucy92aXN1 YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRzL2Jhcl9ob3I9Cml6b250 YWxfc3RhY2tlZC9jb25maWcuanMKQEAgLTMsNiArMyw3IEBACiByZXR1cm4gJC5leHRlbmQodHJ1 ZSwge30sIGNvbmZpZywgewogICAgIHRpdGxlICAgICAgIDogJ1N0YWNrZWQgaG9yaXpvbnRhbCcs CiAgICAgY2F0ZWdvcnkgICAgOiAnQmFyIGRpYWdyYW1zJywKKyAgICBrZXl3b3JkcyAgICA6ICdk ZWZhdWx0IGhpZ2hjaGFydHMnLAogICAgIHNldHRpbmdzICAgIDogewogICAgICAgICB4X2F4aXNf dHlwZSA6IHsKICAgICAgICAgICAgIGluaXQgOiAnaGlkZScKCmRpZmYgLXIgMWJlMDdkZTg2YzJh NjA2NTE4YTdjZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0K ZDJmZmEzYTExMWZiYTEyODIgY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0 YXRpYy9jaGFydHMvaGlnaGNoPQphcnRzL2Jhcl9zdGFja2VkL2NvbmZpZy5qcwotLS0gYS9jb25m aWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRz L2Jhcl9zdGE9CmNrZWQvY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRp b25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvYmFyX3N0YT0KY2tlZC9jb25maWcu anMKQEAgLTMsNiArMyw3IEBACiByZXR1cm4gJC5leHRlbmQodHJ1ZSwge30sIGNvbmZpZywgewog ICAgIHRpdGxlICAgICAgIDogJ1N0YWNrZWQnLAogICAgIGNhdGVnb3J5ICAgIDogJ0JhciBkaWFn cmFtcycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBoaWdoY2hhcnRzJywKICAgICBjb2x1 bW5zICAgICA6IHsKICAgICAgICAgeCA6IHsKICAgICAgICAgICAgIHRpdGxlICAgICAgIDogJ1Zh bHVlcyBmb3IgeC1heGlzJywKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEzMjMw YzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTExMWZiYTEyODIg Y29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNo PQphcnRzL2JveHBsb3QvY29uZmlnLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRp b25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvYm94cGxvdD0KL2NvbmZpZy5qcwor KysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9o aWdoY2hhcnRzL2JveHBsb3Q9Ci9jb25maWcuanMKQEAgLTMsOSArMywxMCBAQAogcmV0dXJuICQu ZXh0ZW5kKHRydWUsIHt9LCB7CiAgICAgdGl0bGUgICAgICAgOiAnQm94IHBsb3QnLAogICAgIGNh dGVnb3J5ICAgIDogJ0RhdGEgcHJvY2Vzc2luZyAocmVxdWlyZXMgXCdjaGFydHNcJyB0b29sIGZy b20gVG9vbHNoZWQ9CiknLAotICAgIGxpYnJhcnkgICAgIDogJ2hpZ2hjaGFydHMuanMnLAorICAg IGxpYnJhcnkgICAgIDogJ0hpZ2hjaGFydHMnLAogICAgIHRhZyAgICAgICAgIDogJ2RpdicsCiAg ICAgZXhlY3V0ZSAgICAgOiAnYm94cGxvdCcsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBo aWdoY2hhcnRzJywKICAgICBjb2x1bW5zICAgICA6IHsKICAgICAgICAgeSA6IHsKICAgICAgICAg ICAgIHRpdGxlICAgICAgIDogJ09ic2VydmF0aW9ucycsCgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYw NjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQy ZmZhM2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0 aWMvY2hhcnRzL2hpZ2hjaD0KYXJ0cy9jb21tb24vY29uZmlnLmpzCi0tLSBhL2NvbmZpZy9wbHVn aW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvY29tbW9u Lz0KY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9z dGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvY29tbW9uLz0KY29uZmlnLmpzCkBAIC0zLDggKzMsOSBA QAogcmV0dXJuIHsKICAgICB0aXRsZSAgICAgICA6ICcnLAogICAgIGNhdGVnb3J5ICAgIDogJycs Ci0gICAgbGlicmFyeSAgICAgOiAnaGlnaGNoYXJ0cycsCisgICAgbGlicmFyeSAgICAgOiAnSGln aGNoYXJ0cycsCiAgICAgdGFnICAgICAgICAgOiAnZGl2JywKKyAgICBrZXl3b3JkcyAgICA6ICdo aWdoY2hhcnRzJywKICAgICBzZXR0aW5ncyAgICA6IHsKICAgICAgICAgc2VwYXJhdG9yX2xhYmVs ICA6IHsKICAgICAgICAgICAgIHRpdGxlICAgICAgIDogJ1ggYXhpcycsCkBAIC0xOTcsNyArMTk4 LDcgQEAKICAgICAgICAgbGVnZW5kX2VuYWJsZWQgOiB7CiAgICAgICAgICAgICB0aXRsZSAgICAg ICA6ICdTaG93IGxlZ2VuZCcsCiAgICAgICAgICAgICBpbmZvICAgICAgICA6ICdXb3VsZCB5b3Ug bGlrZSB0byBhZGQgYSBsZWdlbmQ/JywKLSAgICAgICAgICAgIHR5cGUgICAgICAgIDogJ3NlbGVj dCcsCisgICAgICAgICAgICB0eXBlICAgICAgICA6ICdyYWRpb2J1dHRvbicsCiAgICAgICAgICAg ICBpbml0ICAgICAgICA6ICd0cnVlJywKICAgICAgICAgICAgIGRhdGEgICAgICAgIDogWwogICAg ICAgICAgICAgICAgIHsKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEzMjMwYzI5 YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTExMWZiYTEyODIgY29u ZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNoPQph cnRzL2NvbW1vbi9oaWdoY2hhcnRzLWNvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1Z2lucy92aXN1 YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRzL2NvbW1vbi89CmhpZ2hj aGFydHMtY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0 cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvY29tbW9uLz0KaGlnaGNoYXJ0cy1jb25maWcuanMK QEAgLTIsNyArMiwxNiBAQAogZGVmaW5lKFtdLCBmdW5jdGlvbigpIHsKPTIwCiAvLyB3aWRnZXQK LXJldHVybiBmdW5jdGlvbihzZXR0aW5ncykgeworcmV0dXJuIGZ1bmN0aW9uKGNoYXJ0LCBzZXR0 aW5ncykgeworICAgIC8vIGhlbHBlciBsYWJlbCBlbmFibGVkCisgICAgdmFyIGxhYmVsRW5hYmxl ZCA9M0QgZnVuY3Rpb24oYXhpcykgeworICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0KGF4aXMgKyAn X3R5cGUnKSA9M0Q9M0QgJ2hpZGUnKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH07 CisKICAgICAvLyBoaWdoY2hhcnRzIGNvbmZpZ3VyYXRpb24KICAgICByZXR1cm4gewogICAgICAg ICBjaGFydDogewpAQCAtMTEsNyArMjAsNyBAQAogCSAgICB9LAogCSAgID0yMAogCSAgICB0aXRs ZTogewotCSAgICAgICAgdGV4dCAgICAgICAgICAgICAgICAgICAgICAgIDogJycKKwkgICAgICAg IHRleHQgICAgICAgICAgICAgICAgICAgICAgICA6IGNoYXJ0LmdldCgndGl0bGUnKQogCSAgICB9 LAogCSAgID0yMAogCSAgICBsZWdlbmQ6IHsKQEAgLTM0LDEyICs0MywyNiBAQAogICAgICAgICAg ICAgICAgICAgICAgICAgY29sb3IgICAgICAgICAgIDogKEhpZ2hjaGFydHMudGhlbWUgJiYgSGln aGNoYXJ0cy49CnRoZW1lLnRleHRDb2xvcikgfHwgJ2dyYXknCiAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgbGFiZWxzOiB7CisgICAgICAgICAg ICAgICAgZm9ybWF0dGVyICAgICAgICAgICAgICAgOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg ICAgICAgICAgdmFyIGZvcm1hdCA9M0QgZDMuZm9ybWF0KHNldHRpbmdzLmdldCgneF9heGlzX3Rp Y2snKSArPQogc2V0dGluZ3MuZ2V0KCd4X2F4aXNfdHlwZScpKTsKKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGZvcm1hdCh0aGlzLnZhbHVlKTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAg ICAgICAgICAgIGVuYWJsZWQgICAgICAgICAgICAgICAgIDogbGFiZWxFbmFibGVkKCd4X2F4aXMn KQorICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHRpY2tQaXhlbEludGVydmFsICAgICAgICAg ICA6IDEwMAogICAgICAgICB9LAogICAgICAgID0yMAogICAgICAgICB5QXhpczogewogICAgICAg ICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgICAgICB0ZXh0ICAgICAgICAgICAgICAgICAgICA6 IHNldHRpbmdzLmdldCgneV9heGlzX2xhYmVsJykKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg ICBsYWJlbHM6IHsKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZXIgICAgICAgICAgICAgICA6IGZ1 bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ID0zRCBkMy5mb3JtYXQo c2V0dGluZ3MuZ2V0KCd5X2F4aXNfdGljaycpICs9CiBzZXR0aW5ncy5nZXQoJ3lfYXhpc190eXBl JykpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0KHRoaXMudmFsdWUpOworICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZW5hYmxlZCAgICAgICAgICAgICAgICAg OiBsYWJlbEVuYWJsZWQoJ3lfYXhpcycpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICA9 MjAKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAy ZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTExMWZiYTEyODIgY29uZmlnL3BsdWdpbnMv dmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNoPQphcnRzL2NvbW1vbi93 cmFwcGVyLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0 aWMvY2hhcnRzL2hpZ2hjaGFydHMvY29tbW9uLz0Kd3JhcHBlci5qcworKysgYi9jb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRzL2NvbW1v bi89CndyYXBwZXIuanMKQEAgLTIzLDcgKzIzLDcgQEAKICAgICBkcmF3IDogZnVuY3Rpb24ocHJv Y2Vzc19pZCwgaGNfdHlwZSwgY2hhcnQsIHJlcXVlc3RfZGljdGlvbmFyeSwgY2FsbGJhPQpjaykK ICAgICB7CiAgICAgICAgIC8vIGNyZWF0ZSBjb25maWd1cmF0aW9uCi0gICAgICAgIHRoaXMuaGNf Y29uZmlnID0zRCBjb25maWdtYWtlcihjaGFydC5zZXR0aW5ncyk7CisgICAgICAgIHRoaXMuaGNf Y29uZmlnID0zRCBjb25maWdtYWtlcihjaGFydCwgY2hhcnQuc2V0dGluZ3MpOwogICAgICAgID0y MAogICAgICAgICAvLyByZXF1ZXN0IGRhdGEKICAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXM7Cgpk aWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0 ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3Vh bGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaD0KYXJ0cy9oaXN0b2dyYW0vY29u ZmlnLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMv Y2hhcnRzL2hpZ2hjaGFydHMvaGlzdG9ncj0KYW0vY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVn aW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvaGlzdG9n cj0KYW0vY29uZmlnLmpzCkBAIC00LDYgKzQsNyBAQAogICAgIHRpdGxlICAgICAgIDogJ0hpc3Rv Z3JhbScsCiAgICAgY2F0ZWdvcnkgICAgOiAnRGF0YSBwcm9jZXNzaW5nIChyZXF1aXJlcyBcJ2No YXJ0c1wnIHRvb2wgZnJvbSBUb29sc2hlZD0KKScsCiAgICAgZXhlY3V0ZSAgICAgOiAnaGlzdG9n cmFtJywKKyAgICBrZXl3b3JkcyAgICA6ICdkZWZhdWx0IGhpZ2hjaGFydHMnLAogICAgIGNvbHVt bnMgICAgIDogewogICAgICAgICB5IDogewogICAgICAgICAgICAgdGl0bGUgICAgICAgOiAnT2Jz ZXJ2YXRpb25zJywKQEAgLTEyLDcgKzEzLDcgQEAKICAgICB9LAogICAgIHNldHRpbmdzICAgIDog ewogICAgICAgICB4X2F4aXNfbGFiZWwgOiB7Ci0gICAgICAgICAgICBpbml0IDogJ0JyZWFrcycK KyAgICAgICAgICAgIGluaXQgOiAnVmFsdWVzJwogICAgICAgICB9LAogICAgICAgICB5X2F4aXNf bGFiZWwgOiB7CiAgICAgICAgICAgICBpbml0IDogJ0RlbnNpdHknCgpkaWZmIC1yIDFiZTA3ZGU4 NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5 ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0 cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaD0KYXJ0cy9oaXN0b2dyYW1fZGlzY3JldGUvY29uZmlnLmpz Ci0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRz L2hpZ2hjaGFydHMvaGlzdG9ncj0KYW1fZGlzY3JldGUvY29uZmlnLmpzCisrKyBiL2NvbmZpZy9w bHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaGFydHMvaGlz dG9ncj0KYW1fZGlzY3JldGUvY29uZmlnLmpzCkBAIC0xLDkgKzEsMTAgQEAKIGRlZmluZShbJ3Bs dWdpbi9jaGFydHMvaGlnaGNoYXJ0cy9jb21tb24vY29uZmlnJ10sIGZ1bmN0aW9uKGNvbmZpZykg ewo9MjAKIHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwgY29uZmlnLCB7Ci0gICAgdGl0bGUgICAg ICAgOiAnSGlzdG9ncmFtIChEaXNjcmV0ZSknLAorICAgIHRpdGxlICAgICAgIDogJ0Rpc2NyZXRl IEhpc3RvZ3JhbScsCiAgICAgY2F0ZWdvcnkgICAgOiAnRGF0YSBwcm9jZXNzaW5nIChyZXF1aXJl cyBcJ2NoYXJ0c1wnIHRvb2wgZnJvbSBUb29sc2hlZD0KKScsCiAgICAgZXhlY3V0ZSAgICAgOiAn aGlzdG9ncmFtZGlzY3JldGUnLAorICAgIGtleXdvcmRzICAgIDogJ2RlZmF1bHQgaGlnaGNoYXJ0 cycsCiAgICAgY29sdW1ucyAgICAgOiB7CiAgICAgICAgIHkgOiB7CiAgICAgICAgICAgICB0aXRs ZSAgICAgICA6ICdPYnNlcnZhdGlvbnMnLAoKZGlmZiAtciAxYmUwN2RlODZjMmE2MDY1MThhN2Nm YzI5MTMyMzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpkMmZmYTNhMTEx ZmJhMTI4MiBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0 cy9oaWdoY2g9CmFydHMvbGluZS9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFs aXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNoYXJ0cy9saW5lL2NvPQpuZmlnLmpz CisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRz L2hpZ2hjaGFydHMvbGluZS9jbz0KbmZpZy5qcwpAQCAtMyw2ICszLDcgQEAKIHJldHVybiAkLmV4 dGVuZCh0cnVlLCB7fSwgY29uZmlnLCB7CiAgICAgdGl0bGUgICAgICAgOiAnTGluZScsCiAgICAg Y2F0ZWdvcnkgICAgOiAnT3RoZXJzJywKKyAgICBrZXl3b3JkcyAgICA6ICdkZWZhdWx0IGhpZ2hj aGFydHMnLAogICAgIGNvbHVtbnMgICAgIDogewogICAgICAgICB4IDogewogICAgICAgICAgICAg dGl0bGUgICAgICAgOiAnVmFsdWVzIGZvciB4LWF4aXMnLAoKZGlmZiAtciAxYmUwN2RlODZjMmE2 MDY1MThhN2NmYzI5MTMyMzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpk MmZmYTNhMTExZmJhMTI4MiBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3Rh dGljL2NoYXJ0cy9oaWdoY2g9CmFydHMvcGllL2NvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1Z2lu cy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRzL3BpZS9jb249 CmZpZy5qcworKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGlj L2NoYXJ0cy9oaWdoY2hhcnRzL3BpZS9jb249CmZpZy5qcwpAQCAtMyw2ICszLDcgQEAKIHJldHVy biAkLmV4dGVuZCh0cnVlLCB7fSwgY29uZmlnLCB7CiAgICAgdGl0bGUgICAgICAgOiAnUGllIGNo YXJ0JywKICAgICBjYXRlZ29yeSAgICA6ICdBcmVhIGNoYXJ0cycsCisgICAga2V5d29yZHMgICAg OiAnaGlnaGNoYXJ0cycsCiAgICAgdXNlX3BhbmVscyAgOiB0cnVlLAogICAgIGNvbHVtbnMgOiB7 CiAgICAgICAgIGxhYmVsIDogewoKZGlmZiAtciAxYmUwN2RlODZjMmE2MDY1MThhN2NmYzI5MTMy MzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpkMmZmYTNhMTExZmJhMTI4 MiBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdo Y2g9CmFydHMvc2NhdHRlci9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXph dGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvaGlnaGNoYXJ0cy9zY2F0dGVyPQovY29uZmlnLmpz CisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRz L2hpZ2hjaGFydHMvc2NhdHRlcj0KL2NvbmZpZy5qcwpAQCAtMyw2ICszLDcgQEAKIHJldHVybiAk LmV4dGVuZCh0cnVlLCB7fSwgY29uZmlnLCB7CiAgICAgdGl0bGUgICAgICAgOiAnU2NhdHRlciBw bG90JywKICAgICBjYXRlZ29yeSAgICA6ICdPdGhlcnMnLAorICAgIGtleXdvcmRzICAgIDogJ2Rl ZmF1bHQgaGlnaGNoYXJ0cycsCiAgICAgY29sdW1ucyAgICAgOiB7CiAgICAgICAgIHggOiB7CiAg ICAgICAgICAgICB0aXRsZSAgICAgICA6ICdWYWx1ZXMgZm9yIHgtYXhpcycsCgpkaWZmIC1yIDFi ZTA3ZGU4NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMx ZTQ5YjA5ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25z L2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2hpZ2hjaD0KYXJ0cy9zdGFja2VkYXJlYS9jb25maWcuanMK LS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMv aGlnaGNoYXJ0cy9zdGFja2VkPQphcmVhL2NvbmZpZy5qcworKysgYi9jb25maWcvcGx1Z2lucy92 aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9oaWdoY2hhcnRzL3N0YWNrZWQ9CmFy ZWEvY29uZmlnLmpzCkBAIC0zLDYgKzMsNyBAQAogcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBj b25maWcsIHsKICAgICB0aXRsZSAgICAgICA6ICdSZWd1bGFyJywKICAgICBjYXRlZ29yeSAgICA6 ICdBcmVhIGNoYXJ0cycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBoaWdoY2hhcnRzJywK ICAgICBjb2x1bW5zICAgICA6IHsKICAgICAgICAgeCA6IHsKICAgICAgICAgICAgIHRpdGxlICAg ICAgIDogJ1ZhbHVlcyBmb3IgeC1heGlzJywKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdj ZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTEx MWZiYTEyODIgY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFy dHMvbnZkMy9jPQpvbW1vbi9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXph dGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9jb21tb24vY29uZmlnPQouanMKKysrIGIv Y29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9j b21tb24vY29uZmlnPQouanMKQEAgLTMsOCArMyw5IEBACiByZXR1cm4gewogICAgIHRpdGxlICAg ICAgIDogJycsCiAgICAgY2F0ZWdvcnkgICAgOiAnJywKLSAgICBsaWJyYXJ5ICAgICA6ICdudmQz LmpzJywKKyAgICBsaWJyYXJ5ICAgICA6ICdOVkQzJywKICAgICB0YWcgICAgICAgICA6ICdzdmcn LAorICAgIGtleXdvcmRzICAgIDogJ252ZDMnLAogICAgIHNldHRpbmdzICAgIDogewogICAgICAg ICBzZXBhcmF0b3JfbGFiZWwgIDogewogICAgICAgICAgICAgdGl0bGUgICAgICAgOiAnWCBheGlz JywKCmRpZmYgLXIgMWJlMDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAy ZGY0MjRmYzA1MzY4MzFlNDliMDlkND0KZDJmZmEzYTExMWZiYTEyODIgY29uZmlnL3BsdWdpbnMv dmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9oPQppc3RvZ3JhbS9jb25m aWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9j aGFydHMvbnZkMy9oaXN0b2dyYW0vY29uPQpmaWcuanMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlz dWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9oaXN0b2dyYW0vY29uPQpmaWcu anMKQEAgLTEzLDcgKzEzLDcgQEAKICAgICB9LAogICAgIHNldHRpbmdzICAgIDogewogICAgICAg ICB4X2F4aXNfbGFiZWwgOiB7Ci0gICAgICAgICAgICBpbml0IDogJ0JyZWFrcycKKyAgICAgICAg ICAgIGluaXQgOiAnVmFsdWVzJwogICAgICAgICB9LAogICAgICAgICB5X2F4aXNfbGFiZWwgOiB7 CiAgICAgICAgICAgICBpbml0IDogJ0RlbnNpdHknCgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUx OGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZh M2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMv Y2hhcnRzL252ZDMvaD0KaXN0b2dyYW1fZGlzY3JldGUvY29uZmlnLmpzCi0tLSBhL2NvbmZpZy9w bHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvaGlzdG9ncmFt X2Rpcz0KY3JldGUvY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25z L2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvaGlzdG9ncmFtX2Rpcz0KY3JldGUvY29uZmlnLmpz CkBAIC0xLDcgKzEsNyBAQAogZGVmaW5lKFsncGx1Z2luL2NoYXJ0cy9udmQzL2NvbW1vbi9jb25m aWcnXSwgZnVuY3Rpb24obnZkM19jb25maWcpIHsKPTIwCiByZXR1cm4gJC5leHRlbmQodHJ1ZSwg e30sIG52ZDNfY29uZmlnLCB7Ci0gICAgdGl0bGUgICAgICAgOiAnSGlzdG9ncmFtIChkaXNjcmV0 ZSknLAorICAgIHRpdGxlICAgICAgIDogJ0Rpc2NyZXRlIEhpc3RvZ3JhbScsCiAgICAgY2F0ZWdv cnkgICAgOiAnRGF0YSBwcm9jZXNzaW5nIChyZXF1aXJlcyBcJ2NoYXJ0c1wnIHRvb2wgZnJvbSBU b29sc2hlZD0KKScsCiAgICAgZXhlY3V0ZSAgICAgOiAnaGlzdG9ncmFtZGlzY3JldGUnLAogICAg IGNvbHVtbnMgICAgIDogewoKZGlmZiAtciAxYmUwN2RlODZjMmE2MDY1MThhN2NmYzI5MTMyMzBj MjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpkMmZmYTNhMTExZmJhMTI4MiBj b25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL2w9 CmluZV9mb2N1cy9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMv Y2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9saW5lX2ZvY3VzL2NvPQpuZmlnLmpzCisrKyBiL2Nv bmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvbGlu ZV9mb2N1cy9jbz0KbmZpZy5qcwpAQCAtMyw2ICszLDcgQEAKIHJldHVybiAkLmV4dGVuZCh0cnVl LCB7fSwgbnZkM19jb25maWcsIHsKICAgICB0aXRsZSAgICAgICA6ICdMaW5lIHdpdGggZm9jdXMn LAogICAgIGNhdGVnb3J5ICAgIDogJ090aGVycycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVs dCBudmQzJywKICAgICBjb2x1bW5zICAgICA6IHsKICAgICAgICAgeSA6IHsKICAgICAgICAgICAg IHRpdGxlICAgICAgIDogJ1ZhbHVlcyBmb3IgeS1heGlzJywKCmRpZmYgLXIgMWJlMDdkZTg2YzJh NjA2NTE4YTdjZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFlNDliMDlkND0K ZDJmZmEzYTExMWZiYTEyODIgY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0 YXRpYy9jaGFydHMvbnZkMy9wPQppZS9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlz dWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9waWUvY29uZmlnLmpzCisrKyBi L2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMv cGllL2NvbmZpZy5qcwpAQCAtMyw3ICszLDkgQEAKIHJldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwg ewogICAgIHRpdGxlICAgICAgIDogJ1BpZSBjaGFydCcsCiAgICAgY2F0ZWdvcnkgICAgOiAnQXJl YSBjaGFydHMnLAorICAgIGxpYnJhcnkgICAgIDogJ05WRDMnLAogICAgIHRhZyAgICAgICAgIDog J3N2ZycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBudmQzJywKICAgICB1c2VfcGFuZWxz ICA6IHRydWUsCiAgICAgY29sdW1ucyA6IHsKICAgICAgICAgbGFiZWwgOiB7CgpkaWZmIC1yIDFi ZTA3ZGU4NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMx ZTQ5YjA5ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25z L2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvcz0KdGFja2VkYXJlYV9zdHJlYW0vY29uZmlnLmpz Ci0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRz L252ZDMvc3RhY2tlZGFyZWFfcz0KdHJlYW0vY29uZmlnLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5z L3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvc3RhY2tlZGFyZWFfcz0K dHJlYW0vY29uZmlnLmpzCkBAIC0zLDYgKzMsNyBAQAogcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9 LCBudmQzX2NvbmZpZywgewogICAgIHRpdGxlICAgICAgIDogJ1N0cmVhbScsCiAgICAgY2F0ZWdv cnkgICAgOiAnQXJlYSBjaGFydHMnLAorICAgIGtleXdvcmRzICAgIDogJ2RlZmF1bHQgbnZkMycs CiAgICAgY29sdW1ucyAgICAgOiB7CiAgICAgICAgIHkgOiB7CiAgICAgICAgICAgICB0aXRsZSAg ICAgICA6ICdWYWx1ZXMgZm9yIHktYXhpcycsCgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUxOGE3 Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZhM2Ex MTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvbGli cmFyeS9zY3JlZT0KbnNob3QuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMv Y2hhcnRzL3N0YXRpYy9saWJyYXJ5L3NjcmVlbnNob3QuanMKKysrIGIvY29uZmlnL3BsdWdpbnMv dmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9saWJyYXJ5L3NjcmVlbnNob3QuanMKQEAgLTMw LDkgKzMwLDE3IEBACiAgICAgICAgICAgICAgICAgd2lkdGggICA6IHdpZHRoLAogICAgICAgICAg ICAgICAgIGhlaWdodCAgOiBoZWlnaHQKICAgICAgICAgICAgIH0pOworICAgICAgICAgICA9MjAK KyAgICAgICAgICAgIC8vIGhpZGUgaW5wdXQgZmllbGRzCisgICAgICAgICAgICAkc3ZnLmZpbmQo Jy5oaWdoY2hhcnRzLWJ1dHRvbicpLmhpZGUoKTsKKyAgICAgICAgICAgPTIwCisgICAgICAgICAg ICAvLyBjcmVhdGUgeG1sIHN0cmluZwogICAgICAgICAgICAgeG1sU3RyaW5nICs9M0Qgc2VyaWFs aXplci5zZXJpYWxpemVUb1N0cmluZyh0aGlzKTsKKyAgICAgICAgICAgPTIwCisgICAgICAgICAg ICAvLyBzaG93IGlucHV0IGZpZWxkcworICAgICAgICAgICAgJHN2Zy5maW5kKCcuaGlnaGNoYXJ0 cy1idXR0b24nKS5zaG93KCk7CiAgICAgICAgIH0pOwotICAgICAgICAgID0yMAorICAgICAgPTIw CiAgICAgICAgIC8vIGRvIHRoZSBwb3N0CiAgICAgICAgIF9wb3N0KCRlbCwgc2NyZWVuc2hvdF91 cmwsIHsKICAgICAgICAgICAgIGZpbGVuYW1lICAgIDogbmFtZSB8fCAnY2hhcnQnLAoKZGlmZiAt ciAxYmUwN2RlODZjMmE2MDY1MThhN2NmYzI5MTMyMzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUz NjgzMWU0OWIwOWQ0PQpkMmZmYTNhMTExZmJhMTI4MiBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0 aW9ucy9jaGFydHMvc3RhdGljL2xpYnJhcnkvdWktdGE9CmJsZS1mb3JtLmpzCi0tLSBhL2NvbmZp Zy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvbGlicmFyeS91aS10YWJsZS1m b3JtLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMv bGlicmFyeS91aS10YWJsZS1mb3JtLmpzCkBAIC04NSw2ICs4NSwzMSBAQAogICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAvLyByYWRpb2JveCBmaWVsZAorICAgICAgICAgICAgY2FzZSAncmFkaW9idXR0 b24nIDoKKyAgICAgICAgICAgICAgICBmaWVsZCA9M0QgbmV3IFVpLlJhZGlvQnV0dG9uKHsKKyAg ICAgICAgICAgICAgICAgICAgaWQgICAgICAgICAgOiAnZmllbGQtJyArIGlkLAorICAgICAgICAg ICAgICAgICAgICBkYXRhICAgICAgICA6IHNldHRpbmdzX2RlZi5kYXRhLAorICAgICAgICAgICAg ICAgICAgICB2YWx1ZSAgICAgICA6IG1vZGVsLmdldChpZCksCisgICAgICAgICAgICAgICAgICAg IG9uY2hhbmdlICAgIDogZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg IC8vIHNldCBuZXcgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLnNldChpZCwg dmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICA9MjAKKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGZpbmQgc2VsZWN0ZWQgZGljdGlvbmFyeQorICAgICAgICAgICAgICAgICAgICAgICAg dmFyIGRpY3QgPTNEIF8uZmluZFdoZXJlKHNldHRpbmdzX2RlZi5kYXRhLCB7dmFsdWU9CjogdmFs dWV9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWN0KSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBkaWN0LnNob3cpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9M0QgZGljdC5zaG93W2ldOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlLmdldCh0YXJnZXQpLnNob3coKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yICh2YXIgaSBpbiBkaWN0LmhpZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFyIHRhcmdldCA9M0QgZGljdC5oaWRlW2ldOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRhYmxlLmdldCh0YXJnZXQpLmhpZGUoKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIC8vIHNlbGVjdCBmaWVsZAogICAgICAgICAgICAgY2FzZSAnc2VsZWN0JyA6CiAgICAg ICAgICAgICAgICAgZmllbGQgPTNEIG5ldyBVaS5TZWxlY3QuVmlldyh7CgpkaWZmIC1yIDFiZTA3 ZGU4NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5 YjA5ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2No YXJ0cy9zdGF0aWMvbGlicmFyeS91aS5qcwotLS0gYS9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0 aW9ucy9jaGFydHMvc3RhdGljL2xpYnJhcnkvdWkuanMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlz dWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9saWJyYXJ5L3VpLmpzCkBAIC01NzYsMTEgKzU3Niwx MCBAQAogICAgIC8vIG9wdGlvbnMKICAgICBvcHRpb25zRGVmYXVsdDogewogICAgICAgICB2YWx1 ZSAgICAgICAgICAgOiAnJywKLSAgICAgICAgdHlwZSAgICAgICAgICAgIDogJ3RleHQnLAotICAg ICAgICBwbGFjZWhvbGRlciAgICAgOiAnJywKLSAgICAgICAgZGlzYWJsZWQgICAgICAgIDogZmFs c2UsCiAgICAgICAgIHZpc2libGUgICAgICAgICA6IHRydWUsCi0gICAgICAgIGNscyAgICAgICAg ICAgICA6ICdmb3JtLWNvbnRyb2wnCisgICAgICAgIGNscyAgICAgICAgICAgICA6ICcnLAorICAg ICAgICBkYXRhICAgICAgICAgICAgOiBbXSwKKyAgICAgICAgaWQgICAgICAgICAgICAgIDogVXRp bHMudXVpZCgpCiAgICAgfSwKICAgID0yMAogICAgIC8vIGluaXRpYWxpemUKQEAgLTU5MSwzNiAr NTkwLDY5IEBACiAgICAgICAgIC8vIGNyZWF0ZSBuZXcgZWxlbWVudAogICAgICAgICB0aGlzLnNl dEVsZW1lbnQodGhpcy5fdGVtcGxhdGUodGhpcy5vcHRpb25zKSk7CiAgICAgICAgPTIwCi0gICAg ICAgIC8vIGRpc2FibGUgaW5wdXQgZmllbGQKLSAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kaXNh YmxlZCkgewotICAgICAgICAgICAgdGhpcy4kZWwucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKLSAg ICAgICAgfQotICAgICAgID0yMAogICAgICAgICAvLyBoaWRlIGlucHV0IGZpZWxkCiAgICAgICAg IGlmICghdGhpcy5vcHRpb25zLnZpc2libGUpIHsKICAgICAgICAgICAgIHRoaXMuJGVsLmhpZGUo KTsKICAgICAgICAgfQogICAgICAgID0yMAorICAgICAgICAvLyBzZXQgaW5pdGlhbCB2YWx1ZQor ICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLnZhbHVl KHRoaXMub3B0aW9ucy52YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICA9MjAKKyAgICAgICAgLy8g Y3VycmVudCB2YWx1ZQorICAgICAgICB0aGlzLmN1cnJlbnQgPTNEIHRoaXMub3B0aW9ucy52YWx1 ZTsKKyAgICAgICA9MjAKICAgICAgICAgLy8gb25jaGFuZ2UgZXZlbnQgaGFuZGxlci4gZmlyZXMg b24gdXNlciBhY3Rpdml0eS4KICAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXM7Ci0gICAgICAgIHRo aXMuJGVsLm9uKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKHNlbGYub3B0 aW9ucy5vbmNoYW5nZSkgewotICAgICAgICAgICAgICAgIHNlbGYub3B0aW9ucy5vbmNoYW5nZShz ZWxmLiRlbC52YWwoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgIHRoaXMuJGVsLmZpbmQoJ2lu cHV0Jykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCkgeyAgICAgICA9MjAKKyAgICAgICAgICAgIHNl bGYudmFsdWUoc2VsZi5fZ2V0VmFsdWUoKSk7CiAgICAgICAgIH0pOwogICAgIH0sCiAgICA9MjAK ICAgICAvLyB2YWx1ZQogICAgIHZhbHVlIDogZnVuY3Rpb24gKG5ld192YWwpIHsKKyAgICAgICAg Ly8gZ2V0IGN1cnJlbnQgdmFsdWUKKyAgICAgICAgdmFyIGJlZm9yZSA9M0QgdGhpcy5jdXJyZW50 OworICAgICAgID0yMAorICAgICAgICAvLyBzZXQgbmV3IHZhbHVlCiAgICAgICAgIGlmIChuZXdf dmFsICE9M0Q9M0QgdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB0aGlzLiRlbC52YWwobmV3X3Zh bCk7CisgICAgICAgICAgICB0aGlzLiRlbC5maW5kKCdsYWJlbCcpLnJlbW92ZUNsYXNzKCdhY3Rp dmUnKTsKKyAgICAgICAgICAgIHRoaXMuJGVsLmZpbmQoJ1t2YWx1ZT0zRCInICsgbmV3X3ZhbCAr ICciXScpLmNsb3Nlc3QoJ2xhYmVsJykuPQphZGRDbGFzcygnYWN0aXZlJyk7CisgICAgICAgICAg ICB0aGlzLmN1cnJlbnQgPTNEIG5ld192YWw7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRo aXMuJGVsLnZhbCgpOworCisgICAgICAgIC8vIGNoZWNrIHZhbHVlCisgICAgICAgIHZhciBhZnRl ciA9M0QgdGhpcy5jdXJyZW50OworICAgICAgICBpZiAoYWZ0ZXIgIT0zRCBiZWZvcmUgJiYgdGhp cy5vcHRpb25zLm9uY2hhbmdlKSB7CisgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25jaGFuZ2Uo dGhpcy5jdXJyZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGdldCBhbmQgcmV0dXJuIHZh bHVlCisgICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnQ7CisgICAgfSwKKyAgID0yMAorICAgIC8v IGdldCB2YWx1ZQorICAgIF9nZXRWYWx1ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzZWxl Y3RlZCA9M0QgdGhpcy4kZWwuZmluZCgnOmNoZWNrZWQnKTsKKyAgICAgICAgdmFyIHZhbHVlID0z RCBudWxsOworICAgICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID4gMCkgeworICAgICAgICAgICAg dmFsdWUgPTNEIHNlbGVjdGVkLnZhbCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1 ZTsKICAgICB9LAogICAgPTIwCiAgICAgLy8gZWxlbWVudAogICAgIF90ZW1wbGF0ZTogZnVuY3Rp b24ob3B0aW9ucykgewotICAgICAgICByZXR1cm4gJzxpbnB1dCBpZD0zRCInICsgb3B0aW9ucy5p ZCArICciIHR5cGU9M0QiJyArIG9wdGlvbnMudHlwZSA9CisgJyIgdmFsdWU9M0QiJyArIG9wdGlv bnMudmFsdWUgKyAnIiBwbGFjZWhvbGRlcj0zRCInICsgb3B0aW9ucy5wbGFjZWhvbGRlcj0KICsg JyIgY2xhc3M9M0QidWktaW5wdXQgJyArIG9wdGlvbnMuY2xzICsgJyI+JzsKKyAgICAgICAgdmFy IHRtcGwgPTNEICAnPGRpdiBjbGFzcz0zRCJidG4tZ3JvdXAgdWktcmFkaW9idXR0b24iIGRhdGEt dG9nZ2xlPQo9M0QiYnV0dG9ucyI+JzsKKyAgICAgICAgZm9yIChrZXkgaW4gb3B0aW9ucy5kYXRh KSB7CisgICAgICAgICAgICB2YXIgcGFpciA9M0Qgb3B0aW9ucy5kYXRhW2tleV07CisgICAgICAg ICAgICB0bXBsICs9M0QgICAgICc8bGFiZWwgY2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0Ij4nICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9M0QicmFkaW8iIG5hbWU9 M0QiJyArIG9wdGlvbnMuaWQgPQorICciIHZhbHVlPTNEIicgKyBwYWlyLnZhbHVlICsgJyIgc2Vs ZWN0ZWQ+JyArIHBhaXIubGFiZWwgKworICAgICAgICAgICAgICAgICAgICAgICAgJzwvbGFiZWw+ JzsKKyAgICAgICAgfQorICAgICAgICB0bXBsICs9M0QgICAgICc8L2Rpdj4nOworICAgICAgICBy ZXR1cm4gdG1wbDsKICAgICB9CiB9KTsKPTIwCkBAIC02MzgsNiArNjcwLDcgQEAKICAgICBCdXR0 b25NZW51IDogQnV0dG9uTWVudSwKICAgICBNb2RhbDogTW9kYWwsCiAgICAgVGV4dGFyZWE6IFRl eHRhcmVhLAotICAgIEltYWdlOiBJbWFnZQorICAgIEltYWdlOiBJbWFnZSwKKyAgICBSYWRpb0J1 dHRvbjogUmFkaW9CdXR0b24KIH0KIH0pOwoKZGlmZiAtciAxYmUwN2RlODZjMmE2MDY1MThhN2Nm YzI5MTMyMzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpkMmZmYTNhMTEx ZmJhMTI4MiBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3BsdWdp bnMvaGlnaGM9CmhhcnRzL2hpZ2hjaGFydHMuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFs aXphdGlvbnMvY2hhcnRzL3N0YXRpYy9wbHVnaW5zL2hpZ2hjaGFydHMvaGlnaGNoPQphcnRzLmpz CisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvcGx1Z2lu cy9oaWdoY2hhcnRzL2hpZ2hjaD0KYXJ0cy5qcwpAQCAtMjgsNyArMjgsNyBAQAogMTBdLGJhY2tn cm91bmRDb2xvcjoiI0ZGRkZGRiIscGxvdEJvcmRlckNvbG9yOiIjQzBDMEMwIixyZXNldFpvb21C dXR0b246e3Q9CmhlbWU6e3pJbmRleDoyMH0scG9zaXRpb246e2FsaWduOiJyaWdodCIseDotMTAs eToxMH19fSx0aXRsZTp7dGV4dDoiQ2hhcnQgdD0KaXRsZSIsYWxpZ246ImNlbnRlciIsbWFyZ2lu OjE1LHN0eWxlOntjb2xvcjoiIzMzMzMzMyIsZm9udFNpemU6IjE4cHgifX0sc3ViPQp0aXRsZTp7 dGV4dDoiIixhbGlnbjoiY2VudGVyIixzdHlsZTp7Y29sb3I6IiM1NTU1NTUifX0scGxvdE9wdGlv bnM6e2xpbmU6e2E9Cmxsb3dQb2ludFNlbGVjdDohMSxzaG93Q2hlY2tib3g6ITEsYW5pbWF0aW9u OntkdXJhdGlvbjoxRTN9LGV2ZW50czp7fSxsaW5lVz0KaWR0aDoyLG1hcmtlcjp7bGluZVdpZHRo OjAscmFkaXVzOjQsbGluZUNvbG9yOiIjRkZGRkZGIixzdGF0ZXM6e2hvdmVyOntlbmFiPQpsZWQ6 ITB9LHNlbGVjdDp7ZmlsbENvbG9yOiIjRkZGRkZGIixsaW5lQ29sb3I6IiMwMDAwMDAiLAogbGlu ZVdpZHRoOjJ9fX0scG9pbnQ6e2V2ZW50czp7fX0sZGF0YUxhYmVsczp3KE4se2FsaWduOiJjZW50 ZXIiLGVuYWJsZWQ6ITE9Cixmb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55PTNEPTNE PTNEbnVsbD8iIjpHYSh0aGlzLnksLTEpfSx2ZXJ0aWNhbD0KQWxpZ246ImJvdHRvbSIseTowfSks Y3JvcFRocmVzaG9sZDozMDAscG9pbnRSYW5nZTowLHN0YXRlczp7aG92ZXI6e21hcmtlcjp7PQp9 LGhhbG86e3NpemU6MTAsb3BhY2l0eTowLjI1fX0sc2VsZWN0OnttYXJrZXI6e319fSxzdGlja3lU cmFja2luZzohMCx0dXJib1Q9CmhyZXNob2xkOjFFM319LGxhYmVsczp7c3R5bGU6e3Bvc2l0aW9u OiJhYnNvbHV0ZSIsY29sb3I6IiMzRTU3NkYifX0sbGVnZW5kOj0Ke2VuYWJsZWQ6ITAsYWxpZ246 ImNlbnRlciIsbGF5b3V0OiJob3Jpem9udGFsIixsYWJlbEZvcm1hdHRlcjpmdW5jdGlvbigpe3Jl PQp0dXJuIHRoaXMubmFtZX0sYm9yZGVyQ29sb3I6IiM5MDkwOTAiLGJvcmRlclJhZGl1czowLG5h dmlnYXRpb246e2FjdGl2ZUNvbG89CnI6IiMyNzRiNmQiLAogaW5hY3RpdmVDb2xvcjoiI0NDQyJ9 LHNoYWRvdzohMSxpdGVtU3R5bGU6e2NvbG9yOiIjMzMzMzMzIixmb250U2l6ZToiMTJweCI9Cixm b250V2VpZ2h0OiJib2xkIn0saXRlbUhvdmVyU3R5bGU6e2NvbG9yOiIjMDAwIn0saXRlbUhpZGRl blN0eWxlOntjb2xvcjoiIz0KQ0NDIn0saXRlbUNoZWNrYm94U3R5bGU6e3Bvc2l0aW9uOiJhYnNv bHV0ZSIsd2lkdGg6IjEzcHgiLGhlaWdodDoiMTNweCJ9LHN5PQptYm9sUGFkZGluZzo1LHZlcnRp Y2FsQWxpZ246ImJvdHRvbSIseDowLHk6MCx0aXRsZTp7c3R5bGU6e2ZvbnRXZWlnaHQ6ImJvbGQ9 CiJ9fX0sbG9hZGluZzp7bGFiZWxTdHlsZTp7Zm9udFdlaWdodDoiYm9sZCIscG9zaXRpb246InJl bGF0aXZlIix0b3A6IjFlbSJ9LD0Kc3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsYmFja2dyb3Vu ZENvbG9yOiJ3aGl0ZSIsb3BhY2l0eTowLjUsdGV4dEFsaWduOiJjPQplbnRlciJ9fSx0b29sdGlw OntlbmFibGVkOiEwLGFuaW1hdGlvbjphYSxiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMjQ5LCAyNDks IDI9CjQ5LCAuODUpIiwKLWJvcmRlcldpZHRoOjEsYm9yZGVyUmFkaXVzOjMsZGF0ZVRpbWVMYWJl bEZvcm1hdHM6e21pbGxpc2Vjb25kOiIlQSwgJWIgJWUsPQogJUg6JU06JVMuJUwiLHNlY29uZDoi JUEsICViICVlLCAlSDolTTolUyIsbWludXRlOiIlQSwgJWIgJWUsICVIOiVNIixob3VyOiI9CiVB LCAlYiAlZSwgJUg6JU0iLGRheToiJUEsICViICVlLCAlWSIsd2VlazoiV2VlayBmcm9tICVBLCAl YiAlZSwgJVkiLG1vbnRoOj0KIiVCICVZIix5ZWFyOiIlWSJ9LGhlYWRlckZvcm1hdDonPHNwYW4g c3R5bGU9M0QiZm9udC1zaXplOiAxMHB4Ij57cG9pbnQua2V5PQp9PC9zcGFuPjxici8+Jyxwb2lu dEZvcm1hdDonPHNwYW4gc3R5bGU9M0QiY29sb3I6e3Nlcmllcy5jb2xvcn0iPj1FMj05Nz04Rjw9 Ci9zcGFuPiB7c2VyaWVzLm5hbWV9OiA8Yj57cG9pbnQueX08L2I+PGJyLz4nLHNoYWRvdzohMCxz bmFwOkpiPzI1OjEwLHN0eWxlOj0Ke2NvbG9yOiIjMzMzMzMzIixjdXJzb3I6ImRlZmF1bHQiLGZv bnRTaXplOiIxMnB4IixwYWRkaW5nOiI4cHgiLAorYm9yZGVyV2lkdGg6MSxib3JkZXJSYWRpdXM6 MyxkYXRlVGltZUxhYmVsRm9ybWF0czp7bWlsbGlzZWNvbmQ6IiVBLCAlYiAlZSw9CiAlSDolTTol Uy4lTCIsc2Vjb25kOiIlQSwgJWIgJWUsICVIOiVNOiVTIixtaW51dGU6IiVBLCAlYiAlZSwgJUg6 JU0iLGhvdXI6Ij0KJUEsICViICVlLCAlSDolTSIsZGF5OiIlQSwgJWIgJWUsICVZIix3ZWVrOiJX ZWVrIGZyb20gJUEsICViICVlLCAlWSIsbW9udGg6PQoiJUIgJVkiLHllYXI6IiVZIn0saGVhZGVy Rm9ybWF0Oic8c3BhbiBzdHlsZT0zRCJmb250LXNpemU6IDEwcHgiPntwb2ludC5rZXk9Cn08L3Nw YW4+PGJyLz4nLHBvaW50Rm9ybWF0Oic8c3BhbiBzdHlsZT0zRCJjb2xvcjp7c2VyaWVzLmNvbG9y fSI+PUMzPUEyPUUyPQo9ODA9OTQ9QzI9OEY8L3NwYW4+IHtzZXJpZXMubmFtZX06IDxiPntwb2lu dC55fTwvYj48YnIvPicsc2hhZG93OiEwLHNuYXA6SmI9Cj8yNToxMCxzdHlsZTp7Y29sb3I6IiMz MzMzMzMiLGN1cnNvcjoiZGVmYXVsdCIsZm9udFNpemU6IjEycHgiLHBhZGRpbmc6IjhweD0KIiwK IHdoaXRlU3BhY2U6Im5vd3JhcCJ9fSxjcmVkaXRzOntlbmFibGVkOiEwLHRleHQ6IkhpZ2hjaGFy dHMuY29tIixocmVmOiJodHRwPQo6Ly93d3cuaGlnaGNoYXJ0cy5jb20iLHBvc2l0aW9uOnthbGln bjoicmlnaHQiLHg6LTEwLHZlcnRpY2FsQWxpZ246ImJvdHRvbSI9Cix5Oi01fSxzdHlsZTp7Y3Vy c29yOiJwb2ludGVyIixjb2xvcjoiIzkwOTA5MCIsZm9udFNpemU6IjlweCJ9fX07dmFyIGJhPTNE RT0KLnBsb3RPcHRpb25zLFM9M0RiYS5saW5lO0NiKCk7dmFyIFRiPTNEL3JnYmFcKFxzKihbMC05 XXsxLDN9KVxzKixccyooWzAtOV17PQoxLDN9KVxzKixccyooWzAtOV17MSwzfSlccyosXHMqKFsw LTldPyg/OlwuWzAtOV0rKT8pXHMqXCkvLFViPTNELyMoW2EtZkEtRjA9Ci05XXsyfSkoW2EtZkEt RjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KS8sVmI9M0QvcmdiXChccyooWzAtOV17MSwzfSlccyos XHMqKD0KWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMqXCkvLHlhPTNEZnVuY3Rpb24o YSl7dmFyIGI9M0RbXSxjLAogZDsoZnVuY3Rpb24oYSl7YSYmYS5zdG9wcz9kPTNEVWEoYS5zdG9w cyxmdW5jdGlvbihhKXtyZXR1cm4geWEoYVsxXSl9KTooYz0KPTNEVGIuZXhlYyhhKSk/Yj0zRFt6 KGNbMV0pLHooY1syXSkseihjWzNdKSxwYXJzZUZsb2F0KGNbNF0sMTApXTooYz0zRFViLmV4PQpl YyhhKSk/Yj0zRFt6KGNbMV0sMTYpLHooY1syXSwxNikseihjWzNdLDE2KSwxXTooYz0zRFZiLmV4 ZWMoYSkpJiYoYj0zRFt6KGM9ClsxXSkseihjWzJdKSx6KGNbM10pLDFdKX0pKGEpO3JldHVybntn ZXQ6ZnVuY3Rpb24oYyl7dmFyIGY7ZD8oZj0zRHcoYSksZi5zdD0Kb3BzPTNEW10uY29uY2F0KGYu c3RvcHMpLHAoZCxmdW5jdGlvbihhLGIpe2Yuc3RvcHNbYl09M0RbZi5zdG9wc1tiXVswXSxhLmdl PQp0KGMpXX0pKTpmPTNEYiYmIWlzTmFOKGJbMF0pP2M9M0Q9M0Q9M0QicmdiIj8icmdiKCIrYlsw XSsiLCIrYlsxXSsiLCIrYlsyXSs9CiIpIjpjPTNEPTNEPTNEImEiP2JbM106InJnYmEoIitiLmpv aW4oIiwiKSsiKSI6YTtyZXR1cm4gZn0sYnJpZ2h0ZW46ZnVuY3Rpbz0KbihhKXtpZihkKXAoZCwK IGZ1bmN0aW9uKGIpe2IuYnJpZ2h0ZW4oYSl9KTtlbHNlIGlmKGhhKGEpJiZhIT0zRD0zRDApe3Zh ciBjO2ZvcihjPTNEMDtjPDM7PQpjKyspYltjXSs9M0R6KGEqMjU1KSxiW2NdPDAmJihiW2NdPTNE MCksYltjXT4yNTUmJihiW2NdPTNEMjU1KX1yZXR1cm4gdGhpc309CixyZ2JhOmIsc2V0T3BhY2l0 eTpmdW5jdGlvbihhKXtiWzNdPTNEYTtyZXR1cm4gdGhpc319fTtQLnByb3RvdHlwZT0zRHtpbml0 Oj0KZnVuY3Rpb24oYSxiKXt0aGlzLmVsZW1lbnQ9M0RiPTNEPTNEPTNEInNwYW4iP1koYik6eS5j cmVhdGVFbGVtZW50TlMoeGEsYik7PQp0aGlzLnJlbmRlcmVyPTNEYX0sb3BhY2l0eToxLGFuaW1h dGU6ZnVuY3Rpb24oYSxiLGMpe2I9M0RtKGIsdmEsITApO2JiKHRoaXM9Cik7aWYoYil7Yj0zRHco Yix7fSk7aWYoYyliLmNvbXBsZXRlPTNEYztrYih0aGlzLGEsYil9ZWxzZSB0aGlzLmF0dHIoYSks YyYmYz0KKCl9LGNvbG9yR3JhZGllbnQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPTNEdGhpcy5yZW5k ZXJlcixlLGYsZyxoLGksaixrLGwsbyxuPQoscz0zRFtdO2EubGluZWFyR3JhZGllbnQ/CkBAIC0y NjUsNyArMjY1LDcgQEAKIDApOmEuY29sdW1uSW5kZXgpfHwwKSprLWMvMikqKGU/LTE6MSl9fSx0 cmFuc2xhdGU6ZnVuY3Rpb24oKXt2YXIgYT0zRHRoaXMsPQpiPTNEYS5jaGFydCxjPTNEYS5vcHRp b25zLGQ9M0RhLmJvcmRlcldpZHRoPTNEbShjLmJvcmRlcldpZHRoLGEuYWN0aXZlUG9pbnQ9CkNv dW50PjAuNSphLnhBeGlzLmxlbj8wOjEpLGU9M0RhLnlBeGlzLGY9M0RhLnRyYW5zbGF0ZWRUaHJl c2hvbGQ9M0RlLmdldFRocj0KZXNob2xkKGMudGhyZXNob2xkKSxnPTNEbShjLm1pblBvaW50TGVu Z3RoLDUpLGM9M0RhLmdldENvbHVtbk1ldHJpY3MoKSxoPTNEPQpjLndpZHRoLGk9M0RhLmJhclc9 M0RLYSh2KGgsMSsyKmQpKSxqPTNEYS5wb2ludFhPZmZzZXQ9M0RjLm9mZnNldCxrPTNELShkJTI9 Cj8wLjU6MCksbD0zRGQlMj8wLjU6MTtiLnJlbmRlcmVyLmlzVk1MJiZiLmludmVydGVkJiYobCs9 M0QxKTtPLnByb3RvdHlwZS50cj0KYW5zbGF0ZS5hcHBseShhKTtwKGEucG9pbnRzLGZ1bmN0aW9u KGMpe3ZhciBkPTNEbShjLnlCb3R0b20sZikscD0zREModigtOTk5PQotZCxjLnBsb3RZKSxlLmxl bisKIDk5OStkKSxxPTNEYy5wbG90WCtqLHI9M0RpLHQ9M0RDKHAsZCkseDt4PTNEdihwLGQpLXQ7 TSh4KTxnJiZnJiYoeD0zRGcsdD0KPTNEdShNKHQtZik+Zz9kLWc6Zi0oZS50cmFuc2xhdGUoYy55 LDAsMSwwLDEpPD0zRGY/ZzowKSkpO2MuYmFyWD0zRHE7Yy5wb2luPQp0V2lkdGg9M0RoO2MudG9v bHRpcFBvcz0zRGIuaW52ZXJ0ZWQ/W2UubGVuLXAsYS54QXhpcy5sZW4tcS1yLzJdOltxK3IvMixw XTs9CmQ9M0RNKHEpPDAuNTtyPTNEdShxK3IpK2s7cT0zRHUocSkraztyLT0zRHE7cD0zRE0odCk8 MC41O3g9M0R1KHQreCkrbDt0PTNEdT0KKHQpK2w7eC09M0R0O2QmJihxKz0zRDEsci09M0QxKTtw JiYodC09M0QxLHgrPTNEMSk7Yy5zaGFwZVR5cGU9M0QicmVjdCI7Yy5zPQpoYXBlQXJncz0zRHt4 OnEseTp0LHdpZHRoOnIsaGVpZ2h0Onh9fSl9LGdldFN5bWJvbDpzYSxkcmF3TGVnZW5kU3ltYm9s Ok4uZHI9CmF3UmVjdGFuZ2xlLGRyYXdHcmFwaDpzYSxkcmF3UG9pbnRzOmZ1bmN0aW9uKCl7dmFy IGE9M0R0aGlzLGI9M0R0aGlzLmNoYXJ0LD0KYz0zRGEub3B0aW9ucyxkPTNEYi5yZW5kZXJlcixl PTNEYy5hbmltYXRpb25MaW1pdHx8CiAyNTAsZixnLGg7cChhLnBvaW50cyxmdW5jdGlvbihpKXt2 YXIgaj0zRGkucGxvdFksaz0zRGkuZ3JhcGhpYztpZihqIT0zRD0zRD0KdCYmIWlzTmFOKGopJiZp LnkhPTNEPTNEbnVsbClmPTNEaS5zaGFwZUFyZ3MsaD0zRHIoYS5ib3JkZXJXaWR0aCk/eyJzdHJv a2UtPQp3aWR0aCI6YS5ib3JkZXJXaWR0aH06e30sZz0zRGkucG9pbnRBdHRyW2kuc2VsZWN0ZWQ/ InNlbGVjdCI6IiJdfHxhLnBvaW50QXQ9CnRyWyIiXSxrPyhiYihrKSxrLmF0dHIoaClbYi5wb2lu dENvdW50PGU/ImFuaW1hdGUiOiJhdHRyIl0odyhmKSkpOmkuZ3JhcGhpYz0KPTNEZFtpLnNoYXBl VHlwZV0oZikuYXR0cihnKS5hdHRyKGgpLmFkZChhLmdyb3VwKS5zaGFkb3coYy5zaGFkb3csbnVs bCxjLnN0PQphY2tpbmcmJiFjLmJvcmRlclJhZGl1cyk7ZWxzZSBpZihrKWkuZ3JhcGhpYz0zRGsu ZGVzdHJveSgpfSl9LGFuaW1hdGU6ZnVuY3Q9CmlvbihhKXt2YXIgYj0zRHRoaXMueUF4aXMsYz0z RHRoaXMub3B0aW9ucyxkPTNEdGhpcy5jaGFydC5pbnZlcnRlZCxlPTNEe307aT0KZihhYSlhPwot KGUuc2NhbGVZPTNEMC4wMDEsYT0zREMoYi5wb3MrYi5sZW4sdihiLnBvcyxiLnRvUGl4ZWxzKGMu dGhyZXNob2xkKSkpLGQ/ZS49CnRyYW5zbGF0ZVg9M0RhLWIubGVuOmUudHJhbnNsYXRlWT0zRGEs dGhpcy5ncm91cC5hdHRyKGUpKTooZS5zY2FsZVk9M0QxLGVbZD0KPyJ0cmFuc2xhdGVYIjoidHJh bnNsYXRlWSJdPTNEYi5wb3MsdGhpcy5ncm91cC5hbmltYXRlKGUsdGhpcy5vcHRpb25zLmFuaW1h PQp0aW9uKSx0aGlzLmFuaW1hdGU9M0RudWxsKX0scmVtb3ZlOmZ1bmN0aW9uKCl7dmFyIGE9M0R0 aGlzLGI9M0RhLmNoYXJ0O2IuaGE9CnNSZW5kZXJlZCYmcChiLnNlcmllcyxmdW5jdGlvbihiKXtp ZihiLnR5cGU9M0Q9M0Q9M0RhLnR5cGUpYi5pc0RpcnR5PTNEITB9KT0KO08ucHJvdG90eXBlLnJl bW92ZS5hcHBseShhLGFyZ3VtZW50cyl9fSk7Ri5jb2x1bW49M0RnYTtiYS5iYXI9M0R3KGJhLmNv bHVtPQpuKTtwYT0zRGthKGdhLHt0eXBlOiJiYXIiLGludmVydGVkOiEwfSk7Ri5iYXI9M0RwYTti YS5zY2F0dGVyPTNEdyhTLHtsaW5lV2k9CmR0aDowLHRvb2x0aXA6e2hlYWRlckZvcm1hdDonPHNw YW4gc3R5bGU9M0QiY29sb3I6e3Nlcmllcy5jb2xvcn0iPj1FMj05Nz04Rj0KPC9zcGFuPjxzcGFu IHN0eWxlPTNEImZvbnQtc2l6ZTogMTBweDsiPiB7c2VyaWVzLm5hbWV9PC9zcGFuPjxici8+JywK KyhlLnNjYWxlWT0zRDAuMDAxLGE9M0RDKGIucG9zK2IubGVuLHYoYi5wb3MsYi50b1BpeGVscyhj LnRocmVzaG9sZCkpKSxkP2UuPQp0cmFuc2xhdGVYPTNEYS1iLmxlbjplLnRyYW5zbGF0ZVk9M0Rh LHRoaXMuZ3JvdXAuYXR0cihlKSk6KGUuc2NhbGVZPTNEMSxlW2Q9Cj8idHJhbnNsYXRlWCI6InRy YW5zbGF0ZVkiXT0zRGIucG9zLHRoaXMuZ3JvdXAuYW5pbWF0ZShlLHRoaXMub3B0aW9ucy5hbmlt YT0KdGlvbiksdGhpcy5hbmltYXRlPTNEbnVsbCl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBhPTNE dGhpcyxiPTNEYS5jaGFydDtiLmhhPQpzUmVuZGVyZWQmJnAoYi5zZXJpZXMsZnVuY3Rpb24oYil7 aWYoYi50eXBlPTNEPTNEPTNEYS50eXBlKWIuaXNEaXJ0eT0zRCEwfSk9CjtPLnByb3RvdHlwZS5y ZW1vdmUuYXBwbHkoYSxhcmd1bWVudHMpfX0pO0YuY29sdW1uPTNEZ2E7YmEuYmFyPTNEdyhiYS5j b2x1bT0Kbik7cGE9M0RrYShnYSx7dHlwZToiYmFyIixpbnZlcnRlZDohMH0pO0YuYmFyPTNEcGE7 YmEuc2NhdHRlcj0zRHcoUyx7bGluZVdpPQpkdGg6MCx0b29sdGlwOntoZWFkZXJGb3JtYXQ6Jzxz cGFuIHN0eWxlPTNEImNvbG9yOntzZXJpZXMuY29sb3J9Ij49QzM9QTI9RTI9Cj04MD05ND1DMj04 Rjwvc3Bhbj48c3BhbiBzdHlsZT0zRCJmb250LXNpemU6IDEwcHg7Ij4ge3Nlcmllcy5uYW1lfTwv c3Bhbj48Yj0Kci8+JywKIHBvaW50Rm9ybWF0OiJ4OiA8Yj57cG9pbnQueH08L2I+PGJyLz55OiA8 Yj57cG9pbnQueX08L2I+PGJyLz4ifSxzdGlja3lUcmFjPQpraW5nOiExfSk7cGE9M0RrYShPLHt0 eXBlOiJzY2F0dGVyIixzb3J0ZWQ6ITEscmVxdWlyZVNvcnRpbmc6ITEsbm9TaGFyZWRUb289Cmx0 aXA6ITAsdHJhY2tlckdyb3VwczpbIm1hcmtlckdyb3VwIl0sdGFrZU9yZGluYWxQb3NpdGlvbjoh MSxzaW5ndWxhclRvb2x0aT0KcHM6ITAsZHJhd0dyYXBoOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25z LmxpbmVXaWR0aCYmTy5wcm90b3R5cGUuZHJhd0dyYXBoLmNhPQpsbCh0aGlzKX19KTtGLnNjYXR0 ZXI9M0RwYTtiYS5waWU9M0R3KFMse2JvcmRlckNvbG9yOiIjRkZGRkZGIixib3JkZXJXaWR0aDo9 CjEsY2VudGVyOltudWxsLG51bGxdLGNsaXA6ITEsY29sb3JCeVBvaW50OiEwLGRhdGFMYWJlbHM6 e2Rpc3RhbmNlOjMwLGVuYWJsZT0KZDohMCxmb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy5wb2ludC5uYW1lfX0saWdub3JlSGlkZGVuUG9pbnQ6ITAsCiBsZWdlbmRUeXBlOiJwb2ludCIs bWFya2VyOm51bGwsc2l6ZTpudWxsLHNob3dJbkxlZ2VuZDohMSxzbGljZWRPZmZzZXQ6MTAscz0K dGF0ZXM6e2hvdmVyOnticmlnaHRuZXNzOjAuMSxzaGFkb3c6ITF9fSxzdGlja3lUcmFja2luZzoh MSx0b29sdGlwOntmb2xsb3dQPQpvaW50ZXI6ITB9fSk7Uz0zRHt0eXBlOiJwaWUiLGlzQ2FydGVz aWFuOiExLHBvaW50Q2xhc3M6a2EoRWEse2luaXQ6ZnVuY3Rpb249Cigpe0VhLnByb3RvdHlwZS5p bml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgYT0zRHRoaXMsYjtpZihhLnk8MClhLnk9M0Ru dT0KbGw7cShhLHt2aXNpYmxlOmEudmlzaWJsZSE9M0Q9M0QhMSxuYW1lOm0oYS5uYW1lLCJTbGlj ZSIpfSk7Yj0zRGZ1bmN0aW9uKGIpPQp7YS5zbGljZShiLnR5cGU9M0Q9M0Q9M0Qic2VsZWN0Iil9 O0soYSwic2VsZWN0IixiKTtLKGEsInVuc2VsZWN0IixiKTtyZXR1cm49CiBhfSxzZXRWaXNpYmxl OmZ1bmN0aW9uKGEpe3ZhciBiPTNEdGhpcyxjPTNEYi5zZXJpZXMsZD0zRGMuY2hhcnQ7Yi52aXNp YmxlPQo9M0RiLm9wdGlvbnMudmlzaWJsZT0zRAogYT0zRGE9M0Q9M0Q9M0R0PyFiLnZpc2libGU6 YTtjLm9wdGlvbnMuZGF0YVtEYShiLGMuZGF0YSldPTNEYi5vcHRpb25zO3AoWyI9CmdyYXBoaWMi LCJkYXRhTGFiZWwiLCJjb25uZWN0b3IiLCJzaGFkb3dHcm91cCJdLGZ1bmN0aW9uKGMpe2lmKGJb Y10pYltjXVthPz0KInNob3ciOiJoaWRlIl0oITApfSk7Yi5sZWdlbmRJdGVtJiZkLmxlZ2VuZC5j b2xvcml6ZUl0ZW0oYixhKTtpZighYy5pc0RpcnR5PQomJmMub3B0aW9ucy5pZ25vcmVIaWRkZW5Q b2ludCljLmlzRGlydHk9M0QhMCxkLnJlZHJhdygpfSxzbGljZTpmdW5jdGlvbihhLGI9CixjKXt2 YXIgZD0zRHRoaXMuc2VyaWVzO1FhKGMsZC5jaGFydCk7bShiLCEwKTt0aGlzLnNsaWNlZD0zRHRo aXMub3B0aW9ucy5zbD0KaWNlZD0zRGE9M0RyKGEpP2E6IXRoaXMuc2xpY2VkO2Qub3B0aW9ucy5k YXRhW0RhKHRoaXMsZC5kYXRhKV09M0R0aGlzLm9wdGlvPQpuczthPTNEYT90aGlzLnNsaWNlZFRy YW5zbGF0aW9uOnt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowfTt0aGlzLmdyYXBoaWMuYW49Cmlt YXRlKGEpOwpAQCAtMzAyLDQgKzMwMiw0IEBACiBzZXRWaXNpYmxlOmZ1bmN0aW9uKGEsYil7dmFy IGM9M0R0aGlzLGQ9M0RjLmNoYXJ0LGU9M0RjLmxlZ2VuZEl0ZW0sZixnPTNEZD0KLm9wdGlvbnMu Y2hhcnQuaWdub3JlSGlkZGVuU2VyaWVzLGg9M0RjLnZpc2libGU7Zj0zRChjLnZpc2libGU9M0Rh PTNEYy51c2VyPQpPcHRpb25zLnZpc2libGU9M0RhPTNEPTNEPTNEdD8haDphKT8ic2hvdyI6Imhp ZGUiO3AoWyJncm91cCIsImRhdGFMYWJlbHNHcm89CnVwIiwibWFya2VyR3JvdXAiLCJ0cmFja2Vy Il0sZnVuY3Rpb24oYSl7aWYoY1thXSljW2FdW2ZdKCl9KTtpZihkLmhvdmVyU2VyaT0KZXM9M0Q9 M0Q9M0RjKWMub25Nb3VzZU91dCgpO2UmJmQubGVnZW5kLmNvbG9yaXplSXRlbShjLGEpO2MuaXNE aXJ0eT0zRCEwO2MuPQpvcHRpb25zLnN0YWNraW5nJiZwKGQuc2VyaWVzLGZ1bmN0aW9uKGEpe2lm KGEub3B0aW9ucy5zdGFja2luZyYmYS52aXNpYmxlKWE9Ci5pc0RpcnR5PTNEITB9KTtwKGMubGlu a2VkU2VyaWVzLGZ1bmN0aW9uKGIpe2Iuc2V0VmlzaWJsZShhLCExKX0pO2lmKGcpZC5pcz0KRGly dHlCb3g9M0QhMDsKIGIhPTNEPTNEITEmJmQucmVkcmF3KCk7RChjLGYpfSxzZXRUb29sdGlwUG9p bnRzOmZ1bmN0aW9uKGEpe3ZhciBiPTNEW10sYyxkPQosZT0zRHRoaXMueEF4aXMsZj0zRGUmJmUu Z2V0RXh0cmVtZXMoKSxnPTNEZT9lLnRvb2x0aXBMZW58fGUubGVuOnRoaXMuY2hhcnQ9Ci5wbG90 U2l6ZVgsaCxpLGo9M0RbXTtpZighKHRoaXMub3B0aW9ucy5lbmFibGVNb3VzZVRyYWNraW5nPTNE PTNEPTNEITF8fHRoaT0Kcy5zaW5ndWxhclRvb2x0aXBzKSl7aWYoYSl0aGlzLnRvb2x0aXBQb2lu dHM9M0RudWxsO3AodGhpcy5zZWdtZW50c3x8dGhpcy5wPQpvaW50cyxmdW5jdGlvbihhKXtiPTNE Yi5jb25jYXQoYSl9KTtlJiZlLnJldmVyc2VkJiYoYj0zRGIucmV2ZXJzZSgpKTt0aGlzLm89CnJk ZXJUb29sdGlwUG9pbnRzJiZ0aGlzLm9yZGVyVG9vbHRpcFBvaW50cyhiKTthPTNEYi5sZW5ndGg7 Zm9yKGk9M0QwO2k8YTtpKz0KKylpZihlPTNEYltpXSxjPTNEZS54LGM+PTNEZi5taW4mJmM8PTNE Zi5tYXgpe2g9M0RiW2krMV07Yz0zRGQ9M0Q9M0Q9M0R0PzA6PQpkKzE7Zm9yKGQ9M0RiW2krMV0/ Qyh2KDAsVCgoZS5jbGllbnRYKwogKGg/aC53cmFwcGVkQ2xpZW50WHx8aC5jbGllbnRYOmcpKS8y KSksZyk6ZztjPj0zRDAmJmM8PTNEZDspaltjKytdPTNEZX10aGk9CnMudG9vbHRpcFBvaW50cz0z RGp9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXRWaXNpYmxlKCEwKX0saGlkZTpmdW5jdGlvbigp ez0KdGhpcy5zZXRWaXNpYmxlKCExKX0sc2VsZWN0OmZ1bmN0aW9uKGEpe3RoaXMuc2VsZWN0ZWQ9 M0RhPTNEYT0zRD0zRD0zRHQ/IXRoPQppcy5zZWxlY3RlZDphO2lmKHRoaXMuY2hlY2tib3gpdGhp cy5jaGVja2JveC5jaGVja2VkPTNEYTtEKHRoaXMsYT8ic2VsZWN0Ijo9CiJ1bnNlbGVjdCIpfSxk cmF3VHJhY2tlcjpTLmRyYXdUcmFja2VyR3JhcGh9KTtxKFIse0F4aXM6bGEsQ2hhcnQ6WWEsQ29s b3I6eT0KYSxQb2ludDpFYSxUaWNrOlNhLFJlbmRlcmVyOlphLFNlcmllczpPLFNWR0VsZW1lbnQ6 UCxTVkdSZW5kZXJlcjp0YSxhcnJheU1pPQpuOk5hLGFycmF5TWF4OkJhLGNoYXJ0czpWLGRhdGVG b3JtYXQ6Y2IsZm9ybWF0OklhLHBhdGhBbmltOnViLGdldE9wdGlvbnM6ZnU9Cm5jdGlvbigpe3Jl dHVybiBFfSwKLWhhc0JpZGlCdWc6TmIsaXNUb3VjaERldmljZTpKYixudW1iZXJGb3JtYXQ6R2Es c2VyaWVzVHlwZXM6RixzZXRPcHRpb25zOmZ1PQpuY3Rpb24oYSl7RT0zRHcoITAsRSxhKTtDYigp O3JldHVybiBFfSxhZGRFdmVudDpLLHJlbW92ZUV2ZW50OlcsY3JlYXRlRWxlbWU9Cm50OlksZGlz Y2FyZEVsZW1lbnQ6UGEsY3NzOkcsZWFjaDpwLGV4dGVuZDpxLG1hcDpVYSxtZXJnZTp3LHBpY2s6 bSxzcGxhdDpxYT0KLGV4dGVuZENsYXNzOmthLHBJbnQ6eix3cmFwOk1hLHN2ZzphYSxjYW52YXM6 ZmEsdm1sOiFhYSYmIWZhLHByb2R1Y3Q6IkhpZ2hjPQpoYXJ0cyIsdmVyc2lvbjoiNC4wLjEifSl9 KSgpOworaGFzQmlkaUJ1ZzpOYixpc1RvdWNoRGV2aWNlOkpiLG51bWJlckZvcm1hdDpHYSxzZXJp ZXNUeXBlczpGLHNldE9wdGlvbnM6ZnU9Cm5jdGlvbihhKXtFPTNEdyghMCxFLGEpO0NiKCk7cmV0 dXJuIEV9LGFkZEV2ZW50OksscmVtb3ZlRXZlbnQ6VyxjcmVhdGVFbGVtZT0KbnQ6WSxkaXNjYXJk RWxlbWVudDpQYSxjc3M6RyxlYWNoOnAsZXh0ZW5kOnEsbWFwOlVhLG1lcmdlOncscGljazptLHNw bGF0OnFhPQosZXh0ZW5kQ2xhc3M6a2EscEludDp6LHdyYXA6TWEsc3ZnOmFhLGNhbnZhczpmYSx2 bWw6IWFhJiYhZmEscHJvZHVjdDoiSGlnaGM9CmhhcnRzIix2ZXJzaW9uOiI0LjAuMSJ9KX0pKCk7 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciAxYmUwN2RlODZjMmE2MDY1MThh N2NmYzI5MTMyMzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpkMmZmYTNh MTExZmJhMTI4MiBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3Zp ZXdzL3R5cGVzLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9z dGF0aWMvdmlld3MvdHlwZXMuanMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMv Y2hhcnRzL3N0YXRpYy92aWV3cy90eXBlcy5qcwpAQCAtMjksNDIgKzI5LDI0IEBACiAgICAgICAg IC8vIGNyZWF0ZSBuZXcgZWxlbWVudAogICAgICAgICB2YXIgJGVsID0zRCAkKCc8ZGl2IGNsYXNz PTNEImNoYXJ0cy1ncmlkIi8+Jyk7CiAgICAgICAgPTIwCisgICAgICAgIC8vIGNvbnN0cnVjdCBj aGFydCB0eXBlIHN1YnNldCBzZWxlY3Rpb24gYnV0dG9ucworICAgICAgICB0aGlzLmxpYnJhcnkg PTNEIG5ldyBVaS5SYWRpb0J1dHRvbih7CisgICAgICAgICAgICBkYXRhICAgIDogWyB7IGxhYmVs OiAnRGVmYXVsdCcsIHZhbHVlOiAnZGVmYXVsdCcgfSwKKyAgICAgICAgICAgICAgICAgICAgICAg IHsgbGFiZWw6ICdOVkQzIChvbmx5KScsIHZhbHVlOiAnbnZkMycgfSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHsgbGFiZWw6ICdIaWdoY2hhcnRzIChvbmx5KScsIHZhbHVlOiAnaGlnaGNoYXJ0 cycgPQp9XSwKKyAgICAgICAgICAgIG9uY2hhbmdlOiBmdW5jdGlvbih2YWx1ZSkgeworICAgICAg ICAgICAgICAgIHNlbGYuX2ZpbHRlcih2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0p OworICAgICAgICAkZWwuYXBwZW5kKFV0aWxzLndyYXAodGhpcy5saWJyYXJ5LiRlbCkuY3NzKCd0 ZXh0LWFsaWduJywgJ2NlbnRlcic9CikpOworICAgICAgID0yMAogICAgICAgICAvLyBzZXQgZWxl bWVudAogICAgICAgICB0aGlzLnNldEVsZW1lbnQoJGVsKTsKLSAgICAgICAgICAgICAgID0yMAot ICAgICAgICAvLyBsb2FkIGNoYXJ0IHR5cGVzIGludG8gY2F0ZWdvcmllcwotICAgICAgICB2YXIg Y2F0ZWdvcmllcyA9M0Qge307Ci0gICAgICAgIHZhciB0eXBlcyA9M0QgYXBwLnR5cGVzLmF0dHJp YnV0ZXM7Ci0gICAgICAgIGZvciAodmFyIGlkIGluIHR5cGVzKSB7Ci0gICAgICAgICAgICB2YXIg dHlwZSA9M0QgdHlwZXNbaWRdOwotICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0zRCB0eXBlLmNh dGVnb3J5OwotICAgICAgICAgICAgaWYgKCFjYXRlZ29yaWVzW2NhdGVnb3J5XSkgewotICAgICAg ICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldID0zRCB7fTsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldW2lkXSA9M0QgdHlwZTsKLSAgICAgICAgfQog ICAgICAgID0yMAotICAgICAgICAvLyBhZGQgY2F0ZWdvcmllcyBhbmQgY2hhcnRzIHRvIHNjcmVl bgotICAgICAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzKSB7Ci0gICAgICAgICAg ICAvLyBjcmVhdGUgZW1wdHkgZWxlbWVudAotICAgICAgICAgICAgdmFyICRlbCA9M0QgJCgnPGRp diBzdHlsZT0zRCJjbGVhcjogYm90aDsiLz4nKQotICAgICAgICAgICA9MjAKLSAgICAgICAgICAg IC8vIGFkZCBoZWFkZXIgbGFiZWwKLSAgICAgICAgICAgICRlbC5hcHBlbmQoVXRpbHMud3JhcCh0 aGlzLl90ZW1wbGF0ZV9oZWFkZXIoe3RpdGxlOiBjYXRlZ29yeX0pPQopKTsKLSAgICAgICAgICAg PTIwCi0gICAgICAgICAgICAvLyBhZGQgY2hhcnQgdHlwZXMKLSAgICAgICAgICAgIGZvciAodmFy IGlkIGluIGNhdGVnb3JpZXNbY2F0ZWdvcnldKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHR5cGUg PTNEIGNhdGVnb3JpZXNbY2F0ZWdvcnldW2lkXTsKLSAgICAgICAgICAgICAgICAkZWwuYXBwZW5k KFV0aWxzLndyYXAodGhpcy5fdGVtcGxhdGVfaXRlbSh7Ci0gICAgICAgICAgICAgICAgICAgIGlk ICAgICAgOiBpZCwKLSAgICAgICAgICAgICAgICAgICAgdGl0bGUgICA6IHR5cGUudGl0bGUsCi0g ICAgICAgICAgICAgICAgICAgIHVybCAgICAgOiBjb25maWcuYXBwX3Jvb3QgKyAnY2hhcnRzLycg KyBzZWxmLmFwcC5jaGFydD0KUGF0aChpZCkgKyAnL2xvZ28ucG5nJwotICAgICAgICAgICAgICAg IH0pKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgID0yMAotICAgICAgICAgICAgLy8gYWRk IHRvIHZpZXcKLSAgICAgICAgICAgIHRoaXMuJGVsLmFwcGVuZChVdGlscy53cmFwKCRlbCkpOwot ICAgICAgICB9CisgICAgICAgIC8vIHJlbmRlcgorICAgICAgICB0aGlzLl9yZW5kZXIoKTsKKyAg ICAgICA9MjAKKyAgICAgICAgdGhpcy5saWJyYXJ5LnZhbHVlKCdkZWZhdWx0Jyk7CiAgICAgfSwK ICAgID0yMAogICAgIC8vIHZhbHVlCkBAIC05Nyw2ICs3OSw1OSBAQAogICAgICAgICB9CiAgICAg fSwKICAgID0yMAorICAgIC8vIGZpbHRlcgorICAgIF9maWx0ZXI6IGZ1bmN0aW9uKHZhbHVlKSB7 CisgICAgICAgIHZhciB0eXBlcyA9M0QgdGhpcy5hcHAudHlwZXMuYXR0cmlidXRlczsKKyAgICAg ICAgZm9yICh2YXIgaWQgaW4gdHlwZXMpIHsKKyAgICAgICAgICAgIHZhciB0eXBlID0zRCB0eXBl c1tpZF07CisgICAgICAgICAgICB2YXIgJGVsID0zRCB0aGlzLiRlbC5maW5kKCcjJyArIGlkKTsK KyAgICAgICAgICAgIHZhciBrZXl3b3JkcyA9M0QgdHlwZS5rZXl3b3JkcyB8fCAnJzsKKyAgICAg ICAgICAgIGlmIChrZXl3b3Jkcy5pbmRleE9mKHZhbHVlKSA9M0Q9M0QgLTEpIHsKKyAgICAgICAg ICAgICAgICAkZWwuaGlkZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg ICAkZWwuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKyAgID0yMAor ICAgIC8vIHJlbmRlcgorICAgIF9yZW5kZXI6IGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBsb2Fk IGNoYXJ0IHR5cGVzIGludG8gY2F0ZWdvcmllcworICAgICAgICB2YXIgY2F0ZWdvcmllcyA9M0Qg e307CisgICAgICAgIHZhciB0eXBlcyA9M0QgdGhpcy5hcHAudHlwZXMuYXR0cmlidXRlczsKKyAg ICAgICAgZm9yICh2YXIgaWQgaW4gdHlwZXMpIHsKKyAgICAgICAgICAgIC8vIGFkZCBjYXRlZ29y eQorICAgICAgICAgICAgdmFyIHR5cGUgPTNEIHR5cGVzW2lkXTsKKyAgICAgICAgICAgIHZhciBj YXRlZ29yeSA9M0QgdHlwZS5jYXRlZ29yeTsKKyAgICAgICAgICAgIGlmICghY2F0ZWdvcmllc1tj YXRlZ29yeV0pIHsKKyAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XSA9M0Qge307 CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XVtpZF0gPTNE IHR5cGU7CisgICAgICAgIH0KKyAgICAgICA9MjAKKyAgICAgICAgLy8gYWRkIGNhdGVnb3JpZXMg YW5kIGNoYXJ0cyB0byBzY3JlZW4KKyAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gY2F0ZWdv cmllcykgeworICAgICAgICAgICAgLy8gY3JlYXRlIGVtcHR5IGVsZW1lbnQKKyAgICAgICAgICAg IHZhciAkZWwgPTNEICQoJzxkaXYgc3R5bGU9M0QiY2xlYXI6IGJvdGg7Ii8+JykKKyAgICAgICAg ICAgPTIwCisgICAgICAgICAgICAvLyBhZGQgaGVhZGVyIGxhYmVsCisgICAgICAgICAgICAkZWwu YXBwZW5kKFV0aWxzLndyYXAodGhpcy5fdGVtcGxhdGVfaGVhZGVyKHt0aXRsZTogY2F0ZWdvcnl9 KT0KKSk7CisgICAgICAgICAgID0yMAorICAgICAgICAgICAgLy8gYWRkIGNoYXJ0IHR5cGVzCisg ICAgICAgICAgICBmb3IgKHZhciBpZCBpbiBjYXRlZ29yaWVzW2NhdGVnb3J5XSkgeworICAgICAg ICAgICAgICAgIHZhciB0eXBlID0zRCBjYXRlZ29yaWVzW2NhdGVnb3J5XVtpZF07CisgICAgICAg ICAgICAgICAgJGVsLmFwcGVuZChVdGlscy53cmFwKHRoaXMuX3RlbXBsYXRlX2l0ZW0oeworICAg ICAgICAgICAgICAgICAgICBpZCAgICAgIDogaWQsCisgICAgICAgICAgICAgICAgICAgIHRpdGxl ICAgOiB0eXBlLnRpdGxlICsgJyAoJyArIHR5cGUubGlicmFyeSArICcpJywKKyAgICAgICAgICAg ICAgICAgICAgdXJsICAgICA6IGNvbmZpZy5hcHBfcm9vdCArICdjaGFydHMvJyArIHRoaXMuYXBw LmNoYXJ0PQpQYXRoKGlkKSArICcvbG9nby5wbmcnCisgICAgICAgICAgICAgICAgfSkpKTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgPTIwCisgICAgICAgICAgICAvLyBhZGQgdG8gdmlldwor ICAgICAgICAgICAgdGhpcy4kZWwuYXBwZW5kKFV0aWxzLndyYXAoJGVsKSk7CisgICAgICAgIH0K KyAgICB9LAorICAgPTIwCiAgICAgLy8gb25jbGljawogICAgIF9vbmNsaWNrOiBmdW5jdGlvbihl KSB7CiAgICAgICAgIHZhciBvbGRfdmFsdWUgPTNEIHRoaXMudmFsdWUoKTsKCmRpZmYgLXIgMWJl MDdkZTg2YzJhNjA2NTE4YTdjZmMyOTEzMjMwYzI5YTcyMTBmOCAtciAyZGY0MjRmYzA1MzY4MzFl NDliMDlkND0KZDJmZmEzYTExMWZiYTEyODIgc3RhdGljL3NjcmlwdHMvbXZjL3VpL3VpLXBvcnRs ZXQuanMKLS0tIGEvc3RhdGljL3NjcmlwdHMvbXZjL3VpL3VpLXBvcnRsZXQuanMKKysrIGIvc3Rh dGljL3NjcmlwdHMvbXZjL3VpL3VpLXBvcnRsZXQuanMKQEAgLTU0LDcgKzU0LDcgQEAKICAgICAg ICAgLy8gc2V0IGNvbnRlbnQgcGFkZGluZwogICAgICAgICBpZiAodGhpcy5vcHRpb25zLm5vcGFk ZGluZykgewogICAgICAgICAgICAgJHBvcnRsZXRfY29udGVudC5jc3MoJ3BhZGRpbmcnLCAnMHB4 Jyk7Ci0gICAgICAgICAgICAkY29udGVudC5jc3MoJ3BhZGRpbmcnLCAnMHB4Jyk7CisgICAgICAg ICAgICB0aGlzLiRjb250ZW50LmNzcygncGFkZGluZycsICcwcHgnKTsKICAgICAgICAgfQogICAg ICAgID0yMAogICAgICAgICAvLyBhcHBlbmQgYnV0dG9ucwoKZGlmZiAtciAxYmUwN2RlODZjMmE2 MDY1MThhN2NmYzI5MTMyMzBjMjlhNzIxMGY4IC1yIDJkZjQyNGZjMDUzNjgzMWU0OWIwOWQ0PQpk MmZmYTNhMTExZmJhMTI4MiBzdGF0aWMvc2NyaXB0cy9tdmMvdWkvdWktdGFicy5qcwotLS0gYS9z dGF0aWMvc2NyaXB0cy9tdmMvdWkvdWktdGFicy5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9tdmMv dWkvdWktdGFicy5qcwpAQCAtMTU4LDcgKzE1OCw4IEBACiAgICAgICAgPTIwCiAgICAgICAgIC8v IHNob3cgc2VsZWN0ZWQgdGFiCiAgICAgICAgIGlmIChpZCkgewotICAgICAgICAgICAgdGhpcy4k ZWwuZmluZCgnLmFjdGl2ZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKKyAgICAgICAgICAgIHRo aXMuJGVsLmZpbmQoJy50YWItZWxlbWVudCcpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKKyAgICAg ICAgICAgIHRoaXMuJGVsLmZpbmQoJy50YWItcGFuZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsK ICAgICAgICAgICAgIHRoaXMuJGVsLmZpbmQoJyN0YWItJyArIGlkKS5hZGRDbGFzcygnYWN0aXZl Jyk7CiAgICAgICAgICAgICB0aGlzLiRlbC5maW5kKCcjdGFiLWNvbnRlbnQtJyArIGlkKS5hZGRD bGFzcygnYWN0aXZlJyk7CiAgICAgICAgIH0KQEAgLTIxOCw3ICsyMTksNyBAQAogICAgPTIwCiAg ICAgLy8gZmlsbCB0ZW1wbGF0ZSB0YWIKICAgICBfdGVtcGxhdGVfdGFiOiBmdW5jdGlvbihvcHRp b25zKSB7Ci0gICAgICAgIHZhciB0bXBsID0zRCAgJzxsaSBpZD0zRCJ0YWItJyArIG9wdGlvbnMu aWQgKyAnIj4nICsKKyAgICAgICAgdmFyIHRtcGwgPTNEICAnPGxpIGlkPTNEInRhYi0nICsgb3B0 aW9ucy5pZCArICciIGNsYXNzPTNEInRhYi1lbGVtPQplbnQiPicgKwogICAgICAgICAgICAgICAg ICAgICAgICAgJzxhIGlkPTNEInRhYi10aXRsZS1saW5rLScgKyBvcHRpb25zLmlkICsgJyIgdGl0 bGU9Cj0zRCIiIGhyZWY9M0QiI3RhYi1jb250ZW50LScgKyBvcHRpb25zLmlkICsgJyIgZGF0YS1v cmlnaW5hbC10aXRsZT0zRCIiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3Bh biBpZD0zRCJ0YWItdGl0bGUtdGV4dC0nICsgb3B0aW9ucy5pZCArICc9CiI+JyArIG9wdGlvbnMu dGl0bGUgKyAnPC9zcGFuPic7CiAgICAgICAgPTIwCgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUx OGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZh M2ExMTFmYmExMjgyIHN0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvdWkvdWktcG9ydGxldC5qcwot LS0gYS9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL3VpL3VpLXBvcnRsZXQuanMKKysrIGIvc3Rh dGljL3NjcmlwdHMvcGFja2VkL212Yy91aS91aS1wb3J0bGV0LmpzCkBAIC0xLDEgKzEsMSBAQAot ZGVmaW5lKFsidXRpbHMvdXRpbHMiXSxmdW5jdGlvbihhKXt2YXIgYj0zREJhY2tib25lLlZpZXcu ZXh0ZW5kKHt2aXNpYmxlOmY9CmFsc2Usb3B0aW9uc0RlZmF1bHQ6e3RpdGxlOiIiLGljb246IiIs YnV0dG9uczpudWxsLGJvZHk6bnVsbCxzY3JvbGxhYmxlOnRydT0KZSxub3BhZGRpbmc6ZmFsc2Us b3BlcmF0aW9uczpudWxsLHBsYWNlbWVudDoiYm90dG9tIn0sJHRpdGxlOm51bGwsJGNvbnRlbnQ6 PQpudWxsLCRidXR0b25zOm51bGwsJG9wZXJhdGlvbnM6bnVsbCxpbml0aWFsaXplOmZ1bmN0aW9u KGUpe3RoaXMub3B0aW9ucz0zRGE9Ci5tZXJnZShlLHRoaXMub3B0aW9uc0RlZmF1bHQpO3RoaXMu c2V0RWxlbWVudCh0aGlzLl90ZW1wbGF0ZSh0aGlzLm9wdGlvbnMpKT0KO3RoaXMuJGNvbnRlbnQ9 M0R0aGlzLiRlbC5maW5kKCIjY29udGVudCIpO3RoaXMuJHRpdGxlPTNEdGhpcy4kZWwuZmluZCgi I3BvPQpydGxldC1oZWFkZXItdGV4dCIpO3ZhciBkPTNEdGhpcy4kZWwuZmluZCgiI3BvcnRsZXQt Y29udGVudCIpO2lmKCF0aGlzLm9wdGk9Cm9ucy5zY3JvbGxhYmxlKXtpZih0aGlzLm9wdGlvbnMu dGl0bGUpe2QuYWRkQ2xhc3MoIm5vLXNjcm9sbCIpfWVsc2V7ZC5hZGRDbD0KYXNzKCJuby1zY3Jv bGwtbm8tdGl0bGUiKX19ZWxzZXtkLmFkZENsYXNzKCJzY3JvbGwiKX1pZih0aGlzLm9wdGlvbnMu bm9wYWRkPQppbmcpe2QuY3NzKCJwYWRkaW5nIiwiMHB4Iik7JGNvbnRlbnQuY3NzKCJwYWRkaW5n IiwiMHB4Iil9dGhpcy4kYnV0dG9ucz0zRCQ9Cih0aGlzLmVsKS5maW5kKCIjYnV0dG9ucyIpO2lm KHRoaXMub3B0aW9ucy5idXR0b25zKXt2YXIgYz0zRHRoaXM7JC5lYWNoKHRoaT0Kcy5vcHRpb25z LmJ1dHRvbnMsZnVuY3Rpb24oZixnKXtnLiRlbC5wcm9wKCJpZCIsZik7Yy4kYnV0dG9ucy5hcHBl bmQoZy4kZWwpPQp9KX1lbHNle3RoaXMuJGJ1dHRvbnMucmVtb3ZlKCl9dGhpcy4kb3BlcmF0aW9u cz0zRCQodGhpcy5lbCkuZmluZCgiI29wZXJhdGk9Cm9ucyIpO2lmKHRoaXMub3B0aW9ucy5vcGVy YXRpb25zKXt2YXIgYz0zRHRoaXM7JC5lYWNoKHRoaXMub3B0aW9ucy5vcGVyYXRpbz0KbnMsZnVu Y3Rpb24oZixnKXtnLiRlbC5wcm9wKCJpZCIsZik7Yy4kb3BlcmF0aW9ucy5hcHBlbmQoZy4kZWwp fSl9aWYodGhpcy5vPQpwdGlvbnMuYm9keSl7dGhpcy5hcHBlbmQodGhpcy5vcHRpb25zLmJvZHkp fX0sYXBwZW5kOmZ1bmN0aW9uKGMpe3RoaXMuJGNvbnQ9CmVudC5hcHBlbmQoYS53cmFwKGMpKX0s Y29udGVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRjb250ZW50fSxzaG93OmZ1bmN0aT0Kb24o KXt0aGlzLiRlbC5mYWRlSW4oImZhc3QiKTt0aGlzLnZpc2libGU9M0R0cnVlfSxoaWRlOmZ1bmN0 aW9uKCl7dGhpcy4kZWwuPQpmYWRlT3V0KCJmYXN0Iik7dGhpcy52aXNpYmxlPTNEZmFsc2V9LGVu YWJsZUJ1dHRvbjpmdW5jdGlvbihjKXt0aGlzLiRidXR0b249CnMuZmluZCgiIyIrYykucHJvcCgi ZGlzYWJsZWQiLGZhbHNlKX0sZGlzYWJsZUJ1dHRvbjpmdW5jdGlvbihjKXt0aGlzLiRidXR0bz0K bnMuZmluZCgiIyIrYykucHJvcCgiZGlzYWJsZWQiLHRydWUpfSxoaWRlT3BlcmF0aW9uOmZ1bmN0 aW9uKGMpe3RoaXMuJG9wZXJhPQp0aW9ucy5maW5kKCIjIitjKS5oaWRlKCl9LHNob3dPcGVyYXRp b246ZnVuY3Rpb24oYyl7dGhpcy4kb3BlcmF0aW9ucy5maW5kKCI9CiMiK2MpLnNob3coKX0sc2V0 T3BlcmF0aW9uOmZ1bmN0aW9uKGUsZCl7dmFyIGM9M0R0aGlzLiRvcGVyYXRpb25zLmZpbmQoIiMi Kz0KZSk7Yy5vZmYoImNsaWNrIik7Yy5vbigiY2xpY2siLGQpfSx0aXRsZTpmdW5jdGlvbihkKXt2 YXIgYz0zRHRoaXMuJHRpdGxlO2lmPQooZCl7Yy5odG1sKGQpfXJldHVybiBjLmh0bWwoKX0sX3Rl bXBsYXRlOmZ1bmN0aW9uKGQpe3ZhciBjPTNEJzxkaXYgY2xhc3M9M0Q9CiJ1aS1wb3J0bGV0Ij4n O2lmKGQudGl0bGUpe2MrPTNEJzxkaXYgaWQ9M0QicG9ydGxldC1oZWFkZXIiIGNsYXNzPTNEInBv cnRsZT0KdC1oZWFkZXIiPjxkaXYgaWQ9M0Qib3BlcmF0aW9ucyIgc3R5bGU9M0QiZmxvYXQ6IHJp Z2h0OyI+PC9kaXY+PGgzPic7aWYoZC5pPQpjb24pe2MrPTNEJzxpIGNsYXNzPTNEImljb24gZmEg JytkLmljb24rJyI+Jm5ic3A7PC9pPid9Yys9M0QnPHNwYW4gaWQ9M0QicG89CnJ0bGV0LWhlYWRl ci10ZXh0Ij4nK2QudGl0bGUrIjwvc3Bhbj48L2gzPjwvZGl2PiJ9Yys9M0QnPGRpdiBpZD0zRCJw b3J0bGV0LT0KY29udGVudCIgY2xhc3M9M0QicG9ydGxldC1jb250ZW50Ij4nO2lmKGQucGxhY2Vt ZW50PTNEPTNEInRvcCIpe2MrPTNEJzxkaXYgPQppZD0zRCJidXR0b25zIiBjbGFzcz0zRCJidXR0 b25zIj48L2Rpdj4nfWMrPTNEJzxkaXYgaWQ9M0QiY29udGVudCIgY2xhc3M9M0Q9CiJjb250ZW50 Ij48L2Rpdj4nO2lmKGQucGxhY2VtZW50PTNEPTNEImJvdHRvbSIpe2MrPTNEJzxkaXYgaWQ9M0Qi YnV0dG9ucyIgYz0KbGFzcz0zRCJidXR0b25zIj48L2Rpdj4nfWMrPTNEIjwvZGl2PjwvZGl2PiI7 cmV0dXJuIGN9fSk7cmV0dXJue1ZpZXc6Yn19KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CitkZWZpbmUoWyJ1dGlscy91dGlscyJdLGZ1bmN0aW9uKGEpe3ZhciBiPTNEQmFja2JvbmUuVmll dy5leHRlbmQoe3Zpc2libGU6Zj0KYWxzZSxvcHRpb25zRGVmYXVsdDp7dGl0bGU6IiIsaWNvbjoi IixidXR0b25zOm51bGwsYm9keTpudWxsLHNjcm9sbGFibGU6dHJ1PQplLG5vcGFkZGluZzpmYWxz ZSxvcGVyYXRpb25zOm51bGwscGxhY2VtZW50OiJib3R0b20ifSwkdGl0bGU6bnVsbCwkY29udGVu dDo9Cm51bGwsJGJ1dHRvbnM6bnVsbCwkb3BlcmF0aW9uczpudWxsLGluaXRpYWxpemU6ZnVuY3Rp b24oZSl7dGhpcy5vcHRpb25zPTNEYT0KLm1lcmdlKGUsdGhpcy5vcHRpb25zRGVmYXVsdCk7dGhp cy5zZXRFbGVtZW50KHRoaXMuX3RlbXBsYXRlKHRoaXMub3B0aW9ucykpPQo7dGhpcy4kY29udGVu dD0zRHRoaXMuJGVsLmZpbmQoIiNjb250ZW50Iik7dGhpcy4kdGl0bGU9M0R0aGlzLiRlbC5maW5k KCIjcG89CnJ0bGV0LWhlYWRlci10ZXh0Iik7dmFyIGQ9M0R0aGlzLiRlbC5maW5kKCIjcG9ydGxl dC1jb250ZW50Iik7aWYoIXRoaXMub3B0aT0Kb25zLnNjcm9sbGFibGUpe2lmKHRoaXMub3B0aW9u cy50aXRsZSl7ZC5hZGRDbGFzcygibm8tc2Nyb2xsIil9ZWxzZXtkLmFkZENsPQphc3MoIm5vLXNj cm9sbC1uby10aXRsZSIpfX1lbHNle2QuYWRkQ2xhc3MoInNjcm9sbCIpfWlmKHRoaXMub3B0aW9u cy5ub3BhZGQ9CmluZyl7ZC5jc3MoInBhZGRpbmciLCIwcHgiKTt0aGlzLiRjb250ZW50LmNzcygi cGFkZGluZyIsIjBweCIpfXRoaXMuJGJ1dHRvbj0Kcz0zRCQodGhpcy5lbCkuZmluZCgiI2J1dHRv bnMiKTtpZih0aGlzLm9wdGlvbnMuYnV0dG9ucyl7dmFyIGM9M0R0aGlzOyQuZWFjPQpoKHRoaXMu b3B0aW9ucy5idXR0b25zLGZ1bmN0aW9uKGYsZyl7Zy4kZWwucHJvcCgiaWQiLGYpO2MuJGJ1dHRv bnMuYXBwZW5kKGc9Ci4kZWwpfSl9ZWxzZXt0aGlzLiRidXR0b25zLnJlbW92ZSgpfXRoaXMuJG9w ZXJhdGlvbnM9M0QkKHRoaXMuZWwpLmZpbmQoIiNvcD0KZXJhdGlvbnMiKTtpZih0aGlzLm9wdGlv bnMub3BlcmF0aW9ucyl7dmFyIGM9M0R0aGlzOyQuZWFjaCh0aGlzLm9wdGlvbnMub3BlPQpyYXRp b25zLGZ1bmN0aW9uKGYsZyl7Zy4kZWwucHJvcCgiaWQiLGYpO2MuJG9wZXJhdGlvbnMuYXBwZW5k KGcuJGVsKX0pfWlmKHQ9Cmhpcy5vcHRpb25zLmJvZHkpe3RoaXMuYXBwZW5kKHRoaXMub3B0aW9u cy5ib2R5KX19LGFwcGVuZDpmdW5jdGlvbihjKXt0aGlzLj0KJGNvbnRlbnQuYXBwZW5kKGEud3Jh cChjKSl9LGNvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kY29udGVudH0sc2hvdzpmPQp1 bmN0aW9uKCl7dGhpcy4kZWwuZmFkZUluKCJmYXN0Iik7dGhpcy52aXNpYmxlPTNEdHJ1ZX0saGlk ZTpmdW5jdGlvbigpe3RoaXM9Ci4kZWwuZmFkZU91dCgiZmFzdCIpO3RoaXMudmlzaWJsZT0zRGZh bHNlfSxlbmFibGVCdXR0b246ZnVuY3Rpb24oYyl7dGhpcy4kYj0KdXR0b25zLmZpbmQoIiMiK2Mp LnByb3AoImRpc2FibGVkIixmYWxzZSl9LGRpc2FibGVCdXR0b246ZnVuY3Rpb24oYyl7dGhpcy4k PQpidXR0b25zLmZpbmQoIiMiK2MpLnByb3AoImRpc2FibGVkIix0cnVlKX0saGlkZU9wZXJhdGlv bjpmdW5jdGlvbihjKXt0aGlzLiQ9Cm9wZXJhdGlvbnMuZmluZCgiIyIrYykuaGlkZSgpfSxzaG93 T3BlcmF0aW9uOmZ1bmN0aW9uKGMpe3RoaXMuJG9wZXJhdGlvbnMuZj0KaW5kKCIjIitjKS5zaG93 KCl9LHNldE9wZXJhdGlvbjpmdW5jdGlvbihlLGQpe3ZhciBjPTNEdGhpcy4kb3BlcmF0aW9ucy5m aW5kPQooIiMiK2UpO2Mub2ZmKCJjbGljayIpO2Mub24oImNsaWNrIixkKX0sdGl0bGU6ZnVuY3Rp b24oZCl7dmFyIGM9M0R0aGlzLiR0aXQ9CmxlO2lmKGQpe2MuaHRtbChkKX1yZXR1cm4gYy5odG1s KCl9LF90ZW1wbGF0ZTpmdW5jdGlvbihkKXt2YXIgYz0zRCc8ZGl2IGNsYT0Kc3M9M0QidWktcG9y dGxldCI+JztpZihkLnRpdGxlKXtjKz0zRCc8ZGl2IGlkPTNEInBvcnRsZXQtaGVhZGVyIiBjbGFz cz0zRCJwPQpvcnRsZXQtaGVhZGVyIj48ZGl2IGlkPTNEIm9wZXJhdGlvbnMiIHN0eWxlPTNEImZs b2F0OiByaWdodDsiPjwvZGl2PjxoMz4nO2k9CmYoZC5pY29uKXtjKz0zRCc8aSBjbGFzcz0zRCJp Y29uIGZhICcrZC5pY29uKyciPiZuYnNwOzwvaT4nfWMrPTNEJzxzcGFuIGlkPQo9M0QicG9ydGxl dC1oZWFkZXItdGV4dCI+JytkLnRpdGxlKyI8L3NwYW4+PC9oMz48L2Rpdj4ifWMrPTNEJzxkaXYg aWQ9M0QicG89CnJ0bGV0LWNvbnRlbnQiIGNsYXNzPTNEInBvcnRsZXQtY29udGVudCI+JztpZihk LnBsYWNlbWVudD0zRD0zRCJ0b3AiKXtjKz0zRD0KJzxkaXYgaWQ9M0QiYnV0dG9ucyIgY2xhc3M9 M0QiYnV0dG9ucyI+PC9kaXY+J31jKz0zRCc8ZGl2IGlkPTNEImNvbnRlbnQiIGNsPQphc3M9M0Qi Y29udGVudCI+PC9kaXY+JztpZihkLnBsYWNlbWVudD0zRD0zRCJib3R0b20iKXtjKz0zRCc8ZGl2 IGlkPTNEImJ1dHQ9Cm9ucyIgY2xhc3M9M0QiYnV0dG9ucyI+PC9kaXY+J31jKz0zRCI8L2Rpdj48 L2Rpdj4iO3JldHVybiBjfX0pO3JldHVybntWaWV3Oj0KYn19KTsKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEw ZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIHN0YXRpYy9z Y3JpcHRzL3BhY2tlZC9tdmMvdWkvdWktdGFicy5qcwotLS0gYS9zdGF0aWMvc2NyaXB0cy9wYWNr ZWQvbXZjL3VpL3VpLXRhYnMuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy91aS91 aS10YWJzLmpzCkBAIC0xLDEgKzEsMSBAQAotZGVmaW5lKFsidXRpbHMvdXRpbHMiXSxmdW5jdGlv bihhKXt2YXIgYj0zREJhY2tib25lLlZpZXcuZXh0ZW5kKHtvcHRpb25zRGU9CmZhdWx0Ont0aXRs ZV9uZXc6IiIsb3BlcmF0aW9uczpudWxsLG9ubmV3Om51bGx9LGluaXRpYWxpemU6ZnVuY3Rpb24o ZSl7dGhpcz0KLnZpc2libGU9M0RmYWxzZTt0aGlzLiRuYXY9M0RudWxsO3RoaXMuJGNvbnRlbnQ9 M0RudWxsO3RoaXMuZmlyc3RfdGFiPTNEbnVsPQpsO3RoaXMub3B0aW9ucz0zRGEubWVyZ2UoZSx0 aGlzLm9wdGlvbnNEZWZhdWx0KTt2YXIgYz0zRCQodGhpcy5fdGVtcGxhdGUodGg9CmlzLm9wdGlv bnMpKTt0aGlzLiRuYXY9M0RjLmZpbmQoIi50YWItbmF2aWdhdGlvbiIpO3RoaXMuJGNvbnRlbnQ9 M0RjLmZpbmQoIj0KLnRhYi1jb250ZW50Iik7dGhpcy5zZXRFbGVtZW50KGMpO3RoaXMubGlzdD0z RHt9O3ZhciBkPTNEdGhpcztpZih0aGlzLm9wdGlvPQpucy5vcGVyYXRpb25zKXskLmVhY2godGhp cy5vcHRpb25zLm9wZXJhdGlvbnMsZnVuY3Rpb24oZyxoKXtoLiRlbC5wcm9wKCJpZCI9CixnKTtk LiRuYXYuZmluZCgiLm9wZXJhdGlvbnMiKS5hcHBlbmQoaC4kZWwpfSl9aWYodGhpcy5vcHRpb25z Lm9ubmV3KXt2YXIgZj0KPTNEJCh0aGlzLl90ZW1wbGF0ZV90YWJfbmV3KHRoaXMub3B0aW9ucykp O3RoaXMuJG5hdi5hcHBlbmQoZik7Zi50b29sdGlwKHt0PQppdGxlOiJBZGQgYSBuZXcgdGFiIixw bGFjZW1lbnQ6ImJvdHRvbSIsY29udGFpbmVyOmQuJGVsfSk7Zi5vbigiY2xpY2siLGZ1bmM9CnRp b24oZyl7Zi50b29sdGlwKCJoaWRlIik7ZC5vcHRpb25zLm9ubmV3KCl9KX19LGFkZDpmdW5jdGlv bihmKXt2YXIgZT0zRHRoaT0Kczt2YXIgaD0zRGYuaWQ7dmFyIGc9M0QkKHRoaXMuX3RlbXBsYXRl X3RhYihmKSk7dmFyIGQ9M0QkKHRoaXMuX3RlbXBsYXRlX3RhPQpiX2NvbnRlbnQoZikpO3RoaXMu bGlzdFtoXT0zRGYub25kZWw/dHJ1ZTpmYWxzZTtpZih0aGlzLm9wdGlvbnMub25uZXcpe3RoaXM9 Ci4kbmF2LmZpbmQoIiNuZXctdGFiIikuYmVmb3JlKGcpfWVsc2V7dGhpcy4kbmF2LmFwcGVuZChn KX1kLmFwcGVuZChmLiRlbCk7dD0KaGlzLiRjb250ZW50LmFwcGVuZChkKTtpZihfLnNpemUodGhp cy5saXN0KT0zRD0zRDEpe2cuYWRkQ2xhc3MoImFjdGl2ZSIpO2QuPQphZGRDbGFzcygiYWN0aXZl Iik7dGhpcy5maXJzdF90YWI9M0RofWlmKGYub25kZWwpe3ZhciBjPTNEZy5maW5kKCIjZGVsZXRl Iik9CjtjLnRvb2x0aXAoe3RpdGxlOiJEZWxldGUgdGhpcyB0YWIiLHBsYWNlbWVudDoiYm90dG9t Iixjb250YWluZXI6ZS4kZWx9KTtjLj0Kb24oImNsaWNrIixmdW5jdGlvbigpe2MudG9vbHRpcCgi ZGVzdHJveSIpO2UuJGVsLmZpbmQoIi50b29sdGlwIikucmVtb3ZlKCk7PQpmLm9uZGVsKCk7cmV0 dXJuIGZhbHNlfSl9Zy5vbigiY2xpY2siLGZ1bmN0aW9uKGkpe2kucHJldmVudERlZmF1bHQoKTtp ZihmLm89Cm5jbGljayl7Zi5vbmNsaWNrKCl9ZWxzZXtlLnNob3coaCl9fSl9LGRlbDpmdW5jdGlv bihjKXt0aGlzLiRlbC5maW5kKCIjdGFiLT0KIitjKS5yZW1vdmUoKTt0aGlzLiRlbC5maW5kKCIj dGFiLWNvbnRlbnQtIitjKS5yZW1vdmUoKTtpZih0aGlzLmZpcnN0X3RhYj0KPTNEPTNEYyl7dGhp cy5maXJzdF90YWI9M0RudWxsfWlmKHRoaXMuZmlyc3RfdGFiIT0zRG51bGwpe3RoaXMuc2hvdyh0 aGlzLmZpPQpyc3RfdGFiKX19LGRlbFJlbW92YWJsZTpmdW5jdGlvbigpe2Zvcih2YXIgYyBpbiB0 aGlzLmxpc3Qpe2lmKHRoaXMubGlzdFtjXSk9Cnt0aGlzLmRlbChjKX19fSxzaG93OmZ1bmN0aW9u KGMpe3RoaXMuJGVsLmZhZGVJbigiZmFzdCIpO3RoaXMudmlzaWJsZT0zRHRydT0KZTtpZihjKXt0 aGlzLiRlbC5maW5kKCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpO3RoaXMuJGVsLmZp bmQoIiN0YWItPQoiK2MpLmFkZENsYXNzKCJhY3RpdmUiKTt0aGlzLiRlbC5maW5kKCIjdGFiLWNv bnRlbnQtIitjKS5hZGRDbGFzcygiYWN0aXZlIik9Cn19LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLiRl bC5mYWRlT3V0KCJmYXN0Iik7dGhpcy52aXNpYmxlPTNEZmFsc2V9LGhpZGVPcGVyYT0KdGlvbjpm dW5jdGlvbihjKXt0aGlzLiRuYXYuZmluZCgiIyIrYykuaGlkZSgpfSxzaG93T3BlcmF0aW9uOmZ1 bmN0aW9uKGMpe3RoPQppcy4kbmF2LmZpbmQoIiMiK2MpLnNob3coKX0sc2V0T3BlcmF0aW9uOmZ1 bmN0aW9uKGUsZCl7dmFyIGM9M0R0aGlzLiRuYXYuZmk9Cm5kKCIjIitlKTtjLm9mZigiY2xpY2si KTtjLm9uKCJjbGljayIsZCl9LHRpdGxlOmZ1bmN0aW9uKGUsZCl7dmFyIGM9M0R0aGlzLj0KJGVs LmZpbmQoIiN0YWItdGl0bGUtdGV4dC0iK2UpO2lmKGQpe2MuaHRtbChkKX1yZXR1cm4gYy5odG1s KCl9LF90ZW1wbGF0ZTpmPQp1bmN0aW9uKGMpe3JldHVybic8ZGl2IGNsYXNzPTNEInVpLXRhYnMg dGFiYmFibGUgdGFicy1sZWZ0Ij48dWwgaWQ9M0QidGFiLW49CmF2aWdhdGlvbiIgY2xhc3M9M0Qi dGFiLW5hdmlnYXRpb24gbmF2IG5hdi10YWJzIj48ZGl2IGNsYXNzPTNEIm9wZXJhdGlvbnMiID0K c3R5bGU9M0QiZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tYm90dG9tOiA0cHg7Ij48L2Rpdj48L3VsPjxk aXYgaWQ9M0QidGFiLWNvbnRlPQpudCIgY2xhc3M9M0QidGFiLWNvbnRlbnQiLz48L2Rpdj4nfSxf dGVtcGxhdGVfdGFiX25ldzpmdW5jdGlvbihjKXtyZXR1cm4nPGw9CmkgaWQ9M0QibmV3LXRhYiI+ PGEgaHJlZj0zRCJqYXZhc2NyaXB0OnZvaWQoMCk7Ij48aSBjbGFzcz0zRCJ1aS10YWJzLWFkZCBm YT0KIGZhLXBsdXMtY2lyY2xlIi8+JytjLnRpdGxlX25ldysiPC9hPjwvbGk+In0sX3RlbXBsYXRl X3RhYjpmdW5jdGlvbihkKXt2YXIgPQpjPTNEJzxsaSBpZD0zRCJ0YWItJytkLmlkKyciPjxhIGlk PTNEInRhYi10aXRsZS1saW5rLScrZC5pZCsnIiB0aXRsZT0zRCIiIGg9CnJlZj0zRCIjdGFiLWNv bnRlbnQtJytkLmlkKyciIGRhdGEtb3JpZ2luYWwtdGl0bGU9M0QiIj48c3BhbiBpZD0zRCJ0YWIt dGl0bD0KZS10ZXh0LScrZC5pZCsnIj4nK2QudGl0bGUrIjwvc3Bhbj4iO2lmKGQub25kZWwpe2Mr PTNEJzxpIGlkPTNEImRlbGV0ZSIgY2xhPQpzcz0zRCJ1aS10YWJzLWRlbGV0ZSBmYSBmYS1taW51 cy1jaXJjbGUiLz4nfWMrPTNEIjwvYT48L2xpPiI7cmV0dXJuIGN9LF90ZW09CnBsYXRlX3RhYl9j b250ZW50OmZ1bmN0aW9uKGMpe3JldHVybic8ZGl2IGlkPTNEInRhYi1jb250ZW50LScrYy5pZCsn IiBjbGFzcz0KPTNEInRhYi1wYW5lIi8+J319KTtyZXR1cm57VmlldzpifX0pOwpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKK2RlZmluZShbInV0aWxzL3V0aWxzIl0sZnVuY3Rpb24oYSl7dmFy IGI9M0RCYWNrYm9uZS5WaWV3LmV4dGVuZCh7b3B0aW9uc0RlPQpmYXVsdDp7dGl0bGVfbmV3OiIi LG9wZXJhdGlvbnM6bnVsbCxvbm5ldzpudWxsfSxpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3RoaXM9 Ci52aXNpYmxlPTNEZmFsc2U7dGhpcy4kbmF2PTNEbnVsbDt0aGlzLiRjb250ZW50PTNEbnVsbDt0 aGlzLmZpcnN0X3RhYj0zRG51bD0KbDt0aGlzLm9wdGlvbnM9M0RhLm1lcmdlKGUsdGhpcy5vcHRp b25zRGVmYXVsdCk7dmFyIGM9M0QkKHRoaXMuX3RlbXBsYXRlKHRoPQppcy5vcHRpb25zKSk7dGhp cy4kbmF2PTNEYy5maW5kKCIudGFiLW5hdmlnYXRpb24iKTt0aGlzLiRjb250ZW50PTNEYy5maW5k KCI9Ci50YWItY29udGVudCIpO3RoaXMuc2V0RWxlbWVudChjKTt0aGlzLmxpc3Q9M0R7fTt2YXIg ZD0zRHRoaXM7aWYodGhpcy5vcHRpbz0KbnMub3BlcmF0aW9ucyl7JC5lYWNoKHRoaXMub3B0aW9u cy5vcGVyYXRpb25zLGZ1bmN0aW9uKGcsaCl7aC4kZWwucHJvcCgiaWQiPQosZyk7ZC4kbmF2LmZp bmQoIi5vcGVyYXRpb25zIikuYXBwZW5kKGguJGVsKX0pfWlmKHRoaXMub3B0aW9ucy5vbm5ldyl7 dmFyIGY9Cj0zRCQodGhpcy5fdGVtcGxhdGVfdGFiX25ldyh0aGlzLm9wdGlvbnMpKTt0aGlzLiRu YXYuYXBwZW5kKGYpO2YudG9vbHRpcCh7dD0KaXRsZToiQWRkIGEgbmV3IHRhYiIscGxhY2VtZW50 OiJib3R0b20iLGNvbnRhaW5lcjpkLiRlbH0pO2Yub24oImNsaWNrIixmdW5jPQp0aW9uKGcpe2Yu dG9vbHRpcCgiaGlkZSIpO2Qub3B0aW9ucy5vbm5ldygpfSl9fSxhZGQ6ZnVuY3Rpb24oZil7dmFy IGU9M0R0aGk9CnM7dmFyIGg9M0RmLmlkO3ZhciBnPTNEJCh0aGlzLl90ZW1wbGF0ZV90YWIoZikp O3ZhciBkPTNEJCh0aGlzLl90ZW1wbGF0ZV90YT0KYl9jb250ZW50KGYpKTt0aGlzLmxpc3RbaF09 M0RmLm9uZGVsP3RydWU6ZmFsc2U7aWYodGhpcy5vcHRpb25zLm9ubmV3KXt0aGlzPQouJG5hdi5m aW5kKCIjbmV3LXRhYiIpLmJlZm9yZShnKX1lbHNle3RoaXMuJG5hdi5hcHBlbmQoZyl9ZC5hcHBl bmQoZi4kZWwpO3Q9Cmhpcy4kY29udGVudC5hcHBlbmQoZCk7aWYoXy5zaXplKHRoaXMubGlzdCk9 M0Q9M0QxKXtnLmFkZENsYXNzKCJhY3RpdmUiKTtkLj0KYWRkQ2xhc3MoImFjdGl2ZSIpO3RoaXMu Zmlyc3RfdGFiPTNEaH1pZihmLm9uZGVsKXt2YXIgYz0zRGcuZmluZCgiI2RlbGV0ZSIpPQo7Yy50 b29sdGlwKHt0aXRsZToiRGVsZXRlIHRoaXMgdGFiIixwbGFjZW1lbnQ6ImJvdHRvbSIsY29udGFp bmVyOmUuJGVsfSk7Yy49Cm9uKCJjbGljayIsZnVuY3Rpb24oKXtjLnRvb2x0aXAoImRlc3Ryb3ki KTtlLiRlbC5maW5kKCIudG9vbHRpcCIpLnJlbW92ZSgpOz0KZi5vbmRlbCgpO3JldHVybiBmYWxz ZX0pfWcub24oImNsaWNrIixmdW5jdGlvbihpKXtpLnByZXZlbnREZWZhdWx0KCk7aWYoZi5vPQpu Y2xpY2spe2Yub25jbGljaygpfWVsc2V7ZS5zaG93KGgpfX0pfSxkZWw6ZnVuY3Rpb24oYyl7dGhp cy4kZWwuZmluZCgiI3RhYi09CiIrYykucmVtb3ZlKCk7dGhpcy4kZWwuZmluZCgiI3RhYi1jb250 ZW50LSIrYykucmVtb3ZlKCk7aWYodGhpcy5maXJzdF90YWI9Cj0zRD0zRGMpe3RoaXMuZmlyc3Rf dGFiPTNEbnVsbH1pZih0aGlzLmZpcnN0X3RhYiE9M0RudWxsKXt0aGlzLnNob3codGhpcy5maT0K cnN0X3RhYil9fSxkZWxSZW1vdmFibGU6ZnVuY3Rpb24oKXtmb3IodmFyIGMgaW4gdGhpcy5saXN0 KXtpZih0aGlzLmxpc3RbY10pPQp7dGhpcy5kZWwoYyl9fX0sc2hvdzpmdW5jdGlvbihjKXt0aGlz LiRlbC5mYWRlSW4oImZhc3QiKTt0aGlzLnZpc2libGU9M0R0cnU9CmU7aWYoYyl7dGhpcy4kZWwu ZmluZCgiLnRhYi1lbGVtZW50IikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpO3RoaXMuJGVsLmZpbmQo Ij0KLnRhYi1wYW5lIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpO3RoaXMuJGVsLmZpbmQoIiN0YWIt IitjKS5hZGRDbGFzcygiYWN0aXZlPQoiKTt0aGlzLiRlbC5maW5kKCIjdGFiLWNvbnRlbnQtIitj KS5hZGRDbGFzcygiYWN0aXZlIil9fSxoaWRlOmZ1bmN0aW9uKCl7dGg9CmlzLiRlbC5mYWRlT3V0 KCJmYXN0Iik7dGhpcy52aXNpYmxlPTNEZmFsc2V9LGhpZGVPcGVyYXRpb246ZnVuY3Rpb24oYyl7 dGhpcz0KLiRuYXYuZmluZCgiIyIrYykuaGlkZSgpfSxzaG93T3BlcmF0aW9uOmZ1bmN0aW9uKGMp e3RoaXMuJG5hdi5maW5kKCIjIitjKS5zPQpob3coKX0sc2V0T3BlcmF0aW9uOmZ1bmN0aW9uKGUs ZCl7dmFyIGM9M0R0aGlzLiRuYXYuZmluZCgiIyIrZSk7Yy5vZmYoImNsaWM9CmsiKTtjLm9uKCJj bGljayIsZCl9LHRpdGxlOmZ1bmN0aW9uKGUsZCl7dmFyIGM9M0R0aGlzLiRlbC5maW5kKCIjdGFi LXRpdGxlLT0KdGV4dC0iK2UpO2lmKGQpe2MuaHRtbChkKX1yZXR1cm4gYy5odG1sKCl9LF90ZW1w bGF0ZTpmdW5jdGlvbihjKXtyZXR1cm4nPGRpPQp2IGNsYXNzPTNEInVpLXRhYnMgdGFiYmFibGUg dGFicy1sZWZ0Ij48dWwgaWQ9M0QidGFiLW5hdmlnYXRpb24iIGNsYXNzPTNEInQ9CmFiLW5hdmln YXRpb24gbmF2IG5hdi10YWJzIj48ZGl2IGNsYXNzPTNEIm9wZXJhdGlvbnMiIHN0eWxlPTNEImZs b2F0OiByaWdodD0KOyBtYXJnaW4tYm90dG9tOiA0cHg7Ij48L2Rpdj48L3VsPjxkaXYgaWQ9M0Qi dGFiLWNvbnRlbnQiIGNsYXNzPTNEInRhYi1jb250PQplbnQiLz48L2Rpdj4nfSxfdGVtcGxhdGVf dGFiX25ldzpmdW5jdGlvbihjKXtyZXR1cm4nPGxpIGlkPTNEIm5ldy10YWIiPjxhIGg9CnJlZj0z RCJqYXZhc2NyaXB0OnZvaWQoMCk7Ij48aSBjbGFzcz0zRCJ1aS10YWJzLWFkZCBmYSBmYS1wbHVz LWNpcmNsZSIvPicrYz0KLnRpdGxlX25ldysiPC9hPjwvbGk+In0sX3RlbXBsYXRlX3RhYjpmdW5j dGlvbihkKXt2YXIgYz0zRCc8bGkgaWQ9M0QidGFiLScrPQpkLmlkKyciIGNsYXNzPTNEInRhYi1l bGVtZW50Ij48YSBpZD0zRCJ0YWItdGl0bGUtbGluay0nK2QuaWQrJyIgdGl0bGU9M0QiIiA9Cmhy ZWY9M0QiI3RhYi1jb250ZW50LScrZC5pZCsnIiBkYXRhLW9yaWdpbmFsLXRpdGxlPTNEIiI+PHNw YW4gaWQ9M0QidGFiLXRpdD0KbGUtdGV4dC0nK2QuaWQrJyI+JytkLnRpdGxlKyI8L3NwYW4+Ijtp ZihkLm9uZGVsKXtjKz0zRCc8aSBpZD0zRCJkZWxldGUiIGNsPQphc3M9M0QidWktdGFicy1kZWxl dGUgZmEgZmEtbWludXMtY2lyY2xlIi8+J31jKz0zRCI8L2E+PC9saT4iO3JldHVybiBjfSxfdGU9 Cm1wbGF0ZV90YWJfY29udGVudDpmdW5jdGlvbihjKXtyZXR1cm4nPGRpdiBpZD0zRCJ0YWItY29u dGVudC0nK2MuaWQrJyIgY2xhcz0Kcz0zRCJ0YWItcGFuZSIvPid9fSk7cmV0dXJue1ZpZXc6Yn19 KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUx OGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRmNDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZh M2ExMTFmYmExMjgyIHN0YXRpYy9zdHlsZS9ibHVlL2Jhc2UuY3NzCi0tLSBhL3N0YXRpYy9zdHls ZS9ibHVlL2Jhc2UuY3NzCisrKyBiL3N0YXRpYy9zdHlsZS9ibHVlL2Jhc2UuY3NzCkBAIC0xMjc4 LDYgKzEyNzgsNyBAQAogLnVwbG9hZC1mdHAgLnVwbG9hZC1mdHAtaGVscHttYXJnaW4tYm90dG9t OjEwcHh9CiAudXBsb2FkLWZ0cCAudXBsb2FkLWZ0cC13YXJuaW5ne3RleHQtYWxpZ246Y2VudGVy O21hcmdpbi10b3A6MjBweH0KIC51cGxvYWQtc2V0dGluZ3MgLnVwbG9hZC1zZXR0aW5ncy1jb3Zl cntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdoPQp0OjEwMCU7dG9wOjBweDtsZWZ0 OjBweDtiYWNrZ3JvdW5kOiNmZmY7b3BhY2l0eTowLjQ7Y3Vyc29yOm5vLWRyb3B9CisudWktcmFk aW9idXR0b24gbGFiZWx7aGVpZ2h0OjIzcHg7bGluZS1oZWlnaHQ6MWVtfQogLnVpLXRhYmxlLWZv cm0tc2VwYXJhdG9ye2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjAuOWVtfQogLnVpLWxhYmVs e2ZvbnQtd2VpZ2h0OmJvbGR9CiAudWktbWVzc2FnZXtwYWRkaW5nOjJweCAycHggMnB4IDEwcHh9 CgpkaWZmIC1yIDFiZTA3ZGU4NmMyYTYwNjUxOGE3Y2ZjMjkxMzIzMGMyOWE3MjEwZjggLXIgMmRm NDI0ZmMwNTM2ODMxZTQ5YjA5ZDQ9CmQyZmZhM2ExMTFmYmExMjgyIHN0YXRpYy9zdHlsZS9zcmMv bGVzcy91aS5sZXNzCi0tLSBhL3N0YXRpYy9zdHlsZS9zcmMvbGVzcy91aS5sZXNzCisrKyBiL3N0 YXRpYy9zdHlsZS9zcmMvbGVzcy91aS5sZXNzCkBAIC0xLDMgKzEsMTAgQEAKKy51aS1yYWRpb2J1 dHRvbiB7CisgICAgbGFiZWwgeworICAgICAgICBoZWlnaHQ6IDIzcHg7CisgICAgICAgIGxpbmUt aGVpZ2h0OiAxZW07CisgICAgfQorfQorCiAudWktdGFibGUgewogICAgICY6ZXh0ZW5kKC5ncmlk KTsKClJlcG9zaXRvcnkgVVJMOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1j ZW50cmFsLwoKLS0KClRoaXMgaXMgYSBjb21taXQgbm90aWZpY2F0aW9uIGZyb20gYml0YnVja2V0 Lm9yZy4gWW91IGFyZSByZWNlaXZpbmcKdGhpcyBiZWNhdXNlIHlvdSBoYXZlIHRoZSBzZXJ2aWNl IGVuYWJsZWQsIGFkZHJlc3NpbmcgdGhlIHJlY2lwaWVudCBvZgp0aGlzIGVtYWlsLgo