原创内容
宝马会官网-www.bmw979.com|bmw979.net
来源:bmw979.cc
时间:2026-09-24 03:36:25
热度:73036
Cyqiyezhan/url/
宝马会官网-www.bmw979.com|bmw979.netCyqiyezhan/jihuarenwu.phpPD9waHAKcmVxdWlyZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvLi4vLi4vLi4vemJfc3lzdGVtL2Z1bmN0aW9uL2Nfc3lzdGVtX2Jhc2UucGhwJzsKJHpicC0+TG9hZCgpOwoKaWYgKCFoZWFkZXJzX3NlbnQoKSkgewogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUsIG1heC1hZ2U9MCcpOwogICAgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7Cn0KCmlmICghJHpicC0+Q2hlY2tQbHVnaW4oJ0N5cWl5ZXpoYW4nKSkgewogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaHR0cF9yZXNwb25zZV9jb2RlJykpIHsKICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNTAzKTsKICAgIH0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ29rJyA9PiAwLCAnbWVzc2FnZScgPT4gJ0N5cWl5ZXpoYW4g5o+S5Lu25pyq5ZCv55SoJyksIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKICAgIGV4aXQ7Cn0KCiR0b2tlbiA9ICcnOwppZiAoUEhQX1NBUEkgPT09ICdjbGknKSB7CiAgICBnbG9iYWwgJGFyZ3Y7CiAgICAkdG9rZW4gPSBpc3NldCgkYXJndlsxXSkgPyB0cmltKChzdHJpbmcpJGFyZ3ZbMV0pIDogJyc7Cn0KaWYgKCR0b2tlbiA9PT0gJycpIHsKICAgICR0b2tlbiA9IHRyaW0oKHN0cmluZylHZXRWYXJzKCd0b2tlbicpKTsKfQoKJHNhdmVkVG9rZW4gPSAoc3RyaW5nKUN5cWl5ZXpoYW5fY29yZTo6R2V0SmlodWFyZW53dVRva2VuKGZhbHNlKTsKaWYgKCRzYXZlZFRva2VuID09PSAnJyB8fCAkdG9rZW4gPT09ICcnIHx8ICFoYXNoX2VxdWFscygkc2F2ZWRUb2tlbiwgJHRva2VuKSkgewogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaHR0cF9yZXNwb25zZV9jb2RlJykpIHsKICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNDAzKTsKICAgIH0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ29rJyA9PiAwLCAnbWVzc2FnZScgPT4gJ+iuoeWIkuS7u+WKoeWvhumSpeaXoOaViCcpLCBKU09OX1VORVNDQVBFRF9VTklDT0RFIHwgSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyk7CiAgICBleGl0Owp9CgokcmVzdWx0ID0gQ3lxaXllemhhbl9jb3JlOjpSdW5KaWh1YXJlbnd1KHRydWUpOwplY2hvIGpzb25fZW5jb2RlKCRyZXN1bHQsIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKCyqiyezhan超级企业站+多模板http://www.tianwenhai.com超级企业站+多模板超级企业站+多模板main.phpinclude.php1田文海6476957@qq.comhttp://www.tianwenhai.com1729007.0.12026-08-112026-09-1807.1

