xiaomianao666

邀您一起看:登陆以开启

Jun 8th, 2023
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥登陆以开启@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcInRleHRfMVwiLFwibmFtZVwiOlwi5Li76aG1XCIsXCJwYXRoXCI6XCJob21lXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmlmICghZmlsZUV4aXN0KFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXCIpKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIueZu+mZhuS7peW8gOWQr1xcXCIsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvbG9naW5cXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbiAgICB9KVxcbn0gZWxzZSB7XFxuICAgIGZ1bmN0aW9uIGZvcm1hdERhdGUodGltZSkge1xcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lKTtcXG4gICAgICAgIHZhciBZWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXG4gICAgICAgIHZhciBNTSA9IChkYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgOiBkYXRlLmdldE1vbnRoKCkgKyAxKSArICctJztcXG4gICAgICAgIHZhciBERCA9IChkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0RGF0ZSgpKSA6IGRhdGUuZ2V0RGF0ZSgpKTtcXG4gICAgICAgIHZhciBoaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOic7XFxuICAgICAgICB2YXIgbW0gPSAoZGF0ZS5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0TWludXRlcygpIDogZGF0ZS5nZXRNaW51dGVzKCkpICsgJzonO1xcbiAgICAgICAgdmFyIHNzID0gKGRhdGUuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldFNlY29uZHMoKSA6IGRhdGUuZ2V0U2Vjb25kcygpKTtcXG4gICAgICAgIHJldHVybiBZWSArIE1NICsgREQgKyBcXFwiIFxcXCIgKyBoaCArIG1tICsgc3M7XFxuICAgIH1cXG5cXG4gICAgaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICAgICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcIikpXFxuICAgICAgICBpZihuZXcgRGF0ZSgpLmdldFRpbWUoKT49Y29uZmlnLnRpbWVfZXhwaXJlKXtcXG4gICAgICAgICAgICAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5yZWZyZXNoVG9rZW4oKTtcXG4gICAgICAgICAgICBsb2coJ+WIt+aWsHRva2VuJyk7XFxuICAgICAgICAgICAgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYWxpLmpzb25cXFwiKSlcXG4gICAgICAgIH1cXG4gICAgICAgIGQudW5zaGlmdCh7XFxuICAgICAgICAgICAgdGl0bGU6IGNvbmZpZy5uaWNrX25hbWUsXFxuICAgICAgICAgICAgaW1nOiBjb25maWcuYXZhdGFyLFxcbiAgICAgICAgICAgIHVybDogJChcXFwi56Gu6K6k6YCA5Ye655m76ZmG77yfXFxcIikuY29uZmlybSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcIilcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIlxcbiAgICAgICAgfSwge1xcbiAgICAgICAgICAgIGRlc2M6IFxcXCLmkJzntKLmiJHnmoTmlofku7bmiJbovpPlhaXliIbkuqvpk77mjqVcXFwiLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiaW5wdXRcXFwiLFxcbiAgICAgICAgICAgIHVybDogXFxcIidoaWtlcjovL3BhZ2Uvc2VhcmNoP2t3PScraW5wdXQrJyZwPWZ5cGFnZSNub1JlZnJlc2gjJ1xcXCIsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgdGl0bGVWaXNpYmxlOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXCJwdXRNeVZhcigna3cnLGlucHV0KVxcXCJcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuWIh+aNouagt+W8j1xcXCIsXFxuICAgICAgICAgICAgdXJsOiAkKFtcXFwibW92aWVfMV9sZWZ0X3BpY1xcXCIsIFxcXCJjYXJkX3BpY18zXFxcIiwgXFxcImF2YXRhclxcXCJdKS5zZWxlY3QoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBzZXRJdGVtKFxcXCJzdHlsZVxcXCIsIGlucHV0KVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7LliIfmjaJcXFwiXFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxuICAgICAgICB9LCB7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLmjpLluo86XFxcIiArIChnZXRNeVZhcihcXFwib3JkZXJcXFwiLCBcXFwibmFtZVxcXCIpID09IFxcXCJuYW1lXFxcIiA/IFxcXCLlkI3np7BcXFwiIDogXFxcIuaXtumXtFxcXCIpLFxcbiAgICAgICAgICAgIHVybDogJChcXFwiI25vUmVjb3JkSGlzdG9yeSMjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgdmFyIG8gPSBnZXRNeVZhcihcXFwib3JkZXJcXFwiLCBcXFwibmFtZVxcXCIpXFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJvcmRlclxcXCIsIChvID09IFxcXCJuYW1lXFxcIiA/IFxcXCJ1cGRhdGVkX2F0XFxcIiA6IFxcXCJuYW1lXFxcIikpXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCJcXG4gICAgICAgIH0sIHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIlxcbiAgICAgICAgfSlcXG4gICAgfVxcblxcbiAgICB2YXIgcGF0aCA9IE1ZX1BBUkFNUy5wYXRoIHx8IFxcXCJyb290XFxcIlxcbiAgICBcXG4gICAgXFxuICAgIHZhciBmaWxlcz0kLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5nZXRGaWxlcyhwYXRoKVxcbiAgICBcXG4gICAgaWYgKGZpbGVzLml0ZW1zIT11bmRlZmluZWQpIHtcXG4gICAgICAgIHB1dE15VmFyKHBhdGggKyBcXFwibWFya2VyXFxcIiwgZmlsZXMubmV4dF9tYXJrZXIpXFxuICAgICAgICB2YXIgbGlzdCA9IGZpbGVzLml0ZW1zXFxuICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0sIGkpID0+IHtcXG4gICAgICAgICAgICBsZXQgZmlsZU5hbWUgPSBpdGVtLm5hbWVcXG4gICAgICAgICAgICBsZXQgbGVuID0gNDA7XFxuICAgICAgICAgICAgbGV0IGxlbjIgPSBsZW4gLyAyO1xcbiAgICAgICAgICAgIGlmIChmaWxlTmFtZS5sZW5ndGggPj0gbGVuKSB7XFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc3Vic3RyKDAsIGxlbjIpICsgJy4uLicgKyBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGVuZ3RoIC0gbGVuMik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBmaWxlTmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiAoaXRlbS50aHVtYm5haWwgPyBpdGVtLnRodW1ibmFpbCA6IChpdGVtLnR5cGUgPT0gXFxcImZvbGRlclxcXCIgPyBcXFwiaHR0cHM6Ly9naXRjb2RlLm5ldC9xcV8zMjM5NDM1MS9kci8tL3Jhdy9tYXN0ZXIvaW1nL+aWh+S7tuexu+WeizIv5paH5Lu25aS5LnN2Z1xcXCIgOiAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5nZXRJY29uKGl0ZW0ubmFtZSkpKSxcXG4gICAgICAgICAgICAgICAgdXJsOiAoaXRlbS50eXBlID09IFxcXCJmb2xkZXJcXFwiID8gXFxcImhpa2VyOi8vcGFnZS9ob21lP3BhZ2U9ZnlwYWdlXFxcIiA6ICQoKS5sYXp5UnVsZSgoaWQsIG5hbWUsIHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2FwaVxcXCIpLmNodWxpKGlkLCBuYW1lLCB1cmwpXFxuICAgICAgICAgICAgICAgIH0sIGl0ZW0uZmlsZV9pZCwgaXRlbS5uYW1lLCBpdGVtLnVybCkpLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBmb3JtYXREYXRlKERhdGUucGFyc2UoaXRlbS51cGRhdGVkX2F0KSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBnZXRJdGVtKFxcXCJzdHlsZVxcXCIsIFxcXCJtb3ZpZV8zXFxcIiksXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBpdGVtLmZpbGVfaWRcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9ZWxzZXtcXG4gICAgICAgIGlmKGZpbGVzPT1mYWxzZSl7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9XFxcImdyZXlcXFwiPuWIq+WIkuS6huWIsOW6leS6hjwvZm9udD48L3NtYWxsPicsXFxuICAgICAgICAgICAgY29sX3R5cGU6J3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgIHVybDonaGlrZXI6Ly9lbXB0eScsICAgICAgICAgICAgXFxuICAgICAgICAgIH0pXFxuICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5yZWZyZXNoVG9rZW4oKTtcXG4gICAgICAgICAgICBsb2coJ+WIt+aWsHRva2VuJyk7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9XFxcImdyZXlcXFwiPuiOt+WPluWksei0peivt+mHjeivlTwvZm9udD48L3NtYWxsPicsXFxuICAgICAgICAgICAgY29sX3R5cGU6J3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgIHVybDonaGlrZXI6Ly9lbXB0eScsICAgICAgICAgICAgXFxuICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuc2V0UmVzdWx0KGQpO1xcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi55m76ZmGXCIsXCJwYXRoXCI6XCJsb2dpblwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5sZXQgdXJsID0gJ2h0dHBzOi8vYXV0aC5hbGl5dW5kcml2ZS5jb20vdjIvb2F1dGgvYXV0aG9yaXplP2xvZ2luX3R5cGU9Y3VzdG9tJnJlc3BvbnNlX3R5cGU9Y29kZSZyZWRpcmVjdF91cmk9aHR0cHMlM0ElMkYlMkZ3d3cuYWxpeXVuZHJpdmUuY29tJTJGc2lnbiUyRmNhbGxiYWNrJmNsaWVudF9pZD0yNWR6WDN2Yllxa3RWeHlYJnN0YXRlPSU3QiUyMm9yaWdpbiUyMiUzQSUyMiolMjIlN0QjL2xvZ2luJ1xcbnZhciBqcyA9ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICBjb25zdCB0b2tlbkZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7XFxuICAgICAgICB2YXIgdG9rZW4gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpKVxcbiAgICAgICAgaWYgKHRva2VuICYmIHRva2VuLnVzZXJfaWQpIHtcXG4gICAgICAgICAgICBsZXQgdG9rZW5fdXJsID0gJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uJztcXG4gICAgICAgICAgICBmeV9icmlkZ2VfYXBwLndyaXRlRmlsZSh0b2tlbl91cmwsIEpTT04uc3RyaW5naWZ5KHRva2VuKSlcXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcXG4gICAgICAgICAgICBhbGVydCgnVE9LRU7ojrflj5bmiJDlip/vvIzor7fli7/ms4TmvI/kuKrkurrpmpDnp4Eh6YCA5Ye66K+l6aG16Z2i5ZCO5Yi35paw6YeN6K+V77yBJyk7XFxuICAgICAgICAgICAgZnlfYnJpZGdlX2FwcC5iYWNrKCk7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICB0b2tlbl90aW1lcigpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHZhciB0b2tlbl90aW1lciA9IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgc2V0VGltZW91dCh0b2tlbkZ1bmN0aW9uLCAzMDApXFxuICAgIH07XFxuICAgIHRva2VuX3RpbWVyKCk7XFxuICAgIHRva2VuRnVuY3Rpb24oKTtcXG59KVxcbmQucHVzaCh7XFxuICAgIHVybDogdXJsLFxcbiAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJyxcXG4gICAgZGVzYzogJzEwMCUmJmZsb2F0JyxcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGNhbkJhY2s6IHRydWUsXFxuICAgICAgICBqczoganNcXG4gICAgfVxcbn0pXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiYXBpXCIsXCJwYXRoXCI6XCJhcGlcIixcInJ1bGVcIjpcInZhciByZWZyZXNoVG9rZW4gPSBmdW5jdGlvbigpIHtcXG4gICAgdmFyIHVybCA9IFxcXCJodHRwczovL2F1dGguYWxpeXVuZHJpdmUuY29tL3YyL2FjY291bnQvdG9rZW5cXFwiXFxuICAgIHZhciBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXCIpKVxcbiAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShwb3N0KHVybCwge1xcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgIFxcXCJyZWZyZXNoX3Rva2VuXFxcIjogY29uZmlnLnJlZnJlc2hfdG9rZW4sXFxuICAgICAgICAgICAgXFxcImdyYW50X3R5cGVcXFwiOiBcXFwicmVmcmVzaF90b2tlblxcXCJcXG4gICAgICAgIH0pXFxuICAgIH0pKVxcbiAgICBjb25maWdbXFxcInJlZnJlc2hfdG9rZW5cXFwiXSA9IHJlcy5yZWZyZXNoX3Rva2VuXFxuICAgIGNvbmZpZ1tcXFwiYWNjZXNzX3Rva2VuXFxcIl0gPSByZXMuYWNjZXNzX3Rva2VuXFxuICAgIGNvbmZpZ1tcXFwiZXhwaXJlX3RpbWVcXFwiXSA9IHJlcy5leHBpcmVfdGltZVxcbiAgICBjb25maWdbXFxcInRpbWVfZXhwaXJlXFxcIl0gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDcyMDAgKiAxMDAwXFxuICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYWxpLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKVxcbn1cXG52YXIgZ2V0RmlsZXMgPSBmdW5jdGlvbihpZCwgZGlkKSB7XFxuICAgIHZhciB1cmwgPSBcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL2Fkcml2ZS92My9maWxlL2xpc3RcXFwiXFxuICAgIHZhciBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXCIpKVxcbiAgICB2YXIgZGVmID0gZGlkID8gZGlkIDogY29uZmlnLmRlZmF1bHRfZHJpdmVfaWRcXG4gICAgLy9sb2coaWQpXFxuICAgIHZhciBkYXRhID0ge1xcbiAgICAgICAgXFxcImRyaXZlX2lkXFxcIjogZGVmLFxcbiAgICAgICAgXFxcInBhcmVudF9maWxlX2lkXFxcIjogaWQsXFxuICAgICAgICBcXFwidG9rZW5fdHlwZVxcXCI6ICdCZWFyZXInLFxcbiAgICAgICAgXFxcImxpbWl0XFxcIjogMTAwLFxcbiAgICAgICAgXFxcImFsbFxcXCI6IHRydWUsXFxuICAgICAgICBcXFwidXJsX2V4cGlyZV9zZWNcXFwiOiAxNjAwLFxcbiAgICAgICAgXFxcImltYWdlX3RodW1ibmFpbF9wcm9jZXNzXFxcIjogXFxcImltYWdlL3Jlc2l6ZSx3XzQwMC9mb3JtYXQsanBlZ1xcXCIsXFxuICAgICAgICBcXFwiaW1hZ2VfdXJsX3Byb2Nlc3NcXFwiOiBcXFwiaW1hZ2UvcmVzaXplLHdfMTkyMC9mb3JtYXQsanBlZ1xcXCIsXFxuICAgICAgICBcXFwidmlkZW9fdGh1bWJuYWlsX3Byb2Nlc3NcXFwiOiBcXFwidmlkZW8vc25hcHNob3QsdF8xMDAwLGZfanBnLGFyX2F1dG8sd18zMDBcXFwiLFxcbiAgICAgICAgXFxcImZpZWxkc1xcXCI6IFxcXCIqXFxcIixcXG4gICAgICAgIFxcXCJvcmRlcl9ieVxcXCI6IGdldE15VmFyKFxcXCJvcmRlclxcXCIsIFxcXCJuYW1lXFxcIiksXFxuICAgICAgICBcXFwib3JkZXJfZGlyZWN0aW9uXFxcIjogXFxcIkFTQ1xcXCJcXG4gICAgfVxcbiAgICAvL2xvZyhnZXRNeVZhcihpZCArIFxcXCJtYXJrZXJcXFwiKSlcXG4gICAgaWYgKE1ZX1BBR0UgIT0gMSAmJiBnZXRNeVZhcihpZCArIFxcXCJtYXJrZXJcXFwiLCBcXFwiXFxcIikgPT0gXFxcIlxcXCIpIHtcXG5cXG4gICAgICAgIHJldHVybiBmYWxzZVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgZGF0YS5tYXJrZXIgPSBnZXRNeVZhcihpZCArIFxcXCJtYXJrZXJcXFwiKSAhPSAndW5kZWZpbmVkJyA/IGdldE15VmFyKGlkICsgXFxcIm1hcmtlclxcXCIpIDogJydcXG4gICAgICAgIGNsZWFyTXlWYXIoaWQgKyBcXFwibWFya2VyXFxcIilcXG4gICAgICAgIGxldCByZXMgPSBwb3N0KHVybCwge1xcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcImF1dGhvcml6YXRpb25cXFwiOiBjb25maWcuYWNjZXNzX3Rva2VuXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcylcXG4gICAgfVxcbn1cXG52YXIgY2h1bGkgPSBmdW5jdGlvbihpZCwgbmFtZSwgdXJsLCBkaWQpIHtcXG4gICAgdmFyIGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcIikpXFxuICAgIHZhciBkaWQgPSBkaWQgPyBkaWQgOiBjb25maWcuZGVmYXVsdF9kcml2ZV9pZFxcbiAgICBsZXQge1xcbiAgICAgICAgZ2V0SHptLFxcbiAgICAgICAgcHVzaFxcbiAgICB9ID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcIilcXG4gICAgdmFyIEh6bSA9IGdldEh6bShuYW1lKVxcbiAgICBpZiAoJC5tb3ZpZS5pbmNsdWRlcyhIem0pKSB7XFxuICAgICAgICBsZXQgcHVybCA9IFxcXCJodHRwczovL2FwaS5hbGl5dW5kcml2ZS5jb20vYWRyaXZlL3YyL2ZpbGUvZ2V0X3ZpZGVvX3ByZXZpZXdfcGxheV9pbmZvXFxcIlxcbiAgICAgICAgdmFyIHVybHMgPSBbXVxcbiAgICAgICAgdmFyIG5hbWVzID0gW1xcXCLljp/nlLtcXFwiXVxcbiAgICAgICAgdXJscy5wdXNoKHVybCArIFxcXCIjaXNWaWRlbz10cnVlI1xcXCIpXFxuICAgICAgICBsZXQgcHUgPSBwb3N0KHB1cmwsIHtcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgIFxcXCJhdXRob3JpemF0aW9uXFxcIjogY29uZmlnLmFjY2Vzc190b2tlblxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICBcXFwiZHJpdmVfaWRcXFwiOiBkaWQsXFxuICAgICAgICAgICAgICAgIFxcXCJjYXRlZ29yeVxcXCI6IFxcXCJsaXZlX3RyYW5zY29kaW5nXFxcIixcXG4gICAgICAgICAgICAgICAgXFxcImZpbGVfaWRcXFwiOiBpZCxcXG4gICAgICAgICAgICAgICAgXFxcInRlbXBsYXRlX2lkXFxcIjogXFxcIlxcXCJcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgIGNvbnN0IHRyYW5zY29kaW5nID0ge1xcbiAgICAgICAgICAgIFVIRDogXFxcIjRLIOi2hea4hVxcXCIsXFxuICAgICAgICAgICAgUUhEOiBcXFwiMksg6LaF5riFXFxcIixcXG4gICAgICAgICAgICBGSEQ6IFxcXCIxMDgwIOWFqOmrmOa4hVxcXCIsXFxuICAgICAgICAgICAgSEQ6IFxcXCI3MjAg6auY5riFXFxcIixcXG4gICAgICAgICAgICBTRDogXFxcIjU0MCDmoIfmuIVcXFwiLFxcbiAgICAgICAgICAgIExEOiBcXFwiMzYwIOa1geeVhVxcXCJcXG4gICAgICAgIH07XFxuICAgICAgICBsZXQgYXJyMSA9IEpTT04ucGFyc2UocHUpLnZpZGVvX3ByZXZpZXdfcGxheV9pbmZvLmxpdmVfdHJhbnNjb2RpbmdfdGFza19saXN0LmZpbHRlcihpdCA9PiBpdC51cmwgIT0gXFxcIlxcXCIpO1xcbiAgICAgICAgZm9yIChsZXQgayBvZiBPYmplY3Qua2V5cyh0cmFuc2NvZGluZykpIHtcXG4gICAgICAgICAgICBmb3IgKGxldCBpdCBvZiBhcnIxKSB7XFxuICAgICAgICAgICAgICAgIGlmIChpdC50ZW1wbGF0ZV9pZCA9PSBrKSB7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzLnB1c2goaXQudXJsICsgXFxcIiNpc1ZpZGVvPXRydWUjXFxcIilcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzLnB1c2godHJhbnNjb2Rpbmdba10pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgIHVybHM6IHVybHMsXFxuICAgICAgICAgICAgbmFtZXM6IG5hbWVzLFxcbiAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vd3d3LmFsaXl1bmRyaXZlLmNvbS9cXFwiXFxuICAgICAgICAgICAgfV1cXG4gICAgICAgIH0pXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBsZXQgcmVzID0gcmVxdWVzdChidWlsZFVybChcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL3YyL2ZpbGUvZG93bmxvYWRcXFwiLCB7XFxuICAgICAgICAgICAgXFxcImRyaXZlX2lkXFxcIjogZGlkLFxcbiAgICAgICAgICAgIFxcXCJmaWxlX2lkXFxcIjogaWQsXFxuICAgICAgICAgICAgXFxcImltYWdlX3RodW1ibmFpbF9wcm9jZXNzXFxcIjogXFxcImltYWdlL3Jlc2l6ZSxtX2xmaXQsd18yNTYsbGltaXRfMC9mb3JtYXQsanBnfGltYWdlL2Zvcm1hdCx3ZWJwXFxcIlxcbiAgICAgICAgfSksIHtcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgIFxcXCJhdXRob3JpemF0aW9uXFxcIjogY29uZmlnLmFjY2Vzc190b2tlblxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlXFxuICAgICAgICB9KVxcbiAgICAgICAgdmFyIHVybCA9IHBkZmgocmVzLCBcXFwiYSYmaHJlZlxcXCIpXFxuICAgICAgICBpZiAoJC5pbWcuaW5jbHVkZXMoSHptKSkge1xcbiAgICAgICAgICAgIHJldHVybiB1cmwgKyBcXFwiIy5qcGdcXFwiXFxuICAgICAgICB9IGVsc2UgaWYgKCQuYXVkaW8uaW5jbHVkZXMoSHptKSkge1xcbiAgICAgICAgICAgIHJldHVybiB1cmwgKyBcXFwiI2lzTXVzaWM9dHJ1ZSNcXFwiXFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiZG93bmxvYWQ6Ly9cXFwiICsgdXJsXFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuJC5leHBvcnRzLnNoYXJlZ2V0ZmlsZXMgPSBmdW5jdGlvbihpZCwgcGF0aCwgcykge1xcbiAgICB2YXIgZGF0YSA9IHtcXG4gICAgICAgIFxcXCJhbGxcXFwiOiB0cnVlLFxcbiAgICAgICAgXFxcInNoYXJlX2lkXFxcIjogaWQsXFxuICAgICAgICBcXFwicGFyZW50X2ZpbGVfaWRcXFwiOiBwYXRoLFxcbiAgICAgICAgXFxcImxpbWl0XFxcIjogMjAwLFxcbiAgICAgICAgXFxcImltYWdlX3RodW1ibmFpbF9wcm9jZXNzXFxcIjogXFxcImltYWdlL3Jlc2l6ZSx3XzE2MC9mb3JtYXQsanBlZ1xcXCIsXFxuICAgICAgICBcXFwiaW1hZ2VfdXJsX3Byb2Nlc3NcXFwiOiBcXFwiaW1hZ2UvcmVzaXplLHdfMTkyMC9mb3JtYXQsanBlZ1xcXCIsXFxuICAgICAgICBcXFwidmlkZW9fdGh1bWJuYWlsX3Byb2Nlc3NcXFwiOiBcXFwidmlkZW8vc25hcHNob3QsdF8xMDAwLGZfanBnLGFyX2F1dG8sd18zMDBcXFwiLFxcbiAgICAgICAgXFxcIm9yZGVyX2J5XFxcIjogZ2V0SXRlbShcXFwib3JkZXJcXFwiLCBcXFwibmFtZVxcXCIpLFxcbiAgICAgICAgXFxcIm9yZGVyX2RpcmVjdGlvblxcXCI6IFxcXCJBU0NcXFwiXFxuICAgIH1cXG4gICAgaWYgKE1ZX1BBR0UgPT0gMSB8fCBnZXRNeVZhcihpZCArIFxcXCJtYXJrZXJcXFwiLCBcXFwiXFxcIikgIT0gXFxcIlxcXCIpIHtcXG4gICAgICAgIGRhdGEubWFya2VyID0gZ2V0TXlWYXIoaWQgKyBcXFwibWFya2VyXFxcIikgIT0gJ3VuZGVmaW5lZCcgPyBnZXRNeVZhcihpZCArIFxcXCJtYXJrZXJcXFwiKSA6ICcnXFxuICAgICAgICBjbGVhck15VmFyKGlkICsgXFxcIm1hcmtlclxcXCIpXFxuICAgICAgICB2YXIgZmlsZXMgPSBKU09OLnBhcnNlKHBvc3QoXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS9hZHJpdmUvdjMvZmlsZS9saXN0XFxcIiwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcIngtc2hhcmUtdG9rZW5cXFwiOiBzXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKVxcbiAgICAgICAgfSkpXFxuICAgICAgICByZXR1cm4gZmlsZXNcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiBmYWxzZVxcbiAgICB9XFxufVxcbiQuZXhwb3J0cy5zaGFyZWNodWxpID0gZnVuY3Rpb24oc2hhcmVfaWQsIGlkLCBuYW1lLCBzKSB7XFxuICAgIHZhciBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXCIpKVxcbiAgICBsZXQge1xcbiAgICAgICAgZ2V0SHptLFxcbiAgICAgICAgcHVzaFxcbiAgICB9ID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcIilcXG4gICAgdmFyIEh6bSA9IGdldEh6bShuYW1lKVxcbiAgICBpZiAoJC5tb3ZpZS5pbmNsdWRlcyhIem0pKSB7XFxuICAgICAgICBsZXQgdXJsID0gSlNPTi5wYXJzZShwb3N0KFxcXCJodHRwczovL2FwaS5hbGl5dW5kcml2ZS5jb20vdjIvZmlsZS9nZXRfc2hhcmVfbGlua19kb3dubG9hZF91cmxcXFwiLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICBcXFwieC1zaGFyZS10b2tlblxcXCI6IHMsXFxuICAgICAgICAgICAgICAgIFxcXCJhdXRob3JpemF0aW9uXFxcIjogY29uZmlnLmFjY2Vzc190b2tlblxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICBcXFwiZXhwaXJlX3NlY1xcXCI6IDYwMCxcXG4gICAgICAgICAgICAgICAgXFxcImZpbGVfaWRcXFwiOiBpZCxcXG4gICAgICAgICAgICAgICAgXFxcInNoYXJlX2lkXFxcIjogc2hhcmVfaWRcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSkpLmRvd25sb2FkX3VybFxcbiAgICAgICAgbGV0IHB1ID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvYWxpbGF6eVxcXCIpKHNoYXJlX2lkLCBpZCwgdXJsKVxcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHB1KVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgbGV0IHVybCA9IEpTT04ucGFyc2UocG9zdChcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL3YyL2ZpbGUvZ2V0X3NoYXJlX2xpbmtfZG93bmxvYWRfdXJsXFxcIiwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcIngtc2hhcmUtdG9rZW5cXFwiOiBzLFxcbiAgICAgICAgICAgICAgICBcXFwiYXV0aG9yaXphdGlvblxcXCI6IGNvbmZpZy5hY2Nlc3NfdG9rZW5cXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgXFxcImV4cGlyZV9zZWNcXFwiOiA2MDAsXFxuICAgICAgICAgICAgICAgIFxcXCJmaWxlX2lkXFxcIjogaWQsXFxuICAgICAgICAgICAgICAgIFxcXCJzaGFyZV9pZFxcXCI6IHNoYXJlX2lkXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pKS51cmxcXG4gICAgICAgIGlmICgkLmltZy5pbmNsdWRlcyhIem0pKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHVybCArIFxcXCIjLmpwZ1xcXCJcXG4gICAgICAgIH0gZWxzZSBpZiAoJC5hdWRpby5pbmNsdWRlcyhIem0pKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHVybCArIFxcXCIjaXNNdXNpYz10cnVlI1xcXCJcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJkb3dubG9hZDovL1xcXCIgKyB1cmxcXG4gICAgICAgIH1cXG4gICAgfVxcbn1cXG4kLmV4cG9ydHMuZ2V0SWNvbiA9IGZ1bmN0aW9uKGZpbGVOYW1lKSB7XFxuICAgIGxldCB7XFxuICAgICAgICBnZXRIem1cXG4gICAgfSA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2FwaVxcXCIpXFxuICAgIGxldCByb290ID0gXFxcImh0dHBzOi8vZ2l0Y29kZS5uZXQvcXFfMzIzOTQzNTEvZHIvLS9yYXcvbWFzdGVyL2ltZy/mlofku7bnsbvlnosyL1xcXCI7XFxuICAgIGxldCBmaWxlcyA9ICdhaXxhcGt8YXZpfGNzc3xkbWd8ZXhlfGZsdnxnaWZ8aGlrZXJ8aHRtbHxpc298anBnfGpzfGpzb258bG9nfG1vdnxtcDN8bXA0fG90ZnxwaHB8cG5nfHBwdHxwc2R8dGFibGV8dHh0fHdhdnx4bHN8emlwfGNzc3xkb2N8ZXB1YnxleGN8aHRtfHhsc3gnLnNwbGl0KCd8Jyk7XFxuICAgIGxldCBoem0gPSBnZXRIem0oZmlsZU5hbWUpXFxuICAgIGlmIChmaWxlcy5pbmNsdWRlcyhoem0pKSB7XFxuICAgICAgICBpbWcgPSByb290ICsgaHptICsgJy5zdmcnO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaW1nID0gcm9vdCArIFxcXCLmlofku7Yuc3ZnXFxcIlxcbiAgICB9XFxuICAgIHJldHVybiBpbWdcXG59XFxuJC5leHBvcnRzLmdldEh6bSA9IGZ1bmN0aW9uKGZpbGVOYW1lKSB7XFxuICAgIHJldHVybiBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGFzdEluZGV4T2YoXFxcIi5cXFwiKSArIDEpLnRvTG93ZXJDYXNlKClcXG59XFxuJC5leHBvcnRzLnJlZnJlc2hUb2tlbiA9IHJlZnJlc2hUb2tlblxcbiQuZXhwb3J0cy5nZXRGaWxlcyA9IGdldEZpbGVzXFxuJC5leHBvcnRzLmNodWxpID0gY2h1bGlcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWIhuS6q1wiLFwicGF0aFwiOlwic2hhcmVcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuJC5leHRlbmQoe1xcbiAgICB0ZXh0OiBbXFxcImh0bVxcXCIsIFxcXCJodG1sXFxcIiwgXFxcInhtbFxcXCIsIFxcXCJqYXZhXFxcIiwgXFxcInByb3BlcnRpZXNcXFwiLCBcXFwic3FsXFxcIiwgXFxcImpzXFxcIiwgXFxcIm1kXFxcIiwgXFxcImpzb25cXFwiLCBcXFwiY29uZlxcXCIsIFxcXCJpbmlcXFwiLCBcXFwidnVlXFxcIiwgXFxcInBocFxcXCIsIFxcXCJweVxcXCIsIFxcXCJiYXRcXFwiLCBcXFwiZ2l0aWdub3JlXFxcIiwgXFxcInltbFxcXCIsIFxcXCJnb1xcXCIsIFxcXCJzaFxcXCIsIFxcXCJjXFxcIiwgXFxcImNwcFxcXCIsIFxcXCJoXFxcIiwgXFxcImhwcFxcXCIsIFxcXCJ0c3hcXFwiXSxcXG4gICAgYXVkaW86IFtcXFwibXAzXFxcIiwgXFxcImZsYWNcXFwiLCBcXFwib2dnXFxcIiwgXFxcIm00YVxcXCIsIFxcXCJ3YXZcXFwiLCBcXFwib3B1c1xcXCJdLFxcbiAgICBtb3ZpZTogW1xcXCJtcDRcXFwiLCBcXFwibWt2XFxcIiwgXFxcImF2aVxcXCIsIFxcXCJtb3ZcXFwiLCBcXFwicm12YlxcXCIsIFxcXCJ3ZWJtXFxcIiwgXFxcImZsdlxcXCIsIFxcXCJtNHZcXFwiLCBcXFwibTN1OFxcXCIsIFxcXCJ0c1xcXCJdLFxcbiAgICBpbWc6IFtcXFwianBnXFxcIiwgXFxcInBuZ1xcXCIsIFxcXCJqcGVnXFxcIiwgXFxcImdpZlxcXCIsIFxcXCJzdmdcXFwiLCBcXFwicmF3XFxcIl0sXFxuICAgIHN1YnRpdGxlOiBbXFxcInZ0dFxcXCIsIFxcXCJzcnRcXFwiLCBcXFwiYXNzXFxcIl1cXG59KVxcblxcbmZ1bmN0aW9uIGZvcm1hdERhdGUodGltZSkge1xcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWUpO1xcbiAgICB2YXIgWVkgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAnLSc7XFxuICAgIHZhciBNTSA9IChkYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgOiBkYXRlLmdldE1vbnRoKCkgKyAxKSArICctJztcXG4gICAgdmFyIEREID0gKGRhdGUuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXREYXRlKCkpIDogZGF0ZS5nZXREYXRlKCkpO1xcbiAgICB2YXIgaGggPSAoZGF0ZS5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldEhvdXJzKCkgOiBkYXRlLmdldEhvdXJzKCkpICsgJzonO1xcbiAgICB2YXIgbW0gPSAoZGF0ZS5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0TWludXRlcygpIDogZGF0ZS5nZXRNaW51dGVzKCkpICsgJzonO1xcbiAgICB2YXIgc3MgPSAoZGF0ZS5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0U2Vjb25kcygpIDogZGF0ZS5nZXRTZWNvbmRzKCkpO1xcbiAgICByZXR1cm4gWVkgKyBNTSArIEREICsgXFxcIiBcXFwiICsgaGggKyBtbSArIHNzO1xcbn1cXG5pZiAoZ2V0UGFyYW0oXFxcInNoYXJlX3VybFxcXCIpLnN0YXJ0c1dpdGgoXFxcImh0dHBzOi8vd3d3LmFsaXl1bmRyaXZlLmNvbS9zL1xcXCIpKSB7XFxuICAgIHZhciBzaGFyZVVybCA9IGdldFBhcmFtKFxcXCJzaGFyZV91cmxcXFwiKVxcbiAgICB2YXIgc2hhcmVfaWQgPSBzaGFyZVVybC5zcGxpdCgnY29tL3MvJylbMV0uc3BsaXQoXFxcIi9cXFwiKVswXVxcbiAgICBpZiAoZ2V0SXRlbShzaGFyZV9pZCwgXFxcIlxcXCIpICE9IFxcXCJcXFwiKSB7XFxuICAgICAgICB2YXIgcGFzc3dvcmQgPSBnZXRJdGVtKHNoYXJlX2lkKVxcbiAgICB9IGVsc2UgaWYgKGdldFBhcmFtKFxcXCJwYXNzd29yZFxcXCIpKSB7XFxuICAgICAgICB2YXIgcGFzc3dvcmQgPSBnZXRQYXJhbShcXFwicGFzc3dvcmRcXFwiKVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIHBhc3N3b3JkID0gXFxcIlxcXCJcXG4gICAgfVxcbiAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShwb3N0KFxcXCJodHRwczovL2FwaS5hbGl5dW5kcml2ZS5jb20vYWRyaXZlL3YzL3NoYXJlX2xpbmsvZ2V0X3NoYXJlX2J5X2Fub255bW91cz9zaGFyZV9pZD1cXFwiICsgc2hhcmVfaWQsIHtcXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICBcXFwic2hhcmVfaWRcXFwiOiBzaGFyZV9pZFxcbiAgICAgICAgfSlcXG4gICAgfSkpXFxuICAgIHZhciBzYSA9IEpTT04ucGFyc2UocG9zdChcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL3YyL3NoYXJlX2xpbmsvZ2V0X3NoYXJlX3Rva2VuXFxcIiwge1xcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgIFxcXCJzaGFyZV9wd2RcXFwiOiBwYXNzd29yZCxcXG4gICAgICAgICAgICBcXFwic2hhcmVfaWRcXFwiOiBzaGFyZV9pZFxcbiAgICAgICAgfSlcXG4gICAgfSkpXFxuICAgIGlmIChzYS5zaGFyZV90b2tlbikge1xcbiAgICAgICAgdmFyIHMgPSBzYS5zaGFyZV90b2tlblxcbiAgICAgICAgc2V0UGFnZVRpdGxlKHJlcy5zaGFyZV9uYW1lKVxcbiAgICAgICAgdmFyIHBhdGggPSBNWV9QQVJBTVMucGF0aCB8fCBcXFwicm9vdFxcXCJcXG4gICAgICAgIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgICAgICAgICBkLnVuc2hpZnQoe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogcmVzLmNyZWF0b3JfbmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiByZXMuYXZhdGFyLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG4gICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi4oCc4oCc4oCd4oCdPHNtYWxsPlxcXCIgKyBmb3JtYXREYXRlKERhdGUucGFyc2UocmVzLnVwZGF0ZWRfYXQpKSArIFxcXCI8L3NtYWxsPlxcXCIsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIlxcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLkv53lrZjliLDmiJHnmoTnvZHnm5hcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IGBzbWFydGRyaXZlOi8vc2hhcmUvYnJvd3NlP3NoYXJlSWQ9JHtzaGFyZV9pZH0mc2hhcmVQd2Q9JHtwYXNzd29yZH1gLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuWIh+aNouagt+W8j1xcXCIsXFxuICAgICAgICAgICAgICAgIHVybDogJChbXFxcIm1vdmllXzFfbGVmdF9waWNcXFwiLCBcXFwiY2FyZF9waWNfM1xcXCIsIFxcXCJhdmF0YXJcXFwiXSkuc2VsZWN0KCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oXFxcInN0eWxlXFxcIiwgaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey5YiH5o2iXFxcIlxcbiAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxuICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuaOkuW6j++8mlxcXCIgKyAoZ2V0TXlWYXIoXFxcIm9yZGVyXFxcIiwgXFxcIm5hbWVcXFwiKSA9PSBcXFwibmFtZVxcXCIgPyBcXFwi5ZCN56ewXFxcIiA6IFxcXCLml7bpl7RcXFwiKSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKFxcXCIjbm9SZWNvcmRIaXN0b3J5IyNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIG8gPSBnZXRNeVZhcihcXFwib3JkZXJcXFwiLCBcXFwibmFtZVxcXCIpXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwib3JkZXJcXFwiLCAobyA9PSBcXFwibmFtZVxcXCIgPyBcXFwidXBkYXRlZF9hdFxcXCIgOiBcXFwibmFtZVxcXCIpKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIlxcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcblxcbiAgICAgICAgdmFyIGZpbGVzID0gJC5yZXF1aXJlKFxcXCJhcGlcXFwiKS5zaGFyZWdldGZpbGVzKHNoYXJlX2lkLCBwYXRoLCBzKVxcbiAgICAgICAgaWYgKGZpbGVzKSB7XFxuICAgICAgICAgICAgcHV0TXlWYXIocGF0aCArIFxcXCJtYXJrZXJcXFwiLCBmaWxlcy5uZXh0X21hcmtlcilcXG4gICAgICAgICAgICBsaXN0ID0gZmlsZXMuaXRlbXNcXG4gICAgICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0sIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IGZpbGVOYW1lID0gaXRlbS5uYW1lXFxuICAgICAgICAgICAgICAgIGxldCBsZW4gPSA0MDtcXG4gICAgICAgICAgICAgICAgbGV0IGxlbjIgPSBsZW4gLyAyO1xcbiAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWUubGVuZ3RoID49IGxlbikge1xcbiAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMCwgbGVuMikgKyAnLi4uJyArIGZpbGVOYW1lLnN1YnN0cihmaWxlTmFtZS5sZW5ndGggLSBsZW4yKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGZpbGVOYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZm9ybWF0RGF0ZShEYXRlLnBhcnNlKGl0ZW0udXBkYXRlZF9hdCkpLFxcbiAgICAgICAgICAgICAgICAgICAgaW1nOiAoaXRlbS50aHVtYm5haWwgPyBpdGVtLnRodW1ibmFpbCA6IChpdGVtLnR5cGUgPT0gXFxcImZvbGRlclxcXCIgPyBcXFwiaHR0cHM6Ly9naXRjb2RlLm5ldC9xcV8zMjM5NDM1MS9kci8tL3Jhdy9tYXN0ZXIvaW1nL+aWh+S7tuexu+WeizIv5paH5Lu25aS5LnN2Z1xcXCIgOiAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5nZXRJY29uKGl0ZW0ubmFtZSkpKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogKGl0ZW0udHlwZSA9PSBcXFwiZm9sZGVyXFxcIiA/IFxcXCJoaWtlcjovL3BhZ2Uvc2hhcmU/cGFnZT1meXBhZ2Umc2hhcmVfdXJsPVxcXCIgKyBnZXRQYXJhbShcXFwic2hhcmVfdXJsXFxcIikgOiAkKCkubGF6eVJ1bGUoKHNoYXJlX2lkLCBpZCwgbmFtZSwgcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5zaGFyZWNodWxpKHNoYXJlX2lkLCBpZCwgbmFtZSwgcylcXG4gICAgICAgICAgICAgICAgICAgIH0sIHNoYXJlX2lkLCBpdGVtLmZpbGVfaWQsIGl0ZW0ubmFtZSwgcykpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGdldEl0ZW0oXFxcInN0eWxlXFxcIiwgXFxcIm1vdmllXzNcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogaXRlbS5maWxlX2lkXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIGlmIChzYS5jb2RlID09IFxcXCJTaGFyZUxpbmsuQ2FuY2VsbGVkXFxcIikge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLmnaXmmZrkuobvvIzliIbkuqvooqvlj5bmtojkuobgsqBf4LKgXFxcIixcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxuICAgICAgICB9XSlcXG4gICAgfSBlbHNlIGlmIChzYS5jb2RlID09IFxcXCJTaGFyZUxpbmsuRm9yYmlkZGVuXFxcIikge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLmnaXmmZrkuobvvIzliIbkuqvooqvlsIHnpoHkuobgsqBf4LKgXFxcIixcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxuICAgICAgICB9XSlcXG4gICAgfSBlbHNlIGlmIChzYS5jb2RlID09IFxcXCJTaGFyZUxpbmsuRXhwaXJlZFxcXCIpIHtcXG4gICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgIHRpdGxlOiBcXFwi5p2l5pma5LqG77yM5YiG5Lqr6L+H5pyf5LqG4LKgX+CyoFxcXCIsXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbiAgICAgICAgfV0pXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBzZXRSZXN1bHQoW3tcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuivt+i+k+WFpeaPkOWPlueggVxcXCIsXFxuICAgICAgICAgICAgdXJsOiAkKFxcXCJcXFwiKS5pbnB1dCgoc2hhcmVfaWQpID0+IHtcXG4gICAgICAgICAgICAgICAgc2V0SXRlbShzaGFyZV9pZCwgaW5wdXQpXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgICAgICB9LCBzaGFyZV9pZCksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbiAgICAgICAgfV0pXFxuICAgIH1cXG59XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pCc57SiXCIsXCJwYXRoXCI6XCJzZWFyY2hcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgY2xlYXJNeVZhcignc2VhcmNobWFya2VyJylcXG4gICAgY2xlYXJNeVZhcignc2VyYWNoZW5kJylcXG59KSlcXG5cXG5hZGRMaXN0ZW5lcignb25SZWZyZXNoJywgJC50b1N0cmluZygoKSA9PiB7XFxuICAgIGNsZWFyTXlWYXIoJ3NlYXJjaG1hcmtlcicpXFxuICAgIGNsZWFyTXlWYXIoJ3NlcmFjaGVuZCcpXFxufSkpXFxuXFxuXFxuZnVuY3Rpb24gZm9ybWF0RGF0ZSh0aW1lKSB7XFxuICAgIHZhciBkYXRlID0gbmV3IERhdGUodGltZSk7XFxuICAgIHZhciBZWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXG4gICAgdmFyIE1NID0gKGRhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/ICcwJyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSA6IGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy0nO1xcbiAgICB2YXIgREQgPSAoZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIChkYXRlLmdldERhdGUoKSkgOiBkYXRlLmdldERhdGUoKSk7XFxuICAgIHZhciBoaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOic7XFxuICAgIHZhciBtbSA9IChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyAnOic7XFxuICAgIHZhciBzcyA9IChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSk7XFxuICAgIHJldHVybiBZWSArIE1NICsgREQgKyBcXFwiIFxcXCIgKyBoaCArIG1tICsgc3M7XFxufVxcblxcbmxldCBrdyA9IGdldFBhcmFtKFxcXCJrd1xcXCIpO1xcbmxldCBwYWdlID0gTVlfUEFHRTtcXG5cXG5mdW5jdGlvbiBnZXRfU2VhcmNoKGFyciwga3csIHBhZ2UpIHtcXG4gICAgdmFyIGxpbmtzID0ga3cubWF0Y2goL2h0dHBzOlxcXFwvXFxcXC8od3d3XFxcXC5hbGl5dW5kcml2ZVxcXFwuY29tXFxcXC9zfGFseXdwXFxcXC5uZXQpXFxcXC9cXFxcdyovZylcXG4gICAgaWYgKGxpbmtzKSB7XFxuICAgICAgICBhcnIucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLor4bliKvliLDpk77mjqVcXFwiLFxcbiAgICAgICAgICAgIHVybDogXFxcInRvYXN0Oi8v44O9KCrijJLiiIfijJIqKe++iVxcXCIsXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbiAgICAgICAgfSlcXG4gICAgICAgIGxpbmtzLmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0sXFxuICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vcGFnZS9zaGFyZT9wYWdlPWZ5cGFnZSZzaGFyZV91cmw9XFxcIiArIGl0ZW0sXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIlxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICAgICAgcmV0dXJuIGFyclxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIHBhdGhzID0gTVlfUEFSQU1TLnBhdGggfHwgXFxcInJvb3RcXFwiXFxuICAgICAgICBsZXQgdSA9IFxcXCJodHRwczovL2FwaS5hbGl5dW5kcml2ZS5jb20vYWRyaXZlL3YzL2ZpbGUvc2VhcmNoXFxcIlxcbiAgICAgICAgdmFyIGNvbmZpZyA9IEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYWxpLmpzb25cXFwiKSlcXG4gICAgICAgIHZhciBtYXJrID0gZ2V0TXlWYXIoJ3NlYXJjaG1hcmtlcicpIHx8ICcnO1xcbiAgICAgICAgdmFyIGJvZHkgPSB7XFxuICAgICAgICAgICAgXFxcImRyaXZlX2lkXFxcIjogY29uZmlnLmRlZmF1bHRfZHJpdmVfaWQsXFxuICAgICAgICAgICAgXFxcImxpbWl0XFxcIjogMTAwLFxcbiAgICAgICAgICAgICdtYXJrZXInOiBtYXJrLFxcbiAgICAgICAgICAgIFxcXCJpbWFnZV90aHVtYm5haWxfcHJvY2Vzc1xcXCI6IFxcXCJpbWFnZS9yZXNpemUsd180MDAvZm9ybWF0LGpwZWdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWFnZV91cmxfcHJvY2Vzc1xcXCI6IFxcXCJpbWFnZS9yZXNpemUsd18xOTIwL2Zvcm1hdCxqcGVnXFxcIixcXG4gICAgICAgICAgICBcXFwidmlkZW9fdGh1bWJuYWlsX3Byb2Nlc3NcXFwiOiBcXFwidmlkZW8vc25hcHNob3QsdF8xMDAwLGZfanBnLGFyX2F1dG8sd18zMDBcXFwiLFxcbiAgICAgICAgICAgIFxcXCJxdWVyeVxcXCI6IGBuYW1lIG1hdGNoIFxcXFxcXFwiJHtrd31cXFxcXFxcImAsXFxuICAgICAgICAgICAgXFxcIm9yZGVyX2J5XFxcIjogXFxcIm5hbWUgQVNDXFxcIlxcbiAgICAgICAgfVxcbiAgICAgICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKHBvc3QodSwge1xcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcImF1dGhvcml6YXRpb25cXFwiOiBjb25maWcuYWNjZXNzX3Rva2VuXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSkpXFxuICAgICAgICB2YXIgbGlzdCA9IGpzb24uaXRlbXM7XFxuICAgICAgICBpZihsaXN0Lmxlbmd0aD09MCl7XFxuICAgICAgICAgICAgYXJyLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD48Zm9udCBjb2xvcj1cXFwiZ3JleVxcXCI+5peg56ym5ZCI57uT5p6cPC9mb250Pjwvc21hbGw+JyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICByZXR1cm4gYXJyO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGpzb24ubmV4dF9tYXJrZXIgIT0gJycpIHtcXG4gICAgICAgICAgICBwdXRNeVZhcignc2VhcmNobWFya2VyJywganNvbi5uZXh0X21hcmtlcik7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHB1dE15VmFyKCdzZXJhY2hlbmQnLCAnMScpXFxuICAgICAgICB9XFxuICAgICAgICBpZiAoZ2V0TXlWYXIoJ3NlcmFjaGVuZCcsICcwJykgPT0gJzEnICYmIHBhZ2UgPiAxKSB7XFxuICAgICAgICAgICAgYXJyLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD48Zm9udCBjb2xvcj1cXFwiZ3JleVxcXCI+5Yir5YiS5LqG5Yiw5bqV5LqGPC9mb250Pjwvc21hbGw+JyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICByZXR1cm4gYXJyO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBmaWxlTmFtZSA9IGl0ZW0ubmFtZVxcbiAgICAgICAgICAgICAgICBsZXQgbGVuID0gNDA7XFxuICAgICAgICAgICAgICAgIGxldCBsZW4yID0gbGVuIC8gMjtcXG4gICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmxlbmd0aCA+PSBsZW4pIHtcXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc3Vic3RyKDAsIGxlbjIpICsgJy4uLicgKyBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGVuZ3RoIC0gbGVuMik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgYXJyLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGZpbGVOYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgaW1nOiAoaXRlbS50aHVtYm5haWwgPyBpdGVtLnRodW1ibmFpbCA6IChpdGVtLnR5cGUgPT0gXFxcImZvbGRlclxcXCIgPyBcXFwiaHR0cHM6Ly9naXRjb2RlLm5ldC9xcV8zMjM5NDM1MS9kci8tL3Jhdy9tYXN0ZXIvaW1nL+aWh+S7tuexu+WeizIv5paH5Lu25aS5LnN2Z1xcXCIgOiAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hcGlcXFwiKS5nZXRJY29uKGl0ZW0ubmFtZSkpKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogKGl0ZW0udHlwZSA9PSBcXFwiZm9sZGVyXFxcIiA/IFxcXCJoaWtlcjovL3BhZ2UvaG9tZVxcXCIgOiAkKCkubGF6eVJ1bGUoKGlkLCBuYW1lLCB1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcIikuY2h1bGkoaWQsIG5hbWUsIHVybClcXG4gICAgICAgICAgICAgICAgICAgIH0sIGl0ZW0uZmlsZV9pZCwgaXRlbS5uYW1lLCBpdGVtLnVybCkpLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZm9ybWF0RGF0ZShEYXRlLnBhcnNlKGl0ZW0udXBkYXRlZF9hdCkpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBpdGVtLmZpbGVfaWRcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIHJldHVybiBhcnJcXG4gICAgICAgIH1cXG4gICAgfVxcbn1cXG5cXG5nZXRfU2VhcmNoKGQsa3cscGFnZSlcXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpmL/ph4xsYXp5XCIsXCJwYXRoXCI6XCJhbGlsYXp5XCIsXCJydWxlXCI6XCJldmFsUHJpdmF0ZUpTKFxcXCJyTyszN3VHK2IySmJsOTFKWGUxQUxmWnpEbElRZ1BGSEM2Y1EzK1dPUHhsV2VtMy9jKzkzOUVBOGgxN1VvZXVCTHpsbUQvS2FlWFJ2SUpXUHh2UnZzbm93L1kwMmU1Y21QMmowcW9JOXBmeFhzTDE2QlVVS05NS3lacHB4Z1dDcnBmakRXeXZIakhsL1ZhSEJTVC8xTUR1blVhMlcyUHlTWlViVXEyNk95dUJZVmovWXpJajJ6bHFMZXBQWmVqandrTjcxU0pQK0tuM0w2RFpibWVwZFZVMlVncCtTWkNmbEJIdXlQSDJ5MldXeDMrMmpNYm5RNERJSVptQktwdzc2cCs4WXBNVTFsVm5vdGU4bW1FbzE2MmJMOUMrQjFRU1lkT2hvdDRDSXMxMmhRTENCV3lYdGhlUTFwbW9ZeGJub2xYdktSYnY1WVl0cEZNVDVPWkNnOXByRWphZ1laLy91ZEt6eSt4QlNoQTB1SzBMOFNka2tjaDJOVGlrU1dkQTNjS2tMRHJRbm5UTHUzNFhxVkdmK01xVEZndUFrRFlRRjZ0Nm1zRVlQMXFycmtCc21EeW5Bd2FFTjUyL3RNb3lYSC9GWGJ2YkdEOXVzZnE3azNjU1N5My9XaFNET2g5TVMydytrUCtsNEtTSm9qd3ZwMnhmQ3dESEtsSkFOendWaGlhRDN6WE95VVpzQnFCdEVvTC83ek9LR2hNa0ZHVWJ2bFN4MnJ6a0ZwYVpQdXBsL3pWalUwZVA3VC9hQ2VjV3pXMVYyNm9pbEZZeVhGWit2N0VIRThIUXlDaWVabXlMb211VnRnbmR5SGNkQzF2cVd4RmVYcm55amVsWFRYVE5xTFlUdzI4clp6RENSVWt3UDZkRG41ekR0TXZ4QzNQTWVRMFdkS0d5bXN3RWVucFlRQXFHelBvbHpMNE1MaDhtZ0ZhazIxalN5V0FrS0VkdGpPTVA2MDZVaGh5TlBZaEMxcmQxeFc5bmo5M0FmQ2ZxQm1RdEZEaVQzRnFOUEZIWGtaNFdNYzhWS2MvdjhhamdSWnZib2x4ckVWcW1GU3Ywb1FSWGs5ZGMvRVNMeXBQaUM2RzR2MGFDdk5BR2VpTFcrb2Z6bVJDeDEzWkM4MFNwbCtUajlnYWxneFBMUjZ5N3h6UHpodytjWDFuYmc5MU9Ud09xVXlhN2J2VG05UEk0TnlxR0FWbDNtZ0ZJUlhKcmJuQVk4RndWK3hlRGE1Z1dZekpQSGlFNG1uQjFDZlo2QnZXZWorbUpJbnhxa0IzL016RTN1SDJVenlYVXgrNFloMUZBQ2NPODdZc1IwNS9wNlhtbm1PK1NOYlQ3alAvM25hVzZheDBUL1I1Y0FBbTYyVnczQS9hYVduelBpTExyd2cyZUZIVWt2QUFuR0FVek1MWUlZbE00dG81RktGT1VsZDAzLzRIdHp6RytaVEtYNzRyRC9kK3A2VkRsTzlNTkVacEFQdk5GaHBlSERkNkFxcUVjYUtOK2R6UmFvS2c2NnU1VkhCTWFEVDczK0drMHVoSnNTWWJ3TVhzUExLdE4wUzVYUDcxbUZpM2hTQmdFSTJjVHdqd1QramNMNmdPRzIyWHhoU0NEWEhsYXM5ajEyU2hUbEpYZE4vK0I3Yzh4dm1VeWwrM2JPR0ZTUzBZRktsbmMrOGFUcUhRb3doWmo3NS9NNTNzS1lYMnpSZ09TVGFEMzFSb1FLU0VjUERpTkVzWjJUb21Oa0FtdmYwMzErZlczY2htMVJ3S3crWDlHeGZtSFE3cmlEb1NSaW9VYVp3SGVsRDFsb0Vlc0N5RDUwMUg3Ulk5WnlRVTZxTVplZmtlR1VCT1FaQ2Fac0F3RW5TRCtpN0NxRWhnMi9XY2Z0b3ppUkl4aFhZMkY3bFU1cEVsSUd5V3BuRFZnWnlOY0VheGhuR1FMbE1DUTBPRklKSGpZRG0yalhCdFV2RmtwSi9kK0NnZURENG82ZU5IeE1sQUpSdXNuQWhLcGtNTStVZWc2OVdQbHZESGc4clphNVFuY3pwTjEyM0YvQUs0SnlXMVYyNm9pbEZZeVhGWit2N0VIRThCcE1raCs5WTAvRHpIRG9PT1BnUHpYZ3hxWkFZYkFDV2Ewa0kvQVpMa0QvZWw2QjVCSWppWUhnMUFJbUtsWFhRbWNMUzBzd0doWjJDb1V6Y0JTa0V2UE9sREw3RHZ6enNPUW5LKy9iQ2M0bjlzN2tmRWg1R0grbVY0RTM3NzFwNmlrOUIranZIcjdqYTBTZ3ZRbkNRTTlIZHNsWlNROVd5c3RXSzNkYTg3SW1GKzB5SExsN3JpeEtVNDdXZ3dTVFcwNmxBbWRoalNJVWg2RkswMXpGRk93TlNaZE11MHBxdUU3a3l4ZkZvMXpGSEhWL3k4ZzRPdU12bUozcVBFZXVhRUJGeFE3RVBpUDMvbnhhMGxpOXFhMnR4Y2h5b2dVZDFIL1o5QTRCeGplVnpFc0ZBMkt1QVdHVGYrUGZyajR1OXRYUi9MNXd3VTVGS2tnelRKNVh0NXVkV1hSSDZ0VkpPK05HQmpHSGMxblB0TmtDalR4emExRm5KWUc5RmdHTWsweGpIWXprVE0wb0IwSWdlZjc3T2U4blBRRmEyNkVZcVFHaXM4YUVxVUJXUVA3THZLNTRpejhwOThjdGg2SklNRllwS2lHZ0ZpWmliRlEzclAzdERGd3NzRDJ1NTF2NktQM1M3TlRnVXBidGljbG5rQ21Rc3M5Zy9IMGVMbDF1RTg2VU12c08vUE93NUNjcjc5c0p6aWNQT3lUMkFYNG9GcTh0anY0TXBwSnRqb2pOdUIyeDNwRjRNS1AzWDJrbWZZR2hGdExsU2M1aFphRFNOd0hTdmZ6bEVHYXNLNnVFQ05nU2JoM3dNZGFFZnJTNkxJMjhiQkdHdndKVVF4bXVmeWh5VkRPUk1zcTlTMDEvbHpyK04yb1dLelBEK2NTOGNmTFpJV3RlYmV0VzhBTW93cGlSZ1FZdGpRNEZMTklBKzhHWGo0QmVwTXMrdTdWZFdaY25nZjlFVkxaQVBSMmlkL2tUVUwwdFdXNDBUd0cyWmNpRzNydmRkRzFzTi91SU9peVRNUE81U244RkNQSWpJZGhFZ3FmYkxxR2xvQUdGZU5TRW9GQjBSWXUwaFZtYlhjd1JES1VZaTBYVEw3YkRRdUI2TVJOU3ZkcWJ1ZjdscmVrMTJZQ1J5cGhxZldQRmtmS2ZPYjRWY3ZwYXY1VTByWVczSUhocVJyM25rUFg4YjAweHNTeEJEMVpHSlBLcEVmbHFod3dvTmxJRlhVOHhwWHdGSzJrU2hBTHZhZnZqTDdHNitpd3NlR0tIcW94VkxoNUNGNWRzU0I0RWFCc3kxVU5tNWRwUm1GS1BMdFBvZGJoamhMdGxid3IxNGt0eXI4Qzk2YnhXck1wTnNVazNIekM5Tk5ZUG1rQkk3OWpqQitBZ3JUUFJWMXIvSHNHcHp5TTN0K3dFdmQrSWppU05zZXNoTit6c2liWUF0N1FPenA0Tzhrd2NwK0dRSkVOd3dRdVU5bnhwRE9FMW9mWmlNbUY4a3Z1WExZbkNFbUNlTHI4SHlSdDZGT3JRVDhQYzV0UWI5akQ1MGVrRUlObHcvVnNmRmJSZXk1NWJmT0V2S1BYT1lYVlhxZkh0MFBoMDlWRldGYW9KT0ZTL0pTOTltK0ZTdklEbjBncHpvWGhJUnF3N0I3bkplNHJoVXdSLzIzNnBDbFVqa1dLZEtzMVpGdy8xVXZkTjN3ZHBRN3A5S2YrT1VzalhDMzgwMk9lZnBRb25VNzZ5c3lLVG1WNDE0YmNYek9IZ21HSFRKMVFrNkQ3ZGE4dGRHUlp5bGxxV0RzNlVNdnNPL1BPdzVDY3I3OXNKemljYWl4QWQzQ2V0VUF0c2tRVnhZSmh2Wk9UZXVKYUxhNDVaQlpnK2xYbStZYWNoQU8reUI2YkRmMG9aNXk0L0dmNDFpSGY4REJvUG0yMk5vMUdRalBBQ0k2Q2h5N05BK3QwbFdTRG1ZNlJiZGp6dmN1WElFcmdyMUQvUHVnRm1oT1ZrVTFBTXphd0YyZmh4OWlDUm5GSmpRZXFQeGdaUzkvWi90NEIzV1hQSUIwd0FxVHJ6bjZvUjNEWktORGEyajNuZFhCUjhZSlNVaU96NWNwNGRoQkd2OWEzT0o5YVcybi9yd0FnYzVtcUpueXJDekMzS09nMWRWSWwzekFhbW5ic0wxcE1lQ3JnVkhmbUY3STkvY2Z2TU9WY0tXVWtoTkVqbWtINzl6ek96NURtdktwYVNHZFFocXhjeWdqQnpuVjRueHNUTnNCWmwxSzBVVGsvd0FTOFh5eXZMU05aV2Mvc0luL3ZXU0FIVTl2Yk81SHhJZVJoL3BsZUJOKys5YWVyT2FkUWgydFRVc1lpcXIxYWNidGZabHM4WGhscDlrem5RR0dHTCtPUmdkcHc5dHB2MlRwK2UxMTIySG1nOGIxNVlZN0s3c3p4aGlJeUl1bTR5a0R2Vk03b1A3ZjJkQWJabitmTS9pSVRic09rMlA0dGJpdHhzdW9BZXJwNDF0ZmxZWUtDL2tXODd1L1k0aXZBUUZuNFJoN2FuTjdPL1RSeVRPNHY0SlZKVHMzOUJuZklNd1JGZGplWUFRZTlHUGJtZ1VaTGREUS9Gb2FrZXhYRkxKQ3NwMkRxN1ZhbXFhOFRUMER6RmR0ME5OZVd5N3NNTVhtbTVDUDROOUZ4NTIxYlAwbDdzTXp3WVJTZWhIVU1aLzBOSDlQbTN4Y2ZJZTJBWU5OQURMT25JaW03Wm1tS2hrdFJkdExTdmpHWUUxVVVlQksvbkRsMFF1cWRDaWovWUJaT1hzTWhPQ25zRVVjUjg4R3lsbTViUDRkOGI0aWI2eC9pREFQY3lUSDV4NzhoTnlhUmJhaC9ZdVM0ajA1Wm5KWXBJTzlnUHpUeWJiSS93SE5yNW9ES0NscDZGb0pWemZ6VWpVN1lCcGRabU04OWhOMUc4OW9hTEFFdml4dm9Oci85bjAwZk1RS0twTmgvbXRGQXF1ajhxZ3kxNTJtUnpnTnBHeTc2TFZqZXF3cTZqWFhUWGxYUlBKbEJTSTJCeEVTNUIwVmRhL3g3QnFjOGpON2ZzQkwzZmlIVmRUemc2QksrdEZkSXBPNzk0SFJyaWhvVEpCUmxHNzVVc2RxODVCYVdtUjRNV0l2a1hMd1ZqRDkxZTJHcEhEbjZ6eUNqb2o5eXk2ZEtZSHhnWnFCZXBWNUFZdi9tbzlpcWVraXRXUHRLU3Y1VTByWVczSUhocVJyM25rUFg4YjltTXRxMmxwQmtaRjUyWEViZHk5eFNBaWl5V0R1aEVhOEdITkQ4cTdvUERqUGEvMXpWK0VpTnpBamd4a0N3Rmo0aTFsSmNIbXJlWUxZREZNNkdSWFJCNFJoeWRwbS9RVDJWYkVzV2I5aCtsNzZMMjJndFk3ZDJDbElMM0NobDV3c3NyeTBqV1ZuUDdDSi83MWtnQjFQWVA3bU9NZHdWbHdQL0Eyem9aWUt5d0cybUhZNlNMZXByMVA1VitEME1GdUZMVm1kTmJ3SjZ3Yjd0WmhrTEVZNy9MSzh0STFsWnord2lmKzlaSUFkVDJaNThGRFJ4Vjd1WlpWVzY5VFY4QUFJdjdKSTZJWWZjUU1uSjZpL3Bqa1lpR2RvV2MvYVdnQVBldWNrUWtVK2hVazhRT0xYeE1nODNkNU5qQTJ0Vmh1OUpxYjhhKzNsMWN5ZzZ1VzA0bVpvRUJiSXBiY053eU1IamozMG1GdDdKd1dOWGpVcnhVbkE1NXFsb0k4Z2RPUWNzcnkwaldWblA3Q0ovNzFrZ0IxUFp2bHF4SmVUVlpKNUJ2QlB3OEtSUXB3Rml0SFNoK0VLSkdDTW9VdUZJMjFCcEJaWnJ1TW5jRW1LbldtVytPTkIzMVY3aFlpVWFXNUpuVXFZOWh6OENRb3ozeFRvVlhHeDJ5QzMwcWFlRlhLb2RXMTRLSFJSRjlJcHUrZ0dDb0xBa3BwUGNFWVlCS0FDc0FQN0EzWWdrVVJxdFVnRmhrMDJUUXNsZE8yVG9uSU1OZjlQS1Q3REdvby9KVHJybGp4b2VtSnhLTEhSZEs2SmlsZlA4b1NRV2tvTEp2N3RyQVpmeVpldmdkKzg1RS9tdUd6OGJjMEt4MTlNaHU2UFBuOVNxa0R2MXRndElsMFprYW00ZGIzMUhzTGZtNHZjS0p3cW5rZkhIL2xDdjU3ZlovZTdEVFdzNVRHeU5KaVBLZmw5RWFmT2dFc0RHMnIxQTcyUlVnWWpVbDlrWVZpVUgvd09mQ1VJSlFqNW5SRmpOWkp2bkkxRE5aVnpJa2R6bXJ3SE9takVtVHY3Q1NnVkVpM1NNbUhZRjZzK1VNaWgzdW82Z1BiUmhPZnMwVWp6eDJJamk0Q1dkVlBBcU9NYVpjdHhsUzNUdmp2bGFXMFRJM3lJR2JFOVJySUhJaDFqcmEzQXBZejk3TWcvREhYRGMyT2FuRDFWakVkc3lhSlpPc0tRUHRzaWo1cGp0WVlRV01WMlRzN0FvWUQ5d0tRQkRqUXcvSnJ4blFOUStMTmM4WkhMMVd2clpEWXNtQ2p3VEdIWndMckNDRUU4SnNGYjEvajhFc1pUMWZJT1hjcTdzYjZVMzNwUGcwNDk2OS9wTzlKTUZwNmRNcU1UTVFIbzkzWDJPbHdwOVRvcmlXcUJicXVGZC84M1lUa2YraDRXRW04SldDbk9GTnlzWWtqNEtKbUNhZEE3T1JNbWlTeUt6ZE9rVlNkbVRRbU0xV2cwN205akdMcHE0ZGFlWE5ObGRSUW9saThudG1wWDN5NW9Zd3FwanBQV2ExRE9IUGx3WXlUNHg3QSs1Q3VYV2d5aDIwcFg2RVJUakxuY0ZXZ0FjS05Camc3NysxYndkVkQxTTlCdVpEMlladjhxZFdibXNodkdzbFErTnVNcjZEbUNUTkM4NWZpMHVMRFhsdzZMT0FRUGhNeFQ2NWkwcmhsVEpGRUptSEdDeU5WSi9kUFVJbjArbjVpYzEwQ2RFeWl2anlNTWxoTkY0VlRqOUpCZ0Z1MVVKUVgrM3Y0UjhITVZ0VmR1cUlwUldNbHhXZnIreEJ4UEJiRlZZRGltbHVDTzBBSkdranJYVlRQTzl5NWNnU3VDdlVQOCs2QVdhRTVRaXVIbllaekNUSzN3bGd1WmgyTlJacHFMUkVlWlZnV2hLMXZBNHVsREFBOGNFbzE5RzY3WUxtVFFKb3pwWTNYY3NyeTBqV1ZuUDdDSi83MWtnQjFQWXhjZFNTT2ZBTjJBOEE0cExMd1ZjMFlUdWZldXYreDZrLzVRNTRVOGdIVU1zcnkwaldWblA3Q0ovNzFrZ0IxUGJSSmtEajJTVUo0aTNObHZ4Rm5FWi9HS1ZRWDNvcXJwWm0xZU5WeVB0b0lKYVVwT3BZU3pncjEyTGJIRlI1azkvTEs4dEkxbFp6K3dpZis5WklBZFQyZzJCa09rYVFJQWV4ZFNBU0c5UE5Sa3hUUUpDc0pPN2VpcWRGSHh1cmFNdWtIKzNWQ3JhMjIzWWhmZ04vTTQrSUVnTUg2QnlJL2x6eUNvSHM4OGVzK0ZQVk5TOU5IM3BwYWdCdGEwUW1hUktkdXBJeUx4MlZ3dzc5bG9FUUI2UUp5eXZMU05aV2Mvc0luL3ZXU0FIVTlwS24zc2NJTHNZb3R5bXpKUVVsV1JqOE91YUdvb1lHOVNRQWhFRkNvdVFEeXl2TFNOWldjL3NJbi92V1NBSFU5Z1d0dVArR2lDTFZhRnR3MTVoMFBLTE5Nc2NBVTQrUlR3R1VSYnlzVlBhUkNUNGFSZXZ0azdxZnJJRzBQcHZTM2NzcnkwaldWblA3Q0ovNzFrZ0IxUFpjQWhjUzR5eWhEYjFCL3JTcTJWTDMxR0ovY1h1YXlEN0xmRjlpcWhteG9Yd2N0dlVyb3laZ20vSFIrZ0p6MDB1ZkgwNGsydGtEVjFEZXhBWHIvNjlKV0xobGZwa3pIOXo5UCs4MUlwQkVIcERuclhyeDlDd0hBZnM2elVnTFNscVJueEdxZ1prSjVVSUYzRVBqVFVKQ2FBR2ZyNlpXbGpINmdlSFpkSTlOSkV6QzZMZzQ3RDh0L3J2SC9jLzlLN0xMSzh0STFsWnord2lmKzlaSUFkVDJiNWFzU1hrMVdTZVFid1Q4UENrVUtTZ3FJZVU4RFpFUWttZTNGWGVGVEw3MURnUTZKQklMTWhFSVY3cHlrQzdLMmhOMEFVQVhVNWNJQklqOXZadEdwODZVTXZzTy9QT3c1Q2NyNzlzSnppZTdmOTdrS3BETnpDazZjQlgxR2tCMGkzcEFOc2o4c2NzSm9IaFQ2MFNpNGM2VU12c08vUE93NUNjcjc5c0p6aWRtaTBVL3FJa3pSb0lXUlEwZ09UeEUxeVJXMWU5Z1VKWThGQ3ZlaGxkMmtETkREbHMvVE1pVTY2UDlCZXNQMWtQNkVBdGZBbFB4cHk3TG9VcXJCeTU5MmNZajdJa1pMbG1FdjlsaWdGWUJ6NTl3WHdJWGdQZG81NGdJTDZSU242YTE4TVdUQytEUUo4ZWtrcllKR1g2bjlqS041bklPRjN6ekcxT0ZBbW5lV1BVcENiT0lmUkxGWW5wbEdZaHFteUNqQ25Lc3luc1I3elhEbTdpeFVrWHdsdVdoVlNISURTRW00S20yampXZWNwazVHWGFIbzhEaDZGSzFCMS9uUHN4anRYUlZHMmNaOXY5QXliMG40aTJMeG9MbU5sUUo0eDRYdDNsNkl2MWNOL1F4cXhrNXdxSFZvKzV2blFJNHFGVlA2VFVob3BrV1VUY0JxbHhIOXpudFVkczE1dUxvYnlmSjFmcXMva0V2RnRJKzZpS1RTY1pyQWNvT1hVT2Q4MmY2N3cvZ3M2aWw4N3c2VENPOWgxMkdNVTRvMXBFR082SXFhd2MwYU9HWTF3S2xHSXh6ZjZFOHlmNk45RWFIUEFrRktVR3F2YitSMUNIMExhdlZuNWxoUXJpdFpwTEFYZytZcGYyaldzcGsxbHNYemVFMGl4ZVk4UmtidUtGdUdhelJObzlDRHQ2VVpVejUxK2JmQlVhaUVyTEhaMWoxcnFXaUExVmt3bWIyTGJLN2cxK3V6OFJTK2Y1L21vTDNEdVJrZHBaYkFyYXBOTnl3ZDlZQms2Qnk2aEJwWUJBQU9pa0l4bkVIM3JVQy8xM1NVeUlKelhSbnBXWnJzL3MzL2x3OFNNeUxvV0RVQkdpNHk0bVl2T21sUWE5RGxsNlEwQi95eUhXbTVaTm82V29nYkRJLzhkOWR2aG5FcjJUSmVSdzFXbm9GSm1hSy8zbmQ2WUhta2lqOUgzbm5OVldEdUJZbUZaam93b0FwRVk4VjU4S2wycWRNVFhiMlozWU1XVlhSVEVmRFgwZDRLNVdnNFV0M1o2NFEySmVaWmV3aTNNeThTRmZxSGxGVHRteVM5VU01N3lESWh5Z05lTC84aHBmWklzM2tWS2x6NVZzVFhwRGFaNmN5TS9CMFU1cVRleVBKaXNQaGs2cDlPd2ppTnhpaDdLUVVqTnVKUEJMMHBoSTFDbVV0WWpXek1pbE1RVGRrQWFYUlBuWUxVUkRiWWJjMlV2RDBJSzI2Ull4YUhJTDBlRlRGMk5FcE9rbG5sOEZDTklabkY1WC90RHI4akNPaTJ5RkpBMnVLa2hXMW5taEl2OEx3S1pWbnA1OEFZSXNEQTh4Z3Z4TWEwQ0VHL25GZ2xxRGxOV2dzWWhsRmpGZDdwUEhvS1k5akg2WnhNNzRjZFlxYlRSK3RWdDdnNTNIVnJ3ZkxpTUw4cnVocWRGTUVOOGlkYTFRZWU4WGY2cGdsbzFkS2NZYnc2Qm1uOGVRUHN1RHQvay90OS83b1R1WXYzRmdwdXowbHRhRUZNWldwR3Bzd29hVXN2dDIrekh5Um5tM2kvODI4Lzc0S0UzQlBWcXhpUWY3NFhJMG5tbVlkU0xCNGJKL1hOWUc3WGg3MCtiZkZ4OGg3WUJnMDBBTXM2Y2lLWG1BMENxZUtFeGhmVnY1cEpLMUEyVzZlR0ZhTGtVQ2h4RnJaemo0RktMU3Q1S3Jpa0c1RGh6ZnNtbWdkSmhYR0pubENwR1N0b0JIOCt5aERVMVpjSjNUSDkvMEE1T0hZMlQxb3BvTlBsc2VzaWdlbTZ2bzBuM1Fzc2RacExscWsyRTlGQ1dDVG9Oa1NvY0tuQW9nMTAzWmVkUTNOOStINUpqMSs4S1htZDJGazhMVkczZjNtNitzQVVJenAxVk9LOXN0TDJVcHZ4cHNIYnFNQ3haVmR1ZXdqUCtML285YXVEYWdhNHZsZWFLLzhwL01EL1R6SmltWFEvbHdUbG53bWlWU24yWDZPSzkwUmZFcWprQy9ySVZLcW5hemRSSTFuV1labmlYSmU2TXZMSzh0STFsWnord2lmKzlaSUFkVDJ1SHF2NnVIT1pCODlwb0ROeW5KeHlzc3J5MGpXVm5QN0NKLzcxa2dCMVBZMjhMQ1lUUVM0eVJYdjB6VkdKVTFWeXl2TFNOWldjL3NJbi92V1NBSFU5clBSUHhJa1VBT09GZFBqYUEzUitwTGl0QWNUYVcwOWdCT1RCSEFkeGwzanNEMWN4UCtrYThFRnEwVy9ObEtYejRsVXA5bCtqaXZkRVh4S281QXY2eUcrTnZEdktmdTNhZHhHdERDelBNcmV3RXFabDZOQllUUi9nN1NSUzVEVDNJeE1jSlBkTCtlYlJaQ3p4UWlLMnNzUFRZOTRsTGZ0bzJxcFp6RWh4Z1IxNFhrZmRFekZ1bitPdmhONEVwdkpWaDZyRnE1eC9zdXJ5b2xjL0tnVElVRlp3K29oVE9FWDFDZGwyNDRaS1h2YXl5dkxTTlpXYy9zSW4vdldTQUhVOWwvSC9heUhuVWpDcEFTWG5lUjhhNlRhRjJRTmRrdFl6bE16bnl4NjkyZlVPODdjajhyNml5Z2JwbEpIdThScEg4c3J5MGpXVm5QN0NKLzcxa2dCMVBhV0s3b1ZPYURJMEFkc3A4cjlCRUEzU3h6eUx3cG8zcEVTeDRLTmwwbzgzZk9GdzUyeTcvdk8vczlaSTA3VnBBbEd1eUk2STBrOUpxbUpJVExobi9FVXFDVzFvYU10SzdFbnRTdmlNMjMySlMydmdiOXI0T2Fod1IwNFdwZTM1RlZVZXZlc0kxemxKREdNbCtVRVFtSmRmQ0RhUFhvbWxkTVIydTJMYVRoOEZSS0tNMUk5RkJmNW5JaVZOZkZkOHZud1VDeWthK1l3SDhTTmNKQ3dOQWt2eXl2TFNOWldjL3NJbi92V1NBSFU5aUhxZmpVbU1tR2s1bzhrQlhudjZkV25MNElDMWRGY1RseE92VjhHYlN5L3l5dkxTTlpXYy9zSW4vdldTQUhVOWdSQ3dhU1dPU3RJTUlEazFsT2hwejNXQ2xuZ2UvQmY0MytyZWN0cmNrWWFCTGwxV1Q3UVVsWDVxNkVHRjNpMnRpSGYxWisvanc4Y0c3YXZTTFpCMUxneGtaNG1rbjQrMndEbms3Y2dWYzh1R0t4ZlZjQmxHdmsrMHd2UWNSVzJsOG1PRTNraE44TTFDNGMwUDl2cGpPQnNDb2E5RVhnN3NaanZZQ21vSUx3bTJrRmFDSEk1c3ZKbE9VS29PdExmZGNzcnkwaldWblA3Q0ovNzFrZ0IxUFpEbUtJSUxwZU9NeUdldFM2NkJZRnlobmFGblAybG9BRDNybkpFSkZQb1ZJL0p4bGtvM3hxcHovSnQwTzdISmZKWi91MzVvMTVPWmpkQ0o5dXh4TUI1M3RCTHlWWHEyQWZWcFh6ai9GQWZZcC93eSt3bUk5alFEaldMSllyWXlJbkxLOHRJMWxaeit3aWYrOVpJQWRUMmVJS0FFWEFZdXo3bTlpdlUxNDVnTUtISG53MDYxaklRN3FXc0Q2a0YwaFM4TFVNNjNrcmR3dkpGdWRaQXhGZld5eXZMU05aV2Mvc0luL3ZXU0FIVTlsNVhETG5wTDVJdHBpNkRkMWw1bkJVSGhVK054am5Hb29OTURidklJSFNuRjkwdDRrOVBGSkJHNUp4eEhDRzkwSHBMZkUxQTVjdUwvVkhqejE0RFJObW9rNnFWQ1dYdURxeENGMnovTlV2TjJaTUFZZWs5eFY0eU1MejF1NnBTVnB6UURoQzlrTlNDZXZQelJaajNoT3lhbTVxZCtLZWdra0VTT0c4a1FRZXByMmhBbGswOGVYOS9oc3pnUGdvRzhaVjdOYStnK0xDUjJJZXZ1OGQ1RDBLZzJoalVCeXd5Z1VFRnEzWmV4VzdSNHNqMzFpc0VFSFdtaWhRUEJ1NXBEQ3ZTcVJLVkZZOWlBOTQ5V09jRTF5RzlhNjFLN01zTEtBcUtvRkR6R3JBNEtEZFFvcU9XOVptWE9XM0R6ZlF6Yi9IVEpCZ0RsTk5JeG9GMHhuSEFtd01ZQXNOTlhUV1cxWjZzLzcvaUpkZmFsWHMxcjZENHNKSFloNis3eDNrUFFyUXBqQlNqdWtrTTRXcC9XaEZ5M3dkaUkzeko3eTF0THo3eVo2ZmVTc2JKS0YxSHRpK1p3WVBtdWUzN3ZzZlBxNEF6Ry9oNWMrU2RhM0VQU1hBNjBYVGNQTzJXNGZ2RUJNcjJrVkpEY0xONHVhM0NnZ0tNMmZiSTM4b0hSZ21EL2Rzam5SSWZ3c0hMaFdOalJGR2c3aUJUZWdvQk00YklPcVZqQ0dUbUVuZEdmK1hJbncrczdwMDVKSEtRamxna1VHTWtwUENOZlFiUHc4QmhRZFR4MGsrMjMzNXhEK3FHOUVJRSthUWNFbm1qTjB1ZTRhejNOY1pCeWVCVzY1MlJSTXpDZ2FzZTNQU0pMUjZZTjFQVmNmL2tRdUY4eW1tLzRWSEVVVmdaS2Flb1k1MExYUjBzOExldTQxTk9MaTIzT1hKbmE1Nk1oSHRqSGhUM1hydTQwd3Z1OVNjRTdLdXV6cnBUT0FkUGVlYVpROG9ENnVqclVZYjlreE5ScUNBYW1nOGl1a1dEUVlSS2lRQ2Z6cjE0SGlKZnhSU01KcFNkUkJHYzlrMUcxY2p5WnlCL01rUGd5bVRmQWJmQmV3Z2V3SlorejQ0dHVudWdwWTZ3bHRWTmZiWS9iRUhuNzhNd0hLeFVNQjZVamlsaDhwWk96NnFrcUoxOG9EQVRmR2JPS0V5NThtZWtQZVRlR2JZYlR6WHFZU1JHVzNFSktSS0xEelpjV2FBMFlQdHNwckozMzJCbWFLcGJEY1BiYTIrd2FoWGJieTMvb0ZHMFFwWnhybG9paDcvUGVyYkpLQklVWVhic0NXLzJScE03b3pVTmw5RXJ4Vk1NZEtGbUM1S0s0WmNMUHpQWmxIRWRIdDUvZGVkSm5Uenh2MGpsdWlnL084dlRVaUw2UUJxR3l5dkxTTlpXYy9zSW4vdldTQUhVOXFERGVTRXhzMjN0WXBXYzU0YnZqTHYxNDhJSkR4cG1iREpPa2RKTkk3NUg2dGo5RHk3V0svUWYydEVkNHZDTWpXamtkU2pjTmRXckwxV0RrVGZsNGxjNzZHeTVheHI2byttUEdsZ0lvNWdId3prVHJpbzRqQVJINlp3VFhwUmxIM2dtL1JPTTI3TVBxVHZDOEFiZmd6YmE1Z3pWd3I0VjYxTk96YVFLMU03cHZPdDNQSVRZb0Z2bUNmZGhiN1NRaWpmZGw5T3hOY29Odk1aWVdnKzF6TG5MSzh0STFsWnord2lmKzlaSUFkVDJ3RXJVSmtrQUxOSDVQWXRpSFBHQThtYzE2YUc4cW00bldWUlJFZjQrYUpleERBdkgzUHlVeFdEMUVGc0I3OTV2eXl2TFNOWldjL3NJbi92V1NBSFU5dkg3L3ZTWDFNVnRwNWpNMG1xSWRLd08xaGZ6VEZDWFp4ZG5aUW5lKzFiR3l5dkxTTlpXYy9zSW4vdldTQUhVOWo4blJtZHlQOS9hQ3ZsbWpXTnEvR3F4Z0xQRnpBaHBROUE1M1JEVWtBbXJHK1V3aHNBTklZWWVNMlZNRE5wa01Nc3J5MGpXVm5QN0NKLzcxa2dCMVBZSTRqY1lvZXlrRkl6YmlUd1M5S1lTWE5XR1M2M1FFc2laM20xazNGQXpOc3NyeTBqV1ZuUDdDSi83MWtnQjFQYVdMTVZhT1ZHNC9lMVZQVFNBelk5SDg3T0NKWGV4K2lBT29XK0tBbnJpQjNKbmE1Nk1oSHRqSGhUM1hydTQwd3RtK0NFV1h1b1k4WEVKRmR2Y0ZjSDd5eXZMU05aV2Mvc0luL3ZXU0FIVTlsTE9MZnJPUU1wQ3hRbERnMDJZSkFUTEs4dEkxbFp6K3dpZis5WklBZFQyazZndnRjMXo1YUltQnFGZ25iUTBOVEU5R0xmYk9DU0VoZCtycFk2a3l3L0xLOHRJMWxaeit3aWYrOVpJQWRUMkNWdjNvWXRNMHpNQVMxeDRYdHkrenNlYkdWNHVGbW9jUzBuTzM0ZXc4TFBMSzh0STFsWnord2lmKzlaSUFkVDJ1TEo5NktYUjM2eHl5cG1HaXBGekZPU1A1SUdDRTJsS3FzSXo2V0F2dHVUTEs4dEkxbFp6K3dpZis5WklBZFQyMXgvd0hwellicW5UQjZNQk9uT29Xa0U4ZzlXK3BaWGt5N0ZaSTNKakh5bkxLOHRJMWxaeit3aWYrOVpJQWRUMjAvM2F3b0QxSXI3ODBleXAvWGNJNjlsRVNGeDE3SFVvd3R6NkRnajZOekhMSzh0STFsWnord2lmKzlaSUFkVDJmb2tQRjZ1NmEwZWdYU0N0bExEd2N4T09jY1llcjlkZzM0V21pOWlINVY0N28yS1E2Yk5pQ08wMnBONTFHZm9PeXl2TFNOWldjL3NJbi92V1NBSFU5dmhDWWdhWCt6SjVZUGlGdS9nbjEwdzIrN2M5cG16a1ZZbW9FazBuR3FpYnl5dkxTTlpXYy9zSW4vdldTQUhVOWhQMVNrbUk1YllCbDdSR25KK1c3U2JMSzh0STFsWnord2lmKzlaSUFkVDJsaXpGV2psUnVQM3RWVDAwZ00yUFIvT3pnaVYzc2ZvZ0RxRnZpZ0o2NGdkeVoydWVqSVI3WXg0VTkxNjd1Tk1MWnZnaEZsN3FHUEZ4Q1JYYjNCWEIrd2srR2tYcjdaTzZuNnlCdEQ2YjB0M0xLOHRJMWxaeit3aWYrOVpJQWRUMmVJS0FFWEFZdXo3bTlpdlUxNDVnTUtISG53MDYxaklRN3FXc0Q2a0YwaFFlQUUvZUNyR1ViRjJiVmhOL2U4ZFRXUjh0bzd5UjR1NWhReXZVQ2NnYjhWTTlCdVpEMlladjhxZFdibXNodkdzVzIxT245WGcycDRzRHRtZEZ6SXViVzFWMjZvaWxGWXlYRlordjdFSEU4T0JFYlRhb0V3Y3ZVU0xyOFAyVXlVNGh4cGN3ZkdTM3Ftc2N1YlBNbkh1cXUrS3gxZkVpVEVrVlR6NnN6clZGZE1zcnkwaldWblA3Q0ovNzFrZ0IxUFkzR0hrM3ZUcWY3dk56OGdFc1BkY0M1clNWKzVMaWJETWtBcnRxcmVudnBPbC9Tcld3QnpkZ1ZzK3lnTStUNlRjMStnS2owRC82NG9mNWhxZkVPRHdFb2hNamswL0krUktkaTA4OURnb01iOHNyeTBqV1ZuUDdDSi83MWtnQjFQWWtZMnVSM2NHR2VORXF4Z0hmaWVpV0NmdDhZaG5rclZBRlJjN3dab2phRnUydFpJSnBPVFBqdTA2UWdVT0VFVFZSVjlTK3EwSDZsZmpuQlRuWlZ0UTl2UDNzY0ZIYmpXUmY4RlJKREtJVlEzaTJpa1FwUmRPN0l4dGs5L2ptaFNFZnFlRU9sSlN1VWpGK1Q2MERmSy9YTVdwYjZBVjIzZXBvK2haSlVkM21jMW5LMGVEeDJFZHZJczRuWXR0WlJmN0xLOHRJMWxaeit3aWYrOVpJQWRUMlcwTmlFanVCZEFoNDVJT2cvZ2lPUXBxYm1wMzRwNkNTUVJJNGJ5UkJCNm5PbERMN0R2enpzT1FuSysvYkNjNG5kMXZubG50VU52ZFVDVnRaTGVjanBCUkpkaTdLZmtyS1oyTlhTQzdieG1CY2JkQ0tTMS9TWFphRXoydzhxUDdyWU9EMTZFUFBVUVphWnA1VmVoK0dWTS96Ry9qZFRBUktvOHdkZHJtcW5IQmJWWGJxaUtVVmpKY1ZuNi9zUWNUd1FQUGI0MHErZ3c5aEFlSG5FZS82djJlU0lwQXN5dVc0WlJMVi9IM0h0N3o1R2lEa0FKb1EzUFlZMzdkSzJTSkRVZHMxNXVMb2J5ZkoxZnFzL2tFdkZvUTVtUU1UWUlwajhkVHNYUndrWmRMQmZOcGlGazhNOVE2TU5yeHBJVmVxVW9VUmFKWDJmdHBJMndoa09ETGhFeU03aDloYit6eU1lZWpZNVlIc3psR1J0QllZZ3JWM2JCWFN3L1pMZXJWeEk1U3hkZndVRENvc3hKaGcvKytFU3pCMEhOcHlnS0FaY3BvUW0veWl1VDl1WEoycnNqM3hFeTFiZ3pGelFuYnl5eXZMU05aV2Mvc0luL3ZXU0FIVTlwNmlrRVkrU3BIOURDMmUreUNtSjF6YTZXa3VndXM1N1h5bXVuOWxPUlcrUFBUQi9nc3lvdS9wbHp3aFExNlZMTXNyeTBqV1ZuUDdDSi83MWtnQjFQYVB6bVJER1hMamxtL1RVYnMyS2F2MUI2ck01WmljdXN4S1hXS3JWRDlPL1FHNEtPT3crdW1FYXRIVGhxZnY5eFBMMDk4N3BCV0U4YmlKNnN3QklvOXU5ZU9QZDRMUG5CeHVCaFoyZXUxSVhBMHErTG91RUxJeUVCTGlubGxzRFBNMGtINW4wVTU3OThWMTJCSVRGcWhXRFFtczVjOUhETnBXb0t1WVM2SkNtTGxJRWhGdHZ4WnZ2cTE0Tno2dG5xRm9ZZHNLZ3owYWpGaWcrN0ZpbWFVOXJjU1VFR2E1RjBxSWhwNGtNTXFnZnQzcVhHMCtXZWV6ZlFaOHJ1b0dQV0lSajhiOGVuR2RnUFFGMWhNd05PbGhrblpjUFBwWmo0MVZVNlQrR3psTnljc3J5MGpXVm5QN0NKLzcxa2dCMVBiK1BlMmFSZmxmM3dPdDZhNW4rNE1oWW9obk1YN09qSVJPVjVFenM0QVVDOHNyeTBqV1ZuUDdDSi83MWtnQjFQYWJCNDk3alVkTWpveUVtVUJWMzRYVjF5UlcxZTlnVUpZOEZDdmVobGQya01zcnkwaldWblA3Q0ovNzFrZ0IxUFo5NnZlRmY1bzA2SGxGaEZrRWJqVk5ydEd2a1Z2VnZObGJVbElEaStFaitPS0ZXUVYyS0h3N3hINzRFdkxKZ2lSOTNpbGNFWExBNDVOWDFmR016Zmc1S1ZMQXFUZnFpaVNqRTUzblNGUU5aaE1VaGE4dlFFUjVJV1dBQXdUZVd1dnh3MEo5Z1ovelNROVB5VzJMbVhLK3QzSFR4SkNuSzNjenVNYUFMVlY5K0l2cTI5K284MmNxRkgrODlib29YcmVLK2dwMmVPVnA2cFJlNklMMldJbll6cFF5K3c3ODg3RGtKeXZ2MnduT0oxRkkvNlp2TXdxK2RVRXREZWJXaEVuVysrRjIzYTFQemZ3L21DS1h3bDVQeXl2TFNOWldjL3NJbi92V1NBSFU5bm9HZHpWdGRhWTBFUGJiRndIbGx0VVV4VTFJeksvNWJVWVFqTjc0QlRQdFd2WkJYK1Z3OVlFTkZLdGwxMUJrenJMSEViNGJGSVlCQ3FIVGlIQUUyYWlnSEo4bW11NW5TR1R2Q1RkTzJhUTJQM1NYRFh2NkJRY1F6cTQ2aFlPdTFRQTEvTkpRTkRwb0hEMHdOU2dKclRwQ0hrbjgwYUxqRGkvL0pMaWlXVjFqckdQRXdycUlsaEsxNmNXYnZYSktiTXNyeTBqV1ZuUDdDSi83MWtnQjFQYnBUZjhCU0JIT3NFQmRBZWdibU5QRU4xR0pGcU5qL0I4VkNMUVdUR1VRRkVPQjJsb0FreElrMTUzYjhNaU5CZ1hMSzh0STFsWnord2lmKzlaSUFkVDJBOGZrWWdTeDZaMnlPbnFycVl4WngrWmpFcFNsMnFWRk1hTkV3SDMwV0ZqTEs4dEkxbFp6K3dpZis5WklBZFQyaVY3eklOMGVOemp3OXQxb3JIWmlVQXAvVC9PdzNGWEFkRkpBSzBMTG5ZaS9VZzhNc0lwZE1qWDl3OVdxazZxVnl5dkxTTlpXYy9zSW4vdldTQUhVOXBqakFmVi83L3BlMU1PSzFKQnVxWkc0VDh1RlpqaVF5NnI1MGVDVytTWS9GZmI5UjJvQmJqdFNpRzFEaUJnSFQzQVd5QVBkQXc1Yy92eUpKN0hFNmFuaFJXVFNCTXBvRXZ1a1l0Y2ZpVWgveXl2TFNOWldjL3NJbi92V1NBSFU5b0RXdWVsQXFmak03ZkNKZk9hc3dRZ2tscFdVVXlqQXN3b0R3Nk5YSDdpMFBsek5xb1pHU0R3VEtQQXVtelloSDBXU2NnZWpHRnRhYVgyV3NWTU1oRmVHajlQSG9qUXpoUFMvaHdGMSsraWxvZ2FZNWt4ZHJMRFVkVHU0K01FemxZejdQS3lROEtqeSt6d21jeVYzUzhkRSttY2FqREJRRC9GZmI4dC9oc3ZuenBReSt3Nzg4N0RrSnl2djJ3bk9KOHNyeTBqV1ZuUDdDSi83MWtnQjFQWWlES2ExazNDRm03VXNGalowV21wenpwUXkrdzc4ODdEa0p5dnYyd25PSjhzcnkwaldWblA3Q0ovNzFrZ0IxUFliMm51QkF6NUI3SHFGelRPK2NUWnltcHVhbmZpbm9KSkJFamh2SkVFSHFjNlVNdnNPL1BPdzVDY3I3OXNKemllN3Z6bE5pS2RrbU1BenZiWlA5OVVKeXl2TFNOWldjL3NJbi92V1NBSFU5bytuZmJrTzFZOXRQRDE5aFc3Y0F4dmxHaWp1dzNCYVAxSzN2b2hvN0E1Z0dxUHdkckJQZTdvODJ2NlVidmpzU3d5T0JUcGp6SzRlN3piOU1aY1NQaUd6VmNBby9LdUY2ZTZDcWczZmpUZjFmWXpYcXplTS9YN0FqQ0VjVVdLdGljc3J5MGpXVm5QN0NKLzcxa2dCMVBaYkZWWURpbWx1Q08wQUpHa2pyWFZUUE85eTVjZ1N1Q3ZVUDgrNkFXYUU1ZC9nMmFhZXBRNHFvK1dRdUJvb0FwT3g4N3dJYzZhM09BTmVwbXhKSGJ3b3l5dkxTTlpXYy9zSW4vdldTQUhVOXN0ckVYam9iWHo4ZjJHWlVVQXJxOTRUVU5FSUtMUXZ1REFsRVJEUFBVWHVjb1VmRFdYdnFBU0RHSjc0QXgwRUcrRVhNd0RxNGp4cnZXTUlUWjY2bVVWQmVIQlVMYW5nNnJ5Ky9kUlY1TjNFeXl2TFNOWldjL3NJbi92V1NBSFU5dGhHRVJ2ZlBGTHdOUkRWWmF6UTNZNHhWWENwdjl1eG01eXdOcVgrandtd3l5dkxTTlpXYy9zSW4vdldTQUhVOW56TW9CNXpSc3RmcU1US3U4UjJvbEhNSWNFR2VWTi9qTGtJY3A1ZGF0ZWxkdkdoS3JMSWp5YTExeUJwMkxNdHpQOWFJN1FodGpwUFhJUUwzWFBXNys2elJFb2toUHZkUmNKSTJUWGxIQkVab2huWm1HbWlXQzdVNG8wdWtreVBBeEVhT05uSVZ3bEQ5RHBvbHUvUXVrU01OMjNrbW1sYmdTbStJeW9mNmwxRjk0cDQ2VXMvZytpdVdIQTJzZEh1RUE3bkoydnVsaUZ4WTFPMmpmWGxLdzZXeWtTZnlhRWF1TzMvWEluWmJoOWc4OUhjaWU4eUZpQ2tqcE5KUWpMUTc1NEE1TVZIUXJBOExKbzRjZEZ5VVRwenRScVpWZnhodEM2Y3llSTRXQVlmL0VoY01INlZ0K2VLeUt2b3cyYUljN2FFcDhuYWNscHEzQ21lSmVwRWk3ajF6UitWRkU2OVF5YlVzZGI1T2dsQ3p6clZQWnJKaHY4dDQ1SmFJTHFJbHpYWHZoUmp4THFkRnFZRzYwcWszcEVQeS8rTC9VRElydlFLaTVENGdvWEZQTzl5NWNnU3VDdlVQOCs2QVdhRTVZUkdqemxFOGV1OUV6bkdKUW9NSGQ3NFMzbFZ4VStXUVMwZGdJRjBvZHJKUE85eTVjZ1N1Q3ZVUDgrNkFXYUU1VDQrUGRTQWdCTzJjSGZ1ZGw2S3lLSlI2d1B3UEZwOHBndmIydmFnVWMwVmxhM0F0NEtqQjlISmlhbkJSb216Y1RDSUJ4U1VEREVwVjF0aHBJTW1vVEZjSmk5R2t1RGZZVDJQbkx0Q3dpcERDOUE1d1MxY2hCV29FMGYyZ3hrcmRxZksydkcvL2JabzNVSkVhNnhBSW02RWUrZ1VUTmp1VkJBV0VyUFNRQnNIbk81MjlmRVR6YUdvcmNoYmJkRHpWbUdXeEJtU0JtODdqVnVoeG9jWUdER2M3bmIxOFJQTm9haXR5RnR0MFBOV2tSSVgrQlRKWU5GKzVkVjFVeEtMbTRXUWJkbVhZWWg4MlVQN05ON3BTUURPbERMN0R2enpzT1FuSysvYkNjNG51ckhVMHhEZGV1Vm1xNS9XRFQxdWhEenZjdVhJRXJncjFEL1B1Z0ZtaE9XRzk1U1dXRk9LdktueXJwSlVLVVBtN0djRzVRby9wMFB5SkFOaEovaGNLU2xabTlLUVdtKzBMVWhER1Z6V1Fac3k5UkM5SGZna3ZSVDZtbHZITHVLWVZGYXE5SGVtUnR2V2VsVmFDOXpoQVpvZVVLbmE1cDJJQXdjdHloNElSblVuMTlRUnhJZGErVHgrbktmRDRHUmdCWnhLUGFtQjZpcE02L05ub05MbGJ5cklFQkgvSHFYTUtCL0FLUlZ6bHhXbnlyQkZNM2tWQzdSemdZN3RTVkJxY0VSTUdzZ1JURUpnOHJUTk44U0ZXSCtRdTFYc0xjMDVUYTNXQ2JucFZaMXh6cWc1RktNc0IzNzdmK0xNOW9tQm9sRDBKMnBRQVRORjZQWWIvSG9DSU9PNmY0V2FwT2pZQ3d5UnF2Z1dkcjV2elcyMVNuVGREM2hZMitvU2pUb1dqL0RNYVNGeFZjWjdNb1dsMm9uOEd0R1F6R3REQUo1K1QzaGdNY2NvYzc4eFZTazRkc1lpZ3dla0cwU1hKWkk2TTN2TnJESVo4ci9aVStlV1BwdmFnZXV3aDVsSkFHejdlMmFTMlFrblZvM2ZyNzNqd2c4TlAxSXNPQjE5LytpYTA1b0pRL0FQdDdFMmFObHYwenpXNjNsQzFtQ0lia2xSYW1KcVpxYXljWUZvcUErNks2eTJheXhCdWhmdzYyMG9wY0UyeDE2OFFORE5OTGUrcVhqTWFEYW16Ym9tUE9nK2tuUEVKRW9adHVGam1Qem1yZ2pOR0NOdDNYK0ErTUdCS1Q3REZWRXU2bXpHYVFpQ2F1aDNRM0VKK1pnUG40TjJJNzZtSkZORXliWVJHampaeUZjSlEvUTZhSmJ2MExwRTR1SDlLckVxLzhjOVBsSzE4VHRUODVncDNNQ1ZkT1l6SndRSDR2ZDkrTUYrMGt5Zmd3djJZa1NGaE5mS1hxTzRmVTVzUlE2Rk5MMEE1VmdYamlUa2p5NE1DdGFDa2krZUlDRFgrVkNCTTY1VjlxZHFHei9MU0puRnhJdlE4a0J4XFxcIilcIn1dLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLpmL/ph4zkupHnm5hcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJoaWtlcjovL3BhZ2UvbG9naW5cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJmaW5kX3J1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxubGV0IHVybCA9ICdodHRwczovL2F1dGguYWxpeXVuZHJpdmUuY29tL3YyL29hdXRoL2F1dGhvcml6ZT9sb2dpbl90eXBlPWN1c3RvbSZyZXNwb25zZV90eXBlPWNvZGUmcmVkaXJlY3RfdXJpPWh0dHBzJTNBJTJGJTJGd3d3LmFsaXl1bmRyaXZlLmNvbSUyRnNpZ24lMkZjYWxsYmFjayZjbGllbnRfaWQ9MjVkelgzdmJZcWt0Vnh5WCZzdGF0ZT0lN0IlMjJvcmlnaW4lMjIlM0ElMjIqJTIyJTdEIy9sb2dpbidcXG52YXIganMgPSAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgY29uc3QgdG9rZW5GdW5jdGlvbiA9IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgdmFyIHRva2VuID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW4nKSlcXG4gICAgICAgIGlmICh0b2tlbiAmJiB0b2tlbi51c2VyX2lkKSB7XFxuICAgICAgICAgICAgbGV0IHRva2VuX3VybCA9ICdoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvbic7XFxuICAgICAgICAgICAgZnlfYnJpZGdlX2FwcC53cml0ZUZpbGUodG9rZW5fdXJsLCBKU09OLnN0cmluZ2lmeSh0b2tlbikpXFxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XFxuICAgICAgICAgICAgYWxlcnQoJ1RPS0VO6I635Y+W5oiQ5Yqf77yM6K+35Yu/5rOE5ryP5Liq5Lq66ZqQ56eBIemAgOWHuuivpemhtemdouWQjuWIt+aWsOmHjeivle+8gScpO1xcbiAgICAgICAgICAgIGZ5X2JyaWRnZV9hcHAuYmFjaygpO1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdG9rZW5fdGltZXIoKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICB2YXIgdG9rZW5fdGltZXIgPSBmdW5jdGlvbigpIHtcXG4gICAgICAgIHNldFRpbWVvdXQodG9rZW5GdW5jdGlvbiwgMzAwKVxcbiAgICB9O1xcbiAgICB0b2tlbl90aW1lcigpO1xcbiAgICB0b2tlbkZ1bmN0aW9uKCk7XFxufSlcXG5kLnB1c2goe1xcbiAgICB1cmw6IHVybCxcXG4gICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZScsXFxuICAgIGRlc2M6ICcxMDAlJiZmbG9hdCcsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBjYW5CYWNrOiB0cnVlLFxcbiAgICAgICAganM6IGpzXFxuICAgIH1cXG59KVxcbnNldFJlc3VsdChkKTtcIixcImdyb3VwXCI6XCLikaDnvZHnm5hcIixcInVhXCI6XCJtb2JpbGVcIixcInByZVJ1bGVcIjpcIiQuZXh0ZW5kKHtcXG4gICAgdGV4dDogW1xcXCJodG1cXFwiLCBcXFwiaHRtbFxcXCIsIFxcXCJ4bWxcXFwiLCBcXFwiamF2YVxcXCIsIFxcXCJwcm9wZXJ0aWVzXFxcIiwgXFxcInNxbFxcXCIsIFxcXCJqc1xcXCIsIFxcXCJtZFxcXCIsIFxcXCJqc29uXFxcIiwgXFxcImNvbmZcXFwiLCBcXFwiaW5pXFxcIiwgXFxcInZ1ZVxcXCIsIFxcXCJwaHBcXFwiLCBcXFwicHlcXFwiLCBcXFwiYmF0XFxcIiwgXFxcImdpdGlnbm9yZVxcXCIsIFxcXCJ5bWxcXFwiLCBcXFwiZ29cXFwiLCBcXFwic2hcXFwiLCBcXFwiY1xcXCIsIFxcXCJjcHBcXFwiLCBcXFwiaFxcXCIsIFxcXCJocHBcXFwiLCBcXFwidHN4XFxcIl0sXFxuICAgIGF1ZGlvOiBbXFxcIm1wM1xcXCIsIFxcXCJmbGFjXFxcIiwgXFxcIm9nZ1xcXCIsIFxcXCJtNGFcXFwiLCBcXFwid2F2XFxcIiwgXFxcIm9wdXNcXFwiXSxcXG4gICAgbW92aWU6IFtcXFwibXA0XFxcIiwgXFxcIm1rdlxcXCIsIFxcXCJhdmlcXFwiLCBcXFwibW92XFxcIiwgXFxcInJtdmJcXFwiLCBcXFwid2VibVxcXCIsIFxcXCJmbHZcXFwiLCBcXFwibTR2XFxcIiwgXFxcIm0zdThcXFwiLCBcXFwidHNcXFwiXSxcXG4gICAgaW1nOiBbXFxcImpwZ1xcXCIsIFxcXCJwbmdcXFwiLCBcXFwianBlZ1xcXCIsIFxcXCJnaWZcXFwiLCBcXFwic3ZnXFxcIiwgXFxcInJhd1xcXCJdLFxcbiAgICBzdWJ0aXRsZTogW1xcXCJ2dHRcXFwiLCBcXFwic3J0XFxcIiwgXFxcImFzc1xcXCJdXFxufSlcIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcInRleHRfMVxcXCIsXFxcIm5hbWVcXFwiOlxcXCLkuLvpobVcXFwiLFxcXCJwYXRoXFxcIjpcXFwiaG9tZVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG5pZiAoIWZpbGVFeGlzdChcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcXFxcXCIpKSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IFxcXFxcXFwi55m76ZmG5Lul5byA5ZCvXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvbG9naW5cXFxcXFxcIixcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG4gICAgfSlcXFxcbn0gZWxzZSB7XFxcXG4gICAgZnVuY3Rpb24gZm9ybWF0RGF0ZSh0aW1lKSB7XFxcXG4gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUodGltZSk7XFxcXG4gICAgICAgIHZhciBZWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXFxcbiAgICAgICAgdmFyIE1NID0gKGRhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/ICcwJyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSA6IGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy0nO1xcXFxuICAgICAgICB2YXIgREQgPSAoZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIChkYXRlLmdldERhdGUoKSkgOiBkYXRlLmdldERhdGUoKSk7XFxcXG4gICAgICAgIHZhciBoaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOic7XFxcXG4gICAgICAgIHZhciBtbSA9IChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyAnOic7XFxcXG4gICAgICAgIHZhciBzcyA9IChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSk7XFxcXG4gICAgICAgIHJldHVybiBZWSArIE1NICsgREQgKyBcXFxcXFxcIiBcXFxcXFxcIiArIGhoICsgbW0gKyBzcztcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBpZiAoTVlfUEFHRSA9PSAxKSB7XFxcXG4gICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYWxpLmpzb25cXFxcXFxcIikpXFxcXG4gICAgICAgIGlmKG5ldyBEYXRlKCkuZ2V0VGltZSgpPj1jb25maWcudGltZV9leHBpcmUpe1xcXFxuICAgICAgICAgICAgJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2FwaVxcXFxcXFwiKS5yZWZyZXNoVG9rZW4oKTtcXFxcbiAgICAgICAgICAgIGxvZygn5Yi35pawdG9rZW4nKTtcXFxcbiAgICAgICAgICAgIGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXFxcXFwiKSlcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBkLnVuc2hpZnQoe1xcXFxuICAgICAgICAgICAgdGl0bGU6IGNvbmZpZy5uaWNrX25hbWUsXFxcXG4gICAgICAgICAgICBpbWc6IGNvbmZpZy5hdmF0YXIsXFxcXG4gICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCLnoa7orqTpgIDlh7rnmbvpmYbvvJ9cXFxcXFxcIikuY29uZmlybSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgZGVsZXRlRmlsZShcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJhdmF0YXJcXFxcXFxcIlxcXFxuICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICBkZXNjOiBcXFxcXFxcIuaQnOe0ouaIkeeahOaWh+S7tuaIlui+k+WFpeWIhuS6q+mTvuaOpVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHVybDogXFxcXFxcXCInaGlrZXI6Ly9wYWdlL3NlYXJjaD9rdz0nK2lucHV0KycmcD1meXBhZ2Ujbm9SZWZyZXNoIydcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGVWaXNpYmxlOiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcXFxcXCJwdXRNeVZhcigna3cnLGlucHV0KVxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogXFxcXFxcXCLliIfmjaLmoLflvI9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHVybDogJChbXFxcXFxcXCJtb3ZpZV8xX2xlZnRfcGljXFxcXFxcXCIsIFxcXFxcXFwiY2FyZF9waWNfM1xcXFxcXFwiLCBcXFxcXFxcImF2YXRhclxcXFxcXFwiXSkuc2VsZWN0KCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBzZXRJdGVtKFxcXFxcXFwic3R5bGVcXFxcXFxcIiwgaW5wdXQpXFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v5bey5YiH5o2iXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8yXFxcXFxcXCJcXFxcbiAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi5o6S5bqPOlxcXFxcXFwiICsgKGdldE15VmFyKFxcXFxcXFwib3JkZXJcXFxcXFxcIiwgXFxcXFxcXCJuYW1lXFxcXFxcXCIpID09IFxcXFxcXFwibmFtZVxcXFxcXFwiID8gXFxcXFxcXCLlkI3np7BcXFxcXFxcIiA6IFxcXFxcXFwi5pe26Ze0XFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vUmVjb3JkSGlzdG9yeSMjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgdmFyIG8gPSBnZXRNeVZhcihcXFxcXFxcIm9yZGVyXFxcXFxcXCIsIFxcXFxcXFwibmFtZVxcXFxcXFwiKVxcXFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwib3JkZXJcXFxcXFxcIiwgKG8gPT0gXFxcXFxcXCJuYW1lXFxcXFxcXCIgPyBcXFxcXFxcInVwZGF0ZWRfYXRcXFxcXFxcIiA6IFxcXFxcXFwibmFtZVxcXFxcXFwiKSlcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip9cXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzJcXFxcXFxcIlxcXFxuICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfVxcXFxuXFxcXG4gICAgdmFyIHBhdGggPSBNWV9QQVJBTVMucGF0aCB8fCBcXFxcXFxcInJvb3RcXFxcXFxcIlxcXFxuICAgIFxcXFxuICAgIFxcXFxuICAgIHZhciBmaWxlcz0kLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpLmdldEZpbGVzKHBhdGgpXFxcXG4gICAgXFxcXG4gICAgaWYgKGZpbGVzLml0ZW1zIT11bmRlZmluZWQpIHtcXFxcbiAgICAgICAgcHV0TXlWYXIocGF0aCArIFxcXFxcXFwibWFya2VyXFxcXFxcXCIsIGZpbGVzLm5leHRfbWFya2VyKVxcXFxuICAgICAgICB2YXIgbGlzdCA9IGZpbGVzLml0ZW1zXFxcXG4gICAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IGZpbGVOYW1lID0gaXRlbS5uYW1lXFxcXG4gICAgICAgICAgICBsZXQgbGVuID0gNDA7XFxcXG4gICAgICAgICAgICBsZXQgbGVuMiA9IGxlbiAvIDI7XFxcXG4gICAgICAgICAgICBpZiAoZmlsZU5hbWUubGVuZ3RoID49IGxlbikge1xcXFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc3Vic3RyKDAsIGxlbjIpICsgJy4uLicgKyBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGVuZ3RoIC0gbGVuMik7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBmaWxlTmFtZSxcXFxcbiAgICAgICAgICAgICAgICBpbWc6IChpdGVtLnRodW1ibmFpbCA/IGl0ZW0udGh1bWJuYWlsIDogKGl0ZW0udHlwZSA9PSBcXFxcXFxcImZvbGRlclxcXFxcXFwiID8gXFxcXFxcXCJodHRwczovL2dpdGNvZGUubmV0L3FxXzMyMzk0MzUxL2RyLy0vcmF3L21hc3Rlci9pbWcv5paH5Lu257G75Z6LMi/mlofku7blpLkuc3ZnXFxcXFxcXCIgOiAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpLmdldEljb24oaXRlbS5uYW1lKSkpLFxcXFxuICAgICAgICAgICAgICAgIHVybDogKGl0ZW0udHlwZSA9PSBcXFxcXFxcImZvbGRlclxcXFxcXFwiID8gXFxcXFxcXCJoaWtlcjovL3BhZ2UvaG9tZT9wYWdlPWZ5cGFnZVxcXFxcXFwiIDogJCgpLmxhenlSdWxlKChpZCwgbmFtZSwgdXJsKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpLmNodWxpKGlkLCBuYW1lLCB1cmwpXFxcXG4gICAgICAgICAgICAgICAgfSwgaXRlbS5maWxlX2lkLCBpdGVtLm5hbWUsIGl0ZW0udXJsKSksXFxcXG4gICAgICAgICAgICAgICAgZGVzYzogZm9ybWF0RGF0ZShEYXRlLnBhcnNlKGl0ZW0udXBkYXRlZF9hdCkpLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBnZXRJdGVtKFxcXFxcXFwic3R5bGVcXFxcXFxcIiwgXFxcXFxcXCJtb3ZpZV8zXFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGl0ZW0uZmlsZV9pZFxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfWVsc2V7XFxcXG4gICAgICAgIGlmKGZpbGVzPT1mYWxzZSl7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTon4oCc4oCc4oCd4oCdPHNtYWxsPjxmb250IGNvbG9yPVxcXFxcXFwiZ3JleVxcXFxcXFwiPuWIq+WIkuS6huWIsOW6leS6hjwvZm9udD48L3NtYWxsPicsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTondGV4dF9jZW50ZXJfMScsXFxcXG4gICAgICAgICAgICB1cmw6J2hpa2VyOi8vZW1wdHknLCAgICAgICAgICAgIFxcXFxuICAgICAgICAgIH0pXFxcXG4gICAgICAgIH1lbHNle1xcXFxuICAgICAgICAgICAgJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2FwaVxcXFxcXFwiKS5yZWZyZXNoVG9rZW4oKTtcXFxcbiAgICAgICAgICAgIGxvZygn5Yi35pawdG9rZW4nKTtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9XFxcXFxcXCJncmV5XFxcXFxcXCI+6I635Y+W5aSx6LSl6K+36YeN6K+VPC9mb250Pjwvc21hbGw+JyxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOid0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgIHVybDonaGlrZXI6Ly9lbXB0eScsICAgICAgICAgICAgXFxcXG4gICAgICAgICAgfSlcXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueZu+mZhlxcXCIsXFxcInBhdGhcXFwiOlxcXCJsb2dpblxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG5sZXQgdXJsID0gJ2h0dHBzOi8vYXV0aC5hbGl5dW5kcml2ZS5jb20vdjIvb2F1dGgvYXV0aG9yaXplP2xvZ2luX3R5cGU9Y3VzdG9tJnJlc3BvbnNlX3R5cGU9Y29kZSZyZWRpcmVjdF91cmk9aHR0cHMlM0ElMkYlMkZ3d3cuYWxpeXVuZHJpdmUuY29tJTJGc2lnbiUyRmNhbGxiYWNrJmNsaWVudF9pZD0yNWR6WDN2Yllxa3RWeHlYJnN0YXRlPSU3QiUyMm9yaWdpbiUyMiUzQSUyMiolMjIlN0QjL2xvZ2luJ1xcXFxudmFyIGpzID0gJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgY29uc3QgdG9rZW5GdW5jdGlvbiA9IGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICB2YXIgdG9rZW4gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpKVxcXFxuICAgICAgICBpZiAodG9rZW4gJiYgdG9rZW4udXNlcl9pZCkge1xcXFxuICAgICAgICAgICAgbGV0IHRva2VuX3VybCA9ICdoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvbic7XFxcXG4gICAgICAgICAgICBmeV9icmlkZ2VfYXBwLndyaXRlRmlsZSh0b2tlbl91cmwsIEpTT04uc3RyaW5naWZ5KHRva2VuKSlcXFxcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xcXFxuICAgICAgICAgICAgYWxlcnQoJ1RPS0VO6I635Y+W5oiQ5Yqf77yM6K+35Yu/5rOE5ryP5Liq5Lq66ZqQ56eBIemAgOWHuuivpemhtemdouWQjuWIt+aWsOmHjeivle+8gScpO1xcXFxuICAgICAgICAgICAgZnlfYnJpZGdlX2FwcC5iYWNrKCk7XFxcXG4gICAgICAgICAgICByZXR1cm47XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB0b2tlbl90aW1lcigpO1xcXFxuICAgICAgICB9XFxcXG4gICAgfVxcXFxuICAgIHZhciB0b2tlbl90aW1lciA9IGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICBzZXRUaW1lb3V0KHRva2VuRnVuY3Rpb24sIDMwMClcXFxcbiAgICB9O1xcXFxuICAgIHRva2VuX3RpbWVyKCk7XFxcXG4gICAgdG9rZW5GdW5jdGlvbigpO1xcXFxufSlcXFxcbmQucHVzaCh7XFxcXG4gICAgdXJsOiB1cmwsXFxcXG4gICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZScsXFxcXG4gICAgZGVzYzogJzEwMCUmJmZsb2F0JyxcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICBjYW5CYWNrOiB0cnVlLFxcXFxuICAgICAgICBqczoganNcXFxcbiAgICB9XFxcXG59KVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcImFwaVxcXCIsXFxcInBhdGhcXFwiOlxcXCJhcGlcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIHJlZnJlc2hUb2tlbiA9IGZ1bmN0aW9uKCkge1xcXFxuICAgIHZhciB1cmwgPSBcXFxcXFxcImh0dHBzOi8vYXV0aC5hbGl5dW5kcml2ZS5jb20vdjIvYWNjb3VudC90b2tlblxcXFxcXFwiXFxcXG4gICAgdmFyIGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXFxcXFwiKSlcXFxcbiAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShwb3N0KHVybCwge1xcXFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInJlZnJlc2hfdG9rZW5cXFxcXFxcIjogY29uZmlnLnJlZnJlc2hfdG9rZW4sXFxcXG4gICAgICAgICAgICBcXFxcXFxcImdyYW50X3R5cGVcXFxcXFxcIjogXFxcXFxcXCJyZWZyZXNoX3Rva2VuXFxcXFxcXCJcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9KSlcXFxcbiAgICBjb25maWdbXFxcXFxcXCJyZWZyZXNoX3Rva2VuXFxcXFxcXCJdID0gcmVzLnJlZnJlc2hfdG9rZW5cXFxcbiAgICBjb25maWdbXFxcXFxcXCJhY2Nlc3NfdG9rZW5cXFxcXFxcIl0gPSByZXMuYWNjZXNzX3Rva2VuXFxcXG4gICAgY29uZmlnW1xcXFxcXFwiZXhwaXJlX3RpbWVcXFxcXFxcIl0gPSByZXMuZXhwaXJlX3RpbWVcXFxcbiAgICBjb25maWdbXFxcXFxcXCJ0aW1lX2V4cGlyZVxcXFxcXFwiXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgNzIwMCAqIDEwMDBcXFxcbiAgICB3cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKVxcXFxufVxcXFxudmFyIGdldEZpbGVzID0gZnVuY3Rpb24oaWQsIGRpZCkge1xcXFxuICAgIHZhciB1cmwgPSBcXFxcXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS9hZHJpdmUvdjMvZmlsZS9saXN0XFxcXFxcXCJcXFxcbiAgICB2YXIgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcXFxcXCIpKVxcXFxuICAgIHZhciBkZWYgPSBkaWQgPyBkaWQgOiBjb25maWcuZGVmYXVsdF9kcml2ZV9pZFxcXFxuICAgIC8vbG9nKGlkKVxcXFxuICAgIHZhciBkYXRhID0ge1xcXFxuICAgICAgICBcXFxcXFxcImRyaXZlX2lkXFxcXFxcXCI6IGRlZixcXFxcbiAgICAgICAgXFxcXFxcXCJwYXJlbnRfZmlsZV9pZFxcXFxcXFwiOiBpZCxcXFxcbiAgICAgICAgXFxcXFxcXCJ0b2tlbl90eXBlXFxcXFxcXCI6ICdCZWFyZXInLFxcXFxuICAgICAgICBcXFxcXFxcImxpbWl0XFxcXFxcXCI6IDEwMCxcXFxcbiAgICAgICAgXFxcXFxcXCJhbGxcXFxcXFxcIjogdHJ1ZSxcXFxcbiAgICAgICAgXFxcXFxcXCJ1cmxfZXhwaXJlX3NlY1xcXFxcXFwiOiAxNjAwLFxcXFxuICAgICAgICBcXFxcXFxcImltYWdlX3RodW1ibmFpbF9wcm9jZXNzXFxcXFxcXCI6IFxcXFxcXFwiaW1hZ2UvcmVzaXplLHdfNDAwL2Zvcm1hdCxqcGVnXFxcXFxcXCIsXFxcXG4gICAgICAgIFxcXFxcXFwiaW1hZ2VfdXJsX3Byb2Nlc3NcXFxcXFxcIjogXFxcXFxcXCJpbWFnZS9yZXNpemUsd18xOTIwL2Zvcm1hdCxqcGVnXFxcXFxcXCIsXFxcXG4gICAgICAgIFxcXFxcXFwidmlkZW9fdGh1bWJuYWlsX3Byb2Nlc3NcXFxcXFxcIjogXFxcXFxcXCJ2aWRlby9zbmFwc2hvdCx0XzEwMDAsZl9qcGcsYXJfYXV0byx3XzMwMFxcXFxcXFwiLFxcXFxuICAgICAgICBcXFxcXFxcImZpZWxkc1xcXFxcXFwiOiBcXFxcXFxcIipcXFxcXFxcIixcXFxcbiAgICAgICAgXFxcXFxcXCJvcmRlcl9ieVxcXFxcXFwiOiBnZXRNeVZhcihcXFxcXFxcIm9yZGVyXFxcXFxcXCIsIFxcXFxcXFwibmFtZVxcXFxcXFwiKSxcXFxcbiAgICAgICAgXFxcXFxcXCJvcmRlcl9kaXJlY3Rpb25cXFxcXFxcIjogXFxcXFxcXCJBU0NcXFxcXFxcIlxcXFxuICAgIH1cXFxcbiAgICAvL2xvZyhnZXRNeVZhcihpZCArIFxcXFxcXFwibWFya2VyXFxcXFxcXCIpKVxcXFxuICAgIGlmIChNWV9QQUdFICE9IDEgJiYgZ2V0TXlWYXIoaWQgKyBcXFxcXFxcIm1hcmtlclxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7XFxcXG5cXFxcbiAgICAgICAgcmV0dXJuIGZhbHNlXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgZGF0YS5tYXJrZXIgPSBnZXRNeVZhcihpZCArIFxcXFxcXFwibWFya2VyXFxcXFxcXCIpICE9ICd1bmRlZmluZWQnID8gZ2V0TXlWYXIoaWQgKyBcXFxcXFxcIm1hcmtlclxcXFxcXFwiKSA6ICcnXFxcXG4gICAgICAgIGNsZWFyTXlWYXIoaWQgKyBcXFxcXFxcIm1hcmtlclxcXFxcXFwiKVxcXFxuICAgICAgICBsZXQgcmVzID0gcG9zdCh1cmwsIHtcXFxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiYXV0aG9yaXphdGlvblxcXFxcXFwiOiBjb25maWcuYWNjZXNzX3Rva2VuXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcylcXFxcbiAgICB9XFxcXG59XFxcXG52YXIgY2h1bGkgPSBmdW5jdGlvbihpZCwgbmFtZSwgdXJsLCBkaWQpIHtcXFxcbiAgICB2YXIgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2FsaS5qc29uXFxcXFxcXCIpKVxcXFxuICAgIHZhciBkaWQgPSBkaWQgPyBkaWQgOiBjb25maWcuZGVmYXVsdF9kcml2ZV9pZFxcXFxuICAgIGxldCB7XFxcXG4gICAgICAgIGdldEh6bSxcXFxcbiAgICAgICAgcHVzaFxcXFxuICAgIH0gPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpXFxcXG4gICAgdmFyIEh6bSA9IGdldEh6bShuYW1lKVxcXFxuICAgIGlmICgkLm1vdmllLmluY2x1ZGVzKEh6bSkpIHtcXFxcbiAgICAgICAgbGV0IHB1cmwgPSBcXFxcXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS9hZHJpdmUvdjIvZmlsZS9nZXRfdmlkZW9fcHJldmlld19wbGF5X2luZm9cXFxcXFxcIlxcXFxuICAgICAgICB2YXIgdXJscyA9IFtdXFxcXG4gICAgICAgIHZhciBuYW1lcyA9IFtcXFxcXFxcIuWOn+eUu1xcXFxcXFwiXVxcXFxuICAgICAgICB1cmxzLnB1c2godXJsICsgXFxcXFxcXCIjaXNWaWRlbz10cnVlI1xcXFxcXFwiKVxcXFxuICAgICAgICBsZXQgcHUgPSBwb3N0KHB1cmwsIHtcXFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImF1dGhvcml6YXRpb25cXFxcXFxcIjogY29uZmlnLmFjY2Vzc190b2tlblxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImRyaXZlX2lkXFxcXFxcXCI6IGRpZCxcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImNhdGVnb3J5XFxcXFxcXCI6IFxcXFxcXFwibGl2ZV90cmFuc2NvZGluZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiZmlsZV9pZFxcXFxcXFwiOiBpZCxcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcInRlbXBsYXRlX2lkXFxcXFxcXCI6IFxcXFxcXFwiXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGNvbnN0IHRyYW5zY29kaW5nID0ge1xcXFxuICAgICAgICAgICAgVUhEOiBcXFxcXFxcIjRLIOi2hea4hVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgUUhEOiBcXFxcXFxcIjJLIOi2hea4hVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgRkhEOiBcXFxcXFxcIjEwODAg5YWo6auY5riFXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBIRDogXFxcXFxcXCI3MjAg6auY5riFXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBTRDogXFxcXFxcXCI1NDAg5qCH5riFXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBMRDogXFxcXFxcXCIzNjAg5rWB55WFXFxcXFxcXCJcXFxcbiAgICAgICAgfTtcXFxcbiAgICAgICAgbGV0IGFycjEgPSBKU09OLnBhcnNlKHB1KS52aWRlb19wcmV2aWV3X3BsYXlfaW5mby5saXZlX3RyYW5zY29kaW5nX3Rhc2tfbGlzdC5maWx0ZXIoaXQgPT4gaXQudXJsICE9IFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuICAgICAgICBmb3IgKGxldCBrIG9mIE9iamVjdC5rZXlzKHRyYW5zY29kaW5nKSkge1xcXFxuICAgICAgICAgICAgZm9yIChsZXQgaXQgb2YgYXJyMSkge1xcXFxuICAgICAgICAgICAgICAgIGlmIChpdC50ZW1wbGF0ZV9pZCA9PSBrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVybHMucHVzaChpdC51cmwgKyBcXFxcXFxcIiNpc1ZpZGVvPXRydWUjXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzLnB1c2godHJhbnNjb2Rpbmdba10pO1xcXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgfVxcXFxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgICAgICAgICAgdXJsczogdXJscyxcXFxcbiAgICAgICAgICAgIG5hbWVzOiBuYW1lcyxcXFxcbiAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJSZWZlcmVyXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cuYWxpeXVuZHJpdmUuY29tL1xcXFxcXFwiXFxcXG4gICAgICAgICAgICB9XVxcXFxuICAgICAgICB9KVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIGxldCByZXMgPSByZXF1ZXN0KGJ1aWxkVXJsKFxcXFxcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL3YyL2ZpbGUvZG93bmxvYWRcXFxcXFxcIiwge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJkcml2ZV9pZFxcXFxcXFwiOiBkaWQsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImZpbGVfaWRcXFxcXFxcIjogaWQsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltYWdlX3RodW1ibmFpbF9wcm9jZXNzXFxcXFxcXCI6IFxcXFxcXFwiaW1hZ2UvcmVzaXplLG1fbGZpdCx3XzI1NixsaW1pdF8wL2Zvcm1hdCxqcGd8aW1hZ2UvZm9ybWF0LHdlYnBcXFxcXFxcIlxcXFxuICAgICAgICB9KSwge1xcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiYXV0aG9yaXphdGlvblxcXFxcXFwiOiBjb25maWcuYWNjZXNzX3Rva2VuXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIHZhciB1cmwgPSBwZGZoKHJlcywgXFxcXFxcXCJhJiZocmVmXFxcXFxcXCIpXFxcXG4gICAgICAgIGlmICgkLmltZy5pbmNsdWRlcyhIem0pKSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gdXJsICsgXFxcXFxcXCIjLmpwZ1xcXFxcXFwiXFxcXG4gICAgICAgIH0gZWxzZSBpZiAoJC5hdWRpby5pbmNsdWRlcyhIem0pKSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gdXJsICsgXFxcXFxcXCIjaXNNdXNpYz10cnVlI1xcXFxcXFwiXFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJkb3dubG9hZDovL1xcXFxcXFwiICsgdXJsXFxcXG4gICAgICAgIH1cXFxcbiAgICB9XFxcXG59XFxcXG4kLmV4cG9ydHMuc2hhcmVnZXRmaWxlcyA9IGZ1bmN0aW9uKGlkLCBwYXRoLCBzKSB7XFxcXG4gICAgdmFyIGRhdGEgPSB7XFxcXG4gICAgICAgIFxcXFxcXFwiYWxsXFxcXFxcXCI6IHRydWUsXFxcXG4gICAgICAgIFxcXFxcXFwic2hhcmVfaWRcXFxcXFxcIjogaWQsXFxcXG4gICAgICAgIFxcXFxcXFwicGFyZW50X2ZpbGVfaWRcXFxcXFxcIjogcGF0aCxcXFxcbiAgICAgICAgXFxcXFxcXCJsaW1pdFxcXFxcXFwiOiAyMDAsXFxcXG4gICAgICAgIFxcXFxcXFwiaW1hZ2VfdGh1bWJuYWlsX3Byb2Nlc3NcXFxcXFxcIjogXFxcXFxcXCJpbWFnZS9yZXNpemUsd18xNjAvZm9ybWF0LGpwZWdcXFxcXFxcIixcXFxcbiAgICAgICAgXFxcXFxcXCJpbWFnZV91cmxfcHJvY2Vzc1xcXFxcXFwiOiBcXFxcXFxcImltYWdlL3Jlc2l6ZSx3XzE5MjAvZm9ybWF0LGpwZWdcXFxcXFxcIixcXFxcbiAgICAgICAgXFxcXFxcXCJ2aWRlb190aHVtYm5haWxfcHJvY2Vzc1xcXFxcXFwiOiBcXFxcXFxcInZpZGVvL3NuYXBzaG90LHRfMTAwMCxmX2pwZyxhcl9hdXRvLHdfMzAwXFxcXFxcXCIsXFxcXG4gICAgICAgIFxcXFxcXFwib3JkZXJfYnlcXFxcXFxcIjogZ2V0SXRlbShcXFxcXFxcIm9yZGVyXFxcXFxcXCIsIFxcXFxcXFwibmFtZVxcXFxcXFwiKSxcXFxcbiAgICAgICAgXFxcXFxcXCJvcmRlcl9kaXJlY3Rpb25cXFxcXFxcIjogXFxcXFxcXCJBU0NcXFxcXFxcIlxcXFxuICAgIH1cXFxcbiAgICBpZiAoTVlfUEFHRSA9PSAxIHx8IGdldE15VmFyKGlkICsgXFxcXFxcXCJtYXJrZXJcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikgIT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgICAgICBkYXRhLm1hcmtlciA9IGdldE15VmFyKGlkICsgXFxcXFxcXCJtYXJrZXJcXFxcXFxcIikgIT0gJ3VuZGVmaW5lZCcgPyBnZXRNeVZhcihpZCArIFxcXFxcXFwibWFya2VyXFxcXFxcXCIpIDogJydcXFxcbiAgICAgICAgY2xlYXJNeVZhcihpZCArIFxcXFxcXFwibWFya2VyXFxcXFxcXCIpXFxcXG4gICAgICAgIHZhciBmaWxlcyA9IEpTT04ucGFyc2UocG9zdChcXFxcXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS9hZHJpdmUvdjMvZmlsZS9saXN0XFxcXFxcXCIsIHtcXFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcIngtc2hhcmUtdG9rZW5cXFxcXFxcIjogc1xcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpXFxcXG4gICAgICAgIH0pKVxcXFxuICAgICAgICByZXR1cm4gZmlsZXNcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICByZXR1cm4gZmFsc2VcXFxcbiAgICB9XFxcXG59XFxcXG4kLmV4cG9ydHMuc2hhcmVjaHVsaSA9IGZ1bmN0aW9uKHNoYXJlX2lkLCBpZCwgbmFtZSwgcykge1xcXFxuICAgIHZhciBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYWxpLmpzb25cXFxcXFxcIikpXFxcXG4gICAgbGV0IHtcXFxcbiAgICAgICAgZ2V0SHptLFxcXFxuICAgICAgICBwdXNoXFxcXG4gICAgfSA9ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vcGFnZS9hcGlcXFxcXFxcIilcXFxcbiAgICB2YXIgSHptID0gZ2V0SHptKG5hbWUpXFxcXG4gICAgaWYgKCQubW92aWUuaW5jbHVkZXMoSHptKSkge1xcXFxuICAgICAgICBsZXQgdXJsID0gSlNPTi5wYXJzZShwb3N0KFxcXFxcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL3YyL2ZpbGUvZ2V0X3NoYXJlX2xpbmtfZG93bmxvYWRfdXJsXFxcXFxcXCIsIHtcXFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcIngtc2hhcmUtdG9rZW5cXFxcXFxcIjogcyxcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImF1dGhvcml6YXRpb25cXFxcXFxcIjogY29uZmlnLmFjY2Vzc190b2tlblxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImV4cGlyZV9zZWNcXFxcXFxcIjogNjAwLFxcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiZmlsZV9pZFxcXFxcXFwiOiBpZCxcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcInNoYXJlX2lkXFxcXFxcXCI6IHNoYXJlX2lkXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9KSkuZG93bmxvYWRfdXJsXFxcXG4gICAgICAgIGxldCBwdSA9ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vcGFnZS9hbGlsYXp5XFxcXFxcXCIpKHNoYXJlX2lkLCBpZCwgdXJsKVxcXFxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocHUpXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgbGV0IHVybCA9IEpTT04ucGFyc2UocG9zdChcXFxcXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS92Mi9maWxlL2dldF9zaGFyZV9saW5rX2Rvd25sb2FkX3VybFxcXFxcXFwiLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJ4LXNoYXJlLXRva2VuXFxcXFxcXCI6IHMsXFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJhdXRob3JpemF0aW9uXFxcXFxcXCI6IGNvbmZpZy5hY2Nlc3NfdG9rZW5cXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJleHBpcmVfc2VjXFxcXFxcXCI6IDYwMCxcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImZpbGVfaWRcXFxcXFxcIjogaWQsXFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJzaGFyZV9pZFxcXFxcXFwiOiBzaGFyZV9pZFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfSkpLnVybFxcXFxuICAgICAgICBpZiAoJC5pbWcuaW5jbHVkZXMoSHptKSkge1xcXFxuICAgICAgICAgICAgcmV0dXJuIHVybCArIFxcXFxcXFwiIy5qcGdcXFxcXFxcIlxcXFxuICAgICAgICB9IGVsc2UgaWYgKCQuYXVkaW8uaW5jbHVkZXMoSHptKSkge1xcXFxuICAgICAgICAgICAgcmV0dXJuIHVybCArIFxcXFxcXFwiI2lzTXVzaWM9dHJ1ZSNcXFxcXFxcIlxcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiZG93bmxvYWQ6Ly9cXFxcXFxcIiArIHVybFxcXFxuICAgICAgICB9XFxcXG4gICAgfVxcXFxufVxcXFxuJC5leHBvcnRzLmdldEljb24gPSBmdW5jdGlvbihmaWxlTmFtZSkge1xcXFxuICAgIGxldCB7XFxcXG4gICAgICAgIGdldEh6bVxcXFxuICAgIH0gPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpXFxcXG4gICAgbGV0IHJvb3QgPSBcXFxcXFxcImh0dHBzOi8vZ2l0Y29kZS5uZXQvcXFfMzIzOTQzNTEvZHIvLS9yYXcvbWFzdGVyL2ltZy/mlofku7bnsbvlnosyL1xcXFxcXFwiO1xcXFxuICAgIGxldCBmaWxlcyA9ICdhaXxhcGt8YXZpfGNzc3xkbWd8ZXhlfGZsdnxnaWZ8aGlrZXJ8aHRtbHxpc298anBnfGpzfGpzb258bG9nfG1vdnxtcDN8bXA0fG90ZnxwaHB8cG5nfHBwdHxwc2R8dGFibGV8dHh0fHdhdnx4bHN8emlwfGNzc3xkb2N8ZXB1YnxleGN8aHRtfHhsc3gnLnNwbGl0KCd8Jyk7XFxcXG4gICAgbGV0IGh6bSA9IGdldEh6bShmaWxlTmFtZSlcXFxcbiAgICBpZiAoZmlsZXMuaW5jbHVkZXMoaHptKSkge1xcXFxuICAgICAgICBpbWcgPSByb290ICsgaHptICsgJy5zdmcnO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIGltZyA9IHJvb3QgKyBcXFxcXFxcIuaWh+S7ti5zdmdcXFxcXFxcIlxcXFxuICAgIH1cXFxcbiAgICByZXR1cm4gaW1nXFxcXG59XFxcXG4kLmV4cG9ydHMuZ2V0SHptID0gZnVuY3Rpb24oZmlsZU5hbWUpIHtcXFxcbiAgICByZXR1cm4gZmlsZU5hbWUuc3Vic3RyKGZpbGVOYW1lLmxhc3RJbmRleE9mKFxcXFxcXFwiLlxcXFxcXFwiKSArIDEpLnRvTG93ZXJDYXNlKClcXFxcbn1cXFxcbiQuZXhwb3J0cy5yZWZyZXNoVG9rZW4gPSByZWZyZXNoVG9rZW5cXFxcbiQuZXhwb3J0cy5nZXRGaWxlcyA9IGdldEZpbGVzXFxcXG4kLmV4cG9ydHMuY2h1bGkgPSBjaHVsaVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWIhuS6q1xcXCIsXFxcInBhdGhcXFwiOlxcXCJzaGFyZVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG5cXFxcbiQuZXh0ZW5kKHtcXFxcbiAgICB0ZXh0OiBbXFxcXFxcXCJodG1cXFxcXFxcIiwgXFxcXFxcXCJodG1sXFxcXFxcXCIsIFxcXFxcXFwieG1sXFxcXFxcXCIsIFxcXFxcXFwiamF2YVxcXFxcXFwiLCBcXFxcXFxcInByb3BlcnRpZXNcXFxcXFxcIiwgXFxcXFxcXCJzcWxcXFxcXFxcIiwgXFxcXFxcXCJqc1xcXFxcXFwiLCBcXFxcXFxcIm1kXFxcXFxcXCIsIFxcXFxcXFwianNvblxcXFxcXFwiLCBcXFxcXFxcImNvbmZcXFxcXFxcIiwgXFxcXFxcXCJpbmlcXFxcXFxcIiwgXFxcXFxcXCJ2dWVcXFxcXFxcIiwgXFxcXFxcXCJwaHBcXFxcXFxcIiwgXFxcXFxcXCJweVxcXFxcXFwiLCBcXFxcXFxcImJhdFxcXFxcXFwiLCBcXFxcXFxcImdpdGlnbm9yZVxcXFxcXFwiLCBcXFxcXFxcInltbFxcXFxcXFwiLCBcXFxcXFxcImdvXFxcXFxcXCIsIFxcXFxcXFwic2hcXFxcXFxcIiwgXFxcXFxcXCJjXFxcXFxcXCIsIFxcXFxcXFwiY3BwXFxcXFxcXCIsIFxcXFxcXFwiaFxcXFxcXFwiLCBcXFxcXFxcImhwcFxcXFxcXFwiLCBcXFxcXFxcInRzeFxcXFxcXFwiXSxcXFxcbiAgICBhdWRpbzogW1xcXFxcXFwibXAzXFxcXFxcXCIsIFxcXFxcXFwiZmxhY1xcXFxcXFwiLCBcXFxcXFxcIm9nZ1xcXFxcXFwiLCBcXFxcXFxcIm00YVxcXFxcXFwiLCBcXFxcXFxcIndhdlxcXFxcXFwiLCBcXFxcXFxcIm9wdXNcXFxcXFxcIl0sXFxcXG4gICAgbW92aWU6IFtcXFxcXFxcIm1wNFxcXFxcXFwiLCBcXFxcXFxcIm1rdlxcXFxcXFwiLCBcXFxcXFxcImF2aVxcXFxcXFwiLCBcXFxcXFxcIm1vdlxcXFxcXFwiLCBcXFxcXFxcInJtdmJcXFxcXFxcIiwgXFxcXFxcXCJ3ZWJtXFxcXFxcXCIsIFxcXFxcXFwiZmx2XFxcXFxcXCIsIFxcXFxcXFwibTR2XFxcXFxcXCIsIFxcXFxcXFwibTN1OFxcXFxcXFwiLCBcXFxcXFxcInRzXFxcXFxcXCJdLFxcXFxuICAgIGltZzogW1xcXFxcXFwianBnXFxcXFxcXCIsIFxcXFxcXFwicG5nXFxcXFxcXCIsIFxcXFxcXFwianBlZ1xcXFxcXFwiLCBcXFxcXFxcImdpZlxcXFxcXFwiLCBcXFxcXFxcInN2Z1xcXFxcXFwiLCBcXFxcXFxcInJhd1xcXFxcXFwiXSxcXFxcbiAgICBzdWJ0aXRsZTogW1xcXFxcXFwidnR0XFxcXFxcXCIsIFxcXFxcXFwic3J0XFxcXFxcXCIsIFxcXFxcXFwiYXNzXFxcXFxcXCJdXFxcXG59KVxcXFxuXFxcXG5mdW5jdGlvbiBmb3JtYXREYXRlKHRpbWUpIHtcXFxcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWUpO1xcXFxuICAgIHZhciBZWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXFxcbiAgICB2YXIgTU0gPSAoZGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpIDogZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLSc7XFxcXG4gICAgdmFyIEREID0gKGRhdGUuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXREYXRlKCkpIDogZGF0ZS5nZXREYXRlKCkpO1xcXFxuICAgIHZhciBoaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOic7XFxcXG4gICAgdmFyIG1tID0gKGRhdGUuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRhdGUuZ2V0TWludXRlcygpKSArICc6JztcXFxcbiAgICB2YXIgc3MgPSAoZGF0ZS5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0U2Vjb25kcygpIDogZGF0ZS5nZXRTZWNvbmRzKCkpO1xcXFxuICAgIHJldHVybiBZWSArIE1NICsgREQgKyBcXFxcXFxcIiBcXFxcXFxcIiArIGhoICsgbW0gKyBzcztcXFxcbn1cXFxcbmlmIChnZXRQYXJhbShcXFxcXFxcInNoYXJlX3VybFxcXFxcXFwiKS5zdGFydHNXaXRoKFxcXFxcXFwiaHR0cHM6Ly93d3cuYWxpeXVuZHJpdmUuY29tL3MvXFxcXFxcXCIpKSB7XFxcXG4gICAgdmFyIHNoYXJlVXJsID0gZ2V0UGFyYW0oXFxcXFxcXCJzaGFyZV91cmxcXFxcXFxcIilcXFxcbiAgICB2YXIgc2hhcmVfaWQgPSBzaGFyZVVybC5zcGxpdCgnY29tL3MvJylbMV0uc3BsaXQoXFxcXFxcXCIvXFxcXFxcXCIpWzBdXFxcXG4gICAgaWYgKGdldEl0ZW0oc2hhcmVfaWQsIFxcXFxcXFwiXFxcXFxcXCIpICE9IFxcXFxcXFwiXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgdmFyIHBhc3N3b3JkID0gZ2V0SXRlbShzaGFyZV9pZClcXFxcbiAgICB9IGVsc2UgaWYgKGdldFBhcmFtKFxcXFxcXFwicGFzc3dvcmRcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgdmFyIHBhc3N3b3JkID0gZ2V0UGFyYW0oXFxcXFxcXCJwYXNzd29yZFxcXFxcXFwiKVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBwYXNzd29yZCA9IFxcXFxcXFwiXFxcXFxcXCJcXFxcbiAgICB9XFxcXG4gICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocG9zdChcXFxcXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS9hZHJpdmUvdjMvc2hhcmVfbGluay9nZXRfc2hhcmVfYnlfYW5vbnltb3VzP3NoYXJlX2lkPVxcXFxcXFwiICsgc2hhcmVfaWQsIHtcXFxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJzaGFyZV9pZFxcXFxcXFwiOiBzaGFyZV9pZFxcXFxuICAgICAgICB9KVxcXFxuICAgIH0pKVxcXFxuICAgIHZhciBzYSA9IEpTT04ucGFyc2UocG9zdChcXFxcXFxcImh0dHBzOi8vYXBpLmFsaXl1bmRyaXZlLmNvbS92Mi9zaGFyZV9saW5rL2dldF9zaGFyZV90b2tlblxcXFxcXFwiLCB7XFxcXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwic2hhcmVfcHdkXFxcXFxcXCI6IHBhc3N3b3JkLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJzaGFyZV9pZFxcXFxcXFwiOiBzaGFyZV9pZFxcXFxuICAgICAgICB9KVxcXFxuICAgIH0pKVxcXFxuICAgIGlmIChzYS5zaGFyZV90b2tlbikge1xcXFxuICAgICAgICB2YXIgcyA9IHNhLnNoYXJlX3Rva2VuXFxcXG4gICAgICAgIHNldFBhZ2VUaXRsZShyZXMuc2hhcmVfbmFtZSlcXFxcbiAgICAgICAgdmFyIHBhdGggPSBNWV9QQVJBTVMucGF0aCB8fCBcXFxcXFxcInJvb3RcXFxcXFxcIlxcXFxuICAgICAgICBpZiAoTVlfUEFHRSA9PSAxKSB7XFxcXG4gICAgICAgICAgICBkLnVuc2hpZnQoe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiByZXMuY3JlYXRvcl9uYW1lLFxcXFxuICAgICAgICAgICAgICAgIGltZzogcmVzLmF2YXRhcixcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJhdmF0YXJcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuKAnOKAnOKAneKAnTxzbWFsbD5cXFxcXFxcIiArIGZvcm1hdERhdGUoRGF0ZS5wYXJzZShyZXMudXBkYXRlZF9hdCkpICsgXFxcXFxcXCI8L3NtYWxsPlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfMVxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi5L+d5a2Y5Yiw5oiR55qE572R55uYXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiBgc21hcnRkcml2ZTovL3NoYXJlL2Jyb3dzZT9zaGFyZUlkPSR7c2hhcmVfaWR9JnNoYXJlUHdkPSR7cGFzc3dvcmR9YCxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0X2NlbnRlcl8xXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuWIh+aNouagt+W8j1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJChbXFxcXFxcXCJtb3ZpZV8xX2xlZnRfcGljXFxcXFxcXCIsIFxcXFxcXFwiY2FyZF9waWNfM1xcXFxcXFwiLCBcXFxcXFxcImF2YXRhclxcXFxcXFwiXSkuc2VsZWN0KCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0SXRlbShcXFxcXFxcInN0eWxlXFxcXFxcXCIsIGlucHV0KVxcXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v5bey5YiH5o2iXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzJcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuaOkuW6j++8mlxcXFxcXFwiICsgKGdldE15VmFyKFxcXFxcXFwib3JkZXJcXFxcXFxcIiwgXFxcXFxcXCJuYW1lXFxcXFxcXCIpID09IFxcXFxcXFwibmFtZVxcXFxcXFwiID8gXFxcXFxcXCLlkI3np7BcXFxcXFxcIiA6IFxcXFxcXFwi5pe26Ze0XFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJChcXFxcXFxcIiNub1JlY29yZEhpc3RvcnkjI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgbyA9IGdldE15VmFyKFxcXFxcXFwib3JkZXJcXFxcXFxcIiwgXFxcXFxcXCJuYW1lXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwib3JkZXJcXFxcXFxcIiwgKG8gPT0gXFxcXFxcXCJuYW1lXFxcXFxcXCIgPyBcXFxcXFxcInVwZGF0ZWRfYXRcXFxcXFxcIiA6IFxcXFxcXFwibmFtZVxcXFxcXFwiKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8yXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sIHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgdmFyIGZpbGVzID0gJC5yZXF1aXJlKFxcXFxcXFwiYXBpXFxcXFxcXCIpLnNoYXJlZ2V0ZmlsZXMoc2hhcmVfaWQsIHBhdGgsIHMpXFxcXG4gICAgICAgIGlmIChmaWxlcykge1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIocGF0aCArIFxcXFxcXFwibWFya2VyXFxcXFxcXCIsIGZpbGVzLm5leHRfbWFya2VyKVxcXFxuICAgICAgICAgICAgbGlzdCA9IGZpbGVzLml0ZW1zXFxcXG4gICAgICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0sIGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgZmlsZU5hbWUgPSBpdGVtLm5hbWVcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGVuID0gNDA7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGxlbjIgPSBsZW4gLyAyO1xcXFxuICAgICAgICAgICAgICAgIGlmIChmaWxlTmFtZS5sZW5ndGggPj0gbGVuKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc3Vic3RyKDAsIGxlbjIpICsgJy4uLicgKyBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGVuZ3RoIC0gbGVuMik7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmaWxlTmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZm9ybWF0RGF0ZShEYXRlLnBhcnNlKGl0ZW0udXBkYXRlZF9hdCkpLFxcXFxuICAgICAgICAgICAgICAgICAgICBpbWc6IChpdGVtLnRodW1ibmFpbCA/IGl0ZW0udGh1bWJuYWlsIDogKGl0ZW0udHlwZSA9PSBcXFxcXFxcImZvbGRlclxcXFxcXFwiID8gXFxcXFxcXCJodHRwczovL2dpdGNvZGUubmV0L3FxXzMyMzk0MzUxL2RyLy0vcmF3L21hc3Rlci9pbWcv5paH5Lu257G75Z6LMi/mlofku7blpLkuc3ZnXFxcXFxcXCIgOiAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpLmdldEljb24oaXRlbS5uYW1lKSkpLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IChpdGVtLnR5cGUgPT0gXFxcXFxcXCJmb2xkZXJcXFxcXFxcIiA/IFxcXFxcXFwiaGlrZXI6Ly9wYWdlL3NoYXJlP3BhZ2U9ZnlwYWdlJnNoYXJlX3VybD1cXFxcXFxcIiArIGdldFBhcmFtKFxcXFxcXFwic2hhcmVfdXJsXFxcXFxcXCIpIDogJCgpLmxhenlSdWxlKChzaGFyZV9pZCwgaWQsIG5hbWUsIHMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBpXFxcXFxcXCIpLnNoYXJlY2h1bGkoc2hhcmVfaWQsIGlkLCBuYW1lLCBzKVxcXFxuICAgICAgICAgICAgICAgICAgICB9LCBzaGFyZV9pZCwgaXRlbS5maWxlX2lkLCBpdGVtLm5hbWUsIHMpKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGdldEl0ZW0oXFxcXFxcXCJzdHlsZVxcXFxcXFwiLCBcXFxcXFxcIm1vdmllXzNcXFxcXFxcIiksXFxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBpdGVtLmZpbGVfaWRcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9XFxcXG4gICAgfSBlbHNlIGlmIChzYS5jb2RlID09IFxcXFxcXFwiU2hhcmVMaW5rLkNhbmNlbGxlZFxcXFxcXFwiKSB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi5p2l5pma5LqG77yM5YiG5Lqr6KKr5Y+W5raI5LqG4LKgX+CyoFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG4gICAgICAgIH1dKVxcXFxuICAgIH0gZWxzZSBpZiAoc2EuY29kZSA9PSBcXFxcXFxcIlNoYXJlTGluay5Gb3JiaWRkZW5cXFxcXFxcIikge1xcXFxuICAgICAgICBzZXRSZXN1bHQoW3tcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuadpeaZmuS6hu+8jOWIhuS6q+iiq+WwgeemgeS6huCyoF/gsqBcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfY2VudGVyXzFcXFxcXFxcIlxcXFxuICAgICAgICB9XSlcXFxcbiAgICB9IGVsc2UgaWYgKHNhLmNvZGUgPT0gXFxcXFxcXCJTaGFyZUxpbmsuRXhwaXJlZFxcXFxcXFwiKSB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi5p2l5pma5LqG77yM5YiG5Lqr6L+H5pyf5LqG4LKgX+CyoFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG4gICAgICAgIH1dKVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi6K+36L6T5YWl5o+Q5Y+W56CBXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCJcXFxcXFxcIikuaW5wdXQoKHNoYXJlX2lkKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgc2V0SXRlbShzaGFyZV9pZCwgaW5wdXQpXFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgfSwgc2hhcmVfaWQpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG4gICAgICAgIH1dKVxcXFxuICAgIH1cXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmkJzntKJcXFwiLFxcXCJwYXRoXFxcIjpcXFwic2VhcmNoXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbmFkZExpc3RlbmVyKCdvbkNsb3NlJywgJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgY2xlYXJNeVZhcignc2VhcmNobWFya2VyJylcXFxcbiAgICBjbGVhck15VmFyKCdzZXJhY2hlbmQnKVxcXFxufSkpXFxcXG5cXFxcbmFkZExpc3RlbmVyKCdvblJlZnJlc2gnLCAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICBjbGVhck15VmFyKCdzZWFyY2htYXJrZXInKVxcXFxuICAgIGNsZWFyTXlWYXIoJ3NlcmFjaGVuZCcpXFxcXG59KSlcXFxcblxcXFxuXFxcXG5mdW5jdGlvbiBmb3JtYXREYXRlKHRpbWUpIHtcXFxcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWUpO1xcXFxuICAgIHZhciBZWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXFxcbiAgICB2YXIgTU0gPSAoZGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpIDogZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLSc7XFxcXG4gICAgdmFyIEREID0gKGRhdGUuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXREYXRlKCkpIDogZGF0ZS5nZXREYXRlKCkpO1xcXFxuICAgIHZhciBoaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOic7XFxcXG4gICAgdmFyIG1tID0gKGRhdGUuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRhdGUuZ2V0TWludXRlcygpKSArICc6JztcXFxcbiAgICB2YXIgc3MgPSAoZGF0ZS5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0U2Vjb25kcygpIDogZGF0ZS5nZXRTZWNvbmRzKCkpO1xcXFxuICAgIHJldHVybiBZWSArIE1NICsgREQgKyBcXFxcXFxcIiBcXFxcXFxcIiArIGhoICsgbW0gKyBzcztcXFxcbn1cXFxcblxcXFxubGV0IGt3ID0gZ2V0UGFyYW0oXFxcXFxcXCJrd1xcXFxcXFwiKTtcXFxcbmxldCBwYWdlID0gTVlfUEFHRTtcXFxcblxcXFxuZnVuY3Rpb24gZ2V0X1NlYXJjaChhcnIsIGt3LCBwYWdlKSB7XFxcXG4gICAgdmFyIGxpbmtzID0ga3cubWF0Y2goL2h0dHBzOlxcXFxcXFxcL1xcXFxcXFxcLyh3d3dcXFxcXFxcXC5hbGl5dW5kcml2ZVxcXFxcXFxcLmNvbVxcXFxcXFxcL3N8YWx5d3BcXFxcXFxcXC5uZXQpXFxcXFxcXFwvXFxcXFxcXFx3Ki9nKVxcXFxuICAgIGlmIChsaW5rcykge1xcXFxuICAgICAgICBhcnIucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogXFxcXFxcXCLor4bliKvliLDpk77mjqVcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHVybDogXFxcXFxcXCJ0b2FzdDovL+ODvSgq4oyS4oiH4oySKinvvolcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfY2VudGVyXzFcXFxcXFxcIlxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBsaW5rcy5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogaXRlbSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9wYWdlL3NoYXJlP3BhZ2U9ZnlwYWdlJnNoYXJlX3VybD1cXFxcXFxcIiArIGl0ZW0sXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8xXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIHJldHVybiBhcnJcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgcGF0aHMgPSBNWV9QQVJBTVMucGF0aCB8fCBcXFxcXFxcInJvb3RcXFxcXFxcIlxcXFxuICAgICAgICBsZXQgdSA9IFxcXFxcXFwiaHR0cHM6Ly9hcGkuYWxpeXVuZHJpdmUuY29tL2Fkcml2ZS92My9maWxlL3NlYXJjaFxcXFxcXFwiXFxcXG4gICAgICAgIHZhciBjb25maWcgPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9hbGkuanNvblxcXFxcXFwiKSlcXFxcbiAgICAgICAgdmFyIG1hcmsgPSBnZXRNeVZhcignc2VhcmNobWFya2VyJykgfHwgJyc7XFxcXG4gICAgICAgIHZhciBib2R5ID0ge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJkcml2ZV9pZFxcXFxcXFwiOiBjb25maWcuZGVmYXVsdF9kcml2ZV9pZCxcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibGltaXRcXFxcXFxcIjogMTAwLFxcXFxuICAgICAgICAgICAgJ21hcmtlcic6IG1hcmssXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltYWdlX3RodW1ibmFpbF9wcm9jZXNzXFxcXFxcXCI6IFxcXFxcXFwiaW1hZ2UvcmVzaXplLHdfNDAwL2Zvcm1hdCxqcGVnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltYWdlX3VybF9wcm9jZXNzXFxcXFxcXCI6IFxcXFxcXFwiaW1hZ2UvcmVzaXplLHdfMTkyMC9mb3JtYXQsanBlZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ2aWRlb190aHVtYm5haWxfcHJvY2Vzc1xcXFxcXFwiOiBcXFxcXFxcInZpZGVvL3NuYXBzaG90LHRfMTAwMCxmX2pwZyxhcl9hdXRvLHdfMzAwXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInF1ZXJ5XFxcXFxcXCI6IGBuYW1lIG1hdGNoIFxcXFxcXFxcXFxcXFxcXCIke2t3fVxcXFxcXFxcXFxcXFxcXCJgLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJvcmRlcl9ieVxcXFxcXFwiOiBcXFxcXFxcIm5hbWUgQVNDXFxcXFxcXCJcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICB2YXIganNvbiA9IEpTT04ucGFyc2UocG9zdCh1LCB7XFxcXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcXFxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcImF1dGhvcml6YXRpb25cXFxcXFxcIjogY29uZmlnLmFjY2Vzc190b2tlblxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KSlcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBqc29uLml0ZW1zO1xcXFxuICAgICAgICBpZihsaXN0Lmxlbmd0aD09MCl7XFxcXG4gICAgICAgICAgICBhcnIucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9XFxcXFxcXCJncmV5XFxcXFxcXCI+5peg56ym5ZCI57uT5p6cPC9mb250Pjwvc21hbGw+JyxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIHJldHVybiBhcnI7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgaWYgKGpzb24ubmV4dF9tYXJrZXIgIT0gJycpIHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKCdzZWFyY2htYXJrZXInLCBqc29uLm5leHRfbWFya2VyKTtcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKCdzZXJhY2hlbmQnLCAnMScpXFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgaWYgKGdldE15VmFyKCdzZXJhY2hlbmQnLCAnMCcpID09ICcxJyAmJiBwYWdlID4gMSkge1xcXFxuICAgICAgICAgICAgYXJyLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPjxmb250IGNvbG9yPVxcXFxcXFwiZ3JleVxcXFxcXFwiPuWIq+WIkuS6huWIsOW6leS6hjwvZm9udD48L3NtYWxsPicsXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICByZXR1cm4gYXJyO1xcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCBmaWxlTmFtZSA9IGl0ZW0ubmFtZVxcXFxuICAgICAgICAgICAgICAgIGxldCBsZW4gPSA0MDtcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGVuMiA9IGxlbiAvIDI7XFxcXG4gICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmxlbmd0aCA+PSBsZW4pIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMCwgbGVuMikgKyAnLi4uJyArIGZpbGVOYW1lLnN1YnN0cihmaWxlTmFtZS5sZW5ndGggLSBsZW4yKTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgYXJyLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZmlsZU5hbWUsXFxcXG4gICAgICAgICAgICAgICAgICAgIGltZzogKGl0ZW0udGh1bWJuYWlsID8gaXRlbS50aHVtYm5haWwgOiAoaXRlbS50eXBlID09IFxcXFxcXFwiZm9sZGVyXFxcXFxcXCIgPyBcXFxcXFxcImh0dHBzOi8vZ2l0Y29kZS5uZXQvcXFfMzIzOTQzNTEvZHIvLS9yYXcvbWFzdGVyL2ltZy/mlofku7bnsbvlnosyL+aWh+S7tuWkuS5zdmdcXFxcXFxcIiA6ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vcGFnZS9hcGlcXFxcXFxcIikuZ2V0SWNvbihpdGVtLm5hbWUpKSksXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogKGl0ZW0udHlwZSA9PSBcXFxcXFxcImZvbGRlclxcXFxcXFwiID8gXFxcXFxcXCJoaWtlcjovL3BhZ2UvaG9tZVxcXFxcXFwiIDogJCgpLmxhenlSdWxlKChpZCwgbmFtZSwgdXJsKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2FwaVxcXFxcXFwiKS5jaHVsaShpZCwgbmFtZSwgdXJsKVxcXFxuICAgICAgICAgICAgICAgICAgICB9LCBpdGVtLmZpbGVfaWQsIGl0ZW0ubmFtZSwgaXRlbS51cmwpKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZm9ybWF0RGF0ZShEYXRlLnBhcnNlKGl0ZW0udXBkYXRlZF9hdCkpLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJhdmF0YXJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGl0ZW0uZmlsZV9pZFxcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICByZXR1cm4gYXJyXFxcXG4gICAgICAgIH1cXFxcbiAgICB9XFxcXG59XFxcXG5cXFxcbmdldF9TZWFyY2goZCxrdyxwYWdlKVxcXFxuXFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6Zi/6YeMbGF6eVxcXCIsXFxcInBhdGhcXFwiOlxcXCJhbGlsYXp5XFxcIixcXFwicnVsZVxcXCI6XFxcImV2YWxQcml2YXRlSlMoXFxcXFxcXCJyTyszN3VHK2IySmJsOTFKWGUxQUxmWnpEbElRZ1BGSEM2Y1EzK1dPUHhsV2VtMy9jKzkzOUVBOGgxN1VvZXVCTHpsbUQvS2FlWFJ2SUpXUHh2UnZzbm93L1kwMmU1Y21QMmowcW9JOXBmeFhzTDE2QlVVS05NS3lacHB4Z1dDcnBmakRXeXZIakhsL1ZhSEJTVC8xTUR1blVhMlcyUHlTWlViVXEyNk95dUJZVmovWXpJajJ6bHFMZXBQWmVqandrTjcxU0pQK0tuM0w2RFpibWVwZFZVMlVncCtTWkNmbEJIdXlQSDJ5MldXeDMrMmpNYm5RNERJSVptQktwdzc2cCs4WXBNVTFsVm5vdGU4bW1FbzE2MmJMOUMrQjFRU1lkT2hvdDRDSXMxMmhRTENCV3lYdGhlUTFwbW9ZeGJub2xYdktSYnY1WVl0cEZNVDVPWkNnOXByRWphZ1laLy91ZEt6eSt4QlNoQTB1SzBMOFNka2tjaDJOVGlrU1dkQTNjS2tMRHJRbm5UTHUzNFhxVkdmK01xVEZndUFrRFlRRjZ0Nm1zRVlQMXFycmtCc21EeW5Bd2FFTjUyL3RNb3lYSC9GWGJ2YkdEOXVzZnE3azNjU1N5My9XaFNET2g5TVMydytrUCtsNEtTSm9qd3ZwMnhmQ3dESEtsSkFOendWaGlhRDN6WE95VVpzQnFCdEVvTC83ek9LR2hNa0ZHVWJ2bFN4MnJ6a0ZwYVpQdXBsL3pWalUwZVA3VC9hQ2VjV3pXMVYyNm9pbEZZeVhGWit2N0VIRThIUXlDaWVabXlMb211VnRnbmR5SGNkQzF2cVd4RmVYcm55amVsWFRYVE5xTFlUdzI4clp6RENSVWt3UDZkRG41ekR0TXZ4QzNQTWVRMFdkS0d5bXN3RWVucFlRQXFHelBvbHpMNE1MaDhtZ0ZhazIxalN5V0FrS0VkdGpPTVA2MDZVaGh5TlBZaEMxcmQxeFc5bmo5M0FmQ2ZxQm1RdEZEaVQzRnFOUEZIWGtaNFdNYzhWS2MvdjhhamdSWnZib2x4ckVWcW1GU3Ywb1FSWGs5ZGMvRVNMeXBQaUM2RzR2MGFDdk5BR2VpTFcrb2Z6bVJDeDEzWkM4MFNwbCtUajlnYWxneFBMUjZ5N3h6UHpodytjWDFuYmc5MU9Ud09xVXlhN2J2VG05UEk0TnlxR0FWbDNtZ0ZJUlhKcmJuQVk4RndWK3hlRGE1Z1dZekpQSGlFNG1uQjFDZlo2QnZXZWorbUpJbnhxa0IzL016RTN1SDJVenlYVXgrNFloMUZBQ2NPODdZc1IwNS9wNlhtbm1PK1NOYlQ3alAvM25hVzZheDBUL1I1Y0FBbTYyVnczQS9hYVduelBpTExyd2cyZUZIVWt2QUFuR0FVek1MWUlZbE00dG81RktGT1VsZDAzLzRIdHp6RytaVEtYNzRyRC9kK3A2VkRsTzlNTkVacEFQdk5GaHBlSERkNkFxcUVjYUtOK2R6UmFvS2c2NnU1VkhCTWFEVDczK0drMHVoSnNTWWJ3TVhzUExLdE4wUzVYUDcxbUZpM2hTQmdFSTJjVHdqd1QramNMNmdPRzIyWHhoU0NEWEhsYXM5ajEyU2hUbEpYZE4vK0I3Yzh4dm1VeWwrM2JPR0ZTUzBZRktsbmMrOGFUcUhRb3doWmo3NS9NNTNzS1lYMnpSZ09TVGFEMzFSb1FLU0VjUERpTkVzWjJUb21Oa0FtdmYwMzErZlczY2htMVJ3S3crWDlHeGZtSFE3cmlEb1NSaW9VYVp3SGVsRDFsb0Vlc0N5RDUwMUg3Ulk5WnlRVTZxTVplZmtlR1VCT1FaQ2Fac0F3RW5TRCtpN0NxRWhnMi9XY2Z0b3ppUkl4aFhZMkY3bFU1cEVsSUd5V3BuRFZnWnlOY0VheGhuR1FMbE1DUTBPRklKSGpZRG0yalhCdFV2RmtwSi9kK0NnZURENG82ZU5IeE1sQUpSdXNuQWhLcGtNTStVZWc2OVdQbHZESGc4clphNVFuY3pwTjEyM0YvQUs0SnlXMVYyNm9pbEZZeVhGWit2N0VIRThCcE1raCs5WTAvRHpIRG9PT1BnUHpYZ3hxWkFZYkFDV2Ewa0kvQVpMa0QvZWw2QjVCSWppWUhnMUFJbUtsWFhRbWNMUzBzd0doWjJDb1V6Y0JTa0V2UE9sREw3RHZ6enNPUW5LKy9iQ2M0bjlzN2tmRWg1R0grbVY0RTM3NzFwNmlrOUIranZIcjdqYTBTZ3ZRbkNRTTlIZHNsWlNROVd5c3RXSzNkYTg3SW1GKzB5SExsN3JpeEtVNDdXZ3dTVFcwNmxBbWRoalNJVWg2RkswMXpGRk93TlNaZE11MHBxdUU3a3l4ZkZvMXpGSEhWL3k4ZzRPdU12bUozcVBFZXVhRUJGeFE3RVBpUDMvbnhhMGxpOXFhMnR4Y2h5b2dVZDFIL1o5QTRCeGplVnpFc0ZBMkt1QVdHVGYrUGZyajR1OXRYUi9MNXd3VTVGS2tnelRKNVh0NXVkV1hSSDZ0VkpPK05HQmpHSGMxblB0TmtDalR4emExRm5KWUc5RmdHTWsweGpIWXprVE0wb0IwSWdlZjc3T2U4blBRRmEyNkVZcVFHaXM4YUVxVUJXUVA3THZLNTRpejhwOThjdGg2SklNRllwS2lHZ0ZpWmliRlEzclAzdERGd3NzRDJ1NTF2NktQM1M3TlRnVXBidGljbG5rQ21Rc3M5Zy9IMGVMbDF1RTg2VU12c08vUE93NUNjcjc5c0p6aWNQT3lUMkFYNG9GcTh0anY0TXBwSnRqb2pOdUIyeDNwRjRNS1AzWDJrbWZZR2hGdExsU2M1aFphRFNOd0hTdmZ6bEVHYXNLNnVFQ05nU2JoM3dNZGFFZnJTNkxJMjhiQkdHdndKVVF4bXVmeWh5VkRPUk1zcTlTMDEvbHpyK04yb1dLelBEK2NTOGNmTFpJV3RlYmV0VzhBTW93cGlSZ1FZdGpRNEZMTklBKzhHWGo0QmVwTXMrdTdWZFdaY25nZjlFVkxaQVBSMmlkL2tUVUwwdFdXNDBUd0cyWmNpRzNydmRkRzFzTi91SU9peVRNUE81U244RkNQSWpJZGhFZ3FmYkxxR2xvQUdGZU5TRW9GQjBSWXUwaFZtYlhjd1JES1VZaTBYVEw3YkRRdUI2TVJOU3ZkcWJ1ZjdscmVrMTJZQ1J5cGhxZldQRmtmS2ZPYjRWY3ZwYXY1VTByWVczSUhocVJyM25rUFg4YjAweHNTeEJEMVpHSlBLcEVmbHFod3dvTmxJRlhVOHhwWHdGSzJrU2hBTHZhZnZqTDdHNitpd3NlR0tIcW94VkxoNUNGNWRzU0I0RWFCc3kxVU5tNWRwUm1GS1BMdFBvZGJoamhMdGxid3IxNGt0eXI4Qzk2YnhXck1wTnNVazNIekM5Tk5ZUG1rQkk3OWpqQitBZ3JUUFJWMXIvSHNHcHp5TTN0K3dFdmQrSWppU05zZXNoTit6c2liWUF0N1FPenA0Tzhrd2NwK0dRSkVOd3dRdVU5bnhwRE9FMW9mWmlNbUY4a3Z1WExZbkNFbUNlTHI4SHlSdDZGT3JRVDhQYzV0UWI5akQ1MGVrRUlObHcvVnNmRmJSZXk1NWJmT0V2S1BYT1lYVlhxZkh0MFBoMDlWRldGYW9KT0ZTL0pTOTltK0ZTdklEbjBncHpvWGhJUnF3N0I3bkplNHJoVXdSLzIzNnBDbFVqa1dLZEtzMVpGdy8xVXZkTjN3ZHBRN3A5S2YrT1VzalhDMzgwMk9lZnBRb25VNzZ5c3lLVG1WNDE0YmNYek9IZ21HSFRKMVFrNkQ3ZGE4dGRHUlp5bGxxV0RzNlVNdnNPL1BPdzVDY3I3OXNKemljYWl4QWQzQ2V0VUF0c2tRVnhZSmh2Wk9UZXVKYUxhNDVaQlpnK2xYbStZYWNoQU8reUI2YkRmMG9aNXk0L0dmNDFpSGY4REJvUG0yMk5vMUdRalBBQ0k2Q2h5N05BK3QwbFdTRG1ZNlJiZGp6dmN1WElFcmdyMUQvUHVnRm1oT1ZrVTFBTXphd0YyZmh4OWlDUm5GSmpRZXFQeGdaUzkvWi90NEIzV1hQSUIwd0FxVHJ6bjZvUjNEWktORGEyajNuZFhCUjhZSlNVaU96NWNwNGRoQkd2OWEzT0o5YVcybi9yd0FnYzVtcUpueXJDekMzS09nMWRWSWwzekFhbW5ic0wxcE1lQ3JnVkhmbUY3STkvY2Z2TU9WY0tXVWtoTkVqbWtINzl6ek96NURtdktwYVNHZFFocXhjeWdqQnpuVjRueHNUTnNCWmwxSzBVVGsvd0FTOFh5eXZMU05aV2Mvc0luL3ZXU0FIVTl2Yk81SHhJZVJoL3BsZUJOKys5YWVyT2FkUWgydFRVc1lpcXIxYWNidGZabHM4WGhscDlrem5RR0dHTCtPUmdkcHc5dHB2MlRwK2UxMTIySG1nOGIxNVlZN0s3c3p4aGlJeUl1bTR5a0R2Vk03b1A3ZjJkQWJabitmTS9pSVRic09rMlA0dGJpdHhzdW9BZXJwNDF0ZmxZWUtDL2tXODd1L1k0aXZBUUZuNFJoN2FuTjdPL1RSeVRPNHY0SlZKVHMzOUJuZklNd1JGZGplWUFRZTlHUGJtZ1VaTGREUS9Gb2FrZXhYRkxKQ3NwMkRxN1ZhbXFhOFRUMER6RmR0ME5OZVd5N3NNTVhtbTVDUDROOUZ4NTIxYlAwbDdzTXp3WVJTZWhIVU1aLzBOSDlQbTN4Y2ZJZTJBWU5OQURMT25JaW03Wm1tS2hrdFJkdExTdmpHWUUxVVVlQksvbkRsMFF1cWRDaWovWUJaT1hzTWhPQ25zRVVjUjg4R3lsbTViUDRkOGI0aWI2eC9pREFQY3lUSDV4NzhoTnlhUmJhaC9ZdVM0ajA1Wm5KWXBJTzlnUHpUeWJiSS93SE5yNW9ES0NscDZGb0pWemZ6VWpVN1lCcGRabU04OWhOMUc4OW9hTEFFdml4dm9Oci85bjAwZk1RS0twTmgvbXRGQXF1ajhxZ3kxNTJtUnpnTnBHeTc2TFZqZXF3cTZqWFhUWGxYUlBKbEJTSTJCeEVTNUIwVmRhL3g3QnFjOGpON2ZzQkwzZmlIVmRUemc2QksrdEZkSXBPNzk0SFJyaWhvVEpCUmxHNzVVc2RxODVCYVdtUjRNV0l2a1hMd1ZqRDkxZTJHcEhEbjZ6eUNqb2o5eXk2ZEtZSHhnWnFCZXBWNUFZdi9tbzlpcWVraXRXUHRLU3Y1VTByWVczSUhocVJyM25rUFg4YjltTXRxMmxwQmtaRjUyWEViZHk5eFNBaWl5V0R1aEVhOEdITkQ4cTdvUERqUGEvMXpWK0VpTnpBamd4a0N3Rmo0aTFsSmNIbXJlWUxZREZNNkdSWFJCNFJoeWRwbS9RVDJWYkVzV2I5aCtsNzZMMjJndFk3ZDJDbElMM0NobDV3c3NyeTBqV1ZuUDdDSi83MWtnQjFQWVA3bU9NZHdWbHdQL0Eyem9aWUt5d0cybUhZNlNMZXByMVA1VitEME1GdUZMVm1kTmJ3SjZ3Yjd0WmhrTEVZNy9MSzh0STFsWnord2lmKzlaSUFkVDJaNThGRFJ4Vjd1WlpWVzY5VFY4QUFJdjdKSTZJWWZjUU1uSjZpL3Bqa1lpR2RvV2MvYVdnQVBldWNrUWtVK2hVazhRT0xYeE1nODNkNU5qQTJ0Vmh1OUpxYjhhKzNsMWN5ZzZ1VzA0bVpvRUJiSXBiY053eU1IamozMG1GdDdKd1dOWGpVcnhVbkE1NXFsb0k4Z2RPUWNzcnkwaldWblA3Q0ovNzFrZ0IxUFp2bHF4SmVUVlpKNUJ2QlB3OEtSUXB3Rml0SFNoK0VLSkdDTW9VdUZJMjFCcEJaWnJ1TW5jRW1LbldtVytPTkIzMVY3aFlpVWFXNUpuVXFZOWh6OENRb3ozeFRvVlhHeDJ5QzMwcWFlRlhLb2RXMTRLSFJSRjlJcHUrZ0dDb0xBa3BwUGNFWVlCS0FDc0FQN0EzWWdrVVJxdFVnRmhrMDJUUXNsZE8yVG9uSU1OZjlQS1Q3REdvby9KVHJybGp4b2VtSnhLTEhSZEs2SmlsZlA4b1NRV2tvTEp2N3RyQVpmeVpldmdkKzg1RS9tdUd6OGJjMEt4MTlNaHU2UFBuOVNxa0R2MXRndElsMFprYW00ZGIzMUhzTGZtNHZjS0p3cW5rZkhIL2xDdjU3ZlovZTdEVFdzNVRHeU5KaVBLZmw5RWFmT2dFc0RHMnIxQTcyUlVnWWpVbDlrWVZpVUgvd09mQ1VJSlFqNW5SRmpOWkp2bkkxRE5aVnpJa2R6bXJ3SE9takVtVHY3Q1NnVkVpM1NNbUhZRjZzK1VNaWgzdW82Z1BiUmhPZnMwVWp6eDJJamk0Q1dkVlBBcU9NYVpjdHhsUzNUdmp2bGFXMFRJM3lJR2JFOVJySUhJaDFqcmEzQXBZejk3TWcvREhYRGMyT2FuRDFWakVkc3lhSlpPc0tRUHRzaWo1cGp0WVlRV01WMlRzN0FvWUQ5d0tRQkRqUXcvSnJ4blFOUStMTmM4WkhMMVd2clpEWXNtQ2p3VEdIWndMckNDRUU4SnNGYjEvajhFc1pUMWZJT1hjcTdzYjZVMzNwUGcwNDk2OS9wTzlKTUZwNmRNcU1UTVFIbzkzWDJPbHdwOVRvcmlXcUJicXVGZC84M1lUa2YraDRXRW04SldDbk9GTnlzWWtqNEtKbUNhZEE3T1JNbWlTeUt6ZE9rVlNkbVRRbU0xV2cwN205akdMcHE0ZGFlWE5ObGRSUW9saThudG1wWDN5NW9Zd3FwanBQV2ExRE9IUGx3WXlUNHg3QSs1Q3VYV2d5aDIwcFg2RVJUakxuY0ZXZ0FjS05Camc3NysxYndkVkQxTTlCdVpEMlladjhxZFdibXNodkdzbFErTnVNcjZEbUNUTkM4NWZpMHVMRFhsdzZMT0FRUGhNeFQ2NWkwcmhsVEpGRUptSEdDeU5WSi9kUFVJbjArbjVpYzEwQ2RFeWl2anlNTWxoTkY0VlRqOUpCZ0Z1MVVKUVgrM3Y0UjhITVZ0VmR1cUlwUldNbHhXZnIreEJ4UEJiRlZZRGltbHVDTzBBSkdranJYVlRQTzl5NWNnU3VDdlVQOCs2QVdhRTVRaXVIbllaekNUSzN3bGd1WmgyTlJacHFMUkVlWlZnV2hLMXZBNHVsREFBOGNFbzE5RzY3WUxtVFFKb3pwWTNYY3NyeTBqV1ZuUDdDSi83MWtnQjFQWXhjZFNTT2ZBTjJBOEE0cExMd1ZjMFlUdWZldXYreDZrLzVRNTRVOGdIVU1zcnkwaldWblA3Q0ovNzFrZ0IxUGJSSmtEajJTVUo0aTNObHZ4Rm5FWi9HS1ZRWDNvcXJwWm0xZU5WeVB0b0lKYVVwT3BZU3pncjEyTGJIRlI1azkvTEs4dEkxbFp6K3dpZis5WklBZFQyZzJCa09rYVFJQWV4ZFNBU0c5UE5Sa3hUUUpDc0pPN2VpcWRGSHh1cmFNdWtIKzNWQ3JhMjIzWWhmZ04vTTQrSUVnTUg2QnlJL2x6eUNvSHM4OGVzK0ZQVk5TOU5IM3BwYWdCdGEwUW1hUktkdXBJeUx4MlZ3dzc5bG9FUUI2UUp5eXZMU05aV2Mvc0luL3ZXU0FIVTlwS24zc2NJTHNZb3R5bXpKUVVsV1JqOE91YUdvb1lHOVNRQWhFRkNvdVFEeXl2TFNOWldjL3NJbi92V1NBSFU5Z1d0dVArR2lDTFZhRnR3MTVoMFBLTE5Nc2NBVTQrUlR3R1VSYnlzVlBhUkNUNGFSZXZ0azdxZnJJRzBQcHZTM2NzcnkwaldWblA3Q0ovNzFrZ0IxUFpjQWhjUzR5eWhEYjFCL3JTcTJWTDMxR0ovY1h1YXlEN0xmRjlpcWhteG9Yd2N0dlVyb3laZ20vSFIrZ0p6MDB1ZkgwNGsydGtEVjFEZXhBWHIvNjlKV0xobGZwa3pIOXo5UCs4MUlwQkVIcERuclhyeDlDd0hBZnM2elVnTFNscVJueEdxZ1prSjVVSUYzRVBqVFVKQ2FBR2ZyNlpXbGpINmdlSFpkSTlOSkV6QzZMZzQ3RDh0L3J2SC9jLzlLN0xMSzh0STFsWnord2lmKzlaSUFkVDJiNWFzU1hrMVdTZVFid1Q4UENrVUtTZ3FJZVU4RFpFUWttZTNGWGVGVEw3MURnUTZKQklMTWhFSVY3cHlrQzdLMmhOMEFVQVhVNWNJQklqOXZadEdwODZVTXZzTy9QT3c1Q2NyNzlzSnppZTdmOTdrS3BETnpDazZjQlgxR2tCMGkzcEFOc2o4c2NzSm9IaFQ2MFNpNGM2VU12c08vUE93NUNjcjc5c0p6aWRtaTBVL3FJa3pSb0lXUlEwZ09UeEUxeVJXMWU5Z1VKWThGQ3ZlaGxkMmtETkREbHMvVE1pVTY2UDlCZXNQMWtQNkVBdGZBbFB4cHk3TG9VcXJCeTU5MmNZajdJa1pMbG1FdjlsaWdGWUJ6NTl3WHdJWGdQZG81NGdJTDZSU242YTE4TVdUQytEUUo4ZWtrcllKR1g2bjlqS041bklPRjN6ekcxT0ZBbW5lV1BVcENiT0lmUkxGWW5wbEdZaHFteUNqQ25Lc3luc1I3elhEbTdpeFVrWHdsdVdoVlNISURTRW00S20yampXZWNwazVHWGFIbzhEaDZGSzFCMS9uUHN4anRYUlZHMmNaOXY5QXliMG40aTJMeG9MbU5sUUo0eDRYdDNsNkl2MWNOL1F4cXhrNXdxSFZvKzV2blFJNHFGVlA2VFVob3BrV1VUY0JxbHhIOXpudFVkczE1dUxvYnlmSjFmcXMva0V2RnRJKzZpS1RTY1pyQWNvT1hVT2Q4MmY2N3cvZ3M2aWw4N3c2VENPOWgxMkdNVTRvMXBFR082SXFhd2MwYU9HWTF3S2xHSXh6ZjZFOHlmNk45RWFIUEFrRktVR3F2YitSMUNIMExhdlZuNWxoUXJpdFpwTEFYZytZcGYyaldzcGsxbHNYemVFMGl4ZVk4UmtidUtGdUdhelJObzlDRHQ2VVpVejUxK2JmQlVhaUVyTEhaMWoxcnFXaUExVmt3bWIyTGJLN2cxK3V6OFJTK2Y1L21vTDNEdVJrZHBaYkFyYXBOTnl3ZDlZQms2Qnk2aEJwWUJBQU9pa0l4bkVIM3JVQy8xM1NVeUlKelhSbnBXWnJzL3MzL2x3OFNNeUxvV0RVQkdpNHk0bVl2T21sUWE5RGxsNlEwQi95eUhXbTVaTm82V29nYkRJLzhkOWR2aG5FcjJUSmVSdzFXbm9GSm1hSy8zbmQ2WUhta2lqOUgzbm5OVldEdUJZbUZaam93b0FwRVk4VjU4S2wycWRNVFhiMlozWU1XVlhSVEVmRFgwZDRLNVdnNFV0M1o2NFEySmVaWmV3aTNNeThTRmZxSGxGVHRteVM5VU01N3lESWh5Z05lTC84aHBmWklzM2tWS2x6NVZzVFhwRGFaNmN5TS9CMFU1cVRleVBKaXNQaGs2cDlPd2ppTnhpaDdLUVVqTnVKUEJMMHBoSTFDbVV0WWpXek1pbE1RVGRrQWFYUlBuWUxVUkRiWWJjMlV2RDBJSzI2Ull4YUhJTDBlRlRGMk5FcE9rbG5sOEZDTklabkY1WC90RHI4akNPaTJ5RkpBMnVLa2hXMW5taEl2OEx3S1pWbnA1OEFZSXNEQTh4Z3Z4TWEwQ0VHL25GZ2xxRGxOV2dzWWhsRmpGZDdwUEhvS1k5akg2WnhNNzRjZFlxYlRSK3RWdDdnNTNIVnJ3ZkxpTUw4cnVocWRGTUVOOGlkYTFRZWU4WGY2cGdsbzFkS2NZYnc2Qm1uOGVRUHN1RHQvay90OS83b1R1WXYzRmdwdXowbHRhRUZNWldwR3Bzd29hVXN2dDIrekh5Um5tM2kvODI4Lzc0S0UzQlBWcXhpUWY3NFhJMG5tbVlkU0xCNGJKL1hOWUc3WGg3MCtiZkZ4OGg3WUJnMDBBTXM2Y2lLWG1BMENxZUtFeGhmVnY1cEpLMUEyVzZlR0ZhTGtVQ2h4RnJaemo0RktMU3Q1S3Jpa0c1RGh6ZnNtbWdkSmhYR0pubENwR1N0b0JIOCt5aERVMVpjSjNUSDkvMEE1T0hZMlQxb3BvTlBsc2VzaWdlbTZ2bzBuM1Fzc2RacExscWsyRTlGQ1dDVG9Oa1NvY0tuQW9nMTAzWmVkUTNOOStINUpqMSs4S1htZDJGazhMVkczZjNtNitzQVVJenAxVk9LOXN0TDJVcHZ4cHNIYnFNQ3haVmR1ZXdqUCtML285YXVEYWdhNHZsZWFLLzhwL01EL1R6SmltWFEvbHdUbG53bWlWU24yWDZPSzkwUmZFcWprQy9ySVZLcW5hemRSSTFuV1labmlYSmU2TXZMSzh0STFsWnord2lmKzlaSUFkVDJ1SHF2NnVIT1pCODlwb0ROeW5KeHlzc3J5MGpXVm5QN0NKLzcxa2dCMVBZMjhMQ1lUUVM0eVJYdjB6VkdKVTFWeXl2TFNOWldjL3NJbi92V1NBSFU5clBSUHhJa1VBT09GZFBqYUEzUitwTGl0QWNUYVcwOWdCT1RCSEFkeGwzanNEMWN4UCtrYThFRnEwVy9ObEtYejRsVXA5bCtqaXZkRVh4S281QXY2eUcrTnZEdktmdTNhZHhHdERDelBNcmV3RXFabDZOQllUUi9nN1NSUzVEVDNJeE1jSlBkTCtlYlJaQ3p4UWlLMnNzUFRZOTRsTGZ0bzJxcFp6RWh4Z1IxNFhrZmRFekZ1bitPdmhONEVwdkpWaDZyRnE1eC9zdXJ5b2xjL0tnVElVRlp3K29oVE9FWDFDZGwyNDRaS1h2YXl5dkxTTlpXYy9zSW4vdldTQUhVOWwvSC9heUhuVWpDcEFTWG5lUjhhNlRhRjJRTmRrdFl6bE16bnl4NjkyZlVPODdjajhyNml5Z2JwbEpIdThScEg4c3J5MGpXVm5QN0NKLzcxa2dCMVBhV0s3b1ZPYURJMEFkc3A4cjlCRUEzU3h6eUx3cG8zcEVTeDRLTmwwbzgzZk9GdzUyeTcvdk8vczlaSTA3VnBBbEd1eUk2STBrOUpxbUpJVExobi9FVXFDVzFvYU10SzdFbnRTdmlNMjMySlMydmdiOXI0T2Fod1IwNFdwZTM1RlZVZXZlc0kxemxKREdNbCtVRVFtSmRmQ0RhUFhvbWxkTVIydTJMYVRoOEZSS0tNMUk5RkJmNW5JaVZOZkZkOHZud1VDeWthK1l3SDhTTmNKQ3dOQWt2eXl2TFNOWldjL3NJbi92V1NBSFU5aUhxZmpVbU1tR2s1bzhrQlhudjZkV25MNElDMWRGY1RseE92VjhHYlN5L3l5dkxTTlpXYy9zSW4vdldTQUhVOWdSQ3dhU1dPU3RJTUlEazFsT2hwejNXQ2xuZ2UvQmY0MytyZWN0cmNrWWFCTGwxV1Q3UVVsWDVxNkVHRjNpMnRpSGYxWisvanc4Y0c3YXZTTFpCMUxneGtaNG1rbjQrMndEbms3Y2dWYzh1R0t4ZlZjQmxHdmsrMHd2UWNSVzJsOG1PRTNraE44TTFDNGMwUDl2cGpPQnNDb2E5RVhnN3NaanZZQ21vSUx3bTJrRmFDSEk1c3ZKbE9VS29PdExmZGNzcnkwaldWblA3Q0ovNzFrZ0IxUFpEbUtJSUxwZU9NeUdldFM2NkJZRnlobmFGblAybG9BRDNybkpFSkZQb1ZJL0p4bGtvM3hxcHovSnQwTzdISmZKWi91MzVvMTVPWmpkQ0o5dXh4TUI1M3RCTHlWWHEyQWZWcFh6ai9GQWZZcC93eSt3bUk5alFEaldMSllyWXlJbkxLOHRJMWxaeit3aWYrOVpJQWRUMmVJS0FFWEFZdXo3bTlpdlUxNDVnTUtISG53MDYxaklRN3FXc0Q2a0YwaFM4TFVNNjNrcmR3dkpGdWRaQXhGZld5eXZMU05aV2Mvc0luL3ZXU0FIVTlsNVhETG5wTDVJdHBpNkRkMWw1bkJVSGhVK054am5Hb29OTURidklJSFNuRjkwdDRrOVBGSkJHNUp4eEhDRzkwSHBMZkUxQTVjdUwvVkhqejE0RFJObW9rNnFWQ1dYdURxeENGMnovTlV2TjJaTUFZZWs5eFY0eU1MejF1NnBTVnB6UURoQzlrTlNDZXZQelJaajNoT3lhbTVxZCtLZWdra0VTT0c4a1FRZXByMmhBbGswOGVYOS9oc3pnUGdvRzhaVjdOYStnK0xDUjJJZXZ1OGQ1RDBLZzJoalVCeXd5Z1VFRnEzWmV4VzdSNHNqMzFpc0VFSFdtaWhRUEJ1NXBEQ3ZTcVJLVkZZOWlBOTQ5V09jRTF5RzlhNjFLN01zTEtBcUtvRkR6R3JBNEtEZFFvcU9XOVptWE9XM0R6ZlF6Yi9IVEpCZ0RsTk5JeG9GMHhuSEFtd01ZQXNOTlhUV1cxWjZzLzcvaUpkZmFsWHMxcjZENHNKSFloNis3eDNrUFFyUXBqQlNqdWtrTTRXcC9XaEZ5M3dkaUkzeko3eTF0THo3eVo2ZmVTc2JKS0YxSHRpK1p3WVBtdWUzN3ZzZlBxNEF6Ry9oNWMrU2RhM0VQU1hBNjBYVGNQTzJXNGZ2RUJNcjJrVkpEY0xONHVhM0NnZ0tNMmZiSTM4b0hSZ21EL2Rzam5SSWZ3c0hMaFdOalJGR2c3aUJUZWdvQk00YklPcVZqQ0dUbUVuZEdmK1hJbncrczdwMDVKSEtRamxna1VHTWtwUENOZlFiUHc4QmhRZFR4MGsrMjMzNXhEK3FHOUVJRSthUWNFbm1qTjB1ZTRhejNOY1pCeWVCVzY1MlJSTXpDZ2FzZTNQU0pMUjZZTjFQVmNmL2tRdUY4eW1tLzRWSEVVVmdaS2Flb1k1MExYUjBzOExldTQxTk9MaTIzT1hKbmE1Nk1oSHRqSGhUM1hydTQwd3Z1OVNjRTdLdXV6cnBUT0FkUGVlYVpROG9ENnVqclVZYjlreE5ScUNBYW1nOGl1a1dEUVlSS2lRQ2Z6cjE0SGlKZnhSU01KcFNkUkJHYzlrMUcxY2p5WnlCL01rUGd5bVRmQWJmQmV3Z2V3SlorejQ0dHVudWdwWTZ3bHRWTmZiWS9iRUhuNzhNd0hLeFVNQjZVamlsaDhwWk96NnFrcUoxOG9EQVRmR2JPS0V5NThtZWtQZVRlR2JZYlR6WHFZU1JHVzNFSktSS0xEelpjV2FBMFlQdHNwckozMzJCbWFLcGJEY1BiYTIrd2FoWGJieTMvb0ZHMFFwWnhybG9paDcvUGVyYkpLQklVWVhic0NXLzJScE03b3pVTmw5RXJ4Vk1NZEtGbUM1S0s0WmNMUHpQWmxIRWRIdDUvZGVkSm5Uenh2MGpsdWlnL084dlRVaUw2UUJxR3l5dkxTTlpXYy9zSW4vdldTQUhVOXFERGVTRXhzMjN0WXBXYzU0YnZqTHYxNDhJSkR4cG1iREpPa2RKTkk3NUg2dGo5RHk3V0svUWYydEVkNHZDTWpXamtkU2pjTmRXckwxV0RrVGZsNGxjNzZHeTVheHI2byttUEdsZ0lvNWdId3prVHJpbzRqQVJINlp3VFhwUmxIM2dtL1JPTTI3TVBxVHZDOEFiZmd6YmE1Z3pWd3I0VjYxTk96YVFLMU03cHZPdDNQSVRZb0Z2bUNmZGhiN1NRaWpmZGw5T3hOY29Odk1aWVdnKzF6TG5MSzh0STFsWnord2lmKzlaSUFkVDJ3RXJVSmtrQUxOSDVQWXRpSFBHQThtYzE2YUc4cW00bldWUlJFZjQrYUpleERBdkgzUHlVeFdEMUVGc0I3OTV2eXl2TFNOWldjL3NJbi92V1NBSFU5dkg3L3ZTWDFNVnRwNWpNMG1xSWRLd08xaGZ6VEZDWFp4ZG5aUW5lKzFiR3l5dkxTTlpXYy9zSW4vdldTQUhVOWo4blJtZHlQOS9hQ3ZsbWpXTnEvR3F4Z0xQRnpBaHBROUE1M1JEVWtBbXJHK1V3aHNBTklZWWVNMlZNRE5wa01Nc3J5MGpXVm5QN0NKLzcxa2dCMVBZSTRqY1lvZXlrRkl6YmlUd1M5S1lTWE5XR1M2M1FFc2laM20xazNGQXpOc3NyeTBqV1ZuUDdDSi83MWtnQjFQYVdMTVZhT1ZHNC9lMVZQVFNBelk5SDg3T0NKWGV4K2lBT29XK0tBbnJpQjNKbmE1Nk1oSHRqSGhUM1hydTQwd3RtK0NFV1h1b1k4WEVKRmR2Y0ZjSDd5eXZMU05aV2Mvc0luL3ZXU0FIVTlsTE9MZnJPUU1wQ3hRbERnMDJZSkFUTEs4dEkxbFp6K3dpZis5WklBZFQyazZndnRjMXo1YUltQnFGZ25iUTBOVEU5R0xmYk9DU0VoZCtycFk2a3l3L0xLOHRJMWxaeit3aWYrOVpJQWRUMkNWdjNvWXRNMHpNQVMxeDRYdHkrenNlYkdWNHVGbW9jUzBuTzM0ZXc4TFBMSzh0STFsWnord2lmKzlaSUFkVDJ1TEo5NktYUjM2eHl5cG1HaXBGekZPU1A1SUdDRTJsS3FzSXo2V0F2dHVUTEs4dEkxbFp6K3dpZis5WklBZFQyMXgvd0hwellicW5UQjZNQk9uT29Xa0U4ZzlXK3BaWGt5N0ZaSTNKakh5bkxLOHRJMWxaeit3aWYrOVpJQWRUMjAvM2F3b0QxSXI3ODBleXAvWGNJNjlsRVNGeDE3SFVvd3R6NkRnajZOekhMSzh0STFsWnord2lmKzlaSUFkVDJmb2tQRjZ1NmEwZWdYU0N0bExEd2N4T09jY1llcjlkZzM0V21pOWlINVY0N28yS1E2Yk5pQ08wMnBONTFHZm9PeXl2TFNOWldjL3NJbi92V1NBSFU5dmhDWWdhWCt6SjVZUGlGdS9nbjEwdzIrN2M5cG16a1ZZbW9FazBuR3FpYnl5dkxTTlpXYy9zSW4vdldTQUhVOWhQMVNrbUk1YllCbDdSR25KK1c3U2JMSzh0STFsWnord2lmKzlaSUFkVDJsaXpGV2psUnVQM3RWVDAwZ00yUFIvT3pnaVYzc2ZvZ0RxRnZpZ0o2NGdkeVoydWVqSVI3WXg0VTkxNjd1Tk1MWnZnaEZsN3FHUEZ4Q1JYYjNCWEIrd2srR2tYcjdaTzZuNnlCdEQ2YjB0M0xLOHRJMWxaeit3aWYrOVpJQWRUMmVJS0FFWEFZdXo3bTlpdlUxNDVnTUtISG53MDYxaklRN3FXc0Q2a0YwaFFlQUUvZUNyR1ViRjJiVmhOL2U4ZFRXUjh0bzd5UjR1NWhReXZVQ2NnYjhWTTlCdVpEMlladjhxZFdibXNodkdzVzIxT245WGcycDRzRHRtZEZ6SXViVzFWMjZvaWxGWXlYRlordjdFSEU4T0JFYlRhb0V3Y3ZVU0xyOFAyVXlVNGh4cGN3ZkdTM3Ftc2N1YlBNbkh1cXUrS3gxZkVpVEVrVlR6NnN6clZGZE1zcnkwaldWblA3Q0ovNzFrZ0IxUFkzR0hrM3ZUcWY3dk56OGdFc1BkY0M1clNWKzVMaWJETWtBcnRxcmVudnBPbC9Tcld3QnpkZ1ZzK3lnTStUNlRjMStnS2owRC82NG9mNWhxZkVPRHdFb2hNamswL0krUktkaTA4OURnb01iOHNyeTBqV1ZuUDdDSi83MWtnQjFQWWtZMnVSM2NHR2VORXF4Z0hmaWVpV0NmdDhZaG5rclZBRlJjN3dab2phRnUydFpJSnBPVFBqdTA2UWdVT0VFVFZSVjlTK3EwSDZsZmpuQlRuWlZ0UTl2UDNzY0ZIYmpXUmY4RlJKREtJVlEzaTJpa1FwUmRPN0l4dGs5L2ptaFNFZnFlRU9sSlN1VWpGK1Q2MERmSy9YTVdwYjZBVjIzZXBvK2haSlVkM21jMW5LMGVEeDJFZHZJczRuWXR0WlJmN0xLOHRJMWxaeit3aWYrOVpJQWRUMlcwTmlFanVCZEFoNDVJT2cvZ2lPUXBxYm1wMzRwNkNTUVJJNGJ5UkJCNm5PbERMN0R2enpzT1FuSysvYkNjNG5kMXZubG50VU52ZFVDVnRaTGVjanBCUkpkaTdLZmtyS1oyTlhTQzdieG1CY2JkQ0tTMS9TWFphRXoydzhxUDdyWU9EMTZFUFBVUVphWnA1VmVoK0dWTS96Ry9qZFRBUktvOHdkZHJtcW5IQmJWWGJxaUtVVmpKY1ZuNi9zUWNUd1FQUGI0MHErZ3c5aEFlSG5FZS82djJlU0lwQXN5dVc0WlJMVi9IM0h0N3o1R2lEa0FKb1EzUFlZMzdkSzJTSkRVZHMxNXVMb2J5ZkoxZnFzL2tFdkZvUTVtUU1UWUlwajhkVHNYUndrWmRMQmZOcGlGazhNOVE2TU5yeHBJVmVxVW9VUmFKWDJmdHBJMndoa09ETGhFeU03aDloYit6eU1lZWpZNVlIc3psR1J0QllZZ3JWM2JCWFN3L1pMZXJWeEk1U3hkZndVRENvc3hKaGcvKytFU3pCMEhOcHlnS0FaY3BvUW0veWl1VDl1WEoycnNqM3hFeTFiZ3pGelFuYnl5eXZMU05aV2Mvc0luL3ZXU0FIVTlwNmlrRVkrU3BIOURDMmUreUNtSjF6YTZXa3VndXM1N1h5bXVuOWxPUlcrUFBUQi9nc3lvdS9wbHp3aFExNlZMTXNyeTBqV1ZuUDdDSi83MWtnQjFQYVB6bVJER1hMamxtL1RVYnMyS2F2MUI2ck01WmljdXN4S1hXS3JWRDlPL1FHNEtPT3crdW1FYXRIVGhxZnY5eFBMMDk4N3BCV0U4YmlKNnN3QklvOXU5ZU9QZDRMUG5CeHVCaFoyZXUxSVhBMHErTG91RUxJeUVCTGlubGxzRFBNMGtINW4wVTU3OThWMTJCSVRGcWhXRFFtczVjOUhETnBXb0t1WVM2SkNtTGxJRWhGdHZ4WnZ2cTE0Tno2dG5xRm9ZZHNLZ3owYWpGaWcrN0ZpbWFVOXJjU1VFR2E1RjBxSWhwNGtNTXFnZnQzcVhHMCtXZWV6ZlFaOHJ1b0dQV0lSajhiOGVuR2RnUFFGMWhNd05PbGhrblpjUFBwWmo0MVZVNlQrR3psTnljc3J5MGpXVm5QN0NKLzcxa2dCMVBiK1BlMmFSZmxmM3dPdDZhNW4rNE1oWW9obk1YN09qSVJPVjVFenM0QVVDOHNyeTBqV1ZuUDdDSi83MWtnQjFQYWJCNDk3alVkTWpveUVtVUJWMzRYVjF5UlcxZTlnVUpZOEZDdmVobGQya01zcnkwaldWblA3Q0ovNzFrZ0IxUFo5NnZlRmY1bzA2SGxGaEZrRWJqVk5ydEd2a1Z2VnZObGJVbElEaStFaitPS0ZXUVYyS0h3N3hINzRFdkxKZ2lSOTNpbGNFWExBNDVOWDFmR016Zmc1S1ZMQXFUZnFpaVNqRTUzblNGUU5aaE1VaGE4dlFFUjVJV1dBQXdUZVd1dnh3MEo5Z1ovelNROVB5VzJMbVhLK3QzSFR4SkNuSzNjenVNYUFMVlY5K0l2cTI5K284MmNxRkgrODlib29YcmVLK2dwMmVPVnA2cFJlNklMMldJbll6cFF5K3c3ODg3RGtKeXZ2MnduT0oxRkkvNlp2TXdxK2RVRXREZWJXaEVuVysrRjIzYTFQemZ3L21DS1h3bDVQeXl2TFNOWldjL3NJbi92V1NBSFU5bm9HZHpWdGRhWTBFUGJiRndIbGx0VVV4VTFJeksvNWJVWVFqTjc0QlRQdFd2WkJYK1Z3OVlFTkZLdGwxMUJrenJMSEViNGJGSVlCQ3FIVGlIQUUyYWlnSEo4bW11NW5TR1R2Q1RkTzJhUTJQM1NYRFh2NkJRY1F6cTQ2aFlPdTFRQTEvTkpRTkRwb0hEMHdOU2dKclRwQ0hrbjgwYUxqRGkvL0pMaWlXVjFqckdQRXdycUlsaEsxNmNXYnZYSktiTXNyeTBqV1ZuUDdDSi83MWtnQjFQYnBUZjhCU0JIT3NFQmRBZWdibU5QRU4xR0pGcU5qL0I4VkNMUVdUR1VRRkVPQjJsb0FreElrMTUzYjhNaU5CZ1hMSzh0STFsWnord2lmKzlaSUFkVDJBOGZrWWdTeDZaMnlPbnFycVl4WngrWmpFcFNsMnFWRk1hTkV3SDMwV0ZqTEs4dEkxbFp6K3dpZis5WklBZFQyaVY3eklOMGVOemp3OXQxb3JIWmlVQXAvVC9PdzNGWEFkRkpBSzBMTG5ZaS9VZzhNc0lwZE1qWDl3OVdxazZxVnl5dkxTTlpXYy9zSW4vdldTQUhVOXBqakFmVi83L3BlMU1PSzFKQnVxWkc0VDh1RlpqaVF5NnI1MGVDVytTWS9GZmI5UjJvQmJqdFNpRzFEaUJnSFQzQVd5QVBkQXc1Yy92eUpKN0hFNmFuaFJXVFNCTXBvRXZ1a1l0Y2ZpVWgveXl2TFNOWldjL3NJbi92V1NBSFU5b0RXdWVsQXFmak03ZkNKZk9hc3dRZ2tscFdVVXlqQXN3b0R3Nk5YSDdpMFBsek5xb1pHU0R3VEtQQXVtelloSDBXU2NnZWpHRnRhYVgyV3NWTU1oRmVHajlQSG9qUXpoUFMvaHdGMSsraWxvZ2FZNWt4ZHJMRFVkVHU0K01FemxZejdQS3lROEtqeSt6d21jeVYzUzhkRSttY2FqREJRRC9GZmI4dC9oc3ZuenBReSt3Nzg4N0RrSnl2djJ3bk9KOHNyeTBqV1ZuUDdDSi83MWtnQjFQWWlES2ExazNDRm03VXNGalowV21wenpwUXkrdzc4ODdEa0p5dnYyd25PSjhzcnkwaldWblA3Q0ovNzFrZ0IxUFliMm51QkF6NUI3SHFGelRPK2NUWnltcHVhbmZpbm9KSkJFamh2SkVFSHFjNlVNdnNPL1BPdzVDY3I3OXNKemllN3Z6bE5pS2RrbU1BenZiWlA5OVVKeXl2TFNOWldjL3NJbi92V1NBSFU5bytuZmJrTzFZOXRQRDE5aFc3Y0F4dmxHaWp1dzNCYVAxSzN2b2hvN0E1Z0dxUHdkckJQZTdvODJ2NlVidmpzU3d5T0JUcGp6SzRlN3piOU1aY1NQaUd6VmNBby9LdUY2ZTZDcWczZmpUZjFmWXpYcXplTS9YN0FqQ0VjVVdLdGljc3J5MGpXVm5QN0NKLzcxa2dCMVBaYkZWWURpbWx1Q08wQUpHa2pyWFZUUE85eTVjZ1N1Q3ZVUDgrNkFXYUU1ZC9nMmFhZXBRNHFvK1dRdUJvb0FwT3g4N3dJYzZhM09BTmVwbXhKSGJ3b3l5dkxTTlpXYy9zSW4vdldTQUhVOXN0ckVYam9iWHo4ZjJHWlVVQXJxOTRUVU5FSUtMUXZ1REFsRVJEUFBVWHVjb1VmRFdYdnFBU0RHSjc0QXgwRUcrRVhNd0RxNGp4cnZXTUlUWjY2bVVWQmVIQlVMYW5nNnJ5Ky9kUlY1TjNFeXl2TFNOWldjL3NJbi92V1NBSFU5dGhHRVJ2ZlBGTHdOUkRWWmF6UTNZNHhWWENwdjl1eG01eXdOcVgrandtd3l5dkxTTlpXYy9zSW4vdldTQUhVOW56TW9CNXpSc3RmcU1US3U4UjJvbEhNSWNFR2VWTi9qTGtJY3A1ZGF0ZWxkdkdoS3JMSWp5YTExeUJwMkxNdHpQOWFJN1FodGpwUFhJUUwzWFBXNys2elJFb2toUHZkUmNKSTJUWGxIQkVab2huWm1HbWlXQzdVNG8wdWtreVBBeEVhT05uSVZ3bEQ5RHBvbHUvUXVrU01OMjNrbW1sYmdTbStJeW9mNmwxRjk0cDQ2VXMvZytpdVdIQTJzZEh1RUE3bkoydnVsaUZ4WTFPMmpmWGxLdzZXeWtTZnlhRWF1TzMvWEluWmJoOWc4OUhjaWU4eUZpQ2tqcE5KUWpMUTc1NEE1TVZIUXJBOExKbzRjZEZ5VVRwenRScVpWZnhodEM2Y3llSTRXQVlmL0VoY01INlZ0K2VLeUt2b3cyYUljN2FFcDhuYWNscHEzQ21lSmVwRWk3ajF6UitWRkU2OVF5YlVzZGI1T2dsQ3p6clZQWnJKaHY4dDQ1SmFJTHFJbHpYWHZoUmp4THFkRnFZRzYwcWszcEVQeS8rTC9VRElydlFLaTVENGdvWEZQTzl5NWNnU3VDdlVQOCs2QVdhRTVZUkdqemxFOGV1OUV6bkdKUW9NSGQ3NFMzbFZ4VStXUVMwZGdJRjBvZHJKUE85eTVjZ1N1Q3ZVUDgrNkFXYUU1VDQrUGRTQWdCTzJjSGZ1ZGw2S3lLSlI2d1B3UEZwOHBndmIydmFnVWMwVmxhM0F0NEtqQjlISmlhbkJSb216Y1RDSUJ4U1VEREVwVjF0aHBJTW1vVEZjSmk5R2t1RGZZVDJQbkx0Q3dpcERDOUE1d1MxY2hCV29FMGYyZ3hrcmRxZksydkcvL2JabzNVSkVhNnhBSW02RWUrZ1VUTmp1VkJBV0VyUFNRQnNIbk81MjlmRVR6YUdvcmNoYmJkRHpWbUdXeEJtU0JtODdqVnVoeG9jWUdER2M3bmIxOFJQTm9haXR5RnR0MFBOV2tSSVgrQlRKWU5GKzVkVjFVeEtMbTRXUWJkbVhZWWg4MlVQN05ON3BTUURPbERMN0R2enpzT1FuSysvYkNjNG51ckhVMHhEZGV1Vm1xNS9XRFQxdWhEenZjdVhJRXJncjFEL1B1Z0ZtaE9XRzk1U1dXRk9LdktueXJwSlVLVVBtN0djRzVRby9wMFB5SkFOaEovaGNLU2xabTlLUVdtKzBMVWhER1Z6V1Fac3k5UkM5SGZna3ZSVDZtbHZITHVLWVZGYXE5SGVtUnR2V2VsVmFDOXpoQVpvZVVLbmE1cDJJQXdjdHloNElSblVuMTlRUnhJZGErVHgrbktmRDRHUmdCWnhLUGFtQjZpcE02L05ub05MbGJ5cklFQkgvSHFYTUtCL0FLUlZ6bHhXbnlyQkZNM2tWQzdSemdZN3RTVkJxY0VSTUdzZ1JURUpnOHJUTk44U0ZXSCtRdTFYc0xjMDVUYTNXQ2JucFZaMXh6cWc1RktNc0IzNzdmK0xNOW9tQm9sRDBKMnBRQVRORjZQWWIvSG9DSU9PNmY0V2FwT2pZQ3d5UnF2Z1dkcjV2elcyMVNuVGREM2hZMitvU2pUb1dqL0RNYVNGeFZjWjdNb1dsMm9uOEd0R1F6R3REQUo1K1QzaGdNY2NvYzc4eFZTazRkc1lpZ3dla0cwU1hKWkk2TTN2TnJESVo4ci9aVStlV1BwdmFnZXV3aDVsSkFHejdlMmFTMlFrblZvM2ZyNzNqd2c4TlAxSXNPQjE5LytpYTA1b0pRL0FQdDdFMmFObHYwenpXNjNsQzFtQ0lia2xSYW1KcVpxYXljWUZvcUErNks2eTJheXhCdWhmdzYyMG9wY0UyeDE2OFFORE5OTGUrcVhqTWFEYW16Ym9tUE9nK2tuUEVKRW9adHVGam1Qem1yZ2pOR0NOdDNYK0ErTUdCS1Q3REZWRXU2bXpHYVFpQ2F1aDNRM0VKK1pnUG40TjJJNzZtSkZORXliWVJHampaeUZjSlEvUTZhSmJ2MExwRTR1SDlLckVxLzhjOVBsSzE4VHRUODVncDNNQ1ZkT1l6SndRSDR2ZDkrTUYrMGt5Zmd3djJZa1NGaE5mS1hxTzRmVTVzUlE2Rk5MMEE1VmdYamlUa2p5NE1DdGFDa2krZUlDRFgrVkNCTTY1VjlxZHFHei9MU0puRnhJdlE4a0J4XFxcXFxcXCIpXFxcIn1dXCIsXCJwcm94eVwiOlwiXCJ9IiwidGl0bGUiOiLnmbvpmYbku6XlvIDlkK8ifQ==
Add Comment
Please, Sign In to add comment