| 1 | KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDQwNzA0LChlLHQsbik9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZSYmUHJvbWlzZS5wcm90b3R5cGUmJlByb21pc2UucHJvdG90eXBlLnRoZW59fSwyOTYyLChlLHQsbik9PntsZXQgcixvPVswLDI2LDQ0LDcwLDEwMCwxMzQsMTcyLDE5NiwyNDIsMjkyLDM0Niw0MDQsNDY2LDUzMiw1ODEsNjU1LDczMyw4MTUsOTAxLDk5MSwxMDg1LDExNTYsMTI1OCwxMzY0LDE0NzQsMTU4OCwxNzA2LDE4MjgsMTkyMSwyMDUxLDIxODUsMjMyMywyNDY1LDI2MTEsMjc2MSwyODc2LDMwMzQsMzE5NiwzMzYyLDM1MzIsMzcwNl07bi5nZXRTeW1ib2xTaXplPWZ1bmN0aW9uKGUpe2lmKCFlKXRocm93IEVycm9yKCcidmVyc2lvbiIgY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkJyk7aWYoZTwxfHxlPjQwKXRocm93IEVycm9yKCcidmVyc2lvbiIgc2hvdWxkIGJlIGluIHJhbmdlIGZyb20gMSB0byA0MCcpO3JldHVybiA0KmUrMTd9LG4uZ2V0U3ltYm9sVG90YWxDb2Rld29yZHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19LG4uZ2V0QkNIRGlnaXQ9ZnVuY3Rpb24oZSl7bGV0IHQ9MDtmb3IoOzAhPT1lOyl0KyssZT4+Pj0xO3JldHVybiB0fSxuLnNldFRvU0pJU0Z1bmN0aW9uPWZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IEVycm9yKCcidG9TSklTRnVuYyIgaXMgbm90IGEgdmFsaWQgZnVuY3Rpb24uJyk7cj1lfSxuLmlzS2FuamlNb2RlRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1yfSxuLnRvU0pJUz1mdW5jdGlvbihlKXtyZXR1cm4gcihlKX19LDI0MTM3LChlLHQsbik9PntuLkw9e2JpdDoxfSxuLk09e2JpdDowfSxuLlE9e2JpdDozfSxuLkg9e2JpdDoyfSxuLmlzVmFsaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnZvaWQgMCE9PWUuYml0JiZlLmJpdD49MCYmZS5iaXQ8NH0sbi5mcm9tPWZ1bmN0aW9uKGUsdCl7aWYobi5pc1ZhbGlkKGUpKXJldHVybiBlO3RyeXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgRXJyb3IoIlBhcmFtIGlzIG5vdCBhIHN0cmluZyIpO3N3aXRjaChlLnRvTG93ZXJDYXNlKCkpe2Nhc2UibCI6Y2FzZSJsb3ciOnJldHVybiBuLkw7Y2FzZSJtIjpjYXNlIm1lZGl1bSI6cmV0dXJuIG4uTTtjYXNlInEiOmNhc2UicXVhcnRpbGUiOnJldHVybiBuLlE7Y2FzZSJoIjpjYXNlImhpZ2giOnJldHVybiBuLkg7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBFQyBMZXZlbDogIitlKX19Y2F0Y2goZSl7cmV0dXJuIHR9fX0sNDMyMCwoZSx0LG4pPT57ZnVuY3Rpb24gcigpe3RoaXMuYnVmZmVyPVtdLHRoaXMubGVuZ3RoPTB9ci5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihlKXtsZXQgdD1NYXRoLmZsb29yKGUvOCk7cmV0dXJuKHRoaXMuYnVmZmVyW3RdPj4+Ny1lJTgmMSk9PTF9LHB1dDpmdW5jdGlvbihlLHQpe2ZvcihsZXQgbj0wO248dDtuKyspdGhpcy5wdXRCaXQoKGU+Pj50LW4tMSYxKT09MSl9LGdldExlbmd0aEluQml0czpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0scHV0Qml0OmZ1bmN0aW9uKGUpe2xldCB0PU1hdGguZmxvb3IodGhpcy5sZW5ndGgvOCk7dGhpcy5idWZmZXIubGVuZ3RoPD10JiZ0aGlzLmJ1ZmZlci5wdXNoKDApLGUmJih0aGlzLmJ1ZmZlclt0XXw9MTI4Pj4+dGhpcy5sZW5ndGglOCksdGhpcy5sZW5ndGgrK319LHQuZXhwb3J0cz1yfSw2NjY3NywoZSx0LG4pPT57ZnVuY3Rpb24gcihlKXtpZighZXx8ZTwxKXRocm93IEVycm9yKCJCaXRNYXRyaXggc2l6ZSBtdXN0IGJlIGRlZmluZWQgYW5kIGdyZWF0ZXIgdGhhbiAwIik7dGhpcy5zaXplPWUsdGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KGUqZSksdGhpcy5yZXNlcnZlZEJpdD1uZXcgVWludDhBcnJheShlKmUpfXIucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQsbixyKXtsZXQgbz1lKnRoaXMuc2l6ZSt0O3RoaXMuZGF0YVtvXT1uLHImJih0aGlzLnJlc2VydmVkQml0W29dPSEwKX0sci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZGF0YVtlKnRoaXMuc2l6ZSt0XX0sci5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmRhdGFbZSp0aGlzLnNpemUrdF1ePW59LHIucHJvdG90eXBlLmlzUmVzZXJ2ZWQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5yZXNlcnZlZEJpdFtlKnRoaXMuc2l6ZSt0XX0sdC5leHBvcnRzPXJ9LDg2OTIwLChlLHQsbik9PntsZXQgcj1lLnIoMjk2MikuZ2V0U3ltYm9sU2l6ZTtuLmdldFJvd0NvbENvb3Jkcz1mdW5jdGlvbihlKXtpZigxPT09ZSlyZXR1cm5bXTtsZXQgdD1NYXRoLmZsb29yKGUvNykrMixuPXIoZSksbz0xNDU9PT1uPzI2OjIqTWF0aC5jZWlsKChuLTEzKS8oMip0LTIpKSxpPVtuLTddO2ZvcihsZXQgZT0xO2U8dC0xO2UrKylpW2VdPWlbZS0xXS1vO3JldHVybiBpLnB1c2goNiksaS5yZXZlcnNlKCl9LG4uZ2V0UG9zaXRpb25zPWZ1bmN0aW9uKGUpe2xldCB0PVtdLHI9bi5nZXRSb3dDb2xDb29yZHMoZSksbz1yLmxlbmd0aDtmb3IobGV0IGU9MDtlPG87ZSsrKWZvcihsZXQgbj0wO248bztuKyspKDAhPT1lfHwwIT09bikmJigwIT09ZXx8biE9PW8tMSkmJihlIT09by0xfHwwIT09bikmJnQucHVzaChbcltlXSxyW25dXSk7cmV0dXJuIHR9fSw1NDQ3MSwoZSx0LG4pPT57bGV0IHI9ZS5yKDI5NjIpLmdldFN5bWJvbFNpemU7bi5nZXRQb3NpdGlvbnM9ZnVuY3Rpb24oZSl7bGV0IHQ9cihlKTtyZXR1cm5bWzAsMF0sW3QtNywwXSxbMCx0LTddXX19LDk1Mjk4LChlLHQsbik9PntuLlBhdHRlcm5zPXtQQVRURVJOMDAwOjAsUEFUVEVSTjAwMToxLFBBVFRFUk4wMTA6MixQQVRURVJOMDExOjMsUEFUVEVSTjEwMDo0LFBBVFRFUk4xMDE6NSxQQVRURVJOMTEwOjYsUEFUVEVSTjExMTo3fTtuLmlzVmFsaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJiIiIT09ZSYmIWlzTmFOKGUpJiZlPj0wJiZlPD03fSxuLmZyb209ZnVuY3Rpb24oZSl7cmV0dXJuIG4uaXNWYWxpZChlKT9wYXJzZUludChlLDEwKTp2b2lkIDB9LG4uZ2V0UGVuYWx0eU4xPWZ1bmN0aW9uKGUpe2xldCB0PWUuc2l6ZSxuPTAscj0wLG89MCxpPW51bGwsYT1udWxsO2ZvcihsZXQgcz0wO3M8dDtzKyspe3I9bz0wLGk9YT1udWxsO2ZvcihsZXQgbD0wO2w8dDtsKyspe2xldCB0PWUuZ2V0KHMsbCk7dD09PWk/cisrOihyPj01JiYobis9Mysoci01KSksaT10LHI9MSksKHQ9ZS5nZXQobCxzKSk9PT1hP28rKzoobz49NSYmKG4rPTMrKG8tNSkpLGE9dCxvPTEpfXI+PTUmJihuKz0zKyhyLTUpKSxvPj01JiYobis9Mysoby01KSl9cmV0dXJuIG59LG4uZ2V0UGVuYWx0eU4yPWZ1bmN0aW9uKGUpe2xldCB0PWUuc2l6ZSxuPTA7Zm9yKGxldCByPTA7cjx0LTE7cisrKWZvcihsZXQgbz0wO288dC0xO28rKyl7bGV0IHQ9ZS5nZXQocixvKStlLmdldChyLG8rMSkrZS5nZXQocisxLG8pK2UuZ2V0KHIrMSxvKzEpOyg0PT09dHx8MD09PXQpJiZuKyt9cmV0dXJuIDMqbn0sbi5nZXRQZW5hbHR5TjM9ZnVuY3Rpb24oZSl7bGV0IHQ9ZS5zaXplLG49MCxyPTAsbz0wO2ZvcihsZXQgaT0wO2k8dDtpKyspe3I9bz0wO2ZvcihsZXQgYT0wO2E8dDthKyspcj1yPDwxJjIwNDd8ZS5nZXQoaSxhKSxhPj0xMCYmKDE0ODg9PT1yfHw5Mz09PXIpJiZuKyssbz1vPDwxJjIwNDd8ZS5nZXQoYSxpKSxhPj0xMCYmKDE0ODg9PT1vfHw5Mz09PW8pJiZuKyt9cmV0dXJuIDQwKm59LG4uZ2V0UGVuYWx0eU40PWZ1bmN0aW9uKGUpe2xldCB0PTAsbj1lLmRhdGEubGVuZ3RoO2ZvcihsZXQgcj0wO3I8bjtyKyspdCs9ZS5kYXRhW3JdO3JldHVybiAxMCpNYXRoLmFicyhNYXRoLmNlaWwoMTAwKnQvbi81KS0xMCl9LG4uYXBwbHlNYXNrPWZ1bmN0aW9uKGUsdCl7bGV0IHI9dC5zaXplO2ZvcihsZXQgbz0wO288cjtvKyspZm9yKGxldCBpPTA7aTxyO2krKyl0LmlzUmVzZXJ2ZWQoaSxvKXx8dC54b3IoaSxvLGZ1bmN0aW9uKGUsdCxyKXtzd2l0Y2goZSl7Y2FzZSBuLlBhdHRlcm5zLlBBVFRFUk4wMDA6cmV0dXJuKHQrciklMj09MDtjYXNlIG4uUGF0dGVybnMuUEFUVEVSTjAwMTpyZXR1cm4gdCUyPT0wO2Nhc2Ugbi5QYXR0ZXJucy5QQVRURVJOMDEwOnJldHVybiByJTM9PTA7Y2FzZSBuLlBhdHRlcm5zLlBBVFRFUk4wMTE6cmV0dXJuKHQrciklMz09MDtjYXNlIG4uUGF0dGVybnMuUEFUVEVSTjEwMDpyZXR1cm4oTWF0aC5mbG9vcih0LzIpK01hdGguZmxvb3Ioci8zKSklMj09MDtjYXNlIG4uUGF0dGVybnMuUEFUVEVSTjEwMTpyZXR1cm4gdCpyJTIrdCpyJTM9PTA7Y2FzZSBuLlBhdHRlcm5zLlBBVFRFUk4xMTA6cmV0dXJuKHQqciUyK3QqciUzKSUyPT0wO2Nhc2Ugbi5QYXR0ZXJucy5QQVRURVJOMTExOnJldHVybih0KnIlMysodCtyKSUyKSUyPT0wO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImJhZCBtYXNrUGF0dGVybjoiK2UpfX0oZSxpLG8pKX0sbi5nZXRCZXN0TWFzaz1mdW5jdGlvbihlLHQpe2xldCByPU9iamVjdC5rZXlzKG4uUGF0dGVybnMpLmxlbmd0aCxvPTAsaT0xLzA7Zm9yKGxldCBhPTA7YTxyO2ErKyl7dChhKSxuLmFwcGx5TWFzayhhLGUpO2xldCByPW4uZ2V0UGVuYWx0eU4xKGUpK24uZ2V0UGVuYWx0eU4yKGUpK24uZ2V0UGVuYWx0eU4zKGUpK24uZ2V0UGVuYWx0eU40KGUpO24uYXBwbHlNYXNrKGEsZSkscjxpJiYoaT1yLG89YSl9cmV0dXJuIG99fSw1MDkzMCwoZSx0LG4pPT57bGV0IHI9ZS5yKDI0MTM3KSxvPVsxLDEsMSwxLDEsMSwxLDEsMSwxLDIsMiwxLDIsMiw0LDEsMiw0LDQsMiw0LDQsNCwyLDQsNiw1LDIsNCw2LDYsMiw1LDgsOCw0LDUsOCw4LDQsNSw4LDExLDQsOCwxMCwxMSw0LDksMTIsMTYsNCw5LDE2LDE2LDYsMTAsMTIsMTgsNiwxMCwxNywxNiw2LDExLDE2LDE5LDYsMTMsMTgsMjEsNywxNCwyMSwyNSw4LDE2LDIwLDI1LDgsMTcsMjMsMjUsOSwxNywyMywzNCw5LDE4LDI1LDMwLDEwLDIwLDI3LDMyLDEyLDIxLDI5LDM1LDEyLDIzLDM0LDM3LDEyLDI1LDM0LDQwLDEzLDI2LDM1LDQyLDE0LDI4LDM4LDQ1LDE1LDI5LDQwLDQ4LDE2LDMxLDQzLDUxLDE3LDMzLDQ1LDU0LDE4LDM1LDQ4LDU3LDE5LDM3LDUxLDYwLDE5LDM4LDUzLDYzLDIwLDQwLDU2LDY2LDIxLDQzLDU5LDcwLDIyLDQ1LDYyLDc0LDI0LDQ3LDY1LDc3LDI1LDQ5LDY4LDgxXSxpPVs3LDEwLDEzLDE3LDEwLDE2LDIyLDI4LDE1LDI2LDM2LDQ0LDIwLDM2LDUyLDY0LDI2LDQ4LDcyLDg4LDM2LDY0LDk2LDExMiw0MCw3MiwxMDgsMTMwLDQ4LDg4LDEzMiwxNTYsNjAsMTEwLDE2MCwxOTIsNzIsMTMwLDE5MiwyMjQsODAsMTUwLDIyNCwyNjQsOTYsMTc2LDI2MCwzMDgsMTA0LDE5OCwyODgsMzUyLDEyMCwyMTYsMzIwLDM4NCwxMzIsMjQwLDM2MCw0MzIsMTQ0LDI4MCw0MDgsNDgwLDE2OCwzMDgsNDQ4LDUzMiwxODAsMzM4LDUwNCw1ODgsMTk2LDM2NCw1NDYsNjUwLDIyNCw0MTYsNjAwLDcwMCwyMjQsNDQyLDY0NCw3NTAsMjUyLDQ3Niw2OTAsODE2LDI3MCw1MDQsNzUwLDkwMCwzMDAsNTYwLDgxMCw5NjAsMzEyLDU4OCw4NzAsMTA1MCwzMzYsNjQ0LDk1MiwxMTEwLDM2MCw3MDAsMTAyMCwxMjAwLDM5MCw3MjgsMTA1MCwxMjYwLDQyMCw3ODQsMTE0MCwxMzUwLDQ1MCw4MTIsMTIwMCwxNDQwLDQ4MCw4NjgsMTI5MCwxNTMwLDUxMCw5MjQsMTM1MCwxNjIwLDU0MCw5ODAsMTQ0MCwxNzEwLDU3MCwxMDM2LDE1MzAsMTgwMCw1NzAsMTA2NCwxNTkwLDE4OTAsNjAwLDExMjAsMTY4MCwxOTgwLDYzMCwxMjA0LDE3NzAsMjEwMCw2NjAsMTI2MCwxODYwLDIyMjAsNzIwLDEzMTYsMTk1MCwyMzEwLDc1MCwxMzcyLDIwNDAsMjQzMF07bi5nZXRCbG9ja3NDb3VudD1mdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlIHIuTDpyZXR1cm4gb1soZS0xKSo0KzBdO2Nhc2Ugci5NOnJldHVybiBvWyhlLTEpKjQrMV07Y2FzZSByLlE6cmV0dXJuIG9bKGUtMSkqNCsyXTtjYXNlIHIuSDpyZXR1cm4gb1soZS0xKSo0KzNdO2RlZmF1bHQ6cmV0dXJufX0sbi5nZXRUb3RhbENvZGV3b3Jkc0NvdW50PWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2Ugci5MOnJldHVybiBpWyhlLTEpKjQrMF07Y2FzZSByLk06cmV0dXJuIGlbKGUtMSkqNCsxXTtjYXNlIHIuUTpyZXR1cm4gaVsoZS0xKSo0KzJdO2Nhc2Ugci5IOnJldHVybiBpWyhlLTEpKjQrM107ZGVmYXVsdDpyZXR1cm59fX0sMzk1ODIsKGUsdCxuKT0+e2xldCByPW5ldyBVaW50OEFycmF5KDUxMiksbz1uZXcgVWludDhBcnJheSgyNTYpLGk9MTtmb3IobGV0IGU9MDtlPDI1NTtlKyspcltlXT1pLG9baV09ZSwyNTYmKGk8PD0xKSYmKGlePTI4NSk7Zm9yKGxldCBlPTI1NTtlPDUxMjtlKyspcltlXT1yW2UtMjU1XTtuLmxvZz1mdW5jdGlvbihlKXtpZihlPDEpdGhyb3cgRXJyb3IoImxvZygiK2UrIikiKTtyZXR1cm4gb1tlXX0sbi5leHA9ZnVuY3Rpb24oZSl7cmV0dXJuIHJbZV19LG4ubXVsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT1lfHwwPT09dD8wOnJbb1tlXStvW3RdXX19LDk1NzQ5LChlLHQsbik9PntsZXQgcj1lLnIoMzk1ODIpO24ubXVsPWZ1bmN0aW9uKGUsdCl7bGV0IG49bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgrdC5sZW5ndGgtMSk7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspZm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspbltvK2ldXj1yLm11bChlW29dLHRbaV0pO3JldHVybiBufSxuLm1vZD1mdW5jdGlvbihlLHQpe2xldCBuPW5ldyBVaW50OEFycmF5KGUpO2Zvcig7bi5sZW5ndGgtdC5sZW5ndGg+PTA7KXtsZXQgZT1uWzBdO2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKW5bb11ePXIubXVsKHRbb10sZSk7bGV0IG89MDtmb3IoO288bi5sZW5ndGgmJjA9PT1uW29dOylvKys7bj1uLnNsaWNlKG8pfXJldHVybiBufSxuLmdlbmVyYXRlRUNQb2x5bm9taWFsPWZ1bmN0aW9uKGUpe2xldCB0PW5ldyBVaW50OEFycmF5KFsxXSk7Zm9yKGxldCBvPTA7bzxlO28rKyl0PW4ubXVsKHQsbmV3IFVpbnQ4QXJyYXkoWzEsci5leHAobyldKSk7cmV0dXJuIHR9fSw1Njc1MCwoZSx0LG4pPT57bGV0IHI9ZS5yKDk1NzQ5KTtmdW5jdGlvbiBvKGUpe3RoaXMuZ2VuUG9seT12b2lkIDAsdGhpcy5kZWdyZWU9ZSx0aGlzLmRlZ3JlZSYmdGhpcy5pbml0aWFsaXplKHRoaXMuZGVncmVlKX1vLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3RoaXMuZGVncmVlPWUsdGhpcy5nZW5Qb2x5PXIuZ2VuZXJhdGVFQ1BvbHlub21pYWwodGhpcy5kZWdyZWUpfSxvLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuZ2VuUG9seSl0aHJvdyBFcnJvcigiRW5jb2RlciBub3QgaW5pdGlhbGl6ZWQiKTtsZXQgdD1uZXcgVWludDhBcnJheShlLmxlbmd0aCt0aGlzLmRlZ3JlZSk7dC5zZXQoZSk7bGV0IG49ci5tb2QodCx0aGlzLmdlblBvbHkpLG89dGhpcy5kZWdyZWUtbi5sZW5ndGg7aWYobz4wKXtsZXQgZT1uZXcgVWludDhBcnJheSh0aGlzLmRlZ3JlZSk7cmV0dXJuIGUuc2V0KG4sbyksZX1yZXR1cm4gbn0sdC5leHBvcnRzPW99LDczNTUxLChlLHQsbik9PntuLmlzVmFsaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKGUpJiZlPj0xJiZlPD00MH19LDI4ODIzLChlLHQsbik9PntsZXQgcj0iWzAtOV0rIixvPSIoPzpbdTMwMDAtdTMwM0ZdfFt1MzA0MC11MzA5Rl18W3UzMEEwLXUzMEZGXXxbdUZGMDAtdUZGRUZdfFt1NEUwMC11OUZBRl18W3UyNjA1LXUyNjA2XXxbdTIxOTAtdTIxOTVdfHUyMDNCfFt1MjAxMHUyMDE1dTIwMTh1MjAxOXUyMDI1dTIwMjZ1MjAxQ3UyMDFEdTIyMjV1MjI2MF18W3UwMzkxLXUwNDUxXXxbdTAwQTd1MDBBOHUwMEIxdTAwQjR1MDBEN3UwMEY3XSkrIixpPSIoPzooPyFbQS1aMC05ICQlKitcXC0uLzpdfCIrKG89by5yZXBsYWNlKC91L2csIlxcdSIpKSsiKSg/Oi58W1xyXG5dKSkrIjtuLktBTkpJPVJlZ0V4cChvLCJnIiksbi5CWVRFX0tBTkpJPVJlZ0V4cCgiW15BLVowLTkgJCUqK1xcLS4vOl0rIiwiZyIpLG4uQllURT1SZWdFeHAoaSwiZyIpLG4uTlVNRVJJQz1SZWdFeHAociwiZyIpLG4uQUxQSEFOVU1FUklDPVJlZ0V4cCgiW0EtWiAkJSorXFwtLi86XSsiLCJnIik7bGV0IGE9UmVnRXhwKCJeIitvKyIkIikscz1SZWdFeHAoIl4iK3IrIiQiKSxsPVJlZ0V4cCgiXltBLVowLTkgJCUqK1xcLS4vOl0rJCIpO24udGVzdEthbmppPWZ1bmN0aW9uKGUpe3JldHVybiBhLnRlc3QoZSl9LG4udGVzdE51bWVyaWM9ZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlKX0sbi50ZXN0QWxwaGFudW1lcmljPWZ1bmN0aW9uKGUpe3JldHVybiBsLnRlc3QoZSl9fSw3NTQwNSwoZSx0LG4pPT57bGV0IHI9ZS5yKDczNTUxKSxvPWUucigyODgyMyk7bi5OVU1FUklDPXtpZDoiTnVtZXJpYyIsYml0OjEsY2NCaXRzOlsxMCwxMiwxNF19LG4uQUxQSEFOVU1FUklDPXtpZDoiQWxwaGFudW1lcmljIixiaXQ6MixjY0JpdHM6WzksMTEsMTNdfSxuLkJZVEU9e2lkOiJCeXRlIixiaXQ6NCxjY0JpdHM6WzgsMTYsMTZdfSxuLktBTkpJPXtpZDoiS2FuamkiLGJpdDo4LGNjQml0czpbOCwxMCwxMl19LG4uTUlYRUQ9e2JpdDotMX0sbi5nZXRDaGFyQ291bnRJbmRpY2F0b3I9ZnVuY3Rpb24oZSx0KXtpZighZS5jY0JpdHMpdGhyb3cgRXJyb3IoIkludmFsaWQgbW9kZTogIitlKTtpZighci5pc1ZhbGlkKHQpKXRocm93IEVycm9yKCJJbnZhbGlkIHZlcnNpb246ICIrdCk7cmV0dXJuIHQ+PTEmJnQ8MTA/ZS5jY0JpdHNbMF06dDwyNz9lLmNjQml0c1sxXTplLmNjQml0c1syXX0sbi5nZXRCZXN0TW9kZUZvckRhdGE9ZnVuY3Rpb24oZSl7cmV0dXJuIG8udGVzdE51bWVyaWMoZSk/bi5OVU1FUklDOm8udGVzdEFscGhhbnVtZXJpYyhlKT9uLkFMUEhBTlVNRVJJQzpvLnRlc3RLYW5qaShlKT9uLktBTkpJOm4uQllURX0sbi50b1N0cmluZz1mdW5jdGlvbihlKXtpZihlJiZlLmlkKXJldHVybiBlLmlkO3Rocm93IEVycm9yKCJJbnZhbGlkIG1vZGUiKX0sbi5pc1ZhbGlkPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmJpdCYmZS5jY0JpdHN9LG4uZnJvbT1mdW5jdGlvbihlLHQpe2lmKG4uaXNWYWxpZChlKSlyZXR1cm4gZTt0cnl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IEVycm9yKCJQYXJhbSBpcyBub3QgYSBzdHJpbmciKTtzd2l0Y2goZS50b0xvd2VyQ2FzZSgpKXtjYXNlIm51bWVyaWMiOnJldHVybiBuLk5VTUVSSUM7Y2FzZSJhbHBoYW51bWVyaWMiOnJldHVybiBuLkFMUEhBTlVNRVJJQztjYXNlImthbmppIjpyZXR1cm4gbi5LQU5KSTtjYXNlImJ5dGUiOnJldHVybiBuLkJZVEU7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBtb2RlOiAiK2UpfX1jYXRjaChlKXtyZXR1cm4gdH19fSw1NzA4OSwoZSx0LG4pPT57bGV0IHI9ZS5yKDI5NjIpLG89ZS5yKDUwOTMwKSxpPWUucigyNDEzNyksYT1lLnIoNzU0MDUpLHM9ZS5yKDczNTUxKSxsPXIuZ2V0QkNIRGlnaXQoNzk3Myk7ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBhLmdldENoYXJDb3VudEluZGljYXRvcihlLHQpKzR9bi5mcm9tPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHMuaXNWYWxpZChlKT9wYXJzZUludChlLDEwKTp0fSxuLmdldENhcGFjaXR5PWZ1bmN0aW9uKGUsdCxuKXtpZighcy5pc1ZhbGlkKGUpKXRocm93IEVycm9yKCJJbnZhbGlkIFFSIENvZGUgdmVyc2lvbiIpO3ZvaWQgMD09PW4mJihuPWEuQllURSk7bGV0IGk9KHIuZ2V0U3ltYm9sVG90YWxDb2Rld29yZHMoZSktby5nZXRUb3RhbENvZGV3b3Jkc0NvdW50KGUsdCkpKjg7aWYobj09PWEuTUlYRUQpcmV0dXJuIGk7bGV0IGw9aS1jKG4sZSk7c3dpdGNoKG4pe2Nhc2UgYS5OVU1FUklDOnJldHVybiBNYXRoLmZsb29yKGwvMTAqMyk7Y2FzZSBhLkFMUEhBTlVNRVJJQzpyZXR1cm4gTWF0aC5mbG9vcihsLzExKjIpO2Nhc2UgYS5LQU5KSTpyZXR1cm4gTWF0aC5mbG9vcihsLzEzKTtjYXNlIGEuQllURTpkZWZhdWx0OnJldHVybiBNYXRoLmZsb29yKGwvOCl9fSxuLmdldEJlc3RWZXJzaW9uRm9yRGF0YT1mdW5jdGlvbihlLHQpe2xldCByLG89aS5mcm9tKHQsaS5NKTtpZihBcnJheS5pc0FycmF5KGUpKXtpZihlLmxlbmd0aD4xKXtmb3IobGV0IHQ9MTt0PD00MDt0KyspaWYoZnVuY3Rpb24oZSx0KXtsZXQgbj0wO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7bGV0IHI9YyhlLm1vZGUsdCk7bis9citlLmdldEJpdHNMZW5ndGgoKX0pLG59KGUsdCk8PW4uZ2V0Q2FwYWNpdHkodCxvLGEuTUlYRUQpKXJldHVybiB0O3JldHVybn1pZigwPT09ZS5sZW5ndGgpcmV0dXJuIDE7cj1lWzBdfWVsc2Ugcj1lO3JldHVybiBmdW5jdGlvbihlLHQscil7Zm9yKGxldCBvPTE7bzw9NDA7bysrKWlmKHQ8PW4uZ2V0Q2FwYWNpdHkobyxyLGUpKXJldHVybiBvfShyLm1vZGUsci5nZXRMZW5ndGgoKSxvKX0sbi5nZXRFbmNvZGVkQml0cz1mdW5jdGlvbihlKXtpZighcy5pc1ZhbGlkKGUpfHxlPDcpdGhyb3cgRXJyb3IoIkludmFsaWQgUVIgQ29kZSB2ZXJzaW9uIik7bGV0IHQ9ZTw8MTI7Zm9yKDtyLmdldEJDSERpZ2l0KHQpLWw+PTA7KXRePTc5NzM8PHIuZ2V0QkNIRGlnaXQodCktbDtyZXR1cm4gZTw8MTJ8dH19LDkyNTg2LChlLHQsbik9PntsZXQgcj1lLnIoMjk2Miksbz1yLmdldEJDSERpZ2l0KDEzMzUpO24uZ2V0RW5jb2RlZEJpdHM9ZnVuY3Rpb24oZSx0KXtsZXQgbj1lLmJpdDw8M3x0LGk9bjw8MTA7Zm9yKDtyLmdldEJDSERpZ2l0KGkpLW8+PTA7KWlePTEzMzU8PHIuZ2V0QkNIRGlnaXQoaSktbztyZXR1cm4objw8MTB8aSleMjE1MjJ9fSwyNDM5MiwoZSx0LG4pPT57bGV0IHI9ZS5yKDc1NDA1KTtmdW5jdGlvbiBvKGUpe3RoaXMubW9kZT1yLk5VTUVSSUMsdGhpcy5kYXRhPWUudG9TdHJpbmcoKX1vLmdldEJpdHNMZW5ndGg9ZnVuY3Rpb24oZSl7cmV0dXJuIDEwKk1hdGguZmxvb3IoZS8zKSsoZSUzP2UlMyozKzE6MCl9LG8ucHJvdG90eXBlLmdldExlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RofSxvLnByb3RvdHlwZS5nZXRCaXRzTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIG8uZ2V0Qml0c0xlbmd0aCh0aGlzLmRhdGEubGVuZ3RoKX0sby5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7bGV0IHQsbjtmb3IodD0wO3QrMzw9dGhpcy5kYXRhLmxlbmd0aDt0Kz0zKW49cGFyc2VJbnQodGhpcy5kYXRhLnN1YnN0cih0LDMpLDEwKSxlLnB1dChuLDEwKTtsZXQgcj10aGlzLmRhdGEubGVuZ3RoLXQ7cj4wJiYobj1wYXJzZUludCh0aGlzLmRhdGEuc3Vic3RyKHQpLDEwKSxlLnB1dChuLDMqcisxKSl9LHQuZXhwb3J0cz1vfSw5NTc3OCwoZSx0LG4pPT57bGV0IHI9ZS5yKDc1NDA1KSxvPVsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiICIsIiQiLCIlIiwiKiIsIisiLCItIiwiLiIsIi8iLCI6Il07ZnVuY3Rpb24gaShlKXt0aGlzLm1vZGU9ci5BTFBIQU5VTUVSSUMsdGhpcy5kYXRhPWV9aS5nZXRCaXRzTGVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVybiAxMSpNYXRoLmZsb29yKGUvMikrZSUyKjZ9LGkucHJvdG90eXBlLmdldExlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RofSxpLnByb3RvdHlwZS5nZXRCaXRzTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIGkuZ2V0Qml0c0xlbmd0aCh0aGlzLmRhdGEubGVuZ3RoKX0saS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7bGV0IHQ7Zm9yKHQ9MDt0KzI8PXRoaXMuZGF0YS5sZW5ndGg7dCs9Mil7bGV0IG49NDUqby5pbmRleE9mKHRoaXMuZGF0YVt0XSk7bis9by5pbmRleE9mKHRoaXMuZGF0YVt0KzFdKSxlLnB1dChuLDExKX10aGlzLmRhdGEubGVuZ3RoJTImJmUucHV0KG8uaW5kZXhPZih0aGlzLmRhdGFbdF0pLDYpfSx0LmV4cG9ydHM9aX0sMjg3ODUsKGUsdCxuKT0+e2xldCByPWUucig3NTQwNSk7ZnVuY3Rpb24gbyhlKXt0aGlzLm1vZGU9ci5CWVRFLCJzdHJpbmciPT10eXBlb2YgZT90aGlzLmRhdGE9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpOnRoaXMuZGF0YT1uZXcgVWludDhBcnJheShlKX1vLmdldEJpdHNMZW5ndGg9ZnVuY3Rpb24oZSl7cmV0dXJuIDgqZX0sby5wcm90b3R5cGUuZ2V0TGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGh9LG8ucHJvdG90eXBlLmdldEJpdHNMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gby5nZXRCaXRzTGVuZ3RoKHRoaXMuZGF0YS5sZW5ndGgpfSxvLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlKXtmb3IobGV0IHQ9MCxuPXRoaXMuZGF0YS5sZW5ndGg7dDxuO3QrKyllLnB1dCh0aGlzLmRhdGFbdF0sOCl9LHQuZXhwb3J0cz1vfSwxMTM4NCwoZSx0LG4pPT57bGV0IHI9ZS5yKDc1NDA1KSxvPWUucigyOTYyKTtmdW5jdGlvbiBpKGUpe3RoaXMubW9kZT1yLktBTkpJLHRoaXMuZGF0YT1lfWkuZ2V0Qml0c0xlbmd0aD1mdW5jdGlvbihlKXtyZXR1cm4gMTMqZX0saS5wcm90b3R5cGUuZ2V0TGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGh9LGkucHJvdG90eXBlLmdldEJpdHNMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gaS5nZXRCaXRzTGVuZ3RoKHRoaXMuZGF0YS5sZW5ndGgpfSxpLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlKXtsZXQgdDtmb3IodD0wO3Q8dGhpcy5kYXRhLmxlbmd0aDt0Kyspe2xldCBuPW8udG9TSklTKHRoaXMuZGF0YVt0XSk7aWYobj49MzMwODgmJm48PTQwOTU2KW4tPTMzMDg4O2Vsc2UgaWYobj49NTc0MDgmJm48PTYwMzUxKW4tPTQ5NDcyO2Vsc2UgdGhyb3cgRXJyb3IoIkludmFsaWQgU0pJUyBjaGFyYWN0ZXI6ICIrdGhpcy5kYXRhW3RdKyJcbk1ha2Ugc3VyZSB5b3VyIGNoYXJzZXQgaXMgVVRGLTgiKTtuPShuPj4+OCYyNTUpKjE5MisoMjU1Jm4pLGUucHV0KG4sMTMpfX0sdC5leHBvcnRzPWl9LDg4ODMzLChlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9e3NpbmdsZV9zb3VyY2Vfc2hvcnRlc3RfcGF0aHM6ZnVuY3Rpb24oZSx0LG4pe3ZhciBvLGksYSxzLGwsYyx1LGQ9e30sZj17fTtmW3RdPTA7dmFyIGg9ci5Qcmlvcml0eVF1ZXVlLm1ha2UoKTtmb3IoaC5wdXNoKHQsMCk7IWguZW1wdHkoKTspZm9yKGEgaW4gaT0obz1oLnBvcCgpKS52YWx1ZSxzPW8uY29zdCxsPWVbaV18fHt9KWwuaGFzT3duUHJvcGVydHkoYSkmJihjPXMrbFthXSx1PWZbYV0sKHZvaWQgMD09PWZbYV18fHU+YykmJihmW2FdPWMsaC5wdXNoKGEsYyksZFthXT1pKSk7aWYodm9pZCAwIT09biYmdm9pZCAwPT09ZltuXSl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgYSBwYXRoIGZyb20gIit0KyIgdG8gIituKyIuIik7cmV0dXJuIGR9LGV4dHJhY3Rfc2hvcnRlc3RfcGF0aF9mcm9tX3ByZWRlY2Vzc29yX2xpc3Q6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W10scj10O3I7KW4ucHVzaChyKSxlW3JdLHI9ZVtyXTtyZXR1cm4gbi5yZXZlcnNlKCksbn0sZmluZF9wYXRoOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1yLnNpbmdsZV9zb3VyY2Vfc2hvcnRlc3RfcGF0aHMoZSx0LG4pO3JldHVybiByLmV4dHJhY3Rfc2hvcnRlc3RfcGF0aF9mcm9tX3ByZWRlY2Vzc29yX2xpc3QobyxuKX0sUHJpb3JpdHlRdWV1ZTp7bWFrZTpmdW5jdGlvbihlKXt2YXIgdCxuPXIuUHJpb3JpdHlRdWV1ZSxvPXt9O2Zvcih0IGluIGU9ZXx8e30sbiluLmhhc093blByb3BlcnR5KHQpJiYob1t0XT1uW3RdKTtyZXR1cm4gby5xdWV1ZT1bXSxvLnNvcnRlcj1lLnNvcnRlcnx8bi5kZWZhdWx0X3NvcnRlcixvfSxkZWZhdWx0X3NvcnRlcjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmNvc3QtdC5jb3N0fSxwdXNoOmZ1bmN0aW9uKGUsdCl7dGhpcy5xdWV1ZS5wdXNoKHt2YWx1ZTplLGNvc3Q6dH0pLHRoaXMucXVldWUuc29ydCh0aGlzLnNvcnRlcil9LHBvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXVlLnNoaWZ0KCl9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnF1ZXVlLmxlbmd0aH19fTt0LmV4cG9ydHM9cn0sNzE5NTYsKGUsdCxuKT0+e2xldCByPWUucig3NTQwNSksbz1lLnIoMjQzOTIpLGk9ZS5yKDk1Nzc4KSxhPWUucigyODc4NSkscz1lLnIoMTEzODQpLGw9ZS5yKDI4ODIzKSxjPWUucigyOTYyKSx1PWUucig4ODgzMyk7ZnVuY3Rpb24gZChlKXtyZXR1cm4gdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUpKS5sZW5ndGh9ZnVuY3Rpb24gZihlLHQsbil7bGV0IHIsbz1bXTtmb3IoO251bGwhPT0ocj1lLmV4ZWMobikpOylvLnB1c2goe2RhdGE6clswXSxpbmRleDpyLmluZGV4LG1vZGU6dCxsZW5ndGg6clswXS5sZW5ndGh9KTtyZXR1cm4gb31mdW5jdGlvbiBoKGUpe2xldCB0LG4sbz1mKGwuTlVNRVJJQyxyLk5VTUVSSUMsZSksaT1mKGwuQUxQSEFOVU1FUklDLHIuQUxQSEFOVU1FUklDLGUpO3JldHVybiBjLmlzS2FuamlNb2RlRW5hYmxlZCgpPyh0PWYobC5CWVRFLHIuQllURSxlKSxuPWYobC5LQU5KSSxyLktBTkpJLGUpKToodD1mKGwuQllURV9LQU5KSSxyLkJZVEUsZSksbj1bXSksby5jb25jYXQoaSx0LG4pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pbmRleC10LmluZGV4fSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntkYXRhOmUuZGF0YSxtb2RlOmUubW9kZSxsZW5ndGg6ZS5sZW5ndGh9fSl9ZnVuY3Rpb24gZyhlLHQpe3N3aXRjaCh0KXtjYXNlIHIuTlVNRVJJQzpyZXR1cm4gby5nZXRCaXRzTGVuZ3RoKGUpO2Nhc2Ugci5BTFBIQU5VTUVSSUM6cmV0dXJuIGkuZ2V0Qml0c0xlbmd0aChlKTtjYXNlIHIuS0FOSkk6cmV0dXJuIHMuZ2V0Qml0c0xlbmd0aChlKTtjYXNlIHIuQllURTpyZXR1cm4gYS5nZXRCaXRzTGVuZ3RoKGUpfX1mdW5jdGlvbiBwKGUsdCl7bGV0IG4sbD1yLmdldEJlc3RNb2RlRm9yRGF0YShlKTtpZigobj1yLmZyb20odCxsKSkhPT1yLkJZVEUmJm4uYml0PGwuYml0KXRocm93IEVycm9yKCciJytlKyciIGNhbm5vdCBiZSBlbmNvZGVkIHdpdGggbW9kZSAnK3IudG9TdHJpbmcobikrIi5cbiBTdWdnZXN0ZWQgbW9kZSBpczogIityLnRvU3RyaW5nKGwpKTtzd2l0Y2gobj09PXIuS0FOSkkmJiFjLmlzS2FuamlNb2RlRW5hYmxlZCgpJiYobj1yLkJZVEUpLG4pe2Nhc2Ugci5OVU1FUklDOnJldHVybiBuZXcgbyhlKTtjYXNlIHIuQUxQSEFOVU1FUklDOnJldHVybiBuZXcgaShlKTtjYXNlIHIuS0FOSkk6cmV0dXJuIG5ldyBzKGUpO2Nhc2Ugci5CWVRFOnJldHVybiBuZXcgYShlKX19bi5mcm9tQXJyYXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2UucHVzaChwKHQsbnVsbCkpOnQuZGF0YSYmZS5wdXNoKHAodC5kYXRhLHQubW9kZSkpLGV9LFtdKX0sbi5mcm9tU3RyaW5nPWZ1bmN0aW9uKGUsdCl7bGV0IG89ZnVuY3Rpb24oZSx0KXtsZXQgbj17fSxvPXtzdGFydDp7fX0saT1bInN0YXJ0Il07Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspe2xldCBzPWVbYV0sbD1bXTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl7bGV0IGM9c1tlXSx1PSIiK2ErZTtsLnB1c2godSksblt1XT17bm9kZTpjLGxhc3RDb3VudDowfSxvW3VdPXt9O2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtsZXQgYT1pW2VdO25bYV0mJm5bYV0ubm9kZS5tb2RlPT09Yy5tb2RlPyhvW2FdW3VdPWcoblthXS5sYXN0Q291bnQrYy5sZW5ndGgsYy5tb2RlKS1nKG5bYV0ubGFzdENvdW50LGMubW9kZSksblthXS5sYXN0Q291bnQrPWMubGVuZ3RoKTooblthXSYmKG5bYV0ubGFzdENvdW50PWMubGVuZ3RoKSxvW2FdW3VdPWcoYy5sZW5ndGgsYy5tb2RlKSs0K3IuZ2V0Q2hhckNvdW50SW5kaWNhdG9yKGMubW9kZSx0KSl9fWk9bH1mb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKylvW2lbZV1dLmVuZD0wO3JldHVybnttYXA6byx0YWJsZTpufX0oZnVuY3Rpb24oZSl7bGV0IHQ9W107Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCBvPWVbbl07c3dpdGNoKG8ubW9kZSl7Y2FzZSByLk5VTUVSSUM6dC5wdXNoKFtvLHtkYXRhOm8uZGF0YSxtb2RlOnIuQUxQSEFOVU1FUklDLGxlbmd0aDpvLmxlbmd0aH0se2RhdGE6by5kYXRhLG1vZGU6ci5CWVRFLGxlbmd0aDpvLmxlbmd0aH1dKTticmVhaztjYXNlIHIuQUxQSEFOVU1FUklDOnQucHVzaChbbyx7ZGF0YTpvLmRhdGEsbW9kZTpyLkJZVEUsbGVuZ3RoOm8ubGVuZ3RofV0pO2JyZWFrO2Nhc2Ugci5LQU5KSTp0LnB1c2goW28se2RhdGE6by5kYXRhLG1vZGU6ci5CWVRFLGxlbmd0aDpkKG8uZGF0YSl9XSk7YnJlYWs7Y2FzZSByLkJZVEU6dC5wdXNoKFt7ZGF0YTpvLmRhdGEsbW9kZTpyLkJZVEUsbGVuZ3RoOmQoby5kYXRhKX1dKX19cmV0dXJuIHR9KGgoZSxjLmlzS2FuamlNb2RlRW5hYmxlZCgpKSksdCksaT11LmZpbmRfcGF0aChvLm1hcCwic3RhcnQiLCJlbmQiKSxhPVtdO2ZvcihsZXQgZT0xO2U8aS5sZW5ndGgtMTtlKyspYS5wdXNoKG8udGFibGVbaVtlXV0ubm9kZSk7cmV0dXJuIG4uZnJvbUFycmF5KGEucmVkdWNlKGZ1bmN0aW9uKGUsdCl7bGV0IG49ZS5sZW5ndGgtMT49MD9lW2UubGVuZ3RoLTFdOm51bGw7cmV0dXJuIG4mJm4ubW9kZT09PXQubW9kZT9lW2UubGVuZ3RoLTFdLmRhdGErPXQuZGF0YTplLnB1c2godCksZX0sW10pKX0sbi5yYXdTcGxpdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5mcm9tQXJyYXkoaChlLGMuaXNLYW5qaU1vZGVFbmFibGVkKCkpKX19LDkwNzI3LChlLHQsbik9PntsZXQgcj1lLnIoMjk2Miksbz1lLnIoMjQxMzcpLGk9ZS5yKDQzMjApLGE9ZS5yKDY2Njc3KSxzPWUucig4NjkyMCksbD1lLnIoNTQ0NzEpLGM9ZS5yKDk1Mjk4KSx1PWUucig1MDkzMCksZD1lLnIoNTY3NTApLGY9ZS5yKDU3MDg5KSxoPWUucig5MjU4NiksZz1lLnIoNzU0MDUpLHA9ZS5yKDcxOTU2KTtmdW5jdGlvbiBtKGUsdCxuKXtsZXQgcixvLGk9ZS5zaXplLGE9aC5nZXRFbmNvZGVkQml0cyh0LG4pO2ZvcihyPTA7cjwxNTtyKyspbz0oYT4+ciYxKT09MSxyPDY/ZS5zZXQociw4LG8sITApOnI8OD9lLnNldChyKzEsOCxvLCEwKTplLnNldChpLTE1K3IsOCxvLCEwKSxyPDg/ZS5zZXQoOCxpLXItMSxvLCEwKTpyPDk/ZS5zZXQoOCwxNS1yLTErMSxvLCEwKTplLnNldCg4LDE1LXItMSxvLCEwKTtlLnNldChpLTgsOCwxLCEwKX1uLmNyZWF0ZT1mdW5jdGlvbihlLHQpe2xldCBuLGg7aWYodm9pZCAwPT09ZXx8IiI9PT1lKXRocm93IEVycm9yKCJObyBpbnB1dCB0ZXh0Iik7bGV0IHY9by5NO3JldHVybiB2b2lkIDAhPT10JiYodj1vLmZyb20odC5lcnJvckNvcnJlY3Rpb25MZXZlbCxvLk0pLG49Zi5mcm9tKHQudmVyc2lvbiksaD1jLmZyb20odC5tYXNrUGF0dGVybiksdC50b1NKSVNGdW5jJiZyLnNldFRvU0pJU0Z1bmN0aW9uKHQudG9TSklTRnVuYykpLGZ1bmN0aW9uKGUsdCxuLG8pe2xldCBoO2lmKEFycmF5LmlzQXJyYXkoZSkpaD1wLmZyb21BcnJheShlKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7bGV0IHI9dDtpZighcil7bGV0IHQ9cC5yYXdTcGxpdChlKTtyPWYuZ2V0QmVzdFZlcnNpb25Gb3JEYXRhKHQsbil9aD1wLmZyb21TdHJpbmcoZSxyfHw0MCl9ZWxzZSB0aHJvdyBFcnJvcigiSW52YWxpZCBkYXRhIik7bGV0IHY9Zi5nZXRCZXN0VmVyc2lvbkZvckRhdGEoaCxuKTtpZighdil0aHJvdyBFcnJvcigiVGhlIGFtb3VudCBvZiBkYXRhIGlzIHRvbyBiaWcgdG8gYmUgc3RvcmVkIGluIGEgUVIgQ29kZSIpO2lmKHQpe2lmKHQ8dil0aHJvdyBFcnJvcigiXG5UaGUgY2hvc2VuIFFSIENvZGUgdmVyc2lvbiBjYW5ub3QgY29udGFpbiB0aGlzIGFtb3VudCBvZiBkYXRhLlxuTWluaW11bSB2ZXJzaW9uIHJlcXVpcmVkIHRvIHN0b3JlIGN1cnJlbnQgZGF0YSBpczogIit2KyIuXG4iKX1lbHNlIHQ9djtsZXQgaj1mdW5jdGlvbihlLHQsbil7bGV0IG89bmV3IGk7bi5mb3JFYWNoKGZ1bmN0aW9uKHQpe28ucHV0KHQubW9kZS5iaXQsNCksby5wdXQodC5nZXRMZW5ndGgoKSxnLmdldENoYXJDb3VudEluZGljYXRvcih0Lm1vZGUsZSkpLHQud3JpdGUobyl9KTtsZXQgYT0oci5nZXRTeW1ib2xUb3RhbENvZGV3b3JkcyhlKS11LmdldFRvdGFsQ29kZXdvcmRzQ291bnQoZSx0KSkqODtmb3Ioby5nZXRMZW5ndGhJbkJpdHMoKSs0PD1hJiZvLnB1dCgwLDQpO28uZ2V0TGVuZ3RoSW5CaXRzKCklOCE9MDspby5wdXRCaXQoMCk7bGV0IHM9KGEtby5nZXRMZW5ndGhJbkJpdHMoKSkvODtmb3IobGV0IGU9MDtlPHM7ZSsrKW8ucHV0KGUlMj8xNzoyMzYsOCk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtsZXQgbyxpLGE9ci5nZXRTeW1ib2xUb3RhbENvZGV3b3Jkcyh0KSxzPWEtdS5nZXRUb3RhbENvZGV3b3Jkc0NvdW50KHQsbiksbD11LmdldEJsb2Nrc0NvdW50KHQsbiksYz1hJWwsZj1sLWMsaD1NYXRoLmZsb29yKGEvbCksZz1NYXRoLmZsb29yKHMvbCkscD1nKzEsbT1oLWcsdj1uZXcgZChtKSxqPTAseT1BcnJheShsKSx3PUFycmF5KGwpLGI9MCxDPW5ldyBVaW50OEFycmF5KGUuYnVmZmVyKTtmb3IobGV0IGU9MDtlPGw7ZSsrKXtsZXQgdD1lPGY/ZzpwO3lbZV09Qy5zbGljZShqLGordCksd1tlXT12LmVuY29kZSh5W2VdKSxqKz10LGI9TWF0aC5tYXgoYix0KX1sZXQgeD1uZXcgVWludDhBcnJheShhKSxMPTA7Zm9yKG89MDtvPGI7bysrKWZvcihpPTA7aTxsO2krKylvPHlbaV0ubGVuZ3RoJiYoeFtMKytdPXlbaV1bb10pO2ZvcihvPTA7bzxtO28rKylmb3IoaT0wO2k8bDtpKyspeFtMKytdPXdbaV1bb107cmV0dXJuIHh9KG8sZSx0KX0odCxuLGgpLHk9bmV3IGEoci5nZXRTeW1ib2xTaXplKHQpKTshZnVuY3Rpb24oZSx0KXtsZXQgbj1lLnNpemUscj1sLmdldFBvc2l0aW9ucyh0KTtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl7bGV0IG89clt0XVswXSxpPXJbdF1bMV07Zm9yKGxldCB0PS0xO3Q8PTc7dCsrKWlmKCEobyt0PD0tMSkmJiEobjw9byt0KSlmb3IobGV0IHI9LTE7cjw9NztyKyspaStyPD0tMXx8bjw9aStyfHwodD49MCYmdDw9NiYmKDA9PT1yfHw2PT09cil8fHI+PTAmJnI8PTYmJigwPT09dHx8Nj09PXQpfHx0Pj0yJiZ0PD00JiZyPj0yJiZyPD00P2Uuc2V0KG8rdCxpK3IsITAsITApOmUuc2V0KG8rdCxpK3IsITEsITApKX19KHksdCk7bGV0IHc9eS5zaXplO2ZvcihsZXQgZT04O2U8dy04O2UrKyl7bGV0IHQ9ZSUyPT0wO3kuc2V0KGUsNix0LCEwKSx5LnNldCg2LGUsdCwhMCl9cmV0dXJuIWZ1bmN0aW9uKGUsdCl7bGV0IG49cy5nZXRQb3NpdGlvbnModCk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2xldCByPW5bdF1bMF0sbz1uW3RdWzFdO2ZvcihsZXQgdD0tMjt0PD0yO3QrKylmb3IobGV0IG49LTI7bjw9MjtuKyspLTI9PT10fHwyPT09dHx8LTI9PT1ufHwyPT09bnx8MD09PXQmJjA9PT1uP2Uuc2V0KHIrdCxvK24sITAsITApOmUuc2V0KHIrdCxvK24sITEsITApfX0oeSx0KSxtKHksbiwwKSx0Pj03JiZmdW5jdGlvbihlLHQpe2xldCBuLHIsbyxpPWUuc2l6ZSxhPWYuZ2V0RW5jb2RlZEJpdHModCk7Zm9yKGxldCB0PTA7dDwxODt0Kyspbj1NYXRoLmZsb29yKHQvMykscj10JTMraS04LTMsbz0oYT4+dCYxKT09MSxlLnNldChuLHIsbywhMCksZS5zZXQocixuLG8sITApfSh5LHQpLCFmdW5jdGlvbihlLHQpe2xldCBuPWUuc2l6ZSxyPS0xLG89bi0xLGk9NyxhPTA7Zm9yKGxldCBzPW4tMTtzPjA7cy09Milmb3IoNj09PXMmJnMtLTs7KXtmb3IobGV0IG49MDtuPDI7bisrKWlmKCFlLmlzUmVzZXJ2ZWQobyxzLW4pKXtsZXQgcj0hMTthPHQubGVuZ3RoJiYocj0odFthXT4+PmkmMSk9PTEpLGUuc2V0KG8scy1uLHIpLC0xPT0tLWkmJihhKyssaT03KX1pZigobys9cik8MHx8bjw9byl7by09cixyPS1yO2JyZWFrfX19KHksaiksaXNOYU4obykmJihvPWMuZ2V0QmVzdE1hc2soeSxtLmJpbmQobnVsbCx5LG4pKSksYy5hcHBseU1hc2sobyx5KSxtKHksbixvKSx7bW9kdWxlczp5LHZlcnNpb246dCxlcnJvckNvcnJlY3Rpb25MZXZlbDpuLG1hc2tQYXR0ZXJuOm8sc2VnbWVudHM6aH19KGUsbix2LGgpfX0sODM4NjMsKGUsdCxuKT0+e2Z1bmN0aW9uIHIoZSl7aWYoIm51bWJlciI9PXR5cGVvZiBlJiYoZT1lLnRvU3RyaW5nKCkpLCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBFcnJvcigiQ29sb3Igc2hvdWxkIGJlIGRlZmluZWQgYXMgaGV4IHN0cmluZyIpO2xldCB0PWUuc2xpY2UoKS5yZXBsYWNlKCIjIiwiIikuc3BsaXQoIiIpO2lmKHQubGVuZ3RoPDN8fDU9PT10Lmxlbmd0aHx8dC5sZW5ndGg+OCl0aHJvdyBFcnJvcigiSW52YWxpZCBoZXggY29sb3I6ICIrZSk7KDM9PT10Lmxlbmd0aHx8ND09PXQubGVuZ3RoKSYmKHQ9QXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSx0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm5bZSxlXX0pKSksNj09PXQubGVuZ3RoJiZ0LnB1c2goIkYiLCJGIik7bGV0IG49cGFyc2VJbnQodC5qb2luKCIiKSwxNik7cmV0dXJue3I6bj4+MjQmMjU1LGc6bj4+MTYmMjU1LGI6bj4+OCYyNTUsYToyNTUmbixoZXg6IiMiK3Quc2xpY2UoMCw2KS5qb2luKCIiKX19bi5nZXRPcHRpb25zPWZ1bmN0aW9uKGUpe2V8fChlPXt9KSxlLmNvbG9yfHwoZS5jb2xvcj17fSk7bGV0IHQ9dm9pZCAwPT09ZS5tYXJnaW58fG51bGw9PT1lLm1hcmdpbnx8ZS5tYXJnaW48MD80OmUubWFyZ2luLG49ZS53aWR0aCYmZS53aWR0aD49MjE/ZS53aWR0aDp2b2lkIDAsbz1lLnNjYWxlfHw0O3JldHVybnt3aWR0aDpuLHNjYWxlOm4/NDpvLG1hcmdpbjp0LGNvbG9yOntkYXJrOnIoZS5jb2xvci5kYXJrfHwiIzAwMDAwMGZmIiksbGlnaHQ6cihlLmNvbG9yLmxpZ2h0fHwiI2ZmZmZmZmZmIil9LHR5cGU6ZS50eXBlLHJlbmRlcmVyT3B0czplLnJlbmRlcmVyT3B0c3x8e319fSxuLmdldFNjYWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQud2lkdGgmJnQud2lkdGg+PWUrMip0Lm1hcmdpbj90LndpZHRoLyhlKzIqdC5tYXJnaW4pOnQuc2NhbGV9LG4uZ2V0SW1hZ2VXaWR0aD1mdW5jdGlvbihlLHQpe2xldCByPW4uZ2V0U2NhbGUoZSx0KTtyZXR1cm4gTWF0aC5mbG9vcigoZSsyKnQubWFyZ2luKSpyKX0sbi5xclRvSW1hZ2VEYXRhPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbz10Lm1vZHVsZXMuc2l6ZSxpPXQubW9kdWxlcy5kYXRhLGE9bi5nZXRTY2FsZShvLHIpLHM9TWF0aC5mbG9vcigobysyKnIubWFyZ2luKSphKSxsPXIubWFyZ2luKmEsYz1bci5jb2xvci5saWdodCxyLmNvbG9yLmRhcmtdO2ZvcihsZXQgdD0wO3Q8czt0KyspZm9yKGxldCBuPTA7bjxzO24rKyl7bGV0IHU9KHQqcytuKSo0LGQ9ci5jb2xvci5saWdodDt0Pj1sJiZuPj1sJiZ0PHMtbCYmbjxzLWwmJihkPWNbKyEhaVtNYXRoLmZsb29yKCh0LWwpL2EpKm8rTWF0aC5mbG9vcigobi1sKS9hKV1dKSxlW3UrK109ZC5yLGVbdSsrXT1kLmcsZVt1KytdPWQuYixlW3VdPWQuYX19fSw5NDMyNSwoZSx0LG4pPT57bGV0IHI9ZS5yKDgzODYzKTtuLnJlbmRlcj1mdW5jdGlvbihlLHQsbil7dmFyIG87bGV0IGk9bixhPXQ7dm9pZCAwIT09aXx8dCYmdC5nZXRDb250ZXh0fHwoaT10LHQ9dm9pZCAwKSx0fHwoYT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIil9Y2F0Y2goZSl7dGhyb3cgRXJyb3IoIllvdSBuZWVkIHRvIHNwZWNpZnkgYSBjYW52YXMgZWxlbWVudCIpfX0oKSksaT1yLmdldE9wdGlvbnMoaSk7bGV0IHM9ci5nZXRJbWFnZVdpZHRoKGUubW9kdWxlcy5zaXplLGkpLGw9YS5nZXRDb250ZXh0KCIyZCIpLGM9bC5jcmVhdGVJbWFnZURhdGEocyxzKTtyZXR1cm4gci5xclRvSW1hZ2VEYXRhKGMuZGF0YSxlLGkpLG89YSxsLmNsZWFyUmVjdCgwLDAsby53aWR0aCxvLmhlaWdodCksby5zdHlsZXx8KG8uc3R5bGU9e30pLG8uaGVpZ2h0PXMsby53aWR0aD1zLG8uc3R5bGUuaGVpZ2h0PXMrInB4IixvLnN0eWxlLndpZHRoPXMrInB4IixsLnB1dEltYWdlRGF0YShjLDAsMCksYX0sbi5yZW5kZXJUb0RhdGFVUkw9ZnVuY3Rpb24oZSx0LHIpe2xldCBvPXI7dm9pZCAwIT09b3x8dCYmdC5nZXRDb250ZXh0fHwobz10LHQ9dm9pZCAwKSxvfHwobz17fSk7bGV0IGk9bi5yZW5kZXIoZSx0LG8pLGE9by50eXBlfHwiaW1hZ2UvcG5nIixzPW8ucmVuZGVyZXJPcHRzfHx7fTtyZXR1cm4gaS50b0RhdGFVUkwoYSxzLnF1YWxpdHkpfX0sODc1NjYsKGUsdCxuKT0+e2xldCByPWUucig4Mzg2Myk7ZnVuY3Rpb24gbyhlLHQpe2xldCBuPWUuYS8yNTUscj10Kyc9IicrZS5oZXgrJyInO3JldHVybiBuPDE/cisiICIrdCsnLW9wYWNpdHk9Iicrbi50b0ZpeGVkKDIpLnNsaWNlKDEpKyciJzpyfWZ1bmN0aW9uIGkoZSx0LG4pe2xldCByPWUrdDtyZXR1cm4gdm9pZCAwIT09biYmKHIrPSIgIituKSxyfW4ucmVuZGVyPWZ1bmN0aW9uKGUsdCxuKXtsZXQgYT1yLmdldE9wdGlvbnModCkscz1lLm1vZHVsZXMuc2l6ZSxsPWUubW9kdWxlcy5kYXRhLGM9cysyKmEubWFyZ2luLHU9YS5jb2xvci5saWdodC5hPyI8cGF0aCAiK28oYS5jb2xvci5saWdodCwiZmlsbCIpKycgZD0iTTAgMGgnK2MrInYiK2MrJ0gweiIvPic6IiIsZD0iPHBhdGggIitvKGEuY29sb3IuZGFyaywic3Ryb2tlIikrJyBkPSInK2Z1bmN0aW9uKGUsdCxuKXtsZXQgcj0iIixvPTAsYT0hMSxzPTA7Zm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKyspe2xldCBjPU1hdGguZmxvb3IobCV0KSx1PU1hdGguZmxvb3IobC90KTtjfHxhfHwoYT0hMCksZVtsXT8ocysrLGw+MCYmYz4wJiZlW2wtMV18fChyKz1hP2koIk0iLGMrbiwuNSt1K24pOmkoIm0iLG8sMCksbz0wLGE9ITEpLGMrMTx0JiZlW2wrMV18fChyKz1pKCJoIixzKSxzPTApKTpvKyt9cmV0dXJuIHJ9KGwscyxhLm1hcmdpbikrJyIvPicsZj0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICcrKGEud2lkdGg/J3dpZHRoPSInK2Eud2lkdGgrJyIgaGVpZ2h0PSInK2Eud2lkdGgrJyIgJzoiIikrKCd2aWV3Qm94PSIwIDAgJytjKyIgIikrYysnIiBzaGFwZS1yZW5kZXJpbmc9ImNyaXNwRWRnZXMiPicrdStkKyI8L3N2Zz5cbiI7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4obnVsbCxmKSxmfX0sNDQxNTAsKGUsdCxuKT0+e2xldCByPWUucig0MDcwNCksbz1lLnIoOTA3MjcpLGk9ZS5yKDk0MzI1KSxhPWUucig4NzU2Nik7ZnVuY3Rpb24gcyhlLHQsbixpLGEpe2xldCBzPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGw9cy5sZW5ndGgsYz0iZnVuY3Rpb24iPT10eXBlb2Ygc1tsLTFdO2lmKCFjJiYhcigpKXRocm93IEVycm9yKCJDYWxsYmFjayByZXF1aXJlZCBhcyBsYXN0IGFyZ3VtZW50Iik7aWYoYyl7aWYobDwyKXRocm93IEVycm9yKCJUb28gZmV3IGFyZ3VtZW50cyBwcm92aWRlZCIpOzI9PT1sPyhhPW4sbj10LHQ9aT12b2lkIDApOjM9PT1sJiYodC5nZXRDb250ZXh0JiZ2b2lkIDA9PT1hPyhhPWksaT12b2lkIDApOihhPWksaT1uLG49dCx0PXZvaWQgMCkpfWVsc2V7aWYobDwxKXRocm93IEVycm9yKCJUb28gZmV3IGFyZ3VtZW50cyBwcm92aWRlZCIpO3JldHVybiAxPT09bD8obj10LHQ9aT12b2lkIDApOjIhPT1sfHx0LmdldENvbnRleHR8fChpPW4sbj10LHQ9dm9pZCAwKSxuZXcgUHJvbWlzZShmdW5jdGlvbihyLGEpe3RyeXtsZXQgYT1vLmNyZWF0ZShuLGkpO3IoZShhLHQsaSkpfWNhdGNoKGUpe2EoZSl9fSl9dHJ5e2xldCByPW8uY3JlYXRlKG4saSk7YShudWxsLGUocix0LGkpKX1jYXRjaChlKXthKGUpfX1uLmNyZWF0ZT1vLmNyZWF0ZSxuLnRvQ2FudmFzPXMuYmluZChudWxsLGkucmVuZGVyKSxuLnRvRGF0YVVSTD1zLmJpbmQobnVsbCxpLnJlbmRlclRvRGF0YVVSTCksbi50b1N0cmluZz1zLmJpbmQobnVsbCxmdW5jdGlvbihlLHQsbil7cmV0dXJuIGEucmVuZGVyKGUsbil9KX0sOTg5NDYsKGUsdCxuKT0+e3QuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmdldFNlbGVjdGlvbigpO2lmKCFlLnJhbmdlQ291bnQpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxuPVtdLHI9MDtyPGUucmFuZ2VDb3VudDtyKyspbi5wdXNoKGUuZ2V0UmFuZ2VBdChyKSk7c3dpdGNoKHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpKXtjYXNlIklOUFVUIjpjYXNlIlRFWFRBUkVBIjp0LmJsdXIoKTticmVhaztkZWZhdWx0OnQ9bnVsbH1yZXR1cm4gZS5yZW1vdmVBbGxSYW5nZXMoKSxmdW5jdGlvbigpeyJDYXJldCI9PT1lLnR5cGUmJmUucmVtb3ZlQWxsUmFuZ2VzKCksZS5yYW5nZUNvdW50fHxuLmZvckVhY2goZnVuY3Rpb24odCl7ZS5hZGRSYW5nZSh0KX0pLHQmJnQuZm9jdXMoKX19fSw4Mzc2MSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPWUucig5ODk0Niksbz17InRleHQvcGxhaW4iOiJUZXh0IiwidGV4dC9odG1sIjoiVXJsIixkZWZhdWx0OiJUZXh0In07dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4saSxhLHMsbCxjLHUsZCxmPSExO3R8fCh0PXt9KSxhPXQuZGVidWd8fCExO3RyeXtpZihsPXIoKSxjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksdT1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKSwoZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpLnRleHRDb250ZW50PWUsZC5hcmlhSGlkZGVuPSJ0cnVlIixkLnN0eWxlLmFsbD0idW5zZXQiLGQuc3R5bGUucG9zaXRpb249ImZpeGVkIixkLnN0eWxlLnRvcD0wLGQuc3R5bGUuY2xpcD0icmVjdCgwLCAwLCAwLCAwKSIsZC5zdHlsZS53aGl0ZVNwYWNlPSJwcmUiLGQuc3R5bGUud2Via2l0VXNlclNlbGVjdD0idGV4dCIsZC5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJ0ZXh0IixkLnN0eWxlLm1zVXNlclNlbGVjdD0idGV4dCIsZC5zdHlsZS51c2VyU2VsZWN0PSJ0ZXh0IixkLmFkZEV2ZW50TGlzdGVuZXIoImNvcHkiLGZ1bmN0aW9uKG4pe2lmKG4uc3RvcFByb3BhZ2F0aW9uKCksdC5mb3JtYXQpaWYobi5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMD09PW4uY2xpcGJvYXJkRGF0YSl7YSYmY29uc29sZS53YXJuKCJ1bmFibGUgdG8gdXNlIGUuY2xpcGJvYXJkRGF0YSIpLGEmJmNvbnNvbGUud2FybigidHJ5aW5nIElFIHNwZWNpZmljIHN0dWZmIiksd2luZG93LmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCk7dmFyIHI9b1t0LmZvcm1hdF18fG8uZGVmYXVsdDt3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKHIsZSl9ZWxzZSBuLmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCksbi5jbGlwYm9hcmREYXRhLnNldERhdGEodC5mb3JtYXQsZSk7dC5vbkNvcHkmJihuLnByZXZlbnREZWZhdWx0KCksdC5vbkNvcHkobi5jbGlwYm9hcmREYXRhKSl9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGQpLGMuc2VsZWN0Tm9kZUNvbnRlbnRzKGQpLHUuYWRkUmFuZ2UoYyksIWRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IikpdGhyb3cgRXJyb3IoImNvcHkgY29tbWFuZCB3YXMgdW5zdWNjZXNzZnVsIik7Zj0hMH1jYXRjaChyKXthJiZjb25zb2xlLmVycm9yKCJ1bmFibGUgdG8gY29weSB1c2luZyBleGVjQ29tbWFuZDogIixyKSxhJiZjb25zb2xlLndhcm4oInRyeWluZyBJRSBzcGVjaWZpYyBzdHVmZiIpO3RyeXt3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKHQuZm9ybWF0fHwidGV4dCIsZSksdC5vbkNvcHkmJnQub25Db3B5KHdpbmRvdy5jbGlwYm9hcmREYXRhKSxmPSEwfWNhdGNoKHIpe2EmJmNvbnNvbGUuZXJyb3IoInVuYWJsZSB0byBjb3B5IHVzaW5nIGNsaXBib2FyZERhdGE6ICIsciksYSYmY29uc29sZS5lcnJvcigiZmFsbGluZyBiYWNrIHRvIHByb21wdCIpLG49Im1lc3NhZ2UiaW4gdD90Lm1lc3NhZ2U6IkNvcHkgdG8gY2xpcGJvYXJkOiAje2tleX0sIEVudGVyIixpPSgvbWFjIG9zIHgvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPyLijJgiOiJDdHJsIikrIitDIixzPW4ucmVwbGFjZSgvI3tccyprZXlccyp9L2csaSksd2luZG93LnByb21wdChzLGUpfX1maW5hbGx5e3UmJigiZnVuY3Rpb24iPT10eXBlb2YgdS5yZW1vdmVSYW5nZT91LnJlbW92ZVJhbmdlKGMpOnUucmVtb3ZlQWxsUmFuZ2VzKCkpLGQmJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZCksbCgpfXJldHVybiBmfX0sNzQ4MTUsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdCxuLHIsbyxpLGEscyxsLGMsdSxkLGYsaCxnLHAsbSx2LGoseSx3LGIsQyx4LEw9ZS5pKDE4OTMyKSxPPWUuaSg0Mjc1NSksRT1lLmkoMzU3MzEpLE49ZS5pKDc4NTUpLGs9ZS5pKDQ0MTUwKSxTPWUuaSg4Mzc2MSk7ZnVuY3Rpb24gQShlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihvLGkpe2Z1bmN0aW9uIGEoZSl7dHJ5e2woci5uZXh0KGUpKX1jYXRjaChlKXtpKGUpfX1mdW5jdGlvbiBzKGUpe3RyeXtsKHIudGhyb3coZSkpfWNhdGNoKGUpe2koZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP28oZS52YWx1ZSk6KCh0PWUudmFsdWUpaW5zdGFuY2VvZiBuP3Q6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0KX0pKS50aGVuKGEscyl9bCgocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9ImZ1bmN0aW9uIj09dHlwZW9mIFN1cHByZXNzZWRFcnJvciYmU3VwcHJlc3NlZEVycm9yO3ZhciBNPSJ1Ij50eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1Ij50eXBlb2Ygd2luZG93P3dpbmRvdzplLmcsUj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuISFlKCl9Y2F0Y2goZSl7cmV0dXJuITB9fSxUPSFSKGZ1bmN0aW9uKCl7dmFyIGU9KGZ1bmN0aW9uKCl7fSkuYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBlfHxlLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pLEk9RnVuY3Rpb24ucHJvdG90eXBlLFA9SS5jYWxsLEI9VCYmSS5iaW5kLmJpbmQoUCxQKSxEPVQ/QjpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUC5hcHBseShlLGFyZ3VtZW50cyl9fSxVPUQoe30udG9TdHJpbmcpLEY9RCgiIi5zbGljZSksSD1mdW5jdGlvbihlKXtyZXR1cm4gRihVKGUpLDgsLTEpfSxXPU9iamVjdCxfPUQoIiIuc3BsaXQpLFo9UihmdW5jdGlvbigpe3JldHVybiFXKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbihlKXtyZXR1cm4iU3RyaW5nIj09PUgoZSk/XyhlLCIiKTpXKGUpfTpXLFY9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWV9LHo9VHlwZUVycm9yLCQ9ZnVuY3Rpb24oZSl7aWYoVihlKSl0aHJvdyBuZXcgeigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitlKTtyZXR1cm4gZX0sSz1mdW5jdGlvbihlKXtyZXR1cm4gWigkKGUpKX0sWT1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5NYXRoPT09TWF0aCYmZX0sSj1ZKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fFkoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fFkoIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8WSgib2JqZWN0Ij09dHlwZW9mIE0mJk0pfHxZKCJvYmplY3QiPT10eXBlb2YgTSYmTSl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkscT17ZXhwb3J0czp7fX0sRz1PYmplY3QuZGVmaW5lUHJvcGVydHksUT1mdW5jdGlvbihlLHQpe3RyeXtHKEosZSx7dmFsdWU6dCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtKW2VdPXR9cmV0dXJuIHR9LFg9Il9fY29yZS1qc19zaGFyZWRfXyIsZWU9cS5leHBvcnRzPUpbWF18fFEoWCx7fSk7KGVlLnZlcnNpb25zfHwoZWUudmVyc2lvbnM9W10pKS5wdXNoKHt2ZXJzaW9uOiIzLjQxLjAiLG1vZGU6Imdsb2JhbCIsY29weXJpZ2h0OiLCqSAyMDE0LTIwMjUgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuNDEuMC9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pO3ZhciBldD1xLmV4cG9ydHMsZW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXRbZV18fChldFtlXT10fHx7fSl9LGVyPU9iamVjdCxlbz1mdW5jdGlvbihlKXtyZXR1cm4gZXIoJChlKSl9LGVpPUQoe30uaGFzT3duUHJvcGVydHkpLGVhPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVpKGVvKGUpLHQpfSxlcz0wLGVsPU1hdGgucmFuZG9tKCksZWM9RCgxLi50b1N0cmluZyksZXU9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1lPyIiOmUpKyIpXyIrZWMoKytlcytlbCwzNil9LGVkPUoubmF2aWdhdG9yLGVmPWVkJiZlZC51c2VyQWdlbnQsZWg9ZWY/U3RyaW5nKGVmKToiIixlZz1KLnByb2Nlc3MsZXA9Si5EZW5vLGVtPWVnJiZlZy52ZXJzaW9uc3x8ZXAmJmVwLnZlcnNpb24sZXY9ZW0mJmVtLnY4O2V2JiYocj0obj1ldi5zcGxpdCgiLiIpKVswXT4wJiZuWzBdPDQ/MTorKG5bMF0rblsxXSkpLCFyJiZlaCYmKCEobj1laC5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fG5bMV0+PTc0KSYmKG49ZWgubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihyPStuWzFdKTt2YXIgZWo9cixleT1KLlN0cmluZyxldz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFSKGZ1bmN0aW9uKCl7dmFyIGU9U3ltYm9sKCJzeW1ib2wgZGV0ZWN0aW9uIik7cmV0dXJuIWV5KGUpfHwhKE9iamVjdChlKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZlaiYmZWo8NDF9KSxlYj1ldyYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixlQz1KLlN5bWJvbCxleD1lbigid2tzIiksZUw9ZWI/ZUMuZm9yfHxlQzplQyYmZUMud2l0aG91dFNldHRlcnx8ZXUsZU89ZnVuY3Rpb24oZSl7cmV0dXJuIGVhKGV4LGUpfHwoZXhbZV09ZXcmJmVhKGVDLGUpP2VDW2VdOmVMKCJTeW1ib2wuIitlKSksZXhbZV19LGVFPSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbCxlTj12b2lkIDA9PT1lRSYmdm9pZCAwIT09ZUU/ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV8fGU9PT1lRX06ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV9LGVrPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZT9udWxsIT09ZTplTihlKX0sZVM9U3RyaW5nLGVBPVR5cGVFcnJvcixlTT1mdW5jdGlvbihlKXtpZihlayhlKSlyZXR1cm4gZTt0aHJvdyBuZXcgZUEoZVMoZSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9LGVSPXt9LGVUPSFSKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSxlST1lVCYmUihmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe30sInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSksZVA9e30sZUI9Si5kb2N1bWVudCxlRD1layhlQikmJmVrKGVCLmNyZWF0ZUVsZW1lbnQpLGVVPWZ1bmN0aW9uKGUpe3JldHVybiBlRD9lQi5jcmVhdGVFbGVtZW50KGUpOnt9fSxlRj0hZVQmJiFSKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoZVUoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pLGVIPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLGVXPVQ/ZUguYmluZChlSCk6ZnVuY3Rpb24oKXtyZXR1cm4gZUguYXBwbHkoZUgsYXJndW1lbnRzKX0sZV89ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2VOKG49SltlXSk/bjp2b2lkIDA6SltlXSYmSltlXVt0XX0sZVo9RCh7fS5pc1Byb3RvdHlwZU9mKSxlVj1PYmplY3QsZXo9ZWI/ZnVuY3Rpb24oZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBlfTpmdW5jdGlvbihlKXt2YXIgdD1lXygiU3ltYm9sIik7cmV0dXJuIGVOKHQpJiZlWih0LnByb3RvdHlwZSxlVihlKSl9LGUkPVN0cmluZyxlSz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIGUkKGUpfWNhdGNoKGUpe3JldHVybiJPYmplY3QifX0sZVk9VHlwZUVycm9yLGVKPWZ1bmN0aW9uKGUpe2lmKGVOKGUpKXJldHVybiBlO3Rocm93IG5ldyBlWShlSyhlKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9LGVxPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZVt0XTtyZXR1cm4gVihuKT92b2lkIDA6ZUoobil9LGVHPVR5cGVFcnJvcixlUT1mdW5jdGlvbihlLHQpe3ZhciBuLHI7aWYoInN0cmluZyI9PT10JiZlTihuPWUudG9TdHJpbmcpJiYhZWsocj1lVyhuLGUpKXx8ZU4obj1lLnZhbHVlT2YpJiYhZWsocj1lVyhuLGUpKXx8InN0cmluZyIhPT10JiZlTihuPWUudG9TdHJpbmcpJiYhZWsocj1lVyhuLGUpKSlyZXR1cm4gcjt0aHJvdyBuZXcgZUcoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxlWD1UeXBlRXJyb3IsZTE9ZU8oInRvUHJpbWl0aXZlIiksZTA9ZnVuY3Rpb24oZSx0KXtpZighZWsoZSl8fGV6KGUpKXJldHVybiBlO3ZhciBuLHI9ZXEoZSxlMSk7aWYocil7aWYodm9pZCAwPT09dCYmKHQ9ImRlZmF1bHQiKSwhZWsobj1lVyhyLGUsdCkpfHxleihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgZVgoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT10JiYodD0ibnVtYmVyIiksZVEoZSx0KX0sZTI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTAoZSwic3RyaW5nIik7cmV0dXJuIGV6KHQpP3Q6dCsiIn0sZTM9VHlwZUVycm9yLGU4PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxlNT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGU0PSJlbnVtZXJhYmxlIixlNj0iY29uZmlndXJhYmxlIixlNz0id3JpdGFibGUiO2VQLmY9ZVQ/ZUk/ZnVuY3Rpb24oZSx0LG4pe2lmKGVNKGUpLHQ9ZTIodCksZU0obiksImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJwcm90b3R5cGUiPT09dCYmInZhbHVlImluIG4mJmU3IGluIG4mJiFuW2U3XSl7dmFyIHI9ZTUoZSx0KTtyJiZyW2U3XSYmKGVbdF09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6ZTYgaW4gbj9uW2U2XTpyW2U2XSxlbnVtZXJhYmxlOmU0IGluIG4/bltlNF06cltlNF0sd3JpdGFibGU6ITF9KX1yZXR1cm4gZTgoZSx0LG4pfTplODpmdW5jdGlvbihlLHQsbil7aWYoZU0oZSksdD1lMih0KSxlTShuKSxlRil0cnl7cmV0dXJuIGU4KGUsdCxuKX1jYXRjaChlKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgbmV3IGUzKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiBuJiYoZVt0XT1uLnZhbHVlKSxlfTt2YXIgZTk9TWF0aC5jZWlsLHRlPU1hdGguZmxvb3IsdHQ9TWF0aC50cnVuY3x8ZnVuY3Rpb24oZSl7dmFyIHQ9K2U7cmV0dXJuKHQ+MD90ZTplOSkodCl9LHRuPWZ1bmN0aW9uKGUpe3ZhciB0PStlO3JldHVybiB0IT10fHwwPT09dD8wOnR0KHQpfSx0cj1NYXRoLm1heCx0bz1NYXRoLm1pbix0aT1NYXRoLm1pbix0YT1mdW5jdGlvbihlKXt2YXIgdD10bihlKTtyZXR1cm4gdD4wP3RpKHQsMHgxZmZmZmZmZmZmZmZmZik6MH0sdHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRhKGUubGVuZ3RoKX0sdGw9ZnVuY3Rpb24oZSx0KXt2YXIgbj10bihlKTtyZXR1cm4gbjwwP3RyKG4rdCwwKTp0byhuLHQpfSx0Yz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3ZhciBvLGk9Syh0KSxhPXRzKGkpO2lmKDA9PT1hKXJldHVybiFlJiYtMTt2YXIgcz10bChyLGEpO2lmKGUmJm4hPW4pe2Zvcig7YT5zOylpZigobz1pW3MrK10pIT1vKXJldHVybiEwfWVsc2UgZm9yKDthPnM7cysrKWlmKChlfHxzIGluIGkpJiZpW3NdPT09bilyZXR1cm4gZXx8c3x8MDtyZXR1cm4hZSYmLTF9fSx0dT17aW5jbHVkZXM6dGMoITApLGluZGV4T2Y6dGMoITEpfSx0ZD17fSx0Zj10dS5pbmRleE9mLHRoPUQoW10ucHVzaCksdGc9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPUsoZSksbz0wLGk9W107Zm9yKG4gaW4gcikhZWEodGQsbikmJmVhKHIsbikmJnRoKGksbik7Zm9yKDt0Lmxlbmd0aD5vOyllYShyLG49dFtvKytdKSYmKH50ZihpLG4pfHx0aChpLG4pKTtyZXR1cm4gaX0sdHA9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXSx0bT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7cmV0dXJuIHRnKGUsdHApfTtlUi5mPWVUJiYhZUk/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24oZSx0KXtlTShlKTtmb3IodmFyIG4scj1LKHQpLG89dG0odCksaT1vLmxlbmd0aCxhPTA7aT5hOyllUC5mKGUsbj1vW2ErK10scltuXSk7cmV0dXJuIGV9O3ZhciB0dj1lXygiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKSx0aj1lbigia2V5cyIpLHR5PWZ1bmN0aW9uKGUpe3JldHVybiB0altlXXx8KHRqW2VdPWV1KGUpKX0sdHc9InByb3RvdHlwZSIsdGI9InNjcmlwdCIsdEM9dHkoIklFX1BST1RPIiksdHg9ZnVuY3Rpb24oKXt9LHRMPWZ1bmN0aW9uKGUpe3JldHVybiI8Iit0YisiPiIrZSsiPC8iK3RiKyI+In0sdE89ZnVuY3Rpb24oZSl7ZS53cml0ZSh0TCgiIikpLGUuY2xvc2UoKTt2YXIgdD1lLnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIGU9bnVsbCx0fSx0RT1mdW5jdGlvbigpe3ZhciBlLHQ9ZVUoImlmcmFtZSIpO3JldHVybiB0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHR2LmFwcGVuZENoaWxkKHQpLHQuc3JjPVN0cmluZygiamF2YSIrdGIrIjoiKSwoZT10LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSxlLndyaXRlKHRMKCJkb2N1bWVudC5GPU9iamVjdCIpKSxlLmNsb3NlKCksZS5GfSx0Tj1mdW5jdGlvbigpe3RyeXtvPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKGUpe310Tj0idSI+dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmbz90TyhvKTp0RSgpOnRPKG8pO2Zvcih2YXIgZT10cC5sZW5ndGg7ZS0tOylkZWxldGUgdE5bdHddW3RwW2VdXTtyZXR1cm4gdE4oKX07dGRbdENdPSEwO3ZhciB0az1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybiBudWxsIT09ZT8odHhbdHddPWVNKGUpLG49bmV3IHR4LHR4W3R3XT1udWxsLG5bdENdPWUpOm49dE4oKSx2b2lkIDA9PT10P246ZVIuZihuLHQpfSx0Uz1lUC5mLHRBPWVPKCJ1bnNjb3BhYmxlcyIpLHRNPUFycmF5LnByb3RvdHlwZTt2b2lkIDA9PT10TVt0QV0mJnRTKHRNLHRBLHtjb25maWd1cmFibGU6ITAsdmFsdWU6dGsobnVsbCl9KTt2YXIgdFI9ZnVuY3Rpb24oZSl7dE1bdEFdW2VdPSEwfSx0VD17fSx0ST1KLldlYWtNYXAsdFA9ZU4odEkpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKHRJKSksdEI9ZnVuY3Rpb24oZSx0KXtyZXR1cm57ZW51bWVyYWJsZTohKDEmZSksY29uZmlndXJhYmxlOiEoMiZlKSx3cml0YWJsZTohKDQmZSksdmFsdWU6dH19LHREPWVUP2Z1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVAuZihlLHQsdEIoMSxuKSl9OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVt0XT1uLGV9LHRVPXEuZXhwb3J0cyx0Rj0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLHRIPUouVHlwZUVycm9yLHRXPUouV2Vha01hcDtpZih0UHx8dFUuc3RhdGUpe3ZhciB0Xz10VS5zdGF0ZXx8KHRVLnN0YXRlPW5ldyB0Vyk7dF8uZ2V0PXRfLmdldCx0Xy5oYXM9dF8uaGFzLHRfLnNldD10Xy5zZXQsaT1mdW5jdGlvbihlLHQpe2lmKHRfLmhhcyhlKSl0aHJvdyBuZXcgdEgodEYpO3JldHVybiB0LmZhY2FkZT1lLHRfLnNldChlLHQpLHR9LGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHRfLmdldChlKXx8e319LHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRfLmhhcyhlKX19ZWxzZXt2YXIgdFo9dHkoInN0YXRlIik7dGRbdFpdPSEwLGk9ZnVuY3Rpb24oZSx0KXtpZihlYShlLHRaKSl0aHJvdyBuZXcgdEgodEYpO3JldHVybiB0LmZhY2FkZT1lLHREKGUsdFosdCksdH0sYT1mdW5jdGlvbihlKXtyZXR1cm4gZWEoZSx0Wik/ZVt0Wl06e319LHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGVhKGUsdFopfX12YXIgdFY9aSx0ej1hLHQkPWZ1bmN0aW9uKGUpe3JldHVybiBzKGUpP2EoZSk6aShlLHt9KX0sdEs9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuO2lmKCFlayh0KXx8KG49YSh0KSkudHlwZSE9PWUpdGhyb3cgbmV3IHRIKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrZSsiIHJlcXVpcmVkIik7cmV0dXJuIG59fSx0WT17fSx0Sj17fSx0cT17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx0Rz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3RKLmY9dEcmJiF0cS5jYWxsKHsxOjJ9LDEpP2Z1bmN0aW9uKGUpe3ZhciB0PXRHKHRoaXMsZSk7cmV0dXJuISF0JiZ0LmVudW1lcmFibGV9OnRxO3ZhciB0UT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3RZLmY9ZVQ/dFE6ZnVuY3Rpb24oZSx0KXtpZihlPUsoZSksdD1lMih0KSxlRil0cnl7cmV0dXJuIHRRKGUsdCl9Y2F0Y2goZSl7fWlmKGVhKGUsdCkpcmV0dXJuIHRCKCFlVyh0Si5mLGUsdCksZVt0XSl9O3ZhciB0WD17ZXhwb3J0czp7fX0sdDE9RnVuY3Rpb24ucHJvdG90eXBlLHQwPWVUJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHQyPWVhKHQxLCJuYW1lIiksdDM9dDImJighZVR8fGVUJiZ0MCh0MSwibmFtZSIpLmNvbmZpZ3VyYWJsZSksdDg9e1BST1BFUjp0MiYmInNvbWV0aGluZyI9PT0oZnVuY3Rpb24oKXt9KS5uYW1lLENPTkZJR1VSQUJMRTp0M30sdDU9cS5leHBvcnRzLHQ0PUQoRnVuY3Rpb24udG9TdHJpbmcpO2VOKHQ1Lmluc3BlY3RTb3VyY2UpfHwodDUuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gdDQoZSl9KTt2YXIgdDY9dDUuaW5zcGVjdFNvdXJjZSx0Nz10OC5DT05GSUdVUkFCTEUsdDk9U3RyaW5nLG5lPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxudD1EKCIiLnNsaWNlKSxubj1EKCIiLnJlcGxhY2UpLG5yPUQoW10uam9pbiksbm89ZVQmJiFSKGZ1bmN0aW9uKCl7cmV0dXJuIDghPT1uZShmdW5jdGlvbigpe30sImxlbmd0aCIse3ZhbHVlOjh9KS5sZW5ndGh9KSxuaT1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIiksbmE9dFguZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7IlN5bWJvbCgiPT09bnQodDkodCksMCw3KSYmKHQ9IlsiK25uKHQ5KHQpLC9eU3ltYm9sXCgoW14pXSopXCkuKiQvLCIkMSIpKyJdIiksbiYmbi5nZXR0ZXImJih0PSJnZXQgIit0KSxuJiZuLnNldHRlciYmKHQ9InNldCAiK3QpLCghZWEoZSwibmFtZSIpfHx0NyYmZS5uYW1lIT09dCkmJihlVD9uZShlLCJuYW1lIix7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KTplLm5hbWU9dCksbm8mJm4mJmVhKG4sImFyaXR5IikmJmUubGVuZ3RoIT09bi5hcml0eSYmbmUoZSwibGVuZ3RoIix7dmFsdWU6bi5hcml0eX0pO3RyeXtuJiZlYShuLCJjb25zdHJ1Y3RvciIpJiZuLmNvbnN0cnVjdG9yP2VUJiZuZShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOmUucHJvdG90eXBlJiYoZS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChlKXt9dmFyIHI9dCQoZSk7cmV0dXJuIGVhKHIsInNvdXJjZSIpfHwoci5zb3VyY2U9bnIobmksInN0cmluZyI9PXR5cGVvZiB0P3Q6IiIpKSxlfTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9bmEoZnVuY3Rpb24oKXtyZXR1cm4gZU4odGhpcykmJnR6KHRoaXMpLnNvdXJjZXx8dDYodGhpcyl9LCJ0b1N0cmluZyIpO3ZhciBucz10WC5leHBvcnRzLG5sPWZ1bmN0aW9uKGUsdCxuLHIpe3J8fChyPXt9KTt2YXIgbz1yLmVudW1lcmFibGUsaT12b2lkIDAhPT1yLm5hbWU/ci5uYW1lOnQ7aWYoZU4obikmJm5zKG4saSxyKSxyLmdsb2JhbClvP2VbdF09bjpRKHQsbik7ZWxzZXt0cnl7ci51bnNhZmU/ZVt0XSYmKG89ITApOmRlbGV0ZSBlW3RdfWNhdGNoKGUpe31vP2VbdF09bjplUC5mKGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohci5ub25Db25maWd1cmFibGUsd3JpdGFibGU6IXIubm9uV3JpdGFibGV9KX1yZXR1cm4gZX0sbmM9e30sbnU9dHAuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtuYy5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gdGcoZSxudSl9O3ZhciBuZD17fTtuZC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIG5mPUQoW10uY29uY2F0KSxuaD1lXygiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24oZSl7dmFyIHQ9bmMuZihlTShlKSksbj1uZC5mO3JldHVybiBuP25mKHQsbihlKSk6dH0sbmc9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uaCh0KSxvPWVQLmYsaT10WS5mLGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIHM9clthXTtlYShlLHMpfHxuJiZlYShuLHMpfHxvKGUscyxpKHQscykpfX0sbnA9LyN8XC5wcm90b3R5cGVcLi8sbm09ZnVuY3Rpb24oZSx0KXt2YXIgbj1ualtudihlKV07cmV0dXJuIG49PT1ud3x8biE9PW55JiYoZU4odCk/Uih0KTohIXQpfSxudj1ubS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKG5wLCIuIikudG9Mb3dlckNhc2UoKX0sbmo9bm0uZGF0YT17fSxueT1ubS5OQVRJVkU9Ik4iLG53PW5tLlBPTFlGSUxMPSJQIixuYj10WS5mLG5DPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGksYSxzPWUudGFyZ2V0LGw9ZS5nbG9iYWwsYz1lLnN0YXQ7aWYobj1sP0o6Yz9KW3NdfHxRKHMse30pOkpbc10mJkpbc10ucHJvdG90eXBlKWZvcihyIGluIHQpe2lmKGk9dFtyXSxvPWUuZG9udENhbGxHZXRTZXQ/KGE9bmIobixyKSkmJmEudmFsdWU6bltyXSwhbm0obD9yOnMrKGM/Ii4iOiIjIikrcixlLmZvcmNlZCkmJnZvaWQgMCE9PW8pe2lmKHR5cGVvZiBpPT10eXBlb2Ygbyljb250aW51ZTtuZyhpLG8pfShlLnNoYW18fG8mJm8uc2hhbSkmJnREKGksInNoYW0iLCEwKSxubChuLHIsaSxlKX19LG54PSFSKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IGUpIT09ZS5wcm90b3R5cGV9KSxuTD10eSgiSUVfUFJPVE8iKSxuTz1PYmplY3QsbkU9bk8ucHJvdG90eXBlLG5OPW54P25PLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3ZhciB0PWVvKGUpO2lmKGVhKHQsbkwpKXJldHVybiB0W25MXTt2YXIgbj10LmNvbnN0cnVjdG9yO3JldHVybiBlTihuKSYmdCBpbnN0YW5jZW9mIG4/bi5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIG5PP25FOm51bGx9LG5rPWVPKCJpdGVyYXRvciIpLG5TPSExO1tdLmtleXMmJigibmV4dCJpbih1PVtdLmtleXMoKSk/KGM9bk4obk4odSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJihsPWMpOm5TPSEwKSwoIWVrKGwpfHxSKGZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGxbbmtdLmNhbGwoZSkhPT1lfSkpJiYobD17fSksZU4obFtua10pfHxubChsLG5rLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTt2YXIgbkE9bCxuTT1uUyxuUj1lUC5mLG5UPWVPKCJ0b1N0cmluZ1RhZyIpLG5JPWZ1bmN0aW9uKGUsdCxuKXtlJiYhbiYmKGU9ZS5wcm90b3R5cGUpLGUmJiFlYShlLG5UKSYmblIoZSxuVCx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnR9KX0sblA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbkI9U3RyaW5nLG5EPVR5cGVFcnJvcixuVT1mdW5jdGlvbihlLHQsbil7dHJ5e3JldHVybiBEKGVKKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KVtuXSkpfWNhdGNoKGUpe319LG5GPWZ1bmN0aW9uKGUpe2lmKGVrKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt0aHJvdyBuZXcgbkQoIkNhbid0IHNldCAiK25CKGUpKyIgYXMgYSBwcm90b3R5cGUiKX0sbkg9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIGUsdD0hMSxuPXt9O3RyeXsoZT1uVShPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkobixbXSksdD1uIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goZSl7fXJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiAkKG4pLG5GKHIpLGVrKG4pJiYodD9lKG4scik6bi5fX3Byb3RvX189ciksbn19KCk6dm9pZCAwKSxuVz1mdW5jdGlvbihlLHQsbixyKXt2YXIgbz10KyIgSXRlcmF0b3IiO3JldHVybiBlLnByb3RvdHlwZT10ayhuQSx7bmV4dDp0QigrIXIsbil9KSxuSShlLG8sITEpLHRUW29dPW5QLGV9LG5fPXQ4LlBST1BFUixuWj10OC5DT05GSUdVUkFCTEUsblY9bkEsbno9bk0sbiQ9ZU8oIml0ZXJhdG9yIiksbks9ImtleXMiLG5ZPSJ2YWx1ZXMiLG5KPSJlbnRyaWVzIixucT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxuRz1lUC5mLG5RPWZ1bmN0aW9uKGUsdCl7cmV0dXJue3ZhbHVlOmUsZG9uZTp0fX0sblg9IkFycmF5IEl0ZXJhdG9yIixuMT10SyhuWCksbjA9ZnVuY3Rpb24oZSx0LG4scixvKXtuVyhuLHQscik7dmFyIGksYSxzLGw9ZnVuY3Rpb24oZSl7aWYoZT09PW8mJmYpcmV0dXJuIGY7aWYoIW56JiZlJiZlIGluIHUpcmV0dXJuIHVbZV07c3dpdGNoKGUpe2Nhc2Ugbks6Y2FzZSBuWTpjYXNlIG5KOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzLGUpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyl9fSxjPSExLHU9ZS5wcm90b3R5cGUsZD11W24kXXx8dVsiQEBpdGVyYXRvciJdfHxvJiZ1W29dLGY9IW56JiZkfHxsKG8pLGg9IkFycmF5Ij09PXQmJnUuZW50cmllc3x8ZDtpZihoJiYoaT1uTihoLmNhbGwobmV3IGUpKSkhPT1PYmplY3QucHJvdG90eXBlJiZpLm5leHQmJihuTihpKSE9PW5WJiYobkg/bkgoaSxuVik6ZU4oaVtuJF0pfHxubChpLG4kLG5xKSksbkkoaSx0KyIgSXRlcmF0b3IiLCEwKSksbl8mJm89PT1uWSYmZCYmZC5uYW1lIT09blkmJihuWj90RCh1LCJuYW1lIixuWSk6KGM9ITAsZj1mdW5jdGlvbigpe3JldHVybiBlVyhkLHRoaXMpfSkpLG8paWYodm9pZChhPXt2YWx1ZXM6bChuWSksa2V5czpsKG5LKSxlbnRyaWVzOmwobkopfSkpZm9yKHMgaW4gYSkhbnomJiFjJiZzIGluIHV8fG5sKHUscyxhW3NdKTtlbHNlIG5DKHt0YXJnZXQ6dCxwcm90bzohMCxmb3JjZWQ6bnp8fGN9LGEpO3JldHVybiB1W24kXSE9PWYmJm5sKHUsbiQsZix7bmFtZTpvfSksdFRbdF09ZixhfShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKGUsdCl7dFYodGhpcyx7dHlwZTpuWCx0YXJnZXQ6SyhlKSxpbmRleDowLGtpbmQ6dH0pfSxmdW5jdGlvbigpe3ZhciBlPW4xKHRoaXMpLHQ9ZS50YXJnZXQsbj1lLmluZGV4Kys7aWYoIXR8fG4+PXQubGVuZ3RoKXJldHVybiBlLnRhcmdldD1udWxsLG5RKHZvaWQgMCwhMCk7c3dpdGNoKGUua2luZCl7Y2FzZSJrZXlzIjpyZXR1cm4gblEobiwhMSk7Y2FzZSJ2YWx1ZXMiOnJldHVybiBuUSh0W25dLCExKX1yZXR1cm4gblEoW24sdFtuXV0sITEpfSwidmFsdWVzIiksbjI9dFQuQXJndW1lbnRzPXRULkFycmF5O2lmKHRSKCJrZXlzIiksdFIoInZhbHVlcyIpLHRSKCJlbnRyaWVzIiksZVQmJiJ2YWx1ZXMiIT09bjIubmFtZSl0cnl7bkcobjIsIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKGUpe312YXIgbjM9T2JqZWN0LmFzc2lnbixuOD1PYmplY3QuZGVmaW5lUHJvcGVydHksbjU9RChbXS5jb25jYXQpLG40PSFuM3x8UihmdW5jdGlvbigpe2lmKGVUJiYxIT09bjMoe2I6MX0sbjMobjgoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe244KHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIGU9e30sdD17fSxuPVN5bWJvbCgiYXNzaWduIGRldGVjdGlvbiIpLHI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gZVtuXT03LHIuc3BsaXQoIiIpLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT1lfSksNyE9PW4zKHt9LGUpW25dfHx0bShuMyh7fSx0KSkuam9pbigiIikhPT1yfSk/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZW8oZSkscj1hcmd1bWVudHMubGVuZ3RoLG89MSxpPW5kLmYsYT10Si5mO3I+bzspZm9yKHZhciBzLGw9Wihhcmd1bWVudHNbbysrXSksYz1pP241KHRtKGwpLGkobCkpOnRtKGwpLHU9Yy5sZW5ndGgsZD0wO3U+ZDspcz1jW2QrK10sKCFlVHx8ZVcoYSxsLHMpKSYmKG5bc109bFtzXSk7cmV0dXJuIG59Om4zO25DKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxhcml0eToyLGZvcmNlZDpPYmplY3QuYXNzaWduIT09bjR9LHthc3NpZ246bjR9KTt2YXIgbjY9ZVUoInNwYW4iKS5jbGFzc0xpc3Qsbjc9bjYmJm42LmNvbnN0cnVjdG9yJiZuNi5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsbjk9bjc9PT1PYmplY3QucHJvdG90eXBlP3ZvaWQgMDpuNyxyZT17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH0scnQ9ZU8oIml0ZXJhdG9yIikscm49bjAudmFsdWVzLHJyPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoZVtydF0hPT1ybil0cnl7dEQoZSxydCxybil9Y2F0Y2godCl7ZVtydF09cm59aWYobkkoZSx0LCEwKSxyZVt0XSl7Zm9yKHZhciBuIGluIG4wKWlmKGVbbl0hPT1uMFtuXSl0cnl7dEQoZSxuLG4wW25dKX1jYXRjaCh0KXtlW25dPW4wW25dfX19fTtmb3IodmFyIHJvIGluIHJlKXJyKEpbcm9dJiZKW3JvXS5wcm90b3R5cGUscm8pO3JyKG45LCJET01Ub2tlbkxpc3QiKTtsZXQgcmk9KCk9PigwLEwuanN4cykoInN2ZyIsT2JqZWN0LmFzc2lnbih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIxNiIsZmlsbDoiI0MxQzFDMSJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiJ9KV19KSkscmE9KHtvbkNsaWNrOmV9KT0+KDAsTC5qc3gpKCJidXR0b24iLE9iamVjdC5hc3NpZ24oe29uQ2xpY2s6ZSxjbGFzc05hbWU6ImNsb3NlLWJ1dHRvbiJ9LHtjaGlsZHJlbjooMCxMLmpzeCkocmkse30pfSkpLHJzPSh7dGl0bGU6ZSxvbkNsb3NlTW9kYWw6dH0pPT57bGV0IG49IkdldCBhIFdhbGxldCI9PT1lPyIgLW9wZW4iOiIiO3JldHVybigwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJud3MtbW9kYWwtaGVhZGVyIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoImgzIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6YG1pZGRsZVRpdGxlICR7bn1gfSx7Y2hpbGRyZW46ZX0pKSwoMCxMLmpzeCkocmEse29uQ2xpY2s6dH0pXX0pKX0scmw9KCk9PigwLEwuanN4KSgic3ZnIixPYmplY3QuYXNzaWduKHt3aWR0aDoiOCIsaGVpZ2h0OiIxNCIsdmlld0JveDoiMCAwIDggMTQiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoInBhdGgiLHtkOiJNNyAxM0wxIDdMNyAxIixzdHJva2U6IiM2NDk0RUUiLHN0cm9rZVdpZHRoOiIxLjUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSl9KSkscmM9KHtvbkNsaWNrOmV9KT0+KDAsTC5qc3gpKCJidXR0b24iLE9iamVjdC5hc3NpZ24oe29uQ2xpY2s6ZSxjbGFzc05hbWU6ImJhY2stYnV0dG9uIn0se2NoaWxkcmVuOigwLEwuanN4KShybCx7fSl9KSkscnU9KHtzZWxlY3RvcjplLG9uQmFjazp0LG9uQ2xvc2VNb2RhbDpufSk9PigwLEwuanN4cykoRS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJud3MtbW9kYWwtaGVhZGVyLXdyYXBwZXIifSx7Y2hpbGRyZW46WygwLEwuanN4KShyYyx7b25DbGljazp0fSksKDAsTC5qc3gpKHJzLHt0aXRsZToiWW91IE11c3QgQ2hhbmdlIHRoZSBOZXR3b3JrIixvbkNsb3NlTW9kYWw6bn0pXX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJzd2l0Y2gtbmV0d29yay1tZXNzYWdlLXdyYXBwZXIifSx7Y2hpbGRyZW46KDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImNvbnRlbnQifSx7Y2hpbGRyZW46WygwLEwuanN4cykoInAiLHtjaGlsZHJlbjpbIldlJ3ZlIGRldGVjdGVkIHRoYXQgeW91IG5lZWQgdG8gY2hhbmdlIHlvdXIgd2FsbGV0J3MgbmV0d29yayB0byIsKDAsTC5qc3gpKCJzdHJvbmciLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibmV0d29yay1pZCJ9LHtjaGlsZHJlbjpgICR7ZS5vcHRpb25zLm5ldHdvcmsubmV0d29ya0lkfWB9KSksIiAiLCJmb3IgdGhpcyBkQXBwLiJdfSksKDAsTC5qc3gpKCJwIix7Y2hpbGRyZW46IlNvbWUgd2FsbGV0cyBtYXkgbm90IHN1cHBvcnQgY2hhbmdpbmcgbmV0d29ya3MuIElmIHlvdSBjYW4gbm90IGNoYW5nZSBuZXR3b3JrcyB5b3UgbWF5IGNvbnNpZGVyIHN3aXRjaGluZyB0byBhbm90aGVyIHdhbGxldC4ifSldfSkpfSkpXX0pO3ZhciByZD1lTygidG9TdHJpbmdUYWciKSxyZj17fTtyZltyZF09InoiO3ZhciByaD0iW29iamVjdCB6XSI9PT1TdHJpbmcocmYpLHJnPWVPKCJ0b1N0cmluZ1RhZyIpLHJwPU9iamVjdCxybT0iQXJndW1lbnRzIj09PUgoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxydj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaChlKXt9fSxyaj1yaD9IOmZ1bmN0aW9uKGUpe3ZhciB0LG4scjtyZXR1cm4gdm9pZCAwPT09ZT8iVW5kZWZpbmVkIjpudWxsPT09ZT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihuPXJ2KHQ9cnAoZSkscmcpKT9uOnJtP0godCk6Ik9iamVjdCI9PT0ocj1IKHQpKSYmZU4odC5jYWxsZWUpPyJBcmd1bWVudHMiOnJ9LHJ5PVN0cmluZyxydz1mdW5jdGlvbihlKXtpZigiU3ltYm9sIj09PXJqKGUpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4gcnkoZSl9LHJiPXRYLmV4cG9ydHMsckM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLmdldCYmcmIobi5nZXQsdCx7Z2V0dGVyOiEwfSksbi5zZXQmJnJiKG4uc2V0LHQse3NldHRlcjohMH0pLGVQLmYoZSx0LG4pfSxyeD1KLlN5bWJvbCxyTD1yeCYmcngucHJvdG90eXBlO2lmKGVUJiZlTihyeCkmJighKCJkZXNjcmlwdGlvbiJpbiByTCl8fHZvaWQgMCE9PXJ4KCkuZGVzY3JpcHRpb24pKXt2YXIgck89e30sckU9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6cncoYXJndW1lbnRzWzBdKSx0PWVaKHJMLHRoaXMpP25ldyByeChlKTp2b2lkIDA9PT1lP3J4KCk6cngoZSk7cmV0dXJuIiI9PT1lJiYock9bdF09ITApLHR9O25nKHJFLHJ4KSxyRS5wcm90b3R5cGU9ckwsckwuY29uc3RydWN0b3I9ckU7dmFyIHJOPSJTeW1ib2woZGVzY3JpcHRpb24gZGV0ZWN0aW9uKSI9PT1TdHJpbmcocngoImRlc2NyaXB0aW9uIGRldGVjdGlvbiIpKSxyaz1EKHJMLnZhbHVlT2YpLHJTPUQockwudG9TdHJpbmcpLHJBPS9eU3ltYm9sXCgoLiopXClbXildKyQvLHJNPUQoIiIucmVwbGFjZSksclI9RCgiIi5zbGljZSk7ckMockwsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBlPXJrKHRoaXMpO2lmKGVhKHJPLGUpKXJldHVybiIiO3ZhciB0PXJTKGUpLG49ck4/clIodCw3LC0xKTpyTSh0LHJBLCIkMSIpO3JldHVybiIiPT09bj92b2lkIDA6bn19KSxuQyh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohMH0se1N5bWJvbDpyRX0pfXZhciByVD10dS5pbmNsdWRlcztuQyh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOlIoZnVuY3Rpb24oKXtyZXR1cm4hWyxdLmluY2x1ZGVzKCl9KX0se2luY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiByVCh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLHRSKCJpbmNsdWRlcyIpO3ZhciByST1UeXBlRXJyb3IsclA9IlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiLHJCPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4scixvKXt2YXIgaT1lbyh0KSxhPVooaSkscz10cyhpKTtpZihlSihuKSwwPT09cyYmcjwyKXRocm93IG5ldyBySShyUCk7dmFyIGw9ZT9zLTE6MCxjPWU/LTE6MTtpZihyPDIpZm9yKDs7KXtpZihsIGluIGEpe289YVtsXSxsKz1jO2JyZWFrfWlmKGwrPWMsZT9sPDA6czw9bCl0aHJvdyBuZXcgckkoclApfWZvcig7ZT9sPj0wOnM+bDtsKz1jKWwgaW4gYSYmKG89bihvLGFbbF0sbCxpKSk7cmV0dXJuIG99fSxyRD17bGVmdDpyQighMSkscmlnaHQ6ckIoITApfSxyVT1mdW5jdGlvbihlLHQpe3ZhciBuPVtdW2VdO3JldHVybiEhbiYmUihmdW5jdGlvbigpe24uY2FsbChudWxsLHR8fGZ1bmN0aW9uKCl7cmV0dXJuIDF9LDEpfSl9LHJGPWZ1bmN0aW9uKGUpe3JldHVybiBlaC5zbGljZSgwLGUubGVuZ3RoKT09PWV9LHJIPXJGKCJCdW4vIik/IkJVTiI6ckYoIkNsb3VkZmxhcmUtV29ya2VycyIpPyJDTE9VREZMQVJFIjpyRigiRGVuby8iKT8iREVOTyI6ckYoIk5vZGUuanMvIik/Ik5PREUiOkouQnVuJiYic3RyaW5nIj09dHlwZW9mIEJ1bi52ZXJzaW9uPyJCVU4iOkouRGVubyYmIm9iamVjdCI9PXR5cGVvZiBEZW5vLnZlcnNpb24/IkRFTk8iOiJwcm9jZXNzIj09PUgoSi5wcm9jZXNzKT8iTk9ERSI6Si53aW5kb3cmJkouZG9jdW1lbnQ/IkJST1dTRVIiOiJSRVNUIixyVz0iTk9ERSI9PT1ySCxyXz1yRC5sZWZ0O25DKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXJXJiZlaj43OSYmZWo8ODN8fCFyVSgicmVkdWNlIil9LHtyZWR1Y2U6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcl8odGhpcyxlLHQsdD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pO3ZhciByWj1UeXBlRXJyb3IsclY9RChbXS5zbGljZSkscno9TWF0aC5mbG9vcixyJD1mdW5jdGlvbihlLHQpe3ZhciBuPWUubGVuZ3RoO2lmKG48OClmb3IodmFyIHIsbyxpPTE7aTxuOyl7Zm9yKG89aSxyPWVbaV07byYmdChlW28tMV0scik+MDspZVtvXT1lWy0tb107byE9PWkrKyYmKGVbb109cil9ZWxzZSBmb3IodmFyIGE9cnoobi8yKSxzPXIkKHJWKGUsMCxhKSx0KSxsPXIkKHJWKGUsYSksdCksYz1zLmxlbmd0aCx1PWwubGVuZ3RoLGQ9MCxmPTA7ZDxjfHxmPHU7KWVbZCtmXT1kPGMmJmY8dT8wPj10KHNbZF0sbFtmXSk/c1tkKytdOmxbZisrXTpkPGM/c1tkKytdOmxbZisrXTtyZXR1cm4gZX0scks9ZWgubWF0Y2goL2ZpcmVmb3hcLyhcZCspL2kpLHJZPSEhcksmJityS1sxXSxySj0vTVNJRXxUcmlkZW50Ly50ZXN0KGVoKSxycT1laC5tYXRjaCgvQXBwbGVXZWJLaXRcLyhcZCspXC4vKSxyRz0hIXJxJiYrcnFbMV0sclE9ZnVuY3Rpb24oZSx0KXtpZighZGVsZXRlIGVbdF0pdGhyb3cgbmV3IHJaKCJDYW5ub3QgZGVsZXRlIHByb3BlcnR5ICIrZUsodCkrIiBvZiAiK2VLKGUpKX0sclg9W10scjE9RChyWC5zb3J0KSxyMD1EKHJYLnB1c2gpLHIyPVIoZnVuY3Rpb24oKXtyWC5zb3J0KHZvaWQgMCl9KSxyMz1SKGZ1bmN0aW9uKCl7clguc29ydChudWxsKX0pLHI4PXJVKCJzb3J0IikscjU9IVIoZnVuY3Rpb24oKXtpZihlailyZXR1cm4gZWo8NzA7aWYoIXJZfHwhKHJZPjMpKXtpZihySilyZXR1cm4hMDtpZihyRylyZXR1cm4gckc8NjAzO3ZhciBlLHQsbixyLG89IiI7Zm9yKGU9NjU7ZTw3NjtlKyspe3N3aXRjaCh0PVN0cmluZy5mcm9tQ2hhckNvZGUoZSksZSl7Y2FzZSA2NjpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA3MjpuPTM7YnJlYWs7Y2FzZSA2ODpjYXNlIDcxOm49NDticmVhaztkZWZhdWx0Om49Mn1mb3Iocj0wO3I8NDc7cisrKXJYLnB1c2goe2s6dCtyLHY6bn0pfWZvcihyWC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudi1lLnZ9KSxyPTA7cjxyWC5sZW5ndGg7cisrKXQ9clhbcl0uay5jaGFyQXQoMCksby5jaGFyQXQoby5sZW5ndGgtMSkhPT10JiYobys9dCk7cmV0dXJuIkRHQkVGSEFDSUpLIiE9PW99fSk7bkMoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpyMnx8IXIzfHwhcjh8fCFyNX0se3NvcnQ6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZSYmZUooZSk7dmFyIHQsbixyPWVvKHRoaXMpO2lmKHI1KXJldHVybiB2b2lkIDA9PT1lP3IxKHIpOnIxKHIsZSk7dmFyIG89W10saT10cyhyKTtmb3Iobj0wO248aTtuKyspbiBpbiByJiZyMChvLHJbbl0pO2ZvcihyJChvLGZ1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMD09PW4/LTE6dm9pZCAwPT09dD8xOnZvaWQgMCE9PWU/K2UodCxuKXx8MDpydyh0KT5ydyhuKT8xOi0xfSksdD10cyhvKSxuPTA7bjx0OylyW25dPW9bbisrXTtmb3IoO248aTspclEocixuKyspO3JldHVybiByfX0pO3ZhciByND1lTygibWF0Y2giKSxyNj1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gZWsoZSkmJih2b2lkIDAhPT0odD1lW3I0XSk/ISF0OiJSZWdFeHAiPT09SChlKSl9LHI3PVR5cGVFcnJvcixyOT1lTygibWF0Y2giKSxvZT1mdW5jdGlvbihlKXtpZihyNihlKSl0aHJvdyBuZXcgcjcoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiBlfSxvdD1EKCIiLmluZGV4T2YpO25DKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFmdW5jdGlvbihlKXt2YXIgdD0vLi87dHJ5eyIvLi8iW2VdKHQpfWNhdGNoKG4pe3RyeXtyZXR1cm4gdFtyOV09ITEsIi8uLyJbZV0odCl9Y2F0Y2goZSl7fX1yZXR1cm4hMX0oImluY2x1ZGVzIil9LHtpbmNsdWRlczpmdW5jdGlvbihlKXtyZXR1cm4hIX5vdChydygkKHRoaXMpKSxydyhvZShlKSksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pO2xldCBvbj0oKT0+KDAsTC5qc3hzKSgic3ZnIixPYmplY3QuYXNzaWduKHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoInBhdGgiLHtkOiJNNC45NTIxNSAxNi4zNTM2TDEwLjIxNTIgNS44NTY1N0MxMC45NTMxIDQuMzg0ODEgMTMuMDUzOCA0LjM4NTE5IDEzLjc5MTIgNS44NTcyM0wxOS4wNDk0IDE2LjM1NDNDMTkuNzE1NiAxNy42ODQxIDE4Ljc0ODYgMTkuMjUgMTcuMjYxMiAxOS4yNUg2Ljc0MDAxQzUuMjUyMjggMTkuMjUgNC4yODUzNSAxNy42ODM1IDQuOTUyMTUgMTYuMzUzNloiLHN0cm9rZToiI0U2QjczRSIsc3Ryb2tlV2lkdGg6IjEuNSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNMTIgMTBWMTIiLHN0cm9rZToiI0U2QjczRSIsc3Ryb2tlV2lkdGg6IjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTEyLjUgMTZDMTIuNSAxNi4yNzYxIDEyLjI3NjEgMTYuNSAxMiAxNi41QzExLjcyMzkgMTYuNSAxMS41IDE2LjI3NjEgMTEuNSAxNkMxMS41IDE1LjcyMzkgMTEuNzIzOSAxNS41IDEyIDE1LjVDMTIuMjc2MSAxNS41IDEyLjUgMTUuNzIzOSAxMi41IDE2WiIsc3Ryb2tlOiIjRTZCNzNFIn0pXX0pKSxvcj0oe3NlbGVjdG9yOmUsaGFuZGxlV2FsbGV0Q2xpY2s6dH0pPT57bGV0W24scl09KDAsRS51c2VTdGF0ZSkoW10pLFtvLGldPSgwLEUudXNlU3RhdGUpKFtdKSxbYSxzXT0oMCxFLnVzZVN0YXRlKShbXSksW2wsY109KDAsRS51c2VTdGF0ZSkoIiIpO2Z1bmN0aW9uIHUobil7cmV0dXJuIG4ucmVkdWNlKChyLG8saSk9PntsZXR7c2VsZWN0ZWRXYWxsZXRJZDphfT1lLnN0b3JlLmdldFN0YXRlKCkse25hbWU6cyxkZXNjcmlwdGlvbjp1LGljb25Vcmw6ZCxkZXByZWNhdGVkOmZ9PW8ubWV0YWRhdGEsaD1vLmlkPT09YTtyZXR1cm4gci5wdXNoKCgwLEwuanN4cykoImxpIixPYmplY3QuYXNzaWduKHt0YWJJbmRleDowLGNsYXNzTmFtZTpgc2luZ2xlLXdhbGxldCAke2w9PT1vLmlkPyJzZWxlY3RlZC13YWxsZXQiOiIifSAke2g/ImNvbm5lY3RlZC13YWxsZXQiOiIifSAke2Y/ImRlcHJlY2F0ZWQtd2FsbGV0IjoiIn0gc2lkZWJhciAke28uaWR9YCxvbkNsaWNrOigpPT4idGVzdG5ldCI9PT1lLm9wdGlvbnMubmV0d29yay5uZXR3b3JrSWQmJiJoZXJlLXdhbGxldCI9PT1vLmlkP3ZvaWQgYWxlcnQoIkhlcmUgV2FsbGV0IGlzIG5vdCBzdXBwb3J0ZWQgb24gdGVzdG5ldCIpOihvLmlkPT09bltpXS5pZCYmYyhvLmlkKSx0KG8pKX0se2NoaWxkcmVuOlsoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJpY29uIn0se2NoaWxkcmVuOigwLEwuanN4KSgiaW1nIix7c3JjOmQsYWx0OnN9KX0pKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29udGVudCJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToidGl0bGUifSx7Y2hpbGRyZW46c30pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJkZXNjcmlwdGlvbiJ9LHtjaGlsZHJlbjp1fSkpXX0pKSxmJiYoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJ3YXJuaW5nLXRyaWFuZ2xlIn0se2NoaWxkcmVuOigwLEwuanN4KShvbix7fSl9KSldfSksby5pZCkpLHJ9LFtdKX1yZXR1cm4oMCxFLnVzZUVmZmVjdCkoKCk9PntsZXQgdD1lLnN0b3JlLm9ic2VydmFibGUuc3Vic2NyaWJlKHQ9PntsZXR7c2VsZWN0ZWRXYWxsZXRJZDpufT1lLnN0b3JlLmdldFN0YXRlKCk7biYmYyhuKTtsZXQgbz10Lm1vZHVsZXMuZmlsdGVyKGU9PiJpbnN0YW50LWxpbmsiIT09ZS50eXBlfHxuPT09ZS5pZCk7aWYoZS5vcHRpb25zLm9wdGltaXplV2FsbGV0T3JkZXIpe3QubW9kdWxlcy5zb3J0KChlLHQpPT5lLm1ldGFkYXRhLmRlcHJlY2F0ZWQ9PT10Lm1ldGFkYXRhLmRlcHJlY2F0ZWQ/MDplLm1ldGFkYXRhLmRlcHJlY2F0ZWQ/MTotMSksdC5tb2R1bGVzLnNvcnQoKGUsdCk9PnQubWV0YWRhdGEuYXZhaWxhYmxlPT09ZS5tZXRhZGF0YS5hdmFpbGFibGU/MDp0Lm1ldGFkYXRhLmF2YWlsYWJsZT8xOi0xKTtsZXQgbj1bXSxyPVtdO28uZm9yRWFjaCh0PT57ZS5zdG9yZS5nZXRTdGF0ZSgpLnJlY2VudGx5U2lnbmVkSW5XYWxsZXRzLmluY2x1ZGVzKHQuaWQpP3IucHVzaCh0KTpuLnB1c2godCl9KSxpKHIpLHMobil9ZS5vcHRpb25zLnJhbmRvbWl6ZVdhbGxldE9yZGVyP3Ioby5zb3J0KCgpPT5NYXRoLnJhbmRvbSgpLS41KSk6cihvKX0pO3JldHVybigpPT50LnVuc3Vic2NyaWJlKCl9LFtdKSwoMCxFLnVzZUVmZmVjdCkoKCk9PntsZXR7cmVjZW50bHlTaWduZWRJbldhbGxldHM6dH09ZS5zdG9yZS5nZXRTdGF0ZSgpO3QubGVuZ3RoJiZjKHRbMF0pfSxbZS5zdG9yZV0pLCgwLEwuanN4KSgiZGl2Iix7Y2hpbGRyZW46KDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToid2FsbGV0LW9wdGlvbnMtd3JhcHBlciJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJvcHRpb25zLWxpc3QifSx7Y2hpbGRyZW46ZS5vcHRpb25zLm9wdGltaXplV2FsbGV0T3JkZXImJmUuc3RvcmUuZ2V0U3RhdGUoKS5yZWNlbnRseVNpZ25lZEluV2FsbGV0cy5sZW5ndGg+MD8oMCxMLmpzeHMpKEwuRnJhZ21lbnQse2NoaWxkcmVuOlt1KG8pLHUoYSldfSk6dShuKX0pKX0pKX0pfSxvbz0oKT0+KDAsTC5qc3hzKSgic3ZnIixPYmplY3QuYXNzaWduKHt3aWR0aDoiMjEiLGhlaWdodDoiMjAiLHZpZXdCb3g6IjAgMCAyMSAyMCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoInBhdGgiLHtkOiJNMTAuNTAwMSAxOC4zMzMzQzE1LjEwMjUgMTguMzMzMyAxOC44MzM0IDE0LjYwMjMgMTguODMzNCA5Ljk5OTk2QzE4LjgzMzQgNS4zOTc1OSAxNS4xMDI1IDEuNjY2NjMgMTAuNTAwMSAxLjY2NjYzQzUuODk3NzEgMS42NjY2MyAyLjE2Njc1IDUuMzk3NTkgMi4xNjY3NSA5Ljk5OTk2QzIuMTY2NzUgMTQuNjAyMyA1Ljg5NzcxIDE4LjMzMzMgMTAuNTAwMSAxOC4zMzMzWiIsc3Ryb2tlOiIjQ0U1QTZGIixzdHJva2VXaWR0aDoiMiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNMTMgNy41TDggMTIuNSIsc3Ryb2tlOiIjQ0U1QTZGIixzdHJva2VXaWR0aDoiMiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNOCA3LjVMMTMgMTIuNSIsc3Ryb2tlOiIjQ0U1QTZGIixzdHJva2VXaWR0aDoiMiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KV19KSksb2k9KCk9PigwLEwuanN4cykoInN2ZyIsT2JqZWN0LmFzc2lnbih7d2lkdGg6IjIxIixoZWlnaHQ6IjIwIix2aWV3Qm94OiIwIDAgMjEgMjAiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTE4LjgzMzMgOS4yMzMzVjkuOTk5OTdDMTguODMyMyAxMS43OTcgMTguMjUwNCAxMy41NDU1IDE3LjE3NDQgMTQuOTg0OEMxNi4wOTg0IDE2LjQyNDEgMTQuNTg2IDE3LjQ3NyAxMi44NjI4IDE3Ljk4NjZDMTEuMTM5NSAxOC40OTYxIDkuMjk3NjggMTguNDM0OSA3LjYxMjAyIDE3LjgxMjFDNS45MjYzNiAxNy4xODk0IDQuNDg3MTcgMTYuMDM4NCAzLjUwOTA5IDE0LjUzMDlDMi41MzEwMSAxMy4wMjMzIDIuMDY2NDUgMTEuMjQgMi4xODQ2OSA5LjQ0NjlDMi4zMDI5MyA3LjY1Mzc3IDIuOTk3NjMgNS45NDY5MSA0LjE2NTE5IDQuNTgwODZDNS4zMzI3NSAzLjIxNDgyIDYuOTEwNjEgMi4yNjI3OSA4LjY2MzQ1IDEuODY2NzZDMTAuNDE2MyAxLjQ3MDczIDEyLjI1MDIgMS42NTE5MiAxMy44OTE2IDIuMzgzMyIsc3Ryb2tlOiIjNEZEOThGIixzdHJva2VXaWR0aDoiMiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNMTguODMzMyAzLjMzMzM3TDEwLjUgMTEuNjc1TDggOS4xNzUwNCIsc3Ryb2tlOiIjNEZEOThGIixzdHJva2VXaWR0aDoiMiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KV19KSksb2E9KCk9PigwLEwuanN4KSgic3ZnIixPYmplY3QuYXNzaWduKHt3aWR0aDoiMTQiLGhlaWdodDoiMTIiLHZpZXdCb3g6IjAgMCAxNCAxMiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0se2NoaWxkcmVuOigwLEwuanN4KSgicGF0aCIse2Q6Ik02LjkxMzAxIDExLjAyMDJDNi45MTMwMSAxMS4xODY2IDYuODQ2OSAxMS4zNDYyIDYuNzI5MjEgMTEuNDYzOUM2LjYxMTUzIDExLjU4MTYgNi40NTE5MiAxMS42NDc3IDYuMjg1NDkgMTEuNjQ3N0MzLjExMjczIDExLjY0NzcgMC41MTU2MjUgOS4xMzM0MyAwLjUxNTYyNSA2QzAuNTE1NjI1IDIuODY2NTcgMy4xMTI3MyAwLjM1MjI5NSA2LjI4NTQ5IDAuMzUyMjk1QzguODgzNDMgMC4zNTIyOTUgMTEuMDk1NyAyLjAzODI0IDExLjgxMTkgNC4zNjkyOEwxMi4zMTY0IDMuNTE1ODVDMTIuNDAxMSAzLjM3MjUgMTIuNTM5MiAzLjI2ODY0IDEyLjcwMDQgMy4yMjcxNEMxMi44NjE2IDMuMTg1NjQgMTMuMDMyOCAzLjIwOTg4IDEzLjE3NjEgMy4yOTQ1NEMxMy4zMTk1IDMuMzc5MiAxMy40MjMzIDMuNTE3MzMgMTMuNDY0OCAzLjY3ODU2QzEzLjUwNjMgMy44Mzk3OSAxMy40ODIxIDQuMDEwOSAxMy4zOTc0IDQuMTU0MjVMMTIuMDMzNiA2LjQ1OTM1QzExLjk1MDEgNi42MDA3NSAxMS44MTQ1IDYuNzAzNzkgMTEuNjU1OSA2Ljc0NjMzQzExLjQ5NzIgNi43ODg4OCAxMS4zMjgzIDYuNzY3NTUgMTEuMTg1MiA2LjY4NjkzTDguODI0MDMgNS4zNTU3NEM4Ljc1MjIyIDUuMzE1MjUgOC42ODkxIDUuMjYxMDIgOC42MzgyNSA1LjE5NjEzQzguNTg3NDEgNS4xMzEyNSA4LjU0OTg0IDUuMDU2OTggOC41Mjc3IDQuOTc3NThDOC41MDU1NiA0Ljg5ODE3IDguNDk5MjcgNC44MTUxOSA4LjUwOTIgNC43MzMzNUM4LjUxOTEzIDQuNjUxNTIgOC41NDUwOCA0LjU3MjQ0IDguNTg1NTcgNC41MDA2NEM4LjYyNjA2IDQuNDI4ODMgOC42ODAyOSA0LjM2NTcxIDguNzQ1MTggNC4zMTQ4NkM4LjgxMDA3IDQuMjY0MDIgOC44ODQzMyA0LjIyNjQ1IDguOTYzNzMgNC4yMDQzMUM5LjA0MzE0IDQuMTgyMTcgOS4xMjYxMyA0LjE3NTg4IDkuMjA3OTYgNC4xODU4MUM5LjI4OTc5IDQuMTk1NzQgOS4zNjg4NyA0LjIyMTY5IDkuNDQwNjcgNC4yNjIxOEwxMC42NzIzIDQuOTU2NjRDMTAuMTkyIDMuMDQyMjggOC40MjA3NCAxLjYwNzM0IDYuMjg2MzIgMS42MDczNEMzLjc3NzkxIDEuNjA3MzQgMS43NzA2NyAzLjU4NzggMS43NzA2NyA2QzEuNzcwNjcgOC40MTIyIDMuNzc3OTEgMTAuMzkyNyA2LjI4NTQ5IDEwLjM5MjdDNi40NTE5MiAxMC4zOTI3IDYuNjExNTMgMTAuNDU4OCA2LjcyOTIxIDEwLjU3NjVDNi44NDY5IDEwLjY5NDEgNi45MTMwMSAxMC44NTM4IDYuOTEzMDEgMTEuMDIwMloiLGZpbGw6IndoaXRlIn0pfSkpLG9zPSh7bW9kdWxlOmUsbWVzc2FnZTp0LGVycjpuLG9uUmV0cnk6cn0pPT4oMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJjb25uZWN0aW9uIGNvbm5lY3RpbmctZGV0YWlscyJ9LHtjaGlsZHJlbjpuPygwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJlcnJvci13cmFwcGVyIn0se2NoaWxkcmVuOlsobnVsbD09ZT92b2lkIDA6ZS5tZXRhZGF0YS5hdmFpbGFibGUpJiYoMCxMLmpzeHMpKCJidXR0b24iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibG9hZGluZy1kb3RzIixvbkNsaWNrOnJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKG9hLHt9KSwoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5yZXRyeSIpXX0pKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiZXJyb3ItZmxvYXRpbmcifSx7Y2hpbGRyZW46WygwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJlcnJvciJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKG9vLHt9KSwoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLndhbGxldC5jb25uZWN0aW9uRmFpbGVkIildfSkpLCgwLEwuanN4KSgicCIse2NoaWxkcmVuOnR9KV19KSldfSkpOigwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6InN1Y2Nlc3MifSx7Y2hpbGRyZW46KDAsTC5qc3hzKSgiYnV0dG9uIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImxvYWRpbmctZG90cyIsb25DbGljazpyfSx7Y2hpbGRyZW46WygwLE4udHJhbnNsYXRlKSgibW9kYWwud2FsbGV0LmNvbm5lY3Rpb25TdWNjZXNzZnVsIiksKDAsTC5qc3gpKG9pLHt9KV19KSl9KSl9KSksb2w9KHttZXNzYWdlOmUsbW9kdWxlOnQsb25CYWNrOm59KT0+KDAsTC5qc3hzKShFLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsTC5qc3gpKHJzLHt0aXRsZToiIixvbkNsb3NlTW9kYWw6KCk9Pm4oITEpfSksKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiYWxlcnQtbWVzc2FnZSBjb25uZWN0aW5nLXdyYXBwZXIgY29ubmVjdGluZy13cmFwcGVyLWVyciJ9LHtjaGlsZHJlbjooMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29udGVudCJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiaWNvbiJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoImltZyIse3NyYzpudWxsPT10P3ZvaWQgMDp0Lm1ldGFkYXRhLmljb25VcmwsYWx0Om51bGw9PXQ/dm9pZCAwOnQubWV0YWRhdGEubmFtZX0pfSkpLCgwLEwuanN4KSgiaDMiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29ubmVjdGluZy1uYW1lIn0se2NoaWxkcmVuOm51bGw9PXQ/dm9pZCAwOnQubWV0YWRhdGEubmFtZX0pKSxudWxsIT09ZSYmKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29ubmVjdGluZy1tZXNzYWdlIn0se2NoaWxkcmVuOigwLEwuanN4KSgic3BhbiIse2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwud2FsbGV0LmNvbm5lY3Rpb25Ob3RTdWNjZXNzZnVsIil9KX0pKSwoMCxMLmpzeCkob3Mse21vZHVsZTp0LG1lc3NhZ2U6ZSxlcnI6bnVsbCE9PWUsb25SZXRyeTooKT0+e24oITApfX0pXX0pKX0pKV19KTt2YXIgb2M9ZU8oInNwZWNpZXMiKSxvdT1UeXBlRXJyb3Isb2Q9ZnVuY3Rpb24oKXt9LG9mPWVfKCJSZWZsZWN0IiwiY29uc3RydWN0Iiksb2g9L15ccyooPzpjbGFzc3xmdW5jdGlvbilcYi8sb2c9RChvaC5leGVjKSxvcD0hb2gudGVzdChvZCksb209ZnVuY3Rpb24oZSl7aWYoIWVOKGUpKXJldHVybiExO3RyeXtyZXR1cm4gb2Yob2QsW10sZSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSxvdj1mdW5jdGlvbihlKXtpZighZU4oZSkpcmV0dXJuITE7c3dpdGNoKHJqKGUpKXtjYXNlIkFzeW5jRnVuY3Rpb24iOmNhc2UiR2VuZXJhdG9yRnVuY3Rpb24iOmNhc2UiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiI6cmV0dXJuITF9dHJ5e3JldHVybiBvcHx8ISFvZyhvaCx0NihlKSl9Y2F0Y2goZSl7cmV0dXJuITB9fTtvdi5zaGFtPSEwO3ZhciBvaj0hb2Z8fFIoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gb20ob20uY2FsbCl8fCFvbShPYmplY3QpfHwhb20oZnVuY3Rpb24oKXtlPSEwfSl8fGV9KT9vdjpvbSxveT1UeXBlRXJyb3Isb3c9ZnVuY3Rpb24oZSl7aWYob2ooZSkpcmV0dXJuIGU7dGhyb3cgbmV3IG95KGVLKGUpKyIgaXMgbm90IGEgY29uc3RydWN0b3IiKX0sb2I9ZU8oInNwZWNpZXMiKSxvQz1GdW5jdGlvbi5wcm90b3R5cGUsb3g9b0MuYXBwbHksb0w9b0MuY2FsbCxvTz0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuYXBwbHl8fChUP29MLmJpbmQob3gpOmZ1bmN0aW9uKCl7cmV0dXJuIG9MLmFwcGx5KG94LGFyZ3VtZW50cyl9KSxvRT1mdW5jdGlvbihlKXtpZigiRnVuY3Rpb24iPT09SChlKSlyZXR1cm4gRChlKX0sb049b0Uob0UuYmluZCksb2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZUooZSksdm9pZCAwPT09dD9lOlQ/b04oZSx0KTpmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHQsYXJndW1lbnRzKX19LG9TPVR5cGVFcnJvcixvQT0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChlaCksb009ZnVuY3Rpb24oZSx0KXtpZihlPHQpdGhyb3cgbmV3IG9TKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO3JldHVybiBlfSxvUj1KLnNldEltbWVkaWF0ZSxvVD1KLmNsZWFySW1tZWRpYXRlLG9JPUoucHJvY2VzcyxvUD1KLkRpc3BhdGNoLG9CPUouRnVuY3Rpb24sb0Q9Si5NZXNzYWdlQ2hhbm5lbCxvVT1KLlN0cmluZyxvRj0wLG9IPXt9LG9XPSJvbnJlYWR5c3RhdGVjaGFuZ2UiO1IoZnVuY3Rpb24oKXtkPUoubG9jYXRpb259KTt2YXIgb189ZnVuY3Rpb24oZSl7aWYoZWEob0gsZSkpe3ZhciB0PW9IW2VdO2RlbGV0ZSBvSFtlXSx0KCl9fSxvWj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtvXyhlKX19LG9WPWZ1bmN0aW9uKGUpe29fKGUuZGF0YSl9LG96PWZ1bmN0aW9uKGUpe0oucG9zdE1lc3NhZ2Uob1UoZSksZC5wcm90b2NvbCsiLy8iK2QuaG9zdCl9O29SJiZvVHx8KG9SPWZ1bmN0aW9uKGUpe29NKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIHQ9ZU4oZSk/ZTpvQihlKSxuPXJWKGFyZ3VtZW50cywxKTtyZXR1cm4gb0hbKytvRl09ZnVuY3Rpb24oKXtvTyh0LHZvaWQgMCxuKX0sZihvRiksb0Z9LG9UPWZ1bmN0aW9uKGUpe2RlbGV0ZSBvSFtlXX0sclc/Zj1mdW5jdGlvbihlKXtvSS5uZXh0VGljayhvWihlKSl9Om9QJiZvUC5ub3c/Zj1mdW5jdGlvbihlKXtvUC5ub3cob1ooZSkpfTpvRCYmIW9BPyhnPShoPW5ldyBvRCkucG9ydDIsaC5wb3J0MS5vbm1lc3NhZ2U9b1YsZj1vayhnLnBvc3RNZXNzYWdlLGcpKTpKLmFkZEV2ZW50TGlzdGVuZXImJmVOKEoucG9zdE1lc3NhZ2UpJiYhSi5pbXBvcnRTY3JpcHRzJiZkJiYiZmlsZToiIT09ZC5wcm90b2NvbCYmIVIob3opPyhmPW96LEouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsb1YsITEpKTpmPW9XIGluIGVVKCJzY3JpcHQiKT9mdW5jdGlvbihlKXt0di5hcHBlbmRDaGlsZChlVSgic2NyaXB0IikpW29XXT1mdW5jdGlvbigpe3R2LnJlbW92ZUNoaWxkKHRoaXMpLG9fKGUpfX06ZnVuY3Rpb24oZSl7c2V0VGltZW91dChvWihlKSwwKX0pO3ZhciBvJD1vUixvSz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG9ZPWZ1bmN0aW9uKCl7dGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGx9O29ZLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGUpe3ZhciB0PXtpdGVtOmUsbmV4dDpudWxsfSxuPXRoaXMudGFpbDtuP24ubmV4dD10OnRoaXMuaGVhZD10LHRoaXMudGFpbD10fSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhlYWQ7aWYoZSlyZXR1cm4gbnVsbD09PSh0aGlzLmhlYWQ9ZS5uZXh0KSYmKHRoaXMudGFpbD1udWxsKSxlLml0ZW19fTt2YXIgb0o9L2lwYWR8aXBob25lfGlwb2QvaS50ZXN0KGVoKSYmInUiPnR5cGVvZiBQZWJibGUsb3E9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChlaCksb0c9byQsb1E9Si5NdXRhdGlvbk9ic2VydmVyfHxKLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsb1g9Si5kb2N1bWVudCxvMT1KLnByb2Nlc3MsbzA9Si5Qcm9taXNlLG8yPWZ1bmN0aW9uKGUpe2lmKCFlVClyZXR1cm4gSltlXTt2YXIgdD1vSyhKLGUpO3JldHVybiB0JiZ0LnZhbHVlfSgicXVldWVNaWNyb3Rhc2siKTtpZighbzIpe3ZhciBvMz1uZXcgb1ksbzg9ZnVuY3Rpb24oKXt2YXIgZSx0O2ZvcihyVyYmKGU9bzEuZG9tYWluKSYmZS5leGl0KCk7dD1vMy5nZXQoKTspdHJ5e3QoKX1jYXRjaChlKXt0aHJvdyBvMy5oZWFkJiZwKCksZX1lJiZlLmVudGVyKCl9O29BfHxyV3x8b3F8fCFvUXx8IW9YPyFvSiYmbzAmJm8wLnJlc29sdmU/KChqPW8wLnJlc29sdmUodm9pZCAwKSkuY29uc3RydWN0b3I9bzAseT1vayhqLnRoZW4saikscD1mdW5jdGlvbigpe3kobzgpfSk6clc/cD1mdW5jdGlvbigpe28xLm5leHRUaWNrKG84KX06KG9HPW9rKG9HLEopLHA9ZnVuY3Rpb24oKXtvRyhvOCl9KToobT0hMCx2PW9YLmNyZWF0ZVRleHROb2RlKCIiKSxuZXcgb1EobzgpLm9ic2VydmUodix7Y2hhcmFjdGVyRGF0YTohMH0pLHA9ZnVuY3Rpb24oKXt2LmRhdGE9bT0hbX0pLG8yPWZ1bmN0aW9uKGUpe28zLmhlYWR8fHAoKSxvMy5hZGQoZSl9fXZhciBvNT1vMixvND1mdW5jdGlvbihlKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOmUoKX19Y2F0Y2goZSl7cmV0dXJue2Vycm9yOiEwLHZhbHVlOmV9fX0sbzY9Si5Qcm9taXNlO282JiZvNi5wcm90b3R5cGU7dmFyIG83PWVPKCJzcGVjaWVzIiksbzk9ITEsaWU9ZU4oSi5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLGl0PXtDT05TVFJVQ1RPUjpubSgiUHJvbWlzZSIsZnVuY3Rpb24oKXt2YXIgZT10NihvNiksdD1lIT09U3RyaW5nKG82KTtpZighdCYmNjY9PT1lailyZXR1cm4hMDtpZighZWp8fGVqPDUxfHwhL25hdGl2ZSBjb2RlLy50ZXN0KGUpKXt2YXIgbj1uZXcgbzYoZnVuY3Rpb24oZSl7ZSgxKX0pLHI9ZnVuY3Rpb24oZSl7ZShmdW5jdGlvbigpe30sZnVuY3Rpb24oKXt9KX07aWYoKG4uY29uc3RydWN0b3I9e30pW283XT1yLCEobzk9bi50aGVuKGZ1bmN0aW9uKCl7fSlpbnN0YW5jZW9mIHIpKXJldHVybiEwfXJldHVybiF0JiYoIkJST1dTRVIiPT09ckh8fCJERU5PIj09PXJIKSYmIWllfSksUkVKRUNUSU9OX0VWRU5UOmllLFNVQkNMQVNTSU5HOm85fSxpcj17fSxpbz1UeXBlRXJyb3IsaWk9ZnVuY3Rpb24oZSl7dmFyIHQsbjt0aGlzLnByb21pc2U9bmV3IGUoZnVuY3Rpb24oZSxyKXtpZih2b2lkIDAhPT10fHx2b2lkIDAhPT1uKXRocm93IG5ldyBpbygiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTt0PWUsbj1yfSksdGhpcy5yZXNvbHZlPWVKKHQpLHRoaXMucmVqZWN0PWVKKG4pfTtpci5mPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgaWkoZSl9O3ZhciBpYT1mdW5jdGlvbihlLHQpe2lmKGVaKHQsZSkpcmV0dXJuIGU7dGhyb3cgbmV3IG91KCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxpcz1mdW5jdGlvbihlLHQpe3ZhciBuLHI9ZU0oZSkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PXJ8fFYobj1lTShyKVtvYl0pP3Q6b3cobil9LGlsPWZ1bmN0aW9uKGUsdCl7dHJ5ezE9PWFyZ3VtZW50cy5sZW5ndGg/Y29uc29sZS5lcnJvcihlKTpjb25zb2xlLmVycm9yKGUsdCl9Y2F0Y2goZSl7fX0saWM9IlByb21pc2UiLGl1PWl0LkNPTlNUUlVDVE9SLGlkPWl0LlJFSkVDVElPTl9FVkVOVCxpaD1pdC5TVUJDTEFTU0lORyxpZz10SyhpYyksaXA9bzYmJm82LnByb3RvdHlwZSxpbT1vNixpdj1pcCxpaj1KLlR5cGVFcnJvcixpeT1KLmRvY3VtZW50LGl3PUoucHJvY2VzcyxpYj1pci5mLGlDPWliLGl4PSEhKGl5JiZpeS5jcmVhdGVFdmVudCYmSi5kaXNwYXRjaEV2ZW50KSxpTD0idW5oYW5kbGVkcmVqZWN0aW9uIixpTz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4hIShlayhlKSYmZU4odD1lLnRoZW4pKSYmdH0saUU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8saT10LnZhbHVlLGE9MT09PXQuc3RhdGUscz1hP2Uub2s6ZS5mYWlsLGw9ZS5yZXNvbHZlLGM9ZS5yZWplY3QsdT1lLmRvbWFpbjt0cnl7cz8oYXx8KDI9PT10LnJlamVjdGlvbiYmaU0odCksdC5yZWplY3Rpb249MSksITA9PT1zP249aToodSYmdS5lbnRlcigpLG49cyhpKSx1JiYodS5leGl0KCksbz0hMCkpLG49PT1lLnByb21pc2U/YyhuZXcgaWooIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KHI9aU8obikpP2VXKHIsbixsLGMpOmwobikpOmMoaSl9Y2F0Y2goZSl7dSYmIW8mJnUuZXhpdCgpLGMoZSl9fSxpTj1mdW5jdGlvbihlLHQpe2Uubm90aWZpZWR8fChlLm5vdGlmaWVkPSEwLG81KGZ1bmN0aW9uKCl7Zm9yKHZhciBuLHI9ZS5yZWFjdGlvbnM7bj1yLmdldCgpOylpRShuLGUpO2Uubm90aWZpZWQ9ITEsdCYmIWUucmVqZWN0aW9uJiZpUyhlKX0pKX0saWs9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG87aXg/KChyPWl5LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPXQsci5yZWFzb249bixyLmluaXRFdmVudChlLCExLCEwKSxKLmRpc3BhdGNoRXZlbnQocikpOnI9e3Byb21pc2U6dCxyZWFzb246bn0sIWlkJiYobz1KWyJvbiIrZV0pP28ocik6ZT09PWlMJiZpbCgiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIixuKX0saVM9ZnVuY3Rpb24oZSl7ZVcobyQsSixmdW5jdGlvbigpe3ZhciB0LG49ZS5mYWNhZGUscj1lLnZhbHVlO2lmKGlBKGUpJiYodD1vNChmdW5jdGlvbigpe3JXP2l3LmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIscixuKTppayhpTCxuLHIpfSksZS5yZWplY3Rpb249cld8fGlBKGUpPzI6MSx0LmVycm9yKSl0aHJvdyB0LnZhbHVlfSl9LGlBPWZ1bmN0aW9uKGUpe3JldHVybiAxIT09ZS5yZWplY3Rpb24mJiFlLnBhcmVudH0saU09ZnVuY3Rpb24oZSl7ZVcobyQsSixmdW5jdGlvbigpe3ZhciB0PWUuZmFjYWRlO3JXP2l3LmVtaXQoInJlamVjdGlvbkhhbmRsZWQiLHQpOmlrKCJyZWplY3Rpb25oYW5kbGVkIix0LGUudmFsdWUpfSl9LGlSPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0LHIsbil9fSxpVD1mdW5jdGlvbihlLHQsbil7ZS5kb25lfHwoZS5kb25lPSEwLG4mJihlPW4pLGUudmFsdWU9dCxlLnN0YXRlPTIsaU4oZSwhMCkpfSxpST1mdW5jdGlvbihlLHQsbil7aWYoIWUuZG9uZSl7ZS5kb25lPSEwLG4mJihlPW4pO3RyeXtpZihlLmZhY2FkZT09PXQpdGhyb3cgbmV3IGlqKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciByPWlPKHQpO3I/bzUoZnVuY3Rpb24oKXt2YXIgbj17ZG9uZTohMX07dHJ5e2VXKHIsdCxpUihpSSxuLGUpLGlSKGlULG4sZSkpfWNhdGNoKHQpe2lUKG4sdCxlKX19KTooZS52YWx1ZT10LGUuc3RhdGU9MSxpTihlLCExKSl9Y2F0Y2godCl7aVQoe2RvbmU6ITF9LHQsZSl9fX07aWYoaXUmJihpdj0oaW09ZnVuY3Rpb24oZSl7aWEodGhpcyxpdiksZUooZSksZVcodyx0aGlzKTt2YXIgdD1pZyh0aGlzKTt0cnl7ZShpUihpSSx0KSxpUihpVCx0KSl9Y2F0Y2goZSl7aVQodCxlKX19KS5wcm90b3R5cGUsKHc9ZnVuY3Rpb24oZSl7dFYodGhpcyx7dHlwZTppYyxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6bmV3IG9ZLHJlamVjdGlvbjohMSxzdGF0ZTowLHZhbHVlOm51bGx9KX0pLnByb3RvdHlwZT1ubChpdiwidGhlbiIsZnVuY3Rpb24oZSx0KXt2YXIgbj1pZyh0aGlzKSxyPWliKGlzKHRoaXMsaW0pKTtyZXR1cm4gbi5wYXJlbnQ9ITAsci5vaz0hZU4oZSl8fGUsci5mYWlsPWVOKHQpJiZ0LHIuZG9tYWluPXJXP2l3LmRvbWFpbjp2b2lkIDAsMD09PW4uc3RhdGU/bi5yZWFjdGlvbnMuYWRkKHIpOm81KGZ1bmN0aW9uKCl7aUUocixuKX0pLHIucHJvbWlzZX0pLGI9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdyx0PWlnKGUpO3RoaXMucHJvbWlzZT1lLHRoaXMucmVzb2x2ZT1pUihpSSx0KSx0aGlzLnJlamVjdD1pUihpVCx0KX0saXIuZj1pYj1mdW5jdGlvbihlKXtyZXR1cm4gZT09PWltfHxlPT09Qz9uZXcgYihlKTppQyhlKX0sZU4obzYpJiZpcCE9PU9iamVjdC5wcm90b3R5cGUpKXt4PWlwLnRoZW4saWh8fG5sKGlwLCJ0aGVuIixmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBpbShmdW5jdGlvbihlLHQpe2VXKHgsbixlLHQpfSkudGhlbihlLHQpfSx7dW5zYWZlOiEwfSk7dHJ5e2RlbGV0ZSBpcC5jb25zdHJ1Y3Rvcn1jYXRjaChlKXt9bkgmJm5IKGlwLGl2KX1uQyh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLHdyYXA6ITAsZm9yY2VkOml1fSx7UHJvbWlzZTppbX0pLG5JKGltLGljLCExKSx0PWVfKGljKSxlVCYmdCYmIXRbb2NdJiZyQyh0LG9jLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSk7dmFyIGlQPWVPKCJpdGVyYXRvciIpLGlCPUFycmF5LnByb3RvdHlwZSxpRD1lTygiaXRlcmF0b3IiKSxpVT1mdW5jdGlvbihlKXtpZighVihlKSlyZXR1cm4gZXEoZSxpRCl8fGVxKGUsIkBAaXRlcmF0b3IiKXx8dFRbcmooZSldfSxpRj1UeXBlRXJyb3IsaUg9ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPDI/aVUoZSk6dDtpZihlSihuKSlyZXR1cm4gZU0oZVcobixlKSk7dGhyb3cgbmV3IGlGKGVLKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9LGlXPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvO2VNKGUpO3RyeXtpZighKHI9ZXEoZSwicmV0dXJuIikpKXtpZigidGhyb3ciPT09dCl0aHJvdyBuO3JldHVybiBufXI9ZVcocixlKX1jYXRjaChlKXtvPSEwLHI9ZX1pZigidGhyb3ciPT09dCl0aHJvdyBuO2lmKG8pdGhyb3cgcjtyZXR1cm4gZU0ociksbn0saV89VHlwZUVycm9yLGlaPWZ1bmN0aW9uKGUsdCl7dGhpcy5zdG9wcGVkPWUsdGhpcy5yZXN1bHQ9dH0saVY9aVoucHJvdG90eXBlLGl6PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGksYSxzLGwsYyx1PW4mJm4udGhhdCxkPSEhKG4mJm4uQVNfRU5UUklFUyksZj0hIShuJiZuLklTX1JFQ09SRCksaD0hIShuJiZuLklTX0lURVJBVE9SKSxnPSEhKG4mJm4uSU5URVJSVVBURUQpLHA9b2sodCx1KSxtPWZ1bmN0aW9uKGUpe3JldHVybiByJiZpVyhyLCJub3JtYWwiLGUpLG5ldyBpWighMCxlKX0sdj1mdW5jdGlvbihlKXtyZXR1cm4gZD8oZU0oZSksZz9wKGVbMF0sZVsxXSxtKTpwKGVbMF0sZVsxXSkpOmc/cChlLG0pOnAoZSl9O2lmKGYpcj1lLml0ZXJhdG9yO2Vsc2UgaWYoaClyPWU7ZWxzZXtpZighKG89aVUoZSkpKXRocm93IG5ldyBpXyhlSyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKHZvaWQgMCE9PW8mJih0VC5BcnJheT09PW98fGlCW2lQXT09PW8pKXtmb3IoaT0wLGE9dHMoZSk7YT5pO2krKylpZigocz12KGVbaV0pKSYmZVooaVYscykpcmV0dXJuIHM7cmV0dXJuIG5ldyBpWighMSl9cj1pSChlLG8pfWZvcihsPWY/ZS5uZXh0OnIubmV4dDshKGM9ZVcobCxyKSkuZG9uZTspe3RyeXtzPXYoYy52YWx1ZSl9Y2F0Y2goZSl7aVcociwidGhyb3ciLGUpfWlmKCJvYmplY3QiPT10eXBlb2YgcyYmcyYmZVooaVYscykpcmV0dXJuIHN9cmV0dXJuIG5ldyBpWighMSl9LGkkPWVPKCJpdGVyYXRvciIpLGlLPSExO3RyeXt2YXIgaVk9MCxpSj17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhaVkrK319LHJldHVybjpmdW5jdGlvbigpe2lLPSEwfX07aUpbaSRdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oaUosZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2goZSl7fXZhciBpcT1pdC5DT05TVFJVQ1RPUnx8IWZ1bmN0aW9uKGUpe3RyeXtpZighaUspcmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9dmFyIHQ9ITE7dHJ5e3ZhciBuPXt9O25baSRdPWZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTp0PSEwfX19fSxlKG4pfWNhdGNoKGUpe31yZXR1cm4gdH0oZnVuY3Rpb24oZSl7bzYuYWxsKGUpLnRoZW4odm9pZCAwLGZ1bmN0aW9uKCl7fSl9KTtuQyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDppcX0se2FsbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49aXIuZih0KSxyPW4ucmVzb2x2ZSxvPW4ucmVqZWN0LGk9bzQoZnVuY3Rpb24oKXt2YXIgbj1lSih0LnJlc29sdmUpLGk9W10sYT0wLHM9MTtpeihlLGZ1bmN0aW9uKGUpe3ZhciBsPWErKyxjPSExO3MrKyxlVyhuLHQsZSkudGhlbihmdW5jdGlvbihlKXshYyYmKGM9ITAsaVtsXT1lLC0tc3x8cihpKSl9LG8pfSksLS1zfHxyKGkpfSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksbi5wcm9taXNlfX0pO3ZhciBpRz1pdC5DT05TVFJVQ1RPUixpUT1vNiYmbzYucHJvdG90eXBlO2lmKG5DKHt0YXJnZXQ6IlByb21pc2UiLHByb3RvOiEwLGZvcmNlZDppRyxyZWFsOiEwfSx7Y2F0Y2g6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZSl9fSksZU4obzYpKXt2YXIgaVg9ZV8oIlByb21pc2UiKS5wcm90b3R5cGUuY2F0Y2g7aVEuY2F0Y2ghPT1pWCYmbmwoaVEsImNhdGNoIixpWCx7dW5zYWZlOiEwfSl9bkMoe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6aXF9LHtyYWNlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1pci5mKHQpLHI9bi5yZWplY3Qsbz1vNChmdW5jdGlvbigpe3ZhciBvPWVKKHQucmVzb2x2ZSk7aXooZSxmdW5jdGlvbihlKXtlVyhvLHQsZSkudGhlbihuLnJlc29sdmUscil9KX0pO3JldHVybiBvLmVycm9yJiZyKG8udmFsdWUpLG4ucHJvbWlzZX19KSxuQyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDppdC5DT05TVFJVQ1RPUn0se3JlamVjdDpmdW5jdGlvbihlKXt2YXIgdD1pci5mKHRoaXMpO3JldHVybigwLHQucmVqZWN0KShlKSx0LnByb21pc2V9fSk7dmFyIGkxPWl0LkNPTlNUUlVDVE9SLGkwPWZ1bmN0aW9uKGUsdCl7aWYoZU0oZSksZWsodCkmJnQuY29uc3RydWN0b3I9PT1lKXJldHVybiB0O3ZhciBuPWlyLmYoZSk7cmV0dXJuKDAsbi5yZXNvbHZlKSh0KSxuLnByb21pc2V9O2VfKCJQcm9taXNlIiksbkMoe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6aTF9LHtyZXNvbHZlOmZ1bmN0aW9uKGUpe3JldHVybiBpMCh0aGlzLGUpfX0pO2xldCBpMj0oe2FjY291bnRzOmUsb25TZWxlY3RlZENoYW5nZWQ6dCxvblN1Ym1pdDpuLG9uQ2hhbmdlUm91dGU6cn0pPT4oMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY2hvb3NlLWxlZGdlci1hY2NvdW50LWZvcm0td3JhcHBlciJ9LHtjaGlsZHJlbjpbKDAsTC5qc3hzKSgicCIse2NoaWxkcmVuOlsiV2UgZm91bmQgIixlLmxlbmd0aCwiIGFjY291bnRzIG9uIHlvdXIgZGV2aWNlLiBTZWxlY3QgdGhlIGFjY291bnQocykgeW91IHdpc2ggdG8gY29ubmVjdC4iXX0pLCgwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImJ1dHRvbi13cmFwcGVyIn0se2NoaWxkcmVuOigwLEwuanN4KSgiYnV0dG9uIixPYmplY3QuYXNzaWduKHtvbkNsaWNrOigpPT57cigiU3BlY2lmeUhEUGF0aCIpfX0se2NoaWxkcmVuOiJIRC4uLi8wIn0pKX0pKSwoMCxMLmpzeCkoImZvcm0iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiZm9ybSIsb25TdWJtaXQ6dD0+e24oZSx0KX19LHtjaGlsZHJlbjooMCxMLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibndzLWZvcm0tY29udHJvbCJ9LHtjaGlsZHJlbjplLm1hcCgoZSxuKT0+KDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImFjY291bnQifSx7Y2hpbGRyZW46WygwLEwuanN4KSgiaW5wdXQiLHtvbkNoYW5nZTplPT57dChuLGUudGFyZ2V0LmNoZWNrZWQpfSxjaGVja2VkOmUuc2VsZWN0ZWQsdHlwZToiY2hlY2tib3giLGlkOmUuYWNjb3VudElkLG5hbWU6ZS5hY2NvdW50SWQsdmFsdWU6ZS5hY2NvdW50SWR9KSwoMCxMLmpzeHMpKCJsYWJlbCIsT2JqZWN0LmFzc2lnbih7aHRtbEZvcjplLmFjY291bnRJZH0se2NoaWxkcmVuOlsiICIsZS5hY2NvdW50SWRdfSkpLCgwLEwuanN4KSgiYnIiLHt9KV19KSxuKSl9KSksKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiYWN0aW9uLWJ1dHRvbnMifSx7Y2hpbGRyZW46KDAsTC5qc3gpKCJidXR0b24iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibWlkZGxlQnV0dG9uIix0eXBlOiJzdWJtaXQiLGRpc2FibGVkOiFlLnNvbWUoZT0+ZS5zZWxlY3RlZCl9LHtjaGlsZHJlbjoiQ29ubmVjdCJ9KSl9KSldfSl9KSldfSkpLGkzPSh7d2FsbGV0OmUsb25CYWNrOnR9KT0+KDAsTC5qc3hzKShFLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsTC5qc3gpKHJzLHt0aXRsZToiIixvbkNsb3NlTW9kYWw6dH0pLCgwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImNvbm5lY3Rpbmctd3JhcHBlciJ9LHtjaGlsZHJlbjooMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29udGVudCJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiaWNvbiJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoImltZyIse3NyYzpudWxsPT1lP3ZvaWQgMDplLm1ldGFkYXRhLmljb25VcmwsYWx0Om51bGw9PWU/dm9pZCAwOmUubWV0YWRhdGEubmFtZX0pfSkpLCgwLEwuanN4KSgiaDMiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29ubmVjdGluZy1uYW1lIn0se2NoaWxkcmVuOm51bGw9PWU/dm9pZCAwOmUubWV0YWRhdGEubmFtZX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJjb25uZWN0aW5nLW1lc3NhZ2UifSx7Y2hpbGRyZW46KDAsTC5qc3gpKCJzcGFuIix7Y2hpbGRyZW46KDAsTi50cmFuc2xhdGUpKGBtb2RhbC53YWxsZXQuY29ubmVjdGluZ01lc3NhZ2UuJHtudWxsPT1lP3ZvaWQgMDplLnR5cGV9YCl9KX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJjb25uZWN0aW5nLWRldGFpbHMifSx7Y2hpbGRyZW46KDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImxvYWRpbmctZG90cyJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImxvYWRpbmctZG90In0pLCgwLEwuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJsb2FkaW5nLWRvdCJ9KSwoMCxMLmpzeCkoImRpdiIse2NsYXNzTmFtZToibG9hZGluZy1kb3QifSldfSkpfSkpXX0pKX0pKV19KSxpOD0oKT0+KDAsTC5qc3hzKSgic3ZnIixPYmplY3QuYXNzaWduKHt3aWR0aDoiMzE3IixoZWlnaHQ6IjE1NyIsdmlld0JveDoiMCAwIDMxNyAxNTciLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNMjQ5Ljk5IDE2LjA5OTRDMjcwLjA2MyAtMC44NjQxNTUgMjg5Ljc4OCAxLjU4ODczIDMwMS40OTcgMTAuNzM2NUMzMDcuNDAyIDE1LjM0OTkgMzExLjI3OCAyMS42NTc1IDMxMi4yNjcgMjguMTI1OEMzMTMuMjQ3IDM0LjU0MTIgMzExLjQxMyA0MS4yMjMzIDMwNS42OTIgNDYuODA0NEMyOTcuMzY2IDU0LjkyNzMgMjg2LjM0MyA1NS4zMzYyIDI3My4wMTUgNTEuNTEwOUMyNjEuNjU0IDQ4LjI1IDI0OS4wNTggNDIuMDM3NyAyMzUuNzI2IDM1LjQ2MjdMMjM1LjcyNiAzNS40NjI2TDIzNS43MTcgMzUuNDU4QzIzMy4zNjcgMzQuMjk5MiAyMzAuOTk1IDMzLjEyOSAyMjguNjAyIDMxLjk2MThDMjEyLjc0MiAyNC4yMjUzIDE5Ni4wNjcgMTYuNjU3NSAxNzkuODQyIDEzLjg1OTVDMTYzLjUzOCAxMS4wNDc5IDE0Ny41NTIgMTMuMDMxMyAxMzMuMjY2IDI0LjUyMkMxMjguMDMyIDI4LjczMiAxMjMuNDc4IDM1LjIwODYgMTIxLjcxNiA0NC44MjA1QzExOS45NjEgNTQuMzk0NyAxMjAuOTkyIDY2Ljk3NzEgMTI2LjcwMyA4My40MzExQzEzNS40MzIgMTA4LjU4MyAxMzIuODk5IDEyNi42NzcgMTIzLjU3NSAxMzguMDYzQzExNC4yMTcgMTQ5LjQ5MSA5Ny41NjE0IDE1NC43MzMgNzYuNzg4NyAxNTMuMTIxQzU1LjAwNDMgMTUxLjQzIDI5LjA2MjEgMTQyLjIwNiAzLjI5ODY3IDEyNS4yMjdMMC44ODc4MTcgMTI3Ljk0MkMyNy4yNDcyIDE0NS40MDUgNTMuOTI1MSAxNTQuOTUyIDc2LjUxMDUgMTU2LjcwNUM5Ny45MDI4IDE1OC4zNjUgMTE1Ljk2IDE1My4wMzUgMTI2LjM1NiAxNDAuMzQxQzEzNi43ODUgMTI3LjYwNiAxMzkuMDQ1IDEwOC4wMjkgMTMwLjA5OSA4Mi4yNTI0QzEyNC41MjEgNjYuMTgwMSAxMjMuNjQyIDU0LjI0OTMgMTI1LjI1MiA0NS40Njg3QzEyNi44NTQgMzYuNzI1OCAxMzAuOTQgMzEuMDA2IDEzNS41MTkgMjcuMzIzMkMxNDguNzk0IDE2LjY0NTggMTYzLjY0OSAxNC43MTUgMTc5LjIzMSAxNy40MDIxQzE5NC44OTEgMjAuMTAyNyAyMTEuMTQ2IDI3LjQ0NjMgMjI3LjAyNiAzNS4xOTI4QzIyOS4zODEgMzYuMzQxNSAyMzEuNzI5IDM3LjUwMDEgMjM0LjA2NiAzOC42NTMxTDIzNC4wNzMgMzguNjU2OEMyNDcuMzgyIDQ1LjIyMyAyNjAuMzI0IDUxLjYwOCAyNzIuMDI0IDU0Ljk2NjJDMjg1LjgxOSA1OC45MjU4IDI5OC40OTMgNTguODUwMSAzMDguMjAyIDQ5LjM3NzZDMzE0Ljc2NCA0Mi45NzU5IDMxNi45NzQgMzUuMTI4OCAzMTUuODIgMjcuNTgyNkMzMTQuNjc1IDIwLjA4OTMgMzEwLjIzNyAxMy4wMDI5IDMwMy43MSA3LjkwMzYzQzI5MC41NTUgLTIuMzczODIgMjY4LjkzOCAtNC42MjAzOCAyNDcuNjcgMTMuMzUzN0wyNDkuOTkgMTYuMDk5NFoiLGZpbGw6InVybCgjcGFpbnQwX2xpbmVhcl8zXzY3MikifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTI2MC4yNjQgMTcuODc2N0wxNzcuNjA1IDg5LjQ2NDlMMTU3LjY3OSA3My45NjY0TDIzOS4yMyAzLjg1NDIzTDI2MC4yNjQgMTcuODc2N1oiLGZpbGw6IiM2QTcwNzUifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTIwNS45MzkgNTQuNDU3N0wxOTkuNzY0IDUwLjI2MzZMMjMzLjMxNiAyMC45MDUzTDIzOS45MDcgMjUuODM5NUwyMDUuOTM5IDU0LjQ1NzdaIixmaWxsOiIjNDk0RTUyIn0pLCgwLEwuanN4KSgicGF0aCIse2Q6Ik0yNjAuMjY0IDE3Ljg3NTdMMTc3LjYwNSA4OS40NjM5TDE4Mi4wMzMgOTguMzIwMkwyNjQuMzIzIDI2LjM2M0wyNjAuMjY0IDE3Ljg3NTdaIixmaWxsOiIjNDk0RTUyIn0pLCgwLEwuanN4KSgicGF0aCIse2Q6Ik0xNzcuMjM2IDg5LjQ2NDZMMTgxLjI5NSA5OC4zMjA5TDE2NS4wNTkgODUuNzc0NUwxNzAuOTYzIDg1LjAzNjVMMTc3LjIzNiA4OS40NjQ2WiIsZmlsbDoiYmxhY2sifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTkzLjQ3MDggOTkuNjM4NEw5MS45OTQ4IDExMC4xM0wxNzQuNjUzIDkyLjg5NEwxNjQuNjkgODUuNzc0OUw5My40NzA4IDk5LjYzODRaIixmaWxsOiIjRENEQURBIn0pLCgwLEwuanN4KSgicGF0aCIse2Q6Ik05My4xMTU3IDEwNC4zMjNMOTQuMzE0IDEwMC4xMjlMMTY1LjYxMyA4Ni4zNDgzTDE2OS4yMDggODkuMzQ0TDkzLjExNTcgMTA0LjMyM1oiLGZpbGw6IiNDMUMxQzEifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTk0LjIwODYgOTkuNzk2M0w4Ni4wOTAzIDEwMS4yNzJMOTIuMzYzNSAxMTAuMTI5TDk0LjIwODYgOTkuNzk2M1oiLGZpbGw6IiNCM0FBQUEifSksKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNODYuMDkwMyAxMDAuOTA3TDg5LjAwMjcgNzQuMTMwNEwxNzguNDU1IDU1LjI0MTZDMTg0LjY5NSA1My45OTYyIDE5NS43NjYgNTQuNzY3NSAxOTcuMTc3IDYzLjcwNThDMTk4LjI4NCA3MC43MTcgMTk1LjUwNiA3My45OTQzIDE5MS42MjggNzcuMzU5MkMxODguNDk1IDgwLjA2NzEgMTgwLjE1MiA4Mi40NjQ2IDE3OC4zNDMgODIuODk0NEMxNzguMjkzIDgyLjkwNjQgMTc4LjI0MSA4Mi45MTg4IDE3OC4xODYgODIuOTMxOUMxNzcuMzggODMuMTI0NSAxNzYuMDA3IDgzLjQ1MjUgMTcwLjY0NCA4NC41MDg4QzE2OS4wODUgODQuODE1OCAxNjcuMzgyIDg1LjE1MDEgMTY1LjU1NyA4NS41MDc4TDE2NC45MzMgODUuNjNDMTQ2LjMxMiA4OS4yNzY0IDExNS41MjggOTUuMjI5NyA5My45ODQ0IDk5LjM4NDlDOTEuMTgwOCA5OS45MjU3IDg4LjUzMzcgMTAwLjQzNiA4Ni4wOTAzIDEwMC45MDdaTTE4NS4wNzYgNzUuNTU0QzE5MC43NDggNzMuMzUzNSAxOTMuOTkgNjguMDc0NSAxOTIuMzE4IDYzLjc2MzFDMTkwLjY0NSA1OS40NTE3IDE4NC42OTEgNTcuNzQwNSAxNzkuMDE5IDU5Ljk0MUMxNzMuMzQ3IDYyLjE0MTYgMTcwLjEwNSA2Ny40MjA2IDE3MS43NzggNzEuNzMyQzE3My40NSA3Ni4wNDM0IDE3OS40MDQgNzcuNzU0NiAxODUuMDc2IDc1LjU1NFoiLGZpbGw6IiNGNEYxRTgifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTE5OS43NjQgNTAuMzk5NEwxOTYuNzY4IDQ4LjMwNDNMMjMyLjE5NCAxOC4wNDU0TDIzMy4zMTYgMjEuNjQwM0wxOTkuNzY0IDUwLjM5OTRaIixmaWxsOiJibGFjayJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNMjM5Ljk2OCAyNS45OTQzTDIzMi41ODggMjAuNDU5MlYxNy41MDcxTDI0MS44MTMgMjQuNTE4M0wyMzkuOTY4IDI1Ljk5NDNaIixmaWxsOiJibGFjayJ9KSwoMCxMLmpzeCkoImVsbGlwc2UiLHtjeDoiMTgyLjA4NCIsY3k6IjY4LjA4MTEiLHJ4OiIxMC4yNDIiLHJ5OiI3LjQ2NzcyIix0cmFuc2Zvcm06InJvdGF0ZSgtMjMuNzk0OSAxODIuMDg0IDY4LjA4MTEpIixmaWxsOiIjNDk0RTUyIn0pLCgwLEwuanN4KSgiZWxsaXBzZSIse2N4OiIxODIuMDg0IixjeToiNjguMDgxNiIscng6IjYuNjg0NjIiLHJ5OiI0Ljg3Mzk0Iix0cmFuc2Zvcm06InJvdGF0ZSgtMjMuNzk0OSAxODIuMDg0IDY4LjA4MTYpIixmaWxsOiIjNDk0RTUyIn0pLCgwLEwuanN4KSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTIzOC43MjUgMi45MzA5NEwyNjAuMzY4IDE3LjI1NjRMMjY0Ljg2NSAyNi40NTU2TDE4MS42MTUgOTkuMDM0MUwxNzUuMTYgOTQuMzExTDkyLjAwMjggMTEwLjk0N0w4NS4zMjY3IDEwMS4zOTlMODguMzI2OSA3My44MTU3TDE3OC4xMTggNTQuODU1M0wyMzguNzI1IDIuOTMwOTRaTTE3OC41OTkgNTYuMjYyMkw4OS42Nzg2IDc1LjAzODhMODYuOTMyMSAxMDAuMjlDODkuMDk3OSA5OS44NzI1IDkxLjQxMjQgOTkuNDI2MyA5My44NDQ2IDk4Ljk1NzJDMTE1LjM4OCA5NC44MDE5IDE0Ni4xNzEgODguODQ4OCAxNjQuNzkxIDg1LjIwMjZMMTY1LjQxNSA4NS4wODA0QzE2Ny4yNCA4NC43MjI4IDE2OC45NDMgODQuMzg4NSAxNzAuNTAxIDg0LjA4MTZDMTc1Ljg1MyA4My4wMjc1IDE3Ny4yMTkgODIuNzAxIDE3OC4wMTUgODIuNTEwN0MxNzguMDcgODIuNDk3NiAxNzguMTIyIDgyLjQ4NTIgMTc4LjE3MyA4Mi40NzMyQzE3OS4wNDggODIuMjY1MiAxODEuNTU4IDgxLjU2NjkgMTg0LjIzNSA4MC41ODUxQzE4Ni43NDIgNzkuNjY1NSAxODkuMjg2IDc4LjUzNTQgMTkwLjgwMiA3Ny4zNzU4TDE5MS4xNTEgNzcuMDkyMkwxOTEuNjQ0IDc2LjY1OTVDMTkzLjM0MSA3NS4xNDcgMTk0LjcyMyA3My42NzM5IDE5NS42MSA3MS44NzFDMTk2LjU3MSA2OS45MTYgMTk2Ljk4MiA2Ny41MDI5IDE5Ni40NDggNjQuMTE3OEMxOTUuOCA2MC4wMTMxIDE5Mi45NTkgNTcuNzU3NCAxODkuNDA4IDU2LjY1NjZDMTg1LjgzMyA1NS41NDgzIDE4MS42MzcgNTUuNjU2NiAxNzguNjAzIDU2LjI2MTVDMTc4LjYwMSA1Ni4yNjE3IDE3OC42IDU2LjI2MiAxNzguNTk5IDU2LjI2MjJaTTE5Mi42MzEgNzcuNzU2NUwyNTkuNTU1IDE4Ljk1MzFMMjYzLjA0MiAyNi4wODY5TDE4MS44MDggOTYuOTA3OEwxNzguMTMyIDg5LjU3MTNMMTkxLjcyNCA3OC41MjlDMTkxLjg1OSA3OC40MjQ5IDE5MS45ODggNzguMzIgMTkyLjExIDc4LjIxNDRMMTkyLjExMSA3OC4yMTM2QzE5Mi4yODYgNzguMDYxNyAxOTIuNDYgNzcuOTA5NCAxOTIuNjMxIDc3Ljc1NjVaTTE4NS40OTEgODEuNjkwOEMxODUuMjQgODEuNzg2OCAxODQuOTkgODEuODgwMiAxODQuNzQzIDgxLjk3MDlDMTgyLjAxMyA4Mi45NzIzIDE3OS40NDcgODMuNjg3NSAxNzguNTE0IDgzLjkwOTNDMTc4LjQ2MyA4My45MjEzIDE3OC40MTEgODMuOTMzOCAxNzguMzU2IDgzLjk0NjhDMTc3LjYzNSA4NC4xMTkyIDE3Ni40NzIgODQuMzk3MSAxNzIuNDkxIDg1LjE5MTlMMTc3LjE3MiA4OC40NDkyTDE4NS40OTEgODEuNjkwOFpNMTc2LjYzMSA4OS44NzA3TDE3MC40NzkgODUuNTkwM0MxNjkuMzA2IDg1LjgyMTMgMTY4LjA1NCA4Ni4wNjczIDE2Ni43MzEgODYuMzI2NUwxNzUuNzY5IDkyLjkyNzZMMTc5LjU0OCA5NS42OTI0TDE3Ni42MzEgODkuODcwN1pNMTY0Ljc1OCA4Ni43MTMyQzE0Ni4yNTIgOTAuMzM2MiAxMTYuMDI3IDk2LjE4MTcgOTQuNjMyNCAxMDAuMzA4TDkzLjIyNTggMTA5LjE5N0wxNzMuNTQzIDkzLjEyOTNMMTY0Ljc1OCA4Ni43MTMyWk05MS44ODggMTA4LjIwN0w5My4wOTA5IDEwMC42MDZDOTEuMDg0OCAxMDAuOTkzIDg5LjE2NDIgMTAxLjM2MyA4Ny4zNDcxIDEwMS43MTNMOTEuODg4IDEwOC4yMDdaTTI1OC41ODEgMTcuODQzNkwxOTcuMzA2IDcxLjY4NDFDMTk4LjE0MiA2OS41Nzc5IDE5OC40MSA2Ny4wNzk1IDE5Ny45MDYgNjMuODg3NkMxOTcuMTQzIDU5LjA1MzkgMTkzLjc0MyA1Ni40NTQ5IDE4OS44NDUgNTUuMjQ2N0MxODYuOTIxIDU0LjM0MDIgMTgzLjY2MiA1NC4xOTE2IDE4MC44NjEgNTQuNDQ5TDIzOC44NCA0Ljc3NjY4TDI1OC41ODEgMTcuODQzNlpNMjMyLjUwNSAxNi44MkwyNDMuMDg5IDI0LjU2NDNMMjA1LjkxNSA1Ni41MTA2TDE5Ni4wNDIgNDguMDY2NUwyMzIuNTA1IDE2LjgyWk0yMzIuMTE4IDE5LjA5NkwxOTguMzEyIDQ4LjA2NTRMMTk5Ljc0NCA0OS4yOUwyMzIuNTg0IDIwLjk0MjRMMjMyLjExOCAxOS4wOTZaTTIzMy40NTYgMjIuMTM5NkwyMDAuODc4IDUwLjI2MDRMMjA1LjkxMyA1NC41NjY0TDIzOS4wNDEgMjYuMDk2OUwyMzMuNDU2IDIyLjEzOTZaTTI0MC4xOTUgMjUuMTA1NEwyNDAuNzE3IDI0LjY1NzFMMjMzLjc1OSAxOS41NjYzTDIzNC4wNiAyMC43NTg2TDI0MC4xOTUgMjUuMTA1NFoiLGZpbGw6ImJsYWNrIn0pLCgwLEwuanN4KSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTE5MC4xOTQgNjkuOTc0NEMxOTEuMzIgNjguMTQwOSAxOTEuNTc2IDY2LjIyNzEgMTkwLjk0MiA2NC41OTM3QzE5MC4zMDggNjIuOTYwMyAxODguODI5IDYxLjcxOTggMTg2Ljc2MSA2MS4xMjU0QzE4NC42OTEgNjAuNTMwNyAxODIuMTE2IDYwLjYxOTYgMTc5LjU1MyA2MS42MTM5QzE3Ni45OTEgNjIuNjA4MSAxNzUuMDI5IDY0LjI3OTQgMTczLjkwMiA2Ni4xMTQxQzE3Mi43NzYgNjcuOTQ3NyAxNzIuNTIgNjkuODYxNCAxNzMuMTU0IDcxLjQ5NDhDMTczLjc4OCA3My4xMjgyIDE3NS4yNjcgNzQuMzY4NyAxNzcuMzM1IDc0Ljk2MzFDMTc5LjQwNSA3NS41NTc4IDE4MS45OCA3NS40Njg5IDE4NC41NDMgNzQuNDc0NkMxODcuMTA1IDczLjQ4MDQgMTg5LjA2NyA3MS44MDkxIDE5MC4xOTQgNjkuOTc0NFpNMTg1LjA3NyA3NS44NTA4QzE5MC43NDkgNzMuNjUwMiAxOTMuOTkxIDY4LjM3MTIgMTkyLjMxOCA2NC4wNTk4QzE5MC42NDUgNTkuNzQ4NCAxODQuNjkxIDU4LjAzNzIgMTc5LjAxOSA2MC4yMzc4QzE3My4zNDcgNjIuNDM4MyAxNzAuMTA1IDY3LjcxNzMgMTcxLjc3OCA3Mi4wMjg3QzE3My40NTEgNzYuMzQwMSAxNzkuNDA1IDc4LjA1MTMgMTg1LjA3NyA3NS44NTA4WiIsZmlsbDoiYmxhY2sifSksKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNMTg3LjM5MSA2OS4xNjlDMTg4LjEyNyA2Ny45NzEzIDE4OC4yNjYgNjYuNzcyMSAxODcuODgxIDY1Ljc4MTJDMTg3LjQ5NyA2NC43OTAzIDE4Ni41ODYgNjMuOTk4NCAxODUuMjM1IDYzLjYxMDJDMTgzLjg4MyA2My4yMjE2IDE4Mi4xNzMgNjMuMjc0MSAxODAuNDU2IDYzLjk0MDRDMTc4LjczOCA2NC42MDY4IDE3Ny40NDEgNjUuNzIwOCAxNzYuNzA1IDY2LjkxOTZDMTc1Ljk2OSA2OC4xMTcyIDE3NS44MyA2OS4zMTY1IDE3Ni4yMTUgNzAuMzA3NEMxNzYuNTk5IDcxLjI5ODMgMTc3LjUxMSA3Mi4wOTAxIDE3OC44NjEgNzIuNDc4M0MxODAuMjE0IDcyLjg2NjkgMTgxLjkyMyA3Mi44MTQ0IDE4My42NCA3Mi4xNDgxQzE4NS4zNTggNzEuNDgxOCAxODYuNjU1IDcwLjM2NzggMTg3LjM5MSA2OS4xNjlaTTE4NC4xNzQgNzMuNTI0MkMxODguMTU2IDcxLjk3OTUgMTkwLjQzMiA2OC4yNzM4IDE4OS4yNTcgNjUuMjQ3M0MxODguMDgzIDYyLjIyMDggMTgzLjkwNCA2MS4wMTk2IDE3OS45MjIgNjIuNTY0M0MxNzUuOTQgNjQuMTA5MSAxNzMuNjY1IDY3LjgxNDggMTc0LjgzOSA3MC44NDEyQzE3Ni4wMTMgNzMuODY3NyAxODAuMTkzIDc1LjA2ODkgMTg0LjE3NCA3My41MjQyWiIsZmlsbDoiYmxhY2sifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTI0MC40OTkgNDEuMjQ0MUMyMzkuNzQ0IDQwLjM2NDkgMjM5Ljg0NCAzOS4wNCAyNDAuNzI0IDM4LjI4NUwyNDkuNzgxIDMwLjUwNjdDMjUwLjY2IDI5Ljc1MTYgMjUxLjk4NSAyOS44NTIzIDI1Mi43NCAzMC43MzE1VjMwLjczMTVDMjUzLjQ5NSAzMS42MTA4IDI1My4zOTUgMzIuOTM1NiAyNTIuNTE2IDMzLjY5MDdMMjQzLjQ1OCA0MS40NjlDMjQyLjU3OSA0Mi4yMjQgMjQxLjI1NCA0Mi4xMjM0IDI0MC40OTkgNDEuMjQ0MVY0MS4yNDQxWiIsZmlsbDoiYmxhY2sifSksKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNMjUwLjc0MyAzMS42MjY1TDI0MS42ODUgMzkuNDA0OEMyNDEuNDI0IDM5LjYyODcgMjQxLjM5NSA0MC4wMjE3IDI0MS42MTkgNDAuMjgyNUMyNDEuODQyIDQwLjU0MzMgMjQyLjIzNSA0MC41NzMxIDI0Mi40OTYgNDAuMzQ5MkwyNTEuNTU0IDMyLjU3MDlDMjUxLjgxNSAzMi4zNDY5IDI1MS44NDUgMzEuOTU0IDI1MS42MjEgMzEuNjkzMkMyNTEuMzk3IDMxLjQzMjQgMjUxLjAwNCAzMS40MDI1IDI1MC43NDMgMzEuNjI2NVpNMjQwLjcyNCAzOC4yODVDMjM5Ljg0NCAzOS4wNCAyMzkuNzQ0IDQwLjM2NDkgMjQwLjQ5OSA0MS4yNDQxQzI0MS4yNTQgNDIuMTIzNCAyNDIuNTc5IDQyLjIyNCAyNDMuNDU4IDQxLjQ2OUwyNTIuNTE2IDMzLjY5MDdDMjUzLjM5NSAzMi45MzU2IDI1My40OTUgMzEuNjEwOCAyNTIuNzQgMzAuNzMxNUMyNTEuOTg1IDI5Ljg1MjMgMjUwLjY2IDI5Ljc1MTYgMjQ5Ljc4MSAzMC41MDY3TDI0MC43MjQgMzguMjg1WiIsZmlsbDoiYmxhY2sifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTIwNS43NzkgNzEuNDY0N0MyMDUuMDA1IDcwLjU2NDIgMjA1LjEwOCA2OS4yMDczIDIwNi4wMDkgNjguNDMzOUwyMTQuOTg5IDYwLjcyMThDMjE1Ljg5IDU5Ljk0ODUgMjE3LjI0NyA2MC4wNTE2IDIxOC4wMiA2MC45NTIxVjYwLjk1MjFDMjE4Ljc5MyA2MS44NTI2IDIxOC42OSA2My4yMDk1IDIxNy43OSA2My45ODI5TDIwOC44MDkgNzEuNjk1QzIwNy45MDkgNzIuNDY4MyAyMDYuNTUyIDcyLjM2NTIgMjA1Ljc3OSA3MS40NjQ3VjcxLjQ2NDdaIixmaWxsOiJibGFjayJ9KSwoMCxMLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yMTUuOTUxIDYxLjg0MTZMMjA2Ljk3IDY5LjU1MzdDMjA2LjY4OCA2OS43OTYgMjA2LjY1NiA3MC4yMjEgMjA2Ljg5OCA3MC41MDMxQzIwNy4xNDEgNzAuNzg1MSAyMDcuNTY2IDcwLjgxNzQgMjA3Ljg0OCA3MC41NzUyTDIxNi44MjggNjIuODYzQzIxNy4xMSA2Mi42MjA4IDIxNy4xNDMgNjIuMTk1OCAyMTYuOSA2MS45MTM3QzIxNi42NTggNjEuNjMxNyAyMTYuMjMzIDYxLjU5OTQgMjE1Ljk1MSA2MS44NDE2Wk0yMDYuMDA5IDY4LjQzMzlDMjA1LjEwOCA2OS4yMDczIDIwNS4wMDUgNzAuNTY0MiAyMDUuNzc5IDcxLjQ2NDdDMjA2LjU1MiA3Mi4zNjUyIDIwNy45MDkgNzIuNDY4MyAyMDguODA5IDcxLjY5NUwyMTcuNzkgNjMuOTgyOUMyMTguNjkgNjMuMjA5NSAyMTguNzkzIDYxLjg1MjYgMjE4LjAyIDYwLjk1MjFDMjE3LjI0NyA2MC4wNTE2IDIxNS44OSA1OS45NDg1IDIxNC45ODkgNjAuNzIxOEwyMDYuMDA5IDY4LjQzMzlaIixmaWxsOiJibGFjayJ9KSwoMCxMLmpzeCkoImNpcmNsZSIse2N4OiIxNDEuMzU2IixjeToiMTkuNTI1IixyOiIxMC4xODU1IixmaWxsOiIjRkU4OUI0In0pLCgwLEwuanN4KSgiZWxsaXBzZSIse2N4OiIxMzkuMDYyIixjeToiMTQuNzA5NCIscng6IjIuNDI1MTkiLHJ5OiIxLjk0MDE1Iix0cmFuc2Zvcm06InJvdGF0ZSgtMzQuNTQ0IDEzOS4wNjIgMTQuNzA5NCkiLGZpbGw6IiNGREY3RkYifSksKDAsTC5qc3gpKCJjaXJjbGUiLHtjeDoiMjUyLjQ4OSIsY3k6Ijc5Ljc1NzciLHI6IjcuNzg4OTMiLGZpbGw6IiNFQzUyMzYifSksKDAsTC5qc3gpKCJlbGxpcHNlIix7Y3g6IjI1MC40MzQiLGN5OiI3Ni4zNzAxIixyeDoiMi42MTI3MiIscnk6IjIuMDkwMTgiLHRyYW5zZm9ybToicm90YXRlKC0zNC41NDQgMjUwLjQzNCA3Ni4zNzAxKSIsZmlsbDoiI0VEQjY5RCJ9KSwoMCxMLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0xMDAuNDM2IDc5LjkyNTRDMTAwLjQ2MSA3OS42NTY3IDEwMC43MzIgNzkuMzg5NyAxMDEuMDQyIDc5LjMyOUwxMDYuNjU3IDc4LjIyOTlDMTA3LjU4NyA3OC4wNDc4IDEwOC4yODEgNzguNTUzNiAxMDguMjA3IDc5LjM1OTZMMTA3Ljc1OSA4NC4yMjQzQzEwNy43MzQgODQuNDkzIDEwNy40NjMgODQuNzYgMTA3LjE1MyA4NC44MjA3TDEwMC40MTYgODYuMTM5NkMxMDAuMTA2IDg2LjIwMDMgOTkuODc0MiA4Ni4wMzE3IDk5Ljg5OSA4NS43NjMxTDEwMC40MzYgNzkuOTI1NFoiLGZpbGw6IiNCM0FBQUEifSksKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNOTUuODU1MyA4MS43Nzc1Qzk1LjkyOTQgODAuOTcxNSA5Ni43NDM3IDgwLjE3MDQgOTcuNjczOSA3OS45ODgzTDk4Ljc5NjggNzkuNzY4NUM5OS4xMDY5IDc5LjcwNzggOTkuMzM4MiA3OS44NzY0IDk5LjMxMzUgODAuMTQ1MUw5OS4xMzQ0IDgyLjA5MUM5OS4xMDk2IDgyLjM1OTcgOTguODM4MiA4Mi42MjY3IDk4LjUyODIgODIuNjg3NEw5Ni4yODI0IDgzLjEyN0M5NS45NzIzIDgzLjE4NzcgOTUuNzQxIDgzLjAxOTEgOTUuNzY1NyA4Mi43NTA1TDk1Ljg1NTMgODEuNzc3NVoiLGZpbGw6IiNCM0FBQUEifSksKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNOTUuNTg2NSA4NC42OTY1Qzk1LjYxMTIgODQuNDI3OCA5NS44ODI2IDg0LjE2MDggOTYuMTkyNyA4NC4xMDAxTDk4LjQzODUgODMuNjYwNUM5OC43NDg2IDgzLjU5OTggOTguOTc5OSA4My43Njg0IDk4Ljk1NTIgODQuMDM3TDk4Ljc3NjEgODUuOTgyOUM5OC43NTEzIDg2LjI1MTYgOTguNDc5OSA4Ni41MTg2IDk4LjE2OTkgODYuNTc5M0w5NS45MjQxIDg3LjAxOUM5NS42MTQgODcuMDc5NyA5NS4zODI3IDg2LjkxMTEgOTUuNDA3NCA4Ni42NDI0TDk1LjU4NjUgODQuNjk2NVoiLGZpbGw6IiNCM0FBQUEifSksKDAsTC5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNOTUuMjI4MiA4OC41ODg0Qzk1LjI1MjkgODguMzE5NyA5NS41MjQ0IDg4LjA1MjcgOTUuODM0NCA4Ny45OTJMOTguMDgwMiA4Ny41NTI0Qzk4LjM5MDMgODcuNDkxNyA5OC42MjE2IDg3LjY2MDMgOTguNTk2OSA4Ny45MjlMOTguNDE3OCA4OS44NzQ5Qzk4LjM5MzEgOTAuMTQzNSA5OC4xMjE2IDkwLjQxMDUgOTcuODExNiA5MC40NzEyTDk2LjY4ODcgOTAuNjkxMUM5NS43NTg0IDkwLjg3MzIgOTUuMDY0NSA5MC4zNjc0IDk1LjEzODcgODkuNTYxNEw5NS4yMjgyIDg4LjU4ODRaIixmaWxsOiIjQjNBQUFBIn0pLCgwLEwuanN4KSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTk5LjcxOTcgODcuNzA5Qzk5Ljc0NDQgODcuNDQwMyAxMDAuMDE2IDg3LjE3MzMgMTAwLjMyNiA4Ny4xMTI2TDEwMi41NzIgODYuNjczQzEwMi44ODIgODYuNjEyMyAxMDMuMTEzIDg2Ljc4MDkgMTAzLjA4OCA4Ny4wNDk2TDEwMi45MDkgODguOTk1NUMxMDIuODg1IDg5LjI2NDEgMTAyLjYxMyA4OS41MzEyIDEwMi4zMDMgODkuNTkxOUwxMDAuMDU3IDkwLjAzMTVDOTkuNzQ3MiA5MC4wOTIyIDk5LjUxNTkgODkuOTIzNiA5OS41NDA2IDg5LjY1NDlMOTkuNzE5NyA4Ny43MDlaIixmaWxsOiIjQjNBQUFBIn0pLCgwLEwuanN4KSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTEwNC4yMTEgODYuODI5OEMxMDQuMjM2IDg2LjU2MTEgMTA0LjUwNyA4Ni4yOTQxIDEwNC44MTcgODYuMjMzNEwxMDcuMDYzIDg1Ljc5MzhDMTA3LjM3MyA4NS43MzMxIDEwNy42MDUgODUuOTAxNyAxMDcuNTggODYuMTcwNEwxMDcuNDkgODcuMTQzM0MxMDcuNDE2IDg3Ljk0OTMgMTA2LjYwMiA4OC43NTA0IDEwNS42NzIgODguOTMyNUwxMDQuNTQ5IDg5LjE1MjNDMTA0LjIzOSA4OS4yMTMgMTA0LjAwNyA4OS4wNDQ0IDEwNC4wMzIgODguNzc1N0wxMDQuMjExIDg2LjgyOThaIixmaWxsOiIjQjNBQUFBIn0pLCgwLEwuanN4KSgiZGVmcyIse2NoaWxkcmVuOigwLEwuanN4cykoImxpbmVhckdyYWRpZW50IixPYmplY3QuYXNzaWduKHtpZDoicGFpbnQwX2xpbmVhcl8zXzY3MiIseDE6Ii00NC41MTk1Iix5MToiMTIyLjQyIix4MjoiMjYzLjM1NyIseTI6Ii04LjY1MDIzIixncmFkaWVudFVuaXRzOiJ1c2VyU3BhY2VPblVzZSJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJzdG9wIix7b2Zmc2V0OiIwLjExMDY5NyIsc3RvcENvbG9yOiIjMjMyMzIzIn0pLCgwLEwuanN4KSgic3RvcCIse29mZnNldDoiMSIsc3RvcENvbG9yOiIjM0QzRDNEIn0pXX0pKX0pXX0pKSxpNT0oKT0+KDAsTC5qc3gpKCJzdmciLE9iamVjdC5hc3NpZ24oe3dpZHRoOiIxMCIsaGVpZ2h0OiI3Iix2aWV3Qm94OiIwIDAgMTAgNyIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0se2NoaWxkcmVuOigwLEwuanN4KSgicGF0aCIse2Q6Ik05IDUuNDc2Mkw1IDEuNDc2MkwxIDUuNDc2MiIsc3Ryb2tlOiIjNEY3Q0QxIixzdHJva2VXaWR0aDoiMS41IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pfSkpLGk0PSgpPT4oMCxMLmpzeCkoInN2ZyIsT2JqZWN0LmFzc2lnbih7d2lkdGg6IjEwIixoZWlnaHQ6IjciLHZpZXdCb3g6IjAgMCAxMCA3IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSx7Y2hpbGRyZW46KDAsTC5qc3gpKCJwYXRoIix7ZDoiTTEgMS41MjM4Mkw1IDUuNTIzODJMOSAxLjUyMzgyIixzdHJva2U6IiM0RjdDRDEiLHN0cm9rZVdpZHRoOiIxLjUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSl9KSksaTY9KHtzZWxlY3RvcjplLG9wdGlvbnM6dCxvbkJhY2s6bixvbkNvbm5lY3RlZDpyLHBhcmFtczpvLG9uRXJyb3I6aSxvbkNsb3NlTW9kYWw6YX0pPT57bGV0W3MsbF09KDAsRS51c2VTdGF0ZSkoIkVudGVyRGVyaXZhdGlvblBhdGgiKSxbYyx1XT0oMCxFLnVzZVN0YXRlKSgiNDQnLzM5NycvMCcvMCcvMSciKSxbZCxmXT0oMCxFLnVzZVN0YXRlKSgxKSxbaCxnXT0oMCxFLnVzZVN0YXRlKShbXSksW3AsbV09KDAsRS51c2VTdGF0ZSkoW10pLFt2LGpdPSgwLEUudXNlU3RhdGUpKCksW3ksd109KDAsRS51c2VTdGF0ZSkoIiIpLFtiLENdPSgwLEUudXNlU3RhdGUpKCExKSx4PSgwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLmNvbm5lY3RXaXRoTGVkZ2VyIiksW08sa109KDAsRS51c2VTdGF0ZSkoeCksUz0oKT0+QSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdD15aWVsZCBlLndhbGxldChvLndhbGxldElkKTtpZigiaGFyZHdhcmUiPT09dC50eXBlKXtDKCEwKSxqKHQpO3RyeXtsZXQgbj15aWVsZCBBKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBuPXlpZWxkIHQuZ2V0UHVibGljS2V5KGMpO3RyeXtyZXR1cm4oeWllbGQgQSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdD1gJHtlLm9wdGlvbnMubmV0d29yay5pbmRleGVyVXJsfS9wdWJsaWNfa2V5L2VkMjU1MTk6JHtufWAscj15aWVsZCBmZXRjaCh0KTtpZighci5vayl0aHJvdyBFcnJvcigiRmFpbGVkIHRvIGdldCBhY2NvdW50IElEIGZyb20gcHVibGljIGtleSIpO2xldHthY2NvdW50X2lkczpvfT15aWVsZCByLmpzb24oKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKT9vOltdfSkpLm1hcCgoZSx0KT0+KHtkZXJpdmF0aW9uUGF0aDpjLHB1YmxpY0tleTpuLGFjY291bnRJZDplLHNlbGVjdGVkOjA9PT10fSkpfWNhdGNoKGUpe3JldHVybiBudWxsfX0pO2lmKCFuKXJldHVybiB2b2lkIGwoIkFkZEN1c3RvbUFjY291bnRJZCIpO2xldCByPTA9PT1uLmxlbmd0aCxvPW4ubGVuZ3RoPjE7aWYocil7aygoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5ub0FjY291bnRzRm91bmQiKSksbCgiTm9BY2NvdW50c0ZvdW5kIik7cmV0dXJufWcobiksbz8oaygoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5zZWxlY3RZb3VyQWNjb3VudHMiKSksbCgiQ2hvb3NlQWNjb3VudCIpKToobShuKSxsKCJPdmVydmlld0FjY291bnRzIikpfWNhdGNoKGUpe0MoITEpLGkoZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYibWVzc2FnZSJpbiBlP2UubWVzc2FnZToiU29tZXRoaW5nIHdlbnQgd3JvbmciLHQpfWZpbmFsbHl7QyghMSl9fX0pO3JldHVybiBiPygwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImRlcml2YXRpb24tcGF0aC13cmFwcGVyIn0se2NoaWxkcmVuOigwLEwuanN4KShpMyx7d2FsbGV0OnYsb25CYWNrOigpPT57QyghMSl9fSl9KSk6KDAsTC5qc3hzKShFLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6Im53cy1tb2RhbC1oZWFkZXItd3JhcHBlciJ9LHtjaGlsZHJlbjpbKCJTcGVjaWZ5SERQYXRoIj09PXN8fCJOb0FjY291bnRzRm91bmQiPT09c3x8IkNob29zZUFjY291bnQiPT09c3x8Ik92ZXJ2aWV3QWNjb3VudHMiPT09cykmJigwLEwuanN4KShyYyx7b25DbGljazooKT0+eygiU3BlY2lmeUhEUGF0aCI9PT1zfHwiTm9BY2NvdW50c0ZvdW5kIj09PXN8fCJDaG9vc2VBY2NvdW50Ij09PXMpJiYoaygoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5jb25uZWN0V2l0aExlZGdlciIpKSxsKCJFbnRlckRlcml2YXRpb25QYXRoIikpLCJPdmVydmlld0FjY291bnRzIj09PXMmJihrKCgwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLnNlbGVjdFlvdXJBY2NvdW50cyIpKSxsKCJDaG9vc2VBY2NvdW50IikpfX0pLCgwLEwuanN4KShycyx7dGl0bGU6TyxvbkNsb3NlTW9kYWw6YX0pXX0pKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiZGVyaXZhdGlvbi1wYXRoLXdyYXBwZXIifSx7Y2hpbGRyZW46WyJFbnRlckRlcml2YXRpb25QYXRoIj09PXMmJigwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJlbnRlci1kZXJpdmF0aW9uLXBhdGgifSx7Y2hpbGRyZW46WygwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImxlZGdlci1pbWFnZSJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoaTgse30pfSkpLCgwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJsZWRnZXItZGVzY3JpcHRpb24ifSx7Y2hpbGRyZW46WygwLEwuanN4KSgicCIse2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLm1ha2VTdXJlWW91ckxlZGdlciIpfSksKDAsTC5qc3gpKCJwIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6InNwZWNpZnktcGF0aCIsb25DbGljazooKT0+e2soKDAsTi50cmFuc2xhdGUpKCJtb2RhbC5sZWRnZXIuc3BlY2lmeUhEUGF0aCIpKSxsKCJTcGVjaWZ5SERQYXRoIil9fSx7Y2hpbGRyZW46KDAsTi50cmFuc2xhdGUpKCJtb2RhbC5sZWRnZXIuc3BlY2lmeUhEUGF0aCIpfSkpXX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJhY3Rpb24tYnV0dG9ucyJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJtaWRkbGVCdXR0b24iLG9uQ2xpY2s6U30se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLmNvbnRpbnVlIil9KSl9KSldfSkpLCJTcGVjaWZ5SERQYXRoIj09PXMmJigwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJzcGVjaWZ5LXBhdGgtd3JhcHBlciJ9LHtjaGlsZHJlbjpbKDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImNoYW5nZS1wYXRoLXdyYXBwZXIifSx7Y2hpbGRyZW46WygwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImRpc3BsYXktcGF0aCJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoInNwYW4iLHtjaGlsZHJlbjpjLnNsaWNlKDAsLTIpfSl9KSksKDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImNoYW5nZS1wYXRoIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJwYXRoLXZhbHVlIn0se2NoaWxkcmVuOigwLEwuanN4KSgic3BhbiIse2NoaWxkcmVuOmR9KX0pKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiYnV0dG9ucy13cmFwcGVyIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7b25DbGljazooKT0+e2xldCBlPWQrMSx0PWMuc2xpY2UoMCwtMik7dShgJHt0fSR7ZX0nYCksZihlKX19LHtjaGlsZHJlbjooMCxMLmpzeCkoaTUse30pfSkpLCgwLEwuanN4KSgiYnV0dG9uIixPYmplY3QuYXNzaWduKHtvbkNsaWNrOigpPT57bGV0IGU9ZC0xO2lmKGU8MClyZXR1cm47bGV0IHQ9Yy5zbGljZSgwLC0yKTt1KGAke3R9JHtlfSdgKSxmKGUpfX0se2NoaWxkcmVuOigwLEwuanN4KShpNCx7fSl9KSldfSkpXX0pKV19KSksKDAsTC5qc3gpKCJwIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6InBhdGgtZGVzY3JpcHRpb24ifSx7Y2hpbGRyZW46KDAsTi50cmFuc2xhdGUpKCJtb2RhbC5sZWRnZXIuZW50ZXJZb3VyUHJlZmVycmVkSERQYXRoIil9KSksKDAsTC5qc3gpKCJwIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6IndoYXQtbGluayJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoImEiLE9iamVjdC5hc3NpZ24oe2hyZWY6Imh0dHBzOi8vd3d3LmxlZGdlci5jb20vYWNhZGVteS9jcnlwdG8vd2hhdC1hcmUtaGllcmFyY2hpY2FsLWRldGVybWluaXN0aWMtaGQtd2FsbGV0cyIsdGFyZ2V0OiJfYmxhbmsifSx7Y2hpbGRyZW46IldoYXQncyB0aGlzPyJ9KSl9KSksKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiYWN0aW9uLWJ1dHRvbnMifSx7Y2hpbGRyZW46KDAsTC5qc3gpKCJidXR0b24iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibWlkZGxlQnV0dG9uIixvbkNsaWNrOlN9LHtjaGlsZHJlbjooMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5zY2FuIil9KSl9KSldfSkpLCJOb0FjY291bnRzRm91bmQiPT09cyYmKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibm8tYWNjb3VudHMtZm91bmQtd3JhcHBlciJ9LHtjaGlsZHJlbjooMCxMLmpzeHMpKCJwIix7Y2hpbGRyZW46WygwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLmNhbnRGaW5kQW55QWNjb3VudCIpLCIgIiwoMCxMLmpzeCkoImEiLE9iamVjdC5hc3NpZ24oe2hyZWY6YGh0dHBzOi8vJHsidGVzdG5ldCI9PT1lLm9wdGlvbnMubmV0d29yay5uZXR3b3JrSWQ/InRlc3RuZXQiOiJhcHAifS5teW5lYXJ3YWxsZXQuY29tL2NyZWF0ZWAsdGFyZ2V0OiJfYmxhbmsifSx7Y2hpbGRyZW46Ik15TmVhcldhbGxldCJ9KSksIiAiLCgwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLm9yQ29ubmVjdEFuQW5vdGhlckxlZGdlciIpXX0pfSkpLCJDaG9vc2VBY2NvdW50Ij09PXMmJigwLEwuanN4KShpMix7YWNjb3VudHM6aCxvblNlbGVjdGVkQ2hhbmdlZDooZSx0KT0+e2cobj0+Wy4uLm4ubWFwKChuLHIpPT57bGV0IG89ZT09PXI/dDpuLnNlbGVjdGVkO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse3NlbGVjdGVkOm99KX0pXSl9LG9uU3VibWl0OihlLHQpPT57dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPWUuZmlsdGVyKGU9PmUuc2VsZWN0ZWQpO20obik7bGV0IHI9bi5sZW5ndGg7ayhgJHsoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5jb25uZWN0aW5nIil9ICR7cn0gJHsoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5vZkFjY291bnRzIil9YCksbCgiT3ZlcnZpZXdBY2NvdW50cyIpfSxvbkNoYW5nZVJvdXRlOmU9PnsiU3BlY2lmeUhEUGF0aCI9PT1lJiZrKCgwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLnNwZWNpZnlIRFBhdGgiKSksbChlKX19KSwiQWRkQ3VzdG9tQWNjb3VudElkIj09PXMmJigwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJlbnRlci1jdXN0b20tYWNjb3VudCJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJwIix7Y2hpbGRyZW46KDAsTi50cmFuc2xhdGUpKCJtb2RhbC5sZWRnZXIuZmFpbGVkVG9BdXRvbWF0aWNhbGx5Iil9KSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJpbnB1dC13cmFwcGVyIn0se2NoaWxkcmVuOigwLEwuanN4KSgiaW5wdXQiLHt0eXBlOiJ0ZXh0IixwbGFjZWhvbGRlcjoiQWNjb3VudCBJRCIsdmFsdWU6eSxvbkNoYW5nZTplPT57dyhlLnRhcmdldC52YWx1ZSl9fSl9KSksKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiYWN0aW9uLWJ1dHRvbnMifSx7Y2hpbGRyZW46KDAsTC5qc3gpKCJidXR0b24iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibWlkZGxlQnV0dG9uIixvbkNsaWNrOigpPT5BKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RyeXtDKCEwKTtsZXQgZT15aWVsZCB2LmdldFB1YmxpY0tleShjKSx0PVt7ZGVyaXZhdGlvblBhdGg6YyxwdWJsaWNLZXk6ZSxhY2NvdW50SWQ6eSxzZWxlY3RlZDohMH1dO2codCksbSh0KSxrKCgwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLmNvbm5lY3RpbmcxQWNjb3VudCIpKSxsKCJPdmVydmlld0FjY291bnRzIil9Y2F0Y2goZSl7QyghMSksaShlJiYib2JqZWN0Ij09dHlwZW9mIGUmJiJtZXNzYWdlImluIGU/ZS5tZXNzYWdlOiJTb21ldGhpbmcgd2VudCB3cm9uZyIsdil9ZmluYWxseXtDKCExKX19KX0se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibGVkZ2VyLkNvbnRpbnVlIil9KSl9KSldfSkpLCJPdmVydmlld0FjY291bnRzIj09PXMmJigwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJvdmVydmlldy13cmFwcGVyIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoInAiLHtjaGlsZHJlbjooMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLmxlZGdlci5vdmVydmlld1RoZUxpc3RPZkF1dGhvcml6ZWQiKX0pLCgwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImFjY291bnRzIn0se2NoaWxkcmVuOnAubWFwKChlLHQpPT4oMCxMLmpzeCkoImRpdiIse2NoaWxkcmVuOigwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImFjY291bnQifSx7Y2hpbGRyZW46KDAsTC5qc3gpKCJzcGFuIix7Y2hpbGRyZW46ZS5hY2NvdW50SWR9KX0pKX0sZS5hY2NvdW50SWQpKX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJhY3Rpb24tYnV0dG9ucyJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJtaWRkbGVCdXR0b24iLG9uQ2xpY2s6KCk9PntsZXQgZT1wLm1hcChlPT4oe2Rlcml2YXRpb25QYXRoOmUuZGVyaXZhdGlvblBhdGgscHVibGljS2V5OmUucHVibGljS2V5LGFjY291bnRJZDplLmFjY291bnRJZH0pKTtyZXR1cm4gdi5zaWduSW4oe2NvbnRyYWN0SWQ6dC5jb250cmFjdElkLG1ldGhvZE5hbWVzOnQubWV0aG9kTmFtZXMsYWNjb3VudHM6ZX0pLnRoZW4oKCk9PnIoKSkuY2F0Y2goZT0+e2koYEVycm9yOiAke2UubWVzc2FnZX1gLHYpfSl9LGRpc2FibGVkOjA9PT1oLmxlbmd0aH0se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwubGVkZ2VyLmZpbmlzaCIpfSkpfSkpXX0pKV19KSldfSl9LGk3PSh7bW9kdWxlOmUsb25CYWNrOnR9KT0+KDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6IndhbGxldC1ub3QtaW5zdGFsbGVkLXdyYXBwZXIifSx7Y2hpbGRyZW46WygwLEwuanN4KShycyx7dGl0bGU6IiIsb25DbG9zZU1vZGFsOnR9KSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToid2FsbGV0LWRhdGEifSx7Y2hpbGRyZW46WygwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6YHdhbGxldC1pY29uLWJveCAke2UuaWR9YH0se2NoaWxkcmVuOigwLEwuanN4KSgiaW1nIix7c3JjOmUubWV0YWRhdGEuaWNvblVybCxhbHQ6ZS5tZXRhZGF0YS5uYW1lfSl9KSksKDAsTC5qc3gpKCJoMiIse2NoaWxkcmVuOmUubWV0YWRhdGEubmFtZX0pXX0pKSwoMCxMLmpzeHMpKCJwIix7Y2hpbGRyZW46WygwLE4udHJhbnNsYXRlKSgibW9kYWwuaW5zdGFsbC55b3VsbE5lZWRUb0luc3RhbGwiKSwiICIsZS5tZXRhZGF0YS5uYW1lLCgwLE4udHJhbnNsYXRlKSgibW9kYWwuaW5zdGFsbC50b0NvbnRpbnVlQWZ0ZXJJbnN0YWxsaW5nIiksKDAsTC5qc3hzKSgic3BhbiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJyZWZyZXNoLWxpbmsiLG9uQ2xpY2s6KCk9PndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0se2NoaWxkcmVuOlsiICIsKDAsTi50cmFuc2xhdGUpKCJtb2RhbC5pbnN0YWxsLnJlZnJlc2hUaGVQYWdlIildfSkpXX0pLCgwLEwuanN4KSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImFjdGlvbi1idXR0b25zIn0se2NoaWxkcmVuOigwLEwuanN4cykoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJtaWRkbGVCdXR0b24iLG9uQ2xpY2s6KCk9PnsiaW5qZWN0ZWQiPT09ZS50eXBlJiZ3aW5kb3cub3BlbihlLm1ldGFkYXRhLmRvd25sb2FkVXJsLCJfYmxhbmsiKX19LHtjaGlsZHJlbjpbKDAsTi50cmFuc2xhdGUpKCJtb2RhbC5pbnN0YWxsLm9wZW4iKSwiICIsZS5tZXRhZGF0YS5uYW1lXX0pKX0pKV19KSksaTk9KCk9PigwLEwuanN4cykoInN2ZyIsT2JqZWN0LmFzc2lnbih7d2lkdGg6IjE4IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTggMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTcuMjIyMjQgMS4zMzMzNEgxLjQ0NDQ2VjYuNjY2NjhINy4yMjIyNFYxLjMzMzM0WiIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTE1Ljg4ODkgMS4zMzMzNEgxMC4xMTExVjYuNjY2NjhIMTUuODg4OVYxLjMzMzM0WiIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTcuMjIyMjQgOS4zMzMzNEgxLjQ0NDQ2VjE0LjY2NjdINy4yMjIyNFY5LjMzMzM0WiIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksKDAsTC5qc3gpKCJwYXRoIix7ZDoiTTEwLjExMTEgMTMuMTQyOVYxNC42NjY3SDE1Ljg4ODlNMTAuMTExMSA5LjMzMzM0VjEwLjg1NzJIMTIuNTg3M1Y5LjMzMzM0SDE1Ljg4ODlWMTIuMzgxIixzdHJva2U6IiM0QzUxNTUiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSksKDAsTC5qc3gpKCJyZWN0Iix7eDoiMy42MTEwOCIseToiMy4zMzMzNCIsd2lkdGg6IjEuNDQ0NDQiLGhlaWdodDoiMS4zMzMzMyIsZmlsbDoiIzRDNTE1NSJ9KSwoMCxMLmpzeCkoInJlY3QiLHt4OiIzLjYxMTA4Iix5OiIxMS4zMzMzIix3aWR0aDoiMS40NDQ0NCIsaGVpZ2h0OiIxLjMzMzMzIixmaWxsOiIjNEM1MTU1In0pLCgwLEwuanN4KSgicmVjdCIse3g6IjEyLjI3NzgiLHk6IjMuMzMzMzQiLHdpZHRoOiIxLjQ0NDQ1IixoZWlnaHQ6IjEuMzMzMzMiLGZpbGw6IiM0QzUxNTUifSldfSkpLGFlPSgpPT4oMCxMLmpzeHMpKCJzdmciLE9iamVjdC5hc3NpZ24oe3dpZHRoOiIxOCIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDE4IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSx7Y2hpbGRyZW46WygwLEwuanN4KSgicGF0aCIse2Q6Ik0xMyA4LjY2NjY3VjEyLjY2NjdDMTMgMTMuMDIwMyAxMi44NDc4IDEzLjM1OTQgMTIuNTc3IDEzLjYwOTVDMTIuMzA2MSAxMy44NTk1IDExLjkzODcgMTQgMTEuNTU1NiAxNEgzLjYxMTEzQzMuMjI4MDQgMTQgMi44NjA2NCAxMy44NTk1IDIuNTg5NzUgMTMuNjA5NUMyLjMxODg3IDEzLjM1OTQgMi4xNjY2OSAxMy4wMjAzIDIuMTY2NjkgMTIuNjY2N1Y1LjMzMzMzQzIuMTY2NjkgNC45Nzk3MSAyLjMxODg3IDQuNjQwNTcgMi41ODk3NSA0LjM5MDUyQzIuODYwNjQgNC4xNDA0OCAzLjIyODA0IDQgMy42MTExMyA0SDcuOTQ0NDciLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLCgwLEwuanN4KSgicGF0aCIse2Q6Ik0xMC44MzMzIDJIMTUuMTY2NlY2IixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSwoMCxMLmpzeCkoInBhdGgiLHtkOiJNNy4yMjIyMyA5LjMzMzMzTDE1LjE2NjcgMiIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSldfSkpLGF0PSgpPT4oMCxMLmpzeCkoInN2ZyIsT2JqZWN0LmFzc2lnbih7d2lkdGg6IjI0IixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHtjaGlsZHJlbjooMCxMLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik01IDYuNUM1IDYuMzY3MzkgNS4wNTI2OCA2LjI0MDIxIDUuMTQ2NDUgNi4xNDY0NUM1LjI0MDIxIDYuMDUyNjggNS4zNjczOSA2IDUuNSA2SDE2QzE2LjI2NTIgNiAxNi41MTk2IDUuODk0NjQgMTYuNzA3MSA1LjcwNzExQzE2Ljg5NDYgNS41MTk1NyAxNyA1LjI2NTIyIDE3IDVDMTcgNC43MzQ3OCAxNi44OTQ2IDQuNDgwNDMgMTYuNzA3MSA0LjI5Mjg5QzE2LjUxOTYgNC4xMDUzNiAxNi4yNjUyIDQgMTYgNEg1LjVDNC44MzY5NiA0IDQuMjAxMDcgNC4yNjMzOSAzLjczMjIzIDQuNzMyMjNDMy4yNjMzOSA1LjIwMTA3IDMgNS44MzY5NiAzIDYuNVYxOEMzIDE4LjUzMDQgMy4yMTA3MSAxOS4wMzkxIDMuNTg1NzkgMTkuNDE0MkMzLjk2MDg2IDE5Ljc4OTMgNC40Njk1NyAyMCA1IDIwSDE5QzE5LjUzMDQgMjAgMjAuMDM5MSAxOS43ODkzIDIwLjQxNDIgMTkuNDE0MkMyMC43ODkzIDE5LjAzOTEgMjEgMTguNTMwNCAyMSAxOFY5QzIxIDguNDY5NTcgMjAuNzg5MyA3Ljk2MDg2IDIwLjQxNDIgNy41ODU3OUMyMC4wMzkxIDcuMjEwNzEgMTkuNTMwNCA3IDE5IDdINS41QzUuMzY3MzkgNyA1LjI0MDIxIDYuOTQ3MzIgNS4xNDY0NSA2Ljg1MzU1QzUuMDUyNjggNi43NTk3OSA1IDYuNjMyNjEgNSA2LjVaTTE1LjUgMTVDMTUuODk3OCAxNSAxNi4yNzk0IDE0Ljg0MiAxNi41NjA3IDE0LjU2MDdDMTYuODQyIDE0LjI3OTQgMTcgMTMuODk3OCAxNyAxMy41QzE3IDEzLjEwMjIgMTYuODQyIDEyLjcyMDYgMTYuNTYwNyAxMi40MzkzQzE2LjI3OTQgMTIuMTU4IDE1Ljg5NzggMTIgMTUuNSAxMkMxNS4xMDIyIDEyIDE0LjcyMDYgMTIuMTU4IDE0LjQzOTMgMTIuNDM5M0MxNC4xNTggMTIuNzIwNiAxNCAxMy4xMDIyIDE0IDEzLjVDMTQgMTMuODk3OCAxNC4xNTggMTQuMjc5NCAxNC40MzkzIDE0LjU2MDdDMTQuNzIwNiAxNC44NDIgMTUuMTAyMiAxNSAxNS41IDE1WiIsZmlsbDoiIzg4ODg4OCJ9KX0pKSxhbj0oe3NlbGVjdG9yOmV9KT0+e2xldFt0LG5dPSgwLEUudXNlU3RhdGUpKFtdKSxbcixvXT0oMCxFLnVzZVN0YXRlKSgiV2FsbGV0SW5mbyIpO3JldHVybigwLEUudXNlRWZmZWN0KSgoKT0+e2xldCB0PWUuc3RvcmUub2JzZXJ2YWJsZS5zdWJzY3JpYmUoZT0+e24oZS5tb2R1bGVzLmZpbHRlcihlPT4iYnJpZGdlIiE9PWUudHlwZSYmImhhcmR3YXJlIiE9PWUudHlwZSYmImluc3RhbnQtbGluayIhPT1lLnR5cGUpKX0pO3JldHVybigpPT50LnVuc3Vic2NyaWJlKCl9LFtdKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToid2FsbGV0LWhvbWUtd3JhcHBlciJ9LHtjaGlsZHJlbjpbIkdldFdhbGxldHMiPT09ciYmKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibndzLW1vZGFsLWhlYWRlci13cmFwcGVyIn0se2NoaWxkcmVuOigwLEwuanN4KShyYyx7b25DbGljazooKT0+e28oIldhbGxldEluZm8iKX19KX0pKSwiR2V0V2FsbGV0cyI9PT1yJiYoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJnZXQtd2FsbGV0LXdyYXBwZXIifSx7Y2hpbGRyZW46dC5tYXAoZT0+e2xldCB0LHtpY29uVXJsOm4sbmFtZTpyfT1lLm1ldGFkYXRhLG89WyJuZWFyZmkiLCJoZXJlLXdhbGxldCJdLmluY2x1ZGVzKGUuaWQpLGk9ImhlcmUtd2FsbGV0Ij09PWUuaWQ/Im1vYmlsZSI6IiIsYT0odD0iIiwiaW5qZWN0ZWQiPT09ZS50eXBlJiYodD1lLm1ldGFkYXRhLmRvd25sb2FkVXJsKSwiYnJvd3NlciI9PT1lLnR5cGUmJih0PWUubWV0YWRhdGEud2FsbGV0VXJsKSx0KTtyZXR1cm4oMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe3RhYkluZGV4OjAsY2xhc3NOYW1lOmBzaW5nbGUtd2FsbGV0LWdldCAke2UuaWR9YCxvbkNsaWNrOigpPT57YSYmd2luZG93Lm9wZW4oYSwiX2JsYW5rIil9fSx7Y2hpbGRyZW46WygwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJzbWFsbC1pY29uIn0se2NoaWxkcmVuOltvJiZhJiYoMCxMLmpzeCkoaTkse30pLCFvJiZhJiYoMCxMLmpzeCkoYWUse30pXX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJpY29uIn0se2NoaWxkcmVuOigwLEwuanN4KSgiaW1nIix7c3JjOm4sYWx0OnJ9KX0pKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29udGVudCJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToidGl0bGUifSx7Y2hpbGRyZW46cn0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJ0eXBlIn0se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKShgbW9kYWwud2FsbGV0VHlwZXMuJHtpfHxlLnR5cGV9YCl9KSldfSkpXX0pLGUuaWQpfSl9KSksIldhbGxldEluZm8iPT09ciYmKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToid2FsbGV0LWluZm8td3JhcHBlciJ9LHtjaGlsZHJlbjooMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiaW5mbyJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKGF0LHt9KSwoMCxMLmpzeCkoInAiLHtjaGlsZHJlbjooMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLndhbGxldC53aGF0SXNBV2FsbGV0RGVzY3JpcHRpb24iKX0pLCgwLEwuanN4KSgicCIse2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwud2FsbGV0LnNlbGVjdFdhbGxldE9yIil9KSwoMCxMLmpzeCkoInAiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiYnV0dG9uIixvbkNsaWNrOigpPT57bygiR2V0V2FsbGV0cyIpfX0se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwud2FsbGV0LmNyZWF0ZU5ld1dhbGxldCIpfSkpXX0pKX0pKV19KSl9LGFyPSh7bW9kdWxlOmUsb25DbG9zZU1vZGFsOnR9KT0+KDAsTC5qc3hzKShFLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6Im53cy1tb2RhbC1oZWFkZXIifSx7Y2hpbGRyZW46WygwLEwuanN4KSgiaDMiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibWlkZGxlVGl0bGUifSx7Y2hpbGRyZW46IiJ9KSksKDAsTC5qc3gpKHJhLHtvbkNsaWNrOnR9KV19KSksKDAsTC5qc3gpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiY29ubmVjdGluZy13cmFwcGVyIn0se2NoaWxkcmVuOigwLEwuanN4cykoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJjb250ZW50In0se2NoaWxkcmVuOlsoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToiaWNvbiJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImdyZWVuLWRvdCJ9KSwoMCxMLmpzeCkoImltZyIse3NyYzpudWxsPT1lP3ZvaWQgMDplLm1ldGFkYXRhLmljb25VcmwsYWx0Om51bGw9PWU/dm9pZCAwOmUubWV0YWRhdGEubmFtZX0pXX0pKSwoMCxMLmpzeCkoImgzIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6ImNvbm5lY3RpbmctbmFtZSJ9LHtjaGlsZHJlbjpudWxsPT1lP3ZvaWQgMDplLm1ldGFkYXRhLm5hbWV9KSksKDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6IndhbGxldC1jb25uZWN0ZWQtc3VjY2VzcyJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKG9pLHt9KSwoMCxMLmpzeCkoInNwYW4iLHtjaGlsZHJlbjooMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLndhbGxldC5jb25uZWN0aW9uU3VjY2Vzc2Z1bCIpfSldfSkpXX0pKX0pKV19KTt2YXIgYW89ZnVuY3Rpb24oKXt2YXIgZT1lTSh0aGlzKSx0PSIiO3JldHVybiBlLmhhc0luZGljZXMmJih0Kz0iZCIpLGUuZ2xvYmFsJiYodCs9ImciKSxlLmlnbm9yZUNhc2UmJih0Kz0iaSIpLGUubXVsdGlsaW5lJiYodCs9Im0iKSxlLmRvdEFsbCYmKHQrPSJzIiksZS51bmljb2RlJiYodCs9InUiKSxlLnVuaWNvZGVTZXRzJiYodCs9InYiKSxlLnN0aWNreSYmKHQrPSJ5IiksdH0sYWk9UmVnRXhwLnByb3RvdHlwZSxhYT10OC5QUk9QRVIsYXM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5mbGFncztyZXR1cm4hKHZvaWQgMD09PXQmJiEoImZsYWdzImluIGFpKSYmIWVhKGUsImZsYWdzIikmJmVaKGFpLGUpKT90OmVXKGFvLGUpfSxhbD0idG9TdHJpbmciLGFjPVJlZ0V4cC5wcm90b3R5cGUsYXU9YWNbYWxdLGFkPVIoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPT1hdS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSksYWY9YWEmJmF1Lm5hbWUhPT1hbDsoYWR8fGFmKSYmbmwoYWMsYWwsZnVuY3Rpb24oKXt2YXIgZT1lTSh0aGlzKTtyZXR1cm4iLyIrcncoZS5zb3VyY2UpKyIvIitydyhhcyhlKSl9LHt1bnNhZmU6ITB9KTtsZXQgYWg9KHt3YWxsZXQ6ZSx1cmk6dCxoYW5kbGVPcGVuRGVmYXVsdE1vZGFsOm59KT0+e2xldFtyLG9dPUUuZGVmYXVsdC51c2VTdGF0ZSgiIiksW2ksYV09RS5kZWZhdWx0LnVzZVN0YXRlKCIiKTtyZXR1cm4gRS5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e0Eodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dCYmYSgoeWllbGQgZnVuY3Rpb24oZSl7cmV0dXJuIEEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCBrLmRlZmF1bHQudG9TdHJpbmcoZSx7bWFyZ2luOjAsdHlwZToic3ZnIn0pfSl9KHQpKSl9KX0sW3RdKSwoMCxMLmpzeCkoInNlY3Rpb24iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToic2Nhbi1xci1jb2RlIn0se2NoaWxkcmVuOigwLEwuanN4cykoInNlY3Rpb24iLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToicXItY29kZSJ9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJpbWciLHtzcmM6bnVsbD09ZT92b2lkIDA6ZS5tZXRhZGF0YS5pY29uVXJsLGFsdDpudWxsPT1lP3ZvaWQgMDplLm1ldGFkYXRhLm5hbWV9KSwoMCxMLmpzeCkoImRpdiIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6aX19KSwoMCxMLmpzeCkoInAiLHtjaGlsZHJlbjooMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLnFyLnNjYW5RUkNvZGVNZXNzYWdlIil9KSwoMCxMLmpzeHMpKCJwIix7Y2hpbGRyZW46WygwLEwuanN4KSgic3BhbiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJjb3B5LXRvLWNsaXBib2FyZCIsb25DbGljazooKT0+e3QmJigoMCxTLmRlZmF1bHQpKHQpP28oKDAsTi50cmFuc2xhdGUpKCJtb2RhbC5xci5jb3BpZWRUb0NsaXBib2FyZCIpKTpvKCgwLE4udHJhbnNsYXRlKSgibW9kYWwucXIuZmFpbGVkVG9Db3B5IikpLHNldFRpbWVvdXQoKCk9Pm8oIiIpLDEyMDApKX19LHtjaGlsZHJlbjpyfHwoMCxOLnRyYW5zbGF0ZSkoIm1vZGFsLnFyLmNvcHlUb0NsaXBib2FyZCIpfSkpLCIgIiwoMCxOLnRyYW5zbGF0ZSkoImdlbmVyYWwub3IiKSwiICIsKDAsTC5qc3gpKCJzcGFuIixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6Im9wZW4taW4tb2ZmaWNpYWwtZGlhbG9ndWUiLG9uQ2xpY2s6bn0se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwucXIub3BlbkluT2ZmaWNpYWxEaWFsb2d1ZSIpfSkpXX0pXX0pKX0pKX0sYWc9KHtzZWxlY3RvcjplLG9wdGlvbnM6dCx2aXNpYmxlOm4saGlkZTpyLGVtaXR0ZXI6b30pPT57dmFyIGksYSxzO2xldFtsLGNdPSgwLEUudXNlU3RhdGUpKHtuYW1lOiJXYWxsZXRIb21lIn0pLFt1LGRdPSgwLEUudXNlU3RhdGUpKG51bGwpLFtmLGhdPSgwLEUudXNlU3RhdGUpKCksW2cscF09KDAsRS51c2VTdGF0ZSkoKSxbbSx2XT0oMCxFLnVzZVN0YXRlKSghMSksW2oseV09KDAsRS51c2VTdGF0ZSkoITEpOygwLEUudXNlRWZmZWN0KSgoKT0+e2lmKG4pe3YoITEpLHkoITApO3JldHVybn12KCEwKTtsZXQgZT1zZXRUaW1lb3V0KCgpPT57eSghMSksdighMSl9LDIwMCk7cmV0dXJuKCk9PmNsZWFyVGltZW91dChlKX0sW25dKSwoMCxFLnVzZUVmZmVjdCkoKCk9PntpZighbilyZXR1cm47Yyh7bmFtZToiV2FsbGV0SG9tZSJ9KSwoMCxOLmFsbG93T25seUxhbmd1YWdlKShlLm9wdGlvbnMubGFuZ3VhZ2VDb2RlKTtsZXR7c2VsZWN0ZWRXYWxsZXRJZDp0LG1vZHVsZXM6cn09ZS5zdG9yZS5nZXRTdGF0ZSgpO2lmKHQpe2xldCBlPXIuZmluZChlPT5lLmlkPT09dCk7aChlKSxjKHtuYW1lOiJXYWxsZXRDb25uZWN0ZWQiLHBhcmFtczp7bW9kdWxlOmV9fSl9cCgiIil9LFtuXSksKDAsRS51c2VFZmZlY3QpKCgpPT57bGV0IHQ9ZS5vbigibmV0d29ya0NoYW5nZWQiLCh7bmV0d29ya0lkOnR9KT0+e2lmKHQ9PT1lLm9wdGlvbnMubmV0d29yay5uZXR3b3JrSWQpcmV0dXJuIHcoe30pO2Moe25hbWU6IldhbGxldE5ldHdvcmtDaGFuZ2VkIn0pfSk7cmV0dXJuKCk9PnQucmVtb3ZlKCl9LFtdKTtsZXQgdz0oMCxFLnVzZUNhbGxiYWNrKSgoe2hpZGVSZWFzb246ZX0pPT57ZChudWxsKSxjKHtuYW1lOiJXYWxsZXRIb21lIn0pLCJ1c2VyLXRyaWdnZXJlZCI9PT1lJiZvLmVtaXQoIm9uSGlkZSIse2hpZGVSZWFzb246ZX0pLCJ3YWxsZXQtbmF2aWdhdGlvbiI9PT1lJiZvLmVtaXQoIm9uSGlkZSIse2hpZGVSZWFzb246ZX0pLHIoKX0sW3Isb10pOygwLEUudXNlRWZmZWN0KSgoKT0+e2xldCBlPWU9PnsiRXNjYXBlIj09PWUua2V5JiZ3KHtoaWRlUmVhc29uOiJ1c2VyLXRyaWdnZXJlZCJ9KX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixlKSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGUpfSxbd10pO2xldCBiPShuLHIpPT5BKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2gobik7bGV0e3NlbGVjdGVkV2FsbGV0SWQ6b309ZS5zdG9yZS5nZXRTdGF0ZSgpO2lmKG89PT1uLmlkKXJldHVybiB2b2lkIGMoe25hbWU6IldhbGxldENvbm5lY3RlZCIscGFyYW1zOnttb2R1bGU6bn19KTt0cnl7bGV0e2RlcHJlY2F0ZWQ6byxhdmFpbGFibGU6aX09bi5tZXRhZGF0YTtpZigiaW5qZWN0ZWQiPT09bi50eXBlJiYhaSlyZXR1cm4gdm9pZCBjKHtuYW1lOiJXYWxsZXROb3RJbnN0YWxsZWQiLHBhcmFtczp7bW9kdWxlOm59fSk7bGV0IGE9eWllbGQgbi53YWxsZXQoKTtpZihvKXtkKGAke24ubWV0YWRhdGEubmFtZX0gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHNlbGVjdCBhbm90aGVyIHdhbGxldC5gKSxjKHtuYW1lOiJBbGVydE1lc3NhZ2UiLHBhcmFtczp7bW9kdWxlOm59fSk7cmV0dXJufWlmKCJoYXJkd2FyZSI9PT1hLnR5cGUpcmV0dXJuIHZvaWQgYyh7bmFtZToiRGVyaXZhdGlvblBhdGgiLHBhcmFtczp7d2FsbGV0SWQ6YS5pZHx8ImxlZGdlciJ9fSk7aWYoYyh7bmFtZToiV2FsbGV0Q29ubmVjdGluZyIscGFyYW1zOnt3YWxsZXQ6YX19KSwiYnJpZGdlIj09PWEudHlwZSl7bGV0IG49ZS5vbigidXJpQ2hhbmdlZCIsKHt1cmk6ZX0pPT57cChlKSxjKHtuYW1lOiJTY2FuUVJDb2RlIixwYXJhbXM6e3VyaTplLHdhbGxldDphfX0pfSk7eWllbGQgYS5zaWduSW4oe2NvbnRyYWN0SWQ6dC5jb250cmFjdElkLG1ldGhvZE5hbWVzOnQubWV0aG9kTmFtZXMscXJDb2RlTW9kYWw6cn0pLG4ucmVtb3ZlKCksdyh7aGlkZVJlYXNvbjoid2FsbGV0LW5hdmlnYXRpb24ifSk7cmV0dXJufWlmKCJicm93c2VyIj09PWEudHlwZSl7eWllbGQgYS5zaWduSW4oe2NvbnRyYWN0SWQ6dC5jb250cmFjdElkLG1ldGhvZE5hbWVzOnQubWV0aG9kTmFtZXMsc3VjY2Vzc1VybDphLm1ldGFkYXRhLnN1Y2Nlc3NVcmwsZmFpbHVyZVVybDphLm1ldGFkYXRhLmZhaWx1cmVVcmx9KSx3KHtoaWRlUmVhc29uOiJ3YWxsZXQtbmF2aWdhdGlvbiJ9KTtyZXR1cm59eWllbGQgYS5zaWduSW4oe2NvbnRyYWN0SWQ6dC5jb250cmFjdElkLG1ldGhvZE5hbWVzOnQubWV0aG9kTmFtZXN9KSx3KHtoaWRlUmVhc29uOiJ3YWxsZXQtbmF2aWdhdGlvbiJ9KX1jYXRjaChyKXtsZXR7bmFtZTplfT1uLm1ldGFkYXRhLHQ9ciYmIm9iamVjdCI9PXR5cGVvZiByJiYibWVzc2FnZSJpbiByP3IubWVzc2FnZToiU29tZXRoaW5nIHdlbnQgd3JvbmciO2QoYEZhaWxlZCB0byBzaWduIGluIHdpdGggJHtlfTogJHt0fWApLGMoe25hbWU6IkFsZXJ0TWVzc2FnZSIscGFyYW1zOnttb2R1bGU6bn19KX19KTtyZXR1cm4gaj8oMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZTpgbndzLW1vZGFsLXdyYXBwZXIgJHsoZT0+e3N3aXRjaChlKXtjYXNlImRhcmsiOnJldHVybiJkYXJrLXRoZW1lIjtjYXNlImxpZ2h0IjpyZXR1cm4ibGlnaHQtdGhlbWUiO2RlZmF1bHQ6cmV0dXJuIiJ9fSkobnVsbD09dD92b2lkIDA6dC50aGVtZSl9ICR7bT8iY2xvc2luZyI6Im9wZW4ifWB9LHtjaGlsZHJlbjpbKDAsTC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Im53cy1tb2RhbC1vdmVybGF5IixvbkNsaWNrOigpPT57dyh7aGlkZVJlYXNvbjoidXNlci10cmlnZ2VyZWQifSl9fSksKDAsTC5qc3hzKSgiZGl2IixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6Im53cy1tb2RhbC1iYWNrZ3JvdW5kIn0se2NoaWxkcmVuOlsoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibndzLW1vZGFsLXRpdGxlLXdyYXBwZXIifSx7Y2hpbGRyZW46WygwLEwuanN4KSgiaDIiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibndzLW1vZGFsLXRpdGxlIn0se2NoaWxkcmVuOigwLE4udHJhbnNsYXRlKSgibW9kYWwud2FsbGV0LmNvbm5lY3RZb3VyV2FsbGV0Iil9KSksKDAsTC5qc3gpKHJhLHtvbkNsaWNrOigpPT53KHtoaWRlUmVhc29uOiJ1c2VyLXRyaWdnZXJlZCJ9KX0pXX0pKSwoMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibndzLW1vZGFsIn0se2NoaWxkcmVuOlsoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJtb2RhbC1sZWZ0In0se2NoaWxkcmVuOigwLEwuanN4KShvcix7aGFuZGxlV2FsbGV0Q2xpY2s6ZT0+e2IoZSwhMSl9LHNlbGVjdG9yOmV9KX0pKSwoMCxMLmpzeCkoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOiJtb2RhbC1yaWdodCJ9LHtjaGlsZHJlbjooMCxMLmpzeHMpKCJkaXYiLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZToibndzLW1vZGFsLWJvZHkifSx7Y2hpbGRyZW46WyJBbGVydE1lc3NhZ2UiPT09bC5uYW1lJiZ1JiYoMCxMLmpzeCkob2wse21lc3NhZ2U6dSxtb2R1bGU6bnVsbD09KGk9bC5wYXJhbXMpP3ZvaWQgMDppLm1vZHVsZSxvbkJhY2s6ZT0+e2UmJmIoZiwhMSksZChudWxsKSxjKHtuYW1lOiJXYWxsZXRIb21lIn0pfX0pLCJEZXJpdmF0aW9uUGF0aCI9PT1sLm5hbWUmJigwLEwuanN4KShpNix7c2VsZWN0b3I6ZSxvcHRpb25zOnQsb25Db25uZWN0ZWQ6KCk9Pnt3KHtoaWRlUmVhc29uOiJ3YWxsZXQtbmF2aWdhdGlvbiJ9KX0scGFyYW1zOmwucGFyYW1zLG9uQmFjazooKT0+Yyh7bmFtZToiV2FsbGV0SG9tZSJ9KSxvbkVycm9yOih0LG4pPT57bGV0e21vZHVsZXM6cn09ZS5zdG9yZS5nZXRTdGF0ZSgpLG89ci5maW5kKGU9PmUuaWQ9PT1uLmlkKTtkKHQpLGMoe25hbWU6IkFsZXJ0TWVzc2FnZSIscGFyYW1zOnttb2R1bGU6b319KX0sb25DbG9zZU1vZGFsOigpPT53KHtoaWRlUmVhc29uOiJ1c2VyLXRyaWdnZXJlZCJ9KX0pLCJXYWxsZXROZXR3b3JrQ2hhbmdlZCI9PT1sLm5hbWUmJigwLEwuanN4KShydSx7c2VsZWN0b3I6ZSxvbkJhY2s6KCk9PmMoe25hbWU6IldhbGxldEhvbWUifSksb25DbG9zZU1vZGFsOigpPT53KHtoaWRlUmVhc29uOiJ1c2VyLXRyaWdnZXJlZCJ9KX0pLCJXYWxsZXROb3RJbnN0YWxsZWQiPT09bC5uYW1lJiYoMCxMLmpzeCkoaTcse21vZHVsZTpudWxsPT0oYT1sLnBhcmFtcyk/dm9pZCAwOmEubW9kdWxlLG9uQmFjazooKT0+e2Moe25hbWU6IldhbGxldEhvbWUifSl9fSksIldhbGxldENvbm5lY3RpbmciPT09bC5uYW1lJiYoMCxMLmpzeCkoaTMse3dhbGxldDpudWxsPT0ocz1sLnBhcmFtcyk/dm9pZCAwOnMud2FsbGV0LG9uQmFjazooKT0+e2Moe25hbWU6IldhbGxldEhvbWUifSl9fSksIldhbGxldEhvbWUiPT09bC5uYW1lJiYoMCxMLmpzeCkoYW4se3NlbGVjdG9yOmV9KSwiV2FsbGV0Q29ubmVjdGVkIj09PWwubmFtZSYmKDAsTC5qc3gpKGFyLHttb2R1bGU6ZixvbkNsb3NlTW9kYWw6KCk9Pncoe2hpZGVSZWFzb246InVzZXItdHJpZ2dlcmVkIn0pfSksIlNjYW5RUkNvZGUiPT09bC5uYW1lJiYoMCxMLmpzeCkoYWgse2hhbmRsZU9wZW5EZWZhdWx0TW9kYWw6KCk9PntiKGYsITApfSx1cmk6Zyx3YWxsZXQ6Zn0pXX0pKX0pKV19KSldfSkpXX0pKTpudWxsfSxhcD1udWxsLGFtPW51bGw7ZS5zKFsic2V0dXBNb2RhbCIsMCwoZSx0KT0+e2lmKCFhbSl7bGV0IGU9ZG9jdW1lbnQuYm9keSx0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaWQ9Im5lYXItd2FsbGV0LXNlbGVjdG9yLW1vZGFsIixlLmFwcGVuZENoaWxkKHQpLGFtPSgwLE8uY3JlYXRlUm9vdCkodCl9bGV0IG49bmV3IE4uRXZlbnRFbWl0dGVyO2Uuc3RvcmUuZ2V0U3RhdGUoKS5tb2R1bGVzLmZvckVhY2goZT0+QSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZigidG9wTGV2ZWxJbmplY3RlZCJpbiBlLm1ldGFkYXRhKXtpZighZS5tZXRhZGF0YS50b3BMZXZlbEluamVjdGVkKXJldHVybjtsZXQgbj15aWVsZCBlLndhbGxldCgpOyJpbmplY3RlZCI9PT1uLnR5cGUmJih5aWVsZCBuLnNpZ25Jbih7Y29udHJhY3RJZDp0LmNvbnRyYWN0SWQsbWV0aG9kTmFtZXM6dC5tZXRob2ROYW1lc30pKX19KSk7bGV0IHI9KG89ITEpPT57YW0ucmVuZGVyKCgwLEwuanN4KShhZyx7c2VsZWN0b3I6ZSxvcHRpb25zOnQsdmlzaWJsZTpvLGhpZGU6KCk9PnIoITEpLGVtaXR0ZXI6bn0pKX07cmV0dXJuIGFwfHwoYXA9e3Nob3c6KCk9PntyKCEwKX0saGlkZTooKT0+e3IoITEpfSxvbjooZSx0KT0+bi5vbihlLHQpLG9mZjooZSx0KT0+e24ub2ZmKGUsdCl9fSksYXB9XSl9XSk7 |
| 1 | MToiJFNyZWFjdC5mcmFnbWVudCIKMjpJWzQ0MTQyLFsiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qcyIsIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanMiXSwiZGVmYXVsdCJdCjM6SVsyODg2NSxbIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanMiLCIvX25leHQvc3RhdGljL2NodW5rcy8waHJ6MTNpeWhlYW10LmpzIl0sImRlZmF1bHQiXQo0OltdCjA6eyJyc2MiOlsiJCIsIiQxIiwiYyIseyJjaGlsZHJlbiI6W251bGwsWyIkIiwiJEwyIixudWxsLHsicGFyYWxsZWxSb3V0ZXJLZXkiOiJjaGlsZHJlbiIsInRlbXBsYXRlIjpbIiQiLCIkTDMiLG51bGwse31dfV1dfV0sImlzUGFydGlhbCI6ZmFsc2UsInN0YWxlVGltZSI6MzAwLCJ2YXJ5UGFyYW1zIjoiJFc0IiwiYnVpbGRJZCI6IkR0anJYTUV4a0ZBaEszZ1JucTZwdiJ9Cg== |
| 1 | MToiJFNyZWFjdC5mcmFnbWVudCIKMjpJWzY5NjQwLFsiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qcyIsIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanMiXSwiQ2xpZW50UGFnZVJvb3QiXQozOklbOTM2MzgsWyIvX25leHQvc3RhdGljL2NodW5rcy8wOHExdDFlY2Y5OS05LmpzIiwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qcyIsIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBjeG53YjNib20waHAuanMiXSwiZGVmYXVsdCJdCjY6SVsyNTI1NCxbIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanMiLCIvX25leHQvc3RhdGljL2NodW5rcy8waHJ6MTNpeWhlYW10LmpzIl0sIk91dGxldEJvdW5kYXJ5Il0KNzoiJFNyZWFjdC5zdXNwZW5zZSIKMDp7InJzYyI6WyIkIiwiJDEiLCJjIix7ImNoaWxkcmVuIjpbWyIkIiwiJEwyIixudWxsLHsiQ29tcG9uZW50IjoiJDMiLCJzZXJ2ZXJQcm92aWRlZFBhcmFtcyI6eyJzZWFyY2hQYXJhbXMiOnt9LCJwYXJhbXMiOnt9LCJwcm9taXNlcyI6WyIkQDQiLCIkQDUiXX19XSxbWyIkIiwic2NyaXB0Iiwic2NyaXB0LTAiLHsic3JjIjoiL19uZXh0L3N0YXRpYy9jaHVua3MvMGN4bndiM2JvbTBocC5qcyIsImFzeW5jIjp0cnVlfV1dLFsiJCIsIiRMNiIsbnVsbCx7ImNoaWxkcmVuIjpbIiQiLCIkNyIsbnVsbCx7Im5hbWUiOiJOZXh0Lk1ldGFkYXRhT3V0bGV0IiwiY2hpbGRyZW4iOiIkQDgifV19XV19XSwiaXNQYXJ0aWFsIjpmYWxzZSwic3RhbGVUaW1lIjozMDAsInZhcnlQYXJhbXMiOm51bGwsImJ1aWxkSWQiOiJEdGpyWE1FeGtGQWhLM2dSbnE2cHYifQo0Ont9CjU6IiQwOnJzYzpwcm9wczpjaGlsZHJlbjowOnByb3BzOnNlcnZlclByb3ZpZGVkUGFyYW1zOnBhcmFtcyIKODpudWxsCg== |
| 1 | KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDk2NzQsZT0+eyJ1c2Ugc3RyaWN0IjtsZXQgdD0oMCxlLmkoMzgwNDUpLmRlZmF1bHQpKCJ1c2VycyIsW1sicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIixrZXk6IjF5eWl0cSJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQiLGtleToiMTZncjhqIn1dLFsicGF0aCIse2Q6Ik0yMiAyMXYtMmE0IDQgMCAwIDAtMy0zLjg3IixrZXk6ImtzaGVnZCJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCIsa2V5OiJudWZrOCJ9XV0pO2UucyhbIlVzZXJzIiwwLHRdLDk2NzQpfSwyNjQ5MixlPT57InVzZSBzdHJpY3QiO2xldCB0PSgwLGUuaSgzODA0NSkuZGVmYXVsdCkoImdsb2JlIixbWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAiLGtleToiMW1nbGF5In1dLFsicGF0aCIse2Q6Ik0xMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCAwLTIwIixrZXk6IjEzbzF6bCJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCIsa2V5OiI5aTRwdTQifV1dKTtlLnMoWyJHbG9iZSIsMCx0XSwyNjQ5Mil9LDg5NjE4LGU9PnsidXNlIHN0cmljdCI7bGV0IHQ9KDAsZS5pKDM4MDQ1KS5kZWZhdWx0KSgidHJpYW5nbGUtYWxlcnQiLFtbInBhdGgiLHtkOiJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiLGtleToid21vZW5xIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQiLGtleToianV6cHU3In1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEiLGtleToicDMycDA1In1dXSk7ZS5zKFsiQWxlcnRUcmlhbmdsZSIsMCx0XSw4OTYxOCl9LDkxMjM1LGU9PnsidXNlIHN0cmljdCI7dmFyIHQ9ZS5pKDE4OTMyKSxvPWUuaSg2Njk2NyksYT1lLmkoNDQzNjkpLG49ZS5pKDg2NTk2KSxpPWUuaSgxMzc3Mykscj1lLmkoMjM3MTQpLHM9ZS5pKDQ2OTkyKSxsPWUuaSgyNTUzKTtsZXQgYz0oMCxlLmkoMzgwNDUpLmRlZmF1bHQpKCJjaGFydC1jb2x1bW4iLFtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiLGtleToiYzI0aTQ4In1dLFsicGF0aCIse2Q6Ik0xOCAxN1Y5IixrZXk6IjJiejYwbiJ9XSxbInBhdGgiLHtkOiJNMTMgMTdWNSIsa2V5OiIxZnJkdDgifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMiLGtleToiMTdza2EwIn1dXSk7dmFyIGQ9ZS5pKDg5NjE4KSxwPWUuaSg0NDg2NiksdT1lLmkoMjY0OTIpLGg9ZS5pKDk2NzQpLGc9ZS5pKDg2MTY0KTtlLnMoWyJkZWZhdWx0IiwwLGZ1bmN0aW9uKCl7bGV0IGU9KDAsYS51c2VUaGVtZSkoKSxtPVt7aWQ6Im92ZXJ2aWV3IixpY29uOigwLHQuanN4KShuLlNoaWVsZCx7c2l6ZToyMCxjb2xvcjplLmFjY2VudH0pLHRpdGxlOiJXaGF0IGlzIElyb25TaGllbGQ/Iixjb250ZW50OlsiSXJvblNoaWVsZCBpcyBhIGRlY2VudHJhbGl6ZWQgQUkgc2VjdXJpdHkgYW5kIGludGVsbGlnZW5jZSBwbGF0Zm9ybSBidWlsdCBvbiBORUFSIFByb3RvY29sLiBBdCBpdHMgY29yZSBpcyBJcm9uQ2xhdzogYW4gYXV0b25vbW91cyBBSSBhZ2VudCB0aGF0IG9wZXJhdGVzIGluc2lkZSBUZWxlZ3JhbSBhbmQgRGlzY29yZCBjb21tdW5pdGllcywgcHJvdmlkaW5nIHJlYWwtdGltZSB0aHJlYXQgZGV0ZWN0aW9uLCB0b2tlbiByZXNlYXJjaCwgcG9ydGZvbGlvIHRyYWNraW5nLCBhbmQgZ292ZXJuYW5jZTogYWxsIGNvbnRyb2xsZWQgYnkgdG9rZW4gaG9sZGVycyBvbi1jaGFpbi4iLCJVbmxpa2UgdHJhZGl0aW9uYWwgc2VjdXJpdHkgdG9vbHMgdGhhdCByZXF1aXJlIGNvbnN0YW50IG1hbnVhbCBvdmVyc2lnaHQsIElyb25DbGF3IGlzIGFsd2F5cy1vbiwgYWx3YXlzLWxlYXJuaW5nLCBhbmQgY29tbXVuaXR5LWdvdmVybmVkLiBFdmVyeSBtaXNzaW9uIGl0IHJ1bnMsIGV2ZXJ5IHByb21wdCBpdCBmb2xsb3dzLCBhbmQgZXZlcnkgY2FwYWJpbGl0eSBpdCB1bmxvY2tzIGlzIGRlY2lkZWQgYnkgJElST05DTEFXIHN0YWtlcnMgdGhyb3VnaCBvbi1jaGFpbiBwcm9wb3NhbHMuIl19LHtpZDoiaXJvbmNsYXciLGljb246KDAsdC5qc3gpKGkuQm90LHtzaXplOjIwLGNvbG9yOmUuYWNjZW50fSksdGl0bGU6Iklyb25DbGF3IEFJIEFnZW50Iixjb250ZW50OlsiSXJvbkNsYXcgaXMgdGhlIGF1dG9ub21vdXMgQUkgYWdlbnQgYXQgdGhlIGhlYXJ0IG9mIElyb25TaGllbGQuIFBvd2VyZWQgYnkgTkVBUiBBSSwgaXQgb3BlcmF0ZXMgMjQvNyBpbnNpZGUgeW91ciBjb21tdW5pdHkgY2hhdHMgd2l0aG91dCBhbnkgbWFudWFsIGludGVydmVudGlvbi4iXSxmZWF0dXJlczpbe2xhYmVsOiIvcmVzZWFyY2ggW3Rva2VuXSIsZGVzYzoiRnVsbCB0b2tlbiByZXBvcnQ6IHByaWNlLCBtYXJrZXQgY2FwLCBsaXF1aWRpdHksIGF1ZGl0IHN0YXR1cywgcmlzayBmbGFncywgYW5kIHRydXN0IHNjb3JlIn0se2xhYmVsOiIvc3VtbWFyeSBbZ3JvdXBdIixkZXNjOiJTdW1tYXJpemUgYW55IHB1YmxpYyBUZWxlZ3JhbSBncm91cCdzIHJlY2VudCBjb252ZXJzYXRpb24gaW50byBrZXkgcG9pbnRzLCB0b2tlbnMgbWVudGlvbmVkLCBhbmQgcmVkIGZsYWdzIn0se2xhYmVsOiIvdmVyaWZ5IFtjbGFpbV0iLGRlc2M6IkZhY3QtY2hlY2sgYW55IGNsYWltIGFnYWluc3QgbGl2ZSBkYXRhOiByZXR1cm5zIHZlcmRpY3QgKFZlcmlmaWVkL0ZhbHNlL1VudmVyaWZpZWQpIHdpdGggc291cmNlcyJ9LHtsYWJlbDoiL3BvcnRmb2xpbyIsZGVzYzoiTXVsdGktd2FsbGV0IHBvcnRmb2xpbyB2aWV3IHdpdGggMjRoIFAmTCwgdG9rZW4gYnJlYWtkb3duLCBhbmQgcmlzayBhbGVydHMifSx7bGFiZWw6Ii9zY2FuIFt1cmwvd2FsbGV0XSIsZGVzYzoiU2NhbiBhbnkgVVJMIG9yIHdhbGxldCBhZGRyZXNzIGFnYWluc3Qga25vd24gcGhpc2hpbmcsIHNjYW0sIGFuZCBtYWxpY2lvdXMgZGF0YWJhc2VzIn0se2xhYmVsOiIvYWxlcnQgW3Rva2VuXSBbY29uZGl0aW9uXSIsZGVzYzoiU2V0IHByaWNlIGFsZXJ0czogZ2V0IG5vdGlmaWVkIHdoZW4gYSB0b2tlbiBoaXRzIHlvdXIgdGFyZ2V0IHZpYSBETSJ9LHtsYWJlbDoiQXV0bzogTGluayBTY2FubmluZyIsZGVzYzoiRXZlcnkgVVJMIHNoYXJlZCBpbiBwcm90ZWN0ZWQgZ3JvdXBzIGlzIHNpbGVudGx5IHNjYW5uZWQgaW4gcmVhbCB0aW1lIn0se2xhYmVsOiJBdXRvOiBXYWxsZXQgQWxlcnRzIixkZXNjOiJGbGFnZ2VkIHdhbGxldCBhZGRyZXNzZXMgZGV0ZWN0ZWQgYW5kIHdhcm5lZCBiZWZvcmUgZnVuZHMgbW92ZSJ9XX0se2lkOiJzZWN1cml0eSIsaWNvbjooMCx0LmpzeCkoci5Mb2NrLHtzaXplOjIwLGNvbG9yOmUuYWNjZW50fSksdGl0bGU6IlNlY3VyaXR5IEVuZ2luZSIsY29udGVudDpbIklyb25TaGllbGQncyBzZWN1cml0eSBlbmdpbmUgcnVucyBjb250aW51b3VzbHkgYWNyb3NzIGFsbCBwcm90ZWN0ZWQgY29tbXVuaXRpZXMuIEl0IG1haW50YWlucyBhIGdyb3dpbmcgZGF0YWJhc2Ugb2YgZmxhZ2dlZCBVUkxzLCBtYWxpY2lvdXMgd2FsbGV0IGFkZHJlc3Nlcywga25vd24gcGhpc2hpbmcgcGF0dGVybnMsIGFuZCBzY2FtIHNpZ25hdHVyZXMuIiwiV2hlbiBhIHRocmVhdCBpcyBkZXRlY3RlZDogd2hldGhlciBpdCdzIGEgcGhpc2hpbmcgbGluaywgYW4gaW1wZXJzb25hdG9yLCBvciBhIGZsYWdnZWQgd2FsbGV0OiBJcm9uQ2xhdyBhY3RzIGltbWVkaWF0ZWx5OiB0aGUgbWVzc2FnZSBpcyBmbGFnZ2VkLCB0aGUgY29tbXVuaXR5IGlzIHdhcm5lZCwgYW5kIHRoZSB0aHJlYXQgaXMgbG9nZ2VkIGZvciBmdXR1cmUgcmVmZXJlbmNlLiBDb21tdW5pdHkgbWVtYmVycyBjYW4gYWxzbyBzdWJtaXQgcmVwb3J0cyB2aWEgdGhlIC9yZXBvcnQgY29tbWFuZCBvciB0aGUgVGVsZWdyYW0gYm90LiJdLHN0YXRzOlt7bGFiZWw6IlBoaXNoaW5nIERldGVjdGlvbiIsdmFsdWU6IlJlYWwtdGltZSBVUkwgc2Nhbm5pbmcgYWdhaW5zdCBrbm93biB0aHJlYXQgZGF0YWJhc2VzIn0se2xhYmVsOiJXYWxsZXQgU2NyZWVuaW5nIix2YWx1ZToiQ3Jvc3MtcmVmZXJlbmNlIGFkZHJlc3NlcyB3aXRoIGZsYWdnZWQgd2FsbGV0IHJlZ2lzdHJpZXMifSx7bGFiZWw6IkltcGVyc29uYXRpb24gRGV0ZWN0aW9uIix2YWx1ZToiUGF0dGVybiBtYXRjaGluZyBhZ2FpbnN0IGFkbWluIG5hbWVzIGFuZCBwcm9maWxlIHNpZ25hdHVyZXMifSx7bGFiZWw6IkNvbW11bml0eSBSZXBvcnRpbmciLHZhbHVlOiJDcm93ZHNvdXJjZWQgdGhyZWF0IGludGVsIHZpYSAvcmVwb3J0IGNvbW1hbmQifV19LHtpZDoiZ292ZXJuYW5jZSIsaWNvbjooMCx0LmpzeCkocy5Wb3RlLHtzaXplOjIwLGNvbG9yOmUuYWNjZW50fSksdGl0bGU6Ik9uLUNoYWluIEdvdmVybmFuY2UiLGNvbnRlbnQ6WyJJcm9uU2hpZWxkIGlzIGZ1bGx5IGdvdmVybmVkIGJ5IGl0cyB0b2tlbiBob2xkZXJzLiBBbnlvbmUgd2hvIHN0YWtlcyAkSVJPTkNMQVcgdG9rZW5zIGdhaW5zIHZvdGluZyBwb3dlciBwcm9wb3J0aW9uYWwgdG8gdGhlaXIgc3Rha2UuIEdvdmVybmFuY2UgcHJvcG9zYWxzIGNhbiBtb2RpZnkgSXJvbkNsYXcncyBiZWhhdmlvciBpbiByZWFsLXRpbWU6IG5vIHRlYW0gaW50ZXJ2ZW50aW9uIHJlcXVpcmVkLiJdLHN0ZXBzOlt7c3RlcDoiMDEiLHRpdGxlOiJTdGFrZSAkSVJPTkNMQVciLGRlc2M6IkxvY2sgdG9rZW5zIGluIHRoZSBzdGFraW5nIGNvbnRyYWN0IHRvIGVhcm4geWllbGQgYW5kIGdhaW4gdm90aW5nIHBvd2VyLiJ9LHtzdGVwOiIwMiIsdGl0bGU6IlN1Ym1pdCBhIFByb3Bvc2FsIixkZXNjOiJQcm9wb3NlIGEgbmV3IG1pc3Npb24sIEFJIHByb21wdCB1cGRhdGUsIG9yIGNhcGFiaWxpdHkgY2hhbmdlLiBUeXBlcyBpbmNsdWRlOiBwcm9tcHRfdXBkYXRlLCBtaXNzaW9uX3VwZGF0ZSwgY29uZmlnX2NoYW5nZSwgYW5kIGdlbmVyYWwuIn0se3N0ZXA6IjAzIix0aXRsZToiQ29tbXVuaXR5IFZvdGVzIixkZXNjOiI3Mi1ob3VyIHZvdGluZyB3aW5kb3cuIFZvdGluZyBwb3dlciBlcXVhbHMgc3Rha2VkIGFtb3VudCBhY3Jvc3MgYWxsIHBvb2xzLiA1MSUgcXVvcnVtIHJlcXVpcmVkIHRvIHBhc3MuIn0se3N0ZXA6IjA0Iix0aXRsZToiQXV0by1FeGVjdXRpb24iLGRlc2M6IlBhc3NlZCBwcm9wb3NhbHMgYXJlIGV4ZWN1dGVkIG9uLWNoYWluLiBBIGdvdmVybmFuY2UgbGlzdGVuZXIgcGlja3MgdXAgdGhlIGV2ZW50IGFuZCB1cGRhdGVzIElyb25DbGF3J3MgYWN0aXZlIHByb21wdCBvciBtaXNzaW9uIGZpbGUgYXV0b21hdGljYWxseS4ifV19LHtpZDoic3Rha2luZyIsaWNvbjooMCx0LmpzeCkobC5Db2lucyx7c2l6ZToyMCxjb2xvcjplLmFjY2VudH0pLHRpdGxlOiJTdGFraW5nICYgWWllbGQiLGNvbnRlbnQ6WyJJcm9uU2hpZWxkIHVzZXMgYSBNYXN0ZXJDaGVmLXN0eWxlIHN0YWtpbmcgbWVjaGFuaXNtIGRlc2lnbmVkIGZvciBORUFSIFByb3RvY29sLiBPbmNlIHRoZSAkSVJPTkNMQVcgdG9rZW4gbGF1bmNoZXMsIHN0YWtlcnMgd2lsbCBlYXJuIHJlYWwgeWllbGQgZnJvbSBwcm90b2NvbCByZXZlbnVlOiBub3QgaW5mbGF0aW9uLiIsIlJldmVudWUgZnJvbSBJcm9uU2hpZWxkIHN1YnNjcmlwdGlvbnMsIHByZW1pdW0gZmVhdHVyZXMsIGFuZCBlY29zeXN0ZW0gZmVlcyBmbG93cyBpbnRvIHRoZSByZXdhcmQgcG9vbC4gUmV3YXJkcyBhcmUgZGlzdHJpYnV0ZWQgcGVyLWJsb2NrIHByb3BvcnRpb25hbCB0byBlYWNoIHN0YWtlcidzIHNoYXJlIG9mIHRoZSBwb29sLiBTdGFrZXJzIGNhbiBhbHNvIGVhcm4gYm9udXMgcG9pbnRzIHRocm91Z2ggY29udGVzdHMgYW5kIGNvbW11bml0eSBwYXJ0aWNpcGF0aW9uLiJdLHN0YXRzOlt7bGFiZWw6IkNvbnRyYWN0Iix2YWx1ZToiVEJBOiB3aWxsIGJlIGRlcGxveWVkIGF0IGxhdW5jaCJ9LHtsYWJlbDoiUmV3YXJkIFNvdXJjZSIsdmFsdWU6IlByb3RvY29sIHJldmVudWUgKHJlYWwgeWllbGQsIG5vdCBpbmZsYXRpb24pIn0se2xhYmVsOiJEaXN0cmlidXRpb24iLHZhbHVlOiJQZXItYmxvY2ssIHByb3BvcnRpb25hbCB0byBzdGFrZSJ9LHtsYWJlbDoiR292ZXJuYW5jZSBQb3dlciIsdmFsdWU6IlZvdGluZyBwb3dlciA9IHRvdGFsIHN0YWtlZCBhY3Jvc3MgYWxsIHBvb2xzIn1dfSx7aWQ6ImNvbnRlc3RzIixpY29uOigwLHQuanN4KShjLHtzaXplOjIwLGNvbG9yOmUuYWNjZW50fSksdGl0bGU6IkNvbnRlc3RzICYgRWFybiIsY29udGVudDpbIklyb25TaGllbGQgcnVucyBjb21tdW5pdHkgY29udGVzdHMgKG1pc3Npb25zKSB3aGVyZSBwYXJ0aWNpcGFudHMgY2FuIGVhcm4gcG9pbnRzIGFuZCBjbGltYiB0aGUgbGVhZGVyYm9hcmQuIE1pc3Npb25zIHJhbmdlIGZyb20gYnVnIGJvdW50aWVzIGFuZCBzZWN1cml0eSByZXBvcnRzIHRvIGNvbnRlbnQgY3JlYXRpb24gYW5kIGNvbW11bml0eSBlbmdhZ2VtZW50LiIsIldoZW4geW91IHBhcnRpY2lwYXRlIGluIGEgY29udGVzdCwgeW91IHN1Ym1pdCBwcm9vZiBvZiB5b3VyIHdvcmsgKGEgbGluaywgc2NyZWVuc2hvdCwgb3IgZGVzY3JpcHRpb24pLiBTdWJtaXNzaW9ucyBhcmUgcmV2aWV3ZWQgYnkgYWRtaW5zLiBBcHByb3ZlZCBzdWJtaXNzaW9ucyBlYXJuIHlvdSBwb2ludHMgdGhhdCBkZXRlcm1pbmUgeW91ciB0aWVyIGFuZCBsZWFkZXJib2FyZCByYW5rLiJdLHN0ZXBzOlt7c3RlcDoiMDEiLHRpdGxlOiJCcm93c2UgTWlzc2lvbnMiLGRlc2M6IlZpc2l0IHRoZSBFYXJuIHBhZ2UgdG8gc2VlIGFjdGl2ZSBjb250ZXN0cyB3aXRoIGRlc2NyaXB0aW9ucywgcmV3YXJkcywgYW5kIGRpZmZpY3VsdHkgbGV2ZWxzLiJ9LHtzdGVwOiIwMiIsdGl0bGU6IlN1Ym1pdCBQcm9vZiIsZGVzYzoiQ2xpY2sgUGFydGljaXBhdGUsIHByb3ZpZGUgYSBwcm9vZiBsaW5rIChVUkwgdG8geW91ciB3b3JrKSwgb3B0aW9uYWwgbm90ZXMsIGFuZCBhbiBvcHRpb25hbCBzY3JlZW5zaG90LiJ9LHtzdGVwOiIwMyIsdGl0bGU6IkFkbWluIFJldmlldyIsZGVzYzoiU3VibWlzc2lvbnMgYXJlIHJldmlld2VkLiBBcHByb3ZlZCBlbnRyaWVzIGVhcm4gcG9pbnRzOyByZWplY3RlZCBvbmVzIGluY2x1ZGUgZmVlZGJhY2suIn0se3N0ZXA6IjA0Iix0aXRsZToiQ2xpbWIgdGhlIExlYWRlcmJvYXJkIixkZXNjOiJQb2ludHMgYWNjdW11bGF0ZSBhY3Jvc3MgYWxsIGNvbnRlc3RzLiBIaWdoZXIgc2NvcmVzIHVubG9jayB0aWVyczogQnJvbnplLCBTaWx2ZXIsIEdvbGQsIERpYW1vbmQuIn1dLGNhbGxvdXQ6IlN1Ym1pc3Npb25zIGFyZSBzdG9yZWQgaW4gdGhlIElyb25TaGllbGQgZGF0YWJhc2UgYW5kIGFjY2Vzc2libGUgdmlhIHRoZSBhZG1pbiBwYW5lbCAoRGFzaGJvYXJkIFNldHRpbmdzIGluIHRoZSBmb290ZXIpIGFuZCB0aGUgYmFja2VuZCBBUEkgYXQgL2FwaS9jb250ZXN0cy86aWQgKGluY2x1ZGVzIGFsbCBzdWJtaXNzaW9ucyB3aXRoIHVzZXIgZGF0YSkuIn0se2lkOiJhcmNoaXRlY3R1cmUiLGljb246KDAsdC5qc3gpKHAuWmFwLHtzaXplOjIwLGNvbG9yOmUuYWNjZW50fSksdGl0bGU6IlRlY2huaWNhbCBBcmNoaXRlY3R1cmUiLGNvbnRlbnQ6WyJJcm9uU2hpZWxkIGlzIGEgZnVsbC1zdGFjayBkZWNlbnRyYWxpemVkIGFwcGxpY2F0aW9uIGNvbWJpbmluZyBhIHN0YXRpYyBmcm9udGVuZCBob3N0ZWQgb24gSVBGUyB2aWEgTkVBUidzIHdlYjQsIGEgTm9kZS5qcyBiYWNrZW5kIHdpdGggUG9zdGdyZVNRTCwgYSBUZWxlZ3JhbSBib3QsIGFuZCBhIFJ1c3Qgc21hcnQgY29udHJhY3Qgb24gTkVBUiBtYWlubmV0LiJdLHN0YXRzOlt7bGFiZWw6IkZyb250ZW5kIix2YWx1ZToiTmV4dC5qcyAxNiArIFJlYWN0IDE5LCBzdGF0aWMgZXhwb3J0IHRvIElQRlMgdmlhIHdlYjQtZGVwbG95In0se2xhYmVsOiJCYWNrZW5kIEFQSSIsdmFsdWU6IkV4cHJlc3MuanMgb24gcG9ydCAzMDAxOiBjb250ZXN0cywgbGVhZGVyYm9hcmQsIGdvdmVybmFuY2UsIHNlY3VyaXR5IGVuZHBvaW50cyJ9LHtsYWJlbDoiRGF0YWJhc2UiLHZhbHVlOiJQb3N0Z3JlU1FMOiB1c2Vycywgd2FsbGV0cywgY29udGVzdHMsIHN1Ym1pc3Npb25zLCBwcm9wb3NhbHMsIHZvdGVzLCBmbGFnZ2VkIFVSTHMvd2FsbGV0cyJ9LHtsYWJlbDoiQUkgRW5naW5lIix2YWx1ZToiTkVBUiBBSSBDbG91ZCBBUEkgKGNsb3VkLWFwaS5uZWFyLmFpKTogTExhTUEgMy4xIDcwQiBmb3IgYWxsIGFnZW50IHRhc2tzIn0se2xhYmVsOiJUZWxlZ3JhbSBCb3QiLHZhbHVlOiJub2RlLXRlbGVncmFtLWJvdC1hcGk6IHBvbGxpbmcgbW9kZSBmb3IgZGV2LCB3ZWJob29rIGZvciBwcm9kdWN0aW9uIn0se2xhYmVsOiJTbWFydCBDb250cmFjdCIsdmFsdWU6IlJ1c3QgKG5lYXItc2RrIHY1LjEuMCk6IE1hc3RlckNoZWYgc3Rha2luZywgTkVQLTE0MSByZXdhcmRzLCBvbi1jaGFpbiBnb3Zlcm5hbmNlIChkZXBsb3lpbmcgYXQgbGF1bmNoKSJ9LHtsYWJlbDoiSG9zdGluZyIsdmFsdWU6IklQRlMgdmlhIE5FQVJGUywgc2VydmVkIGF0IGlyb25zaGllbGQubmVhci5wYWdlIn0se2xhYmVsOiJHb3Zlcm5hbmNlIExpc3RlbmVyIix2YWx1ZToiUG9sbHMgY2hhaW4gZm9yIGV4ZWN1dGVkIHByb3Bvc2FscywgYXV0by11cGRhdGVzIGFnZW50IHByb21wdC9taXNzaW9uIn1dfSx7aWQ6InRva2Vub21pY3MiLGljb246KDAsdC5qc3gpKHUuR2xvYmUse3NpemU6MjAsY29sb3I6ZS5hY2NlbnR9KSx0aXRsZToiJElST05DTEFXIFRva2VuIixjb250ZW50OlsiJElST05DTEFXIGlzIHRoZSBuYXRpdmUgTkVQLTE0MSB0b2tlbiBvZiB0aGUgSXJvblNoaWVsZCBlY29zeXN0ZW0gb24gTkVBUiBQcm90b2NvbC4gSXQgc2VydmVzIHRocmVlIGNvcmUgZnVuY3Rpb25zOiBnb3Zlcm5hbmNlIHZvdGluZyBwb3dlciwgc3Rha2luZyB5aWVsZCwgYW5kIGFjY2VzcyB0byBwcmVtaXVtIGZlYXR1cmVzLiIsIlRva2VuIGhvbGRlcnMgd2hvIHN0YWtlICRJUk9OQ0xBVyBlYXJuIHJlYWwgeWllbGQgZnJvbSBwcm90b2NvbCByZXZlbnVlIGFuZCBnYWluIHByb3BvcnRpb25hbCB2b3RpbmcgcG93ZXIgaW4gZ292ZXJuYW5jZS4gVGhlIHRva2VuIGlzIHRoZSBiYWNrYm9uZSBvZiB0aGUgY29tbXVuaXR5LWNvbnRyb2xsZWQgQUkgYWdlbnQgbW9kZWwuIl0sc3RhdHM6W3tsYWJlbDoiU3RhbmRhcmQiLHZhbHVlOiJORVAtMTQxIChORUFSIGZ1bmdpYmxlIHRva2VuKSJ9LHtsYWJlbDoiQ2hhaW4iLHZhbHVlOiJORUFSIFByb3RvY29sIChtYWlubmV0KSJ9LHtsYWJlbDoiVXRpbGl0eSIsdmFsdWU6IkdvdmVybmFuY2Ugdm90ZXMsIHN0YWtpbmcgeWllbGQsIHByZW1pdW0gYWNjZXNzIn0se2xhYmVsOiJDb250cmFjdCIsdmFsdWU6IlRCQTogZGVwbG95aW5nIGF0IHRva2VuIGxhdW5jaCJ9XX0se2lkOiJjb21tdW5pdHkiLGljb246KDAsdC5qc3gpKGguVXNlcnMse3NpemU6MjAsY29sb3I6ZS5hY2NlbnR9KSx0aXRsZToiQ29tbXVuaXR5ICYgTGlua3MiLGNvbnRlbnQ6WyJJcm9uU2hpZWxkIGlzIGJ1aWx0IGJ5IGFuZCBmb3IgdGhlIE5FQVIgY29tbXVuaXR5LiBKb2luIHVzIHRvIHBhcnRpY2lwYXRlIGluIGdvdmVybmFuY2UsIGVhcm4gcmV3YXJkcyB0aHJvdWdoIGNvbnRlc3RzLCBhbmQgaGVscCBwcm90ZWN0IFdlYjMgY29tbXVuaXRpZXMuIl0sbGlua3M6W3tsYWJlbDoiVGVsZWdyYW0gQ29tbXVuaXR5Iix1cmw6Imh0dHBzOi8vdC5tZS9Jcm9uQ2xhd0hRIn0se2xhYmVsOiJYIChUd2l0dGVyKSIsdXJsOiJodHRwczovL3guY29tL19Jcm9uQ2xhdyJ9LHtsYWJlbDoiSXJvblNoaWVsZCBCb3QiLHVybDoiaHR0cHM6Ly90Lm1lL0lyb25TaGllbGRDb3JlX2JvdCJ9LHtsYWJlbDoiTkVBUiBQcm90b2NvbCIsdXJsOiJodHRwczovL25lYXIub3JnIn0se2xhYmVsOiJMaXZlIEFwcCIsdXJsOiJodHRwczovL2lyb25zaGllbGQubmVhci5wYWdlIn1dfV07cmV0dXJuKDAsdC5qc3hzKSh0LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsdC5qc3hzKShvLlNlY3Rpb24se3N0eWxlOntwYWRkaW5nVG9wOjEwMCxwYWRkaW5nQm90dG9tOjYwfSxjaGlsZHJlbjpbKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e3RleHRBbGlnbjoiY2VudGVyIixtYXJnaW5Cb3R0b206NDh9LGNoaWxkcmVuOlsoMCx0LmpzeCkoby5CYWRnZSx7Y2hpbGRyZW46IkRPQ1VNRU5UQVRJT04ifSksKDAsdC5qc3hzKSgiaDEiLHtzdHlsZTp7Zm9udFNpemU6MzYsZm9udFdlaWdodDo4MDAsY29sb3I6ZS53aGl0ZSxtYXJnaW5Ub3A6MTJ9LGNoaWxkcmVuOlsiSXJvblNoaWVsZCAiLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjplLmFjY2VudH0sY2hpbGRyZW46IkRvY3MifSldfSksKDAsdC5qc3gpKCJwIix7c3R5bGU6e2ZvbnRTaXplOjE1LGNvbG9yOmUudGV4dE11dGVkLG1hcmdpblRvcDoxMCxtYXhXaWR0aDo1NjAsbWFyZ2luOiIxMHB4IGF1dG8gMCJ9LGNoaWxkcmVuOiJFdmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cgYWJvdXQgSXJvblNoaWVsZCwgSXJvbkNsYXcsIGdvdmVybmFuY2UsIHN0YWtpbmcsIGFuZCB0aGUgZWNvc3lzdGVtLiJ9KV19KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7YmFja2dyb3VuZDplLmJnQ2FyZCxib3JkZXI6YDFweCBzb2xpZCAke2UuYm9yZGVyfWAsYm9yZGVyUmFkaXVzOjE2LHBhZGRpbmc6IjIwcHggMjhweCIsbWFyZ2luQm90dG9tOjQwLG1heFdpZHRoOjcwMCxtYXJnaW46IjAgYXV0byA0MHB4In0sY2hpbGRyZW46WygwLHQuanN4KSgiZGl2Iix7c3R5bGU6e2ZvbnRTaXplOjExLGZvbnRXZWlnaHQ6NzAwLGNvbG9yOmUuYWNjZW50LGxldHRlclNwYWNpbmc6MSxtYXJnaW5Cb3R0b206MTJ9LGNoaWxkcmVuOiJUQUJMRSBPRiBDT05URU5UUyJ9KSwoMCx0LmpzeCkoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsZ2FwOjh9LGNoaWxkcmVuOm0ubWFwKG89PigwLHQuanN4KSgiYSIse2hyZWY6YCMke28uaWR9YCxzdHlsZTp7Zm9udFNpemU6MTMsY29sb3I6ZS50ZXh0TXV0ZWQsdGV4dERlY29yYXRpb246Im5vbmUiLHBhZGRpbmc6IjZweCAxNHB4Iixib3JkZXJSYWRpdXM6OCxib3JkZXI6YDFweCBzb2xpZCAke2UuYm9yZGVyfWAsYmFja2dyb3VuZDplLmJnU3VyZmFjZSx0cmFuc2l0aW9uOiJhbGwgMC4ycyIsY3Vyc29yOiJwb2ludGVyIn0sb25Nb3VzZUVudGVyOnQ9Pnt0LmN1cnJlbnRUYXJnZXQuc3R5bGUuYm9yZGVyQ29sb3I9ZS5hY2NlbnQsdC5jdXJyZW50VGFyZ2V0LnN0eWxlLmNvbG9yPWUuYWNjZW50fSxvbk1vdXNlTGVhdmU6dD0+e3QuY3VycmVudFRhcmdldC5zdHlsZS5ib3JkZXJDb2xvcj1lLmJvcmRlcix0LmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3I9ZS50ZXh0TXV0ZWR9LGNoaWxkcmVuOm8udGl0bGV9LG8uaWQpKX0pXX0pLCgwLHQuanN4KSgiZGl2Iix7c3R5bGU6e21heFdpZHRoOjgwMCxtYXJnaW46IjAgYXV0byIsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixnYXA6MzJ9LGNoaWxkcmVuOm0ubWFwKG89PigwLHQuanN4cykoImRpdiIse2lkOm8uaWQsc3R5bGU6e2JhY2tncm91bmQ6ZS5iZ0NhcmQsYm9yZGVyOmAxcHggc29saWQgJHtlLmJvcmRlcn1gLGJvcmRlclJhZGl1czoxNixwYWRkaW5nOjMyLHRyYW5zaXRpb246ImJvcmRlci1jb2xvciAwLjNzIn0sb25Nb3VzZUVudGVyOnQ9PnQuY3VycmVudFRhcmdldC5zdHlsZS5ib3JkZXJDb2xvcj1gJHtlLmFjY2VudH00NGAsb25Nb3VzZUxlYXZlOnQ9PnQuY3VycmVudFRhcmdldC5zdHlsZS5ib3JkZXJDb2xvcj1lLmJvcmRlcixjaGlsZHJlbjpbKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOjEyLG1hcmdpbkJvdHRvbToxNn0sY2hpbGRyZW46WygwLHQuanN4KSgiZGl2Iix7c3R5bGU6e3dpZHRoOjQwLGhlaWdodDo0MCxib3JkZXJSYWRpdXM6MTAsYmFja2dyb3VuZDpgJHtlLmFjY2VudH0xNWAsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIn0sY2hpbGRyZW46by5pY29ufSksKDAsdC5qc3gpKCJoMiIse3N0eWxlOntmb250U2l6ZToyMixmb250V2VpZ2h0OjcwMCxjb2xvcjplLndoaXRlLG1hcmdpbjowfSxjaGlsZHJlbjpvLnRpdGxlfSldfSksby5jb250ZW50Lm1hcCgobyxhKT0+KDAsdC5qc3gpKCJwIix7c3R5bGU6e2ZvbnRTaXplOjE0LGNvbG9yOmUudGV4dE11dGVkLGxpbmVIZWlnaHQ6MS43NSxtYXJnaW46MD09PWE/MDoiMTJweCAwIDAifSxjaGlsZHJlbjpvfSxhKSksby5mZWF0dXJlcyYmKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjIwLGRpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsZ2FwOjEwfSxjaGlsZHJlbjpvLmZlYXR1cmVzLm1hcCgobyxhKT0+KDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGdhcDoxNCxhbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0IixwYWRkaW5nOiIxMnB4IDE2cHgiLGJvcmRlclJhZGl1czoxMCxiYWNrZ3JvdW5kOmUuYmdTdXJmYWNlLGJvcmRlcjpgMXB4IHNvbGlkICR7ZS5ib3JkZXJ9YH0sY2hpbGRyZW46WygwLHQuanN4KSgiY29kZSIse3N0eWxlOntmb250U2l6ZToxMixmb250V2VpZ2h0OjcwMCxjb2xvcjplLmFjY2VudCx3aGl0ZVNwYWNlOiJub3dyYXAiLGZvbnRGYW1pbHk6IidKZXRCcmFpbnMgTW9ubycsIG1vbm9zcGFjZSIsZmxleFNocmluazowLG1pbldpZHRoOjE2MH0sY2hpbGRyZW46by5sYWJlbH0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntmb250U2l6ZToxMyxjb2xvcjplLnRleHRNdXRlZCxsaW5lSGVpZ2h0OjEuNX0sY2hpbGRyZW46by5kZXNjfSldfSxhKSl9KSxvLnN0ZXBzJiYoMCx0LmpzeCkoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MjAsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixnYXA6MTJ9LGNoaWxkcmVuOm8uc3RlcHMubWFwKChvLGEpPT4oMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsZ2FwOjE2LGFsaWduSXRlbXM6ImZsZXgtc3RhcnQifSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7d2lkdGg6MzYsaGVpZ2h0OjM2LGJvcmRlclJhZGl1czoiNTAlIixmbGV4U2hyaW5rOjAsYmFja2dyb3VuZDpgJHtlLmFjY2VudH0xOGAsYm9yZGVyOmAxcHggc29saWQgJHtlLmFjY2VudH00NGAsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixmb250U2l6ZToxMixmb250V2VpZ2h0OjgwMCxjb2xvcjplLmFjY2VudCxmb250RmFtaWx5OiInSmV0QnJhaW5zIE1vbm8nLCBtb25vc3BhY2UifSxjaGlsZHJlbjpvLnN0ZXB9KSwoMCx0LmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7Zm9udFNpemU6MTUsZm9udFdlaWdodDo3MDAsY29sb3I6ZS53aGl0ZX0sY2hpbGRyZW46by50aXRsZX0pLCgwLHQuanN4KSgiZGl2Iix7c3R5bGU6e2ZvbnRTaXplOjEzLGNvbG9yOmUudGV4dE11dGVkLGxpbmVIZWlnaHQ6MS42LG1hcmdpblRvcDoyfSxjaGlsZHJlbjpvLmRlc2N9KV19KV19LGEpKX0pLG8uc3RhdHMmJigwLHQuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoyMCxkaXNwbGF5OiJncmlkIixncmlkVGVtcGxhdGVDb2x1bW5zOiJyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpIixnYXA6MTB9LGNoaWxkcmVuOm8uc3RhdHMubWFwKChvLGEpPT4oMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiMTJweCAxNnB4Iixib3JkZXJSYWRpdXM6MTAsYmFja2dyb3VuZDplLmJnU3VyZmFjZSxib3JkZXI6YDFweCBzb2xpZCAke2UuYm9yZGVyfWB9LGNoaWxkcmVuOlsoMCx0LmpzeCkoImRpdiIse3N0eWxlOntmb250U2l6ZToxMSxmb250V2VpZ2h0OjcwMCxjb2xvcjplLmFjY2VudCxsZXR0ZXJTcGFjaW5nOi41LG1hcmdpbkJvdHRvbTo0fSxjaGlsZHJlbjpvLmxhYmVsfSksKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7Zm9udFNpemU6MTMsY29sb3I6ZS50ZXh0TXV0ZWQsbGluZUhlaWdodDoxLjV9LGNoaWxkcmVuOm8udmFsdWV9KV19LGEpKX0pLG8ubGlua3MmJigwLHQuanN4KSgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoyMCxkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsZ2FwOjEwfSxjaGlsZHJlbjpvLmxpbmtzLm1hcCgobyxhKT0+KDAsdC5qc3gpKCJhIix7aHJlZjpvLnVybCx0YXJnZXQ6Il9ibGFuayIscmVsOiJub29wZW5lciBub3JlZmVycmVyIixzdHlsZTp7Zm9udFNpemU6MTMsZm9udFdlaWdodDo2MDAsY29sb3I6ZS5hY2NlbnQsdGV4dERlY29yYXRpb246Im5vbmUiLHBhZGRpbmc6IjEwcHggMjBweCIsYm9yZGVyUmFkaXVzOjEwLGJhY2tncm91bmQ6YCR7ZS5hY2NlbnR9MTJgLGJvcmRlcjpgMXB4IHNvbGlkICR7ZS5hY2NlbnR9MzNgLHRyYW5zaXRpb246ImFsbCAwLjJzIn0sb25Nb3VzZUVudGVyOnQ9Pnt0LmN1cnJlbnRUYXJnZXQuc3R5bGUuYmFja2dyb3VuZD1gJHtlLmFjY2VudH0yMmB9LG9uTW91c2VMZWF2ZTp0PT57dC5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmQ9YCR7ZS5hY2NlbnR9MTJgfSxjaGlsZHJlbjpvLmxhYmVsfSxhKSl9KSxvLmNhbGxvdXQmJigwLHQuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MjAscGFkZGluZzoiMTRweCAxOHB4Iixib3JkZXJSYWRpdXM6MTAsYmFja2dyb3VuZDpgJHtlLmFtYmVyfTEwYCxib3JkZXI6YDFweCBzb2xpZCAke2UuYW1iZXJ9MzNgLGRpc3BsYXk6ImZsZXgiLGdhcDoxMCxhbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0In0sY2hpbGRyZW46WygwLHQuanN4KShkLkFsZXJ0VHJpYW5nbGUse3NpemU6MTYsY29sb3I6ZS5hbWJlcixzdHlsZTp7ZmxleFNocmluazowLG1hcmdpblRvcDoyfX0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntmb250U2l6ZToxMyxjb2xvcjplLmFtYmVyLGxpbmVIZWlnaHQ6MS42fSxjaGlsZHJlbjpvLmNhbGxvdXR9KV19KV19LG8uaWQpKX0pXX0pLCgwLHQuanN4KShnLlRlY2hBcmNoaXRlY3R1cmUse30pXX0pfV0sOTEyMzUpfV0pOw== |
| 1 | OkhMWyIvX25leHQvc3RhdGljL2NodW5rcy8wX3R0eGphLW1pLV92LmNzcyIsInN0eWxlIl0KOkhMWyIvX25leHQvc3RhdGljL21lZGlhLzA1MTc0MjM2MGMyNjc5N2Utcy5wLjBmOTdwOGMzMzA1cH4ud29mZjIiLCJmb250Iix7ImNyb3NzT3JpZ2luIjoiIiwidHlwZSI6ImZvbnQvd29mZjIifV0KOkhMWyIvX25leHQvc3RhdGljL21lZGlhLzFiOTkzNzJiM2VhZWYwYzgtcy5wLjBneDJoYXcydG1sbDgud29mZjIiLCJmb250Iix7ImNyb3NzT3JpZ2luIjoiIiwidHlwZSI6ImZvbnQvd29mZjIifV0KOkhMWyIvbWFzY290LndlYnAiLCJpbWFnZSIseyJ0eXBlIjoiaW1hZ2Uvd2VicCJ9XQowOnsidHJlZSI6eyJuYW1lIjoiIiwicGFyYW0iOm51bGwsInByZWZldGNoSGludHMiOjE2LCJzbG90cyI6eyJjaGlsZHJlbiI6eyJuYW1lIjoiX19QQUdFX18iLCJwYXJhbSI6bnVsbCwicHJlZmV0Y2hIaW50cyI6MCwic2xvdHMiOm51bGx9fX0sInN0YWxlVGltZSI6MzAwLCJidWlsZElkIjoiRHRqclhNRXhrRkFoSzNnUm5xNnB2In0K |
| 1 | MToiJFNyZWFjdC5mcmFnbWVudCIKMjpJWzI1MjU0LFsiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qcyIsIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanMiXSwiVmlld3BvcnRCb3VuZGFyeSJdCjM6SVsyNTI1NCxbIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanMiLCIvX25leHQvc3RhdGljL2NodW5rcy8waHJ6MTNpeWhlYW10LmpzIl0sIk1ldGFkYXRhQm91bmRhcnkiXQo0OiIkU3JlYWN0LnN1c3BlbnNlIgo1OklbMzM2MDIsWyIvX25leHQvc3RhdGljL2NodW5rcy8wOHExdDFlY2Y5OS05LmpzIiwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qcyJdLCJJY29uTWFyayJdCjA6eyJyc2MiOlsiJCIsIiQxIiwiaCIseyJjaGlsZHJlbiI6W251bGwsWyIkIiwiJEwyIixudWxsLHsiY2hpbGRyZW4iOltbIiQiLCJtZXRhIiwiMCIseyJjaGFyU2V0IjoidXRmLTgifV0sWyIkIiwibWV0YSIsIjEiLHsibmFtZSI6InZpZXdwb3J0IiwiY29udGVudCI6IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIn1dXX1dLFsiJCIsImRpdiIsbnVsbCx7ImhpZGRlbiI6dHJ1ZSwiY2hpbGRyZW4iOlsiJCIsIiRMMyIsbnVsbCx7ImNoaWxkcmVuIjpbIiQiLCIkNCIsbnVsbCx7Im5hbWUiOiJOZXh0Lk1ldGFkYXRhIiwiY2hpbGRyZW4iOltbIiQiLCJ0aXRsZSIsIjAiLHsiY2hpbGRyZW4iOiJMaXZlIEFscGhhIFJvb20gwrcgSXJvblNoaWVsZCJ9XSxbIiQiLCJtZXRhIiwiMSIseyJuYW1lIjoiZGVzY3JpcHRpb24iLCJjb250ZW50IjoiVm9pY2UgKyBjaGF0IGFscGhhIHJvb20gb24gSXJvblNoaWVsZC4gUG93ZXJlZCBieSBJcm9uQ2xhdyBvbiBORUFSLiJ9XSxbIiQiLCJtZXRhIiwiMiIseyJwcm9wZXJ0eSI6Im9nOnRpdGxlIiwiY29udGVudCI6IkxpdmUgQWxwaGEgUm9vbSDCtyBJcm9uU2hpZWxkIn1dLFsiJCIsIm1ldGEiLCIzIix7InByb3BlcnR5Ijoib2c6ZGVzY3JpcHRpb24iLCJjb250ZW50IjoiVm9pY2UgKyBjaGF0IGFscGhhIHJvb20gb24gSXJvblNoaWVsZC4ifV0sWyIkIiwibWV0YSIsIjQiLHsicHJvcGVydHkiOiJvZzp0eXBlIiwiY29udGVudCI6IndlYnNpdGUifV0sWyIkIiwibWV0YSIsIjUiLHsibmFtZSI6InR3aXR0ZXI6Y2FyZCIsImNvbnRlbnQiOiJzdW1tYXJ5X2xhcmdlX2ltYWdlIn1dLFsiJCIsIm1ldGEiLCI2Iix7Im5hbWUiOiJ0d2l0dGVyOnRpdGxlIiwiY29udGVudCI6IkxpdmUgQWxwaGEgUm9vbSDCtyBJcm9uU2hpZWxkIn1dLFsiJCIsIm1ldGEiLCI3Iix7Im5hbWUiOiJ0d2l0dGVyOmRlc2NyaXB0aW9uIiwiY29udGVudCI6IlZvaWNlICsgY2hhdCBhbHBoYSByb29tIG9uIElyb25TaGllbGQuIn1dLFsiJCIsImxpbmsiLCI4Iix7InJlbCI6Imljb24iLCJocmVmIjoiL2ljb24uc3ZnIn1dLFsiJCIsIiRMNSIsIjkiLHt9XV19XX1dfV0sWyIkIiwibWV0YSIsbnVsbCx7Im5hbWUiOiJuZXh0LXNpemUtYWRqdXN0IiwiY29udGVudCI6IiJ9XV19XSwiaXNQYXJ0aWFsIjpmYWxzZSwic3RhbGVUaW1lIjozMDAsInZhcnlQYXJhbXMiOm51bGwsImJ1aWxkSWQiOiJEdGpyWE1FeGtGQWhLM2dSbnE2cHYifQo= |
| 1 | PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iIGNsYXNzPSJvdXRmaXRfMjBlNzMwMTctbW9kdWxlX19uWU9lcVdfX3ZhcmlhYmxlIGpldGJyYWluc19tb25vXzU5ZWZlM2Q5LW1vZHVsZV9fQUhyak9xX192YXJpYWJsZSI+PGhlYWQ+PG1ldGEgY2hhclNldD0idXRmLTgiLz48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9fbmV4dC9zdGF0aWMvbWVkaWEvMDUxNzQyMzYwYzI2Nzk3ZS1zLnAuMGY5N3A4YzMzMDVwfi53b2ZmMiIgYXM9ImZvbnQiIGNyb3Nzb3JpZ2luPSIiIHR5cGU9ImZvbnQvd29mZjIiLz48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9fbmV4dC9zdGF0aWMvbWVkaWEvMWI5OTM3MmIzZWFlZjBjOC1zLnAuMGd4MmhhdzJ0bWxsOC53b2ZmMiIgYXM9ImZvbnQiIGNyb3Nzb3JpZ2luPSIiIHR5cGU9ImZvbnQvd29mZjIiLz48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9tYXNjb3Qud2VicCIgYXM9ImltYWdlIiB0eXBlPSJpbWFnZS93ZWJwIi8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvX25leHQvc3RhdGljL2NodW5rcy8wX3R0eGphLW1pLV92LmNzcyIgZGF0YS1wcmVjZWRlbmNlPSJuZXh0Ii8+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0IiBmZXRjaFByaW9yaXR5PSJsb3ciIGhyZWY9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzA0YmFqfi5qLnNhcV8uanMiLz48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvMC1pYjd+MzdtcnllNy5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzAuZTUweWp0dDRhcGEuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8wem1hM2RmNH40b2YzLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvMHZ3c2dqM3dvanBuNy5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL3R1cmJvcGFjay0wcmo1enhsM292ZjItLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8xMHhtdjhfY2MzNnh5LmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvMGZkZ2RtbTVlZzJici5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzB4a3MuX3p6MjducWUuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxsaW5rIHJlbD0icHJlbG9hZCIgYXM9ImltYWdlIiBocmVmPSIvbWFzY290LndlYnAiIHR5cGU9ImltYWdlL3dlYnAiLz48bWV0YSBuYW1lPSJuZXh0LXNpemUtYWRqdXN0IiBjb250ZW50PSIiLz48dGl0bGU+SXJvblNoaWVsZCB8IE5FQVIgUHJvdG9jb2w8L3RpdGxlPjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJBSSBTZWN1cml0eS4gT24tQ2hhaW4uIFVuc3RvcHBhYmxlLiIvPjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iL2ljb24uc3ZnIi8+PHN0eWxlPgogICAgICAgICAgLyogU2ltcGxlIHByZS1SZWFjdCBsb2FkZXI6IHB1cmUgQ1NTLCBubyBKUyByZXF1aXJlZCAqLwogICAgICAgICAgI2ljLXByZS1sb2FkZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDgwYjEyOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQocmdiYSg1OSwxMzAsMjQ2LDAuMDkpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyNHB4IDI0cHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5OwogICAgICAgICAgfQogICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLXdyYXAgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA0NjBweDsgcGFkZGluZzogMjRweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtYnJhbmQgeyBmb250LXNpemU6IDIycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IGNvbG9yOiAjZmZmOyBsZXR0ZXItc3BhY2luZzogLTAuNXB4OyBtYXJnaW4tYm90dG9tOiAyOHB4OyB9CiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtYnJhbmQgc3BhbiB7IGNvbG9yOiAjM2I4MmY2OyB9CiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtdHJhY2sgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogNjRweDsgbWFyZ2luLWJvdHRvbTogMThweDsgfQogICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLXJhaWwgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgICAgICBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksMTMwLDI0NiwwLjEyKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwxMzAsMjQ2LDAuMjUpOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgfQogICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLWZpbGwgewogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzI1NjNlYiwgIzNiODJmNiwgIzBlYTVlOSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoNTksMTMwLDI0NiwwLjU1KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBpYy1maWxsIDQuNXMgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgICB9CiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtbWFzY290IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsKICAgICAgICAgICAgd2lkdGg6IDY0cHg7IGhlaWdodDogNjRweDsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCA0cHggMTRweCByZ2JhKDU5LDEzMCwyNDYsMC41NSkpOwogICAgICAgICAgICBhbmltYXRpb246IGljLXNsaWRlIDQuNXMgZWFzZS1vdXQgZm9yd2FyZHMsIGljLWJvYiAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgICAgfQogICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLW1hc2NvdCBpbWcgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb250YWluOyAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsgdXNlci1zZWxlY3Q6IG5vbmU7IH0KICAgICAgICAgICNpYy1wcmUtbG9hZGVyIC5pYy1zdGF0dXMgeyBjb2xvcjogIzk0YTNiODsgZm9udC1zaXplOiAxNHB4OyB9CiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtcmVsb2FkIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDI0cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksMTMwLDI0NiwwLjU1KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzI1NjNlYiwgIzBlYTVlOSk7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSg1OSwxMzAsMjQ2LDAuNCk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMsIGJveC1zaGFkb3cgLjE1czsKICAgICAgICAgIH0KICAgICAgICAgICNpYy1wcmUtbG9hZGVyIC5pYy1yZWxvYWQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSg1OSwxMzAsMjQ2LDAuNik7CiAgICAgICAgICB9CiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtaGludCB7IGNvbG9yOiAjNjQ3NDhiOyBmb250LXNpemU6IDExcHg7IG1hcmdpbi10b3A6IDEycHg7IH0KICAgICAgICAgIEBrZXlmcmFtZXMgaWMtZmlsbCAgeyAwJSB7IHdpZHRoOiA0JTsgfSAxMDAlIHsgd2lkdGg6IDkyJTsgfSB9CiAgICAgICAgICBAa2V5ZnJhbWVzIGljLXNsaWRlIHsgMCUgeyBsZWZ0OiA0JTsgfSAgMTAwJSB7IGxlZnQ6IDkyJTsgfSB9CiAgICAgICAgICBAa2V5ZnJhbWVzIGljLWJvYiAgIHsgMCUsMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01NSUpIHJvdGF0ZSgtM2RlZyk7IH0gNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTQ1JSkgcm90YXRlKDNkZWcpOyB9IH0KICAgICAgICA8L3N0eWxlPjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8wM355cTlxODkzaG1uLmpzIiBub01vZHVsZT0iIj48L3NjcmlwdD48L2hlYWQ+PGJvZHkgc3R5bGU9ImJhY2tncm91bmQ6IzA4MGIxMjttYXJnaW46MCI+PGRpdiBoaWRkZW49IiI+PCEtLSQtLT48IS0tLyQtLT48L2Rpdj48ZGl2IGlkPSJpYy1wcmUtbG9hZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGRpdiBjbGFzcz0iaWMtd3JhcCI+PGRpdiBjbGFzcz0iaWMtYnJhbmQiPklyb248c3Bhbj5TaGllbGQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iaWMtdHJhY2siPjxkaXYgY2xhc3M9ImljLXJhaWwiPjxkaXYgY2xhc3M9ImljLWZpbGwiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImljLW1hc2NvdCI+PGltZyBzcmM9Ii9tYXNjb3Qud2VicCIgYWx0PSIiLz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYy1zdGF0dXMiPkxvYWRpbmcgSXJvblNoaWVsZOKApjwvZGl2PjxhIGhyZWY9Ii4vIiBjbGFzcz0iaWMtcmVsb2FkIiBpZD0iaWMtcmVsb2FkLWJ0biI+UmVsb2FkIHBhZ2U8L2E+PGRpdiBjbGFzcz0iaWMtaGludCI+SWYgdGhpcyBoYW5ncywgY2xpY2sgcmVsb2FkLjwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQ+CiAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgLy8gU3RyaXAgc3RhbGUgP19yPSBjYWNoZS1idXN0ZXJzIHRoYXQgbWF5IGhhdmUgYmVlbiBhZGRlZCBieSBvbGQgbG9hZGVyIHZlcnNpb25zCiAgICAgICAgICAgIC8vICh0aGUgbmVhci5wYWdlIHdlYjQgZ2F0ZXdheSA0MDRzIG9uIHF1ZXJ5IHN0cmluZ3MpCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnNlYXJjaCAmJiAvWz8mXV9yPS8udGVzdChsb2NhdGlvbi5zZWFyY2gpKSB7CiAgICAgICAgICAgICAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgbG9jYXRpb24ucGF0aG5hbWUgKyBsb2NhdGlvbi5oYXNoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2goZSkge30KCiAgICAgICAgICAgIC8vIE1ha2UgdGhlIFJlbG9hZCBidXR0b24gYSBjbGVhbiByZWxvYWQgKHN0cmlwIHF1ZXJ5IHN0cmluZykKICAgICAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpYy1yZWxvYWQtYnRuJyk7CiAgICAgICAgICAgIGlmIChidG4pIHsKICAgICAgICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gJ1JlbG9hZGluZ+KApic7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZXBsYWNlKGxvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lICsgbG9jYXRpb24uaGFzaCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFdoZW4gUmVhY3QgcmVuZGVycyB0aGUgcmVhbCBhcHAgKGl0IGhhcyA8bmF2PiksIHJlbW92ZSB0aGUgbG9hZGVyLgogICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWMtcHJlLWxvYWRlcicpOwogICAgICAgICAgICBpZiAoIWVsKSByZXR1cm47CiAgICAgICAgICAgIHZhciBkb25lID0gZmFsc2U7CiAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGUoKXsKICAgICAgICAgICAgICBpZiAoZG9uZSB8fCAhZWwpIHJldHVybjsKICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgICAgICBlbC5zdHlsZS50cmFuc2l0aW9uID0gJ29wYWNpdHkgLjI1cyBlYXNlJzsKICAgICAgICAgICAgICBlbC5zdHlsZS5vcGFjaXR5ID0gJzAnOwogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgaWYgKGVsICYmIGVsLnBhcmVudE5vZGUpIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpOyB9LCAyNjApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBvYnMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpewogICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCduYXYnKSkgeyBvYnMuZGlzY29ubmVjdCgpOyBoaWRlKCk7IH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG9icy5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwogICAgICAgICAgfSkoKTsKICAgICAgICA8L3NjcmlwdD48IS0tJC0tPjwhLS0vJC0tPjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8wNGJhan4uai5zYXFfLmpzIiBpZD0iX1JfIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0PihzZWxmLl9fbmV4dF9mPXNlbGYuX19uZXh0X2Z8fFtdKS5wdXNoKFswXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMTpcIiRTcmVhY3QuZnJhZ21lbnRcIlxuNjpJWzgyMzA2LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanNcIl0sXCJkZWZhdWx0XCIsMV1cbjpITFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBfdHR4amEtbWktX3YuY3NzXCIsXCJzdHlsZVwiXVxuOkhMW1wiL19uZXh0L3N0YXRpYy9tZWRpYS8wNTE3NDIzNjBjMjY3OTdlLXMucC4wZjk3cDhjMzMwNXB+LndvZmYyXCIsXCJmb250XCIse1wiY3Jvc3NPcmlnaW5cIjpcIlwiLFwidHlwZVwiOlwiZm9udC93b2ZmMlwifV1cbjpITFtcIi9fbmV4dC9zdGF0aWMvbWVkaWEvMWI5OTM3MmIzZWFlZjBjOC1zLnAuMGd4MmhhdzJ0bWxsOC53b2ZmMlwiLFwiZm9udFwiLHtcImNyb3NzT3JpZ2luXCI6XCJcIixcInR5cGVcIjpcImZvbnQvd29mZjJcIn1dXG46SExbXCIvbWFzY290LndlYnBcIixcImltYWdlXCIse1widHlwZVwiOlwiaW1hZ2Uvd2VicFwifV1cbjI6VGMzMSwiXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiXG4gICAgICAgICAgLyogU2ltcGxlIHByZS1SZWFjdCBsb2FkZXI6IHB1cmUgQ1NTLCBubyBKUyByZXF1aXJlZCAqL1xuICAgICAgICAgICNpYy1wcmUtbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDgwYjEyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHJnYmEoNTksMTMwLDI0NiwwLjA5KSAxcHgsIHRyYW5zcGFyZW50IDFweCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgei1pbmRleDogOTk5OTk7XG4gICAgICAgICAgfVxuICAgICAgICAgICNpYy1wcmUtbG9hZGVyIC5pYy13cmFwIHsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogNDYwcHg7IHBhZGRpbmc6IDI0cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICAgICNpYy1wcmUtbG9hZGVyIC5pYy1icmFuZCB7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDgwMDsgY29sb3I6ICNmZmY7IGxldHRlci1zcGFjaW5nOiAtMC41cHg7IG1hcmdpbi1ib3R0b206IDI4cHg7IH1cbiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtYnJhbmQgc3BhbiB7IGNvbG9yOiAjM2I4MmY2OyB9XG4gICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLXRyYWNrIHsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDY0cHg7IG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtcmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwxMzAsMjQ2LDAuMTIpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwxMzAsMjQ2LDAuMjUpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLWZpbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMjU2M2ViLCAjM2I4MmY2LCAjMGVhNWU5KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoNTksMTMwLDI0NiwwLjU1KTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogaWMtZmlsbCA0LjVzIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtbWFzY290IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogNjRweDsgaGVpZ2h0OiA2NHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNHB4IDE0cHggcmdiYSg1OSwxMzAsMjQ2LDAuNTUpKTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogaWMtc2xpZGUgNC41cyBlYXNlLW91dCBmb3J3YXJkcywgaWMtYm9iIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICAgICAgfVxuICAgICAgICAgICNpYy1wcmUtbG9hZGVyIC5pYy1tYXNjb3QgaW1nIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjsgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7IHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgICAgICAgI2ljLXByZS1sb2FkZXIgLmljLXN0YXR1cyB7IGNvbG9yOiAjOTRhM2I4OyBmb250LXNpemU6IDE0cHg7IH1cbiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtcmVsb2FkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDI0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwxMzAsMjQ2LDAuNTUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzI1NjNlYiwgIzBlYTVlOSk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSg1OSwxMzAsMjQ2LDAuNCk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cywgYm94LXNoYWRvdyAuMTVzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAjaWMtcHJlLWxvYWRlciAuaWMtcmVsb2FkOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSg1OSwxMzAsMjQ2LDAuNik7XG4gICAgICAgICAgfVxuICAgICAgICAgICNpYy1wcmUtbG9hZGVyIC5pYy1oaW50IHsgY29sb3I6ICM2NDc0OGI7IGZvbnQtc2l6ZTogMTFweDsgbWFyZ2luLXRvcDogMTJweDsgfVxuICAgICAgICAgIEBrZXlmcmFtZXMgaWMtZmlsbCAgeyAwJSB7IHdpZHRoOiA0JTsgfSAxMDAlIHsgd2lkdGg6IDkyJTsgfSB9XG4gICAgICAgICAgQGtleWZyYW1lcyBpYy1zbGlkZSB7IDAlIHsgbGVmdDogNCU7IH0gIDEwMCUgeyBsZWZ0OiA5MiU7IH0gfVxuICAgICAgICAgIEBrZXlmcmFtZXMgaWMtYm9iICAgeyAwJSwxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTU1JSkgcm90YXRlKC0zZGVnKTsgfSA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNDUlKSByb3RhdGUoM2RlZyk7IH0gfVxuICAgICAgICAiXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMDp7XCJQXCI6bnVsbCxcImNcIjpbXCJcIixcIlwiXSxcInFcIjpcIlwiLFwiaVwiOmZhbHNlLFwiZlwiOltbW1wiXCIse1wiY2hpbGRyZW5cIjpbXCJfX1BBR0VfX1wiLHt9XX0sXCIkdW5kZWZpbmVkXCIsXCIkdW5kZWZpbmVkXCIsMTZdLFtbXCIkXCIsXCIkMVwiLFwiY1wiLHtcImNoaWxkcmVuXCI6W1tbXCIkXCIsXCJsaW5rXCIsXCIwXCIse1wicmVsXCI6XCJzdHlsZXNoZWV0XCIsXCJocmVmXCI6XCIvX25leHQvc3RhdGljL2NodW5rcy8wX3R0eGphLW1pLV92LmNzc1wiLFwicHJlY2VkZW5jZVwiOlwibmV4dFwiLFwiY3Jvc3NPcmlnaW5cIjpcIiR1bmRlZmluZWRcIixcIm5vbmNlXCI6XCIkdW5kZWZpbmVkXCJ9XSxbXCIkXCIsXCJzY3JpcHRcIixcInNjcmlwdC0wXCIse1wic3JjXCI6XCIvX25leHQvc3RhdGljL2NodW5rcy8wOHExdDFlY2Y5OS05LmpzXCIsXCJhc3luY1wiOnRydWUsXCJub25jZVwiOlwiJHVuZGVmaW5lZFwifV0sW1wiJFwiLFwic2NyaXB0XCIsXCJzY3JpcHQtMVwiLHtcInNyY1wiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qc1wiLFwiYXN5bmNcIjp0cnVlLFwibm9uY2VcIjpcIiR1bmRlZmluZWRcIn1dXSxbXCIkXCIsXCJodG1sXCIsbnVsbCx7XCJsYW5nXCI6XCJlblwiLFwiY2xhc3NOYW1lXCI6XCJvdXRmaXRfMjBlNzMwMTctbW9kdWxlX19uWU9lcVdfX3ZhcmlhYmxlIGpldGJyYWluc19tb25vXzU5ZWZlM2Q5LW1vZHVsZV9fQUhyak9xX192YXJpYWJsZVwiLFwiY2hpbGRyZW5cIjpbW1wiJFwiLFwiaGVhZFwiLG51bGwse1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwibGlua1wiLG51bGwse1wicmVsXCI6XCJwcmVsb2FkXCIsXCJhc1wiOlwiaW1hZ2VcIixcImhyZWZcIjpcIi9tYXNjb3Qud2VicFwiLFwidHlwZVwiOlwiaW1hZ2Uvd2VicFwifV0sW1wiJFwiLFwic3R5bGVcIixudWxsLHtcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6e1wiX19odG1sXCI6XCIkMlwifX1dXX1dLFwiJEwzXCJdfV1dfV0se1wiY2hpbGRyZW5cIjpbXCIkTDRcIix7fSxudWxsLGZhbHNlLG51bGxdfSxudWxsLGZhbHNlLG51bGxdLFwiJEw1XCIsZmFsc2VdXSxcIm1cIjpcIiR1bmRlZmluZWRcIixcIkdcIjpbXCIkNlwiLFtcIiRMN1wiXV0sXCJTXCI6dHJ1ZSxcImhcIjpudWxsLFwic1wiOlwiJHVuZGVmaW5lZFwiLFwibFwiOlwiJHVuZGVmaW5lZFwiLFwicFwiOlwiJHVuZGVmaW5lZFwiLFwiZFwiOlwiJHVuZGVmaW5lZFwiLFwiYlwiOlwiRHRqclhNRXhrRkFoSzNnUm5xNnB2XCJ9XG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiOTpJWzQ0MzY5LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanNcIl0sXCJUaGVtZVByb3ZpZGVyXCJdXG5hOklbNDQzNjksW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qc1wiXSxcIldhbGxldFByb3ZpZGVyXCJdXG5iOklbNDQzNjksW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qc1wiXSxcIlByb3Bvc2Fsc1Byb3ZpZGVyXCJdXG5jOklbNDQxNDIsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qc1wiXSxcImRlZmF1bHRcIl1cbmQ6SVsyODg2NSxbXCIvX25leHQvc3RhdGljL2NodW5rcy8wOHExdDFlY2Y5OS05LmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy8waHJ6MTNpeWhlYW10LmpzXCJdLFwiZGVmYXVsdFwiXVxuZTpJWzY5NjQwLFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanNcIl0sXCJDbGllbnRQYWdlUm9vdFwiXVxuZjpJWzcxODA0LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzEweG12OF9jYzM2eHkuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBmZGdkbW01ZWcyYnIuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzB4a3MuX3p6MjducWUuanNcIl0sXCJkZWZhdWx0XCJdXG4xMjpJWzI1MjU0LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4cTF0MWVjZjk5LTkuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzBocnoxM2l5aGVhbXQuanNcIl0sXCJPdXRsZXRCb3VuZGFyeVwiXVxuMTM6XCIkU3JlYWN0LnN1c3BlbnNlXCJcbjE1OklbMjUyNTQsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qc1wiXSxcIlZpZXdwb3J0Qm91bmRhcnlcIl1cbjE3OklbMjUyNTQsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvMDhxMXQxZWNmOTktOS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvMGhyejEzaXloZWFtdC5qc1wiXSxcIk1ldGFkYXRhQm91bmRhcnlcIl1cbjg6VDYzMiwiXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiXG4gICAgICAgICAgKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAvLyBTdHJpcCBzdGFsZSA/X3I9IGNhY2hlLWJ1c3RlcnMgdGhhdCBtYXkgaGF2ZSBiZWVuIGFkZGVkIGJ5IG9sZCBsb2FkZXIgdmVyc2lvbnNcbiAgICAgICAgICAgIC8vICh0aGUgbmVhci5wYWdlIHdlYjQgZ2F0ZXdheSA0MDRzIG9uIHF1ZXJ5IHN0cmluZ3MpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAobG9jYXRpb24uc2VhcmNoIFx1MDAyNlx1MDAyNiAvWz9cdTAwMjZdX3I9Ly50ZXN0KGxvY2F0aW9uLnNlYXJjaCkpIHtcbiAgICAgICAgICAgICAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgbG9jYXRpb24ucGF0aG5hbWUgKyBsb2NhdGlvbi5oYXNoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaChlKSB7fVxuXG4gICAgICAgICAgICAvLyBNYWtlIHRoZSBSZWxvYWQgYnV0dG9uIGEgY2xlYW4gcmVsb2FkIChzdHJpcCBxdWVyeSBzdHJpbmcpXG4gICAgICAgICAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ljLXJlbG9hZC1idG4nKTtcbiAgICAgICAgICAgIGlmIChidG4pIHtcbiAgICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpe1xuICAgICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gJ1JlbG9hZGluZ+KApic7XG4gICAgICAgICAgICAgICAgbG9jYXRpb24ucmVwbGFjZShsb2NhdGlvbi5vcmlnaW4gKyBsb2NhdGlvbi5wYXRobmFtZSArIGxvY2F0aW9uLmhhc2gpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2hlbiBSZWFjdCByZW5kZXJzIHRoZSByZWFsIGFwcCAoaXQgaGFzIFx1MDAzY25hdlx1MDAzZSksIHJlbW92ZSB0aGUgbG9hZGVyLlxuICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ljLXByZS1sb2FkZXInKTtcbiAgICAgICAgICAgIGlmICghZWwpIHJldHVybjtcbiAgICAgICAgICAgIHZhciBkb25lID0gZmFsc2U7XG4gICAgICAgICAgICBmdW5jdGlvbiBoaWRlKCl7XG4gICAgICAgICAgICAgIGlmIChkb25lIHx8ICFlbCkgcmV0dXJuO1xuICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZWwuc3R5bGUudHJhbnNpdGlvbiA9ICdvcGFjaXR5IC4yNXMgZWFzZSc7XG4gICAgICAgICAgICAgIGVsLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgaWYgKGVsIFx1MDAyNlx1MDAyNiBlbC5wYXJlbnROb2RlKSBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsgfSwgMjYwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBvYnMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe1xuICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmF2JykpIHsgb2JzLmRpc2Nvbm5lY3QoKTsgaGlkZSgpOyB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9icy5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgICAgICAgIH0pKCk7XG4gICAgICAgICJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCIzOltcIiRcIixcImJvZHlcIixudWxsLHtcInN0eWxlXCI6e1wiYmFja2dyb3VuZFwiOlwiIzA4MGIxMlwiLFwibWFyZ2luXCI6MH0sXCJjaGlsZHJlblwiOltbXCIkXCIsXCJkaXZcIixudWxsLHtcImlkXCI6XCJpYy1wcmUtbG9hZGVyXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwiLFwiY2hpbGRyZW5cIjpbXCIkXCIsXCJkaXZcIixudWxsLHtcImNsYXNzTmFtZVwiOlwiaWMtd3JhcFwiLFwiY2hpbGRyZW5cIjpbW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJjbGFzc05hbWVcIjpcImljLWJyYW5kXCIsXCJjaGlsZHJlblwiOltcIklyb25cIixbXCIkXCIsXCJzcGFuXCIsbnVsbCx7XCJjaGlsZHJlblwiOlwiU2hpZWxkXCJ9XV19XSxbXCIkXCIsXCJkaXZcIixudWxsLHtcImNsYXNzTmFtZVwiOlwiaWMtdHJhY2tcIixcImNoaWxkcmVuXCI6W1tcIiRcIixcImRpdlwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJpYy1yYWlsXCIsXCJjaGlsZHJlblwiOltcIiRcIixcImRpdlwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJpYy1maWxsXCJ9XX1dLFtcIiRcIixcImRpdlwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJpYy1tYXNjb3RcIixcImNoaWxkcmVuXCI6W1wiJFwiLFwiaW1nXCIsbnVsbCx7XCJzcmNcIjpcIi9tYXNjb3Qud2VicFwiLFwiYWx0XCI6XCJcIn1dfV1dfV0sW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJjbGFzc05hbWVcIjpcImljLXN0YXR1c1wiLFwiY2hpbGRyZW5cIjpcIkxvYWRpbmcgSXJvblNoaWVsZOKAplwifV0sW1wiJFwiLFwiYVwiLG51bGwse1wiaHJlZlwiOlwiLi9cIixcImNsYXNzTmFtZVwiOlwiaWMtcmVsb2FkXCIsXCJpZFwiOlwiaWMtcmVsb2FkLWJ0blwiLFwiY2hpbGRyZW5cIjpcIlJlbG9hZCBwYWdlXCJ9XSxbXCIkXCIsXCJkaXZcIixudWxsLHtcImNsYXNzTmFtZVwiOlwiaWMtaGludFwiLFwiY2hpbGRyZW5cIjpcIklmIHRoaXMgaGFuZ3MsIGNsaWNrIHJlbG9hZC5cIn1dXX1dfV0sW1wiJFwiLFwic2NyaXB0XCIsbnVsbCx7XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOntcIl9faHRtbFwiOlwiJDhcIn19XSxbXCIkXCIsXCIkTDlcIixudWxsLHtcImNoaWxkcmVuXCI6W1wiJFwiLFwiJExhXCIsbnVsbCx7XCJjaGlsZHJlblwiOltcIiRcIixcIiRMYlwiLG51bGwse1wiY2hpbGRyZW5cIjpbXCIkXCIsXCIkTGNcIixudWxsLHtcInBhcmFsbGVsUm91dGVyS2V5XCI6XCJjaGlsZHJlblwiLFwiZXJyb3JcIjpcIiR1bmRlZmluZWRcIixcImVycm9yU3R5bGVzXCI6XCIkdW5kZWZpbmVkXCIsXCJlcnJvclNjcmlwdHNcIjpcIiR1bmRlZmluZWRcIixcInRlbXBsYXRlXCI6W1wiJFwiLFwiJExkXCIsbnVsbCx7fV0sXCJ0ZW1wbGF0ZVN0eWxlc1wiOlwiJHVuZGVmaW5lZFwiLFwidGVtcGxhdGVTY3JpcHRzXCI6XCIkdW5kZWZpbmVkXCIsXCJub3RGb3VuZFwiOltbW1wiJFwiLFwidGl0bGVcIixudWxsLHtcImNoaWxkcmVuXCI6XCI0MDQ6IFRoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQuXCJ9XSxbXCIkXCIsXCJkaXZcIixudWxsLHtcInN0eWxlXCI6e1wiZm9udEZhbWlseVwiOlwic3lzdGVtLXVpLFxcXCJTZWdvZSBVSVxcXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFxcXCJBcHBsZSBDb2xvciBFbW9qaVxcXCIsXFxcIlNlZ29lIFVJIEVtb2ppXFxcIlwiLFwiaGVpZ2h0XCI6XCIxMDB2aFwiLFwidGV4dEFsaWduXCI6XCJjZW50ZXJcIixcImRpc3BsYXlcIjpcImZsZXhcIixcImZsZXhEaXJlY3Rpb25cIjpcImNvbHVtblwiLFwiYWxpZ25JdGVtc1wiOlwiY2VudGVyXCIsXCJqdXN0aWZ5Q29udGVudFwiOlwiY2VudGVyXCJ9LFwiY2hpbGRyZW5cIjpbXCIkXCIsXCJkaXZcIixudWxsLHtcImNoaWxkcmVuXCI6W1tcIiRcIixcInN0eWxlXCIsbnVsbCx7XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOntcIl9faHRtbFwiOlwiYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX1cIn19XSxbXCIkXCIsXCJoMVwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJuZXh0LWVycm9yLWgxXCIsXCJzdHlsZVwiOntcImRpc3BsYXlcIjpcImlubGluZS1ibG9ja1wiLFwibWFyZ2luXCI6XCIwIDIwcHggMCAwXCIsXCJwYWRkaW5nXCI6XCIwIDIzcHggMCAwXCIsXCJmb250U2l6ZVwiOjI0LFwiZm9udFdlaWdodFwiOjUwMCxcInZlcnRpY2FsQWxpZ25cIjpcInRvcFwiLFwibGluZUhlaWdodFwiOlwiNDlweFwifSxcImNoaWxkcmVuXCI6NDA0fV0sW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJzdHlsZVwiOntcImRpc3BsYXlcIjpcImlubGluZS1ibG9ja1wifSxcImNoaWxkcmVuXCI6W1wiJFwiLFwiaDJcIixudWxsLHtcInN0eWxlXCI6e1wiZm9udFNpemVcIjoxNCxcImZvbnRXZWlnaHRcIjo0MDAsXCJsaW5lSGVpZ2h0XCI6XCI0OXB4XCIsXCJtYXJnaW5cIjowfSxcImNoaWxkcmVuXCI6XCJUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLlwifV19XV19XX1dXSxbXV0sXCJmb3JiaWRkZW5cIjpcIiR1bmRlZmluZWRcIixcInVuYXV0aG9yaXplZFwiOlwiJHVuZGVmaW5lZFwifV19XX1dfV1dfV1cbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCI0OltcIiRcIixcIiQxXCIsXCJjXCIse1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwiJExlXCIsbnVsbCx7XCJDb21wb25lbnRcIjpcIiRmXCIsXCJzZXJ2ZXJQcm92aWRlZFBhcmFtc1wiOntcInNlYXJjaFBhcmFtc1wiOnt9LFwicGFyYW1zXCI6e30sXCJwcm9taXNlc1wiOltcIiRAMTBcIixcIiRAMTFcIl19fV0sW1tcIiRcIixcInNjcmlwdFwiLFwic2NyaXB0LTBcIix7XCJzcmNcIjpcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzEweG12OF9jYzM2eHkuanNcIixcImFzeW5jXCI6dHJ1ZSxcIm5vbmNlXCI6XCIkdW5kZWZpbmVkXCJ9XSxbXCIkXCIsXCJzY3JpcHRcIixcInNjcmlwdC0xXCIse1wic3JjXCI6XCIvX25leHQvc3RhdGljL2NodW5rcy8wZmRnZG1tNWVnMmJyLmpzXCIsXCJhc3luY1wiOnRydWUsXCJub25jZVwiOlwiJHVuZGVmaW5lZFwifV0sW1wiJFwiLFwic2NyaXB0XCIsXCJzY3JpcHQtMlwiLHtcInNyY1wiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvMHhrcy5fenoyN25xZS5qc1wiLFwiYXN5bmNcIjp0cnVlLFwibm9uY2VcIjpcIiR1bmRlZmluZWRcIn1dXSxbXCIkXCIsXCIkTDEyXCIsbnVsbCx7XCJjaGlsZHJlblwiOltcIiRcIixcIiQxM1wiLG51bGwse1wibmFtZVwiOlwiTmV4dC5NZXRhZGF0YU91dGxldFwiLFwiY2hpbGRyZW5cIjpcIiRAMTRcIn1dfV1dfV1cbjU6W1wiJFwiLFwiJDFcIixcImhcIix7XCJjaGlsZHJlblwiOltudWxsLFtcIiRcIixcIiRMMTVcIixudWxsLHtcImNoaWxkcmVuXCI6XCIkTDE2XCJ9XSxbXCIkXCIsXCJkaXZcIixudWxsLHtcImhpZGRlblwiOnRydWUsXCJjaGlsZHJlblwiOltcIiRcIixcIiRMMTdcIixudWxsLHtcImNoaWxkcmVuXCI6W1wiJFwiLFwiJDEzXCIsbnVsbCx7XCJuYW1lXCI6XCJOZXh0Lk1ldGFkYXRhXCIsXCJjaGlsZHJlblwiOlwiJEwxOFwifV19XX1dLFtcIiRcIixcIm1ldGFcIixudWxsLHtcIm5hbWVcIjpcIm5leHQtc2l6ZS1hZGp1c3RcIixcImNvbnRlbnRcIjpcIlwifV1dfV1cbjc6W1wiJFwiLFwibGlua1wiLFwiMFwiLHtcInJlbFwiOlwic3R5bGVzaGVldFwiLFwiaHJlZlwiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvMF90dHhqYS1taS1fdi5jc3NcIixcInByZWNlZGVuY2VcIjpcIm5leHRcIixcImNyb3NzT3JpZ2luXCI6XCIkdW5kZWZpbmVkXCIsXCJub25jZVwiOlwiJHVuZGVmaW5lZFwifV1cbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCIxMDp7fVxuMTE6XCIkNDpwcm9wczpjaGlsZHJlbjowOnByb3BzOnNlcnZlclByb3ZpZGVkUGFyYW1zOnBhcmFtc1wiXG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMTY6W1tcIiRcIixcIm1ldGFcIixcIjBcIix7XCJjaGFyU2V0XCI6XCJ1dGYtOFwifV0sW1wiJFwiLFwibWV0YVwiLFwiMVwiLHtcIm5hbWVcIjpcInZpZXdwb3J0XCIsXCJjb250ZW50XCI6XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwifV1dXG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMTk6SVszMzYwMixbXCIvX25leHQvc3RhdGljL2NodW5rcy8wOHExdDFlY2Y5OS05LmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy8waHJ6MTNpeWhlYW10LmpzXCJdLFwiSWNvbk1hcmtcIl1cbjE0Om51bGxcbjE4OltbXCIkXCIsXCJ0aXRsZVwiLFwiMFwiLHtcImNoaWxkcmVuXCI6XCJJcm9uU2hpZWxkIHwgTkVBUiBQcm90b2NvbFwifV0sW1wiJFwiLFwibWV0YVwiLFwiMVwiLHtcIm5hbWVcIjpcImRlc2NyaXB0aW9uXCIsXCJjb250ZW50XCI6XCJBSSBTZWN1cml0eS4gT24tQ2hhaW4uIFVuc3RvcHBhYmxlLlwifV0sW1wiJFwiLFwibGlua1wiLFwiMlwiLHtcInJlbFwiOlwiaWNvblwiLFwiaHJlZlwiOlwiL2ljb24uc3ZnXCJ9XSxbXCIkXCIsXCIkTDE5XCIsXCIzXCIse31dXVxuIl0pPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4= |
| 1 | { |
| 2 | "ActionError": { |
| 3 | "kind": { |
| 4 | "FunctionCallError": { |
| 5 | "MethodResolveError": "MethodNotFound" |
| 6 | } |
| 7 | }, |
| 8 | "index": 0 |
| 9 | } |
| 10 | } |
| 1 | |
| 1 | { |
| 2 | "deposit": "21476621090723800000000" |
| 3 | } |
| 1 | |
| 1 | |