xiaomianao666

小程序:聚杯狐.Aotu

Aug 15th, 2022
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@聚杯狐.Aotu@eyJmaXJzdEhlYWRlciI6ImNsYXNzIiwibGFzdF9jaGFwdGVyX3J1bGUiOiIiLCJ0aXRsZSI6IuiBmuadr+eLkC5Bb3R1IiwiYXV0aG9yIjoi5bCP5qOJ6KKEJnRlZSbpppnpm4XmmbQm5Y+R57Kq5raC5aKZJumBk+mVvybpobrmib/lpKnmhI8m5p6r5p6X6Zuo5q6HJumjjuWQueWPkeaioiZqb2Um5bCY5b2xIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjZnljbGFzcyIsInZlcnNpb24iOjMsImNvbF90eXBlIjoibW92aWVfM19tYXJxdWVlIiwiY2xhc3NfbmFtZSI6IummlumhtSbojLbmna/ni5AmNTHmkJzliacm55S15b2x54uXJueZveWrluiBlOebnybmkJzniYcm6L+955S15b2xIiwidHlwZSI6InZpZGVvIiwiY2xhc3NfdXJsIjoiYWxsJmh0dHBzOi8vY3VwZm94LmFwcC8maHR0cHM6Ly81MXNvdWp1LmNvbS8maHR0cHM6Ly93d3cuZGlhbnlpbmdnb3UuY29tLyZodHRwczovL3d3dy5icHpoZS5jb20vJmh0dHBzOi8vc291cGlhbi5hcHAvJmh0dHBzOi8vd3d3LnpodWlkeS5jb20iLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoi5b2x6KeGIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbnZhciBteXVybCA9IE1ZX1VSTC5zcGxpdChcIiMjXCIpWzFdO1xuZnVuY3Rpb24gbG9hZFVybChteXVybCxteXJ1bGUpIHtcbiAgICBzZXRSZXN1bHQoW3tcbiAgICAgICAgY29sX3R5cGU6IFwieDVfd2Vidmlld19zaW5nbGVcIixcbiAgICAgICAgdXJsOiBteXVybCxcbiAgICAgICAgZGVzYzogXCJmbG9hdCYmdG9wXCIsXG4gICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICBjYW5CYWNrOiB0cnVlLFxuICAgICAgICAgICAgdXJsSW50ZXJjZXB0b3I6ICQudG9TdHJpbmcoKE1ZX1JVTEUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlucHV0LnN0YXJ0c1dpdGgoXCJodHRwczovL2N1cGZveC5hcHAvXCIpICYmICFpbnB1dC5zdGFydHNXaXRoKFwiaHR0cHM6Ly81MXNvdWp1LmNvbS9cIikgJiYgIWlucHV0LnN0YXJ0c1dpdGgoXCJodHRwczovL3d3dy5kaWFueWluZ2dvdS5jb20vXCIpICYmICFpbnB1dC5zdGFydHNXaXRoKFwiaHR0cHM6Ly93d3cuYnB6aGUuY29tL1wiKSAmJiAhaW5wdXQuc3RhcnRzV2l0aChcImh0dHBzOi8vc291cGlhbi5hcHAvXCIpICYmICFpbnB1dC5zdGFydHNXaXRoKFwiaHR0cHM6Ly93d3cuemh1aWR5LmNvbS9cIikgJiYgIWlucHV0LmluY2x1ZGVzKFwic2VhcmNoXCIpICYmICFpbnB1dC5pbmNsdWRlcyhcImRvdWJhblwiKSAmJiAhaW5wdXQuaW5jbHVkZXMoXCJiYWlrZS5iYWlkdVwiKSAmJiAhaW5wdXQuaW5jbHVkZXMoXCJ3aWtpcGVkaWFcIikgJiYgIWlucHV0LmluY2x1ZGVzKFwibW9lZ2lybFwiKSAmJiAhaW5wdXQuaW5jbHVkZXMoXCJiaWxpYmlsaVwiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC50b1N0cmluZygodXJsLE1ZX1JVTEUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5vcGVuKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlOk1ZX1JVTEUudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflvbHniYfor6bmg4UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwOk1ZX1JVTEUuZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlUnVsZTogTVlfUlVMRS5wcmVSdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VzOk1ZX1JVTEUucGFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ3l6bmUuY29tL3RocmVhZCcsICd5em5lLmNvbS9WT0QnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnMzFrYW4udmlwL3BsYXknLCAnMzFrYW4udmlwLzMxa2FuJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ25pdW1hdHYuY29tL3BsYXknLCAnbml1bWF0di5jb20vdm9kJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ2RtNTMwcC5jYy9wbGF5JywgJ2RtNTMwcC5jYy92aWV3JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ3BsYXknLCAnZGV0YWlsJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL2JpbGliaWxpKC4qPylcXC9kZXRhaWwvLCAnYmlsaWJpbGkkMS9wbGF5JykgKyAnI2ltbWVyc2l2ZVRoZW1lIycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZFJ1bGU6IE1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9LGlucHV0LE1ZX1JVTEUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxNWV9SVUxFKVxuICAgICAgICB9XG4gICAgfV0pO1xufVxuaWYgKG15dXJsID09IFwiYWxsXCIpIHtcbiAgICBsZXQgZCA9IFtdO1xuICAgIGxldCBjbHMgPSBnZXRNeVZhcihcImNsc1wiLCBcIlwiKTtcbiAgICBpZiAoY2xzKSB7XG4gICAgICAgIHUgPSBjbHM7XG4gICAgICAgIGxvYWRVcmwodSk7XG4gICAgICAgIGNsZWFyTXlWYXIoXCJjbHNcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHIgPSBKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9ob21lQFwiICsgTVlfUlVMRS50aXRsZSkpO1xuICAgICAgICBsZXQgY24gPSByLmNsYXNzX25hbWUuc3BsaXQoXCImXCIpO1xuICAgICAgICBsZXQgY3UgPSByLmNsYXNzX3VybC5zcGxpdChcIiZcIik7XG4gICAgICAgIGxldCBjcGljID0gW1wiXCIsXG4gICAgICAgICAgICBcImh0dHBzOi8vYXBpLmlvd2VuLmNuL2Zhdmljb24vY3VwZm94LmFwcC5wbmdcIixcbiAgICAgICAgICAgIFwiaHR0cHM6Ly81MXNvdWp1LmNvbS9pbWFnZXMvZmF2aWNvbi5wbmdcIixcbiAgICAgICAgICAgIFwiaHR0cHM6Ly9pbWcxLmFsaTIxMy5uZXQvc2hvdXlvdS9jb3Zlci81LzEwMzU1MzMzLmpwZz8xNjQyNjA0MjcxXCIsXG4gICAgICAgICAgICBcImh0dHBzOi8vZGluZ3l1ZS53cy4xMjYubmV0LzIwMjIvMDMwNi83MWYwNGEzN2owMHI4YnRrczAwMDRkMDAwN3MwMDI4cC5qcGdcIixcbiAgICAgICAgICAgIFwiaHR0cHM6Ly9zb3VwaWFuLmFwcC9pbWFnZXMvaWNvbi5wbmdcIixcbiAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuemh1aWR5LmNvbS9hZC9pY29uLnBuZ1wiXG4gICAgICAgIF07XG4vKnJlcXVpcmUoJ2h0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTQwOTEnKTvpobrmkJwoZCkqL1xuZC5wdXNoKHtcbiAgICAgICAgaW1nOiAnaHR0cHM6Ly9hcGkuaXhpYW93YWkuY24vYXBpL2FwaS5waHAnICsgXCIjX3Q9XCIgKyBNYXRoLmNlaWwobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAzMDAwMDApLFxuICAgICAgICB1cmw6ICd3ZWI6Ly9odHRwczovL2FwaS5peGlhb3dhaS5jbi9hcGkvYXBpLnBocCcsXG4gICAgICAgIGRlc2M6ICcwJyxcbiAgICAgICAgY29sX3R5cGU6ICdjYXJkX3BpY18xJyxcbiAgICB9LCB7XG4gICAgICAgIHVybDogXCInaGlrZXI6Ly9zZWFyY2g/cz0nK2lucHV0KyAnJnJ1bGU9JyArIE1ZX1JVTEUudGl0bGVcIixcbiAgICAgICAgZGVzYzogJ+aQnOS9oOaDs+imgeeahC4uLicsXG4gICAgICAgIHRpdGxlOiAn5pCc57SiJyxcbiAgICAgICAgY29sX3R5cGU6ICdpbnB1dCd9KVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgY24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGNuW2ldLFxuICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKCh1KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFwiY2xzXCIsIHUpO1xuICAgICAgICAgICAgICAgICAgICAvL3JlZnJlc2hYNURlc2MoXCJ0b3AmJmZsb2F0XCIpO1xuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJoaWtlcjovL2VtcHR5XCI7XG4gICAgICAgICAgICAgICAgfSwgY3VbaV0pLFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcImljb25fc21hbGxfM1wiLFxuICAgICAgICAgICAgICAgIGRlc2M6IFwiXCIsXG4gICAgICAgICAgICAgICAgcGljX3VybDogY3BpY1tpXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJlZnJlc2hYNURlc2MoXCIwJiZmbG9hdFwiKTtcbiAgICAgICAgc2V0UmVzdWx0KGQpO1xuICAgIH1cbn0gZWxzZSB7XG4gICAgbG9hZFVybChteXVybCxNWV9SVUxFKTtcbn1cbi8v5LiA57qn5p2l6Ieq6IGa5LqR55uYcHJv5b6u5pS55aWX5aiDLOmhuuS9rOaQnOe0ouW7uuiuriIsInNlYXJjaF91cmwiOiJoaWtlcjovL2VtcHR5IyNoaWtlcjovL2VtcHR5I3gjZnlwYWdlQC0xQCN4IyoqIiwiZ3JvdXAiOiLikaLlvbHmkJwiLCJzZWFyY2hGaW5kIjoianM6XG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goXCJoaWtlcjovL3BhZ2Uvc2VhcmNoc3NcIikpLnJ1bGUpO1xuLy/mkJzntKLop6PmnpDop4TliJnmnaXoh6rpppnmg4XlvbHop4bojLbmna/ni5DmqKHlnZfvvIxieemmmembheaZtCblj5HnsqrmtoLlopkiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxuZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL2RldGFpbHNcIikpLnJ1bGUpO1xuLy/pu5jorqTot7PovazlopnkvazmqKHmnb9R6Ieq5Yqo5Yy56YWNK+mmmeWFje+8jOWPr+iHquihjOaUueS4uui3s+i9rERS5Yy56YWN77yM5bCGZGV0YWlsc1HmlLnkuLpkZXRhaWxz5Y2z5Y+v44CC6YCC6YWN54mIUeaooeadv+WinuWKoOejgeWKm+WXheaOou+8jOeUsWpvZeeglOWPkeOAgiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIqIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoiIiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIkRS5LqM57qn5Yy56YWNXCIsXCJwYXRoXCI6XCJkZXRhaWxzXCIsXCJydWxlXCI6XCJqczpcXG5ldmFsKGZldGNoKCdodHRwczovL2dpdGNvZGUubmV0L3FxXzMyMzk0MzUxL2RyLy0vcmF3L21hc3Rlci9qcy/pooTlpITnkIYuanMnKSk7XFxucmVxdWlyZShjb25maWcu6Ieq5Yqo5Yy56YWNKTtcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9kbUxhenkuanNcXFwiKSkucnVsZSk7XFxu6Ieq5Yqo5LqM57qnKGxhenkpO1xcbi8v6Ieq5Yqo5LqM57qnKCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpppnmg4XojLbmna/mkJxcIixcInBhdGhcIjpcInNlYXJjaHNzXCIsXCJydWxlXCI6XCJcXG5ldmFsUHJpdmF0ZUpTKCdodHpPSHhyb1dBNDFCK1hKcmVVVDMzeWtxR21nT1hKWjcwZGZmSWREb2Qwa2cwMTIzbEZKOE4xdWJTYTg2YWxsNE94ZERZSVFFdTMwZlFYaWU2WjRjNmRPK1dXYXRidmxnMmJ6OGtLQmd3dTJnbEw3bmVLVDVFeDZwM3VGMFhrYWFkbFBCRmVnU1lJSUc5OFNFbzlRZWU2Qkdac1hRbEh0bWdHNGQ2bWF2NWM5MVV2d3JNRVlyZ1pjTmU1eXFJMXZqYnlWbXlLY2JmU01lS3NIUGJqdndSTHZQSE5ZMUxEeENpNmVZTHkybWE2djlrR2F3aTh2LzFnalFMbnhKTGpTQzFlV0NkSXQ2NlRSTlN4UXQ5MjI4aFdCdllqTHRYMWdvaE9YOGVJSWRycVF5WUN3dTQxbURmd3NFczVmQk44Tm5yN1NUR2tNZ0pJSnc5MnRwUjBSS1pIaldMZXYwRmpNOXFOWmFvV1NteFNuUVB2aFFUWHlPL0loVjdSNTZVVVdxS1RDUEJUaS9JbGNoeDJWSnNqZ3VkWFFENlBva2R4eFNXWFFKa01jZzZhMGhjbE5CNFFiYWp1S0ord3hoazUyNjdwT0tHRXd4N09FSGhpRHczOW01ZmFCbG1QaGNsWXAzZmNYWXlUc1QxUnVGWWcrSlZvUkpqYXY2NGtJR2FjME1oMTFoMlRkS1Z4NGs0b3Z6RkRDeFNMZFliaVBQc0Y0S2hDREpCb3B6cjlPaFU4T2traVp2M1A0UEtXU0RibE5RQ0NBVVdlcTNNajVWMzdpMy9vZi9WRkJFazRNMDRkQkJoc0Fsa0VmNk5IOXNRRWk0aXVsODF0N3hJVjlpL256NVgyOUgvdTdNMnBXNllhOExmdElFVW00NE5haXptK2xzMzFNTllYOHF6VUN4SUg5cXVidkFNb2ptUlhiL2VVNXNNSEdNQXF2a1plQzZFN2JuOWo0K3NzcnkwaldWblA3Q0ovNzFrZ0IxUGI5TzYwc1pxTG9VTmo5Qlg3L1Y4TVdpUlRmVWJiY1RMSDlkWWNXbHNsV1F6YXdvN2trVStHRllzWGhoWVc0OS9RTjIzYTZmMmMrVHV0bU95cnM5L3FMTG5XVlhSbExOcXRFNVFoTXdKQlFvVzFLdkdqNDZPQVBITTZvS1U3QXpFZDVlb1pjRXlKUnFJdUxlYVQ3Znp3M1RjNkRkOHgvZy9KejluRi9Ib0ZjenRLZWxWMGlUN2szbXNFVVVPSE4zSzEza0pyUWh3cVZJRnlsYUxYQTNjMWc4THhGbVlmN3BJUzFMNUpFZGZJZVRCbE1Tck5xTEtLOGFoK29mQ0J4NDg3Ym9HQTd4SCtKdGhSeEVsR0xjTGUveXl2TFNOWldjL3NJbi92V1NBSFU5cGw0OHZLcThZU0xrSXRjVEFucy9ycnI4cUtEbjluWENSK0FZcjhVVmcrR3VVR2d4UnJyOHBVSzRjYVlLRmdUYU1QRllvemt4OC9GL2o5ZGlRVGdxNlBKc01nVWQvN0gvSzVxRll0VUphUHAxNlFhMWxkUWljRDZhMVpHV20xOXdMb2YwS0w2elRIVTgzWWUxWXF4OXphdkdpVHFWc2o4d0liUUQvbnFaaVlVeFR0bld5OUcwUTIwYjhtZG9Bd0owZ0FiQldYNTRGc0g1YXhkMW1ySkpWUGY5U0YzNnAwL3pKVXNrV3piblhpQ3VpaUJqZmhtdksxTHE2aitwdnRzSHp6dmN1WElFcmdyMUQvUHVnRm1oT1ZBLzUyTkFMWGtENTM2QnhTZlRURU9vVmYrUlNrZEpUYUlFOWl4N293cnplSnl2ZXRmSzJKTWpqOS84VTBNck0zQnQzUGdneXlsNnNnSGVrbHRnZ2JhenBReSt3Nzg4N0RrSnl2djJ3bk9Kd2lOQWZEdmxLNTVkSVdjYnBSQ0g4OUVhTzQ1dWxLUCtNZG42YVZOQ3NwR21wdWFuZmlub0pKQkVqaHZKRUVIcWV4bjdDRFBYUjlUc0R5TUNrVVVsaGZpVTBaUEFPVUV3akhMeWVoVWthZWlLSGREVlFYaFpkRnpXbUltZE1lRmtiYVlaMXkzQmF4eHJGY255SjA4S3czZHdtT3JaUUFpbXR5eHVjT3c1QzNIR2dhUzNCdHkvdVhDQ2RxYjlBSGhDTzlsdnkwTUlTTlhHZXV5T00rdkdGa3I5a3NJaVRpbXdGSWpYMjIvYXVWbzZMQjJzelF3cUVhbGQzSjRPNHlaOC96OFNNbTFZYkJDVk1nVk8ycEhmUlhPbERMN0R2enpzT1FuSysvYkNjNG5DSTBCOE8rVXJubDBoWnh1bEVJZnowUm83am02VW8vNHgyZnBwVTBLeWthYW01cWQrS2Vna2tFU09HOGtRUWVwbHFVNk5jSCtVa0ZaVlRrVlpJS1F5QlF5M1F6RVFJbTZ5ajk4NGxvU2YvYXB4NnhleU81eW5BUUFId1E3U0ZwWjQ3QUx1N2d3dUtTLzVjVEwzZzduejlCcW5jSnVGVTJWa0JEMkF6bmI1c0haWjRNbHNwS0QrOGt2WHJOMzFqbnNuMU8zaVJIcVF3bUdCQnRndGhGU0p2MDQ5c0NFZnB1T0JPcWg0MU9vL2N2NjEwSzBSV1dZQkMwc2ljUGYwb0U5NGlRb1o5UWdZN1FjSCtqYzVpZ1RCTDNoci8yZHNrcXJVcGMrWWg3SXZqNnJiUGY4WWVqY042YVFhSlE5d0F1aVJmZkM4dklXWkwvV3RnQ0hHTzFZQ1h4dkNMaVhrcW1JM0d5ejE5cGdkWk1rcUNIU1lLa3RhQldSQ1pDS3dUNGZLVVBHM2xpcXljaVRHR3NBMzlNNkwxUnRCcmRnYUFYK2Y0ZCs1V3pYTHUyNktJR04rR2E4clV1cnFQNm0rMndmUE85eTVjZ1N1Q3ZVUDgrNkFXYUU1YVcyOXFSeVBQN2Q3SjltQkFBRCtvUzdwenkwOWRaT1pWTEdZMnFIekZLTTB0eEJlWFAvdWFhZFY2Z0tWdlV2cWZQcGRzdko0Z3VVSC9BdTE4QjFwWFdTckQ3MjlySTZGc0hLVmVLRUV6TW5EbGVVcHYzL2wvVEU4b1dYb292MEtzc3J5MGpXVm5QN0NKLzcxa2dCMVBhOHNWbURPeklsU1RJOFlXY2oyWDNqeXl2TFNOWldjL3NJbi92V1NBSFU5bFU5UTVPbkVpZU01WEVGUFpLUDc4UkxEdVV0RG1xeXduR2RnRDlvRDdMU3dGaXRIU2grRUtKR0NNb1V1RkkyMUF2UFl6UHdsclUvY2RuL0IyV1pENGRWZWFPRFJBUmN2Z2xjUnQ1YW14K0V5eXZMU05aV2Mvc0luL3ZXU0FIVTl2VU9CRG9rRWdzeUVRaFh1bktRTHNvNnBadFQyZUZDTjB4V3Z0citMdzcvWWFVYmpsUmEzbHhVcWl0NE8yYkRYSE9HRmZ5bWJjcDZjbWJhVDNESHhJQmVDd3pRMUNyTHdQOU9iZUpYK0lGUktzMVpGdy8xVXZkTjN3ZHBRN3A5S1J1MDZmaWJiNUN4TVhORzIxQXZvMVQ0M0tqd3k0dWdHcVpZS3JES1MwUWNnZ1I3OWZzSDNhRUp0Ri9hRDV3YnRkQnFuY0p1RlUyVmtCRDJBem5iNXNIWlo0TWxzcEtEKzhrdlhyTjMxam5zanFZcXpMSGRiQTQ1Q0xPM3k4YTV6RG9wV1dBRnh6SEpubjUxNnJialNQLzYxMEswUldXWUJDMHNpY1BmMG9FOTRpUW9aOVFnWTdRY0gramM1aWdUQkwzaHIvMmRza3FyVXBjK1loN0l2ajdsR2JSNm95ZS9EeUFuV2VJNHd5TDZoTGZ4L1hncENQN0Rib1ZPWXVmdDFueHZDTGlYa3FtSTNHeXoxOXBnZFpNSWEvcC9FVDZiYVpING5Xa2pwZm9UYTZCT0JqQnhORi9GSzRpcXhkUWpPVlJ0QnJkZ2FBWCtmNGQrNVd6WEx1MjZLSUdOK0dhOHJVdXJxUDZtKzJ3ZlBPOXk1Y2dTdUN2VVA4KzZBV2FFNWFXMjlxUnlQUDdkN0o5bUJBQUQrb1M3cHp5MDlkWk9aVkxHWTJxSHpGS00wdHhCZVhQL3VhYWRWNmdLVnZVdnFmUHBkc3ZKNGd1VUgvQXUxOEIxcFhXU3JENzI5ckk2RnNIS1ZlS0VFek1ud29nQXIzaWkzUmRXTytGUEYwZWZVTXNyeTBqV1ZuUDdDSi83MWtnQjFQYThzVm1ET3pJbFNUSThZV2NqMlgzanl5dkxTTlpXYy9zSW4vdldTQUhVOW1oeGdRMmZnS1c0bC9CclE0NDlVQ2lKMGJ3cDlMbGVyNzRRdlRIK1NXSSt3Rml0SFNoK0VLSkdDTW9VdUZJMjFBdlBZelB3bHJVL2Nkbi9CMldaRDRkVmVhT0RSQVJjdmdsY1J0NWFteCtFeXl2TFNOWldjL3NJbi92V1NBSFU5dlVPQkRva0Vnc3lFUWhYdW5LUUxzbzZwWnRUMmVGQ04weFd2dHIrTHc3L0JFTEJwSlk1SzBnd2dPVFdVNkduUFdCWE5HemJDeVZNUHd4cmtpVWVQcG5NcCtpY0FoOGZIVXF4V0tJUVJhTWc1alh4WG1jM0ZmSUxqRS9tQjBuUHN3PT0nKTtcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIlHmqKHniYjkuoznuqfljLnphY1cIixcInBhdGhcIjpcImRldGFpbHNRXCIsXCJydWxlXCI6XCJqczpcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9kbUxhenkuanNcXFwiKSkucnVsZSk7XFxuY29uc3Qge1xcbiAgICBhdXRvUGFnZVxcbn0gPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9hdXRvP3J1bGU95qih5p2/wrdRXFxcIik7XFxuYXV0b1BhZ2UoZ2V0UmVzQ29kZSgpKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5bCY5b2xZG3nm5LlrZBMYXp56Lev55SxXCIsXCJwYXRoXCI6XCJkbUxhenkuanNcIixcInJ1bGVcIjpcInZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAvLyDljLnphY14bWzmoLzlvI/lvLnluZVcXG4gICAgZnVuY3Rpb24geDVydWxlX3htbChqaWV4dXJsLCBzcmN1cmwpIHtcXG4gICAgICAgIHNob3dMb2FkaW5nKFxcXCLnvZHpobXorr/pl67mo4DntKLkuK3vvIzor7fnqI3lgJkuLi5cXFwiKTtcXG4gICAgICAgIHZhciB2aWRlbyA9ICd3ZWJSdWxlOi8vJyArIGppZXh1cmwgKyAnQCcgKyAkLnRvU3RyaW5nKChzcmN1cmwpID0+IHtcXG4gICAgICAgICAgICAvL2ZiYS5sb2coZmJhLmdldFVybHMoKSk7XFxuICAgICAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA9PSBudWxsIHx8IHdpbmRvdy5fX2NvdW50ID09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuX19jb3VudCA9IDBcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID49IDIzKSB7XFxuICAgICAgICAgICAgICAgIC8vIHJldHVybiBzcmN1cmxcXG4gICAgICAgICAgICAgICAgYmZ1cmwgPSBzcmN1cmwuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgYXJncyA9IHNyY3VybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gd2luZG93Ll9fY291bnQgKyAxO1xcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+IDEgJiYgd2luZG93Ll9fY291bnQgPD0gMyAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmlubmVyVGV4dC5zZWFyY2goL+inpuWPkeS6humYsuebl+mTvnzmnKrmjojmnYN85o6l5Y+j6Ziy55uXfOivt+WIsOS4u+ermeingueciy8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXNyY3VybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS4gCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5ocmVmO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xot7PpmLLnm5fpqozor4HkuownKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gc3JjdXJsXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cuX19jb3VudCA+IDMgJiYgd2luZG93Ll9fY291bnQgIT0gbnVsbCAmJiB3aW5kb3cuX19jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgaWYgKHVybHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmhpZGVMb2FkaW5nKCk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA57Si5aSx6LSl77yM5Y+v6IO96ZO+5o6l5peg5rOV6K6/6Zeu44CCJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzLmxlbmd0aCA9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xnm7Tpk77kuI5KU09O6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1swXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1swXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbMF0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbMF0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbMF1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5iaWxpYmlsaS5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzWzBdLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzWzBdICsgJyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IHVybHNbMF0uc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IHVybHNbMF0ubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhbG9jYXRpb24uaHJlZi5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IGZiYS5mZXRjaChsb2NhdGlvbi5ocmVmLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEvXFxcXDxtZXRhLy50ZXN0KGh0bWwpICYmICEvXFxcXDxodG1sLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBKU09OLnBhcnNlKGh0bWwpLnVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gSlNPTi5wYXJzZShodG1sKS51cmwubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL+ayoeacieaJvuWIsOermeeCuXznvZHpobXml6Dms5XmiZPlvIB8NDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5pel5b+X5qOA57Si56ysJyArIHdpbmRvdy5fX2NvdW50ICsgJ+asoScpO1xcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiB1cmxzKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIXVybHNbaV0ubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OHxcXFxcLmNzc3xcXFxcLmpzXFxcXD8vKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbaV0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIikuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKFxcXCI7e1xcXCIsIFxcXCIjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7e1xcXCIpLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCd0aXRhbi5tZ3R2LmNvbScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdqdWhhb2thbicpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3Lmp1aGFva2FuLmNjL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5qdWhhb2thbi5jYy8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignb2piaycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vdi5vamJranguY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLnhtbCcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3Yub2pia2p4LmNvbS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignd2tmaWxlJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdzaGVuZ2xpbnlpeWFuZycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8venl6LnNkbGp3b21lbi5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8venl6LnNkbGp3b21lbi5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3BlaXpxLm9ubGluZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vcGxheS5wZWl6cS5vbmxpbmUvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vcGxheS5wZWl6cS5vbmxpbmUvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9ICh1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJykuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gKHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS54bWwnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSAvL2VuZCBmb3IgaVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgc3JjdXJsKTtcXG4gICAgICAgIHJldHVybiB2aWRlb1xcbiAgICB9XFxuXFxuICAgIC8vIOWMuemFjWpzb27moLzlvI/lvLnluZVcXG4gICAgZnVuY3Rpb24geDVydWxlX2pzb24oamlleHVybCwgc3JjdXJsKSB7XFxuICAgICAgICBzaG93TG9hZGluZyhcXFwi572R6aG16K6/6Zeu5qOA57Si5Lit77yM6K+356iN5YCZLi4uXFxcIik7XFxuICAgICAgICB2YXIgdmlkZW8gPSAnd2ViUnVsZTovLycgKyBqaWV4dXJsICsgJ0AnICsgJC50b1N0cmluZygoc3JjdXJsKSA9PiB7XFxuICAgICAgICAgICAgLy9mYmEubG9nKGZiYS5nZXRVcmxzKCkpO1xcbiAgICAgICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPT0gbnVsbCB8fCB3aW5kb3cuX19jb3VudCA9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgd2luZG93Ll9fY291bnQgPSAwXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+PSAyMykge1xcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gc3JjdXJsXFxuICAgICAgICAgICAgICAgIGJmdXJsID0gc3JjdXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgIGFyZ3MgPSBzcmN1cmwubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nXFxuICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgd2luZG93Ll9fY291bnQgPSB3aW5kb3cuX19jb3VudCArIDE7XFxuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID4gMSAmJiB3aW5kb3cuX19jb3VudCA8PSAzICYmIHdpbmRvdy5fX2NvdW50ICE9IG51bGwgJiYgd2luZG93Ll9fY291bnQgIT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuaW5uZXJUZXh0LnNlYXJjaCgv6Kem5Y+R5LqG6Ziy55uX6ZO+fOacquaOiOadg3zmjqXlj6PpmLLnm5d86K+35Yiw5Li756uZ6KeC55yLLykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICghc3JjdXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V6Lez6Ziy55uX6aqM6K+B5LiAJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS6jCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBzcmN1cmxcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5fX2NvdW50ID4gMyAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICBpZiAodXJscy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEuaGlkZUxvYWRpbmcoKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mo4DntKLlpLHotKXvvIzlj6/og73pk77mjqXml6Dms5Xorr/pl67jgIInO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHMubGVuZ3RoID09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+WwneivleebtOmTvuS4jkpTT07op6PmnpAnKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmxzWzBdLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OHxcXFxcL3ZpZGVvXFxcXC90b3NcXFxcLy8pICYmICF1cmxzWzBdLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8bTN1OFxcXFwucHd8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1swXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1swXS5pbmRleE9mKCdiaWxpdmlkZW8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1swXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5iaWxpYmlsaS5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzWzBdLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzWzBdICsgJyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICd3d3cubWd0di5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSB1cmxzWzBdLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSB1cmxzWzBdLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS5qc29uJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OHxcXFxcL3ZpZGVvXFxcXC90b3NcXFxcLy8pICYmICFsb2NhdGlvbi5ocmVmLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8bTN1OFxcXFwucHd8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IGZiYS5mZXRjaChsb2NhdGlvbi5ocmVmLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEvXFxcXDxtZXRhLy50ZXN0KGh0bWwpICYmICEvXFxcXDxodG1sLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBKU09OLnBhcnNlKGh0bWwpLnVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gSlNPTi5wYXJzZShodG1sKS51cmwubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC/msqHmnInmib7liLDnq5nngrl8572R6aG15peg5rOV5omT5byAfDQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSkubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGxvY2F0aW9uLmhyZWYubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5pel5b+X5qOA57Si56ysJyArIHdpbmRvdy5fX2NvdW50ICsgJ+asoScpO1xcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiB1cmxzKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIXVybHNbaV0ubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OHxcXFxcLmNzc3xcXFxcLmpzXFxcXD8vKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbaV0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIikuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBmeV9icmlkZ2VfYXBwLmdldEhlYWRlclVybCh1cmxzW2ldKS5yZXBsYWNlKFxcXCI7e1xcXCIsIFxcXCIjaWdub3JlSW1nPXRydWUjI2lzVmlkZW89dHJ1ZSM7e1xcXCIpLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0uanNvbidcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzW2ldLmluZGV4T2YoJ2JpbGl2aWRlbycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS5qc29uJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdqdWhhb2thbicpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3Lmp1aGFva2FuLmNjL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ29qYmsnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3Yub2pia2p4LmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS5qc29uJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vdi5vamJranguY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCd3a2ZpbGUnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ2Rt55uS5a2QJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy9kbeebkuWtkC9kbS5qc29uJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdzaGVuZ2xpbnlpeWFuZycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8venl6LnNkbGp3b21lbi5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWydkbeebkuWtkCddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMvZG3nm5LlrZAvZG0uanNvbicsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3p5ei5zZGxqd29tZW4uY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdwZWl6cS5vbmxpbmUnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3BsYXkucGVpenEub25saW5lL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9wbGF5LnBlaXpxLm9ubGluZS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gKHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSAodXJsc1tpXSArICcjaXNWaWRlbz10cnVlIycpLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsnZG3nm5LlrZAnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL2RtLmpzb24nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSAvL2VuZCBmb3IgaVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgc3JjdXJsKTtcXG4gICAgICAgIHJldHVybiB2aWRlb1xcbiAgICB9XFxuXFxuICAgIC8vIOWMuemFjeeVmeepuuagvOW8j+W8ueW5lVxcbiAgICBmdW5jdGlvbiB4NXJ1bGVfYmxhbmsoamlleHVybCwgc3JjdXJsKSB7XFxuICAgICAgICBzaG93TG9hZGluZyhcXFwi572R6aG16K6/6Zeu5qOA57Si5Lit77yM6K+356iN5YCZLi4uXFxcIik7XFxuICAgICAgICB2YXIgdmlkZW8gPSAnd2ViUnVsZTovLycgKyBqaWV4dXJsICsgJ0AnICsgJC50b1N0cmluZygoc3JjdXJsKSA9PiB7XFxuICAgICAgICAgICAgLy9mYmEubG9nKGZiYS5nZXRVcmxzKCkpO1xcbiAgICAgICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPT0gbnVsbCB8fCB3aW5kb3cuX19jb3VudCA9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgd2luZG93Ll9fY291bnQgPSAwXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+PSAyMykge1xcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gc3JjdXJsXFxuICAgICAgICAgICAgICAgIGJmdXJsID0gc3JjdXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgIGFyZ3MgPSBzcmN1cmwubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgIGRhbm11OiAnJ1xcbiAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gd2luZG93Ll9fY291bnQgKyAxO1xcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+IDEgJiYgd2luZG93Ll9fY291bnQgPD0gMyAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmlubmVyVGV4dC5zZWFyY2goL+inpuWPkeS6humYsuebl+mTvnzmnKrmjojmnYN85o6l5Y+j6Ziy55uXfOivt+WIsOS4u+ermeingueciy8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXNyY3VybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS4gCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5ocmVmO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xot7PpmLLnm5fpqozor4HkuownKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gc3JjdXJsXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cuX19jb3VudCA+IDMgJiYgd2luZG93Ll9fY291bnQgIT0gbnVsbCAmJiB3aW5kb3cuX19jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgaWYgKHVybHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmhpZGVMb2FkaW5nKCk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA57Si5aSx6LSl77yM5Y+v6IO96ZO+5o6l5peg5rOV6K6/6Zeu44CCJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzLmxlbmd0aCA9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xnm7Tpk77kuI5KU09O6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1swXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1swXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbMF0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbMF0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbMF1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJycsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbMF0uaW5kZXhPZigndGl0YW4ubWd0di5jb20nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXSArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICd3d3cubWd0di5jb20nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSB1cmxzWzBdLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSB1cmxzWzBdLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhbG9jYXRpb24uaHJlZi5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJydcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gZmJhLmZldGNoKGxvY2F0aW9uLmhyZWYsIHt9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9cXFxcPG1ldGEvLnRlc3QoaHRtbCkgJiYgIS9cXFxcPGh0bWwvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIEpTT04ucGFyc2UoaHRtbCkudXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IEpTT04ucGFyc2UoaHRtbCkudXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICcnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC/msqHmnInmib7liLDnq5nngrl8572R6aG15peg5rOV5omT5byAfDQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZyhsb2NhdGlvbi5ocmVmLmluZGV4T2YoJz1odHRwJykgKyAxKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSkubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCfml6Xlv5fmo4DntKLnrKwnICsgd2luZG93Ll9fY291bnQgKyAn5qyhJyk7XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1tpXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4fFxcXFwuY3NzfFxcXFwuanNcXFxcPy8pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1tpXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIikubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzW2ldLmluZGV4T2YoJ2JpbGl2aWRlbycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCd0aXRhbi5tZ3R2LmNvbScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnd3d3Lm1ndHYuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ2p1aGFva2FuJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ29qYmsnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3Yub2pia2p4LmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJycsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3Yub2pia2p4LmNvbS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignd2tmaWxlJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpooTnlZnlvLnluZXmjqXlj6MnXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3NoZW5nbGlueWl5YW5nJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly96eXouc2RsandvbWVuLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJycsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3p5ei5zZGxqd29tZW4uY29tLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1tpXS5pbmRleE9mKCdwZWl6cS5vbmxpbmUnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3BsYXkucGVpenEub25saW5lL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6aKE55WZ5by55bmV5o6l5Y+jJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vcGxheS5wZWl6cS5vbmxpbmUvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9ICh1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJykuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gKHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIGZvciBpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9LCBzcmN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHZpZGVvXFxuICAgIH1cXG5cXG4gICAgLy8g5a6a5L2N57q/6LevXFxuICAgIHZhciB4eCA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkubWF0Y2goL3IgcGxheWVyXy4qPz0oLio/KTwvKVsxXSk7XFxuICAgIHZhciBqc3VybCA9IHh4LnVybDtcXG4gICAgdmFyIGZyb20gPSB4eC5mcm9tO1xcbiAgICAvLyDliKTmlq3lvLnluZXnp43nsbtcXG4gICAgaWYgKGpzdXJsLm1hdGNoKC9cXFxcLm0zdTgvKSkge1xcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICB1cmxzOiBbanN1cmxdLFxcbiAgICAgICAgICAgIG5hbWVzOiBbJ+mihOeVmeW8ueW5leaOpeWPoyddLFxcbiAgICAgICAgICAgIGRhbm11OiAnJ1xcbiAgICAgICAgfSk7XFxuICAgIH0gZWxzZSBpZiAoanN1cmwubWF0Y2goL2l4aWd1YXxtaWd1fHNvaHV8cHB0dnxsZS8pKSB7XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL3RoaXJkcGFydHk/cnVsZT1kbeebkuWtkCcpKS5ydWxlKTtcXG4gICAgICAgIGRhbm11ZnVuKGpzdXJsKTtcXG4gICAgICAgIHJldHVybiB4NXJ1bGVfanNvbihpbnB1dCwgaW5wdXQpO1xcbiAgICB9IGVsc2UgaWYgKGpzdXJsLm1hdGNoKC95b3VrdXxxaXlpLykpIHtcXG4gICAgICAgICAvLyDkuIvmlrnmmK/osIPnlKjov5znqIvlvLnluZXnvZHnq5nmlbDmja7vvIzniLHlpYfoibrmlK/mjIHlrozlpb3vvIzkvJjphbfnuq/nsrnnnIvov5DmsJTvvIzoh6rooYzliIfmjaLlvIDlkK/kuIvmlrnku6PnoIFcXG4vKiAgICAgICAgIGV2YWxQcml2YXRlSlMoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZmM/cnVsZT1kbeebkuWtkCcpKS5ydWxlKTtcXG4gICAgICAgIGZjZG0oanN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHg1cnVsZV94bWwoaW5wdXQsIGlucHV0KTsgKi9cXG4gICAgICAgIC8vIOm7mOiupOiwg+eUqOesrOS4ieaWueW6k+S7o+egge+8jOiLpeimgeiwg+eUqOe9keermeaVsOaNruaMieS4iuaWueeahOagvOW8j+aKiuS7o+eggeazqOmHiuaOie+8jOW5tuWwhuS4iuaWueS7o+eggeWPlua2iOazqOmHiuaJk+W8gFxcbiAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS90aGlyZHBhcnR5P3J1bGU9ZG3nm5LlrZAnKSkucnVsZSk7XFxuICAgICAgICBkYW5tdWZ1bihqc3VybCk7XFxuICAgICAgICByZXR1cm4geDVydWxlX2pzb24oaW5wdXQsIGlucHV0KTtcXG4gICAgfSBlbHNlIGlmIChqc3VybC5tYXRjaCgvbWd0di8pKSB7XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL21ndHY/cnVsZT1kbeebkuWtkCcpKS5ydWxlKTtcXG4gICAgICAgIE1HZG0oanN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHg1cnVsZV94bWwoaW5wdXQsIGlucHV0KTtcXG4gICAgfSBlbHNlIGlmIChqc3VybC5tYXRjaCgvcXEuY29tLykpIHtcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvVFg/cnVsZT1kbeebkuWtkCcpKS5ydWxlKTtcXG4gICAgICAgIFRYZG0oanN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHg1cnVsZV94bWwoaW5wdXQsIGlucHV0KTtcXG4gICAgfSBlbHNlIGlmIChqc3VybC5tYXRjaCgvYmlsaS8pKSB7XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2JpbGliaWxpP3J1bGU9ZG3nm5LlrZAnKSkucnVsZSk7XFxuICAgICAgICBiaWxpZG0oanN1cmwpO1xcbiAgICAgICAgcmV0dXJuIHg1cnVsZV94bWwoaW5wdXQsIGlucHV0KTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiB4NXJ1bGVfYmxhbmsoaW5wdXQsIGlucHV0KTtcXG4gICAgfVxcbn0pO1xcblwifV0iLCJpY29uIjoiaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL21vcmUvMzI3LnBuZyIsInByb3h5IjoiaHR0cHM6Ly9oamRobnguY29kaW5nLm5ldC9wL2hpa2VyL2QvZHIvZ2l0L3Jhdy9tYXN0ZXIvanMvPT5odHRwczovL2dpdGNvZGUubmV0L3FxXzMyMzk0MzUxL2RyLy0vcmF3L21hc3Rlci9qcy8ifQ==
Add Comment
Please, Sign In to add comment