3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwer?polyfills.b948c5521048b3f55fad.js?2?0
{
    "qwer?polyfills.b948c5521048b3f55fad.js?2?0": "base64:KHdpbmRvdy53ZWJwYWNrSnNvbnA9d2luZG93LndlYnBhY2tKc29ucHx8W10pLnB1c2goW1syXSx7IjBUV3AiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJtclNHIikuX192YWx1ZXM7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbihlKXt2YXIgdD1lLnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4oZSl7dCYmdC5tYXJrJiZ0Lm1hcmsoZSl9ZnVuY3Rpb24gcihlLG4pe3QmJnQubWVhc3VyZSYmdC5tZWFzdXJlKGUsbil9bigiWm9uZSIpO3ZhciBvPSEwPT09ZS5fX3pvbmVfc3ltYm9sX19mb3JjZUR1cGxpY2F0ZVpvbmVDaGVjaztpZihlLlpvbmUpe2lmKG98fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIGUuWm9uZX12YXIgYSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQpe3RoaXMuX3BhcmVudD1lLHRoaXMuX25hbWU9dD90Lm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPXQmJnQucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyBzKHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSx0KX1yZXR1cm4gdC5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKGUuUHJvbWlzZSE9PVAuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgZT10LmN1cnJlbnQ7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi56b25lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBqfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGEsaSl7aWYoUC5oYXNPd25Qcm9wZXJ0eShhKSl7aWYobyl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIrYSl9ZWxzZSBpZighZVsiX19ab25lX2Rpc2FibGVfIithXSl7dmFyIGM9IlpvbmU6IithO24oYyksUFthXT1pKGUsdCxEKSxyKGMsYyl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0Wm9uZVdpdGgoZSk7aWYodClyZXR1cm4gdC5fcHJvcGVydGllc1tlXX0sdC5wcm90b3R5cGUuZ2V0Wm9uZVdpdGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXM7dDspe2lmKHQuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHQ7dD10Ll9wYXJlbnR9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmZvcmsodGhpcyxlKX0sdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIitlKTt2YXIgbj10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsZSx0KSxyPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIucnVuR3VhcmRlZChuLHRoaXMsYXJndW1lbnRzLHQpfX0sdC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKGUsdCxuLHIpe1o9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsZSx0LG4scil9ZmluYWxseXtaPVoucGFyZW50fX0sdC5wcm90b3R5cGUucnVuR3VhcmRlZD1mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT10JiYodD1udWxsKSxaPXtwYXJlbnQ6Wix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxlLHQsbixyKX1jYXRjaChvKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxvKSl0aHJvdyBvfX1maW5hbGx5e1o9Wi5wYXJlbnR9fSx0LnByb3RvdHlwZS5ydW5UYXNrPWZ1bmN0aW9uKGUsdCxuKXtpZihlLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKGUuem9uZXx8ZykubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYoZS5zdGF0ZSE9PV98fGUudHlwZSE9PVMmJmUudHlwZSE9PU8pe3ZhciByPWUuc3RhdGUhPWs7ciYmZS5fdHJhbnNpdGlvblRvKGssYiksZS5ydW5Db3VudCsrO3ZhciBvPWo7aj1lLFo9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e2UudHlwZT09TyYmZS5kYXRhJiYhZS5kYXRhLmlzUGVyaW9kaWMmJihlLmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLGUsdCxuKX1jYXRjaChhKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxhKSl0aHJvdyBhfX1maW5hbGx5e2Uuc3RhdGUhPT1fJiZlLnN0YXRlIT09dyYmKGUudHlwZT09U3x8ZS5kYXRhJiZlLmRhdGEuaXNQZXJpb2RpYz9yJiZlLl90cmFuc2l0aW9uVG8oYixrKTooZS5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLC0xKSxyJiZlLl90cmFuc2l0aW9uVG8oXyxrLF8pKSksWj1aLnBhcmVudCxqPW99fX0sdC5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKGUpe2lmKGUuem9uZSYmZS56b25lIT09dGhpcylmb3IodmFyIHQ9dGhpczt0Oyl7aWYodD09PWUuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIit0aGlzLm5hbWUrIiB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAiK2Uuem9uZS5uYW1lKTt0PXQucGFyZW50fWUuX3RyYW5zaXRpb25UbyhtLF8pO3ZhciBuPVtdO2UuX3pvbmVEZWxlZ2F0ZXM9bixlLl96b25lPXRoaXM7dHJ5e2U9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLGUpfWNhdGNoKHIpe3Rocm93IGUuX3RyYW5zaXRpb25Ubyh3LG0sXyksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMscikscn1yZXR1cm4gZS5fem9uZURlbGVnYXRlcz09PW4mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLDEpLGUuc3RhdGU9PW0mJmUuX3RyYW5zaXRpb25UbyhiLG0pLGV9LHQucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgdShFLGUsdCxuLHIsdm9pZCAwKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlTWFjcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KE8sZSx0LG4scixvKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KFMsZSx0LG4scixvKSl9LHQucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24oZSl7aWYoZS56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhlLnpvbmV8fGcpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2UuX3RyYW5zaXRpb25UbyhULGIsayk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsZSl9Y2F0Y2godCl7dGhyb3cgZS5fdHJhbnNpdGlvblRvKHcsVCksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsdCksdH1yZXR1cm4gdGhpcy5fdXBkYXRlVGFza0NvdW50KGUsLTEpLGUuX3RyYW5zaXRpb25UbyhfLFQpLGUucnVuQ291bnQ9MCxlfSx0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fem9uZURlbGVnYXRlczstMT09dCYmKGUuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXS5fdXBkYXRlVGFza0NvdW50KGUudHlwZSx0KX0sdC5fX3N5bWJvbF9fPUksdH0oKSxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5oYXNUYXNrKG4scil9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBlLnNjaGVkdWxlVGFzayhuLHIpfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24oZSx0LG4scixvLGEpe3JldHVybiBlLmludm9rZVRhc2sobixyLG8sYSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5jYW5jZWxUYXNrKG4scil9fSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT1lLHRoaXMuX3BhcmVudERlbGVnYXRlPXQsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOnQuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP3Q6dC5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOnQuem9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjp0Ll9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD90OnQuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246dC5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/dDp0Ll9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYW5kbGVFcnJvclpTPW4mJihuLm9uSGFuZGxlRXJyb3I/bjp0Ll9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9biYmKG4ub25IYW5kbGVFcnJvcj90OnQuX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1uJiYobi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246dC5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/dDp0Ll9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9pbnZva2VUYXNrWlM9biYmKG4ub25JbnZva2VUYXNrP246dC5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1uJiYobi5vbkludm9rZVRhc2s/dDp0Ll9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPW4mJihuLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9jYW5jZWxUYXNrWlM9biYmKG4ub25DYW5jZWxUYXNrP246dC5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1uJiYobi5vbkNhbmNlbFRhc2s/dDp0Ll9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPW4mJihuLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDt2YXIgcj1uJiZuLm9uSGFzVGFzazsocnx8dCYmdC5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1yP246Yyx0aGlzLl9oYXNUYXNrRGxndD10LHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9ZSxuLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Yyx0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PXQsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2taUz1jLHRoaXMuX2ludm9rZVRhc2tEbGd0PXQsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Yyx0aGlzLl9jYW5jZWxUYXNrRGxndD10LHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gZS5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsZSx0KTpuZXcgaShlLHQpfSxlLnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLGUsdCxuKTp0fSxlLnByb3RvdHlwZS5pbnZva2U9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSxlLHQsbixyLG8pOnQuYXBwbHkobixyKX0sZS5wcm90b3R5cGUuaGFuZGxlRXJyb3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLGUsdCl9LGUucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ7aWYodGhpcy5fc2NoZWR1bGVUYXNrWlMpdGhpcy5faGFzVGFza1pTJiZuLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksKG49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSxlLHQpKXx8KG49dCk7ZWxzZSBpZih0LnNjaGVkdWxlRm4pdC5zY2hlZHVsZUZuKHQpO2Vsc2V7aWYodC50eXBlIT1FKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7dih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaW52b2tlVGFzaz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLGUsdCxuLHIpOnQuY2FsbGJhY2suYXBwbHkobixyKX0sZS5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKHRoaXMuX2NhbmNlbFRhc2taUyluPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLGUsdCk7ZWxzZXtpZighdC5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO249dC5jYW5jZWxGbih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaGFzVGFzaz1mdW5jdGlvbihlLHQpe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLGUsdCl9Y2F0Y2gobil7dGhpcy5oYW5kbGVFcnJvcihlLG4pfX0sZS5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX3Rhc2tDb3VudHMscj1uW2VdLG89bltlXT1yK3Q7aWYobzwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPXImJjAhPW98fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpuLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpuLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpuLmV2ZW50VGFzaz4wLGNoYW5nZTplfSl9LGV9KCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobixyLG8sYSxpLGMpe3RoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPXIsdGhpcy5kYXRhPWEsdGhpcy5zY2hlZHVsZUZuPWksdGhpcy5jYW5jZWxGbj1jLHRoaXMuY2FsbGJhY2s9bzt2YXIgcz10aGlzO3RoaXMuaW52b2tlPW49PT1TJiZhJiZhLnVzZUc/dC5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHQuaW52b2tlVGFzay5jYWxsKGUscyx0aGlzLGFyZ3VtZW50cyl9fXJldHVybiB0Lmludm9rZVRhc2s9ZnVuY3Rpb24oZSx0LG4pe2V8fChlPXRoaXMpLHorKzt0cnl7cmV0dXJuIGUucnVuQ291bnQrKyxlLnpvbmUucnVuVGFzayhlLHQsbil9ZmluYWxseXsxPT16JiZ5KCksei0tfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJ6b25lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvbmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5jYW5jZWxTY2hlZHVsZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uVG8oXyxtKX0sdC5wcm90b3R5cGUuX3RyYW5zaXRpb25Ubz1mdW5jdGlvbihlLHQsbil7aWYodGhpcy5fc3RhdGUhPT10JiZ0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiICciK3RoaXMuc291cmNlKyInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIrZSsiJywgZXhwZWN0aW5nIHN0YXRlICciK3QrIiciKyhuPyIgb3IgJyIrbisiJyI6IiIpKyIsIHdhcyAnIit0aGlzLl9zdGF0ZSsiJy4iKTt0aGlzLl9zdGF0ZT1lLGU9PV8mJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnZvaWQgMCE9PXRoaXMuZGF0YS5oYW5kbGVJZD90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9LHQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSx0fSgpLGw9SSgic2V0VGltZW91dCIpLGY9SSgiUHJvbWlzZSIpLHA9SSgidGhlbiIpLGg9W10sZD0hMTtmdW5jdGlvbiB2KHQpe2lmKDA9PT16JiYwPT09aC5sZW5ndGgpaWYoYXx8ZVtmXSYmKGE9ZVtmXS5yZXNvbHZlKDApKSxhKXt2YXIgbj1hW3BdO258fChuPWEudGhlbiksbi5jYWxsKGEseSl9ZWxzZSBlW2xdKHksMCk7dCYmaC5wdXNoKHQpfWZ1bmN0aW9uIHkoKXtpZighZCl7Zm9yKGQ9ITA7aC5sZW5ndGg7KXt2YXIgZT1oO2g9W107Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPWVbdF07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaChyKXtELm9uVW5oYW5kbGVkRXJyb3Iocil9fX1ELm1pY3JvdGFza0RyYWluRG9uZSgpLGQ9ITF9fXZhciBnPXtuYW1lOiJOTyBaT05FIn0sXz0ibm90U2NoZWR1bGVkIixtPSJzY2hlZHVsaW5nIixiPSJzY2hlZHVsZWQiLGs9InJ1bm5pbmciLFQ9ImNhbmNlbGluZyIsdz0idW5rbm93biIsRT0ibWljcm9UYXNrIixPPSJtYWNyb1Rhc2siLFM9ImV2ZW50VGFzayIsUD17fSxEPXtzeW1ib2w6SSxjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LG9uVW5oYW5kbGVkRXJyb3I6QyxtaWNyb3Rhc2tEcmFpbkRvbmU6QyxzY2hlZHVsZU1pY3JvVGFzazp2LHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWlbSSgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpDLHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHNldE5hdGl2ZVByb21pc2U6ZnVuY3Rpb24oZSl7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmVzb2x2ZSYmKGE9ZS5yZXNvbHZlKDApKX0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBDfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBDfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBDfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBDfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBDfX0sWj17cGFyZW50Om51bGwsem9uZTpuZXcgaShudWxsLG51bGwpfSxqPW51bGwsej0wO2Z1bmN0aW9uIEMoKXt9ZnVuY3Rpb24gSShlKXtyZXR1cm4iX196b25lX3N5bWJvbF9fIitlfXIoIlpvbmUiLCJab25lIiksZS5ab25lPWl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKSxab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9bi5zeW1ib2wsYz1bXSxzPWkoIlByb21pc2UiKSx1PWkoInRoZW4iKSxsPSJfX2NyZWF0aW9uVHJhY2VfXyI7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKGUpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIHQ9ZSYmZS5yZWplY3Rpb247dD9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246Iix0IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOnQsIjsgWm9uZToiLGUuem9uZS5uYW1lLCI7IFRhc2s6IixlLnRhc2smJmUudGFzay5zb3VyY2UsIjsgVmFsdWU6Iix0LHQgaW5zdGFuY2VvZiBFcnJvcj90LnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcihlKX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKDtjLmxlbmd0aDspZm9yKHZhciBlPWZ1bmN0aW9uKCl7dmFyIGU9Yy5zaGlmdCgpO3RyeXtlLnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfWNhdGNoKHQpe3AodCl9fTtjLmxlbmd0aDspZSgpfTt2YXIgZj1pKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAoZSl7bi5vblVuaGFuZGxlZEVycm9yKGUpO3RyeXt2YXIgcj10W2ZdO3ImJiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNhbGwodGhpcyxlKX1jYXRjaChvKXt9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUmJmUudGhlbn1mdW5jdGlvbiBkKGUpe3JldHVybiBlfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIFIucmVqZWN0KGUpfXZhciB5PWkoInN0YXRlIiksZz1pKCJ2YWx1ZSIpLF89aSgiZmluYWxseSIpLG09aSgicGFyZW50UHJvbWlzZVZhbHVlIiksYj1pKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxrPSJQcm9taXNlLnRoZW4iLFQ9bnVsbCx3PSEwLEU9ITEsTz0wO2Z1bmN0aW9uIFMoZSx0KXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e2ooZSx0LG4pfWNhdGNoKHIpe2ooZSwhMSxyKX19fXZhciBQPWZ1bmN0aW9uKCl7dmFyIGU9ITE7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxEPSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixaPWkoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBqKGUscixvKXt2YXIgaSxzPVAoKTtpZihlPT09byl0aHJvdyBuZXcgVHlwZUVycm9yKEQpO2lmKGVbeV09PT1UKXt2YXIgdT1udWxsO3RyeXsib2JqZWN0IiE9dHlwZW9mIG8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvfHwodT1vJiZvLnRoZW4pfWNhdGNoKHYpe3JldHVybiBzKChmdW5jdGlvbigpe2ooZSwhMSx2KX0pKSgpLGV9aWYociE9PUUmJm8gaW5zdGFuY2VvZiBSJiZvLmhhc093blByb3BlcnR5KHkpJiZvLmhhc093blByb3BlcnR5KGcpJiZvW3ldIT09VClDKG8pLGooZSxvW3ldLG9bZ10pO2Vsc2UgaWYociE9PUUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1KXRyeXt1LmNhbGwobyxzKFMoZSxyKSkscyhTKGUsITEpKSl9Y2F0Y2godil7cygoZnVuY3Rpb24oKXtqKGUsITEsdil9KSkoKX1lbHNle2VbeV09cjt2YXIgZj1lW2ddO2lmKGVbZ109byxlW19dPT09XyYmcj09PXcmJihlW3ldPWVbYl0sZVtnXT1lW21dKSxyPT09RSYmbyBpbnN0YW5jZW9mIEVycm9yKXt2YXIgcD10LmN1cnJlbnRUYXNrJiZ0LmN1cnJlbnRUYXNrLmRhdGEmJnQuY3VycmVudFRhc2suZGF0YVtsXTtwJiZhKG8sWix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6cH0pfWZvcih2YXIgaD0wO2g8Zi5sZW5ndGg7KUkoZSxmW2grK10sZltoKytdLGZbaCsrXSxmW2grK10pO2lmKDA9PWYubGVuZ3RoJiZyPT1FKXtlW3ldPU87dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKygoaT1vKSYmaS50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGkuY29uc3RydWN0b3ImJmkuY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoaSk6aT9pLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGkpKSsobyYmby5zdGFjaz8iXG4iK28uc3RhY2s6IiIpKX1jYXRjaCh2KXt2YXIgZD12O2QucmVqZWN0aW9uPW8sZC5wcm9taXNlPWUsZC56b25lPXQuY3VycmVudCxkLnRhc2s9dC5jdXJyZW50VGFzayxjLnB1c2goZCksbi5zY2hlZHVsZU1pY3JvVGFzaygpfX19fXJldHVybiBlfXZhciB6PWkoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gQyhlKXtpZihlW3ldPT09Tyl7dHJ5e3ZhciBuPXRbel07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246ZVtnXSxwcm9taXNlOmV9KX1jYXRjaChvKXt9ZVt5XT1FO2Zvcih2YXIgcj0wO3I8Yy5sZW5ndGg7cisrKWU9PT1jW3JdLnByb21pc2UmJmMuc3BsaWNlKHIsMSl9fWZ1bmN0aW9uIEkoZSx0LG4scixvKXtDKGUpO3ZhciBhPWVbeV0saT1hPyJmdW5jdGlvbiI9PXR5cGVvZiByP3I6ZDoiZnVuY3Rpb24iPT10eXBlb2Ygbz9vOnY7dC5zY2hlZHVsZU1pY3JvVGFzayhrLChmdW5jdGlvbigpe3RyeXt2YXIgcj1lW2ddLG89biYmXz09PW5bX107byYmKG5bbV09cixuW2JdPWEpO3ZhciBjPXQucnVuKGksdm9pZCAwLG8mJmkhPT12JiZpIT09ZD9bXTpbcl0pO2oobiwhMCxjKX1jYXRjaChzKXtqKG4sITEscyl9fSksbil9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7dGhpc1t5XT1ULHRoaXNbZ109W107dHJ5e3QmJnQoUyh0aGlzLHcpLFModGhpcyxFKSl9Y2F0Y2gobil7aih0aGlzLCExLG4pfX1yZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiBab25lQXdhcmVQcm9taXNlKCkgeyBbbmF0aXZlIGNvZGVdIH0ifSxlLnJlc29sdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksdyxlKX0sZS5yZWplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksRSxlKX0sZS5yYWNlPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKTtmdW5jdGlvbiBjKGUpe28oZSl9ZnVuY3Rpb24gcyhlKXthKGUpfXRyeXtmb3IodmFyIHU9cihlKSxsPXUubmV4dCgpOyFsLmRvbmU7bD11Lm5leHQoKSl7dmFyIGY9bC52YWx1ZTtoKGYpfHwoZj10aGlzLnJlc29sdmUoZikpLGYudGhlbihjLHMpfX1jYXRjaChwKXt0PXtlcnJvcjpwfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobj11LnJldHVybikmJm4uY2FsbCh1KX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19cmV0dXJuIGl9LGUuYWxsPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKSxjPTIscz0wLHU9W10sbD1mdW5jdGlvbihlKXtoKGUpfHwoZT1mLnJlc29sdmUoZSkpO3ZhciB0PXM7ZS50aGVuKChmdW5jdGlvbihlKXt1W3RdPWUsMD09LS1jJiZvKHUpfSksYSksYysrLHMrK30sZj10aGlzO3RyeXtmb3IodmFyIHA9cihlKSxkPXAubmV4dCgpOyFkLmRvbmU7ZD1wLm5leHQoKSlsKGQudmFsdWUpfWNhdGNoKHYpe3Q9e2Vycm9yOnZ9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gMD09KGMtPTIpJiZvKHUpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCksbz10LmN1cnJlbnQ7cmV0dXJuIHRoaXNbeV09PVQ/dGhpc1tnXS5wdXNoKG8scixlLG4pOkkodGhpcyxvLHIsZSxuKSxyfSxlLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsZSl9LGUucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCk7bltfXT1fO3ZhciByPXQuY3VycmVudDtyZXR1cm4gdGhpc1t5XT09VD90aGlzW2ddLnB1c2gocixuLGUsZSk6SSh0aGlzLHIsbixlLGUpLG59LGV9KCk7Ui5yZXNvbHZlPVIucmVzb2x2ZSxSLnJlamVjdD1SLnJlamVjdCxSLnJhY2U9Ui5yYWNlLFIuYWxsPVIuYWxsO3ZhciB4PWVbc109ZS5Qcm9taXNlLE09dC5fX3N5bWJvbF9fKCJab25lQXdhcmVQcm9taXNlIiksTD1vKGUsIlByb21pc2UiKTtMJiYhTC5jb25maWd1cmFibGV8fChMJiZkZWxldGUgTC53cml0YWJsZSxMJiZkZWxldGUgTC52YWx1ZSxMfHwoTD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KSxMLmdldD1mdW5jdGlvbigpe3JldHVybiBlW01dP2VbTV06ZVtzXX0sTC5zZXQ9ZnVuY3Rpb24odCl7dD09PVI/ZVtNXT10OihlW3NdPXQsdC5wcm90b3R5cGVbdV18fEEodCksbi5zZXROYXRpdmVQcm9taXNlKHQpKX0sYShlLCJQcm9taXNlIixMKSksZS5Qcm9taXNlPVI7dmFyIE4sRj1pKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIEEoZSl7dmFyIHQ9ZS5wcm90b3R5cGUsbj1vKHQsInRoZW4iKTtpZighbnx8ITEhPT1uLndyaXRhYmxlJiZuLmNvbmZpZ3VyYWJsZSl7dmFyIHI9dC50aGVuO3RbdV09cixlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IFIoKGZ1bmN0aW9uKGUsdCl7ci5jYWxsKG4sZSx0KX0pKS50aGVuKGUsdCl9LGVbRl09ITB9fWlmKG4ucGF0Y2hUaGVuPUEseCl7QSh4KTt2YXIgSD1lLmZldGNoOyJmdW5jdGlvbiI9PXR5cGVvZiBIJiYoZVtuLnN5bWJvbCgiZmV0Y2giKV09SCxlLmZldGNoPShOPUgsZnVuY3Rpb24oKXt2YXIgZT1OLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihlIGluc3RhbmNlb2YgUilyZXR1cm4gZTt2YXIgdD1lLmNvbnN0cnVjdG9yO3JldHVybiB0W0ZdfHxBKHQpLGV9KSl9cmV0dXJuIFByb21pc2VbdC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09YyxSfSkpO3ZhciBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsdD1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLGk9ImFkZEV2ZW50TGlzdGVuZXIiLGM9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHM9Wm9uZS5fX3N5bWJvbF9fKGkpLHU9Wm9uZS5fX3N5bWJvbF9fKGMpLGw9InRydWUiLGY9ImZhbHNlIixwPSJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGgoZSx0KXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAoZSx0KX1mdW5jdGlvbiBkKGUsdCxuLHIsbyl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayhlLHQsbixyLG8pfXZhciB2PVpvbmUuX19zeW1ib2xfXyx5PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LGc9eT93aW5kb3c6dm9pZCAwLF89eSYmZ3x8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmfHxnbG9iYWwsbT0icmVtb3ZlQXR0cmlidXRlIixiPVtudWxsXTtmdW5jdGlvbiBrKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIGVbbl0mJihlW25dPWgoZVtuXSx0KyJfIituKSk7cmV0dXJuIGV9ZnVuY3Rpb24gVChlKXtyZXR1cm4hZXx8ITEhPT1lLndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldCYmdm9pZCAwPT09ZS5zZXQpfXZhciB3PSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxFPSEoIm53ImluIF8pJiZ2b2lkIDAhPT1fLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoXy5wcm9jZXNzKSxPPSFFJiYhdyYmISgheXx8IWcuSFRNTEVsZW1lbnQpLFM9dm9pZCAwIT09Xy5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKF8ucHJvY2VzcykmJiF3JiYhKCF5fHwhZy5IVE1MRWxlbWVudCksUD17fSxEPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8Xy5ldmVudCl7dmFyIHQ9UFtlLnR5cGVdO3R8fCh0PVBbZS50eXBlXT12KCJPTl9QUk9QRVJUWSIrZS50eXBlKSk7dmFyIG4scj10aGlzfHxlLnRhcmdldHx8XyxvPXJbdF07aWYoTyYmcj09PWcmJiJlcnJvciI9PT1lLnR5cGUpe3ZhciBhPWU7ITA9PT0obj1vJiZvLmNhbGwodGhpcyxhLm1lc3NhZ2UsYS5maWxlbmFtZSxhLmxpbmVubyxhLmNvbG5vLGEuZXJyb3IpKSYmZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgbnVsbD09KG49byYmby5hcHBseSh0aGlzLGFyZ3VtZW50cykpfHxufHxlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIG59fTtmdW5jdGlvbiBaKG4scixvKXt2YXIgYT1lKG4scik7aWYoIWEmJm8mJmUobyxyKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciBpPXYoIm9uIityKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fCFuW2ldKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgYz1hLmdldCxzPWEuc2V0LHU9ci5zdWJzdHIoMiksbD1QW3VdO2x8fChsPVBbdV09digiT05fUFJPUEVSVFkiK3UpKSxhLnNldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3R8fG4hPT1ffHwodD1fKSx0JiYodFtsXSYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHUsRCkscyYmcy5hcHBseSh0LGIpLCJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0W2xdPWUsdC5hZGRFdmVudExpc3RlbmVyKHUsRCwhMSkpOnRbbF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlfHxuIT09X3x8KGU9XyksIWUpcmV0dXJuIG51bGw7dmFyIHQ9ZVtsXTtpZih0KXJldHVybiB0O2lmKGMpe3ZhciBvPWMmJmMuY2FsbCh0aGlzKTtpZihvKXJldHVybiBhLnNldC5jYWxsKHRoaXMsbyksImZ1bmN0aW9uIj09dHlwZW9mIGVbbV0mJmUucmVtb3ZlQXR0cmlidXRlKHIpLG99cmV0dXJuIG51bGx9LHQobixyLGEpLG5baV09ITB9fX1mdW5jdGlvbiBqKGUsdCxuKXtpZih0KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKVooZSwib24iK3Rbcl0sbik7ZWxzZXt2YXIgbz1bXTtmb3IodmFyIGEgaW4gZSkib24iPT1hLnN1YnN0cigwLDIpJiZvLnB1c2goYSk7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspWihlLG9baV0sbil9fXZhciB6PXYoIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiBDKGUpe3ZhciBuPV9bZV07aWYobil7X1t2KGUpXT1uLF9bZV09ZnVuY3Rpb24oKXt2YXIgdD1rKGFyZ3VtZW50cyxlKTtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMDp0aGlzW3pdPW5ldyBuO2JyZWFrO2Nhc2UgMTp0aGlzW3pdPW5ldyBuKHRbMF0pO2JyZWFrO2Nhc2UgMjp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSk7YnJlYWs7Y2FzZSAzOnRoaXNbel09bmV3IG4odFswXSx0WzFdLHRbMl0pO2JyZWFrO2Nhc2UgNDp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSx0WzJdLHRbM10pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJBcmcgbGlzdCB0b28gbG9uZy4iKX19LE0oX1tlXSxuKTt2YXIgcixvPW5ldyBuKChmdW5jdGlvbigpe30pKTtmb3IociBpbiBvKSJYTUxIdHRwUmVxdWVzdCI9PT1lJiYicmVzcG9uc2VCbG9iIj09PXJ8fGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PXR5cGVvZiBvW25dP19bZV0ucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbel1bbl0uYXBwbHkodGhpc1t6XSxhcmd1bWVudHMpfTp0KF9bZV0ucHJvdG90eXBlLG4se3NldDpmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdD8odGhpc1t6XVtuXT1oKHQsZSsiLiIrbiksTSh0aGlzW3pdW25dLHQpKTp0aGlzW3pdW25dPXR9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW3pdW25dfX0pfShyKTtmb3IociBpbiBuKSJwcm90b3R5cGUiIT09ciYmbi5oYXNPd25Qcm9wZXJ0eShyKSYmKF9bZV1bcl09bltyXSl9fXZhciBJPSExO2Z1bmN0aW9uIFIodCxyLG8pe2Zvcih2YXIgYT10O2EmJiFhLmhhc093blByb3BlcnR5KHIpOylhPW4oYSk7IWEmJnRbcl0mJihhPXQpO3ZhciBpLGMscz12KHIpLHU9bg=="
}

Changelog:

{
    "2019.12.04 14:30": "base64:KHdpbmRvdy53ZWJwYWNrSnNvbnA9d2luZG93LndlYnBhY2tKc29ucHx8W10pLnB1c2goW1syXSx7IjBUV3AiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJtclNHIikuX192YWx1ZXM7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbihlKXt2YXIgdD1lLnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4oZSl7dCYmdC5tYXJrJiZ0Lm1hcmsoZSl9ZnVuY3Rpb24gcihlLG4pe3QmJnQubWVhc3VyZSYmdC5tZWFzdXJlKGUsbil9bigiWm9uZSIpO3ZhciBvPSEwPT09ZS5fX3pvbmVfc3ltYm9sX19mb3JjZUR1cGxpY2F0ZVpvbmVDaGVjaztpZihlLlpvbmUpe2lmKG98fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIGUuWm9uZX12YXIgYSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQpe3RoaXMuX3BhcmVudD1lLHRoaXMuX25hbWU9dD90Lm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPXQmJnQucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyBzKHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSx0KX1yZXR1cm4gdC5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKGUuUHJvbWlzZSE9PVAuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgZT10LmN1cnJlbnQ7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi56b25lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBqfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGEsaSl7aWYoUC5oYXNPd25Qcm9wZXJ0eShhKSl7aWYobyl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIrYSl9ZWxzZSBpZighZVsiX19ab25lX2Rpc2FibGVfIithXSl7dmFyIGM9IlpvbmU6IithO24oYyksUFthXT1pKGUsdCxEKSxyKGMsYyl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0Wm9uZVdpdGgoZSk7aWYodClyZXR1cm4gdC5fcHJvcGVydGllc1tlXX0sdC5wcm90b3R5cGUuZ2V0Wm9uZVdpdGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXM7dDspe2lmKHQuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHQ7dD10Ll9wYXJlbnR9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmZvcmsodGhpcyxlKX0sdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIitlKTt2YXIgbj10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsZSx0KSxyPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIucnVuR3VhcmRlZChuLHRoaXMsYXJndW1lbnRzLHQpfX0sdC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKGUsdCxuLHIpe1o9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsZSx0LG4scil9ZmluYWxseXtaPVoucGFyZW50fX0sdC5wcm90b3R5cGUucnVuR3VhcmRlZD1mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT10JiYodD1udWxsKSxaPXtwYXJlbnQ6Wix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxlLHQsbixyKX1jYXRjaChvKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxvKSl0aHJvdyBvfX1maW5hbGx5e1o9Wi5wYXJlbnR9fSx0LnByb3RvdHlwZS5ydW5UYXNrPWZ1bmN0aW9uKGUsdCxuKXtpZihlLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKGUuem9uZXx8ZykubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYoZS5zdGF0ZSE9PV98fGUudHlwZSE9PVMmJmUudHlwZSE9PU8pe3ZhciByPWUuc3RhdGUhPWs7ciYmZS5fdHJhbnNpdGlvblRvKGssYiksZS5ydW5Db3VudCsrO3ZhciBvPWo7aj1lLFo9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e2UudHlwZT09TyYmZS5kYXRhJiYhZS5kYXRhLmlzUGVyaW9kaWMmJihlLmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLGUsdCxuKX1jYXRjaChhKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxhKSl0aHJvdyBhfX1maW5hbGx5e2Uuc3RhdGUhPT1fJiZlLnN0YXRlIT09dyYmKGUudHlwZT09U3x8ZS5kYXRhJiZlLmRhdGEuaXNQZXJpb2RpYz9yJiZlLl90cmFuc2l0aW9uVG8oYixrKTooZS5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLC0xKSxyJiZlLl90cmFuc2l0aW9uVG8oXyxrLF8pKSksWj1aLnBhcmVudCxqPW99fX0sdC5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKGUpe2lmKGUuem9uZSYmZS56b25lIT09dGhpcylmb3IodmFyIHQ9dGhpczt0Oyl7aWYodD09PWUuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIit0aGlzLm5hbWUrIiB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAiK2Uuem9uZS5uYW1lKTt0PXQucGFyZW50fWUuX3RyYW5zaXRpb25UbyhtLF8pO3ZhciBuPVtdO2UuX3pvbmVEZWxlZ2F0ZXM9bixlLl96b25lPXRoaXM7dHJ5e2U9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLGUpfWNhdGNoKHIpe3Rocm93IGUuX3RyYW5zaXRpb25Ubyh3LG0sXyksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMscikscn1yZXR1cm4gZS5fem9uZURlbGVnYXRlcz09PW4mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLDEpLGUuc3RhdGU9PW0mJmUuX3RyYW5zaXRpb25UbyhiLG0pLGV9LHQucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgdShFLGUsdCxuLHIsdm9pZCAwKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlTWFjcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KE8sZSx0LG4scixvKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KFMsZSx0LG4scixvKSl9LHQucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24oZSl7aWYoZS56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhlLnpvbmV8fGcpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2UuX3RyYW5zaXRpb25UbyhULGIsayk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsZSl9Y2F0Y2godCl7dGhyb3cgZS5fdHJhbnNpdGlvblRvKHcsVCksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsdCksdH1yZXR1cm4gdGhpcy5fdXBkYXRlVGFza0NvdW50KGUsLTEpLGUuX3RyYW5zaXRpb25UbyhfLFQpLGUucnVuQ291bnQ9MCxlfSx0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fem9uZURlbGVnYXRlczstMT09dCYmKGUuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXS5fdXBkYXRlVGFza0NvdW50KGUudHlwZSx0KX0sdC5fX3N5bWJvbF9fPUksdH0oKSxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5oYXNUYXNrKG4scil9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBlLnNjaGVkdWxlVGFzayhuLHIpfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24oZSx0LG4scixvLGEpe3JldHVybiBlLmludm9rZVRhc2sobixyLG8sYSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5jYW5jZWxUYXNrKG4scil9fSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT1lLHRoaXMuX3BhcmVudERlbGVnYXRlPXQsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOnQuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP3Q6dC5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOnQuem9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjp0Ll9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD90OnQuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246dC5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/dDp0Ll9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYW5kbGVFcnJvclpTPW4mJihuLm9uSGFuZGxlRXJyb3I/bjp0Ll9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9biYmKG4ub25IYW5kbGVFcnJvcj90OnQuX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1uJiYobi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246dC5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/dDp0Ll9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9pbnZva2VUYXNrWlM9biYmKG4ub25JbnZva2VUYXNrP246dC5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1uJiYobi5vbkludm9rZVRhc2s/dDp0Ll9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPW4mJihuLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9jYW5jZWxUYXNrWlM9biYmKG4ub25DYW5jZWxUYXNrP246dC5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1uJiYobi5vbkNhbmNlbFRhc2s/dDp0Ll9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPW4mJihuLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDt2YXIgcj1uJiZuLm9uSGFzVGFzazsocnx8dCYmdC5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1yP246Yyx0aGlzLl9oYXNUYXNrRGxndD10LHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9ZSxuLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Yyx0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PXQsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2taUz1jLHRoaXMuX2ludm9rZVRhc2tEbGd0PXQsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Yyx0aGlzLl9jYW5jZWxUYXNrRGxndD10LHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gZS5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsZSx0KTpuZXcgaShlLHQpfSxlLnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLGUsdCxuKTp0fSxlLnByb3RvdHlwZS5pbnZva2U9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSxlLHQsbixyLG8pOnQuYXBwbHkobixyKX0sZS5wcm90b3R5cGUuaGFuZGxlRXJyb3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLGUsdCl9LGUucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ7aWYodGhpcy5fc2NoZWR1bGVUYXNrWlMpdGhpcy5faGFzVGFza1pTJiZuLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksKG49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSxlLHQpKXx8KG49dCk7ZWxzZSBpZih0LnNjaGVkdWxlRm4pdC5zY2hlZHVsZUZuKHQpO2Vsc2V7aWYodC50eXBlIT1FKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7dih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaW52b2tlVGFzaz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLGUsdCxuLHIpOnQuY2FsbGJhY2suYXBwbHkobixyKX0sZS5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKHRoaXMuX2NhbmNlbFRhc2taUyluPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLGUsdCk7ZWxzZXtpZighdC5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO249dC5jYW5jZWxGbih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaGFzVGFzaz1mdW5jdGlvbihlLHQpe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLGUsdCl9Y2F0Y2gobil7dGhpcy5oYW5kbGVFcnJvcihlLG4pfX0sZS5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX3Rhc2tDb3VudHMscj1uW2VdLG89bltlXT1yK3Q7aWYobzwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPXImJjAhPW98fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpuLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpuLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpuLmV2ZW50VGFzaz4wLGNoYW5nZTplfSl9LGV9KCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobixyLG8sYSxpLGMpe3RoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPXIsdGhpcy5kYXRhPWEsdGhpcy5zY2hlZHVsZUZuPWksdGhpcy5jYW5jZWxGbj1jLHRoaXMuY2FsbGJhY2s9bzt2YXIgcz10aGlzO3RoaXMuaW52b2tlPW49PT1TJiZhJiZhLnVzZUc/dC5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHQuaW52b2tlVGFzay5jYWxsKGUscyx0aGlzLGFyZ3VtZW50cyl9fXJldHVybiB0Lmludm9rZVRhc2s9ZnVuY3Rpb24oZSx0LG4pe2V8fChlPXRoaXMpLHorKzt0cnl7cmV0dXJuIGUucnVuQ291bnQrKyxlLnpvbmUucnVuVGFzayhlLHQsbil9ZmluYWxseXsxPT16JiZ5KCksei0tfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJ6b25lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvbmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5jYW5jZWxTY2hlZHVsZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uVG8oXyxtKX0sdC5wcm90b3R5cGUuX3RyYW5zaXRpb25Ubz1mdW5jdGlvbihlLHQsbil7aWYodGhpcy5fc3RhdGUhPT10JiZ0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiICciK3RoaXMuc291cmNlKyInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIrZSsiJywgZXhwZWN0aW5nIHN0YXRlICciK3QrIiciKyhuPyIgb3IgJyIrbisiJyI6IiIpKyIsIHdhcyAnIit0aGlzLl9zdGF0ZSsiJy4iKTt0aGlzLl9zdGF0ZT1lLGU9PV8mJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnZvaWQgMCE9PXRoaXMuZGF0YS5oYW5kbGVJZD90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9LHQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSx0fSgpLGw9SSgic2V0VGltZW91dCIpLGY9SSgiUHJvbWlzZSIpLHA9SSgidGhlbiIpLGg9W10sZD0hMTtmdW5jdGlvbiB2KHQpe2lmKDA9PT16JiYwPT09aC5sZW5ndGgpaWYoYXx8ZVtmXSYmKGE9ZVtmXS5yZXNvbHZlKDApKSxhKXt2YXIgbj1hW3BdO258fChuPWEudGhlbiksbi5jYWxsKGEseSl9ZWxzZSBlW2xdKHksMCk7dCYmaC5wdXNoKHQpfWZ1bmN0aW9uIHkoKXtpZighZCl7Zm9yKGQ9ITA7aC5sZW5ndGg7KXt2YXIgZT1oO2g9W107Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPWVbdF07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaChyKXtELm9uVW5oYW5kbGVkRXJyb3Iocil9fX1ELm1pY3JvdGFza0RyYWluRG9uZSgpLGQ9ITF9fXZhciBnPXtuYW1lOiJOTyBaT05FIn0sXz0ibm90U2NoZWR1bGVkIixtPSJzY2hlZHVsaW5nIixiPSJzY2hlZHVsZWQiLGs9InJ1bm5pbmciLFQ9ImNhbmNlbGluZyIsdz0idW5rbm93biIsRT0ibWljcm9UYXNrIixPPSJtYWNyb1Rhc2siLFM9ImV2ZW50VGFzayIsUD17fSxEPXtzeW1ib2w6SSxjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LG9uVW5oYW5kbGVkRXJyb3I6QyxtaWNyb3Rhc2tEcmFpbkRvbmU6QyxzY2hlZHVsZU1pY3JvVGFzazp2LHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWlbSSgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpDLHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHNldE5hdGl2ZVByb21pc2U6ZnVuY3Rpb24oZSl7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmVzb2x2ZSYmKGE9ZS5yZXNvbHZlKDApKX0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBDfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBDfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBDfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBDfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBDfX0sWj17cGFyZW50Om51bGwsem9uZTpuZXcgaShudWxsLG51bGwpfSxqPW51bGwsej0wO2Z1bmN0aW9uIEMoKXt9ZnVuY3Rpb24gSShlKXtyZXR1cm4iX196b25lX3N5bWJvbF9fIitlfXIoIlpvbmUiLCJab25lIiksZS5ab25lPWl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKSxab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9bi5zeW1ib2wsYz1bXSxzPWkoIlByb21pc2UiKSx1PWkoInRoZW4iKSxsPSJfX2NyZWF0aW9uVHJhY2VfXyI7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKGUpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIHQ9ZSYmZS5yZWplY3Rpb247dD9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246Iix0IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOnQsIjsgWm9uZToiLGUuem9uZS5uYW1lLCI7IFRhc2s6IixlLnRhc2smJmUudGFzay5zb3VyY2UsIjsgVmFsdWU6Iix0LHQgaW5zdGFuY2VvZiBFcnJvcj90LnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcihlKX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKDtjLmxlbmd0aDspZm9yKHZhciBlPWZ1bmN0aW9uKCl7dmFyIGU9Yy5zaGlmdCgpO3RyeXtlLnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfWNhdGNoKHQpe3AodCl9fTtjLmxlbmd0aDspZSgpfTt2YXIgZj1pKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAoZSl7bi5vblVuaGFuZGxlZEVycm9yKGUpO3RyeXt2YXIgcj10W2ZdO3ImJiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNhbGwodGhpcyxlKX1jYXRjaChvKXt9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUmJmUudGhlbn1mdW5jdGlvbiBkKGUpe3JldHVybiBlfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIFIucmVqZWN0KGUpfXZhciB5PWkoInN0YXRlIiksZz1pKCJ2YWx1ZSIpLF89aSgiZmluYWxseSIpLG09aSgicGFyZW50UHJvbWlzZVZhbHVlIiksYj1pKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxrPSJQcm9taXNlLnRoZW4iLFQ9bnVsbCx3PSEwLEU9ITEsTz0wO2Z1bmN0aW9uIFMoZSx0KXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e2ooZSx0LG4pfWNhdGNoKHIpe2ooZSwhMSxyKX19fXZhciBQPWZ1bmN0aW9uKCl7dmFyIGU9ITE7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxEPSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixaPWkoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBqKGUscixvKXt2YXIgaSxzPVAoKTtpZihlPT09byl0aHJvdyBuZXcgVHlwZUVycm9yKEQpO2lmKGVbeV09PT1UKXt2YXIgdT1udWxsO3RyeXsib2JqZWN0IiE9dHlwZW9mIG8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvfHwodT1vJiZvLnRoZW4pfWNhdGNoKHYpe3JldHVybiBzKChmdW5jdGlvbigpe2ooZSwhMSx2KX0pKSgpLGV9aWYociE9PUUmJm8gaW5zdGFuY2VvZiBSJiZvLmhhc093blByb3BlcnR5KHkpJiZvLmhhc093blByb3BlcnR5KGcpJiZvW3ldIT09VClDKG8pLGooZSxvW3ldLG9bZ10pO2Vsc2UgaWYociE9PUUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1KXRyeXt1LmNhbGwobyxzKFMoZSxyKSkscyhTKGUsITEpKSl9Y2F0Y2godil7cygoZnVuY3Rpb24oKXtqKGUsITEsdil9KSkoKX1lbHNle2VbeV09cjt2YXIgZj1lW2ddO2lmKGVbZ109byxlW19dPT09XyYmcj09PXcmJihlW3ldPWVbYl0sZVtnXT1lW21dKSxyPT09RSYmbyBpbnN0YW5jZW9mIEVycm9yKXt2YXIgcD10LmN1cnJlbnRUYXNrJiZ0LmN1cnJlbnRUYXNrLmRhdGEmJnQuY3VycmVudFRhc2suZGF0YVtsXTtwJiZhKG8sWix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6cH0pfWZvcih2YXIgaD0wO2g8Zi5sZW5ndGg7KUkoZSxmW2grK10sZltoKytdLGZbaCsrXSxmW2grK10pO2lmKDA9PWYubGVuZ3RoJiZyPT1FKXtlW3ldPU87dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKygoaT1vKSYmaS50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGkuY29uc3RydWN0b3ImJmkuY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoaSk6aT9pLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGkpKSsobyYmby5zdGFjaz8iXG4iK28uc3RhY2s6IiIpKX1jYXRjaCh2KXt2YXIgZD12O2QucmVqZWN0aW9uPW8sZC5wcm9taXNlPWUsZC56b25lPXQuY3VycmVudCxkLnRhc2s9dC5jdXJyZW50VGFzayxjLnB1c2goZCksbi5zY2hlZHVsZU1pY3JvVGFzaygpfX19fXJldHVybiBlfXZhciB6PWkoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gQyhlKXtpZihlW3ldPT09Tyl7dHJ5e3ZhciBuPXRbel07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246ZVtnXSxwcm9taXNlOmV9KX1jYXRjaChvKXt9ZVt5XT1FO2Zvcih2YXIgcj0wO3I8Yy5sZW5ndGg7cisrKWU9PT1jW3JdLnByb21pc2UmJmMuc3BsaWNlKHIsMSl9fWZ1bmN0aW9uIEkoZSx0LG4scixvKXtDKGUpO3ZhciBhPWVbeV0saT1hPyJmdW5jdGlvbiI9PXR5cGVvZiByP3I6ZDoiZnVuY3Rpb24iPT10eXBlb2Ygbz9vOnY7dC5zY2hlZHVsZU1pY3JvVGFzayhrLChmdW5jdGlvbigpe3RyeXt2YXIgcj1lW2ddLG89biYmXz09PW5bX107byYmKG5bbV09cixuW2JdPWEpO3ZhciBjPXQucnVuKGksdm9pZCAwLG8mJmkhPT12JiZpIT09ZD9bXTpbcl0pO2oobiwhMCxjKX1jYXRjaChzKXtqKG4sITEscyl9fSksbil9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7dGhpc1t5XT1ULHRoaXNbZ109W107dHJ5e3QmJnQoUyh0aGlzLHcpLFModGhpcyxFKSl9Y2F0Y2gobil7aih0aGlzLCExLG4pfX1yZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiBab25lQXdhcmVQcm9taXNlKCkgeyBbbmF0aXZlIGNvZGVdIH0ifSxlLnJlc29sdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksdyxlKX0sZS5yZWplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksRSxlKX0sZS5yYWNlPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKTtmdW5jdGlvbiBjKGUpe28oZSl9ZnVuY3Rpb24gcyhlKXthKGUpfXRyeXtmb3IodmFyIHU9cihlKSxsPXUubmV4dCgpOyFsLmRvbmU7bD11Lm5leHQoKSl7dmFyIGY9bC52YWx1ZTtoKGYpfHwoZj10aGlzLnJlc29sdmUoZikpLGYudGhlbihjLHMpfX1jYXRjaChwKXt0PXtlcnJvcjpwfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobj11LnJldHVybikmJm4uY2FsbCh1KX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19cmV0dXJuIGl9LGUuYWxsPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKSxjPTIscz0wLHU9W10sbD1mdW5jdGlvbihlKXtoKGUpfHwoZT1mLnJlc29sdmUoZSkpO3ZhciB0PXM7ZS50aGVuKChmdW5jdGlvbihlKXt1W3RdPWUsMD09LS1jJiZvKHUpfSksYSksYysrLHMrK30sZj10aGlzO3RyeXtmb3IodmFyIHA9cihlKSxkPXAubmV4dCgpOyFkLmRvbmU7ZD1wLm5leHQoKSlsKGQudmFsdWUpfWNhdGNoKHYpe3Q9e2Vycm9yOnZ9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gMD09KGMtPTIpJiZvKHUpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCksbz10LmN1cnJlbnQ7cmV0dXJuIHRoaXNbeV09PVQ/dGhpc1tnXS5wdXNoKG8scixlLG4pOkkodGhpcyxvLHIsZSxuKSxyfSxlLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsZSl9LGUucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCk7bltfXT1fO3ZhciByPXQuY3VycmVudDtyZXR1cm4gdGhpc1t5XT09VD90aGlzW2ddLnB1c2gocixuLGUsZSk6SSh0aGlzLHIsbixlLGUpLG59LGV9KCk7Ui5yZXNvbHZlPVIucmVzb2x2ZSxSLnJlamVjdD1SLnJlamVjdCxSLnJhY2U9Ui5yYWNlLFIuYWxsPVIuYWxsO3ZhciB4PWVbc109ZS5Qcm9taXNlLE09dC5fX3N5bWJvbF9fKCJab25lQXdhcmVQcm9taXNlIiksTD1vKGUsIlByb21pc2UiKTtMJiYhTC5jb25maWd1cmFibGV8fChMJiZkZWxldGUgTC53cml0YWJsZSxMJiZkZWxldGUgTC52YWx1ZSxMfHwoTD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KSxMLmdldD1mdW5jdGlvbigpe3JldHVybiBlW01dP2VbTV06ZVtzXX0sTC5zZXQ9ZnVuY3Rpb24odCl7dD09PVI/ZVtNXT10OihlW3NdPXQsdC5wcm90b3R5cGVbdV18fEEodCksbi5zZXROYXRpdmVQcm9taXNlKHQpKX0sYShlLCJQcm9taXNlIixMKSksZS5Qcm9taXNlPVI7dmFyIE4sRj1pKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIEEoZSl7dmFyIHQ9ZS5wcm90b3R5cGUsbj1vKHQsInRoZW4iKTtpZighbnx8ITEhPT1uLndyaXRhYmxlJiZuLmNvbmZpZ3VyYWJsZSl7dmFyIHI9dC50aGVuO3RbdV09cixlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IFIoKGZ1bmN0aW9uKGUsdCl7ci5jYWxsKG4sZSx0KX0pKS50aGVuKGUsdCl9LGVbRl09ITB9fWlmKG4ucGF0Y2hUaGVuPUEseCl7QSh4KTt2YXIgSD1lLmZldGNoOyJmdW5jdGlvbiI9PXR5cGVvZiBIJiYoZVtuLnN5bWJvbCgiZmV0Y2giKV09SCxlLmZldGNoPShOPUgsZnVuY3Rpb24oKXt2YXIgZT1OLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihlIGluc3RhbmNlb2YgUilyZXR1cm4gZTt2YXIgdD1lLmNvbnN0cnVjdG9yO3JldHVybiB0W0ZdfHxBKHQpLGV9KSl9cmV0dXJuIFByb21pc2VbdC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09YyxSfSkpO3ZhciBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsdD1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLGk9ImFkZEV2ZW50TGlzdGVuZXIiLGM9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHM9Wm9uZS5fX3N5bWJvbF9fKGkpLHU9Wm9uZS5fX3N5bWJvbF9fKGMpLGw9InRydWUiLGY9ImZhbHNlIixwPSJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGgoZSx0KXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAoZSx0KX1mdW5jdGlvbiBkKGUsdCxuLHIsbyl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayhlLHQsbixyLG8pfXZhciB2PVpvbmUuX19zeW1ib2xfXyx5PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LGc9eT93aW5kb3c6dm9pZCAwLF89eSYmZ3x8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmfHxnbG9iYWwsbT0icmVtb3ZlQXR0cmlidXRlIixiPVtudWxsXTtmdW5jdGlvbiBrKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIGVbbl0mJihlW25dPWgoZVtuXSx0KyJfIituKSk7cmV0dXJuIGV9ZnVuY3Rpb24gVChlKXtyZXR1cm4hZXx8ITEhPT1lLndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldCYmdm9pZCAwPT09ZS5zZXQpfXZhciB3PSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxFPSEoIm53ImluIF8pJiZ2b2lkIDAhPT1fLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoXy5wcm9jZXNzKSxPPSFFJiYhdyYmISgheXx8IWcuSFRNTEVsZW1lbnQpLFM9dm9pZCAwIT09Xy5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKF8ucHJvY2VzcykmJiF3JiYhKCF5fHwhZy5IVE1MRWxlbWVudCksUD17fSxEPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8Xy5ldmVudCl7dmFyIHQ9UFtlLnR5cGVdO3R8fCh0PVBbZS50eXBlXT12KCJPTl9QUk9QRVJUWSIrZS50eXBlKSk7dmFyIG4scj10aGlzfHxlLnRhcmdldHx8XyxvPXJbdF07aWYoTyYmcj09PWcmJiJlcnJvciI9PT1lLnR5cGUpe3ZhciBhPWU7ITA9PT0obj1vJiZvLmNhbGwodGhpcyxhLm1lc3NhZ2UsYS5maWxlbmFtZSxhLmxpbmVubyxhLmNvbG5vLGEuZXJyb3IpKSYmZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgbnVsbD09KG49byYmby5hcHBseSh0aGlzLGFyZ3VtZW50cykpfHxufHxlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIG59fTtmdW5jdGlvbiBaKG4scixvKXt2YXIgYT1lKG4scik7aWYoIWEmJm8mJmUobyxyKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciBpPXYoIm9uIityKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fCFuW2ldKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgYz1hLmdldCxzPWEuc2V0LHU9ci5zdWJzdHIoMiksbD1QW3VdO2x8fChsPVBbdV09digiT05fUFJPUEVSVFkiK3UpKSxhLnNldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3R8fG4hPT1ffHwodD1fKSx0JiYodFtsXSYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHUsRCkscyYmcy5hcHBseSh0LGIpLCJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0W2xdPWUsdC5hZGRFdmVudExpc3RlbmVyKHUsRCwhMSkpOnRbbF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlfHxuIT09X3x8KGU9XyksIWUpcmV0dXJuIG51bGw7dmFyIHQ9ZVtsXTtpZih0KXJldHVybiB0O2lmKGMpe3ZhciBvPWMmJmMuY2FsbCh0aGlzKTtpZihvKXJldHVybiBhLnNldC5jYWxsKHRoaXMsbyksImZ1bmN0aW9uIj09dHlwZW9mIGVbbV0mJmUucmVtb3ZlQXR0cmlidXRlKHIpLG99cmV0dXJuIG51bGx9LHQobixyLGEpLG5baV09ITB9fX1mdW5jdGlvbiBqKGUsdCxuKXtpZih0KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKVooZSwib24iK3Rbcl0sbik7ZWxzZXt2YXIgbz1bXTtmb3IodmFyIGEgaW4gZSkib24iPT1hLnN1YnN0cigwLDIpJiZvLnB1c2goYSk7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspWihlLG9baV0sbil9fXZhciB6PXYoIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiBDKGUpe3ZhciBuPV9bZV07aWYobil7X1t2KGUpXT1uLF9bZV09ZnVuY3Rpb24oKXt2YXIgdD1rKGFyZ3VtZW50cyxlKTtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMDp0aGlzW3pdPW5ldyBuO2JyZWFrO2Nhc2UgMTp0aGlzW3pdPW5ldyBuKHRbMF0pO2JyZWFrO2Nhc2UgMjp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSk7YnJlYWs7Y2FzZSAzOnRoaXNbel09bmV3IG4odFswXSx0WzFdLHRbMl0pO2JyZWFrO2Nhc2UgNDp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSx0WzJdLHRbM10pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJBcmcgbGlzdCB0b28gbG9uZy4iKX19LE0oX1tlXSxuKTt2YXIgcixvPW5ldyBuKChmdW5jdGlvbigpe30pKTtmb3IociBpbiBvKSJYTUxIdHRwUmVxdWVzdCI9PT1lJiYicmVzcG9uc2VCbG9iIj09PXJ8fGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PXR5cGVvZiBvW25dP19bZV0ucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbel1bbl0uYXBwbHkodGhpc1t6XSxhcmd1bWVudHMpfTp0KF9bZV0ucHJvdG90eXBlLG4se3NldDpmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdD8odGhpc1t6XVtuXT1oKHQsZSsiLiIrbiksTSh0aGlzW3pdW25dLHQpKTp0aGlzW3pdW25dPXR9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW3pdW25dfX0pfShyKTtmb3IociBpbiBuKSJwcm90b3R5cGUiIT09ciYmbi5oYXNPd25Qcm9wZXJ0eShyKSYmKF9bZV1bcl09bltyXSl9fXZhciBJPSExO2Z1bmN0aW9uIFIodCxyLG8pe2Zvcih2YXIgYT10O2EmJiFhLmhhc093blByb3BlcnR5KHIpOylhPW4oYSk7IWEmJnRbcl0mJihhPXQpO3ZhciBpLGMscz12KHIpLHU9bg=="
}

github/deemru/w8io/c3f4982 
2.90 ms