Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@GithubApp@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6ImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0IiwidGl0bGUiOiJHaXRodWJBcHAiLCJhdXRob3IiOiJBcmllcyIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjEsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbnZhciBkID0gW11cblxudmFyIOabtOaWsCA9IDI0IC8vKOWwj+aXtinmj5DphpLmo4DmtYvmm7TmlrDpl7TpmpTml7bpl7RcbnZhciDpl7TpmpQgPSBjb25maWcu6Ze06ZqUXG5cbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5re75YqgJywge30pKS5ydWxlKVxuXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2RhdGEnLCB7fSkpLnJ1bGUpXG5cbi8vIOiuvue9ruWNleWHu+aTjeS9nOaYr+i/m+WFpeS6jOe6p+mhtemdoui/mOaYr+aOkuW6j1xudmFyIGNsaWNrX2FjdGlvbiA9IGdldE15VmFyKCdjbGlja19hY3Rpb24nLCAnY2xpY2snKVxuXG5pZiAo6Ze06ZqUID49IDggKXtcbnZhciB1cGRhdGU7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL3VwbG9hZCcsIHt9KSkucnVsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB5ZGF0YSA9IGZldGNoKFwiaHR0cHM6Ly9pZ2R1eC50b3AvfkdpdGh1YkFwcDBcIix7dGltZW91dDoyMDIzfSlcbiAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlID0gIGJhdGNodXBsb2FkKHlkYXRhLCAnR2l0aHViQXBwJylcbnZhciByPSQucmVxdWlyZShcInB1dFwiKVxuZXZhbFByaXZhdGVKUygncTdKcVhyZUhaZlVYWHMzNkViQXh5U2tleE9EWWp6a083Nkh1aHJ6RldHVW5UNE9TMnc2ZjFyanY2TE5Ud2RvbGxvRDRBc1BVbzlVUUpIUHdLYzAzcUE9PScpXG5yLnB1dChwdXR1cmwse1xuICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0tLSR7Ym91bmRhcnl9XCJcbiAgICB9XG59LCB7XG4gICAgYzogdXBkYXRlLFxufSlcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7fVxufVxuXG5kLnB1c2goe1xuICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgIHRpdGxlOiAn8J+NsycsXG4gICAgZGVzYzogJ+aQnOe0okFwcCcsXG4gICAgdXJsOiAncHV0TXlWYXIoXCJmaWx0ZXJBcHBXb3JkXCIsIGlucHV0KTsgcmVmcmVzaFBhZ2UoKTtcImhpa2VyOi8vZW1wdHlcIicsXG59KVxuXG5mdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycjEsIGFycjIpIHtcbiAgICBsZXQgZGlmZmVyZW50SW5kaWNlcyA9IFtdXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghYXJyMS5pbmNsdWRlcyhhcnIyW2ldKSkge1xuICAgICAgICAgICAgZGlmZmVyZW50SW5kaWNlcy5wdXNoKGkpXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRpZmZlcmVudEluZGljZXNcbn1cblxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpIHx8ICdbXScpXG4vL2xvZyhkYXRhKVxudmFyIHZlcnNpb24gPSBnZXRJdGVtKCd2Jykuc3BsaXQoJ/CflKUnKVxudmFyIGFwcHZzID0gW11cblxuaWYgKE1ZX1BBR0UgPT0gMSkge1xuICAgIGQucHVzaChcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAgICAg6Ze06ZqUIDwg5pu05pawID8gJ+KAnOKAnOKAneKAnScgKyAnXFx04pqZIOajgOa1i+abtOaWsCDimpknLmJvbGQoKSA6ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmo4DmtYvmm7TmlrAg4pqZJy5ib2xkKCkuZm9udGNvbG9yKCcjRkYwMEZGJyksXG4gICAgICAgICAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9pY29uX3NlYXJjaDYnLFxuICAgICAgICAgICAgY29sX3R5cGU6ICdpY29uXzJfcm91bmQnLFxuICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICdoaWtlcjovL2VtcHR5JyArXG4gICAgICAgICAgICAgICAgJCgnJykubGF6eVJ1bGUoXG4gICAgICAgICAgICAgICAgICAgIChkYXRhLCB2ZXJzaW9uLCBjb21wYXJlQXJyYXlzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVybHMgPSBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBVcmxzID0gZGF0YS5tYXAoKGkpID0+IGkuc3BsaXQoJ/CflKUnKVsxXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcmxzLmZvckVhY2goKHUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJscy5wdXNoKHsgdXJsOiB1IH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdnMgPSBiZih1cmxzKS5tYXAoKGgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGRmaChoLCAnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmaDImJlRleHQnKVxuICB9IGNhdGNoIChlKSB7XG4gICAgXG4gICAgcmV0dXJuIHBkZmgoaCwgJ2JvZHkmJiNyZXBvLWNvbnRlbnQtcGpheC1jb250YWluZXImJmgyJiZUZXh0JylcbiAgICAgICBcbiAgfVxufSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSBjb21wYXJlQXJyYXlzKHZlcnNpb24sIHZzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzID0gci5qb2luKCfwn5SlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IHZzLmpvaW4oJ/CflKUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2LmluY2x1ZGVzKCfwn5Sl8J+UpScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuICd0b2FzdDovL+ajgOa1i+Wksei0pe+8jOivt+mHjeivlSdcbiAgICAvLyDmo4DmtYvlpLHotKXvvIzlrprkvY3lpLHotKVhcHDvvIzojrflj5ZhcHDnmoTlkI3lrZflkozkvY3nva5cbiAgICB2YXIgZiA9IFtdXG4gICAgdnMubWFwKChlbGUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChlbGUgPT0gXCJcIikge1xuICAgICAgICAgICAgZi5wdXNoKGRhdGFbaW5kZXhdLnNwbGl0KFwi8J+UpVwiKVswXSArIGAoJHtpbmRleCArIDF9KWApO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gdG9hc3Tmj5DnpLrmnInlk6rkupthcHAo5bim5L2N572uKeajgOa1i+Wksei0peS6hlxuICAgIGYgPSBmLmpvaW4oXCIsIFwiKTtcbiAgICByZXR1cm4gXCJ0b2FzdDovL+ajgOa1i+Wksei0pTog44CQXCIgKyBmICsgXCLjgJFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyc2lvbi5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCd2JywgdilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WIneWni+eJiOacrOWPt+aIkOWKnydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3MnLCBzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgndicsIHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mo4DmtYvmnIknICsgci5sZW5ndGggKyAn5Liq5pu05pawfidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ayoeacieaVsOaNrn4nXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgIGNvbXBhcmVBcnJheXNcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAnXFx04pqZIOabtOWkmuWKn+iDvSDimpknLmJvbGQoKSxcbiAgICAgICAgICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2ljb25fbWVudTYnLFxuICAgICAgICAgICAgY29sX3R5cGU6ICdpY29uXzJfcm91bmQnLFxuICAgICAgICAgICAgdXJsOiAkKFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgJ+WvvOWFpeWIhuS6q+aVsOaNricsXG4gICAgICAgICAgICAgICAgICAgICfliIbkuqvljp/lp4vmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5YiG5Lqr5LqR5Ymq6LS05p2/JyxcbiAgICAgICAgICAgICAgICAgICAgJ+WIhuS6q+S6keWPo+S7pCcsXG4gICAgICAgICAgICAgICAgICAgICfmi4nlj5bimqDvuI/kupHmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5ZCI5bm25pys5Zyw5ZKM5LqRJyxcbiAgICAgICAgICAgICAgICAgICAgJ+aBouWkjem7mOiupOaVsOaNricsXG4gICAgICAgICAgICAgICAgICAgICfmuIXnqbrmnKzlnLDmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn57yW6L6R6L+c56iL5pWw5o2uJyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICkuc2VsZWN0KChtZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSAn5a+85YWl5YiG5Lqr5pWw5o2uJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnJywgJ+aUr+aMgeWOn+Wni+aVsOaNruWSjOS6keWJqui0tOadv+WIhuS6qycpLmlucHV0KChydWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2JhdGNoSW0/cnVsZT0nICsgcnVsZSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3RhcnRzV2l0aCgnR2l0aHViQXBw5YiG5LqrIyMnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0ID0gYmFzZTY0RGVjb2RlKHBhcnNlUGFzdGUoaW5wdXQuc3BsaXQoJyMjXFxuJylbMV0pKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5zdGFydHNXaXRoKCdHaXRodWJBcHDliIbkuqssJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGJhc2U2NERlY29kZShwYXJzZVBhc3RlKGlucHV0LnNwbGl0KCdcXG4nKVsxXS5zcGxpdCgnQCcpWzBdKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmF0Y2hJbXBvcnQoaW5wdXQsIHJ1bGUpXG4gICAgICAgICAgICAgICAgICAgIH0sICdHaXRodWJBcHAnKVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+WQiOW5tuacrOWcsOWSjOS6kScpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYmF0Y2hJbScsIHt9KSkucnVsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB5ZGF0YSA9IGZldGNoKFwiaHR0cHM6Ly9pZ2R1eC50b3AvfkdpdGh1YkFwcDBcIix7dGltZW91dDoyMDIzfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXRjaEltcG9ydCh5ZGF0YSwgJ0dpdGh1YkFwcCcpXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+iOt+WPluWksei0pe+8jOivt+mHjeivlSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+aLieWPluKaoO+4j+S6keaVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2RhdGEnLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBKU09OLnBhcnNlKGZldGNoKFwiaHR0cHM6Ly9pZ2R1eC50b3AvfkdpdGh1YkFwcDBcIix7dGltZW91dDoyMDIzfSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkoeWRhdGEpKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+iOt+WPluWksei0pe+8jOivt+mHjeivlSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+aBouWkjem7mOiupOaVsOaNricpIHtcbi8vZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxud3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KG1kYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgIH1lbHNlIGlmIChpbnB1dCA9PSAn5riF56m65pys5Zyw5pWw5o2uJykge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgJycpXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSAn57yW6L6R6L+c56iL5pWw5o2uJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnJywgJ+WvhueggVxcbuS4jeefpemBk+ivt+eVmeepuicpLmlucHV0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnd2ViOi8vaHR0cHM6Ly9pZ2R1eC50b3AvfkdpdGh1YkFwcDA6JyArIGlucHV0XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJ+ehruWumuWvvOWHuu+8nycpLmNvbmZpcm0oKHR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpIHx8ICdbXScpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSAn5YiG5Lqr5LqR5Ymq6LS05p2/Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gJ0dpdGh1YkFwcOWIhuS6qyMjXFxuJyArIHNoYXJlUGFzdGUoYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGNvbmZpZykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICfliIbkuqvkupHlj6Pku6QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnR2l0aHViQXBw5YiG5LqrLOWkjeWItuWQjuaJk+W8gOi9r+S7tuWNs+WPr+WvvOWFpVxcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZVBhc3RlKGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShjb25maWcpKSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQGltcG9ydD1qczpldmFsKEpTT04ucGFyc2UoZmV0Y2goXCJoaWtlcjovL3BhZ2UvY2xvdWQ/cnVsZT1HaXRodWJBcHBcIikpLnJ1bGUpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZylcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnY29weTovLycgKyBkYXRhXG4gICAgICAgICAgICAgICAgICAgIH0sIGlucHV0KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sbWRhdGEpLFxuICAgICAgICB9XG4gICAgKVxufVxuXG5kLnB1c2goe1xuICAgIGNvbF90eXBlOiAnYmlnX2JsYW5rX2Jsb2NrJyxcbn0pXG5cbnZhciBzcyA9IGdldEl0ZW0oJ3MnKS5zcGxpdCgn8J+UpScpXG5mb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZmlsdGVyQXBwV29yZCA9IGdldE15VmFyKCdmaWx0ZXJBcHBXb3JkJywgJycpXG4gICAgdmFyIEFwcCA9IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVswXVxuICAgIHZhciBVcmxzID0gZGF0YVtpXS5zcGxpdCgn8J+UpScpWzFdXG4gICAgdmFyIEltZyA9IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVsyXVxuXG5hcHB2cy5wdXNoKEFwcCsn77ya44CQJyt2ZXJzaW9uW2ldKyfjgJEnKVxuXG4gICAgaWYgKEFwcC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyQXBwV29yZC50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xuICAgICAgICBjb250aW51ZVxuICAgIH1cbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogc3MuaW5kZXhPZihpLnRvU3RyaW5nKCkpID09ICctMScgPyBBcHAgOiAn4oCc4oCc4oCd4oCdJyArIEFwcC5mb250Y29sb3IoJyNGRjAwRkYnKSxcbiAgICAgICAgZGVzYzogaSArIDEsXG4gICAgICAgIGltZzogSW1nLFxuICAgICAgICAvLyB1cmw6IFVybHMsXG4gICAgICAgIC8vIHVybDogXCJ0b2FzdDovL+WHhuWkh+aOkuW6j+aLiVwiLFxuXHRcdC8vIOWNleWHu+aTjeS9nDog6L+U5ZuedXJsc++8jFxuXHRcdC8vIOaOkuW6j+aTjeS9nDog5qC55o2u6I635Y+W55qE56e75YqoQXBw5L2N572ubW92ZV9pbmRleOWSjOeCueWHu+imgeaUvue9ruS9jee9rnJlcGxhY2VfaW5kZXjvvIzov5vooYzlr7lHaXRodWJBcHAudHh055qE5YaF5a656L+b6KGM6YeN5paw5o6S5bqP5bm26YeN5paw5YaZ5ZueXG4gICAgICAgIHVybDpcbiAgICAgICAgICAgIGNsaWNrX2FjdGlvbiA9PSAnY2xpY2snXG4gICAgICAgICAgICAgICAgPyAoVXJscy5lbmRzV2l0aCgndGFncycpPyBcIndlYjovL1wiICsgVXJscyA6IFVybHMpXG4gICAgICAgICAgICAgICAgOiAkKCkubGF6eVJ1bGUoKHJlcGxhY2VfaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbW92ZV9pbmRleCA9IGdldE15VmFyKCdtb3ZlX2luZGV4JywgMClcbiAgICAgICAgICAgICAgICAgICAgIC8vICQubG9nKCfnp7vliqjnmoTntKLlvJXkuLo6ICcgKyBtb3ZlX2luZGV4KVxuICAgICAgICAgICAgICAgICAgICAgLy8gJC5sb2coJ+abv+aNoueahOS9jee9ruS4ujogJyArIHJlcGxhY2VfaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JykpXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGNvbmZpZy5zcGxpY2UobW92ZV9pbmRleCwgMSlbMF1cbiAgICAgICAgICAgICAgICAgICAgICBjb25maWcuc3BsaWNlKHJlcGxhY2VfaW5kZXgsIDAsIGVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpXG4gICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+aOkuW6j+WujOavlSdcbiAgICAgICAgICAgICAgICAgIH0sIGkpLFxuICAgICAgICBjb2xfdHlwZTogJ2ljb25fNF9jYXJkJyxcbiAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgIHNzOiBzcyxcbiAgICAgICAgICAgIGk6IGksXG4gICAgICAgICAgICBsb25nQ2xpY2s6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnIOe8liDovpEgJyxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0YSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKCdoaWtlcjovL2VtcHR5JykucnVsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSgn57yW6L6RR2l0aHViQXBwJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5ZCN56ewJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+i+k+WFpUFwcOWQjeWtlycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ25hJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCduYScsaW5wdXQpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Zyw5Z2AJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+i+k+WFpWdpdGh1YiByZWxlYXNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3JlbGVhc2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFwicHV0TXlWYXIoJ3JlbGVhc2UnLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WbvuaghycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaXlm77moIflnLDlnYAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdpY28nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVsyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFwicHV0TXlWYXIoJ2ljbycsaW5wdXQpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArICfnoa7orqTkv67mlLknLmZvbnRjb2xvcignI0ZGMDBGRicpLmJpZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0YSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRNeVZhcignbmEnKSA9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5ZCN5a2X5LiN6IO95Li656m6fidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcigncmVsZWFzZScpID09ICcnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEvXmh0dHBzXFw6XFwvXFwvZ2l0aHViXFwuY29tXFwvLio/XFwvKHJlbGVhc2VzfHRhZ3MpLy50ZXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTlnLDlnYB+J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCduYScsICcnKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn8J+UpScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2UnLCAnJykudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn8J+UpScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ2ljbycsICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2ldID0gaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrKHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip9+J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJyDnp7sg5L2NICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIG1vdmVfaW5kZXgpID0+IHtcblx0XHRcdFx0XHRcdFx0Ly8g6K6+572u5Y2V5Ye75Yqo5L2c5Li65o6S5bqP77yM6I635Y+W6KaB56e75YqoQXBw55qE5L2N572ubW92ZV9pbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdjbGlja19hY3Rpb24nLCAnbW92ZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ21vdmVfaW5kZXgnLCBtb3ZlX2luZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiAkKCcnLCAn6K+36L6T5YWl56e75Yqo5Yiw56ys5Yeg5L2NXFxuMeS4uue9rumhtiwnK2RhdGEubGVuZ3RoKyfkuLrnva7lupUnKS5pbnB1dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHZhciB0ZW1wID0gZGF0YVtpXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKGlucHV0IC0gMSA8IGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpbnB1dCAtIDEsIDAsIHRlbXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgZGF0YS5zcGxpY2UoaSArIDEsIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGlucHV0LCAwLCB0ZW1wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGksIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB3cml0ZUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v56e75L2N5oiQ5YqffidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJyDliKAg6ZmkICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNwbGljZShpLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShkYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg5re7IOWKoCAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICjmt7vliqAsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknICsg5re75YqgXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAg5re75YqgLFxuICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJyAnICsgKGkgKyAxKSArICcgJyxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKGRhdGEsdmVyc2lvbixpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YWkgPSBKU09OLnN0cmluZ2lmeShbZGF0YVtpXV0pXG4gICAgICAgICAgICAgICAgICAgICAgICB0b2FzdCgn54mI5pys5Y+377yaJyArIHZlcnNpb25baV0pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJjb3B5Oi8vXCIgKyBkYXRhaVxuICAgICAgICAgICAgICAgICAgICB9LGRhdGEsdmVyc2lvbixpKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICB9KVxufVxuXG5kLnB1c2goe1xuICAgIHRpdGxlOiAn5re75YqgJyxcbiAgICBpbWc6ICdodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUtXaFIucG5nJyxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyArIOa3u+WKoCxcbiAgICBjb2xfdHlwZTogJ2ljb25fNF9jYXJkJyxcbiAgICBleHRyYToge1xuICAgICAgICBpOiBkYXRhLmxlbmd0aCxcbiAgICAgICAgbG9uZ0NsaWNrOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICflubjov5Dml6UnLFxuICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWIgPSAxICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMzEpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kvaDnmoTlubjov5Dml6XmmK/jgJAnICsgbnVtYiArICfjgJHml6UnXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgIH0sXG59KVxuXG4gICAgICAvL2xvZyhhcHB2cy5qb2luKCdcXG4nKSlcblxuc2V0UmVzdWx0KGQpIiwic2VhcmNoX3VybCI6IiIsImdyb3VwIjoi4pyoIiwic2VhcmNoRmluZCI6IiIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoianM6XG5hZGRMaXN0ZW5lcihcIm9uQ2xvc2VcIiwgJC50b1N0cmluZygoKSA9PiB7XG4gICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG59KSk7XG52YXIgZCA9IFtdXG52YXIgaHRtbCA9IGZldGNoKE1ZX1VSTClcblxudmFyIHNzID0gTVlfUEFSQU1TLnNzXG52YXIgaSA9IE1ZX1BBUkFNUy5pXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHNzLmluZGV4T2YoaS50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgICAgICBpZihpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNzLmxlbmd0aDwxKVxuICAgICAgICAgICAgICAgICAgICAgICB7dmFyIHMgPSAnJ31lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IHNzLmpvaW4oJ/CflKUnKX0gICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCdzJywgcylcbiAgICAgICAgICAgICAgICAgICAgIH1cblxudmFyIGF1dGhvciA9IHBkZmgoaHRtbCwnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmLm1iLW1kLTImJlRleHQnKVxudmFyIGltZyA9IHBkZmgoaHRtbCwnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmLm1iLW1kLTImJmltZyYmc3JjJylcbnZhciB2ZXJzaW9uID0gcGRmaChodG1sLCdib2R5JiZkaXZbZGF0YS1ocGNdJiZzZWN0aW9uJiZoMiYmVGV4dCcpXG5kLnB1c2goe1xuICAgIHRpdGxlOiBhdXRob3IsXG4gICAgZGVzYzogJ0xhc3TvvJonICsgdmVyc2lvbi5mb250Y29sb3IoJyNGRjY2OTknKS5iaWcoKSArICdcXHRcXHRcXHRcXHQnLFxuICAgIGltZzogaW1nLFxuICAgIHVybDogTVlfVVJMLFxuICAgIGNvbF90eXBlOiAnYXZhdGFyJ1xufSlcblxudmFyIGNvbnRlbnQgPSBwZGZoKGh0bWwsIFwiYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmLmNvbC1tZC05JiZkaXZbZGF0YS1wamF4PXRydWVdJiZUZXh0XCIpO1xuZC5wdXNoKHtcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyBjb250ZW50LmZvbnRjb2xvcignIzQ1NTVCNicpLnNtYWxsKCksXG4gICAgZGVzYzogJycsXG4gICAgcGljX3VybDogJycsXG4gICAgdXJsOiBNWV9VUkwgKyAkKCcnKS5ydWxlKChodG1sKT0+e1xuICAgICAgICAgICAgICB2YXIgZCA9IFtdXG4gICAgICAgICAgICAgIHZhciBjb250ZW50ID0gcGRmaChodG1sLCBcImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5jb2wtbWQtOSYmZGl2W2RhdGEtcGpheD10cnVlXSYmSHRtbFwiKS5yZXBsYWNlKC88XFxzKig/IShsaXxwKVxccypcXC8/KVtePl0rPi9nbSwgJycpO1xuICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgdGl0bGU6IGNvbnRlbnQuZm9udGNvbG9yKCcjNDU1NUI2Jykuc21hbGwoKSxcbiAgICAgICAgICAgICAgICAgZGVzYzogJycsXG4gICAgICAgICAgICAgICAgIHBpY191cmw6ICcnLFxuICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldFJlc3VsdChkKVxuICAgICAgICAgICAgIH0saHRtbCksXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXG59KTtcblxudmFyIHVybCA9IHBkKGh0bWwsJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmRldGFpbHM6aGFzKGluY2x1ZGUtZnJhZ21lbnQpJiZpbmNsdWRlLWZyYWdtZW50JiZzcmN8fGRhdGEtZGVmZXJyZWQtc3JjJylcbi8vbG9nKHVybClcbnZhciBsaXN0ID0gcGRmYShmZXRjaCh1cmwpLCd1bCYmbGknKVxubGlzdC5mb3JFYWNoKGl0ZW09PntcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyBwZGZoKGl0ZW0sJy5UcnVuY2F0ZS10ZXh0JiZUZXh0JykuZm9udGNvbG9yKCcjM2E3MzU2JyksXG4gICAgICAgIGRlc2M6IHBkZmgoaXRlbSwnLmZsZXgtanVzdGlmeS1lbmQmJlRleHQnKS5yZXBsYWNlKC8oXFxkezR9KS8sJ/Cfk4YkMScpLnJlcGxhY2UoL1okLywnJykucmVwbGFjZSgnVCcsJ+KPsCcpLFxuICAgICAgICB1cmw6IHBkKGl0ZW0sJ2EmJmhyZWYnKSArICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4geyAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICByZXR1cm4gJ2Rvd25sb2FkOi8vJyArIGlucHV0XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xuICAgfSlcbn0pXG5cbnNldFJlc3VsdChkKSIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJsZXQgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKClcbmxldCDml7bpl7Tpl7TpmpQgPSB0aW1lLWdldEl0ZW0oJ3RpbWUnLCBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpKVxuXG5zZXRJdGVtKCd0aW1lJywgdGltZSk7XG5cbmxldCDpl7TpmpTlpKnmlbAgPSBNYXRoLmZsb29yKOaXtumXtOmXtOmalCAvICgyNCAqIDYwICogNjAgKiAxMDAwKSkudG9TdHJpbmcoKTtcbmxldCDpl7TpmpTml7bmlbAgPSBNYXRoLmZsb29yKOaXtumXtOmXtOmalCAvICg2MCAqIDYwICogMTAwMCkpLnRvU3RyaW5nKCk7XG5sZXQg6Ze06ZqU5YiG5pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAoIDYwICogMTAwMCkpLnRvU3RyaW5nKCk7XG5sZXQg6Ze06ZqU56eS5pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAxMDAwKS50b1N0cmluZygpO1xuXG5zZXRJdGVtKCfpl7TpmpQnLCDpl7TpmpTml7bmlbApXG5cbmluaXRDb25maWcoe1xuICAgIOmXtOmalDogZ2V0SXRlbSgn6Ze06ZqUJywgJzAnKVxufSk7IiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIum7mOiupOaVsOaNrlwiLFwicGF0aFwiOlwiZGF0YVwiLFwicnVsZVwiOlwiLy/ov5znqIvmlbDmja5cXG4vKlxcbuWvhueggeS4uuOAkOKWieKWieKWieKWieKWieKWieOAkeivt+eUqOWwj+WIgOWIruW8gOiOt+WPllxcbiovXFxuLy/pu5jorqTmlbDmja5cXG52YXIgbWRhdGEgPSBbXFxcIlNpbmdib3jwn5SlaHR0cHM6Ly9naXRodWIuY29tL1NhZ2VyTmV0L3NpbmctYm94L3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JS2FQRS5wbmdcXFwiLFxcXCJLYXJpbmfwn5SlaHR0cHM6Ly9naXRodWIuY29tL0thcmluZ1gva2FyaW5nL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96N0RXUi5wbmdcXFwiLFxcXCJIaWRkaWZ58J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9oaWRkaWZ5L2hpZGRpZnktbmV4dC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvenBZQkoucG5nXFxcIixcXFwi6JmO5YWV8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS94Y2hhY2hhMjAtcG9seTEzMDUvaHVzaS9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvenJGelcucG5nXFxcIixcXFwiTmVrb2JvePCflKVodHRwczovL2dpdGh1Yi5jb20vTWF0c3VyaURheW8vTmVrb0JveEZvckFuZHJvaWQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pyeDRSLndlYnBcXFwiLFxcXCJTdXJmYm9hcmTwn5SlaHR0cHM6Ly9naXRodWIuY29tL2dldHN1cmZib2FyZC9zdXJmYm9hcmQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pyckZKLnBuZ1xcXCIsXFxcIkNNRkHwn5SlaHR0cHM6Ly9naXRodWIuY29tL21ldGFjdWJleC9jbGFzaG1ldGFmb3JhbmRyb2lkL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JS1BPVS5wbmdcXFwiLFxcXCJWMnJheU5H8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS8yZHVzdC92MnJheU5HL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JSzJqNC5wbmdcXFwiLFxcXCJDbGFzaFJT8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS93YXRmYXEvY2xhc2gtcnMvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lYeWRXLnBuZ1xcXCIsXFxcImNsYXNoLXZlcmdlLXJldvCflKVodHRwczovL2dpdGh1Yi5jb20vY2xhc2gtdmVyZ2UtcmV2L2NsYXNoLXZlcmdlLXJldi9yZWxlYXNlc/CflKVodHRwczovL3BpYy56aXl1YW4ud2FuZy91c2VyL2phYnNhcy8yMDI0LzA0LzE1MjUzNDQ2N18yZTljNWM5MmJkMDU4LnBuZ1xcXCIsXFxcIlByb3h5UGlu8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS93YW5naG9uZ2VucGluL25ldHdvcmtfcHJveHlfZmx1dHRlci9yZWxlYXNlc/CflKVodHRwczovL3RodW1ic25hcC5jb20vaS9tc0daWXpBVC5wbmdcXFwiLFxcXCLlhYPokJ3ljZzwn5SlaHR0cHM6Ly9naXRodWIuY29tL2thdGFuYS1vZmZpY2lhbC9zcGF0Y2gtdXBkYXRlL3JlbGVhc2Vz8J+UpWh0dHBzOi8vdGh1bWJzbmFwLmNvbS9pL3ZnQ2h2cWFVLmpwZ1xcXCIsXFxcIlJlcWFibGXwn5SlaHR0cHM6Ly9naXRodWIuY29tL3JlcWFibGUvcmVxYWJsZS1hcHAvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLQm5oLndlYnBcXFwiLFxcXCJTaGl6dWt18J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9SaWtrYUFwcHMvU2hpenVrdS9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUtEN3Yud2VicFxcXCIsXFxcIuaIkeeahOeUteinhvCflKVodHRwczovL2dpdGh1Yi5jb20vbGl6b25neWluZy9teS10di9yZWxlYXNlc/CflKVodHRwczovL3RodW1ic25hcC5jb20vaS9Sbllxam4zdC5wbmdcXFwiXVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LqR5Y+j5LukXCIsXCJwYXRoXCI6XCJjbG91ZFwiLFwicnVsZVwiOlwiZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoXFxcImhpa2VyOi8vcGFnZS9iYXRjaEltP3J1bGU9R2l0aHViQXBwXFxcIikpLnJ1bGUpO1xcbmxldCBjb250ZW50ID0gYmFzZTY0RGVjb2RlKHBhcnNlUGFzdGUoaW5wdXQpKTtcXG5iYXRjaEltcG9ydChjb250ZW50LCBcXFwiR2l0aHViQXBwXFxcIik7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliIbkuqvlr7zlhaVcIixcInBhdGhcIjpcImJhdGNoSW1cIixcInJ1bGVcIjpcImZ1bmN0aW9uIGJhdGNoSW1wb3J0KGlucHV0LCBydWxlKSB7XFxuICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcbiAgICBpZiAoaW5wdXQubGVuZ3RoIDwgMyApIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTmoLzlvI9cXFwiXFxuICAgIH1cXG4gICAgbGV0IGltID0gSlNPTi5wYXJzZShpbnB1dCk7XFxuICAgIGlmIChpbSA9PSBudWxsIHx8IGltLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTmoLzlvI9cXFwiXFxuICAgIH1cXG4gICAgXFxuICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpIHx8ICdbXScpO1xcbiAgICBsZXQgY291bnQgPSAwO1xcbiAgICBsZXQgYWxsID0gY29uZmlnLm1hcChpdCA9PiBpdC5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpO1xcbiAgICBmb3IgKGxldCBpIG9mIGltKSB7XFxuICAgICAgICBpZiAoYWxsLmluZGV4T2YoaS5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpID49IDApIHtcXG4gICAgICAgICAgICAvL+mHjeWkjeeahOS4jeimgVxcbiAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgfVxcbiAgICAgICAgY291bnQrKztcXG4gICAgICAgIGNvbmZpZy5wdXNoKGkpXFxuICAgIH1cXG4gICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xcbiAgICByZWZyZXNoUGFnZSgpO1xcbiAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey5a+85YWlXFxcIiArIGNvdW50ICsgXFxcIuS4qkFwcFxcXCI7XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5re75YqgQXBwXCIsXCJwYXRoXCI6XCLmt7vliqBcIixcInJ1bGVcIjpcInZhciDmt7vliqAgPSAkKCcnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBNWV9QQVJBTVMuaVxcbiAgICAgICAgICAgIHNldFBhZ2VUaXRsZSgn5re75YqgR2l0aHViQXBwJylcXG4gICAgICAgICAgICB2YXIgZCA9IFtdXFxuICAgICAgICAgICAgZC5wdXNoKFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WQjeensCcsXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWlQXBw5ZCN5a2XJyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignbmFtZScpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcignbmFtZScsICcnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXCJwdXRNeVZhcignbmFtZScsaW5wdXQpXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Zyw5Z2AJyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVnaXRodWIgcmVsZWFzZXMnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyZWxlYXNlcycpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcigncmVsZWFzZXMnLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwicHV0TXlWYXIoJ3JlbGVhc2VzJyxpbnB1dClcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflm77moIcnLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+i+k+WFpeWbvuagh+WcsOWdgCcsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ2ljb24nKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ2ljb24nLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwicHV0TXlWYXIoJ2ljb24nLGlucHV0KVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn56Gu6K6k5re75YqgJy5mb250Y29sb3IoJyNGRjAwRkYnKS5iaWcoKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ25hbWUnKSA9PSAnJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5ZCN5a2X5LiN6IO95Li656m6fidcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcigncmVsZWFzZXMnKSA9PSAnJyB8fFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhL15odHRwc1xcXFw6XFxcXC9cXFxcL2dpdGh1YlxcXFwuY29tXFxcXC8uKj9cXFxcLyhyZWxlYXNlc3x0YWdzKS8udGVzdChnZXRNeVZhcigncmVsZWFzZXMnKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOWcsOWdgH4nXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ25hbWUnLCAnJykgK1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlcycsICcnKS50b0xvd2VyQ2FzZSgpICtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICfwn5SlJyArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcignaWNvbicsICcnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RyID0gZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gW2l0ZW1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8vQXBw5re75Yqg5oiQ5YqffidcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShzdHIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVsZWFzZSA9IGxpc3QubWFwKChpKSA9PiBpLnNwbGl0KCfwn5SlJylbMV0udG9Mb3dlckNhc2UoKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxlYXNlLmluZGV4T2YoaXRlbS5zcGxpdCgn8J+UpScpWzFdKSA9PSAnLTEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBsaXN0LnB1c2goaXRlbSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaXN0LnVuc2hpZnQoaXRlbSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnNwbGljZShpbmRleCwgMCwgaXRlbSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShsaXN0KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL0FwcOa3u+WKoOaIkOWKn34nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LmnInnm7jlkIxBcHB+J1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSxpbmRleCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArICfngrnmiJHpooTop4gnLmZvbnRjb2xvcignIzAwREFDNCcpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0TXlWYXIoJ25hbWUnLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICBpbWc6IGdldE15VmFyKCdpY29uJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdpY29uJylcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCduYW1lJylcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyZWxlYXNlcycpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fNF9jYXJkJyxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIClcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZClcXG4gICAgICAgIH0pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuIrkvKDkupHnq69cIixcInBhdGhcIjpcInVwbG9hZFwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2h1cGxvYWQoaW5wdXQsIHJ1bGUpIHtcXG4gICAgaW5wdXQgPSBpbnB1dC50cmltKCk7XFxuICAgIGxldCBpbSA9IEpTT04ucGFyc2UoaW5wdXQpOyAgIFxcbiAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKTtcXG4gICAgbGV0IGNvdW50ID0gMDtcXG4gICAgbGV0IGFsbCA9IGltLm1hcChpdCA9PiBpdC5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpO1xcbiAgICBmb3IgKGxldCBpIG9mIGNvbmZpZykge1xcbiAgICAgICAgaWYgKGFsbC5pbmRleE9mKGkuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XFxuICAgICAgICAgICAgLy/ph43lpI3nmoTkuI3opoFcXG4gICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvdW50Kys7XFxuICAgICAgICBpbS5wdXNoKGkpXFxuICAgIH1cXG4gICAgbGV0IGhlaSA9IFxcXCJodHRwczovL2dpdGh1Yi5jb20vaHNza3lib3kvbnBhY2gvcmVsZWFzZXPwn5SlaHR0cHM6Ly9naXRodWIuY29tL2hzc2t5Ym95L25wYXRjaC9yZWxlYXNlc/CflKVodHRwczovL2dpdGh1Yi5jb20vY2V1aWxpc2EvcGl4aXYtc2xpbmt5L3JlbGVhc2VzXFxcIlxcbiAgICBsZXQgamogPSBoZWkuc3BsaXQoXFxcIvCflKVcXFwiKS5tYXAoaj0+ai50b0xvd2VyQ2FzZSgpKVxcbiAgICBpbSA9IGltLmZpbHRlcihpdGVtID0+IGpqLmluZGV4T2YoaXRlbS5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpID09PSAtMSk7XFxuICAgIHZhciB1cGRhdGUgPSBKU09OLnN0cmluZ2lmeShpbSlcXG4gICAgcmV0dXJuIHVwZGF0ZVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIs6x5aSn5L2s5YaZ55qEcHV0XCIsXCJwYXRoXCI6XCJwdXRcIixcInJ1bGVcIjpcIihmdW5jdGlvbiAoKSB7XFxuICBmdW5jdGlvbiBnZW5lcmF0ZUJvdW5kYXJ5KHByZWZpeCwgcmFuZG9tTGVuZ3RoKSB7XFxuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xcbiAgICBsZXQgYm91bmRhcnkgPSAnJztcXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5kb21MZW5ndGg7IGkrKykgeyAvLyDmoLnmja7mjIflrprplb/luqbnlJ/miJDpmo/mnLrpg6jliIZcXG4gICAgICBib3VuZGFyeSArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCkpO1xcbiAgICB9XFxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtib3VuZGFyeX1gOyAvLyDov5Tlm57lrozmlbTnmoTovrnnlYzlrZfnrKbkuLJcXG4gIH1cXG4gIGZ1bmN0aW9uIHB1dFByb3RvY29sKHVybCwgaW5oZWFkLCBib2R5LCBib3Vub2JqKSB7XFxuICAgIGxldCBkZWZvYmogPSB7XFxuICAgICAgcHJlZml4OiAnLS1XZWJLaXRGb3JtQm91bmRhcnknLFxcbiAgICAgIG51bTogMTYsXFxuICAgICAgZmlsbDogWzQsIDQsIDJdXFxuICAgIH1cXG4gICAgaWYgKGJvdW5vYmogPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgYm91bm9iaiA9IGRlZm9iajtcXG4gICAgfSBlbHNlIHtcXG4gICAgICBib3Vub2JqID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmb2JqLCBib3Vub2JqKTtcXG4gICAgfVxcbiAgICAvL2xvZyhib3Vub2JqKVxcblxcbiAgICB2YXIgZmlsbCA9IGJvdW5vYmouZmlsbC5tYXAoY291bnQgPT4gJy0nLnJlcGVhdChjb3VudCkpO1xcbiAgICAvL2xvZyhmaWxsKVxcbiAgICB2YXIgYm91bmRhcnkgPSBnZW5lcmF0ZUJvdW5kYXJ5KGJvdW5vYmoucHJlZml4LCBib3Vub2JqLm51bSk7XFxuICAgIGxldCBkZWZoZWFkID0ge1xcbiAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBLFxcbiAgICAgIH0sXFxuICAgICAgbWV0aG9kOiAnUFVUJyxcXG4gICAgfVxcbiAgICBpZiAoaW5oZWFkLmhlYWRlcnMgJiYgaW5oZWFkLmhlYWRlcnMuaGFzT3duUHJvcGVydHkoXFxcImNvbnRlbnQtdHlwZVxcXCIpKSB7XFxuICAgICAgaW5oZWFkLmhlYWRlcnNbXFxcImNvbnRlbnQtdHlwZVxcXCJdID0gaW5oZWFkLmhlYWRlcnNbXFxcImNvbnRlbnQtdHlwZVxcXCJdLnJlcGxhY2UoXFxcIiR7Ym91bmRhcnl9XFxcIiwgYm91bmRhcnkpO1xcbiAgICB9XFxuICAgIHZhciBoZWFkID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmaGVhZCwgaW5oZWFkKTtcXG4gICAgaWYgKGJvZHkpIHtcXG4gICAgICBoZWFkLmhlYWRlcnMuYm9keSA9IE9iamVjdC5rZXlzKGJvZHkpLm1hcChrZXkgPT4ge1xcbiAgICAgICAgcmV0dXJuIGAke2ZpbGxbMF19JHtib3VuZGFyeX1cXFxcclxcXFxuQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVxcXCIke2tleX1cXFwiXFxcXHJcXFxcblxcXFxyXFxcXG4ke2JvZHlba2V5XX1gXFxuICAgICAgfSkuam9pbignXFxcXHJcXFxcbicpICsgYFxcXFxyXFxcXG4ke2ZpbGxbMV19JHtib3VuZGFyeX0ke2ZpbGxbMl19XFxcXHJcXFxcbmBcXG4gICAgfVxcbiAgICAvL2xvZyhoZWFkKVxcbiAgICByZXR1cm4gZmV0Y2godXJsLCBoZWFkKTtcXG4gIH1cXG4gICQuZXhwb3J0cz17XFxuICAgICBnZXRCb3VuZGFyeTpnZW5lcmF0ZUJvdW5kYXJ5LFxcbiAgICAgcHV0OnB1dFByb3RvY29sXFxuICB9XFxufSkoKVwifV0iLCJpY29uIjoiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pwbnB2LndlYnAiLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment