Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@IPFS资源@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiSVBGU+i1hOa6kCIsImF1dGhvciI6IjE1MyIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjEsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+aWh+S7tuWkuSNjYWNoZU9ubHkjP+e8k+WtmElEPScrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIpKS5ydWxlKSIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IuinhumikSIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5paH5Lu25aS5XCIsXCJwYXRoXCI6XCLmlofku7blpLlcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuXFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcblxcblxcblxcblxcblxcblxcblxcbuaWh+S7tuWkueWQjT1NWV9QQVJBTVMu5paH5Lu25aS55ZCNXFxu5paH5Lu25aS5aWQ9TVlfUEFSQU1TLuaWh+S7tuWkuWlkXFxu5YiG5Lqr55So5oi3aWQ9TVlfUEFSQU1TLnVzZXJpZFxcbnVzZXJpZD3liIbkuqvnlKjmiLdpZFxcbumcgOimgeeUqOaIt2lkPU1ZX1BBUkFNUy7pnIDopoHnlKjmiLdpZFxcblxcbmlmKCHmlofku7blpLlpZCl7XFxu5paH5Lu25aS55ZCNPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS5uYW1lK1xcXCIt5qC555uu5b2VXFxcIlxcbuaWh+S7tuWkuWlkPTBcXG59XFxuXFxuXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpKVxcblxcblxcbmlmKCHmlofku7blpLlpZCl7XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLnrqHnkIbotKblj7dcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcImljb25fNFxcXCIsXFxuICAgIHBpY191cmw66aaW6aG1566h55CG6LSm5Y+35Zu+5qCHLFxcbiAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2Uv566h55CG6LSm5Y+3I25vUmVjb3JkSGlzdG9yeSNcXFwiXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWvu+aJvui1hOa6kFxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwiaWNvbl80XFxcIixcXG4gICAgcGljX3VybDrpppbpobXlr7vmib7otYTmupDlm77moIcsXFxuICAgIHVybDogJChbXFxcIuWumOaWuei1hOa6kFxcXCIsXFxcIuWKqOa8q+i1hOa6kOKRoFxcXCIsXFxcIuWklue9kei1hOa6kOKRoFxcXCJdLCAxLCfpnIDopoHlnKjlk6rph4zmib7otYTmupDvvJ8nKS5zZWxlY3QoKCkgPT4ge1xcblxcbmlmKGlucHV0PT1cXFwi5Yqo5ryr6LWE5rqQ4pGgXFxcIilyZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/liqjmvKvotYTmupDikaAjbm9SZWNvcmRIaXN0b3J5Iz9wYWdlPWZ5cGFnZVxcXCJcXG5cXG5pZihpbnB1dD09XFxcIuWumOaWuei1hOa6kFxcXCIpcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5a+75om+6LWE5rqQI25vUmVjb3JkSGlzdG9yeSM/cGFnZT1meXBhZ2VcXFwiXFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLlpJbnvZHotYTmupDikaBcXFwiKXJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+Wklue9kei1hOa6kOKRoCNub1JlY29yZEhpc3RvcnkjP3BhZ2U9ZnlwYWdlXFxcIlxcblxcblxcbn0pXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuaIkeeahOWIhuS6q1xcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwiaWNvbl80XFxcIixcXG4gICAgcGljX3VybDrpppbpobXmiJHnmoTliIbkuqvlm77moIcsXFxuICAgIHVybDogXFxcImhpa2VyOi8vcGFnZS/miJHnmoTliIbkuqsjbm9SZWNvcmRIaXN0b3J5I1xcXCJcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5oiR55qE5aSH5Lu9XFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJpY29uXzRcXFwiLFxcbiAgICBwaWNfdXJsOummlumhteaIkeeahOWkh+S7veWbvuaghyxcXG4gICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL+aIkeeahOWkh+S7vSNub1JlY29yZEhpc3RvcnkjXFxcIlxcbn0pXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmlnX2JsYW5rX2Jsb2NrJ1xcbiAgICB9KTtcXG5cXG5mdW5jdGlvbiBnZXRBY2NvdW50cyhmaWxlKSB7XFxuICAgIHJldHVybiBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8IHJlcXVlc3QoZmlsZSkgfHwgJ1tdJyk7XFxufVxcblxcblxcbmZ1bmN0aW9uIGdldEN1ckl0ZW0oKSB7XFxuICAgIGxldCBpdGVtID0gc3RvcmFnZTAuZ2V0SXRlbShcXFwiY3VySXRlbVxcXCIpXFxuICAgICBcXG4gICAgaWYgKCFpdGVtKSB7XFxuICAgICAgICBsZXQgbGlzdCA9IGdldEFjY291bnRzKCk7XFxuICAgICAgICBcXG4gICAgICAgIGl0ZW0gPSBsaXN0Lmxlbmd0aCA/IGxpc3RbMF0gOiB7fTtcXG4gICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0oXFxcImN1ckl0ZW1cXFwiLCBpdGVtKVxcbiAgICB9XFxuXFxuICAgIHJldHVybiBpdGVtXFxuXFxufVxcblxcbnZhciBjdXJJdGVtID0gZ2V0Q3VySXRlbSgpXFxuXFxubGV0IHN1Yl9hY2NvdW50cyA9IGdldEFjY291bnRzKCk7XFxuXFxuXFxudHJ5IHtcXG5pZihzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlcil7XFxu5bey55So5a656YeP6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvdXNlci91c2VkU3BhY2VcXFwiXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK3N0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxufVxcblxcbui6q+S9kz1ge31gXFxuICAgICAgICBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjlt7LnlKjlrrnph4/or7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30sIHt0aW1lb3V0OjUwMH0pXFxuXFxu5bey55So5a656YePPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmZpbGVVc2VkU2l6ZVxcblxcblxcbmQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU65bey55So5a656YePP1xcXCLigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPScjMUU5MEZGJz7lvZPliY3otKblj7flt7LnlKjlrrnph486XFxcIiArIGZvcm1hdFNpemUo5bey55So5a656YePKSArIFxcXCI8L2Zyb250Pjwvc3Ryb25nPlxcXCI6XFxcIuaWh+S7tumcgOimgeWOu+Wwj+m+meS6keebmEFQUOS4iuS8oFxcXCIsXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICAgICAgICAgIHVybDogXFxcInRvYXN0Oi8v6L+Z5piv5a656YePXFxcIixleHRyYToge2xpbmVWaXNpYmxlOiBmYWxzZX1cXG4gICAgICAgIH0pO1xcblxcbn1cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhcXFwi5bCP6b6Z5LqR55uY5YCS6Zet5LqGXFxcIilcXG59XFxuXFxuICAgIHN1Yl9hY2NvdW50cy5mb3JFYWNoKChpdGVtKSA9PiB7XFxuICAgICAgICB2YXIgaXNDbGlja2VkID0gY3VySXRlbS5uYW1lID09PSBpdGVtLm5hbWU7XFxuXFxuXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBpc0NsaWNrZWQgPyBcXFwi4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+XFxcIiArIGl0ZW0ubmFtZSArIFxcXCI8L2Zyb250Pjwvc3Ryb25nPlxcXCIgOiBpdGVtLm5hbWUsXFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpdGVtKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxvZyhpdGVtKVxcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCJjdXJJdGVtXFxcIiwgaXRlbSk7XFxuXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG4gICAgICAgICAgICB9LCBpdGVtKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiXFxuICAgICAgICB9KTtcXG4gICAgfSk7XFxuICAgIFxcblxcblxcblxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgfSk7XFxuICBcXG5cXG59XFxuXFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcbmxldCDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcblxcblxcbuivt+axguWPmOmHj2I9XFxcIlxcXCJcXG5cXG5pZijpnIDopoHnlKjmiLdpZCYm5YiG5Lqr55So5oi3aWQpe1xcblxcbuivt+axguWPmOmHj2E9XFxcIi9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxuXFxu6K+35rGC5Y+Y6YePYj1cXFwiL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvZmlsZUxpc3RcXFwiXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcblxcblxcbmlmKCHliIbkuqvnlKjmiLdpZCl7XFxuXFxuXFxuXFxuLy/mraTlpITlvIDlp4vojrflj5bmlofku7bliJfooahcXG4vL+atpOWkhOW8gOWni+iOt+WPluaWh+S7tuWIl+ihqFxcbi8v5q2k5aSE5byA5aeL6I635Y+W5paH5Lu25YiX6KGoXFxu6K+35rGC5Y+Y6YePYT1cXFwiL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcblxcbuivt+axguWPmOmHj2I9XFxcIi9jbG91ZGZpbGUvdjEvZmlsZXNcXFwiXFxuXFxu6Lqr5L2TPWB7XFxuXFxcImZpbGVUeXBlXFxcIjpbXSxcXG5cXFwia2V5d29yZHNcXFwiOlxcXCJcXFwiLFxcblxcXCJwYWdlTnVtXFxcIjoxLFxcblxcXCJwYWdlU2l6ZVxcXCI6MTAwLFxcblxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCIsXFxuXFxcInNvcnRNZXRob2RcXFwiOlxcXCJkZXNjXFxcIixcXG5cXFwic29ydFR5cGVcXFwiOlxcXCJ0aW1lXFxcIlxcbn1gXFxuXFxu6Lqr5L2TPWB7XFxcImZpbGVOYW1lXFxcIjpcXFwiYCtnZXRWYXIoJ+aQnOe0ouWFs+mUruivjScsICcnKStgXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJgK3N0b3JhZ2UwLmdldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwibmFtZVxcXCIpK2BcXFwiLFxcXCJzb3J0VHlwZVxcXCI6XFxcImArc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYlxcXCIsIFxcXCJhc2NcXFwiKStgXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkuWlkK2BcXFwifWBcXG5cXG5cXG5cXG59ZWxzZXtcXG5cXG5cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkuWlkK2BcXFwiLFxcXCJ1c2VySWRcXFwiOlxcXCJgK+WIhuS6q+eUqOaIt2lkK2BcXFwifWBcXG5cXG59XFxuXFxuXFxucHV0VmFyKCfmkJzntKLlhbPplK7or40nLCBcXFwiXFxcIilcXG5cXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxu5bCP6b6Z5LqR6K+35rGCYT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIr6K+35rGC5Y+Y6YePYVxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOWwj+m+meS6keivt+axgmEse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5bCP6b6Z5LqR6K+35rGCYj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIr6K+35rGC5Y+Y6YePYlxcbiAgICDnrKzkuozmrKHlk43lupQ9cG9zdCjlsI/pvpnkupHor7fmsYJiLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcblxcblxcblxcblxcblxcbnRyeSB7XFxuXFxuLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxu5YiX6KGoYT1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbi8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbuWIl+ihqGI9SlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGFcXG5cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhcXFwi5bCP6b6Z5LqR55uY5YCS6Zet5LqGXFxcIilcXG59XFxuXFxuICAgIFxcbiAgICBcXG5cXG5cXG5cXG5pZigh5YiG5Lqr55So5oi3aWQpe1xcbuWIl+ihqGE95YiX6KGoYS5kYXRhXFxu5YiX6KGoYj3liJfooahiLmRhdGFcXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTpcXFwi4oeFXFxcIitzdG9yYWdlMC5nZXRJdGVtKFxcXCLmjpLluo/lj5jph49cXFwiLCBcXFwi5ZCN56ew5q2j5bqPXFxcIikrXFxcIuKHhVxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgdXJsOiQoW1xcXCLlkI3np7DmraPluo9cXFwiLFxcXCLlkI3np7DlgJLluo9cXFwiLFxcXCLml7bpl7TmraPluo9cXFwiLFxcXCLml7bpl7TlgJLluo9cXFwiLFxcXCLlpKflsI/mraPluo9cXFwiLFxcXCLlpKflsI/lgJLluo9cXFwiXSwgMiwn6ZyA6KaB5LuA5LmI57G75Z6L5o6S5bqP77yfJykuc2VsZWN0KCgpID0+IHtcXG5cXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49cXFwiLCBpbnB1dCk7XFxuaWYoaW5wdXQuaW5jbHVkZXMoXFxcIuWQjeensFxcXCIpKVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwibmFtZVxcXCIpO1xcbmVsc2UgaWYoaW5wdXQuaW5jbHVkZXMoXFxcIuaXtumXtFxcXCIpKVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwidXBsb2FkXFxcIik7XFxuZWxzZVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwic2l6ZVxcXCIpO1xcblxcbmlmKGlucHV0LmluY2x1ZGVzKFxcXCLmraPluo9cXFwiKSlcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49iXFxcIiwgXFxcImFzY1xcXCIpO1xcbmVsc2VcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49iXFxcIiwgXFxcImRlc2NcXFwiKTtcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG5cXG4gICAgfSlcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi4oCUXFxcIitzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiLCBcXFwi5YiX6KGo5qih5byPXFxcIikrXFxcIuKAlFxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgdXJsOiQoW1xcXCLliJfooajmqKHlvI9cXFwiLFxcXCLlm77mlofmqKHlvI9cXFwiLFxcXCLlhajlkI3mqKHlvI9cXFwiLFxcXCLmvKvnlLvmqKHlvI9cXFwiXSwgMiwn6ZyA6KaB5LuA5LmI5qC35byP5pi+56S677yfJykuc2VsZWN0KCgpID0+IHtcXG5cXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiLCBpbnB1dCk7XFxuaWYoaW5wdXQ9PVxcXCLliJfooajmqKHlvI9cXFwiKVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaWh+S7tuagt+W8j+WPmOmHj1xcXCIsIFxcXCJhdmF0YXJcXFwiKTtcXG5pZihpbnB1dD09XFxcIuWbvuaWh+aooeW8j1xcXCIpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcIm1vdmllXzJcXFwiKTtcXG5pZihpbnB1dD09XFxcIuWFqOWQjeaooeW8j1xcXCIpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcInRleHRfMVxcXCIpO1xcblxcblxcblxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5YqfXFxcIlxcblxcbiAgICB9KVxcbn0pXFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLinYXmm7TlpJrlip/og73inYVcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuICAgIHVybDokKFtcXFwi5paw5bu65paH5Lu25aS5XFxcIixcXFwi5om56YeP5pON5L2cXFxcIixcXFwi5pCc57Si5b2T5YmN5paH5Lu25aS5XFxcIixcXFwi5aSH5Lu95b2T5YmN5paH5Lu25aS5XFxcIixcXFwi5ryr55S75qih5byPXFxcIixcXFwi5b6F5byA5Y+RXFxcIl0sIDIsJ+ivt+mAieaLqeabtOWkmuWKn+iDvScpLnNlbGVjdCgo5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSzmlofku7blpLlpZCxJUEZT5a+G6ZKlKSA9PiB7XFxuICAgICAgICBcXG4gICAgICAgIFxcblxcbmlmKGlucHV0PT1cXFwi5paw5bu65paH5Lu25aS5XFxcIil7XFxucmV0dXJuICQoXFxcIlxcXCIsXFxcIuaWsOaWh+S7tuWkueWQjVxcXCIpLmlucHV0KCjmlofku7blpLlpZCxJUEZT5a+G6ZKlKSA9PiB7XFxu5paw5bu65paH5Lu25aS56K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvYWRkRm9sZGVyXFxcIlxcblxcblxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJmaWxlTmFtZVxcXCI6XFxcImAraW5wdXQrYFxcXCIsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLlpZCtgXFxcIixcXFwidG9rZW5cXFwiOlxcXCJgK0lQRlPlr4bpkqUrYFxcXCJ9YFxcbiAgICAgICAgXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5paw5bu65paH5Lu25aS56K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkuWlkPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/mlrDlu7otXFxcIitpbnB1dCtcXFwiKFxcXCIr5paH5Lu25aS5aWQrXFxcIikt5oiQ5YqfXFxcIlxcblxcblxcbn0s5paH5Lu25aS5aWQsSVBGU+WvhumSpSlcXG5cXG59ZWxzZSBpZihpbnB1dD09XFxcIuaQnOe0ouW9k+WJjeaWh+S7tuWkuVxcXCIpe1xcbnJldHVybiAkKFxcXCJcXFwiLFxcXCLmkJzntKLlhbPplK7or41cXFwiKS5pbnB1dCgoKSA9PiB7XFxucHV0VmFyKCfmkJzntKLlhbPplK7or40nLCBpbnB1dClcXG5cXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+aQnOe0oi1cXFwiK2lucHV0K1xcXCIt5oiQ5YqfXFxcIlxcblxcblxcbn0pXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLlpIfku73lvZPliY3mlofku7blpLlcXFwiKXtcXG4gICAgXFxuICAgIFxcblxcbiAgICBcXG5yZXR1cm4gY29uZmlybSh7XFxudGl0bGU6J+mAieaLqeaPkOekuicsIFxcbmNvbnRlbnQ6J+ehruWumi3nm7TmjqXlrZjlhaXlpIfku73moLnnm67lvZVcXFxcbuWPlua2iC3pgInmi6nlrZjlhaXlpIfku73nmoTnm67lvZUnLCBcXG5cXG5jb25maXJtOiQudG9TdHJpbmcoKOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSkgPT4ge1xcbiAgICDlrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICDlrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpIfku71cXFwiKVxcblxcbiAgICBcXG4gICAgICAgICAgICAgICAgfSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpLFxcblxcbmNhbmNlbDokLnRvU3RyaW5nKCjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpID0+IHtcXG4gICAgXFxuICAgIGxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG7lpIfku73mlofku7blkI3liJfooag9W11cXG5mb3IgKHZhciBpIGluIOWwj+m+meS6keebmOWkh+S7veebruW9lSkge1xcbiAgICAgICAgICAg5aSH5Lu95paH5Lu25ZCN5YiX6KGoW2ldPeWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbn1cXG5cXG5yZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsJ+mcgOimgeWtmOWcqOWTquS4quaAu+aWh+S7tu+8nycpLnNlbGVjdCgo5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUpID0+IHtcXG4gICAgXFxuICAgIOeCueWHu+S9jee9rj3lpIfku73mlofku7blkI3liJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuXFxu5a2Y5ZOq6YeMPeWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dLnJlcGxhY2UoJzAuanNvbicsJycpXFxuXFxuICAgIFxcbiAgICAgICAgLy/lrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG4gICAgXFxuICAgIGxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCsnMC5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuaWYo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9PDEpcmV0dXJuIFxcXCJ0b2FzdDovL+Wkh+S7veagueebruW9lemDveayoeacieaWh+S7tiDkvaDpgInmi6nkuKrlsYHnmoTmlofku7blpLlcXFwiXFxuXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vT3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YVxcbiAgICDmlofku7bot6/lvoQ95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9Lui3r+W+hFxcbiAgICDpgInmi6nmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LuaWh+S7tuWkuVxcbiAgICBcXG4gICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICBcXG4gICAgXFxuICAgIFxcbiAgICByZXR1cm4gJCjpgInmi6nmlofku7blpLnliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlpIfku73mlofku7blpLnvvJ8nKS5zZWxlY3QoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzmlofku7bot6/lvoQs6YCJ5oup5paH5Lu25aS55YiX6KGoLOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjlk6rph4wpID0+IHtcXG4gICAgICAgXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG7lpIfku73mlbDmja495bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9XFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQraW5wdXRcXG5cXG5cXG5pZihpbnB1dD09XFxcIuWKoOWFpeatpOWkhFxcXCIpIHtcXG5cXG5pZihpbnB1dD09XFxcIjBcXFwiKSAg5paH5Lu26Lev5b6EPVxcXCIwXFxcIiBcXG5lbHNlIOaWh+S7tui3r+W+hD3mlofku7bot6/lvoQucmVwbGFjZSjot6/lvoTpl7TpmpQrXFxcIuWKoOWFpeatpOWkhFxcXCIgLFxcXCJcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxucmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5paH5Lu26Lev5b6ELOWtmOWTqumHjCxcXFwi5aSH5Lu9XFxcIilcXG5cXG59ZWxzZXtcXG5cXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbumAieaLqeaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG5cXG4gICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQnKSkucnVsZSlcXG5cXG5cXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG4gICAgICAgIFxcbiAgICAgICAgfVxcblxcbiAgICB9LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzmlofku7bot6/lvoQs6YCJ5oup5paH5Lu25aS55YiX6KGoLOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjlk6rph4wpIFxcbiAgICBcXG4gICAgXFxufSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSlcXG4gICAgICAgICBcXG4gICAgICAgICAgICAgICAgfSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpLFxcblxcbn0pXFxuXFxuXFxuLypcXG5cXG4qL1xcbn1lbHNlIGlmKGlucHV0PT1cXFwi5om56YeP5pON5L2cXFxcIil7XFxuICAgIFxcbiAgICBcXG4gICAgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5om56YeP5pON5L2cI25vUmVjb3JkSGlzdG9yeSM/ZGF0YT1cXFwiK0pTT04uc3RyaW5naWZ5KOWIl+ihqGEuY29uY2F0KOWIl+ihqGIpKS5yZXBsYWNlKC8oJnzvvIx8XFxcXD8pL2csJy4nKStcXFwiJuaWh+S7tuWkuWlkPVxcXCIr5paH5Lu25aS5aWQrXFxcIibmlofku7blpLnlkI09XFxcIivmlofku7blpLnlkI1cXG4gICAgXFxuICAgIFxcbiAgICBcXG59ZWxzZSBpZihpbnB1dD09XFxcIua8q+eUu+aooeW8j1xcXCIpe1xcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICBcXG4gICAg5Zu+54mH5YiX6KGoPVtdXFxuICAgIOWbvueJh+WIl+ihqOWPmOmHjz0wXFxuICAgIFxcbiAgICBmb3IobGV0IGkgPSAwO2kgPCDliJfooahiLmxlbmd0aDtpKyspe1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0uZmlsZU5hbWVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIFxcbiAgICAgICAgaWYoLyhqcGd8Z2lmfHBuZ3xqcGVnfHdlYnApJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxuXFxu5Zu+54mHPeeUn+aIkOebtOmTvihcXFwiaHR0cHM6Ly9pcGZzZ3cwMi5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCIs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7lm77niYfliJfooahb5Zu+54mH5YiX6KGo5Y+Y6YePXT3lm77niYdcXG7lm77niYfliJfooajlj5jph48rK1xcblxcbn1cXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgaWYo5Zu+54mH5YiX6KGoLmxlbmd0aDwxKXJldHVybiBcXFwidG9hc3Q6Ly/msqHor4bliKvliLDlm77niYdcXFwiXFxuICAgIFxcbiAgICBcXG4gICAgcmV0dXJuIFxcXCJwaWNzOi8vXFxcIiAr5Zu+54mH5YiX6KGoLmpvaW4oXFxcIiYmXFxcIilcXG4gICAgXFxuICAgIFxcbiAgICBcXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxucmV0dXJuIFxcXCJ0b2FzdDovL+i/mOayoeW8gOWPkVxcXCJcXG5cXG4gICAgfSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLOaWh+S7tuWkuWlkLElQRlPlr4bpkqUpLFxcbiAgICBleHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOabtOWkmuWKn+iDvVxcXCJcXG59XFxufSlcXG5cXG5cXG59XFxuXFxuXFxuXFxuIFxcblxcblxcbiBcXG5cXG4vL+atpOWkhOW8gOWni+iOt+WPluaWh+S7tuWIl+ihqFxcbi8v5q2k5aSE5byA5aeL6I635Y+W5paH5Lu25YiX6KGoXFxuLy/mraTlpITlvIDlp4vojrflj5bmlofku7bliJfooahcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG50cnkge1xcblxcblxcbuWIl+ihqD3liJfooahhLmNvbmNhdCjliJfooahiKVxcblxcblxcbuWIh+WJsuWIl+ihqOWAvD1zdG9yYWdlMC5nZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixcXFwiNTBcXFwiKVxcblxcbuaAu+mhteaVsD1NYXRoLmNlaWwo5YiX6KGoLmxlbmd0aC/liIflibLliJfooajlgLwpXFxuXFxuXFxuXFxuXFxuaWYo5oC76aG15pWwPjEmJnBhZ2U8PeaAu+mhteaVsCl7XFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi5LiK5LiA6aG1XFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQpID0+IHtcXG5cXG5pZihnZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsXFxcIjBcXFwiKT4xKVxcbntcXG55c19zYz1nZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKVxcbnlzX3NjLS1cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIseXNfc2MpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiK5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDliY1cXFwifVxcblxcbn0s5paH5Lu25aS5aWQpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOS4iuS4gOmhtVxcXCJcXG59XFxufSk7XFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpwYWdlK1xcXCIvXFxcIivmgLvpobXmlbAsXFxudXJsOiQoJycsJ+ivt+i+k+WFpemhteeggScpLmlucHV0KCjmgLvpobXmlbAs5paH5Lu25aS5aWQscGFnZSk9PntcXG5cXG4gICAgICAgIGlmKGlucHV0PjAmJmlucHV0PD3mgLvpobXmlbApe1xcbiAgICAgICAgcHV0TXlWYXIo5paH5Lu25aS5aWQrJ3BhZ2UnLGlucHV0KTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/ot7PovaxcXFwiK2lucHV0XFxuICAgICAgICB9ZWxzZXtyZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIn1cXG4gICAgfSzmgLvpobXmlbAs5paH5Lu25aS5aWQscGFnZSksXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLCBcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOaAu+mhteaVsFxcXCIsXFxuIGxvbmdDbGljazogW3t0aXRsZTogJ+S/ruaUueavj+mhteaYvuekuuS4quaVsCcsIGpzOiAkLnRvU3RyaW5nKCjmlofku7blpLlpZCk9PnsgXFxucmV0dXJuICQoc3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIiksJ+ato+aVtOaVsCcpLmlucHV0KCjmlofku7blpLlpZCk9PntcXG5cXG5pZigvXFxcXGQrLy50ZXN0KGlucHV0KSl7XFxuXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsaW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdKTtcXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsMSlcXG5cXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiAgXFxcInRvYXN0Oi8v5YiH5o2i5q+P6aG15pi+56S6XFxcIitpbnB1dC5tYXRjaCgvXFxcXGQrLylbMF0rXFxcIuS4qlxcXCJcXG59ZWxzZSByZXR1cm4gIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG5cXG59LOaWh+S7tuWkuWlkKVxcblxcbn0s5paH5Lu25aS5aWQpfV0gXFxufSBcXG59KTtcXG5cXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLkuIvkuIDpobVcXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjmgLvpobXmlbAs5paH5Lu25aS5aWQscGFnZSkgPT4ge1xcbiAgICBsb2co5oC76aG15pWwKVxcbiAgICBsb2co5paH5Lu25aS5aWQpXFxuICAgIGxvZyhwYWdlKVxcblxcbmlmKHBhZ2U85oC76aG15pWwKVxcbntcXG4gICAgbG9nKFxcXCLkv67mlLnliY1cXFwiK2dldE15VmFyKOaWh+S7tuWkuWlkK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpKVxcbnlzX3NjPWdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpXFxueXNfc2MrK1xcbnB1dE15VmFyKOaWh+S7tuWkuWlkK1xcXCJwYWdlXFxcIix5c19zYylcXG5sb2coXFxcIuS/ruaUueWQjlxcXCIrZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIikpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiL5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDlkI5cXFwifVxcblxcblxcbn0s5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOS4i+S4gOmhtVxcXCJcXG59XFxufSk7XFxuXFxufVxcblxcblxcblxcblxcbmZvcihsZXQgaSA9IOWIh+WJsuWIl+ihqOWAvCoocGFnZS0xKTtpIDwg5YiX6KGoLmxlbmd0aCYmaTzliIflibLliJfooajlgLwqcGFnZTtpKyspIHtcXG4gICAgICAgIOagh+mimD3liJfooahbaV0uZmlsZU5hbWVcXG4gICAgICAgIGlkPeWIl+ihqFtpXS5pZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqFtpXS5maWxlU2l6ZVxcbiAgICAgICAgZmlsZVR5cGU95YiX6KGoW2ldLmZpbGVUeXBlXFxuXFxuIFxcblxcblxcblxcbmlmKOaWh+S7tuWkp+Wwjz09MCl7XFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxucGljX3VybDrmlofku7blpLnlm77moIcsXFxudXJsOnN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j1xcXCIpPT1cXFwi5ryr55S75qih5byPXFxcIj8kKCcnKS5sYXp5UnVsZSgoaWQsSVBGU+WvhumSpSkgPT4ge1xcblxcbuaWh+S7tuWkuWlkPWlkXFxuXFxuXFxuXFxu6K+35rGC5Y+Y6YePYj1cXFwiL2Nsb3VkZmlsZS92MS9maWxlc1xcXCJcXG5cXG7ouqvkvZM9YHtcXG5cXFwiZmlsZVR5cGVcXFwiOltdLFxcblxcXCJrZXl3b3Jkc1xcXCI6XFxcIlxcXCIsXFxuXFxcInBhZ2VOdW1cXFwiOjEsXFxuXFxcInBhZ2VTaXplXFxcIjoxMDAsXFxuXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLlpZCtgXFxcIixcXG5cXFwic29ydE1ldGhvZFxcXCI6XFxcImRlc2NcXFwiLFxcblxcXCJzb3J0VHlwZVxcXCI6XFxcInRpbWVcXFwiXFxufWBcXG5cXG7ouqvkvZM9YHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgK2dldFZhcign5pCc57Si5YWz6ZSu6K+NJywgJycpK2BcXFwiLFxcXCJzb3J0RmxhZ1xcXCI6XFxcImArc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJuYW1lXFxcIikrYFxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYCtzdG9yYWdlMC5nZXRJdGVtKFxcXCLmjpLluo/lj5jph49iXFxcIiwgXFxcImFzY1xcXCIpK2BcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCJ9YFxcblxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG5cXG5cXG7lsI/pvpnkupHor7fmsYJiPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIivor7fmsYLlj5jph49iXFxuICAgIOesrOS6jOasoeWTjeW6lD1wb3N0KOWwj+m+meS6keivt+axgmIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuICAgIFxcbiAgICBcXG5cXG4vL+WIl+ihqGLmmK/mlofku7bliJfooahcXG7liJfooahiPUpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICBcXG4gICAg5Zu+54mH5YiX6KGoPVtdXFxuICAgIOWbvueJh+WIl+ihqOWPmOmHjz0wXFxuICAgIFxcbiAgICBmb3IobGV0IGkgPSAwO2kgPCDliJfooahiLmxlbmd0aDtpKyspe1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0uZmlsZU5hbWVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIFxcbiAgICAgICAgaWYoLyhqcGd8Z2lmfHBuZ3xqcGVnfHdlYnApJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxuXFxu5Zu+54mHPeeUn+aIkOebtOmTvihcXFwiaHR0cHM6Ly9pcGZzZ3cwMi5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCIs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7lm77niYfliJfooahb5Zu+54mH5YiX6KGo5Y+Y6YePXT3lm77niYdcXG7lm77niYfliJfooajlj5jph48rK1xcblxcbn1cXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgXFxuICAgIGlmKOWbvueJh+WIl+ihqC5sZW5ndGg8MSlyZXR1cm4gXFxcInRvYXN0Oi8v5rKh6K+G5Yir5Yiw5Zu+54mHXFxcIlxcbiAgICBcXG4gICAgXFxuICAgIHJldHVybiBcXFwicGljczovL1xcXCIgK+WbvueJh+WIl+ihqC5qb2luKFxcXCImJlxcXCIpXFxuICAgIFxcblxcblxcblxcblxcblxcbn0saWQsSVBGU+WvhumSpSlcXG5cXG46XFxcImhpa2VyOi8vcGFnZS/mlofku7blpLkjbm9SZWNvcmRIaXN0b3J5IyNjYWNoZU9ubHkjP3BhZ2VUaXRsZT1cXFwiK+agh+mimCtcXFwiJue8k+WtmElEPVxcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIraWQsXFxuZXh0cmE66ZyA6KaB55So5oi3aWQmJuWIhuS6q+eUqOaIt2lkID975paH5Lu25aS55ZCNOuagh+mimCzmlofku7blpLlpZDppZCx1c2VyaWQ65YiG5Lqr55So5oi3aWQs6ZyA6KaB55So5oi3aWQ6XFxcIumcgOimgVxcXCIsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5a2Y6Iez572R55uYXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpPT57XFxuICAgICAgICBcXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpXFxuXFxuICAgICAgICBcXG4gICAgICAgIH0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCl9XX06e+aWh+S7tuWkueWQjTrmoIfpopgs5paH5Lu25aS5aWQ6aWQsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5paH5Lu25YiG5LqrXFxcIiwganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUsaWQs5qCH6aKYKT0+e1xcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIFxcbnJldHVybiAkKFtcXFwi5a6Y5pa55YiG5LqrLemcgOimgee7keWumuaJi+acuuWPt1xcXCIsXFxcIkNJROWIhuS6qy3ml6DpnIDnu5HlrprmiYvmnLrlj7dcXFwiXSwgMSwnNzU35ZOq56eN5YiG5Lqr5pa55byP77yfJykuc2VsZWN0KChJUEZT5a+G6ZKlLGlkLOagh+mimCkgPT4ge1xcbiAgICBcXG4gICAgXFxuICAgICBcXG5pZihpbnB1dD09XFxcIuWumOaWueWIhuS6qy3pnIDopoHnu5HlrprmiYvmnLrlj7dcXFwiKXtcXG4gICAgXFxuICAgIFxcbiAgICByZXR1cm4gJChcXFwiMFxcXCIsXFxcIuWIhuS6q+WkqeaVsCAw5Li65rC45LmFXFxcIikuaW5wdXQoKElQRlPlr4bpkqUsaWQs5qCH6aKYKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICDor7fmsYLliIbkuqvpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9jbG91ZC9zaGFyZVxcXCJcXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJzaGFyZURheXNcXFwiOmAraW5wdXQrYCxcXFwic2hhcmVDb250ZW50XFxcIjpcXFwiYCvmoIfpopgrYFxcXCIsXFxcImVuY3J5cHRDb2RlXFxcIjpcXFwiMFxcXCJ9YFxcbiAgICAgICAgXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5YiG5Lqr6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbmlmKOesrOS4gOasoeWTjeW6lC5pbmNsdWRlcyhcXFwi57uR5a6a5omL5py65Y+3XFxcIikpXFxucmV0dXJuICd0b2FzdDovL+acque7keWumuaJi+acuuWPt+aXoOazleWIhuS6qydcXG5cXG7liIbkuqvpk77mjqU9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEubGlua1xcbmNvcHkoJ+aWh+S7tuWQjTonK+agh+mimCsnXFxcXG4nKyfliIbkuqvpk77mjqU6JyvliIbkuqvpk77mjqUpXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5YiG5Lqr5oiQ5YqfIOW3suWkjeWItuWIhuS6q+mTvuaOpSdcXG4gICAgICAgICAgICAgICAgfSxJUEZT5a+G6ZKlLGlkLOagh+mimClcXG4gICAgXFxuICAgIFxcbn1lbHNlIGlmKGlucHV0PT1cXFwiQ0lE5YiG5LqrLeaXoOmcgOe7keWumuaJi+acuuWPt1xcXCIpe1xcbiAgICBcXG4gICAgXFxu5paH5Lu25aS5aWQ9aWRcXG7mlofku7blpLnlkI095qCH6aKYXFxuICAgICAgICAgICAgXFxuICAgICAgIFxcbuivt+axguWPmOmHj2EgPSBcXFwiL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcbuivt+axguWPmOmHj2IgPSBcXFwiL2Nsb3VkZmlsZS92MS9maWxlc1xcXCJcXG4gICAgICAgICAgICAgICAgXFxuXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcblxcblxcbiAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkuWlkK2BcXFwifWBcXG5cXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmEgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49hXFxuICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYSwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmIgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49iXFxuICAgICAgICAgICAgICAgIOesrOS6jOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWkueWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahhID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7bliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYiA9IEpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIHJldHVybiAkKFtcXFwi55u05o6l5aSN5Yi2Lea6kOaVsOaNrlxcXCIsXFxcIue9kee7nOmTvuaOpS3kupHlj6Pku6RcXFwiLFxcXCLlr7zlh7rmlofku7Yt5rqQ5paH5Lu2XFxcIl0sIDEsJ+WTquenjeWIhuS6q++8nycpLnNlbGVjdCgo5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlKSA9PiB7XFxuXFxuXFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLnm7TmjqXlpI3liLYt5rqQ5pWw5o2uXFxcIil7XFxuICAgIFxcbiAgICDlrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICDlrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpI3liLZcXFwiKVxcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi572R57uc6ZO+5o6lLeS6keWPo+S7pFxcXCIpe1xcbiAgICDlrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICDlrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpI3liLbkupHlj6Pku6RcXFwiKVxcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi5a+85Ye65paH5Lu2Lea6kOaWh+S7tlxcXCIpe1xcbiAgICDlrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICDlrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpI3liLblr7zlh7rmlofku7Yt5rqQ5paH5Lu2XFxcIilcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxufSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpXFxuXFxuXFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbiAgICBcXG5yZXR1cm4gJChcXFwi5rOo5oSPOuW9k+WJjeS4uuWIhuS6q+aWh+S7tuWkueS4i+eahOaWh+S7tkNJRFxcXFxu6Iul5paH5Lu26L+H5aSa6K+35L2/55So5paH5Lu25aSH5Lu95YaN5YiG5LqrXFxcIikuY29uZmlybSgoSVBGU+WvhumSpSxpZCzmoIfpopgpPT57XFxuICAgIFxcbiAgICBcXG4gICAgXFxufSxJUEZT5a+G6ZKlLGlkLOagh+mimClcXG4gICAgXFxuICAgIFxcbn1cXG4gICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbn0sSVBGU+WvhumSpSxpZCzmoIfpopgpXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAgXFxuICAgICAgIFxcbiAgICAgICAgfSxJUEZT5a+G6ZKlLGlkLOagh+mimCl9LHt0aXRsZTogXFxcIuaWh+S7tuWkh+S7vVxcXCIsIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLGlkLOagh+mimCk9PntcXG4gICAgICAgICAgICBcXG4gICBcXG4gICAgICAgICAgICBcXG7mlofku7blpLlpZD1pZFxcbuaWh+S7tuWkueWQjT3moIfpophcXG4gICAgICAgICAgICBcXG4gICAgICAgXFxu6K+35rGC5Y+Y6YePYSA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZvbGRlcnNcXFwiXFxu6K+35rGC5Y+Y6YePYiA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZpbGVzXFxcIlxcbiAgICAgICAgICAgICAgICBcXG5cXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCJ9YFxcblxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcblxcblxcblxcbiAgICBcXG5yZXR1cm4gY29uZmlybSh7XFxudGl0bGU6J+mAieaLqeaPkOekuicsIFxcbmNvbnRlbnQ6J+ehruWumi3nm7TmjqXlrZjlhaXlpIfku73moLnnm67lvZVcXFxcbuWPlua2iC3pgInmi6nlrZjlhaXlpIfku73nmoTnm67lvZUnLCBcXG5cXG5jb25maXJtOiQudG9TdHJpbmcoKOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSkgPT4ge1xcbiAgICDlrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICDlrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpIfku71cXFwiKVxcblxcbiAgICBcXG4gICAgICAgICAgICAgICAgfSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpLFxcblxcbmNhbmNlbDokLnRvU3RyaW5nKCjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpID0+IHtcXG4gICAgXFxuICAgIFxcbiAgICBsZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoPVtdXFxuZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXT3lsI/pvpnkupHnm5jlpIfku73nm67lvZVbaV0uc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMV1cXG59XFxuXFxucmV0dXJuICQo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCAxLCfpnIDopoHlrZjlnKjlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSA9PiB7XFxuICAgIFxcbiAgICDngrnlh7vkvY3nva495aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcblxcbuWtmOWTqumHjD3lsI/pvpnkupHnm5jlpIfku73nm67lvZVb54K55Ye75L2N572uXS5yZXBsYWNlKCcwLmpzb24nLCcnKVxcblxcbiAgICBcXG4gICAgICAgIC8v5a2Y5ZOq6YeMPSdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8nXFxuICAgIFxcbiAgICBsZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wrJzAuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vTwxKXJldHVybiBcXFwidG9hc3Q6Ly/lpIfku73moLnnm67lvZXpg73msqHmnInmlofku7Yg5L2g6YCJ5oup5Liq5bGB55qE5paH5Lu25aS5XFxcIlxcblxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku7095bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGFcXG4gICAg5paH5Lu26Lev5b6EPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS7ot6/lvoRcXG4gICAg6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS7mlofku7blpLlcXG4gICAgXFxuICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgcmV0dXJuICQo6YCJ5oup5paH5Lu25aS55YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5aSH5Lu95paH5Lu25aS577yfJykuc2VsZWN0KCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5paH5Lu26Lev5b6ELOmAieaLqeaWh+S7tuWkueWIl+ihqCzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5a2Y5ZOq6YeMKSA9PiB7XFxuICAgICAgICBcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuICAgICAgIFxcbuWkh+S7veaVsOaNrj3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku71cXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCtpbnB1dFxcblxcblxcbmlmKGlucHV0PT1cXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcbmlmKGlucHV0PT1cXFwiMFxcXCIpICDmlofku7bot6/lvoQ9XFxcIjBcXFwiIFxcbmVsc2Ug5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hC5yZXBsYWNlKOi3r+W+hOmXtOmalCtcXFwi5Yqg5YWl5q2k5aSEXFxcIiAsXFxcIlxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzmlofku7bot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpIfku71cXFwiKVxcblxcbn1lbHNle1xcblxcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcblxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuICAgICAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mAieaLqeWkh+S7veaWh+S7tui3r+W+hCcpKS5ydWxlKVxcblxcblxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcbiAgICAgICAgXFxuICAgICAgICB9XFxuXFxuICAgIH0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOaWh+S7tui3r+W+hCzpgInmi6nmlofku7blpLnliJfooags5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOWtmOWTqumHjCkgXFxuICAgIFxcbiAgICBcXG59LOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSAgICBcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICB9LOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSksXFxuXFxufSlcXG5cXG5cXG5cXG5cXG4vKlxcblxcbiovXFxuXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgfSxJUEZT5a+G6ZKlLGlkLOagh+mimCl9LHt0aXRsZTogXFxcIuaWh+S7tuivpuaDhVxcXCIsIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLGlkLOagh+mimCk9PntcXG4gICAgICAgXFxuICAgICAgICAgICAgICAgICAgICDor7fmsYLmlofku7blpLnor6bmg4U9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL2RldGFpbFxcXCJcXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiaWRcXFwiOlxcXCJgK2lkK2BcXFwifWBcXG4gICAgICAgIFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkueivpuaDhSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5cXG5cXG7mlbDmja49SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG5cXG7mlofku7bkuKrmlbA95pWw5o2uLnN1YkZpbGVzXFxu5paH5Lu25aS55Liq5pWwPeaVsOaNri5zdWJGb2xkZXJzXFxu5paH5Lu25aS55aSn5bCPPeaVsOaNri5zdWJGaWxlU2l6ZUZcXG5cXG5yZXR1cm4gYGNvbmZpcm06Ly/mlofku7bwn5OROmAr5paH5Lu25Liq5pWwK2BcXFxcbuaWh+S7tuWkufCfl4I6YCvmlofku7blpLnkuKrmlbArYFxcXFxu5aSn5bCP8J+SpTpgK+aWh+S7tuWkueWkp+WwjytgLmpzOid0b2FzdDovL/CfjJrwn4ya8J+MmidgXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5aSn5bCPOicr5paH5Lu25aS55aSn5bCPKycgIOaWh+S7tvCfk5E6Jyvmlofku7bkuKrmlbArJyAg5paH5Lu25aS58J+XgjonK+aWh+S7tuWkueS4quaVsFxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgIH0sSVBGU+WvhumSpSxpZCzmoIfpopgpfSx7dGl0bGU6IFxcXCLmlLnlkI1cXFwiLCBqczogJC50b1N0cmluZygoSVBGU+WvhumSpSzmoIfpopgsaWQs5paH5Lu25aS5aWQsZmlsZVR5cGUpPT57XFxuXFxuICAgICAgIHJldHVybiAkKOagh+mimCxcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKElQRlPlr4bpkqUsaWQs5paH5Lu25aS5aWQsZmlsZVR5cGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIOivt+axguaUueWQjemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZpbGVSZW5hbWVcXFwiXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcImlzRm9sZGVyXFxcIjowLFxcXCJyZW5hbWVcXFwiOlxcXCJgK2lucHV0K2BcXFwiLFxcXCJpZFxcXCI6XFxcImAraWQrYFxcXCIsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLlpZCtgXFxcIixcXFwiZmlsZVR5cGVcXFwiOmArZmlsZVR5cGUrYCxcXFwidG9rZW5cXFwiOlxcXCJgK0lQRlPlr4bpkqUrYFxcXCJ9YFxcbiAgICAgICAgXFxuXFxuXFxuXFxucG9zdCjor7fmsYLmlLnlkI3pk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbiAgICAgICAgICAgICAgICB9LElQRlPlr4bpkqUsaWQs5paH5Lu25aS5aWQsZmlsZVR5cGUpXFxuICAgICAgICB9LElQRlPlr4bpkqUs5qCH6aKYLGlkLOaWh+S7tuWkuWlkLGZpbGVUeXBlKX0se3RpdGxlOiBcXFwi56e75YqoXFxcIiwganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUs5qCH6aKYLGlkLOaWh+S7tuWkuWlkLGZpbGVUeXBlKT0+e1xcbnVzZXJpZD1cXFwi5pegXFxcIlxcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU9SVBGU+WvhumSpVxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aStcXFwiLlxcXCIr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgICAgICB9LElQRlPlr4bpkqUs5qCH6aKYLGlkLOaWh+S7tuWkuWlkLGZpbGVUeXBlKX0se3RpdGxlOiBcXFwi5Yig6ZmkXFxcIiwganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUsaWQpPT57XFxuXFxu6K+35rGC5Yig6Zmk6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9tb3ZlLXRvLXRyYXNoXFxcIlxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcblxcblxcbui6q+S9kz1ge1xcXCJmaWxlSWRzXFxcIjpbXFxcImAraWQrYFxcXCJdfWBcXG4gICAgICAgIFxcblxcblxcblxcbnBvc3Qo6K+35rGC5Yig6Zmk6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcbnJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgXFxucmV0dXJuICd0b2FzdDovL+WIoOmZpOaIkOWKnydcXG4gICAgICAgXFxuICAgICAgICB9LElQRlPlr4bpkqUsaWQpfV19LFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiKT09XFxcIua8q+eUu+aooeW8j1xcXCI/XFxcInRleHRfMlxcXCI6XFxcImF2YXRhclxcXCJcXG59KTtcXG59ZWxzZXtcXG5cXG7mlofku7bmoLzlvI895YiX6KGoW2ldLnN1ZmZpeFxcbuaWh+S7tkNJRD3liJfooahbaV0uZmlsZUNpZFxcbuaWh+S7tuWkp+Wwj+agvOW8j+WMlj1mb3JtYXRTaXplKOaWh+S7tuWkp+WwjylcXG7ljZXmlofku7bmlbDmja495YiX6KGoW2ldXFxuXFxuXFxuaWYo5paH5Lu2Q0lELmxlbmd0aDwxKeagh+mimD1cXFwi4p2MXFxcIivmoIfpophcXG5cXG5cXG5pZijmib7lm77niYfmraPliJkudGVzdCjmoIfpopgpKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMuanBnJ1xcbuagvOW8jz1cXFwiIy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxu5Zu+54mHPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG4vL+WbvueJhz3nlJ/miJDnm7Tpk74oXFxcImh0dHBzOi8vaXBmc2d3MDIuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiLOaWh+S7tkNJRCzmoIfpopgpXFxuXFxuXFxuXFxufWVsc2UgaWYo5om+6KeG6aKR5q2j5YiZLnRlc3Qo5qCH6aKYKSl7XFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcbuaWsOagvOW8jz0nI2lzVmlkZW89dHJ1ZSMnXFxu5qC85byPPVxcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbn1lbHNlIGlmKOaJvumfs+mikeato+WImS50ZXN0KOagh+mimCkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5tcDMnXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL2JhZmtyZWllNjNucWdpYXRwa3V4dmZmZWJ2Z2hkczdhb29wZGN4N2xpaXd0ajJxeXJqY2NoNjI1MmR1Iy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxu5Zu+54mHPemfs+S5kOaWh+S7tuWbvuagh1xcblxcbn1lbHNle1xcbumTvuaOpeWJjee8gD1cXFwiZG93bmxvYWQ6Ly9cXFwiXFxu5paw5qC85byPPVxcXCJcXFwiXFxu5qC85byPPVxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpZm9oZnp5YWpvNWkzNjdncHk1NXRsM2syNGluZmZ4ZHNxd2xmZTRsY2JmNmQ0ZXJxYXVvZUBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG7lm77niYc95YW25LuW5paH5Lu25Zu+5qCHXFxufVxcblxcbumTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK+aWsOagvOW8j1xcblxcbue6v+i3rzE9XFxcImh0dHBzOi8vaXBmc2d3MDEuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMj1cXFwiaHR0cHM6Ly9pcGZzZ3cwMi5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68zPVxcXCJodHRwczovL2lwZnNndzAzLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzQ9XFxcImh0dHBzOi8vaXBmc2d3MDQuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevNT1cXFwiaHR0cHM6Ly9pcGZzZ3cwNS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG5cXG5cXG5cXG7pk77mjqXlkI7nvIA95paH5Lu2Q0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK1xcXCJcXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIivmlrDmoLzlvI9cXG5cXG5cXG5cXG7mlrDpk77mjqU955Sf5oiQ55u06ZO+KOe6v+i3rzIs5paH5Lu2Q0lELOagh+mimCkr5paw5qC85byPXFxuXFxuXFxuLy/mlrDpk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20mJlxcXCIr5paw5qC85byPXFxuXFxuLy/mlrDpk77mjqU9XFxcImh0dHA6Ly8xMTEuMTgwLjIwNC4xMDg6ODA4MC9pcGZzL1xcXCIr5paH5Lu2Q0lEK+aWsOagvOW8j1xcblxcblxcbi8v5aSa57q/6Lev6ZO+5o6lPVvpk77mjqUs57q/6LevNCvpk77mjqXlkI7nvIAs57q/6LevMyvpk77mjqXlkI7nvIAs57q/6LevMyvpk77mjqXlkI7nvIAs57q/6LevMSvpk77mjqXlkI7nvIBdXFxuXFxuLy/mnKrnn6Xnur/ot689XFxcImh0dHA6Ly8xMTEuMTgwLjIwNC4xMDg6ODA4MC9pcGZzL1xcXCIr5paH5Lu2Q0lEXFxu6ZO+5o6lNT3nlJ/miJDnm7Tpk74o57q/6LevNSzmlofku7ZDSUQs5qCH6aKYKVxcbumTvuaOpTQ955Sf5oiQ55u06ZO+KOe6v+i3rzQs5paH5Lu2Q0lELOagh+mimClcXG7pk77mjqUzPeeUn+aIkOebtOmTvijnur/ot68zLOaWh+S7tkNJRCzmoIfpopgpXFxu6ZO+5o6lMj3nlJ/miJDnm7Tpk74o57q/6LevMizmlofku7ZDSUQs5qCH6aKYKVxcbumTvuaOpTE955Sf5oiQ55u06ZO+KOe6v+i3rzEs5paH5Lu2Q0lELOagh+mimClcXG5cXG7lpJrnur/ot6/pk77mjqU9W+mTvuaOpTUr5paw5qC85byPLOmTvuaOpTQr5paw5qC85byPLOmTvuaOpTMr5paw5qC85byPLOmTvuaOpTIr5paw5qC85byPLOmTvuaOpTEr5paw5qC85byPLOmTvuaOpV1cXG5cXG5cXG5cXG7ml6DmoLzlvI/lkI7nvIA95paH5Lu2Q0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK1xcXCJcXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIlxcblxcbuWkjeWItuebtOmTvj1b6ZO+5o6lK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLOmTvuaOpTUs6ZO+5o6lNCzpk77mjqUzLOmTvuaOpTIs6ZO+5o6lMV1cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydSZWZlcmVyJzog6ZO+5o6lNX0sIHsnUmVmZXJlcic6IOmTvuaOpTR9LCB7J1JlZmVyZXInOiDpk77mjqUzfSwgeydSZWZlcmVyJzog6ZO+5o6lMn0sIHsnUmVmZXJlcic6IOmTvuaOpTF9LHsnUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfV0sbmFtZXM6Wyfnur/ot681Jywn57q/6LevNCcsJ+e6v+i3rzMnLCfnur/ot68yJywn57q/6LevMScsJ+WklumTviddfVxcblxcbi8v5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog6ZO+5o6lNH0sIHsnUmVmZXJlcic6IOmTvuaOpTN9LCB7J1JlZmVyZXInOiDpk77mjqUyfSwgeydSZWZlcmVyJzog6ZO+5o6lMX0seydSZWZlcmVyJzog5pyq55+l57q/6LevfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJywn5pyq55+l57q/6LevJ119XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxuZGVzYzrmlofku7blpKflsI/moLzlvI/ljJYsXFxucGljX3VybDrlm77niYcsXFxudXJsOuaWh+S7tkNJRCtcXFwiJiZcXFwiK+agh+mimCtDSUTpk77mjqXop6PmnpAsXFxuZXh0cmE65YiG5Lqr55So5oi3aWQgP3tpZDppZCx1c2VyaWQ65YiG5Lqr55So5oi3aWQs6ZyA6KaB55So5oi3aWQ6XFxcIumcgOimgVxcXCIsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5a2Y6Iez572R55uYXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSxpZCzliIbkuqvnlKjmiLdpZCk9PntcXG4gICAgICAgdXNlcmlkPeWIhuS6q+eUqOaIt2lkXFxuICAgICAgICBcXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG4gICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZClcXG5cXG4gICAgICAgIFxcbiAgICAgICAgfSzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQs5YiG5Lqr55So5oi3aWQpfV19OntpZDppZCxsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLmlofku7bliIbkuqtcXFwiLCBqczogJC50b1N0cmluZygoSVBGU+WvhumSpSxpZCzmoIfpopgs5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPLOaWh+S7tuWkueWQjSk9PntcXG4gICAgICAgICAgICBcXG5yZXR1cm4gJChbXFxcIuWumOaWueWIhuS6qy3pnIDopoHnu5HlrprmiYvmnLrlj7dcXFwiLFxcXCJDSUTliIbkuqst5peg6ZyA57uR5a6a5omL5py65Y+3XFxcIl0sIDEsJzY1NuWTquenjeWIhuS6q+aWueW8j++8nycpLnNlbGVjdCgoSVBGU+WvhumSpSxpZCzmoIfpopgs5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPLOaWh+S7tuWkueWQjSkgPT4ge1xcbiAgICBcXG4gICAgaWYoaW5wdXQ9PVxcXCLlrpjmlrnliIbkuqst6ZyA6KaB57uR5a6a5omL5py65Y+3XFxcIil7XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKFxcXCIwXFxcIixcXFwi5YiG5Lqr5aSp5pWwIDDkuLrmsLjkuYVcXFwiKS5pbnB1dCgoSVBGU+WvhumSpSxpZCzmoIfpopgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIOivt+axguWIhuS6q+mTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL3NoYXJlXFxcIlxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJpZHNcXFwiOltcXFwiYCtpZCtgXFxcIl0sXFxcInNoYXJlRGF5c1xcXCI6YCtpbnB1dCtgLFxcXCJzaGFyZUNvbnRlbnRcXFwiOlxcXCJgK+agh+mimCtgXFxcIixcXFwiZW5jcnlwdENvZGVcXFwiOlxcXCIwXFxcIn1gXFxuICAgICAgICBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLliIbkuqvpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuaWYo56ys5LiA5qyh5ZON5bqULmluY2x1ZGVzKFxcXCLnu5HlrprmiYvmnLrlj7dcXFwiKSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5pyq57uR5a6a5omL5py65Y+35peg5rOV5YiG5LqrJ1xcblxcbuWIhuS6q+mTvuaOpT1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5saW5rXFxuXFxuY29weSgn5paH5Lu25ZCNOicr5qCH6aKYKydcXFxcbicrJ+WIhuS6q+mTvuaOpTonK+WIhuS6q+mTvuaOpSlcXG4gICAgICAgIFxcbnJldHVybiAndG9hc3Q6Ly/liIbkuqvmiJDlip8g5bey5aSN5Yi25YiG5Lqr6ZO+5o6lJ1xcblxcblxcblxcbiAgICAgICAgICAgICAgICB9LElQRlPlr4bpkqUsaWQs5qCH6aKYKVxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICB9ZWxzZSBpZihpbnB1dD09XFxcIkNJROWIhuS6qy3ml6DpnIDnu5HlrprmiYvmnLrlj7dcXFwiKXtcXG4gICAgICAgIFxcbiAgICAgICAg5pWw5o2uPWB7XFxcIuWkh+S7veaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWkh+S7vVxcXCIsXFxcImRhdGFcXFwiOiBbe1xcXCLlpIfku73ml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLot6/lvoRcXFwiOiBcXFwiMFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOlt7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAr5paH5Lu2Q0lEK2BcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCJgK+agh+mimCtgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCtmaWxlVHlwZStgXFxcIixcXFwi5paH5Lu25aSn5bCPXFxcIjpcXFwiYCvmlofku7blpKflsI8rYFxcXCJ9XX1dfWBcXG4gICAgICAgICAgICBcXG4gICAgICAgICAgICBcXG5cXG4gICAgICAgcmV0dXJuIGNvcHko5pWw5o2uKVxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICB9XFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbn0sSVBGU+WvhumSpSxpZCzmoIfpopgs5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPLOaWh+S7tuWkueWQjSlcXG4gICAgICAgICAgICBcXG4gICAgICAgXFxuICAgICAgICB9LElQRlPlr4bpkqUsaWQs5qCH6aKYLOaWh+S7tkNJRCzmoIfpopgsZmlsZVR5cGUs5paH5Lu25qC85byPLOaWh+S7tuWkp+Wwjyzmlofku7blpLnlkI0pfSx7dGl0bGU6IFxcXCLmlofku7blpIfku71cXFwiLCBqczogJC50b1N0cmluZygo5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPLOaWh+S7tuWkueWQjSzljZXmlofku7bmlbDmja4sSVBGU+WvhumSpSk9PntcXG4gICAgICAgICAgICBcXG4gICAgICAgICAgICBcXG7mlbDmja49YHtcXFwi5paH5Lu2Q0lEXFxcIjpcXFwiYCvmlofku7ZDSUQrYFxcXCIsXFxcIuaWh+S7tuWQjVxcXCI6XFxcImAr5qCH6aKYK2BcXFwiLFxcXCLmlofku7bmoLzlvI9cXFwiOlxcXCJgK2ZpbGVUeXBlK2BcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCJgK+aWh+S7tuWkp+WwjytgXFxcIn1gXFxuXFxu5YiX6KGoYT1bXVxcbuWIl+ihqGI9W+WNleaWh+S7tuaVsOaNrl1cXG5cXG5cXG5yZXR1cm4gY29uZmlybSh7XFxudGl0bGU6J+mAieaLqeaPkOekuicsIFxcbmNvbnRlbnQ6J+ehruWumi3nm7TmjqXlrZjlhaXlpIfku73moLnnm67lvZVcXFxcbuWPlua2iC3pgInmi6nlrZjlhaXlpIfku73nmoTnm67lvZUnLCBcXG5cXG5jb25maXJtOiQudG9TdHJpbmcoKOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSkgPT4ge1xcbiAgICDlrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICDlrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpIfku71cXFwiKVxcblxcbiAgICBcXG4gICAgICAgICAgICAgICAgfSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpLFxcblxcbmNhbmNlbDokLnRvU3RyaW5nKCjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpID0+IHtcXG4gICAgXFxuICAgIFxcbiAgICBsZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoPVtdXFxuZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXT3lsI/pvpnkupHnm5jlpIfku73nm67lvZVbaV0uc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMV1cXG59XFxuXFxucmV0dXJuICQo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCAxLCfpnIDopoHlrZjlnKjlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSA9PiB7XFxuICAgIFxcbiAgICDngrnlh7vkvY3nva495aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcblxcbuWtmOWTqumHjD3lsI/pvpnkupHnm5jlpIfku73nm67lvZVb54K55Ye75L2N572uXS5yZXBsYWNlKCcwLmpzb24nLCcnKVxcblxcbiAgICBcXG4gICAgICAgIC8v5a2Y5ZOq6YeMPSdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8nXFxuICAgIFxcbiAgICBsZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wrJzAuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vTwxKXJldHVybiBcXFwidG9hc3Q6Ly/lpIfku73moLnnm67lvZXpg73msqHmnInmlofku7Yg5L2g6YCJ5oup5Liq5bGB55qE5paH5Lu25aS5XFxcIlxcblxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku7095bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGFcXG4gICAg5paH5Lu26Lev5b6EPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS7ot6/lvoRcXG4gICAg6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS7mlofku7blpLlcXG4gICAgXFxuICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgcmV0dXJuICQo6YCJ5oup5paH5Lu25aS55YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5aSH5Lu95paH5Lu25aS577yfJykuc2VsZWN0KCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5paH5Lu26Lev5b6ELOmAieaLqeaWh+S7tuWkueWIl+ihqCzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5a2Y5ZOq6YeMKSA9PiB7XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICAgICBcXG7lpIfku73mlbDmja495bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9XFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQraW5wdXRcXG5cXG5cXG5pZihpbnB1dD09XFxcIuWKoOWFpeatpOWkhFxcXCIpIHtcXG5cXG5pZihpbnB1dD09XFxcIjBcXFwiKSAg5paH5Lu26Lev5b6EPVxcXCIwXFxcIiBcXG5lbHNlIOaWh+S7tui3r+W+hD3mlofku7bot6/lvoQucmVwbGFjZSjot6/lvoTpl7TpmpQrXFxcIuWKoOWFpeatpOWkhFxcXCIgLFxcXCJcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxucmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5paH5Lu26Lev5b6ELOWtmOWTqumHjCxcXFwi5aSH5Lu9XFxcIilcXG5cXG59ZWxzZXtcXG5cXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbumAieaLqeaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG5cXG4gICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQnKSkucnVsZSlcXG5cXG5cXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG4gICAgICAgIFxcbiAgICAgICAgfVxcblxcbiAgICB9LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzmlofku7bot6/lvoQs6YCJ5oup5paH5Lu25aS55YiX6KGoLOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjlk6rph4wpIFxcbiAgICBcXG4gICAgXFxufSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSkgICAgXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgfSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUpLFxcblxcbn0pXFxuXFxuICAgICAgICAgICAgXFxuXFxuICAgICAgIHJldHVybiBjb3B5KOaVsOaNrilcXG4gICAgICAgIH0s5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPLOaWh+S7tuWkueWQjSzljZXmlofku7bmlbDmja4sSVBGU+WvhumSpSl9LHt0aXRsZTogXFxcIuaPkOWPluebtOmTvlxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlpI3liLbnm7Tpk74pPT57XFxuXFxuXFxucmV0dXJuICQoW1xcXCLnm7TmjqXkuIvovb1cXFwiLFxcXCLlpI3liLbnm7Tpk75cXFwiXSwgMSwn5LuA5LmI5pON5L2c77yfJykuc2VsZWN0KCjlpI3liLbnm7Tpk74pID0+IHtcXG4gICAgXFxuICAgIGlmKGlucHV0PT1cXFwi55u05o6l5LiL6L29XFxcIil7XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWkjeWItuebtOmTviwgMiwn5LiL6L295ZOq5Liq57q/6Lev77yfJykuc2VsZWN0KCgpID0+IHtcXG4gICAgICAgICAgIHJldHVybiBcXFwiZG93bmxvYWQ6Ly9cXFwiK2lucHV0XFxuICAgICAgICAgICBcXG4gICAgICAgICAgIH0pXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICB9ZWxzZSBpZihpbnB1dD09XFxcIuWkjeWItuebtOmTvlxcXCIpe1xcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlpI3liLbnm7Tpk74sIDIsJ+WkjeWItuWTquS4que6v+i3r++8nycpLnNlbGVjdCgoKSA9PiB7XFxuICAgICAgICAgICByZXR1cm4gY29weShpbnB1dClcXG4gICAgICAgICAgIFxcbiAgICAgICAgICAgfSlcXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgXFxuICAgIFxcbiAgICB9LOWkjeWItuebtOmTvilcXG5cXG5cXG5cXG4gICAgICAgXFxuICAgICAgICB9LOWkjeWItuebtOmTvil9LHt0aXRsZTogXFxcIuaUueWQjVxcXCIsIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLOagh+mimCxpZCzmlofku7bmoLzlvI8s5paH5Lu25aS5aWQsZmlsZVR5cGUpPT57XFxuXFxuICAgICAgIHJldHVybiAkKOagh+mimCxcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKElQRlPlr4bpkqUsaWQs5paH5Lu25qC85byPLOaWh+S7tuWkuWlkLGZpbGVUeXBlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICDor7fmsYLmlLnlkI3pk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9maWxlUmVuYW1lXFxcIlxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcblxcblxcbui6q+S9kz1ge1xcXCJpc0ZvbGRlclxcXCI6MCxcXFwicmVuYW1lXFxcIjpcXFwiYCtpbnB1dCtgXFxcIixcXFwiaWRcXFwiOlxcXCJgK2lkK2BcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCIsXFxcImZpbGVUeXBlXFxcIjpgK2ZpbGVUeXBlK2AsXFxcInRva2VuXFxcIjpcXFwiYCtJUEZT5a+G6ZKlK2BcXFwifWBcXG4gICAgICAgIFxcblxcblxcblxcbnBvc3Qo6K+35rGC5pS55ZCN6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcbnJlZnJlc2hQYWdlKGZhbHNlKSAgXFxucmV0dXJuICd0b2FzdDovL+S/ruaUueaIkOWKnydcXG4gICAgICAgICAgICAgICAgfSxJUEZT5a+G6ZKlLGlkLOaWh+S7tuagvOW8jyzmlofku7blpLlpZCxmaWxlVHlwZSlcXG4gICAgICAgIH0sSVBGU+WvhumSpSzmoIfpopgsaWQs5paH5Lu25qC85byPLOaWh+S7tuWkuWlkLGZpbGVUeXBlKX0se3RpdGxlOiBcXFwi56e75YqoXFxcIiwganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUs5qCH6aKYLGlkLOaWh+S7tuagvOW8jyzmlofku7blpLlpZCxmaWxlVHlwZSk9PntcXG51c2VyaWQ9XFxcIuaXoFxcXCJcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPUlQRlPlr4bpkqVcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkrXFxcIi5cXFwiK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG4gICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbuaWh+S7tuWkueWIl+ihqGlkPVxcXCIwXFxcIlxcbueJueauimlkPVxcXCJcXFwiXFxu5biW5a2QaWQ9XFxcIlxcXCJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcblxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICAgICAgfSxJUEZT5a+G6ZKlLOagh+mimCxpZCzmlofku7bmoLzlvI8s5paH5Lu25aS5aWQsZmlsZVR5cGUpfSx7dGl0bGU6IFxcXCLliKDpmaRcXFwiLCBqczogJC50b1N0cmluZygoSVBGU+WvhumSpSxpZCk9PntcXG5cXG7or7fmsYLliKDpmaTpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL21vdmUtdG8tdHJhc2hcXFwiXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcImZpbGVJZHNcXFwiOltcXFwiYCtpZCtgXFxcIl19YFxcbiAgICAgICAgXFxuXFxuXFxuXFxucG9zdCjor7fmsYLliKDpmaTpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxucmV0dXJuICd0b2FzdDovL+WIoOmZpOaIkOWKnydcXG4gICAgICAgXFxuICAgICAgICB9LElQRlPlr4bpkqUsaWQpfV19LFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIilcXG59KTtcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuIFxcblxcbn1cXG5pZihzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiKT09XFxcIua8q+eUu+aooeW8j1xcXCIpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byPXFxcIiwgXFxcIuWIl+ihqOaooeW8j1xcXCIpO1xcblxcbn0gY2F0Y2ggKGUpIHtcXG5cXG5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOlxcXCI8c3Ryb25nPjxmb250IGNvbG9yPScjMUU5MEZGJz7ljrvorr7nva7mt7vliqDotKblj7fnhLblkI7mtY/op4joh6rlt7HkupHnm5jmlofku7bmmK/lkKbmnInpl67popjlho3mk43kvZzlhbbku5blip/og70g5LiN54S25oql6ZSZ5pCe5b6X5L2g6L2w6ZqG6ZqGPC9mcm9udD48L3N0cm9uZz5cXFwiLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbiAgICAgICAgfSk7XFxuXFxuXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueuoeeQhui0puWPt1wiLFwicGF0aFwiOlwi566h55CG6LSm5Y+3XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmxldCDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5ZCN56ewJyxcXG4gICAgZGVzYzogJ+Wkh+azqOmaj+S+v+WhqycsXFxuICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge30pLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcignbmFtZScsICcnKSxcXG4gICAgICAgIG9uQ2hhbmdlOiAncHV0TXlWYXIoXFxcIm5hbWVcXFwiLGlucHV0KSdcXG4gICAgfVxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn6LSm5Y+3KOWvhumSpSknLFxcbiAgICBkZXNjOiAn5b+F6aG75aGr5bCP6b6Z5LqR55uY5a+G6ZKlJyxcXG4gICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7fSksXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCd1c2Vya2V5JywgJycpLFxcbiAgICAgICAgb25DaGFuZ2U6ICdwdXRNeVZhcihcXFwidXNlcmtleVxcXCIsaW5wdXQpJ1xcbiAgICB9XFxufSk7XFxuXFxuXFxuZnVuY3Rpb24gc2F2ZVN1YigpIHtcXG4gICAgbGV0IGFfbmFtZSA9IGdldE15VmFyKCduYW1lJywgJycpLnRyaW0oKTtcXG4gICAgbGV0IGFfdXNlciA9IGdldE15VmFyKCd1c2Vya2V5JywgJycpLnRyaW0oKTtcXG5cXG5cXG5cXG4gICAgaWYgKCFhX25hbWUgfHwgIWFfdXNlcikge1xcbiAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/oeaBr+S4jeWujOaVtCEnXFxuICAgIH1cXG5cXG5cXG4gICAgbGV0IOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuICAgIGxldCBpZGV4ID0g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmZpbmRJbmRleChpdCA9PiBpdC5uYW1lID09PSBhX25hbWUpO1xcbiAgICBpZiAoaWRleCA+IC0xKSB7XFxuICAgICAgICBpZiAo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lkZXhdLnVzZXIgIT09IGFfdXNlcikge1xcblxcbiAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS51c2VyID0gYV91c2VyO1xcbiAgICAgICAgICAgIHJldHVybiAkKCfmo4DmtYvliLDmnKzlnLDmnInph43lpI3nmoQnICsgYV9uYW1lICsgJyzmmK/lkKbopobnm5Y/JykuY29uZmlybSgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSA9PiB7XFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+S6kem+meS6keebmOWvhumSpSksIDApO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7Lkv53lrZgnXFxuICAgICAgICAgICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5rKh5pyJ5pON5L2cJ1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxudHJ5IHtcXG7nmbvlvZXmlbDmja495bCP6b6Z5LqR55uY55m75b2VKGFfdXNlcilcXG7nm7Tpk77lr4bpkqU95bCP6b6Z5LqR55uY55u06ZO+5a+G6ZKlKGFfdXNlcilcXG5cXG7nlKjmiLfmlbDmja49e1xcbiAgICAgICAgICAgIG5hbWU6IGFfbmFtZSxcXG4gICAgICAgICAgICB1c2VyOiBhX3VzZXIsXFxuXFxcIuebtOmTvuWvhumSpVxcXCI655u06ZO+5a+G6ZKlLktleSxcXG5cXFwi56S+5Lqk55So5oi35ZCNXFxcIjrnmbvlvZXmlbDmja4ubmlja25hbWUsXFxuXFxcIuekvuS6pOWktOWDj0NJRFxcXCI655m75b2V5pWw5o2uLmltZyxcXG5cXFwi56S+5LqkSURcXFwiOueZu+W9leaVsOaNri5pZFxcbiAgICAgICAgfVxcblxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLnB1c2go55So5oi35pWw5o2uKTtcXG5cXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCJjdXJJdGVtXFxcIiznlKjmiLfmlbDmja4pXFxuXFxufSBjYXRjaCAoZSkge1xcbiAgICByZXR1cm4gJ3RvYXN0Oi8v5YaN5Lmx5re75Yqg77yM5oiR5o225q275L2gJ1xcbn1cXG5cXG4gICAgICAgIHNhdmVGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+S6kem+meS6keebmOWvhumSpSksIDApO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suS/neWtmCdcXG4gICAgfVxcblxcbn1cXG5cXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+aWsOWinui0puWPtycsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIixcXG4gICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChzYXZlU3ViKSA9PiB7XFxuICAgICAgICBsZXQgdGlwcyA9IHNhdmVTdWIoKTtcXG4gICAgICAgIGNsZWFyTXlWYXIoXFxcIm5hbWVcXFwiKTtcXG4gICAgICAgIGNsZWFyTXlWYXIoXFxcInVzZXJrZXlcXFwiKTtcXG5cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuIHRpcHNcXG4gICAgfSwgc2F2ZVN1YilcXG59KTtcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+abtOWkmuaTjeS9nCcsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIixcXG4gICAgdXJsOiAkKFtcXFwi5LiA6ZSu5Yib5bu66LSm5Y+3XFxcIiwgXFxcIuS4gOmUruWvvOWHuui0puWPt1xcXCJdLCAyLCAn6ZyA6KaB5LiA6ZSu5LuA5LmI5pON5L2c77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsIHNhdmVTdWIpID0+IHtcXG5cXG4gICAgICAgIGlmIChpbnB1dCA9PSBcXFwi5LiA6ZSu5Yib5bu66LSm5Y+3XFxcIikge1xcblxcbiAgICAgICAgICAgIHJldHVybiAkKFxcXCJcXFwiLCBcXFwi5aSH5rOoXFxcIikuaW5wdXQoKHNhdmVTdWIpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAg5paw5bu65a+G6ZKl6K+35rGCID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEvdXNlci9yZWdpc3RlclxcXCJcXG5cXG4gICAgICAgICAgICAgICAg5aS06YOoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcIlJlZmVyZXJcXFwiOiBcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcInBlZXJJZFxcXCI6XFxcIlxcXCJ9YFxcblxcbiAgICAgICAgICAgICAgICDnrKzkuIDmrKHlk43lupQgPSBwb3N0KOaWsOW7uuWvhumSpeivt+axgiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuXFxuICAgICAgICAgICAgICAgIOWvhumSpSA9IEpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLnRva2VuXFxuXFxuXFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJuYW1lXFxcIiwgaW5wdXQpXFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJ1c2Vya2V5XFxcIiwg5a+G6ZKlKVxcblxcbiAgICAgICAgICAgICAgICBsZXQgdGlwcyA9IHNhdmVTdWIoKTtcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIHJldHVybiB0aXBzXFxuXFxuXFxuICAgICAgICAgICAgfSwgc2F2ZVN1YilcXG5cXG4gICAgICAgIH0gZWxzZSB7XFxuXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+i/mOayoeWBmidcXG5cXG5cXG5cXG4gICAgICAgIH1cXG5cXG5cXG4gICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBzYXZlU3ViKVxcbn0pO1xcblxcblxcblxcbuWwj+S6kem+meS6keebmOWvhumSpS5mb3JFYWNoKChpdCwgaWRleCkgPT4ge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGl0Lm5hbWUsXFxuICAgICAgICBkZXNjOiBpdC51c2VyICsgKGl0LmlzTG9jYWwgPyAnXFxcXG7mnKzlnLDliJfooajmqKHlvI/vvIzlhbHmnInmnKzlnLDmlbDmja7mnaHmlbDvvJonICsgSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9jYWNoZS8nICsgaXQubmFtZSArICcuanNvbicpIHx8ICdbXScpLmxlbmd0aCA6ICcnKSxcXG4gICAgICAgIHVybDogJChbJ+e9rumhticsICfliKDpmaQnLCAn5L+u5pS55aSH5rOoJywgJ+S/ruaUueWvhumSpScsICflm57mlLbnq5knLCAn5b6F5byA5Y+RJ10sIDIsICfor7fpgInmi6kx5Liq5pON5L2cJykuc2VsZWN0KChpdCwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZGV4KSA9PiB7XFxuICAgICAgICAgICAgaWYgKGlucHV0ID09PSAn572u6aG2Jykge1xcbiAgICAgICAgICAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqUuc3BsaWNlKGlkZXgsIDEpO1xcbiAgICAgICAgICAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqUudW5zaGlmdChpdCk7XFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+S6kem+meS6keebmOWvhumSpSksIDApO1xcblxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ+WIoOmZpCcpIHtcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJChcXFwiXFxcIiwgXFxcIjQ3KzE2XFxcIikuaW5wdXQoKOWwj+S6kem+meS6keebmOWvhumSpSxpZGV4KSA9PiB7XFxuXFxuaWYoaW5wdXQ9PVxcXCI2M1xcXCIpe1xcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgbG9nKHN0b3JhZ2UwLmdldEl0ZW0oXFxcImN1ckl0ZW1cXFwiLCB7fSkpXFxuICAgICAgICAgICAgICAgIGlmIChzdG9yYWdlMC5nZXRJdGVtKFxcXCJjdXJJdGVtXFxcIiwge30pLm5hbWUgPT09IOWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS5uYW1lKSB7XFxuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCJjdXJJdGVtXFxcIiwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlWzBdKTtcXG4gICAgICAgICAgICAgICAgICAgIGNsZWFySXRlbSjlsI/kupHpvpnkupHnm5jlr4bpkqVbaWRleF0ubmFtZSlcXG4gICAgICAgICAgICAgICAgICAgIFxcblxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpS5zcGxpY2UoaWRleCwgMSk7XFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+S6kem+meS6keebmOWvhumSpSksIDApO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxufVxcbnJldHVybiAndG9hc3Q6Ly/lj5bmtojliKDpmaQnXFxuXFxufSzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWRleClcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ+S/ruaUueWkh+azqCcpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoaXQubmFtZSwgJ+e7meatpOi0puWPt+aUueS4quWQjeWtl+WQpycpLmlucHV0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsIGlkZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lkZXhdLm5hbWUgPSBpbnB1dDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/kupHpvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/ruaUueaIkOWKnydcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/ruaUueWksei0pSdcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZGV4KTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09PSAn5L+u5pS55a+G6ZKlJykge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJChpdC51c2VyLCAn5paw5a+G6ZKl5piv5aSa5bCRPycpLmlucHV0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsIGlkZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lkZXhdLnVzZXIgPSBpbnB1dDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/kupHpvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/ruaUueaIkOWKnydcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/ruaUueWksei0pSdcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZGV4KTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09PSAn5Zue5pS256uZJykge1xcbiAgICAgICAgICAgICAgICBsb2co5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS/lm57mlLbnq5k/dG9rZW49JyArIOWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS51c2VyXFxuXFxuXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ+aVsOaNruWkh+S7vScpIHtcXG5cXG5cXG7lpIfku73mlofku7blkI09XFxcIuWwj+m+meS6keebmOi0puWPt+aAu+Wkh+S7vShcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS5uYW1lK1xcXCIpXFxcIlxcblxcbuWtmOWTqumHjD0naGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti8nK+Wkh+S7veaWh+S7tuWQjSsnLydcXG5cXG5yZXR1cm4gJCjlpIfku73mlofku7blkI0sIFxcXCLlpIfku73mlofku7blkI1cXFwiKS5pbnB1dCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkZXgs5a2Y5ZOq6YeMKSA9PiB7XFxuXFxuXFxu5paH5Lu26Lev5b6EPVxcXCIwXFxcIlxcbmxvZyjlrZjlk6rph4wpXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgIOivt+axguWPmOmHj2EgPSBcXFwiL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcbiAgICAgICAgICAgICAgICDor7fmsYLlj5jph49iID0gXFxcIi9jbG91ZGZpbGUvdjEvZmlsZXNcXFwiXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lkZXhdLnVzZXJcXG5JUEZT5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcbuWtmOaUvui3r+W+hD1cXFwiMFxcXCJcXG7mlofku7blpLnlkI09XFxcIuagueebruW9lVxcXCJcXG4gICAgXFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuICAgIFxcbnJldHVybiDljZXkuKrmlofku7blpLnlpIfku70o5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOWtmOaUvui3r+W+hCzlrZjlk6rph4wpXFxuXFxuXFxuXFxuXFxu5paH5Lu25pWw57uEPVtdXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYikge1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0uZmlsZU5hbWVcXG4gICAgICAgIOaWh+S7tuagvOW8jz3liJfooahiW2ldLmZpbGVUeXBlXFxuICAgICAgICDmlofku7ZDSUQ95YiX6KGoYltpXS5maWxlQ2lkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoYltpXS5maWxlU2l6ZVxcbiAgICAgICAganNvbuaVsOaNrj17XFxcIuaWh+S7tuWQjVxcXCI65paH5Lu25ZCNLFxcXCLmlofku7ZDSURcXFwiOuaWh+S7tkNJRCxcXFwi5paH5Lu25qC85byPXFxcIjrmlofku7bmoLzlvI8sXFxcIuaWh+S7tuWkp+Wwj1xcXCI65paH5Lu25aSn5bCPfVxcbiAgICAgICAg5paH5Lu25pWw57uEW2ldPWpzb27mlbDmja5cXG4gICAgICAgIFxcbiAgICB9XFxuICAgIOaWh+S7tuWkueaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgICAgIOaWh+S7tuWkueaVsOe7hFtpXT3liJfooahhW2ldLmZpbGVOYW1lXFxuICAgIH1cXG4gICAgXFxuXFxuXFxuXFxuXFxuXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiLOWIl+ihqGEpXFxu5paH5Lu25aS55YiX6KGoPeWIl+ihqGFcXG5cXG7mlofku7bliJfooag95YiX6KGoYlxcblxcbmRhdGE9W11cXG5cXG5kYXRh5Y+Y6YePPTBcXG5kYXRhW2RhdGHlj5jph49dPWRhdGFbZGF0YeWPmOmHj109SlNPTi5wYXJzZShge1xcXCLlpIfku73ml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLot6/lvoRcXFwiOlxcXCJgK+aWh+S7tui3r+W+hCtgXFxcIixcXFwi5paH5Lu25aS5XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuWkueaVsOe7hCkrYCxcXFwi5paH5Lu2XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuaVsOe7hCkrYH1gKVxcblxcblxcblxcbui3r+W+hOWxgue6p+WPmOmHjz0wXFxuXFxuXFxuZm9yICh2YXIgaSBpbiBzdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpKSB7XFxuXFxuXFxuXFxuXFxuXFxuXFxu5paH5Lu25aS55ZCNPXN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0uZmlsZU5hbWVcXG7mlofku7blpLlpZD1zdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpW2ldLmlkXFxuXFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCtcXFwiPlxcXCIr5paH5Lu25aS55ZCNXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOWkh+S7vTonK+aWh+S7tui3r+W+hClcXG5cXG4gICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJcXFwiLFxcXCJzb3J0RmxhZ1xcXCI6XFxcIm5hbWVcXFwiLFxcXCJzb3J0VHlwZVxcXCI6XFxcImFzY1xcXCIsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLlpZCtgXFxcIn1gXFxuXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJhID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYVxcbiAgICAgICAgICAgICAgICDnrKzkuIDmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmEsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJiID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYlxcbiAgICAgICAgICAgICAgICDnrKzkuozmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmIsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7blpLnliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYSA9IEpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGIgPSBKU09OLnBhcnNlKOesrOS6jOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuXFxuXFxu5paH5Lu25pWw57uEPVtdXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYikge1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0uZmlsZU5hbWVcXG4gICAgICAgIOaWh+S7tuagvOW8jz3liJfooahiW2ldLmZpbGVUeXBlXFxuICAgICAgICDmlofku7ZDSUQ95YiX6KGoYltpXS5maWxlQ2lkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoYltpXS5maWxlU2l6ZVxcbiAgICAgICAganNvbuaVsOaNrj17XFxcIuaWh+S7tuWQjVxcXCI65paH5Lu25ZCNLFxcXCLmlofku7ZDSURcXFwiOuaWh+S7tkNJRCxcXFwi5paH5Lu25qC85byPXFxcIjrmlofku7bmoLzlvI8sXFxcIuaWh+S7tuWkp+Wwj1xcXCI65paH5Lu25aSn5bCPfVxcbiAgICAgICAg5paH5Lu25pWw57uEW2ldPWpzb27mlbDmja5cXG4gICAgICAgIFxcbiAgICB9XFxuICAgIOaWh+S7tuWkueaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgICAgIOaWh+S7tuWkueaVsOe7hFtpXT3liJfooahhW2ldLmZpbGVOYW1lXFxuICAgIH1cXG4gICAgXFxuXFxuXFxuXFxuXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiLOWIl+ihqGEpXFxu5paH5Lu25YiX6KGoPeWIl+ihqGJcXG5cXG5cXG5kYXRh5Y+Y6YePKytcXG5kYXRhW2RhdGHlj5jph49dPUpTT04ucGFyc2UoYHtcXFwi5aSH5Lu95pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi6Lev5b6EXFxcIjpcXFwiYCvmlofku7bot6/lvoQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7blpLnmlbDnu4QpK2AsXFxcIuaWh+S7tlxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7bmlbDnu4QpK2B9YClcXG5cXG5cXG5cXG5cXG5cXG5pZijliJfooahhLmxlbmd0aDwxKSB7XFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdChcXFwiPlxcXCIpXFxuXFxuXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4oJz4nKVxcblxcblxcblxcblxcbmNvbnRpbnVlO1xcbn1lbHNle1xcbui3r+W+hOWxgue6p+WPmOmHjysrXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lvqrnjq/lpIfku70nKSkucnVsZSlcXG5cXG7ot6/lvoTliIflibI95paH5Lu26Lev5b6ELnNwbGl0KFxcXCI+XFxcIilcXG7ot6/lvoTliIflibIuc3BsaWNlKOi3r+W+hOWIh+WJsi5sZW5ndGgtMSwxKVxcblxcbuaWh+S7tui3r+W+hD3ot6/lvoTliIflibIuam9pbignPicpXFxuXFxufVxcblxcbn1cXG5cXG7otKblj7flpIfku73mlbDmja49YHtcXFwi5aSH5Lu95pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi6LSm5Y+35aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6YCtKU09OLnN0cmluZ2lmeShkYXRhKStgfWBcXG5cXG7lsI/pvpnkupHnm5jlpIfku73mlofku7Y9XFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC9cXFwiK+Wkh+S7veaWh+S7tuWQjStcXFwiLmpzb25cXFwiXFxuXFxuICBzYXZlRmlsZSjlsI/pvpnkupHnm5jlpIfku73mlofku7YsIOi0puWPt+Wkh+S7veaVsOaNriwgMCk7XFxuXFxuXFxubGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxu5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLnB1c2go5bCP6b6Z5LqR55uY5aSH5Lu95paH5Lu2KVxcbuWwj+m+meS6keebmOWkh+S7veebruW9lT3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcbnNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpLCAwKTtcXG5cXG5cXG5cXG5cXG5cXG5oaWRlTG9hZGluZygpXFxuXFxuXFxucmV0dXJuICd0b2FzdDovL+Wkh+S7veaIkOWKnydcXG5cXG5cXG5cXG59LOWwj+S6kem+meS6keebmOWvhumSpSxpZGV4LOWtmOWTqumHjClcXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICB9LCBpdCwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZGV4KSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaWRleDogaWRleCArICcnXFxuICAgICAgICB9XFxuICAgIH0pXFxufSk7XFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlrpjmlrnotYTmupAt5a+75om+6LWE5rqQXCIsXCJwYXRoXCI6XCLlr7vmib7otYTmupBcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcblxcbmlmKCFzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5LqkSUQpe1xcbmxvZyhcXFwi5LiN5a2Y5ZyoaWRcXFwiKVxcbueZu+W9leaVsOaNrj3lsI/pvpnkupHnm5jnmbvlvZUoc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIpXFxuXFxubG9nKOeZu+W9leaVsOaNri5uaWNrbmFtZSlcXG5cXG7npL7kuqTmlbDmja49e1xcXCLnpL7kuqTnlKjmiLflkI1cXFwiOueZu+W9leaVsOaNri5uaWNrbmFtZSxcXFwi56S+5Lqk5aS05YOPQ0lEXFxcIjrnmbvlvZXmlbDmja4uaW1nLFxcXCLnpL7kuqRJRFxcXCI655m75b2V5pWw5o2uLmlkfVxcblxcbmxvZyjnpL7kuqTmlbDmja4pXFxubGV0IOWwj+m+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgIOafpeaJvuS9jee9riA9IOWwj+m+meS6keebmOWvhumSpS5maW5kSW5kZXgoaXQgPT4gaXQudXNlciA9PT0gc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIpO1xcblxcbuWwj+m+meS6keebmOWvhumSpVvmn6Xmib7kvY3nva5dPU9iamVjdC5hc3NpZ24o5bCP6b6Z5LqR55uY5a+G6ZKlW+afpeaJvuS9jee9rl0s56S+5Lqk5pWw5o2uKVxcblxcblxcblxcblxcbnN0b3JhZ2UwLnNldEl0ZW0oJ2N1ckl0ZW0nLOWwj+m+meS6keebmOWvhumSpVvmn6Xmib7kvY3nva5dKVxcblxcbnNhdmVGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOWvhumSpSksIDApO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgdG9hc3QoXFxcIummluasoeiOt+WPluekvuS6pOS/oeaBr+aIkOWKn1xcXCIpXFxufSBcXG5cXG5pZighc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuebtOmTvuWvhumSpSl7XFxuXFxubG9nKFxcXCLkuI3lrZjlnKjnm7Tpk77lr4bpkqVcXFwiKVxcbuebtOmTvuWvhumSpT3lsI/pvpnkupHnm5jnm7Tpk77lr4bpkqUoc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIpXFxuXFxu55u06ZO+5a+G6ZKlPXtcXFwi55u06ZO+5a+G6ZKlXFxcIjrnm7Tpk77lr4bpkqUuS2V5fVxcblxcbmxvZyjnm7Tpk77lr4bpkqUpXFxubGV0IOWwj+m+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgIOafpeaJvuS9jee9riA9IOWwj+m+meS6keebmOWvhumSpS5maW5kSW5kZXgoaXQgPT4gaXQudXNlciA9PT0gc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIpO1xcblxcbuWwj+m+meS6keebmOWvhumSpVvmn6Xmib7kvY3nva5dPU9iamVjdC5hc3NpZ24o5bCP6b6Z5LqR55uY5a+G6ZKlW+afpeaJvuS9jee9rl0s55u06ZO+5a+G6ZKlKVxcblxcblxcblxcblxcbnN0b3JhZ2UwLnNldEl0ZW0oJ2N1ckl0ZW0nLOWwj+m+meS6keebmOWvhumSpVvmn6Xmib7kvY3nva5dKVxcblxcbnNhdmVGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOWvhumSpSksIDApO1xcbiAgICAgICAgdG9hc3QoXFxcIummluasoeiOt+WPluebtOmTvuWvhumSpeaIkOWKn1xcXCIpXFxuXFxuXFxuXFxuXFxufVxcblxcblxcbmxldCBwYWdlID0gTnVtYmVyKGdldE15VmFyKFxcXCJwYWdlXFxcIiwgXFxcIjBcXFwiKSkgKyBNWV9QQUdFO1xcblxcbklQRlPlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7liIbnsbtpZD1nZXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjFcXFwiKVxcblxcbmlmKHBhZ2U9PTEpe1xcblxcblxcbmQucHVzaCh7XFxudGl0bGU6c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pOeUqOaIt+WQjSxcXG5waWNfdXJsOlxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIitzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5Lqk5aS05YOPQ0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+WPkeW4luiusOW9lT9wYWdlPWZ5cGFnZVxcXCIrICcjaW1tZXJzaXZlVGhlbWUjJyxcXG5leHRyYTp7aWQ6c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEfSxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG59KVxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6XFxcIuWPkeW4llxcXCIsXFxucGljX3VybDrlrpjmlrnotYTmupDpppbpobXlj5HluJblm77moIcsXFxuY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kXzRcXFwiXFxufSlcXG5cXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLmlLbol49cXFwiLFxcbnBpY191cmw65a6Y5pa56LWE5rqQ6aaW6aG15pS26JeP5Zu+5qCHLFxcbmNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF80XFxcIlxcbn0pXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLmkJzntKJcXFwiLFxcbiAgICBwaWNfdXJsOuWumOaWuei1hOa6kOmmlumhteaQnOe0ouWbvuaghyxcXG4gICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kXzRcXFwiLFxcbiAgICB1cmw6ICQoXFxcIlxcXCIsXFxcIuaQnOe0ouWFs+mUruivjVxcXCIpLmlucHV0KCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCLmkJzntKLlhbPplK7or41cXFwiLGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+aQnOe0ojonK2lucHV0XFxuICAgICAgICAgICAgICAgIH0pXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuadv+Wdl1xcXCIsXFxuICAgcGljX3VybDrlrpjmlrnotYTmupDpppbpobXmnb/lnZflm77moIcsXFxuICAgIGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF80XFxcIixcXG4gICAgdXJsOiAkKFtcXFwi5o6o6I2QXFxcIixcXFwi5Y+N6aaIXFxcIixcXFwi5b2x6KeGXFxcIixcXFwi5aix5LmQXFxcIixcXFwi5YW25LuWXFxcIixcXFwi5rGC54mHXFxcIl0sIDIsJ+mcgOimgeWcqOWTqumHjOaJvui1hOa6kO+8nycpLnNlbGVjdCgoKSA9PiB7XFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLmjqjojZBcXFwiKSBwdXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjFcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLlj43ppohcXFwiKSBwdXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjhcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLlvbHop4ZcXFwiKSBwdXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjJcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLlqLHkuZBcXFwiKSBwdXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjNcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLlhbbku5ZcXFwiKSBwdXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjdcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLmsYLniYdcXFwiKSBwdXRNeVZhcihcXFwiSVBGU+WumOaWuei1hOa6kOadv+Wdl2lkXFxcIiwgXFxcIjZcXFwiKVxcblxcblxcbnJlZnJlc2hQYWdlKCk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG5cXG59KVxcbn0pXFxufVxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbuWwj+m+meS6keivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZC1yZXNvdXJjZS92MS9hcnRpY2xlc1xcXCJcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG7ouqvkvZM9YHtcXG4gIFxcXCJwdWJsaXNoTW9kZVxcXCI6IDAsXFxuICBcXFwicGFnZVNpemVcXFwiOiAxMCxcXG4gIFxcXCJjb2xsZWN0U29ydFR5cGVcXFwiOiAwLFxcbiAgXFxcInRpdGxlXFxcIjogXFxcImArZ2V0TXlWYXIoXFxcIuaQnOe0ouWFs+mUruivjVxcXCIsXFxcIlxcXCIpK2BcXFwiLFxcbiAgXFxcInVzZXJOYW1lXFxcIjogXFxcIlxcXCIsXFxuICBcXFwidXNlcklkXFxcIjogXFxcIitzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5LqkSUQrXFxcIixcXG4gIFxcXCJwYWdlTnVtXFxcIjogYCtwYWdlK2AsXFxuICBcXFwicHVibGlzaFNvcnRUeXBlXFxcIjogMCxcXG4gIFxcXCJjb21tZW50U29ydFR5cGVcXFwiOiAwLFxcbiAgXFxcImNsaWNrU29ydFR5cGVcXFwiOiAwLFxcbiAgXFxcImxpa2VTb3J0VHlwZVxcXCI6IDAsXFxuICBcXFwiZG93bmxvYWRTb3J0VHlwZVxcXCI6IDAsXFxuICBcXFwiY2F0ZWdvcnlJZFxcXCI6IGAr5YiG57G7aWQrYFxcbn1gXFxuXFxuXFxuXFxuXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5bCP6b6Z5LqR6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcblxcblxcbuWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuXFxuaWYo5YiX6KGoLmxlbmd0aD4wKVxcbmZvciAodmFyIGkgaW4g5YiX6KGoKSB7XFxuICAgICAgICDmoIfpopg95YiX6KGoW2ldLnRpdGxlXFxuICAgICAgICDlhoXlrrk95YiX6KGoW2ldLmNvbnRlbnRcXG4gICAgICAgIGlkPeWIl+ihqFtpXS5pZFxcbiAgICAgICAg5Y+R5biW5Lq6PeWIl+ihqFtpXS5hdXRob3Iubmlja25hbWVcXG4gICAgICAgIOWPkeW4luS6umlkPeWIl+ihqFtpXS5hdXRob3IuaWRcXG4gICAgICAgIOWPkeW4luS6uuWktOWDj2lkPeWIl+ihqFtpXS5hdXRob3IuaW1nXFxuICAgICAgICDlj5HluJbml7bpl7Q9dGltZXN0YW1wVG9UaW1lKOWIl+ihqFtpXS5wdGltZSlcXG4gICAgICAgIOa1j+iniOmHjz3liJfooahbaV0uc2hvd051bVxcbiAgICAgICAg5Zue5aSN6YePPeWIl+ihqFtpXS5jb21tZW50TnVtXFxuICAgICAgICDngrnotZ7ph4895YiX6KGoW2ldLmxpa2VOdW1cXG4gICAgICAgIOi9rOWtmOmHjz3liJfooahbaV0uZG93bmxvYWROdW1cXG4gICAgICAgIOWbvueJh+mHjz3liJfooahbaV0uaW1hZ2VzLmxlbmd0aFxcblxcbiAgICBcXG7ljrvlub/lkYrmraPliJk9LyjotZrpkrF85YW86IGMfOWKoOmAn+WZqHx2cG586YKA6K+356CBfOaXoOW5v+WRiikvaVxcbmlmKOWOu+W5v+WRiuato+WImS50ZXN0KOWGheWuuSk9PWZhbHNlKXsgICAgICBcXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOuagh+mimCtgXFxcXG7igJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPScjNzU3NTc1Jz5gK+WGheWuuS5yZXBsYWNlKOagh+mimCwnJykucmVwbGFjZSgvXFxcXHMvZywnJykrYDwvZnJvbnQ+PC9zdHJvbmc+YCxcXG5waWNfdXJsOlxcXCJodHRwczovL3N0YXRpYy5teXBpa3Bhay5jb20vOGMzYzExNDg2MDQ5YjE3NDM0NTI2MjM2YTdlZDY1Nzg3N2I4NmFhM0BSZWZlcmVyPVxcXCIsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5biW5a2Q5LqM57qnXFxcIixcXG5kZXNjOifmtY/op4jph486JyvmtY/op4jph48rJyDlm57lpI3ph486Jyvlm57lpI3ph48rJyDovazlrZjph486JyvovazlrZjph48rJyDlm77niYfph486Jyvlm77niYfph48sXFxuZXh0cmE6e2lkOmlkfSxcXG5jb2xfdHlwZTogXFxcInRleHRfMVxcXCJcXG59KTtcXG5cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOuWPkeW4luS6uixcXG5waWNfdXJsOlxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivlj5HluJbkurrlpLTlg49pZCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG51cmw6XFxcImhpa2VyOi8vcGFnZS/lj5HluJborrDlvZU/cGFnZT1meXBhZ2VcXFwiKyAnI2ltbWVyc2l2ZVRoZW1lIycsXFxuZGVzYzpcXFwiIOWPkeW4luaXtumXtDpcXFwiK+WPkeW4luaXtumXtCxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsZXh0cmE6IHtpZDrlj5HluJbkurppZCxsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLmi4npu5FcXFwiLCBqczogJC50b1N0cmluZygo5Y+R5biW5Lq6aWQpPT57XFxuXFxuaWYoc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEPT3lj5HluJbkurppZCkgcmV0dXJuIFxcXCJ0b2FzdDovL+iHquW3seaLiem7keiHquW3se+8n1xcXCJcXG5cXG7mi4npu5Hor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWQtcmVzb3VyY2UvdjEvYWRkLWJsYWNrbGlzdFxcXCJcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG5cXG7ouqvkvZM9YHtcXFwidXNlcklkXFxcIjpcXFwiNTM3NTEyOTg5ODEzNjQxMjE2XFxcIixcXFwicmVmdXNlVXNlcklkc1xcXCI6W1xcXCJgK+WPkeW4luS6umlkK2BcXFwiXX1gXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5ouJ6buR6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5bey5ouJ6buRXFxcIlxcbiAgICBcXG4gIH0s5Y+R5biW5Lq6aWQpXFxufV19fSk7XFxuXFxuZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSk7XFxuXFxufVxcbiBcXG5cXG59XFxuZWxzZSB7Y2xlYXJNeVZhcign5pCc57Si5YWz6ZSu6K+NJyk7XFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi4oCc4oCc5Lul5LiK5Li65YWo6YOo5pCc57Si57uT5p6c77yM5LiK5ouJ5bCG5pi+56S65o6o6I2Q6LWE5rqQ4oCd4oCdXFxcIixcXG51cmw6XFxcInRvYXN0Oi8v54K55oiR5oiR5rKh5pyJXFxcIixcXG5jb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxufSk7XFxufVxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWumOaWuei1hOa6kC3luJblrZDkuoznuqdcIixcInBhdGhcIjpcIuW4luWtkOS6jOe6p1wiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxuaWQ9TVlfUEFSQU1TLmlkXFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcblxcblxcblxcbuWwj+m+meS6keivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi40L2Nsb3VkLXJlc291cmNlcy9nZXRTaW5nbGVCeUlkXFxcIlxcblxcblxcbui6q+S9kz1ge1xcXCJpZFxcXCI6YCtpZCtgfWBcXG5cXG5cXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG5cXG5cXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjlsI/pvpnkupHor7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuZGF0YT1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWIl+ihqD1kYXRhLmF0dGFjaG1lbnRzXFxuXFxuXFxudXNlcmlkPWRhdGEudXNlcklkXFxuXFxu5biW5a2QaWQ9ZGF0YS5pZFxcblxcblxcbmxldCDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbmZvciAodmFyIGkgaW4g5paH5Lu25YiX6KGoKSB7XFxuICAgICAgICDmoIfpopg95paH5Lu25YiX6KGoW2ldLmZpbGVOYW1lXFxuICAgICAgICBpZD3mlofku7bliJfooahbaV0uaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3mlofku7bliJfooahbaV0uZmlsZVNpemVcXG4gICAgICAgIOeJueauimlkPeaWh+S7tuWIl+ihqFtpXS5zbmFwc2hvdElkXFxuICAgICAgICDovazlrZjph4895paH5Lu25YiX6KGoW2ldLnNhdmVOdW1cXG5sb2co5paH5Lu25aSn5bCPKVxcbmlmKOaWh+S7tuWkp+Wwjz09MCl7XFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgrXFxcIiAg6L2s5a2Y6YePOlxcXCIr6L2s5a2Y6YePLFxcbnBpY191cmw65paH5Lu25aS55Zu+5qCHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+aWh+S7tuWkuVxcXCIsXFxuZGVzYzppZCxcXG5cXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsIGV4dHJhOiB7IOaWh+S7tuWkuWlkOmlkLHVzZXJpZDp1c2VyaWQs6ZyA6KaB55So5oi3aWQ6XFxcIumcgOimgVxcXCIsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5a2Y6Iez572R55uYXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQs54m55q6KaWQs5biW5a2QaWQpPT57XFxuICAgICAgICBsb2co5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKVxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQs54m55q6KaWQs5biW5a2QaWQpID0+IHtcXG4gICAgICAgICAgICBsb2co54m55q6KaWQpXFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkLOeJueauimlkLOW4luWtkGlkKVxcblxcbiAgICAgICAgXFxuICAgICAgICB9LOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQs54m55q6KaWQs5biW5a2QaWQpfV0gfVxcbn0pO1xcbn1lbHNle1xcblxcbuaWh+S7tuagvOW8jz3mlofku7bliJfooahbaV0uc3VmZml4XFxu5paH5Lu2Q0lEPeaWh+S7tuWIl+ihqFtpXS5maWxlQ2lkXFxuXFxubG9nKOagh+mimClcXG5cXG5pZigvKGpwZ3xnaWZ8cG5nfGpwZWcpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu5qC85byPPVxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcblxcbn1lbHNlIGlmKC9cXFxcLihhdml8dHN8bXA0fG1vdnxtNHZ8M2dwfHJtfHJtdmJ8d212fGFzZnxhc3hhdml8ZGF0fG1rdnxmbHZ8dm9iKSQvaS50ZXN0KOagh+mimCkpe1xcbuWbvueJhz3op4bpopHmlofku7blm77moIdcXG7moLzlvI89XFxcIiNpc1ZpZGVvPXRydWUjO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxufWVsc2UgaWYoLyhtcDMpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG7moLzlvI89XFxcIjt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3lhbbku5bmlofku7blm77moIdcXG59XFxuXFxu6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQr5qC85byPXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgrXFxcIiAg6L2s5a2Y6YePOlxcXCIr6L2s5a2Y6YePLFxcbnBpY191cmw65Zu+54mHLFxcbnVybDrmlofku7ZDSUQrXFxcIiYmXFxcIivmoIfpopgrQ0lE6ZO+5o6l6Kej5p6QLFxcbi8vdXJsOuagvOW8jz09XFxcIjt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIj9cXFwiZG93bmxvYWQ6Ly9cXFwiK+mTvuaOpTrpk77mjqUsXFxuZGVzYzppZCxcXG5cXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsIGV4dHJhOiB7IGlkOmlkLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKT0+e1xcbiAgICAgICAgbG9nKOWwj+S6kem+meS6keebmOWvhumSpSlcXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxubG9nKOmHjeWkjeivt+axguaWh+S7tuWkuSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG4gICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZClcXG5cXG4gICAgICAgIFxcbiAgICAgICAgfSzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKX1dIH1cXG59KTtcXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuIFxcblxcbn1cXG5cXG5pZijmlofku7bliJfooagubGVuZ3RoPjApe1xcbuWIhuWJsue6v+mTvuaOpT1cXFwiaHR0cHM6Ly9tLjM2MGJ1eWltZy5jb20vYmFiZWwvamZzL3QxLzI2Mzc0LzM3LzE3ODk0LzQ2NDA3LzYyZDMzZjA1RTk2MTZiNWEyL2YxYzFkMDY4MjQ2ZWE4NGYucG5nXFxcIlxcblxcblxcblxcbmlmKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5YiG5Ymy57q/LnBuZycpKXtcXG5sb2coXFxcIuW8gOWni+e8k+WtmOWbvueJh1xcXCIpXFxuc2F2ZUltYWdlKOWIhuWJsue6v+mTvuaOpSwnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/liIblibLnur8ucG5nJylcXG5cXG59XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTon5YiG5Ymy57q/JyxcXG5waWNfdXJsOidoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+WIhuWJsue6vy5wbmcnLFxcbmNvbF90eXBlOiAncGljXzFfZnVsbCdcXG59KTtcXG5cXG5cXG59XFxuXFxuICAgICAgICDmoIfpopg9ZGF0YS50aXRsZVxcbiAgICAgICAg5YaF5a65PWRhdGEuY29udGVudFxcbiAgICAgICAgaWQ9ZGF0YS5pZFxcbiAgICAgICAg5Y+R5biW5Lq6PWRhdGEuYXV0aG9yLm5pY2tuYW1lXFxuICAgICAgICDlj5HluJbkurppZD1kYXRhLmF1dGhvci5pZFxcbiAgICAgICAg5Y+R5biW5Lq65aS05YOPaWQ9ZGF0YS5hdXRob3IuaW1nXFxuICAgICAgICDlj5HluJbml7bpl7Q9dGltZXN0YW1wVG9UaW1lKGRhdGEucHRpbWUpXFxuICAgICAgICDmtY/op4jph489ZGF0YS5zaG93TnVtXFxuICAgICAgICDlm57lpI3ph489ZGF0YS5jb21tZW50TnVtXFxuICAgICAgICDngrnotZ7ph489ZGF0YS5saWtlTnVtXFxuICAgICAgICDlm77niYfph489cGFyc2VJbnQoZGF0YS5pbWFnZXMubGVuZ3RoKVxcbiAgICAgICAg5Zu+54mH5YiX6KGoPWRhdGEuaW1hZ2VzXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrlj5HluJbkurorXFxcIiAg5Y+R5biW5pe26Ze0OlxcXCIr5Y+R5biW5pe26Ze0LFxcbnBpY191cmw6XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+WPkeW4luS6uuWktOWDj2lkK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+WPkeW4luiusOW9lT9wYWdlPWZ5cGFnZVxcXCIrICcjaW1tZXJzaXZlVGhlbWUjJyxcXG5kZXNjOmlkLFxcbmV4dHJhOntpZDrlj5HluJbkurppZH0sXFxuY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLGV4dHJhOiB7aWQ65Y+R5biW5Lq6aWQsZ3JhZGllbnQ6IHRydWUsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5ouJ6buRXFxcIiwganM6ICQudG9TdHJpbmcoKOWPkeW4luS6umlkKT0+e1xcbmlmKHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7npL7kuqRJRD095Y+R5biW5Lq6aWQpIHJldHVybiBcXFwidG9hc3Q6Ly/oh6rlt7Hmi4npu5Hoh6rlt7HvvJ9cXFwiXFxuXFxu5ouJ6buR6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkLXJlc291cmNlL3YxL2FkZC1ibGFja2xpc3RcXFwiXFxuXFxu5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcInVzZXJJZFxcXCI6XFxcIjUzNzUxMjk4OTgxMzY0MTIxNlxcXCIsXFxcInJlZnVzZVVzZXJJZHNcXFwiOltcXFwiYCvlj5HluJbkurppZCtgXFxcIl19YFxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOaLiem7keivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5iYWNrKHRydWUpXFxucmV0dXJuIFxcXCJ0b2FzdDovL+W3suaLiem7kVxcXCJcXG4gICAgXFxuICB9LOWPkeW4luS6umlkKVxcbn1dfX0pO1xcblxcblxcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLnJlcGxhY2Uo5YaF5a65LCcnKStcXFwi44CCXFxcIivlhoXlrrkucmVwbGFjZSjmoIfpopgsJycpLnJlcGxhY2UoJ1xcXFxuJywnPGJyPicpK2A8YnI+PHN0cm9uZz48Zm9udCBjb2xvcj0nIzc1NzU3NSc+YCsn5rWP6KeI6YePOicr5rWP6KeI6YePKycg54K56LWe6YePOicr54K56LWe6YePKycg5Zue5aSN6YePOicr5Zue5aSN6YePK2A8L2Zyb250Pjwvc3Ryb25nPmAsXFxuY29sX3R5cGU6IFxcXCJyaWNoX3RleHRcXFwiXFxufSk7XFxuXFxuXFxuc2hhcmVJZOaVsOe7hD1bXVxcbmlmKC93eC5zdGFyaXZlcnBhbi5jb20uKj9zaGFyZUlkPS4rJi8udGVzdCjmoIfpopgr5YaF5a65KSl7XFxuc2hhcmVJZOaVsOe7hD3lhoXlrrkubWF0Y2goL1thLXowLTldezI0fS9pZylcXG5cXG59XFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lm77moIcnKSkucnVsZSlcXG5cXG5kLnB1c2goe1xcbnRpdGxlOua1j+iniOmHjyxcXG5waWNfdXJsOua1j+iniOmHj+WbvuaghyxcXG5jb2xfdHlwZTogXFxcImljb25fNVxcXCIsXFxudXJsOlxcXCJ0b2FzdDovL+iiq+a1j+iniFxcXCIr5rWP6KeI6YePK1xcXCLmrKFcXFwiXFxufSk7XFxuZC5wdXNoKHtcXG50aXRsZTrlm57lpI3ph48sXFxucGljX3VybDrlm57lpI3ph4/lm77moIcsXFxuY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiLFxcbnVybDogJChcXFwiXFxcIixcXFwi6K+E6K665YaF5a65XFxcIikuaW5wdXQoKGlkKSA9PiB7XFxuXFxu6K+E6K666K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjEvZGlzY3Vzcy9hZGRDb21tZW50XFxcIiAgICAgICAgICAgICAgICBcXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG59XFxuXFxu6Lqr5L2TPWB7XFxcImFydGljbGVJZFxcXCI6YCtpZCtgLFxcXCJjb250ZW50XFxcIjpcXFwiYCtpbnB1dCtgXFxcIixcXFwicGFyZW50SWRcXFwiOjB9YFxcblxcbnBvc3Qo6K+E6K666K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v6K+E6K665oiQ5YqfXFxcIlxcblxcblxcbn0saWQpXFxufSk7XFxuZC5wdXNoKHtcXG50aXRsZTrngrnotZ7ph48sXFxucGljX3VybDrmlLbol4/ph4/lm77moIcsXFxuY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiLFxcbnVybDpcXFwidG9hc3Q6Ly/ov5jmsqHlhpnmlLbol49cXFwiXFxufSk7XFxuZC5wdXNoKHtcXG50aXRsZTrlm77niYfph48sXFxucGljX3VybDrlm77niYfph4/lm77moIcsXFxuY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjlm77niYfliJfooagpID0+IHtcXG5pZijlm77niYfliJfooagubGVuZ3RoPDEpIHJldHVybiBcXFwidG9hc3Q6Ly/msqHor4bliKvliLDlm77niYdcXFwiICBcXG5cXG7lm77niYfmlbDnu4Q9W11cXG5mb3IgKHZhciBpIGluIOWbvueJh+WIl+ihqCkge1xcblxcbuWbvueJh+aVsOe7hFtpXT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5Zu+54mH5YiX6KGoW2ldLmZpbGVDaWQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG59XFxuXFxucmV0dXJuIFxcXCJwaWNzOi8vXFxcIiAr5Zu+54mH5pWw57uELmpvaW4oXFxcIiYmXFxcIilcXG5cXG59LOWbvueJh+WIl+ihqClcXG59KTtcXG5cXG5kLnB1c2goe1xcbnRpdGxlOnBhcnNlSW50KHNoYXJlSWTmlbDnu4QubGVuZ3RoKSxcXG5waWNfdXJsOumTvuaOpemHj+WbvuaghyxcXG5jb2xfdHlwZTogXFxcImljb25fNVxcXCIsXFxudXJsOnNoYXJlSWTmlbDnu4QubGVuZ3RoPDE/XFxcInRvYXN0Oi8v5rKh6K+G5Yir5Yiw6ZO+5o6lXFxcIjokKHNoYXJlSWTmlbDnu4QsIDEsJ+aJvuWIsOmTvuaOpeaVsOaNricpLnNlbGVjdCgoc2hhcmVJZOaVsOe7hCkgPT4ge1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu54K55Ye75L2N572uPXNoYXJlSWTmlbDnu4QuZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv6Kej5p6Q5YiG5Lqr6ZO+5o6lP2lkPVxcXCIr6Kej5a+G5YiG5Lqr6ZO+5o6lKHNoYXJlSWTmlbDnu4Rb54K55Ye75L2N572uXSlcXG5cXG5cXG59LHNoYXJlSWTmlbDnu4QpXFxufSk7XFxuXFxuXFxuXFxuXFxuXFxuLypcXG5cXG5pZigvd3guc3Rhcml2ZXJwYW4uY29tLio/c2hhcmVJZD0uKyYvLnRlc3Qo5qCH6aKYK+WGheWuuSkpe1xcbnNoYXJlSWQ95YaF5a65Lm1hdGNoKC9zaGFyZUlkXFxcXD0oLiopJi8pWzFdXFxu5paH5Lu2aWQ96Kej5a+G5YiG5Lqr6ZO+5o6lKHNoYXJlSWQpXFxuXFxufVxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6J+KAnOKAnCcrc2hhcmVJZCsn4oCd4oCdJyxcXG4vL3BpY191cmw6LFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+ino+aekOWIhuS6q+mTvuaOpT9pZD1cXFwiK+aWh+S7tmlkLFxcbi8vZGVzYzosXFxuY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbn0pO1xcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g5Zu+54mH5YiX6KGoKSB7XFxuXFxuZC5wdXNoKHtcXG4vL3RpdGxlOixcXG5waWNfdXJsOlxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivlm77niYfliJfooahbaV0uZmlsZUNpZCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG51cmw6XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+WbvueJh+WIl+ihqFtpXS5maWxlQ2lkK1xcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuLy9kZXNjOixcXG5jb2xfdHlwZTogXFxcInBpY18zX3NxdWFyZVxcXCJcXG59KTtcXG5cXG59XFxuXFxuKi9cXG5cXG5pZijlm57lpI3ph48+MCl7XFxuXFxuXFxuXFxu6K+E6K666K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjEvZGlzY3Vzcy9jb21tZW50TGlzdEZvckFwcFxcXCJcXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG59XFxuXFxu6Lqr5L2TPWB7XFxcImlzU29ydFxcXCI6dHJ1ZSxcXFwicm9vdElkXFxcIjowLFxcXCJhcnRpY2xlSWRcXFwiOmAraWQrYCxcXFwibGFzdElkXFxcIjowLFxcXCJwYWdlU2l6ZVxcXCI6MjAsXFxcImlzVmlld0F1dGhvclxcXCI6ZmFsc2V9YFxcbiAgICAgICAgXFxu6K+E6K665ZON5bqUPXBvc3Qo6K+E6K666K+35rGCLHtoZWFkZXJzOuWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu6K+E6K665YiX6KGoPUpTT04ucGFyc2Uo6K+E6K665ZON5bqUKS5kYXRhXFxuXFxuXFxuXFxuaWYo6K+E6K665YiX6KGoIT1udWxsKXtcXG5cXG5kLnB1c2goe1xcbnRpdGxlOifnspfliIblibLnur8nLFxcbmNvbF90eXBlOiAnbGluZV9ibGFuaydcXG59KTtcXG5cXG59XFxuXFxuXFxuZm9yICh2YXIgaSBpbiDor4TorrrliJfooagpIHtcXG5cXG5cXG4gICAgICAgICAgIFxcbuivhOiuumlkPeivhOiuuuWIl+ihqFtpXS5pZFxcbuivhOiuuuWGheWuuT3or4TorrrliJfooahbaV0uY29udGVudFxcblxcbuivhOiuuuaXtumXtD10aW1lc3RhbXBUb1RpbWUo6K+E6K665YiX6KGoW2ldLnB0aW1lKVxcblxcblxcblxcbuivhOiuuuS6umlkPeivhOiuuuWIl+ihqFtpXS51c2VyLmlkXFxu6K+E6K665Lq65ZCNPeivhOiuuuWIl+ihqFtpXS51c2VyLm5pY2tuYW1lXFxu6K+E6K665Lq65aS05YOPaWQ96K+E6K665YiX6KGoW2ldLnVzZXIuaW1nXFxuXFxuZC5wdXNoKHtcXG50aXRsZTror4TorrrkurrlkI0rXFxcIiAg6K+E6K665pe26Ze0OlxcXCIr6K+E6K665pe26Ze0LFxcbnBpY191cmw6XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+ivhOiuuuS6uuWktOWDj2lkK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+WPkeW4luiusOW9lT9wYWdlPWZ5cGFnZVxcXCIrICcjaW1tZXJzaXZlVGhlbWUjJyxcXG5kZXNjOmlkLFxcbmV4dHJhOntpZDror4TorrrkurppZH0sXFxuY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLGV4dHJhOiB7aWQ66K+E6K665Lq6aWQsZ3JhZGllbnQ6IHRydWUsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5ouJ6buRXFxcIiwganM6ICQudG9TdHJpbmcoKOivhOiuuuS6umlkKT0+e1xcblxcbmlmKHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7npL7kuqRJRD096K+E6K665Lq6aWQpIHJldHVybiBcXFwidG9hc3Q6Ly/oh6rlt7Hmi4npu5Hoh6rlt7HvvJ9cXFwiXFxu5ouJ6buR6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkLXJlc291cmNlL3YxL2FkZC1ibGFja2xpc3RcXFwiXFxuXFxu5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcInVzZXJJZFxcXCI6XFxcIjUzNzUxMjk4OTgxMzY0MTIxNlxcXCIsXFxcInJlZnVzZVVzZXJJZHNcXFwiOltcXFwiYCvor4TorrrkurppZCtgXFxcIl19YFxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOaLiem7keivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+W3suaLiem7kVxcXCJcXG4gICAgXFxuICB9LOivhOiuuuS6umlkKVxcbn1dfX0pO1xcblxcblxcbuiiq+WbnuWkjeaVsD3or4TorrrliJfooahbaV0uc3ViQ291bnRcXG5cXG5pZijooqvlm57lpI3mlbA+MCl7XFxuXFxuXFxu5Zue5aSN6K+E6K666K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjEvZGlzY3Vzcy9jb21tZW50TGlzdEZvckFwcFxcXCJcXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG59XFxuXFxu6Lqr5L2TPWB7XFxcImFydGljbGVJZFxcXCI6YCtpZCtgLFxcXCJpc1NvcnRcXFwiOnRydWUsXFxcImxhc3RJZFxcXCI6MCxcXFwicGFnZVNpemVcXFwiOjEwMCxcXFwicm9vdElkXFxcIjpgK+ivhOiuumlkK2B9YFxcbiAgICAgICAgXFxu5Zue5aSN6K+E6K665ZON5bqUPXBvc3Qo6K+E6K666K+35rGCLHtoZWFkZXJzOuWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5Zue5aSN6K+E6K665YiX6KGoPUpTT04ucGFyc2Uo5Zue5aSN6K+E6K665ZON5bqUKS5kYXRhLnJldmVyc2UoKVxcblxcbmZvciAodmFyIGkgaW4g5Zue5aSN6K+E6K665YiX6KGoKSB7XFxuXFxuXFxuICAgICAgICAgICBcXG7lm57lpI3or4TorrppZD3lm57lpI3or4TorrrliJfooahbaV0uaWRcXG7lm57lpI3or4TorrrlhoXlrrk95Zue5aSN6K+E6K665YiX6KGoW2ldLmNvbnRlbnRcXG5cXG7lm57lpI3or4Torrrml7bpl7Q9dGltZXN0YW1wVG9UaW1lKOWbnuWkjeivhOiuuuWIl+ihqFtpXS5wdGltZSlcXG5cXG7lm57lpI3or4TorrrkurppZD3lm57lpI3or4TorrrliJfooahbaV0udXNlci5pZFxcbuWbnuWkjeivhOiuuuS6uuWQjT3lm57lpI3or4TorrrliJfooahbaV0udXNlci5uaWNrbmFtZVxcbuWbnuWkjeivhOiuuuS6uuWktOWDj2lkPeWbnuWkjeivhOiuuuWIl+ihqFtpXS51c2VyLmltZ1xcblxcbuivhOiuuuWGheWuuT3or4TorrrlhoXlrrkrXFxcIjxicj7igJTigJRcXFwiK+WbnuWkjeivhOiuuuS6uuWQjStcXFwiOlxcXCIr5Zue5aSN6K+E6K665YaF5a65XFxuXFxufVxcblxcblxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOuivhOiuuuWGheWuuSxcXG5jb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCJcXG59KTtcXG5cXG5kLnB1c2goe1xcbnRpdGxlOifnu4bliIblibLnur8nLFxcbmNvbF90eXBlOiAnbGluZSdcXG59KTtcXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWumOaWuei1hOa6kC3lj5HluJborrDlvZVcIixcInBhdGhcIjpcIuWPkeW4luiusOW9lVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbmlkPU1ZX1BBUkFNUy5pZFxcbmxldCBwYWdlID0gTnVtYmVyKGdldE15VmFyKFxcXCJwYWdlXFxcIiwgXFxcIjBcXFwiKSkgKyBNWV9QQUdFO1xcblxcbklQRlPlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG5cXG5cXG7pk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuNC9jbG91ZC1yZXNvdXJjZXMvYXJ0aWNsZS1saXN0P3BhZ2VTaXplPTIwJnF1ZXJ5VXNlcklkPVxcXCIraWQrXFxcIiZwYWdlTnVtPVxcXCIrcGFnZStcXFwiJmlzVmlld01lPWZhbHNlXFxcIlxcblxcblxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxuXFxufVxcblxcbua6kOeggT1yZXF1ZXN0KOmTvuaOpSx7aGVhZGVyczog5aS06YOofSlcXG5cXG5cXG5cXG7liJfooag9SlNPTi5wYXJzZSjmupDnoIEpLmRhdGEuZGF0YVxcblxcbmlmKOWIl+ihqC5sZW5ndGg+MCl7XFxuICAgICAgICDlj5HluJbkuro95YiX6KGoWzBdLmF1dGhvci5uaWNrbmFtZVxcbiAgICAgICAg5Y+R5biW5Lq6aWQ95YiX6KGoWzBdLmF1dGhvci5pZFxcbiAgICAgICAg5Y+R5biW5Lq65aS05YOPaWQ95YiX6KGoWzBdLmF1dGhvci5pbWdcXG5cXG5pZihwYWdlPT0xKVxcbmQucHVzaCh7XFxudGl0bGU65Y+R5biW5Lq6LFxcbnBpY191cmw6XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+WPkeW4luS6uuWktOWDj2lkK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbnVybDpcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5Y+R5biW5Lq65aS05YOPaWQrXFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5leHRyYTp7aWQ65Y+R5biW5Lq6aWR9LFxcbmNvbF90eXBlOiBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1clxcXCIsZXh0cmE6IHtncmFkaWVudDogdHJ1ZSxsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLmi4npu5FcXFwiLCBqczogJC50b1N0cmluZygo5Y+R5biW5Lq6aWQpPT57XFxuXFxuaWYoc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEPT3lj5HluJbkurppZCkgcmV0dXJuIFxcXCJ0b2FzdDovL+iHquW3seaLiem7keiHquW3se+8n1xcXCJcXG5cXG5cXG7mi4npu5Hor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWQtcmVzb3VyY2UvdjEvYWRkLWJsYWNrbGlzdFxcXCJcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG5cXG7ouqvkvZM9YHtcXFwidXNlcklkXFxcIjpcXFwiYCtzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5LqkSUQrYFxcXCIsXFxcInJlZnVzZVVzZXJJZHNcXFwiOltcXFwiYCvlj5HluJbkurppZCtgXFxcIl19YFxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOaLiem7keivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5iYWNrKHRydWUpXFxucmV0dXJuIFxcXCJ0b2FzdDovL+W3suaLiem7kVxcXCJcXG4gICAgXFxuICB9LOWPkeW4luS6umlkKVxcbn1dfX0pO1xcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g5YiX6KGoKSB7XFxuICAgICAgICDmoIfpopg95YiX6KGoW2ldLnRpdGxlXFxuICAgICAgICDlhoXlrrk95YiX6KGoW2ldLmNvbnRlbnRcXG4gICAgICAgIGlkPeWIl+ihqFtpXS5pZFxcbiAgICAgICAg5Y+R5biW5Lq6PeWIl+ihqFtpXS5hdXRob3Iubmlja25hbWVcXG4gICAgICAgIOWPkeW4luS6umlkPeWIl+ihqFtpXS5hdXRob3IuaWRcXG4gICAgICAgIOWPkeW4luS6uuWktOWDj2lkPeWIl+ihqFtpXS5hdXRob3IuaW1nXFxuICAgICAgICDlj5HluJbml7bpl7Q9dGltZXN0YW1wVG9UaW1lKOWIl+ihqFtpXS5wdGltZSlcXG4gICAgICAgIOa1j+iniOmHjz3liJfooahbaV0uc2hvd051bVxcbiAgICAgICAg5Zue5aSN6YePPeWIl+ihqFtpXS5jb21tZW50TnVtXFxuICAgICAgICDngrnotZ7ph4895YiX6KGoW2ldLmxpa2VOdW1cXG4gICAgICAgIOi9rOWtmOmHjz3liJfooahbaV0uZG93bmxvYWROdW1cXG4gICAgICAgIOWbvueJh+mHjz3liJfooahbaV0uaW1hZ2VzLmxlbmd0aFxcblxcbmQucHVzaCh7XFxudGl0bGU6YOKAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9JyMxRTkwRkYnPmAr5qCH6aKYK2A8L2Zyb250Pjwvc3Ryb25nPlxcXFxuYCvlhoXlrrksXFxucGljX3VybDpcXFwiaHR0cHM6Ly9zdGF0aWMubXlwaWtwYWsuY29tLzhjM2MxMTQ4NjA0OWIxNzQzNDUyNjIzNmE3ZWQ2NTc4NzdiODZhYTNAUmVmZXJlcj1cXFwiLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+W4luWtkOS6jOe6p1xcXCIsXFxuZGVzYzon5rWP6KeI6YePOicr5rWP6KeI6YePKycg5Zue5aSN6YePOicr5Zue5aSN6YePKycg6L2s5a2Y6YePOicr6L2s5a2Y6YePKycg5Zu+54mH6YePOicr5Zu+54mH6YePLFxcbmV4dHJhOntpZDppZH0sXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiXFxufSk7XFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSk7XFxuXFxuXFxuIFxcbn1cXG5cXG59XFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6Kej5p6Q5YiG5Lqr6ZO+5o6lXCIsXCJwYXRoXCI6XCLop6PmnpDliIbkuqvpk77mjqVcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcblxcblxcbmlkPWdldFBhcmFtKCdpZCcpXFxuXFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcbmxldCDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbmlmKGlkKXtcXG5cXG7or7fmsYLpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9jbG91ZC92ZXJpZnlDb2RlXFxcIlxcblxcbuivt+axguWvhueggemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL2NoZWNrU2hhcmVJZFxcXCJcXG5cXG5cXG7ouqvkvZM9YHtcXFwiaWRcXFwiOlxcXCJgK2lkK2BcXFwifWBcXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpSxcXG5cXFwiUmVmZXJlclxcXCI6IFxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxufVxcblxcblxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguWvhueggemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5cXG5cXG7lr4bnoIE9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG5sb2co5a+G56CBKVxcblxcbmlmKOWvhueggSl7XFxuXFxu6Lqr5L2TPWB7XFxcImNvZGVcXFwiOlxcXCJgK+WvhueggStgXFxcIixcXFwiaWRcXFwiOlxcXCJgK2lkK2BcXFwifWBcXG5cXG59XFxuXFxuXFxudHJ5IHtcXG5cXG7nrKzkuozmrKHlk43lupQ9cG9zdCjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuZGF0YT1KU09OLnBhcnNlKOesrOS6jOasoeWTjeW6lCkuZGF0YVxcbmxvZyhkYXRhKVxcbuWIl+ihqD1kYXRhLnNoYXJlRmlsZUluZm9cXG5sb2co5YiX6KGoKVxcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g5YiX6KGoKSB7XFxuICAgICAgICDmoIfpopg95YiX6KGoW2ldLmZpbGVOYW1lXFxuICAgICAgICBpZD3liJfooahbaV0uaWRcXG4gICAgICAgIHVzZXJpZD3liJfooahbaV0udXNlcklkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoW2ldLmZpbGVTaXplXFxuXFxubG9nKOaWh+S7tuWkp+WwjylcXG5pZijmlofku7blpKflsI89PTApe1xcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLFxcbnBpY191cmw65paH5Lu25aS55Zu+5qCHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+aWh+S7tuWkuVxcXCIsXFxuZGVzYzppZCxcXG5leHRyYTp75paH5Lu25aS5aWQ6aWQsdXNlcmlkOnVzZXJpZCzpnIDopoHnlKjmiLdpZDpcXFwi6ZyA6KaBXFxcIixsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLlrZjoh7PnvZHnm5hcXFwiLCBqczogJC50b1N0cmluZygo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCk9PntcXG4gICAgICAgIGxvZyjlsI/kupHpvpnkupHnm5jlr4bpkqUpXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKVxcblxcbiAgICAgICAgXFxuICAgICAgICB9LOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpfV19LFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIlxcbn0pO1xcbn1lbHNle1xcblxcbuaWh+S7tuagvOW8jz3liJfooahbaV0uc3VmZml4XFxu5paH5Lu2Q0lEPeWIl+ihqFtpXS5maWxlQ2lkXFxu5paH5Lu25aSn5bCPPWZvcm1hdFNpemUo5paH5Lu25aSn5bCPKVxcblxcblxcblxcbmlmKC8oanBnfGdpZnxwbmd8anBlZykkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5qCH6aKYKSl7XFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcbuagvOW8jz1cXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG59ZWxzZSBpZigvKG1wM3x3bWEpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG7moLzlvI89XFxcIjt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3lhbbku5bmlofku7blm77moIdcXG59XFxuXFxu6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQr5qC85byPXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmlofku7blpKflsI8rXFxcIi1cXFwiK+agh+mimCxcXG5waWNfdXJsOuWbvueJhyxcXG51cmw65paH5Lu2Q0lEK1xcXCImJlxcXCIr5qCH6aKYK0NJROmTvuaOpeino+aekCxcXG5kZXNjOmlkLFxcbmV4dHJhOntpZDppZCx1c2VyaWQ6dXNlcmlkLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKT0+e1xcbiAgICAgICBcXG4gICAgICAgIGxvZyjlsI/kupHpvpnkupHnm5jlr4bpkqUpXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKVxcblxcbiAgICAgICAgXFxuICAgICAgICB9LOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpfV19LFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIlxcbn0pO1xcblxcblxcblxcblxcbn1cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxufSBjYXRjaCAoZSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGA8Zm9udCBjb2xvcj1cXFwiI0ZCNkM3M1xcXCI+5YiG5Lqr5Y+v6IO96L+H5pyfPC9mb250PmAsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCJcXG5cXG59KVxcbiAgICBcXG4gICAgXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLph43lpI3or7fmsYLmlofku7blpLlcIixcInBhdGhcIjpcIumHjeWkjeivt+axguaWh+S7tuWkuVwiLFwicnVsZVwiOlwiaWYodHlwZW9mKGlkKT09XFxcInVuZGVmaW5lZFxcXCIpaWQ9XFxcIlxcXCJcXG5pZih0eXBlb2YodXNlcmlkKT09XFxcInVuZGVmaW5lZFxcXCIpdXNlcmlkPVxcXCJcXFwiXFxuaWYodHlwZW9mKOeJueauimlkKT09XFxcInVuZGVmaW5lZFxcXCIp54m55q6KaWQ9XFxcIlxcXCJcXG5pZih0eXBlb2Yo5biW5a2QaWQpPT1cXFwidW5kZWZpbmVkXFxcIinluJblrZBpZD1cXFwiXFxcIlxcbmlmKHR5cGVvZijlsI/pvpnkupHnm5jlpIfku70pPT1cXFwidW5kZWZpbmVkXFxcIinlsI/pvpnkupHnm5jlpIfku709XFxcIuaXoFxcXCJcXG5pZih0eXBlb2Yo5paH5Lu25aS557qv5ZCN56ewKT09XFxcInVuZGVmaW5lZFxcXCIp5paH5Lu25aS557qv5ZCN56ewPVxcXCJcXFwiXFxuaWYodHlwZW9mKOaWh+S7tuWkuee6r+WQjeensCk9PVxcXCJ1bmRlZmluZWRcXFwiKeaWh+S7tuWkueWQjeensD1cXFwiXFxcIlxcblxcblxcbnZhciDph43lpI3or7fmsYLmlofku7blpLkgPSQo5paH5Lu25aS55ZCN56ewLCAyLCflsIbmlofku7bmt7vliqDoh7Plk6rkuKrmlofku7blpLnvvJ8nKS5zZWxlY3QoKOaWh+S7tuWkueWIl+ihqGlkLOaWh+S7tuWkueWIl+ihqCzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkLOeJueauimlkLOW4luWtkGlkLOWwj+m+meS6keebmOWkh+S7vSzmlofku7blpLnlkI3np7As5paH5Lu25aS557qv5ZCN56ewKSA9PiB7XFxuXFxuXFxuICAgICAgIGlmKGlucHV0PT1cXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcbmlmKHVzZXJpZD09XFxcIuaXoFxcXCIpe1xcblxcbmxvZyhcXFwiMVxcXCIpXFxu56e75Yqo6K+35rGC6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZmlsZU1vdmVcXFwiXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS55YiX6KGoaWQrYFxcXCJ9YFxcblxcbnBvc3Qo56e75Yqo6K+35rGC6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcbnJlZnJlc2hQYWdlKGZhbHNlKVxcblxcbnJldHVybiAndG9hc3Q6Ly/np7vliqjmiJDlip8nXFxuXFxufWVsc2UgaWYodXNlcmlkPT1cXFwi5pegKENJRClcXFwiKXtcXG5sb2coXFxcIjJcXFwiKVxcblxcblxcbmlmKOWwj+m+meS6keebmOWkh+S7vSE9PVxcXCLml6BcXFwiKXtcXG5cXG7mlrDlu7rmlofku7blpLnlkI095bCP6b6Z5LqR55uY5aSH5Lu9LuaWh+S7tuWkueWQjVxcbmRhdGE95bCP6b6Z5LqR55uY5aSH5Lu9LmRhdGFcXG5cXG5cXG5cXG5cXG5zaG93TG9hZGluZygn5q2j5Zyo5paw5bu65paH5Lu25aS5JylcXG5cXG7mlrDlu7rmlofku7blpLnor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9hZGRGb2xkZXJcXFwiXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgK+aWsOW7uuaWh+S7tuWkueWQjStgXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkueWIl+ihqGlkK2BcXFwiLFxcXCJ0b2tlblxcXCI6XFxcImAr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlK2BcXFwifWBcXG4gICAgICAgIFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOaWsOW7uuaWh+S7tuWkueivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlrDlu7rmlofku7blpLlpZD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcblxcblxcblxcbn1lbHNle1xcbi8vQ0lE5a2Y5paH5Lu25LiA5Liq5paH5Lu255qE5oOF5Ya1XFxuXFxuZGF0YT1bSlNPTi5wYXJzZShpZCldXFxubG9nKGRhdGEpXFxu5paw5bu65paH5Lu25aS5aWQ95paH5Lu25aS55YiX6KGoaWRcXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiBkYXRhKSB7XFxuXFxuXFxuXFxu5paH5Lu25ZCNPWRhdGFbaV0u5paH5Lu25ZCNXFxu5paH5Lu2Q0lEPWRhdGFbaV0u5paH5Lu2Q0lEXFxu5paH5Lu25aSn5bCPPWRhdGFbaV0u5paH5Lu25aSn5bCPXFxu5paH5Lu25qC85byPPWRhdGFbaV0u5paH5Lu25qC85byPXFxuXFxuc2hvd0xvYWRpbmcoXFxcIuS/neWtmOaWh+S7tjpcXFwiK+aWh+S7tuWQjSlcXG5cXG5cXG7np5LlrZjor7fmsYLpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuNS9jbG91ZC9hZGQtZmlsZVxcXCJcXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJjb3ZlclxcXCI6XFxcIlxcXCIsXFxcImR1cmF0aW9uXFxcIjowLFxcXCJ0aHVtYm5haWxcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwiZmlsZU5hbWVcXFwiOlxcXCJgK+aWh+S7tuWQjStgXFxcIixcXFwiZmlsZVNpemVcXFwiOmAr5paH5Lu25aSn5bCPK2AsXFxcImZpbGVDaWRcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwiZmlsZVR5cGVcXFwiOmAr5paH5Lu25qC85byPK2AsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlrDlu7rmlofku7blpLlpZCtgXFxcIn1gXFxuXFxuXFxuXFxuXFxucG9zdCjnp5LlrZjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuXFxuXFxuamF2YS5sYW5nLlRocmVhZC5zbGVlcCg1MDApXFxuXFxufVxcblxcblxcbmhpZGVMb2FkaW5nKClcXG5yZXR1cm4gJ3RvYXN0Oi8v5L+d5a2Y5oiQ5YqfJ1xcblxcblxcblxcblxcblxcbn1lbHNle1xcbmxvZyhcXFwiM1xcXCIpXFxu5L+d5a2Y6K+35rGC6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvc2F2ZVNoYXJlRmlsZXNcXFwiXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuaWYoIeeJueauimlkKXtcXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS55YiX6KGoaWQrYFxcXCIsXFxcInNoYXJlVXNlcklkXFxcIjpcXFwiYCt1c2VyaWQrYFxcXCJ9YFxcbn1lbHNle1xcbuS/neWtmOivt+axgumTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL3NhdmVTbmFwc2hvdEZpbGVzXFxcIlxcblxcbui6q+S9kz1ge1xcXCJhcnRpY2xlSWRcXFwiOmAr5biW5a2QaWQrYCxcXFwiaWRzXFxcIjpbYCvnibnmroppZCtgXSxcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkueWIl+ihqGlkK2BcXFwifWBcXG59XFxucG9zdCjkv53lrZjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxucmV0dXJuICd0b2FzdDovL+S/neWtmOaIkOWKnydcXG59XFxuXFxufVxcbmxvZyhcXFwiNFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ95paH5Lu25aS55YiX6KGoW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS5pZFxcbmxvZyjmlofku7blpLnliJfooahpZClcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG4vL+ivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcblxcbi8v6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLnliJfooahpZCtgXFxcIn1gXFxuXFxu6Lqr5L2TPWB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS55YiX6KGoaWQrYFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7liJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkrXFxcIi5cXFwiK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG4gICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuLy9sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LOaWh+S7tuWkueWIl+ihqGlkLOaWh+S7tuWkueWIl+ihqCzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkLOeJueauimlkLOW4luWtkGlkLOWwj+m+meS6keebmOWkh+S7vSzmlofku7blpLnlkI3np7As5paH5Lu25aS557qv5ZCN56ewKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5oiR55qE5YiG5LqrXCIsXCJwYXRoXCI6XCLmiJHnmoTliIbkuqtcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJycsXFxuICAgIGRlc2M6ICfor7fovpPlhaXliIbkuqvpk77mjqUuLi4nLFxcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgdXJsOiAkLnRvU3RyaW5nKCjop6Plr4bliIbkuqvpk77mjqUpID0+IHtcXG5cXG50cnkge1xcblxcbmlucHV0PWlucHV0Lm1hdGNoKC9zaGFyZUlkXFxcXD0oLiopJi8pWzFdXFxuICAgICAgICAgICAgICAgICAgICBsb2coaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICBpbnB1dD3op6Plr4bliIbkuqvpk77mjqUoaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoJ+WIhuS6q+mTvuaOpWlkJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICAgICAgbG9nKGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv6Kej5p6Q5YiG5Lqr6ZO+5o6lP2lkPVxcXCIraW5wdXRcXG5cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxuICAgIHJldHVybiBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwiXFxufVxcblxcblxcbn0s6Kej5a+G5YiG5Lqr6ZO+5o6lKVxcbiAgICBcXG59KTtcXG5cXG5cXG5cXG7liIbkuqvpk77mjqXor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL215LXNoYXJlc1xcXCJcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG5cXG7ouqvkvZM9YHtcXFwicGFnZVNpemVcXFwiOjIwLFxcXCJzdGF0ZVxcXCI6MSxcXFwicGFnZU51bVxcXCI6MX1gXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5YiG5Lqr6ZO+5o6l6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcbuWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuXFxubG9nKOWIl+ihqClcXG5cXG5mb3IgKHZhciBpIGluIOWIl+ihqCkge1xcblxcbuaWh+S7tuWQjT3liJfooahbaV0uZmlsZS5maWxlTmFtZVxcbuaWh+S7tmlkPeWIl+ihqFtpXS5pZFxcbuaWh+S7tuWkp+Wwjz3liJfooahbaV0uZmlsZS5maWxlU2l6ZVxcbmlmKOaWh+S7tuWkp+Wwjz09MCnmlofku7blkI09XFxcIlvmlofku7blpLldXFxcIivmlofku7blkI1cXG7mlofku7bpk77mjqU95YiX6KGoW2ldLmxpbmtcXG7liIbkuqvnu5PmnZ/ml7bpl7Q95YiX6KGoW2ldLmV4cGlyYXRpb25UaW1lXFxu5YiG5Lqr5byA5aeL5pe26Ze0PeWIl+ihqFtpXS5zaGFyZVRpbWVcXG5cXG5cXG5cXG5pZijliIbkuqvnu5PmnZ/ml7bpl7Q9PTAp5YiG5Lqr5Ymp5L2Z5pe26Ze0PVxcXCLmsLjkuYXliIbkuqtcXFwiXFxuZWxzZSDliIbkuqvliankvZnml7bpl7Q9aW50ZXJ2YWxUaW1lKOWIhuS6q+W8gOWni+aXtumXtCzliIbkuqvnu5PmnZ/ml7bpl7QpXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IOaWh+S7tuWQjSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICB1cmw6XFxcImNvcHk6Ly/mlofku7blkI06XFxcIivmlofku7blkI0rJ1xcXFxuJytcXFwi5paH5Lu26ZO+5o6lOlxcXCIr5paH5Lu26ZO+5o6lLFxcbmRlc2M65YiG5Lqr5Ymp5L2Z5pe26Ze0LFxcbmV4dHJhOntsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLmtY/op4jmlofku7ZcXFwiLCBqczogJC50b1N0cmluZygo5paH5Lu2aWQpPT57XFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv6Kej5p6Q5YiG5Lqr6ZO+5o6lP2lkPVxcXCIr5paH5Lu2aWRcXG4gICAgXFxuICB9LOaWh+S7tmlkKVxcbn0se3RpdGxlOiBcXFwi57uI5q2i5YiG5LqrXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZpZCk9PntcXG5cXG7liIbkuqvnu4jmraLor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL3N0b3Atc2hhcmVcXFwiXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxu6Lqr5L2TPWB7XFxcImZvcmV2ZXJcXFwiOnRydWUsXFxcImlkc1xcXCI6W1xcXCJgK+aWh+S7tmlkK2BcXFwiXX1gXFxuXFxucG9zdCjliIbkuqvnu4jmraLor7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5YiG5Lqr5Yig6Zmk6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9kZWxldGUtc2hhcmVcXFwiXFxu6Lqr5L2TPWB7XFxcImlkc1xcXCI6W1xcXCJgK+aWh+S7tmlkK2BcXFwiXX1gXFxucG9zdCjliIbkuqvliKDpmaTor7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4jmraLliIbkuqtcXFwiXFxuXFxuICAgIFxcbiAgfSzlsI/kupHpvpnkupHnm5jlr4bpkqUs5paH5Lu2aWQpXFxufV19fSlcXG5cXG4gICAgICAgICAgIFxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlpJbnvZHotYTmupDikaBcIixcInBhdGhcIjpcIuWklue9kei1hOa6kOKRoFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbmxldCBwYWdlID0gTnVtYmVyKGdldE15VmFyKFxcXCJwYWdlXFxcIiwgXFxcIjBcXFwiKSkgKyBNWV9QQUdFIC0gMTtcXG5cXG5sb2cocGFnZSlcXG7mlbDmja7or7fmsYLpk77mjqU9XFxcImh0dHBzOi8vYXBpLmlwZnMtc2VhcmNoLmNvbS92MS9zZWFyY2g/cT1cXFwiK2dldFZhcign5aSW572R4pGg5pCc57Si5YWz6ZSu6K+NJywgXFxcIlxcXCIpK1xcXCIlMjBsYXN0LXNlZW4lM0EqJTIwbWV0YWRhdGEuQ29udGVudC1UeXBlJTNBKFxcXCIrZ2V0VmFyKCflpJbnvZHikaDmkJzntKLnsbvlnosnLCBcXFwidmlkZW9cXFwiKStcXFwiKikmdHlwZT1maWxlJnBhZ2U9XFxcIitwYWdlXFxuXFxuXFxubG9nKOaVsOaNruivt+axgumTvuaOpSlcXG5cXG5cXG5pZihwYWdlPT0wKXtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIueCueWHu+aQnOe0olxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIixcXG4gICAgdXJsOiAkKCkuaW5wdXQoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0VmFyKCflpJbnvZHikaDmkJzntKLlhbPplK7or40nLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pCc57SiOicraW5wdXRcXG4gICAgICAgICAgICAgICAgfSlcXG59KVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5YiH5o2iOlxcXCIrZ2V0VmFyKCflpJbnvZHikaDmkJzntKLnsbvlnosnLCBcXFwidmlkZW9cXFwiKSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLFxcbiAgICB1cmw6ICQoW1xcXCJ2aWRlb1xcXCIsXFxcImltYWdlXFxcIixcXFwiYXVkaW9cXFwiXSwgMSwn6ZyA6KaB5LuA5LmI57G75Z6L55qE6LWE5rqQ77yfJykuc2VsZWN0KCgpID0+IHtcXG5wdXRWYXIoJ+Wklue9keKRoOaQnOe0ouexu+WeiycsIGlucHV0KVxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5Li6OicraW5wdXRcXG59KVxcbn0pXFxufVxcblxcblxcblxcbuesrOS4gOasoeWTjeW6lD1yZXF1ZXN0KOaVsOaNruivt+axgumTvuaOpSlcXG5cXG7liJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmhpdHNcXG5pZijliJfooagubGVuZ3RoPjApe1xcbmZvciAodmFyIGkgaW4g5YiX6KGoKSB7XFxuXFxubG9nKOWIl+ihqFtpXSlcXG5cXG7mlofku7ZDSUQ95YiX6KGoW2ldLmhhc2hcXG7mlofku7blkI095YiX6KGoW2ldLnRpdGxlXFxuaWYo5om+5aSa5L2ZLnRlc3Qo5paH5Lu25ZCNKSnmlofku7blkI095paH5Lu25ZCNLnJlcGxhY2Uo5om+5aSa5L2ZLFxcXCJcXFwiKVxcblxcbuaWh+S7tuexu+Weiz3liJfooahbaV0ubWltZXR5cGVcXG7mlofku7blpKflsI895YiX6KGoW2ldLnNpemVcXG5cXG7kuIrkvKDml7bpl7Q95YiX6KGoW2ldWydjcmVhdGlvbl9kYXRlJ11cXG7mnIDov5Horr/pl6495YiX6KGoW2ldW1xcXCJmaXJzdC1zZWVuXFxcIl1cXG5cXG5cXG5cXG5pZijmib7mlofku7blkI3lkI7nvIAudGVzdCjmlofku7blkI0pPT1mYWxzZSnmlofku7blkI095paH5Lu25ZCNK1xcXCIuXFxcIivmlofku7bnsbvlnosuc3BsaXQoXFxcIi9cXFwiKVsxXVxcblxcbmlmKOaJvuWbvueJh+ato+WImS50ZXN0KOaWh+S7tuexu+Weiykpe1xcblxcbuaWh+S7tuagvOW8jz1cXFwiMlxcXCJcXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcblxcbn1lbHNlIGlmKOaJvuinhumikeato+WImS50ZXN0KOaWh+S7tuexu+Weiykpe1xcblxcbuaWh+S7tuagvOW8jz1cXFwiM1xcXCJcXG7moLzlvI89XFxcIiNpc1ZpZGVvPXRydWUjO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxuXFxufWVsc2UgaWYo5om+6Z+z6aKR5q2j5YiZLnRlc3Qo5paH5Lu257G75Z6LKSl7XFxu5paH5Lu25qC85byPPVxcXCI0XFxcIlxcbuagvOW8jz1cXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG5cXG59ZWxzZXtcXG7mlofku7bmoLzlvI89XFxcIjVcXFwiXFxu5qC85byPPVxcXCJcXFwiXFxuXFxufVxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6aStcXFwi44CBXFxcIivmlofku7blkI0sXFxuZGVzYzpcXFwi5paH5Lu25aSn5bCPOlxcXCIrZm9ybWF0U2l6ZSjmlofku7blpKflsI8pK1xcXCIg5pyA6L+R6K6/6ZeuOlxcXCIr5pyA6L+R6K6/6ZeuLFxcbmNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG51cmw65paH5Lu2Q0lEK1xcXCImJlxcXCIr5paH5Lu25ZCNK0NJROmTvuaOpeino+aekCxcXG5leHRyYTp7bG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5a2Y6Iez572R55uYXFxcIiwganM6ICQudG9TdHJpbmcoKOaWh+S7tuWQjSzmlofku7blpKflsI8s5paH5Lu2Q0lELOaWh+S7tuagvOW8jyk9PntcXG5cXG5cXG5cXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pID0+IHtcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aSvmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG5cXG5cXG5pZD1ge1xcXCLmlofku7ZDSURcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCvmlofku7blkI0rYFxcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcImAr5paH5Lu25qC85byPK2BcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCJgK+aWh+S7tuWkp+WwjytgXFxcIn1gXFxuXFxudXNlcmlkPVxcXCLml6AoQ0lEKVxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjylcXG5cXG5cXG5cXG5cXG59LOaWh+S7tuWQjSzmlofku7blpKflsI8s5paH5Lu2Q0lELOaWh+S7tuagvOW8jylcXG59XX1cXG59KTtcXG5cXG59XFxufVxcbmVsc2Uge2NsZWFyVmFyKCflpJbnvZHikaDmkJzntKLlhbPplK7or40nKTtcXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLigJzigJzku6XkuIrkuLrlhajpg6jmkJzntKLnu5PmnpzvvIzkuIrmi4nlsIbmmL7npLrmjqjojZDotYTmupDigJ3igJ1cXFwiLFxcbnVybDpcXFwidG9hc3Q6Ly/ngrnmiJHmiJHmsqHmnIlcXFwiLFxcbmNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJcXG59KTtcXG59XFxuXFxuXFxuc2V0UmVzdWx0KGQpO1xcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Ye95pWwXCIsXCJwYXRoXCI6XCLlh73mlbBcIixcInJ1bGVcIjpcIi8vZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5cXG7mib7lm77niYfmraPliJkgPSAvXFxcXC4oanBnfGdpZnxwbmd8anBlZ3x3ZWJwfGltYWdlKSQvaVxcbuaJvuinhumikeato+WImSA9IC9cXFxcLihhdml8dHN8bXA0fG1vdnxtNHZ8M2dwfHJtfHJtdmJ8d212fGFzZnxhc3hhdml8ZGF0fG1rdnxmbHZ8dm9iKSQvaVxcbuaJvumfs+mikeato+WImSA9IC9cXFxcLih3YXZ8YXVkaW98bXAzfHdtYXxtNGF8ZmxhYykkL2lcXG5cXG7mib7mlofku7blkI3lkI7nvIAgPSAvXFxcXC5cXFxcdyskL1xcbuaJvuWkmuS9mSA9IC8oXFxcXC4od2VicCl8PFxcXFwvP2VtPikvaWdcXG5cXG7ot6/lvoTpl7TpmpQ9XFxcIuK4nVxcXCJcXG5cXG7lpJrmlofku7bliIbkuqvmlZnnqIs9XFxcIuaTjeS9nOebruW9lTovc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL0lQRlPotYTmupAv5Li05pe25a+85Ye65YiG5LqrLyBcXFxcbuazqOaEjzovc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXfkuLrmtbfpmJTop4bnlYzljIXlkI3kvY3nva7vvIzmr4/kuKrkurrnmoTlj6/og73kuI3kuIDmoLfvvIzlpJrlvIDnmoTmtbfpmJTop4bnlYzmiJHkuZ/kuI3kvJrlvITvvIzlsI/nqIvluo/pg73mmK/nlKjnmoTnm7jlr7not6/lvoTkuI3kvJrlhrLnqoFcXFxcblxcXFxuXFxcXG7liIbkuqvkurrmk43kvZw6XFxcXG7lsIbor6Xnm67lvZXnmoTmiYDmnInmlofku7bmiZPljIXliIbkuqvnu5nmjqXmlLbkurpcXFxcblxcXFxuXFxcXG7mjqXmlLbkurrmk43kvZw6XFxcXG7ikaDlhYjmo4Dmn6XkuIrmlrnnm67lvZXmmK/lkKblrZjlnKjmlofku7bvvIzoi6XmnInliJnliKDpmaTnm67lvZXkuIvnmoTmiYDmnInmlofku7bvvIzoi6Xml6Dmlofku7blpLnliJnmlrDlu7rmlofku7blpLlcXFxcbuKRoeino+WOi+aJgOacieaWh+S7tuWIsOS4iuaWueebruW9lVxcXFxu4pGi5rW36ZiU6KeG55WMLeaIkeeahOWkh+S7vS3mm7TlpJrmk43kvZwt5YiH5o2i5aSH5Lu9Lea3u+WKoOWkh+S7vVxcXFxu4pGj5bCG5LiK5pa555uu5b2V5aGr5YWl5re75Yqg5aSH5Lu9XFxcXG7ikaTmtbfpmJTop4bnlYwt5oiR55qE5aSH5Lu9LeabtOWkmuaTjeS9nC3liIfmjaLlpIfku70t5Li05pe25a+85Ye65YiG5LqrXFxcXG7ikaXor7flj4rml7bovazlrZjmlofku7bvvIzor6Xnm67lvZXnmoTmlofku7bkvJrooqvkuIvmrKHnmoTlpJrmlofku7bliIbkuqvnmoTmk43kvZzopobnm5ZcXFwiXFxuXFxuXFxuXFxuZnVuY3Rpb24gZm9ybWF0U2l6ZShsaW1pdCkge1xcbiAgICBpZiAoIWxpbWl0IHx8IE51bWJlcihsaW1pdCkgPT0gMCkgcmV0dXJuICcnXFxuICAgIGxpbWl0ID0gTnVtYmVyKGxpbWl0KVxcbiAgICAvLyDlsIZzaXplIELovazmjaLmiJAgTVxcbiAgICB2YXIgc2l6ZSA9ICcnXFxuICAgIGlmIChsaW1pdCA8IDEgKiAxMDI0KSB7XFxuICAgICAgICAvL+Wwj+S6jjFLQu+8jOWImei9rOWMluaIkEJcXG4gICAgICAgIHNpemUgPSBsaW1pdC50b0ZpeGVkKDIpICsgJ0InXFxuICAgIH0gZWxzZSBpZiAobGltaXQgPCAxICogMTAyNCAqIDEwMjQpIHtcXG4gICAgICAgIC8v5bCP5LqOMU1C77yM5YiZ6L2s5YyW5oiQS0JcXG4gICAgICAgIHNpemUgPSAobGltaXQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ0tCJ1xcbiAgICB9IGVsc2UgaWYgKGxpbWl0IDwgMSAqIDEwMjQgKiAxMDI0ICogMTAyNCkge1xcbiAgICAgICAgLy/lsI/kuo4xR0LvvIzliJnovazljJbmiJBNQlxcbiAgICAgICAgc2l6ZSA9IChsaW1pdCAvICgxMDI0ICogMTAyNCkpLnRvRml4ZWQoMikgKyAnTUInXFxuICAgIH0gZWxzZSBpZiAobGltaXQgPCAxICogMTAyNCAqIDEwMjQgKiAxMDI0ICogMTAyNCkge1xcbiAgICAgICAgLy8vL+Wwj+S6jjFUQu+8jOWImei9rOWMluaIkEdCXFxuICAgICAgICBzaXplID0gKGxpbWl0IC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpLnRvRml4ZWQoMikgKyAnR0InXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICAvLy8v5aSn5LqOMVRC77yM5YiZ6L2s5YyW5oiQVEJcXG4gICAgICAgIHNpemUgPSAobGltaXQgLyAoMTAyNCAqIDEwMjQgKiAxMDI0ICogMTAyNCkpLnRvRml4ZWQoMikgKyAnVEInXFxuXFxuICAgIH1cXG5cXG4gICAgdmFyIHNpemVTdHIgPSBzaXplICsgJycgLy/ovazmiJDlrZfnrKbkuLJcXG4gICAgdmFyIGluZGV4ID0gc2l6ZVN0ci5pbmRleE9mKCcuJykgLy/ojrflj5blsI/mlbDngrnlpITnmoTntKLlvJVcXG4gICAgdmFyIGRvdSA9IHNpemVTdHIuc3Vic3RyKGluZGV4ICsgMSwgMikgLy/ojrflj5blsI/mlbDngrnlkI7kuKTkvY3nmoTlgLxcXG4gICAgaWYgKGRvdSA9PSAnMDAnKSB7XFxuICAgICAgICAvL+WIpOaWreWQjuS4pOS9jeaYr+WQpuS4ujAw77yM5aaC5p6c5piv5YiZ5Yig6ZmkMDBcXG4gICAgICAgIHJldHVybiBzaXplU3RyLnN1YnN0cmluZygwLCBpbmRleCkgKyBzaXplU3RyLnN1YnN0cihpbmRleCArIDMsIDIpXFxuICAgIH1cXG4gICAgcmV0dXJuIHNpemVcXG59XFxuXFxuXFxuXFxuZnVuY3Rpb24g6Kej5a+G5YiG5Lqr6ZO+5o6lKGkpIHtcXG5cXG4gICAgbyA9IFxcXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXFxcIlxcbiAgICBzID0gL1tcXFxcdFxcXFxuXFxcXGZcXFxcciBdL2dcXG5cXG5cXG5cXG4gICAgaSA9IFN0cmluZyhpKS5yZXBsYWNlKHMsIFxcXCJcXFwiKTtcXG4gICAgdmFyIEkgPSBpLmxlbmd0aDtcXG4gICAgSSAlIDQgPT0gMCAmJiAoaSA9IGkucmVwbGFjZSgvPT0/JC8sIFxcXCJcXFwiKSxcXG4gICAgICAgICAgICBJID0gaS5sZW5ndGgpLFxcbiAgICAgICAgKEkgJSA0ID09IDEgfHwgL1teK2EtekEtWjAtOS9dLy50ZXN0KGkpKSAmJiBsKFxcXCJJbnZhbGlkIGNoYXJhY3RlcjogdGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3JyZWN0bHkgZW5jb2RlZC5cXFwiKTtcXG4gICAgZm9yICh2YXIgZiA9IDAsIEIsIGssIGogPSBcXFwiXFxcIiwgRyA9IC0xOyArK0cgPCBJOylcXG4gICAgICAgIGsgPSBvLmluZGV4T2YoaS5jaGFyQXQoRykpLFxcbiAgICAgICAgQiA9IGYgJSA0ID8gQiAqIDY0ICsgayA6IGssXFxuICAgICAgICBmKysgJSA0ICYmIChqICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1ICYgQiA+PiAoLTIgKiBmICYgNikpKTtcXG4gICAgcmV0dXJuIGpcXG59XFxuXFxuXFxuXFxuXFxuLy/orqHnrpfkuKTkuKrml7bpl7TkuYvpl7TnmoTml7bpl7Tlt64g5aSa5bCR5aSp5pe25YiG56eSXFxuZnVuY3Rpb24gaW50ZXJ2YWxUaW1lKHN0YXJ0VGltZSwgZW5kVGltZSkge1xcbiAgICAvLyB2YXIgdGltZXN0YW1wPW5ldyBEYXRlKCkuZ2V0VGltZSgpOyAvL+iuoeeul+W9k+WJjeaXtumXtOaIs1xcbiAgICB2YXIgdGltZXN0YW1wID0gKERhdGUucGFyc2UobmV3IERhdGUoKSkpIC8gMTAwMDsgLy/orqHnrpflvZPliY3ml7bpl7TmiLMgKOavq+enkue6pylcXG4gICAgdmFyIGRhdGUxID0gXFxcIlxcXCI7IC8v5byA5aeL5pe26Ze0XFxuICAgIGlmICh0aW1lc3RhbXAgPCBzdGFydFRpbWUpIHtcXG4gICAgICAgIGRhdGUxID0gc3RhcnRUaW1lO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgZGF0ZTEgPSB0aW1lc3RhbXA7IC8v5byA5aeL5pe26Ze0XFxuICAgIH1cXG4gICAgdmFyIGRhdGUyID0gZW5kVGltZTsgLy/nu5PmnZ/ml7bpl7RcXG4gICAgLy8gdmFyIGRhdGUzID0gZGF0ZTIuZ2V0VGltZSgpIC0gZGF0ZTEuZ2V0VGltZSgpOyAvL+aXtumXtOW3rueahOavq+enkuaVsFxcbiAgICB2YXIgZGF0ZTMgPSAoZGF0ZTIgLSBkYXRlMSkgKiAxMDAwOyAvL+aXtumXtOW3rueahOavq+enkuaVsFxcbiAgICAvL+iuoeeul+WHuuebuOW3ruWkqeaVsFxcbiAgICB2YXIgZGF5cyA9IE1hdGguZmxvb3IoZGF0ZTMgLyAoMjQgKiAzNjAwICogMTAwMCkpO1xcbiAgICAvL+iuoeeul+WHuuWwj+aXtuaVsFxcblxcbiAgICB2YXIgbGVhdmUxID0gZGF0ZTMgJSAoMjQgKiAzNjAwICogMTAwMCk7IC8v6K6h566X5aSp5pWw5ZCO5Ymp5L2Z55qE5q+r56eS5pWwXFxuICAgIHZhciBob3VycyA9IE1hdGguZmxvb3IobGVhdmUxIC8gKDM2MDAgKiAxMDAwKSk7XFxuICAgIC8v6K6h566X55u45beu5YiG6ZKf5pWwXFxuICAgIHZhciBsZWF2ZTIgPSBsZWF2ZTEgJSAoMzYwMCAqIDEwMDApOyAvL+iuoeeul+Wwj+aXtuaVsOWQjuWJqeS9meeahOavq+enkuaVsFxcbiAgICB2YXIgbWludXRlcyA9IE1hdGguZmxvb3IobGVhdmUyIC8gKDYwICogMTAwMCkpO1xcblxcbiAgICAvL+iuoeeul+ebuOW3ruenkuaVsFxcblxcbiAgICB2YXIgbGVhdmUzID0gbGVhdmUyICUgKDYwICogMTAwMCk7IC8v6K6h566X5YiG6ZKf5pWw5ZCO5Ymp5L2Z55qE5q+r56eS5pWwXFxuICAgIHZhciBzZWNvbmRzID0gTWF0aC5yb3VuZChsZWF2ZTMgLyAxMDAwKTtcXG4gICAgY29uc29sZS5sb2coZGF5cyArIFxcXCLlpKkgXFxcIiArIGhvdXJzICsgXFxcIuWwj+aXtiBcXFwiKVxcbiAgICAvLyByZXR1cm4gICBkYXlzICsgXFxcIuWkqSBcXFwiICsgaG91cnMgKyBcXFwi5bCP5pe2IFxcXCIgKyBtaW51dGVzICsgXFxcIiDliIbpkp9cXFwiICsgc2Vjb25kcyArIFxcXCIg56eSXFxcIlxcbiAgICByZXR1cm4gZGF5cyArIFxcXCLlpKkgXFxcIiArIGhvdXJzICsgXFxcIuWwj+aXtiBcXFwiXFxufVxcblxcblxcblxcblxcblxcblxcbi8vIDEw5L2N5pe26Ze05oiz56eS6L2s5o2i5Li65qCH5YeG5pe26Ze0IDEw5L2N5pe26Ze05oiz5LmY5LulMTAwMFxcbmZ1bmN0aW9uIHRpbWVzdGFtcFRvVGltZSh0aW1lc3RhbXApIHtcXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXAgKiAxMDAwKVxcbiAgICB2YXIgWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJ1xcbiAgICB2YXIgTSA9IChkYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgOiBkYXRlLmdldE1vbnRoKCkgKyAxKSArICctJ1xcbiAgICBjb25zdCBEID0gKGRhdGUuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgKyBkYXRlLmdldERhdGUoKSA6IGRhdGUuZ2V0RGF0ZSgpKSArICcgJ1xcbiAgICBjb25zdCBoID0gKGRhdGUuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRIb3VycygpIDogZGF0ZS5nZXRIb3VycygpKSArICc6J1xcbiAgICBjb25zdCBtID0gKGRhdGUuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRhdGUuZ2V0TWludXRlcygpKSArICc6J1xcbiAgICBjb25zdCBzID0gKGRhdGUuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldFNlY29uZHMoKSA6IGRhdGUuZ2V0U2Vjb25kcygpKVxcbiAgICByZXR1cm4gWSArIE0gKyBEICsgaCArIG0gKyBzXFxufVxcblxcblxcblxcbi8vIDEz5L2N5pe26Ze05oiz5q+r56eS5LiN55So5LmY5LulMTAwMFxcbmZ1bmN0aW9uIHRpbWVzdGFtcFRvVGltZUxvbmcodGltZXN0YW1wKSB7XFxuICAgIHZhciBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKVxcbiAgICB2YXIgWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJ1xcbiAgICB2YXIgTSA9IChkYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgOiBkYXRlLmdldE1vbnRoKCkgKyAxKSArICctJ1xcbiAgICBjb25zdCBEID0gKGRhdGUuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgKyBkYXRlLmdldERhdGUoKSA6IGRhdGUuZ2V0RGF0ZSgpKSArICcgJ1xcbiAgICBjb25zdCBoID0gKGRhdGUuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRIb3VycygpIDogZGF0ZS5nZXRIb3VycygpKSArICc6J1xcbiAgICBjb25zdCBtID0gKGRhdGUuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRhdGUuZ2V0TWludXRlcygpKSArICc6J1xcbiAgICBjb25zdCBzID0gKGRhdGUuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldFNlY29uZHMoKSA6IGRhdGUuZ2V0U2Vjb25kcygpKVxcbiAgICByZXR1cm4gWSArIE0gKyBEICsgaCArIG0gKyBzXFxufVxcblxcblxcblxcblxcblxcblxcbi8qXFxuLy/ml7bpl7TmiLPovazmjaJcXG5mdW5jdGlvbiB0aW1lc3RhbXBUb1RpbWUodG0sIHRzKSB7XFxuICAgIHVuZGVmaW5lZFxcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRtICogMTAwMCk7IC8v5pe26Ze05oiz5Li6MTDkvY3pnIAqMTAwMO+8jOaXtumXtOaIs+S4ujEz5L2N55qE6K+d5LiN6ZyA5LmYMTAwMFxcbiAgICB2YXIgWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXG4gICAgdmFyIE0gPSAoZGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpIDogZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLSc7XFxuICAgIHZhciBEID0gZGF0ZS5nZXREYXRlKCk7XFxuICAgIHZhciBoID0gJyB8ICcgKyBkYXRlLmdldEhvdXJzKCkgKyAnOic7XFxuICAgIHZhciBtID0gZGF0ZS5nZXRNaW51dGVzKCk7XFxuICAgIGlmIChtIDwgMTApIG0gPSAnMCcgKyBtO1xcbiAgICBtID0gbSArICc6J1xcbiAgICB2YXIgcyA9IGRhdGUuZ2V0U2Vjb25kcygpO1xcbiAgICBpZiAocyA8IDEwKSBzID0gJzAnICsgcztcXG4gICAgaWYgKHRzID09IDApIHJldHVybiBZICsgTSArIEQ7XFxuICAgIGlmICh0cyA9PSAxKSByZXR1cm4gWSArIE0gKyBEICsgaCArIG0gKyBzO1xcbn1cXG4qL1xcblxcblxcbi8qKiAqIOaXpeacn+agvOW8j+WMliAqIEBwYXJhbSBOdW1iZXIgdGltZSDml7bpl7TmiLMgKiBAcGFyYW0gU3RyaW5nIGZvcm1hdCDmoLzlvI8gKi9cXG5cXG4vL+aXtumXtOaIs+i9rOS4uuaXpeacn1xcbmZ1bmN0aW9uIGRhdGVGb3JtYXQodGltZSwgZm9ybWF0KSB7XFxuICAgIGNvbnN0IHQgPSBuZXcgRGF0ZSh0aW1lKSAvLyDml6XmnJ/moLzlvI9cXG4gICAgZm9ybWF0ID0gZm9ybWF0IHx8ICdZLW0tZCBoOmk6cydcXG4gICAgbGV0IHllYXIgPSB0LmdldEZ1bGxZZWFyKCkgLy8g55Sx5LqOIGdldE1vbnRoIOi/lOWbnuWAvOS8muavlOato+W4uOaciOS7veWwjyAxIFxcbiAgICBsZXQgbW9udGggPSB0LmdldE1vbnRoKCkgKyAxXFxuICAgIGxldCBkYXkgPSB0LmdldERhdGUoKVxcbiAgICBsZXQgaG91cnMgPSB0LmdldEhvdXJzKClcXG4gICAgbGV0IG1pbnV0ZXMgPSB0LmdldE1pbnV0ZXMoKVxcbiAgICBsZXQgc2Vjb25kcyA9IHQuZ2V0U2Vjb25kcygpXFxuICAgIGNvbnN0IGhhc2ggPSB7XFxuICAgICAgICAneSc6IHllYXIsXFxuICAgICAgICAnbSc6IG1vbnRoLFxcbiAgICAgICAgJ2QnOiBkYXksXFxuICAgICAgICAnaCc6IGhvdXJzLFxcbiAgICAgICAgJ2knOiBtaW51dGVzLFxcbiAgICAgICAgJ3MnOiBzZWNvbmRzXFxuICAgIH0gLy8g5piv5ZCm6KGlIDAgXFxuICAgIGNvbnN0IGlzQWRkWmVybyA9IChvKSA9PiB7XFxuICAgICAgICByZXR1cm4gL018RHxIfEl8Uy8udGVzdChvKVxcbiAgICB9XFxuICAgIHJldHVybiBmb3JtYXQucmVwbGFjZSgvXFxcXHcvZywgbyA9PiB7XFxuICAgICAgICBsZXQgcnQgPSBoYXNoW28udG9Mb2NhbGVMb3dlckNhc2UoKV1cXG4gICAgICAgIHJldHVybiBydCA+IDEwIHx8ICFpc0FkZFplcm8obykgPyBydCA6IGAwJHtydH1gXFxuICAgIH0pXFxufVxcblxcblxcblxcbi8v6I635Y+W5a2X56ym5Liy55qE5a2X6IqC5pWwIFxcbmZ1bmN0aW9uIOiOt+WPluWtl+iKguaVsChrZXkpIHtcXG4gICAgdmFyIOaJvuS4reaWhyA9IC9bXFxcXHU0ZTAwLVxcXFx1OWZhNV0vZztcXG4gICAgaWYgKOaJvuS4reaWhy50ZXN0KGtleSkpIHtcXG4gICAgICAgIOS4reaWh+aVsCA9IGtleS5tYXRjaCjmib7kuK3mlocpLmxlbmd0aFxcbiAgICAgICAgcmV0dXJuIGtleS5sZW5ndGggKyDkuK3mlofmlbAgKiAyO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgcmV0dXJuIGtleS5sZW5ndGg7XFxuICAgIH1cXG59XFxuXFxuXFxuZnVuY3Rpb24g6I635Y+W5bCP6b6Z5LqR55uY5pKt5pS+57q/6LevKCl7XFxuICAgIFxcbiAgICDojrflj5bmkq3mlL7nur/ot6/or7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY29uZmlnLWNlbnRlci92MS9jb25maWdcXFwiXFxuICAgIFxcbiAgICDlpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG59XFxuXFxuXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9YHtgK2BcXFwicGxhdGZvcm1cXFwiOlxcXCJhbmRyb2lkXFxcIixcXFwiYXBwc1xcXCI6W1xcXCJkY3RcXFwiLFxcXCJjbG91ZFxcXCJgK2BdfWBcXG7nur/ot6/lk43lupQgPSBwb3N0KOiOt+WPluaSreaUvue6v+i3r+ivt+axgiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBcXG7nur/ot6/mlbDnu4Q9SlNPTi5wYXJzZSjnur/ot6/lk43lupQpLmRhdGEuY29tbW9uLmlwZnNnd1xcblxcbmZvcih2YXIgaSBpbiDnur/ot6/mlbDnu4Qpe1xcbiAgICDnur/ot6/mlbDnu4RbaV0957q/6Lev5pWw57uEW2ldLmFkZHIrXFxcIi9pcGZzL1xcXCJcXG59XFxuXFxucmV0dXJuIOe6v+i3r+aVsOe7hFxcblxcbiAgICBcXG4gICAgXFxuICAgIFxcbiAgICBcXG59XFxuXFxuXFxuXFxuXFxudmFyIENJROmTvuaOpeino+aekCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcblxcbi8vaW5wdXQ9Q0lEJibmlofku7blkI1cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuaWh+S7tkNJRD1pbnB1dC5zcGxpdChcXFwiJiZcXFwiKVswXVxcbuagh+mimD1pbnB1dC5zcGxpdChcXFwiJiZcXFwiKVsxXVxcblxcblxcblxcblxcbmlmKOaJvuinhumikeato+WImS50ZXN0KOagh+mimCkpe1xcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nI2lzVmlkZW89dHJ1ZSMnXFxu5qC85byPPVxcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcblxcblxcblxcblxcbn1lbHNlIGlmKOaJvumfs+mikeato+WImS50ZXN0KOagh+mimCkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5tcDMnXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcblxcblxcblxcbn1lbHNlIGlmKOaJvuWbvueJh+ato+WImS50ZXN0KOagh+mimCkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5qcGcnXFxu5qC85byPPVxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG5cXG59ZWxzZXtcXG7pk77mjqXliY3nvIA9XFxcImRvd25sb2FkOi8vXFxcIlxcbuaWsOagvOW8jz1cXFwiXFxcIlxcbuagvOW8jz1cXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxuXFxufVxcblxcbuWklumTvj1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEXFxuXFxuXFxuXFxu57q/6LevMT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68yPVxcXCJodHRwczovL2lwZnNndzAyLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzM9XFxcImh0dHBzOi8vaXBmc2d3MDMuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevND1cXFwiaHR0cHM6Ly9pcGZzZ3cwNC5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot681PVxcXCJodHRwczovL2lwZnNndzA1LnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcblxcbi8v57q/6LevNj1cXFwiaHR0cHM6Ly9pcGZzLmp1Z3VndS5jbi9pcGZzL1xcXCIr5paH5Lu2Q0lEXFxu57q/6LevNj1cXFwiaHR0cHM6Ly9pcGZzLWd3Lm5tZWRpYS5zcGFjZS9pcGZzL1xcXCIr5paH5Lu2Q0lEXFxuXFxuLy/nur/ot683PVxcXCJodHRwczovL1xcXCIr5paH5Lu2Q0lEK1xcXCIuaXBmcy53M3MubGluay8jeC1pcGZzLWNvbXBhbmlvbi1uby1yZWRpcmVjdFxcXCJcXG4vL+e6v+i3rzc9XFxcImh0dHBzOi8vXFxcIivmlofku7ZDSUQrXFxcIi5pcGZzLm5mdHN0b3JhZ2UubGluay9cXFwiXFxuXFxu57q/6LevNz1cXFwiaHR0cHM6Ly9nbGlwZnMuY29tL2lwZnMvXFxcIivmlofku7ZDSURcXG5cXG5cXG5cXG7lhbbku5bnur/ot6/mlbDnu4Q9W1xcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSURcXG4sXFxcImh0dHBzOi8vZ2xpcGZzLmNvbS9pcGZzL1xcXCIr5paH5Lu2Q0lELFxcXCJodHRwczovL2lwZnMtZ3cubm1lZGlhLnNwYWNlL2lwZnMvXFxcIivmlofku7ZDSUQsXFxcImh0dHBzOi8vaW1nLmtlbm5lbGNsdWIucHJvL2lwZnMvXFxcIivmlofku7ZDSUQsXFxcImh0dHBzOi8vaXBmcy1ndy5ubWVkaWEuc3BhY2UvaXBmcy9cXFwiK+aWh+S7tkNJRF1cXG5cXG5cXG5cXG5cXG5cXG5pZihzdG9yYWdlMC5nZXRJdGVtKCdJUEZT6LWE5rqQ5Lu75Yqh5pe26Ze05oizJykpe1xcblxcbmlmKHN0b3JhZ2UwLmdldEl0ZW0oJ0lQRlPotYTmupDku7vliqHml7bpl7TmiLMnKSE9bmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKSl7XFxuXFxu5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEPeiOt+WPluWwj+m+meS6keebmOaSreaUvue6v+i3rygpXFxuc3RvcmFnZTAuc2V0SXRlbSgn5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEJywg5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEKVxcblxcbnN0b3JhZ2UwLnNldEl0ZW0oJ0lQRlPotYTmupDku7vliqHml7bpl7TmiLMnLG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkpXFxufVxcblxcbn1lbHNle1xcblxcbuWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hD3ojrflj5blsI/pvpnkupHnm5jmkq3mlL7nur/ot68oKVxcbnN0b3JhZ2UwLnNldEl0ZW0oJ+Wwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hCcsIOWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hClcXG5zdG9yYWdlMC5zZXRJdGVtKCdJUEZT6LWE5rqQ5Lu75Yqh5pe26Ze05oizJyxuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpKVxcbn1cXG5cXG5cXG5cXG5pZigvKG1wM3xpc1ZpZGVvKS8udGVzdCjmlrDmoLzlvI8pKXtcXG4gICAgXFxuXFxuLypcXG7pk77mjqU1PeeUn+aIkOebtOmTvijnur/ot681LOaWh+S7tkNJRCzmoIfpopgpXFxu6ZO+5o6lND3nlJ/miJDnm7Tpk74o57q/6LevNCzmlofku7ZDSUQs5qCH6aKYKVxcbumTvuaOpTM955Sf5oiQ55u06ZO+KOe6v+i3rzMs5paH5Lu2Q0lELOagh+mimClcXG7pk77mjqUyPeeUn+aIkOebtOmTvijnur/ot68yLOaWh+S7tkNJRCzmoIfpopgpXFxu6ZO+5o6lMT3nlJ/miJDnm7Tpk74o57q/6LevMSzmlofku7ZDSUQs5qCH6aKYKVxcbiovXFxuXFxu5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEPXN0b3JhZ2UwLmdldEl0ZW0oJ+Wwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hCcpXFxuZm9yKHZhciBpIGluIOWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hCl7XFxuICAgIOWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hFtpXT3nlJ/miJDnm7Tpk74o5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEW2ldLOaWh+S7tkNJRCzmoIfpopgpK+aWsOagvOW8j1xcbn1cXG4vKuS/neaMgeaAu+e6v+i3r+S4uuWBtuaVsOWvueensFxcbmlmKOWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hC5sZW5ndGglMil7XFxuaWYo5YW25LuW57q/6Lev5pWw57uELmxlbmd0aCUyKeWFtuS7lue6v+i3r+aVsOe7hD3lhbbku5bnur/ot6/mlbDnu4RcXG5lbHNlIOWFtuS7lue6v+i3r+aVsOe7hD3lhbbku5bnur/ot6/mlbDnu4RcXG59ZWxzZXtcXG4gICAgaWYo5YW25LuW57q/6Lev5pWw57uELmxlbmd0aCUyKeWFtuS7lue6v+i3r+aVsOe7hD3lhbbku5bnur/ot6/mlbDnu4RcXG5lbHNlIOWFtuS7lue6v+i3r+aVsOe7hD3lhbbku5bnur/ot6/mlbDnu4RcXG4gICAgfVxcbiAgICBcXG4gICAgKi9cXG5cXG7lpJrnur/ot6/pk77mjqU95bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uELmNvbmNhdCjlhbbku5bnur/ot6/mlbDnu4QpXFxu57q/6Lev5aS06YOoPVtdXFxu57q/6Lev5ZCN56ewPVtdXFxu57q/6Lev5ZCN56ew5Y+Y6YePPTFcXG5cXG7oh6rlrprkuYlVQT0nRGFsdmlrLzIuMS4wIChMaW51eDsgVTsgQW5kcm9pZCAxMjsgMjIwMTEyMkMgQnVpbGQvU0tRMS4yMTEwMDYuMDAxKSdcXG5mb3IodmFyIGkgaW4g5aSa57q/6Lev6ZO+5o6lKXtcXG4gICAgXFxuICAgIGlmKOWkmue6v+i3r+mTvuaOpVtpXS5pbmNsdWRlcyhcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzXFxcIikpe1xcbiAgICAgICAg57q/6Lev5aS06YOoW2ldPXsnUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nLCdVc2VyLUFnZW50Jzog6Ieq5a6a5LmJVUF9XFxuICAgICAgICDnur/ot6/lkI3np7BbaV09XFxcIuWwj+m+meWklumTvlxcXCJcXG4gICAgfWVsc2UgaWYo5aSa57q/6Lev6ZO+5o6lW2ldLmluY2x1ZGVzKFxcXCJzdGFyaXZlcnBhbi5jb21cXFwiKSl7XFxuICAgICAgIOe6v+i3r+WktOmDqFtpXT17J1VzZXItQWdlbnQnOuiHquWumuS5iVVBfVxcbiAgICAgICDnur/ot6/lkI3np7BbaV09XFxcIuWwj+m+mee6v+i3r1xcXCIr57q/6Lev5ZCN56ew5Y+Y6YePXFxuICAgIH1lbHNle1xcbiAgICAgICDnur/ot6/lpLTpg6hbaV09eydVc2VyLUFnZW50Jzroh6rlrprkuYlVQX1cXG4gICAgICAg57q/6Lev5ZCN56ewW2ldPVxcXCLlhbbku5bnur/ot69cXFwiK+e6v+i3r+WQjeensOWPmOmHj1xcbiAgICB9XFxuICAgIOe6v+i3r+WQjeensOWPmOmHjysrXFxuICAgIFxcbiAgICBcXG59XFxuXFxuXFxu5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSxoZWFkZXJzOue6v+i3r+WktOmDqCxuYW1lczrnur/ot6/lkI3np7B9XFxuXFxuLypcXG5cXG7lpJrnur/ot6/pk77mjqU9W+e6v+i3rzEr5paw5qC85byPLOe6v+i3rzIr5paw5qC85byPLOe6v+i3rzMr5paw5qC85byPLOe6v+i3rzQr5paw5qC85byPK+aWsOagvOW8jyznur/ot682K+aWsOagvOW8jyznur/ot683K+aWsOagvOW8j11cXG5cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydVc2VyLUFnZW50Jzroh6rlrprkuYlVQX0sIHsnVXNlci1BZ2VudCc66Ieq5a6a5LmJVUF9LCB7J1VzZXItQWdlbnQnOuiHquWumuS5iVVBfSwgeydVc2VyLUFnZW50Jzroh6rlrprkuYlVQX0sIHsnVXNlci1BZ2VudCc66Ieq5a6a5LmJVUF9LHsnUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nLCdVc2VyLUFnZW50Jzog6Ieq5a6a5LmJVUF9LHsnVXNlci1BZ2VudCc6IOiHquWumuS5iVVBfSx7J1VzZXItQWdlbnQnOiDoh6rlrprkuYlVQX1dLG5hbWVzOlsn57q/6LevNScsJ+e6v+i3rzQnLCfnur/ot68zJywn57q/6LevMicsJ+e6v+i3rzEnLCflpJbpk74nLCfnur/ot682Jywn57q/6LevNyddfVxcblxcbiovXFxuXFxucmV0dXJuIEpTT04uc3RyaW5naWZ5KOWkmue6v+i3rylcXG5cXG5cXG59ZWxzZSByZXR1cm4g6ZO+5o6l5YmN57yAK+WklumTvivmoLzlvI9cXG5cXG5cXG5cXG5cXG4vL+iAgemTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbSYmXFxcIivmlrDmoLzlvI9cXG5cXG59KVxcblxcblxcblxcbmZ1bmN0aW9uIOino+Wvhuaooeadvyjnp5jmlocsIGtleSxpdikge1xcbiAgICBcXG4gICAgZXZhbChnZXRDcnlwdG9KUygpKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZGVjcnlwdCjnp5jmlocsIENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGtleSksIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwiaXZcXFwiOiBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShpdiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIm1vZGVcXFwiOiBDcnlwdG9KUy5tb2RlLkNCQyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwicGFkZGluZ1xcXCI6IENyeXB0b0pTLnBhZC5Qa2NzN1xcbiAgICAgICAgICAgICAgICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpXFxuICAgICAgICAgICAgICAgIH1cXG5cXG5cXG5cXG5cXG5cXG52YXIg5LiD6Imy55Wq6Kej5p6QID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcblxcbue9kemhtea6kOeggT1yZXF1ZXN0KGlucHV0LCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG5cXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJpUGhvbmVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIkNvb2tpZVxcXCI6IFxcXCJ1c2VyX2lkPTUwNjsgdXNlcl9uYW1lPTEyNzk5NzQ0MDsgZ3JvdXBfaWQ9MjsgZ3JvdXBfbmFtZT0lRTklQkIlOTglRTglQUUlQTQlRTQlQkMlOUElRTUlOTElOTg7IHVzZXJfY2hlY2s9OTM1ODAwZmEwMjJlOTU4ZTZlOThlNmQxMmFmMzRkOGE7IHVzZXJfcG9ydHJhaXQ9JTJGc3RhdGljJTJGaW1hZ2VzJTJGdG91eGlhbmcucG5nXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgdmFyIOaVsOaNriA9IEpTT04ucGFyc2Uo572R6aG15rqQ56CBLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuXFxuICAgIHZhciB1cmwgPSDmlbDmja4udXJsXFxuICAgIHZhciBlbmNyeXB0PeaVsOaNri5lbmNyeXB0XFxuICAgIHZhciBmcm9tPeaVsOaNri5mcm9tXFxuXFxuICAgIGlmICjmlbDmja4uZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgIH0gZWxzZSBpZiAo5pWw5o2uLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgIH1cXG5pZiAoL20zdTh8bXA0Ly50ZXN0KHVybCkpICAgcmV0dXJuIHVybFxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu56ys5LqM5qyh6K+35rGCPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKS5yZXBsYWNlKFxcXCJ3d3cuXFxcIixcXFwicGxheS5cXFwiKStcXFwiL3BsYXkucGhwP3VybD1cXFwiK3VybFxcblxcbnVybD1yZXF1ZXN0KOesrOS6jOasoeivt+axgilcXG5cXG5ldmFsKHBkZmgodXJsLCdib2R5JiZzY3JpcHQmJkh0bWwnKS5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXHNcXFxcU10qP30vKVswXSlcXG51cmw9Y29uZmlnLnVybFxcblxcbmtleT1cXFwiV2VpS2FuSnUyMDIzMDIwNlxcXCJcXG5pdj1cXFwiOWZhNDI4YTVmYzFjNGQwOFxcXCJcXG5cXG5cXG5cXG5cXG5cXG51cmw96Kej5a+G5qih5p2/KHVybCxrZXksaXYpLm1hdGNoKC9cXFxcd3s1OX0vKVswXVxcblxcblxcblxcblxcbmxvZyh1cmwpXFxuXFxucmV0dXJuIHVybCtcXFwiJiYubXA0XFxcIitDSUTpk77mjqXop6PmnpBcXG5cXG5cXG5cXG5cXG59KVxcblxcblxcblxcblxcblxcbmZ1bmN0aW9uIOiOt+WPluaWh+S7tuWkp+WwjyhDSUQpIHtcXG5cXG5zaG93TG9hZGluZygn6I635Y+W5paH5Lu25aSn5bCP5LitLi4uLi4nKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu57q/6LevPVxcXCJodHRwczovL2lwZnNndzA0LnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcblxcblxcbuivt+axgumTvuaOpT3nlJ/miJDnm7Tpk74o57q/6LevLENJRClcXG5cXG4vL+ivt+axgumTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwNC5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCIrQ0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIlxcblxcbmZvciAoOzspIHtcXG7lk43lupTlpLTpg6g9cmVxdWVzdCjor7fmsYLpk77mjqUse29ubHlIZWFkZXJzOnRydWV9KVxcbmlmKOWTjeW6lOWktOmDqC5pbmNsdWRlcyhcXFwiY29udGVudC1sZW5ndGhcXFwiKSkgYnJlYWs7XFxufVxcblxcblxcbmhpZGVMb2FkaW5nKClcXG5yZXR1cm4gSlNPTi5wYXJzZSjlk43lupTlpLTpg6gpLmhlYWRlcnNbXFxcImNvbnRlbnQtbGVuZ3RoXFxcIl1bMF1cXG5cXG59XFxuXFxuXFxuXFxuLy8v5Y676YeN5Yqg5o6S5bqPXFxuLy/mjpLluo/mjIk656ym5Y+3PuaVsOe7hD7kuK3mloc+5bCP5YaZ5a2X5q+NPuWkp+WGmeWtl+avjVxcblxcbmZ1bmN0aW9uIOaVsOe7hOWOu+mHjSjmlbDnu4QpIHtcXG5cXG5mb3IgKHZhciBpID0gMTsgaSA8IOaVsOe7hC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgZm9yICh2YXIgaiA9IDE7IGogPD0gaTsgaisrKSB7XFxuICAgICAgICAgICAg5q+U6L6DYT3mlbDnu4RbaV1cXG4gICAgICAgICAgICDmr5TovoNiPeaVsOe7hFtpIC0gal1cXG4gICAgICAgICAgICBpZijmlbDnu4RbaV0gPT09IE9iamVjdClcXG4gICAgICAgICAgICDmr5TovoNhPUpTT04uc3RyaW5naWZ5KOaVsOe7hFtpXSlcXG4gICAgICAgICAgICBpZijmlbDnu4RbaSAtIGpdID09PSBPYmplY3QpXFxuICAgICAgICAgICAg5q+U6L6DYj1KU09OLnN0cmluZ2lmeSjmlbDnu4RbaSAtIGpdKVxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIGlmICjmr5TovoNhID09IOavlOi+g2IpIHtcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIOaVsOe7hC5zcGxpY2UoaSwxKTtcXG4gICAgICAgICAgICAgICAgaS0tXFxuXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICBcXG4gICAgICAgIH1cXG4gICAgfVxcblxcblxcbmxldCDov4fmu6TlhYPntKAgPVt1bmRlZmluZWQsJycsLGZhbHNlLHRydWUsbnVsbF0gXFxu6L+H5ruk5YWD57SgLmZpbHRlcijmlbDnu4Q9PuaVsOe7hClcXG4gICAgXFxudHJ5IHtcXG4gICAgXFxuICAgIFxcbiAgICDmlbDnu4QgPSDmlbDnu4Quc29ydChcXG4oYSxiKT0+YS7mlofku7blkI0ubG9jYWxlQ29tcGFyZShiLuaWh+S7tuWQjSlcXG4pXFxuICAgIFxcbn0gY2F0Y2ggKGUpIHtcXG4gICAg5pWw57uEID0g5pWw57uELnNvcnQoXFxuKGEsYik9PmEubG9jYWxlQ29tcGFyZShiKVxcbilcXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxucmV0dXJuIOaVsOe7hFxcblxcblxcbn1cXG5cXG5cXG5cXG5mdW5jdGlvbiDmlbDnu4TmjpLluo8o5pWw57uELOWvueixoeWQjSkge1xcbiAgICBcXG5cXG5sZXQg6L+H5ruk5YWD57SgID1bdW5kZWZpbmVkLCcnLCxmYWxzZSx0cnVlLG51bGxdIFxcbui/h+a7pOWFg+e0oC5maWx0ZXIo5pWw57uEPT7mlbDnu4QpXFxuICAgIFxcbnRyeSB7ICAgXFxuICAgIOaVsOe7hCA9IOaVsOe7hC5zb3J0KFxcbihhLGIpPT5hLuaWh+S7tuWQjS5sb2NhbGVDb21wYXJlKGIuZmlsZU5hbWUpXFxuKVxcbiAgICBcXG59IGNhdGNoIChlKSB7XFxuICAgIFxcbiAgICDmlbDnu4QgPSDmlbDnu4Quc29ydChcXG4oYSxiKT0+YS5sb2NhbGVDb21wYXJlKGIpXFxuKVxcbiAgICBsb2coZS5tZXNzYWdlKVxcbn1cXG5cXG5yZXR1cm4g5pWw57uEXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcbmZ1bmN0aW9uIOiOt+WPluaWh+S7tuWkuUNJRCjmlofku7blpLlJRCzmlofku7blpLnlkI0sSVBGU+WvhumSpSzmk43kvZwpIHtcXG4gICAgXFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5paH5Lu26Lev5b6EPVxcXCIwXFxcIivot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOWkh+S7vTonK+aWh+S7tui3r+W+hClcXG5cXG5sZXQg5pW05L2T5pWw5o2uPVtdXFxuXFxuXFxu6K+35rGC5Y+Y6YePYSA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZvbGRlcnNcXFwiXFxu6K+35rGC5Y+Y6YePYiA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZpbGVzXFxcIlxcbiAgICAgICAgICAgICAgICBcXG5cXG5cXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5SUQrYFxcXCJ9YFxcblxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcblxcbmxldCDmlofku7bmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahiKSB7XFxuICAgICAgICDmlofku7blkI095YiX6KGoYltpXS5maWxlTmFtZVxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqGJbaV0uZmlsZVR5cGVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahiW2ldLmZpbGVTaXplXFxuICAgICAgICBqc29u5pWw5o2uPXtcXFwi5paH5Lu25ZCNXFxcIjrmlofku7blkI0sXFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7bmoLzlvI9cXFwiOuaWh+S7tuagvOW8jyxcXFwi5paH5Lu25aSn5bCPXFxcIjrmlofku7blpKflsI99XFxuICAgICAgICDmlofku7bmlbDnu4RbaV09anNvbuaVsOaNrlxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgbGV0IOaWh+S7tuWkueaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgICAgIOaWh+S7tuWkueaVsOe7hFtpXT3liJfooahhW2ldLmZpbGVOYW1lICAgICBcXG4gICAgfVxcbiAgICBcXG5cXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIs5YiX6KGoYSlcXG5cXG7mlofku7blpLnliJfooag95YiX6KGoYVxcblxcbuaWh+S7tuWIl+ihqD3liJfooahiXFxuXFxuXFxuZGF0YeaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLot6/lvoRcXFwiOlxcXCJgK+aWh+S7tui3r+W+hCtgXFxcIixcXFwi5paH5Lu25aS5XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuWkueaVsOe7hCkrYCxcXFwi5paH5Lu2XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuaVsOe7hCkrYH1gXFxuXFxuXFxu5pW05L2T5pWw5o2uLnB1c2goSlNPTi5wYXJzZShkYXRh5pWw5o2uKSlcXG5cXG5cXG5cXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+W+queOr+iOt+WPluaWh+S7tuWkuUNJRCcpKS5ydWxlKVxcblxcbui3r+W+hOWIh+WJsj3mlofku7bot6/lvoQuc3BsaXQo6Lev5b6E6Ze06ZqUKVxcbui3r+W+hOWIh+WJsi5zcGxpY2Uo6Lev5b6E5YiH5YmyLmxlbmd0aC0xLDEpXFxuXFxu5paH5Lu26Lev5b6EPei3r+W+hOWIh+WJsi5qb2luKOi3r+W+hOmXtOmalClcXG5cXG5cXG5yZXR1cm4g5pW05L2T5pWw5o2uXFxuXFxuXFxuXFxuXFxuXFxuXFxufVxcblxcblxcblxcblxcbi8v5YiX6KGoYeS4uuaWh+S7tuWkueWIl+ihqCDliJfooahi5Li65paH5Lu25YiX6KGoIFxcbi8v5paH5Lu25aS55ZCN5Li65b2T5YmN5aSH5Lu955qE5paH5Lu25aS55ZCNXFxuLy9JUEZT5a+G6ZKl5Li65b2T5YmN5aSH5Lu955qE5bCP6b6Z5LqR55uY5a+G6ZKlXFxuLy/lrZjmlL7ot6/lvoTkuIDoiKzkuLpcXFwiLzBcXFwiLOS5n+WPr+S7peiHquWumuS5ieaIluiAhemAieaLqVxcblxcbmZ1bmN0aW9uIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5a2Y5pS+6Lev5b6ELOWtmOWTqumHjCzmk43kvZwpIHtcXG4gICAgXFxuICAgIFxcbiAgICBcXG5cXG5cXG5cXG4gICAgcmV0dXJuICQo5paH5Lu25aS55ZCNLC8o5aSN5Yi2fOS6keWPo+S7pHzlr7zlh7opLy50ZXN0KOaTjeS9nCk/XFxcIuiuvue9ruWvvOWHuueahOaWh+S7tuWkueWQjeS4jeiDveepulxcXFxu6buY6K6k5ZKM5Y6f5p2l5LiA5qC354K556Gu5a6a5Y2z5Y+vXFxcIjpcXFwi5aSH5Lu95paw5bu655qE5paH5Lu25aS55ZCNXFxcXG7kuI3ovpPlhaXliJnkuI3lu7rmlofku7blpLlcXFwiKS5pbnB1dCgo5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOWtmOaUvui3r+W+hCzlrZjlk6rph4ws5pON5L2cKSA9PiB7XFxuICAgICAgICBcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuaWYo5YiX6KGoYi5sZW5ndGg8MSYm5YiX6KGoYS5sZW5ndGg8MSlyZXR1cm4gXFxcInRvYXN0Oi8v5rKh5paH5Lu25L2g5aSH5Lu95Liq6ZSk5a2QXFxcIlxcbmVsc2V7XFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIOaWh+S7tuWkueWQjT1pbnB1dFxcbiAgICBpZigh5paH5Lu25aS55ZCNKSDmlofku7bot6/lvoQgPSDlrZjmlL7ot6/lvoRcXG4gICAgZWxzZSDmlofku7bot6/lvoQgPSDlrZjmlL7ot6/lvoQr6Lev5b6E6Ze06ZqUK+aWh+S7tuWkueWQjVxcblxcbiAgICAg5a2Y5YWl6Lev5b6EID0g5a2Y5pS+6Lev5b6EXFxuICAgIFxcbiAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU9SVBGU+WvhumSpVxcbiAgICBcXG4gICAgXFxuICAgIGxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku73moLnnm67lvZUgPSByZWFkRmlsZSjlrZjlk6rph4wrJzAuanNvbicsIDApIHx8IFtdO1xcbiAgICAgXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5pZigh5paH5Lu25aS55ZCNKeaWh+S7tuWkueaVsOe7hD1gW11gXFxuZWxzZSDmlofku7blpLnmlbDnu4Q9YFtcXFwiYCvmlofku7blpLnlkI0rYFxcXCJdYFxcblxcbiAgICAvL+WcqOaMh+Wumui3r+W+hOWKoOWFpeaWh+S7tuWkuVxcbiAgICBcXG4gICAgXFxuaWYoL+Wkh+S7vS8udGVzdCjmk43kvZwpKXtcXG5pZijlsI/pvpnkupHnm5jmlofku7blpLnlpIfku73moLnnm67lvZUubGVuZ3RoPDEpe1xcbiAgICBcXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCl8fCAnW10nKTtcXG5cXG5cXG4gICAgIFxcbuWwj+m+meS6keebmOWkh+S7veebruW9lS5wdXNoKOWtmOWTqumHjCsnMC5qc29uJylcXG5cXG7lsI/pvpnkupHnm5jlpIfku73nm67lvZU95pWw57uE5Y676YeNKOWwj+m+meS6keebmOWkh+S7veebruW9lSlcXG5cXG5cXG5cXG5zYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSwgMCk7XFxuXFxuXFxuXFxuXFxuXFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu95qC555uu5b2VPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWkh+S7vVxcXCIsXFxcImRhdGFcXFwiOiB7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogYCvmlofku7blpLnmlbDnu4QrYCxcXFwi5paH5Lu2XFxcIjpbXX19YFxcblxcblxcbnNhdmVGaWxlKOWtmOWTqumHjCsnMC5qc29uJywg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu95qC555uu5b2VLCAwKTtcXG5cXG59ZWxzZSB7XFxuICAgIFxcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvlrZjlhaXot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgIGlmKOaWh+S7tuWkueWQjSnlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLkucHVzaCjmlofku7blpLnlkI0pXFxuXFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5KVxcbiAgICBcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5PeaWh+S7tuWkueWIl+ihqFxcbiAgICBcXG5cXG5zYXZlRmlsZSjlrZjlk6rph4wr5a2Y5YWl6Lev5b6EKycuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbmlmKOWtmOWFpei3r+W+hC5sZW5ndGg+MjI1KXtcXG4gICAgdG9hc3QoXFxcIumBh+i3r+W+hOi2hemVvyDor6bmg4XnnIvml6Xlv5dcXFwiKVxcbiAgICBsb2coXFxcIuivt+WLv+WPoOWKoOWkmuS4quaWh+S7tuWkuSDor7fmo4Dmn6Xor6Xot6/lvoTnmoTlpIfku706XFxcIivlrZjlk6rph4wpXFxuICAgIFxcbn1cXG5cXG4gICAgXFxufVxcbiAgICAgICAgXFxufVxcblxcbmlmKC/lpI3liLYvLnRlc3Qo5pON5L2cKSl7XFxuICAgIFxcbiAgICBcXG5cXG7mlbTkvZPmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW1xcXCJgK+aWh+S7tuWkueWQjStgXFxcIl0sXFxcIuaWh+S7tlxcXCI6W119XX1gXFxuXFxuXFxuXFxu5pW05L2T5pWw5o2uPUpTT04ucGFyc2Uo5pW05L2T5pWw5o2uKVxcblxcbn1cXG4gIFxcbiAgICBcXG4gICAgXFxuICAgIOaWh+S7tuaVsOe7hD1bXVxcbiAgICBcXG4gICAgXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYikge1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0uZmlsZU5hbWVcXG4gICAgICAgIOaWh+S7tuagvOW8jz3liJfooahiW2ldLmZpbGVUeXBlXFxuICAgICAgICDmlofku7ZDSUQ95YiX6KGoYltpXS5maWxlQ2lkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoYltpXS5maWxlU2l6ZVxcbiAgICAgICAganNvbuaVsOaNrj17XFxcIuaWh+S7tuWQjVxcXCI65paH5Lu25ZCNLFxcXCLmlofku7ZDSURcXFwiOuaWh+S7tkNJRCxcXFwi5paH5Lu25qC85byPXFxcIjrmlofku7bmoLzlvI8sXFxcIuaWh+S7tuWkp+Wwj1xcXCI65paH5Lu25aSn5bCPfVxcbiAgICAgICAg5paH5Lu25pWw57uEW2ldPWpzb27mlbDmja5cXG4gICAgICAgIFxcbiAgICB9XFxuICAgIFxcbiAgICDmlofku7blpLnmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgICAgICDmlofku7blpLnmlbDnu4RbaV095YiX6KGoYVtpXS5maWxlTmFtZVxcbiAgICB9XFxuICAgIFxcblxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIizliJfooahhKVxcblxcbuaWh+S7tuWkueWIl+ihqD3liJfooahhXFxuXFxu5paH5Lu25YiX6KGoPeWIl+ihqGJcXG5cXG5cXG5cXG5cXG5cXG5kYXRh5pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIui3r+W+hFxcXCI6XFxcImAr5paH5Lu26Lev5b6EK2BcXFwiLFxcXCLmlofku7blpLlcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25aS55pWw57uEKStgLFxcXCLmlofku7ZcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25pWw57uEKStgfWBcXG5cXG7lpIfku73mlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IGArZGF0YeaVsOaNritgfWBcXG5cXG5cXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gcmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCBbXTtcXG5cXG5cXG5cXG5pZigv5aSN5Yi2Ly50ZXN0KOaTjeS9nCkpe1xcbiAgICBcXG4gIFxcblxcbuaVtOS9k+aVsOaNri5kYXRhLnB1c2goSlNPTi5wYXJzZShkYXRh5pWw5o2uKSlcXG5cXG59XFxuICBcXG4gICAgXFxuXFxuaWYoL+Wkh+S7vS8udGVzdCjmk43kvZwpKXtcXG5cXG5pZijlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70ubGVuZ3RoPDEpe1xcblxcblxcblxcbnNhdmVGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywg5aSH5Lu95pWw5o2uLCAwKTtcXG5cXG5pZijmlofku7bot6/lvoQubGVuZ3RoPjIyNSl7XFxuICAgIHRvYXN0KFxcXCLpgYfot6/lvoTotoXplb8g6K+m5oOF55yL5pel5b+XXFxcIilcXG4gICAgbG9nKFxcXCLor7fli7/lj6DliqDlpJrkuKrmlofku7blpLkg6K+35qOA5p+l6K+l6Lev5b6E55qE5aSH5Lu9OlxcXCIr5a2Y5ZOq6YeMKVxcbn1cXG5cXG5cXG59ZWxzZXtcXG4gICAgXFxuICAgIFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku709SlNPTi5wYXJzZSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pXFxuICAgIOaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG4gICAg5paH5Lu25YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tlxcbiAgICDmlofku7blpLnliJfooag95paH5Lu25aS55YiX6KGoLmNvbmNhdCjmlofku7blpLnmlbDnu4QpXFxuICAgIOaWh+S7tuWIl+ihqD3mlofku7bliJfooaguY29uY2F0KOaWh+S7tuaVsOe7hClcXG5cXG4gICAgXFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlbDnu4Tljrvph40o5paH5Lu25aS55YiX6KGoKVxcbiAgICDmlofku7bliJfooag95pWw57uE5Y676YeNKOaWh+S7tuWIl+ihqClcXG4gICAgXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuT3mlofku7blpLnliJfooahcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2PeaWh+S7tuWIl+ihqFxcbiAgICBcXG5cXG5cXG5zYXZlRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbmlmKOaWh+S7tui3r+W+hC5sZW5ndGg+MjI1KXtcXG4gICAgdG9hc3QoXFxcIumBh+i3r+W+hOi2hemVvyDor6bmg4XnnIvml6Xlv5dcXFwiKVxcbiAgICBsb2coXFxcIuivt+WLv+WPoOWKoOWkmuS4quaWh+S7tuWkuSDor7fmo4Dmn6Xor6Xot6/lvoTnmoTlpIfku706XFxcIivlrZjlk6rph4wpXFxufVxcbiAgICBcXG5pZijliJfooahhLmxlbmd0aDwxKSByZXR1cm4gXFxcInRvYXN0Oi8v5aSH5Lu95oiQ5YqfXFxcIlxcblxcblxcbn1cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiBzdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpKSB7XFxuXFxuXFxu5paH5Lu25aS55ZCNPXN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0uZmlsZU5hbWVcXG7mlofku7blpLlpZD1zdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpW2ldLmlkXFxuXFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOWkh+S7vTonK+aWh+S7tui3r+W+hClcXG5cXG5cXG7or7fmsYLlj5jph49hID0gXFxcIi9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG7or7fmsYLlj5jph49iID0gXFxcIi9jbG91ZGZpbGUvdjEvZmlsZXNcXFwiXFxuICAgICAgICAgICAgICAgIFxcblxcblxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcblxcbiAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkuWlkK2BcXFwifWBcXG5cXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmEgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49hXFxuICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYSwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmIgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49iXFxuICAgICAgICAgICAgICAgIOesrOS6jOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWkueWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahhID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7bliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYiA9IEpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG5cXG5cXG7mlofku7bmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahiKSB7XFxuICAgICAgICDmlofku7blkI095YiX6KGoYltpXS5maWxlTmFtZVxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqGJbaV0uZmlsZVR5cGVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahiW2ldLmZpbGVTaXplXFxuICAgICAgICBqc29u5pWw5o2uPXtcXFwi5paH5Lu25ZCNXFxcIjrmlofku7blkI0sXFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7bmoLzlvI9cXFwiOuaWh+S7tuagvOW8jyxcXFwi5paH5Lu25aSn5bCPXFxcIjrmlofku7blpKflsI99XFxuICAgICAgICDmlofku7bmlbDnu4RbaV09anNvbuaVsOaNrlxcbiAgICAgICAgXFxuICAgIH1cXG4gICAg5paH5Lu25aS55pWw57uEPVtdXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYSkge1xcbiAgICAgICAg5paH5Lu25aS55pWw57uEW2ldPeWIl+ihqGFbaV0uZmlsZU5hbWUgICAgIFxcbiAgICB9XFxuICAgIFxcblxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIizliJfooahhKVxcblxcbuaWh+S7tuWkueWIl+ihqD3liJfooahhXFxuXFxu5paH5Lu25YiX6KGoPeWIl+ihqGJcXG5cXG5cXG5cXG5kYXRh5pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIui3r+W+hFxcXCI6XFxcImAr5paH5Lu26Lev5b6EK2BcXFwiLFxcXCLmlofku7blpLlcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25aS55pWw57uEKStgLFxcXCLmlofku7ZcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25pWw57uEKStgfWBcXG5cXG7lpIfku73mlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IGArZGF0YeaVsOaNritgfWBcXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gcmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCBbXTtcXG5cXG5cXG5pZigv5aSN5Yi2Ly50ZXN0KOaTjeS9nCkpe1xcblxcbuaVtOS9k+aVsOaNri5kYXRhLnB1c2goSlNPTi5wYXJzZShkYXRh5pWw5o2uKSlcXG5cXG5cXG59XFxuICBcXG5cXG5pZigv5aSH5Lu9Ly50ZXN0KOaTjeS9nCkpe1xcblxcblxcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5sZW5ndGg8MSl7XFxuXFxuXFxuXFxuc2F2ZUZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCDlpIfku73mlbDmja4sIDApO1xcblxcbmlmKOaWh+S7tui3r+W+hC5sZW5ndGg+MjI1KXtcXG4gICAgdG9hc3QoXFxcIumBh+i3r+W+hOi2hemVvyDor6bmg4XnnIvml6Xlv5dcXFwiKVxcbiAgICBsb2coXFxcIuivt+WLv+WPoOWKoOWkmuS4quaWh+S7tuWkuSDor7fmo4Dmn6Xor6Xot6/lvoTnmoTlpIfku706XFxcIivlrZjlk6rph4wpXFxufVxcblxcblxcbn1lbHNle1xcbiAgICBcXG4gICAgXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vT1KU09OLnBhcnNlKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSlcXG4gICAgXFxuICAgIOaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG4gICAg5paH5Lu25YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tlxcbiAgICDmlofku7blpLnliJfooag95paH5Lu25aS55YiX6KGoLmNvbmNhdCjmlofku7blpLnmlbDnu4QpXFxuICAgIOaWh+S7tuWIl+ihqD3mlofku7bliJfooaguY29uY2F0KOaWh+S7tuaVsOe7hClcXG5cXG4gICAgXFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlbDnu4Tljrvph40o5paH5Lu25aS55YiX6KGoKVxcbiAgICDmlofku7bliJfooag95pWw57uE5Y676YeNKOaWh+S7tuWIl+ihqClcXG4gICAgXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuT3mlofku7blpLnliJfooahcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2PeaWh+S7tuWIl+ihqFxcbiAgICBcXG5cXG5cXG5zYXZlRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbmlmKOaWh+S7tui3r+W+hC5sZW5ndGg+MjI1KXtcXG4gICAgdG9hc3QoXFxcIumBh+i3r+W+hOi2hemVvyDor6bmg4XnnIvml6Xlv5dcXFwiKVxcbiAgICBsb2coXFxcIuivt+WLv+WPoOWKoOWkmuS4quaWh+S7tuWkuSDor7fmo4Dmn6Xor6Xot6/lvoTnmoTlpIfku706XFxcIivlrZjlk6rph4wpXFxufVxcbiAgICBcXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxufVxcblxcblxcblxcblxcbmlmKOWIl+ihqGEubGVuZ3RoPDEpIHtcXG5cXG5cXG5jbGVhclZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpXFxuICAgIFxcblxcblxcbui3r+W+hOWIh+WJsj3mlofku7bot6/lvoQuc3BsaXQo6Lev5b6E6Ze06ZqUKVxcblxcblxcbui3r+W+hOWIh+WJsi5zcGxpY2Uo6Lev5b6E5YiH5YmyLmxlbmd0aC0xLDEpXFxuXFxu5paH5Lu26Lev5b6EPei3r+W+hOWIh+WJsi5qb2luKOi3r+W+hOmXtOmalClcXG5cXG5cXG5cXG5cXG5cXG5jb250aW51ZTtcXG59ZWxzZXtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+W+queOr+Wkh+S7vScpKS5ydWxlKVxcblxcbui3r+W+hOWIh+WJsj3mlofku7bot6/lvoQuc3BsaXQo6Lev5b6E6Ze06ZqUKVxcbui3r+W+hOWIh+WJsi5zcGxpY2Uo6Lev5b6E5YiH5YmyLmxlbmd0aC0xLDEpXFxuXFxu5paH5Lu26Lev5b6EPei3r+W+hOWIh+WJsi5qb2luKOi3r+W+hOmXtOmalClcXG5cXG59XFxuXFxufVxcblxcbmhpZGVMb2FkaW5nKClcXG5pZigv5a+85Ye65paH5Lu2Ly50ZXN0KOaTjeS9nCkpe1xcbiAgICBcXG4gICByZXR1cm4gJChcXFwi5paH5Lu2OuWwj+m+meS6keebmOWIhuS6q+S4tOaXtuWvvOWHui5qc29uXFxcXG7ot6/lvoQ6L3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9JUEZT6LWE5rqQXFxcXG7mmK/lkKblr7zlh7rmlbDmja7liLDmnKzlnLDmlofku7ZcXFxcbueCueWHu+ehruWumuWvvOWHuuW5tuWkjeWItuaWh+S7tui3r+W+hFxcXCIpLmNvbmZpcm0oKOaVtOS9k+aVsOaNrik9PntcXG4gICAgICAgXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7mlofku7blpLnlkI09XFxcIjAuanNvblxcXCJcXG5cXG7mlofku7bnm67lvZU9XFxcImhpa2VyOi8vZmlsZXMvL0lQRlPotYTmupAv5Li05pe25a+85Ye65YiG5LqrLzAuanNvblxcXCJcXG4gICAgICAgXFxuaWYoZmlsZUV4aXN0KOaWh+S7tuebruW9lSkpe1xcbumcgOWkhOeQhuWIl+ihqD1bXVxcbumcgOWkhOeQhuWIl+ihqD3lpIfku73mlofku7blpLnlpITnkIYo5paH5Lu255uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5Yig6ZmkXFxcIizpnIDlpITnkIbliJfooagpXFxuXFxuLy9sb2co6ZyA5aSE55CG5YiX6KGoKVxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxufVxcblxcbmRhdGE95pW05L2T5pWw5o2uLmRhdGFcXG5mb3IgKHZhciBpIGluIGRhdGEpIHtcXG7ot6/lvoQ9ZGF0YVtpXS7ot6/lvoRcXG5cXG7lhpnlhaXmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55YiG5LqrXFxcIixcXFwiZGF0YVxcXCI6YCtKU09OLnN0cmluZ2lmeShkYXRhW2ldKStgfWBcXG5cXG5zYXZlRmlsZSjmlofku7bnm67lvZUucmVwbGFjZSgnMC5qc29uJywnJykr6Lev5b6EK1xcXCIuanNvblxcXCIsIOWGmeWFpeaVsOaNriwgMCkgICAgICAgXFxuXFxufVxcblxcbnNhdmVGaWxlKOaWh+S7tuebruW9lS5yZXBsYWNlKCcwLmpzb24nLCcnKStcXFwiQUHliIbkuqvmlZnnqIsudHh0XFxcIiwg5aSa5paH5Lu25YiG5Lqr5pWZ56iLLCAwKSAgICAgICBcXG4gICAgICAgXFxucmV0dXJuIGNvcHkoXFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvSVBGU+i1hOa6kC/kuLTml7blr7zlh7rliIbkuqsvXFxcIikgIFxcbiAgICAgICBcXG4gICAgICAgXFxuICAgICAgIFxcbiAgICBcXG5cXG4gICAgICAgXFxufSzmlbTkvZPmlbDmja4pIFxcbiAgICBcXG59ZWxzZSBpZigv5LqR5Y+j5LukLy50ZXN0KOaTjeS9nCkpe1xcblxcblxcbnZhciDkupHlj6Pku6QgPSAnSVBGU+Wkh+S7veWkmuaWh+S7tuWIhuS6qzonK2lucHV0KydcXFxcbuWkjeWItuWQjuaJk+W8gOi9r+S7tuWNs+WPr+WvvOWFpVxcXFxuJyArIHNoYXJlUGFzdGUoSlNPTi5zdHJpbmdpZnko5pW05L2T5pWw5o2uKSkgKyAnQGltcG9ydD1qczpldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS/kupHlj6Pku6Q/cnVsZT1JUEZT6LWE5rqQXFxcIikpLnJ1bGUpJ1xcblxcbmlmKC9lcnJvci8udGVzdCjkupHlj6Pku6QpKSByZXR1cm4gJChcXFwi4p2M4p2M5LqR5Y+j5Luk5Y+R55Sf6ZSZ6K+v4p2M4p2MXFxcXG7mmK/lkKblr7zlh7rmlbDmja7liLDmnKzlnLDmlofku7ZcXFxcbuWvvOWHuuS4uuWkmuaWh+S7tuWIhuS6q+mcgOaJk+WMhVxcXFxu56Gu5a6a5a+85Ye65bm25aSN5Yi25paH5Lu26Lev5b6EXFxcIikuY29uZmlybSgo5pW05L2T5pWw5o2uKT0+e1xcbiAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5paH5Lu25aS55ZCNPVxcXCIwLmpzb25cXFwiXFxuXFxu5paH5Lu255uu5b2VPVxcXCJoaWtlcjovL2ZpbGVzLy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy8wLmpzb25cXFwiXFxuICAgICAgIFxcbmlmKGZpbGVFeGlzdCjmlofku7bnm67lvZUpKXtcXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95aSH5Lu95paH5Lu25aS55aSE55CGKOaWh+S7tuebruW9lSzmlofku7blpLnlkI0sXFxcIuWIoOmZpFxcXCIs6ZyA5aSE55CG5YiX6KGoKVxcblxcbi8vbG9nKOmcgOWkhOeQhuWIl+ihqClcXG5mb3IgKHZhciBpIGluIOmcgOWkhOeQhuWIl+ihqCkge1xcbiAgICAgICAgICAgXFxuZGVsZXRlRmlsZSjpnIDlpITnkIbliJfooahbaV0pXFxufVxcbn1cXG5cXG5kYXRhPeaVtOS9k+aVsOaNri5kYXRhXFxuZm9yICh2YXIgaSBpbiBkYXRhKSB7XFxu6Lev5b6EPWRhdGFbaV0u6Lev5b6EXFxuXFxu5YaZ5YWl5pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWIhuS6q1xcXCIsXFxcImRhdGFcXFwiOmArSlNPTi5zdHJpbmdpZnkoZGF0YVtpXSkrYH1gXFxuXFxuc2F2ZUZpbGUo5paH5Lu255uu5b2VLnJlcGxhY2UoJzAuanNvbicsJycpK+i3r+W+hCtcXFwiLmpzb25cXFwiLCDlhpnlhaXmlbDmja4sIDApICAgICAgIFxcblxcbn1cXG5cXG5cXG5zYXZlRmlsZSjmlofku7bnm67lvZUucmVwbGFjZSgnMC5qc29uJywnJykrXFxcIkFB5YiG5Lqr5pWZ56iLLnR4dFxcXCIsIOWkmuaWh+S7tuWIhuS6q+aVmeeoiywgMCkgICAgICAgXFxuXFxucmV0dXJuIGNvcHkoXFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvSVBGU+i1hOa6kC/kuLTml7blr7zlh7rliIbkuqsvXFxcIikgIFxcbiAgICAgICBcXG5cXG4gICAgICAgXFxufSzmlbTkvZPmlbDmja4pXFxuZWxzZSByZXR1cm4gY29weSjkupHlj6Pku6QpXFxuXFxufWVsc2UgaWYoL+WkjeWIti8udGVzdCjmk43kvZwpKXtcXG5cXG4gIFxcbiAgcmV0dXJuIGNvcHkoSlNPTi5zdHJpbmdpZnko5pW05L2T5pWw5o2uKSlcXG5cXG5cXG59ZWxzZSBpZigv5aSH5Lu9Ly50ZXN0KOaTjeS9nCkpe1xcblxcbiAgXFxuICAgXFxuICByZXR1cm4gXFxcInRvYXN0Oi8v5aSH5Lu95oiQ5YqfXFxcIlxcblxcbn1cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxufSzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5a2Y5pS+6Lev5b6ELOWtmOWTqumHjCzmk43kvZwpXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcblxcbmZ1bmN0aW9uIOeUn+aIkOebtOmTvijnur/ot68s5paH5Lu2Q0lELOaWh+S7tuWQjSkge1xcblxcblxcbuaXtumXtOaIsz1uZXcgRGF0ZSgpLmdldFRpbWUoKVxcbuaXtumXtOaIsz1NYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpLzEwMDApLnRvU3RyaW5nKClcXG4vL+aXtumXtOaIsz1cXFwiMTY3NjEzNDA3MlxcXCJcXG5cXG5cXG7ml7bpl7TmiLM9TnVtYmVyKERhdGUucGFyc2UoIG5ldyBEYXRlKCkgKS50b1N0cmluZygpLnN1YnN0cigwLDEwKSkrODY0MDAqNjtcXG5cXG4vL+aXtumXtOaIsz1OdW1iZXIoRGF0ZS5wYXJzZSggbmV3IERhdGUoKSApLnRvU3RyaW5nKCkuc3Vic3RyKDAsMTApKSszNjAwKjg7XFxuLy/ml7bpl7TmiLM9TnVtYmVyKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSs4NjQwMFxcblxcblxcblxcbuebtOmTvuWvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku55u06ZO+5a+G6ZKlXFxu55So5oi3SUQ9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEXFxuXFxuXFxuXFxuXFxudT3nlKjmiLdJRFxcbnM9bWQ1KOebtOmTvuWvhumSpSvmlofku7ZDSUQr5pe26Ze05oizKVxcbm1kNXM9bWQ1KHMpXFxuXFxuXFxucmV0dXJuIOe6v+i3ryvmlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIr5pe26Ze05oizK1xcXCImdT1cXFwiK3UrXFxcIiZzPVxcXCIrbWQ1c1xcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5mdW5jdGlvbiDlpIfku73mlofku7blpLnlpITnkIYo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSzlpITnkIbnsbvlnoss6ZyA5aSE55CG5YiX6KGoKSB7XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5pZijmlofku7blpLnlkI0hPVxcXCIwLmpzb25cXFwiKXtcXG4gICAgXFxuICAgIOWkh+S7veebruW9lT3lpIfku73nm67lvZUucmVwbGFjZShcXFwiLmpzb25cXFwiLFxcXCJcXFwiKSvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNK1xcXCIuanNvblxcXCJcXG4gICAgXFxuXFxufVxcblxcblxcblxcblxcblxcblxcblxcblxcbiAgICDmib7pnIDlpITnkIbmlofku7bmlbDmja4gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWkh+S7veebruW9lSwgMCkgfHwgJ1tdJyk7XFxuICAgIFxcblxcblxcbnRyeSB7XFxuXFxu5om+6ZyA5aSE55CG5paH5Lu25aS5PeaJvumcgOWkhOeQhuaWh+S7tuaVsOaNri5kYXRhLuaWh+S7tuWkuVxcbumcgOWkhOeQhuWIl+ihqC5wdXNoKOWkh+S7veebruW9lSlcXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIC8v6ZyA5aSE55CG5YiX6KGoPemcgOWkhOeQhuWIl+ihqC5zbGljZSgwLC0zKVxcbiAgICB0b2FzdCgn6Lez6L+H6ZSZ6K+v5paH5Lu2IOaXpeW/l+afpeeci+ivpuaDhScpO1xcbiAgICBsb2coZS5tZXNzYWdlKVxcbiAgICBcXG4gICAgbG9nKOWkhOeQhuexu+WeiytcXFwi5pe25Y+R546w5Lii5aSx55qE5paH5Lu2OlxcXCIr5aSH5Lu955uu5b2VKVxcbiAgICByZXR1cm4g6ZyA5aSE55CG5YiX6KGoXFxufVxcblxcbnB1dE15VmFyKOWkh+S7veebruW9lStcXFwi5paH5Lu25aS55YiX6KGoXFxcIizmib7pnIDlpITnkIbmlofku7blpLkpXFxuXFxuXFxuaWYo5om+6ZyA5aSE55CG5paH5Lu25aS5Lmxlbmd0aDwxKXtcXG5jbGVhclZhcijlpIfku73nm67lvZUrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpXFxucmV0dXJuIOmcgOWkhOeQhuWIl+ihqFxcbn1cXG5mb3IgKHZhciBpIGluIHN0b3JhZ2UwLmdldE15VmFyKOWkh+S7veebruW9lStcXFwi5paH5Lu25aS55YiX6KGoXFxcIikpIHtcXG5cXG7lpIfku73mlofku7blpLnlpITnkIYo5aSH5Lu955uu5b2VLHN0b3JhZ2UwLmdldE15VmFyKOWkh+S7veebruW9lStcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0s5aSE55CG57G75Z6LLOmcgOWkhOeQhuWIl+ihqClcXG5cXG5cXG59XFxuXFxucmV0dXJuIOmcgOWkhOeQhuWIl+ihqFxcblxcblxcbn1cXG5cXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cXG5cXG5cXG5cXG5mdW5jdGlvbiDpgInmi6nlsI/pvpnkupHnm5jmlofku7blpLko5bCP6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgIFxcbiAgICBpZigh5bCP6b6Z5LqR55uY5a+G6ZKlKXtcXG4gICAgICAgIFxcbiAgICAgICAgXFxuXFxuICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgICAgICBcXG4gICAgICAgICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMSwn6YCJ5oup5LiA5Liq5bCP6b6Z5LqR55uY6LSm5Y+3Jykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUpID0+IHtcXG4gICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG4gICAgICAgICAgICAgIHJldHVybiDpgInmi6nlsI/pvpnkupHnm5jmlofku7blpLko5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyKVxcbiAgICAgICAgICAgICAgXFxufSzlsI/kupHpvpnkupHnm5jlr4bpkqUpXFxuICAgICAgIFxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgfS8v5Yik5pat5piv5ZCm5Lyg5YWl5bCP6b6Z5LqR55uY5a+G6ZKlXFxuXFxuXFxucmV0dXJuIOWwj+m+meS6keebmOWvhumSpVxcblxcbiAgICBcXG4gICAgXFxufVxcblxcblxcblxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xcblxcblxcblxcbmZ1bmN0aW9uIOWwj+m+meS6keebmOeZu+W9lSjlsI/pvpnkupHnm5jlr4bpkqUpIHtcXG5cXG7lsI/pvpnkupHnm5jnmbvlvZXor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEvdXNlci9sb2dpblxcXCJcXG5cXG7lpLTpg6g9e31cXG5cXG7ouqvkvZM9YHtcXFwidG9rZW5cXFwiOlxcXCJgK+Wwj+m+meS6keebmOWvhumSpStgXFxcIn1gXFxuXFxu55m75b2V5ZON5bqUPXBvc3Qo5bCP6b6Z5LqR55uY55m75b2V6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbnJldHVybiBKU09OLnBhcnNlKOeZu+W9leWTjeW6lCkuZGF0YVxcblxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5mdW5jdGlvbiDlsI/pvpnkupHnm5jnm7Tpk77lr4bpkqUo5bCP6b6Z5LqR55uY5a+G6ZKlKSB7XFxuXFxu5bCP6b6Z5LqR55uY55m75b2V6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxL3VzZXIvZW5jcnlwdGlvbi1rZXlcXFwiXFxuXFxu5aS06YOoPXt9XFxuXFxu6Lqr5L2TPWB7XFxcInRva2VuXFxcIjpcXFwiYCvlsI/pvpnkupHnm5jlr4bpkqUrYFxcXCJ9YFxcblxcbueZu+W9leWTjeW6lD1wb3N0KOWwj+m+meS6keebmOeZu+W9leivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5yZXR1cm4gSlNPTi5wYXJzZSjnmbvlvZXlk43lupQpLmRhdGFcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlm57mlLbnq5lcIixcInBhdGhcIjpcIuWbnuaUtuermVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbuWwj+m+meS6keebmOWvhumSpT1nZXRQYXJhbSgndG9rZW4nKVxcblxcblxcbmxvZyjlsI/pvpnkupHnm5jlr4bpkqUpXFxu5Zue5pS256uZ6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS90cmFzaC1maWxlc1xcXCJcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM96Lqr5L2TPWB7XFxcImZpbGVOYW1lXFxcIjpcXFwiYCtnZXRWYXIoJ+aQnOe0ouWFs+mUruivjScsICcnKStgXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJgK3N0b3JhZ2UwLmdldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwibmFtZVxcXCIpK2BcXFwiLFxcXCJzb3J0VHlwZVxcXCI6XFxcImArc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYlxcXCIsIFxcXCJhc2NcXFwiKStgXFxcIn1gXFxuXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5Zue5pS256uZ6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcblxcblxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOlxcXCLih4VcXFwiK3N0b3JhZ2UwLmdldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj1xcXCIsIFxcXCLlkI3np7DmraPluo9cXFwiKSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLFxcbiAgICB1cmw6JChbXFxcIuWQjeensOato+W6j1xcXCIsXFxcIuWQjeensOWAkuW6j1xcXCIsXFxcIuaXtumXtOato+W6j1xcXCIsXFxcIuaXtumXtOWAkuW6j1xcXCIsXFxcIuWkp+Wwj+ato+W6j1xcXCIsXFxcIuWkp+Wwj+WAkuW6j1xcXCJdLCAyLCfpnIDopoHku4DkuYjnsbvlnovmjpLluo/vvJ8nKS5zZWxlY3QoKCkgPT4ge1xcblxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj1xcXCIsIGlucHV0KTtcXG5pZihpbnB1dC5pbmNsdWRlcyhcXFwi5ZCN56ewXFxcIikpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJuYW1lXFxcIik7XFxuZWxzZSBpZihpbnB1dC5pbmNsdWRlcyhcXFwi5pe26Ze0XFxcIikpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJ1cGxvYWRcXFwiKTtcXG5lbHNlXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJzaXplXFxcIik7XFxuXFxuaWYoaW5wdXQuaW5jbHVkZXMoXFxcIuato+W6j1xcXCIpKVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2JcXFwiLCBcXFwiYXNjXFxcIik7XFxuZWxzZVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2JcXFwiLCBcXFwiZGVzY1xcXCIpO1xcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5YqfXFxcIlxcblxcbiAgICB9KVxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLwn5GAXFxcIitzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiLCBcXFwi5YiX6KGo5qih5byPXFxcIiksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgdXJsOiQoW1xcXCLliJfooajmqKHlvI9cXFwiLFxcXCLlm77mlofmqKHlvI9cXFwiLFxcXCLlhajmlofku7blkI3mqKHlvI9cXFwiXSwgMSwn6ZyA6KaB5LuA5LmI5qC35byP5pi+56S677yfJykuc2VsZWN0KCgpID0+IHtcXG5cXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiLCBpbnB1dCk7XFxuaWYoaW5wdXQ9PVxcXCLliJfooajmqKHlvI9cXFwiKVxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaWh+S7tuagt+W8j+WPmOmHj1xcXCIsIFxcXCJhdmF0YXJcXFwiKTtcXG5pZihpbnB1dD09XFxcIuWbvuaWh+aooeW8j1xcXCIpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcIm1vdmllXzJcXFwiKTtcXG5pZihpbnB1dD09XFxcIuWFqOaWh+S7tuWQjeaooeW8j1xcXCIpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcInRleHRfMVxcXCIpO1xcblxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5YqfXFxcIlxcblxcbiAgICB9KVxcbn0pXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLljZDmm7TlpJrlip/og71cXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuICAgIHVybDokKFtcXFwi5pCc57Si5b2T5YmN5paH5Lu25aS5XFxcIixcXFwi5oGi5aSN5omA5pyJ5paH5Lu2XFxcIixcXFwi5pu05aSa5b6F5byA5Y+RXFxcIl0sIDEsJ+ivt+mAieaLqeabtOWkmuWKn+iDvScpLnNlbGVjdCgo56ys5LiA5qyh5ZON5bqULOWwj+m+meS6keebmOWvhumSpSkgPT4ge1xcblxcbmlmKGlucHV0PT1cXFwi5pCc57Si5b2T5YmN5paH5Lu25aS5XFxcIil7XFxucmV0dXJuICQoXFxcIlxcXCIsXFxcIuaQnOe0ouWFs+mUruivjVxcXCIpLmlucHV0KCgpID0+IHtcXG5wdXRWYXIoJ+aQnOe0ouWFs+mUruivjScsIGlucHV0KVxcblxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5pCc57SiLVxcXCIraW5wdXQrXFxcIi3miJDlip9cXFwiXFxuXFxuXFxufSlcXG5cXG59ZWxzZSBpZihpbnB1dD09XFxcIuaBouWkjeaJgOacieaWh+S7tlxcXCIpe1xcblxcblxcblxcbnJldHVybiAkKFxcXCJcXFwiLCBcXFwi5a+G56CBXFxcIikuaW5wdXQoKOesrOS4gOasoeWTjeW6lCzlsI/pvpnkupHnm5jlr4bpkqUpID0+IHtcXG5cXG5pZihpbnB1dD09MTIxMzgpe1xcblxcbuWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxu5paH5Lu2aWTmlbDnu4Q9W11cXG5mb3IgKHZhciBpIGluIOWIl+ihqCl75paH5Lu2aWTmlbDnu4RbaV09J1xcXCInK+WIl+ihqFtpXS5pZCsnXFxcIid9XFxu6K+35rGC5oGi5aSN6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvZmlsZS9yZWNvdmVyRGVsZXRlXFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcbiAgXFxcImlkc1xcXCI6IFtgK+aWh+S7tmlk5pWw57uEK2BdXFxufWBcXG5cXG5wb3N0KOivt+axguaBouWkjemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgXFxucmV0dXJuICd0b2FzdDovL+aBouWkjeaIkOWKnydcXG5cXG5cXG59XFxuXFxuXFxuXFxufSznrKzkuIDmrKHlk43lupQs5bCP6b6Z5LqR55uY5a+G6ZKlKVxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5yZXR1cm4gXFxcInRvYXN0Oi8v6L+Y5rKh5byA5Y+RXFxcIlxcblxcbiAgICB9LOesrOS4gOasoeWTjeW6lCzlsI/pvpnkupHnm5jlr4bpkqUpXFxufSlcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG50cnkge1xcbuWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuZm9yICh2YXIgaSBpbiDliJfooagpIHtcXG4gICAgICAgIOagh+mimD3liJfooahbaV0uZmlsZU5hbWVcXG4gICAgICAgIGlkPeWIl+ihqFtpXS5pZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqFtpXS5maWxlU2l6ZVxcbiAgICAgICAgZmlsZVR5cGU95YiX6KGoW2ldLmZpbGVUeXBlXFxuXFxuXFxuXFxuXFxuXFxuaWYo5paH5Lu25aSn5bCPPT0wKXtcXG5kLnB1c2goe1xcbnRpdGxlOuagh+mimCxcXG5waWNfdXJsOlxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvYmFma3JlaWduN2ZuaGFoYzV1ejR2NmZ1ZzNya2ZicXp4MnI2b3YzNHV0cGtnZWtjeWljeGp6djJndHkjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxudXJsOlxcXCJ0b2FzdDovL+WbnuaUtuermS3npoHmraLorr/pl65cXFwiLFxcbmV4dHJhOnvmlofku7blpLlpZDppZCxsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLmgaLlpI1cXFwiLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5a+G6ZKlLOagh+mimCxpZCxmaWxlVHlwZSk9PntcXG5cXG7or7fmsYLmgaLlpI3pk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9maWxlL3JlY292ZXJEZWxldGVcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/pvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxuICBcXFwiaWRzXFxcIjogW1xcbiAgICBcXFwiYCtpZCtgXFxcIlxcbiAgXVxcbn1gXFxuXFxucG9zdCjor7fmsYLmgaLlpI3pk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgIFxcbnJldHVybiAndG9hc3Q6Ly/mgaLlpI3miJDlip8nXFxuXFxuICAgICAgICB9LOWwj+m+meS6keebmOWvhumSpSzmoIfpopgsaWQsZmlsZVR5cGUpfSx7dGl0bGU6IFxcXCLliKDpmaRcXFwiLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5a+G6ZKlLGlkKT0+e1xcblxcbnJldHVybiAndG9hc3Q6Ly/kvaDliKDpmaTlgZrnlJrvvJ/lj43mraPpg73mmK/ml6DpmZDnqbrpl7QnXFxu6K+35rGC5Yig6Zmk6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9tb3ZlLXRvLXRyYXNoXFxcIlxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/pvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcImZpbGVJZHNcXFwiOltcXFwiYCtpZCtgXFxcIl19YFxcbiAgICAgICAgXFxuXFxuXFxuXFxucG9zdCjor7fmsYLliKDpmaTpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcbiAgICAgICBcXG4gICAgICAgIH0s5bCP6b6Z5LqR55uY5a+G6ZKlLGlkKX1dfSxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG59KTtcXG59ZWxzZXtcXG5cXG7mlofku7bmoLzlvI895YiX6KGoW2ldLnN1ZmZpeFxcbuaWh+S7tkNJRD3liJfooahbaV0uZmlsZUNpZFxcbuaWh+S7tuWkp+Wwj+agvOW8j+WMlj1mb3JtYXRTaXplKOaWh+S7tuWkp+WwjylcXG5cXG5cXG5cXG5pZigvKGpwZ3xnaWZ8cG5nfGpwZWcpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5paw5qC85byPPScjLmpwZydcXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5qCH6aKYKSl7XFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5Zu+54mHPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvYmFma3JlaWM0b2Q0b3p3cGhtYmN2dXR3dnhuM3ZnYXVsNHc1bnY3endwaGUzbWF5c2tiZDd6N2x2aWVAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxu5paw5qC85byPPScjaXNWaWRlbz10cnVlIydcXG7moLzlvI89XFxcIiNpc1ZpZGVvPXRydWUjO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxufWVsc2UgaWYoLyhmbGFjfG1wM3x3bWEpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5paw5qC85byPPScjLm1wMydcXG7moLzlvI89XFxcIiMubXAzO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvYmFma3JlaWU2M25xZ2lhdHBrdXh2ZmZlYnZnaGRzN2Fvb3BkY3g3bGlpd3RqMnF5cmpjY2g2MjUyZHUjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG59ZWxzZXtcXG7pk77mjqXliY3nvIA9XFxcImRvd25sb2FkOi8vXFxcIlxcbuaWsOagvOW8jz1cXFwiXFxcIlxcbuagvOW8jz1cXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvYmFma3JlaWZvaGZ6eWFqbzVpMzY3Z3B5NTV0bDNrMjRpbmZmeGRzcXdsZmU0bGNiZjZkNGVycWF1b2VAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxufVxcblxcbumTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK+aWsOagvOW8j1xcblxcbue6v+i3rzE9XFxcImh0dHBzOi8vaXBmc2d3MDEuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMj1cXFwiaHR0cHM6Ly9pcGZzZ3cwMi5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68zPVxcXCJodHRwczovL2lwZnNndzAzLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzQ9XFxcImh0dHBzOi8vaXBmc2d3MDQuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxuXFxu6ZO+5o6l5ZCO57yAPeaWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIitcXFwiXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiJnU9MFxcXCIr5paw5qC85byPXFxuXFxuXFxuXFxu5paw6ZO+5o6lPemTvuaOpeWJjee8gCvnur/ot68yK+mTvuaOpeWQjue8gFxcblxcbuWkmue6v+i3r+mTvuaOpT1b57q/6LevMSvpk77mjqXlkI7nvIAs57q/6LevMivpk77mjqXlkI7nvIAs57q/6LevMyvpk77mjqXlkI7nvIAs57q/6LevNCvpk77mjqXlkI7nvIAs6ZO+5o6lXVxcblxcbuaXoOagvOW8j+WQjue8gD3mlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrXFxcIlxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiXFxuXFxu5aSN5Yi255u06ZO+PVvnur/ot68xK+aXoOagvOW8j+WQjue8gCznur/ot68yK+aXoOagvOW8j+WQjue8gCznur/ot68zK+aXoOagvOW8j+WQjue8gCznur/ot680K+aXoOagvOW8j+WQjue8gF1cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydSZWZlcmVyJzog57q/6LevMSvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68yK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzMr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevNCvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiAnaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJ31dLG5hbWVzOlsn57q/6LevMScsJ+e6v+i3rzInLCfnur/ot68zJywn57q/6LevNCcsJ+WklumTviddfVxcblxcblxcblxcblxcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLFxcbnBpY191cmw65Zu+54mHLFxcbmRlc2M65paH5Lu25aSn5bCP5qC85byP5YyWLFxcbnVybDrmlofku7ZDSUQrXFxcIiYmXFxcIivmoIfpopgrQ0lE6ZO+5o6l6Kej5p6QLFxcbmV4dHJhOntpZDppZCxsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLlpI3liLbnm7Tpk75cXFwiLCBqczogJC50b1N0cmluZygo5aSN5Yi255u06ZO+KT0+e1xcblxcbiAgICAgICByZXR1cm4gJCjlpI3liLbnm7Tpk74sIDIsJ+WkjeWItuWTquS4que6v+i3r++8nycpLnNlbGVjdCgoKSA9PiB7XFxuICAgICAgICAgICByZXR1cm4gY29weShpbnB1dClcXG4gICAgICAgICAgIFxcbiAgICAgICAgICAgfSlcXG4gICAgICAgIH0s5aSN5Yi255u06ZO+KX0se3RpdGxlOiBcXFwiSUTliIbkuqtcXFwiLCBqczogJC50b1N0cmluZygo5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPKT0+e1xcblxcbiAgICAgICByZXR1cm4gY29weShge1xcXCLmlofku7ZDSURcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCvmoIfpopgrYFxcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcImArZmlsZVR5cGUrYFxcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcImAr5paH5Lu25aSn5bCPK2BcXFwifWApXFxuICAgICAgICB9LOaWh+S7tkNJRCzmoIfpopgsZmlsZVR5cGUs5paH5Lu25qC85byPLOaWh+S7tuWkp+Wwjyl9LHt0aXRsZTogXFxcIuaBouWkjVxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jlr4bpkqUs5qCH6aKYLGlkLOaWh+S7tuagvOW8jyxmaWxlVHlwZSk9PntcXG5cXG4gICAgICAgXFxu6K+35rGC5oGi5aSN6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvZmlsZS9yZWNvdmVyRGVsZXRlXFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcbiAgXFxcImlkc1xcXCI6IFtcXG4gICAgXFxcImAraWQrYFxcXCJcXG4gIF1cXG59YFxcblxcbnBvc3Qo6K+35rGC5oGi5aSN6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5oGi5aSN5oiQ5YqfJ1xcblxcbiAgICAgICAgfSzlsI/pvpnkupHnm5jlr4bpkqUs5qCH6aKYLGlkLOaWh+S7tuagvOW8jyxmaWxlVHlwZSl9LHt0aXRsZTogXFxcIuWIoOmZpFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jlr4bpkqUsaWQpPT57XFxuXFxuXFxucmV0dXJuICd0b2FzdDovL+S9oOWIoOmZpOWBmueUmu+8n+WPjeato+mDveaYr+aXoOmZkOepuumXtCdcXG5cXG7or7fmsYLliKDpmaTpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL21vdmUtdG8tdHJhc2hcXFwiXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG5cXG5cXG7ouqvkvZM9YHtcXFwiZmlsZUlkc1xcXCI6W1xcXCJgK2lkK2BcXFwiXX1gXFxuICAgICAgICBcXG5cXG5cXG5cXG5wb3N0KOivt+axguWIoOmZpOmTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcbiAgICAgICBcXG4gICAgICAgIH0s5bCP6b6Z5LqR55uY5a+G6ZKlLGlkKX1dfSxcXG5jb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpXFxufSk7XFxuXFxuXFxuXFxuXFxufVxcblxcblxcbiBcXG5cXG59XFxuXFxufSBjYXRjaCAoZSkge1xcbiAgICBsb2coZS5tZXNzYWdlKVxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmiJHnmoTlpIfku71cIixcInBhdGhcIjpcIuaIkeeahOWkh+S7vVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxuZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTpcXFwi4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+LVxcXCIrZ2V0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIsXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIpLnNwbGl0KFxcXCIvXFxcIikuc2xpY2UoLTIpWzBdK1xcXCItPC9mcm9udD48L3N0cm9uZz5cXFwiLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCIsXFxuICAgICAgICAgICAgdXJsOiBcXFwiY29weTovL1xcXCIrZ2V0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIsXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIpLnJlcGxhY2UoXFxcImhpa2VyOi8vZmlsZXNcXFwiLFxcXCIvc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzXFxcIikucmVwbGFjZSgnLzAuanNvbicsJycpLGV4dHJhOiB7bGluZVZpc2libGU6IGZhbHNlfVxcbiAgICAgICAgfSk7XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLlpIfku73op6PmnpBcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgIHVybDogJChge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjpbe1xcXCLmlofku7ZDSURcXFwiOlxcXCLlv4XloatcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCLlv4XloatcXFwiLFxcXCLmlofku7bmoLzlvI9cXFwiOlxcXCIzXFxcIixcXFwi5paH5Lu25aSn5bCPXFxcIjpcXFwi5b+F6aG75aGrXFxcIn1dfV19YCxcXFwi6Kej5p6Q5a2X56ym6LaK5aSa6LaK5oWiXFxcXG7ikaDmlK/mjIHop6PmnpDlpIfku70ganNvblxcXFxu4pGh5pSv5oyB6Kej5p6QMTE1IHNoYTFcXFwiKS5pbnB1dCgoKSA9PiB7XFxuXFxuXFxuXFxudHJ5IHtcXG7mlbDmja49SlNPTi5wYXJzZShpbnB1dCkuZGF0YVxcbuaWh+S7tui3r+W+hD3mlbDmja5bMF0u6Lev5b6EXFxu5paH5Lu25aS55ZCNPVxcXCIwXFxcIlxcblxcblxcbnJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+Wkh+S7veivpuaDhSNub1JlY29yZEhpc3RvcnkjP+Wkh+S7veaVsOaNrj1cXFwiK0pTT04uc3RyaW5naWZ5KOaVsOaNrikrXFxcIibmlofku7bot6/lvoQ9XFxcIivmlofku7bot6/lvoQrXFxcIibmlofku7blpLnlkI09XFxcIivmlofku7blpLnlkI0rXFxcIiZwYWdlVGl0bGU95aSH5Lu95pWw5o2u6Kej5p6QXFxcIlxcblxcblxcbn0gY2F0Y2ggKGUpIHtcXG5cXG5pZigvW2EtZjAtOV17NDB9L2lnLnRlc3QoaW5wdXQpKXtcXG5cXG5cXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/op6PmnpDlk4jluIzlgLwjbm9SZWNvcmRIaXN0b3J5Iz/mlbDmja49XFxcIitKU09OLnN0cmluZ2lmeShpbnB1dCkrXFxcIiZwYWdlVGl0bGU95ZOI5biM5YC86Kej5p6QXFxcIlxcblxcbn1cXG4gICAgbG9nKGUubWVzc2FnZSlcXG4gICAgcmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG59XFxuICAgICAgICAgICAgICAgICAgICBcXG5cXG4gICAgICAgICAgICAgICAgfSlcXG59KVxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5pu05aSa5pON5L2cXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLFxcbiAgICAgICAgdXJsOiQoW1xcXCLliIfmjaLlpIfku71cXFwiLFxcXCLliIbkuqvlpIfku71cXFwiLFxcXCLmibnph4/mk43kvZxcXFwiLFxcXCLmlrDlu7rmlofku7blpLlcXFwiLFxcXCLliKDpmaTlpIfku71cXFwiLFxcXCLlvoXlvIDlj5FcXFwiXSwgMiwn6ZyA6KaB5LuA5LmI5pON5L2c77yfJykuc2VsZWN0KCgpID0+IHtcXG5pZiAoaW5wdXQgPT0gXFxcIuWIh+aNouWkh+S7vVxcXCIpIHtcXG4gICAgXFxuICAgIFxcblxcbiAgICBcXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoPVtdXFxuZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXT3lsI/pvpnkupHnm5jlpIfku73nm67lvZVbaV0uc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMV1cXG59XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoLnB1c2goXFxcIi3mt7vliqDmlrDnmoTnm67lvZUtXFxcIilcXG5cXG5yZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsJ+mcgOimgeWcqOWTqumHjOaJvui1hOa6kO+8nycpLnNlbGVjdCgo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSkgPT4ge1xcbiAgICBcXG5pZihpbnB1dD09XFxcIi3mt7vliqDmlrDnmoTnm67lvZUtXFxcIil7XFxuICAgIFxcblxcbnJldHVybiAkKFxcXCJcXFwiLCBcXFwi4pGg5paw5bu65aSH5Lu955uu5b2V5ZCN56ewICAo5bC96YeP5Yir55So56ym5Y+3KVxcXFxu4pGhSlNPTuWujOaVtOWkh+S7veaWh+S7tuaJgOWcqOeahOe7neWvuei3r+W+hFxcXCIpLmlucHV0KCgpID0+IHtcXG5cXG5cXG5pZigvLio/XFxcXC9jb21cXFxcLmV4YW1wbGVcXFxcLmhpa2Vydmlld1xcXFwvZmlsZXNcXFxcL0RvY3VtZW50c1xcXFwvLy50ZXN0KGlucHV0KSl7XFxuXFxu55u45a+56Lev5b6EPWlucHV0LnJlcGxhY2UoLy4qP1xcXFwvY29tXFxcXC5leGFtcGxlXFxcXC5oaWtlcnZpZXdcXFxcL2ZpbGVzXFxcXC9Eb2N1bWVudHNcXFxcLy8sJ2hpa2VyOi8vZmlsZXMvJylcXG5cXG59ZWxzZXtcXG5cXG5cXG5pZigvW1xcXFw/XFxcXOOAgVxcXFzilbJcXFxcL1xcXFwqXFxcXOKAnFxcXFzigJ1cXFxcPFxcXFw+XFxcXHxcXFxc77yOXFxcXOOAg1xcXFzvvI9cXFxcOlxcXFzjgIFcXFxc44CUXFxcXOOAlVxcXFzjgIhcXFxc44CJXFxcXO+8i1xcXFzvvJ1cXFxc77ybIFxcXFzvvIxdLy50ZXN0KGlucHV0KSkgcmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG5lbHNlIOebuOWvuei3r+W+hD1cXFwiaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti9cXFwiK2lucHV0K1xcXCIvXFxcIlxcblxcblxcbn1cXG5cXG5cXG5cXG4gICAgbGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbuWwj+m+meS6keebmOWkh+S7veebruW9lS5wdXNoKOebuOWvuei3r+W+hCtcXFwiMC5qc29uXFxcIilcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuWwj+m+meS6keebmOWkh+S7veebruW9lT3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcbiAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSwgMCkgICBcXG5wdXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIiznm7jlr7not6/lvoQpXFxuXFxuXFxuXFxuaWYoIWZpbGVFeGlzdCjnm7jlr7not6/lvoQrXFxcIjAuanNvblxcXCIpKXtcXG5cXG7nqbrnmoTmoLnnm67lvZU9YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IHtcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjpbXX19YFxcblxcbnNhdmVGaWxlKOebuOWvuei3r+W+hCtcXFwiMC5qc29uXFxcIiwg56m655qE5qC555uu5b2VLCAwKSAgIFxcblxcblxcbiAgcmV0dXJuICd0b2FzdDovL+aWsOW7uuebruW9leaIkOWKnycgICBcXG5cXG5cXG59XFxuICAgIFxcbiAgICBcXG5cXG4gIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gIHJldHVybiAndG9hc3Q6Ly/lr7zlhaXmlofku7bmiJDlip8nICAgXFxuICAgIFxcbn0pXFxuICAgIFxcbn1lbHNle1xcbiAgICBcXG7ngrnlh7vkvY3nva495aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcblxcbuino+aekOWkh+S7veaWh+S7tj3lsI/pvpnkupHnm5jlpIfku73nm67lvZVb54K55Ye75L2N572uXVxcblxcbmlmKOino+aekOWkh+S7veaWh+S7ti5yZXBsYWNlKCcwLmpzb24nLCcnKT09Z2V0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIpKSByZXR1cm4gXFxcInRvYXN0Oi8v5b2T5YmN5bey57uP5pivOlxcXCIraW5wdXRcXG5wdXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIizop6PmnpDlpIfku73mlofku7YucmVwbGFjZSgnMC5qc29uJywnJykpXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/lt7LliIfmjaJcXFwiK2lucHV0XFxufVxcblxcbn0s5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSlcXG5cXG5cXG4gICAgXFxuICAgIFxcbn1lbHNlIGlmIChpbnB1dCA9PSBcXFwi5YiG5Lqr5aSH5Lu9XFxcIikge1xcblxcblxcbmlmKGZpbGVFeGlzdChnZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikrXFxcIjAuanNvblxcXCIpKXtcXG4gICAgXFxucmV0dXJuICQoXFxcIuWkh+S7veWwhuaVsOaNruaLhuWIhuS4uuWkmuS4quaWh+S7tuWtmOWCqFxcXFxu6ZyA6KaB5YmN5b6A5paH5Lu26Lev5b6E5omT5YyF5paH5Lu25YiG5LqrXFxcXG7ngrnlh7vnoa7lrprkvJrkv53lrZjmlZnnqIvliLDmlofku7bot6/lvoRcXFwiKS5jb25maXJtKCgpPT57XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5zYXZlRmlsZShnZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikrXFxcIkFB5YiG5Lqr5pWZ56iLLnR4dFxcXCIsIOWkmuaWh+S7tuWIhuS6q+aVmeeoiywgMCkgICAgICAgXFxuXFxucmV0dXJuICd0b2FzdDovL+aIkOWKnydcXG5cXG59KVxcblxcblxcbn1lbHNlIHJldHVybiAndG9hc3Q6Ly/msqHmlofku7bkvaDliIbkuqvpuKHmr5snXFxuXFxuXFxuXFxuXFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLliKDpmaTlpIfku71cXFwiKXtcXG5cXG5cXG5yZXR1cm4gJChcXFwiXFxcIiwgJy0nK2dldE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiKS5zcGxpdChcXFwiL1xcXCIpLnNsaWNlKC0yKVswXSsnLVxcXFxu6L6T5YWlXFxcIjEyMTM4XFxcIuWIoOmZpCcpLmlucHV0KCgpID0+IHtcXG4gICAgXFxuICAgIFxcbiAgICBpZihpbnB1dD09XFxcIjEyMTM4XFxcIil7XFxuICAgICAgICBcXG4gICAgICAgc2hvd0xvYWRpbmcoJ+ato+WcqOWIoOmZpCcpOyBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuaWh+S7tuWkueWQjT1cXFwiMC5qc29uXFxcIlxcblxcbuaWh+S7tuebruW9lT1nZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikrJzAuanNvbidcXG5cXG5cXG5cXG5cXG5cXG5pZihmaWxlRXhpc3Qo5paH5Lu255uu5b2VKSl7XFxu6ZyA5aSE55CG5YiX6KGoPVtdXFxu6ZyA5aSE55CG5YiX6KGoPeaVsOe7hOWOu+mHjSjlpIfku73mlofku7blpLnlpITnkIYo5paH5Lu255uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5Yig6ZmkXFxcIizpnIDlpITnkIbliJfooagpKVxcblxcblxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuZGVsZXRlRmlsZSjpnIDlpITnkIbliJfooahbaV0pXFxufVxcblxcbn1cXG5cXG4vL+WIoOmZpOaVmeeoi1xcblxcbuaVmeeoi+aWh+S7tj1nZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikrXFxcIkFB5YiG5Lqr5pWZ56iLLnR4dFxcXCJcXG5pZihmaWxlRXhpc3Qo5pWZ56iL5paH5Lu2KSkgZGVsZXRlRmlsZSjmlZnnqIvmlofku7YpXFxuICAgICAgICBcXG4gICAgICAgIGxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG4gICAgICAgIFxcbiAgICAgICAgXFxu5Yig6Zmk5L2N572uPeWwj+m+meS6keebmOWkh+S7veebruW9lS5maW5kSW5kZXgoaXQgPT4gaXQgPT09IOaWh+S7tuebruW9lSk7XFxuICAgICAgICBcXG7lsI/pvpnkupHnm5jlpIfku73nm67lvZUuc3BsaWNlKOWIoOmZpOS9jee9riwxKSAgICBcXG5cXG5cXG5zYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSwgMCkgICBcXG5jbGVhck15VmFyKCfop6PmnpDlpIfku73mlofku7YnKTtcXG5oaWRlTG9hZGluZygpO1xcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gIHJldHVybiAndG9hc3Q6Ly/miJDlip8nO1xcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICB9XFxuICAgIFxcbiAgICByZXR1cm4gJ3RvYXN0Oi8v6L6T5YWl6ZSZ6K+vJztcXG4gICAgXFxufSlcXG5cXG5cXG59XFxuXFxuXFxucmV0dXJuIFxcXCJ0b2FzdDovL+W+heW8gOWPkVxcXCJcXG5cXG4gICAgfSlcXG59KVxcblxcblxcblxcblxcbi8vLy8vLy8vLy9cXG5cXG5cXG4vLy8vLy8vLy8vXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxudHJ5IHtcXG5cXG7lpIfku73nm67lvZU9Z2V0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIsXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIpKycwLmpzb24nXFxuXFxuXFxuXFxuXFxuXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG5cXG5cXG5cXG5cXG4gICAgZGF0YT3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YVxcblxcbiAgICDmlofku7bot6/lvoQ9ZGF0YS7ot6/lvoRcXG4gICAg5YiX6KGoYT1kYXRhLuaWh+S7tuWkuVxcbiAgICDliJfooahiPWRhdGEu5paH5Lu2XFxuXFxuXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKSlcXG7mgLvliJfooag95YiX6KGoYS5jb25jYXQgKOWIl+ihqGIpXFxuXFxu5YiH5Ymy5YiX6KGo5YC8PXN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLFxcXCI1MFxcXCIpXFxuXFxu5oC76aG15pWwPU1hdGguY2VpbCjmgLvliJfooagubGVuZ3RoL+WIh+WJsuWIl+ihqOWAvClcXG5cXG5cXG5cXG5cXG5pZijmgLvpobXmlbA+MSYmcGFnZTw95oC76aG15pWwKXtcXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLkuIrkuIDpobVcXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjmlofku7bot6/lvoQpID0+IHtcXG5cXG5pZihnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIwXFxcIik+MSlcXG57XFxueXNfc2M9Z2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpXFxueXNfc2MtLVxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIseXNfc2MpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiK5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDliY1cXFwifVxcblxcbn0s5paH5Lu26Lev5b6EKSxcXG5jb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuZXh0cmE6IHtcXG5jbHM6IFxcXCJwbGF5bGlzdCDkuIrkuIDpobVcXFwiXFxufVxcbn0pO1xcblxcblxcbmQucHVzaCh7XFxudGl0bGU6cGFnZStcXFwiL1xcXCIr5oC76aG15pWwLFxcbnVybDokKCcnLCfor7fovpPlhaXpobXnoIEnKS5pbnB1dCgo5oC76aG15pWwLOaWh+S7tui3r+W+hCxwYWdlKT0+e1xcblxcbiAgICAgICAgaWYoaW5wdXQ+MCYmaW5wdXQ8PeaAu+mhteaVsCl7XFxuICAgICAgICBwdXRNeVZhcijmlofku7bot6/lvoQrJ3BhZ2UnLGlucHV0KTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/ot7PovaxcXFwiK2lucHV0XFxuICAgICAgICB9ZWxzZXtyZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIn1cXG4gICAgfSzmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIiwgXFxuZXh0cmE6IHtcXG5jbHM6IFxcXCJwbGF5bGlzdCDmgLvpobXmlbBcXFwiLFxcbiBsb25nQ2xpY2s6IFt7dGl0bGU6ICfkv67mlLnmr4/pobXmmL7npLrkuKrmlbAnLCBqczogJC50b1N0cmluZygo5paH5Lu26Lev5b6EKT0+eyBcXG5yZXR1cm4gJChzdG9yYWdlMC5nZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixcXFwiNTBcXFwiKSwn5q2j5pW05pWwJykuaW5wdXQoKOaWh+S7tui3r+W+hCk9PntcXG5cXG5pZigvXFxcXGQrLy50ZXN0KGlucHV0KSl7XFxuXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsaW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdKTtcXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLDEpXFxuXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gIFxcXCJ0b2FzdDovL+WIh+aNouavj+mhteaYvuekulxcXCIraW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdK1xcXCLkuKpcXFwiXFxufWVsc2UgcmV0dXJuICBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwiXFxuXFxufSzmlofku7bot6/lvoQpXFxuXFxufSzmlofku7bot6/lvoQpfV0gXFxufSBcXG59KTtcXG5cXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLkuIvkuIDpobVcXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpID0+IHtcXG4gICAgbG9nKOaAu+mhteaVsClcXG4gICAgbG9nKOaWh+S7tui3r+W+hClcXG4gICAgbG9nKHBhZ2UpXFxuXFxuaWYocGFnZTzmgLvpobXmlbApXFxue1xcbiAgICBsb2coXFxcIuS/ruaUueWJjVxcXCIrZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpKVxcbnlzX3NjPWdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKVxcbnlzX3NjKytcXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLHlzX3NjKVxcbmxvZyhcXFwi5L+u5pS55ZCOXFxcIitnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIikpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiL5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDlkI5cXFwifVxcblxcblxcbn0s5oC76aG15pWwLOaWh+S7tui3r+W+hCxwYWdlKSxcXG5jb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuZXh0cmE6IHtcXG5jbHM6IFxcXCJwbGF5bGlzdCDkuIvkuIDpobVcXFwiXFxufVxcbn0pO1xcblxcbn1cXG5cXG5cXG5cXG5cXG5mb3IobGV0IGkgPSDliIflibLliJfooajlgLwqKHBhZ2UtMSk7aSA8IOWIl+ihqGEubGVuZ3RoJiZpPOWIh+WJsuWIl+ihqOWAvCpwYWdlO2krKykge1xcblxcbiAgICAgICAgXFxuICAgICAgICDmlofku7blpLnlkI095YiX6KGoYVtpXVxcbmQucHVzaCh7XFxudGl0bGU65paH5Lu25aS55ZCNLFxcbnBpY191cmw65paH5Lu25aS55Zu+5qCHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+Wkh+S7veivpuaDhSNub1JlY29yZEhpc3RvcnkjXFxcIixcXG5jb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpLFxcbmV4dHJhOntcXFwi5paH5Lu26Lev5b6EXFxcIjrmlofku7bot6/lvoQsXFxcIuaWh+S7tuWkueWQjVxcXCI65paH5Lu25aS55ZCNLGxvbmdDbGljazogW3t0aXRsZTogJ+WtmOiHs+S6keebmCcsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKT0+e1xcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICBcXG4gICAgcmV0dXJuIOmAieaLqeWwj+m+meS6keebmOaWh+S7tuWkuSgpXFxuXFxucmV0dXJuICQo5paH5Lu25aS55ZCNLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG5cXG4gcmV0dXJuICd0b2FzdDovL+ayoeWGmeWRoidcXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxuXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX0se3RpdGxlOiAn5YiG5LqrJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuXFxucmV0dXJuICQo5paH5Lu25aS55ZCNLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG5cXG4gXFxuIHJldHVybiAndG9hc3Q6Ly/msqHlhpnlkaInXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcblxcblxcblxcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSl9LHt0aXRsZTogJ+aUueWQjScsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKT0+e1xcblxcblxcbnJldHVybiAkKOaWh+S7tuWkueWQjSwgXFxcIuaWsOeahOaWh+S7tuWkueWQjVxcXCIpLmlucHV0KCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKSA9PiB7XFxuICAgIHNob3dMb2FkaW5nKCfmlLnlkI3kuK0nKTtcXG4gICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG7ljp/ot6/lvoQ95aSH5Lu955uu5b2VLnNwbGl0KFxcXCIvXFxcIikuc2xpY2UoLTEpWzBdXFxu5Y6f6Lev5b6EPeWOn+i3r+W+hC5yZXBsYWNlKFxcXCIuanNvblxcXCIsXFxcIlxcXCIpK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5cXG7mlrDot6/lvoQ95aSH5Lu955uu5b2VLnNwbGl0KFxcXCIvXFxcIikuc2xpY2UoLTEpWzBdXFxu5paw6Lev5b6EPeaWsOi3r+W+hC5yZXBsYWNlKFxcXCIuanNvblxcXCIsXFxcIlxcXCIpK+i3r+W+hOmXtOmalCtpbnB1dFxcblxcbuaYr+WQpumHjeWkjT3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLkuZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuaWYo5piv5ZCm6YeN5aSNPi0xKXJldHVybiAndG9hc3Q6Ly/ph43lkI3kuoYnXFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5W2ldPWlucHV0XFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5PeaVsOe7hOWOu+mHjSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLkpXFxuc2F2ZUZpbGUo5aSH5Lu955uu5b2VLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG5cXG7pnIDlpITnkIbliJfooag9W11cXG5cXG7pnIDlpITnkIbliJfooag95pWw57uE5Y676YeNKOWkh+S7veaWh+S7tuWkueWkhOeQhijlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLFxcXCLmlLnlkI1cXFwiLOmcgOWkhOeQhuWIl+ihqCkpXFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG5cXG7or7vlj5blpITnkIbmlbDmja4gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSwgMCkgfHwgJ1tdJyk7XFxuXFxu6K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu6Lev5b6EPeivu+WPluWkhOeQhuaVsOaNri5kYXRhLui3r+W+hC5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpXFxuXFxuXFxuaWYoZmlsZUV4aXN0KOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpKSl7XFxuXFxu5bey5pyJ5pWw5o2uID0gSlNPTi5wYXJzZShyZWFkRmlsZSjpnIDlpITnkIbliJfooahbaV0ucmVwbGFjZSjljp/ot6/lvoQs5paw6Lev5b6EKSwgMCkgfHwgJ1tdJyk7XFxuXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu25aS5LnB1c2go6K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu5paH5Lu25aS5KVxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7ti5wdXNoKOivu+WPluWkhOeQhuaVsOaNri5kYXRhLuaWh+S7tilcXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7blpLk95pWw57uE5Y676YeNKOW3suacieaVsOaNri5kYXRhLuaWh+S7tuWkuSlcXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7Y95pWw57uE5Y676YeNKOW3suacieaVsOaNri5kYXRhLuaWh+S7tilcXG5cXG59ZWxzZXtcXG5cXG5zYXZlRmlsZSjpnIDlpITnkIbliJfooahbaV0ucmVwbGFjZSjljp/ot6/lvoQs5paw6Lev5b6EKSwgSlNPTi5zdHJpbmdpZnko6K+75Y+W5aSE55CG5pWw5o2uKSwgMCk7XFxuXFxufVxcblxcblxcblxcblxcbiAgICAgICAgICAgXFxuZGVsZXRlRmlsZSjpnIDlpITnkIbliJfooahbaV0pXFxufVxcblxcbmhpZGVMb2FkaW5nKCk7XFxuIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gcmV0dXJuICd0b2FzdDovL+S/ruaUueaIkOWKnydcXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxuXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX0se3RpdGxlOiAn56e75YqoJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuXFxubGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbuWkh+S7veaWh+S7tuWQjeWIl+ihqD1bXVxcbmZvciAodmFyIGkgaW4g5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSB7XFxuICAgICAgICAgICDlpIfku73mlofku7blkI3liJfooahbaV095bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VW2ldLnNwbGl0KFxcXCIvXFxcIikucmV2ZXJzZSgpWzFdXFxufVxcblxcblxcbnJldHVybiAkKOWkh+S7veaWh+S7tuWQjeWIl+ihqCwgMSwn6ZyA6KaB56e75Yqo5Yiw5ZOq5Liq5oC75paH5Lu277yfJykuc2VsZWN0KCjlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG4gICAgXFxuICAgIFxcbiAgICDlk6rph4zmnaU95aSH5Lu955uu5b2VLnJlcGxhY2UoLygwXFxcXC5qc29ufDDiuJ0uKj9cXFxcLmpzb24pLywnJylcXG4gICAgXFxuICAgIOeCueWHu+S9jee9rj3lpIfku73mlofku7blkI3liJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuXFxu5a2Y5ZOq6YeMPeWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dLnJlcGxhY2UoJzAuanNvbicsJycpXFxuXFxu5paH5Lu26Lev5b6EPVxcXCIwXFxcIlxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EMicpKS5ydWxlKVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuTJcXG5cXG5cXG5cXG59LOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSlcXG5cXG4gXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX0se3RpdGxlOiAn5Yig6ZmkJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuXFxuXFxuXFxuIHJldHVybiAkKFxcXCLnoa7lrprliKDpmaTvvJ9cXFwiKS5jb25maXJtKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKSA9PiB7XFxuICAgICBzaG93TG9hZGluZygn5Yig6Zmk5LitJylcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuS5zcGxpY2UoaSwxKVxcblxcbnNhdmVGaWxlKOWkh+S7veebruW9lSwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxudHJ5IHtcXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95aSH5Lu95paH5Lu25aS55aSE55CGKOWkh+S7veebruW9lSzmlofku7blpLnlkI0sXFxcIuWIoOmZpFxcXCIs6ZyA5aSE55CG5YiX6KGoKVxcblxcbumcgOWkhOeQhuWIl+ihqD3mlbDnu4Tljrvph40o6ZyA5aSE55CG5YiX6KGoKVxcblxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiBsb2coXFxcIuWIoOmZpOmUmeivr+aWh+S7tuWkuVxcXCIpXFxuIHJldHVybiAndG9hc3Q6Ly/kvaDlj6/og73liKDpmaTkuobkuIDkuKrplJnor6/nmoTmlofku7blpLknXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxuXFxuXFxuICBoaWRlTG9hZGluZygpO1xcbiBcXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSlcXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfV19XFxufSlcXG4gICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLuaWh+S7tuWQjVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0u5paH5Lu2Q0lEXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS7mlofku7bmoLzlvI9cXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahiW2ldLuaWh+S7tuWkp+Wwj1xcbiAgICAgICAgaWYoLyhqcGd8Z2lmfHBuZ3xqcGVnKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5qcGcnXFxu5qC85byPPVxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcblxcbn1lbHNlIGlmKC9cXFxcLihhdml8dHN8bXA0fG1vdnxtNHZ8M2dwfHJtfHJtdmJ8d212fGFzZnxhc3hhdml8ZGF0fG1rdnxmbHZ8dm9iKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuWbvueJhz3op4bpopHmlofku7blm77moIdcXG7mlrDmoLzlvI89JyNpc1ZpZGVvPXRydWUjJ1xcbuagvOW8jz1cXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG59ZWxzZSBpZigvKGZsYWN8bXAzfHdtYSkkL2kudGVzdCjmlofku7blkI0pKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMubXAzJ1xcbuagvOW8jz1cXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc96Z+z5LmQ5paH5Lu25Zu+5qCHXFxuXFxufWVsc2V7XFxu6ZO+5o6l5YmN57yAPVxcXCJkb3dubG9hZDovL1xcXCJcXG7mlrDmoLzlvI89XFxcIlxcXCJcXG7moLzlvI89XFxcIjt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3lhbbku5bmlofku7blm77moIdcXG59XFxuXFxu6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQr5paw5qC85byPXFxuXFxu57q/6LevMT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68yPVxcXCJodHRwczovL2lwZnNndzAyLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzM9XFxcImh0dHBzOi8vaXBmc2d3MDMuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevND1cXFwiaHR0cHM6Ly9pcGZzZ3cwNC5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG5cXG7pk77mjqXlkI7nvIA95paH5Lu2Q0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK1xcXCJcXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIivmlrDmoLzlvI9cXG5cXG5cXG5cXG7mlrDpk77mjqU96ZO+5o6l5YmN57yAK+e6v+i3rzMr6ZO+5o6l5ZCO57yAXFxuXFxu5paw6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLyYmXFxcIivpk77mjqXlkI7nvIBcXG5cXG7lpJrnur/ot6/pk77mjqU9W+mTvuaOpSznur/ot680K+mTvuaOpeWQjue8gCznur/ot68zK+mTvuaOpeWQjue8gCznur/ot68zK+mTvuaOpeWQjue8gCznur/ot68xK+mTvuaOpeWQjue8gF1cXG5cXG5cXG7pk77mjqU0PeeUn+aIkOebtOmTvijnur/ot680LOaWh+S7tkNJRCzmlofku7blkI0pXFxu6ZO+5o6lMz3nlJ/miJDnm7Tpk74o57q/6LevMyzmlofku7ZDSUQs5paH5Lu25ZCNKVxcbumTvuaOpTI955Sf5oiQ55u06ZO+KOe6v+i3rzIs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7pk77mjqUxPeeUn+aIkOebtOmTvijnur/ot68xLOaWh+S7tkNJRCzmlofku7blkI0pXFxuXFxu5aSa57q/6Lev6ZO+5o6lPVvpk77mjqUs6ZO+5o6lNCvmlrDmoLzlvI8s6ZO+5o6lMyvmlrDmoLzlvI8r6ZO+5o6l5ZCO57yALOmTvuaOpTIr5paw5qC85byPLOmTvuaOpTMr5paw5qC85byPXVxcblxcblxcblxcbuaXoOagvOW8j+WQjue8gD3mlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrXFxcIlxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiXFxuXFxu5aSN5Yi255u06ZO+PVvpk77mjqU0LOmTvuaOpTMs6ZO+5o6lMizpk77mjqUxXVxcblxcbuWkmue6v+i3rz17dXJsczrlpJrnur/ot6/pk77mjqUsIGhlYWRlcnM6IFt7J1JlZmVyZXInOiAnaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJ30sIHsnUmVmZXJlcic6IOe6v+i3rzQr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMyvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68yK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzEr6ZO+5o6l5ZCO57yAfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJ119XFxuXFxu5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog57q/6LevNH0sIHsnUmVmZXJlcic6IOe6v+i3rzN9LCB7J1JlZmVyZXInOiDnur/ot68yfSwgeydSZWZlcmVyJzog57q/6LevMX1dLG5hbWVzOlsn5aSW6ZO+Jywn57q/6LevNCcsJ+e6v+i3rzMnLCfnur/ot68yJywn57q/6LevMSddfVxcblxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBmb3JtYXRTaXplKOaWh+S7tuWkp+WwjykrXFxcIi1cXFwiK+aWh+S7tuWQjSxcXG4gICAgcGljX3VybDrlm77niYcsXFxuICAgIHVybDrmlofku7ZDSUQrXFxcIiYmXFxcIivmlofku7blkI0rQ0lE6ZO+5o6l6Kej5p6QLFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIiksIGV4dHJhOiB7IGxvbmdDbGljazogW3t0aXRsZTogJ+WtmOiHs+S6keebmCcsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGkpPT57XFxuICAgIHJldHVybiAndG9hc3Q6Ly/msqHlhpnlkaInXFxuXFxucmV0dXJuICQo5paH5Lu25aS55ZCNLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG5cXG4gcmV0dXJuICd0b2FzdDovL+ayoeWGmeWRoidcXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxuXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGkpfSx7dGl0bGU6ICfliIbkuqsnLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSxpKT0+e1xcblxcblxcbiByZXR1cm4gJ3RvYXN0Oi8v5rKh5YaZ5ZGiJ1xcblxcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSxpKX0se3RpdGxlOiAn5pS55ZCNJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGkpPT57XFxuXFxucmV0dXJuICQo5paH5Lu25ZCNLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGkpID0+IHtcXG5cXG7mmK/lkKbph43lpI095bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2LmZpbmRJbmRleChpdCA9PiBpdC7mlofku7blkI0gPT09IGlucHV0KTtcXG5cXG5pZijmmK/lkKbph43lpI0+LTEpcmV0dXJuICd0b2FzdDovL+mHjeWQjeS6hidcXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7ZbaV0u5paH5Lu25ZCNPWlucHV0XFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2PeaVsOe7hOWOu+mHjSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7YpXFxuXFxuc2F2ZUZpbGUo5aSH5Lu955uu5b2VLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG5cXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blkI0saSlcXG5cXG5cXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGkpfSx7dGl0bGU6ICfnp7vliqgnLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSxpLOaWh+S7tuWQjSzmlofku7ZDSUQpPT57XFxuXFxuXFxuXFxuIGxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG7lpIfku73mlofku7blkI3liJfooag9W11cXG5mb3IgKHZhciBpIGluIOWwj+m+meS6keebmOWkh+S7veebruW9lSkge1xcbiAgICAgICAgICAg5aSH5Lu95paH5Lu25ZCN5YiX6KGoW2ldPeWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbn1cXG5cXG5yZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsJ+mcgOimgeenu+WKqOWIsOWTquS4quaAu+aWh+S7tu+8nycpLnNlbGVjdCgo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpLOaWh+S7tkNJRCkgPT4ge1xcbiAgICBcXG4gICAg54K55Ye75L2N572uPeWkh+S7veaWh+S7tuWQjeWIl+ihqC5maW5kSW5kZXgoaXQgPT4gaXQgPT09IGlucHV0KTtcXG4gICAgXFxu5ZOq6YeM5p2lPeWkh+S7veebruW9lS5yZXBsYWNlKC8oMFxcXFwuanNvbnww4ridLio/XFxcXC5qc29uKS8sJycpXFxuXFxu5a2Y5ZOq6YeMPeWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dLnJlcGxhY2UoJzAuanNvbicsJycpXFxuXFxuXFxuXFxu5paH5Lu26Lev5b6EPVxcXCIwXFxcIlxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EMycpKS5ydWxlKVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuTNcXG5cXG5cXG5cXG59LOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blkI0saSzmlofku7ZDSUQpXFxuXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGks5paH5Lu25ZCNLOaWh+S7tkNJRCl9LHt0aXRsZTogJ+WIoOmZpCcsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGkpPT57XFxuXFxucmV0dXJuICQoXFxcIuehruWumuWIoOmZpO+8n1xcXCIpLmNvbmZpcm0oKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSkgPT4ge1xcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7ti5zcGxpY2UoaSwxKVxcblxcbnNhdmVGaWxlKOWkh+S7veebruW9lSwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxuIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gcmV0dXJuICd0b2FzdDovL+WIoOmZpOaIkOWKnydcXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSlcXG5cXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSl9XSB9IFxcbn0pXFxuICAgICAgICB9XFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcblxcbi8qXFxuXFxuZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgIFxcbiAgICBcXG5kYXRhPeWIl+ihqGJbaV0uZGF0YVxcbuaWh+S7tuWkueWQjT3liJfooahiW2ldLuaWh+S7tuWkueWQjVxcbuWkh+S7veaXtumXtD1kYXRlRm9ybWF0KOWwj+m+meS6keebmOWkh+S7vVtpXS7ml7bpl7QpXFxuXFxubGV0IGlkZXggPSDlsI/pvpnkupHnm5jlpIfku70uZmluZEluZGV4KGl0ID0+IGl0LuaWh+S7tuWkueWQjSA9PT0g5paH5Lu25aS55ZCNKTtcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuaWh+S7tuWkuTpcXFwiK+aWh+S7tuWkueWQjStcXFwiXFxcXG7lpIfku73ml7bpl7Q6XFxcIivlpIfku73ml7bpl7QsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgdXJsOlxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFI25vUmVjb3JkSGlzdG9yeSNcXFwiLFxcbiAgICBleHRyYTp7ZGF0YTpkYXRhLGxvbmdDbGljazogW3t0aXRsZTogJ+WIhuS6q+Wkh+S7vScsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jlpIfku70saWRleCzmlofku7blpLnlkI0pPT57XFxuXFxucmV0dXJuICQoW1xcXCLljp/lp4vmlbDmja5cXFwiLCBcXFwi5LqR5Ymq6LS05p2/XFxcIiwgXFxcIuS6keWPo+S7pFxcXCJdLCAzKS5zZWxlY3QoKOWwj+m+meS6keebmOWkh+S7vSxpZGV4LOaWh+S7tuWkueWQjSkgPT4ge1xcbiAgICAgICAgICAgIHJldHVybiAkKCfnoa7lrprlr7zlh7rvvJ8nKS5jb25maXJtKChpbnB1dCzlsI/pvpnkupHnm5jlpIfku70saWRleCzmlofku7blpLnlkI0pID0+IHtcXG4gICAgICAgICAgICAgICAgXFxuXFxuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwi5LqR5Ymq6LS05p2/XFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSAnSVBGU+Wkh+S7veaWh+S7tuWIhuS6qzonK+aWh+S7tuWkueWQjSsnXFxcXG4nICsgc2hhcmVQYXN0ZShKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku71baWRleF0pKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSBcXFwi5LqR5Y+j5LukXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSAnSVBGU+Wkh+S7veaWh+S7tuWIhuS6qzonK+aWh+S7tuWkueWQjSsnLOWkjeWItuWQjuaJk+W8gOi9r+S7tuWNs+WPr+WvvOWFpVxcXFxuJyArIHNoYXJlUGFzdGUoSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu9W2lkZXhdKSkgKyAnQGltcG9ydD1qczpldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS/kupHlj6Pku6Q/cnVsZT1JUEZT6LWE5rqQXFxcIikpLnJ1bGUpJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu9W2lkZXhdKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwiY29weTovL1xcXCIgKyBkYXRhO1xcbiAgICAgICAgICAgIH0sIGlucHV0LOWwj+m+meS6keebmOWkh+S7vSxpZGV4LOaWh+S7tuWkueWQjSlcXG4gICAgICAgIH0s5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgs5paH5Lu25aS55ZCNKVxcblxcblxcblxcbnJldHVybiBjb3B5KEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOWkh+S7vVtpZGV4XSkpXFxuXFxuXFxufSzlsI/pvpnkupHnm5jlpIfku70saWRleCzmlofku7blpLnlkI0pfSx7dGl0bGU6IFxcXCLlrZjoh7PnvZHnm5hcXFwiLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgpPT57XFxuICAgICAgICAgICAg5bCP6b6Z5LqR55uY5aSH5Lu9PeWwj+m+meS6keebmOWkh+S7vVtpZGV4XVxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbuaWh+S7tuWkuee6r+WQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSBcXG4gICAgICAgICAgIOaWh+S7tuWkuee6r+WQjeensFtpXT3mlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxuXFxu5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuaWQ9XFxcIlxcXCJcXG51c2VyaWQ9XFxcIuaXoChDSUQpXFxcIlxcbueJueauimlkPVxcXCJcXFwiXFxu5biW5a2QaWQ9XFxcIlxcXCJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcblxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUs5bCP6b6Z5LqR55uY5aSH5Lu9KVxcblxcbiAgICAgICAgXFxuICAgICAgICB9LOWwj+m+meS6keebmOWkh+S7vSxpZGV4KX0se3RpdGxlOiAn5Yig6Zmk5aSH5Lu9JywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOWkh+S7vSxpZGV4KT0+eyBcXG5cXG5yZXR1cm4gJChcXFwi5LiA5pem5Yig6ZmkIOaXoOazleaJvuWbnlxcXCIpLmNvbmZpcm0oKOWwj+m+meS6keebmOWkh+S7vSxpZGV4KT0+e1xcblxcbuWwj+m+meS6keebmOWkh+S7vS5zcGxpY2UoaWRleCwgMSk7XFxuc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku70uanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOWkh+S7vSksIDApO1xcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcblxcblxcblxcbn0s5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgpXFxuXFxuXFxufSzlsI/pvpnkupHnm5jlpIfku70saWRleCl9XSBcXG5cXG5cXG59XFxuXFxufSlcXG5cXG5cXG5cXG59Ki9cXG5cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWkh+S7veivpuaDhVwiLFwicGF0aFwiOlwi5aSH5Lu96K+m5oOFXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lm77moIcnKSkucnVsZSlcXG5cXG5cXG5cXG5cXG7mlofku7bot6/lvoQ9TVlfUEFSQU1TLuaWh+S7tui3r+W+hFxcbuaWh+S7tuWkueWQjT1NWV9QQVJBTVMu5paH5Lu25aS55ZCNXFxuXFxu5paH5Lu25aS5aWQ95paH5Lu26Lev5b6EK+aWh+S7tuWkueWQjVxcblxcbnBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpKVxcblxcbmlmKOaWh+S7tui3r+W+hCYm5paH5Lu25aS55ZCNKXtcXG5cXG7lpIfku73nm67lvZU9Z2V0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIsXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIpK+aWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNKycuanNvbidcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5pZiAoZmlsZUV4aXN0KOWkh+S7veebruW9lSkpIHtcXG4gICAgXFxuICAgIFxcblxcbiAgICAgICAgXFxuICAgICBsZXQgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWkh+S7veebruW9lSwgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuXFxuXFxuICAgIOWkh+S7veaVsOaNrj3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YVxcblxcblxcbiAgICDmlofku7bot6/lvoQ95aSH5Lu95pWw5o2uLui3r+W+hFxcbiAgICDliJfooahhPeWkh+S7veaVsOaNri7mlofku7blpLlcXG4gICAg5YiX6KGoYj3lpIfku73mlbDmja4u5paH5Lu2XFxuICAgICAgIFxcblxcblxcbiAgICAgICAgXFxuXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKSlcXG5cXG7liJfooag95YiX6KGoYS5jb25jYXQgKOWIl+ihqGIpXFxuXFxu5YiH5Ymy5YiX6KGo5YC8PXN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLFxcXCI1MFxcXCIpXFxuXFxu5oC76aG15pWwPU1hdGguY2VpbCjliJfooagubGVuZ3RoL+WIh+WJsuWIl+ihqOWAvClcXG5cXG5cXG5cXG5cXG5pZijmgLvpobXmlbA+MSYmcGFnZTw95oC76aG15pWwKXtcXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLkuIrkuIDpobVcXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjmlofku7bot6/lvoQpID0+IHtcXG5cXG5pZihnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIwXFxcIik+MSlcXG57XFxueXNfc2M9Z2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpXFxueXNfc2MtLVxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIseXNfc2MpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiK5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDliY1cXFwifVxcblxcbn0s5paH5Lu26Lev5b6EKSxcXG5jb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuZXh0cmE6IHtcXG5jbHM6IFxcXCJwbGF5bGlzdCDkuIrkuIDpobVcXFwiXFxufVxcbn0pO1xcblxcblxcbmQucHVzaCh7XFxudGl0bGU6cGFnZStcXFwiL1xcXCIr5oC76aG15pWwLFxcbnVybDokKCcnLCfor7fovpPlhaXpobXnoIEnKS5pbnB1dCgo5oC76aG15pWwLOaWh+S7tui3r+W+hCxwYWdlKT0+e1xcblxcbiAgICAgICAgaWYoaW5wdXQ+MCYmaW5wdXQ8PeaAu+mhteaVsCl7XFxuICAgICAgICBwdXRNeVZhcijmlofku7bot6/lvoQrJ3BhZ2UnLGlucHV0KTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/ot7PovaxcXFwiK2lucHV0XFxuICAgICAgICB9ZWxzZXtyZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIn1cXG4gICAgfSzmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIiwgXFxuZXh0cmE6IHtcXG5jbHM6IFxcXCJwbGF5bGlzdCDmgLvpobXmlbBcXFwiLFxcbiBsb25nQ2xpY2s6IFt7dGl0bGU6ICfkv67mlLnmr4/pobXmmL7npLrkuKrmlbAnLCBqczogJC50b1N0cmluZygo5paH5Lu26Lev5b6EKT0+eyBcXG5yZXR1cm4gJChzdG9yYWdlMC5nZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixcXFwiNTBcXFwiKSwn5q2j5pW05pWwJykuaW5wdXQoKOaWh+S7tui3r+W+hCk9PntcXG5cXG5pZigvXFxcXGQrLy50ZXN0KGlucHV0KSl7XFxuXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsaW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdKTtcXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLDEpXFxuXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gIFxcXCJ0b2FzdDovL+WIh+aNouavj+mhteaYvuekulxcXCIraW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdK1xcXCLkuKpcXFwiXFxufWVsc2UgcmV0dXJuICBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwiXFxuXFxufSzmlofku7bot6/lvoQpXFxuXFxufSzmlofku7bot6/lvoQpfV0gXFxufSBcXG59KTtcXG5cXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLkuIvkuIDpobVcXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpID0+IHtcXG4gICAgbG9nKOaAu+mhteaVsClcXG4gICAgbG9nKOaWh+S7tui3r+W+hClcXG4gICAgbG9nKHBhZ2UpXFxuXFxuaWYocGFnZTzmgLvpobXmlbApXFxue1xcbiAgICBsb2coXFxcIuS/ruaUueWJjVxcXCIrZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpKVxcbnlzX3NjPWdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKVxcbnlzX3NjKytcXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLHlzX3NjKVxcbmxvZyhcXFwi5L+u5pS55ZCOXFxcIitnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIikpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiL5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDlkI5cXFwifVxcblxcblxcbn0s5oC76aG15pWwLOaWh+S7tui3r+W+hCxwYWdlKSxcXG5jb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuZXh0cmE6IHtcXG5jbHM6IFxcXCJwbGF5bGlzdCDkuIvkuIDpobVcXFwiXFxufVxcbn0pO1xcblxcbn1cXG5cXG5cXG5cXG5cXG5mb3IobGV0IGkgPSDliIflibLliJfooajlgLwqKHBhZ2UtMSk7aSA8IOWIl+ihqC5sZW5ndGgmJmk85YiH5Ymy5YiX6KGo5YC8KnBhZ2U7aSsrKSB7XFxuICAgIFxcbiAgICAgICAg5paH5Lu25aS55ZCNPeWIl+ihqGFbaV1cXG5pZighIeaWh+S7tuWkueWQjSl7XFxuICAgICAgICBkLnB1c2goe1xcbnRpdGxlOuaWh+S7tuWkueWQjSxcXG5waWNfdXJsOuaWh+S7tuWkueWbvuaghyxcXG51cmw6XFxcImhpa2VyOi8vcGFnZS/lpIfku73or6bmg4Ujbm9SZWNvcmRIaXN0b3J5I1xcXCIsXFxuY29sX3R5cGU6IHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j+WPmOmHj1xcXCIsIFxcXCJhdmF0YXJcXFwiKSxcXG5leHRyYTp7XFxcIuaWh+S7tui3r+W+hFxcXCI65paH5Lu26Lev5b6ELFxcXCLmlofku7blpLnlkI1cXFwiOuaWh+S7tuWkueWQjSxsb25nQ2xpY2s6IFt7dGl0bGU6ICfliIbkuqsnLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKT0+e1xcblxcbnJldHVybiAkKOaWh+S7tuWkueWQjSwgXFxcIuaWsOeahOaWh+S7tuWQjVxcXCIpLmlucHV0KCjlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG5cXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcblxcblxcblxcblxcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX0se3RpdGxlOiAn5pS55ZCNJywganM6ICQudG9TdHJpbmcoKOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSk9PntcXG5cXG5cXG5yZXR1cm4gJCjmlofku7blpLnlkI0sIFxcXCLmlrDnmoTmlofku7blpLnlkI1cXFwiKS5pbnB1dCgo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKSA9PiB7XFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG5cXG4gICAgc2hvd0xvYWRpbmcoJ+aUueWQjeS4rScpO1xcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbuWOn+i3r+W+hD3lpIfku73nm67lvZUuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMSlbMF1cXG7ljp/ot6/lvoQ95Y6f6Lev5b6ELnJlcGxhY2UoXFxcIi5qc29uXFxcIixcXFwiXFxcIikr6Lev5b6E6Ze06ZqUK+aWh+S7tuWkueWQjVxcblxcbuaWsOi3r+W+hD3lpIfku73nm67lvZUuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMSlbMF1cXG7mlrDot6/lvoQ95paw6Lev5b6ELnJlcGxhY2UoXFxcIi5qc29uXFxcIixcXFwiXFxcIikr6Lev5b6E6Ze06ZqUK2lucHV0XFxuXFxu5piv5ZCm6YeN5aSNPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuS5maW5kSW5kZXgoaXQgPT4gaXQgPT09IGlucHV0KTtcXG5pZijmmK/lkKbph43lpI0+LTEpcmV0dXJuICd0b2FzdDovL+mHjeWQjeS6hidcXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlbaV09aW5wdXRcXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLk95pWw57uE5Y676YeNKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuSlcXG5zYXZlRmlsZSjlpIfku73nm67lvZUsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbumcgOWkhOeQhuWIl+ihqD1bXVxcblxcbumcgOWkhOeQhuWIl+ihqD3mlbDnu4Tljrvph40o5aSH5Lu95paH5Lu25aS55aSE55CGKOWkh+S7veebruW9lSzmlofku7blpLnlkI0sXFxcIuaUueWQjVxcXCIs6ZyA5aSE55CG5YiX6KGoKSlcXG5cXG5cXG5cXG5cXG5mb3IgKHZhciBpIGluIOmcgOWkhOeQhuWIl+ihqCkge1xcblxcbuivu+WPluWkhOeQhuaVsOaNriA9IEpTT04ucGFyc2UocmVhZEZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLCAwKSB8fCAnW10nKTtcXG5cXG7or7vlj5blpITnkIbmlbDmja4uZGF0YS7ot6/lvoQ96K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu6Lev5b6ELnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hClcXG5cXG5cXG5pZihmaWxlRXhpc3Qo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hCkpKXtcXG5cXG7lt7LmnInmlbDmja4gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpLCAwKSB8fCAnW10nKTtcXG5cXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7blpLkucHVzaCjor7vlj5blpITnkIbmlbDmja4uZGF0YS7mlofku7blpLkpXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu2LnB1c2go6K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu5paH5Lu2KVxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7tuWkuT3mlbDnu4Tljrvph40o5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu25aS5KVxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7tj3mlbDnu4Tljrvph40o5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu2KVxcblxcbn1lbHNle1xcblxcbnNhdmVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpLCBKU09OLnN0cmluZ2lmeSjor7vlj5blpITnkIbmlbDmja4pLCAwKTtcXG5cXG59XFxuXFxuXFxuXFxuXFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxuXFxuaGlkZUxvYWRpbmcoKTtcXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcblxcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcblxcblxcblxcblxcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX0se3RpdGxlOiAn56e75YqoJywganM6ICQudG9TdHJpbmcoKOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSk9PntcXG5cXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoPVtdXFxuZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXT3lsI/pvpnkupHnm5jlpIfku73nm67lvZVbaV0uc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMV1cXG59XFxuXFxuXFxucmV0dXJuICQo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCAxLCfpnIDopoHnp7vliqjliLDlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKSA9PiB7XFxuICAgIFxcbiAgICBcXG4gICAg5ZOq6YeM5p2lPeWkh+S7veebruW9lS5yZXBsYWNlKC8oMFxcXFwuanNvbnww4ridLio/XFxcXC5qc29uKS8sJycpXFxuICAgIFxcbiAgICDngrnlh7vkvY3nva495aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcblxcbuWtmOWTqumHjD3lsI/pvpnkupHnm5jlpIfku73nm67lvZVb54K55Ye75L2N572uXS5yZXBsYWNlKCcwLmpzb24nLCcnKVxcblxcbuaWh+S7tui3r+W+hD1cXFwiMFxcXCJcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbumAieaLqeaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG7pgInmi6nmlofku7blpLnliJfooagucHVzaChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG7pgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mAieaLqeWkh+S7veaWh+S7tui3r+W+hDInKSkucnVsZSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLkyXFxuXFxuXFxuXFxufSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSlcXG5cXG4gXFxuXFxuXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfSx7dGl0bGU6ICfliKDpmaQnLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKT0+e1xcblxcblxcblxcbiByZXR1cm4gJChcXFwi56Gu5a6a5Yig6Zmk77yfXFxcIikuY29uZmlybSgo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKSA9PiB7XFxuICAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWkh+S7veebruW9lSwgMCkgfHwgJ1tdJyk7XFxuICAgICBzaG93TG9hZGluZygn5Yig6Zmk5LitJylcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuS5zcGxpY2UoaSwxKVxcblxcbnNhdmVGaWxlKOWkh+S7veebruW9lSwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxudHJ5IHtcXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95aSH5Lu95paH5Lu25aS55aSE55CGKOWkh+S7veebruW9lSzmlofku7blpLnlkI0sXFxcIuWIoOmZpFxcXCIs6ZyA5aSE55CG5YiX6KGoKVxcblxcbumcgOWkhOeQhuWIl+ihqD3mlbDnu4Tljrvph40o6ZyA5aSE55CG5YiX6KGoKVxcblxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiBsb2coXFxcIuWIoOmZpOmUmeivr+aWh+S7tuWkuVxcXCIpXFxuIHJldHVybiAndG9hc3Q6Ly/kvaDlj6/og73liKDpmaTkuobkuIDkuKrplJnor6/nmoTmlofku7blpLknXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxuXFxuXFxuICBoaWRlTG9hZGluZygpO1xcbiBcXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcblxcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcblxcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX1dfVxcbn0pXFxuIFxcbiAgICAgICAgXFxuXFxuXFxuXFxuXFxuXFxufWVsc2V7XFxuICAgIFxcblxcbiAgICAgICAgXFxuXFxuICAgICAgICDmlofku7blkI095YiX6KGoW2ldLuaWh+S7tuWQjVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqFtpXS7mlofku7ZDSURcXG4gICAgICAgIOaWh+S7tuagvOW8jz3liJfooahbaV0u5paH5Lu25qC85byPXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoW2ldLuaWh+S7tuWkp+Wwj1xcbiAgICAgICAgaWYoLyhqcGd8Z2lmfHBuZ3xqcGVnKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5qcGcnXFxu5qC85byPPVxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcblxcbn1lbHNlIGlmKC9cXFxcLihhdml8dHN8bXA0fG1vdnxtNHZ8M2dwfHJtfHJtdmJ8d212fGFzZnxhc3hhdml8ZGF0fG1rdnxmbHZ8dm9iKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuWbvueJhz3op4bpopHmlofku7blm77moIdcXG7mlrDmoLzlvI89JyNpc1ZpZGVvPXRydWUjJ1xcbuagvOW8jz1cXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG59ZWxzZSBpZigvKGZsYWN8bXAzfHdtYSkkL2kudGVzdCjmlofku7blkI0pKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMubXAzJ1xcbuagvOW8jz1cXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc96Z+z5LmQ5paH5Lu25Zu+5qCHXFxuXFxufWVsc2V7XFxu6ZO+5o6l5YmN57yAPVxcXCJkb3dubG9hZDovL1xcXCJcXG7mlrDmoLzlvI89XFxcIlxcXCJcXG7moLzlvI89XFxcIjt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3lhbbku5bmlofku7blm77moIdcXG59XFxuXFxuXFxuXFxu6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQr5paw5qC85byPXFxuXFxu57q/6LevMT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68yPVxcXCJodHRwczovL2lwZnNndzAyLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzM9XFxcImh0dHBzOi8vaXBmc2d3MDMuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevND1cXFwiaHR0cHM6Ly9pcGZzZ3cwNC5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG5cXG7pk77mjqXlkI7nvIA95paH5Lu2Q0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK1xcXCJcXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIivmlrDmoLzlvI9cXG5cXG5cXG5cXG7mlrDpk77mjqU96ZO+5o6l5YmN57yAK+e6v+i3rzMr6ZO+5o6l5ZCO57yAXFxuXFxu5paw6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLyYmXFxcIivpk77mjqXlkI7nvIBcXG5cXG7lpJrnur/ot6/pk77mjqU9W+mTvuaOpSznur/ot680K+mTvuaOpeWQjue8gCznur/ot68zK+mTvuaOpeWQjue8gCznur/ot68zK+mTvuaOpeWQjue8gCznur/ot68xK+mTvuaOpeWQjue8gF1cXG5cXG5cXG7pk77mjqU0PeeUn+aIkOebtOmTvijnur/ot680LOaWh+S7tkNJRCzmlofku7blkI0pXFxu6ZO+5o6lMz3nlJ/miJDnm7Tpk74o57q/6LevMyzmlofku7ZDSUQs5paH5Lu25ZCNKVxcbumTvuaOpTI955Sf5oiQ55u06ZO+KOe6v+i3rzIs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7pk77mjqUxPeeUn+aIkOebtOmTvijnur/ot68xLOaWh+S7tkNJRCzmlofku7blkI0pXFxuXFxu5aSa57q/6Lev6ZO+5o6lPVvpk77mjqUs6ZO+5o6lNCvmlrDmoLzlvI8s6ZO+5o6lMyvmlrDmoLzlvI8r6ZO+5o6l5ZCO57yALOmTvuaOpTIr5paw5qC85byPLOmTvuaOpTMr5paw5qC85byPXVxcblxcblxcblxcbuaXoOagvOW8j+WQjue8gD3mlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrXFxcIlxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiXFxuXFxu5aSN5Yi255u06ZO+PVvpk77mjqU0LOmTvuaOpTMs6ZO+5o6lMizpk77mjqUxXVxcblxcbuWkmue6v+i3rz17dXJsczrlpJrnur/ot6/pk77mjqUsIGhlYWRlcnM6IFt7J1JlZmVyZXInOiAnaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJ30sIHsnUmVmZXJlcic6IOe6v+i3rzQr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMyvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68yK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzEr6ZO+5o6l5ZCO57yAfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJ119XFxuXFxu5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog57q/6LevNH0sIHsnUmVmZXJlcic6IOe6v+i3rzN9LCB7J1JlZmVyZXInOiDnur/ot68yfSwgeydSZWZlcmVyJzog57q/6LevMX1dLG5hbWVzOlsn5aSW6ZO+Jywn57q/6LevNCcsJ+e6v+i3rzMnLCfnur/ot68yJywn57q/6LevMSddfVxcblxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiDmlofku7blkI0sXFxuICAgIHBpY191cmw65Zu+54mHLFxcbiAgICB1cmw65paH5Lu2Q0lEK1xcXCImJlxcXCIr5paH5Lu25ZCNK0NJROmTvuaOpeino+aekCxcXG5jb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpLCBleHRyYTogeyBsb25nQ2xpY2s6IFt7dGl0bGU6ICfliIbkuqsnLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLGkpPT57XFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG5cXG5cXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcblxcblxcbn0s5aSH5Lu955uu5b2VLGkpfSx7dGl0bGU6ICfmlLnlkI0nLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpKT0+e1xcblxcblxcbnJldHVybiAkKOaWh+S7tuWQjSwgXFxcIuaWsOeahOaWh+S7tuWQjVxcXCIpLmlucHV0KCjlpIfku73nm67lvZUs5paH5Lu25ZCNLGkpID0+IHtcXG4gICAgXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG5cXG4gICAgXFxu5piv5ZCm6YeN5aSNPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7ti5maW5kSW5kZXgoaXQgPT4gaXQu5paH5Lu25ZCNID09PSBpbnB1dCk7XFxuaWYo5piv5ZCm6YeN5aSNPi0xKXJldHVybiAndG9hc3Q6Ly/ph43lkI3kuoYnXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2W2ldLuaWh+S7tuWQjT1pbnB1dFxcblxcbnNhdmVGaWxlKOWkh+S7veebruW9lSwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxuIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gcmV0dXJuICd0b2FzdDovL+S/ruaUueaIkOWKnydcXG59LOWkh+S7veebruW9lSzmlofku7blkI0saSlcXG5cXG5cXG5cXG5cXG59LOWkh+S7veebruW9lSzmlofku7blkI0saSl9LHt0aXRsZTogJ+enu+WKqCcsIGpzOiAkLnRvU3RyaW5nKCjlpIfku73nm67lvZUsaSzmlofku7blkI0s5paH5Lu2Q0lEKT0+e1xcblxcblxcblxcbiBsZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoPVtdXFxuZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXT3lsI/pvpnkupHnm5jlpIfku73nm67lvZVbaV0uc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMV1cXG59XFxuXFxucmV0dXJuICQo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCAxLCfpnIDopoHnp7vliqjliLDlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpLOaWh+S7tkNJRCkgPT4ge1xcbiAgICBcXG4gICAg5ZOq6YeM5p2lPeWkh+S7veebruW9lS5yZXBsYWNlKC8oMFxcXFwuanNvbnww4ridLio/XFxcXC5qc29uKS8sJycpXFxuICAgIOeCueWHu+S9jee9rj3lpIfku73mlofku7blkI3liJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuXFxu5a2Y5ZOq6YeMPeWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dLnJlcGxhY2UoJzAuanNvbicsJycpXFxuXFxuXFxuXFxuXFxu5paH5Lu26Lev5b6EPVxcXCIwXFxcIlxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EMycpKS5ydWxlKVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuTNcXG5cXG5cXG5cXG59LOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpLOaWh+S7tkNJRClcXG5cXG5cXG5cXG59LOWkh+S7veebruW9lSxpLOaWh+S7tuWQjSzmlofku7ZDSUQpfSx7dGl0bGU6ICfliKDpmaQnLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLGkpPT57XFxuXFxucmV0dXJuICQoXFxcIuehruWumuWIoOmZpO+8n1xcXCIpLmNvbmZpcm0oKOWkh+S7veebruW9lSxpKSA9PiB7XFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG5cXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7Yuc3BsaWNlKGksMSlcXG5cXG5zYXZlRmlsZSjlpIfku73nm67lvZUsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxufSzlpIfku73nm67lvZUsaSlcXG5cXG5cXG5cXG59LOWkh+S7veebruW9lSxpKX1dIH0gXFxufSlcXG5cXG5cXG5cXG59XFxuICAgICAgICB9Ly/liJfooajlvqrnjq/nmoTmi6zlj7dcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59ZWxzZXtcXG5kLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGA8Zm9udCBjb2xvcj1cXFwiI0ZCNkM3M1xcXCI+5paH5Lu25Lii5aSxPC9mb250PmAsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCJcXG5cXG59KVxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59ZWxzZXtcXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWkh+S7veino+aekFxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIixcXG4gICAgdXJsOiBcXFwiI25vUmVjb3JkSGlzdG9yeSNcXFwiKyQoYHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW10sXFxcIuaWh+S7tlxcXCI6W3tcXFwi5paH5Lu2Q0lEXFxcIjpcXFwi5b+F5aGrXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwi5b+F5aGrXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiM1xcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcIuW/hemhu+Whq1xcXCJ9XX1dfWAsXFxcIuino+aekOWtl+espui2iuWkmui2iuaFolxcXFxu4pGg5pSv5oyB6Kej5p6Q5Y6f5aeL5pWw5o2uIGpzb27moLzlvI9cXFxcbuKRoeaUr+aMgeino+aekDExNSDlk4jluIzlgLzmlbDmja5cXFwiKS5pbnB1dCgoKSA9PiB7XFxuXFxuaWYoL1thLWYwLTldezQwfS9pZy50ZXN0KGlucHV0KSl7XFxuXFxuXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv6Kej5p6Q5ZOI5biM5YC8I25vUmVjb3JkSGlzdG9yeSM/5pWw5o2uPVxcXCIrSlNPTi5zdHJpbmdpZnkoaW5wdXQpXFxuXFxufVxcblxcblxcbnRyeSB7XFxuIOaVsOaNrj1KU09OLnBhcnNlKGlucHV0KS5kYXRhXFxuXFxu5paH5Lu26Lev5b6EPeaVsOaNrlswXS7ot6/lvoRcXG7mlofku7blpLnlkI09XFxcIjBcXFwiXFxuXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFI25vUmVjb3JkSGlzdG9yeSM/5aSH5Lu95pWw5o2uPVxcXCIrSlNPTi5zdHJpbmdpZnko5pWw5o2uKStcXFwiJuaWh+S7tui3r+W+hD1cXFwiK+aWh+S7tui3r+W+hCtcXFwiJuaWh+S7tuWkueWQjT1cXFwiK+aWh+S7tuWkueWQjVxcblxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgbG9nKGUubWVzc2FnZSlcXG4gICAgcmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG59XFxuICAgICAgICAgICAgICAgICAgICBcXG5cXG4gICAgICAgICAgICAgICAgfSlcXG59KVxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5pu05aSa5pON5L2cXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxufSlcXG5cXG7mlofku7bot6/lvoQ9Z2V0UGFyYW0oJ+aWh+S7tui3r+W+hCcsICfmlofku7bot6/lvoQnKVxcblxcbuaWh+S7tuWkueWQjT1nZXRQYXJhbSgn5paH5Lu25aS55ZCNJywgJ+aWh+S7tuWkueWQjScpXFxuXFxu5aSH5Lu95pWw5o2uPUpTT04ucGFyc2UoZ2V0UGFyYW0oJ+Wkh+S7veaVsOaNricsICflpIfku73mlbDmja4nKSlcXG5cXG5pZijlpIfku73mlbDmja49PVxcXCLlr7zlhaXkuLTml7bmlofku7ZcXFwiKSDlpIfku73mlbDmja49SlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWIhuS6q+S4tOaXtuWvvOWHui5qc29uJywgMCl8fCAnW10nKS5kYXRhO1xcblxcblxcblxcbuaWh+S7tui3r+W+hD3mlofku7bot6/lvoQr6Lev5b6E6Ze06ZqUK+aWh+S7tuWkueWQjVxcbmlmKOaWh+S7tuWkueWQjT09XFxcIjBcXFwiKSDmlofku7bot6/lvoQ9XFxcIjBcXFwiXFxuXFxuXFxuXFxuXFxuXFxuLy9sZXQg5p+l5om+5Z2Q5qCHID0g5aSH5Lu95pWw5o2uLmZpbmRJbmRleChpdCA9PiBpdC7ot6/lvoQgPT09IOaWh+S7tui3r+W+hCk7XFxu5p+l5om+5Z2Q5qCHPS0xXFxuZm9yKHZhciBpIGluIOWkh+S7veaVsOaNril7XFxuXFxuaWYo5paH5Lu26Lev5b6EPT3lpIfku73mlbDmja5baV0u6Lev5b6EKXtcXG7mn6Xmib7lnZDmoIc9aVxcbmJyZWFrO1xcbn1cXG59XFxuXFxuXFxuXFxuXFxuaWYgKOafpeaJvuWdkOaghyA+IC0xKSB7XFxuXFxuICAg5YiX6KGoYT3lpIfku73mlbDmja5b5p+l5om+5Z2Q5qCHXS7mlofku7blpLlcXG4gICDliJfooahiPeWkh+S7veaVsOaNrlvmn6Xmib7lnZDmoIddLuaWh+S7tlxcbiAgICBcXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgICAgICDmlofku7blpLnlkI095YiX6KGoYVtpXVxcbiAgICAgICAgZC5wdXNoKHtcXG50aXRsZTrmlofku7blpLnlkI0sXFxucGljX3VybDrmlofku7blpLnlm77moIcsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFI25vUmVjb3JkSGlzdG9yeSM/5aSH5Lu95pWw5o2uPVxcXCIrSlNPTi5zdHJpbmdpZnko5aSH5Lu95pWw5o2uKStcXFwiJuaWh+S7tui3r+W+hD1cXFwiK+aWh+S7tui3r+W+hC5yZXBsYWNlKFxcXCI8XFxcIivmlofku7blpLnlkI0sXFxcIlxcXCIpK1xcXCIm5paH5Lu25aS55ZCNPVxcXCIr5paH5Lu25aS55ZCNLFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIilcXG59KVxcbiAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYikge1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0u5paH5Lu25ZCNXFxuICAgICAgICDmlofku7ZDSUQ95YiX6KGoYltpXS7mlofku7ZDSURcXG4gICAgICAgIOaWh+S7tuagvOW8jz3liJfooahiW2ldLuaWh+S7tuagvOW8j1xcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0u5paH5Lu25aSn5bCPXFxuICAgICAgICBpZD3mlofku7ZDSURcXG5pZigvKGpwZ3xnaWZ8cG5nfGpwZWcpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxuXFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5paw5qC85byPPScjLmpwZydcXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcbuaWsOagvOW8jz0nI2lzVmlkZW89dHJ1ZSMnXFxu5qC85byPPVxcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbn1lbHNlIGlmKC8oZmxhY3xtcDN8d21hKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5tcDMnXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG7pk77mjqXliY3nvIA9XFxcImRvd25sb2FkOi8vXFxcIlxcbuaWsOagvOW8jz1cXFwiXFxcIlxcbuagvOW8jz1cXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPeWFtuS7luaWh+S7tuWbvuagh1xcbn1cXG5cXG5cXG5cXG7pk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCvmlrDmoLzlvI9cXG5cXG7nur/ot68xPVxcXCJodHRwczovL2lwZnNndzAxLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzI9XFxcImh0dHBzOi8vaXBmc2d3MDIuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMy5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot680PVxcXCJodHRwczovL2lwZnNndzA0LnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcblxcbumTvuaOpeWQjue8gD3mlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrXFxcIlxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiK+aWsOagvOW8j1xcblxcblxcblxcbuaWsOmTvuaOpT3pk77mjqXliY3nvIAr57q/6LevMyvpk77mjqXlkI7nvIBcXG5cXG7mlrDpk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJiZcXFwiK+mTvuaOpeWQjue8gFxcblxcbuWkmue6v+i3r+mTvuaOpT1b6ZO+5o6lLOe6v+i3rzQr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzEr6ZO+5o6l5ZCO57yAXVxcblxcblxcbumTvuaOpTQ955Sf5oiQ55u06ZO+KOe6v+i3rzQs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7pk77mjqUzPeeUn+aIkOebtOmTvijnur/ot68zLOaWh+S7tkNJRCzmlofku7blkI0pXFxu6ZO+5o6lMj3nlJ/miJDnm7Tpk74o57q/6LevMizmlofku7ZDSUQs5paH5Lu25ZCNKVxcbumTvuaOpTE955Sf5oiQ55u06ZO+KOe6v+i3rzEs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG5cXG7lpJrnur/ot6/pk77mjqU9W+mTvuaOpSzpk77mjqU0K+aWsOagvOW8jyzpk77mjqUzK+aWsOagvOW8jyvpk77mjqXlkI7nvIAs6ZO+5o6lMivmlrDmoLzlvI8s6ZO+5o6lMyvmlrDmoLzlvI9dXFxuXFxuXFxuXFxu5peg5qC85byP5ZCO57yAPeaWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIitcXFwiXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiJnU9MFxcXCJcXG5cXG7lpI3liLbnm7Tpk749W+mTvuaOpTQs6ZO+5o6lMyzpk77mjqUyLOmTvuaOpTFdXFxuXFxu5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog57q/6LevNCvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68zK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzIr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMSvpk77mjqXlkI7nvIB9XSxuYW1lczpbJ+WklumTvicsJ+e6v+i3rzQnLCfnur/ot68zJywn57q/6LevMicsJ+e6v+i3rzEnXX1cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydSZWZlcmVyJzogJ2h0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLyd9LCB7J1JlZmVyZXInOiDnur/ot680fSwgeydSZWZlcmVyJzog57q/6LevM30sIHsnUmVmZXJlcic6IOe6v+i3rzJ9LCB7J1JlZmVyZXInOiDnur/ot68xfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJ119XFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGZvcm1hdFNpemUo5paH5Lu25aSn5bCPKStcXFwiLVxcXCIr5paH5Lu25ZCNLFxcbiAgICBwaWNfdXJsOuWbvueJhyxcXG4gICAgdXJsOuaWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWQjStDSUTpk77mjqXop6PmnpAsXFxuY29sX3R5cGU6IHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j+WPmOmHj1xcXCIsIFxcXCJhdmF0YXJcXFwiKSxcXG5leHRyYTp7bG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5a2Y6Iez572R55uYXFxcIiwganM6ICQudG9TdHJpbmcoKOaWh+S7tuWQjSzmlofku7blpKflsI8s5paH5Lu2Q0lELOaWh+S7tuagvOW8jyk9PntcXG5cXG5cXG5cXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pID0+IHtcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aSvmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG5cXG5cXG5pZD1ge1xcXCLmlofku7ZDSURcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCvmlofku7blkI0rYFxcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcImAr5paH5Lu25qC85byPK2BcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCJgK+aWh+S7tuWkp+WwjytgXFxcIn1gXFxuXFxudXNlcmlkPVxcXCLml6AoQ0lEKVxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG59LOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pXFxuXFxuXFxuXFxuXFxufSzmlofku7blkI0s5paH5Lu25aSn5bCPLOaWh+S7tkNJRCzmlofku7bmoLzlvI8pXFxufV19XFxufSlcXG4gICAgICAgIH1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59ZWxzZXtcXG5kLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGA8Zm9udCBjb2xvcj1cXFwiI0ZCNkM3M1xcXCI+5paH5Lu25Lii5aSxPC9mb250PmAsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCJcXG5cXG59KVxcblxcblxcbn1cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LqR5Y+j5LukXCIsXCJwYXRoXCI6XCLkupHlj6Pku6RcIixcInJ1bGVcIjpcIlxcblxcblxcblxcblxcblxcbmZ1bmN0aW9uIOWkhOeQhuS6keWPo+S7pCjmlbDmja4pIHtcXG4gICAgXFxuICAgIFxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwP3J1bGU9SVBGU+i1hOa6kCcpKS5ydWxlKVxcblxcbiAgIFxcblxcbiAgICBpZiAo5pWw5o2uLmxlbmd0aCA8IDMgfHwg5pWw5o2uWzBdICE9IGB7YCkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOagvOW8j1xcXCJcXG4gICAgfVxcblxcbiAgICAg5pWw5o2uID0gSlNPTi5wYXJzZSjmlbDmja4pXFxuXFxuXFxuICAgICBcXG5cXG4gICAgaWYgKOaVsOaNri5kYXRhID09IG51bGwgfHwg5pWw5o2uLmRhdGEubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOaVsOaNrlxcXCJcXG4gICAgfSBlbHNlIHtcXG5cXG50cnkge1xcbuWtmOWFpeaWh+S7tuWIl+ihqD3mlbDmja4uZGF0YVswXS7mlofku7blpLkuam9pbihcXFwi44CBXFxcIilcXG59IGNhdGNoIChlKSB7XFxu5a2Y5YWl5paH5Lu25YiX6KGoPeaVsOaNri5kYXRhWzBdLuaWh+S7ti5qb2luKFxcXCLjgIFcXFwiKVxcbiAgICBsb2coZS5tZXNzYWdlKVxcbn1cXG5cXG5cXG5yZXR1cm4gY29uZmlybSh7XFxudGl0bGU6J+mAieaLqeaPkOekuicsIFxcbmNvbnRlbnQ6J+WtmOWFpeeahOaWh+S7tuS4ujonK+WtmOWFpeaWh+S7tuWIl+ihqCsnXFxcXG7ngrnlh7vnoa7lrprlkI7lrZjlhaXmlofku7blpLnlpIfku70nLCBcXG5cXG5jb25maXJtOiQudG9TdHJpbmcoKOaVsOaNrikgPT4ge1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwP3J1bGU9SVBGU+i1hOa6kCcpKS5ydWxlKVxcblxcbuaVsOaNruWIl+ihqD3mlbDmja4uZGF0YVxcbmZvciAodmFyIGkgaW4g5pWw5o2u5YiX6KGoKSB7XFxuXFxubG9nKOaVsOaNruWIl+ihqFtpXS7ot6/lvoQpXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIr5pWw5o2u5YiX6KGoW2ldLui3r+W+hCtcXFwiLmpzb25cXFwiLCAwKSB8fCAnW10nKTtcXG5cXG5cXG5sb2co5pWw5o2u5YiX6KGoW2ldKVxcblxcbnB1dE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiKVxcblxcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5sZW5ndGg8MSl7XFxuXFxubGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApfHwgJ1tdJyk7XFxuXFxuXFxuICAgICBcXG7lsI/pvpnkupHnm5jlpIfku73nm67lvZUucHVzaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vMC5qc29uJylcXG5cXG7lsI/pvpnkupHnm5jlpIfku73nm67lvZU95pWw57uE5Y676YeNKOWwj+m+meS6keebmOWkh+S7veebruW9lSlcXG5cXG5cXG5cXG5cXG5cXG5zYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSwgMCk7XFxuXFxuXFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9PXtcXFwi5aSH5Lu95pe26Ze0XFxcIjpuZXcgRGF0ZSgpLmdldFRpbWUoKSxcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IOaVsOaNruWIl+ihqFtpXX1cXG5cXG5sb2co5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KVxcblxcbn1lbHNle1xcblxcblxcbuaWh+S7tuWkueaVsOe7hD3mlbDmja7liJfooahbaV0u5paH5Lu25aS5XFxu5paH5Lu25pWw57uEPeaVsOaNruWIl+ihqFtpXS7mlofku7ZcXG4gICAg5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbiAgICDmlofku7bliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2XFxuXFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlofku7blpLnliJfooaguY29uY2F0KOaWh+S7tuWkueaVsOe7hClcXG4gICAg5paH5Lu25YiX6KGoPeaWh+S7tuWIl+ihqC5jb25jYXQo5paH5Lu25pWw57uEKVxcblxcbiAgICBcXG4gICAg5paH5Lu25aS55YiX6KGoPeaVsOe7hOWOu+mHjSjmlofku7blpLnliJfooagpXFxuICAgIOaWh+S7tuWIl+ihqD3mlbDnu4Tljrvph40o5paH5Lu25YiX6KGoKVxcbiAgICBcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5PeaWh+S7tuWkueWIl+ihqFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7Y95paH5Lu25YiX6KGoXFxuICAgIFxcblxcblxcblxcblxcbn1cXG5cXG5zYXZlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIivmlbDmja7liJfooahbaV0u6Lev5b6EK1xcXCIuanNvblxcXCIsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbn1cXG5cXG5yZXR1cm4ndG9hc3Q6Ly/lt7Llr7zlhaUg5paH5Lu25aS55aSH5Lu9J1xcblxcblxcblxcbiAgICBcXG4gICAgICAgICAgICAgICAgfSzmlbDmja4pLFxcblxcbmNhbmNlbDokLnRvU3RyaW5nKCjmlbDmja4pID0+IHtcXG5cXG4gICAgICAgICAgIHJldHVybid0b2FzdDovL+S9oOWPlua2iOS6huWvvOWFpSdcXG4gICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICB9KSxcXG5cXG59LOaVsOaNrilcXG5cXG5cXG5cXG5cXG5yZXR1cm4gJChbXFxcIumAieaLqeWvvOWFpVxcXCIsXFxcIuWFqOmDqOWvvOWFpVxcXCJdLCAyLCfpnIDopoHlk6rph4zlr7zlhaXmlrnlvI/vvJ8nKS5zZWxlY3QoKOaVsOaNrikgPT4ge1xcbiAgICBcXG4gICAgaWYoaW5wdXQ9PVxcXCLpgInmi6nlr7zlhaVcXFwiKXtcXG5cXG7mlbDmja495pWw5o2uLmRhdGFcXG7mlofku7bot6/lvoQ95pWw5o2uWzBdLui3r+W+hFxcbuaWh+S7tuWkueWQjT3mlofku7bot6/lvoQuc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMF1cXG5sb2coXFxcIuWJjeaWh+S7tui3r+W+hFxcXCIr5paH5Lu26Lev5b6EKVxcbmxvZyhcXFwi5YmN5paH5Lu25aS55ZCNXFxcIivmlofku7blpLnlkI0pXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFP+Wkh+S7veaVsOaNrj1cXFwiK0pTT04uc3RyaW5naWZ5KOaVsOaNrikrXFxcIibmlofku7bot6/lvoQ9XFxcIivmlofku7bot6/lvoQucmVwbGFjZShcXFwiL1xcXCIr5paH5Lu25aS55ZCNLFxcXCJcXFwiKStcXFwiJuaWh+S7tuWkueWQjT1cXFwiK+aWh+S7tuWkueWQjVxcblxcbiAgICAgICAgXFxuICAgIH1lbHNlIGlmKGlucHV0PT1cXFwi5YWo6YOo5a+85YWlXFxcIil7XFxuICAgICAgICByZXR1cm4gJChcXFwi572R5Y+L5YiG5LqrXFxcIitzdG9yYWdlMC5nZXRNeVZhcihcXFwi5bCP6b6Z5LqR55uY5a+85YWl5LqR5Y+j5Luk5qyh5pWwXFxcIiwxKStcXFwiKFxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIilcXFwiLFxcXCLmlrDnmoTlpIfku73mlofku7blkI1cXFwiKS5pbnB1dCgo5pWw5o2uKT0+e1xcbiAgICAgICAgICAgIFxcbuWvvOWFpeWkh+S7vei3r+W+hD1cXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL1xcXCIraW5wdXQrXFxcIi5qc29uXFxcIlxcblxcbnNhdmVGaWxlKOWvvOWFpeWkh+S7vei3r+W+hCwgSlNPTi5zdHJpbmdpZnko5pWw5o2uKSwgMCk7XFxuXFxuXFxubGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLnB1c2go5a+85YWl5aSH5Lu96Lev5b6EKVxcbuWwj+m+meS6keebmOWkh+S7veebruW9lT3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcbnNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpLCAwKTtcXG5cXG5zdG9yYWdlMC5wdXRNeVZhcihcXFwi5bCP6b6Z5LqR55uY5a+85YWl5LqR5Y+j5Luk5qyh5pWwXFxcIixzdG9yYWdlMC5nZXRNeVZhcihcXFwi5bCP6b6Z5LqR55uY5a+85YWl5LqR5Y+j5Luk5qyh5pWwXFxcIiwxKSsrKVxcblxcbiAgICAgIHJldHVybiAndG9hc3Q6Ly/lr7zlhaXmiJDlip86JytpbnB1dFxcbiAgICAgICAgICAgIFxcbiAgICAgICAgfSzmlbDmja4pXFxuICAgICAgICBcXG4gICAgfWVsc2V7XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybid0b2FzdDovL+acquW8gOWPkSdcXG4gICAgfVxcblxcblxcblxcblxcblxcbn0s5pWw5o2uKVxcblxcblxcblxcblxcbi8qXFxuXFxubGV0IOWwj+m+meS6keebmOWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku70uanNvbicsIDApIHx8ICdbXScpO1xcblxcbiAgICAgICAg5paH5Lu25aS55ZCNID0g5pWw5o2uLuaWh+S7tuWkueWQjVxcbiAgICAgICAg5paH5Lu25pWwPeaVsOaNri5kYXRhLmxlbmd0aFxcblxcbmxvZyjlsI/pvpnkupHnm5jlpIfku70pXFxubG9nKOaWh+S7tuWkueWQjSlcXG5cXG4gICAgICAgIGxldCBpZGV4ID0g5bCP6b6Z5LqR55uY5aSH5Lu9LmZpbmRJbmRleChpdCA9PiBpdC7mlofku7blpLnlkI0gPT09IOaWh+S7tuWkueWQjSk7XFxuICAgICAgICBsb2coXFxcImlkZXhcXFwiICsgaWRleClcXG4gICAgICAgIGlmIChpZGV4ID4gLTEpIHtcXG4gICAgICAgICAgICBpZiAo5bCP6b6Z5LqR55uY5aSH5Lu9W2lkZXhdLuaWh+S7tuWkueWQjSA9PSDmlofku7blpLnlkI0pIHtcXG5cXG5cXG5cXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5rKh5pyJ5pON5L2cJ1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAg5bCP6b6Z5LqR55uY5aSH5Lu9LnB1c2go5pWw5o2uKTtcXG4gICAgICAgICAgICBzYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7vS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu9KSwgMCk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+Wkh+S7veaWh+S7tuaVsDpcXFwiICsg5paH5Lu25pWwXFxuXFxuICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIFxcbiovXFxuXFxuXFxuXFxuXFxuXFxuXFxufVxcblxcbn1cXG5cXG7mlbDmja4gPSBwYXJzZVBhc3RlKGlucHV0KTtcXG5cXG7lpITnkIbkupHlj6Pku6Qo5pWw5o2uKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5om56YeP5pON5L2cXCIsXCJwYXRoXCI6XCLmibnph4/mk43kvZxcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcbuWIl+ihqD1KU09OLnBhcnNlKGdldFBhcmFtKCdkYXRhJywgJ+aXoCcpKVxcbuaWh+S7tuWkuWlkPWdldFBhcmFtKCfmlofku7blpLlpZCcsICfml6AnKVxcbuaWh+S7tuWkueWQjT1nZXRQYXJhbSgn5paH5Lu25aS55ZCNJywgJ+aXoCcpXFxuXFxuXFxucGFnZSA9IE51bWJlcihnZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsIFxcXCIxXFxcIikpO1xcblxcbuWIh+WJsuWIl+ihqOWAvD1zdG9yYWdlMC5nZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixcXFwiNTBcXFwiKVxcblxcblxcblxcbmQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6XFxcIjxzdHJvbmc+PGZvbnQgY29sb3I9JyMxRTkwRkYnPuivt+mAieaLqemcgOimgeWkhOeQhueahOaWh+S7tiDlvZPliY3lt7LpgIk6XFxcIitKU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKS5sZW5ndGgrXFxcIjwvZnJvbnQ+PC9zdHJvbmc+XFxcIixcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCIsXFxuICAgICAgICB9KTtcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWFqOmAiVxcXCIsXFxuICAgIHVybDokKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCjmlofku7blpLlpZCzliJfooagpID0+IHtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcbnBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpKTtcXG5cXG7liIflibLliJfooajlgLw9c3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIilcXG5cXG5mb3IobGV0IGkgPSDliIflibLliJfooajlgLwqKHBhZ2UtMSk7aSA8IOWIl+ihqC5sZW5ndGgmJmk85YiH5Ymy5YiX6KGo5YC8KnBhZ2U7aSsrKSB7XFxuICAgICAgICDmoIfpopg95YiX6KGoW2ldLmZpbGVOYW1lXFxuICAgICAgICBpZD3liJfooahbaV0uaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahbaV0uZmlsZVNpemVcXG4gICAgICAgIGZpbGVUeXBlPeWIl+ihqFtpXS5maWxlVHlwZVxcblxcbmlmKOaWh+S7tuWkp+Wwjz09MCl7XFxu5paH5Lu2Q0lEPVxcXCLml6BcXFwiXFxufWVsc2V7XFxuXFxu5paH5Lu2Q0lEPeWIl+ihqFtpXS5maWxlQ2lkXFxuXFxufVxcbuaJuemHj+mAieaLqeaVsOaNrj1pZCtcXFwiJiZcXFwiK+agh+mimCtcXFwiJiZcXFwiK+aWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWkp+WwjytcXFwiJiZcXFwiK2ZpbGVUeXBlXFxuXFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uELnB1c2go5om56YeP6YCJ5oup5pWw5o2uKVxcblxcblxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrizpgInlrprlm77moIcpXFxuXFxuXFxuXFxufVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPeaVsOe7hOWOu+mHjSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QpXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsSlNPTi5zdHJpbmdpZnko5om56YeP6YCJ5oup5pWw5o2u5pWw57uEKSlcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5bey57uP5YWo6YCJJ1xcblxcblxcbn0s5paH5Lu25aS5aWQs5YiX6KGoKSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLlj43pgIlcXFwiLFxcbiAgICB1cmw6JChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQs5YiX6KGoKSA9PiB7XFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lm77moIcnKSkucnVsZSlcXG5cXG5cXG7lhajpg6jmlbDmja7mlbDnu4Q9W11cXG5cXG5wYWdlID0gTnVtYmVyKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKSk7XFxu5YiH5Ymy5YiX6KGo5YC8PXN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLFxcXCI1MFxcXCIpXFxuXFxuZm9yKGxldCBpID0g5YiH5Ymy5YiX6KGo5YC8KihwYWdlLTEpO2kgPCDliJfooagubGVuZ3RoJiZpPOWIh+WJsuWIl+ihqOWAvCpwYWdlO2krKykge1xcbiAgICAgICAg5qCH6aKYPeWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgaWQ95YiX6KGoW2ldLmlkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoW2ldLmZpbGVTaXplXFxuICAgICAgICBmaWxlVHlwZT3liJfooahbaV0uZmlsZVR5cGVcXG5cXG5pZijmlofku7blpKflsI89PTApe1xcbuaWh+S7tkNJRD1cXFwi5pegXFxcIlxcbn1lbHNle1xcblxcblxcbuaWh+S7tkNJRD3liJfooahbaV0uZmlsZUNpZFxcbn1cXG7mibnph4/pgInmi6nmlbDmja49aWQrXFxcIiYmXFxcIivmoIfpopgrXFxcIiYmXFxcIivmlofku7ZDSUQrXFxcIiYmXFxcIivmlofku7blpKflsI8rXFxcIiYmXFxcIitmaWxlVHlwZVxcblxcbuWFqOmDqOaVsOaNruaVsOe7hC5wdXNoKOaJuemHj+mAieaLqeaVsOaNrilcXG5cXG5cXG5wdXRNeVZhcijmlofku7blpLlpZCvmibnph4/pgInmi6nmlbDmja4s6YCJ5a6a5Zu+5qCHKVxcblxcblxcblxcblxcbn1cXG5cXG7mibnph4/pgInmi6nmlbDmja7mlbDnu4Q9SlNPTi5wYXJzZShnZXRNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIixcXFwiW11cXFwiKSlcXG5cXG5mb3IgKHZhciBpIGluIOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkge1xcbmNsZWFyTXlWYXIo5paH5Lu25aS5aWQr5om56YeP6YCJ5oup5pWw5o2u5pWw57uEW2ldKVxcbuWFqOmDqOaVsOaNruaVsOe7hC5zcGxpY2Uo5YWo6YOo5pWw5o2u5pWw57uELmluZGV4T2Yo5om56YeP6YCJ5oup5pWw5o2u5pWw57uEW2ldKSwxKVxcbn1cXG5cXG7mibnph4/pgInmi6nmlbDmja7mlbDnu4Q95YWo6YOo5pWw5o2u5pWw57uEXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsSlNPTi5zdHJpbmdpZnko5om56YeP6YCJ5oup5pWw5o2u5pWw57uEKSlcXG5cXG5cXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5bey57uP5Y+N6YCJJ1xcblxcblxcblxcblxcblxcblxcbn0s5paH5Lu25aS5aWQs5YiX6KGoKSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLFxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLmk43kvZxcXFwiLFxcbiAgICB1cmw6JChbXFxcIuWPlua2iOW3sumAiVxcXCIsXFxcIuW6j+WPt+mAieaLqVxcXCIsXFxcIuWIhuS6q+W3sumAiVxcXCIsXFxcIuWkh+S7veW3sumAiVxcXCIsXFxcIuaUueWQjeW3sumAiVxcXCIsXFxcIuenu+WKqOW3sumAiVxcXCIsXFxcIuWIoOmZpOW3sumAiVxcXCIsXFxcIuW+heW8gOWPkVxcXCJdLCAyLCfpnIDopoHov5vooYzku4DkuYjmk43kvZzvvJ8nKS5zZWxlY3QoKOaWh+S7tuWkuWlkLOaWh+S7tuWkueWQjSkgPT4ge1xcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcbmlmKGlucHV0PT1cXFwi5Y+W5raI5bey6YCJXFxcIil7XFxuXFxuZm9yKGk9MDtpPOaJuemHj+mAieaLqeaVsOaNruaVsOe7hC5sZW5ndGg7aSsrKXtcXG5jbGVhck15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNruaVsOe7hFtpXSlcXG59XFxuY2xlYXJNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIilcXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5bey5YWo6YOo5Y+W5raIJ1xcblxcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi5bqP5Y+36YCJ5oupXFxcIil7XFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLliIbkuqvlt7LpgIlcXFwiKXtcXG4gICAgXFxuICAgIFxcbiAgICBcXG5cXG5yZXR1cm4gJChbXFxcIuWumOaWueWIhuS6qy3lpKfmlofku7bliIbkuqtcXFwiLFxcXCJDSUTliIbkuqst5bCR6YeP5pWw5o2u5YiG5LqrXFxcIl0sIDEsJ+WTquenjeWIhuS6q++8nycpLnNlbGVjdCgo5paH5Lu25aS5aWQs5paH5Lu25aS55ZCNKSA9PiB7XFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLlrpjmlrnliIbkuqst5aSn5paH5Lu25YiG5LqrXFxcIil7XFxuXFxuXFxucmV0dXJuICQoXFxcIjBcXFwiLFxcXCLliIbkuqvlpKnmlbAgMOS4uuawuOS5hVxcXCIpLmlucHV0KCjmlofku7blpLlpZCkgPT4ge1xcblxcbuWIhuS6q+WkqeaVsD1pbnB1dFxcblxcbnJldHVybiAkKFtcXFwi5omA5pyJ5paH5Lu25LiA5Liq6ZO+5o6lXFxcIixcXFwi5q+P5Liq5paH5Lu25LiA5Liq6ZO+5o6lXFxcIl0sIDEsJ+WTquenjeWIhuS6q++8nycpLnNlbGVjdCgo5paH5Lu25aS5aWQs5YiG5Lqr5aSp5pWwKSA9PiB7XFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcblxcbmlmKGlucHV0PT1cXFwi5omA5pyJ5paH5Lu25LiA5Liq6ZO+5o6lXFxcIil7XFxuXFxu6K+35rGC5YiG5Lqr6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvc2hhcmVcXFwiXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuaWQ9W11cXG7moIfpopg9W11cXG5mb3IgKHZhciBpIGluIOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkge1xcbmlkW2ldPeaJuemHj+mAieaLqeaVsOaNruaVsOe7hFtpXS5zcGxpdChcXFwiJiZcXFwiKVswXVxcbuagh+mimFtpXT3mibnph4/pgInmi6nmlbDmja7mlbDnu4RbaV0uc3BsaXQoXFxcIiYmXFxcIilbMV0ucmVwbGFjZSgvXFxcXC5cXFxcdyskL2csJycpXFxufVxcblxcbmlkPWlkLmpvaW4oYFxcXCIsXFxcImApXFxu5qCH6aKYPeagh+mimC5qb2luKFxcXCLjgIFcXFwiKS5zdWJzdHIoMCwgNTUpXFxuXFxu6Lqr5L2TPWB7XFxcImlkc1xcXCI6W1xcXCJgK2lkK2BcXFwiXSxcXFwic2hhcmVEYXlzXFxcIjpgK+WIhuS6q+WkqeaVsCtgLFxcXCJzaGFyZUNvbnRlbnRcXFwiOlxcXCJgK+agh+mimCtgXFxcIixcXFwiZW5jcnlwdENvZGVcXFwiOlxcXCIwXFxcIn1gXFxuICAgICAgICBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLliIbkuqvpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuaWYo56ys5LiA5qyh5ZON5bqULmluY2x1ZGVzKFxcXCLnu5HlrprmiYvmnLrlj7dcXFwiKSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5pyq57uR5a6a5omL5py65Y+35peg5rOV5YiG5LqrJ1xcblxcbuWIhuS6q+mTvuaOpT1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5saW5rXFxuY29weSgn5paH5Lu25ZCNOicr5qCH6aKYKydcXFxcbicrJ+WIhuS6q+mTvuaOpTonK+WIhuS6q+mTvuaOpSlcXG4gICAgICAgIFxcbnJldHVybiAndG9hc3Q6Ly/liIbkuqvmiJDlip8g5bey5aSN5Yi25YiG5Lqr6ZO+5o6lJ1xcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi5q+P5Liq5paH5Lu25LiA5Liq6ZO+5o6lXFxcIil7XFxuXFxu6K+35rGC5YiG5Lqr6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvc2hhcmVcXFwiXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxu5YiG5Lqr6ZO+5o6lPVtdXFxuZm9yICh2YXIgaSBpbiDmibnph4/pgInmi6nmlbDmja7mlbDnu4QpIHtcXG5cXG5pZD3mibnph4/pgInmi6nmlbDmja7mlbDnu4RbaV0uc3BsaXQoXFxcIiYmXFxcIilbMF1cXG7moIfpopg95om56YeP6YCJ5oup5pWw5o2u5pWw57uEW2ldLnNwbGl0KFxcXCImJlxcXCIpWzFdXFxuXFxu6Lqr5L2TPWB7XFxcImlkc1xcXCI6W1xcXCJgK2lkK2BcXFwiXSxcXFwic2hhcmVEYXlzXFxcIjpgK+WIhuS6q+WkqeaVsCtgLFxcXCJzaGFyZUNvbnRlbnRcXFwiOlxcXCJgK+agh+mimCtgXFxcIixcXFwiZW5jcnlwdENvZGVcXFwiOlxcXCIwXFxcIn1gXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5YiG5Lqr6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbmlmKOesrOS4gOasoeWTjeW6lC5pbmNsdWRlcyhcXFwi57uR5a6a5omL5py65Y+3XFxcIikpXFxucmV0dXJuICd0b2FzdDovL+acque7keWumuaJi+acuuWPt+aXoOazleWIhuS6qydcXG5cXG7liIbkuqvpk77mjqVbaV09J+aWh+S7tuWQjTonK+agh+mimCsnXFxcXG4nKyfliIbkuqvpk77mjqU6JytKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5saW5rXFxuXFxuXFxufVxcblxcbuWIhuS6q+mTvuaOpT3liIbkuqvpk77mjqUuam9pbignXFxcXG5cXFxcbicpXFxuXFxuY29weSjliIbkuqvpk77mjqUpXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5YiG5Lqr5oiQ5YqfIOW3suWkjeWItuWFqOmDqOmTvuaOpSdcXG5cXG5cXG59XFxuXFxuXFxuXFxufSzmlofku7blpLlpZCzliIbkuqvlpKnmlbApXFxuXFxufSzmlofku7blpLlpZClcXG5cXG4gICAgICAgICAgICAgICAgICAgIFxcblxcblxcblxcblxcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwiQ0lE5YiG5LqrLeWwkemHj+aVsOaNruWIhuS6q1xcXCIpe1xcblxcblxcblxcbnJldHVybiAkKFtcXFwi55u05o6l5aSN5Yi2Lea6kOaVsOaNrlxcXCIsXFxcIue9kee7nOmTvuaOpS3kupHlj6Pku6RcXFwiLFxcXCLlr7zlh7rmlofku7Yt5rqQ5paH5Lu2XFxcIl0sIDEsJ+WTquenjeWIhuS6q++8nycpLnNlbGVjdCgo5paH5Lu25aS5aWQs5paH5Lu25aS55ZCNKSA9PiB7XFxuICAgIFxcbiAgICBcXG4gICAg5YiG5Lqr5pa55byPPWlucHV0XFxuICAgIFxcbiAgICByZXR1cm4gJChcXFwiLVxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCksIFxcXCLor7fovpPlhaXmlofku7blpLnlkI3ov5vooYzlvZLnurPliIbkuqtcXFxcbuS4jeWhq+WImeS4jeS8muW9kue6s+WIsOS4gOS4quaWh+S7tuWkuVxcXCIpLmlucHV0KCjmlofku7blpLlpZCzmlofku7blpLnlkI0s5YiG5Lqr5pa55byPKSA9PiB7XFxuXFxuICAgIFxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5paH5Lu25aS55pWw5o2uPVtdXFxu5paH5Lu25aS55pWw57uEPVtdXFxu5paH5Lu25pWw57uEPVtdXFxu5paH5Lu25aS55pWw57uE5Y+Y6YePPTBcXG7mlofku7bmlbDnu4Tlj5jph489MFxcblxcbmZvciAodmFyIGkgaW4g5om56YeP6YCJ5oup5pWw5o2u5pWw57uEKSB7XFxu5om56YeP6YCJ5oup5pWw5o2uPeaJuemHj+mAieaLqeaVsOaNruaVsOe7hFtpXS5zcGxpdChcXFwiJiZcXFwiKVxcbklEPeaJuemHj+mAieaLqeaVsOaNrlswXVxcbuagh+mimD3mibnph4/pgInmi6nmlbDmja5bMV1cXG7mlofku7ZDSUQ95om56YeP6YCJ5oup5pWw5o2uWzJdXFxu5paH5Lu25aSn5bCPPeaJuemHj+mAieaLqeaVsOaNrlszXVxcbuaWh+S7tuexu+Weiz3mibnph4/pgInmi6nmlbDmja5bNF1cXG5cXG5pZijmlofku7blpKflsI89PTApe1xcblxcbuaWh+S7tuWkueaVsOe7hFvmlofku7blpLnmlbDnu4Tlj5jph49dPeagh+mimFxcbuaWh+S7tuWkueaVsOe7hOWPmOmHjysrXFxuXFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcbmlmKGlucHV0Lmxlbmd0aD4wKeagh+mimD1pbnB1dCvot6/lvoTpl7TpmpQr5qCH6aKYXFxuXFxu5paH5Lu25aS55pWw5o2uPeaWh+S7tuWkueaVsOaNri5jb25jYXQo6I635Y+W5paH5Lu25aS5Q0lEKElELOagh+mimCxJUEZT5a+G6ZKlLFxcXCLojrflj5ZcXFwiKSlcXG5cXG59ZWxzZXtcXG5cXG7mlofku7bmlbDnu4Rb5paH5Lu25pWw57uE5Y+Y6YePXT1ge1xcXCLmlofku7ZDSURcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCvmoIfpopgrYFxcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcImAr5paH5Lu257G75Z6LK2BcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCJgK+aWh+S7tuWkp+WwjytgXFxcIn1gXFxu5paH5Lu25pWw57uE5Y+Y6YePKytcXG5cXG59XFxuXFxufVxcblxcblxcbuaWh+S7tuWkueaVsOe7hD3mlofku7blpLnmlbDnu4Quam9pbignXFxcIixcXFwiJylcXG7mlofku7bmlbDnu4Q95paH5Lu25pWw57uELmpvaW4oJywnKVxcblxcblxcbmZvciAodmFyIGkgaW4g5paH5Lu25aS55pWw5o2uKSB7XFxuXFxu5paH5Lu25aS55pWw5o2uW2ldPUpTT04uc3RyaW5naWZ5KOaWh+S7tuWkueaVsOaNrltpXSlcXG4gICAgICAgICAgIFxcblxcbn1cXG5cXG7mlofku7blpLnmlbDmja495paH5Lu25aS55pWw5o2uLmpvaW4oJywnKVxcblxcbmlmKGlucHV0Lmxlbmd0aD4wKXtcXG4gICAgXFxuICAgIFxcbiAgICBpZijmlofku7blpLnmlbDmja4ubGVuZ3RoPDEpe1xcbiAgICDmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55YiG5LqrXFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW1xcXCJgK2lucHV0K2BcXFwiXSxcXFwi5paH5Lu2XFxcIjpbXX0se1xcXCLot6/lvoRcXFwiOiBcXFwiMGAr6Lev5b6E6Ze06ZqUK2lucHV0K2BcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjpbYCvmlofku7bmlbDnu4QrYF19XX1gIFxcbiAgICBcXG59ZWxzZXtcXG5cXG5cXG5cXG7mlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW1xcXCJgK2lucHV0K2BcXFwiXSxcXFwi5paH5Lu2XFxcIjpbXX0se1xcXCLot6/lvoRcXFwiOiBcXFwiMGAr6Lev5b6E6Ze06ZqUK2lucHV0K2BcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXFxcImAr5paH5Lu25aS55pWw57uEK2BcXFwiXSxcXFwi5paH5Lu2XFxcIjpbYCvmlofku7bmlbDnu4QrYF19LGAr5paH5Lu25aS55pWw5o2uK2BdfWBcXG5cXG5cXG59XFxuICAgIFxcbiAgICBcXG4gICAgXFxuICAgIFxcbn1lbHNle1xcblxcblxcbiBpZijmlofku7blpLnmlbDmja4ubGVuZ3RoPDEpe1xcbiAgICDmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIixcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjpbYCvmlofku7bmlbDnu4QrYF19XX1gIFxcbiAgICBcXG59ZWxzZXtcXG5cXG5cXG5cXG7mlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW1xcXCJgK+aWh+S7tuWkueaVsOe7hCtgXFxcIl0sXFxcIuaWh+S7tlxcXCI6W2Ar5paH5Lu25pWw57uEK2BdfSxgK+aWh+S7tuWkueaVsOaNritgXX1gXFxuXFxuXFxufVxcblxcbn1cXG5cXG5cXG5oaWRlTG9hZGluZygpXFxuaWYo5YiG5Lqr5pa55byPPT1cXFwi55u05o6l5aSN5Yi2Lea6kOaVsOaNrlxcXCIpe1xcblxcblxcbiByZXR1cm4gY29weSjmlbDmja4pXFxuXFxuXFxuXFxufWVsc2UgaWYo5YiG5Lqr5pa55byPPT1cXFwi572R57uc6ZO+5o6lLeS6keWPo+S7pFxcXCIpe1xcbiAgICBcXG4gICAg5YiG5Lqr6LWE5rqQ5qCH6aKYPeaWh+S7tuWkueaVsOe7hC5sZW5ndGg+MD/mlofku7blpLnmlbDnu4QucmVwbGFjZSgvXFxcIixcXFwiL2csJ+OAgScpLnN1YnN0cigwLCA1NSk6XFxcIuaWh+S7tuWIl+ihqOWIhuS6q1xcXCJcXG5cXG52YXIg5LqR5Y+j5LukID0gJ0lQRlPotYTmupDliIbkuqs6JyvliIbkuqvotYTmupDmoIfpopgrJ1xcXFxu5aSN5Yi25ZCO5omT5byA6L2v5Lu25Y2z5Y+v5a+85YWlXFxcXG4nICsgc2hhcmVQYXN0ZSjmlbDmja4pICsgJ0BpbXBvcnQ9anM6ZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL3BhZ2Uv5LqR5Y+j5LukP3J1bGU9SVBGU+i1hOa6kFxcXCIpKS5ydWxlKSdcXG5cXG5pZigvZXJyb3IvLnRlc3Qo5LqR5Y+j5LukKSkgcmV0dXJuICQoXFxcIuKdjOKdjOS6keWPo+S7pOWPkeeUn+mUmeivr+KdjOKdjFxcXFxu5piv5ZCm5a+85Ye65pWw5o2u5Yiw5pys5Zyw5paH5Lu2XFxcXG7lr7zlh7rkuLrlpJrmlofku7bliIbkuqvpnIDmiZPljIVcXFxcbuehruWumuWvvOWHuuW5tuWkjeWItuaWh+S7tui3r+W+hFxcXCIpLmNvbmZpcm0oKOaVsOaNrik9PntcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuaWh+S7tuWkueWQjT1cXFwiMC5qc29uXFxcIlxcblxcbuaWh+S7tuebruW9lT1cXFwiaGlrZXI6Ly9maWxlcy8vSVBGU+i1hOa6kC/kuLTml7blr7zlh7rliIbkuqsvMC5qc29uXFxcIlxcblxcbmlmKGZpbGVFeGlzdCjmlofku7bnm67lvZUpKXtcXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95aSH5Lu95paH5Lu25aS55aSE55CGKOaWh+S7tuebruW9lSzmlofku7blpLnlkI0sXFxcIuWIoOmZpFxcXCIs6ZyA5aSE55CG5YiX6KGoKVxcblxcblxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxufVxcblxcbmRhdGE9SlNPTi5wYXJzZSjmlbDmja4pLmRhdGFcXG5mb3IgKHZhciBpIGluIGRhdGEpIHtcXG7ot6/lvoQ9ZGF0YVtpXS7ot6/lvoRcXG5cXG7lhpnlhaXmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55YiG5LqrXFxcIixcXFwiZGF0YVxcXCI6YCtKU09OLnN0cmluZ2lmeShkYXRhW2ldKStgfWBcXG5cXG5zYXZlRmlsZSjmlofku7bnm67lvZUucmVwbGFjZSgnMC5qc29uJywnJykr6Lev5b6EK1xcXCIuanNvblxcXCIsIOWGmeWFpeaVsOaNriwgMCkgICAgICAgXFxuXFxufVxcblxcblxcbnNhdmVGaWxlKOaWh+S7tuebruW9lS5yZXBsYWNlKCcwLmpzb24nLCcnKStcXFwiQUHliIbkuqvmlZnnqIsudHh0XFxcIiwg5aSa5paH5Lu25YiG5Lqr5pWZ56iLLCAwKSAgICAgICBcXG5cXG4gICBcXG4gICAgICAgXFxuICAgICAgIHJldHVybiBjb3B5KFxcXCIvc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL0lQRlPotYTmupAv5Li05pe25a+85Ye65YiG5LqrL1xcXCIpICBcXG4gICAgICAgXFxufSzmlbDmja4pXFxuZWxzZSByZXR1cm4gY29weSjkupHlj6Pku6QpXFxuXFxuXFxuXFxuXFxufWVsc2UgaWYo5YiG5Lqr5pa55byPPT1cXFwi5a+85Ye65paH5Lu2Lea6kOaWh+S7tlxcXCIpe1xcblxcbnJldHVybiAkKFxcXCLmmK/lkKblr7zlh7rmlbDmja7liLDmnKzlnLDmlofku7ZcXFxcbuWvvOWHuuS4uuWkmuaWh+S7tuWIhuS6q+mcgOaJk+WMhVxcXFxu56Gu5a6a5a+85Ye65bm25aSN5Yi25paH5Lu26Lev5b6EXFxcIikuY29uZmlybSgo5pWw5o2uKT0+e1xcbiAgICAgICBcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuaWh+S7tuWkueWQjT1cXFwiMC5qc29uXFxcIlxcblxcbuaWh+S7tuebruW9lT1cXFwiaGlrZXI6Ly9maWxlcy8vSVBGU+i1hOa6kC/kuLTml7blr7zlh7rliIbkuqsvMC5qc29uXFxcIlxcbiAgICAgICBcXG5pZihmaWxlRXhpc3Qo5paH5Lu255uu5b2VKSl7XFxu6ZyA5aSE55CG5YiX6KGoPVtdXFxu6ZyA5aSE55CG5YiX6KGoPeWkh+S7veaWh+S7tuWkueWkhOeQhijmlofku7bnm67lvZUs5paH5Lu25aS55ZCNLFxcXCLliKDpmaRcXFwiLOmcgOWkhOeQhuWIl+ihqClcXG5cXG5cXG5mb3IgKHZhciBpIGluIOmcgOWkhOeQhuWIl+ihqCkge1xcbiAgICAgICAgICAgXFxuZGVsZXRlRmlsZSjpnIDlpITnkIbliJfooahbaV0pXFxufVxcbn1cXG5cXG5cXG5cXG5kYXRhPUpTT04ucGFyc2Uo5pWw5o2uKS5kYXRhXFxuXFxuZm9yICh2YXIgaSBpbiBkYXRhKSB7XFxuXFxu6Lev5b6EPWRhdGFbaV0u6Lev5b6EXFxuXFxu5YaZ5YWl5pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWIhuS6q1xcXCIsXFxcImRhdGFcXFwiOmArSlNPTi5zdHJpbmdpZnkoZGF0YVtpXSkrYH1gXFxuXFxuc2F2ZUZpbGUo5paH5Lu255uu5b2VLnJlcGxhY2UoJzAuanNvbicsJycpK+i3r+W+hCtcXFwiLmpzb25cXFwiLCDlhpnlhaXmlbDmja4sIDApICAgICAgIFxcblxcbn1cXG5cXG5cXG5zYXZlRmlsZSjmlofku7bnm67lvZUucmVwbGFjZSgnMC5qc29uJywnJykrXFxcIkFB5YiG5Lqr5pWZ56iLLnR4dFxcXCIsIOWkmuaWh+S7tuWIhuS6q+aVmeeoiywgMCkgICAgICAgXFxuICAgICAgIFxcbiAgICAgICByZXR1cm4gY29weShcXFwiL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy9cXFwiKSAgXFxuICAgIFxcblxcbiAgICAgICBcXG59LOaVsOaNrikgXFxuXFxuXFxufVxcblxcblxcblxcblxcbn0s5paH5Lu25aS5aWQs5paH5Lu25aS55ZCNLOWIhuS6q+aWueW8jylcXG5cXG59LOaWh+S7tuWkuWlkLOaWh+S7tuWkueWQjSlcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxufSzmlofku7blpLlpZCzmlofku7blpLnlkI0pXFxuXFxuXFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLlpIfku73lt7LpgIlcXFwiKXtcXG5cXG5cXG59ZWxzZSBpZihpbnB1dD09XFxcIuaUueWQjeW3sumAiVxcXCIpe1xcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi56e75Yqo5bey6YCJXFxcIil7XFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLliKDpmaTlt7LpgIlcXFwiKXtcXG5cXG5cXG59XFxuXFxucmV0dXJuICd0b2FzdDovL+ayoeWGmeWRoidcXG5cXG5cXG5cXG5cXG59LOaWh+S7tuWkuWlkLOaWh+S7tuWkueWQjSksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG59KVxcblxcblxcblxcblxcblxcblxcblxcblxcbnRyeSB7XFxuXFxu5oC76aG15pWwPU1hdGguY2VpbCjliJfooagubGVuZ3RoL+WIh+WJsuWIl+ihqOWAvClcXG5cXG5cXG5cXG5cXG5pZijmgLvpobXmlbA+MSYm5paH5Lu25aS5aWQmJnBhZ2U8PeaAu+mhteaVsCl7XFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi5LiK5LiA6aG1XFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQpID0+IHtcXG5cXG5pZihnZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsXFxcIjBcXFwiKT4xKVxcbntcXG55c19zYz1nZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKVxcbnlzX3NjLS1cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIseXNfc2MpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiK5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDliY1cXFwifVxcblxcbn0s5paH5Lu25aS5aWQpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIlxcbn0pO1xcblxcblxcbmQucHVzaCh7XFxudGl0bGU6cGFnZStcXFwiL1xcXCIr5oC76aG15pWwLFxcbnVybDokKCcnLCfor7fovpPlhaXpobXnoIEnKS5pbnB1dCgo5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpPT57XFxuXFxuICAgICAgICBpZihpbnB1dD4wJiZpbnB1dDw95oC76aG15pWwKXtcXG4gICAgICAgIHB1dE15VmFyKOaWh+S7tuWkuWlkKydwYWdlJyxpbnB1dCk7XFxuICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey57uP6Lez6L2sXFxcIitpbnB1dFxcbiAgICAgICAgfWVsc2V7cmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJ9XFxuICAgIH0s5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIiwgXFxuZXh0cmE6IHtcXG4gbG9uZ0NsaWNrOiBbe3RpdGxlOiAn5L+u5pS55q+P6aG15pi+56S65Liq5pWwJywganM6ICQudG9TdHJpbmcoKCk9PnsgXFxucmV0dXJuICQoc3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIiksJ+ato+aVtOaVsCcpLmlucHV0KCgpPT57XFxuXFxuaWYoL1xcXFxkKy8udGVzdChpbnB1dCkpe1xcblxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLGlucHV0Lm1hdGNoKC9cXFxcZCsvKVswXSk7XFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gIFxcXCJ0b2FzdDovL+WIh+aNouavj+mhteaYvuekulxcXCIraW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdK1xcXCLkuKpcXFwiXFxufWVsc2UgcmV0dXJuICBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwiXFxuXFxufSlcXG5cXG59KX1dIFxcbn0gXFxufSk7XFxuXFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi5LiL5LiA6aG1XFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpID0+IHtcXG5cXG5pZihwYWdlPOaAu+mhteaVsClcXG57XFxueXNfc2M9Z2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIilcXG55c19zYysrXFxucHV0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLHlzX3NjKVxcbnJlZnJlc2hQYWdlKCk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+S4i+S4gOmhtVxcXCJcXG59ZWxzZXtyZXR1cm4gXFxcInRvYXN0Oi8v5bey57uP5pyA5ZCOXFxcIn1cXG5cXG5cXG59LOaAu+mhteaVsCzmlofku7blpLlpZCxwYWdlKSxcXG5jb2xfdHlwZTogXFxcInRleHRfM1xcXCJcXG59KTtcXG5cXG59XFxuXFxuXFxuXFxuZm9yKGxldCBpID0g5YiH5Ymy5YiX6KGo5YC8KihwYWdlLTEpO2kgPCDliJfooagubGVuZ3RoJiZpPOWIh+WJsuWIl+ihqOWAvCpwYWdlO2krKykge1xcbiAgICAgICAg5qCH6aKYPeWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgaWQ95YiX6KGoW2ldLmlkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoW2ldLmZpbGVTaXplXFxuICAgICAgICBmaWxlVHlwZT3liJfooahbaV0uZmlsZVR5cGVcXG5cXG5cXG5cXG5cXG5cXG5pZijmlofku7blpKflsI89PTApe1xcbuaWh+S7tkNJRD1cXFwi5pegXFxcIlxcblxcbuaJuemHj+mAieaLqeaVsOaNrj1pZCtcXFwiJiZcXFwiK+agh+mimCtcXFwiJiZcXFwiK+aWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWkp+WwjytcXFwiJiZcXFwiK2ZpbGVUeXBlXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxucGljX3VybDpnZXRNeVZhcijmlofku7blpLlpZCvmibnph4/pgInmi6nmlbDmja4s5paH5Lu25aS55Zu+5qCHKSxcXG51cmw6JChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQs5om56YeP6YCJ5oup5pWw5o2uLOagh+mimCkgPT4ge1xcblxcblxcblxcbmlmKGdldE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrikpe1xcblxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hC5zcGxpY2Uo5om56YeP6YCJ5oup5pWw5o2u5pWw57uELmluZGV4T2Yo5om56YeP6YCJ5oup5pWw5o2uKSwxKVxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLEpTT04uc3RyaW5naWZ5KOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkpXFxuXFxuXFxuXFxuY2xlYXJNeVZhcijmlofku7blpLlpZCvmibnph4/pgInmi6nmlbDmja4pXFxuXFxuXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbnJldHVybiAndG9hc3Q6Ly/lj5bmtog6JyvmoIfpophcXG5cXG59ZWxzZXtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hC5wdXNoKOaJuemHj+mAieaLqeaVsOaNrilcXG5cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIixKU09OLnN0cmluZ2lmeSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QpKVxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrizpgInlrprlm77moIcpXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbnJldHVybiAndG9hc3Q6Ly/pgInmi6k6JyvmoIfpophcXG59XFxuXFxufSzmlofku7blpLlpZCzmibnph4/pgInmi6nmlbDmja4s5qCH6aKYKSxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsIGV4dHJhOiB7IFxcblxcbmxvbmdDbGljazogW3t0aXRsZTogJ+WkjeWItuW6j+WPtycsIGpzOiAkLnRvU3RyaW5nKCgpPT57IFxcblxcbnJldHVybiAndG9hc3Q6Ly/ov5jmsqHlgZrlkaInXFxuXFxufSl9XSBcXG5cXG59XFxufSk7XFxufWVsc2V7XFxuXFxu5paH5Lu25qC85byPPeWIl+ihqFtpXS5zdWZmaXhcXG7mlofku7ZDSUQ95YiX6KGoW2ldLmZpbGVDaWRcXG7mlofku7blpKflsI/moLzlvI/ljJY9Zm9ybWF0U2l6ZSjmlofku7blpKflsI8pXFxuXFxuaWYo5paH5Lu2Q0lELmxlbmd0aDwxKeagh+mimD1cXFwi4p2MXFxcIivmoIfpophcXG5cXG5cXG5pZigvKGpwZ3xnaWZ8cG5nfGpwZWd8d2VicCkkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7lm77niYc95Zu+54mH5paH5Lu25Zu+5qCHXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcblxcbn1lbHNlIGlmKC8oZmxhY3xtcDN8d21hKSQvaS50ZXN0KOagh+mimCkpe1xcblxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG5cXG7lm77niYc95YW25LuW5paH5Lu25Zu+5qCHXFxufVxcblxcbuaJuemHj+mAieaLqeaVsOaNrj1pZCtcXFwiJiZcXFwiK+agh+mimCtcXFwiJiZcXFwiK+aWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWkp+WwjytcXFwiJiZcXFwiK2ZpbGVUeXBlXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmlofku7blpKflsI/moLzlvI/ljJYrXFxcIi1cXFwiK+agh+mimCxcXG5waWNfdXJsOmdldE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrizlm77niYcpLFxcbnVybDokKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCjmlofku7blpLlpZCzmibnph4/pgInmi6nmlbDmja4s5qCH6aKYKSA9PiB7XFxuXFxuXFxuXFxuaWYoZ2V0TXlWYXIo5paH5Lu25aS5aWQr5om56YeP6YCJ5oup5pWw5o2uKSl7XFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uELnNwbGljZSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QuaW5kZXhPZijmibnph4/pgInmi6nmlbDmja4pLDEpXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsSlNPTi5zdHJpbmdpZnko5om56YeP6YCJ5oup5pWw5o2u5pWw57uEKSlcXG5cXG5cXG5cXG5jbGVhck15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrilcXG5cXG5cXG5cXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxucmV0dXJuICd0b2FzdDovL+WPlua2iDonK+agh+mimFxcblxcbn1lbHNle1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uELnB1c2go5om56YeP6YCJ5oup5pWw5o2uKVxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLEpTT04uc3RyaW5naWZ5KOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkpXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQr5om56YeP6YCJ5oup5pWw5o2uLOmAieWumuWbvuaghylcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxucmV0dXJuICd0b2FzdDovL+mAieaLqTonK+agh+mimFxcbn1cXG5cXG59LOaWh+S7tuWkuWlkLOaJuemHj+mAieaLqeaVsOaNrizmoIfpopgpLFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIiwgZXh0cmE6IHsgXFxuXFxubG9uZ0NsaWNrOiBbe3RpdGxlOiAn5aSN5Yi25bqP5Y+3JywganM6ICQudG9TdHJpbmcoKCk9PnsgXFxuXFxucmV0dXJuICd0b2FzdDovL+i/mOayoeWBmuWRoidcXG5cXG59KX1dIFxcblxcbn1cXG5cXG5cXG59KTtcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuIFxcblxcbn0vL2ZvcuW+queOr+eahOaLrOWPt1xcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Yqo5ryr6LWE5rqQ4pGgXCIsXCJwYXRoXCI6XCLliqjmvKvotYTmupDikaBcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuLypcXG7nvZHnq5npmLLotbDkuKLlvJXlr7zpobVcXG53d3cuN3NlZnVuLmNvbVxcbuS4u+ermVxcbnd3dy43c2VmdW4udG9wXFxu5aSH55So56uZ77yI5aaC5p6c5Li756uZ5peg5rOV5pKt5pS+77yJXFxud3d3LnlvaWZ1bi5jb21cXG53d3cuZWxmdW4ueHl6XFxu5Zu96ZmF56uZ77yI5riv5r6z5Y+w57mB5L2T5a2X5bmV56uZLOWGheWuueS4sOWvjOS4re+8iVxcbnd3dy5kaW1pZnVuLmNvbVxcbuWKqOa8q+S4i+i9veerme+8iOWGheWuueS4sOWvjOS4re+8iVxcbnd3dy5iYWlwaWFveWEudG9wXFxuKi9cXG7kuIPoibLnlarln5/lkI09XFxcImh0dHBzOi8vd3d3LjdzZWZ1bi50b3BcXFwiXFxucHV0TXlWYXIoXFxcIuS4g+iJsueVquWfn+WQjVxcXCIs5LiD6Imy55Wq5Z+f5ZCNKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIoXFxcInBhZ2VcXFwiLCBcXFwiMFxcXCIpKSArIE1ZX1BBR0UgLSAxO1xcblxcbmlmKHBhZ2U9PTApe1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi54K55Ye75pCc57SiXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLFxcbiAgICB1cmw6ICQoKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOaQnOe0ouWFs+mUruivjScsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mkJzntKI6JytpbnB1dFxcbiAgICAgICAgICAgICAgICB9KVxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLliIfmjaLmmL7npLpcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgIHVybDogJChbXFxcIuWbvea8q+eVqlxcXCIsXFxcIuaXpea8q+eVqlxcXCIsXFxcIue+jua8q+eVqlxcXCIsXFxcIuWbvea8q+eUteW9sVxcXCIsXFxcIuaXpea8q+eUteW9sVxcXCIsXFxcIue+jua8q+eUteW9sVxcXCJdLDIsJ+mcgOimgeaYvuekuuWTquenjei1hOa6kO+8nycpLnNlbGVjdCgoKSA9PiB7XFxuXFxuaWYoaW5wdXQ9PVxcXCLlm73mvKvnlapcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjZcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLml6XmvKvnlapcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjFcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLnvo7mvKvnlapcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjhcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLlm73mvKvnlLXlvbFcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjdcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLml6XmvKvnlLXlvbFcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjJcXFwiKTtcXG5lbHNlIGlmKGlucHV0PT1cXFwi576O5ryr55S15b2xXFxcIilwdXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOWIhuexuycsIFxcXCI5XFxcIik7XFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICBjbGVhclZhcign5Yqo5ryr6LWE5rqQ4pGg5pCc57Si5YWz6ZSu6K+NJyk7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5oiQ5YqfJ1xcbiAgICAgICAgICAgXFxuXFxuXFxufSlcXG59KVxcblxcblxcblxcbn1cXG5cXG5cXG4vL+aKpemUmVxcbnRyeSB7XFxuXFxuaWYoIWdldFZhcign5Yqo5ryr6LWE5rqQ4pGg5pCc57Si5YWz6ZSu6K+NJykpe1xcbmxvZyjkuIPoibLnlarln5/lkI0rXFxcIi92b2RzaG93L1xcXCIrZ2V0VmFyKCfliqjmvKvotYTmupDikaDliIbnsbsnLFxcXCIxXFxcIikrXFxcIi0tLS0tLS0tXFxcIitwYWdlK1xcXCItLS0uaHRtbFxcXCIpXFxuXFxuaHRtbD1yZXF1ZXN0KOS4g+iJsueVquWfn+WQjStcXFwiL3ZvZHNob3cvXFxcIitnZXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOWIhuexuycsXFxcIjZcXFwiKStcXFwiLS0tLS0tLS1cXFwiK3BhZ2UrXFxcIi0tLS5odG1sXFxcIiwge2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpcXFwiaXBob25lXFxcIn19KVxcblxcblxcbi8vdmFyIOWIl+ihqCA9IHBkZmEoaHRtbCwnYm9keSYmLm1vZHVsZS1wYWdlJiYubW9kdWxlLXBvc3Rlci1pdGVtcy1iYXNlJiZhJyk7XFxudmFyIOWIl+ihqCA9IHBkZmEoaHRtbCwnYm9keSYmYTpoYXMoLm1vZHVsZS1pdGVtLWNvdmVyKScpO1xcblxcblxcblxcbiAgICAgICAgXFxuXFxuZm9yICh2YXIgaSBpbiDliJfooagpIHtcXG7moIfpopg9cGRmaCjliJfooahbaV0sJ2ltZyYmYWx0JylcXG7lm77niYc9cGRmaCjliJfooahbaV0sJ2ltZyYmZGF0YS1vcmlnaW5hbCcpXFxu6ZO+5o6lPXBkZmgo5YiX6KGoW2ldLCdhJiZocmVmJylcXG7mj4/ov7A9cGRmaCjliJfooahbaV0sJy5tb2R1bGUtaXRlbS1ub3RlJiZUZXh0JylcXG5cXG7pk77mjqU95LiD6Imy55Wq5Z+f5ZCNK+mTvuaOpVxcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLFxcbnBpY191cmw65Zu+54mHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+WKqOa8q+i1hOa6kOKRoCjkuoznuqcpI2ltbWVyc2l2ZVRoZW1lI1xcXCIsXFxuZGVzYzrmj4/ov7AsXFxuY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG5leHRyYTp76ZO+5o6lOumTvuaOpSzniYflkI065qCH6aKYLGxvbmdDbGljazogW3t0aXRsZTogJ+WtmOiHs+e9keebmCcsIGpzOiAkLnRvU3RyaW5nKCjmoIfpopgs6ZO+5o6lKT0+e1xcblxcbiByZXR1cm4gJCjmoIfpopgsXFxcIuaWsOW7uuaWh+S7tuWkuVxcXCIpLmlucHV0KCjmoIfpopgs6ZO+5o6lKSA9PiB7XFxuXFxuaHRtbD1yZXF1ZXN0KOmTvuaOpSwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiaXBob25lXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJDb29raWVcXFwiOiBcXFwidXNlcl9pZD01MDY7IHVzZXJfbmFtZT0xMjc5OTc0NDA7IGdyb3VwX2lkPTI7IGdyb3VwX25hbWU9JUU5JUJCJTk4JUU4JUFFJUE0JUU0JUJDJTlBJUU1JTkxJTk4OyB1c2VyX2NoZWNrPTkzNTgwMGZhMDIyZTk1OGU2ZTk4ZTZkMTJhZjM0ZDhhOyB1c2VyX3BvcnRyYWl0PSUyRnN0YXRpYyUyRmltYWdlcyUyRnRvdXhpYW5nLnBuZ1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxudmFyIGNvbnRzID0gcGRmYShodG1sLCAnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QtY29udGVudCcpO1xcbnZhciBsaXN0cyA9IFtdO1xcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgbGlzdHMucHVzaChwZGZhKGNvbnRzW2ldLCAnYm9keSYmYScpKVxcbn1cXG7pm4bmlbDliJfooag9bGlzdHNbMF1cXG5kYXRhPVtdXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpm4bmlbDliJfooagpIHtcXG5cXG5cXG5cXG7pm4bmlbDpk77mjqU9Z2V0TXlWYXIoXFxcIuS4g+iJsueVquWfn+WQjVxcXCIpK3BkZmgo6ZuG5pWw5YiX6KGoW2ldLCAnYSYmaHJlZicpXFxu6ZuG5pWw5qCH6aKYPXBkZmgo6ZuG5pWw5YiX6KGoW2ldLCAnc3BhbiYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJylcXG5cXG5zaG93TG9hZGluZygn5q2j5Zyo6ZuG5pWwJyvpm4bmlbDmoIfpopgpXFxuXFxu572R6aG15rqQ56CBPXJlcXVlc3Qo6ZuG5pWw6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG5cXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJpcGhvbmVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIkNvb2tpZVxcXCI6IFxcXCJ1c2VyX2lkPTUwNjsgdXNlcl9uYW1lPTEyNzk5NzQ0MDsgZ3JvdXBfaWQ9MjsgZ3JvdXBfbmFtZT0lRTklQkIlOTglRTglQUUlQTQlRTQlQkMlOUElRTUlOTElOTg7IHVzZXJfY2hlY2s9OTM1ODAwZmEwMjJlOTU4ZTZlOThlNmQxMmFmMzRkOGE7IHVzZXJfcG9ydHJhaXQ9JTJGc3RhdGljJTJGaW1hZ2VzJTJGdG91eGlhbmcucG5nXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgdmFyIOaVsOaNriA9IEpTT04ucGFyc2Uo572R6aG15rqQ56CBLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuXFxuICAgIHZhciB1cmwgPSDmlbDmja4udXJsXFxuICAgIHZhciBlbmNyeXB0PeaVsOaNri5lbmNyeXB0XFxuICAgIHZhciBmcm9tPeaVsOaNri5mcm9tXFxuXFxuICAgIGlmICjmlbDmja4uZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgIH0gZWxzZSBpZiAo5pWw5o2uLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgIH1cXG4gICAgXFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu56ys5LqM5qyh6K+35rGCPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKS5yZXBsYWNlKFxcXCJ3d3cuXFxcIixcXFwicGxheS5cXFwiKStcXFwiL3BsYXkucGhwP3VybD1cXFwiK3VybFxcblxcbnVybD1yZXF1ZXN0KOesrOS6jOasoeivt+axgilcXG5cXG5ldmFsKHBkZmgodXJsLCdib2R5JiZzY3JpcHQmJkh0bWwnKS5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXHNcXFxcU10qP30vKVswXSlcXG51cmw9Y29uZmlnLnVybFxcbmtleT1cXFwiV2VpS2FuSnUyMDIzMDIwNlxcXCJcXG5pdj1cXFwiOWZhNDI4YTVmYzFjNGQwOFxcXCJcXG51cmw96Kej5a+G5qih5p2/KHVybCxrZXksaXYpLm1hdGNoKC9cXFxcd3s1OX0vKVswXVxcblxcbuaWh+S7tkNJRD11cmxcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbmRhdGFbaV09e1xcXCLmlofku7blkI1cXFwiOuagh+mimCtcXFwiLVxcXCIr6ZuG5pWw5qCH6aKYK1xcXCIubXA0XFxcIixcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuWkp+Wwj1xcXCI66I635Y+W5paH5Lu25aSn5bCPKOaWh+S7tkNJRCksXFxcIuaWh+S7tuagvOW8j1xcXCI6M31cXG5cXG5pZihpPT3pm4bmlbDliJfooagubGVuZ3RoLTEpc2hvd0xvYWRpbmcoJ+iOt+WPluaIkOWKn++8jOWNs+WwhuWtmOiHs+e9keebmCcpXFxuXFxuamF2YS5sYW5nLlRocmVhZC5zbGVlcCgxNTAwKVxcblxcbn1cXG5cXG5oaWRlTG9hZGluZygpXFxuXFxu5pWw5o2uPXtcXFwi5paH5Lu25aS55ZCNXFxcIjrmoIfpopgsXFxcImRhdGFcXFwiOmRhdGF9XFxuXFxuXFxuLy/mlbDmja49SlNPTi5wYXJzZSjmlbDmja4pXFxu5bCP6b6Z5LqR55uY5aSH5Lu9PeaVsOaNrlxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG7mlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5pZD1cXFwiXFxcIlxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuLy9sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUs5bCP6b6Z5LqR55uY5aSH5Lu9KVxcblxcblxcblxcblxcblxcblxcblxcblxcbn0s5qCH6aKYLOmTvuaOpSlcXG5cXG59LOagh+mimCzpk77mjqUpfV19XFxufSk7XFxuXFxufVxcblxcbn1lbHNle1xcblxcbmxvZyjkuIPoibLnlarln5/lkI0rXFxcIi92b2RzZWFyY2gvXFxcIitnZXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOaQnOe0ouWFs+mUruivjScpK1xcXCItLS0tLS0tLS0tXFxcIitwYWdlK1xcXCItLS0uaHRtbFxcXCIpXFxuXFxuaHRtbD1yZXF1ZXN0KOS4g+iJsueVquWfn+WQjStcXFwiL3ZvZHNlYXJjaC9cXFwiK2dldFZhcign5Yqo5ryr6LWE5rqQ4pGg5pCc57Si5YWz6ZSu6K+NJykrXFxcIi0tLS0tLS0tLS1cXFwiK3BhZ2UrXFxcIi0tLS5odG1sXFxcIiwge2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpcXFwiaXBob25lXFxcIn19KVxcblxcbmxvZyjkuIPoibLnlarln5/lkI0rXFxcIi92b2RzaG93L1xcXCIrZ2V0VmFyKCfliqjmvKvotYTmupDikaDliIbnsbsnLFxcXCIxXFxcIikrXFxcIi0tLS0tLS0tXFxcIitwYWdlK1xcXCItLS0uaHRtbFxcXCIpXFxuXFxudmFyIOWIl+ihqCA9IHBkZmEoaHRtbCwnYm9keSYmLm1vZHVsZS1pdGVtcyYmLm1vZHVsZS1pdGVtJyk7XFxuXFxuXFxuXFxuICAgICAgICBcXG5cXG5mb3IgKHZhciBpIGluIOWIl+ihqCkge1xcbuagh+mimD1wZGZoKOWIl+ihqFtpXSwnLm1vZHVsZS1jYXJkLWl0ZW0tdGl0bGUmJlRleHQnKVxcbuWbvueJhz1wZGZoKOWIl+ihqFtpXSwnaW1nJiZkYXRhLW9yaWdpbmFsJylcXG7pk77mjqU9cGRmaCjliJfooahbaV0sJ2EmJmhyZWYnKVxcbuaPj+i/sD1wZGZoKOWIl+ihqFtpXSwnLm1vZHVsZS1pdGVtLW5vdGUmJlRleHQnKVxcblxcbumTvuaOpT3kuIPoibLnlarln5/lkI0r6ZO+5o6lXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxucGljX3VybDrlm77niYcsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5Yqo5ryr6LWE5rqQ4pGgKOS6jOe6pykjaW1tZXJzaXZlVGhlbWUjXFxcIixcXG5kZXNjOuaPj+i/sCxcXG5jb2xfdHlwZTogXFxcIm1vdmllXzNcXFwiLFxcbmV4dHJhOnvpk77mjqU66ZO+5o6lLOeJh+WQjTrmoIfpopgsbG9uZ0NsaWNrOiBbe3RpdGxlOiAn5a2Y6Iez572R55uYJywganM6ICQudG9TdHJpbmcoKOagh+mimCzpk77mjqUpPT57XFxuXFxuIHJldHVybiAkKOagh+mimCxcXFwi5paw5bu65paH5Lu25aS5XFxcIikuaW5wdXQoKOagh+mimCzpk77mjqUpID0+IHtcXG5cXG5odG1sPXJlcXVlc3Qo6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG5cXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJpcGhvbmVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIkNvb2tpZVxcXCI6IFxcXCJ1c2VyX2lkPTUwNjsgdXNlcl9uYW1lPTEyNzk5NzQ0MDsgZ3JvdXBfaWQ9MjsgZ3JvdXBfbmFtZT0lRTklQkIlOTglRTglQUUlQTQlRTQlQkMlOUElRTUlOTElOTg7IHVzZXJfY2hlY2s9OTM1ODAwZmEwMjJlOTU4ZTZlOThlNmQxMmFmMzRkOGE7IHVzZXJfcG9ydHJhaXQ9JTJGc3RhdGljJTJGaW1hZ2VzJTJGdG91eGlhbmcucG5nXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG52YXIgY29udHMgPSBwZGZhKGh0bWwsICdib2R5JiYubW9kdWxlLXBsYXktbGlzdC1jb250ZW50Jyk7XFxudmFyIGxpc3RzID0gW107XFxuZm9yICh2YXIgaSBpbiBjb250cykge1xcbiAgICBsaXN0cy5wdXNoKHBkZmEoY29udHNbaV0sICdib2R5JiZhJykpXFxufVxcbumbhuaVsOWIl+ihqD1saXN0c1swXVxcbmRhdGE9W11cXG5cXG5cXG5cXG5mb3IgKHZhciBpIGluIOmbhuaVsOWIl+ihqCkge1xcblxcblxcblxcbumbhuaVsOmTvuaOpT1nZXRNeVZhcihcXFwi5LiD6Imy55Wq5Z+f5ZCNXFxcIikrcGRmaCjpm4bmlbDliJfooahbaV0sICdhJiZocmVmJylcXG7pm4bmlbDmoIfpopg9cGRmaCjpm4bmlbDliJfooahbaV0sICdzcGFuJiZUZXh0JykucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKVxcblxcbnNob3dMb2FkaW5nKCfmraPlnKjpm4bmlbAnK+mbhuaVsOagh+mimClcXG5cXG7nvZHpobXmupDnoIE9cmVxdWVzdCjpm4bmlbDpk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcblxcXCJVc2VyLUFnZW50XFxcIjogXFxcImlwaG9uZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiQ29va2llXFxcIjogXFxcInVzZXJfaWQ9NTA2OyB1c2VyX25hbWU9MTI3OTk3NDQwOyBncm91cF9pZD0yOyBncm91cF9uYW1lPSVFOSVCQiU5OCVFOCVBRSVBNCVFNCVCQyU5QSVFNSU5MSU5ODsgdXNlcl9jaGVjaz05MzU4MDBmYTAyMmU5NThlNmU5OGU2ZDEyYWYzNGQ4YTsgdXNlcl9wb3J0cmFpdD0lMkZzdGF0aWMlMkZpbWFnZXMlMkZ0b3V4aWFuZy5wbmdcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcbiAgICB2YXIg5pWw5o2uID0gSlNPTi5wYXJzZSjnvZHpobXmupDnoIEubWF0Y2goL3IgcGxheWVyXy4qPz0oLio/KTwvKVsxXSlcXG5cXG4gICAgdmFyIHVybCA9IOaVsOaNri51cmxcXG4gICAgdmFyIGVuY3J5cHQ95pWw5o2uLmVuY3J5cHRcXG4gICAgdmFyIGZyb2095pWw5o2uLmZyb21cXG5cXG4gICAgaWYgKOaVsOaNri5lbmNyeXB0ID09ICcxJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXG4gICAgfSBlbHNlIGlmICjmlbDmja4uZW5jcnlwdCA9PSAnMicpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSh1cmwpKTtcXG4gICAgfVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu56ys5LqM5qyh6K+35rGCPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKS5yZXBsYWNlKFxcXCJ3d3cuXFxcIixcXFwicGxheS5cXFwiKStcXFwiL3BsYXkucGhwP3VybD1cXFwiK3VybFxcblxcbnVybD1yZXF1ZXN0KOesrOS6jOasoeivt+axgilcXG5cXG5ldmFsKHBkZmgodXJsLCdib2R5JiZzY3JpcHQmJkh0bWwnKS5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXHNcXFxcU10qP30vKVswXSlcXG51cmw9Y29uZmlnLnVybFxcbmtleT1cXFwiV2VpS2FuSnUyMDIzMDIwNlxcXCJcXG5pdj1cXFwiOWZhNDI4YTVmYzFjNGQwOFxcXCJcXG51cmw96Kej5a+G5qih5p2/KHVybCxrZXksaXYpLm1hdGNoKC9cXFxcd3s1OX0vKVswXVxcblxcblxcbuaWh+S7tkNJRD11cmxcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbmRhdGFbaV09e1xcXCLmlofku7blkI1cXFwiOuagh+mimCtcXFwiLVxcXCIr6ZuG5pWw5qCH6aKYK1xcXCIubXA0XFxcIixcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuWkp+Wwj1xcXCI66I635Y+W5paH5Lu25aSn5bCPKOaWh+S7tkNJRCksXFxcIuaWh+S7tuagvOW8j1xcXCI6M31cXG5cXG5pZihpPT3pm4bmlbDliJfooagubGVuZ3RoLTEpc2hvd0xvYWRpbmcoJ+iOt+WPluaIkOWKn++8jOWNs+WwhuWtmOiHs+e9keebmCcpXFxuXFxuamF2YS5sYW5nLlRocmVhZC5zbGVlcCgxNTAwKVxcblxcbn1cXG5cXG5oaWRlTG9hZGluZygpXFxuXFxu5pWw5o2uPXtcXFwi5paH5Lu25aS55ZCNXFxcIjrmoIfpopgsXFxcImRhdGFcXFwiOmRhdGF9XFxuXFxuXFxuLy/mlbDmja49SlNPTi5wYXJzZSjmlbDmja4pXFxu5bCP6b6Z5LqR55uY5aSH5Lu9PeaVsOaNrlxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG7mlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5pZD1cXFwiXFxcIlxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuLy9sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUs5bCP6b6Z5LqR55uY5aSH5Lu9KVxcblxcblxcblxcblxcblxcblxcblxcblxcbn0s5qCH6aKYLOmTvuaOpSlcXG5cXG59LOagh+mimCzpk77mjqUpfV19XFxufSk7XFxuXFxufVxcblxcblxcblxcbn1cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxuZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi572R56uZ5Y+v6IO95oyC5LqGIOeCueaIkeiuv+mXrue9kemhtVxcXCIsXFxuICAgICAgICB1cmw6IFxcXCJodHRwczovL3d3dy43c2VmdW4udG9wXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJcXG4gICAgfSk7XFxuXFxuXFxufVxcblxcblxcblxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWKqOa8q+i1hOa6kOKRoCjkuoznuqcpXCIsXCJwYXRoXCI6XCLliqjmvKvotYTmupDikaAo5LqM57qnKVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG7pk77mjqU9TVlfUEFSQU1TLumTvuaOpVxcbueJh+WQjT1NWV9QQVJBTVMu54mH5ZCNXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5sb2co6ZO+5o6lKVxcblxcbmh0bWw9cmVxdWVzdCjpk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcblxcXCJVc2VyLUFnZW50XFxcIjogXFxcImlwaG9uZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiQ29va2llXFxcIjogXFxcInVzZXJfaWQ9NTA2OyB1c2VyX25hbWU9MTI3OTk3NDQwOyBncm91cF9pZD0yOyBncm91cF9uYW1lPSVFOSVCQiU5OCVFOCVBRSVBNCVFNCVCQyU5QSVFNSU5MSU5ODsgdXNlcl9jaGVjaz05MzU4MDBmYTAyMmU5NThlNmU5OGU2ZDEyYWYzNGQ4YTsgdXNlcl9wb3J0cmFpdD0lMkZzdGF0aWMlMkZpbWFnZXMlMkZ0b3V4aWFuZy5wbmdcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcblxcblxcblxcblxcbnZhciDliIbnsbsgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5tb2R1bGUtaW5mby10YWctbGluaywyJiZUZXh0JykucmVwbGFjZSgn57G75Z6L77yaJywnJyk7XFxuXFxudmFyIOS4u+a8lCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1vZHVsZS1pbmZvLXRhZy1saW5rLDEmJlRleHQnKS5zdWJzdHJpbmcoMCwxNSk7XFxuXFxudmFyIOWvvOa8lCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1vZHVsZS1pbmZvLXRhZy1saW5rLDAmJlRleHQnKTtcXG5cXG52YXIg54q25oCBID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubW9kdWxlLWluZm8taXRlbSw0JiZUZXh0Jyk7XFxuXFxudmFyIOWbvueJhyA9IHBhcnNlRG9tKGh0bWwsICcubWFpbiYmaW1nJiZkYXRhLW9yaWdpbmFsJyk7XFxuXFxudmFyIOeugOS7iyA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1vZHVsZS1pbmZvLWludHJvZHVjdGlvbi1jb250ZW50JiZUZXh0JykucmVwbGFjZSgn566A5LuL77yaJywnJyk7XFxuXFxuXFxuXFxudmFyIENvbG9yID0gXFxcIiNmMTNiNjZhXFxcIjtcXG52YXIgQ29sb3IxID0gXFxcIiMwOThBQzFcXFwiO1xcbmZ1bmN0aW9uIGdldEhlYWQodGl0bGUpIHtcXG4gICAgcmV0dXJuICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXCInICsgQ29sb3IgKyAnXFxcIj4nICsgdGl0bGUgKyAnPC9mcm9udD48L3N0cm9uZz4nO1xcbn1cXG5sZXQgbGluZV9tb2RlbCA9IDg7XFxubGV0IGxpbmVfdHlwZV9tb2RlbCA9ICdibGFua19ibG9jayc7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IOWIhuexuyArICdcXFxcbicgKyDkuLvmvJQsXFxuICAgIGRlc2M6IOWvvOa8lCArICdcXFxcbicgKyDnirbmgIEsXFxuICAgIHBpY191cmw6IOWbvueJhyxcXG4gICAgdXJsOuWbvueJhyxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxleHRyYToge2dyYWRpZW50OiB0cnVlfVxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNtYWxsPjxmb250IGNvbG9yPVxcXCIjZmYxNDhlOGVcXFwiPueugOS7i++8micgKyDnroDku4suc3Vic3RyKDAsIDU1KSArICcuLi48L2ZvbnQ+PHNtYWxsPjxmb250IGNvbG9yPVxcXCJyZWRcXFwiPuivpuaDhTwvZm9udD48L3NtYWxsPjwvc21hbGw+JyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMnICsgJ1xcXFxuJyArIOeugOS7iyArIGBAcnVsZT1qczp2YXIgcmVzID0ge307IHZhciBkID0gW107ZC5wdXNoKHt0aXRsZTon5b2x54mH566A5LuL77yaJysgTVlfVVJMLnNwbGl0KCdoaWtlcjovL2VtcHR5IycpWzFdLGNvbF90eXBlOiAnbG9uZ190ZXh0J30pO3Jlcy5kYXRhID0gZDsgc2V0SG9tZVJlc3VsdChyZXMpO2AsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcbn0pO1xcblxcbi8v57q/6Lev5YiX6KGo55qE5a6a5L2NXFxudmFyIGFydHMgPSBwZGZhKGh0bWwsICcjeS1wbGF5TGlzdCYmLm1vZHVsZS10YWItaXRlbScpO1xcblxcbi8v57q/6Lev5YiX6KGo5ZCN55qE5a6a5L2NXFxudmFyIHRhYnMgPSBbXTtcXG5mb3IgKHZhciBpIGluIGFydHMpIHtcXG50YWJzLnB1c2gocGRmaChhcnRzW2ldLCdzcGFuJiZUZXh0JykpXFxufVxcblxcbi8v5pKt5pS+5YiX6KGo55qE5YiX6KGo55qE5a6a5L2NXFxudmFyIGNvbnRzID0gcGRmYShodG1sLCAnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QtY29udGVudCcpO1xcbnZhciBsaXN0cyA9IFtdO1xcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgbGlzdHMucHVzaChwZGZhKGNvbnRzW2ldLCAnYm9keSYmYScpKVxcbn1cXG5cXG5cXG5sb2coXFxcIuaIkOWKn+WktFxcXCIpXFxuXFxuZnVuY3Rpb24gc2V0VGFicyh0YWJzLCB2YXJpKSB7XFxuICAgIGZvciAodmFyIGkgaW4gdGFicykge1xcbiAgICAgICAgdmFyIHVybCA9IFxcXCIjbm9Mb2FkaW5nI0BsYXp5UnVsZT0uanM6cHV0VmFyKCdcXFwiICsgdmFyaSArIFxcXCInLCAnXFxcIiArIGkgKyBcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSc7JyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcXFwiO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKHZhcmksICcwJykgPT0gaSA/IGdldEhlYWQodGFic1tpXSkgOiB0YWJzW2ldLFxcbiAgICAgICAgICAgIHVybDogdXJsLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgIH1cXG5cXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSlcXG59XFxuZnVuY3Rpb24gc2V0TGlzdHMobGlzdHMsIGluZGV4KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgIH0pXFxufVxcblxcblxcblxcbmZ1bmN0aW9uIHNldFRhYnModGFicywgdmFyaSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykgPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjRkYwMDAwXFxcIj7pgIbluo88L3NwYW4+PC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjMWFhZDE5XFxcIj7mraPluo88L3NwYW4+PC9iPicsXFxuICAgICAgICB1cmw6IGBAbGF6eVJ1bGU9LmpzOmxldCBjb25mID0gZ2V0VmFyKCdzaHNvcnQnKTtpZihjb25mPT0nMScpe3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMCd9KTt9ZWxzZXtwdXRWYXIoe2tleTonc2hzb3J0JywgdmFsdWU6JzEnfSl9O3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5o6S5bqP5oiQ5YqfJ2AsXFxuICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICB9KVxcblxcblxcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgIHZhciB1cmwgPSBcXFwiI25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignXFxcIiArIHZhcmkgKyBcXFwiJywgJ1xcXCIgKyBpICsgXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnOycjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIjtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGdldFZhcih2YXJpLCAnMCcpID09IGkgPyAn4oCc4oCcJyArIHRhYnNbaV0gKyAn4oCd4oCdJyA6IHRhYnNbaV0sXFxuICAgICAgICAgICAgdXJsOiB1cmwsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgIH1cXG59XFxuXFxuXFxuZnVuY3Rpb24gc2V0TGlzdHMobGlzdHMsIGluZGV4KSB7XFxudmFyIGxpc3QgPSBsaXN0c1tpbmRleF07XFxuXFxuICAgIGlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gbGlzdC5sZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xcblxcblxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgobGlzdFtqXSwgJ2EmJlRleHQnKS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOnBkKGxpc3Rbal0sICdhJiZocmVmJykrbGF6eSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDQgPyAndGV4dF81JyA6ICd0ZXh0XzInXFxuICAgICAgICAgICAgICAgIH0pO1xcblxcblxcblxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcblxcbmlmKGxpc3Rbal0uaW5jbHVkZXMoXFxcImthbmp1amlhblxcXCIpKXtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwgJ2EmJlRleHQnKS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOlxcXCIjaXNWaWRlbz10cnVlI1xcXCIrdW5lc2NhcGUocGFyc2VEb20obGlzdFtqXSwgJ2EmJnBsYXlfdXJsJykuc3BsaXQoXFxcInNpYW11cmw9XFxcIilbMV0gKSxleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrUnVsZXM6IFsnLm00YScsICcubXAzJywgJy5tcDQnLCAnLmZsdicsICcuYXZpJywgJy4zZ3AnLCAnLm1wZWcnLCAnLndtdicsICcubW92JywgJy5ybXZiJywgJy5naWYnLCAnLmpwZycsICcuanBlZycsICcucG5nJywgJy5pY28nLCAnLnN2ZycsJ2NuenonXVxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDQgPyAndGV4dF81JyA6ICd0ZXh0XzInXFxuICAgICAgICAgICAgICAgIH0pO1xcblxcbn1lbHNle1xcblxcbuinhumikemAiembhj1wZGZoKGxpc3Rbal0sICdzcGFuJiZUZXh0JykucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKVxcbuinhumikemTvuaOpT1nZXRNeVZhcihcXFwi5LiD6Imy55Wq5Z+f5ZCNXFxcIikrcGRmaChsaXN0W2pdLCAnYSYmaHJlZicpXFxu6ZuG5pWw5q2j5YiZPS9bc11cXFxcZFxcXFxkW2VdXFxcXGRcXFxcZHzpmL/ph4wuXFxcXFd85aS45YWLLlxcXFxXfOi/hembty5cXFxcV3wxMTUuXFxcXFd85b6u5LqRLlxcXFxXfOWkqee/vC5cXFxcV3zpmL/ph4x85aS45YWLfOi/hembt3wxMTV85b6u5LqRfOWkqee/vC9naVxcblxcbiAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOuinhumikemAiembhixcXG4gICAgICAgICAgICAgICAgICAgIHVybDrop4bpopHpk77mjqUr5LiD6Imy55Wq6Kej5p6QLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gNCA/ICd0ZXh0XzUnIDogJ3RleHRfMicsXFxuICAgICAgICAgICAgICAgICAgIGV4dHJhOntsb25nQ2xpY2s6IFt7dGl0bGU6ICflrZjoh7PnvZHnm5gnLCBqczogJC50b1N0cmluZygo54mH5ZCNLOinhumikemAiembhizop4bpopHpk77mjqUpPT57XFxuXFxuIHJldHVybiAkKOeJh+WQjStcXFwiLVxcXCIr6KeG6aKR6YCJ6ZuGK1xcXCIubXA0XFxcIixcXFwi5paH5Lu25ZCNXFxcIikuaW5wdXQoKOeJh+WQjSzop4bpopHpgInpm4Ys6KeG6aKR6ZO+5o6lKSA9PiB7XFxuXFxu5paH5Lu25ZCNPWlucHV0XFxubG9nKGlucHV0KVxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu572R6aG15rqQ56CBPXJlcXVlc3Qo6KeG6aKR6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG5cXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJpcGhvbmVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIkNvb2tpZVxcXCI6IFxcXCJ1c2VyX2lkPTUwNjsgdXNlcl9uYW1lPTEyNzk5NzQ0MDsgZ3JvdXBfaWQ9MjsgZ3JvdXBfbmFtZT0lRTklQkIlOTglRTglQUUlQTQlRTQlQkMlOUElRTUlOTElOTg7IHVzZXJfY2hlY2s9OTM1ODAwZmEwMjJlOTU4ZTZlOThlNmQxMmFmMzRkOGE7IHVzZXJfcG9ydHJhaXQ9JTJGc3RhdGljJTJGaW1hZ2VzJTJGdG91eGlhbmcucG5nXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgdmFyIOaVsOaNriA9IEpTT04ucGFyc2Uo572R6aG15rqQ56CBLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuXFxuICAgIHZhciB1cmwgPSDmlbDmja4udXJsXFxuICAgIHZhciBlbmNyeXB0PeaVsOaNri5lbmNyeXB0XFxuICAgIHZhciBmcm9tPeaVsOaNri5mcm9tXFxuXFxuICAgIGlmICjmlbDmja4uZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgIH0gZWxzZSBpZiAo5pWw5o2uLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgIH1cXG5pZiAoL20zdTh8bXA0Ly50ZXN0KHVybCkpICAgcmV0dXJuIHVybFxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu56ys5LqM5qyh6K+35rGCPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKS5yZXBsYWNlKFxcXCJ3d3cuXFxcIixcXFwicGxheS5cXFwiKStcXFwiL3BsYXkucGhwP3VybD1cXFwiK3VybFxcblxcbnVybD1yZXF1ZXN0KOesrOS6jOasoeivt+axgilcXG5cXG5ldmFsKHBkZmgodXJsLCdib2R5JiZzY3JpcHQmJkh0bWwnKS5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXHNcXFxcU10qP30vKVswXSlcXG51cmw9Y29uZmlnLnVybFxcbmtleT1cXFwiV2VpS2FuSnUyMDIzMDIwNlxcXCJcXG5pdj1cXFwiOWZhNDI4YTVmYzFjNGQwOFxcXCJcXG51cmw96Kej5a+G5qih5p2/KHVybCxrZXksaXYpLm1hdGNoKC9cXFxcd3s1OX0vKVswXVxcblxcbuaWh+S7tkNJRD11cmxcXG5cXG5cXG7mlofku7blpKflsI896I635Y+W5paH5Lu25aSn5bCPKOaWh+S7tkNJRClcXG7mlofku7bmoLzlvI89XFxcIjNcXFwiXFxuXFxuXFxubG9nKOaWh+S7tuWQjSlcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pID0+IHtcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aSvmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG5cXG5cXG5pZD1ge1xcXCLmlofku7ZDSURcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCvmlofku7blkI0rYFxcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcImAr5paH5Lu25qC85byPK2BcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCJgK+aWh+S7tuWkp+WwjytgXFxcIn1gXFxuXFxubG9nKGlkKVxcblxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxubG9nKOmHjeWkjeivt+axguaWh+S7tuWkuSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG59LOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxufSzniYflkI0s6KeG6aKR6YCJ6ZuGLOinhumikemTvuaOpSlcXG5cXG59LOeJh+WQjSzop4bpopHpgInpm4Ys6KeG6aKR6ZO+5o6lKX1dfVxcbiAgICAgICAgICAgICAgICB9KTtcXG59XFxuXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5rKh5pyJ6YCJ6ZuG5ZOf77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG5cXG4gICAgfVxcbn1cXG5cXG5cXG5zZXRUYWJzKHRhYnMsIE1ZX1VSTCk7XFxuc2V0TGlzdHMobGlzdHMsIGdldFZhcihNWV9VUkwsICcwJykpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnPGJyPicsXFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcbn0pO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuW+queOr+Wkh+S7vVwiLFwicGF0aFwiOlwi5b6q546v5aSH5Lu9XCIsXCJydWxlXCI6XCIvL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v5aSH5Lu9JykpLnJ1bGUpXFxuXFxuZm9yICh2YXIgaSBpbiBzdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpKSB7XFxuXFxuXFxuXFxuXFxuXFxu5paH5Lu25aS55ZCNPXN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0uZmlsZU5hbWVcXG7mlofku7blpLlpZD1zdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpW2ldLmlkXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOWkh+S7vTonK+aWh+S7tui3r+W+hClcXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5cXG5cXG7or7fmsYLlj5jph49hID0gXFxcIi9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG4gICAgICAgICAgICAgICAg6K+35rGC5Y+Y6YePYiA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZpbGVzXFxcIlxcbiAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkuWlkK2BcXFwifWBcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmEgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49hXFxuICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYSwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmIgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49iXFxuICAgICAgICAgICAgICAgIOesrOS6jOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWkueWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahhID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7bliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYiA9IEpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG5cXG7mlofku7bmlbDnu4Q9W11cXG5cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahiKSB7XFxuICAgICAgICDmlofku7blkI095YiX6KGoYltpXS5maWxlTmFtZVxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqGJbaV0uZmlsZVR5cGVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahiW2ldLmZpbGVTaXplXFxuICAgICAgICBqc29u5pWw5o2uPXtcXFwi5paH5Lu25ZCNXFxcIjrmlofku7blkI0sXFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7bmoLzlvI9cXFwiOuaWh+S7tuagvOW8jyxcXFwi5paH5Lu25aSn5bCPXFxcIjrmlofku7blpKflsI99XFxuICAgICAgICDmlofku7bmlbDnu4RbaV09anNvbuaVsOaNrlxcbiAgICAgICAgXFxuICAgIH1cXG4gICAg5paH5Lu25aS55pWw57uEPVtdXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYSkge1xcbiAgICAgICAg5paH5Lu25aS55pWw57uEW2ldPeWIl+ihqGFbaV0uZmlsZU5hbWVcXG4gICAgfVxcbiAgICBcXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIs5YiX6KGoYSlcXG5cXG7mlofku7blpLnliJfooag95YiX6KGoYVxcblxcbuaWh+S7tuWIl+ihqD3liJfooahiXFxuXFxuXFxuXFxuZGF0YeaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLot6/lvoRcXFwiOlxcXCJgK+aWh+S7tui3r+W+hCtgXFxcIixcXFwi5paH5Lu25aS5XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuWkueaVsOe7hCkrYCxcXFwi5paH5Lu2XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuaVsOe7hCkrYH1gXFxuXFxu5aSH5Lu95pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWkh+S7vVxcXCIsXFxcImRhdGFcXFwiOiBgK2RhdGHmlbDmja4rYH1gXFxuXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgW107XFxuXFxuXFxuaWYoL+WkjeWIti8udGVzdCjmk43kvZwpKXtcXG5cXG7mlbTkvZPmlbDmja4uZGF0YS5wdXNoKEpTT04ucGFyc2UoZGF0YeaVsOaNrikpXFxuXFxuXFxufVxcbiAgXFxuXFxuaWYoL+Wkh+S7vS8udGVzdCjmk43kvZwpKXtcXG5cXG5cXG5pZijlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70ubGVuZ3RoPDEpe1xcblxcblxcblxcbnNhdmVGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywg5aSH5Lu95pWw5o2uLCAwKTtcXG5cXG5cXG59ZWxzZXtcXG4gICAgXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vT1KU09OLnBhcnNlKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSlcXG4gICAgXFxuICAgIFxcbiAgICDmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxuICAgIOaWh+S7tuWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7ZcXG4gICAg5paH5Lu25aS55YiX6KGoPeaWh+S7tuWkueWIl+ihqC5jb25jYXQo5paH5Lu25aS55pWw57uEKVxcbiAgICDmlofku7bliJfooag95paH5Lu25YiX6KGoLmNvbmNhdCjmlofku7bmlbDnu4QpXFxuXFxuICAgIFxcbiAgICDmlofku7blpLnliJfooag95pWw57uE5Y676YeNKOaWh+S7tuWkueWIl+ihqClcXG4gICAg5paH5Lu25YiX6KGoPeaVsOe7hOWOu+mHjSjmlofku7bliJfooagpXFxuICAgIFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLk95paH5Lu25aS55YiX6KGoXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tj3mlofku7bliJfooahcXG5cXG5cXG5zYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vJyvmlofku7bot6/lvoQrJy5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuICAgIFxcbn1cXG5cXG59XFxuXFxuXFxuaWYo5YiX6KGoYS5sZW5ndGg8MSl7XFxuXFxuY2xlYXJWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKVxcbui3r+W+hOWIh+WJsj3mlofku7bot6/lvoQuc3BsaXQo6Lev5b6E6Ze06ZqUKVxcblxcblxcbui3r+W+hOWIh+WJsi5zcGxpY2Uo6Lev5b6E5YiH5YmyLmxlbmd0aC0xLDEpXFxuXFxu5paH5Lu26Lev5b6EPei3r+W+hOWIh+WJsi5qb2luKOi3r+W+hOmXtOmalClcXG5cXG5cXG5cXG5cXG5jb250aW51ZTtcXG59ZWxzZXtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+W+queOr+Wkh+S7vScpKS5ydWxlKVxcblxcbui3r+W+hOWIh+WJsj3mlofku7bot6/lvoQuc3BsaXQo6Lev5b6E6Ze06ZqUKVxcbui3r+W+hOWIh+WJsi5zcGxpY2Uo6Lev5b6E5YiH5YmyLmxlbmd0aC0xLDEpXFxuXFxu5paH5Lu26Lev5b6EPei3r+W+hOWIh+WJsi5qb2luKOi3r+W+hOmXtOmalClcXG5cXG5cXG59XFxufVxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EXCIsXCJwYXRoXCI6XCLpgInmi6nlpIfku73mlofku7bot6/lvoRcIixcInJ1bGVcIjpcIlxcblxcblxcbnZhciDph43lpI3or7fmsYLmlofku7blpLkgPSQo6YCJ5oup5paH5Lu25aS55YiX6KGoLCAyLCflsIbmlofku7bmt7vliqDoh7Plk6rkuKrmlofku7blpLnvvJ8nKS5zZWxlY3QoKOWkh+S7veaVsOaNrizmlofku7bot6/lvoQs5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOWtmOWTqumHjCkgPT4ge1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQraW5wdXRcXG5cXG5pZihpbnB1dD09XFxcIuWKoOWFpeatpOWkhFxcXCIpIHtcXG5cXG5pZihpbnB1dD09XFxcIjBcXFwiKSAg5paH5Lu26Lev5b6EPVxcXCIwXFxcIiBcXG5lbHNlIOaWh+S7tui3r+W+hD3mlofku7bot6/lvoQucmVwbGFjZSjot6/lvoTpl7TpmpQrXFxcIuWKoOWFpeatpOWkhFxcXCIgLFxcXCJcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxucmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5paH5Lu26Lev5b6ELOWtmOWTqumHjCxcXFwi5aSH5Lu9XFxcIilcXG5cXG59ZWxzZXtcXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcblxcblxcbumAieaLqeaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG5cXG4gICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQnKSkucnVsZSlcXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxufSzlpIfku73mlbDmja4s5paH5Lu26Lev5b6ELOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjlk6rph4wpXFxuXFxuXFxuXFxuXFxuXFxuXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpgInmi6nlpIfku73mlofku7bot6/lvoQyXCIsXCJwYXRoXCI6XCLpgInmi6nlpIfku73mlofku7bot6/lvoQyXCIsXCJydWxlXCI6XCJ2YXIg6YeN5aSN6K+35rGC5paH5Lu25aS5MiA9JCjpgInmi6nmlofku7blpLnliJfooagsIDIsJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quaWh+S7tuWkue+8nycpLnNlbGVjdCgo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpLOWTqumHjOadpSzlrZjlk6rph4ws5paH5Lu26Lev5b6EKSA9PiB7XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5cXG5cXG5cXG5pZihpbnB1dD09XFxcIuWKoOWFpeatpOWkhFxcXCIpIHtcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbuS4iue6p+i3r+W+hD3lpIfku73nm67lvZUuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMSlbMF1cXG7kuIrnuqfot6/lvoQ95LiK57qn6Lev5b6ELnJlcGxhY2UoXFxcIi5qc29uXFxcIixcXFwiXFxcIilcXG5cXG7ljp/kuIrnuqfot6/lvoQ95aSH5Lu955uu5b2VLnNwbGl0KFxcXCIvXFxcIikuc2xpY2UoLTEpWzBdLnJlcGxhY2UoXFxcIi5qc29uXFxcIixcXFwiXFxcIilcXG7ljp/ot6/lvoQ95LiK57qn6Lev5b6EK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5cXG7mlrDkuIrnuqfot6/lvoQ95paH5Lu26Lev5b6EXFxu5paw6Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuXFxuXFxuaWYo5a2Y5ZOq6YeMPT3lk6rph4zmnaUmJuaWsOi3r+W+hC5pbmNsdWRlcyjljp/ot6/lvoQpKSByZXR1cm4gJ3RvYXN0Oi8v6K+35qOA5p+l56e75Yqo6Lev5b6EJ1xcblxcbnNob3dMb2FkaW5nKCfmk43kvZzkuK0nKVxcbi8v5Yig6Zmk5paH5Lu25aS55ZCNXFxu5LiK57qn6Lev5b6E5paH5Lu2ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlk6rph4zmnaUr5Y6f5LiK57qn6Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcbuS4iue6p+aWh+S7tuWkueWIl+ihqD3kuIrnuqfot6/lvoTmlofku7YuZGF0YS7mlofku7blpLlcXG7liKDpmaTkvY3nva495LiK57qn5paH5Lu25aS55YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0g5paH5Lu25aS55ZCNKTtcXG7kuIrnuqfot6/lvoTmlofku7YuZGF0YS7mlofku7blpLkuc3BsaWNlKOWIoOmZpOS9jee9riwxKVxcbnNhdmVGaWxlKOWTqumHjOadpSvljp/kuIrnuqfot6/lvoQrJy5qc29uJyxKU09OLnN0cmluZ2lmeSjkuIrnuqfot6/lvoTmlofku7YpLCAwKTtcXG5cXG5cXG4vL+aWsOebruW9leWinuWKoOaWh+S7tuWkueWQjVxcbuWkh+S7veWinuWKoOaWh+S7tuWkuSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+aWsOS4iue6p+i3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG7lpIfku73lop7liqDmlofku7blpLkuZGF0YS7mlofku7blpLkucHVzaCjmlofku7blpLnlkI0pXFxu5aSH5Lu95aKe5Yqg5paH5Lu25aS5LmRhdGEu5paH5Lu25aS5PeaVsOe7hOWOu+mHjSjlpIfku73lop7liqDmlofku7blpLkuZGF0YS7mlofku7blpLkpXFxuc2F2ZUZpbGUo5a2Y5ZOq6YeMK+aWsOS4iue6p+i3r+W+hCsnLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlpIfku73lop7liqDmlofku7blpLkpLCAwKTtcXG5cXG5cXG5cXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95pWw57uE5Y676YeNKOWkh+S7veaWh+S7tuWkueWkhOeQhijlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLFxcXCLnp7vliqhcXFwiLOmcgOWkhOeQhuWIl+ihqCkpXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG5cXG7or7vlj5blpITnkIbmlbDmja4gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSwgMCkgfHwgJ1tdJyk7XFxuXFxu6K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu6Lev5b6EPeivu+WPluWkhOeQhuaVsOaNri5kYXRhLui3r+W+hC5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpXFxuXFxuaWYoZmlsZUV4aXN0KOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWTqumHjOadpSvljp/ot6/lvoQs5a2Y5ZOq6YeMK+aWsOi3r+W+hCkpKXtcXG5cXG7lt7LmnInmlbDmja4gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWTqumHjOadpSvljp/ot6/lvoQs5a2Y5ZOq6YeMK+aWsOi3r+W+hCksIDApIHx8ICdbXScpO1xcblxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7tuWkuS5wdXNoKOivu+WPluWkhOeQhuaVsOaNri5kYXRhLuaWh+S7tuWkuSlcXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7YucHVzaCjor7vlj5blpITnkIbmlbDmja4uZGF0YS7mlofku7YpXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu25aS5PeaVsOe7hOWOu+mHjSjlt7LmnInmlbDmja4uZGF0YS7mlofku7blpLkpXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu2PeaVsOe7hOWOu+mHjSjlt7LmnInmlbDmja4uZGF0YS7mlofku7YpXFxuXFxuc2F2ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5ZOq6YeM5p2lK+WOn+i3r+W+hCzlrZjlk6rph4wr5paw6Lev5b6EKSwgSlNPTi5zdHJpbmdpZnko5bey5pyJ5pWw5o2uKSwgMCk7XFxuXFxufWVsc2V7XFxuXFxuc2F2ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5ZOq6YeM5p2lK+WOn+i3r+W+hCzlrZjlk6rph4wr5paw6Lev5b6EKSwgSlNPTi5zdHJpbmdpZnko6K+75Y+W5aSE55CG5pWw5o2uKSwgMCk7XFxuXFxufVxcbiAgICAgICAgICAgXFxuZGVsZXRlRmlsZSjpnIDlpITnkIbliJfooahbaV0pXFxufVxcbmhpZGVMb2FkaW5nKClcXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuICd0b2FzdDovL+enu+WKqOaIkOWKnydcXG5cXG59ZWxzZXtcXG5cXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCtpbnB1dFxcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcblxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuICAgICAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mAieaLqeWkh+S7veaWh+S7tui3r+W+hDInKSkucnVsZSlcXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLkyXFxuXFxuXFxuXFxuXFxufVxcblxcblxcbn0s5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpLOWTqumHjOadpSzlrZjlk6rph4ws5paH5Lu26Lev5b6EKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EM1wiLFwicGF0aFwiOlwi6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EM1wiLFwicnVsZVwiOlwidmFyIOmHjeWkjeivt+axguaWh+S7tuWkuTMgPSQo6YCJ5oup5paH5Lu25aS55YiX6KGoLCAyLCflsIbmlofku7bmt7vliqDoh7Plk6rkuKrmlofku7blpLnvvJ8nKS5zZWxlY3QoKOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blkI0saSzlk6rph4zmnaUs5a2Y5ZOq6YeMLOaWh+S7tui3r+W+hCzmlofku7ZDSUQpID0+IHtcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcblxcblxcbmlmKGlucHV0PT1cXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxu5LiK57qn6Lev5b6EPeWkh+S7veebruW9lS5zcGxpdChcXFwiL1xcXCIpLnNsaWNlKC0xKVswXVxcbuS4iue6p+i3r+W+hD3kuIrnuqfot6/lvoQucmVwbGFjZShcXFwiLmpzb25cXFwiLFxcXCJcXFwiKVxcblxcbuWOn+i3r+W+hD3kuIrnuqfot6/lvoRcXG5cXG7mlrDot6/lvoQ95paH5Lu26Lev5b6EXFxuXFxuXFxuXFxuXFxuXFxuaWYo5ZOq6YeM5p2lK+aWh+S7tui3r+W+hD095a2Y5ZOq6YeMK+WOn+i3r+W+hClyZXR1cm4gJ3RvYXN0Oi8v6K+35qOA5p+l56e75Yqo6Lev5b6EJ1xcblxcblxcblxcbuWOn+i3r+W+hOaWh+S7tiA9IEpTT04ucGFyc2UocmVhZEZpbGUo5ZOq6YeM5p2lK+WOn+i3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG7ljp/ot6/lvoTmlofku7bliJfooag95Y6f6Lev5b6E5paH5Lu2LmRhdGEu5paH5Lu2XFxu5Yig6Zmk5L2N572uPeWOn+i3r+W+hOaWh+S7tuWIl+ihqC5maW5kSW5kZXgoaXQgPT4gaXQu5paH5Lu2Q0lEID09PSDmlofku7ZDSUQpO1xcblxcblxcblxcbi8v5paw55uu5b2V5aKe5Yqg5paH5Lu2XFxu5aSH5Lu95aKe5Yqg5paH5Lu2ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcbuWkh+S7veWinuWKoOaWh+S7ti5kYXRhLuaWh+S7ti5wdXNoKOWOn+i3r+W+hOaWh+S7tuWIl+ihqFvliKDpmaTkvY3nva5dKVxcbuWkh+S7veWinuWKoOaWh+S7ti5kYXRhLuaWh+S7tj3mlbDnu4Tljrvph40o5aSH5Lu95aKe5Yqg5paH5Lu2LmRhdGEu5paH5Lu2KVxcbnNhdmVGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgSlNPTi5zdHJpbmdpZnko5aSH5Lu95aKe5Yqg5paH5Lu2KSwgMCk7XFxuXFxuXFxuXFxuLy/liKDpmaTljp/ot6/lvoTnmoTmlofku7bmlbDmja5cXG7ljp/ot6/lvoTmlofku7YuZGF0YS7mlofku7Yuc3BsaWNlKOWIoOmZpOS9jee9riwxKVxcbnNhdmVGaWxlKOWTqumHjOadpSvljp/ot6/lvoQrJy5qc29uJyxKU09OLnN0cmluZ2lmeSjljp/ot6/lvoTmlofku7YpLCAwKTtcXG5cXG5cXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuICd0b2FzdDovL+enu+WKqOaIkOWKnydcXG5cXG59ZWxzZXtcXG5cXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCtpbnB1dFxcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcblxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuICAgICAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mAieaLqeWkh+S7veaWh+S7tui3r+W+hDMnKSkucnVsZSlcXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLkzXFxuXFxuXFxuXFxuXFxufVxcblxcblxcbn0s5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpLOWTqumHjOadpSzlrZjlk6rph4ws5paH5Lu26Lev5b6ELOaWh+S7tkNJRClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWbvuagh1wiLFwicGF0aFwiOlwi5Zu+5qCHXCIsXCJydWxlXCI6XCIvL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxu5paH5Lu25aS55Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNODE5LjIlMjA4NzcuMjI2NjY3SDIwNC44Yy01OC4wMjY2NjclMjAwLTEwMi40LTQ0LjM3MzMzMy0xMDIuNC0xMDIuNHYtNDc3Ljg2NjY2N2MwLTU4LjAyNjY2NyUyMDQ0LjM3MzMzMy0xMDIuNCUyMDEwMi40LTEwMi40aDIxMS42MjY2NjdjMjcuMzA2NjY3JTIwMCUyMDU0LjYxMzMzMyUyMDEwLjI0JTIwNzEuNjglMjAzMC43MmwxMy42NTMzMzMlMjAxMy42NTMzMzNjMTMuNjUzMzMzJTIwMTMuNjUzMzMzJTIwMTMuNjUzMzMzJTIwMzQuMTMzMzMzJTIwMCUyMDQ3Ljc4NjY2N3MtMzQuMTMzMzMzJTIwMTMuNjUzMzMzLTQ3Ljc4NjY2NyUyMDBsLTEzLjY1MzMzMy0xMy42NTMzMzNjLTYuODI2NjY3LTYuODI2NjY3LTEzLjY1MzMzMy0xMC4yNC0yMy44OTMzMzMtMTAuMjRIMjA0LjhjLTIwLjQ4JTIwMC0zNC4xMzMzMzMlMjAxMy42NTMzMzMtMzQuMTMzMzMzJTIwMzQuMTMzMzMzdjQ3Ny44NjY2NjdjMCUyMDIwLjQ4JTIwMTMuNjUzMzMzJTIwMzQuMTMzMzMzJTIwMzQuMTMzMzMzJTIwMzQuMTMzMzMzaDYxNC40YzIwLjQ4JTIwMCUyMDM0LjEzMzMzMy0xMy42NTMzMzMlMjAzNC4xMzMzMzMtMzQuMTMzMzMzdi0zNDEuMzMzMzM0YzAtMjAuNDgtMTMuNjUzMzMzLTM0LjEzMzMzMy0zNC4xMzMzMzMtMzQuMTMzMzMzSDI3My4wNjY2NjdjLTIwLjQ4JTIwMC0zNC4xMzMzMzMtMTMuNjUzMzMzLTM0LjEzMzMzNC0zNC4xMzMzMzNzMTMuNjUzMzMzLTM0LjEzMzMzMyUyMDM0LjEzMzMzNC0zNC4xMzMzMzRoNTQ2LjEzMzMzM2M1OC4wMjY2NjclMjAwJTIwMTAyLjQlMjA0NC4zNzMzMzMlMjAxMDIuNCUyMDEwMi40djM0MS4zMzMzMzRjMCUyMDU0LjYxMzMzMy00NC4zNzMzMzMlMjAxMDIuNC0xMDIuNCUyMDEwMi40eiUyMiUyMGZpbGwlM0QlMjIlMjNGRkIwMDAlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxuXFxu5paH5Lu25aS55Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNODg1LjMzMzMzMyUyMDE2OC41MzMzMzNoLTQ0OEwzNDEuMzMzMzMzJTIwMTEwLjkzMzMzM2MtNi40LTQuMjY2NjY3LTE0LjkzMzMzMy02LjQtMjEuMzMzMzMzLTYuNEgxMzQuNGMtNTEuMiUyMDAtOTMuODY2NjY3JTIwNDIuNjY2NjY3LTkzLjg2NjY2NyUyMDkzLjg2NjY2N3Y2MjIuOTMzMzMzYzAlMjA1MS4yJTIwNDIuNjY2NjY3JTIwOTMuODY2NjY3JTIwOTMuODY2NjY3JTIwOTMuODY2NjY3aDc1MC45MzMzMzNjNTEuMiUyMDAlMjA5My44NjY2NjctNDIuNjY2NjY3JTIwOTMuODY2NjY3LTkzLjg2NjY2N1YyNjIuNGMwLTUxLjItNDAuNTMzMzMzLTkzLjg2NjY2Ny05My44NjY2NjctOTMuODY2NjY3eiUyMG0tNzM4LjEzMzMzMyUyMDIxLjMzMzMzNGgxNjBsOTYlMjA1Ny42YzYuNCUyMDQuMjY2NjY3JTIwMTQuOTMzMzMzJTIwNi40JTIwMjEuMzMzMzMzJTIwNi40aDQ0NS44NjY2NjdjMTIuOCUyMDAlMjAyMS4zMzMzMzMlMjA4LjUzMzMzMyUyMDIxLjMzMzMzMyUyMDIxLjMzMzMzM1YyOTguNjY2NjY3YzAlMjAxMi44LTguNTMzMzMzJTIwMjEuMzMzMzMzLTIxLjMzMzMzMyUyMDIxLjMzMzMzM2gtNzI1LjMzMzMzM2MtMTIuOCUyMDAtMjEuMzMzMzMzLTguNTMzMzMzLTIxLjMzMzMzNC0yMS4zMzMzMzNWMjExLjJjMi4xMzMzMzMtMTAuNjY2NjY3JTIwMTIuOC0yMS4zMzMzMzMlMjAyMy40NjY2NjctMjEuMzMzMzMzeiUyMiUyMGZpbGwlM0QlMjIlMjM4MEI4RjglMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxu6KeG6aKR5paH5Lu25Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxLjAxNDY0ODQzNzVlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAzOSUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04MDguMDE1MDY2JTIwNzUyLjA5MDM5NWgtNTM5Ljk2MjMzNWMtODQuODUxMjI0JTIwMC0xNTQuMjc0OTUzLTY5LjQyMzcyOS0xNTQuMjc0OTUzLTE1NC4yNzQ5NTJ2LTMwOC41NDk5MDZjMC04NC44NTEyMjQlMjA2OS40MjM3MjktMTU0LjI3NDk1MyUyMDE1NC4yNzQ5NTMtMTU0LjI3NDk1M2g1MzkuOTYyMzM1Yzg0Ljg1MTIyNCUyMDAlMjAxNTQuMjc0OTUzJTIwNjkuNDIzNzI5JTIwMTU0LjI3NDk1MyUyMDE1NC4yNzQ5NTN2MzA4LjU0OTkwNmMwJTIwODQuODUxMjI0LTY5LjQyMzcyOSUyMDE1NC4yNzQ5NTMtMTU0LjI3NDk1MyUyMDE1NC4yNzQ5NTJ6JTIwbS01MzkuOTYyMzM1LTUzOS45NjIzMzVjLTQyLjQyNTYxMiUyMDAtNzcuMTM3NDc2JTIwMzQuNzExODY0LTc3LjEzNzQ3NyUyMDc3LjEzNzQ3N3YzMDguNTQ5OTA2YzAlMjA0Mi40MjU2MTIlMjAzNC43MTE4NjQlMjA3Ny4xMzc0NzYlMjA3Ny4xMzc0NzclMjA3Ny4xMzc0NzZoNTM5Ljk2MjMzNWM0Mi40MjU2MTIlMjAwJTIwNzcuMTM3NDc2LTM0LjcxMTg2NCUyMDc3LjEzNzQ3Ni03Ny4xMzc0NzZ2LTMwOC41NDk5MDZjMC00Mi40MjU2MTItMzQuNzExODY0LTc3LjEzNzQ3Ni03Ny4xMzc0NzYtNzcuMTM3NDc3aC01MzkuOTYyMzM1eiUyMiUyMGZpbGwlM0QlMjIlMjMzODhDRUIlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk00OTkuNDY1MTYlMjA2MTcuMDk5ODEyYy0yMy4xNDEyNDMlMjAwLTQ0LjM1NDA0OS01Ljc4NTMxMS02MS43MDk5ODEtMTcuMzU1OTMzLTQwLjQ5NzE3NS0yNi45OTgxMTctNTkuNzgxNTQ0LTgwLjk5NDM1LTUzLjk5NjIzNC0xNjEuOTg4NyUyMDMuODU2ODc0LTgyLjkyMjc4NyUyMDI2Ljk5ODExNy0xMzMuMDYyMTQ3JTIwNzEuMzUyMTY2LTE1Ni4yMDMzOSUyMDQ0LjM1NDA0OS0yMy4xNDEyNDMlMjAxMDAuMjc4NzE5LTExLjU3MDYyMSUyMDE3MS42MzA4ODUlMjAzMi43ODM0MjhzMTA0LjEzNTU5MyUyMDkwLjYzNjUzNSUyMDEwMi4yMDcxNTclMjAxNDAuNzc1ODk0Yy0xLjkyODQzNyUyMDUwLjEzOTM2LTQwLjQ5NzE3NSUyMDkwLjYzNjUzNS0xMTUuNzA2MjE1JTIwMTI5LjIwNTI3My00Mi40MjU2MTIlMjAyMy4xNDEyNDMtODAuOTk0MzUlMjAzMi43ODM0MjctMTEzLjc3Nzc3OCUyMDMyLjc4MzQyOHolMjBtNS43ODUzMTEtMjY5Ljk4MTE2OGMtNy43MTM3NDglMjAwLTExLjU3MDYyMSUyMDEuOTI4NDM3LTEzLjQ5OTA1OSUyMDEuOTI4NDM3LTE3LjM1NTkzMiUyMDcuNzEzNzQ4LTI2Ljk5ODExNyUyMDQyLjQyNTYxMi0zMC44NTQ5OSUyMDkwLjYzNjUzNS0zLjg1Njg3NCUyMDcxLjM1MjE2NiUyMDEzLjQ5OTA1OCUyMDg4LjcwODA5OCUyMDE5LjI4NDM2OSUyMDk0LjQ5MzQwOCUyMDcuNzEzNzQ4JTIwNS43ODUzMTElMjAzMi43ODM0MjclMjAxMy40OTkwNTglMjA5OC4zNTAyODItMTkuMjg0MzY5JTIwNjcuNDk1MjkyLTMyLjc4MzQyNyUyMDczLjI4MDYwMy01Ny44NTMxMDclMjA3My4yODA2MDMtNjMuNjM4NDE4JTIwMC01Ljc4NTMxMS0zLjg1Njg3NC0zMC44NTQ5OTEtNjUuNTY2ODU1LTcxLjM1MjE2NS00MC40OTcxNzUtMjUuMDY5NjgtNjUuNTY2ODU1LTMyLjc4MzQyNy04MC45OTQzNS0zMi43ODM0Mjh6JTIyJTIwZmlsbCUzRCUyMiUyM0U3OEUwMCUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTc1MC4xNjE5NTklMjA5MDYuMzY1MzQ4aC00MjQuMjU2MTIxYy0yMS4yMTI4MDYlMjAwLTM4LjU2ODczOC0xNy4zNTU5MzItMzguNTY4NzM4LTM4LjU2ODczOHMxNy4zNTU5MzItMzguNTY4NzM4JTIwMzguNTY4NzM4LTM4LjU2ODczOGg0MjQuMjU2MTIxYzIxLjIxMjgwNiUyMDAlMjAzOC41Njg3MzglMjAxNy4zNTU5MzIlMjAzOC41Njg3MzglMjAzOC41Njg3MzhzLTE3LjM1NTkzMiUyMDM4LjU2ODczOC0zOC41Njg3MzglMjAzOC41Njg3Mzh6JTIyJTIwZmlsbCUzRCUyMiUyMzM4OENFQiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG7pn7PkuZDmlofku7blm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk01MTQuOTI4JTIwMTA0LjQzMmMxOTMuODglMjAwJTIwMzUyLjcwNSUyMDE0Ni42NDglMjAzNTkuNjY4JTIwMzMxLjExN2wwLjIzOCUyMDEyLjYzNXYyNDIuOTY4SDc4OS41VjQ0OC4xODRjMC0xNDIuMjA4LTEyMi40NDYtMjU4LjQyLTI3NC41NzItMjU4LjQyLTE0Ny45JTIwMC0yNjcuNzQ3JTIwMTA5Ljg0Ni0yNzQuMjkxJTIwMjQ2LjYzMWwtMC4yODIlMjAxMS43ODl2MjQyLjk2OGgtODUuMzMzVjQ0OC4xODRjMC0xOTAuMzYyJTIwMTYxLjYyLTM0My43NTIlMjAzNTkuOTA2LTM0My43NTJ6JTIyJTIwZmlsbCUzRCUyMiUyMzMzMzMzMCUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTkzNS42NjIlMjA1MjcuOTRjMzEuNDE4JTIwMCUyMDU2Ljg4OCUyMDI1LjQ3JTIwNTYuODg4JTIwNTYuODg4djIxMi42NDdjMCUyMDMxLjQxOS0yNS40NyUyMDU2Ljg4OS01Ni44ODglMjA1Ni44ODloLTg5LjIzM2MtMzEuNDIlMjAwLTU2Ljg5LTI1LjQ3LTU2Ljg5LTU2Ljg5VjU4NC44MjljMC0zMS40MTklMjAyNS40Ny01Ni44ODklMjA1Ni44OS01Ni44ODloODkuMjMzeiUyMG0tMjguNDU1JTIwODUuMzIyaC0zMi4zN3YxNTUuNzYyaDMyLjM3VjYxMy4yNjJ6JTIyJTIwZmlsbCUzRCUyMiUyMzMzMzMzMCUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTM4Ny44MzklMjA1NzQuNDdjMTUuOTEyLTE5LjYyNCUyMDQ0Ljg0LTIwLjkyOCUyMDYyLjUwNy00LjA5M2w0LjE2OCUyMDQuNTg2JTIwNjAuNjE1JTIwNzcuMDQlMjA0NS45MTYtNDcuNTk2YTQyLjY2OCUyMDQyLjY2OCUyMDAlMjAwJTIwMSUyMDIzLjg0Ny0xMi41bDYuODczLTAuNTU4aDExOC4zMTJjMjMuNTY0JTIwMCUyMDQyLjY2NiUyMDE5LjEwMyUyMDQyLjY2NiUyMDQyLjY2NyUyMDAlMjAyMS42LTE2LjA1JTIwMzkuNDUyLTM2Ljg3NyUyMDQyLjI3N2wtNS43OSUyMDAuMzktMTAwLjE3LTAuMDQ3LTY3LjMwMyUyMDY5Ljg3MmMtMTYuNDY2JTIwMTcuMDg1LTQzLjI4OCUyMDE3LjIzLTU5Ljk3MiUyMDEuNDY1bC00LjI4My00LjY5NC01Ny45NC03My41ODMtNjguNzQlMjA4NC44NzFjLTEzLjQ5MSUyMDE2LjY0LTM2LjkyNCUyMDIwLjQ3Mi01NC44MjQlMjA5Ljg4bC01LjE4OS0zLjYxMWMtMTYuNjM5LTEzLjQ5Mi0yMC40NzEtMzYuOTI0LTkuODgtNTQuODI1bDMuNjEyLTUuMTg4TDM4Ny44MzklMjA1NzQuNDd6JTIyJTIwZmlsbCUzRCUyMiUyM0VGNTAyRiUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEwNC41OTMlMjA1MjcuOTRjLTMxLjQxOSUyMDAtNTYuODg5JTIwMjUuNDctNTYuODg5JTIwNTYuODg4djIxMi42NDdjMCUyMDMxLjQxOSUyMDI1LjQ3JTIwNTYuODg5JTIwNTYuODg5JTIwNTYuODg5aDc4LjUxM2MzMS40MiUyMDAlMjA1Ni44OS0yNS40NyUyMDU2Ljg5LTU2Ljg5VjU4NC44MjljMC0zMS40MTktMjUuNDctNTYuODg5LTU2Ljg5LTU2Ljg4OWgtNzguNTEzeiUyMG0yOC40ODIlMjA4NS4zMjJoMjEuNjE4djE1NS43NjJoLTIxLjYxOFY2MTMuMjYyeiUyMiUyMGZpbGwlM0QlMjIlMjMzMzMzMzAlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxuXFxu5Zu+54mH5paH5Lu25Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNODUzLjMzMzMzMyUyMDE3MC42NjY2NjdIMTcwLjY2NjY2N2MtNDYuOTMzMzMzJTIwMC04NS4zMzMzMzMlMjAzOC40LTg1LjMzMzMzNCUyMDg1LjMzMzMzM3Y1MTJjMCUyMDQ2LjkzMzMzMyUyMDM4LjQlMjA4NS4zMzMzMzMlMjA4NS4zMzMzMzQlMjA4NS4zMzMzMzNoNjgyLjY2NjY2NmM0Ni45MzMzMzMlMjAwJTIwODUuMzMzMzMzLTM4LjQlMjA4NS4zMzMzMzQtODUuMzMzMzMzVjI1NmMwLTQ2LjkzMzMzMy0zOC40LTg1LjMzMzMzMy04NS4zMzMzMzQtODUuMzMzMzMzek0xNzAuNjY2NjY3JTIwMjk4LjY2NjY2N2MwLTIzLjQ2NjY2NyUyMDE5LjItNDIuNjY2NjY3JTIwNDIuNjY2NjY2LTQyLjY2NjY2N2g1OTcuMzMzMzM0YzIzLjQ2NjY2NyUyMDAlMjA0Mi42NjY2NjclMjAxOS4yJTIwNDIuNjY2NjY2JTIwNDIuNjY2NjY3djQyNi42NjY2NjZjMCUyMDYuNC0yLjEzMzMzMyUyMDEwLjY2NjY2Ny0yLjEzMzMzMyUyMDE0LjkzMzMzNGwtMTUzLjYtMjUzLjg2NjY2N2MtNi40LTEwLjY2NjY2Ny0yMy40NjY2NjctMTQuOTMzMzMzLTMyLTQuMjY2NjY3TDU3NiUyMDU1OC45MzMzMzNjLTEwLjY2NjY2NyUyMDguNTMzMzMzLTI1LjYlMjA2LjQtMzQuMTMzMzMzLTYuNGwtOTYtMTc5LjJjLTguNTMzMzMzLTE0LjkzMzMzMy0yNy43MzMzMzMtMTQuOTMzMzMzLTM4LjQtMi4xMzMzMzNsLTIzNC42NjY2NjclMjAzNjkuMDY2NjY3YzAtNC4yNjY2NjctMi4xMzMzMzMtMTAuNjY2NjY3LTIuMTMzMzMzLTE0LjkzMzMzNFYyOTguNjY2NjY3eiUyMiUyMGZpbGwlM0QlMjIlMjMyOTdBRkYlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk03NDYuNjY2NjY3JTIwMzYyLjY2NjY2N20tNjQlMjAwYTY0JTIwNjQlMjAwJTIwMSUyMDAlMjAxMjglMjAwJTIwNjQlMjA2NCUyMDAlMjAxJTIwMC0xMjglMjAwWiUyMiUyMGZpbGwlM0QlMjIlMjMyOTdBRkYlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxu5YW25LuW5paH5Lu25Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNOTM3LjYlMjAzNTcuN2MtMzguNS00Mi42LTg4LjgtNzItMTQ0LjItODQuNC0xMS43LTUzLjEtMzkuNi0xMDEuNC04MC4zLTEzOC41QzY2NC4zJTIwOTAuMyUyMDYwMSUyMDY1LjklMjA1MzUlMjA2NS45Yy02NS44JTIwMC0xMjguOCUyMDI0LjMtMTc3LjUlMjA2OC40LTM5LjclMjAzNi02Ny40JTIwODIuNy03OS44JTIwMTM0LjEtNjEuNyUyMDctMTE4LjglMjAzNC41LTE2My4zJTIwNzktNTEuMiUyMDUxLjItNzkuOCUyMDExOS04MC44JTIwMTkxLjItMSUyMDc0LjMlMjAyOCUyMDE0Ni4xJTIwODAuNSUyMDE5OC43JTIwNDEuMiUyMDQxLjMlMjA5My4yJTIwNjglMjAxNDkuNiUyMDc3LjQlMjAyNCUyMDQlMjA0NS45LTE0LjQlMjA0NS45LTM4Ljh2LTEuNGMwLTE5LjMtMTQtMzUuNi0zMy0zOC44LTkyLjQtMTUuNy0xNjIuOS05Ni40LTE2Mi45LTE5My4yJTIwMC0xMDguMSUyMDg3LjktMTk2JTIwMTk2LTE5NmgxLjdsMzYuMyUyMDAuMyUyMDMuOC0zNi4xYzEwLTk0JTIwODguOS0xNjQuOSUyMDE4My42LTE2NC45JTIwOTUuMyUyMDAlMjAxNzQuMyUyMDcxLjQlMjAxODMuNyUyMDE2NmwzLjIlMjAzMi4zJTIwMzIuMiUyMDMuNWM5OS40JTIwMTAuOCUyMDE3NC40JTIwOTQuNiUyMDE3NC40JTIwMTk0LjglMjAwJTIwOTYuOC03MC42JTIwMTc3LjQtMTYyLjklMjAxOTMuMi0xOS4xJTIwMy4zLTMzJTIwMjAuMS0zMyUyMDM5LjUlMjAwJTIwMjQuOCUyMDIyLjMlMjA0My41JTIwNDYuOCUyMDM5LjQlMjA1NS45LTkuNSUyMDEwNy40LTM2JTIwMTQ4LjQtNzYuOSUyMDUyLjEtNTIuMSUyMDgwLjgtMTIxLjQlMjA4MC44LTE5NS4xLTAuMS02OC40LTI1LjMtMTM0LjEtNzEuMS0xODQuOHolMjIlMjBmaWxsJTNEJTIyJTIzMkMyQzJDJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTU3LjElMjA3OTUuMWgtNzJjLTIuMiUyMDAtNC0xLjgtNC00VjU1My44YzAtMjIlMjAxOC00MCUyMDQwLTQwczQwJTIwMTglMjA0MCUyMDQwdjIzNy4zYzAlMjAyLjItMS44JTIwNC00JTIwNHolMjIlMjBmaWxsJTNEJTIyJTIzMkMyQzJDJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNDk4JTIwNzI5LjFjMTElMjAxNi41JTIwMzUuMiUyMDE2LjUlMjA0Ni4yJTIwMCUyMDUuMi03LjclMjAxMy44LTEyLjMlMjAyMy4xLTEyLjNoNjNjMjIuMiUyMDAlMjAzNS40JTIwMjQuOCUyMDIzLjElMjA0My4ybC05Ni42JTIwMTQ0LjVjLTkuNSUyMDE0LjMtMjIuMiUyMDIyLjEtMzUuNyUyMDIyLjEtMTMuNSUyMDAtMjYuMi03LjktMzUuNy0yMi4xTDM4OC44JTIwNzYwYy0xMi4zLTE4LjUlMjAwLjktNDMuMiUyMDIzLjEtNDMuMmg2M2M5LjMlMjAwJTIwMTcuOSUyMDQuNiUyMDIzLjElMjAxMi4zeiUyMiUyMGZpbGwlM0QlMjIlMjM1QUJFNjQlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxu6aaW6aG1566h55CG6LSm5Y+35Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTAwOC41MzUxMzUlMjA3MTAuNjcwMzMybC03MC40NDYzODglMjAxMTYuMzg2OTA0YTExMi4wOTk5NzUlMjAxMTIuMDk5OTc1JTIwMCUyMDAlMjAxLTE0MC41NzI4NTclMjA0My44MjkwNDJsLTY5LjQyMjY0NS0xNy4wODM3MjljLTUuNTAyNjI0JTIwMy4xOTkyLTExLjEzMzIxNyUyMDYuMzk4NC0xNi43NjM4MDklMjA5LjM0MTY2NWwtMTguMjk5NDI1JTIwNjIuODk2Mjc2QzY4Ny4zMzU0MzUlMjA5ODEuNTE0NjIxJTIwNjM5LjQ3NTQlMjAxMDIzLjc0NDA2NCUyMDU4Mi42NTc2MDQlMjAxMDIzLjc0NDA2NEg0NDEuNzY0ODI4Yy01Ni44MTc3OTYlMjAwLTEwNC42Nzc4MzEtNDIuMjkzNDI3LTExMC4zMDg0MjMtOTcuNzAzNTc0bC0xOC4yOTk0MjUtNjIuODk2Mjc2YTQyMi4xNjY0NTglMjA0MjIuMTY2NDU4JTIwMCUyMDAlMjAxLTE2LjgyNzc5My05LjM0MTY2NWwtNjkuNjE0NTk3JTIwMTcuMDgzNzI5YTExMi4xNjM5NTklMjAxMTIuMTYzOTU5JTIwMCUyMDAlMjAxLTE0MC41MDg4NzMtNDMuODkzMDI2TDE1LjYzMTM2MSUyMDcxMC41NDIzNjRhMTA3LjQ5MzEyNyUyMDEwNy40OTMxMjclMjAwJTIwMCUyMDElMjAzMi40Mzk4OS0xNDQuNzMxODE3TDk2LjI1MTIwNiUyMDUxOC45MTAyNzJhNDEwLjY0OTMzOCUyMDQxMC42NDkzMzglMjAwJTIwMCUyMDElMjAwLTE0LjIwNDQ0OGwtNDguMTc5OTU1LTQ2LjgzNjI5MWExMDcuMzY1MTU5JTIwMTA3LjM2NTE1OSUyMDAlMjAwJTIwMS0zMi4zNzU5MDYtMTQ0LjczMTgxN2w3MC4xOTA0NTItMTE2LjQ1MDg4OGExMTIuMDk5OTc1JTIwMTEyLjA5OTk3NSUyMDAlMjAwJTIwMSUyMDE0MC41NzI4NTctNDMuODkzMDI2bDY5LjU1MDYxMiUyMDE3LjA4MzcyOWM1LjU2NjYwOC0zLjE5OTIlMjAxMS4xMzMyMTctNi4zOTg0JTIwMTYuODI3Nzk0LTkuMzQxNjY1bDE4LjI5OTQyNS02Mi44OTYyNzZDMzM2LjgzMTA2MSUyMDQyLjIyOTQ0MyUyMDM4NC42OTEwOTYlMjAwJTIwNDQxLjUwODg5MiUyMDBINTgyLjUyOTYzNmM1Ni44MTc3OTYlMjAwJTIwMTA0LjY3NzgzMSUyMDQyLjI5MzQyNyUyMDExMC4zNzI0MDclMjA5Ny42Mzk1OWwxOC4yMzU0NDElMjA2Mi43MDQzMjRjNS43NTg1NiUyMDMuMDA3MjQ4JTIwMTEuMzI1MTY5JTIwNi4xNDI0NjQlMjAxNi44Mjc3OTMlMjA5LjM0MTY2NWw2OS42Nzg1ODEtMTcuMDgzNzI5YTExMi4xNjM5NTklMjAxMTIuMTYzOTU5JTIwMCUyMDAlMjAxJTIwMTQwLjUwODg3MyUyMDQzLjg5MzAyNmw3MC40NDYzODglMjAxMTYuNTE0ODcyYTEwNy40OTMxMjclMjAxMDcuNDkzMTI3JTIwMCUyMDAlMjAxLTMyLjM3NTkwNiUyMDE0NC43MzE4MTdsLTQ4LjE3OTk1NSUyMDQ2Ljc3MjMwN2E0MTQuNjE2MzQ2JTIwNDE0LjYxNjM0NiUyMDAlMjAwJTIwMSUyMDAlMjAxNC4yMDQ0NDhsNDguMjQzOTM5JTIwNDYuODM2MjkxYzQ3LjA5MjIyNyUyMDMxLjkyODAxOCUyMDYyLjE5MjQ1MiUyMDk0Ljk1MjI2MiUyMDMyLjI0NzkzOCUyMDE0NS4xMTU3MjF6JTIwbS0yMTMuMDY2NzMzLTE0Mi4yMzY0NGwzLjM5MTE1Mi0zMS4wMzIyNDJhMjQ2LjIxMDQ0NyUyMDI0Ni4yMTA0NDclMjAwJTIwMCUyMDAlMjAwLTUxLjY5OTA3NmwtMy4yNjMxODQtMzAuOTA0Mjc0JTIwOTMuOTkyNTAyLTkxLjMwNTE3My01My41NTQ2MTItODguNTUzODYyLTEzMS42MTUwOTYlMjAzMi4zMTE5MjItMjMuNTQ2MTEzLTE2LjA1OTk4NWEyOTQuMTM0NDY2JTIwMjk0LjEzNDQ2NiUyMDAlMjAwJTIwMC00OC42Mjc4NDQtMjYuODA5Mjk3bC0yNy41MTMxMjEtMTEuOTAxMDI1TDU2OC40NTMxNTYlMjAxMjcuOTY4MDA4SDQ1NS42NDkzNTZMNDE5LjM3MDQyNiUyMDI1Mi43MzY4MTZsLTI3LjcwNTA3NCUyMDExLjk2NTAwOWMtMTYuNjM1ODQxJTIwNy4xNjYyMDgtMzIuOTUxNzYyJTIwMTYuMTg3OTUzLTQ4LjQ5OTg3NSUyMDI2Ljc0NTMxM2wtMjMuNjEwMDk3JTIwMTUuOTk2MDAxLTEzMS40ODcxMjgtMzIuMjQ3OTM4LTUzLjM2MjY2JTIwODguNDg5ODc4JTIwOTQuMDU2NDg2JTIwOTEuNDMzMTQxLTMuMjYzMTg0JTIwMzAuOTY4MjU4YTI0Ny44NzQwMzElMjAyNDcuODc0MDMxJTIwMCUyMDAlMjAwJTIwMCUyMDUxLjY5OTA3NmwzLjE5OTIlMjAzMC45MDQyNzQtOTMuOTI4NTE4JTIwOTEuMzY5MTU3JTIwNTMuNTU0NjEyJTIwODguNDg5ODc4JTIwMTMxLjU1MTExMi0zMi4zMTE5MjIlMjAyMy42MTAwOTclMjAxNi4wNTk5ODVjMTUuMjkyMTc3JTIwMTAuNDI5MzkzJTIwMzEuNTQ0MTE0JTIwMTkuNDUxMTM3JTIwNDguNTYzODU5JTIwMjYuODA5Mjk3bDI3LjU3NzEwNiUyMDExLjk2NTAwOUw0NTUuOTA1MjkyJTIwODk1Ljc3NjA1NmgxMTIuNjExODQ4bDM2LjM0MjkxNC0xMjQuNzY4ODA4JTIwMjcuNjQxMDktMTEuOTY1MDA5YzE2LjY5OTgyNS03LjE2NjIwOCUyMDMyLjk1MTc2Mi0xNi4xODc5NTMlMjA0OC41NjM4NTktMjYuNzQ1MzEzbDIzLjU0NjExMy0xNS45OTYwMDElMjAxMzEuNDIzMTQ0JTIwMzIuMjQ3OTM4JTIwNTMuNjgyNTgtODguNzQ1ODE0LTk0LjE4NDQ1NC05MS4zNjkxNTd6TTUxMi4xNDcyMzIlMjA2MTUuODQ2MDM4YzU3LjMyOTY2OCUyMDAlMjAxMDMuODQ2MDM4LTQ2LjUxNjM3MSUyMDEwMy45NzQwMDYtMTAzLjk3NDAwNiUyMDAtNTcuMzI5NjY4LTQ2LjY0NDMzOS0xMDMuOTc0MDA2LTEwMy45NzQwMDYtMTAzLjk3NDAwN1M0MDguMTczMjI1JTIwNDU0LjU0MjM2NCUyMDQwOC4xNzMyMjUlMjA1MTEuODcyMDMyJTIwNDU0LjgxNzU2NCUyMDYxNS44NDYwMzglMjA1MTIuMTQ3MjMyJTIwNjE1Ljg0NjAzOHolMjBtMCUyMDEyNy45NjgwMDhjLTEyNy45NjgwMDglMjAwLTIzMS45NDIwMTQtMTAzLjkxMDAyMi0yMzEuOTQyMDE1LTIzMS45NDIwMTQlMjAwLTEyNy45NjgwMDglMjAxMDMuOTEwMDIyLTIzMS45NDIwMTQlMjAyMzEuOTQyMDE1LTIzMS45NDIwMTUlMjAxMjcuOTY4MDA4JTIwMCUyMDIzMS45NDIwMTQlMjAxMDMuOTEwMDIyJTIwMjMxLjk0MjAxNCUyMDIzMi4xMzM5NjdBMjMyLjEzMzk2NyUyMDIzMi4xMzM5NjclMjAwJTIwMCUyMDElMjA1MTIuMTQ3MjMyJTIwNzQzLjgxNDA0NnolMjIlMjBmaWxsJTNEJTIyJTIzMDA4MkZGJTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcblxcbummlumhteWvu+aJvui1hOa6kOWbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTM1MS4xODA4JTIwNTkuMjg5NkE0MzUuMiUyMDQzNS4yJTIwMCUyMDAlMjAxJTIwODA1LjM3NiUyMDcxNS4yNjQlMjA0NjAuOCUyMDQ2MC44JTIwMCUyMDAlMjAxJTIwMzUxLjE4MDglMjA1OS4zNDA4eiUyMiUyMGZpbGwlM0QlMjIlMjMyMEM5OTclMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk03NTQuMzgwOCUyMDcyMi4yMjcyYTM1OC40JTIwMzU4LjQlMjAwJTIwMSUyMDAtMjY3LjgyNzIlMjAxMjAuMjE3NiUyMDUxLjIlMjA1MS4yJTIwMCUyMDAlMjAxJTIwMCUyMDEwMi40JTIwNDYwLjglMjA0NjAuOCUyMDAlMjAxJTIwMSUyMDM2NS4xNTg0LTE3OS43MTJsMTE4Ljg4NjQlMjAxMjEuMjQxNmMyMy43NTY4JTIwMjQuMjE3NiUyMDIzLjU1MiUyMDYzLjAyNzItMC40MDk2JTIwODcuMDRsLTAuNDA5NiUyMDAuNDA5NmE2MS4xODQlMjA2MS4xODQlMjAwJTIwMCUyMDEtODYuOTg4OC0wLjQ2MDhsLTE0OC4wMTkyLTE1MC45Mzc2YTYxLjc5ODQlMjA2MS43OTg0JTIwMCUyMDAlMjAxJTIwMC40MDk2LTg2Ljk4ODhsMC40MDk2LTAuNDA5NmM1LjYzMi01LjU4MDglMjAxMS45ODA4LTkuODMwNCUyMDE4Ljc5MDQtMTIuOHolMjBtLTQ2Ny45NjgtMzY0LjU5NTJoNDA5LjZhNTEuMiUyMDUxLjIlMjAwJTIwMSUyMDElMjAwJTIwMTAyLjRoLTQwOS42YTUxLjIlMjA1MS4yJTIwMCUyMDElMjAxJTIwMC0xMDIuNHolMjBtMCUyMDIwNC44aDI1NmE1MS4yJTIwNTEuMiUyMDAlMjAwJTIwMSUyMDAlMjAxMDIuNGgtMjU2YTUxLjIlMjA1MS4yJTIwMCUyMDElMjAxJTIwMC0xMDIuNHolMjIlMjBmaWxsJTNEJTIyJTIzMkM2REQyJTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcblxcblxcbummlumhteaIkeeahOWIhuS6q+Wbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTkwMi40JTIwMjkxLjJMNjkyLjIlMjAxMjguN2MtNDQtMzQtMTA3LjktMi42LTEwNy45JTIwNTN2NDVjLTE4OC45JTIwMS4zLTM0MS45JTIwMTU5LjgtMzQxLjklMjAzNTYlMjAwJTIwNDIuNyUyMDcuMSUyMDgwLjclMjAxOSUyMDExOC43QzMwOC44JTIwNTYzLjclMjA0MzQuNyUyMDQ2NCUyMDU4NC4yJTIwNDY0djQyLjdjMCUyMDU1LjYlMjA2My45JTIwODclMjAxMDcuOSUyMDUzbDIxMC4zLTE2Mi41YzM0LjctMjYuOCUyMDM0LjctNzkuMiUyMDAtMTA2eiUyMiUyMGZpbGwlM0QlMjIlMjMyODY3Q0UlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk03NjguMyUyMDkwMS45SDI1Ny43Yy05My4xJTIwMC0xNjguNS03NS41LTE2OC41LTE2OC41VjM1My42YzAtOTMuMSUyMDc1LjUtMTY4LjUlMjAxNjguNS0xNjguNWg0OS42YzI2LjYlMjAwJTIwNDguMSUyMDIxLjUlMjA0OC4xJTIwNDguMXMtMjEuNSUyMDQ4LjEtNDguMSUyMDQ4LjFoLTQ5LjZjLTQwJTIwMC03Mi40JTIwMzIuNC03Mi40JTIwNzIuNHYzNzkuOGMwJTIwNDAlMjAzMi40JTIwNzIuNCUyMDcyLjQlMjA3Mi40aDUxMC41YzQwJTIwMCUyMDcyLjQtMzIuNCUyMDcyLjQtNzIuNHYtMTMyYzAtMjYuNiUyMDIxLjUtNDguMSUyMDQ4LjEtNDguMXM0OC4xJTIwMjEuNSUyMDQ4LjElMjA0OC4xdjEzMmMwJTIwOTMtNzUuNSUyMDE2OC40LTE2OC41JTIwMTY4LjR6JTIyJTIwZmlsbCUzRCUyMiUyM0JERDJFRiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG5cXG7pppbpobXmiJHnmoTlpIfku73lm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04NzMuNDcyJTIwODY3LjMyOEgxNTAuNTI4bC00MC45Ni00MC45NlYxOTcuNjMybDQwLjk2LTQwLjk2aDE3OC4xNzZsMzguOTEyJTIwMjguNjcyJTIwMzQuODE2JTIwMTA4LjU0NGg0NzEuMDRsNDAuOTYlMjA0MC45NnY0OTIuNTQ0bC00MC45NiUyMDM5LjkzNnolMjBtLTY4MS45ODQtODEuOTJoNjQyLjA0OFYzNzQuNzg0aC00NjAuOGwtMzguOTEyLTI4LjY3Mi0zNC44MTYtMTA4LjU0NEgxOTEuNDg4djU0Ny44NHolMjIlMjBmaWxsJTNEJTIyJTIzNDM3REZGJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNODM3LjYzMiUyMDI3Mi4zODRoLTYxLjQ0di00MC45NmgtMzU4LjR2LTYxLjQ0aDM4OS4xMmwzMC43MiUyMDMwLjcyeiUyMiUyMGZpbGwlM0QlMjIlMjM2M0Y3REUlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxuXFxuXFxuXFxu6YCJ5a6a5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNjcxLjIzMiUyMDUyOS40MDh2MjE1LjA0SDE0NS40MDhWMjAzLjI2NGg1MjUuODI0djk0LjcybDk0LjIwOC03OC4zMzZ2LTExMS4xMDRINTEuMlY4MzguNjU2aDcxNC4yNFY0NTAuNTZ6JTIyJTIwZmlsbCUzRCUyMiUyMzA0MDAwMCUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQwMC4zODQlMjA2NzcuMzc2TDI3OC41MjglMjA0MjguMDMyYy04LjE5Mi0xNi4zODQtMS4wMjQtMzUuODQlMjAxNC44NDgtNDQuMDMybDQ3LjYxNi0yMy41NTJjMTYuMzg0LTguMTkyJTIwMzUuODQtMS4wMjQlMjA0NC4wMzIlMjAxNC44NDhsNzIuMTkyJTIwMTQ3LjQ1Nkw5MDQuNzA0JTIwMTI4YzEzLjMxMi0xMi4yODglMjAzNC4zMDQtMTAuNzUyJTIwNDYuNTkyJTIwMi41NmwzNS4zMjglMjAzOS45MzZjMTIuMjg4JTIwMTMuODI0JTIwMTAuNzUyJTIwMzQuMzA0LTIuNTYlMjA0Ni41OTJsLTUzMi40OCUyMDQ3MC41MjhjLTE1Ljg3MiUyMDE0LjMzNi00MS40NzIlMjA5LjIxNi01MS4yLTEwLjI0eiUyMiUyMGZpbGwlM0QlMjIlMjMwNDAwMDAlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxu6YCJ5a6a5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTEyJTIwMC4zNDY5MDFjLTI4Mi41Nzg4NDQlMjAwLTUxMS42NTMwOTklMjAyMjkuMDc2MzAyLTUxMS42NTMwOTklMjA1MTEuNjUzMDk5JTIwMCUyMDI4Mi41Nzg4NDQlMjAyMjkuMDc0MjU2JTIwNTExLjY1MzA5OSUyMDUxMS42NTMwOTklMjA1MTEuNjUzMDk5JTIwMjgyLjU3Njc5NyUyMDAlMjA1MTEuNjUzMDk5LTIyOS4wNzQyNTYlMjA1MTEuNjUzMDk5LTUxMS42NTMwOTlDMTAyMy42NTMwOTklMjAyMjkuNDIyMTglMjA3OTQuNTc2Nzk3JTIwMC4zNDY5MDElMjA1MTIlMjAwLjM0NjkwMXpNNzkyLjU2MDg4NCUyMDM2Ny4yOTkzODclMjA0NDguODU3OTE0JTIwNzExLjAwMjM1NmMtNy41MDY5NzQlMjA3LjUwNjk3NC0xNy40MTE1NTUlMjAxMS4yMDUyMDMtMjcuMzA2OTI2JTIwMTEuMTU5MTU0LTkuODk0MzQ4JTIwMC4wNDUwMjUtMTkuODAwOTc1LTMuNjUyMTgtMjcuMzA3OTQ5LTExLjE1OTE1NEwyMzEuNDM3MDclMjA1NDguMTk1MzY0Yy0xNC45MjM4OTgtMTQuOTIzODk4LTE0LjkyMzg5OC0zOS4zNDUxJTIwMC01NC4yNjc5NzQlMjAxNC45MjM4OTgtMTQuOTIzODk4JTIwMzkuMzQ1MS0xNC45MjM4OTglMjA1NC4yNjg5OTglMjAwbDEzNS44NDM4OTglMjAxMzUuODQzODk4JTIwMzE2Ljc0MTkyMS0zMTYuNzQxOTIxYzE0LjkyMzg5OC0xNC45MjM4OTglMjAzOS4zNDUxLTE0LjkyMzg5OCUyMDU0LjI2ODk5OCUyMDBTODA3LjQ4NTgwNSUyMDM1Mi4zNzU0ODklMjA3OTIuNTYwODg0JTIwMzY3LjI5OTM4N3olMjIlMjBmaWxsJTNEJTIyJTIzZDgxZTA2JTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcblxcblxcblxcblxcblxcblxcbua1j+iniOmHj+Wbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTMxOC41MzcxNDMlMjAxMDIwLjU2MjI4NmM0Ni4zNzI1NzElMjAxNi4xNjQ1NzElMjA2MS44Nzg4NTctMjkuNjIyODU3JTIwNDEuMjUyNTcxLTQzLjE1NDI4Ni02MS45NTItNDUuNzg3NDI5LTkyLjg5MTQyOS0xMjMuOTA0LTY5LjYzMi0xOTYuNzU0Mjg2JTIwMjMuMTg2Mjg2LTcwLjA3MDg1NyUyMDc0Ljc1Mi0xMDUuMTA2Mjg2JTIwODUuMDY1MTQzLTIwMi4wOTM3MTQlMjAwLTEwLjgyNTE0MyUyMDE4LjA2NjI4Ni0xNi4xNjQ1NzElMjAyNS44MTk0MjktOC4wNDU3MTQlMjAxOC4wNjYyODYlMjAxOC43OTc3MTQlMjAzNi4xMzI1NzElMjA0OC40MjA1NzElMjA0MS4yNTI1NzElMjA4Ni4xNjIyODUlMjAyLjYzMzE0MyUyMDEzLjUzMTQyOSUyMDIwLjYyNjI4NiUyMDE2LjE2NDU3MSUyMDI1LjgxOTQyOSUyMDIuNzA2Mjg2JTIwMzMuNDk5NDI5LTY3LjM2NDU3MSUyMDIzLjE4NjI4Ni0xNDIuODQ4JTIwNy43NTMxNDMtMTk0LjA0OC0yLjU2LTEwLjc1MiUyMDEwLjI0LTIxLjU3NzE0MyUyMDIwLjYyNjI4NS0xMy40NTgyODYlMjAxODguMjY5NzE0JTIwMTEzLjE1MiUyMDMzMi44JTIwMzM0LjI2Mjg1NyUyMDE0MS44OTcxNDMlMjA1MjIuODk4Mjg2LTIzLjI1OTQyOSUyMDE4Ljg3MDg1NyUyMDAlMjA1My45MDYyODYlMjAzMy40OTk0MjklMjA0NS43ODc0MjloMi41NmM0NzcuMjU3MTQzLTI3NC45NDQlMjAyMTYuNzIyMjg2LTY3MS4xNTg4NTclMjA5OC4wMTE0MjgtODAwLjU0ODU3Mi03LjY4LTEwLjc1Mi0yNS43NDYyODYtMi42MzMxNDMtMjMuMTg2Mjg1JTIwMTAuODI1MTQzJTIwNS4xMiUyMDQwLjQ0OCUyMDIuNTYlMjA4My41MjkxNDMtMTIuODczMTQzJTIwMTE1Ljg1ODI4Ni01LjEyJTIwMTAuODI1MTQzLTIzLjI1OTQyOSUyMDguMTE4ODU3LTI1LjgxOTQyOS0yLjYzMzE0M0M2NDMuNTEwODU3JTIwMTE0LjgzNDI4NiUyMDUwOS40NCUyMDI4LjY3MiUyMDQ2MC40MzQyODYlMjAxLjc1NTQyOWMtNy44MjYyODYtNS40MTI1NzEtMjAuNjk5NDI5JTIwMi42MzMxNDMtMjAuNjk5NDI5JTIwMTMuNDU4Mjg1JTIwNy43NTMxNDMlMjAxNDUuNTU0Mjg2LTc5Ljk0NTE0MyUyMDI5My44MTQ4NTctMTc1LjM5NjU3MSUyMDQyMC40OTgyODYtNy43NTMxNDMlMjAxMC43NTItMjMuMjU5NDI5JTIwNS4zMzk0MjktMjUuODE5NDI5LTguMTE4ODU3YTMzOC4xMzk0MjklMjAzMzguMTM5NDI5JTIwMCUyMDAlMjAwLTE4LjA2NjI4Ni05MS42NDhjLTUuMTItMTMuNDU4Mjg2LTIzLjE4NjI4Ni0xMC43NTItMjUuNzQ2Mjg1JTIwMEMxNzQuMDglMjA0MzMuMDA1NzE0JTIwMTAxLjgxNDg1NyUyMDUxNi42MDglMjA4MS4xODg1NzElMjA2MTkuMDA4Yy0zMC45Mzk0MjklMjAxNjEuNjQ1NzE0JTIwMjMuMTg2Mjg2JTIwMjc3LjU3NzE0MyUyMDIzNy4zNDg1NzIlMjA0MDEuNTU0Mjg2eiUyMiUyMGZpbGwlM0QlMjIlMjNGRjQwMUElMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxu5Zue5aSN6YeP5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxLjIzOTI1NzgxMjVlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTI2OSUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMTI0Ljc5NTExMSUyMDEwMjMuNzk2NDYySDIzMS42NzAwODZBMjM2LjcxNDc2OCUyMDIzNi43MTQ3NjglMjAwJTIwMCUyMDElMjAwLjA0Mzc2OSUyMDc4Mi44MDczOTRWMjQxLjE5MjYwNkEyMzYuNzE0NzY4JTIwMjM2LjcxNDc2OCUyMDAlMjAwJTIwMSUyMDIzMS42NzAwODYlMjAwaDgwNi40MTc4MWEyMzYuNzE0NzY4JTIwMjM2LjcxNDc2OCUyMDAlMjAwJTIwMSUyMDIzMS41MjQ1NDglMjAyNDEuMTkyNjA2djQ4My44MDk5NzhhNTMuNTMwNTExJTIwNTMuNTMwNTExJTIwMCUyMDElMjAxLTEwNy4wNjEwMjIlMjAwVjI0MS4xOTI2MDZhMTI5LjA0MzEzMyUyMDEyOS4wNDMxMzMlMjAwJTIwMCUyMDAtMTI0LjQ2MzUyNi0xMzMuODI2Mjc3SDIzMS42NzAwODZBMTI5LjA0MzEzMyUyMDEyOS4wNDMxMzMlMjAwJTIwMCUyMDAlMjAxMDcuMTA0NzkxJTIwMjQxLjE5MjYwNnY1NDEuOTIwMDk1QTEyOS4wNDMxMzMlMjAxMjkuMDQzMTMzJTIwMCUyMDAlMjAwJTIwMjMxLjU2ODMxNyUyMDkxNi45Mzg5NzhoODkzLjEyNTAyNWE1My41MzA1MTElMjA1My41MzA1MTElMjAwJTIwMCUyMDElMjAwJTIwMTA3LjA2MTAyMnolMjIlMjBmaWxsJTNEJTIyJTIzRkY3NTAwJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzgxLjk4Mjk0NiUyMDUxMS44OTgyMzFtLTY0LjUyMTU2NiUyMDBhNjQuNTIxNTY2JTIwNjQuNTIxNTY2JTIwMCUyMDElMjAwJTIwMTI5LjA0MzEzMyUyMDAlMjA2NC41MjE1NjYlMjA2NC41MjE1NjYlMjAwJTIwMSUyMDAtMTI5LjA0MzEzMyUyMDBaJTIyJTIwZmlsbCUzRCUyMiUyMzU3NDFFMyUyMiUyMG9wYWNpdHklM0QlMjIuNyUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTYzMS45Mjc2ODklMjA1MTEuODk4MjMxbS02NC41MjE1NjYlMjAwYTY0LjUyMTU2NiUyMDY0LjUyMTU2NiUyMDAlMjAxJTIwMCUyMDEyOS4wNDMxMzIlMjAwJTIwNjQuNTIxNTY2JTIwNjQuNTIxNTY2JTIwMCUyMDElMjAwLTEyOS4wNDMxMzIlMjAwWiUyMiUyMGZpbGwlM0QlMjIlMjM1NzQxRTMlMjIlMjBvcGFjaXR5JTNEJTIyLjclMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk04ODEuOTc0MjAxJTIwNTExLjg5ODIzMW0tNjQuNTIxNTY3JTIwMGE2NC41MjE1NjYlMjA2NC41MjE1NjYlMjAwJTIwMSUyMDAlMjAxMjkuMDQzMTMzJTIwMCUyMDY0LjUyMTU2NiUyMDY0LjUyMTU2NiUyMDAlMjAxJTIwMC0xMjkuMDQzMTMzJTIwMFolMjIlMjBmaWxsJTNEJTIyJTIzNTc0MUUzJTIyJTIwb3BhY2l0eSUzRCUyMi43JTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcbuaUtuiXj+mHj+Wbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMS4xNjExMzI4MTI1ZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDExODklMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNjMzLjExMDEyMyUyMDk4Ny43MTA4NzdsLTc2LjMwNDMwMS03Ni4zMTc2MDklMjA0NjcuNzEzMTY0LTQ2Ny43NTMwODZjNzYuNjkwMjE0LTc2LjcwMzUyMiUyMDc2LjY5MDIxNC0yMDEuNDk5Nzc5JTIwMC0yNzguMTg5OTk0cy0yMDEuNDU5ODU3LTc2LjY3NjkwNy0yNzguMTg5OTkzJTIwMGwtMTEzLjIxODg3JTIwMTEzLjE3ODk0OEw1NTYuNzkyNTE1JTIwMjAyLjMxMTUyN2wxMTMuMjA1NTYyLTExMy4yMDU1NjJjMTE4Ljc2ODAzMS0xMTguODIxMjYxJTIwMzEyLjA1NzE4LTExOC43OTQ2NDYlMjA0MzAuODI1MjExJTIwMHMxMTguNzgxMzM5JTIwMzEyLjA1NzE4JTIwMCUyMDQzMC44MjUyMTF6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGNzY0MiUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTU5Mi44Njg3MiUyMDEwMjRsLTM2LjE1NjA0OS0zNi4zODIyNzQtNDY3LjYyMDAxMy00NjcuNjMzMzIxYy0xMTguNzgxMzM5LTExOC43NjgwMzEtMTE4Ljc4MTMzOS0zMTIuMDU3MTglMjAwLTQzMC44MjUyMTFzMzEyLjA3MDQ4Ny0xMTguNzk0NjQ2JTIwNDMwLjgyNTIxMSUyMDBsMjE5LjQ2NDY5MSUyMDIxOS40NTEzODQtNzYuMzE3NjA5JTIwNzYuMzE3NjA5LTIxOS40NjQ2OTEtMjE5LjQxMTQ2MmMtNzYuNzE2ODI5LTc2LjY5MDIxNC0yMDEuNDg2NDcyLTc2LjY5MDIxNC0yNzguMTg5OTk0JTIwMHMtNzYuNjkwMjE0JTIwMjAxLjQ5OTc3OSUyMDAlMjAyNzguMTg5OTk0bDUwNC4wMTU1OTUlMjA1MDQuMjE1MjA0eiUyMiUyMGZpbGwlM0QlMjIlMjNGRkFBMDYlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxu5Zu+54mH6YeP5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMDBoMTAyNHYxMDI0SDBWMHolMjIlMjBmaWxsJTNEJTIyJTIzMjAyNDI1JTIyJTIwb3BhY2l0eSUzRCUyMi4wMSUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTk1NS43MzMzMzMlMjAyMzguOTMzMzMzYTE3MC42NjY2NjclMjAxNzAuNjY2NjY3JTIwMCUyMDElMjAwLTM0MS4zMzMzMzMlMjAwJTIwMTcwLjY2NjY2NyUyMDE3MC42NjY2NjclMjAwJTIwMCUyMDAlMjAzNDEuMzMzMzMzJTIwMHolMjBtLTQ3Ny4zNTQ2NjYlMjAxMDMuNzMxMmMtMjYuMjE0NC00NS44NzUyLTkyLjMzMDY2Ny00NS44NzUyLTExOC41NDUwNjclMjAwTDY3Ljg1NzA2NyUyMDg1My42MDY0QzQxLjg0NzQ2NyUyMDg5OS4wNzIlMjA3NC43NTIlMjA5NTUuNzMzMzMzJTIwMTI3LjE0NjY2NyUyMDk1NS43MzMzMzNoNTgzLjkxODkzM2M1Mi40Mjg4JTIwMCUyMDg1LjI2NTA2Ny01Ni42MjcyJTIwNTkuMjU1NDY3LTEwMi4xMjY5MzNsLTI5MS45NDI0LTUxMC45NzZ6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGNzc0NCUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTY5MS42Nzc4NjclMjA1ODEuNTk3ODY3YzI2LjE4MDI2Ny00NS44NzUyJTIwOTIuMzMwNjY3LTQ1Ljg3NTIlMjAxMTguNTQ1MDY2JTIwMGwxNTUuNDA5MDY3JTIwMjcyLjAwODUzM2MyNi4wMDk2JTIwNDUuNDk5NzMzLTYuODI2NjY3JTIwMTAyLjEyNjkzMy01OS4yNTU0NjclMjAxMDIuMTI2OTMzaC0zMTAuODg2NGMtNTIuMzk0NjY3JTIwMC04NS4yNjUwNjctNTYuNjI3Mi01OS4yNTU0NjYtMTAyLjEyNjkzM2wxNTUuNDA5MDY2LTI3Mi4wMDg1MzN6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGQUE0NCUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG7pk77mjqXph4/lm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk01NzMuNDQlMjA2ODYuMDhMNDMyLjEyOCUyMDU4Mi42NTZsNDguMTI4LTY2LjU2JTIwMTA4LjU0NCUyMDc4Ljg0OCUyMDIzNi41NDQtMzI0LjYwOC0xNDQuMzg0LTEwNS40NzItOTQuMjA4JTIwMTMwLjA0OCUyMDMyLjc2OCUyMDIzLjU1Mi00OC4xMjglMjA2Ni41Ni02Ni41Ni00OC4xMjgtOC4xOTItNTcuMzQ0TDYzOC45NzYlMjA4My45NjhsNTcuMzQ0LTkuMjE2JTIwMjA5LjkyJTIwMTUyLjU3NiUyMDkuMjE2JTIwNTcuMzQ0LTI4NC42NzIlMjAzOTIuMTkyeiUyMiUyMGZpbGwlM0QlMjIlMjM0MzdERkYlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0zMjcuNjglMjA5NDkuMjQ4TDExNy43NiUyMDc5Ni42NzJsLTkuMjE2LTU3LjM0NCUyMDI4NC42NzItMzkyLjE5Mkw0NTAuNTYlMjAzMzcuOTJsMTQxLjMxMiUyMDEwMy40MjQtNDguMTI4JTIwNjYuNTYtMTA4LjU0NC03OC44NDgtMjM2LjU0NCUyMDMyNC42MDglMjAxNDQuMzg0JTIwMTA1LjQ3MiUyMDk0LjIwOC0xMzAuMDQ4LTMyLjc2OC0yMy41NTIlMjA0OC4xMjgtNjYuNTYlMjA2Ni41NiUyMDQ4LjEyOCUyMDguMTkyJTIwNTcuMzQ0LTE0Mi4zMzYlMjAxOTUuNTg0eiUyMiUyMGZpbGwlM0QlMjIlMjM2M0Y3REUlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxu5a6Y5pa56LWE5rqQ6aaW6aG15Y+R5biW5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNODc5LjQ3JTIwNTA4LjM1M2MtMjMuMTIzJTIwMC00MS44OTMlMjAxOC45MTktNDEuODkzJTIwNDIuMjc4djMwNS41NDNoLTY4MS41MDh2LTY4OC4zNDloMzIxLjYzMWMyMy4xNDUlMjAwJTIwNDEuOTE1LTE4LjkzOSUyMDQxLjkxNS00Mi4zMDIlMjAwLTIzLjM4LTE4Ljc3LTQyLjMyMy00MS45MTUtNDIuMzIzaC0zNjMuNDgzYy0yMy4xMjMlMjAwLTQxLjg5MyUyMDE4LjkzOS00MS44OTMlMjA0Mi4zMjN2NzcyLjk3NGMwJTIwMjMuMzglMjAxOC43NyUyMDQyLjMyMyUyMDQxLjg5MyUyMDQyLjMyM2g3NjUuMjVjMjMuMTIzJTIwMCUyMDQxLjg3Mi0xOC45MzklMjA0MS44NzItNDIuMzIzdi0zNDcuODY3YzAtMjMuMzU5LTE4Ljc1LTQyLjI3OC00MS44NzItNDIuMjc4TTk0MS41MDMlMjAxMjQuNDk2Yy0xNS4xMjQtMTcuNjk2LTQxLjU3Mi0xOS42NzMtNTkuMDk3LTQuMzk4bC01MDcuMDA2JTIwNDQxLjc5OGMtMTcuNTAzJTIwMTUuMjc0LTE5LjQ1NyUyMDQxLjkzNi00LjM1MyUyMDU5LjYxJTIwOC4yNzklMjA5LjcxNiUyMDE5Ljk2OSUyMDE0LjcxNCUyMDMxLjc0NyUyMDE0LjcxNCUyMDkuNjc1JTIwMCUyMDE5LjQzNi0zLjM5JTIwMjcuMzQ4LTEwLjI5N2w1MDcuMDA2LTQ0MS43NzVjMTcuNTAzLTE1LjI3NCUyMDE5LjQ3Ni00MS45OCUyMDQuMzUzLTU5LjY1M3olMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxu5a6Y5pa56LWE5rqQ6aaW6aG15pS26JeP5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNzc0LjglMjAxMDIuMmwtMTguNiUyMDAuOGMtMjUuNiUyMDEuMi00My4zJTIwMC42LTYyJTIwMC0xOS41LTAuNi0zOS43LTEuMy02OC42JTIwMGwtMTQuNSUyMDAuNy05OC44JTIwODQuOEw0MDkuOSUyMDEwNGwtMTQuMS0wLjZjLTIwLjItMC44LTQzLjctMC40LTY2LjQlMjAwLTIxLjYlMjAwLjQtNDMuOSUyMDAuNy02MS42JTIwMGwtMTguNi0wLjhMOTcuOCUyMDI1Ni40djMwNC40bDMwNC41JTIwMjY4LjYlMjA1OS41LTU5LjUtMjgwLTI0N1YyOTAuOGwxMDEuNC0xMDNjMTUuMyUyMDAuMSUyMDMxLjYtMC4xJTIwNDcuNS0wLjQlMjAxNi4zLTAuMyUyMDMyLjktMC42JTIwNDcuOC0wLjRsMTM1JTIwMTExLjElMjAxMzAuMi0xMTEuN2MxOC4zLTAuNCUyMDMyLjclMjAwJTIwNDcuOCUyMDAuNSUyMDE1JTIwMC41JTIwMzAuNCUyMDElMjA0OS44JTIwMC42TDg0NC4yJTIwMjkxdjIzMi43TDU2My43JTIwNzg2LjhsLTk4JTIwOTglMjA1NC41JTIwNTglMjA0MDgtMzgyLjhWMjU2LjNMNzc0LjglMjAxMDIuMnolMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxu5a6Y5pa56LWE5rqQ6aaW6aG15pCc57Si5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTIuMDE3NzI0JTIwMTUwLjI0Nzk1NiUyMDk2OS45MzQ2NCUyMDE1MC4yNDc5NTZjMTYuODI0MTc3JTIwMCUyMDMwLjU4OTY5Mi0xMy43NjU1MTUlMjAzMC41ODk2OTItMzAuNTg5NjkybDAlMjAwYzAtMTYuODI0MTc3LTEzLjc2NTUxNS0zMC41ODk2OTItMzAuNTg5NjkyLTMwLjU4OTY5Mkw1Mi4wMTc3MjQlMjA4OS4wNjg1NzJjLTE2LjgyNDE3NyUyMDAtMzAuNTg5NjkyJTIwMTMuNzY1NTE1LTMwLjU4OTY5MiUyMDMwLjU4OTY5MmwwJTIwMEMyMS40MjgwMzIlMjAxMzYuNDgyNDQxJTIwMzUuMTkzNTQ3JTIwMTUwLjI0Nzk1NiUyMDUyLjAxNzcyNCUyMDE1MC4yNDc5NTZ6JTIyJTIwZmlsbCUzRCUyMiUyMzI2MjUzNSUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTUyLjAxNzcyNCUyMDM2NC40MjI4NzNsMTgzLjU4MzE3OSUyMDBjMTYuODI0MTc3JTIwMCUyMDMwLjU4OTY5Mi0xMy43NjU1MTUlMjAzMC41ODk2OTItMzAuNTg5NjkybDAlMjAwYzAtMTYuODI0MTc3LTEzLjc2NTUxNS0zMC41ODk2OTItMzAuNTg5NjkyLTMwLjU4OTY5Mkw1Mi4wMTc3MjQlMjAzMDMuMjQzNDg5Yy0xNi44MjQxNzclMjAwLTMwLjU4OTY5MiUyMDEzLjc2NTUxNS0zMC41ODk2OTIlMjAzMC41ODk2OTJsMCUyMDBDMjEuNDI4MDMyJTIwMzUwLjY1NzM1OCUyMDM1LjE5MzU0NyUyMDM2NC40MjI4NzMlMjA1Mi4wMTc3MjQlMjAzNjQuNDIyODczeiUyMiUyMGZpbGwlM0QlMjIlMjMyNjI1MzUlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk01Mi4wMTc3MjQlMjA1NzguNTkxNjUxbDEyMi40MDI3NzElMjAwYzE2LjgyNDE3NyUyMDAlMjAzMC41ODk2OTItMTMuNzY1NTE1JTIwMzAuNTg5NjkyLTMwLjU4OTY5MmwwJTIwMGMwLTE2LjgyNDE3Ny0xMy43NjU1MTUtMzAuNTg5NjkyLTMwLjU4OTY5Mi0zMC41ODk2OTJMNTIuMDE3NzI0JTIwNTE3LjQxMjI2NmMtMTYuODI0MTc3JTIwMC0zMC41ODk2OTIlMjAxMy43NjU1MTUtMzAuNTg5NjkyJTIwMzAuNTg5NjkybDAlMjAwQzIxLjQyODAzMiUyMDU2NC44MjcxNTklMjAzNS4xOTM1NDclMjA1NzguNTkxNjUxJTIwNTIuMDE3NzI0JTIwNTc4LjU5MTY1MXolMjIlMjBmaWxsJTNEJTIyJTIzMjYyNTM1JTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTIuMDE3NzI0JTIwNzYyLjE3ODkyM2wxODMuNTgzMTc5JTIwMGMxNi44MjQxNzclMjAwJTIwMzAuNTg5NjkyLTEzLjc2NTUxNSUyMDMwLjU4OTY5Mi0zMC41ODk2OTJsMCUyMDBjMC0xNi44MjQxNzctMTMuNzY1NTE1LTMwLjU4OTY5Mi0zMC41ODk2OTItMzAuNTg5NjkyTDUyLjAxNzcyNCUyMDcwMC45OTk1MzhjLTE2LjgyNDE3NyUyMDAtMzAuNTg5NjkyJTIwMTMuNzY1NTE1LTMwLjU4OTY5MiUyMDMwLjU4OTY5MmwwJTIwMEMyMS40MjgwMzIlMjA3NDguNDE0NDMxJTIwMzUuMTkzNTQ3JTIwNzYyLjE3ODkyMyUyMDUyLjAxNzcyNCUyMDc2Mi4xNzg5MjN6JTIyJTIwZmlsbCUzRCUyMiUyMzI2MjUzNSUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQ0OS43NzQ3OTclMjA4ODQuNTgyNzE3JTIwNTIuMDE3NzI0JTIwODg0LjU4MjcxN2MtMTYuODI0MTc3JTIwMC0zMC41ODk2OTIlMjAxMy43NjU1MTUtMzAuNTg5NjkyJTIwMzAuNTg5NjkybDAlMjAwYzAlMjAxNi44MjQxNzclMjAxMy43NjU1MTUlMjAzMC41ODk2OTIlMjAzMC41ODk2OTIlMjAzMC41ODk2OTJsMzk3Ljc1NzA3MyUyMDBjMTYuODI0MTc3JTIwMCUyMDMwLjU4OTY5Mi0xMy43NjU1MTUlMjAzMC41ODk2OTItMzAuNTg5NjkybDAlMjAwQzQ4MC4zNjU1MTIlMjA4OTguMzQ4MjMyJTIwNDY2LjU5OTk5NyUyMDg4NC41ODI3MTclMjA0NDkuNzc0Nzk3JTIwODg0LjU4MjcxN3olMjIlMjBmaWxsJTNEJTIyJTIzMjYyNTM1JTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTAwMC4zNDMyMDclMjA4ODQuNzIwODYzbDAuMTgxMTI1LTAuMTgxMTI1TDgyOS41OTMzMTIlMjA3MDUuMTI0NDg2YzQ1LjkzMTA5OS00OS41MDE0MTQlMjA3NC4yMDUwNDktMTE0Ljk4ODkxOCUyMDc0LjIwNTA0OS0xODcuMTUyNDcxJTIwMC0xNTQuMTA3ODY3LTEyOC4wNTc1NjEtMjc5LjA1ODY3LTI4Ni4wNjAxMzEtMjc5LjA1ODY3LTE1Ny45MDUzNTYlMjAwLTI4NS45NjI5MTclMjAxMjQuOTk5OTIyLTI4NS45NjI5MTclMjAyNzkuMDU4NjclMjAwJTIwMTU0LjIwMDk4OCUyMDEyOC4wODEwOTclMjAyNzYuNDQxMDUzJTIwMjg1Ljk2MjkxNyUyMDI3OS4xNTI4MTQlMjA2MS43NDIyMDMlMjAxLjA2MDE0NSUyMDEwMS44MjIwMzctOS41MTM2NzglMjAxMzguMDI1NTg3LTM0Ljk5Mjk3OWwxODMuNTgyMTU1JTIwMTgzLjU4MjE1NSUyMDAuMDUzMjEyLTAuMDUzMjEyYzcuODM0NDMyJTIwOC4wNzM4ODYlMjAxOC43OTQwNDIlMjAxMy4wOTgzMTklMjAzMC45MzI1JTIwMTMuMDk4MzE5JTIwMjMuODA4MjQyJTIwMCUyMDQzLjEwNzc5Ny0xOS4yOTk1NTUlMjA0My4xMDc3OTctNDMuMTA3Nzk3QzEwMTMuNDM5NDglMjA5MDMuNTEyODU4JTIwMTAwOC40MTYwNyUyMDg5Mi41NTQyNzIlMjAxMDAwLjM0MzIwNyUyMDg4NC43MjA4NjN6TTYxOC4wNjQ2NjQlMjA3MzEuNTg3MTg0Yy0xMjYuNzE2MDA3JTIwMC0yMjkuNDY2MTgyLTk1Ljg5NTA0Ny0yMjkuNDY2MTgyLTIxNC4xNzM4OTRzMTAyLjc1MDE3NS0yMTQuMTY5ODAxJTIwMjI5LjQ2NjE4Mi0yMTQuMTY5ODAxYzEyNi43MTQ5ODMlMjAwJTIwMjI5LjQ3MDI3NSUyMDk1Ljg4OTkzMSUyMDIyOS40NzAyNzUlMjAyMTQuMTY5ODAxUzc0NC43Nzg2MjQlMjA3MzEuNTg3MTg0JTIwNjE4LjA2NDY2NCUyMDczMS41ODcxODR6JTIyJTIwZmlsbCUzRCUyMiUyMzI2MjUzNSUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG7lrpjmlrnotYTmupDpppbpobXmnb/lnZflm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0zODEuNDY5JTIwNzAuNjJjLTAuMTM3JTIwMC0wLjExNyUyMDMxMC44NDktMC4xMTclMjAzMTAuODQ5JTIwMC0wLjEzNy0zMTAuODQ5LTAuMTE3LTMxMC44NDktMC4xMTclMjAwLjEzNyUyMDAlMjAwLjExOC0zMTAuODQ5JTIwMC4xMTgtMzEwLjg0OSUyMDAlMjAwLjEzNyUyMDMxMC44NDglMjAwLjExOCUyMDMxMC44NDglMjAwLjExOHpNMCUyMDM4MS40N2MwJTIwMzguODIxJTIwMzEuNTkzJTIwNzAuNTAzJTIwNzAuNTAzJTIwNzAuNTAzSDM4MS40N2MzOC44MjElMjAwJTIwNzAuNTAzLTMxLjU5MiUyMDcwLjUwMy03MC41MDNWNzAuNTAzQzQ1MS45NzIlMjAzMS42ODMlMjA0MjAuMzglMjAwJTIwMzgxLjQ3JTIwMEg3MC41MDNDMzEuNjgzJTIwMCUyMDAlMjAzMS41OTMlMjAwJTIwNzAuNTAzVjM4MS40N3pNOTUzLjQ5NyUyMDcwLjYyMWMtMC4xMzclMjAwLTAuMTE4JTIwMzEwLjg0OC0wLjExOCUyMDMxMC44NDglMjAwLTAuMTM3LTMxMC44NDgtMC4xMTctMzEwLjg0OC0wLjExNyUyMDAuMTM3JTIwMCUyMDAuMTE3LTMxMC44NDklMjAwLjExNy0zMTAuODQ5JTIwMCUyMDAuMTM3JTIwMzEwLjg0OSUyMDAuMTE4JTIwMzEwLjg0OSUyMDAuMTE4eiUyMG0tMzgxLjQ3JTIwMzEwLjg0OGMwJTIwMzguODIxJTIwMzEuNTkzJTIwNzAuNTAzJTIwNzAuNTA0JTIwNzAuNTAzaDMxMC45NjZjMzguODIlMjAwJTIwNzAuNTAzLTMxLjU5MiUyMDcwLjUwMy03MC41MDNWNzAuNTAzQzEwMjQlMjAzMS42ODMlMjA5OTIuNDA3JTIwMCUyMDk1My40OTclMjAwSDY0Mi41M2MtMzguODIxJTIwMC03MC41MDMlMjAzMS41OTMtNzAuNTAzJTIwNzAuNTAzVjM4MS40N3pNMzgxLjQ3JTIwNjQyLjY0OWMtMC4xMzclMjAwLTAuMTE3JTIwMzEwLjg0OC0wLjExNyUyMDMxMC44NDglMjAwLTAuMTM3LTMxMC44NDktMC4xMTgtMzEwLjg0OS0wLjExOCUyMDAuMTM3JTIwMCUyMDAuMTE4LTMxMC44NDglMjAwLjExOC0zMTAuODQ4JTIwMCUyMDAuMTM3JTIwMzEwLjg0OCUyMDAuMTE3JTIwMzEwLjg0OCUyMDAuMTE3ek0wJTIwOTUzLjQ5NkMwJTIwOTkyLjMxNyUyMDMxLjU5MyUyMDEwMjQlMjA3MC41MDMlMjAxMDI0SDM4MS40N2MzOC44MjElMjAwJTIwNzAuNTAzLTMxLjU5MyUyMDcwLjUwMy03MC41MDNWNjQyLjUzYzAtMzguODIxLTMxLjU5Mi03MC41MDMtNzAuNTAzLTcwLjUwM0g3MC41MDNDMzEuNjgzJTIwNTcyLjAyOCUyMDAlMjA2MDMuNjIlMjAwJTIwNjQyLjUzdjMxMC45NjZ6JTIwbTk1My40OTctMzEwLjg0OWMtMC4xMzclMjAwLTAuMTE4JTIwMzEwLjg0OS0wLjExOCUyMDMxMC44NDklMjAwLTAuMTM3LTMxMC44NDgtMC4xMTgtMzEwLjg0OC0wLjExOCUyMDAuMTM3JTIwMCUyMDAuMTE3LTMxMC44NDglMjAwLjExNy0zMTAuODQ4JTIwMCUyMDAuMTM3JTIwMzEwLjg0OSUyMDAuMTE3JTIwMzEwLjg0OSUyMDAuMTE3eiUyMG0tMzgxLjQ3JTIwMzEwLjg0OWMwJTIwMzguODIlMjAzMS41OTMlMjA3MC41MDMlMjA3MC41MDQlMjA3MC41MDNoMzEwLjk2NmMzOC44MiUyMDAlMjA3MC41MDMtMzEuNTkzJTIwNzAuNTAzLTcwLjUwM1Y2NDIuNTNjMC0zOC44MjEtMzEuNTkzLTcwLjUwMy03MC41MDMtNzAuNTAzSDY0Mi41M2MtMzguODIxJTIwMC03MC41MDMlMjAzMS41OTItNzAuNTAzJTIwNzAuNTAzdjMxMC45NjZ6JTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcblxcblxcblxcblxcblxcblxcbmlmKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5rWP6KeI6YeP5Zu+5qCHLnBuZycpKXtcXG5cXG5zYXZlSW1hZ2Uo5rWP6KeI6YeP5Zu+5qCHLCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+a1j+iniOmHj+Wbvuaghy5wbmcnKVxcblxcbn1cXG5pZighZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+WbnuWkjemHj+Wbvuaghy5wbmcnKSl7XFxuXFxuc2F2ZUltYWdlKOWbnuWkjemHj+WbvuaghywnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/lm57lpI3ph4/lm77moIcucG5nJylcXG5cXG59XFxuaWYoIWZpbGVFeGlzdCgnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/mlLbol4/ph4/lm77moIcucG5nJykpe1xcblxcbnNhdmVJbWFnZSjmlLbol4/ph4/lm77moIcsJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5pS26JeP6YeP5Zu+5qCHLnBuZycpXFxuXFxufVxcbmlmKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5Zu+54mH6YeP5Zu+5qCHLnBuZycpKXtcXG5cXG5zYXZlSW1hZ2Uo5Zu+54mH6YeP5Zu+5qCHLCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+WbvueJh+mHj+Wbvuaghy5wbmcnKVxcblxcbn1cXG5pZighZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+mTvuaOpemHj+Wbvuaghy5wbmcnKSl7XFxuXFxuc2F2ZUltYWdlKOmTvuaOpemHj+WbvuaghywnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/pk77mjqXph4/lm77moIcucG5nJylcXG5cXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlvqrnjq/ojrflj5bmlofku7blpLlDSURcIixcInBhdGhcIjpcIuW+queOr+iOt+WPluaWh+S7tuWkuUNJRFwiLFwicnVsZVwiOlwiLy9ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+W+queOr+Wkh+S7vScpKS5ydWxlKVxcblxcbmZvciAodmFyIGkgaW4gc3RvcmFnZTAuZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKSkge1xcblxcblxcblxcblxcblxcbuaWh+S7tuWkueWQjT1zdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpW2ldLmZpbGVOYW1lXFxu5paH5Lu25aS5aWQ9c3RvcmFnZTAuZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKVtpXS5pZFxcbnNob3dMb2FkaW5nKCfmraPlnKjlpIfku706Jyvmlofku7bot6/lvoQpXFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuXFxuXFxu6K+35rGC5Y+Y6YePYSA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZvbGRlcnNcXFwiXFxuICAgICAgICAgICAgICAgIOivt+axguWPmOmHj2IgPSBcXFwiL2Nsb3VkZmlsZS92MS9maWxlc1xcXCJcXG4gICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJcXFwiLFxcXCJzb3J0RmxhZ1xcXCI6XFxcIm5hbWVcXFwiLFxcXCJzb3J0VHlwZVxcXCI6XFxcImFzY1xcXCIsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLlpZCtgXFxcIn1gXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcbmxldCDmlofku7bmlbDnu4Q9W11cXG5cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahiKSB7XFxuICAgICAgICDmlofku7blkI095YiX6KGoYltpXS5maWxlTmFtZVxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqGJbaV0uZmlsZVR5cGVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahiW2ldLmZpbGVTaXplXFxuICAgICAgICBqc29u5pWw5o2uPXtcXFwi5paH5Lu25ZCNXFxcIjrmlofku7blkI0sXFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7bmoLzlvI9cXFwiOuaWh+S7tuagvOW8jyxcXFwi5paH5Lu25aSn5bCPXFxcIjrmlofku7blpKflsI99XFxuICAgICAgICDmlofku7bmlbDnu4RbaV09anNvbuaVsOaNrlxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgbGV0IOaWh+S7tuWkueaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgICAgIOaWh+S7tuWkueaVsOe7hFtpXT3liJfooahhW2ldLmZpbGVOYW1lXFxuICAgIH1cXG4gICAgXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiLOWIl+ihqGEpXFxuXFxu5paH5Lu25aS55YiX6KGoPeWIl+ihqGFcXG5cXG7mlofku7bliJfooag95YiX6KGoYlxcblxcblxcblxcblxcblxcblxcbmRhdGHmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi6Lev5b6EXFxcIjpcXFwiYCvmlofku7bot6/lvoQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7blpLnmlbDnu4QpK2AsXFxcIuaWh+S7tlxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7bmlbDnu4QpK2B9YFxcblxcblxcbuaVtOS9k+aVsOaNri5wdXNoKEpTT04ucGFyc2UoZGF0YeaVsOaNrikpXFxuXFxuXFxuXFxuICBcXG5cXG5cXG5pZijliJfooahhLmxlbmd0aDwxKXtcXG5cXG5jbGVhclZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxuXFxuXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcblxcblxcblxcbmNvbnRpbnVlO1xcbn1lbHNle1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v6I635Y+W5paH5Lu25aS5Q0lEJykpLnJ1bGUpXFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcblxcbn1cXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLop6PmnpDlk4jluIzlgLxcIixcInBhdGhcIjpcIuino+aekOWTiOW4jOWAvFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG7mlbDmja49SlNPTi5wYXJzZShnZXRQYXJhbSgn5pWw5o2uJywgJ+aVsOaNricpKVxcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6XFxcIuKAmOKAmOS4gOmUruino+aekOKAmeKAmVxcXCIsXFxudXJsOiQoXFxcIlxcXCIsIFxcXCLmlrDlu7rkuKrmlofku7blpLlcXFwiKS5pbnB1dCgo5pWw5o2uKSA9PiB7XFxuXFxuLypcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pID0+IHtcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aSvmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG5cXG5cXG5pZD1ge1xcXCLmlofku7ZDSURcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCvmlofku7blkI0rYFxcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcImAr5paH5Lu25qC85byPK2BcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCJgK+aWh+S7tuWkp+WwjytgXFxcIn1gXFxuXFxudXNlcmlkPVxcXCLml6AoQ0lEKVxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5cXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG59LOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pXFxuXFxuXFxuXFxuKi9cXG5cXG5zaG93TG9hZGluZygn5q2j5Zyo6Kej5p6QLeaWh+S7tui2iuWkmui2iuaFoicpXFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7lk4jluIzlgLzmlbDnu4Q9SlNPTi5zdHJpbmdpZnko5pWw5o2uKS5tYXRjaCgvW2EtZjAtOV17NDB9L2lnKVxcblxcbuWTiOW4jOWAvOaVsOe7hOWIhue7hOWAvD1NYXRoLmNlaWwo5ZOI5biM5YC85pWw57uELmxlbmd0aC81MClcXG5cXG7lk4jluIzlgLzmlbDnu4Tlj5jmlofmnKw95ZOI5biM5YC85pWw57uELmpvaW4oJ1xcXCIsXFxcIicpLnRvTG93ZXJDYXNlKClcXG5cXG5cXG7mlbTkvZPmlbDmja49W11cXG7mlbTkvZPmlbDmja7lj5jph489MFxcblxcbmxvZyjlk4jluIzlgLzmlbDnu4TliIbnu4TlgLwpXFxuXFxuZm9yKGk9MDtpPOWTiOW4jOWAvOaVsOe7hOWIhue7hOWAvDtpKyspe1xcblxcblxcbmxvZyhcXFwi5b6q546v5qyh5pWwXFxcIitpKVxcbuivt+axgumTvuaOpT1cXFwiaHR0cDovL3VwbG9hZGFwaTIuc3Rhcml2ZXJwYW4uY29tOjE4MDkwL3YyL2ZpbGUvcmVzdWx0c1xcXCJcXG5cXG7lsI/pvpnkupHnm5jlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJhY2Nlc3NUb2tlblxcXCI6XFxcImAr5bCP6b6Z5LqR55uY5a+G6ZKlK2BcXFwiLFxcXCJmaWxlSGFzaHNcXFwiOltcXFwiYCvlk4jluIzlgLzmlbDnu4Quc2xpY2UoaSo1MCwoaSsxKSo1MC0xPuWTiOW4jOWAvOaVsOe7hC5sZW5ndGg/5ZOI5biM5YC85pWw57uELmxlbmd0aDooaSsxKSo1MC0xKS5qb2luKCdcXFwiLFxcXCInKS50b0xvd2VyQ2FzZSgpK2BcXFwiXX1gXFxuXFxu5ZON5bqU5pWw5o2uPXBvc3Qo6K+35rGC6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9LCB7dGltZW91dDo1MDAwMDB9KVxcblxcbuWTjeW6lOaVsOaNrj1KU09OLnBhcnNlKOWTjeW6lOaVsOaNrikuZGF0YVxcblxcblxcbmZvciAodmFyIGogaW4g5ZON5bqU5pWw5o2uKSB7XFxu5paH5Lu2Q0lEPeWTjeW6lOaVsOaNrltqXS5maWxlQ2lkXFxu5paH5Lu25ZCNPeWTjeW6lOaVsOaNrltqXS5maWxlTmFtZVxcbuaWh+S7tuWkp+Wwjz3lk43lupTmlbDmja5bal0uZmlsZVNpemVcXG5pZijmlofku7ZDSUQubGVuZ3RoPDEpIHtjb250aW51ZTtcXG59ZWxzZXtcXG5cXG5pZijmib7op4bpopHmraPliJkudGVzdCjmlofku7blkI0pKXtcXG7mlofku7bmoLzlvI89XFxcIjNcXFwiXFxufWVsc2UgaWYo5om+6Z+z6aKR5q2j5YiZLnRlc3Qo5paH5Lu25ZCNKSl7XFxu5paH5Lu25qC85byPPVxcXCIyXFxcIlxcbn1lbHNlIGlmKOaJvuWbvueJh+ato+WImS50ZXN0KOaWh+S7tuWQjSkpe1xcbuaWh+S7tuagvOW8jz1cXFwiMVxcXCJcXG59ZWxzZXtcXG7mlofku7bmoLzlvI89XFxcIjVcXFwiXFxufVxcblxcblxcblxcblxcbmlkPXtcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuWQjVxcXCI65paH5Lu25ZCNLFxcXCLmlofku7bmoLzlvI9cXFwiOuaWh+S7tuagvOW8jyxcXFwi5paH5Lu25aSn5bCPXFxcIjrmlofku7blpKflsI99XFxuXFxu5pW05L2T5pWw5o2uW+aVtOS9k+aVsOaNruWPmOmHj109aWRcXG7mlbTkvZPmlbDmja7lj5jph48rK1xcblxcbn1cXG5cXG59XFxuXFxufVxcblxcbmlmKGlucHV0KXtcXG5cXG7mlbTkvZPmlbDmja49e1xcXCLml7bpl7RcXFwiOm5ldyBEYXRlKCkuZ2V0VGltZSgpLFxcXCLnsbvlnotcXFwiOlxcXCLlk4jluIzlgLzop6PmnpBcXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbaW5wdXRdLFxcXCLmlofku7ZcXFwiOltdfSx7XFxcIui3r+W+hFxcXCI6IFxcXCIw4ridXFxcIitpbnB1dCxcXFwi5paH5Lu25aS5XFxcIjogW10sXFxcIuaWh+S7tlxcXCI65pW05L2T5pWw5o2ufV19XFxuXFxuXFxufWVsc2V7XFxuXFxu5pW05L2T5pWw5o2uPXtcXFwi5aSH5Lu95pe26Ze0XFxcIjpuZXcgRGF0ZSgpLmdldFRpbWUoKSxcXFwi57G75Z6LXFxcIjpcXFwi5ZOI5biM5YC86Kej5p6QXFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIuWkh+S7veaXtumXtFxcXCI6bmV3IERhdGUoKS5nZXRUaW1lKCksXFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW10sXFxcIuaWh+S7tlxcXCI65pW05L2T5pWw5o2ufV19XFxuXFxuXFxufVxcblxcblxcblxcblxcbuaVsOaNrj3mlbTkvZPmlbDmja4uZGF0YVxcbuaWh+S7tui3r+W+hD3mlbDmja5bMF0u6Lev5b6EXFxu5paH5Lu25aS55ZCNPVxcXCIwXFxcIlxcbmxvZyhcXFwi5YmN5paH5Lu26Lev5b6EXFxcIivmlofku7bot6/lvoQpXFxubG9nKFxcXCLliY3mlofku7blpLnlkI1cXFwiK+aWh+S7tuWkueWQjSlcXG5cXG5oaWRlTG9hZGluZygpXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFP+Wkh+S7veaVsOaNrj1cXFwiK0pTT04uc3RyaW5naWZ5KOaVsOaNrikrXFxcIibmlofku7bot6/lvoQ9XFxcIivmlofku7bot6/lvoQrXFxcIibmlofku7blpLnlkI09XFxcIivmlofku7blpLnlkI0rXFxcIiZwYWdlVGl0bGU95ZOI5biM5YC86Kej5p6QXFxcIlxcblxcbnJldHVybiAndG9hc3Q6Ly/nu5PmnZ8nXFxuXFxuXFxuXFxuXFxufSzmlbDmja4pLFxcbmNvbF90eXBlOiBcXFwidGV4dF8yXFxcIlxcbn0pO1xcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6XFxcIuKAmOKAmOi9rOWtmOS6keebmOKAmeKAmVxcXCIsXFxudXJsOiQoXFxcIlxcXCIsIFxcXCLmlrDlu7rkuKrmlofku7blpLlcXFwiKS5pbnB1dCgo5pWw5o2uKSA9PiB7XFxuXFxuXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOino+aekC3mlofku7botorlpJrotormhaInKVxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5ZOI5biM5YC85pWw57uEPUpTT04uc3RyaW5naWZ5KOaVsOaNrikubWF0Y2goL1thLWYwLTldezQwfS9pZylcXG5cXG7lk4jluIzlgLzmlbDnu4TliIbnu4TlgLw9TWF0aC5jZWlsKOWTiOW4jOWAvOaVsOe7hC5sZW5ndGgvNTApXFxuXFxu5ZOI5biM5YC85pWw57uE5Y+Y5paH5pysPeWTiOW4jOWAvOaVsOe7hC5qb2luKCdcXFwiLFxcXCInKS50b0xvd2VyQ2FzZSgpXFxuXFxuXFxu5pW05L2T5pWw5o2uPVtdXFxu5pW05L2T5pWw5o2u5Y+Y6YePPTBcXG5cXG5sb2co5ZOI5biM5YC85pWw57uE5YiG57uE5YC8KVxcblxcbmZvcihpPTA7aTzlk4jluIzlgLzmlbDnu4TliIbnu4TlgLw7aSsrKXtcXG5cXG5cXG5sb2coXFxcIuW+queOr+asoeaVsFxcXCIraSlcXG7or7fmsYLpk77mjqU9XFxcImh0dHA6Ly91cGxvYWRhcGkyLnN0YXJpdmVycGFuLmNvbToxODA5MC92Mi9maWxlL3Jlc3VsdHNcXFwiXFxuXFxu5bCP6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiYWNjZXNzVG9rZW5cXFwiOlxcXCJgK+Wwj+m+meS6keebmOWvhumSpStgXFxcIixcXFwiZmlsZUhhc2hzXFxcIjpbXFxcImAr5ZOI5biM5YC85pWw57uELnNsaWNlKGkqNTAsKGkrMSkqNTAtMT7lk4jluIzlgLzmlbDnu4QubGVuZ3RoP+WTiOW4jOWAvOaVsOe7hC5sZW5ndGg6KGkrMSkqNTAtMSkuam9pbignXFxcIixcXFwiJykudG9Mb3dlckNhc2UoKStgXFxcIl19YFxcblxcbuWTjeW6lOaVsOaNrj1wb3N0KOivt+axgumTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSwge3RpbWVvdXQ6NTAwMDAwfSlcXG5cXG7lk43lupTmlbDmja49SlNPTi5wYXJzZSjlk43lupTmlbDmja4pLmRhdGFcXG5cXG5cXG5mb3IgKHZhciBqIGluIOWTjeW6lOaVsOaNrikge1xcbuaWh+S7tkNJRD3lk43lupTmlbDmja5bal0uZmlsZUNpZFxcbuaWh+S7tuWQjT3lk43lupTmlbDmja5bal0uZmlsZU5hbWVcXG7mlofku7blpKflsI895ZON5bqU5pWw5o2uW2pdLmZpbGVTaXplXFxuaWYo5paH5Lu2Q0lELmxlbmd0aDwxKSB7Y29udGludWU7XFxufWVsc2V7XFxuXFxuaWYo5om+6KeG6aKR5q2j5YiZLnRlc3Qo5paH5Lu25ZCNKSl7XFxu5paH5Lu25qC85byPPVxcXCIzXFxcIlxcbn1lbHNlIGlmKOaJvumfs+mikeato+WImS50ZXN0KOaWh+S7tuWQjSkpe1xcbuaWh+S7tuagvOW8jz1cXFwiMlxcXCJcXG59ZWxzZSBpZijmib7lm77niYfmraPliJkudGVzdCjmlofku7blkI0pKXtcXG7mlofku7bmoLzlvI89XFxcIjFcXFwiXFxufWVsc2V7XFxu5paH5Lu25qC85byPPVxcXCI1XFxcIlxcbn1cXG5cXG5cXG5cXG5cXG5pZD17XFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu25qC85byPXFxcIjrmlofku7bmoLzlvI8sXFxcIuaWh+S7tuWkp+Wwj1xcXCI65paH5Lu25aSn5bCPfVxcblxcbuaVtOS9k+aVsOaNrlvmlbTkvZPmlbDmja7lj5jph49dPWlkXFxu5pW05L2T5pWw5o2u5Y+Y6YePKytcXG5cXG59XFxuXFxufVxcblxcbn1cXG5cXG5cXG7mlbDmja49e1xcXCLmlofku7blpLnlkI1cXFwiOmlucHV0LFxcXCJkYXRhXFxcIjrmlbTkvZPmlbDmja59XFxuXFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu9PeaVsOaNrlxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG7mlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5pZD1cXFwiXFxcIlxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuLy9sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSlcXG5cXG5cXG5cXG5cXG5cXG5cXG5pZihpbnB1dCl7XFxuXFxu5pW05L2T5pWw5o2uPXtcXFwi5pe26Ze0XFxcIjpuZXcgRGF0ZSgpLmdldFRpbWUoKSxcXFwi57G75Z6LXFxcIjpcXFwi5ZOI5biM5YC86Kej5p6QXFxcIixcXFwiZGF0YVxcXCI6IFt7XFxcIui3r+W+hFxcXCI6IFxcXCIwXFxcIixcXFwi5paH5Lu25aS5XFxcIjogW2lucHV0XSxcXFwi5paH5Lu2XFxcIjpbXX0se1xcXCLot6/lvoRcXFwiOiBcXFwiMOK4nVxcXCIraW5wdXQsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOuaVtOS9k+aVsOaNrn1dfVxcblxcblxcbn1lbHNle1xcblxcbuaVtOS9k+aVsOaNrj17XFxcIuWkh+S7veaXtumXtFxcXCI6bmV3IERhdGUoKS5nZXRUaW1lKCksXFxcIuexu+Wei1xcXCI6XFxcIuWTiOW4jOWAvOino+aekFxcXCIsXFxcImRhdGFcXFwiOiBbe1xcXCLlpIfku73ml7bpl7RcXFwiOm5ldyBEYXRlKCkuZ2V0VGltZSgpLFxcXCLot6/lvoRcXFwiOiBcXFwiMFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOuaVtOS9k+aVsOaNrn1dfVxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG7mlbDmja495pW05L2T5pWw5o2uLmRhdGFcXG7mlofku7bot6/lvoQ95pWw5o2uWzBdLui3r+W+hFxcbuaWh+S7tuWkueWQjT1cXFwiMFxcXCJcXG5sb2coXFxcIuWJjeaWh+S7tui3r+W+hFxcXCIr5paH5Lu26Lev5b6EKVxcbmxvZyhcXFwi5YmN5paH5Lu25aS55ZCNXFxcIivmlofku7blpLnlkI0pXFxuXFxuaGlkZUxvYWRpbmcoKVxcblxcbnJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+Wkh+S7veivpuaDhT/lpIfku73mlbDmja49XFxcIitKU09OLnN0cmluZ2lmeSjmlbDmja4pK1xcXCIm5paH5Lu26Lev5b6EPVxcXCIr5paH5Lu26Lev5b6EK1xcXCIm5paH5Lu25aS55ZCNPVxcXCIr5paH5Lu25aS55ZCNK1xcXCImcGFnZVRpdGxlPeWTiOW4jOWAvOino+aekFxcXCJcXG5cXG5yZXR1cm4gJ3RvYXN0Oi8v57uT5p2fJ1xcblxcblxcblxcblxcbn0s5pWw5o2uKSxcXG5jb2xfdHlwZTogXFxcInRleHRfMlxcXCJcXG59KTtcXG5cXG5cXG5cXG5cXG5pZijmlbDmja4uaW5jbHVkZXMoXFxcIjExNTovL1xcXCIpPT1mYWxzZSkg5pWw5o2u5YiX6KGoPeaVsOaNri5tYXRjaCgvW2EtZjAtOV17NDB9L2lnKVxcbmVsc2Ug5pWw5o2u5YiX6KGoPeaVsOaNri5zcGxpdChcXFwiXFxcXG5cXFwiKVxcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g5pWw5o2u5YiX6KGoKSB7XFxuXFxu5a2Q5pWw5o2uPeaVsOaNruWIl+ihqFtpXVxcbmlmKOWtkOaVsOaNri5sZW5ndGg+MClcXG5kLnB1c2goe1xcbnRpdGxlOuWtkOaVsOaNrixcXG51cmw6JCgnJykubGF6eVJ1bGUoKOWtkOaVsOaNrikgPT4ge1xcblxcbuWTiOW4jOWAvOaVsOe7hD3lrZDmlbDmja4ubWF0Y2goL1thLWYwLTldezQwfS9pZykuam9pbignXFxcIixcXFwiJykudG9Mb3dlckNhc2UoKVxcblxcbuivt+axgumTvuaOpT1cXFwiaHR0cDovL3VwbG9hZGFwaTIuc3Rhcml2ZXJwYW4uY29tOjE4MDkwL3YyL2ZpbGUvcmVzdWx0c1xcXCJcXG5cXG7lsI/pvpnkupHnm5jlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJhY2Nlc3NUb2tlblxcXCI6XFxcImAr5bCP6b6Z5LqR55uY5a+G6ZKlK2BcXFwiLFxcXCJmaWxlSGFzaHNcXFwiOltcXFwiYCvlk4jluIzlgLzmlbDnu4QrYFxcXCJdfWBcXG5cXG7lk43lupTmlbDmja49cG9zdCjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5ZON5bqU5pWw5o2uPUpTT04ucGFyc2Uo5ZON5bqU5pWw5o2uKS5kYXRhXFxuXFxuZm9yICh2YXIgaSBpbiDlk43lupTmlbDmja4pIHtcXG7mlofku7ZDSUQ95ZON5bqU5pWw5o2uW2ldLmZpbGVDaWRcXG7mlofku7blkI095ZON5bqU5pWw5o2uW2ldLmZpbGVOYW1lXFxu5paH5Lu25aSn5bCPPeWTjeW6lOaVsOaNrltpXS5maWxlU2l6ZVxcbuaWh+S7tuexu+Weiz3lk43lupTmlbDmja5baV0udXBsb2FkU3RhdGVcXG5pZijmlofku7ZDSUQubGVuZ3RoPDEpIGNvbnRpbnVlO1xcbmVsc2UgYnJlYWs7XFxuXFxufVxcblxcbmlmKOaWh+S7tkNJRC5sZW5ndGg8MSkgcmV0dXJuIFxcXCJ0b2FzdDovL+ivpeaWh+S7tuayoeS6uuS4iuS8oFxcXCJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbnJldHVybiDmlofku7ZDSUQrXFxcIiYmXFxcIivmlofku7blkI0rQ0lE6ZO+5o6l6Kej5p6QXFxuXFxuXFxuXFxuXFxufSzlrZDmlbDmja4pLFxcbmNvbF90eXBlOiBcXFwidGV4dF8xXFxcIlxcbn0pO1xcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9XSIsImljb24iOiJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS93ZWIvc3RhdGljL2xvZ28uNWIxYzRjNGEucG5nIiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment