R18-161 妹の爆乳は一見にしかず 20 Gカップ93cm ももか

識別碼: R18-161

發行日期: 2010-03-19

長度: 117分鐘

製作商:

チェリーズ

發行商:

平成4年生

系列:

爆乳は一見にしかず!

類別:

多P巨乳水手服乳交美少女

推薦

W3siaWQiOiJleG9jX2pfTV8zMDB4MTAwIiwiYWRzcG90Ijoial9NXzMwMHgxMDAiLCJ3ZWlnaHQiOiIzIiwiZmNhcCI6ZmFsc2UsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGFzeW5jIHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiIHNyYz1cImh0dHBzOlwvXC9hLm1hZ3Nydi5jb21cL2FkLXByb3ZpZGVyLmpzXCI+PFwvc2NyaXB0PiBcclxuIDxpbnMgY2xhc3M9XCJlYXM2YTk3ODg4ZTEwXCIgZGF0YS16b25laWQ9XCIxMDI2MzEwXCI+PFwvaW5zPiBcclxuIDxzY3JpcHQ+KEFkUHJvdmlkZXIgPSB3aW5kb3cuQWRQcm92aWRlciB8fCBbXSkucHVzaCh7XCJzZXJ2ZVwiOiB7fX0pOzxcL3NjcmlwdD4ifSx7ImlkIjoianVpY19qX01fMzAweDEwMCIsImFkc3BvdCI6ImpfTV8zMDB4MTAwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPGlmcmFtZSBib3JkZXI9MCBmcmFtZWJvcmRlcj0wIG1hcmdpbmhlaWdodD0wIG1hcmdpbndpZHRoPTAgd2lkdGg9MzAwIGhlaWdodD0xMDAgc2Nyb2xsaW5nPW5vIGFsbG93dHJhbnNwYXJlbmN5PXRydWUgc3JjPVwvXC9hZHNlcnZlci5qdWljeWFkcy5jb21cL2Fkc2hvdy5waHA/YWR6b25lPTQ1MTczOT48XC9pZnJhbWU+In1d

樣品圖像

推薦

