Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@dm盒子@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiZG3nm5LlrZAiLCJhdXRob3IiOiJjeSIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjI5LCJjb2xfdHlwZSI6InRleHRfY2VudGVyXzEiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6InRvb2wiLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoi5b2x6KeGIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbmlmICghZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkge1xuICAgIG9yZ1NldHRpbmdzID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBmb250U2l6ZTogMjUsXG4gICAgICAgIGRtRnJvbTogJ+W3puWyuOWumOW8uScsXG4gICAgICAgIGRtU2NvcGU6ICdvdGhlcidcbiAgICB9KTtcbiAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJywgb3JnU2V0dGluZ3MpO1xufVxuZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuZm9udFNpemUgPSBkbVNldHRpbmdzLmZvbnRTaXplO1xuZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XG5kbVNjb3BlID0gZG1TZXR0aW5ncy5kbVNjb3BlO1xuc2VsZWN0QXJyYXkgPSBbJ+W3puWyuOWumOW8uScsICdmY+WumOW8uScsICfkuInmlrnmibbpo44nXTtcbmlmICghc2VsZWN0QXJyYXkuaW5jbHVkZXMoZG1Gcm9tKSkge1xuICAgIGRtRnJvbSA9ICflt6blsrjlrpjlvLknO1xuICAgIGRtU2V0dGluZ3MuZG1Gcm9tID0gJ+W3puWyuOWumOW8uSc7XG59XG5pZiAoZG1TY29wZSA9PSB1bmRlZmluZWQpIHtcbiAgICBkbVNjb3BlID0gJ290aGVyJztcbiAgICBkbVNldHRpbmdzLmRtU2NvcGUgPSAnb3RoZXInO1xufVxuc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicsIEpTT04uc3RyaW5naWZ5KGRtU2V0dGluZ3MpKTtcbi8vIOS4u+mhteWxleekulxubGV0IGVsID0gW107XG5pZiAoZ2V0SXRlbShcInJlYWRfcG9saWN5XCIpICE9PSBcIjFcIikge1xuICAgIGVsLnB1c2goe1xuICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD48Zm9udCBjb2xvcj0jODcxZjc4PuS7peS4i+aVsOaNruadpea6kOS6jue9kee7nO+8jOWmguaCqOWWnOasou+8jOivt+aUr+aMgeWumOaWuTwvZm9udD48L3NtYWxsPicsXG4gICAgICAgIGRlc2M6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9I2YyMGMwMD7mnKzop4TliJnku4XpmZDlhY3otLnlrabkuaDkuqTmtYHkvb/nlKjvvIzor7fkuo7lr7zlhaXlkI4yNOWwj+aXtuWGheWIoOmZpO+8jOS7u+S9lee7hOe7h+aIluS4quS6uuS4jeW+l+S7peS7u+S9leaWueW8j+aWueazleS8oOaSreaIluWUruWNluatpOinhOWImeeahOaVtOS9k+aIlumDqOWIhu+8gTwvZm9udD48L3NtYWxsPicsXG4gICAgICAgIHVybDogJCgnI25vSGlzdG9yeSMnKS5sYXp5UnVsZSgoKSA9PiB7XG4gICAgICAgICAgICBzZXRJdGVtKFwicmVhZF9wb2xpY3lcIiwgXCIxXCIpXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgIHJldHVybiBcInRvYXN0Oi8v5L2g5bey5ZCM5oSP6K+l5Y2P6K6uXCJcbiAgICAgICAgfSksXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBzaW5nbGVfZG5wbHVpbl9uZXdXaW5kb3dfaW5pdCgpIHtcbiAgICBsZXQgYmFzZV9zZWFyY2hfanMgPSAnaGlrZXI6Ly9maWxlcy9ydWxlcy9kekhvdXNlL2pzL+aWreaPkuWFg+e0oC5qcyc7XG4gICAgaWYgKCFmZXRjaChiYXNlX3NlYXJjaF9qcykpIHtcbiAgICAgICAgd3JpdGVGaWxlKGJhc2Vfc2VhcmNoX2pzLCBmZXRjaCgnaHR0cDovL2hpa2VyLm5va2lhLnByZXNzL2hpa2VydWxlL3J1bGVsaXN0Lmpzb24/aWQ9MTc5MCcpKTtcbiAgICB9XG4gICAgZXZhbChmZXRjaChiYXNlX3NlYXJjaF9qcykucmVwbGFjZShiYXNlNjREZWNvZGUoXCJRR3B6T2c9PVwiKSwgXCJcIikpO1xuICAgIHJldHVybiBpbml0X2R1YW5QbHVpbigpXG59XG52YXIgaGVscEZyb20gPSAnaGlrZXI6Ly9wYWdlL0luc3RydWN0aW9uX0Jvb2suaHRtbD9ydWxlPWRt55uS5a2QJztcbnZhciBBUElGcm9tID0gJ2hpa2VyOi8vcGFnZS9BUEkuaHRtbD9ydWxlPWRt55uS5a2QJztcbnRyeSB7XG4gICAgdmFyIGhlbHBGaWxlID0gSlNPTi5wYXJzZShmZXRjaChoZWxwRnJvbSkpLnJ1bGU7XG4gICAgdmFyIEFQSUZpbGUgPSBKU09OLnBhcnNlKGZldGNoKEFQSUZyb20pKS5ydWxlO1xuICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL2NhY2hlL0luc3RydWN0aW9uX0Jvb2suaHRtbCcsIGhlbHBGaWxlKTtcbiAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9jYWNoZS9BUEkuaHRtbCcsIEFQSUZpbGUpO1xufSBjYXRjaCAoZSkge1xuICAgIGxvZygn5ouJ5Y+W5byC5bi4Jylcbn1cblxubGV0IGQyID0gW3tcbiAgICB0aXRsZTogXCLop6PmnpBcIixcbiAgICBkZXNjOiAn5bC96YeP6L6T5YWl5qCH5YeG55qEUEPnq6/lrpjpk75+JyxcbiAgICBjb2xfdHlwZTogXCJpbnB1dFwiLFxuICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcbiAgICAgICAgaWYgKGRtU2V0dGluZ3Muc2VhcmNoKSB7XG4gICAgICAgICAgICBzZWFyY2hUeXBlPWRtU2V0dGluZ3Muc2VhcmNoLnNlYXJjaFR5cGU7XG4gICAgICAgICAgICBzZWFyY2hOYW1lPWRtU2V0dGluZ3Muc2VhcmNoLnNlYXJjaE5hbWU7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgc2VhcmNoVHlwZT0yO1xuICAgICAgICAgICAgc2VhcmNoTmFtZT1cIueugOW9sVwiO1xuICAgICAgICB9XG4gICAgICAgIHNob3dMb2FkaW5nKFwi6I635Y+W5by55bmV5LitflwiKTtcbiAgICAgICAgcmV0dXJuICQucmVxdWlyZShcImhpa2VyOi8vcGFnZS9sYXp5VG9KaWV4aT9ydWxlPWRt55uS5a2QXCIpLnBhcnNlRG0oaW5wdXQsIHNlYXJjaFR5cGUsIHNlYXJjaE5hbWUpO1xuICAgIH0pLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ2NvbmRpdGlvbicsICcnKSxcbiAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgb25DaGFuZ2U6IFwicHV0TXlWYXIoJ2NvbmRpdGlvbicsaW5wdXQpXCIsXG4gICAgfVxufSwge1xuICAgIGltZzogJ2h0dHBzOi8vZ2ltZzIuYmFpZHUuY29tL2ltYWdlX3NlYXJjaC9zcmM9aHR0cCUzQSUyRiUyRmluZXdzLmd0aW1nLmNvbSUyRm5ld3NhcHBfbWF0Y2glMkYwJTJGMTA2ODM2NjE1NzElMkYwLmpwZyZyZWZlcj1odHRwJTNBJTJGJTJGaW5ld3MuZ3RpbWcuY29tJmFwcD0yMDAyJnNpemU9Zjk5OTksMTAwMDAmcT1hODAmbj0wJmc9MG4mZm10PWF1dG8/c2VjPTE2NTgzNjk4OTAmdD0xOGY5NTVmYzJjNzNlYmQ2NTg2MDdjYzYwODA4MWNmNScsXG4gICAgdGl0bGU6ICflvLnluZXnm5LlrZAnLFxuICAgIGNvbF90eXBlOiBcImNhcmRfcGljXzFcIixcbiAgICBkZXNjOiAnMCcsXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLnJ1bGUoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIGQgPSBbXTtcbiAgICAgICAgICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcbiAgICAgICAgICAgIGlmIChkbVNldHRpbmdzLnNlYXJjaCkge1xuICAgICAgICAgICAgICAgIHNlYXJjaFR5cGU9ZG1TZXR0aW5ncy5zZWFyY2guc2VhcmNoVHlwZTtcbiAgICAgICAgICAgICAgICBzZWFyY2hOYW1lPWRtU2V0dGluZ3Muc2VhcmNoLnNlYXJjaE5hbWU7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBzZWFyY2hUeXBlPTI7XG4gICAgICAgICAgICAgICAgc2VhcmNoTmFtZT1cIueugOW9sVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAneaQnOe0ouaWueW8jzo8c21hbGw+PHNtYWxsPjEt6LCD55So5bCP56iL5bqP5pCc57Si77ybMi3osIPnlKjlsI/nqIvluo/liIbnu4TmkJzntKI8L3NtYWxsPjwvc21hbGw+JyxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcbiAgICAgICAgICAgIH0se1xuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogc2VhcmNoVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXCJwdXRNeVZhcignc2VhcmNoVHlwZScsaW5wdXQpXCIsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSx7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ3lsI/nqIvluo/lkI0v5YiG57uE5ZCNOicsXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXG4gICAgICAgICAgICB9LHtcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHNlYXJjaE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXG4gICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFwicHV0TXlWYXIoJ3NlYXJjaE5hbWUnLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+eCueWHu+S/neWtmCcsXG4gICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuICAgICAgICAgICAgICAgICAgICBkbVNldHRpbmdzLnNlYXJjaD17fTtcbiAgICAgICAgICAgICAgICAgICAgZG1TZXR0aW5ncy5zZWFyY2guc2VhcmNoVHlwZSA9IE51bWJlcihnZXRNeVZhcignc2VhcmNoVHlwZScpKTtcbiAgICAgICAgICAgICAgICAgICAgZG1TZXR0aW5ncy5zZWFyY2guc2VhcmNoTmFtZSA9IGdldE15VmFyKCdzZWFyY2hOYW1lJyk7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nLCBKU09OLnN0cmluZ2lmeShkbVNldHRpbmdzKSk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2sodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcInRvYXN0Oi8v5L+d5a2Y5oiQ5YqfflwiO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChkKTtcbiAgICAgICAgfSk7XG4gICAgfSlcbn0sIHtcbiAgICB0aXRsZTogXCLlvLnluZXmnaXmupDvvJpcIiArIGRtRnJvbSxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICBvcHRpb25zID0gWyflt6blsrjlrpjlvLknLCAnZmPlrpjlvLknLCAn5LiJ5pa55om26aOOJ107XG4gICAgICAgIHJldHVybiAkKG9wdGlvbnMsIDEpLnNlbGVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjdXJTZXR0aW5ncyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcbiAgICAgICAgICAgIGN1clNldHRpbmdzLmRtRnJvbSA9IGlucHV0O1xuICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicsIEpTT04uc3RyaW5naWZ5KGN1clNldHRpbmdzKSk7XG4gICAgICAgICAgICB1cGRhdGVJdGVtKCflvLnluZXmnaXmupAnLCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5by55bmV5p2l5rqQ77yaXCIgKyBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZG1Gcm9tLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gXCJ0b2FzdDovL+WIh+aNouadpea6kOS4ujpcIiArIGlucHV0O1xuICAgICAgICB9KVxuICAgIH0pLFxuICAgIGNvbF90eXBlOiBcInRleHRfY2VudGVyXzFcIixcbiAgICBleHRyYToge1xuICAgICAgICBpZDogJ+W8ueW5leadpea6kCdcbiAgICB9XG59LCB7XG4gICAgdGl0bGU6IFwi5by55bmV5aSn5bCPOlwiICsgZm9udFNpemUsXG4gICAgY29sX3R5cGU6IFwidGV4dF8yXCIsXG4gICAgdXJsOiBcImlucHV0Oi8vLy8vL+ivt+i+k+WFpeS4gOS4quWQiOmAgueahOaVsOWtl++8jOm7mOiupOaYrzI1LmpzOlwiICsgJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgIGN1clNldHRpbmdzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuICAgICAgICBjdXJTZXR0aW5ncy5mb250U2l6ZSA9IGlucHV0O1xuICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJywgSlNPTi5zdHJpbmdpZnkoY3VyU2V0dGluZ3MpKTtcbiAgICAgICAgdXBkYXRlSXRlbSgn5by55bmV5aSn5bCPJywge1xuICAgICAgICAgICAgdGl0bGU6IFwi5by55bmV5aSn5bCP77yaXCIgKyBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZm9udFNpemUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gXCJ0b2FzdDovL+W8ueW5leWkp+Wwj+W3suS/ruaUueS4ulwiICsgaW5wdXQ7XG4gICAgfSksXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaWQ6ICflvLnluZXlpKflsI8nXG4gICAgfVxufSwge1xuICAgIHRpdGxlOiBcIuS9nOeUqOWfn++8mlwiICsgZG1TY29wZSxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICBvcHRpb25zID0gWydnbG9iYWwnLCAnb3RoZXInXTtcbiAgICAgICAgcmV0dXJuICQob3B0aW9ucywgMSkuc2VsZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGN1clNldHRpbmdzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xuICAgICAgICAgICAgY3VyU2V0dGluZ3MuZG1TY29wZSA9IGlucHV0O1xuICAgICAgICAgICAgc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicsIEpTT04uc3RyaW5naWZ5KGN1clNldHRpbmdzKSk7XG4gICAgICAgICAgICB1cGRhdGVJdGVtKCfkvZznlKjln58nLCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5L2c55So5Z+f77yaXCIgKyBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZG1TY29wZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly/liIfmjaLkvZznlKjln5/kuLo6XCIgKyBpbnB1dDtcbiAgICAgICAgfSlcbiAgICB9KSxcbiAgICBjb2xfdHlwZTogXCJ0ZXh0XzJcIixcbiAgICBleHRyYToge1xuICAgICAgICBpZDogJ+S9nOeUqOWfnydcbiAgICB9XG59LCB7XG4gICAgdGl0bGU6ICfkvb/nlKjmiYvlhownLFxuICAgIGNvbF90eXBlOiAndGV4dF8zJyxcbiAgICB1cmw6ICdoaWtlcjovL3BhZ2UvZG9jI2ltbWVyc2l2ZVRoZW1lIycsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgbmV3V2luZG93OiBmYWxzZSxcbiAgICAgICAgZG9jVHlwZTogJ2hlbHAnXG4gICAgfVxufSwge1xuICAgIHRpdGxlOiAn6a2U5pat6YWN572uJyxcbiAgICBjb2xfdHlwZTogJ3RleHRfMycsXG4gICAgdXJsOiBzaW5nbGVfZG5wbHVpbl9uZXdXaW5kb3dfaW5pdCgpLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIG5ld1dpbmRvdzogdHJ1ZVxuICAgIH1cbn0sIHtcbiAgICB0aXRsZTogJ+mjnuS8oCcsXG4gICAgY29sX3R5cGU6ICd0ZXh0XzMnLFxuICAgIHVybDogXCJzaGFyZTovL1wiK2dldFZhcignZG1fc2hhcmUnLCAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnKVxufSwge1xuICAgIHRpdGxlOiAnQVBJ5paH5qGjJyxcbiAgICBkZXNjOiAn6LCD55So5b+F55yLJyxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxuICAgIHVybDogJ2hpa2VyOi8vcGFnZS9kb2MnLFxuICAgIGV4dHJhOiB7XG4gICAgICAgIG5ld1dpbmRvdzogZmFsc2UsXG4gICAgICAgIGRvY1R5cGU6ICdBUEknXG4gICAgfVxufSwge1xuICAgIHRpdGxlOiAnPGJpZz48Yj7mrKLov47mnaXliLBkbeebkuWtkO+8mjwvYj48L2JpZz5cXG48Zm9udCBjb2xvcj1ibHVlPjxicj7miJHmmK/kuIDkuKrlvLnluZXmlbDmja7nmoTmlLbnurPnm5LvvIzkuLrop6PmnpDmnKzouqvmt7vliqDlhazpkqXmnaXojrflj5blvLnluZXmlbDmja7vvIzorqnlvLnluZXlj6/ku6XlnKjmtbfpmJTnmoTop4TliJnph4zoh6rnlLHmtYHliqh+5pSv5oyBdHjjgIFtZ3R244CBYmlsaeetiS4uLuKYhSleLV4o4piFPC9mb250PicsXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxuICAgIHVybDogJCgpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly/nlrzvvIzliKvngrnvvIFcIlxuICAgIH0pXG59LCB7XG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9IzIwYjJhYT7mlbDmja7otYTmupDmlLbpm4bkuo7nvZHnu5zvvIzmtbfpmJTkuI3mj5Dkvpvku7vkvZXotYTmupDvvIE8L2ZvbnQ+PC9zbWFsbD4nLFxuICAgIGRlc2M6ICfigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9I2ZmN2Y1MD7mnKzop4TliJnku4XpmZDlrabkuaDkuI7kuqTmtYHvvIzor7flr7zlhaXlkI4yNOWwj+aXtuWGheWIoOmZpO+8jOivt+WLv+S8oOaSre+8gTwvZm9udD48L3NtYWxsPicsXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICByZXR1cm4gXCJ0b2FzdDovL+i2hei/hzI05bCP5pe25LqG5ZCX77yf6YKj5Yig5LqG5ZCn77yBXCJcbiAgICB9KVxufV1cbmlmIChnZXRJdGVtKFwicmVhZF9wb2xpY3lcIikgPT0gXCIxXCIpIHtcbiAgICBkMi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBlbC5wdXNoKGVsZW1lbnQpXG4gICAgfSk7XG59XG5zZXRSZXN1bHQoZWwpO1xuIiwic2VhcmNoX3VybCI6IiIsImdyb3VwIjoi5bel5YW3Iiwic2VhcmNoRmluZCI6IiIsImRldGFpbF9jb2xfdHlwZSI6InRleHRfNSIsImRldGFpbF9maW5kX3J1bGUiOiIiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoiIiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIkluc3RydWN0aW9uX0Jvb2suaHRtbFwiLFwicGF0aFwiOlwiSW5zdHJ1Y3Rpb25fQm9vay5odG1sXCIsXCJydWxlXCI6XCI8IWRvY3R5cGUgaHRtbD5cXG48aHRtbD5cXG48aGVhZD5cXG48bWV0YSBjaGFyc2V0PSdVVEYtOCc+PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCBpbml0aWFsLXNjYWxlPTEnPlxcblxcbjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+aHRtbCB7b3ZlcmZsb3cteDogaW5pdGlhbCAhaW1wb3J0YW50O306cm9vdCB7IC0tYmctY29sb3I6I2ZmZmZmZjsgLS10ZXh0LWNvbG9yOiMzMzMzMzM7IC0tc2VsZWN0LXRleHQtYmctY29sb3I6I0I1RDZGQzsgLS1zZWxlY3QtdGV4dC1mb250LWNvbG9yOmF1dG87IC0tbW9ub3NwYWNlOlxcXCJMdWNpZGEgQ29uc29sZVxcXCIsQ29uc29sYXMsXFxcIkNvdXJpZXJcXFwiLG1vbm9zcGFjZTsgLS10aXRsZS1iYXItaGVpZ2h0OjIwcHg7IH1cXG4ubWFjLW9zLTExIHsgLS10aXRsZS1iYXItaGVpZ2h0OjI4cHg7IH1cXG5odG1sIHsgZm9udC1zaXplOiAxNHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvcik7IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTsgZm9udC1mYW1pbHk6IFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XFxuYm9keSB7IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7IGhlaWdodDogYXV0bzsgaW5zZXQ6IDBweDsgZm9udC1zaXplOiAxcmVtOyBsaW5lLWhlaWdodDogMS40Mjg1Nzsgb3ZlcmZsb3cteDogaGlkZGVuOyBiYWNrZ3JvdW5kOiBpbmhlcml0OyB0YWItc2l6ZTogNDsgfVxcbmlmcmFtZSB7IG1hcmdpbjogYXV0bzsgfVxcbmEudXJsIHsgd29yZC1icmVhazogYnJlYWstYWxsOyB9XFxuYTphY3RpdmUsIGE6aG92ZXIgeyBvdXRsaW5lOiAwcHg7IH1cXG4uaW4tdGV4dC1zZWxlY3Rpb24sIDo6c2VsZWN0aW9uIHsgdGV4dC1zaGFkb3c6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdC10ZXh0LWJnLWNvbG9yKTsgY29sb3I6IHZhcigtLXNlbGVjdC10ZXh0LWZvbnQtY29sb3IpOyB9XFxuI3dyaXRlIHsgbWFyZ2luOiAwcHggYXV0bzsgaGVpZ2h0OiBhdXRvOyB3aWR0aDogaW5oZXJpdDsgd29yZC1icmVhazogbm9ybWFsOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IG92ZXJmbG93LXg6IHZpc2libGU7IHBhZGRpbmctdG9wOiAzNnB4OyB9XFxuI3dyaXRlLmZpcnN0LWxpbmUtaW5kZW50IHAgeyB0ZXh0LWluZGVudDogMmVtOyB9XFxuI3dyaXRlLmZpcnN0LWxpbmUtaW5kZW50IGxpIHAsICN3cml0ZS5maXJzdC1saW5lLWluZGVudCBwICogeyB0ZXh0LWluZGVudDogMHB4OyB9XFxuI3dyaXRlLmZpcnN0LWxpbmUtaW5kZW50IGxpIHsgbWFyZ2luLWxlZnQ6IDJlbTsgfVxcbi5mb3ItaW1hZ2UgI3dyaXRlIHsgcGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctcmlnaHQ6IDhweDsgfVxcbmJvZHkudHlwb3JhLWV4cG9ydCB7IHBhZGRpbmctbGVmdDogMzBweDsgcGFkZGluZy1yaWdodDogMzBweDsgfVxcbi50eXBvcmEtZXhwb3J0IC5mb290bm90ZS1saW5lLCAudHlwb3JhLWV4cG9ydCBsaSwgLnR5cG9yYS1leHBvcnQgcCB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxcbi50eXBvcmEtZXhwb3J0IC50YXNrLWxpc3QtaXRlbSBpbnB1dCB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcXG4gIGJvZHkudHlwb3JhLWV4cG9ydCB7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IH1cXG4gICN3cml0ZSB7IHBhZGRpbmctbGVmdDogMjBweDsgcGFkZGluZy1yaWdodDogMjBweDsgfVxcbiAgLkNvZGVNaXJyb3Itc2l6ZXIgeyBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7IH1cXG4gIC5Db2RlTWlycm9yLWd1dHRlcnMgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG59XFxuI3dyaXRlIGxpID4gZmlndXJlOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cXG4jd3JpdGUgb2wsICN3cml0ZSB1bCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbmltZyB7IG1heC13aWR0aDogMTAwJTsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgaW1hZ2Utb3JpZW50YXRpb246IGZyb20taW1hZ2U7IH1cXG5idXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHsgY29sb3I6IGluaGVyaXQ7IGZvbnQ6IGluaGVyaXQ7IH1cXG5pbnB1dFt0eXBlPVxcXCJjaGVja2JveFxcXCJdLCBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdIHsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgcGFkZGluZzogMHB4OyB9XFxuKiwgOjphZnRlciwgOjpiZWZvcmUgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XFxuI3dyaXRlIGgxLCAjd3JpdGUgaDIsICN3cml0ZSBoMywgI3dyaXRlIGg0LCAjd3JpdGUgaDUsICN3cml0ZSBoNiwgI3dyaXRlIHAsICN3cml0ZSBwcmUgeyB3aWR0aDogaW5oZXJpdDsgfVxcbiN3cml0ZSBoMSwgI3dyaXRlIGgyLCAjd3JpdGUgaDMsICN3cml0ZSBoNCwgI3dyaXRlIGg1LCAjd3JpdGUgaDYsICN3cml0ZSBwIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxucCB7IGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7IGJyZWFrLWFmdGVyOiBhdm9pZC1wYWdlOyBicmVhay1pbnNpZGU6IGF2b2lkOyBvcnBoYW5zOiA0OyB9XFxucCB7IG9ycGhhbnM6IDQ7IH1cXG5oMSB7IGZvbnQtc2l6ZTogMnJlbTsgfVxcbmgyIHsgZm9udC1zaXplOiAxLjhyZW07IH1cXG5oMyB7IGZvbnQtc2l6ZTogMS42cmVtOyB9XFxuaDQgeyBmb250LXNpemU6IDEuNHJlbTsgfVxcbmg1IHsgZm9udC1zaXplOiAxLjJyZW07IH1cXG5oNiB7IGZvbnQtc2l6ZTogMXJlbTsgfVxcbi5tZC1tYXRoLWJsb2NrLCAubWQtcmF3YmxvY2ssIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAgeyBtYXJnaW4tdG9wOiAxcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XFxuLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IH1cXG4ubWQtYmxvY2ttZXRhIHsgY29sb3I6IHJnYigyMDQsIDIwNCwgMjA0KTsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zdHlsZTogaXRhbGljOyB9XFxuYSB7IGN1cnNvcjogcG9pbnRlcjsgfVxcbnN1cC5tZC1mb290bm90ZSB7IHBhZGRpbmc6IDJweCA0cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM4LCAyMzgsIDIzOCwgMC43KTsgY29sb3I6IHJnYig4NSwgODUsIDg1KTsgYm9yZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBvaW50ZXI7IH1cXG5zdXAubWQtZm9vdG5vdGUgYSwgc3VwLm1kLWZvb3Rub3RlIGE6aG92ZXIgeyBjb2xvcjogaW5oZXJpdDsgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxcbiN3cml0ZSBpbnB1dFt0eXBlPVxcXCJjaGVja2JveFxcXCJdIHsgY3Vyc29yOiBwb2ludGVyOyB3aWR0aDogaW5oZXJpdDsgaGVpZ2h0OiBpbmhlcml0OyB9XFxuZmlndXJlIHsgb3ZlcmZsb3cteDogYXV0bzsgbWFyZ2luOiAxLjJlbSAwcHg7IG1heC13aWR0aDogY2FsYygxMDAlICsgMTZweCk7IHBhZGRpbmc6IDBweDsgfVxcbmZpZ3VyZSA+IHRhYmxlIHsgbWFyZ2luOiAwcHg7IH1cXG50ciB7IGJyZWFrLWluc2lkZTogYXZvaWQ7IGJyZWFrLWFmdGVyOiBhdXRvOyB9XFxudGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cXG50YWJsZSB7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwcHg7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogYXV0bzsgYnJlYWstaW5zaWRlOiBhdXRvOyB0ZXh0LWFsaWduOiBsZWZ0OyB9XFxudGFibGUubWQtdGFibGUgdGQgeyBtaW4td2lkdGg6IDMycHg7IH1cXG4uQ29kZU1pcnJvci1ndXR0ZXJzIHsgYm9yZGVyLXJpZ2h0OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG4uQ29kZU1pcnJvci1saW5lbnVtYmVyIHsgdXNlci1zZWxlY3Q6IG5vbmU7IH1cXG4uQ29kZU1pcnJvciB7IHRleHQtYWxpZ246IGxlZnQ7IH1cXG4uQ29kZU1pcnJvci1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDAuMzsgfVxcbi5Db2RlTWlycm9yIHByZSB7IHBhZGRpbmc6IDBweCA0cHg7IH1cXG4uQ29kZU1pcnJvci1saW5lcyB7IHBhZGRpbmc6IDBweDsgfVxcbmRpdi5ocjpmb2N1cyB7IGN1cnNvcjogbm9uZTsgfVxcbiN3cml0ZSBwcmUgeyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cXG4jd3JpdGUuZmVuY2VzLW5vLWxpbmUtd3JhcHBpbmcgcHJlIHsgd2hpdGUtc3BhY2U6IHByZTsgfVxcbiN3cml0ZSBwcmUudHktY29udGFpbi1jbSB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cXG4uQ29kZU1pcnJvci1ndXR0ZXJzIHsgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4ubWQtZmVuY2VzIHsgZm9udC1zaXplOiAwLjlyZW07IGRpc3BsYXk6IGJsb2NrOyBicmVhay1pbnNpZGU6IGF2b2lkOyB0ZXh0LWFsaWduOiBsZWZ0OyBvdmVyZmxvdzogdmlzaWJsZTsgd2hpdGUtc3BhY2U6IHByZTsgYmFja2dyb3VuZDogaW5oZXJpdDsgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IH1cXG4ubWQtZmVuY2VzLWFkdi1wYW5lbCB7IHdpZHRoOiAxMDAlOyBtYXJnaW4tdG9wOiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmctdG9wOiAwcHg7IHBhZGRpbmctYm90dG9tOiA4cHg7IG92ZXJmbG93LXg6IGF1dG87IH1cXG4jd3JpdGUgLm1kLWZlbmNlcy5tb2NrLWNtIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XFxuLm1kLWZlbmNlcy5tZC1mZW5jZXMtd2l0aC1saW5lbm8geyBwYWRkaW5nLWxlZnQ6IDBweDsgfVxcbiN3cml0ZS5mZW5jZXMtbm8tbGluZS13cmFwcGluZyAubWQtZmVuY2VzLm1vY2stY20geyB3aGl0ZS1zcGFjZTogcHJlOyBvdmVyZmxvdy14OiBhdXRvOyB9XFxuLm1kLWZlbmNlcy5tb2NrLWNtLm1kLWZlbmNlcy13aXRoLWxpbmVubyB7IHBhZGRpbmctbGVmdDogOHB4OyB9XFxuLkNvZGVNaXJyb3ItbGluZSwgdHdpdHRlcndpZGdldCB7IGJyZWFrLWluc2lkZTogYXZvaWQ7IH1cXG4uZm9vdG5vdGVzIHsgb3BhY2l0eTogMC44OyBmb250LXNpemU6IDAuOXJlbTsgbWFyZ2luLXRvcDogMWVtOyBtYXJnaW4tYm90dG9tOiAxZW07IH1cXG4uZm9vdG5vdGVzICsgLmZvb3Rub3RlcyB7IG1hcmdpbi10b3A6IDBweDsgfVxcbi5tZC1yZXNldCB7IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7IGJvcmRlcjogMHB4OyBvdXRsaW5lOiAwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGJhY2tncm91bmQ6IDBweCAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgdGV4dC1zaGFkb3c6IG5vbmU7IGZsb2F0OiBub25lOyBwb3NpdGlvbjogc3RhdGljOyB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBjdXJzb3I6IGluaGVyaXQ7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IHRleHQtYWxpZ246IGxlZnQ7IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyBkaXJlY3Rpb246IGx0cjsgfVxcbmxpIGRpdiB7IHBhZGRpbmctdG9wOiAwcHg7IH1cXG5ibG9ja3F1b3RlIHsgbWFyZ2luOiAxcmVtIDBweDsgfVxcbmxpIC5tYXRoamF4LWJsb2NrLCBsaSBwIHsgbWFyZ2luOiAwLjVyZW0gMHB4OyB9XFxubGkgYmxvY2txdW90ZSB7IG1hcmdpbjogMXJlbSAwcHg7IH1cXG5saSB7IG1hcmdpbjogMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG5ibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwcHg7IH1cXG5ibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkLCBsaSA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDBweDsgfVxcbi5mb290bm90ZXMtYXJlYSB7IGNvbG9yOiByZ2IoMTM2LCAxMzYsIDEzNik7IG1hcmdpbi10b3A6IDAuNzE0cmVtOyBwYWRkaW5nLWJvdHRvbTogMC4xNDNyZW07IHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cXG4jd3JpdGUgLmZvb3Rub3RlLWxpbmUgeyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgYm9keSwgaHRtbCB7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyBoZWlnaHQ6IDk5JTsgYnJlYWstYWZ0ZXI6IGF2b2lkOyBicmVhay1iZWZvcmU6IGF2b2lkOyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyB9XFxuICAjd3JpdGUgeyBtYXJnaW4tdG9wOiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxcbiAgLnR5cG9yYS1leHBvcnQgKiB7IC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDsgfVxcbiAgLnR5cG9yYS1leHBvcnQgI3dyaXRlIHsgYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XFxuICAudHlwb3JhLWV4cG9ydCAjd3JpdGU6OmFmdGVyIHsgaGVpZ2h0OiAwcHg7IH1cXG4gIC5pcy1tYWMgdGFibGUgeyBicmVhay1pbnNpZGU6IGF2b2lkOyB9XFxuICAudHlwb3JhLWV4cG9ydC1zaG93LW91dGxpbmUgLnR5cG9yYS1leHBvcnQtc2lkZWJhciB7IGRpc3BsYXk6IG5vbmU7IH1cXG59XFxuLmZvb3Rub3RlLWxpbmUgeyBtYXJnaW4tdG9wOiAwLjcxNGVtOyBmb250LXNpemU6IDAuN2VtOyB9XFxuYSBpbWcsIGltZyBhIHsgY3Vyc29yOiBwb2ludGVyOyB9XFxucHJlLm1kLW1ldGEtYmxvY2sgeyBmb250LXNpemU6IDAuOHJlbTsgbWluLWhlaWdodDogMC44cmVtOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IGJhY2tncm91bmQ6IHJnYigyMDQsIDIwNCwgMjA0KTsgZGlzcGxheTogYmxvY2s7IG92ZXJmbG93LXg6IGhpZGRlbjsgfVxcbnAgPiAubWQtaW1hZ2U6b25seS1jaGlsZDpub3QoLm1kLWltZy1lcnJvcikgaW1nLCBwID4gaW1nOm9ubHktY2hpbGQgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyB9XFxuI3dyaXRlLmZpcnN0LWxpbmUtaW5kZW50IHAgPiAubWQtaW1hZ2U6b25seS1jaGlsZDpub3QoLm1kLWltZy1lcnJvcikgaW1nIHsgbGVmdDogLTJlbTsgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxucCA+IC5tZC1pbWFnZTpvbmx5LWNoaWxkIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwJTsgfVxcbiN3cml0ZSAuTWF0aEpheF9EaXNwbGF5IHsgbWFyZ2luOiAwLjhlbSAwcHggMHB4OyB9XFxuLm1kLW1hdGgtYmxvY2sgeyB3aWR0aDogMTAwJTsgfVxcbi5tZC1tYXRoLWJsb2NrOm5vdCg6ZW1wdHkpOjphZnRlciB7IGRpc3BsYXk6IG5vbmU7IH1cXG4uTWF0aEpheF9yZWYgeyBmaWxsOiBjdXJyZW50Y29sb3I7IH1cXG5bY29udGVudGVkaXRhYmxlPVxcXCJ0cnVlXFxcIl06YWN0aXZlLCBbY29udGVudGVkaXRhYmxlPVxcXCJ0cnVlXFxcIl06Zm9jdXMsIFtjb250ZW50ZWRpdGFibGU9XFxcImZhbHNlXFxcIl06YWN0aXZlLCBbY29udGVudGVkaXRhYmxlPVxcXCJmYWxzZVxcXCJdOmZvY3VzIHsgb3V0bGluZTogMHB4OyBib3gtc2hhZG93OiBub25lOyB9XFxuLm1kLXRhc2stbGlzdC1pdGVtIHsgcG9zaXRpb246IHJlbGF0aXZlOyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cXG4udGFzay1saXN0LWl0ZW0ubWQtdGFzay1saXN0LWl0ZW0geyBwYWRkaW5nLWxlZnQ6IDBweDsgfVxcbi5tZC10YXNrLWxpc3QtaXRlbSA+IGlucHV0IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBtYXJnaW4tbGVmdDogLTEuMmVtOyBtYXJnaW4tdG9wOiBjYWxjKDFlbSAtIDEwcHgpOyBib3JkZXI6IG5vbmU7IH1cXG4ubWF0aCB7IGZvbnQtc2l6ZTogMXJlbTsgfVxcbi5tZC10b2MgeyBtaW4taGVpZ2h0OiAzLjU4cmVtOyBwb3NpdGlvbjogcmVsYXRpdmU7IGZvbnQtc2l6ZTogMC45cmVtOyBib3JkZXItcmFkaXVzOiAxMHB4OyB9XFxuLm1kLXRvYy1jb250ZW50IHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tbGVmdDogMHB4OyB9XFxuLm1kLXRvYy1jb250ZW50OjphZnRlciwgLm1kLXRvYzo6YWZ0ZXIgeyBkaXNwbGF5OiBub25lOyB9XFxuLm1kLXRvYy1pdGVtIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiByZ2IoNjUsIDEzMSwgMTk2KTsgfVxcbi5tZC10b2MtaXRlbSBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuLm1kLXRvYy1pbm5lcjpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XFxuLm1kLXRvYy1pbm5lciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgY3Vyc29yOiBwb2ludGVyOyB9XFxuLm1kLXRvYy1oMSAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDBweDsgZm9udC13ZWlnaHQ6IDcwMDsgfVxcbi5tZC10b2MtaDIgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiAyZW07IH1cXG4ubWQtdG9jLWgzIC5tZC10b2MtaW5uZXIgeyBtYXJnaW4tbGVmdDogNGVtOyB9XFxuLm1kLXRvYy1oNCAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDZlbTsgfVxcbi5tZC10b2MtaDUgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiA4ZW07IH1cXG4ubWQtdG9jLWg2IC5tZC10b2MtaW5uZXIgeyBtYXJnaW4tbGVmdDogMTBlbTsgfVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4ZW0pIHtcXG4gIC5tZC10b2MtaDMgLm1kLXRvYy1pbm5lciB7IG1hcmdpbi1sZWZ0OiAzLjVlbTsgfVxcbiAgLm1kLXRvYy1oNCAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDVlbTsgfVxcbiAgLm1kLXRvYy1oNSAubWQtdG9jLWlubmVyIHsgbWFyZ2luLWxlZnQ6IDYuNWVtOyB9XFxuICAubWQtdG9jLWg2IC5tZC10b2MtaW5uZXIgeyBtYXJnaW4tbGVmdDogOGVtOyB9XFxufVxcbmEubWQtdG9jLWlubmVyIHsgZm9udC1zaXplOiBpbmhlcml0OyBmb250LXN0eWxlOiBpbmhlcml0OyBmb250LXdlaWdodDogaW5oZXJpdDsgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cXG4uZm9vdG5vdGUtbGluZSBhOm5vdCgucmV2ZXJzZWZvb3Rub3RlKSB7IGNvbG9yOiBpbmhlcml0OyB9XFxuLm1kLWF0dHIgeyBkaXNwbGF5OiBub25lOyB9XFxuLm1kLWZuLWNvdW50OjphZnRlciB7IGNvbnRlbnQ6IFxcXCIuXFxcIjsgfVxcbmNvZGUsIHByZSwgc2FtcCwgdHQgeyBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKTsgfVxcbmtiZCB7IG1hcmdpbjogMHB4IDAuMWVtOyBwYWRkaW5nOiAwLjFlbSAwLjZlbTsgZm9udC1zaXplOiAwLjhlbTsgY29sb3I6IHJnYigzNiwgMzksIDQxKTsgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUpOyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTczLCAxNzksIDE4NSk7IGJvcmRlci1yYWRpdXM6IDNweDsgYm94LXNoYWRvdzogcmdiYSgxMiwgMTMsIDE0LCAwLjIpIDBweCAxcHggMHB4LCByZ2IoMjU1LCAyNTUsIDI1NSkgMHB4IDBweCAwcHggMnB4IGluc2V0OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuLm1kLWNvbW1lbnQgeyBjb2xvcjogcmdiKDE2MiwgMTI3LCAzKTsgb3BhY2l0eTogMC42OyBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKTsgfVxcbmNvZGUgeyB0ZXh0LWFsaWduOiBsZWZ0OyB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDsgfVxcbmEubWQtcHJpbnQtYW5jaG9yIHsgd2hpdGUtc3BhY2U6IHByZSAhaW1wb3J0YW50OyBib3JkZXItd2lkdGg6IGluaXRpYWwgIWltcG9ydGFudDsgYm9yZGVyLXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IHdpZHRoOiAxcHggIWltcG9ydGFudDsgcmlnaHQ6IDBweCAhaW1wb3J0YW50OyBvdXRsaW5lOiAwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDogMHB4IDBweCAhaW1wb3J0YW50OyB0ZXh0LWRlY29yYXRpb246IGluaXRpYWwgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDsgfVxcbi5vcy13aW5kb3dzLm1vbm9jb2xvci1lbW9qaSAubWQtZW1vamkgeyBmb250LWZhbWlseTogXFxcIlNlZ29lIFVJIFN5bWJvbFxcXCIsIHNhbnMtc2VyaWY7IH1cXG4ubWQtZGlhZ3JhbS1wYW5lbCA+IHN2ZyB7IG1heC13aWR0aDogMTAwJTsgfVxcbltsYW5nPVxcXCJmbG93XFxcIl0gc3ZnLCBbbGFuZz1cXFwibWVybWFpZFxcXCJdIHN2ZyB7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XFxuW2xhbmc9XFxcIm1lcm1haWRcXFwiXSAubm9kZSB0ZXh0IHsgZm9udC1zaXplOiAxcmVtOyB9XFxudGFibGUgdHIgdGggeyBib3JkZXItYm90dG9tOiAwcHg7IH1cXG52aWRlbyB7IG1heC13aWR0aDogMTAwJTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMHB4IGF1dG87IH1cXG5pZnJhbWUgeyBtYXgtd2lkdGg6IDEwMCU7IHdpZHRoOiAxMDAlOyBib3JkZXI6IG5vbmU7IH1cXG4uaGlnaGxpZ2h0IHRkLCAuaGlnaGxpZ2h0IHRyIHsgYm9yZGVyOiAwcHg7IH1cXG5tYXJrIHsgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsgfVxcbi5tZC1odG1sLWlubGluZSAubWQtcGxhaW4sIC5tZC1odG1sLWlubGluZSBzdHJvbmcsIG1hcmsgLm1kLWlubGluZS1tYXRoLCBtYXJrIHN0cm9uZyB7IGNvbG9yOiBpbmhlcml0OyB9XFxuLm1kLWV4cGFuZCBtYXJrIC5tZC1tZXRhIHsgb3BhY2l0eTogMC4zICFpbXBvcnRhbnQ7IH1cXG5tYXJrIC5tZC1tZXRhIHsgY29sb3I6IHJnYigwLCAwLCAwKTsgfVxcbkBtZWRpYSBwcmludCB7XFxuICAudHlwb3JhLWV4cG9ydCBoMSwgLnR5cG9yYS1leHBvcnQgaDIsIC50eXBvcmEtZXhwb3J0IGgzLCAudHlwb3JhLWV4cG9ydCBoNCwgLnR5cG9yYS1leHBvcnQgaDUsIC50eXBvcmEtZXhwb3J0IGg2IHsgYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxcbn1cXG4ubWQtZGlhZ3JhbS1wYW5lbCAubWVzc2FnZVRleHQgeyBzdHJva2U6IG5vbmUgIWltcG9ydGFudDsgfVxcbi5tZC1kaWFncmFtLXBhbmVsIC5zdGFydC1zdGF0ZSB7IGZpbGw6IHZhcigtLW5vZGUtZmlsbCk7IH1cXG4ubWQtZGlhZ3JhbS1wYW5lbCAuZWRnZUxhYmVsIHJlY3QgeyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH1cXG4ubWQtZmVuY2VzLm1kLWZlbmNlcy1tYXRoIHsgZm9udC1zaXplOiAxZW07IH1cXG4ubWQtZmVuY2VzLWFkdmFuY2VkOm5vdCgubWQtZm9jdXMpIHsgcGFkZGluZzogMHB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyBib3JkZXI6IDBweDsgfVxcbi5tZC1mZW5jZXMtYWR2YW5jZWQ6bm90KC5tZC1mb2N1cykgeyBiYWNrZ3JvdW5kOiBpbmhlcml0OyB9XFxuLnR5cG9yYS1leHBvcnQtc2hvdy1vdXRsaW5lIC50eXBvcmEtZXhwb3J0LWNvbnRlbnQgeyBtYXgtd2lkdGg6IDE0NDBweDsgbWFyZ2luOiBhdXRvOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuLnR5cG9yYS1leHBvcnQtc2lkZWJhciB7IHdpZHRoOiAzMDBweDsgZm9udC1zaXplOiAwLjhyZW07IG1hcmdpbi10b3A6IDgwcHg7IG1hcmdpbi1yaWdodDogMThweDsgfVxcbi50eXBvcmEtZXhwb3J0LXNob3ctb3V0bGluZSAjd3JpdGUgeyAtLXdlYmtpdC1mbGV4OjI7IGZsZXg6IDIgMSAwJTsgfVxcbi50eXBvcmEtZXhwb3J0LXNpZGViYXIgLm91dGxpbmUtY29udGVudCB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwcHg7IG1heC1oZWlnaHQ6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW4gYXV0bzsgcGFkZGluZy1ib3R0b206IDMwcHg7IHBhZGRpbmctdG9wOiA2MHB4OyB3aWR0aDogMzAwcHg7IH1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcXG4gIC50eXBvcmEtZXhwb3J0LXNpZGViYXIsIC50eXBvcmEtZXhwb3J0LXNpZGViYXIgLm91dGxpbmUtY29udGVudCB7IHdpZHRoOiAyNDBweDsgfVxcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xcbiAgLnR5cG9yYS1leHBvcnQtc2lkZWJhciB7IGRpc3BsYXk6IG5vbmU7IH1cXG59XFxuLm91dGxpbmUtY29udGVudCBsaSwgLm91dGxpbmUtY29udGVudCB1bCB7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBsaXN0LXN0eWxlOiBub25lOyB9XFxuLm91dGxpbmUtY29udGVudCB1bCB7IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyB9XFxuLm91dGxpbmUtY29udGVudCBzdHJvbmcgeyBmb250LXdlaWdodDogNDAwOyB9XFxuLm91dGxpbmUtZXhwYW5kZXIgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxLjQyODU3cmVtOyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IHRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZy1sZWZ0OiA0cHg7IH1cXG4ub3V0bGluZS1leHBhbmRlcjo6YmVmb3JlIHsgY29udGVudDogXFxcIu+EpVxcXCI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZm9udC1mYW1pbHk6IElvbmljb25zOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogOHB4OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuLm91dGxpbmUtaXRlbSB7IHBhZGRpbmctdG9wOiAzcHg7IHBhZGRpbmctYm90dG9tOiAzcHg7IGN1cnNvcjogcG9pbnRlcjsgfVxcbi5vdXRsaW5lLWV4cGFuZGVyOmhvdmVyOjpiZWZvcmUgeyBjb250ZW50OiBcXFwi74SjXFxcIjsgfVxcbi5vdXRsaW5lLWgxID4gLm91dGxpbmUtaXRlbSB7IHBhZGRpbmctbGVmdDogMHB4OyB9XFxuLm91dGxpbmUtaDIgPiAub3V0bGluZS1pdGVtIHsgcGFkZGluZy1sZWZ0OiAxZW07IH1cXG4ub3V0bGluZS1oMyA+IC5vdXRsaW5lLWl0ZW0geyBwYWRkaW5nLWxlZnQ6IDJlbTsgfVxcbi5vdXRsaW5lLWg0ID4gLm91dGxpbmUtaXRlbSB7IHBhZGRpbmctbGVmdDogM2VtOyB9XFxuLm91dGxpbmUtaDUgPiAub3V0bGluZS1pdGVtIHsgcGFkZGluZy1sZWZ0OiA0ZW07IH1cXG4ub3V0bGluZS1oNiA+IC5vdXRsaW5lLWl0ZW0geyBwYWRkaW5nLWxlZnQ6IDVlbTsgfVxcbi5vdXRsaW5lLWxhYmVsIHsgY3Vyc29yOiBwb2ludGVyOyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyB9XFxuLm91dGxpbmUtbGFiZWw6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxcbi5vdXRsaW5lLWl0ZW06aG92ZXIgeyBib3JkZXItY29sb3I6IHJnYigyNDUsIDI0NSwgMjQ1KTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXRlbS1ob3Zlci1iZy1jb2xvcik7IH1cXG4ub3V0bGluZS1pdGVtOmhvdmVyIHsgbWFyZ2luLWxlZnQ6IC0yOHB4OyBtYXJnaW4tcmlnaHQ6IC0yOHB4OyBib3JkZXItbGVmdDogMjhweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OiAyOHB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuLm91dGxpbmUtaXRlbS1zaW5nbGUgLm91dGxpbmUtZXhwYW5kZXI6OmJlZm9yZSwgLm91dGxpbmUtaXRlbS1zaW5nbGUgLm91dGxpbmUtZXhwYW5kZXI6aG92ZXI6OmJlZm9yZSB7IGRpc3BsYXk6IG5vbmU7IH1cXG4ub3V0bGluZS1pdGVtLW9wZW4gPiAub3V0bGluZS1pdGVtID4gLm91dGxpbmUtZXhwYW5kZXI6OmJlZm9yZSB7IGNvbnRlbnQ6IFxcXCLvhKNcXFwiOyB9XFxuLm91dGxpbmUtY2hpbGRyZW4geyBkaXNwbGF5OiBub25lOyB9XFxuLmluZm8tcGFuZWwtdGFiLXdyYXBwZXIgeyBkaXNwbGF5OiBub25lOyB9XFxuLm91dGxpbmUtaXRlbS1vcGVuID4gLm91dGxpbmUtY2hpbGRyZW4geyBkaXNwbGF5OiBibG9jazsgfVxcbi50eXBvcmEtZXhwb3J0IC5vdXRsaW5lLWl0ZW0geyBwYWRkaW5nLXRvcDogMXB4OyBwYWRkaW5nLWJvdHRvbTogMXB4OyB9XFxuLnR5cG9yYS1leHBvcnQgLm91dGxpbmUtaXRlbTpob3ZlciB7IG1hcmdpbi1yaWdodDogLThweDsgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG4udHlwb3JhLWV4cG9ydCAub3V0bGluZS1leHBhbmRlcjo6YmVmb3JlIHsgY29udGVudDogXFxcIitcXFwiOyBmb250LWZhbWlseTogaW5oZXJpdDsgdG9wOiAtMXB4OyB9XFxuLnR5cG9yYS1leHBvcnQgLm91dGxpbmUtZXhwYW5kZXI6aG92ZXI6OmJlZm9yZSwgLnR5cG9yYS1leHBvcnQgLm91dGxpbmUtaXRlbS1vcGVuID4gLm91dGxpbmUtaXRlbSA+IC5vdXRsaW5lLWV4cGFuZGVyOjpiZWZvcmUgeyBjb250ZW50OiBcXFwi4oiSXFxcIjsgfVxcbi50eXBvcmEtZXhwb3J0LWNvbGxhcHNlLW91dGxpbmUgLm91dGxpbmUtY2hpbGRyZW4geyBkaXNwbGF5OiBub25lOyB9XFxuLnR5cG9yYS1leHBvcnQtY29sbGFwc2Utb3V0bGluZSAub3V0bGluZS1pdGVtLW9wZW4gPiAub3V0bGluZS1jaGlsZHJlbiwgLnR5cG9yYS1leHBvcnQtbm8tY29sbGFwc2Utb3V0bGluZSAub3V0bGluZS1jaGlsZHJlbiB7IGRpc3BsYXk6IGJsb2NrOyB9XFxuLnR5cG9yYS1leHBvcnQtbm8tY29sbGFwc2Utb3V0bGluZSAub3V0bGluZS1leHBhbmRlcjo6YmVmb3JlIHsgY29udGVudDogXFxcIlxcXCIgIWltcG9ydGFudDsgfVxcbi50eXBvcmEtZXhwb3J0LXNob3ctb3V0bGluZSAub3V0bGluZS1pdGVtLWFjdGl2ZSA+IC5vdXRsaW5lLWl0ZW0gLm91dGxpbmUtbGFiZWwgeyBmb250LXdlaWdodDogNzAwOyB9XFxuLm1kLWlubGluZS1tYXRoLWNvbnRhaW5lciBtangtY29udGFpbmVyIHsgem9vbTogMC45NTsgfVxcblxcblxcbi5Db2RlTWlycm9yIHsgaGVpZ2h0OiBhdXRvOyB9XFxuLkNvZGVNaXJyb3IuY20tcy1pbm5lciB7IGJhY2tncm91bmQ6IGluaGVyaXQ7IH1cXG4uQ29kZU1pcnJvci1zY3JvbGwgeyBvdmVyZmxvdzogYXV0byBoaWRkZW47IHotaW5kZXg6IDM7IH1cXG4uQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyLCAuQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVycyB7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYigyMjEsIDIyMSwgMjIxKTsgYmFja2dyb3VuZDogaW5oZXJpdDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbi5Db2RlTWlycm9yLWxpbmVudW1iZXIgeyBwYWRkaW5nOiAwcHggM3B4IDBweCA1cHg7IHRleHQtYWxpZ246IHJpZ2h0OyBjb2xvcjogcmdiKDE1MywgMTUzLCAxNTMpOyB9XFxuLmNtLXMtaW5uZXIgLmNtLWtleXdvcmQgeyBjb2xvcjogcmdiKDExOSwgMCwgMTM2KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1hdG9tLCAuY20tcy1pbm5lci5jbS1hdG9tIHsgY29sb3I6IHJnYigzNCwgMTcsIDE1Myk7IH1cXG4uY20tcy1pbm5lciAuY20tbnVtYmVyIHsgY29sb3I6IHJnYigxNywgMTAyLCA2OCk7IH1cXG4uY20tcy1pbm5lciAuY20tZGVmIHsgY29sb3I6IHJnYigwLCAwLCAyNTUpOyB9XFxuLmNtLXMtaW5uZXIgLmNtLXZhcmlhYmxlIHsgY29sb3I6IHJnYigwLCAwLCAwKTsgfVxcbi5jbS1zLWlubmVyIC5jbS12YXJpYWJsZS0yIHsgY29sb3I6IHJnYigwLCA4NSwgMTcwKTsgfVxcbi5jbS1zLWlubmVyIC5jbS12YXJpYWJsZS0zIHsgY29sb3I6IHJnYigwLCAxMzYsIDg1KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1zdHJpbmcgeyBjb2xvcjogcmdiKDE3MCwgMTcsIDE3KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1wcm9wZXJ0eSB7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IH1cXG4uY20tcy1pbm5lciAuY20tb3BlcmF0b3IgeyBjb2xvcjogcmdiKDE1MiwgMjYsIDI2KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1jb21tZW50LCAuY20tcy1pbm5lci5jbS1jb21tZW50IHsgY29sb3I6IHJnYigxNzAsIDg1LCAwKTsgfVxcbi5jbS1zLWlubmVyIC5jbS1zdHJpbmctMiB7IGNvbG9yOiByZ2IoMjU1LCA4NSwgMCk7IH1cXG4uY20tcy1pbm5lciAuY20tbWV0YSB7IGNvbG9yOiByZ2IoODUsIDg1LCA4NSk7IH1cXG4uY20tcy1pbm5lciAuY20tcXVhbGlmaWVyIHsgY29sb3I6IHJnYig4NSwgODUsIDg1KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1idWlsdGluIHsgY29sb3I6IHJnYig1MSwgMCwgMTcwKTsgfVxcbi5jbS1zLWlubmVyIC5jbS1icmFja2V0IHsgY29sb3I6IHJnYigxNTMsIDE1MywgMTE5KTsgfVxcbi5jbS1zLWlubmVyIC5jbS10YWcgeyBjb2xvcjogcmdiKDE3LCAxMTksIDApOyB9XFxuLmNtLXMtaW5uZXIgLmNtLWF0dHJpYnV0ZSB7IGNvbG9yOiByZ2IoMCwgMCwgMjA0KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1oZWFkZXIsIC5jbS1zLWlubmVyLmNtLWhlYWRlciB7IGNvbG9yOiByZ2IoMCwgMCwgMjU1KTsgfVxcbi5jbS1zLWlubmVyIC5jbS1xdW90ZSwgLmNtLXMtaW5uZXIuY20tcXVvdGUgeyBjb2xvcjogcmdiKDAsIDE1MywgMCk7IH1cXG4uY20tcy1pbm5lciAuY20taHIsIC5jbS1zLWlubmVyLmNtLWhyIHsgY29sb3I6IHJnYigxNTMsIDE1MywgMTUzKTsgfVxcbi5jbS1zLWlubmVyIC5jbS1saW5rLCAuY20tcy1pbm5lci5jbS1saW5rIHsgY29sb3I6IHJnYigwLCAwLCAyMDQpOyB9XFxuLmNtLW5lZ2F0aXZlIHsgY29sb3I6IHJnYigyMjEsIDY4LCA2OCk7IH1cXG4uY20tcG9zaXRpdmUgeyBjb2xvcjogcmdiKDM0LCAxNTMsIDM0KTsgfVxcbi5jbS1oZWFkZXIsIC5jbS1zdHJvbmcgeyBmb250LXdlaWdodDogNzAwOyB9XFxuLmNtLWRlbCB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XFxuLmNtLWVtIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XFxuLmNtLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxcbi5jbS1lcnJvciB7IGNvbG9yOiByZWQ7IH1cXG4uY20taW52YWxpZGNoYXIgeyBjb2xvcjogcmVkOyB9XFxuLmNtLWNvbnN0YW50IHsgY29sb3I6IHJnYigzOCwgMTM5LCAyMTApOyB9XFxuLmNtLWRlZmluZWQgeyBjb2xvcjogcmdiKDE4MSwgMTM3LCAwKTsgfVxcbmRpdi5Db2RlTWlycm9yIHNwYW4uQ29kZU1pcnJvci1tYXRjaGluZ2JyYWNrZXQgeyBjb2xvcjogcmdiKDAsIDI1NSwgMCk7IH1cXG5kaXYuQ29kZU1pcnJvciBzcGFuLkNvZGVNaXJyb3Itbm9ubWF0Y2hpbmdicmFja2V0IHsgY29sb3I6IHJnYigyNTUsIDM0LCAzNCk7IH1cXG4uY20tcy1pbm5lciAuQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgeyBiYWNrZ3JvdW5kOiBpbmhlcml0OyB9XFxuLkNvZGVNaXJyb3IgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IH1cXG4uQ29kZU1pcnJvci1zY3JvbGwgeyBoZWlnaHQ6IDEwMCU7IG91dGxpbmU6IDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgYmFja2dyb3VuZDogaW5oZXJpdDsgfVxcbi5Db2RlTWlycm9yLXNpemVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlciwgLkNvZGVNaXJyb3ItaHNjcm9sbGJhciwgLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlciwgLkNvZGVNaXJyb3ItdnNjcm9sbGJhciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogNjsgZGlzcGxheTogbm9uZTsgb3V0bGluZTogMHB4OyB9XFxuLkNvZGVNaXJyb3ItdnNjcm9sbGJhciB7IHJpZ2h0OiAwcHg7IHRvcDogMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9XFxuLkNvZGVNaXJyb3ItaHNjcm9sbGJhciB7IGJvdHRvbTogMHB4OyBsZWZ0OiAwcHg7IG92ZXJmbG93OiBhdXRvIGhpZGRlbjsgfVxcbi5Db2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXIgeyByaWdodDogMHB4OyBib3R0b206IDBweDsgfVxcbi5Db2RlTWlycm9yLWd1dHRlci1maWxsZXIgeyBsZWZ0OiAwcHg7IGJvdHRvbTogMHB4OyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVycyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDBweDsgcGFkZGluZy1ib3R0b206IDEwcHg7IHotaW5kZXg6IDM7IG92ZXJmbG93LXk6IGhpZGRlbjsgfVxcbi5Db2RlTWlycm9yLWd1dHRlciB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IGhlaWdodDogMTAwJTsgYm94LXNpemluZzogY29udGVudC1ib3g7IHBhZGRpbmctYm90dG9tOiAzMHB4OyBtYXJnaW4tYm90dG9tOiAtMzJweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVyLXdyYXBwZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDQ7IGJhY2tncm91bmQ6IDBweCAwcHggIWltcG9ydGFudDsgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IH1cXG4uQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IGJvdHRvbTogMHB4OyB6LWluZGV4OiA0OyB9XFxuLkNvZGVNaXJyb3ItZ3V0dGVyLWVsdCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgY3Vyc29yOiBkZWZhdWx0OyB6LWluZGV4OiA0OyB9XFxuLkNvZGVNaXJyb3ItbGluZXMgeyBjdXJzb3I6IHRleHQ7IH1cXG4uQ29kZU1pcnJvciBwcmUgeyBib3JkZXItcmFkaXVzOiAwcHg7IGJvcmRlci13aWR0aDogMHB4OyBiYWNrZ3JvdW5kOiAwcHggMHB4OyBmb250LWZhbWlseTogaW5oZXJpdDsgZm9udC1zaXplOiBpbmhlcml0OyBtYXJnaW46IDBweDsgd2hpdGUtc3BhY2U6IHByZTsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyBjb2xvcjogaW5oZXJpdDsgei1pbmRleDogMjsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogdmlzaWJsZTsgfVxcbi5Db2RlTWlycm9yLXdyYXAgcHJlIHsgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3JkLWJyZWFrOiBub3JtYWw7IH1cXG4uQ29kZU1pcnJvci1jb2RlIHByZSB7IGJvcmRlci1yaWdodDogMzBweCBzb2xpZCB0cmFuc3BhcmVudDsgd2lkdGg6IGZpdC1jb250ZW50OyB9XFxuLkNvZGVNaXJyb3Itd3JhcCAuQ29kZU1pcnJvci1jb2RlIHByZSB7IGJvcmRlci1yaWdodDogbm9uZTsgd2lkdGg6IGF1dG87IH1cXG4uQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDBweDsgei1pbmRleDogMDsgfVxcbi5Db2RlTWlycm9yLWxpbmV3aWRnZXQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDI7IG92ZXJmbG93OiBhdXRvOyB9XFxuLkNvZGVNaXJyb3Itd3JhcCAuQ29kZU1pcnJvci1zY3JvbGwgeyBvdmVyZmxvdy14OiBoaWRkZW47IH1cXG4uQ29kZU1pcnJvci1tZWFzdXJlIHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAwcHg7IG92ZXJmbG93OiBoaWRkZW47IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxcbi5Db2RlTWlycm9yLW1lYXN1cmUgcHJlIHsgcG9zaXRpb246IHN0YXRpYzsgfVxcbi5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdmlzaWJpbGl0eTogaGlkZGVuOyBib3JkZXItcmlnaHQ6IG5vbmU7IHdpZHRoOiAwcHg7IH1cXG4uQ29kZU1pcnJvciBkaXYuQ29kZU1pcnJvci1jdXJzb3IgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cXG4uQ29kZU1pcnJvci1mb2N1c2VkIGRpdi5Db2RlTWlycm9yLWN1cnNvciB7IHZpc2liaWxpdHk6IGluaGVyaXQ7IH1cXG4uY20tc2VhcmNoaW5nIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMCwgMC40KTsgfVxcbnNwYW4uY20tdW5kZXJsaW5lZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XFxuc3Bhbi5jbS1zdHJpa2V0aHJvdWdoIHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cXG4uY20tdHctc3ludGF4ZXJyb3IgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTUzLCAwLCAwKTsgfVxcbi5jbS10dy1kZWxldGVkIHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cXG4uY20tdHctaGVhZGVyNSB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cXG4uY20tdHctbGlzdGl0ZW06Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cXG4uY20tdHctYm94IHsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyBib3JkZXItdG9wLXdpZHRoOiAwcHggIWltcG9ydGFudDsgfVxcbi5jbS10dy11bmRlcmxpbmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxcbkBtZWRpYSBwcmludCB7XFxuICAuQ29kZU1pcnJvciBkaXYuQ29kZU1pcnJvci1jdXJzb3IgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cXG59XFxuXFxuXFxuOnJvb3Qge1xcbiAgICAtLXByaW1hcnktY29sb3I6ICMzNzM1MmY7XFxuICAgIC0tYmctY29sb3I6ICNmZmZmZmY7XFxuICAgIC0tYmctY29sb3ItZGFyazogI2Y3ZjZmMztcXG4gICAgLS1kYXJrLXRyYWl0OiAjZTllOWU3O1xcbiAgICAtLWxpZ2h0LXRyYWl0LTEwMDogI2VjZWRlYztcXG4gICAgLS1saWdodC10cmFpdC0yMDA6ICNjNzAwMDA7XFxuICAgIC0tbGlnaHQtdHJhaXQtMzAwOiAjMzczNTJmO1xcbiAgICAtLWxpZ2h0LXRyYWl0LTQwMDogI2Y3ZjZmMztcXG4gICAgLS10ZXh0LWNvbG9yOiAjMzczNTJmO1xcbiAgICAtLXRleHQtY29sb3Itc2Vjb25kYXJ5OiAjNzM3MjZlO1xcbiAgICAtLXRleHQtaGlnaGxpZ2h0LWNvbG9yOiAjZmZmO1xcbiAgICAtLXRleHQtaGlnaGxpZ2h0LWJnOiByZ2JhKHZhcigtLXByaW1hcnktY29sb3ItcmdiKSwgMC4zKTtcXG4gICAgLS1zZWxlY3QtdGV4dC1iZy1jb2xvcjogI2MwZTVmNDtcXG5cXHQtLXNlYXJjaC1zZWxlY3QtdGV4dC1jb2xvcjojNDQ4MzYxO1xcbiAgICAtLXNlYXJjaC1zZWxlY3QtYmctY29sb3I6ICNlZGYzZWM7XFxuICAgIC0tY29kZS1jb2xvcjogIzlhNmUzYTtcXG4gICAgLS1ib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIC0tZm9udC1zaXplOiAxNnB4O1xcbiAgICAtLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIEhlbHZldGljYSwgXFxcIkFwcGxlIENvbG9yIEVtb2ppXFxcIiwgQXJpYWwsIHNhbnMtc2VyaWYsIFxcXCJTZWdvZSBVSSBFbW9qaVxcXCIsIFxcXCJTZWdvZSBVSSBTeW1ib2xcXFwiO1xcbiAgICAtLW1vbm9zcGFjZTogJ1NGIE1vbm8gTWVkaXVtJywgJ0ZpcmEgQ29kZScsICdDb3VzaW5lJywgJ0NvbnNvbGFzJywgbW9ub3NwYWNlO1xcbiAgICAtLWhlYWRpbmctY2hhci1jb2xvcjogdmFyKC0tbGlnaHQtdHJhaXQtNDAwKTtcXG4gICAgLS1jb2xvci1wb3BvdmVyLWJnLWNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgLS1yYXdibG9jay1lZGl0LXBhbmVsLWJkOiB2YXIoLS1iZy1jb2xvci1kYXJrKTtcXG4gICAgLS1jb250cm9sLXRleHQtY29sb3I6ICM3MjcwNmI7XFxuICAgIC0tbWV0YS1jb250ZW50LWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcXG4gICAgLS1wcmltYXJ5LWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xcbiAgICAtLXNpZGUtYmFyLWJnLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1kYXJrKTtcXG4gICAgLS1pdGVtLWhvdmVyLWJnLWNvbG9yOiAjZThlN2U0O1xcbiAgICAtLWFjdGl2ZS1maWxlLWJnLWNvbG9yOiAjZThlN2U0O1xcbiAgICAtLWFjdGl2ZS1maWxlLWJvcmRlci1jb2xvcjogdmFyKC0tYmctY29sb3IpO1xcbiAgICAtLXdpbmRvdy1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iZy1jb2xvcik7XFxuICAgIC0tZm9jdXMtcmluZy1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbmh0bWwge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XFxufVxcblxcbmJvZHkge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xcbiAgICBsaW5lLWhlaWdodDogMS42O1xcbn1cXG5cXG5jb2RlIHtcXG4gICAgY29sb3I6ICNlYzU3NTc7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVkZWI7XFxuICAgIHBhZGRpbmc6IDAgMnB4IDAgMnB4O1xcbn1cXG5cXG4jd3JpdGUge1xcbiAgICBtYXgtd2lkdGg6IDg2MHB4O1xcbiAgICBtYXJnaW46IDAgYXV0bztcXG4gICAgcGFkZGluZzogMzBweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDBweCkge1xcbiAgICAjd3JpdGUge1xcbiAgICAgICAgbWF4LXdpZHRoOiAxMDI0cHg7XFxuICAgIH1cXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxODAwcHgpIHtcXG4gICAgI3dyaXRlIHtcXG4gICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xcbiAgICB9XFxufVxcblxcbiN3cml0ZT51bDpmaXJzdC1jaGlsZCwgI3dyaXRlPm9sOmZpcnN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXRvcDogMzBweDtcXG59XFxuXFxuYSB7XFxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcXG59XFxuXFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gICAgY3Vyc29yOiB0ZXh0O1xcbn1cXG5cXG5oMTpob3ZlciBhLmFuY2hvciwgaDI6aG92ZXIgYS5hbmNob3IsIGgzOmhvdmVyIGEuYW5jaG9yLCBoNDpob3ZlciBhLmFuY2hvciwgaDU6aG92ZXIgYS5hbmNob3IsIGg2OmhvdmVyIGEuYW5jaG9yIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbn1cXG5cXG5oMSB0dCwgaDEgY29kZSwgaDIgdHQsIGgyIGNvZGUsIGgzIHR0LCBoMyBjb2RlLCBoNCB0dCwgaDQgY29kZSwgaDUgdHQsIGg1IGNvZGUsIGg2IHR0LCBoNiBjb2RlIHtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbn1cXG5cXG5oMSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcXG4gICAgZm9udC1zaXplOiAyLjJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMztcXG59XFxuXFxuaDIge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XFxuICAgIGZvbnQtc2l6ZTogMS43NWVtO1xcbiAgICBsaW5lLWhlaWdodDogMS4yMjU7XFxufVxcblxcbmgzIHtcXG4gICAgZm9udC1zaXplOiAxLjRlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDM7XFxufVxcblxcbmg0IHtcXG4gICAgZm9udC1zaXplOiAxLjJlbTtcXG59XFxuXFxuaDUge1xcbiAgICBmb250LXNpemU6IDFlbTtcXG59XFxuXFxuaDYge1xcbiAgICBmb250LXNpemU6IDFlbTtcXG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LXRyYWl0LTMwMCk7XFxufVxcblxcbnAsIGJsb2NrcXVvdGUsIHVsLCBvbCwgZGwsIHRhYmxlIHtcXG4gICAgbWFyZ2luOiAwLjhlbSAwO1xcbn1cXG5cXG5saT5vbCwgbGk+dWwge1xcbiAgICBtYXJnaW46IDAgMDtcXG59XFxuXFxuaHIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC10cmFpdC0xMDApO1xcbiAgICBoZWlnaHQ6IDEuNXB4O1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuYSxcXG4ubWQtZGVmLXVybCB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBib3JkZXItYm90dG9tOjAuMDVlbSBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMzczNTJmO1xcbiAgICBvcGFjaXR5OjAuNjtcXG4gICAgdHJhbnNpdGlvbjogYWxsIC4xcyBlYXNlLWluOyBcXG59XFxuXFxuYTpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgb3BhY2l0eToxO1xcbn1cXG5cXG5zdXAubWQtZm9vdG5vdGUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC10cmFpdC00MDApO1xcbiAgICBjb2xvcjogIzg4ODg4NDtcXG59XFxuXFxubGkgcC5maXJzdCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuXFxudWwsIG9sIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbn1cXG5cXG51bDpmaXJzdC1jaGlsZCwgb2w6Zmlyc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tdG9wOiAwLjM1JTtcXG59XFxuXFxudWw6bGFzdC1jaGlsZCwgb2w6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxufVxcblxcbm1hcmssIC50eS1maWxlLXNlYXJjaC1tYXRjaC10ZXh0LCAubWQtc2VhcmNoLWhpdCB7XFxuICAgIGJhY2tncm91bmQ6ICNmZGViZWM7XFxuXFx0Y29sb3I6ICNkNDRjNDc7XFxufVxcblxcbm1hcmsge1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIGNvbG9yOiAjNDAyYzFiO1xcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZWNjODtcXG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgcGFkZGluZy10b3A6IDJweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDJweDtcXG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7XFxufVxcblxcbi5tZC1zZWFyY2gtaGl0ICoge1xcbiAgICBjb2xvcjogdmFyKC0tc2VhcmNoLXNlbGVjdC10ZXh0LWNvbG9yKTtcXG59XFxuXFxuLyogU2VhcmNoIGhpZ2hsaWdodCAqL1xcbi5jbS1zZWFyY2gtaGl0LkNvZGVNaXJyb3Itc2VsZWN0ZWR0ZXh0LCAubWQtc2VhcmNoLWhpdC5tZC1zZWFyY2gtc2VsZWN0LCAubWQtc2VhcmNoLXNlbGVjdCB7XFxuICAgIG91dGxpbmU6IDBweCBzb2xpZCB2YXIoLS1zZWFyY2gtc2VsZWN0LXRleHQtY29sb3IpO1xcbn1cXG5cXG4ub3V0bGluZS1pdGVtLnNlbGVjdCwgLnR5LXNlYXJjaC1pdGVtLWxpbmUuc2VsZWN0LCAudHktc2VhcmNoLWl0ZW0uc2VsZWN0IHtcXG4gICAgb3V0bGluZS13aWR0aDogMnB4O1xcbn1cXG5cXG4ub3V0bGluZS1pdGVtLnNlbGVjdCB7XFxuICAgIG91dGxpbmUtb2Zmc2V0OiAwcHg7XFxufVxcblxcbmJsb2NrcXVvdGUge1xcbiAgICBtYXJnaW4tbGVmdDogMS43NXB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcXG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgcGFkZGluZzogMTBweCAxNHB4IDdweCAyMnB4O1xcbn1cXG5cXG5ibG9ja3F1b3RlIGJsb2NrcXVvdGUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG5cXG50YWJsZSB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHdvcmQtYnJlYWs6IGluaXRpYWw7XFxufVxcblxcbnRhYmxlIHRyIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRhcmstdHJhaXQpO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxufVxcblxcbnRhYmxlIHRyIHRoIHtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstdHJhaXQpO1xcbiAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDZweCAxM3B4O1xcbn1cXG5cXG50YWJsZSB0ciB0ZCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstdHJhaXQpO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDZweCAxM3B4O1xcbn1cXG5cXG50YWJsZSB0ciB0aDpmaXJzdC1jaGlsZCwgdGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbn1cXG5cXG50YWJsZSB0ciB0aDpsYXN0LWNoaWxkLCB0YWJsZSB0ciB0ZDpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG59XFxuXFxuXFxua2JkIHtcXG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmctY29sb3ItZGFyayk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstdHJhaXQpO1xcbiAgICBib3gtc2hhZG93OiAwIDJweCAwIHZhcigtLWRhcmstdHJhaXQpO1xcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1zZWNvbmRhcnkpO1xcbn1cXG5cXG4ubWQtZmVuY2VzLCBjb2RlLCB0dCB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjZmMztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuICAgIHBhZGRpbmc6IDJweCA0cHggMHB4IDRweDtcXG4gICAgZm9udC1zaXplOiAwLjk3NWVtO1xcbiAgICBmb250LXdlaWdodDogbWVkaXVtO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKVxcbn1cXG4ubWQtZmVuY2VzIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcXG4gICAgbWFyZ2luLXRvcDogMTVweDtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcXG59XFxuXFxuI3dyaXRlIHByZS5tZC1tZXRhLWJsb2NrIHtcXG4gICAgcGFkZGluZzogMXJlbTtcXG4gICAgZm9udC1zaXplOiA4NSU7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1kYXJrKTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3Itc2Vjb25kYXJ5KTtcXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4jd3JpdGUgLm1hdGhqYXgtYmxvY2sgLm1kLXJhd2Jsb2NrLXRvb2x0aXAge1xcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbn1cXG5cXG4jd3JpdGUgLm1hdGhqYXgtYmxvY2sgLm1kLW1hdGgtY29udGFpbmVyIHtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxufVxcblxcbiN3cml0ZSAubWQtbWF0aGJsb2NrLXBhbmVsIC5tZC1yYXdibG9jay1jb250cm9sOmZpcnN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG59XFxuXFxuLm1kLW1hdGhqYXgtbWlkbGluZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yKTtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xcbn1cXG5cXG4ubWQtaW5saW5lLW1hdGggc2NyaXB0IHtcXG4gICAgY29sb3I6IHZhcigtLWNvZGUtY29sb3IpO1xcbn1cXG5cXG4uQ29kZU1pcnJvci1saW5lcyB7XFxuICAgIHBhZGRpbmctbGVmdDogNHB4O1xcbn1cXG5cXG4uY29kZS10b29sdGlwIHtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxufVxcblxcbiN3cml0ZSAuY29kZS10b29sdGlwIHtcXG4gICAgYm90dG9tOiBpbml0aWFsO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGxlZnQ6IGluaXRpYWw7XFxuICAgIHJpZ2h0OiAtMXB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2xvci1kYXJrKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay10cmFpdCk7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgICBib3JkZXItdG9wOiAwO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKTtcXG59XFxuXFxuI3dyaXRlIC5tZC1tYXRoYmxvY2stcGFuZWwgLmNvZGUtdG9vbHRpcCB7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3JkZXI6IG5vbmU7XFxufVxcblxcbi8qIFRPRE8gKi9cXG4jd3JpdGUgLm1kLXRhc2stbGlzdC1pdGVtPmlucHV0IHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbml0aWFsO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgLyogYm9yZGVyLXJhZGl1czogMTAwJTsgKi9cXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjQ1cmVtO1xcbiAgICBoZWlnaHQ6IDAuOTVyZW07XFxuICAgIHdpZHRoOiAwLjk1cmVtO1xcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zNXM7XFxufVxcblxcbiN3cml0ZSAubWQtdGFzay1saXN0LWl0ZW0+aW5wdXQ6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG5cXG4jd3JpdGUgLm1kLXRhc2stbGlzdC1pdGVtPmlucHV0W2NoZWNrZWRdIHtcXG4gICAgYmFja2dyb3VuZDogIzJlYWFkYztcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJlYWFkYztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XFxufVxcblxcbiN3cml0ZSAubWQtdGFzay1saXN0LWl0ZW0+aW5wdXRbY2hlY2tlZF06OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgY29udGVudDogJ+Kckyc7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgbWFyZ2luLXRvcDogMC4wNXJlbTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB0ZXh0LWFsaWduOiBhYnNvbHV0ZTtcXG4gICAgY29sb3I6IHZhcigtLWJnLWNvbG9yKTtcXG4gICAgZm9udC1zaXplOiAwLjc1ZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA3NjA7XFxufVxcblxcbiN3cml0ZSAubWQtdGFzay1saXN0LWl0ZW0+aW5wdXRbY2hlY2tlZF06OmFmdGVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XFxufVxcblxcbi8qIFRPRE8gKi9cXG4ubWQtaW1hZ2U+Lm1kLW1ldGEge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG4gICAgcGFkZGluZzogMnB4IDBweCAwcHggNHB4O1xcbiAgICBmb250LXNpemU6IDAuOWVtO1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG59XFxuXFxuLm1kLXRvYyB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xcbn1cXG5cXG4vKiBTb3VyY2UgbW9kZSAqL1xcbi5Db2RlTWlycm9yLmNtLXMtdHlwb3JhLWRlZmF1bHQgKiwgLmNtLXMtdHlwb3JhLWRlZmF1bHQgKiB7XFxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKSAhaW1wb3J0YW50O1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBtZWRpdW07XFxufVxcblxcbi5Db2RlTWlycm9yLmNtLXMtdHlwb3JhLWRlZmF1bHQgZGl2LkNvZGVNaXJyb3ItY3Vyc29yIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yKTtcXG59XFxuXFxuLnNpZGViYXItdGFicyB7XFxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxufVxcblxcbi5vdXRsaW5lLWV4cGFuZGVyIHtcXG4gICAgd2lkdGg6IDEuNXJlbTtcXG4gICAgdmVydGljYWwtYWxpZ246IGluaXRpYWw7XFxufVxcblxcbi5vdXRsaW5lLWV4cGFuZGVyOmJlZm9yZSwgLm91dGxpbmUtZXhwYW5kZXI6aG92ZXI6YmVmb3JlLCAub3V0bGluZS1pdGVtLW9wZW4+Lm91dGxpbmUtaXRlbT4ub3V0bGluZS1leHBhbmRlcjpiZWZvcmUsIC5vdXRsaW5lLWl0ZW0tb3Blbj4ub3V0bGluZS1pdGVtPi5vdXRsaW5lLWV4cGFuZGVyOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcZjEyNVxcXCI7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjVtcyBlYXNlLWluLW91dDtcXG59XFxuXFxuLm91dGxpbmUtaXRlbS1vcGVuPi5vdXRsaW5lLWl0ZW0+Lm91dGxpbmUtZXhwYW5kZXI6aG92ZXI6YmVmb3JlLCAub3V0bGluZS1pdGVtLW9wZW4+Lm91dGxpbmUtaXRlbT4ub3V0bGluZS1leHBhbmRlcjpiZWZvcmUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxufVxcblxcbi5vdXRsaW5lLWxhYmVsOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbn1cXG5cXG4jdG9jLWRyb3BtZW51IHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmctY29sb3ItZGFyayk7XFxufVxcblxcbiN0b2MtZHJvcG1lbnUgLm91dGxpbmUtdGl0bGUge1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcblxcbi5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuLmNvbnRleHQtbWVudSB7XFxuICAgIGJvcmRlcjogbm9uZSFpbXBvcnRhbnQ7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KSBicmlnaHRuZXNzKDEuMSk7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWRhcmspO1xcbiAgICBib3gtc2hhZG93OiAwIDI1LjZweCA1Ny42cHggMCByZ2JhKDAsIDAsIDAsIC4yMiksIDAgNC44cHggMTQuNHB4IDAgcmdiYSgwLCAwLCAwLCAuMTgpIWltcG9ydGFudDtcXG59XFxuXFxuLmZpbGUtbm9kZS1iYWNrZ3JvdW5kIHtcXG4gICAgaGVpZ2h0OiAzMXB4O1xcbn1cXG5cXG4uZmlsZS1ub2RlLWNvbnRlbnQ6aG92ZXIgLmZpbGUtbm9kZS1pY29uLCAuZmlsZS1ub2RlLWNvbnRlbnQ6aG92ZXIgLmZpbGUtbm9kZS1vcGVuLXN0YXRlIHtcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG59XFxuXFxuLmZpbGUtbm9kZS1pY29uIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5maWxlLWxpYnJhcnktbm9kZTpub3QoLmZpbGUtbm9kZS1yb290KTpmb2N1cz4uZmlsZS1ub2RlLWNvbnRlbnQge1xcbiAgICBvdXRsaW5lOiBub25lO1xcbn1cXG5cXG4vKiBOZXcgZmlsZSBhbmltYXRpb24gKi9cXG4uYmxpbmstYXJlYSB7XFxuICAgIGFuaW1hdGlvbjogbm9uZTtcXG59XFxuXFxuLmZpbGUtbGlzdC1pdGVtLXN1bW1hcnkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XFxufVxcblxcbiNtZC1zZWFyY2hwYW5lbCBpbnB1dCB7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG5cXG4jbWQtc2VhcmNocGFuZWwgaW5wdXQ6Zm9jdXMge1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1ldGEtY29udGVudC1jb2xvcik7XFxufVxcblxcbiNtZC1zZWFyY2hwYW5lbCAuc2VhcmNoLXR5cGUtc2VsZWN0aW9uIHtcXG4gICAgd2lkdGg6IGF1dG87XFxufVxcblxcbiNtZC1zZWFyY2hwYW5lbCAuYnRuOm5vdCguY2xvc2UtYnRuKTpob3ZlciB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcblxcbi5tYWMtc2VhbWxlc3MtbW9kZSAjdHlwb3JhLXNpZGViYXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zaWRlLWJhci1iZy1jb2xvcik7XFxufVxcblxcbiNtZC1ub3RpZmljYXRpb24gLmJ0biB7XFxuICAgIGJvcmRlcjogMDtcXG59XFxuXFxuLyogQ09ERSBISUdITElHSFQgKi9cXG5wcmUuQ29kZU1pcnJvci1saW5lIHtcXG4gICAgY29sb3I6ICM5OTk5OTkhaW1wb3J0YW50XFxufVxcblxcbi5jbS12YXJpYWJsZSB7XFxuICAgIGNvbG9yOiAjMzczNTJmIWltcG9ydGFudDtcXG59XFxuXFxuLmNtLWtleXdvcmQge1xcbiAgICBjb2xvcjogIzAyNzdhYSAhaW1wb3J0YW50XFxufVxcblxcbi5jbS10YWcge1xcbiAgICBjb2xvcjogI2ZmNWE1YSFpbXBvcnRhbnRcXG59XFxuXFxuLmNtLXZhcmlhYmxlLTMge1xcbiAgICBjb2xvcjogIzQ4ZmYwMCFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1icmFja2V0LCAuY20tZXJyb3Ige1xcbiAgICBjb2xvcjogI2ZmNWE1YSFpbXBvcnRhbnRcXG59XFxuXFxuLmNtLWF0dHJpYnV0ZSB7XFxuICAgIGNvbG9yOiAjMDI3N2FhIWltcG9ydGFudDtcXG59XFxuXFxuLmNtLWRlZiB7XFxuICAgIGNvbG9yOiAjZGM0YTY4IWltcG9ydGFudDtcXG59XFxuXFxuLmNtLWNvbW1lbnQge1xcbiAgICBjb2xvcjogIzcwODA5MCFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS1zdHJpbmcge1xcbiAgICBjb2xvcjogIzY2OTkwMCFpbXBvcnRhbnQ7XFxuICAgIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IGNvbW1vbi1saWdhdHVyZXMhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tdGFnOm5vdCgpIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuXFxuLmNtLW9wZXJhdG9yIHtcXG4gICAgY29sb3I6ICM5YTZlM2IhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tbnVtYmVyIHtcXG4gICAgY29sb3I6ICM5OTAwNTUhaW1wb3J0YW50O1xcbn1cXG5cXG4uY20tbWV0YSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKSAhaW1wb3J0YW50O1xcbiAgICBmb250LXdlaWdodDogNzAwIWltcG9ydGFudDtcXG59XFxuXFxuLmNtLWF0b20geyBjb2xvcjogIzg0NWRjNDsgfVxcblxcbi5jbS1idWlsdGluIHtcXG4gICAgY29sb3I6ICM2Njk5MDAgIWltcG9ydGFudDtcXG59XFxuXFxuLmNtLXByb3BlcnR5IHtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS12YXJpYWJsZS0yIHtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpICFpbXBvcnRhbnQ7XFxufVxcblxcbi5jbS12YXJpYWJsZS0zIHtcXG4gICAgY29sb3I6ICM4NDVkYzQ7XFxufVxcblxcbi8qIENPREUgSElHSExJR0hUICovXFxuLmZpbGUtdHJlZS1ub2RlLmFjdGl2ZT4uZmlsZS1ub2RlLWJhY2tncm91bmQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY3RpdmUtZmlsZS1iZy1jb2xvcik7XFxuICAgIGJvcmRlci1sZWZ0OiAwcHggc29saWQgI2RhZDlkNiFpbXBvcnRhbnQ7XFxuICAgIGJvcmRlci1jb2xvcjogI2RhZDlkNiFpbXBvcnRhbnQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGU3ZTQhaW1wb3J0YW50O1xcbn1cXG5cXG4uQ29kZU1pcnJvci1ndXR0ZXJzIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2YxZjNmNDUwO1xcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG5cXG4udHktZm9vdGVyLCAuc2lkZWJhci1mb290ZXIsIGZvb3RlciB7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTIwJSkgYmx1cigyMHB4KSBicmlnaHRuZXNzKDAuODUpO1xcbiAgICBib3JkZXI6IG5vbmUhaW1wb3J0YW50O1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmNmYzO1xcbn1cXG5cXG4uY29kZS10b29sdGlwIHtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzEzMzM0O1xcbiAgICBib3gtc2hhZG93OiAwIDI1LjZweCA1Ny42cHggMCByZ2JhKDAsIDAsIDAsIC41MiksIDAgNC44cHggMTQuNHB4IDAgcmdiYSgwLCAwLCAwLCAuMjgpIWltcG9ydGFudDtcXG59XFxuXFxuI3NpZGViYXItZmlsZXMtbWVudSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgYm9yZGVyOiBub25lIWltcG9ydGFudDtcXG4gICAgYm94LXNoYWRvdzogMCAyNS42cHggNTcuNnB4IDAgI2Y3ZjZmMywgMCA0LjhweCAxNC40cHggMCByZ2JhKDAsIDAsIDAsIC4yOCk7XFxufVxcblxcbi5jb2RlLXRvb2x0aXAubWQtdG9vbHRpcC1oaWRlLm1kLWhvdmVyLXRpcCB7XFxuICAgIGJveC1zaGFkb3c6IDAgMjUuNnB4IDU3LjZweCAwIHJnYmEoMCwgMCwgMCwgLjUyKSwgMCA0LjhweCAxNC40cHggMCByZ2JhKDAsIDAsIDAsIC4yOCk7XFxufVxcblxcbiN0eXBvcmEtc2lkZWJhciB7XFxuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5cXG4jZm9vdGVyLXdvcmQtY291bnQtaW5mbywgI3NwZWxsLWNoZWNrLXBhbmVsIHtcXG4gICAgYm9yZGVyOiBub25lIWltcG9ydGFudDtcXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBzYXR1cmF0ZSgxMjAlKSBibHVyKDIwcHgpIGJyaWdodG5lc3MoMC44NSkhaW1wb3J0YW50O1xcbiAgICBib3gtc2hhZG93OiAwIDI1LjZweCA1Ny42cHggMCByZ2JhKDAsIDAsIDAsIC4zMiksIDAgNC44cHggMTQuNHB4IDAgcmdiYSgwLCAwLCAwLCAuMjgpIWltcG9ydGFudDtcXG59XFxuXFxuLyogV2luZG93cy9MaW51eCB1bmlib2R5IG1vZGUgKi9cXG4ubWVnYW1lbnUtY29udGVudCxcXG4ubWVnYW1lbnUtb3BlbmVkIGhlYWRlciB7XFxuICAgIGNvbG9yOiAgdmFyKC0tcHJpbWFyeS1jb2xvcik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLWRhcmspO1xcbn1cXG5cXG4jcmVjZW50LWZpbGUtcGFuZWwtYWN0aW9uLWJ0biB7XFxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICAgIGJvcmRlcjogMXB4IHZhcigtLWxpZ2h0LXRyYWl0LTMwMCkgc29saWQ7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LXBhbmVsIHRhYmxlIHRkOm50aC1jaGlsZCgxKSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmctY29sb3ItZGFyayk7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LXBhbmVsIHRhYmxlIHRkOm50aC1jaGlsZCgyKSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmctY29sb3ItZGFyayk7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LXBhbmVsIHRib2R5IHRyOmhvdmVyIHRkOm50aC1jaGlsZCgxKSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKCAtLWFjdGl2ZS1maWxlLWJnLWNvbG9yKTtcXG59XFxuXFxuLm1lZ2FtZW51LW1lbnUtcGFuZWwgdGJvZHkgdHI6aG92ZXIgdGQ6bnRoLWNoaWxkKDIpIHtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoIC0tYWN0aXZlLWZpbGUtYmctY29sb3IpO1xcbn1cXG5cXG4ubWVnYW1lbnUtbWVudS1wYW5lbCBpbnB1dFt0eXBlPSd0ZXh0J10ge1xcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgICBib3JkZXI6IDFweCB2YXIoLS1jb250cm9sLXRleHQtY29sb3IpIHNvbGlkO1xcbn1cXG5cXG4jcmVjZW50LWZpbGUtcGFuZWwtYWN0aW9uLWJ0biB7XFxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LCAubWVnYW1lbnUtY29udGVudCB7XFxuXFx0YmFja2dyb3VuZDogdmFyKC0tc2lkZS1iYXItYmctY29sb3IpO1xcblxcdGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcXG59XFxuXFxuI3RvcC10aXRsZWJhciwgI3RvcC10aXRsZWJhciAqIHtcXG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG5cXHRjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LWhlYWRlciAjbWVnYW1lbnUtbWVudS1oZWFkZXItdGl0bGU6YmVmb3JlIHtcXG5cXHRjb2xvcjogIHZhcigtLXRleHQtY29sb3IpO1xcbn1cXG5cXG5tZWdhbWVudS1iYWNrLWJ0biB7XFxuXFx0Y29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xcblxcdGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LWhlYWRlciAjbWVnYW1lbnUtbWVudS1oZWFkZXItdGl0bGUsXFxuLm1lZ2FtZW51LW1lbnUtaGVhZGVyOmhvdmVyLFxcbi5tZWdhbWVudS1tZW51LWhlYWRlcjpmb2N1cyB7XFxuXFx0Y29sb3I6IGluaGVyaXQ7XFxufVxcblxcbi5tZWdhbWVudS1tZW51LXBhbmVsIHRhYmxlIHRyOm50aC1jaGlsZCgybiArIDEpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIHZhcigtLXNpZGUtYmFyLWJnLWNvbG9yKTtcXG59XFxuXFxuXFxuPC9zdHlsZT48dGl0bGU+5L2/55So6K+05piOPC90aXRsZT5cXG48L2hlYWQ+XFxuPGJvZHkgY2xhc3M9J3R5cG9yYS1leHBvcnQgb3Mtd2luZG93cyc+PGRpdiBjbGFzcz0ndHlwb3JhLWV4cG9ydC1jb250ZW50Jz5cXG48ZGl2IGlkPSd3cml0ZScgIGNsYXNzPScnPjxibG9ja3F1b3RlPjxoMSBpZD0n5YmN6KiAJz48c3Bhbj7liY3oqIA8L3NwYW4+PC9oMT48cD48c3Bhbj7kvb/nlKjor7TmmI7mnInngrnplb/vvIzor7foh6rooYzpgInmi6nmqKHlnZfov5vooYzot7PovazpmIXor7vjgILmnKzkvb/nlKjor7TmmI7kuI3ku4XlhpnkuoZkbeebkuWtkOeahOS4gOS6m+S6i+mhue+8jOS5n+S4gOWumueoi+W6puS4iuS9nOS6huWFs+S6juino+aekOWSjOaWreaPkueahOivtOaYjuOAguaOqOiNkOmVv+aMieS4i+aWueeahOebruW9lee0ouW8leeroOiKgueEtuWQjuWcqOW8ueahhumAieaLqeaJk+W8gOe9kemhteKAlOKAlCZndDvvvIjkvJrlnKjmtY/op4jlmajmiZPlvIDlubbot7PovazliLDnm7jlupTnmoTnq6DoioLvvIzmlK/mjIHpobXpnaLnvKnmlL7vvInnmoTmlrnlvI/ov5vooYzpmIXor7vjgII8L3NwYW4+PC9wPjwvYmxvY2txdW90ZT48ZGl2IGNsYXNzPSdtZC10b2MnIG1kdHlwZT0ndG9jJz48cCBjbGFzcz1cXFwibWQtdG9jLWNvbnRlbnRcXFwiIHJvbGU9XFxcImxpc3RcXFwiPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgxXFxcIiBkYXRhLXJlZj1cXFwibjdcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPkvZXkuLpkbeebkuWtkFxcXCI+5L2V5Li6ZG3nm5LlrZA8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgxXFxcIiBkYXRhLXJlZj1cXFwibjI1XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5aaC5L2V5L2/55SoXFxcIj7lpoLkvZXkvb/nlKg8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjI2XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIjeDXlhazpkqXlkoxqc29u5YWs6ZKlXFxcIj54NeWFrOmSpeWSjGpzb27lhazpkqU8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjI5XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj6YCa5YWN5YWs6ZKlXFxcIj7pgJrlhY3lhazpkqU8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjQxXFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5pat5o+S5YWs6ZKlXFxcIj7mlq3mj5LlhazpkqU8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjQ0XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj6IGa5ZCI5Ye95pWw5paw54mI5bey56e76ZmkXFxcIj7ogZrlkIjlh73mlbDjgJDmlrDniYjlt7Lnp7vpmaTjgJE8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjUwXFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj6aOe5Lyg5pawXFxcIj7po57kvKDjgJDmlrDjgJE8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjI5OFxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+WIt+aWsOWFrOmSpeaWh+S7tlxcXCI+5Yi35paw5YWs6ZKl5paH5Lu2PC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMVxcXCIgZGF0YS1yZWY9XFxcIm41NlxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+WFrOmSpeacrOi0qFxcXCI+5YWs6ZKl5pys6LSoPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMVxcXCIgZGF0YS1yZWY9XFxcIm44NFxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+Wwj+eZveenkeaZrlxcXCI+5bCP55m956eR5pmuPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm44NVxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+S9leiwk+ino+aekFxcXCI+5L2V6LCT6Kej5p6QPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4xMjZcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPop6PmnpDku47lk6rmnaVcXFwiPuino+aekOS7juWTquadpTwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuMTY2XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5LiA5Lu95pmu5o6l5riF5Y2VXFxcIj7kuIDku73mma7mjqXmuIXljZU8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjE4OVxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+S9leiwk+aWreaPki0tLS0tLemtlOaWrVxcXCI+5L2V6LCT5pat5o+S4oCU4oCUJmd0O+mtlOaWrTwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuMTkyXFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj6a2U5pat55qE5L2/55SoXFxcIj7prZTmlq3nmoTkvb/nlKg8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjIwM1xcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+S9leiwk2Ntc+aooeadv1xcXCI+5L2V6LCTQ01T5qih5p2/PC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMlxcXCIgZGF0YS1yZWY9XFxcIm4yMTlcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPkvZXosJPmlq3mj5LnsbvlsI/nqIvluo9cXFwiPuS9leiwk+aWreaPkuexu+Wwj+eoi+W6jzwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuMjIyXFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5L2V6LCT6YCa5YWN5bCP56iL5bqPXFxcIj7kvZXosJPpgJrlhY3lsI/nqIvluo88L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjIyNFxcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+S9leiwk+WFjeWXheWwj+eoi+W6j1xcXCI+5L2V6LCT5YWN5ZeF5bCP56iL5bqPPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMVxcXCIgZGF0YS1yZWY9XFxcIm4yMjhcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPpmpDol4/mk43kvZxcXFwiPumakOiXj+aTjeS9nDwvYT48L3NwYW4+PHNwYW4gcm9sZT1cXFwibGlzdGl0ZW1cXFwiIGNsYXNzPVxcXCJtZC10b2MtaXRlbSBtZC10b2MtaDJcXFwiIGRhdGEtcmVmPVxcXCJuMjI5XFxcIj48YSBjbGFzcz1cXFwibWQtdG9jLWlubmVyXFxcIiBocmVmPVxcXCIj5YWs6ZKl5LiO56eB6ZKlXFxcIj7lhazpkqXkuI7np4HpkqU8L2E+PC9zcGFuPjxzcGFuIHJvbGU9XFxcImxpc3RpdGVtXFxcIiBjbGFzcz1cXFwibWQtdG9jLWl0ZW0gbWQtdG9jLWgyXFxcIiBkYXRhLXJlZj1cXFwibjIzM1xcXCI+PGEgY2xhc3M9XFxcIm1kLXRvYy1pbm5lclxcXCIgaHJlZj1cXFwiI+mjnueTnOW8ueW5leW6k1xcXCI+6aOe55Oc5by55bmV5bqTPC9hPjwvc3Bhbj48c3BhbiByb2xlPVxcXCJsaXN0aXRlbVxcXCIgY2xhc3M9XFxcIm1kLXRvYy1pdGVtIG1kLXRvYy1oMVxcXCIgZGF0YS1yZWY9XFxcIm4yNThcXFwiPjxhIGNsYXNzPVxcXCJtZC10b2MtaW5uZXJcXFwiIGhyZWY9XFxcIiPms6jmhI/kuovpoblcXFwiPuazqOaEj+S6i+mhuTwvYT48L3NwYW4+PC9wPjwvZGl2PjxwPiZuYnNwOzwvcD48cD4mbmJzcDs8L3A+PGgxIGlkPSfkvZXkuLpkbeebkuWtkCc+PHNwYW4+5L2V5Li6ZG3nm5LlrZA8L3NwYW4+PC9oMT48dWw+PGxpPjxwPjxzcGFuPmRt55uS5a2Q77yM5Y+I5ZCN5by55bmV55uS5a2Q77yM5YaF6YOo5bCB6KOF5LqG5by55bmV5Ye95pWw44CCPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj5kbeebkuWtkOWPquaYr+S4gOS4quaUtue6s2Rt5pWw5o2u55qE55uS5a2Q77yM5LiN5o+Q5L6b5Zyo57q/5pKt5pS+5ZKM5Zyw5Z2A6YeH6ZuG5Yqf6IO944CCPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj5kbeebkuWtkOaPkOS+mzwvc3Bhbj48Y29kZT7lhazpkqU8L2NvZGU+PHNwYW4+5Y+v5Lul6K6p6Kej5p6Q5pys6Lqr5oul5pyJ5LuOZG3nm5LlrZDojrflj5bmlbDmja7nmoTog73lips8L3NwYW4+PC9wPjx1bD48bGk+PHNwYW4+5Luk5omA5pyJ5pat5o+S57G755qE5bCP56iL5bqP6YO96IO955WF5Lqr5by55bmV4oCU4oCUJmd0O+S4jeWGjeWxgOmZkOS6juS4quWIq+eahOWwj+eoi+W6jzwvc3Bhbj48L2xpPjxsaT48c3Bhbj7lhazpkqXlr7l4NeWXheaOoueahOaZrumAmuaOpeWPo+WSjGpzb27mjqXlj6Ppg73mlK/mjIHigJTigJQmZ3Q76Kej5Yaz5LyY6LSoeDXml6Dms5Xkvb/nlKjpl67popg8L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxwPjxzcGFuPmRt55uS5a2Q5Y+v5Lul5L6b5aSW6YOo5bCP56iL5bqP566A5Y2V6LCD55SoPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj5kbeebkuWtkOWPr+S7peaUr+aMgeiOt+WPluW8ueW5leaWh+S7tuW5tuS7pXhtbOagvOW8j+WIhuS6q+KAlOKAlOaWueS+v+WcqOWFtuS7luiuvuWkh+S4iuaUr+aMgeWKoOi9veW8ueW5leeahOaSreaUvuWZqOS4iuWKoOi9veaSreaUvu+8jOS+i+WmguKAnOW8ueW8uVBsYXnigJ08L3NwYW4+PC9wPjwvbGk+PC91bD48cD48c3Bhbj7lpoLkuIrmiYDov7DvvIw8L3NwYW4+PHN0cm9uZz48c3Bhbj5kbeebkuWtkOaJk+egtOS6huWwj+eoi+W6j+S5i+mXtOeahOWjgeWeku+8jOiuqeW8ueW5leiDveWcqOWQhOS4quWwj+eoi+W6j+iHqueUsea1geWKqDwvc3Bhbj48L3N0cm9uZz48c3Bhbj7vvIzlpoLmraTkuIDmnaXvvIzlvLnluZXlip/og73kuZ/lsLHkuI3mmL7lvpflj6rmmK/kuIDkuKroo4XppbDmgKfnmoTlip/og73kuobjgILmjqjojZDphY3lkIjkvb/nlKjnmoTmlq3mj5LnsbvlsI/nqIvluo/mnInmlrDnlarjgIHmkJzni5dR44CBY21z5bCP56iL5bqP562J562J44CC6Iez5LqO5aaC5L2V6I635Y+W5bCP56iL5bqP77yM55yL6L+Z6YeM77yaKOmDqOWIhuinhOWImeeUseS9nOiAhemZkOaXtuWIhuS6q++8jOS4jeWPr+W8uuaxgn4pPC9zcGFuPjwvcD48cD48c3Bhbj7ngrnlh7vpk77mjqXmn6XnnItRUemikemBk+W4luWtkOOAkOWwj+eZveWIneWFpemXqC3mlrDmiYvlhaXpl6jvvIzlpoLkvZXojrflj5blsI/nqIvluo/jgJHvvJo8L3NwYW4+PGEgaHJlZj0naHR0cHM6Ly9xdW4ucXEuY29tL3Fxd2ViL3F1bnByby9zaGFyZT9fd3Y9MyZhbXA7X3d3dj0xMjgmYW1wO2FwcENoYW5uZWw9c2hhcmUmYW1wO2ludml0ZUNvZGU9MXdCdnMxJmFtcDthcHBDaGFubmVsPXNoYXJlJmFtcDtjb250ZW50SUQ9VGpVQSZhbXA7YnVzaW5lc3NUeXBlPTImYW1wO2Zyb209MjQ2NjEwJmFtcDtiaXo9a2EmYW1wO3NoYXJlU291cmNlPTUnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL3F1bi5xcS5jb20vcXF3ZWIvcXVucHJvL3NoYXJlP193dj0zJl93d3Y9MTI4JmFwcENoYW5uZWw9c2hhcmUmaW52aXRlQ29kZT0xd0J2czEmYXBwQ2hhbm5lbD1zaGFyZSZjb250ZW50SUQ9VGpVQSZidXNpbmVzc1R5cGU9MiZmcm9tPTI0NjYxMCZiaXo9a2Emc2hhcmVTb3VyY2U9NTwvYT48L3A+PHA+Jm5ic3A7PC9wPjxoMSBpZD0n5aaC5L2V5L2/55SoJz48c3Bhbj7lpoLkvZXkvb/nlKg8L3NwYW4+PC9oMT48aDIgaWQ9J3g15YWs6ZKl5ZKManNvbuWFrOmSpSc+PHNwYW4+eDXlhazpkqXlkoxqc29u5YWs6ZKlPC9zcGFuPjwvaDI+PHA+PHNwYW4+54K55Ye755Sf5oiQeDXlhazpkqXlkoxqc29u5YWs6ZKl77yM5oyJ5qC85byP5aGr5YaZ77yM5re75Yqg5LqG5YWs6ZKl55qE6Kej5p6Q5Y+j5bCG5Lya5aSN5Yi25Yiw5Ymq5YiH5p2/77yM54K55Ye76a2U5pat6YWN572u54S25ZCO5re75Yqg5Y2z5Y+v5L2/55SoPC9zcGFuPjwvcD48cD48c3Bhbj7kvb/nlKjmt7vliqDkuoblhazpkqXnmoTop6PmnpDlj6Pljrvop6PmnpDop4bpopHml6Dop4bop4TliJnvvIjnibnliKvms6jmhI/lv4XpobvlhbPpl63mlrDnlarnmoTlvLnluZXlvIDlhbPvvJvkuI3mlK/mjIHprZTmlq3lpJrnur/ot6/vvInvvIzpg73lj6/ku6Xojrflj5blvLnluZXmlbDmja48L3NwYW4+PC9wPjxoMiBpZD0n6YCa5YWN5YWs6ZKlJz48c3Bhbj7pgJrlhY3lhazpkqU8L3NwYW4+PC9oMj48cD48c3Bhbj7pgJrlhY3lhazpkqXmmK/kuIDkuKrog73osIPlj5ZkbeebkuWtkOaVsOaNrueahOWXheaOouaooeW8j+eahOWKqOaAgeino+aekOaooeadvzwvc3Bhbj48L3A+PHA+PHNwYW4+5Y+q6ZyA6KaBPC9zcGFuPjxzdHJvbmc+PHNwYW4+5pu/5o2iPC9zcGFuPjwvc3Ryb25nPjxzcGFuPueOsOaciemAmuWFjeWwj+eoi+W6j+eahOWKqOaAgeino+aekOeahGxhennljbPlj6/jgILkuL7kuKrkvovlrZDkvovlpoLnu5kxOTIw6YCa5YWN5bCP56iL5bqP5pu/5o2ibGF6ee+8mjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS9mYTk4ZjIzODZiN2Y3YzczZGYwZmM2MWQwZWYwZDkwZjI0MGZlZDJmLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMjM1MTM5NjY4XFxcIj48L3A+PHA+PHNwYW4+5oiQ5ZOB5bCP56iL5bqP5aaC5LiL77yaPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcInRleHRcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwidGV4dFxcXCI+PGRpdiBzdHlsZT1cXFwib3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3B4OyBoZWlnaHQ6IDBweDsgdG9wOiAxMC40cHg7IGxlZnQ6IDhweDtcXFwiPjx0ZXh0YXJlYSBhdXRvY29ycmVjdD1cXFwib2ZmXFxcIiBhdXRvY2FwaXRhbGl6ZT1cXFwib2ZmXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTFlbTsgcGFkZGluZzogMHB4OyB3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDFlbTsgb3V0bGluZTogbm9uZTtcXFwiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxcXFwiIHRhYmluZGV4PVxcXCItMVxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zaXplclxcXCIgc3R5bGU9XFxcIm1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy1ib3R0b206IDBweDtcXFwiPjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWxpbmVzXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyBvdXRsaW5lOiBub25lO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48c3Bhbj48c3Bhbj7igIs8L3NwYW4+eDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTtcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItY29kZVxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWFjdGl2ZWxpbmVcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCBDb2RlTWlycm9yLWxpbmViYWNrZ3JvdW5kXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItYWN0aXZlbGluZS1ndXR0ZXJcXFwiIHN0eWxlPVxcXCJsZWZ0OiAwcHg7IHdpZHRoOiAwcHg7XFxcIj48L2Rpdj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPmh0dHBzOi8vY21kLmltL2M0NjU8L3NwYW4+PC9wcmU+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbS10ZXh0PVxcXCJcXFwiIGNtLXp3c3A9XFxcIlxcXCI+XFxuPC9zcGFuPjwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPuWwj+eoi+W6j++8mjE5MjBwa2k8L3NwYW4+PC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDBweDsgd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB0b3A6IDc0cHg7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlcnNcXFwiIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDc0cHg7XFxcIj48L2Rpdj48L2Rpdj48L2Rpdj48L3ByZT48cD48c3Bhbj7kvYbmmK/ov5nkuKrliqjmgIHop6PmnpDmqKHmnb/lpoLmnpzlpZflnKh1cmzliqDlr4bnmoTpgJrlhY3lsI/nqIvluo/pgqPkuYjlsIbml6Dms5XljLnphY3liLDlvLnluZXmlbDmja7vvIzkvovlpoLlvbHop4blt6XljoLvvIzlpoLkuIvlm77miYDnpLo8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vMzMzOGQ4Y2U4YTY3ZTcwMGJmZjBiZGU4MjU3OWRmMzdjZGNjN2QzZi5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyNTA5MTkwOTU5MVxcXCI+PC9wPjxwPjxzcGFuPuS9huWKqOaAgeino+aekOaooeadv+S+neaXp+WPr+eUqO+8jOS+neaXp+S8muaMieeFp+W8ueW5leagvOW8j+aLvOaOpemTvuaOpei/lOWbnumihOeVmeeahOW8ueW5leaOpeWPo+aWueS+v+iHquW3seaJi+WKqOa3u+WKoOW8ueW5leaVsOaNru+8iOivt+mYheivu+makOiXj+aTjeS9nC3po57nk5zlvLnluZXlupPpg6jliIbvvInvvIzpnZ7luLjpgILlkIjkvJjotKjliIfniYfot6/nur/nmoTpgJrlhY3lsI/nqIvluo/vvIzpgqPkuYjnm7TmjqXlpZflsLHmmK/kuobvvIjlpoLmnpzkuI3mh4Lku4DkuYjmmK/liIfniYfvvIzor7fpmIXor7vlsI/nmb3np5Hmma7pg6jliIbvvInjgII8L3NwYW4+PC9wPjxwPjxtYXJrPjxzcGFuPlRpcO+8mumAmuWFjeWFrOmSpeWll+eUqOeahOaYr+mAmueUqOWMuemFjeaooeadv++8jOWvueS6jumcgOimgeWkp+mHj+ivt+axguWPguaVsOavlOWmglVB44CBcmVmZXJlcuOAgWNvb2tpZeetieeahOWwkemDqOWIhuinhumikeWXheaOouWHuuadpeeahOmTvuaOpeaXoOazleato+W4uOaSreaUvuOAgummmeWFjeaaguaXtuaQnuS4jeWumu+8jOWFiOeUqOWMuemFjemhtuedgOOAgjwvc3Bhbj48L21hcms+PHNwYW4+5L2T546w5Zyo5LiK5pa55bCP56iL5bqP55qE5bCx5piv6IqS5p6c57q/6Lev5Yeg5LmO5LiN5Y+v5pKt5pS+77yM5L2G5bm25LiN5piv5aWX6L+Z5Liq5Yqo5oCB6Kej5p6Q6IqS5p6c57q/6Lev5bCx5peg5rOV5pKt5pS+77yM5Y+q5piv5LiK5pa55bCP56iL5bqP55qE6IqS5p6c57q/6Lev5omA55So6Kej5p6Q77yM6YCa55So5Yy56YWN5peg5rOV5ZeF5o6i5b6X5Yiw5Y+v5pKt5pS+6ZO+5o6l44CC5YOP5LiL5pa55bCP56iL5bqP5bCx5Y+v5Lul77yI5q+U6L6D5LiN6ZSZ5LqG77yJ77yaPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcInRleHRcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwidGV4dFxcXCI+PGRpdiBzdHlsZT1cXFwib3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3B4OyBoZWlnaHQ6IDBweDsgdG9wOiAxMC40cHg7IGxlZnQ6IDhweDtcXFwiPjx0ZXh0YXJlYSBhdXRvY29ycmVjdD1cXFwib2ZmXFxcIiBhdXRvY2FwaXRhbGl6ZT1cXFwib2ZmXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTFlbTsgcGFkZGluZzogMHB4OyB3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDFlbTsgb3V0bGluZTogbm9uZTtcXFwiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxcXFwiIHRhYmluZGV4PVxcXCItMVxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zaXplclxcXCIgc3R5bGU9XFxcIm1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy1ib3R0b206IDBweDtcXFwiPjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWxpbmVzXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyBvdXRsaW5lOiBub25lO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48cHJlPjxzcGFuPnh4eHh4eHh4eHg8L3NwYW4+PC9wcmU+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj5odHRwczovL2NtZC5pbS82ZmhrPC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY20tdGV4dD1cXFwiXFxcIiBjbS16d3NwPVxcXCJcXFwiPlxcbjwvc3Bhbj48L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj7lsI/nqIvluo/vvJpBQm1vdmllZG1QS0k8L3NwYW4+PC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDBweDsgd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB0b3A6IDc0cHg7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlcnNcXFwiIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDc0cHg7XFxcIj48L2Rpdj48L2Rpdj48L2Rpdj48L3ByZT48cD4mbmJzcDs8L3A+PGgyIGlkPSfmlq3mj5LlhazpkqUnPjxzcGFuPuaWreaPkuWFrOmSpTwvc3Bhbj48L2gyPjxwPjxzcGFuPuaWreaPkuWFrOmSpeaYr+iwg+eUqOaWreaPkuaooeW8j+eahOWKqOaAgeino+aekOaooeadv+OAgjwvc3Bhbj48bWFyaz48c3Bhbj7lv4XpobvmkK3phY14NeWFrOmSpeaIluiAhWpzb27lhazpkqXlpZflo7PnmoTop6PmnpDlj6Pkvb/nlKjmiY3og73ojrflj5blvLnluZXmlbDmja7lkKbliJnlsLHlkozmma7pgJrnmoTmlq3mj5Lkuoznuqflt67kuI3lpJrvvIzlm6DkuLrlpoLmnpznm7TmjqXorr7nva7mlq3mj5LpmYTliqDlvLnluZXnmoTmqKHlvI/pgqPkuYjlsLHkvJrlkozmt7vliqDkuoblhazpkqXnmoTop6PmnpDlj6Plj5HnlJ/mlbDmja7lhrLnqoHvvIzkuI3lpoLnm7TmjqXnu5nmjqXlj6Pmt7vliqDlhazpkqXmlK/mjIHvvIzkvZXlv4Xorqnmlq3mj5LliqjmgIHop6PmnpDljZXni6zlrp7njrA8L3NwYW4+PC9tYXJrPjxzcGFuPuOAguS4jumAmuWFjeWFrOmSpeWQjOeQhu+8jHVybOWKoOWvhueahOmAmuWFjeWwj+eoi+W6j+mCo+S5iOWwhuaXoOazleWMuemFjeWIsOW8ueW5leaVsOaNruOAguatpOWkluaWreaPkuWFrOmSpTwvc3Bhbj48c3Ryb25nPjxzcGFuPuWPquacieWumOaWuee6v+i3r+aJjeS8mui1sOaWreaPkjwvc3Bhbj48L3N0cm9uZz48c3Bhbj7vvIzlhbbkvZnliIfniYflkoznm7Tpk77nur/ot6/pg73mmK/ll4XmjqLjgII8L3NwYW4+PC9wPjxwPiZuYnNwOzwvcD48aDIgaWQ9J+iBmuWQiOWHveaVsOaWsOeJiOW3suenu+mZpCc+PHNwYW4+6IGa5ZCI5Ye95pWw44CQ5paw54mI5bey56e76Zmk44CRPC9zcGFuPjwvaDI+PHA+PHNwYW4+anNvbuiBmuWQiOWHveaVsO+8jOWPr+S7pei+vuWIsOmtlOaWreWkmue6v+i3r+aViOaenOOAguWboOS4uuWSjOmtlOaWreWkmue6v+i3r+WGsueqge+8jOa3u+WKoOi/meS4quaooeWdl+S+v+aNt+eUn+aIkOiBmuWQiOWHveaVsOOAkOWSjOmtlOaWreS4gOagt+WPquaUr+aMgWpzb27jgJE8L3NwYW4+PC9wPjxwPjxzcGFuPuWPquimgeaMieagvOW8j+i+k+WFpeWwseWPr+S7peS6hu+8jOmAl+WPt+aYr+S4reaWh+eahOmAl+WPt++8jCPkuZ/mmK/kuK3mlofnmoTvvIjomb3nhLbosozkvLzmsqHmnInljLrliKvvvInjgJDms6jmhI/vvJrlkoxqc29u5YWs6ZKl5ZCM55CG77yM6IGa5ZCI5Ye95pWw55Sf5oiQ5ZCO6ZyA6KaB6Ieq6KGM5L+u5pS554m55q6KanNvbueahOWPluWHunVybOaWueW8j++8jOivpuingeWFrOmSpeacrOi0qOOAkTwvc3Bhbj48L3A+PHA+PHNwYW4+6L6T5YWl5a6M5ZCO54K556Gu5a6a55Sf5oiQ55qE6IGa5ZCI5Ye95pWw5Lya5aSN5Yi25Yiw5Ymq6LS05p2/77yM5YaN54K55Ye76a2U5pat6YWN572u5b+r5o236Lez6L2s57KY6LS05Zyo6L6T5YWl5qGG54K55Ye75L+d5a2Y5Y2z5Y+v5re75Yqg5re75Yqg6IGa5ZCI5Ye95pWw6Kej5p6Q6YWN572u44CCPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtL2JiNTc1NmM3MGRkMTQzYTdlOTYyMmRjNDBkZDA1MTdmM2M2YzlmYjQucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjUwMTQ5MTkzODNcXFwiPjwvcD48cD4mbmJzcDs8L3A+PGgyIGlkPSfpo57kvKDmlrAnPjxzcGFuPumjnuS8oOOAkOaWsOOAkTwvc3Bhbj48L2gyPjxwPjxzcGFuPui+k+WFpeWumOe9keWcsOWdgO+8jOWNs+WPr+iOt+WPluW8ueW5leaWh+S7tuW5tui9rOaNouS4unhtbOagvOW8j+W8ueW5leaWh+S7tuW/q+aNt+WIhuS6q+WIsOWFtuWug+iuvuWkh+aUr+aMgeWKoOi9veW8ueW5leeahOaSreaUvuWZqOi/m+ihjOaSreaUvuOAgjwvc3Bhbj48L3A+PHA+PHNwYW4+5a6Y572R5Zyw5Z2A5bu66K6u5LiN6KaB5pC65bim5ZCO6Z2i55qE5Y+C5pWw77yaPC9zcGFuPjwvcD48cD48c3Bhbj7kvovlpoLov5nmoLfkuIDkuKrlrpjnvZHpk77mjqXvvJo8L3NwYW4+PGEgaHJlZj0naHR0cHM6Ly93d3cuaXFpeWkuY29tL3ZfMXlubHBxYmFpcDAuaHRtbD92ZnJtPXBjd19ob21lJmFtcDt2ZnJtYmxrPUImYW1wO3Zmcm1yc3Q9ZmNzXzBfcDExJyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly93d3cuaXFpeWkuY29tL3ZfMXlubHBxYmFpcDAuaHRtbD92ZnJtPXBjd19ob21lJnZmcm1ibGs9QiZ2ZnJtcnN0PWZjc18wX3AxMTwvYT48L3A+PHA+PHNwYW4+5L2g5bqU6K+l6L6T5YWl55qE5piv77yaPC9zcGFuPjxhIGhyZWY9J2h0dHBzOi8vd3d3LmlxaXlpLmNvbS92XzF5bmxwcWJhaXAwLmh0bWwnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL3d3dy5pcWl5aS5jb20vdl8xeW5scHFiYWlwMC5odG1sPC9hPjwvcD48cD48c3Bhbj7mjqjojZDkvb/nlKg8L3NwYW4+PHN0cm9uZz48c3Bhbj7lvLnlvLlQbGF55pKt5pS+5ZmoPC9zcGFuPjwvc3Ryb25nPjxzcGFuPu+8jOacieedgOWujOWWhOeahOW8ueW5lei/h+a7pOWKn+iDve+8jOWmguS4i++8mjwvc3Bhbj48L3A+PHA+PHNwYW4+6YeN6KaB55qE5Y+C5pWw6K6+572u56S65L6L77yMPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzViYzhmZWU5OTlhZTIzMTljNTM3ZTJiNjdmZTE4MzkwN2UwMmYwYmMucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzhjNjkzNGVjMTdiZWYwMWNjZDNiMTA2ZWQxY2FlMDlmZGYxMWU1MTEucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiPjwvcD48cD48c3Bhbj7lm6DkuLrojrflj5bliLDnmoTlvLnluZXmlbDph4/pnZ7luLjlpJrvvIzlm6DmraTov5nkuKrorr7nva7pnZ7luLjlv4XopoHvvIE8L3NwYW4+PC9wPjxibG9ja3F1b3RlPjxwPjxzcGFuPuacgOaWsOeJiOeahOW8ueW8uVBsYXnmlK/mjIHkuLLmtYHmkq3mlL7vvIzmiYDku6XmjqjojZDpmL/ph4zkupHnm5jlsI/nmb3nvorkv53lrZjop4bpopHliLDnvZHnm5jlubborr7nva7lvLnlvLlQbGF55Li66buY6K6k56ys5LiJ5pa55pKt5pS+5Zmo77yM6YKj5LmI5bCx5Y+v5Lul5LiN6ZyA6KaB5LiL6L296KeG6aKR5Yiw5pys5Zyw77yM6ICM55u05o6l572R55uY5pKt5pS+5bm25Yqg6L295by55bmVPC9zcGFuPjwvcD48cD48c3Bhbj7jgJDpmYTvvJrlvLnlvLlQbGF56buY6K6k5pSv5oyB5LiA5Lqb5Yqo5ryr56uZ44CB6IW+6K6v44CB5aWH5byC44CBYmlsaeWSjGJpbGnmvKvmuLjlvLnluZXvvIzlhbbkuK3ohb7orq/lkozlpYflvILpnIDopoHmiYvliqjovpPlhaXnvZHlnYDvvIzlk5Tlk6nlj6/ku6Xnm7TmjqXmkJzntKLjgJE8L3NwYW4+PC9wPjwvYmxvY2txdW90ZT48aDIgaWQ9J+WIt+aWsOWFrOmSpeaWh+S7tic+PHNwYW4+5Yi35paw5YWs6ZKl5paH5Lu2PC9zcGFuPjwvaDI+PHA+PHNwYW4+5YWs6ZKl55qE6L+c56iL5Luj56CB5Z+65LqO6L+c56iL77yM5aaC5p6c5Y+R55Sf5Y+Y5Yqo5Y+v6IO95b2x5ZON5L2/55So77yM6L+Z5pe25YCZ5Y+v5Lul5L2/55So54K55Ye7ZG3nm5LlrZDnmoTpppbpobXmrKLov47lm77moYjljbPlj6/muIXpmaTnvJPlrZg8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vYmM3NmI4NjJmY2MyZDk2NDZmY2E4N2U5NzJmNGYwZjU0ZmY5NTk5Yi5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyNTAxMTkyOTYyNlxcXCI+PC9wPjxwPjxzcGFuPuWFtuWunuS4jeeUqOeQhuS8mu+8jOWboOS4uuS4gOiIrOaDheWGteS4i+S4jeS8muWKqOi/nOeoi+aWh+S7tu+8jOiAjOS4lOW+iOWkp+WPr+iDveacquadpeW+iOmVv+W+iOmVv+S4gOauteaXtumXtOmDveS4jeS8muacieabtOaWsO+8jO+8jDwvc3Bhbj48L3A+PHA+PHNwYW4+5aaC6Iul5riF6Zmk57yT5a2Y5ZCO5Y+R546w6YCa5YWN5bCP56iL5bqP5rKh5pyJ5Yi35paw77yM5Y+v5Lul5YmN5b6A5L2/55So5LqG6YCa5YWN5YWs6ZKl55qE55u45bqU5bCP56iL5bqP6ZW/5oyJ5bCP56iL5bqP5qCH6aKY77yM54S25ZCO5Zyo5by55qGG5Lit6YCJ5oup5riF6Zmk57yT5a2Y5Y2z5Y+v44CCPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzIxOTMxNGY3MzU0Nzc2OWFkYzUzMWRmZDM5NTZiMjJiOGE2YjY0NDMucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjUyMzM0NDQwNjNcXFwiPjwvcD48aDEgaWQ9J+WFrOmSpeacrOi0qCc+PHNwYW4+5YWs6ZKl5pys6LSoPC9zcGFuPjwvaDE+PHA+PHNwYW4+5YW25a6e5omA6LCT5YWs6ZKl5bCx5piv5LiT6Zeo5Li66Kej5p6Q6LCD55SoZG3nm5LlrZDlhoXlvLnluZXmlbDmja7ogIzlhpnnmoTkuIDkuKrlh73mlbDvvIzliIbkuLp4NeWSjGpzb27lh73mlbDvvIzpgqPkuYjnn6XpgZPkuoblhazpkqXmnKzotKjkuYvlkI7lrozlhajkuI3pnIDopoHlgJ/liqlkbeebkuWtkOiHquW4pueahOeUn+aIkOWFrOmSpeaooeWdl++8jOWPr+S7peiHquW3seWhq+WFheaOpeWPo+aIluiuuOS8muabtOS+v+aNt+OAgjwvc3Bhbj48bWFyaz48c3Bhbj7lj6rpnIDopoHorrDkvY/kuIDngrnvvIxkbeebkuWtkOWPquaYr+S4gOS4quaUtue6s2Rt5pWw5o2u55qE55uS5a2Q77yBPC9zcGFuPjwvbWFyaz48c3Bhbj7lhazpkqXlo7PlrZDlpoLkuIvvvJo8L3NwYW4+PC9wPjx1bD48bGk+PHA+PHNwYW4+eDXlhazpkqU8L3NwYW4+PC9wPjxwcmUgY2xhc3M9XFxcIm1kLWZlbmNlcyBtZC1lbmQtYmxvY2sgdHktY29udGFpbi1jbSBtb2RlTG9hZGVkXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcIlxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPuS/ruaUueKYheWQjeensOKYhTwvc3Bhbj48L3NwYW4+PC9wcmU+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+ZnVuY3Rpb248L3NwYW4+ICg8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj52aXBVcmw8L3NwYW4+KSB7PC9zcGFuPjwvcHJlPjxkaXYgY2xhc3M9XFxcIlxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+dHJ5PC9zcGFuPiB7PC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1kZWZcXFwiPm9yaWdpblVybDwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj49PC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj4n6Kej5p6Q5o6l5Y+jJzwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPis8L3NwYW4+PHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlLTJcXFwiPnZpcFVybDwvc3Bhbj47PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+cmM8L3NwYW4+KDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCJodHRwczovL2NoZW55aW5nMi5jb2RpbmcubmV0L3AvaGlrZXIvZC9qc1dpdGhkbS9naXQvcmF3L21hc3Rlci94NVBLSS5qc1xcXCI8L3NwYW4+LCA8c3BhbiBjbGFzcz1cXFwiY20tbnVtYmVyXFxcIj4yNDwvc3Bhbj4pOzwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPmdldEZvcjwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlLTJcXFwiPnZpcFVybDwvc3Bhbj4sPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlLTJcXFwiPm9yaWdpblVybDwvc3Bhbj4pOzwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgIH08L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj5jYXRjaDwvc3Bhbj4gKDxzcGFuIGNsYXNzPVxcXCJjbS1kZWZcXFwiPmU8L3NwYW4+KSB7PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj5yZXR1cm48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCJcXFwiPC9zcGFuPjs8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICB9PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+fTwvc3Bhbj48L3ByZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMHB4OyB3aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7IHRvcDogMjczcHg7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlcnNcXFwiIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDI3M3B4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+Jm5ic3A7PC9wPjwvbGk+PGxpPjxwPjxzcGFuPuaZrumAguaAp2pzb27lhazpkqU8L3NwYW4+PC9wPjxwcmUgY2xhc3M9XFxcIm1kLWZlbmNlcyBtZC1lbmQtYmxvY2sgdHktY29udGFpbi1jbSBtb2RlTG9hZGVkXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PHByZT54PC9wcmU+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcIlxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPuS/ruaUueKYheWQjeensOKYhTwvc3Bhbj48L3NwYW4+PC9wcmU+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+ZnVuY3Rpb248L3NwYW4+ICg8c3BhbiBjbGFzcz1cXFwiY20tZGVmXFxcIj52aXBVcmw8L3NwYW4+KSB7PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+dHJ5PC9zcGFuPiB7PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+IDxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1kZWZcXFwiPmJmdXJsPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPj08L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+SlNPTjwvc3Bhbj4uPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj5wYXJzZTwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5yZXF1ZXN0PC9zcGFuPig8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwi6Kej5p6Q5o6l5Y+jXFxcIjwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj4rPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGUtMlxcXCI+dmlwVXJsPC9zcGFuPiwgezwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+dGltZW91dDwvc3Bhbj46IDxzcGFuIGNsYXNzPVxcXCJjbS1udW1iZXJcXFwiPjUwMDA8L3NwYW4+PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICB9KSkuPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj51cmw8L3NwYW4+Ozwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPnJjPC9zcGFuPig8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwiaHR0cHM6Ly9jaGVueWluZzIuY29kaW5nLm5ldC9wL2hpa2VyL2QvanNXaXRoZG0vZ2l0L3Jhdy9tYXN0ZXIvanNvblBLSS5qc1xcXCI8L3NwYW4+LCA8c3BhbiBjbGFzcz1cXFwiY20tbnVtYmVyXFxcIj4yNDwvc3Bhbj4pOzwvc3Bhbj48L3ByZT48ZGl2IGNsYXNzPVxcXCJcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20ta2V5d29yZFxcXCI+cmV0dXJuPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPmdldEZvcjwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlLTJcXFwiPnZpcFVybDwvc3Bhbj4sPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlLTJcXFwiPmJmdXJsPC9zcGFuPik8c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPis8L3NwYW4+PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcIjt7VXNlci1BZ2VudEAnJyZhbXA7JmFtcDtSZWZlcmVyQCcnfVxcXCI8L3NwYW4+Ozwvc3Bhbj48L3ByZT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgIH08L3NwYW4+PC9wcmU+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj5jYXRjaDwvc3Bhbj4gKDxzcGFuIGNsYXNzPVxcXCJjbS1kZWZcXFwiPmU8L3NwYW4+KSB7PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj5yZXR1cm48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCJcXFwiPC9zcGFuPjs8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICB9PC9zcGFuPjwvcHJlPjxkaXYgY2xhc3M9XFxcIlxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+fTwvc3Bhbj48L3ByZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMHB4OyB3aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7IHRvcDogMzIycHg7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlcnNcXFwiIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDMyMnB4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+PHNwYW4+5pmu6YCC5oCnanNvbuWFrOmSpemSiOWvueWkp+mDqOWIhueahGpzb27op6PmnpDvvIxqc29u6Kej5p6Q6L+U5Zue55qE5pWw5o2u5aSn6YOo5YiG6YO95Y+v5Lul6YCa6L+H6L+Z5Liq5YWs6ZKl5Y+W5Ye65pKt5pS+5Zyw5Z2ALOWFt+S9k+aDheWGteWFt+S9k+WIhuaekOOAguS9huS4jeeuoeWmguS9le+8jOWPquimgeiusOS9j+S/ruaUuWJmdXJs5Y+Y6YeP5Y2z5Y+vPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzEzYTQ2ZTI4ZWQ1NzI5YmQyYmVkYzBlMDcwNzY0MTY4NTljNWVkMzUucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIwODU5MTQyMTlcXFwiPjwvcD48cD48c3Bhbj7kuL7kuKrmr5TovoPnu7zlkIjnmoTkvovlrZDvvIzlpoLkuIs8L3NwYW4+PC9wPjxwcmUgY2xhc3M9XFxcIm1kLWZlbmNlcyBtZC1lbmQtYmxvY2sgdHktY29udGFpbi1jbSBtb2RlTG9hZGVkXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwianNcXFwiPjxkaXYgc3R5bGU9XFxcIm92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDNweDsgaGVpZ2h0OiAwcHg7IHRvcDogMTAuNHB4OyBsZWZ0OiA4cHg7XFxcIj48dGV4dGFyZWEgYXV0b2NvcnJlY3Q9XFxcIm9mZlxcXCIgYXV0b2NhcGl0YWxpemU9XFxcIm9mZlxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIHRhYmluZGV4PVxcXCIwXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xZW07IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxZW07IG91dGxpbmU6IG5vbmU7XFxcIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlclxcXCIgY20tbm90LWNvbnRlbnQ9XFxcInRydWVcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2Nyb2xsXFxcIiB0YWJpbmRleD1cXFwiLTFcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3Itc2l6ZXJcXFwiIHN0eWxlPVxcXCJtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IGJvcmRlci1yaWdodC13aWR0aDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7XFxcIj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4O1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1saW5lc1xcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgb3V0bGluZTogbm9uZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PHByZT48c3Bhbj54eHh4eHh4eHh4PC9zcGFuPjwvcHJlPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbWVhc3VyZVxcXCI+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1jb2RlXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItbGluZWJhY2tncm91bmRcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQgQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlclxcXCIgc3R5bGU9XFxcImxlZnQ6IDBweDsgd2lkdGg6IDBweDtcXFwiPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+PHNwYW4gY2xhc3M9XFxcImNtLWtleXdvcmRcXFwiPnZhcjwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLWRlZlxcXCI+YmZ1cmw8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1vcGVyYXRvclxcXCI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5KU09OPC9zcGFuPi48c3BhbiBjbGFzcz1cXFwiY20tcHJvcGVydHlcXFwiPnBhcnNlPC9zcGFuPig8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPnJlcXVlc3Q8L3NwYW4+KDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCLop6PmnpDlj6NcXFwiPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPis8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+dmlwVXJsPC9zcGFuPiwgezxzcGFuIGNsYXNzPVxcXCJjbS1wcm9wZXJ0eVxcXCI+aGVhZGVyczwvc3Bhbj46IHs8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj5cXFwiVXNlci1BZ2VudFxcXCI8L3NwYW4+OiA8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwi5L6L5aaC77yMRGFydC8yLjE0IChkYXJ0OmlvKVxcXCI8L3NwYW4+LDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmcgY20tcHJvcGVydHlcXFwiPlxcXCJyZWZlcmVyXFxcIjwvc3Bhbj46IDxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPlxcXCLlpKfmpoLnjofmmK/nvZHnq5nln5/lkI1cXFwiPC9zcGFuPn19KSkuPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj5kYXRhPC9zcGFuPi48c3BhbiBjbGFzcz1cXFwiY20tcHJvcGVydHlcXFwiPnVybDwvc3Bhbj47PC9zcGFuPjwvcHJlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAwcHg7IHdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB0cmFuc3BhcmVudDsgdG9wOiA1MHB4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiA1MHB4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+PHNwYW4+aGVhZGVy5piv5pC65bim55qE6K6/6Zeu5p2l5rqQ5L+h5oGvPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPlVzZXItQWdlbnTvvJpVQe+8jOeugOWNleeahOivtOWwseaYr+iuqeino+aekOezu+e7n+WIpOaWreS9oOaYr+S7juWTquS4qua1j+iniOWZqOiuv+mXrueahOe9keermemhtemdou+8jOabtOWkmuivt+iHquihjOeZvuW6pjwvc3Bhbj48L2xpPjxsaT48c3Bhbj7pmaTkuoZVQe+8jOi/mOaciVJlZmVyZXLlj4LmlbDvvJrljbPmnaXmupDvvIznroDljZXnmoTor7TlsLHmmK/orqnop6PmnpDns7vnu5/liKTmlq3kvaDmmK/ku47lk6rph4zorr/pl67nmoTnvZHpobXvvIzmr5TlpoLmmK/kuI3mmK/ku47oh6rlrrbnvZHnq5nov5vooYznmoTorr/pl67lkozmlbDmja7or7fmsYI8L3NwYW4+PC9saT48L3VsPjxwPjxjb2RlPkpTT04ucGFyc2UocmVxdWVzdCgmcXVvdDvop6PmnpDlj6MmcXVvdDsgKyB2aXBVcmwsIHtoZWFkZXJzOiB7JnF1b3Q7VXNlci1BZ2VudCZxdW90OzogJnF1b3Q75L6L5aaC77yMRGFydC8yLjE0IChkYXJ0OmlvKSZxdW90OywmcXVvdDtyZWZlcmVyJnF1b3Q7OiAmcXVvdDvlpKfmpoLnjofmmK/nvZHnq5nln5/lkI0mcXVvdDt9fSkpPC9jb2RlPjxzcGFuPui/meS4gOauteWtl+espuS4suacgOe7iOS8muino+aekOW+l+WIsGpzb27lrZfnrKbkuLLvvIzlgYforr7ojrflvpfnmoTmmK/kuIDmrrXlvaLlpoLkuIvmlrnmoLzlvI/nmoRqc29u5a2X56ym5Liy77yaPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcImpzb25cXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3IgY20tcy1pbm5lciBjbS1zLW51bGwtc2Nyb2xsIENvZGVNaXJyb3Itd3JhcFxcXCIgbGFuZz1cXFwianNvblxcXCI+PGRpdiBzdHlsZT1cXFwib3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3B4OyBoZWlnaHQ6IDBweDsgdG9wOiAxMC40cHg7IGxlZnQ6IDhweDtcXFwiPjx0ZXh0YXJlYSBhdXRvY29ycmVjdD1cXFwib2ZmXFxcIiBhdXRvY2FwaXRhbGl6ZT1cXFwib2ZmXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTFlbTsgcGFkZGluZzogMHB4OyB3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDFlbTsgb3V0bGluZTogbm9uZTtcXFwiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxcXFwiIHRhYmluZGV4PVxcXCItMVxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zaXplclxcXCIgc3R5bGU9XFxcIm1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy1ib3R0b206IDBweDtcXFwiPjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWxpbmVzXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyBvdXRsaW5lOiBub25lO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48cHJlPjxzcGFuPnh4eHh4eHh4eHg8L3NwYW4+PC9wcmU+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcIlxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj57PC9zcGFuPjwvcHJlPjwvZGl2PjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj4nY29kZSc8L3NwYW4+OjxzcGFuIGNsYXNzPVxcXCJjbS1udW1iZXJcXFwiPjIwMDwvc3Bhbj4sPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj4nZGF0YSc8L3NwYW4+Ons8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+J3VybCc8L3NwYW4+OjxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPifov5Tlm57nmoTmkq3mlL7pk77mjqXvvIzkuZ/mmK/miJHku6zopoHlj5blh7rmnaXnmoTmkq3mlL7pk77mjqUnPC9zcGFuPiw8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+J21zZyc8L3NwYW4+OjxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPidzdWNlc3PvvIzop6PmnpDllYbmiJbop6PmnpDkvZzogIXmiJbop6PmnpDotK3kubDogIXpooTlhYjorr7lrprnmoTmtojmga8nPC9zcGFuPjwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPiAmbmJzcDsgIDxzcGFuIGNsYXNzPVxcXCJjbS10YWJcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgY20tdGV4dD1cXFwiXFx0XFxcIj4gICAgPC9zcGFuPn0sPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj4ndHlwZSc8L3NwYW4+OjxzcGFuIGNsYXNzPVxcXCJjbS1zdHJpbmdcXFwiPifop4bpopHnmoTmoLzlvI/nsbvlnovvvIzkvovlpoJtM3U444CBbXA044CBZmx2562JJzwvc3Bhbj4sPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+ICZuYnNwOyAmbmJzcDs8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj4ncGxheWVyJzwvc3Bhbj46PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+J+WPr+S7peeQhuino+S4uuaOqOiNkOS9v+eUqOeahOaSreaUvuWZqCc8L3NwYW4+PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XFxcIiBDb2RlTWlycm9yLWxpbmUgXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxzcGFuIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgc3R5bGU9XFxcInBhZGRpbmctcmlnaHQ6IDAuMXB4O1xcXCI+fTwvc3Bhbj48L3ByZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMHB4OyB3aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7IHRvcDogMjIzcHg7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlcnNcXFwiIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDIyM3B4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+PHNwYW4+6L+Z5LiA5q616L+U5Zue55qE5pWw5o2u5bCx5pivPC9zcGFuPjwvcD48cHJlIGNsYXNzPVxcXCJtZC1mZW5jZXMgbWQtZW5kLWJsb2NrIHR5LWNvbnRhaW4tY20gbW9kZUxvYWRlZFxcXCIgc3BlbGxjaGVjaz1cXFwiZmFsc2VcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yIGNtLXMtaW5uZXIgY20tcy1udWxsLXNjcm9sbCBDb2RlTWlycm9yLXdyYXBcXFwiIGxhbmc9XFxcImpzXFxcIj48ZGl2IHN0eWxlPVxcXCJvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcHg7IGhlaWdodDogMHB4OyB0b3A6IDEwLjRweDsgbGVmdDogOHB4O1xcXCI+PHRleHRhcmVhIGF1dG9jb3JyZWN0PVxcXCJvZmZcXFwiIGF1dG9jYXBpdGFsaXplPVxcXCJvZmZcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiB0YWJpbmRleD1cXFwiMFxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMWVtOyBwYWRkaW5nOiAwcHg7IHdpZHRoOiAxMDAwcHg7IGhlaWdodDogMWVtOyBvdXRsaW5lOiBub25lO1xcXCI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1maWxsZXJcXFwiIGNtLW5vdC1jb250ZW50PVxcXCJ0cnVlXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNjcm9sbFxcXCIgdGFiaW5kZXg9XFxcIi0xXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLXNpemVyXFxcIiBzdHlsZT1cXFwibWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4O1xcXCI+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDtcXFwiPjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItbGluZXNcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IG91dGxpbmU6IG5vbmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjxwcmU+PHNwYW4+eHh4eHh4eHh4eDwvc3Bhbj48L3ByZT48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLW1lYXN1cmVcXFwiPjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTtcXFwiPjwvZGl2PjxkaXYgY2xhc3M9XFxcIkNvZGVNaXJyb3ItY29kZVxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWFjdGl2ZWxpbmVcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCBDb2RlTWlycm9yLWxpbmViYWNrZ3JvdW5kXFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlci1iYWNrZ3JvdW5kIENvZGVNaXJyb3ItYWN0aXZlbGluZS1ndXR0ZXJcXFwiIHN0eWxlPVxcXCJsZWZ0OiAwcHg7IHdpZHRoOiAwcHg7XFxcIj48L2Rpdj48cHJlIGNsYXNzPVxcXCIgQ29kZU1pcnJvci1saW5lIFxcXCIgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIj48c3BhbiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiIHN0eWxlPVxcXCJwYWRkaW5nLXJpZ2h0OiAwLjFweDtcXFwiPjxzcGFuIGNsYXNzPVxcXCJjbS1rZXl3b3JkXFxcIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS1kZWZcXFwiPmJmdXJsPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPj08L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJjbS12YXJpYWJsZVxcXCI+SlNPTjwvc3Bhbj4uPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj5wYXJzZTwvc3Bhbj4oPHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5yZXF1ZXN0PC9zcGFuPig8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwi6Kej5p6Q5Y+jXFxcIjwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcImNtLW9wZXJhdG9yXFxcIj4rPC9zcGFuPiA8c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPnZpcFVybDwvc3Bhbj4sIHs8c3BhbiBjbGFzcz1cXFwiY20tcHJvcGVydHlcXFwiPmhlYWRlcnM8L3NwYW4+OiB7PHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZyBjbS1wcm9wZXJ0eVxcXCI+XFxcIlVzZXItQWdlbnRcXFwiPC9zcGFuPjogPHNwYW4gY2xhc3M9XFxcImNtLXN0cmluZ1xcXCI+XFxcIuS+i+Wmgu+8jERhcnQvMi4xNCAoZGFydDppbylcXFwiPC9zcGFuPiw8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nIGNtLXByb3BlcnR5XFxcIj5cXFwicmVmZXJlclxcXCI8L3NwYW4+OiA8c3BhbiBjbGFzcz1cXFwiY20tc3RyaW5nXFxcIj5cXFwi5aSn5qaC546H5piv572R56uZ5Z+f5ZCNXFxcIjwvc3Bhbj59fSkpPC9zcGFuPjwvcHJlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAwcHg7IHdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB0cmFuc3BhcmVudDsgdG9wOiA1MHB4O1xcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXJzXFxcIiBzdHlsZT1cXFwiZGlzcGxheTogbm9uZTsgaGVpZ2h0OiA1MHB4O1xcXCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9wcmU+PHA+PHNwYW4+54S25ZCO5LuO5LiK5pa56L+Z5LiA5q615pWw5o2u5Lit5Y+W5Ye6ZGF0YeS4reeahHVybO+8jOmAmui/h+WvueixoTwvc3Bhbj48c3Ryb25nPjxzcGFuPiYjMzk7LiYjMzk7PC9zcGFuPjwvc3Ryb25nPjxzcGFuPueahOaWueW8j+iOt+WPlu+8jOWmguS4izwvc3Bhbj48L3A+PHByZSBjbGFzcz1cXFwibWQtZmVuY2VzIG1kLWVuZC1ibG9jayB0eS1jb250YWluLWNtIG1vZGVMb2FkZWRcXFwiIHNwZWxsY2hlY2s9XFxcImZhbHNlXFxcIiBsYW5nPVxcXCJqc1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvciBjbS1zLWlubmVyIGNtLXMtbnVsbC1zY3JvbGwgQ29kZU1pcnJvci13cmFwXFxcIiBsYW5nPVxcXCJqc1xcXCI+PGRpdiBzdHlsZT1cXFwib3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3B4OyBoZWlnaHQ6IDBweDsgdG9wOiAxMC40cHg7IGxlZnQ6IDhweDtcXFwiPjx0ZXh0YXJlYSBhdXRvY29ycmVjdD1cXFwib2ZmXFxcIiBhdXRvY2FwaXRhbGl6ZT1cXFwib2ZmXFxcIiBzcGVsbGNoZWNrPVxcXCJmYWxzZVxcXCIgdGFiaW5kZXg9XFxcIjBcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTFlbTsgcGFkZGluZzogMHB4OyB3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDFlbTsgb3V0bGluZTogbm9uZTtcXFwiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxiYXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVyXFxcIiBjbS1ub3QtY29udGVudD1cXFwidHJ1ZVxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zY3JvbGxcXFwiIHRhYmluZGV4PVxcXCItMVxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1zaXplclxcXCIgc3R5bGU9XFxcIm1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy1ib3R0b206IDBweDtcXFwiPjxkaXYgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7XFxcIj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWxpbmVzXFxcIiByb2xlPVxcXCJwcmVzZW50YXRpb25cXFwiPjxkaXYgcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlOyBvdXRsaW5lOiBub25lO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48cHJlPjxzcGFuPnh4eHh4eHh4eHg8L3NwYW4+PC9wcmU+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1tZWFzdXJlXFxcIj48L2Rpdj48ZGl2IHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWNvZGVcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IHJlbGF0aXZlO1xcXCI+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZFxcXCI+PC9kaXY+PGRpdiBjbGFzcz1cXFwiQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZCBDb2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyXFxcIiBzdHlsZT1cXFwibGVmdDogMHB4OyB3aWR0aDogMHB4O1xcXCI+PC9kaXY+PHByZSBjbGFzcz1cXFwiIENvZGVNaXJyb3ItbGluZSBcXFwiIHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCI+PHNwYW4gcm9sZT1cXFwicHJlc2VudGF0aW9uXFxcIiBzdHlsZT1cXFwicGFkZGluZy1yaWdodDogMC4xcHg7XFxcIj48c3BhbiBjbGFzcz1cXFwiY20tdmFyaWFibGVcXFwiPnVybDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiY20tb3BlcmF0b3JcXFwiPj08L3NwYW4+PHNwYW4gY2xhc3M9XFxcImNtLXZhcmlhYmxlXFxcIj5iZnVybDwvc3Bhbj4uPHNwYW4gY2xhc3M9XFxcImNtLXByb3BlcnR5XFxcIj5kYXRhPC9zcGFuPi48c3BhbiBjbGFzcz1cXFwiY20tcHJvcGVydHlcXFwiPnVybDwvc3Bhbj48L3NwYW4+PC9wcmU+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDBweDsgd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50OyB0b3A6IDI1cHg7XFxcIj48L2Rpdj48ZGl2IGNsYXNzPVxcXCJDb2RlTWlycm9yLWd1dHRlcnNcXFwiIHN0eWxlPVxcXCJkaXNwbGF5OiBub25lOyBoZWlnaHQ6IDI1cHg7XFxcIj48L2Rpdj48L2Rpdj48L2Rpdj48L3ByZT48cD48c3Bhbj7pgqPkuYjlpoLmnpzlsIbkuIrov7DkuKTmraXov57otbfmnaXlhpnvvIzlsLHmmK/kuIrpnaLnmoTnu7zlkIjkvovlrZDkuobjgII8L3NwYW4+PC9wPjxwPiZuYnNwOzwvcD48L2xpPjwvdWw+PGgxIGlkPSflsI/nmb3np5Hmma4nPjxzcGFuPuWwj+eZveenkeaZrjwvc3Bhbj48L2gxPjxoMiBpZD0n5L2V6LCT6Kej5p6QJz48c3Bhbj7kvZXosJPop6PmnpA8L3NwYW4+PC9oMj48dWw+PGxpPjxwPjxzcGFuPuino+aekO+8jOeugOWNleeahOivtOWwseaYr+ino+aekOinhumikeeahOe9kemhteWcsOWdgOW5tui/lOWbnuS4gOS4quWPr+aSreaUvueahOinhumikemTvuaOpTwvc3Bhbj48L3A+PC9saT48bGk+PHA+PHNwYW4+6YKj6LSf6LSj6Kej5p6Q55qE5o6l5Y+j5bCx5piv6Kej5p6Q5o6l5Y+jLOino+aekOaOpeWPo+Wkp+mDvemVv+i/meagt++8mjwvc3Bhbj48c3Ryb25nPjxzcGFuPmh0dHBzOi8v5Z+f5ZCNL+WQhOenjei3r+W+hOWtl+espi/kuIDplb/kuLLkubHkuIPlhavns5/nmoTlrZfnrKbvvIhLZXnvvIkvP3VybD08L3NwYW4+PC9zdHJvbmc+PC9wPjx1bD48bGk+PHNwYW4+5pyA5piO5pi+55qE54m554K55bCx5piv5LulPC9zcGFuPjxzdHJvbmc+PHNwYW4+P3VybD3nu5PmnZ88L3NwYW4+PC9zdHJvbmc+PC9saT48bGk+PHN0cm9uZz48c3Bhbj4/dXJsPTwvc3Bhbj48L3N0cm9uZz48c3Bhbj7lkI7pnaLmjqXnmoTlsLHmmK/op4bpopHnmoTnvZHpobXlnLDlnYA8L3NwYW4+PC9saT48L3VsPjxwPjxzcGFuPuS4vuS4quS+i+WtkO+8muWcqOa1j+iniOWZqOeahOWcsOWdgOagj+i+k+WFpeino+aekOaOpeWPoyvop4bpopHlnLDlnYDlkI7vvIzlm57ovabmiJbliLfmlrDvvIzmtY/op4jlmajlsLHkvJrmkq3mlL7op4bpopHvvIzlpoLkuIvlm77miYDnpLo8L3NwYW4+PC9wPjxwPjxpbWcgc3JjPVxcXCJodHRwczovL2kwLmhkc2xiLmNvbS9iZnMvYWxidW0vOGRkNmU1NzI0OTIyNmYyYjRkYzJiYmYzN2M5YTkxYjZlN2ZmNDVhYS5wbmdcXFwiIHJlZmVycmVycG9saWN5PVxcXCJuby1yZWZlcnJlclxcXCIgYWx0PVxcXCJpbWFnZS0yMDIyMDYyMjAxNDYyMjg3NFxcXCI+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPumCo+S5iOWOn+eQhuaYr+S7gOS5iO+8n+agueaNruWOn+eQhueahOS4jeWQjO+8jOino+aekOS5n+Wkp+iHtOWPr+S7peWIhuS4uu+8mjwvc3Bhbj48L3A+PHVsPjxsaT48cD48c3Bhbj7nrpfms5XnsbvvvJrpgJrov4fop6PmnpDns7vnu5/lhoXnva7nmoR2aXDotKblj7fku47nvZHnq5nkuIrlj5blh7rlnLDlnYA8L3NwYW4+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPuWIh+eJh+exu++8mjwvc3Bhbj48L3A+PHVsPjxsaT48c3Bhbj7ku47nrpfms5Xnsbvop6PmnpDlh7rnmoTnu5PmnpzkuK3nvJPlrZjlubboh6rliqjkuIrkvKDliLDop6PmnpDns7vnu588L3NwYW4+PC9saT48bGk+PHNwYW4+5qC55o2u5LqR55uY5oiW56OB5Yqb562J5aSa56eN6YCU5b6E6YCU5b6E6I635Y+W5Yiw6LWE5rqQ5bm25LiK5Lyg5Yiw6Kej5p6Q57O757ufPC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48cD48c3Bhbj7osIjkuI3kuIrosIHkvJjosIHliqPvvIzlhbfkvZPmg4XlhrXlhbfkvZPliIbmnpA8L3NwYW4+PC9wPjwvbGk+PC91bD48L2xpPjxsaT48cD48c3Bhbj7lhbblrp7miJHku6zkuI3lhbPlv4Pljp/nkIbnmoTor53vvIzop6PmnpDlj6PlupTor6XliIbkuLrku6XkuIvkuKTnsbvvvJo8L3NwYW4+PC9wPjx1bD48bGk+PHNwYW4+5pmu6YCa6Kej5p6Q5Y+j77ya5aaC5LiK5pa55Zu+5L6L5bCx5piv5LiA5Liq5pmu6YCa6Kej5p6Q5Y+j77yM5Lmf5bCx5piv6K+06Kej5p6Q5Y+j5ZCO6Z2i5ou85o6l5Zyw5Z2A5ZCO5Zue6L2m5Yi35paw5bCx5Lya6Ieq5Yqo6L+U5Zue6KeG6aKR5pWw5o2u57uP55Sx5rWP6KeI5Zmo5ZeF5o6i5Ye657uT5p6c5bm25byA5aeL5pKt5pS+77yI6Ieq5bim5pKt5pS+5Zmo5omA5Lul5Y+v5Lul5pKt5pS+77yJ44CCPC9zcGFuPjwvbGk+PGxpPjxzcGFuPmpzb27op6PmnpDlj6PvvJpqc29u5o6l5Y+j5oyJ5LiK5pa55qC85byP5ou85o6l5aW95ZCO5Zue6L2m5Yi35paw6L+U5Zue55qE5piv5LiA5LiqanNvbuWtl+espuS4su+8jOS4jeWPr+S7peebtOaOpeaSreaUvu+8jOW/hemhu+S7juS4reaPkOWPluWHunVybOeEtuWQjuiuqeaSreaUvuWZqOWKoOi9veaJjeiDveaSreaUvu+8iGpzb27op6PmnpDlj6PkuI3mj5Dkvpvmkq3mlL7lmajvvIzoh7Pkuo7lpoLkvZXlj5blh7p1cmzlj6/ku6Xlj4LnhafkuIvmlofnmoTlhazpkqXmnKzotKjpg6jliIbvvInjgILlpoLkuIvlm77miYDnpLrov5Tlm57nmoTlsLHmmK9qc29u5a2X56ym5Liy77yI5Y+v5Lul6Ieq6KGM55m+5bqm5LqG6Kej5LuA5LmI5pivanNvbuagvOW8j++8iTwvc3Bhbj48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzkzMTEzZDZjMjNhOTkxMmI0NzVkMjc4NTBlYjJmNjg1MTJmYzhhOWQucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIwODUwNDM1MjNcXFwiPjxzcGFuPuS4gOiIrOadpeivtOW9seinhmFwcOS9v+eUqOeahOmDveaYr2pzb27op6PmnpDlj6PvvIzmnInoh6rlu7rnmoTvvIzmnInku47op6PmnpDllYbkubDnmoTvvIzkuZ/mnInku47op6PmnpDllYbpgqPph4zlgbfmnaXnmoTjgILlm6DkuLpqc29u6L+U5Zue55qE5pWw5o2u5piv5piO5paH5pWw5o2u77yM55u45bqU55qE6Kej5p6Q6YCf5bqm5Y+v6IO95Lya5pu05b+r77yM5YW35L2T5oOF5Ya15YW35L2T5YiG5p6Q44CCPC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48cD48c3Bhbj7ku47op6PmnpDniYfmupDnmoTop5LluqbmnaXor7TvvIzlj6/ku6XkuLrkuKTnsbvvvJo8L3NwYW4+PC9wPjx1bD48bGk+PHNwYW4+5a6Y6Kej6Kej5p6Q77ya6aG+5ZCN5oCd5LmJ77yM5bCx5piv57uZ5LiA5Liq5a6Y5pa5572R5Z2A77yM6L+U5Zue5LiA5Liq5Y+v5pKt5pS+55qE5Zyw5Z2APC9zcGFuPjwvbGk+PGxpPjxzcGFuPuWIh+eJh+ino+aekO+8muino+aekOWVhuiHquihjOWvueinhumikei1hOa6kOi/m+ihjOWIh+eJh+S4iuS8oOWIsOWbvuW6iuetieS6keerr++8jOeUn+aIkOeJueWumueahOWtl+espuS4suenmOmSpe+8jOWPquacieaLpeacieebuOW6lOenmOmSpeeahOino+aekOWPo+aJjeiDveino+aekOWHuuinhumikeaVsOaNru+8jOS4gOiIrOadpeivtOa1t+WkluW9seeJh+mDveaYr+WIh+eJh+i1hOa6kDwvc3Bhbj48L2xpPjwvdWw+PC9saT48L3VsPjxoMiBpZD0n6Kej5p6Q5LuO5ZOq5p2lJz48c3Bhbj7op6PmnpDku47lk6rmnaU8L3NwYW4+PC9oMj48cD48c3Bhbj7op6PmnpDku47lk6rmnaXvvIzml6DpnZ7lsLHku6XkuIvlh6Dnp408L3NwYW4+PC9wPjx1bD48bGk+PHA+PHNwYW4+5LuO6Kej5p6Q5ZWG5aSE6LSt5LmwPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPuW+iOWkmuW9seinhue9keermemDveS5n+aYr+S9v+eUqOeahOino+aekOS4uueUqOaIt+aPkOS+m+inhumikeaSreaUvuacjeWKoe+8jOiAjOW9seinhue9keermeS7luS7rOaJgOeUqOeahOino+aekOWkp+WkmuWwseadpeiHquS4k+mXqOWBmuino+aekOezu+e7n+eahOermeeCuTwvc3Bhbj48L2xpPjxsaT48c3Bhbj7lvZPnhLbpg6jliIbpg6jliIblvbHop4bnvZHnq5nlkoxhcHDmmK/oh6rouqvni6znq4vliIfniYflrZjlgqjkuI3kvp3otZbop6PmnpDvvIzmr5TlpoLlsI/oi7nmnpzlvbHop4bjgIHpo57nk5xvcueBq+m+meaenOW9seinhuOAgemFt+S6keetiWFwcOS7peWPiuWTlOWYgOetieW9seinhue9keermTwvc3Bhbj48L2xpPjxsaT48c3Bhbj7miKroh7Pnm67liY3kvJjotKjnmoTop6PmnpDllYbmnInmibbpo47jgIHlt6blsrjjgIHmsZ/muZbjgIHpo57kupHnrYnnrYnvvIx85LiN5oyH6Lev5Y+v5Lul6Ieq6KGM55m+5bqm5pCc57Si77yI6K+05LiA5Liq5pCc57Si5byV5pOO55qE5bCP5oqA5ben77yM5aaC5p6c55m+5bqm5ZWl5Lmf5pCc5LiN5Yiw5Y+v5Lul5o2i55So5YW25LuW55qE5pCc57Si5byV5pOO5pCc57Si77yM5ZCM5pe25a2m5Lya5Yip55So5pe26Ze05qOA57Si5Y676I635Y+W5pyA5paw55qE5pCc57Si5pWw5o2u77yM6YKj5LmI5Z+65pys5LiK5Y+v5Lul5pCc5Yiw5L2g5oOz6KaB55qE5Lic6KW/77yJPC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48cD48c3Bhbj7op6PmnpDllYblvIDmlL7nmoTmma7pgJrmjqXlj6M8L3NwYW4+PC9wPjx1bD48bGk+PHNwYW4+6YOo5YiG5aSn5Z6L55qE6Kej5p6Q5ZWG6YO95piv5pyJ5byA5pS+5YWN6LS555qE5LyY6LSo5pmu6YCa6Kej5p6Q5Y+j5pS+5Ye644CC5LiA6Iis5p2l6K+05bCx5a6Y6Kej6ICM6KiA5pmu6YCa5o6l5Y+j5LiOanNvbuaOpeWPo+ebuOavlOi+g+WfuuacrOS4iuWwseaYr+WTjeW6lOmAn+W6puWSjOi1hOa6kOaYr+WQpuWPr+ingeeahOWMuuWIq+OAguW8gOaUvueahOaOpeWPo+S4gOiIrOS4jeaUr+aMgeWIh+eJh++8jOWFt+S9k+aDheWGteWFt+S9k+WIhuaekOOAgjwvc3Bhbj48L2xpPjxsaT48c3Bhbj7kuI3mmK/or7TlvIDmlL7nmoTmma7pgJrmjqXlj6PlsLHkuI3lpb3vvIzlsLHmr5Rqc29u6Kej5p6Q5Y+j5beu77yM5YW35L2T6Zeu6aKY5YW35L2T5YiG5p6Q44CCPC9zcGFuPjxzdHJvbmc+PHNwYW4+5LiN54S25bCx5LiN5Lya5pyJeDXlhazpkqXkuoY8L3NwYW4+PC9zdHJvbmc+PC9saT48L3VsPjwvbGk+PGxpPjxwPjxzcGFuPue9keS4iue9keWPi+WIhuS6q+eahOino+aekDwvc3Bhbj48L3A+PHVsPjxsaT48c3Bhbj7or7Tnmb3kuobnvZHlj4vliIbkuqvnmoTop6PmnpDln7rmnKzkuIrmnIDnu4jpg73mmK/mnaXoh6rop6PmnpDllYbvvIzlvZPnhLbkuZ/mnInlj6/og73mmK/oh6rlu7rnmoTop6PmnpDns7vnu5/vvIzmmK/nmoTop6PmnpDns7vnu5/lj6/ku6Xoh6rlu7rkvYbnu53kuI3mmK/kuIDoiKzkurrogIPomZHnmoQ8L3NwYW4+PC9saT48bGk+PHNwYW4+5ou/572R5LiK5YiG5Lqr55qE6Kej5p6Q5Y+v5Lul5LuO5ZOq6YeM5om+5ZGi77yM5Li+5Liq5L6L5a2Q5q+U5aaC6ISa5pys572R56uZ5LiK6K+45aaC5p+Q5p+Qdmlw6KeG6aKR6Kej5p6Q6ISa5pys5YW25a6e6YO95piv5YaF572u55qE6Kej5p6Q77yM5b2T54S25LiA6Iis5p2l6K+06L+Z5Lqb6ISa5pys5LiK55qE6Kej5p6Q6YO95piv5LiA5Lqb5q+U6L6D5pmu6YCa55qE6Kej5p6Q77yM5b2T54S25Lmf5pyJ5Y+v6IO95Ye6546w5LiA5Lqb5LyY6LSo55qE6Kej5p6QPC9zcGFuPjwvbGk+PGxpPjxzcGFuPuWFtuWunuacieS4gOS4que9keermeW4luWtkOWwseS4k+mXqOaUtumbhuS4gOS6m+ino+aekO+8jOavlOWmgu+8mjwvc3Bhbj48YSBocmVmPSdodHRwczovL3d3dy55cWtmMTAwLmNuLzE3MjUvLmh0bWwnPjxzcGFuPuermemVv+W/heWkh++8geemj+WIqe+8geW9seinhnZpcOino+aekOaOpeWPo+axh+aAu++8geS4jeWumuacn+abtOaWsC3nm4rmgJ3kv7HkuZDpg6ggKHlxa2YxMDAuY24pPC9zcGFuPjwvYT48c3Bhbj7lhbblrp7pgZPplb/ku5PlupPph4zlsLHmnInkuIDkuKrlsI/nqIvluo/lj6vlgZrprZTmlq3op6PmnpDniKzomavvvIjmlbDmja7mnaXmupDlsLHmmK/ov5nkuKrnvZHlnYDvvInvvIzlj6/ku6Xoh6rooYzlnKjpgZPplb/ku5PlupPmkJzntKLlubblr7zlhaU8L3NwYW4+PC9saT48bGk+PHNwYW4+5LiA5Lqb5b2x6KeGUee+pOWSjOW9seinhumikemBk+WPr+iDveS8muWHuueOsOacieS6uuWIhuS6q+ino+aekO+8jOiAjOi/meS6m+ino+aekOW+gOW+gOebuOWvueeul+W+l+S4iuavlOi+g+WPr+eUqOeahOino+aekDwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHA+PHNwYW4+6Ieq6KGM5oqT5Y+WPC9zcGFuPjwvcD48dWw+PGxpPjxzcGFuPuWFtuWunuino+aekOacgOe7iOmDveaYr+adpeiHquino+aekOWVhu+8jOW+iOWkmuW9seinhue9keermeWSjOW9seinhmFwcOmDveaYr+S9v+eUqOeahOino+aekDwvc3Bhbj48L2xpPjxsaT48c3Bhbj7pgqPkuYjlsLHlj6/ku6Xlr7nnvZHnq5nlrqHmn6XnvZHnu5zmlbDmja7miJbogIXmipPlj5ZhcHDmlbDmja7ku47kuK3lj5HnjrDop6PmnpDlj6MmbHQ74oCU4oCUJmd0O+WFt+S9k+eahOiHquihjOeZvuW6puaIluS7juWFtuS7lueahOWcsOaWueS6huinozwvc3Bhbj48L2xpPjxsaT48c3Bhbj7lvZPnhLbnjrDlnKjnmoTlvbHop4bnvZHnq5nlkozlvbHop4ZhcHDlpKflpJrpg73mmK/mnInpmLLnm5fmnLrliLbnmoTvvIzmiYDku6Xlj6/og73pgYfliLDml6Dms5XmipPljIXnmoTpl67popg8L3NwYW4+PC9saT48L3VsPjwvbGk+PC91bD48cD4mbmJzcDs8L3A+PGgyIGlkPSfkuIDku73mma7mjqXmuIXljZUnPjxzcGFuPuS4gOS7veaZruaOpea4heWNlTwvc3Bhbj48L2gyPjxwPjxzcGFuPuS4jeS/neivgeWPr+eUqOaAp++8jOS4jeS/neivgea4heaZsOW6pu+8jOS4jeS/neivgeWTjeW6lOmAn+W6puOAgeS4jeS/neivgS4uLjwvc3Bhbj48L3A+PHA+PHNwYW4+5Y+q6IO95L+d6K+B5a6D5Lus6YO95rS75LqG5b6I5LmFLi7pg73mmK/ogIHniYzlrZAuLjwvc3Bhbj48L3A+PG9sIHN0YXJ0PScnID48bGk+PGEgaHJlZj0naHR0cHM6Ly9qeC5tM3U4LnR2L2ppZXhpLz91cmw9JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9qeC5tM3U4LnR2L2ppZXhpLz91cmw9PC9hPjwvbGk+PGxpPjxhIGhyZWY9J2h0dHBzOi8vd3d3LjgwOTAubGEvODA5MC8/dXJsPScgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSd1cmwnPmh0dHBzOi8vd3d3LjgwOTAubGEvODA5MC8/dXJsPTwvYT48L2xpPjxsaT48YSBocmVmPSdodHRwczovL2p4Lm0zdTgucHcvP3VybD0nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL2p4Lm0zdTgucHcvP3VybD08L2E+PC9saT48bGk+PGEgaHJlZj0naHR0cHM6Ly9qeC5tbWt2LmNuL2pzb24ucGhwP3VybD0nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL2p4Lm1ta3YuY24vanNvbi5waHA/dXJsPTwvYT48L2xpPjwvb2w+PGhyIC8+PHA+PHNwYW4+5LiL5pa555yL6LWE5rqQ77yM5LiK5pa56YO96L+Y6KGMPC9zcGFuPjwvcD48b2wgc3RhcnQ9JycgPjxsaT48YSBocmVmPSdodHRwczovL2FwaS5va2p4LmNjOjMzODkvangucGhwP3VybD0nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL2FwaS5va2p4LmNjOjMzODkvangucGhwP3VybD08L2E+PC9saT48bGk+PGEgaHJlZj0naHR0cHM6Ly9qeC5wYXJ3aXguY29tOjQ0MzMvcGxheWVyLz91cmw9JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VybCc+aHR0cHM6Ly9qeC5wYXJ3aXguY29tOjQ0MzMvcGxheWVyLz91cmw9PC9hPjwvbGk+PC9vbD48cD48c3Bhbj7lj6rmnInkuIDlj6Xor53vvIzpgqPlsLHmmK/mjqXlj6PlnKjnsr7kuI3lnKjlpJrvvIzlvojlpJrop6PmnpDlj6Ppg73mmK/nm7jkupLlpZflqIPvvIzotYTmupDmnaXmupDpg73mmK/lkIzkuIDkuKrvvIzmiYDku6XlvojmnInlj6/og73kuIDkuKrop6PmnpDop6PmnpDkuI3lh7rmnaXvvIzlhbbku5bnmoTop6PmnpDkuZ/op6PmnpDkuI3lh7rmnaXvvIzlm6DkuLrlroPku6znmoTmoLnmupDlvojlj6/og73pg73mmK/lkIzkuIDkuKrjgII8L3NwYW4+PC9wPjxwPjxzdHJvbmc+PHNwYW4+6L+Z5Lu95riF5Y2V5LuF5L6b5Y+C6ICD5ZKM5rWL6K+V77yM6YO95Y+q5piveDXmma7pgJrmjqXlj6Pku4Xku4XkuLrmlrnkvr/kuobop6Pku4DkuYjmmK/op6PmnpDogIzlt7LjgII8L3NwYW4+PC9zdHJvbmc+PC9wPjxwPiZuYnNwOzwvcD48cD4mbmJzcDs8L3A+PGgyIGlkPSfkvZXosJPmlq3mj5ItLS0tLS3prZTmlq0nPjxzcGFuPuS9leiwk+aWreaPkuKAlOKAlCZndDvprZTmlq08L3NwYW4+PC9oMj48cD48c3Bhbj7kuobop6Plrozop6PmnpDnqbbnq5/mmK/kuIDkuKrku4DkuYjkuJzopb/kuYvlkI7vvIzpgqPkuYjmlq3mj5LlsLHlvojlpb3nkIbop6PkuobvvIw8L3NwYW4+PGNvZGU+5pat5o+S5piv5LiA5Liq5bel5YW3PC9jb2RlPjxzcGFuPu+8jOWPr+S7peW4ruS9oOmFjee9ruWlveino+aekO+8jOmFjee9ruWlveWQjuWPquimgeeCueWHu+WwgeijheWlveeahOinhumikeW9seeJh+eahOWumOe9kee9keWdgOmCo+S5iOWwseS8muiHquWKqOaLvOaOpeagvOW8j+W5tuaPkOS6pOivt+axguacgOWQjuiwg+eUqOaSreaUvuWZqOaSreaUvu+8jOS4jeeUqOiHquW3seWcqOa1j+iniOWZqOaLvOaOpeeEtuWQjuWGjeWIt+aWsOS7juiAjOino+aUvuWPjOaJi++8jOaJgOS7peaWreaPkuWPquaYr+S4gOS4qjwvc3Bhbj48Y29kZT7lt6Xlhbc8L2NvZGU+PHNwYW4+77yM5LiN5o+Q5L6b5Lu75L2V5YaF5a65PC9zcGFuPjwvcD48cD48c3Bhbj7pgqPprZTmlq3lj4jmmK/ku4DkuYjvvIzprZTmlq3kuZ/lj6rmmK/kuIDkuKo8L3NwYW4+PGNvZGU+5bel5YW3PC9jb2RlPjxzcGFuPuS4jeaPkOS+m+S7u+S9leWGheWuue+8jOWPr+S7peeQhuino+S4uuaWreaPkueahOWKoOW8uueJiO+8jOiDveabtOWlveeahOino+aUvuWPjOaJi+OAgumtlOaWreWPiOWQjU15RmlsZWTvvIzku5PlupPoh6rlj5bjgII8L3NwYW4+PC9wPjxoMiBpZD0n6a2U5pat55qE5L2/55SoJz48c3Bhbj7prZTmlq3nmoTkvb/nlKg8L3NwYW4+PC9oMj48cD48c3Bhbj7nn6XpgZPkuobku4DkuYjmmK/op6PmnpDkuoblkKfvvIzkuZ/nn6XpgZPkuobku4DkuYjmmK/prZTmlq3kuoblkKfvvJ/pgqPkuYjlpoLkvZXkvb/nlKjprZTmlq3lupTor6XmmK/op4HlkI3nn6XmhI/kuobvvIzlpKrov4for6bnu4bnmoTkuI3orrLvvIzmjJHkuIDkupvph43ngrnmnaXorrLkuIDkuIvlhaXpl6jjgILpppblhYjnrKzkuIDmraXpgInmi6nlsI/nmb3kuIDplK7mi4nlj5bvvIzml6DorrrmmK/nnJ/lsI/nmb3ov5jmmK/mnInmnInotYTmupDorqTor4bop6PmnpDnmoTmnIvlj4vpg73mjqjojZDnrKzkuIDmraXnm7TmjqXmi4nlj5bvvIznhLblkI7oh6rlt7Hlho3miYvliqjliKDpmaTlkozmt7vliqDoh6rlt7HnmoTop6PmnpDphY3nva7vvIzlm6DkuLrkuIDplK7mi4nlj5bkvJrluK7kvaDnm7TmjqXmiornjq/looPpg73phY3nva7lpb3vvIzljIXmi6zkuLvpopjnrYnogIzkuI3nlKjljrvov4flpJrnmoTnrqHov5nkupvpl7LmnYLkuovpobnjgII8L3NwYW4+PC9wPjxwPjxzcGFuPuS4i+mdouaYr+S4gOW8oOi3r+e6v+aMh+WNl+Wbvu+8mjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS82NDMxMDJhMjliMDlhYjMzMWE0NmI1MDI5MzI0YzhhNzFlNjczMWExLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcIumtlOaWreS9v+eUqOaVmeeoi1xcXCI+PC9wPjxwPjxzcGFuPuWFtuS4remtlOaWreeahOWkmue6v+i3r++8jOWIneatpeS6huino+mtlOaWreS5i+WQjuWPr+S7peWOu+eGn+aCieS4gOS4i++8jOS7peS4i+aYr+WumOaWueino+mHijwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS84YTAzMDEyODk5OGM1MzViMDZkMjZlMjk2ZGRlYTkzNzM2NTk5YjFiLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMjA1NzUzMzExXFxcIj48L3A+PHA+PHNwYW4+6L+Y5pyJ5LiA54K55b6I6YeN6KaB55qE5bCx5piv5aSH5Lu977yM5aaC5p6c5oiR5pyJ5b6I5aSa6Kej5p6Q77yM5oCV5Lii5aSx77yM5Y+v5Lul55u05o6l5a+85Ye677yB5Lmf5Y+v5Lul55u05o6l5a+85YWl77yB77yIPC9zcGFuPjxzdHJvbmc+PHNwYW4+6a2U5pat5Li76aG155qE5qiq5p2h5piv5Y+v5Lul5ruR5Yqo55qEPC9zcGFuPjwvc3Ryb25nPjxzcGFuPu+8ie+8jOWmguWbvuaJgOekuuWPs+a7keWPr+S7peeci+WIsO+8jOWPquimgeaMieagvOW8j+adpemCo+S5iOS4gOiIrOWwseayoeaciemXrumimOOAguWFtuWunueCueWHu+S4ieinkueureWktOWPr+S7peW8ueeql+ebtOaOpemAieaLqe+8jOS5n+WPr+S7peWPkeeOsOmHjOi+uei/mOacieaJuemHj+aTjeS9nO+8iOWIoOmZpO+8ieeahOWKn+iDvTwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS82NzY2N2I2NjljNWU0NjliYmE4ZjJjNDQwOTUyNmVhZDllMzQ2ZTg1LnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMjEzOTI3MDEyXFxcIj48L3A+PHA+PHNwYW4+5Zyo6KGl5YWF5LiA54K577ya5Zyo5pat5o+S5o6l5Y+j6K6+572u6aG16Z2i54K55Ye75Lu75oSP5LiA5Liq6Kej5p6Q5Y+v5Lul5Y2V54us5a+55YW26L+b6KGM54m55a6a5pON5L2c77yaPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzQ4ZTRiMzA3OTVjYTczNWM3OTZiNjM2Y2ExYjVhYjBlYmJkYWNmMzAucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIyMTUyMzYxMzZcXFwiPjwvcD48cD48bWFyaz48c3Bhbj7ms6jmhI/nmoTmmK/vvJpkbeebkuWtkOeahOWFrOmSpeWSjOWkmue6v+i3r+aYr+WGsueqgeeahDwvc3Bhbj48L21hcms+PHNwYW4+77yM5Ymp5LiL55qE6Ieq5bex5pG457Si77yM6K6y5Yiw55qE5Z+65pys6YO95piv5qC45b+D5rKh6K6y5Yiw55qE6YO95LiN5piv5b6I6YeN6KaBPC9zcGFuPjwvcD48aDIgaWQ9J+S9leiwk2Ntc+aooeadvyc+PHNwYW4+5L2V6LCTQ01T5qih5p2/PC9zcGFuPjwvaDI+PHA+PHNwYW4+Q01T5Y+v5Lul566A5Y2V55qE55CG6Kej5Li65LiA56eN6YeH6ZuG5a6Y572R6KeG6aKR572R5Z2A55qE6Ieq5Yqo5YyW6L2v5Lu277yM5bm25oyJ54Wn5oyH5a6a55qE5qC85byP5bCB6KOF5a2Y5YKo5aW95ZCO5Y+v5Lul6YCa6L+H57uZ5Ye655qEQVBJ5o6l5Y+j5Y676K6/6Zeu6L+Z5Lqb5pWw5o2u77yM6ICM6L+Z57G7QVBJ5o6l5Y+j5Y+v5Lul56ew5LmL5Li6Y21z5o6l5Y+j44CC5Zug5Li66Kej5p6Q5piv6ZyA6KaB6KeG6aKR572R5Z2A55qE77yM5omA5LulY21z55qE5L2c55So5bCx5LiN6KiA6ICM5Za744CCPC9zcGFuPjwvcD48cD48c3Bhbj7lm57liLBjbXPmqKHmnb/vvIxjbXPmqKHmnb/mmK/pgZPplb/nmoTkuIDkuKrlsI/nqIvluo/vvIzpgJrov4floavlhpljbXPmjqXlj6PlsLHlj6/ku6XnlJ/miJBjbXPlsI/nqIvluo/nmoTkuIDkuKrlsI/nqIvluo/vvIzkuZ/mmK/kuIDkuKo8L3NwYW4+PGNvZGU+5bel5YW3PC9jb2RlPjxzcGFuPuS4jeaPkOS+m+S7u+S9leWunui0qOWGheWuueOAgjwvc3Bhbj48L3A+PHA+PHNwYW4+6YKjY21z5o6l5Y+j5LuO5ZOq6YeM6I635Y+W77yf5p2l5rqQ5LqOY21z6YeH6ZuG6LWE5rqQ572R44CB5p2l5rqQ5LqOYXBw5oqT5YyF44CB572R56uZ5oqT5YyF44CB5LiA5Lqb6Kej5p6Q5Lmf5Lya5pS+5Ye66YeH6ZuG77yI6YeH6ZuG5Y2zY21z77yJLi4uPC9zcGFuPjwvcD48cD48c3Bhbj7lhbblrp7mm7Tnm7TmjqXnmoTmlrnms5XvvIzlj6/ku6Xku47lhpnlpb3nmoRjbXPlsI/nqIvluo/kuK3mj5Dlj5blh7pjbXPmjqXlj6PvvJo8L3NwYW4+PC9wPjxvbCBzdGFydD0nJyA+PGxpPjxwPjxzcGFuPumVv+aMieWwj+eoi+W6j+WQjeWtl++8jOW8ueeql+eCueWHu+e8lui+keinhOWIme+8jOaJvuWIsOWwj+eoi+W6j+mTvuaOpe+8jOWNs+WPr+iOt+W+l2Ntc+aOpeWPozwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS80NDk4ODlkYTFjNTc1NDk4ZjcxMDkyMzI4NTA5ZDRlMDJiMmM0NDZhLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDk0ODE3MzgwXFxcIj48L3A+PC9saT48bGk+PHA+PHNwYW4+5aaC5p6c5L2g55yL5LiN5Yiw5bCP56iL5bqP6ZO+5o6l77yM6YKj5piv5Zug5Li65rKh5pyJ5byA5Y+R6ICF562+5ZCNPC9zcGFuPjwvcD48cD48c3Bhbj7igJTigJQmZ3Q75om+5Yiw6K6+572u4oCU4oCUJmd0O+mAieaLqeW8gOWPkeaJi+WGjOS4juaooeW8j+KAlOKAlCZndDvpgInmi6nlvIDlj5HogIXnrb7lkI3igJTigJQmZ3Q76Ieq5a6a5LmJ5byA5Y+R6ICF5pi156ewPC9zcGFuPjwvcD48cD48c3Bhbj7pgqPkuYjlsLHlj6/ku6XnnIvliLDkuoY8L3NwYW4+PC9wPjwvbGk+PC9vbD48cD48c3Bhbj7kuIvpnaLmmK/kuIDkuKpjbXPotYTmupDnvZHlkIjpm4bnmoTkvb/nlKjmlZnnqIvvvIzph4zpnaLpg73mmK9jbXPlsI/nqIvluo/lj6/ku6Xnm7TmjqXkvb/nlKg8L3NwYW4+PC9wPjxwPjxzcGFuPueCueWHu+mTvuaOpeafpeeci1FR6aKR6YGT5biW5a2Q44CQ55So5b+D6YeH6ZuG5L2/55So5pa55rOVKOmdnumtlOaWreeJiCnjgJHvvJo8L3NwYW4+PGEgaHJlZj0naHR0cHM6Ly9xdW4ucXEuY29tL3Fxd2ViL3F1bnByby9zaGFyZT9fd3Y9MyZhbXA7X3d3dj0xMjgmYW1wO2FwcENoYW5uZWw9c2hhcmUmYW1wO2ludml0ZUNvZGU9MXdCdnMxJmFtcDthcHBDaGFubmVsPXNoYXJlJmFtcDtjb250ZW50SUQ9VWdKVyZhbXA7YnVzaW5lc3NUeXBlPTImYW1wO2Zyb209MjQ2NjEwJmFtcDtiaXo9a2EmYW1wO3NoYXJlU291cmNlPTUnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndXJsJz5odHRwczovL3F1bi5xcS5jb20vcXF3ZWIvcXVucHJvL3NoYXJlP193dj0zJl93d3Y9MTI4JmFwcENoYW5uZWw9c2hhcmUmaW52aXRlQ29kZT0xd0J2czEmYXBwQ2hhbm5lbD1zaGFyZSZjb250ZW50SUQ9VWdKVyZidXNpbmVzc1R5cGU9MiZmcm9tPTI0NjYxMCZiaXo9a2Emc2hhcmVTb3VyY2U9NTwvYT48L3A+PHA+PHNwYW4+5LiO5YW25a+75om+Y21z5o6l5Y+j77yM5LiN5aaC55u05o6l5L2/55So5bey5pyJ55qEY21z5bCP56iL5bqP77yM6aKR6YGT5Lmf5Lya5pyJ5aSn5L2s5YG25bCU5YiG5LqrY21z5bCP56iL5bqPPC9zcGFuPjwvcD48aDIgaWQ9J+S9leiwk+aWreaPkuexu+Wwj+eoi+W6jyc+PHNwYW4+5L2V6LCT5pat5o+S57G75bCP56iL5bqPPC9zcGFuPjwvaDI+PHA+PHNwYW4+6aG+5ZCN5oCd5LmJ5bCx5piv5pSv5oyB5pat5o+S6LCD55So6Kej5p6Q55qE5bCP56iL5bqP77yM5YOPY21z5qih5p2/55Sf5oiQ55qEY21z5bCP56iL5bqP5bCx5piv5pat5o+S57G755qE5bCP56iL5bqPPC9zcGFuPjwvcD48cD48c3Bhbj7ov5jmnInnmoTlpKfkvazlhpnlpb3lsIHoo4XmnInmlq3mj5LosIPnlKjmlrnms5XnmoTnvZHnq5nlsI/nqIvluo/miJbogIVhcHDlsI/nqIvluo88L3NwYW4+PC9wPjxoMiBpZD0n5L2V6LCT6YCa5YWN5bCP56iL5bqPJz48c3Bhbj7kvZXosJPpgJrlhY3lsI/nqIvluo88L3NwYW4+PC9oMj48cD48c3Bhbj7pgJrlhY3lsI/nqIvluo/lsLHmmK/lpKfkvazlhpnlpb3nmoQ8L3NwYW4+PHN0cm9uZz48c3Bhbj7kuI3pnIDopoHmlq3mj5Lop6PmnpA8L3NwYW4+PC9zdHJvbmc+PHNwYW4+55qE572R56uZ5bCP56iL5bqP5oiW6ICFYXBw5bCP56iL5bqP77yM6ICM5piv55u05o6l5LuO5rqQ56uZ5ZeF5o6i6I635b6X6KeG6aKR5pKt5pS+6ZO+5o6l77yM5Lmf5bCx5piv6K+06L+Z5piv5Y6f5ruL5Y6f5ZGz55qE5bCP56iL5bqP77yM572R56uZ5YaF5a655piv5ZWl77yM5LuW5bCx5piv5ZWl44CC5Lmf5piv5pWw6YeP5pyA5aSa55qE5bCP56iL5bqP44CCPC9zcGFuPjwvcD48aDIgaWQ9J+S9leiwk+WFjeWXheWwj+eoi+W6jyc+PHNwYW4+5L2V6LCT5YWN5ZeF5bCP56iL5bqPPC9zcGFuPjwvaDI+PHA+PHNwYW4+5YWN5ZeF5bCP56iL5bqP5Lmf5piv5Y6f5ruL5Y6f5ZGz55qE5bCP56iL5bqP77yM5L2G55u45q+U6YCa5YWN5bCP56iL5bqP77yM5a6D5LiN6ZyA6KaB5LuO572R56uZ5ZeF5o6i6KeG6aKR5pKt5pS+6ZO+5o6l77yM6ICM5piv6YCa6L+H6Kej5a+G5Luj56CB55u05o6l6I635Y+W6KeG6aKR5pKt5pS+6ZO+5o6l55qEdXJs54S25ZCO55u05o6l5pKt5pS+77yM5omA5Lul5LiA6Iis5p2l6K+05YWN5ZeF5bCP56iL5bqP5Lya5b+r5LqO6YCa5YWN5bCP56iL5bqP5ZON5bqU6LWE5rqQ55qE6YCf5bqm44CCPC9zcGFuPjwvcD48cD4mbmJzcDs8L3A+PHA+Jm5ic3A7PC9wPjxoMSBpZD0n6ZqQ6JeP5pON5L2cJz48c3Bhbj7pmpDol4/mk43kvZw8L3NwYW4+PC9oMT48aDIgaWQ9J+WFrOmSpeS4juengemSpSc+PHNwYW4+5YWs6ZKl5LiO56eB6ZKlPC9zcGFuPjwvaDI+PHA+PHNwYW4+5pyJ5YWs6ZKl77yM6YKj6IKv5a6a5pyJ56eB6ZKl5LqG5ZWm77yM5LiN6L+H5rKh57uZ5Ye65p2l572i5LqG77yM5oiR5piv5LiN5piv5b6I5Z2Pfjwvc3Bhbj48L3A+PHA+PHNwYW4+5YeA556O6K+077yMZG3nm5LlrZDku6PnoIHmuIXmmbDlj6/op4HvvIzmnInog73lipvoh6rlt7HmlLnkuIDkuIvlhazpkqXlsLHlj6/ku6XlvpfliLDnp4HpkqXkuoZ+PC9zcGFuPjwvcD48cD48c3Bhbj7oh7Pkuo7ljp/lm6DlmJvvvIzpgqPogq/lrprmmK/mnInljp/lm6DnmoTvvIznp4HpkqXkvZPpqozmnKrlv4XlsLHmr5TlhazpkqXopoHlpb3vvIzogIzkuJQ8L3NwYW4+PG1hcms+PHNwYW4+56eB6ZKl5LiN5LiA5a6a56iz5a6aPC9zcGFuPjwvbWFyaz48c3Bhbj7igJTigJQmZ3Q75omA5Lul6L+Y5piv5oiR6Ieq5bex5p2l5om/5Y+X5ZCn77yBPC9zcGFuPjwvcD48aDIgaWQ9J+mjnueTnOW8ueW5leW6kyc+PHNwYW4+6aOe55Oc5by55bmV5bqTPC9zcGFuPjwvaDI+PHA+PHNwYW4+5YWs44CB56eB6ZKl5LiN6YeN6KaB5ZWm77yMPC9zcGFuPjxzdHJvbmc+PHNwYW4+6YeN6KaB55qE5piv5YW25a6eZG3nm5LlrZDlhoXnva7kuobpo57nk5zlvLnluZXlupPmkJzntKLlvJXmk448L3NwYW4+PC9zdHJvbmc+PHNwYW4+44CCPC9zcGFuPjwvcD48cD48c3Bhbj7pgqPlpoLkvZXkvb/nlKjlkaLvvJ/mraXpqqTlpoLkuIvvvJo8L3NwYW4+PC9wPjxvbCBzdGFydD0nJyA+PGxpPjxwPjxzcGFuPumAieaLqWRt55uS5a2Q5L2c5Li65pCc57Si5byV5pOO77yM5pCc57Si6ZyA6KaB6I635Y+W5by55bmV5pWw5o2u55qE6KeG6aKR77yM6L+Z6YeM5Lul5Lq65LiW6Ze05Li65L6LPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtLzZiM2FmOTNjNGIwNmFmZDlhYTlkNzRjOGY1ZjdiZmI0MjgwOTZiZTgucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjEyMzQ4MjI2NjdcXFwiPjwvcD48L2xpPjxsaT48cD48c3Bhbj7mkJzntKLliLDmg7PopoHnmoTop4bpopHnu5PmnpzlkI7vvIzlho3pgInmi6nop4bpopHnm7jlupTnmoTpm4bmlbDov5vooYzmkq3mlL7igJTigJQmZ3Q7PC9zcGFuPjxtYXJrPjxzcGFuPmRt55uS5a2Q5Y+q5piv5LiA5Liq5pWw5o2u5pS257qz55uS5a2Q77yM5LiN5o+Q5L6b5Zyo57q/6KeG6aKR5pKt5pS+44CB6YeH6ZuG562J5Yqf6IO9PC9zcGFuPjwvbWFyaz48c3Bhbj7igJTigJQmZ3Q75omA5Lul6IKv5a6a5piv5pKt5pS+5LiN5LqG55qE5ZWm4oCU4oCUJmd0O+S9huaYr+WIq+W/mOiusOaIkeS7rOeahOebrueahOaYr+S7gOS5iDwvc3Bhbj48L3A+PC9saT48bGk+PHA+PHNwYW4+6L+b5YWl6KeG6aKR5pKt5pS+6aG16Z2i5ZCO5bCx5Y+v5Lul6I635Y+W6aOe55Oc5by55bmV5pWw5o2u5LqG77yM5pON5L2c5aaC5LiL77yaPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtL2NjNDIwM2Y3MjI1YzQwOWM4ZWYzNzBjY2U2NTBkZTA1NTNhNzA3NGUucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIwMDAxMjYxMjRcXFwiPjwvcD48cD48c3Bhbj7lpI3liLbnmoTlvLnluZXlnLDlnYDlsLHmmK/miJHku6zopoHojrflj5bnmoTlvLnluZXmlbDmja7llaY8L3NwYW4+PC9wPjxwPjxzcGFuPuaOpeS4i+adpeWwseaYr+aJvuS4gOS4quaUr+aMgeaWreaPkueahOWmgmNtc+Wwj+eoi+W6j+OAgeaIluiAheWll+aciWRt55uS5a2Q5LqM57qn5Yqo5oCB6Kej5p6Q5qih5p2/55qE6YCa5YWNb3LlhY3ll4XlsI/nqIvluo/mnaXmkq3mlL7nm7jlupTnmoTlvbHop4bliafpm4Y8L3NwYW4+PC9wPjxwPjxzcGFuPuWIsOS6hui/meS4gOatpeWFtuWunuS5n+iDveeMnOWIsOS6huOAguS4i+mdouWBmuWxleekuu+8mjwvc3Bhbj48L3A+PHA+PGltZyBzcmM9XFxcImh0dHBzOi8vaTAuaGRzbGIuY29tL2Jmcy9hbGJ1bS85ZmY4ZWJhMGM2ZGFhY2FhNDE3NGNkZDJhZTJkOWQ3MWE2NzcxMTBiLnBuZ1xcXCIgcmVmZXJyZXJwb2xpY3k9XFxcIm5vLXJlZmVycmVyXFxcIiBhbHQ9XFxcImltYWdlLTIwMjIwNjIyMDAxMTIyMDMwXFxcIj48L3A+PHA+PHNwYW4+5aGr5YWl5by55bmV5Zyw5Z2A5LmL5ZCO77yM6YKj5LmI5bCx5Lya5pyJ5by55bmV5pWw5o2u5Yqg6L295Ye65p2l5LqG77yI5aaC5Zu+77yJPC9zcGFuPjwvcD48cD48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtL2ViNDJkMzBjYjRjNGUwMzBhZmQ1N2U4YWI5ZjBjMzUxMTYzZTdhZGMucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIwMDE1MTc3MDVcXFwiPjwvcD48cD4mbmJzcDs8L3A+PC9saT48L29sPjxwPjxzcGFuPumCo+S5iOmXrumimOadpeS6huWVpeaXtuWAmeeUqOmjnueTnOW8leaTjuiOt+WPluW8ueW5leWRou+8jOaIkeeahOW7uuiuruaYr+W9k+WumOaWueW8ueW5leaIluiAheWFtuS7lueahOesrOS4ieaWueW8ueW5leaXoOazleiOt+WPluWIsOaIluiAheS4jeiDvea7oei2s+eahOaXtuWAmeS9v+eUqDwvc3Bhbj48L3A+PHA+PHNwYW4+5YW25a6ePC9zcGFuPjxtYXJrPjxzcGFuPuabtOWAvOW+l+S4gOaPkOeahOW6lOivpeaYr++8jOmjnueTnOW8ueW5leS4jeS7heS7heWPquaYr+aLpeacieWbveWGheinhumikeeahOW8ueW5leaVsOaNru+8jOS7lui/mOacieWklueJh+WSjOWQhOenjeexu+Wei+eJh+a6kOeahOW8ueW5lTwvc3Bhbj48L21hcms+PHNwYW4+77yM6L+Z5Liq5pe25YCZ5aaC5p6c5L2g6ZyA6KaB5by55bmV77yM6YKj5LmI6aOe55Oc5pCc57Si5byV5pOO5bCx5pyJ5aSn55So5LqG77yBPC9zcGFuPjwvcD48cD48c3Bhbj7ooaXlhYXkuIDngrnvvJrlvLnluZXlnLDlnYDmmK/lj6/ku6Xnp7vmpI3liLDku7vmhI/lsI/nqIvluo/op4bpopHmkq3mlL7lnLDlnYDnmoTvvIzpgqPkuYjoh6rnhLbmmK88L3NwYW4+PHN0cm9uZz48c3Bhbj7kuI3pnIDopoHop6PmnpDkuZ/kuI3pnIDopoHmlq3mj5LkuZ/kuI3pnIDopoFkbeebkuWtkOWKqOaAgeino+aekOS5n+iDveWKoOi9veW8ueW5lTwvc3Bhbj48L3N0cm9uZz48c3Bhbj7kuoblvZPnhLbmnInkupvlsI/nqIvluo/liqDovb3nmoTop4bpopHlnLDlnYDmmK/mnIk8L3NwYW4+PHN0cm9uZz48c3Bhbj7ml7bmlYjmgKc8L3NwYW4+PC9zdHJvbmc+PHNwYW4+55qE77yM5omA5Lul5Y+v6IO95Lya5Ye6546w5pKt5pS+5LiN5LqG55qE5oOF5Ya14oCU4oCUJmd0O+enu+akjeeahOaXtuWAmemcgOimgeazqOaEj+S4i+W8ueW5leeahOagvOW8j++8jOWmguS4i++8mu+8iOWwj+eZveWwpOWFtuazqOaEj+iKseaLrOWPtyYjMzk7e30mIzM5O+eahOWtmOWcqO+8iTwvc3Bhbj48aW1nIHNyYz1cXFwiaHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FsYnVtL2NkODQ0NDU4NzljYTZiYTdmMDM5MzYyODhiOTljOWQyN2MyZjI4MDMucG5nXFxcIiByZWZlcnJlcnBvbGljeT1cXFwibm8tcmVmZXJyZXJcXFwiIGFsdD1cXFwiaW1hZ2UtMjAyMjA2MjIwMDI5MDU1ODJcXFwiPjwvcD48cD48c3Bhbj7lj6/og73kvaDlj5HnjrDkuobkuIrmlrnmiKrlm77ph4zmmK/mnIk8L3NwYW4+PHN0cm9uZz48c3Bhbj7pooTnlZnlvLnluZXmjqXlj6PlkoxkbTomIzM5OyYjMzk7PC9zcGFuPjwvc3Ryb25nPjxzcGFuPuWGmeWlveeahOagvOW8j+WtmOWcqOeahO+8jOmCo+WFtuWunuWwseaYr+WboOS4uui/meS4quWwj+eoi+W6j+Wll+S6hmRt55uS5a2Q5Yqo5oCB6Kej5p6Q5oiW6ICF5piv5pat5o+S57G75Z6L55qE5bCP56iL5bqP77yM5Y+v5Lul5pa55L6/57uZ5rKh5pyJ5by55bmV5pWw5o2u55qE6KeG6aKR5b+r6YCf5re75Yqg5by55bmV6ICM5LiN55So6Ieq5bex5L+u5pS55qC85byP44CCPC9zcGFuPjwvcD48cD4mbmJzcDs8L3A+PHA+Jm5ic3A7PC9wPjxoMSBpZD0n5rOo5oSP5LqL6aG5Jz48c3Bhbj7ms6jmhI/kuovpobk8L3NwYW4+PC9oMT48b2wgc3RhcnQ9JycgPjxsaT48cD48ZGVsPjxzcGFuPuWFrOmSpeayoeazleWSjOmtlOaWreW5tuWPkeWkmue6v+i3r+S4gOi1t+S9v+eUqOOAguS9huaYr+mSiOWvueWFrOmSpe+8jGRt55uS5a2Q5aKe5Yqg5LqG5LiA5Liq6IeqPC9zcGFuPjxzdHJvbmc+PHNwYW4+5Yqo5ou85o6l5aSa57q/6Lev5o6l5Y+j55qE5Yqf6IO95qih5Z2XPC9zcGFuPjwvc3Ryb25nPjxzcGFuPuKAlOKAlCZndDvmlrnkvr/lsIbluLjnlKjnmoTkvJjotKjmjqXlj6Poh6rliqjmi7zmjqXmiJDkuIDkuKrov5Tlm57lpJrnur/ot6/nmoTlh73mlbDmjqXlj6PjgILkuovlrp7kuIrov5nlt7Lnu4/otrPnn6PvvIzlsIbmiYvlpLTnlKjnmoTlpJrnmoTvvIzlpb3nlKjnmoRqc29u57uT5ZCI6IGa5ZCI5Zyo5LiA6LW35bCx5Y+v5Lul5LqG44CCPC9zcGFuPjwvZGVsPjwvcD48cD48ZGVsPjxzcGFuPlRpcO+8mua1t+mYlOWkmue6v+i3r+eahOWunueOsOebruWJjemDveaYrzwvc3Bhbj48c3Ryb25nPjxzcGFuPuW5tuWPkTwvc3Bhbj48L3N0cm9uZz48c3Bhbj7nmoTmlrnlvI/ljIXmi6zprZTmlq3lpJrnur/ot6/vvIjlvojotLnop6PmnpDvvInvvIzkuZ/lsLHmmK/or7Tngrnlh7vop6PmnpDkuIDkuKrop4bpopHnmoTml7blgJnlv4XpobvlhYjmiormiYDmnInop6PmnpDpg73lsJ3or5Xop6PmnpDojrflj5blj6/mkq3mlL7pk77mjqXvvIzmnIDlkI7lsIbmiYDmnInlvpfliLDnmoTnu5Pmnpzov5Tlm57vvIznu4TmiJDlpJrnur/ot6/moLzlvI/jgILkvYbmmK/pg6jliIbop6PmnpDpg6jliIbop4bpopHotYTmupDnmoTpk77mjqXop6PmnpDlh7rmnaXlkI7mmK/mnInml7bmlYjmgKfnmoTvvIzmiYDku6Xlj6/og73pk77mjqXlpLHmlYjjgILmiYDku6XmraPnoa7nmoTpo5/nlKjmlrnlvI/mmK/lpJrnur/ot6/lh7rmnaXlkI7lpoLmnpzlvZPliY3nur/ot6/og73mkq3nlLvotKjmu6HotrPlsLHlvZPliY3nur/ot6/nm7TmjqXnnIvvvIzlpoLoi6Xop6PmnpDlpLHotKXpqazkuIrliIfmjaLvvIzkuI3mjqjojZDnnIvliafkuK3pgJTliIfmjaLlm6DkuLrlpKfmpoLnjofpk77mjqXlt7Lnu4/lpLHmlYjvvIjprZTmlq3mt7vliqDkuoblpJrot6/nvJPlrZjvvIzkvYbmmK/lrp7pmYXkvZPpqozmhJ/op4nmlYjmnpzlubbkuI3mmK/lvojnkIbmg7PvvIxkbeebkuWtkOeahOiBmuWQiOWHveaVsOS5n+ayoeacieaPkOS+m+Wkmue6v+i3r+e8k+WtmO+8iTwvc3Bhbj48L2RlbD48bWFyaz48c3Bhbj7or6Xlip/og73lt7LlnKjmlrDniYjnp7vpmaTvvIzlubbmm7/mjaLkuLrigJzpo57kvKDigJ08L3NwYW4+PC9tYXJrPjwvcD48L2xpPjxsaT48cD48c3Bhbj7luKbmnInlvLnluZXmlbDmja7nmoTop6PmnpDlj6Pop6PmnpDmlrDnlarop4bpopHml7bkvJrlkozmlrDnlaroh6rluKbnmoTlvLnluZXmlbDmja7lhrLnqoHmiYDku6XpnIDopoHlhbPpl63mlrDnlarnmoTlvLnluZXlvIDlhbM8L3NwYW4+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPuWmguiLpeS9v+eUqOino+aekOa1i+ivleOAgemtlOaWreino+aekOa1i+ivleWHuueOsOaVsOaNrumUmeS5seeahOmXrumimOWPr+S7peS4jeeUqOeQhuS8mu+8jOi/meaYr+ato+W4uOeOsOixoe+8iOiZveeEtuaIkeW5tuS4jeaYr+W+iOa4healmuWFt+S9k+WOn+WboC4uLu+8ie+8jOS9hui/meW5tuS4jeWmqOeijeS9oOWcqOaWsOeVquOAgeaQnOeLl1HjgIFjbXPlsI/nqIvluo/nrYnmlq3mj5LnsbvlsI/nqIvluo/kuK3mraPluLjkvb/nlKg8L3NwYW4+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPumAu+i+kemDveaYr+WFiOiOt+WPluW8ueW5leWGjeWKoOi9veinhumike+8iFRlbmNlbnTot6/nur/nmoTlvLnluZXmlbDmja7lrZjlgqjliLDmnKzlnLDogJfml7blj6/og73nm7jlr7novoPplb/vvIk8L3NwYW4+PC9wPjwvbGk+PGxpPjxwPjxzcGFuPuaZrumAguaAp2pzb27lhazpkqXlj6rpgILlkIjlpKfpg6jliIZqc29u55Sf5oiQ5YWs6ZKl77yM6K+m57uG55qE5L2/55So5pa55rOV5Y+C6KeB5YWs6ZKl5pys6LSo6YOo5YiGPC9zcGFuPjwvcD48L2xpPjxsaT48cD48c3Bhbj7ll4XmjqLliqjmgIHop6PmnpDmqKHmnb/lkozmlq3mj5LliqjmgIHop6PmnpDmqKHmnb/lj6rpgILnlKjkuo51cmzmnKrnu4/liqDlr4bnmoTpgJrlhY3lsI/nqIvluo88L3NwYW4+PC9wPjxwPjxkZWw+PHNwYW4+6YCa5YWN5qih5p2/5a+55LqO5pyJ5Lqb5bCP56iL5bqP55qE6YOo5YiG6Kej5p6Q57q/6Lev5pSv5oyB5bm25LiN5piv5b6I5aW977yM5pyJ5ZeF5o6i5aSx6LSl55qE5Y+v6IO9PC9zcGFuPjwvZGVsPjwvcD48cD48ZGVsPjxtYXJrPjxzcGFuPumAmuWFjeWFrOmSpeW3sue7j+abv+aNouaIkOS6hummmeWFjeW8uuWKm3g15ZeF5o6i77yM6aaZ5YWN6IO95pKt55qE6YO96IO95pKt77yM5LiN6IO95pKt55qE5Z+65pys5LiK6YO95piv572R56uZ5pys6Lqr5peg5rOV5pKt5pS+PC9zcGFuPjwvbWFyaz48L2RlbD48L3A+PHA+PHN0cm9uZz48c3Bhbj7nvZHnq5nlkozop6PmnpDnmoTpmLLll4XmjqLog73lipvkuZ/lnKjlop7lvLrvvIzkuI3kv53or4HkuIDnm7Tmm7TmlrDmiYDku6Xlj6/og73kvJrlh7rnjrDll4XmjqLlpLHotKXnmoTlh6Dnjoc8L3NwYW4+PC9zdHJvbmc+PC9wPjwvbGk+PGxpPjxwPjxtYXJrPjxzcGFuPuS4jeimgeabtOaUuWRt55uS5a2Q5bCP56iL5bqP55qE5ZCN5a2XPC9zcGFuPjwvbWFyaz48c3Bhbj7vvIzlkKbliJnlhbbku5bkuoznuqfliqjmgIHop6PmnpDkvp3otZZkbeebkuWtkOeahOmAmuWFjeWwj+eoi+W6j+WSjOaWreaPkuexu+WwhuaXoOazleiOt+WPluaVsOaNruW5tuaKpemUmTwvc3Bhbj48L3A+PC9saT48L29sPjxkaXYgYWxpZ249XFxcInJpZ2h0XFxcIj5cXG4gICAgPGg2PlxcbiAgICAgICAg5L6g5ZCNXFxuICAgIDwvaDY+XFxuICAgIDxoNj7liJ3niYgyMDIyLzYvMjU8L2g2PlxcbiAgICA8aDY+56ys5LqM54mILeS/ruiuojIwMjIvNy8xMjwvaDY+XFxuPC9kaXY+PHA+Jm5ic3A7PC9wPjxwPiZuYnNwOzwvcD48cD4mbmJzcDs8L3A+PC9kaXY+PC9kaXY+XFxuPC9ib2R5PlxcbjwvaHRtbD5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaWh+aho+WxleekulwiLFwicGF0aFwiOlwiZG9jXCIsXCJydWxlXCI6XCJqczpcXHJcXG5kID0gW107XFxyXFxuZG9jVHlwZSA9IE1ZX1BBUkFNUy5kb2NUeXBlO1xcclxcbmlmIChkb2NUeXBlID09ICdoZWxwJykge1xcclxcbiAgICBwYXRoID0gJ2hpa2VyOi8vZmlsZXMvY2FjaGUvSW5zdHJ1Y3Rpb25fQm9vay5odG1sJztcXHJcXG4gICAgZC5wdXNoKHtcXHJcXG4gICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnLFxcclxcbiAgICAgICAgdXJsOiBnZXRQYXRoKHBhdGgpLFxcclxcbiAgICAgICAgZGVzYzogJ2F1dG8nXFxyXFxuICAgIH0pO1xcclxcbn0gZWxzZSB7XFxyXFxuICAgIGQucHVzaCh7XFxyXFxuICAgICAgICB0aXRsZTpKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9BUEkuaHRtbCcpKS5ydWxlLFxcclxcbiAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxyXFxuICAgIH0pO1xcclxcbn1cXHJcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJBUEnmlofmoaNcIixcInBhdGhcIjpcIkFQSS5odG1sXCIsXCJydWxlXCI6XCI8cD7igJzigJzigJTigJTihpPkvb/nlKjmlofmoaPihpPigJTigJTigJ3igJ08L3A+XFxyXFxu5Y+v5Lul5Zyo6L+Z5Li76aG15a6M5oiQ5LiA5Lqb5Z+656GA5Y+C5pWw55qE6K6+572u77ya5by55bmV5aSn5bCP44CB5by55bmV5p2l5rqQ77yI6buY6K6k5L2c55So5Z+f5piv6Zmk5LqGdHjjgIFiaWxp44CBbWd0duWklueahOaJgOacieWumOmTvu+8jOWPr+S7peS/ruaUueS4uuWFqOWxgOS9nOeUqOiMg+WbtO+8iSx0eOOAgWJpbGnjgIFtZ3R25Li65a6e5pe25by55bmV5Ye95pWw44CCXFxyXFxuPGgyIGlkPVxcXCLlsI/nqIvluo/pgJrlhY3osIPnlKjmlrnms5VcXFwiPuWwj+eoi+W6j+mAmuWFjeiwg+eUqOaWueazlTwvaDI+XFxyXFxuPHByZT48Y29kZT5sYXp5ID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcclxcbiAgICByZXR1cm4gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbGF6eVRvWDU/cnVsZT1kbeebkuWtkCcpLnZpZGVvWDUoKTtcXHJcXG59KVxcclxcbmxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxyXFxuICAgIHJldHVybiAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9sYXp5VG9YNT9ydWxlPWRt55uS5a2QJykuZHJYNSgpO1xcclxcbn0pXFxyXFxubGF6eSA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXHJcXG4gICAgcmV0dXJuICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2xhenlUb1g1P3J1bGU9ZG3nm5LlrZAnKS5jbGFzc2ljYWxYNSgpO1xcclxcbn0pXFxyXFxuPC9jb2RlPjwvcHJlPlxcclxcbjxwPuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlDwvcD5cXHJcXG48aDIgaWQ9XFxcIuaWreaPkuWHveaVsOiwg+eUqFxcXCI+5pat5o+S5Ye95pWw6LCD55SoPC9oMj5cXHJcXG48aDMgaWQ9XFxcIuWAn+WKqemFjee9ruWKqeaJi1xcXCI+5YCf5Yqp6YWN572u5Yqp5omLPC9oMz5cXHJcXG7lj4LmlbDnmobkuLrmlbDnu4TvvIzlsIbkvJrlkozphY3nva7liqnmiYvph4zovrnkv53lrZjlkK/nlKjnmoTop6PmnpDmi7zmjqXov5Tlm57lpJrnur/ot6/vvIzlvLnluZXnlLHphY3nva7liqnmiYvnrqHnkIbjgILnm7jlvZPkuo7lhY3ll4Xpppblj5HjgIJcXHJcXG48cHJlPjxjb2RlPnJldHVybiAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9tdWxQYXJzZT9ydWxlPemFjee9ruWKqeaJi1xcXCIpLm11bFBhcnNlKFsndmlwVXJsJ10sIFsnYmZ1cmwnXSwgWyfop6PmnpDlkI0nXSwgW3sgXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiTW96aWxsYS81LjBcXFwiIH1dKTtcXHJcXG48L2NvZGU+PC9wcmU+XFxyXFxuPHA+4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUPC9wPlxcclxcbjxoMyBpZD1cXFwi5pat5o+SLemtlOaWrVxcXCI+5pat5o+SLemtlOaWrTwvaDM+XFxyXFxuPHByZT48Y29kZT5yZXR1cm4gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbGF6eVRvSmlleGk/cnVsZT1kbeebkuWtkCcpLmRyWDUoJ+agh+WHhuWumOmTvicsICfmkq3mlL51cmwnKTtcXHJcXG5yZXR1cm4gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbGF6eVRvSmlleGk/cnVsZT1kbeebkuWtkCcpLmNsYXNzaWNhbFg1KCfmoIflh4blrpjpk74nLCAn5pKt5pS+dXJsJyk7XFxyXFxucmV0dXJuICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2xhenlUb0ppZXhpP3J1bGU9ZG3nm5LlrZAnKS5Kc29uZG0oJ+agh+WHhuWumOmTvicsICfmkq3mlL51cmwnKTtcXHJcXG48L2NvZGU+PC9wcmU+XFxyXFxuPHA+4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUPC9wPlxcclxcbjxoMiBpZD1cXFwi6I635Y+W5oyH5a6a55qE5by55bmV5paH5Lu2XFxcIj7ojrflj5bmjIflrprnmoTlvLnluZXmlofku7Y8L2gyPlxcclxcbui/lOWbnuWAvOaYr+W8ueW5leaWh+S7tueahOacrOWcsOi3r+W+hCzlj4LmlbDmmK/moIflh4bnmoTlrpjmlrnpk77mjqVcXHJcXG48cHJlPjxjb2RlPmRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0o5a6Y6ZO+KTtcXHJcXG5kbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxyXFxuZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKOWumOmTvik7XFxyXFxuZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSjlrpjpk74pO1xcclxcbmRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLlRYZG0o5a6Y6ZO+KTtcXHJcXG5kbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5iaWxpZG0o5a6Y6ZO+KTtcXHJcXG48L2NvZGU+PC9wcmU+XFxyXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlvLnluZXlh73mlbDmsYfmgLtcIixcInBhdGhcIjpcImRtRnVuXCIsXCJydWxlXCI6XCIvLyDlhaXlj6Plh73mlbDigJTigJTot6/nlLFcXHJcXG4kLmV4cG9ydHMuZG1Sb3V0ZSA9IGZ1bmN0aW9uICh2aXBVcmwpIHtcXHJcXG4gICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcclxcbiAgICBkbUZyb20gPSBkbVNldHRpbmdzLmRtRnJvbTtcXHJcXG4gICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXHJcXG4gICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXHJcXG4gICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxyXFxuICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcclxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxyXFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXHJcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXHJcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxyXFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXHJcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICB9XFxyXFxuICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICBpZiAodmlwVXJsLm1hdGNoKC95b3VrdXxxaXlpfGl4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZXxjY3R2fDE5MDUuY29tLykpIHtcXHJcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcclxcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxyXFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcclxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9tZ3R2LykpIHtcXHJcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKHZpcFVybCk7XFxyXFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvcXEuY29tLykpIHtcXHJcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKHZpcFVybCk7XFxyXFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvYmlsaS8pKSB7XFxyXFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKHZpcFVybCk7XFxyXFxuICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgIGRtID0gZ2V0VmFyKCdkbV9zaGFyZScsICcnKTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfVxcclxcbiAgICByZXR1cm4gZG07XFxyXFxufVxcclxcblxcclxcblxcclxcbi8v5a6Y5pa55by55bmV5Ye95pWwfCBxcVxcclxcbiQuZXhwb3J0cy5UWGRtID0gZnVuY3Rpb24gKHJlYWx1cmwpIHtcXHJcXG4gICAgaWYgKGdldEl0ZW0oJ1RYX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsICcnKSA9PSByZWFsdXJsKSB7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdUWF9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxuICAgIHRyeSB7XFxyXFxuICAgICAgICB2YXIgdmlkO1xcclxcbiAgICAgICAgLy8g6YCC6YWNUEPnq6/pk77mjqXvvIjosYbnk6PnlLXop4bliafpgJrnlKjvvIlcXHJcXG4gICAgICAgIHRyeSB7XFxyXFxuICAgICAgICAgICAgdmlkID0gcmVhbHVybC5zcGxpdCgnLmh0bWwnKVswXS5zcGxpdCgnLycpLnBvcCgpO1xcclxcbiAgICAgICAgICAgIGxvZyh2aWQpO1xcclxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgICAgIC8vIOaQuuW4pnZpZOWPguaVsOeahOenu+WKqOerr+mTvuaOpVxcclxcbiAgICAgICAgICAgIHZpZCA9IHJlYWx1cmwuc3BsaXQoJz0nKVsxXTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIHZhciBkYXRhID0gJyc7XFxyXFxuICAgICAgICAvLyDlvLnluZXmoLflvI9cXHJcXG4gICAgICAgIHZhciBjdCA9IDE7XFxyXFxuICAgICAgICAvLyDlrZfkvZPlpKflsI9cXHJcXG4gICAgICAgIHZhciBzaXplID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpLmZvbnRTaXplO1xcclxcbiAgICAgICAgdHJ5IHtcXHJcXG4gICAgICAgICAgICBkYW5tdURhdGEgPSBKU09OLnBhcnNlKGZldGNoKCdodHRwczovL2RtLnZpZGVvLnFxLmNvbS9iYXJyYWdlL2Jhc2UvJyArIHZpZCwge1xcclxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IFBDX1VBLFxcclxcbiAgICAgICAgICAgICAgICAgICAgXFxcIlJlZmVyZXJcXFwiOiBcXFwiaHR0cHM6Ly92LnFxLmNvbS9cXFwiXFxyXFxuICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgIG1ldGhvZDogXFxcIkdFVFxcXCJcXHJcXG4gICAgICAgICAgICB9KSkuc2VnbWVudF9pbmRleDtcXHJcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgICAgICAvLyDogZrlvbHjgIHosYbnk6PjgIHmkJzni5fnrYnohb7orq/nlLXlvbHpk77mjqVcXHJcXG4gICAgICAgICAgICBsb2coJ3ZpZOWPguaVsOmUmeivryznjrDlsIblhbbop4bkuLpjaWTph43mlrDojrflj5YnKTtcXHJcXG4gICAgICAgICAgICBkYXRhID0gcmVxdWVzdCgnaHR0cHM6Ly9wYmFjY2Vzcy52aWRlby5xcS5jb20vdHJwYy52aWRlb3NlYXJjaC5zZWFyY2hfY2dpLmh0dHAvbG9hZF9wbGF5c291cmNlX2xpc3RfaW5mbz9wYWdlTnVtPTAmaWQ9JyArIHZpZCArICcmZGF0YVR5cGU9MiZwYWdlQ29udGV4dD1uZWVkX2FzeW5jJTNEdHJ1ZSZzY2VuZT0yJnBsYXRmb3JtPTImYXBwSWQ9MTA3MTgmc2l0ZT1xcSZ2YXBwaWQ9MzQzODI1NzkmdnNlY3JldD1lNDk2YjA1Nzc1OGFlYjA0YjNhMmQ2MjNjOTUyYTFjNDdlMDRmZmIwYTAxZTE5Y2YmZ190az0mZ192c3RrPSZnX2FjdGs9Jyk7XFxyXFxuICAgICAgICAgICAgdmlkID0gSlNPTi5wYXJzZShkYXRhKS5kYXRhLm5vcm1hbExpc3QuaXRlbUxpc3RbMF0udmlkZW9JbmZvLmZpcnN0QmxvY2tTaXRlc1swXS5lcGlzb2RlSW5mb0xpc3RbMF0uaWQ7XFxyXFxuICAgICAgICAgICAgbG9nKCfnnJ/lrp52aWQ6JyArIHZpZCk7XFxyXFxuICAgICAgICAgICAgZGFubXVEYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9kbS52aWRlby5xcS5jb20vYmFycmFnZS9iYXNlLycgKyB2aWQsIHtcXHJcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBQQ19VQSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vdi5xcS5jb20vXFxcIlxcclxcbiAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFxcXCJHRVRcXFwiXFxyXFxuICAgICAgICAgICAgfSkpLnNlZ21lbnRfaW5kZXg7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICB1cmwgPSBbXTtcXHJcXG4gICAgICAgIGZvciAodmFyIHByb3AgaW4gZGFubXVEYXRhKSB7XFxyXFxuICAgICAgICAgICAgdXJsLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2RtLnZpZGVvLnFxLmNvbS9iYXJyYWdlL3NlZ21lbnQvJyArIHZpZCArICcvJyArIGRhbm11RGF0YVtwcm9wXS5zZWdtZW50X25hbWVcXHJcXG4gICAgICAgICAgICB9KTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIGJhdGNoRmV0Y2godXJsKS5tYXAoZnVuY3Rpb24gKGEpIHtcXHJcXG4gICAgICAgICAgICBkYW5tdURhdGEgPSBKU09OLnBhcnNlKGEpLmJhcnJhZ2VfbGlzdDtcXHJcXG4gICAgICAgICAgICAvLyDlvLnluZXkuLrnqbpcXHJcXG4gICAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGFubXVEYXRhKSA9PT0gJ1tdJykge1xcclxcbiAgICAgICAgICAgICAgICBsb2coJ+atpOmhteS4uuepuicpO1xcclxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgICAgIHRyeSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhbm11RGF0YS5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWPkemAgeaXtumXtFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVwb2ludCA9IGRhbm11RGF0YVtpXS50aW1lX29mZnNldCAvIDEwMDA7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5by55bmV6aKc6ImyKOm7mOiupClcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IDE2Nzc3MjE1O1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYW5tdURhdGFbaV0uY29udGVudF9zdHlsZSAhPSAnJykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvckhleCA9IGRhbm11RGF0YVtpXS5jb250ZW50X3N0eWxlLm1hdGNoKC9cXFxcW1xcXCJbXFxcXFNcXFxcc10rKD89XFxcIixcXFwiKS8pWzBdLnJlcGxhY2UoJ1tcXFwiJywgJycpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IHBhcnNlSW50KGNvbG9ySGV4LCAxNik7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWGheWuuVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBkYW5tdURhdGFbaV0uY29udGVudDtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudC5pbmRleE9mKCc8JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCc+JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCcmJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcdTAwMDAnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFxiJykgIT0gLTEpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBkYXRhID0gYDxkIHA9XFxcIiR7TWF0aC5yb3VuZCh0aW1lcG9pbnQpfSwke2N0fSwke3NpemV9LCR7Y29sb3J9LDBcXFwiPiR7Y29udGVudH08L2Q+XFxcXG5gXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSArPSB0ZW1wZGF0YTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCfkuI3nn6XnvJjnlLHnmoTlvILluLjvvIznm7TmjqXot7Pov4cnKVxcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgfSk7XFxyXFxuICAgICAgICAvLyDmnIDnu4jlvoXlhpnlhaXnmoTlvLnluZXmlbDmja5cXHJcXG4gICAgICAgIGRhbm11c3RyID0gYDw/eG1sIHZlcnNpb249XFxcIjEuMFxcXCIgZW5jb2Rpbmc9XFxcIlVURi04XFxcIj8+XFxcXG48aT5cXFxcbiR7ZGF0YX08L2k+YDtcXHJcXG4gICAgICAgIC8vIOWGmeWFpeW8ueW5lVxcclxcbiAgICAgICAgZG0gPSAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ1RYX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgICAgICBzYXZlRmlsZShkbSwgZGFubXVzdHIpO1xcclxcbiAgICAgICAgc2V0SXRlbSgnVFhfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgcmVhbHVybCk7XFxyXFxuICAgICAgICBwdXRWYXIoJ2RtX3NoYXJlJywgZG0pO1xcclxcbiAgICAgICAgcmV0dXJuIGRtO1xcclxcbiAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICBsb2coJ+WHuumUmeS6hicpXFxyXFxuICAgICAgICBzaG93TG9hZGluZygn5aSp5ZGQ5pK477yM6I635Y+W5aSx6LSl5LqG5ZGi77yBJyk7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdUWF9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxufVxcclxcblxcclxcbi8vIOWumOaWuUFQSXxiaWxpXFxyXFxuJC5leHBvcnRzLmJpbGlkbSA9IGZ1bmN0aW9uIChyZWFsdXJsKSB7XFxyXFxuICAgIGZ1bmN0aW9uIG92ZXJyaWRlU2F2ZShkbSkge1xcclxcbiAgICAgICAgdmFyIGRhbm11RGF0YSA9IHJlcXVlc3QoZG0pO1xcclxcbiAgICAgICAgdmFyIHNpemUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZm9udFNpemU7XFxyXFxuICAgICAgICB2YXIgZGF0YSA9ICcnO1xcclxcbiAgICAgICAgdGQgPSBwZGZhKGRhbm11RGF0YSwgJ2kmJmQnKTtcXHJcXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGQubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICB0aW1lcG9pbnQgPSBwZGZoKHRkW2ldLCAnZCYmcCcpLnNwbGl0KFxcXCIsXFxcIilbMF07XFxyXFxuICAgICAgICAgICAgY3QgPSBwZGZoKHRkW2ldLCAnZCYmcCcpLnNwbGl0KFxcXCIsXFxcIilbMV07XFxyXFxuICAgICAgICAgICAgY29sb3IgPSBwZGZoKHRkW2ldLCAnZCYmcCcpLnNwbGl0KFxcXCIsXFxcIilbM107XFxyXFxuICAgICAgICAgICAgLy8g5by55bmV5YaF5a65XFxyXFxuICAgICAgICAgICAgY29udGVudCA9IHBkZmgodGRbaV0sICdkJiZUZXh0Jyk7XFxyXFxuICAgICAgICAgICAgaWYgKGNvbnRlbnQuaW5kZXhPZignPCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignPicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignJicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXHUwMDAwJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcYicpICE9IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICB0ZW1wZGF0YSA9IGA8ZCBwPVxcXCIke01hdGgucm91bmQodGltZXBvaW50KX0sJHtjdH0sJHtzaXplfSwke2NvbG9yfSwwXFxcIj4ke2NvbnRlbnR9PC9kPlxcXFxuYDtcXHJcXG4gICAgICAgICAgICBkYXRhICs9IHRlbXBkYXRhO1xcclxcbiAgICAgICAgfVxcclxcbiAgICAgICAgZGFubXVzdHIgPSBgPD94bWwgdmVyc2lvbj1cXFwiMS4wXFxcIiBlbmNvZGluZz1cXFwiVVRGLThcXFwiPz5cXFxcbjxpPlxcXFxuJHtkYXRhfTwvaT5gO1xcclxcbiAgICAgICAgc2F2ZUZpbGUoZG0sIGRhbm11c3RyKTtcXHJcXG4gICAgfVxcclxcblxcclxcblxcclxcbiAgICBpZiAoZ2V0SXRlbSgnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlLCAnJykgPT0gcmVhbHVybCkge1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxuICAgIHRyeSB7XFxyXFxuICAgICAgICB2YXIgZXBpZCwgZGF0YSwgY2lkO1xcclxcbiAgICAgICAgaWYgKHJlYWx1cmwubWF0Y2goL2VwLykpIHtcXHJcXG4gICAgICAgICAgICBlcGlkID0gcmVhbHVybC5zcGxpdCgnZXAnKVsxXS5zcGxpdCgnPycpWzBdO1xcclxcbiAgICAgICAgICAgIGZldGNoX3VybCA9IFxcXCJodHRwczovL2FwaS5iaWxpYmlsaS5jb20vcGdjL3ZpZXcvd2ViL3NlYXNvbj9lcF9pZD1cXFwiICsgZXBpZDtcXHJcXG4gICAgICAgIH0gZWxzZSBpZiAocmVhbHVybC5tYXRjaCgvYXYvKSkge1xcclxcbiAgICAgICAgICAgIC8vIGFpZOacgOWwj+WNleS9jS3ljZXpm4ZcXHJcXG4gICAgICAgICAgICBhaWQgPSByZWFsdXJsLnNwbGl0KCdhdicpWzFdLnNwbGl0KCc/JylbMF07XFxyXFxuICAgICAgICAgICAgbG9nKCdhaWQ6JyArIGFpZCk7XFxyXFxuICAgICAgICAgICAgZmV0Y2hfdXJsID0gXFxcImh0dHBzOi8vYXBpLmJpbGliaWxpLmNvbS94L3dlYi1pbnRlcmZhY2Uvdmlldz9haWQ9XFxcIiArIGFpZDtcXHJcXG4gICAgICAgICAgICBjaWQgPSBKU09OLnBhcnNlKGZldGNoKGZldGNoX3VybCwge1xcclxcbiAgICAgICAgICAgICAgICBcXFwiaGVhZGVyc1xcXCI6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogUENfVUFcXHJcXG4gICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgXFxcInJlZmVycmVyXFxcIjogcmVhbHVybCxcXHJcXG4gICAgICAgICAgICAgICAgXFxcIm1ldGhvZFxcXCI6IFxcXCJHRVRcXFwiLFxcclxcbiAgICAgICAgICAgIH0pKS5kYXRhLmNpZDtcXHJcXG4gICAgICAgICAgICBmaWxlID0gJ2h0dHBzOi8vY29tbWVudC5iaWxpYmlsaS5jb20vJyArIGNpZCArICcueG1sJztcXHJcXG4gICAgICAgICAgICBkbSA9ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICAgICAgICAgIGRvd25sb2FkRmlsZShmaWxlLCBkbSk7XFxyXFxuICAgICAgICAgICAgb3ZlcnJpZGVTYXZlKGRtKTtcXHJcXG4gICAgICAgICAgICBzZXRJdGVtKCdiaWxpX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsIHJlYWx1cmwpO1xcclxcbiAgICAgICAgICAgIHB1dFZhcignZG1fc2hhcmUnLCBkbSk7XFxyXFxuICAgICAgICAgICAgcmV0dXJuIGRtO1xcclxcbiAgICAgICAgfSBlbHNlIGlmIChyZWFsdXJsLm1hdGNoKC9zc3xtZC8pKSB7XFxyXFxuICAgICAgICAgICAgaWYgKHJlYWx1cmwubWF0Y2goL3NzLykpIHtcXHJcXG4gICAgICAgICAgICAgICAgLy8g6YeH6ZuG5Yiw55qEc3Ppk77mjqXlpJrljYrlsLHmmK/nlLXlvbHvvIxzZWFzb25faWTkuZ/og73ku6PooajljZXpm4blr7nlhbblpITnkIZcXHJcXG4gICAgICAgICAgICAgICAgc2Vhc29uX2lkID0gcmVhbHVybC5zcGxpdCgnc3MnKVsxXS5zcGxpdCgnPycpWzBdO1xcclxcbiAgICAgICAgICAgICAgICBsb2coJ3NlYXNvbl9pZDonICsgc2Vhc29uX2lkKTtcXHJcXG4gICAgICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgICAgICAvLyDnlLHnlarliadtZOafpeivonNlYXNvbl9pZO+8jOWGjee7j+WQjOagt+mAu+i+keWkhOeQhu+8iOW9k+WBmuWNlembhuWkhOeQhi3mnKrpqozor4HvvIlcXHJcXG4gICAgICAgICAgICAgICAgbWQgPSByZWFsdXJsLnNwbGl0KCdtZCcpWzFdLnNwbGl0KCc/JylbMF07XFxyXFxuICAgICAgICAgICAgICAgIGxvZygnbWQ6JyArIG1kKTtcXHJcXG4gICAgICAgICAgICAgICAgZmV0Y2hfdXJsID0gXFxcImh0dHBzOi8vYXBpLmJpbGliaWxpLmNvbS9wZ2MvcmV2aWV3L3VzZXI/bWVkaWFfaWQ9XFxcIiArIGVwaWQ7XFxyXFxuICAgICAgICAgICAgICAgIHNlYXNvbl9pZCA9IEpTT04ucGFyc2UoZmV0Y2goZmV0Y2hfdXJsLCB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaGVhZGVyc1xcXCI6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFBDX1VBXFxyXFxuICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgXFxcInJlZmVycmVyXFxcIjogcmVhbHVybCxcXHJcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtZXRob2RcXFwiOiBcXFwiR0VUXFxcIixcXHJcXG4gICAgICAgICAgICAgICAgfSkpLnJlc3VsdC5tZWRpYS5zZWFzb25faWQ7XFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIGZldGNoX3VybCA9ICdodHRwczovL2FwaS5iaWxpYmlsaS5jb20vcGdjL3dlYi9zZWFzb24vc2VjdGlvbj9zZWFzb25faWQ9JyArIHNlYXNvbl9pZDtcXHJcXG4gICAgICAgICAgICBjaWQgPSBKU09OLnBhcnNlKGZldGNoKGZldGNoX3VybCwge1xcclxcbiAgICAgICAgICAgICAgICBcXFwiaGVhZGVyc1xcXCI6IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogUENfVUFcXHJcXG4gICAgICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICAgICAgXFxcInJlZmVycmVyXFxcIjogcmVhbHVybCxcXHJcXG4gICAgICAgICAgICAgICAgXFxcIm1ldGhvZFxcXCI6IFxcXCJHRVRcXFwiLFxcclxcbiAgICAgICAgICAgIH0pKS5yZXN1bHQubWFpbl9zZWN0aW9uLmVwaXNvZGVzWzBdLmNpZFxcclxcbiAgICAgICAgICAgIGZpbGUgPSAnaHR0cHM6Ly9jb21tZW50LmJpbGliaWxpLmNvbS8nICsgY2lkICsgJy54bWwnO1xcclxcbiAgICAgICAgICAgIGRtID0gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdiaWxpX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgICAgICAgICAgZG93bmxvYWRGaWxlKGZpbGUsIGRtKTtcXHJcXG4gICAgICAgICAgICBvdmVycmlkZVNhdmUoZG0pO1xcclxcbiAgICAgICAgICAgIHNldEl0ZW0oJ2JpbGlfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgcmVhbHVybCk7XFxyXFxuICAgICAgICAgICAgcHV0VmFyKCdkbV9zaGFyZScsIGRtKTtcXHJcXG4gICAgICAgICAgICByZXR1cm4gZG07XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShmZXRjaChmZXRjaF91cmwsIHtcXHJcXG4gICAgICAgICAgICBcXFwiaGVhZGVyc1xcXCI6IHtcXHJcXG4gICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQVxcclxcbiAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgXFxcInJlZmVycmVyXFxcIjogcmVhbHVybCxcXHJcXG4gICAgICAgICAgICBcXFwibWV0aG9kXFxcIjogXFxcIkdFVFxcXCIsXFxyXFxuICAgICAgICB9KSk7XFxyXFxuICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgIGRhdGEucmVzdWx0LmVwaXNvZGVzLmZvckVhY2goZXAgPT4ge1xcclxcbiAgICAgICAgICAgICAgICBpZiAoZXAubGluayA9PSByZWFsdXJsKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBjaWQgPSAoZXAuY2lkKS50b1N0cmluZygpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgLy9icmVhaztcXHJcXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKClcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgICAgIGZpbGUgPSAnaHR0cHM6Ly9jb21tZW50LmJpbGliaWxpLmNvbS8nICsgY2lkICsgJy54bWwnO1xcclxcbiAgICAgICAgICAgIGRtID0gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdiaWxpX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgICAgICAgICAgZG93bmxvYWRGaWxlKGZpbGUsIGRtKTtcXHJcXG4gICAgICAgICAgICBvdmVycmlkZVNhdmUoZG0pO1xcclxcbiAgICAgICAgICAgIHNldEl0ZW0oJ2JpbGlfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgcmVhbHVybCk7XFxyXFxuICAgICAgICAgICAgcHV0VmFyKCdkbV9zaGFyZScsIGRtKTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIHJldHVybiBkbTtcXHJcXG4gICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgbG9nKCflh7rplJnkuoYnKVxcclxcbiAgICAgICAgc2hvd0xvYWRpbmcoJ+WkqeWRkOaSuO+8jOiOt+WPluWksei0peS6huWRou+8gScpO1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnYmlsaV9mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxufVxcclxcblxcclxcbi8v5a6Y5pa55by55bmV5Ye95pWwfCBtZ3R2XFxyXFxuJC5leHBvcnRzLk1HZG0gPSBmdW5jdGlvbiAocmVhbHVybCkge1xcclxcbiAgICBpZiAoZ2V0SXRlbSgnTWdfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgJycpID09IHJlYWx1cmwpIHtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ01nX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgIH1cXHJcXG4gICAgdHJ5IHtcXHJcXG4gICAgICAgIHZhciB2aWQgPSByZWFsdXJsLnNwbGl0KCcvJylbNV0uc3BsaXQoJy5odG1sJylbMF07XFxyXFxuICAgICAgICB2YXIgY2lkID0gcmVhbHVybC5zcGxpdCgnLycpWzRdO1xcclxcbiAgICAgICAgdmFyIGZpbGVOdW0gPSAwO1xcclxcbiAgICAgICAgdmFyIGRhdGEgPSAnJ1xcclxcbiAgICAgICAgLy8g5a2X5L2T5aSn5bCPXFxyXFxuICAgICAgICB2YXIgc2l6ZSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKS5mb250U2l6ZTtcXHJcXG4gICAgICAgIC8vIOWuuemUmeWkhOeQhlxcclxcbiAgICAgICAgdmFyIGVyck51bSA9IDA7XFxyXFxuICAgICAgICBkYW5tdUZyb20gPSBKU09OLnBhcnNlKGZldGNoKGBodHRwczovL2dhbGF4eS5iei5tZ3R2LmNvbS9nZXRjdGxiYXJyYWdlP3ZlcnNpb249My4wLjAmdmlkPSR7dmlkfSZhYnJvYWQ9MCZwaWQ9MCZvcz0mdXVpZD0mZGV2aWNlaWQ9MmNjMDkyY2ItZjlkZi00ZjRmLWExY2UtMzNjN2ZlMzU3NWNmJmNpZD0zOTM3MTcmdGlja2V0PSZtYWM9JnBsYXRmb3JtPTAmYXBwVmVyc2lvbj0zLjAuMCZyZXF0eXBlPWZvcm0tcG9zdCZjYWxsYmFjaz1qc29ucF8xNjU4MjE2ODczNjQ4XzE5MDc0JmFsbG93ZWRSQz0xYCwge1xcclxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBQQ19VQSxcXHJcXG4gICAgICAgICAgICAgICAgJ1JlZmVyZXInOiByZWFsdXJsXFxyXFxuICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnXFxyXFxuICAgICAgICB9KS5tYXRjaCgve1tcXFxcU1xcXFxzXSt9LykpLmRhdGEuY2RuX3ZlcnNpb247XFxyXFxuICAgICAgICAvLyBEVkTjgIHnlLXlvbHjgIHlsJHpg6jliIbliafpm4ZcXHJcXG4gICAgICAgIGlmIChkYW5tdUZyb20gPT0gdW5kZWZpbmVkKSB7XFxyXFxuICAgICAgICAgICAgdmFyIHRpbWUgPSAwO1xcclxcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XFxyXFxuICAgICAgICAgICAgICAgIC8vIOivt+axguW8ueW5lVxcclxcbiAgICAgICAgICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgZGFubXVEYXRhID0gSlNPTi5wYXJzZShmZXRjaChgaHR0cHM6Ly9nYWxheHkuYnoubWd0di5jb20vY2RuL29wYmFycmFnZT92ZXJzaW9uPTMuMC4wJnZpZD0ke3ZpZH0mYWJyb2FkPTAmcGlkPTAmb3M9JnV1aWQ9JmRldmljZWlkPTJjYzA5MmNiLWY5ZGYtNGY0Zi1hMWNlLTMzYzdmZTM1NzVjZiZjaWQ9JHtjaWR9JnRpY2tldD0mbWFjPSZwbGF0Zm9ybT0wJnRpbWU9JHt0aW1lfSZkZXZpY2U9MCZhbGxvd2VkUkM9MSZhcHBWZXJzaW9uPTMuMC4wJnJlcXR5cGU9Zm9ybS1wb3N0JmNhbGxiYWNrPWpzb25wXzE2NTg0NTkxNzg5OThfNTE1MCZhbGxvd2VkUkM9MWAsIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogUENfVUEsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogcmVhbHVybFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgfSkubWF0Y2goL3tbXFxcXFNcXFxcc10rfS8pKS5kYXRhO1xcclxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ+ivt+axguWksei0pScpO1xcclxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgZGFubXUgPSBkYW5tdURhdGEuaXRlbXM7XFxyXFxuICAgICAgICAgICAgICAgIC8vIOebtOiHs+W8ueW5leS4uuepuuKAlOKAlOecn+eahOaYr++8jOWmguaenOW8ueW5leWkquWwkeWvvOiHtOafkOS4gOmhteayoeacieaVsOaNrumCo+WyguS4jeaYr+ivr+adgO+8n++8n++8n+e7meS7luS4quWFgeiuuCjov57nu60p56m65YC855qE5pyA5aSn5qyh5pWw5ZCn44CC44CCXFxyXFxuICAgICAgICAgICAgICAgIGlmIChkYW5tdSA9PSBudWxsKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBlcnJOdW0gKz0gMTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJOdW0gPiAyKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxyXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcclxcbiAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIC8vIOWmguaenOiDveiOt+WPluWIsOaVsOaNruWwseWwhuepuuWAvOasoeaVsOa4hTDvvIzkv53or4HplJnor6/nqbrlgLzmmK/ov57nu63nmoTvvIzlsL3lj6/og73pgb/lhY3or6/mnYBcXHJcXG4gICAgICAgICAgICAgICAgZXJyTnVtID0gMDtcXHJcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYW5tdS5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g5by55bmV5Y+R6YCB5pe26Ze0XFxyXFxuICAgICAgICAgICAgICAgICAgICB0aW1lcG9pbnQgPSBkYW5tdVtpXS50aW1lIC8gMTAwMDtcXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leagt+W8j1xcclxcbiAgICAgICAgICAgICAgICAgICAgY3QgPSAxO1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11W2ldLnYyX3Bvc2l0aW9uKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g6aG256uv5by55bmVXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY3QgPSA1O1xcclxcbiAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g5by55bmV6aKc6ImyKOm7mOiupClcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gMTY3NzcyMTU7XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDpopzoibLorr7nva7igJTigJTlj6/oh6rooYzkv67mlLnmm7/mjaJsZWZ05Li6cmlnaHQo5Y6f5p2l5piv5bem5Y+z5riQ5Y+Y55qE6aKc6Imy77yM5L2GeG1s5qC85byP5pys6Lqr5bm25LiN5pSv5oyB77yM5omA5Lul5LqM6YCJ5LiA5ZCn77yMbGVmdOS4gOiIrOminOiJsuavlOi+g+a3se+8jHJpZ2h05LiA6Iis6aKc6Imy5q+U6L6D5rWFKVxcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11W2ldLnYyX2NvbG9yKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSAoZGFubXVbaV0udjJfY29sb3IuY29sb3JfbGVmdC5yIDw8IDE2KSArIChkYW5tdVtpXS52Ml9jb2xvci5jb2xvcl9sZWZ0LmcgPDwgOCkgKyAoZGFubXVbaV0udjJfY29sb3IuY29sb3JfbGVmdC5iKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWGheWuuVxcclxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IGRhbm11W2ldLmNvbnRlbnQ7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudC5pbmRleE9mKCc8JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCc+JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCcmJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcdTAwMDAnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFxiJykgIT0gLTEpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIHRlbXBkYXRhID0gYDxkIHA9XFxcIiR7TWF0aC5yb3VuZCh0aW1lcG9pbnQpfSwke2N0fSwke3NpemV9LCR7Y29sb3J9LDBcXFwiPiR7Y29udGVudH08L2Q+XFxcXG5gXFxyXFxuICAgICAgICAgICAgICAgICAgICBkYXRhICs9IHRlbXBkYXRhO1xcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIHRpbWUgPSBkYW5tdURhdGEubmV4dDtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgICAgIC8vIOS4gOiIrOWJp+mbhuWSjOe7vOiJulxcclxcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XFxyXFxuICAgICAgICAgICAgICAgIC8vIOivt+axguW8ueW5lVxcclxcbiAgICAgICAgICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgZGFubXVEYXRhID0gSlNPTi5wYXJzZShmZXRjaChgaHR0cHM6Ly9idWxsZXQtd3MuaGl0di5jb20vJHtkYW5tdUZyb219LyR7ZmlsZU51bX0uanNvbmAsIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogUENfVUEsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogcmVhbHVybFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJ1xcclxcbiAgICAgICAgICAgICAgICAgICAgfSkpLmRhdGE7XFxyXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGxvZygn5by55bmV5pWw5o2u6I635Y+W5a6M5q+VJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICBkYW5tdSA9IGRhbm11RGF0YS5pdGVtcztcXHJcXG4gICAgICAgICAgICAgICAgaWYgKGRhbm11ID09IG51bGwpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIGxvZygn6L+Z5LiA6aG15rKh5pyJ5pWw5o2uJyk7XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDlt67ngrnlv5jorrDliqAx5LqG77yM5q275b6q546v6KaB5bSp5rqDflxcclxcbiAgICAgICAgICAgICAgICAgICAgZmlsZU51bSArPSAxO1xcclxcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYW5tdS5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g5by55bmV5Y+R6YCB5pe26Ze0XFxyXFxuICAgICAgICAgICAgICAgICAgICB0aW1lcG9pbnQgPSBkYW5tdVtpXS50aW1lIC8gMTAwMDtcXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leagt+W8j1xcclxcbiAgICAgICAgICAgICAgICAgICAgY3QgPSAxO1xcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11W2ldLnYyX3Bvc2l0aW9uKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g6aG256uv5by55bmVXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY3QgPSA1O1xcclxcbiAgICAgICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICAgICAgLy8g5by55bmV6aKc6ImyKOm7mOiupClcXHJcXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gMTY3NzcyMTU7XFxyXFxuICAgICAgICAgICAgICAgICAgICAvLyDpopzoibLorr7nva7igJTigJTlj6/oh6rooYzkv67mlLnmm7/mjaJsZWZ05Li6cmlnaHQo5Y6f5p2l5piv5bem5Y+z5riQ5Y+Y55qE6aKc6Imy77yM5L2GeG1s5qC85byP5pys6Lqr5bm25LiN5pSv5oyB77yM5omA5Lul5LqM6YCJ5LiA5ZCn77yMbGVmdOS4gOiIrOminOiJsuavlOi+g+a3se+8jHJpZ2h05LiA6Iis6aKc6Imy5q+U6L6D5rWFKVxcclxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11W2ldLnYyX2NvbG9yKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSAoZGFubXVbaV0udjJfY29sb3IuY29sb3JfbGVmdC5yIDw8IDE2KSArIChkYW5tdVtpXS52Ml9jb2xvci5jb2xvcl9sZWZ0LmcgPDwgOCkgKyAoZGFubXVbaV0udjJfY29sb3IuY29sb3JfbGVmdC5iKTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWGheWuuVxcclxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IGRhbm11W2ldLmNvbnRlbnQ7XFxyXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudC5pbmRleE9mKCc8JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCc+JykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCcmJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcdTAwMDAnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFxiJykgIT0gLTEpIHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXHJcXG4gICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgIHRlbXBkYXRhID0gYDxkIHA9XFxcIiR7TWF0aC5yb3VuZCh0aW1lcG9pbnQpfSwke2N0fSwke3NpemV9LCR7Y29sb3J9LDBcXFwiPiR7Y29udGVudH08L2Q+XFxcXG5gXFxyXFxuICAgICAgICAgICAgICAgICAgICBkYXRhICs9IHRlbXBkYXRhO1xcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIGZpbGVOdW0gKz0gMTtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICB9XFxyXFxuXFxyXFxuICAgICAgICAvLyDmnIDnu4jlvoXlhpnlhaXnmoTlvLnluZXmlbDmja5cXHJcXG4gICAgICAgIGRhbm11c3RyID0gYDw/eG1sIHZlcnNpb249XFxcIjEuMFxcXCIgZW5jb2Rpbmc9XFxcIlVURi04XFxcIj8+XFxcXG48aT5cXFxcbiR7ZGF0YX08L2k+YDtcXHJcXG4gICAgICAgIC8vIOWGmeWFpeW8ueW5lVxcclxcbiAgICAgICAgZG0gPSAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ01nX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgICAgICBzYXZlRmlsZShkbSwgZGFubXVzdHIpO1xcclxcbiAgICAgICAgc2V0SXRlbSgnTWdfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgcmVhbHVybCk7XFxyXFxuICAgICAgICBwdXRWYXIoJ2RtX3NoYXJlJywgZG0pO1xcclxcbiAgICAgICAgcmV0dXJuIGRtO1xcclxcbiAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICBsb2coJ+WHuumUmeS6hicpXFxyXFxuICAgICAgICBzaG93TG9hZGluZygn5aSp5ZGQ5pK477yM6I635Y+W5aSx6LSl5LqG5ZGi77yBJyk7XFxyXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdNZ19mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICB9XFxyXFxufVxcclxcblxcclxcbi8v5bem5bK45by55bmV5bqTfOWumCBcXHJcXG4kLmV4cG9ydHMuenVvYW5kbSA9IGZ1bmN0aW9uIChyZWFsdXJsKSB7XFxyXFxuICAgIGlmIChnZXRJdGVtKCd6dW9hbl9mcm9tXycgKyBNWV9SVUxFLnRpdGxlLCAnJykgPT0gcmVhbHVybCkge1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnenVvYW5fZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgfVxcclxcbiAgICB0cnkge1xcclxcbiAgICAgICAgdmFyIGRhdGEgPSAnJztcXHJcXG4gICAgICAgIC8vIOW8ueW5leagt+W8j1xcclxcbiAgICAgICAgdmFyIGN0ID0gMTtcXHJcXG4gICAgICAgIC8vIOWtl+S9k+Wkp+Wwj1xcclxcbiAgICAgICAgdmFyIHNpemUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZm9udFNpemU7XFxyXFxuICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgIHZhciBkYW5tdURhdGEgPSBKU09OLnBhcnNlKGZldGNoKCdodHRwczovL2Rta3UudGhlZmlsZWhvc3RpbmcuY29tLz9hYz1kbSZ1cmw9JyArIHJlYWx1cmwpKS5kYW5tdWt1O1xcclxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgICAgIGxvZyhcXFwi6K+35rGC5aSx6LSlOlxcXCIgKyBlLm1lc3NhZ2UpO1xcclxcbiAgICAgICAgfVxcclxcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYW5tdURhdGEubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAvLyDlvLnluZXlj5HpgIHml7bpl7RcXHJcXG4gICAgICAgICAgICB0aW1lcG9pbnQgPSBkYW5tdURhdGFbaV1bMF07XFxyXFxuICAgICAgICAgICAgLy8g5by55bmV5qC35byPXFxyXFxuICAgICAgICAgICAgY3QgPSAxO1xcclxcbiAgICAgICAgICAgIGlmIChkYW5tdURhdGFbaV1bMV0gPT0gJ3RvcCcpIHtcXHJcXG4gICAgICAgICAgICAgICAgLy8g6aG256uv5by55bmVXFxyXFxuICAgICAgICAgICAgICAgIGN0ID0gNTtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgLy8g6aKc6Imy6K6+572uXFxyXFxuICAgICAgICAgICAgdmFyIGhleCA9IGRhbm11RGF0YVtpXVsyXS5yZXBsYWNlKCcjJywgJycpO1xcclxcbiAgICAgICAgICAgIGlmIChoZXgubGVuZ3RoID09IDMpIHtcXHJcXG4gICAgICAgICAgICAgICAgbGV0IHQgPSAnJ1xcclxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhleC5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgdCArPSBoZXguc2xpY2UoaSwgaSArIDEpLmNvbmNhdChoZXguc2xpY2UoaSwgaSArIDEpKVxcclxcbiAgICAgICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgICAgIGhleCA9IHRcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgY29sb3IgPSBwYXJzZUludChoZXgsIDE2KTtcXHJcXG4gICAgICAgICAgICAvLyDlvLnluZXlhoXlrrlcXHJcXG4gICAgICAgICAgICBjb250ZW50ID0gZGFubXVEYXRhW2ldWzRdO1xcclxcbiAgICAgICAgICAgIGlmIChjb250ZW50LmluZGV4T2YoJzwnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJz4nKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJyYnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFx1MDAwMCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXGInKSAhPSAtMSkge1xcclxcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgdGVtcGRhdGEgPSBgPGQgcD1cXFwiJHtNYXRoLnJvdW5kKHRpbWVwb2ludCl9LCR7Y3R9LCR7c2l6ZX0sJHtjb2xvcn0sMFxcXCI+JHtjb250ZW50fTwvZD5cXFxcbmA7XFxyXFxuICAgICAgICAgICAgZGF0YSArPSB0ZW1wZGF0YTtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIC8vIOacgOe7iOW+heWGmeWFpeeahOW8ueW5leaVsOaNrlxcclxcbiAgICAgICAgZGFubXVzdHIgPSBgPD94bWwgdmVyc2lvbj1cXFwiMS4wXFxcIiBlbmNvZGluZz1cXFwiVVRGLThcXFwiPz5cXFxcbjxpPlxcXFxuJHtkYXRhfTwvaT5gO1xcclxcbiAgICAgICAgLy8g5YaZ5YWl5by55bmVXFxyXFxuICAgICAgICBkbSA9ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QLycgKyAnenVvYW5fZnJvbV8nICsgTVlfUlVMRS50aXRsZSArICcueG1sJztcXHJcXG4gICAgICAgIHNhdmVGaWxlKGRtLCBkYW5tdXN0cik7XFxyXFxuICAgICAgICBzZXRJdGVtKCd6dW9hbl9mcm9tXycgKyBNWV9SVUxFLnRpdGxlLCByZWFsdXJsKTtcXHJcXG4gICAgICAgIHB1dFZhcignZG1fc2hhcmUnLCBkbSk7XFxyXFxuICAgICAgICByZXR1cm4gZG07XFxyXFxuICAgIH0gY2F0Y2ggKGUpIHtcXHJcXG4gICAgICAgIGxvZygn5Ye66ZSZ5LqGJylcXHJcXG4gICAgICAgIHNob3dMb2FkaW5nKCflpKnlkZDmkrjvvIzojrflj5blpLHotKXkuoblkaLvvIEnKTtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ3p1b2FuX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgIH1cXHJcXG59XFxyXFxuLy9mY+W8ueW5leezu+e7n+WumOW8ueS4i+i9veWHveaVsHw84oCU4oCU572R57uc5o6l5Y+j77yM5LiU55So5LiU54+N5oOc77yM5bm25LiN56iz5a6aXFxyXFxuJC5leHBvcnRzLmZjZG0gPSBmdW5jdGlvbiAocmVhbHVybCkge1xcclxcbiAgICBpZiAoZ2V0SXRlbSgnZmNfZnJvbV8nICsgTVlfUlVMRS50aXRsZSwgJycpID09IHJlYWx1cmwpIHtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ2ZjX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgIH1cXHJcXG4gICAgdHJ5IHtcXHJcXG4gICAgICAgIGZpbGUgPSBcXFwiaHR0cHM6Ly9mYy5ob21lOTk5LmNjLz91cmw9XFxcIiArIHJlYWx1cmxcXHJcXG4gICAgICAgIGRtID0gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvJyArICdmY19mcm9tXycgKyBNWV9SVUxFLnRpdGxlICsgJy54bWwnO1xcclxcbiAgICAgICAgdmFyIGRhdGEgPSAnJztcXHJcXG4gICAgICAgIHZhciBzaXplID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpLmZvbnRTaXplO1xcclxcbiAgICAgICAgZGFubXVEYXRhID0gZmV0Y2goZmlsZSwge1xcclxcbiAgICAgICAgICAgIHRpbWVvdXQ6IDI1MDAwLFxcclxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG4gICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQSxcXHJcXG4gICAgICAgICAgICAgICAgXFxcIlJlZmVyZXJcXFwiOiBcXFwiaHR0cHM6Ly9mYy5ob21lOTk5LmNjL1xcXCIsXFxyXFxuICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICBtZXRob2Q6IFxcXCJHRVRcXFwiXFxyXFxuICAgICAgICB9KVxcclxcbiAgICAgICAgaWYgKGRhbm11RGF0YS5tYXRjaCgv5LiN5pSv5oyB55qE6KeG6aKR572R5Z2ALykgfHwgZGFubXVEYXRhID09ICcnKSB7XFxyXFxuICAgICAgICAgICAgbG9nKCfojrflj5blvLnluZXlpLHotKUnKTtcXHJcXG4gICAgICAgICAgICByZXR1cm4gZG07XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICB0cnkge1xcclxcbiAgICAgICAgICAgIHRkID0gcGRmYShkYW5tdURhdGEsICdpJiZkJyk7XFxyXFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZC5sZW5ndGg7IGkrKykge1xcclxcbiAgICAgICAgICAgICAgICAvLyDlvLnluZXlj5HpgIHml7bpl7RcXHJcXG4gICAgICAgICAgICAgICAgdGltZXBvaW50ID0gdGRbaV0ubWF0Y2goL1swLTldKy9nKVswXTtcXHJcXG4gICAgICAgICAgICAgICAgY3QgPSB0ZFtpXS5tYXRjaCgvWzAtOV0rL2cpWzFdO1xcclxcbiAgICAgICAgICAgICAgICBjb2xvciA9IHRkW2ldLm1hdGNoKC9bMC05XSsvZylbM107XFxyXFxuICAgICAgICAgICAgICAgIC8vIOW8ueW5leWGheWuuVxcclxcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gcGRmaCh0ZFtpXSwgJ2QmJlRleHQnKTtcXHJcXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQuaW5kZXhPZignPCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignPicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignJicpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXHUwMDAwJykgIT0gLTEgfHwgY29udGVudC5pbmRleE9mKCdcXFxcYicpICE9IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXHJcXG4gICAgICAgICAgICAgICAgfVxcclxcbiAgICAgICAgICAgICAgICB0ZW1wZGF0YSA9IGA8ZCBwPVxcXCIke01hdGgucm91bmQodGltZXBvaW50KX0sJHtjdH0sJHtzaXplfSwke2NvbG9yfSwwXFxcIj4ke2NvbnRlbnR9PC9kPlxcXFxuYFxcclxcbiAgICAgICAgICAgICAgICBkYXRhICs9IHRlbXBkYXRhO1xcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICBkYW5tdXN0ciA9IGA8P3htbCB2ZXJzaW9uPVxcXCIxLjBcXFwiIGVuY29kaW5nPVxcXCJVVEYtOFxcXCI/PlxcXFxuPGk+XFxcXG4ke2RhdGF9PC9pPmA7XFxyXFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxyXFxuICAgICAgICAgICAgbG9nKCfovazmjaLlpLHotKUnKTtcXHJcXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJztcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIGxvZygn5oiW6K645oiQ5Yqf5LqGficpO1xcclxcbiAgICAgICAgc2F2ZUZpbGUoZG0sIGRhbm11c3RyKTtcXHJcXG4gICAgICAgIHNldEl0ZW0oJ2ZjX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUsIHJlYWx1cmwpO1xcclxcbiAgICAgICAgcHV0VmFyKCdkbV9zaGFyZScsIGRtKTtcXHJcXG4gICAgICAgIHJldHVybiBkbTtcXHJcXG4gICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgbG9nKCflvLnluZXmlofku7bop6PmnpDlpLHotKUnKTtcXHJcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC8nICsgJ2ZjX2Zyb21fJyArIE1ZX1JVTEUudGl0bGUgKyAnLnhtbCc7XFxyXFxuICAgIH1cXHJcXG59XFxyXFxuLy8g56ys5LiJ5pa55by55bmV5bqT5Ye95pWwfDzigJTigJTmkZjoh6rotYTmupDnvZHph4cueHl677yM6aaZ5L2seXlkcyAgXFxyXFxuJC5leHBvcnRzLmZ1ZmVuZ19UaGlyZCA9IGZ1bmN0aW9uIChzcmMpIHtcXHJcXG4gICAgdmFyIGRhbm11ID0gW107XFxyXFxuICAgIHRyeSB7XFxyXFxuICAgICAgICB2YXIganNvbiA9IEpTT04ucGFyc2UocmVxdWVzdChcXFwiaHR0cHM6Ly9kbWt1LmJ5dGVhbW9uZS5jbi9kbWt1Lz9hYz1kbSZpZD1cXFwiICsgbWQ1KHNyYy5zcGxpdCgnXFxcIicpWzBdLnNwbGl0KCc/JylbMF0pLnNsaWNlKDEyKSArICcgUCcsIHt9KSk7XFxyXFxuICAgICAgICBpZiAoanNvbi5kYW5tdWt1KSB7XFxyXFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uLmRhbm11a3UubGVuZ3RoOyBpKyspIHtcXHJcXG4gICAgICAgICAgICAgICAgZGFubXUucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBqc29uLmRhbm11a3VbaV1bNF0sXFxyXFxuICAgICAgICAgICAgICAgICAgICB0aW1lOiBqc29uLmRhbm11a3VbaV1bMF1cXHJcXG4gICAgICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgICAgICAgfTtcXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uLmxlbmd0aDsgaSsrKSB7XFxyXFxuICAgICAgICAgICAgICAgIGRhbm11LnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDoganNvbltpXS50ZXh0LFxcclxcbiAgICAgICAgICAgICAgICAgICAgdGltZToganNvbltpXS50aW1lXFxyXFxuICAgICAgICAgICAgICAgIH0pO1xcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfSBjYXRjaCAoZSkge1xcclxcbiAgICAgICAgbG9nKCflh7rplJnkuoYnKVxcclxcbiAgICAgICAgc2hvd0xvYWRpbmcoJ+WkqeWRkOaSuO+8jOiOt+WPluWksei0peS6huWRou+8gScpO1xcclxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nO1xcclxcbiAgICB9XFxyXFxuICAgIGxldCBkYW5tdCA9IEpTT04uc3RyaW5naWZ5KGRhbm11KTtcXHJcXG4gICAgZG0gPSBcXFwiaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS5qc29uXFxcIlxcclxcbiAgICBzYXZlRmlsZShkbSwgZGFubXQpO1xcclxcbiAgICByZXR1cm4gZG07XFxyXFxufVxcclxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6Kej5p6Q6LCD55So5rGH5oC7XCIsXCJwYXRoXCI6XCJsYXp5VG9KaWV4aVwiLFwicnVsZVwiOlwiLy8gdmlkZW/ll4XmjqLop6PmnpDvvIzkuLvopoHkvpvphY3nva7liqnmiYvosIPnlKjvvIzlj4LmlbDkuLrmlbDnu4RcXG4kLmV4cG9ydHMudmlkZW9YNSA9IGZ1bmN0aW9uICh2aXBVcmwsIHVybHMsIG5hbWVzLCBoZWFkZXJzKSB7XFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaWYgKHZpcFVybC5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIGlmICh2aXBVcmwubWF0Y2goL2JpbGkvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSh2aXBVcmwpO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBkbSA9IGdldFZhcignZG1fc2hhcmUnKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBpZiAoaGVhZGVycykge1xcbiAgICAgICAgdmFyIGhlYWRlcnMgPSBoZWFkZXJzO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIGhlYWRlcnMgPSBbXTtcXG4gICAgfVxcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgbmFtZXM6IG5hbWVzLFxcbiAgICAgICAgdXJsczogdXJscyxcXG4gICAgICAgIGRhbm11OiBkbSxcXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnNcXG4gICAgfSlcXG59XFxuXFxuLy/pppnlhY3niYjvvIzmnKrpqozor4Hlj6/nlKjmgKdcXG4kLmV4cG9ydHMuY2xhc3NpY2FsWDUgPSBmdW5jdGlvbiAodmlwVXJsLCBvcmlnaW5VcmwpIHtcXG4gICAgLy8g5oSf6LCi6aaZ5L2s5o+Q5L6b6YCa5YWN4oCU4oCUZG3prZTmlLlcXG4gICAgZnVuY3Rpb24geDVydWxlKGppZXh1cmwsIHNyY3VybCkge1xcbiAgICAgICAgc2hvd0xvYWRpbmcoXFxcIue9kemhteiuv+mXruajgOe0ouS4re+8jOivt+eojeWAmS4uLlxcXCIpO1xcbiAgICAgICAgdmFyIHZpZGVvID0gJ3dlYlJ1bGU6Ly8nICsgamlleHVybCArICdAJyArICQudG9TdHJpbmcoKHNyY3VybCkgPT4ge1xcbiAgICAgICAgICAgIC8vZmJhLmxvZyhmYmEuZ2V0VXJscygpKTtcXG4gICAgICAgICAgICB2YXIgdXJscyA9IF9nZXRVcmxzKCk7XFxuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID09IG51bGwgfHwgd2luZG93Ll9fY291bnQgPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gMFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPj0gMjMpIHtcXG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuIHNyY3VybFxcbiAgICAgICAgICAgICAgICBiZnVybCA9IHNyY3VybC5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICBhcmdzID0gc3JjdXJsLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gd2luZG93Ll9fY291bnQgKyAxO1xcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+IDEgJiYgd2luZG93Ll9fY291bnQgPD0gMyAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmlubmVyVGV4dC5zZWFyY2goL+inpuWPkeS6humYsuebl+mTvnzmnKrmjojmnYN85o6l5Y+j6Ziy55uXfOivt+WIsOS4u+ermeingueciy8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXNyY3VybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS4gCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5ocmVmO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xot7PpmLLnm5fpqozor4HkuownKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gc3JjdXJsXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cuX19jb3VudCA+IDMgJiYgd2luZG93Ll9fY291bnQgIT0gbnVsbCAmJiB3aW5kb3cuX19jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgaWYgKHVybHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmhpZGVMb2FkaW5nKCk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA57Si5aSx6LSl77yM5Y+v6IO96ZO+5o6l5peg5rOV6K6/6Zeu44CCJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzLmxlbmd0aCA9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xnm7Tpk77kuI5KU09O6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1swXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1swXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbMF0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbMF0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbMF1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1swXS5pbmRleE9mKCd0aXRhbi5tZ3R2LmNvbScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzWzBdICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1swXSArICcjaXNWaWRlbz10cnVlIyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnd3d3Lm1ndHYuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzWzBdXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gdXJsc1swXS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gdXJsc1swXS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhbG9jYXRpb24uaHJlZi5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBmYmEuZmV0Y2gobG9jYXRpb24uaHJlZiwge30pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghL1xcXFw8bWV0YS8udGVzdChodG1sKSAmJiAhL1xcXFw8aHRtbC8udGVzdChodG1sKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gSlNPTi5wYXJzZShodG1sKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gSlNPTi5wYXJzZShodG1sKS51cmwuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IEpTT04ucGFyc2UoaHRtbCkudXJsLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgv5rKh5pyJ5om+5Yiw56uZ54K5fOe9kemhteaXoOazleaJk+W8gHw0MDQgTm90IEZvdW5kfOWkh+ahiOWQjuWPr+e7p+e7reiuv+mXri8udGVzdChodG1sKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSkuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+aXpeW/l+ajgOe0ouesrCcgKyB3aW5kb3cuX19jb3VudCArICfmrKEnKTtcXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gdXJscykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzW2ldLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OHxcXFxcL3ZpZGVvXFxcXC90b3NcXFxcLy8pICYmICF1cmxzW2ldLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8bTN1OFxcXFwucHd8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTh8XFxcXC5jc3N8XFxcXC5qc1xcXFw/LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9meV9icmlkZ2VfYXBwLmxvZyh1cmxzW2ldKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKFxcXCI7e1xcXCIsIFxcXCIjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7e1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKFxcXCI7e1xcXCIsIFxcXCIjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7e1xcXCIpLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5pbmRleE9mKCdiaWxpdmlkZW8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCd0aXRhbi5tZ3R2LmNvbScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICd3d3cubWd0di5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignanVoYW9rYW4nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5qdWhhb2thbi5jYy99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3Lmp1aGFva2FuLmNjLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdvamJrJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly92Lm9qYmtqeC5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3Yub2pia2p4LmNvbS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignd2tmaWxlJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignc2hlbmdsaW55aXlhbmcnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3p5ei5zZGxqd29tZW4uY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly96eXouc2RsandvbWVuLmNvbS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZigncGVpenEub25saW5lJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly9wbGF5LnBlaXpxLm9ubGluZS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vcGxheS5wZWl6cS5vbmxpbmUvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9ICh1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJykuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gKHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gLy9lbmQgZm9yIGlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0sIHNyY3VybCk7XFxuICAgICAgICByZXR1cm4gdmlkZW9cXG4gICAgfVxcbiAgICAvLyDliKTmlq3lvLnluZXnur/ot6/mnaXmupBcXG4gICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcbiAgICBkbUZyb20gPSBkbVNldHRpbmdzLmRtRnJvbTtcXG4gICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXG4gICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXG4gICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBpZiAodmlwVXJsLm1hdGNoKC95b3VrdXxxaXlpfGl4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZXxjY3R2fDE5MDUuY29tLykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9tZ3R2LykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHNob3dMb2FkaW5nKCfmsqHmnInlvLnluZXlrpjnvZHljLnphY0nKTtcXG4gICAgICAgICAgICBwdXRWYXIoJ2RtUGF0aCcsIGdldFZhcignZG1fc2hhcmUnLCAnJykpO1xcbiAgICAgICAgICAgIHJldHVybiB4NXJ1bGUob3JpZ2luVXJsLCBvcmlnaW5VcmwpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHB1dFZhcignZG1QYXRoJywgZG0pO1xcbiAgICByZXR1cm4geDVydWxlKG9yaWdpblVybCwgb3JpZ2luVXJsKTtcXG59XFxuXFxuXFxuXFxuLy8g6YGT6ZW/5LuT5bqT6YCa5YWN54mI5pys77yM5pyq6aqM6K+B5Y+v55So5oCnXFxuJC5leHBvcnRzLmRyWDUgPSBmdW5jdGlvbiAodmlwVXJsLCBwbGF5VXJsKSB7XFxuICAgIGZ1bmN0aW9uIHg1cnVsZShwbGF5VXJsLCBtcywgdG0sIHJlY2hhbmdlKSB7XFxuICAgICAgICAvLyBsb2coJ+iwg+eUqOS7k+W6k+WFjeWXheaOouS8oOWPgui2heaXtuS4ujonK21zKTtcXG4gICAgICAgIHRtID0gcGFyc2VJbnQodG0pIHx8IDUwMDA7XFxuICAgICAgICBjb25zdCB7XFxuICAgICAgICAgICAgaXNWaWRlbyxcXG4gICAgICAgICAgICBnZXRIZWFkZXJzLFxcbiAgICAgICAgICAgIGlzQmFkVmlkZW9cXG4gICAgICAgIH0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9nbG9iYWxQYXJzZT9ydWxlPemBk+mVv+S7k+W6k1BybycpO1xcbiAgICAgICAgbGV0IHJlYWxVcmwgPSBpc1ZpZGVvKHBsYXlVcmwsIHJlY2hhbmdlKTtcXG4gICAgICAgIC8vbG9nKHJlYWxVcmwpO1xcbiAgICAgICAgaWYgKHR5cGVvZiAocmVhbFVybCkgPT0gJ3N0cmluZycpIHsgLy9ib29s5YC85bCx5piv5aSx6LSlXFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgbGV0IHJ1cmwgPSByZWFsVXJsLnNwbGl0KFxcXCI7XFxcIilbMF0uc3BsaXQoXFxcIiNcXFwiKVswXTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVxdWVzdChydXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiB0bVxcbiAgICAgICAgICAgICAgICB9KSkudXJsXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVhbFVybFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvL3JldHVybiByZWFsVXJsXFxuICAgICAgICB9XFxuICAgICAgICAvL2xvZyhcXFwi6K6/6Zeu6LaF5pe2OlxcXCIrdG0pO1xcbiAgICAgICAgbG9nKFxcXCLlsJ3or5XpgZPplb/ku5PlupN4NeWFjeWXhTpcXFwiICsgcGxheVVybCk7XFxuICAgICAgICBjbGVhclZhcihcXFwiX3g1anhVcmxcXFwiKTtcXG4gICAgICAgIGxldCBiYWQgPSAkKFxcXCLnvZHnu5zkuI3kvbPmiJbogIXnlpHkvLzlr7nmlrnnvZHnq5nmjILkuobvvIzkvaDopoHmn6XnnIvlhbbnvZHpobXlkJfvvJ9cXFwiKS5jb25maXJtKChwbGF5VXJsKSA9PiB7XFxuICAgICAgICAgICAgbG9nKFxcXCLnvZHnq5nnnIvotbfmnaXmjILkuoY6XFxcIiArIHBsYXlVcmwpO1xcbiAgICAgICAgICAgIHJldHVybiBwbGF5VXJsXFxuICAgICAgICB9LCBwbGF5VXJsKTtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgdmFyIGJhY2sgPSByZXF1ZXN0KHBsYXlVcmwsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycyhwbGF5VXJsKSxcXG4gICAgICAgICAgICAgICAgdGltZW91dDogdG1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAvL3ZhciBiYWNrPWZldGNoKHBsYXlVcmwse2hlYWRlcnM6IHsnVXNlci1BZ2VudCc6IFBDX1VBfX0pO1xcbiAgICAgICAgICAgIGlmICghYmFjaykge1xcbiAgICAgICAgICAgICAgICBsb2coXFxcIue9keermVxcXCIgKyBwbGF5VXJsICsgXFxcIuehruWunuWVpeS5n+ayoei/lOWbnlxcXCIpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gYmFkXFxuICAgICAgICAgICAgfSBlbHNlIGlmICgvI0VYVElORi8udGVzdChiYWNrKSkge1xcbiAgICAgICAgICAgICAgICAvL2xldCBsY2FjaGU9XFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvY2FjaGUvdmlkZW8ubTN1OFxcXCI7XFxuICAgICAgICAgICAgICAgIC8vd3JpdGVGaWxlKGxjYWNoZSxiYWNrKTtcXG4gICAgICAgICAgICAgICAgLy9yZXR1cm4gbGNhY2hlK1xcXCIjI1xcXCIrcGxheVVybCtcXFwiI2lzVmlkZW89dHJ1ZSNcXFwiXFxuICAgICAgICAgICAgICAgIHBsYXlVcmwgPSBjYWNoZU0zdTgocGxheVVybCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBwbGF5VXJsXFxuICAgICAgICAgICAgfSBlbHNlIGlmICgoIS/op6blj5HkuobpmLLnm5fpk7585pyq5o6I5p2DfOaOpeWPo+mYsuebly8udGVzdChiYWNrKSkgJiYgKCEvaHR0cHx1cmwvLnRlc3QoYmFjaykpICYmICghL21zZ3xjb2RlfGh0bWwvLnRlc3QoYmFjaykpKSB7XFxuICAgICAgICAgICAgICAgIGxvZyhiYWNrKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+eWkeS8vOWvueaWueaVsOaNruWKoOWvhuS6hu+8jOWFt+S9k+aVsOaNrueci+aXpeW/lydcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgbG9nKGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgcmV0dXJuIGJhZFxcbiAgICAgICAgfVxcbiAgICAgICAgbG9nKCflvIDlp4t4NeWFjeWXheaOoicpO1xcbiAgICAgICAgLy8gcmVxdWlyZSgnaHR0cHM6Ly9oamRobnguY29kaW5nLm5ldC9wL2hpa2VyL2QvZHIvZ2l0L3Jhdy9tYXN0ZXIvanMvbHNnLmpzJyk7Ly/lvJXnlKjmnKzlnLDlgqjlrZjmj5Lku7ZcXG4gICAgICAgIGNvbnN0IGxzZyA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2xvY2FsU3RvcmFnZT9ydWxlPemBk+mVv+S7k+W6k1Byb1xcXCIpOyAvL+W8leeUqOWtkOmhtemdouacrOWcsOWCqOWtmOaPkuS7tlxcbiAgICAgICAgbGV0IGxvY2FsX21zID0gbHNnLmdldEl0ZW0oJ3RpbWVvdXQnKTtcXG4gICAgICAgIGxldCBtcyA9IHBhcnNlSW50KG1zKSB8fCBwYXJzZUludChsb2NhbF9tcykgfHwgNTAwMDtcXG4gICAgICAgIGxldCBtYXhfY291bnQgPSBNYXRoLmNlaWwobXMgLyAyNTApO1xcbiAgICAgICAgbG9nKFxcXCLmnKzmrKHll4XmjqLotoXml7Y6XFxcIiArIG1zICsgXFxcIuWFseiuoeW+heaKk+WMhTpcXFwiICsgbWF4X2NvdW50ICsgXFxcIuasoVxcXCIpO1xcbiAgICAgICAgc2hvd0xvYWRpbmcoJ+WXheaOouS4re+8jOiLpeWksei0peWwseWIh+aNondlYuWXheaOoi4uLicpO1xcbiAgICAgICAgbGV0IF94NSA9ICQudG9TdHJpbmcoKGlzVmlkZW8sIHJlY2hhbmdlLCBwbGF5VXJsLCBtYXhfY291bnQsIFBDX1VBLCBpc0JhZFZpZGVvKSA9PiB7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAoZmJhKSA9PSAndW5kZWZpbmVkJyB8fCAhZmJhKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZmJhID0gZnlfYnJpZGdlX2FwcDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAocmVxdWVzdCkgPT0gJ3VuZGVmaW5lZCcgfHwgIXJlcXVlc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZiYS5nZXRJbnRlcm5hbEpzKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZmJhLnB1dFZhcihcXFwiX3g1anhVcmxcXFwiLCBwbGF5VXJsKTtcXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5jb3VudCA9PSBudWxsKSB7XFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY291bnQgPSAxO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gJyc7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcXFwiYm9keVxcXCIpLmlubmVyVGV4dDtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLm1lc3NhZ2UpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKC/op6blj5HkuobpmLLnm5fpk7585pyq5o6I5p2DfOaOpeWPo+mYsuebly8udGVzdCh0ZXh0KSAmJiB3aW5kb3cuY291bnQgPT09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coXFxcIuajgOa1i+WIsOacieaOiOadg++8jOW8gOWni+i/h+aOiOadg1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgLy9sb2NhdGlvbi5yZWxvYWQoKTtcXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBmYmEuZ2V0VmFyKFxcXCJfeDVqeFVybFxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5jb3VudCsrO1xcbiAgICAgICAgICAgICAgICAvLyBmYmEubG9nKCdjb3VudDonK3dpbmRvdy5jb3VudCsnLG1heF9jb3VudDonK21heF9jb3VudCk7XFxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY291bnQgPj0gbWF4X2NvdW50KSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLotoXov4dcXFwiICsgbWF4X2NvdW50ICogMjUwICsgXFxcIuavq+enkuacquiOt+WPluWIsOi1hOa6kOWcsOWdgO+8jOi3s+WIsOa6kOe9kemhtSzku6XkuIvmmK/liqDovb3ov4fnmoTlnLDlnYBcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxcXCJib2R5XFxcIikuaW5uZXJUZXh0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2codGV4dCk7XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLm1lc3NhZ2UpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKEpTT04uc3RyaW5naWZ5KF9nZXRVcmxzKCkpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYmEuZ2V0VmFyKFxcXCJfeDVqeFVybFxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG11dGVNZShlbGVtKSB7XFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0ucGF1c2UoKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHZhciB2aWRlb3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxcXCJ2aWRlb1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgYXVkaW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwiYXVkaW9cXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIHYyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwiZW1iZWRcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIHYzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwiI3BsYXllclxcXCIpO1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHZpZGVvcywgZnVuY3Rpb24gKHZpZGVvKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZU1lKHZpZGVvKTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbChhdWRpb3MsIGZ1bmN0aW9uIChhdWRpbykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZShhdWRpbyk7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwodjIsIGZ1bmN0aW9uICh2KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZU1lKHYpO1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHYzLCBmdW5jdGlvbiAodikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZSh2KTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgICAgICAgICAvLyBmYmEubG9nKEpTT04uc3RyaW5naWZ5KHVybHMpKTtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gdXJscykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1ID0gdXJsc1tpXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ID0gZGVjb2RlVVJJQ29tcG9uZW50KHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHVuZXNjYXBlKHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAvL1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdXJsPWh0dHAvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHUuc3BsaXQoXFxcInVybD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coXFxcInVybOWIhuWJsjpcXFwiK3UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3VybD1cXFxcLy8udGVzdCh1KSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0ID0gdS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBob3N0ICsgdS5zcGxpdChcXFwidXJsPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmJhLmxvZyhcXFwidXJs5YiG5YmyOlxcXCIrdSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPWh0dHAvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHUuc3BsaXQoXFxcInZpZD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coXFxcInZpZOWIhuWJsjpcXFwiICsgdSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPVxcXFwvLy50ZXN0KHUpICYmIC9cXFxcLm0zdTgvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhvc3QgPSB1Lm1hdGNoKC8oLiopXFxcXC9cXFxcLyguKj8pXFxcXC8vKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IGhvc3QgKyB1LnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCJ2aWTliIblibI6XFxcIiArIHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFw/KC4qKT1odHRwLy50ZXN0KHUpICYmIC9cXFxcLm0zdTgvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IFxcXCJodHRwXFxcIiArIHUuc3BsaXQoL1xcXFw/KC4qKT1odHRwLykuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLlhbbku5bliIblibI6XFxcIiArIHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3xpbmRleFxcXFwubTN1OCRcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgvXFxcXC8xXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB1ID0gdS5yZXBsYWNlKC8mZnJvbT0uKnwmbmV4dD0uKnwmanVtcD0uKi8sICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVhbFVybCA9IGlzVmlkZW8odSwgcmVjaGFuZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKHJlYWxVcmwpID09ICdzdHJpbmcnICYmICFpc0JhZFZpZGVvKHUpKSB7IC8v6L+H5ruk5ZCK5q+b6KeG6aKRXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5zZXRXZWJVYShQQ19VQSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGZiYS5nZXRIZWFkZXJVcmwpICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgKHJlY2hhbmdlKSAhPT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0IGJhY2tVcmwgPSBmYmEuZ2V0SGVhZGVyVXJsKHUucmVwbGFjZShcXFwiO3tcXFwiLFxcXCIjaXNWaWRlbz10cnVlIzt7XFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2tVcmwgPSBmYmEuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoJzt7JywgJyNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7Jyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdTEgPSBiYWNrVXJsLnNwbGl0KCcjaWdub3JlSW1nJylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdTIgPSAnI2lnbm9yZUltZycgKyBiYWNrVXJsLnNwbGl0KCcjaWdub3JlSW1nJylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IHUxLnJlcGxhY2UoLyZmcm9tPS4qfCZuZXh0PS4qfCZqdW1wPS4qLywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC91cmw9aHR0cC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IHUxLnNwbGl0KFxcXCJ1cmw9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdXJsPVxcXFwvLy50ZXN0KHUxKSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUxKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0MSA9IHUxLm1hdGNoKC8oLiopXFxcXC9cXFxcLyguKj8pXFxcXC8vKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IGhvc3QxICsgdTEuc3BsaXQoXFxcInVybD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmJhLmxvZyhcXFwidXJs5YiG5YmyOlxcXCIrdSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC92aWQ9aHR0cC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IHUxLnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPVxcXFwvLy50ZXN0KHUxKSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUxKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0MSA9IHUxLm1hdGNoKC8oLiopXFxcXC9cXFxcLyguKj8pXFxcXC8vKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IGhvc3QxICsgdTEuc3BsaXQoXFxcInZpZD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcPyguKik9aHR0cC8udGVzdCh1MSkgJiYgL1xcXFwubTN1OC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IFxcXCJodHRwXFxcIiArIHUxLnNwbGl0KC9cXFxcPyguKik9aHR0cC8pLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tVcmwgPSB1MSArIHUyO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmJhLmxvZygn6L+U5Zue6Ieq5Yqo5YqgY29va2ll6ZO+5o6lOicrYmFja1VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCfov5Tlm57pk77mjqU6JyArIHUgKyAn5bm26Ieq5Yqo5Yqg5LqGY29va2llLOWFt+S9k2Nvb2tpZeWcqOinhumikeaSreaUvuWkhOafpeeciycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGJhY2tVcmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1MSArICcjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyB1Mi5yZXBsYWNlKCcjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7JywgJzsnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coXFxcIui/lOWbnuS7k+W6k3g15YWN5ZeF57uT5p6cOlxcXCIgKyByZWFsVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsVXJsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coZS5tZXNzYWdlKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAvLyBmeV9icmlkZ2VfYXBwLmxvZygneDXlpKfojIPlm7TplJnor686JytlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICBhbGVydCgneDXlpKfojIPlm7TplJnor686JyArIGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/miqXplJnnu5PmnZ94NSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9LCBpc1ZpZGVvLCByZWNoYW5nZSwgcGxheVVybCwgbWF4X2NvdW50LCBQQ19VQSwgaXNCYWRWaWRlbyk7XFxuICAgICAgICBsZXQgdXNlV2ViID0gbHNnLmdldEl0ZW0oXFxcIumAmuWFjVxcXCIsIFxcXCJYNVxcXCIpID09PSBcXFwiV0VCXFxcIjtcXG4gICAgICAgIC8vbG9nKFxcXCLku5PlupPkvb/nlKh3ZWLpgJrlhY3mm7/ku6N4NTpcXFwiK3VzZVdlYik7XFxuICAgICAgICBsZXQgcnVsZUhlYWQgPSB1c2VXZWIgJiYgcGFyc2VJbnQoZ2V0QXBwVmVyc2lvbigpKSA+PSAyMzM5ID8gXFxcIndlYlJ1bGU6Ly9cXFwiIDogXFxcIng1UnVsZTovL1xcXCI7XFxuICAgICAgICBsZXQgeDVVcmwgPSBydWxlSGVhZCArIHBsYXlVcmwgKyAnQCcgKyBfeDU7XFxuICAgICAgICByZXR1cm4geDVVcmxcXG4gICAgfVxcbiAgICAvLyDliKTmlq3lvLnluZXnur/ot6/mnaXmupBcXG4gICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcbiAgICBkbUZyb20gPSBkbVNldHRpbmdzLmRtRnJvbTtcXG4gICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXG4gICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXG4gICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBpZiAodmlwVXJsLm1hdGNoKC95b3VrdXxxaXlpfGl4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZXxjY3R2fDE5MDUuY29tLykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9tZ3R2LykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHNob3dMb2FkaW5nKCfmsqHmnInlvLnluZXlrpjnvZHljLnphY0nKTtcXG4gICAgICAgICAgICBwdXRWYXIoJ2RtUGF0aCcsIGdldFZhcignZG1fc2hhcmUnLCAnJykpO1xcbiAgICAgICAgICAgIHJldHVybiB4NXJ1bGUocGxheVVybCwgODAwMCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcHV0VmFyKCdkbVBhdGgnLCBkbSk7XFxuICAgIHJldHVybiB4NXJ1bGUocGxheVVybCwgODAwMCk7XFxufVxcblxcbi8vIOmtlOaWrUpTT07lhY3ll4Xop6PmnpDosIPnlKhcXG4kLmV4cG9ydHMuSnNvbmRtID0gZnVuY3Rpb24gKHZpcFVybCwgYmZ1cmwpIHtcXG4gICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcbiAgICBkbUZyb20gPSBkbVNldHRpbmdzLmRtRnJvbTtcXG4gICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXG4gICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXG4gICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBpZiAodmlwVXJsLm1hdGNoKC95b3VrdXxxaXlpfGl4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZXxjY3R2fDE5MDUuY29tLykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9tZ3R2LykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKHZpcFVybCk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIGRtPWdldFZhcignZG1fc2hhcmUnLCcnKTsgXFxuICAgICAgICAgICAgZnJvbSA9ICfpooTnlZnlvLnluZXmjqXlj6MnO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgbmFtZXM6IFtmcm9tXSxcXG4gICAgICAgIGRhbm11OiBkbVxcbiAgICB9KTtcXG59XFxuXFxuLy8g6a2U5pat5by55bmV6Kej5p6Q5byV5pOO6LCD55SoXFxuJC5leHBvcnRzLnBhcnNlRG0gPSBmdW5jdGlvbiAodmlwVXJsLHNlYXJjaFR5cGUsIHNlYXJjaE5hbWUpIHtcXG4gICAgdHJ5IHtcXG4gICAgICAgIC8vIOiOt+WPluW8ueW5lVxcbiAgICAgICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcbiAgICAgICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgICAgICBkbVNjb3BlID0gZG1TZXR0aW5ncy5kbVNjb3BlO1xcbiAgICAgICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0odmlwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaWYgKHZpcFVybC5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCh2aXBVcmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKHZpcFVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLk1HZG0odmlwVXJsKTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpcFVybC5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSh2aXBVcmwpO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmlwVXJsLm1hdGNoKC9iaWxpLykpIHtcXG4gICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKHZpcFVybCk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgZG0gPSBnZXRWYXIoJ2RtX3NoYXJlJywgJycpO1xcbiAgICAgICAgICAgICAgICBmcm9tID0gJ+mihOeVmeW8ueW5leaOpeWPoyc7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgLy8g5aSN5Yi25by55bmV6Lev5b6EXFxuICAgICAgICBjb3B5KGRtKTtcXG4gICAgICAgIC8vIOiwg+eUqOaQnOe0olxcbiAgICAgICAgZmlsbU5hbWU9Z2V0UGFnZVRpdGxlKCk7XFxuICAgICAgICBzd2l0Y2ggKHNlYXJjaFR5cGUpIHtcXG4gICAgICAgICAgICBjYXNlIDE6XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9zZWFyY2g/cz1cXFwiICsgZmlsbU5hbWUgKyBcXFwiJnJ1bGU9XFxcIitzZWFyY2hOYW1lK1xcXCImc2ltcGxlPXRydWVcXFwiO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlIDI6XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9zZWFyY2g/cz1cXFwiICsgZmlsbU5hbWUgKyBcXFwiJmdyb3VwPVxcXCIrc2VhcmNoTmFtZStcXFwiJnNpbXBsZT10cnVlXFxcIjtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+S4jeimgeS5seWGmeWPguaVsO+8gTEt6LCD55So5bCP56iL5bqP5pCc57Si77ybMi3osIPnlKjlsI/nqIvluo/liIbnu4TmkJzntKJcXFwiO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WHuumUmeS6hu+8geWwsei/meagt+WQp++8gVxcXCI7XFxuICAgIH1cXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpgJrlhY3osIPnlKjmsYfmgLtcIixcInBhdGhcIjpcImxhenlUb1g1XCIsXCJydWxlXCI6XCIvLyDljp/nlJ/ll4XmjqIt6YCa5YWNXFxuJC5leHBvcnRzLnZpZGVvWDUgPSBmdW5jdGlvbiAoKSB7XFxuICAgIC8vIOWumuS9jeecn+Wunue6v+i3ry3luLjop4RcXG4gICAgbGV0IHRzID0gL2l4aWd1YXxpcWl5aXxxcS5jb218bWd0dnxsZS5jb218YmlsaXxzb2h1fHlvdWt1fHBwdHZ8Y2N0dnwxOTA1LmNvbS87XFxuICAgIGlmICghaW5wdXQubWF0Y2godHMpKSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGxldCBGcm9tID0gSlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KS5tYXRjaCgvdmFyIHBsYXllcl8uKj89KC4qPyk8LylbMV0pO1xcbiAgICAgICAgICAgIGxldCDliqDlr4YgPSBGcm9tLmVuY3J5cHQ7XFxuICAgICAgICAgICAgLy8gbGV0IOadpeiHqiA9IEZyb20uZnJvbTtcXG4gICAgICAgICAgICDljp/pk74gPSBGcm9tLnVybDtcXG4gICAgICAgICAgICAvL2xvZyhGcm9tKVxcbiAgICAgICAgICAgIGlmICjliqDlr4YgPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgIOWOn+mTviA9IHVuZXNjYXBlKOWOn+mTvik7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICjliqDlr4YgPT0gJzInKSB7XFxuICAgICAgICAgICAgICAgIOWOn+mTviA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSjljp/pk74pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKC9cXFxcLm1wNHxcXFxcLm0zdTh8XFxcXC5mbHYvLnRlc3Qo5Y6f6ZO+KSkge1xcbiAgICAgICAgICAgICAgICBzaG93TG9hZGluZygn6I635Y+W5LiN5Yiw5a6Y572R5Zyw5Z2A77yM5bCG55u06ZO+5pKt5pS+Jyk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBb5Y6f6ZO+XSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6IGdldFZhcignZG1fc2hhcmUnLCAnJylcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh0cy50ZXN0KOWOn+mTvikpIHtcXG4gICAgICAgICAgICAgICAg5a6Y6ZO+ID0g5Y6f6ZO+O1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHNob3dMb2FkaW5nKCfojrflj5bkuI3liLDlrpjnvZHlnLDlnYDvvIzlsIbnm7Tpk77mkq3mlL4nKTtcXG4gICAgICAgICAgICAgICAgLy/nm5fniYjnq5nlnLDlnYBcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtwbGF5UGFyc2UucGxheWVyUyhpbnB1dCldLFxcbiAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogZ2V0VmFyKCdkbV9zaGFyZScsICcnKVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgLy8g6Iul5Y+R55Sf5byC5bi45YiZ55u05o6l5Li656m66ZO+6LWw5ZeF5o6iXFxuICAgICAgICAgICAg5a6Y6ZO+ID0gJ2hpa2VyOi8vZW1wdHknO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAg5a6Y6ZO+ID0gaW5wdXQ7XFxuICAgIH1cXG4gICAgLy8g5Yik5pat5by55bmV57q/6Lev5p2l5rqQXFxuICAgIGRtU2V0dGluZ3MgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvc2V0dGluZ3MuanNvbicpKTtcXG4gICAgZG1Gcm9tID0gZG1TZXR0aW5ncy5kbUZyb207XFxuICAgIGRtU2NvcGUgPSBkbVNldHRpbmdzLmRtU2NvcGU7XFxuICAgIGlmIChkbVNjb3BlID09ICdnbG9iYWwnKSB7XFxuICAgICAgICBpZiAo5a6Y6ZO+Lm1hdGNoKHRzKSkge1xcbiAgICAgICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQo5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfWVsc2V7XFxuICAgICAgICAgICAgZG09Z2V0VmFyKCdkbV9zaGFyZScsJycpO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgaWYgKOWumOmTvi5tYXRjaCgveW91a3V8cWl5aXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8Y2N0dnwxOTA1LmNvbS8pKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKOWumOmTvi5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuTUdkbSjlrpjpk74pO1xcbiAgICAgICAgfSBlbHNlIGlmICjlrpjpk74ubWF0Y2goL3FxLmNvbS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuVFhkbSjlrpjpk74pO1xcbiAgICAgICAgfSBlbHNlIGlmICjlrpjpk74ubWF0Y2goL2JpbGkvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmJpbGlkbSjlrpjpk74pO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBzaG93TG9hZGluZygn5rKh5pyJ5by55bmV5a6Y572R5Yy56YWNJyk7XFxuICAgICAgICAgICAgZG0gPSBnZXRWYXIoJ2RtX3NoYXJlJywgJycpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICB1cmxzOiBbXFxcInZpZGVvOi8vXFxcIiArIGlucHV0XSxcXG4gICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICBkYW5tdTogZG1cXG4gICAgfSlcXG59XFxuXFxuLy8g6YGT6ZW/5LuT5bqT6YCa5YWNXFxuJC5leHBvcnRzLmRyWDUgPSBmdW5jdGlvbiAoKSB7XFxuICAgIGZ1bmN0aW9uIHg1cnVsZShwbGF5VXJsLCBtcywgdG0sIHJlY2hhbmdlKSB7XFxuICAgICAgICAvLyBsb2coJ+iwg+eUqOS7k+W6k+WFjeWXheaOouS8oOWPgui2heaXtuS4ujonK21zKTtcXG4gICAgICAgIHRtID0gcGFyc2VJbnQodG0pIHx8IDUwMDA7XFxuICAgICAgICBjb25zdCB7XFxuICAgICAgICAgICAgaXNWaWRlbyxcXG4gICAgICAgICAgICBnZXRIZWFkZXJzLFxcbiAgICAgICAgICAgIGlzQmFkVmlkZW9cXG4gICAgICAgIH0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9nbG9iYWxQYXJzZT9ydWxlPemBk+mVv+S7k+W6k1BybycpO1xcbiAgICAgICAgbGV0IHJlYWxVcmwgPSBpc1ZpZGVvKHBsYXlVcmwsIHJlY2hhbmdlKTtcXG4gICAgICAgIC8vbG9nKHJlYWxVcmwpO1xcbiAgICAgICAgaWYgKHR5cGVvZiAocmVhbFVybCkgPT0gJ3N0cmluZycpIHsgLy9ib29s5YC85bCx5piv5aSx6LSlXFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgbGV0IHJ1cmwgPSByZWFsVXJsLnNwbGl0KFxcXCI7XFxcIilbMF0uc3BsaXQoXFxcIiNcXFwiKVswXTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVxdWVzdChydXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiB0bVxcbiAgICAgICAgICAgICAgICB9KSkudXJsXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVhbFVybFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvL3JldHVybiByZWFsVXJsXFxuICAgICAgICB9XFxuICAgICAgICAvL2xvZyhcXFwi6K6/6Zeu6LaF5pe2OlxcXCIrdG0pO1xcbiAgICAgICAgbG9nKFxcXCLlsJ3or5XpgZPplb/ku5PlupN4NeWFjeWXhTpcXFwiICsgcGxheVVybCk7XFxuICAgICAgICBjbGVhclZhcihcXFwiX3g1anhVcmxcXFwiKTtcXG4gICAgICAgIGxldCBiYWQgPSAkKFxcXCLnvZHnu5zkuI3kvbPmiJbogIXnlpHkvLzlr7nmlrnnvZHnq5nmjILkuobvvIzkvaDopoHmn6XnnIvlhbbnvZHpobXlkJfvvJ9cXFwiKS5jb25maXJtKChwbGF5VXJsKSA9PiB7XFxuICAgICAgICAgICAgbG9nKFxcXCLnvZHnq5nnnIvotbfmnaXmjILkuoY6XFxcIiArIHBsYXlVcmwpO1xcbiAgICAgICAgICAgIHJldHVybiBwbGF5VXJsXFxuICAgICAgICB9LCBwbGF5VXJsKTtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgdmFyIGJhY2sgPSByZXF1ZXN0KHBsYXlVcmwsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycyhwbGF5VXJsKSxcXG4gICAgICAgICAgICAgICAgdGltZW91dDogdG1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAvL3ZhciBiYWNrPWZldGNoKHBsYXlVcmwse2hlYWRlcnM6IHsnVXNlci1BZ2VudCc6IFBDX1VBfX0pO1xcbiAgICAgICAgICAgIGlmICghYmFjaykge1xcbiAgICAgICAgICAgICAgICBsb2coXFxcIue9keermVxcXCIgKyBwbGF5VXJsICsgXFxcIuehruWunuWVpeS5n+ayoei/lOWbnlxcXCIpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gYmFkXFxuICAgICAgICAgICAgfSBlbHNlIGlmICgvI0VYVElORi8udGVzdChiYWNrKSkge1xcbiAgICAgICAgICAgICAgICAvL2xldCBsY2FjaGU9XFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvY2FjaGUvdmlkZW8ubTN1OFxcXCI7XFxuICAgICAgICAgICAgICAgIC8vd3JpdGVGaWxlKGxjYWNoZSxiYWNrKTtcXG4gICAgICAgICAgICAgICAgLy9yZXR1cm4gbGNhY2hlK1xcXCIjI1xcXCIrcGxheVVybCtcXFwiI2lzVmlkZW89dHJ1ZSNcXFwiXFxuICAgICAgICAgICAgICAgIHBsYXlVcmwgPSBjYWNoZU0zdTgocGxheVVybCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBwbGF5VXJsXFxuICAgICAgICAgICAgfSBlbHNlIGlmICgoIS/op6blj5HkuobpmLLnm5fpk7585pyq5o6I5p2DfOaOpeWPo+mYsuebly8udGVzdChiYWNrKSkgJiYgKCEvaHR0cHx1cmwvLnRlc3QoYmFjaykpICYmICghL21zZ3xjb2RlfGh0bWwvLnRlc3QoYmFjaykpKSB7XFxuICAgICAgICAgICAgICAgIGxvZyhiYWNrKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+eWkeS8vOWvueaWueaVsOaNruWKoOWvhuS6hu+8jOWFt+S9k+aVsOaNrueci+aXpeW/lydcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgbG9nKGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgcmV0dXJuIGJhZFxcbiAgICAgICAgfVxcbiAgICAgICAgbG9nKCflvIDlp4t4NeWFjeWXheaOoicpO1xcbiAgICAgICAgLy8gcmVxdWlyZSgnaHR0cHM6Ly9oamRobnguY29kaW5nLm5ldC9wL2hpa2VyL2QvZHIvZ2l0L3Jhdy9tYXN0ZXIvanMvbHNnLmpzJyk7Ly/lvJXnlKjmnKzlnLDlgqjlrZjmj5Lku7ZcXG4gICAgICAgIGNvbnN0IGxzZyA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2xvY2FsU3RvcmFnZT9ydWxlPemBk+mVv+S7k+W6k1Byb1xcXCIpOyAvL+W8leeUqOWtkOmhtemdouacrOWcsOWCqOWtmOaPkuS7tlxcbiAgICAgICAgbGV0IGxvY2FsX21zID0gbHNnLmdldEl0ZW0oJ3RpbWVvdXQnKTtcXG4gICAgICAgIGxldCBtcyA9IHBhcnNlSW50KG1zKSB8fCBwYXJzZUludChsb2NhbF9tcykgfHwgNTAwMDtcXG4gICAgICAgIGxldCBtYXhfY291bnQgPSBNYXRoLmNlaWwobXMgLyAyNTApO1xcbiAgICAgICAgbG9nKFxcXCLmnKzmrKHll4XmjqLotoXml7Y6XFxcIiArIG1zICsgXFxcIuWFseiuoeW+heaKk+WMhTpcXFwiICsgbWF4X2NvdW50ICsgXFxcIuasoVxcXCIpO1xcbiAgICAgICAgc2hvd0xvYWRpbmcoJ+WXheaOouS4re+8jOiLpeWksei0peWwseWIh+aNondlYuWXheaOoi4uLicpO1xcbiAgICAgICAgbGV0IF94NSA9ICQudG9TdHJpbmcoKGlzVmlkZW8sIHJlY2hhbmdlLCBwbGF5VXJsLCBtYXhfY291bnQsIFBDX1VBLCBpc0JhZFZpZGVvKSA9PiB7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAoZmJhKSA9PSAndW5kZWZpbmVkJyB8fCAhZmJhKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZmJhID0gZnlfYnJpZGdlX2FwcDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAocmVxdWVzdCkgPT0gJ3VuZGVmaW5lZCcgfHwgIXJlcXVlc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZiYS5nZXRJbnRlcm5hbEpzKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZmJhLnB1dFZhcihcXFwiX3g1anhVcmxcXFwiLCBwbGF5VXJsKTtcXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5jb3VudCA9PSBudWxsKSB7XFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY291bnQgPSAxO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gJyc7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcXFwiYm9keVxcXCIpLmlubmVyVGV4dDtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLm1lc3NhZ2UpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKC/op6blj5HkuobpmLLnm5fpk7585pyq5o6I5p2DfOaOpeWPo+mYsuebly8udGVzdCh0ZXh0KSAmJiB3aW5kb3cuY291bnQgPT09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coXFxcIuajgOa1i+WIsOacieaOiOadg++8jOW8gOWni+i/h+aOiOadg1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgLy9sb2NhdGlvbi5yZWxvYWQoKTtcXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBmYmEuZ2V0VmFyKFxcXCJfeDVqeFVybFxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5jb3VudCsrO1xcbiAgICAgICAgICAgICAgICAvLyBmYmEubG9nKCdjb3VudDonK3dpbmRvdy5jb3VudCsnLG1heF9jb3VudDonK21heF9jb3VudCk7XFxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY291bnQgPj0gbWF4X2NvdW50KSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLotoXov4dcXFwiICsgbWF4X2NvdW50ICogMjUwICsgXFxcIuavq+enkuacquiOt+WPluWIsOi1hOa6kOWcsOWdgO+8jOi3s+WIsOa6kOe9kemhtSzku6XkuIvmmK/liqDovb3ov4fnmoTlnLDlnYBcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxcXCJib2R5XFxcIikuaW5uZXJUZXh0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2codGV4dCk7XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLm1lc3NhZ2UpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKEpTT04uc3RyaW5naWZ5KF9nZXRVcmxzKCkpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYmEuZ2V0VmFyKFxcXCJfeDVqeFVybFxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG11dGVNZShlbGVtKSB7XFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0ucGF1c2UoKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHZhciB2aWRlb3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFxcXCJ2aWRlb1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgYXVkaW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwiYXVkaW9cXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIHYyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwiZW1iZWRcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIHYzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXFwiI3BsYXllclxcXCIpO1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHZpZGVvcywgZnVuY3Rpb24gKHZpZGVvKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZU1lKHZpZGVvKTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbChhdWRpb3MsIGZ1bmN0aW9uIChhdWRpbykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZShhdWRpbyk7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwodjIsIGZ1bmN0aW9uICh2KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZU1lKHYpO1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHYzLCBmdW5jdGlvbiAodikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG11dGVNZSh2KTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cXG4gICAgICAgICAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgICAgICAgICAvLyBmYmEubG9nKEpTT04uc3RyaW5naWZ5KHVybHMpKTtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gdXJscykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1ID0gdXJsc1tpXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ID0gZGVjb2RlVVJJQ29tcG9uZW50KHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHVuZXNjYXBlKHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAvL1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdXJsPWh0dHAvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHUuc3BsaXQoXFxcInVybD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZiYS5sb2coXFxcInVybOWIhuWJsjpcXFwiK3UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3VybD1cXFxcLy8udGVzdCh1KSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0ID0gdS5tYXRjaCgvKC4qKVxcXFwvXFxcXC8oLio/KVxcXFwvLylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBob3N0ICsgdS5zcGxpdChcXFwidXJsPVxcXCIpLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmJhLmxvZyhcXFwidXJs5YiG5YmyOlxcXCIrdSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPWh0dHAvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IHUuc3BsaXQoXFxcInZpZD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coXFxcInZpZOWIhuWJsjpcXFwiICsgdSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPVxcXFwvLy50ZXN0KHUpICYmIC9cXFxcLm0zdTgvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhvc3QgPSB1Lm1hdGNoKC8oLiopXFxcXC9cXFxcLyguKj8pXFxcXC8vKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IGhvc3QgKyB1LnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCJ2aWTliIblibI6XFxcIiArIHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFw/KC4qKT1odHRwLy50ZXN0KHUpICYmIC9cXFxcLm0zdTgvLnRlc3QodSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdSA9IFxcXCJodHRwXFxcIiArIHUuc3BsaXQoL1xcXFw/KC4qKT1odHRwLykuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKFxcXCLlhbbku5bliIblibI6XFxcIiArIHUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3xpbmRleFxcXFwubTN1OCRcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgvXFxcXC8xXFxcXC5tM3U4Ly50ZXN0KHUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB1ID0gdS5yZXBsYWNlKC8mZnJvbT0uKnwmbmV4dD0uKnwmanVtcD0uKi8sICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVhbFVybCA9IGlzVmlkZW8odSwgcmVjaGFuZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKHJlYWxVcmwpID09ICdzdHJpbmcnICYmICFpc0JhZFZpZGVvKHUpKSB7IC8v6L+H5ruk5ZCK5q+b6KeG6aKRXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5zZXRXZWJVYShQQ19VQSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGZiYS5nZXRIZWFkZXJVcmwpICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgKHJlY2hhbmdlKSAhPT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0IGJhY2tVcmwgPSBmYmEuZ2V0SGVhZGVyVXJsKHUucmVwbGFjZShcXFwiO3tcXFwiLFxcXCIjaXNWaWRlbz10cnVlIzt7XFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2tVcmwgPSBmYmEuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoJzt7JywgJyNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7Jyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdTEgPSBiYWNrVXJsLnNwbGl0KCcjaWdub3JlSW1nJylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdTIgPSAnI2lnbm9yZUltZycgKyBiYWNrVXJsLnNwbGl0KCcjaWdub3JlSW1nJylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IHUxLnJlcGxhY2UoLyZmcm9tPS4qfCZuZXh0PS4qfCZqdW1wPS4qLywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC91cmw9aHR0cC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IHUxLnNwbGl0KFxcXCJ1cmw9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdXJsPVxcXFwvLy50ZXN0KHUxKSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUxKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0MSA9IHUxLm1hdGNoKC8oLiopXFxcXC9cXFxcLyguKj8pXFxcXC8vKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IGhvc3QxICsgdTEuc3BsaXQoXFxcInVybD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmJhLmxvZyhcXFwidXJs5YiG5YmyOlxcXCIrdSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC92aWQ9aHR0cC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IHUxLnNwbGl0KFxcXCJ2aWQ9XFxcIikuc2xpY2UoLTEpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvdmlkPVxcXFwvLy50ZXN0KHUxKSAmJiAvXFxcXC5tM3U4Ly50ZXN0KHUxKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBob3N0MSA9IHUxLm1hdGNoKC8oLiopXFxcXC9cXFxcLyguKj8pXFxcXC8vKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IGhvc3QxICsgdTEuc3BsaXQoXFxcInZpZD1cXFwiKS5zbGljZSgtMSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcPyguKik9aHR0cC8udGVzdCh1MSkgJiYgL1xcXFwubTN1OC8udGVzdCh1MSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSA9IFxcXCJodHRwXFxcIiArIHUxLnNwbGl0KC9cXFxcPyguKik9aHR0cC8pLnNsaWNlKC0xKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tVcmwgPSB1MSArIHUyO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmJhLmxvZygn6L+U5Zue6Ieq5Yqo5YqgY29va2ll6ZO+5o6lOicrYmFja1VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCfov5Tlm57pk77mjqU6JyArIHUgKyAn5bm26Ieq5Yqo5Yqg5LqGY29va2llLOWFt+S9k2Nvb2tpZeWcqOinhumikeaSreaUvuWkhOafpeeciycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGJhY2tVcmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1MSArICcjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyB1Mi5yZXBsYWNlKCcjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7JywgJzsnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coXFxcIui/lOWbnuS7k+W6k3g15YWN5ZeF57uT5p6cOlxcXCIgKyByZWFsVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsVXJsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coZS5tZXNzYWdlKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAvLyBmeV9icmlkZ2VfYXBwLmxvZygneDXlpKfojIPlm7TplJnor686JytlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICBhbGVydCgneDXlpKfojIPlm7TplJnor686JyArIGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/miqXplJnnu5PmnZ94NSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9LCBpc1ZpZGVvLCByZWNoYW5nZSwgcGxheVVybCwgbWF4X2NvdW50LCBQQ19VQSwgaXNCYWRWaWRlbyk7XFxuICAgICAgICBsZXQgdXNlV2ViID0gbHNnLmdldEl0ZW0oXFxcIumAmuWFjVxcXCIsIFxcXCJYNVxcXCIpID09PSBcXFwiV0VCXFxcIjtcXG4gICAgICAgIC8vbG9nKFxcXCLku5PlupPkvb/nlKh3ZWLpgJrlhY3mm7/ku6N4NTpcXFwiK3VzZVdlYik7XFxuICAgICAgICBsZXQgcnVsZUhlYWQgPSB1c2VXZWIgJiYgcGFyc2VJbnQoZ2V0QXBwVmVyc2lvbigpKSA+PSAyMzM5ID8gXFxcIndlYlJ1bGU6Ly9cXFwiIDogXFxcIng1UnVsZTovL1xcXCI7XFxuICAgICAgICBsZXQgeDVVcmwgPSBydWxlSGVhZCArIHBsYXlVcmwgKyAnQCcgKyBfeDU7XFxuICAgICAgICByZXR1cm4geDVVcmxcXG4gICAgfVxcbiAgICAvLyDlrprkvY3nnJ/lrp7nur/ot68t5bi46KeEXFxuICAgIGxldCB0cyA9IC9peGlndWF8aXFpeWl8cXEuY29tfG1ndHZ8bGUuY29tfGJpbGl8c29odXx5b3VrdXxwcHR2fGNjdHZ8MTkwNS5jb20vO1xcbiAgICBpZiAoIWlucHV0Lm1hdGNoKHRzKSkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBsZXQgRnJvbSA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkubWF0Y2goL3ZhciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKTtcXG4gICAgICAgICAgICBsZXQg5Yqg5a+GID0gRnJvbS5lbmNyeXB0O1xcbiAgICAgICAgICAgIC8vIGxldCDmnaXoh6ogPSBGcm9tLmZyb207XFxuICAgICAgICAgICAg5Y6f6ZO+ID0gRnJvbS51cmw7XFxuICAgICAgICAgICAgLy9sb2coRnJvbSk6XFxuICAgICAgICAgICAgaWYgKOWKoOWvhiA9PSAnMScpIHtcXG4gICAgICAgICAgICAgICAg5Y6f6ZO+ID0gdW5lc2NhcGUo5Y6f6ZO+KTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKOWKoOWvhiA9PSAnMicpIHtcXG4gICAgICAgICAgICAgICAg5Y6f6ZO+ID0gdW5lc2NhcGUoYmFzZTY0RGVjb2RlKOWOn+mTvikpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoL1xcXFwubXA0fFxcXFwubTN1OHxcXFxcLmZsdi8udGVzdCjljp/pk74pKSB7XFxuICAgICAgICAgICAgICAgIHNob3dMb2FkaW5nKCfojrflj5bkuI3liLDlrpjnvZHlnLDlnYDvvIzlsIbnm7Tpk77mkq3mlL4nKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFvljp/pk75dLFxcbiAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRzLnRlc3Qo5Y6f6ZO+KSkge1xcbiAgICAgICAgICAgICAgICDlrpjpk74gPSDljp/pk747XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoJ+iOt+WPluS4jeWIsOWumOe9keWcsOWdgO+8jOWwhuebtOmTvuaSreaUvicpO1xcbiAgICAgICAgICAgICAgICAvL+ebl+eJiOermeWcsOWdgFxcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW3BsYXlQYXJzZS5wbGF5ZXJTKGlucHV0KV0sXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAvLyDoi6Xlj5HnlJ/lvILluLjliJnnm7TmjqXkuLrnqbrpk77otbDll4XmjqJcXG4gICAgICAgICAgICDlrpjpk74gPSAnaHR0cHM6Ly9lbXB0eS5odG1sJztcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIOWumOmTviA9IGlucHV0O1xcbiAgICB9XFxuICAgIC8vIOWIpOaWreW8ueW5lee6v+i3r+adpea6kFxcbiAgICBkbVNldHRpbmdzID0gSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSk7XFxuICAgIGRtRnJvbSA9IGRtU2V0dGluZ3MuZG1Gcm9tO1xcbiAgICBkbVNjb3BlID0gZG1TZXR0aW5ncy5kbVNjb3BlO1xcbiAgICBpZiAoZG1TY29wZSA9PSAnZ2xvYmFsJykge1xcbiAgICAgICAgaWYgKOWumOmTvi5tYXRjaCh0cykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1lbHNle1xcbiAgICAgICAgICAgIGRtPWdldFZhcignZG1fc2hhcmUnLCcnKTtcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGlmICjlrpjpk74ubWF0Y2goL3lvdWt1fHFpeWl8aXhpZ3VhfG1pZ3V8c29odXxwcHR2fGxlfGNjdHZ8MTkwNS5jb20vKSkge1xcbiAgICAgICAgICAgIHN3aXRjaCAoZG1Gcm9tKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zj5a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZjZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICflt6blsrjlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+S4ieaWueaJtumjjic6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mdWZlbmdfVGhpcmQo5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuenVvYW5kbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIGlmICjlrpjpk74ubWF0Y2goL21ndHYvKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLk1HZG0o5a6Y6ZO+KTtcXG4gICAgICAgIH0gZWxzZSBpZiAo5a6Y6ZO+Lm1hdGNoKC9xcS5jb20vKSkge1xcbiAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLlRYZG0o5a6Y6ZO+KTtcXG4gICAgICAgIH0gZWxzZSBpZiAo5a6Y6ZO+Lm1hdGNoKC9iaWxpLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5iaWxpZG0o5a6Y6ZO+KTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgc2hvd0xvYWRpbmcoJ+ayoeacieW8ueW5leWumOe9keWMuemFjScpO1xcbiAgICAgICAgICAgIHB1dFZhcignZG1QYXRoJywgJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJyk7XFxuICAgICAgICAgICAgcmV0dXJuIHg1cnVsZShpbnB1dCwgODAwMCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcHV0VmFyKCdkbVBhdGgnLCBkbSk7XFxuICAgIHJldHVybiB4NXJ1bGUoaW5wdXQsIDgwMDApO1xcbn1cXG5cXG5cXG4vLyDpppnkvazpgJrlhY1cXG4kLmV4cG9ydHMuY2xhc3NpY2FsWDUgPSBmdW5jdGlvbiAoKSB7XFxuICAgIGZ1bmN0aW9uIHg1cnVsZShqaWV4dXJsLCBzcmN1cmwpIHtcXG4gICAgICAgIHNob3dMb2FkaW5nKFxcXCLnvZHpobXorr/pl67mo4DntKLkuK3vvIzor7fnqI3lgJkuLi5cXFwiKTtcXG4gICAgICAgIHZhciB2aWRlbyA9ICd3ZWJSdWxlOi8vJyArIGppZXh1cmwgKyAnQCcgKyAkLnRvU3RyaW5nKChzcmN1cmwpID0+IHtcXG4gICAgICAgICAgICAvL2ZiYS5sb2coZmJhLmdldFVybHMoKSk7XFxuICAgICAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA9PSBudWxsIHx8IHdpbmRvdy5fX2NvdW50ID09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuX19jb3VudCA9IDBcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID49IDIzKSB7XFxuICAgICAgICAgICAgICAgIC8vIHJldHVybiBzcmN1cmxcXG4gICAgICAgICAgICAgICAgYmZ1cmwgPSBzcmN1cmwuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgYXJncyA9IHNyY3VybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB3aW5kb3cuX19jb3VudCA9IHdpbmRvdy5fX2NvdW50ICsgMTtcXG4gICAgICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPiAxICYmIHdpbmRvdy5fX2NvdW50IDw9IDMgJiYgd2luZG93Ll9fY291bnQgIT0gbnVsbCAmJiB3aW5kb3cuX19jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5pbm5lclRleHQuc2VhcmNoKC/op6blj5HkuobpmLLnm5fpk7585pyq5o6I5p2DfOaOpeWPo+mYsuebl3zor7fliLDkuLvnq5nop4LnnIsvKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzcmN1cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xot7PpmLLnm5fpqozor4HkuIAnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gbG9jYXRpb24uaHJlZjtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V6Lez6Ziy55uX6aqM6K+B5LqMJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IHNyY3VybFxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93Ll9fY291bnQgPiAzICYmIHdpbmRvdy5fX2NvdW50ICE9IG51bGwgJiYgd2luZG93Ll9fY291bnQgIT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgICAgIGlmICh1cmxzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5oaWRlTG9hZGluZygpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ajgOe0ouWksei0pe+8jOWPr+iDvemTvuaOpeaXoOazleiuv+mXruOAgic7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJscy5sZW5ndGggPT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V55u06ZO+5LiOSlNPTuino+aekCcpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbMF0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIXVybHNbMF0ubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OC8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9meV9icmlkZ2VfYXBwLmxvZyh1cmxzWzBdKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzWzBdLmluZGV4T2YoJ2JpbGl2aWRlbycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzWzBdICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzWzBdXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbMF0uaW5kZXhPZigndGl0YW4ubWd0di5jb20nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXSArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IHVybHNbMF0uc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IHVybHNbMF0ubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIWxvY2F0aW9uLmhyZWYubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OC8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGxvY2F0aW9uLmhyZWYubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gZmJhLmZldGNoKGxvY2F0aW9uLmhyZWYsIHt9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9cXFxcPG1ldGEvLnRlc3QoaHRtbCkgJiYgIS9cXFxcPGh0bWwvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIEpTT04ucGFyc2UoaHRtbCkudXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IEpTT04ucGFyc2UoaHRtbCkudXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL+ayoeacieaJvuWIsOermeeCuXznvZHpobXml6Dms5XmiZPlvIB8NDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCfml6Xlv5fmo4DntKLnrKwnICsgd2luZG93Ll9fY291bnQgKyAn5qyhJyk7XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1tpXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4fFxcXFwuY3NzfFxcXFwuanNcXFxcPy8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1tpXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIikubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5iaWxpYmlsaS5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZigndGl0YW4ubWd0di5jb20nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnd3d3Lm1ndHYuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ2p1aGFva2FuJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5qdWhhb2thbi5jYy8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignb2piaycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vdi5vamJranguY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly92Lm9qYmtqeC5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3drZmlsZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGZiYS5nZXRWYXIoJ2RtUGF0aCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3NoZW5nbGlueWl5YW5nJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly96eXouc2RsandvbWVuLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBmYmEuZ2V0VmFyKCdkbVBhdGgnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8venl6LnNkbGp3b21lbi5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3BlaXpxLm9ubGluZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vcGxheS5wZWl6cS5vbmxpbmUvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3BsYXkucGVpenEub25saW5lLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSAodXJsc1tpXSArICcjaXNWaWRlbz10cnVlIycpLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9ICh1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJykubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogZmJhLmdldFZhcignZG1QYXRoJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIGZvciBpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9LCBzcmN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHZpZGVvXFxuICAgIH1cXG4gICAgLy8g5a6a5L2N55yf5a6e57q/6LevLeW4uOinhFxcbiAgICBsZXQgdHMgPSAvaXhpZ3VhfGlxaXlpfHFxLmNvbXxtZ3R2fGxlLmNvbXxiaWxpfHNvaHV8eW91a3V8cHB0dnxjY3R2fDE5MDUuY29tLztcXG4gICAgaWYgKCFpbnB1dC5tYXRjaCh0cykpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgbGV0IEZyb20gPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC92YXIgcGxheWVyXy4qPz0oLio/KTwvKVsxXSk7XFxuICAgICAgICAgICAgbGV0IOWKoOWvhiA9IEZyb20uZW5jcnlwdDtcXG4gICAgICAgICAgICAvLyBsZXQg5p2l6IeqID0gRnJvbS5mcm9tO1xcbiAgICAgICAgICAgIOWOn+mTviA9IEZyb20udXJsO1xcbiAgICAgICAgICAgIC8vbG9nKEZyb20pOlxcbiAgICAgICAgICAgIGlmICjliqDlr4YgPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgIOWOn+mTviA9IHVuZXNjYXBlKOWOn+mTvik7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICjliqDlr4YgPT0gJzInKSB7XFxuICAgICAgICAgICAgICAgIOWOn+mTviA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSjljp/pk74pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKC9cXFxcLm1wNHxcXFxcLm0zdTh8XFxcXC5mbHYvLnRlc3Qo5Y6f6ZO+KSkge1xcbiAgICAgICAgICAgICAgICBzaG93TG9hZGluZygn6I635Y+W5LiN5Yiw5a6Y572R5Zyw5Z2A77yM5bCG55u06ZO+5pKt5pS+Jyk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBb5Y6f6ZO+XSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh0cy50ZXN0KOWOn+mTvikpIHtcXG4gICAgICAgICAgICAgICAg5a6Y6ZO+ID0g5Y6f6ZO+O1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHNob3dMb2FkaW5nKCfojrflj5bkuI3liLDlrpjnvZHlnLDlnYDvvIzlsIbnm7Tpk77mkq3mlL4nKTtcXG4gICAgICAgICAgICAgICAgLy/nm5fniYjnq5nlnLDlnYBcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtwbGF5UGFyc2UucGxheWVyUyhpbnB1dCldLFxcbiAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgLy8g6Iul5Y+R55Sf5byC5bi45YiZ55u05o6l5Li656m66ZO+6LWw5ZeF5o6iXFxuICAgICAgICAgICAg5a6Y6ZO+ID0gJ2h0dHBzOi8vZW1wdHkuaHRtbCc7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICDlrpjpk74gPSBpbnB1dDtcXG4gICAgfVxcbiAgICAvLyDliKTmlq3lvLnluZXnur/ot6/mnaXmupBcXG4gICAgZG1TZXR0aW5ncyA9IEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9zZXR0aW5ncy5qc29uJykpO1xcbiAgICBkbUZyb20gPSBkbVNldHRpbmdzLmRtRnJvbTtcXG4gICAgZG1TY29wZSA9IGRtU2V0dGluZ3MuZG1TY29wZTtcXG4gICAgaWYgKGRtU2NvcGUgPT0gJ2dsb2JhbCcpIHtcXG4gICAgICAgIGlmICjlrpjpk74ubWF0Y2godHMpKSB7XFxuICAgICAgICAgICAgc3dpdGNoIChkbUZyb20pIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAnZmPlrpjlvLknOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZmNkbSjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ+W3puWyuOWumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5LiJ5pa55om26aOOJzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmZ1ZmVuZ19UaGlyZCjlrpjpk74pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS56dW9hbmRtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICBkbT1nZXRWYXIoJ2RtX3NoYXJlJywnJyk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBpZiAo5a6Y6ZO+Lm1hdGNoKC95b3VrdXxxaXlpfGl4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZXxjY3R2fDE5MDUuY29tLykpIHtcXG4gICAgICAgICAgICBzd2l0Y2ggKGRtRnJvbSkge1xcbiAgICAgICAgICAgICAgICBjYXNlICdmY+WumOW8uSc6XFxuICAgICAgICAgICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5mY2RtKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAn5bem5bK45a6Y5by5JzpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICfkuInmlrnmibbpo44nOlxcbiAgICAgICAgICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuZnVmZW5nX1RoaXJkKOWumOmTvik7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIGRtID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLnp1b2FuZG0o5a6Y6ZO+KTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSBpZiAo5a6Y6ZO+Lm1hdGNoKC9tZ3R2LykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5NR2RtKOWumOmTvik7XFxuICAgICAgICB9IGVsc2UgaWYgKOWumOmTvi5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgICAgICBkbSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RtRnVuP3J1bGU9ZG3nm5LlrZAnKS5UWGRtKOWumOmTvik7XFxuICAgICAgICB9IGVsc2UgaWYgKOWumOmTvi5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICAgICAgZG0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kbUZ1bj9ydWxlPWRt55uS5a2QJykuYmlsaWRtKOWumOmTvik7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHNob3dMb2FkaW5nKCfmsqHmnInlvLnluZXlrpjnvZHljLnphY0nKTtcXG4gICAgICAgICAgICBwdXRWYXIoJ2RtUGF0aCcsIGdldFZhcignZG1fc2hhcmUnLCAnJykpO1xcbiAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoaW5wdXQsIGlucHV0KTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBwdXRWYXIoJ2RtUGF0aCcsIGRtKTtcXG4gICAgcmV0dXJuIHg1cnVsZShpbnB1dCwgaW5wdXQpO1xcbn1cXG5cIn1dIiwiaWNvbiI6Imh0dHA6Ly9pbWctcW4tMC41MW1pei5jb20vRWxlbWVudC8wMC85MC83NS8wOS8zMWM3YmQyZl9FOTA3NTA5XzA4OGY5YzMyLnBuZyEvcXVhbGl0eS85MC91bnNoYXJwL3RydWUvY29tcHJlc3MvdHJ1ZS9mb3JtYXQvcG5nL2ZoLzMyMCIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment