Ly8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyAqCi8vICogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwovLyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi8vICoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KLy8gIDExLzE3Lzk5ICAgIGFsaXUgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHRyYW5zbGl0ZXJhdG9ycy4KCi8vIFBsZWFzZSBzZWFyY2ggZm9yICdEVVAgRklYTUUnIC0gZHVwbGljYXRlIGxhbmcvY291bnRyeSBuYW1lcyBjb21tZW50ZWQgb3V0CgoKCnJvb3QgewogICAgVmVyc2lvbiB7ICIzIiB9CiAgICAiJSVFVVJPIiB7ICJFdXJvIiB9ICAgICAgICAgLy8gRXVybyB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlQiIgICAgeyAiQm9rbVx1MDBlNWwiIH0gIC8vIE5vcndlZ2lhbiB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlTlkiICAgeyAiTnlub3JzayIgfSAgICAgIC8vIE5vcndlZ2lhbiB2YXJpYW50IGRpc3BsYXkgbmFtZQogICAgIiUlQUwiIHsgIlx1MDBDNWxhbmQiIH0gLy8gQWxhbmQgdmFyaWFudCBkaXNwbGF5IG5hbWUKICAgIENvbGxhdGlvbkVsZW1lbnRzIHsgCgkgICAgVmVyc2lvbiB7ICIxLjAiIH0KCQlPdmVycmlkZSB7ICJGQUxTRSIgfQoJCVNlcXVlbmNlIHsgIiIgfQogICAgfSAgICAKICAgIC8vIEZvcm1hdHMgZm9yIHRoZSBkaXNwbGF5IG5hbWUgb2YgYSBsb2NhbGUsIGZvciBhIGxpc3Qgb2YKICAgIC8vIGl0ZW1zLCBhbmQgZm9yIGNvbXBvc2luZyB0d28gaXRlbXMgaW4gYSBsaXN0IGludG8gb25lIGl0ZW0uCiAgICAvLyBUaGUgbGlzdCBwYXR0ZXJucyBhcmUgdXNlZCBpbiB0aGUgdmFyaWFudCBuYW1lIGFuZCBpbiB0aGUKICAgIC8vIGZ1bGwgZGlzcGxheSBuYW1lLgogICAgLy8KICAgIC8vIFRoaXMgaXMgdGhlIGxhbmd1YWdlLW5ldXRyYWwgZm9ybSBvZiB0aGlzIHJlc291cmNlLgogICAgLy8KICAgIExvY2FsZU5hbWVQYXR0ZXJucyB7CiAgICAgICAgIHsKICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSAoezJ9KX0iLCAvLyBEaXNwbGF5IG5hbWUKICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSx7Mn18MyN7MX0sezJ9LHszfX0iLCAvLyBMaXN0CiAgICAgICAgICAgICJ7MH0sezF9IiAvLyBMaXN0IGNvbXBvc2l0aW9uCiAgICAgICAgIH0KICAgIH0KCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLy8gQkVHSU4gVHJhbnNsaXRlcmF0b3Igc3VwcG9ydAogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAKICAgIC8vIFNlZSBhbHNvIGljdS9kYXRhL3RyYW5zbGl0L2luZGV4LnR4dAoKICAgIFRyYW5zbGl0ZXJhdG9yTmFtZVBhdHRlcm4gewogICAgICAgIC8vIEZvcm1hdCBmb3IgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIFRyYW5zbGl0ZXJhdG9yLgogICAgICAgIC8vIFRoaXMgaXMgdGhlIGxhbmd1YWdlLW5ldXRyYWwgZm9ybSBvZiB0aGlzIHJlc291cmNlLgogICAgICAgICJ7MCxjaG9pY2UsMCN8MSN7MX18MiN7MX0tezJ9fSIgLy8gRGlzcGxheSBuYW1lCiAgICB9CgogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC8vIEVORCBUcmFuc2xpdGVyYXRvciBzdXBwb3J0CiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAvLyBCRUdJTiBCcmVha0l0ZXJhdG9yIHN1cHBvcnQKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgQ2hhcmFjdGVyQnJlYWtSdWxlcyB7CiAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzIGFuZCBlbmNsb3NpbmcgbWFya3MgKHNpbmNlIHdlIG5ldmVyCiAgICAgICAgLy8gcHV0IGEgYnJlYWsgYmVmb3JlIGlnbm9yZSBjaGFyYWN0ZXJzLCB0aGlzIGtlZXBzIGNvbWJpbmluZwogICAgICAgIC8vIGFjY2VudHMgd2l0aCB0aGUgYmFzZSBjaGFyYWN0ZXJzIHRoZXkgbW9kaWZ5KQogICAgICAgICIkaWdub3JlPVtbOk1uOl1bOk1lOl1dOyIKCiAgICAgICAgLy8gb3RoZXIgY2F0ZWdvcnkgZGVmaW5pdGlvbnMKICAgICAgICAiY2hvc2Vvbmc9W1x1MTEwMC1cdTExNWZdOyIKICAgICAgICAianVuZ3Nlb25nPVtcdTExNjAtXHUxMWE3XTsiCiAgICAgICAgImpvbmdzZW9uZz1bXHUxMWE4LVx1MTFmZl07IgogICAgICAgICJzdXJyLWhpPVtcdWQ4MDAtXHVkYmZmXTsiCiAgICAgICAgInN1cnItbG89W1x1ZGMwMC1cdWRmZmZdOyIKCiAgICAgICAgLy8gYnJlYWsgYWZ0ZXIgZXZlcnkgY2hhcmFjdGVyLCBleGNlcHQgYXMgZm9sbG93czoKICAgICAgICAiLjsiCgogICAgICAgIC8vIGtlZXAgQ1JMRiBzZXF1ZW5jZXMgdG9nZXRoZXIKICAgICAgICAiXHJcbjsiCgogICAgICAgIC8vIGtlZXAgc3Vycm9nYXRlIHBhaXJzIHRvZ2V0aGVyCiAgICAgICAgIntzdXJyLWhpfXtzdXJyLWxvfTsiCgogICAgICAgIC8vIGtlZXAgSGFuZ3VsIHN5bGxhYmxlcyBzcGVsbGVkIG91dCB1c2luZyBjb25qb2luaW5nIGphbW8gdG9nZXRoZXIKICAgICAgICAie2Nob3Nlb25nfSp7anVuZ3Nlb25nfSp7am9uZ3Nlb25nfSo7IgoKICAgICAgICAvLyB2YXJpb3VzIGFkZGl0aW9ucyBmb3IgSGluZGkgc3VwcG9ydAogICAgICAgICJudWt0YT1bXHUwOTNjXTsiCiAgICAgICAgImRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKICAgICAgICAidmlyYW1hPVtcdTA5NGRdOyIKICAgICAgICAiZGV2Vm93ZWxTaWduPVtcdTA5M2UtXHUwOTRjXHUwOTYyXHUwOTYzXTsiCiAgICAgICAgImRldkNvbnNvbmFudD1bXHUwOTE1LVx1MDkzOV07IgogICAgICAgICJkZXZOdWt0YUNvbnNvbmFudD1bXHUwOTU4LVx1MDk1Zl07IgogICAgICAgICJkZXZDaGFyRW5kPVtcdTA5MDJcdTA5MDNcdTA5NTEtXHUwOTU0XTsiCiAgICAgICAgInp3aj1bXHUyMDBkXTsiCiAgICAgICAgCiAgICAgICAgImRldkNBTU49KHtkZXZDb25zb25hbnR9e251a3RhfT8pOyIKICAgICAgICAiZGV2Q29uc29uYW50MT0oe2Rldk51a3RhQ29uc29uYW50fXx7ZGV2Q0FNTn0pOyIKICAgICAgICAiZGV2Q29uanVuY3Q9KCh7ZGV2Q29uc29uYW50MX17dmlyYW1hfXt6d2p9Pyk/e2RldkNvbnNvbmFudDF9KTsiCgogICAgICAgICJ7ZGV2Q29uanVuY3R9e2RldlZvd2VsU2lnbn0/e2RldkNoYXJFbmR9PzsiCiAgICAgICAgIntkYW5kYX17bnVrdGF9OyIKICAgIH0KCiAgICAvLyBkZWZhdWx0IHJ1bGVzIGZvciBmaW5kaW5nIHdvcmQgYm91bmRhcmllcwogICAgV29yZEJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCiAgICAgICAgLy8gYWxsIG9mIHdoaWNoIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBhbGdvcml0aG0KICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCgogICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IsIGthbmppLCBrYXRha2FuYSwgaGlyYWdhbmEsIENKSyBkaWFjcml0aWNhbHMsCiAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cwogICAgICAgICJkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCiAgICAgICAgImthbmppPVtcdTMwMDVcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZF07IgogICAgICAgICJrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgogICAgICAgICJoaXJhPVtcdTMwNDEtXHUzMDllXHUzMGZjXTsiCiAgICAgICAgImxldD1bW1s6TDpdWzpNYzpdXS1be2thbmppfXtrYXRhfXtoaXJhfV1dOyIKICAgICAgICAiZGd0PVs6TjpdOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQogICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIHF1b3RhdGlvbiBtYXJrcywgYW5kIHBlcmlvZHMKICAgICAgICAibWlkLXdvcmQ9W1s6UGQ6XVx1MDBhZFx1MjAyN1xcXCJcXFwnXFwuXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IGN1cnJlbnRseQogICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKICAgICAgICAvLyBkZWNpbWFsIHBvaW50CiAgICAgICAgIm1pZC1udW09W1xcXCJcXFwnXFwsXHUwNjZiXFwuXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBudW1iZXI6IGN1cnJlbnRseQogICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgogICAgICAgICJwcmUtbnVtPVtbWzpTYzpdLVtcdTAwYTJdXVxcI1xcLl07IgoKICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKICAgICAgICAvLyB0aGUgcGVyY2VudCwgcGVyLXRob3VzYW5kLCBwZXItdGVuLXRob3VzYW5kLCBhbmQgQXJhYmljIHBlcmNlbnQKICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCiAgICAgICAgInBvc3QtbnVtPVtcXCVcXCZcdTAwYTJcdTA2NmFcdTIwMzBcdTIwMzFdOyIKCiAgICAgICAgLy8gbGluZSBzZXBhcmF0b3JzOiBjdXJyZW50bHkgTEYsIEZGLCBQUywgYW5kIExTCiAgICAgICAgImxzPVtcblx1MDAwY1x1MjAyOFx1MjAyOV07IgoKICAgICAgICAvLyB3aGl0ZXNwYWNlOiBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKICAgICAgICAid3M9W1s6WnM6XVx0XTsiCgogICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAogICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAogICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdwogICAgICAgICJ3b3JkPSh7bGV0fSsoe21pZC13b3JkfXtsZXR9Kykqe2RhbmRhfT8pOyIKCiAgICAgICAgLy8gYSBudW1iZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAogICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgZGlnaXQgYW5kCiAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgogICAgICAgICJudW1iZXI9KHtkZ3R9Kyh7bWlkLW51bX17ZGd0fSspKik7IgoKICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCiAgICAgICAgLy8gKHRoaXMgd2lsbCBjYXVzZSBwdW5jdHVhdGlvbiBtYXJrcyB0aGF0IGFyZW4ndCBjb25zaWRlcmVkCiAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQogICAgICAgICIuOyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbnkgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycwogICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZwogICAgICAgIC8vIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCiAgICAgICAgInt3b3JkfT8oe251bWJlcn17d29yZH0pKih7bnVtYmVyfXtwb3N0LW51bX0/KT87IgoKICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFuZCBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCiAgICAgICAgLy8gdGhhdCBzdGFydHMgd2l0aCBhIG51bWJlci1wcmVmaXggY2hhcmFjdGVyIGFuZCBhIG51bWJlciwKICAgICAgICAvLyBhbmQgbWF5IGVuZCB3aXRoIGEgbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKICAgICAgICAie3ByZS1udW19KHtudW1iZXJ9e3dvcmR9KSooe251bWJlcn17cG9zdC1udW19Pyk/OyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIHdoaXRlc3BhY2UgKG9wdGlvbmFsbHkgd2l0aCBhIHNpbmdsZSB0cmFpbGluZwogICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yIG9yIENSTEYgc2VxdWVuY2UpCiAgICAgICAgInt3c30qXHI/e2xzfT87IgoKICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2F0YWthbmEKICAgICAgICAie2thdGF9KjsiCgogICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBIaXJhZ2FuYQogICAgICAgICJ7aGlyYX0qOyIKCiAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthbmppCiAgICAgICAgIntrYW5qaX0qOyIKICAgIH0KCiAgICAvLyBkZWZhdWx0IHJ1bGVzIGZvciBkZXRlcm1pbmluZyBsZWdhbCBsaW5lLWJyZWFraW5nIHBvc2l0aW9ucwogICAgTGluZUJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCgogICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3JzCiAgICAgICAgImRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCiAgICAgICAgImJyZWFrPVtcdTAwMDNcdFxuXGZcdTIwMjhcdTIwMjldOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBwcmV2ZW50IGEgYnJlYWs6IHRoZSBub24tYnJlYWtpbmcgc3BhY2UKICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCiAgICAgICAgIm5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgoKICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKICAgICAgICAvLyBDUiBhbmQgdGhlIG90aGVyIGNoYXJhY3RlcnMgbWVudGlvbmVkIGFib3ZlCiAgICAgICAgInNwYWNlPVtbWzpaczpdWzpDYzpdXS1be25ic3B9e2JyZWFrfVxyXV07IgoKICAgICAgICAvLyBkYXNoZXM6IGRhc2ggcHVuY3R1YXRpb24gYW5kIHRoZSBkaXNjcmV0aW9uYXJ5IGh5cGhlbiwgZXhjZXB0IGZvcgogICAgICAgIC8vIG5vbi1icmVha2luZyBoeXBoZW5zCiAgICAgICAgImRhc2g9W1tbOlBkOl1cdTAwYWRdLVt7bmJzcH1dXTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBwcmVjZWRlIGl0OiBjdXJyZW5jeSBzeW1ib2xzCiAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCiAgICAgICAgInByZS13b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVxcXCJcXFwnXTsiCgogICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKICAgICAgICAvLyBvdGhlciBwdW5jdHVhdGlvbiB0aGF0IHVzdWFsbHkgb2NjdXJzIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZSwKICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KICAgICAgICAicG9zdC13b3JkPVtbOlBlOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCiAgICAgICAgICAgICAgICAiXHUyMTAzXHUyMTA1XHUyMTA5XHUzMDAxXHUzMDAyXHUzMDA1XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzIgogICAgICAgICAgICAgICAgIlx1MzA4M1x1MzA4NVx1MzA4N1x1MzA4ZVx1MzA5OS1cdTMwOWVcdTMwYTFcdTMwYTNcdTMwYTVcdTMwYTdcdTMwYTkiCiAgICAgICAgICAgICAgICAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKICAgICAgICAgICAgICAgICJcdWZmMGVcdWZmMWZdOyIKCiAgICAgICAgLy8gS2Fuamk6IGFjdHVhbGx5IGluY2x1ZGVzIGJvdGggS2FuamkgYW5kIEthbmEsIGV4Y2VwdCBmb3Igc21hbGwgS2FuYSBhbmQKICAgICAgICAvLyBDSksgZGlhY3JpdGljcwogICAgICAgICJrYW5qaT1bW1x1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXHUzMDQxLVx1MzA5NFx1MzBhMS1cdTMwZmFdLVt7cG9zdC13b3JkfXskaWdub3JlfV1dOyIKCiAgICAgICAgLy8gZGlnaXRzCiAgICAgICAgImRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCiAgICAgICAgIm1pZC1udW09W1xcLlxcLF07IgoKICAgICAgICAvLyBldmVyeXRoaW5nIG5vdCBtZW50aW9uZWQgYWJvdmUsIHBsdXMgdGhlIHF1b3RlIG1hcmtzICh3aGljaCBhcmUgYm90aAogICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQogICAgICAgICJjaGFyPVtee2JyZWFrfXtzcGFjZX17ZGFzaH17a2Fuaml9e25ic3B9eyRpZ25vcmV9e3ByZS13b3JkfXtwb3N0LXdvcmR9e21pZC1udW19e2RhbmRhfVxyXFxcIlxcXCddOyIKCiAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKICAgICAgICAvLyBtb3JlIGRpZ2l0cyB3aXRoIGlzb2xhdGVkIG51bWJlci1wdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGludGVyc3BlcnNlZAogICAgICAgICJudW1iZXI9KFt7cHJlLXdvcmR9e2Rhc2h9XSp7ZGlnaXR9Kyh7bWlkLW51bX17ZGlnaXR9KykqKTsiCgogICAgICAgIC8vIHRoZSBiYXNpYyBjb3JlIG9mIGEgd29yZCBjYW4gYmUgZWl0aGVyIGEgIm51bWJlciIgYXMgZGVmaW5lZCBhYm92ZSwgYSBzaW5nbGUKICAgICAgICAvLyAiS2FuamkiIGNoYXJhY3Rlciwgb3IgYSBydW4gb2YgYW55IG51bWJlciBvZiBub3QtZXhwbGljaXRseS1tZW50aW9uZWQKICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCiAgICAgICAgIndvcmQtY29yZT0oW3twcmUtd29yZH17Y2hhcn1dKnx7a2Fuaml9fHtudW1iZXJ9KTsiCgogICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgogICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCiAgICAgICAgLy8gcnVuIG9mIHdoaXRlc3BhY2UKICAgICAgICAid29yZC1zdWZmaXg9KCh7ZGFzaH0rfHtwb3N0LXdvcmR9Kil7c3BhY2V9Kik7IgoKICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQogICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CiAgICAgICAgLy8gYWN0dWFsbHkgYWxsb3dzIGVpdGhlciBvZiB0aGVtIHRvIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcsIHB1dHRpbmcgYSBicmVhawogICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKICAgICAgICAid29yZD0oe3ByZS13b3JkfSp7d29yZC1jb3JlfXt3b3JkLXN1ZmZpeH0pOyIKCiAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAogICAgICAgIC8vIGFyZSBqb2luZWQgYnkgcnVucyBvZiBvbmUgb2YgbW9yZSBub24tc3BhY2luZyBtYXJrLiAgQWxzbyBrZWVwIGEgdHJhaWxpbmcKICAgICAgICAvLyBsaW5lLWJyZWFrIGNoYXJhY3RlciBvciBDUkxGIGNvbWJpbmF0aW9uIHdpdGggdGhlIHdvcmQuICAobGluZSBzZXBhcmF0b3JzCiAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCiAgICAgICAgInt3b3JkfSh7bmJzcH0re3dvcmR9KSpccj97YnJlYWt9PzsiCiAgICB9CgogICAgLy8gZGVmYXVsdCBydWxlcyBmb3IgZmluZGluZyBzZW50ZW5jZSBib3VuZGFyaWVzCiAgICBTZW50ZW5jZUJyZWFrUnVsZXMgewogICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKICAgICAgICAiJGlnbm9yZT1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCgogICAgICAgIC8vIGxvd2VyY2FzZSBsZXR0ZXJzCiAgICAgICAgImxjPVs6TGw6XTsiCiAgICAgICAgCiAgICAgICAgLy8gdXBwZXJjYXNlIExhdGluIGxldHRlcnMKICAgICAgICAidWNMYXRpbj1bQS1aXTsiCgogICAgICAgIC8vIHdoaXRlc3BhY2UgKGxpbmUgc2VwYXJhdG9ycyBhcmUgdHJlYXRlZCBhcyB3aGl0ZXNwYWNlKQogICAgICAgICJzcGFjZT1bXHRcclxmXG5cdTIwMjhbOlpzOl1dOyIKCiAgICAgICAgLy8gcHVuY3R1YXRpb24gd2hpY2ggbWF5IG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzZW50ZW5jZTogInN0YXJ0aW5nCiAgICAgICAgLy8gcHVuY3R1YXRpb24iIGFuZCBxdW90YXRpb24gbWFya3MKICAgICAgICAic3RhcnQ9W1s6UHM6XVxcXCJcXFwnXTsiCgogICAgICAgIC8vIHB1bmN0dWF0aW9uIHdpdGggbWF5IG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZTogImVuZGluZyBwdW5jdHVhdGlvbiIKICAgICAgICAvLyBhbmQgcXVvdGF0aW9uIG1hcmtzCiAgICAgICAgImVuZD1bWzpQZTpdXFxcIlxcXCddOyIKCiAgICAgICAgLy8gZGlnaXRzCiAgICAgICAgImRpZ2l0PVs6TjpdOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHVuYW1iaWd1b3VzbHkgc2lnbmFsIHRoZSBlbmQgb2YgYSBzZW50ZW5jZQogICAgICAgICJ0ZXJtPVtcXCFcXD9cdTMwMDJcdWZmMDFcdWZmMWZdOyIKCiAgICAgICAgLy8gcGVyaW9kcywgd2hpY2ggTUFZIHNpZ25hbCB0aGUgZW5kIG9mIGEgc2VudGVuY2UKICAgICAgICAicGVyaW9kPVtcXC5cdWZmMGVdOyIKCiAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IG1heSBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgc2VudGVuY2U6IGJhc2ljYWxseSBhbnl0aGluZwogICAgICAgIC8vIG5vdCBtZW50aW9uZWQgYWJvdmUgKGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBkaWdpdHMgYXJlIHNwZWNpZmljYWxseSBleGNsdWRlZCkKICAgICAgICAic2VudC1zdGFydD1bXntsY317dWNMYXRpbn17c3BhY2V9e3N0YXJ0fXtlbmR9e2RpZ2l0fXt0ZXJtfXtwZXJpb2R9XHUyMDI5eyRpZ25vcmV9XTsiCgogICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IKICAgICAgICAiZGFuZGE9W1x1MDk2NFx1MDk2NV07IgoKICAgICAgICAvLyBhbHdheXMgYnJlYWsgc2VudGVuY2VzIGFmdGVyIHBhcmFncmFwaCBzZXBhcmF0b3JzCiAgICAgICAgIi4qP1x1MjAyOT87IgoKICAgICAgICAvLyBhbHdheXMgYnJlYWsgYWZ0ZXIgYSBkYW5kYSwgaWYgaXQncyBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlCiAgICAgICAgIi4qP3tkYW5kYX17c3BhY2V9KjsiCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBwZXJpb2QsIHNraXAgb3ZlciBhZGRpdGlvbmFsIHBlcmlvZHMgYW5kIGVuZGluZyBwdW5jdHVhdGlvbgogICAgICAgIC8vIGFuZCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSBwYXJhZ3JhcGggc2VwYXJhdG9yLCBicmVhayBhZnRlciB0aGUKICAgICAgICAvLyBwYXJhZ3JhcGggc2VwYXJhdG9yCiAgICAgICAgIi4qP3twZXJpb2R9W3twZXJpb2R9e2VuZH1dKntzcGFjZX0qXHUyMDI5OyIKCiAgICAgICAgLy8gaWYgeW91IHNlZSBhIHBlcmlvZCwgc2tpcCBvdmVyIGFkZGl0aW9uYWwgcGVyaW9kcyBhbmQgZW5kaW5nIHB1bmN0dWF0aW9uLAogICAgICAgIC8vIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHdoaXRlc3BhY2UsIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHN0YXJ0aW5nIHB1bmN0dWF0aW9uLAogICAgICAgIC8vIGFuZCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgc29tZXRoaW5nIHRoYXQgY2FuIHN0YXJ0IGEgc2VudGVuY2UKICAgICAgICAvLyAoYmFzaWNhbGx5LCBhIGNhcGl0YWwgbGV0dGVyKSwgdGhlbiBwdXQgdGhlIHNlbnRlbmNlIGJyZWFrIGJldHdlZW4gdGhlCiAgICAgICAgLy8gd2hpdGVzcGFjZSBhbmQgdGhlIG9wZW5pbmcgcHVuY3R1YXRpb24KICAgICAgICAiLio/e3BlcmlvZH1be3BlcmlvZH17ZW5kfV0qe3NwYWNlfSovKHtzdGFydH0qe3NlbnQtc3RhcnR9fHtzdGFydH0re3VjTGF0aW59KTsiCiAgICAgICAgCiAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSwgZXhjZXB0IHRoYXQgdGhlcmUncyBhIHNlbnRlbmNlIGJyZWFrIGJlZm9yZSBhIExhdGluIGNhcGl0YWwKICAgICAgICAvLyBsZXR0ZXIgb25seSBpZiB0aGVyZSdzIGF0IGxlYXN0IG9uZSBzcGFjZSBhZnRlciB0aGUgcGVyaW9kCiAgICAgICAgIi4qP3twZXJpb2R9W3twZXJpb2R9e2VuZH1dKntzcGFjZX0rL3t1Y0xhdGlufTsiCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBzZW50ZW5jZS10ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIHNraXAgb3ZlciBhbnkgYWRkaXRpb25hbAogICAgICAgIC8vIHRlcm1pbmF0b3JzLCBwZXJpb2RzLCBvciBlbmRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkIGJ5IGFueSB3aGl0ZXNwYWNlLAogICAgICAgIC8vIGZvbGxvd2VkIGJ5IGEgU0lOR0xFIG9wdGlvbmFsIHBhcmFncmFwaCBzZXBhcmF0b3IsIGFuZCBwdXQgdGhlIGJyZWFrIHRoZXJlCiAgICAgICAgIi4qP3t0ZXJtfVt7dGVybX17cGVyaW9kfXtlbmR9XSp7c3BhY2V9Klx1MjAyOT87IgoKICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHJ1bGVzIGFyZSBoZXJlIHRvIGFpZCBpbiBiYWNrd2FyZHMgaXRlcmF0aW9uLiAgVGhlIGF1dG9tYXRpY2FsbHkKICAgICAgICAvLyBnZW5lcmF0ZWQgYmFja3dhcmRzIHN0YXRlIHRhYmxlIHdpbGwgcmV3aW5kIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlCiAgICAgICAgLy8gcGFyYWdyYXBoIGFsbCB0aGUgdGltZSAob3IgYWxsIHRoZSB3YXkgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQKICAgICAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lc24ndCB1c2UgdGhlIFVuaWNvZGUgUFMgY2hhcmFjdGVyKSBiZWNhdXNlIHRoZSBvbmx5CiAgICAgICAgLy8gdW5hbWJpZ3VvdXMgY2hhcmFjdGVyIHBhaXJzIGFyZSB0aG9zZSBpbnZvbHZpbmcgcGFyYWdyYXBoIHNlcGFyYXRvcnMuCiAgICAgICAgLy8gVGhlc2Ugc3BlY2lmeSBhIGZldyBtb3JlIHVuYW1iaWd1b3VzIGJyZWFraW5nIHNpdHVhdGlvbnMuCgogICAgICAgIC8vIGlmIHlvdSBzZWUgYSBzZW50ZW5jZS1zdGFydGluZyBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IHN0YXJ0aW5nIHB1bmN0dWF0aW9uCiAgICAgICAgLy8gKHJlbWVtYmVyLCB3ZSdyZSBpdGVyYXRpbmcgYmFja3dhcmRzKSwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mCiAgICAgICAgLy8gd2hpdGVzcGFjZSwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQKICAgICAgICAvLyBieSBhIHBlcmlvZCwgdGhpcyBpcyBhIHNhZmUgcGxhY2UgdG8gdHVybiBhcm91bmQKICAgICAgICAiIVt7c2VudC1zdGFydH17dWNMYXRpbn1de3N0YXJ0fSp7c3BhY2V9K3tlbmR9KntwZXJpb2R9OyIKCiAgICAgICAgLy8gaWYgeW91IHNlZSBhIGxldHRlciBvciBhIGRpZ2l0LCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBydW4gb2YKICAgICAgICAvLyBzdGFydGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIHdoaXRlc3BhY2UsCiAgICAgICAgLy8gZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkKICAgICAgICAvLyBhIHNlbnRlbmNlIHRlcm1pbmF0b3IsIHRoaXMgaXMgYSBzYWZlIHBsYWNlIHRvIHR1cm4gYXJvdW5kCiAgICAgICAgIiFbe3NlbnQtc3RhcnR9e2xjfXtkaWdpdH1de3N0YXJ0fSp7c3BhY2V9KntlbmR9Knt0ZXJtfTsiCiAgICB9CgogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC8vIEVORCBCcmVha0l0ZXJhdG9yIHN1cHBvcnQKICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgQW1QbU1hcmtlcnMgeyAKICAgICAgICAgICAgIkFNIiwKICAgICAgICAgICAgIlBNIiwKICAgIH0KICAgIENvdW50cmllcyB7IAogICAgICAgIEFGIHsgIkFmZ2hhbmlzdGFuIiB9CiAgICAgICAgQUwgeyAiQWxiYW5pYSIgfQogICAgICAgIERaIHsgIkFsZ2VyaWEiIH0KICAgICAgICBBRCB7ICJBbmRvcnJhIiB9CiAgICAgICAgQU8geyAiQW5nb2xhIiB9CiAgICAgICAgQUkgeyAiQW5ndWlsbGEiIH0KICAgICAgICBBUiB7ICJBcmdlbnRpbmEiIH0KICAgICAgICBBTSB7ICJBcm1lbmlhIiB9CiAgICAgICAgQVcgeyAiQXJ1YmEiIH0KICAgICAgICBBVSB7ICJBdXN0cmFsaWEiIH0KICAgICAgICBBVCB7ICJBdXN0cmlhIiB9CiAgICAgICAgQVogeyAiQXplcmJhaWphbiIgfQogICAgICAgIEJTIHsgIkJhaGFtYXMiIH0KICAgICAgICBCSCB7ICJCYWhyYWluIiB9CiAgICAgICAgQkQgeyAiQmFuZ2xhZGVzaCIgfQogICAgICAgIEJCIHsgIkJhcmJhZG9zIiB9CiAgICAgICAgQlkgeyAiQmVsYXJ1cyIgfQogICAgICAgIEJFIHsgIkJlbGdpdW0iIH0KICAgICAgICBCWiB7ICJCZWxpemUiIH0KICAgICAgICBCSiB7ICJCZW5pbiIgfQogICAgICAgIEJNIHsgIkJlcm11ZGEiIH0KICAgICAgICBCVCB7ICJCaHV0YW4iIH0KICAgICAgICBCTyB7ICJCb2xpdmlhIiB9CiAgICAgICAgQkEgeyAiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgfQogICAgICAgIEJXIHsgIkJvdHN3YW5hIiB9CiAgICAgICAgQlIgeyAiQnJhemlsIiB9CiAgICAgICAgQk4geyAiQnJ1bmVpIiB9CiAgICAgICAgQkcgeyAiQnVsZ2FyaWEiIH0KICAgICAgICBCRiB7ICJCdXJraW5hIEZhc28iIH0KICAgICAgICBCSSB7ICJCdXJ1bmRpIiB9CiAgICAgICAgS0ggeyAiQ2FtYm9kaWEiIH0KICAgICAgICBDTSB7ICJDYW1lcm9vbiIgfQogICAgICAgIENBIHsgIkNhbmFkYSIgfQogICAgICAgIENWIHsgIkNhcGUgVmVyZGUiIH0KICAgICAgICBDRiB7ICJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiIH0KICAgICAgICBURCB7ICJDaGFkIiB9CiAgICAgICAgQ0wgeyAiQ2hpbGUiIH0KICAgICAgICBDTiB7ICJDaGluYSIgfQogICAgICAgIENPIHsgIkNvbG9tYmlhIiB9CiAgICAgICAgS00geyAiQ29tb3JvcyIgfQogICAgICAgIENHIHsgIkNvbmdvIiB9CiAgICAgICAgQ1IgeyAiQ29zdGEgUmljYSIgfQogICAgICAgIENJIHsgIkNcdTAwRjR0ZSBkJ0l2b2lyZSIgfQogICAgICAgIEhSIHsgIkNyb2F0aWEiIH0KICAgICAgICBDVSB7ICJDdWJhIiB9CiAgICAgICAgQ1kgeyAiQ3lwcnVzIiB9CiAgICAgICAgQ1ogeyAiQ3plY2ggUmVwdWJsaWMiIH0KICAgICAgICBESyB7ICJEZW5tYXJrIiB9CiAgICAgICAgREogeyAiRGppYm91dGkiIH0KICAgICAgICBETSB7ICJEb21pbmljYSIgfQogICAgICAgIERPIHsgIkRvbWluaWNhbiBSZXB1YmxpYyIgfQogICAgICAgIFRQIHsgIkVhc3QgVGltb3IiIH0KICAgICAgICBFQyB7ICJFY3VhZG9yIiB9CiAgICAgICAgRUcgeyAiRWd5cHQiIH0KICAgICAgICBTViB7ICJFbCBTYWx2YWRvciIgfQogICAgICAgIEdRIHsgIkVxdWF0b3JpYWwgR3VpbmVhIiB9CiAgICAgICAgRVIgeyAiRXJpdHJlYSIgfQogICAgICAgIEVFIHsgIkVzdG9uaWEiIH0KICAgICAgICBFVCB7ICJFdGhpb3BpYSIgfQogICAgICAgIEZKIHsgIkZpamkiIH0KICAgICAgICBGSSB7ICJGaW5sYW5kIiB9CiAgICAgICAgRk8geyAiRmFyb2UgSXNsYW5kcyIgfSAvLyBodHRwOi8vd3d3LmRpbi5kZS9ncmVtaWVuL25hcy9uYWJkL2lzbzMxNjZtYS9jb2Rsc3RwMS9lbl9saXN0cDEuaHRtbAogICAgICAgIEZSIHsgIkZyYW5jZSIgfQogICAgICAgIEdGIHsgIkZyZW5jaCBHdWlhbmEiIH0KICAgICAgICBHTCB7ICJHcmVlbmxhbmQiIH0gLy8gaHR0cDovL3d3dy5kaW4uZGUvZ3JlbWllbi9uYXMvbmFiZC9pc28zMTY2bWEvY29kbHN0cDEvZW5fbGlzdHAxLmh0bWwKICAgICAgICBQRiB7ICJGcmVuY2ggUG9seW5lc2lhIiB9CiAgICAgICAgVEYgeyAiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiB9CiAgICAgICAgR0EgeyAiR2Fib24iIH0KICAgICAgICBHTSB7ICJHYW1iaWEiIH0KICAgICAgICBHRSB7ICJHZW9yZ2lhIiB9CiAgICAgICAgREUgeyAiR2VybWFueSIgfQogICAgICAgIEdIIHsgIkdoYW5hIiB9CiAgICAgICAgR1IgeyAiR3JlZWNlIiB9CiAgICAgICAgR1AgeyAiR3VhZGVsb3VwZSIgfQogICAgICAgIEdUIHsgIkd1YXRlbWFsYSIgfQogICAgICAgIEdOIHsgIkd1aW5lYSIgfQogICAgICAgIEdXIHsgIkd1aW5lYS1CaXNzYXUiIH0KICAgICAgICBHWSB7ICJHdXlhbmEiIH0KICAgICAgICBIVCB7ICJIYWl0aSIgfQogICAgICAgIEhOIHsgIkhvbmR1cmFzIiB9CiAgICAgICAgSEsgeyAiSG9uZyBLb25nIiB9CiAgICAgICAgSFUgeyAiSHVuZ2FyeSIgfQogICAgICAgIElTIHsgIkljZWxhbmQiIH0KICAgICAgICBJTiB7ICJJbmRpYSIgfQogICAgICAgIElEIHsgIkluZG9uZXNpYSIgfQogICAgICAgIElSIHsgIklyYW4iIH0KICAgICAgICBJUSB7ICJJcmFxIiB9CiAgICAgICAgSUUgeyAiSXJlbGFuZCIgfQogICAgICAgIElMIHsgIklzcmFlbCIgfQogICAgICAgIElUIHsgIkl0YWx5IiB9CiAgICAgICAgSk0geyAiSmFtYWljYSIgfQogICAgICAgIEpQIHsgIkphcGFuIiB9CiAgICAgICAgSk8geyAiSm9yZGFuIiB9CiAgICAgICAgS1ogeyAiS2F6YWtoc3RhbiIgfQogICAgICAgIEtFIHsgIktlbnlhIiB9CiAgICAgICAgS0kgeyAiS2lyaWJhdGkiIH0KICAgICAgICBLUCB7ICJOb3J0aCBLb3JlYSIgfQogICAgICAgIEtSIHsgIlNvdXRoIEtvcmVhIiB9CiAgICAgICAgS1cgeyAiS3V3YWl0IiB9CiAgICAgICAgS0cgeyAiS3lyZ3l6c3RhbiIgfQogICAgICAgIExBIHsgIkxhb3MiIH0KICAgICAgICBMViB7ICJMYXR2aWEiIH0KICAgICAgICBMQiB7ICJMZWJhbm9uIiB9CiAgICAgICAgTFMgeyAiTGVzb3RobyIgfQogICAgICAgIExSIHsgIkxpYmVyaWEiIH0KICAgICAgICBMWSB7ICJMaWJ5YSIgfQogICAgICAgIExJIHsgIkxpZWNodGVuc3RlaW4iIH0KICAgICAgICBMVCB7ICJMaXRodWFuaWEiIH0KICAgICAgICBMVSB7ICJMdXhlbWJvdXJnIiB9CiAgICAgICAgTUsgeyAiTWFjZWRvbmlhIiB9CiAgICAgICAgTUcgeyAiTWFkYWdhc2NhciIgfQogICAgICAgIE1ZIHsgIk1hbGF5c2lhIiB9CiAgICAgICAgTUwgeyAiTWFsaSIgfQogICAgICAgIE1UIHsgIk1hbHRhIiB9CiAgICAgICAgTVEgeyAiTWFydGluaXF1ZSIgfQogICAgICAgIE1SIHsgIk1hdXJpdGFuaWEiIH0KICAgICAgICBNVSB7ICJNYXVyaXRpdXMiIH0KICAgICAgICBZVCB7ICJNYXlvdHRlIiB9CiAgICAgICAgTVggeyAiTWV4aWNvIiB9CiAgICAgICAgRk0geyAiTWljcm9uZXNpYSIgfQogICAgICAgIE1EIHsgIk1vbGRvdmEiIH0KICAgICAgICBNQyB7ICJNb25hY28iIH0KICAgICAgICBNTiB7ICJNb25nb2xpYSIgfQogICAgICAgIE1TIHsgIk1vbnRzZXJyYXQiIH0KICAgICAgICBNQSB7ICJNb3JvY2NvIiB9CiAgICAgICAgTVogeyAiTW96YW1iaXF1ZSIgfQogICAgICAgIE1NIHsgIk15YW5tYXIiIH0KICAgICAgICBOQSB7ICJOYW1pYmlhIiB9CiAgICAgICAgTlAgeyAiTmVwYWwiIH0KICAgICAgICBOTCB7ICJOZXRoZXJsYW5kcyIgfQogICAgICAgIEFOIHsgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiB9CiAgICAgICAgTkMgeyAiTmV3IENhbGVkb25pYSIgfQogICAgICAgIE5aIHsgIk5ldyBaZWFsYW5kIiB9CiAgICAgICAgTkkgeyAiTmljYXJhZ3VhIiB9CiAgICAgICAgTkUgeyAiTmlnZXIiIH0KICAgICAgICBORyB7ICJOaWdlcmlhIiB9CiAgICAgICAgTlUgeyAiTml1ZSIgfQogICAgICAgIE5PIHsgIk5vcndheSIgfQogICAgICAgIE9NIHsgIk9tYW4iIH0KICAgICAgICBQSyB7ICJQYWtpc3RhbiIgfQogICAgICAgIFBBIHsgIlBhbmFtYSIgfQogICAgICAgIFBHIHsgIlBhcHVhIE5ldyBHdWluZWEiIH0KICAgICAgICBQWSB7ICJQYXJhZ3VheSIgfQogICAgICAgIFBFIHsgIlBlcnUiIH0KICAgICAgICBQSCB7ICJQaGlsaXBwaW5lcyIgfQogICAgICAgIFBMIHsgIlBvbGFuZCIgfQogICAgICAgIFBUIHsgIlBvcnR1Z2FsIiB9CiAgICAgICAgUFIgeyAiUHVlcnRvIFJpY28iIH0KICAgICAgICBRQSB7ICJRYXRhciIgfQogICAgICAgIFJPIHsgIlJvbWFuaWEiIH0KICAgICAgICBSVSB7ICJSdXNzaWEiIH0KICAgICAgICBSVyB7ICJSd2FuZGEiIH0KICAgICAgICBTQSB7ICJTYXVkaSBBcmFiaWEiIH0KICAgICAgICBTTiB7ICJTZW5lZ2FsIiB9CiAgICAgICAgU1AgeyAiU2VyYmlhIiB9CiAgICAgICAgU0MgeyAiU2V5Y2hlbGxlcyIgfQogICAgICAgIFNMIHsgIlNpZXJyYSBMZW9uZSIgfQogICAgICAgIFNHIHsgIlNpbmdhcG9yZSIgfQogICAgICAgIFNLIHsgIlNsb3Zha2lhIiB9CiAgICAgICAgU0kgeyAiU2xvdmVuaWEiIH0KICAgICAgICBTTyB7ICJTb21hbGlhIiB9CiAgICAgICAgWkEgeyAiU291dGggQWZyaWNhIiB9CiAgICAgICAgRVMgeyAiU3BhaW4iIH0KICAgICAgICBMSyB7ICJTcmkgTGFua2EiIH0KICAgICAgICBTRCB7ICJTdWRhbiIgfQogICAgICAgIFNSIHsgIlN1cmluYW1lIiB9CiAgICAgICAgU1ogeyAiU3dhemlsYW5kIiB9CiAgICAgICAgU0UgeyAiU3dlZGVuIiB9CiAgICAgICAgQ0ggeyAiU3dpdHplcmxhbmQiIH0KICAgICAgICBTWSB7ICJTeXJpYSIgfQogICAgICAgIFRXIHsgIlRhaXdhbiIgfQogICAgICAgIFRKIHsgIlRhamlraXN0YW4iIH0KICAgICAgICBUWiB7ICJUYW56YW5pYSIgfQogICAgICAgIFRIIHsgIlRoYWlsYW5kIiB9CiAgICAgICAgVEcgeyAiVG9nbyIgfQogICAgICAgIFRLIHsgIlRva2VsYXUiIH0KICAgICAgICBUTyB7ICJUb25nYSIgfQogICAgICAgIFRUIHsgIlRyaW5pZGFkIGFuZCBUb2JhZ28iIH0KICAgICAgICBUTiB7ICJUdW5pc2lhIiB9CiAgICAgICAgVFIgeyAiVHVya2V5IiB9CiAgICAgICAgVE0geyAiVHVya21lbmlzdGFuIiB9CiAgICAgICAgVUcgeyAiVWdhbmRhIiB9CiAgICAgICAgVUEgeyAiVWtyYWluZSIgfQogICAgICAgIEFFIHsgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiB9CiAgICAgICAgR0IgeyAiVW5pdGVkIEtpbmdkb20iIH0KICAgICAgICBVUyB7ICJVbml0ZWQgU3RhdGVzIiB9CiAgICAgICAgVVkgeyAiVXJ1Z3VheSIgfQogICAgICAgIFVaIHsgIlV6YmVraXN0YW4iIH0KICAgICAgICBWVSB7ICJWYW51YXR1IiB9CiAgICAgICAgVkEgeyAiVmF0aWNhbiIgfQogICAgICAgIFZFIHsgIlZlbmV6dWVsYSIgfQogICAgICAgIFZOIHsgIlZpZXRuYW0iIH0KICAgICAgICBWRyB7ICJCcml0aXNoIFZpcmdpbiBJc2xhbmRzIiB9CiAgICAgICAgVkkgeyAiVS5TLiBWaXJnaW4gSXNsYW5kcyIgfQogICAgICAgIEVIIHsgIldlc3Rlcm4gU2FoYXJhIiB9CiAgICAgICAgWUUgeyAiWWVtZW4iIH0KICAgICAgICBZVSB7ICJZdWdvc2xhdmlhIiB9CiAgICAgICAgWlIgeyAiWmFpcmUiIH0KICAgICAgICBaTSB7ICJaYW1iaWEiIH0KICAgICAgICBaVyB7ICJaaW1iYWJ3ZSIgfQogICAgfQogICAgQ3VycmVuY3lFbGVtZW50cyB7IAogICAgICAgICAgICAiXHUwMEE0IiwKICAgICAgICAgICAgIlhYWCIsCiAgICAgICAgICAgICIiLAogICAgfQogICAgRGF0ZVRpbWVFbGVtZW50cyB7IAogICAgICAgICAgICAiMSIsCiAgICAgICAgICAgICIxIiwKICAgIH0KICAgIERhdGVUaW1lUGF0dGVybnMgeyAKICAgICAgICAgICAgImg6bW06c3MgYSB6IiwKICAgICAgICAgICAgImg6bW06c3MgYSB6IiwKICAgICAgICAgICAgImg6bW06c3MgYSIsCiAgICAgICAgICAgICJoOm1tIGEiLAogICAgICAgICAgICAiRUVFRSwgTU1NTSBkLCB5eXl5IiwKICAgICAgICAgICAgIk1NTU0gZCwgeXl5eSIsCiAgICAgICAgICAgICJNTU0gZCwgeXl5eSIsCiAgICAgICAgICAgICJNL2QveXkiLAogICAgICAgICAgICAiezF9IHswfSIsCiAgICB9CiAgICBEYXlBYmJyZXZpYXRpb25zIHsgCiAgICAgICAgICAgICJTdW4iLAogICAgICAgICAgICAiTW9uIiwKICAgICAgICAgICAgIlR1ZSIsCiAgICAgICAgICAgICJXZWQiLAogICAgICAgICAgICAiVGh1IiwKICAgICAgICAgICAgIkZyaSIsCiAgICAgICAgICAgICJTYXQiLAogICAgfQogICAgRGF5TmFtZXMgeyAKICAgICAgICAgICAgIlN1bmRheSIsCiAgICAgICAgICAgICJNb25kYXkiLAogICAgICAgICAgICAiVHVlc2RheSIsCiAgICAgICAgICAgICJXZWRuZXNkYXkiLAogICAgICAgICAgICAiVGh1cnNkYXkiLAogICAgICAgICAgICAiRnJpZGF5IiwKICAgICAgICAgICAgIlNhdHVyZGF5IiwKICAgIH0KICAgIEVyYXMgeyAKICAgICAgICAgICAgIkJDIiwKICAgICAgICAgICAgIkFEIiwKICAgIH0KICAgIExhbmd1YWdlcyB7IAogICAgICAgIGFhICB7ICJBZmFyIiB9CiAgICAgICAgYWIgIHsgIkFia2hhemlhbiIgfQogICAgICAgIGFjZSB7ICJBY2hpbmVzZSIgfQogICAgICAgIGFjaCB7ICJBY29saSIgfSAKICAgICAgICBhZGEgeyAiQWRhbmdtZSIgfSAgICAgIAogICAgICAgIGFlICB7ICJBdmVzdGFuIiB9ICAKICAgICAgICBhZiAgeyAiQWZyaWthYW5zIiB9CiAgICAgICAgYWZhIHsgIkFmcm8tQXNpYXRpYyAoT3RoZXIpIiB9CiAgICAgICAgYWZoIHsgIkFmcmloaWxpIiB9ICAgICAgICAgICAgICAgCiAgICAgICAgYWthIHsgIkFrYW4iIH0KICAgICAgICBha2sgeyAiQWtrYWRpZW4iIH0gICAgICAgICAgCiAgICAgICAgYWxlIHsgIkFsZXV0IiB9IAogICAgICAgIGFsZyB7ICAiQWxnb25xdWlhbiBMYW5ndWFnZXMiIH0KICAgICAgICBhbSAgeyAiQW1oYXJpYyIgfQogICAgICAgIGFuZyB7ICJFbmdsaXNoLCBPbGQgKGNhLjQ1MC0xMTAwKSIgfSAgICAgICAgCiAgICAgICAgYXBhIHsgIkFwYWNoZSBMYW5ndWFnZXMifSAgICAgICAgICAgIAogICAgICAgIGFyICB7ICJBcmFiaWMiIH0KICAgICAgICBhcmMgeyAiQXJhbWFpYyIgfQogICAgICAgIGFybiB7ICJBcmF1Y2FuaWFuIiB9CiAgICAgICAgYXJwIHsgIkFyYXBhaG8iIH0KICAgICAgICBhcnQgeyAiQXJ0aWZpY2lhbCAoT3RoZXIpIiB9ICAgICAgICAgICAKICAgICAgICBhcncgeyAiQXJhd2FrIiB9ICAgICAgICAgICAgIAogICAgICAgIGFzICB7ICJBc3NhbWVzZSIgfSAgICAKICAgICAgICBhdGggeyAiQXRoYXBhc2thbiBMYW5ndWFnZXMiIH0KICAgICAgICBhdXMgeyAiQXVzdHJhbGlhbiBMYW5ndWFnZXMiIH0KICAgICAgICBhdmEgeyAiQXZhcmljIiB9ICAgICAgIAogICAgICAgIGF3YSB7ICJBd2FkaGkiIH0gICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgYXkgIHsgIkF5bWFyYSIgfSAgICAgICAgICAgICAKICAgICAgICBheiAgeyAiQXplcmJhaWphbmkiIH0gICAgICAgIAogICAgICAgIGJhICB7ICJCYXNoa2lyIiB9CiAgICAgICAgYmFkIHsgIkJhbmRhIiB9CiAgICAgICAgYmFpIHsgIkJhbWlsZWtlIExhbmd1YWdlcyIgfQogICAgICAgIGJhbCB7ICJCYWx1dWNoaSIgfQogICAgICAgIGJhbSB7ICJCYW1iYXJhIiB9CiAgICAgICAgYmFuIHsgIkJhbGluZXNlIiB9CiAgICAgICAgYmFzIHsgIkJhc2EiIH0KICAgICAgICBiYXQgeyAiQmFsdGljIChPdGhlcikiIH0KICAgICAgICBiZSAgeyAiQmVsYXJ1c2lhbiIgfQogICAgICAgIGJlaiB7ICJCZWphIiB9CiAgICAgICAgYmVtIHsgIkJlbWJhIiB9ICAgICAgICAgICAgIAogICAgICAgIGJlciB7ICJCZWJlciIgfQogICAgICAgIGJnICB7ICJCdWxnYXJpYW4iIH0gICAgICAgICAgICAgICAKICAgICAgICBiaCAgeyAiQmloYXJpIiB9ICAgCiAgICAgICAgYmhvIHsgIkJob2pwdXJpIiB9CiAgICAgICAgYmkgIHsgIkJpc2xhbWEiIH0KICAgICAgICBiaWsgeyAiQmlrb2wiIH0KICAgICAgICBiaW4geyAiQmluaSIgfQogICAgICAgIGJsYSB7ICJTaWtzaWthIiB9CiAgICAgICAgYm4gIHsgIkJlbmdhbGkiIH0KICAgICAgICBibnQgeyAiQmFudHUiIH0KICAgICAgICBibyAgeyAiVGliZXRhbiIgfQogICAgICAgIGJyICB7ICJCcmVudG9uIiB9CiAgICAgICAgYnJhIHsgIkJyYWoiIH0KICAgICAgICBicyAgeyAiQm9zbmlhbiJ9CiAgICAgICAgYnRrIHsgIkJhdGFrIiB9CiAgICAgICAgYnVhIHsgIkJ1cmlhdCIgfSAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGJ1ZyB7ICJCdWdpbmVzZSIgfQogICAgICAgIGNhICB7ICJDYXRhbGFuIiB9CiAgICAgICAgY2FkIHsgIkNhZGRvIiB9CiAgICAgICAgY2FpIHsgIkNlbnRyYWwgQW1lcmljYW4gSW5kaWFuIChPdGhlcikiIH0KICAgICAgICBjYXIgeyAiQ2FyaWIiIH0KICAgICAgICBjYXUgeyAiQ2F1Y2FzaWFuIChPdGhlcikgIiB9ICAgICAgICAgICAgICAKICAgICAgICBjZSAgeyAiQ2hlY2hlbiIgfQogICAgICAgIGNlYiB7ICJDZWJ1YW5vIiB9CiAgICAgICAgY2VsIHsgIkNlbHRpYyAoT3RoZXIpIiB9IAogICAgICAgIGNoICB7ICJDaGFtb3JybyIgfQogICAgICAgIGNoYiB7ICJDaGliY2hhIiB9ICAgCiAgICAgICAgY2hnIHsgIkNoYWdhdGFpIiB9CiAgICAgICAgY2hrIHsgIkNodXVrZXNlIiB9CiAgICAgICAgY2htIHsgIk1hcmkiIH0gICAgICAgIAogICAgICAgIGNobiB7ICJDaGlub29rIEphcmdvbiIgfQogICAgICAgIGNobyB7ICJDaG9jdGF3IiB9CiAgICAgICAgY2hwIHsgIkNoaXBld3lhbiIgfQogICAgICAgIGNociB7ICJDaGVyb2tlZSIgfQogICAgICAgIGNoeSB7ICJDaGV5ZW5uZSIgfQogICAgICAgIGNtYyB7ICJDaGFtaWMgTGFuZ3VhZ2VzIiB9CiAgICAgICAgY28gIHsgIkNvcnNpY2FuIiB9CiAgICAgICAgY29wIHsgIkNvcHRpYyIgfQogICAgICAgIGNwZSB7ICJDcmVvbGVzIGFuZCBQaWRnaW5zLCBFbmdsaXNoLWJhc2VkIChPdGhlcikiIH0KICAgICAgICBjcGYgeyAiQ3Jlb2xlcyBhbmQgUGlkZ2lucywgRnJlbmNoLWJhc2VkIChPdGhlcikiIH0gICAgICAgICAgIAogICAgICAgIGNyZSB7ICJDcmVlIiB9CiAgICAgICAgY3JwIHsgIkNyZW9sZXMgYW5kIFBpZGdpbnMgKE90aGVyKSIgfQogICAgICAgIGNzICB7ICJDemVjaCIgfQogICAgICAgIGN1ICB7ICJDaHVyY2ggU2xhdmljIiB9CiAgICAgICAgY3VzIHsgIkN1c2hpdGljIChPdGhlcikiIH0gICAgICAgICAgIAogICAgICAgIGN2ICB7ICJDaHV2YXNoIiB9CiAgICAgICAgY3kgIHsgIldlbHNoIiB9ICAgICAgICAgICAgICAKICAgICAgICBkYSAgeyAiRGFuaXNoIiB9IAogICAgICAgIGRhayB7ICJEYWtvdGEiIH0gICAgICAgICAgICAgIAogICAgICAgIGRheSB7ICJEYXlhayIgfQogICAgICAgIGRlICB7ICJHZXJtYW4iIH0KICAgICAgICBkZWwgeyAiRGVsYXdhcmUiIH0KICAgICAgICBkZW4geyAiU2xhdmUiIH0KICAgICAgICBkZ3IgeyAiRG9ncmliIiB9CiAgICAgICAgZGluIHsgIkRpbmthIiB9CiAgICAgICAgZGl2IHsgIkRpdmVoaSIgfQogICAgICAgIGRvaSB7ICJEb2dyaSIgfQogICAgICAgIGRyYSB7ICJEcmF2aWRpYW4gKE90aGVyKSIgfQogICAgICAgIGR1YSB7ICJEdWFsYSIgfSAgICAgICAgICAgIAogICAgICAgIGR1bSB7ICJEdXRjaCwgTWlkZGxlIChjYS4gMTA1MC0xMzUwKSIgfQogICAgICAgIGR5dSB7ICJEeXVsYSIgfQogICAgICAgIGR6ICB7ICJCaHV0YW5pIiB9IAogICAgICAgIGR6byB7ICJEem9uZ2toYSIgfQogICAgICAgIGVmaSB7ICJFZmlrIiB9CiAgICAgICAgZWd5IHsgIkVneXB0aWFuIChBbmNpZW50KSIgfQogICAgICAgIGVrYSB7ICJFa2FqdWsiIH0KICAgICAgICBlbCAgeyAiR3JlZWsiIH0gLy8gIE1vZGVybiAoMTQ1My0pCiAgICAgICAgZWx4IHsgIkVsYW1pdGUiIH0KICAgICAgICBlbiAgeyAiRW5nbGlzaCIgfQogICAgICAgIGVubSB7ICJFbmdsaXNoLCBNaWRkbGUoIDExMDAgLTE1MDApIiB9CiAgICAgICAgZW8gIHsgIkVzcGVyYW50byIgfSAgICAgICAgICAKICAgICAgICBlcyAgeyAiU3BhbmlzaCIgfSAgICAgICAgICAgIAogICAgICAgIGV0ICB7ICJFc3RvbmlhbiIgfQogICAgICAgIGV1ICB7ICJCYXNxdWUiIH0KICAgICAgICBld2UgeyAiRXdlIiB9CiAgICAgICAgZXdvIHsgIkV3b25kbyIgfQogICAgICAgIGZhICB7ICJQZXJzaWFuIiB9IAogICAgICAgIGZhbiB7ICJGYW5nIiB9CiAgICAgICAgZmF0IHsgIkZhbnRpIiB9ICAgICAgICAgIAogICAgICAgIGZpICB7ICJGaW5uaXNoIiB9CiAgICAgICAgZml1IHsgIkZpbm5vIC0gVWdyaWFuIiB9CiAgICAgICAgZmogIHsgIkZpamkiIH0gICAgICAgICAgICAgICAKICAgICAgICBmbyAgeyAiRmFlcm9lc2UiIH0gICAgICAgICAgIAogICAgICAgIGZvbiB7ICJGb24iIH0gICAgICAgICAgICAKICAgICAgICBmciAgeyAiRnJlbmNoIiB9CiAgICAgICAgZnJtIHsgIkZyZW5jaCwgTWlkZGxlIChjYS4xNDAwLTE2MDApIiB9CiAgICAgICAgZnJvIHsgIkZyZW5jaCwgT2xkICg4NDItY2EuMTQwMCkiIH0KICAgICAgICBmdWwgeyAiRnVsYWgiIH0KICAgICAgICBmdXIgeyAiRnJpdWxpYW4iIH0KICAgICAgICBmeSAgeyAiRnJpc2lhbiIgfSAKICAgICAgICBnYSAgeyAiSXJpc2giIH0KICAgICAgICBnYWEgeyAiR2EiIH0KICAgICAgICBnYXkgeyAiR2F5byIgfQogICAgICAgIGdiYSB7IkdiYXlhIiB9ICAgICAgICAgICAKICAgICAgICBnZCAgeyAiU2NvdHMgR2FlbGljIiB9ICAKICAgICAgICBnZW0geyAiR2VybWFuaWMgKE90aGVyKSIgfQogICAgICAgIGdpbCB7ICJHaWxiZXJ0ZXNlIiB9CgkJZ2wgIHsgIkdhbGxlZ2FuIiB9IAogICAgICAgIGdsYSB7ICJHYWVsaWMgKFNjb3RzKSIgfSAgCiAgICAgICAgZ21oIHsgIkdlcm1hbiwgTWlkZGxlIEhpZ2ggKGNhLjEwNTAtMTUwMCkiIH0KICAgICAgICBnbiAgeyAiR3VhcmFuaSIgfSAgICAgICAgICAgIAogICAgICAgIGdvaCB7ICIgR2VybWFuLCBPbGQgSGlnaCAoY2EuNzUwLTEwNTApIiB9CiAgICAgICAgZ29uIHsgIkdvbmRpIiB9CiAgICAgICAgZ29yIHsgIkdvcm9udGFsbyIgfQogICAgICAgIGdvdCB7ICJHb3RoaWMiIH0KICAgICAgICBncmIgeyAiR2VyYm8iIH0KICAgICAgICBncmMgeyAiR3JlZWssIEFuY2llbnQgKHRvIDE0NTMpIiB9CiAgICAgICAgZ3UgIHsgIkd1amFyYXRpIiB9CiAgICAgICAgZ3YgIHsgIk1hbngiIH0gICAgICAgICAgIAogICAgICAgIGd3aSB7ICJHd2ljaCdpbiIgfQogICAgICAgIGhhaSB7ICJIYWlkYSIgfQogICAgICAgIGhhdSB7ICJIYXVzYSIgfQogICAgICAgIGhhdyB7ICJIYXdhaWlhbiIgfSAgICAgICAgICAgIAogICAgICAgIGhlICB7ICJIZWJyZXciIH0KICAgICAgICBoaSAgeyAiSGluZGkiIH0gCiAgICAgICAgaGltIHsgIkhpbWFjaGFsaSIgfSAgICAgICAgICAgICAKICAgICAgICBoaXQgeyAiSGl0dGl0ZSIgfQogICAgICAgIGhtbiB7ICJIbW9uZyIgfSAgICAgICAgICAgICAKICAgICAgICBobyAgeyAiSGlyaSBNb3R1IiB9CiAgICAgICAgaHIgIHsgIkNyb2F0aWFuIiB9CiAgICAgICAgaHUgIHsgIkh1bmdhcmlhbiIgfQogICAgICAgIGh1cCB7ICJIdXBhIiB9CiAgICAgICAgaHkgIHsgIkFybWVuaWFuIiB9CiAgICAgICAgaHogIHsgIkhlcmVybyIgfQogICAgICAgIGlhICB7ICJJbnRlcmxpbmd1YSIgfSAgICAgICAgCiAgICAgICAgaWJhIHsgIkliYW4iIH0gICAgICAgICAgCiAgICAgICAgaWJvIHsgIklnYm8iIH0KICAgICAgICBpZCAgeyAiSW5kb25lc2lhbiIgfSAgICAgICAgICAgICAgIAogICAgICAgIGllICB7ICJJbnRlcmxpbmd1ZSIgfSAgICAgICAgCiAgICAgICAgaWpvIHsgIklqbyIgfQogICAgICAgIGlrICB7ICJJbnVwaWFrIiB9CiAgICAgICAgaWxvIHsgIklsb2tvIiB9CiAgICAgICAgaW5jIHsgIkluZGljIChPdGhlcikiIH0KICAgICAgICBpbmUgeyAiSW5kby1FdXJvcGVhbiIgfSAgICAgICAgICAKICAgICAgICBpcmEgeyAiSXJhbmlhbiAiIH0gICAgICAgICAgICAKICAgICAgICBpcm8geyAiSXJvZ3VvaWFuICBMYW5ndWFnZXMiIH0gICAgICAgICAgICAgIAogICAgICAgIGlzICB7ICJJY2VsYW5kaWMiIH0KICAgICAgICBpdCAgeyAiSXRhbGlhbiIgfSAgICAgICAgICAgIAogICAgICAgIGl1ICB7ICJJbnVraXR1dCIgfSAgICAgICAgICAgCiAgICAgICAgaXcgIHsgIkhlYnJldyIgfSAgICAgICAgICAgICAKICAgICAgICBqYSAgeyAiSmFwYW5lc2UiIH0gICAgICAgICAgIAogICAgICAgIGpwciB7ICJKdWRlby1QZXJzaWFuIiB9CiAgICAgICAganJiIHsgIkp1ZGVvLUFyYWJpYyIgfQogICAgICAgIGp3ICB7ICJKYXZhbmVzZSIgfSAgICAgICAgICAgCiAgICAgICAga2EgIHsgIkdlb3JnaWFuIiB9ICAgICAgICAgICAKICAgICAgICBrYWEgeyAiS2FyYS1LYWxwYWsiIH0KICAgICAgICBrYWIgeyAiS2FieWxlIiB9CiAgICAgICAga2FjIHsgIkthY2hpbiIgfQogICAgICAgIGthbSB7ICJLYW1iYSIgfQogICAgICAgIGthciB7ICJLYXJlbiIgfSAgICAgICAgICAgIAogICAgICAgIGthdSB7ICJLYW51cmkiIH0KICAgICAgICBrYXcgeyAiS2F3aSIgfSAgICAgICAgICAgCiAgICAgICAga2hhIHsgIktoYXNpIiB9CiAgICAgICAga2hpIHsgIktob2lzYW4iIH0KICAgICAgICBraG8geyAiS2hvdGFuZXNlIiB9CiAgICAgICAga2kgIHsgIktpa3V5dSIgfSAgIAogICAgICAgIGtrICB7ICJLYXpha2giIH0KICAgICAgICBrbCAgeyAiS2FsYWFsbGlzdXQiIH0gICAKICAgICAgICBrbSAgeyAiS2htZXIiIH0gIAogICAgICAgIGttYiB7ICJLaW1idW5kdSIgfSAgICAgICAgIAogICAgICAgIGtuICB7ICJLYW5uYWRhIiB9CiAgICAgICAga28gIHsgIktvcmVhbiIgfSAgIAogICAgICAgIGtvayB7ICJLb25rYW5pIiB9ICAgICAgICAgICAgCiAgICAgICAga29uIHsgIktvbmdvIiB9CiAgICAgICAga29zIHsgIktvc3JlYW4iIH0KICAgICAgICBrcGUgeyAiS3BlbGxlIiB9CiAgICAgICAga3JvIHsgIktydSIgfQogICAgICAgIGtydSB7ICJLdXJ1Y2toIiB9CiAgICAgICAga3MgIHsgIkthc2htaXJpIiB9CiAgICAgICAga3UgIHsgIkt1cmRpc2giIH0KICAgICAgICBrdW0geyAiS3VteWsiIH0gICAgICAKICAgICAgICBrdXQgeyAiS3V0ZW5haSIgfQogICAgICAgIGt2ICB7ICJLb21pIiB9CiAgICAgICAga3cgIHsgIkNvcm5pc2giIH0gICAgICAgICAgICAKICAgICAgICBreSAgeyAiS2lyZ2hpeiIgfQogICAgICAgIGxhICB7ICJMYXRpbiIgfSAgICAgICAgICAgICAgCiAgICAgICAgbGFkIHsgIkxhZGlubyIgfQogICAgICAgIGxhaCB7ICJMYWhuZGEiIH0KICAgICAgICBsYW0geyAiTGFtYmEiIH0KICAgICAgICBsYiAgeyAiTGV0emVidXJnZXNjaCIgfSAKICAgICAgICBsZXogeyAiTGV6Z2hpYW4iIH0KICAgICAgICBsaW4geyAiTGluZ2FsYSIgfQogICAgICAgIGxpdCB7ICJMaXRodWFuaWFuIiB9CiAgICAgICAgbG4gIHsgIkxpbmdhbGEiIH0gICAgICAgICAgICAKICAgICAgICBsbyAgeyAiTGFvIiB9CiAgICAgICAgbG9sIHsgIk1vbmdvIiB9ICAgICAgICAgIAogICAgICAgIGxveiB7ICJMb3ppIiB9CiAgICAgICAgbHQgIHsgIkxpdGh1YW5pYW4iIH0gICAgICAgICAKICAgICAgICBsdWEgeyAiTHViYS1MdWx1YSIgfQogICAgICAgIGx1YiB7ICJMdWJhLUthdGFuZ2EiIH0KICAgICAgICBsdWcgeyAiR2FuZGEiIH0KICAgICAgICBsdWkgeyAiTHVpc2Vlbm8iIH0KICAgICAgICBsdW4geyAiTHVuZGEiIH0KICAgICAgICBsdW8geyAiTHVhIiB9CiAgICAgICAgbHVzIHsgIkx1c2hhaSIgfQogICAgICAgIGx2ICB7ICJMYXR2aWFuIChMZXR0aXNoKSIgfQogICAgICAgIG1hZCB7ICJNYWR1cmVzZSIgfQogICAgICAgIG1hZyB7ICJNYWdhaGkiIH0KICAgICAgICBtYWkgeyAiTWFpdGhpbGkiIH0KICAgICAgICBtYWsgeyAiTWFrYXNhciIgfSAgICAgICAgCiAgICAgICAgbWFuIHsgIk1hbmRpbmd1ZSIgfQogICAgICAgIG1hcCB7ICJBdXN0cm9uZXNpYW4iIH0KICAgICAgICBtYXMgeyAiTWFzYWkiIH0KICAgICAgICBtZHIgeyAiTWFuZGFyIiB9CiAgICAgICAgbWVuIHsgIk1lbmRlIiB9CiAgICAgICAgbWcgIHsgIk1hbGFnYXN5IiB9ICAgICAgICAgICAKICAgICAgICBtZ2EgeyAiSXJpc2gsIE1pZGRsZSAoOTAwLTEyMDApIiB9CiAgICAgICAgbWgJeyAiTWFyc2hhbGwifQogICAgICAgIG1pICB7ICJNYW9yaSIgfSAgICAgICAgICAgICAgCiAgICAgICAgbWljIHsgIk1pYy1NYWMiIH0KICAgICAgICBtaW4geyAiTWluYW5na2FiYXUiIH0KICAgICAgICBtaXMgeyAiTWlzY2VsbGFuZW91cyBMYW5ndWFnZXMiIH0KICAgICAgICBtayAgeyAiTWFjZWRvbmlhbiIgfSAgICAgCiAgICAgICAgbWtoIHsgIk1vbi1LaG1lciAoT2h0ZXIpIiB9CiAgICAgICAgbWwgIHsgIk1hbGF5YWxhbSIgfSAgICAgICAgICAKICAgICAgICBtbiAgeyAiTW9uZ29saWFuIiB9CiAgICAgICAgbW5jIHsgIk1hbmNodSIgfQogICAgICAgIG1uaSB7ICJNYW5pcHVyaSIgfQogICAgICAgIG1ubyB7ICJNYW5vYm8gTGFuZ3VhZ2VzIiB9CiAgICAgICAgbW8gIHsgIk1vbGRhdmlhbiIgfQogICAgICAgIG1vaCB7ICJNb2hhd2siIH0gICAgICAgICAgCiAgICAgICAgbW9zIHsgIk1vc3NpIiB9CiAgICAgICAgbXIgIHsgIk1hcmF0aGkiIH0gCiAgICAgICAgbXMgIHsgIk1hbGF5IiB9ICAgICAgICAgICAgICAKICAgICAgICBtdCAgeyAiTWFsdGVzZSIgfSAKICAgICAgICBtdWwgeyAiTXVsdGlwbGUgTGFuZ3VhZ2VzIiB9CiAgICAgICAgbXVuIHsgIk11bmRhIExhbmd1YWdlcyIgfQogICAgICAgIG11cyB7ICJDcmVlayIgfQogICAgICAgIG13ciB7ICJNYXJ3YXJpIiB9IAogICAgICAgIG15ICB7ICJCdXJtZXNlIiB9CiAgICAgICAgbXluIHsgIk1heWFuIiB9CiAgICAgICAgbmEgIHsgIk5hdXJ1IiB9IAogICAgICAgIG5haCB7ICJOYWh1YXRsIiB9CiAgICAgICAgbmFpIHsgIk5vcnRoIEFtZXJpY2FuIEluZGlhbiAoT2h0ZXIpIiB9CiAgICAgICAgbmIgIHsgIk5vcndlZ2lhbiBCb2ttXHUwMGU1bCIgfSAgICAKICAgICAgICBuZCAgeyAiTmRlYmVsZSwgTm9ydGgiIH0gICAKICAgICAgICBuZHMgeyAiTG93IEdlcm1hbjsgTG93IFNheG9uIiB9IAogICAgICAgIG5lICB7ICJOZXBhbGkiIH0gIAogICAgICAgIG5ldyB7ICJOZXdhcmkiIH0gICAgCiAgICAgICAgbmcgIHsgIk5kb25nYSIgfSAgIAogICAgICAgIG5pYSB7ICJOaWFzIiB9CiAgICAgICAgbmljIHsgIk5pZ2VyIC0gS29yZG9mYW5pYW4iIH0KICAgICAgICBuaXUgeyAiTml1ZWFuIiB9CiAgICAgICAgbmwgIHsgIkR1dGNoIiB9ICAKICAgICAgICBubiAgeyAiTm9yd2VnaWFuIE55bm9yc2siIH0KICAgICAgICBubyAgeyAiTm9yd2VnaWFuIiB9CiAgICAgICAgbm9uIHsgIk5vcnNlLCBPbGQiIH0gCiAgICAgICAgbnIgIHsgIk5kZWJlbGUsIFNvdXRoIiB9CiAgICAgICAgbnNvIHsgIlNvdGhvLCBOb3J0aGVybiIgfQogICAgICAgIG51YiB7ICJOdWJpYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgbnYgIHsiTmF2YWpvIn0KICAgICAgICBueSAgeyAiIENoaWNoZXdhOyBOeWFuamEiIH0gICAgICAgICAgIAogICAgICAgIG55bSB7ICJOeWFtd2V6aSIgfQogICAgICAgIG55byB7ICJOeW9ybyIgfSAKICAgICAgICBuemkgeyAiTnppbWEiIH0KICAgICAgICBvYyAgeyAiUHJvdmVuXHUwMEU3YWw7IE9jY2l0YW4gKHBvc3QgMTUwMCkifQogICAgICAgIG9qaSB7ICJPamlid2EiIH0gICAgICAgICAgCiAgICAgICAgb20gIHsgIk9yb21vIChBZmFuKSIgfQogICAgICAgIG9yICB7ICJPcml5YSIgfSAgICAgICAgICAgICAgCiAgICAgICAgb3MgIHsgIk9zc2V0aWMiIH0KICAgICAgICBvc2EgeyAiT3NhZ2UiIH0gICAgIAogICAgICAgIG90YSB7ICJUdXJraXNoIChPdHRvbWFuIEVtcGlyZSkiIH0gICAgICAKICAgICAgICBvdG8geyAiT3RvbWlhbiBMYW5ndWFnZXMiIH0KICAgICAgICBwYSAgeyAiUHVuamFiaSIgfSAgICAgICAgICAgIAogICAgICAgIHBhYSB7ICJQYXB1YW4gKE9odGVyKSIgfQogICAgICAgIHBhZyB7ICJQYW5nYXNpbmFuIiB9CiAgICAgICAgcGFsIHsgIlBhaGxhdmkiIH0KICAgICAgICBwYW0geyAicGFtcGFtZ2EiIH0KICAgICAgICBwYXAgeyAiUGFwaWFtZW50byIgfQogICAgICAgIHBhdSB7ICJQYWxhdWFuIiB9CiAgICAgICAgcGVvIHsgIlBlcnNpYW4gT2xkIChjYS42MDAtNDAwIEIuQy4pIiAgfSAgICAKICAgICAgICBwaGkgeyAiUGhpbGlwcGluZSAoT3RoZXIpIiB9CiAgICAgICAgcGhuIHsgIlBob2VuaWNpYW4iIH0gICAgCiAgICAgICAgcGkgIHsgIlBhbGkiIH0gIAogICAgICAgIHBsICB7ICJQb2xpc2giIH0gICAgICAgICAgICAgCiAgICAgICAgcG9uIHsgIlBvaG5wZWlhbiIgfQogICAgICAgIHByYSB7ICJQcmFrcml0IExhbmd1YWdlcyIgfQogICAgICAgIHBybyB7ICAiUHJvdmVu52FsLCBPbGQgKHRvIDE1MDApIiB9ICAgICAKICAgICAgICBwcyAgeyAiUGFzaHRvIChQdXNodG8pIiB9ICAKICAgICAgICBwdCAgeyAiUG9ydHVndWVzZSIgfQogICAgICAgIHF1ICB7ICJRdWVjaHVhIiB9ICAgICAgICAgICAgCiAgICAgICAgcmFqIHsgIlJhamFzdGFuaSIgfQogICAgICAgIHJhcCB7ICJSYXBhbnVpIiB9CiAgICAgICAgcmFyIHsgIlJhcm90b25nYW4iIH0KICAgICAgICBybSAgeyAiUmhhZXRvLVJvbWFuY2UiIH0KICAgICAgICBybiAgeyAiUnVuZGkiIH0gICAgICAgIAogICAgICAgIHJvICB7ICJSb21hbmlhbiIgfSAgIAogICAgICAgIHJvYSB7ICJSb21hbmNlIChPdGhlcikiIH0KICAgICAgICByb20geyAiUm9tYW55IiB9ICAgIAogICAgICAgIHJ1ICB7ICJSdXNzaWFuIiB9ICAgICAKICAgICAgICBydyAgeyAiS2lueWFyd2FuZGEiIH0gICAgICAgIAogICAgICAgIHNhICB7ICJTYW5za3JpdCIgfQogICAgICAgIHNhZCB7ICJTYW5kYXdlIiB9ICAgCiAgICAgICAgc2FoIHsgIllha3V0IiB9CiAgICAgICAgc2FpIHsgIlNvdXRoIEFtZXJpY2FuIEluZGlhbiAoT2h0ZXIpIiB9ICAgICAgICAgICAKICAgICAgICBzYWwgeyAiU2FsaXNoYW4iIH0KICAgICAgICBzYW0geyAiU2Ftcml0YW4iIH0KICAgICAgICBzYXMgeyAiU2Fza2EiIH0KICAgICAgICBzYXQgeyAiU2FudGFsaSIgfQogICAgICAgIHNjICB7ICJTYXJkaW5pYW4iIH0gIAogICAgICAgIHNjbyB7ICJTY290cyIgfQogICAgICAgIHNkICB7ICJTaW5kaGkiIH0KICAgICAgICBzZSAgeyAiTm9ydGhlcm4gU2FtaSIgfQovLyBodHRwOi8vbGN3ZWIubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvZW5nbGFuZ24uaHRtbCAKLy8gc2hvdWxkIHByb3ZpZGUgdGhlIGNvcnJlY3QgbGFuZ3VhZ2UgY29kZSBzb29uIAovLyAgICAgICAgc2UgeyAiU2FtaSBMYW5ndWFnZXMiIH0gICAgICAgIC8vIERVUCBGSVhNRQogICAgICAgIHNlbCB7ICJTZWxrdXAiIH0KICAgICAgICBzZW0geyAiU2VtaXRpYyIgfSAgICAgICAgIAogICAgICAgIHNnICB7ICJTYW5nbyIgfQogICAgICAgIHNnYSB7ICJJcmlzaCwgT2xkICh0byA5MDApIiB9CiAgICAgICAgc2duIHsgIlNpZ24gTGFuZ3VhZ2VzIiB9CiAgICAgICAgc2ggIHsgIlNlcmJvLUNyb2F0aWFuIiB9ICAgICAKICAgICAgICBzaG4geyAiU2hhbiIgfSAgIAogICAgICAgIHNpICB7ICJTaW5oYWxlc2UiIH0KICAgICAgICBzaWQgeyAiU2lkYW1vIiB9CiAgICAgICAgc2lvIHsgIlNpb3VhbiBMYW5ndWFnZXMiIH0KICAgICAgICBzaXQgeyAiU2luby1UaWJldGFuIChPdGhlcikiIH0KICAgICAgICBzayAgeyAiU2xvdmFrIiB9ICAgICAgICAgICAgIAogICAgICAgIHNsICB7ICJTbG92ZW5pYW4iIH0gICAKICAgICAgICBzbSAgeyAiU2Ftb2FuIiB9ICAgICAgICAgIAogICAgICAgIHNuICB7ICJTaG9uYSIgfQogICAgICAgIHNuayB7ICJTb25pbmtlIiB9CiAgICAgICAgc28gIHsgIlNvbWFsaSIgfQogICAgICAgIHNvZyB7ICJTb2dkaWVuIiB9ICAgICAgIAogICAgICAgIHNvbiB7ICJTb25naGFpIiB9CiAgICAgICAgc3EgIHsgIkFsYmFuaWFuIiB9CiAgICAgICAgc3IgIHsgIlNlcmJpYW4iIH0gICAKICAgICAgICBzcnIgeyAiU2VyZXIiIH0gICAgIAogICAgICAgIHNzICB7ICJTd2F0aSIgfSAgIAogICAgICAgIHNzYSB7ICJOaWxvLVNhaGFyYW0iIH0gICAgICAgICAgICAgICAKICAgICAgICBzdCAgeyAiU290aG8sIFNvdXRoZXJuIiB9CiAgICAgICAgc3UgIHsgIlN1bmRhbmVzZSIgfQogICAgICAgIHN1ayB7ICJTdWt1bWEiIH0KICAgICAgICBzdXMgeyAiU3VzdSIgfSAgICAgICAgICAKICAgICAgICBzdXggeyAiU3VtZXJpYW4ifQogICAgICAgIHN2ICB7ICJTd2VkaXNoIiB9CiAgICAgICAgc3cgIHsgIlN3YWhpbGkiIH0gICAgICAgICAgICAKICAgICAgICBzeXIgeyAiU3lyaWFjIiB9CiAgICAgICAgdGEgIHsgIlRhbWlsIiB9ICAgICAgICAgICAgICAKICAgICAgICB0YWkgeyAiVGFpIChPdGhlcikiIH0gICAgICAgICAgICAKICAgICAgICB0ZSAgeyAiVGVsdWd1IiB9ICAgICAKICAgICAgICB0ZW0geyAiVGltbmUiIH0KICAgICAgICB0ZXIgeyAiVGVyZW5vIiB9CiAgICAgICAgdGV0IHsgIlRldHVtIiB9ICAgICAgICAKICAgICAgICB0ZyAgeyAiVGFqaWsiIH0gICAgICAgIAogICAgICAgIHRoICB7ICJUaGFpIiB9ICAgICAgICAgICAgICAgCiAgICAgICAgdGlnIHsgIlRpZ3JlIiB9ICAgICAgICAgICAgCiAgICAgICAgdGlyIHsgIlRpZ3JpbnlhIiB9IAogICAgICAgIHRpdiB7ICJUaXYiIH0KICAgICAgICB0ayAgeyAiVHVya21lbiIgfSAKICAgICAgICB0bCAgeyAiVGFnYWxvZyIgfQogICAgICAgIHRsaSB7ICJUbGluZ2l0IiB9ICAgICAgICAgIAogICAgICAgIHRtaCB7ICJUYW1hc2hlayIgfSAgICAgIAogICAgICAgIHRuICB7ICJUc3dhbmEiIH0KICAgICAgICB0b2cgeyAiVG9uZ2EgKE55YXNhKSIgfQogICAgICAgIHRvbiB7ICJUb25nYW4gKFRvbmdhIElzbGFuZHMpIiB9CiAgICAgICAgdHIgIHsgIlR1cmtpc2giIH0gICAgICAgICAgICAKICAgICAgICB0cyAgeyAiVHNvbmdhIiB9ICAgIAogICAgICAgIHRzaSB7ICJUc2ltc2hpYW4iIH0gICAgICAgICAgIAogICAgICAgIHR0ICB7ICJUYXRhciIgfSAgICAgICAgICAgICAgCiAgICAgICAgdHVtIHsgIlR1bWJ1a2EiIH0KICAgICAgICB0dXIgeyAiVHVya2lzaCIgfQogICAgICAgIHR1dCB7ICJBbHRhaWMgKE90aGVyKSIgfSAgICAgICAgICAKICAgICAgICB0dmwgeyAiVHV2YWx1IiB9CiAgICAgICAgdHcgIHsgIlR3aSIgfSAgICAKICAgICAgICB0eSAgeyAiVGFoaXRpYW4iIH0gICAgICAgICAgCiAgICAgICAgdHl2IHsgIlR1dmluaWFuIiB9ICAgICAgICAgICAKICAgICAgICB1ZyAgeyAiVWlnaHVyIiB9ICAgICAgICAgICAgIAogICAgICAgIHVnYSB7ICJVZ2FyaXRpYyIgfSAgICAgICAgICAgIAogICAgICAgIHVrICB7ICJVa3JhaW5pYW4iIH0gICAKICAgICAgICB1bWIgeyAiVW1idW5kdSIgfQogICAgICAgIHVuZCB7ICJVbmRldGVybWluZWQiIH0gICAgICAgCiAgICAgICAgdXIgIHsgIlVyZHUiIH0gICAgICAgICAgICAgICAKICAgICAgICB1eiAgeyAiVXpiZWsiIH0gICAgICAgICAgICAKICAgICAgICB2YWkgeyAiVmFpIiB9CiAgICAgICAgdmVuIHsgIlZlbmRhIiB9ICAKICAgICAgICB2aSAgeyAiVmlldG5hbWVzZSIgfSAgICAgICAgIAogICAgICAgIHZvICB7ICJWb2xhcHVrIiB9ICAgIAogICAgICAgIHZvdCAgeyAiVm90aWMiIH0KICAgICAgICB3YWsgeyAiV2FrYXNoYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgd2FsIHsgIldhbGFtbyIgfQogICAgICAgIHdhciB7ICJXYXJheSIgfQogICAgICAgIHdhcyB7ICJXYXNobyIgfSAgICAgICAgCiAgICAgICAgd2VuIHsgIlNvcmJpYW4gTGFuZ3VhZ2VzIiB9CiAgICAgICAgd28gIHsgIldvbG9mIiB9ICAgICAgICAgICAgICAKICAgICAgICB4aCAgeyAiWGhvc2EiIH0KICAgICAgICB5YW8geyAiWWFvIiB9CiAgICAgICAgeWFwIHsgIllhcGVzZSIgfSAgICAgICAgICAgICAgCiAgICAgICAgeWkgIHsgIllpZGRpc2giIH0gICAgICAgICAgICAKICAgICAgICB5b3IgIHsgIllvcnViYSIgfSAgICAgICAKICAgICAgICB5cGsgeyAiWXVwaWsgTGFuZ3VhZ2VzIiB9CiAgICAgICAgemEgIHsgIlpodWFuZyIgfSAgICAgICAgICAgICAKICAgICAgICB6YXAgeyAiWmFwb3RlYyIgfQogICAgICAgIHplbiB7ICJaZW5hZ2EiIH0gICAgICAKICAgICAgICB6aCAgeyAiQ2hpbmVzZSIgfQogICAgICAgIHpuZCB7ICJaYW5kZSIgfQogICAgICAgIHp1ICB7ICJadWx1IiB9ICAgICAKICAgICAgICB6dW4geyAiWnVuaSIgfSAgICAgICAgICAKICAgIH0KICAgIExvY2FsZUlEIHsgIjAwMDAiIH0KICAgIExvY2FsZVN0cmluZyB7ICJlbiIgfQogICAgTW9udGhBYmJyZXZpYXRpb25zIHsgCiAgICAgICAgICAgICJKYW4iLAogICAgICAgICAgICAiRmViIiwKICAgICAgICAgICAgIk1hciIsCiAgICAgICAgICAgICJBcHIiLAogICAgICAgICAgICAiTWF5IiwKICAgICAgICAgICAgIkp1biIsCiAgICAgICAgICAgICJKdWwiLAogICAgICAgICAgICAiQXVnIiwKICAgICAgICAgICAgIlNlcCIsCiAgICAgICAgICAgICJPY3QiLAogICAgICAgICAgICAiTm92IiwKICAgICAgICAgICAgIkRlYyIsCiAgICAgICAgICAgICIiLAogICAgfQogICAgTW9udGhOYW1lcyB7IAogICAgICAgICAgICAiSmFudWFyeSIsCiAgICAgICAgICAgICJGZWJydWFyeSIsCiAgICAgICAgICAgICJNYXJjaCIsCiAgICAgICAgICAgICJBcHJpbCIsCiAgICAgICAgICAgICJNYXkiLAogICAgICAgICAgICAiSnVuZSIsCiAgICAgICAgICAgICJKdWx5IiwKICAgICAgICAgICAgIkF1Z3VzdCIsCiAgICAgICAgICAgICJTZXB0ZW1iZXIiLAogICAgICAgICAgICAiT2N0b2JlciIsCiAgICAgICAgICAgICJOb3ZlbWJlciIsCiAgICAgICAgICAgICJEZWNlbWJlciIsCiAgICAgICAgICAgICIiLAogICAgfQogICAgTnVtYmVyRWxlbWVudHMgeyAKICAgICAgICAgICAgIi4iLAogICAgICAgICAgICAiLCIsCiAgICAgICAgICAgICI7IiwKICAgICAgICAgICAgIiUiLAogICAgICAgICAgICAiMCIsCiAgICAgICAgICAgICIjIiwKICAgICAgICAgICAgIi0iLAogICAgICAgICAgICAiRSIsCiAgICAgICAgICAgICJcdTIwMzAiLAogICAgICAgICAgICAiXHUyMjFFIiwKICAgICAgICAgICAgIlx1RkZGRCIsCiAgICB9CiAgICBOdW1iZXJQYXR0ZXJucyB7IAogICAgICAgICAgICAiIywjIzAuIyMjOy0jLCMjMC4jIyMiLAogICAgICAgICAgICAiXHUwMEE0ICMsIyMwLjAwOy1cdTAwQTQgIywjIzAuMDAiLAogICAgICAgICAgICAiIywjIzAlIiwKICAgIH0KICAgIFNob3J0Q291bnRyeSB7ICIiIH0KICAgIFNob3J0TGFuZ3VhZ2UgeyAiZW5nIiB9CiAgICBsb2NhbFBhdHRlcm5DaGFycyB7ICJHeU1ka0htc1NFREZ3V2FoS3pZZSIgfQogICAgem9uZVN0cmluZ3MgeyAKICAgICAgICB7CiAgICAgICAgICAgICAgICAiUFNUIiwKICAgICAgICAgICAgICAgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIlBTVCIsCiAgICAgICAgICAgICAgICAiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJQRFQiLAogICAgICAgICAgICAgICAgIlNhbiBGcmFuY2lzY28iLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiTVNUIiwKICAgICAgICAgICAgICAgICJNb3VudGFpbiBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJNU1QiLAogICAgICAgICAgICAgICAgIk1vdW50YWluIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIk1EVCIsCiAgICAgICAgICAgICAgICAiRGVudmVyIiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIlBOVCIsCiAgICAgICAgICAgICAgICAiTW91bnRhaW4gU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiTVNUIiwKICAgICAgICAgICAgICAgICJNb3VudGFpbiBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJNU1QiLAogICAgICAgICAgICAgICAgIlBob2VuaXgiLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiQ1NUIiwKICAgICAgICAgICAgICAgICJDZW50cmFsIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkNTVCIsCiAgICAgICAgICAgICAgICAiQ2VudHJhbCBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJDRFQiLAogICAgICAgICAgICAgICAgIkNoaWNhZ28iLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiRVNUIiwKICAgICAgICAgICAgICAgICJFYXN0ZXJuIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkVTVCIsCiAgICAgICAgICAgICAgICAiRWFzdGVybiBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJFRFQiLAogICAgICAgICAgICAgICAgIk5ldyBZb3JrIiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIklFVCIsCiAgICAgICAgICAgICAgICAiRWFzdGVybiBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJFU1QiLAogICAgICAgICAgICAgICAgIkVhc3Rlcm4gU3RhbmRhcmQgVGltZSIsCiAgICAgICAgICAgICAgICAiRVNUIiwKICAgICAgICAgICAgICAgICJJbmRpYW5hcG9saXMiLAogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgICAgICAiUFJUIiwKICAgICAgICAgICAgICAgICJBdGxhbnRpYyBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJBU1QiLAogICAgICAgICAgICAgICAgIkF0bGFudGljIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIkFEVCIsCiAgICAgICAgICAgICAgICAiSGFsaWZheCIsCiAgICAgICAgfQogICAgICAgIHsKICAgICAgICAgICAgICAgICJIU1QiLAogICAgICAgICAgICAgICAgIkhhd2FpaSBTdGFuZGFyZCBUaW1lIiwKICAgICAgICAgICAgICAgICJIU1QiLAogICAgICAgICAgICAgICAgIkhhd2FpaSBEYXlsaWdodCBUaW1lIiwKICAgICAgICAgICAgICAgICJIRFQiLAogICAgICAgICAgICAgICAgIkhvbm9sdWx1IiwKICAgICAgICB9CiAgICAgICAgewogICAgICAgICAgICAgICAgIkFTVCIsCiAgICAgICAgICAgICAgICAiQWxhc2thIFN0YW5kYXJkIFRpbWUiLAogICAgICAgICAgICAgICAgIkFTVCIsCiAgICAgICAgICAgICAgICAiQWxhc2thIERheWxpZ2h0IFRpbWUiLAogICAgICAgICAgICAgICAgIkFEVCIsCiAgICAgICAgICAgICAgICAiQW5jaG9yYWdlIiwKICAgICAgICB9CiAgICB9Cn0KCg==