W3siaWQiOiJleG9jX2pfTV8zMDB4MjUwIiwiYWRzcG90Ijoial9NXzMwMHgyNTAiLCJ3ZWlnaHQiOiIyIiwiZmNhcCI6ZmFsc2UsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGFzeW5jIHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiIHNyYz1cImh0dHBzOlwvXC9hLm1hZ3Nydi5jb21cL2FkLXByb3ZpZGVyLmpzXCI+PFwvc2NyaXB0PiBcclxuIDxpbnMgY2xhc3M9XCJlYXM2YTk3ODg4ZTEwXCIgZGF0YS16b25laWQ9XCIxMDMxMDQyXCI+PFwvaW5zPiBcclxuIDxzY3JpcHQ+KEFkUHJvdmlkZXIgPSB3aW5kb3cuQWRQcm92aWRlciB8fCBbXSkucHVzaCh7XCJzZXJ2ZVwiOiB7fX0pOzxcL3NjcmlwdD4ifSx7ImlkIjoianVpY19qX01fMzAweDI1MCIsImFkc3BvdCI6ImpfTV8zMDB4MjUwIiwid2VpZ2h0IjoiMyIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPCEtLSBKdWljeUFkcyB2My4xIC0tPlxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiBhc3luYyBzcmM9XCJodHRwczpcL1wvcG93ZXJlZGJ5LmphZHMuY29cL2pzXC9qYWRzLmpzXCI+PFwvc2NyaXB0PlxyXG48aW5zIGlkPVwiMzcxNzI2XCIgZGF0YS13aWR0aD1cIjMwMFwiIGRhdGEtaGVpZ2h0PVwiMjUwXCI+PFwvaW5zPlxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiBhc3luYz4oYWRzYnlqdWljeSA9IHdpbmRvdy5hZHNieWp1aWN5IHx8IFtdKS5wdXNoKHsnYWR6b25lJzozNzE3MjZ9KTs8XC9zY3JpcHQ+XHJcbjwhLS1KdWljeUFkcyBFTkQtLT4ifV0=
W3siaWQiOiJhZHN0X2pfUE9QVU5ERVIiLCJhZHNwb3QiOiJqX1BPUFVOREVSIiwid2VpZ2h0IjoiNSIsImZjYXAiOiIyIiwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjoiNzY4IiwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQgdHlwZT0ndGV4dFwvamF2YXNjcmlwdCcgc3JjPSdodHRwczpcL1wvcGwxMTA1MjUucHVodG1sLmNvbVwvNzBcLzgyXC85Y1wvNzA4MjljMzgyMTZlMWMwNDYxNmFkYjQ2NzJlZGEzNDIuanMnPjxcL3NjcmlwdD4ifSx7ImlkIjoiY2xpY19qX1BPUFVOREVSIiwiYWRzcG90Ijoial9QT1BVTkRFUiIsIndlaWdodCI6IjciLCJmY2FwIjoiMyIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCI+IWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7Y29uc3QgdD1cInpfZmxnZGFiY3Bva3JpbmV1dG0uXC9zXCIsZT10WzRdLG49dFs2XSxvPXRbN10scj10WzhdLHM9dFsxNF0saT10WzVdLGM9dFsxNV0sYT10WzE2XSxsPXRbMTNdLHU9dFsxMF0saD10WzEyXSxkPXRbOV0sZz10WzE3XSxtPXRbMThdLGY9dFsyXSxwPXRbM10sdz10WzBdLGI9dFsxXSwkPXRbMjBdLHY9KC4uLnQpPT50LmpvaW4oXCJcIiksST12KHIscCksUz12KG4sbykseT12KGksYyxvLGEsZSksRT12KGwscyxkLG4sZSxjKSxrPXYobyxuLHMscyxjLGgpLHg9dihiLEksYixTLGIseSxiKSxqPXYoYixiKSxDPXYodyxmLGUscCx1LG4saSxjLGkpLE49ezI6dihDLGQsdSxkLHRbMTZdLGQpLDk6dihDLGspLDEwOnYoQyxFKX0sTz12KHcsZixlLHIsdSxpLGMscCx1LG4saSxjLGkpLFI9ezI6dihPLHUscyxJLGwscix0WzExXSksOTp2KE8sayksMTA6dihPLEUpfSxfPXYoeCxnLGwsbSxjKSxBPXYoeCxpLHUsbSxuLGwscyksRD12KGoscixzLGUsZixlKSxUPXYoaixyLHMsZSxmLGUsaixpKSxNPXYoRCxqLFMpLFU9dihELGosYyxhKSxCPXYodFsyMV0scixoLGwsZCxnKSxKPXYodFsxOV0scix1LG0sJCksVz12KCQsYyxzKSx6PXYobCxpKSxWPXYoaixyLHMsZSxmLGUsaixoKSxIPVtcIm9vXCIsXCJra1wiLFwiYWFhXCIsXCJqampcIixcImZld2hcIixcImFhc2hcIixcInF3ZGh3XCIsXCJ3ZWd3Z3NcIixcImhraWl1eXJcIixcIm5mZ3JzdGRoXCJdLEs9MzZlNSxQPSh0LGUpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSkrdDtmdW5jdGlvbiBRKHQsZT13aW5kb3csbj0hMSl7bGV0IG87dHJ5e2lmKG89ZVt0XSwhbylyZXR1cm4hMTtjb25zdCBuPVwiX19zdG9yYWdlX3Rlc3RfX1wiO3JldHVybiBvLnNldEl0ZW0obixuKSxvLmdldEl0ZW0obiksby5yZW1vdmVJdGVtKG4pLCEwfWNhdGNoKHQpe3JldHVybiBCb29sZWFuKCFuJiZmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKDIyPT09dC5jb2RlfHwxMDE0PT09dC5jb2RlfHxcIlF1b3RhRXhjZWVkZWRFcnJvclwiPT09dC5uYW1lfHxcIk5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEXCI9PT10Lm5hbWUpfSh0KSYmbyYmby5sZW5ndGg+MCl9fWNvbnN0IHE9dD0+e2lmKFwiXCI9PT10KXRocm93IG5ldyBFcnJvcihcIktleSBjYW5ub3QgYmUgZW1wdHlcIil9O2NsYXNzIEZ7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yYWdlPXR9Z2V0SXRlbSh0KXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldEl0ZW0odCl9c2V0SXRlbSh0LGUpe3EodCksdGhpcy5zdG9yYWdlLnNldEl0ZW0odCxlKX1yZW1vdmVJdGVtKHQpe3RoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHQpfX1jbGFzcyBMe2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9jPXR9Z2V0SXRlbSh0KXtjb25zdCBlPW5ldyBSZWdFeHAoXCIoPzpefDsgKVwiK3QucmVwbGFjZShcLyhbXFwuJD8qfHt9XFwoXFwpXFxbXFxdXFxcXFxcXC9cXCteXSlcL2csXCJcXFxcJDFcIikrXCI9KFteXC87XC9dKilcIikuZXhlYyh0aGlzLmRvYy5jb29raWUpO3JldHVybiBlP2RlY29kZVVSSUNvbXBvbmVudChlWzFdKTpudWxsfXNldEl0ZW0odCxlKXtxKHQpLHRoaXMuZG9jLmNvb2tpZT1gJHt0fT0ke2VuY29kZVVSSUNvbXBvbmVudChlKX07IG1heC1hZ2U9MzQ0NzAwMDA7IHBhdGg9XC87YH1yZW1vdmVJdGVtKHQpe3RoaXMuZG9jLmNvb2tpZT1gJHt0fT0wOyBtYXgtYWdlPS0xOyBwYXRoPVwvO2B9fWNsYXNzIEd7Y29uc3RydWN0b3IodCl7dGhpcy53aW49dH1nZXRJdGVtKHQpe2NvbnN0IGU9dGhpcy53aW5bdF07cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIGU/SlNPTi5zdHJpbmdpZnkoZSk6dm9pZCAwIT09ZT9lOm51bGx9c2V0SXRlbSh0LGUpe3EodCksdGhpcy53aW5bdF09ZX1yZW1vdmVJdGVtKHQpe2RlbGV0ZSB0aGlzLndpblt0XX19dmFyIFgsWTsodD0+e2NvbnN0IGU9W25ldyBHKHQpXSxuPVwib25jb250ZXh0c3RvcmVcIjtsZXQgbztRKFwibG9jYWxTdG9yYWdlXCIsdCkmJmUucHVzaChuZXcgRih0LmxvY2FsU3RvcmFnZSkpLFEoXCJzZXNzaW9uU3RvcmFnZVwiLHQpJiZlLnB1c2gobmV3IEYodC5zZXNzaW9uU3RvcmFnZSkpLGZ1bmN0aW9uKHQ9d2luZG93KXt0cnl7cmV0dXJuIHQuZG9jdW1lbnQuY29va2llLHQubmF2aWdhdG9yLmNvb2tpZUVuYWJsZWR9Y2F0Y2godCl7cmV0dXJuITF9fSh0KSYmZS5wdXNoKG5ldyBMKHQuZG9jdW1lbnQpKX0pKHdpbmRvdyksZnVuY3Rpb24odCl7dC5TRVU9XCJzZXVcIix0LlNOQz1cInNuY1wiLHQuU1NUPVwic3N0XCIsdC5TS0E9XCJza2FcIn0oWHx8KFg9e30pKSxcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV9cIi5zcGxpdChcIlwiKSxmdW5jdGlvbih0KXt0LlZvY2FidWxhcnk9XCJ0cG1taHYxOFwiLHQuV2VpZ2h0cz1cInRwbW1odzE4XCJ9KFl8fChZPXt9KSk7WS5Wb2NhYnVsYXJ5LFkuV2VpZ2h0cztjb25zdCBaPXQ9Pntjb25zdFtlXT10LnNwbGl0KFwiXC9cL1wiKTtsZXRbbixvLHJdPWZ1bmN0aW9uKHQsZSl7bGV0W24sbywuLi5yXT10LnNwbGl0KGUpO3JldHVybiBvPVtvLC4uLnJdLmpvaW4oZSksW24sbyxCb29sZWFuKHIubGVuZ3RoKV19KHQsXCI/XCIpO3ZhciBzO3ImJmZ1bmN0aW9uKHQsZSxuKXt0cnl7cmV0dXJuIHQoKX1jYXRjaCh0KXtpZihlKXJldHVybiBlKHQpfX0oKCgpPT57dGhyb3cgbmV3IEVycm9yKFwiVGhlIFVSTCBjb250YWlucyB1bmVuY29kZWQgY2hhcmFjdGVycy5cIil9KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBoYW5kbGVFeGNlcHRpb24/dD0+e2hhbmRsZUV4Y2VwdGlvbih0KX06cyk7Y29uc3RbaSwuLi5jXT1uLnJlcGxhY2UoXC9eaHR0cHM/OlxcXC9cXFwvXC8sXCJcIikuc3BsaXQoXCJcL1wiKTtyZXR1cm57cHJvdG9jb2w6ZSxvcmlnaW46bixkb21haW46aSxwYXRoOmMuam9pbihcIlwvXCIpLHNlYXJjaDpvfX0sdHQ9KCk9Pntjb25zdCB0PUhbUCgwLEgubGVuZ3RoLTEpXSxlPSFQKDAsMSk/KHQ9PntsZXQgZT1cIlwiO2ZvcihsZXQgbj0wO248dDtuKyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZShQKDk3LDEyMikpO3JldHVybiBlfSkoUCgyLDYpKTpQKDEsOTk5OTk5KTtyZXR1cm5gJHt0fT0ke2V9YH0sZXQ9KHQsZSxuKT0+e2NvbnN0IG89KCh0LGUpPT4oZSt0KS5zcGxpdChcIlwiKS5yZWR1Y2UoKCh0LGUpPT4zMSp0K2UuY2hhckNvZGVBdCgwKSYzMzU1NDQzMSksMTkpKSh0LGUpLHI9KHQ9PntsZXQgZT10JTcxMzg3O3JldHVybigpPT5lPSgyMzI1MSplKzEyMzQ1KSU3MTM4N30pKG8pO3JldHVybiBuLnNwbGl0KFwiXCIpLm1hcCgodD0+KCh0LGUpPT57Y29uc3Qgbj10LmNoYXJDb2RlQXQoMCksbz1uPDk3fHxuPjEyMj9uOjk3KyhuLTk3K2UoKSklMjYscj1TdHJpbmcuZnJvbUNoYXJDb2RlKG8pO3JldHVyblwiaVwiPT09cj9yK1wiaVwiOnJ9KSh0LHIpKSkuam9pbihcIlwiKX0sbnQ9KHQsZSk9Pnt0PXQucmVwbGFjZShgPyR7en09JHtlfSZgLFwiP1wiKS5yZXBsYWNlKGA/JHt6fT0ke2V9YCxcIj9cIikucmVwbGFjZShgJiR7en09JHtlfWAsXCJcIik7bGV0e2RvbWFpbjpuLHNlYXJjaDpvLG9yaWdpbjpyfT1aKHQpLHM9bz9vLnNwbGl0KFwiJlwiKTpbXTtjb25zdCBpPXMubGVuZ3RoPjQ/WzAsMl06WzUsOV07cy5wdXNoKC4uLigodCxlKT0+e2NvbnN0IG49W10sbz1QKHQsZSk7Zm9yKGxldCB0PTA7dDxvO3QrKyluLnB1c2godHQoKSk7cmV0dXJuIG59KSguLi5pKSkscz0odD0+e2NvbnN0IGU9Wy4uLnRdO2xldCBuPWUubGVuZ3RoO2Zvcig7MCE9PW47KXtjb25zdCB0PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpuKTtuLS0sW2Vbbl0sZVt0XV09W2VbdF0sZVtuXV19cmV0dXJuIGV9KShzKTtjb25zdCBjPWV0KGUsbixzLmpvaW4oXCImXCIpKSxhPVAoMCxzLmxlbmd0aCksbD1jLnNwbGl0KFwiJlwiKTtyZXR1cm4gbC5zcGxpY2UoYSwwLGBpZD0ke2V9YCksci5yZXBsYWNlKG4sbitXKStcIj9cIitsLmpvaW4oXCImXCIpfSxvdD10PT4odD0+dD49MTczMTI3NmU2JiZ0PD0xNzMxNzk0NGU1fHx0Pj0xNzMyNDg1NmU1JiZ0PD0xNzMzMDA0ZTYpKHQpP1AodC1LLHQrSyk6dCxydD10PT57Y29uc3QgZT1uZXcgUmVnRXhwKF8rXCI9KFxcXFxkKykocik/XCIpLmV4ZWModC5sb2NhdGlvbi5ocmVmKSxuPWUmJmVbMV0mJitlWzFdO3JldHVybiBuJiYhaXNOYU4obik/KG51bGw9PWU/dm9pZCAwOmVbMl0pP290KG4pOm46b3QoRGF0ZS5ub3coKSl9LHN0PVwiY2xhYmRmclwiO2Z1bmN0aW9uIGl0KHQpe2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pntjb25zdCBvPXRbbl07KGZ1bmN0aW9uKHQpe2NvbnN0IGU9bnVsbD09dD92b2lkIDA6dFswXSxuPW51bGw9PXQ/dm9pZCAwOnRbMV07cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGUmJk51bWJlci5pc0Zpbml0ZShuKSYmbj5EYXRlLm5vdygpfSkobykmJihlW25dPW8pfSkpLGV9Y29uc3QgY3Q9KCgpPT57dmFyIHQ7Y29uc3RbZSxuXT1mdW5jdGlvbigpe2lmKFEoXCJsb2NhbFN0b3JhZ2VcIikpe2NvbnN0IHQ9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0KTtyZXR1cm5bdD9KU09OLnBhcnNlKHQpOm51bGwsITFdfXJldHVybltudWxsLCEwXX0oKSxvPW51bGwhPT0odD1pdChlKSkmJnZvaWQgMCE9PXQ/dDp7fTtyZXR1cm4gbnx8d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0LEpTT04uc3RyaW5naWZ5KG8pKSx7Z2V0OnQ9Pm9bdF0sc2V0Oih0LGUscik9Pntjb25zdCBzPVtlLERhdGUubm93KCkrMWUzKnJdO29bdF09cyxufHx3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oc3QsSlNPTi5zdHJpbmdpZnkobykpfX19KSgpO2NvbnN0IGF0PVsxLDMsNiw1LDgsOSwxMCwxMSwxMiwxMywxNF07bGV0IGx0O2NvbnN0IHV0PVVpbnQ4QXJyYXk7bGV0IGh0O2NsYXNzIGR0e2NvbnN0cnVjdG9yKHQsZSxuLG8scixzKXt0aGlzLmlkPWUsdGhpcy50PW4sdGhpcy5iNmQ9byx0aGlzLnZlcj1yLHRoaXMuZmJ2PXMsdGhpcy50bXI9bnVsbCx0aGlzLmdkPXQ9Pmh0Lnd1LnRoZW4oKGU9PmUudXJsKGh0LmdmY28odCkpKSksdGhpcy5iNmFiPXQ9PnV0LmZyb20oYXRvYih0KSwodD0+dC5jaGFyQ29kZUF0KDApKSksdGhpcy5nY3VrPSgpPT5gJHtodC5pZH0ke0R9YCx0aGlzLmdmdT10PT5gJHtmdW5jdGlvbih0LGUpe2NvbnN0IG49bmV3IFJlZ0V4cChBK1wiPShbYS16MC05Li1dKykmP1wiKS5leGVjKHQubG9jYXRpb24uaHJlZiksbz1uJiZuWzFdP25bMV06bnVsbDtyZXR1cm4gZSYmbz9lLnJlcGxhY2UoSixgLSR7b31cL2ApOmV8fG99KGx0LHQpfT9pZD0ke2h0LmlkfWAsdGhpcy5zYXN0PXQ9PjAhPT1OdW1iZXIodCksaHQ9dGhpcyxsdD10LHRoaXMud3U9aHQuaXdhKCksbHRbdGhpcy5pZCtWXT10aGlzLmlucygpLGh0LmNjbHQoKSxsdFtodC5pZCtVXT1udH1pbigpe3RoaXMuc2FzdChodC50KSYmITAhPT1sdFtSW2h0LnRdXSYmKGh0LnRtciYmY2xlYXJUaW1lb3V0KGh0LnRtciksaHQuYXN0KCkpfWlucygpe2x0W3RoaXMuZ2NkaygpXT17fTtjb25zdCB0PWF0Lm1hcCgodD0+aHQuZ2QodCkudGhlbigoZT0+KGx0W2h0LmdjZGsoKV1bdF09ZSxlKSkpKSk7cmV0dXJuIFByb21pc2UuYWxsKHQpLnRoZW4oKHQ9PihsdFtodC5nY3VrKCldPXQsITApKSl9Y2NsdCgpe2h0LnNhc3QoaHQudCkmJih0aGlzLnRtcj1sdC5zZXRUaW1lb3V0KCgoKT0+IWx0W05baHQudF1dJiZodC5hc3QoKSksNWUzKSl9Z2Zjbyh0KXtjb25zdHtuYXZpZ2F0b3I6ZX09bHQsbj1lP2UudXNlckFnZW50OlwiXCIsbz1sdC5sb2NhdGlvbi5ob3N0bmFtZXx8XCJcIjtyZXR1cm5bbHQuaW5uZXJIZWlnaHQsbHQuaW5uZXJXaWR0aCxsdC5zZXNzaW9uU3RvcmFnZT8xOjAscnQobHQpLDAsdCxvLnNsaWNlKDAsMTAwKSxuLnNsaWNlKDAsMTUpXS5qb2luKFwiLFwiKX1hc3QoKXtodC5zYXN0KGh0LnQpJiZodC5nZChodC50KS50aGVuKCh0PT57bHRbaHQuaWQrTV09aHQudmVyO2NvbnN0IGU9bHQuZG9jdW1lbnQsbj1lLmNyZWF0ZUVsZW1lbnQoQiksW29dPWZ1bmN0aW9uKHQsZSl7Y29uc3R7ZG9tYWluOm4scGF0aDpvLHNlYXJjaDpyfT1aKHQpLHM9Y3QuZ2V0KG4pO3JldHVybiBzP1tgJHtpPXNbMF0sKFwvaHR0cHM/OlxcXC9cXFwvXC8udGVzdChpKT9cIlwiOlwiaHR0cHM6XC9cL1wiKStpfVwvJHtvfT8ke3J9YCwhMV06W3QsITFdO3ZhciBpfShodC5nZnUodCkpO24uc3JjPW50KG8saHQuaWQpLGUuaGVhZC5hcHBlbmRDaGlsZChuKX0pKX1pd2EoKXtjb25zdCB0PVdlYkFzc2VtYmx5LGU9dCYmdC5pbnN0YW50aWF0ZTtyZXR1cm4gZT9lKGh0LmI2YWIoaHQuYjZkKSx7fSkudGhlbigoKHtpbnN0YW5jZTp7ZXhwb3J0czp0fX0pPT57Y29uc3QgZT10Lm1lbW9yeSxuPXQudXJsLG89bmV3IFRleHRFbmNvZGVyLHI9bmV3IFRleHREZWNvZGVyKFwidXRmLThcIik7cmV0dXJue3VybDp0PT57Y29uc3Qgcz1vLmVuY29kZSh0KSxpPW5ldyB1dChlLmJ1ZmZlciwwLHMubGVuZ3RoKTtpLnNldChzKTtjb25zdCBjPWkuYnl0ZU9mZnNldCtzLmxlbmd0aCxhPW4oaSxzLmxlbmd0aCxjKSxsPW5ldyB1dChlLmJ1ZmZlcixjLGEpO3JldHVybiByLmRlY29kZShsKX19fSkpOlByb21pc2UucmVzb2x2ZSh2b2lkIDApfWdjZGsoKXtyZXR1cm5gJHt0aGlzLmlkfSR7VH1gfX0hZnVuY3Rpb24odCxlLG4sbyxyLHMpe2NvbnN0IGk9bmV3IGR0KHdpbmRvdyxcIjIwNDc0NzBcIixcIjJcIixcIkFHRnpiUUVBQUFBQkhBVmdBQUZcL1lBTlwvZjM4QmYyQURmMzlcL0FYNWdBWDhBWUFGXC9BWDhEQ1FnQUFRSUJBQU1FQUFRRkFYQUJBUUVGQmdFQmdBS0FBZ1lKQVg4QlFjQ0l3QUlMQjJjSEJtMWxiVzl5ZVFJQUEzVnliQUFER1Y5ZmFXNWthWEpsWTNSZlpuVnVZM1JwYjI1ZmRHRmliR1VCQUJCZlgyVnljbTV2WDJ4dlkyRjBhVzl1QUFjSmMzUmhZMnRUWVhabEFBUU1jM1JoWTJ0U1pYTjBiM0psQUFVS2MzUmhZMnRCYkd4dll3QUdDb2NHQ0NFQkFYOUJ1QWhCdUFnb0FnQkJFMnhCb1J4cVFZZkMxeTl3SWdBMkFnQWdBQXVUQVFFRmZ4QUFJQUVnQUd0QkFXcHdJQUJxSWdRRVFFRUFJUUJCQXlFQkEwQWdBVUVESUFCQkEzQWlCeHNoQVJBQUlnWkJGSEJCa0FocUxRQUFJUU1DZnlBRlFRQWdCeHRGQkVCQkFDQUdJQUZ3RFFFYUlBWkJCbkJCZ0FocUxRQUFJUU1MUVFFTElRVWdBQ0FDYWlBRFFhd0lMUUFBYXpvQUFDQUJRUUZySVFFZ0FFRUJhaUlBSUFSSkRRQUxDeUFDSUFScUMzRUNBMzhDZmdKQUlBRkJBRXdOQUFOQUlBUkJBV29oQXlBQ0lBVWdBQ0FFYWkwQUFFRXNSbW9pQlVZRVFDQUJJQU5NRFFJRFFDQUFJQU5xTUFBQUlnZENMRkVOQXlBR1FncCtJQWQ4UWpCOUlRWWdBMEVCYWlJRElBRkhEUUFMREFJTElBTWhCQ0FCSUFOS0RRQUxDeUFHQzdnREFnTitCMzhnQUNBQlFRTVFBaUVESUFBZ0FVRUZFQUloQlVHNENDQURRYkFJS1FNQUlnUWdBeUFFVkJ0QnFBZ29BZ0FpQUVFeWFpSUJJQUZzUWVnSGJLMkFJZ1FnQUVFT2FpSUtJQUJCQkdzZ0EwS0FnUEh0eHpCVUlnc2JyWUNuSUFOQ1wvNFwvTXBcL1l4VmtFV2RISTJBZ0FRQUJvUUFCb2dBa0xvNk5HRHQ4N09seTgzQUFCQkIwRUtRUWdnQTBLQTBNV1hnekpVR3lBRFFvQ1dvcDNsTUZRaUJodEJDMEVNSUFZYklBSkJDR29RQVNFQUVBQWFJd0JCRUdzaUFTUUFJQUJCTGpvQUFDQUJRZVBldFFNMkFnd2dBRUVCYWlFSFFRQWhBQ0FCUVF4cUlnd3RBQUFpQ0FSQUEwQWdBQ0FIYWlBSU9nQUFJQXdnQUVFQmFpSUFhaTBBQUNJSURRQUxDeUFCUVJCcUpBQWdBQ0FIYWlFQlFiZ0lJQVFnQ3EyQUlBVkNHNFpDQUVLQWdJQWdRb0NBZ0RCQ2dJQ0FDRUtBZ0lBWUlBVkNDRkViUW9DQWdCSkNnSURBRFNBRFFvQ0lsOXFzTWxRYklBTkNnSkRNcFwvWXhWQnNnQTBLQW1NYXV6ekZVR3lBR0d5QUxHNFNFUGdJQUVBQWFRUUpCQkJBQVFRTndJZ0FiSVFZRFFDQUJRUzg2QUFBZ0FDQUpSaUVISUFaQkJTQUJRUUZxRUFFaEFTQUpRUUZxSVFrZ0IwVU5BQXNnQVNBQ2F3c0VBQ01BQ3dZQUlBQWtBQXNRQUNNQUlBQnJRWEJ4SWdBa0FDQUFDd1VBUWJ3SUN3czdBd0JCZ0FnTEJwNmlwcXl5dGdCQmtBZ0xGSitnb2FPa3BhZW9xYXFycmE2dnNMR3p0TFczQUVHb0NBc09DZ0FBQUQwQUFBRFwvaHhvd2xRRT1cIixcIjhcIixcIjEuMC40MDBcIik7d2luZG93W1wic21qdGNrcm5cIl09KCk9PmkuaW4oKX0oKX0oKTs8XC9zY3JpcHQ+XHJcbjxzY3JpcHQgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiIHNyYz1cIlwvXC9pc29sYXRlZG92ZXJjb21lcGFzdGVkLmNvbVwvYWFzXC9yNDVkXC92a2lcLzIwNDc0NjhcLzNkOTMxZDU0LmpzXCIgYXN5bmMgb25lcnJvcj1cInNtanRja3JuKClcIj48XC9zY3JpcHQ+In0seyJpZCI6ImV4b2Nfal9QT1BVTkRFUiIsImFkc3BvdCI6ImpfUE9QVU5ERVIiLCJ3ZWlnaHQiOiI2IiwiZmNhcCI6IjIiLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjpmYWxzZSwibWluV2lkdGgiOiI3NjgiLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPVwiYXBwbGljYXRpb25cL2phdmFzY3JpcHRcIj5cclxuKGZ1bmN0aW9uKCkge1xyXG5cclxuICAgIFwvXC92ZXJzaW9uIDEuMC4wXHJcblxyXG4gICAgdmFyIGFkQ29uZmlnID0ge1xyXG4gICAgXCJhZHNfaG9zdFwiOiBcImEucGVtc3J2LmNvbVwiLFxyXG4gICAgXCJzeW5kaWNhdGlvbl9ob3N0XCI6IFwicy5wZW1zcnYuY29tXCIsXHJcbiAgICBcImlkem9uZVwiOiAxMDA4MDk0LFxyXG4gICAgXCJwb3B1cF9mYWxsYmFja1wiOiBmYWxzZSxcclxuICAgIFwicG9wdXBfZm9yY2VcIjogZmFsc2UsXHJcbiAgICBcImNocm9tZV9lbmFibGVkXCI6IHRydWUsXHJcbiAgICBcIm5ld190YWJcIjogZmFsc2UsXHJcbiAgICBcImZyZXF1ZW5jeV9wZXJpb2RcIjogNzIwLFxyXG4gICAgXCJmcmVxdWVuY3lfY291bnRcIjogMSxcclxuICAgIFwidHJpZ2dlcl9tZXRob2RcIjogMyxcclxuICAgIFwidHJpZ2dlcl9jbGFzc1wiOiBcIlwiLFxyXG4gICAgXCJ0cmlnZ2VyX2RlbGF5XCI6IDAsXHJcbiAgICBcIm9ubHlfaW5saW5lXCI6IGZhbHNlXHJcbn07XHJcblxyXG5pZighd2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsPU9iamVjdC5xdWVyeVNlbGVjdG9yQWxsPWZ1bmN0aW9uIHF1ZXJ5U2VsZWN0b3JBbGxQb2x5ZmlsbChyLGMsaSxqLGEpe3ZhciBkPWRvY3VtZW50LHM9ZC5jcmVhdGVTdHlsZVNoZWV0KCk7YT1kLmFsbDtjPVtdO3I9ci5yZXBsYWNlKFwvXFxbZm9yXFxiXC9naSxcIltodG1sRm9yXCIpLnNwbGl0KFwiLFwiKTtmb3IoaT1yLmxlbmd0aDtpLS07KXtzLmFkZFJ1bGUocltpXSxcIms6dlwiKTtmb3Ioaj1hLmxlbmd0aDtqLS07KXthW2pdLmN1cnJlbnRTdHlsZS5rJiZjLnB1c2goYVtqXSl9cy5yZW1vdmVSdWxlKDApfXJldHVybiBjfX12YXIgcG9wTWFnaWM9e3ZlcnNpb246MSxjb29raWVfbmFtZTpcIlwiLHVybDpcIlwiLGNvbmZpZzp7fSxvcGVuX2NvdW50OjAsdG9wOm51bGwsYnJvd3NlcjpudWxsLHZlbm9yX2xvYWRlZDpmYWxzZSx2ZW5vcjpmYWxzZSxjb25maWdUcGw6e2Fkc19ob3N0OlwiXCIsc3luZGljYXRpb25faG9zdDpcIlwiLGlkem9uZTpcIlwiLGZyZXF1ZW5jeV9wZXJpb2Q6NzIwLGZyZXF1ZW5jeV9jb3VudDoxLHRyaWdnZXJfbWV0aG9kOjEsdHJpZ2dlcl9jbGFzczpcIlwiLHBvcHVwX2ZvcmNlOmZhbHNlLHBvcHVwX2ZhbGxiYWNrOmZhbHNlLGNocm9tZV9lbmFibGVkOnRydWUsbmV3X3RhYjpmYWxzZSxjYXQ6XCJcIix0YWdzOlwiXCIsZWw6XCJcIixzdWI6XCJcIixzdWIyOlwiXCIsc3ViMzpcIlwiLG9ubHlfaW5saW5lOmZhbHNlLHRyaWdnZXJfZGVsYXk6MCxjb29raWVjb25zZW50OnRydWV9LGluaXQ6ZnVuY3Rpb24oY29uZmlnKXtpZih0eXBlb2YgY29uZmlnLmlkem9uZT09PVwidW5kZWZpbmVkXCJ8fCFjb25maWcuaWR6b25lKXtyZXR1cm59aWYodHlwZW9mIGNvbmZpZ1tcImN1c3RvbVRhcmdldGluZ1wiXT09PVwidW5kZWZpbmVkXCIpe2NvbmZpZ1tcImN1c3RvbVRhcmdldGluZ1wiXT1bXX13aW5kb3dbXCJjdXN0b21UYXJnZXRpbmdcIl09Y29uZmlnW1wiY3VzdG9tVGFyZ2V0aW5nXCJdfHxudWxsO3ZhciBjdXN0b21UYXJnZXRpbmc9T2JqZWN0LmtleXMoY29uZmlnW1wiY3VzdG9tVGFyZ2V0aW5nXCJdKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuc2VhcmNoKFwiZXhfXCIpPj0wfSk7aWYoY3VzdG9tVGFyZ2V0aW5nLmxlbmd0aCl7Y3VzdG9tVGFyZ2V0aW5nLmZvckVhY2goZnVuY3Rpb24oY3Qpe3JldHVybiB0aGlzLmNvbmZpZ1RwbFtjdF09bnVsbH0uYmluZCh0aGlzKSl9Zm9yKHZhciBrZXkgaW4gdGhpcy5jb25maWdUcGwpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jb25maWdUcGwsa2V5KSl7Y29udGludWV9aWYodHlwZW9mIGNvbmZpZ1trZXldIT09XCJ1bmRlZmluZWRcIil7dGhpcy5jb25maWdba2V5XT1jb25maWdba2V5XX1lbHNle3RoaXMuY29uZmlnW2tleV09dGhpcy5jb25maWdUcGxba2V5XX19aWYodHlwZW9mIHRoaXMuY29uZmlnLmlkem9uZT09PVwidW5kZWZpbmVkXCJ8fHRoaXMuY29uZmlnLmlkem9uZT09PVwiXCIpe3JldHVybn1pZih0aGlzLmNvbmZpZy5vbmx5X2lubGluZSE9PXRydWUpe3RoaXMubG9hZEhvc3RlZCgpfXRoaXMuYWRkRXZlbnRUb0VsZW1lbnQod2luZG93LFwibG9hZFwiLHRoaXMucHJlcGFyZVBvcCl9LGdldENvdW50RnJvbUNvb2tpZTpmdW5jdGlvbigpe2lmKCF0aGlzLmNvbmZpZy5jb29raWVjb25zZW50KXtyZXR1cm4gMH12YXIgc2hvd25Db29raWU9cG9wTWFnaWMuZ2V0Q29va2llKHBvcE1hZ2ljLmNvb2tpZV9uYW1lKTt2YXIgY3RyPXR5cGVvZiBzaG93bkNvb2tpZT09PVwidW5kZWZpbmVkXCI/MDpwYXJzZUludChzaG93bkNvb2tpZSk7aWYoaXNOYU4oY3RyKSl7Y3RyPTB9cmV0dXJuIGN0cn0sZ2V0TGFzdE9wZW5lZFRpbWVGcm9tQ29va2llOmZ1bmN0aW9uKCl7dmFyIHNob3duQ29va2llPXBvcE1hZ2ljLmdldENvb2tpZShwb3BNYWdpYy5jb29raWVfbmFtZSk7dmFyIGRlbGF5PW51bGw7aWYodHlwZW9mIHNob3duQ29va2llIT09XCJ1bmRlZmluZWRcIil7dmFyIHZhbHVlPXNob3duQ29va2llLnNwbGl0KFwiO1wiKVsxXTtkZWxheT12YWx1ZT4wP3BhcnNlSW50KHZhbHVlKTowfWlmKGlzTmFOKGRlbGF5KSl7ZGVsYXk9bnVsbH1yZXR1cm4gZGVsYXl9LHNob3VsZFNob3c6ZnVuY3Rpb24oKXtpZihwb3BNYWdpYy5vcGVuX2NvdW50Pj1wb3BNYWdpYy5jb25maWcuZnJlcXVlbmN5X2NvdW50KXtyZXR1cm4gZmFsc2V9dmFyIGN0cj1wb3BNYWdpYy5nZXRDb3VudEZyb21Db29raWUoKTtjb25zdCBsYXN0X29wZW5lZF90aW1lPXBvcE1hZ2ljLmdldExhc3RPcGVuZWRUaW1lRnJvbUNvb2tpZSgpO2NvbnN0IGN1cnJlbnRfdGltZT1NYXRoLmZsb29yKERhdGUubm93KClcLzFlMyk7Y29uc3QgbWF4aW11bURlbGF5VGltZT1sYXN0X29wZW5lZF90aW1lK3BvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX2RlbGF5O2lmKGxhc3Rfb3BlbmVkX3RpbWUmJm1heGltdW1EZWxheVRpbWU+Y3VycmVudF90aW1lKXtyZXR1cm4gZmFsc2V9cG9wTWFnaWMub3Blbl9jb3VudD1jdHI7cmV0dXJuIShjdHI+PXBvcE1hZ2ljLmNvbmZpZy5mcmVxdWVuY3lfY291bnQpfSx2ZW5vclNob3VsZFNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gcG9wTWFnaWMudmVub3JfbG9hZGVkJiZwb3BNYWdpYy52ZW5vcj09PVwiMFwifSxzZXRBc09wZW5lZDpmdW5jdGlvbigpe3ZhciBuZXdfY3RyPTE7aWYocG9wTWFnaWMub3Blbl9jb3VudCE9PTApe25ld19jdHI9cG9wTWFnaWMub3Blbl9jb3VudCsxfWVsc2V7bmV3X2N0cj1wb3BNYWdpYy5nZXRDb3VudEZyb21Db29raWUoKSsxfWNvbnN0IGxhc3Rfb3BlbmVkX3RpbWU9TWF0aC5mbG9vcihEYXRlLm5vdygpXC8xZTMpO2lmKHBvcE1hZ2ljLmNvbmZpZy5jb29raWVjb25zZW50KXtwb3BNYWdpYy5zZXRDb29raWUocG9wTWFnaWMuY29va2llX25hbWUsYCR7bmV3X2N0cn07JHtsYXN0X29wZW5lZF90aW1lfWAscG9wTWFnaWMuY29uZmlnLmZyZXF1ZW5jeV9wZXJpb2QpfX0sbG9hZEhvc3RlZDpmdW5jdGlvbigpe3ZhciBob3N0ZWRTY3JpcHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtob3N0ZWRTY3JpcHQudHlwZT1cImFwcGxpY2F0aW9uXC9qYXZhc2NyaXB0XCI7aG9zdGVkU2NyaXB0LmFzeW5jPXRydWU7aG9zdGVkU2NyaXB0LnNyYz1cIlwvXC9cIit0aGlzLmNvbmZpZy5hZHNfaG9zdCtcIlwvcG9wdW5kZXIxMDAwLmpzXCI7aG9zdGVkU2NyaXB0LmlkPVwicG9wbWFnaWNsZHJcIjtmb3IodmFyIGtleSBpbiB0aGlzLmNvbmZpZyl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNvbmZpZyxrZXkpKXtjb250aW51ZX1pZihrZXk9PT1cImFkc19ob3N0XCJ8fGtleT09PVwic3luZGljYXRpb25faG9zdFwiKXtjb250aW51ZX1ob3N0ZWRTY3JpcHQuc2V0QXR0cmlidXRlKFwiZGF0YS1leG8tXCIra2V5LHRoaXMuY29uZmlnW2tleV0pfXZhciBpbnNlcnRBbmNob3I9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpLml0ZW0oMCk7aWYoaW5zZXJ0QW5jaG9yLmZpcnN0Q2hpbGQpe2luc2VydEFuY2hvci5pbnNlcnRCZWZvcmUoaG9zdGVkU2NyaXB0LGluc2VydEFuY2hvci5maXJzdENoaWxkKX1lbHNle2luc2VydEFuY2hvci5hcHBlbmRDaGlsZChob3N0ZWRTY3JpcHQpfX0scHJlcGFyZVBvcDpmdW5jdGlvbigpe2lmKHR5cGVvZiBleG9Kc1BvcDEwMT09PVwib2JqZWN0XCImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleG9Kc1BvcDEwMSxcImFkZFwiKSl7cmV0dXJufXBvcE1hZ2ljLnRvcD1zZWxmO2lmKHBvcE1hZ2ljLnRvcCE9PXNlbGYpe3RyeXtpZih0b3AuZG9jdW1lbnQubG9jYXRpb24udG9TdHJpbmcoKSl7cG9wTWFnaWMudG9wPXRvcH19Y2F0Y2goZXJyKXt9fXBvcE1hZ2ljLmNvb2tpZV9uYW1lPVwiem9uZS1jYXAtXCIrcG9wTWFnaWMuY29uZmlnLmlkem9uZTtpZihwb3BNYWdpYy5zaG91bGRTaG93KCkpe3ZhciB4bWxodHRwPW5ldyBYTUxIdHRwUmVxdWVzdDt4bWxodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhtbGh0dHAucmVhZHlTdGF0ZT09WE1MSHR0cFJlcXVlc3QuRE9ORSl7cG9wTWFnaWMudmVub3JfbG9hZGVkPXRydWU7aWYoeG1saHR0cC5zdGF0dXM9PTIwMCl7cG9wTWFnaWMudmVub3I9eG1saHR0cC5yZXNwb25zZVRleHR9ZWxzZXtwb3BNYWdpYy52ZW5vcj1cIjBcIn19fTt2YXIgcHJvdG9jb2w9ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2whPT1cImh0dHBzOlwiJiZkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCE9PVwiaHR0cDpcIj9cImh0dHBzOlwiOmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sO3htbGh0dHAub3BlbihcIkdFVFwiLHByb3RvY29sK1wiXC9cL1wiK3BvcE1hZ2ljLmNvbmZpZy5zeW5kaWNhdGlvbl9ob3N0K1wiXC92ZW5vci5waHBcIix0cnVlKTt0cnl7eG1saHR0cC5zZW5kKCl9Y2F0Y2goZXJyb3Ipe3BvcE1hZ2ljLnZlbm9yX2xvYWRlZD10cnVlfX1wb3BNYWdpYy5idWlsZFVybCgpO3BvcE1hZ2ljLmJyb3dzZXI9cG9wTWFnaWMuYnJvd3NlckRldGVjdG9yLmRldGVjdEJyb3dzZXIobmF2aWdhdG9yLnVzZXJBZ2VudCk7aWYoIXBvcE1hZ2ljLmNvbmZpZy5jaHJvbWVfZW5hYmxlZCYmKHBvcE1hZ2ljLmJyb3dzZXIubmFtZT09PVwiY2hyb21lXCJ8fHBvcE1hZ2ljLmJyb3dzZXIubmFtZT09PVwiY3Jpb3NcIikpe3JldHVybn12YXIgcG9wTWV0aG9kPXBvcE1hZ2ljLmdldFBvcE1ldGhvZChwb3BNYWdpYy5icm93c2VyKTtwb3BNYWdpYy5hZGRFdmVudChcImNsaWNrXCIscG9wTWV0aG9kKX0sZ2V0UG9wTWV0aG9kOmZ1bmN0aW9uKGJyb3dzZXJJbmZvKXtpZihwb3BNYWdpYy5jb25maWcucG9wdXBfZm9yY2Upe3JldHVybiBwb3BNYWdpYy5tZXRob2RzLnBvcHVwfWlmKHBvcE1hZ2ljLmNvbmZpZy5wb3B1cF9mYWxsYmFjayYmYnJvd3NlckluZm8ubmFtZT09PVwiY2hyb21lXCImJmJyb3dzZXJJbmZvLnZlcnNpb24+PTY4JiYhYnJvd3NlckluZm8uaXNNb2JpbGUpe3JldHVybiBwb3BNYWdpYy5tZXRob2RzLnBvcHVwfWlmKGJyb3dzZXJJbmZvLmlzTW9iaWxlKXtyZXR1cm4gcG9wTWFnaWMubWV0aG9kcy5kZWZhdWx0fWlmKGJyb3dzZXJJbmZvLm5hbWU9PT1cImNocm9tZVwiKXtyZXR1cm4gcG9wTWFnaWMubWV0aG9kcy5jaHJvbWVUYWJ9cmV0dXJuIHBvcE1hZ2ljLm1ldGhvZHMuZGVmYXVsdH0sYnVpbGRVcmw6ZnVuY3Rpb24oKXt2YXIgcHJvdG9jb2w9ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2whPT1cImh0dHBzOlwiJiZkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCE9PVwiaHR0cDpcIj9cImh0dHBzOlwiOmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sO3ZhciBwPXRvcD09PXNlbGY/ZG9jdW1lbnQuVVJMOmRvY3VtZW50LnJlZmVycmVyO3ZhciBzY3JpcHRfaW5mbz17dHlwZTpcImlubGluZVwiLG5hbWU6XCJwb3BNYWdpY1wiLHZlcjp0aGlzLnZlcnNpb259O3ZhciBlbmNvZGVTY3JpcHRJbmZvPWZ1bmN0aW9uKHNjcmlwdF9pbmZvKXt2YXIgcmVzdWx0PXNjcmlwdF9pbmZvW1widHlwZVwiXStcInxcIitzY3JpcHRfaW5mb1tcIm5hbWVcIl0rXCJ8XCIrc2NyaXB0X2luZm9bXCJ2ZXJcIl07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChidG9hKHJlc3VsdCkpfTt2YXIgY3VzdG9tVGFyZ2V0aW5nUGFyYW1zPVwiXCI7aWYoY3VzdG9tVGFyZ2V0aW5nJiZPYmplY3Qua2V5cyhjdXN0b21UYXJnZXRpbmcpLmxlbmd0aCl7dmFyIGN1c3RvbVRhcmdldGluZ0tleXM9dHlwZW9mIGN1c3RvbVRhcmdldGluZz09PVwib2JqZWN0XCI/T2JqZWN0LmtleXMoY3VzdG9tVGFyZ2V0aW5nKTpjdXN0b21UYXJnZXRpbmc7dmFyIHZhbHVlO2N1c3RvbVRhcmdldGluZ0tleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpe2lmKHR5cGVvZiBjdXN0b21UYXJnZXRpbmc9PT1cIm9iamVjdFwiKXt2YWx1ZT1jdXN0b21UYXJnZXRpbmdba2V5XX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoY3VzdG9tVGFyZ2V0aW5nKSl7dmFsdWU9c2NyaXB0RWwuZ2V0QXR0cmlidXRlKGtleSl9dmFyIGtleVdpdGhvdXRFeG9QcmVmaXg9a2V5LnJlcGxhY2UoXCJkYXRhLWV4by1cIixcIlwiKTtjdXN0b21UYXJnZXRpbmdQYXJhbXMrPWAmJHtrZXlXaXRob3V0RXhvUHJlZml4fT0ke3ZhbHVlfWB9KX10aGlzLnVybD1wcm90b2NvbCtcIlwvXC9cIit0aGlzLmNvbmZpZy5zeW5kaWNhdGlvbl9ob3N0K1wiXC9zcGxhc2gucGhwXCIrXCI/Y2F0PVwiK3RoaXMuY29uZmlnLmNhdCtcIiZpZHpvbmU9XCIrdGhpcy5jb25maWcuaWR6b25lK1wiJnR5cGU9OFwiK1wiJnA9XCIrZW5jb2RlVVJJQ29tcG9uZW50KHApK1wiJnN1Yj1cIit0aGlzLmNvbmZpZy5zdWIrKHRoaXMuY29uZmlnLnN1YjIhPT1cIlwiP1wiJnN1YjI9XCIrdGhpcy5jb25maWcuc3ViMjpcIlwiKSsodGhpcy5jb25maWcuc3ViMyE9PVwiXCI/XCImc3ViMz1cIit0aGlzLmNvbmZpZy5zdWIzOlwiXCIpK1wiJmJsb2NrPTFcIitcIiZlbD1cIit0aGlzLmNvbmZpZy5lbCtcIiZ0YWdzPVwiK3RoaXMuY29uZmlnLnRhZ3MrXCImY29va2llY29uc2VudD1cIit0aGlzLmNvbmZpZy5jb29raWVjb25zZW50K1wiJnNjcl9pbmZvPVwiK2VuY29kZVNjcmlwdEluZm8oc2NyaXB0X2luZm8pK2N1c3RvbVRhcmdldGluZ1BhcmFtc30sYWRkRXZlbnRUb0VsZW1lbnQ6ZnVuY3Rpb24ob2JqLHR5cGUsZm4pe2lmKG9iai5hZGRFdmVudExpc3RlbmVyKXtvYmouYWRkRXZlbnRMaXN0ZW5lcih0eXBlLGZuLGZhbHNlKX1lbHNlIGlmKG9iai5hdHRhY2hFdmVudCl7b2JqW1wiZVwiK3R5cGUrZm5dPWZuO29ialt0eXBlK2ZuXT1mdW5jdGlvbigpe29ialtcImVcIit0eXBlK2ZuXSh3aW5kb3cuZXZlbnQpfTtvYmouYXR0YWNoRXZlbnQoXCJvblwiK3R5cGUsb2JqW3R5cGUrZm5dKX1lbHNle29ialtcIm9uXCIrdHlwZV09b2JqW1wiZVwiK3R5cGUrZm5dfX0sYWRkRXZlbnQ6ZnVuY3Rpb24odHlwZSxmbil7dmFyIHRhcmdldEVsZW1lbnRzO2lmKHBvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX21ldGhvZD09XCIzXCIpe3RhcmdldEVsZW1lbnRzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJhXCIpO2ZvcihpPTA7aTx0YXJnZXRFbGVtZW50cy5sZW5ndGg7aSsrKXtwb3BNYWdpYy5hZGRFdmVudFRvRWxlbWVudCh0YXJnZXRFbGVtZW50c1tpXSx0eXBlLGZuKX1yZXR1cm59aWYocG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfbWV0aG9kPT1cIjJcIiYmcG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfbWV0aG9kIT1cIlwiKXt2YXIgdHJpZ2dlcl9jbGFzc2VzO3ZhciB0cmlnZ2VyX2NsYXNzZXNfZmluYWw9W107aWYocG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfY2xhc3MuaW5kZXhPZihcIixcIik9PT0tMSl7dHJpZ2dlcl9jbGFzc2VzPXBvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX2NsYXNzLnNwbGl0KFwiIFwiKX1lbHNle3ZhciB0cmltbWVkX3RyaWdnZXJfY2xhc3Nlcz1wb3BNYWdpYy5jb25maWcudHJpZ2dlcl9jbGFzcy5yZXBsYWNlKFwvXFxzXC9nLFwiXCIpO3RyaWdnZXJfY2xhc3Nlcz10cmltbWVkX3RyaWdnZXJfY2xhc3Nlcy5zcGxpdChcIixcIil9Zm9yKHZhciBpPTA7aTx0cmlnZ2VyX2NsYXNzZXMubGVuZ3RoO2krKyl7aWYodHJpZ2dlcl9jbGFzc2VzW2ldIT09XCJcIil7dHJpZ2dlcl9jbGFzc2VzX2ZpbmFsLnB1c2goXCIuXCIrdHJpZ2dlcl9jbGFzc2VzW2ldKX19dGFyZ2V0RWxlbWVudHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0cmlnZ2VyX2NsYXNzZXNfZmluYWwuam9pbihcIiwgXCIpKTtmb3IoaT0wO2k8dGFyZ2V0RWxlbWVudHMubGVuZ3RoO2krKyl7cG9wTWFnaWMuYWRkRXZlbnRUb0VsZW1lbnQodGFyZ2V0RWxlbWVudHNbaV0sdHlwZSxmbil9cmV0dXJufXBvcE1hZ2ljLmFkZEV2ZW50VG9FbGVtZW50KGRvY3VtZW50LHR5cGUsZm4pfSxzZXRDb29raWU6ZnVuY3Rpb24obmFtZSx2YWx1ZSx0dGxfbWludXRlcyl7aWYoIXRoaXMuY29uZmlnLmNvb2tpZWNvbnNlbnQpe3JldHVybiBmYWxzZX10dGxfbWludXRlcz1wYXJzZUludCh0dGxfbWludXRlcywxMCk7dmFyIG5vd19kYXRlPW5ldyBEYXRlO25vd19kYXRlLnNldE1pbnV0ZXMobm93X2RhdGUuZ2V0TWludXRlcygpK3BhcnNlSW50KHR0bF9taW51dGVzKSk7dmFyIGNfdmFsdWU9ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKStcIjsgZXhwaXJlcz1cIitub3dfZGF0ZS50b1VUQ1N0cmluZygpK1wiOyBwYXRoPVwvXCI7ZG9jdW1lbnQuY29va2llPW5hbWUrXCI9XCIrY192YWx1ZX0sZ2V0Q29va2llOmZ1bmN0aW9uKG5hbWUpe2lmKCF0aGlzLmNvbmZpZy5jb29raWVjb25zZW50KXtyZXR1cm4gZmFsc2V9dmFyIGkseCx5LGNvb2tpZXNBcnJheT1kb2N1bWVudC5jb29raWUuc3BsaXQoXCI7XCIpO2ZvcihpPTA7aTxjb29raWVzQXJyYXkubGVuZ3RoO2krKyl7eD1jb29raWVzQXJyYXlbaV0uc3Vic3RyKDAsY29va2llc0FycmF5W2ldLmluZGV4T2YoXCI9XCIpKTt5PWNvb2tpZXNBcnJheVtpXS5zdWJzdHIoY29va2llc0FycmF5W2ldLmluZGV4T2YoXCI9XCIpKzEpO3g9eC5yZXBsYWNlKFwvXlxccyt8XFxzKyRcL2csXCJcIik7aWYoeD09PW5hbWUpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoeSl9fX0scmFuZFN0cjpmdW5jdGlvbihsZW5ndGgscG9zc2libGVDaGFycyl7dmFyIHRleHQ9XCJcIjt2YXIgcG9zc2libGU9cG9zc2libGVDaGFyc3x8XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiO2Zvcih2YXIgaT0wO2k8bGVuZ3RoO2krKyl7dGV4dCs9cG9zc2libGUuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpwb3NzaWJsZS5sZW5ndGgpKX1yZXR1cm4gdGV4dH0saXNWYWxpZFVzZXJFdmVudDpmdW5jdGlvbihldmVudCl7aWYoXCJpc1RydXN0ZWRcImluIGV2ZW50JiZldmVudC5pc1RydXN0ZWQmJnBvcE1hZ2ljLmJyb3dzZXIubmFtZSE9PVwiaWVcIiYmcG9wTWFnaWMuYnJvd3Nlci5uYW1lIT09XCJzYWZhcmlcIil7cmV0dXJuIHRydWV9ZWxzZXtyZXR1cm4gZXZlbnQuc2NyZWVuWCE9MCYmZXZlbnQuc2NyZWVuWSE9MH19LGlzVmFsaWRIcmVmOmZ1bmN0aW9uKGhyZWYpe2lmKHR5cGVvZiBocmVmPT09XCJ1bmRlZmluZWRcInx8aHJlZj09XCJcIil7cmV0dXJuIGZhbHNlfXZhciBlbXB0eV9yZWY9XC9cXHM/amF2YXNjcmlwdFxccz86XC9pO3JldHVybiFlbXB0eV9yZWYudGVzdChocmVmKX0sZmluZExpbmtUb09wZW46ZnVuY3Rpb24oY2xpY2tlZEVsZW1lbnQpe3ZhciB0YXJnZXQ9Y2xpY2tlZEVsZW1lbnQ7dmFyIGxvY2F0aW9uPWZhbHNlO3RyeXt2YXIgYnJlYWtDdHI9MDt3aGlsZShicmVha0N0cjwyMCYmIXRhcmdldC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpJiZ0YXJnZXQhPT1kb2N1bWVudCYmdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT1cImh0bWxcIil7dGFyZ2V0PXRhcmdldC5wYXJlbnROb2RlO2JyZWFrQ3RyKyt9dmFyIGVsZW1lbnRUYXJnZXRBdHRyPXRhcmdldC5nZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIik7aWYoIWVsZW1lbnRUYXJnZXRBdHRyfHxlbGVtZW50VGFyZ2V0QXR0ci5pbmRleE9mKFwiX2JsYW5rXCIpPT09LTEpe2xvY2F0aW9uPXRhcmdldC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpfX1jYXRjaChlcnIpe31pZighcG9wTWFnaWMuaXNWYWxpZEhyZWYobG9jYXRpb24pKXtsb2NhdGlvbj1mYWxzZX1yZXR1cm4gbG9jYXRpb258fHdpbmRvdy5sb2NhdGlvbi5ocmVmfSxnZXRQdUlkOmZ1bmN0aW9uKCl7cmV0dXJuXCJva19cIitNYXRoLmZsb29yKDg5OTk5OTk5Kk1hdGgucmFuZG9tKCkrMWU3KX0sYnJvd3NlckRldGVjdG9yOnticm93c2VyRGVmaW5pdGlvbnM6W1tcImZpcmVmb3hcIixcL0ZpcmVmb3hcXFwvKFswLTkuXSspKD86XFxzfCQpXC9dLFtcIm9wZXJhXCIsXC9PcGVyYVxcXC8oWzAtOS5dKykoPzpcXHN8JClcL10sW1wib3BlcmFcIixcL09QUlxcXC8oWzAtOS5dKykoOj9cXHN8JCkkXC9dLFtcImVkZ2VcIixcL0VkZyg/OmV8KVxcXC8oWzAtOS5fXSspXC9dLFtcImllXCIsXC9UcmlkZW50XFxcLzdcXC4wLipydjooWzAtOS5dKylcXCkuKkdlY2tvJFwvXSxbXCJpZVwiLFwvTVNJRVxccyhbMC05Ll0rKTsuKlRyaWRlbnRcXFwvWzQtN10uMFwvXSxbXCJpZVwiLFwvTVNJRVxccyg3XFwuMClcL10sW1wic2FmYXJpXCIsXC9WZXJzaW9uXFxcLyhbMC05Ll9dKykuKlNhZmFyaVwvXSxbXCJjaHJvbWVcIixcLyg/IUNocm9tLipFZGcoPzplfCkpQ2hyb20oPzplfGl1bSlcXFwvKFswLTkuXSspKDo/XFxzfCQpXC9dLFtcImNocm9tZVwiLFwvKD8hQ2hyb20uKk9QUilDaHJvbSg/OmV8aXVtKVxcXC8oWzAtOS5dKykoOj9cXHN8JClcL10sW1wiYmIxMFwiLFwvQkIxMDtcXHNUb3VjaC4qVmVyc2lvblxcXC8oWzAtOS5dKylcL10sW1wiYW5kcm9pZFwiLFwvQW5kcm9pZFxccyhbMC05Ll0rKVwvXSxbXCJpb3NcIixcL1ZlcnNpb25cXFwvKFswLTkuX10rKS4qTW9iaWxlLipTYWZhcmkuKlwvXSxbXCJ5YW5kZXhicm93c2VyXCIsXC9ZYUJyb3dzZXJcXFwvKFswLTkuX10rKVwvXSxbXCJjcmlvc1wiLFwvQ3JpT1NcXFwvKFswLTkuXSspKDo/XFxzfCQpXC9dXSxkZXRlY3RCcm93c2VyOmZ1bmN0aW9uKHVzZXJBZ2VudCl7dmFyIGlzTW9iaWxlPXVzZXJBZ2VudC5tYXRjaChcL0FuZHJvaWR8QmxhY2tCZXJyeXxpUGhvbmV8aVBhZHxpUG9kfE9wZXJhIE1pbml8SUVNb2JpbGV8V2ViT1N8V2luZG93cyBQaG9uZVwvaSk7Zm9yKHZhciBpIGluIHRoaXMuYnJvd3NlckRlZmluaXRpb25zKXt2YXIgZGVmaW5pdGlvbj10aGlzLmJyb3dzZXJEZWZpbml0aW9uc1tpXTtpZihkZWZpbml0aW9uWzFdLnRlc3QodXNlckFnZW50KSl7dmFyIG1hdGNoPWRlZmluaXRpb25bMV0uZXhlYyh1c2VyQWdlbnQpO3ZhciB2ZXJzaW9uPW1hdGNoJiZtYXRjaFsxXS5zcGxpdChcL1suX11cLykuc2xpY2UoMCwzKTt2YXIgdmVyc2lvblRhaWxzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHZlcnNpb24sMSkuam9pbihcIlwiKXx8XCIwXCI7aWYodmVyc2lvbiYmdmVyc2lvbi5sZW5ndGg8Myl7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodmVyc2lvbix2ZXJzaW9uLmxlbmd0aD09PTE/WzAsMF06WzBdKX1yZXR1cm57bmFtZTpkZWZpbml0aW9uWzBdLHZlcnNpb246dmVyc2lvbi5qb2luKFwiLlwiKSx2ZXJzaW9uTnVtYmVyOnBhcnNlRmxvYXQodmVyc2lvblswXStcIi5cIit2ZXJzaW9uVGFpbHMpLGlzTW9iaWxlOmlzTW9iaWxlfX19cmV0dXJue25hbWU6XCJvdGhlclwiLHZlcnNpb246XCIxLjBcIix2ZXJzaW9uTnVtYmVyOjEsaXNNb2JpbGU6aXNNb2JpbGV9fX0sbWV0aG9kczp7ZGVmYXVsdDpmdW5jdGlvbih0cmlnZ2VyZWRFdmVudCl7aWYoIXBvcE1hZ2ljLnNob3VsZFNob3coKXx8IXBvcE1hZ2ljLnZlbm9yU2hvdWxkU2hvdygpfHwhcG9wTWFnaWMuaXNWYWxpZFVzZXJFdmVudCh0cmlnZ2VyZWRFdmVudCkpcmV0dXJuIHRydWU7dmFyIGNsaWNrZWRFbGVtZW50PXRyaWdnZXJlZEV2ZW50LnRhcmdldHx8dHJpZ2dlcmVkRXZlbnQuc3JjRWxlbWVudDt2YXIgaHJlZj1wb3BNYWdpYy5maW5kTGlua1RvT3BlbihjbGlja2VkRWxlbWVudCk7d2luZG93Lm9wZW4oaHJlZixcIl9ibGFua1wiKTtwb3BNYWdpYy5zZXRBc09wZW5lZCgpO3BvcE1hZ2ljLnRvcC5kb2N1bWVudC5sb2NhdGlvbj1wb3BNYWdpYy51cmw7aWYodHlwZW9mIHRyaWdnZXJlZEV2ZW50LnByZXZlbnREZWZhdWx0IT09XCJ1bmRlZmluZWRcIil7dHJpZ2dlcmVkRXZlbnQucHJldmVudERlZmF1bHQoKTt0cmlnZ2VyZWRFdmVudC5zdG9wUHJvcGFnYXRpb24oKX1yZXR1cm4gdHJ1ZX0sY2hyb21lVGFiOmZ1bmN0aW9uKGV2ZW50KXtpZighcG9wTWFnaWMuc2hvdWxkU2hvdygpfHwhcG9wTWFnaWMudmVub3JTaG91bGRTaG93KCl8fCFwb3BNYWdpYy5pc1ZhbGlkVXNlckV2ZW50KGV2ZW50KSlyZXR1cm4gdHJ1ZTtpZih0eXBlb2YgZXZlbnQucHJldmVudERlZmF1bHQhPT1cInVuZGVmaW5lZFwiKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpfWVsc2V7cmV0dXJuIHRydWV9dmFyIGE9dG9wLndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTt2YXIgdGFyZ2V0PWV2ZW50LnRhcmdldHx8ZXZlbnQuc3JjRWxlbWVudDthLmhyZWY9cG9wTWFnaWMuZmluZExpbmtUb09wZW4odGFyZ2V0KTtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIilbMF0uYXBwZW5kQ2hpbGQoYSk7dmFyIGU9bmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiLHtidWJibGVzOnRydWUsY2FuY2VsYWJsZTp0cnVlLHZpZXc6d2luZG93LHNjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxjdHJsS2V5OnRydWUsYWx0S2V5OmZhbHNlLHNoaWZ0S2V5OmZhbHNlLG1ldGFLZXk6dHJ1ZSxidXR0b246MH0pO2UucHJldmVudERlZmF1bHQ9dW5kZWZpbmVkO2EuZGlzcGF0Y2hFdmVudChlKTthLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk7d2luZG93Lm9wZW4ocG9wTWFnaWMudXJsLFwiX3NlbGZcIik7cG9wTWFnaWMuc2V0QXNPcGVuZWQoKX0scG9wdXA6ZnVuY3Rpb24odHJpZ2dlcmVkRXZlbnQpe2lmKCFwb3BNYWdpYy5zaG91bGRTaG93KCl8fCFwb3BNYWdpYy52ZW5vclNob3VsZFNob3coKXx8IXBvcE1hZ2ljLmlzVmFsaWRVc2VyRXZlbnQodHJpZ2dlcmVkRXZlbnQpKXJldHVybiB0cnVlO3ZhciB3aW5PcHRpb25zPVwiXCI7aWYocG9wTWFnaWMuY29uZmlnLnBvcHVwX2ZhbGxiYWNrJiYhcG9wTWFnaWMuY29uZmlnLnBvcHVwX2ZvcmNlKXt2YXIgaGVpZ2h0PU1hdGgubWF4KE1hdGgucm91bmQod2luZG93LmlubmVySGVpZ2h0Ki44KSwzMDApO3ZhciB3aWR0aD1NYXRoLm1heChNYXRoLnJvdW5kKHdpbmRvdy5pbm5lcldpZHRoKi43KSwzMDApO3ZhciB0b3A9d2luZG93LnNjcmVlblkrMTAwO3ZhciBsZWZ0PXdpbmRvdy5zY3JlZW5YKzEwMDt3aW5PcHRpb25zPVwibWVudWJhcj0xLHJlc2l6YWJsZT0xLHdpZHRoPVwiK3dpZHRoK1wiLGhlaWdodD1cIitoZWlnaHQrXCIsdG9wPVwiK3RvcCtcIixsZWZ0PVwiK2xlZnR9dmFyIHByZVBvcFVybD1kb2N1bWVudC5sb2NhdGlvbi5ocmVmO3ZhciBwb3BXaW49d2luZG93Lm9wZW4ocHJlUG9wVXJsLHBvcE1hZ2ljLmdldFB1SWQoKSx3aW5PcHRpb25zKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wV2luLmxvY2F0aW9uLmhyZWY9cG9wTWFnaWMudXJsfSwyMDApO3BvcE1hZ2ljLnNldEFzT3BlbmVkKCk7aWYodHlwZW9mIHRyaWdnZXJlZEV2ZW50LnByZXZlbnREZWZhdWx0IT09XCJ1bmRlZmluZWRcIil7dHJpZ2dlcmVkRXZlbnQucHJldmVudERlZmF1bHQoKTt0cmlnZ2VyZWRFdmVudC5zdG9wUHJvcGFnYXRpb24oKX19fX07ICAgIHBvcE1hZ2ljLmluaXQoYWRDb25maWcpO1xyXG59KSgpO1xyXG5cclxuXHJcbjxcL3NjcmlwdD4ifSx7ImlkIjoiZXhvbV9qX1BPUFVOREVSIiwiYWRzcG90Ijoial9QT1BVTkRFUiIsIndlaWdodCI6IjYiLCJmY2FwIjoiMiIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHNyYz1cIlwvXC9zeW5kaWNhdGlvbi5leG9jbGljay5jb21cL3NwbGFzaC5waHA/aWR6b25lPTEwMjYzMTImdHlwZT0xMVwiPjxcL3NjcmlwdD5cclxuPHNjcmlwdD5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAodHlwZW9mIGV4b1VybCAhPSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgZXhvVXJsID0gZXhvVXJsLnJlcGxhY2UoJ2h0dHA6XC9cLycsICdodHRwczpcL1wvJyk7XHJcbiAgICB9XHJcbiAgICAkKFwiYVwiKS5iaW5kKFwiY2xpY2tcIiwgZnVuY3Rpb24oZXZlbnQpIHtcclxuICAgICAgICBleG9Nb2JpbGVQb3AoKTtcclxuICAgICAgICAkKHRoaXMpLnVuYmluZChcImNsaWNrXCIpO1xyXG4gICAgfSk7XHJcbn0pO1xyXG48XC9zY3JpcHQ+In0seyJpZCI6ImphdnVfal9QT1BVTkRFUiIsImFkc3BvdCI6ImpfUE9QVU5ERVIiLCJ3ZWlnaHQiOiI0IiwiZmNhcCI6IjEiLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjpmYWxzZSwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdD5cclxuJChkb2N1bWVudC5ib2R5KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uKGV2ZW50KSB7XHJcbiAgd2luZG93Lm9wZW4oXCJodHRwczpcL1wvdGVsbG1lLnB3XC9nb1wvamF2dVwiKTtcclxuICAkKHRoaXMpLm9mZihcImNsaWNrXCIpO1xyXG59KTtcclxuPFwvc2NyaXB0PiJ9XQ==