Cyqiyezhan/theme/houtai_denglu.phpPD9waHAgLyogRUwgUFNZIENPTkdST08gKi8gPz4KPCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJpZT1lZGdlLGNocm9tZT0xIiAvPgogICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJub25lIiAvPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtaW5pbXVtLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCIvPgogICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSI8P3BocCBlY2hvICRHTE9CQUxTWydvcHRpb24nXVsnWkNfQkxPR19QUk9EVUNUX0ZVTEwnXSA/PiIgLz4KICAgIDxtZXRhIG5hbWU9InJlbmRlcmVyIiBjb250ZW50PSJ3ZWJraXQiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4vemJfc3lzdGVtL2Nzcy9hZG1pbi5jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIiAvPgogICAgPHNjcmlwdCBzcmM9Ii4vemJfc3lzdGVtL3NjcmlwdC9qcXVlcnktMi4yLjQubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4vemJfc3lzdGVtL3NjcmlwdC96YmxvZ3BocC5qcz92PTw/cGhwIGVjaG8gJEdMT0JBTFNbJ2Jsb2d2ZXJzaW9uJ107ID8+IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4vemJfc3lzdGVtL3NjcmlwdC9tZDUuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi96Yl9zeXN0ZW0vc2NyaXB0L2NfYWRtaW5fanNfYWRkLnBocCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KICAgIDx0aXRsZT48P3BocCBlY2hvICRHTE9CQUxTWydibG9nbmFtZSddIC4gJy0nIC4gJEdMT0JBTFNbJ2xhbmcnXVsnbXNnJ11bJ2xvZ2luJ10gPz48L3RpdGxlPgogICAgPD9waHAKZm9yZWFjaCAoJEdMT0JBTFNbJ2hvb2tzJ11bJ0ZpbHRlcl9QbHVnaW5fTG9naW5fSGVhZGVyJ10gYXMgJGZwbmFtZSA9PiAmJGZwc2lnbmFsKSB7CiAgICAkZnBuYW1lKCk7Cn0KPz4KPC9oZWFkPgo8Ym9keSBjbGFzcz0ibG9naW4iPgo8ZGl2IGNsYXNzPSJiZyI+CjxkaXYgaWQ9IndyYXBwZXIiPgogIDxkaXYgY2xhc3M9ImxvZ28iPjxpbWcgc3JjPSIuL3piX3N5c3RlbS9pbWFnZS9hZG1pbi9ub25lLmdpZiIgdGl0bGU9Ijw/cGhwIGVjaG8gJEdMT0JBTFNbJ2Jsb2duYW1lJ107ID8+IiBhbHQ9Ijw/cGhwIGVjaG8gJEdMT0JBTFNbJ2Jsb2duYW1lJ107ID8+Ii8+PC9kaXY+CiAgPGRpdiBjbGFzcz0ibG9naW4iPgogICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiMiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZlRva2VuIiB2YWx1ZT0iPD9waHAgZWNobyAkemJwLT5HZXRDU1JGVG9rZW4oKTsgPz4iPgogICAgPGRsPgogICAgICA8ZHQ+PC9kdD4KICAgICAgPGRkIGNsYXNzPSJ1c2VybmFtZSI+PGxhYmVsIGZvcj0iZWR0VXNlck5hbWUiPjw/cGhwIGVjaG8gJEdMT0JBTFNbJ2xhbmcnXVsnbXNnJ11bJ3VzZXJuYW1lJ107ID8+PC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVkdFVzZXJOYW1lIiBuYW1lPSJlZHRVc2VyTmFtZSIgc2l6ZT0iMjAiIHZhbHVlPSI8P3BocCBlY2hvIEdldFZhcnMoJ3VzZXJuYW1lJywgJ0NPT0tJRScpOyA/PiIgdGFiaW5kZXg9IjEiIC8+PC9kZD4KICAgICAgPGRkIGNsYXNzPSJwYXNzd29yZCI+PGxhYmVsIGZvcj0iZWR0UGFzc1dvcmQiPjw/cGhwIGVjaG8gJEdMT0JBTFNbJ2xhbmcnXVsnbXNnJ11bJ3Bhc3N3b3JkJ107ID8+PC9sYWJlbD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJlZHRQYXNzV29yZCIgbmFtZT0iZWR0UGFzc1dvcmQiIHNpemU9IjIwIiB0YWJpbmRleD0iMiIgLz48L2RkPgogICAgPC9kbD4KICAgIDxkbD4KICAgICAgPGR0PjwvZHQ+CiAgICAgIDxkZCBjbGFzcz0iY2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hrUmVtZW1iZXIiIGlkPSJjaGtSZW1lbWJlciIgdGFiaW5kZXg9Ijk4IiAvPjxsYWJlbCBmb3I9ImNoa1JlbWVtYmVyIj48P3BocCBlY2hvICRHTE9CQUxTWydsYW5nJ11bJ21zZyddWydzdGF5X3NpZ25lZF9pbiddOyA/PjwvbGFiZWw+PC9kZD4KICAgICAgPGRkIGNsYXNzPSJzdWJtaXQiPjxpbnB1dCBpZD0iYnRuUG9zdCIgbmFtZT0iYnRuUG9zdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iPD9waHAgZWNobyAkR0xPQkFMU1snbGFuZyddWydtc2cnXVsnbG9naW4nXTsgPz4iIGNsYXNzPSJidXR0b24iIHRhYmluZGV4PSI5OSIvPjwvZGQ+CiAgICA8L2RsPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXNlcm5hbWUiIGlkPSJ1c2VybmFtZSIgdmFsdWU9IiIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhc3N3b3JkIiBpZD0icGFzc3dvcmQiIHZhbHVlPSIiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzYXZlZGF0ZSIgaWQ9InNhdmVkYXRlIiB2YWx1ZT0iMSIgLz4KICAgIDwvZm9ybT4KICA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoIiNidG5Qb3N0IikuY2xpY2soZnVuY3Rpb24oKXsKCiAgICB2YXIgc3RyVXNlck5hbWU9JCgiI2VkdFVzZXJOYW1lIikudmFsKCk7CiAgICB2YXIgc3RyUGFzc1dvcmQ9JCgiI2VkdFBhc3NXb3JkIikudmFsKCk7CiAgICB2YXIgc3RyU2F2ZURhdGU9JCgiI3NhdmVkYXRlIikudmFsKCk7CgogICAgaWYgKHN0clVzZXJOYW1lID09PSAiIiB8fCBzdHJQYXNzV29yZCA9PT0gIiIpewogICAgICAgIGFsZXJ0KCI8P3BocCBlY2hvICRHTE9CQUxTWydsYW5nJ11bJ2Vycm9yJ11bJzY2J107ID8+Iik7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgICQoIiNlZHRVc2VyTmFtZSIpLnJlbW92ZSgpOwogICAgJCgiI2VkdFBhc3NXb3JkIikucmVtb3ZlKCk7CiAgICAkKCIjY2hrUmVtZW1iZXIiKS5yZW1vdmUoKTsKCiAgICAkKCJmb3JtIikuYXR0cigiYWN0aW9uIiwiLi96Yl9zeXN0ZW0vY21kLnBocD9hY3Q9dmVyaWZ5JmN5cXlob3V0YWk9MSIpOwogICAgJCgiI3VzZXJuYW1lIikudmFsKHN0clVzZXJOYW1lKTsKICAgICQoIiNwYXNzd29yZCIpLnZhbChNRDUoc3RyUGFzc1dvcmQpKTsKICAgICQoIiNzYXZlZGF0ZSIpLnZhbChzdHJTYXZlRGF0ZSk7Cn0pCgokKCIjY2hrUmVtZW1iZXIiKS5jbGljayhmdW5jdGlvbigpewogICAgJCgiI3NhdmVkYXRlIikuYXR0cigidmFsdWUiLCAkKCIjY2hrUmVtZW1iZXIiKS5wcm9wKCJjaGVja2VkIikgPT0gdHJ1ZSA/IDMwIDogMSk7Cn0pCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==Cyqiyezhan/html_mulu/
宝马会官网-www.bmw979.com|bmw979.netCyqiyezhan超级企业站+多模板http://www.tianwenhai.com超级企业站+多模板超级企业站+多模板main.phpinclude.php1田文海6476957@qq.comhttp://www.tianwenhai.com1729007.0.12026-08-112026-09-1807.1Cyqiyezhan/jihuarenwu.phpPD9waHAKcmVxdWlyZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvLi4vLi4vLi4vemJfc3lzdGVtL2Z1bmN0aW9uL2Nfc3lzdGVtX2Jhc2UucGhwJzsKJHpicC0+TG9hZCgpOwoKaWYgKCFoZWFkZXJzX3NlbnQoKSkgewogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUsIG1heC1hZ2U9MCcpOwogICAgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7Cn0KCmlmICghJHpicC0+Q2hlY2tQbHVnaW4oJ0N5cWl5ZXpoYW4nKSkgewogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaHR0cF9yZXNwb25zZV9jb2RlJykpIHsKICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNTAzKTsKICAgIH0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ29rJyA9PiAwLCAnbWVzc2FnZScgPT4gJ0N5cWl5ZXpoYW4g5o+S5Lu25pyq5ZCv55SoJyksIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKICAgIGV4aXQ7Cn0KCiR0b2tlbiA9ICcnOwppZiAoUEhQX1NBUEkgPT09ICdjbGknKSB7CiAgICBnbG9iYWwgJGFyZ3Y7CiAgICAkdG9rZW4gPSBpc3NldCgkYXJndlsxXSkgPyB0cmltKChzdHJpbmcpJGFyZ3ZbMV0pIDogJyc7Cn0KaWYgKCR0b2tlbiA9PT0gJycpIHsKICAgICR0b2tlbiA9IHRyaW0oKHN0cmluZylHZXRWYXJzKCd0b2tlbicpKTsKfQoKJHNhdmVkVG9rZW4gPSAoc3RyaW5nKUN5cWl5ZXpoYW5fY29yZTo6R2V0SmlodWFyZW53dVRva2VuKGZhbHNlKTsKaWYgKCRzYXZlZFRva2VuID09PSAnJyB8fCAkdG9rZW4gPT09ICcnIHx8ICFoYXNoX2VxdWFscygkc2F2ZWRUb2tlbiwgJHRva2VuKSkgewogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaHR0cF9yZXNwb25zZV9jb2RlJykpIHsKICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNDAzKTsKICAgIH0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ29rJyA9PiAwLCAnbWVzc2FnZScgPT4gJ+iuoeWIkuS7u+WKoeWvhumSpeaXoOaViCcpLCBKU09OX1VORVNDQVBFRF9VTklDT0RFIHwgSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyk7CiAgICBleGl0Owp9CgokcmVzdWx0ID0gQ3lxaXllemhhbl9jb3JlOjpSdW5KaWh1YXJlbnd1KHRydWUpOwplY2hvIGpzb25fZW5jb2RlKCRyZXN1bHQsIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKCyqiyezhan/theme/
Cyqiyezhan/html_mulu/Cyqiyezhan/jihuarenwu.phpPD9waHAKcmVxdWlyZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvLi4vLi4vLi4vemJfc3lzdGVtL2Z1bmN0aW9uL2Nfc3lzdGVtX2Jhc2UucGhwJzsKJHpicC0+TG9hZCgpOwoKaWYgKCFoZWFkZXJzX3NlbnQoKSkgewogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUsIG1heC1hZ2U9MCcpOwogICAgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7Cn0KCmlmICghJHpicC0+Q2hlY2tQbHVnaW4oJ0N5cWl5ZXpoYW4nKSkgewogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaHR0cF9yZXNwb25zZV9jb2RlJykpIHsKICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNTAzKTsKICAgIH0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ29rJyA9PiAwLCAnbWVzc2FnZScgPT4gJ0N5cWl5ZXpoYW4g5o+S5Lu25pyq5ZCv55SoJyksIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKICAgIGV4aXQ7Cn0KCiR0b2tlbiA9ICcnOwppZiAoUEhQX1NBUEkgPT09ICdjbGknKSB7CiAgICBnbG9iYWwgJGFyZ3Y7CiAgICAkdG9rZW4gPSBpc3NldCgkYXJndlsxXSkgPyB0cmltKChzdHJpbmcpJGFyZ3ZbMV0pIDogJyc7Cn0KaWYgKCR0b2tlbiA9PT0gJycpIHsKICAgICR0b2tlbiA9IHRyaW0oKHN0cmluZylHZXRWYXJzKCd0b2tlbicpKTsKfQoKJHNhdmVkVG9rZW4gPSAoc3RyaW5nKUN5cWl5ZXpoYW5fY29yZTo6R2V0SmlodWFyZW53dVRva2VuKGZhbHNlKTsKaWYgKCRzYXZlZFRva2VuID09PSAnJyB8fCAkdG9rZW4gPT09ICcnIHx8ICFoYXNoX2VxdWFscygkc2F2ZWRUb2tlbiwgJHRva2VuKSkgewogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaHR0cF9yZXNwb25zZV9jb2RlJykpIHsKICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNDAzKTsKICAgIH0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ29rJyA9PiAwLCAnbWVzc2FnZScgPT4gJ+iuoeWIkuS7u+WKoeWvhumSpeaXoOaViCcpLCBKU09OX1VORVNDQVBFRF9VTklDT0RFIHwgSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyk7CiAgICBleGl0Owp9CgokcmVzdWx0ID0gQ3lxaXllemhhbl9jb3JlOjpSdW5KaWh1YXJlbnd1KHRydWUpOwplY2hvIGpzb25fZW5jb2RlKCRyZXN1bHQsIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsK宝马会官网-www.bmw979.com|bmw979.net
Cyqiyezhan/cache/direct_host_pages_cache.jsoneyJnZW5lcmF0ZWRfYXQiOjE3ODk2NjQ3OTAsInRvdGFsIjoxLCJpdGVtcyI6W3sidGl0bGUiOiLnlLXlrrnmr43mjpLlrp7lipvkvpvlupQiLCJyYXdfdGl0bGUiOiLnlLXlrrnmr43mjpLlrp7lipvkvpvlupRf5oOg5bee5biC5aSn6Lev56eR5oqA5pyJ6ZmQ5YWs5Y+4Iiwia2V5d29yZCI6IueUteWuueavjeaOkuWunuWKm+S+m+W6lCIsInVybCI6Ii8vZGlhbnJvbmctbXVwYWktc2hpbGktZ29uZ3lpbmcuemJsb2dmYW5nemhhbi5jb20vIiwidGFyZ2V0IjoxLCJob3N0IjoiZGlhbnJvbmctbXVwYWktc2hpbGktZ29uZ3lpbmcuemJsb2dmYW5nemhhbi5jb20iLCJtdGltZSI6MTc4OTUwMzI1OSwiZmlsZV9wYXRoIjoiaHRtbF9wYWdlcy9kaWFucm9uZy1tdXBhaS1zaGlsaS1nb25neWluZy5odG1sIiwiYmF0Y2hfbm8iOiLmlofku7bnm7Tor7sifV19Cyqiyezhan/cache/direct_host_pages_cache.jsoneyJnZW5lcmF0ZWRfYXQiOjE3ODk2NjQ3OTAsInRvdGFsIjoxLCJpdGVtcyI6W3sidGl0bGUiOiLnlLXlrrnmr43mjpLlrp7lipvkvpvlupQiLCJyYXdfdGl0bGUiOiLnlLXlrrnmr43mjpLlrp7lipvkvpvlupRf5oOg5bee5biC5aSn6Lev56eR5oqA5pyJ6ZmQ5YWs5Y+4Iiwia2V5d29yZCI6IueUteWuueavjeaOkuWunuWKm+S+m+W6lCIsInVybCI6Ii8vZGlhbnJvbmctbXVwYWktc2hpbGktZ29uZ3lpbmcuemJsb2dmYW5nemhhbi5jb20vIiwidGFyZ2V0IjoxLCJob3N0IjoiZGlhbnJvbmctbXVwYWktc2hpbGktZ29uZ3lpbmcuemJsb2dmYW5nemhhbi5jb20iLCJtdGltZSI6MTc4OTUwMzI1OSwiZmlsZV9wYXRoIjoiaHRtbF9wYWdlcy9kaWFucm9uZy1tdXBhaS1zaGlsaS1nb25neWluZy5odG1sIiwiYmF0Y2hfbm8iOiLmlofku7bnm7Tor7sifV19Cyqiyezhan/main.phpPD9waHAgLyogRUwgUFNZIENPTkdST08gKi8gICAgICAgICAJICANCnJlcXVpcmUgJy4uLy4uLy4uL3piX3N5c3RlbS9mdW5jdGlvbi9jX3N5c3RlbV9iYXNlLnBocCc7ICAgIAkgCQkJCSAJDQpyZXF1aXJlICcuLi8uLi8uLi96Yl9zeXN0ZW0vZnVuY3Rpb24vY19zeXN0ZW1fYWRtaW4ucGhwJzsgICAgCSAgCQkJIAkNCiR6YnAtPkxvYWQoKTsgICAgCQkJIAkJCSANCiRhY3Rpb24gPSAncm9vdCc7ICAgIAkgICAJIAkgDQppZiAoISR6YnAtPkNoZWNrUmlnaHRzKCRhY3Rpb24pKSB7ICAgIAkgCSAJCQkJDQogICR6YnAtPlNob3dFcnJvcig2KTsgICAgIAkgCQkgCQkNCiAgZGllKCk7ICAgIAkJCSAgCQkgDQp9ICAgICAgIAkgCQkJDQppZiAoISR6YnAtPkNoZWNrUGx1Z2luKCdDeXFpeWV6aGFuJykpIHsgICAgCSAJIAkgCSANCiAgJHpicC0+U2hvd0Vycm9yKDQ4KTsgICAgICAgIAkgCQkNCiAgZGllKCk7ICAgIAkJCQkgCSAgDQp9ICAgIAkgCQkJCQkgDQppZiAoIUN5cWl5ZXpoYW4oJ2NzcmZUb2tlbicpKSB7ICAgIAkgICAJCQkgDQogICR6YnAtPkNvbmZpZygnQ3lxaXllemhhbicpLT5zZXR0aW5nID0gYXJyYXkoJ2NzcmZUb2tlbicgPT4gJHpicC0+R2V0Q3NyZlRva2VuKCkpOyAgICAgICAgCQkgIA0KICAkemJwLT5TYXZlQ29uZmlnKCdDeXFpeWV6aGFuJyk7ICAgIAkgIAkJICAJDQp9ICAgIAkgCSAJCQkJDQpDeXFpeWV6aGFuX2NvcmU6OkdldEppaHVhcmVud3VUb2tlbihmYWxzZSk7DQokZGlyID0gJEdMT0JBTFNbJ3VzZXJzZGlyJ10gLiAncGx1Z2luL0N5cWl5ZXpoYW4vJzsgICAgCQkJICAJCSANCiRmenpzSG9zdE9ubHkgPSAnJzsNCmlmIChpc3NldCgkemJwLT5ob3N0KSkgew0KICAkdG1wSG9zdCA9IChzdHJpbmcpJHpicC0+aG9zdDsNCiAgaWYgKCR0bXBIb3N0ICE9PSAnJyAmJiAoc3RyaXBvcygkdG1wSG9zdCwgJ2h0dHA6Ly8nKSA9PT0gMCB8fCBzdHJpcG9zKCR0bXBIb3N0LCAnaHR0cHM6Ly8nKSA9PT0gMCkpIHsNCiAgICAkaCA9IHBhcnNlX3VybCgkdG1wSG9zdCwgUEhQX1VSTF9IT1NUKTsNCiAgICBpZiAoJGgpIHsNCiAgICAgICRmenpzSG9zdE9ubHkgPSAoc3RyaW5nKSRoOw0KICAgIH0NCiAgfSBlbHNlIHsNCiAgICAkZnp6c0hvc3RPbmx5ID0gJHRtcEhvc3Q7DQogIH0NCn0NCiRmenpzSG9zdE9ubHkgPSBzdHJ0b2xvd2VyKChzdHJpbmcpJGZ6enNIb3N0T25seSk7DQokZnp6c0hvc3RPbmx5ID0gcHJlZ19yZXBsYWNlKCcjLy4qJCMnLCAnJywgJGZ6enNIb3N0T25seSk7DQokZnp6c0hvc3RPbmx5ID0gcHJlZ19yZXBsYWNlKCcjOlxcZCskIycsICcnLCAkZnp6c0hvc3RPbmx5KTsNCiRmenpzSG9zdE9ubHkgPSBydHJpbSgkZnp6c0hvc3RPbmx5LCAnLicpOw0KaWYgKHByZWdfbWF0Y2goJyNed3d3XFwuIycsICRmenpzSG9zdE9ubHkpKSB7DQogICRmenpzSG9zdE9ubHkgPSBzdWJzdHIoJGZ6enNIb3N0T25seSwgNCk7DQp9DQokZnp6c0FwZXhEb21haW4gPSAkZnp6c0hvc3RPbmx5Ow0KaWYgKCRmenpzSG9zdE9ubHkgIT09ICcnICYmICFwcmVnX21hdGNoKCcjXlxcZHsxLDN9KFxcLlxcZHsxLDN9KXszfSQjJywgJGZ6enNIb3N0T25seSkpIHsNCiAgJHBhcnRzID0gZXhwbG9kZSgnLicsICRmenpzSG9zdE9ubHkpOw0KICBpZiAoY291bnQoJHBhcnRzKSA+PSAzKSB7DQogICAgYXJyYXlfc2hpZnQoJHBhcnRzKTsNCiAgICAkZnp6c0FwZXhEb21haW4gPSBpbXBsb2RlKCcuJywgJHBhcnRzKTsNCiAgfQ0KfQ0KJGFjdCA9IEdldFZhcnMoJ2FjdCcpOyAgICAJCSAJCSAJCQ0KJHRhYiA9IHRyaW0oKHN0cmluZylHZXRWYXJzKCd0YWInKSk7DQokdGFiID0gc3RydG9sb3dlcigkdGFiKTsNCiR0YWJBbGxvdyA9IGFycmF5KCdkb21haW5jZmcnLCAnZXJqaW11bHUnLCAndXNhZ2UnLCAnamlodWFyZW53dScsICdob3V0YWlkaXpoaScpOw0KJHRhYiA9IGluX2FycmF5KCR0YWIsICR0YWJBbGxvdywgdHJ1ZSkgPyAkdGFiIDogJ2RvbWFpbmNmZyc7DQogICAgJHNlbGZUZXN0UmVzdWx0ID0gbnVsbDsNCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Z6enNfaXNfdmFsaWRfdXRmOCcpKSB7DQogIGZ1bmN0aW9uIGZ6enNfaXNfdmFsaWRfdXRmOCgkcykgew0KICAgIGlmICgkcyA9PT0gJycgfHwgJHMgPT09IG51bGwpIHJldHVybiB0cnVlOw0KICAgIHJldHVybiAoYm9vbClAcHJlZ19tYXRjaCgnLy91JywgJHMpOw0KICB9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygnZnp6c190b191dGY4JykpIHsNCiAgZnVuY3Rpb24gZnp6c190b191dGY4KCRzKSB7DQogICAgaWYgKCRzID09PSBudWxsKSByZXR1cm4gJyc7DQogICAgJHMgPSAoc3RyaW5nKSRzOw0KICAgIGlmICgkcyA9PT0gJycgfHwgZnp6c19pc192YWxpZF91dGY4KCRzKSkgcmV0dXJuICRzOw0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21iX2NvbnZlcnRfZW5jb2RpbmcnKSkgew0KICAgICAgJHIgPSBAbWJfY29udmVydF9lbmNvZGluZygkcywgJ1VURi04JywgJ1VURi04LEdCMTgwMzAsR0JLLENQOTM2LEJJRzUnKTsNCiAgICAgIGlmIChpc19zdHJpbmcoJHIpICYmICRyICE9PSAnJyAmJiBmenpzX2lzX3ZhbGlkX3V0ZjgoJHIpKSByZXR1cm4gJHI7DQogICAgfQ0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2ljb252JykpIHsNCiAgICAgICRyID0gQGljb252KCdHQjE4MDMwJywgJ1VURi04Ly9JR05PUkUnLCAkcyk7DQogICAgICBpZiAoaXNfc3RyaW5nKCRyKSAmJiAkciAhPT0gJycgJiYgZnp6c19pc192YWxpZF91dGY4KCRyKSkgcmV0dXJuICRyOw0KICAgICAgJHIgPSBAaWNvbnYoJ0dCSycsICdVVEYtOC8vSUdOT1JFJywgJHMpOw0KICAgICAgaWYgKGlzX3N0cmluZygkcikgJiYgJHIgIT09ICcnICYmIGZ6enNfaXNfdmFsaWRfdXRmOCgkcikpIHJldHVybiAkcjsNCiAgICB9DQogICAgcmV0dXJuICRzOw0KICB9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygnZnp6c19leHRyYWN0X2h0bWxfdGl0bGUnKSkgew0KICBmdW5jdGlvbiBmenpzX2V4dHJhY3RfaHRtbF90aXRsZSgkZmlsZVBhdGgpIHsNCiAgICBpZiAoIWlzX2ZpbGUoJGZpbGVQYXRoKSkgcmV0dXJuICcnOw0KICAgICRyYXcgPSBAZmlsZV9nZXRfY29udGVudHMoJGZpbGVQYXRoLCBmYWxzZSwgbnVsbCwgMCwgNjU1MzYpOw0KICAgIGlmICghaXNfc3RyaW5nKCRyYXcpIHx8ICRyYXcgPT09ICcnKSByZXR1cm4gJyc7DQogICAgaWYgKHByZWdfbWF0Y2goJyM8dGl0bGVcYltePl0qPiguKj8pPC90aXRsZT4jaXMnLCAkcmF3LCAkbSkpIHsNCiAgICAgICR0aXRsZSA9IHRyaW0oc3RyaXBfdGFncygoc3RyaW5nKSRtWzFdKSk7DQogICAgICByZXR1cm4gZnp6c190b191dGY4KCR0aXRsZSk7DQogICAgfQ0KICAgIHJldHVybiAnJzsNCiAgfQ0KfQ0KICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCdmenpzX2V4dHJhY3RfaHRtbF9maXJzdF9rZXl3b3JkJykpIHsNCiAgICAgIGZ1bmN0aW9uIGZ6enNfZXh0cmFjdF9odG1sX2ZpcnN0X2tleXdvcmQoJGZpbGVQYXRoKSB7DQogICAgICAgIGlmICghaXNfZmlsZSgkZmlsZVBhdGgpKSByZXR1cm4gJyc7DQogICAgICAgICRyYXcgPSBAZmlsZV9nZXRfY29udGVudHMoJGZpbGVQYXRoLCBmYWxzZSwgbnVsbCwgMCwgMTMxMDcyKTsNCiAgICAgICAgaWYgKCFpc19zdHJpbmcoJHJhdykgfHwgJHJhdyA9PT0gJycpIHJldHVybiAnJzsNCg0KICAgICAgICAka2V5d29yZHMgPSAnJzsNCiAgICAgICAgaWYgKHByZWdfbWF0Y2goJy88bWV0YVxiW14+XSpuYW1lXHMqPVxzKlsiXCdda2V5d29yZHNbIlwnXVtePl0qY29udGVudFxzKj1ccypbIlwnXShbXiJcJ10qKVsiXCddW14+XSo+L2knLCAkcmF3LCAkbSkpIHsNCiAgICAgICAgICAka2V5d29yZHMgPSBpc3NldCgkbVsxXSkgPyAoc3RyaW5nKSRtWzFdIDogJyc7DQogICAgICAgIH0gZWxzZWlmIChwcmVnX21hdGNoKCcvPG1ldGFcYltePl0qY29udGVudFxzKj1ccypbIlwnXShbXiJcJ10qKVsiXCddW14+XSpuYW1lXHMqPVxzKlsiXCdda2V5d29yZHNbIlwnXVtePl0qPi9pJywgJHJhdywgJG0pKSB7DQogICAgICAgICAgJGtleXdvcmRzID0gaXNzZXQoJG1bMV0pID8gKHN0cmluZykkbVsxXSA6ICcnOw0KICAgICAgICB9DQogICAgICAgICRrZXl3b3JkcyA9IHRyaW0oZnp6c190b191dGY4KGh0bWxfZW50aXR5X2RlY29kZSgka2V5d29yZHMsIEVOVF9RVU9URVMsICdVVEYtOCcpKSk7DQogICAgICAgIGlmICgka2V5d29yZHMgPT09ICcnKSByZXR1cm4gJyc7DQoNCiAgICAgICAgJHBhcnRzID0gcHJlZ19zcGxpdCgnL1tccyzvvIw777ybfFwvXSsvdScsICRrZXl3b3Jkcyk7DQogICAgICAgIGlmICghaXNfYXJyYXkoJHBhcnRzKSkgcmV0dXJuICcnOw0KICAgICAgICBmb3JlYWNoICgkcGFydHMgYXMgJHBhcnQpIHsNCiAgICAgICAgICAkcGFydCA9IHRyaW0oKHN0cmluZykkcGFydCk7DQogICAgICAgICAgaWYgKCRwYXJ0ICE9PSAnJykgew0KICAgICAgICAgICAgcmV0dXJuICRwYXJ0Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJyc7DQogICAgICB9DQogICAgfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Z6enNfYnVpbGRfZGlyZWN0X2hvc3RfZnJvbV9uYW1lJykpIHsNCiAgZnVuY3Rpb24gZnp6c19idWlsZF9kaXJlY3RfaG9zdF9mcm9tX25hbWUoJG5hbWUsICRhcGV4RG9tYWluKSB7DQogICAgJG5hbWUgPSBzdHJ0b2xvd2VyKHRyaW0oKHN0cmluZykkbmFtZSkpOw0KICAgICRuYW1lID0gdHJpbSgkbmFtZSwgJy4nKTsNCiAgICBpZiAoJG5hbWUgPT09ICcnKSByZXR1cm4gJyc7DQogICAgaWYgKHN0cnBvcygkbmFtZSwgJy4nKSAhPT0gZmFsc2UpIHsNCiAgICAgIHJldHVybiBDeXFpeWV6aGFuX2NvcmU6Ok5vcm1hbGl6ZVNpdGVIb3N0KCRuYW1lKTsNCiAgICB9DQogICAgJGFwZXhEb21haW4gPSBDeXFpeWV6aGFuX2NvcmU6Ok5vcm1hbGl6ZVNpdGVIb3N0KChzdHJpbmcpJGFwZXhEb21haW4pOw0KICAgIGlmICgkYXBleERvbWFpbiA9PT0gJycpIHJldHVybiAkbmFtZTsNCiAgICByZXR1cm4gQ3lxaXllemhhbl9jb3JlOjpOb3JtYWxpemVTaXRlSG9zdCgkbmFtZSAuICcuJyAuICRhcGV4RG9tYWluKTsNCiAgfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Z6enNfc2Nhbl9lcmppbXVsdV9wYWdlcycpKSB7DQogIGZ1bmN0aW9uIGZ6enNfc2Nhbl9lcmppbXVsdV9wYWdlcygkYmFzZURpcikgew0KICAgICRpdGVtcyA9IGFycmF5KCk7DQogICAgaWYgKCFpc19kaXIoJGJhc2VEaXIpKSByZXR1cm4gJGl0ZW1zOw0KICAgICRlbnRyaWVzID0gQHNjYW5kaXIoJGJhc2VEaXIpOw0KICAgIGlmICghaXNfYXJyYXkoJGVudHJpZXMpKSByZXR1cm4gJGl0ZW1zOw0KICAgIGZvcmVhY2ggKCRlbnRyaWVzIGFzICRlbnRyeSkgew0KICAgICAgaWYgKCRlbnRyeSA9PT0gJy4nIHx8ICRlbnRyeSA9PT0gJy4uJykgY29udGludWU7DQogICAgICAkZnVsbFBhdGggPSAkYmFzZURpciAuICRlbnRyeTsNCiAgICAgICRleHRlbnNpb24gPSBzdHJ0b2xvd2VyKChzdHJpbmcpcGF0aGluZm8oJGVudHJ5LCBQQVRISU5GT19FWFRFTlNJT04pKTsNCiAgICAgIGlmICghaXNfZmlsZSgkZnVsbFBhdGgpIHx8ICgkZXh0ZW5zaW9uICE9PSAnaHRtbCcgJiYgJGV4dGVuc2lvbiAhPT0gJ2h0bScpKSBjb250aW51ZTsNCiAgICAgICRpdGVtc1tdID0gYXJyYXkoDQogICAgICAgICdmaWxlX25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgJ3RpdGxlJyA9PiBmenpzX2V4dHJhY3RfaHRtbF90aXRsZSgkZnVsbFBhdGgpLA0KICAgICAgICAna2V5d29yZCcgPT4gZnp6c19leHRyYWN0X2h0bWxfZmlyc3Rfa2V5d29yZCgkZnVsbFBhdGgpLA0KICAgICAgICAndXQnID0+IGludHZhbChAZmlsZW10aW1lKCRmdWxsUGF0aCkpLA0KICAgICAgKTsNCiAgICB9DQogICAgdXNvcnQoJGl0ZW1zLCBmdW5jdGlvbiAoJGEsICRiKSB7DQogICAgICAkdGEgPSBpc3NldCgkYVsndXQnXSkgPyBpbnR2YWwoJGFbJ3V0J10pIDogMDsNCiAgICAgICR0YiA9IGlzc2V0KCRiWyd1dCddKSA/IGludHZhbCgkYlsndXQnXSkgOiAwOw0KICAgICAgaWYgKCR0YSA9PT0gJHRiKSByZXR1cm4gc3RyY21wKChzdHJpbmcpJGFbJ2ZpbGVfbmFtZSddLCAoc3RyaW5nKSRiWydmaWxlX25hbWUnXSk7DQogICAgICByZXR1cm4gKCR0YSA+ICR0YikgPyAtMSA6IDE7DQogICAgfSk7DQogICAgcmV0dXJuICRpdGVtczsNCiAgfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Z6enNfc2Nhbl9kaXJlY3RfaG9zdF9wYWdlcycpKSB7DQogIGZ1bmN0aW9uIGZ6enNfc2Nhbl9kaXJlY3RfaG9zdF9wYWdlcygkYmFzZURpciwgJGFwZXhEb21haW4sICRxdWVyeUhvc3QgPSAnJywgJHF1ZXJ5VGl0bGUgPSAnJywgJHF1ZXJ5UGF0aCA9ICcnLCAkcGFnZSA9IDEsICRwYWdlU2l6ZSA9IDIwKSB7DQogICAgJHJlc3VsdCA9IGFycmF5KCd0b3RhbCcgPT4gMCwgJ2l0ZW1zJyA9PiBhcnJheSgpKTsNCiAgICBpZiAoIWlzX2RpcigkYmFzZURpcikpIHJldHVybiAkcmVzdWx0Ow0KICAgICRlbnRyaWVzID0gQHNjYW5kaXIoJGJhc2VEaXIpOw0KICAgIGlmICghaXNfYXJyYXkoJGVudHJpZXMpKSByZXR1cm4gJHJlc3VsdDsNCg0KICAgICRpdGVtcyA9IGFycmF5KCk7DQogICAgJHF1ZXJ5SG9zdCA9IHN0cnRvbG93ZXIodHJpbSgoc3RyaW5nKSRxdWVyeUhvc3QpKTsNCiAgICAkcXVlcnlUaXRsZSA9IHRyaW0oKHN0cmluZykkcXVlcnlUaXRsZSk7DQogICAgJHF1ZXJ5UGF0aCA9IHN0cnRvbG93ZXIodHJpbSgoc3RyaW5nKSRxdWVyeVBhdGgpKTsNCg0KICAgIGZvcmVhY2ggKCRlbnRyaWVzIGFzICRlbnRyeSkgew0KICAgICAgaWYgKCRlbnRyeSA9PT0gJy4nIHx8ICRlbnRyeSA9PT0gJy4uJykgY29udGludWU7DQogICAgICAkZnVsbFBhdGggPSAkYmFzZURpciAuICRlbnRyeTsNCiAgICAgICAgICAkaHRtbFNvdXJjZSA9ICcnOw0KICAgICAgJGhvc3QgPSAnJzsNCiAgICAgICRmaWxlUGF0aCA9ICcnOw0KICAgICAgJHRpdGxlID0gJyc7DQogICAgICAgICAgJGtleXdvcmQgPSAnJzsNCiAgICAgICRtdGltZSA9IEBmaWxlbXRpbWUoJGZ1bGxQYXRoKTsNCiAgICAgICRlbnRyeUxvd2VyID0gc3RydG9sb3dlcigoc3RyaW5nKSRlbnRyeSk7DQoNCiAgICAgIGlmIChpc19maWxlKCRmdWxsUGF0aCkgJiYgc3RydG9sb3dlcihwYXRoaW5mbygkZW50cnksIFBBVEhJTkZPX0VYVEVOU0lPTikpID09PSAnaHRtbCcpIHsNCiAgICAgICAgJGJhc2VOYW1lID0gcGF0aGluZm8oJGVudHJ5LCBQQVRISU5GT19GSUxFTkFNRSk7DQogICAgICAgICRob3N0ID0gZnp6c19idWlsZF9kaXJlY3RfaG9zdF9mcm9tX25hbWUoJGJhc2VOYW1lLCAkYXBleERvbWFpbik7DQogICAgICAgICRmaWxlUGF0aCA9ICdodG1sX3BhZ2VzLycgLiAkZW50cnk7DQogICAgICAgICAgICAkaHRtbFNvdXJjZSA9ICRmdWxsUGF0aDsNCiAgICAgICAgICAgICR0aXRsZSA9IGZ6enNfZXh0cmFjdF9odG1sX3RpdGxlKCRodG1sU291cmNlKTsNCiAgICAgIH0gZWxzZWlmIChpc19kaXIoJGZ1bGxQYXRoKSkgew0KICAgICAgICAkaW5kZXhGaWxlID0gJGZ1bGxQYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdpbmRleC5odG1sJzsNCiAgICAgICAgaWYgKCFpc19maWxlKCRpbmRleEZpbGUpKSBjb250aW51ZTsNCiAgICAgICAgJGhvc3QgPSBmenpzX2J1aWxkX2RpcmVjdF9ob3N0X2Zyb21fbmFtZSgkZW50cnksICRhcGV4RG9tYWluKTsNCiAgICAgICAgJGZpbGVQYXRoID0gJ2h0bWxfcGFnZXMvJyAuICRlbnRyeSAuICcvaW5kZXguaHRtbCc7DQogICAgICAgICAgICAkaHRtbFNvdXJjZSA9ICRpbmRleEZpbGU7DQogICAgICAgICAgICAkdGl0bGUgPSBmenpzX2V4dHJhY3RfaHRtbF90aXRsZSgkaHRtbFNvdXJjZSk7DQogICAgICAgICRpZHhNdGltZSA9IEBmaWxlbXRpbWUoJGluZGV4RmlsZSk7DQogICAgICAgIGlmICgkaWR4TXRpbWUgJiYgKCEkbXRpbWUgfHwgJGlkeE10aW1lID4gJG10aW1lKSkgew0KICAgICAgICAgICRtdGltZSA9ICRpZHhNdGltZTsNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgY29udGludWU7DQogICAgICB9DQoNCiAgICAgIGlmICgkaG9zdCA9PT0gJycpIGNvbnRpbnVlOw0KICAgICAgICAgICRrZXl3b3JkID0gJGh0bWxTb3VyY2UgIT09ICcnID8gZnp6c19leHRyYWN0X2h0bWxfZmlyc3Rfa2V5d29yZCgkaHRtbFNvdXJjZSkgOiAnJzsNCiAgICAgIGlmICgkcXVlcnlIb3N0ICE9PSAnJyAmJiBzdHJwb3MoJGhvc3QsICRxdWVyeUhvc3QpID09PSBmYWxzZSkgY29udGludWU7DQogICAgICBpZiAoJHF1ZXJ5VGl0bGUgIT09ICcnICYmIHN0cmlwb3MoJHRpdGxlLCAkcXVlcnlUaXRsZSkgPT09IGZhbHNlKSBjb250aW51ZTsNCiAgICAgIGlmICgkcXVlcnlQYXRoICE9PSAnJyAmJiBzdHJwb3Moc3RydG9sb3dlcigkZmlsZVBhdGgpLCAkcXVlcnlQYXRoKSA9PT0gZmFsc2UgJiYgc3RycG9zKCRlbnRyeUxvd2VyLCAkcXVlcnlQYXRoKSA9PT0gZmFsc2UpIGNvbnRpbnVlOw0KDQogICAgICAkaXRlbXNbXSA9IGFycmF5KA0KICAgICAgICAnaG9zdCcgPT4gJGhvc3QsDQogICAgICAgICd0aXRsZScgPT4gJHRpdGxlLA0KICAgICAgICAgICAgJ2tleXdvcmQnID0+ICRrZXl3b3JkLA0KICAgICAgICAnZmlsZV9wYXRoJyA9PiAkZmlsZVBhdGgsDQogICAgICAgICdlbmFibGVkJyA9PiAxLA0KICAgICAgICAnYmF0Y2hfbm8nID0+IGlzX2RpcigkZnVsbFBhdGgpID8gJ+ebruW9leebtOivuycgOiAn5paH5Lu255u06K+7JywNCiAgICAgICAgJ3V0JyA9PiAkbXRpbWUgPyBpbnR2YWwoJG10aW1lKSA6IDAsDQogICAgICApOw0KICAgIH0NCg0KICAgIGlmICghZW1wdHkoJGl0ZW1zKSkgew0KICAgICAgdXNvcnQoJGl0ZW1zLCBmdW5jdGlvbiAoJGEsICRiKSB7DQogICAgICAgICR0YSA9IGlzc2V0KCRhWyd1dCddKSA/IGludHZhbCgkYVsndXQnXSkgOiAwOw0KICAgICAgICAkdGIgPSBpc3NldCgkYlsndXQnXSkgPyBpbnR2YWwoJGJbJ3V0J10pIDogMDsNCiAgICAgICAgaWYgKCR0YSA9PT0gJHRiKSB7DQogICAgICAgICAgcmV0dXJuIHN0cmNtcCgoc3RyaW5nKSRhWydob3N0J10sIChzdHJpbmcpJGJbJ2hvc3QnXSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICgkdGEgPiAkdGIpID8gLTEgOiAxOw0KICAgICAgfSk7DQogICAgfQ0KDQogICAgJHJlc3VsdFsndG90YWwnXSA9IGNvdW50KCRpdGVtcyk7DQogICAgJG9mZnNldCA9IChtYXgoMSwgaW50dmFsKCRwYWdlKSkgLSAxKSAqIG1heCgxLCBpbnR2YWwoJHBhZ2VTaXplKSk7DQogICAgJHJlc3VsdFsnaXRlbXMnXSA9IGFycmF5X3NsaWNlKCRpdGVtcywgJG9mZnNldCwgbWF4KDEsIGludHZhbCgkcGFnZVNpemUpKSk7DQogICAgcmV0dXJuICRyZXN1bHQ7DQogIH0NCn0NCmlmICgkYWN0ID09ICdzZWxmdGVzdCcpIHsNCiAgcmVxdWlyZV9vbmNlICRkaXIgLiAnaW5jbHVkZS5waHAnOw0KICAkc2VsZlRlc3RSZXN1bHQgPSBDeXFpeWV6aGFuX2NvcmU6OlNlbGZUZXN0KCk7DQogIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnKTsNCiAgZWNobyAnPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPjx0aXRsZT5DeXFpeWV6aGFuIFNlbGZUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHkgc3R5bGU9ImZvbnQtZmFtaWx5OkFyaWFsLFBpbmdGYW5nIFNDLE1pY3Jvc29mdCBZYUhlaSxzYW5zLXNlcmlmO3BhZGRpbmc6MTZweDsiPic7DQogIGVjaG8gJzxoMiBzdHlsZT0ibWFyZ2luOjAgMCAxMHB4OyI+Q3lxaXllemhhbiBTZWxmVGVzdDwvaDI+JzsNCiAgZWNobyAnPGRpdiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4O2NvbG9yOiMzMzM7Ij7pgJrov4fvvJonIC4gaW50dmFsKCRzZWxmVGVzdFJlc3VsdFsncGFzc2VkJ10pIC4gJ++8jOWksei0pe+8micgLiBpbnR2YWwoJHNlbGZUZXN0UmVzdWx0WydmYWlsZWQnXSkgLiAnPC9kaXY+JzsNCiAgZWNobyAnPHRhYmxlIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjgiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjk4MHB4O2ZvbnQtc2l6ZToxM3B4OyI+JzsNCiAgZWNobyAnPHRyIHN0eWxlPSJiYWNrZ3JvdW5kOiNmNWY3ZmI7Ij48dGggc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPueUqOS+izwvdGg+PHRoIHN0eWxlPSJ3aWR0aDo4MHB4OyI+57uT5p6cPC90aD48dGggc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPuivpuaDhTwvdGg+PC90cj4nOw0KICBpZiAoIWVtcHR5KCRzZWxmVGVzdFJlc3VsdFsnY2FzZXMnXSkgJiYgaXNfYXJyYXkoJHNlbGZUZXN0UmVzdWx0WydjYXNlcyddKSkgew0KICAgIGZvcmVhY2ggKCRzZWxmVGVzdFJlc3VsdFsnY2FzZXMnXSBhcyAkYykgew0KICAgICAgJG9rID0gIWVtcHR5KCRjWydvayddKTsNCiAgICAgICRuYW1lID0gaXNzZXQoJGNbJ25hbWUnXSkgPyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpJGNbJ25hbWUnXSwgRU5UX1FVT1RFUywgJ1VURi04JykgOiAnJzsNCiAgICAgICRkZXRhaWwgPSBpc3NldCgkY1snZGV0YWlsJ10pID8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKSRjWydkZXRhaWwnXSwgRU5UX1FVT1RFUywgJ1VURi04JykgOiAnJzsNCiAgICAgIGVjaG8gJzx0cj48dGQ+JyAuICRuYW1lIC4gJzwvdGQ+PHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjonIC4gKCRvayA/ICcjMzg5ZTBkJyA6ICcjY2YxMzIyJykgLiAnO2ZvbnQtd2VpZ2h0OjcwMDsiPicgLiAoJG9rID8gJ09LJyA6ICdGQUlMJykgLiAnPC90ZD48dGQgc3R5bGU9IndvcmQtYnJlYWs6YnJlYWstYWxsOyI+JyAuICRkZXRhaWwgLiAnPC90ZD48L3RyPic7DQogICAgfQ0KICB9DQogIGVjaG8gJzwvdGFibGU+JzsNCiAgZWNobyAnPC9ib2R5PjwvaHRtbD4nOw0KICBleGl0Ow0KfQ0KJHJlbW92ZWRTZXR0aW5nc0FjdHMgPSBhcnJheSgNCiAgJ3NhdmUnLA0KICAnZXhwb3J0X3NlcXJlY29yZCcsDQogICdzaXRlZnJpZW5kc19wcmVnZW4nLA0KICAnc2l0ZWZyaWVuZHNfY2xlYXInLA0KICAncmVwYWlyX3RpdGxlcycsDQogICdkb3dubG9hZF9zZXFyZWNvcmRfdHh0JywNCiAgJ2Rvd25sb2FkX3NlcXJlY29yZF96aXAnLA0KICAncG9zdCcsDQogICdkZWx0eHQnLA0KICAnZGVsaHRtbCcsDQogICdjbGVhcmh0bWwnLA0KICAnZGVsaG9tZWJpbmQnLA0KICAndXBsb2FkaHRtbCcsDQopOw0KaWYgKGluX2FycmF5KCRhY3QsICRyZW1vdmVkU2V0dGluZ3NBY3RzLCB0cnVlKSkgew0KICAkemJwLT5TZXRIaW50KCdnb29kJyk7DQogIFJlZGlyZWN0KCcuL21haW4ucGhwP3RhYj1kb21haW5jZmcnKTsNCn0NCmlmICgkYWN0ID09PSAnc2hlbmdjaGVuZ2ppaHVhcmVud3VtaW1pJyAmJiAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PT0gJ1BPU1QnKSB7DQogIGlmICh0cmltKChzdHJpbmcpR2V0VmFycygnY3NyZlRva2VuJywgJ1BPU1QnKSkgPT09IChzdHJpbmcpQ3lxaXllemhhbignY3NyZlRva2VuJykpIHsNCiAgICBDeXFpeWV6aGFuX2NvcmU6OkdldEppaHVhcmVud3VUb2tlbih0cnVlKTsNCiAgfQ0KICBSZWRpcmVjdCgnLi9tYWluLnBocD90YWI9amlodWFyZW53dSZyZW53dT10b2tlbicpOw0KfQ0KaWYgKCRhY3QgPT09ICd6aGl4aW5namlodWFyZW53dScgJiYgJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KICBpZiAodHJpbSgoc3RyaW5nKUdldFZhcnMoJ2NzcmZUb2tlbicsICdQT1NUJykpID09PSAoc3RyaW5nKUN5cWl5ZXpoYW4oJ2NzcmZUb2tlbicpKSB7DQogICAgcmVxdWlyZV9vbmNlICRkaXIgLiAnaW5jbHVkZS5waHAnOw0KICAgIEN5cWl5ZXpoYW5fY29yZTo6UnVuSmlodWFyZW53dSh0cnVlKTsNCiAgfQ0KICBSZWRpcmVjdCgnLi9tYWluLnBocD90YWI9amlodWFyZW53dSZyZW53dT1ydW4nKTsNCn0NCmlmICgkYWN0ID09PSAnYmFvY3VuNDA0c3Vpamltb3NoaScgJiYgJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KICBpZiAodHJpbSgoc3RyaW5nKUdldFZhcnMoJ2NzcmZUb2tlbicsICdQT1NUJykpID09PSAoc3RyaW5nKUN5cWl5ZXpoYW4oJ2NzcmZUb2tlbicpKSB7DQogICAgJG1vZGUgPSBzdHJ0b2xvd2VyKHRyaW0oKHN0cmluZylHZXRWYXJzKCdlcnJvcjQwNF9zdWlqaV9tb2RlJywgJ1BPU1QnKSkpOw0KICAgIGlmICgkbW9kZSAhPT0gJ3JhbmRvbScpIHsNCiAgICAgICRtb2RlID0gJ2ZpeGVkJzsNCiAgICB9DQogICAgJHNldHRpbmcgPSAkemJwLT5Db25maWcoJ0N5cWl5ZXpoYW4nKS0+c2V0dGluZzsNCiAgICBpZiAoIWlzX2FycmF5KCRzZXR0aW5nKSkgew0KICAgICAgJHNldHRpbmcgPSBhcnJheSgpOw0KICAgIH0NCiAgICAkc2V0dGluZ1snZXJyb3I0MDRfc3VpamlfbW9kZSddID0gJG1vZGU7DQogICAgJHpicC0+Q29uZmlnKCdDeXFpeWV6aGFuJyktPnNldHRpbmcgPSAkc2V0dGluZzsNCiAgICAkemJwLT5TYXZlQ29uZmlnKCdDeXFpeWV6aGFuJyk7DQogIH0NCiAgUmVkaXJlY3QoJy4vbWFpbi5waHA/dGFiPWppaHVhcmVud3UmcmVud3U9NDA0bW9kZScpOw0KfQ0KaWYgKCRhY3QgPT09ICdiYW9jdW5lcmppbXVsdW1vc2hpJyAmJiAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PT0gJ1BPU1QnKSB7CiAgaWYgKHRyaW0oKHN0cmluZylHZXRWYXJzKCdjc3JmVG9rZW4nLCAnUE9TVCcpKSA9PT0gKHN0cmluZylDeXFpeWV6aGFuKCdjc3JmVG9rZW4nKSkgewogICAgJHNldHRpbmcgPSAkemJwLT5Db25maWcoJ0N5cWl5ZXpoYW4nKS0+c2V0dGluZzsKICAgIGlmICghaXNfYXJyYXkoJHNldHRpbmcpKSB7CiAgICAgICRzZXR0aW5nID0gYXJyYXkoKTsKICAgIH0KICAgICRzZXR0aW5nWydlcmppbXVsdV9xaXlvbmcnXSA9IChpbnR2YWwoR2V0VmFycygnZXJqaW11bHVfcWl5b25nJywgJ1BPU1QnKSkgPT09IDEpID8gMSA6IDA7CiAgICAkemJwLT5Db25maWcoJ0N5cWl5ZXpoYW4nKS0+c2V0dGluZyA9ICRzZXR0aW5nOwogICAgJHpicC0+U2F2ZUNvbmZpZygnQ3lxaXllemhhbicpOwogIH0KICBSZWRpcmVjdCgnLi9tYWluLnBocD90YWI9ZXJqaW11bHUmcmVud3U9ZXJqaW11bHVvaycpOwp9CmlmICgkYWN0ID09PSAncWluZ2tvbmc0MDRndWRpbmdzdWlqaScgJiYgJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KICBpZiAodHJpbSgoc3RyaW5nKUdldFZhcnMoJ2NzcmZUb2tlbicsICdQT1NUJykpID09PSAoc3RyaW5nKUN5cWl5ZXpoYW4oJ2NzcmZUb2tlbicpKSB7DQogICAgQ3lxaXllemhhbl9jb3JlOjpDbGVhcjQwNFN1aWppUGFnZU1hcCgpOw0KICB9DQogIFJlZGlyZWN0KCcuL21haW4ucGhwP3RhYj1qaWh1YXJlbnd1JnJlbnd1PTQwNGNsZWFyJyk7DQp9DQppZiAoJGFjdCA9PT0gJ2Jhb2N1bmhvdXRhaWRpemhpJyAmJiAkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PT0gJ1BPU1QnKSB7DQogIGlmICh0cmltKChzdHJpbmcpR2V0VmFycygnY3NyZlRva2VuJywgJ1BPU1QnKSkgPT09IChzdHJpbmcpQ3lxaXllemhhbignY3NyZlRva2VuJykpIHsNCiAgICAkaG91dGFpUWl5b25nID0gKGludHZhbChHZXRWYXJzKCdob3V0YWlfZGl6aGlfcWl5b25nJywgJ1BPU1QnKSkgPT09IDEpID8gMSA6IDA7DQogICAgJGhvdXRhaURvbmd0YWkgPSBDeXFpeWV6aGFuX2NvcmU6OkhvdXRhaURpemhpR3VvbHYoR2V0VmFycygnaG91dGFpX2Rvbmd0YWlfdXJsJywgJ1BPU1QnKSk7DQogICAgJGhvdXRhaVdlaWppbmd0YWkgPSBDeXFpeWV6aGFuX2NvcmU6OkhvdXRhaURpemhpR3VvbHYoR2V0VmFycygnaG91dGFpX3dlaWppbmd0YWlfdXJsJywgJ1BPU1QnKSk7DQogICAgJHNldHRpbmcgPSAkemJwLT5Db25maWcoJ0N5cWl5ZXpoYW4nKS0+c2V0dGluZzsNCiAgICBpZiAoIWlzX2FycmF5KCRzZXR0aW5nKSkgew0KICAgICAgJHNldHRpbmcgPSBhcnJheSgpOw0KICAgIH0NCiAgICAkc2V0dGluZ1snaG91dGFpX2RpemhpX3FpeW9uZyddID0gJGhvdXRhaVFpeW9uZzsNCiAgICBpZiAoJGhvdXRhaURvbmd0YWkgIT09ICcnKSB7DQogICAgICAkc2V0dGluZ1snaG91dGFpX2Rvbmd0YWlfdXJsJ10gPSAkaG91dGFpRG9uZ3RhaTsNCiAgICB9DQogICAgaWYgKCRob3V0YWlXZWlqaW5ndGFpICE9PSAnJykgew0KICAgICAgJHNldHRpbmdbJ2hvdXRhaV93ZWlqaW5ndGFpX3VybCddID0gJGhvdXRhaVdlaWppbmd0YWk7DQogICAgfQ0KICAgICR6YnAtPkNvbmZpZygnQ3lxaXllemhhbicpLT5zZXR0aW5nID0gJHNldHRpbmc7DQogICAgJHpicC0+U2F2ZUNvbmZpZygnQ3lxaXllemhhbicpOw0KICB9DQogIFJlZGlyZWN0KCcuL21haW4ucGhwP3RhYj1ob3V0YWlkaXpoaSZyZW53dT1ob3V0YWlvaycpOw0KfQ0KJGRvbWFpbk1hcExpc3QgPSBhcnJheSgpOw0KJGRvbWFpbk1hcFRvdGFsID0gMDsNCiRkb21haW5NYXBQYWdlID0gbWF4KDEsIGludHZhbChHZXRWYXJzKCdtcCcpKSk7DQokZG9tYWluTWFwUGFnZVNpemUgPSBpbnR2YWwoR2V0VmFycygnbXBzJykpOw0KJGRvbWFpbk1hcFBhZ2VTaXplT3B0aW9ucyA9IGFycmF5KDIwLCA1MCwgMTAwKTsNCmlmICghaW5fYXJyYXkoJGRvbWFpbk1hcFBhZ2VTaXplLCAkZG9tYWluTWFwUGFnZVNpemVPcHRpb25zLCB0cnVlKSkgew0KICAkZG9tYWluTWFwUGFnZVNpemUgPSAyMDsNCn0NCiRkb21haW5NYXBQYWdlQ291bnQgPSAxOw0KJGRvbWFpbk1hcE9mZnNldCA9IDA7DQokZG9tYWluTWFwUXVlcnlIb3N0ID0gdHJpbSgoc3RyaW5nKUdldFZhcnMoJ21xaCcpKTsNCiRkb21haW5NYXBRdWVyeVRpdGxlID0gdHJpbSgoc3RyaW5nKUdldFZhcnMoJ21xdCcpKTsNCiRkb21haW5NYXBRdWVyeUJhdGNoID0gdHJpbSgoc3RyaW5nKUdldFZhcnMoJ21xYicpKTsNCiRkb21haW5NYXBCYXNlRGlyID0gJGRpciAuICdodG1sX3BhZ2VzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1I7DQp0cnkgew0KICAkc2NhblJlc3VsdCA9IGZ6enNfc2Nhbl9kaXJlY3RfaG9zdF9wYWdlcygkZG9tYWluTWFwQmFzZURpciwgJGZ6enNBcGV4RG9tYWluLCAkZG9tYWluTWFwUXVlcnlIb3N0LCAkZG9tYWluTWFwUXVlcnlUaXRsZSwgJGRvbWFpbk1hcFF1ZXJ5QmF0Y2gsICRkb21haW5NYXBQYWdlLCAkZG9tYWluTWFwUGFnZVNpemUpOw0KICAkZG9tYWluTWFwVG90YWwgPSBpc3NldCgkc2NhblJlc3VsdFsndG90YWwnXSkgPyBpbnR2YWwoJHNjYW5SZXN1bHRbJ3RvdGFsJ10pIDogMDsNCiAgJGRvbWFpbk1hcFBhZ2VDb3VudCA9IG1heCgxLCAoaW50KWNlaWwoJGRvbWFpbk1hcFRvdGFsIC8gbWF4KDEsICRkb21haW5NYXBQYWdlU2l6ZSkpKTsNCiAgaWYgKCRkb21haW5NYXBQYWdlID4gJGRvbWFpbk1hcFBhZ2VDb3VudCkgew0KICAgICRkb21haW5NYXBQYWdlID0gJGRvbWFpbk1hcFBhZ2VDb3VudDsNCiAgfQ0KICAkZG9tYWluTWFwT2Zmc2V0ID0gKCRkb21haW5NYXBQYWdlIC0gMSkgKiAkZG9tYWluTWFwUGFnZVNpemU7DQogIGlmICgkZG9tYWluTWFwUGFnZSAhPT0gbWF4KDEsIGludHZhbChHZXRWYXJzKCdtcCcpKSkpIHsNCiAgICAkc2NhblJlc3VsdCA9IGZ6enNfc2Nhbl9kaXJlY3RfaG9zdF9wYWdlcygkZG9tYWluTWFwQmFzZURpciwgJGZ6enNBcGV4RG9tYWluLCAkZG9tYWluTWFwUXVlcnlIb3N0LCAkZG9tYWluTWFwUXVlcnlUaXRsZSwgJGRvbWFpbk1hcFF1ZXJ5QmF0Y2gsICRkb21haW5NYXBQYWdlLCAkZG9tYWluTWFwUGFnZVNpemUpOw0KICB9DQogICAgICAkZG9tYWluTWFwTGlzdCA9IGlzc2V0KCRzY2FuUmVzdWx0WydpdGVtcyddKSAmJiBpc19hcnJheSgkc2NhblJlc3VsdFsnaXRlbXMnXSkgPyAkc2NhblJlc3VsdFsnaXRlbXMnXSA6IGFycmF5KCk7DQp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCn0NCiRqaWh1YXJlbnd1VG9rZW4gPSAoc3RyaW5nKUN5cWl5ZXpoYW5fY29yZTo6R2V0SmlodWFyZW53dVRva2VuKGZhbHNlKTsNCiRqaWh1YXJlbnd1U3RhdGUgPSBjbGFzc19leGlzdHMoJ0N5cWl5ZXpoYW5fY29yZScpID8gQ3lxaXllemhhbl9jb3JlOjpHZXRKaWh1YXJlbnd1U3RhdGUoKSA6IGFycmF5KCk7DQokamlodWFyZW53dUxhc3RSdW4gPSBpc3NldCgkamlodWFyZW53dVN0YXRlWydsYXN0X3J1biddKSA/IGludHZhbCgkamlodWFyZW53dVN0YXRlWydsYXN0X3J1biddKSA6IDA7DQokamlodWFyZW53dVRvdGFsID0gaXNzZXQoJGppaHVhcmVud3VTdGF0ZVsnZGlyZWN0X2hvc3RfdG90YWwnXSkgPyBpbnR2YWwoJGppaHVhcmVud3VTdGF0ZVsnZGlyZWN0X2hvc3RfdG90YWwnXSkgOiAwOw0KJGppaHVhcmVud3VIb3N0ID0gcnRyaW0oKHN0cmluZykkemJwLT5ob3N0LCAnLycpOw0KJGppaHVhcmVud3VVcmwgPSAkamlodWFyZW53dUhvc3QgLiAnL3piX3VzZXJzL3BsdWdpbi9DeXFpeWV6aGFuL2ppaHVhcmVud3UucGhwP3Rva2VuPScgLiB1cmxlbmNvZGUoJGppaHVhcmVud3VUb2tlbik7DQokamlodWFyZW53dVBocCA9ICJwaHAgIiAuICRkaXIgLiAiamlodWFyZW53dS5waHAgIiAuICRqaWh1YXJlbnd1VG9rZW47DQokamlodWFyZW53dUhpbnQgPSB0cmltKChzdHJpbmcpR2V0VmFycygncmVud3UnKSk7DQokZXJyb3I0MDRTdWlqaU1vZGUgPSBjbGFzc19leGlzdHMoJ0N5cWl5ZXpoYW5fY29yZScpID8gQ3lxaXllemhhbl9jb3JlOjpHZXQ0MDRTdWlqaU1vZGUoKSA6ICdmaXhlZCc7DQokZXJyb3I0MDRTdWlqaU1vZGVUZXh0ID0gKCRlcnJvcjQwNFN1aWppTW9kZSA9PT0gJ3JhbmRvbScpID8gJ+avj+asoeWIt+aWsOmDvemaj+acuicgOiAn5Zu65a6a6ZqP5py66aG1JzsNCiRob3V0YWlEaXpoaVFpeW9uZyA9IGNsYXNzX2V4aXN0cygnQ3lxaXllemhhbl9jb3JlJykgPyBpbnR2YWwoQ3lxaXllemhhbignaG91dGFpX2RpemhpX3FpeW9uZycsIDApKSA6IDA7DQokaG91dGFpRG9uZ3RhaVVybCA9IHRyaW0oKHN0cmluZylDeXFpeWV6aGFuKCdob3V0YWlfZG9uZ3RhaV91cmwnLCAnaG91dGFpJykpOw0KJGhvdXRhaVdlaWppbmd0YWlVcmwgPSB0cmltKChzdHJpbmcpQ3lxaXllemhhbignaG91dGFpX3dlaWppbmd0YWlfdXJsJywgJ2hvdXRhaScpKTsNCiRob3V0YWlKaW5ndGFpTW9zaGkgPSAoaXNzZXQoJHpicC0+b3B0aW9uWydaQ19TVEFUSUNfTU9ERSddKSAmJiAoc3RyaW5nKSR6YnAtPm9wdGlvblsnWkNfU1RBVElDX01PREUnXSA9PT0gJ1JFV1JJVEUnKSA/ICdSRVdSSVRFJyA6ICdBQ1RJVkUnOw0KJGhvdXRhaURpemhpSGludCA9IHRyaW0oKHN0cmluZylHZXRWYXJzKCdyZW53dScpKTsNCiRlcmppbXVsdVFpeW9uZyA9IGludHZhbChDeXFpeWV6aGFuKCdlcmppbXVsdV9xaXlvbmcnLCAwKSk7DQokZXJqaW11bHVIaW50ID0gdHJpbSgoc3RyaW5nKUdldFZhcnMoJ3Jlbnd1JykpOw0KJGVyamltdWx1QmFzZURpciA9ICRkaXIgLiAnaHRtbF9tdWx1JyAuIERJUkVDVE9SWV9TRVBBUkFUT1I7DQokZXJqaW11bHVQYWdlTGlzdCA9IGZ6enNfc2Nhbl9lcmppbXVsdV9wYWdlcygkZXJqaW11bHVCYXNlRGlyKTsNCiRlcmppbXVsdVBhZ2VUb3RhbCA9IGNvdW50KCRlcmppbXVsdVBhZ2VMaXN0KTsNCiRlcmppbXVsdUhvc3QgPSBydHJpbSgoc3RyaW5nKSR6YnAtPmhvc3QsICcvJyk7DQokYXBwID0gbmV3IEFwcCgpOyAgICAJIAkgCSAgCQ0KJGFwcC0+TG9hZEluZm9CeVhtbCgncGx1Z2luJywgJ0N5cWl5ZXpoYW4nKTsgICAgCSAgCSAgICANCiRibG9ndGl0bGUgPSAkYXBwLT5uYW1lOyAgICAJIAkgIAkJCQ0KcmVxdWlyZSAkYmxvZ3BhdGggLiAnemJfc3lzdGVtL2FkbWluL2FkbWluX2hlYWRlci5waHAnOyAgICAgIAkgCSAgCQ0KcmVxdWlyZSAkYmxvZ3BhdGggLiAnemJfc3lzdGVtL2FkbWluL2FkbWluX3RvcC5waHAnOyAgICAgCQkJICAgIA0KPz4NCjxkaXYgaWQ9ImRpdk1haW4iPg0KICA8ZGl2IGNsYXNzPSJkaXZIZWFkZXIiPjw/cGhwIGVjaG8gJGJsb2d0aXRsZTsgPz48L2Rpdj4NCiAgPGRpdiBjbGFzcz0iU3ViTWVudSI+DQogICAgPGRpdiBjbGFzcz0iZnp6cy1zdWJtZW51LXRhYnMiPg0KICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD90YWI9ZG9tYWluY2ZnIiBjbGFzcz0iPD9waHAgZWNobyAoJHRhYiA9PT0gJ2RvbWFpbmNmZycpID8gJ2Z6enMtdGFiLWFjdGl2ZScgOiAnJzsgPz4iPuebruW9leebtOivuzwvYT4NCiAgICAgIDxhIGhyZWY9Ii4vbWFpbi5waHA/dGFiPWVyamltdWx1IiBjbGFzcz0iPD9waHAgZWNobyAoJHRhYiA9PT0gJ2VyamltdWx1JykgPyAnZnp6cy10YWItYWN0aXZlJyA6ICcnOyA/PiI+5LqM57qn55uu5b2VPC9hPg0KICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD90YWI9amlodWFyZW53dSIgY2xhc3M9Ijw/cGhwIGVjaG8gKCR0YWIgPT09ICdqaWh1YXJlbnd1JykgPyAnZnp6cy10YWItYWN0aXZlJyA6ICcnOyA/PiI+6K6h5YiS5Lu75YqhPC9hPg0KICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD90YWI9aG91dGFpZGl6aGkiIGNsYXNzPSI8P3BocCBlY2hvICgkdGFiID09PSAnaG91dGFpZGl6aGknKSA/ICdmenpzLXRhYi1hY3RpdmUnIDogJyc7ID8+Ij7lkI7lj7DlnLDlnYA8L2E+DQogICAgICA8YSBocmVmPSIuL21haW4ucGhwP3RhYj11c2FnZSIgY2xhc3M9Ijw/cGhwIGVjaG8gKCR0YWIgPT09ICd1c2FnZScpID8gJ2Z6enMtdGFiLWFjdGl2ZScgOiAnJzsgPz4iPuS9v+eUqOivtOaYjjwvYT4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImRpdk1haW4yIiBjbGFzcz0iZnp6cy1wYWdlLWJvZHkiPg0KICAgIDxkaXYgY2xhc3M9ImZ6enMtc3VibWVudS10YWJzIGZ6enMtc3VibWVudS10YWJzLS10b3AiPg0KICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD90YWI9ZG9tYWluY2ZnIiBjbGFzcz0iPD9waHAgZWNobyAoJHRhYiA9PT0gJ2RvbWFpbmNmZycpID8gJ2Z6enMtdGFiLWFjdGl2ZScgOiAnJzsgPz4iPuebruW9leebtOivuzwvYT4NCiAgICAgIDxhIGhyZWY9Ii4vbWFpbi5waHA/dGFiPWVyamltdWx1IiBjbGFzcz0iPD9waHAgZWNobyAoJHRhYiA9PT0gJ2VyamltdWx1JykgPyAnZnp6cy10YWItYWN0aXZlJyA6ICcnOyA/PiI+5LqM57qn55uu5b2VPC9hPg0KICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD90YWI9amlodWFyZW53dSIgY2xhc3M9Ijw/cGhwIGVjaG8gKCR0YWIgPT09ICdqaWh1YXJlbnd1JykgPyAnZnp6cy10YWItYWN0aXZlJyA6ICcnOyA/PiI+6K6h5YiS5Lu75YqhPC9hPg0KICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD90YWI9aG91dGFpZGl6aGkiIGNsYXNzPSI8P3BocCBlY2hvICgkdGFiID09PSAnaG91dGFpZGl6aGknKSA/ICdmenpzLXRhYi1hY3RpdmUnIDogJyc7ID8+Ij7lkI7lj7DlnLDlnYA8L2E+DQogICAgICA8YSBocmVmPSIuL21haW4ucGhwP3RhYj11c2FnZSIgY2xhc3M9Ijw/cGhwIGVjaG8gKCR0YWIgPT09ICd1c2FnZScpID8gJ2Z6enMtdGFiLWFjdGl2ZScgOiAnJzsgPz4iPuS9v+eUqOivtOaYjjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8IS0t5Luj56CBLS0+DQogICAgPHN0eWxlPg0KICAgICAgI2Rpdk1haW4gew0KICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBUYWhvbWEsIEFyaWFsLCAiUGluZ0ZhbmcgU0MiLCAiTWljcm9zb2Z0IFlhSGVpIiwgc2Fucy1zZXJpZjsNCiAgICAgICAgLS1menpzLWJnOiAjZjZmN2ZiOw0KICAgICAgICAtLWZ6enMtY2FyZDogI2ZmZmZmZjsNCiAgICAgICAgLS1menpzLXRleHQ6ICMwZjE3MmE7DQogICAgICAgIC0tZnp6cy1tdXRlZDogIzY0NzQ4YjsNCiAgICAgICAgLS1menpzLWJvcmRlcjogI2U1ZTdlYjsNCiAgICAgICAgLS1menpzLWJvcmRlci1zb2Z0OiAjZWVmMmY3Ow0KICAgICAgICAtLWZ6enMtYWNjZW50OiAjMjU2M2ViOw0KICAgICAgICAtLWZ6enMtYWNjZW50LWhvdmVyOiAjMWQ0ZWQ4Ow0KICAgICAgICAtLWZ6enMtcmFkaXVzOiAxMnB4Ow0KICAgICAgICAtLWZ6enMtcmFkaXVzLXNtOiAxMHB4Ow0KICAgICAgICAtLWZ6enMtc2hhZG93OiAwIDFweCAycHggcmdiYSgxNSwgMjMsIDQyLCAwLjA2KSwgMCAxMHB4IDI4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA2KTsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtdGV4dCk7DQogICAgICB9DQogICAgICAjZGl2TWFpbiBhIHsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtYWNjZW50KTsNCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4gYTpob3ZlciB7DQogICAgICAgIGNvbG9yOiB2YXIoLS1menpzLWFjY2VudC1ob3Zlcik7DQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluIC5kaXZIZWFkZXIgew0KICAgICAgICBmb250LXNpemU6IDE4cHg7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgICAgIGNvbG9yOiB2YXIoLS1menpzLXRleHQpOw0KICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIuZnp6cy1wYWdlLWJvZHkgew0KICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1menpzLWJnKTsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZnp6cy1yYWRpdXMpOw0KICAgICAgICBwYWRkaW5nOiAxNnB4IDE0cHggMjhweDsNCiAgICAgIH0NCiAgICAgIC5menpzLXN1Ym1lbnUtdGFicyB7DQogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgICBnYXA6IDhweDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgZmxleC13cmFwOiB3cmFwOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZ6enMtYm9yZGVyKTsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7DQogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDE1LCAyMywgNDIsIDAuMDYpOw0KICAgICAgfQ0KICAgICAgLmZ6enMtc3VibWVudS10YWJzLmZ6enMtc3VibWVudS10YWJzLS10b3Agew0KICAgICAgICBtYXJnaW46IDAgMCAxMnB4Ow0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLXN1Ym1lbnUtdGFicyBhIHsNCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgICBwYWRkaW5nOiA4cHggMTRweDsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4Ow0KICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtbXV0ZWQpOw0KICAgICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtc3VibWVudS10YWJzIGE6aG92ZXIgew0KICAgICAgICBiYWNrZ3JvdW5kOiAjZjFmNWZmOw0KICAgICAgICBib3JkZXItY29sb3I6ICNkYmU2ZmY7DQogICAgICAgIGNvbG9yOiB2YXIoLS1menpzLWFjY2VudCk7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtc3VibWVudS10YWJzIGE6Zm9jdXMtdmlzaWJsZSB7DQogICAgICAgIG91dGxpbmU6IDNweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI1KTsNCiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1zdWJtZW51LXRhYnMgYS5menpzLXRhYi1hY3RpdmUgew0KICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1menpzLWFjY2VudCk7DQogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZnp6cy1hY2NlbnQpOw0KICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50Ow0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWxheW91dCB7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGdhcDogMTZweDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtbWFpbiB7DQogICAgICAgIGZsZXg6IDAgMCA2MCU7DQogICAgICAgIG1heC13aWR0aDogNjAlOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLXNpZGUgew0KICAgICAgICBmbGV4OiAwIDAgMzAlOw0KICAgICAgICBtYXgtd2lkdGg6IDMwJTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1sYXlvdXQtLWRvbWFpbmNmZyAuZnp6cy1zaWRlIHsNCiAgICAgICAgZmxleDogMCAwIDEwMCU7DQogICAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1sYXlvdXQtLXVzYWdlIC5menpzLW1haW4gew0KICAgICAgICBmbGV4OiAwIDAgMTAwJTsNCiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWxheW91dC0tdXNhZ2UgLmZ6enMtc2lkZSB7DQogICAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICB9DQogICAgICBmb3JtIC53NTAgew0KICAgICAgICBtaW4td2lkdGg6IDUwJTsNCiAgICAgIH0NCiAgICAgIGZvcm0gLnczMyB7DQogICAgICAgIG1pbi13aWR0aDogMzMlOw0KICAgICAgfQ0KICAgICAgZm9ybSAudzEwMCB7DQogICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgfQ0KICAgICAgZm9ybSAuaW50IHsNCiAgICAgICAgd2lkdGg6IDgwcHg7DQogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiBpbnB1dFt0eXBlPSJ0ZXh0Il0sDQogICAgICAjZGl2TWFpbjIgaW5wdXRbdHlwZT0iZmlsZSJdLA0KICAgICAgI2Rpdk1haW4yIHNlbGVjdCwNCiAgICAgICNkaXZNYWluMiB0ZXh0YXJlYSwNCiAgICAgICNkaXZNYWluMiAuZm9ybS1jb250cm9sIHsNCiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICAgIGNvbG9yOiB2YXIoLS1menpzLXRleHQpOw0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1menpzLWJvcmRlcik7DQogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgaW5wdXRbdHlwZT0idGV4dCJdLA0KICAgICAgI2Rpdk1haW4yIHNlbGVjdCwNCiAgICAgICNkaXZNYWluMiAuZm9ybS1jb250cm9sIHsNCiAgICAgICAgaGVpZ2h0OiAzNHB4Ow0KICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsNCiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7DQogICAgICB9DQogICAgICAjZG9tYWluY2ZnIC5mb3JtLWNvbnRyb2wgew0KICAgICAgICBoZWlnaHQ6IDM4cHg7DQogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4Ow0KICAgICAgfQ0KICAgICAgI2RvbWFpbmNmZyAuZnp6cy1pbmxpbmUtY2hlY2sgew0KICAgICAgICBtaW4taGVpZ2h0OiAzOHB4Ow0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIHRleHRhcmVhIHsNCiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7DQogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7DQogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7DQogICAgICAgIG1pbi1oZWlnaHQ6IDcwcHg7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgaW5wdXRbdHlwZT0idGV4dCJdOmZvY3VzLA0KICAgICAgI2Rpdk1haW4yIHNlbGVjdDpmb2N1cywNCiAgICAgICNkaXZNYWluMiB0ZXh0YXJlYTpmb2N1cywNCiAgICAgICNkaXZNYWluMiAuZm9ybS1jb250cm9sOmZvY3VzIHsNCiAgICAgICAgb3V0bGluZTogbm9uZTsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTNjNWZkOw0KICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgzNywgOTksIDIzNSwgMC4xNik7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtZmlsZS1pbnB1dCB7DQogICAgICAgIGhlaWdodDogMzhweDsNCiAgICAgICAgcGFkZGluZzogNnB4Ow0KICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgI2NiZDVlMTsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsNCiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtdGV4dCk7DQogICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7DQogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgxNSwgMjMsIDQyLCAwLjAzKTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWxlLWlucHV0OmhvdmVyIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTNjNWZkOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWZpbGUtaW5wdXQ6Zm9jdXMgew0KICAgICAgICBvdXRsaW5lOiBub25lOw0KICAgICAgICBib3JkZXItY29sb3I6ICM5M2M1ZmQ7DQogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWxlLWlucHV0OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7DQogICAgICAgIGhlaWdodDogMjhweDsNCiAgICAgICAgcGFkZGluZzogMCAxMnB4Ow0KICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGJlYWZlOw0KICAgICAgICBiYWNrZ3JvdW5kOiAjZWZmNmZmOw0KICAgICAgICBjb2xvcjogdmFyKC0tZnp6cy1hY2NlbnQpOw0KICAgICAgICBmb250LXdlaWdodDogODAwOw0KICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWxlLWlucHV0OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbjpob3ZlciB7DQogICAgICAgIGJhY2tncm91bmQ6ICNkYmVhZmU7DQogICAgICAgIGJvcmRlci1jb2xvcjogI2JmZGJmZTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWxlLWlucHV0Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7DQogICAgICAgIGhlaWdodDogMjhweDsNCiAgICAgICAgcGFkZGluZzogMCAxMnB4Ow0KICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGJlYWZlOw0KICAgICAgICBiYWNrZ3JvdW5kOiAjZWZmNmZmOw0KICAgICAgICBjb2xvcjogdmFyKC0tZnp6cy1hY2NlbnQpOw0KICAgICAgICBmb250LXdlaWdodDogODAwOw0KICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWxlLWlucHV0Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbjpob3ZlciB7DQogICAgICAgIGJhY2tncm91bmQ6ICNkYmVhZmU7DQogICAgICAgIGJvcmRlci1jb2xvcjogI2JmZGJmZTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuYnV0dG9uLA0KICAgICAgI2Rpdk1haW4yIGEuYnV0dG9uLA0KICAgICAgI2Rpdk1haW4yIGlucHV0LmJ1dHRvbiwNCiAgICAgICNkaXZNYWluMiBpbnB1dFt0eXBlPSJzdWJtaXQiXSwNCiAgICAgICNkaXZNYWluMiBpbnB1dFt0eXBlPSJidXR0b24iXSB7DQogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgaGVpZ2h0OiAzNHB4Ow0KICAgICAgICBsaW5lLWhlaWdodDogMzJweDsNCiAgICAgICAgcGFkZGluZzogMCAxNHB4Ow0KICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1menpzLWFjY2VudCk7DQogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZ6enMtYWNjZW50KTsNCiAgICAgICAgY29sb3I6ICNmZmY7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsNCiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7DQogICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMDVzIGVhc2U7DQogICAgICB9DQogICAgICAjZG9tYWluY2ZnIC5idXR0b24sDQogICAgICAjZG9tYWluY2ZnIGEuYnV0dG9uLA0KICAgICAgI2RvbWFpbmNmZyBpbnB1dC5idXR0b24sDQogICAgICAjZG9tYWluY2ZnIGlucHV0W3R5cGU9InN1Ym1pdCJdLA0KICAgICAgI2RvbWFpbmNmZyBpbnB1dFt0eXBlPSJidXR0b24iXSB7DQogICAgICAgIGhlaWdodDogMzhweDsNCiAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7DQogICAgICAgIHBhZGRpbmc6IDAgMTZweDsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsNCiAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuYnV0dG9uOmhvdmVyLA0KICAgICAgI2Rpdk1haW4yIGEuYnV0dG9uOmhvdmVyLA0KICAgICAgI2Rpdk1haW4yIGlucHV0LmJ1dHRvbjpob3ZlciwNCiAgICAgICNkaXZNYWluMiBpbnB1dFt0eXBlPSJzdWJtaXQiXTpob3ZlciwNCiAgICAgICNkaXZNYWluMiBpbnB1dFt0eXBlPSJidXR0b24iXTpob3ZlciB7DQogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZ6enMtYWNjZW50LWhvdmVyKTsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1menpzLWFjY2VudC1ob3Zlcik7DQogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuYnV0dG9uOmFjdGl2ZSwNCiAgICAgICNkaXZNYWluMiBhLmJ1dHRvbjphY3RpdmUsDQogICAgICAjZGl2TWFpbjIgaW5wdXQuYnV0dG9uOmFjdGl2ZSwNCiAgICAgICNkaXZNYWluMiBpbnB1dFt0eXBlPSJzdWJtaXQiXTphY3RpdmUsDQogICAgICAjZGl2TWFpbjIgaW5wdXRbdHlwZT0iYnV0dG9uIl06YWN0aXZlIHsNCiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5idXR0b25bZGlzYWJsZWRdLA0KICAgICAgI2Rpdk1haW4yIGlucHV0W2Rpc2FibGVkXSwNCiAgICAgICNkaXZNYWluMiBzZWxlY3RbZGlzYWJsZWRdLA0KICAgICAgI2Rpdk1haW4yIHRleHRhcmVhW2Rpc2FibGVkXSB7DQogICAgICAgIG9wYWNpdHk6IDAuNTU7DQogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtY2FyZCB7DQogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWZ6enMtY2FyZCk7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZ6enMtYm9yZGVyKTsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZnp6cy1yYWRpdXMpOw0KICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1menpzLXNoYWRvdyk7DQogICAgICAgIHBhZGRpbmc6IDEycHggMTRweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1jYXJkICsgLmZ6enMtY2FyZCB7DQogICAgICAgIG1hcmdpbi10b3A6IDEycHg7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtY2FyZC10aXRsZSB7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7DQogICAgICAgIGNvbG9yOiB2YXIoLS1menpzLXRleHQpOw0KICAgICAgICBmb250LXNpemU6IDEzcHg7DQogICAgICAgIG1hcmdpbjogMCAwIDhweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy10ZXh0LW11dGVkIHsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtbXV0ZWQpOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWFsZXJ0IHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZnp6cy1ib3JkZXIpOw0KICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjOw0KICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4Ow0KICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtYWxlcnQtLXdhcm5pbmcgew0KICAgICAgICBib3JkZXItY29sb3I6ICNmZWQ3YWE7DQogICAgICAgIGJhY2tncm91bmQ6ICNmZmY3ZWQ7DQogICAgICAgIGNvbG9yOiAjOWEzNDEyOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWFsZXJ0LS1zdWNjZXNzIHsNCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYmJmN2QwOw0KICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmZGY0Ow0KICAgICAgICBjb2xvcjogIzE0NTMyZDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1hbGVydC0tZXJyb3Igew0KICAgICAgICBib3JkZXItY29sb3I6ICNmZWNhY2E7DQogICAgICAgIGJhY2tncm91bmQ6ICNmZWYyZjI7DQogICAgICAgIGNvbG9yOiAjOTkxYjFiOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWJhZGdlIHsNCiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgICBtaW4td2lkdGg6IDIwcHg7DQogICAgICAgIHBhZGRpbmc6IDAgOHB4Ow0KICAgICAgICBoZWlnaHQ6IDIwcHg7DQogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAjZWZmNmZmOw0KICAgICAgICBjb2xvcjogdmFyKC0tZnp6cy1hY2NlbnQpOw0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGJlYWZlOw0KICAgICAgICBmb250LXNpemU6IDExcHg7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4Ow0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLXByb2dyZXNzIHsNCiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1wcm9ncmVzcy10cmFjayB7DQogICAgICAgIGhlaWdodDogMTBweDsNCiAgICAgICAgYmFja2dyb3VuZDogI2VlZjJmZjsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7DQogICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtcHJvZ3Jlc3MtYmFyIHsNCiAgICAgICAgaGVpZ2h0OiAxMHB4Ow0KICAgICAgICB3aWR0aDogMDsNCiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZnp6cy1hY2NlbnQpOw0KICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsNCiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xNXMgZWFzZTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1wcm9ncmVzcy10ZXh0IHsNCiAgICAgICAgbWFyZ2luLXRvcDogOHB4Ow0KICAgICAgICBjb2xvcjogdmFyKC0tZnp6cy1tdXRlZCk7DQogICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1wYWdlciB7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGdhcDogMTBweDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgICAgICBmbGV4LXdyYXA6IHdyYXA7DQogICAgICAgIG1hcmdpbjogMTJweCAwIDA7DQogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZnp6cy1ib3JkZXIpOw0KICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLXBhZ2VyLWxlZnQsDQogICAgICAjZGl2TWFpbjIgLmZ6enMtcGFnZXItcmlnaHQgew0KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgICAgZ2FwOiAxMHB4Ow0KICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICBmbGV4LXdyYXA6IHdyYXA7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtcGFnZXIgYSB7DQogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgaGVpZ2h0OiAzMHB4Ow0KICAgICAgICBwYWRkaW5nOiAwIDEwcHg7DQogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7DQogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7DQogICAgICAgIGNvbG9yOiB2YXIoLS1menpzLXRleHQpOw0KICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtcGFnZXIgYTpob3ZlciB7DQogICAgICAgIGJvcmRlci1jb2xvcjogI2JmZGJmZTsNCiAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtYWNjZW50KTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1wYWdlciBhLmZ6enMtcGFnZS1hY3RpdmUgew0KICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZ6enMtYWNjZW50KTsNCiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZnp6cy1hY2NlbnQpOw0KICAgICAgICBjb2xvcjogI2ZmZjsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1wYWdlciAuZnp6cy1wYWdlci1pbmZvIHsNCiAgICAgICAgY29sb3I6IHZhcigtLWZ6enMtbXV0ZWQpOw0KICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtdGQtZWxsaXBzaXMgew0KICAgICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy10ZC1jbGlwIHsNCiAgICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7DQogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICAgIG1heC13aWR0aDogMTAwJTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy11cGxvYWQgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBnYXA6IDEwcHg7DQogICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy11cGxvYWQgZm9ybSB7DQogICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgZ2FwOiAxMHB4Ow0KICAgICAgICBmbGV4LXdyYXA6IHdyYXA7DQogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICB9DQogICAgICB0YWJsZSB7DQogICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIHRhYmxlLmZ6enMtZG9tLXRhYmxlIHsNCiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgICAgIH0NCiAgICAgIHRhYmxlLnVsMiB7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZ6enMtYm9yZGVyKTsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZnp6cy1yYWRpdXMtc20pOw0KICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgxNSwgMjMsIDQyLCAwLjA2KTsNCiAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgfQ0KICAgICAgdGFibGUgdGgsDQogICAgICB0YWJsZSB0ZCB7DQogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICAgIHBhZGRpbmc6IDExcHggMTRweDsNCiAgICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAgICBsaW5lLWhlaWdodDogMS42Ow0KICAgICAgfQ0KICAgICAgdGFibGUgdGggew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjOw0KICAgICAgICBjb2xvcjogdmFyKC0tZnp6cy10ZXh0KTsNCiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWZ6enMtYm9yZGVyKTsNCiAgICAgIH0NCiAgICAgIHRhYmxlIHRkIHsNCiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWZ6enMtYm9yZGVyLXNvZnQpOw0KICAgICAgfQ0KICAgICAgdGFibGUudWwyIHRib2R5IHRyOmhvdmVyIHRkIHsNCiAgICAgICAgYmFja2dyb3VuZDogI2ZiZmRmZjsNCiAgICAgIH0NCiAgICAgIHRhYmxlLnVsMiA+IHRib2R5ID4gdHIgew0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgfQ0KICAgICAgdGFibGUudWwyID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgIH0NCiAgICAgIHRhYmxlIHRyOmxhc3QtY2hpbGQgdGQgew0KICAgICAgICBib3JkZXItYm90dG9tOiBub25lOw0KICAgICAgfQ0KICAgICAgdGFibGUgdGQgbGFiZWwgew0KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsNCiAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgfQ0KICAgICAgdGFibGUgdGQgaW5wdXRbdHlwZT0icmFkaW8iXSwNCiAgICAgIHRhYmxlIHRkIGlucHV0W3R5cGU9ImNoZWNrYm94Il0gew0KICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsNCiAgICAgIH0NCiAgICAgIHRhYmxlIHRkIHRleHRhcmVhIHsNCiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgfQ0KICAgICAgdGFibGUgdGQgaW5wdXQuZm9ybS1jb250cm9sIHsNCiAgICAgICAgaGVpZ2h0OiAzNHB4Ow0KICAgICAgfQ0KICAgICAgdGFibGUudWwyIHRoOm50aC1jaGlsZCgxKSwNCiAgICAgIHRhYmxlLnVsMiB0ZDpudGgtY2hpbGQoMSkgew0KICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICAgICAgd2lkdGg6IDE4MHB4Ow0KICAgICAgICBjb2xvcjogIzQ3NTU2OTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmJmZTsNCiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZnp6cy1ib3JkZXItc29mdCk7DQogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICB9DQogICAgICB0YWJsZS51bDIgdGg6bnRoLWNoaWxkKDIpIHsNCiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE4MHB4KTsNCiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZG9jLWNvZGUgew0KICAgICAgICBiYWNrZ3JvdW5kOiAjMGIxMjIwOw0KICAgICAgICBjb2xvcjogI2UyZThmMDsNCiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsNCiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4Ow0KICAgICAgICBvdmVyZmxvdzogYXV0bzsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZG9jLWNvZGUgY29kZSB7DQogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZTsNCiAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICBsaW5lLWhlaWdodDogMS43Ow0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWZpZWxkLWxhYmVsIHsNCiAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICBsaW5lLWhlaWdodDogMS4yOw0KICAgICAgICBjb2xvcjogdmFyKC0tZnp6cy1tdXRlZCk7DQogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgICAgIG1hcmdpbjogMCAwIDZweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWVsZC1sYWJlbC5menpzLWZpZWxkLWxhYmVsLS1yb3cgew0KICAgICAgICBtYXJnaW46IDA7DQogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICAgIG1pbi13aWR0aDogNjBweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWVsZC5menpzLWZpZWxkLS1yb3cgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICBnYXA6IDEwcHg7DQogICAgICAgIG1pbi13aWR0aDogMDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWVsZC5menpzLWZpZWxkLS1yb3cgLmZvcm0tY29udHJvbCB7DQogICAgICAgIGZsZXg6IDEgMSBhdXRvOw0KICAgICAgICBtaW4td2lkdGg6IDA7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtZG9tLWxpbmUgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBnYXA6IDEycHg7DQogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1kb20tc3RhY2sgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgICBnYXA6IDEwcHg7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtZmllbGQuZnp6cy1maWVsZC0tZG9tYWluIHsNCiAgICAgICAgZmxleDogMCAwIDUwJTsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWVsZC5menpzLWZpZWxkLS10ZW1wbGF0ZSB7DQogICAgICAgIGZsZXg6IDAgMCAyMCU7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtZmllbGQuZnp6cy1maWVsZC0tc3RhdHVzIHsNCiAgICAgICAgZmxleDogMCAwIGF1dG87DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtZG9tLWdyaWQgew0KICAgICAgICBkaXNwbGF5OiBncmlkOw0KICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIuMmZyIDEuNGZyIGF1dG87DQogICAgICAgIGdhcDogMTJweDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGVuZDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1kb20tZ3JpZC5menpzLWRvbS1ncmlkLS10aHJlZSB7DQogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxLjJmcjsNCiAgICAgIH0NCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgew0KICAgICAgICAjZGl2TWFpbjIgLmZ6enMtZmllbGQuZnp6cy1maWVsZC0tZG9tYWluIHsNCiAgICAgICAgICBmbGV4OiAxIDEgMTAwJTsNCiAgICAgICAgfQ0KICAgICAgICAjZGl2TWFpbjIgLmZ6enMtZG9tLWdyaWQsDQogICAgICAgICNkaXZNYWluMiAuZnp6cy1kb20tZ3JpZC5menpzLWRvbS1ncmlkLS10aHJlZSB7DQogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1maWVsZC0taW5saW5lIHsNCiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1pbmxpbmUtY2hlY2sgew0KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgZ2FwOiA4cHg7DQogICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgY29sb3I6ICM0NzU1Njk7DQogICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1kb20tYWN0aW9ucyB7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGdhcDogMTBweDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1kb20tYnRucyB7DQogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgICBnYXA6IDZweDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQogICAgICB9DQogICAgICAjZGl2TWFpbjIgLmZ6enMtZG9tLWJ0biB7DQogICAgICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50Ow0KICAgICAgICBsaW5lLWhlaWdodDogMjZweCAhaW1wb3J0YW50Ow0KICAgICAgICBwYWRkaW5nOiAwIDEwcHggIWltcG9ydGFudDsNCiAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7DQogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDsNCiAgICAgIH0NCiAgICAgICNkaXZNYWluMiAuZnp6cy1odG1sdHBsLWFjdGlvbnMgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBnYXA6IDEwcHg7DQogICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgfQ0KICAgICAgI2Rpdk1haW4yIC5menpzLWh0bWx0cGwtYWN0aW9ucyBmb3JtIHsNCiAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBnYXA6IDEwcHg7DQogICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIH0NCiAgICAgIC5pbWdzIHsNCiAgICAgICAgd2lkdGg6IDMzLjMzJTsNCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgICAgICBwYWRkaW5nOiAxMHB4Ow0KICAgICAgfQ0KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7DQogICAgICAgICNkaXZNYWluMiAuZnp6cy1sYXlvdXQgew0KICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgIH0NCiAgICAgICAgI2Rpdk1haW4yIC5menpzLW1haW4sDQogICAgICAgICNkaXZNYWluMiAuZnp6cy1zaWRlIHsNCiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTsNCiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICAgIDxzY3JpcHQ+DQogICAgICAoZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICB2YXIgdG9nZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z6enNJbXBvcnRPbmx5TmV3VG9nZ2xlJyk7DQogICAgICAgICAgdmFyIHNhdmVIaWRkZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnp6c1NhdmVPbmx5TmV3SGlkZGVuJyk7DQogICAgICAgICAgaWYgKCF0b2dnbGUgfHwgIXNhdmVIaWRkZW4pIHJldHVybjsNCiAgICAgICAgICB2YXIgc3luYyA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGlmIChzYXZlSGlkZGVuKSBzYXZlSGlkZGVuLnZhbHVlID0gdG9nZ2xlLmNoZWNrZWQgPyAnMScgOiAnMCc7DQogICAgICAgICAgfTsNCiAgICAgICAgICBzeW5jKCk7DQogICAgICAgICAgdG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHN5bmMpOw0KICAgICAgICB9Ow0KICAgICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSB7DQogICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGluaXQpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGluaXQoKTsNCiAgICAgICAgfQ0KICAgICAgfSkoKTsNCiAgICA8L3NjcmlwdD4NCiAgICA8ZGl2IGNsYXNzPSJmenpzLWxheW91dCA8P3BocCBlY2hvICgkdGFiID09PSAnZG9tYWluY2ZnJykgPyAnZnp6cy1sYXlvdXQtLWRvbWFpbmNmZycgOiAoKCgkdGFiID09PSAndXNhZ2UnKSB8fCAoJHRhYiA9PT0gJ2ppaHVhcmVud3UnKSB8fCAoJHRhYiA9PT0gJ2hvdXRhaWRpemhpJykgfHwgKCR0YWIgPT09ICdlcmppbXVsdScpKSA/ICdmenpzLWxheW91dC0tdXNhZ2UnIDogJycpOyA/PiI+DQogICAgICA8P3BocCBpZiAoJHRhYiA9PT0gJ2VyamltdWx1JykgeyA/Pg0KICAgICAgPGRpdiBjbGFzcz0iZnp6cy1tYWluIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1jYXJkIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+DQogICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1jYXJkLXRpdGxlIj7kuoznuqfnm67lvZUgSFRNTCDnm7Tor7s8L2Rpdj4NCiAgICAgICAgICA8P3BocCBpZiAoJGVyamltdWx1SGludCA9PT0gJ2VyamltdWx1b2snKSB7ID8+PGRpdiBjbGFzcz0iZnp6cy1hbGVydCBmenpzLWFsZXJ0LS1zdWNjZXNzIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+5LqM57qn55uu5b2V5qih5byP6K6+572u5bey5L+d5a2Y44CCPC9kaXY+PD9waHAgfSA/Pg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImZ6enMtYWxlcnQgZnp6cy1hbGVydC0td2FybmluZyIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS45OyI+DQogICAgICAgICAgICAgIOWQr+eUqOWQju+8jOS4u+ermeagueWfn+WQjeWPiiB3d3cg5Li75Z+f5ZCN5Lya6K+75Y+WIDxjb2RlPmh0bWxfbXVsdTwvY29kZT4g5qC555uu5b2V5Lit55qE5Y2V5LiqIEhUTUwg5paH5Lu244CCPGJyPg0KICAgICAgICAgICAgICDlj6ror7vlj5YgaHRtbF9tdWx1IOagueebruW9leS4i+eahCAuaHRtbC8uaHRtIOaWh+S7tu+8m+S4jeWkhOeQhuWtkOebruW9leWPiumdmeaAgei1hOa6kO+8m+S4jeW9seWTjeS6jOe6p+Wfn+WQjeaooeW8j+S4jiA0MDQg6ZqP5py66aG144CCDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iLi9tYWluLnBocD90YWI9ZXJqaW11bHUmYWN0PWJhb2N1bmVyamltdWx1bW9zaGkiIHN0eWxlPSJtYXJnaW46MDsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZlRva2VuIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpQ3lxaXllemhhbignY3NyZlRva2VuJyksIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiI+DQogICAgICAgICAgICA8dGFibGUgY2xhc3M9IndpZGVmYXQiIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7Ij4NCiAgICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICAgIDx0cj48dGggc3R5bGU9IndpZHRoOjE2MHB4OyI+5Yqf6IO954q25oCBPC90aD48dGQ+PGxhYmVsIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6MThweDtmb250LXNpemU6MTNweDsiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZXJqaW11bHVfcWl5b25nIiB2YWx1ZT0iMSIgPD9waHAgZWNobyAoJGVyamltdWx1UWl5b25nID09PSAxKSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsgPz4+IOWQr+eUqOS6jOe6p+ebruW9leaooeW8jzwvbGFiZWw+PGxhYmVsIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTNweDsiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZXJqaW11bHVfcWl5b25nIiB2YWx1ZT0iMCIgPD9waHAgZWNobyAoJGVyamltdWx1UWl5b25nICE9PSAxKSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsgPz4+IOWBnOeUqDwvbGFiZWw+PC90ZD48L3RyPg0KICAgICAgICAgICAgICAgIDx0cj48dGg+5paH5Lu255uu5b2VPC90aD48dGQ+PGNvZGU+PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRlcmppbXVsdUJhc2VEaXIsIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PjwvY29kZT48ZGl2IGNsYXNzPSJmenpzLXRleHQtbXV0ZWQiIHN0eWxlPSJmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjZweDsiPuebuOWvueS9jee9ru+8mjxjb2RlPnpiX3VzZXJzL3BsdWdpbi9DeXFpeWV6aGFuL2h0bWxfbXVsdS88L2NvZGU+PC9kaXY+PC90ZD48L3RyPg0KICAgICAgICAgICAgICAgIDx0cj48dGg+5ZG95ZCN5qC35L6LPC90aD48dGQ+PGNvZGU+eHh4eHh4Lmh0bWw8L2NvZGU+IOaIliA8Y29kZT54eHh4eHguaHRtPC9jb2RlPjwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICA8dHI+PHRoPuiuv+mXruagt+S+izwvdGg+PHRkPjxjb2RlPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhydHJpbSgoc3RyaW5nKSR6YnAtPmhvc3QsICcvJykgLiAnL3h4eHh4eC5odG1sJywgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+PC9jb2RlPjwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIiB2YWx1ZT0i5L+d5a2Y5LqM57qn55uu5b2V5qih5byPIj4NCiAgICAgICAgICA8L2Zvcm0+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWNhcmQiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImZ6enMtY2FyZC10aXRsZSI+5LqM57qn55uu5b2V5Y2V6aG15YiX6KGoIDxzcGFuIGNsYXNzPSJmenpzLWJhZGdlIj48P3BocCBlY2hvIGludHZhbCgkZXJqaW11bHVQYWdlVG90YWwpOyA/Pjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICA8P3BocCBpZiAoIWVtcHR5KCRlcmppbXVsdVBhZ2VMaXN0KSkgeyA/Pg0KICAgICAgICAgIDx0YWJsZSBjbGFzcz0idWwyIGZ6enMtZG9tLXRhYmxlIj4NCiAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgPHRyPjx0aCBzdHlsZT0id2lkdGg6NDBweDttaW4td2lkdGg6NDBweDttYXgtd2lkdGg6NDBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPuW6j+WPtzwvdGg+PHRoIHN0eWxlPSJ3aWR0aDozNCU7dGV4dC1hbGlnbjpsZWZ0OyI+5paH5Lu25ZCNPC90aD48dGggc3R5bGU9IndpZHRoOjI2JTt0ZXh0LWFsaWduOmxlZnQ7Ij7moIfpopg8L3RoPjx0aCBzdHlsZT0id2lkdGg6MjAlO3RleHQtYWxpZ246bGVmdDsiPuWFs+mUruivjTwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoyMCU7dGV4dC1hbGlnbjpjZW50ZXI7Ij7mm7TmlrDml7bpl7Q8L3RoPjwvdHI+DQogICAgICAgICAgICAgIDw/cGhwIGZvcmVhY2ggKCRlcmppbXVsdVBhZ2VMaXN0IGFzICRlcmppbXVsdUluZGV4ID0+ICRlcmppbXVsdVBhZ2UpIHsgPz4NCiAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6NDBweDttaW4td2lkdGg6NDBweDttYXgtd2lkdGg6NDBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPjw/cGhwIGVjaG8gaW50dmFsKCRlcmppbXVsdUluZGV4ICsgMSk7ID8+PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPjxzcGFuIGNsYXNzPSJmenpzLXRkLWVsbGlwc2lzIj48YSBocmVmPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGVyamltdWx1SG9zdCAuICcvJyAuIHJhd3VybGVuY29kZSgoc3RyaW5nKSRlcmppbXVsdVBhZ2VbJ2ZpbGVfbmFtZSddKSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoKHN0cmluZykkZXJqaW11bHVQYWdlWydmaWxlX25hbWUnXSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+PC9hPjwvc3Bhbj48L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gY2xhc3M9ImZ6enMtdGQtZWxsaXBzaXMiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKSRlcmppbXVsdVBhZ2VbJ3RpdGxlJ10sIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/Pjwvc3Bhbj48L3RkPg0KICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gY2xhc3M9ImZ6enMtdGQtZWxsaXBzaXMiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKSRlcmppbXVsdVBhZ2VbJ2tleXdvcmQnXSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+PC9zcGFuPjwvdGQ+DQogICAgICAgICAgICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPjw/cGhwIGVjaG8gIWVtcHR5KCRlcmppbXVsdVBhZ2VbJ3V0J10pID8gZGF0ZSgnWS1tLWQgSDppJywgaW50dmFsKCRlcmppbXVsdVBhZ2VbJ3V0J10pKSA6ICctJzsgPz48L3RkPg0KICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgPD9waHAgfSBlbHNlIHsgPz4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLXRleHQtbXV0ZWQiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPmh0bWxfbXVsdSDmoLnnm67lvZXkuK3mmoLml6Dlj6/or4bliKvnmoQgLmh0bWwg5oiWIC5odG0g5paH5Lu244CCPC9kaXY+DQogICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPD9waHAgfSA/Pg0KICAgICAgPD9waHAgaWYgKCR0YWIgPT09ICdqaWh1YXJlbnd1JykgeyA/Pg0KICAgICAgPGRpdiBjbGFzcz0iZnp6cy1tYWluIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1jYXJkIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+DQogICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1jYXJkLXRpdGxlIj7orqHliJLku7vliqE8L2Rpdj4NCiAgICAgICAgICA8P3BocCBpZiAoJGppaHVhcmVud3VIaW50ID09PSAncnVuJykgeyA/PjxkaXYgY2xhc3M9ImZ6enMtYWxlcnQgZnp6cy1hbGVydC0tc3VjY2VzcyIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPuiuoeWIkuS7u+WKoeW3suaJi+WKqOaJp+ihjOS4gOasoeOAgjwvZGl2Pjw/cGhwIH0gPz4NCiAgICAgICAgICA8P3BocCBpZiAoJGppaHVhcmVud3VIaW50ID09PSAndG9rZW4nKSB7ID8+PGRpdiBjbGFzcz0iZnp6cy1hbGVydCBmenpzLWFsZXJ0LS1zdWNjZXNzIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+6K6h5YiS5Lu75Yqh5a+G6ZKl5bey6YeN5paw55Sf5oiQ44CCPC9kaXY+PD9waHAgfSA/Pg0KICAgICAgICAgIDw/cGhwIGlmICgkamlodWFyZW53dUhpbnQgPT09ICc0MDRtb2RlJykgeyA/PjxkaXYgY2xhc3M9ImZ6enMtYWxlcnQgZnp6cy1hbGVydC0tc3VjY2VzcyIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPjQwNCDpmo/mnLrmqKHlvI/lt7Lkv53lrZjjgII8L2Rpdj48P3BocCB9ID8+DQogICAgICAgICAgPD9waHAgaWYgKCRqaWh1YXJlbnd1SGludCA9PT0gJzQwNGNsZWFyJykgeyA/PjxkaXYgY2xhc3M9ImZ6enMtYWxlcnQgZnp6cy1hbGVydC0tc3VjY2VzcyIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPjQwNCDlm7rlrprpmo/mnLrorrDlvZXlt7LmuIXnqbrjgII8L2Rpdj48P3BocCB9ID8+DQogICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1hbGVydCBmenpzLWFsZXJ0LS13YXJuaW5nIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+DQogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXdlaWdodDo4MDA7bWFyZ2luLWJvdHRvbTo2cHg7Ij7nlKjpgJQ8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuOTsiPg0KICAgICAgICAgICAgICAx44CB5a6a5pe25omr5o+PIGBodG1sX3BhZ2VzYCDmlrDlop7ljZXpobXlubblhpnlhaXnvJPlrZg8YnI+DQogICAgICAgICAgICAgIDLjgIHlrprml7bnlJ/miJAgYGxsbXMudHh0YCDkuI4gYGxsbXMtZnVsbC50eHRgPGJyPg0KICAgICAgICAgICAgICAz44CB6YCC5ZCI5a6d5aGU6K6h5YiS5Lu75Yqh5oyJIDEwIOWIhumSn+aIliAzMCDliIbpkp/lkajmnJ/osIPnlKgNCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDx0YWJsZSBjbGFzcz0id2lkZWZhdCIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPg0KICAgICAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAgICA8dHI+PHRoIHN0eWxlPSJ3aWR0aDoxNjBweDsiPuacgOi/keaJp+ihjOaXtumXtDwvdGg+PHRkPjw/cGhwIGVjaG8gJGppaHVhcmVud3VMYXN0UnVuID4gMCA/IGRhdGUoJ1ktbS1kIEg6aTpzJywgJGppaHVhcmVud3VMYXN0UnVuKSA6ICfmmoLmnKrmiafooYwnOyA/PjwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgPHRyPjx0aD7mnIDov5Hmiavmj4/mlbDph488L3RoPjx0ZD48P3BocCBlY2hvIGludHZhbCgkamlodWFyZW53dVRvdGFsKTsgPz4g5Liq5Y2V6aG1PC90ZD48L3RyPg0KICAgICAgICAgICAgICA8dHI+PHRoPuS7u+WKoeWcsOWdgDwvdGg+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiByZWFkb25seSB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRqaWh1YXJlbnd1VXJsLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4iIHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDozNHB4OyI+PC90ZD48L3RyPg0KICAgICAgICAgICAgICA8dHI+PHRoPlBIUCDlkb3ku6Q8L3RoPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgcmVhZG9ubHkgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkamlodWFyZW53dVBocCwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+IiBzdHlsZT0id2lkdGg6MTAwJTtoZWlnaHQ6MzRweDsiPjwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgPHRyPjx0aD7nlJ/miJDmlofku7Y8L3RoPjx0ZD48Y29kZT4vbGxtcy50eHQ8L2NvZGU+44CBPGNvZGU+L2xsbXMtZnVsbC50eHQ8L2NvZGU+PC90ZD48L3RyPg0KICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDsiPg0KICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii4vbWFpbi5waHA/dGFiPWppaHVhcmVud3UmYWN0PXpoaXhpbmdqaWh1YXJlbnd1IiBzdHlsZT0ibWFyZ2luOjA7Ij4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZlRva2VuIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpQ3lxaXllemhhbignY3NyZlRva2VuJyksIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidXR0b24iIHZhbHVlPSLnq4vljbPmiafooYzku7vliqEiPg0KICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii4vbWFpbi5waHA/dGFiPWppaHVhcmVud3UmYWN0PXNoZW5nY2hlbmdqaWh1YXJlbnd1bWltaSIgc3R5bGU9Im1hcmdpbjowOyI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNzcmZUb2tlbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKUN5cWl5ZXpoYW4oJ2NzcmZUb2tlbicpLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIiB2YWx1ZT0i6YeN572u5Lu75Yqh5a+G6ZKlIj4NCiAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkamlodWFyZW53dVVybCwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj7mtY/op4jlmajmtYvor5XmiafooYw8L2E+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWNhcmQiIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7Ij4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWNhcmQtdGl0bGUiPjQwNCDpmo/mnLrpobXmqKHlvI88L2Rpdj4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWFsZXJ0IGZ6enMtYWxlcnQtLXdhcm5pbmciIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7Ij4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuOTsiPg0KICAgICAgICAgICAgICDlvZPliY3mqKHlvI/vvJo8c3Ryb25nPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZXJyb3I0MDRTdWlqaU1vZGVUZXh0LCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz48L3N0cm9uZz48YnI+DQogICAgICAgICAgICAgIDHjgIHlm7rlrprpmo/mnLrpobXvvJrlkIzkuIDkuKogNDA0IOWcsOWdgOmmluasoemaj+acuuS4gOasoe+8jOWQjue7reaJgOacieeUqOaIt+mDveaJk+W8gOWQjOS4gOS4qumhtemdojxicj4NCiAgICAgICAgICAgICAgMuOAgeavj+asoeWIt+aWsOmDvemaj+acuu+8muavj+asoeaJk+W8gCA0MDQg6YO96YeN5paw6ZqP5py65oq95LiA5Liq5Y2V6aG1DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iLi9tYWluLnBocD90YWI9amlodWFyZW53dSZhY3Q9YmFvY3VuNDA0c3Vpamltb3NoaSIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZlRva2VuIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpQ3lxaXllemhhbignY3NyZlRva2VuJyksIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiI+DQogICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7bWFyZ2luOjAgMCAxMHB4O2ZvbnQtc2l6ZToxM3B4OyI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZXJyb3I0MDRfc3VpamlfbW9kZSIgdmFsdWU9ImZpeGVkIiA8P3BocCBlY2hvICgkZXJyb3I0MDRTdWlqaU1vZGUgPT09ICdmaXhlZCcpID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOyA/Pj4NCiAgICAgICAgICAgICAg5Zu65a6a6ZqP5py66aG1DQogICAgICAgICAgICA8L2xhYmVsPg0KICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO21hcmdpbjowIDAgMTJweDtmb250LXNpemU6MTNweDsiPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImVycm9yNDA0X3N1aWppX21vZGUiIHZhbHVlPSJyYW5kb20iIDw/cGhwIGVjaG8gKCRlcnJvcjQwNFN1aWppTW9kZSA9PT0gJ3JhbmRvbScpID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOyA/Pj4NCiAgICAgICAgICAgICAg5q+P5qyh5Yi35paw6YO96ZqP5py6DQogICAgICAgICAgICA8L2xhYmVsPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ1dHRvbiIgdmFsdWU9IuS/neWtmCA0MDQg6ZqP5py65qih5byPIj4NCiAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii4vbWFpbi5waHA/dGFiPWppaHVhcmVud3UmYWN0PXFpbmdrb25nNDA0Z3VkaW5nc3VpamkiIHN0eWxlPSJtYXJnaW46MDsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3NyZlRva2VuIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpQ3lxaXllemhhbignY3NyZlRva2VuJyksIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIiB2YWx1ZT0i5riF56m6IDQwNCDlm7rlrprorrDlvZUiPg0KICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIDw/cGhwIH0gPz4NCiAgICAgIDw/cGhwIGlmICgkdGFiID09PSAnaG91dGFpZGl6aGknKSB7ID8+DQogICAgICA8ZGl2IGNsYXNzPSJmenpzLW1haW4iPg0KICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWNhcmQiIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7Ij4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWNhcmQtdGl0bGUiPuiHquWumuS5ieWQjuWPsOeZu+W9leWcsOWdgDwvZGl2Pg0KICAgICAgICAgIDw/cGhwIGlmICgkaG91dGFpRGl6aGlIaW50ID09PSAnaG91dGFpb2snKSB7ID8+PGRpdiBjbGFzcz0iZnp6cy1hbGVydCBmenpzLWFsZXJ0LS1zdWNjZXNzIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+5ZCO5Y+w55m75b2V5Zyw5Z2A6K6+572u5bey5L+d5a2Y44CCPC9kaXY+PD9waHAgfSA/Pg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImZ6enMtYWxlcnQgZnp6cy1hbGVydC0td2FybmluZyIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC13ZWlnaHQ6ODAwO21hcmdpbi1ib3R0b206NnB4OyI+55So6YCU5LiO5rOo5oSP5LqL6aG5PC9kaXY+DQogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjk7Ij4NCiAgICAgICAgICAgICAgMeOAgeWQr+eUqOWQju+8jOezu+e7n+m7mOiupOeahOeZu+W9leWFpeWPo++8iHpiX3N5c3RlbS9sb2dpbi5waHAg5o+Q5Lqk55m75b2V77yJ5bCG6KKr5ouS57ud77yM5Y+q6IO96YCa6L+H5LiL5pa56Ieq5a6a5LmJ5Zyw5Z2A55m75b2V5ZCO5Y+wPGJyPg0KICAgICAgICAgICAgICAy44CB5b2T5YmN56uZ54K55Lyq6Z2Z5oCB5qih5byP77yaPHN0cm9uZz48P3BocCBlY2hvICRob3V0YWlKaW5ndGFpTW9zaGkgPT09ICdSRVdSSVRFJyA/ICfkvKrpnZnmgIHmqKHlvI/vvIhSRVdSSVRF77yJ77yM5L2/55So5Lyq6Z2Z5oCB5Zyw5Z2AJyA6ICfliqjmgIHmqKHlvI/vvIhBQ1RJVkXvvInvvIzkvb/nlKjliqjmgIHlnLDlnYAnOyA/Pjwvc3Ryb25nPjxicj4NCiAgICAgICAgICAgICAgM+OAgeWcsOWdgOWFs+mUruivjeWPquiDveS9v+eUqCAyLTMyIOS9jeWwj+WGmeWtl+avjeOAgeaVsOWtl+OAgeS4reWIkue6v+OAgeS4i+WIkue6v++8jOS4lOS4jeiDveS9v+eUqCB6Yl9zeXN0ZW3jgIFhZG1pbuOAgWxvZ2luIOetieS/neeVmeivjTxicj4NCiAgICAgICAgICAgICAgNOOAgeivt+WKoeW/heeJouiusOiHquWumuS5ieWcsOWdgO+8m+mBl+W/mOWQjumcgOWIsOaVsOaNruW6k+S/ruaUueaPkuS7tumFjee9ru+8iHNldHRpbmcg5LitIGhvdXRhaV9kaXpoaV9xaXlvbmcg5pS55Li6IDDvvInmiY3og73mgaLlpI3pu5jorqTnmbvlvZUNCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIuL21haW4ucGhwP3RhYj1ob3V0YWlkaXpoaSZhY3Q9YmFvY3VuaG91dGFpZGl6aGkiIHN0eWxlPSJtYXJnaW46MCAwIDEycHg7Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNzcmZUb2tlbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKUN5cWl5ZXpoYW4oJ2NzcmZUb2tlbicpLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4iPg0KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ3aWRlZmF0IiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+DQogICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE2MHB4OyI+5piv5ZCm5ZCv55SoPC90aD4NCiAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6MThweDtmb250LXNpemU6MTNweDsiPg0KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iaG91dGFpX2RpemhpX3FpeW9uZyIgdmFsdWU9IjEiIDw/cGhwIGVjaG8gKCRob3V0YWlEaXpoaVFpeW9uZyA9PT0gMSkgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7ID8+Pg0KICAgICAgICAgICAgICAgICAgICAgIOWQr+eUqOiHquWumuS5ieWQjuWPsOWcsOWdgA0KICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxM3B4OyI+DQogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJob3V0YWlfZGl6aGlfcWl5b25nIiB2YWx1ZT0iMCIgPD9waHAgZWNobyAoJGhvdXRhaURpemhpUWl5b25nICE9PSAxKSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsgPz4+DQogICAgICAgICAgICAgICAgICAgICAg5YGc55So77yI5L2/55So57O757uf6buY6K6k55m75b2V77yJDQogICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgPHRoPuWKqOaAgeWcsOWdgDwvdGg+DQogICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJob3V0YWlfZG9uZ3RhaV91cmwiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGhvdXRhaURvbmd0YWlVcmwsIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiIgY2xhc3M9ImZvcm0tY29udHJvbCIgc3R5bGU9IndpZHRoOjIyMHB4OyIgcGxhY2Vob2xkZXI9IuS+i+WmgiBob3V0YWkiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLXRleHQtbXV0ZWQiIHN0eWxlPSJmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjZweDsiPuWKqOaAgeaooeW8j+iuv+mXruWcsOWdgO+8mjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkemJwLT5ob3N0IC4gJz8nIC4gJGhvdXRhaURvbmd0YWlVcmwsIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgIDx0aD7kvKrpnZnmgIHlnLDlnYA8L3RoPg0KICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaG91dGFpX3dlaWppbmd0YWlfdXJsIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRob3V0YWlXZWlqaW5ndGFpVXJsLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHN0eWxlPSJ3aWR0aDoyMjBweDsiIHBsYWNlaG9sZGVyPSLkvovlpoIgaG91dGFpIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy10ZXh0LW11dGVkIiBzdHlsZT0iZm9udC1zaXplOjEycHg7bWFyZ2luLXRvcDo2cHg7Ij7kvKrpnZnmgIHmqKHlvI/orr/pl67lnLDlnYDvvJo8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHpicC0+aG9zdCAuICRob3V0YWlXZWlqaW5ndGFpVXJsLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz7vvIjpnIDmnI3liqHlmajlt7LphY3nva7kvKrpnZnmgIHop4TliJnvvIk8L2Rpdj4NCiAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIiB2YWx1ZT0i5L+d5a2Y5ZCO5Y+w5Zyw5Z2A6K6+572uIj4NCiAgICAgICAgICA8L2Zvcm0+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICA8P3BocCB9ID8+DQogICAgICA8P3BocCBpZiAoJHRhYiA9PT0gJ3VzYWdlJykgeyA/Pg0KICAgICAgPGRpdiBjbGFzcz0iZnp6cy1tYWluIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1jYXJkIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+DQogICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1hbGVydCBmenpzLWFsZXJ0LS13YXJuaW5nIiBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4OyI+DQogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXdlaWdodDo4MDA7bWFyZ2luLWJvdHRvbTo2cHg7Ij7lkb3lkI3op4TliJk8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuOTsiPg0KICAgICAgICAgICAgICAx44CB5paH5Lu25qih5byP77yaYHpiX3VzZXJzL3BsdWdpbi9DeXFpeWV6aGFuL2h0bWxfcGFnZXMvYWJjLmh0bWxgIOWvueW6lCBgYWJjLjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZnp6c0FwZXhEb21haW4gIT09ICcnID8gJGZ6enNBcGV4RG9tYWluIDogJ2V4YW1wbGUuY29tJywgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+YDxicj4NCiAgICAgICAgICAgICAgMuOAgeebruW9leaooeW8j++8mmB6Yl91c2Vycy9wbHVnaW4vQ3lxaXllemhhbi9odG1sX3BhZ2VzL2FiYy9pbmRleC5odG1sYCDlr7nlupQgYGFiYy48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGZ6enNBcGV4RG9tYWluICE9PSAnJyA/ICRmenpzQXBleERvbWFpbiA6ICdleGFtcGxlLmNvbScsIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PmA8YnI+DQogICAgICAgICAgICAgIDPjgIHkuZ/mlK/mjIHkvb/nlKjlrozmlbTkuLvmnLrlkI3lkb3lkI3vvIzkvovlpoLvvJpgYWJjLjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZnp6c0FwZXhEb21haW4gIT09ICcnID8gJGZ6enNBcGV4RG9tYWluIDogJ2V4YW1wbGUuY29tJywgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+Lmh0bWxgIOaIliBgYWJjLjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZnp6c0FwZXhEb21haW4gIT09ICcnID8gJGZ6enNBcGV4RG9tYWluIDogJ2V4YW1wbGUuY29tJywgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+L2luZGV4Lmh0bWxgPGJyPg0KICAgICAgICAgICAgICA044CB5aaC5p6c5L2g5L2/55So55uu5b2V5qih5byP77yM6YKj5LmI6K+l55uu5b2V5LiL55qEIGBjc3MvanMvaW1nYCDnrYnpnZnmgIHotYTmupDkuZ/kvJrot5/pmo/lvZPliY3kuoznuqfln5/lkI3kuIDotbfor7vlj5YNCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIA0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPD9waHAgfSA/Pg0KICAgICAgPGRpdiBjbGFzcz0iZnp6cy1zaWRlIj4NCiAgICAgICAgPD9waHAgaWYgKCR0YWIgPT09ICdkb21haW5jZmcnKSB7ID8+DQogICAgICAgIDxkaXYgaWQ9ImRvbWFpbm1hcCIgY2xhc3M9ImZ6enMtY2FyZCIgc3R5bGU9Im1hcmdpbjowIDAgMTJweDsiPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImZ6enMtY2FyZC10aXRsZSI+5LqM57qn5Z+f5ZCN5Y2V6aG155uu5b2V55u06K+7PC9kaXY+ICAgICAgICAgIA0KICAgICAgICAgIDw/cGhwDQogICAgICAgICAgICAkZG9tYWluTWFwSGFzUXVlcnkgPSAoJGRvbWFpbk1hcFF1ZXJ5SG9zdCAhPT0gJycgfHwgJGRvbWFpbk1hcFF1ZXJ5VGl0bGUgIT09ICcnIHx8ICRkb21haW5NYXBRdWVyeUJhdGNoICE9PSAnJyk7DQogICAgICAgICAgICAkZG9tYWluTWFwQmFzZVBhcmFtcyA9IGFycmF5KCd0YWInID0+ICdkb21haW5jZmcnLCAnbXBzJyA9PiAkZG9tYWluTWFwUGFnZVNpemUpOw0KICAgICAgICAgICAgaWYgKCRkb21haW5NYXBRdWVyeUhvc3QgIT09ICcnKSAkZG9tYWluTWFwQmFzZVBhcmFtc1snbXFoJ10gPSAkZG9tYWluTWFwUXVlcnlIb3N0Ow0KICAgICAgICAgICAgaWYgKCRkb21haW5NYXBRdWVyeVRpdGxlICE9PSAnJykgJGRvbWFpbk1hcEJhc2VQYXJhbXNbJ21xdCddID0gJGRvbWFpbk1hcFF1ZXJ5VGl0bGU7DQogICAgICAgICAgICBpZiAoJGRvbWFpbk1hcFF1ZXJ5QmF0Y2ggIT09ICcnKSAkZG9tYWluTWFwQmFzZVBhcmFtc1snbXFiJ10gPSAkZG9tYWluTWFwUXVlcnlCYXRjaDsNCiAgICAgICAgICAgICRkb21haW5NYXBTdGFydCA9ICRkb21haW5NYXBUb3RhbCA+IDAgPyAoJGRvbWFpbk1hcE9mZnNldCArIDEpIDogMDsNCiAgICAgICAgICAgICRkb21haW5NYXBFbmQgPSAkZG9tYWluTWFwVG90YWwgPiAwID8gbWluKCRkb21haW5NYXBUb3RhbCwgJGRvbWFpbk1hcE9mZnNldCArIGNvdW50KCRkb21haW5NYXBMaXN0KSkgOiAwOw0KICAgICAgICAgICAgJGRvbWFpbk1hcFdpbmRvdyA9IDM7DQogICAgICAgICAgICAkZG9tYWluTWFwRnJvbSA9IG1heCgxLCAkZG9tYWluTWFwUGFnZSAtICRkb21haW5NYXBXaW5kb3cpOw0KICAgICAgICAgICAgJGRvbWFpbk1hcFRvID0gbWluKCRkb21haW5NYXBQYWdlQ291bnQsICRkb21haW5NYXBQYWdlICsgJGRvbWFpbk1hcFdpbmRvdyk7DQogICAgICAgICAgPz4NCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmenpzLWRvbS1hY3Rpb25zIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo4cHg7Ij4NCiAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Ii4vbWFpbi5waHAiIHN0eWxlPSJtYXJnaW46MDtkaXNwbGF5OmlubGluZS1mbGV4O2dhcDo4cHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDpub3dyYXA7Ij4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFiIiB2YWx1ZT0iZG9tYWluY2ZnIj4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibXBzIiB2YWx1ZT0iPD9waHAgZWNobyBpbnR2YWwoJGRvbWFpbk1hcFBhZ2VTaXplKTsgPz4iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtcCIgdmFsdWU9IjEiPg0KICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0ibXFoIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkb21haW5NYXBRdWVyeUhvc3QsIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiIgY2xhc3M9ImZvcm0tY29udHJvbCIgc3R5bGU9ImhlaWdodDozMHB4O3dpZHRoOjIyMHB4OyIgcGxhY2Vob2xkZXI9IuWfn+WQjeaIluWJjee8gOafpeivoiIgLz4NCiAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Im1xdCIgdHlwZT0idGV4dCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZG9tYWluTWFwUXVlcnlUaXRsZSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+IiBjbGFzcz0iZm9ybS1jb250cm9sIiBzdHlsZT0iaGVpZ2h0OjMwcHg7d2lkdGg6MTYwcHg7IiBwbGFjZWhvbGRlcj0i5qCH6aKY5p+l6K+iIiAvPg0KICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0ibXFiIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkb21haW5NYXBRdWVyeUJhdGNoLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHN0eWxlPSJoZWlnaHQ6MzBweDt3aWR0aDoxODBweDsiIHBsYWNlaG9sZGVyPSLmlofku7bot6/lvoTmn6Xor6IiIC8+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSLmn6Xor6LmmKDlsIQiIGNsYXNzPSJidXR0b24iIHN0eWxlPSJoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoyOHB4O3BhZGRpbmc6MCAxMnB4OyIgLz4NCiAgICAgICAgICAgICAgPD9waHAgaWYgKCRkb21haW5NYXBIYXNRdWVyeSkgeyA/Pg0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii4vbWFpbi5waHA/PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGh0dHBfYnVpbGRfcXVlcnkoYXJyYXkoJ3RhYicgPT4gJ2RvbWFpbmNmZycsICdtcHMnID0+ICRkb21haW5NYXBQYWdlU2l6ZSwgJ21wJyA9PiAxKSksIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiNkb21haW5tYXAiIHN0eWxlPSJoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoyOHB4O3BhZGRpbmc6MCAxMnB4OyI+5riF56m6PC9hPg0KICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPD9waHAgaWYgKCFlbXB0eSgkZG9tYWluTWFwTGlzdCkpIHsgPz4NCiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idWwyIGZ6enMtZG9tLXRhYmxlIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4OyI+DQogICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MzBweDttaW4td2lkdGg6MzBweDttYXgtd2lkdGg6MzBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPuW6j+WPtzwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MjQlO3RleHQtYWxpZ246bGVmdDsiPuS6jOe6p+Wfn+WQjTwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTQlO3RleHQtYWxpZ246bGVmdDsiPuagh+mimDwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIlO3RleHQtYWxpZ246bGVmdDsiPuWFs+mUruivjTwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MjglO3RleHQtYWxpZ246bGVmdDsiPuaWh+S7tui3r+W+hDwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4JTt0ZXh0LWFsaWduOmxlZnQ7Ij7mqKHlvI88L3RoPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTAlO3RleHQtYWxpZ246Y2VudGVyOyI+5pu05paw5pe26Ze0PC90aD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGRvbWFpbk1hcExpc3QgYXMgJGlkeCA9PiAkaXQpIHsgPz4NCiAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6MzBweDttaW4td2lkdGg6MzBweDttYXgtd2lkdGg6MzBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPjw/cGhwIGVjaG8gaW50dmFsKCRkb21haW5NYXBPZmZzZXQgKyAkaWR4ICsgMSk7ID8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gY2xhc3M9ImZ6enMtdGQtZWxsaXBzaXMiPjxhIGhyZWY9Ii8vPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpJGl0Wydob3N0J10sIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpJGl0Wydob3N0J10sIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PjwvYT48L3NwYW4+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij48c3BhbiBjbGFzcz0iZnp6cy10ZC1lbGxpcHNpcyI+PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpJGl0Wyd0aXRsZSddLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz48L3NwYW4+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gY2xhc3M9ImZ6enMtdGQtZWxsaXBzaXMiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKShpc3NldCgkaXRbJ2tleXdvcmQnXSkgPyAkaXRbJ2tleXdvcmQnXSA6ICcnKSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+PC9zcGFuPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gY2xhc3M9ImZ6enMtdGQtY2xpcCI+PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKChzdHJpbmcpJGl0WydmaWxlX3BhdGgnXSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+PC9zcGFuPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+PHNwYW4gY2xhc3M9ImZ6enMtdGQtZWxsaXBzaXMiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoc3RyaW5nKSRpdFsnYmF0Y2hfbm8nXSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+PC9zcGFuPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+PD9waHAgZWNobyAhZW1wdHkoJGl0Wyd1dCddKSA/IGRhdGUoJ1ktbS1kJywgaW50dmFsKCRpdFsndXQnXSkpIDogJy0nOyA/PjwvdGQ+DQogICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1wYWdlciIgc3R5bGU9Im1hcmdpbi10b3A6MTBweDsiPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1wYWdlci1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy1wYWdlci1pbmZvIj4NCiAgICAgICAgICAgICAgICAgICAgICDlhbEgPD9waHAgZWNobyBpbnR2YWwoJGRvbWFpbk1hcFRvdGFsKTsgPz4g5p2hPD9waHAgZWNobyAoJGRvbWFpbk1hcFRvdGFsID4gMCkgPyAn77yM5b2T5YmNICcgLiBpbnR2YWwoJGRvbWFpbk1hcFN0YXJ0KSAuICctJyAuIGludHZhbCgkZG9tYWluTWFwRW5kKSAuICfvvIznrKwgJyAuIGludHZhbCgkZG9tYWluTWFwUGFnZSkgLiAnLycgLiBpbnR2YWwoJGRvbWFpbk1hcFBhZ2VDb3VudCkgLiAnIOmhtScgOiAnJzsgPz4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ6enMtcGFnZXItcmlnaHQiPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSIuL21haW4ucGhwIiBzdHlsZT0ibWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6OHB4O2FsaWduLWl0ZW1zOmNlbnRlcjsiPg0KICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRhYiIgdmFsdWU9ImRvbWFpbmNmZyI+DQogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibXAiIHZhbHVlPSIxIj4NCiAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGRvbWFpbk1hcFF1ZXJ5SG9zdCAhPT0gJycpIHsgPz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtcWgiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRvbWFpbk1hcFF1ZXJ5SG9zdCwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+Ij48P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRkb21haW5NYXBRdWVyeVRpdGxlICE9PSAnJykgeyA/PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1xdCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZG9tYWluTWFwUXVlcnlUaXRsZSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+Ij48P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRkb21haW5NYXBRdWVyeUJhdGNoICE9PSAnJykgeyA/PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1xYiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZG9tYWluTWFwUXVlcnlCYXRjaCwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+Ij48P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZ6enMtcGFnZXItaW5mbyI+5q+P6aG1PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0ibXBzIiBjbGFzcz0iZm9ybS1jb250cm9sIiBzdHlsZT0iaGVpZ2h0OjMwcHg7cGFkZGluZzowIDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4OyIgb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBmb3JlYWNoICgkZG9tYWluTWFwUGFnZVNpemVPcHRpb25zIGFzICRtcHN6KSB7ICRtcHN6ID0gaW50dmFsKCRtcHN6KTsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPD9waHAgZWNobyAkbXBzejsgPz4iIDw/cGhwIGVjaG8gKCRtcHN6ID09PSBpbnR2YWwoJGRvbWFpbk1hcFBhZ2VTaXplKSkgPyAnc2VsZWN0ZWQ9InNlbGVjdGVkIicgOiAnJzsgPz4+PD9waHAgZWNobyAkbXBzejsgPz48L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGRvbWFpbk1hcFBhZ2VDb3VudCA+IDEpIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGRvbWFpbk1hcFBhZ2UgPiAxKSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuL21haW4ucGhwPzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhodHRwX2J1aWxkX3F1ZXJ5KCRkb21haW5NYXBCYXNlUGFyYW1zICsgYXJyYXkoJ21wJyA9PiAkZG9tYWluTWFwUGFnZSAtIDEpKSwgRU5UX1FVT1RFUywgJ1VURi04Jyk7ID8+I2RvbWFpbm1hcCI+5LiK5LiA6aG1PC9hPg0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGRvbWFpbk1hcEZyb20gPiAxKSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuL21haW4ucGhwPzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhodHRwX2J1aWxkX3F1ZXJ5KCRkb21haW5NYXBCYXNlUGFyYW1zICsgYXJyYXkoJ21wJyA9PiAxKSksIEVOVF9RVU9URVMsICdVVEYtOCcpOyA/PiNkb21haW5tYXAiPjE8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGRvbWFpbk1hcEZyb20gPiAyKSB7ID8+PHNwYW4gY2xhc3M9ImZ6enMtcGFnZXItaW5mbyI+4oCmPC9zcGFuPjw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yICgkbXBpID0gJGRvbWFpbk1hcEZyb207ICRtcGkgPD0gJGRvbWFpbk1hcFRvOyAkbXBpKyspIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSI8P3BocCBlY2hvICgkbXBpID09PSBpbnR2YWwoJGRvbWFpbk1hcFBhZ2UpKSA/ICdmenpzLXBhZ2UtYWN0aXZlJyA6ICcnOyA/PiIgaHJlZj0iLi9tYWluLnBocD88P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoaHR0cF9idWlsZF9xdWVyeSgkZG9tYWluTWFwQmFzZVBhcmFtcyArIGFycmF5KCdtcCcgPT4gJG1waSkpLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4jZG9tYWlubWFwIj48P3BocCBlY2hvIGludHZhbCgkbXBpKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGlmICgkZG9tYWluTWFwVG8gPCAkZG9tYWluTWFwUGFnZUNvdW50KSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGRvbWFpbk1hcFRvIDwgJGRvbWFpbk1hcFBhZ2VDb3VudCAtIDEpIHsgPz48c3BhbiBjbGFzcz0iZnp6cy1wYWdlci1pbmZvIj7igKY8L3NwYW4+PD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9tYWluLnBocD88P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoaHR0cF9idWlsZF9xdWVyeSgkZG9tYWluTWFwQmFzZVBhcmFtcyArIGFycmF5KCdtcCcgPT4gJGRvbWFpbk1hcFBhZ2VDb3VudCkpLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4jZG9tYWlubWFwIj48P3BocCBlY2hvIGludHZhbCgkZG9tYWluTWFwUGFnZUNvdW50KTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGlmICgkZG9tYWluTWFwUGFnZSA8ICRkb21haW5NYXBQYWdlQ291bnQpIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vbWFpbi5waHA/PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGh0dHBfYnVpbGRfcXVlcnkoJGRvbWFpbk1hcEJhc2VQYXJhbXMgKyBhcnJheSgnbXAnID0+ICRkb21haW5NYXBQYWdlICsgMSkpLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsgPz4jZG9tYWlubWFwIj7kuIvkuIDpobU8L2E+DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8P3BocCB9IGVsc2UgeyA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnp6cy10ZXh0LW11dGVkIiBzdHlsZT0iZm9udC1zaXplOjEycHg7bWFyZ2luLXRvcDoxMHB4OyI+PD9waHAgZWNobyAkZG9tYWluTWFwSGFzUXVlcnkgPyAn55uu5b2V5Lit5pqC5peg5Yy56YWN5paH5Lu2JyA6ICdodG1sX3BhZ2VzIOebruW9leS4reaaguaXoOWPr+ivhuWIq+eahCBodG1sIOmhtemdoic7ID8+PC9kaXY+DQogICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQo8P3BocA0KcmVxdWlyZSAnLi4vLi4vLi4vemJfc3lzdGVtL2FkbWluL2FkbWluX2Zvb3Rlci5waHAnOyAgICAJCQkJCSAJCQ0KUnVuVGltZSgpOyAgICAgICAgIAkgIA0KICAgICAJIAkgIAkJDQo=