Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@片库@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi54mH5bqTIiwiYXV0aG9yIjoiUiIsInVybCI6Imhpa2VyOi8vZW1wdHkjI2h0dHBzOi8vd3d3LnBrbXA0LmNvbS9tcy8xLS0tLS0tLS1meXBhZ2UtLS0uaHRtbCIsInZlcnNpb24iOjEsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbnZhciBkID0gW107XG52YXIgZ2V0UmFuZ2VDb2xvcnMgPSBmdW5jdGlvbigpIHvCoMKgwqDCoMKgwqDCoFxuICAgIHJldHVybiAnIycgKyAoJzAwMDAwJyArIChNYXRoLnJhbmRvbSgpICogMHgxMDAwMDAwIDw8IDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KTvCoMKgwqDCoMKgXG59XG5jb25zdCDliIbnsbvpopzoibIgPSBnZXRSYW5nZUNvbG9ycygpXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnYm9keSYmLm1lbnVfYm90dG9tJ1xuY29uc3Qg5ou85o6l5YiG57G7ID0gJ2JvZHkmJi5saXN0LWJveCYmZGwnXG5jb25zdCDlsI/nsbvlrprkvY0gPSAnYm9keSYmYTpub3QoOm1hdGNoZXMo6aaW6aG1fOeVmeiogCkpJ1xuY29uc3Qg5YiG57G75qCH6aKYID0gJ2EmJlRleHQnXG5jb25zdCDliIbnsbvpk77mjqUgPSAnYSYmaHJlZidcbmNvbnN0IOeKtuaAgeagh+iusCA9ICd1cmwnO1xuY29uc3Qg6ZmE5Yqg5a6a5L2NID1be1xuICAgIOS4gOe6p+WumuS9jTogJy5sZWZ0JyxcbiAgICDlsI/nsbs6ICdib2R5JiZhJyxcbiAgICDmoIfpopg6ICdhJiZUZXh0JyxcbiAgICDpk77mjqU6ICdhJiZocmVmJyxcbn1dXG5cbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcblxubGV0IHRydWVfdXJsID0gZ2V0TXlWYXIoXCJ1cmxcIiwgTVlfVVJMKVxuY29uc3QgcGFnZSA9IE1ZX1BBR0VcbiAgICAgICAgLy90cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoL3Z0XFwvKFxcZCspLiovICwnbXMvJDEtLS0tLS0tLS0tLS5odG1sJykucmVwbGFjZSgnLS0tLmh0bWwnLCBwYWdlKyctLS1odG1sJykucmVwbGFjZSgvKC0tLVxcZCtcXC5odG1sKS8gLHBhZ2UrJyQxJylcbiAgICAvL3RydWVfdXJsID0gdHJ1ZV91cmwucmVwbGFjZSgvdnRcXC8oXFxkKykuKi8gLCdtcy8kMS0tLS0tLS0tLS0tLmh0bWwnKS5yZXBsYWNlKC8oXFxkKyk/LS0tKFxcZHs0fSk/XFwuaHRtbC8sIHBhZ2UgKyAnLS0tJDInICsgJy5odG1sJylcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoL3Z0XFwvKFxcZCspLiovICwnbXMvJDEtLS0tLS0tLS0tLS5odG1sJykucmVwbGFjZSgvXigoPzpbXi1dKi0pezd9W14tXSopLS8sIFwiJDEtXCIgKyBwYWdlKS8vLS0tLS0t6YCa55SoXG52YXIgaHRtbCA9IGZldGNoKHRydWVfdXJsKTtcblxuXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kdGZsJywge30pKS5ydWxlKTtcblxuLy/kuIDnuqfpobXpnaJcbnZhciBsaXN0ID0gcGRmYShodG1sLCAnLmNvbnRlbnQmJnVsJiZsaScpOy8v5YiX6KGoXG5mb3IgKHZhciBqIGluIGxpc3QpIHtcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogcGRmaChsaXN0W2pdLCAnYSYmdGl0bGUnKSwvL+agh+mimFxuICAgICAgICBkZXNjOiBwZGZoKGxpc3Rbal0sICcuczImJlRleHQnKSArICfliIYgJyArIHBkZmgobGlzdFtqXSwgJy5zMSYmVGV4dCcpLC8v6auY5riF5oiW5pu05pawXG4gICAgICAgIGltZzogcGQobGlzdFtqXSwgJ2ltZyYmc3JjJykgKyAnQFJlZmVyZXI9JywvL+WbvueJh1xuICAgICAgICB1cmw6IHBkKGxpc3Rbal0sICdhJiZocmVmJykgKyAnI2ltbWVyc2l2ZVRoZW1lIycsLy/pk77mjqXlnLDlnYBcbiAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8zJywvL+e7hOS7tuagt+W8j1xuICAgIH0pO1xufVxuc2V0UmVzdWx0KGQpOyIsInNlYXJjaF91cmwiOiJodHRwczovL3d3dy5wa21wNC5jb20vdnMvKiotLS0tLS0tLS0tZnlwYWdlLS0tLmh0bWwiLCJncm91cCI6IuKRoFIiLCJzZWFyY2hGaW5kIjoianM6XG52YXIgZCA9IFtdO1xudmFyIGh0bWwgPSBnZXRSZXNDb2RlKClcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UveXptP3J1bGU95qih5p2/wrdRJykpLnJ1bGUpLy/ov4fpqozor4HnoIFcbnZhciBsaXN0ID0gcGRmYShodG1sLCAnLnNyX2xpc3RzJiZ1bCYmbGknKTsvL+aQnOe0ouWIl+ihqFxuZm9yICh2YXIgaiBpbiBsaXN0KSB7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHBkZmgobGlzdFtqXSwgJ2gzJiZUZXh0JyksLy/moIfpophcbiAgICAgICAgZGVzYzogJ+abtOaWsCcgKyBwZGZoKGxpc3Rbal0sICcuaW50JiZwOmVxKDMpJiZUZXh0JyksLy/mj4/ov7BcbiAgICAgICAgaW1nOiBwZChsaXN0W2pdLCAnaW1nJiZzcmMnKSArXG4gICAgICAgICAgICAnQFJlZmVyZXI9JywvL+WbvueJh+a1t+aKpVxuICAgICAgICBjb250ZW50OiBwZGZoKGxpc3Rbal0sICcuaW50JiZwOmVxKDApJiZUZXh0JyksLy/nroDku4vor6bmg4VcbiAgICAgICAgdXJsOiBwZChsaXN0W2pdLCAnYSYmaHJlZicpICsgXCIjaW1tZXJzaXZlVGhlbWUjXCIvL+mTvuaOpeWcsOWdgFxuICAgIH0pO1xufVxuc2V0UmVzdWx0KGQpIiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsImRldGFpbF9maW5kX3J1bGUiOiJqczpcbnZhciBkID0gW107XG5cbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpO1xuLy/mtbfmiqVcbmQucHVzaCh7IFxuICAgIHRpdGxlOiBwZGZoKGh0bWwsICcuY29udGVudC1ydCYmcCw1JiZUZXh0JykgKyBcbidcXG4nICsgcGRmaChodG1sLCAnLmNvbnRlbnQtcnQmJnAsNCYmVGV4dCcpLC8v5qCH6aKYXG4gICAgZGVzYzogcGRmaChodG1sLCAnLmNvbnRlbnQtcnQmJnAsMiYmVGV4dCcpICsgXG4nXFxuJyArIHBkZmgoaHRtbCwgJy5jb250ZW50LXJ0JiZwLDEmJlRleHQnKSwvL+aPj+i/sFxuICAgIGltZzogcGQoaHRtbCwgJy5pbWcmJmltZyYmc3JjJykgKyAnQFJlZmVyZXI9JyxcbiAgICB1cmw6IE1ZX1VSTCxcbiAgICBjb2xfdHlwZTogXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyXCJcbn0pO1xuXG5cblxuLy/nroDku4tcbnZhciBkZXNjID0gcGRmaChodG1sLCAnLnNxampfYSYmVGV4dCcpLnNwbGl0KCdbJylbMF07XG5cbmZ1bmN0aW9uIHNldERlc2MoYXJyLCBkZXNjLCBudW0pIHtcbiAgICBkZXNjID0gZGVzYy5jb25zdHJ1Y3RvciA9PSBBcnJheSA/IGRlc2Muam9pbignPGJyPicpIDogZGVzYztcbiAgICBpZiAoZGVzYy5yZXBsYWNlKC8oPGJyPnxcXHMrKS9nLCAnJykubGVuZ3RoID09IDApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IG1hcmsgPSAnZGVzYyc7XG4gICAgbnVtID0gdHlwZW9mKG51bSkgPT0gJ3VuZGVmaW5lZCcgPyA5NiA6IG51bVxuICAgIGRlc2MgPSBkZXNjLnN0YXJ0c1dpdGgoJ+OAgOOAgCcpID8gZGVzYyA6ICfjgIDjgIAnICsgZGVzYztcbiAgICBkZXNjID0gZGVzYy5yZXBsYWNlKC8nL2csIFwiJiMzOTtcIilcblxuICAgIGZ1bmN0aW9uIHN1YnN0cihzdHIsIG1heExlbmd0aCkge1xuICAgICAgICBsZXQgbGVuID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChzdHIuY2hhckNvZGVBdChpKSA+IDI1NSkge1xuICAgICAgICAgICAgICAgIGxlbiArPSAyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZW4rKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZW4gPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnNsaWNlKDAsIGkpICsgJy4uLic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgbGV0IHNkZXNjID0gc3Vic3RyKGRlc2MsIG51bSk7XG4gICAgdmFyIGxhenkgPSAkKGAjbm9Mb2FkaW5nI2ApLmxhenlSdWxlKChkYywgc2RjLCBtKSA9PiB7XG4gICAgICAgIHZhciBzaG93ID0gc3RvcmFnZTAuZ2V0SXRlbShtLCAnMCcpO1xuICAgICAgICB2YXIgdGl0bGUgPSBmaW5kSXRlbSgnZGVzYycpLnRpdGxlO1xuICAgICAgICB2YXIgcmUgPSAvKDxcXC9zbWFsbD48YnI+Lio/PikuKy9nO1xuICAgICAgICB2YXIgZXhwID0gJ+WxleW8gDonO1xuICAgICAgICB2YXIgcmV0ID0gJ+aUtui1tzonO1xuICAgICAgICBpZiAoc2hvdyA9PSAnMScpIHtcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oJ2Rlc2MnLCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKHJldCwgZXhwKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShyZSwgJyQxJyArIHNkYyArICc8L3NtYWxsPicpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oPFxcL3NtYWxsPjxicj48Zm9udCBjb2xvcj1cIikuKj8oXCI+KS8sICckMWdyZXkkMicpXG5cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKG0sICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGVJdGVtKCdkZXNjJywge1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShleHAsIHJldClcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UocmUsICckMScgKyBkYyArICc8L3NtYWxsPicpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oPFxcL3NtYWxsPjxicj48Zm9udCBjb2xvcj1cIikuKj8oXCI+KS8sICckMWJsYWNrJDInKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0obSwgJzEnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYGhpa2VyOi8vZW1wdHlgXG4gICAgfSwgZGVzYywgc2Rlc2MsIG1hcmspXG4gICAgdmFyIHNjID0gc3RvcmFnZTAuZ2V0SXRlbShtYXJrLCAnMCcpID09ICcwJyA/ICflsZXlvIA6JyA6ICfmlLbotbc6JztcbiAgICB2YXIgZGMgPSBzdG9yYWdlMC5nZXRJdGVtKG1hcmssICcwJykgPT0gJzAnID8gc2Rlc2MgOiBkZXNjO1xuICAgIGFyci5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnICsgJzxiPjxmb250IGNvbG9yPVwiIzA5OEFDMVwiPuKItyAgIOWJp+aDheeugOS7i1x0PC9mb250PjwvYj4nICsgXCI8c21hbGw+PGEgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogbm9uZTsnIGhyZWY9J1wiICsgbGF6eSArIFwiJz5cIiArIHNjICsgJzwvYT48L3NtYWxsPjxicj48Zm9udCBjb2xvcj1cIiM2OTY5NjlcIj4nICsgYCR7ZGN9YCArICc8L3NtYWxsPicsXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcbiAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgIGlkOiAnZGVzYycsXG4gICAgICAgICAgICBsaW5lU3BhY2luZzogNixcbiAgICAgICAgICAgIHRleHRTaXplOiAxNSxcbiAgICAgICAgICAgIGxpbmVWaXNpYmxlOiB0cnVlLFxuICAgICAgICB9XG4gICAgfSlcbn1cblxuXG5zZXREZXNjKGQsIGRlc2MpO1xuXG5mdW5jdGlvbiBjb3VudENoYXJzKHN0cikge1xuICAgIGNvbnN0IGNoaW5lc2VSZWdleCA9IC9bXFx1NGUwMC1cXHU5ZmE1XS9nOyAvLyDljLnphY3kuK3mloflrZfnrKZcbiAgICBjb25zdCBlbmdsaXNoUmVnZXggPSAvW2EtekEtWl0vZzsgLy8g5Yy56YWN6Iux5paH5a2X56ymXG4gICAgY29uc3QgbnVtYmVyUmVnZXggPSAvXFxkL2c7IC8v5Yy56YWN5pWw5a2XXG4gICAgY29uc3QgY2hpbmVzZUNvdW50ID0gKHN0ci5tYXRjaChjaGluZXNlUmVnZXgpIHx8IFtdKS5sZW5ndGg7XG4gICAgY29uc3QgZW5nbGlzaENvdW50ID0gKHN0ci5tYXRjaChlbmdsaXNoUmVnZXgpIHx8IFtdKS5sZW5ndGg7XG4gICAgY29uc3QgbnVtYmVyQ291bnQgPSAoc3RyLm1hdGNoKG51bWJlclJlZ2V4KSB8fCBbXSkubGVuZ3RoO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNoaW5lc2VDb3VudCxcbiAgICAgICAgZW5nbGlzaENvdW50LFxuICAgICAgICBudW1iZXJDb3VudCxcbiAgICB9O1xufVxuXG5cblxudmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICd2aWRlbzovLycgKyBpbnB1dDtcbiAgICAgICB9KVxuXG5cblxudmFyIOe6v+i3ryA9ICcjc0JveCYmaDImJm9wdGlvbidcbnZhciDpgInpm4YgPSAnYm9keSYmLnBsYXllcidcbnZhciDnur/ot6/lkI0gPSAnVGV4dCdcbnZhciDpgInpm4bliJfooaggPSAnYm9keSYmYSdcblxudmFyIHRhYnMgPSBwZGZhKGh0bWwsIOe6v+i3rykubWFwKHggPT4gcGRmaCh4LCDnur/ot6/lkI0pKTtcbnZhciBsaXN0cyA9IHBkZmEoaHRtbCwg6YCJ6ZuGKS5tYXAoeCA9PiBwZGZhKHgsIOmAiembhuWIl+ihqCkpO1xuXG5mdW5jdGlvbiBzZXRUYWJzKHRhYnMsIHZhcmkpIHtcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cImNvbG9yOiAjRkYwMDAwXCI+6YCG5bqPPC9zcGFuPjwvYj4nIDogJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVwiY29sb3I6ICMxYWFkMTlcIj7mraPluo88L3NwYW4+PC9iPicsXG4gICAgICAgIHVybDogYEBsYXp5UnVsZT0uanM6bGV0IGNvbmYgPSBnZXRWYXIoJ3Noc29ydCcpO2lmKGNvbmY9PScxJyl7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicwJ30pO31lbHNle3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMSd9KX07cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/liIfmjaLmjpLluo/miJDlip8nYCxcbiAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcbiAgICB9KVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgdXJsID0gXCIjbm9Mb2FkaW5nI0BsYXp5UnVsZT0uanM6cHV0VmFyKCdcIiArIHZhcmkgKyBcIicsICdcIiArIGkgKyBcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnOycjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXCI7XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKHZhcmksICcwJykgPT0gaSA/ICfigJzigJwnICsgdGFic1tpXSArICfigJ3igJ0nIDogdGFic1tpXSxcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzLCBpbmRleCkge1xuICAgIHZhciBsaXN0ID0gbGlzdHNbaW5kZXhdO1xuICAgIGlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xuICAgICAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XS5yZXZlcnNlKCk7XG4gICAgfVxuICAgIGZvciAodmFyIGogaW4gbGlzdCkge1xuICAgICAgICB2YXIgdGl0bGUgPSBwZGZoKGxpc3Rbal0sICdhJiZUZXh0Jyk7XG4gICAgICAgIHZhciBuID0gY291bnRDaGFycyh0aXRsZSlcbiAgICAgICAgdmFyIGN0ID0gbi5jaGluZXNlQ291bnQgPiA0IHx8IChuLm51bWJlckNvdW50ICsgbi5jaGluZXNlQ291bnQgPiA4IHx8IG4uZW5nbGlzaENvdW50ICsgbi5jaGluZXNlQ291bnQgPiA4KSA/ICd0ZXh0XzMnIDogJ3RleHRfNCc7XG5cbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGxpc3Rbal0sICdhJiZUZXh0JylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgv56ysKFxcZCsp6ZuGLywgJyQxJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgn56ysJywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ+acnycsICcnKSxcbiAgICAgICAgICAgIHVybDogcGQobGlzdFtqXSwgJ2EmJmhyZWYnKSArIGxhenksXG4gICAgICAgICAgICBjb2xfdHlwZTogbGlzdC5sZW5ndGggPiAzID8gY3QgOiAndGV4dF8yJ1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbnNldFRhYnModGFicywgTVlfVVJMKTtcbnNldExpc3RzKGxpc3RzLCBnZXRWYXIoTVlfVVJMLCAnMCcpKTtcblxuLy/no4HliptcbnZhciDno4Hlipvnur/ot68gPSAnYm9keSYmLnRpdGxlJ1xudmFyIOejgeWKm+mAiembhiA9ICdib2R5JiYuZ2R0LmNvbnRlbnQnXG52YXIg56OB5Yqb57q/6Lev5ZCNID0gJ1RleHQnXG52YXIg56OB5Yqb6YCJ6ZuG5YiX6KGoID0gJ2JvZHkmJmEnXG5cbnZhciB0YWJzYiA9IHBkZmEoaHRtbCwg56OB5Yqb57q/6LevKS5tYXAoeCA9PiBwZGZoKHgsIOejgeWKm+e6v+i3r+WQjSkpO1xudmFyIGxpc3RzYiA9IHBkZmEoaHRtbCwg56OB5Yqb6YCJ6ZuGKS5tYXAoeCA9PiBwZGZhKHgsIOejgeWKm+mAiembhuWIl+ihqCkpO1xuXG5mdW5jdGlvbiBzZXRUYWJzKHRhYnNiLCB2YXJpKSB7XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiAoZ2V0VmFyKCdzaHNvcnRiJykgPT0gJzEnKSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cImNvbG9yOiAjRkYwMDAwXCI+56OB5Yqb6YCG5bqPPC9zcGFuPjwvYj4nIDogJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVwiY29sb3I6ICMxYWFkMTlcIj7no4HlipvmraPluo88L3NwYW4+PC9iPicsXG4gICAgICAgIHVybDogYEBsYXp5UnVsZT0uanM6bGV0IGNvbmYgPSBnZXRWYXIoJ3Noc29ydGInKTtpZihjb25mPT0nMScpe3B1dFZhcih7a2V5OidzaHNvcnRiJywgdmFsdWU6JzAnfSk7fWVsc2V7cHV0VmFyKHtrZXk6J3Noc29ydGInLCB2YWx1ZTonMSd9KX07cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/liIfmjaLmjpLluo/miJDlip8nYCxcbiAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcbiAgICB9KVxuICAgIGZvciAodmFyIGggPSAwOyBoIDwgdGFic2IubGVuZ3RoOyBoKyspIHtcbiAgICAgICAgdmFyIHVybCA9IFwiI25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignXCIgKyB2YXJpICsgXCInLCAnXCIgKyBoICsgXCInKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJzsnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J1wiO1xuICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6IGdldFZhcih2YXJpLCAnMCcpID09IGggPyAn4oCc4oCcJyArIHRhYnNiW2hdICsgJ+KAneKAnScgOiB0YWJzYltoXSxcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzYiwgaW5kZXgpIHtcbiAgICB2YXIgbGlzdGIgPSBsaXN0c2JbaW5kZXhdO1xuICAgIGlmIChnZXRWYXIoJ3Noc29ydGInLCcwJykgPT0gJzEnKSB7XG4gICAgICAgIHZhciBsaXN0YiA9IGxpc3RzYltpbmRleF0ucmV2ZXJzZSgpO1xuICAgIH1cbiAgICBmb3IgKHZhciBjIGluIGxpc3RiKSB7XG4gICAgICAgIHZhciB0aXRsZSA9IHBkZmgobGlzdGJbY10sICdhJiZUZXh0Jyk7XG4gICAgICAgIHZhciBuID0gY291bnRDaGFycyh0aXRsZSlcbiAgICAgICAgdmFyIGN0ID0gbi5jaGluZXNlQ291bnQgPiA0IHx8IChuLm51bWJlckNvdW50ICsgbi5jaGluZXNlQ291bnQgPiA4IHx8IG4uZW5nbGlzaENvdW50ICsgbi5jaGluZXNlQ291bnQgPiA4KSA/ICd0ZXh0XzMnIDogJ3RleHRfNCc7XG5cbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGxpc3RiW2NdLCAnYSYmVGV4dCcpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL+esrChcXGQrKembhi8sICckMScpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ0JMVVJBWScsICcnKVxuLnJlcGxhY2UoJ0JsdVJheScsICcnKVxuLnJlcGxhY2UoJ0RyZWFtJywgJycpXG4ucmVwbGFjZSgneDI2NCcsICcnKVxuLnJlcGxhY2UoJ1gyNjQnLCAnJylcbi5yZXBsYWNlKCd4MjY1JywgJycpXG4ucmVwbGFjZSgnSDI2NCcsICcnKVxuLnJlcGxhY2UoJ1dFQi1ETCcsICcnKVxuLnJlcGxhY2UoJ0hEUisnLCAnJylcbi5yZXBsYWNlKC9IRCsvLCAnJylcbi5yZXBsYWNlKC9EVEQrLywgJycpXG4ucmVwbGFjZSgvRFRTTS8sICcnKVxuLnJlcGxhY2UoL0RUU01BLywgJycpXG4ucmVwbGFjZSgvRFRTSEQvLCAnJylcbi5yZXBsYWNlKCdtcDQnLCAnJylcbi5yZXBsYWNlKCdNcDQnLCAnJylcbi5yZXBsYWNlKCfok53lhYknLCAnJylcbi5yZXBsYWNlKCdXRUJSaXAnLCAnJylcbi5yZXBsYWNlKCdWWFQnLCAnJylcbi5yZXBsYWNlKCdQVUJMSUMnLCAnJylcbi5yZXBsYWNlKCdNS1YnLCAnJylcbi5yZXBsYWNlKCdCRFJpcCcsICcnKVxuLnJlcGxhY2UoJ0ZMQUMnLCAnJylcbi5yZXBsYWNlKCdIRVZDJywgJycpXG4ucmVwbGFjZSgnMTBiaXQnLCAnJylcbi5yZXBsYWNlKCdCbHVSJywgJycpXG4ucmVwbGFjZSgnU0RSJywgJycpXG4ucmVwbGFjZSgnSDI2NScsICcnKVxuLnJlcGxhY2UoJ0JsdXJheScsICcnKVxuLnJlcGxhY2UoJ1tlbWFpbCBwcm90ZWN0ZWRdJywgJycpXG4ucmVwbGFjZSgvXFwtLywgJycpXG5cblxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC4vLCAnJyksXG4gICAgICAgICAgICB1cmw6IHBkKGxpc3RiW2NdLCAnYSYmaHJlZicpLFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuaWYodGFic2IubGVuZ3RoPjEpe1xuc2V0VGFicyh0YWJzYiwgJ21hZ25ldCcpO1xuc2V0TGlzdHMobGlzdHNiLCBnZXRWYXIoJ21hZ25ldCcsJzAnKSk7XG59XG5cblxuXG5zZXRSZXN1bHQoZCkiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiKiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJsYXp5XCIsXCJwYXRoXCI6XCJsYXp5XCIsXCJydWxlXCI6XCJ2YXIgbGF6eSA9ICQoJycpLmxhenlSdWxlKChNWV9IT01FKSA9PiB7XFxuICAgIHRyeSB7XFxudmFyIGh0bWwgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuICAgIHZhciB1cmwgPSBodG1sLnVybFxcbiAgICBpZiAoaHRtbC5lbmNyeXB0ID09ICcxJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXG4gICAgfSBlbHNlIGlmIChodG1sLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgIH1cXG4gICAgZXZhbChyZXF1ZXN0KE1ZX0hPTUUgKyAnL3N0YXRpYy9qcy9wbGF5ZXJjb25maWcuanMnKSk7XFxuICAgIHZhciBqeCA9IE1hY1BsYXllckNvbmZpZy5wbGF5ZXJfbGlzdFtodG1sLmZyb21dLnBhcnNlO1xcbiAgICBpZiAoanggPT0gJycpIHtcXG4gICAgICAgIGp4ID0gTWFjUGxheWVyQ29uZmlnLnBhcnNlXFxuICAgIH1cXG4gICAgdmFyIHVybHMgPSByZXF1ZXN0KGp4ICsgdXJsLCB7XFxuICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgJ1JlZmVyZXInOiBNWV9VUkxcXG4gICAgICAgIH1cXG4gICAgfSlcXG4gICAgLy9sb2codXJscylcXG4gICAgdHJ5IHtcXG4gICAgICAgIHZhciB1cmwgPSB1cmxzLm1hdGNoKC9sZXQgcGxheWVyW1xcXFxzXFxcXFNdKj91cmwuKj9cXFwiKC4qPylcXFwiLylbMV1cXG4gICAgICAgIHJldHVybiB1cmxcXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgdmFyIHVybCA9IHVybHMubWF0Y2goL3VybHMgPSBcXFwiKC4qPylcXFwiLylbMV07XFxuICAgICAgICByZXR1cm4gdXJsICsgJyNpc1ZpZGVvPXRydWUjJ1xcbiAgICB9ICB9IGNhdGNoIChlKSB7XFxucmV0dXJuICd0b2FzdDovL+WPr+iDvemTvuaOpeaXoOazleiuv+mXru+8jOivt+abtOaNoue6v+i3r+OAgidcXG59XFxufSwgTVlfSE9NRSlcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInl6bVwiLFwicGF0aFwiOlwieXptXCIsXCJydWxlXCI6XCJpZiAoaHRtbC5pbmRleE9mKCfns7vnu5/lronlhajpqozor4EnKSA+IC0xKSB7XFxuXFxuICAgIGxldCBoZWFkZXJzID0ge1xcbiAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUEsXFxuICAgICAgICBcXFwiUmVmZXJlclxcXCI6IE1ZX1VSTFxcbiAgICB9O1xcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2p4aHM/cnVsZT3mqKHmnb/Ct1EnKSkucnVsZSk7XFxuICAgIGV2YWxQcml2YXRlSlMoc3N5eik7XFxuXFxuICAgIGxldCB2Y29kZSA9IGdldFZDb2RlMihNWV9IT01FICsgJy9pbmRleC5waHAvdmVyaWZ5L2luZGV4Lmh0bWw/JywgSlNPTi5zdHJpbmdpZnkoaGVhZGVycyksICdudW0nKTtcXG4gICAgZmV0Y2goTVlfSE9NRSArIGh0bWwubWF0Y2goL1xcXFwvaW5kZXgucGhwLio/dmVyaWZ5PS8pWzBdICsgSlNPTi5wYXJzZSh2Y29kZSkucmV0LCB7XFxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCdcXG4gICAgfSlcXG4gICAgdmFyIHl6ID0gIS9zZWFyY2gvLnRlc3QoTVlfVVJMKSA/IHRydWVfdXJsIDogTVlfVVJMXFxuICAgIGh0bWwgPSBmZXRjaCh5eiwge1xcbiAgICAgICAgaGVhZGVyczogaGVhZGVyc1xcbiAgICB9KTtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliqjmgIHliIbnsbvmlLlcIixcInBhdGhcIjpcImR0ZmxcIixcInJ1bGVcIjpcImpzOlxcbi8qXFxuVmVyIDIwMjMtNS0yNSAxLjBcXG7lpIfms6jvvJrkuI3opoHnlKjmtbfpmJTku6PnoIHmoLzlvI/ljJYg5YaF5a655Lya5Ye66ZSZXFxu5b+F6aG75Y+C5pWw77yaXFxu5YiG57G76aKc6ImyIOWkp+exu+WumuS9jSBcXG7lsI/nsbvlrprkvY0g5YiG57G75qCH6aKYIOWIhuexu+mTvuaOpVxcbmh0bWwgPT7mupDnoIEgcGFnZSA9PumhteeggVxcbuWPr+mAieWPguaVsO+8mlxcbuaLvOaOpeWIhuexuyDmipjlj6DmoIforrAg5bGV5byA5qCH6K6wIOaOkumZpFxcbuWkp+exu+mTvuaOpSDlpKfnsbvmoIfpopgg5riF6Zmk6ZSuIOW8gOWQr+aKmOWPoFxcbumZhOWKoOWumuS9jVxcbuivtOaYju+8mlxcbuWklumdoueUqGdldE15VmFyKE1ZX1JVTEUudXJsKSDmiJbogIUg54q25oCBIOWPlumTvuaOpVxcbumtlOaUuTrOsVxcbiovXFxuXFxubGV0IGVtcHR5wqAgPSBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxyXFxubGV0IGNhdGVnb3JpZXMgPSBbXTtcXHJcXG5pZiAodHlwZW9mKOaLvOaOpeWIhuexuykgIT0gJ3VuZGVmaW5lZCcgJiYg5ou85o6l5YiG57G7wqAhPSAnJyl7wqDCoMKgwqBcXHJcXG4gICAgY2F0ZWdvcmllcyA9IFtwZGZhKGh0bWwsIMKg5aSn57G75a6a5L2NKS5qb2luKCdcXFxcbicpXS5jb25jYXQocGRmYShodG1sLCDCoOaLvOaOpeWIhuexuykpO1xcbiAgICBpZih0eXBlb2Yo6ZmE5Yqg5a6a5L2NKSE9J3VuZGVmaW5lZCcgJiYg6ZmE5Yqg5a6a5L2NLmxlbmd0aD4wKXtcXG4gICAgICAgICAgICDpmYTliqDlrprkvY0uZm9yRWFjaCh4PT57XFxuICAgICAgdmFyIOS4gOe6pz1wZGZhKGh0bWwseC7kuIDnuqflrprkvY0pLm1hcChzPT57XFxuICAgICAgICAgIHZhciDlrprkvY09cGRmYShzLHgu5bCP57G7KS5tYXAocT0+e1xcbiAgICAgICAgICAgICAgdmFyIHRpdGxlPXBkZmgocSx4Luagh+mimCk7XFxuICAgICAgICAgICAgICB2YXIgdXJsPSdhJ1xcbiAgICAgICAgICAgICAgaWYoeC7pk77mjqUuaW5jbHVkZXMoJ0BAJykpe1xcbiAgICAgICAgICAgICAgICAgIHN0YXRlPXgu6ZO+5o6lLnNwbGl0KCdAQCcpWzBdXFxuICAgICAgICAgICAgICAgICAgdmFsdWU9cGRmaChxLHgu6ZO+5o6lLnNwbGl0KCdAQCcpWzFdKTtcXG4gICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIHR5cGU9XFxcIkBleHRyYVxcXCIgc3RhdGU9XFxcIiR7c3RhdGV9XFxcIiB2YWx1ZT1cXFwiJHt2YWx1ZX1cXFwiPiR7dGl0bGV9PC9hPmA7XFxuICAgICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICAgICBocmVmPXBkKHEseC7pk77mjqUpO1xcbiAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgaHJlZj1cXFwiJHtocmVmfVxcXCI+JHt0aXRsZX08L2E+YDtcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgIFxcbiAgICAgICAgICB9KTtcXG4gICAgICAgICAgcmV0dXJuIOWumuS9jTtcXG4gICAgICAgIH0pO1xcbiAgICAgICBjYXRlZ29yaWVzLnB1c2go5LiA57qnLmpvaW4oJ1xcXFxuJykpO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICB9XFxyXFxufcKgZWxzZcKge8KgwqDCoMKgwqBcXHJcXG4gICAgY2F0ZWdvcmllcyA9IFtwZGZhKGh0bWwsIMKg5aSn57G75a6a5L2NKS5qb2luKCdcXFxcbicpXTtcXHJcXG59XFxyXFxubGV0wqBpbml0X2NhdGXCoD3CoG5ldyBBcnJheSgyMCkuZmlsbChcXFwiMFxcXCIpO1xcclxcbmNvbnN0wqBmb2xkwqA9wqBnZXRNeVZhcihNWV9SVUxFLmdyb3VwLMKgXFxcIjBcXFwiKTtcXHJcXG5jb25zdMKgY2F0ZV90ZW1wwqA9wqBKU09OLnBhcnNlKGdldE15VmFyKFxcXCJoZWFkLmNhdGVcXFwiLMKgSlNPTi5zdHJpbmdpZnkoaW5pdF9jYXRlKSkpO1xcbnZhciDmipjlj6DnirbmgIE9KHR5cGVvZijlvIDlkK/mipjlj6ApICE9ICd1bmRlZmluZWQnKT/lvIDlkK/mipjlj6A6dHJ1ZTtcXHJcXG52YXIg5oqY5Y+gPSh0eXBlb2Yo5oqY5Y+g5qCH6K6wKSAhPSAndW5kZWZpbmVkJyAmJiDmipjlj6DmoIforrDCoCE9ICcnKT/mipjlj6DmoIforrA6J+KAnOKAnOKAneKAnSfCoCvCoCfiiKgnLmZvbnRjb2xvcihcXFwiI0ZGMDAwMFxcXCIpO1xcbnZhciDlsZXlvIA9KHR5cGVvZijlsZXlvIDmoIforrApICE9ICd1bmRlZmluZWQnICYmIOWxleW8gOagh+iusMKgIT0gJycpP+WxleW8gOagh+iusDon4oCc4oCc4oCd4oCdJ8KgK8KgJ+KIpycuZm9udGNvbG9yKFxcXCIjMWFhZDE5XFxcIik7XFxudmFyIOa4hemZpD0odHlwZW9mKOa4hemZpOmUrikgIT0gJ3VuZGVmaW5lZCcgJiYg5riF6Zmk6ZSuwqAhPSAnJyk/5riF6Zmk6ZSuOltdO1xcbnZhciDnirbmgIE9KHR5cGVvZijnirbmgIHmoIforrApICE9ICd1bmRlZmluZWQnICYmIOeKtuaAgeagh+iusMKgIT0gJycpP+eKtuaAgeagh+iusDpNWV9SVUxFLnVybDtcXG52YXIg5aSn57G75aSE55CGPXR5cGVvZijkuIDnuqfliIbnsbvlpITnkIYpPT0nZnVuY3Rpb24nP3RydWU6ZmFsc2U7XFxuXFxyXFxuaWbCoChwYXJzZUludChwYWdlKcKgPT09wqAxKcKge1xcbiAgICBpZijmipjlj6DnirbmgIEpe1xcclxcbsKgwqDCoMKgIGQucHVzaCh7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoHRpdGxlOsKgZm9sZMKgPT09wqAnMSfCoD/CoMKg5oqY5Y+gwqA6wqDlsZXlvIAsXFxyXFxuwqDCoMKgwqDCoMKgwqDCoHVybDrCoCQoKS5sYXp5UnVsZSgoZm9sZCnCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHV0TXlWYXIoTVlfUlVMRS5ncm91cCzCoGZvbGTCoD09PcKgJzEnwqA/wqAnMCfCoDrCoCcxJyk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcclxcbsKgwqDCoMKgwqDCoMKgwqB9LMKgZm9sZCksXFxyXFxuwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgIGxvbmdDbGljazpbe1xcbiAgICAgICAgICAgICAgICB0aXRsZTon5riF6Zmk54q25oCBJyxcXG4gICAgICAgICAgICAgICAganM6JC50b1N0cmluZygoeCk9PntcXG4gICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKHgpO1xcbiAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgIH0s54q25oCBKVxcbiAgICAgICAgICAgIH1dXFxuICAgICAgICB9XFxyXFxuwqDCoMKgIMKgfSlcXG4gICAgfVxcclxcbiAgICBsZXQgc2V0VGl0bGU9KGssaSx0KT0+eyAgICAgICAgICAgICBcXG4gICAgICByZXR1cm4gaz09aT9cXFwi4oCc4oCc4oCd4oCdXFxcIsKgK3QuZm9udGNvbG9yKOWIhuexu+minOiJsik6dFxcclxcbiAgICB9XFxyXFxuwqDCoMKgwqBjYXRlZ29yaWVzLmZvckVhY2goKGNhdGVnb3J5LMKgaW5kZXgpwqA9PsKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqBsZXTCoHN1Yl9jYXRlZ29yaWVzwqA9wqBwZGZhKGNhdGVnb3J5LMKg5bCP57G75a6a5L2NKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgaWbCoChpbmRleMKgPT09wqAwKcKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0swqBrZXkpwqA9PsKge1xcbiAgICAgICAgICAgICAgICBsZXQgX+Wkp+exu+mTvuaOpT0odHlwZW9mKOWkp+exu+mTvuaOpSkgIT0gJ3VuZGVmaW5lZCcgJiYg5aSn57G76ZO+5o6lwqAhPSAnJyk/5aSn57G76ZO+5o6lOuWIhuexu+mTvuaOpTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgXFxyXFxuICAgICAgICAgICAgICAgIGxldCBf5aSn57G75qCH6aKYPSh0eXBlb2Yo5aSn57G75qCH6aKYKSAhPSAndW5kZWZpbmVkJyAmJiDlpKfnsbvmoIfpopjCoCE9ICcnKT/lpKfnsbvmoIfpopg65YiG57G75qCH6aKYOyAgICAgICAgICAgICAgXFxuICAgIFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV0wqB0aXRsZcKgPcKgcGRmaChpdGVtLMKgX+Wkp+exu+agh+mimCk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZsKgKHR5cGVvZijmjpLpmaQpwqAhPcKgJ3VuZGVmaW5lZCfCoCYmwqDmjpLpmaTCoCE9wqAnJynCoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGXCoD3CoHRpdGxlLnJlcGxhY2UobmV3wqBSZWdFeHAo5o6S6ZmkLMKgXFxcImdcXFwiKSzCoFxcXCJcXFwiKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH1cXG4gICAgICAgICAgICAgICAgbGV0IHBhcmFtcz17XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2F0ZV90ZW1wOsKgY2F0ZV90ZW1wLGtleTrCoGtleSxwYWdlOsKgcGFnZSxjbGVhcnM65riF6ZmkLHN0YXRlOueKtuaAgVxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIGxldCB1cmw9cGQoaXRlbSzCoF/lpKfnsbvpk77mjqUpO1xcbiAgICAgICAgICAgICAgICBpZijlpKfnsbvlpITnkIYpe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsPeS4gOe6p+WIhuexu+WkhOeQhih1cmwpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy9sb2codXJsKVxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHsgIFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aXRsZTrCoHNldFRpdGxlKGtleS50b1N0cmluZygpLGNhdGVfdGVtcFtpbmRleF0sdGl0bGUpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6wqAnc2Nyb2xsX2J1dHRvbicsXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVybDrCoCQodXJswqArwqAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKcKgPT7CoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsZXTCoG5ld19jYXRlwqA9wqBbXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2xlYXJzLmZvckVhY2goKGl0ZW0pPT57ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKGl0ZW0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYXJhbXMuY2F0ZV90ZW1wLmZvckVhY2goKGNhdGUswqBpbmRleCnCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBuZXdfY2F0ZS5wdXNoKGluZGV4wqA9PT3CoDDCoD/CoHBhcmFtcy5rZXkudG9TdHJpbmcoKcKgOsKgXFxcIjBcXFwiKVxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHV0TXlWYXIoXFxcImhlYWQuY2F0ZVxcXCIswqBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZSkpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKHBhcmFtcy5zdGF0ZSzCoGlucHV0KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWZyZXNoUGFnZSh0cnVlKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm7CoFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSxwYXJhbXMpXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkLnB1c2goe1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqBcXFwiYmxhbmtfYmxvY2tcXFwiLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxyXFxuwqDCoMKgwqDCoMKgwqDCoH3CoGVsc2XCoGlmwqAoZm9sZMKgPT09wqAnMSd8fOaKmOWPoOeKtuaAgT09ZmFsc2UpwqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSzCoGtleSnCoD0+wqB7XFxuICAgICAgICAgICAgICAgIHZhciBleHRyYXBvcz1mYWxzZTtcXG4gICAgICAgICAgICAgICAgaWYoaXRlbS5pbmNsdWRlcygndHlwZT1cXFwiQGV4dHJhXFxcIicpKXtcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhcG9zPXRydWU7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZygn6ZmE5Yqg5a6a5L2NJylcXG4gICAgICAgICAgICAgICAgfSAgIFxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgaWYoZXh0cmFwb3Mpe1xcbiAgICAgICAgICAgICAgICAgICB2YXLCoHRpdGxlwqA9wqBwZGZoKGl0ZW0swqAnYSYmVGV4dCcpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWbCoCh0eXBlb2Yo5o6S6ZmkKcKgIT3CoCd1bmRlZmluZWQnwqAmJsKg5o6S6ZmkwqAhPcKgJycpwqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlwqA9wqB0aXRsZS5yZXBsYWNlKG5ld8KgUmVnRXhwKOaOkumZpCzCoFxcXCJnXFxcIikswqBcXFwiXFxcIik7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICDCoH1cXG4gICAgICAgICAgICAgICAgdmFyIGpzb249e1xcbiAgICAgICAgICAgICAgICAgICAgdHlwZTpwZGZoKGl0ZW0sJ2EmJnN0YXRlJyksXFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTpwZGZoKGl0ZW0sJ2EmJnZhbHVlJyksXFxuICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9ZWxzZXtcXG4gICAgXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICAgIMKgdmFywqB0aXRsZcKgPcKgcGRmaChpdGVtLMKg5YiG57G75qCH6aKYKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmwqAodHlwZW9mKOaOkumZpCnCoCE9wqAndW5kZWZpbmVkJ8KgJibCoOaOkumZpMKgIT3CoCcnKcKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aXRsZcKgPcKgdGl0bGUucmVwbGFjZShuZXfCoFJlZ0V4cCjmjpLpmaQswqBcXFwiZ1xcXCIpLMKgXFxcIlxcXCIpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfVxcbiAgICAgICAgICAgICAgICB2YXIganNvbj3liIbnsbvpk77mjqUuaW5jbHVkZXMoJ0BAQCcpP3tcXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6cGRmaChpdGVtLOWIhuexu+mTvuaOpS5zcGxpdCgnQEBAJylbMF0pLFxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6cGRmaChpdGVtLOWIhuexu+mTvuaOpS5zcGxpdCgnQEBAJylbMV0pLFxcbiAgICAgICAgICAgICAgICB9OnBkKGl0ZW0s5YiG57G76ZO+5o6lKTtcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIGxldCBwYXJhbXM9wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhdGVfdGVtcDrCoGNhdGVfdGVtcCxpbmRleDrCoGluZGV4LGtleTrCoGtleSzCoHBhZ2U6wqBwYWdlLGpzb246anNvbixzdGF0ZTrnirbmgIFcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH1cXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlOsKgc2V0VGl0bGUoa2V5LnRvU3RyaW5nKCksY2F0ZV90ZW1wW2luZGV4XSx0aXRsZSksXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVybDrCoCQoJ2hpa2VyOi8vZW1wdHknwqArwqAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKcKgPT7CoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYXJhbXMuY2F0ZV90ZW1wW3BhcmFtcy5pbmRleF3CoD3CoHBhcmFtcy5rZXkudG9TdHJpbmcoKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwdXRNeVZhcihcXFwiaGVhZC5jYXRlXFxcIizCoEpTT04uc3RyaW5naWZ5KHBhcmFtcy5jYXRlX3RlbXApKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihwYXJhbXMuanNvbi5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KXtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIocGFyYW1zLmpzb24udHlwZSxwYXJhbXMuanNvbi52YWx1ZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKHBhcmFtcy5zdGF0ZSzCoHBhcmFtcy5qc29uKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9wqDCoMKgXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UodHJ1ZSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuwqBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0scGFyYW1zKSxcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqAnc2Nyb2xsX2J1dHRvbicsXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkLnB1c2goe1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqBcXFwiYmxhbmtfYmxvY2tcXFwiLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pO1xcclxcbsKgwqDCoMKgwqDCoMKgwqB9XFxyXFxuwqDCoMKgwqB9KVxcclxcbn1cXG5cXG5cXG5mdW5jdGlvbiBnZXRCYWNrSW1hZ2UoaW1ndXJsKXtcXG4gICAgcmV0dXJuIC91cmwoPzpcXFxccyspP1xcXFwoKC4qPylcXFxcKS9nLmV4ZWMoaW1ndXJsKVsxXS5yZXBsYWNlKC8oJ3xcXFwifCZxdW90OykvZ20sJycpO1xcbn1cXG5cIn1dIiwiaWNvbiI6Imh0dHA6Ly9waWMuajlwLmNvbS91cC8yMDIyLTgvMjAyMjgxMTE2NTEyMTM5LnBuZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment