vue-office/examples/dist/assets/JsPdfDemo-e8851d15.js
2024-11-24 10:51:47 +08:00

2 lines
2.2 MiB

var S=Object.defineProperty;var B=(N,l,Z)=>l in N?S(N,l,{enumerable:!0,configurable:!0,writable:!0,value:Z}):N[l]=Z;var R=(N,l,Z)=>(B(N,typeof l!="symbol"?l+"":l,Z),Z);import{l as J,g as M,d as L}from"./url-065d6777.js";import{_ as Y,o as h}from"./function-d32b151d.js";/* empty css */import{r as T,o as E,a as p,c as s}from"./index-f961547d.js";const y="dmFyIEE9ezkzMDY6KEEsZSx0KT0+e3ZhciBpPXQoNDkwMSksYT10KDY4MjMpLHM9VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZihpKEEpKXJldHVybiBBO3Rocm93IG5ldyBzKGEoQSkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sMzUwNjooQSxlLHQpPT57dmFyIGk9dCgzOTI1KSxhPVN0cmluZyxzPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoaShBKSlyZXR1cm4gQTt0aHJvdyBuZXcgcygiQ2FuJ3Qgc2V0ICIrYShBKSsiIGFzIGEgcHJvdG90eXBlIil9fSw3MDgwOihBLGUsdCk9Pnt2YXIgaT10KDQ0MDIpLmhhcztBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIGkoQSksQX19LDY3OTooQSxlLHQpPT57dmFyIGk9dCgxNjI1KSxhPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtpZihpKGUsQSkpcmV0dXJuIEE7dGhyb3cgbmV3IGEoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSw4NTUxOihBLGUsdCk9Pnt2YXIgaT10KDM0KSxhPVN0cmluZyxzPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoaShBKSlyZXR1cm4gQTt0aHJvdyBuZXcgcyhhKEEpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNzgxMTpBPT57QS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LDczOTQ6KEEsZSx0KT0+e3ZhciBpPXQoNDU3NiksYT10KDY3MDYpLHM9dCgyMTk1KSxuPWkuQXJyYXlCdWZmZXIscj1pLlR5cGVFcnJvcjtBLmV4cG9ydHM9biYmYShuLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIsImdldCIpfHxmdW5jdGlvbihBKXtpZigiQXJyYXlCdWZmZXIiIT09cyhBKSl0aHJvdyBuZXcgcigiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gQS5ieXRlTGVuZ3RofX0sMzIzODooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoNzQ3Nikscz10KDczOTQpLG49aS5BcnJheUJ1ZmZlcixyPW4mJm4ucHJvdG90eXBlLGc9ciYmYShyLnNsaWNlKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoMCE9PXMoQSkpcmV0dXJuITE7aWYoIWcpcmV0dXJuITE7dHJ5e3JldHVybiBnKEEsMCwwKSwhMX1jYXRjaChBKXtyZXR1cm4hMH19fSw1MTY5OihBLGUsdCk9Pnt2YXIgaT10KDMyMzgpLGE9VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZihpKEEpKXRocm93IG5ldyBhKCJBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCIpO3JldHVybiBBfX0sNTYzNjooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoOTUwNCkscz10KDY3MDYpLG49dCg3Njk2KSxyPXQoNTE2OSksZz10KDczOTQpLG89dCg0NDgzKSxJPXQoMTU0OCksYz1pLnN0cnVjdHVyZWRDbG9uZSxoPWkuQXJyYXlCdWZmZXIsQz1pLkRhdGFWaWV3LEI9TWF0aC5taW4sbD1oLnByb3RvdHlwZSxRPUMucHJvdG90eXBlLEU9YShsLnNsaWNlKSx1PXMobCwicmVzaXphYmxlIiwiZ2V0IiksZD1zKGwsIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxmPWEoUS5nZXRJbnQ4KSxwPWEoUS5zZXRJbnQ4KTtBLmV4cG9ydHM9KEl8fG8pJiZmdW5jdGlvbihBLGUsdCl7dmFyIGksYT1nKEEpLHM9dm9pZCAwPT09ZT9hOm4oZSksbD0hdXx8IXUoQSk7aWYocihBKSxJJiYoQT1jKEEse3RyYW5zZmVyOltBXX0pLGE9PT1zJiYodHx8bCkpKXJldHVybiBBO2lmKGE+PXMmJighdHx8bCkpaT1FKEEsMCxzKTtlbHNle3ZhciBRPXQmJiFsJiZkP3ttYXhCeXRlTGVuZ3RoOmQoQSl9OnZvaWQgMDtpPW5ldyBoKHMsUSk7Zm9yKHZhciBtPW5ldyBDKEEpLHk9bmV3IEMoaSksdz1CKHMsYSksRD0wO0Q8dztEKyspcCh5LEQsZihtLEQpKX1yZXR1cm4gSXx8byhBKSxpfX0sNDY0NDooQSxlLHQpPT57dmFyIGksYSxzLG49dCg3ODExKSxyPXQoMzcyNCksZz10KDQ1NzYpLG89dCg0OTAxKSxJPXQoMzQpLGM9dCg5Mjk3KSxoPXQoNjk1NSksQz10KDY4MjMpLEI9dCg2Njk5KSxsPXQoNjg0MCksUT10KDIxMDYpLEU9dCgxNjI1KSx1PXQoMjc4NyksZD10KDI5NjcpLGY9dCg4MjI3KSxwPXQoMzM5MiksbT10KDExODEpLHk9bS5lbmZvcmNlLHc9bS5nZXQsRD1nLkludDhBcnJheSxiPUQmJkQucHJvdG90eXBlLGs9Zy5VaW50OENsYW1wZWRBcnJheSxGPWsmJmsucHJvdG90eXBlLFM9RCYmdShEKSxSPWImJnUoYiksRz1PYmplY3QucHJvdG90eXBlLE49Zy5UeXBlRXJyb3IseD1mKCJ0b1N0cmluZ1RhZyIpLFU9cCgiVFlQRURfQVJSQVlfVEFHIiksTT0iVHlwZWRBcnJheUNvbnN0cnVjdG9yIixMPW4mJiEhZCYmIk9wZXJhIiE9PWgoZy5vcGVyYSksSj0hMSxIPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWT17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LHY9ZnVuY3Rpb24oQSl7dmFyIGU9dShBKTtpZihJKGUpKXt2YXIgdD13KGUpO3JldHVybiB0JiZjKHQsTSk/dFtNXTp2KGUpfX0sSz1mdW5jdGlvbihBKXtpZighSShBKSlyZXR1cm4hMTt2YXIgZT1oKEEpO3JldHVybiBjKEgsZSl8fGMoWSxlKX07Zm9yKGkgaW4gSCkocz0oYT1nW2ldKSYmYS5wcm90b3R5cGUpP3kocylbTV09YTpMPSExO2ZvcihpIGluIFkpKHM9KGE9Z1tpXSkmJmEucHJvdG90eXBlKSYmKHkocylbTV09YSk7aWYoKCFMfHwhbyhTKXx8Uz09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihTPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IE4oIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LEwpKWZvcihpIGluIEgpZ1tpXSYmZChnW2ldLFMpO2lmKCghTHx8IVJ8fFI9PT1HKSYmKFI9Uy5wcm90b3R5cGUsTCkpZm9yKGkgaW4gSClnW2ldJiZkKGdbaV0ucHJvdG90eXBlLFIpO2lmKEwmJnUoRikhPT1SJiZkKEYsUiksciYmIWMoUix4KSlmb3IoaSBpbiBKPSEwLFEoUix4LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyk/dGhpc1tVXTp2b2lkIDB9fSksSClnW2ldJiZCKGdbaV0sVSxpKTtBLmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6TCxUWVBFRF9BUlJBWV9UQUc6SiYmVSxhVHlwZWRBcnJheTpmdW5jdGlvbihBKXtpZihLKEEpKXJldHVybiBBO3Rocm93IG5ldyBOKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbihBKXtpZihvKEEpJiYoIWR8fEUoUyxBKSkpcmV0dXJuIEE7dGhyb3cgbmV3IE4oQyhBKSsiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIil9LGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6ZnVuY3Rpb24oQSxlLHQsaSl7aWYocil7aWYodClmb3IodmFyIGEgaW4gSCl7dmFyIHM9Z1thXTtpZihzJiZjKHMucHJvdG90eXBlLEEpKXRyeXtkZWxldGUgcy5wcm90b3R5cGVbQV19Y2F0Y2godCl7dHJ5e3MucHJvdG90eXBlW0FdPWV9Y2F0Y2goQSl7fX19UltBXSYmIXR8fGwoUixBLHQ/ZTpMJiZiW0FdfHxlLGkpfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbihBLGUsdCl7dmFyIGksYTtpZihyKXtpZihkKXtpZih0KWZvcihpIGluIEgpaWYoKGE9Z1tpXSkmJmMoYSxBKSl0cnl7ZGVsZXRlIGFbQV19Y2F0Y2goQSl7fWlmKFNbQV0mJiF0KXJldHVybjt0cnl7cmV0dXJuIGwoUyxBLHQ/ZTpMJiZTW0FdfHxlKX1jYXRjaChBKXt9fWZvcihpIGluIEgpIShhPWdbaV0pfHxhW0FdJiYhdHx8bChhLEEsZSl9fSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I6dixpc1ZpZXc6ZnVuY3Rpb24oQSl7aWYoIUkoQSkpcmV0dXJuITE7dmFyIGU9aChBKTtyZXR1cm4iRGF0YVZpZXciPT09ZXx8YyhILGUpfHxjKFksZSl9LGlzVHlwZWRBcnJheTpLLFR5cGVkQXJyYXk6UyxUeXBlZEFycmF5UHJvdG90eXBlOlJ9fSw1MzcwOihBLGUsdCk9Pnt2YXIgaT10KDYxOTgpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciBhPTAscz1hcmd1bWVudHMubGVuZ3RoPjI/dDppKGUpLG49bmV3IEEocyk7cz5hOyluW2FdPWVbYSsrXTtyZXR1cm4gbn19LDk2MTc6KEEsZSx0KT0+e3ZhciBpPXQoNTM5NyksYT10KDU2MTApLHM9dCg2MTk4KSxuPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI9aShlKSxnPXMocik7aWYoMD09PWcpcmV0dXJuIUEmJi0xO3ZhciBvLEk9YShuLGcpO2lmKEEmJnQhPXQpe2Zvcig7Zz5JOylpZigobz1yW0krK10pIT1vKXJldHVybiEwfWVsc2UgZm9yKDtnPkk7SSsrKWlmKChBfHxJIGluIHIpJiZyW0ldPT09dClyZXR1cm4gQXx8SXx8MDtyZXR1cm4hQSYmLTF9fTtBLmV4cG9ydHM9e2luY2x1ZGVzOm4oITApLGluZGV4T2Y6bighMSl9fSw0NTI3OihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg0Mzc2KSxzPVR5cGVFcnJvcixuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1pJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2goQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO0EuZXhwb3J0cz1yP2Z1bmN0aW9uKEEsZSl7aWYoYShBKSYmIW4oQSwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgbmV3IHMoIkNhbm5vdCBzZXQgcmVhZCBvbmx5IC5sZW5ndGgiKTtyZXR1cm4gQS5sZW5ndGg9ZX06ZnVuY3Rpb24oQSxlKXtyZXR1cm4gQS5sZW5ndGg9ZX19LDc2Mjg6KEEsZSx0KT0+e3ZhciBpPXQoNjE5OCk7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7Zm9yKHZhciB0PWkoQSksYT1uZXcgZSh0KSxzPTA7czx0O3MrKylhW3NdPUFbdC1zLTFdO3JldHVybiBhfX0sOTkyODooQSxlLHQpPT57dmFyIGk9dCg2MTk4KSxhPXQoMTI5MSkscz1SYW5nZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCxuKXt2YXIgcj1pKEEpLGc9YSh0KSxvPWc8MD9yK2c6ZztpZihvPj1yfHxvPDApdGhyb3cgbmV3IHMoIkluY29ycmVjdCBpbmRleCIpO2Zvcih2YXIgST1uZXcgZShyKSxjPTA7YzxyO2MrKylJW2NdPWM9PT1vP246QVtjXTtyZXR1cm4gSX19LDYzMTk6KEEsZSx0KT0+e3ZhciBpPXQoODU1MSksYT10KDk1MzkpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCxzKXt0cnl7cmV0dXJuIHM/ZShpKHQpWzBdLHRbMV0pOmUodCl9Y2F0Y2goZSl7YShBLCJ0aHJvdyIsZSl9fX0sMjE5NTooQSxlLHQpPT57dmFyIGk9dCg5NTA0KSxhPWkoe30udG9TdHJpbmcpLHM9aSgiIi5zbGljZSk7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybiBzKGEoQSksOCwtMSl9fSw2OTU1OihBLGUsdCk9Pnt2YXIgaT10KDIxNDApLGE9dCg0OTAxKSxzPXQoMjE5NSksbj10KDgyMjcpKCJ0b1N0cmluZ1RhZyIpLHI9T2JqZWN0LGc9IkFyZ3VtZW50cyI9PT1zKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7QS5leHBvcnRzPWk/czpmdW5jdGlvbihBKXt2YXIgZSx0LGk7cmV0dXJuIHZvaWQgMD09PUE/IlVuZGVmaW5lZCI6bnVsbD09PUE/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YodD1mdW5jdGlvbihBLGUpe3RyeXtyZXR1cm4gQVtlXX1jYXRjaChBKXt9fShlPXIoQSksbikpP3Q6Zz9zKGUpOiJPYmplY3QiPT09KGk9cyhlKSkmJmEoZS5jYWxsZWUpPyJBcmd1bWVudHMiOml9fSw3NzQwOihBLGUsdCk9Pnt2YXIgaT10KDkyOTcpLGE9dCg1MDMxKSxzPXQoNzM0Nyksbj10KDQ5MTMpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciByPWEoZSksZz1uLmYsbz1zLmYsST0wO0k8ci5sZW5ndGg7SSsrKXt2YXIgYz1yW0ldO2koQSxjKXx8dCYmaSh0LGMpfHxnKEEsYyxvKGUsYykpfX19LDIyMTE6KEEsZSx0KT0+e3ZhciBpPXQoOTAzOSk7QS5leHBvcnRzPSFpKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpfSwyNTI5OkE9PntBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm57dmFsdWU6QSxkb25lOmV9fX0sNjY5OTooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoNDkxMykscz10KDY5ODApO0EuZXhwb3J0cz1pP2Z1bmN0aW9uKEEsZSx0KXtyZXR1cm4gYS5mKEEsZSxzKDEsdCkpfTpmdW5jdGlvbihBLGUsdCl7cmV0dXJuIEFbZV09dCxBfX0sNjk4MDpBPT57QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJkEpLGNvbmZpZ3VyYWJsZTohKDImQSksd3JpdGFibGU6ISg0JkEpLHZhbHVlOmV9fX0sNDY1OTooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoNDkxMykscz10KDY5ODApO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7aT9hLmYoQSxlLHMoMCx0KSk6QVtlXT10fX0sMjEwNjooQSxlLHQpPT57dmFyIGk9dCgyODMpLGE9dCg0OTEzKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlLHQpe3JldHVybiB0LmdldCYmaSh0LmdldCxlLHtnZXR0ZXI6ITB9KSx0LnNldCYmaSh0LnNldCxlLHtzZXR0ZXI6ITB9KSxhLmYoQSxlLHQpfX0sNjg0MDooQSxlLHQpPT57dmFyIGk9dCg0OTAxKSxhPXQoNDkxMykscz10KDI4Myksbj10KDk0MzMpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCxyKXtyfHwocj17fSk7dmFyIGc9ci5lbnVtZXJhYmxlLG89dm9pZCAwIT09ci5uYW1lP3IubmFtZTplO2lmKGkodCkmJnModCxvLHIpLHIuZ2xvYmFsKWc/QVtlXT10Om4oZSx0KTtlbHNle3RyeXtyLnVuc2FmZT9BW2VdJiYoZz0hMCk6ZGVsZXRlIEFbZV19Y2F0Y2goQSl7fWc/QVtlXT10OmEuZihBLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IXIubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFyLm5vbldyaXRhYmxlfSl9cmV0dXJuIEF9fSw2Mjc5OihBLGUsdCk9Pnt2YXIgaT10KDY4NDApO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciBhIGluIGUpaShBLGEsZVthXSx0KTtyZXR1cm4gQX19LDk0MzM6KEEsZSx0KT0+e3ZhciBpPXQoNDU3NiksYT1PYmplY3QuZGVmaW5lUHJvcGVydHk7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dHJ5e2EoaSxBLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKHQpe2lbQV09ZX1yZXR1cm4gZX19LDM3MjQ6KEEsZSx0KT0+e3ZhciBpPXQoOTAzOSk7QS5leHBvcnRzPSFpKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw0NDgzOihBLGUsdCk9Pnt2YXIgaSxhLHMsbixyPXQoNDU3NiksZz10KDk0MjkpLG89dCgxNTQ4KSxJPXIuc3RydWN0dXJlZENsb25lLGM9ci5BcnJheUJ1ZmZlcixoPXIuTWVzc2FnZUNoYW5uZWwsQz0hMTtpZihvKUM9ZnVuY3Rpb24oQSl7SShBLHt0cmFuc2ZlcjpbQV19KX07ZWxzZSBpZihjKXRyeXtofHwoaT1nKCJ3b3JrZXJfdGhyZWFkcyIpKSYmKGg9aS5NZXNzYWdlQ2hhbm5lbCksaCYmKGE9bmV3IGgscz1uZXcgYygyKSxuPWZ1bmN0aW9uKEEpe2EucG9ydDEucG9zdE1lc3NhZ2UobnVsbCxbQV0pfSwyPT09cy5ieXRlTGVuZ3RoJiYobihzKSwwPT09cy5ieXRlTGVuZ3RoJiYoQz1uKSkpfWNhdGNoKEEpe31BLmV4cG9ydHM9Q30sNDA1NTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoMzQpLHM9aS5kb2N1bWVudCxuPWEocykmJmEocy5jcmVhdGVFbGVtZW50KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/cy5jcmVhdGVFbGVtZW50KEEpOnt9fX0sNjgzNzpBPT57dmFyIGU9VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZihBPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgZSgiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIEF9fSw1MDAyOkE9PntBLmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSw4NzI3OkE9PntBLmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sNjE5MzooQSxlLHQpPT57dmFyIGk9dCg0MjE1KTtBLmV4cG9ydHM9Ik5PREUiPT09aX0sMjgzOTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KS5uYXZpZ2F0b3IsYT1pJiZpLnVzZXJBZ2VudDtBLmV4cG9ydHM9YT9TdHJpbmcoYSk6IiJ9LDk1MTk6KEEsZSx0KT0+e3ZhciBpLGEscz10KDQ1NzYpLG49dCgyODM5KSxyPXMucHJvY2VzcyxnPXMuRGVubyxvPXImJnIudmVyc2lvbnN8fGcmJmcudmVyc2lvbixJPW8mJm8udjg7SSYmKGE9KGk9SS5zcGxpdCgiLiIpKVswXT4wJiZpWzBdPDQ/MTorKGlbMF0raVsxXSkpLCFhJiZuJiYoIShpPW4ubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxpWzFdPj03NCkmJihpPW4ubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihhPStpWzFdKSxBLmV4cG9ydHM9YX0sNDIxNTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoMjgzOSkscz10KDIxOTUpLG49ZnVuY3Rpb24oQSl7cmV0dXJuIGEuc2xpY2UoMCxBLmxlbmd0aCk9PT1BfTtBLmV4cG9ydHM9bigiQnVuLyIpPyJCVU4iOm4oIkNsb3VkZmxhcmUtV29ya2VycyIpPyJDTE9VREZMQVJFIjpuKCJEZW5vLyIpPyJERU5PIjpuKCJOb2RlLmpzLyIpPyJOT0RFIjppLkJ1biYmInN0cmluZyI9PXR5cGVvZiBCdW4udmVyc2lvbj8iQlVOIjppLkRlbm8mJiJvYmplY3QiPT10eXBlb2YgRGVuby52ZXJzaW9uPyJERU5PIjoicHJvY2VzcyI9PT1zKGkucHJvY2Vzcyk/Ik5PREUiOmkud2luZG93JiZpLmRvY3VtZW50PyJCUk9XU0VSIjoiUkVTVCJ9LDg1NzQ6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT1FcnJvcixzPWkoIiIucmVwbGFjZSksbj1TdHJpbmcobmV3IGEoInp4Y2FzZCIpLnN0YWNrKSxyPS9cblxzKmF0IFteOl0qOlteXG5dKi8sZz1yLnRlc3Qobik7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7aWYoZyYmInN0cmluZyI9PXR5cGVvZiBBJiYhYS5wcmVwYXJlU3RhY2tUcmFjZSlmb3IoO2UtLTspQT1zKEEsciwiIik7cmV0dXJuIEF9fSw2NTE4OihBLGUsdCk9Pnt2YXIgaT10KDQ1NzYpLGE9dCg3MzQ3KS5mLHM9dCg2Njk5KSxuPXQoNjg0MCkscj10KDk0MzMpLGc9dCg3NzQwKSxvPXQoMjc5Nik7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dmFyIHQsSSxjLGgsQyxCPUEudGFyZ2V0LGw9QS5nbG9iYWwsUT1BLnN0YXQ7aWYodD1sP2k6UT9pW0JdfHxyKEIse30pOmlbQl0mJmlbQl0ucHJvdG90eXBlKWZvcihJIGluIGUpe2lmKGg9ZVtJXSxjPUEuZG9udENhbGxHZXRTZXQ/KEM9YSh0LEkpKSYmQy52YWx1ZTp0W0ldLCFvKGw/STpCKyhRPyIuIjoiIyIpK0ksQS5mb3JjZWQpJiZ2b2lkIDAhPT1jKXtpZih0eXBlb2YgaD09dHlwZW9mIGMpY29udGludWU7ZyhoLGMpfShBLnNoYW18fGMmJmMuc2hhbSkmJnMoaCwic2hhbSIsITApLG4odCxJLGgsQSl9fX0sOTAzOTpBPT57QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3RyeXtyZXR1cm4hIUEoKX1jYXRjaChBKXtyZXR1cm4hMH19fSw2MDgwOihBLGUsdCk9Pnt2YXIgaT10KDc0NzYpLGE9dCg5MzA2KSxzPXQoNjE2KSxuPWkoaS5iaW5kKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gYShBKSx2b2lkIDA9PT1lP0E6cz9uKEEsZSk6ZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fX0sNjE2OihBLGUsdCk9Pnt2YXIgaT10KDkwMzkpO0EuZXhwb3J0cz0haSgoZnVuY3Rpb24oKXt2YXIgQT1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBBfHxBLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKX0sOTU2NTooQSxlLHQpPT57dmFyIGk9dCg2MTYpLGE9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7QS5leHBvcnRzPWk/YS5iaW5kKGEpOmZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYSxhcmd1bWVudHMpfX0sMzUwOihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg5Mjk3KSxzPUZ1bmN0aW9uLnByb3RvdHlwZSxuPWkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1hKHMsIm5hbWUiKSxnPXImJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsbz1yJiYoIWl8fGkmJm4ocywibmFtZSIpLmNvbmZpZ3VyYWJsZSk7QS5leHBvcnRzPXtFWElTVFM6cixQUk9QRVI6ZyxDT05GSUdVUkFCTEU6b319LDY3MDY6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDkzMDYpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7dHJ5e3JldHVybiBpKGEoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihBLGUpW3RdKSl9Y2F0Y2goQSl7fX19LDc0NzY6KEEsZSx0KT0+e3ZhciBpPXQoMjE5NSksYT10KDk1MDQpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZigiRnVuY3Rpb24iPT09aShBKSlyZXR1cm4gYShBKX19LDk1MDQ6KEEsZSx0KT0+e3ZhciBpPXQoNjE2KSxhPUZ1bmN0aW9uLnByb3RvdHlwZSxzPWEuY2FsbCxuPWkmJmEuYmluZC5iaW5kKHMscyk7QS5leHBvcnRzPWk/bjpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseShBLGFyZ3VtZW50cyl9fX0sOTQyOTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoNjE5Myk7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe2lmKGEpe3RyeXtyZXR1cm4gaS5wcm9jZXNzLmdldEJ1aWx0aW5Nb2R1bGUoQSl9Y2F0Y2goQSl7fXRyeXtyZXR1cm4gRnVuY3Rpb24oJ3JldHVybiByZXF1aXJlKCInK0ErJyIpJykoKX1jYXRjaChBKXt9fX19LDc3NTE6KEEsZSx0KT0+e3ZhciBpPXQoNDU3NiksYT10KDQ5MDEpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/KHQ9aVtBXSxhKHQpP3Q6dm9pZCAwKTppW0FdJiZpW0FdW2VdO3ZhciB0fX0sMTc2NzpBPT57QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybntpdGVyYXRvcjpBLG5leHQ6QS5uZXh0LGRvbmU6ITF9fX0sODUxOihBLGUsdCk9Pnt2YXIgaT10KDY5NTUpLGE9dCg1OTY2KSxzPXQoNDExNyksbj10KDYyNjkpLHI9dCg4MjI3KSgiaXRlcmF0b3IiKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoIXMoQSkpcmV0dXJuIGEoQSxyKXx8YShBLCJAQGl0ZXJhdG9yIil8fG5baShBKV19fSw4MTooQSxlLHQpPT57dmFyIGk9dCg5NTY1KSxhPXQoOTMwNikscz10KDg1NTEpLG49dCg2ODIzKSxyPXQoODUxKSxnPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDI/cihBKTplO2lmKGEodCkpcmV0dXJuIHMoaSh0LEEpKTt0aHJvdyBuZXcgZyhuKEEpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw1OTY2OihBLGUsdCk9Pnt2YXIgaT10KDkzMDYpLGE9dCg0MTE3KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXt2YXIgdD1BW2VdO3JldHVybiBhKHQpP3ZvaWQgMDppKHQpfX0sMzc4OTooQSxlLHQpPT57dmFyIGk9dCg5MzA2KSxhPXQoODU1MSkscz10KDk1NjUpLG49dCgxMjkxKSxyPXQoMTc2NyksZz0iSW52YWxpZCBzaXplIixvPVJhbmdlRXJyb3IsST1UeXBlRXJyb3IsYz1NYXRoLm1heCxoPWZ1bmN0aW9uKEEsZSl7dGhpcy5zZXQ9QSx0aGlzLnNpemU9YyhlLDApLHRoaXMuaGFzPWkoQS5oYXMpLHRoaXMua2V5cz1pKEEua2V5cyl9O2gucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiByKGEocyh0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiBzKHRoaXMuaGFzLHRoaXMuc2V0LEEpfX0sQS5leHBvcnRzPWZ1bmN0aW9uKEEpe2EoQSk7dmFyIGU9K0Euc2l6ZTtpZihlIT1lKXRocm93IG5ldyBJKGcpO3ZhciB0PW4oZSk7aWYodDwwKXRocm93IG5ldyBvKGcpO3JldHVybiBuZXcgaChBLHQpfX0sNDU3NjpmdW5jdGlvbihBKXt2YXIgZT1mdW5jdGlvbihBKXtyZXR1cm4gQSYmQS5NYXRoPT09TWF0aCYmQX07QS5leHBvcnRzPWUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8ZSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8ZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxlKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwpfHxlKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDkyOTc6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDg5ODEpLHM9aSh7fS5oYXNPd25Qcm9wZXJ0eSk7QS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKEEsZSl7cmV0dXJuIHMoYShBKSxlKX19LDQyMTpBPT57QS5leHBvcnRzPXt9fSwzOTc6KEEsZSx0KT0+e3ZhciBpPXQoNzc1MSk7QS5leHBvcnRzPWkoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDU5MTc6KEEsZSx0KT0+e3ZhciBpPXQoMzcyNCksYT10KDkwMzkpLHM9dCg0MDU1KTtBLmV4cG9ydHM9IWkmJiFhKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHMoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNzA1NTooQSxlLHQpPT57dmFyIGk9dCg5NTA0KSxhPXQoOTAzOSkscz10KDIxOTUpLG49T2JqZWN0LHI9aSgiIi5zcGxpdCk7QS5leHBvcnRzPWEoKGZ1bmN0aW9uKCl7cmV0dXJuIW4oInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09PXMoQSk/cihBLCIiKTpuKEEpfTpufSwzMTY3OihBLGUsdCk9Pnt2YXIgaT10KDQ5MDEpLGE9dCgzNCkscz10KDI5NjcpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7dmFyIG4scjtyZXR1cm4gcyYmaShuPWUuY29uc3RydWN0b3IpJiZuIT09dCYmYShyPW4ucHJvdG90eXBlKSYmciE9PXQucHJvdG90eXBlJiZzKEEsciksQX19LDM3MDY6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDQ5MDEpLHM9dCg3NjI5KSxuPWkoRnVuY3Rpb24udG9TdHJpbmcpO2Eocy5pbnNwZWN0U291cmNlKXx8KHMuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gbihBKX0pLEEuZXhwb3J0cz1zLmluc3BlY3RTb3VyY2V9LDExODE6KEEsZSx0KT0+e3ZhciBpLGEscyxuPXQoODYyMikscj10KDQ1NzYpLGc9dCgzNCksbz10KDY2OTkpLEk9dCg5Mjk3KSxjPXQoNzYyOSksaD10KDYxMTkpLEM9dCg0MjEpLEI9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixsPXIuVHlwZUVycm9yLFE9ci5XZWFrTWFwO2lmKG58fGMuc3RhdGUpe3ZhciBFPWMuc3RhdGV8fChjLnN0YXRlPW5ldyBRKTtFLmdldD1FLmdldCxFLmhhcz1FLmhhcyxFLnNldD1FLnNldCxpPWZ1bmN0aW9uKEEsZSl7aWYoRS5oYXMoQSkpdGhyb3cgbmV3IGwoQik7cmV0dXJuIGUuZmFjYWRlPUEsRS5zZXQoQSxlKSxlfSxhPWZ1bmN0aW9uKEEpe3JldHVybiBFLmdldChBKXx8e319LHM9ZnVuY3Rpb24oQSl7cmV0dXJuIEUuaGFzKEEpfX1lbHNle3ZhciB1PWgoInN0YXRlIik7Q1t1XT0hMCxpPWZ1bmN0aW9uKEEsZSl7aWYoSShBLHUpKXRocm93IG5ldyBsKEIpO3JldHVybiBlLmZhY2FkZT1BLG8oQSx1LGUpLGV9LGE9ZnVuY3Rpb24oQSl7cmV0dXJuIEkoQSx1KT9BW3VdOnt9fSxzPWZ1bmN0aW9uKEEpe3JldHVybiBJKEEsdSl9fUEuZXhwb3J0cz17c2V0OmksZ2V0OmEsaGFzOnMsZW5mb3JjZTpmdW5jdGlvbihBKXtyZXR1cm4gcyhBKT9hKEEpOmkoQSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ7aWYoIWcoZSl8fCh0PWEoZSkpLnR5cGUhPT1BKXRocm93IG5ldyBsKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrQSsiIHJlcXVpcmVkIik7cmV0dXJuIHR9fX19LDQyMDk6KEEsZSx0KT0+e3ZhciBpPXQoODIyNyksYT10KDYyNjkpLHM9aSgiaXRlcmF0b3IiKSxuPUFycmF5LnByb3RvdHlwZTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihhLkFycmF5PT09QXx8bltzXT09PUEpfX0sNDM3NjooQSxlLHQpPT57dmFyIGk9dCgyMTk1KTtBLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oQSl7cmV0dXJuIkFycmF5Ij09PWkoQSl9fSwxMTA4OihBLGUsdCk9Pnt2YXIgaT10KDY5NTUpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXt2YXIgZT1pKEEpO3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PWV8fCJCaWdVaW50NjRBcnJheSI9PT1lfX0sNDkwMTpBPT57dmFyIGU9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsO0EuZXhwb3J0cz12b2lkIDA9PT1lJiZ2b2lkIDAhPT1lP2Z1bmN0aW9uKEEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBBfHxBPT09ZX06ZnVuY3Rpb24oQSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEF9fSwyNzk2OihBLGUsdCk9Pnt2YXIgaT10KDkwMzkpLGE9dCg0OTAxKSxzPS8jfFwucHJvdG90eXBlXC4vLG49ZnVuY3Rpb24oQSxlKXt2YXIgdD1nW3IoQSldO3JldHVybiB0PT09SXx8dCE9PW8mJihhKGUpP2koZSk6ISFlKX0scj1uLm5vcm1hbGl6ZT1mdW5jdGlvbihBKXtyZXR1cm4gU3RyaW5nKEEpLnJlcGxhY2UocywiLiIpLnRvTG93ZXJDYXNlKCl9LGc9bi5kYXRhPXt9LG89bi5OQVRJVkU9Ik4iLEk9bi5QT0xZRklMTD0iUCI7QS5leHBvcnRzPW59LDQxMTc6QT0+e0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gbnVsbD09QX19LDM0OihBLGUsdCk9Pnt2YXIgaT10KDQ5MDEpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEE/bnVsbCE9PUE6aShBKX19LDM5MjU6KEEsZSx0KT0+e3ZhciBpPXQoMzQpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gaShBKXx8bnVsbD09PUF9fSw2Mzk1OkE9PntBLmV4cG9ydHM9ITF9LDc1NzooQSxlLHQpPT57dmFyIGk9dCg3NzUxKSxhPXQoNDkwMSkscz10KDE2MjUpLG49dCg3MDQwKSxyPU9iamVjdDtBLmV4cG9ydHM9bj9mdW5jdGlvbihBKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIEF9OmZ1bmN0aW9uKEEpe3ZhciBlPWkoIlN5bWJvbCIpO3JldHVybiBhKGUpJiZzKGUucHJvdG90eXBlLHIoQSkpfX0sNTA3OihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciBhLHMsbj10P0E6QS5pdGVyYXRvcixyPUEubmV4dDshKGE9aShyLG4pKS5kb25lOylpZih2b2lkIDAhPT0ocz1lKGEudmFsdWUpKSlyZXR1cm4gc319LDI2NTI6KEEsZSx0KT0+e3ZhciBpPXQoNjA4MCksYT10KDk1NjUpLHM9dCg4NTUxKSxuPXQoNjgyMykscj10KDQyMDkpLGc9dCg2MTk4KSxvPXQoMTYyNSksST10KDgxKSxjPXQoODUxKSxoPXQoOTUzOSksQz1UeXBlRXJyb3IsQj1mdW5jdGlvbihBLGUpe3RoaXMuc3RvcHBlZD1BLHRoaXMucmVzdWx0PWV9LGw9Qi5wcm90b3R5cGU7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSx0KXt2YXIgUSxFLHUsZCxmLHAsbSx5PXQmJnQudGhhdCx3PSEoIXR8fCF0LkFTX0VOVFJJRVMpLEQ9ISghdHx8IXQuSVNfUkVDT1JEKSxiPSEoIXR8fCF0LklTX0lURVJBVE9SKSxrPSEoIXR8fCF0LklOVEVSUlVQVEVEKSxGPWkoZSx5KSxTPWZ1bmN0aW9uKEEpe3JldHVybiBRJiZoKFEsIm5vcm1hbCIsQSksbmV3IEIoITAsQSl9LFI9ZnVuY3Rpb24oQSl7cmV0dXJuIHc/KHMoQSksaz9GKEFbMF0sQVsxXSxTKTpGKEFbMF0sQVsxXSkpOms/RihBLFMpOkYoQSl9O2lmKEQpUT1BLml0ZXJhdG9yO2Vsc2UgaWYoYilRPUE7ZWxzZXtpZighKEU9YyhBKSkpdGhyb3cgbmV3IEMobihBKSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKHIoRSkpe2Zvcih1PTAsZD1nKEEpO2Q+dTt1KyspaWYoKGY9UihBW3VdKSkmJm8obCxmKSlyZXR1cm4gZjtyZXR1cm4gbmV3IEIoITEpfVE9SShBLEUpfWZvcihwPUQ/QS5uZXh0OlEubmV4dDshKG09YShwLFEpKS5kb25lOyl7dHJ5e2Y9UihtLnZhbHVlKX1jYXRjaChBKXtoKFEsInRocm93IixBKX1pZigib2JqZWN0Ij09dHlwZW9mIGYmJmYmJm8obCxmKSlyZXR1cm4gZn1yZXR1cm4gbmV3IEIoITEpfX0sOTUzOTooQSxlLHQpPT57dmFyIGk9dCg5NTY1KSxhPXQoODU1MSkscz10KDU5NjYpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7dmFyIG4scjthKEEpO3RyeXtpZighKG49cyhBLCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1lKXRocm93IHQ7cmV0dXJuIHR9bj1pKG4sQSl9Y2F0Y2goQSl7cj0hMCxuPUF9aWYoInRocm93Ij09PWUpdGhyb3cgdDtpZihyKXRocm93IG47cmV0dXJuIGEobiksdH19LDk0NjI6KEEsZSx0KT0+e3ZhciBpPXQoOTU2NSksYT10KDIzNjApLHM9dCg2Njk5KSxuPXQoNjI3OSkscj10KDgyMjcpLGc9dCgxMTgxKSxvPXQoNTk2NiksST10KDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGM9dCgyNTI5KSxoPXQoOTUzOSksQz1yKCJ0b1N0cmluZ1RhZyIpLEI9Ikl0ZXJhdG9ySGVscGVyIixsPSJXcmFwRm9yVmFsaWRJdGVyYXRvciIsUT1nLnNldCxFPWZ1bmN0aW9uKEEpe3ZhciBlPWcuZ2V0dGVyRm9yKEE/bDpCKTtyZXR1cm4gbihhKEkpLHtuZXh0OmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtpZihBKXJldHVybiB0Lm5leHRIYW5kbGVyKCk7dHJ5e3ZhciBpPXQuZG9uZT92b2lkIDA6dC5uZXh0SGFuZGxlcigpO3JldHVybiBjKGksdC5kb25lKX1jYXRjaChBKXt0aHJvdyB0LmRvbmU9ITAsQX19LHJldHVybjpmdW5jdGlvbigpe3ZhciB0PWUodGhpcyksYT10Lml0ZXJhdG9yO2lmKHQuZG9uZT0hMCxBKXt2YXIgcz1vKGEsInJldHVybiIpO3JldHVybiBzP2kocyxhKTpjKHZvaWQgMCwhMCl9aWYodC5pbm5lcil0cnl7aCh0LmlubmVyLml0ZXJhdG9yLCJub3JtYWwiKX1jYXRjaChBKXtyZXR1cm4gaChhLCJ0aHJvdyIsQSl9cmV0dXJuIGgoYSwibm9ybWFsIiksYyh2b2lkIDAsITApfX0pfSx1PUUoITApLGQ9RSghMSk7cyhkLEMsIkl0ZXJhdG9yIEhlbHBlciIpLEEuZXhwb3J0cz1mdW5jdGlvbihBLGUpe3ZhciB0PWZ1bmN0aW9uKHQsaSl7aT8oaS5pdGVyYXRvcj10Lml0ZXJhdG9yLGkubmV4dD10Lm5leHQpOmk9dCxpLnR5cGU9ZT9sOkIsaS5uZXh0SGFuZGxlcj1BLGkuY291bnRlcj0wLGkuZG9uZT0hMSxRKHRoaXMsaSl9O3JldHVybiB0LnByb3RvdHlwZT1lP3U6ZCx0fX0sNzEzOihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpLGE9dCg5MzA2KSxzPXQoODU1MSksbj10KDE3NjcpLHI9dCg5NDYyKSxnPXQoNjMxOSksbz1yKChmdW5jdGlvbigpe3ZhciBBPXRoaXMuaXRlcmF0b3IsZT1zKGkodGhpcy5uZXh0LEEpKTtpZighKHRoaXMuZG9uZT0hIWUuZG9uZSkpcmV0dXJuIGcoQSx0aGlzLm1hcHBlcixbZS52YWx1ZSx0aGlzLmNvdW50ZXIrK10sITApfSkpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gcyh0aGlzKSxhKEEpLG5ldyBvKG4odGhpcykse21hcHBlcjpBfSl9fSw3NjU3OihBLGUsdCk9Pnt2YXIgaSxhLHMsbj10KDkwMzkpLHI9dCg0OTAxKSxnPXQoMzQpLG89dCgyMzYwKSxJPXQoMjc4NyksYz10KDY4NDApLGg9dCg4MjI3KSxDPXQoNjM5NSksQj1oKCJpdGVyYXRvciIpLGw9ITE7W10ua2V5cyYmKCJuZXh0ImluKHM9W10ua2V5cygpKT8oYT1JKEkocykpKSE9PU9iamVjdC5wcm90b3R5cGUmJihpPWEpOmw9ITApLCFnKGkpfHxuKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBpW0JdLmNhbGwoQSkhPT1BfSkpP2k9e306QyYmKGk9byhpKSkscihpW0JdKXx8YyhpLEIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksQS5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTppLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6bH19LDYyNjk6QT0+e0EuZXhwb3J0cz17fX0sNjE5ODooQSxlLHQpPT57dmFyIGk9dCg4MDE0KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIGkoQS5sZW5ndGgpfX0sMjgzOihBLGUsdCk9Pnt2YXIgaT10KDk1MDQpLGE9dCg5MDM5KSxzPXQoNDkwMSksbj10KDkyOTcpLHI9dCgzNzI0KSxnPXQoMzUwKS5DT05GSUdVUkFCTEUsbz10KDM3MDYpLEk9dCgxMTgxKSxjPUkuZW5mb3JjZSxoPUkuZ2V0LEM9U3RyaW5nLEI9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw9aSgiIi5zbGljZSksUT1pKCIiLnJlcGxhY2UpLEU9aShbXS5qb2luKSx1PXImJiFhKChmdW5jdGlvbigpe3JldHVybiA4IT09QigoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxkPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxmPUEuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7IlN5bWJvbCgiPT09bChDKGUpLDAsNykmJihlPSJbIitRKEMoZSksL15TeW1ib2xcKChbXildKilcKS4qJC8sIiQxIikrIl0iKSx0JiZ0LmdldHRlciYmKGU9ImdldCAiK2UpLHQmJnQuc2V0dGVyJiYoZT0ic2V0ICIrZSksKCFuKEEsIm5hbWUiKXx8ZyYmQS5uYW1lIT09ZSkmJihyP0IoQSwibmFtZSIse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwfSk6QS5uYW1lPWUpLHUmJnQmJm4odCwiYXJpdHkiKSYmQS5sZW5ndGghPT10LmFyaXR5JiZCKEEsImxlbmd0aCIse3ZhbHVlOnQuYXJpdHl9KTt0cnl7dCYmbih0LCJjb25zdHJ1Y3RvciIpJiZ0LmNvbnN0cnVjdG9yP3ImJkIoQSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTpBLnByb3RvdHlwZSYmKEEucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2goQSl7fXZhciBpPWMoQSk7cmV0dXJuIG4oaSwic291cmNlIil8fChpLnNvdXJjZT1FKGQsInN0cmluZyI9PXR5cGVvZiBlP2U6IiIpKSxBfTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9ZigoZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzKSYmaCh0aGlzKS5zb3VyY2V8fG8odGhpcyl9KSwidG9TdHJpbmciKX0sNzQxOkE9Pnt2YXIgZT1NYXRoLmNlaWwsdD1NYXRoLmZsb29yO0EuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihBKXt2YXIgaT0rQTtyZXR1cm4oaT4wP3Q6ZSkoaSl9fSw2MDQzOihBLGUsdCk9Pnt2YXIgaT10KDkzMDYpLGE9VHlwZUVycm9yLHM9ZnVuY3Rpb24oQSl7dmFyIGUsdDt0aGlzLnByb21pc2U9bmV3IEEoKGZ1bmN0aW9uKEEsaSl7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09dCl0aHJvdyBuZXcgYSgiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtlPUEsdD1pfSkpLHRoaXMucmVzb2x2ZT1pKGUpLHRoaXMucmVqZWN0PWkodCl9O0EuZXhwb3J0cy5mPWZ1bmN0aW9uKEEpe3JldHVybiBuZXcgcyhBKX19LDI2MDM6KEEsZSx0KT0+e3ZhciBpPXQoNjU1KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gdm9pZCAwPT09QT9hcmd1bWVudHMubGVuZ3RoPDI/IiI6ZTppKEEpfX0sMjM2MDooQSxlLHQpPT57dmFyIGksYT10KDg1NTEpLHM9dCg2ODAxKSxuPXQoODcyNykscj10KDQyMSksZz10KDM5Nyksbz10KDQwNTUpLEk9dCg2MTE5KSxjPSJwcm90b3R5cGUiLGg9InNjcmlwdCIsQz1JKCJJRV9QUk9UTyIpLEI9ZnVuY3Rpb24oKXt9LGw9ZnVuY3Rpb24oQSl7cmV0dXJuIjwiK2grIj4iK0ErIjwvIitoKyI+In0sUT1mdW5jdGlvbihBKXtBLndyaXRlKGwoIiIpKSxBLmNsb3NlKCk7dmFyIGU9QS5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiBBPW51bGwsZX0sRT1mdW5jdGlvbigpe3RyeXtpPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKEEpe312YXIgQSxlLHQ7RT0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmaT9RKGkpOihlPW8oImlmcmFtZSIpLHQ9ImphdmEiK2grIjoiLGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5hcHBlbmRDaGlsZChlKSxlLnNyYz1TdHJpbmcodCksKEE9ZS5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksQS53cml0ZShsKCJkb2N1bWVudC5GPU9iamVjdCIpKSxBLmNsb3NlKCksQS5GKTpRKGkpO2Zvcih2YXIgYT1uLmxlbmd0aDthLS07KWRlbGV0ZSBFW2NdW25bYV1dO3JldHVybiBFKCl9O3JbQ109ITAsQS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKEEsZSl7dmFyIHQ7cmV0dXJuIG51bGwhPT1BPyhCW2NdPWEoQSksdD1uZXcgQixCW2NdPW51bGwsdFtDXT1BKTp0PUUoKSx2b2lkIDA9PT1lP3Q6cy5mKHQsZSl9fSw2ODAxOihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg4Njg2KSxzPXQoNDkxMyksbj10KDg1NTEpLHI9dCg1Mzk3KSxnPXQoMTA3Mik7ZS5mPWkmJiFhP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZSl7bihBKTtmb3IodmFyIHQsaT1yKGUpLGE9ZyhlKSxvPWEubGVuZ3RoLEk9MDtvPkk7KXMuZihBLHQ9YVtJKytdLGlbdF0pO3JldHVybiBBfX0sNDkxMzooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoNTkxNykscz10KDg2ODYpLG49dCg4NTUxKSxyPXQoNjk2OSksZz1UeXBlRXJyb3Isbz1PYmplY3QuZGVmaW5lUHJvcGVydHksST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGM9ImVudW1lcmFibGUiLGg9ImNvbmZpZ3VyYWJsZSIsQz0id3JpdGFibGUiO2UuZj1pP3M/ZnVuY3Rpb24oQSxlLHQpe2lmKG4oQSksZT1yKGUpLG4odCksImZ1bmN0aW9uIj09dHlwZW9mIEEmJiJwcm90b3R5cGUiPT09ZSYmInZhbHVlImluIHQmJkMgaW4gdCYmIXRbQ10pe3ZhciBpPUkoQSxlKTtpJiZpW0NdJiYoQVtlXT10LnZhbHVlLHQ9e2NvbmZpZ3VyYWJsZTpoIGluIHQ/dFtoXTppW2hdLGVudW1lcmFibGU6YyBpbiB0P3RbY106aVtjXSx3cml0YWJsZTohMX0pfXJldHVybiBvKEEsZSx0KX06bzpmdW5jdGlvbihBLGUsdCl7aWYobihBKSxlPXIoZSksbih0KSxhKXRyeXtyZXR1cm4gbyhBLGUsdCl9Y2F0Y2goQSl7fWlmKCJnZXQiaW4gdHx8InNldCJpbiB0KXRocm93IG5ldyBnKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiB0JiYoQVtlXT10LnZhbHVlKSxBfX0sNzM0NzooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoOTU2NSkscz10KDg3NzMpLG49dCg2OTgwKSxyPXQoNTM5NyksZz10KDY5NjkpLG89dCg5Mjk3KSxJPXQoNTkxNyksYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1pP2M6ZnVuY3Rpb24oQSxlKXtpZihBPXIoQSksZT1nKGUpLEkpdHJ5e3JldHVybiBjKEEsZSl9Y2F0Y2goQSl7fWlmKG8oQSxlKSlyZXR1cm4gbighYShzLmYsQSxlKSxBW2VdKX19LDg0ODA6KEEsZSx0KT0+e3ZhciBpPXQoMTgyOCksYT10KDg3MjcpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gaShBLGEpfX0sMzcxNzooQSxlKT0+e2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSwyNzg3OihBLGUsdCk9Pnt2YXIgaT10KDkyOTcpLGE9dCg0OTAxKSxzPXQoODk4MSksbj10KDYxMTkpLHI9dCgyMjExKSxnPW4oIklFX1BST1RPIiksbz1PYmplY3QsST1vLnByb3RvdHlwZTtBLmV4cG9ydHM9cj9vLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKEEpe3ZhciBlPXMoQSk7aWYoaShlLGcpKXJldHVybiBlW2ddO3ZhciB0PWUuY29uc3RydWN0b3I7cmV0dXJuIGEodCkmJmUgaW5zdGFuY2VvZiB0P3QucHJvdG90eXBlOmUgaW5zdGFuY2VvZiBvP0k6bnVsbH19LDE2MjU6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCk7QS5leHBvcnRzPWkoe30uaXNQcm90b3R5cGVPZil9LDE4Mjg6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDkyOTcpLHM9dCg1Mzk3KSxuPXQoOTYxNykuaW5kZXhPZixyPXQoNDIxKSxnPWkoW10ucHVzaCk7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dmFyIHQsaT1zKEEpLG89MCxJPVtdO2Zvcih0IGluIGkpIWEocix0KSYmYShpLHQpJiZnKEksdCk7Zm9yKDtlLmxlbmd0aD5vOylhKGksdD1lW28rK10pJiYofm4oSSx0KXx8ZyhJLHQpKTtyZXR1cm4gSX19LDEwNzI6KEEsZSx0KT0+e3ZhciBpPXQoMTgyOCksYT10KDg3MjcpO0EuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oQSl7cmV0dXJuIGkoQSxhKX19LDg3NzM6KEEsZSk9Pnt2YXIgdD17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsYT1pJiYhdC5jYWxsKHsxOjJ9LDEpO2UuZj1hP2Z1bmN0aW9uKEEpe3ZhciBlPWkodGhpcyxBKTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06dH0sMjk2NzooQSxlLHQpPT57dmFyIGk9dCg2NzA2KSxhPXQoMzQpLHM9dCg3NzUwKSxuPXQoMzUwNik7QS5leHBvcnRzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGU9ITEsdD17fTt0cnl7KEE9aShPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkodCxbXSksZT10IGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQSl7fXJldHVybiBmdW5jdGlvbih0LGkpe3JldHVybiBzKHQpLG4oaSksYSh0KT8oZT9BKHQsaSk6dC5fX3Byb3RvX189aSx0KTp0fX0oKTp2b2lkIDApfSw0MjcwOihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpLGE9dCg0OTAxKSxzPXQoMzQpLG49VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUpe3ZhciB0LHI7aWYoInN0cmluZyI9PT1lJiZhKHQ9QS50b1N0cmluZykmJiFzKHI9aSh0LEEpKSlyZXR1cm4gcjtpZihhKHQ9QS52YWx1ZU9mKSYmIXMocj1pKHQsQSkpKXJldHVybiByO2lmKCJzdHJpbmciIT09ZSYmYSh0PUEudG9TdHJpbmcpJiYhcyhyPWkodCxBKSkpcmV0dXJuIHI7dGhyb3cgbmV3IG4oIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNTAzMTooQSxlLHQpPT57dmFyIGk9dCg3NzUxKSxhPXQoOTUwNCkscz10KDg0ODApLG49dCgzNzE3KSxyPXQoODU1MSksZz1hKFtdLmNvbmNhdCk7QS5leHBvcnRzPWkoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBlPXMuZihyKEEpKSx0PW4uZjtyZXR1cm4gdD9nKGUsdChBKSk6ZX19LDc5Nzk6KEEsZSx0KT0+e3ZhciBpPXQoODU1MSk7QS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIEE9aSh0aGlzKSxlPSIiO3JldHVybiBBLmhhc0luZGljZXMmJihlKz0iZCIpLEEuZ2xvYmFsJiYoZSs9ImciKSxBLmlnbm9yZUNhc2UmJihlKz0iaSIpLEEubXVsdGlsaW5lJiYoZSs9Im0iKSxBLmRvdEFsbCYmKGUrPSJzIiksQS51bmljb2RlJiYoZSs9InUiKSxBLnVuaWNvZGVTZXRzJiYoZSs9InYiKSxBLnN0aWNreSYmKGUrPSJ5IiksZX19LDc3NTA6KEEsZSx0KT0+e3ZhciBpPXQoNDExNyksYT1UeXBlRXJyb3I7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe2lmKGkoQSkpdGhyb3cgbmV3IGEoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrQSk7cmV0dXJuIEF9fSw5Mjg2OihBLGUsdCk9Pnt2YXIgaT10KDQ0MDIpLGE9dCg4NDY5KSxzPWkuU2V0LG49aS5hZGQ7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPW5ldyBzO3JldHVybiBhKEEsKGZ1bmN0aW9uKEEpe24oZSxBKX0pKSxlfX0sMzQ0MDooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikscz10KDkyODYpLG49dCg1MTcwKSxyPXQoMzc4OSksZz10KDg0NjkpLG89dCg1MDcpLEk9YS5oYXMsYz1hLnJlbW92ZTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PXIoQSksYT1zKGUpO3JldHVybiBuKGUpPD10LnNpemU/ZyhlLChmdW5jdGlvbihBKXt0LmluY2x1ZGVzKEEpJiZjKGEsQSl9KSk6byh0LmdldEl0ZXJhdG9yKCksKGZ1bmN0aW9uKEEpe0koZSxBKSYmYyhhLEEpfSkpLGF9fSw0NDAyOihBLGUsdCk9Pnt2YXIgaT10KDk1MDQpLGE9U2V0LnByb3RvdHlwZTtBLmV4cG9ydHM9e1NldCxhZGQ6aShhLmFkZCksaGFzOmkoYS5oYXMpLHJlbW92ZTppKGEuZGVsZXRlKSxwcm90bzphfX0sODc1MDooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikscz10KDUxNzApLG49dCgzNzg5KSxyPXQoODQ2OSksZz10KDUwNyksbz1hLlNldCxJPWEuYWRkLGM9YS5oYXM7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPWkodGhpcyksdD1uKEEpLGE9bmV3IG87cmV0dXJuIHMoZSk+dC5zaXplP2codC5nZXRJdGVyYXRvcigpLChmdW5jdGlvbihBKXtjKGUsQSkmJkkoYSxBKX0pKTpyKGUsKGZ1bmN0aW9uKEEpe3QuaW5jbHVkZXMoQSkmJkkoYSxBKX0pKSxhfX0sNDQ0OTooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikuaGFzLHM9dCg1MTcwKSxuPXQoMzc4OSkscj10KDg0NjkpLGc9dCg1MDcpLG89dCg5NTM5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PW4oQSk7aWYocyhlKTw9dC5zaXplKXJldHVybiExIT09cihlLChmdW5jdGlvbihBKXtpZih0LmluY2x1ZGVzKEEpKXJldHVybiExfSksITApO3ZhciBJPXQuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PWcoSSwoZnVuY3Rpb24oQSl7aWYoYShlLEEpKXJldHVybiBvKEksIm5vcm1hbCIsITEpfSkpfX0sMzgzODooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNTE3MCkscz10KDg0NjkpLG49dCgzNzg5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PW4oQSk7cmV0dXJuIShhKGUpPnQuc2l6ZSkmJiExIT09cyhlLChmdW5jdGlvbihBKXtpZighdC5pbmNsdWRlcyhBKSlyZXR1cm4hMX0pLCEwKX19LDg1Mjc6KEEsZSx0KT0+e3ZhciBpPXQoNzA4MCksYT10KDQ0MDIpLmhhcyxzPXQoNTE3MCksbj10KDM3ODkpLHI9dCg1MDcpLGc9dCg5NTM5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PW4oQSk7aWYocyhlKTx0LnNpemUpcmV0dXJuITE7dmFyIG89dC5nZXRJdGVyYXRvcigpO3JldHVybiExIT09cihvLChmdW5jdGlvbihBKXtpZighYShlLEEpKXJldHVybiBnKG8sIm5vcm1hbCIsITEpfSkpfX0sODQ2OTooQSxlLHQpPT57dmFyIGk9dCg5NTA0KSxhPXQoNTA3KSxzPXQoNDQwMiksbj1zLlNldCxyPXMucHJvdG8sZz1pKHIuZm9yRWFjaCksbz1pKHIua2V5cyksST1vKG5ldyBuKS5uZXh0O0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIHQ/YSh7aXRlcmF0b3I6byhBKSxuZXh0Okl9LGUpOmcoQSxlKX19LDQ5MTY6KEEsZSx0KT0+e3ZhciBpPXQoNzc1MSksYT1mdW5jdGlvbihBKXtyZXR1cm57c2l6ZTpBLGhhczpmdW5jdGlvbigpe3JldHVybiExfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX19fTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSgiU2V0Iik7dHJ5eyhuZXcgZSlbQV0oYSgwKSk7dHJ5e3JldHVybihuZXcgZSlbQV0oYSgtMSkpLCExfWNhdGNoKEEpe3JldHVybiEwfX1jYXRjaChBKXtyZXR1cm4hMX19fSw1MTcwOihBLGUsdCk9Pnt2YXIgaT10KDY3MDYpLGE9dCg0NDAyKTtBLmV4cG9ydHM9aShhLnByb3RvLCJzaXplIiwiZ2V0Iil8fGZ1bmN0aW9uKEEpe3JldHVybiBBLnNpemV9fSwzNjUwOihBLGUsdCk9Pnt2YXIgaT10KDcwODApLGE9dCg0NDAyKSxzPXQoOTI4Niksbj10KDM3ODkpLHI9dCg1MDcpLGc9YS5hZGQsbz1hLmhhcyxJPWEucmVtb3ZlO0EuZXhwb3J0cz1mdW5jdGlvbihBKXt2YXIgZT1pKHRoaXMpLHQ9bihBKS5nZXRJdGVyYXRvcigpLGE9cyhlKTtyZXR1cm4gcih0LChmdW5jdGlvbihBKXtvKGUsQSk/SShhLEEpOmcoYSxBKX0pKSxhfX0sNDIwNDooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikuYWRkLHM9dCg5Mjg2KSxuPXQoMzc4OSkscj10KDUwNyk7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPWkodGhpcyksdD1uKEEpLmdldEl0ZXJhdG9yKCksZz1zKGUpO3JldHVybiByKHQsKGZ1bmN0aW9uKEEpe2EoZyxBKX0pKSxnfX0sNjExOTooQSxlLHQpPT57dmFyIGk9dCg1NzQ1KSxhPXQoMzM5Mikscz1pKCJrZXlzIik7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybiBzW0FdfHwoc1tBXT1hKEEpKX19LDc2Mjk6KEEsZSx0KT0+e3ZhciBpPXQoNjM5NSksYT10KDQ1NzYpLHM9dCg5NDMzKSxuPSJfX2NvcmUtanNfc2hhcmVkX18iLHI9QS5leHBvcnRzPWFbbl18fHMobix7fSk7KHIudmVyc2lvbnN8fChyLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy4zOC4xIixtb2RlOmk/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sNTc0NTooQSxlLHQpPT57dmFyIGk9dCg3NjI5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gaVtBXXx8KGlbQV09ZXx8e30pfX0sMTU0ODooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoOTAzOSkscz10KDk1MTkpLG49dCg0MjE1KSxyPWkuc3RydWN0dXJlZENsb25lO0EuZXhwb3J0cz0hIXImJiFhKChmdW5jdGlvbigpe2lmKCJERU5PIj09PW4mJnM+OTJ8fCJOT0RFIj09PW4mJnM+OTR8fCJCUk9XU0VSIj09PW4mJnM+OTcpcmV0dXJuITE7dmFyIEE9bmV3IEFycmF5QnVmZmVyKDgpLGU9cihBLHt0cmFuc2ZlcjpbQV19KTtyZXR1cm4gMCE9PUEuYnl0ZUxlbmd0aHx8OCE9PWUuYnl0ZUxlbmd0aH0pKX0sNDQ5NTooQSxlLHQpPT57dmFyIGk9dCg5NTE5KSxhPXQoOTAzOSkscz10KDQ1NzYpLlN0cmluZztBLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhYSgoZnVuY3Rpb24oKXt2YXIgQT1TeW1ib2woInN5bWJvbCBkZXRlY3Rpb24iKTtyZXR1cm4hcyhBKXx8IShPYmplY3QoQSlpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmaSYmaTw0MX0pKX0sNTYxMDooQSxlLHQpPT57dmFyIGk9dCgxMjkxKSxhPU1hdGgubWF4LHM9TWF0aC5taW47QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9aShBKTtyZXR1cm4gdDwwP2EodCtlLDApOnModCxlKX19LDU4NTQ6KEEsZSx0KT0+e3ZhciBpPXQoMjc3NyksYT1UeXBlRXJyb3I7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPWkoQSwibnVtYmVyIik7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBhKCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnQiKTtyZXR1cm4gQmlnSW50KGUpfX0sNzY5NjooQSxlLHQpPT57dmFyIGk9dCgxMjkxKSxhPXQoODAxNCkscz1SYW5nZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBlPWkoQSksdD1hKGUpO2lmKGUhPT10KXRocm93IG5ldyBzKCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gdH19LDUzOTc6KEEsZSx0KT0+e3ZhciBpPXQoNzA1NSksYT10KDc3NTApO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gaShhKEEpKX19LDEyOTE6KEEsZSx0KT0+e3ZhciBpPXQoNzQxKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9K0E7cmV0dXJuIGUhPWV8fDA9PT1lPzA6aShlKX19LDgwMTQ6KEEsZSx0KT0+e3ZhciBpPXQoMTI5MSksYT1NYXRoLm1pbjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aShBKTtyZXR1cm4gZT4wP2EoZSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sODk4MTooQSxlLHQpPT57dmFyIGk9dCg3NzUwKSxhPU9iamVjdDtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIGEoaShBKSl9fSwyNzc3OihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpLGE9dCgzNCkscz10KDc1Nyksbj10KDU5NjYpLHI9dCg0MjcwKSxnPXQoODIyNyksbz1UeXBlRXJyb3IsST1nKCJ0b1ByaW1pdGl2ZSIpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUpe2lmKCFhKEEpfHxzKEEpKXJldHVybiBBO3ZhciB0LGc9bihBLEkpO2lmKGcpe2lmKHZvaWQgMD09PWUmJihlPSJkZWZhdWx0IiksdD1pKGcsQSxlKSwhYSh0KXx8cyh0KSlyZXR1cm4gdDt0aHJvdyBuZXcgbygiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxyKEEsZSl9fSw2OTY5OihBLGUsdCk9Pnt2YXIgaT10KDI3NzcpLGE9dCg3NTcpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXt2YXIgZT1pKEEsInN0cmluZyIpO3JldHVybiBhKGUpP2U6ZSsiIn19LDIxNDA6KEEsZSx0KT0+e3ZhciBpPXt9O2lbdCg4MjI3KSgidG9TdHJpbmdUYWciKV09InoiLEEuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcoaSl9LDY1NTooQSxlLHQpPT57dmFyIGk9dCg2OTU1KSxhPVN0cmluZztBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoIlN5bWJvbCI9PT1pKEEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIGEoQSl9fSw2ODIzOkE9Pnt2YXIgZT1TdHJpbmc7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3RyeXtyZXR1cm4gZShBKX1jYXRjaChBKXtyZXR1cm4iT2JqZWN0In19fSwzMzkyOihBLGUsdCk9Pnt2YXIgaT10KDk1MDQpLGE9MCxzPU1hdGgucmFuZG9tKCksbj1pKDEuLnRvU3RyaW5nKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrbigrK2ErcywzNil9fSw3MDQwOihBLGUsdCk9Pnt2YXIgaT10KDQ0OTUpO0EuZXhwb3J0cz1pJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSw4Njg2OihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg5MDM5KTtBLmV4cG9ydHM9aSYmYSgoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSwyODEyOkE9Pnt2YXIgZT1UeXBlRXJyb3I7QS5leHBvcnRzPWZ1bmN0aW9uKEEsdCl7aWYoQTx0KXRocm93IG5ldyBlKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO3JldHVybiBBfX0sODYyMjooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoNDkwMSkscz1pLldlYWtNYXA7QS5leHBvcnRzPWEocykmJi9uYXRpdmUgY29kZS8udGVzdChTdHJpbmcocykpfSw4MjI3OihBLGUsdCk9Pnt2YXIgaT10KDQ1NzYpLGE9dCg1NzQ1KSxzPXQoOTI5Nyksbj10KDMzOTIpLHI9dCg0NDk1KSxnPXQoNzA0MCksbz1pLlN5bWJvbCxJPWEoIndrcyIpLGM9Zz9vLmZvcnx8bzpvJiZvLndpdGhvdXRTZXR0ZXJ8fG47QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybiBzKEksQSl8fChJW0FdPXImJnMobyxBKT9vW0FdOmMoIlN5bWJvbC4iK0EpKSxJW0FdfX0sNjU3MzooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoMjEwNikscz10KDMyMzgpLG49QXJyYXlCdWZmZXIucHJvdG90eXBlO2kmJiEoImRldGFjaGVkImluIG4pJiZhKG4sImRldGFjaGVkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzKHRoaXMpfX0pfSw3OTM2OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg1NjM2KTthJiZpKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMH0se3RyYW5zZmVyVG9GaXhlZExlbmd0aDpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLCExKX19KX0sODEwMDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNTYzNik7YSYmaSh7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86ITB9LHt0cmFuc2ZlcjpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLCEwKX19KX0sNDExNDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoODk4MSkscz10KDYxOTgpLG49dCg0NTI3KSxyPXQoNjgzNyk7aSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsYXJpdHk6MSxmb3JjZWQ6dCg5MDM5KSgoZnVuY3Rpb24oKXtyZXR1cm4gNDI5NDk2NzI5NyE9PVtdLnB1c2guY2FsbCh7bGVuZ3RoOjQyOTQ5NjcyOTZ9LDEpfSkpfHwhZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLnB1c2goKX1jYXRjaChBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCl9LHtwdXNoOmZ1bmN0aW9uKEEpe3ZhciBlPWEodGhpcyksdD1zKGUpLGk9YXJndW1lbnRzLmxlbmd0aDtyKHQraSk7Zm9yKHZhciBnPTA7ZzxpO2crKyllW3RdPWFyZ3VtZW50c1tnXSx0Kys7cmV0dXJuIG4oZSx0KSx0fX0pfSw0NjI4OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg2MDQzKTtpKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITB9LHt3aXRoUmVzb2x2ZXJzOmZ1bmN0aW9uKCl7dmFyIEE9YS5mKHRoaXMpO3JldHVybntwcm9taXNlOkEucHJvbWlzZSxyZXNvbHZlOkEucmVzb2x2ZSxyZWplY3Q6QS5yZWplY3R9fX0pfSw5NDc5OihBLGUsdCk9Pnt2YXIgaT10KDQ1NzYpLGE9dCgzNzI0KSxzPXQoMjEwNiksbj10KDc5NzkpLHI9dCg5MDM5KSxnPWkuUmVnRXhwLG89Zy5wcm90b3R5cGU7YSYmcigoZnVuY3Rpb24oKXt2YXIgQT0hMDt0cnl7ZygiLiIsImQiKX1jYXRjaChlKXtBPSExfXZhciBlPXt9LHQ9IiIsaT1BPyJkZ2ltc3kiOiJnaW1zeSIsYT1mdW5jdGlvbihBLGkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLEEse2dldDpmdW5jdGlvbigpe3JldHVybiB0Kz1pLCEwfX0pfSxzPXtkb3RBbGw6InMiLGdsb2JhbDoiZyIsaWdub3JlQ2FzZToiaSIsbXVsdGlsaW5lOiJtIixzdGlja3k6InkifTtmb3IodmFyIG4gaW4gQSYmKHMuaGFzSW5kaWNlcz0iZCIpLHMpYShuLHNbbl0pO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImZsYWdzIikuZ2V0LmNhbGwoZSkhPT1pfHx0IT09aX0pKSYmcyhvLCJmbGFncyIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6bn0pfSw3NjQyOihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgzNDQwKTtpKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoNDkxNikoImRpZmZlcmVuY2UiKX0se2RpZmZlcmVuY2U6YX0pfSw4MDA0OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg5MDM5KSxzPXQoODc1MCk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJpbnRlcnNlY3Rpb24iKXx8YSgoZnVuY3Rpb24oKXtyZXR1cm4iMywyIiE9PVN0cmluZyhBcnJheS5mcm9tKG5ldyBTZXQoWzEsMiwzXSkuaW50ZXJzZWN0aW9uKG5ldyBTZXQoWzMsMl0pKSkpfSkpfSx7aW50ZXJzZWN0aW9uOnN9KX0sMzg1MzooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNDQ0OSk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJpc0Rpc2pvaW50RnJvbSIpfSx7aXNEaXNqb2ludEZyb206YX0pfSw1ODc2OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgzODM4KTtpKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoNDkxNikoImlzU3Vic2V0T2YiKX0se2lzU3Vic2V0T2Y6YX0pfSwyNDc1OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg4NTI3KTtpKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoNDkxNikoImlzU3VwZXJzZXRPZiIpfSx7aXNTdXBlcnNldE9mOmF9KX0sNTAyNDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoMzY1MCk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJzeW1tZXRyaWNEaWZmZXJlbmNlIil9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOmF9KX0sMTY5ODooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNDIwNCk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJ1bmlvbiIpfSx7dW5pb246YX0pfSw3NDY3OihBLGUsdCk9Pnt2YXIgaT10KDc2MjgpLGE9dCg0NjQ0KSxzPWEuYVR5cGVkQXJyYXksbj1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qscj1hLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtuKCJ0b1JldmVyc2VkIiwoZnVuY3Rpb24oKXtyZXR1cm4gaShzKHRoaXMpLHIodGhpcykpfSkpfSw0NzMyOihBLGUsdCk9Pnt2YXIgaT10KDQ2NDQpLGE9dCg5NTA0KSxzPXQoOTMwNiksbj10KDUzNzApLHI9aS5hVHlwZWRBcnJheSxnPWkuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLG89aS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLEk9YShpLlR5cGVkQXJyYXlQcm90b3R5cGUuc29ydCk7bygidG9Tb3J0ZWQiLChmdW5jdGlvbihBKXt2b2lkIDAhPT1BJiZzKEEpO3ZhciBlPXIodGhpcyksdD1uKGcoZSksZSk7cmV0dXJuIEkodCxBKX0pKX0sOTU3NzooQSxlLHQpPT57dmFyIGk9dCg5OTI4KSxhPXQoNDY0NCkscz10KDExMDgpLG49dCgxMjkxKSxyPXQoNTg1NCksZz1hLmFUeXBlZEFycmF5LG89YS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3IsST1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsYz0hIWZ1bmN0aW9uKCl7dHJ5e25ldyBJbnQ4QXJyYXkoMSkud2l0aCgyLHt2YWx1ZU9mOmZ1bmN0aW9uKCl7dGhyb3cgOH19KX1jYXRjaChBKXtyZXR1cm4gOD09PUF9fSgpO0koIndpdGgiLHt3aXRoOmZ1bmN0aW9uKEEsZSl7dmFyIHQ9Zyh0aGlzKSxhPW4oQSksST1zKHQpP3IoZSk6K2U7cmV0dXJuIGkodCxvKHQpLGEsSSl9fS53aXRoLCFjKX0sODk5MjooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNDU3Nikscz10KDY3OSksbj10KDg1NTEpLHI9dCg0OTAxKSxnPXQoMjc4Nyksbz10KDIxMDYpLEk9dCg0NjU5KSxjPXQoOTAzOSksaD10KDkyOTcpLEM9dCg4MjI3KSxCPXQoNzY1NykuSXRlcmF0b3JQcm90b3R5cGUsbD10KDM3MjQpLFE9dCg2Mzk1KSxFPSJjb25zdHJ1Y3RvciIsdT0iSXRlcmF0b3IiLGQ9QygidG9TdHJpbmdUYWciKSxmPVR5cGVFcnJvcixwPWFbdV0sbT1RfHwhcihwKXx8cC5wcm90b3R5cGUhPT1CfHwhYygoZnVuY3Rpb24oKXtwKHt9KX0pKSx5PWZ1bmN0aW9uKCl7aWYocyh0aGlzLEIpLGcodGhpcyk9PT1CKXRocm93IG5ldyBmKCJBYnN0cmFjdCBjbGFzcyBJdGVyYXRvciBub3QgZGlyZWN0bHkgY29uc3RydWN0YWJsZSIpfSx3PWZ1bmN0aW9uKEEsZSl7bD9vKEIsQSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlfSxzZXQ6ZnVuY3Rpb24oZSl7aWYobih0aGlzKSx0aGlzPT09Qil0aHJvdyBuZXcgZigiWW91IGNhbid0IHJlZGVmaW5lIHRoaXMgcHJvcGVydHkiKTtoKHRoaXMsQSk/dGhpc1tBXT1lOkkodGhpcyxBLGUpfX0pOkJbQV09ZX07aChCLGQpfHx3KGQsdSksIW0mJmgoQixFKSYmQltFXSE9PU9iamVjdHx8dyhFLHkpLHkucHJvdG90eXBlPUIsaSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDptfSx7SXRlcmF0b3I6eX0pfSwzMjE1OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgyNjUyKSxzPXQoOTMwNiksbj10KDg1NTEpLHI9dCgxNzY3KTtpKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZXZlcnk6ZnVuY3Rpb24oQSl7bih0aGlzKSxzKEEpO3ZhciBlPXIodGhpcyksdD0wO3JldHVybiFhKGUsKGZ1bmN0aW9uKGUsaSl7aWYoIUEoZSx0KyspKXJldHVybiBpKCl9KSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sNDUyMDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoOTU2NSkscz10KDkzMDYpLG49dCg4NTUxKSxyPXQoMTc2NyksZz10KDk0NjIpLG89dCg2MzE5KSxJPXQoNjM5NSksYz1nKChmdW5jdGlvbigpe2Zvcih2YXIgQSxlLHQ9dGhpcy5pdGVyYXRvcixpPXRoaXMucHJlZGljYXRlLHM9dGhpcy5uZXh0Ozspe2lmKEE9bihhKHMsdCkpLHRoaXMuZG9uZT0hIUEuZG9uZSlyZXR1cm47aWYoZT1BLnZhbHVlLG8odCxpLFtlLHRoaXMuY291bnRlcisrXSwhMCkpcmV0dXJuIGV9fSkpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkl9LHtmaWx0ZXI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4odGhpcykscyhBKSxuZXcgYyhyKHRoaXMpLHtwcmVkaWNhdGU6QX0pfX0pfSwyNTc3OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgyNjUyKSxzPXQoOTMwNiksbj10KDg1NTEpLHI9dCgxNzY3KTtpKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmluZDpmdW5jdGlvbihBKXtuKHRoaXMpLHMoQSk7dmFyIGU9cih0aGlzKSx0PTA7cmV0dXJuIGEoZSwoZnVuY3Rpb24oZSxpKXtpZihBKGUsdCsrKSlyZXR1cm4gaShlKX0pLHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSl9LDM5NDk6KEEsZSx0KT0+e3ZhciBpPXQoNjUxOCksYT10KDI2NTIpLHM9dCg5MzA2KSxuPXQoODU1MSkscj10KDE3NjcpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtmb3JFYWNoOmZ1bmN0aW9uKEEpe24odGhpcykscyhBKTt2YXIgZT1yKHRoaXMpLHQ9MDthKGUsKGZ1bmN0aW9uKGUpe0EoZSx0KyspfSkse0lTX1JFQ09SRDohMH0pfX0pfSwxNDU0OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg3MTMpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOnQoNjM5NSl9LHttYXA6YX0pfSw4ODcyOihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgyNjUyKSxzPXQoOTMwNiksbj10KDg1NTEpLHI9dCgxNzY3KSxnPVR5cGVFcnJvcjtpKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKEEpe24odGhpcykscyhBKTt2YXIgZT1yKHRoaXMpLHQ9YXJndW1lbnRzLmxlbmd0aDwyLGk9dD92b2lkIDA6YXJndW1lbnRzWzFdLG89MDtpZihhKGUsKGZ1bmN0aW9uKGUpe3Q/KHQ9ITEsaT1lKTppPUEoaSxlLG8pLG8rK30pLHtJU19SRUNPUkQ6ITB9KSx0KXRocm93IG5ldyBnKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmF0b3Igd2l0aCBubyBpbml0aWFsIHZhbHVlIik7cmV0dXJuIGl9fSl9LDc1NTA6KEEsZSx0KT0+e3ZhciBpPXQoNjUxOCksYT10KDI2NTIpLHM9dCg5MzA2KSxuPXQoODU1MSkscj10KDE3NjcpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtzb21lOmZ1bmN0aW9uKEEpe24odGhpcykscyhBKTt2YXIgZT1yKHRoaXMpLHQ9MDtyZXR1cm4gYShlLChmdW5jdGlvbihlLGkpe2lmKEEoZSx0KyspKXJldHVybiBpKCl9KSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sMTc5NTooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoODU1MSkscz10KDI2NTIpLG49dCgxNzY3KSxyPVtdLnB1c2g7aSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3RvQXJyYXk6ZnVuY3Rpb24oKXt2YXIgQT1bXTtyZXR1cm4gcyhuKGEodGhpcykpLHIse3RoYXQ6QSxJU19SRUNPUkQ6ITB9KSxBfX0pfSw0OTc5OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg0NTc2KSxzPXQoNzc1MSksbj10KDY5ODApLHI9dCg0OTEzKS5mLGc9dCg5Mjk3KSxvPXQoNjc5KSxJPXQoMzE2NyksYz10KDI2MDMpLGg9dCg1MDAyKSxDPXQoODU3NCksQj10KDM3MjQpLGw9dCg2Mzk1KSxRPSJET01FeGNlcHRpb24iLEU9cygiRXJyb3IiKSx1PXMoUSksZD1mdW5jdGlvbigpe28odGhpcyxmKTt2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGU9YyhBPDE/dm9pZCAwOmFyZ3VtZW50c1swXSksdD1jKEE8Mj92b2lkIDA6YXJndW1lbnRzWzFdLCJFcnJvciIpLGk9bmV3IHUoZSx0KSxhPW5ldyBFKGUpO3JldHVybiBhLm5hbWU9USxyKGksInN0YWNrIixuKDEsQyhhLnN0YWNrLDEpKSksSShpLHRoaXMsZCksaX0sZj1kLnByb3RvdHlwZT11LnByb3RvdHlwZSxwPSJzdGFjayJpbiBuZXcgRShRKSxtPSJzdGFjayJpbiBuZXcgdSgxLDIpLHk9dSYmQiYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLFEpLHc9ISgheXx8eS53cml0YWJsZSYmeS5jb25maWd1cmFibGUpLEQ9cCYmIXcmJiFtO2koe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6bHx8RH0se0RPTUV4Y2VwdGlvbjpEP2Q6dX0pO3ZhciBiPXMoUSksaz1iLnByb3RvdHlwZTtpZihrLmNvbnN0cnVjdG9yIT09Yilmb3IodmFyIEYgaW4gbHx8cihrLCJjb25zdHJ1Y3RvciIsbigxLGIpKSxoKWlmKGcoaCxGKSl7dmFyIFM9aFtGXSxSPVMucztnKGIsUil8fHIoYixSLG4oNixTLmMpKX19LDM2MTE6KEEsZSx0KT0+e3ZhciBpPXQoNjUxOCksYT10KDQ1NzYpLHM9dCgyMTA2KSxuPXQoMzcyNCkscj1UeXBlRXJyb3IsZz1PYmplY3QuZGVmaW5lUHJvcGVydHksbz1hLnNlbGYhPT1hO3RyeXtpZihuKXt2YXIgST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInNlbGYiKTshbyYmSSYmSS5nZXQmJkkuZW51bWVyYWJsZXx8cyhhLCJzZWxmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldDpmdW5jdGlvbihBKXtpZih0aGlzIT09YSl0aHJvdyBuZXcgcigiSWxsZWdhbCBpbnZvY2F0aW9uIik7ZyhhLCJzZWxmIix7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfWVsc2UgaSh7Z2xvYmFsOiEwLHNpbXBsZTohMCxmb3JjZWQ6b30se3NlbGY6YX0pfWNhdGNoKEEpe319LDQ2MDM6KEEsZSx0KT0+e3ZhciBpPXQoNjg0MCksYT10KDk1MDQpLHM9dCg2NTUpLG49dCgyODEyKSxyPVVSTFNlYXJjaFBhcmFtcyxnPXIucHJvdG90eXBlLG89YShnLmFwcGVuZCksST1hKGcuZGVsZXRlKSxjPWEoZy5mb3JFYWNoKSxoPWEoW10ucHVzaCksQz1uZXcgcigiYT0xJmE9MiZiPTMiKTtDLmRlbGV0ZSgiYSIsMSksQy5kZWxldGUoImIiLHZvaWQgMCksQysiIiE9ImE9MiImJmkoZywiZGVsZXRlIiwoZnVuY3Rpb24oQSl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PWU8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKGUmJnZvaWQgMD09PXQpcmV0dXJuIEkodGhpcyxBKTt2YXIgaT1bXTtjKHRoaXMsKGZ1bmN0aW9uKEEsZSl7aChpLHtrZXk6ZSx2YWx1ZTpBfSl9KSksbihlLDEpO2Zvcih2YXIgYSxyPXMoQSksZz1zKHQpLEM9MCxCPTAsbD0hMSxRPWkubGVuZ3RoO0M8UTspYT1pW0MrK10sbHx8YS5rZXk9PT1yPyhsPSEwLEkodGhpcyxhLmtleSkpOkIrKztmb3IoO0I8UTspKGE9aVtCKytdKS5rZXk9PT1yJiZhLnZhbHVlPT09Z3x8byh0aGlzLGEua2V5LGEudmFsdWUpfSkse2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDc1NjY6KEEsZSx0KT0+e3ZhciBpPXQoNjg0MCksYT10KDk1MDQpLHM9dCg2NTUpLG49dCgyODEyKSxyPVVSTFNlYXJjaFBhcmFtcyxnPXIucHJvdG90eXBlLG89YShnLmdldEFsbCksST1hKGcuaGFzKSxjPW5ldyByKCJhPTEiKTshYy5oYXMoImEiLDIpJiZjLmhhcygiYSIsdm9pZCAwKXx8aShnLCJoYXMiLChmdW5jdGlvbihBKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9ZTwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoZSYmdm9pZCAwPT09dClyZXR1cm4gSSh0aGlzLEEpO3ZhciBpPW8odGhpcyxBKTtuKGUsMSk7Zm9yKHZhciBhPXModCkscj0wO3I8aS5sZW5ndGg7KWlmKGlbcisrXT09PWEpcmV0dXJuITA7cmV0dXJuITF9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sODcyMTooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoOTUwNCkscz10KDIxMDYpLG49VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxyPWEobi5mb3JFYWNoKTtpJiYhKCJzaXplImluIG4pJiZzKG4sInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgQT0wO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKCl7QSsrfSkpLEF9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSl9fSxlPXt9O2Z1bmN0aW9uIHQoaSl7dmFyIGE9ZVtpXTtpZih2b2lkIDAhPT1hKXJldHVybiBhLmV4cG9ydHM7dmFyIHM9ZVtpXT17ZXhwb3J0czp7fX07cmV0dXJuIEFbaV0uY2FsbChzLmV4cG9ydHMscyxzLmV4cG9ydHMsdCkscy5leHBvcnRzfXQuZD0oQSxlKT0+e2Zvcih2YXIgaSBpbiBlKXQubyhlLGkpJiYhdC5vKEEsaSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGkse2VudW1lcmFibGU6ITAsZ2V0OmVbaV19KX0sdC5vPShBLGUpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQSxlKTt2YXIgaT1nbG9iYWxUaGlzLnBkZmpzV29ya2VyPXt9O3QuZChpLHtXb3JrZXJNZXNzYWdlSGFuZGxlcjooKT0+TmR9KSx0KDQxMTQpLHQoNjU3MyksdCg4MTAwKSx0KDc5MzYpLHQoNDYyOCksdCg3NjQyKSx0KDgwMDQpLHQoMzg1MyksdCg1ODc2KSx0KDI0NzUpLHQoNTAyNCksdCgxNjk4KSx0KDc0NjcpLHQoNDczMiksdCg5NTc3KSx0KDg5OTIpLHQoMzk0OSksdCgxNDU0KSx0KDc1NTApLHQoMzYxMSksdCg0NjAzKSx0KDc1NjYpLHQoODcyMSk7Y29uc3QgYT0hKCJvYmplY3QiIT10eXBlb2YgcHJvY2Vzc3x8cHJvY2VzcysiIiE9IltvYmplY3QgcHJvY2Vzc10ifHxwcm9jZXNzLnZlcnNpb25zLm53fHxwcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uJiZwcm9jZXNzLnR5cGUmJiJicm93c2VyIiE9PXByb2Nlc3MudHlwZSkscz1bMSwwLDAsMSwwLDBdLG49Wy4wMDEsMCwwLC4wMDEsMCwwXSxyPTEuMzUsZz0uMjU5MjU5MjU5MjU5MjU5MjQsbz0icGRmanNfaW50ZXJuYWxfZWRpdG9yXyIsST17UFJJTlQ6NCxNT0RJRllfQ09OVEVOVFM6OCxDT1BZOjE2LE1PRElGWV9BTk5PVEFUSU9OUzozMixGSUxMX0lOVEVSQUNUSVZFX0ZPUk1TOjI1NixDT1BZX0ZPUl9BQ0NFU1NJQklMSVRZOjUxMixBU1NFTUJMRToxMDI0LFBSSU5UX0hJR0hfUVVBTElUWToyMDQ4fSxjPSJHcm91cCIsaD0zMixDPTgxOTIsQj02NTUzNixsPXtFOiJNb3VzZSBFbnRlciIsWDoiTW91c2UgRXhpdCIsRDoiTW91c2UgRG93biIsVToiTW91c2UgVXAiLEZvOiJGb2N1cyIsQmw6IkJsdXIiLFBPOiJQYWdlT3BlbiIsUEM6IlBhZ2VDbG9zZSIsUFY6IlBhZ2VWaXNpYmxlIixQSToiUGFnZUludmlzaWJsZSIsSzoiS2V5c3Ryb2tlIixGOiJGb3JtYXQiLFY6IlZhbGlkYXRlIixDOiJDYWxjdWxhdGUifSxRPXtXQzoiV2lsbENsb3NlIixXUzoiV2lsbFNhdmUiLERTOiJEaWRTYXZlIixXUDoiV2lsbFByaW50IixEUDoiRGlkUHJpbnQifSxFPXtPOiJQYWdlT3BlbiIsQzoiUGFnZUNsb3NlIn0sdT17RVJST1JTOjAsV0FSTklOR1M6MSxJTkZPUzo1fSxkPXtOT05FOjAsQklOQVJZOjF9LGY9MTAscD0xMSxtPTEyLHk9Mzcsdz00NCxEPTU4LGI9NTksaz03MCxGPTcxLFM9ODMsUj04NTtsZXQgRz11LldBUk5JTkdTO2Z1bmN0aW9uIE4oKXtyZXR1cm4gR31mdW5jdGlvbiB4KEEpe0c+PXUuSU5GT1MmJmNvbnNvbGUubG9nKGBJbmZvOiAke0F9YCl9ZnVuY3Rpb24gVShBKXtHPj11LldBUk5JTkdTJiZjb25zb2xlLmxvZyhgV2FybmluZzogJHtBfWApfWZ1bmN0aW9uIE0oQSl7dGhyb3cgbmV3IEVycm9yKEEpfWZ1bmN0aW9uIEwoQSxlKXtBfHxNKGUpfWZ1bmN0aW9uIEooQSxlPW51bGwsdD1udWxsKXtpZighQSlyZXR1cm4gbnVsbDt0cnl7aWYodCYmInN0cmluZyI9PXR5cGVvZiBBKXtpZih0LmFkZERlZmF1bHRQcm90b2NvbCYmQS5zdGFydHNXaXRoKCJ3d3cuIikpe2NvbnN0IGU9QS5tYXRjaCgvXC4vZyk7ZT8ubGVuZ3RoPj0yJiYoQT1gaHR0cDovLyR7QX1gKX1pZih0LnRyeUNvbnZlcnRFbmNvZGluZyl0cnl7QT10QShBKX1jYXRjaHt9fWNvbnN0IGk9ZT9uZXcgVVJMKEEsZSk6bmV3IFVSTChBKTtpZihmdW5jdGlvbihBKXtzd2l0Y2goQT8ucHJvdG9jb2wpe2Nhc2UiaHR0cDoiOmNhc2UiaHR0cHM6IjpjYXNlImZ0cDoiOmNhc2UibWFpbHRvOiI6Y2FzZSJ0ZWw6IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0oaSkpcmV0dXJuIGl9Y2F0Y2h7fXJldHVybiBudWxsfWZ1bmN0aW9uIEgoQSxlLHQsaT0hMSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohaSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITF9KSx0fWNvbnN0IFk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKEEsZSl7dGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPWV9cmV0dXJuIEEucHJvdG90eXBlPW5ldyBFcnJvcixBLmNvbnN0cnVjdG9yPUEsQX0oKTtjbGFzcyB2IGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKEEsIlBhc3N3b3JkRXhjZXB0aW9uIiksdGhpcy5jb2RlPWV9fWNsYXNzIEsgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSwiVW5rbm93bkVycm9yRXhjZXB0aW9uIiksdGhpcy5kZXRhaWxzPWV9fWNsYXNzIHEgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkludmFsaWRQREZFeGNlcHRpb24iKX19Y2xhc3MgVCBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiTWlzc2luZ1BERkV4Y2VwdGlvbiIpfX1jbGFzcyBQIGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKEEsIlVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbiIpLHRoaXMuc3RhdHVzPWV9fWNsYXNzIFcgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkZvcm1hdEVycm9yIil9fWNsYXNzIE8gZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkFib3J0RXhjZXB0aW9uIil9fWZ1bmN0aW9uIFooQSl7Im9iamVjdCI9PXR5cGVvZiBBJiZ2b2lkIDAhPT1BPy5sZW5ndGh8fE0oIkludmFsaWQgYXJndW1lbnQgZm9yIGJ5dGVzVG9TdHJpbmciKTtjb25zdCBlPUEubGVuZ3RoLHQ9ODE5MjtpZihlPHQpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxBKTtjb25zdCBpPVtdO2ZvcihsZXQgYT0wO2E8ZTthKz10KXtjb25zdCBzPU1hdGgubWluKGErdCxlKSxuPUEuc3ViYXJyYXkoYSxzKTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG4pKX1yZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBqKEEpeyJzdHJpbmciIT10eXBlb2YgQSYmTSgiSW52YWxpZCBhcmd1bWVudCBmb3Igc3RyaW5nVG9CeXRlcyIpO2NvbnN0IGU9QS5sZW5ndGgsdD1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGk9MDtpPGU7KytpKXRbaV09MjU1JkEuY2hhckNvZGVBdChpKTtyZXR1cm4gdH1mdW5jdGlvbiBYKEEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKEE+PjI0JjI1NSxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkEpfWZ1bmN0aW9uIFYoQSl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aH1jbGFzcyBfe3N0YXRpYyBnZXQgaXNMaXR0bGVFbmRpYW4oKXtyZXR1cm4gSCh0aGlzLCJpc0xpdHRsZUVuZGlhbiIsZnVuY3Rpb24oKXtjb25zdCBBPW5ldyBVaW50OEFycmF5KDQpO3JldHVybiBBWzBdPTEsMT09PW5ldyBVaW50MzJBcnJheShBLmJ1ZmZlciwwLDEpWzBdfSgpKX1zdGF0aWMgZ2V0IGlzRXZhbFN1cHBvcnRlZCgpe3JldHVybiBIKHRoaXMsImlzRXZhbFN1cHBvcnRlZCIsZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbigiIiksITB9Y2F0Y2h7cmV0dXJuITF9fSgpKX1zdGF0aWMgZ2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKCl7cmV0dXJuIEgodGhpcywiaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzKX1zdGF0aWMgZ2V0IHBsYXRmb3JtKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiJzdHJpbmciPT10eXBlb2YgbmF2aWdhdG9yPy5wbGF0Zm9ybT9IKHRoaXMsInBsYXRmb3JtIix7aXNNYWM6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJNYWMiKSxpc1dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJXaW4iKSxpc0ZpcmVmb3g6InN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSk6SCh0aGlzLCJwbGF0Zm9ybSIse2lzTWFjOiExLGlzV2luZG93czohMSxpc0ZpcmVmb3g6ITF9KX1zdGF0aWMgZ2V0IGlzQ1NTUm91bmRTdXBwb3J0ZWQoKXtyZXR1cm4gSCh0aGlzLCJpc0NTU1JvdW5kU3VwcG9ydGVkIixnbG9iYWxUaGlzLkNTUz8uc3VwcG9ydHM/Ligid2lkdGg6IHJvdW5kKDEuNXB4LCAxcHgpIikpfX1jb25zdCB6PUFycmF5LmZyb20oQXJyYXkoMjU2KS5rZXlzKCksKEE9PkEudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkpO2NsYXNzICR7c3RhdGljIG1ha2VIZXhDb2xvcihBLGUsdCl7cmV0dXJuYCMke3pbQV19JHt6W2VdfSR7elt0XX1gfXN0YXRpYyBzY2FsZU1pbk1heChBLGUpe2xldCB0O0FbMF0/KEFbMF08MCYmKHQ9ZVswXSxlWzBdPWVbMl0sZVsyXT10KSxlWzBdKj1BWzBdLGVbMl0qPUFbMF0sQVszXTwwJiYodD1lWzFdLGVbMV09ZVszXSxlWzNdPXQpLGVbMV0qPUFbM10sZVszXSo9QVszXSk6KHQ9ZVswXSxlWzBdPWVbMV0sZVsxXT10LHQ9ZVsyXSxlWzJdPWVbM10sZVszXT10LEFbMV08MCYmKHQ9ZVsxXSxlWzFdPWVbM10sZVszXT10KSxlWzFdKj1BWzFdLGVbM10qPUFbMV0sQVsyXTwwJiYodD1lWzBdLGVbMF09ZVsyXSxlWzJdPXQpLGVbMF0qPUFbMl0sZVsyXSo9QVsyXSksZVswXSs9QVs0XSxlWzFdKz1BWzVdLGVbMl0rPUFbNF0sZVszXSs9QVs1XX1zdGF0aWMgdHJhbnNmb3JtKEEsZSl7cmV0dXJuW0FbMF0qZVswXStBWzJdKmVbMV0sQVsxXSplWzBdK0FbM10qZVsxXSxBWzBdKmVbMl0rQVsyXSplWzNdLEFbMV0qZVsyXStBWzNdKmVbM10sQVswXSplWzRdK0FbMl0qZVs1XStBWzRdLEFbMV0qZVs0XStBWzNdKmVbNV0rQVs1XV19c3RhdGljIGFwcGx5VHJhbnNmb3JtKEEsZSl7cmV0dXJuW0FbMF0qZVswXStBWzFdKmVbMl0rZVs0XSxBWzBdKmVbMV0rQVsxXSplWzNdK2VbNV1dfXN0YXRpYyBhcHBseUludmVyc2VUcmFuc2Zvcm0oQSxlKXtjb25zdCB0PWVbMF0qZVszXS1lWzFdKmVbMl07cmV0dXJuWyhBWzBdKmVbM10tQVsxXSplWzJdK2VbMl0qZVs1XS1lWzRdKmVbM10pL3QsKC1BWzBdKmVbMV0rQVsxXSplWzBdK2VbNF0qZVsxXS1lWzVdKmVbMF0pL3RdfXN0YXRpYyBnZXRBeGlhbEFsaWduZWRCb3VuZGluZ0JveChBLGUpe2NvbnN0IHQ9dGhpcy5hcHBseVRyYW5zZm9ybShBLGUpLGk9dGhpcy5hcHBseVRyYW5zZm9ybShBLnNsaWNlKDIsNCksZSksYT10aGlzLmFwcGx5VHJhbnNmb3JtKFtBWzBdLEFbM11dLGUpLHM9dGhpcy5hcHBseVRyYW5zZm9ybShbQVsyXSxBWzFdXSxlKTtyZXR1cm5bTWF0aC5taW4odFswXSxpWzBdLGFbMF0sc1swXSksTWF0aC5taW4odFsxXSxpWzFdLGFbMV0sc1sxXSksTWF0aC5tYXgodFswXSxpWzBdLGFbMF0sc1swXSksTWF0aC5tYXgodFsxXSxpWzFdLGFbMV0sc1sxXSldfXN0YXRpYyBpbnZlcnNlVHJhbnNmb3JtKEEpe2NvbnN0IGU9QVswXSpBWzNdLUFbMV0qQVsyXTtyZXR1cm5bQVszXS9lLC1BWzFdL2UsLUFbMl0vZSxBWzBdL2UsKEFbMl0qQVs1XS1BWzRdKkFbM10pL2UsKEFbNF0qQVsxXS1BWzVdKkFbMF0pL2VdfXN0YXRpYyBzaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShBKXtjb25zdCBlPVtBWzBdLEFbMl0sQVsxXSxBWzNdXSx0PUFbMF0qZVswXStBWzFdKmVbMl0saT1BWzBdKmVbMV0rQVsxXSplWzNdLGE9QVsyXSplWzBdK0FbM10qZVsyXSxzPUFbMl0qZVsxXStBWzNdKmVbM10sbj0odCtzKS8yLHI9TWF0aC5zcXJ0KCh0K3MpKioyLTQqKHQqcy1hKmkpKS8yLGc9bityfHwxLG89bi1yfHwxO3JldHVybltNYXRoLnNxcnQoZyksTWF0aC5zcXJ0KG8pXX1zdGF0aWMgbm9ybWFsaXplUmVjdChBKXtjb25zdCBlPUEuc2xpY2UoMCk7cmV0dXJuIEFbMF0+QVsyXSYmKGVbMF09QVsyXSxlWzJdPUFbMF0pLEFbMV0+QVszXSYmKGVbMV09QVszXSxlWzNdPUFbMV0pLGV9c3RhdGljIGludGVyc2VjdChBLGUpe2NvbnN0IHQ9TWF0aC5tYXgoTWF0aC5taW4oQVswXSxBWzJdKSxNYXRoLm1pbihlWzBdLGVbMl0pKSxpPU1hdGgubWluKE1hdGgubWF4KEFbMF0sQVsyXSksTWF0aC5tYXgoZVswXSxlWzJdKSk7aWYodD5pKXJldHVybiBudWxsO2NvbnN0IGE9TWF0aC5tYXgoTWF0aC5taW4oQVsxXSxBWzNdKSxNYXRoLm1pbihlWzFdLGVbM10pKSxzPU1hdGgubWluKE1hdGgubWF4KEFbMV0sQVszXSksTWF0aC5tYXgoZVsxXSxlWzNdKSk7cmV0dXJuIGE+cz9udWxsOlt0LGEsaSxzXX1zdGF0aWMjQShBLGUsdCxpLGEscyxuLHIsZyxvKXtpZihnPD0wfHxnPj0xKXJldHVybjtjb25zdCBJPTEtZyxjPWcqZyxoPWMqZyxDPUkqKEkqKEkqQSszKmcqZSkrMypjKnQpK2gqaSxCPUkqKEkqKEkqYSszKmcqcykrMypjKm4pK2gqcjtvWzBdPU1hdGgubWluKG9bMF0sQyksb1sxXT1NYXRoLm1pbihvWzFdLEIpLG9bMl09TWF0aC5tYXgob1syXSxDKSxvWzNdPU1hdGgubWF4KG9bM10sQil9c3RhdGljI2UoQSxlLHQsaSxhLHMsbixyLGcsbyxJLGMpe2lmKE1hdGguYWJzKGcpPDFlLTEyKXJldHVybiB2b2lkKE1hdGguYWJzKG8pPj0xZS0xMiYmdGhpcy4jQShBLGUsdCxpLGEscyxuLHIsLUkvbyxjKSk7Y29uc3QgaD1vKioyLTQqSSpnO2lmKGg8MClyZXR1cm47Y29uc3QgQz1NYXRoLnNxcnQoaCksQj0yKmc7dGhpcy4jQShBLGUsdCxpLGEscyxuLHIsKC1vK0MpL0IsYyksdGhpcy4jQShBLGUsdCxpLGEscyxuLHIsKC1vLUMpL0IsYyl9c3RhdGljIGJlemllckJvdW5kaW5nQm94KEEsZSx0LGksYSxzLG4scixnKXtyZXR1cm4gZz8oZ1swXT1NYXRoLm1pbihnWzBdLEEsbiksZ1sxXT1NYXRoLm1pbihnWzFdLGUsciksZ1syXT1NYXRoLm1heChnWzJdLEEsbiksZ1szXT1NYXRoLm1heChnWzNdLGUscikpOmc9W01hdGgubWluKEEsbiksTWF0aC5taW4oZSxyKSxNYXRoLm1heChBLG4pLE1hdGgubWF4KGUscildLHRoaXMuI2UoQSx0LGEsbixlLGkscyxyLDMqKDMqKHQtYSktQStuKSw2KihBLTIqdCthKSwzKih0LUEpLGcpLHRoaXMuI2UoQSx0LGEsbixlLGkscyxyLDMqKDMqKGktcyktZStyKSw2KihlLTIqaStzKSwzKihpLWUpLGcpLGd9fWNvbnN0IEFBPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3MjgsNzExLDcxMCw3MjksNzMzLDczMSw3MzAsNzMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgyMjYsODIyNCw4MjI1LDgyMzAsODIxMiw4MjExLDQwMiw4MjYwLDgyNDksODI1MCw4NzIyLDgyNDAsODIyMiw4MjIwLDgyMjEsODIxNiw4MjE3LDgyMTgsODQ4Miw2NDI1Nyw2NDI1OCwzMjEsMzM4LDM1MiwzNzYsMzgxLDMwNSwzMjIsMzM5LDM1MywzODIsMCw4MzY0XTtmdW5jdGlvbiBlQShBKXtpZihBWzBdPj0iw68iKXtsZXQgZTtpZigiw74iPT09QVswXSYmIsO/Ij09PUFbMV0/KGU9InV0Zi0xNmJlIixBLmxlbmd0aCUyPT0xJiYoQT1BLnNsaWNlKDAsLTEpKSk6IsO/Ij09PUFbMF0mJiLDviI9PT1BWzFdPyhlPSJ1dGYtMTZsZSIsQS5sZW5ndGglMj09MSYmKEE9QS5zbGljZSgwLC0xKSkpOiLDryI9PT1BWzBdJiYiwrsiPT09QVsxXSYmIsK/Ij09PUFbMl0mJihlPSJ1dGYtOCIpLGUpdHJ5e2NvbnN0IHQ9bmV3IFRleHREZWNvZGVyKGUse2ZhdGFsOiEwfSksaT1qKEEpLGE9dC5kZWNvZGUoaSk7cmV0dXJuIGEuaW5jbHVkZXMoIhsiKT9hLnJlcGxhY2VBbGwoL1x4MWJbXlx4MWJdKig/Olx4MWJ8JCkvZywiIik6YX1jYXRjaChBKXtVKGBzdHJpbmdUb1BERlN0cmluZzogIiR7QX0iLmApfX1jb25zdCBlPVtdO2ZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgYT1BLmNoYXJDb2RlQXQodCk7aWYoMjc9PT1hKXtmb3IoOysrdDxpJiYyNyE9PUEuY2hhckNvZGVBdCh0KTspO2NvbnRpbnVlfWNvbnN0IHM9QUFbYV07ZS5wdXNoKHM/U3RyaW5nLmZyb21DaGFyQ29kZShzKTpBLmNoYXJBdCh0KSl9cmV0dXJuIGUuam9pbigiIil9ZnVuY3Rpb24gdEEoQSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoQSkpfWZ1bmN0aW9uIGlBKEEpe3JldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpfWZ1bmN0aW9uIGFBKEEsZSl7aWYoQS5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MCxpPUEubGVuZ3RoO3Q8aTt0KyspaWYoQVt0XSE9PWVbdF0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gc0EoQT1uZXcgRGF0ZSl7cmV0dXJuW0EuZ2V0VVRDRnVsbFllYXIoKS50b1N0cmluZygpLChBLmdldFVUQ01vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksQS5nZXRVVENEYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksQS5nZXRVVENIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLEEuZ2V0VVRDTWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLEEuZ2V0VVRDU2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpXS5qb2luKCIiKX1sZXQgbkE9bnVsbCxyQT1udWxsO3QoMzIxNSk7Y29uc3QgZ0E9U3ltYm9sKCJDSVJDVUxBUl9SRUYiKSxvQT1TeW1ib2woIkVPRiIpO2xldCBJQT1PYmplY3QuY3JlYXRlKG51bGwpLGNBPU9iamVjdC5jcmVhdGUobnVsbCksaEE9T2JqZWN0LmNyZWF0ZShudWxsKTtjbGFzcyBDQXtjb25zdHJ1Y3RvcihBKXt0aGlzLm5hbWU9QX1zdGF0aWMgZ2V0KEEpe3JldHVybiBjQVtBXXx8PW5ldyBDQShBKX19Y2xhc3MgQkF7Y29uc3RydWN0b3IoQSl7dGhpcy5jbWQ9QX1zdGF0aWMgZ2V0KEEpe3JldHVybiBJQVtBXXx8PW5ldyBCQShBKX19Y29uc3QgbEE9ZnVuY3Rpb24oKXtyZXR1cm4gbEF9O2NsYXNzIFFBe2NvbnN0cnVjdG9yKEE9bnVsbCl7dGhpcy5fbWFwPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy54cmVmPUEsdGhpcy5vYmpJZD1udWxsLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uPSExLHRoaXMuX19ub25TZXJpYWxpemFibGVfXz1sQX1hc3NpZ25YcmVmKEEpe3RoaXMueHJlZj1BfWdldCBzaXplKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX21hcCkubGVuZ3RofWdldChBLGUsdCl7bGV0IGk9dGhpcy5fbWFwW0FdO3JldHVybiB2b2lkIDA9PT1pJiZ2b2lkIDAhPT1lJiYoaT10aGlzLl9tYXBbZV0sdm9pZCAwPT09aSYmdm9pZCAwIT09dCYmKGk9dGhpcy5fbWFwW3RdKSksaSBpbnN0YW5jZW9mIEVBJiZ0aGlzLnhyZWY/dGhpcy54cmVmLmZldGNoKGksdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOml9YXN5bmMgZ2V0QXN5bmMoQSxlLHQpe2xldCBpPXRoaXMuX21hcFtBXTtyZXR1cm4gdm9pZCAwPT09aSYmdm9pZCAwIT09ZSYmKGk9dGhpcy5fbWFwW2VdLHZvaWQgMD09PWkmJnZvaWQgMCE9PXQmJihpPXRoaXMuX21hcFt0XSkpLGkgaW5zdGFuY2VvZiBFQSYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaEFzeW5jKGksdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOml9Z2V0QXJyYXkoQSxlLHQpe2xldCBpPXRoaXMuX21hcFtBXTtpZih2b2lkIDA9PT1pJiZ2b2lkIDAhPT1lJiYoaT10aGlzLl9tYXBbZV0sdm9pZCAwPT09aSYmdm9pZCAwIT09dCYmKGk9dGhpcy5fbWFwW3RdKSksaSBpbnN0YW5jZW9mIEVBJiZ0aGlzLnhyZWYmJihpPXRoaXMueHJlZi5mZXRjaChpLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSksQXJyYXkuaXNBcnJheShpKSl7aT1pLnNsaWNlKCk7Zm9yKGxldCBBPTAsZT1pLmxlbmd0aDtBPGU7QSsrKWlbQV1pbnN0YW5jZW9mIEVBJiZ0aGlzLnhyZWYmJihpW0FdPXRoaXMueHJlZi5mZXRjaChpW0FdLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSl9cmV0dXJuIGl9Z2V0UmF3KEEpe3JldHVybiB0aGlzLl9tYXBbQV19Z2V0S2V5cygpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9tYXApfWdldFJhd1ZhbHVlcygpe3JldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX21hcCl9c2V0KEEsZSl7dGhpcy5fbWFwW0FdPWV9aGFzKEEpe3JldHVybiB2b2lkIDAhPT10aGlzLl9tYXBbQV19Zm9yRWFjaChBKXtmb3IoY29uc3QgZSBpbiB0aGlzLl9tYXApQShlLHRoaXMuZ2V0KGUpKX1zdGF0aWMgZ2V0IGVtcHR5KCl7Y29uc3QgQT1uZXcgUUEobnVsbCk7cmV0dXJuIEEuc2V0PShBLGUpPT57TSgiU2hvdWxkIG5vdCBjYWxsIGBzZXRgIG9uIHRoZSBlbXB0eSBkaWN0aW9uYXJ5LiIpfSxIKHRoaXMsImVtcHR5IixBKX1zdGF0aWMgbWVyZ2Uoe3hyZWY6QSxkaWN0QXJyYXk6ZSxtZXJnZVN1YkRpY3RzOnQ9ITF9KXtjb25zdCBpPW5ldyBRQShBKSxhPW5ldyBNYXA7Zm9yKGNvbnN0IEEgb2YgZSlpZihBIGluc3RhbmNlb2YgUUEpZm9yKGNvbnN0W2UsaV1vZiBPYmplY3QuZW50cmllcyhBLl9tYXApKXtsZXQgQT1hLmdldChlKTtpZih2b2lkIDA9PT1BKUE9W10sYS5zZXQoZSxBKTtlbHNlIGlmKCEodCYmaSBpbnN0YW5jZW9mIFFBKSljb250aW51ZTtBLnB1c2goaSl9Zm9yKGNvbnN0W2UsdF1vZiBhKXtpZigxPT09dC5sZW5ndGh8fCEodFswXWluc3RhbmNlb2YgUUEpKXtpLl9tYXBbZV09dFswXTtjb250aW51ZX1jb25zdCBhPW5ldyBRQShBKTtmb3IoY29uc3QgQSBvZiB0KWZvcihjb25zdFtlLHRdb2YgT2JqZWN0LmVudHJpZXMoQS5fbWFwKSl2b2lkIDA9PT1hLl9tYXBbZV0mJihhLl9tYXBbZV09dCk7YS5zaXplPjAmJihpLl9tYXBbZV09YSl9cmV0dXJuIGEuY2xlYXIoKSxpLnNpemU+MD9pOlFBLmVtcHR5fWNsb25lKCl7Y29uc3QgQT1uZXcgUUEodGhpcy54cmVmKTtmb3IoY29uc3QgZSBvZiB0aGlzLmdldEtleXMoKSlBLnNldChlLHRoaXMuZ2V0UmF3KGUpKTtyZXR1cm4gQX1kZWxldGUoQSl7ZGVsZXRlIHRoaXMuX21hcFtBXX19Y2xhc3MgRUF7Y29uc3RydWN0b3IoQSxlKXt0aGlzLm51bT1BLHRoaXMuZ2VuPWV9dG9TdHJpbmcoKXtyZXR1cm4gMD09PXRoaXMuZ2VuP2Ake3RoaXMubnVtfVJgOmAke3RoaXMubnVtfVIke3RoaXMuZ2VufWB9c3RhdGljIGZyb21TdHJpbmcoQSl7Y29uc3QgZT1oQVtBXTtpZihlKXJldHVybiBlO2NvbnN0IHQ9L14oXGQrKVIoXGQqKSQvLmV4ZWMoQSk7cmV0dXJuIHQmJiIwIiE9PXRbMV0/aEFbQV09bmV3IEVBKHBhcnNlSW50KHRbMV0pLHRbMl0/cGFyc2VJbnQodFsyXSk6MCk6bnVsbH1zdGF0aWMgZ2V0KEEsZSl7Y29uc3QgdD0wPT09ZT9gJHtBfVJgOmAke0F9UiR7ZX1gO3JldHVybiBoQVt0XXx8PW5ldyBFQShBLGUpfX1jbGFzcyB1QXtjb25zdHJ1Y3RvcihBPW51bGwpe3RoaXMuX3NldD1uZXcgU2V0KEE/Ll9zZXQpfWhhcyhBKXtyZXR1cm4gdGhpcy5fc2V0LmhhcyhBLnRvU3RyaW5nKCkpfXB1dChBKXt0aGlzLl9zZXQuYWRkKEEudG9TdHJpbmcoKSl9cmVtb3ZlKEEpe3RoaXMuX3NldC5kZWxldGUoQS50b1N0cmluZygpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLl9zZXQudmFsdWVzKCl9Y2xlYXIoKXt0aGlzLl9zZXQuY2xlYXIoKX19Y2xhc3MgZEF7Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcH1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9tYXAuc2l6ZX1nZXQoQSl7cmV0dXJuIHRoaXMuX21hcC5nZXQoQS50b1N0cmluZygpKX1oYXMoQSl7cmV0dXJuIHRoaXMuX21hcC5oYXMoQS50b1N0cmluZygpKX1wdXQoQSxlKXt0aGlzLl9tYXAuc2V0KEEudG9TdHJpbmcoKSxlKX1wdXRBbGlhcyhBLGUpe3RoaXMuX21hcC5zZXQoQS50b1N0cmluZygpLHRoaXMuZ2V0KGUpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLl9tYXAudmFsdWVzKCl9Y2xlYXIoKXt0aGlzLl9tYXAuY2xlYXIoKX0qaXRlbXMoKXtmb3IoY29uc3RbQSxlXW9mIHRoaXMuX21hcCl5aWVsZFtFQS5mcm9tU3RyaW5nKEEpLGVdfX1mdW5jdGlvbiBmQShBLGUpe3JldHVybiBBIGluc3RhbmNlb2YgQ0EmJih2b2lkIDA9PT1lfHxBLm5hbWU9PT1lKX1mdW5jdGlvbiBwQShBLGUpe3JldHVybiBBIGluc3RhbmNlb2YgQkEmJih2b2lkIDA9PT1lfHxBLmNtZD09PWUpfWZ1bmN0aW9uIG1BKEEsZSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBRQSYmKHZvaWQgMD09PWV8fGZBKEEuZ2V0KCJUeXBlIiksZSkpfWZ1bmN0aW9uIHlBKEEsZSl7cmV0dXJuIEEubnVtPT09ZS5udW0mJkEuZ2VuPT09ZS5nZW59Y2xhc3Mgd0F7Z2V0IGxlbmd0aCgpe00oIkFic3RyYWN0IGdldHRlciBgbGVuZ3RoYCBhY2Nlc3NlZCIpfWdldCBpc0VtcHR5KCl7TSgiQWJzdHJhY3QgZ2V0dGVyIGBpc0VtcHR5YCBhY2Nlc3NlZCIpfWdldCBpc0RhdGFMb2FkZWQoKXtyZXR1cm4gSCh0aGlzLCJpc0RhdGFMb2FkZWQiLCEwKX1nZXRCeXRlKCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlYCBjYWxsZWQiKX1nZXRCeXRlcyhBKXtNKCJBYnN0cmFjdCBtZXRob2QgYGdldEJ5dGVzYCBjYWxsZWQiKX1hc3luYyBnZXRJbWFnZURhdGEoQSxlKXtyZXR1cm4gdGhpcy5nZXRCeXRlcyhBLGUpfWFzeW5jIGFzeW5jR2V0Qnl0ZXMoKXtNKCJBYnN0cmFjdCBtZXRob2QgYGFzeW5jR2V0Qnl0ZXNgIGNhbGxlZCIpfWdldCBpc0FzeW5jKCl7cmV0dXJuITF9Z2V0IGNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyKCl7cmV0dXJuITF9cGVla0J5dGUoKXtjb25zdCBBPXRoaXMuZ2V0Qnl0ZSgpO3JldHVybi0xIT09QSYmdGhpcy5wb3MtLSxBfXBlZWtCeXRlcyhBKXtjb25zdCBlPXRoaXMuZ2V0Qnl0ZXMoQSk7cmV0dXJuIHRoaXMucG9zLT1lLmxlbmd0aCxlfWdldFVpbnQxNigpe2NvbnN0IEE9dGhpcy5nZXRCeXRlKCksZT10aGlzLmdldEJ5dGUoKTtyZXR1cm4tMT09PUF8fC0xPT09ZT8tMTooQTw8OCkrZX1nZXRJbnQzMigpe3JldHVybih0aGlzLmdldEJ5dGUoKTw8MjQpKyh0aGlzLmdldEJ5dGUoKTw8MTYpKyh0aGlzLmdldEJ5dGUoKTw8OCkrdGhpcy5nZXRCeXRlKCl9Z2V0Qnl0ZVJhbmdlKEEsZSl7TSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlUmFuZ2VgIGNhbGxlZCIpfWdldFN0cmluZyhBKXtyZXR1cm4gWih0aGlzLmdldEJ5dGVzKEEpKX1za2lwKEEpe3RoaXMucG9zKz1BfHwxfXJlc2V0KCl7TSgiQWJzdHJhY3QgbWV0aG9kIGByZXNldGAgY2FsbGVkIil9bW92ZVN0YXJ0KCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBtb3ZlU3RhcnRgIGNhbGxlZCIpfW1ha2VTdWJTdHJlYW0oQSxlLHQ9bnVsbCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBtYWtlU3ViU3RyZWFtYCBjYWxsZWQiKX1nZXRCYXNlU3RyZWFtcygpe3JldHVybiBudWxsfX1jb25zdCBEQT0vXlsxLTldXC5cZCQvO2Z1bmN0aW9uIGJBKEEpe2xldCBlO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBJiYoZT1PYmplY3QuY3JlYXRlKG51bGwpLEEoZSksQT1udWxsKSxlfX1jbGFzcyBrQSBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihgTWlzc2luZyBkYXRhIFske0F9LCAke2V9KWAsIk1pc3NpbmdEYXRhRXhjZXB0aW9uIiksdGhpcy5iZWdpbj1BLHRoaXMuZW5kPWV9fWNsYXNzIEZBIGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJQYXJzZXJFT0ZFeGNlcHRpb24iKX19Y2xhc3MgU0EgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIlhSZWZFbnRyeUV4Y2VwdGlvbiIpfX1jbGFzcyBSQSBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiWFJlZlBhcnNlRXhjZXB0aW9uIil9fWZ1bmN0aW9uIEdBKEEpe2NvbnN0IGU9QS5sZW5ndGg7aWYoMD09PWUpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2lmKDE9PT1lKXJldHVybiBuZXcgVWludDhBcnJheShBWzBdKTtsZXQgdD0wO2ZvcihsZXQgaT0wO2k8ZTtpKyspdCs9QVtpXS5ieXRlTGVuZ3RoO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkodCk7bGV0IGE9MDtmb3IobGV0IHQ9MDt0PGU7dCsrKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KEFbdF0pO2kuc2V0KGUsYSksYSs9ZS5ieXRlTGVuZ3RofXJldHVybiBpfWZ1bmN0aW9uIE5BKHtkaWN0OkEsa2V5OmUsZ2V0QXJyYXk6dD0hMSxzdG9wV2hlbkZvdW5kOmk9ITB9KXtsZXQgYTtjb25zdCBzPW5ldyB1QTtmb3IoO0EgaW5zdGFuY2VvZiBRQSYmKCFBLm9iaklkfHwhcy5oYXMoQS5vYmpJZCkpOyl7QS5vYmpJZCYmcy5wdXQoQS5vYmpJZCk7Y29uc3Qgbj10P0EuZ2V0QXJyYXkoZSk6QS5nZXQoZSk7aWYodm9pZCAwIT09bil7aWYoaSlyZXR1cm4gbjsoYXx8PVtdKS5wdXNoKG4pfUE9QS5nZXQoIlBhcmVudCIpfXJldHVybiBhfWNvbnN0IHhBPVsiIiwiQyIsIkNDIiwiQ0NDIiwiQ0QiLCJEIiwiREMiLCJEQ0MiLCJEQ0NDIiwiQ00iLCIiLCJYIiwiWFgiLCJYWFgiLCJYTCIsIkwiLCJMWCIsIkxYWCIsIkxYWFgiLCJYQyIsIiIsIkkiLCJJSSIsIklJSSIsIklWIiwiViIsIlZJIiwiVklJIiwiVklJSSIsIklYIl07ZnVuY3Rpb24gVUEoQSxlPSExKXtMKE51bWJlci5pc0ludGVnZXIoQSkmJkE+MCwiVGhlIG51bWJlciBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLiIpO2NvbnN0IHQ9W107bGV0IGk7Zm9yKDtBPj0xZTM7KUEtPTFlMyx0LnB1c2goIk0iKTtpPUEvMTAwfDAsQSU9MTAwLHQucHVzaCh4QVtpXSksaT1BLzEwfDAsQSU9MTAsdC5wdXNoKHhBWzEwK2ldKSx0LnB1c2goeEFbMjArQV0pO2NvbnN0IGE9dC5qb2luKCIiKTtyZXR1cm4gZT9hLnRvTG93ZXJDYXNlKCk6YX1mdW5jdGlvbiBNQShBKXtyZXR1cm4gQTw9MD8wOk1hdGguY2VpbChNYXRoLmxvZzIoQSkpfWZ1bmN0aW9uIExBKEEsZSl7cmV0dXJuIEFbZV08PDI0Pj4yNH1mdW5jdGlvbiBKQShBLGUpe3JldHVybiBBW2VdPDw4fEFbZSsxXX1mdW5jdGlvbiBIQShBLGUpe3JldHVybihBW2VdPDwyNHxBW2UrMV08PDE2fEFbZSsyXTw8OHxBW2UrM10pPj4+MH1mdW5jdGlvbiBZQShBKXtyZXR1cm4gMzI9PT1BfHw5PT09QXx8MTM9PT1BfHwxMD09PUF9ZnVuY3Rpb24gdkEoQSxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShBKT8obnVsbD09PWV8fEEubGVuZ3RoPT09ZSkmJkEuZXZlcnkoKEE9PiJudW1iZXIiPT10eXBlb2YgQSkpOkFycmF5QnVmZmVyLmlzVmlldyhBKSYmKDA9PT1BLmxlbmd0aHx8Im51bWJlciI9PXR5cGVvZiBBWzBdKSYmKG51bGw9PT1lfHxBLmxlbmd0aD09PWUpfWZ1bmN0aW9uIEtBKEEsZSl7cmV0dXJuIHZBKEEsNik/QTplfWZ1bmN0aW9uIHFBKEEsZSl7cmV0dXJuIHZBKEEsNCk/QTplfWZ1bmN0aW9uIFRBKEEsZSl7cmV0dXJuIHZBKEEsNCk/JC5ub3JtYWxpemVSZWN0KEEpOmV9ZnVuY3Rpb24gUEEoQSl7Y29uc3QgZT0vKC4rKVxbKFxkKylcXSQvO3JldHVybiBBLnNwbGl0KCIuIikubWFwKChBPT57Y29uc3QgdD1BLm1hdGNoKGUpO3JldHVybiB0P3tuYW1lOnRbMV0scG9zOnBhcnNlSW50KHRbMl0sMTApfTp7bmFtZTpBLHBvczowfX0pKX1mdW5jdGlvbiBXQShBKXtjb25zdCBlPVtdO2xldCB0PTA7Zm9yKGxldCBpPTAsYT1BLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPUEuY2hhckNvZGVBdChpKTsoYTwzM3x8YT4xMjZ8fDM1PT09YXx8NDA9PT1hfHw0MT09PWF8fDYwPT09YXx8NjI9PT1hfHw5MT09PWF8fDkzPT09YXx8MTIzPT09YXx8MTI1PT09YXx8NDc9PT1hfHwzNz09PWEpJiYodDxpJiZlLnB1c2goQS5zdWJzdHJpbmcodCxpKSksZS5wdXNoKGAjJHthLnRvU3RyaW5nKDE2KX1gKSx0PWkrMSl9cmV0dXJuIDA9PT1lLmxlbmd0aD9BOih0PEEubGVuZ3RoJiZlLnB1c2goQS5zdWJzdHJpbmcodCxBLmxlbmd0aCkpLGUuam9pbigiIikpfWZ1bmN0aW9uIE9BKEEpe3JldHVybiBBLnJlcGxhY2VBbGwoLyhbKClcXFxuXHJdKS9nLChBPT4iXG4iPT09QT8iXFxuIjoiXHIiPT09QT8iXFxyIjpgXFwke0F9YCkpfWZ1bmN0aW9uIFpBKEEsZSx0LGkpe2lmKCFBKXJldHVybjtsZXQgYT1udWxsO2lmKEEgaW5zdGFuY2VvZiBFQSl7aWYoaS5oYXMoQSkpcmV0dXJuO2E9QSxpLnB1dChhKSxBPWUuZmV0Y2goQSl9aWYoQXJyYXkuaXNBcnJheShBKSlmb3IoY29uc3QgYSBvZiBBKVpBKGEsZSx0LGkpO2Vsc2UgaWYoQSBpbnN0YW5jZW9mIFFBKXtpZihmQShBLmdldCgiUyIpLCJKYXZhU2NyaXB0Iikpe2NvbnN0IGU9QS5nZXQoIkpTIik7bGV0IGk7ZSBpbnN0YW5jZW9mIHdBP2k9ZS5nZXRTdHJpbmcoKToic3RyaW5nIj09dHlwZW9mIGUmJihpPWUpLGkmJj1lQShpKS5yZXBsYWNlQWxsKCJcMCIsIiIpLGkmJnQucHVzaChpKX1aQShBLmdldFJhdygiTmV4dCIpLGUsdCxpKX1hJiZpLnJlbW92ZShhKX1mdW5jdGlvbiBqQShBLGUsdCl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpLGE9TkEoe2RpY3Q6ZSxrZXk6IkFBIixzdG9wV2hlbkZvdW5kOiExfSk7aWYoYSlmb3IobGV0IGU9YS5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3Qgcz1hW2VdO2lmKHMgaW5zdGFuY2VvZiBRQSlmb3IoY29uc3QgZSBvZiBzLmdldEtleXMoKSl7Y29uc3QgYT10W2VdO2lmKCFhKWNvbnRpbnVlO2NvbnN0IG49W107WkEocy5nZXRSYXcoZSksQSxuLG5ldyB1QSksbi5sZW5ndGg+MCYmKGlbYV09bil9fWlmKGUuaGFzKCJBIikpe2NvbnN0IHQ9W107WkEoZS5nZXQoIkEiKSxBLHQsbmV3IHVBKSx0Lmxlbmd0aD4wJiYoaS5BY3Rpb249dCl9cmV0dXJuIFYoaSk+MD9pOm51bGx9Y29uc3QgWEE9ezYwOiImbHQ7Iiw2MjoiJmd0OyIsMzg6IiZhbXA7IiwzNDoiJnF1b3Q7IiwzOToiJmFwb3M7In07ZnVuY3Rpb24qVkEoQSl7Zm9yKGxldCBlPTAsdD1BLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PUEuY29kZVBvaW50QXQoZSk7dD41NTI5NSYmKHQ8NTczNDR8fHQ+NjU1MzMpJiZlKysseWllbGQgdH19ZnVuY3Rpb24gX0EoQSl7Y29uc3QgZT1bXTtsZXQgdD0wO2ZvcihsZXQgaT0wLGE9QS5sZW5ndGg7aTxhO2krKyl7Y29uc3QgYT1BLmNvZGVQb2ludEF0KGkpO2lmKDMyPD1hJiZhPD0xMjYpe2NvbnN0IHM9WEFbYV07cyYmKHQ8aSYmZS5wdXNoKEEuc3Vic3RyaW5nKHQsaSkpLGUucHVzaChzKSx0PWkrMSl9ZWxzZSB0PGkmJmUucHVzaChBLnN1YnN0cmluZyh0LGkpKSxlLnB1c2goYCYjeCR7YS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX07YCksYT41NTI5NSYmKGE8NTczNDR8fGE+NjU1MzMpJiZpKyssdD1pKzF9cmV0dXJuIDA9PT1lLmxlbmd0aD9BOih0PEEubGVuZ3RoJiZlLnB1c2goQS5zdWJzdHJpbmcodCxBLmxlbmd0aCkpLGUuam9pbigiIikpfWZ1bmN0aW9uIHpBKEEsZT0hMSl7Y29uc3QgdD0vXigifCcpLiooInwnKSQvLmV4ZWMoQSk7aWYodCYmdFsxXT09PXRbMl0pe2lmKG5ldyBSZWdFeHAoYFteXFxcXF0ke3RbMV19YCkudGVzdChBLnNsaWNlKDEsLTEpKSlyZXR1cm4gZSYmVShgRm9udEZhbWlseSBjb250YWlucyB1bmVzY2FwZWQgJHt0WzFdfTogJHtBfS5gKSwhMX1lbHNlIGZvcihjb25zdCB0IG9mIEEuc3BsaXQoL1sgXHRdKy8pKWlmKC9eKFxkfCgtKFxkfC0pKSkvLnRlc3QodCl8fCEvXltcdy1cXF0rJC8udGVzdCh0KSlyZXR1cm4gZSYmVShgRm9udEZhbWlseSBjb250YWlucyBpbnZhbGlkIDxjdXN0b20taWRlbnQ+OiAke0F9LmApLCExO3JldHVybiEwfWZ1bmN0aW9uICRBKEEpe2NvbnN0IGU9bmV3IFNldChbIjEwMCIsIjIwMCIsIjMwMCIsIjQwMCIsIjUwMCIsIjYwMCIsIjcwMCIsIjgwMCIsIjkwMCIsIjEwMDAiLCJub3JtYWwiLCJib2xkIiwiYm9sZGVyIiwibGlnaHRlciJdKSx7Zm9udEZhbWlseTp0LGZvbnRXZWlnaHQ6aSxpdGFsaWNBbmdsZTphfT1BO2lmKCF6QSh0LCEwKSlyZXR1cm4hMTtjb25zdCBzPWk/aS50b1N0cmluZygpOiIiO0EuZm9udFdlaWdodD1lLmhhcyhzKT9zOiI0MDAiO2NvbnN0IG49cGFyc2VGbG9hdChhKTtyZXR1cm4gQS5pdGFsaWNBbmdsZT1pc05hTihuKXx8bjwtOTB8fG4+OTA/IjE0IjphLnRvU3RyaW5nKCksITB9ZnVuY3Rpb24gQWUoQSl7Y29uc3QgZT1uZXcgUmVnRXhwKCJeXFxzKigiK1siYXBwLmxhdW5jaFVSTCIsIndpbmRvdy5vcGVuIiwieGZhLmhvc3QuZ290b1VSTCJdLmpvaW4oInwiKS5yZXBsYWNlQWxsKCIuIiwiXFwuIikrIilcXCgoPzonfFwiKShbXidcIl0qKSg/Oid8XCIpKD86LFxccyooXFx3KylcXCl8XFwpKSIsImkiKS5leGVjKEEpO2lmKGU/LlsyXSl7Y29uc3QgQT1lWzJdO2xldCB0PSExO3JldHVybiJ0cnVlIj09PWVbM10mJiJhcHAubGF1bmNoVVJMIj09PWVbMV0mJih0PSEwKSx7dXJsOkEsbmV3V2luZG93OnR9fXJldHVybiBudWxsfWZ1bmN0aW9uIGVlKEEpe2lmKE51bWJlci5pc0ludGVnZXIoQSkpcmV0dXJuIEEudG9TdHJpbmcoKTtjb25zdCBlPU1hdGgucm91bmQoMTAwKkEpO3JldHVybiBlJTEwMD09MD8oZS8xMDApLnRvU3RyaW5nKCk6ZSUxMD09MD9BLnRvRml4ZWQoMSk6QS50b0ZpeGVkKDIpfWZ1bmN0aW9uIHRlKEEpe2lmKCFBKXJldHVybiBudWxsO2NvbnN0IGU9bmV3IE1hcDtmb3IoY29uc3RbdCxpXW9mIEEpe2lmKCF0LnN0YXJ0c1dpdGgobykpY29udGludWU7bGV0IEE9ZS5nZXQoaS5wYWdlSW5kZXgpO0F8fChBPVtdLGUuc2V0KGkucGFnZUluZGV4LEEpKSxBLnB1c2goaSl9cmV0dXJuIGUuc2l6ZT4wP2U6bnVsbH1mdW5jdGlvbiBpZShBKXtyZXR1cm4gZnVuY3Rpb24oQSl7cmV0dXJuL15bXHgwMC1ceDdGXSokLy50ZXN0KEEpfShBKT9BOnNlKEEsITApfWZ1bmN0aW9uIGFlKEEpe2NvbnN0IGU9W107Zm9yKGxldCB0PTAsaT1BLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPUEuY2hhckNvZGVBdCh0KTtlLnB1c2goKGk+PjgmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLCgyNTUmaSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSl9cmV0dXJuIGUuam9pbigiIil9ZnVuY3Rpb24gc2UoQSxlPSExKXtjb25zdCB0PVtdO2UmJnQucHVzaCgiw77DvyIpO2ZvcihsZXQgZT0wLGk9QS5sZW5ndGg7ZTxpO2UrKyl7Y29uc3QgaT1BLmNoYXJDb2RlQXQoZSk7dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaT4+OCYyNTUpLFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmkpKX1yZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiBuZShBLGUsdCl7c3dpdGNoKEEpe2Nhc2UgOTA6cmV0dXJuWzAsMSwtMSwwLGUsMF07Y2FzZSAxODA6cmV0dXJuWy0xLDAsMCwtMSxlLHRdO2Nhc2UgMjcwOnJldHVyblswLC0xLDEsMCwwLHRdO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdGF0aW9uIil9fWZ1bmN0aW9uIHJlKEEpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5jZWlsKE1hdGgubG9nMigxK0EpKS84KX1jbGFzcyBnZSBleHRlbmRzIHdBe2NvbnN0cnVjdG9yKEEsZSx0LGkpe3N1cGVyKCksdGhpcy5ieXRlcz1BIGluc3RhbmNlb2YgVWludDhBcnJheT9BOm5ldyBVaW50OEFycmF5KEEpLHRoaXMuc3RhcnQ9ZXx8MCx0aGlzLnBvcz10aGlzLnN0YXJ0LHRoaXMuZW5kPWUrdHx8dGhpcy5ieXRlcy5sZW5ndGgsdGhpcy5kaWN0PWl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmVuZC10aGlzLnN0YXJ0fWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmxlbmd0aH1nZXRCeXRlKCl7cmV0dXJuIHRoaXMucG9zPj10aGlzLmVuZD8tMTp0aGlzLmJ5dGVzW3RoaXMucG9zKytdfWdldEJ5dGVzKEEpe2NvbnN0IGU9dGhpcy5ieXRlcyx0PXRoaXMucG9zLGk9dGhpcy5lbmQ7aWYoIUEpcmV0dXJuIGUuc3ViYXJyYXkodCxpKTtsZXQgYT10K0E7cmV0dXJuIGE+aSYmKGE9aSksdGhpcy5wb3M9YSxlLnN1YmFycmF5KHQsYSl9Z2V0Qnl0ZVJhbmdlKEEsZSl7cmV0dXJuIEE8MCYmKEE9MCksZT50aGlzLmVuZCYmKGU9dGhpcy5lbmQpLHRoaXMuYnl0ZXMuc3ViYXJyYXkoQSxlKX1yZXNldCgpe3RoaXMucG9zPXRoaXMuc3RhcnR9bW92ZVN0YXJ0KCl7dGhpcy5zdGFydD10aGlzLnBvc31tYWtlU3ViU3RyZWFtKEEsZSx0PW51bGwpe3JldHVybiBuZXcgZ2UodGhpcy5ieXRlcy5idWZmZXIsQSxlLHQpfX1jbGFzcyBvZSBleHRlbmRzIGdle2NvbnN0cnVjdG9yKEEpe3N1cGVyKGooQSkpfX1jbGFzcyBJZSBleHRlbmRzIGdle2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFVpbnQ4QXJyYXkoMCkpfX1jbGFzcyBjZSBleHRlbmRzIGdle2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihuZXcgVWludDhBcnJheShBKSwwLEEsbnVsbCksdGhpcy5jaHVua1NpemU9ZSx0aGlzLl9sb2FkZWRDaHVua3M9bmV3IFNldCx0aGlzLm51bUNodW5rcz1NYXRoLmNlaWwoQS9lKSx0aGlzLm1hbmFnZXI9dCx0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aD0wLHRoaXMubGFzdFN1Y2Nlc3NmdWxFbnN1cmVCeXRlQ2h1bms9LTF9Z2V0TWlzc2luZ0NodW5rcygpe2NvbnN0IEE9W107Zm9yKGxldCBlPTAsdD10aGlzLm51bUNodW5rcztlPHQ7KytlKXRoaXMuX2xvYWRlZENodW5rcy5oYXMoZSl8fEEucHVzaChlKTtyZXR1cm4gQX1nZXQgbnVtQ2h1bmtzTG9hZGVkKCl7cmV0dXJuIHRoaXMuX2xvYWRlZENodW5rcy5zaXplfWdldCBpc0RhdGFMb2FkZWQoKXtyZXR1cm4gdGhpcy5udW1DaHVua3NMb2FkZWQ9PT10aGlzLm51bUNodW5rc31vblJlY2VpdmVEYXRhKEEsZSl7Y29uc3QgdD10aGlzLmNodW5rU2l6ZTtpZihBJXQhPTApdGhyb3cgbmV3IEVycm9yKGBCYWQgYmVnaW4gb2Zmc2V0OiAke0F9YCk7Y29uc3QgaT1BK2UuYnl0ZUxlbmd0aDtpZihpJXQhPTAmJmkhPT10aGlzLmJ5dGVzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYEJhZCBlbmQgb2Zmc2V0OiAke2l9YCk7dGhpcy5ieXRlcy5zZXQobmV3IFVpbnQ4QXJyYXkoZSksQSk7Y29uc3QgYT1NYXRoLmZsb29yKEEvdCkscz1NYXRoLmZsb29yKChpLTEpL3QpKzE7Zm9yKGxldCBBPWE7QTxzOysrQSl0aGlzLl9sb2FkZWRDaHVua3MuYWRkKEEpfW9uUmVjZWl2ZVByb2dyZXNzaXZlRGF0YShBKXtsZXQgZT10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aDtjb25zdCB0PU1hdGguZmxvb3IoZS90aGlzLmNodW5rU2l6ZSk7dGhpcy5ieXRlcy5zZXQobmV3IFVpbnQ4QXJyYXkoQSksZSksZSs9QS5ieXRlTGVuZ3RoLHRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoPWU7Y29uc3QgaT1lPj10aGlzLmVuZD90aGlzLm51bUNodW5rczpNYXRoLmZsb29yKGUvdGhpcy5jaHVua1NpemUpO2ZvcihsZXQgQT10O0E8aTsrK0EpdGhpcy5fbG9hZGVkQ2h1bmtzLmFkZChBKX1lbnN1cmVCeXRlKEEpe2lmKEE8dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuO2NvbnN0IGU9TWF0aC5mbG9vcihBL3RoaXMuY2h1bmtTaXplKTtpZighKGU+dGhpcy5udW1DaHVua3MpJiZlIT09dGhpcy5sYXN0U3VjY2Vzc2Z1bEVuc3VyZUJ5dGVDaHVuayl7aWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoZSkpdGhyb3cgbmV3IGtBKEEsQSsxKTt0aGlzLmxhc3RTdWNjZXNzZnVsRW5zdXJlQnl0ZUNodW5rPWV9fWVuc3VyZVJhbmdlKEEsZSl7aWYoQT49ZSlyZXR1cm47aWYoZTw9dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuO2NvbnN0IHQ9TWF0aC5mbG9vcihBL3RoaXMuY2h1bmtTaXplKTtpZih0PnRoaXMubnVtQ2h1bmtzKXJldHVybjtjb25zdCBpPU1hdGgubWluKE1hdGguZmxvb3IoKGUtMSkvdGhpcy5jaHVua1NpemUpKzEsdGhpcy5udW1DaHVua3MpO2ZvcihsZXQgYT10O2E8aTsrK2EpaWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoYSkpdGhyb3cgbmV3IGtBKEEsZSl9bmV4dEVtcHR5Q2h1bmsoQSl7Y29uc3QgZT10aGlzLm51bUNodW5rcztmb3IobGV0IHQ9MDt0PGU7Kyt0KXtjb25zdCBpPShBK3QpJWU7aWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoaSkpcmV0dXJuIGl9cmV0dXJuIG51bGx9aGFzQ2h1bmsoQSl7cmV0dXJuIHRoaXMuX2xvYWRlZENodW5rcy5oYXMoQSl9Z2V0Qnl0ZSgpe2NvbnN0IEE9dGhpcy5wb3M7cmV0dXJuIEE+PXRoaXMuZW5kPy0xOihBPj10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVCeXRlKEEpLHRoaXMuYnl0ZXNbdGhpcy5wb3MrK10pfWdldEJ5dGVzKEEpe2NvbnN0IGU9dGhpcy5ieXRlcyx0PXRoaXMucG9zLGk9dGhpcy5lbmQ7aWYoIUEpcmV0dXJuIGk+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UodCxpKSxlLnN1YmFycmF5KHQsaSk7bGV0IGE9dCtBO3JldHVybiBhPmkmJihhPWkpLGE+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UodCxhKSx0aGlzLnBvcz1hLGUuc3ViYXJyYXkodCxhKX1nZXRCeXRlUmFuZ2UoQSxlKXtyZXR1cm4gQTwwJiYoQT0wKSxlPnRoaXMuZW5kJiYoZT10aGlzLmVuZCksZT50aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVSYW5nZShBLGUpLHRoaXMuYnl0ZXMuc3ViYXJyYXkoQSxlKX1tYWtlU3ViU3RyZWFtKEEsZSx0PW51bGwpe2Z1bmN0aW9uIGkoKXt9ZT9BK2U+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UoQSxBK2UpOkE+PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZUJ5dGUoQSksaS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0aGlzKSxpLnByb3RvdHlwZS5nZXRNaXNzaW5nQ2h1bmtzPWZ1bmN0aW9uKCl7Y29uc3QgQT10aGlzLmNodW5rU2l6ZSxlPU1hdGguZmxvb3IodGhpcy5zdGFydC9BKSx0PU1hdGguZmxvb3IoKHRoaXMuZW5kLTEpL0EpKzEsaT1bXTtmb3IobGV0IEE9ZTtBPHQ7KytBKXRoaXMuX2xvYWRlZENodW5rcy5oYXMoQSl8fGkucHVzaChBKTtyZXR1cm4gaX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGkucHJvdG90eXBlLCJpc0RhdGFMb2FkZWQiLHtnZXQoKXtyZXR1cm4gdGhpcy5udW1DaHVua3NMb2FkZWQ9PT10aGlzLm51bUNodW5rc3x8MD09PXRoaXMuZ2V0TWlzc2luZ0NodW5rcygpLmxlbmd0aH0sY29uZmlndXJhYmxlOiEwfSk7Y29uc3QgYT1uZXcgaTtyZXR1cm4gYS5wb3M9YS5zdGFydD1BLGEuZW5kPUErZXx8dGhpcy5lbmQsYS5kaWN0PXQsYX1nZXRCYXNlU3RyZWFtcygpe3JldHVyblt0aGlzXX19Y2xhc3MgaGV7Y29uc3RydWN0b3IoQSxlKXt0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLmNodW5rU2l6ZT1lLnJhbmdlQ2h1bmtTaXplLHRoaXMuc3RyZWFtPW5ldyBjZSh0aGlzLmxlbmd0aCx0aGlzLmNodW5rU2l6ZSx0aGlzKSx0aGlzLnBkZk5ldHdvcmtTdHJlYW09QSx0aGlzLmRpc2FibGVBdXRvRmV0Y2g9ZS5kaXNhYmxlQXV0b0ZldGNoLHRoaXMubXNnSGFuZGxlcj1lLm1zZ0hhbmRsZXIsdGhpcy5jdXJyUmVxdWVzdElkPTAsdGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0PW5ldyBNYXAsdGhpcy5fcmVxdWVzdHNCeUNodW5rPW5ldyBNYXAsdGhpcy5fcHJvbWlzZXNCeVJlcXVlc3Q9bmV3IE1hcCx0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aD0wLHRoaXMuYWJvcnRlZD0hMSx0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfXNlbmRSZXF1ZXN0KEEsZSl7Y29uc3QgdD10aGlzLnBkZk5ldHdvcmtTdHJlYW0uZ2V0UmFuZ2VSZWFkZXIoQSxlKTt0LmlzU3RyZWFtaW5nU3VwcG9ydGVkfHwodC5vblByb2dyZXNzPXRoaXMub25Qcm9ncmVzcy5iaW5kKHRoaXMpKTtsZXQgaT1bXSxhPTA7cmV0dXJuIG5ldyBQcm9taXNlKCgoQSxlKT0+e2NvbnN0IHM9KHt2YWx1ZTpuLGRvbmU6cn0pPT57dHJ5e2lmKHIpe2NvbnN0IGU9R0EoaSk7cmV0dXJuIGk9bnVsbCx2b2lkIEEoZSl9YSs9bi5ieXRlTGVuZ3RoLHQuaXNTdHJlYW1pbmdTdXBwb3J0ZWQmJnRoaXMub25Qcm9ncmVzcyh7bG9hZGVkOmF9KSxpLnB1c2gobiksdC5yZWFkKCkudGhlbihzLGUpfWNhdGNoKEEpe2UoQSl9fTt0LnJlYWQoKS50aGVuKHMsZSl9KSkudGhlbigoZT0+e3RoaXMuYWJvcnRlZHx8dGhpcy5vblJlY2VpdmVEYXRhKHtjaHVuazplLGJlZ2luOkF9KX0pKX1yZXF1ZXN0QWxsQ2h1bmtzKEE9ITEpe2lmKCFBKXtjb25zdCBBPXRoaXMuc3RyZWFtLmdldE1pc3NpbmdDaHVua3MoKTt0aGlzLl9yZXF1ZXN0Q2h1bmtzKEEpfXJldHVybiB0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5LnByb21pc2V9X3JlcXVlc3RDaHVua3MoQSl7Y29uc3QgZT10aGlzLmN1cnJSZXF1ZXN0SWQrKyx0PW5ldyBTZXQ7dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0LnNldChlLHQpO2Zvcihjb25zdCBlIG9mIEEpdGhpcy5zdHJlYW0uaGFzQ2h1bmsoZSl8fHQuYWRkKGUpO2lmKDA9PT10LnNpemUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5fcHJvbWlzZXNCeVJlcXVlc3Quc2V0KGUsaSk7Y29uc3QgYT1bXTtmb3IoY29uc3QgQSBvZiB0KXtsZXQgdD10aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuZ2V0KEEpO3R8fCh0PVtdLHRoaXMuX3JlcXVlc3RzQnlDaHVuay5zZXQoQSx0KSxhLnB1c2goQSkpLHQucHVzaChlKX1pZihhLmxlbmd0aD4wKXtjb25zdCBBPXRoaXMuZ3JvdXBDaHVua3MoYSk7Zm9yKGNvbnN0IGUgb2YgQSl7Y29uc3QgQT1lLmJlZ2luQ2h1bmsqdGhpcy5jaHVua1NpemUsdD1NYXRoLm1pbihlLmVuZENodW5rKnRoaXMuY2h1bmtTaXplLHRoaXMubGVuZ3RoKTt0aGlzLnNlbmRSZXF1ZXN0KEEsdCkuY2F0Y2goaS5yZWplY3QpfX1yZXR1cm4gaS5wcm9taXNlLmNhdGNoKChBPT57aWYoIXRoaXMuYWJvcnRlZCl0aHJvdyBBfSkpfWdldFN0cmVhbSgpe3JldHVybiB0aGlzLnN0cmVhbX1yZXF1ZXN0UmFuZ2UoQSxlKXtlPU1hdGgubWluKGUsdGhpcy5sZW5ndGgpO2NvbnN0IHQ9dGhpcy5nZXRCZWdpbkNodW5rKEEpLGk9dGhpcy5nZXRFbmRDaHVuayhlKSxhPVtdO2ZvcihsZXQgQT10O0E8aTsrK0EpYS5wdXNoKEEpO3JldHVybiB0aGlzLl9yZXF1ZXN0Q2h1bmtzKGEpfXJlcXVlc3RSYW5nZXMoQT1bXSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBBKXtjb25zdCBBPXRoaXMuZ2V0QmVnaW5DaHVuayh0LmJlZ2luKSxpPXRoaXMuZ2V0RW5kQ2h1bmsodC5lbmQpO2ZvcihsZXQgdD1BO3Q8aTsrK3QpZS5pbmNsdWRlcyh0KXx8ZS5wdXNoKHQpfXJldHVybiBlLnNvcnQoKGZ1bmN0aW9uKEEsZSl7cmV0dXJuIEEtZX0pKSx0aGlzLl9yZXF1ZXN0Q2h1bmtzKGUpfWdyb3VwQ2h1bmtzKEEpe2NvbnN0IGU9W107bGV0IHQ9LTEsaT0tMTtmb3IobGV0IGE9MCxzPUEubGVuZ3RoO2E8czsrK2Epe2NvbnN0IHM9QVthXTt0PDAmJih0PXMpLGk+PTAmJmkrMSE9PXMmJihlLnB1c2goe2JlZ2luQ2h1bms6dCxlbmRDaHVuazppKzF9KSx0PXMpLGErMT09PUEubGVuZ3RoJiZlLnB1c2goe2JlZ2luQ2h1bms6dCxlbmRDaHVuazpzKzF9KSxpPXN9cmV0dXJuIGV9b25Qcm9ncmVzcyhBKXt0aGlzLm1zZ0hhbmRsZXIuc2VuZCgiRG9jUHJvZ3Jlc3MiLHtsb2FkZWQ6dGhpcy5zdHJlYW0ubnVtQ2h1bmtzTG9hZGVkKnRoaXMuY2h1bmtTaXplK0EubG9hZGVkLHRvdGFsOnRoaXMubGVuZ3RofSl9b25SZWNlaXZlRGF0YShBKXtjb25zdCBlPUEuY2h1bmssdD12b2lkIDA9PT1BLmJlZ2luLGk9dD90aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aDpBLmJlZ2luLGE9aStlLmJ5dGVMZW5ndGgscz1NYXRoLmZsb29yKGkvdGhpcy5jaHVua1NpemUpLG49YTx0aGlzLmxlbmd0aD9NYXRoLmZsb29yKGEvdGhpcy5jaHVua1NpemUpOk1hdGguY2VpbChhL3RoaXMuY2h1bmtTaXplKTt0Pyh0aGlzLnN0cmVhbS5vblJlY2VpdmVQcm9ncmVzc2l2ZURhdGEoZSksdGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGg9YSk6dGhpcy5zdHJlYW0ub25SZWNlaXZlRGF0YShpLGUpLHRoaXMuc3RyZWFtLmlzRGF0YUxvYWRlZCYmdGhpcy5fbG9hZGVkU3RyZWFtQ2FwYWJpbGl0eS5yZXNvbHZlKHRoaXMuc3RyZWFtKTtjb25zdCByPVtdO2ZvcihsZXQgQT1zO0E8bjsrK0Epe2NvbnN0IGU9dGhpcy5fcmVxdWVzdHNCeUNodW5rLmdldChBKTtpZihlKXt0aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuZGVsZXRlKEEpO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0LmdldCh0KTtlLmhhcyhBKSYmZS5kZWxldGUoQSksZS5zaXplPjB8fHIucHVzaCh0KX19fWlmKCF0aGlzLmRpc2FibGVBdXRvRmV0Y2gmJjA9PT10aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuc2l6ZSl7bGV0IEE7aWYoMT09PXRoaXMuc3RyZWFtLm51bUNodW5rc0xvYWRlZCl7Y29uc3QgZT10aGlzLnN0cmVhbS5udW1DaHVua3MtMTt0aGlzLnN0cmVhbS5oYXNDaHVuayhlKXx8KEE9ZSl9ZWxzZSBBPXRoaXMuc3RyZWFtLm5leHRFbXB0eUNodW5rKG4pO051bWJlci5pc0ludGVnZXIoQSkmJnRoaXMuX3JlcXVlc3RDaHVua3MoW0FdKX1mb3IoY29uc3QgQSBvZiByKXtjb25zdCBlPXRoaXMuX3Byb21pc2VzQnlSZXF1ZXN0LmdldChBKTt0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC5kZWxldGUoQSksZS5yZXNvbHZlKCl9dGhpcy5tc2dIYW5kbGVyLnNlbmQoIkRvY1Byb2dyZXNzIix7bG9hZGVkOnRoaXMuc3RyZWFtLm51bUNodW5rc0xvYWRlZCp0aGlzLmNodW5rU2l6ZSx0b3RhbDp0aGlzLmxlbmd0aH0pfW9uRXJyb3IoQSl7dGhpcy5fbG9hZGVkU3RyZWFtQ2FwYWJpbGl0eS5yZWplY3QoQSl9Z2V0QmVnaW5DaHVuayhBKXtyZXR1cm4gTWF0aC5mbG9vcihBL3RoaXMuY2h1bmtTaXplKX1nZXRFbmRDaHVuayhBKXtyZXR1cm4gTWF0aC5mbG9vcigoQS0xKS90aGlzLmNodW5rU2l6ZSkrMX1hYm9ydChBKXt0aGlzLmFib3J0ZWQ9ITAsdGhpcy5wZGZOZXR3b3JrU3RyZWFtPy5jYW5jZWxBbGxSZXF1ZXN0cyhBKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC52YWx1ZXMoKSllLnJlamVjdChBKX19dCg0NTIwKSx0KDk0NzkpLHQoMjU3NyksdCg4ODcyKTtjbGFzcyBDZXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMubmFtZT1BLHRoaXMubnVtQ29tcHM9ZX1nZXRSZ2IoQSxlKXtjb25zdCB0PW5ldyBVaW50OENsYW1wZWRBcnJheSgzKTtyZXR1cm4gdGhpcy5nZXRSZ2JJdGVtKEEsZSx0LDApLHR9Z2V0UmdiSXRlbShBLGUsdCxpKXtNKCJTaG91bGQgbm90IGNhbGwgQ29sb3JTcGFjZS5nZXRSZ2JJdGVtIil9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe00oIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldFJnYkJ1ZmZlciIpfWdldE91dHB1dExlbmd0aChBLGUpe00oIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldE91dHB1dExlbmd0aCIpfWlzUGFzc3Rocm91Z2goQSl7cmV0dXJuITF9aXNEZWZhdWx0RGVjb2RlKEEsZSl7cmV0dXJuIENlLmlzRGVmYXVsdERlY29kZShBLHRoaXMubnVtQ29tcHMpfWZpbGxSZ2IoQSxlLHQsaSxhLHMsbixyLGcpe2NvbnN0IG89ZSp0O2xldCBJPW51bGw7Y29uc3QgYz0xPDxuLGg9dCE9PWF8fGUhPT1pO2lmKHRoaXMuaXNQYXNzdGhyb3VnaChuKSlJPXI7ZWxzZSBpZigxPT09dGhpcy5udW1Db21wcyYmbz5jJiYiRGV2aWNlR3JheSIhPT10aGlzLm5hbWUmJiJEZXZpY2VSR0IiIT09dGhpcy5uYW1lKXtjb25zdCBlPW48PTg/bmV3IFVpbnQ4QXJyYXkoYyk6bmV3IFVpbnQxNkFycmF5KGMpO2ZvcihsZXQgQT0wO0E8YztBKyspZVtBXT1BO2NvbnN0IHQ9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqYyk7aWYodGhpcy5nZXRSZ2JCdWZmZXIoZSwwLGMsdCwwLG4sMCksaCl7ST1uZXcgVWludDhBcnJheSgzKm8pO2xldCBBPTA7Zm9yKGxldCBlPTA7ZTxvOysrZSl7Y29uc3QgaT0zKnJbZV07SVtBKytdPXRbaV0sSVtBKytdPXRbaSsxXSxJW0ErK109dFtpKzJdfX1lbHNle2xldCBlPTA7Zm9yKGxldCBpPTA7aTxvOysraSl7Y29uc3QgYT0zKnJbaV07QVtlKytdPXRbYV0sQVtlKytdPXRbYSsxXSxBW2UrK109dFthKzJdLGUrPWd9fX1lbHNlIGg/KEk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqbyksdGhpcy5nZXRSZ2JCdWZmZXIociwwLG8sSSwwLG4sMCkpOnRoaXMuZ2V0UmdiQnVmZmVyKHIsMCxpKnMsQSwwLG4sZyk7aWYoSSlpZihoKSFmdW5jdGlvbihBLGUsdCxpLGEscyxuKXtuPTEhPT1uPzA6bjtjb25zdCByPXQvYSxnPWkvcztsZXQgbyxJPTA7Y29uc3QgYz1uZXcgVWludDE2QXJyYXkoYSksaD0zKnQ7Zm9yKGxldCBBPTA7QTxhO0ErKyljW0FdPTMqTWF0aC5mbG9vcihBKnIpO2ZvcihsZXQgdD0wO3Q8czt0Kyspe2NvbnN0IGk9TWF0aC5mbG9vcih0KmcpKmg7Zm9yKGxldCB0PTA7dDxhO3QrKylvPWkrY1t0XSxlW0krK109QVtvKytdLGVbSSsrXT1BW28rK10sZVtJKytdPUFbbysrXSxJKz1ufX0oSSxBLGUsdCxpLGEsZyk7ZWxzZXtsZXQgZT0wLHQ9MDtmb3IobGV0IGE9MCxuPWkqczthPG47YSsrKUFbZSsrXT1JW3QrK10sQVtlKytdPUlbdCsrXSxBW2UrK109SVt0KytdLGUrPWd9fWdldCB1c2VzWmVyb1RvT25lUmFuZ2UoKXtyZXR1cm4gSCh0aGlzLCJ1c2VzWmVyb1RvT25lUmFuZ2UiLCEwKX1zdGF0aWMgX2NhY2hlKEEsZSx0LGkpe2lmKCF0KXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5fY2FjaGUgLSBleHBlY3RlZCAibG9jYWxDb2xvclNwYWNlQ2FjaGUiIGFyZ3VtZW50LicpO2lmKCFpKXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5fY2FjaGUgLSBleHBlY3RlZCAicGFyc2VkQ29sb3JTcGFjZSIgYXJndW1lbnQuJyk7bGV0IGEscztBIGluc3RhbmNlb2YgRUEmJihzPUEsQT1lLmZldGNoKEEpKSxBIGluc3RhbmNlb2YgQ0EmJihhPUEubmFtZSksKGF8fHMpJiZ0LnNldChhLHMsaSl9c3RhdGljIGdldENhY2hlZChBLGUsdCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCdDb2xvclNwYWNlLmdldENhY2hlZCAtIGV4cGVjdGVkICJsb2NhbENvbG9yU3BhY2VDYWNoZSIgYXJndW1lbnQuJyk7aWYoQSBpbnN0YW5jZW9mIEVBKXtjb25zdCBpPXQuZ2V0QnlSZWYoQSk7aWYoaSlyZXR1cm4gaTt0cnl7QT1lLmZldGNoKEEpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBfX1pZihBIGluc3RhbmNlb2YgQ0Epe2NvbnN0IGU9dC5nZXRCeU5hbWUoQS5uYW1lKTtpZihlKXJldHVybiBlfXJldHVybiBudWxsfXN0YXRpYyBhc3luYyBwYXJzZUFzeW5jKHtjczpBLHhyZWY6ZSxyZXNvdXJjZXM6dD1udWxsLHBkZkZ1bmN0aW9uRmFjdG9yeTppLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmF9KXtjb25zdCBzPXRoaXMuX3BhcnNlKEEsZSx0LGkpO3JldHVybiB0aGlzLl9jYWNoZShBLGUsYSxzKSxzfXN0YXRpYyBwYXJzZSh7Y3M6QSx4cmVmOmUscmVzb3VyY2VzOnQ9bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6aSxsb2NhbENvbG9yU3BhY2VDYWNoZTphfSl7Y29uc3Qgcz10aGlzLmdldENhY2hlZChBLGUsYSk7aWYocylyZXR1cm4gcztjb25zdCBuPXRoaXMuX3BhcnNlKEEsZSx0LGkpO3JldHVybiB0aGlzLl9jYWNoZShBLGUsYSxuKSxufXN0YXRpYyBfcGFyc2UoQSxlLHQ9bnVsbCxpKXtpZigoQT1lLmZldGNoSWZSZWYoQSkpaW5zdGFuY2VvZiBDQSlzd2l0Y2goQS5uYW1lKXtjYXNlIkciOmNhc2UiRGV2aWNlR3JheSI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5ncmF5O2Nhc2UiUkdCIjpjYXNlIkRldmljZVJHQiI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5yZ2I7Y2FzZSJEZXZpY2VSR0JBIjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLnJnYmE7Y2FzZSJDTVlLIjpjYXNlIkRldmljZUNNWUsiOnJldHVybiB0aGlzLnNpbmdsZXRvbnMuY215aztjYXNlIlBhdHRlcm4iOnJldHVybiBuZXcgbGUobnVsbCk7ZGVmYXVsdDppZih0IGluc3RhbmNlb2YgUUEpe2NvbnN0IGE9dC5nZXQoIkNvbG9yU3BhY2UiKTtpZihhIGluc3RhbmNlb2YgUUEpe2NvbnN0IHM9YS5nZXQoQS5uYW1lKTtpZihzKXtpZihzIGluc3RhbmNlb2YgQ0EpcmV0dXJuIHRoaXMuX3BhcnNlKHMsZSx0LGkpO0E9czticmVha319fXJldHVybiBVKGBVbnJlY29nbml6ZWQgQ29sb3JTcGFjZTogJHtBLm5hbWV9YCksdGhpcy5zaW5nbGV0b25zLmdyYXl9aWYoQXJyYXkuaXNBcnJheShBKSl7Y29uc3QgYT1lLmZldGNoSWZSZWYoQVswXSkubmFtZTtsZXQgcyxuLHIsZyxvLEk7c3dpdGNoKGEpe2Nhc2UiRyI6Y2FzZSJEZXZpY2VHcmF5IjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLmdyYXk7Y2FzZSJSR0IiOmNhc2UiRGV2aWNlUkdCIjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLnJnYjtjYXNlIkNNWUsiOmNhc2UiRGV2aWNlQ01ZSyI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5jbXlrO2Nhc2UiQ2FsR3JheSI6cmV0dXJuIHM9ZS5mZXRjaElmUmVmKEFbMV0pLGc9cy5nZXRBcnJheSgiV2hpdGVQb2ludCIpLG89cy5nZXRBcnJheSgiQmxhY2tQb2ludCIpLEk9cy5nZXQoIkdhbW1hIiksbmV3IHBlKGcsbyxJKTtjYXNlIkNhbFJHQiI6cz1lLmZldGNoSWZSZWYoQVsxXSksZz1zLmdldEFycmF5KCJXaGl0ZVBvaW50Iiksbz1zLmdldEFycmF5KCJCbGFja1BvaW50IiksST1zLmdldEFycmF5KCJHYW1tYSIpO2NvbnN0IGM9cy5nZXRBcnJheSgiTWF0cml4Iik7cmV0dXJuIG5ldyBtZShnLG8sSSxjKTtjYXNlIklDQ0Jhc2VkIjpjb25zdCBoPWUuZmV0Y2hJZlJlZihBWzFdKS5kaWN0O249aC5nZXQoIk4iKTtjb25zdCBDPWguZ2V0KCJBbHRlcm5hdGUiKTtpZihDKXtjb25zdCBBPXRoaXMuX3BhcnNlKEMsZSx0LGkpO2lmKEEubnVtQ29tcHM9PT1uKXJldHVybiBBO1UoIklDQ0Jhc2VkIGNvbG9yIHNwYWNlOiBJZ25vcmluZyBpbmNvcnJlY3QgL0FsdGVybmF0ZSBlbnRyeS4iKX1pZigxPT09bilyZXR1cm4gdGhpcy5zaW5nbGV0b25zLmdyYXk7aWYoMz09PW4pcmV0dXJuIHRoaXMuc2luZ2xldG9ucy5yZ2I7aWYoND09PW4pcmV0dXJuIHRoaXMuc2luZ2xldG9ucy5jbXlrO2JyZWFrO2Nhc2UiUGF0dGVybiI6cmV0dXJuIHI9QVsxXXx8bnVsbCxyJiYocj10aGlzLl9wYXJzZShyLGUsdCxpKSksbmV3IGxlKHIpO2Nhc2UiSSI6Y2FzZSJJbmRleGVkIjpyPXRoaXMuX3BhcnNlKEFbMV0sZSx0LGkpO2NvbnN0IEI9ZS5mZXRjaElmUmVmKEFbMl0pKzEsbD1lLmZldGNoSWZSZWYoQVszXSk7cmV0dXJuIG5ldyBRZShyLEIsbCk7Y2FzZSJTZXBhcmF0aW9uIjpjYXNlIkRldmljZU4iOmNvbnN0IFE9ZS5mZXRjaElmUmVmKEFbMV0pO249QXJyYXkuaXNBcnJheShRKT9RLmxlbmd0aDoxLHI9dGhpcy5fcGFyc2UoQVsyXSxlLHQsaSk7Y29uc3QgRT1pLmNyZWF0ZShBWzNdKTtyZXR1cm4gbmV3IEJlKG4scixFKTtjYXNlIkxhYiI6cz1lLmZldGNoSWZSZWYoQVsxXSksZz1zLmdldEFycmF5KCJXaGl0ZVBvaW50Iiksbz1zLmdldEFycmF5KCJCbGFja1BvaW50Iik7Y29uc3QgdT1zLmdldEFycmF5KCJSYW5nZSIpO3JldHVybiBuZXcgeWUoZyxvLHUpO2RlZmF1bHQ6cmV0dXJuIFUoYFVuaW1wbGVtZW50ZWQgQ29sb3JTcGFjZSBvYmplY3Q6ICR7YX1gKSx0aGlzLnNpbmdsZXRvbnMuZ3JheX19cmV0dXJuIFUoYFVucmVjb2duaXplZCBDb2xvclNwYWNlIG9iamVjdDogJHtBfWApLHRoaXMuc2luZ2xldG9ucy5ncmF5fXN0YXRpYyBpc0RlZmF1bHREZWNvZGUoQSxlKXtpZighQXJyYXkuaXNBcnJheShBKSlyZXR1cm4hMDtpZigyKmUhPT1BLmxlbmd0aClyZXR1cm4gVSgiVGhlIGRlY29kZSBtYXAgaXMgbm90IHRoZSBjb3JyZWN0IGxlbmd0aCIpLCEwO2ZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrPTIpaWYoMCE9PUFbZV18fDEhPT1BW2UrMV0pcmV0dXJuITE7cmV0dXJuITB9c3RhdGljIGdldCBzaW5nbGV0b25zKCl7cmV0dXJuIEgodGhpcywic2luZ2xldG9ucyIse2dldCBncmF5KCl7cmV0dXJuIEgodGhpcywiZ3JheSIsbmV3IEVlKX0sZ2V0IHJnYigpe3JldHVybiBIKHRoaXMsInJnYiIsbmV3IHVlKX0sZ2V0IHJnYmEoKXtyZXR1cm4gSCh0aGlzLCJyZ2JhIixuZXcgZGUpfSxnZXQgY215aygpe3JldHVybiBIKHRoaXMsImNteWsiLG5ldyBmZSl9fSl9fWNsYXNzIEJlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKCJBbHRlcm5hdGUiLEEpLHRoaXMuYmFzZT1lLHRoaXMudGludEZuPXQsdGhpcy50bXBCdWY9bmV3IEZsb2F0MzJBcnJheShlLm51bUNvbXBzKX1nZXRSZ2JJdGVtKEEsZSx0LGkpe2NvbnN0IGE9dGhpcy50bXBCdWY7dGhpcy50aW50Rm4oQSxlLGEsMCksdGhpcy5iYXNlLmdldFJnYkl0ZW0oYSwwLHQsaSl9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9dGhpcy50aW50Rm4sZz10aGlzLmJhc2Usbz0xLygoMTw8cyktMSksST1nLm51bUNvbXBzLGM9Zy51c2VzWmVyb1RvT25lUmFuZ2UsaD0oZy5pc1Bhc3N0aHJvdWdoKDgpfHwhYykmJjA9PT1uO2xldCBDPWg/YTowO2NvbnN0IEI9aD9pOm5ldyBVaW50OENsYW1wZWRBcnJheShJKnQpLGw9dGhpcy5udW1Db21wcyxRPW5ldyBGbG9hdDMyQXJyYXkobCksRT1uZXcgRmxvYXQzMkFycmF5KEkpO2xldCB1LGQ7Zm9yKHU9MDt1PHQ7dSsrKXtmb3IoZD0wO2Q8bDtkKyspUVtkXT1BW2UrK10qbztpZihyKFEsMCxFLDApLGMpZm9yKGQ9MDtkPEk7ZCsrKUJbQysrXT0yNTUqRVtkXTtlbHNlIGcuZ2V0UmdiSXRlbShFLDAsQixDKSxDKz1JfWh8fGcuZ2V0UmdiQnVmZmVyKEIsMCx0LGksYSw4LG4pfWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiB0aGlzLmJhc2UuZ2V0T3V0cHV0TGVuZ3RoKEEqdGhpcy5iYXNlLm51bUNvbXBzL3RoaXMubnVtQ29tcHMsZSl9fWNsYXNzIGxlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoQSl7c3VwZXIoIlBhdHRlcm4iLG51bGwpLHRoaXMuYmFzZT1BfWlzRGVmYXVsdERlY29kZShBLGUpe00oIlNob3VsZCBub3QgY2FsbCBQYXR0ZXJuQ1MuaXNEZWZhdWx0RGVjb2RlIil9fWNsYXNzIFFlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKCJJbmRleGVkIiwxKSx0aGlzLmJhc2U9QSx0aGlzLmhpZ2hWYWw9ZTtjb25zdCBpPUEubnVtQ29tcHMqZTtpZih0aGlzLmxvb2t1cD1uZXcgVWludDhBcnJheShpKSx0IGluc3RhbmNlb2Ygd0Epe2NvbnN0IEE9dC5nZXRCeXRlcyhpKTt0aGlzLmxvb2t1cC5zZXQoQSl9ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFcoYEluZGV4ZWRDUyAtIHVucmVjb2duaXplZCBsb29rdXAgdGFibGU6ICR7dH1gKTtmb3IobGV0IEE9MDtBPGk7KytBKXRoaXMubG9va3VwW0FdPTI1NSZ0LmNoYXJDb2RlQXQoQSl9fWdldFJnYkl0ZW0oQSxlLHQsaSl7Y29uc3QgYT10aGlzLmJhc2UubnVtQ29tcHMscz1BW2VdKmE7dGhpcy5iYXNlLmdldFJnYkJ1ZmZlcih0aGlzLmxvb2t1cCxzLDEsdCxpLDgsMCl9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9dGhpcy5iYXNlLGc9ci5udW1Db21wcyxvPXIuZ2V0T3V0cHV0TGVuZ3RoKGcsbiksST10aGlzLmxvb2t1cDtmb3IobGV0IHM9MDtzPHQ7KytzKXtjb25zdCB0PUFbZSsrXSpnO3IuZ2V0UmdiQnVmZmVyKEksdCwxLGksYSw4LG4pLGErPW99fWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiB0aGlzLmJhc2UuZ2V0T3V0cHV0TGVuZ3RoKEEqdGhpcy5iYXNlLm51bUNvbXBzLGUpfWlzRGVmYXVsdERlY29kZShBLGUpe3JldHVybiFBcnJheS5pc0FycmF5KEEpfHwoMiE9PUEubGVuZ3RoPyhVKCJEZWNvZGUgbWFwIGxlbmd0aCBpcyBub3QgY29ycmVjdCIpLCEwKTohTnVtYmVyLmlzSW50ZWdlcihlKXx8ZTwxPyhVKCJCaXRzIHBlciBjb21wb25lbnQgaXMgbm90IGNvcnJlY3QiKSwhMCk6MD09PUFbMF0mJkFbMV09PT0oMTw8ZSktMSl9fWNsYXNzIEVlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlR3JheSIsMSl9Z2V0UmdiSXRlbShBLGUsdCxpKXtjb25zdCBhPTI1NSpBW2VdO3RbaV09dFtpKzFdPXRbaSsyXT1hfWdldFJnYkJ1ZmZlcihBLGUsdCxpLGEscyxuKXtjb25zdCByPTI1NS8oKDE8PHMpLTEpO2xldCBnPWUsbz1hO2ZvcihsZXQgZT0wO2U8dDsrK2Upe2NvbnN0IGU9cipBW2crK107aVtvKytdPWUsaVtvKytdPWUsaVtvKytdPWUsbys9bn19Z2V0T3V0cHV0TGVuZ3RoKEEsZSl7cmV0dXJuIEEqKDMrZSl9fWNsYXNzIHVlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlUkdCIiwzKX1nZXRSZ2JJdGVtKEEsZSx0LGkpe3RbaV09MjU1KkFbZV0sdFtpKzFdPTI1NSpBW2UrMV0sdFtpKzJdPTI1NSpBW2UrMl19Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2lmKDg9PT1zJiYwPT09bilyZXR1cm4gdm9pZCBpLnNldChBLnN1YmFycmF5KGUsZSszKnQpLGEpO2NvbnN0IHI9MjU1LygoMTw8cyktMSk7bGV0IGc9ZSxvPWE7Zm9yKGxldCBlPTA7ZTx0OysrZSlpW28rK109cipBW2crK10saVtvKytdPXIqQVtnKytdLGlbbysrXT1yKkFbZysrXSxvKz1ufWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiBBKigzK2UpLzN8MH1pc1Bhc3N0aHJvdWdoKEEpe3JldHVybiA4PT09QX19Y2xhc3MgZGUgZXh0ZW5kcyBDZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VSR0JBIiw0KX1nZXRPdXRwdXRMZW5ndGgoQSxlKXtyZXR1cm4gNCpBfWlzUGFzc3Rocm91Z2goQSl7cmV0dXJuIDg9PT1BfX1jbGFzcyBmZSBleHRlbmRzIENle2NvbnN0cnVjdG9yKCl7c3VwZXIoIkRldmljZUNNWUsiLDQpfSN0KEEsZSx0LGksYSl7Y29uc3Qgcz1BW2VdKnQsbj1BW2UrMV0qdCxyPUFbZSsyXSp0LGc9QVtlKzNdKnQ7aVthXT0yNTUrcyooLTQuMzg3MzMyMzg0NjA5OTg4KnMrNTQuNDg2MTUxOTQxODkxNzYqbisxOC44MjI5MDUwMjE2NTMwMipyKzIxMi4yNTY2MjQ1MTYzOTU4NSpnLTI4NS4yMzMxMDI2MTM3MDA0KStuKigxLjcxNDk3NjM0NzczNjIxMzQqbi01LjYwOTY3MzY5MDQwNDczMTUqcistMTcuODczODcwODYxNDE1NDQ0KmctNS40OTcwMDY0MjcxOTYzNjYpK3IqKC0yLjUyMTczNDAxMzE2ODMwMzMqci0yMS4yNDg5MjMzMzczNTMwNzMqZysxNy41MTE5MjcwODQxODEzKStnKigtMjEuODYxMjIxNDc0NjM2MDUqZy0xODkuNDgxODA4MzU5MjI3NDcpLGlbYSsxXT0yNTUrcyooOC44NDEwNDE0MjIwMzYxNDkqcys2MC4xMTgwMjcwNDU1OTczNjYqbis2Ljg3MTQyNTU5MjA0OTAwNypyKzMxLjE1OTEwMDEzMDA1NTkyMipnLTc5LjI5NzA4NDQ4MTY1NDgpK24qKC0xNS4zMTAzNjEzMDY5Njc4MTcqbisxNy41NzUyNTEyNjExMDk0ODIqcisxMzEuMzUyNTA5MTI0OTM5NzYqZy0xOTAuOTQ1MzMwMjU4ODk1MSkrciooNC40NDQzMzkxMDI4NTI3Mzkqcis5Ljg2MzI4NjE0OTM0MDUqZy0yNC44Njc0MTU4MjU1NTg3OCkrZyooLTIwLjczNzMyNTQ3MTE4MTAzNCpnLTE4Ny44MDQ1MzcwOTcxOTU3OCksaVthKzJdPTI1NStzKiguODg0MjUyMjQzMDAwMzI5NipzKzguMDc4Njc3NTAzMTEyOTI4Km4rMzAuODk5NzgzMDk3MDM3Mjkqci0uMjM4ODMyMzg2ODkxNzg5MzQqZy0xNC4xODM1NzY3OTk2NzMyODYpK24qKDEwLjQ5NTkzMjczNDMyMDcyKm4rNjMuMDIzNzg0OTQ3NTQwNTIqcis1MC42MDY5NTc2NTYzNjA3MzQqZy0xMTIuMjM4ODQyNTM3MTkyNDgpK3IqKC4wMzI5NjA0MTExNDg3MzIxNypyKzExNS42MDM4NDQ0OTY0NjY0MSpnLTE5My41ODIwOTM1Njg2MTUwNSkrZyooLTIyLjMzODE2ODA3MzA5ODg2KmctMTgwLjEyNjEzOTc0NzA4MzY3KX1nZXRSZ2JJdGVtKEEsZSx0LGkpe3RoaXMuI3QoQSxlLDEsdCxpKX1nZXRSZ2JCdWZmZXIoQSxlLHQsaSxhLHMsbil7Y29uc3Qgcj0xLygoMTw8cyktMSk7Zm9yKGxldCBzPTA7czx0O3MrKyl0aGlzLiN0KEEsZSxyLGksYSksZSs9NCxhKz0zK259Z2V0T3V0cHV0TGVuZ3RoKEEsZSl7cmV0dXJuIEEvNCooMytlKXwwfX1jbGFzcyBwZSBleHRlbmRzIENle2NvbnN0cnVjdG9yKEEsZSx0KXtpZihzdXBlcigiQ2FsR3JheSIsMSksIUEpdGhyb3cgbmV3IFcoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBDYWxHcmF5Iik7aWYoW3RoaXMuWFcsdGhpcy5ZVyx0aGlzLlpXXT1BLFt0aGlzLlhCLHRoaXMuWUIsdGhpcy5aQl09ZXx8WzAsMCwwXSx0aGlzLkc9dHx8MSx0aGlzLlhXPDB8fHRoaXMuWlc8MHx8MSE9PXRoaXMuWVcpdGhyb3cgbmV3IFcoYEludmFsaWQgV2hpdGVQb2ludCBjb21wb25lbnRzIGZvciAke3RoaXMubmFtZX0sIG5vIGZhbGxiYWNrIGF2YWlsYWJsZWApOyh0aGlzLlhCPDB8fHRoaXMuWUI8MHx8dGhpcy5aQjwwKSYmKHgoYEludmFsaWQgQmxhY2tQb2ludCBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKSx0aGlzLlhCPXRoaXMuWUI9dGhpcy5aQj0wKSwwPT09dGhpcy5YQiYmMD09PXRoaXMuWUImJjA9PT10aGlzLlpCfHxVKGAke3RoaXMubmFtZX0sIEJsYWNrUG9pbnQ6IFhCOiAke3RoaXMuWEJ9LCBZQjogJHt0aGlzLllCfSwgWkI6ICR7dGhpcy5aQn0sIG9ubHkgZGVmYXVsdCB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5gKSx0aGlzLkc8MSYmKHgoYEludmFsaWQgR2FtbWE6ICR7dGhpcy5HfSBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKSx0aGlzLkc9MSl9I3QoQSxlLHQsaSxhKXtjb25zdCBzPShBW2VdKmEpKip0aGlzLkcsbj10aGlzLllXKnMscj1NYXRoLm1heCgyOTUuOCpuKiouMzMzMzMzMzMzMzMzMzMzMy00MC44LDApO3RbaV09cix0W2krMV09cix0W2krMl09cn1nZXRSZ2JJdGVtKEEsZSx0LGkpe3RoaXMuI3QoQSxlLHQsaSwxKX1nZXRSZ2JCdWZmZXIoQSxlLHQsaSxhLHMsbil7Y29uc3Qgcj0xLygoMTw8cyktMSk7Zm9yKGxldCBzPTA7czx0Oysrcyl0aGlzLiN0KEEsZSxpLGEsciksZSs9MSxhKz0zK259Z2V0T3V0cHV0TGVuZ3RoKEEsZSl7cmV0dXJuIEEqKDMrZSl9fWNsYXNzIG1lIGV4dGVuZHMgQ2V7c3RhdGljI2k9bmV3IEZsb2F0MzJBcnJheShbLjg5NTEsLjI2NjQsLS4xNjE0LC0uNzUwMiwxLjcxMzUsLjAzNjcsLjAzODksLS4wNjg1LDEuMDI5Nl0pO3N0YXRpYyNhPW5ldyBGbG9hdDMyQXJyYXkoWy45ODY5OTI5LC0uMTQ3MDU0MywuMTU5OTYyNywuNDMyMzA1MywuNTE4MzYwMywuMDQ5MjkxMiwtLjAwODUyODcsLjA0MDA0MjgsLjk2ODQ4NjddKTtzdGF0aWMjcz1uZXcgRmxvYXQzMkFycmF5KFszLjI0MDQ1NDIsLTEuNTM3MTM4NSwtLjQ5ODUzMTQsLS45NjkyNjYsMS44NzYwMTA4LC4wNDE1NTYsLjA1NTY0MzQsLS4yMDQwMjU5LDEuMDU3MjI1Ml0pO3N0YXRpYyNuPW5ldyBGbG9hdDMyQXJyYXkoWzEsMSwxXSk7c3RhdGljI3I9bmV3IEZsb2F0MzJBcnJheSgzKTtzdGF0aWMjZz1uZXcgRmxvYXQzMkFycmF5KDMpO3N0YXRpYyNvPW5ldyBGbG9hdDMyQXJyYXkoMyk7c3RhdGljI0k9KDI0LzExNikqKjMvODtjb25zdHJ1Y3RvcihBLGUsdCxpKXtpZihzdXBlcigiQ2FsUkdCIiwzKSwhQSl0aHJvdyBuZXcgVygiV2hpdGVQb2ludCBtaXNzaW5nIC0gcmVxdWlyZWQgZm9yIGNvbG9yIHNwYWNlIENhbFJHQiIpO2NvbnN0W2EscyxuXT10aGlzLndoaXRlUG9pbnQ9QSxbcixnLG9dPXRoaXMuYmxhY2tQb2ludD1lfHxuZXcgRmxvYXQzMkFycmF5KDMpO2lmKFt0aGlzLkdSLHRoaXMuR0csdGhpcy5HQl09dHx8bmV3IEZsb2F0MzJBcnJheShbMSwxLDFdKSxbdGhpcy5NWEEsdGhpcy5NWUEsdGhpcy5NWkEsdGhpcy5NWEIsdGhpcy5NWUIsdGhpcy5NWkIsdGhpcy5NWEMsdGhpcy5NWUMsdGhpcy5NWkNdPWl8fG5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMSwwLDAsMCwxXSksYTwwfHxuPDB8fDEhPT1zKXRocm93IG5ldyBXKGBJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cyBmb3IgJHt0aGlzLm5hbWV9LCBubyBmYWxsYmFjayBhdmFpbGFibGVgKTsocjwwfHxnPDB8fG88MCkmJih4KGBJbnZhbGlkIEJsYWNrUG9pbnQgZm9yICR7dGhpcy5uYW1lfSBbJHtyfSwgJHtnfSwgJHtvfV0sIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0LmApLHRoaXMuYmxhY2tQb2ludD1uZXcgRmxvYXQzMkFycmF5KDMpKSwodGhpcy5HUjwwfHx0aGlzLkdHPDB8fHRoaXMuR0I8MCkmJih4KGBJbnZhbGlkIEdhbW1hIFske3RoaXMuR1J9LCAke3RoaXMuR0d9LCAke3RoaXMuR0J9XSBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKSx0aGlzLkdSPXRoaXMuR0c9dGhpcy5HQj0xKX0jYyhBLGUsdCl7dFswXT1BWzBdKmVbMF0rQVsxXSplWzFdK0FbMl0qZVsyXSx0WzFdPUFbM10qZVswXStBWzRdKmVbMV0rQVs1XSplWzJdLHRbMl09QVs2XSplWzBdK0FbN10qZVsxXStBWzhdKmVbMl19I2goQSxlLHQpe3RbMF09MSplWzBdL0FbMF0sdFsxXT0xKmVbMV0vQVsxXSx0WzJdPTEqZVsyXS9BWzJdfSNDKEEsZSx0KXt0WzBdPS45NTA0NyplWzBdL0FbMF0sdFsxXT0xKmVbMV0vQVsxXSx0WzJdPTEuMDg4ODMqZVsyXS9BWzJdfSNCKEEpe3JldHVybiBBPD0uMDAzMTMwOD90aGlzLiNsKDAsMSwxMi45MipBKTpBPj0uOTk1NTQ1MjU/MTp0aGlzLiNsKDAsMSwxLjA1NSpBKiooMS8yLjQpLS4wNTUpfSNsKEEsZSx0KXtyZXR1cm4gTWF0aC5tYXgoQSxNYXRoLm1pbihlLHQpKX0jUShBKXtyZXR1cm4gQTwwPy10aGlzLiNRKC1BKTpBPjg/KChBKzE2KS8xMTYpKiozOkEqbWUuI0l9I0UoQSxlLHQpe2lmKDA9PT1BWzBdJiYwPT09QVsxXSYmMD09PUFbMl0pcmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdm9pZCh0WzJdPWVbMl0pO2NvbnN0IGk9dGhpcy4jUSgwKSxhPSgxLWkpLygxLXRoaXMuI1EoQVswXSkpLHM9MS1hLG49KDEtaSkvKDEtdGhpcy4jUShBWzFdKSkscj0xLW4sZz0oMS1pKS8oMS10aGlzLiNRKEFbMl0pKSxvPTEtZzt0WzBdPWVbMF0qYStzLHRbMV09ZVsxXSpuK3IsdFsyXT1lWzJdKmcrb30jdShBLGUsdCl7aWYoMT09PUFbMF0mJjE9PT1BWzJdKXJldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHZvaWQodFsyXT1lWzJdKTtjb25zdCBpPXQ7dGhpcy4jYyhtZS4jaSxlLGkpO2NvbnN0IGE9bWUuI3I7dGhpcy4jaChBLGksYSksdGhpcy4jYyhtZS4jYSxhLHQpfSNkKEEsZSx0KXtjb25zdCBpPXQ7dGhpcy4jYyhtZS4jaSxlLGkpO2NvbnN0IGE9bWUuI3I7dGhpcy4jQyhBLGksYSksdGhpcy4jYyhtZS4jYSxhLHQpfSN0KEEsZSx0LGksYSl7Y29uc3Qgcz10aGlzLiNsKDAsMSxBW2VdKmEpLG49dGhpcy4jbCgwLDEsQVtlKzFdKmEpLHI9dGhpcy4jbCgwLDEsQVtlKzJdKmEpLGc9MT09PXM/MTpzKip0aGlzLkdSLG89MT09PW4/MTpuKip0aGlzLkdHLEk9MT09PXI/MTpyKip0aGlzLkdCLGM9dGhpcy5NWEEqZyt0aGlzLk1YQipvK3RoaXMuTVhDKkksaD10aGlzLk1ZQSpnK3RoaXMuTVlCKm8rdGhpcy5NWUMqSSxDPXRoaXMuTVpBKmcrdGhpcy5NWkIqbyt0aGlzLk1aQypJLEI9bWUuI2c7QlswXT1jLEJbMV09aCxCWzJdPUM7Y29uc3QgbD1tZS4jbzt0aGlzLiN1KHRoaXMud2hpdGVQb2ludCxCLGwpO2NvbnN0IFE9bWUuI2c7dGhpcy4jRSh0aGlzLmJsYWNrUG9pbnQsbCxRKTtjb25zdCBFPW1lLiNvO3RoaXMuI2QobWUuI24sUSxFKTtjb25zdCB1PW1lLiNnO3RoaXMuI2MobWUuI3MsRSx1KSx0W2ldPTI1NSp0aGlzLiNCKHVbMF0pLHRbaSsxXT0yNTUqdGhpcy4jQih1WzFdKSx0W2krMl09MjU1KnRoaXMuI0IodVsyXSl9Z2V0UmdiSXRlbShBLGUsdCxpKXt0aGlzLiN0KEEsZSx0LGksMSl9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9MS8oKDE8PHMpLTEpO2ZvcihsZXQgcz0wO3M8dDsrK3MpdGhpcy4jdChBLGUsaSxhLHIpLGUrPTMsYSs9MytufWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiBBKigzK2UpLzN8MH19Y2xhc3MgeWUgZXh0ZW5kcyBDZXtjb25zdHJ1Y3RvcihBLGUsdCl7aWYoc3VwZXIoIkxhYiIsMyksIUEpdGhyb3cgbmV3IFcoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBMYWIiKTtpZihbdGhpcy5YVyx0aGlzLllXLHRoaXMuWlddPUEsW3RoaXMuYW1pbix0aGlzLmFtYXgsdGhpcy5ibWluLHRoaXMuYm1heF09dHx8Wy0xMDAsMTAwLC0xMDAsMTAwXSxbdGhpcy5YQix0aGlzLllCLHRoaXMuWkJdPWV8fFswLDAsMF0sdGhpcy5YVzwwfHx0aGlzLlpXPDB8fDEhPT10aGlzLllXKXRocm93IG5ldyBXKCJJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cywgbm8gZmFsbGJhY2sgYXZhaWxhYmxlIik7KHRoaXMuWEI8MHx8dGhpcy5ZQjwwfHx0aGlzLlpCPDApJiYoeCgiSW52YWxpZCBCbGFja1BvaW50LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdCIpLHRoaXMuWEI9dGhpcy5ZQj10aGlzLlpCPTApLCh0aGlzLmFtaW4+dGhpcy5hbWF4fHx0aGlzLmJtaW4+dGhpcy5ibWF4KSYmKHgoIkludmFsaWQgUmFuZ2UsIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0cyIpLHRoaXMuYW1pbj0tMTAwLHRoaXMuYW1heD0xMDAsdGhpcy5ibWluPS0xMDAsdGhpcy5ibWF4PTEwMCl9I2YoQSl7cmV0dXJuIEE+PTYvMjk/QSoqMzoxMDgvODQxKihBLTQvMjkpfSNwKEEsZSx0LGkpe3JldHVybiB0K0EqKGktdCkvZX0jdChBLGUsdCxpLGEpe2xldCBzPUFbZV0sbj1BW2UrMV0scj1BW2UrMl07ITEhPT10JiYocz10aGlzLiNwKHMsdCwwLDEwMCksbj10aGlzLiNwKG4sdCx0aGlzLmFtaW4sdGhpcy5hbWF4KSxyPXRoaXMuI3Aocix0LHRoaXMuYm1pbix0aGlzLmJtYXgpKSxuPnRoaXMuYW1heD9uPXRoaXMuYW1heDpuPHRoaXMuYW1pbiYmKG49dGhpcy5hbWluKSxyPnRoaXMuYm1heD9yPXRoaXMuYm1heDpyPHRoaXMuYm1pbiYmKHI9dGhpcy5ibWluKTtjb25zdCBnPShzKzE2KS8xMTYsbz1nK24vNTAwLEk9Zy1yLzIwMCxjPXRoaXMuWFcqdGhpcy4jZihvKSxoPXRoaXMuWVcqdGhpcy4jZihnKSxDPXRoaXMuWlcqdGhpcy4jZihJKTtsZXQgQixsLFE7dGhpcy5aVzwxPyhCPTMuMTMzOSpjKy0xLjYxNypoKy0uNDkwNipDLGw9LS45Nzg1KmMrMS45MTYqaCsuMDMzMypDLFE9LjA3MipjKy0uMjI5KmgrMS40MDU3KkMpOihCPTMuMjQwNipjKy0xLjUzNzIqaCstLjQ5ODYqQyxsPS0uOTY4OSpjKzEuODc1OCpoKy4wNDE1KkMsUT0uMDU1NypjKy0uMjA0KmgrMS4wNTcqQyksaVthXT0yNTUqTWF0aC5zcXJ0KEIpLGlbYSsxXT0yNTUqTWF0aC5zcXJ0KGwpLGlbYSsyXT0yNTUqTWF0aC5zcXJ0KFEpfWdldFJnYkl0ZW0oQSxlLHQsaSl7dGhpcy4jdChBLGUsITEsdCxpKX1nZXRSZ2JCdWZmZXIoQSxlLHQsaSxhLHMsbil7Y29uc3Qgcj0oMTw8cyktMTtmb3IobGV0IHM9MDtzPHQ7cysrKXRoaXMuI3QoQSxlLHIsaSxhKSxlKz0zLGErPTMrbn1nZXRPdXRwdXRMZW5ndGgoQSxlKXtyZXR1cm4gQSooMytlKS8zfDB9aXNEZWZhdWx0RGVjb2RlKEEsZSl7cmV0dXJuITB9Z2V0IHVzZXNaZXJvVG9PbmVSYW5nZSgpe3JldHVybiBIKHRoaXMsInVzZXNaZXJvVG9PbmVSYW5nZSIsITEpfX1mdW5jdGlvbiB3ZShBLGUpe2xldCB0PTA7Zm9yKGxldCBpPTA7aTw9ZTtpKyspdD10PDw4fEFbaV07cmV0dXJuIHQ+Pj4wfWZ1bmN0aW9uIERlKEEsZSl7cmV0dXJuIDE9PT1lP1N0cmluZy5mcm9tQ2hhckNvZGUoQVswXSxBWzFdKTozPT09ZT9TdHJpbmcuZnJvbUNoYXJDb2RlKEFbMF0sQVsxXSxBWzJdLEFbM10pOlN0cmluZy5mcm9tQ2hhckNvZGUoLi4uQS5zdWJhcnJheSgwLGUrMSkpfWZ1bmN0aW9uIGJlKEEsZSx0KXtsZXQgaT0wO2ZvcihsZXQgYT10O2E+PTA7YS0tKWkrPUFbYV0rZVthXSxBW2FdPTI1NSZpLGk+Pj04fWZ1bmN0aW9uIGtlKEEsZSl7bGV0IHQ9MTtmb3IobGV0IGk9ZTtpPj0wJiZ0PjA7aS0tKXQrPUFbaV0sQVtpXT0yNTUmdCx0Pj49OH1jb25zdCBGZT0xNjtjbGFzcyBTZXtjb25zdHJ1Y3RvcihBKXt0aGlzLmJ1ZmZlcj1BLHRoaXMucG9zPTAsdGhpcy5lbmQ9QS5sZW5ndGgsdGhpcy50bXBCdWY9bmV3IFVpbnQ4QXJyYXkoMTkpfXJlYWRCeXRlKCl7cmV0dXJuIHRoaXMucG9zPj10aGlzLmVuZD8tMTp0aGlzLmJ1ZmZlclt0aGlzLnBvcysrXX1yZWFkTnVtYmVyKCl7bGV0IEEsZT0wO2Rve2NvbnN0IHQ9dGhpcy5yZWFkQnl0ZSgpO2lmKHQ8MCl0aHJvdyBuZXcgVygidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTtBPSEoMTI4JnQpLGU9ZTw8N3wxMjcmdH13aGlsZSghQSk7cmV0dXJuIGV9cmVhZFNpZ25lZCgpe2NvbnN0IEE9dGhpcy5yZWFkTnVtYmVyKCk7cmV0dXJuIDEmQT9+KEE+Pj4xKTpBPj4+MX1yZWFkSGV4KEEsZSl7QS5zZXQodGhpcy5idWZmZXIuc3ViYXJyYXkodGhpcy5wb3MsdGhpcy5wb3MrZSsxKSksdGhpcy5wb3MrPWUrMX1yZWFkSGV4TnVtYmVyKEEsZSl7bGV0IHQ7Y29uc3QgaT10aGlzLnRtcEJ1ZjtsZXQgYT0wO2Rve2NvbnN0IEE9dGhpcy5yZWFkQnl0ZSgpO2lmKEE8MCl0aHJvdyBuZXcgVygidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTt0PSEoMTI4JkEpLGlbYSsrXT0xMjcmQX13aGlsZSghdCk7bGV0IHM9ZSxuPTAscj0wO2Zvcig7cz49MDspe2Zvcig7cjw4JiZpLmxlbmd0aD4wOylufD1pWy0tYV08PHIscis9NztBW3NdPTI1NSZuLHMtLSxuPj49OCxyLT04fX1yZWFkSGV4U2lnbmVkKEEsZSl7dGhpcy5yZWFkSGV4TnVtYmVyKEEsZSk7Y29uc3QgdD0xJkFbZV0/MjU1OjA7bGV0IGk9MDtmb3IobGV0IGE9MDthPD1lO2ErKylpPSgxJmkpPDw4fEFbYV0sQVthXT1pPj4xXnR9cmVhZFN0cmluZygpe2NvbnN0IEE9dGhpcy5yZWFkTnVtYmVyKCksZT1uZXcgQXJyYXkoQSk7Zm9yKGxldCB0PTA7dDxBO3QrKyllW3RdPXRoaXMucmVhZE51bWJlcigpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpfX1jbGFzcyBSZXthc3luYyBwcm9jZXNzKEEsZSx0KXtjb25zdCBpPW5ldyBTZShBKSxhPWkucmVhZEJ5dGUoKTtlLnZlcnRpY2FsPSEhKDEmYSk7bGV0IHM9bnVsbDtjb25zdCBuPW5ldyBVaW50OEFycmF5KEZlKSxyPW5ldyBVaW50OEFycmF5KEZlKSxnPW5ldyBVaW50OEFycmF5KEZlKSxvPW5ldyBVaW50OEFycmF5KEZlKSxJPW5ldyBVaW50OEFycmF5KEZlKTtsZXQgYyxoO2Zvcig7KGg9aS5yZWFkQnl0ZSgpKT49MDspe2NvbnN0IEE9aD4+NTtpZig3PT09QSl7c3dpdGNoKDMxJmgpe2Nhc2UgMDppLnJlYWRTdHJpbmcoKTticmVhaztjYXNlIDE6cz1pLnJlYWRTdHJpbmcoKX1jb250aW51ZX1jb25zdCB0PSEhKDE2JmgpLGE9MTUmaDtpZihhKzE+RmUpdGhyb3cgbmV3IEVycm9yKCJCaW5hcnlDTWFwUmVhZGVyLnByb2Nlc3M6IEludmFsaWQgZGF0YVNpemUuIik7Y29uc3QgQz0xLEI9aS5yZWFkTnVtYmVyKCk7c3dpdGNoKEEpe2Nhc2UgMDppLnJlYWRIZXgobixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksZS5hZGRDb2Rlc3BhY2VSYW5nZShhKzEsd2UobixhKSx3ZShyLGEpKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKHIsYSksaS5yZWFkSGV4TnVtYmVyKG4sYSksYmUobixyLGEpLGkucmVhZEhleE51bWJlcihyLGEpLGJlKHIsbixhKSxlLmFkZENvZGVzcGFjZVJhbmdlKGErMSx3ZShuLGEpLHdlKHIsYSkpO2JyZWFrO2Nhc2UgMTppLnJlYWRIZXgobixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksaS5yZWFkTnVtYmVyKCk7Zm9yKGxldCBBPTE7QTxCO0ErKylrZShyLGEpLGkucmVhZEhleE51bWJlcihuLGEpLGJlKG4scixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksaS5yZWFkTnVtYmVyKCk7YnJlYWs7Y2FzZSAyOmkucmVhZEhleChnLGEpLGM9aS5yZWFkTnVtYmVyKCksZS5tYXBPbmUod2UoZyxhKSxjKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKGcsYSksdHx8KGkucmVhZEhleE51bWJlcihJLGEpLGJlKGcsSSxhKSksYz1pLnJlYWRTaWduZWQoKSsoYysxKSxlLm1hcE9uZSh3ZShnLGEpLGMpO2JyZWFrO2Nhc2UgMzppLnJlYWRIZXgobixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksYz1pLnJlYWROdW1iZXIoKSxlLm1hcENpZFJhbmdlKHdlKG4sYSksd2UocixhKSxjKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKHIsYSksdD9uLnNldChyKTooaS5yZWFkSGV4TnVtYmVyKG4sYSksYmUobixyLGEpKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksYz1pLnJlYWROdW1iZXIoKSxlLm1hcENpZFJhbmdlKHdlKG4sYSksd2UocixhKSxjKTticmVhaztjYXNlIDQ6aS5yZWFkSGV4KGcsQyksaS5yZWFkSGV4KG8sYSksZS5tYXBPbmUod2UoZyxDKSxEZShvLGEpKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKGcsQyksdHx8KGkucmVhZEhleE51bWJlcihJLEMpLGJlKGcsSSxDKSksa2UobyxhKSxpLnJlYWRIZXhTaWduZWQoSSxhKSxiZShvLEksYSksZS5tYXBPbmUod2UoZyxDKSxEZShvLGEpKTticmVhaztjYXNlIDU6aS5yZWFkSGV4KG4sQyksaS5yZWFkSGV4TnVtYmVyKHIsQyksYmUocixuLEMpLGkucmVhZEhleChvLGEpLGUubWFwQmZSYW5nZSh3ZShuLEMpLHdlKHIsQyksRGUobyxhKSk7Zm9yKGxldCBBPTE7QTxCO0ErKylrZShyLEMpLHQ/bi5zZXQocik6KGkucmVhZEhleE51bWJlcihuLEMpLGJlKG4scixDKSksaS5yZWFkSGV4TnVtYmVyKHIsQyksYmUocixuLEMpLGkucmVhZEhleChvLGEpLGUubWFwQmZSYW5nZSh3ZShuLEMpLHdlKHIsQyksRGUobyxhKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEJpbmFyeUNNYXBSZWFkZXIucHJvY2VzcyAtIHVua25vd24gdHlwZTogJHtBfWApfX1yZXR1cm4gcz90KHMpOmV9fWNvbnN0IEdlPW5ldyBVaW50OEFycmF5KDApO2NsYXNzIE5lIGV4dGVuZHMgd0F7Y29uc3RydWN0b3IoQSl7aWYoc3VwZXIoKSx0aGlzLl9yYXdNaW5CdWZmZXJMZW5ndGg9QXx8MCx0aGlzLnBvcz0wLHRoaXMuYnVmZmVyTGVuZ3RoPTAsdGhpcy5lb2Y9ITEsdGhpcy5idWZmZXI9R2UsdGhpcy5taW5CdWZmZXJMZW5ndGg9NTEyLEEpZm9yKDt0aGlzLm1pbkJ1ZmZlckxlbmd0aDxBOyl0aGlzLm1pbkJ1ZmZlckxlbmd0aCo9Mn1nZXQgaXNFbXB0eSgpe2Zvcig7IXRoaXMuZW9mJiYwPT09dGhpcy5idWZmZXJMZW5ndGg7KXRoaXMucmVhZEJsb2NrKCk7cmV0dXJuIDA9PT10aGlzLmJ1ZmZlckxlbmd0aH1lbnN1cmVCdWZmZXIoQSl7Y29uc3QgZT10aGlzLmJ1ZmZlcjtpZihBPD1lLmJ5dGVMZW5ndGgpcmV0dXJuIGU7bGV0IHQ9dGhpcy5taW5CdWZmZXJMZW5ndGg7Zm9yKDt0PEE7KXQqPTI7Y29uc3QgaT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gaS5zZXQoZSksdGhpcy5idWZmZXI9aX1nZXRCeXRlKCl7Y29uc3QgQT10aGlzLnBvcztmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD1BOyl7aWYodGhpcy5lb2YpcmV0dXJuLTE7dGhpcy5yZWFkQmxvY2soKX1yZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MrK119Z2V0Qnl0ZXMoQSxlPW51bGwpe2NvbnN0IHQ9dGhpcy5wb3M7bGV0IGk7aWYoQSl7Zm9yKHRoaXMuZW5zdXJlQnVmZmVyKHQrQSksaT10K0E7IXRoaXMuZW9mJiZ0aGlzLmJ1ZmZlckxlbmd0aDxpOyl0aGlzLnJlYWRCbG9jayhlKTtjb25zdCBhPXRoaXMuYnVmZmVyTGVuZ3RoO2k+YSYmKGk9YSl9ZWxzZXtmb3IoOyF0aGlzLmVvZjspdGhpcy5yZWFkQmxvY2soZSk7aT10aGlzLmJ1ZmZlckxlbmd0aH1yZXR1cm4gdGhpcy5wb3M9aSx0aGlzLmJ1ZmZlci5zdWJhcnJheSh0LGkpfWFzeW5jIGdldEltYWdlRGF0YShBLGU9bnVsbCl7aWYoIXRoaXMuY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIpcmV0dXJuIHRoaXMuZ2V0Qnl0ZXMoQSxlKTtjb25zdCB0PWF3YWl0IHRoaXMuc3RyZWFtLmFzeW5jR2V0Qnl0ZXMoKTtyZXR1cm4gdGhpcy5kZWNvZGVJbWFnZSh0LGUpfXJlc2V0KCl7dGhpcy5wb3M9MH1tYWtlU3ViU3RyZWFtKEEsZSx0PW51bGwpe2lmKHZvaWQgMD09PWUpZm9yKDshdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKCk7ZWxzZXtjb25zdCB0PUErZTtmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD10JiYhdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKCl9cmV0dXJuIG5ldyBnZSh0aGlzLmJ1ZmZlcixBLGUsdCl9Z2V0QmFzZVN0cmVhbXMoKXtyZXR1cm4gdGhpcy5zdHI/dGhpcy5zdHIuZ2V0QmFzZVN0cmVhbXMoKTpudWxsfX1jbGFzcyB4ZSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZT1udWxsKXtsZXQgdD0wO2Zvcihjb25zdCBlIG9mIEEpdCs9ZSBpbnN0YW5jZW9mIE5lP2UuX3Jhd01pbkJ1ZmZlckxlbmd0aDplLmxlbmd0aDtzdXBlcih0KSx0aGlzLnN0cmVhbXM9QSx0aGlzLl9vbkVycm9yPWV9cmVhZEJsb2NrKCl7Y29uc3QgQT10aGlzLnN0cmVhbXM7aWYoMD09PUEubGVuZ3RoKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTtjb25zdCBlPUEuc2hpZnQoKTtsZXQgdDt0cnl7dD1lLmdldEJ5dGVzKCl9Y2F0Y2goQSl7aWYodGhpcy5fb25FcnJvcilyZXR1cm4gdm9pZCB0aGlzLl9vbkVycm9yKEEsZS5kaWN0Py5vYmpJZCk7dGhyb3cgQX1jb25zdCBpPXRoaXMuYnVmZmVyTGVuZ3RoLGE9aSt0Lmxlbmd0aDt0aGlzLmVuc3VyZUJ1ZmZlcihhKS5zZXQodCxpKSx0aGlzLmJ1ZmZlckxlbmd0aD1hfWdldEJhc2VTdHJlYW1zKCl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLnN0cmVhbXMpe2NvbnN0IHQ9ZS5nZXRCYXNlU3RyZWFtcygpO3QmJkEucHVzaCguLi50KX1yZXR1cm4gQS5sZW5ndGg+MD9BOm51bGx9fWNsYXNzIFVlIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlKXtlJiYoZSo9LjgpLHN1cGVyKGUpLHRoaXMuc3RyPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLmlucHV0PW5ldyBVaW50OEFycmF5KDUpfXJlYWRCbG9jaygpe2NvbnN0IEE9dGhpcy5zdHI7bGV0IGU9QS5nZXRCeXRlKCk7Zm9yKDtZQShlKTspZT1BLmdldEJ5dGUoKTtpZigtMT09PWV8fDEyNj09PWUpcmV0dXJuIHZvaWQodGhpcy5lb2Y9ITApO2NvbnN0IHQ9dGhpcy5idWZmZXJMZW5ndGg7bGV0IGksYTtpZigxMjI9PT1lKXtmb3IoaT10aGlzLmVuc3VyZUJ1ZmZlcih0KzQpLGE9MDthPDQ7KythKWlbdCthXT0wO3RoaXMuYnVmZmVyTGVuZ3RoKz00fWVsc2V7Y29uc3Qgcz10aGlzLmlucHV0O2ZvcihzWzBdPWUsYT0xO2E8NTsrK2Epe2ZvcihlPUEuZ2V0Qnl0ZSgpO1lBKGUpOyllPUEuZ2V0Qnl0ZSgpO2lmKHNbYV09ZSwtMT09PWV8fDEyNj09PWUpYnJlYWt9aWYoaT10aGlzLmVuc3VyZUJ1ZmZlcih0K2EtMSksdGhpcy5idWZmZXJMZW5ndGgrPWEtMSxhPDUpe2Zvcig7YTw1OysrYSlzW2FdPTExNzt0aGlzLmVvZj0hMH1sZXQgbj0wO2ZvcihhPTA7YTw1OysrYSluPTg1Km4rKHNbYV0tMzMpO2ZvcihhPTM7YT49MDstLWEpaVt0K2FdPTI1NSZuLG4+Pj04fX19Y2xhc3MgTWUgZXh0ZW5kcyBOZXtjb25zdHJ1Y3RvcihBLGUpe2UmJihlKj0uNSksc3VwZXIoZSksdGhpcy5zdHI9QSx0aGlzLmRpY3Q9QS5kaWN0LHRoaXMuZmlyc3REaWdpdD0tMX1yZWFkQmxvY2soKXtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKDhlMyk7aWYoIUEubGVuZ3RoKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTtjb25zdCBlPUEubGVuZ3RoKzE+PjEsdD10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCtlKTtsZXQgaT10aGlzLmJ1ZmZlckxlbmd0aCxhPXRoaXMuZmlyc3REaWdpdDtmb3IoY29uc3QgZSBvZiBBKXtsZXQgQTtpZihlPj00OCYmZTw9NTcpQT0xNSZlO2Vsc2V7aWYoIShlPj02NSYmZTw9NzB8fGU+PTk3JiZlPD0xMDIpKXtpZig2Mj09PWUpe3RoaXMuZW9mPSEwO2JyZWFrfWNvbnRpbnVlfUE9OSsoMTUmZSl9YTwwP2E9QToodFtpKytdPWE8PDR8QSxhPS0xKX1hPj0wJiZ0aGlzLmVvZiYmKHRbaSsrXT1hPDw0LGE9LTEpLHRoaXMuZmlyc3REaWdpdD1hLHRoaXMuYnVmZmVyTGVuZ3RoPWl9fWNvbnN0IExlPS0xLEplPVtbLTEsLTFdLFstMSwtMV0sWzcsOF0sWzcsN10sWzYsNl0sWzYsNl0sWzYsNV0sWzYsNV0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl1dLEhlPVtbLTEsLTFdLFsxMiwtMl0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzEyLDE5ODRdLFsxMiwyMDQ4XSxbMTIsMjExMl0sWzEyLDIxNzZdLFsxMiwyMjQwXSxbMTIsMjMwNF0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMiwyMzY4XSxbMTIsMjQzMl0sWzEyLDI0OTZdLFsxMiwyNTYwXV0sWWU9W1stMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzgsMjldLFs4LDI5XSxbOCwzMF0sWzgsMzBdLFs4LDQ1XSxbOCw0NV0sWzgsNDZdLFs4LDQ2XSxbNywyMl0sWzcsMjJdLFs3LDIyXSxbNywyMl0sWzcsMjNdLFs3LDIzXSxbNywyM10sWzcsMjNdLFs4LDQ3XSxbOCw0N10sWzgsNDhdLFs4LDQ4XSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs3LDIwXSxbNywyMF0sWzcsMjBdLFs3LDIwXSxbOCwzM10sWzgsMzNdLFs4LDM0XSxbOCwzNF0sWzgsMzVdLFs4LDM1XSxbOCwzNl0sWzgsMzZdLFs4LDM3XSxbOCwzN10sWzgsMzhdLFs4LDM4XSxbNywxOV0sWzcsMTldLFs3LDE5XSxbNywxOV0sWzgsMzFdLFs4LDMxXSxbOCwzMl0sWzgsMzJdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzgsNTNdLFs4LDUzXSxbOCw1NF0sWzgsNTRdLFs3LDI2XSxbNywyNl0sWzcsMjZdLFs3LDI2XSxbOCwzOV0sWzgsMzldLFs4LDQwXSxbOCw0MF0sWzgsNDFdLFs4LDQxXSxbOCw0Ml0sWzgsNDJdLFs4LDQzXSxbOCw0M10sWzgsNDRdLFs4LDQ0XSxbNywyMV0sWzcsMjFdLFs3LDIxXSxbNywyMV0sWzcsMjhdLFs3LDI4XSxbNywyOF0sWzcsMjhdLFs4LDYxXSxbOCw2MV0sWzgsNjJdLFs4LDYyXSxbOCw2M10sWzgsNjNdLFs4LDBdLFs4LDBdLFs4LDMyMF0sWzgsMzIwXSxbOCwzODRdLFs4LDM4NF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNywyN10sWzcsMjddLFs3LDI3XSxbNywyN10sWzgsNTldLFs4LDU5XSxbOCw2MF0sWzgsNjBdLFs5LDE0NzJdLFs5LDE1MzZdLFs5LDE2MDBdLFs5LDE3MjhdLFs3LDE4XSxbNywxOF0sWzcsMThdLFs3LDE4XSxbNywyNF0sWzcsMjRdLFs3LDI0XSxbNywyNF0sWzgsNDldLFs4LDQ5XSxbOCw1MF0sWzgsNTBdLFs4LDUxXSxbOCw1MV0sWzgsNTJdLFs4LDUyXSxbNywyNV0sWzcsMjVdLFs3LDI1XSxbNywyNV0sWzgsNTVdLFs4LDU1XSxbOCw1Nl0sWzgsNTZdLFs4LDU3XSxbOCw1N10sWzgsNThdLFs4LDU4XSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzgsNDQ4XSxbOCw0NDhdLFs4LDUxMl0sWzgsNTEyXSxbOSw3MDRdLFs5LDc2OF0sWzgsNjQwXSxbOCw2NDBdLFs4LDU3Nl0sWzgsNTc2XSxbOSw4MzJdLFs5LDg5Nl0sWzksOTYwXSxbOSwxMDI0XSxbOSwxMDg4XSxbOSwxMTUyXSxbOSwxMjE2XSxbOSwxMjgwXSxbOSwxMzQ0XSxbOSwxNDA4XSxbNywyNTZdLFs3LDI1Nl0sWzcsMjU2XSxbNywyNTZdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN11dLHZlPVtbLTEsLTFdLFstMSwtMV0sWzEyLC0yXSxbMTIsLTJdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzExLDE3OTJdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzExLDE3OTJdLFsxMiwxOTg0XSxbMTIsMTk4NF0sWzEyLDIwNDhdLFsxMiwyMDQ4XSxbMTIsMjExMl0sWzEyLDIxMTJdLFsxMiwyMTc2XSxbMTIsMjE3Nl0sWzEyLDIyNDBdLFsxMiwyMjQwXSxbMTIsMjMwNF0sWzEyLDIzMDRdLFsxMSwxODU2XSxbMTEsMTg1Nl0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMSwxOTIwXSxbMTEsMTkyMF0sWzEyLDIzNjhdLFsxMiwyMzY4XSxbMTIsMjQzMl0sWzEyLDI0MzJdLFsxMiwyNDk2XSxbMTIsMjQ5Nl0sWzEyLDI1NjBdLFsxMiwyNTYwXSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEyLDUyXSxbMTIsNTJdLFsxMyw2NDBdLFsxMyw3MDRdLFsxMyw3NjhdLFsxMyw4MzJdLFsxMiw1NV0sWzEyLDU1XSxbMTIsNTZdLFsxMiw1Nl0sWzEzLDEyODBdLFsxMywxMzQ0XSxbMTMsMTQwOF0sWzEzLDE0NzJdLFsxMiw1OV0sWzEyLDU5XSxbMTIsNjBdLFsxMiw2MF0sWzEzLDE1MzZdLFsxMywxNjAwXSxbMTEsMjRdLFsxMSwyNF0sWzExLDI0XSxbMTEsMjRdLFsxMSwyNV0sWzExLDI1XSxbMTEsMjVdLFsxMSwyNV0sWzEzLDE2NjRdLFsxMywxNzI4XSxbMTIsMzIwXSxbMTIsMzIwXSxbMTIsMzg0XSxbMTIsMzg0XSxbMTIsNDQ4XSxbMTIsNDQ4XSxbMTMsNTEyXSxbMTMsNTc2XSxbMTIsNTNdLFsxMiw1M10sWzEyLDU0XSxbMTIsNTRdLFsxMyw4OTZdLFsxMyw5NjBdLFsxMywxMDI0XSxbMTMsMTA4OF0sWzEzLDExNTJdLFsxMywxMjE2XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF1dLEtlPVtbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzExLDIzXSxbMTEsMjNdLFsxMiw1MF0sWzEyLDUxXSxbMTIsNDRdLFsxMiw0NV0sWzEyLDQ2XSxbMTIsNDddLFsxMiw1N10sWzEyLDU4XSxbMTIsNjFdLFsxMiwyNTZdLFsxMCwxNl0sWzEwLDE2XSxbMTAsMTZdLFsxMCwxNl0sWzEwLDE3XSxbMTAsMTddLFsxMCwxN10sWzEwLDE3XSxbMTIsNDhdLFsxMiw0OV0sWzEyLDYyXSxbMTIsNjNdLFsxMiwzMF0sWzEyLDMxXSxbMTIsMzJdLFsxMiwzM10sWzEyLDQwXSxbMTIsNDFdLFsxMSwyMl0sWzExLDIyXSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzEyLDEyOF0sWzEyLDE5Ml0sWzEyLDI2XSxbMTIsMjddLFsxMiwyOF0sWzEyLDI5XSxbMTEsMTldLFsxMSwxOV0sWzExLDIwXSxbMTEsMjBdLFsxMiwzNF0sWzEyLDM1XSxbMTIsMzZdLFsxMiwzN10sWzEyLDM4XSxbMTIsMzldLFsxMSwyMV0sWzExLDIxXSxbMTIsNDJdLFsxMiw0M10sWzEwLDBdLFsxMCwwXSxbMTAsMF0sWzEwLDBdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl1dLHFlPVtbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFs2LDldLFs2LDhdLFs1LDddLFs1LDddLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdXTtjbGFzcyBUZXtjb25zdHJ1Y3RvcihBLGU9e30pe2lmKCFBfHwiZnVuY3Rpb24iIT10eXBlb2YgQS5uZXh0KXRocm93IG5ldyBFcnJvcignQ0NJVFRGYXhEZWNvZGVyIC0gaW52YWxpZCAic291cmNlIiBwYXJhbWV0ZXIuJyk7bGV0IHQ7Zm9yKHRoaXMuc291cmNlPUEsdGhpcy5lb2Y9ITEsdGhpcy5lbmNvZGluZz1lLkt8fDAsdGhpcy5lb2xpbmU9ZS5FbmRPZkxpbmV8fCExLHRoaXMuYnl0ZUFsaWduPWUuRW5jb2RlZEJ5dGVBbGlnbnx8ITEsdGhpcy5jb2x1bW5zPWUuQ29sdW1uc3x8MTcyOCx0aGlzLnJvd3M9ZS5Sb3dzfHwwLHRoaXMuZW9ibG9jaz1lLkVuZE9mQmxvY2s/PyEwLHRoaXMuYmxhY2s9ZS5CbGFja0lzMXx8ITEsdGhpcy5jb2RpbmdMaW5lPW5ldyBVaW50MzJBcnJheSh0aGlzLmNvbHVtbnMrMSksdGhpcy5yZWZMaW5lPW5ldyBVaW50MzJBcnJheSh0aGlzLmNvbHVtbnMrMiksdGhpcy5jb2RpbmdMaW5lWzBdPXRoaXMuY29sdW1ucyx0aGlzLmNvZGluZ1Bvcz0wLHRoaXMucm93PTAsdGhpcy5uZXh0TGluZTJEPXRoaXMuZW5jb2Rpbmc8MCx0aGlzLmlucHV0Qml0cz0wLHRoaXMuaW5wdXRCdWY9MCx0aGlzLm91dHB1dEJpdHM9MCx0aGlzLnJvd3NEb25lPSExOzA9PT0odD10aGlzLl9sb29rQml0cygxMikpOyl0aGlzLl9lYXRCaXRzKDEpOzE9PT10JiZ0aGlzLl9lYXRCaXRzKDEyKSx0aGlzLmVuY29kaW5nPjAmJih0aGlzLm5leHRMaW5lMkQ9IXRoaXMuX2xvb2tCaXRzKDEpLHRoaXMuX2VhdEJpdHMoMSkpfXJlYWROZXh0Q2hhcigpe2lmKHRoaXMuZW9mKXJldHVybi0xO2NvbnN0IEE9dGhpcy5yZWZMaW5lLGU9dGhpcy5jb2RpbmdMaW5lLHQ9dGhpcy5jb2x1bW5zO2xldCBpLGEscyxuLHI7aWYoMD09PXRoaXMub3V0cHV0Qml0cyl7aWYodGhpcy5yb3dzRG9uZSYmKHRoaXMuZW9mPSEwKSx0aGlzLmVvZilyZXR1cm4tMTtsZXQgcyxyLGc7aWYodGhpcy5lcnI9ITEsdGhpcy5uZXh0TGluZTJEKXtmb3Iobj0wO2Vbbl08dDsrK24pQVtuXT1lW25dO2ZvcihBW24rK109dCxBW25dPXQsZVswXT0wLHRoaXMuY29kaW5nUG9zPTAsaT0wLGE9MDtlW3RoaXMuY29kaW5nUG9zXTx0Oylzd2l0Y2gocz10aGlzLl9nZXRUd29EaW1Db2RlKCkscyl7Y2FzZSAwOnRoaXMuX2FkZFBpeGVscyhBW2krMV0sYSksQVtpKzFdPHQmJihpKz0yKTticmVhaztjYXNlIDE6aWYocz1yPTAsYSl7ZG97cys9Zz10aGlzLl9nZXRCbGFja0NvZGUoKX13aGlsZShnPj02NCk7ZG97cis9Zz10aGlzLl9nZXRXaGl0ZUNvZGUoKX13aGlsZShnPj02NCl9ZWxzZXtkb3tzKz1nPXRoaXMuX2dldFdoaXRlQ29kZSgpfXdoaWxlKGc+PTY0KTtkb3tyKz1nPXRoaXMuX2dldEJsYWNrQ29kZSgpfXdoaWxlKGc+PTY0KX1mb3IodGhpcy5fYWRkUGl4ZWxzKGVbdGhpcy5jb2RpbmdQb3NdK3MsYSksZVt0aGlzLmNvZGluZ1Bvc108dCYmdGhpcy5fYWRkUGl4ZWxzKGVbdGhpcy5jb2RpbmdQb3NdK3IsMV5hKTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgNzppZih0aGlzLl9hZGRQaXhlbHMoQVtpXSszLGEpLGFePTEsZVt0aGlzLmNvZGluZ1Bvc108dClmb3IoKytpO0FbaV08PWVbdGhpcy5jb2RpbmdQb3NdJiZBW2ldPHQ7KWkrPTI7YnJlYWs7Y2FzZSA1OmlmKHRoaXMuX2FkZFBpeGVscyhBW2ldKzIsYSksYV49MSxlW3RoaXMuY29kaW5nUG9zXTx0KWZvcigrK2k7QVtpXTw9ZVt0aGlzLmNvZGluZ1Bvc10mJkFbaV08dDspaSs9MjticmVhaztjYXNlIDM6aWYodGhpcy5fYWRkUGl4ZWxzKEFbaV0rMSxhKSxhXj0xLGVbdGhpcy5jb2RpbmdQb3NdPHQpZm9yKCsraTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgMjppZih0aGlzLl9hZGRQaXhlbHMoQVtpXSxhKSxhXj0xLGVbdGhpcy5jb2RpbmdQb3NdPHQpZm9yKCsraTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgODppZih0aGlzLl9hZGRQaXhlbHNOZWcoQVtpXS0zLGEpLGFePTEsZVt0aGlzLmNvZGluZ1Bvc108dClmb3IoaT4wPy0taTorK2k7QVtpXTw9ZVt0aGlzLmNvZGluZ1Bvc10mJkFbaV08dDspaSs9MjticmVhaztjYXNlIDY6aWYodGhpcy5fYWRkUGl4ZWxzTmVnKEFbaV0tMixhKSxhXj0xLGVbdGhpcy5jb2RpbmdQb3NdPHQpZm9yKGk+MD8tLWk6KytpO0FbaV08PWVbdGhpcy5jb2RpbmdQb3NdJiZBW2ldPHQ7KWkrPTI7YnJlYWs7Y2FzZSA0OmlmKHRoaXMuX2FkZFBpeGVsc05lZyhBW2ldLTEsYSksYV49MSxlW3RoaXMuY29kaW5nUG9zXTx0KWZvcihpPjA/LS1pOisraTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgTGU6dGhpcy5fYWRkUGl4ZWxzKHQsMCksdGhpcy5lb2Y9ITA7YnJlYWs7ZGVmYXVsdDp4KCJiYWQgMmQgY29kZSIpLHRoaXMuX2FkZFBpeGVscyh0LDApLHRoaXMuZXJyPSEwfX1lbHNlIGZvcihlWzBdPTAsdGhpcy5jb2RpbmdQb3M9MCxhPTA7ZVt0aGlzLmNvZGluZ1Bvc108dDspe2lmKHM9MCxhKWRve3MrPWc9dGhpcy5fZ2V0QmxhY2tDb2RlKCl9d2hpbGUoZz49NjQpO2Vsc2UgZG97cys9Zz10aGlzLl9nZXRXaGl0ZUNvZGUoKX13aGlsZShnPj02NCk7dGhpcy5fYWRkUGl4ZWxzKGVbdGhpcy5jb2RpbmdQb3NdK3MsYSksYV49MX1sZXQgbz0hMTtpZih0aGlzLmJ5dGVBbGlnbiYmKHRoaXMuaW5wdXRCaXRzJj0tOCksdGhpcy5lb2Jsb2NrfHx0aGlzLnJvdyE9PXRoaXMucm93cy0xKXtpZihzPXRoaXMuX2xvb2tCaXRzKDEyKSx0aGlzLmVvbGluZSlmb3IoO3MhPT1MZSYmMSE9PXM7KXRoaXMuX2VhdEJpdHMoMSkscz10aGlzLl9sb29rQml0cygxMik7ZWxzZSBmb3IoOzA9PT1zOyl0aGlzLl9lYXRCaXRzKDEpLHM9dGhpcy5fbG9va0JpdHMoMTIpOzE9PT1zPyh0aGlzLl9lYXRCaXRzKDEyKSxvPSEwKTpzPT09TGUmJih0aGlzLmVvZj0hMCl9ZWxzZSB0aGlzLnJvd3NEb25lPSEwO2lmKCF0aGlzLmVvZiYmdGhpcy5lbmNvZGluZz4wJiYhdGhpcy5yb3dzRG9uZSYmKHRoaXMubmV4dExpbmUyRD0hdGhpcy5fbG9va0JpdHMoMSksdGhpcy5fZWF0Qml0cygxKSksdGhpcy5lb2Jsb2NrJiZvJiZ0aGlzLmJ5dGVBbGlnbil7aWYocz10aGlzLl9sb29rQml0cygxMiksMT09PXMpe2lmKHRoaXMuX2VhdEJpdHMoMTIpLHRoaXMuZW5jb2Rpbmc+MCYmKHRoaXMuX2xvb2tCaXRzKDEpLHRoaXMuX2VhdEJpdHMoMSkpLHRoaXMuZW5jb2Rpbmc+PTApZm9yKG49MDtuPDQ7KytuKXM9dGhpcy5fbG9va0JpdHMoMTIpLDEhPT1zJiZ4KCJiYWQgcnRjIGNvZGU6ICIrcyksdGhpcy5fZWF0Qml0cygxMiksdGhpcy5lbmNvZGluZz4wJiYodGhpcy5fbG9va0JpdHMoMSksdGhpcy5fZWF0Qml0cygxKSk7dGhpcy5lb2Y9ITB9fWVsc2UgaWYodGhpcy5lcnImJnRoaXMuZW9saW5lKXtmb3IoOzspe2lmKHM9dGhpcy5fbG9va0JpdHMoMTMpLHM9PT1MZSlyZXR1cm4gdGhpcy5lb2Y9ITAsLTE7aWYocz4+MT09MSlicmVhazt0aGlzLl9lYXRCaXRzKDEpfXRoaXMuX2VhdEJpdHMoMTIpLHRoaXMuZW5jb2Rpbmc+MCYmKHRoaXMuX2VhdEJpdHMoMSksdGhpcy5uZXh0TGluZTJEPSEoMSZzKSl9dGhpcy5vdXRwdXRCaXRzPWVbMF0+MD9lW3RoaXMuY29kaW5nUG9zPTBdOmVbdGhpcy5jb2RpbmdQb3M9MV0sdGhpcy5yb3crK31pZih0aGlzLm91dHB1dEJpdHM+PTgpcj0xJnRoaXMuY29kaW5nUG9zPzA6MjU1LHRoaXMub3V0cHV0Qml0cy09OCwwPT09dGhpcy5vdXRwdXRCaXRzJiZlW3RoaXMuY29kaW5nUG9zXTx0JiYodGhpcy5jb2RpbmdQb3MrKyx0aGlzLm91dHB1dEJpdHM9ZVt0aGlzLmNvZGluZ1Bvc10tZVt0aGlzLmNvZGluZ1Bvcy0xXSk7ZWxzZXtzPTgscj0wO2Rve2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5vdXRwdXRCaXRzKXRocm93IG5ldyBXKCdJbnZhbGlkIC9DQ0lUVEZheERlY29kZSBkYXRhLCAib3V0cHV0Qml0cyIgbXVzdCBiZSBhIG51bWJlci4nKTt0aGlzLm91dHB1dEJpdHM+cz8ocjw8PXMsMSZ0aGlzLmNvZGluZ1Bvc3x8KHJ8PTI1NT4+OC1zKSx0aGlzLm91dHB1dEJpdHMtPXMscz0wKToocjw8PXRoaXMub3V0cHV0Qml0cywxJnRoaXMuY29kaW5nUG9zfHwocnw9MjU1Pj44LXRoaXMub3V0cHV0Qml0cykscy09dGhpcy5vdXRwdXRCaXRzLHRoaXMub3V0cHV0Qml0cz0wLGVbdGhpcy5jb2RpbmdQb3NdPHQ/KHRoaXMuY29kaW5nUG9zKyssdGhpcy5vdXRwdXRCaXRzPWVbdGhpcy5jb2RpbmdQb3NdLWVbdGhpcy5jb2RpbmdQb3MtMV0pOnM+MCYmKHI8PD1zLHM9MCkpfXdoaWxlKHMpfXJldHVybiB0aGlzLmJsYWNrJiYocl49MjU1KSxyfV9hZGRQaXhlbHMoQSxlKXtjb25zdCB0PXRoaXMuY29kaW5nTGluZTtsZXQgaT10aGlzLmNvZGluZ1BvcztBPnRbaV0mJihBPnRoaXMuY29sdW1ucyYmKHgoInJvdyBpcyB3cm9uZyBsZW5ndGgiKSx0aGlzLmVycj0hMCxBPXRoaXMuY29sdW1ucyksMSZpXmUmJisraSx0W2ldPUEpLHRoaXMuY29kaW5nUG9zPWl9X2FkZFBpeGVsc05lZyhBLGUpe2NvbnN0IHQ9dGhpcy5jb2RpbmdMaW5lO2xldCBpPXRoaXMuY29kaW5nUG9zO2lmKEE+dFtpXSlBPnRoaXMuY29sdW1ucyYmKHgoInJvdyBpcyB3cm9uZyBsZW5ndGgiKSx0aGlzLmVycj0hMCxBPXRoaXMuY29sdW1ucyksMSZpXmUmJisraSx0W2ldPUE7ZWxzZSBpZihBPHRbaV0pe2ZvcihBPDAmJih4KCJpbnZhbGlkIGNvZGUiKSx0aGlzLmVycj0hMCxBPTApO2k+MCYmQTx0W2ktMV07KS0taTt0W2ldPUF9dGhpcy5jb2RpbmdQb3M9aX1fZmluZFRhYmxlQ29kZShBLGUsdCxpKXtjb25zdCBhPWl8fDA7Zm9yKGxldCBpPUE7aTw9ZTsrK2kpe2xldCBBPXRoaXMuX2xvb2tCaXRzKGkpO2lmKEE9PT1MZSlyZXR1cm5bITAsMSwhMV07aWYoaTxlJiYoQTw8PWUtaSksIWF8fEE+PWEpe2NvbnN0IGU9dFtBLWFdO2lmKGVbMF09PT1pKXJldHVybiB0aGlzLl9lYXRCaXRzKGkpLFshMCxlWzFdLCEwXX19cmV0dXJuWyExLDAsITFdfV9nZXRUd29EaW1Db2RlKCl7bGV0IEEsZT0wO2lmKHRoaXMuZW9ibG9jayl7aWYoZT10aGlzLl9sb29rQml0cyg3KSxBPUplW2VdLEE/LlswXT4wKXJldHVybiB0aGlzLl9lYXRCaXRzKEFbMF0pLEFbMV19ZWxzZXtjb25zdCBBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMSw3LEplKTtpZihBWzBdJiZBWzJdKXJldHVybiBBWzFdfXJldHVybiB4KCJCYWQgdHdvIGRpbSBjb2RlIiksTGV9X2dldFdoaXRlQ29kZSgpe2xldCBBLGU9MDtpZih0aGlzLmVvYmxvY2spe2lmKGU9dGhpcy5fbG9va0JpdHMoMTIpLGU9PT1MZSlyZXR1cm4gMTtpZihBPWU+PjU9PTA/SGVbZV06WWVbZT4+M10sQVswXT4wKXJldHVybiB0aGlzLl9lYXRCaXRzKEFbMF0pLEFbMV19ZWxzZXtsZXQgQT10aGlzLl9maW5kVGFibGVDb2RlKDEsOSxZZSk7aWYoQVswXSlyZXR1cm4gQVsxXTtpZihBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMTEsMTIsSGUpLEFbMF0pcmV0dXJuIEFbMV19cmV0dXJuIHgoImJhZCB3aGl0ZSBjb2RlIiksdGhpcy5fZWF0Qml0cygxKSwxfV9nZXRCbGFja0NvZGUoKXtsZXQgQSxlO2lmKHRoaXMuZW9ibG9jayl7aWYoQT10aGlzLl9sb29rQml0cygxMyksQT09PUxlKXJldHVybiAxO2lmKGU9QT4+Nz09MD92ZVtBXTpBPj45PT0wJiZBPj43IT0wP0tlWyhBPj4xKS02NF06cWVbQT4+N10sZVswXT4wKXJldHVybiB0aGlzLl9lYXRCaXRzKGVbMF0pLGVbMV19ZWxzZXtsZXQgQT10aGlzLl9maW5kVGFibGVDb2RlKDIsNixxZSk7aWYoQVswXSlyZXR1cm4gQVsxXTtpZihBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoNywxMixLZSw2NCksQVswXSlyZXR1cm4gQVsxXTtpZihBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMTAsMTMsdmUpLEFbMF0pcmV0dXJuIEFbMV19cmV0dXJuIHgoImJhZCBibGFjayBjb2RlIiksdGhpcy5fZWF0Qml0cygxKSwxfV9sb29rQml0cyhBKXtsZXQgZTtmb3IoO3RoaXMuaW5wdXRCaXRzPEE7KXtpZigtMT09PShlPXRoaXMuc291cmNlLm5leHQoKSkpcmV0dXJuIDA9PT10aGlzLmlucHV0Qml0cz9MZTp0aGlzLmlucHV0QnVmPDxBLXRoaXMuaW5wdXRCaXRzJjY1NTM1Pj4xNi1BO3RoaXMuaW5wdXRCdWY9dGhpcy5pbnB1dEJ1Zjw8OHxlLHRoaXMuaW5wdXRCaXRzKz04fXJldHVybiB0aGlzLmlucHV0QnVmPj50aGlzLmlucHV0Qml0cy1BJjY1NTM1Pj4xNi1BfV9lYXRCaXRzKEEpeyh0aGlzLmlucHV0Qml0cy09QSk8MCYmKHRoaXMuaW5wdXRCaXRzPTApfX1jbGFzcyBQZSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihlKSx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3QsdCBpbnN0YW5jZW9mIFFBfHwodD1RQS5lbXB0eSk7Y29uc3QgaT17bmV4dDooKT0+QS5nZXRCeXRlKCl9O3RoaXMuY2NpdHRGYXhEZWNvZGVyPW5ldyBUZShpLHtLOnQuZ2V0KCJLIiksRW5kT2ZMaW5lOnQuZ2V0KCJFbmRPZkxpbmUiKSxFbmNvZGVkQnl0ZUFsaWduOnQuZ2V0KCJFbmNvZGVkQnl0ZUFsaWduIiksQ29sdW1uczp0LmdldCgiQ29sdW1ucyIpLFJvd3M6dC5nZXQoIlJvd3MiKSxFbmRPZkJsb2NrOnQuZ2V0KCJFbmRPZkJsb2NrIiksQmxhY2tJczE6dC5nZXQoIkJsYWNrSXMxIil9KX1yZWFkQmxvY2soKXtmb3IoOyF0aGlzLmVvZjspe2NvbnN0IEE9dGhpcy5jY2l0dEZheERlY29kZXIucmVhZE5leHRDaGFyKCk7aWYoLTE9PT1BKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTt0aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCsxKSx0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXT1BfX19Y29uc3QgV2U9bmV3IEludDMyQXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxPZT1uZXcgSW50MzJBcnJheShbMyw0LDUsNiw3LDgsOSwxMCw2NTU0Nyw2NTU0OSw2NTU1MSw2NTU1MywxMzEwOTEsMTMxMDk1LDEzMTA5OSwxMzExMDMsMTk2NjQzLDE5NjY1MSwxOTY2NTksMTk2NjY3LDI2MjIxMSwyNjIyMjcsMjYyMjQzLDI2MjI1OSwzMjc4MTEsMzI3ODQzLDMyNzg3NSwzMjc5MDcsMjU4LDI1OCwyNThdKSxaZT1uZXcgSW50MzJBcnJheShbMSwyLDMsNCw2NTU0MSw2NTU0MywxMzEwODEsMTMxMDg1LDE5NjYyNSwxOTY2MzMsMjYyMTc3LDI2MjE5MywzMjc3NDUsMzI3Nzc3LDM5MzM0NSwzOTM0MDksNDU5MDA5LDQ1OTEzNyw1MjQ4MDEsNTI1MDU3LDU5MDg0OSw1OTEzNjEsNjU3NDA5LDY1ODQzMyw3MjQ5OTMsNzI3MDQxLDc5NDYyNSw3OTg3MjEsODY4MzUzLDg3NjU0NV0pLGplPVtuZXcgSW50MzJBcnJheShbNDU5MDA4LDUyNDM2OCw1MjQzMDQsNTI0NTY4LDQ1OTAyNCw1MjQ0MDAsNTI0MzM2LDU5MDAxNiw0NTkwMTYsNTI0Mzg0LDUyNDMyMCw1ODk5ODQsNTI0Mjg4LDUyNDQxNiw1MjQzNTIsNTkwMDQ4LDQ1OTAxMiw1MjQzNzYsNTI0MzEyLDU4OTk2OCw0NTkwMjgsNTI0NDA4LDUyNDM0NCw1OTAwMzIsNDU5MDIwLDUyNDM5Miw1MjQzMjgsNTllNCw1MjQyOTYsNTI0NDI0LDUyNDM2MCw1OTAwNjQsNDU5MDEwLDUyNDM3Miw1MjQzMDgsNTI0NTcyLDQ1OTAyNiw1MjQ0MDQsNTI0MzQwLDU5MDAyNCw0NTkwMTgsNTI0Mzg4LDUyNDMyNCw1ODk5OTIsNTI0MjkyLDUyNDQyMCw1MjQzNTYsNTkwMDU2LDQ1OTAxNCw1MjQzODAsNTI0MzE2LDU4OTk3Niw0NTkwMzAsNTI0NDEyLDUyNDM0OCw1OTAwNDAsNDU5MDIyLDUyNDM5Niw1MjQzMzIsNTkwMDA4LDUyNDMwMCw1MjQ0MjgsNTI0MzY0LDU5MDA3Miw0NTkwMDksNTI0MzcwLDUyNDMwNiw1MjQ1NzAsNDU5MDI1LDUyNDQwMiw1MjQzMzgsNTkwMDIwLDQ1OTAxNyw1MjQzODYsNTI0MzIyLDU4OTk4OCw1MjQyOTAsNTI0NDE4LDUyNDM1NCw1OTAwNTIsNDU5MDEzLDUyNDM3OCw1MjQzMTQsNTg5OTcyLDQ1OTAyOSw1MjQ0MTAsNTI0MzQ2LDU5MDAzNiw0NTkwMjEsNTI0Mzk0LDUyNDMzMCw1OTAwMDQsNTI0Mjk4LDUyNDQyNiw1MjQzNjIsNTkwMDY4LDQ1OTAxMSw1MjQzNzQsNTI0MzEwLDUyNDU3NCw0NTkwMjcsNTI0NDA2LDUyNDM0Miw1OTAwMjgsNDU5MDE5LDUyNDM5MCw1MjQzMjYsNTg5OTk2LDUyNDI5NCw1MjQ0MjIsNTI0MzU4LDU5MDA2MCw0NTkwMTUsNTI0MzgyLDUyNDMxOCw1ODk5ODAsNDU5MDMxLDUyNDQxNCw1MjQzNTAsNTkwMDQ0LDQ1OTAyMyw1MjQzOTgsNTI0MzM0LDU5MDAxMiw1MjQzMDIsNTI0NDMwLDUyNDM2Niw1OTAwNzYsNDU5MDA4LDUyNDM2OSw1MjQzMDUsNTI0NTY5LDQ1OTAyNCw1MjQ0MDEsNTI0MzM3LDU5MDAxOCw0NTkwMTYsNTI0Mzg1LDUyNDMyMSw1ODk5ODYsNTI0Mjg5LDUyNDQxNyw1MjQzNTMsNTkwMDUwLDQ1OTAxMiw1MjQzNzcsNTI0MzEzLDU4OTk3MCw0NTkwMjgsNTI0NDA5LDUyNDM0NSw1OTAwMzQsNDU5MDIwLDUyNDM5Myw1MjQzMjksNTkwMDAyLDUyNDI5Nyw1MjQ0MjUsNTI0MzYxLDU5MDA2Niw0NTkwMTAsNTI0MzczLDUyNDMwOSw1MjQ1NzMsNDU5MDI2LDUyNDQwNSw1MjQzNDEsNTkwMDI2LDQ1OTAxOCw1MjQzODksNTI0MzI1LDU4OTk5NCw1MjQyOTMsNTI0NDIxLDUyNDM1Nyw1OTAwNTgsNDU5MDE0LDUyNDM4MSw1MjQzMTcsNTg5OTc4LDQ1OTAzMCw1MjQ0MTMsNTI0MzQ5LDU5MDA0Miw0NTkwMjIsNTI0Mzk3LDUyNDMzMyw1OTAwMTAsNTI0MzAxLDUyNDQyOSw1MjQzNjUsNTkwMDc0LDQ1OTAwOSw1MjQzNzEsNTI0MzA3LDUyNDU3MSw0NTkwMjUsNTI0NDAzLDUyNDMzOSw1OTAwMjIsNDU5MDE3LDUyNDM4Nyw1MjQzMjMsNTg5OTkwLDUyNDI5MSw1MjQ0MTksNTI0MzU1LDU5MDA1NCw0NTkwMTMsNTI0Mzc5LDUyNDMxNSw1ODk5NzQsNDU5MDI5LDUyNDQxMSw1MjQzNDcsNTkwMDM4LDQ1OTAyMSw1MjQzOTUsNTI0MzMxLDU5MDAwNiw1MjQyOTksNTI0NDI3LDUyNDM2Myw1OTAwNzAsNDU5MDExLDUyNDM3NSw1MjQzMTEsNTI0NTc1LDQ1OTAyNyw1MjQ0MDcsNTI0MzQzLDU5MDAzMCw0NTkwMTksNTI0MzkxLDUyNDMyNyw1ODk5OTgsNTI0Mjk1LDUyNDQyMyw1MjQzNTksNTkwMDYyLDQ1OTAxNSw1MjQzODMsNTI0MzE5LDU4OTk4Miw0NTkwMzEsNTI0NDE1LDUyNDM1MSw1OTAwNDYsNDU5MDIzLDUyNDM5OSw1MjQzMzUsNTkwMDE0LDUyNDMwMyw1MjQ0MzEsNTI0MzY3LDU5MDA3OCw0NTkwMDgsNTI0MzY4LDUyNDMwNCw1MjQ1NjgsNDU5MDI0LDUyNDQwMCw1MjQzMzYsNTkwMDE3LDQ1OTAxNiw1MjQzODQsNTI0MzIwLDU4OTk4NSw1MjQyODgsNTI0NDE2LDUyNDM1Miw1OTAwNDksNDU5MDEyLDUyNDM3Niw1MjQzMTIsNTg5OTY5LDQ1OTAyOCw1MjQ0MDgsNTI0MzQ0LDU5MDAzMyw0NTkwMjAsNTI0MzkyLDUyNDMyOCw1OTAwMDEsNTI0Mjk2LDUyNDQyNCw1MjQzNjAsNTkwMDY1LDQ1OTAxMCw1MjQzNzIsNTI0MzA4LDUyNDU3Miw0NTkwMjYsNTI0NDA0LDUyNDM0MCw1OTAwMjUsNDU5MDE4LDUyNDM4OCw1MjQzMjQsNTg5OTkzLDUyNDI5Miw1MjQ0MjAsNTI0MzU2LDU5MDA1Nyw0NTkwMTQsNTI0MzgwLDUyNDMxNiw1ODk5NzcsNDU5MDMwLDUyNDQxMiw1MjQzNDgsNTkwMDQxLDQ1OTAyMiw1MjQzOTYsNTI0MzMyLDU5MDAwOSw1MjQzMDAsNTI0NDI4LDUyNDM2NCw1OTAwNzMsNDU5MDA5LDUyNDM3MCw1MjQzMDYsNTI0NTcwLDQ1OTAyNSw1MjQ0MDIsNTI0MzM4LDU5MDAyMSw0NTkwMTcsNTI0Mzg2LDUyNDMyMiw1ODk5ODksNTI0MjkwLDUyNDQxOCw1MjQzNTQsNTkwMDUzLDQ1OTAxMyw1MjQzNzgsNTI0MzE0LDU4OTk3Myw0NTkwMjksNTI0NDEwLDUyNDM0Niw1OTAwMzcsNDU5MDIxLDUyNDM5NCw1MjQzMzAsNTkwMDA1LDUyNDI5OCw1MjQ0MjYsNTI0MzYyLDU5MDA2OSw0NTkwMTEsNTI0Mzc0LDUyNDMxMCw1MjQ1NzQsNDU5MDI3LDUyNDQwNiw1MjQzNDIsNTkwMDI5LDQ1OTAxOSw1MjQzOTAsNTI0MzI2LDU4OTk5Nyw1MjQyOTQsNTI0NDIyLDUyNDM1OCw1OTAwNjEsNDU5MDE1LDUyNDM4Miw1MjQzMTgsNTg5OTgxLDQ1OTAzMSw1MjQ0MTQsNTI0MzUwLDU5MDA0NSw0NTkwMjMsNTI0Mzk4LDUyNDMzNCw1OTAwMTMsNTI0MzAyLDUyNDQzMCw1MjQzNjYsNTkwMDc3LDQ1OTAwOCw1MjQzNjksNTI0MzA1LDUyNDU2OSw0NTkwMjQsNTI0NDAxLDUyNDMzNyw1OTAwMTksNDU5MDE2LDUyNDM4NSw1MjQzMjEsNTg5OTg3LDUyNDI4OSw1MjQ0MTcsNTI0MzUzLDU5MDA1MSw0NTkwMTIsNTI0Mzc3LDUyNDMxMyw1ODk5NzEsNDU5MDI4LDUyNDQwOSw1MjQzNDUsNTkwMDM1LDQ1OTAyMCw1MjQzOTMsNTI0MzI5LDU5MDAwMyw1MjQyOTcsNTI0NDI1LDUyNDM2MSw1OTAwNjcsNDU5MDEwLDUyNDM3Myw1MjQzMDksNTI0NTczLDQ1OTAyNiw1MjQ0MDUsNTI0MzQxLDU5MDAyNyw0NTkwMTgsNTI0Mzg5LDUyNDMyNSw1ODk5OTUsNTI0MjkzLDUyNDQyMSw1MjQzNTcsNTkwMDU5LDQ1OTAxNCw1MjQzODEsNTI0MzE3LDU4OTk3OSw0NTkwMzAsNTI0NDEzLDUyNDM0OSw1OTAwNDMsNDU5MDIyLDUyNDM5Nyw1MjQzMzMsNTkwMDExLDUyNDMwMSw1MjQ0MjksNTI0MzY1LDU5MDA3NSw0NTkwMDksNTI0MzcxLDUyNDMwNyw1MjQ1NzEsNDU5MDI1LDUyNDQwMyw1MjQzMzksNTkwMDIzLDQ1OTAxNyw1MjQzODcsNTI0MzIzLDU4OTk5MSw1MjQyOTEsNTI0NDE5LDUyNDM1NSw1OTAwNTUsNDU5MDEzLDUyNDM3OSw1MjQzMTUsNTg5OTc1LDQ1OTAyOSw1MjQ0MTEsNTI0MzQ3LDU5MDAzOSw0NTkwMjEsNTI0Mzk1LDUyNDMzMSw1OTAwMDcsNTI0Mjk5LDUyNDQyNyw1MjQzNjMsNTkwMDcxLDQ1OTAxMSw1MjQzNzUsNTI0MzExLDUyNDU3NSw0NTkwMjcsNTI0NDA3LDUyNDM0Myw1OTAwMzEsNDU5MDE5LDUyNDM5MSw1MjQzMjcsNTg5OTk5LDUyNDI5NSw1MjQ0MjMsNTI0MzU5LDU5MDA2Myw0NTkwMTUsNTI0MzgzLDUyNDMxOSw1ODk5ODMsNDU5MDMxLDUyNDQxNSw1MjQzNTEsNTkwMDQ3LDQ1OTAyMyw1MjQzOTksNTI0MzM1LDU5MDAxNSw1MjQzMDMsNTI0NDMxLDUyNDM2Nyw1OTAwNzldKSw5XSxYZT1bbmV3IEludDMyQXJyYXkoWzMyNzY4MCwzMjc2OTYsMzI3Njg4LDMyNzcwNCwzMjc2ODQsMzI3NzAwLDMyNzY5MiwzMjc3MDgsMzI3NjgyLDMyNzY5OCwzMjc2OTAsMzI3NzA2LDMyNzY4NiwzMjc3MDIsMzI3Njk0LDAsMzI3NjgxLDMyNzY5NywzMjc2ODksMzI3NzA1LDMyNzY4NSwzMjc3MDEsMzI3NjkzLDMyNzcwOSwzMjc2ODMsMzI3Njk5LDMyNzY5MSwzMjc3MDcsMzI3Njg3LDMyNzcwMywzMjc2OTUsMF0pLDVdO2NsYXNzIFZlIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihlKSx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3Q7Y29uc3QgdD1BLmdldEJ5dGUoKSxpPUEuZ2V0Qnl0ZSgpO2lmKC0xPT09dHx8LTE9PT1pKXRocm93IG5ldyBXKGBJbnZhbGlkIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW06ICR7dH0sICR7aX1gKTtpZig4IT0oMTUmdCkpdGhyb3cgbmV3IFcoYFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIGluIGZsYXRlIHN0cmVhbTogJHt0fSwgJHtpfWApO2lmKCgodDw8OCkraSklMzEhPTApdGhyb3cgbmV3IFcoYEJhZCBGQ0hFQ0sgaW4gZmxhdGUgc3RyZWFtOiAke3R9LCAke2l9YCk7aWYoMzImaSl0aHJvdyBuZXcgVyhgRkRJQ1QgYml0IHNldCBpbiBmbGF0ZSBzdHJlYW06ICR7dH0sICR7aX1gKTt0aGlzLmNvZGVTaXplPTAsdGhpcy5jb2RlQnVmPTB9YXN5bmMgZ2V0SW1hZ2VEYXRhKEEsZSl7Y29uc3QgdD1hd2FpdCB0aGlzLmFzeW5jR2V0Qnl0ZXMoKTtyZXR1cm4gdD8uc3ViYXJyYXkoMCxBKXx8dGhpcy5nZXRCeXRlcyhBKX1hc3luYyBhc3luY0dldEJ5dGVzKCl7dGhpcy5zdHIucmVzZXQoKTtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKCk7dHJ5e2NvbnN0e3JlYWRhYmxlOmUsd3JpdGFibGU6dH09bmV3IERlY29tcHJlc3Npb25TdHJlYW0oImRlZmxhdGUiKSxpPXQuZ2V0V3JpdGVyKCk7aS53cml0ZShBKSxpLmNsb3NlKCk7Y29uc3QgYT1bXTtsZXQgcz0wO2ZvciBhd2FpdChjb25zdCBBIG9mIGUpYS5wdXNoKEEpLHMrPUEuYnl0ZUxlbmd0aDtjb25zdCBuPW5ldyBVaW50OEFycmF5KHMpO2xldCByPTA7Zm9yKGNvbnN0IEEgb2YgYSluLnNldChBLHIpLHIrPUEuYnl0ZUxlbmd0aDtyZXR1cm4gbn1jYXRjaHtyZXR1cm4gdGhpcy5zdHI9bmV3IGdlKEEsMixBLmxlbmd0aCx0aGlzLnN0ci5kaWN0KSx0aGlzLnJlc2V0KCksbnVsbH19Z2V0IGlzQXN5bmMoKXtyZXR1cm4hMH1nZXRCaXRzKEEpe2NvbnN0IGU9dGhpcy5zdHI7bGV0IHQsaT10aGlzLmNvZGVTaXplLGE9dGhpcy5jb2RlQnVmO2Zvcig7aTxBOyl7aWYoLTE9PT0odD1lLmdldEJ5dGUoKSkpdGhyb3cgbmV3IFcoIkJhZCBlbmNvZGluZyBpbiBmbGF0ZSBzdHJlYW0iKTthfD10PDxpLGkrPTh9cmV0dXJuIHQ9YSYoMTw8QSktMSx0aGlzLmNvZGVCdWY9YT4+QSx0aGlzLmNvZGVTaXplPWktPUEsdH1nZXRDb2RlKEEpe2NvbnN0IGU9dGhpcy5zdHIsdD1BWzBdLGk9QVsxXTtsZXQgYSxzPXRoaXMuY29kZVNpemUsbj10aGlzLmNvZGVCdWY7Zm9yKDtzPGkmJi0xIT09KGE9ZS5nZXRCeXRlKCkpOylufD1hPDxzLHMrPTg7Y29uc3Qgcj10W24mKDE8PGkpLTFdLGc9cj4+MTYsbz02NTUzNSZyO2lmKGc8MXx8czxnKXRocm93IG5ldyBXKCJCYWQgZW5jb2RpbmcgaW4gZmxhdGUgc3RyZWFtIik7cmV0dXJuIHRoaXMuY29kZUJ1Zj1uPj5nLHRoaXMuY29kZVNpemU9cy1nLG99Z2VuZXJhdGVIdWZmbWFuVGFibGUoQSl7Y29uc3QgZT1BLmxlbmd0aDtsZXQgdCxpPTA7Zm9yKHQ9MDt0PGU7Kyt0KUFbdF0+aSYmKGk9QVt0XSk7Y29uc3QgYT0xPDxpLHM9bmV3IEludDMyQXJyYXkoYSk7Zm9yKGxldCBuPTEscj0wLGc9MjtuPD1pOysrbixyPDw9MSxnPDw9MSlmb3IobGV0IGk9MDtpPGU7KytpKWlmKEFbaV09PT1uKXtsZXQgQT0wLGU9cjtmb3IodD0wO3Q8bjsrK3QpQT1BPDwxfDEmZSxlPj49MTtmb3IodD1BO3Q8YTt0Kz1nKXNbdF09bjw8MTZ8aTsrK3J9cmV0dXJuW3MsaV19I20oQSl7eChBKSx0aGlzLmVvZj0hMH1yZWFkQmxvY2soKXtsZXQgQSxlLHQ7Y29uc3QgaT10aGlzLnN0cjt0cnl7ZT10aGlzLmdldEJpdHMoMyl9Y2F0Y2goQSl7cmV0dXJuIHZvaWQgdGhpcy4jbShBLm1lc3NhZ2UpfWlmKDEmZSYmKHRoaXMuZW9mPSEwKSxlPj49MSwwPT09ZSl7bGV0IGU7aWYoLTE9PT0oZT1pLmdldEJ5dGUoKSkpcmV0dXJuIHZvaWQgdGhpcy4jbSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtsZXQgdD1lO2lmKC0xPT09KGU9aS5nZXRCeXRlKCkpKXJldHVybiB2b2lkIHRoaXMuI20oIkJhZCBibG9jayBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtIik7aWYodHw9ZTw8OCwtMT09PShlPWkuZ2V0Qnl0ZSgpKSlyZXR1cm4gdm9pZCB0aGlzLiNtKCJCYWQgYmxvY2sgaGVhZGVyIGluIGZsYXRlIHN0cmVhbSIpO2xldCBhPWU7aWYoLTE9PT0oZT1pLmdldEJ5dGUoKSkpcmV0dXJuIHZvaWQgdGhpcy4jbSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtpZihhfD1lPDw4LGEhPT0oNjU1MzUmfnQpJiYoMCE9PXR8fDAhPT1hKSl0aHJvdyBuZXcgVygiQmFkIHVuY29tcHJlc3NlZCBibG9jayBsZW5ndGggaW4gZmxhdGUgc3RyZWFtIik7dGhpcy5jb2RlQnVmPTAsdGhpcy5jb2RlU2l6ZT0wO2NvbnN0IHM9dGhpcy5idWZmZXJMZW5ndGgsbj1zK3Q7aWYoQT10aGlzLmVuc3VyZUJ1ZmZlcihuKSx0aGlzLmJ1ZmZlckxlbmd0aD1uLDA9PT10KS0xPT09aS5wZWVrQnl0ZSgpJiYodGhpcy5lb2Y9ITApO2Vsc2V7Y29uc3QgZT1pLmdldEJ5dGVzKHQpO0Euc2V0KGUscyksZS5sZW5ndGg8dCYmKHRoaXMuZW9mPSEwKX1yZXR1cm59bGV0IGEscztpZigxPT09ZSlhPWplLHM9WGU7ZWxzZXtpZigyIT09ZSl0aHJvdyBuZXcgVygiVW5rbm93biBibG9jayB0eXBlIGluIGZsYXRlIHN0cmVhbSIpO3tjb25zdCBBPXRoaXMuZ2V0Qml0cyg1KSsyNTcsZT10aGlzLmdldEJpdHMoNSkrMSxpPXRoaXMuZ2V0Qml0cyg0KSs0LG49bmV3IFVpbnQ4QXJyYXkoV2UubGVuZ3RoKTtsZXQgcjtmb3Iocj0wO3I8aTsrK3IpbltXZVtyXV09dGhpcy5nZXRCaXRzKDMpO2NvbnN0IGc9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShuKTt0PTAscj0wO2NvbnN0IG89QStlLEk9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IGMsaCxDO2Zvcig7cjxvOyl7Y29uc3QgQT10aGlzLmdldENvZGUoZyk7aWYoMTY9PT1BKWM9MixoPTMsQz10O2Vsc2UgaWYoMTc9PT1BKWM9MyxoPTMsQz10PTA7ZWxzZXtpZigxOCE9PUEpe0lbcisrXT10PUE7Y29udGludWV9Yz03LGg9MTEsQz10PTB9bGV0IGU9dGhpcy5nZXRCaXRzKGMpK2g7Zm9yKDtlLS0gPjA7KUlbcisrXT1DfWE9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShJLnN1YmFycmF5KDAsQSkpLHM9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShJLnN1YmFycmF5KEEsbykpfX1BPXRoaXMuYnVmZmVyO2xldCBuPUE/QS5sZW5ndGg6MCxyPXRoaXMuYnVmZmVyTGVuZ3RoO2Zvcig7Oyl7bGV0IGU9dGhpcy5nZXRDb2RlKGEpO2lmKGU8MjU2KXtyKzE+PW4mJihBPXRoaXMuZW5zdXJlQnVmZmVyKHIrMSksbj1BLmxlbmd0aCksQVtyKytdPWU7Y29udGludWV9aWYoMjU2PT09ZSlyZXR1cm4gdm9pZCh0aGlzLmJ1ZmZlckxlbmd0aD1yKTtlLT0yNTcsZT1PZVtlXTtsZXQgaT1lPj4xNjtpPjAmJihpPXRoaXMuZ2V0Qml0cyhpKSksdD0oNjU1MzUmZSkraSxlPXRoaXMuZ2V0Q29kZShzKSxlPVplW2VdLGk9ZT4+MTYsaT4wJiYoaT10aGlzLmdldEJpdHMoaSkpO2NvbnN0IGc9KDY1NTM1JmUpK2k7cit0Pj1uJiYoQT10aGlzLmVuc3VyZUJ1ZmZlcihyK3QpLG49QS5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8dDsrK2UsKytyKUFbcl09QVtyLWddfX19Y29uc3QgX2U9W3txZToyMjAxNyxubXBzOjEsbmxwczoxLHN3aXRjaEZsYWc6MX0se3FlOjEzMzEzLG5tcHM6MixubHBzOjYsc3dpdGNoRmxhZzowfSx7cWU6NjE0NSxubXBzOjMsbmxwczo5LHN3aXRjaEZsYWc6MH0se3FlOjI3NTMsbm1wczo0LG5scHM6MTIsc3dpdGNoRmxhZzowfSx7cWU6MTMxMyxubXBzOjUsbmxwczoyOSxzd2l0Y2hGbGFnOjB9LHtxZTo1NDUsbm1wczozOCxubHBzOjMzLHN3aXRjaEZsYWc6MH0se3FlOjIyMDE3LG5tcHM6NyxubHBzOjYsc3dpdGNoRmxhZzoxfSx7cWU6MjE1MDUsbm1wczo4LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTg0MzMsbm1wczo5LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTQzMzcsbm1wczoxMCxubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjEyMjg5LG5tcHM6MTEsbmxwczoxNyxzd2l0Y2hGbGFnOjB9LHtxZTo5MjE3LG5tcHM6MTIsbmxwczoxOCxzd2l0Y2hGbGFnOjB9LHtxZTo3MTY5LG5tcHM6MTMsbmxwczoyMCxzd2l0Y2hGbGFnOjB9LHtxZTo1NjMzLG5tcHM6MjksbmxwczoyMSxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjE1LG5scHM6MTQsc3dpdGNoRmxhZzoxfSx7cWU6MjE1MDUsbm1wczoxNixubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjIwNzM3LG5tcHM6MTcsbmxwczoxNSxzd2l0Y2hGbGFnOjB9LHtxZToxODQzMyxubXBzOjE4LG5scHM6MTYsc3dpdGNoRmxhZzowfSx7cWU6MTQzMzcsbm1wczoxOSxubHBzOjE3LHN3aXRjaEZsYWc6MH0se3FlOjEzMzEzLG5tcHM6MjAsbmxwczoxOCxzd2l0Y2hGbGFnOjB9LHtxZToxMjI4OSxubXBzOjIxLG5scHM6MTksc3dpdGNoRmxhZzowfSx7cWU6MTAyNDEsbm1wczoyMixubHBzOjE5LHN3aXRjaEZsYWc6MH0se3FlOjkyMTcsbm1wczoyMyxubHBzOjIwLHN3aXRjaEZsYWc6MH0se3FlOjg3MDUsbm1wczoyNCxubHBzOjIxLHN3aXRjaEZsYWc6MH0se3FlOjcxNjksbm1wczoyNSxubHBzOjIyLHN3aXRjaEZsYWc6MH0se3FlOjYxNDUsbm1wczoyNixubHBzOjIzLHN3aXRjaEZsYWc6MH0se3FlOjU2MzMsbm1wczoyNyxubHBzOjI0LHN3aXRjaEZsYWc6MH0se3FlOjUxMjEsbm1wczoyOCxubHBzOjI1LHN3aXRjaEZsYWc6MH0se3FlOjQ2MDksbm1wczoyOSxubHBzOjI2LHN3aXRjaEZsYWc6MH0se3FlOjQzNTMsbm1wczozMCxubHBzOjI3LHN3aXRjaEZsYWc6MH0se3FlOjI3NTMsbm1wczozMSxubHBzOjI4LHN3aXRjaEZsYWc6MH0se3FlOjI0OTcsbm1wczozMixubHBzOjI5LHN3aXRjaEZsYWc6MH0se3FlOjIyMDksbm1wczozMyxubHBzOjMwLHN3aXRjaEZsYWc6MH0se3FlOjEzMTMsbm1wczozNCxubHBzOjMxLHN3aXRjaEZsYWc6MH0se3FlOjEwODksbm1wczozNSxubHBzOjMyLHN3aXRjaEZsYWc6MH0se3FlOjY3MyxubXBzOjM2LG5scHM6MzMsc3dpdGNoRmxhZzowfSx7cWU6NTQ1LG5tcHM6MzcsbmxwczozNCxzd2l0Y2hGbGFnOjB9LHtxZTozMjEsbm1wczozOCxubHBzOjM1LHN3aXRjaEZsYWc6MH0se3FlOjI3MyxubXBzOjM5LG5scHM6MzYsc3dpdGNoRmxhZzowfSx7cWU6MTMzLG5tcHM6NDAsbmxwczozNyxzd2l0Y2hGbGFnOjB9LHtxZTo3MyxubXBzOjQxLG5scHM6Mzgsc3dpdGNoRmxhZzowfSx7cWU6Mzcsbm1wczo0MixubHBzOjM5LHN3aXRjaEZsYWc6MH0se3FlOjIxLG5tcHM6NDMsbmxwczo0MCxzd2l0Y2hGbGFnOjB9LHtxZTo5LG5tcHM6NDQsbmxwczo0MSxzd2l0Y2hGbGFnOjB9LHtxZTo1LG5tcHM6NDUsbmxwczo0Mixzd2l0Y2hGbGFnOjB9LHtxZToxLG5tcHM6NDUsbmxwczo0Myxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjQ2LG5scHM6NDYsc3dpdGNoRmxhZzowfV07Y2xhc3MgemV7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGF0YT1BLHRoaXMuYnA9ZSx0aGlzLmRhdGFFbmQ9dCx0aGlzLmNoaWdoPUFbZV0sdGhpcy5jbG93PTAsdGhpcy5ieXRlSW4oKSx0aGlzLmNoaWdoPXRoaXMuY2hpZ2g8PDcmNjU1MzV8dGhpcy5jbG93Pj45JjEyNyx0aGlzLmNsb3c9dGhpcy5jbG93PDw3JjY1NTM1LHRoaXMuY3QtPTcsdGhpcy5hPTMyNzY4fWJ5dGVJbigpe2NvbnN0IEE9dGhpcy5kYXRhO2xldCBlPXRoaXMuYnA7MjU1PT09QVtlXT9BW2UrMV0+MTQzPyh0aGlzLmNsb3crPTY1MjgwLHRoaXMuY3Q9OCk6KGUrKyx0aGlzLmNsb3crPUFbZV08PDksdGhpcy5jdD03LHRoaXMuYnA9ZSk6KGUrKyx0aGlzLmNsb3crPWU8dGhpcy5kYXRhRW5kP0FbZV08PDg6NjUyODAsdGhpcy5jdD04LHRoaXMuYnA9ZSksdGhpcy5jbG93PjY1NTM1JiYodGhpcy5jaGlnaCs9dGhpcy5jbG93Pj4xNix0aGlzLmNsb3cmPTY1NTM1KX1yZWFkQml0KEEsZSl7bGV0IHQ9QVtlXT4+MSxpPTEmQVtlXTtjb25zdCBhPV9lW3RdLHM9YS5xZTtsZXQgbixyPXRoaXMuYS1zO2lmKHRoaXMuY2hpZ2g8cylyPHM/KHI9cyxuPWksdD1hLm5tcHMpOihyPXMsbj0xXmksMT09PWEuc3dpdGNoRmxhZyYmKGk9biksdD1hLm5scHMpO2Vsc2V7aWYodGhpcy5jaGlnaC09cywwIT0oMzI3NjgmcikpcmV0dXJuIHRoaXMuYT1yLGk7cjxzPyhuPTFeaSwxPT09YS5zd2l0Y2hGbGFnJiYoaT1uKSx0PWEubmxwcyk6KG49aSx0PWEubm1wcyl9ZG97MD09PXRoaXMuY3QmJnRoaXMuYnl0ZUluKCkscjw8PTEsdGhpcy5jaGlnaD10aGlzLmNoaWdoPDwxJjY1NTM1fHRoaXMuY2xvdz4+MTUmMSx0aGlzLmNsb3c9dGhpcy5jbG93PDwxJjY1NTM1LHRoaXMuY3QtLX13aGlsZSgwPT0oMzI3NjgmcikpO3JldHVybiB0aGlzLmE9cixBW2VdPXQ8PDF8aSxufX1jbGFzcyAkZSBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiSmJpZzJFcnJvciIpfX1jbGFzcyBBdHtnZXRDb250ZXh0cyhBKXtyZXR1cm4gQSBpbiB0aGlzP3RoaXNbQV06dGhpc1tBXT1uZXcgSW50OEFycmF5KDY1NTM2KX19Y2xhc3MgZXR7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGF0YT1BLHRoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10fWdldCBkZWNvZGVyKCl7cmV0dXJuIEgodGhpcywiZGVjb2RlciIsbmV3IHplKHRoaXMuZGF0YSx0aGlzLnN0YXJ0LHRoaXMuZW5kKSl9Z2V0IGNvbnRleHRDYWNoZSgpe3JldHVybiBIKHRoaXMsImNvbnRleHRDYWNoZSIsbmV3IEF0KX19Y29uc3QgdHQ9MioqMzEtMSxpdD0tKDIqKjMxKTtmdW5jdGlvbiBhdChBLGUsdCl7Y29uc3QgaT1BLmdldENvbnRleHRzKGUpO2xldCBhPTE7ZnVuY3Rpb24gcyhBKXtsZXQgZT0wO2ZvcihsZXQgcz0wO3M8QTtzKyspe2NvbnN0IEE9dC5yZWFkQml0KGksYSk7YT1hPDI1Nj9hPDwxfEE6NTExJihhPDwxfEEpfDI1NixlPWU8PDF8QX1yZXR1cm4gZT4+PjB9Y29uc3Qgbj1zKDEpLHI9cygxKT9zKDEpP3MoMSk/cygxKT9zKDEpP3MoMzIpKzQ0MzY6cygxMikrMzQwOnMoOCkrODQ6cyg2KSsyMDpzKDQpKzQ6cygyKTtsZXQgZztyZXR1cm4gMD09PW4/Zz1yOnI+MCYmKGc9LXIpLGc+PWl0JiZnPD10dD9nOm51bGx9ZnVuY3Rpb24gc3QoQSxlLHQpe2NvbnN0IGk9QS5nZXRDb250ZXh0cygiSUFJRCIpO2xldCBhPTE7Zm9yKGxldCBBPTA7QTx0O0ErKylhPWE8PDF8ZS5yZWFkQml0KGksYSk7cmV0dXJuIHQ8MzE/YSYoMTw8dCktMToyMTQ3NDgzNjQ3JmF9Y29uc3QgbnQ9WyJTeW1ib2xEaWN0aW9uYXJ5IixudWxsLG51bGwsbnVsbCwiSW50ZXJtZWRpYXRlVGV4dFJlZ2lvbiIsbnVsbCwiSW1tZWRpYXRlVGV4dFJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzVGV4dFJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJQYXR0ZXJuRGljdGlvbmFyeSIsbnVsbCxudWxsLG51bGwsIkludGVybWVkaWF0ZUhhbGZ0b25lUmVnaW9uIixudWxsLCJJbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzSGFsZnRvbmVSZWdpb24iLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJJbnRlcm1lZGlhdGVHZW5lcmljUmVnaW9uIixudWxsLCJJbW1lZGlhdGVHZW5lcmljUmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVnaW9uIiwiSW50ZXJtZWRpYXRlR2VuZXJpY1JlZmluZW1lbnRSZWdpb24iLG51bGwsIkltbWVkaWF0ZUdlbmVyaWNSZWZpbmVtZW50UmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVmaW5lbWVudFJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCwiUGFnZUluZm9ybWF0aW9uIiwiRW5kT2ZQYWdlIiwiRW5kT2ZTdHJpcGUiLCJFbmRPZkZpbGUiLCJQcm9maWxlcyIsIlRhYmxlcyIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJFeHRlbnNpb24iXSxydD1bW3t4Oi0xLHk6LTJ9LHt4OjAseTotMn0se3g6MSx5Oi0yfSx7eDotMix5Oi0xfSx7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6Mix5Oi0xfSx7eDotNCx5OjB9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XSxbe3g6LTEseTotMn0se3g6MCx5Oi0yfSx7eDoxLHk6LTJ9LHt4OjIseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4OjIseTotMX0se3g6LTMseTowfSx7eDotMix5OjB9LHt4Oi0xLHk6MH1dLFt7eDotMSx5Oi0yfSx7eDowLHk6LTJ9LHt4OjEseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0yLHk6MH0se3g6LTEseTowfV0sW3t4Oi0zLHk6LTF9LHt4Oi0yLHk6LTF9LHt4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotNCx5OjB9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XV0sZ3Q9W3tjb2Rpbmc6W3t4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9XSxyZWZlcmVuY2U6W3t4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9LHt4OjAseTowfSx7eDoxLHk6MH0se3g6LTEseToxfSx7eDowLHk6MX0se3g6MSx5OjF9XX0se2NvZGluZzpbe3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0xLHk6MH1dLHJlZmVyZW5jZTpbe3g6MCx5Oi0xfSx7eDotMSx5OjB9LHt4OjAseTowfSx7eDoxLHk6MH0se3g6MCx5OjF9LHt4OjEseToxfV19XSxvdD1bMzk3MTcsMTk0MSwyMjksNDA1XSxJdD1bMzIsOF07ZnVuY3Rpb24gY3QoQSxlLHQsaSxhLHMsbixyKXtpZihBKXJldHVybiBTdChuZXcgYnQoci5kYXRhLHIuc3RhcnQsci5lbmQpLGUsdCwhMSk7aWYoMD09PWkmJiFzJiYhYSYmND09PW4ubGVuZ3RoJiYzPT09blswXS54JiYtMT09PW5bMF0ueSYmLTM9PT1uWzFdLngmJi0xPT09blsxXS55JiYyPT09blsyXS54JiYtMj09PW5bMl0ueSYmLTI9PT1uWzNdLngmJi0yPT09blszXS55KXJldHVybiBmdW5jdGlvbihBLGUsdCl7Y29uc3QgaT10LmRlY29kZXIsYT10LmNvbnRleHRDYWNoZS5nZXRDb250ZXh0cygiR0IiKSxzPVtdO2xldCBuLHIsZyxvLEksYyxoO2ZvcihyPTA7cjxlO3IrKylmb3IoST1zW3JdPW5ldyBVaW50OEFycmF5KEEpLGM9cjwxP0k6c1tyLTFdLGg9cjwyP0k6c1tyLTJdLG49aFswXTw8MTN8aFsxXTw8MTJ8aFsyXTw8MTF8Y1swXTw8N3xjWzFdPDw2fGNbMl08PDV8Y1szXTw8NCxnPTA7ZzxBO2crKylJW2ddPW89aS5yZWFkQml0KGEsbiksbj0oMzE3MzUmbik8PDF8KGcrMzxBP2hbZyszXTw8MTE6MCl8KGcrNDxBP2NbZys0XTw8NDowKXxvO3JldHVybiBzfShlLHQscik7Y29uc3QgZz0hIXMsbz1ydFtpXS5jb25jYXQobik7by5zb3J0KChmdW5jdGlvbihBLGUpe3JldHVybiBBLnktZS55fHxBLngtZS54fSkpO2NvbnN0IEk9by5sZW5ndGgsYz1uZXcgSW50OEFycmF5KEkpLGg9bmV3IEludDhBcnJheShJKSxDPVtdO2xldCBCLGwsUT0wLEU9MCx1PTAsZD0wO2ZvcihsPTA7bDxJO2wrKyljW2xdPW9bbF0ueCxoW2xdPW9bbF0ueSxFPU1hdGgubWluKEUsb1tsXS54KSx1PU1hdGgubWF4KHUsb1tsXS54KSxkPU1hdGgubWluKGQsb1tsXS55KSxsPEktMSYmb1tsXS55PT09b1tsKzFdLnkmJm9bbF0ueD09PW9bbCsxXS54LTE/UXw9MTw8SS0xLWw6Qy5wdXNoKGwpO2NvbnN0IGY9Qy5sZW5ndGgscD1uZXcgSW50OEFycmF5KGYpLG09bmV3IEludDhBcnJheShmKSx5PW5ldyBVaW50MTZBcnJheShmKTtmb3IoQj0wO0I8ZjtCKyspbD1DW0JdLHBbQl09b1tsXS54LG1bQl09b1tsXS55LHlbQl09MTw8SS0xLWw7Y29uc3Qgdz0tRSxEPS1kLGI9ZS11LGs9b3RbaV07bGV0IEY9bmV3IFVpbnQ4QXJyYXkoZSk7Y29uc3QgUz1bXSxSPXIuZGVjb2RlcixHPXIuY29udGV4dENhY2hlLmdldENvbnRleHRzKCJHQiIpO2xldCBOLHgsVSxNLEwsSj0wLEg9MDtmb3IobGV0IEE9MDtBPHQ7QSsrKWlmKGEmJihKXj1SLnJlYWRCaXQoRyxrKSxKKSlTLnB1c2goRik7ZWxzZSBmb3IoRj1uZXcgVWludDhBcnJheShGKSxTLnB1c2goRiksTj0wO048ZTtOKyspe2lmKGcmJnNbQV1bTl0pe0ZbTl09MDtjb250aW51ZX1pZihOPj13JiZOPGImJkE+PUQpZm9yKEg9SDw8MSZRLGw9MDtsPGY7bCsrKXg9QSttW2xdLFU9TitwW2xdLE09U1t4XVtVXSxNJiYoTT15W2xdLEh8PU0pO2Vsc2UgZm9yKEg9MCxMPUktMSxsPTA7bDxJO2wrKyxMLS0pVT1OK2NbbF0sVT49MCYmVTxlJiYoeD1BK2hbbF0seD49MCYmKE09U1t4XVtVXSxNJiYoSHw9TTw8TCkpKTtjb25zdCB0PVIucmVhZEJpdChHLEgpO0ZbTl09dH1yZXR1cm4gU31mdW5jdGlvbiBodChBLGUsdCxpLGEscyxuLHIsZyl7bGV0IG89Z3RbdF0uY29kaW5nOzA9PT10JiYobz1vLmNvbmNhdChbclswXV0pKTtjb25zdCBJPW8ubGVuZ3RoLGM9bmV3IEludDMyQXJyYXkoSSksaD1uZXcgSW50MzJBcnJheShJKTtsZXQgQztmb3IoQz0wO0M8STtDKyspY1tDXT1vW0NdLngsaFtDXT1vW0NdLnk7bGV0IEI9Z3RbdF0ucmVmZXJlbmNlOzA9PT10JiYoQj1CLmNvbmNhdChbclsxXV0pKTtjb25zdCBsPUIubGVuZ3RoLFE9bmV3IEludDMyQXJyYXkobCksRT1uZXcgSW50MzJBcnJheShsKTtmb3IoQz0wO0M8bDtDKyspUVtDXT1CW0NdLngsRVtDXT1CW0NdLnk7Y29uc3QgdT1pWzBdLmxlbmd0aCxkPWkubGVuZ3RoLGY9SXRbdF0scD1bXSxtPWcuZGVjb2Rlcix5PWcuY29udGV4dENhY2hlLmdldENvbnRleHRzKCJHUiIpO2xldCB3PTA7Zm9yKGxldCB0PTA7dDxlO3QrKyl7aWYobiYmKHdePW0ucmVhZEJpdCh5LGYpLHcpKXRocm93IG5ldyAkZSgicHJlZGljdGlvbiBpcyBub3Qgc3VwcG9ydGVkIik7Y29uc3QgZT1uZXcgVWludDhBcnJheShBKTtwLnB1c2goZSk7Zm9yKGxldCBuPTA7bjxBO24rKyl7bGV0IHIsZyxvPTA7Zm9yKEM9MDtDPEk7QysrKXI9dCtoW0NdLGc9bitjW0NdLHI8MHx8ZzwwfHxnPj1BP288PD0xOm89bzw8MXxwW3JdW2ddO2ZvcihDPTA7QzxsO0MrKylyPXQrRVtDXS1zLGc9bitRW0NdLWEscjwwfHxyPj1kfHxnPDB8fGc+PXU/bzw8PTE6bz1vPDwxfGlbcl1bZ107Y29uc3QgQj1tLnJlYWRCaXQoeSxvKTtlW25dPUJ9fXJldHVybiBwfWZ1bmN0aW9uIEN0KEEsZSx0LGksYSxzLG4scixnLG8sSSxjLGgsQyxCLGwsUSxFLHUpe2lmKEEmJmUpdGhyb3cgbmV3ICRlKCJyZWZpbmVtZW50IHdpdGggSHVmZm1hbiBpcyBub3Qgc3VwcG9ydGVkIik7Y29uc3QgZD1bXTtsZXQgZixwO2ZvcihmPTA7ZjxpO2YrKyl7aWYocD1uZXcgVWludDhBcnJheSh0KSxhKWZvcihsZXQgQT0wO0E8dDtBKyspcFtBXT1hO2QucHVzaChwKX1jb25zdCBtPVEuZGVjb2Rlcix5PVEuY29udGV4dENhY2hlO2xldCB3PUE/LUMudGFibGVEZWx0YVQuZGVjb2RlKHUpOi1hdCh5LCJJQURUIixtKSxEPTA7Zm9yKGY9MDtmPHM7KXt3Kz1BP0MudGFibGVEZWx0YVQuZGVjb2RlKHUpOmF0KHksIklBRFQiLG0pLEQrPUE/Qy50YWJsZUZpcnN0Uy5kZWNvZGUodSk6YXQoeSwiSUFGUyIsbSk7bGV0IGk9RDtmb3IoOzspe2xldCBhPTA7bj4xJiYoYT1BP3UucmVhZEJpdHMoRSk6YXQoeSwiSUFJVCIsbSkpO2NvbnN0IHM9bip3K2EsRD1BP0Muc3ltYm9sSURUYWJsZS5kZWNvZGUodSk6c3QoeSxtLGcpLGI9ZSYmKEE/dS5yZWFkQml0KCk6YXQoeSwiSUFSSSIsbSkpO2xldCBrPXJbRF0sRj1rWzBdLmxlbmd0aCxTPWsubGVuZ3RoO2lmKGIpe2NvbnN0IEE9YXQoeSwiSUFSRFciLG0pLGU9YXQoeSwiSUFSREgiLG0pO0YrPUEsUys9ZSxrPWh0KEYsUyxCLGssKEE+PjEpK2F0KHksIklBUkRYIixtKSwoZT4+MSkrYXQoeSwiSUFSRFkiLG0pLCExLGwsUSl9bGV0IFI9MDtvPzEmYz9SPVMtMTppKz1TLTE6Yz4xP2krPUYtMTpSPUYtMTtjb25zdCBHPXMtKDEmYz8wOlMtMSksTj1pLSgyJmM/Ri0xOjApO2xldCB4LFUsTTtpZihvKWZvcih4PTA7eDxTO3grKyl7aWYocD1kW04reF0sIXApY29udGludWU7TT1rW3hdO2NvbnN0IEE9TWF0aC5taW4odC1HLEYpO3N3aXRjaChoKXtjYXNlIDA6Zm9yKFU9MDtVPEE7VSsrKXBbRytVXXw9TVtVXTticmVhaztjYXNlIDI6Zm9yKFU9MDtVPEE7VSsrKXBbRytVXV49TVtVXTticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZShgb3BlcmF0b3IgJHtofSBpcyBub3Qgc3VwcG9ydGVkYCl9fWVsc2UgZm9yKFU9MDtVPFM7VSsrKWlmKHA9ZFtHK1VdLHApc3dpdGNoKE09a1tVXSxoKXtjYXNlIDA6Zm9yKHg9MDt4PEY7eCsrKXBbTit4XXw9TVt4XTticmVhaztjYXNlIDI6Zm9yKHg9MDt4PEY7eCsrKXBbTit4XV49TVt4XTticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZShgb3BlcmF0b3IgJHtofSBpcyBub3Qgc3VwcG9ydGVkYCl9ZisrO2NvbnN0IEw9QT9DLnRhYmxlRGVsdGFTLmRlY29kZSh1KTphdCh5LCJJQURTIixtKTtpZihudWxsPT09TClicmVhaztpKz1SK0wrSX19cmV0dXJuIGR9ZnVuY3Rpb24gQnQoQSxlKXtjb25zdCB0PXt9O3QubnVtYmVyPUhBKEEsZSk7Y29uc3QgaT1BW2UrNF0sYT02MyZpO2lmKCFudFthXSl0aHJvdyBuZXcgJGUoImludmFsaWQgc2VnbWVudCB0eXBlOiAiK2EpO3QudHlwZT1hLHQudHlwZU5hbWU9bnRbYV0sdC5kZWZlcnJlZE5vblJldGFpbj0hISgxMjgmaSk7Y29uc3Qgcz0hISg2NCZpKSxuPUFbZSs1XTtsZXQgcj1uPj41Jjc7Y29uc3QgZz1bMzEmbl07bGV0IG89ZSs2O2lmKDc9PT1uKXtyPTUzNjg3MDkxMSZIQShBLG8tMSksbys9MztsZXQgZT1yKzc+PjM7Zm9yKGdbMF09QVtvKytdOy0tZT4wOylnLnB1c2goQVtvKytdKX1lbHNlIGlmKDU9PT1ufHw2PT09bil0aHJvdyBuZXcgJGUoImludmFsaWQgcmVmZXJyZWQtdG8gZmxhZ3MiKTt0LnJldGFpbkJpdHM9ZztsZXQgST00O3QubnVtYmVyPD0yNTY/ST0xOnQubnVtYmVyPD02NTUzNiYmKEk9Mik7Y29uc3QgYz1bXTtsZXQgaCxDO2ZvcihoPTA7aDxyO2grKyl7bGV0IGU7ZT0xPT09ST9BW29dOjI9PT1JP0pBKEEsbyk6SEEoQSxvKSxjLnB1c2goZSksbys9SX1pZih0LnJlZmVycmVkVG89YyxzPyh0LnBhZ2VBc3NvY2lhdGlvbj1IQShBLG8pLG8rPTQpOnQucGFnZUFzc29jaWF0aW9uPUFbbysrXSx0Lmxlbmd0aD1IQShBLG8pLG8rPTQsNDI5NDk2NzI5NT09PXQubGVuZ3RoKXtpZigzOCE9PWEpdGhyb3cgbmV3ICRlKCJpbnZhbGlkIHVua25vd24gc2VnbWVudCBsZW5ndGgiKTt7Y29uc3QgZT1RdChBLG8pLGk9ISEoMSZBW28rRXRdKSxhPTYscz1uZXcgVWludDhBcnJheShhKTtmb3IoaXx8KHNbMF09MjU1LHNbMV09MTcyKSxzWzJdPWUuaGVpZ2h0Pj4+MjQmMjU1LHNbM109ZS5oZWlnaHQ+PjE2JjI1NSxzWzRdPWUuaGVpZ2h0Pj44JjI1NSxzWzVdPTI1NSZlLmhlaWdodCxoPW8sQz1BLmxlbmd0aDtoPEM7aCsrKXtsZXQgZT0wO2Zvcig7ZTxhJiZzW2VdPT09QVtoK2VdOyllKys7aWYoZT09PWEpe3QubGVuZ3RoPWgrYTticmVha319aWYoNDI5NDk2NzI5NT09PXQubGVuZ3RoKXRocm93IG5ldyAkZSgic2VnbWVudCBlbmQgd2FzIG5vdCBmb3VuZCIpfX1yZXR1cm4gdC5oZWFkZXJFbmQ9byx0fWZ1bmN0aW9uIGx0KEEsZSx0LGkpe2NvbnN0IGE9W107bGV0IHM9dDtmb3IoO3M8aTspe2NvbnN0IHQ9QnQoZSxzKTtzPXQuaGVhZGVyRW5kO2NvbnN0IGk9e2hlYWRlcjp0LGRhdGE6ZX07aWYoQS5yYW5kb21BY2Nlc3N8fChpLnN0YXJ0PXMscys9dC5sZW5ndGgsaS5lbmQ9cyksYS5wdXNoKGkpLDUxPT09dC50eXBlKWJyZWFrfWlmKEEucmFuZG9tQWNjZXNzKWZvcihsZXQgQT0wLGU9YS5sZW5ndGg7QTxlO0ErKylhW0FdLnN0YXJ0PXMscys9YVtBXS5oZWFkZXIubGVuZ3RoLGFbQV0uZW5kPXM7cmV0dXJuIGF9ZnVuY3Rpb24gUXQoQSxlKXtyZXR1cm57d2lkdGg6SEEoQSxlKSxoZWlnaHQ6SEEoQSxlKzQpLHg6SEEoQSxlKzgpLHk6SEEoQSxlKzEyKSxjb21iaW5hdGlvbk9wZXJhdG9yOjcmQVtlKzE2XX19Y29uc3QgRXQ9MTc7ZnVuY3Rpb24gdXQoQSxlKXtjb25zdCB0PUEuaGVhZGVyLGk9QS5kYXRhLGE9QS5lbmQ7bGV0IHMsbixyLGcsbz1BLnN0YXJ0O3N3aXRjaCh0LnR5cGUpe2Nhc2UgMDpjb25zdCBBPXt9LGU9SkEoaSxvKTtpZihBLmh1ZmZtYW49ISEoMSZlKSxBLnJlZmluZW1lbnQ9ISEoMiZlKSxBLmh1ZmZtYW5ESFNlbGVjdG9yPWU+PjImMyxBLmh1ZmZtYW5EV1NlbGVjdG9yPWU+PjQmMyxBLmJpdG1hcFNpemVTZWxlY3Rvcj1lPj42JjEsQS5hZ2dyZWdhdGlvbkluc3RhbmNlc1NlbGVjdG9yPWU+PjcmMSxBLmJpdG1hcENvZGluZ0NvbnRleHRVc2VkPSEhKDI1NiZlKSxBLmJpdG1hcENvZGluZ0NvbnRleHRSZXRhaW5lZD0hISg1MTImZSksQS50ZW1wbGF0ZT1lPj4xMCYzLEEucmVmaW5lbWVudFRlbXBsYXRlPWU+PjEyJjEsbys9MiwhQS5odWZmbWFuKXtmb3IoZz0wPT09QS50ZW1wbGF0ZT80OjEsbj1bXSxyPTA7cjxnO3IrKyluLnB1c2goe3g6TEEoaSxvKSx5OkxBKGksbysxKX0pLG8rPTI7QS5hdD1ufWlmKEEucmVmaW5lbWVudCYmIUEucmVmaW5lbWVudFRlbXBsYXRlKXtmb3Iobj1bXSxyPTA7cjwyO3IrKyluLnB1c2goe3g6TEEoaSxvKSx5OkxBKGksbysxKX0pLG8rPTI7QS5yZWZpbmVtZW50QXQ9bn1BLm51bWJlck9mRXhwb3J0ZWRTeW1ib2xzPUhBKGksbyksbys9NCxBLm51bWJlck9mTmV3U3ltYm9scz1IQShpLG8pLG8rPTQscz1bQSx0Lm51bWJlcix0LnJlZmVycmVkVG8saSxvLGFdO2JyZWFrO2Nhc2UgNjpjYXNlIDc6Y29uc3QgST17fTtJLmluZm89UXQoaSxvKSxvKz1FdDtjb25zdCBjPUpBKGksbyk7aWYobys9MixJLmh1ZmZtYW49ISEoMSZjKSxJLnJlZmluZW1lbnQ9ISEoMiZjKSxJLmxvZ1N0cmlwU2l6ZT1jPj4yJjMsSS5zdHJpcFNpemU9MTw8SS5sb2dTdHJpcFNpemUsSS5yZWZlcmVuY2VDb3JuZXI9Yz4+NCYzLEkudHJhbnNwb3NlZD0hISg2NCZjKSxJLmNvbWJpbmF0aW9uT3BlcmF0b3I9Yz4+NyYzLEkuZGVmYXVsdFBpeGVsVmFsdWU9Yz4+OSYxLEkuZHNPZmZzZXQ9Yzw8MTc+PjI3LEkucmVmaW5lbWVudFRlbXBsYXRlPWM+PjE1JjEsSS5odWZmbWFuKXtjb25zdCBBPUpBKGksbyk7bys9MixJLmh1ZmZtYW5GUz0zJkEsSS5odWZmbWFuRFM9QT4+MiYzLEkuaHVmZm1hbkRUPUE+PjQmMyxJLmh1ZmZtYW5SZWZpbmVtZW50RFc9QT4+NiYzLEkuaHVmZm1hblJlZmluZW1lbnRESD1BPj44JjMsSS5odWZmbWFuUmVmaW5lbWVudERYPUE+PjEwJjMsSS5odWZmbWFuUmVmaW5lbWVudERZPUE+PjEyJjMsSS5odWZmbWFuUmVmaW5lbWVudFNpemVTZWxlY3Rvcj0hISgxNjM4NCZBKX1pZihJLnJlZmluZW1lbnQmJiFJLnJlZmluZW1lbnRUZW1wbGF0ZSl7Zm9yKG49W10scj0wO3I8MjtyKyspbi5wdXNoKHt4OkxBKGksbykseTpMQShpLG8rMSl9KSxvKz0yO0kucmVmaW5lbWVudEF0PW59SS5udW1iZXJPZlN5bWJvbEluc3RhbmNlcz1IQShpLG8pLG8rPTQscz1bSSx0LnJlZmVycmVkVG8saSxvLGFdO2JyZWFrO2Nhc2UgMTY6Y29uc3QgaD17fSxDPWlbbysrXTtoLm1tcj0hISgxJkMpLGgudGVtcGxhdGU9Qz4+MSYzLGgucGF0dGVybldpZHRoPWlbbysrXSxoLnBhdHRlcm5IZWlnaHQ9aVtvKytdLGgubWF4UGF0dGVybkluZGV4PUhBKGksbyksbys9NCxzPVtoLHQubnVtYmVyLGksbyxhXTticmVhaztjYXNlIDIyOmNhc2UgMjM6Y29uc3QgQj17fTtCLmluZm89UXQoaSxvKSxvKz1FdDtjb25zdCBsPWlbbysrXTtCLm1tcj0hISgxJmwpLEIudGVtcGxhdGU9bD4+MSYzLEIuZW5hYmxlU2tpcD0hISg4JmwpLEIuY29tYmluYXRpb25PcGVyYXRvcj1sPj40JjcsQi5kZWZhdWx0UGl4ZWxWYWx1ZT1sPj43JjEsQi5ncmlkV2lkdGg9SEEoaSxvKSxvKz00LEIuZ3JpZEhlaWdodD1IQShpLG8pLG8rPTQsQi5ncmlkT2Zmc2V0WD00Mjk0OTY3Mjk1JkhBKGksbyksbys9NCxCLmdyaWRPZmZzZXRZPTQyOTQ5NjcyOTUmSEEoaSxvKSxvKz00LEIuZ3JpZFZlY3Rvclg9SkEoaSxvKSxvKz0yLEIuZ3JpZFZlY3Rvclk9SkEoaSxvKSxvKz0yLHM9W0IsdC5yZWZlcnJlZFRvLGksbyxhXTticmVhaztjYXNlIDM4OmNhc2UgMzk6Y29uc3QgUT17fTtRLmluZm89UXQoaSxvKSxvKz1FdDtjb25zdCBFPWlbbysrXTtpZihRLm1tcj0hISgxJkUpLFEudGVtcGxhdGU9RT4+MSYzLFEucHJlZGljdGlvbj0hISg4JkUpLCFRLm1tcil7Zm9yKGc9MD09PVEudGVtcGxhdGU/NDoxLG49W10scj0wO3I8ZztyKyspbi5wdXNoKHt4OkxBKGksbykseTpMQShpLG8rMSl9KSxvKz0yO1EuYXQ9bn1zPVtRLGksbyxhXTticmVhaztjYXNlIDQ4OmNvbnN0IHU9e3dpZHRoOkhBKGksbyksaGVpZ2h0OkhBKGksbys0KSxyZXNvbHV0aW9uWDpIQShpLG8rOCkscmVzb2x1dGlvblk6SEEoaSxvKzEyKX07NDI5NDk2NzI5NT09PXUuaGVpZ2h0JiZkZWxldGUgdS5oZWlnaHQ7Y29uc3QgZD1pW28rMTZdO0pBKGksbysxNyksdS5sb3NzbGVzcz0hISgxJmQpLHUucmVmaW5lbWVudD0hISgyJmQpLHUuZGVmYXVsdFBpeGVsVmFsdWU9ZD4+MiYxLHUuY29tYmluYXRpb25PcGVyYXRvcj1kPj4zJjMsdS5yZXF1aXJlc0J1ZmZlcj0hISgzMiZkKSx1LmNvbWJpbmF0aW9uT3BlcmF0b3JPdmVycmlkZT0hISg2NCZkKSxzPVt1XTticmVhaztjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDYyOmJyZWFrO2Nhc2UgNTM6cz1bdC5udW1iZXIsaSxvLGFdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKGBzZWdtZW50IHR5cGUgJHt0LnR5cGVOYW1lfSgke3QudHlwZX0pIGlzIG5vdCBpbXBsZW1lbnRlZGApfWNvbnN0IEk9Im9uIit0LnR5cGVOYW1lO0kgaW4gZSYmZVtJXS5hcHBseShlLHMpfWZ1bmN0aW9uIGR0KEEsZSl7Zm9yKGxldCB0PTAsaT1BLmxlbmd0aDt0PGk7dCsrKXV0KEFbdF0sZSl9Y2xhc3MgZnR7b25QYWdlSW5mb3JtYXRpb24oQSl7dGhpcy5jdXJyZW50UGFnZUluZm89QTtjb25zdCBlPUEud2lkdGgrNz4+Myx0PW5ldyBVaW50OENsYW1wZWRBcnJheShlKkEuaGVpZ2h0KTtBLmRlZmF1bHRQaXhlbFZhbHVlJiZ0LmZpbGwoMjU1KSx0aGlzLmJ1ZmZlcj10fWRyYXdCaXRtYXAoQSxlKXtjb25zdCB0PXRoaXMuY3VycmVudFBhZ2VJbmZvLGk9QS53aWR0aCxhPUEuaGVpZ2h0LHM9dC53aWR0aCs3Pj4zLG49dC5jb21iaW5hdGlvbk9wZXJhdG9yT3ZlcnJpZGU/QS5jb21iaW5hdGlvbk9wZXJhdG9yOnQuY29tYmluYXRpb25PcGVyYXRvcixyPXRoaXMuYnVmZmVyLGc9MTI4Pj4oNyZBLngpO2xldCBvLEksYyxoLEM9QS55KnMrKEEueD4+Myk7c3dpdGNoKG4pe2Nhc2UgMDpmb3Iobz0wO288YTtvKyspe2ZvcihjPWcsaD1DLEk9MDtJPGk7SSsrKWVbb11bSV0mJihyW2hdfD1jKSxjPj49MSxjfHwoYz0xMjgsaCsrKTtDKz1zfWJyZWFrO2Nhc2UgMjpmb3Iobz0wO288YTtvKyspe2ZvcihjPWcsaD1DLEk9MDtJPGk7SSsrKWVbb11bSV0mJihyW2hdXj1jKSxjPj49MSxjfHwoYz0xMjgsaCsrKTtDKz1zfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKGBvcGVyYXRvciAke259IGlzIG5vdCBzdXBwb3J0ZWRgKX19b25JbW1lZGlhdGVHZW5lcmljUmVnaW9uKEEsZSx0LGkpe2NvbnN0IGE9QS5pbmZvLHM9bmV3IGV0KGUsdCxpKSxuPWN0KEEubW1yLGEud2lkdGgsYS5oZWlnaHQsQS50ZW1wbGF0ZSxBLnByZWRpY3Rpb24sbnVsbCxBLmF0LHMpO3RoaXMuZHJhd0JpdG1hcChhLG4pfW9uSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZUdlbmVyaWNSZWdpb24oLi4uYXJndW1lbnRzKX1vblN5bWJvbERpY3Rpb25hcnkoQSxlLHQsaSxhLHMpe2xldCBuLHI7QS5odWZmbWFuJiYobj1mdW5jdGlvbihBLGUsdCl7bGV0IGksYSxzLG4scj0wO3N3aXRjaChBLmh1ZmZtYW5ESFNlbGVjdG9yKXtjYXNlIDA6Y2FzZSAxOmk9RHQoQS5odWZmbWFuREhTZWxlY3Rvcis0KTticmVhaztjYXNlIDM6aT1rdChyLGUsdCkscisrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKCJpbnZhbGlkIEh1ZmZtYW4gREggc2VsZWN0b3IiKX1zd2l0Y2goQS5odWZmbWFuRFdTZWxlY3Rvcil7Y2FzZSAwOmNhc2UgMTphPUR0KEEuaHVmZm1hbkRXU2VsZWN0b3IrMik7YnJlYWs7Y2FzZSAzOmE9a3QocixlLHQpLHIrKzticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZSgiaW52YWxpZCBIdWZmbWFuIERXIHNlbGVjdG9yIil9cmV0dXJuIEEuYml0bWFwU2l6ZVNlbGVjdG9yPyhzPWt0KHIsZSx0KSxyKyspOnM9RHQoMSksbj1BLmFnZ3JlZ2F0aW9uSW5zdGFuY2VzU2VsZWN0b3I/a3QocixlLHQpOkR0KDEpLHt0YWJsZURlbHRhSGVpZ2h0OmksdGFibGVEZWx0YVdpZHRoOmEsdGFibGVCaXRtYXBTaXplOnMsdGFibGVBZ2dyZWdhdGVJbnN0YW5jZXM6bn19KEEsdCx0aGlzLmN1c3RvbVRhYmxlcykscj1uZXcgYnQoaSxhLHMpKTtsZXQgZz10aGlzLnN5bWJvbHM7Z3x8KHRoaXMuc3ltYm9scz1nPXt9KTtjb25zdCBvPVtdO2Zvcihjb25zdCBBIG9mIHQpe2NvbnN0IGU9Z1tBXTtlJiZvLnB1c2goLi4uZSl9Y29uc3QgST1uZXcgZXQoaSxhLHMpO2dbZV09ZnVuY3Rpb24oQSxlLHQsaSxhLHMsbixyLGcsbyxJLGMpe2lmKEEmJmUpdGhyb3cgbmV3ICRlKCJzeW1ib2wgcmVmaW5lbWVudCB3aXRoIEh1ZmZtYW4gaXMgbm90IHN1cHBvcnRlZCIpO2NvbnN0IGg9W107bGV0IEM9MCxCPU1BKHQubGVuZ3RoK2kpO2NvbnN0IGw9SS5kZWNvZGVyLFE9SS5jb250ZXh0Q2FjaGU7bGV0IEUsdTtmb3IoQSYmKEU9RHQoMSksdT1bXSxCPU1hdGgubWF4KEIsMSkpO2gubGVuZ3RoPGk7KXtDKz1BP3MudGFibGVEZWx0YUhlaWdodC5kZWNvZGUoYyk6YXQoUSwiSUFESCIsbCk7bGV0IGk9MCxhPTA7Y29uc3QgRT1BP3UubGVuZ3RoOjA7Zm9yKDs7KXtjb25zdCBFPUE/cy50YWJsZURlbHRhV2lkdGguZGVjb2RlKGMpOmF0KFEsIklBRFciLGwpO2lmKG51bGw9PT1FKWJyZWFrO2xldCBkO2lmKGkrPUUsYSs9aSxlKXtjb25zdCBhPWF0KFEsIklBQUkiLGwpO2lmKGE+MSlkPUN0KEEsZSxpLEMsMCxhLDEsdC5jb25jYXQoaCksQiwwLDAsMSwwLHMsZyxvLEksMCxjKTtlbHNle2NvbnN0IEE9c3QoUSxsLEIpLGU9YXQoUSwiSUFSRFgiLGwpLGE9YXQoUSwiSUFSRFkiLGwpO2Q9aHQoaSxDLGcsQTx0Lmxlbmd0aD90W0FdOmhbQS10Lmxlbmd0aF0sZSxhLCExLG8sSSl9aC5wdXNoKGQpfWVsc2UgQT91LnB1c2goaSk6KGQ9Y3QoITEsaSxDLG4sITEsbnVsbCxyLEkpLGgucHVzaChkKSl9aWYoQSYmIWUpe2NvbnN0IEE9cy50YWJsZUJpdG1hcFNpemUuZGVjb2RlKGMpO2xldCBlO2lmKGMuYnl0ZUFsaWduKCksMD09PUEpZT1GdChjLGEsQyk7ZWxzZXtjb25zdCB0PWMuZW5kLGk9Yy5wb3NpdGlvbitBO2MuZW5kPWksZT1TdChjLGEsQywhMSksYy5lbmQ9dCxjLnBvc2l0aW9uPWl9Y29uc3QgdD11Lmxlbmd0aDtpZihFPT09dC0xKWgucHVzaChlKTtlbHNle2xldCBBLGksYSxzLG4scj0wO2ZvcihBPUU7QTx0O0ErKyl7Zm9yKHM9dVtBXSxhPXIrcyxuPVtdLGk9MDtpPEM7aSsrKW4ucHVzaChlW2ldLnN1YmFycmF5KHIsYSkpO2gucHVzaChuKSxyPWF9fX19Y29uc3QgZD1bXSxmPVtdO2xldCBwLG0seT0hMTtjb25zdCB3PXQubGVuZ3RoK2k7Zm9yKDtmLmxlbmd0aDx3Oyl7bGV0IGU9QT9FLmRlY29kZShjKTphdChRLCJJQUVYIixsKTtmb3IoO2UtLTspZi5wdXNoKHkpO3k9IXl9Zm9yKHA9MCxtPXQubGVuZ3RoO3A8bTtwKyspZltwXSYmZC5wdXNoKHRbcF0pO2ZvcihsZXQgQT0wO0E8aTtwKyssQSsrKWZbcF0mJmQucHVzaChoW0FdKTtyZXR1cm4gZH0oQS5odWZmbWFuLEEucmVmaW5lbWVudCxvLEEubnVtYmVyT2ZOZXdTeW1ib2xzLEEubnVtYmVyT2ZFeHBvcnRlZFN5bWJvbHMsbixBLnRlbXBsYXRlLEEuYXQsQS5yZWZpbmVtZW50VGVtcGxhdGUsQS5yZWZpbmVtZW50QXQsSSxyKX1vbkltbWVkaWF0ZVRleHRSZWdpb24oQSxlLHQsaSxhKXtjb25zdCBzPUEuaW5mbztsZXQgbixyO2NvbnN0IGc9dGhpcy5zeW1ib2xzLG89W107Zm9yKGNvbnN0IEEgb2YgZSl7Y29uc3QgZT1nW0FdO2UmJm8ucHVzaCguLi5lKX1jb25zdCBJPU1BKG8ubGVuZ3RoKTtBLmh1ZmZtYW4mJihyPW5ldyBidCh0LGksYSksbj1mdW5jdGlvbihBLGUsdCxpLGEpe2NvbnN0IHM9W107Zm9yKGxldCBBPTA7QTw9MzQ7QSsrKXtjb25zdCBlPWEucmVhZEJpdHMoNCk7cy5wdXNoKG5ldyBwdChbQSxlLDAsMF0pKX1jb25zdCBuPW5ldyB5dChzLCExKTtzLmxlbmd0aD0wO2ZvcihsZXQgQT0wO0E8aTspe2NvbnN0IGU9bi5kZWNvZGUoYSk7aWYoZT49MzIpe2xldCB0LGksbjtzd2l0Y2goZSl7Y2FzZSAzMjppZigwPT09QSl0aHJvdyBuZXcgJGUoIm5vIHByZXZpb3VzIHZhbHVlIGluIHN5bWJvbCBJRCB0YWJsZSIpO2k9YS5yZWFkQml0cygyKSszLHQ9c1tBLTFdLnByZWZpeExlbmd0aDticmVhaztjYXNlIDMzOmk9YS5yZWFkQml0cygzKSszLHQ9MDticmVhaztjYXNlIDM0Omk9YS5yZWFkQml0cyg3KSsxMSx0PTA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgJGUoImludmFsaWQgY29kZSBsZW5ndGggaW4gc3ltYm9sIElEIHRhYmxlIil9Zm9yKG49MDtuPGk7bisrKXMucHVzaChuZXcgcHQoW0EsdCwwLDBdKSksQSsrfWVsc2Ugcy5wdXNoKG5ldyBwdChbQSxlLDAsMF0pKSxBKyt9YS5ieXRlQWxpZ24oKTtjb25zdCByPW5ldyB5dChzLCExKTtsZXQgZyxvLEksYz0wO3N3aXRjaChBLmh1ZmZtYW5GUyl7Y2FzZSAwOmNhc2UgMTpnPUR0KEEuaHVmZm1hbkZTKzYpO2JyZWFrO2Nhc2UgMzpnPWt0KGMsZSx0KSxjKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgJGUoImludmFsaWQgSHVmZm1hbiBGUyBzZWxlY3RvciIpfXN3aXRjaChBLmh1ZmZtYW5EUyl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6bz1EdChBLmh1ZmZtYW5EUys4KTticmVhaztjYXNlIDM6bz1rdChjLGUsdCksYysrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKCJpbnZhbGlkIEh1ZmZtYW4gRFMgc2VsZWN0b3IiKX1zd2l0Y2goQS5odWZmbWFuRFQpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOkk9RHQoQS5odWZmbWFuRFQrMTEpO2JyZWFrO2Nhc2UgMzpJPWt0KGMsZSx0KSxjKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgJGUoImludmFsaWQgSHVmZm1hbiBEVCBzZWxlY3RvciIpfWlmKEEucmVmaW5lbWVudCl0aHJvdyBuZXcgJGUoInJlZmluZW1lbnQgd2l0aCBIdWZmbWFuIGlzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm57c3ltYm9sSURUYWJsZTpyLHRhYmxlRmlyc3RTOmcsdGFibGVEZWx0YVM6byx0YWJsZURlbHRhVDpJfX0oQSxlLHRoaXMuY3VzdG9tVGFibGVzLG8ubGVuZ3RoLHIpKTtjb25zdCBjPW5ldyBldCh0LGksYSksaD1DdChBLmh1ZmZtYW4sQS5yZWZpbmVtZW50LHMud2lkdGgscy5oZWlnaHQsQS5kZWZhdWx0UGl4ZWxWYWx1ZSxBLm51bWJlck9mU3ltYm9sSW5zdGFuY2VzLEEuc3RyaXBTaXplLG8sSSxBLnRyYW5zcG9zZWQsQS5kc09mZnNldCxBLnJlZmVyZW5jZUNvcm5lcixBLmNvbWJpbmF0aW9uT3BlcmF0b3IsbixBLnJlZmluZW1lbnRUZW1wbGF0ZSxBLnJlZmluZW1lbnRBdCxjLEEubG9nU3RyaXBTaXplLHIpO3RoaXMuZHJhd0JpdG1hcChzLGgpfW9uSW1tZWRpYXRlTG9zc2xlc3NUZXh0UmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZVRleHRSZWdpb24oLi4uYXJndW1lbnRzKX1vblBhdHRlcm5EaWN0aW9uYXJ5KEEsZSx0LGksYSl7bGV0IHM9dGhpcy5wYXR0ZXJucztzfHwodGhpcy5wYXR0ZXJucz1zPXt9KTtjb25zdCBuPW5ldyBldCh0LGksYSk7c1tlXT1mdW5jdGlvbihBLGUsdCxpLGEscyl7Y29uc3Qgbj1bXTtBfHwobi5wdXNoKHt4Oi1lLHk6MH0pLDA9PT1hJiZuLnB1c2goe3g6LTMseTotMX0se3g6Mix5Oi0yfSx7eDotMix5Oi0yfSkpO2NvbnN0IHI9Y3QoQSwoaSsxKSplLHQsYSwhMSxudWxsLG4scyksZz1bXTtmb3IobGV0IEE9MDtBPD1pO0ErKyl7Y29uc3QgaT1bXSxhPWUqQSxzPWErZTtmb3IobGV0IEE9MDtBPHQ7QSsrKWkucHVzaChyW0FdLnN1YmFycmF5KGEscykpO2cucHVzaChpKX1yZXR1cm4gZ30oQS5tbXIsQS5wYXR0ZXJuV2lkdGgsQS5wYXR0ZXJuSGVpZ2h0LEEubWF4UGF0dGVybkluZGV4LEEudGVtcGxhdGUsbil9b25JbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbihBLGUsdCxpLGEpe2NvbnN0IHM9dGhpcy5wYXR0ZXJuc1tlWzBdXSxuPUEuaW5mbyxyPW5ldyBldCh0LGksYSksZz1mdW5jdGlvbihBLGUsdCxpLGEscyxuLHIsZyxvLEksYyxoLEMsQil7aWYobil0aHJvdyBuZXcgJGUoInNraXAgaXMgbm90IHN1cHBvcnRlZCIpO2lmKDAhPT1yKXRocm93IG5ldyAkZShgb3BlcmF0b3IgIiR7cn0iIGlzIG5vdCBzdXBwb3J0ZWQgaW4gaGFsZnRvbmUgcmVnaW9uYCk7Y29uc3QgbD1bXTtsZXQgUSxFLHU7Zm9yKFE9MDtRPGE7USsrKXtpZih1PW5ldyBVaW50OEFycmF5KGkpLHMpZm9yKEU9MDtFPGk7RSsrKXVbRV09cztsLnB1c2godSl9Y29uc3QgZD1lLmxlbmd0aCxmPWVbMF0scD1mWzBdLmxlbmd0aCxtPWYubGVuZ3RoLHk9TUEoZCksdz1bXTtBfHwody5wdXNoKHt4OnQ8PTE/MzoyLHk6LTF9KSwwPT09dCYmdy5wdXNoKHt4Oi0zLHk6LTF9LHt4OjIseTotMn0se3g6LTIseTotMn0pKTtjb25zdCBEPVtdO2xldCBiLGssRixTLFIsRyxOLHgsVSxNLEw7Zm9yKEEmJihiPW5ldyBidChCLmRhdGEsQi5zdGFydCxCLmVuZCkpLFE9eS0xO1E+PTA7US0tKWs9QT9TdChiLGcsbywhMCk6Y3QoITEsZyxvLHQsITEsbnVsbCx3LEIpLERbUV09aztmb3IoRj0wO0Y8bztGKyspZm9yKFM9MDtTPGc7UysrKXtmb3IoUj0wLEc9MCxFPXktMTtFPj0wO0UtLSlSXj1EW0VdW0ZdW1NdLEd8PVI8PEU7aWYoTj1lW0ddLHg9SStGKkMrUypoPj44LFU9YytGKmgtUypDPj44LHg+PTAmJngrcDw9aSYmVT49MCYmVSttPD1hKWZvcihRPTA7UTxtO1ErKylmb3IoTD1sW1UrUV0sTT1OW1FdLEU9MDtFPHA7RSsrKUxbeCtFXXw9TVtFXTtlbHNle2xldCBBLGU7Zm9yKFE9MDtRPG07USsrKWlmKGU9VStRLCEoZTwwfHxlPj1hKSlmb3IoTD1sW2VdLE09TltRXSxFPTA7RTxwO0UrKylBPXgrRSxBPj0wJiZBPGkmJihMW0FdfD1NW0VdKX19cmV0dXJuIGx9KEEubW1yLHMsQS50ZW1wbGF0ZSxuLndpZHRoLG4uaGVpZ2h0LEEuZGVmYXVsdFBpeGVsVmFsdWUsQS5lbmFibGVTa2lwLEEuY29tYmluYXRpb25PcGVyYXRvcixBLmdyaWRXaWR0aCxBLmdyaWRIZWlnaHQsQS5ncmlkT2Zmc2V0WCxBLmdyaWRPZmZzZXRZLEEuZ3JpZFZlY3RvclgsQS5ncmlkVmVjdG9yWSxyKTt0aGlzLmRyYXdCaXRtYXAobixnKX1vbkltbWVkaWF0ZUxvc3NsZXNzSGFsZnRvbmVSZWdpb24oKXt0aGlzLm9uSW1tZWRpYXRlSGFsZnRvbmVSZWdpb24oLi4uYXJndW1lbnRzKX1vblRhYmxlcyhBLGUsdCxpKXtsZXQgYT10aGlzLmN1c3RvbVRhYmxlczthfHwodGhpcy5jdXN0b21UYWJsZXM9YT17fSksYVtBXT1mdW5jdGlvbihBLGUsdCl7Y29uc3QgaT1BW2VdLGE9NDI5NDk2NzI5NSZIQShBLGUrMSkscz00Mjk0OTY3Mjk1JkhBKEEsZSs1KSxuPW5ldyBidChBLGUrOSx0KSxyPTErKGk+PjEmNyksZz0xKyhpPj40JjcpLG89W107bGV0IEksYyxoPWE7ZG97ST1uLnJlYWRCaXRzKHIpLGM9bi5yZWFkQml0cyhnKSxvLnB1c2gobmV3IHB0KFtoLEksYywwXSkpLGgrPTE8PGN9d2hpbGUoaDxzKTtyZXR1cm4gST1uLnJlYWRCaXRzKHIpLG8ucHVzaChuZXcgcHQoW2EtMSxJLDMyLDAsImxvd2VyIl0pKSxJPW4ucmVhZEJpdHMociksby5wdXNoKG5ldyBwdChbcyxJLDMyLDBdKSksMSZpJiYoST1uLnJlYWRCaXRzKHIpLG8ucHVzaChuZXcgcHQoW0ksMF0pKSksbmV3IHl0KG8sITEpfShlLHQsaSl9fWNsYXNzIHB0e2NvbnN0cnVjdG9yKEEpezI9PT1BLmxlbmd0aD8odGhpcy5pc09PQj0hMCx0aGlzLnJhbmdlTG93PTAsdGhpcy5wcmVmaXhMZW5ndGg9QVswXSx0aGlzLnJhbmdlTGVuZ3RoPTAsdGhpcy5wcmVmaXhDb2RlPUFbMV0sdGhpcy5pc0xvd2VyUmFuZ2U9ITEpOih0aGlzLmlzT09CPSExLHRoaXMucmFuZ2VMb3c9QVswXSx0aGlzLnByZWZpeExlbmd0aD1BWzFdLHRoaXMucmFuZ2VMZW5ndGg9QVsyXSx0aGlzLnByZWZpeENvZGU9QVszXSx0aGlzLmlzTG93ZXJSYW5nZT0ibG93ZXIiPT09QVs0XSl9fWNsYXNzIG10e2NvbnN0cnVjdG9yKEEpe3RoaXMuY2hpbGRyZW49W10sQT8odGhpcy5pc0xlYWY9ITAsdGhpcy5yYW5nZUxlbmd0aD1BLnJhbmdlTGVuZ3RoLHRoaXMucmFuZ2VMb3c9QS5yYW5nZUxvdyx0aGlzLmlzTG93ZXJSYW5nZT1BLmlzTG93ZXJSYW5nZSx0aGlzLmlzT09CPUEuaXNPT0IpOnRoaXMuaXNMZWFmPSExfWJ1aWxkVHJlZShBLGUpe2NvbnN0IHQ9QS5wcmVmaXhDb2RlPj5lJjE7aWYoZTw9MCl0aGlzLmNoaWxkcmVuW3RdPW5ldyBtdChBKTtlbHNle2xldCBpPXRoaXMuY2hpbGRyZW5bdF07aXx8KHRoaXMuY2hpbGRyZW5bdF09aT1uZXcgbXQobnVsbCkpLGkuYnVpbGRUcmVlKEEsZS0xKX19ZGVjb2RlTm9kZShBKXtpZih0aGlzLmlzTGVhZil7aWYodGhpcy5pc09PQilyZXR1cm4gbnVsbDtjb25zdCBlPUEucmVhZEJpdHModGhpcy5yYW5nZUxlbmd0aCk7cmV0dXJuIHRoaXMucmFuZ2VMb3crKHRoaXMuaXNMb3dlclJhbmdlPy1lOmUpfWNvbnN0IGU9dGhpcy5jaGlsZHJlbltBLnJlYWRCaXQoKV07aWYoIWUpdGhyb3cgbmV3ICRlKCJpbnZhbGlkIEh1ZmZtYW4gZGF0YSIpO3JldHVybiBlLmRlY29kZU5vZGUoQSl9fWNsYXNzIHl0e2NvbnN0cnVjdG9yKEEsZSl7ZXx8dGhpcy5hc3NpZ25QcmVmaXhDb2RlcyhBKSx0aGlzLnJvb3ROb2RlPW5ldyBtdChudWxsKTtmb3IobGV0IGU9MCx0PUEubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9QVtlXTt0LnByZWZpeExlbmd0aD4wJiZ0aGlzLnJvb3ROb2RlLmJ1aWxkVHJlZSh0LHQucHJlZml4TGVuZ3RoLTEpfX1kZWNvZGUoQSl7cmV0dXJuIHRoaXMucm9vdE5vZGUuZGVjb2RlTm9kZShBKX1hc3NpZ25QcmVmaXhDb2RlcyhBKXtjb25zdCBlPUEubGVuZ3RoO2xldCB0PTA7Zm9yKGxldCBpPTA7aTxlO2krKyl0PU1hdGgubWF4KHQsQVtpXS5wcmVmaXhMZW5ndGgpO2NvbnN0IGk9bmV3IFVpbnQzMkFycmF5KHQrMSk7Zm9yKGxldCB0PTA7dDxlO3QrKylpW0FbdF0ucHJlZml4TGVuZ3RoXSsrO2xldCBhLHMsbixyPTEsZz0wO2ZvcihpWzBdPTA7cjw9dDspe2ZvcihnPWcraVtyLTFdPDwxLGE9ZyxzPTA7czxlOyluPUFbc10sbi5wcmVmaXhMZW5ndGg9PT1yJiYobi5wcmVmaXhDb2RlPWEsYSsrKSxzKys7cisrfX19Y29uc3Qgd3Q9e307ZnVuY3Rpb24gRHQoQSl7bGV0IGUsdD13dFtBXTtpZih0KXJldHVybiB0O3N3aXRjaChBKXtjYXNlIDE6ZT1bWzAsMSw0LDBdLFsxNiwyLDgsMl0sWzI3MiwzLDE2LDZdLFs2NTgwOCwzLDMyLDddXTticmVhaztjYXNlIDI6ZT1bWzAsMSwwLDBdLFsxLDIsMCwyXSxbMiwzLDAsNl0sWzMsNCwzLDE0XSxbMTEsNSw2LDMwXSxbNzUsNiwzMiw2Ml0sWzYsNjNdXTticmVhaztjYXNlIDM6ZT1bWy0yNTYsOCw4LDI1NF0sWzAsMSwwLDBdLFsxLDIsMCwyXSxbMiwzLDAsNl0sWzMsNCwzLDE0XSxbMTEsNSw2LDMwXSxbLTI1Nyw4LDMyLDI1NSwibG93ZXIiXSxbNzUsNywzMiwxMjZdLFs2LDYyXV07YnJlYWs7Y2FzZSA0OmU9W1sxLDEsMCwwXSxbMiwyLDAsMl0sWzMsMywwLDZdLFs0LDQsMywxNF0sWzEyLDUsNiwzMF0sWzc2LDUsMzIsMzFdXTticmVhaztjYXNlIDU6ZT1bWy0yNTUsNyw4LDEyNl0sWzEsMSwwLDBdLFsyLDIsMCwyXSxbMywzLDAsNl0sWzQsNCwzLDE0XSxbMTIsNSw2LDMwXSxbLTI1Niw3LDMyLDEyNywibG93ZXIiXSxbNzYsNiwzMiw2Ml1dO2JyZWFrO2Nhc2UgNjplPVtbLTIwNDgsNSwxMCwyOF0sWy0xMDI0LDQsOSw4XSxbLTUxMiw0LDgsOV0sWy0yNTYsNCw3LDEwXSxbLTEyOCw1LDYsMjldLFstNjQsNSw1LDMwXSxbLTMyLDQsNSwxMV0sWzAsMiw3LDBdLFsxMjgsMyw3LDJdLFsyNTYsMyw4LDNdLFs1MTIsNCw5LDEyXSxbMTAyNCw0LDEwLDEzXSxbLTIwNDksNiwzMiw2MiwibG93ZXIiXSxbMjA0OCw2LDMyLDYzXV07YnJlYWs7Y2FzZSA3OmU9W1stMTAyNCw0LDksOF0sWy01MTIsMyw4LDBdLFstMjU2LDQsNyw5XSxbLTEyOCw1LDYsMjZdLFstNjQsNSw1LDI3XSxbLTMyLDQsNSwxMF0sWzAsNCw1LDExXSxbMzIsNSw1LDI4XSxbNjQsNSw2LDI5XSxbMTI4LDQsNywxMl0sWzI1NiwzLDgsMV0sWzUxMiwzLDksMl0sWzEwMjQsMywxMCwzXSxbLTEwMjUsNSwzMiwzMCwibG93ZXIiXSxbMjA0OCw1LDMyLDMxXV07YnJlYWs7Y2FzZSA4OmU9W1stMTUsOCwzLDI1Ml0sWy03LDksMSw1MDhdLFstNSw4LDEsMjUzXSxbLTMsOSwwLDUwOV0sWy0yLDcsMCwxMjRdLFstMSw0LDAsMTBdLFswLDIsMSwwXSxbMiw1LDAsMjZdLFszLDYsMCw1OF0sWzQsMyw0LDRdLFsyMCw2LDEsNTldLFsyMiw0LDQsMTFdLFszOCw0LDUsMTJdLFs3MCw1LDYsMjddLFsxMzQsNSw3LDI4XSxbMjYyLDYsNyw2MF0sWzM5MCw3LDgsMTI1XSxbNjQ2LDYsMTAsNjFdLFstMTYsOSwzMiw1MTAsImxvd2VyIl0sWzE2NzAsOSwzMiw1MTFdLFsyLDFdXTticmVhaztjYXNlIDk6ZT1bWy0zMSw4LDQsMjUyXSxbLTE1LDksMiw1MDhdLFstMTEsOCwyLDI1M10sWy03LDksMSw1MDldLFstNSw3LDEsMTI0XSxbLTMsNCwxLDEwXSxbLTEsMywxLDJdLFsxLDMsMSwzXSxbMyw1LDEsMjZdLFs1LDYsMSw1OF0sWzcsMyw1LDRdLFszOSw2LDIsNTldLFs0Myw0LDUsMTFdLFs3NSw0LDYsMTJdLFsxMzksNSw3LDI3XSxbMjY3LDUsOCwyOF0sWzUyMyw2LDgsNjBdLFs3NzksNyw5LDEyNV0sWzEyOTEsNiwxMSw2MV0sWy0zMiw5LDMyLDUxMCwibG93ZXIiXSxbMzMzOSw5LDMyLDUxMV0sWzIsMF1dO2JyZWFrO2Nhc2UgMTA6ZT1bWy0yMSw3LDQsMTIyXSxbLTUsOCwwLDI1Ml0sWy00LDcsMCwxMjNdLFstMyw1LDAsMjRdLFstMiwyLDIsMF0sWzIsNSwwLDI1XSxbMyw2LDAsNTRdLFs0LDcsMCwxMjRdLFs1LDgsMCwyNTNdLFs2LDIsNiwxXSxbNzAsNSw1LDI2XSxbMTAyLDYsNSw1NV0sWzEzNCw2LDYsNTZdLFsxOTgsNiw3LDU3XSxbMzI2LDYsOCw1OF0sWzU4Miw2LDksNTldLFsxMDk0LDYsMTAsNjBdLFsyMTE4LDcsMTEsMTI1XSxbLTIyLDgsMzIsMjU0LCJsb3dlciJdLFs0MTY2LDgsMzIsMjU1XSxbMiwyXV07YnJlYWs7Y2FzZSAxMTplPVtbMSwxLDAsMF0sWzIsMiwxLDJdLFs0LDQsMCwxMl0sWzUsNCwxLDEzXSxbNyw1LDEsMjhdLFs5LDUsMiwyOV0sWzEzLDYsMiw2MF0sWzE3LDcsMiwxMjJdLFsyMSw3LDMsMTIzXSxbMjksNyw0LDEyNF0sWzQ1LDcsNSwxMjVdLFs3Nyw3LDYsMTI2XSxbMTQxLDcsMzIsMTI3XV07YnJlYWs7Y2FzZSAxMjplPVtbMSwxLDAsMF0sWzIsMiwwLDJdLFszLDMsMSw2XSxbNSw1LDAsMjhdLFs2LDUsMSwyOV0sWzgsNiwxLDYwXSxbMTAsNywwLDEyMl0sWzExLDcsMSwxMjNdLFsxMyw3LDIsMTI0XSxbMTcsNywzLDEyNV0sWzI1LDcsNCwxMjZdLFs0MSw4LDUsMjU0XSxbNzMsOCwzMiwyNTVdXTticmVhaztjYXNlIDEzOmU9W1sxLDEsMCwwXSxbMiwzLDAsNF0sWzMsNCwwLDEyXSxbNCw1LDAsMjhdLFs1LDQsMSwxM10sWzcsMywzLDVdLFsxNSw2LDEsNThdLFsxNyw2LDIsNTldLFsyMSw2LDMsNjBdLFsyOSw2LDQsNjFdLFs0NSw2LDUsNjJdLFs3Nyw3LDYsMTI2XSxbMTQxLDcsMzIsMTI3XV07YnJlYWs7Y2FzZSAxNDplPVtbLTIsMywwLDRdLFstMSwzLDAsNV0sWzAsMSwwLDBdLFsxLDMsMCw2XSxbMiwzLDAsN11dO2JyZWFrO2Nhc2UgMTU6ZT1bWy0yNCw3LDQsMTI0XSxbLTgsNiwyLDYwXSxbLTQsNSwxLDI4XSxbLTIsNCwwLDEyXSxbLTEsMywwLDRdLFswLDEsMCwwXSxbMSwzLDAsNV0sWzIsNCwwLDEzXSxbMyw1LDEsMjldLFs1LDYsMiw2MV0sWzksNyw0LDEyNV0sWy0yNSw3LDMyLDEyNiwibG93ZXIiXSxbMjUsNywzMiwxMjddXTticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZShgc3RhbmRhcmQgdGFibGUgQi4ke0F9IGRvZXMgbm90IGV4aXN0YCl9Zm9yKGxldCBBPTAsdD1lLmxlbmd0aDtBPHQ7QSsrKWVbQV09bmV3IHB0KGVbQV0pO3JldHVybiB0PW5ldyB5dChlLCEwKSx3dFtBXT10LHR9Y2xhc3MgYnR7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGF0YT1BLHRoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10LHRoaXMucG9zaXRpb249ZSx0aGlzLnNoaWZ0PS0xLHRoaXMuY3VycmVudEJ5dGU9MH1yZWFkQml0KCl7aWYodGhpcy5zaGlmdDwwKXtpZih0aGlzLnBvc2l0aW9uPj10aGlzLmVuZCl0aHJvdyBuZXcgJGUoImVuZCBvZiBkYXRhIHdoaWxlIHJlYWRpbmcgYml0Iik7dGhpcy5jdXJyZW50Qnl0ZT10aGlzLmRhdGFbdGhpcy5wb3NpdGlvbisrXSx0aGlzLnNoaWZ0PTd9Y29uc3QgQT10aGlzLmN1cnJlbnRCeXRlPj50aGlzLnNoaWZ0JjE7cmV0dXJuIHRoaXMuc2hpZnQtLSxBfXJlYWRCaXRzKEEpe2xldCBlLHQ9MDtmb3IoZT1BLTE7ZT49MDtlLS0pdHw9dGhpcy5yZWFkQml0KCk8PGU7cmV0dXJuIHR9Ynl0ZUFsaWduKCl7dGhpcy5zaGlmdD0tMX1uZXh0KCl7cmV0dXJuIHRoaXMucG9zaXRpb24+PXRoaXMuZW5kPy0xOnRoaXMuZGF0YVt0aGlzLnBvc2l0aW9uKytdfX1mdW5jdGlvbiBrdChBLGUsdCl7bGV0IGk9MDtmb3IobGV0IGE9MCxzPWUubGVuZ3RoO2E8czthKyspe2NvbnN0IHM9dFtlW2FdXTtpZihzKXtpZihBPT09aSlyZXR1cm4gcztpKyt9fXRocm93IG5ldyAkZSgiY2FuJ3QgZmluZCBjdXN0b20gSHVmZm1hbiB0YWJsZSIpfWZ1bmN0aW9uIEZ0KEEsZSx0KXtjb25zdCBpPVtdO2ZvcihsZXQgYT0wO2E8dDthKyspe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoZSk7aS5wdXNoKHQpO2ZvcihsZXQgaT0wO2k8ZTtpKyspdFtpXT1BLnJlYWRCaXQoKTtBLmJ5dGVBbGlnbigpfXJldHVybiBpfWZ1bmN0aW9uIFN0KEEsZSx0LGkpe2NvbnN0IGE9bmV3IFRlKEEse0s6LTEsQ29sdW1uczplLFJvd3M6dCxCbGFja0lzMTohMCxFbmRPZkJsb2NrOml9KSxzPVtdO2xldCBuLHI9ITE7Zm9yKGxldCBBPTA7QTx0O0ErKyl7Y29uc3QgQT1uZXcgVWludDhBcnJheShlKTtzLnB1c2goQSk7bGV0IHQ9LTE7Zm9yKGxldCBpPTA7aTxlO2krKyl0PDAmJihuPWEucmVhZE5leHRDaGFyKCksLTE9PT1uJiYobj0wLHI9ITApLHQ9NyksQVtpXT1uPj50JjEsdC0tfWlmKGkmJiFyKXtjb25zdCBBPTU7Zm9yKGxldCBlPTA7ZTxBJiYtMSE9PWEucmVhZE5leHRDaGFyKCk7ZSsrKTt9cmV0dXJuIHN9Y2xhc3MgUnR7cGFyc2VDaHVua3MoQSl7cmV0dXJuIGZ1bmN0aW9uKEEpe2NvbnN0IGU9bmV3IGZ0O2ZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1BW3RdO2R0KGx0KHt9LGkuZGF0YSxpLnN0YXJ0LGkuZW5kKSxlKX1yZXR1cm4gZS5idWZmZXJ9KEEpfXBhcnNlKEEpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkOiBKYmlnMkltYWdlLnBhcnNlIil9fWNsYXNzIEd0IGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKGUpLHRoaXMuc3RyZWFtPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLm1heWJlTGVuZ3RoPWUsdGhpcy5wYXJhbXM9dH1nZXQgYnl0ZXMoKXtyZXR1cm4gSCh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihBKXt9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZSgpfWRlY29kZUltYWdlKEEpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtBfHw9dGhpcy5ieXRlcztjb25zdCBlPW5ldyBSdCx0PVtdO2lmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9dGhpcy5wYXJhbXMuZ2V0KCJKQklHMkdsb2JhbHMiKTtpZihBIGluc3RhbmNlb2Ygd0Epe2NvbnN0IGU9QS5nZXRCeXRlcygpO3QucHVzaCh7ZGF0YTplLHN0YXJ0OjAsZW5kOmUubGVuZ3RofSl9fXQucHVzaCh7ZGF0YTpBLHN0YXJ0OjAsZW5kOkEubGVuZ3RofSk7Y29uc3QgaT1lLnBhcnNlQ2h1bmtzKHQpLGE9aS5sZW5ndGg7Zm9yKGxldCBBPTA7QTxhO0ErKylpW0FdXj0yNTU7cmV0dXJuIHRoaXMuYnVmZmVyPWksdGhpcy5idWZmZXJMZW5ndGg9YSx0aGlzLmVvZj0hMCx0aGlzLmJ1ZmZlcn1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0uaXNBc3luY319ZnVuY3Rpb24gTnQoe3NyYzpBLHNyY1BvczplPTAsZGVzdDp0LHdpZHRoOmksaGVpZ2h0OmEsbm9uQmxhY2tDb2xvcjpzPTQyOTQ5NjcyOTUsaW52ZXJzZURlY29kZTpuPSExfSl7Y29uc3Qgcj1fLmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1LFtnLG9dPW4/W3Mscl06W3Isc10sST1pPj4zLGM9NyZpLGg9QS5sZW5ndGg7dD1uZXcgVWludDMyQXJyYXkodC5idWZmZXIpO2xldCBDPTA7Zm9yKGxldCBpPTA7aTxhO2krKyl7Zm9yKGNvbnN0IGk9ZStJO2U8aTtlKyspe2NvbnN0IGk9ZTxoP0FbZV06MjU1O3RbQysrXT0xMjgmaT9vOmcsdFtDKytdPTY0Jmk/bzpnLHRbQysrXT0zMiZpP286Zyx0W0MrK109MTYmaT9vOmcsdFtDKytdPTgmaT9vOmcsdFtDKytdPTQmaT9vOmcsdFtDKytdPTImaT9vOmcsdFtDKytdPTEmaT9vOmd9aWYoMD09PWMpY29udGludWU7Y29uc3QgaT1lPGg/QVtlKytdOjI1NTtmb3IobGV0IEE9MDtBPGM7QSsrKXRbQysrXT1pJjE8PDctQT9vOmd9cmV0dXJue3NyY1BvczplLGRlc3RQb3M6Q319Y2xhc3MgeHQgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkpwZWdFcnJvciIpfX1jbGFzcyBVdCBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihBLCJETkxNYXJrZXJFcnJvciIpLHRoaXMuc2NhbkxpbmVzPWV9fWNsYXNzIE10IGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJFT0lNYXJrZXJFcnJvciIpfX1jb25zdCBMdD1uZXcgVWludDhBcnJheShbMCwxLDgsMTYsOSwyLDMsMTAsMTcsMjQsMzIsMjUsMTgsMTEsNCw1LDEyLDE5LDI2LDMzLDQwLDQ4LDQxLDM0LDI3LDIwLDEzLDYsNywxNCwyMSwyOCwzNSw0Miw0OSw1Niw1Nyw1MCw0MywzNiwyOSwyMiwxNSwyMywzMCwzNyw0NCw1MSw1OCw1OSw1Miw0NSwzOCwzMSwzOSw0Niw1Myw2MCw2MSw1NCw0Nyw1NSw2Miw2M10pLEp0PTQwMTcsSHQ9Nzk5LFl0PTM0MDYsdnQ9MjI3NixLdD0xNTY3LHF0PTM3ODQsVHQ9NTc5MyxQdD0yODk2O2Z1bmN0aW9uIFd0KEEsZSl7bGV0IHQsaSxhPTAscz0xNjtmb3IoO3M+MCYmIUFbcy0xXTspcy0tO2NvbnN0IG49W3tjaGlsZHJlbjpbXSxpbmRleDowfV07bGV0IHIsZz1uWzBdO2Zvcih0PTA7dDxzO3QrKyl7Zm9yKGk9MDtpPEFbdF07aSsrKXtmb3IoZz1uLnBvcCgpLGcuY2hpbGRyZW5bZy5pbmRleF09ZVthXTtnLmluZGV4PjA7KWc9bi5wb3AoKTtmb3IoZy5pbmRleCsrLG4ucHVzaChnKTtuLmxlbmd0aDw9dDspbi5wdXNoKHI9e2NoaWxkcmVuOltdLGluZGV4OjB9KSxnLmNoaWxkcmVuW2cuaW5kZXhdPXIuY2hpbGRyZW4sZz1yO2ErK310KzE8cyYmKG4ucHVzaChyPXtjaGlsZHJlbjpbXSxpbmRleDowfSksZy5jaGlsZHJlbltnLmluZGV4XT1yLmNoaWxkcmVuLGc9cil9cmV0dXJuIG5bMF0uY2hpbGRyZW59ZnVuY3Rpb24gT3QoQSxlLHQpe3JldHVybiA2NCooKEEuYmxvY2tzUGVyTGluZSsxKSplK3QpfWZ1bmN0aW9uIFp0KEEsZSx0LGksYSxzLG4scixnLG89ITEpe2NvbnN0IEk9dC5tY3VzUGVyTGluZSxjPXQucHJvZ3Jlc3NpdmUsaD1lO2xldCBDPTAsQj0wO2Z1bmN0aW9uIGwoKXtpZihCPjApcmV0dXJuIEItLSxDPj5CJjE7aWYoQz1BW2UrK10sMjU1PT09Qyl7Y29uc3QgaT1BW2UrK107aWYoaSl7aWYoMjIwPT09aSYmbyl7Y29uc3QgaT1KQShBLGUrPTIpO2lmKGUrPTIsaT4wJiZpIT09dC5zY2FuTGluZXMpdGhyb3cgbmV3IFV0KCJGb3VuZCBETkwgbWFya2VyICgweEZGREMpIHdoaWxlIHBhcnNpbmcgc2NhbiBkYXRhIixpKX1lbHNlIGlmKDIxNz09PWkpe2lmKG8pe2NvbnN0IEE9bSooOD09PXQucHJlY2lzaW9uPzg6MCk7aWYoQT4wJiZNYXRoLnJvdW5kKHQuc2NhbkxpbmVzL0EpPj01KXRocm93IG5ldyBVdCgiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSwgcG9zc2libHkgY2F1c2VkIGJ5IGluY29ycmVjdCBgc2NhbkxpbmVzYCBwYXJhbWV0ZXIiLEEpfXRocm93IG5ldyBNdCgiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSIpfXRocm93IG5ldyB4dChgdW5leHBlY3RlZCBtYXJrZXIgJHsoQzw8OHxpKS50b1N0cmluZygxNil9YCl9fXJldHVybiBCPTcsQz4+Pjd9ZnVuY3Rpb24gUShBKXtsZXQgZT1BO2Zvcig7Oyl7c3dpdGNoKGU9ZVtsKCldLHR5cGVvZiBlKXtjYXNlIm51bWJlciI6cmV0dXJuIGU7Y2FzZSJvYmplY3QiOmNvbnRpbnVlfXRocm93IG5ldyB4dCgiaW52YWxpZCBodWZmbWFuIHNlcXVlbmNlIil9fWZ1bmN0aW9uIEUoQSl7bGV0IGU9MDtmb3IoO0E+MDspZT1lPDwxfGwoKSxBLS07cmV0dXJuIGV9ZnVuY3Rpb24gdShBKXtpZigxPT09QSlyZXR1cm4gMT09PWwoKT8xOi0xO2NvbnN0IGU9RShBKTtyZXR1cm4gZT49MTw8QS0xP2U6ZSsoLTE8PEEpKzF9bGV0IGQsZj0wLHA9MCxtPTA7ZnVuY3Rpb24geShBLGUsdCxpLGEpe2NvbnN0IHM9dCVJO209KHQvSXwwKSpBLnYraTtjb25zdCBuPXMqQS5oK2E7ZShBLE90KEEsbSxuKSl9ZnVuY3Rpb24gdyhBLGUsdCl7bT10L0EuYmxvY2tzUGVyTGluZXwwO2NvbnN0IGk9dCVBLmJsb2Nrc1BlckxpbmU7ZShBLE90KEEsbSxpKSl9Y29uc3QgRD1pLmxlbmd0aDtsZXQgYixrLEYsUyxSLEc7Rz1jPzA9PT1zPzA9PT1yP2Z1bmN0aW9uKEEsZSl7Y29uc3QgdD1RKEEuaHVmZm1hblRhYmxlREMpLGk9MD09PXQ/MDp1KHQpPDxnO0EuYmxvY2tEYXRhW2VdPUEucHJlZCs9aX06ZnVuY3Rpb24oQSxlKXtBLmJsb2NrRGF0YVtlXXw9bCgpPDxnfTowPT09cj9mdW5jdGlvbihBLGUpe2lmKGY+MClyZXR1cm4gdm9pZCBmLS07bGV0IHQ9cztjb25zdCBpPW47Zm9yKDt0PD1pOyl7Y29uc3QgaT1RKEEuaHVmZm1hblRhYmxlQUMpLGE9MTUmaSxzPWk+PjQ7aWYoMD09PWEpe2lmKHM8MTUpe2Y9RShzKSsoMTw8cyktMTticmVha310Kz0xNjtjb250aW51ZX10Kz1zO2NvbnN0IG49THRbdF07QS5ibG9ja0RhdGFbZStuXT11KGEpKigxPDxnKSx0Kyt9fTpmdW5jdGlvbihBLGUpe2xldCB0PXM7Y29uc3QgaT1uO2xldCBhLHIsbz0wO2Zvcig7dDw9aTspe2NvbnN0IGk9ZStMdFt0XSxzPUEuYmxvY2tEYXRhW2ldPDA/LTE6MTtzd2l0Y2gocCl7Y2FzZSAwOmlmKHI9UShBLmh1ZmZtYW5UYWJsZUFDKSxhPTE1JnIsbz1yPj40LDA9PT1hKW88MTU/KGY9RShvKSsoMTw8bykscD00KToobz0xNixwPTEpO2Vsc2V7aWYoMSE9PWEpdGhyb3cgbmV3IHh0KCJpbnZhbGlkIEFDbiBlbmNvZGluZyIpO2Q9dShhKSxwPW8/MjozfWNvbnRpbnVlO2Nhc2UgMTpjYXNlIDI6QS5ibG9ja0RhdGFbaV0/QS5ibG9ja0RhdGFbaV0rPXMqKGwoKTw8Zyk6KG8tLSwwPT09byYmKHA9Mj09PXA/MzowKSk7YnJlYWs7Y2FzZSAzOkEuYmxvY2tEYXRhW2ldP0EuYmxvY2tEYXRhW2ldKz1zKihsKCk8PGcpOihBLmJsb2NrRGF0YVtpXT1kPDxnLHA9MCk7YnJlYWs7Y2FzZSA0OkEuYmxvY2tEYXRhW2ldJiYoQS5ibG9ja0RhdGFbaV0rPXMqKGwoKTw8ZykpfXQrK300PT09cCYmKGYtLSwwPT09ZiYmKHA9MCkpfTpmdW5jdGlvbihBLGUpe2NvbnN0IHQ9UShBLmh1ZmZtYW5UYWJsZURDKSxpPTA9PT10PzA6dSh0KTtBLmJsb2NrRGF0YVtlXT1BLnByZWQrPWk7bGV0IGE9MTtmb3IoO2E8NjQ7KXtjb25zdCB0PVEoQS5odWZmbWFuVGFibGVBQyksaT0xNSZ0LHM9dD4+NDtpZigwPT09aSl7aWYoczwxNSlicmVhazthKz0xNjtjb250aW51ZX1hKz1zO2NvbnN0IG49THRbYV07QS5ibG9ja0RhdGFbZStuXT11KGkpLGErK319O2xldCBOLHg9MDtjb25zdCBNPTE9PT1EP2lbMF0uYmxvY2tzUGVyTGluZSppWzBdLmJsb2Nrc1BlckNvbHVtbjpJKnQubWN1c1BlckNvbHVtbjtsZXQgTCxKO2Zvcig7eDw9TTspe2NvbnN0IHQ9YT9NYXRoLm1pbihNLXgsYSk6TTtpZih0PjApe2ZvcihrPTA7azxEO2srKylpW2tdLnByZWQ9MDtpZihmPTAsMT09PUQpZm9yKGI9aVswXSxSPTA7Ujx0O1IrKyl3KGIsRyx4KSx4Kys7ZWxzZSBmb3IoUj0wO1I8dDtSKyspe2ZvcihrPTA7azxEO2srKylmb3IoYj1pW2tdLEw9Yi5oLEo9Yi52LEY9MDtGPEo7RisrKWZvcihTPTA7UzxMO1MrKyl5KGIsRyx4LEYsUyk7eCsrfX1pZihCPTAsTj1WdChBLGUpLCFOKWJyZWFrO2lmKE4uaW52YWxpZCYmKFUoYGRlY29kZVNjYW4gLSAke3Q+MD8idW5leHBlY3RlZCI6ImV4Y2Vzc2l2ZSJ9IE1DVSBkYXRhLCBjdXJyZW50IG1hcmtlciBpczogJHtOLmludmFsaWR9YCksZT1OLm9mZnNldCksIShOLm1hcmtlcj49NjU0ODgmJk4ubWFya2VyPD02NTQ5NSkpYnJlYWs7ZSs9Mn1yZXR1cm4gZS1ofWZ1bmN0aW9uIGp0KEEsZSx0KXtjb25zdCBpPUEucXVhbnRpemF0aW9uVGFibGUsYT1BLmJsb2NrRGF0YTtsZXQgcyxuLHIsZyxvLEksYyxoLEMsQixsLFEsRSx1LGQsZixwO2lmKCFpKXRocm93IG5ldyB4dCgibWlzc2luZyByZXF1aXJlZCBRdWFudGl6YXRpb24gVGFibGUuIik7Zm9yKGxldCBBPTA7QTw2NDtBKz04KUM9YVtlK0FdLEI9YVtlK0ErMV0sbD1hW2UrQSsyXSxRPWFbZStBKzNdLEU9YVtlK0ErNF0sdT1hW2UrQSs1XSxkPWFbZStBKzZdLGY9YVtlK0ErN10sQyo9aVtBXSwwIT0oQnxsfFF8RXx1fGR8Zik/KEIqPWlbQSsxXSxsKj1pW0ErMl0sUSo9aVtBKzNdLEUqPWlbQSs0XSx1Kj1pW0ErNV0sZCo9aVtBKzZdLGYqPWlbQSs3XSxzPVR0KkMrMTI4Pj44LG49VHQqRSsxMjg+Pjgscj1sLGc9ZCxvPVB0KihCLWYpKzEyOD4+OCxoPVB0KihCK2YpKzEyOD4+OCxJPVE8PDQsYz11PDw0LHM9cytuKzE+PjEsbj1zLW4scD1yKnF0K2cqS3QrMTI4Pj44LHI9cipLdC1nKnF0KzEyOD4+OCxnPXAsbz1vK2MrMT4+MSxjPW8tYyxoPWgrSSsxPj4xLEk9aC1JLHM9cytnKzE+PjEsZz1zLWcsbj1uK3IrMT4+MSxyPW4tcixwPW8qdnQraCpZdCsyMDQ4Pj4xMixvPW8qWXQtaCp2dCsyMDQ4Pj4xMixoPXAscD1JKkh0K2MqSnQrMjA0OD4+MTIsST1JKkp0LWMqSHQrMjA0OD4+MTIsYz1wLHRbQV09cytoLHRbQSs3XT1zLWgsdFtBKzFdPW4rYyx0W0ErNl09bi1jLHRbQSsyXT1yK0ksdFtBKzVdPXItSSx0W0ErM109ZytvLHRbQSs0XT1nLW8pOihwPVR0KkMrNTEyPj4xMCx0W0FdPXAsdFtBKzFdPXAsdFtBKzJdPXAsdFtBKzNdPXAsdFtBKzRdPXAsdFtBKzVdPXAsdFtBKzZdPXAsdFtBKzddPXApO2ZvcihsZXQgQT0wO0E8ODsrK0EpQz10W0FdLEI9dFtBKzhdLGw9dFtBKzE2XSxRPXRbQSsyNF0sRT10W0ErMzJdLHU9dFtBKzQwXSxkPXRbQSs0OF0sZj10W0ErNTZdLDAhPShCfGx8UXxFfHV8ZHxmKT8ocz1UdCpDKzIwNDg+PjEyLG49VHQqRSsyMDQ4Pj4xMixyPWwsZz1kLG89UHQqKEItZikrMjA0OD4+MTIsaD1QdCooQitmKSsyMDQ4Pj4xMixJPVEsYz11LHM9NDExMisocytuKzE+PjEpLG49cy1uLHA9cipxdCtnKkt0KzIwNDg+PjEyLHI9cipLdC1nKnF0KzIwNDg+PjEyLGc9cCxvPW8rYysxPj4xLGM9by1jLGg9aCtJKzE+PjEsST1oLUkscz1zK2crMT4+MSxnPXMtZyxuPW4rcisxPj4xLHI9bi1yLHA9byp2dCtoKll0KzIwNDg+PjEyLG89bypZdC1oKnZ0KzIwNDg+PjEyLGg9cCxwPUkqSHQrYypKdCsyMDQ4Pj4xMixJPUkqSnQtYypIdCsyMDQ4Pj4xMixjPXAsQz1zK2gsZj1zLWgsQj1uK2MsZD1uLWMsbD1yK0ksdT1yLUksUT1nK28sRT1nLW8sQzwxNj9DPTA6Qz49NDA4MD9DPTI1NTpDPj49NCxCPDE2P0I9MDpCPj00MDgwP0I9MjU1OkI+Pj00LGw8MTY/bD0wOmw+PTQwODA/bD0yNTU6bD4+PTQsUTwxNj9RPTA6UT49NDA4MD9RPTI1NTpRPj49NCxFPDE2P0U9MDpFPj00MDgwP0U9MjU1OkU+Pj00LHU8MTY/dT0wOnU+PTQwODA/dT0yNTU6dT4+PTQsZDwxNj9kPTA6ZD49NDA4MD9kPTI1NTpkPj49NCxmPDE2P2Y9MDpmPj00MDgwP2Y9MjU1OmY+Pj00LGFbZStBXT1DLGFbZStBKzhdPUIsYVtlK0ErMTZdPWwsYVtlK0ErMjRdPVEsYVtlK0ErMzJdPUUsYVtlK0ErNDBdPXUsYVtlK0ErNDhdPWQsYVtlK0ErNTZdPWYpOihwPVR0KkMrODE5Mj4+MTQscD1wPC0yMDQwPzA6cD49MjAyND8yNTU6cCsyMDU2Pj40LGFbZStBXT1wLGFbZStBKzhdPXAsYVtlK0ErMTZdPXAsYVtlK0ErMjRdPXAsYVtlK0ErMzJdPXAsYVtlK0ErNDBdPXAsYVtlK0ErNDhdPXAsYVtlK0ErNTZdPXApfWZ1bmN0aW9uIFh0KEEsZSl7Y29uc3QgdD1lLmJsb2Nrc1BlckxpbmUsaT1lLmJsb2Nrc1BlckNvbHVtbixhPW5ldyBJbnQxNkFycmF5KDY0KTtmb3IobGV0IEE9MDtBPGk7QSsrKWZvcihsZXQgaT0wO2k8dDtpKyspanQoZSxPdChlLEEsaSksYSk7cmV0dXJuIGUuYmxvY2tEYXRhfWZ1bmN0aW9uIFZ0KEEsZSx0PWUpe2NvbnN0IGk9QS5sZW5ndGgtMTtsZXQgYT10PGU/dDplO2lmKGU+PWkpcmV0dXJuIG51bGw7Y29uc3Qgcz1KQShBLGUpO2lmKHM+PTY1NDcyJiZzPD02NTUzNClyZXR1cm57aW52YWxpZDpudWxsLG1hcmtlcjpzLG9mZnNldDplfTtsZXQgbj1KQShBLGEpO2Zvcig7IShuPj02NTQ3MiYmbjw9NjU1MzQpOyl7aWYoKythPj1pKXJldHVybiBudWxsO249SkEoQSxhKX1yZXR1cm57aW52YWxpZDpzLnRvU3RyaW5nKDE2KSxtYXJrZXI6bixvZmZzZXQ6YX19Y2xhc3MgX3R7Y29uc3RydWN0b3Ioe2RlY29kZVRyYW5zZm9ybTpBPW51bGwsY29sb3JUcmFuc2Zvcm06ZT0tMX09e30pe3RoaXMuX2RlY29kZVRyYW5zZm9ybT1BLHRoaXMuX2NvbG9yVHJhbnNmb3JtPWV9cGFyc2UoQSx7ZG5sU2NhbkxpbmVzOmU9bnVsbH09e30pe2Z1bmN0aW9uIHQoKXtjb25zdCBlPUpBKEEsbik7bis9MjtsZXQgdD1uK2UtMjtjb25zdCBpPVZ0KEEsdCxuKTtpPy5pbnZhbGlkJiYoVSgicmVhZERhdGFCbG9jayAtIGluY29ycmVjdCBsZW5ndGgsIGN1cnJlbnQgbWFya2VyIGlzOiAiK2kuaW52YWxpZCksdD1pLm9mZnNldCk7Y29uc3QgYT1BLnN1YmFycmF5KG4sdCk7cmV0dXJuIG4rPWEubGVuZ3RoLGF9ZnVuY3Rpb24gaShBKXtjb25zdCBlPU1hdGguY2VpbChBLnNhbXBsZXNQZXJMaW5lLzgvQS5tYXhIKSx0PU1hdGguY2VpbChBLnNjYW5MaW5lcy84L0EubWF4Vik7Zm9yKGNvbnN0IGkgb2YgQS5jb21wb25lbnRzKXtjb25zdCBhPU1hdGguY2VpbChNYXRoLmNlaWwoQS5zYW1wbGVzUGVyTGluZS84KSppLmgvQS5tYXhIKSxzPU1hdGguY2VpbChNYXRoLmNlaWwoQS5zY2FuTGluZXMvOCkqaS52L0EubWF4Viksbj1lKmkuaCxyPXQqaS52KjY0KihuKzEpO2kuYmxvY2tEYXRhPW5ldyBJbnQxNkFycmF5KHIpLGkuYmxvY2tzUGVyTGluZT1hLGkuYmxvY2tzUGVyQ29sdW1uPXN9QS5tY3VzUGVyTGluZT1lLEEubWN1c1BlckNvbHVtbj10fWxldCBhLHMsbj0wLHI9bnVsbCxnPW51bGwsbz0wO2NvbnN0IEk9W10sYz1bXSxoPVtdO2xldCBDPUpBKEEsbik7aWYobis9Miw2NTQ5NiE9PUMpdGhyb3cgbmV3IHh0KCJTT0kgbm90IGZvdW5kIik7Qz1KQShBLG4pLG4rPTI7QTpmb3IoOzY1NDk3IT09Qzspe2xldCBCLGwsUTtzd2l0Y2goQyl7Y2FzZSA2NTUwNDpjYXNlIDY1NTA1OmNhc2UgNjU1MDY6Y2FzZSA2NTUwNzpjYXNlIDY1NTA4OmNhc2UgNjU1MDk6Y2FzZSA2NTUxMDpjYXNlIDY1NTExOmNhc2UgNjU1MTI6Y2FzZSA2NTUxMzpjYXNlIDY1NTE0OmNhc2UgNjU1MTU6Y2FzZSA2NTUxNjpjYXNlIDY1NTE3OmNhc2UgNjU1MTg6Y2FzZSA2NTUxOTpjYXNlIDY1NTM0OmNvbnN0IEU9dCgpOzY1NTA0PT09QyYmNzQ9PT1FWzBdJiY3MD09PUVbMV0mJjczPT09RVsyXSYmNzA9PT1FWzNdJiYwPT09RVs0XSYmKHI9e3ZlcnNpb246e21ham9yOkVbNV0sbWlub3I6RVs2XX0sZGVuc2l0eVVuaXRzOkVbN10seERlbnNpdHk6RVs4XTw8OHxFWzldLHlEZW5zaXR5OkVbMTBdPDw4fEVbMTFdLHRodW1iV2lkdGg6RVsxMl0sdGh1bWJIZWlnaHQ6RVsxM10sdGh1bWJEYXRhOkUuc3ViYXJyYXkoMTQsMTQrMypFWzEyXSpFWzEzXSl9KSw2NTUxOD09PUMmJjY1PT09RVswXSYmMTAwPT09RVsxXSYmMTExPT09RVsyXSYmOTg9PT1FWzNdJiYxMDE9PT1FWzRdJiYoZz17dmVyc2lvbjpFWzVdPDw4fEVbNl0sZmxhZ3MwOkVbN108PDh8RVs4XSxmbGFnczE6RVs5XTw8OHxFWzEwXSx0cmFuc2Zvcm1Db2RlOkVbMTFdfSk7YnJlYWs7Y2FzZSA2NTQ5OTpjb25zdCB1PUpBKEEsbik7bis9Mjtjb25zdCBkPXUrbi0yO2xldCBmO2Zvcig7bjxkOyl7Y29uc3QgZT1BW24rK10sdD1uZXcgVWludDE2QXJyYXkoNjQpO2lmKGU+PjQ9PTApZm9yKGw9MDtsPDY0O2wrKylmPUx0W2xdLHRbZl09QVtuKytdO2Vsc2V7aWYoZT4+NCE9MSl0aHJvdyBuZXcgeHQoIkRRVCAtIGludmFsaWQgdGFibGUgc3BlYyIpO2ZvcihsPTA7bDw2NDtsKyspZj1MdFtsXSx0W2ZdPUpBKEEsbiksbis9Mn1JWzE1JmVdPXR9YnJlYWs7Y2FzZSA2NTQ3MjpjYXNlIDY1NDczOmNhc2UgNjU0NzQ6aWYoYSl0aHJvdyBuZXcgeHQoIk9ubHkgc2luZ2xlIGZyYW1lIEpQRUdzIHN1cHBvcnRlZCIpO24rPTIsYT17fSxhLmV4dGVuZGVkPTY1NDczPT09QyxhLnByb2dyZXNzaXZlPTY1NDc0PT09QyxhLnByZWNpc2lvbj1BW24rK107Y29uc3QgcD1KQShBLG4pO24rPTIsYS5zY2FuTGluZXM9ZXx8cCxhLnNhbXBsZXNQZXJMaW5lPUpBKEEsbiksbis9MixhLmNvbXBvbmVudHM9W10sYS5jb21wb25lbnRJZHM9e307Y29uc3QgbT1BW24rK107bGV0IHk9MCx3PTA7Zm9yKEI9MDtCPG07QisrKXtjb25zdCBlPUFbbl0sdD1BW24rMV0+PjQsaT0xNSZBW24rMV07eTx0JiYoeT10KSx3PGkmJih3PWkpO2NvbnN0IHM9QVtuKzJdO1E9YS5jb21wb25lbnRzLnB1c2goe2g6dCx2OmkscXVhbnRpemF0aW9uSWQ6cyxxdWFudGl6YXRpb25UYWJsZTpudWxsfSksYS5jb21wb25lbnRJZHNbZV09US0xLG4rPTN9YS5tYXhIPXksYS5tYXhWPXcsaShhKTticmVhaztjYXNlIDY1NDc2OmNvbnN0IEQ9SkEoQSxuKTtmb3Iobis9MixCPTI7QjxEOyl7Y29uc3QgZT1BW24rK10sdD1uZXcgVWludDhBcnJheSgxNik7bGV0IGk9MDtmb3IobD0wO2w8MTY7bCsrLG4rKylpKz10W2xdPUFbbl07Y29uc3QgYT1uZXcgVWludDhBcnJheShpKTtmb3IobD0wO2w8aTtsKyssbisrKWFbbF09QVtuXTtCKz0xNytpLChlPj40PT0wP2g6YylbMTUmZV09V3QodCxhKX1icmVhaztjYXNlIDY1NTAxOm4rPTIscz1KQShBLG4pLG4rPTI7YnJlYWs7Y2FzZSA2NTQ5ODpjb25zdCBiPTE9PSsrbyYmIWU7bis9Mjtjb25zdCBrPUFbbisrXSxGPVtdO2ZvcihCPTA7QjxrO0IrKyl7Y29uc3QgZT1BW24rK10sdD1hLmNvbXBvbmVudElkc1tlXSxpPWEuY29tcG9uZW50c1t0XTtpLmluZGV4PWU7Y29uc3Qgcz1BW24rK107aS5odWZmbWFuVGFibGVEQz1oW3M+PjRdLGkuaHVmZm1hblRhYmxlQUM9Y1sxNSZzXSxGLnB1c2goaSl9Y29uc3QgUz1BW24rK10sUj1BW24rK10sRz1BW24rK107dHJ5e2NvbnN0IGU9WnQoQSxuLGEsRixzLFMsUixHPj40LDE1JkcsYik7bis9ZX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgVXQpcmV0dXJuIFUoYCR7ZS5tZXNzYWdlfSAtLSBhdHRlbXB0aW5nIHRvIHJlLXBhcnNlIHRoZSBKUEVHIGltYWdlLmApLHRoaXMucGFyc2UoQSx7ZG5sU2NhbkxpbmVzOmUuc2NhbkxpbmVzfSk7aWYoZSBpbnN0YW5jZW9mIE10KXtVKGAke2UubWVzc2FnZX0gLS0gaWdub3JpbmcgdGhlIHJlc3Qgb2YgdGhlIGltYWdlIGRhdGEuYCk7YnJlYWsgQX10aHJvdyBlfWJyZWFrO2Nhc2UgNjU1MDA6bis9NDticmVhaztjYXNlIDY1NTM1OjI1NSE9PUFbbl0mJm4tLTticmVhaztkZWZhdWx0OmNvbnN0IE49VnQoQSxuLTIsbi0zKTtpZihOPy5pbnZhbGlkKXtVKCJKcGVnSW1hZ2UucGFyc2UgLSB1bmV4cGVjdGVkIGRhdGEsIGN1cnJlbnQgbWFya2VyIGlzOiAiK04uaW52YWxpZCksbj1OLm9mZnNldDticmVha31pZighTnx8bj49QS5sZW5ndGgtMSl7VSgiSnBlZ0ltYWdlLnBhcnNlIC0gcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBpbWFnZSBkYXRhIHdpdGhvdXQgZmluZGluZyBhbiBFT0kgbWFya2VyICgweEZGRDkpLiIpO2JyZWFrIEF9dGhyb3cgbmV3IHh0KCJKcGVnSW1hZ2UucGFyc2UgLSB1bmtub3duIG1hcmtlcjogIitDLnRvU3RyaW5nKDE2KSl9Qz1KQShBLG4pLG4rPTJ9aWYoIWEpdGhyb3cgbmV3IHh0KCJKcGVnSW1hZ2UucGFyc2UgLSBubyBmcmFtZSBkYXRhIGZvdW5kLiIpO3RoaXMud2lkdGg9YS5zYW1wbGVzUGVyTGluZSx0aGlzLmhlaWdodD1hLnNjYW5MaW5lcyx0aGlzLmpmaWY9cix0aGlzLmFkb2JlPWcsdGhpcy5jb21wb25lbnRzPVtdO2Zvcihjb25zdCBBIG9mIGEuY29tcG9uZW50cyl7Y29uc3QgZT1JW0EucXVhbnRpemF0aW9uSWRdO2UmJihBLnF1YW50aXphdGlvblRhYmxlPWUpLHRoaXMuY29tcG9uZW50cy5wdXNoKHtpbmRleDpBLmluZGV4LG91dHB1dDpYdCgwLEEpLHNjYWxlWDpBLmgvYS5tYXhILHNjYWxlWTpBLnYvYS5tYXhWLGJsb2Nrc1BlckxpbmU6QS5ibG9ja3NQZXJMaW5lLGJsb2Nrc1BlckNvbHVtbjpBLmJsb2Nrc1BlckNvbHVtbn0pfXRoaXMubnVtQ29tcG9uZW50cz10aGlzLmNvbXBvbmVudHMubGVuZ3RofV9nZXRMaW5lYXJpemVkQmxvY2tEYXRhKEEsZSx0PSExKXtjb25zdCBpPXRoaXMud2lkdGgvQSxhPXRoaXMuaGVpZ2h0L2U7bGV0IHMsbixyLGcsbyxJLGMsaCxDLEIsbCxRPTA7Y29uc3QgRT10aGlzLmNvbXBvbmVudHMubGVuZ3RoLHU9QSplKkUsZD1uZXcgVWludDhDbGFtcGVkQXJyYXkodSksZj1uZXcgVWludDMyQXJyYXkoQSkscD00Mjk0OTY3Mjg4O2xldCBtO2ZvcihjPTA7YzxFO2MrKyl7aWYocz10aGlzLmNvbXBvbmVudHNbY10sbj1zLnNjYWxlWCppLHI9cy5zY2FsZVkqYSxRPWMsbD1zLm91dHB1dCxnPXMuYmxvY2tzUGVyTGluZSsxPDwzLG4hPT1tKXtmb3Iobz0wO288QTtvKyspaD0wfG8qbixmW29dPShoJnApPDwzfDcmaDttPW59Zm9yKEk9MDtJPGU7SSsrKWZvcihoPTB8SSpyLEI9ZyooaCZwKXwoNyZoKTw8MyxvPTA7bzxBO28rKylkW1FdPWxbQitmW29dXSxRKz1FfWxldCB5PXRoaXMuX2RlY29kZVRyYW5zZm9ybTtpZih0fHw0IT09RXx8eXx8KHk9bmV3IEludDMyQXJyYXkoWy0yNTYsMjU1LC0yNTYsMjU1LC0yNTYsMjU1LC0yNTYsMjU1XSkpLHkpZm9yKGM9MDtjPHU7KWZvcihoPTAsQz0wO2g8RTtoKyssYysrLEMrPTIpZFtjXT0oZFtjXSp5W0NdPj44KSt5W0MrMV07cmV0dXJuIGR9Z2V0IF9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZCgpe3JldHVybiB0aGlzLmFkb2JlPyEhdGhpcy5hZG9iZS50cmFuc2Zvcm1Db2RlOjM9PT10aGlzLm51bUNvbXBvbmVudHM/MCE9PXRoaXMuX2NvbG9yVHJhbnNmb3JtJiYoODIhPT10aGlzLmNvbXBvbmVudHNbMF0uaW5kZXh8fDcxIT09dGhpcy5jb21wb25lbnRzWzFdLmluZGV4fHw2NiE9PXRoaXMuY29tcG9uZW50c1syXS5pbmRleCk6MT09PXRoaXMuX2NvbG9yVHJhbnNmb3JtfV9jb252ZXJ0WWNjVG9SZ2IoQSl7bGV0IGUsdCxpO2ZvcihsZXQgYT0wLHM9QS5sZW5ndGg7YTxzO2ErPTMpZT1BW2FdLHQ9QVthKzFdLGk9QVthKzJdLEFbYV09ZS0xNzkuNDU2KzEuNDAyKmksQVthKzFdPWUrMTM1LjQ1OS0uMzQ0KnQtLjcxNCppLEFbYSsyXT1lLTIyNi44MTYrMS43NzIqdDtyZXR1cm4gQX1fY29udmVydFljY1RvUmdiYShBLGUpe2ZvcihsZXQgdD0wLGk9MCxhPUEubGVuZ3RoO3Q8YTt0Kz0zLGkrPTQpe2NvbnN0IGE9QVt0XSxzPUFbdCsxXSxuPUFbdCsyXTtlW2ldPWEtMTc5LjQ1NisxLjQwMipuLGVbaSsxXT1hKzEzNS40NTktLjM0NCpzLS43MTQqbixlW2krMl09YS0yMjYuODE2KzEuNzcyKnMsZVtpKzNdPTI1NX1yZXR1cm4gZX1fY29udmVydFljY2tUb1JnYihBKXtsZXQgZSx0LGksYSxzPTA7Zm9yKGxldCBuPTAscj1BLmxlbmd0aDtuPHI7bis9NCllPUFbbl0sdD1BW24rMV0saT1BW24rMl0sYT1BW24rM10sQVtzKytdPXQqKC02NjA2MzU2Njk0MjAzNjRlLTE5KnQrLjAwMDQzNzEzMDQ3NTkyNjIzMippLTU0MDgwNjEwMDY0NTk5ZS0xOCplKy4wMDA0ODQ0OTc5NzEyMDI4MSphLS4xNTQzNjIxNTE4NzExMjYpLTEyMi42NzE5NTQwNjg5NCtpKigtLjAwMDk1Nzk2NDM3ODQ0NTc3MyppKy4wMDA4MTcwNzY5MTEzNDY2MjUqZS0uMDA0NzcyNzE0MDU0MDg3NDcqYSsxLjUzMzgwMjUzMjIxNzM0KStlKiguMDAwOTYxMjUwMTg0MTMwNjg4KmUtLjAwMjY2MjU3MzMyMjgzOTMzKmErLjQ4MzU3MDg4NDUxMjY1KSthKigtLjAwMDMzNjE5NzE3NzYxODM5NCphKy40ODQ3OTE1NjE0OTA3NzYpLEFbcysrXT0xMDcuMjY4MDM5Mzk3NzI0K3QqKDIxOTkyNzEwNDUyNTc0MWUtMTkqdC0uMDAwNjQwOTkyMDE4Mjk3OTQ1KmkrLjAwMDY1OTM5NzAwMTI0NTU3NyplKy4wMDA0MjYxMDU2NTI5Mzg4MzcqYS0uMTc2NDkxNzkyNDYyODc1KStpKigtLjAwMDc3ODI2OTk0MTUxMzY4MyppKy4wMDEzMDg3MjI2MTQwODI3NSplKy4wMDA3NzA0ODI2MzE4MDExMzIqYS0uMTUxMDUxNDkyNzc1NTYyKStlKiguMDAxMjY5MzUzNjgxMTQ4NDMqZS0uMDAyNjUwOTAxODkwMTA4OTgqYSsuMjU4MDI5MTAyMDY4NDUpK2EqKC0uMDAwMzE4OTEzMTE3NTg4MzI4KmEtLjIxMzc0MjQwMDMyMzY2NSksQVtzKytdPXQqKC0uMDAwNTcwMTE1MTk2OTczNjc3KnQtMjYzNDA5MDUxMDA0NTg5ZS0xOSppKy4wMDIwNzQxMDg4MTE1MDEyKmUtLjAwMjg4MjYwMjM2ODUzNDQyKmErLjgxNDI3Mjk2ODM1OTI5NSktMjAuODEwMDEyNTQ2OTQ3K2kqKC0xNTM0OTYwNTc0NDA5NzVlLTE5KmktLjAwMDEzMjY4OTA0Mzk2MTQ0NiplKy4wMDA1NjA4MzM2OTEyNDI4MTIqYS0uMTk1MTUyMDI3NTM0MDQ5KStlKiguMDAxNzQ0MTgxMzI5Mjc1ODIqZS0uMDAyNTUyNDMzMjE0MzkzNDcqYSsuMTE2OTM1MDIwNDY1MTQ1KSthKigtLjAwMDM0MzUzMTk5NjUxMDU1NSphKy4yNDE2NTI2MDIzMjQwNyk7cmV0dXJuIEEuc3ViYXJyYXkoMCxzKX1fY29udmVydFljY2tUb1JnYmEoQSl7Zm9yKGxldCBlPTAsdD1BLmxlbmd0aDtlPHQ7ZSs9NCl7Y29uc3QgdD1BW2VdLGk9QVtlKzFdLGE9QVtlKzJdLHM9QVtlKzNdO0FbZV09aSooLTY2MDYzNTY2OTQyMDM2NGUtMTkqaSsuMDAwNDM3MTMwNDc1OTI2MjMyKmEtNTQwODA2MTAwNjQ1OTllLTE4KnQrLjAwMDQ4NDQ5Nzk3MTIwMjgxKnMtLjE1NDM2MjE1MTg3MTEyNiktMTIyLjY3MTk1NDA2ODk0K2EqKC0uMDAwOTU3OTY0Mzc4NDQ1NzczKmErLjAwMDgxNzA3NjkxMTM0NjYyNSp0LS4wMDQ3NzI3MTQwNTQwODc0NypzKzEuNTMzODAyNTMyMjE3MzQpK3QqKC4wMDA5NjEyNTAxODQxMzA2ODgqdC0uMDAyNjYyNTczMzIyODM5MzMqcysuNDgzNTcwODg0NTEyNjUpK3MqKC0uMDAwMzM2MTk3MTc3NjE4Mzk0KnMrLjQ4NDc5MTU2MTQ5MDc3NiksQVtlKzFdPTEwNy4yNjgwMzkzOTc3MjQraSooMjE5OTI3MTA0NTI1NzQxZS0xOSppLS4wMDA2NDA5OTIwMTgyOTc5NDUqYSsuMDAwNjU5Mzk3MDAxMjQ1NTc3KnQrLjAwMDQyNjEwNTY1MjkzODgzNypzLS4xNzY0OTE3OTI0NjI4NzUpK2EqKC0uMDAwNzc4MjY5OTQxNTEzNjgzKmErLjAwMTMwODcyMjYxNDA4Mjc1KnQrLjAwMDc3MDQ4MjYzMTgwMTEzMipzLS4xNTEwNTE0OTI3NzU1NjIpK3QqKC4wMDEyNjkzNTM2ODExNDg0Myp0LS4wMDI2NTA5MDE4OTAxMDg5OCpzKy4yNTgwMjkxMDIwNjg0NSkrcyooLS4wMDAzMTg5MTMxMTc1ODgzMjgqcy0uMjEzNzQyNDAwMzIzNjY1KSxBW2UrMl09aSooLS4wMDA1NzAxMTUxOTY5NzM2NzcqaS0yNjM0MDkwNTEwMDQ1ODllLTE5KmErLjAwMjA3NDEwODgxMTUwMTIqdC0uMDAyODgyNjAyMzY4NTM0NDIqcysuODE0MjcyOTY4MzU5Mjk1KS0yMC44MTAwMTI1NDY5NDcrYSooLTE1MzQ5NjA1NzQ0MDk3NWUtMTkqYS0uMDAwMTMyNjg5MDQzOTYxNDQ2KnQrLjAwMDU2MDgzMzY5MTI0MjgxMipzLS4xOTUxNTIwMjc1MzQwNDkpK3QqKC4wMDE3NDQxODEzMjkyNzU4Mip0LS4wMDI1NTI0MzMyMTQzOTM0NypzKy4xMTY5MzUwMjA0NjUxNDUpK3MqKC0uMDAwMzQzNTMxOTk2NTEwNTU1KnMrLjI0MTY1MjYwMjMyNDA3KSxBW2UrM109MjU1fXJldHVybiBBfV9jb252ZXJ0WWNja1RvQ215ayhBKXtsZXQgZSx0LGk7Zm9yKGxldCBhPTAscz1BLmxlbmd0aDthPHM7YSs9NCllPUFbYV0sdD1BW2ErMV0saT1BW2ErMl0sQVthXT00MzQuNDU2LWUtMS40MDIqaSxBW2ErMV09MTE5LjU0MS1lKy4zNDQqdCsuNzE0KmksQVthKzJdPTQ4MS44MTYtZS0xLjc3Mip0O3JldHVybiBBfV9jb252ZXJ0Q215a1RvUmdiKEEpe2xldCBlLHQsaSxhLHM9MDtmb3IobGV0IG49MCxyPUEubGVuZ3RoO248cjtuKz00KWU9QVtuXSx0PUFbbisxXSxpPUFbbisyXSxhPUFbbiszXSxBW3MrK109MjU1K2UqKC02NzQ3MTQ3MDczNjAyNDQxZS0yMCplKy4wMDA4Mzc5MjYyMTIxMDEzNzI3KnQrLjAwMDI4OTQ3MTgxODg2NDMyOTQqaSsuMDAzMjY0MjMxMDU3NTM3ODA2KmEtMS4xMTg1NjExODY3MjAzOTM3KSt0KigyNjM3NDEwNzYxNjA4OTQwNWUtMjEqdC04NjI2OTQ5MTU4NjM4NTcyZS0yMCppLS4wMDAyNzQ4NzY5MDY3NDk5NDkxKmEtLjAyMTU1Njg4Nzk0OTc4OTY3KStpKigtMzg3ODA5OTIxMjg2OTM2M2UtMjAqaS0uMDAwMzI2NzgwODI3OTQ4NTI4NiphKy4wNjg2NzQyMjM4NTk1MzQ1KS1hKiguMDAwMzM2MTk3MTc3NjE4MzkzNyphKy43NDMwNjU5MTUxMzQyMjU0KSxBW3MrK109MjU1K2UqKC4wMDAxMzU5NjM3MjgxMzU4ODg0OCplKy4wMDA5MjQ1MzcxMzI1NzM1ODUqdCsuMDAwMTA1NjczNTk2MTg2ODM1OTMqaSsuMDAwNDc5MTg2NDY4NzQzNjUxMiphLS4zMTA5Njg5NTg3NTE1ODc1KSt0KigtLjAwMDIzNTQ1MzQ2MTA4MzcwMzQ0KnQrLjAwMDI3MDI4NDUyNTM1MzQ3MTQqaSsuMDAyMDIwMDMwODk3NzMwNzE1NiphLS43NDg4MDUyMTY3MDE1NDk0KStpKig2ODM0ODE1OTk4MjM1NjYyZS0yMCppKy4wMDAxNTE2ODQ1MjM2MzQ2MDk3MyphLS4wOTc1MTkyNzc3NDcyODkzMyktYSooLjAwMDMxODkxMzExNzU4ODMyODEqYSsuNzM2NDg4MzgwNzczMzE2OCksQVtzKytdPTI1NStlKigxMzU5ODY1MDQxMTM4NTMwN2UtMjEqZSsuMDAwMTI0MjM5NTYxNzU0OTA4NTEqdCsuMDAwNDc1MTk4NTA5NzU4MzU4OSppLTM2NzI5MzE3NDc2NjMwNDIyZS0yMiphLS4wNTU2MjE4Njk4MDI2NDAzNCkrdCooLjAwMDE2MTQxMzgwNTk4NzI0Njc2KnQrLjAwMDk2OTIyMzkxMzA3MjUxODYqaSsuMDAwNzc4MjY5MjQ1MDAzNjI1MyphLS40NDAxNTIzMjM2NzUyNjQ2MykraSooNS4wNjg4ODI5MTQwNjg3NjllLTcqaSsuMDAxNzc3ODM2OTAxMTM3NTA3MSphLS43NTkxNDU0NjQ5NzQ5NjA5KS1hKiguMDAwMzQzNTMxOTk2NTEwNTU1MyphKy43MDYzNzcwMTg2MTYwMTQ0KTtyZXR1cm4gQS5zdWJhcnJheSgwLHMpfV9jb252ZXJ0Q215a1RvUmdiYShBKXtmb3IobGV0IGU9MCx0PUEubGVuZ3RoO2U8dDtlKz00KXtjb25zdCB0PUFbZV0saT1BW2UrMV0sYT1BW2UrMl0scz1BW2UrM107QVtlXT0yNTUrdCooLTY3NDcxNDcwNzM2MDI0NDFlLTIwKnQrLjAwMDgzNzkyNjIxMjEwMTM3MjcqaSsuMDAwMjg5NDcxODE4ODY0MzI5NCphKy4wMDMyNjQyMzEwNTc1Mzc4MDYqcy0xLjExODU2MTE4NjcyMDM5MzcpK2kqKDI2Mzc0MTA3NjE2MDg5NDA1ZS0yMSppLTg2MjY5NDkxNTg2Mzg1NzJlLTIwKmEtLjAwMDI3NDg3NjkwNjc0OTk0OTEqcy0uMDIxNTU2ODg3OTQ5Nzg5NjcpK2EqKC0zODc4MDk5MjEyODY5MzYzZS0yMCphLS4wMDAzMjY3ODA4Mjc5NDg1Mjg2KnMrLjA2ODY3NDIyMzg1OTUzNDUpLXMqKC4wMDAzMzYxOTcxNzc2MTgzOTM3KnMrLjc0MzA2NTkxNTEzNDIyNTQpLEFbZSsxXT0yNTUrdCooLjAwMDEzNTk2MzcyODEzNTg4ODQ4KnQrLjAwMDkyNDUzNzEzMjU3MzU4NSppKy4wMDAxMDU2NzM1OTYxODY4MzU5MyphKy4wMDA0NzkxODY0Njg3NDM2NTEyKnMtLjMxMDk2ODk1ODc1MTU4NzUpK2kqKC0uMDAwMjM1NDUzNDYxMDgzNzAzNDQqaSsuMDAwMjcwMjg0NTI1MzUzNDcxNCphKy4wMDIwMjAwMzA4OTc3MzA3MTU2KnMtLjc0ODgwNTIxNjcwMTU0OTQpK2EqKDY4MzQ4MTU5OTgyMzU2NjJlLTIwKmErLjAwMDE1MTY4NDUyMzYzNDYwOTczKnMtLjA5NzUxOTI3Nzc0NzI4OTMzKS1zKiguMDAwMzE4OTEzMTE3NTg4MzI4MSpzKy43MzY0ODgzODA3NzMzMTY4KSxBW2UrMl09MjU1K3QqKDEzNTk4NjUwNDExMzg1MzA3ZS0yMSp0Ky4wMDAxMjQyMzk1NjE3NTQ5MDg1MSppKy4wMDA0NzUxOTg1MDk3NTgzNTg5KmEtMzY3MjkzMTc0NzY2MzA0MjJlLTIyKnMtLjA1NTYyMTg2OTgwMjY0MDM0KStpKiguMDAwMTYxNDEzODA1OTg3MjQ2NzYqaSsuMDAwOTY5MjIzOTEzMDcyNTE4NiphKy4wMDA3NzgyNjkyNDUwMDM2MjUzKnMtLjQ0MDE1MjMyMzY3NTI2NDYzKSthKig1LjA2ODg4MjkxNDA2ODc2OWUtNyphKy4wMDE3Nzc4MzY5MDExMzc1MDcxKnMtLjc1OTE0NTQ2NDk3NDk2MDkpLXMqKC4wMDAzNDM1MzE5OTY1MTA1NTUzKnMrLjcwNjM3NzAxODYxNjAxNDQpLEFbZSszXT0yNTV9cmV0dXJuIEF9Z2V0RGF0YSh7d2lkdGg6QSxoZWlnaHQ6ZSxmb3JjZVJHQkE6dD0hMSxmb3JjZVJHQjppPSExLGlzU291cmNlUERGOmE9ITF9KXtpZih0aGlzLm51bUNvbXBvbmVudHM+NCl0aHJvdyBuZXcgeHQoIlVuc3VwcG9ydGVkIGNvbG9yIG1vZGUiKTtjb25zdCBzPXRoaXMuX2dldExpbmVhcml6ZWRCbG9ja0RhdGEoQSxlLGEpO2lmKDE9PT10aGlzLm51bUNvbXBvbmVudHMmJih0fHxpKSl7Y29uc3QgQT1zLmxlbmd0aCoodD80OjMpLGU9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEEpO2xldCBpPTA7aWYodCkhZnVuY3Rpb24oQSxlKXtpZihfLmlzTGl0dGxlRW5kaWFuKWZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyllW3RdPTY1NzkzKkFbdF18NDI3ODE5MDA4MDtlbHNlIGZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyllW3RdPTE2ODQzMDA4KkFbdF18MjU1fShzLG5ldyBVaW50MzJBcnJheShlLmJ1ZmZlcikpO2Vsc2UgZm9yKGNvbnN0IEEgb2YgcyllW2krK109QSxlW2krK109QSxlW2krK109QTtyZXR1cm4gZX1pZigzPT09dGhpcy5udW1Db21wb25lbnRzJiZ0aGlzLl9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZCl7aWYodCl7Y29uc3QgQT1uZXcgVWludDhDbGFtcGVkQXJyYXkocy5sZW5ndGgvMyo0KTtyZXR1cm4gdGhpcy5fY29udmVydFljY1RvUmdiYShzLEEpfXJldHVybiB0aGlzLl9jb252ZXJ0WWNjVG9SZ2Iocyl9aWYoND09PXRoaXMubnVtQ29tcG9uZW50cyl7aWYodGhpcy5faXNDb2xvckNvbnZlcnNpb25OZWVkZWQpcmV0dXJuIHQ/dGhpcy5fY29udmVydFljY2tUb1JnYmEocyk6aT90aGlzLl9jb252ZXJ0WWNja1RvUmdiKHMpOnRoaXMuX2NvbnZlcnRZY2NrVG9DbXlrKHMpO2lmKHQpcmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2JhKHMpO2lmKGkpcmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2Iocyl9cmV0dXJuIHN9fWNsYXNzIHp0IGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKGUpLHRoaXMuc3RyZWFtPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLm1heWJlTGVuZ3RoPWUsdGhpcy5wYXJhbXM9dH1nZXQgYnl0ZXMoKXtyZXR1cm4gSCh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihBKXt9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZSgpfWRlY29kZUltYWdlKEEpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtBfHw9dGhpcy5ieXRlcztmb3IobGV0IGU9MCx0PUEubGVuZ3RoLTE7ZTx0O2UrKylpZigyNTU9PT1BW2VdJiYyMTY9PT1BW2UrMV0pe2U+MCYmKEE9QS5zdWJhcnJheShlKSk7YnJlYWt9Y29uc3QgZT17ZGVjb2RlVHJhbnNmb3JtOnZvaWQgMCxjb2xvclRyYW5zZm9ybTp2b2lkIDB9LHQ9dGhpcy5kaWN0LmdldEFycmF5KCJEIiwiRGVjb2RlIik7aWYoKHRoaXMuZm9yY2VSR0JBfHx0aGlzLmZvcmNlUkdCKSYmQXJyYXkuaXNBcnJheSh0KSl7Y29uc3QgQT10aGlzLmRpY3QuZ2V0KCJCUEMiLCJCaXRzUGVyQ29tcG9uZW50Iil8fDgsaT10Lmxlbmd0aCxhPW5ldyBJbnQzMkFycmF5KGkpO2xldCBzPSExO2NvbnN0IG49KDE8PEEpLTE7Zm9yKGxldCBBPTA7QTxpO0ErPTIpYVtBXT0yNTYqKHRbQSsxXS10W0FdKXwwLGFbQSsxXT10W0FdKm58MCwyNTY9PT1hW0FdJiYwPT09YVtBKzFdfHwocz0hMCk7cyYmKGUuZGVjb2RlVHJhbnNmb3JtPWEpfWlmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9dGhpcy5wYXJhbXMuZ2V0KCJDb2xvclRyYW5zZm9ybSIpO051bWJlci5pc0ludGVnZXIoQSkmJihlLmNvbG9yVHJhbnNmb3JtPUEpfWNvbnN0IGk9bmV3IF90KGUpO2kucGFyc2UoQSk7Y29uc3QgYT1pLmdldERhdGEoe3dpZHRoOnRoaXMuZHJhd1dpZHRoLGhlaWdodDp0aGlzLmRyYXdIZWlnaHQsZm9yY2VSR0JBOnRoaXMuZm9yY2VSR0JBLGZvcmNlUkdCOnRoaXMuZm9yY2VSR0IsaXNTb3VyY2VQREY6ITB9KTtyZXR1cm4gdGhpcy5idWZmZXI9YSx0aGlzLmJ1ZmZlckxlbmd0aD1hLmxlbmd0aCx0aGlzLmVvZj0hMCx0aGlzLmJ1ZmZlcn1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0uaXNBc3luY319dCg0OTc5KTt2YXIgJHQsQWk9KCR0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuY3VycmVudFNjcmlwdD8uc3JjOnZvaWQgMCxmdW5jdGlvbihBPXt9KXt2YXIgZSx0LGk9QTtuZXcgUHJvbWlzZSgoKEEsaSk9PntlPUEsdD1pfSkpLGkuZGVjb2RlPWZ1bmN0aW9uKEEse251bUNvbXBvbmVudHM6ZT00LGlzSW5kZXhlZENvbG9ybWFwOnQ9ITEsc21hc2tJbkRhdGE6YT0hMX0pe2NvbnN0IHM9QS5sZW5ndGgsbj1pLl9tYWxsb2Mocyk7aS5IRUFQVTguc2V0KEEsbik7Y29uc3Qgcj1pLl9qcDJfZGVjb2RlKG4scyxlPjA/ZTowLCEhdCwhIWEpO2lmKGkuX2ZyZWUobikscil7Y29uc3R7ZXJyb3JNZXNzYWdlczpBfT1pO3JldHVybiBBPyhkZWxldGUgaS5lcnJvck1lc3NhZ2VzLEEpOiJVbmtub3duIGVycm9yIn1jb25zdHtpbWFnZURhdGE6Z309aTtyZXR1cm4gaS5pbWFnZURhdGE9bnVsbCxnfTt2YXIgYT1PYmplY3QuYXNzaWduKHt9LGkpLHM9Ii4vdGhpcy5wcm9ncmFtIixuPSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQmJihuPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKSwkdCYmKG49JHQpLG49bi5zdGFydHNXaXRoKCJibG9iOiIpPyIiOm4uc3Vic3RyKDAsbi5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpO3ZhciByLGcsbyxJLGMsaD1pLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLEM9aS5wcmludEVycnx8Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO2Z1bmN0aW9uIEIoKXt2YXIgQT1nLmJ1ZmZlcjtpLkhFQVA4PW89bmV3IEludDhBcnJheShBKSxpLkhFQVAxNj1uZXcgSW50MTZBcnJheShBKSxpLkhFQVBVOD1JPW5ldyBVaW50OEFycmF5KEEpLGkuSEVBUFUxNj1uZXcgVWludDE2QXJyYXkoQSksaS5IRUFQMzI9bmV3IEludDMyQXJyYXkoQSksaS5IRUFQVTMyPWM9bmV3IFVpbnQzMkFycmF5KEEpLGkuSEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KEEpLGkuSEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KEEpfU9iamVjdC5hc3NpZ24oaSxhKSxhPW51bGwsaS5hcmd1bWVudHMmJmkuYXJndW1lbnRzLGkudGhpc1Byb2dyYW0mJihzPWkudGhpc1Byb2dyYW0pLGkucXVpdCYmaS5xdWl0LGkud2FzbUJpbmFyeSYmKHI9aS53YXNtQmluYXJ5KTt2YXIgbCxRPVtdLEU9W10sdT1bXSxkPTAsZj1udWxsLHA9bnVsbCxtPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIix5PUE9PkEuc3RhcnRzV2l0aChtKTtmdW5jdGlvbiB3KEEsZSl7dmFyIHQsaT1mdW5jdGlvbihBKXtpZihBPT1sJiZyKXJldHVybiBuZXcgVWludDhBcnJheShyKTt2YXIgZT1mdW5jdGlvbihBKXtpZih5KEEpKXJldHVybiBmdW5jdGlvbihBKXtmb3IodmFyIGU9YXRvYihBKSx0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKSxpPTA7aTxlLmxlbmd0aDsrK2kpdFtpXT1lLmNoYXJDb2RlQXQoaSk7cmV0dXJuIHR9KEEuc2xpY2UobS5sZW5ndGgpKX0oQSk7aWYoZSlyZXR1cm4gZTt0aHJvdydzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZDogeW91IGNhbiBwcmVsb2FkIGl0IHRvIE1vZHVsZVsid2FzbUJpbmFyeSJdIG1hbnVhbGx5LCBvciBlbWNjLnB5IHdpbGwgZG8gdGhhdCBmb3IgeW91IHdoZW4gZ2VuZXJhdGluZyBIVE1MIChidXQgbm90IEpTKSd9KEEpO3JldHVybiB0PW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoaSksW25ldyBXZWJBc3NlbWJseS5JbnN0YW5jZSh0LGUpLHRdfXZhciBEPUE9Pntmb3IoO0EubGVuZ3RoPjA7KUEuc2hpZnQoKShpKX07aS5ub0V4aXRSdW50aW1lO3ZhciBiLGs9QT0+e3ZhciBlPShBLWcuYnVmZmVyLmJ5dGVMZW5ndGgrNjU1MzUpLzY1NTM2O3RyeXtyZXR1cm4gZy5ncm93KGUpLEIoKSwxfWNhdGNoKEEpe319LEY9e30sUz0oKT0+e2lmKCFTLnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpzfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGUgaW4gRil2b2lkIDA9PT1GW2VdP2RlbGV0ZSBBW2VdOkFbZV09RltlXTt2YXIgdD1bXTtmb3IodmFyIGUgaW4gQSl0LnB1c2goYCR7ZX09JHtBW2VdfWApO1Muc3RyaW5ncz10fXJldHVybiBTLnN0cmluZ3N9LFI9W251bGwsW10sW11dLEc9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp2b2lkIDAsTj0oQSxlLHQpPT57Zm9yKHZhciBpPWUrdCxhPWU7QVthXSYmIShhPj1pKTspKythO2lmKGEtZT4xNiYmQS5idWZmZXImJkcpcmV0dXJuIEcuZGVjb2RlKEEuc3ViYXJyYXkoZSxhKSk7Zm9yKHZhciBzPSIiO2U8YTspe3ZhciBuPUFbZSsrXTtpZigxMjgmbil7dmFyIHI9NjMmQVtlKytdO2lmKDE5MiE9KDIyNCZuKSl7dmFyIGc9NjMmQVtlKytdO2lmKChuPTIyND09KDI0MCZuKT8oMTUmbik8PDEyfHI8PDZ8ZzooNyZuKTw8MTh8cjw8MTJ8Zzw8Nnw2MyZBW2UrK10pPDY1NTM2KXMrPVN0cmluZy5mcm9tQ2hhckNvZGUobik7ZWxzZXt2YXIgbz1uLTY1NTM2O3MrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8bz4+MTAsNTYzMjB8MTAyMyZvKX19ZWxzZSBzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZuKTw8NnxyKX1lbHNlIHMrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIHN9LHg9KEEsZSk9PkE/TihJLEEsZSk6IiIsVT17YzooQSxlLHQpPT5JLmNvcHlXaXRoaW4oQSxlLGUrdCksZzpmdW5jdGlvbihBLGUpe0E+Pj0yO2NvbnN0IHQ9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUpLGE9aS5IRUFQMzIuc3ViYXJyYXkoQSxBK2UpO3Quc2V0KGEpfSxmOmZ1bmN0aW9uKEEsZSx0LGEpe0E+Pj0yLGU+Pj0yLHQ+Pj0yO2NvbnN0IHM9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqYSksbj1pLkhFQVAzMi5zdWJhcnJheShBLEErYSkscj1pLkhFQVAzMi5zdWJhcnJheShlLGUrYSksZz1pLkhFQVAzMi5zdWJhcnJheSh0LHQrYSk7Zm9yKGxldCBBPTA7QTxhO0ErKylzWzMqQV09bltBXSxzWzMqQSsxXT1yW0FdLHNbMypBKzJdPWdbQV19LGU6ZnVuY3Rpb24oQSxlLHQsYSxzKXtBPj49MixlPj49Mix0Pj49MixhPj49Mjtjb25zdCBuPWkuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSg0KnMpLHI9aS5IRUFQMzIuc3ViYXJyYXkoQSxBK3MpLGc9aS5IRUFQMzIuc3ViYXJyYXkoZSxlK3MpLG89aS5IRUFQMzIuc3ViYXJyYXkodCx0K3MpLEk9aS5IRUFQMzIuc3ViYXJyYXkoYSxhK3MpO2ZvcihsZXQgQT0wO0E8cztBKyspbls0KkFdPXJbQV0sbls0KkErMV09Z1tBXSxuWzQqQSsyXT1vW0FdLG5bNCpBKzNdPUlbQV19LGs6QT0+e3ZhciBlPUkubGVuZ3RoLHQ9MjE0NzQ4MzY0ODtpZigoQT4+Pj0wKT50KXJldHVybiExO2Zvcih2YXIgaSxhPTE7YTw9NDthKj0yKXt2YXIgcz1lKigxKy4yL2EpO3M9TWF0aC5taW4ocyxBKzEwMDY2MzI5Nik7dmFyIG49TWF0aC5taW4odCwoaT1NYXRoLm1heChBLHMpKSsoNjU1MzYtaSU2NTUzNiklNjU1MzYpO2lmKGsobikpcmV0dXJuITB9cmV0dXJuITF9LGw6KEEsZSk9Pnt2YXIgdD0wO3JldHVybiBTKCkuZm9yRWFjaCgoKGksYSk9Pnt2YXIgcz1lK3Q7Y1tBKzQqYT4+Ml09cywoKEEsZSk9Pntmb3IodmFyIHQ9MDt0PEEubGVuZ3RoOysrdClvW2UrK109QS5jaGFyQ29kZUF0KHQpO29bZV09MH0pKGkscyksdCs9aS5sZW5ndGgrMX0pKSwwfSxtOihBLGUpPT57dmFyIHQ9UygpO2NbQT4+Ml09dC5sZW5ndGg7dmFyIGk9MDtyZXR1cm4gdC5mb3JFYWNoKChBPT5pKz1BLmxlbmd0aCsxKSksY1tlPj4yXT1pLDB9LG46QT0+NTIsajpmdW5jdGlvbihBLGUsdCxpLGEpe3JldHVybiA3MH0sYjooQSxlLHQsaSk9Pntmb3IodmFyIGEscyxuLHI9MCxnPTA7Zzx0O2crKyl7dmFyIG89Y1tlPj4yXSxCPWNbZSs0Pj4yXTtlKz04O2Zvcih2YXIgbD0wO2w8QjtsKyspYT1BLHM9SVtvK2xdLG49dm9pZCAwLG49UlthXSwwPT09c3x8MTA9PT1zPygoMT09PWE/aDpDKShOKG4sMCkpLG4ubGVuZ3RoPTApOm4ucHVzaChzKTtyKz1CfXJldHVybiBjW2k+PjJdPXIsMH0sbzpmdW5jdGlvbihBLGUpe0E+Pj0yO2NvbnN0IHQ9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqZSksYT1pLkhFQVAzMi5zdWJhcnJheShBLEErZSk7Zm9yKGxldCBBPTA7QTxlO0ErKyl0WzQqQV09dFs0KkErMV09dFs0KkErMl09YVtBXSx0WzQqQSszXT0yNTV9LGk6ZnVuY3Rpb24oQSxlLHQpe0E+Pj0yLGU+Pj0yO2NvbnN0IGE9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqdCkscz1pLkhFQVAzMi5zdWJhcnJheShBLEErdCksbj1pLkhFQVAzMi5zdWJhcnJheShlLGUrdCk7Zm9yKGxldCBBPTA7QTx0O0ErKylhWzQqQV09YVs0KkErMV09YVs0KkErMl09c1tBXSxhWzQqQSszXT1uW0FdfSxkOmZ1bmN0aW9uKEEpe2NvbnN0IGU9eChBKTsoaS53YXJufHxjb25zb2xlLndhcm4pKGBPcGVuSlBFRzogJHtlfWApfSxoOmZ1bmN0aW9uKEEsZSx0LGEpe0E+Pj0yLGU+Pj0yLHQ+Pj0yO2NvbnN0IHM9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqYSksbj1pLkhFQVAzMi5zdWJhcnJheShBLEErYSkscj1pLkhFQVAzMi5zdWJhcnJheShlLGUrYSksZz1pLkhFQVAzMi5zdWJhcnJheSh0LHQrYSk7Zm9yKGxldCBBPTA7QTxhO0ErKylzWzQqQV09bltBXSxzWzQqQSsxXT1yW0FdLHNbNCpBKzJdPWdbQV0sc1s0KkErM109MjU1fSxhOmZ1bmN0aW9uKEEpe2NvbnN0IGU9eChBKTtpLmVycm9yTWVzc2FnZXM/aS5lcnJvck1lc3NhZ2VzKz0iXG4iK2U6aS5lcnJvck1lc3NhZ2VzPWV9fSxNPWZ1bmN0aW9uKCl7dmFyIEE9e2E6VX07ZnVuY3Rpb24gZShBLGUpe3ZhciB0O3JldHVybiBNPUEuZXhwb3J0cyxnPU0ucCxCKCksdD1NLnEsRS51bnNoaWZ0KHQpLGZ1bmN0aW9uKEEpe2lmKGQtLSxpLm1vbml0b3JSdW5EZXBlbmRlbmNpZXM/LihkKSwwPT1kJiYobnVsbCE9PWYmJihjbGVhckludGVydmFsKGYpLGY9bnVsbCkscCkpe3ZhciBlPXA7cD1udWxsLGUoKX19KCksTX1pZihkKyssaS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzPy4oZCksaS5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBpLmluc3RhbnRpYXRlV2FzbShBLGUpfWNhdGNoKEEpe0MoYE1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICR7QX1gKSx0KEEpfXJldHVybiBsfHwobD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFHRnpiUUVBQUFBQnpnRWFZQU4vZjM4QmYyQUVmMzkvZndGL1lBRi9BR0FDZjM4QVlBRi9BWDlnQTM5L2Z3QmdBbjkvQVg5Z0JIOS9mMzhBWUFOL2ZuOEJmbUFGZjM5L2YzOEJmMkFDZm44QmYyQUNmbjhCZm1BRmYzOS9mMzhBWUFOL2ZuOEJmMkFBQVg5Z0IzOS9mMzkvZjM4QmYyQUpmMzkvZjM5L2YzOS9BWDlnQzM5L2YzOS9mMzkvZjM5L0FYOWdCbjkvZjM5L2Z3Ri9ZQVovZkg5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFoL2YzOS9mMzkvZndGL1lBQUFZQVovZjM5L2YzOEFZQWQvZjM5L2YzOS9BR0FDZkg4QmZBSmJEd0ZoQVdFQUFnRmhBV0lBQVFGaEFXTUFCUUZoQVdRQUFnRmhBV1VBREFGaEFXWUFCd0ZoQVdjQUF3RmhBV2dBQndGaEFXa0FCUUZoQVdvQUNRRmhBV3NBQkFGaEFXd0FCZ0ZoQVcwQUJnRmhBVzRBQkFGaEFXOEFBd1BBQWI0QkJ3SUZBQVlFQUFVR0JBVUJCQXdGRkFZQ0FnSUNBQVlRRVFRQ0NoSUNCUUlFQndRQ0RnSUNEUVlDRlFNSEFBQUVBd0VXQ1FrREFBa0dBUVFFQlFVT0R3RUJBd0FEQmdJUUJCY1lBZ2NHQXdjSEFRRUNBQVFaQkFZSEJBOE1BQVFDQWdJQUJnQUdBUUVCQVFFQkFRRUFBQUFBQUFZREFnSUNBd01EQXdNQUF4TUlCQTRFQUFnREF3a0VDQW9MQ0FBQUFRRUJBUUVCQVFFTkFRQUVCQVVKRHdFU0VRRUFBQVlEQXdFRkJRVUZCUVVGQlFFTEFRRUJBUUVCQVFFQkNnUUZBWEFCYm00RkJ3RUJnZ0tBZ0FJR0NBRi9BVUdRMlFVTEJ4c0dBWEFDQUFGeEFFRUJjZ0NZQVFGekFCQUJkQUVBQVhVQWx3RUp2UUVCQUVFQkMyMVJ6QUhDQVhOek5xY0JuQUdaQVlzQmlnR0pBWWdCaHdHR0FZVUJoQUZTZ1FHQUFYOStmWHg3ZW5sNGQzWjF5d0hLQWNrQnlBSEhBY1lCUU1VQnhBRkFRTU1Cd1FIQUFiOEJ2Z0c5QWJ3QnV3RzZBYmtCc3dHb0FhWUJwUUdrQWFNQm9nR2hBYUFCbndHZUFaMEJtd0dhQVVsS1RGSklnd0ZUT0ZDQ0FVOUZSazRySjZzQnFnR3NBYlFCdUFHMUFhOEJxUUd0QWE0QnRnRzNBWEN3QWJFQnNnRlJsZ0dWQVl3QmpnR05BWklCa3dHVUFaQUJqd0VLa1pvT3ZnR0NBZ0VEZnlNQVFaQUVheUlFSkFBQ1FDQUFSUTBBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBQUVFQWdRTElBQkJER29oQVF3Q0N5QUFRUkJxSVFFZ0FFRUVhaUVBREFFTElBQkJGR29oQVNBQVFRaHFJUUFMSUFFb0FnQWlCVVVOQUNBQ1JRMEFJQUFvQWdBaEJpQUVRUUJCZ0FRUUZTSUJJQU0yQW93RUl3QkJvQUZySWdBa0FDQUFJQUUyQXBRQklBQkIvd00yQXBnQklBQkJBRUdRQVJBVklnQkJmellDVENBQVFlWUFOZ0lrSUFCQmZ6WUNVQ0FBSUFCQm53RnFOZ0lzSUFBZ0FFR1VBV28yQWxRZ0FVRUFPZ0FBSUFBZ0FpQURRZWNBUWVnQUVHc2dBRUdnQVdva0FDQUJRUUE2QVA4RElBRWdCaUFGRVFNQUN5QUVRWkFFYWlRQUM5QUNBUVYvSUFBRVFDQUFRUVJySWdNb0FnQWlCQ0VCSUFNaEFpQUFRUWhyS0FJQUlnQWdBRUYrY1NJQVJ3UkFJQUlnQUdzaUFpZ0NCQ0lCSUFJb0FnZ2lCVFlDQ0NBRklBRTJBZ1FnQUNBRWFpRUJDeUFESUFScUlnQW9BZ0FpQXlBQUlBTnFRUVJyS0FJQVJ3UkFJQUFvQWdRaUJDQUFLQUlJSWdBMkFnZ2dBQ0FFTmdJRUlBRWdBMm9oQVFzZ0FpQUJOZ0lBSUFJZ0FVRjhjV3BCQkdzZ0FVRUJjallDQUNBQ0FuOGdBaWdDQUVFSWF5SUFRZjhBVFFSQUlBQkJBM1pCQVdzTUFRc2dBR2NoQXlBQVFSMGdBMnQyUVFSeklBTkJBblJyUWU0QWFpQUFRZjhmVFEwQUdrRS9JQUJCSGlBRGEzWkJBbk1nQTBFQmRHdEJ4d0JxSWdBZ0FFRS9UeHNMSWdGQkJIUWlBRUdneHdGcU5nSUVJQUlnQUVHb3h3RnFJZ0FvQWdBMkFnZ2dBQ0FDTmdJQUlBSW9BZ2dnQWpZQ0JFR296d0ZCcU04QktRTUFRZ0VnQWEyR2hEY0RBQXNMeVFJQkJIOGdBVUVBTmdJQUFrQWdBa1VOQUNBQklBSnFJUU1DUUNBQ1FSQkpCRUFnQUNFQkRBRUxBa0FnQUNBQ2FpQUJUUTBBSUFBZ0EwOE5BQ0FBSVFFTUFRc2dBMEVRYXlFR0lBQWdBa0Z3Y1NJRmFpRUJJQU1nQldzaEF3TkFJQVlnQkdzZ0FDQUVhdjBBQUFEOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOURROE9EUXdMQ2drSUJ3WUZCQU1DQVFEOUN3QUFJQVJCRUdvaUJDQUZSdzBBQ3lBQ0lBVkdEUUVMQWtBZ0FrRURjU0lHUlFSQUlBVWhCQXdCQzBFQUlRQWdCU0VFQTBBZ0EwRUJheUlESUFFdEFBQTZBQUFnQkVFQmFpRUVJQUZCQVdvaEFTQUFRUUZxSWdBZ0JrY05BQXNMSUFVZ0FtdEJmRXNOQUFOQUlBTkJBV3NnQVMwQUFEb0FBQ0FEUVFKcklBRXRBQUU2QUFBZ0EwRURheUFCTFFBQ09nQUFJQU5CQkdzaUF5QUJMUUFET2dBQUlBRkJCR29oQVNBRVFRUnFJZ1FnQWtjTkFBc0xDNEFFQVFOL0lBSkJnQVJQQkVBZ0FDQUJJQUlRQWlBQUR3c2dBQ0FDYWlFREFrQWdBQ0FCYzBFRGNVVUVRQUpBSUFCQkEzRkZCRUFnQUNFQ0RBRUxJQUpGQkVBZ0FDRUNEQUVMSUFBaEFnTkFJQUlnQVMwQUFEb0FBQ0FCUVFGcUlRRWdBa0VCYWlJQ1FRTnhSUTBCSUFJZ0Ewa05BQXNMQWtBZ0EwRjhjU0lFUWNBQVNRMEFJQUlnQkVGQWFpSUZTdzBBQTBBZ0FpQUJLQUlBTmdJQUlBSWdBU2dDQkRZQ0JDQUNJQUVvQWdnMkFnZ2dBaUFCS0FJTU5nSU1JQUlnQVNnQ0VEWUNFQ0FDSUFFb0FoUTJBaFFnQWlBQktBSVlOZ0lZSUFJZ0FTZ0NIRFlDSENBQ0lBRW9BaUEyQWlBZ0FpQUJLQUlrTmdJa0lBSWdBU2dDS0RZQ0tDQUNJQUVvQWl3MkFpd2dBaUFCS0FJd05nSXdJQUlnQVNnQ05EWUNOQ0FDSUFFb0FqZzJBamdnQWlBQktBSThOZ0k4SUFGQlFHc2hBU0FDUVVCcklnSWdCVTBOQUFzTElBSWdCRThOQVFOQUlBSWdBU2dDQURZQ0FDQUJRUVJxSVFFZ0FrRUVhaUlDSUFSSkRRQUxEQUVMSUFOQkJFa0VRQ0FBSVFJTUFRc2dBQ0FEUVFScklnUkxCRUFnQUNFQ0RBRUxJQUFoQWdOQUlBSWdBUzBBQURvQUFDQUNJQUV0QUFFNkFBRWdBaUFCTFFBQ09nQUNJQUlnQVMwQUF6b0FBeUFCUVFScUlRRWdBa0VFYWlJQ0lBUk5EUUFMQ3lBQ0lBTkpCRUFEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBaUFEUncwQUN3c2dBQXN3QVFGL0FrQWdBRVVOQUNBQlJRMEFRUWdnQUNBQmJDSUJFQ1VpQUFSQUlBQkJBQ0FCRUJVYUN5QUFJUUlMSUFJTEVRQWdBRVVFUUVFQUR3dEJDQ0FBRUNVTDhnSUNBbjhCZmdKQUlBSkZEUUFnQUNBQk9nQUFJQUFnQW1vaUEwRUJheUFCT2dBQUlBSkJBMGtOQUNBQUlBRTZBQUlnQUNBQk9nQUJJQU5CQTJzZ0FUb0FBQ0FEUVFKcklBRTZBQUFnQWtFSFNRMEFJQUFnQVRvQUF5QURRUVJySUFFNkFBQWdBa0VKU1EwQUlBQkJBQ0FBYTBFRGNTSUVhaUlESUFGQi93RnhRWUdDaEFoc0lnRTJBZ0FnQXlBQ0lBUnJRWHh4SWdScUlnSkJCR3NnQVRZQ0FDQUVRUWxKRFFBZ0F5QUJOZ0lJSUFNZ0FUWUNCQ0FDUVFocklBRTJBZ0FnQWtFTWF5QUJOZ0lBSUFSQkdVa05BQ0FESUFFMkFoZ2dBeUFCTmdJVUlBTWdBVFlDRUNBRElBRTJBZ3dnQWtFUWF5QUJOZ0lBSUFKQkZHc2dBVFlDQUNBQ1FSaHJJQUUyQWdBZ0FrRWNheUFCTmdJQUlBUWdBMEVFY1VFWWNpSUVheUlDUVNCSkRRQWdBYTFDZ1lDQWdCQitJUVVnQXlBRWFpRUJBMEFnQVNBRk53TVlJQUVnQlRjREVDQUJJQVUzQXdnZ0FTQUZOd01BSUFGQklHb2hBU0FDUVNCcklnSkJIMHNOQUFzTElBQUxKd0VCZnlNQVFSQnJJZ01rQUNBRElBSTJBZ3dnQUNBQklBSkJBRUVBRUdzZ0EwRVFhaVFBQytnRkFRbC9JQUZGQkVCQkFBOExBbjhnQUVVRVFFRUlJQUVRSlF3QkN5QUJSUVJBSUFBUUVFRUFEQUVMQWtBZ0FVRkhTdzBBSUFBQ2YwRUlJQUZCQTJwQmZIRWdBVUVJVFJzaUIwRUlhaUVCQWtBQ2Z3SkFJQUJCQkdzaUNpSUVLQUlBSWdVZ0JHb2lBaWdDQUNJSklBSWdDV29pQ0VFRWF5Z0NBRWNFUUNBSUlBRWdCR29pQTBFUWFrOEVRQ0FDS0FJRUlnVWdBaWdDQ0NJQ05nSUlJQUlnQlRZQ0JDQURJQWdnQTJzaUFqWUNBQ0FESUFKQmZIRnFRUVJySUFKQkFYSTJBZ0FnQXdKL0lBTW9BZ0JCQ0dzaUFrSC9BRTBFUUNBQ1FRTjJRUUZyREFFTElBSkJIU0FDWnlJRmEzWkJCSE1nQlVFQ2RHdEI3Z0JxSUFKQi94OU5EUUFhUVQ4Z0FrRWVJQVZyZGtFQ2N5QUZRUUYwYTBISEFHb2lBaUFDUVQ5UEd3c2lBa0VFZENJRlFhREhBV28yQWdRZ0F5QUZRYWpIQVdvaUJTZ0NBRFlDQ0NBRklBTTJBZ0FnQXlnQ0NDQUROZ0lFUWFqUEFVR296d0VwQXdCQ0FTQUNyWWFFTndNQUlBUWdBVFlDQUF3RUN5QURJQWhMRFFFZ0FpZ0NCQ0lCSUFJb0FnZ2lBellDQ0NBRElBRTJBZ1FnQkNBRklBbHFJZ0UyQWdBTUF3c2dCU0FCUVJCcVR3UkFJQVFnQVRZQ0FDQUVJQUZCZkhGcVFRUnJJQUUyQWdBZ0FTQUVhaUlESUFVZ0FXc2lBVFlDQUNBRElBRkJmSEZxUVFScklBRkJBWEkyQWdBZ0F3Si9JQU1vQWdCQkNHc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZCSFNBQlp5SUVhM1pCQkhNZ0JFRUNkR3RCN2dCcUlBRkIveDlORFFBYVFUOGdBVUVlSUFScmRrRUNjeUFFUVFGMGEwSEhBR29pQVNBQlFUOVBHd3NpQVVFRWRDSUVRYURIQVdvMkFnUWdBeUFFUWFqSEFXb2lCQ2dDQURZQ0NDQUVJQU0yQWdBZ0F5Z0NDQ0FETmdJRVFhalBBVUdvendFcEF3QkNBU0FCcllhRU53TUFRUUVNQkF0QkFTQUJJQVZORFFFYUMwRUFDd3dCQ3lBRUlBRkJmSEZxUVFScklBRTJBZ0JCQVFzTkFScEJDQ0FIRUNVaUFVVU5BQ0FCSUFBZ0J5QUtLQUlBUVFocklnWWdCaUFIU3hzUUVob2dBQkFRSUFFaEJnc2dCZ3NMTndFQ2Z5TUFRUkJySWdFa0FDQUFCSDhnQVVFTWFrRVFJQUFRYkNFQVFRQWdBU2dDRENBQUd3VkJBQXNoQWlBQlFSQnFKQUFnQWdzWEFDQUFMUUFBUVNCeFJRUkFJQUVnQWlBQUVEMGFDd3U4QkFFRmZ5QUNJQUFvQWpBaUJVMEVRQ0FCSUFBb0FpUWdBaEFTR2lBQUlBQW9BaVFnQW1vMkFpUWdBQ0FBS0FJd0lBSnJOZ0l3SUFBZ0FDa0RPQ0FDclh3M0F6Z2dBZzhMSUFBdEFFUkJCSEVFUUNBQklBQW9BaVFnQlJBU0dpQUFLQUl3SVFFZ0FFRUFOZ0l3SUFBZ0FTQUFLQUlrYWpZQ0pDQUFJQUFwQXpnZ0FhMThOd000SUFWQmZ5QUZHdzhMQWtBZ0JRUkFJQUVnQUNnQ0pDQUZFQkloQkNBQUlBQW9BaUFpQnpZQ0pDQUFLQUl3SVFFZ0FFRUFOZ0l3SUFBZ0FDa0RPQ0FCclh3M0F6Z2dBaUFCYXlFQ0lBRWdCR29oQVF3QkN5QUFJQUFvQWlBaUJ6WUNKQXNDUUFKQUEwQUNRQ0FBS0FJQUlRUWdBQ2dDRUNFR0FrQWdBQ2dDUUNJSUlBSkxCRUFnQUNBSElBZ2dCQ0FHRVFBQUlnWTJBakFnQmtGL1JnUkFEQVlMSUFJZ0JrME5BaUFCSUFBb0FpUWdCaEFTR2lBQUlBQW9BaUFpQnpZQ0pDQUFLQUl3SVFRTUFRc2dBQ0FCSUFJZ0JDQUdFUUFBSWdRMkFqQWdCRUYvUmdSQURBVUxJQUlnQkUwTkF5QUFJQUFvQWlBaUJ6WUNKQ0FFSVFZTElBQkJBRFlDTUNBQUlBQXBBemdnQksxOE53TTRJQUVnQkdvaEFTQUNJQVJySVFJZ0JTQUdhaUVGREFFTEN5QUJJQUFvQWlRZ0FoQVNHaUFBSUFBb0FpUWdBbW8yQWlRZ0FDQUFLQUl3SUFKck5nSXdJQUFnQUNrRE9DQUNyWHczQXpnZ0FpQUZhZzhMSUFCQkFEWUNNQ0FBSUFBb0FpQTJBaVFnQUNBQUtRTTRJQVN0ZkRjRE9DQUVJQVZxRHdzZ0EwRUVRWnYxQUVFQUVBOGdBRUVBTmdJd0lBQWdBQ2dDUkVFRWNqWUNSQ0FGUVg4Z0JSc0xpd2NDRFg4QmZpQUFLQUlRSWdkQklFOEVRQ0FBS1FNSXB3OExBa0FnQUNnQ0dDSUNRUVJPQkVBZ0FDZ0NBQ0lCS0FJQUlRUWdBQ0FDUVFScklnVTJBaGdnQUNBQlFRUnFOZ0lBREFFTFFYOUJBQ0FBS0FJY0d5RUVJQUpCQUV3RVFDQUNJUVVNQVFzZ0FrRUJjU0VNSUFBb0FnQWhBUUpBSUFKQkFVWUVRQ0FCSVFZTUFRc2dBa0grLy8vL0IzRWhDZ05BSUFBZ0FVRUJhallDQUNBQkxRQUFJUWtnQUNBQlFRSnFJZ1kyQWdBZ0FDQUNRUUZyTmdJWUlBRXRBQUVoQVNBQUlBSkJBbXNpQWpZQ0dDQUVRZjhCSUFOMFFYOXpjU0FKSUFOMGNrR0EvZ01nQTNSQmYzTnhJQUVnQTBFSWNuUnlJUVFnQTBFUWFpRURJQVloQVNBRlFRSnFJZ1VnQ2tjTkFBc0xRUUFoQlNBTVJRMEFJQUFnQmtFQmFqWUNBQ0FHTFFBQUlRRWdBQ0FDUVFGck5nSVlJQVJCL3dFZ0EzUkJmM054SUFFZ0EzUnlJUVFMSUFBb0FoUWhBU0FBSUFSQkdIWWlDa0gvQVVZMkFoUWdBRUVIUVFnZ0FSc2lBVUVIUVFnZ0JFSC9BWEVpQmtIL0FVWWJhaUlDUVFkQkNDQUVRUWgyUWY4QmNTSURRZjhCUmh0cUlnbEJCMEVJSUFSQkVIWkIvd0Z4SWdSQi93RkdHeUFIYW1vaUNEWUNFQ0FBSUFBcEF3Z2dBeUFCZENBRUlBSjBjaUFLSUFsMGNpQUdjcTBnQjYyR2hDSU9Od01JSUFoQkgwMEVRQUpBSUFWQkJFNEVRQ0FBS0FJQUlnRW9BZ0FoQWlBQUlBVkJCR3MyQWhnZ0FDQUJRUVJxTmdJQURBRUxRUUFoQTBGL1FRQWdBQ2dDSEJzaEFpQUZRUUJNRFFBZ0JVRUJjU0VOSUFBb0FnQWhBUUpBSUFWQkFVWUVRQ0FCSVFRTUFRc2dCVUgrLy8vL0IzRWhDVUVBSVFZRFFDQUFJQUZCQVdvMkFnQWdBUzBBQUNFTElBQWdBVUVDYWlJRU5nSUFJQUFnQlVFQmF6WUNHQ0FCTFFBQklRRWdBQ0FGUVFKcklnVTJBaGdnQWtIL0FTQURkRUYvYzNFZ0N5QURkSEpCZ1A0RElBTjBRWDl6Y1NBQklBTkJDSEowY2lFQ0lBTkJFR29oQXlBRUlRRWdCa0VDYWlJR0lBbEhEUUFMQ3lBTlJRMEFJQUFnQkVFQmFqWUNBQ0FFTFFBQUlRRWdBQ0FGUVFGck5nSVlJQUpCL3dFZ0EzUkJmM054SUFFZ0EzUnlJUUlMSUFBZ0FrRVlkaUlCUWY4QlJqWUNGQ0FBUVFkQkNDQUtRZjhCUmhzaUJFRUhRUWdnQWtIL0FYRWlCa0gvQVVZYmFpSUZRUWRCQ0NBQ1FRaDJRZjhCY1NJRFFmOEJSaHRxSWdkQkIwRUlJQUpCRUhaQi93RnhJZ0pCL3dGR0d5QUlhbW8yQWhBZ0FDQURJQVIwSUFJZ0JYUnlJQUVnQjNSeUlBWnlyU0FJcllZZ0RvUWlEamNEQ0FzZ0RxY0xhd0VCZnlNQVFZQUNheUlGSkFBQ1FDQUNJQU5NRFFBZ0JFR0F3QVJ4RFFBZ0JTQUJJQUlnQTJzaUEwR0FBaUFEUVlBQ1NTSUJHeEFWR2lBQlJRUkFBMEFnQUNBRlFZQUNFQmtnQTBHQUFtc2lBMEgvQVVzTkFBc0xJQUFnQlNBREVCa0xJQVZCZ0FKcUpBQUxNUUFnQVFKL0lBSW9Ba3hCQUVnRVFDQUFJQUVnQWhBOURBRUxJQUFnQVNBQ0VEMExJZ0JHQkVBUEN5QUFJQUZ1R2dzWEFDQUFJQUVnQWlBRElBUWdCU0FHSUFkQkFSQW1HZ3VoQVFFRWZ5QUJRUUJNQkVCQkFBOExJQUFvQWd3aEFpQUFLQUlRSVFNRFFDQUJJUVVDUUNBRERRQWdBQ0FDUVFoMFFZRCtBM0VpQWpZQ0RDQUFRUWRCQ0NBQ1FZRCtBMFliSWdNMkFoQWdBQ2dDQ0NJQklBQW9BZ1JQRFFBZ0FDQUJRUUZxTmdJSUlBQWdBaUFCTFFBQWNpSUNOZ0lNQ3lBQUlBTkJBV3NpQXpZQ0VDQUNJQU4yUVFGeElBVkJBV3NpQVhRZ0JISWhCQ0FGUVFGTERRQUxJQVFMSGdBZ0FDZ0NEQVJBSUFCQkFEWUNLQU5BSUFBb0FoaEJBRW9OQUFzTEMyb0JBMzhnQUFSQUlBQW9BaGdpQVFSQUlBQW9BaEFpQWdSL1FRQWhBUU5BSUFBb0FoZ2dBVUUwYkdvb0Fpd2lBd1JBSUFNUUVDQUFLQUlRSVFJTElBRkJBV29pQVNBQ1NRMEFDeUFBS0FJWUJTQUJDeEFRQ3lBQUtBSWNJZ0VFUUNBQkVCQUxJQUFRRUFzTGtoVUJEMzhDUUFKQUlBQW9BZ3hGQkVCQkFTRVBJQUFvQWdSQkFFb05BU0FBS0FJSVFRRktEUUVNQWd0QkFTRU5JQUFvQWdoQkFFb05BQ0FBS0FJRVFRSklEUUVMSUFBb0FnQWlDQ0FOUVFWMGFpRUVBa0FnQUNnQ0VDSUhJQUFvQWhRaUNrOE5BQ0FFSUFkQkJuUnFJUUVDUUNBS0lBZHJRUU54SWdaRkJFQWdCeUVDREFFTElBY2hBZ05BSUFFZ0FmMEFCQUQ5REZoMm5UOVlkcDAvV0hhZFAxaDJuVC85NWdIOUN3UUFJQUVnQWYwQUJCRDlERmgyblQ5WWRwMC9XSGFkUDFoMm5ULzk1Z0g5Q3dRUUlBRkJRR3NoQVNBQ1FRRnFJUUlnQTBFQmFpSURJQVpIRFFBTEN5QUhJQXByUVh4TERRQURRQ0FCSUFIOUFBUUEvUXhZZHAwL1dIYWRQMWgyblQ5WWRwMC8vZVlCL1FzRUFDQUJJQUg5QUFRUS9ReFlkcDAvV0hhZFAxaDJuVDlZZHAwLy9lWUIvUXNFRUNBQklBSDlBQVJBL1F4WWRwMC9XSGFkUDFoMm5UOVlkcDAvL2VZQi9Rc0VRQ0FCSUFIOUFBUlEvUXhZZHAwL1dIYWRQMWgyblQ5WWRwMC8vZVlCL1FzRVVDQUJJQUg5QUFTQUFmME1XSGFkUDFoMm5UOVlkcDAvV0hhZFAvM21BZjBMQklBQklBRWdBZjBBQkpBQi9ReFlkcDAvV0hhZFAxaDJuVDlZZHAwLy9lWUIvUXNFa0FFZ0FTQUIvUUFFd0FIOURGaDJuVDlZZHAwL1dIYWRQMWgyblQvOTVnSDlDd1RBQVNBQklBSDlBQVRRQWYwTVdIYWRQMWgyblQ5WWRwMC9XSGFkUC8zbUFmMExCTkFCSUFGQmdBSnFJUUVnQWtFRWFpSUNJQXBIRFFBTEN5QUlJQTlCQlhScUlRVUNRQ0FBS0FJWUlnWWdBQ2dDSENJTFR3MEFJQVVnQmtFR2RHb2hBUUpBSUFzZ0JtdEJBM0VpQ0VVRVFDQUdJUUlNQVF0QkFDRURJQVloQWdOQUlBRWdBZjBBQkFEOURBQVkwRDhBR05BL0FCalFQd0FZMEQvOTVnSDlDd1FBSUFFZ0FmMEFCQkQ5REFBWTBEOEFHTkEvQUJqUVB3QVkwRC85NWdIOUN3UVFJQUZCUUdzaEFTQUNRUUZxSVFJZ0EwRUJhaUlESUFoSERRQUxDeUFHSUF0clFYeExEUUFEUUNBQklBSDlBQVFBL1F3QUdOQS9BQmpRUHdBWTBEOEFHTkEvL2VZQi9Rc0VBQ0FCSUFIOUFBUVEvUXdBR05BL0FCalFQd0FZMEQ4QUdOQS8vZVlCL1FzRUVDQUJJQUg5QUFSQS9Rd0FHTkEvQUJqUVB3QVkwRDhBR05BLy9lWUIvUXNFUUNBQklBSDlBQVJRL1F3QUdOQS9BQmpRUHdBWTBEOEFHTkEvL2VZQi9Rc0VVQ0FCSUFIOUFBU0FBZjBNQUJqUVB3QVkwRDhBR05BL0FCalFQLzNtQWYwTEJJQUJJQUVnQWYwQUJKQUIvUXdBR05BL0FCalFQd0FZMEQ4QUdOQS8vZVlCL1FzRWtBRWdBU0FCL1FBRXdBSDlEQUFZMEQ4QUdOQS9BQmpRUHdBWTBELzk1Z0g5Q3dUQUFTQUJJQUg5QUFUUUFmME1BQmpRUHdBWTBEOEFHTkEvQUJqUVAvM21BZjBMQk5BQklBRkJnQUpxSVFFZ0FrRUVhaUlDSUF0SERRQUxDeUFLSUFBb0FnZ2lDU0FBS0FJRUlnNGdEV3NpQUNBQUlBbEtHeUlJSUFnZ0Nrc2JJUXdnQkVFZ2FpRUJBbjhnQjBVRVFDQU1SUVJBUVFBaEF5QUJEQUlMSUFRZ0JQMEFCQUFnQmYwQUJBQWdCUDBBQkNEOTVBSDlERlVUNHo1VkUrTStWUlBqUGxVVDR6Nzk1Z0g5NVFIOUN3UUFJQVFnQlAwQUJCQWdCZjBBQkJBZ0JQMEFCREQ5NUFIOURGVVQ0ejVWRStNK1ZSUGpQbFVUNHo3OTVnSDk1UUg5Q3dRUVFRRWhBeUFFUWVBQWFnd0JDeUFCSUFjaUEwRUdkR29MSVFJZ0F5QU1TUVJBQTBBZ0FrRWdheUlBSUFEOUFBUUFJQUpCUUdyOUFBUUFJQUw5QUFRQS9lUUIvUXhWRStNK1ZSUGpQbFVUNHo1VkUrTSsvZVlCL2VVQi9Rc0VBQ0FDUVJCcklnQWdBUDBBQkFBZ0FrRXdhLzBBQkFBZ0F2MEFCQkQ5NUFIOURGVVQ0ejVWRStNK1ZSUGpQbFVUNHo3OTVnSDk1UUg5Q3dRQUlBSkJRR3NoQWlBRFFRRnFJZ01nREVjTkFBc0xJQWdnQ2s4aURVVUVRQ0FDUVNCcklnQWdBUDBBQkFBZ0FrRkFhdjBBQkFEOURGVVRZejlWRTJNL1ZSTmpQMVVUWXovOTVnSDk1UUg5Q3dRQUlBSkJFR3NpQUNBQS9RQUVBQ0FDUVRCci9RQUVBUDBNVlJOalAxVVRZejlWRTJNL1ZSTmpQLzNtQWYzbEFmMExCQUFMSUFzZ0RpQUpJQTlySWdBZ0FDQU9TaHNpRGlBTElBNUpHeUVKSUFWQklHb2hBaUFKQW44Z0JrVUVRQ0FKUlFSQUlBSWhBMEVBREFJTElBVWdCZjBBQkFBZ0JQMEFCQUFnQmYwQUJDRDk1QUg5REhZR1lqOTJCbUkvZGdaaVAzWUdZai85NWdIOTVRSDlDd1FBSUFVZ0JmMEFCQkFnQlAwQUJCQWdCZjBBQkREOTVBSDlESFlHWWo5MkJtSS9kZ1ppUDNZR1lqLzk1Z0g5NVFIOUN3UVFJQVZCNEFCcUlRTkJBUXdCQ3lBQ0lBWkJCblJxSVFNZ0Jnc2lBRXNFUUFOQUlBTkJJR3NpQ0NBSS9RQUVBQ0FEUVVCcS9RQUVBQ0FEL1FBRUFQM2tBZjBNZGdaaVAzWUdZajkyQm1JL2RnWmlQLzNtQWYzbEFmMExCQUFnQTBFUWF5SUlJQWo5QUFRQUlBTkJNR3Y5QUFRQUlBUDlBQVFRL2VRQi9ReDJCbUkvZGdaaVAzWUdZajkyQm1JLy9lWUIvZVVCL1FzRUFDQURRVUJySVFNZ0FFRUJhaUlBSUFsSERRQUxDeUFMSUE1TklnaEZCRUFnQTBFZ2F5SUFJQUQ5QUFRQUlBTkJRR3I5QUFRQS9ReDJCdUkvZGdiaVAzWUc0ajkyQnVJLy9lWUIvZVVCL1FzRUFDQURRUkJySWdBZ0FQMEFCQUFnQTBFd2EvMEFCQUQ5REhZRzRqOTJCdUkvZGdiaVAzWUc0ai85NWdIOTVRSDlDd1FBQ3dKQUlBZEZCRUFnREVVRVFFRUFJUWNNQWdzZ0JDQUUvUUFFQUNBRi9RQUVBQ0FFL1FBRUlQM2tBZjBNcmdGWlBhNEJXVDJ1QVZrOXJnRlpQZjNtQWYza0FmMExCQUFnQkNBRS9RQUVFQ0FGL1FBRUVDQUUvUUFFTVAza0FmME1yZ0ZaUGE0QldUMnVBVms5cmdGWlBmM21BZjNrQWYwTEJCQWdCRUhnQUdvaEFVRUJJUWNNQVFzZ0FTQUhRUVowYWlFQkN5QUhJQXhKQkVBRFFDQUJRU0JySWdBZ0FQMEFCQUFnQVVGQWF2MEFCQUFnQWYwQUJBRDk1QUg5REs0QldUMnVBVms5cmdGWlBhNEJXVDM5NWdIOTVBSDlDd1FBSUFGQkVHc2lBQ0FBL1FBRUFDQUJRVEJyL1FBRUFDQUIvUUFFRVAza0FmME1yZ0ZaUGE0QldUMnVBVms5cmdGWlBmM21BZjNrQWYwTEJBQWdBVUZBYXlFQklBZEJBV29pQnlBTVJ3MEFDd3NnRFVVRVFDQUJRU0JySWdBZ0FQMEFCQUFnQVVGQWF2MEFCQUQ5REs0QjJUMnVBZGs5cmdIWlBhNEIyVDM5NWdIOTVBSDlDd1FBSUFGQkVHc2lBQ0FBL1FBRUFDQUJRVEJyL1FBRUFQME1yZ0haUGE0QjJUMnVBZGs5cmdIWlBmM21BZjNrQWYwTEJBQUxBa0FnQmtVRVFDQUpSUVJBUVFBaEJnd0NDeUFGSUFYOUFBUUFJQVQ5QUFRQUlBWDlBQVFnL2VRQi9ReHpCc3MvY3diTFAzTUd5ejl6QnNzLy9lWUIvZVFCL1FzRUFDQUZJQVg5QUFRUUlBVDlBQVFRSUFYOUFBUXcvZVFCL1F4ekJzcy9jd2JMUDNNR3l6OXpCc3MvL2VZQi9lUUIvUXNFRUNBRlFlQUFhaUVDUVFFaEJnd0JDeUFDSUFaQkJuUnFJUUlMSUFZZ0NVa0VRQU5BSUFKQklHc2lBQ0FBL1FBRUFDQUNRVUJxL1FBRUFDQUMvUUFFQVAza0FmME1jd2JMUDNNR3l6OXpCc3MvY3diTFAvM21BZjNrQWYwTEJBQWdBa0VRYXlJQUlBRDlBQVFBSUFKQk1HdjlBQVFBSUFMOUFBUVEvZVFCL1F4ekJzcy9jd2JMUDNNR3l6OXpCc3MvL2VZQi9lUUIvUXNFQUNBQ1FVQnJJUUlnQmtFQmFpSUdJQWxIRFFBTEN5QUlEUUFnQWtFZ2F5SUFJQUQ5QUFRQUlBSkJRR3I5QUFRQS9ReHpCa3RBY3daTFFITUdTMEJ6Qmt0QS9lWUIvZVFCL1FzRUFDQUNRUkJySWdBZ0FQMEFCQUFnQWtFd2EvMEFCQUQ5REhNR1MwQnpCa3RBY3daTFFITUdTMEQ5NWdIOTVBSDlDd1FBQ3d0ZEFRUi9JQUFFUUNBQUtBSVVJZ0VnQUNnQ0VDSUNiQVJBQTBBZ0FDZ0NHQ0FEUVFKMGFpZ0NBQ0lFQkVBZ0JCQVFJQUFvQWhBaEFpQUFLQUlVSVFFTElBTkJBV29pQXlBQklBSnNTUTBBQ3dzZ0FDZ0NHQkFRSUFBUUVBc0xoUUVCQW44Q1FBSkFJQUFvQWdRaUF5QUFLQUlBSWdSSEJFQWdBQ2dDQ0NFRERBRUxJQUFnQTBFS2FpSUVOZ0lFSUFBb0FnZ2dCRUVDZEJBWElnTkZEUUVnQUNBRE5nSUlJQUFvQWdBaEJBc2dBeUFFUVFKMGFpQUJOZ0lBSUFBZ0JFRUJhallDQUVFQkR3c2dBQ2dDQ0JBUUlBQkNBRGNDQUNBQ1FRRkIwaTVCQUJBUFFRQUxrd1FDQm44Q2ZnSkFBa0FEUUNBQUlBQkJBV3R4RFFFZ0FVRkhTdzBCSUFCQkNDQUFRUWhMSWdjYklRQkJxTThCS1FNQUlnZ0NmMEVJSUFGQkEycEJmSEVnQVVFSVRSc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZuSVFNZ0FVRWRJQU5yZGtFRWN5QURRUUowYTBIdUFHb2dBVUgvSDAwTkFCcEJQeUFCUVI0Z0EydDJRUUp6SUFOQkFYUnJRY2NBYWlJRElBTkJQMDhiQ3lJRHJZZ2lDVUlBVWdSQUEwQWdDU0FKZWlJSWlDRUpBbjRnQXlBSXAyb2lBMEVFZENJRVFhakhBV29vQWdBaUFpQUVRYURIQVdvaUJVY0VRQ0FDSUFBZ0FSQThJZ1FOQmlBQ0tBSUVJZ1FnQWlnQ0NDSUdOZ0lJSUFZZ0JEWUNCQ0FDSUFVMkFnZ2dBaUFGS0FJRU5nSUVJQVVnQWpZQ0JDQUNLQUlFSUFJMkFnZ2dBMEVCYWlFRElBbENBWWdNQVF0QnFNOEJRYWpQQVNrREFFSitJQU90aVlNM0F3QWdDVUlCaFFzaUNVSUFVZzBBQzBHb3p3RXBBd0FoQ0F0QlB5QUllYWRySVFVQ1FDQUlVQVJBUVFBaEFnd0JDeUFGUVFSMElnUkJxTWNCYWlnQ0FDRUNJQWhDZ0lDQWdBUlVEUUJCNHdBaEF5QUNJQVJCb01jQmFpSUdSZzBBQTBBZ0EwVU5BU0FDSUFBZ0FSQThJZ1FOQkNBRFFRRnJJUU1nQWlnQ0NDSUNJQVpIRFFBTEN5QUJJQUJCTUdwQk1DQUhHMm9RYlEwQUN5QUNSUTBBSUFJZ0JVRUVkRUdneHdGcUlnTkdEUUFEUUNBQ0lBQWdBUkE4SWdRTkFpQUNLQUlJSWdJZ0EwY05BQXNMUVFBaEJBc2dCQXZhSXdJcmZ3TjdBa0FnQUNnQ0FDSUpJQU5KRFFBZ0FTQURUdzBBSUFFZ0NVOE5BQ0FBS0FJRUlna2dCRWtOQUNBQ0lBUlBEUUFnQWlBSlR3MEFJQVZCSEdzaEp5QUFLQUlJSWhsQkFuUWhFU0FIUVFKMElROGdCa0VDZENFZklBVkJCR3NoS0NBQ0lBQW9BZ3h1SVI0Z0dTQVpJQUVnR1c0aUtXd2dBV3RxSVNvZ0JrRUlSeUVqSUFJaEhRTkFJQUFvQWd3aUNTRUtJQUlnSFVZRVFDQUpJQUlnQ1hCcklRb0xJQW9nQkNBZGF5SU1JQW9nREVrYkloTkJmSEVoR3lBVFFRTnhJUllnRTBGNGNTRXJJQk5CQjNFaEpDQVRRUUZySVJvZ0dTQUpRUUowSUFwQkFuUnJRUVJxYkNFZ0lBWkJBa1lnRTBFQlJuRWhMQ0FKSUFwcklCbHNJU1VnSnlBUElCMGdBbXNpREd3aUNXb2hKaUFKSUNocUlTMGdCU0FKYWlFdUlBVWdCeUFNYkVFQ2RHb2hIQ0FwSVNFZ0FTRVlBMEFnS2lBWklBRWdHRVliSWd3Z0F5QVlheUlKSUFrZ0RFc2JJUkFnR1NBTWF5RUpJQ0ZCQW5RaURTQUFLQUlZSUFBb0FoQWdIbXhCQW5ScWFpZ0NBQ0VTQWtBQ1FDQUlCRUFDUUFKQUFrQUNRQUpBSUJJRVFDQVNJQ1ZCQW5ScUlBbEJBblJxSVFvZ0dDQUJheUVOSUFaQkFVWU5CQ0FjSUFZZ0RXeEJBblJxSVFzZ0VFRUJSZzBESUN3TkFpQWpEUUVnRUVFSFRRMEJJQk5GRFFnZ0ppQU5JQjlzYWlBUVFRVjBhaUVWSUJJZ0lDQVFRUUowYWlBTVFRSjBhMm9oSWlBUVFYeHhJUTFCQUNFU0RBVUxJQVpCQVVjRVFDQVRSUTBJSUJCQmZIRWhEU0FRUVFOeElRd2dIQ0FZSUFGcklBWnNRUUowYWlFTFFRQWhFaUFRUVFGclFRTkpJUlFEUUFKQUlCQkZEUUJCQUNFSlFRQWhDa0VBSVE0Z0ZFVUVRQU5BSUFzZ0JpQUtiRUVDZEdwQkFEWUNBQ0FMSUFwQkFYSWdCbXhCQW5ScVFRQTJBZ0FnQ3lBS1FRSnlJQVpzUVFKMGFrRUFOZ0lBSUFzZ0NrRURjaUFHYkVFQ2RHcEJBRFlDQUNBS1FRUnFJUW9nRGtFRWFpSU9JQTFIRFFBTEN5QU1SUTBBQTBBZ0N5QUdJQXBzUVFKMGFrRUFOZ0lBSUFwQkFXb2hDaUFKUVFGcUlna2dERWNOQUFzTElBc2dEMm9oQ3lBVElCSkJBV29pRWtjTkFBc01DQXNnRTBVTkJ5QVFRUUowSVF3Z0hDQVlJQUZyUVFKMGFpRUxRUUFoQ1NBYVFRZFBCRUFEUUNBTFFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cUlRc2dDVUVJYWlJSklDdEhEUUFMQzBFQUlRa2dKRVVOQndOQUlBdEJBQ0FNRUJVZ0Qyb2hDeUFKUVFGcUlna2dKRWNOQUFzTUJ3c2dFMFVOQmlBUVFYeHhJUlFnRUVFRGNTRVNRUUFoRFNBUVFRRnJRUU5KSVJjTUJRdEJBQ0VKSUJCQmZIRWlEZ1JBQTBBZ0N5QUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnQ1VFQmNpSVVRUU4wYWlBS0lCUkJBblJxS0FJQU5nSUFJQXNnQ1VFQ2NpSVVRUU4wYWlBS0lCUkJBblJxS0FJQU5nSUFJQXNnQ1VFRGNpSVVRUU4wYWlBS0lCUkJBblJxS0FJQU5nSUFJQWxCQkdvaUNTQU9TUTBBQ3dzZ0NTQVFUdzBGQWtBZ0VDQUpheUlVUVJCSkRRQWdMaUFOSUI5c0lnMXFJQWxCQTNScUlCSWdJR29pRGlBUUlBeHJRUUowYWtrRVFDQU9JQWtnREd0QkFuUnFJQTBnTFdvZ0VFRURkR3BKRFFFTElBb2dDVUVDZEdvaERTQUovUkg5REFBQUFBQUJBQUFBQWdBQUFBTUFBQUQ5cmdFaE5DQUpJQlJCZkhFaURHb2hDVUVBSVE0RFFDQUxJRFJCQWYyckFTSTEvUnNBUVFKMGFpQU5JQTVCQW5ScS9RQUNBQ0kyL1ZvQ0FBQWdDeUExL1JzQlFRSjBhaUEyL1ZvQ0FBRWdDeUExL1JzQ1FRSjBhaUEyL1ZvQ0FBSWdDeUExL1JzRFFRSjBhaUEyL1ZvQ0FBTWdOUDBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFMElBNUJCR29pRGlBTVJ3MEFDeUFNSUJSR0RRWUxRUUFoRENBSklRNGdFQ0FKYTBFRGNTSU5CRUFEUUNBTElBNUJBM1JxSUFvZ0RrRUNkR29vQWdBMkFnQWdEa0VCYWlFT0lBeEJBV29pRENBTlJ3MEFDd3NnQ1NBUWEwRjhTdzBGQTBBZ0N5QU9RUU4wYWlBS0lBNUJBblJxS0FJQU5nSUFJQXNnRGtFQmFpSUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnRGtFQ2FpSUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnRGtFRGFpSUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQTVCQkdvaURpQVFSdzBBQ3d3RkN5QVRSUTBFUVFBaENTQWFRUU5QQkVBRFFDQUxJQW9vQWdBMkFnQWdDeUFQYWlJTUlBb2dFV29pRFNnQ0FEWUNBQ0FNSUE5cUlnd2dEU0FSYWlJTktBSUFOZ0lBSUF3Z0Qyb2lEQ0FOSUJGcUlnMG9BZ0EyQWdBZ0RTQVJhaUVLSUF3Z0Qyb2hDeUFKUVFScUlna2dHMGNOQUFzTFFRQWhDU0FXUlEwRUEwQWdDeUFLS0FJQU5nSUFJQW9nRVdvaENpQUxJQTlxSVFzZ0NVRUJhaUlKSUJaSERRQUxEQVFMSUJ3Z0RVRUNkR29oQ3lBUVFRUkhCRUFnRTBVTkJDQVFRUUowSVFsQkFDRU9JQnBCQTA4RVFBTkFJQXNnQ2lBSkVCSWhNQ0FLSUJGcUlnMGdFV29pQ3lBUmFpSVNJQkZxSVFvZ01DQVBhaUFOSUFrUUVpQVBhaUFMSUFrUUVpQVBhaUFTSUFrUUVpQVBhaUVMSUE1QkJHb2lEaUFiUncwQUN3dEJBQ0VPSUJaRkRRUURRQ0FMSUFvZ0NSQVNJVEVnQ2lBUmFpRUtJREVnRDJvaEN5QU9RUUZxSWc0Z0ZrY05BQXNNQkFzZ0UwVU5BMEVBSVFrZ0drRURUd1JBQTBBZ0N5QUsvUUFDQVAwTEFnQWdDeUFQYWlJTUlBb2dFV29pRGYwQUFnRDlDd0lBSUF3Z0Qyb2lEQ0FOSUJGcUlnMzlBQUlBL1FzQ0FDQU1JQTlxSWd3Z0RTQVJhaUlOL1FBQ0FQMExBZ0FnRFNBUmFpRUtJQXdnRDJvaEN5QUpRUVJxSWdrZ0cwY05BQXNMUVFBaENTQVdSUTBEQTBBZ0N5QUsvUUFDQVAwTEFnQWdDaUFSYWlFS0lBc2dEMm9oQ3lBSlFRRnFJZ2tnRmtjTkFBc01Bd3NEUUVFQUlRa2dEUVJBQTBBZ0N5QUpRUVYwYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnQ1VFQmNpSU1RUVYwYWlBS0lBeEJBblJxS0FJQU5nSUFJQXNnQ1VFQ2NpSU1RUVYwYWlBS0lBeEJBblJxS0FJQU5nSUFJQXNnQ1VFRGNpSU1RUVYwYWlBS0lBeEJBblJxS0FJQU5nSUFJQWxCQkdvaUNTQU5TUTBBQ3dzQ1FDQUpJQkJQRFFBQ1FDQVFJQWxySWhSQkNFOEVRQUpBSUFzZ0NVRUZkR29nSWlBUklCSnNhazhOQUNBS0lBbEJBblJxSUJVZ0R5QVNiR3BQRFFBZ0NTRU1EQUlMSUFuOUVmME1BQUFBQUFFQUFBQUNBQUFBQXdBQUFQMnVBU0UwSUFrZ0ZFRjhjU0lYYWlFTVFRQWhEZ05BSUFzZ05FRUQvYXNCSWpYOUd3QkJBblJxSUFvZ0NTQU9ha0VDZEdyOUFBSUFJamI5V2dJQUFDQUxJRFg5R3dGQkFuUnFJRGI5V2dJQUFTQUxJRFg5R3dKQkFuUnFJRGI5V2dJQUFpQUxJRFg5R3dOQkFuUnFJRGI5V2dJQUF5QTAvUXdFQUFBQUJBQUFBQVFBQUFBRUFBQUEvYTRCSVRRZ0RrRUVhaUlPSUJkSERRQUxJQlFnRjBZTkFnd0JDeUFKSVF3TFFRQWhEaUFRSUF3aUNXdEJBM0VpRkFSQUEwQWdDeUFKUVFWMGFpQUtJQWxCQW5ScUtBSUFOZ0lBSUFsQkFXb2hDU0FPUVFGcUlnNGdGRWNOQUFzTElBd2dFR3RCZkVzTkFBTkFJQXNnQ1VFRmRHb2dDaUFKUVFKMGFpZ0NBRFlDQUNBTElBbEJBV29pREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBTElBbEJBbW9pREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBTElBbEJBMm9pREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBSlFRUnFJZ2tnRUVjTkFBc0xJQW9nRVdvaENpQUxJQTlxSVFzZ0V5QVNRUUZxSWhKSERRQUxEQUlMSUJKRkJFQkJBU0FBS0FJSUlBQW9BZ3hzUVFKMEVCTWlFa1VFUUVFQUR3c2dBQ2dDR0NBQUtBSVFJQjVzUVFKMGFpQU5haUFTTmdJQUN5QVNJQ1ZCQW5ScUlBbEJBblJxSVFzZ0dDQUJheUVKQWtBQ1FBSkFBa0FnQmtFQlJ3UkFJQndnQmlBSmJFRUNkR29oQ2lBUVFRRkdEUUVnSXcwQ0lCQkJCMDBOQWlBVFJRMEdJQ1lnQ1NBZmJHb2dFRUVGZEdvaElpQWdJQkJCQW5ScUlBeEJBblJySVM4Z0VFRjhjU0VVUVFBaERBTkFRUUFoQ1NBVUJFQURRQ0FMSUFsQkFuUnFJQW9nQ1VFRmRHb29BZ0EyQWdBZ0N5QUpRUUZ5SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0N5QUpRUUp5SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0N5QUpRUU55SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0NVRUVhaUlKSUJSSkRRQUxDd0pBSUFrZ0VFOE5BQUpBSUJBZ0NXc2lGMEVJVHdSQUFrQWdDeUFKUVFKMGFpQWlJQXdnRDJ4cVR3MEFJQW9nQ1VFRmRHb2dFaUF2SUF3Z0VXeHFhazhOQUNBSklRME1BZ3NnQ2YwUi9Rd0FBQUFBQVFBQUFBSUFBQUFEQUFBQS9hNEJJVFFnQ1NBWFFYeHhJaFZxSVExQkFDRU9BMEFnQ3lBSklBNXFRUUowYWlBS0lEUkJBLzJyQVNJMS9Sc0RRUUowYWlBS0lEWDlHd0pCQW5ScUlBb2dOZjBiQVVFQ2RHb2dDaUExL1JzQVFRSjBhdjBKQWdEOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlEVDlEQVFBQUFBRUFBQUFCQUFBQUFRQUFBRDlyZ0VoTkNBT1FRUnFJZzRnRlVjTkFBc2dGU0FYUmcwQ0RBRUxJQWtoRFF0QkFDRU9JQkFnRFNJSmEwRURjU0lYQkVBRFFDQUxJQWxCQW5ScUlBb2dDVUVGZEdvb0FnQTJBZ0FnQ1VFQmFpRUpJQTVCQVdvaURpQVhSdzBBQ3dzZ0RTQVFhMEY4U3cwQUEwQWdDeUFKUVFKMGFpQUtJQWxCQlhScUtBSUFOZ0lBSUFzZ0NVRUJhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFzZ0NVRUNhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFzZ0NVRURhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFsQkJHb2lDU0FRUncwQUN3c2dDeUFSYWlFTElBb2dEMm9oQ2lBVElBeEJBV29pREVjTkFBc01CZ3NnSENBSlFRSjBhaUVLSUJCQkJFWU5BaUFUUlEwRklCQkJBblFoQ1VFQUlRNGdHa0VEVHdSQUEwQWdDeUFLSUFrUUVpRXlJQW9nRDJvaURTQVBhaUlMSUE5cUloSWdEMm9oQ2lBeUlCRnFJQTBnQ1JBU0lCRnFJQXNnQ1JBU0lCRnFJQklnQ1JBU0lCRnFJUXNnRGtFRWFpSU9JQnRIRFFBTEMwRUFJUTRnRmtVTkJRTkFJQXNnQ2lBSkVCSWhNeUFLSUE5cUlRb2dNeUFSYWlFTElBNUJBV29pRGlBV1J3MEFDd3dGQ3lBVFJRMEVRUUFoQ1NBYVFRTlBCRUFEUUNBTElBb29BZ0EyQWdBZ0N5QVJhaUlNSUFvZ0Qyb2lEU2dDQURZQ0FDQU1JQkZxSWd3Z0RTQVBhaUlOS0FJQU5nSUFJQXdnRVdvaURDQU5JQTlxSWcwb0FnQTJBZ0FnRENBUmFpRUxJQTBnRDJvaENpQUpRUVJxSWdrZ0cwY05BQXNMUVFBaENTQVdSUTBFQTBBZ0N5QUtLQUlBTmdJQUlBc2dFV29oQ3lBS0lBOXFJUW9nQ1VFQmFpSUpJQlpIRFFBTERBUUxJQk5GRFFNZ0VFRjhjU0VVSUJCQkEzRWhFa0VBSVEwZ0VFRUJhMEVEU1NFWERBRUxJQk5GRFFKQkFDRUpJQnBCQTA4RVFBTkFJQXNnQ3YwQUFnRDlDd0lBSUFzZ0VXb2lEQ0FLSUE5cUlnMzlBQUlBL1FzQ0FDQU1JQkZxSWd3Z0RTQVBhaUlOL1FBQ0FQMExBZ0FnRENBUmFpSU1JQTBnRDJvaURmMEFBZ0Q5Q3dJQUlBMGdEMm9oQ2lBTUlCRnFJUXNnQ1VFRWFpSUpJQnRIRFFBTEMwRUFJUWtnRmtVTkFnTkFJQXNnQ3YwQUFnRDlDd0lBSUFvZ0Qyb2hDaUFMSUJGcUlRc2dDVUVCYWlJSklCWkhEUUFMREFJTEEwQUNRQ0FRUlEwQVFRQWhEa0VBSVFsQkFDRU1JQmRGQkVBRFFDQUxJQWxCQW5ScUlBb2dCaUFKYkVFQ2RHb29BZ0EyQWdBZ0N5QUpRUUZ5SWhWQkFuUnFJQW9nQmlBVmJFRUNkR29vQWdBMkFnQWdDeUFKUVFKeUloVkJBblJxSUFvZ0JpQVZiRUVDZEdvb0FnQTJBZ0FnQ3lBSlFRTnlJaFZCQW5ScUlBb2dCaUFWYkVFQ2RHb29BZ0EyQWdBZ0NVRUVhaUVKSUF4QkJHb2lEQ0FVUncwQUN3c2dFa1VOQUFOQUlBc2dDVUVDZEdvZ0NpQUdJQWxzUVFKMGFpZ0NBRFlDQUNBSlFRRnFJUWtnRGtFQmFpSU9JQkpIRFFBTEN5QUxJQkZxSVFzZ0NpQVBhaUVLSUJNZ0RVRUJhaUlOUncwQUN3d0JDd05BQWtBZ0VFVU5BRUVBSVE1QkFDRUpRUUFoRENBWFJRUkFBMEFnQ3lBR0lBbHNRUUowYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnQ1VFQmNpSVZJQVpzUVFKMGFpQUtJQlZCQW5ScUtBSUFOZ0lBSUFzZ0NVRUNjaUlWSUFac1FRSjBhaUFLSUJWQkFuUnFLQUlBTmdJQUlBc2dDVUVEY2lJVklBWnNRUUowYWlBS0lCVkJBblJxS0FJQU5nSUFJQWxCQkdvaENTQU1RUVJxSWd3Z0ZFY05BQXNMSUJKRkRRQURRQ0FMSUFZZ0NXeEJBblJxSUFvZ0NVRUNkR29vQWdBMkFnQWdDVUVCYWlFSklBNUJBV29pRGlBU1J3MEFDd3NnQ2lBUmFpRUtJQXNnRDJvaEN5QU5RUUZxSWcwZ0UwY05BQXNMSUNGQkFXb2hJU0FRSUJocUloZ2dBMGtOQUFzZ0hrRUJhaUVlSUJNZ0hXb2lIU0FFU1EwQUN3dEJBUXZETXdVbWZ3OStBWHNCZlFGOEl3QkIwQUJySWc0a0FDQU9RWkQvQXpZQ0tDQUFLQUpzSUFBb0FtaHNJUmNDZndKQUFrQUNRQ0FBS0FJSUlndEJDRWNFUUVFQUlBdEJnQUpIRFFRYUlBNUIyZjhETmdJb0RBRUxJQUF0QUVSQkFYRU5BQ0FYUVFGeElTSWdGMEY4Y1NFUElCZEJBV3V0UW93c2ZpSXhRaUNJcDBFQVJ5RWpJREduSVNRZ0RrSE5BR29oSlNBT1Fjd0FhaUVvSUE1QnlBQnFJU2tnRjBFa1NTRXFRWkQvQXlFTEFrQUNRQUpBQTBBQ1FDQUxRWlAvQTBZTkFBSkFBMEFnQ1NrRENDSXhVQVIrUWdBRklERWdDU2tET0gwTFVBUkFJQUJCd0FBMkFnZ01Bd3NnQ1NBQUtBSVFRUUlnQ2hBYVFRSkhCRUFnQ2tFQlFaWVNRUUFRRDBFQURBc0xJQUFvQWhBZ0RrRWtha0VDRUJFZ0RpZ0NKQ0lMUVFGTkJFQWdDa0VCUVljdVFRQVFEMEVBREFzTEFrQWdEaWdDS0VHQWdRSkdCRUFnQ1NrRENDSXhVQVIrUWdBRklERWdDU2tET0gwTFVBMEJJQTRvQWlRaEN3c2dBQ2dDQ0NJVVFSQnhCRUFnQUNBQUtBSVlJQXRyUVFKck5nSVlDeUFPSUF0QkFtc2lFallDSkVIZ3ZRRWhEQ0FPS0FJb0lRMERRQ0FNSWdzb0FnQWlHQVJBSUF0QkRHb2hEQ0FOSUJoSERRRUxDeUFMS0FJRUlCUnhSUVJBSUFwQkFVSDhLRUVBRUE5QkFBd01Dd0pBSUFBb0FoUWdFazhFUUNBQUtBSVFJUXdNQVFzZ0NTa0RDQ0l4VUFSK1FnQUZJREVnQ1NrRE9IMExJQkt0VXdSQUlBcEJBVUdNTEVFQUVBOUJBQXdOQ3lBQUtBSVFJQTRvQWlRUUZ5SU1SUVJBSUFBb0FoQVFFQ0FBUWdBM0F4QWdDa0VCUWRRbFFRQVFEMEVBREEwTElBQWdERFlDRUNBQUlBNG9BaVFpRWpZQ0ZBc2dDU0FNSUJJZ0NoQWFJZ3dnRGlnQ0pFY0VRQ0FLUVFGQmxoSkJBQkFQUVFBTURBc2dDeWdDQ0NJTFJRUkFJQXBCQVVIYTFnQkJBQkFQUVFBTURBc2dBQ0FBS0FJUUlBd2dDaUFMRVFFQVJRUkFJQTRnRGlnQ0tEWUNJQ0FLUVFGQmxPZ0FJQTVCSUdvUUQwRUFEQXdMSUFrcEF6Z2hNU0FPS0FJa0lSRWdBQ2dDeUFFaUZDZ0NLQ0lTSUFBb0Fzd0JJZ3hCS0d3aURXb2lGaWdDRkNJY1FRRnFJaDBnRmlnQ0hDSUxTd1JBSUJZQ2Z5QUxzME1BQU1oQ2tpSkJRd0FBZ0U5ZElFRkRBQUFBQUdCeEJFQWdRYWtNQVF0QkFBc2lDellDSENBV0tBSVlJQXRCR0d3UUZ5RUxJQlFvQWlnaUVpQU5haUVXSUF0RkRRTWdGaUFMTmdJWUlCWW9BaFFpSEVFQmFpRWRDeUFOSUJKcUlnMG9BaGdnSEVFWWJHb2lDeUFSUVFScU5nSVFJQXNnTWFjZ0VXdEJCR3NpREt3M0F3Z2dDeUFZT3dFQUlBMGdIVFlDRkFKQUlCaEJrUDhEUncwQUlBMG9BaEFpQ3dSQUlBc2dEU2dDREVFWWJHb2dESzAzQXdBTElBa3BBemluSUE0b0FpUnJRUVJyclNJeElBQXBBekJYRFFBZ0FDQXhOd013Q3lBQUxRQkVRUVJ4QkVBZ0NTQUFOUUlZSUFvZ0NTZ0NLQkVJQUNBQU5RSVlVZ1JBSUFwQkFVR1dFa0VBRUE5QkFBd05DeUFPUVpQL0F6WUNLQXdFQ3lBSklBQW9BaEJCQWlBS0VCcEJBa2NFUUNBS1FRRkJsaEpCQUJBUFFRQU1EQXNnQUNnQ0VDQU9RU2hxUVFJUUVTQU9LQUlvUVpQL0EwY05BUXdEQ3dzZ0FFSEFBRFlDQ0F3QkN5QVdLQUlZRUJBZ0ZDZ0NLQ0FNUVNoc2FpSUFRUUEyQWh3Z0FFSUFOd0lVSUFwQkFVR0ZIVUVBRUE5QkFBd0lDd0pBSUFrcEF3Z2lNVkFFZmtJQUJTQXhJQWtwQXpoOUMxQUVRQ0FBS0FJSVFjQUFSZzBCQ3dKQUFrQWdBQzBBUkNJTFFRUnhSUVJBSUFBb0Fzd0JRWXdzYkNFTUlBQW9BcHdCSVM0Q1FBSkFJQUFvQWpnRVFDQUpLUU1JSWpGUUJINUNBQVVnTVNBSktRTTRmUXVuSVJNTUFRc2dBQ2dDR0NJVFFRSkpEUUVMSUFBZ0UwRUNheUlUTmdJWUN5QXVJQXhxSVJnZ0UwVU5BU0FKS1FNSUlqRlFCSDVDQUFVZ01TQUpLUU00ZlFzZ0U2MVRCRUFnQUNnQ3VBRUVRQ0FLUVFGQnVTeEJBQkFQUVFBTURRc2dDa0VDUWJrc1FRQVFEd3NnQUNnQ0dDSU5RWDVQQkVBZ0NrRUJRZjRLUVFBUUQwRUFEQXdMQWtBZ0dDZ0MzQ3NpREFSQUlCZ29BdUFySWd0QmZTQU5hMHNFUUNBS1FRRkJsZ2xCQUJBUFFRQU1EZ3NnRENBTElBMXFRUUpxRUJjaUN3UkFJQmdnQ3pZQzNDc01CQXNnR0NnQzNDc1FFQ0FZUVFBMkF0d3JEQUVMSUJnZ0RVRUNhaEFVSWdzMkF0d3JJQXNOQWdzZ0NrRUJRWWN2UVFBUUQwRUFEQXNMSUFCQkNEWUNDQ0FBSUF0QitnRnhPZ0JFREFFTElBQW9Bc2dCSWhZRVFDQVdLQUlvSWhJZ0FDZ0N6QUVpRkVFb2JDSVJhaUlNS0FJUUlBd29BZ3hCR0d4cUlnc2dDU2tET0NJeVFnSjlJakUzQXdnZ0N5QXlJQUExQWhoOE53TVFJQUFvQWhnaERRSkFJQXdvQWhRaUhFRUJhaUlkSUF3b0Fod2lDMDBFUUNBTUtBSVlJUXdNQVFzZ0RBSi9JQXV6UXdBQXlFS1NJa0ZEQUFDQVQxMGdRVU1BQUFBQVlIRUVRQ0JCcVF3QkMwRUFDeUlMTmdJY0lBd29BaGdnQzBFWWJCQVhJUXdnRmlnQ0tDSVNJQkZxSVFzZ0RFVU5CaUFMSUF3MkFoZ2dDeWdDRkNJY1FRRnFJUjBMSUF3Z0hFRVliR29pQ3lBTlFRSnFOZ0lRSUFzZ01jUTNBd2dnQzBHVC93TTdBUUFnRVNBU2FpQWROZ0lVQ3lBQUtBSVlJUXdDUUNBVFJRUkFRUUFoRXd3QkN5QUpJQmdvQXR3cklCZ29BdUFyYWlBTUlBb1FHaUVUSUFBb0FoZ2hEQXNnQUVFSVFjQUFJQXdnRTBZYk5nSUlJQmdnR0NnQzRDc2dFMm8yQXVBcklBQXRBRVFpQzBFSmNVRUJSdzBBSUFBZ0MwRUljam9BUkNBQUtBTE1BU0VOSUFrb0FoeEJBa1lOQUNBSktRTTRJakZDZjFFTkFBSkFBMEJCQUNFTUlBa2dEa0hHQUdvaUMwRUNJQW9RR2tFQ1J3MEJJQXNnRGtGQWEwRUNFQkVnRGlnQ1FFR1Evd05IRFFGQmxoSWhFaUFKSUF0QkFpQUtFQnBCQWtjTkNTQUxJQTVCUEdwQkFoQVJJQTRvQWp4QkNrY0VRRUdITGlFU0RBb0xJQTVCQ0RZQ1BDQUpJQTVCeGdCcVFRZ2dDaEFhSWdzZ0RpZ0NQRWNOQ1NBTFFRaEhCRUJCdlI0aEVnd0tDeUFPUWNZQWFpQU9RVGhxUVFJUUVTQXBJQTVCTkdwQkJCQVJJQ2dnRGtFd2FrRUJFQkVnSlNBT1FTeHFRUUVRRVNBTklBNG9BamhIQkVBZ0RpZ0NOQ0lMUVE1SkRRSWdEaUFMUVF4cklnczJBalFnQ1NBTHJTQUtJQWtvQWlnUkNBQWdEalVDTkZFTkFRd0NDd3NnRGlnQ01DQU9LQUlzUmlFTUN5QUpJREVnQ2lBSktBSXNFUTBBUlEwSUlBeEZEUUFnQUNBQUxRQkVRZTRCY1VFUWNqb0FSQUpBSUJkRkRRQWdBQ2dDbkFFaEUwRUFJUXNDUUNBcURRQWdFMEhZSzJvaURDQWthaUFNU1NBamNnMEFBMEFnRXlBTFFZd3NiR29pSENnQzJDc2lIZjBSSUJNZ0MwRUJja0dNTEd4cUloZ29BdGdySWhiOUhBRWdFeUFMUVFKeVFZd3NiR29pRVNnQzJDc2lGUDBjQWlBVElBdEJBM0pCakN4c2FpSU5LQUxZS3lJTS9Sd0QvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvVGdpUVAwYkFFRUJjUVJBSUJ4QjJDdHFJQjFCQVdvMkFnQUxJRUQ5R3dGQkFYRUVRQ0FZUWRncmFpQVdRUUZxTmdJQUN5QkEvUnNDUVFGeEJFQWdFVUhZSzJvZ0ZFRUJhallDQUFzZ1FQMGJBMEVCY1FSQUlBMUIyQ3RxSUF4QkFXbzJBZ0FMSUF0QkJHb2lDeUFQUncwQUN5QVhJQThpQzBZTkFRc2dDMEVCY2lFTUlDSUVRQ0FUSUF0QmpDeHNhaUlOS0FMWUt5SUxCRUFnRFVIWUsyb2dDMEVCYWpZQ0FBc2dEQ0VMQ3lBTUlCZEdEUUFEUUNBVElBdEJqQ3hzYWlJTktBTFlLeUlNQkVBZ0RVSFlLMm9nREVFQmFqWUNBQXNnRFVIazF3QnFJZzBvQWdBaURBUkFJQTBnREVFQmFqWUNBQXNnQzBFQ2FpSUxJQmRIRFFBTEN5QUtRUUpCbE1RQVFRQVFEd3NnQUMwQVJFRUJjUTBBSUFrZ0FDZ0NFRUVDSUFvUUdrRUNSd1JBQWtBZ0FDZ0N6QUZCQVdvZ0YwY05BQ0FYUlEwQUlBQW9BcHdCSVF4QkFDRUxBMEFnRENBTFFZd3NiR29pQ1NnQzFDdEZCRUFnQ1NnQzJDdEZEUWdMSUF0QkFXb2lDeUFYUncwQUN3c2dDa0VCUVpZU1FRQVFEMEVBREFrTElBQW9BaEFnRGtFb2FrRUNFQkVnRGlnQ0tDRUxJQUF0QUVSQkFYRU5BaUFMUWRuL0EwY05BUXdDQ3dzZ0RpZ0NLQ0VMQ3lBTFFkbi9BMGNOQWlBQUtBSUlRWUFDUmcwQ0lBQkJnQUkyQWdnZ0FFRUFOZ0xNQVF3Q0N5QUxLQUlZRUJBZ0ZpZ0NLQ0FVUVNoc2FpSUFRUUEyQWh3Z0FFSUFOd0lVSUFwQkFVR0ZIVUVBRUE5QkFBd0VDeUFPSUFzMkFoQWdDa0VFUWVmUkFDQU9RUkJxRUE4Z0FDQUxOZ0xNQVNBT1Fkbi9BellDS0NBQVFZQUNOZ0lJQ3lBQUtBTE1BU0VMSUFBb0Fwd0JJUWtDUUFKQUlBQXRBRVJCQVhFTkFBSkFBa0FnQ3lBWFR3MEFJQWtnQzBHTUxHeHFJUk1EUUNBVEtBTGNLdzBCSUFBZ0MwRUJhaUlMTmdMTUFTQVRRWXdzYWlFVElBc2dGMGNOQUFzTUFRc2dDeUFYUncwQkN5QUlRUUEyQWdBTUFRc0NRQUpBSUFwQkFTQUpJQXRCakN4c2FpSVJLQUswS0FSL1FadzBCU0FSTFFDSUxFRUNjVVVOQWdKQUlCRW9BcWdvSWc5RkJFQkJBQ0VNREFFTElCRW9BcXdvSVFsQkFDRU1RUUFoQ3lBUFFRUlBCRUFnRDBGOGNTRUwvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFJVUJCQUNFU0EwQWdDU0FTUVFOMGFpSU1RUnhxSUF4QkZHb2dERUVNYWlBTS9Ra0NCUDFXQWdBQi9WWUNBQUw5VmdJQUF5QkEvYTRCSVVBZ0VrRUVhaUlTSUF0SERRQUxJRUFnUUNCQS9RMElDUW9MREEwT0R3QUJBZ01BQVFJRC9hNEJJa0FnUUNCQS9RMEVCUVlIQUFFQ0F3QUJBZ01BQVFJRC9hNEIvUnNBSVF3Z0N5QVBSZzBCQ3dOQUlBa2dDMEVEZEdvb0FnUWdER29oRENBTFFRRnFJZ3NnRDBjTkFBc0xJQkVnREJBVUlnazJBclFvSUFrTkFVR1hIZ3RCQUJBUElBcEJBVUgxUEVFQUVBOUJBQXdGQ3lBUklBdzJBcndvSUJFb0Fxd29JUWtnRVNnQ3FDZ2lEQVJBUVFBaEVrRUFJUXNEUUNBSklBdEJBM1FpRkdvaURTZ0NBQ0lQQkVBZ0VTZ0N0Q2dnRW1vZ0R5QU5LQUlFRUJJYUlCRW9BcXdvSUJScUlna29BZ1FoTHlBSktBSUFFQkFnRVNnQ3JDZ2lDU0FVYWtJQU53SUFJQzhnRW1vaEVpQVJLQUtvS0NFTUN5QUxRUUZxSWdzZ0RFa05BQXNMSUJGQkFEWUNxQ2dnQ1JBUUlCRkJBRFlDckNnZ0VTQVJLQUswS0RZQ3NDZ2dFU0FSS0FLOEtEWUN1Q2dMQW45QkFDRW9JQUFvQXRBQklnc29BaHdpSmlnQ1RDQUFLQUxNQVNJSlFZd3NiR29vQXRBcklSc2dDeWdDR0NJVUtBSVlJU2NnQ3lnQ0ZDZ0NBQ0llSUNZb0FnUWdKaWdDRENJTElBa2dDU0FtS0FJWUlnbHVJZ3dnQ1d4cmJHb2lEU0FVS0FJQUlna2dDU0FOU1JzaUR6WUNBQ0FlUVg4Z0N5QU5haUlKSUFrZ0RVa2JJZ3NnRkNnQ0NDSUpJQWtnQzBzYklnazJBZ2dDUUNBSklBOUtJQTlCQUU1eFJRUkFJQXBCQVVHQk0wRUFFQThNQVFzZ0hpZ0NGQ0VRSUI0Z0ppZ0NDQ0FNSUNZb0FoQWlDMnhxSWc4Z0ZDZ0NCQ0lKSUFrZ0Qwa2JJZ3cyQWdRZ0hrRi9JQXNnRDJvaUNTQUpJQTlKR3lJTElCUW9BZ3dpQ1NBSklBdExHeUlKTmdJTUlBa2dERW9nREVFQVRuRkZCRUFnQ2tFQlFkc3lRUUFRRHd3QkN3SkFJQnNvQWdRRVFDQWVLQUlRRFFGQkFRd0RDeUFLUVFGQjFTaEJBQkFQREFFTEFrQUNRQU5BSUNkQkFEWUNKQ0FRSUNjMEFnQWlOVUlCZlNJeElCNDBBZ0I4SURWL1BnSUFJQkFnSnpRQ0JDSTBRZ0Y5SWpJZ0hqUUNCSHdnTkg4K0FnUWdFQ0F4SUI0MEFnaDhJRFYvUGdJSUlCNDBBZ3doTVNBUUlDZzJBaEFnRUNBeElESjhJRFIvUGdJTUlCQWdHeWdDQkNJTE5nSVVJQkJCQVNBTElDWW9BbEFpQ1dzZ0NTQUxTeHMyQWhnZ0VDZ0NOQkFRSUJCQkFEWUNSQ0FRL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1FzQ05DQUxRWmdCYkNFTUFrQWdFQ2dDSENJSlJRUkFJQkFnREJBVUlnazJBaHdnQ1VVTkJTQVFJQXcyQWlBZ0NVRUFJQXdRRlJvTUFRc2dEQ0FRS0FJZ1RRMEFJQWtnREJBWElndEZCRUFnQ2tFQlFZQVhRUUFRRHlBUUtBSWNFQkFnRUVJQU53SWNEQVVMSUJBZ0N6WUNIQ0FMSUJBb0FpQWlDV3BCQUNBTUlBbHJFQlVhSUJBZ0REWUNJQXNnRUNnQ0ZDSUxCRUFnRzBHd0Iyb2hIU0FiUWF3R2FpRVlJQnRCSEdvaEZ5QVFLQUljSVJwQkFDRXJBMEFnR2tKL0lBdEJBV3NpQ2EwaU00WkNmNFVpTWlBUU5BSUFmQ0F6aDZjaUZqWUNBQ0FhSURJZ0VEUUNCSHdnTTRlbkloRTJBZ1FnR2lBeUlCQTBBZ2g4SURPSElqR25JaFEyQWdnZ0dpQXlJQkEwQWd4OElET0hJalNuSWcwMkFnd2dNY1JDQVNBWUlDdEJBblFpREdvb0FnQWlINjBpTVlaOFFnRjlJREdIcHlBZmRDSVBRUUJJRFFRZ05NUkNmeUFNSUIxcUtBSUFJaUN0SWpHR1FuK0ZmQ0F4aDZjZ0lIUWlERUVBU0EwRUlCb2dERUYvSUNCMElCRnhJaE5ySUNCMVFRQWdEU0FSUnhzaUREWUNGQ0FhSUE5QmZ5QWZkQ0FXY1NJaWF5QWZkVUVBSUJRZ0ZrY2JJZzgyQWhBQ1FDQVBSUTBBSUErdElBeXRma0lnaUZBTkFBd0VDeUFNSUE5c0lpTkI1OHlaTTA4TkF5QWpRU2hzSVNFZ0dpQXJCSDhnSUVFQmF5RWdJQjlCQVdzaEh5QVRyRUlCZkVJQmlLY2hFeUFpckVJQmZFSUJpS2NoSWtFREJVRUJDellDR0NBYVFSeHFJUlZDQVNBTHJTSTJoaUUzUW44Z0d5Z0NEQ0lMSUNBZ0N5QWdTUnNpTEswaVBJWkNmNFVoUFVKL0lCc29BZ2dpQ3lBZklBc2dIMGtiSWkydElqNkdRbitGSVQ5QkFDRXBBMEFDZmlBclJRUkFJRElnRURRQ0JId2dNNGNoT0NBeUlCQTBBZ0I4SURPSElUbEJBQ0VMSURJaU1TRTZJRE1NQVFzZ055QXBRUUZxSWd0QkFYYXRJRE9HUW4rRmZDSTZJQkEwQWdSOElEYUhJVGdnTnlBTFFRRnhyU0F6aGtKL2hYd2lNU0FRTkFJQWZDQTJoeUU1SURZTElUc2dFRFFDQ0NFMUlCQTBBZ3doTkNBVklEZytBZ1FnRlNBNVBnSUFJQlVnQ3pZQ0VDQVZJRFFnT253Z080YytBZ3dnRlNBeElEVjhJRHVIUGdJSVFRQWhEQUpBSUJzb0FoUkZEUUFnQzBVTkFFRUNRUUVnQzBFRFJoc2hEQXRFQUFBQUFBQUE4RDhoUWdKQUlDY29BaGdnREdvZ0Z5Z0NBQ0lNYXlJTFFZQUlUZ1JBUkFBQUFBQUFBT0IvSVVJZ0MwSC9EMGtFUUNBTFFmOEhheUVMREFJTFJBQUFBQUFBQVBCL0lVSkIvUmNnQ3lBTFFmMFhUeHRCL2c5cklRc01BUXNnQzBHQmVFb05BRVFBQUFBQUFBQmdBeUZDSUF0QnVIQkxCRUFnQzBISkIyb2hDd3dCQzBRQUFBQUFBQUFBQUNGQ1FmQm9JQXNnQzBId2FFMGJRWklQYWlFTEN5QVZJQmNvQWdTM1JBQUFBQUFBQUVBL29rUUFBQUFBQUFEd1A2QWdRaUFMUWY4SGFxMUNOSWEvb3FLMk9BSWdJQlVnRENBYktBS2tCbXBCQVdzMkFod2dGU2dDRkNFTEFrQUNRQUpBSUNORkRRQWdDdzBBSUJVZ0lSQVVJZ3MyQWhRZ0MwVUVRQ0FLUVFGQmxCVkJBQkFQREFvTElBdEJBQ0FoRUJVYUlCVWdJVFlDR0F3QkN5QWhJQlVvQWhoTEJFQWdDeUFoRUJjaURFVUVRQ0FLUVFGQmxCVkJBQkFQSUJVb0FoUVFFQ0FWUWdBM0FoUU1DZ3NnRlNBTU5nSVVJQXdnRlNnQ0dDSUxha0VBSUNFZ0Myc1FGUm9nRlNBaE5nSVlDeUFqUlEwQkN5QVZLQUlVSVF0QkFDRWtBMEFnQ3lBa0lDUWdHaWdDRUNJTWJpSVdJQXhzYXlJTklCOTBJQ0pxSWc4Z0ZTZ0NBQ0lNSUF3Z0QwZ2JJaEUyQWdBZ0N5QVdJQ0IwSUJOcUlnOGdGU2dDQkNJTUlBd2dEMGdiSWhRMkFnUWdDeUFOUVFGcUlCOTBJQ0pxSWc4Z0ZTZ0NDQ0lNSUF3Z0Qwb2JJZzAyQWdnZ0N5QVdRUUZxSUNCMElCTnFJZzhnRlNnQ0RDSU1JQXdnRDBvYklndzJBZ3dnQ3lBL0lBMnNmQ0EraDZjZ0VTQXRkU0lXYXlBdGRDQXRkU0lQTmdJUUlBc2dQU0FNckh3Z1BJZW5JQlFnTEhVaUVXc2dMSFFnTEhVaUREWUNGQ0FNSUE5c0lpV3RRZ2FHUWlDSVFnQlNCRUFnQ2tFQlFlVVZRUUFRRHd3SkN5QWxRUVowSVEwQ1FBSi9Ba0FnQ3lnQ0dDSU1EUUFnSlVVTkFDQUxJQTBRRkNJTU5nSVlJQXhGRFFzZ0RFRUFJQTBRRlJvZ0MwRWNhZ3dCQ3lBTklBc29BaHhORFFFZ0RDQU5FQmNpRDBVRVFDQUxLQUlZRUJBZ0MwSUFOd0lZSUFwQkFVSGpFa0VBRUE4TUN3c2dDeUFQTmdJWUlBOGdDeWdDSENJTWFrRUFJQTBnREdzUUZSb2dDMEVjYWdzZ0RUWUNBQXNnQ3lnQ0ZDRU5JQXNvQWhBaER5QUxBbjhnQ3lnQ0lDSU1SUVJBSUE4Z0RTQUtFR01NQVFzZ0RDQVBJQTBnQ2hCaEN6WUNJQ0FMS0FJVUlRMGdDeWdDRUNFUElBc0NmeUFMS0FJa0lneEZCRUFnRHlBTklBb1FZd3dCQ3lBTUlBOGdEU0FLRUdFTE5nSWtJQ1VFUUVFQUlSSURRQ0FTSUFzb0FoQWlEVzRoSEFKQUlBc29BaGdnRWtFR2RHb2lHU2dDQUNJVUJFQWdHU2dDT0NFUElCa29BZ1FoRENBWktBSXdJU29nR1NnQ1BCQVFJQm45REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5Q3dJb0lCbENBRGNDT0NBWi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0NHQ0FaL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1FzQ0NDQVpJQlEyQWdBZ0dTQXFOZ0l3SUNvRVFDQVVRUUFnS2tFWWJCQVZHZ3NnR1NBUE5nSTRJQmtnRERZQ0JBd0JDeUFaUVFwQkdCQVRJZ3cyQWdBZ0RFVU5DeUFaUVFvMkFqQUxJQmtnRWlBTklCeHNheUFXYWlJVUlDMTBJZzhnQ3lnQ0FDSU1JQXdnRDBnYk5nSUlJQmtnRVNBY2FpSU5JQ3gwSWc4Z0N5Z0NCQ0lNSUF3Z0QwZ2JOZ0lNSUJrZ0ZFRUJhaUF0ZENJUElBc29BZ2dpRENBTUlBOUtHellDRUNBWklBMUJBV29nTEhRaUR5QUxLQUlNSWd3Z0RDQVBTaHMyQWhRZ0VrRUJhaUlTSUNWSERRQUxDeUFMUVNocUlRc2dKRUVCYWlJa0lDTkhEUUFMQ3lBWFFRaHFJUmNnRlVFa2FpRVZJQ2xCQVdvaUtTQWFLQUlZU1EwQUN5QWFRWmdCYWlFYUlBa2hDeUFyUVFGcUlpc2dFQ2dDRkVrTkFBc0xJQ2RCTkdvaEp5QVFRY3dBYWlFUUlCdEJ1QWhxSVJzZ0tFRUJhaUlvSUI0b0FoQkpEUUFMUVFFTUF3c2dDa0VCUVpRV1FRQVFEd3dCQ3lBS1FRRkJzeEZCQUJBUEMwRUFDMFVFUUNBS1FRRkJ3aHRCQUJBUFFRQU1CQXNnQUNnQ3pBRWhDU0FPSUFBb0FtZ2dBQ2dDYkd3MkFnUWdEaUFKUVFGcU5nSUFJQXBCQkVHKzF3QWdEaEFQSUFFZ0FDZ0N6QUUyQWdBZ0NFRUJOZ0lBSUFJRVFDQUNJQUFvQXRBQlFRQVFWQ0lCTmdJQVFRQWdBVUYvUmcwRUdnc2dBeUFBS0FMUUFTZ0NGQ2dDQUNJQktBSUFOZ0lBSUFRZ0FTZ0NCRFlDQUNBRklBRW9BZ2cyQWdBZ0JpQUJLQUlNTmdJQUlBY2dBU2dDRURZQ0FDQUFJQUFvQWdoQmdBRnlOZ0lJQzBFQkRBSUxJQXBCQVNBU1FRQVFEd3NnQ2tFQlFlUWJRUUFRRDBFQUN5RXdJQTVCMEFCcUpBQWdNQXZlRUFJTmZ3SitBa0FnQUNnQ0lDSUZEUUFDUUNBQUtBSVFJZ2xCQlVvRVFDQUpJUU1NQVFzQ1FBSkFJQUFvQWhRaUFrRUZUZ1JBSUFBb0FnQWlBU2dDQUNFRklBQWdBVUVFYWpZQ0FDQUNRUVJySVFjTUFRc2dBa0VBVEFSQVFYOGhCUXdDQ3lBQUtBSUFJUUVDZnlBQ1FRRkdCRUJCZnlFR1FRQU1BUXRCZnlFR0lBSkJBV3NpQTBFQmNTRU5Ba0FnQWtFQ1JnUkFRUUFoQlNBQ0lRUU1BUXNnQTBGK2NTRUxRUUFoQlNBQklRTWdBaUVFQTBBZ0FDQURRUUZxTmdJQUlBTXRBQUFoRENBQUlBTkJBbW9pQVRZQ0FDQUFJQVJCQVdzMkFoUWdBeTBBQVNFRElBQWdCRUVDYXlJRU5nSVVJQVpCL3dFZ0JYUkJmM054SUF3Z0JYUnlRWUQrQXlBRmRFRi9jM0VnQXlBRlFRaHlkSEloQmlBRlFSQnFJUVVnQVNFRElBaEJBbW9pQ0NBTFJ3MEFDd3NnRFFSQUlBQWdBVUVCYWlJRE5nSUFJQUV0QUFBaEFTQUFJQVJCQVdzMkFoUWdCa0gvQVNBRmRFRi9jM0VnQVNBRmRISWhCaUFESVFFTElBSkJBM1JCQ0dzTElRVWdBQ0FCUVFGcU5nSUFJQVpCL3dFZ0JYUkJmM054SUFFdEFBQkJEM0lnQlhSeUlRVUxJQUFnQnpZQ0ZBc2dBQ2dDR0NFQklBQWdCVUVZZGlJSFFmOEJSallDR0NBQUlBa2dCVUVRZGtIL0FYRWlDRUgvQVVZaUNpQUZRUWgyUWY4QmNTSUxRZjhCUmlJTUlBRWdCVUgvQVhFaUJFSC9BVVlpQW1wcWFpSUJhMEVnYWlJRE5nSVFJQUFnQUNrRENDQUVRUWRCQ0NBQ0czUWdDM0pCQjBFSUlBd2JkQ0FJY2tFSFFRZ2dDaHQwSUFkeXJTQUJJQWxyUVNCcXJZYUVOd01JUVFBaEJTQURRUVpJRFFFTElBQW9BaHdpQVVFQ2RFR2duUUZxS0FJQUlRSUNmaUFBS1FNSUlnNUNBRk1FUUVFTUlBRkJBV29nQVVFTFRoc2hCQ0FEUVFGcklRTkJmeUFDZEVGL2MwRUJkQ0VCUWdFTUFRc2dBVUVCYTBFQUlBRkJBVW9iSVFRZ0RrRS9JQUpycllpblFYOGdBblJCZjNOeFFRRjBRUUZ5SVFFZ0F5QUNRUUZxSWdKcklRTWdBcTBMSVE4Z0FDQUROZ0lRSUFBZ0JEWUNIQ0FBSUE0Z0Q0WTNBd2dnQUNBQnJDQUFLUU1vUWtDRGhEY0RLRUVCSVFVZ0EwRUdTQTBBSUFBb0Fod2lBVUVDZEVHZ25RRnFLQUlBSVFJQ2ZpQUFLUU1JSWc1Q0FGTUVRRUVNSUFGQkFXb2dBVUVMVGhzaEJDQURRUUZySVFOQmZ5QUNkRUYvYzBFQmRDRUJRZ0VNQVFzZ0FVRUJhMEVBSUFGQkFVb2JJUVFnRGtFL0lBSnJyWWluUVg4Z0FuUkJmM054UVFGMFFRRnlJUUVnQXlBQ1FRRnFJZ0pySVFNZ0FxMExJUThnQUNBRE5nSVFJQUFnQkRZQ0hDQUFJQTRnRDRZM0F3Z2dBQ0FBS1FNb1F2OUFneUFCckVJSGhvUTNBeWhCQWlFRklBTkJCa2dOQUNBQUtBSWNJZ0ZCQW5SQm9KMEJhaWdDQUNFQ0FuNGdBQ2tEQ0NJT1FnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBMEVCYXlFRFFYOGdBblJCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUE1QlB5QUNhNjJJcDBGL0lBSjBRWDl6Y1VFQmRFRUJjaUVCSUFNZ0FrRUJhaUlDYXlFRElBS3RDeUVQSUFBZ0F6WUNFQ0FBSUFRMkFod2dBQ0FPSUErR053TUlJQUFnQUNrREtFTC8vMENESUFHc1FnNkdoRGNES0VFRElRVWdBMEVHU0EwQUlBQW9BaHdpQVVFQ2RFR2duUUZxS0FJQUlRSUNmaUFBS1FNSUlnNUNBRk1FUUVFTUlBRkJBV29nQVVFTFRoc2hCQ0FEUVFGcklRTkJmeUFDZEVGL2MwRUJkQ0VCUWdFTUFRc2dBVUVCYTBFQUlBRkJBVW9iSVFRZ0RrRS9JQUpycllpblFYOGdBblJCZjNOeFFRRjBRUUZ5SVFFZ0F5QUNRUUZxSWdKcklRTWdBcTBMSVE4Z0FDQUROZ0lRSUFBZ0JEWUNIQ0FBSUE0Z0Q0WTNBd2dnQUNBQUtRTW9Rdi8vLzBDRElBR3NRaFdHaERjREtFRUVJUVVnQTBFR1NBMEFJQUFvQWh3aUFVRUNkRUdnblFGcUtBSUFJUUlDZmlBQUtRTUlJZzVDQUZNRVFFRU1JQUZCQVdvZ0FVRUxUaHNoQkNBRFFRRnJJUU5CZnlBQ2RFRi9jMEVCZENFQlFnRU1BUXNnQVVFQmEwRUFJQUZCQVVvYklRUWdEa0UvSUFKcnJZaW5RWDhnQW5SQmYzTnhRUUYwUVFGeUlRRWdBeUFDUVFGcUlnSnJJUU1nQXEwTElROGdBQ0FETmdJUUlBQWdCRFlDSENBQUlBNGdENFkzQXdnZ0FDQUFLUU1vUXYvLy8vOUFneUFCckVJY2hvUTNBeWhCQlNFRklBTkJCa2dOQUNBQUtBSWNJZ0ZCQW5SQm9KMEJhaWdDQUNFQ0FuNGdBQ2tEQ0NJT1FnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBMEVCYXlFRFFYOGdBblJCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUE1QlB5QUNhNjJJcDBGL0lBSjBRWDl6Y1VFQmRFRUJjaUVCSUFNZ0FrRUJhaUlDYXlFRElBS3RDeUVQSUFBZ0F6WUNFQ0FBSUFRMkFod2dBQ0FPSUErR053TUlJQUFnQUNrREtFTC8vLy8vLzBDRElBR3RRaU9HaERjREtFRUdJUVVnQTBFR1NBMEFJQUFvQWh3aUFVRUNkRUdnblFGcUtBSUFJUUlDZmlBQUtRTUlJZzVDQUZNRVFFRU1JQUZCQVdvZ0FVRUxUaHNoQkNBRFFRRnJJUU5CZnlBQ2RFRi9jMEVCZENFQlFnRU1BUXNnQVVFQmEwRUFJQUZCQVVvYklRUWdEa0UvSUFKcnJZaW5RWDhnQW5SQmYzTnhRUUYwUVFGeUlRRWdBeUFDUVFGcUlnSnJJUU1nQXEwTElROGdBQ0FETmdJUUlBQWdCRFlDSENBQUlBNGdENFkzQXdnZ0FDQUFLUU1vUXYvLy8vLy8vMENESUFHdFFpcUdoRGNES0VFSElRVWdBMEVHU0EwQUlBQW9BaHdpQVVFQ2RFR2duUUZxS0FJQUlRSUNmaUFBS1FNSUlnNUNBRk1FUUVFTUlBRkJBV29nQVVFTFRoc2hCQ0FEUVFGcklRTkJmeUFDZEVGL2MwRUJkQ0VCUWdFTUFRc2dBVUVCYTBFQUlBRkJBVW9iSVFRZ0RrRS9JQUpycllpblFYOGdBblJCZjNOeFFRRjBRUUZ5SVFFZ0F5QUNRUUZxSWdKcklRTWdBcTBMSVE4Z0FDQUROZ0lRSUFBZ0JEWUNIQ0FBSUE0Z0Q0WTNBd2dnQUNBQUtRTW9Rdi8vLy8vLy8vOUFneUFCclVJeGhvUTNBeWhCQ0NFRkN5QUFJQVZCQVdzMkFpQWdBQ0FBS1FNb0lnNUNCNGczQXlnZ0RxZEIvd0J4Q3lJQkFYOGdBQVJBSUFBb0Fnd2lBUVJBSUFFUUVDQUFRUUEyQWd3TElBQVFFQXNMaWdFQ0FYNEZmd0pBSUFCQ2dJQ0FnQkJVQkVBZ0FDRUNEQUVMQTBBZ0FVRUJheUlCSUFCQ0NvQWlBa0wyQVg0Z0FIeW5RVEJ5T2dBQUlBQkMvLy8vLzU4QlZpRUdJQUloQUNBR0RRQUxDeUFDUWdCU0JFQWdBcWNoQXdOQUlBRkJBV3NpQVNBRFFRcHVJZ1JCOWdGc0lBTnFRVEJ5T2dBQUlBTkJDVXNoQnlBRUlRTWdCdzBBQ3dzZ0FRdjU0Z0VFZW44R2V3aCtBWDBqQUVFUWF5Sk9KQUFDUUNBQUxRQUlRWUFCY1VVTkFDQUFLQUxNQVNBQlJ3MEFJQUFvQXB3QklBRkJqQ3hzYWlKUEtBTGNLeUlWUlFSQUlFOFFMZ3dCQ3lBQUtBTElBUm9nQUNnQzBBRWhHU0FBS0FKTUlnZEZCRUFnQUNnQ1NDRUhDeUFIS0FJQUlRWWdCeWdDQkNFTElBY29BZ2doQ1NBSEtBSU1JUTBnQUNnQ1BDRUhJQUFvQWtBaENDQlBLQUxnS3lFS0l3QkJFR3NpUUNRQUlCa2dBVFlDSkNBWktBSWNLQUpNSVF3Z0dVRUJOZ0pBSUJrZ0RUWUNQQ0FaSUFrMkFqZ2dHU0FMTmdJMElCa2dCallDTUNBWklBd2dBVUdNTEd4cU5nSWdJQmtvQWtRUUVFRUFJUXNnR1VFQU5nSkVBa0FnQndSQVFRUWdHU2dDR0NnQ0VCQVRJZ3RGQkVBTUFndEJBQ0VOUVFBaENTQUhRUVJQQkVBZ0IwRjhjU0VNUVFBaEFRTkFJQXNnQ0NBSlFRSjBhaUlHS0FJQVFRSjBha0VCTmdJQUlBc2dCaWdDQkVFQ2RHcEJBVFlDQUNBTElBWW9BZ2hCQW5ScVFRRTJBZ0FnQ3lBR0tBSU1RUUowYWtFQk5nSUFJQWxCQkdvaENTQUJRUVJxSWdFZ0RFY05BQXNMSUFkQkEzRWlBUVJBQTBBZ0N5QUlJQWxCQW5ScUtBSUFRUUowYWtFQk5nSUFJQWxCQVdvaENTQU5RUUZxSWcwZ0FVY05BQXNMSUJrZ0N6WUNSQXNDUUFKQUlCa29BaGdpQmlnQ0VDSU5SUTBBUVFBaENRSkFBMEFDUUNBTEJFQWdDeUFKUVFKMGFpZ0NBRVVOQVFzZ0JpZ0NHQ0FKUVRSc2FpSUJOUUlFSW9ZQlFnRjlJb29CSUJrMUFqeDhJSVlCZ0NHTEFTQUJOUUlBSW9jQlFnRjlJb2dCSUJrMUFqaDhJSWNCZ0NHTUFTQ0tBU0FaTlFJMGZDQ0dBWUFoaGdFZ0dTZ0NGQ2dDQUNnQ0ZDQUpRY3dBYkdvaUFTZ0NGQ0FCS0FJWWF5SUhRUjlMRFFBQ1FDQ0lBU0FaTlFJd2ZDQ0hBWUNuSWdnZ0FTZ0NBR3NpREVFQUlBZ2dERThiSUFkMkRRQWdoZ0duSWdnZ0FTZ0NCR3NpREVFQUlBZ2dERThiSUFkMkRRQWdBU2dDQ0NJSUlJd0JwMnNpREVFQUlBZ2dERThiSUFkMkRRQWdBU2dDRENJQklJc0JwMnNpQ0VFQUlBRWdDRThiSUFkMlJRMEJDeUFaUVFBMkFrQU1BZ3NnQ1VFQmFpSUpJQTFIRFFBTElCa29Ba0JGRFFBZ0RVVU5BVUVBSVEwRFFDQVpLQUlVS0FJQUtBSVVJQTFCekFCc2FpSUJLQUljSUFFb0FoaEJtQUZzYWlJSFFaUUJheWdDQUNFR0lBZEJqQUZyS0FJQUlRc2dCMEdZQVdzb0FnQWhDU0FIUVpBQmF5Z0NBQ0VJQWtBZ0dTZ0NSQ0lIQkVBZ0J5QU5RUUowYWlnQ0FFVU5BUXNnQ3lBR2F5RUhJQWdnQ1dzaENRSkFJQVlnQzBZTkFDQUhyU0FKclg1Q0lJaFFEUUFnQlVFQlFaUVdRUUFRRHd3R0N5QUhJQWxzSWdkQmdJQ0FnQVJQQkVBZ0JVRUJRWlFXUVFBUUR3d0dDeUFCSUFkQkFuUWlCellDTEFKL0FrQUNRQUpBSUFFb0FpUWlCZ1JBSUFjZ0FTZ0NNRTBOQlNBQktBSW9EUUVMSUFFZ0J4QVlJZ2MyQWlRZ0IwRUJJQUVvQWl3aUJ4dEZEUUVnQVNBSE5nSXdJQUZCS0dvTUF3c2dCaEFRSUFFZ0FTZ0NMQkFZSWdjMkFpUWdCdzBCSUFGQkFEWUNNQ0FCUWdBM0FpZ0xJQVZCQVVHVUZrRUFFQThNQndzZ0FTQUJLQUlzTmdJd0lBRkJLR29MUVFFMkFnQUxJQTFCQVdvaURTQVpLQUlZSWdZb0FoQkpEUUFMREFFTElBMUZEUUFnQmlnQ0dDRVBJQmtvQWhRb0FnQW9BaFFoRmtFQUlRRURRQUpBSUFzRVFDQUxJQUZCQW5ScUtBSUFSUTBCQ3lBV0lBRkJ6QUJzYWlJSElBY29BZ0FpQ1NBUElBRkJOR3hxSWdnMUFnQWloZ0ZDQVgwaWlnRWdHVFVDTUh3Z2hnR0FweUlNSUFrZ0RFc2JJZ2syQWpnZ0J5QUhLQUlFSWd3Z0NEVUNCQ0tIQVVJQmZTS0xBU0FaTlFJMGZDQ0hBWUNuSWdnZ0NDQU1TUnNpQ0RZQ1BDQUhJQWNvQWdnaURDQ0tBU0FaTlFJNGZDQ0dBWUNuSWhjZ0RDQVhTUnNpRERZQ1FDQUhJQWNvQWd3aUZ5Q0xBU0FaTlFJOGZDQ0hBWUNuSWc0Z0RpQVhTeHNpRnpZQ1JDQUpJQXhMRFFNZ0NDQVhTdzBESUFjb0FoUWlEa1VOQUNBT3JTR0xBU0FYclNHSUFTQU1yU0dNQVNBSXJTR05BU0FKclNHSkFTQUhLQUljSVFsQ0FDR0hBUU5BSUFrZ2h3R25JZ2hCbUFGc2FpSUhRbjhnRGlBSVFYOXphcTBpaGdHR1FuK0ZJb29CSUlnQmZDQ0dBWWcrQXBRQklBY2dpZ0VnakFGOElJWUJpRDRDa0FFZ0J5Q0tBU0NOQVh3Z2hnR0lQZ0tNQVNBSElJa0JJSW9CZkNDR0FZZytBb2dCSUljQlFnRjhJb2NCSUlzQlVnMEFDd3NnQVVFQmFpSUJJQTFIRFFBTEN5QkFRUUEyQWdnZ0dTZ0NIQ0VCUVFGQkNCQVRJaHNFUUNBYklBRTJBZ1FnR3lBR05nSUFDeUFiUlEwQklCa29BaVFoRVNBWktBSVVLQUlBSVNBakFFSHdBR3NpRXlRQUlCRkJqQ3hzSWdFZ0d5Z0NCQ0lJS0FKTWFpSWNLQUtrQXlFb0FuOGdHeWdDQUNJZUlSY2dCU0V6UVFBaERTTUFRU0JySWc4a0FDQUJJQWdvQWt4cUloMG9BcVFESVJnQ1FDQVhLQUlRSWhaQmtBUnNFQlFpREVVTkFBSkFJQlpCQW5RUUZDSUxSUVJBSUF3aEN3d0JDd0ovSUFnb0Frd2dFVUdNTEd4cUlna29BcVFESWhwQkFXb2lBVUh3QVJBVElnY0VRQUpBSUFFRVFDQVhLQUlRSVE0Z0J5RUJBMEFnQVNBek5nTHNBU0FCSUE1QkVCQVRJZ1kyQXNnQklBWkZEUUlnQVNBWEtBSVFJaDgyQXNRQlFRQWhCa0VBSVE0Z0h3UkFBMEFnQVNnQ3lBRWdCa0VFZEdvaURpQUpLQUxRS3lBR1FiZ0liR29pSHlnQ0JFRVFFQk1pSVRZQ0RDQWhSUTBFSUE0Z0h5Z0NCRFlDQ0NBR1FRRnFJZ1lnRnlnQ0VDSU9TUTBBQ3dzZ0FVSHdBV29oQVNBU0lCcEdJWE1nRWtFQmFpRVNJSE5GRFFBTEN5QUhEQUlMSUFjb0FnUWlBUVJBSUFFUUVDQUhRUUEyQWdRTElBY2hBVUVBSVFrRFFDQUJLQUxJQVNJR0JFQkJBQ0VPSUFFb0FzUUJJaElFZndOQUlBWW9BZ3dpSHdSQUlCOFFFQ0FHUVFBMkFnd2dBU2dDeEFFaEVnc2dCa0VRYWlFR0lBNUJBV29pRGlBU1NRMEFDeUFCS0FMSUFRVWdCZ3NRRUNBQlFRQTJBc2dCQ3lBQlFmQUJhaUVCSUFrZ0drWWhkQ0FKUVFGcUlRa2dkRVVOQUFzZ0J4QVFDMEVBQ3lJSEJFQUNRQ0FXUlEwQVFRQWhDU0FNSVFZZ0ZrRUVUd1JBSUFZZ0ZrRjhjU0lKUVpBRWJHb2hCaUFNSVFFRFFDQUxJQkJCQW5ScUlBSDlFZjBNQUFBQUFCQUNBQUFnQkFBQU1BWUFBUDJ1QWYwTEFnQWdBVUhBRUdvaEFTQVFRUVJxSWhBZ0NVY05BQXNnQ1NBV1JnMEJDd05BSUFzZ0NVRUNkR29nQmpZQ0FDQUdRWkFFYWlFR0lBbEJBV29pQ1NBV1J3MEFDd3NnQ3lFT1FRQWhFaUFJS0FKTUlCRkJqQ3hzYWlnQzBDc2hBU0FYS0FJWUlRa2dEeUFJS0FJRUlBZ29BZ3dnRVNBUklBZ29BaGdpQm00aUN5QUdiR3RzYWlJR0lCY29BZ0FpRUNBR0lCQkxHellDRkNBUFFYOGdCaUFJS0FJTWFpSVFJQVlnRUVzYklnWWdGeWdDQ0NJUUlBWWdFRWtiTmdJUUlBOGdDQ2dDQ0NBSUtBSVFJQXRzYWlJR0lCY29BZ1FpQ3lBR0lBdExHellDRENBUFFYOGdCaUFJS0FJUWFpSUxJQVlnQzBzYklnWWdGeWdDRENJTElBWWdDMGtiTmdJSUlBOUJBRFlDR0NBUFFRQTJBaHdnRDBILy8vLy9CellDQkNBUFFmLy8vLzhITmdJQUlCY29BaEFFUUFOQUlBNEVmeUFPSUJKQkFuUnFLQUlBQlVFQUN5RUxJQWsxQWdRaWhnRkNBWDBpaWdFZ0R6VUNDSHdnaGdHQUlZc0JJQWsxQWdBaWh3RkNBWDBpaUFFZ0R6VUNFSHdnaHdHQUlZd0JJSW9CSUE4MUFneDhJSVlCZ0NHR0FTQ0lBU0FQTlFJVWZDQ0hBWUFoaHdFZ0FTZ0NCQ0lJSUE4b0FoeExCRUFnRHlBSU5nSWNJQUVvQWdRaENBc2dDQVJBSUlzQlF2Ly8vLzhQZ3lHS0FTQ01BVUwvLy8vL0Q0TWhpd0VnaGdGQy8vLy8vdytESVlnQklJY0JRdi8vLy84UGd5R01BU0FCUWJBSGFpRWZJQUZCckFacUlTRkJBQ0VhQTBBZ0h5QWFRUUowSWhCcUtBSUFJUVlnRUNBaGFpZ0NBQ0VSUVFBaEVDQUxCRUFnQ3lBR05nSUVJQXNnRVRZQ0FDQUxRUWhxSVJBTEFrQWdFU0FJUVFGcklnaHFJZ3RCSDBzTkFDQUpLQUlBSWlKQmZ5QUxka3NOQUNBUElBOG9BZ1FpSnlBaUlBdDBJZ3NnQ3lBblN4czJBZ1FMQWtBZ0JpQUlhaUlMUVI5TERRQWdDU2dDQkNJaVFYOGdDM1pMRFFBZ0R5QVBLQUlBSWljZ0lpQUxkQ0lMSUFzZ0owc2JOZ0lBQzBFQUlRc2dpZ0ZDZnlBSXJTS0dBWVpDZjRVaWh3RjhJSVlCaUNLTkFVTC8vLy8vRDROQ0FTQUdyU0tKQVlaOFFnRjlJSWtCaUtjZ2h3RWdpQUY4SUlZQmlLY2lJaUFHZG10QmZ5QUdkbkZCQUNBaUlJMEJwMGNiSVFZZ2h3RWdpd0Y4SUlZQmlDS05BVUwvLy8vL0Q0TkNBU0FSclNLSkFZWjhRZ0Y5SUlrQmlLY2dod0VnakFGOElJWUJpS2NpSWlBUmRtdEJmeUFSZG5GQkFDQWlJSTBCcDBjYklSRWdFQVJBSUJBZ0JqWUNCQ0FRSUJFMkFnQWdFRUVJYWlFTEN5QUdJQkZzSWdZZ0R5Z0NHRXNFUUNBUElBWTJBaGdMSUJwQkFXb2lHaUFCS0FJRVNRMEFDd3NnQ1VFMGFpRUpJQUZCdUFocUlRRWdFa0VCYWlJU0lCY29BaEJKRFFBTEN5QVlRUUZxSVNFZ0R5Z0NIQ0VSSUE4b0FoZ2hFaUFIUVFBMkFnUUNRQ0FkS0FJSVFRRnFJZ0d0SUJFZ0VpQVdiQ0lpYkNJYXJYNUNJSWhRQkVBZ0J5QUJJQnBzSWdFMkFnZ2dCeUFCUVFJUUV5SUJOZ0lFSUFFTkFRc2dEQkFRSUE0UUVDQUhLQUlFSWdFRVFDQUJFQkFnQjBFQU5nSUVDeUFoUlFSQUlBY2hDd3dEQzBFQUlRc2dCeUVCQTBBZ0FTZ0N5QUVpQ1FSQVFRQWhCaUFCS0FMRUFTSVFCSDhEUUNBSktBSU1JZ2dFUUNBSUVCQWdDVUVBTmdJTUlBRW9Bc1FCSVJBTElBbEJFR29oQ1NBR1FRRnFJZ1lnRUVrTkFBc2dBU2dDeUFFRklBa0xFQkFnQVVFQU5nTElBUXNnQVVId0FXb2hBU0FMSUJoR0lYVWdDMEVCYWlFTElIVkZEUUFMSUFjaEN3d0NDeUFYS0FJWUlSY2dCeUFQS0FJVUlpYzJBc3dCSUFjZ0R5Z0NEQ0l3TmdMUUFTQUhJQThvQWhBaUxUWUMxQUVnQnlBUEtBSUlJaXMyQXRnQklBY2dHallDRENBSElDSTJBaEFnQnlBU05nSVVRUUVoSHlBSFFRRTJBaGdnRmdSQUlBY29Bc2dCSVFGQkFDRUlJQmNoQ3dOQUlBNGdDRUVDZEdvb0FnQWhDU0FCSUFzb0FnQTJBZ0FnQVNBTEtBSUVOZ0lFQWtBZ0FTZ0NDQ0lOUlEwQUlBRW9BZ3doQmlBTlFRRkhCRUFnRFVGK2NTRXZRUUFoRUFOQUlBWWdDU2dDQURZQ0FDQUdJQWtvQWdRMkFnUWdCaUFKS0FJSU5nSUlJQVlnQ1NnQ0REWUNEQ0FHSUFrb0FoQTJBaEFnQmlBSktBSVVOZ0lVSUFZZ0NTZ0NHRFlDR0NBR0lBa29BaHcyQWh3Z0JrRWdhaUVHSUFsQklHb2hDU0FRUVFKcUloQWdMMGNOQUFzTElBMUJBWEZGRFFBZ0JpQUpLQUlBTmdJQUlBWWdDU2dDQkRZQ0JDQUdJQWtvQWdnMkFnZ2dCaUFKS0FJTU5nSU1DeUFMUVRScUlRc2dBVUVRYWlFQklBaEJBV29pQ0NBV1J3MEFDd3NnSVVFQlN3UkFJQWNoRFFOQUlBMGdLellDeUFNZ0RTQXROZ0xFQXlBTklEQTJBc0FESUEwZ0p6WUN2QU1nRFVFQk5nS0lBaUFOSUJJMkFvUUNJQTBnSWpZQ2dBSWdEU0FhTmdMOEFTQVdCRUFnRFNnQ3VBTWhBVUVBSVFnZ0Z5RUxBMEFnRGlBSVFRSjBhaWdDQUNFSklBRWdDeWdDQURZQ0FDQUJJQXNvQWdRMkFnUUNRQ0FCS0FJSUlpRkZEUUFnQVNnQ0RDRUdJQ0ZCQVVjRVFDQWhRWDV4SVM5QkFDRVFBMEFnQmlBSktBSUFOZ0lBSUFZZ0NTZ0NCRFlDQkNBR0lBa29BZ2cyQWdnZ0JpQUpLQUlNTmdJTUlBWWdDU2dDRURZQ0VDQUdJQWtvQWhRMkFoUWdCaUFKS0FJWU5nSVlJQVlnQ1NnQ0hEWUNIQ0FHUVNCcUlRWWdDVUVnYWlFSklCQkJBbW9pRUNBdlJ3MEFDd3NnSVVFQmNVVU5BQ0FHSUFrb0FnQTJBZ0FnQmlBSktBSUVOZ0lFSUFZZ0NTZ0NDRFlDQ0NBR0lBa29BZ3cyQWd3TElBdEJOR29oQ3lBQlFSQnFJUUVnQ0VFQmFpSUlJQlpIRFFBTEN5QU5JQTBwQWdRM0F2UUJJQmdnSDBjaGRpQU5RZkFCYWlFTklCOUJBV29oSHlCMkRRQUxDeUFNRUJBZ0RoQVFJQjBvQXFRRElRc0NRQ0FkTFFDSUxFRUVjUVJBSUF0QmYwWU5BU0FkUWFnRGFpRUdJQjBvQWdnaEFVRUFJUkFnQnlFSkEwQWdCaWdDSkNFTklBbEJBVFlDTENBSklBMDJBbFFnQ1NBR0tBSUFOZ0l3SUFZb0FnUWhEU0FKUWdBM0FrUWdDU0FOTmdJMElBa2dCaWdDRERZQ1BDQUpJQVlvQWhBMkFrQWdCaWdDQ0NFTklBa2dFallDVENBSklBMGdBU0FCSUExTEd6WUNPQ0FHUVpRQmFpRUdJQWxCOEFGcUlRa2dDeUFRUmlGM0lCQkJBV29oRUNCM1JRMEFDd3dCQ3lBTFFYOUdEUUFnSFNnQ0NDRUdJQjBvQWdRaERTQUhJUWtnQ3dSQUlBdEJBV3BCZm5FaENFRUFJUUVEUUNBSlFnQTNBa1FnQ1VFQU5nSTBJQWxDQVRjQ0xDQUpJQTAyQWxRZ0NTQVJOZ0k4SUFrZ0RUWUN4QUlnQ1NBU05nSk1JQWtnQmpZQ09DQUpRZ0EzQXJRQ0lBbEJBRFlDcEFJZ0NVSUJOd0tjQWlBSklCRTJBcXdDSUFrZ0JqWUNxQUlnQ1NBU05nSzhBaUFKSUFrb0FzUUJOZ0pBSUFrZ0NTZ0N0QU0yQXJBQ0lBbEI0QU5xSVFrZ0FVRUNhaUlCSUFoSERRQUxDeUFMUVFGeERRQWdDVUlBTndKRUlBbEJBRFlDTkNBSlFnRTNBaXdnQ1NBTk5nSlVJQWtnRVRZQ1BDQUpJQkkyQWt3Z0NTQUdOZ0k0SUFrZ0NTZ0N4QUUyQWtBTElBY2hEUXdDQ3lBTUVCQUxJQXNRRUFzZ0QwRWdhaVFBUVFBZ0RTSUhSUTBBR2lBb1FRRnFJUTRnRlNFZElBY2hDd0pBQWtBRFFDQUxLQUpVUVg5R0RRSWdIaWdDRUVFQ2RCQVVJZ0ZGRFFJZ0FVRUJJQjRvQWhCQkFuUVFGU0VKSUFzUVZ3UkFBMEFnSUNnQ0ZDRUlBa0FDUUNBTEtBSW9JQndvQWd4UERRQWdDeWdDSUNJQklBZ2dDeWdDSEVITUFHeHFJZ1lvQWhoUERRQWdCaWdDSENBQlFaZ0JiR29pRFNnQ0dFVU5BQ0FOUVJ4cUlRaEJBQ0VCQWtBRFFDQVpJQXNvQWh3Z0N5Z0NJQ0FJSUFGQkpHeHFJZ1lvQWhBZ0JpZ0NGQ0FMS0FJa1FTaHNhaUlHS0FJQUlBWW9BZ1FnQmlnQ0NDQUdLQUlNRURsRkJFQWdBVUVCYWlJQklBMG9BaGhKRFFFTUFnc0xJQWtnQ3lnQ0hFRUNkR3BCQURZQ0FDQVRRUUEyQW1nZ0d5Z0NCQ0FnS0FJVUlCd2dDeUFUUWV3QWFpQWRJQk5CNkFCcUlBb2dNeEJXUlEwR0lBc29BaUFoQ0NBTEtBSWNJUllnRXlnQ2FDRWFJQk1vQW13RVFDQVRRUUEyQW1nZ0lDZ0NGQ0FXUWN3QWJHb29BaHdnQ0VHWUFXeHFJaDhvQWhnaUFRUi9JQW9nR21zaEdDQUtJQjFxSVNFZ0gwRWNhaUVNUVFBaEVVRUFJUThnR2lBZGFpSWlJUklEUUFKQUlBd29BZ2dnRENnQ0FFWU5BQ0FNS0FJTUlBd29BZ1JHRFFBZ0RDZ0NGQ0FMS0FJa1FTaHNhaUlHS0FJVUlBWW9BaEJzSWloRkRRQWdCaWdDR0NFQlFRQWhGZ05BSUE4RVFDQUJRUUEyQWpRTElBRW9BaVFpRndSQUlBRW9BZ0FoQ0FKQUlBRWdBU2dDS0NJR0JIOGdDQ0FHUVJoc2FpSUlRUlJyS0FJQUlBaEJER3NvQWdCSEJFQWdDRUVZYXlFSURBSUxJQVpCQVdvRlFRRUxOZ0lvQ3dKQUEwQUNRQUpBQWtBZ0NDZ0NGQ0lOSUJKQmYzTkxEUUFnRHcwQUlBMGdFbW9nSVUwTkFRc2dDeWdDSENFR0lBc29BaUFoRnlBTEtBSWtJUThnR3lnQ0JDZ0NhQVJBSUJNZ0JqWUNXQ0FUSUJjMkFsUWdFeUFSTmdKUUlCTWdEellDVENBVElCWTJBa2dnRXlBWU5nSkVJQk1nRFRZQ1FDQXpRUUZCOHUwQUlCTkJRR3NRRHd3UkN5QVRJQVkyQWpnZ0V5QVhOZ0kwSUJNZ0VUWUNNQ0FUSUE4MkFpd2dFeUFXTmdJb0lCTWdHRFlDSkNBVElBMDJBaUFnTTBFQ1FmTHRBQ0FUUVNCcUVBOGdBVUVBTmdJMElBZ2dDQ2dDRUNJR0lBZ29BZ1JxTmdJRUlBRWdBU2dDSkNJTklBWnJJaGMyQWlSQkFTRVBJQVlnRFVZTkFTQUJJQUVvQWloQkFXb2lDRFlDS0F3REN5QUJLQUlFSVJBZ0FTZ0NOQ0lQSUFFb0FqaEhCSDhnRndVZ0VDQVBRUUYwUVFGeUlnWkJBM1FRRnlJUVJRUkFJRE5CQVVHQUNFRUFFQThNRVFzZ0FTQUdOZ0k0SUFFZ0VEWUNCQ0FCS0FJMElROGdDQ2dDRkNFTklBRW9BaVFMSVFZZ0VDQVBRUU4wYWlJWElBMDJBZ1FnRnlBU05nSUFJQUVnRDBFQmFqWUNOQ0FJSUFnb0FnQWdEV28yQWdBZ0NDQUlLQUlRSWhBZ0NDZ0NCR29pRHpZQ0JDQUJJQVlnRUdzaUZ6WUNKQ0FJSUE4MkFnZ2dEU0FTYWlFU1FRQWhEeUFHSUJCR0RRQWdBU0FCS0FJb1FRRnFOZ0lvSUFoQkdHb2hDQXNnRncwQUN5QUJLQUlvSVFnTElBRWdDRFlDTEFzZ0FVRkFheUVCSUJaQkFXb2lGaUFvUncwQUN5QWZLQUlZSVFFTElBeEJKR29oRENBUlFRRnFJaEVnQVVrTkFBc2dDeWdDSENFV0lBc29BaUFoQ0NBWUlCSWdJbXNnRHhzRlFRQUxJQnBxSVJvTElCNG9BaGdnRmtFMGJHb2lBU0FJSUFFb0FpUWlBU0FCSUFoSkd6WUNKQXdDQ3lBZ0tBSVVJUWdMSUJOQkFEWUNhQ0FiS0FJRUlBZ2dIQ0FMSUJOQjdBQnFJQjBnRTBIb0FHb2dDaUF6RUZaRkRRUWdDeWdDSENFV0lCTW9BbWdoR2lBVEtBSnNSUTBBQWtBZ0lDZ0NGQ0FXUWN3QWJHb29BaHdnQ3lnQ0lDSWlRWmdCYkdvaUFTZ0NHQ0lvUlFSQVFRQWhGd3dCQ3lBS0lCcHJJUkFnQVVFY2FpRU1JQXNvQWlRaElVRUFJUmRCQUNFWUEwQUNRQ0FNS0FJSUlBd29BZ0JHRFFBZ0RDZ0NEQ0FNS0FJRVJnMEFJQXdvQWhRZ0lVRW9iR29pQVNnQ0ZDQUJLQUlRYkNJblJRMEFJQUVvQWhnaEVVRUFJUjhEUUNBUktBSWtJZ0VFUUNBUktBSUFJUWdDUUNBUklCRW9BaWdpRWdSL0lBZ2dFa0VZYkdvaUNFRVVheWdDQUNBSVFReHJLQUlBUndSQUlBaEJHR3NoQ0F3Q0N5QVNRUUZxQlVFQkN5SVNOZ0lvQ3dKQUFrQWdDQ2dDRkNJUElCZHFJZzBnRDBrTkFDQU5JQkJMRFFBRFFDQU5JUmNnQ0NBSUtBSVFJZzBnQ0NnQ0JHbzJBZ1FnQVNBTmF5RUdJQUVnRFVZTkFpQVJJQkpCQVdvaUVqWUNLQ0FJS0FJc0lnOGdGMm9pRFNBUFR3UkFJQWhCR0dvaENDQUdJUUVnRFNBUVRRMEJDd3NnRVNBR05nSWtDeUFiS0FJRUtBSm9JUUVnRXlBV05nSVlJQk1nSWpZQ0ZDQVRJQmcyQWhBZ0V5QWhOZ0lNSUJNZ0h6WUNDQ0FUSUJBMkFnUWdFeUFQTmdJQUlETkJBVUVDSUFFYlFaM3RBQ0FURUE4Z0FRMEtJQXNvQWh3aEZnd0ZDeUFSSUFZMkFpUUxJQkZCUUdzaEVTQWZRUUZxSWg4Z0owY05BQXNMSUF4QkpHb2hEQ0FZUVFGcUloZ2dLRWNOQUFzTElCY2dHbW9oR2dzQ1FDQUpJQlpCQW5ScUtBSUFSUTBBSUI0b0FoZ2dGa0UwYkdvaUFTZ0NKQTBBSUFFZ0lDZ0NGQ0FXUWN3QWJHb29BaGhCQVdzMkFpUUxJQW9nR21zaENpQWFJQjFxSVIwZ0N4QlhEUUFMQ3lBSkVCQWdDMEh3QVdvaEN5QWpRUUZxSWlNZ0hDZ0NwQU5ORFFBTElBY2dEaEE2SUVBZ0hTQVZhellDQ0VFQkRBSUxJQWNnRGhBNklBa1FFRUVBREFFTElBY2dEaEE2UVFBTElYZ2dFMEh3QUdva0FDQWJFQ3dnZUVVTkFTQVpLQUlnS0FMUUt5RUpJQmtvQWhRb0FnQWlGaWdDRkNFZElFQkJBVFlDREVFQUlRMUJBQ0VWSUJrb0FpQWlBU2dDRENBQktBSUlSZ1JBSUFrb0FoQkJCSFpCQVhFaEZRc0NRQ0FXS0FJUUlqRkZEUUFEUUFKQUlCa29Ba1FpQVFSQUlBRWdEVUVDZEdvb0FnQkZEUUVMSUVCQkRHb2hFMEVBSVRFQ1FDQWRLQUlZSWdGRkRRQWdHU2dDTENFUUEwQWdIU2dDSENBeFFaZ0JiR29pRENnQ0dDSUxCRUFnREVFY2FpRVNJQXdvQWhRaEFTQU1LQUlRSVJkQkFDRU9BMEFnQVNBWGJBUkFJQklnRGtFa2JHb2hEMEVBSVFnRFFDQVpJQjBvQWhBZ01TQVBLQUlRSUE4b0FoUWdDRUVvYkdvaUJ5Z0NBQ0FIS0FJRUlBY29BZ2dnQnlnQ0RCQTVJUVlnQnlnQ0ZDSUxJQWNvQWhBaUNtd2hBUUpBSUFZRVFDQUJSUTBCUVFBaENnTkFBa0FnR1NBZEtBSVFJREVnRHlnQ0VDQUhLQUlZSUFwQkJuUnFJZ1lvQWdnZ0JpZ0NEQ0FHS0FJUUlBWW9BaFFRT1VVRVFDQUdLQUk4SWdGRkRRRWdBUkFRSUFaQkFEWUNQQXdCQ3lBWktBSkFSUVJBSUFZb0Fqd05BU0FHS0FJUUlBWW9BZ2hHRFFFZ0JpZ0NGQ0FHS0FJTVJnMEJDMEVCUVN3UUV5SUJSUVJBSUVCQkFEWUNEQXdLQ3lBWktBSkFJUXNnQVVFQU5nSWtJQUVnRXpZQ0hDQUJJQWsyQWhRZ0FTQWROZ0lRSUFFZ0R6WUNEQ0FCSUFZMkFnZ2dBU0F4TmdJRUlBRWdDellDQUNBQklCVTJBaWdnQVNBek5nSWdJQUVnRUNnQ0JFRUJTallDR0NBUVFRNGdBUkF0SUVBb0FneEZEUWtMSUFwQkFXb2lDaUFIS0FJVUlBY29BaEJzU1EwQUN3d0JDeUFCUlEwQVFRQWhGd05BSUFjb0FoZ2dGMEVHZEdvaUFTZ0NQQ0lHQkVBZ0JoQVFJQUZCQURZQ1BDQUhLQUlRSVFvZ0J5Z0NGQ0VMQ3lBWFFRRnFJaGNnQ2lBTGJFa05BQXNMSUFoQkFXb2lDQ0FNS0FJVUlnRWdEQ2dDRUNJWGJFa05BQXNnRENnQ0dDRUxDeUFPUVFGcUlnNGdDMGtOQUFzZ0hTZ0NHQ0VCQ3lBeFFRRnFJakVnQVVrTkFBc0xJRUFvQWd4RkRRSWdGaWdDRUNFeEN5QUpRYmdJYWlFSklCMUJ6QUJxSVIwZ0RVRUJhaUlOSURGSkRRQUxDMEVBSVRFZ0dTZ0NMQkFnSUVBb0FneEZEUUVDUUNBWktBSkFEUUFnR1NnQ0dDSWRLQUlRUlEwQVFRQWhDUU5BSUJrb0FoUW9BZ0FvQWhRZ0NVSE1BR3hxSWdFb0Fod2dIU2dDR0NBSlFUUnNhaWdDSkVHWUFXeHFJZ2NvQW9nQklRWWdCeWdDa0FFaEN5QUhLQUtNQVNFS0lBY29BcFFCSVFjZ0FTZ0NOQkFRSUFGQkFEWUNOQUpBSUJrb0FrUWlEUVJBSUEwZ0NVRUNkR29vQWdCRkRRRUxJQVlnQzBZTkFDQUhJQXBHRFFBZ0J5QUtheUlIclNBTElBWnJJZ2F0ZmtJZ2lFSUFVZ1JBSUROQkFVR1VGa0VBRUE4TUJRc2dCaUFIYkNJSFFZQ0FnSUFFVHdSQUlETkJBVUdVRmtFQUVBOE1CUXNnQVNBSFFRSjBFQmdpQVRZQ05DQUJEUUFnTTBFQlFaUVdRUUFRRHd3RUN5QUpRUUZxSWdrZ0dTZ0NHQ0lkS0FJUVNRMEFDd3NnR1NnQ0lDRWRJQmtvQWhRb0FnQWlGeWdDRUFSQUlCY29BaFFoQ1NBZEtBTFFLeUVkSUJrb0FoZ29BaGdoRFVFQUlRc0RRQUpBSUJrb0FrUWlBUVJBSUFFZ0MwRUNkR29vQWdCRkRRRUxJQTBvQWlSQkFXb2hBU0FkS0FJVVFRRkdCRUFnQVNFZVFRQWhCa0VBSVF6OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBaGdBRWpBRUVnYXlJbEpBQUNRQUpBSUJrb0FrQUVRRUVCSVFjZ0FVRUJSZzBDSUFrb0Fod2lEQ0FKS0FJWVFaZ0JiR29pQVVHUUFXc29BZ0FpRUNBQlFaZ0JheWdDQUNJVFJnMENJQXdvQWdRaEVTQU1LQUlNSVJnZ0RDZ0NBQ0VhSUF3b0FnZ2hHeUFaS0FJc0lnNG9BZ1FoRmlBZVFRRnJJZ29oRlNBTUlRY0NRQ0FLUVFSUEJFQWdDa0VEY1NFVklBY2dDa0Y4Y1NJSVFaZ0JiR29oQjBFQUlRRURRQ0NBQVNBTUlBRkJtQUZzYWlJR1FlZ0VhaUFHUWRBRGFpQUdRYmdDYWlBRy9Ra0NvQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdCa0hnQkdvZ0JrSElBMm9nQmtHd0Ftb2dCdjBKQXBnQi9WWUNBQUg5VmdJQUF2MVdBZ0FEL2JFQi9ia0JJQVpCN0FScUlBWkIxQU5xSUFaQnZBSnFJQWI5Q1FLa0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBR1FlUUVhaUFHUWN3RGFpQUdRYlFDYWlBRy9Ra0NuQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlzUUg5dVFFaGdBRWdBVUVFYWlJQklBaEhEUUFMSUlBQklJQUJJSUFCL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2JrQklvQUJJSUFCSUlBQi9RMEVCUVlIQUFFQ0F3QUJBZ01BQVFJRC9ia0IvUnNBSVFZZ0NDQUtSZzBCQ3dOQUlBWWdCeWdDb0FFZ0J5Z0NtQUZySWdFZ0FTQUdTUnNpQVNBSEtBS2tBU0FIS0FLY0FXc2lCaUFCSUFaTEd5RUdJQWRCbUFGcUlRY2dGVUVCYXlJVkRRQUxDMEVBSVFjZ0JrSC8vLzgvU3cwQ0lDVWdCa0VGZENJU0VERWlEellDRUNBUFJRMENJQ1VnRHpZQ0FDQUtCRUFnRUNBVGF5RVFJQmdnRVdzaENDQWJJQnBySVFFRFFDQUpLQUlrSVJNZ0pTQUlJaFUyQWdnZ0pTQUJJZ2MyQWhnZ0RDZ0NuQUVoQmlBTUtBS2tBU0VJSUF3b0FxQUJJUUVnSlNBTUtBS1lBU0lSUVFKdk5nSWNJQ1VnQVNBUmF5SUJJQWRyTmdJVUFrQWdGa0VDU0NJYVJTQUlJQVpySWdoQkFVdHhSUVJBUVFBaEJpQUlSUTBCQTBBZ0pVRVFhaUFUSUFZZ0VHeEJBblJxRUYwZ0JrRUJhaUlHSUFoSERRQUxEQUVMSUFnZ0ZpQUlJQlpKR3lJUlFRRnJJUnNnQ0NBUmJpRVlRUUFoQndOQVFTUVFGQ0lHUlEwRklDWDlBQUlRSVlBQklBWWdFellDR0NBR0lCQTJBaFFnQmlBQk5nSVFJQVlnZ0FIOUN3SUFJQVlnQnlBWWJEWUNIQ0FISUJ0R0lSOGdCaUFJSUFkQkFXb2lCeUFZYkNBZkd6WUNJQ0FHSUJJUU1TSWZOZ0lBSUI5RkJFQkJBQ0VISUE0UUlDQUdFQkFnRHhBUURBY0xJQTVCQ2lBR0VDMGdCeUFSUncwQUN5QU9FQ0FMSUNVZ0NDQVZhellDQkNBbElBd29BcHdCUVFKdk5nSU1Ba0FnR2tVZ0FVRUJTM0ZGQkVCQkNDRUhRUUFoQmlBQlFRaFBCRUFEUUNBbElCTWdCa0VDZEdvZ0VFRUlFREFnQnlJR1FRaHFJZ2NnQVUwTkFBc0xJQUVnQmswTkFTQWxJQk1nQmtFQ2RHb2dFQ0FCSUFackVEQU1BUXNnQVNBV0lBRWdGa2tiSWhWQkFXc2hHQ0FCSUJWdUlSRkJBQ0VIQTBCQkpCQVVJZ1pGRFFVZ0pmMEFBZ0FoZ0FFZ0JpQVROZ0lZSUFZZ0VEWUNGQ0FHSUFnMkFoQWdCaUNBQWYwTEFnQWdCaUFISUJGc05nSWNJQWNnR0VZaEdpQUdJQUVnQjBFQmFpSUhJQkZzSUJvYk5nSWdJQVlnRWhBeElobzJBZ0FnR2tVRVFFRUFJUWNnRGhBZ0lBWVFFQ0FQRUJBTUJ3c2dEa0VMSUFZUUxTQUhJQlZIRFFBTElBNFFJQXNnREVHWUFXb2hEQ0FLUVFGcklnb05BQXNMUVFFaEJ5QVBFQkFNQWd0QkFTRUhJQWtvQWh3aUNDQWVRWmdCYkdvaU5VR1lBV3NpWHlnQ0FDQTFRWkFCYXlnQ0FFWU5BU0ExUVpRQmF5SmdLQUlBSURWQmpBRnJLQUlBUmcwQklBZ29BZ1FoRGlBSUtBSU1JUThnQ0NnQ0FDRVdJQWdvQWdnaEVDQUpLQUpFSVNFZ0NTZ0NRQ0VpSUFrb0Fqd2hLQ0FKS0FJNElUQWdDU0FlRUZ3aU9VVUVRRUVBSVFjTUFnc0NRQUpBSUI1QkFVY0VRQUpBQWtBZ0hrRUJheUlLUVFSSkJFQWdDaUVCSUFnaEJ3d0JDeUFLUVFOeElRRWdDQ0FLUVh4eEloVkJtQUZzYWlFSEEwQWdnQUVnQ0NBTVFaZ0JiR29pQmtIb0JHb2dCa0hRQTJvZ0JrRzRBbW9nQnYwSkFxQUIvVllDQUFIOVZnSUFBdjFXQWdBRElBWkI0QVJxSUFaQnlBTnFJQVpCc0FKcUlBYjlDUUtZQWYxV0FnQUIvVllDQUFMOVZnSUFBLzJ4QWYyNUFTQUdRZXdFYWlBR1FkUURhaUFHUWJ3Q2FpQUcvUWtDcEFIOVZnSUFBZjFXQWdBQy9WWUNBQU1nQmtIa0JHb2dCa0hNQTJvZ0JrRzBBbW9nQnYwSkFwd0IvVllDQUFIOVZnSUFBdjFXQWdBRC9iRUIvYmtCSVlBQklBeEJCR29pRENBVlJ3MEFDeUNBQVNDQUFTQ0FBZjBOQ0FrS0N3d05EZzhBQVFJREFBRUNBLzI1QVNLQUFTQ0FBU0NBQWYwTkJBVUdCd0FCQWdNQUFRSURBQUVDQS8yNUFmMGJBQ0VHSUFvZ0ZVWU5BUXNEUUNBR0lBY29BcUFCSUFjb0FwZ0JheUlLSUFZZ0Nrc2JJZ1lnQnlnQ3BBRWdCeWdDbkFGcklnb2dCaUFLU3hzaEJpQUhRWmdCYWlFSElBRkJBV3NpQVEwQUN3c2dCa0dBZ0lDQUFVOE5BaUFHUVFSMEVERWlGRVVOQWdKQUlCNUZEUUFnRHlBT2F5RVNJQkFnRm1zaEdpQVVRUVJySVRzZ0ZFRUVhaUVrSUJSQkRHb2hLU0FVUVJ4cUlVTWdGRUVZYWlFZklCUkJGR29oSUNBVVFReHJJVVFnRkVFSWFpRXFJQlJCRUdvaE5pQVVRUkJySVRjZ0ZFRUlheUZCSUNHdElZWUJJQ0t0SVljQklDaXRJWW9CSURDdElZc0JRUUVoUmdOQUlBZ29BcHdCSWdGQkFtOGhSeUFJS0FLWUFTSUhRUUp2SVR3Z0NDZ0NwQUVnQVdzaUp5QVNheUVzSUFnb0FxQUJJQWRySWkwZ0dtc2hMaUF3SWd3aEJ5QW9JZ1loQ2lBaUlnRWhPaUFoSWc4aEVRSkFJQWtvQWhRaUZTQkdSZzBBSUJVZ1Jtc2hGVUVBSVFwQkFDRUhJQXdFUUVKL0lCV3RJb2dCaGtKL2hTQ0xBWHdnaUFHSXB5RUhDeUFvQkVCQ2Z5QVZyU0tJQVlaQ2Y0VWdpZ0Y4SUlnQmlLY2hDZ3RCQUNFUFFRQWhBU0FpQkVCQ2Z5QVZyU0tJQVlaQ2Y0VWdod0Y4SUlnQmlLY2hBUXNnSVFSQVFuOGdGYTBpaUFHR1FuK0ZJSVlCZkNDSUFZaW5JUThMUVFBaE9rRUFJUXhCQVNBVlFRRnJkQ0lPSURCSkJFQWdNQ0FPYTYxQ2Z5QVZyU0tJQVlaQ2Y0VjhJSWdCaUtjaERBc2dEaUFpU1FSQUlDSWdEbXV0UW44Z0ZhMGlpQUdHUW4rRmZDQ0lBWWluSVRvTFFRQWhFVUVBSVFZZ0RpQW9TUVJBSUNnZ0RtdXRRbjhnRmEwaWlBR0dRbitGZkNDSUFZaW5JUVlMSUE0Z0lVOE5BQ0FoSUE1cnJVSi9JQld0SW9nQmhrSi9oWHdnaUFHSXB5RVJDMEYvSURvZ0NDZ0N0QUVpRldzaURrRUFJQTRnT2swYklnNUJBbW9pRmlBT0lCWkxHeUlPSUM0Z0RpQXVTUnNpTkVGL0lBRWdDQ2dDMkFFaUUyc2lEa0VBSUFFZ0RrOGJJZ0ZCQW1vaURpQUJJQTVMR3lJQklCb2dBU0FhU1JzaUppQThHMEVCZENJQklDWWdOQ0E4RzBFQmRFRUJjaUlPSUFFZ0Rrc2JJa2dnTFVraEdDQU1JQlZySWdGQkFDQUJJQXhOR3lJQlFRSnJJZ3hCQUNBQklBeFBHeUlRSUFjZ0Uyc2lBVUVBSUFFZ0IwMGJJZ0ZCQW1zaURFRUFJQUVnREU4YkloWWdQQnRCQVhRaURDQVdJQkFnUEJ0QkFYUkJBWElpSzBraEx5QUtJQWdvQXJnQklodHJJaFZCQUNBS0lCVlBHeUlLUVFKckloVkJBQ0FLSUJWUEd5SVZJU01nQmlBSUtBTGNBU0lLYXlJT1FRQWdCaUFPVHhzaUJrRUNheUlPUVFBZ0JpQU9UeHNpRGlFOVFYOGdEeUFiYXlJR1FRQWdCaUFQVFJzaUJrRUNhaUlQSUFZZ0Qwc2JJZ1lnRWlBR0lCSkpHeUliSVQ1QmZ5QVJJQXBySWdaQkFDQUdJQkZOR3lJR1FRSnFJZ29nQmlBS1N4c2lCaUFzSUFZZ0xFa2JJaHdoUHlCSEJFQWdGU0U5SUJ3aFBpQWJJVDhnRGlFakN5QklJQzBnR0JzaFNTQU1JQ3NnTHhzaEdDQVNJQnhxSVZBZ0RpQVNhaUZSSUNjRVFDQVVJQlpCQTNRaUJtb2lSVUVFYWlBN0lDNUJBM1FpQ21vaVVpQVdJQzVJSWd3YklWTWdCaUFrYWlJR0lDWWdMaUFtSUM1SUd5SVBJQWNnRXlBSElCTkpHMEVDSUFFZ0FVRUNUeHRxSWdGcUloTWdCMnRCQW1zaUVVRURkQ0lyYWlBR1NTQXBJQWNnQVd0QkEzUnFJZ0VnSzJvZ0FVbHlJQkZCLy8vLy93RkxjaUZVSURRZ0drRUJheUFhSURSS0d5RXZRUUFoRVNBYVFRRktJQzVCQUVweUlWVWdKQ0E4UVFKMElnRnJJQkJCQTNScUlWWWdBU0JGYWlGWElCWWdCMEYvY3lBVGFpSktRWHh4SWpKcUlUZ2dGa0VCYWlJVElESnFJVUlnR2lBMGFpRllJQkFnR21vaFdTQVcvUkg5REFBQUFBQUJBQUFBQWdBQUFBTUFBQUQ5cmdFaGd3RWdGQ0FZUVFKMGFpRmFJRUVnR2tFRGRDSUJhaUZMSUFFZ08yb2hUQ0FLSUVGcUlVMGdHa1VnTGtFQlJuRWhXeUFVSUVsQkFuUWlBV29oWENBQklEdHFJVjBnRS8wUi9Rd0FBQUFBQVFBQUFBSUFBQUFEQUFBQS9hNEJJWVFCSURzZ0ZpQXVJQXdiUVFOMGFpRmVBMEFDUUFKQUlCRWdHMGtnRVNBVlQzRU5BQ0FSSUZCSklCRWdVVTl4RFFBZ0VVRUJhaUVyREFFTElDMGdTRXNFUUNCZFFRQTJBZ0FnWEVFQU5nSUFDeUE1SUJZZ0VTQW1JQkZCQVdvaUt5QlhRUUpCQUJBZUlEa2dXU0FSSUZnZ0t5QldRUUpCQUJBZUFrQUNRQUpBSUR4RkJFQWdWVVVOQXlBV0lDWk9EUUlDUUFKQUlCWkJBRW9FUUNCZUtBSUFJUWNNQVFzZ0pDZ0NBQ0lISVFFZ0ZrRUFTQTBCQ3lBSElRRWdVeWdDQUNFSEN5QkZJRVVvQWdBZ0FTQUhha0VDYWtFQ2RXczJBZ0FnRXlJSElBOU9EUUZCQUNFSElJUUJJWUFCSUlNQklZSUJJQk1oQVNBV0lRb2dTa0VVU1NCVWNrVUVRQU5BSUJRZ2dBRkJBZjJyQVNLQkFmMGJBRUVDZEdvaUFTQVVJSUVCL1JzRFFRSjBhaUlHSUJRZ2dRSDlHd0pCQW5ScUlnb2dGQ0NCQWYwYkFVRUNkR29pRENBQi9Ra0NBUDFXQWdBQi9WWUNBQUw5VmdJQUF5QVVJSUlCUVFIOXF3SDlEQUVBQUFBQkFBQUFBUUFBQUFFQUFBRDlVQ0tGQWYwYkEwRUNkR29nRkNDRkFmMGJBa0VDZEdvZ0ZDQ0ZBZjBiQVVFQ2RHb2dGQ0NGQWYwYkFFRUNkR3I5Q1FJQS9WWUNBQUg5VmdJQUF2MVdBZ0FESUJRZ2dRSDlEQUVBQUFBQkFBQUFBUUFBQUFFQUFBRDlVQ0tCQWYwYkEwRUNkR29nRkNDQkFmMGJBa0VDZEdvZ0ZDQ0JBZjBiQVVFQ2RHb2dGQ0NCQWYwYkFFRUNkR3I5Q1FJQS9WWUNBQUg5VmdJQUF2MVdBZ0FEL2E0Qi9Rd0NBQUFBQWdBQUFBSUFBQUFDQUFBQS9hNEJRUUw5ckFIOXNRRWlnUUg5V2dJQUFDQU1JSUVCL1ZvQ0FBRWdDaUNCQWYxYUFnQUNJQVlnZ1FIOVdnSUFBeUNDQWYwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTR0NBU0NBQWYwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTR0FBU0FIUVFScUlnY2dNa2NOQUFzZ1FpRUJJRGdoQ2lBUElRY2dNaUJLUmcwQ0N3TkFJQlFnQVVFRGRHb2lCeUFIS0FJQUlCUWdDa0VEZEdvb0FnUWdCeWdDQkdwQkFtcEJBblZyTmdJQUlBRWlDa0VCYWlJQklBOUhEUUFMSUE4aEJ3d0JDd0pBSUZ0RkJFQWdGaUlISUNaT0RRRURRQ0FVSUFkQkEzUnFJZ0VvQWdRaEJpQUJJQVlDZndKQUlBZEJBRTRFUUNBQklFMGdCeUF1U0Jzb0FnQWhPaUFIUVFGcUlRRU1BUXNnRkNnQ0FDRTZRUUFoQVNBVUlBZEJBV29pQncwQkdnc2dBU0F1VGdSQUlBRWhCeUJOREFFTElCUWdBU0lIUVFOMGFnc29BZ0FnT21wQkFtcEJBblZyTmdJRUlBY2dKa2dOQUFzTUFRc2dGQ0FVS0FJQVFRSnROZ0lBREFNTElCQWlCeUEwVGcwQ0EwQWdGQ0FIUVFOMGFpSUJLQUlBSVFvQ2Z5QUhRUUJJQkVBZ0pDZ0NBQ0VHSUNRTUFRc2dGQ0FIUVFOMGFrRUVhaUJNSUFjZ0drZ2JLQUlBSVFZZ0pDQUhSUTBBR2lCTUlBRkJCR3NnQnlBYVNoc0xJUXdnQVNBTUtBSUFJQVpxUVFGMUlBcHFOZ0lBSUFkQkFXb2lCeUEwUncwQUN3d0NDeUFISUNaT0RRQURRQ0FVSUFkQkEzUnFJZ0VnQVNnQ0FBSi9Ba0FnQjBFQVNnUkFJRHNnQnlBdUlBY2dMa2diUVFOMGFpZ0NBQ0VLREFFTElDUW9BZ0FoQ2lBa0lBZEJBRWdOQVJvTElGSWdCeUF1VGcwQUdpQVVJQWRCQTNScVFRUnFDeWdDQUNBS2FrRUNha0VDZFdzMkFnQWdCMEVCYWlJSElDWkhEUUFMQ3lBUUlEUk9EUUFnTHlBUUlnRWlCMG9FUUFOQUlCUWdCMEVEZEdvaUFTQUJLQUlFSUJRZ0IwRUJhaUlIUVFOMGFpZ0NBQ0FCS0FJQWFrRUJkV28yQWdRZ0J5QXZSdzBBQ3lBdklRRUxJQUVnTkU0TkFBTkFBbjhDUUNBQklnZEJBRTRFUUNBVUlBRkJBM1JxSUVzZ0FTQWFTQnNvQWdBaERDQUJRUUZxSVFvTUFRc2dGQ2dDQUNFTVFRQWhDaUFVSUFkQkFXb2lBUTBCR2dzZ0NpQWFUZ1JBSUFvaEFTQkxEQUVMSUJRZ0NpSUJRUU4wYWdzaEJpQVVJQWRCQTNScUlnY2dCeWdDQkNBR0tBSUFJQXhxUVFGMWFqWUNCQ0FCSURSSURRQUxDeUE1SUJnZ0VTQkpJQ3NnV2tFQlFRQkJBQkFtUlEwR0N5QXJJaEVnSjBjTkFBc0xJQWhCbUFGcUlRZ2dQa0VCZENJQklEOUJBWFJCQVhJaUJ5QUJJQWRMR3lJQklDY2dBU0FuU1JzaFNDQkRJQlZCQlhRaUFXb2dPeUFzUVFWMElnZHFJQlVnTEVnaUJoc2hTaUFCSUI5cUlBY2dRV29nQmhzaFN5QUJJQ0JxSUFjZ1JHb2dCaHNoVENBQklEWnFJQWNnTjJvZ0Joc2hUU0FjSUJKQkFXc2dFaUFjU2hzaERDQXNRUUJLSWc4Z0VrRUJTbkloVWlBQklCUnFJaXNnUjBFRWRHb2hVeUFwSUJKQkEzUWlHa0VJYXlJK1FRQWdFa0VBVEJ0QkFuUWlDbW9oVkNBS0lDcHFJVlVnQ2lBa2FpRldJQW9nRkdvaFZ5QXBRUUFnTEVFRGRDSUtRUWhySWo4Z0R4dEJBblFpRDJvaFdDQVBJQ3BxSVZrZ0R5QWthaUZhSUE4Z0ZHb2hXeUFVUVFRZ1IwRUNkR3RCQW5ScUlBNUJCWFJxSVZ3Z0d5QXNJQnNnTEVnYklROGdGVUVCYWlFUUlCUWdJMEVCZENJV0lEMUJBWFJCQVhJaUV5QVRJQlpMR3lKZFFRUjBhaUZlSUFFZ0tXb2hQU0FCSUNwcUlTTWdBU0FrYWlFdklCcEJBV3NoT0NBYVFRSnJJVUlnR2tFRGF5RXVJQlFnRWtFRmRHb2hZU0FhUVFScklUUWdDa0VGYXlGaUlBcEJCbXNoWXlBS1FRZHJJV1FnRWtVZ0xFRUJSbkVoWlNBcElBZEJFR3NpQVdvaEppQUJJQ3BxSVRvZ0FTQWthaUU4SUFFZ0ZHb2hSU0FwSUQ1QkFuUWlBV29oYUNBQklDcHFJV2tnQVNBa2FpRnFJQUVnRkdvaGF5QTdJQlVnTENBR0cwRUZkQ0lCYWlGc0lBRWdRV29oRXlBQklFUnFJUkVnQVNBM2FpRnRJQ2tnUDBFQ2RDSUJhaUZ1SUFFZ0ttb2hieUFCSUNScUlYQWdBU0FVYWlGeEEwQUNRQUpBQW44Q1FDQVlJaFlnU1VrRVFDQTVJQllnRlVFRUlFa2dGbXNpQVNBQlFRUlBHeUFXYWlJWUlCc2dVMEVCUVFnUUhpQTVJQllnVVNBWUlGQWdYRUVCUVFnUUhpQkhSUVJBSUZKRkRRVWdGU0FiVGcwRUFuOGdGVUVBU2dSQUlHMG9BZ0FoQnlBVElRWWdFU0VLSUd3TUFRc2dOaWdDQUNFSElCVkJBRWdOQXlBZklRWWdJQ0VLSUVNTElYa2dLeUFyS0FJQUlBY2dUU2dDQUdwQkFtcEJBblZyTmdJQUlDOGdMeWdDQUNBS0tBSUFJRXdvQWdCcVFRSnFRUUoxYXpZQ0FDQWpJQ01vQWdBZ0JpZ0NBQ0JMS0FJQWFrRUNha0VDZFdzMkFnQWdTaWdDQUNFSElIa29BZ0FNQXdzZ1pRUkFJQlFnRkNnQ0FFRUNiVFlDQUNBa0lDUW9BZ0JCQW0wMkFnQWdLaUFxS0FJQVFRSnROZ0lBSUNrZ0tTZ0NBRUVDYlRZQ0FBd0ZDeUFiSUJVaUIwb0VRQU5BSUFkQkEzUWhBUUovQWtBZ0IwRUFTQVJBSUFkQmYwWU5BU0FVSUFGQkFuUnFJZ0VnQVNnQ0VDQVVLQUlBUVFGMFFRSnFRUUoxYXpZQ0VDQUJJQUVvQWhRZ0pDZ0NBRUVCZEVFQ2FrRUNkV3MyQWhRZ0FTQUJLQUlZSUNvb0FnQkJBWFJCQW1wQkFuVnJOZ0lZSUNrb0FnQkJBWFJCQW1vaEJpQUJRUnhxREFJTElDd2dCMEVCYWlJR1RBUkFJQlFnQVVFQ2RHb2lDaUFLS0FJUUlCUWdBU0EvSUFjZ0xFZ2lCaHRCQW5ScUtBSUFJSEVvQWdCcVFRSnFRUUoxYXpZQ0VDQUtJQW9vQWhRZ0ZDQUJRUUZ5SUdRZ0JodEJBblJxS0FJQUlIQW9BZ0JxUVFKcVFRSjFhellDRkNBS0lBb29BaGdnRkNBQlFRSnlJR01nQmh0QkFuUnFLQUlBSUc4b0FnQnFRUUpxUVFKMWF6WUNHQ0FVSUFGQkEzSWdZaUFHRzBFQ2RHb29BZ0FnYmlnQ0FHcEJBbW9oQmlBS1FSeHFEQUlMSUJRZ0FVRUNkR29pQVNBQktBSVFJQUVvQWdBZ0ZDQUdRUVYwYWlJR0tBSUFha0VDYWtFQ2RXczJBaEFnQVNBQktBSVVJQUVvQWdRZ0JpZ0NCR3BCQW1wQkFuVnJOZ0lVSUFFZ0FTZ0NHQ0FCS0FJSUlBWW9BZ2hxUVFKcVFRSjFhellDR0NBQktBSU1JQVlvQWd4cVFRSnFJUVlnQVVFY2Fnd0JDeUEzSURjb0FnQWdGQ2dDQUNCYktBSUFha0VDYWtFQ2RXczJBZ0FnUkNCRUtBSUFJQ1FvQWdBZ1dpZ0NBR3BCQW1wQkFuVnJOZ0lBSUVFZ1FTZ0NBQ0FxS0FJQUlGa29BZ0JxUVFKcVFRSjFhellDQUNBcEtBSUFJRmdvQWdCcVFRSnFJUVlnT3dzaUFTQUJLQUlBSUFaQkFuVnJOZ0lBSUFkQkFXb2lCeUFiUncwQUN3c2dIQ0FPSWdkTURRUURRQ0FIUVFOMElRRUNmeUFIUVFCSUJFQWdGQ0FCUVFKMGFpSUJJQUVvQWdBZ05pZ0NBRUVCZEVFQmRXbzJBZ0FnQVNBQktBSUVJQlFvQWhSQkFYUkJBWFZxTmdJRUlBRWdBU2dDQ0NBVUtBSVlRUUYwUVFGMWFqWUNDQ0FVS0FJY1FRRjBJUW9nQVVFTWFnd0JDeUFIQkVBZ0ZDQUJRUUowYWlJR0lBWW9BZ0FnWVNBR0lBY2dFa29pTWh0QkVHc29BZ0FnRkNBQlFRUnlJRFFnQnlBU1NDSUtHMEVDZEdvb0FnQnFRUUYxYWpZQ0FDQUdJQVlvQWdRZ1JDQWFJQUVnTWh0QkFuUWlNbW9vQWdBZ0ZDQUJRUVZ5SUM0Z0NodEJBblJxS0FJQWFrRUJkV28yQWdRZ0JpQUdLQUlJSURJZ1FXb29BZ0FnRkNBQlFRWnlJRUlnQ2h0QkFuUnFLQUlBYWtFQmRXbzJBZ2dnTWlBN2FpZ0NBQ0FVSUFGQkIzSWdPQ0FLRzBFQ2RHb29BZ0JxSVFvZ0JrRU1hZ3dCQ3lBVUlCUW9BZ0FnTmlnQ0FDQVVRUVFnTkNBSElCSklJZ0ViUVFKMGFpZ0NBR3BCQVhWcU5nSUFJQ1FnSkNnQ0FDQVVLQUlVSUJSQkJTQXVJQUViUVFKMGFpZ0NBR3BCQVhWcU5nSUFJQ29nS2lnQ0FDQVVLQUlZSUJSQkJpQkNJQUViUVFKMGFpZ0NBR3BCQVhWcU5nSUFJQlFvQWh3Z0ZFRUhJRGdnQVJ0QkFuUnFLQUlBYWlFS0lDa0xJZ0VnQVNnQ0FDQUtRUUYxYWpZQ0FDQUhRUUZxSWdjZ0hFY05BQXNNQkFzZ0xTRWFJQ2NoRWlCR1FRRnFJa1lnSGtjTkJRd0dDeUFySUNzb0FnQWdCMEVCZEVFQ2FrRUNkV3MyQWdBZ0x5QXZLQUlBSUNBb0FnQkJBWFJCQW1wQkFuVnJOZ0lBSUNNZ0l5Z0NBQ0FmS0FJQVFRRjBRUUpxUVFKMWF6WUNBQ0JES0FJQUlnY0xJUUVnUFNBOUtBSUFJQUVnQjJwQkFtcEJBblZyTmdJQUlCVWhCaUFRSWdFaUJ5QVBTQVJBQTBBZ0ZDQUJRUVYwYWlJSElBZjlBQUlBSURZZ0JrRUZkR3I5QUFJQUlBZjlBQUlRL2E0Qi9Rd0NBQUFBQWdBQUFBSUFBQUFDQUFBQS9hNEJRUUw5ckFIOXNRSDlDd0lBSUFFaUJrRUJhaUlCSUE5SERRQUxJQThoQndzZ0J5QWJUZzBBQTBBZ0IwRURkQ0VCSUFjZ0xFZ2hCZ0pBSUFkQkFFd0VRQ0EyS0FJQUlRb2dCMEVBVGdSQUlCUWdBVUVDZENJQmFpSXlJRElvQWdBZ0NpQUJJRFpxSUVVZ0Joc29BZ0JxUVFKcVFRSjFhellDQUNBQklDUnFJZ29nQ2lnQ0FDQWdLQUlBSUFFZ0lHb2dQQ0FHR3lnQ0FHcEJBbXBCQW5Wck5nSUFJQUVnS21vaUNpQUtLQUlBSUI4b0FnQWdBU0FmYWlBNklBWWJLQUlBYWtFQ2FrRUNkV3MyQWdBZ1F5Z0NBQ0FCSUVOcUlDWWdCaHNvQWdCcVFRSnFJUVlnQVNBcGFpRUJEQUlMSUJRZ0FVRUNkQ0lCYWlJR0lBWW9BZ0FnQ2tFQmRFRUNha0VDZFdzMkFnQWdBU0FrYWlJR0lBWW9BZ0FnRkNnQ0ZFRUJkRUVDYWtFQ2RXczJBZ0FnQVNBcWFpSUdJQVlvQWdBZ0ZDZ0NHRUVCZEVFQ2FrRUNkV3MyQWdBZ0FTQXBhaUVCSUJRb0FoeEJBWFJCQW1vaEJnd0JDeUFVSUFjZ0xDQUdHMEVEZEVFRWEwRUNkQ0lLYWlnQ0FDRXlJQVpGQkVBZ0ZDQUJRUUowSWdGcUlnWWdCaWdDQUNBeUlFVW9BZ0JxUVFKcVFRSjFhellDQUNBQklDUnFJZ1lnQmlnQ0FDQUtJQ1JxS0FJQUlEd29BZ0JxUVFKcVFRSjFhellDQUNBQklDcHFJZ1lnQmlnQ0FDQUtJQ3BxS0FJQUlEb29BZ0JxUVFKcVFRSjFhellDQUNBQklDbHFJUUVnQ2lBcGFpZ0NBQ0FtS0FJQWFrRUNhaUVHREFFTElCUWdBVUVDZENJQmFpSUdJQVlvQWdBZ01pQUdLQUlRYWtFQ2FrRUNkV3MyQWdBZ0FTQWthaUlHSUFZb0FnQWdDaUFrYWlnQ0FDQUdLQUlRYWtFQ2FrRUNkV3MyQWdBZ0FTQXFhaUlHSUFZb0FnQWdDaUFxYWlnQ0FDQUdLQUlRYWtFQ2FrRUNkV3MyQWdBZ0NpQXBhaWdDQUNBQklDbHFJZ0VvQWhCcVFRSnFJUVlMSUFFZ0FTZ0NBQ0FHUVFKMWF6WUNBQ0FIUVFGcUlnY2dHMGNOQUFzTElBNGdIRTROQUNBTUlBNGlBU0lIU2dSQUEwQWdGQ0FCUVFWMGFpSUhJQWY5QUFJZ0lBZjlBQUlBL2E0QlFRSDlyQUVnQi8wQUFoRDlyZ0g5Q3dJUUlBRkJBV29pQVNBTVJ3MEFDeUFNSVFjTElBY2dIRTROQUFOQUlFTWdCMEVEZENJQlFRSjBhaUl5QW44Z0IwRUFTQVJBSUJRb0FnQWhCaUFIUVg5SEJFQWdOaUFCUVFKMElnRnFJZ29nQ2lnQ0FDQUdhallDQUNBQklDQnFJZ1lnQmlnQ0FDQWtLQUlBYWpZQ0FDQUJJQjlxSWdFZ0FTZ0NBQ0FxS0FJQWFqWUNBQ0FwS0FJQURBSUxJRFlnQVVFQ2RDSUJhaUlLSUFvb0FnQWdWeWdDQUNBR2FrRUJkV28yQWdBZ0FTQWdhaUlHSUFZb0FnQWdWaWdDQUNBa0tBSUFha0VCZFdvMkFnQWdBU0FmYWlJQklBRW9BZ0FnVlNnQ0FDQXFLQUlBYWtFQmRXbzJBZ0FnVkNnQ0FDQXBLQUlBYWtFQmRRd0JDeUFCSUQ0Z0J5QVNTQnNoQmlBU0lBZEJBV29pWmt3RVFDQTJJQUZCQW5RaUNtb2lBU0FCS0FJQUlHc29BZ0FnRkNBR1FRSjBhaUlCS0FJQWFrRUJkV28yQWdBZ0NpQWdhaUlHSUFZb0FnQWdhaWdDQUNBQktBSUVha0VCZFdvMkFnQWdDaUFmYWlJR0lBWW9BZ0FnYVNnQ0FDQUJLQUlJYWtFQmRXbzJBZ0FnYUNnQ0FDQUJLQUlNYWtFQmRRd0JDeUEySUFGQkFuUWlDbW9pQVNBQktBSUFJQlFnWmtFRmRHb2lBU2dDQUNBVUlBWkJBblJxSWdZb0FnQnFRUUYxYWpZQ0FDQUtJQ0JxSW1ZZ1ppZ0NBQ0FCS0FJRUlBWW9BZ1JxUVFGMWFqWUNBQ0FLSUI5cUlnb2dDaWdDQUNBQktBSUlJQVlvQWdocVFRRjFhallDQUNBQktBSU1JQVlvQWd4cVFRRjFDeUF5S0FJQWFqWUNBQ0FIUVFGcUlnY2dIRWNOQUFzTElEa2dGaUJkSUJnZ1NDQmVRUUZCQkVFQUVDWU5BQXNMREFJTElCUVFFRUVCSVFjTElEa2dOVUVRYXlnQ0FDSUJJRjhvQWdBaUJtc2dOVUVNYXlnQ0FDQmdLQUlBSWdwcklEVkJDR3NvQWdBaUNDQUdheUExUVFScktBSUFJQXBySUFrb0FqUkJBU0FJSUFGckVCNGdPUkFqREFNTElEa1FJeUFVRUJCQkFDRUhEQUlMSURrUUkwRUFJUWNNQVF0QkFDRUhJQTRRSUNBUEVCQUxJQ1ZCSUdva0FDQUhEUUVNQlFzZ0FTRUlRUUFoRHYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNHQUFTTUFRVUJxSWh3a0FBSkFBbjhDUUNBWktBSkFCRUFnQ1NnQ0hDSVZJQWtvQWhoQm1BRnNhaUlCUVpnQmF5Z0NBQ0VhSUFGQmtBRnJLQUlBSVJzZ0ZTZ0NCQ0VNSUJVb0Fnd2hlaUFWS0FJQUlSQWdGU2dDQ0NFVFFRRWhCeUFaS0FJc0loOG9BZ1FoS3lBSVFRRkdEUU5CQUNFR0lBaEJBV3NpRmlFSUlCVWhBUUpBSUJaQkJFOEVRQ0FXUVFOeElRZ2dBU0FXUVh4eElncEJtQUZzYWlFQlFRQWhCd05BSUlBQklCVWdCMEdZQVd4cUlnWkI2QVJxSUFaQjBBTnFJQVpCdUFKcUlBYjlDUUtnQWYxV0FnQUIvVllDQUFMOVZnSUFBeUFHUWVBRWFpQUdRY2dEYWlBR1FiQUNhaUFHL1FrQ21BSDlWZ0lBQWYxV0FnQUMvVllDQUFQOXNRSDl1UUVnQmtIc0JHb2dCa0hVQTJvZ0JrRzhBbW9nQnYwSkFxUUIvVllDQUFIOVZnSUFBdjFXQWdBRElBWkI1QVJxSUFaQnpBTnFJQVpCdEFKcUlBYjlDUUtjQWYxV0FnQUIvVllDQUFMOVZnSUFBLzJ4QWYyNUFTR0FBU0FIUVFScUlnY2dDa2NOQUFzZ2dBRWdnQUVnZ0FIOURRZ0pDZ3NNRFE0UEFBRUNBd0FCQWdQOXVRRWlnQUVnZ0FFZ2dBSDlEUVFGQmdjQUFRSURBQUVDQXdBQkFnUDl1UUg5R3dBaEJpQUtJQlpHRFFFTEEwQWdCaUFCS0FLZ0FTQUJLQUtZQVdzaUJ5QUdJQWRMR3lJSElBRW9BcVFCSUFFb0Fwd0JheUlHSUFZZ0Iwa2JJUVlnQVVHWUFXb2hBU0FJUVFGcklnZ05BQXNMUVFBaEJ5QUdRZi8vL3o5TERRTWdIQ0FHUVFWMElrWVFHQ0lCTmdJZ0lBRkZEUU1nSENBQk5nSUFJQlpGQkVCQkFTRUhJQUVRRUF3RUN5QjZJQXhySVE4Z0V5QVFheUVPUVFJZ0swRUJkaUlCSUFGQkFrMGJJVWNnQ1NnQ0pDSUtJQnRCSEd3aVRTQWFRUnhzSWw5cmFpRXZJQW9nRzBFWWJDSmdJQnBCR0d3aVVtdHFJVDBnQ2lBYlFSUnNJbE1nR2tFVWJDSlVhMm9oUGlBS0lCdEJCSFFpVlNBYVFRUjBJbFpyYWlFL0lBb2dHMEVNYkNKWElCcEJER3dpV0d0cUlUZ2dHeUFhYXlJUVFRZHNJVWtnRUVFR2JDRkZJQkJCQld3aE1pQVFRUU5zSVVnZ0VFRUJkQ0ZRSUFvZ0VFRURkQ0pSYWlGQ0lBb2dFRUVDZENKQmFpRVVJQkJCQlhRaFdTQVEvUkVoaEFFRFFDQWNJQTgyQWdnZ0hDQU9JZ0UyQWlnZ0ZTZ0NuQUVoSkNBVktBS2tBU0VwSUJVb0FxQUJJUjRnRlNnQ21BRWhJQ0FjUVFBMkFqZ2dIQ0FCTmdJMElCeEJBRFlDTUNBY0lDQkJBbThpR0RZQ0xDQWNJQjRnSUdzaURpQUJheUlUTmdJOElCd2dFellDSkFKQUlDdEJBa2dpV2tVZ0tTQWtheUlQUVE5TGNVVUVRRUVBSVFjZ0NpRUdJQTlCQ0VrTkFTQS9JQVlnVXlBZVFRSjBJZ0ZxSUZRZ0lFRUNkQ0lJYW10cUlqcEpJRDRnQmlBQklGVnFJQWdnVm1wcmFpSkRTWEVnUFNCRFNTQS9JQVlnQVNCZ2FpQUlJRkpxYTJvaVBFbHhjaUF2SUVOSklEOGdCaUFCSUUxcUlBZ2dYMnByYWlKRVNYRnlJVnNnUFNCRVNTQXZJRHhKY1NGY0lENGdSRWtnTHlBNlNYRWhYU0E4SUQ1TElEb2dQVXR4SVY0Z1FpQUdJQUVnVjJvZ0NDQllhbXRxSWtwSklEZ2dCaUFCSUZGcUlBaHJhaUpMU1hFaFlTQVVJRXBKSURnZ0JpQWJJQjVxSUJvZ0lHcHJRUUowYWlKTVNYRWhZaUFVSUV0SklFSWdURWx4SVdNZ0JpQUJJQWhyYWlFcUlBNUJmSEVoQ0NBY0tBSWdJaE1nRGtFRmRHb2lFVUVRYXlFbElCRkJGR3NoTENBUlFSaHJJUzRnRVVFY2F5RTJJQkZCQkdzaE9TQVJRUWhySVRzZ0VVRU1heUUwUVFBaEdDQVRRUXhxSWlNZ0hpQWdRWDl6YWlJTVFRVjBJZ0ZxSUNOSklBeEIvLy8vUDBzaURDQVRRUVJxSWlFZ0FXb2dJVWtnQVNBVGFpQVRTWEp5SUJOQkNHb2lJaUFCYWlBaVNYSnlJQTVCeUFKSmNpRmtJQk5CRkdvaUtDQUJhaUFvU1NBVFFSQnFJaWNnQVdvZ0owbHlJQXh5SUJOQkdHb2lNQ0FCYWlBd1NYSWdFMEVjYWlJdElBRnFJQzFKY2lBT1FkUUFTWEloWlFOQUlBY2hEQ0FjUVNCcUlnRWdCaUFRUVFnUU95QUJFQ0lDUUNBT1JRMEFJQmdnV1d3aEIwRUFJUUVDUUFKQUlHUU5BQ0JoSUFZZ05ra2dFeUFISUNwcUlqZEpjU0FHSUFjZ1Ntb2lFa2tnS2lBNFMzRWdGQ0FxU1NBR0lBY2dUR29pSmtseElBWWdCeUJMYWlJMVNTQXFJRUpMY1hKeWNpQUdJQzVKSUNFZ04wbHhjaUFHSUN4SklDSWdOMGx4Y2lBR0lDVkpJQ01nTjBseGNpQmpjaUJpY2lBVElDWkpJQWNnRkdvaU55QTJTWEZ5SUNFZ0pra2dMaUEzUzNGeUlDSWdKa2tnTENBM1MzRnlJQ01nSmtrZ0pTQTNTM0Z5Y2cwQUlCTWdOVWtnQnlCQ2FpSW1JRFpKY1EwQUlDRWdOVWtnSmlBdVNYRU5BQ0FpSURWSklDWWdMRWx4RFFBZ0l5QTFTU0FsSUNaTGNRMEFJQWNnT0dvaUppQTJTU0FTSUJOTGNRMEFJQ1lnTGtrZ0VpQWhTM0VOQUNBbUlDeEpJQklnSWt0eERRQWdFaUFqU3lBbElDWkxjUTBBQTBBZ0JpQUJRUUowYWlBVElBRkJCWFJxSWhMOUNRSUFJQklxQWlEOUlBRWdFa0ZBYXlvQ0FQMGdBaUFTS2dKZy9TQUQvUXNDQUNBR0lBRWdFR3BCQW5ScUlCTDlDUUlFSUJJcUFpVDlJQUVnRWlvQ1JQMGdBaUFTS2dKay9TQUQvUXNDQUNBR0lBRWdVR3BCQW5ScUlCTDlDUUlJSUJJcUFpajlJQUVnRWlvQ1NQMGdBaUFTS2dKby9TQUQvUXNDQUNBR0lBRWdTR3BCQW5ScUlCTDlDUUlNSUJJcUFpejlJQUVnRWlvQ1RQMGdBaUFTS2dKcy9TQUQvUXNDQUNBQlFRUnFJZ0VnQ0VjTkFBc2dDQ0lCSUE1R0RRRUxBMEFnQmlBQlFRSjBhaUFUSUFGQkJYUnFJaElxQWdBNEFnQWdCaUFCSUJCcVFRSjBhaUFTS2dJRU9BSUFJQVlnQVNCUWFrRUNkR29nRWlvQ0NEZ0NBQ0FHSUFFZ1NHcEJBblJxSUJJcUFndzRBZ0FnQVVFQmFpSUJJQTVIRFFBTEMwRUFJUUVDUUNCbERRQWdYQ0FISUQ1cUloSWdORWtnSnlBSElEcHFJaVpKY1NCYklBY2dQMm9pTlNBMFNTQW5JQWNnUTJvaU4wbHhjaUFvSURkSklEVWdPMGx4Y2lBd0lEZEpJRFVnT1VseGNpQXRJRGRKSUJFZ05VdHhjaUJlY2lCZGNuSWdFaUE3U1NBbUlDaExjWElnRWlBNVNTQW1JREJMY1hJZ0ppQXRTeUFSSUJKTGNYSnlEUUFnQnlBOWFpSVNJRFJKSUNjZ0J5QThhaUltU1hFTkFDQVNJRHRKSUNZZ0tFdHhEUUFnRWlBNVNTQW1JREJMY1EwQUlDWWdMVXNnRVNBU1MzRU5BQ0FISUM5cUloSWdORWtnSnlBSElFUnFJZ2RKY1EwQUlCSWdPMGtnQnlBb1MzRU5BQ0FTSURsSklBY2dNRXR4RFFBZ0J5QXRTeUFSSUJKTGNRMEFBMEFnQmlBQklFRnFRUUowYWlBVElBRkJCWFJxSWdmOUNRSVFJQWNxQWpEOUlBRWdCeW9DVVAwZ0FpQUhLZ0p3L1NBRC9Rc0NBQ0FHSUFFZ01tcEJBblJxSUFmOUNRSVVJQWNxQWpUOUlBRWdCeW9DVlAwZ0FpQUhLZ0owL1NBRC9Rc0NBQ0FHSUFFZ1JXcEJBblJxSUFmOUNRSVlJQWNxQWpqOUlBRWdCeW9DV1AwZ0FpQUhLZ0o0L1NBRC9Rc0NBQ0FHSUFFZ1NXcEJBblJxSUFmOUNRSWNJQWNxQWp6OUlBRWdCeW9DWFAwZ0FpQUhLZ0o4L1NBRC9Rc0NBQ0FCUVFScUlnRWdDRWNOQUFzZ0NDSUJJQTVHRFFFTEEwQWdCaUFCSUVGcVFRSjBhaUFUSUFGQkJYUnFJZ2NxQWhBNEFnQWdCaUFCSURKcVFRSjBhaUFIS2dJVU9BSUFJQVlnQVNCRmFrRUNkR29nQnlvQ0dEZ0NBQ0FHSUFFZ1NXcEJBblJxSUFjcUFodzRBZ0FnQVVFQmFpSUJJQTVIRFFBTEN5QVlRUUZxSVJnZ0RFRUlhaUVISUFZZ1VVRUNkR29oQmlBTVFROXFJQTlKRFFBTERBRUxJQThnRDBFRGRpSUhJQ3NnQnlBclNSc2lFbTVCZUhFaEVTQVBRWGh4SVFkQkFDRUlJQW9oQmdOQVFUQVFGQ0lNUlEwRUlBd2dSaEFZSWlNMkFnQWdJMFVFUUNBZkVDQWdEQkFRUVFBTUJnc2dEQ0FHTmdJb0lBd2dFRFlDSkNBTUlBNDJBaUFnRENBVE5nSWNJQXhCQURZQ0dDQU1JQUUyQWhRZ0RFRUFOZ0lRSUF3Z0dEWUNEQ0FNSUFFMkFnZ2dEQ0FUTmdJRUlBd2dCeUFJSUJGc2F5QVJJQWhCQVdvaUNDQVNSaHNpSXpZQ0xDQWZRUXdnREJBdElBWWdFQ0FqYkVFQ2RHb2hCaUFJSUJKSERRQUxJQjhRSUFzQ1FDQUhJQTlQRFFBZ0hFRWdhaUlCSUFZZ0VDQVBJQWRySWhnUU95QUJFQ0lnRGtVTkFDQWNLQUlnSWlNZ0hrRUZkRUVCSUJnZ0dFRUJUUnNpRWtFQ2RHb2dJRUVGZEd0cVFTQnJJUjRnRWtFRGNTRWdJQkpCZkhFaERDQkJJQkpCQVd0c0lTRkJBQ0VJQTBBZ0l5QUlRUVYwYWlFVFFRQWhCd0pBQWtBZ0dFRUVTUTBBSUI0Z0JpQUlRUUowSWhGcUlnRWdCaUFSSUNGcWFpSVJJQUVnRVVrYlN3UkFJQ01nQVNBUklBRWdFVXNiUVFScVNRMEJDeUFJL1JFaGdRSDlEQUFBQUFBQkFBQUFBZ0FBQUFNQUFBQWhnQUZCQUNFQkEwQWdCaUNBQVNDRUFmMjFBU0NCQWYydUFTS0NBZjBiQUVFQ2RHb2dFeUFCUVFKMGF2MEFBZ0FpZ3dIOUh3QTRBZ0FnQmlDQ0FmMGJBVUVDZEdvZ2d3SDlId0U0QWdBZ0JpQ0NBZjBiQWtFQ2RHb2dnd0g5SHdJNEFnQWdCaUNDQWYwYkEwRUNkR29nZ3dIOUh3TTRBZ0FnZ0FIOURBUUFBQUFFQUFBQUJBQUFBQVFBQUFEOXJnRWhnQUVnQVVFRWFpSUJJQXhIRFFBTElBd2lCeUFTUmcwQkMwRUFJUkVnQnlFQklDQUVRQU5BSUFZZ0FTQVFiQ0FJYWtFQ2RHb2dFeUFCUVFKMGFpb0NBRGdDQUNBQlFRRnFJUUVnRVVFQmFpSVJJQ0JIRFFBTEN5QUhJQkpyUVh4TERRQURRQ0FHSUFFZ0VHd2dDR3BCQW5ScUlCTWdBVUVDZEdvcUFnQTRBZ0FnQmlBQlFRRnFJZ2NnRUd3Z0NHcEJBblJxSUJNZ0IwRUNkR29xQWdBNEFnQWdCaUFCUVFKcUlnY2dFR3dnQ0dwQkFuUnFJQk1nQjBFQ2RHb3FBZ0E0QWdBZ0JpQUJRUU5xSWdjZ0VHd2dDR3BCQW5ScUlCTWdCMEVDZEdvcUFnQTRBZ0FnR0NBQlFRUnFJZ0ZIRFFBTEN5QUlRUUZxSWdnZ0RrY05BQXNMSUJ3Z0R5QWNLQUlJSWd4ckloTTJBZ1FnRlNnQ25BRWhBU0FjUVFBMkFoQWdIQ0FNTmdJVUlCeEJBRFlDR0NBY0lCTTJBaHdnSENBQlFRSnZJaGcyQWd3Q1FDQmFSU0FPUVE5TGNVVUVRQ0FLSVFFZ0RrRUlTUTBCSUE5QmZuRWhJU0FQUVFGeElTSWdFMEYrY1NFb0lCTkJBWEVoSnlBTVFYNXhJVEFnREVFQmNTRXRJQ2tnSkVGL2Myb2hJeUFjS0FJQUloSWdHRUVGZENJSGFpRWdJQklnQjJ0QklHb2hIaUFNSUJCc1FRSjBJU29nRGlFSUEwQkJBQ0VHUVFBaEJ3SkFBa0FDUUNBTURnSUNBUUFMQTBBZ0lDQUdRUVowYWlJUklBRWdCaUFRYkVFQ2RHb2lKZjBBQWdEOUN3SUFJQkVnSmYwQUFoRDlDd0lRSUNBZ0JrRUJjaUlSUVFaMGFpSWxJQUVnRUNBUmJFRUNkR29pRWYwQUFoRDlDd0lRSUNVZ0VmMEFBZ0Q5Q3dJQUlBWkJBbW9oQmlBSFFRSnFJZ2NnTUVjTkFBc0xJQzFGRFFBZ0lDQUdRUVowYWlJSElBRWdCaUFRYkVFQ2RHb2lCdjBBQWdEOUN3SUFJQWNnQnYwQUFoRDlDd0lRQ3dKQUlBd2dEMFlOQUNBQklDcHFJUWRCQUNFR1FRQWhFU0FNSUNOSEJFQURRQ0FlSUFaQkJuUnFJaVVnQnlBR0lCQnNRUUowYWlJcy9RQUNBUDBMQWdBZ0pTQXMvUUFDRVAwTEFoQWdIaUFHUVFGeUlpVkJCblJxSWl3Z0J5QVFJQ1ZzUVFKMGFpSWwvUUFDRVAwTEFoQWdMQ0FsL1FBQ0FQMExBZ0FnQmtFQ2FpRUdJQkZCQW1vaUVTQW9SdzBBQ3dzZ0owVU5BQ0FlSUFaQkJuUnFJaEVnQnlBR0lCQnNRUUowYWlJSC9RQUNBUDBMQWdBZ0VTQUgvUUFDRVAwTEFoQUxJQndRSWdKQUlBOUZEUUJCQUNFR1FRQWhCeUFqQkVBRFFDQUJJQVlnRUd4QkFuUnFJaEVnRWlBR1FRVjBhaUlsL1FBQ0FQMExBZ0FnRVNBbC9RQUNFUDBMQWhBZ0FTQUdRUUZ5SWhFZ0VHeEJBblJxSWlVZ0VpQVJRUVYwYWlJUi9RQUNFUDBMQWhBZ0pTQVIvUUFDQVAwTEFnQWdCa0VDYWlFR0lBZEJBbW9pQnlBaFJ3MEFDd3NnSWtVTkFDQUJJQVlnRUd4QkFuUnFJZ2NnRWlBR1FRVjBhaUlHL1FBQ0FQMExBZ0FnQnlBRy9RQUNFUDBMQWhBTElBRkJJR29oQVNBSVFRaHJJZ2hCQjBzTkFBc01BUXRCQVNBT1FRTjJJZ0VnUnlBQklFZEpHeUlJSUFoQkFVMGJJUkVnRGlBSWJrRjRjU0VTSUE1QmVIRWhJRUVBSVFjZ0NpRUJBMEJCTUJBVUlnWkZEUVFnQmlCR0VCZ2lIallDQUNBZVJRUkFJQjhRSUNBR0VCQkJBQXdHQ3lBR0lBRTJBaWdnQmlBUU5nSWtJQVlnRHpZQ0lDQUdJQk0yQWh3Z0JrRUFOZ0lZSUFZZ0REWUNGQ0FHUVFBMkFoQWdCaUFZTmdJTUlBWWdERFlDQ0NBR0lCTTJBZ1FnQmlBZ0lBY2dFbXhySUJJZ0IwRUJhaUlISUFoR0d5SWVOZ0lzSUI5QkRTQUdFQzBnQVNBZVFRSjBhaUVCSUFjZ0VVY05BQXNnSHhBZ0N3SkFJQTVCQjNFaUVrVU5BQ0FZUVFWMElTQWdIQ2dDQUNFSUFrQWdERVVOQUNBSUlDQnFJUkVnRWtFQ2RDRVlRUUFoQmlBTVFRRkhCRUFnREVGK2NTRWVRUUFoQndOQUlCRWdCa0VHZEdvZ0FTQUdJQkJzUVFKMGFpQVlFQklhSUJFZ0JrRUJjaUlqUVFaMGFpQUJJQkFnSTJ4QkFuUnFJQmdRRWhvZ0JrRUNhaUVHSUFkQkFtb2lCeUFlUncwQUN3c2dERUVCY1VVTkFDQVJJQVpCQm5ScUlBRWdCaUFRYkVFQ2RHb2dHQkFTR2dzQ1FDQU1JQTlHRFFBZ0NDQWdhMEVnYWlFSElBRWdEQ0FRYkVFQ2RHb2hFU0FTUVFKMElSaEJBQ0VHSUF3Z0tTQWtRWDl6YWtjRVFDQVRRWDV4SVNCQkFDRU1BMEFnQnlBR1FRWjBhaUFSSUFZZ0VHeEJBblJxSUJnUUVob2dCeUFHUVFGeUloNUJCblJxSUJFZ0VDQWViRUVDZEdvZ0dCQVNHaUFHUVFKcUlRWWdERUVDYWlJTUlDQkhEUUFMQ3lBVFFRRnhSUTBBSUFjZ0JrRUdkR29nRVNBR0lCQnNRUUowYWlBWUVCSWFDeUFjRUNJZ0QwVU5BQ0FTUVFKMElRZEJBQ0VHSUNSQkFXb2dLVWNFUUNBUFFYNXhJUXhCQUNFUkEwQWdBU0FHSUJCc1FRSjBhaUFJSUFaQkJYUnFJQWNRRWhvZ0FTQUdRUUZ5SWhNZ0VHeEJBblJxSUFnZ0UwRUZkR29nQnhBU0dpQUdRUUpxSVFZZ0VVRUNhaUlSSUF4SERRQUxDeUFQUVFGeFJRMEFJQUVnQmlBUWJFRUNkR29nQ0NBR1FRVjBhaUFIRUJJYUN5QVZRWmdCYWlFVklCWkJBV3NpRmcwQUMwRUJEQUlMUVFFaEJ5QUpLQUljSWd3Z0NFR1lBV3hxSWlOQm1BRnJJaThvQWdBZ0kwR1FBV3NvQWdCR0RRSWdJMEdVQVdzaVBTZ0NBQ0FqUVl3QmF5Z0NBRVlOQWlBTUtBSUVJUThnRENnQ0RDRVdJQXdvQWdBaEVDQU1LQUlJSVJNZ0NTZ0NSQ0VTSUFrb0FrQWhFU0FKS0FJOElSb2dDU2dDT0NFZklBa2dDQkJjSWg1RkJFQkJBQ0VIREFNTElBaEJBVVlFUUNBZUlDTkJFR3NvQWdBaUFTQXZLQUlBSWdacklDTkJER3NvQWdBZ1BTZ0NBQ0lLYXlBalFRaHJLQUlBSWdnZ0Jtc2dJMEVFYXlnQ0FDQUtheUFKS0FJMFFRRWdDQ0FCYXhBZUlCNFFJd3dEQzBFQUlRWUNRQUpBSUFoQkFXc2lDa0VFU1FSQUlBb2hCeUFNSVFFTUFRc2dDa0VEY1NFSElBd2dDa0Y4Y1NJVlFaZ0JiR29oQVFOQUlJQUJJQXdnRGtHWUFXeHFJZ1pCNkFScUlBWkIwQU5xSUFaQnVBSnFJQWI5Q1FLZ0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBR1FlQUVhaUFHUWNnRGFpQUdRYkFDYWlBRy9Ra0NtQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlzUUg5dVFFZ0JrSHNCR29nQmtIVUEyb2dCa0c4QW1vZ0J2MEpBcVFCL1ZZQ0FBSDlWZ0lBQXYxV0FnQURJQVpCNUFScUlBWkJ6QU5xSUFaQnRBSnFJQWI5Q1FLY0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8yeEFmMjVBU0dBQVNBT1FRUnFJZzRnRlVjTkFBc2dnQUVnZ0FFZ2dBSDlEUWdKQ2dzTURRNFBBQUVDQXdBQkFnUDl1UUVpZ0FFZ2dBRWdnQUg5RFFRRkJnY0FBUUlEQUFFQ0F3QUJBZ1A5dVFIOUd3QWhCaUFLSUJWR0RRRUxBMEFnQmlBQktBS2dBU0FCS0FLWUFXc2lDaUFHSUFwTEd5SUdJQUVvQXFRQklBRW9BcHdCYXlJS0lBWWdDa3NiSVFZZ0FVR1lBV29oQVNBSFFRRnJJZ2NOQUFzTEFrQWdCa0dBZ0lEQUFFOE5BQ0FjSUFaQkJYUVFHQ0loTmdJZ0lDRkZEUUFnSENBaE5nSUFBa0FnQ0FSQUlCWWdEMnNoQ2lBVElCQnJJUVlnSVVFZ2FpRStJQWl0SVljQklCS3RJWW9CSUJHdElZc0JJQnF0SVlnQklCK3RJWXdCSUFrb0FoUWlRcTBoalFGQ0FTR0dBUU5BSUJ3Z0NqWUNDQ0FjSUFZMkFpZ2dEQ2dDcEFFaEJ5QU1LQUtnQVNFSUlBd29BcHdCSVFFZ0hDQU1LQUtZQVNJVlFRSnZJaUkyQWl3Z0hDQUJRUUp2SWo4MkFnd2dIQ0FJSUJWcklpQWdCbXNpS0RZQ0pDQWNJQWNnQVdzaUV5QUtheUk0TmdJRUlCOGlGaUVJSUJvaUFTRU9JQkVpQnlFWUlCSWlGU0VQQWtBZ2hnRWdqUUZSRFFBZ1FpQ0dBYWRySVJCQkFDRU9RUUFoQ0NBV0JFQkNmeUFRclNLSkFZWkNmNFVnakFGOElJa0JpS2NoQ0FzZ0dnUkFRbjhnRUswaWlRR0dRbitGSUlnQmZDQ0pBWWluSVE0TFFRQWhGVUVBSVFjZ0VRUkFRbjhnRUswaWlRR0dRbitGSUlzQmZDQ0pBWWluSVFjTElCSUVRRUovSUJDdElva0Joa0ovaFNDS0FYd2dpUUdJcHlFVkMwRUFJUmhCQUNFV1FRRWdFRUVCYTNRaUd5QWZTUVJBSUI4Z0cydXRRbjhnRUswaWlRR0dRbitGZkNDSkFZaW5JUllMSUJFZ0cwc0VRQ0FSSUJ0cnJVSi9JQkN0SW9rQmhrSi9oWHdnaVFHSXB5RVlDMEVBSVE5QkFDRUJJQm9nRzBzRVFDQWFJQnRyclVKL0lCQ3RJb2tCaGtKL2hYd2dpUUdJcHlFQkN5QVNJQnRORFFBZ0VpQWJhNjFDZnlBUXJTS0pBWVpDZjRWOElJa0JpS2NoRHd0QmZ5QVlJQXdvQXJRQkloQnJJaHRCQUNBWUlCdFBHeUlZUVFScUloc2dHQ0FiU3hzaUdDQW9JQmdnS0VrYklpMUJmeUFISUF3b0F0Z0JJaGhySWh0QkFDQUhJQnRQR3lJSFFRUnFJaHNnQnlBYlN4c2lCeUFHSUFZZ0Iwc2JJaXNnSWh0QkFYUWlCeUFySUMwZ0lodEJBWFJCQVhJaUd5QUhJQnRMR3lJb0lDQkpJUlFnRmlBUWF5SUhRUUFnQnlBV1RSc2lCMEVFYXlJV1FRQWdCeUFXVHhzaUp5QUlJQmhySWdkQkFDQUhJQWhOR3lJSFFRUnJJZ2hCQUNBSElBaFBHeUl3SUNJYlFRRjBJaGdnTUNBbklDSWJRUUYwUVFGeUlpUkpJU2tnRGlBTUtBSzRBU0lXYXlJSFFRQWdCeUFPVFJzaUIwRUVheUlJUVFBZ0J5QUlUeHNpQ0NFUUlBRWdEQ2dDM0FFaURtc2lCMEVBSUFFZ0IwOGJJZ0ZCQkdzaUIwRUFJQUVnQjA4YklnRWhCMEYvSUJVZ0Ztc2lGa0VBSUJVZ0ZrOGJJaFZCQkdvaUZpQVZJQlpMR3lJVklBb2dDaUFWU3hzaUZpRVZRWDhnRHlBT2F5SU9RUUFnRGlBUFRSc2lEa0VFYWlJUElBNGdEMHNiSWc0Z09DQU9JRGhKR3lJYklROGdQd1JBSUFFaEVDQVdJUThnR3lFVklBZ2hCd3NnS0NBZ0lCUWJJU2dnR0NBa0lDa2JJUmdnSENBdE5nSThJQndnSnpZQ09DQWNJQ3MyQWpRZ0hDQXdOZ0l3QWtBZ0UwRUlTUVJBUVFjaEJrRUFJUTRNQVFzZ1BpQWlRUVYwSWc1cklDZEJCblJxSVRnZ0RpQWhhaUF3UVFaMGFpRVVJQVlnTFdvaExTQUdJQ2RxSVNjZ0NpQWJhaUVrSUFFZ0Ntb2hLU0FoSUJoQkJYUnFJU3BCQUNFT0EwQUNRQUpBSUE0Z0Zra2dEa0VIY2lJR0lBaFBjUTBBSUE0Z0pFa2dCaUFwVDNFTkFDQU9RUWhxSVE0TUFRdEJDQ0FUSUE1cklnWWdCa0VJVHhzaEpVRUFJUVlEUUNBZUlEQWdCaUFPYWlJaUlDc2dJa0VCYWlJc0lCUWdCa0VDZENJdWFrRVFRUUFRSGlBZUlDY2dJaUF0SUN3Z0xpQTRha0VRUVFBUUhpQUdRUUZxSWdZZ0pVY05BQXNnSEVFZ2FoQWlJQjRnR0NBT0lDZ2dEa0VJYWlJT0lDcEJDRUVCUVFBUUprVU5CUXNnRGtFSGNpSUdJQk5KRFFBTEN3SkFJQTRnRTA4TkFDQU9JQlpKSUFZZ0NFOXhSUVJBSUE0Z0NpQWJhazhOQVNBR0lBRWdDbXBKRFFFTElCeEJJR29oQmtFQUlTSWdFeUFPYXlJd0JFQURRQ0FlSUFZb0FoQWlMU0FPSUNKcUlpY2dCaWdDRkNBblFRRnFJaXNnSWtFQ2RDSTRJQVlvQWdBZ0JpZ0NERUVGZEdvZ0xVRUdkR3BxUVJCQkFCQWVJQjRnQmlnQ0dDSXRJQVlvQWdnaUZHb2dKeUFHS0FJY0lCUnFJQ3NnQmlnQ0FDQUdLQUlNUVFWMGF5QXRRUVowYWlBNGFrRWdha0VRUVFBUUhpQWlRUUZxSWlJZ01FY05BQXNMSUFZUUlpQWVJQmdnRGlBb0lCTWdJU0FZUVFWMGFrRUlRUUZCQUJBbVJRMERDeUFjSUJzMkFod2dIQ0FCTmdJWUlCd2dGallDRkNBY0lBZzJBaEFnR0NBb1NRUkFJQlZCQVhRaUJpQVBRUUYwUVFGeUloVWdCaUFWU3hzaUJpQVRJQVlnRTBrYklRWWdQaUEvUVFWMEloVnJJQUZCQm5ScUlRNGdGU0FoYWlBSVFRWjBhaUVWSUFvZ0cyb2hEeUFCSUFwcUlRb2dJU0FRUVFGMElnRWdCMEVCZEVFQmNpSUhJQUVnQjBrYklnZEJCWFJxSVJBRFFDQWVJQmdnQ0VFSUlDZ2dHR3NpQVNBQlFRaFBHeUFZYWlJQklCWWdGVUVCUVJBUUhpQWVJQmdnQ2lBQklBOGdEa0VCUVJBUUhpQWNFQ0lnSGlBWUlBY2dBU0FHSUJCQkFVRUlRUUFRSmtVTkJDQVlRUWhxSWhnZ0tFa05BQXNMSUF4Qm1BRnFJUXdnSUNFR0lCTWhDaUNHQVVJQmZDS0dBU0NIQVZJTkFBc0xRUUVoQnlBZUlDTkJFR3NvQWdBaUFTQXZLQUlBSWdacklDTkJER3NvQWdBZ1BTZ0NBQ0lLYXlBalFRaHJLQUlBSWdnZ0Jtc2dJMEVFYXlnQ0FDQUtheUFKS0FJMFFRRWdDQ0FCYXhBZUlCNFFJeUFoRUJBTUJBc2dIaEFqSUNFUUVFRUFJUWNNQXdzZ0hoQWpRUUFoQnd3Q0N5QWZFQ0JCQUFzaEJ5QWNLQUlnRUJBTElCeEJRR3NrQUNBSERRQU1CQXNnSFVHNENHb2hIU0FOUVRScUlRMGdDVUhNQUdvaENTQUxRUUZxSWdzZ0Z5Z0NFRWtOQUFzZ0dTZ0NJQ0VkSUJrb0FoUW9BZ0FoRndzQ1FDQWRLQUlRSWdsRkRRQWdHU2dDUkEwQUlCY29BaFFpRFNnQ0hDRUJBa0FDUUFKQUlCa29Ba0FpQmdSQUlCY29BaEFpQzBFRFNRMENBa0FnRFNnQ0dDSUhJQTBvQW1SR0JFQWdCeUFOS0FLd0FVWU5BUXNnTTBFQlFkVEtBRUVBRUE4TUJ3c0NRQ0FaS0FJWUtBSVlJZ29vQWlRaUNDQUtLQUpZUncwQUlBZ2dDaWdDakFGSERRQWdBU0FIUVpnQmJDSUthaUlCUVl3QmF5Z0NBQ0FCUVpRQmF5Z0NBR3NnQVVHUUFXc29BZ0FnQVVHWUFXc29BZ0JyYkNJQklBMG9BbWdnQ21vaUIwR01BV3NvQWdBZ0IwR1VBV3NvQWdCcklBZEJrQUZyS0FJQUlBZEJtQUZyS0FJQWEyeEhEUUFnRFNnQ3RBRWdDbW9pQjBHTUFXc29BZ0FnQjBHVUFXc29BZ0JySUFkQmtBRnJLQUlBSUFkQm1BRnJLQUlBYTJ3Z0FVWU5BZ3NnTTBFQlFkVEtBRUVBRUE4TUJnc2dGeWdDRUNJTFFRTkpEUUVDUUNBWktBSVlLQUlZSWdjb0FpUWlDaUFIS0FKWVJ3MEFJQW9nQnlnQ2pBRWlDRWNOQUNBQklBcEJtQUZzSWdkcUlnRW9BcFFCSUFFb0Fvd0JheUFCS0FLUUFTQUJLQUtJQVd0c0lnRWdCeUFOS0FKb2FpSUhLQUtVQVNBSEtBS01BV3NnQnlnQ2tBRWdCeWdDaUFGcmJFY05BQ0FOS0FLMEFTQUlRWmdCYkdvaUJ5Z0NsQUVnQnlnQ2pBRnJJQWNvQXBBQklBY29Bb2dCYTJ3Z0FVWU5BUXNnTTBFQlFkVEtBRUVBRUE4TUJRc2dDVUVDUmdSQUlCMG9BdWdyUlEwRElBdEJBblFRRkNJTFJRMEZJQmNvQWhBaUNFVU5BaUFaS0FKQUJFQkJBQ0VYQWtBZ0NFRU1TUVJBUVFBaEJnd0JDeUFOUVNScUlRb0NRQ0FMSUEwZ0NFSE1BR3hxUVNSclR3MEFJQW9nQ3lBSVFRSjBhazhOQUVFQUlRWU1BUXNnRFVHSUFtb2hEQ0FOUWJ3QmFpRVZJQTFCOEFCcUlRNGdEU0FJUVh4eElnWkJ6QUJzYWlFTlFRQWhDUU5BSUFzZ0NVRUNkR29nRENBSlFjd0FiQ0lIYWlBSElCVnFJQWNnRG1vZ0J5QUthdjBKQWdEOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlBbEJCR29pQ1NBR1J3MEFDeUFHSUFoR0RRUUxBa0FnQ0VFRGNTSUhSUVJBSUFZaENRd0JDeUFHSVFrRFFDQUxJQWxCQW5ScUlBMG9BaVEyQWdBZ0NVRUJhaUVKSUExQnpBQnFJUTBnRjBFQmFpSVhJQWRIRFFBTEN5QUdJQWhyUVh4TERRTWdDMEVNYWlFR0lBdEJDR29oQ2lBTFFRUnFJUXdEUUNBTElBbEJBblFpQjJvZ0RTZ0NKRFlDQUNBSElBeHFJQTBvQW5BMkFnQWdCeUFLYWlBTktBSzhBVFlDQUNBR0lBZHFJQTBvQW9nQ05nSUFJQTFCc0FKcUlRMGdDVUVFYWlJSklBaEhEUUFMREFNTFFRQWhGd0pBSUFoQkRFa0VRRUVBSVFZTUFRc2dEVUUwYWlFS0FrQWdDeUFOSUFoQnpBQnNha0VVYTA4TkFDQUtJQXNnQ0VFQ2RHcFBEUUJCQUNFR0RBRUxJQTFCbUFKcUlRd2dEVUhNQVdvaEZTQU5RWUFCYWlFT0lBMGdDRUY4Y1NJR1Fjd0FiR29oRFVFQUlRa0RRQ0FMSUFsQkFuUnFJQXdnQ1VITUFHd2lCMm9nQnlBVmFpQUhJQTVxSUFjZ0NtcjlDUUlBL1ZZQ0FBSDlWZ0lBQXYxV0FnQUQvUXNDQUNBSlFRUnFJZ2tnQmtjTkFBc2dCaUFJUmcwREN3SkFJQWhCQTNFaUIwVUVRQ0FHSVFrTUFRc2dCaUVKQTBBZ0N5QUpRUUowYWlBTktBSTBOZ0lBSUFsQkFXb2hDU0FOUWN3QWFpRU5JQmRCQVdvaUZ5QUhSdzBBQ3dzZ0JpQUlhMEY4U3cwQ0lBdEJER29oQmlBTFFRaHFJUW9nQzBFRWFpRU1BMEFnQ3lBSlFRSjBJZ2RxSUEwb0FqUTJBZ0FnQnlBTWFpQU5LQUtBQVRZQ0FDQUhJQXBxSUEwb0Fzd0JOZ0lBSUFZZ0Iyb2dEU2dDbUFJMkFnQWdEVUd3QW1vaERTQUpRUVJxSWdrZ0NFY05BQXNNQWdzZ0hTZ0MwQ3NvQWhSQkFVWUVRQ0FHQkVBZ0RTZ0NKQ0FOS0FKd0lBMG9BcndCSUFFUVh3d0VDeUFOS0FJMElBMG9Bb0FCSUEwb0Fzd0JJQUVRWHd3REN5QUdCRUFnRFNnQ0pDQU5LQUp3SUEwb0Fyd0JJQUVRWGd3REN5QU5LQUkwSUEwb0FvQUJJQTBvQXN3QklBRVFYZ3dDQ3lCQUlBczJBZ0FnTTBFQlFaSExBQ0JBRUE4TUFRc2dHU2dDR0NnQ0dDZ0NJQm9DZnlBZEtBTG9LeUVIUVFBaERrRUFJQWhCQTNRUUZDSU5SUTBBR2dKQUlBRkZEUUFnQ0VVTkFDQU5JQWhCQW5ScUlSTWdDRUY4Y1NFUElBaEJBM0VoRENBSVFRRnJJUkFEUUVFQUlSZEJBQ0VKSUJCQkEwOEVRQU5BSUEwZ0YwRUNkQ0lHYWlBR0lBdHFLQUlBS2dJQU9BSUFJQTBnQmtFRWNpSUthaUFLSUF0cUtBSUFLZ0lBT0FJQUlBMGdCa0VJY2lJS2FpQUtJQXRxS0FJQUtnSUFPQUlBSUEwZ0JrRU1jaUlHYWlBR0lBdHFLQUlBS2dJQU9BSUFJQmRCQkdvaEZ5QUpRUVJxSWdrZ0QwY05BQXNMUVFBaENpQU1CRUFEUUNBTklCZEJBblFpQm1vZ0JpQUxhaWdDQUNvQ0FEZ0NBQ0FYUVFGcUlSY2dDa0VCYWlJS0lBeEhEUUFMQzBFQUlRWWdCeUVYQTBBZ0V5QUdRUUowSWhKcUlnbEJBRFlDQUVNQUFBQUFJWTRCUVFBaENrRUFJUllnRUVFQ1N3UkFBMEFnQ1NBWEtnSUFJQTBnQ2tFQ2RHb2lGU29DQUpRZ2pnR1NJbzRCT0FJQUlBa2dGeW9DQkNBVktnSUVsQ0NPQVpJaWpnRTRBZ0FnQ1NBWEtnSUlJQlVxQWdpVUlJNEJraUtPQVRnQ0FDQUpJQmNxQWd3Z0ZTb0NESlFnamdHU0lvNEJPQUlBSUFwQkJHb2hDaUFYUVJCcUlSY2dGa0VFYWlJV0lBOUhEUUFMQzBFQUlSVWdEQVJBQTBBZ0NTQVhLZ0lBSUEwZ0NrRUNkR29xQWdDVUlJNEJraUtPQVRnQ0FDQUtRUUZxSVFvZ0YwRUVhaUVYSUJWQkFXb2lGU0FNUncwQUN3c2dDeUFTYWlJS0lBb29BZ0FpQ2tFRWFqWUNBQ0FLSUk0Qk9BSUFJQVpCQVdvaUJpQUlSdzBBQ3lBT1FRRnFJZzRnQVVjTkFBc0xJQTBRRUVFQkN5RjdJQXNRRUNCN1JRMENDeUFaS0FJVUtBSUFJaFlvQWhCRkJFQkJBU0V4REFJTElCa29BaUFvQXRBckloZEJ1QWhxSVJNZ0YwRzBDR29oRWlBWktBSkVJUkFnRmlnQ0ZDRUhJQmtvQWhnb0FoZ2hDa0VBSVFnRFFBSkFJQkFFUUNBUUlBaEJBblJxS0FJQVJRMEJDeUFIS0FJY0lnRWdDaWdDSkVHWUFXeHFJUXNDZnlBWktBSkFSUVJBSUFzb0FwUUJJQXNvQW93QmF5RUdJQXNvQXBBQklBc29Bb2dCYXlFQlFRQWhERUUwREFFTElBRWdCeWdDR0VHWUFXeHFJZ1pCa0FGcktBSUFJQXNvQWdnZ0N5Z0NBR3NpQVNBR1FaZ0JheWdDQUdwcklRd2dDeWdDRENBTEtBSUVheUVHUVNRTElRa2dDaWdDR0NFTEFuOGdDaWdDSUFSQVFRRWdDMEVCYTNRaUMwRUJheUVkUVFBZ0Myc01BUXRCZnlBTGRFRi9jeUVkUVFBTElROGdBVVVOQUNBR1JRMEFJQWNnQ1dvb0FnQWhDU0FYS0FJVVFRRkdCRUFnRXlBSVFiZ0liQ0lMYWlFUklBc2dFbW9oR0NBQlFRRnhJUm9nQVVFQ2RDRXpJQUZCZkhFaURrRUNkQ0ViSUIzOUVTR0NBU0FQL1JFaGdBRkJBQ0VWSUFGQkJFa2hId05BQWtBQ1FBSkFJQjhOQUNBSklCRkpJQmdnQ1NBemFrbHhEUUFnQ1NBYmFpRU5JQmY5Q1FLMENDR0RBVUVBSVFzRFFDQUpJQXRCQW5ScUlpQWdnQUVnZ3dFZ0lQMEFBZ0Q5cmdFaWhBRWdnZ0g5dGdFZ2hBRWdnQUg5T2YxUy9Rc0NBQ0FMUVFScUlnc2dEa2NOQUFzZ0RpSUxJQUZHRFFJTUFRc2dDU0VOUVFBaEN3c2dDMEVCY2lFSklCb0VRQ0FOSUE4Z0Z5Z0N0QWdnRFNnQ0FHb2lDeUFkSUFzZ0hVZ2JJQXNnRDBnYk5nSUFJQTFCQkdvaERTQUpJUXNMSUFFZ0NVWU5BQU5BSUEwZ0R5QVhLQUswQ0NBTktBSUFhaUlKSUIwZ0NTQWRTQnNnQ1NBUFNCczJBZ0FnRFNBUElCY29BclFJSUEwb0FnUnFJZ2tnSFNBSklCMUlHeUFKSUE5SUd6WUNCQ0FOUVFocUlRMGdDMEVDYWlJTElBRkhEUUFMQ3lBTklBeEJBblJxSVFrZ0ZVRUJhaUlWSUFaSERRQUxEQUVMSUIyc0lZWUJJQStzSVljQlFRQWhGUU5BUVFBaEN3TkFJQWtDZnlBZElBa3FBZ0FpamdGREFBQUFUMTROQUJvZ0R5Q09BVU1BQUFEUFhRMEFHaUNIQVNBWE5BSzBDQUovSUk0QmtDS09BWXREQUFBQVQxMEVRQ0NPQWFnTUFRdEJnSUNBZ0hnTHJId2lpZ0VnaGdFZ2hnRWdpZ0ZWR3lDSEFTQ0tBVlVicHdzMkFnQWdDVUVFYWlFSklBdEJBV29pQ3lBQlJ3MEFDeUFKSUF4QkFuUnFJUWtnRlVFQmFpSVZJQVpIRFFBTEN5QUhRY3dBYWlFSElCZEJ1QWhxSVJjZ0NrRTBhaUVLUVFFaE1TQUlRUUZxSWdnZ0ZpZ0NFRWtOQUFzTUFRc2dCVUVCUVpvWlFRQVFEd3NnUUVFUWFpUUFJREZGQkVBZ1R4QXVJQUFnQUNnQ0NFR0FnQUp5TmdJSUlBVkJBVUh3MUFCQkFCQVBEQUVMQWtBZ0FrVU5BQUovSUFJaEIwRUFJUVlDUUNBQUtBTFFBU0lWUVFFUVZDSUJRWDlHRFFBZ0FTQURTdzBBUVFFZ0ZTZ0NHQ0lCS0FJUVJRMEJHaUFCS0FJWUlRZ2dGU2dDRkNnQ0FDZ0NGQ0VYQTBBZ0NDZ0NHQ0lCUVFkeElRSWdBVUVEZGlFRElCY29BaHdpQmlBSUtBSWtRWmdCYkdvaEFRSi9JQlVvQWtBRVFDQUdJQmNvQWhoQm1BRnNhaUlHUVpBQmF5Z0NBQ0FCS0FJSUlBRW9BZ0JySWdzZ0JrR1lBV3NvQWdCcWF5RU1JQUVvQWd3Z0FTZ0NCR3NoQ1VFa0RBRUxJQUVvQXBRQklBRW9Bb3dCYXlFSklBRW9BcEFCSUFFb0FvZ0JheUVMUVFBaERFRTBDeUFYYWlnQ0FDRUJBa0FDUUFKQUFrQUNRRUVFSUFNZ0FrRUFSMm9pQWlBQ1FRTkdHMEVCYXc0RUFRSUVBQVFMSUFsRkRRTWdDeUFNYWlFR0lBdEJBblFoQWlBSlFRUlBCRUFnQ1VGOGNTRUtRUUFoQ3dOQUlBY2dBU0FDRUJJaEJ5QUJJQVpCQW5RaUEyb2lEU0FEYWlJTUlBTnFJZzRnQTJvaEFTQUNJQWRxSUEwZ0FoQVNJQUpxSUF3Z0FoQVNJQUpxSUE0Z0FoQVNJQUpxSVFjZ0MwRUVhaUlMSUFwSERRQUxDMEVBSVFzZ0NVRURjU0lEUlEwREEwQWdCeUFCSUFJUUVpRUhJQUVnQmtFQ2RHb2hBU0FDSUFkcUlRY2dDMEVCYWlJTElBTkhEUUFMREFNTElBbEZJQXRGY2lFQ0lBZ29BaUJGRFFFZ0FnMENJQXRCQW5RaERpQUxRWHh4SWdOQkFuUWhEMEVBSVEwRFFBSkFBa0FDUUNBTFFRUkpEUUFnQVNBSElBdHFTU0FCSUE1cUlBZExjUTBBSUFNZ0Iyb2hmQ0FCSUE5cUlRWkJBQ0VLQTBBZ0J5QUthaUFCSUFwQkFuUnEvUUFDQVAwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwTkFBUUlEQUFBQUFBQUFBQUFBQUFBQVAxYUFBQUFJQXBCQkdvaUNpQURSdzBBQ3lCOElRY2dBeUlDSUF0R0RRSU1BUXNnQVNFR1FRQWhBZ3RCQUNFS0lBc2dBaUlCYTBFSGNTSVdCRUFEUUNBSElBWW9BZ0E2QUFBZ0FVRUJhaUVCSUFkQkFXb2hCeUFHUVFScUlRWWdDa0VCYWlJS0lCWkhEUUFMQ3lBQ0lBdHJRWGhMRFFBRFFDQUhJQVlvQWdBNkFBQWdCeUFHS0FJRU9nQUJJQWNnQmlnQ0NEb0FBaUFISUFZb0FndzZBQU1nQnlBR0tBSVFPZ0FFSUFjZ0JpZ0NGRG9BQlNBSElBWW9BaGc2QUFZZ0J5QUdLQUljT2dBSElBZEJDR29oQnlBR1FTQnFJUVlnQVVFSWFpSUJJQXRIRFFBTEN5QUdJQXhCQW5ScUlRRWdEVUVCYWlJTklBbEhEUUFMREFJTElBbEZJQXRGY2lFQ0lBZ29BaUFFUUNBQ0RRSWdDMEVDZENFT0lBdEJBWFFoRHlBTFFYeHhJZ05CQW5RaEZpQURRUUYwSVJCQkFDRU5BMEFDUUFKQUFrQWdDMEVFU1EwQUlBRWdCeUFQYWtrZ0FTQU9haUFIUzNFTkFDQUJJQlpxSVFZZ0J5QVFhaUY5UVFBaENnTkFJQWNnQ2tFQmRHb2dBU0FLUVFKMGF2MEFBZ0Q5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5RFFBQkJBVUlDUXdOQUFFQUFRQUJBQUg5V3dFQUFDQUtRUVJxSWdvZ0EwY05BQXNnZlNFSElBTWlBaUFMUmcwQ0RBRUxJQUVoQmtFQUlRSUxRUUFoQ2lBTElBSWlBV3RCQjNFaUV3UkFBMEFnQnlBR0tBSUFPd0VBSUFGQkFXb2hBU0FIUVFKcUlRY2dCa0VFYWlFR0lBcEJBV29pQ2lBVFJ3MEFDd3NnQWlBTGEwRjRTdzBBQTBBZ0J5QUdLQUlBT3dFQUlBY2dCaWdDQkRzQkFpQUhJQVlvQWdnN0FRUWdCeUFHS0FJTU93RUdJQWNnQmlnQ0VEc0JDQ0FISUFZb0FoUTdBUW9nQnlBR0tBSVlPd0VNSUFjZ0JpZ0NIRHNCRGlBSFFSQnFJUWNnQmtFZ2FpRUdJQUZCQ0dvaUFTQUxSdzBBQ3dzZ0JpQU1RUUowYWlFQklBMUJBV29pRFNBSlJ3MEFDd3dDQ3lBQ0RRRWdDMEVDZENFT0lBdEJBWFFoRHlBTFFYeHhJZ05CQW5RaEZpQURRUUYwSVJCQkFDRU5BMEFDUUFKQUFrQWdDMEVFU1EwQUlBRWdCeUFQYWtrZ0FTQU9haUFIUzNFTkFDQUJJQlpxSVFZZ0J5QVFhaUYrUVFBaENnTkFJQWNnQ2tFQmRHb2dBU0FLUVFKMGF2MEFBZ0Q5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5RFFBQkJBVUlDUXdOQUFFQUFRQUJBQUg5V3dFQUFDQUtRUVJxSWdvZ0EwY05BQXNnZmlFSElBTWlBaUFMUmcwQ0RBRUxJQUVoQmtFQUlRSUxRUUFoQ2lBTElBSWlBV3RCQjNFaUV3UkFBMEFnQnlBR0tBSUFPd0VBSUFGQkFXb2hBU0FIUVFKcUlRY2dCa0VFYWlFR0lBcEJBV29pQ2lBVFJ3MEFDd3NnQWlBTGEwRjRTdzBBQTBBZ0J5QUdLQUlBT3dFQUlBY2dCaWdDQkRzQkFpQUhJQVlvQWdnN0FRUWdCeUFHS0FJTU93RUdJQWNnQmlnQ0VEc0JDQ0FISUFZb0FoUTdBUW9nQnlBR0tBSVlPd0VNSUFjZ0JpZ0NIRHNCRGlBSFFSQnFJUWNnQmtFZ2FpRUdJQUZCQ0dvaUFTQUxSdzBBQ3dzZ0JpQU1RUUowYWlFQklBMUJBV29pRFNBSlJ3MEFDd3dCQ3lBQ0RRQWdDMEVDZENFT0lBdEJmSEVpQTBFQ2RDRVBRUUFoRFFOQUFrQUNRQUpBSUF0QkJFa05BQ0FCSUFjZ0MycEpJQUVnRG1vZ0IwdHhEUUFnQXlBSGFpRi9JQUVnRDJvaEJrRUFJUW9EUUNBSElBcHFJQUVnQ2tFQ2RHcjlBQUlBL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1EwQUJBZ01BQUFBQUFBQUFBQUFBQUFBL1ZvQUFBQWdDa0VFYWlJS0lBTkhEUUFMSUg4aEJ5QURJZ0lnQzBZTkFnd0JDeUFCSVFaQkFDRUNDMEVBSVFvZ0N5QUNJZ0ZyUVFkeEloWUVRQU5BSUFjZ0JpZ0NBRG9BQUNBQlFRRnFJUUVnQjBFQmFpRUhJQVpCQkdvaEJpQUtRUUZxSWdvZ0ZrY05BQXNMSUFJZ0MydEJlRXNOQUFOQUlBY2dCaWdDQURvQUFDQUhJQVlvQWdRNkFBRWdCeUFHS0FJSU9nQUNJQWNnQmlnQ0REb0FBeUFISUFZb0FoQTZBQVFnQnlBR0tBSVVPZ0FGSUFjZ0JpZ0NHRG9BQmlBSElBWW9BaHc2QUFjZ0IwRUlhaUVISUFaQklHb2hCaUFCUVFocUlnRWdDMGNOQUFzTElBWWdERUVDZEdvaEFTQU5RUUZxSWcwZ0NVY05BQXNMSUJkQnpBQnFJUmNnQ0VFMGFpRUlRUUVoQmlCeVFRRnFJbklnRlNnQ0dDZ0NFRWtOQUFzTElBWUxSUTBCSUU4b0F0d3JJZ0ZGRFFBZ0FSQVFJRTlDQURjQzNDc0xJQUFnQUMwQVJFSCtBWEU2QUVRZ0FDQUFLQUlJUWY5K2NUWUNDRUVCSVdjZ0JDa0RDQ0tHQVZBRWZrSUFCU0NHQVNBRUtRTTRmUXRRSUFBb0FnZ2lBVUhBQUVaeERRQWdBVUdBQWtZTkFDQUVJRTVCQ21wQkFpQUZFQnBCQWtjRVFDQUZRUUZCQWlBQUtBSzRBUnRCbGhKQkFCQVBJQUFvQXJnQlJTRm5EQUVMSUU1QkNtb2dUa0VNYWtFQ0VCRWdUaWdDRENJQlFaRC9BMFlOQUNBQlFkbi9BMFlFUUNBQVFZQUNOZ0lJSUFCQkFEWUN6QUVNQVFzZ0JDa0RDQ0tHQVZBRWZrSUFCU0NHQVNBRUtRTTRmUXRRQkVBZ0FFSEFBRFlDQ0NBRlFRSkJyRDlCQUJBUERBRUxRUUFoWnlBRlFRRkI3RDVCQUJBUEN5Qk9RUkJxSkFBZ1p3c0xBQ0FBQkVBZ0FCQVFDd3UwQVFFQmZ5QUFLQUlNUlFSQUlBSWdBQ2dDSkNBQkVRTUFEd3NDUUVFSUVCUWlBMFVOQUNBRElBSTJBZ1FnQXlBQk5nSUFRUWdRRkNJQlJRUkFJQU1RRUE4TElBRWdBellDQUNBQUlBQW9BZ1JCNUFCc0lnSTJBaWdEUUNBQUtBSVlJQUpLRFFBTElBRWdBQ2dDRkRZQ0JDQUFJQUUyQWhRZ0FDQUFLQUlZUVFGcU5nSVlJQUFvQWh3aUFVVU5BQ0FCS0FJQVFRQTJBZ2dnQUNBQktBSUVOZ0ljSUFBZ0FDZ0NJRUVCYXpZQ0lDQUJFQkFMQy9vQ0FRUi9Ba0FnQUVVTkFDQUFLQUtzS0NJQkJFQWdBQ2dDcUNnaUFnUkFRUUFoQVFOQUlBQW9BcXdvSUFGQkEzUnFLQUlBSWdNRVFDQURFQkFnQUNnQ3FDZ2hBZ3NnQVVFQmFpSUJJQUpKRFFBTElBQW9BcXdvSVFFTElBQkJBRFlDcUNnZ0FSQVFJQUJCQURZQ3JDZ0xJQUFvQXJRb0lnRUVRQ0FCRUJBZ0FFRUFOZ0swS0FzZ0FDZ0MwQ3NpQVFSQUlBRVFFQ0FBUVFBMkF0QXJDeUFBS0FMc0t5SUJCRUFnQVJBUUlBQkJBRFlDN0NzTElBQW9BdWdySWdFRVFDQUJFQkFnQUVFQU5nTG9Ld3NnQUNnQy9Dc2lBUVJBSUFFUUVDQUFRUUEyQW9Rc0lBQkNBRGNDL0NzTElBQW9BdkFySWdFRVFDQUFLQUwwS3lJREJIOUJBQ0VDQTBBZ0FTZ0NEQ0lFQkVBZ0JCQVFJQUZCQURZQ0RDQUFLQUwwS3lFREN5QUJRUlJxSVFFZ0FrRUJhaUlDSUFOSkRRQUxJQUFvQXZBckJTQUJDeEFRSUFCQkFEWUM4Q3NMSUFBb0F1UXJJZ0VFUUNBQkVCQWdBRUVBTmdMa0t3c2dBQ2dDM0NzaUFVVU5BQ0FCRUJBZ0FFSUFOd0xjS3dzTHlBY0NFWDhCZmlBQUtBSVFJZ2hCSUU4RVFDQUFLUU1JcHc4TEFrQWdBQ2dDRkNJRFFRUk9CRUFnQUNnQ0FDSUNRUU5yS0FJQUlRRWdBQ0FEUVFScklnTTJBaFFnQUNBQ1FRUnJOZ0lBREFFTElBTkJBRXdFUUF3QkN5QURRUUZ4SVEwZ0FDZ0NBQ0VDQWtBZ0EwRUJSZ1JBUVJnaEJBd0JDeUFEUWY3Ly8vOEhjU0VKUVJnaEJBTkFJQUFnQWtFQmF5SUdOZ0lBSUFJdEFBQWhEQ0FBSUFKQkFtc2lBallDQUNBQUlBTkJBV3MyQWhRZ0JpMEFBQ0VHSUFBZ0EwRUNheUlETmdJVUlBd2dCSFFnQVhJZ0JpQUVRUWhyZEhJaEFTQUVRUkJySVFRZ0JVRUNhaUlGSUFsSERRQUxDeUFOQkVBZ0FDQUNRUUZyTmdJQUlBSXRBQUFoRGlBQUlBTkJBV3MyQWhRZ0RpQUVkQ0FCY2lFQkMwRUFJUU1MSUFBb0FoZ2hBaUFBSUFGQi93RnhJZ2xCandGTE5nSVlJQUJCQjBFSUlBRkJnSUNBK0FkeFFZQ0FnUGdIUmh0QkNDQUNHeUlDUVFoQkIwRUlJQUZCZ0lEOEEzRkJnSUQ4QTBZYklBRkIvLy8vLzNoTkcyb2lCRUVJUVFkQkNDQUJRWUQrQVhGQmdQNEJSaHNnQVVFUWRrSC9BWEVpQlVHUEFVMGJhaUlHUVFoQkIwRUlJQUZCL3dCeFFmOEFSaHNnQVVFSWRrSC9BWEVpQjBHUEFVMGJJQWhxYWlJS05nSVFJQUFnQUNrRENDQUZJQUowSUFGQkdIWnlJQWNnQkhSeUlBa2dCblJ5clNBSXJZYUVJaEkzQXdnZ0NrRWZUUVJBQWtBZ0EwRUVUZ1JBSUFBb0FnQWlBa0VEYXlnQ0FDRUJJQUFnQTBFRWF6WUNGQ0FBSUFKQkJHczJBZ0FNQVFzZ0EwRUFUQVJBUVFBaEFRd0JDeUFEUVFGeElSQWdBQ2dDQUNFQ0FrQWdBMEVCUmdSQVFSZ2hCRUVBSVFFTUFRc2dBMEgrLy8vL0IzRWhCa0VZSVFSQkFDRUJRUUFoQlFOQUlBQWdBa0VCYXlJSE5nSUFJQUl0QUFBaER5QUFJQUpCQW1zaUFqWUNBQ0FBSUFOQkFXczJBaFFnQnkwQUFDRUhJQUFnQTBFQ2F5SUROZ0lVSUE4Z0JIUWdBWElnQnlBRVFRaHJkSEloQVNBRVFSQnJJUVFnQlVFQ2FpSUZJQVpIRFFBTEN5QVFSUTBBSUFBZ0FrRUJhellDQUNBQ0xRQUFJUkVnQUNBRFFRRnJOZ0lVSUJFZ0JIUWdBWEloQVFzZ0FDQUJRZjhCY1NJQ1FZOEJTellDR0NBQVFRaEJCMEVJSUFGQmdJQ0ErQWR4UVlDQWdQZ0hSaHNnQ1VHUEFVMGJJZ05CQ0VFSFFRZ2dBVUdBZ1B3RGNVR0FnUHdEUmhzZ0FVSC8vLy8vZUUwYmFpSUVRUWhCQjBFSUlBRkJnUDRCY1VHQS9nRkdHeUFCUVJCMlFmOEJjU0lGUVk4QlRSdHFJZ2hCQ0VFSFFRZ2dBVUgvQUhGQi93QkdHeUFCUVFoMlFmOEJjU0lKUVk4QlRSc2dDbXBxTmdJUUlBQWdCU0FEZENBQlFSaDJjaUFKSUFSMGNpQUNJQWgwY3EwZ0NxMkdJQktFSWhJM0F3Z0xJQktuQzhrVUFoMS9CbnNnQUNnQ0NDSUtJQUFvQWdScUlRZ0NRQ0FBS0FJTVJRUkFJQWhCQWtnTkFTQURRUUJNRFFFZ0FDZ0NBQ0lGSUFoQkJHc2lCa0VCZGlJTVFRSjBJZ2tnQVNBS1FRSjBhaUlISUFOQkFuUWlCR3BxUVFScVNTQUZJQXhCQTNScVFRaHFJZ0FnQjBFRWFrdHhJQVVnQVNBRWFpQUpha0VFYWtrZ0FVRUVhaUFBU1hGeUlSSWdDRUVFU1NJVUlBSkJBVWR5SVJVZ0FrRUJSaUFHUVFWTGNTRVdJQWhCL1AvLy93ZHhJUk1nQ0VFQmNTRVhJQXBCQVdvaER5QUlRUU54SVJFZ0FTQUZheUVZSUFVZ0NFRUNkR29oR1NBRklBaEJBV3NpQUVFQ2RHb2hHaUFNUVFGcUlodEJmSEVpRUVFQmRDRUxJQUlnQ214QkFuUWhIQ0FBUVFGMklBSnNRUUowSVIwRFFDQUJLQUlBSUFFZ0hHb29BZ0FpQ1VFQmFrRUJkV3NoQndKQUlCUUVRQ0FKSVFSQkFDRUdEQUVMUVFBaEJnSkFBbjlCQUNBV1JRMEFHa0VBSUJJTkFCb2dDZjBSSVNJZ0IvMFJJU0g5REFBQUFBQUNBQUFBQkFBQUFBWUFBQUFoSlVFQUlRQURRQ0FCSUFCQkFuUnEvUUFDQkNFa0lBRWdBQ0FQYWtFQ2RHcjlBQUlBSVNNZ0JTQUFRUU4wYWlJRUlDSDlXZ0lBQXlBRVFRaHFJQ1FnSXlBaUlDUDlEUXdORGc4UUVSSVRGQlVXRnhnWkdoc2lKUDJ1QWYwTUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQVAydUFVRUMvYXdCL2JFQklpTDlXZ0lBQUNBRVFSQnFJQ0w5V2dJQUFTQUVRUmhxSUNMOVdnSUFBaUFGSUNYOURBRUFBQUFCQUFBQUFRQUFBQUVBQUFEOVVDSW0vUnNBUVFKMGFpQWlJQ0VnSXYwTkRBME9EeEFSRWhNVUZSWVhHQmthRy8ydUFVRUIvYXdCSUNUOXJnRWlJZjFhQWdBQUlBVWdKdjBiQVVFQ2RHb2dJZjFhQWdBQklBVWdKdjBiQWtFQ2RHb2dJZjFhQWdBQ0lBVWdKdjBiQTBFQ2RHb2dJZjFhQWdBRElDWDlEQWdBQUFBSUFBQUFDQUFBQUFnQUFBRDlyZ0VoSlNBaUlTRWdJeUVpSUFCQkJHb2lBQ0FRUncwQUN5QWkvUnNESVFRZ0lmMGJBeUVISUJBZ0cwWU5BU0FMSVFZZ0JDRUpJQkFMSVFBRFFDQUJJQUJCQVdvaUNpQUNiRUVDZEdvb0FnQWhIaUFCSUFBZ0Qyb2dBbXhCQW5ScUtBSUFJUVFnQlNBR1FRSjBhaUlPSUFjMkFnQWdEaUFISUI0Z0JDQUpha0VDYWtFQ2RXc2lCMnBCQVhVZ0NXbzJBZ1FnQmtFQ2FpRUdJQUFnREVjaEh5QUVJUWtnQ2lFQUlCOE5BQXNNQVFzZ0N5RUdDeUFGSUFaQkFuUnFJQWMyQWdCQmZDRUFJQmNFZnlBYUlBRWdIV29vQWdBZ0JFRUJha0VCZFdzaUFEWUNBQ0FBSUFkcVFRRjFJUWRCZUFWQmZBc2dHV29nQkNBSGFqWUNBRUVBSVFaQkFDRUFRUUFoQkFKQUlCVWdHQ0FOUVFKMGFrRVFTWEpGQkVBRFFDQUJJQUJCQW5RaUJHb2dCQ0FGYXYwQUFnRDlDd0lBSUFCQkJHb2lBQ0FUUncwQUN5QVRJZ1FnQ0VZTkFRc2dCQ0VBSUJFRVFBTkFJQUVnQUNBQ2JFRUNkR29nQlNBQVFRSjBhaWdDQURZQ0FDQUFRUUZxSVFBZ0JrRUJhaUlHSUJGSERRQUxDeUFFSUFoclFYeExEUUFEUUNBQklBQWdBbXhCQW5ScUlBVWdBRUVDZEdvb0FnQTJBZ0FnQVNBQVFRRnFJZ1FnQW14QkFuUnFJQVVnQkVFQ2RHb29BZ0EyQWdBZ0FTQUFRUUpxSWdRZ0FteEJBblJxSUFVZ0JFRUNkR29vQWdBMkFnQWdBU0FBUVFOcUlnUWdBbXhCQW5ScUlBVWdCRUVDZEdvb0FnQTJBZ0FnQUVFRWFpSUFJQWhIRFFBTEN5QUJRUVJxSVFFZ0RVRUJhaUlOSUFOSERRQUxEQUVMQWtBQ1FBSkFJQWhCQVdzT0FnQUJBZ3NnQTBFQVRBMENRUUFoQWdKQUlBTkJCRWtFUUNBQklRQU1BUXNnQVNBRFFmei8vLzhIY1NJQ1FRSjBhaUVBQTBBZ0FTQUdRUUowYWlJRUlBVDlBQUlBSWlIOUd3QkJBbTM5RVNBaC9Sc0JRUUp0L1J3QklDSDlHd0pCQW0zOUhBSWdJZjBiQTBFQ2JmMGNBLzBMQWdBZ0JrRUVhaUlHSUFKSERRQUxJQUlnQTBZTkF3c0RRQ0FBSUFBb0FnQkJBbTAyQWdBZ0FFRUVhaUVBSUFKQkFXb2lBaUFEUncwQUN3d0NDeUFEUVFCTURRRWdBQ2dDQUNFSklBSWdDbXhCQW5RaEJ3TkFJQWtnQVNnQ0FDQUJJQWRxSWdRb0FnQkJBV3BCQVhWcklnQTJBZ1FnQ1NBQUlBUW9BZ0JxSWdBMkFnQWdBU0FBTmdJQUlBRWdBa0VDZEdvZ0NTZ0NCRFlDQUNBQlFRUnFJUUVnQmtFQmFpSUdJQU5IRFFBTERBRUxJQWhCQTBnTkFDQURRUUJNRFFBZ0FDZ0NBQ0lGSUFnZ0NFRUJjU0lVUlNJR2EwRUVheUlKUVFGMklndEJBblFpQnlBQklBTkJBblFpQUdwcVNTQUZJQXRCQTNScVFReHFJZ1FnQVVFRWFrdHhJQVZCQkdvZ0FDQUJJQXBCQW5ScUlnQnFJQWRxUVFocVNTQUFRUWhxSUFSSmNYSWhGU0FDUVFGSElBaEJCRWx5SVJZZ0FrRUJSaUFKUVFWTGNTRVhJQWhCL1AvLy93ZHhJUkFnQ0VFRGNTRVJJQUVnQldzaEdDQUZJQWhCQW5ScVFRUnJJUmtnQlNBSVFRSnJJZ0JCQW5ScUlSb2dDMEVCYWlJU1FYeHhJZ3hCQVhJaEV5QU1RUUYwUVFGeUlRc2dBaUFLYkVFQ2RDRWJJQUFnQm10QkFra2hIQ0FJUVFGMlFRRnJJQUpzUVFKMElSMERRQ0FGSUFFb0FnQWdBU0FiYWlJUElBSkJBblJxS0FJQUlna2dEeWdDQUNJQWFrRUNha0VDZFdzaUJ5QUFhallDQUVFQklRUUNRQ0FjQkVBZ0NTRUdEQUVMQWtBQ2YwRUJJQmRGRFFBYVFRRWdGUTBBR2lBSi9SRWhJU0FIL1JFaElrRUFJUUFEUUNBRklBQkJBM1JxSWdjZ0FTQUFRUUowSWdScS9RQUNCQ0FoSUFRZ0QycjlBQUlJSWlIOURRd05EZzhRRVJJVEZCVVdGeGdaR2hzaUpDQWgvYTRCL1F3Q0FBQUFBZ0FBQUFJQUFBQUNBQUFBL2E0QlFRTDlyQUg5c1FFaUl5QWpJQ0lnSS8wTkRBME9EeEFSRWhNVUZSWVhHQmthRy8ydUFVRUIvYXdCSUNUOXJnRWlKUDBOQkFVR0J4Z1pHaHNJQ1FvTEhCMGVILzBMQWhRZ0J5QWlJQ1Q5RFF3TkRnOFFFUklUQUFFQ0F4UVZGaGNnSS8wTkFBRUNBd1FGQmdjUUVSSVREQTBPRC8wTEFnUWdJeUVpSUFCQkJHb2lBQ0FNUncwQUN5QWgvUnNESVFZZ0l2MGJBeUVISUF3Z0VrWU5BU0FMSVFRZ0JpRUpJQk1MSVFBRFFDQUJJQUFnQW14QkFuUnFLQUlBSVI0Z0R5QUFRUUZxSWdvZ0FteEJBblJxS0FJQUlRWWdCU0FFUVFKMGFpSU9JQWMyQWdBZ0RpQUhJQjRnQmlBSmFrRUNha0VDZFdzaUIycEJBWFVnQ1dvMkFnUWdCRUVDYWlFRUlBQWdFa2NoSUNBS0lRQWdCaUVKSUNBTkFBc01BUXNnQ3lFRUN5QVlJQTFCQW5ScUlRa2dCU0FFUVFKMGFpQUhOZ0lBQWtBZ0ZFVUVRQ0FhSUFFZ0hXb29BZ0FnQmtFQmFrRUJkV3NpQUNBSGFrRUJkU0FHYWpZQ0FBd0JDeUFHSUFkcUlRQUxJQmtnQURZQ0FFRUFJUVpCQUNFQVFRQWhCQUpBSUJZZ0NVRVFTWEpGQkVBRFFDQUJJQUJCQW5RaUJHb2dCQ0FGYXYwQUFnRDlDd0lBSUFCQkJHb2lBQ0FRUncwQUN5QVFJZ1FnQ0VZTkFRc2dCQ0VBSUJFRVFBTkFJQUVnQUNBQ2JFRUNkR29nQlNBQVFRSjBhaWdDQURZQ0FDQUFRUUZxSVFBZ0JrRUJhaUlHSUJGSERRQUxDeUFFSUFoclFYeExEUUFEUUNBQklBQWdBbXhCQW5ScUlBVWdBRUVDZEdvb0FnQTJBZ0FnQVNBQVFRRnFJZ1FnQW14QkFuUnFJQVVnQkVFQ2RHb29BZ0EyQWdBZ0FTQUFRUUpxSWdRZ0FteEJBblJxSUFVZ0JFRUNkR29vQWdBMkFnQWdBU0FBUVFOcUlnUWdBbXhCQW5ScUlBVWdCRUVDZEdvb0FnQTJBZ0FnQUVFRWFpSUFJQWhIRFFBTEN5QUJRUVJxSVFFZ0RVRUJhaUlOSUFOSERRQUxDd3MzQVFKL0l3QkJFR3NpQVNRQUlBQUVmeUFCUVF4cVFTQWdBQkJzSVFCQkFDQUJLQUlNSUFBYkJVRUFDeUVDSUFGQkVHb2tBQ0FDQ3hzQkFYOGdBQVJBSUFBb0FnZ2lBUVJBSUFFUUVBc2dBQkFRQ3dzeEFRSi9RUUZCREJBVElnQUVRQ0FBUVFvMkFnUWdBRUVLUVFRUUV5SUJOZ0lJSUFFRVFDQUFEd3NnQUJBUUMwRUFDeThCQVg4Z0FBUkFJQUFvQWdRaUFRUkFJQUFvQWdBZ0FSRUNBQXNnQUNnQ0lCQVFJQUJCQURZQ0lDQUFFQkFMQ3lvQUlBQUVRQ0FBS0FJd0lBQkJGRUVRSUFBb0Frd2JhaWdDQUJFQ0FDQUFRUUEyQWpBZ0FCQVFDd3RUQVFKL0lBQkJBRFlDTUNBQUlBQW9BaUEyQWlRZ0FTQUFLQUlBSUFBb0Fod1JDZ0FoQkNBQUtBSkVJUUlnQkVVRVFDQUFJQUpCQkhJMkFrUkJBQThMSUFBZ0FUY0RPQ0FBSUFKQmUzRTJBa1JCQVF1R0F3SUZmd3ArSXdCQklHc2lBeVFBQWtBZ0FDZ0NFQ0lGUlFSQVFRRWhBZ3dCQ3dKQUlBQTBBZ0FpQjBJQVV3MEFJQUEwQWdRaUNFSUFVdzBBSUFBMEFnZ2lDVUlBVXcwQUlBQTBBZ3dpQ2tJQVV3MEFJQUFvQWhnaEFDQUhRZ0Y5SVF3Z0NFSUJmU0VOSUFsQ0FYMGhDU0FLUWdGOUlRb0RRQ0FBSUF3Z0FDZ0NBQ0lDclNJSGZDQUhnQ0lMUGdJUUlBQWdEU0FBS0FJRUlnYXRJZ2Q4SUFlQUlnNCtBaFJDQVNBQU5RSW9JZ2VHSWc5Q0FYMGlDQ0FKSUFLc0loQjhJQkIveEh3Z0I0ZW5JQWdnQzhSOElBZUhwMnNpQWtFQVNBUkFJQU1nQWpZQ0JDQURJQVEyQWdBZ0FVRUJRZFBrQUNBREVBOUJBQ0VDREFNTElBQWdBallDQ0NBSUlBb2dCcXdpQzN3Z0MzL0VmQ0FIaDZjZ0RzUWdEM3hDQVgwZ0I0ZW5heUlDUVFCSUJFQWdBeUFDTmdJVUlBTWdCRFlDRUNBQlFRRkJtT1VBSUFOQkVHb1FEMEVBSVFJTUF3c2dBQ0FDTmdJTUlBQkJOR29oQUVFQklRSWdCRUVCYWlJRUlBVkhEUUFMREFFTElBRkJBVUduTTBFQUVBOExJQU5CSUdva0FDQUNDOWNHQVFaL0lBQUVRQUpBSUFBb0FnQUVRQ0FBS0FJTUlnRUVRQ0FCRUM0Z0FDZ0NEQkFRSUFCQkFEWUNEQXNnQUNnQ0VDSUJCRUFnQVJBUUlBQkNBRGNERUFzZ0FDZ0NRQkFRSUFCQ0FEY0NQQXdCQ3lBQUtBSXNJZ0VFUUNBQkVCQWdBRUVBTmdJc0N5QUFLQUlnSWdFRVFDQUJFQkFnQUVJQU53TWdDeUFBS0FJMElnRkZEUUFnQVJBUUlBQkNBRGNDTkFzZ0FDZ0MwQUVRVlNBQUtBS2NBU0lCQkVBZ0FDZ0NhQ0FBS0FKc2JDSURCSDhEUUNBQkVDNGdBVUdNTEdvaEFTQUNRUUZxSWdJZ0EwY05BQXNnQUNnQ25BRUZJQUVMRUJBZ0FFRUFOZ0tjQVFzZ0FDZ0NkQ0lCQkVBZ0FDZ0NjQ0lDQkVCQkFDRUJBMEFnQUNnQ2RDQUJRUU4wYWlnQ0FDSURCRUFnQXhBUUlBQW9BbkFoQWdzZ0FVRUJhaUlCSUFKSkRRQUxJQUFvQW5RaEFRc2dBRUVBTmdKd0lBRVFFQ0FBUVFBMkFuUUxJQUFvQW9nQkVCQWdBRUVBTmdKNElBQkJBRFlDaUFFZ0FDZ0NaQkFRSUFCQkFEWUNaQ0FBTFFDOEFVRUNjVVVFUUNBQUtBS29BUkFRQ3lBQVFkQUFha0VBUWZBQUVCVWFJQUFvQXNBQkVESWdBRUVBTmdMQUFTQUFLQUxFQVJBeUlBQkJBRFlDd0FFZ0FDZ0N5QUVpQVFSQUlBRW9BaHdpQWdSQUlBSVFFQ0FCUVFBMkFod0xJQUVvQWlnaUFnUkFJQUVvQWlRRVFBTkFJQUlnQlVFb2JDSURhaWdDSkNJRUJFQWdCQkFRSUFFb0FpZ2lBaUFEYWtFQU5nSWtDeUFDSUFOcUtBSVFJZ1FFUUNBRUVCQWdBU2dDS0NJQ0lBTnFRUUEyQWhBTElBSWdBMm9vQWhnaUJBUkFJQVFRRUNBQktBSW9JZ0lnQTJwQkFEWUNHQXNnQlVFQmFpSUZJQUVvQWlSSkRRQUxDeUFDRUJBZ0FVRUFOZ0lvQ3lBQkVCQUxJQUJCQURZQ3lBRWdBQ2dDU0JBaElBQkJBRFlDU0NBQUtBSk1FQ0VnQUVFQU5nSk1JQUFvQXRRQklnTUVRQUpBSUFNb0FnaEZEUUFnQXlnQ0RBUkFJQU5CQURZQ0tBTkFJQU1vQWhoQkFFb05BQXNMSUFOQkFUWUNFQ0FES0FJQUVCQWdBeWdDSENJQ1JRMEFBMEFnQWlnQ0JDRUJJQUlRRUNBRElBRTJBaHdnQVNJQ0RRQUxDeUFES0FJa0lnSUVRQ0FDS0FJRUlnVkJBRW9FUUVFQUlRRURRQ0FDS0FJQUlBRkJER3hxSWdRb0FnZ2lCZ1JBSUFRb0FnUWdCaEVDQUNBQ0tBSUVJUVVMSUFGQkFXb2lBU0FGU0EwQUN3c2dBaWdDQUJBUUlBSVFFQXNnQXhBUUN5QUFRUUEyQXRRQklBQVFFQXNMNWdNQ0NIOEVmaUFBS0FJVUtBSUFLQUlVSUFGQnpBQnNhaUlKS0FJTUlnZ2dBQ2dDR0NnQ0dDQUJRVFJzYWlJS05RSUVJaEJDQVgwaUVpQUFOUUk4ZkNBUWdLY2lDeUFJSUF0Skd5RU1JQWtvQWdnaUNDQUtOUUlBSWhGQ0FYMGlFeUFBTlFJNGZDQVJnS2NpQ2lBSUlBcEpHeUVLSUFrb0FnUWlDQ0FTSUFBMUFqUjhJQkNBcHlJTElBZ2dDMHNiSVFzZ0NTZ0NBQ0lJSUJNZ0FEVUNNSHdnRVlDbklnMGdDQ0FOU3hzaERVRUFJUWdnQUNnQ0lDZ0MwQ3NnQVVHNENHeHFLQUlVSVE0Q1FDQUpLQUlVUVFBZ0FtdEJmeUFDRzJvaUFrVUVRQ0FLSVFBZ0RTRUlJQXNoQVF3QkN5QURRUUZ4SUFKQkFXc2lEM1FpQ1NBTlNRUkFJQTBnQ1d1dFFuOGdBcTBpRUlaQ2Y0VjhJQkNJcHlFSUMwRUFJUUJCQUNFQklBTkJBWFlnRDNRaUF5QUxTUVJBSUFzZ0EydXRRbjhnQXEwaUVJWkNmNFY4SUJDSXB5RUJDeUFKSUFwSkJFQWdDaUFKYTYxQ2Z5QUNyU0lRaGtKL2hYd2dFSWluSVFBTElBTWdERThFUUVFQUlRd01BUXNnRENBRGE2MUNmeUFDclNJUWhrSi9oWHdnRUlpbklRd0xRWDhnQUVFQ1FRTWdEa0VCUmhzaUFtb2lBeUFBSUFOTEd5QUVTMEYvSUFJZ0RHb2lBQ0FBSUF4Skd5QUZTM0VnQ0NBQ2F5SUFRUUFnQUNBSVRSc2dCa2x4SUFFZ0Ftc2lBRUVBSUFBZ0FVMGJJQWRKY1F1aUFRRUdmeUFBQkVBZ0FDZ0NCQ0lDQkVBZ0FoQVFJQUJCQURZQ0JBc2dBUVJBSUFBaEFnTkFJQUlvQXNnQklnTUVRRUVBSVFVZ0FpZ0N4QUVpQkFSL0EwQWdBeWdDRENJR0JFQWdCaEFRSUFOQkFEWUNEQ0FDS0FMRUFTRUVDeUFEUVJCcUlRTWdCVUVCYWlJRklBUkpEUUFMSUFJb0FzZ0JCU0FEQ3hBUUlBSkJBRFlDeUFFTElBSkI4QUZxSVFJZ0IwRUJhaUlISUFGSERRQUxDeUFBRUJBTEM5VVpBaE4vQTNzZ0FDZ0NBQ0lLSUFBb0Fnd2lEVUVGZENJRmFpRUdJQW9nQldzaEZpQUFLQUlRSVFVZ0FDZ0NIQ0VMSUFBb0FoUWhDU0FBS0FJSUlRNENRQUpBQWtBQ1FDQURRUWhKRFFBZ0FVRVBjUTBBSUFaQkQzRkZEUUVMSUFVZ0NVOE5BZ0pBQWtBZ0EwRUJhdzRDQUFFREN3SkFJQWtnQldzaUNFRVlTUTBBSUFFZ0JVRUNkR29oQnlBTlFRVjBJZ1FnQ2lBRlFRWjBhbW9nQVNBSlFRSjBha2tFUUNBSElBb2dDVUVHZEdvZ0JHcEJQR3RKRFFFTElBWDlFZjBNQUFBQUFBRUFBQUFDQUFBQUF3QUFBUDJ1QVNFWUlBVWdDRUY4Y1NJUGFpRUZRUUFoQkFOQUlBWWdHRUVFL2FzQkloZjlHd0JCQW5ScUlBY2dCRUVDZEdyOUFBSUFJaG45SHdBNEFnQWdCaUFYL1JzQlFRSjBhaUFaL1I4Qk9BSUFJQVlnRi8wYkFrRUNkR29nR2YwZkFqZ0NBQ0FHSUJmOUd3TkJBblJxSUJuOUh3TTRBZ0FnR1AwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTRVlJQVJCQkdvaUJDQVBSdzBBQ3lBSUlBOUdEUVFMSUFVaEJDQUpJQVZyUVFOeElnY0VRRUVBSVFnRFFDQUdJQVJCQm5ScUlBRWdCRUVDZEdvcUFnQTRBZ0FnQkVFQmFpRUVJQWhCQVdvaUNDQUhSdzBBQ3dzZ0JTQUphMEY4U3cwREEwQWdCaUFFUVFaMGFpQUJJQVJCQW5ScUtnSUFPQUlBSUFZZ0JFRUJhaUlGUVFaMGFpQUJJQVZCQW5ScUtnSUFPQUlBSUFZZ0JFRUNhaUlGUVFaMGFpQUJJQVZCQW5ScUtnSUFPQUlBSUFZZ0JFRURhaUlGUVFaMGFpQUJJQVZCQW5ScUtnSUFPQUlBSUFSQkJHb2lCQ0FKUncwQUN3d0RDeUFCSUFKQkFuUnFJUWdDUUNBSklBVnJJZzlCUEVrRVFDQUZJUVFNQVFzZ0NpQUZRUVowSUExQkJYUnFhaUlFSUFrZ0JVRi9jMm9pQjBFR2RDSVFhaUFFU1FSQUlBVWhCQXdCQ3lBRVFRUnFJZ1FnRUdvZ0JFa0VRQ0FGSVFRTUFRc2dCMEgvLy84ZlN3UkFJQVVoQkF3QkN5QU5RUVYwSWdRZ0NpQUZRUVowYW1vaUJ5QUJJQUlnQ1dwQkFuUnFTU0FLSUFsQkJuUnFJQVJxUVRocklnUWdBU0FDSUFWcVFRSjBha3R4QkVBZ0JTRUVEQUVMSUFjZ0FTQUpRUUowYWtrZ0FTQUZRUUowYWlBRVNYRUVRQ0FGSVFRTUFRc2dCZjBSL1F3QUFBQUFBUUFBQUFJQUFBQURBQUFBL2E0QklSZ2dCU0FQUVh4eEloQnFJUVJCQUNFSEEwQWdCaUFZUVFUOXF3RWlGLzBiQUVFQ2RHb2lFU0FCSUFVZ0IycEJBblFpREdyOUFBSUFJaG45SHdBNEFnQWdCaUFYL1JzQlFRSjBhaUlUSUJuOUh3RTRBZ0FnQmlBWC9Sc0NRUUowYWlJVUlCbjlId0k0QWdBZ0JpQVgvUnNEUVFKMGFpSVZJQm45SHdNNEFnQWdFU0FJSUF4cS9RQUNBQ0lYL1I4QU9BSUVJQk1nRi8wZkFUZ0NCQ0FVSUJmOUh3STRBZ1FnRlNBWC9SOERPQUlFSUJqOURBUUFBQUFFQUFBQUJBQUFBQVFBQUFEOXJnRWhHQ0FIUVFScUlnY2dFRWNOQUFzZ0R5QVFSZzBEQ3lBRVFRRnFJUVVnQ1NBRWEwRUJjUVJBSUFZZ0JFRUdkR29pQnlBQklBUkJBblFpQkdvcUFnQTRBZ0FnQnlBRUlBaHFLZ0lBT0FJRUlBVWhCQXNnQlNBSlJnMENBMEFnQmlBRVFRWjBhaUlGSUFFZ0JFRUNkQ0lIYWlvQ0FEZ0NBQ0FGSUFjZ0NHb3FBZ0E0QWdRZ0JpQUVRUUZxSWdWQkJuUnFJZ2NnQVNBRlFRSjBJZ1ZxS2dJQU9BSUFJQWNnQlNBSWFpb0NBRGdDQkNBRVFRSnFJZ1FnQ1VjTkFBc01BZ3NnQlNBSlR3MEJJQUVnQWtFQ2RHb2hDQU5BSUFZZ0JVRUdkR29pQkNBQklBVkJBblJxS2dJQU9BSUFJQVFnQVNBQ0lBVnFJZ2RCQW5ScUtnSUFPQUlFSUFRZ0FTQUNJQWRxSWdkQkFuUnFLZ0lBT0FJSUlBUWdBU0FDSUFkcUlnZEJBblJxS2dJQU9BSU1JQVFnQVNBQ0lBZHFJZ2RCQW5ScUtnSUFPQUlRSUFRZ0FTQUNJQWRxSWdkQkFuUnFLZ0lBT0FJVUlBUWdBU0FDSUFkcVFRSjBJZ2RxS2dJQU9BSVlJQVFnQnlBSWFpb0NBRGdDSENBRlFRRnFJZ1VnQ1VjTkFBc01BUXNnQVNBQ1FRSjBhaUVJSUFOQkEwWWhCeUFEUVFSR0lROGdBMEVGUmlFUUlBTkJCMFloRVFOQUlBWWdCVUVHZEdvaUJDQUJJQVZCQW5ScUtnSUFPQUlBSUFRZ0FTQUNJQVZxSWd4QkFuUnFLZ0lBT0FJRUlBUWdBU0FDSUF4cUlneEJBblJxS2dJQU9BSUlBa0FnQncwQUlBUWdBU0FDSUF4cUlneEJBblJxS2dJQU9BSU1JQThOQUNBRUlBRWdBaUFNYWlJTVFRSjBhaW9DQURnQ0VDQVFEUUFnQkNBQklBSWdER29pREVFQ2RHb3FBZ0E0QWhRZ0EwRUdSZzBBSUFRZ0FTQUNJQXhxUVFKMElneHFLZ0lBT0FJWUlCRU5BQ0FFSUFnZ0RHb3FBZ0E0QWh3TElBVkJBV29pQlNBSlJ3MEFDd3NnRmtFZ2FpRUdJQUVnRGtFQ2RHb2hCQ0FBS0FJWUlRVUNRQUpBQWtBZ0EwRUlTUTBBSUFSQkQzRU5BQ0FHUVE5eFJRMEJDeUFGSUF0UERRRUNRQUpBQWtBZ0EwRUJhdzRDQUFFQ0N3SkFJQXNnQldzaUFFRWNTUTBBSUFvZ0JVRUdkRUVnY2lBTlFRVjBJZ0pyYWlBQklBc2dEbXBCQW5ScVNRUkFJQUVnQlNBT2FrRUNkR29nQzBFR2RDQUNheUFLYWtFY2Ewa05BUXNnQkNBRlFRSjBhaUVESUFYOUVmME1BQUFBQUFFQUFBQUNBQUFBQXdBQUFQMnVBU0VZSUFVZ0FFRjhjU0lCYWlFRlFRQWhBZ05BSUFZZ0dFRUUvYXNCSWhmOUd3QkJBblJxSUFNZ0FrRUNkR3I5QUFJQUlobjlId0E0QWdBZ0JpQVgvUnNCUVFKMGFpQVovUjhCT0FJQUlBWWdGLzBiQWtFQ2RHb2dHZjBmQWpnQ0FDQUdJQmY5R3dOQkFuUnFJQm45SHdNNEFnQWdHUDBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFWUlBSkJCR29pQWlBQlJ3MEFDeUFBSUFGR0RRUUxJQVVoQWlBTElBVnJRUU54SWdBRVFFRUFJUUVEUUNBR0lBSkJCblJxSUFRZ0FrRUNkR29xQWdBNEFnQWdBa0VCYWlFQ0lBRkJBV29pQVNBQVJ3MEFDd3NnQlNBTGEwRjhTdzBEQTBBZ0JpQUNRUVowYWlBRUlBSkJBblJxS2dJQU9BSUFJQVlnQWtFQmFpSUFRUVowYWlBRUlBQkJBblJxS2dJQU9BSUFJQVlnQWtFQ2FpSUFRUVowYWlBRUlBQkJBblJxS2dJQU9BSUFJQVlnQWtFRGFpSUFRUVowYWlBRUlBQkJBblJxS2dJQU9BSUFJQUpCQkdvaUFpQUxSdzBBQ3d3REN5QUVJQUpCQW5ScUlRTUNRQ0FMSUFWcklnQkJ4QUJKQkVBZ0JTRUNEQUVMSUFvZ0JVRUdkQ0lKUVNCeUlBMUJCWFFpQ0d0cUlnY2dDeUFGUVg5emFpSVBRUVowSWhCcUlBZEpCRUFnQlNFQ0RBRUxJQW9nQ1VFa2NpQUlhMm9pQ1NBUWFpQUpTUVJBSUFVaEFnd0JDeUFQUWYvLy94OUxCRUFnQlNFQ0RBRUxJQW9nQlVFR2RFRWdjaUFOUVFWMElnbHJhaUlOSUFFZ0N5QU9haUlJSUFKcVFRSjBha2tnQzBFR2RDQUpheUFLYWtFWWF5SUpJQUVnRGtFQ2RHb2dCVUVDZEdvaUNpQUNRUUowYWt0eEJFQWdCU0VDREFFTElBMGdBU0FJUVFKMGFra2dDU0FLUzNFRVFDQUZJUUlNQVFzZ0JmMFIvUXdBQUFBQUFRQUFBQUlBQUFBREFBQUEvYTRCSVJnZ0JTQUFRWHh4SWdscUlRSkJBQ0VCQTBBZ0JpQVlRUVQ5cXdFaUYvMGJBRUVDZEdvaUNpQUVJQUVnQldwQkFuUWlEV3I5QUFJQUlobjlId0E0QWdBZ0JpQVgvUnNCUVFKMGFpSU9JQm45SHdFNEFnQWdCaUFYL1JzQ1FRSjBhaUlJSUJuOUh3STRBZ0FnQmlBWC9Sc0RRUUowYWlJSElCbjlId000QWdBZ0NpQURJQTFxL1FBQ0FDSVgvUjhBT0FJRUlBNGdGLzBmQVRnQ0JDQUlJQmY5SHdJNEFnUWdCeUFYL1I4RE9BSUVJQmo5REFRQUFBQUVBQUFBQkFBQUFBUUFBQUQ5cmdFaEdDQUJRUVJxSWdFZ0NVY05BQXNnQUNBSlJnMERDeUFDUVFGcUlRQWdDeUFDYTBFQmNRUkFJQVlnQWtFR2RHb2lBU0FFSUFKQkFuUWlBbW9xQWdBNEFnQWdBU0FDSUFOcUtnSUFPQUlFSUFBaEFnc2dBQ0FMUmcwQ0EwQWdCaUFDUVFaMGFpSUFJQVFnQWtFQ2RDSUJhaW9DQURnQ0FDQUFJQUVnQTJvcUFnQTRBZ1FnQmlBQ1FRRnFJZ0JCQm5ScUlnRWdCQ0FBUVFKMElnQnFLZ0lBT0FJQUlBRWdBQ0FEYWlvQ0FEZ0NCQ0FDUVFKcUlnSWdDMGNOQUFzTUFnc2dCQ0FDUVFKMGFpRUJJQU5CQTBZaENTQURRUVJHSVFvZ0EwRUZSaUVOSUFOQkIwWWhEZ05BSUFZZ0JVRUdkR29pQUNBRUlBVkJBblJxS2dJQU9BSUFJQUFnQkNBQ0lBVnFJZ2hCQW5ScUtnSUFPQUlFSUFBZ0JDQUNJQWhxSWdoQkFuUnFLZ0lBT0FJSUFrQWdDUTBBSUFBZ0JDQUNJQWhxSWdoQkFuUnFLZ0lBT0FJTUlBb05BQ0FBSUFRZ0FpQUlhaUlJUVFKMGFpb0NBRGdDRUNBTkRRQWdBQ0FFSUFJZ0NHb2lDRUVDZEdvcUFnQTRBaFFnQTBFR1JnMEFJQUFnQkNBQ0lBaHFRUUowSWdocUtnSUFPQUlZSUE0TkFDQUFJQUVnQ0dvcUFnQTRBaHdMSUFWQkFXb2lCU0FMUncwQUN3d0JDeUFGSUF0UERRQWdCQ0FDUVFKMGFpRUJBMEFnQmlBRlFRWjBhaUlBSUFRZ0JVRUNkR29xQWdBNEFnQWdBQ0FFSUFJZ0JXb2lBMEVDZEdvcUFnQTRBZ1FnQUNBRUlBSWdBMm9pQTBFQ2RHb3FBZ0E0QWdnZ0FDQUVJQUlnQTJvaUEwRUNkR29xQWdBNEFnd2dBQ0FFSUFJZ0Eyb2lBMEVDZEdvcUFnQTRBaEFnQUNBRUlBSWdBMm9pQTBFQ2RHb3FBZ0E0QWhRZ0FDQUVJQUlnQTJwQkFuUWlBMm9xQWdBNEFoZ2dBQ0FCSUFOcUtnSUFPQUljSUFWQkFXb2lCU0FMUncwQUN3c0xtd01CQkg4Z0FTQUFRUVJxSWdScVFRRnJRUUFnQVd0eElnVWdBbW9nQUNBQUtBSUFJZ0ZxUVFSclRRUi9JQUFvQWdRaUF5QUFLQUlJSWdZMkFnZ2dCaUFETmdJRUlBUWdCVWNFUUNBQUlBQkJCR3NvQWdCQmZuRnJJZ01nQlNBRWF5SUVJQU1vQWdCcUlnVTJBZ0FnQXlBRlFYeHhha0VFYXlBRk5nSUFJQUFnQkdvaUFDQUJJQVJySWdFMkFnQUxBbjhnQVNBQ1FSaHFUd1JBSUFBZ0FtcEJDR29pQXlBQklBSnJRUWhySWdFMkFnQWdBeUFCUVh4eGFrRUVheUFCUVFGeU5nSUFJQU1DZnlBREtBSUFRUWhySWdGQi93Qk5CRUFnQVVFRGRrRUJhd3dCQ3lBQlp5RUVJQUZCSFNBRWEzWkJCSE1nQkVFQ2RHdEI3Z0JxSUFGQi94OU5EUUFhUVQ4Z0FVRWVJQVJyZGtFQ2N5QUVRUUYwYTBISEFHb2lBU0FCUVQ5UEd3c2lBVUVFZENJRVFhREhBV28yQWdRZ0F5QUVRYWpIQVdvaUJDZ0NBRFlDQ0NBRUlBTTJBZ0FnQXlnQ0NDQUROZ0lFUWFqUEFVR296d0VwQXdCQ0FTQUJyWWFFTndNQUlBQWdBa0VJYWlJQk5nSUFJQUFnQVVGOGNXb01BUXNnQUNBQmFndEJCR3NnQVRZQ0FDQUFRUVJxQlVFQUN3dkNBUUVEZndKQUlBRWdBaWdDRUNJREJIOGdBd1VnQWhBK0RRRWdBaWdDRUFzZ0FpZ0NGQ0lFYTBzRVFDQUNJQUFnQVNBQ0tBSWtFUUFBRHdzQ1FBSkFJQUlvQWxCQkFFZ05BQ0FCUlEwQUlBRWhBd05BSUFBZ0Eyb2lCVUVCYXkwQUFFRUtSd1JBSUFOQkFXc2lBdzBCREFJTEN5QUNJQUFnQXlBQ0tBSWtFUUFBSWdRZ0Ewa05BaUFCSUFOcklRRWdBaWdDRkNFRURBRUxJQUFoQlVFQUlRTUxJQVFnQlNBQkVCSWFJQUlnQWlnQ0ZDQUJhallDRkNBQklBTnFJUVFMSUFRTFdRRUJmeUFBSUFBb0FrZ2lBVUVCYXlBQmNqWUNTQ0FBS0FJQUlnRkJDSEVFUUNBQUlBRkJJSEkyQWdCQmZ3OExJQUJDQURjQ0JDQUFJQUFvQWl3aUFUWUNIQ0FBSUFFMkFoUWdBQ0FCSUFBb0FqQnFOZ0lRUVFBTHpBSUJCSDhnQVNBQS9RQUNBUDBMQWdBZ0FTZ0NHQ0lDQkVBZ0FTZ0NFQ0lEQkg5QkFDRUNBMEFnQVNnQ0dDQUNRVFJzYWlnQ0xDSUVCRUFnQkJBUUlBRW9BaEFoQXdzZ0FrRUJhaUlDSUFOSkRRQUxJQUVvQWhnRklBSUxFQkFnQVVFQU5nSVlDeUFCSUFBb0FoQWlBallDRUNBQklBSkJOR3dRRkNJQ05nSVlJQUlFUUNBQktBSVFCRUJCQUNFREEwQWdBaUFEUVRSc0lnVnFJZ0lnQUNnQ0dDQUZhaUlFL1FBQ0FQMExBZ0FnQWlBRUtBSXdOZ0l3SUFJZ0JQMEFBaUQ5Q3dJZ0lBSWdCUDBBQWhEOUN3SVFJQUVvQWhnaUFpQUZha0VBTmdJc0lBTkJBV29pQXlBQktBSVFTUTBBQ3dzZ0FTQUFLQUlVTmdJVUlBRWdBQ2dDSUNJQ05nSWdJQUlFUUNBQklBSVFGQ0lDTmdJY0lBSkZCRUFnQVVJQU53SWNEd3NnQWlBQUtBSWNJQUFvQWlBUUVob1BDeUFCUVFBMkFod1BDeUFCUVFBMkFoQWdBVUVBTmdJWUN3UUFRUUVMeGdFQkEzOERRQ0FBUVFSMElnRkJwTWNCYWlBQlFhREhBV29pQWpZQ0FDQUJRYWpIQVdvZ0FqWUNBQ0FBUVFGcUlnQkJ3QUJIRFFBTFFUQVFiUm9qQUVFUWF5SUFKQUFDUUNBQVFReHFJQUJCQ0dvUURBMEFRYkRQQVVFSUlBQW9BZ3hCQW5SQkJHb1FKU0lCTmdJQUlBRkZEUUJCQ0NBQUtBSUlFQ1VpQVFSQVFiRFBBU2dDQUNJQ0lBQW9BZ3hCQW5ScVFRQTJBZ0FnQWlBQkVBdEZEUUVMUWJEUEFVRUFOZ0lBQ3lBQVFSQnFKQUJCek04QlFTbzJBZ0JCbE5BQlFkalFBVFlDQUF1UUJnSUZmd043SXdCQkVHc2lCaVFBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BcHdCSUFBb0Fzd0JRWXdzYkdvTUFRc2dBQ2dDREFzaEFBSkFJQU1vQWdBaUJVVUVRRUVBSVFJZ0JFRUJRY0FUUVFBUUR3d0JDeUFBS0FMUUt5RUpJQU1nQlVFQmF6WUNBQ0FDSUFaQkRHcEJBUkFSSUFrZ0FVRzRDR3hxSWdjZ0JpZ0NEQ0lBUVFWMk5nS2tCaUFISUFCQkgzRWlBVFlDR0NBQ1FRRnFJUUFnQXdKL0FuOENRQUovQWtBQ1FDQUJEZ0lBQXdFTElBTW9BZ0FNQVFzZ0F5Z0NBRUVCZGdzaUJVSGlBRThFZnlBR1F1R0FnSUNRRERjQ0JDQUdJQVUyQWdBZ0JFRUNRY1g0QUNBR0VBOGdCeWdDR0FVZ0FRc0VRQ0FGSWdFTkFVRUFEQUlMSUFVRVFDQUhRUnhxSVFGQkFDRUNBMEFnQUNBR1FReHFRUUVRRVNBQ1FlQUFUUVJBSUFZb0Fnd2hCQ0FCSUFKQkEzUnFJZ2hCQURZQ0JDQUlJQVJCQTNZMkFnQUxJQUJCQVdvaEFDQUNRUUZxSWdJZ0JVY05BQXNMUVFBaEFpQURLQUlBSWdBZ0JVa05BeUFBSUFWckRBSUxJQWRCSEdvaEJFRUFJUUlEUUNBQUlBWkJER3BCQWhBUklBSkI0QUJOQkVBZ0JDQUNRUU4wYWlJRklBWW9BZ3dpQ0VIL0QzRTJBZ1FnQlNBSVFRdDJOZ0lBQ3lBQVFRSnFJUUFnQWtFQmFpSUNJQUZIRFFBTElBRkJBWFFMSVFCQkFDRUNJQU1vQWdBaUFTQUFTUTBCSUFFZ0FHc0xOZ0lBUVFFaEFpQUhLQUlZUVFGSERRQWdCMEVjYWlFRUlBZjlDUUljSVF3Z0J5Z0NJQ0VEL1F3QkFBQUFBZ0FBQUFNQUFBQUVBQUFBSVF0QkFDRUJBMEFnQkNBQlFRTjBhaUlBUVJocUlBd2dDLzBNLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzJ1QVNJSy9Sc0FRUU51L1JFZ0N2MGJBVUVEYnYwY0FTQUsvUnNDUVFOdS9Sd0NJQXI5R3dOQkEyNzlIQVA5c1FIOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOXVBRWlDdjFhQWdBQ0lBQkJFR29nQ3YxYUFnQUJJQUJCQ0dvZ0N2MWFBZ0FBSUFRZ0FVRUVhaUlCUVFOMGFpSUZJQXI5V2dJQUF5QUFJQU0yQWh3Z0FDQUROZ0lVSUFBZ0F6WUNEQ0FGSUFNMkFnUWdDLzBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFTElBRkI0QUJIRFFBTEN5QUdRUkJxSkFBZ0FndWZCZ0VHZnlNQVFTQnJJZ1lrQUFKL0lBQW9BZ2hCRUVZRVFDQUFLQUtjQVNBQUtBTE1BVUdNTEd4cURBRUxJQUFvQWd3TElRVUNRQ0FES0FJQVFRUk5CRUJCQUNFQUlBUkJBVUdkRTBFQUVBOE1BUXNnQWlBRktBTFFLeUFCUWJnSWJHb2lCU0lKUVFScVFRRVFFU0FGSUFVb0FnUkJBV29pQnpZQ0JDQUhRU0pQQkVBZ0JrRWhOZ0lFSUFZZ0J6WUNBQ0FFUVFGQitUa2dCaEFQUVFBaEFBd0JDeUFISUFBb0FxQUJJZ2hOQkVBZ0JpQUhOZ0lZSUFZZ0NEWUNGQ0FHSUFFMkFoQWdCRUVCUWJUN0FDQUdRUkJxRUE4Z0FDQUFLQUlJUVlDQUFuSTJBZ2hCQUNFQURBRUxJQUpCQVdvZ0JVRUlha0VCRUJFZ0JTQUZLQUlJUVFKcU5nSUlJQUpCQW1vZ0JVRU1ha0VCRUJFZ0JTQUZLQUlNUVFKcUlnQTJBZ3dDUUFKQUlBVW9BZ2dpQVVFS1N3MEFJQUJCQ2tzTkFDQUFJQUZxUVExSkRRRUxRUUFoQUNBRVFRRkJ3eWxCQUJBUERBRUxJQUpCQTJvZ0JVRVFha0VCRUJFZ0JTMEFFRUdBQVhFRVFFRUFJUUFnQkVFQlFZc3lRUUFRRHd3QkN5QUNRUVJxSUFWQkZHcEJBUkFSSUFVb0FoUkJBazhFUUVFQUlRQWdCRUVCUWNveFFRQVFEd3dCQ3lBRElBTW9BZ0JCQldzaUJ6WUNBRUVCSVFBZ0JTZ0NCQ0VCSUFVdEFBQkJBWEZGQkVBZ0FVVU5BU0FGUWJBSGFpRUJJQVZCckFacUlRSkJBQ0VGQTBBZ0FpQUZRUUowSWdCcVFRODJBZ0FnQUNBQmFrRVBOZ0lBUVFFaEFDQUZRUUZxSWdVZ0NTZ0NCRWtOQUFzTUFRc2dBU0FIVFFSQUFrQWdBVVVFUUVFQUlRRU1BUXNnQWtFRmFpQUdRUnhxUVFFUUVTQUZJQVlvQWh3aUFFRUVkallDc0FjZ0JTQUFRUTl4TmdLc0JpQUZLQUlFSWdGQkFrOEVRQ0FGUWJBSGFpRUhJQVZCckFacUlRZ2dBa0VHYWlFQVFRRWhCUU5BSUFBZ0JrRWNha0VCRUJFQ1FDQUdLQUljSWdGQkVFOEVRQ0FCUVE5eElnSU5BUXRCQUNFQUlBUkJBVUh3TFVFQUVBOE1CUXNnQ0NBRlFRSjBJZ3BxSUFJMkFnQWdCeUFLYWlBQlFRUjJOZ0lBSUFCQkFXb2hBQ0FGUVFGcUlnVWdDU2dDQkNJQlNRMEFDd3NnQXlnQ0FDRUhDeUFESUFjZ0FXczJBZ0JCQVNFQURBRUxRUUFoQUNBRVFRRkJuUk5CQUJBUEN5QUdRU0JxSkFBZ0FBdFNBQ0FCSUFBdEFBQTZBQWNnQVNBQUxRQUJPZ0FHSUFFZ0FDMEFBam9BQlNBQklBQXRBQU02QUFRZ0FTQUFMUUFFT2dBRElBRWdBQzBBQlRvQUFpQUJJQUF0QUFZNkFBRWdBU0FBTFFBSE9nQUFDNUlCQVFSL0lBQWdBVFlDb0FFQ1FDQUFLQUpJSWdORkRRQWdBeWdDR0NJR1JRMEFJQUFvQWd3aUJFVU5BQ0FFS0FMUUswVU5BQ0FES0FJUUlnUkZCRUJCQVE4TFFRQWhBd05BSUFFZ0FDZ0NEQ2dDMENzZ0EwRzRDR3hxS0FJRVR3UkFJQUpCQVVHaXhRQkJBQkFQUVFBUEN5QUdJQU5CTkd4cUlBRTJBaWhCQVNFRklBTkJBV29pQXlBRVJ3MEFDd3NnQlF1c0J3SUpmd2grSXdCQkVHc2lDaVFBQWtBZ0FrVUVRQ0FEUVFGQit0VUFRUUFRRHd3QkN5QUNLQUlRSWdzZ0FDZ0NTQ0lHS0FJUVNRUkFJQU5CQVVHMXpnQkJBQkFQREFFTElBUWdBQ2dDYUNJRklBQW9BbXhzSWdkUEJFQWdDaUFFTmdJQUlBb2dCMEVCYXpZQ0JDQURRUUZCOS9vQUlBb1FEMEVBSVFVTUFRc2dBaUFBS0FKVUlBUWdCU0FFSUFWdUlnZHNheUlJSUFBb0FseHNhaUlGTmdJQUlBSWdCU0FHS0FJQUlnWWdCU0FHU3hzaUJqWUNBQ0FDSUFBb0FsUWdBQ2dDWENBSVFRRnFiR29pQlRZQ0NDQUNJQVVnQUNnQ1NDZ0NDQ0lJSUFVZ0NFa2JJZ2cyQWdnZ0FpQUFLQUpZSUFBb0FtQWdCMnhxSWdVMkFnUWdBaUFGSUFBb0FrZ29BZ1FpQ1NBRklBbExHeUlKTmdJRUlBSWdBQ2dDV0NBQUtBSmdJQWRCQVdwc2FpSUZOZ0lNSUFJZ0JTQUFLQUpJS0FJTUlnY2dCU0FIU1JzaUJUWUNEQ0FBS0FKSUlnd29BaEFpQndSQUlBV3NRZ0Y5SVJFZ0NLeENBWDBoRWlBSnJVSUJmU0VUSUFhdFFnRjlJUlFnRENnQ0dDRUlJQUlvQWhnaEJVRUFJUVlEUUNBRklBZ2dCa0UwYkdvb0FpZ2lDVFlDS0NBRklCUWdCU2dDQUNJTXJTSU9mQ0FPZ0NJVlBnSVFJQVVnRXlBRktBSUVJZzJ0SWc1OElBNkFJaEErQWhRZ0JVSi9JQW10SWc2R0lnOGdFTVI5SUE2SHB5QVBJQkVnRGF3aUVId2dFSC9FZlNBT2g2ZHJOZ0lNSUFVZ0R5QVZ4SDBnRG9lbklBOGdFaUFNckNJUGZDQVBmOFI5SUE2SHAyczJBZ2dnQlVFMGFpRUZJQVpCQVdvaUJpQUhSdzBBQ3dzZ0J5QUxTUVJBSUFJb0FoZ2hCUU5BSUFVZ0IwRTBiQ0lHYWlnQ0xCQVFJQUlvQWhnaUJTQUdha0VBTmdJc0lBZEJBV29pQnlBQ0tBSVFTUTBBQ3lBQ0lBQW9Ba2dvQWhBMkFoQUxJQUFvQWt3aUJRUkFJQVVRSVFzZ0FFRUJRU1FRRXlJSE5nSk1RUUFoQlNBSFJRMEFJQUlnQnhBL0lBQWdCRFlDTENBQUtBTEFBVUVYSUFNUUpFVU5BQ0FBS0FMQUFTSUVLQUlBSVFZZ0JDZ0NDQ0VIQWtBZ0JnUkFRUUVoQlNBR1FRRnhJUXNnQmtFQlJnUi9RUUFGSUFaQmZuRWhDRUVBSVFZRFFBSi9RUUFnQlVVTkFCcEJBQ0FBSUFFZ0F5QUhLQUlBRVFBQVJRMEFHaUFBSUFFZ0F5QUhLQUlFRVFBQVFRQkhDeUVGSUFkQkNHb2hCeUFHUVFKcUlnWWdDRWNOQUFzZ0JVRUJjd3NoQmdKQUFrQWdDd1JBSUFZTkFTQUFJQUVnQXlBSEtBSUFFUUFBUVFCSElRVUxJQVJCQURZQ0FDQUZRUUZ4UlEwQkRBTUxJQVJCQURZQ0FBc2dBQ2dDU0JBaFFRQWhCU0FBUVFBMkFrZ01BZ3NnQkVFQU5nSUFDeUFBSUFJUVJ5RUZDeUFLUVJCcUpBQWdCUXZ5QXdFRmZ3SkFBa0FnQUNnQ1BDSUNSUVJBSUFFb0FoQU5BVUVCRHdzZ0FrRTBiQkFVSWdWRkRRRWdBU2dDRUFSQUlBRW9BaGdoQWdOQUlBSWdBMEUwYkNJRWFpZ0NMQkFRSUFFb0FoZ2lBaUFFYWtFQU5nSXNJQU5CQVdvaUF5QUJLQUlRSWdSSkRRQUxDeUFCSUFBb0Fqd0VmeUFBS0FKTUtBSVlJUU5CQUNFQ0EwQWdCU0FDUVRSc2FpSUVJQU1nQUNnQ1FDQUNRUUowYWlnQ0FFRTBiQ0lHYWlJRC9RQUNBUDBMQWdBZ0JDQURLQUl3TmdJd0lBUWdBLzBBQWlEOUN3SWdJQVFnQS8wQUFoRDlDd0lRSUFRZ0FDZ0NUQ2dDR0NJRElBWnFJZ1lvQWlRMkFpUWdCQ0FHS0FJc05nSXNJQVpCQURZQ0xDQUNRUUZxSWdJZ0FDZ0NQQ0lHU1EwQUN5QUJLQUlRQlNBRUN3Ui9JQUFvQWt3b0FoZ2hBa0VBSVFNRFFDQUNJQU5CTkd3aUJHb29BaXdRRUNBQUtBSk1LQUlZSWdJZ0JHcEJBRFlDTENBRFFRRnFJZ01nQVNnQ0VFa05BQXNnQUNnQ1BBVWdCZ3MyQWhBZ0FTZ0NHQkFRSUFFZ0JUWUNHRUVCRHdzZ0FTZ0NHQ0VFSUFBb0Frd29BaGdoQTBFQUlRSURRQ0FFSUFKQk5Hd2lCV29pQkNBRElBVnFLQUlrTmdJa0lBUW9BaXdRRUNBQktBSVlJZ1FnQldvZ0FDZ0NUQ2dDR0NJRElBVnFJZ1VvQWl3MkFpd2dCVUVBTmdJc0lBSkJBV29pQWlBQktBSVFTUTBBQzBFQkR3c2dBQ2dDU0JBaElBQkJBRFlDU0VFQUM4NEVBUWgvQWtBZ0FrVU5BQUpBSUFBb0FxQUJJZ1ZGRFFBZ0FDZ0NTQ0lFUlEwQUlBUW9BaEJGRFFBZ0JDZ0NHQ2dDS0NBRlJ3MEFJQUlvQWhBaUNFVU5BQ0FDS0FJWUlnWW9BaWdOQUNBR0tBSXNEUUJCQUNFRUlBaEJDRThFUUNBSVFYaHhJUWtEUUNBR0lBUkJOR3hxSUFVMkFpZ2dCaUFFUVFGeVFUUnNhaUFGTmdJb0lBWWdCRUVDY2tFMGJHb2dCVFlDS0NBR0lBUkJBM0pCTkd4cUlBVTJBaWdnQmlBRVFRUnlRVFJzYWlBRk5nSW9JQVlnQkVFRmNrRTBiR29nQlRZQ0tDQUdJQVJCQm5KQk5HeHFJQVUyQWlnZ0JpQUVRUWR5UVRSc2FpQUZOZ0lvSUFSQkNHb2hCQ0FLUVFocUlnb2dDVWNOQUFzTElBaEJCM0VpQ0FSQUEwQWdCaUFFUVRSc2FpQUZOZ0lvSUFSQkFXb2hCQ0FMUVFGcUlnc2dDRWNOQUFzTElBSWdBeEEzRFFCQkFBOExJQUFvQWt3aUJVVUVRQ0FBUVFGQkpCQVRJZ1UyQWt3Z0JVVU5BUXNnQWlBRkVEOGdBQ2dDd0FGQkZpQURFQ1JGRFFBZ0FDZ0N3QUVpQmlnQ0FDRUVJQVlvQWdnaEJRSkFJQVFFUUVFQklRY2dCRUVCY1NFSUlBUkJBVVlFZjBFQUJTQUVRWDV4SVFsQkFDRUVBMEFDZjBFQUlBZEZEUUFhUVFBZ0FDQUJJQU1nQlNnQ0FCRUFBRVVOQUJvZ0FDQUJJQU1nQlNnQ0JCRUFBRUVBUndzaEJ5QUZRUWhxSVFVZ0JFRUNhaUlFSUFsSERRQUxJQWRCQVhNTElRUUNRQUpBSUFnRVFDQUVEUUVnQUNBQklBTWdCU2dDQUJFQUFFRUFSeUVIQ3lBR1FRQTJBZ0FnQjBFQmNVVU5BUXdEQ3lBR1FRQTJBZ0FMSUFBb0FrZ1FJU0FBUVFBMkFraEJBQThMSUFaQkFEWUNBQXNnQUNBQ0VFY2hCd3NnQnd2NEJBRUdmd0pBUVFGQk1CQVRJZ0lFZnlBQ0lBQW9Bc2dCSWdIOUFBTUEvUXNEQUNBQ0lBRXBBeEEzQXhBZ0FpQUJLQUlZSWdFMkFoZ2dBaUFCUVJoc0VCUWlBVFlDSENBQlJRUkFJQUlRRUVFQUR3c0NRQ0FBS0FMSUFTZ0NIQ0lEQkVBZ0FTQURJQUlvQWhoQkdHd1FFaG9NQVFzZ0FSQVFJQUpCQURZQ0hBc2dBaUFBS0FMSUFTZ0NKQ0lCTmdJa0lBSWdBVUVvRUJNaUFUWUNLQ0FCUlFSQUlBSW9BaHdRRUNBQ0VCQkJBQThMQWtBZ0FDZ0N5QUVvQWlnRVFDQUNLQUlrUlEwQkEwQWdBU0FGUVNoc0lnTnFJQUFvQXNnQktBSW9JQU5xS0FJVUlnRTJBaFFnQVVFWWJCQVVJUUVnQWlnQ0tDSUVJQU5xSWdZZ0FUWUNHQ0FCUlFSQUlBVUVmMEVBSVFFRFFDQUNLQUlvSUFGQktHeHFLQUlZRUJBZ0FVRUJhaUlCSUFWSERRQUxJQUlvQWlnRklBUUxFQkFNQlFzQ1FDQUFLQUxJQVNnQ0tDQURhaWdDR0NJRUJFQWdBU0FFSUFZb0FoUkJHR3dRRWhvZ0FpZ0NLQ0VCREFFTElBRVFFQ0FDS0FJb0lnRWdBMnBCQURZQ0dBc2dBU0FEYWlBQUtBTElBU2dDS0NBRGFpZ0NCQ0lCTmdJRUlBRkJHR3dRRkNFQklBSW9BaWdpQkNBRGFpSUdJQUUyQWhBZ0FVVUVRQ0FGQkg5QkFDRUJBMEFnQVVFb2JDSUFJQUlvQWlocUtBSVlFQkFnQWlnQ0tDQUFhaWdDRUJBUUlBRkJBV29pQVNBRlJ3MEFDeUFDS0FJb0JTQUVDeEFRREFVTEFrQWdBQ2dDeUFFb0FpZ2dBMm9vQWhBaUJBUkFJQUVnQkNBR0tBSUVRUmhzRUJJYUlBSW9BaWdoQVF3QkN5QUJFQkFnQWlnQ0tDSUJJQU5xUVFBMkFoQUxJQUVnQTJwQ0FEY0NJQ0FGUVFGcUlnVWdBaWdDSkVrTkFBc01BUXNnQVJBUUlBSkJBRFlDS0FzZ0FnVkJBQXNQQ3lBQ0tBSWNFQkFnQWhBUVFRQUxvQVlDRG44QmV5TUFRUkJySWdna0FDQUFLQUpJS0FJUUlRMGdDRUVCUVRnUUV5SUJOZ0lNQWtBZ0FVVU5BQ0FCSUFBb0FrZ29BaEFpQ1RZQ0dDQUJJQUQ5QUFKVS9Rc0NBQ0FCSUFBb0FtZzJBaEFnQUNnQ2JDRUNJQUZCQURZQ05DQUJJQUkyQWhRZ0FTQUFLQUlNSWd3b0FnQTJBaUFnQVNBTUtBSUVOZ0lrSUFFZ0RDZ0NDRFlDS0NBQklBd29BaEEyQWl3Z0FTQUpRYmdJRUJNaUFEWUNNQ0FBQkVBZ0RRUkFBMEFnRGtHNENHd2lBQ0FCS0FJd2FpSUZJQXdvQXRBcklBQnFJZ1Q5QUFJQUlnLzlDd0lFSUFVZ0JDZ0NFRFlDRkNBRklBUW9BaFEyQWhnZ0QvMGJBU0lBUVNCTkJFQWdCVUcwQjJvZ0JFR3dCMm9nQUJBU0dpQUZRYkFHYWlBRVFhd0dhaUFFS0FJRUVCSWFDeUFGSUFRb0FoZ2lBRFlDSENBRklBUW9BcVFHTmdLb0JrRUJJUVlDUUNBQVFRRkhCRUFnQkNnQ0JFRURiQ0lBUVFOclFkOEFTdzBCSUFCQkFtc2hCZ3NnQlVHa0Eyb2hDU0FGUVNCcUlRb2dCRUVjYWlFTFFRQWhBQUpBSUFaQkNFa05BQ0FFSUFaQkEzUnFRUnhxSUFwTEJFQWdDeUFGSUFaQkFuUnFRYVFEYWtrTkFRc2dCa0Y4Y1NFQVFRQWhBZ05BSUFvZ0FrRUNkQ0lEYWlBTElBSkJBM1JxSWdkQkhHb2dCMEVVYWlBSFFReHFJQWY5Q1FJRS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQURJQWxxSUFkQkdHb2dCMEVRYWlBSFFRaHFJQWY5Q1FJQS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQUNRUVJxSWdJZ0FFY05BQXNnQUNBR1JnMEJDeUFBUVFGeUlRTWdCa0VCY1FSQUlBb2dBRUVDZENJQ2FpQUxJQUJCQTNScUlnQW9BZ1EyQWdBZ0FpQUphaUFBS0FJQU5nSUFJQU1oQUFzZ0F5QUdSZzBBQTBBZ0NpQUFRUUowSWdKcUlBc2dBRUVEZEdvaUF5Z0NCRFlDQUNBQ0lBbHFJQU1vQWdBMkFnQWdDaUFBUVFGcUlnTkJBblFpQW1vZ0N5QURRUU4wYWlJREtBSUVOZ0lBSUFJZ0NXb2dBeWdDQURZQ0FDQUFRUUpxSWdBZ0JrY05BQXNMSUFVZ0JDZ0NxQVkyQXF3R0lBNUJBV29pRGlBTlJ3MEFDd3NnQVNFRERBRUxJQWhCREdvRVFDQUlLQUlNSWdFb0FqQWlBQVIvSUFBUUVDQUlLQUlNQlNBQkN4QVFJQWhCQURZQ0RBc0xJQWhCRUdva0FDQURDL2tFQVFoL0l3QkJnQUpySWdNa0FDQUFCRUJCL0F4QkVTQUNFQjBnQXlBQUtBSUFOZ0x3QVNBQ1Fab1JJQU5COEFGcUVCWWdBeUFBS0FJRU5nTGdBU0FDUWFjUklBTkI0QUZxRUJZZ0F5QUFLQUlJTmdMUUFTQUNRWUkzSUFOQjBBRnFFQllnQXlBQUtBSVFOZ0xBQVNBQ1FmMFFJQU5Cd0FGcUVCWWdBVUVBU2dSQUEwQWdBQ2dDMENzaEJDQURJQWMyQXJBQklBSkJvZzBnQTBHd0FXb1FGaUFESUFRZ0IwRzRDR3hxSWdRb0FnQTJBcUFCSUFKQm1SRWdBMEdnQVdvUUZpQURJQVFvQWdRMkFwQUJJQUpCOURjZ0EwR1FBV29RRmlBRElBUW9BZ2cyQW9BQklBSkJvRFlnQTBHQUFXb1FGaUFESUFRb0FndzJBbkFnQWtHd05pQURRZkFBYWhBV0lBTWdCQ2dDRURZQ1lDQUNRWWdSSUFOQjRBQnFFQllnQXlBRUtBSVVOZ0pRSUFKQnRqZ2dBMEhRQUdvUUZrSFZDMEVYSUFJUUhTQUVLQUlFQkVBZ0JFR3dCMm9oQmlBRVFhd0dhaUVJUVFBaEJRTkFJQWdnQlVFQ2RDSUphaWdDQUNFS0lBTWdCaUFKYWlnQ0FEWUNSQ0FESUFvMkFrQWdBa0dMRENBRFFVQnJFQllnQlVFQmFpSUZJQVFvQWdSSkRRQUxDeUFDRUc0Z0F5QUVLQUlZTmdJd0lBSkJ3RFlnQTBFd2FoQVdJQU1nQkNnQ3BBWTJBaUFnQWtIeE5pQURRU0JxRUJaQkFTRUdRZTBMUVJRZ0FoQWRBa0FnQkNnQ0dFRUJSd1JBSUFRb0FnUWlCVUVBVEEwQklBVkJBMnhCQW1zaEJnc2dCRUVjYWlFSVFRQWhCUU5BSUFNZ0NDQUZRUU4wYWlrQ0FFSWdpVGNERUNBQ1FZc01JQU5CRUdvUUZpQUZRUUZxSWdVZ0JrY05BQXNMSUFJUWJpQURJQVFvQXFnR05nSUFJQUpCNERZZ0F4QVdRWmtNUVFVZ0FoQWRJQWRCQVdvaUJ5QUJSdzBBQ3d0Qm1neEJCQ0FDRUIwTElBTkJnQUpxSkFBTDVnb0RDWDhCZXdGK0l3QkJzQUZySWdVa0FBSkFJQUZCZ0FOeEJFQkJuaTFCQ3lBQ0VCME1BUXNDUUNBQlFRRnhSUTBBSUFBb0FrZ2lCa1VOQUNNQVFkQUFheUlESkFCQjdneEJEU0FDRUIwZ0EwRUFPZ0JQSUFOQkNUb0FUaUFESUFZcEFnQTNBa1FnQXlBRFFjNEFhaUlFTmdKQUlBSkJoamtnQTBGQWF4QVdJQU1nQmlrQ0NEY0NOQ0FESUFRMkFqQWdBa0gxT0NBRFFUQnFFQllnQXlBR0tBSVFOZ0lrSUFNZ0JEWUNJQ0FDUVpNM0lBTkJJR29RRmdKQUlBWW9BaGhGRFFBZ0JpZ0NFRVVOQUFOQUlBTWdBMEhPQUdvaUNqWUNFQ0FESUFjMkFoUWdBa0dPRFNBRFFSQnFFQllnQmlnQ0dDQUhRVFJzYWlFSUl3QkJNR3NpQkNRQUlBUkJDVHNBTGlBRVFRazZBQzBnQkNBSUtRSUFOd0lrSUFRZ0JFRXRhaUlKTmdJZ0lBSkJ6ellnQkVFZ2FoQVdJQVFnQ0NnQ0dEWUNGQ0FFSUFrMkFoQWdBa0hGT0NBRVFSQnFFQllnQkNBSUtBSWdOZ0lFSUFRZ0NUWUNBQ0FDUWFvNElBUVFGaUFFUVRCcUpBQWdBeUFLTmdJQUlBSkJsQXdnQXhBV0lBZEJBV29pQnlBR0tBSVFTUTBBQ3d0Qm5BeEJBaUFDRUIwZ0EwSFFBR29rQUFzQ1FDQUJRUUp4UlEwQUlBQW9Ba2hGRFFCQitRMUJKQ0FDRUIwZ0JTQUFLUUpVTndPZ0FTQUNRZWNSSUFWQm9BRnFFQllnQlNBQUtRSmNOd09RQVNBQ1FjVVJJQVZCa0FGcUVCWWdCU0FBS1FOb053T0FBU0FDUWRjUklBVkJnQUZxRUJZZ0FDZ0NEQ0FBS0FKSUtBSVFJQUlRUzBHY0RFRUNJQUlRSFFzQ1FDQUJRUWh4UlEwQUlBQW9Ba2hGRFFBZ0FDZ0NhQ0FBS0FKc2JDSUVSUTBBSUFBb0Fwd0JJUU1EUUNBRElBQW9Ba2dvQWhBZ0FoQkxJQU5CakN4cUlRTWdDMEVCYWlJTElBUkhEUUFMQ3lBQlFSQnhSUTBBSUFBb0FzZ0JJUUZCMHcxQkpTQUNFQjBnQlNBQi9RQURBUDBMQkhBZ0FrSEpLeUFGUWZBQWFoQVdRY0VOUVJFZ0FoQWRBa0FnQVNnQ0hFVU5BQ0FCS0FJWVJRMEFRUUFoQXdOQUlBRW9BaHdnQTBFWWJHb2lBQzhCQUNFRUlBQXBBd2doRFNBRklBQW9BaEEyQW1BZ0JTQU5Od05ZSUFVZ0JEWUNVQ0FDUVlzNElBVkIwQUJxRUJZZ0EwRUJhaUlESUFFb0FoaEpEUUFMQzBHYURFRUVJQUlRSFFKQUlBRW9BaWdpQkVVTkFDQUJLQUlrSWdkRkRRQkJBQ0VEUVFBaEFBSkFJQWRCQkU4RVFDQUhRWHh4SVFBRFFDQUVJQU5CQTNKQktHeHFRUVJxSUFRZ0EwRUNja0VvYkdwQkJHb2dCQ0FEUVFGeVFTaHNha0VFYWlBRUlBTkJLR3hxL1FrQ0JQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBTS9hNEJJUXdnQTBFRWFpSURJQUJIRFFBTElBd2dEQ0FNL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2E0Qklnd2dEQ0FNL1EwRUJRWUhBQUVDQXdBQkFnTUFBUUlEL2E0Qi9Sc0FJUU1nQUNBSFJnMEJDd05BSUFRZ0FFRW9iR29vQWdRZ0Eyb2hBeUFBUVFGcUlnQWdCMGNOQUFzTElBTkZEUUJCc0ExQkVDQUNFQjBnQVNnQ0pBUkFJQUVvQWlnaEFFRUFJUWNEUUNBRklBQWdCMEVvYkNJRWFpZ0NCQ0lHTmdKRUlBVWdCellDUUNBQ1FkRTRJQVZCUUdzUUZpQUJLQUlvSVFBQ1FDQUdSUTBBUVFBaEF5QUFJQVJxS0FJUVJRMEFBMEFnQVNnQ0tDQUVhaWdDRUNBRFFSaHNhaUlBL1FBREFDRU1JQVVnQUNrREVEY0RPQ0FGSUF6OUN3TW9JQVVnQXpZQ0lDQUNRYVhSQUNBRlFTQnFFQllnQTBFQmFpSURJQVpIRFFBTElBRW9BaWdoQUFzQ1FDQUFJQVJxSWdZb0FoaEZEUUJCQUNFRElBWW9BaFJGRFFBRFFDQUFJQVJxS0FJWUlBTkJHR3hxSWdBdkFRQWhCaUFBS1FNSUlRMGdCU0FBS0FJUU5nSVFJQVVnRFRjRENDQUZJQVkyQWdBZ0FrR0xPQ0FGRUJZZ0EwRUJhaUlESUFFb0FpZ2lBQ0FFYWlnQ0ZFa05BQXNMSUFkQkFXb2lCeUFCS0FJa1NRMEFDd3RCbWd4QkJDQUNFQjBMUVp3TVFRSWdBaEFkQ3lBRlFiQUJhaVFBQzQ4Q0FRTi9Ba0JCQVVIb0FSQVRJZ0VFZnlBQlFRRTJBZ0FnQVVFQk5nSzRBU0FCSUFFdEFMd0JRUVp5T2dDOEFTQUJRUUZCakN3UUV5SUFOZ0lNSUFCRkRRRWdBVUVCUWVnSEVCTWlBRFlDRUNBQVJRMEJJQUZDQURjRE1DQUJRWDgyQWl3Z0FVSG9CellDRkFKQVFRRkJNQkFUSWdBRVFDQUFRUUEyQWhnZ0FFSGtBRFlDSUNBQVFlUUFRUmdRRXlJQ05nSWNJQUlOQVNBQUVCQUxJQUZCQURZQ3lBRU1BZ3NnQUVFQU5nSW9JQUVnQURZQ3lBRWdBUkF6SWdBMkFzUUJJQUJGRFFFZ0FSQXpJZ0EyQXNBQklBQkZEUUVDUUJDUkFVVU5BQXNnQVVFQUVHWWlBRFlDMUFFZ0FFVUVRQ0FCUVFBUVppSUFOZ0xVQVNBQVJRMENDeUFCQlVFQUN3OExJQUVRT0VFQUM0MEpBZ2wvQVg0akFFSFFBV3NpQnlRQUlBQW9Ba2doQ1FKQUFrQUNRQ0FBS0FKb1FRRkhEUUFnQUNnQ2JFRUJSdzBBSUFBb0Fwd0JLQUxjS3cwQkN5QUFLQUlJUVFoR0RRQWdCa0VCUWVIT0FFRUFFQThNQVFzQ1FDQUJLQUlRSWd4RkRRQWdBQ2dDb0FFaENpQUJLQUlZSVFzZ0RFRUlUd1JBSUF4QmVIRWhEd05BSUFzZ0NFRTBiR29nQ2pZQ0tDQUxJQWhCQVhKQk5HeHFJQW8yQWlnZ0N5QUlRUUp5UVRSc2FpQUtOZ0lvSUFzZ0NFRURja0UwYkdvZ0NqWUNLQ0FMSUFoQkJISkJOR3hxSUFvMkFpZ2dDeUFJUVFWeVFUUnNhaUFLTmdJb0lBc2dDRUVHY2tFMGJHb2dDallDS0NBTElBaEJCM0pCTkd4cUlBbzJBaWdnQ0VFSWFpRUlJQTVCQ0dvaURpQVBSdzBBQ3dzZ0RFRUhjU0lNUlEwQUEwQWdDeUFJUVRSc2FpQUtOZ0lvSUFoQkFXb2hDQ0FOUVFGcUlnMGdERWNOQUFzTElBSWdBM0lnQkhJZ0JYSkZCRUFnQmtFRVFhOHdRUUFRRHlBQVFnQTNBaHdnQUNBQUtRSm9Od0lrSUFFZ0NmMEFBZ0Q5Q3dJQUlBRWdCaEEzSVFnTUFRc2dBa0VBU0FSQUlBY2dBallDQUNBR1FRRkJ4OTBBSUFjUUQwRUFJUWdNQVFzZ0FpQUpLQUlJSWdoTEJFQWdCeUFJTmdJVUlBY2dBallDRUNBR1FRRkJtK0VBSUFkQkVHb1FEMEVBSVFnTUFRc0NRQ0FDSUFrb0FnQWlDRWtFUUNBSElBZzJBc1FCSUFjZ0FqWUN3QUVnQmtFQ1FmdmpBQ0FIUWNBQmFoQVBJQUJCQURZQ0hDQUpLQUlBSVFJTUFRc2dBQ0FDSUFBb0FsUnJJQUFvQWx4dU5nSWNDeUFCSUFJMkFnQWdBMEVBU0FSQUlBY2dBellDSUNBR1FRRkJoOTBBSUFkQklHb1FEMEVBSVFnTUFRc2dBeUFKS0FJTUlnSkxCRUFnQnlBQ05nSTBJQWNnQXpZQ01DQUdRUUZCN3Q4QUlBZEJNR29RRDBFQUlRZ01BUXNDUUNBRElBa29BZ1FpQWtrRVFDQUhJQUkyQXJRQklBY2dBellDc0FFZ0JrRUNRY3ppQUNBSFFiQUJhaEFQSUFCQkFEWUNJQ0FKS0FJRUlRTU1BUXNnQUNBRElBQW9BbGhySUFBb0FtQnVOZ0lnQ3lBQklBTTJBZ1JCQUNFSUlBUkJBRXdFUUNBSElBUTJBa0FnQmtFQlFjWGNBQ0FIUVVCckVBOE1BUXNnQkNBSktBSUFJZ0pKQkVBZ0J5QUNOZ0pVSUFjZ0JEWUNVQ0FHUVFGQm91TUFJQWRCMEFCcUVBOE1BUXNDUUNBRUlBa29BZ2dpQWtzRVFDQUhJQUkyQXFRQklBY2dCRFlDb0FFZ0JrRUNRY1BnQUNBSFFhQUJhaEFQSUFBZ0FDZ0NhRFlDSkNBSktBSUlJUVFNQVFzZ0FDQUFOUUpjSWhBZ0JDQUFLQUpVYTYxOFFnRjlJQkNBUGdJa0N5QUJJQVEyQWdnZ0JVRUFUQVJBSUFjZ0JUWUNZQ0FHUVFGQmd0d0FJQWRCNEFCcUVBOE1BUXNnQlNBSktBSUVJZ0pKQkVBZ0J5QUNOZ0owSUFjZ0JUWUNjQ0FHUVFGQjh1RUFJQWRCOEFCcUVBOE1BUXNDUUNBRklBa29BZ3dpQWtzRVFDQUhJQUkyQXBRQklBY2dCVFlDa0FFZ0JrRUNRWlhmQUNBSFFaQUJhaEFQSUFBZ0FDZ0NiRFlDS0NBSktBSU1JUVVNQVFzZ0FDQUFOUUpnSWhBZ0JTQUFLQUpZYTYxOFFnRjlJQkNBUGdJb0N5QUJJQVUyQWd3Z0FDQUFMUUJFUVFKeU9nQkVJQUVnQmhBM0lnaEZCRUJCQUNFSURBRUxJQWNnQWYwQUFnRDlDd1NBQVNBR1FRUkJ0RGtnQjBHQUFXb1FEd3NnQjBIUUFXb2tBQ0FJQzVVQ0FRZC9Jd0JCSUdzaUJTUUFBbjhnQUNnQ1NDSUVSUVJBSUFOQkFVSEY1Z0JCQUJBUFFRQU1BUXRCQUVFRUlBUW9BaEFRRXlJRVJRMEFHaUFCQkVBZ0FDZ0NTQ0VJQTBBQ1FBSkFJQUlnQmtFQ2RHb29BZ0FpQnlBSUtBSVFUd1JBSUFVZ0J6WUNFQ0FEUVFGQitSRWdCVUVRYWhBUERBRUxJQVFnQjBFQ2RHb2lDU2dDQUVVTkFTQUZJQWMyQWdBZ0EwRUJRWTBhSUFVUUR3c2dCQkFRUVFBTUF3c2dDVUVCTmdJQUlBWkJBV29pQmlBQlJ3MEFDd3NnQkJBUUlBQW9Ba0FRRUFKQUlBRUVRQ0FBSUFGQkFuUWlCQkFVSWdNMkFrQWdBMFVFUUNBQVFRQTJBanhCQUF3REN5QURJQUlnQkJBU0dnd0JDeUFBUVFBMkFrQUxJQUFnQVRZQ1BFRUJDeUVLSUFWQklHb2tBQ0FLQzd3RkFRZC9JQUZCQVVFa0VCTWlCRFlDU0FKQUFrQWdCRVVOQUFKQUlBRW9Bc1FCUVJJZ0F4QWtCRUFnQVNnQ3hBRkJFeUFERUNRTkFRc01BZ3NnQVNnQ3hBRWlCeWdDQUNFR0lBY29BZ2doQkFKQUlBWUVRRUVCSVFVZ0JrRUJSd1JBSUFaQmZuRWhDUU5BQW45QkFDQUZSUTBBR2tFQUlBRWdBQ0FESUFRb0FnQVJBQUJGRFFBYUlBRWdBQ0FESUFRb0FnUVJBQUJCQUVjTElRVWdCRUVJYWlFRUlBaEJBbW9pQ0NBSlJ3MEFDd3NDUUFKQUlBWkJBWEVFUUNBRlJRMEJJQUVnQUNBRElBUW9BZ0FSQUFCQkFFY2hCUXNnQjBFQU5nSUFJQVZGRFFFTUF3c2dCMEVBTmdJQUN3d0RDeUFIUVFBMkFnQUxBa0FnQVNnQ3dBRkJGQ0FERUNRRVFDQUJLQUxBQVVFVklBTVFKQTBCQ3d3Q0N5QUJLQUxBQVNJSEtBSUFJUVlnQnlnQ0NDRUVBa0FnQmdSQVFRRWhCU0FHUVFGeElRa2dCa0VCUmdSL1FRQUZJQVpCZm5FaEJrRUFJUWdEUUFKL1FRQWdCVVVOQUJwQkFDQUJJQUFnQXlBRUtBSUFFUUFBUlEwQUdpQUJJQUFnQXlBRUtBSUVFUUFBUVFCSEN5RUZJQVJCQ0dvaEJDQUlRUUpxSWdnZ0JrY05BQXNnQlVVTElRWUNRQUpBSUFrRVFDQUdEUUVnQVNBQUlBTWdCQ2dDQUJFQUFFRUFSeUVGQ3lBSFFRQTJBZ0FnQlVVTkFRd0RDeUFIUVFBMkFnQUxEQU1MSUFkQkFEWUNBQXNnQWtFQlFTUVFFeUlBTmdJQUlBQkZEUUFnQVNnQ1NDQUFFRDhnQVNnQ3lBRWdBU2dDYkNBQktBSm9iQ0lBTmdJa0lBQkJLQkFUSVFNZ0FTZ0N5QUVpQUNBRE5nSW9Ba0FnQTBVTkFDQUFLQUlrUlFSQVFRRVBDMEVBSVFRRFFDQURJQVJCS0d3aUJXb2lBRUVBTmdJVUlBQkI1QUEyQWh4QjVBQkJHQkFUSVFBZ0JTQUJLQUxJQVNJSEtBSW9JZ05xSUFBMkFoZ2dBRVVOQVVFQklRb2dCRUVCYWlJRUlBY29BaVJKRFFBTERBRUxJQUlvQWdBUUlVRUFJUW9nQWtFQU5nSUFDeUFLRHdzZ0FTZ0NTQkFoSUFGQkFEWUNTRUVBQ3dJQUN3UUFRUUVMTkFBQ1FDQUFSUTBBSUFGRkRRQWdBQ0FCS0FJRU5nS2tBU0FBSUFFb0FnQTJBcUFCSUFBZ0FTZ0N1RUJCQW5FMkF1QUJDd3UwQlFFSWZ5QUFLQUlZSWdRb0FoQWlDVVVFUUVFQUR3c2dCQ2dDR0NFRklBQW9BaFFvQWdBb0FoUWhCQUpBQWtBZ0FVVUVRRUVBSVFFRFFDQUZLQUlZSVFJZ0JDZ0NIQ0FFS0FJWVFaZ0JiR29pQUVHTUFXc29BZ0FpQnlBQVFaUUJheWdDQUNJSWF5RURJQUJCa0FGcktBSUFJQUJCbUFGcktBSUFheUVBQWtBZ0J5QUlSZzBBSUFDdElBT3Rma0lnaUZBTkFBd0VDeUFBSUFOc0lRTUNRRUVFSUFKQkEzWWdBa0VIY1VFQVIyb2lBQ0FBUVFOR0d5SUNSUTBBSUFLdElBT3Rma0lnaUZBTkFBd0VDMEYvSVFBZ0FpQURiQ0lDSUFGQmYzTkxEUUlnQkVITUFHb2hCQ0FGUVRScUlRVWdBU0FDYWlJQklRQWdCa0VCYWlJR0lBbEhEUUFMREFFTFFRQWhBU0FBS0FKQVJRUkFBMEFnQlNnQ0dDRUNJQVFvQWh3Z0JDZ0NHRUdZQVd4cUlnQkJCR3NvQWdBaUJ5QUFRUXhyS0FJQUlnaHJJUU1nQUVFSWF5Z0NBQ0FBUVJCcktBSUFheUVBQWtBZ0J5QUlSZzBBSUFDdElBT3Rma0lnaUZBTkFBd0VDeUFBSUFOc0lRTUNRRUVFSUFKQkEzWWdBa0VIY1VFQVIyb2lBQ0FBUVFOR0d5SUNSUTBBSUFLdElBT3Rma0lnaUZBTkFBd0VDMEYvSVFBZ0FpQURiQ0lDSUFGQmYzTkxEUUlnQkVITUFHb2hCQ0FGUVRScUlRVWdBU0FDYWlJQklRQWdCa0VCYWlJR0lBbEhEUUFMREFFTEEwQWdCU2dDR0NFQ0lBUW9BaHdnQkNnQ0dFR1lBV3hxSWdCQmpBRnJLQUlBSWdjZ0FFR1VBV3NvQWdBaUNHc2hBeUFBUVpBQmF5Z0NBQ0FBUVpnQmF5Z0NBR3NoQUFKQUlBY2dDRVlOQUNBQXJTQURyWDVDSUloUURRQU1Bd3NnQUNBRGJDRURBa0JCQkNBQ1FRTjJJQUpCQjNGQkFFZHFJZ0FnQUVFRFJoc2lBa1VOQUNBQ3JTQURyWDVDSUloUURRQU1Bd3RCZnlFQUlBSWdBMndpQWlBQlFYOXpTdzBCSUFSQnpBQnFJUVFnQlVFMGFpRUZJQUVnQW1vaUFTRUFJQVpCQVdvaUJpQUpSdzBBQ3dzZ0FBOExRWDhMMmdRQkMzOGdBQVJBSUFBb0FoUWlBUVJBSUFFb0FnQWlCUVJBSUFVb0FoUWhBeUFGS0FJUUJIOUJFRUVSSUFBdEFDaEJBWEViSVFnRFFDQURLQUljSWdJRVFDQURLQUlnSWdGQm1BRnVJUXBCQUNFSklBRkJtQUZQQkg4RFFDQUNLQUl3SWdFRVFDQUNLQUkwSWdaQktHNGhCMEVBSVFRZ0JrRW9Ud1IvQTBBZ0FTZ0NJQkFwSUFGQkFEWUNJQ0FCS0FJa0VDa2dBVUVBTmdJa0lBRWdDQkVDQUNBQlFTaHFJUUVnQkVFQmFpSUVJQWRIRFFBTElBSW9BakFGSUFFTEVCQWdBa0VBTmdJd0N5QUNLQUpVSWdFRVFDQUNLQUpZSWdaQktHNGhCMEVBSVFRZ0JrRW9Ud1IvQTBBZ0FTZ0NJQkFwSUFGQkFEWUNJQ0FCS0FJa0VDa2dBVUVBTmdJa0lBRWdDQkVDQUNBQlFTaHFJUUVnQkVFQmFpSUVJQWRIRFFBTElBSW9BbFFGSUFFTEVCQWdBa0VBTmdKVUN5QUNLQUo0SWdFRVFDQUNLQUo4SWdaQktHNGhCMEVBSVFRZ0JrRW9Ud1IvQTBBZ0FTZ0NJQkFwSUFGQkFEWUNJQ0FCS0FJa0VDa2dBVUVBTmdJa0lBRWdDQkVDQUNBQlFTaHFJUUVnQkVFQmFpSUVJQWRIRFFBTElBSW9BbmdGSUFFTEVCQWdBa0VBTmdKNEN5QUNRWmdCYWlFQ0lBbEJBV29pQ1NBS1J3MEFDeUFES0FJY0JTQUNDeEFRSUFOQkFEWUNIQXNDUUNBREtBSW9SUTBBSUFNb0FpUWlBVVVOQUNBQkVCQWdBLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQWlRTElBTW9BalFRRUNBRFFjd0FhaUVESUF0QkFXb2lDeUFGS0FJUVNRMEFDeUFGS0FJVUJTQURDeEFRSUFWQkFEWUNGQ0FBS0FJVUtBSUFFQkFnQUNnQ0ZDSUJRUUEyQWdBTElBRVFFQ0FBUVFBMkFoUUxJQUFvQWtRUUVDQUFFQkFMQzhzVEFSVi9Jd0JCSUdzaUR5UUFJQThnQlRZQ0dDQUJJQU1vQWh4QnpBQnNhaWdDSENBREtBSWdRWmdCYkdvaEVRSkFBa0FnQXlnQ0tBMEFJQkVvQWhoRkRRQWdFVUVjYWlFSkEwQUNRQ0FKS0FJSUlBa29BZ0JIQkg4Z0NTZ0NEQ0FKS0FJRVJnVkJBUXNOQUNBREtBSWtJZ0VnQ1NnQ0dFRW9iazhFUUNBSVFRRkJnaFZCQUJBUERBUUxJQWtvQWhRZ0FVRW9iR29pQVNnQ0lCQmlJQUVvQWlRUVlpQUJLQUlVSUFFb0FoQnNJZzFGRFFBZ0FTZ0NHQ0VCSUExQkNFOEVRQ0FOUVhoeElRdEJBQ0VLQTBBZ0FVSUFOd0xvQXlBQlFnQTNBcWdESUFGQ0FEY0M2QUlnQVVJQU53S29BaUFCUWdBM0F1Z0JJQUZDQURjQ3FBRWdBVUlBTndKb0lBRkNBRGNDS0NBQlFZQUVhaUVCSUFwQkNHb2lDaUFMUncwQUN3dEJBQ0VLSUExQkIzRWlEVVVOQUFOQUlBRkNBRGNDS0NBQlFVQnJJUUVnQ2tFQmFpSUtJQTFIRFFBTEN5QUpRU1JxSVFrZ0RFRUJhaUlNSUJFb0FoaEpEUUFMQ3lBRklRMENRQ0FDTFFBQVFRSnhSUTBBSUFkQkJVMEVRQ0FJUVFKQnNSOUJBQkFQREFFTEFrQWdCUzBBQUVIL0FVWUVRQ0FGTFFBQlFaRUJSZzBCQ3lBSVFRSkIyeDlCQUJBUERBRUxJQThnQlVFR2FpSU5OZ0lZQzBFVUVCUWlDMFVOQUFKL0lBQXRBR3hCQVhFRVFDQUFRU2hxSVFjZ0FDZ0NLQ0VOSUFCQkxHb01BUXNnQWkwQWlDeEJBbkVFUUNBQ1FiQW9haUVISUFJb0FyQW9JUTBnQWtHOEtHb01BUXNnRHlBRklBZHFJQTFyTmdJY0lBOUJHR29oQnlBUFFSeHFDeUlTS0FJQUlRQWdDMElBTndJTUlBc2dEVFlDQ0NBTElBMDJBZ0FnQ3lBQUlBMXFOZ0lFSUF0QkFSQWZSUVJBSUFzUVpCb2dDeWdDQ0NBTEtBSUFheUVhSUFzUUxDQWFJQTFxSVFFQ1FDQUNMUUFBUVFSeFJRMEFJQWNvQWdBZ0VpZ0NBQ0FCYTJwQkFVMEVRQ0FJUVFKQm1DRkJBQkFQREFFTEFrQWdBUzBBQUVIL0FVWUVRQ0FCTFFBQlFaSUJSZzBCQ3lBSVFRSkJ3aUZCQUJBUERBRUxJQUZCQW1vaEFRc2dFaUFTS0FJQUlBY29BZ0FnQVd0cU5nSUFJQWNnQVRZQ0FDQUVRUUEyQWdBZ0JpQVBLQUlZSUFWck5nSUFRUUVoRnd3QkN5QVJLQUlZQkVBZ0VVRWNhaUVRQTBBZ0F5Z0NKQ0VBSUJBb0FoUWhBUUpBSUJBb0FnZ2dFQ2dDQUVjRWZ5QVFLQUlNSUJBb0FnUkdCVUVCQ3cwQUlBRWdBRUVvYkdvaUZDZ0NGQ0FVS0FJUWJDSVlSUTBBSUJRb0FoZ2hDVUVBSVJVRFFBSkFBbjhnQ1NnQ0tFVUVRQ0FMSUJRb0FpQWdGU0FES0FJb1FRRnFFR0FNQVFzZ0MwRUJFQjhMUlFSQUlBbEJBRFlDSkF3QkN5QUpLQUlvUlFSQVFRQWhBUU5BSUFFaUFFRUJhaUVCSUFzZ0ZDZ0NKQ0FWSUFBUVlFVU5BQXNnRUNnQ0hDRUJJQWxCQXpZQ0lDQUpJQUUyQWhnZ0NTQUJJQUJyUVFGcU5nSWNDeUFKQW45QkFTQUxRUUVRSDBVTkFCcEJBaUFMUVFFUUgwVU5BQm9nQzBFQ0VCOGlBRUVEUndSQUlBQkJBMm9NQVFzZ0MwRUZFQjhpQUVFZlJ3UkFJQUJCQm1vTUFRc2dDMEVIRUI5QkpXb0xOZ0lrUVFBaEFRTkFJQUVpQUVFQmFpRUJJQXRCQVJBZkRRQUxJQWtnQ1NnQ0lDQUFhallDSUFKQUFrQUNmeUFKS0FJb0lnQkZCRUFnQWlnQzBDc2dBeWdDSEVHNENHeHFLQUlRSVFBZ0NTZ0NNRVVFUUNBSktBSUFRZkFCRUJjaUFVVU5CQ0FKSUFFMkFnQWdBU0FKS0FJd1FSaHNha0VBUWZBQkVCVWFJQWxCQ2pZQ01Bc2dDU2dDQUNJQi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0NBQ0FCUWdBM0FoQkJBVUVLUWUwQUlBQkJBWEViSUFCQkJIRWJJUXBCQUF3QkN5QUpLQUlBSWdFZ0FFRUJheUlNUVJoc2FpSUtLQUlFSUFvb0FneEhEUUVnQWlnQzBDc2dBeWdDSEVHNENHeHFLQUlRSVFvZ0NTZ0NNQ0lNSUFCQkFXcEpCSDhnQVNBTVFRcHFJZ3hCR0d3UUZ5SUJSUTBESUFrZ0FUWUNBQ0FCSUFrb0FqQkJHR3hxUVFCQjhBRVFGUm9nQ1NBTU5nSXdJQWtvQWdBRklBRUxJQUJCR0d4cUlnSDlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlDd0lBSUFGQ0FEY0NFQUovUVFFZ0NrRUVjUTBBR2tIdEFDQUtRUUZ4UlEwQUdrRUNRUUpCQVNBQlFReHJLQUlBSWdwQkNrWWJJQXBCQVVZYkN5RUtJQUFMSVF3Z0FTQUtOZ0lNQ3lBSktBSWtJUUFnQWlnQzBDc2dBeWdDSEVHNENHeHFMUUFRUWNBQWNRUkFBMEFnREVFWWJDSU9JQWtvQWdCcUlBQkJBU0FNR3lJVE5nSVFJQWtvQWlBaEZrRUFJUW9nQUNFQklCTkJBazhFUUFOQUlBcEJBV29oQ2lBQlFRTkxJUnNnQVVFQmRpRUJJQnNOQUFzTElBb2dGbW9pQVVFaFR3UkFJQThnQVRZQ0VDQUlRUUZCdlBRQUlBOUJFR29RRHd3REN5QUxJQUVRSHlFS0lBa29BZ0FpQVNBT2FpSU9JQW8yQWhRZ0FDQU9LQUlRYXlJQVFRQk1EUU1nQWlnQzBDc2dBeWdDSEVHNENHeHFLQUlRSVFvZ0NTZ0NNQ0lPSUF4QkFtcEpCRUFnQVNBT1FRcHFJZzVCR0d3UUZ5SUJSUTBESUFrZ0FUWUNBQ0FCSUFrb0FqQkJHR3hxUVFCQjhBRVFGUm9nQ1NBT05nSXdJQWtvQWdBaEFRc2dBU0FNUVFGcUlneEJHR3hxSWdIOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOUN3SUFJQUZDQURjQ0VDQUJBbjlCQVNBS1FRUnhEUUFhUWUwQUlBcEJBWEZGRFFBYVFRSkJBa0VCSUFGQkRHc29BZ0FpQVVFS1Joc2dBVUVCUmhzTE5nSU1EQUFMQUFzRFFDQU1RUmhzSWc0Z0NTZ0NBR29pQVNBQktBSU1JQUVvQWdScklnRWdBQ0FBSUFGS0d5SUJOZ0lRSUFrb0FpQWhFMEVBSVFvZ0FVRUNUd1JBQTBBZ0NrRUJhaUVLSUFGQkEwc2hIQ0FCUVFGMklRRWdIQTBBQ3dzZ0NpQVRhaUlCUVNGUEJFQWdEeUFCTmdJQUlBaEJBVUc4OUFBZ0R4QVBEQUlMSUFzZ0FSQWZJUW9nQ1NnQ0FDSUJJQTVxSWc0Z0NqWUNGQ0FBSUE0b0FoQnJJZ0JCQUV3TkFpQUNLQUxRS3lBREtBSWNRYmdJYkdvb0FoQWhDaUFKS0FJd0lnNGdERUVDYWtrRVFDQUJJQTVCQ21vaURrRVliQkFYSWdGRkRRSWdDU0FCTmdJQUlBRWdDU2dDTUVFWWJHcEJBRUh3QVJBVkdpQUpJQTQyQWpBZ0NTZ0NBQ0VCQ3lBQklBeEJBV29pREVFWWJHb2lBZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQWdBZ0FVSUFOd0lRSUFFQ2YwRUJJQXBCQkhFTkFCcEI3UUFnQ2tFQmNVVU5BQnBCQWtFQ1FRRWdBVUVNYXlnQ0FDSUJRUXBHR3lBQlFRRkdHd3MyQWd3TUFBc0FDeUFMRUN3TUJRc2dDVUZBYXlFSklCVkJBV29pRlNBWVJ3MEFDd3NnRUVFa2FpRVFJQmxCQVdvaUdTQVJLQUlZU1EwQUN3c2dDeEJrUlFSQUlBc1FMQXdCQ3lBTEtBSUlJQXNvQWdCcklSMGdDeEFzSUIwZ0RXb2hBUUpBSUFJdEFBQkJCSEZGRFFBZ0J5Z0NBQ0FTS0FJQUlBRnJha0VCVFFSQUlBaEJBa0dZSVVFQUVBOE1BUXNDUUNBQkxRQUFRZjhCUmdSQUlBRXRBQUZCa2dGR0RRRUxJQWhCQWtIQ0lVRUFFQThNQVFzZ0FVRUNhaUVCQ3lBU0lCSW9BZ0FnQnlnQ0FDQUJhMm8yQWdBZ0J5QUJOZ0lBUVFFaEZ5QUVRUUUyQWdBZ0JpQVBLQUlZSUFWck5nSUFDeUFQUVNCcUpBQWdGd3VXSkFJVWZ3NStBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FBS0FKVURnVUFBUUlEQkFvTEFrQWdBQ2dDTkNJR0lBQW9Bc1FCSWdGSkJFQWdBQ2dDUUNJSElBRkJBV3BKRFFFTElBQW9BdXdCUVFGQjlEOUJBQkFQREF3TElBQW9BaXhGQkVBZ0FDZ0NKQ0VDUVFBaEFRd0ZDeUFBUVFBMkFpd2dBQ2dDUkNFRFFRRWhBUXdFQ3dKQUlBQW9BalFpQmlBQUtBTEVBU0lCU1FSQUlBQW9Ba0FpQnlBQlFRRnFTUTBCQ3lBQUtBTHNBVUVCUWFIQUFFRUFFQThNQ3dzZ0FDZ0NMRVVFUUNBQUtBSWtJUVJCQUNFQkRBZ0xJQUJCQURZQ0xDQUFLQUl3SVFOQkFTRUJEQWNMQWtBZ0FDZ0NOQ0lFSUFBb0FzUUJJZ3BKQkVBZ0FDZ0NRQ0lPSUFwQkFXcEpEUUVMSUFBb0F1d0JRUUZCcU1FQVFRQVFEd3dLQ3lBQUtBSXNSUVJBSUFBb0FpZ2hDd3dHQ3lBQVFnQTNBdVFCSUFCQkFEWUNMQ0FBS0FMSUFTRU1BMEFnRENBSFFRUjBhaUlGS0FJSUlnOEVRQ0FGS0FJTUlSSkJBQ0VCQTBBQ1FDQVBJQUZCZjNOcUloQWdFaUFCUVFSMGFpSVJLQUlBYWlJSlFSOUxEUUFnQlNnQ0FDSVRRWDhnQ1haTERRQWdBQ0FDSUJNZ0NYUWlDU0FDSUFsSkd5QUpJQUliSWdJMkF1UUJDd0pBSUJFb0FnUWdFR29pQ1VFZlN3MEFJQVVvQWdRaUVFRi9JQWwyU3cwQUlBQWdBeUFRSUFsMElna2dBeUFKU1JzZ0NTQURHeUlETmdMb0FRc2dBVUVCYWlJQklBOUhEUUFMQ3lBSFFRRnFJZ2NnQ2tjTkFBc2dBa1VOQnlBRFJRMEhJQUF0QUFCRkJFQWdBQ0FBS0FMUUFUWUNiQ0FBSUFBb0Fzd0JOZ0prSUFBZ0FDZ0MyQUUyQW5BZ0FDQUFLQUxVQVRZQ2FBc2dBQ2dDTUNFRlFRRWhBUXdGQ3dKQUlBQW9BalFpQlNBQUtBTEVBU0lKU1FSQUlBQW9Ba0FpRWlBSlFRRnFTUTBCQ3lBQUtBTHNBVUVCUWZ2QUFFRUFFQThNQ1FzZ0FDZ0NMRVVFUUNBQUtBTElBU0lOSUFBb0Fod2lCRUVFZEdvaEN5QUFLQUlvSVFnTUJBc2dBRUlBTndMa0FTQUFRUUEyQWl3Z0FDZ0N5QUVoRFFOQUlBMGdCa0VFZEdvaUNpZ0NDQ0lPQkVBZ0NpZ0NEQ0VRUVFBaEFRTkFBa0FnRGlBQlFYOXphaUlSSUJBZ0FVRUVkR29pRXlnQ0FHb2lERUVmU3cwQUlBb29BZ0FpRkVGL0lBeDJTdzBBSUFBZ0FpQVVJQXgwSWd3Z0FpQU1TUnNnRENBQ0d5SUNOZ0xrQVFzQ1FDQVRLQUlFSUJGcUlneEJIMHNOQUNBS0tBSUVJaEZCZnlBTWRrc05BQ0FBSUFNZ0VTQU1kQ0lNSUFNZ0RFa2JJQXdnQXhzaUF6WUM2QUVMSUFGQkFXb2lBU0FPUncwQUN3c2dCa0VCYWlJR0lBbEhEUUFMSUFKRkRRWWdBMFVOQmdKQUlBQXRBQUFFUUNBQUtBSnNJUVlNQVFzZ0FDQUFLQUxRQVNJR05nSnNJQUFnQUNnQ3pBRTJBbVFnQUNBQUtBTFlBVFlDY0NBQUlBQW9BdFFCTmdKb0MwRUJJUUVNQXdzQ1FDQUFLQUkwSWdZZ0FDZ0N4QUVpQVVrRVFDQUFLQUpBSWc4Z0FVRUJha2tOQVFzZ0FDZ0M3QUZCQVVIT3dBQkJBQkFQREFZTElBQW9BaXhGQkVBZ0FDZ0N5QUVnQUNnQ0hDSUdRUVIwYWlFRklBQW9BaWdoQjBFQUlRRU1BZ3NnQUNBR05nSWNJQUJCQURZQ0xFRUJJUUVNQVFzRFFBSi9Ba0FnQVVVRVFDQUNRUUZxSVFJTUFRc2dBQ0FETmdJb0lBQW9BamdnQTAwTkNTQUFLQUl3SVFSQkFBd0JDMEVCQ3lFQkEwQUNRQUpBQWtBQ1FDQUJSUVJBSUFBZ0JEWUNJQ0FFSUFBb0FqeFBEUUVnQUNBR05nSWNJQVloQVVFQUlRVU1CQXNnQUNBQ05nSWtJQUFvQWt3Z0FrMEVRQ0FBS0FJY0lRRkJBU0VGREFRTElBQW9BaEFnQUNnQ0lHd2dBQ2dDRENBQUtBSW9iR29nQUNnQ0ZDQUFLQUljYkdvZ0FDZ0NHQ0FDYkdvaUFTQUFLQUlJVHdSQURBd0xJQUFvQWdRZ0FVRUJkR29pQVM4QkFBMEJEQTBMSUFBb0FpaEJBV29oQXd3QkMwRUFJUUVNQXd0QkFTRUJEQUlMQTBBQ1FBSkFBa0FnQlVVRVFDQUJJQWRQRFFFZ0FDZ0NJQ0lGSUFBb0FzZ0JJQUZCQkhScUlnMG9BZ2hQRFFNZ0FDMEFBRVVFUUNBQUlBMG9BZ3dnQlVFRWRHb2lBU2dDRENBQktBSUliRFlDVEFzZ0FDZ0NTQ0VDUVFFaEFRd0ZDeUFBSUFGQkFXb2lBVFlDSEF3QkN5QUFLQUlnUVFGcUlRUkJBQ0VCREFNTFFRQWhCUXdCQzBFQklRVU1BQXNBQ3dBTEFBc0RRQUovQWtBZ0FVVUVRQ0FBSUFkQkFXb2lCellDS0F3QkN5QUdJQTlQRFFnZ0FFSUFOd0xrQVNBQUtBTElBU0FHUVFSMGFpSUZLQUlJSWd0RkRRZ2dCU2dDRENFS1FRQWhBa0VBSVFSQkFDRUJBMEFDUUNBTElBRkJmM05xSWdrZ0NpQUJRUVIwYWlJT0tBSUFhaUlJUVI5TERRQWdCU2dDQUNJTVFYOGdDSFpMRFFBZ0FDQUVJQXdnQ0hRaUNDQUVJQWhKR3lBSUlBUWJJZ1EyQXVRQkN3SkFJQTRvQWdRZ0NXb2lDRUVmU3cwQUlBVW9BZ1FpQ1VGL0lBaDJTdzBBSUFBZ0FpQUpJQWgwSWdnZ0FpQUlTUnNnQ0NBQ0d5SUNOZ0xvQVFzZ0FVRUJhaUlCSUF0SERRQUxJQVJGRFFZZ0FrVU5CZ0pBSUFBdEFBQUVRQ0FBS0FKc0lRSU1BUXNnQUNBQUtBTFFBU0lDTmdKc0lBQWdBQ2dDekFFMkFtUWdBQ0FBS0FMWUFUWUNjQ0FBSUFBb0F0UUJOZ0pvQzBFQURBRUxRUUVMSVFFRFFBSkFBa0FDUUFKQUlBRkZCRUFnQUNBQ05nTGdBU0FDSUFBb0FuQlBEUUVnQUNnQ1pDRU5RUUFoQVF3RUN5QUFLQUk0SUFkTkJFQWdBQ2dDSUNFRFFRRWhBUXdFQ3lBQUtBSVFJQUFvQWlCc0lBQW9BZ3dnQjJ4cUlBQW9BaFFnQm14cUlBQW9BaGdnQUNnQ0pHeHFJZ0VnQUNnQ0NFOEVRQXdMQ3lBQUtBSUVJQUZCQVhScUlnRXZBUUFOQVF3TUN5QUFJQVpCQVdvaUJqWUNIQXdCQzBFQUlRRU1Bd3RCQVNFQkRBSUxBMEFDUUFKQUFrQWdBQUovSUFGRkJFQWdBQ0FOTmdMY0FTQU5JQUFvQW1oUERRSWdBQ2dDTUF3QkN5QURRUUZxQ3lJRE5nSWdJQUFvQWp3aUFTQUZLQUlJSWdRZ0FTQUVTUnNnQTBzRVFDQUZLQUlBSWdFZ0FhMGlIaUFFSUFOQmYzTnFJZ2l0SWhhR0loY2dGb2luUncwRElBVW9BZ1FpQkVKL0lCYUlwM0VnQkVjTkF5QUVyU0lWSUJhR0loaENBWDBpR1NBQU5RTFlBWHdnR0lBaEh5QVpJQUFvQXRBQklnbXRmQ0FZZ0NFYUlCZENBWDBpR3lBQU5RTFVBWHdnRjRBaElDQWJJQUFvQXN3QklnNnRmQ0FYZ0NFY0lBRkNmeUFGS0FJTUlBTkJCSFJxSWdzb0FnQWlDaUFJYXEwaUhZaW5jU0FCUncwRElBUWdGU0FMS0FJRUlnRWdDR3F0SWhXR0lpRWdGWWluUncwRElBQW9BdUFCSWdTdElpSWdJWUpDQUZJRVFDQUVJQWxIRFFSQ2Z5QVZoa0ovaFNBYVF2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFBb0F0d0JJZ1N0SWhVZ0hpQWRob0pDQUZJRVFDQUVJQTVIRFFSQ2Z5QWRoa0ovaFNBY1F2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFzb0FnZ2lCRVVOQXlBTEtBSU1SUTBESUJ5bklnc2dJS2RHRFFNZ0dxY2lDQ0FmcDBZTkF5QUFJQUFvQWtRaUJ6WUNLQ0FBSUJVZ0czd2dGNENuSUFwMklBc2dDblpySUJrZ0lud2dHSUNuSUFGMklBZ2dBWFpySUFSc2FqWUNKRUVCSVFFTUJRc2dBQ2dDM0FFaUFTQUFLQUxrQVNJRWFpQUJJQVJ3YXlFTkRBRUxJQUFvQXVBQklnRWdBQ2dDNkFFaUJHb2dBU0FFY0dzaEFrRUFJUUVNQXd0QkFDRUJEQUVMUVFFaEFRd0FDd0FMQUFzQUN3TkFBbjhDUUNBQlJRUkFJQUFnQ0VFQmFpSUlOZ0lvREFFTElBQWdCallDNEFFZ0FDZ0NjQ0FHVFEwSElBQW9BbVFoRDBFQURBRUxRUUVMSVFFRFFBSkFBa0FDUUFKQUlBRkZCRUFnQUNBUE5nTGNBU0FQSUFBb0FtaFBEUUVnQUNBRk5nSWNJQVVoQkVFQUlRRU1CQXNnQUNnQ09DQUlUUVJBSUFBb0FpQWhCMEVCSVFFTUJBc2dBQ2dDRUNBQUtBSWdiQ0FBS0FJTUlBaHNhaUFBS0FJVUlBUnNhaUFBS0FJWUlBQW9BaVJzYWlJQklBQW9BZ2hQQkVBTUNnc2dBQ2dDQkNBQlFRRjBhaUlCTHdFQURRRU1Dd3NnQUNnQzRBRWlBU0FBS0FMb0FTSUdhaUFCSUFad2F5RUdEQUVMUVFBaEFRd0RDMEVCSVFFTUFnc0RRQUpBQWtBQ1FBSkFJQUZGQkVBZ0JDQVNUdzBDSUFBZ0FDZ0NNQ0lITmdJZ0lBMGdCRUVFZEdvaEN3d0JDeUFBSUFkQkFXb2lCellDSUFzZ0FDZ0NQQ0lCSUFzb0FnZ2lBaUFCSUFKSkd5QUhTd1JBSUFzb0FnQWlBU0FCclNJZUlBSWdCMEYvYzJvaUNxMGlGb1lpRnlBV2lLZEhEUU1nQ3lnQ0JDSUNRbjhnRm9pbmNTQUNSdzBESUFLdEloVWdGb1lpR0VJQmZTSVpJQUExQXRnQmZDQVlnQ0VmSUJrZ0FDZ0MwQUVpRHExOElCaUFJUm9nRjBJQmZTSWJJQUExQXRRQmZDQVhnQ0VnSUJzZ0FDZ0N6QUVpREsxOElCZUFJUndnQVVKL0lBc29BZ3dnQjBFRWRHb2lBeWdDQUNJSklBcHFyU0lkaUtkeElBRkhEUU1nQWlBVklBTW9BZ1FpQVNBS2FxMGlGWVlpSVNBVmlLZEhEUU1nQUNnQzRBRWlBcTBpSWlBaGdrSUFVZ1JBSUFJZ0RrY05CRUovSUJXR1FuK0ZJQnBDLy8vLy93K0RJQmFHZzFBTkJBc2dBQ2dDM0FFaUFxMGlGU0FlSUIyR2drSUFVZ1JBSUFJZ0RFY05CRUovSUIyR1FuK0ZJQnhDLy8vLy93K0RJQmFHZzFBTkJBc2dBeWdDQ0NJQ1JRMERJQU1vQWd4RkRRTWdIS2NpQXlBZ3AwWU5BeUFhcHlJS0lCK25SZzBESUFBZ0FDZ0NSQ0lJTmdJb0lBQWdGU0FiZkNBWGdLY2dDWFlnQXlBSmRtc2dHU0FpZkNBWWdLY2dBWFlnQ2lBQmRtc2dBbXhxTmdJa1FRRWhBUXdGQ3lBQUlBUkJBV29pQkRZQ0hBd0JDeUFBS0FMY0FTSUJJQUFvQXVRQklnSnFJQUVnQW5CcklROUJBQ0VCREFNTFFRQWhBUXdCQzBFQklRRU1BQXNBQ3dBTEFBc0RRQUovQWtBZ0FVVUVRQ0FBSUF0QkFXb2lDellDS0F3QkN5QUFJQVUyQWlBZ0FDZ0NQQ0FGVFEwR0lBQW9BbXdoQ0VFQURBRUxRUUVMSVFFRFFBSkFBa0FDUUFKQUlBRkZCRUFnQUNBSU5nTGdBU0FJSUFBb0FuQlBEUUVnQUNnQ1pDRU5RUUFoQVF3RUN5QUFLQUk0SUF0TkJFQWdBQ2dDSENFR1FRRWhBUXdFQ3lBQUtBSVFJQUFvQWlCc0lBQW9BZ3dnQzJ4cUlBQW9BaFFnQUNnQ0hHeHFJQUFvQWhnZ0FDZ0NKR3hxSWdFZ0FDZ0NDRThFUUF3SkN5QUFLQUlFSUFGQkFYUnFJZ0V2QVFBTkFRd0tDeUFBS0FJZ1FRRnFJUVVNQVF0QkFDRUJEQU1MUVFFaEFRd0NDd05BQWtBQ1FBSkFBa0FnQVVVRVFDQUFJQTAyQXR3QklBMGdBQ2dDYUU4TkFpQUFJQVEyQWh3Z0JDRUdEQUVMSUFBZ0JrRUJhaUlHTmdJY0N5QUdJQTVKQkVBZ0FDZ0NJQ0lISUFBb0FzZ0JJQVpCQkhScUlnRW9BZ2dpQTA4TkF5QUJLQUlBSWdJZ0FxMGlIaUFESUFkQmYzTnFJZ3F0SWhhR0loY2dGb2luUncwRElBRW9BZ1FpQTBKL0lCYUlwM0VnQTBjTkF5QURyU0lWSUJhR0loaENBWDBpR1NBQU5RTFlBWHdnR0lBaEh5QVpJQUFvQXRBQklnK3RmQ0FZZ0NFYUlCZENBWDBpR3lBQU5RTFVBWHdnRjRBaElDQWJJQUFvQXN3QklnbXRmQ0FYZ0NFY0lBSkNmeUFCS0FJTUlBZEJCSFJxSWdFb0FnQWlCeUFLYXEwaUhZaW5jU0FDUncwRElBTWdGU0FCS0FJRUlnSWdDbXF0SWhXR0lpRWdGWWluUncwRElBQW9BdUFCSWdPdElpSWdJWUpDQUZJRVFDQURJQTlIRFFSQ2Z5QVZoa0ovaFNBYVF2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFBb0F0d0JJZ090SWhVZ0hpQWRob0pDQUZJRVFDQURJQWxIRFFSQ2Z5QWRoa0ovaFNBY1F2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFFb0FnZ2lBMFVOQXlBQktBSU1SUTBESUJ5bklnRWdJS2RHRFFNZ0dxY2lDaUFmcDBZTkF5QUFJQUFvQWtRaUN6WUNLQ0FBSUJVZ0czd2dGNENuSUFkMklBRWdCM1pySUJrZ0lud2dHSUNuSUFKMklBb2dBblpySUFOc2FqWUNKRUVCSVFFTUJRc2dBQ2dDM0FFaUFTQUFLQUxrQVNJQ2FpQUJJQUp3YXlFTkRBRUxJQUFvQXVBQklnRWdBQ2dDNkFFaUFtb2dBU0FDY0dzaENFRUFJUUVNQXd0QkFDRUJEQUVMUVFFaEFRd0FDd0FMQUFzQUN3TkFBbjhDUUNBQlJRUkFJQVJCQVdvaEJBd0JDeUFBSUFNMkFpQWdBQ2dDUENBRFRRMEZJQUFvQWtRaEFrRUFEQUVMUVFFTElRRURRQUpBQWtBQ1FBSkFJQUZGQkVBZ0FDQUNOZ0lvSUFJZ0FDZ0NPRThOQVNBQUlBWTJBaHdnQmlFQlFRQWhCUXdFQ3lBQUlBUTJBaVFnQUNnQ1RDQUVUUVJBSUFBb0Fod2hBVUVCSVFVTUJBc2dBQ2dDRUNBQUtBSWdiQ0FBS0FJTUlBQW9BaWhzYWlBQUtBSVVJQUFvQWh4c2FpQUFLQUlZSUFSc2FpSUJJQUFvQWdoUEJFQU1DQXNnQUNnQ0JDQUJRUUYwYWlJQkx3RUFEUUVNQ1FzZ0FDZ0NJRUVCYWlFRERBRUxRUUFoQVF3REMwRUJJUUVNQWdzRFFBSkFBa0FDUUNBRlJRUkFJQUVnQjA4TkFTQUFLQUlnSWdVZ0FDZ0N5QUVnQVVFRWRHb2lEU2dDQ0U4TkF5QUFMUUFBUlFSQUlBQWdEU2dDRENBRlFRUjBhaUlCS0FJTUlBRW9BZ2hzTmdKTUN5QUFLQUpJSVFSQkFTRUJEQVVMSUFBZ0FVRUJhaUlCTmdJY0RBRUxJQUFvQWloQkFXb2hBa0VBSVFFTUF3dEJBQ0VGREFFTFFRRWhCUXdBQ3dBTEFBc0FDMEVBRHdzZ0FDZ0M3QUZCQVVHYUNrRUFFQThMUVFBUEN5QUJRUUU3QVFCQkFRdVJDd0VLZndKQUlBRW9BZ0FnQkVFRGJDSU1kaUlHUVpDQWdBRnhEUUFnQUNBQVFSeHFJZzRnQUNnQ2JDQUdRZThEY1dvdEFBQkJBblJxSWdvMkFtZ2dBQ0FBS0FJRUlBb29BZ0FpQ1NnQ0FDSUlheUlHTmdJRUFrQWdDQ0FBS0FJQUlnZEJFSFpMQkVBZ0NTZ0NCQ0VMSUFBZ0NEWUNCQ0FLSUFsQkNFRU1JQVlnQ0VraUJodHFLQUlBTmdJQUlBc2dDMFVnQmhzaENTQUFLQUlJSVFZRFFBSkFJQVlOQUNBQUtBSVFJZ1pCQVdvaEN5QUdMUUFCSVFvZ0JpMEFBRUgvQVVZRVFDQUtRWkFCVHdSQUlBQWdBQ2dDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFZTUFnc2dBQ0FMTmdJUUlBY2dDa0VKZEdvaEIwRUhJUVlNQVFzZ0FDQUxOZ0lRUVFnaEJpQUhJQXBCQ0hScUlRY0xJQUFnQmtFQmF5SUdOZ0lJSUFBZ0IwRUJkQ0lITmdJQUlBQWdDRUVCZENJSU5nSUVJQWhCZ0lBQ1NRMEFDeUFJSVFZTUFRc2dBQ0FISUFoQkVIUnJJZ2MyQWdBZ0JrR0FnQUp4UlFSQUlBa29BZ1FoQ3lBS0lBbEJERUVJSUFZZ0NFa2lDQnRxS0FJQU5nSUFJQXRGSUFzZ0NCc2hDU0FBS0FJSUlRZ0RRQUpBSUFnTkFDQUFLQUlRSWdoQkFXb2hDeUFJTFFBQklRb2dDQzBBQUVIL0FVWUVRQ0FLUVpBQlR3UkFJQUFnQUNnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ01BZ3NnQUNBTE5nSVFJQWNnQ2tFSmRHb2hCMEVISVFnTUFRc2dBQ0FMTmdJUVFRZ2hDQ0FISUFwQkNIUnFJUWNMSUFBZ0NFRUJheUlJTmdJSUlBQWdCMEVCZENJSE5nSUFJQUFnQmtFQmRDSUdOZ0lFSUFaQmdJQUNTUTBBQ3d3QkN5QUpLQUlFSVFrTElBbEZEUUFnQUNBT0lBRW9BZ1FnREVFUmFuWkJCSEVnQVVFRWF5SU5LQUlBSUF4QkUycDJRUUZ4SUFFb0FnQWlDQ0FNUVJCcWRrSEFBSEVnQ0NBTWRrR3FBWEZ5SUFnZ0RFRU1ha0VPSUFRYmRrRVFjWEp5Y2lJUFFkQzVBV290QUFCQkFuUnFJZ3MyQW1nZ0FDQUdJQXNvQWdBaUNpZ0NBQ0lJYXlJR05nSUVBa0FnQ0NBSFFSQjJTd1JBSUFvb0FnUWhDU0FBSUFnMkFnUWdDeUFLUVFoQkRDQUdJQWhKSWdZYmFpZ0NBRFlDQUNBSklBbEZJQVliSVFvZ0FDZ0NDQ0VHQTBBQ1FDQUdEUUFnQUNnQ0VDSUdRUUZxSVFzZ0JpMEFBU0VKSUFZdEFBQkIvd0ZHQkVBZ0NVR1FBVThFUUNBQUlBQW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VHREFJTElBQWdDellDRUNBSElBbEJDWFJxSVFkQkJ5RUdEQUVMSUFBZ0N6WUNFRUVJSVFZZ0J5QUpRUWgwYWlFSEN5QUFJQVpCQVdzaUJqWUNDQ0FBSUFkQkFYUWlCellDQUNBQUlBaEJBWFFpQ0RZQ0JDQUlRWUNBQWtrTkFBc01BUXNnQUNBSElBaEJFSFJySWdrMkFnQWdCa0dBZ0FKeFJRUkFJQW9vQWdRaEJ5QUxJQXBCREVFSUlBWWdDRWtpQ0J0cUtBSUFOZ0lBSUFkRklBY2dDQnNoQ2lBQUtBSUlJUWNEUUFKQUlBY05BQ0FBS0FJUUlnZEJBV29oQ3lBSExRQUJJUWdnQnkwQUFFSC9BVVlFUUNBSVFaQUJUd1JBSUFBZ0FDZ0NERUVCYWpZQ0RDQUpRWUQrQTJvaENVRUlJUWNNQWdzZ0FDQUxOZ0lRSUFrZ0NFRUpkR29oQ1VFSElRY01BUXNnQUNBTE5nSVFRUWdoQnlBSklBaEJDSFJxSVFrTElBQWdCMEVCYXlJSE5nSUlJQUFnQ1VFQmRDSUpOZ0lBSUFBZ0JrRUJkQ0lHTmdJRUlBWkJnSUFDU1EwQUN3d0JDeUFLS0FJRUlRb0xJQUpCQUNBRGF5QURJQW9nRDBIUXV3RnFMUUFBY3lJREd6WUNBQ0FOSUEwb0FnQkJJQ0FNZEhJMkFnQWdBU0FCS0FJQUlBTkJFM1JCRUhJZ0RIUnlOZ0lBSUFFZ0FTZ0NCRUVJSUF4MGNqWUNCQ0FFSUFWeVJRUkFJQUZCZmlBQUtBSjhhMEVDZEdvaUFpQUNLQUlFUVlDQUFuSTJBZ1FnQWlBQ0tBSUFJQU5CSDNSeVFZQ0FCSEkyQWdBZ0FrRUVheUlDSUFJb0FnQkJnSUFJY2pZQ0FBc2dCRUVEUncwQUlBRWdBQ2dDZkVFQ2RHb2lBRUVFYWlBQUtBSUVRUVJ5TmdJQUlBQWdBQ2dDREVFQmNqWUNEQ0FBSUFBb0FnZ2dBMEVTZEhKQkFuSTJBZ2dMQzZzTEFRbC9Ba0FnQVNnQ0FDQUVRUU5zSWcxMklnZEJrSUNBQVhFTkFDQUhRZThEY1NJSFJRMEFJQUFnQUVFY2FpSU9JQUFvQW13Z0Iyb3RBQUJCQW5ScUlnczJBbWdnQUNBQUtBSUVJQXNvQWdBaUNpZ0NBQ0lKYXlJSE5nSUVBa0FnQ1NBQUtBSUFJZ2hCRUhaTEJFQWdDaWdDQkNFTUlBQWdDVFlDQkNBTElBcEJDRUVNSUFjZ0NVa2lCeHRxS0FJQU5nSUFJQXdnREVVZ0J4c2hDaUFBS0FJSUlRY0RRQUpBSUFjTkFDQUFLQUlRSWdkQkFXb2hEQ0FITFFBQklRc2dCeTBBQUVIL0FVWUVRQ0FMUVpBQlR3UkFJQUFnQUNnQ0RFRUJhallDRENBSVFZRCtBMm9oQ0VFSUlRY01BZ3NnQUNBTU5nSVFJQWdnQzBFSmRHb2hDRUVISVFjTUFRc2dBQ0FNTmdJUVFRZ2hCeUFJSUF0QkNIUnFJUWdMSUFBZ0IwRUJheUlITmdJSUlBQWdDRUVCZENJSU5nSUFJQUFnQ1VFQmRDSUpOZ0lFSUFsQmdJQUNTUTBBQ3lBSklRY01BUXNnQUNBSUlBbEJFSFJySWdnMkFnQWdCMEdBZ0FKeFJRUkFJQW9vQWdRaERDQUxJQXBCREVFSUlBY2dDVWtpQ1J0cUtBSUFOZ0lBSUF4RklBd2dDUnNoQ2lBQUtBSUlJUWtEUUFKQUlBa05BQ0FBS0FJUUlnbEJBV29oRENBSkxRQUJJUXNnQ1MwQUFFSC9BVVlFUUNBTFFaQUJUd1JBSUFBZ0FDZ0NERUVCYWpZQ0RDQUlRWUQrQTJvaENFRUlJUWtNQWdzZ0FDQU1OZ0lRSUFnZ0MwRUpkR29oQ0VFSElRa01BUXNnQUNBTU5nSVFRUWdoQ1NBSUlBdEJDSFJxSVFnTElBQWdDVUVCYXlJSk5nSUlJQUFnQ0VFQmRDSUlOZ0lBSUFBZ0IwRUJkQ0lITmdJRUlBZEJnSUFDU1EwQUN3d0JDeUFLS0FJRUlRb0xBa0FnQ2tVTkFDQUFJQTRnQVNnQ0JDQU5RUkZxZGtFRWNTQUJRUVJySWc4b0FnQWdEVUVUYW5aQkFYRWdBU2dDQUNJSklBMUJFR3AyUWNBQWNTQUpJQTEyUWFvQmNYSWdDU0FOUVF4cVFRNGdCQnQyUVJCeGNuSnlJZ3BCMExrQmFpMEFBRUVDZEdvaUREWUNhQ0FBSUFjZ0RDZ0NBQ0lMS0FJQUlnbHJJZ2MyQWdRZ0NrSFF1d0ZxTFFBQUlRNENRQ0FKSUFoQkVIWkxCRUFnQ3lnQ0JDRUtJQUFnQ1RZQ0JDQU1JQXRCQ0VFTUlBY2dDVWtpQnh0cUtBSUFOZ0lBSUFvZ0NrVWdCeHNoQ3lBQUtBSUlJUWNEUUFKQUlBY05BQ0FBS0FJUUlnZEJBV29oRENBSExRQUJJUW9nQnkwQUFFSC9BVVlFUUNBS1FaQUJUd1JBSUFBZ0FDZ0NERUVCYWpZQ0RDQUlRWUQrQTJvaENFRUlJUWNNQWdzZ0FDQU1OZ0lRSUFnZ0NrRUpkR29oQ0VFSElRY01BUXNnQUNBTU5nSVFRUWdoQnlBSUlBcEJDSFJxSVFnTElBQWdCMEVCYXlJSE5nSUlJQUFnQ0VFQmRDSUlOZ0lBSUFBZ0NVRUJkQ0lKTmdJRUlBbEJnSUFDU1EwQUN3d0JDeUFBSUFnZ0NVRVFkR3NpQ2pZQ0FDQUhRWUNBQW5GRkJFQWdDeWdDQkNFSUlBd2dDMEVNUVFnZ0J5QUpTU0lKRzJvb0FnQTJBZ0FnQ0VVZ0NDQUpHeUVMSUFBb0FnZ2hDQU5BQWtBZ0NBMEFJQUFvQWhBaUNFRUJhaUVNSUFndEFBRWhDU0FJTFFBQVFmOEJSZ1JBSUFsQmtBRlBCRUFnQUNBQUtBSU1RUUZxTmdJTUlBcEJnUDREYWlFS1FRZ2hDQXdDQ3lBQUlBdzJBaEFnQ2lBSlFRbDBhaUVLUVFjaENBd0JDeUFBSUF3MkFoQkJDQ0VJSUFvZ0NVRUlkR29oQ2dzZ0FDQUlRUUZySWdnMkFnZ2dBQ0FLUVFGMElnbzJBZ0FnQUNBSFFRRjBJZ2MyQWdRZ0IwR0FnQUpKRFFBTERBRUxJQXNvQWdRaEN3c2dBa0VBSUFOcklBTWdDeUFPY3lJQ0d6WUNBQ0FQSUE4b0FnQkJJQ0FOZEhJMkFnQWdBU0FCS0FJQUlBSkJFM1JCRUhJZ0RYUnlOZ0lBSUFFZ0FTZ0NCRUVJSUExMGNqWUNCQ0FFSUFaeVJRUkFJQUVnQlVFQ2RHc2lBQ0FBS0FJRVFZQ0FBbkkyQWdRZ0FDQUFLQUlBSUFKQkgzUnlRWUNBQkhJMkFnQWdBRUVFYXlJQUlBQW9BZ0JCZ0lBSWNqWUNBQXNnQkVFRFJ3MEFJQUVnQlVFQ2RHb2lBQ0FBS0FJRVFRRnlOZ0lFSUFBZ0FDZ0NBQ0FDUVJKMGNrRUNjallDQUNBQVFRUnJJZ0FnQUNnQ0FFRUVjallDQUFzZ0FTQUJLQUlBUVlDQWdBRWdEWFJ5TmdJQUN3dXRBUUFnQUVId25RRTJBbVFnQUVId25RRTJBbUFnQUVId25RRTJBbHdnQUVId25RRTJBbGdnQUVId25RRTJBbFFnQUVId25RRTJBbEFnQUVId25RRTJBa3dnQUVId25RRTJBa2dnQUVId25RRTJBa1FnQUVId25RRTJBa0FnQUVId25RRTJBandnQUVId25RRTJBamdnQUVId25RRTJBalFnQUVId25RRTJBakFnQUVId25RRTJBaXdnQUVId25RRTJBaWdnQUVId25RRTJBaVFnQUVId25RRTJBaUFnQUVId25RRTJBaHdMa2dZQ0NYOEVmaUFBSUFFMkFnQWdBUDBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQXdnZ0FDQUROZ0ljSUFBZ0FrRUJheUlGTmdJWUlBRkJBM0VoQ2dKL0lBSkJBRXdFUUNBQklRUWdBd3dCQ3lBQUlBRkJBV29pQkRZQ0FDQUJMUUFBQ3lFQlFRZ2hCeUFBUVFnMkFoQWdBQ0FCclNJTk53TUlJQUFnRFVML0FZTWlEa0wvQVZFaUNUWUNGQUpBSUFwQkEwWU5BQ0FBSUFKQkFtc2lDRFlDR0FKL0lBSkJBa2dFUUNBRUlRRWdBd3dCQ3lBQUlBUkJBV29pQVRZQ0FDQUVMUUFBQ3lFRUlBQkJEMEVRSUE1Qy93RlJHeUlITmdJUUlBQWdCSzBpRGtML0FZTWlEMEwvQVZFaUNUWUNGQ0FBSUE1Q0NJWWdEWVFpRFRjRENDQUtRUUpHQkVBZ0FTRUVJQVVoQWlBSUlRVU1BUXNnQUNBQ1FRTnJJZ3MyQWhnZ0FBSi9JQUpCQTBnRVFDQUJJUVlnQXd3QkN5QUFJQUZCQVdvaUJqWUNBQ0FCTFFBQUM2MGlEa0wvQVlNaUVFTC9BVkVpQ1RZQ0ZDQUFRUWRCQ0NBUFF2OEJVUnNnQjJvaUFUWUNFQ0FBSUE0Z0I2MkdJQTJFSWcwM0F3Z2dDa0VCUmdSQUlBWWhCQ0FCSVFjZ0NDRUNJQXNoQlF3QkN5QUFJQUpCQkdzaUJUWUNHQ0FBQW44Z0FrRUVTQVJBSUFZaEJDQUREQUVMSUFBZ0JrRUJhaUlFTmdJQUlBWXRBQUFMclNJT1F2OEJnMEwvQVZFaUNUWUNGQ0FBUVFkQkNDQVFRdjhCVVJzZ0FXb2lCellDRUNBQUlBNGdBYTJHSUEyRUlnMDNBd2dnQ3lFQ0N3SkFJQUpCQlU0RVFDQUVLQUlBSVFNZ0FDQUNRUVZyTmdJWUlBQWdCRUVFYWpZQ0FBd0JDMEVBSVFGQmYwRUFJQU1iSVFNZ0FrRUNTQTBBQTBBZ0FDQUVRUUZxSWdJMkFnQWdCQzBBQUNFRUlBQWdCVUVCYXlJR05nSVlJQU5CL3dFZ0FYUkJmM054SUFRZ0FYUnlJUU1nQVVFSWFpRUJJQVZCQVVzaERDQUNJUVFnQmlFRklBd05BQXNMSUFBZ0EwRVlkaUlCUWY4QlJqWUNGQ0FBUVFkQkNDQUpHeUlDUVFkQkNDQURRZjhCY1NJRVFmOEJSaHRxSWdWQkIwRUlJQU5CQ0haQi93RnhJZ1pCL3dGR0cyb2lDRUVIUVFnZ0EwRVFka0gvQVhFaUEwSC9BVVliSUFkcWFqWUNFQ0FBSUFZZ0FuUWdBeUFGZEhJZ0FTQUlkSElnQkhLdElBZXRoaUFOaERjRENBdTJCUUlTZndKK0FuOGdBQ2dDSENBQlFaZ0JiR29pQWtHUUFXc29BZ0FnQWtHWUFXc29BZ0JySWdNaEJTQUNRWXdCYXlnQ0FDQUNRWlFCYXlnQ0FHc2lBaUVHUWNBQUlBTWdBMEhBQUU4YklRTkJ3QUFnQWlBQ1FjQUFUeHNoQkFKQUlBVkZEUUFnQmtVTkFDQURSUTBBSUFSRkRRQkJmeUFFYmtFQ2RpQURTUTBBUVFGQkhCQVRJZ0lnQkRZQ0RDQUNJQU0yQWdnZ0FpQUdOZ0lFSUFJZ0JUWUNBQ0FDSUFTdEloUWdCcTE4UWdGOUlCU0FJaFNuSWdRMkFoUWdBaUFEclNJVklBV3RmRUlCZlNBVmdDSVZweUlETmdJUUFrQWdGRUwvLy8vL0Q0TWdGVUwvLy8vL0Q0TitRaUNJcHcwQUlBSkJCQ0FESUFSc0VCTWlBellDR0NBRFJRMEFJQUlNQWdzZ0FoQVFDMEVBQ3lJSlJRUkFRUUFQQ3dKQUlBRUVRQU5BSUE1Qm1BRnNJZzhnQUNnQ0hHb2lCU2dDR0NJQ0JFQWdCVUVjYWlFUUlBVW9BaFFoQXlBRktBSVFJUVJCQUNFS0EwQWdBeUFFYkFSQUlCQWdDa0VrYkdvaEJrRUFJUXNEUUNBR0tBSVVJQXRCS0d4cUlnZ29BaFFpQWlBSUtBSVFJZ2RzQkVCQkFDRUVBMEFnQ0NnQ0dDQUVRUVowYWlJREtBSThJaEVFUUNBREtBSU1JUWNnQXlnQ0ZDRVNJQU1vQWhBaERDQURLQUlJSWhNZ0JpZ0NBR3NoQXlBR0tBSVFJZzFCQVhFRVFDQUFLQUljSUE5cUlnSkJrQUZyS0FJQUlBTnFJQUpCbUFGcktBSUFheUVEQ3lBSElBWW9BZ1JySVFJZ0RVRUNjUVJBSUFJZ0FDZ0NIQ0FQYWlJTlFZd0JheWdDQUdvZ0RVR1VBV3NvQWdCcklRSUxJQWtnQXlBQ0lBTWdEQ0FUYXlJTWFpQVNJQWRySUFKcUlCRkJBU0FNUVFBUUprVU5DU0FJS0FJUUlRY2dDQ2dDRkNFQ0N5QUVRUUZxSWdRZ0FpQUhiRWtOQUFzZ0JTZ0NFQ0VFSUFVb0FoUWhBd3NnQzBFQmFpSUxJQU1nQkd4SkRRQUxJQVVvQWhnaEFnc2dDa0VCYWlJS0lBSkpEUUFMQ3lBT1FRRnFJZzRnQVVjTkFBc0xJQWtQQ3lBSkVDTkJBQXZRREFJUWZ3WjdJQUFvQWdnaUN5QUFLQUlFYWlFSEFrQWdBQ2dDREVVRVFDQUhRUUpJRFFFZ0FTZ0NBQ0FCSUF0QkFuUnFJZzBvQWdBaUJFRUJha0VCZFdzaEF5QUFLQUlBSVFZQ1FDQUhRUVJKQkVBZ0JDRUNEQUVMSUFkQkJHc2lBRUVCZGlJSlFRRnFJUXdDUUNBQVFSWkpCRUJCQVNFQURBRUxJQVlnQVNBTFFRSjBhaUlGSUFsQkFuUWlBbXBCQ0dwSklBWWdDVUVEZEdwQkNHb2lBQ0FGUVFScVMzRUVRRUVCSVFBTUFRc2dCaUFCSUFKcVFRaHFTU0FCUVFScUlBQkpjUVJBUVFFaEFBd0JDeUFNUWZ6Ly8vOEhjU0lGUVFGeUlRQWdCVUVCZENFSUlBVDlFU0VTSUFQOUVTRVQvUXdBQUFBQUFnQUFBQVFBQUFBR0FBQUFJUlpCQUNFQ0EwQWdBU0FDUVFKMFFRUnlJZ05xL1FBQ0FDRVZJQU1nRFdyOUFBSUFJUlFnQmlBQ1FRTjBhaUlESUJQOVdnSUFBeUFEUVFocUlCVWdGQ0FTSUJUOURRd05EZzhRRVJJVEZCVVdGeGdaR2hzaUZmMnVBZjBNQWdBQUFBSUFBQUFDQUFBQUFnQUFBUDJ1QVVFQy9hd0IvYkVCSWhMOVdnSUFBQ0FEUVJCcUlCTDlXZ0lBQVNBRFFSaHFJQkw5V2dJQUFpQUdJQmI5REFFQUFBQUJBQUFBQVFBQUFBRUFBQUQ5VUNJWC9Sc0FRUUowYWlBU0lCTWdFdjBOREEwT0R4QVJFaE1VRlJZWEdCa2FHLzJ1QVVFQi9hd0JJQlg5cmdFaUUvMWFBZ0FBSUFZZ0YvMGJBVUVDZEdvZ0UvMWFBZ0FCSUFZZ0YvMGJBa0VDZEdvZ0UvMWFBZ0FDSUFZZ0YvMGJBMEVDZEdvZ0UvMWFBZ0FESUJiOURBZ0FBQUFJQUFBQUNBQUFBQWdBQUFEOXJnRWhGaUFTSVJNZ0ZDRVNJQUpCQkdvaUFpQUZSdzBBQ3lBUy9Sc0RJUUlnRS8wYkF5RURJQVVnREVZTkFTQUNJUVFMQTBBZ0FTQUFRUUowSWdKcUtBSUFJUWtnQWlBTmFpZ0NBQ0VDSUFZZ0NFRUNkR29pQlNBRE5nSUFJQVVnQXlBSklBSWdCR3BCQW1wQkFuVnJJZ05xUVFGMUlBUnFOZ0lFSUFoQkFtb2hDQ0FBSUF4SElSQWdBaUVFSUFCQkFXb2hBQ0FRRFFBTEN5QUdJQWhCQW5ScUlBTTJBZ0JCZkNFQUlBZEJBWEVFZnlBR0lBZEJBV3NpQUVFQ2RHb2dBU0FBUVFGMGFpZ0NBQ0FDUVFGcVFRRjFheUlBTmdJQUlBQWdBMnBCQVhVaEEwRjRCVUY4Q3lBR0lBZEJBblFpQUdwcUlBSWdBMm8yQWdBZ0FTQUdJQUFRRWhvUEN3SkFBa0FDUUNBSFFRRnJEZ0lBQVFJTElBRWdBU2dDQUVFQ2JUWUNBQThMSUFBb0FnQWlCQ0FCS0FJQUlBRWdDMEVDZEdvaUF5Z0NBRUVCYWtFQmRXc2lBRFlDQkNBRUlBQWdBeWdDQUdvMkFnQWdBU0FFS1FJQU53SUFEd3NnQjBFRFNBMEFJQUFvQWdBaUNpQUJLQUlBSUFFZ0MwRUNkR29pRGlnQ0JDSUVJQTRvQWdBaUFHcEJBbXBCQW5WcklnTWdBR28yQWdCQkFTRUlBa0FnQjBFQ2F5SUdJQWRCQVhFaURFVWlBR3RCQWtrRVFDQUVJUUlNQVFzZ0J5QUFhMEVFYXlJQVFRRjJJZ0pCQVdvaER3SkFBa0FnQUVFV1NRMEFJQXBCQkdvaUJTQUJJQUpCQW5RaUFHcEJDR3BKSUFvZ0FrRURkR3BCREdvaUFpQUJRUVJxUzNFTkFDQUZJQUFnQVNBTFFRSjBhaUlBYWtFTWFra2dBRUVJYWlBQ1NYRU5BQ0FQUVh4eElnVkJBWEloQUNBRlFRRjBRUUZ5SVFnZ0JQMFJJUk1nQS8wUklSSkJBQ0VDQTBBZ0NpQUNRUU4wYWlJRUlBRWdBa0VDZENJRGF2MEFBZ1FnRXlBRElBNXEvUUFDQ0NJVC9RME1EUTRQRUJFU0V4UVZGaGNZR1JvYkloVWdFLzJ1QWYwTUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQVAydUFVRUMvYXdCL2JFQkloUWdGQ0FTSUJUOURRd05EZzhRRVJJVEZCVVdGeGdaR2h2OXJnRkJBZjJzQVNBVi9hNEJJaFg5RFFRRkJnY1lHUm9iQ0FrS0N4d2RIaC85Q3dJVUlBUWdFaUFWL1EwTURRNFBFQkVTRXdBQkFnTVVGUllYSUJUOURRQUJBZ01FQlFZSEVCRVNFd3dORGcvOUN3SUVJQlFoRWlBQ1FRUnFJZ0lnQlVjTkFBc2dFLzBiQXlFQ0lCTDlHd01oQXlBRklBOUdEUUlnQWlFRURBRUxRUUVoQUFzRFFDQUJJQUJCQW5ScUtBSUFJUTBnRGlBQVFRRnFJZ1ZCQW5ScUtBSUFJUUlnQ2lBSVFRSjBhaUlKSUFNMkFnQWdDU0FESUEwZ0FpQUVha0VDYWtFQ2RXc2lBMnBCQVhVZ0JHbzJBZ1FnQ0VFQ2FpRUlJQUFnRDBjaEVTQUNJUVFnQlNFQUlCRU5BQXNMSUFvZ0NFRUNkR29nQXpZQ0FBSkFJQXhGQkVBZ0NpQUdRUUowYWlBQklBZEJBWFJxUVFScktBSUFJQUpCQVdwQkFYVnJJZ0FnQTJwQkFYVWdBbW8yQWdBTUFRc2dBaUFEYWlFQUN5QUtJQWRCQW5RaUEycEJCR3NnQURZQ0FDQUJJQW9nQXhBU0dnc0xvQWNEQTMwRGV3Si9JQU5CQ0U4RVFDQURRUU4ySVFzRFFDQUIvUUFFQUNFSElBQWdBUDBBQkFBaUNDQUMvUUFFQUNJSi9ReThkTE0vdkhTelA3eDBzeis4ZExNLy9lWUIvZVFCL1FzRUFDQUJJQWdnQi8wTXp6R3dQczh4c0Q3UE1iQSt6ekd3UHYzbUFmM2xBU0FKL1F6aDBUWS80ZEUyUCtIUk5qL2gwVFkvL2VZQi9lVUIvUXNFQUNBQ0lBZ2dCLzBNNWREaVArWFE0ai9sME9JLzVkRGlQLzNtQWYza0FmMExCQUFnQWYwQUJCQWhCeUFBSUFEOUFBUVFJZ2dnQXYwQUJCQWlDZjBNdkhTelA3eDBzeis4ZExNL3ZIU3pQLzNtQWYza0FmMExCQkFnQVNBSUlBZjlETTh4c0Q3UE1iQSt6ekd3UHM4eHNENzk1Z0g5NVFFZ0NmME00ZEUyUCtIUk5qL2gwVFkvNGRFMlAvM21BZjNsQWYwTEJCQWdBaUFJSUFmOURPWFE0ai9sME9JLzVkRGlQK1hRNGovOTVnSDk1QUg5Q3dRUUlBSkJJR29oQWlBQlFTQnFJUUVnQUVFZ2FpRUFJQXBCQVdvaUNpQUxSdzBBQ3dzQ1FDQURRUWR4SWdORkRRQWdBU29DQUNFRUlBQWdBaW9DQUNJR1E3eDBzeitVSUFBcUFnQWlCWkk0QWdBZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlBSUFJZ0JTQUVRK1hRNGorVWtqZ0NBQ0FEUVFGR0RRQWdBU29DQkNFRUlBQWdBaW9DQkNJR1E3eDBzeitVSUFBcUFnUWlCWkk0QWdRZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlFSUFJZ0JTQUVRK1hRNGorVWtqZ0NCQ0FEUVFKR0RRQWdBU29DQ0NFRUlBQWdBaW9DQ0NJR1E3eDBzeitVSUFBcUFnZ2lCWkk0QWdnZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlJSUFJZ0JTQUVRK1hRNGorVWtqZ0NDQ0FEUVFOR0RRQWdBU29DRENFRUlBQWdBaW9DRENJR1E3eDBzeitVSUFBcUFnd2lCWkk0QWd3Z0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlNSUFJZ0JTQUVRK1hRNGorVWtqZ0NEQ0FEUVFSR0RRQWdBU29DRUNFRUlBQWdBaW9DRUNJR1E3eDBzeitVSUFBcUFoQWlCWkk0QWhBZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlRSUFJZ0JTQUVRK1hRNGorVWtqZ0NFQ0FEUVFWR0RRQWdBU29DRkNFRUlBQWdBaW9DRkNJR1E3eDBzeitVSUFBcUFoUWlCWkk0QWhRZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlVSUFJZ0JTQUVRK1hRNGorVWtqZ0NGQ0FEUVFaR0RRQWdBU29DR0NFRUlBQWdBaW9DR0NJR1E3eDBzeitVSUFBcUFoZ2lCWkk0QWhnZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlZSUFJZ0JTQUVRK1hRNGorVWtqZ0NHQXNMNEFFQ0JuOERld0pBSUFORkRRQWdBMEVFVHdSQUlBTkJmSEVoQmdOQUlBQWdCRUVDZENJRmFpSUhJQWY5QUFJQUlBSWdCV29pQi8wQUFnQWlDeUFCSUFWcUlnWDlBQUlBSWd6OXJnRkJBdjJzQWYyeEFTSUtJQXY5cmdIOUN3SUFJQVVnQ3YwTEFnQWdCeUFLSUF6OXJnSDlDd0lBSUFSQkJHb2lCQ0FHUncwQUN5QURJQVpHRFFFTEEwQWdBQ0FHUVFKMElnUnFJZ1VnQlNnQ0FDQUNJQVJxSWdVb0FnQWlCeUFCSUFScUlnZ29BZ0FpQ1dwQkFuVnJJZ1FnQjJvMkFnQWdDQ0FFTmdJQUlBVWdCQ0FKYWpZQ0FDQUdRUUZxSWdZZ0EwY05BQXNMQzkwQkFRUi9Jd0JCZ0FGcklnWWtBQ0FHSVFVQ1FDQUJLQUlNSUFKQkJIUnFJZ0lvQWdBaUJFVUVRQ0FDSVFFTUFRc0RRQ0FGSUFJMkFnQWdCVUVFYWlFRklBUWlBU0lDS0FJQUlnUU5BQXNMUVFBaEJBTkFJQUVvQWdnaUFpQUVTQVJBSUFFZ0JEWUNDQ0FFSVFJTEFrQWdBaUFEVGcwQUEwQWdBaUFCS0FJRVRnMEJBa0FnQUVFQkVCOEVRQ0FCSUFJMkFnUU1BUXNnQWtFQmFpRUNDeUFDSUFOSURRQUxDeUFCSUFJMkFnZ2dCU0FHUndSQUlBVkJCR3NpQlNnQ0FDRUJJQUloQkF3QkN3c2dBU2dDQkNFSElBWkJnQUZxSkFBZ0J5QURTQXY5QmdFTGZ5TUFRWUFDYXlJS0pBQUNRQ0FBUlFSQVFRQWhBQXdCQ3dKQUlBRWdBQ2dDQUVZRVFDQUFLQUlFSUFKR0RRRUxJQUFnQWpZQ0JDQUFJQUUyQWdBZ0NpQUNOZ0lBSUFvZ0FUWUNnQUVnQWlFRUlBRWhCUU5BSUFvZ0J5SU1RUUZxSWdkQkFuUWlDR29nQkVFQmFrRUNiU0lKTmdJQUlBcEJnQUZxSUFocUlBVkJBV3BCQW0waUNEWUNBQ0FHSUFRZ0JXd2lDMm9oQmlBSklRUWdDQ0VGSUF0QkFVc05BQXNnQUNBR05nSUlBa0FDUUFKQUFrQWdCa1VFUUNBQUtBSU1JZ1JGRFFJZ0FFRU1haUVGREFFTElBWkJCSFFpQkNBQUtBSVFUUTBESUFBb0Fnd2dCQkFYSWdFTkFpQURRUUZCbWpGQkFCQVBJQUJCREdvaUJTZ0NBQ0lFUlEwQkN5QUVFQkFnQlVFQU5nSUFDeUFBRUJCQkFDRUFEQU1MSUFBZ0FUWUNEQ0FCSUFBb0FoQWlBbXBCQUNBRUlBSnJFQlVhSUFBZ0JEWUNFQ0FBS0FJRUlRSWdBQ2dDQUNFQkN5QUFLQUlNSVFVZ0RBUkFRUUFoQXlBRklBRWdBbXhCQkhScUlnUWhCZ05BQWtBZ0NpQURRUUowSWdGcUtBSUFJZ2hCQUV3TkFDQUlRUUZySVF0QkFDRUpBa0FDUUNBS1FZQUJhaUFCYWlnQ0FDSUNRUUJNQkVBZ0NFRUJjU0VOUVFBaEJ5QUlRUUZIRFFFZ0JpRUJEQUlMQTBBZ0JpRUJJQUloQmdOQUFrQWdCU0FFTmdJQUlBWkJBVVlFUUNBRlFSQnFJUVVnQkVFUWFpRUVEQUVMSUFVZ0JEWUNFQ0FFUVJCcUlRUWdCVUVnYWlFRklBWkJBa29oRGlBR1FRSnJJUVlnRGcwQkN3c2dCQ0FCSUFKQkJIUnFJQWtnQ1NBTFJuSkJBWEVpQnhzaEJpQUVJQUVnQnhzaEJDQUpRUUZxSWdrZ0NFY05BQXNNQWdzZ0NFSCsvLy8vQjNFaENBTkFJQWNnQzBZaEFTQUhRUUpxSVFjZ0JDQUdJQUViSWdRaEJpQUVJUUVnQ1VFQ2FpSUpJQWhIRFFBTEN5QU5SUVJBSUFRaEJnd0JDeUFFSUFFZ0FrRUVkR29nQnlBSElBdEdja0VCY1NJQ0d5RUdJQVFnQVNBQ0d5RUVDeUFEUVFGcUlnTWdERWNOQUFzTElBVkJBRFlDQUFzZ0FDZ0NDQ0lCUlEwQUlBQW9BZ3doQkNBQlFRUlBCRUFnQVVGOGNTRUNRUUFoQlFOQUlBUkJBRFlDUENBRVF1Y0hOd0kwSUFSQkFEWUNMQ0FFUXVjSE53SWtJQVJCQURZQ0hDQUVRdWNITndJVUlBUkJBRFlDRENBRVF1Y0hOd0lFSUFSQlFHc2hCQ0FGUVFScUlnVWdBa2NOQUFzTElBRkJBM0VpQVVVTkFFRUFJUVVEUUNBRVFRQTJBZ3dnQkVMbkJ6Y0NCQ0FFUVJCcUlRUWdCVUVCYWlJRklBRkhEUUFMQ3lBS1FZQUNhaVFBSUFBTHNRRUJBMzhDUUNBQVJRMEFJQUFvQWdnaUFVVU5BQ0FBS0FJTUlRQWdBVUVFVHdSQUlBRkJmSEVoQXdOQUlBQkJBRFlDUENBQVF1Y0hOd0kwSUFCQkFEWUNMQ0FBUXVjSE53SWtJQUJCQURZQ0hDQUFRdWNITndJVUlBQkJBRFlDRENBQVF1Y0hOd0lFSUFCQlFHc2hBQ0FDUVFScUlnSWdBMGNOQUFzTElBRkJBM0VpQVVVTkFFRUFJUUlEUUNBQVFRQTJBZ3dnQUVMbkJ6Y0NCQ0FBUVJCcUlRQWdBa0VCYWlJQ0lBRkhEUUFMQ3d2N0JRRVFmeU1BUVlBQ2F5SUlKQUFDZjBFQlFSUVFFeUlHUlFSQUlBSkJBVUgwTUVFQUVBOUJBQXdCQ3lBR0lBRTJBZ1FnQmlBQU5nSUFJQWdnQVRZQ0FDQUlJQUEyQW9BQkEwQWdDQ0FGSWcxQkFXb2lCVUVDZENJSGFpQUJRUUZxUVFKdElnTTJBZ0FnQ0VHQUFXb2dCMm9nQUVFQmFrRUNiU0lITmdJQUlBUWdBQ0FCYkNJSmFpRUVJQU1oQVNBSElRQWdDVUVCU3cwQUN5QUdJQVEyQWdnZ0JFVUVRQ0FHRUJCQkFBd0JDeUFHSUFSQkVCQVRJZ00yQWd3Z0EwVUVRQ0FDUVFGQjJocEJBQkFQSUFZUUVFRUFEQUVMSUFZZ0JpZ0NDQ0lMUVFSME5nSVFJQU1oQUNBTkJFQWdBeUFHS0FJRUlBWW9BZ0JzUVFSMGFpSUVJUUVEUUFKQUlBZ2dEa0VDZENJQ2FpZ0NBQ0lKUVFCTURRQWdDVUVCYXlFTVFRQWhCd0pBSUFoQmdBRnFJQUpxS0FJQUlnSkJBRXdFUUVFQUlRVWdDVUVCUndSQUlBbEIvdi8vL3dkeElRb0RRQ0FGSUF4R0lROGdCVUVDYWlFRklBRWdCQ0FQR3lJRUlRRWdCMEVDYWlJSElBcEhEUUFMQ3lBSlFRRnhEUUVnQkNFQkRBSUxBMEFnQkNFRklBSWhCQU5BQWtBZ0FDQUJOZ0lBSUFSQkFVWUVRQ0FBUVJCcUlRQWdBVUVRYWlFQkRBRUxJQUFnQVRZQ0VDQUJRUkJxSVFFZ0FFRWdhaUVBSUFSQkFrb2hFQ0FFUVFKcklRUWdFQTBCQ3dzZ0FTQUZJQUpCQkhScUlBY2dCeUFNUm5KQkFYRWlDaHNoQkNBQklBVWdDaHNoQVNBSFFRRnFJZ2NnQ1VjTkFBc01BUXNnQVNBRUlBSkJCSFJxSUFVZ0JTQU1SbkpCQVhFaUJSc2hFU0FCSUFRZ0JSc2hBU0FSSVFRTElBNUJBV29pRGlBTlJ3MEFDd3NnQUVFQU5nSUFBa0FnQzBVTkFDQUxRUVJQQkVBZ0MwRjhjU0VBUVFBaEFRTkFJQU5CQURZQ1BDQURRdWNITndJMElBTkJBRFlDTENBRFF1Y0hOd0lrSUFOQkFEWUNIQ0FEUXVjSE53SVVJQU5CQURZQ0RDQURRdWNITndJRUlBTkJRR3NoQXlBQlFRUnFJZ0VnQUVjTkFBc0xJQXRCQTNFaUFFVU5BRUVBSVFFRFFDQURRUUEyQWd3Z0EwTG5CemNDQkNBRFFSQnFJUU1nQVVFQmFpSUJJQUJIRFFBTEN5QUdDeUVTSUFoQmdBSnFKQUFnRWd0VEFRRi9BbjhnQUMwQURFSC9BVVlFUUNBQVFvRCtnNER3QURjQ0RFRUFJQUFvQWdnaUFTQUFLQUlFVHcwQkdpQUFJQUZCQVdvMkFnZ2dBQ0FCTFFBQVFZRCtBM0kyQWd3TElBQkJBRFlDRUVFQkN3dCtBZ0YvQVg0Z0FMMGlBMEkwaUtkQi93OXhJZ0pCL3c5SEJId2dBa1VFUUNBQklBQkVBQUFBQUFBQUFBQmhCSDlCQUFVZ0FFUUFBQUFBQUFEd1E2SWdBUkJsSVFBZ0FTZ0NBRUZBYWdzMkFnQWdBQThMSUFFZ0FrSCtCMnMyQWdBZ0EwTC8vLy8vLy8vL2g0Qi9nMEtBZ0lDQWdJQ0E4RCtFdndVZ0FBc0xTUUVCZndKQVFRRkJMQkFUSWdFRVFDQUJRUUEyQWhBQ1FDQUFRUUJNQkVBZ0FVRUJRUWdRRXlJQU5nSWtJQUJGRFFFTUF3c2dBVUVBTmdJTUN5QUJFQkFMUVFBaEFRc2dBUXVSQWdBZ0FFVUVRRUVBRHdzQ2Z3SkFJQUZCL3dCTkRRQUNRRUdVMEFFb0FnQW9BZ0JGQkVBZ0FVR0FmM0ZCZ0w4RFJnMENEQUVMSUFGQi93OU5CRUFnQUNBQlFUOXhRWUFCY2pvQUFTQUFJQUZCQm5aQndBRnlPZ0FBUVFJTUF3c2dBVUdBUUhGQmdNQURSeUFCUVlDd0EwOXhSUVJBSUFBZ0FVRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFlQUJjam9BQUNBQUlBRkJCblpCUDNGQmdBRnlPZ0FCUVFNTUF3c2dBVUdBZ0FSclFmLy9QMDBFUUNBQUlBRkJQM0ZCZ0FGeU9nQURJQUFnQVVFU2RrSHdBWEk2QUFBZ0FDQUJRUVoyUVQ5eFFZQUJjam9BQWlBQUlBRkJESFpCUDNGQmdBRnlPZ0FCUVFRTUF3c0xRWlRIQVVFWk5nSUFRWDhNQVFzZ0FDQUJPZ0FBUVFFTEM3d0NBQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0FVRUphdzRTQUFnSkNnZ0pBUUlEQkFvSkNnb0lDUVVHQndzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQktBSUFOZ0lBRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk1nRUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk13RUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk1BQUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk1RQUFOd01BRHdzZ0FpQUNLQUlBUVFkcVFYaHhJZ0ZCQ0dvMkFnQWdBQ0FCS3dNQU9RTUFEd3NnQUNBQ0lBTVJBd0FMRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk5BSUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk5RSUFOd01BRHdzZ0FpQUNLQUlBUVFkcVFYaHhJZ0ZCQ0dvMkFnQWdBQ0FCS1FNQU53TUFDM01CQm44Z0FDZ0NBQ0lETEFBQVFUQnJJZ0ZCQ1VzRVFFRUFEd3NEUUVGL0lRUWdBa0hNbWJQbUFFMEVRRUYvSUFFZ0FrRUtiQ0lGYWlBQklBVkIvLy8vL3dkelN4c2hCQXNnQUNBRFFRRnFJZ1UyQWdBZ0F5d0FBU0VHSUFRaEFpQUZJUU1nQmtFd2F5SUJRUXBKRFFBTElBSUx0QlFDRlg4QmZpTUFRVUJxSWdna0FDQUlJQUUyQWp3Z0NFRW5haUVXSUFoQktHb2hFUUpBQWtBQ1FBSkFBMEJCQUNFSEEwQWdBU0VOSUFjZ0RrSC8vLy8vQjNOS0RRSWdCeUFPYWlFT0FrQUNRQUpBQWtBZ0FTSUhMUUFBSWdzRVFBTkFBa0FDUUNBTFFmOEJjU0lCUlFSQUlBY2hBUXdCQ3lBQlFTVkhEUUVnQnlFTEEwQWdDeTBBQVVFbFJ3UkFJQXNoQVF3Q0N5QUhRUUZxSVFjZ0N5MEFBaUVaSUF0QkFtb2lBU0VMSUJsQkpVWU5BQXNMSUFjZ0RXc2lCeUFPUWYvLy8vOEhjeUlYU2cwSklBQUVRQ0FBSUEwZ0J4QVpDeUFIRFFjZ0NDQUJOZ0k4SUFGQkFXb2hCMEYvSVJBQ1FDQUJMQUFCUVRCcklnbEJDVXNOQUNBQkxRQUNRU1JIRFFBZ0FVRURhaUVIUVFFaEVpQUpJUkFMSUFnZ0J6WUNQRUVBSVF3Q1FDQUhMQUFBSWd0QklHc2lBVUVmU3dSQUlBY2hDUXdCQ3lBSElRbEJBU0FCZENJQlFZblJCSEZGRFFBRFFDQUlJQWRCQVdvaUNUWUNQQ0FCSUF4eUlRd2dCeXdBQVNJTFFTQnJJZ0ZCSUU4TkFTQUpJUWRCQVNBQmRDSUJRWW5SQkhFTkFBc0xBa0FnQzBFcVJnUkFBbjhDUUNBSkxBQUJRVEJySWdGQkNVc05BQ0FKTFFBQ1FTUkhEUUFDZnlBQVJRUkFJQVFnQVVFQ2RHcEJDallDQUVFQURBRUxJQU1nQVVFRGRHb29BZ0FMSVE4Z0NVRURhaUVCUVFFTUFRc2dFZzBHSUFsQkFXb2hBU0FBUlFSQUlBZ2dBVFlDUEVFQUlSSkJBQ0VQREFNTElBSWdBaWdDQUNJSFFRUnFOZ0lBSUFjb0FnQWhEMEVBQ3lFU0lBZ2dBVFlDUENBUFFRQk9EUUZCQUNBUGF5RVBJQXhCZ01BQWNpRU1EQUVMSUFoQlBHb1FhU0lQUVFCSURRb2dDQ2dDUENFQkMwRUFJUWRCZnlFS0FuOUJBQ0FCTFFBQVFTNUhEUUFhSUFFdEFBRkJLa1lFUUFKL0FrQWdBU3dBQWtFd2F5SUpRUWxMRFFBZ0FTMEFBMEVrUncwQUlBRkJCR29oQVFKL0lBQkZCRUFnQkNBSlFRSjBha0VLTmdJQVFRQU1BUXNnQXlBSlFRTjBhaWdDQUFzTUFRc2dFZzBHSUFGQkFtb2hBVUVBSUFCRkRRQWFJQUlnQWlnQ0FDSUpRUVJxTmdJQUlBa29BZ0FMSVFvZ0NDQUJOZ0k4SUFwQkFFNE1BUXNnQ0NBQlFRRnFOZ0k4SUFoQlBHb1FhU0VLSUFnb0Fqd2hBVUVCQ3lFVEEwQWdCeUVVUVJ3aENTQUJJaGdzQUFBaUIwSDdBR3RCUmtrTkN5QUJRUUZxSVFFZ0J5QVVRVHBzYWtHL3dBRnFMUUFBSWdkQkFXdEJDRWtOQUFzZ0NDQUJOZ0k4QWtBZ0IwRWJSd1JBSUFkRkRRd2dFRUVBVGdSQUlBQkZCRUFnQkNBUVFRSjBhaUFITmdJQURBd0xJQWdnQXlBUVFRTjBhaWtEQURjRE1Bd0NDeUFBUlEwSUlBaEJNR29nQnlBQ0lBWVFhQXdCQ3lBUVFRQk9EUXRCQUNFSElBQkZEUWdMSUFBdEFBQkJJSEVOQ3lBTVFmLy9lM0VpQ3lBTUlBeEJnTUFBY1JzaERFRUFJUkJCc0FnaEZTQVJJUWtDUUFKQUFuOENRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBQWtBQ1FBSkFJQmdzQUFBaUIwRlRjU0FISUFkQkQzRkJBMFliSUFjZ0ZCc2lCMEhZQUdzT0lRUVdGaFlXRmhZV0ZoQVdDUVlRRUJBV0JoWVdGaFlDQlFNV0Znb1dBUllXQkFBTEFrQWdCMEhCQUdzT0J4QVdDeFlRRUJBQUN5QUhRZE1BUmcwTERCVUxJQWdwQXpBaEhFR3dDQXdGQzBFQUlRY0NRQUpBQWtBQ1FBSkFBa0FDUUNBVVFmOEJjUTRJQUFFQ0F3UWNCUVljQ3lBSUtBSXdJQTQyQWdBTUd3c2dDQ2dDTUNBT05nSUFEQm9MSUFnb0FqQWdEcXczQXdBTUdRc2dDQ2dDTUNBT093RUFEQmdMSUFnb0FqQWdEam9BQUF3WEN5QUlLQUl3SUE0MkFnQU1GZ3NnQ0NnQ01DQU9yRGNEQUF3VkMwRUlJQW9nQ2tFSVRSc2hDaUFNUVFoeUlReEIrQUFoQndzZ0VTRUJJQWdwQXpBaUhFSUFVZ1JBSUFkQklIRWhEUU5BSUFGQkFXc2lBU0FjcDBFUGNVSFF4QUZxTFFBQUlBMXlPZ0FBSUJ4Q0QxWWhHaUFjUWdTSUlSd2dHZzBBQ3dzZ0FTRU5JQWdwQXpCUURRTWdERUVJY1VVTkF5QUhRUVIyUWJBSWFpRVZRUUloRUF3REN5QVJJUUVnQ0NrRE1DSWNRZ0JTQkVBRFFDQUJRUUZySWdFZ0hLZEJCM0ZCTUhJNkFBQWdIRUlIVmlFYklCeENBNGdoSENBYkRRQUxDeUFCSVEwZ0RFRUljVVVOQWlBS0lCRWdBV3NpQVVFQmFpQUJJQXBJR3lFS0RBSUxJQWdwQXpBaUhFSUFVd1JBSUFoQ0FDQWNmU0ljTndNd1FRRWhFRUd3Q0F3QkN5QU1RWUFRY1FSQVFRRWhFRUd4Q0F3QkMwR3lDRUd3Q0NBTVFRRnhJaEFiQ3lFVklCd2dFUkFxSVEwTElCTWdDa0VBU0hFTkVTQU1RZi8vZTNFZ0RDQVRHeUVNQWtBZ0NDa0RNQ0ljUWdCU0RRQWdDZzBBSUJFaERVRUFJUW9NRGdzZ0NpQWNVQ0FSSUExcmFpSUJJQUVnQ2tnYklRb01EUXNnQ0NrRE1DRWNEQXNMQW45Qi8vLy8vd2NnQ2lBS1FmLy8vLzhIVHhzaURDSUhRUUJISVFrQ1FBSkFBa0FnQ0NnQ01DSUJRWVFNSUFFYklnMGlBVUVEY1VVTkFDQUhSUTBBQTBBZ0FTMEFBRVVOQWlBSFFRRnJJZ2RCQUVjaENTQUJRUUZxSWdGQkEzRkZEUUVnQncwQUN3c2dDVVVOQVFKQUlBRXRBQUJGRFFBZ0IwRUVTUTBBQTBCQmdJS0VDQ0FCS0FJQUlnbHJJQWx5UVlDQmdvUjRjVUdBZ1lLRWVFY05BaUFCUVFScUlRRWdCMEVFYXlJSFFRTkxEUUFMQ3lBSFJRMEJDd05BSUFFZ0FTMEFBRVVOQWhvZ0FVRUJhaUVCSUFkQkFXc2lCdzBBQ3d0QkFBc2lBU0FOYXlBTUlBRWJJZ0VnRFdvaENTQUtRUUJPQkVBZ0N5RU1JQUVoQ2d3TUN5QUxJUXdnQVNFS0lBa3RBQUFORHd3TEN5QUlLUU13SWh4Q0FGSU5BVUlBSVJ3TUNRc2dDZ1JBSUFnb0FqQU1BZ3RCQUNFSElBQkJJQ0FQUVFBZ0RCQWNEQUlMSUFoQkFEWUNEQ0FJSUJ3K0FnZ2dDQ0FJUVFocUlnYzJBakJCZnlFS0lBY0xJUXRCQUNFSEEwQUNRQ0FMS0FJQUlnMUZEUUFnQ0VFRWFpQU5FR2NpRFVFQVNBMFBJQTBnQ2lBSGEwc05BQ0FMUVFScUlRc2dCeUFOYWlJSElBcEpEUUVMQzBFOUlRa2dCMEVBU0EwTUlBQkJJQ0FQSUFjZ0RCQWNJQWRGQkVCQkFDRUhEQUVMUVFBaENTQUlLQUl3SVFzRFFDQUxLQUlBSWcxRkRRRWdDRUVFYWlJS0lBMFFaeUlOSUFscUlna2dCMHNOQVNBQUlBb2dEUkFaSUF0QkJHb2hDeUFISUFsTERRQUxDeUFBUVNBZ0R5QUhJQXhCZ01BQWN4QWNJQThnQnlBSElBOUlHeUVIREFnTElCTWdDa0VBU0hFTkNVRTlJUWtnQUNBSUt3TXdJQThnQ2lBTUlBY2dCUkVUQUNJSFFRQk9EUWNNQ2dzZ0J5MEFBU0VMSUFkQkFXb2hCd3dBQ3dBTElBQU5DU0FTUlEwRFFRRWhCd05BSUFRZ0IwRUNkR29vQWdBaUFBUkFJQU1nQjBFRGRHb2dBQ0FDSUFZUWFFRUJJUTRnQjBFQmFpSUhRUXBIRFFFTUN3c0xRUUVoRGlBSFFRcFBEUWtEUUNBRUlBZEJBblJxS0FJQURRRWdCMEVCYWlJSFFRcEhEUUFMREFrTFFSd2hDUXdHQ3lBSUlCdzhBQ2RCQVNFS0lCWWhEU0FMSVF3TElBb2dDU0FOYXlJTElBb2dDMG9iSWdvZ0VFSC8vLy8vQjNOS0RRTkJQU0VKSUE4Z0NpQVFhaUlCSUFFZ0QwZ2JJZ2NnRjBvTkJDQUFRU0FnQnlBQklBd1FIQ0FBSUJVZ0VCQVpJQUJCTUNBSElBRWdERUdBZ0FSekVCd2dBRUV3SUFvZ0MwRUFFQndnQUNBTklBc1FHU0FBUVNBZ0J5QUJJQXhCZ01BQWN4QWNJQWdvQWp3aEFRd0JDd3NMUVFBaERnd0RDMEU5SVFrTFFaVEhBU0FKTmdJQUMwRi9JUTRMSUFoQlFHc2tBQ0FPQzZnQ0FRUi9Jd0JCMEFGcklnVWtBQ0FGSUFJMkFzd0JJQVZCb0FGcUlnSkJBRUVvRUJVYUlBVWdCU2dDekFFMkFzZ0JBa0JCQUNBQklBVkJ5QUZxSUFWQjBBQnFJQUlnQXlBRUVHcEJBRWdOQUNBQUtBSk1RUUJJSVFnZ0FDQUFLQUlBSWdkQlgzRTJBZ0FDZndKQUFrQWdBQ2dDTUVVRVFDQUFRZEFBTmdJd0lBQkJBRFlDSENBQVFnQTNBeEFnQUNnQ0xDRUdJQUFnQlRZQ0xBd0JDeUFBS0FJUURRRUxRWDhnQUJBK0RRRWFDeUFBSUFFZ0JVSElBV29nQlVIUUFHb2dCVUdnQVdvZ0F5QUVFR29MSVFFZ0JnUi9JQUJCQUVFQUlBQW9BaVFSQUFBYUlBQkJBRFlDTUNBQUlBWTJBaXdnQUVFQU5nSWNJQUFvQWhRYUlBQkNBRGNERUVFQUJTQUJDeG9nQUNBQUtBSUFJQWRCSUhGeU5nSUFJQWdOQUFzZ0JVSFFBV29rQUFzbkFRRi9RUndoQXlBQlFRTnhCSDlCSEFVZ0FDQUJJQUlRSlNJQU5nSUFRUUJCTUNBQUd3c0wvUU1CQlg4Q2YwSGd4QUVvQWdBaUFpQUFRUWRxUVhoeElnRkJCMnBCZUhFaUEyb2hBQUpBSUFOQkFDQUFJQUpORzBVRVFDQUFQd0JCRUhSTkRRRWdBQkFLRFFFTFFaVEhBVUV3TmdJQVFYOE1BUXRCNE1RQklBQTJBZ0FnQWdzaUFrRi9Sd1JBSUFFZ0Ftb2lBRUVFYTBFUU5nSUFJQUJCRUdzaUEwRVFOZ0lBQWtBQ2YwR2d6d0VvQWdBaUFRUi9JQUVvQWdnRlFRQUxJQUpHQkVBZ0FpQUNRUVJyS0FJQVFYNXhheUlFUVFScktBSUFJUVVnQVNBQU5nSUlJQVFnQlVGK2NXc2lBQ0FBS0FJQWFrRUVheTBBQUVFQmNRUkFJQUFvQWdRaUFTQUFLQUlJSWdRMkFnZ2dCQ0FCTmdJRUlBQWdBeUFBYXlJQk5nSUFEQU1MSUFKQkVHc01BUXNnQWtFUU5nSUFJQUlnQURZQ0NDQUNJQUUyQWdRZ0FrRVFOZ0lNUWFEUEFTQUNOZ0lBSUFKQkVHb0xJZ0FnQXlBQWF5SUJOZ0lBQ3lBQUlBRkJmSEZxUVFScklBRkJBWEkyQWdBZ0FBSi9JQUFvQWdCQkNHc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZCSFNBQlp5SURhM1pCQkhNZ0EwRUNkR3RCN2dCcUlBRkIveDlORFFBYVFUOGdBVUVlSUFOcmRrRUNjeUFEUVFGMGEwSEhBR29pQVNBQlFUOVBHd3NpQVVFRWRDSURRYURIQVdvMkFnUWdBQ0FEUWFqSEFXb2lBeWdDQURZQ0NDQURJQUEyQWdBZ0FDZ0NDQ0FBTmdJRVFhalBBVUdvendFcEF3QkNBU0FCcllhRU53TUFDeUFDUVg5SEM3MEJBUUovQWtBZ0FDZ0NUQ0lCUVFCT0JFQWdBVVVOQVVITXp3RW9BZ0FnQVVILy8vLy9BM0ZIRFFFTEFrQWdBQ2dDVUVFS1JnMEFJQUFvQWhRaUFTQUFLQUlRUmcwQUlBQWdBVUVCYWpZQ0ZDQUJRUW82QUFBUEN5QUFFRzhQQ3lBQVFjd0FhaUlCSUFFb0FnQWlBa0gvLy8vL0F5QUNHellDQUFKQUFrQWdBQ2dDVUVFS1JnMEFJQUFvQWhRaUFpQUFLQUlRUmcwQUlBQWdBa0VCYWpZQ0ZDQUNRUW82QUFBTUFRc2dBQkJ2Q3lBQktBSUFHaUFCUVFBMkFnQUxmQUVDZnlNQVFSQnJJZ0VrQUNBQlFRbzZBQThDUUFKQUlBQW9BaEFpQWdSL0lBSUZJQUFRUGcwQ0lBQW9BaEFMSUFBb0FoUWlBa1lOQUNBQUtBSlFRUXBHRFFBZ0FDQUNRUUZxTmdJVUlBSkJDam9BQUF3QkN5QUFJQUZCRDJwQkFTQUFLQUlrRVFBQVFRRkhEUUFnQVMwQUR4b0xJQUZCRUdva0FBdXdBZ0VDZnlBQUJFQWdBQ2dDQUJBNElBQkJBRFlDQUNBQUtBSklJZ0VFUUNBQkVCQWdBRUVBTmdKSUN5QUFLQUpFSWdFRVFDQUJFQkFnQUVFQU5nSkVDeUFBS0FKc0lnRUVRQ0FCRUJBZ0FFRUFOZ0pzQ3lBQUtBSjBJZ0VFUUNBQktBSUFJZ0lFUUNBQ0VCQWdBQ2dDZENJQlFRQTJBZ0FMSUFFUUVDQUFRUUEyQW5RTElBQW9BbmdpQVFSQUlBRW9BZ3dpQWdSQUlBSVFFQ0FBS0FKNElnRkJBRFlDREFzZ0FTZ0NCQ0lDQkVBZ0FoQVFJQUFvQW5naUFVRUFOZ0lFQ3lBQktBSUlJZ0lFUUNBQ0VCQWdBQ2dDZUNJQlFRQTJBZ2dMSUFFb0FnQWlBZ1JBSUFJUUVDQUFLQUo0SWdGQkFEWUNBQXNnQVJBUUlBQkJBRFlDZUFzZ0FDZ0NCQ0lCQkVBZ0FSQXlJQUJCQURZQ0JBc2dBQ2dDQ0NJQkJFQWdBUkF5SUFCQkFEWUNDQXNnQUJBUUN3dUxHd0llZndWN0l3QkI4QUZySWdra0FFRUJJUTRDUUNBQUtBSUFLQUk4RFFBZ0FDZ0NnQUVOQUFKQUFrQWdBQ2dDZENJSVJRUkFJQUFvQW5naEJBd0JDeUFCS0FJUUlRTWdDQzhCQkNFR0FrQWdBQ2dDZUNJRVJRMEFJQVFvQWd4RkRRQWdCQzBBRWlFREN3SkFJQVlFUUNBSUtBSUFJUWdEUUNBSUlBVkJCbXhxSWdvdkFRQWlCeUFEVHdSQUlBa2dBellDdEFFZ0NTQUhOZ0t3QVNBQ1FRRkJvT1lBSUFsQnNBRnFFQTlCQUNFT0RBWUxBa0FnQ2k4QkJDSUtSUTBBSUFwQi8vOERSZzBBSUFwQkFXc2lDaUFEU1EwQUlBa2dBellDcEFFZ0NTQUtOZ0tnQVNBQ1FRRkJvT1lBSUFsQm9BRnFFQTlCQUNFT0RBWUxJQVZCQVdvaUJTQUdSdzBBQ3d3QkN5QUREUUlNQVFzRFFDQURRUUZySVFOQkFDRUZBMEFnQ0NBRlFRWnNhaThCQUNBRFJ3UkFJQVZCQVdvaUJTQUdSdzBCREFRTEN5QUREUUFMQ3dKQUlBUkZEUUFnQkNnQ0RDSUtSUTBBQWtBQ1FDQUVMUUFTSWdnRVFFRUFJUVZCQVNFSEEwQWdBU2dDRUNJRElBb2dCVUVDZEdvdkFRQWlCRTBFUUNBSklBTTJBcFFCSUFrZ0JEWUNrQUVnQWtFQlFhRG1BQ0FKUVpBQmFoQVBRUUFoQndzZ0JVRUJhaUlGSUFoSERRQUxJQWhCQkJBVElnTkZEUUZCQUNFRkEwQUNRQ0FLSUFWQkFuUnFJZ1F0QUFJaUJrRUNUd1JBSUFrZ0JqWUNSQ0FKSUFVMkFrQWdBa0VCUWN2WkFDQUpRVUJyRUE5QkFDRUhEQUVMSUFnZ0JDMEFBeUlFVFFSQUlBa2dCRFlDZ0FFZ0FrRUJRWlBaQUNBSlFZQUJhaEFQUVFBaEJ3d0JDeUFESUFSQkFuUnFJUXNDUUNBR1FRRkhJZ3dOQUNBTEtBSUFSUTBBSUFrZ0JEWUNVQ0FDUVFGQnZOVUFJQWxCMEFCcUVBOUJBQ0VIREFFTEFrQWdCZzBBSUFSRkRRQWdDU0FFTmdKa0lBa2dCVFlDWUNBQ1FRRkJpdGdBSUFsQjRBQnFFQTlCQUNFSERBRUxBa0FnREEwQUlBUWdCVVlOQUNBSklBUTJBbmdnQ1NBRk5nSjBJQWtnQlRZQ2NDQUNRUUZCcnRnQUlBbEI4QUJxRUE5QkFDRUhEQUVMSUF0QkFUWUNBQXNnQlVFQmFpSUZJQWhIRFFBTFFRQWhCUU5BQWtBQ1FDQURJQVZCQW5RaUJHb29BZ0JGQkVBZ0JDQUthaTBBQWcwQkN5QUZRUUZxSWdVZ0NFY05BaUFIUlEwQklBRW9BaEJCQVVjTkJVRUFJUVVEUUNBRElBVkJBblJxS0FJQUJFQWdDQ0FGUVFGcUlnVkhEUUVNQndzTFFRQWhCeUFDUVFKQjdzVUFRUUFRRHlBSVFSQlBCRUFnQ0VId0FYRWhCMEVBSVFRRFFDQUtJQVJCQW5ScUlnWkJBVG9BQWlBR0lBUTZBQU1nQmtFQk9nQStJQVpCQVRvQU9pQUdRUUU2QURZZ0JrRUJPZ0F5SUFaQkFUb0FMaUFHUVFFNkFDb2dCa0VCT2dBbUlBWkJBVG9BSWlBR1FRRTZBQjRnQmtFQk9nQWFJQVpCQVRvQUZpQUdRUUU2QUJJZ0JrRUJPZ0FPSUFaQkFUb0FDaUFHUVFFNkFBWWdCaUFFUVFGeU9nQUhJQVlnQkVFUGNqb0FQeUFHSUFSQkRuSTZBRHNnQmlBRVFRMXlPZ0EzSUFZZ0JFRU1jam9BTXlBR0lBUkJDM0k2QUM4Z0JpQUVRUXB5T2dBcklBWWdCRUVKY2pvQUp5QUdJQVJCQ0hJNkFDTWdCaUFFUVFkeU9nQWZJQVlnQkVFR2Nqb0FHeUFHSUFSQkJYSTZBQmNnQmlBRVFRUnlPZ0FUSUFZZ0JFRURjam9BRHlBR0lBUkJBbkk2QUFzZ0JFRVFhaUlFSUFkSERRQUxJQWNnQ0VZTkJnc0RRQ0FLSUFkQkFuUnFJZ1FnQnpvQUF5QUVRUUU2QUFJZ0IwRUJhaUlISUFoSERRQUxEQVVMSUFrZ0JUWUNNQ0FDUVFGQnlOSUFJQWxCTUdvUUQwRUFJUWNnQlVFQmFpSUZJQWhIRFFFTEN5QURFQkJCQUNFT0RBVUxJQWhCQkJBVElnTU5BUXRCQUNFT0lBSkJBVUdLMndCQkFCQVBEQU1MSUFNUUVBc0NRQ0FBS0FKNElnTkZEUUFnQXlnQ0RDSVBSUVJBSUFNb0FnUVFFQ0FBS0FKNEtBSUlFQkFnQUNnQ2VDZ0NBQkFRSUFBb0FuZ2lBeWdDRENJRUJIOGdCQkFRSUFBb0FuZ0ZJQU1MRUJBZ0FFRUFOZ0o0REFFTElBRW9BaGdoRFFKQUFrQWdBeTBBRWlJS0JFQWdBeWdDQUNFVUlBTW9BZ1FoQmlBREtBSUlJUWhCQUNFRkFrQURRQ0FOSUE4Z0JVRUNkR292QVFCQk5HeHFLQUlzQkVBZ0NpQUZRUUZxSWdWSERRRU1BZ3NMSUFrZ0JUWUNJQ0FDUVFGQnd1Y0FJQWxCSUdvUUQwRUFJUTRNQmdzZ0NrRTBiQkFVSWd0RkRRRkJBQ0VGQTBBZ0R5QUZRUUowYWlJREx3RUFJUWNnQ3lBRExRQUNCSDhnQXkwQUF3VWdCUXRCTkd4cUlnUWdEU0FIUVRSc2FpSUQvUUFDQVAwTEFnQWdCQ0FES0FJd05nSXdJQVFnQS8wQUFpRDlDd0lnSUFRZ0EvMEFBaEQ5Q3dJUUlBc2dCVUUwYkdvaUJDQURLQUlJSUFNb0FneHNRUUowRUJnaUF6WUNMQ0FEUlFSQUlBVUVRQ0FGUWYvL0EzRWhBQU5BSUFCQk5Hd2dDMnBCQ0dzb0FnQVFFQ0FBUVFGcklnQU5BQXNMSUFzUUVFRUFJUTRnQWtFQlFZN25BRUVBRUE4TUJ3c2dCQ0FGSUFocUxRQUFOZ0lZSUFRZ0JTQUdhaTBBQURZQ0lDQUZRUUZxSWdVZ0NrY05BQXNnQUNnQ2VDOEJFQ0lRUVFGcklSSURRQ0FMSUJOQk5HeHFJZ01vQWd3Z0F5Z0NDR3doQmlBTklBOGdFMEVDZEdvaUJDOEJBRUUwYkdvb0Fpd2hDQUpBSUFRdEFBSkZCRUFnQmtVTkFTQURLQUlzSVFWQkFDRUhRUUFoQkFKQUlBWkJCRWtOQUNBRklBaHJRUkJKRFFBZ0JrRjhjU0VFUVFBaEF3TkFJQVVnQTBFQ2RDSU1haUFJSUF4cS9RQUNBUDBMQWdBZ0EwRUVhaUlESUFSSERRQUxJQVFnQmtZTkFnc2dCQ0VESUFaQkEzRWlEQVJBQTBBZ0JTQURRUUowSWhGcUlBZ2dFV29vQWdBMkFnQWdBMEVCYWlFRElBZEJBV29pQnlBTVJ3MEFDd3NnQkNBR2EwRjhTdzBCQTBBZ0JTQURRUUowSWdScUlBUWdDR29vQWdBMkFnQWdCU0FFUVFScUlnZHFJQWNnQ0dvb0FnQTJBZ0FnQlNBRVFRaHFJZ2RxSUFjZ0NHb29BZ0EyQWdBZ0JTQUVRUXhxSWdScUlBUWdDR29vQWdBMkFnQWdBMEVFYWlJRElBWkhEUUFMREFFTElBWkZEUUFnRkNBRUxRQURJZ05CQW5ScUlRUWdDeUFEUVRSc2FpZ0NMQ0VGUVFBaEF5QUdRUUZIQkVBZ0JrRitjU0VWUVFBaERBTkFJQVVnQTBFQ2RDSUhhaUFFSUFjZ0NHb29BZ0FpRVNBU0lCQWdFVW9iUVFBZ0VVRUFUaHNnQ214QkFuUnFLQUlBTmdJQUlBVWdCMEVFY2lJSGFpQUVJQWNnQ0dvb0FnQWlCeUFTSUFjZ0VFZ2JRUUFnQjBFQVRoc2dDbXhCQW5ScUtBSUFOZ0lBSUFOQkFtb2hBeUFNUVFKcUlnd2dGVWNOQUFzTElBWkJBWEZGRFFBZ0JTQURRUUowSWdOcUlBUWdBeUFJYWlnQ0FDSURJQklnQXlBUVNCdEJBQ0FEUVFCT0d5QUtiRUVDZEdvb0FnQTJBZ0FMSUJOQkFXb2lFeUFLUncwQUN3d0NDeUFLUVRSc0VCUWlDdzBCQzBFQUlRNGdBa0VCUVk3bkFFRUFFQThNQXdzZ0FTZ0NFQ0lEQkVCQkFDRUZBMEFnRFNBRlFUUnNhaWdDTENJRUJFQWdCQkFRQ3lBRlFRRnFJZ1VnQTBjTkFBc0xJQTBRRUNBQklBbzJBaEFnQVNBTE5nSVlDeUFBS0FKMElnVkZEUUVnQlNnQ0FDRUhJQVV2QVFRaUN3UkFJQWRCS21vaEVpQUhRU1JxSVJNZ0IwRWVhaUVSSUFkQkdHb2hGQ0FIUVJKcUlSVWdCMEVNYWlFV0lBZEJCbW9oRnlBTFFRSnJJUmhCQUNFRlFRRWhCQU5BQWtBZ0FTZ0NFQ0lESUFjZ0JVRUdiR29pRFM4QkFDSUdUUVJBSUFrZ0F6WUNGQ0FKSUFZMkFoQWdBa0VDUWN3M0lBbEJFR29RRHd3QkN5QU5Md0VFSWdoQkFXcEIvLzhEY1VFQlRRUkFJQUVvQWhnZ0JrRTBiR29nRFM4QkFqc0JNQXdCQ3lBSVFRRnJJZ3BCLy84RGNTSVBJQU5QQkVBZ0NTQUROZ0lFSUFrZ0R6WUNBQ0FDUVFKQm96Y2dDUkFQREFFTEFrQWdCaUFQUmcwQUlBMHZBUUlOQUNBSklBRW9BaGdpQ0NBR1FUUnNhaUlES0FJd05nTG9BU0FKSUFQOUFBSWcvUXNEMkFFZ0NTQUQvUUFDRVAwTEE4Z0JJQWtnQS8wQUFnRDlDd080QVNBRElBZ2dEMEUwYkNJTWFpSUlLUUlJTndJSUlBTWdDQ2tDRURjQ0VDQURJQWdwQWhnM0FoZ2dBeUFJS1FJZ053SWdJQU1nQ0NrQ0tEY0NLQ0FESUFnb0FqQTJBakFnQXlBSUtRSUFOd0lBSUFFb0FoZ2dER29pQXlBSi9RQUR1QUg5Q3dJQUlBTWdDZjBBQTlnQi9Rc0NJQ0FESUFuOUFBUElBZjBMQWhBZ0F5QUpLQUxvQVRZQ01DQUZRUUZxSUF0UERRQWdCQ0VJSUJnZ0JXdEIvLzhEY1NJRFFRZFBCRUFnQkNBRFFRRnFJaGxCK1A4SGNTSVFhaUVJSUFyOUVDRWtJQWI5RUNFalFRQWhEQU5BSUNNZ0pDQVNJQVFnREdwQkJtd2lBMm9pR2lBRElCTnFJaHNnQXlBUmFpSWNJQU1nRkdvaUhTQURJQlZxSWg0Z0F5QVdhaUlmSUFNZ0Yyb2lJQ0FESUFkcUlnUDlDQUVBL1ZVQkFBSDlWUUVBQXYxVkFRQUQvVlVCQUFUOVZRRUFCZjFWQVFBRy9WVUJBQWNpSVNBai9TNGdJU0FrL1MwaUpmMU8vVkloSWlBaElDUDlMU0FsL1ZBaUlmMFpBRUVCY1FSQUlBTWdJdjFaQVFBQUN5QWgvUmtCUVFGeEJFQWdJQ0FpL1ZrQkFBRUxJQ0g5R1FKQkFYRUVRQ0FmSUNMOVdRRUFBZ3NnSWYwWkEwRUJjUVJBSUI0Z0l2MVpBUUFEQ3lBaC9Sa0VRUUZ4QkVBZ0hTQWkvVmtCQUFRTElDSDlHUVZCQVhFRVFDQWNJQ0w5V1FFQUJRc2dJZjBaQmtFQmNRUkFJQnNnSXYxWkFRQUdDeUFoL1JrSFFRRnhCRUFnR2lBaS9Wa0JBQWNMSUF4QkNHb2lEQ0FRUncwQUN5QVFJQmxHRFFFTEEwQWdDaUVEQWtBZ0JpQUhJQWhCQm14cUlnd3ZBUUFpRUVjRVFDQUdJUU1nRHlBUVJ3MEJDeUFNSUFNN0FRQUxJQXNnQ0VFQmFpSUlRZi8vQTNGSERRQUxDeUFCS0FJWUlBWkJOR3hxSUEwdkFRSTdBVEFMSUFSQkFXb2hCQ0FGUVFGcUlnVWdDMGNOQUFzZ0FDZ0NkQ0lGS0FJQUlRY0xJQWNFZnlBSEVCQWdBQ2dDZEFVZ0JRc1FFQ0FBUVFBMkFuUU1BUXRCQUNFT0lBSkJBVUdoeGdCQkFCQVBDeUFKUWZBQmFpUUFJQTRMNlFFQkJuOGpBRUVnYXlJRUpBQUNmd0pBSUFBb0Fqd2lBd1JBUVFFaEJRTkFJQUFvQWt3b0FoZ2dBQ2dDUUNBQ1FRSjBhaWdDQUNJR1FUUnNhaWdDTEVVRVFDQUVJQVkyQWhBZ0FVRUNRZG81SUFSQkVHb1FEMEVBSVFVZ0FDZ0NQQ0VEQ3lBQ1FRRnFJZ0lnQTBrTkFBc01BUXRCQVNFRlFRRWdBQ2dDVENJREtBSVFSUTBCR2dOQUlBTW9BaGdnQWtFMGJHb29BaXhGQkVBZ0JDQUNOZ0lBSUFGQkFrSGFPU0FFRUE5QkFDRUZJQUFvQWt3aEF3c2dBa0VCYWlJQ0lBTW9BaEJKRFFBTEMwRUJJQVVOQUJvZ0FVRUJRYjhWUVFBUUQwRUFDeUVISUFSQklHb2tBQ0FIQ3dRQVFYOExoZ2NDRm44Q2ZpQUFLQUlZSWhBb0FoQkZCRUJCQVE4TElCQW9BaGdoRFNBQUtBSVVLQUlBS0FJVUlRc0RRQ0FCSUEwb0FpUWlBallDSkNBTEtBSWNJZ1lnQWtHWUFXeHFJUU1DUUFKQUFuOGdBQ2dDUUNJUkJFQWdCaUFMS0FJWVFaZ0JiR29pQWtHUUFXc29BZ0FnQWtHWUFXc29BZ0JySVF3Z0EwRU1haUVHSUFOQkJHb2hCQ0FES0FJSUlRSWdBeWdDQUNFRlFTUU1BUXNnQTBHVUFXb2hCaUFEUVl3QmFpRUVJQU1vQXBBQklnSWdBeWdDaUFFaUJXc2hERUUwQ3lBTGFpZ0NBQ0lTUlEwQUlBUW9BZ0FoQnlBR0tBSUFJUWtnQWlBRmF5RUdJQUVvQWdnaUEwSi9JQUUxQWlnaUdJWkNmNFVpR1NBQk5RSVFmQ0FZaUtjaUNHb2hCQUovSUFVZ0NFc0VRQ0FGSUFocklRNUJBQ0VJUVFBZ0FpQUVUUTBCR2lBR0lBUWdCV3NpQm1zTUFRc2dDQ0FGYXlFSUlBSWdCRTBFUUNBR0lBaHJJUVpCQUNFT1FRQU1BUXRCQUNFT0lBTWhCaUFDSUFSckN5RVZJQWtnQjJzaEFpQUJLQUlNSWdRZ0dTQUJOUUlVZkNBWWlLY2lDbW9oQlFKL0lBY2dDa3NFUUNBSElBcHJJUTlCQUNFS1FRQWdCU0FKVHcwQkdpQUNJQVVnQjJzaUFtc01BUXNnQ2lBSGF5RUtJQVVnQ1U4RVFDQUNJQXBySVFKQkFDRVBRUUFNQVF0QkFDRVBJQVFoQWlBSklBVnJDeUVIUVFBaEJTQUlRUUJJRFFFZ0NrRUFTQTBCSUJWQkFFZ05BU0FIUVFCSURRRWdCa0VBU0EwQklBSkJBRWdOQVNBRElBOXNJQTVxSVFjZ0NpQU1iQ0FJYWlFSkFrQUNRQUpBSUFFb0Fpd2lDQTBBSUFrTkFDQUhEUUFnQXlBTVJ3MEFJQU1nQmtjTkFDQUNJQVJIRFFFZ0FTQUxRU1JCTkNBUkcyb2lBaWdDQURZQ0xDQUNRUUEyQWdBTUF3c2dDQTBCQ3lBRVJRMENJQVN0SUFPdGZrSWdpS2NOQWlBRElBUnNJZ05CLy8vLy93TkxEUUlnQVNBRFFRSjBFQmdpQXpZQ0xDQURSUTBDSUFZZ0FTZ0NDQ0lFUmlBQktBSU1JZ1VnQWtaeERRQWdBMEVBSUFRZ0JXeEJBblFRRlJvTElBSkZEUUFnQWtFQmNTRVhJQVpCQW5RaEJpQUJLQUlzSUFkQkFuUnFJUVFnRWlBSlFRSjBhaUVGSUFKQkFVY0VRQ0FDUWY3Ly8vOEhjU0VIUVFBaEFnTkFJQVFnQlNBR0VCSWhGaUFGSUF4QkFuUWlDV29pQ0NBSmFpRUZJQllnQVNnQ0NFRUNkR29nQ0NBR0VCSWdBU2dDQ0VFQ2RHb2hCQ0FDUVFKcUlnSWdCMGNOQUFzTElCZEZEUUFnQkNBRklBWVFFaG9MSUF0QnpBQnFJUXNnRFVFMGFpRU5JQUZCTkdvaEFVRUJJUVVnRkVFQmFpSVVJQkFvQWhCSkRRRUxDeUFGQzlVU0FnbC9ESDRqQUVHZ0FXc2lCU1FBQWtBZ0FrRWpUUVJBUVFBaEFpQURRUUZCdGk1QkFCQVBEQUVMSUFKQkpHc2lBaUFDUVFOdUlnbEJBMnhIQkVCQkFDRUNJQU5CQVVHMkxrRUFFQThNQVFzZ0FDZ0NTQ0VHSUFFZ0JVR2NBV29pQWtFQ0VCRWdBQ0FGS0FLY0FUc0JVQ0FCUVFKcUlBWkJDR3BCQkJBUklBRkJCbW9nQmtFTWFrRUVFQkVnQVVFS2FpQUdRUVFRRVNBQlFRNXFJQVpCQkdwQkJCQVJJQUZCRW1vZ0FFSGNBR3BCQkJBUklBRkJGbW9nQUVIZ0FHcEJCQkFSSUFGQkdtb2dBRUhVQUdwQkJCQVJJQUZCSG1vZ0FFSFlBR3BCQkJBUklBRkJJbW9nQWtFQ0VCRUNRQUpBQWtBZ0JTZ0NuQUVpQWtHQWdBRk5CRUFnQmlBQ05nSVFJQUlnQ1VjRVFDQUZJQWsyQW9RQklBVWdBallDZ0FFZ0EwRUJRWkh3QUNBRlFZQUJhaEFQUVFBaEFnd0ZDeUFHS0FJRUlnSWdCaWdDRENJSVNTQUdLQUlJSWdzZ0JpZ0NBQ0lFUzNGRkJFQWdCU0FJclNBQ3JYMDNBM2dnQlNBTHJTQUVyWDAzQTNBZ0EwRUJRZHZzQUNBRlFmQUFhaEFQUVFBaEFnd0ZDeUFBS0FKY0lnZEJBQ0FBS0FKZ0lnb2JSUVJBSUFVZ0NqWUNCQ0FGSUFjMkFnQWdBMEVCUVlQeEFDQUZFQTlCQUNFQ0RBVUxBa0FDUUNBQUtBSlVJZ3dnQkVzTkFFRi9JQWNnREdvaUJ5QUhJQXhKR3lBRVRRMEFJQUFvQWxnaUJ5QUNTdzBBUVg4Z0J5QUthaUlLSUFjZ0Nrc2JJQUpMRFFFTFFRQWhBaUFEUVFGQjFoUkJBQkFQREFVTEFrQWdBQ2dDNEFFTkFDQUFLQUxZQVNJSFJRMEFJQUFvQXR3QklncEZEUUFnQ3lBRWF5SUVJQWRHSUFnZ0Ftc2lBaUFLUm5FTkFDQUZJQUkyQW13Z0JTQUVOZ0pvSUFVZ0NqWUNaQ0FGSUFjMkFtQWdBMEVCUWNQb0FDQUZRZUFBYWhBUFFRQWhBZ3dGQ3lBR0lBbEJOQkFUSWdRMkFoZ2dCRVVOQVFKQUlBWW9BaEJGRFFBZ0FVRWthaUFGUVpnQmFpSUNRUUVRRVNBRUlBVW9BcGdCSWdsQkIzWWlDallDSUNBRUlBbEIvd0J4UVFGcUlndzJBaGdnQUNnQzRBRWhDeUFCUVNWcUlBSkJBUkFSSUFRZ0JTZ0NtQUUyQWdBZ0FVRW1haUFDUVFFUUVTQUVJQVVvQXBnQklnZzJBZ1JCQUNFQ0lBUW9BZ0FpQjBHQUFtdEJnWDVKQkVCQkFDRUpEQVVMUVFBaENTQUlRWUFDYTBHQmZra05CQ0FFS0FJWUlnaEJIMHNOQXlBRVFRQTJBaVFnQkNBQUtBS2dBVFlDS0VFQklRa2dCaWdDRUVFQlRRMEFRUUFnQ2lBTEd5RUtRUUFnRENBTEd5RUxJQUZCSjJvaEFRTkFJQUVnQlVHWUFXcEJBUkFSSUFRZ0JTZ0NtQUVpQjBFSGRpSUlOZ0pVSUFRZ0IwSC9BSEZCQVdvaUJ6WUNUQUpBSUFBb0F1QUJEUUFnQUMwQXZBRkJCSEVOQUNBSElBdEdJQWdnQ2taeERRQWdCU0FJTmdKVUlBVWdCellDVUNBRklBazJBa3dnQlNBS05nSklJQVVnQ3pZQ1JDQUZJQWsyQWtBZ0EwRUNRY2Z1QUNBRlFVQnJFQThMSUFGQkFXb2dCVUdZQVdvaUNFRUJFQkVnQkNBRktBS1lBVFlDTkNBQlFRSnFJQWhCQVJBUklBUWdCU2dDbUFFaUNEWUNPQ0FFS0FJMElnZEJnQUpyUVlGK1NRMEZJQWhCZ0FKclFZQitUUTBGSUFRb0Frd2lDRUVnVHcwRUlBRkJBMm9oQVNBRVFRQTJBbGdnQkNBQUtBS2dBVFlDWENBRVFUUnFJUVFnQ1VFQmFpSUpJQVlvQWhCSkRRQUxDMEVBSVFJZ0FDZ0NYQ0lJUlEwRUlBQW9BbUFpQzBVTkJDQUFJQWl0SWcxQ0FYMGlEeUFHS0FJSUlBQW9BbFFpQjJ1dGZDQU5nS2NpQVRZQ2FDQUFJQXV0SWc1Q0FYMGlFQ0FHS0FJTUlBQW9BbGdpQ211dGZDQU9nS2NpQkRZQ2JBSkFBa0FnQVVVTkFDQUVSUTBBUWYvL0F5QUViaUFCVHcwQkN5QUZJQVEyQWhRZ0JTQUJOZ0lRSUFOQkFVRzE2UUFnQlVFUWFoQVBEQVVMSUFFZ0JHd2hDUUpBSUFBdEFFUkJBbkVFUUNBQUlBQW9BaHdnQjJzZ0NHNDJBaHdnQUNBQUtBSWdJQXBySUF0dU5nSWdJQUFnRHlBQUtBSWtJQWRyclh3Z0RZQStBaVFnQUNBUUlBQW9BaWdnQ211dGZDQU9nRDRDS0F3QkN5QUFJQVEyQWlnZ0FDQUJOZ0lrSUFCQ0FEY0NIQXNnQUNBSlFZd3NFQk1pQVRZQ25BRWdBVVVFUUNBRFFRRkJ6UjFCQUJBUERBVUxJQVlvQWhCQnVBZ1FFeUVCSUFBb0Fnd2dBVFlDMENzZ0FDZ0NEQ2dDMEN0RkJFQWdBMEVCUWMwZFFRQVFEd3dGQzBFS1FSUVFFeUVCSUFBb0Fnd2dBVFlDOENzZ0FDZ0NEQ0lCS0FMd0swVUVRQ0FEUVFGQnpSMUJBQkFQREFVTElBRkJDallDK0N0QkNrRVVFQk1oQVNBQUtBSU1JQUUyQXZ3cklBQW9BZ3dpQVNnQy9DdEZCRUFnQTBFQlFjMGRRUUFRRHd3RkN5QUJRUW8yQW9Rc0FrQWdCaWdDRUNJRVJRMEFJQVlvQWhnaENFRUFJUUVnQkVFQlJ3UkFJQVJCZm5FaEN3TkFJQWdnQVVFMGJHb2lCeWdDSUVVRVFDQUFLQUlNS0FMUUt5QUJRYmdJYkdwQkFTQUhLQUlZUVFGcmREWUN0QWdMSUFnZ0FVRUJjaUlIUVRSc2FpSUtLQUlnUlFSQUlBQW9BZ3dvQXRBcklBZEJ1QWhzYWtFQklBb29BaGhCQVd0ME5nSzBDQXNnQVVFQ2FpRUJJQUpCQW1vaUFpQUxSdzBBQ3dzZ0JFRUJjVVVOQUNBSUlBRkJOR3hxSWdJb0FpQU5BQ0FBS0FJTUtBTFFLeUFCUWJnSWJHcEJBU0FDS0FJWVFRRnJkRFlDdEFnTElBa0VRQ0FBS0FLY0FTRUJRUUFoQWdOQUlBRWdCaWdDRUVHNENCQVRJZ1EyQXRBcklBUkZCRUJCQUNFQ0lBTkJBVUhOSFVFQUVBOE1Cd3NnQVVHTUxHb2hBU0FDUVFGcUlnSWdDVWtOQUFzTElBQkJCRFlDQ0NBR0tBSVFJZ01FUUVGL0lBQW9BbGdpQVNBQUtBSmdJZ0lnQUNnQ2JFRUJhMnhxSWdRZ0Ftb2lBaUFDSUFSSkd5SUNJQVlvQWd3aUJDQUNJQVJKRzYwaEVFRi9JQUFvQWxRaUFpQUFLQUpjSWdRZ0FDZ0NhRUVCYTJ4cUlnQWdCR29pQkNBQUlBUkxHeUlBSUFZb0FnZ2lCQ0FBSUFSSkc2MGhFU0FCSUFZb0FnUWlBQ0FBSUFGSkc2MGhFaUFDSUFZb0FnQWlBQ0FBSUFKSkc2MGhFeUFHS0FJWUlRQkJBQ0VCQTBBZ0FDQUFOUUlFSWcxQ0FYMGlGQ0FTZkNBTmdDSVZQZ0lVSUFBZ0FEVUNBQ0lPUWdGOUloWWdFM3dnRG9BaUZ6NENFQ0FBUW44Z0FEVUNLQ0lQaGtKL2hTSVlJQkFnRkh3Z0RZQWdGWDFDLy8vLy93K0RmQ0FQaUQ0Q0RDQUFJQkVnRm53Z0RvQWdGMzFDLy8vLy93K0RJQmg4SUErSVBnSUlJQUJCTkdvaEFDQUJRUUZxSWdFZ0EwY05BQXNMUVFFaEFnd0VDeUFGSUFJMkFwQUJJQU5CQVVIMk95QUZRWkFCYWhBUFFRQWhBZ3dEQzBFQUlRSWdCa0VBTmdJUUlBTkJBVUhOSFVFQUVBOE1BZ3NnQlNBSU5nSTBJQVVnQ1RZQ01DQURRUUZCdC9NQUlBVkJNR29RRHd3QkN5QUZJQWcyQWlnZ0JTQUhOZ0lrSUFVZ0NUWUNJQ0FEUVFGQmtlc0FJQVZCSUdvUUR3c2dCVUdnQVdva0FDQUNDNTREQVFkL0l3QkJFR3NpQmlRQUFuOGdBaUFDUVFGQkFpQUFLQUpJS0FJUUlnaEJnUUpKR3lJSFFRRjBRUVZxSWdSdUlnVWdCR3hHSUFJZ0JFOXhSUVJBSUFOQkFVR0tJMEVBRUE5QkFBd0JDd0ovSUFBb0FnaEJFRVlFUUNBQUtBS2NBU0FBS0FMTUFVR01MR3hxREFFTElBQW9BZ3dMSVFSQkFDRUFJQVF0QUlnc0lnSkJCSEVFUUNBRUtBS2tBMEVCYWlFQUN5QUFJQVZxSWdWQklFOEVRQ0FHSUFVMkFnQWdBMEVCUVlzN0lBWVFEMEVBREFFTElBUWdBa0VFY2pvQWlDd2dBQ0FGU1FSQUlBUWdBRUdVQVd4cVFhZ0RhaUVDQTBBZ0FTQUNRUUVRRVNBQlFRRnFJZ0VnQWtFRWFpQUhFQkVnQVNBSGFpSUJJQUpCQ0dwQkFoQVJJQUlnQWlnQ0NDSURJQVFvQWdnaUNTQURJQWxKR3pZQ0NDQUJRUUpxSUFKQkRHcEJBUkFSSUFGQkEyb2lBU0FDUVJCcUlBY1FFU0FCSUFkcUlnRWdCa0VNYWtFQkVCRWdBaUFHS0FJTU5nSWtJQUlnQWlnQ0VDSURJQWdnQXlBSVNSczJBaEFnQWtHVUFXb2hBaUFCUVFGcUlRRWdBRUVCYWlJQUlBVkhEUUFMQ3lBRUlBVkJBV3MyQXFRRFFRRUxJUW9nQmtFUWFpUUFJQW9MN0FFQkJIOGpBRUVRYXlJRUpBQUNmd0pBSUFFZ0JFRUlhZ0ovSUFBb0FrZ29BaEJCZ0FKTkJFQWdBZ1JBUVg4aEJVRUJEQUlMSUFOQkFVRytJMEVBRUE5QkFBd0RDeUFDUVFGTkRRRkJmaUVGUVFJTElnWVFFU0FFSUFJZ0JXbzJBZ3dnQkNnQ0NDSUNJQUFvQWtnb0FoQWlCVThFUUNBRUlBVTJBZ1FnQkNBQ05nSUFJQU5CQVVIR09pQUVFQTlCQUF3Q0N5QUFJQUlnQVNBR2FpQUVRUXhxSUFNUVFrVUVRQ0FEUVFGQnZpTkJBQkFQUVFBTUFndEJBU0FFS0FJTVJRMEJHaUFEUVFGQnZpTkJBQkFQUVFBTUFRc2dBMEVCUWI0alFRQVFEMEVBQ3lFSElBUkJFR29rQUNBSEM5a0JBUVIvSXdCQkVHc2lCQ1FBSUFRZ0FqWUNEQUpBQWtBZ0FFRUFJQUVnQkVFTWFpQURFRUpGRFFBZ0JDZ0NEQTBBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BcHdCSUFBb0Fzd0JRWXdzYkdvTUFRc2dBQ2dDREFzaEIwRUJJUVVnQUNnQ1NDZ0NFRUVDU1EwQklBY29BdEFySWdKQkhHb2hCa0VCSVFFZ0FpRURBMEFnQXlBQ0tBSVlOZ0xRQ0NBRElBSW9BcVFHTmdMY0RpQURRZFFJYWlBR1FZZ0dFQklhSUFOQnVBaHFJUU1nQVVFQmFpSUJJQUFvQWtnb0FoQkpEUUFMREFFTElBTkJBVUhXSWtFQUVBOExJQVJCRUdva0FDQUZDOVlCQVFOL0l3QkJFR3NpQkNRQUFrQWdBa0VCUVFJZ0FDZ0NTQ2dDRUNJR1FZRUNTUnNpQlVFQ2FrY0VRRUVBSVFBZ0EwRUJRWW9nUVFBUUR3d0JDd0ovSUFBb0FnaEJFRVlFUUNBQUtBS2NBU0FBS0FMTUFVR01MR3hxREFFTElBQW9BZ3dMSVFJZ0FTQUVRUXhxSUFVUUVVRUJJUUFnQVNBRmFpSUZJQVJCQ0dwQkFSQVJJQVlnQkNnQ0RDSUJUUVJBSUFRZ0JqWUNCQ0FFSUFFMkFnQWdBMEVCUWRqdkFDQUVFQTlCQUNFQURBRUxJQVZCQVdvZ0FpZ0MwQ3NnQVVHNENHeHFRYWdHYWtFQkVCRUxJQVJCRUdva0FDQUFDNFFDQVFWL0l3QkJFR3NpQkNRQUFuOGdBQ2dDQ0VFUVJnUkFJQUFvQXB3QklBQW9Bc3dCUVl3c2JHb01BUXNnQUNnQ0RBc2hCZ0pBSUFKQkFVRUNJQUFvQWtnaUJ5Z0NFRUdCQWtrYklnVk5CRUJCQUNFQ0lBTkJBVUdrSTBFQUVBOE1BUXNnQkNBRlFYOXpJQUpxTmdJTUlBRWdCRUVJYWlBRkVCRWdCQ2dDQ0NJSUlBY29BaEJQQkVCQkFDRUNJQU5CQVVHQTZRQkJBQkFQREFFTFFRRWhBaUFCSUFWcUlnRWdCaWdDMENzZ0NFRzRDR3hxUVFFUUVTQUFJQVFvQWdnZ0FVRUJhaUFFUVF4cUlBTVFRMFVFUUVFQUlRSWdBMEVCUWFRalFRQVFEd3dCQ3lBRUtBSU1SUTBBUVFBaEFpQURRUUZCcENOQkFCQVBDeUFFUVJCcUpBQWdBZ3VzQmdFSGZ5TUFRUkJySWdZa0FDQUdJQUkyQWd3Z0FDZ0NTQ0VKQW44Z0FDZ0NDRUVRUmdSQUlBQW9BcHdCSUFBb0Fzd0JRWXdzYkdvTUFRc2dBQ2dDREFzaUJDQUVMUUNJTEVFQmNqb0FpQ3dDUUNBQ1FRUk5CRUFnQTBFQlFid2lRUUFRRHd3QkN5QUJJQVJCQVJBUklBUW9BZ0JCQ0U4RVFDQURRUUZCbWlKQkFCQVBEQUVMSUFGQkFXb2dCa0VJYWtFQkVCRWdCQ0FHS0FJSUlnSTJBZ1FnQWtFRlRnUkFJQU5CQVVIeElVRUFFQThnQkVGL05nSUVDeUFCUVFKcUlBUkJDR3BCQWhBUklBUW9BZ2dpQjBHQWdBUnJRWUNBZkUwRVFDQUdJQWMyQWdBZ0EwRUJRYWs5SUFZUUR3d0JDeUFFSUFBb0FxUUJJZ0lnQnlBQ0d6WUNEQ0FCUVFScUlBUkJFR3BCQVJBUklBUW9BaEJCQWs4RVFDQURRUUZCaHlwQkFCQVBEQUVMSUFGQkJXb2hBaUFHSUFZb0FneEJCV3MyQWd3Q1FDQUpLQUlRSWdkRkRRQWdCQ2dDQUVFQmNTRUlJQVFvQXRBcklRUkJBQ0VKSUFkQkNFOEVRQ0FIUVhoeElRRURRQ0FFSUFWQnVBaHNhaUFJTmdJQUlBUWdCVUVCY2tHNENHeHFJQWcyQWdBZ0JDQUZRUUp5UWJnSWJHb2dDRFlDQUNBRUlBVkJBM0pCdUFoc2FpQUlOZ0lBSUFRZ0JVRUVja0c0Q0d4cUlBZzJBZ0FnQkNBRlFRVnlRYmdJYkdvZ0NEWUNBQ0FFSUFWQkJuSkJ1QWhzYWlBSU5nSUFJQVFnQlVFSGNrRzRDR3hxSUFnMkFnQWdCVUVJYWlFRklBcEJDR29pQ2lBQlJ3MEFDd3NnQjBFSGNTSUJSUTBBQTBBZ0JDQUZRYmdJYkdvZ0NEWUNBQ0FGUVFGcUlRVWdDVUVCYWlJSklBRkhEUUFMQzBFQUlRVWdBRUVBSUFJZ0JrRU1haUFERUVORkJFQWdBMEVCUWJ3aVFRQVFEd3dCQ3lBR0tBSU1CRUFnQTBFQlFid2lRUUFRRHd3QkN3Si9JQUFvQWdoQkVFWUVRQ0FBS0FLY0FTQUFLQUxNQVVHTUxHeHFEQUVMSUFBb0Fnd0xJUUVnQUNnQ1NDZ0NFRUVDVHdSQUlBRW9BdEFySWdFb0FnUkJBblFoQnlBQlFiQUhhaUVLSUFGQnJBWnFJUU5CQVNFSklBRWhBZ05BSUFJZ0FmMEFBZ1Q5Q3dLOENDQUNJQUVvQWhRMkFzd0lJQUpCNUE1cUlBTWdCeEFTR2lBQ1FlZ1BhaUFLSUFjUUVob2dBa0c0Q0dvaEFpQUpRUUZxSWdrZ0FDZ0NTQ2dDRUVrTkFBc0xRUUVoQlFzZ0JrRVFhaVFBSUFVTDdBa0JCbjhqQUVId0FHc2lCQ1FBSUFSQkFEWUNhQUpBSUFKQkNFY0VRQ0FEUVFGQnZSNUJBQkFQSUFOQkFVRzlIa0VBRUE4TUFRc2dBU0FBUWN3QmFrRUNFQkVnQVVFQ2FpQUVRZXdBYWtFRUVCRWdBVUVHYWlBRVFlUUFha0VCRUJFZ0FVRUhhaUFFUWVnQWFrRUJFQkVnQUNnQ3pBRWlBaUFBS0FKb0lnZ2dBQ2dDYkd4UEJFQWdCQ0FDTmdKZ0lBTkJBVUdkT3lBRVFlQUFhaEFQREFFTElBQW9BcHdCSUFKQmpDeHNhaUVGSUFJZ0NHNGhCeUFFS0FKa0lRRUNRQ0FBS0FJc0lnWkJBRTRnQWlBR1IzRU5BQ0FGS0FMVUswRUJhaUlHSUFGR0RRQWdCQ0FHTmdKWUlBUWdBVFlDVkNBRUlBSTJBbEFnQTBFQlFiVTdJQVJCMEFCcUVBOUJBQ0VGREFFTElBVWdBVFlDMUNzQ1FBSkFJQVFvQW13aUFVRUJhMEVNVFFSL0lBRkJERWNOQVNBRVFRdzJBakFnQTBFQ1FlWFhBQ0FFUVRCcUVBOGdCQ2dDYkFVZ0FRdEZCRUFnQTBFRVFiTFBBRUVBRUE4Z0FFRUJOZ0k0Q3dKQUFrQUNRQUpBSUFVb0F0Z3JJZ0VFUUNBRUtBSmtJZ1lnQVVrTkFTQUVJQUUyQWlRZ0JDQUdOZ0lnSUFOQkFVR0ZKeUFFUVNCcUVBOGdBRUVCTmdJNFFRQWhCUXdIQ3lBRUtBSm9JZ1lOQVF3REN5QUVLQUpvSWdaRkRRRUxJQVFnQmlBQUxRQkVRUVIyUVFGeGFpSUJOZ0pvSUFRb0FtUWlCaUFGS0FMWUt5SUpRUUZyU3dSQUlBUWdDVFlDQkNBRUlBWTJBZ0FnQTBFQlFhSW1JQVFRRHlBQVFRRTJBamhCQUNFRkRBVUxJQUVnQmswRVFDQUVJQUUyQWhRZ0JDQUdOZ0lRSUFOQkFVSHBKeUFFUVJCcUVBOGdBRUVCTmdJNFFRQWhCUXdGQ3lBRklBRTJBdGdyQ3lBQklBUW9BbVJCQVdwSERRQWdBQ0FBTFFCRVFRRnlPZ0JFQ3lBRUtBSnNJUUVnQUVFUU5nSUlJQUJCQUNBQlFReHJJQUFvQWpnYk5nSVlBa0FnQUNnQ0xDSUJRWDlHQkVCQkJDRUZJQUlnQnlBSWJHc2lBU0FBS0FJY1NRMEJJQUVnQUNnQ0pFOE5BU0FISUFBb0FpQkpEUUVnQnlBQUtBSW9UMEVDZENFRkRBRUxJQUFvQXN3QklBRkhRUUowSVFVTElBQWdBQzBBUkVIN0FYRWdCWEk2QUVSQkFTRUZJQUFvQXNnQklnRkZEUUlnQVNnQ0tDSUdJQUFvQXN3QklnSkJLR3hxSWdjZ0FqWUNBQ0FISUFRb0FtUWlDRFlDRENBRUtBSm9JZ0VFUUNBSElBRTJBZ1FnQnlBRUtBSm9JZ0UyQWdnZ0J5Z0NFQ0lDUlFSQUlBRkJHQkFUSVFFZ0FDZ0N5QUVvQWlnZ0FDZ0N6QUZCS0d4cUlBRTJBaEFnQVEwRVFRQWhCU0FEUVFGQnlUUkJBQkFQREFRTElBSWdBVUVZYkJBWElRRWdBQ2dDeUFFb0FpZ2dBQ2dDekFGQktHeHFJUUlnQVVVRVFDQUNLQUlRRUJCQkFDRUZJQUFvQXNnQktBSW9JQUFvQXN3QlFTaHNha0VBTmdJUUlBTkJBVUhKTkVFQUVBOE1CQXNnQWlBQk5nSVFEQU1MSUFjb0FoQWlBVVVFUUNBSFFRbzJBZ2hCQ2tFWUVCTWhBU0FBS0FMSUFTZ0NLQ0lHSUFBb0Fzd0JJZ0pCS0d4cUlnY2dBVFlDRUNBQlJRMENJQVFvQW1RaENBc2dDQ0FHSUFKQktHeHFJZ0lvQWdoSkRRSWdBaUFJUVFGcUlnSTJBZ2dnQVNBQ1FSaHNFQmNoQVNBQUtBTElBU2dDS0NBQUtBTE1BVUVvYkdvaEFpQUJSUVJBSUFJb0FoQVFFRUVBSVFVZ0FDZ0N5QUVvQWlnZ0FDZ0N6QUZCS0d4cUlnQkJBRFlDQ0NBQVFRQTJBaEFnQTBFQlFjazBRUUFRRHd3REN5QUNJQUUyQWhBTUFnc2dCQ0FCTmdKQUlBTkJBVUh5MlFBZ0JFRkFheEFQUVFBaEJRd0JDMEVBSVFVZ0IwRUFOZ0lJSUFOQkFVSEpORUVBRUE4TElBUkI4QUJxSkFBZ0JRdXJCd0VJZnlNQVFkQUFheUlFSkFBZ0JFRUJOZ0pNQWtBQ1FDQUFLQUxJQVNJRktBSW9JZ01OQUNBRklBQW9BbXdnQUNnQ2FHd2lBellDSkNBRFFTZ1FFeUVESUFBb0FzZ0JJZ1VnQXpZQ0tDQURSUVJBUVFBaEJRd0NDeUFGS0FJa1JRMEFBMEJCQUNFRklBTWdCa0VvYkNJSGFpSURRUUEyQWhRZ0EwSGtBRFlDSEVIa0FFRVlFQk1oQ1NBSElBQW9Bc2dCSWdnb0FpZ2lBMm9nQ1RZQ0dDQUpSUTBDSUFaQkFXb2lCaUFJS0FJa1NRMEFDd3NnQUNnQ0xDRUpBa0FnQXlnQ0VFVU5BQUpBSUFNZ0NVRW9iR29pQXlnQ0JFVUVRQ0FCSUFBcEF6QkNBbndnQWhBMkRRRkJBQ0VGSUFKQkFVR25LVUVBRUE4TUF3c2dBU0FES0FJUUtRTUFRZ0o4SUFJUU5nMEFRUUFoQlNBQ1FRRkJweWxCQUJBUERBSUxJQUFvQWdoQmdBSkhEUUFnQUVFSU5nSUlDd0pBSUFBb0Ftd2dBQ2dDYUd3aUIwVU5BQ0FBS0FLY0FTRUZRUUFoQXlBSFFRaFBCRUFnQjBGNGNTRUlRUUFoQmdOQUlBVWdBMEdNTEd4cVFYODJBdFFySUFVZ0EwRUJja0dNTEd4cVFYODJBdFFySUFVZ0EwRUNja0dNTEd4cVFYODJBdFFySUFVZ0EwRURja0dNTEd4cVFYODJBdFFySUFVZ0EwRUVja0dNTEd4cVFYODJBdFFySUFVZ0EwRUZja0dNTEd4cVFYODJBdFFySUFVZ0EwRUdja0dNTEd4cVFYODJBdFFySUFVZ0EwRUhja0dNTEd4cVFYODJBdFFySUFOQkNHb2hBeUFHUVFocUlnWWdDRWNOQUFzTElBZEJCM0VpQmtVTkFBTkFJQVVnQTBHTUxHeHFRWDgyQXRRcklBTkJBV29oQXlBS1FRRnFJZ29nQmtjTkFBc0xRUUFoQlNBQUlBUkJ5QUJxUVFBZ0JFSEVBR29nQkVGQWF5QUVRVHhxSUFSQk9Hb2dCRUUwYWlBRVFjd0FhaUFCSUFJUUowVU5BQ0FKUVFGcUlRY0RRQUpBSUFRb0FreEZEUUFnQUNBRUtBSklJZ05CQUVFQUlBRWdBaEFyUlEwQ0lBQW9BbWdoQ0NBQUtBSnNJUW9nQkNBRFFRRnFJZ1kyQWlBZ0JDQUlJQXBzTmdJa0lBSkJCRUdnMXdBZ0JFRWdhaEFQSUFBb0F0QUJJQUFvQWt3b0FoZ1FkRVVOQWlBQUtBS2NBU0FEUVl3c2JHb2lCU2dDM0NzaUNBUkFJQWdRRUNBRlFnQTNBdHdyQ3lBRUlBWTJBaEFnQWtFRVFlYjhBQ0FFUVJCcUVBOGdBeUFKUmdSQUlBRWdBQ2dDeUFFcEF3aENBbndnQWhBMkRRRkJBQ0VGSUFKQkFVR25LVUVBRUE4TUF3c2dCQ0FITmdJRUlBUWdCallDQUNBQ1FRSkIzZVVBSUFRUUQwRUFJUVVnQUNBRVFjZ0Fha0VBSUFSQnhBQnFJQVJCUUdzZ0JFRThhaUFFUVRocUlBUkJOR29nQkVITUFHb2dBU0FDRUNjTkFRd0NDd3NnQUNBQ0VISWhCUXNnQkVIUUFHb2tBQ0FGQzhnR0FnZC9BWDRqQUVIUUFHc2lBeVFBSUFOQkFUWUNUQUpBQWtBZ0FDZ0NhQ0lFUVFGSERRQWdBQ2dDYkVFQlJ3MEFJQUFvQWxRTkFDQUFLQUpZRFFBZ0FDZ0NUQ0lGS0FJQURRQWdCU2dDQkEwQUlBVW9BZ2dnQUNnQ1hFY05BQ0FGS0FJTUlBQW9BbUJIRFFCQkFDRUVJQUFnQTBISUFHcEJBQ0FEUWNRQWFpQURRVUJySUFOQlBHb2dBMEU0YWlBRFFUUnFJQU5CekFCcUlBRWdBaEFuUlEwQkFrQWdBQ0FES0FKSVFRQkJBQ0FCSUFJUUt3UkFJQUFvQWt3aUFTZ0NFQTBCUVFFaEJBd0RDeUFDUVFGQmtjSUFRUUFRRHd3Q0N5QUJLQUlZSVFGQkFDRUNBMEFnQVNBQ1FUUnNJZ1JxS0FJc0VCQWdBQ2dDVENJRktBSVlJZ0VnQkdvaUJpQUFLQUxRQVNJSEtBSVVLQUlBS0FJVUlBSkJ6QUJzYWlJSUtBSWtOZ0lzSUFZZ0J5Z0NHQ2dDR0NBRWFpZ0NKRFlDSkNBSVFRQTJBaVJCQVNFRUlBSkJBV29pQWlBRktBSVFTUTBBQ3d3QkN3TkFBa0FDZndKQUlBUkJBVWNOQUNBQUtBSnNRUUZIRFFBZ0FDZ0NuQUVvQXR3clJRMEFJQU5CQURZQ1NDQUFRUUEyQXN3QklBQWdBQ2dDQ0VHQUFYSTJBZ2hCQUF3QkMwRUFJUVFnQUNBRFFjZ0Fha0VBSUFOQnhBQnFJQU5CUUdzZ0EwRThhaUFEUVRocUlBTkJOR29nQTBITUFHb2dBU0FDRUNkRkRRTWdBeWdDVEVVTkFTQURLQUpJQ3lJSFFRRnFJUVFnQUNBSFFRQkJBQ0FCSUFJUUt5RUpJQUFvQW1nZ0FDZ0NiR3doQlNBSlJRUkFJQU1nQlRZQ0JDQURJQVEyQWdBZ0FrRUJRWmM1SUFNUUQwRUFJUVFNQXdzZ0F5QUZOZ0lrSUFNZ0JEWUNJQ0FDUVFSQm9OY0FJQU5CSUdvUUR5QUFLQUxRQVNBQUtBSk1LQUlZRUhSRkJFQkJBQ0VFREFNTEFrQUNRQ0FBS0FKb1FRRkhEUUFnQUNnQ2JFRUJSdzBBSUFBb0Frd2lCU2dDQUNBQUtBSklJZ1lvQWdCSERRRWdCU2dDQkNBR0tBSUVSdzBCSUFVb0FnZ2dCaWdDQ0VjTkFTQUZLQUlNSUFZb0FneEhEUUVMSUFBb0Fwd0JJQWRCakN4c2FpSUZLQUxjS3lJR1JRMEFJQVlRRUNBRlFnQTNBdHdyQ3lBRElBUTJBaEFnQWtFRVFlYjhBQ0FEUVJCcUVBOGdBU2tEQ0NJS1VBUitRZ0FGSUFvZ0FTa0RPSDBMVUFSQUlBQW9BZ2hCd0FCR0RRRUxJQWhCQVdvaUNDQUFLQUpvSWdRZ0FDZ0NiR3hIRFFFTEN5QUFJQUlRY2lFRUN5QURRZEFBYWlRQUlBUUx0UVlCREg4Z0FDZ0NTQ0VKQWtBZ0FDZ0NhQ0FBS0FKc2JDSU1CRUFnQ1NnQ0VDSUJRYmdJYkNFTklBRWdBV3hCQW5RaENpQUFLQUlNSVFRZ0FDZ0NuQUVoQXdOQUlBTW9BdEFySVFzZ0F5QUVRWXdzRUJJaUFVRUFOZ0xvS3lBQlFYODJBdFFySUFGQkFEWUNzQ2dnQVVFQU5nS0VMQ0FCUVFBMkF2QXJJQUZDQURjQytDc2dBU0FMTmdMUUt5QUJJQUV0QUlnc1Fmd0JjVG9BaUN3Z0JDZ0M2Q3NFUUNBQklBb1FGQ0lETmdMb0t5QURSUVJBUVFBUEN5QURJQVFvQXVncklBb1FFaG9MSUFFZ0JDZ0MrQ3RCRkd3aUJSQVVJZ00yQXZBclFRQWhDQ0FEUlEwQ0lBTWdCQ2dDOENzZ0JSQVNHaUFFS0FMMEt5SUdCRUFnQkNnQzhDc2hBeUFCS0FMd0t5RUZRUUFoQndOQUlBTW9BZ3dFUUNBRklBTW9BaEFRRkNJR05nSU1JQVpGQkVCQkFBOExJQVlnQXlnQ0RDQURLQUlRRUJJYUlBUW9BdlFySVFZTElBRWdBU2dDK0N0QkFXbzJBdmdySUFWQkZHb2hCU0FEUVJScUlRTWdCMEVCYWlJSElBWkpEUUFMQ3lBQklBUW9Bb1FzUVJSc0lnVVFGQ0lETmdMOEt5QURSUTBDSUFNZ0JDZ0MvQ3NnQlJBU0dpQUJJQVFvQW9Rc0lnZzJBb1FzSUFnRVFDQUVLQUw4S3lFRElBRW9BdndySVFWQkFDRUhBMEFnQXlnQ0NDSUdCRUFnQlNBQktBTHdLeUFHSUFRb0F2QXJhMm8yQWdnTElBTW9BZ3dpQmdSQUlBVWdBU2dDOENzZ0JpQUVLQUx3SzJ0cU5nSU1DeUFGUVJScUlRVWdBMEVVYWlFRElBZEJBV29pQnlBSVJ3MEFDd3NnQ3lBRUtBTFFLeUFORUJJYUlBRkJqQ3hxSVFNZ0RrRUJhaUlPSUF4SERRQUxDMEVCSVFnZ0FBSi9RUUJCQVVISUFCQVRJZ0ZGRFFBYUlBRWdBUzBBS0VIK0FYRkJBWEk2QUNnZ0FVRUJRUVFRRXlJRU5nSVVJQUVnQkEwQUdpQUJFQkJCQUFzaUFUWUMwQUVnQVVVRVFFRUFEd3NnQUNnQzFBRWhCVUVBSVFRZ0FTQUFRZEFBYWpZQ0hDQUJJQWsyQWhoQkFVSFFCaEFUSVFNZ0FTZ0NGQ0FETmdJQUFrQWdBMFVOQUNBSktBSVFRY3dBRUJNaEF5QUJLQUlVS0FJQUlnY2dBellDRkNBRFJRMEFJQWNnQ1NnQ0VEWUNFQ0FBS0FLa0FTRUVJQUVnQlRZQ0xDQUJJQVEyQWdCQkFTRUVDeUFFRFFBZ0FDZ0MwQUVRVlVFQUlRZ2dBRUVBTmdMUUFTQUNRUUZCd2h0QkFCQVBDeUFJQzlVU0F3eC9BWDBCZmlNQVFUQnJJZ2drQUNBQVFRRTJBZ2dDZndKQUFrQWdBU0FJUVNocUlnVkJBaUFDRUJwQkFrY05BQ0FGSUFoQkxHcEJBaEFSSUFnb0FpeEJ6LzREUncwQUlBQkJBallDQ0NBQUtBTElBU0FCS1FNNFFnSjlJaEEzQXdBZ0NDQVFOd01RSUFKQkJFSHUzZ0FnQ0VFUWFoQVBJQUFvQXNnQklnTXBBd0FoRUNBREtBSVlJZ2RCQVdvaUJTQURLQUlnSWdSTkJFQWdBeWdDSENFRURBSUxJQU1DZnlBRXMwTUFBTWhDa2lJUFF3QUFnRTlkSUE5REFBQUFBR0J4QkVBZ0Q2a01BUXRCQUFzaUJUWUNJQ0FES0FJY0lBVkJHR3dRRnlJRUJFQWdBeUFFTmdJY0lBTW9BaGdpQjBFQmFpRUZEQUlMSUFNb0Fod1FFQ0FEUVFBMkFpQWdBMElBTndNWUlBSkJBVUdwSFVFQUVBOExJQUpCQVVHMTlRQkJBQkFQUVFBTUFRc2dCQ0FIUVJoc2FpSUVRUUkyQWhBZ0JDQVF4RGNEQ0NBRVFjLytBenNCQUNBRElBVTJBaGdnQVNBQUtBSVFRUUlnQWhBYVFRSkhCRUFnQWtFQlFaWVNRUUFRRDBFQURBRUxJQUFvQWhBZ0NFRW9ha0VDRUJFQ1FBSkFJQWdvQWlnaUJFR1Evd05IQkVBRFFFSGd2UUVoQnlBRVFmLzlBMDBFUUNBSUlBUTJBZ0FnQWtFQlFjb1FJQWdRRDBFQURBVUxBMEFnQnlJRktBSUFJZ01FUUNBRlFReHFJUWNnQXlBRVJ3MEJDd3NDUUFKQUlBTU5BRUVDSVFZZ0FrRUNRZlVjUVFBUUQwR1dFaUVIQWtBQ1FDQUJJQUFvQWhCQkFpQUNFQnBCQWtjTkFBTkFJQUFvQWhBZ0NFRXNha0VDRUJGQjRMMEJJUU1nQ0NnQ0xDSUVRWUQrQTA4RVFBTkFJQU1pQlNnQ0FDSU1CRUFnQTBFTWFpRURJQVFnREVjTkFRc0xJQVVvQWdRZ0FDZ0NDSEZGQkVCQi9DZ2hCd3dEQ3lBTUJFQWdERUdRL3dOR0JFQWdDRUdRL3dNMkFpZ01Cd3NnQVNrRE9DRVFJQUFvQXNnQklnTW9BaGdpQlVFQmFpSUVJQU1vQWlBaUIwMEVRQ0FES0FJY0lRY01CUXNnQXdKL0lBZXpRd0FBeUVLU0lnOURBQUNBVDEwZ0QwTUFBQUFBWUhFRVFDQVBxUXdCQzBFQUN5SUZOZ0lnSUFNb0Fod2dCVUVZYkJBWElnY0VRQ0FESUFjMkFod2dBeWdDR0NJRlFRRnFJUVFNQlFzZ0F5Z0NIQkFRSUFOQkFEWUNJQ0FEUWdBM0F4aEJxUjBoQnd3REN5QUdRUUpxSVFZTElBRWdBQ2dDRUVFQ0lBSVFHa0VDUmcwQUN3c2dBa0VCSUFkQkFCQVBJQUpCQVVIOXlBQkJBQkFQUVFBTUJ3c2dCeUFGUVJoc2FpSUZJQVkyQWhBZ0JTQVFweUFHYTZ3M0F3Z2dCVUVBT3dFQUlBTWdCRFlDR0NBSUlBdzJBaWhCNEwwQklRUURRQ0FFSWdVb0FnQWlBMFVOQVNBRVFReHFJUVFnQXlBTVJ3MEFDd3NnQlNnQ0JDQUFLQUlJY1VVRVFDQUNRUUZCL0NoQkFCQVBRUUFNQmdzZ0FTQUFLQUlRUVFJZ0FoQWFRUUpIQkVBZ0FrRUJRWllTUVFBUUQwRUFEQVlMSUFBb0FoQWdDRUVrYWtFQ0VCRWdDQ2dDSkNJRVFRRk5CRUFnQWtFQlFhRXVRUUFRRDBFQURBWUxJQWdnQkVFQ2F5SUhOZ0lrSUFBb0FoQWhCQ0FBS0FJVUlBZEpCRUFnQkNBSEVCY2lCRVVFUUNBQUtBSVFFQkFnQUVJQU53TVFJQUpCQVVIVUpVRUFFQTlCQUF3SEN5QUFJQVEyQWhBZ0FDQUlLQUlrSWdjMkFoUUxJQUVnQkNBSElBSVFHaUlFSUFnb0FpUkhCRUFnQWtFQlFaWVNRUUFRRDBFQURBWUxJQUFnQUNnQ0VDQUVJQUlnQlNnQ0NCRUJBRVVFUUNBQ1FRRkJxQkpCQUJBUFFRQU1CZ3NnQVNrRE9DRVFJQWdvQWlRaERBSkFJQUFvQXNnQklnVW9BaGdpQmtFQmFpSUhJQVVvQWlBaUJFMEVRQ0FGS0FJY0lRUU1BUXNnQlFKL0lBU3pRd0FBeUVLU0lnOURBQUNBVDEwZ0QwTUFBQUFBWUhFRVFDQVBxUXdCQzBFQUN5SUVOZ0lnSUFVb0Fod2dCRUVZYkJBWElnUkZEUVVnQlNBRU5nSWNJQVVvQWhnaUJrRUJhaUVIQ3lBRUlBWkJHR3hxSWdRZ0RFRUVhallDRUNBRUlCQ25JQXhyUVFScnJEY0RDQ0FFSUFNN0FRQWdCU0FITmdJWUlBRWdBQ2dDRUVFQ0lBSVFHa0VDUndSQUlBSkJBVUdXRWtFQUVBOUJBQXdHQzBFQklBb2dBMEhjL2dOR0d5RUtRUUVnQ3lBRFFkTCtBMFliSVF0QkFTQU5JQU5CMGY0RFJoc2hEU0FBS0FJUUlBaEJLR3BCQWhBUklBZ29BaWdpQkVHUS93TkhEUUVMQ3lBTkRRRUxJQUpCQVVHWUpFRUFFQTlCQUF3Q0N5QUxSUVJBSUFKQkFVSEdKRUVBRUE5QkFBd0NDeUFLUlFSQUlBSkJBVUgwSkVFQUVBOUJBQXdDQzBFQUlRTkJBQ0VOSXdCQkVHc2lCQ1FBUVFFaEJ3SkFJQUF0QUx3QlFRRnhSUTBBQWtBZ0FDZ0NjQ0lMUlEwQUFrQURRQ0FBS0FKMElBMUJBM1JxSWdVb0FnQWlDZ1JBSUFNZ0JTZ0NCQ0lHYXlJRlFRQWdBeUFGVHhzaEJTQURJQVpKQkVBZ0JpQURheUVMSUFNZ0Ntb2hDZ05BSUF0QkJFa0VRRUdPS3lFRERBVUxJQW9nQkVFTWFrRUVFQkVnQkNnQ0RDSURRWDl6SUFsSkJFQkI5Q29oQXd3RkN5QURJQXRCQkdzaUJtc2dCU0FESUFaTElnd2JJUVVnQXlBSmFpRUpJQVlnQTJzaEN5QUtRUUFnQXlBTUcycEJCR29oQ2lBRElBWkpEUUFMSUFBb0FuQWhDd3NnQlNFREN5QU5RUUZxSWcwZ0Mwa05BQXNnQTBVTkFVRUFJUWNnQWtFQlFla1dRUUFRRHd3Q0MwRUFJUWNnQWtFQklBTkJBQkFQREFFTElBQWdDUkFVSWdNMkFvZ0JJQU5GQkVCQkFDRUhJQUpCQVVHK0lFRUFFQThNQVFzZ0FDQUpOZ0o4SUFBb0FuUWhCZ0pBSUFBb0FuQWlDZ1JBUVFBaENVRUFJUU5CQUNFRkEwQWdCaUFGUVFOMElnMXFJZ3dvQWdBaUN3UkFJQUFvQW9nQklBTnFJUW9DZnlBTUtBSUVJZ1lnQ1UwRVFDQUtJQXNnQmhBU0dpQURJQVpxSVFNZ0NTQUdhd3dCQ3lBS0lBc2dDUkFTR2lBRElBbHFJUU1nQmlBSmF5SUdCRUFnQ1NBTGFpRUpBMEFnQmtFRVNRMEdJQWtnQkVFSWFrRUVFQkVnQ1VFRWFpRUpJQUFvQW9nQklBTnFJUW9nQmtFRWF5SUdJQVFvQWdnaUMwa0VRQ0FLSUFrZ0JoQVNHaUFESUFacUlRTWdCQ2dDQ0NBR2F3d0RDeUFLSUFrZ0N4QVNHaUFFS0FJSUlnb2dBMm9oQXlBSklBcHFJUWtnQmlBS2F5SUdEUUFMQzBFQUN5RUpJQUFvQW5RZ0RXb29BZ0FRRUNBQUtBSjBJZ1lnRFdwQ0FEY0NBQ0FBS0FKd0lRb0xJQVZCQVdvaUJTQUtTUTBBQ3lBQUtBSjhJUWtnQUNnQ2lBRWhBd3NnQUNBSk5nS1FBU0FBSUFNMkFuZ2dBRUVBTmdKd0lBWVFFQ0FBUVFBMkFuUU1BUXRCQUNFSElBSkJBVUdPSzBFQUVBOExJQVJCRUdva0FDQUhSUVJBSUFKQkFVR1BQVUVBRUE5QkFBd0NDeUFDUVFSQjk5WUFRUUFRRHlBQUtBTElBU0FCS1FNNFF2Ny8vLzhQZkVMLy8vLy9ENE0zQXdnZ0FFRUlOZ0lJUVFFTUFRc2dCU2dDSEJBUUlBVkJBRFlDSUNBRlFnQTNBeGdnQWtFQlFha2RRUUFRRDBFQUN5RU9JQWhCTUdva0FDQU9DeHdBSUFBb0FnaEZJQUFvQXNBQlFRQkhJQUFvQXNRQlFRQkhjWEVMQkFCQkFBc1BBQ0FBQkVBZ0FDQUJOZ0s0QVFzTGp3RUJCSDhnQUNnQ0dDSUJCRUFnQUNnQ0hDSURRVFJ1SVFRZ0EwRTBUd1IvUVFBaEF3TkFJQUVvQWdBaUFnUkFJQUpCQVdzUUVDQUJRUUEyQWdBTElBRW9BZ1FpQWdSQUlBSVFFQ0FCUVFBMkFnUUxJQUVvQWdnaUFnUkFJQUlRRUNBQlFRQTJBZ2dMSUFGQk5Hb2hBU0FEUVFGcUlnTWdCRWNOQUFzZ0FDZ0NHQVVnQVFzUUVDQUFRUUEyQWhnTEM0WUJBUVIvSUFBb0FoZ2lBUVJBSUFBb0Fod2lBa0hBQUU4RWZ5QUNRUVoySVFSQkFDRUNBMEFnQVNnQ0FDSURCRUFnQXhBUUlBRkJBRFlDQUFzZ0FTZ0NCQ0lEQkVBZ0F4QVFJQUZCQURZQ0JBc2dBU2dDUEJBUUlBRkJBRFlDUENBQlFVQnJJUUVnQWtFQmFpSUNJQVJIRFFBTElBQW9BaGdGSUFFTEVCQWdBRUVBTmdJWUN3cy9BUUYvSUFBRVFDQUFLQUowSWdFRVFDQUJFQkFnQUVFQU5nSjBDeUFBS0FKNElnRUVRQ0FCRUJBZ0FFRUFOZ0o0Q3lBQUtBS1VBUkFRSUFBUUVBc0x3YVlGQkZ4L0Fuc0dmZ0Y5SXdCQjRBQnJJaU1rQUNBQUtBSUlJUm9DUUFKQUFrQUNRQ0FBS0FJQVJRUkFJQm9nR2lnQ0VDQWFLQUlJYXlBYUtBSVVJQm9vQWd4cmJFRUNkQ0lHRUJnaUF6WUNQQ0FEUlFSQUlBQW9BaVFhSUFBb0FpQkJBVUhSUEVFQUVBOGdBQ2dDSkJvZ0FFRWNhaUVRREFNTElBTkJBQ0FHRUJVYURBRUxJQm9vQWp3aUEwVU5BQ0FERUJBZ0drRUFOZ0k4Q3lBQUtBSVFJaklvQWh3Z01pZ0NHRUdZQVd4cUlnTkJtQUZyS0FJQUlUVWdBMEdRQVdzb0FnQWhOaUFBS0FJVUlTOGdBQ2dDRENFd0lBQW9BZ1FoTnlBQUtBSWNLQUlBUlEwQ0lBQkJIR29oRUFKQUFuOUJBQ0FCS0FJRUlnTkJBRXdOQUJvZ0FTZ0NBQ0VHQWtBRFFDQUdJQWRCREd4cUlnUW9BZ0JGRFFFZ0IwRUJhaUlISUFOSERRQUxRUUFNQVFzZ0JDZ0NCQXNpQkEwQVFRRkJuQUVRRXlJRVJRUkFJQUFvQWlCQkFVR1FNRUVBRUE4TUFnc2dCRUVBTmdLTUFTQUJLQUlFSWdOQi8vLy8vd2RIQkg4Q2Z5QUJLQUlBSVFZZ0EwRUFTZ1JBQTBBZ0JpQUpRUXhzYWlJSEtBSUFSUVJBSUFjb0FnZ2lBd1IvSUFjb0FnUWdBeEVDQUNBQktBSUFCU0FHQ3lBSlFReHNhaUlCUVE4MkFnZ2dBU0FFTmdJRVFRRU1Bd3NnQ1VFQmFpSUpJQU5IRFFBTEMwRUFJQVlnQTBFTWJFRU1haEFYSWdORkRRQWFJQUVnQXpZQ0FDQURJQUVvQWdRaUJrRU1iR29pQTBFUE5nSUlJQU1nQkRZQ0JDQURRUUEyQWdBZ0FTQUdRUUZxTmdJRVFRRUxCVUVBQ3cwQUlBQW9BaUJCQVVHTVAwRUFFQThnQkNnQ2RDSUJCRUFnQVJBUUlBUkJBRFlDZEFzZ0JDZ0NlQ0lCQkVBZ0FSQVFJQVJCQURZQ2VBc2dCQ2dDbEFFUUVDQUVFQkFNQVFzZ0JDQUFLQUlZTmdLUUFTQUFLQUlvSVNzZ0FDZ0NKQ0VoSUFBb0FpQWhIU0F2S0FLb0JpRVJJREFvQWhBaEFRSkFBa0FnTHlnQ0VDSVdRY0FBY1FSQUlCWWhDaU1BUWJBQ2F5SVBKQUFDUUNBUkJFQWdJUVJBUVFBaEJ5QWRRUUZCZ1JoQkFCQVBEQUlMUVFBaEJ5QWRRUUZCZ1JoQkFCQVBEQUVMSUFRb0FuUWhCd0pBQWtBZ0dpZ0NGQ0FhS0FJTWF5SURJQm9vQWhBZ0dpZ0NDR3NpQm13aUFTQUVLQUtFQVVzRVFDQUhFQkFnQkNBQlFRSjBJaEVRR0NJSE5nSjBJQWRGQkVCQkFDRUhEQVFMSUFRZ0FUWUNoQUVNQVFzZ0IwVU5BU0FCUVFKMElSRUxJQWRCQUNBUkVCVWFDeUFFS0FKNElRY0NRQ0FFS0FLSUFVSFBGRXNOQUNBSEVCQWdCRUhBMGdBUUdDSUhOZ0o0SUFjTkFFRUFJUWNNQVFzZ0JFSFFGRFlDaUFFZ0IwRUFRY0RTQUJBVkdpQUVJQU0yQW9BQklBUWdCallDZkNBYUtBSVlJZ0pGQkVCQkFTRUhEQUVMSUJvb0Fod2hEVUVCSVFjQ1FBSkFBa0FDUUFKQUlCb29BalFpQXdSQUlCb29BZ1FoQ1VFQUlRZEJBQ0VCQWtBZ0EwRUVUd1JBSUFOQmZIRWhBUU5BSUFrZ0NFRURkR29pQmtFY2FpQUdRUlJxSUFaQkRHb2dCdjBKQWdUOVZnSUFBZjFXQWdBQy9WWUNBQU1nWHYydUFTRmVJQWhCQkdvaUNDQUJSdzBBQ3lCZUlGNGdYdjBOQ0FrS0N3d05EZzhBQVFJREFBRUNBLzJ1QVNKZUlGNGdYdjBOQkFVR0J3QUJBZ01BQVFJREFBRUNBLzJ1QWYwYkFDRUhJQUVnQTBZTkFRc0RRQ0FKSUFGQkEzUnFLQUlFSUFkcUlRY2dBVUVCYWlJQklBTkhEUUFMQ3lBRFFRRkdCRUFnQkNnQ2tBRkZEUVVMSUFjZ0JDZ0NtQUZORFFFZ0JDZ0NsQUVnQnhBWEloRU5Ba0VBSVFjTUJnc2dCQ2dDa0FGRkRRVUxJQVFvQXBRQkloRU5BVUVBSVFjTUJBc2dCQ0FITmdLWUFTQUVJQkUyQXBRQkN5QWFLQUkwUlFSQVFRQWhCd3dDQ3lBYUtBSUVJUWhCQUNFSFFRQWhBUU5BSUFjZ0VXb2dDQ0FCUVFOMElnTnFJZ1lvQWdBZ0JpZ0NCQkFTR2lBYUtBSUVJZ2dnQTJvb0FnUWdCMm9oQnlBQlFRRnFJZ0VnR2lnQ05Fa05BQXNNQVFzZ0dpZ0NCQ2dDQUNFUkMwRUFJUUZCQUNFSUFuOUJBQ0FhS0FJb0lnTkZEUUFhSUJvb0FnQWlCaWdDQ0NFSVFRQWdBMEVCUmcwQUdpQUdLQUlnQ3lFRElBSWdEV3NoUlFKQUlBTWdDR29pQ0VVRVFFRUFJUWtNQVF0QkFTRUJJQm9vQWdBaUF5Z0NBQ0VGUVFBaENTQUlRUUZHQkVCQkFDRUJEQUVMSUFNb0FoZ2hDUXNnUlVFQmFpRVdJQVFvQW5RaERpQUVLQUo0SVJRZ0dpZ0NEQ0VTSUJvb0FoUWhHQ0FhS0FJSUlTUWdHaWdDRUNFckFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBRkZEUUFnQ1EwQUlDRkZEUUVnSFVFQ1FhSFFBRUVBRUE5QkFTRUlEQUlMSUFoQkJFa05BU0FoQkVBZ0R5QUlOZ0p3SUIxQkFVSDh4Z0FnRDBId0FHb1FEd3dJQ3lBUElBZzJBbUFnSFVFQlFmekdBQ0FQUWVBQWFoQVBRUUFoQnd3SUN5QWRRUUpCb2RBQVFRQVFEeUFhS0FJWUlnRkJIa3NOQVVFQklRd2dBU0FXVHcwRERBVUxJQm9vQWhnaUFVRWVUUTBCSUNGRkRRQWdEeUFCTmdJZ0lCMUJBVUdiMndBZ0QwRWdhaEFQREFVTElBOGdBVFlDQUNBZFFRRkJtOXNBSUE4UUQwRUFJUWNNQlFzZ0FTQVdTUTBCSUFoQkFra0VRQ0FJSVF3TUFRc2dBU0FXUndSQUlBZ2hEQXdCQzBFQklReEJrTWNCTFFBQURRQWdJVVVFUUVHUXh3RkJBVG9BQUNBUElBZzJBa0FnSFVFQ1FhYk1BQ0FQUVVCckVBOE1BUXRCa01jQkxRQUFSUVJBUVpESEFVRUJPZ0FBSUE4Z0NEWUNVQ0FkUVFKQnBzd0FJQTlCMEFCcUVBOExDd0pBQWtBZ0JVRUNTUTBBSUFVZ0Iwc05BQ0FGSUFscUlBZE5EUUVMSUNFRVFFRUFJUWNnSFVFQlFjTEdBRUVBRUE4TUJRdEJBQ0VISUIxQkFVSEN4Z0JCQUJBUERBUUxBa0FDUUNBRklCRnFJaE5CQVdzdEFBQkJCSFFnRTBFQ2F5MEFBRUVQY1hJaUJrRUNTUTBBSUFVZ0JrZ05BQ0FHUWZBZlNRMEJDeUFoQkVCQkFDRUhJQjFCQVVIVzhnQkJBQkFQREFVTFFRQWhCeUFkUVFGQjF2SUFRUUFRRHd3RUN5QWFLQUljSVNZZ0QwRUFOZ0tRQWlBUFFRQTJBcGdDSUE5Q0FEY0RpQUlnRDBJQU53T29BaUFQUWdBM0Fwd0NJQThnQmtFQmF5SUhOZ0tVQWlBUElBVWdFV29nQm1zaUFUWUNnQUpDL3dFaFlDQUdRUUpQQkVBZ0FURUFBQ0ZnQzBFSUlRTWdEMEVJTmdLUUFpQVBJQVpCQW1zaUNEWUNsQUlnRHlCZ1FnK0VJR0FnQjBFQlJoc2lZRGNEaUFJZ0R5QUJJQVpCQVVwcUlnYzJBb0FDSUE4Z1lFTC9BVkVpRFRZQ21BSUNmd0pBSUFGQkEzRWlBa0VEUmcwQVF2OEJJV0VnRFFSQVFRQWdCeTBBQUVHUEFVc05BaG9MSUFaQkEwNEVRQ0FITVFBQUlXRUxJQThnQmtFRGF5SU5OZ0tVQWlBUFFROUJFQ0JnUXY4QlVTSUxHeUlETmdLUUFpQVBJQWNnQmtFQ1Ntb2lBVFlDZ0FJZ0R5QmhRZytFSUdFZ0NFRUJSaHNpWVVML0FWRTJBcGdDSUE4Z1lFSUhRZ2dnQ3h1R0lHR0VJbUEzQTRnQ0lBSkJBa1lOQUNCaFF2OEJVUVJBUVFBZ0FTMEFBRUdQQVVzTkFob0xRdjhCSVdJZ0JrRUVUZ1JBSUFFeEFBQWhZZ3NnRHlBR1FRUnJJZ2MyQXBRQ0lBOGdBU0FHUVFOS2FpSUJOZ0tBQWlBUElHSkNENFFnWWlBTlFRRkdHeUppUXY4QlVUWUNtQUlnRHlBRFFRZEJDQ0JoUXY4QlVTSUlHMm9pQXpZQ2tBSWdEeUJnUWdkQ0NDQUlHNFlnWW9RaVlEY0RpQUlnQWtFQlJnMEFRdjhCSVdFZ1lrTC9BVkVFUUVFQUlBRXRBQUJCandGTERRSWFDeUFHUVFWT0JFQWdBVEVBQUNGaEN5QVBJQVpCQldzMkFwUUNJQThnQVNBR1FRUkthallDZ0FJZ0R5QmhRZytFSUdFZ0IwRUJSaHNpWVVML0FWRTJBcGdDSUE4Z0EwRUhRUWdnWWtML0FWRWlBUnRxSWdNMkFwQUNJQThnWUVJSFFnZ2dBUnVHSUdHRUltQTNBNGdDQ3lBUElHQkJ3QUFnQTJ1dGhqY0RpQUpCQVF0RkJFQWdJUVJBUVFBaEJ5QWRRUUZCZzlVQVFRQVFEd3dGQzBFQUlRY2dIVUVCUVlQVkFFRUFFQThNQkFzZ0t5QWtheUVWSUE4Z0JrRUNheUlMTmdMMEFTQVBJQVVnRVdvaUFrRURheUlETmdMZ0FTQVBJQUpCQW1zdEFBQWlHVUdQQVVzaURUWUMrQUVnRHlBWlFRUjJyU0pnTndQb0FTQVBRUU5CQkNCZ1FnZURRZ2RSR3lJQk5nTHdBU0FEUVFOeFFRRnFJZ2NnQ3lBSElBdElHeUVJQWtBQ1FDQUdRUUpNQkVBZ0R5QUxJQWhySWdJMkF2UUJEQUVMSUE4Z0FrRUVheUlITmdMZ0FTQVBJQU10QUFBaUYwR1BBVXNpRFRZQytBRWdEeUFYclNKaElBR3RoaUJnaENKZ053UG9BU0FQUVFoQkIwRUlJR0ZDL3dDRFF2OEFVUnNnR1VHUEFVMGJJQUZxSWdFMkF2QUJBa0FnQ0VFQlJnUkFJQWNoQXd3QkN5QVBJQUpCQldzaUF6WUM0QUVnRHlBSExRQUFJaGxCandGTElnMDJBdmdCSUE4Z0dhMGlZU0FCcllZZ1lJUWlZRGNENkFFZ0QwRUlRUWRCQ0NCaFF2OEFnMEwvQUZFYklCZEJqd0ZOR3lBQmFpSUJOZ0x3QVNBSVFRSkdEUUFnRHlBQ1FRWnJJZ2MyQXVBQklBOGdBeTBBQUNJWFFZOEJTeUlOTmdMNEFTQVBJQmV0SW1FZ0FhMkdJR0NFSW1BM0ErZ0JJQTlCQ0VFSFFRZ2dZVUwvQUlOQy93QlJHeUFaUVk4QlRSc2dBV29pQVRZQzhBRWdDRUVEUmdSQUlBY2hBd3dCQ3lBUElBSkJCMnNpQXpZQzRBRWdEeUFITVFBQUltRkNqd0ZXSWcwMkF2Z0JJQThnWVNBQnJZWWdZSVFpWURjRDZBRWdEMEVJUVFkQkNDQmhRdjhBZzBML0FGRWJJQmRCandGTkd5QUJhaUlCTmdMd0FRc2dEeUFMSUFocklnSTJBdlFCSUFGQklFc05BUXNDUUNBQ1FRUk9CRUFnQTBFRGF5Z0NBQ0VISUE4Z0FrRUVhellDOUFFZ0R5QURRUVJyTmdMZ0FRd0JDeUFDUVFCTUJFQkJBQ0VIREFFTElBSkJBWEVoUndKQUlBSkJBVVlFUUVFWUlRaEJBQ0VIREFFTElBSkIvdi8vL3dkeElSZEJHQ0VJUVFBaEIwRUFJUXNEUUNBUElBTkJBV3NpSHpZQzRBRWdBeTBBQUNGR0lBOGdBMEVDYXlJRE5nTGdBU0FQSUFKQkFXczJBdlFCSUI4dEFBQWhIeUFQSUFKQkFtc2lBallDOUFFZ1JpQUlkQ0FIY2lBZklBaEJDR3QwY2lFSElBaEJFR3NoQ0NBTFFRSnFJZ3NnRjBjTkFBc0xJRWRGRFFBZ0R5QURRUUZyTmdMZ0FTQURMUUFBSVVnZ0R5QUNRUUZyTmdMMEFTQklJQWgwSUFkeUlRY0xJQThnQjBIL0FYRWlBMEdQQVVzMkF2Z0JJQTlCQjBFSUlBZEJnSUNBK0FkeFFZQ0FnUGdIUmh0QkNDQU5HeUlDUVFoQkIwRUlJQWRCZ0lEOEEzRkJnSUQ4QTBZYklBZEIvLy8vLzNoTkcyb2lDRUVJUVFkQkNDQUhRWUQrQVhGQmdQNEJSaHNnQjBFUWRrSC9BWEVpRFVHUEFVMGJhaUlMUVFoQkIwRUlJQWRCL3dCeFFmOEFSaHNnQjBFSWRrSC9BWEVpR1VHUEFVMGJJQUZxYWpZQzhBRWdEeUFOSUFKMElBZEJHSFp5SUJrZ0NIUnlJQU1nQzNSeXJTQUJyWVlnWUlRM0ErZ0JDeUFQUWNBQmFpQVJJQVVnQm10Qi93RVFXd0ovUVFBZ0RFRUNTUTBBR2lBUFFhQUJhaUFUSUFsQkFCQmJRUUFnREVFQ1JnMEFHa0lBSVdCQ0FDRmlJQTlCQVRZQ21BRWdEMEVBTmdLUUFTQVBRZ0EzQTRnQklBOGdDVUVCYXlJR05nS1VBU0FQSUFVZ0VXb2dDV29pQTBFQmF5SUJOZ0tBQVNBQlFRTnhJUVVDUUNBSlFRQk1CRUFnQVNFRERBRUxJQThnQTBFQ2F5SUROZ0tBQVNBQk1RQUFJV0FMSUE4Z1lEY0RpQUVnRHlCZ1FvOEJWaUlSTmdLWUFTQVBRUWRCQ0NCZ1F2OEFnMEwvQUZFYklnMDJBcEFCQWtBZ0JVVU5BQ0FQSUFsQkFtc2lBallDbEFFQ1FDQUpRUUpJQkVBZ0F5RUhEQUVMSUE4Z0EwRUJheUlITmdLQUFTQURNUUFBSVdJTElBOGdZa0tQQVZZaUVUWUNtQUVnRHlCaUlBMnRoaUJnaENKaE53T0lBU0FQUVFoQkIwRUlJR0pDL3dDRFF2OEFVUnNnWUVLUEFWZ2JJQTFxSWcwMkFwQUJJQVZCQVVZRVFDQUhJUU1nWVNGZ0lBWWhDU0FDSVFZTUFRc2dEeUFKUVFOcklnZzJBcFFCQWtBZ0NVRURTQVJBSUFjaEFRd0JDeUFQSUFkQkFXc2lBVFlDZ0FFZ0J6RUFBQ0ZqQ3lBUElHTkNqd0ZXSWhFMkFwZ0JJQThnWXlBTnJZWWdZWVFpWURjRGlBRWdEMEVJUVFkQkNDQmpRdjhBZzBML0FGRWJJR0pDandGWUd5QU5haUlOTmdLUUFTQUZRUUpHQkVBZ0FTRURJQUloQ1NBSUlRWU1BUXNnRHlBSlFRUnJJZ1kyQXBRQlFnQWhZZ0pBSUFsQkJFZ0VRQ0FCSVFNTUFRc2dEeUFCUVFGcklnTTJBb0FCSUFFeEFBQWhZZ3NnRHlCaVFvOEJWaUlSTmdLWUFTQVBJR0lnRGEyR0lHQ0VJbUEzQTRnQklBOUJDRUVIUVFnZ1lrTC9BSU5DL3dCUkd5QmpRbzhCV0JzZ0RXb2lEVFlDa0FFZ0NDRUpDeUFOUVNCTkJFQUNRQ0FKUVFWT0JFQWdBMEVEYXlnQ0FDRUhJQThnQ1VFRmF6WUNsQUVnRHlBRFFRUnJOZ0tBQVF3QkMwRUFJUWNnQ1VFQ1NBMEFRUmdoQ1FOQUlBOGdBMEVCYXlJQk5nS0FBU0FETFFBQUlVa2dEeUFHUVFGcklnSTJBcFFCSUVrZ0NYUWdCM0loQnlBR1FRRkxJVW9nQVNFRElBbEJDR3NoQ1NBQ0lRWWdTZzBBQ3dzZ0R5QUhRZjhCY1NJQlFZOEJTellDbUFFZ0QwRUhRUWdnQjBHQWdJRDRCM0ZCZ0lDQStBZEdHMEVJSUJFYklnTkJDRUVIUVFnZ0IwR0FnUHdEY1VHQWdQd0RSaHNnQjBILy8vLy9lRTBiYWlJR1FRaEJCMEVJSUFkQmdQNEJjVUdBL2dGR0d5QUhRUkIyUWY4QmNTSUpRWThCVFJ0cUlnSkJDRUVIUVFnZ0IwSC9BSEZCL3dCR0d5QUhRUWgyUWY4QmNTSUlRWThCVFJzZ0RXcHFOZ0tRQVNBUElBa2dBM1FnQjBFWWRuSWdDQ0FHZEhJZ0FTQUNkSEt0SUEydGhpQmdoRGNEaUFFTFFRRUxJVEVnR0NBU2F5RWZJQlpCQVdvaExDQVVRUUE2QU1BUUlCUkJ3QkJxSVFzZ0QwR0FBbW9RS0NFQ0lCVkJBRW9FUUNBbVFRRnJJUk1nRkNFRElBc2hDRUVBSVJFZ0RpRUdRUUFoRFFOQUlBMGhCU0FSUVFoMElBOUI0QUZxRUM5Qi93QnhRUUYwY2tHZy9RQnFMd0VBSVFFQ1FDQVJEUUFnQVVFQUlBSkJBbXNpQjBGL1Joc2hBU0FDUVFGS0JFQWdCeUVDREFFTElBOUJnQUpxRUNnaEFnc2dEeWtENkFFaFpDQVBLQUx3QVNGTElBTWdBeWdDQUNBQlFRUjJJaGhCQTNFZ0FVRUNka0V3Y1hJZ0luUnlJaFkyQWdBZ0FVRUZka0VIY1NBQlFSQnhJaDVCQkhaeUlSRWdTeUFCUVFkeElnZHJJUTBnWkNBSHJZZ2lZS2NoQ1VFQUlRY2dGU0FGUVFKeVNnUkFJQkZCQ0hRZ0NVSC9BSEZCQVhSeVFhRDlBR292QVFBaEJ3SkFJQkVOQUNBSFFRQWdBa0VDYXlJSlFYOUdHeUVISUFKQkFVb0VRQ0FKSVFJTUFRc2dEMEdBQW1vUUtDRUNDeUFIUVFSMlFRRnhJQWRCQlhaQkIzRnlJUkVnRFNBSFFRZHhJZ2xySVEwZ1lDQUpyWWdpWUtjaENRc2dBeUFIUVFKMFFZQUdjU0FIUVRCeGNpQWlRUVJxZENBV2NqWUNBQUpBSUFkQkFuWkJBbkVnQVVFRGRrRUJjWElpRjBFRFJ3MEFRUVJCQXlBQ1FRSnJJaFpCZjBZYklSY2dBa0VCU2dSQUlCWWhBZ3dCQ3lBUFFZQUNhaEFvSVFJTEFuOGdGMFVFUUNBUFFvR0FnSUFRTndKNFFRQU1BUXNnRjBFQ1RRUkFJQTlCQVNBSlFRZHhRZFNkQVdvdEFBQWlGa0VGZGtGL0lCWkJBblpCQjNFaUdYUkJmM01nQ1NBV1FRTnhJZ2wyY1dwQkFXb2lGaUFYUVFGR0loY2JOZ0o4SUE4Z0ZrRUJJQmNiTmdKNElBa2dHV29NQVFzZ0NTQUpRUWR4UWRTZEFXb3RBQUFpRmtFRGNTSVpkaUVKSUJkQkEwWUVRQ0FXUVFWMlFRRnFJUmNnR1VFRFJnUkFJQThnQ1VFQmNVRUNjallDZkNBUElCZEJmeUFXUVFKMlFRZHhJaFowUVg5eklBbEJBWFp4YWpZQ2VDQVdRUVJxREFJTElBOGdGeUFKSUFsQkIzRkIxSjBCYWkwQUFDSUpRUU54SWhKMklpQkJmeUFXUVFKMlFRZHhJaFowUVg5emNXbzJBbmdnRDBGL0lBbEJBblpCQjNFaUYzUkJmM01nSUNBV2RuRWdDVUVGZG1wQkFXbzJBbndnRmlBWmFpQVNhaUFYYWd3QkN5QVBJQWtnQ1VFSGNVSFVuUUZxTFFBQUlnbEJBM0VpRW5ZaUlFRi9JQlpCQW5aQkIzRWlGM1JCZjNOeElCWkJCWFpxUVFOcU5nSjRJQTlCZnlBSlFRSjJRUWR4SWhaMFFYOXpJQ0FnRjNaeElBbEJCWFpxUVFOcU5nSjhJQklnR1dvZ0Yyb2dGbW9MSVFrQ1FDQXNJQThvQW5naUdVOEVRQ0FQS0FKOEloSWdMRTBOQVFzZ0lRUkFRUUFoQnlBZFFRRkJtZllBUVFBUUR3d0hDMEVBSVFjZ0hVRUJRWm4yQUVFQUVBOE1CZ3NnRHlBTklBbHJOZ0x3QVNBUElHQWdDYTJJTndQb0FTQUhRZkFCY1NBWVFROXhja0gvQVVIL0FTQUZRUVJxSWcwZ0ZXdEJBWFIySUEwZ0ZVd2JJZ2tnQ1VIVkFIRWdIMEVCU2hzaUNVRi9jM0VFUUNBaEJFQkJBQ0VISUIxQkFVR3YyZ0JCQUJBUERBY0xRUUFoQnlBZFFRRkJyOW9BUVFBUUR3d0dDd0pBQWtBZ0hnUkFJQTlCd0FGcUVCc2hGeUFQSUE4b0F0QUJJQmtnQVVFVGRFRWZkV29pRm1zMkF0QUJJQThnRHlrRHlBRWdGcTJJTndQSUFTQVhRWDhnRm5SQmYzTnhJQUZCQ0haQkFYRWdGblJ5UVFGeVFRSnFJQk4wSUJkQkgzUnlJUllNQVF0QkFDRVdJQWxCQVhGRkRRRUxJQVlnRmpZQ0FBc0NRQ0FCUVNCeEJFQWdEMEhBQVdvUUd5RVhJQThnRHlnQzBBRWdHU0FCUVJKMFFSOTFhaUlXYXpZQzBBRWdEeUFQS1FQSUFTQVdyWWczQThnQklBWWdGVUVDZEdvZ0YwRi9JQlowUVg5emNTQUJRUWwyUVFGeElCWjBja0VCY2lJV1FRSnFJQk4wSUJkQkgzUnlOZ0lBSUFoQklDQVdaMnNpRmlBSUxRQUFRZjhBY1NJWElCWWdGMHNiUVlBQmNqb0FBQXdCQ3lBSlFRSnhSUTBBSUFZZ0ZVRUNkR3BCQURZQ0FBc2dCa0VFYWlFWEFrQUNRQ0FCUWNBQWNRUkFJQTlCd0FGcUVCc2hHQ0FQSUE4b0F0QUJJQmtnQVVFUmRFRWZkV29pRm1zMkF0QUJJQThnRHlrRHlBRWdGcTJJTndQSUFTQVlRWDhnRm5SQmYzTnhJQUZCQ25aQkFYRWdGblJ5UVFGeVFRSnFJQk4wSUJoQkgzUnlJUllNQVF0QkFDRVdJQWxCQkhGRkRRRUxJQmNnRmpZQ0FBc2dDRUVBT2dBQkFrQWdBVUdBQVhFRVFDQVBRY0FCYWhBYklSZ2dEeUFQS0FMUUFTQVpJQUZCRUhSQkgzVnFJaFpyTmdMUUFTQVBJQThwQThnQklCYXRpRGNEeUFFZ0Z5QVZRUUowYWlBWVFYOGdGblJCZjNOeElBRkJDM1pCQVhFZ0ZuUnlRUUZ5SWdGQkFtb2dFM1FnR0VFZmRISTJBZ0FnQ0VHZ2Z5QUJaMnM2QUFFTUFRc2dDVUVJY1VVTkFDQVhJQlZCQW5ScVFRQTJBZ0FMSUFaQkNHb2hBUUpBQWtBZ0IwRVFjUVJBSUE5QndBRnFFQnNoR1NBUElBOG9BdEFCSUJJZ0IwRVRkRUVmZFdvaUZtczJBdEFCSUE4Z0R5a0R5QUVnRnEySU53UElBU0FaUVg4Z0ZuUkJmM054SUFkQkNIWkJBWEVnRm5SeVFRRnlRUUpxSUJOMElCbEJIM1J5SVJjTUFRdEJBQ0VYSUFsQkVIRkZEUUVMSUFFZ0Z6WUNBQXNDUUNBSFFTQnhCRUFnRDBIQUFXb1FHeUVaSUE4Z0R5Z0MwQUVnRWlBSFFSSjBRUjkxYWlJV2F6WUMwQUVnRHlBUEtRUElBU0FXcllnM0E4Z0JJQUVnRlVFQ2RHb2dHVUYvSUJaMFFYOXpjU0FIUVFsMlFRRnhJQlowY2tFQmNpSUJRUUpxSUJOMElCbEJIM1J5TmdJQUlBaEJJQ0FCWjJzaUFTQUlMUUFCUWY4QWNTSVdJQUVnRmtzYlFZQUJjam9BQVF3QkN5QUpRU0J4UlEwQUlBRWdGVUVDZEdwQkFEWUNBQXNnQmtFTWFpRUJBa0FDUUNBSFFjQUFjUVJBSUE5QndBRnFFQnNoR1NBUElBOG9BdEFCSUJJZ0IwRVJkRUVmZFdvaUZtczJBdEFCSUE4Z0R5a0R5QUVnRnEySU53UElBU0FaUVg4Z0ZuUkJmM054SUFkQkNuWkJBWEVnRm5SeVFRRnlRUUpxSUJOMElCbEJIM1J5SVJjTUFRdEJBQ0VYSUFsQndBQnhSUTBCQ3lBQklCYzJBZ0FMSUFoQkFtb2lDRUVBT2dBQUFrQWdCMEdBQVhFRVFDQVBRY0FCYWhBYklSWWdEeUFQS0FMUUFTQVNJQWRCRUhSQkgzVnFJZ2xyTmdMUUFTQVBJQThwQThnQklBbXRpRGNEeUFFZ0FTQVZRUUowYWlBV1FYOGdDWFJCZjNOeElBZEJDM1pCQVhFZ0NYUnlRUUZ5SWdGQkFtb2dFM1FnRmtFZmRISTJBZ0FnQ0VHZ2Z5QUJaMnM2QUFBTUFRc2dDVUdBQVVrTkFDQUJJQlZCQW5ScVFRQTJBZ0FMSUNKQkVITWhJaUFESUFWQkJIRnFJUU1nQmtFUWFpRUdJQTBnRlVnTkFBc0xJQXBCQ0hFaE9DQVVRYkFNYWlFb0lCUkJvQWhxSVNrZ0ZFR1FCR29oSlNBZlFRTk9CRUFnRlVFRGJDRTVJQlZCQVhRaE9pQW1RUUZySVNCQkF5QW1RUUpySWdGMElTMUJBU0FCZENFdUlCVkJCMnBCQVhaQi9QLy8vd2R4UVFScUlUMGdLeUFrUVg5emFpSUJRUU4ySWdOQkFuUWlQa0VFYWlFN0lBTkJBV29pUDBIOC8vLy9BM0VpSEVFQ2RDRThJQnhCQTNRaEVpQUJRUmhKSVVCQkFpRVpBMEFnR1NFVElBc3RBQUFoRmlBTFFRQTZBQUFnSWtGdmNVRUNjeUVpQWtBZ0ZVRUFUQVJBSUJOQkFtb2hHUXdCQ3lBbElCUWdFMEVFY1JzaEVTQVRRUUpxSVJrZ0RpQVRJQlZzUVFKMGFpRUlRUUFoQ2lBTElRWkJBQ0VOQTBBZ0RTRUZJQVl0QUFGQkJYWkJCSEVnQ2lBV1FRZDJjbklpQTBFSWRDQVBRZUFCYWhBdlFmOEFjVUVCZEhKQm9JMEJhaThCQUNFQkFrQWdBdzBBSUFGQkFDQUNRUUpySWdOQmYwWWJJUUVnQWtFQlNnUkFJQU1oQWd3QkN5QVBRWUFDYWhBb0lRSUxJQThwQStnQklXVWdEeWdDOEFFaFRDQVJJQkVvQWdBZ0FVRUVka0VEY1NBQlFRSjJRVEJ4Y2lBaWRISWlDVFlDQUNBQlFjQUFjU0lxUVFWMklBRkJnQUZ4SWlkQkJuWnlJUW9nVENBQlFRZHhJZ05ySVJjZ1pTQURyWWdpWUtjaERVRUFJUmdDUUNBVklBVkJBbkpNQkVCQkFDRUhEQUVMSUFvZ0JpMEFBa0VGZGtFRWNTQUdMUUFCUVFkMmNuSWlBMEVJZENBTlFmOEFjVUVCZEhKQm9JMEJhaThCQUNFSEFrQWdBdzBBSUFkQkFDQUNRUUpySWdOQmYwWWJJUWNnQWtFQlNnUkFJQU1oQWd3QkN5QVBRWUFDYWhBb0lRSUxJQWRCQlhZZ0IwRUdkbkpCQW5FaENpQVhJQWRCQjNFaUEyc2hGeUJnSUFPdGlDSmdweUVOQ3lBUklBZEJBblJCZ0FaeElBZEJNSEZ5SUNKQkJHcDBJQWx5TmdJQVFRRWhDVUVCSVFNQ1FDQUhRUUoyUVFKeElBRkJBM1pCQVhGeUloNUZEUUFnRFNBTlFRZHhRZFNkQVdvdEFBQWlBMEVEY1NJTmRpRUpJQjVCQTBjRVFFRUJJQWxCZnlBRFFRSjJRUWR4SWhoMFFYOXpjU0FEUVFWMmFrRUJhaUlESUI1QkFVWWlIaHNoQ1NBRFFRRWdIaHNoQXlBTklCaHFJUmdNQVFzZ0NVRUhjVUhVblFGcUxRQUFJaDVCQTNFaU15QU5JQU5CQW5aQkIzRWlHMnBxSUI1QkFuWkJCM0VpRFdvaEdDQUpJRE4ySWdsQmZ5QWJkRUYvYzNFZ0EwRUZkbXBCQVdvaEEwRi9JQTEwUVg5eklBa2dHM1p4SUI1QkJYWnFRUUZxSVFrTElBOGdGeUFZYXpZQzhBRWdEeUJnSUJpdGlEY0Q2QUVnQVVId0FYRWlEU0FOUVFGcmNRUkFJQU1nRmtIL0FIRWlGaUFHTFFBQlFmOEFjU0lYSUJZZ0Ywc2JJaFpCQW1zaUYwRUFJQllnRjA4YmFpRURDeUFIUWZBQmNTSVhJQmRCQVd0eEJFQWdDU0FHTFFBQlFmOEFjU0lXSUFZdEFBSkIvd0J4SWhnZ0ZpQVlTeHNpRmtFQ2EwRUFJQlpCQWtzYmFpRUpDeUFESUN4TklBa2dMRTF4UlFSQUlDRUVRRUVBSVFjZ0hVRUJRZjMyQUVFQUVBOE1DUXRCQUNFSElCMUJBVUg5OWdCQkFCQVBEQWdMSUFZdEFBSWhGaUFHUVFBN0FBRWdGeUFOUVFSMmNrSC9BVUgvQVNBRlFRUnFJZzBnRld0QkFYUjJJQTBnRlV3YkloZEIxUUJ4SUJjZ0dTQWZTaHNpR0VGL2MzRUVRQ0FoQkVCQkFDRUhJQjFCQVVHdjJnQkJBQkFQREFrTFFRQWhCeUFkUVFGQnI5b0FRUUFRRHd3SUN3SkFBa0FnQVVFUWNRUkFJQTlCd0FGcUVCc2hIaUFQSUE4b0F0QUJJQU1nQVVFVGRFRWZkV29pRjJzMkF0QUJJQThnRHlrRHlBRWdGNjJJTndQSUFTQWVRWDhnRjNSQmYzTnhJQUZCQ0haQkFYRWdGM1J5UVFGeVFRSnFJQ0IwSUI1QkgzUnlJUmNNQVF0QkFDRVhJQmhCQVhGRkRRRUxJQWdnRnpZQ0FBc0NRQ0FCUVNCeEJFQWdEMEhBQVdvUUd5RWVJQThnRHlnQzBBRWdBeUFCUVJKMFFSOTFhaUlYYXpZQzBBRWdEeUFQS1FQSUFTQVhyWWczQThnQklBZ2dGVUVDZEdvZ0hrRi9JQmQwUVg5emNTQUJRUWwyUVFGeElCZDBja0VCY2lJWFFRSnFJQ0IwSUI1QkgzUnlOZ0lBSUFaQklDQVhaMnNpRnlBR0xRQUFRZjhBY1NJZUlCY2dIa3NiUVlBQmNqb0FBQXdCQ3lBWVFRSnhSUTBBSUFnZ0ZVRUNkR3BCQURZQ0FBc2dDRUVFYWlFZUFrQUNRQ0FxQkVBZ0QwSEFBV29RR3lFYklBOGdEeWdDMEFFZ0F5QUJRUkYwUVI5MWFpSVhhellDMEFFZ0R5QVBLUVBJQVNBWHJZZzNBOGdCSUJ0QmZ5QVhkRUYvYzNFZ0FVRUtka0VCY1NBWGRISkJBWEpCQW1vZ0lIUWdHMEVmZEhJaEZ3d0JDMEVBSVJjZ0dFRUVjVVVOQVFzZ0hpQVhOZ0lBQ3dKQUlDY0VRQ0FQUWNBQmFoQWJJUmNnRHlBUEtBTFFBU0FESUFGQkVIUkJIM1ZxSWdOck5nTFFBU0FQSUE4cEE4Z0JJQU90aURjRHlBRWdIaUFWUVFKMGFpQVhRWDhnQTNSQmYzTnhJQUZCQzNaQkFYRWdBM1J5UVFGeUlnRkJBbW9nSUhRZ0YwRWZkSEkyQWdBZ0JrR2dmeUFCWjJzNkFBRU1BUXNnR0VFSWNVVU5BQ0FlSUJWQkFuUnFRUUEyQWdBTElBaEJDR29oQVFKQUFrQWdCMEVRY1FSQUlBOUJ3QUZxRUJzaEZ5QVBJQThvQXRBQklBa2dCMEVUZEVFZmRXb2lBMnMyQXRBQklBOGdEeWtEeUFFZ0E2MklOd1BJQVNBWFFYOGdBM1JCZjNOeElBZEJDSFpCQVhFZ0EzUnlRUUZ5UVFKcUlDQjBJQmRCSDNSeUlRTU1BUXRCQUNFRElCaEJFSEZGRFFFTElBRWdBellDQUFzQ1FDQUhRU0J4QkVBZ0QwSEFBV29RR3lFWElBOGdEeWdDMEFFZ0NTQUhRUkowUVI5MWFpSURhellDMEFFZ0R5QVBLUVBJQVNBRHJZZzNBOGdCSUFFZ0ZVRUNkR29nRjBGL0lBTjBRWDl6Y1NBSFFRbDJRUUZ4SUFOMGNrRUJjaUlCUVFKcUlDQjBJQmRCSDNSeU5nSUFJQVpCSUNBQloyc2lBU0FHTFFBQlFmOEFjU0lESUFFZ0Ewc2JRWUFCY2pvQUFRd0JDeUFZUVNCeFJRMEFJQUVnRlVFQ2RHcEJBRFlDQUFzZ0NFRU1haUVCQWtBQ1FDQUhRY0FBY1FSQUlBOUJ3QUZxRUJzaEZ5QVBJQThvQXRBQklBa2dCMEVSZEVFZmRXb2lBMnMyQXRBQklBOGdEeWtEeUFFZ0E2MklOd1BJQVNBWFFYOGdBM1JCZjNOeElBZEJDblpCQVhFZ0EzUnlRUUZ5UVFKcUlDQjBJQmRCSDNSeUlRTU1BUXRCQUNFRElCaEJ3QUJ4UlEwQkN5QUJJQU0yQWdBTElBWkJBbW9oQmdKQUlBZEJnQUZ4QkVBZ0QwSEFBV29RR3lFWElBOGdEeWdDMEFFZ0NTQUhRUkIwUVI5MWFpSURhellDMEFFZ0R5QVBLUVBJQVNBRHJZZzNBOGdCSUFFZ0ZVRUNkR29nRjBGL0lBTjBRWDl6Y1NBSFFRdDJRUUZ4SUFOMGNrRUJjaUlCUVFKcUlDQjBJQmRCSDNSeU5nSUFJQVpCb0g4Z0FXZHJPZ0FBREFFTElCaEJnQUZKRFFBZ0FTQVZRUUowYWtFQU5nSUFDeUFpUVJCeklTSWdFU0FGUVFSeGFpRVJJQWhCRUdvaENDQU5JQlZJRFFBTEN3SkFJQXhCQWtrTkFDQVRRUUp4UlEwQUlCbEJCSEVoQXdKQUFuOENRQUpBSURFRVFDQVVJQ1VnQXhzaEZrRUFJUmdnRlVFQVRBMEJJQTRnRTBFQ2F5QVZiRUVDZEdvaEVRTkFJQTlCZ0FGcUVDOGhCMEVBSVFFZ0ZpZ0NBQ0lJQkVBZ0VTQVlRUUowYWlFQlFRQWhDVUVQSVFZRFFBSkFJQVlnQ0hGRkRRQWdCa0dSb3NTSUFYRWlEU0FJY1FSQUlBRWdBU2dDQUNBSFFYOXpRUUZ4SUNCMGN5QXVjallDQUNBSFFRRjJJUWNMSUExQkFYUWdDSEVFUUNBQklCVkJBblJxSWdVZ0JTZ0NBQ0FIUVg5elFRRnhJQ0IwY3lBdWNqWUNBQ0FIUVFGMklRY0xJQTFCQW5RZ0NIRUVRQ0FCSURwQkFuUnFJZ1VnQlNnQ0FDQUhRWDl6UVFGeElDQjBjeUF1Y2pZQ0FDQUhRUUYySVFjTElBMUJBM1FnQ0hGRkRRQWdBU0E1UVFKMGFpSU5JQTBvQWdBZ0IwRi9jMEVCY1NBZ2RITWdMbkkyQWdBZ0IwRUJkaUVIQ3lBQlFRUnFJUUVnQmtFRWRDRUdJQWxCQVdvaUNVRUlSdzBBQ3lBSWFTRUJDeUFXUVFScUlSWWdEeUFQS0FLUUFTQUJhellDa0FFZ0R5QVBLUU9JQVNBQnJZZzNBNGdCSUJoQkNHb2lHQ0FWU0EwQUN3c2dLU0FvSUFNYklRVWdGQ0FsSUFNYklSWWdBMFVoR0NBVlFRQk1EUU5CQUNFRElFQU5BU0FGSUJZZ08ycEpJQllnQlNBN2FpSUhTWEVOQVVFQUlBVWlBU0FXSWdZZ1BtcEJDR3BKSUFaQkJHb2dCMGx4RFFJYUlBWWdQR29oQmlBQklEeHFJUUg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFoWGtFQUlRY0RRQ0FGSUFkQkFuUWlBMm9pQ1NBRElCWnFJZ1A5QUFJQUlsOUJCUDJ0QVNCZlFRVDlxd0VnWGlCZi9RME1EUTRQRUJFU0V4UVZGaGNZR1JvYlFSejlyUUg5VVAxUUlGLzlVQ0plL1FzQ0FDQUpJRjRnQS8wQUFnUkJIUDJyQWYxUUlsNUJBZjJ0QWYwTWQzZDNkM2QzZDNkM2QzZDNkM2QzZC8xT0lGNUJBZjJyQWYwTTd1N3U3dTd1N3U3dTd1N3U3dTd1N3YxTy9WQWdYdjFRSUYvOVQvMExBZ0FnWHlGZUlBZEJCR29pQnlBY1J3MEFDeUFjSUQ5R0RRTWdFaUVESUY3OUd3TU1BZ3NnQTBVaEdDQXBJQ2dnQXhzaEJRd0NDeUFGSVFFZ0ZpRUdRUUFMSVFjRFFDQUhRUngySVFrZ0FTQUdLQUlBSWdkQkJIWWdDU0FIUVFSMGNuSWdCM0lpQ1RZQ0FDQUJJQWtnQmlnQ0JFRWNkSElpQ1VFQmRrSDM3dDI3QjNFZ0NVRUJkRUh1M2J2M2ZuRnlJQWx5SUFkQmYzTnhOZ0lBSUFGQkJHb2hBU0FHUVFScUlRWWdBMEVJYWlJRElCVklEUUFMQ3lBVFFRWkpEUUJCQUNFSlFRQWhFU0FXSVFFZ0tTQW9JQmdiSWhzaEJ5QVVJQ1VnR0JzaUZ5RUdBa0FnRlVFQVRDSU5EUUFEUUNBQlFRUnFJUU1nQnlnQ0FDRUlJQUVvQWdBaEFTQUhJRGdFZnlBSUJTQUJRUVIwSUJGQkhIWnlJQUZCQkhaeUlBTW9BZ0JCSEhSeUlBRnlRUU4wUVlpUm9zUjRjU0FJY2dzZ0JpZ0NBRUYvYzNFMkFnQWdCa0VFYWlFR0lBZEJCR29oQnlBQklSRWdBeUVCSUFsQkNHb2lDU0FWU0EwQUN5QU5EUUFnRGlBVFFRWnJJQlZzUVFKMGFpRkJRUUFoSGlBWElSRURRRUVBSVFNZ0d5Z0NBQ0lCQkVBZ0ZTQWVheUZDUVFBaEIwRUFJUW9EUUNBSElVMGdEMEdnQVdvUUd5RUhBa0FnQ2lBS1FRUnFJZ1lnUWlBR0lCNXFJQlZJR3lJelRpSkRCRUJCQUNFR0RBRUxJQkVvQWdCQmYzTWhLaUJCSUFvZ0huSkJBblJxSVJoQkFDRUdRUThnQ2lJSlFRSjBJa1IwSWcwaENBTkFBa0FnQVNBSWNVVU5BQ0FJUVpHaXhJZ0JjU0luSUFGeEJFQWdCMEVCY1FSQUlBTWdKM0loQTBFeUlBbEJBblIwSUNweElBRnlJUUVMSUFkQkFYWWhCeUFHUVFGcUlRWUxJQUVnSjBFQmRDSTBjUVJBSUFkQkFYRUVRQ0FESURSeUlRTWdBVUgwQUNBSlFRSjBkQ0FxY1hJaEFRc2dCMEVCZGlFSElBWkJBV29oQmdzZ0FTQW5RUUowSWpSeEJFQWdCMEVCY1FSQUlBTWdOSEloQXlBQlFlZ0JJQWxCQW5SMElDcHhjaUVCQ3lBSFFRRjJJUWNnQmtFQmFpRUdDeUFCSUNkQkEzUWlKM0ZGRFFBZ0IwRUJjUVJBSUFNZ0ozSWhBeUFCUWNBQklBbEJBblIwSUNweGNpRUJDeUFHUVFGcUlRWWdCMEVCZGlFSEN5QUlRUVIwSVFnZ0NVRUJhaUlKSUROSURRQUxJQU1nUkhaQi8vOERjVVVOQUNCRERRQURRQUpBSUFNZ0RYRkZEUUFnRFVHUm9zU0lBWEVpQ1NBRGNRUkFJQmdnR0NnQ0FDQUhRUjkwY2lBdGNqWUNBQ0FIUVFGMklRY2dCa0VCYWlFR0N5QUpRUUYwSUFOeEJFQWdHQ0FWUVFKMGFpSUlJQWdvQWdBZ0IwRWZkSElnTFhJMkFnQWdCMEVCZGlFSElBWkJBV29oQmdzZ0NVRUNkQ0FEY1FSQUlCZ2dPa0VDZEdvaUNDQUlLQUlBSUFkQkgzUnlJQzF5TmdJQUlBZEJBWFloQnlBR1FRRnFJUVlMSUFsQkEzUWdBM0ZGRFFBZ0dDQTVRUUowYWlJSklBa29BZ0FnQjBFZmRISWdMWEkyQWdBZ0JrRUJhaUVHSUFkQkFYWWhCd3NnRFVFRWRDRU5JQmhCQkdvaEdDQUtRUUZxSWdvZ00wZ05BQXNMSUE4Z0R5Z0NzQUVnQm1zMkFyQUJJQThnRHlrRHFBRWdCcTJJTndPb0FVRUJJUWRCQkNFS0lFMUJBWEZGRFFBTElCc2dHeWdDQkNBRFFSdDJRUTV4SUFOQkhYWnlJQU5CSEhaeUlCRW9BZ1JCZjNOeGNqWUNCQXNnRVNnQ0FDQURjaUlEUVFOMlFaR2l4SWdCY1NJQlFRUjJJQUZCQkhSeUlBRnlJUVlnSGdSQUlBVkJCR3NpQnlBSEtBSUFJQlpCQkdzb0FnQkJmM01nQVVFY2RIRnlOZ0lBQ3lBRklBVW9BZ0FnQmlBV0tBSUFRWDl6Y1hJMkFnQWdCU0FGS0FJRUlCWW9BZ1JCZjNNZ0EwRWZkbkZ5TmdJRUlCdEJCR29oR3lBUlFRUnFJUkVnQlVFRWFpRUZJQlpCQkdvaEZpQWVRUWhxSWg0Z0ZVZ05BQXNMSUJkQkFDQTlFQlVhQ3lBWklCOUlEUUFMQ3dKQUlBeEJBa2tOQUFKQUlCOUJBM0ZCQVdzaUZrRUNTU0F4Y1FSQUlCVkJBRXdOQVVFQklDWkJBbXQwSVFJZ0RpQWZRZnovL3dkeElCVnNRUUowYWlFUklDVWdGQ0FmUVFSeEd5RUZJQ1pCQVdzaENFRUFJUW9nRlVFTWJDRU1JQlZCQTNRaEN3TkFJQTlCZ0FGcUVDOGhCMEVBSVFFZ0JTZ0NBQ0lEQkVBZ0VTQUtRUUowYWlFQlFROGhCa0VBSVFrRFFBSkFJQU1nQm5GRkRRQWdCa0dSb3NTSUFYRWlEU0FEY1FSQUlBRWdBU2dDQUNBSFFYOXpRUUZ4SUFoMGN5QUNjallDQUNBSFFRRjJJUWNMSUExQkFYUWdBM0VFUUNBQklCVkJBblJxSWgwZ0hTZ0NBQ0FIUVg5elFRRnhJQWgwY3lBQ2NqWUNBQ0FIUVFGMklRY0xJQTFCQW5RZ0EzRUVRQ0FCSUF0cUloMGdIU2dDQUNBSFFYOXpRUUZ4SUFoMGN5QUNjallDQUNBSFFRRjJJUWNMSUExQkEzUWdBM0ZGRFFBZ0FTQU1haUlOSUEwb0FnQWdCMEYvYzBFQmNTQUlkSE1nQW5JMkFnQWdCMEVCZGlFSEN5QUJRUVJxSVFFZ0JrRUVkQ0VHSUFsQkFXb2lDVUVJUncwQUN5QURhU0VCQ3lBRlFRUnFJUVVnRHlBUEtBS1FBU0FCYXpZQ2tBRWdEeUFQS1FPSUFTQUJyWWczQTRnQklBcEJDR29pQ2lBVlNBMEFDd3NnRmtFQlN3MEFJQlZCQUV3TkFDQWxJQlFnSDBFRWNTSUJHeUVKSUNnZ0tTQUJHeUVDUVFBaEF3Si9Ba0FnS3lBa1FYOXphaUlCUVRoSkRRQWdBaUFKSUFGQkFYWkIvUC8vL3dkeElnWkJCR29pQjJwSklBa2dBaUFIYWlJSFNYRU5BQ0FDSUFZZ0NXcEJDR3BKSUFsQkJHb2dCMGx4RFFBZ0FVRURka0VCYWlJTlFmei8vLzhEY1NJSVFRTjBJUU1nQ1NBSVFRSjBJZ0ZxSVFZZ0FTQUNhaUVCL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSVY1QkFDRUhBMEFnQWlBSFFRSjBJaFpxSWhFZ0NTQVdhaUlXL1FBQ0FDSmZRUVQ5clFFZ1gwRUUvYXNCSUY0Z1gvME5EQTBPRHhBUkVoTVVGUllYR0JrYUcwRWMvYTBCL1ZEOVVDQmYvVkFpWHYwTEFnQWdFU0JlSUJiOUFBSUVRUno5cXdIOVVDSmVRUUg5clFIOURIZDNkM2QzZDNkM2QzZDNkM2QzZDNmOVRpQmVRUUg5cXdIOURPN3U3dTd1N3U3dTd1N3U3dTd1N3U3OVR2MVFJRjc5VUNCZi9VLzlDd0lBSUY4aFhpQUhRUVJxSWdjZ0NFY05BQXNnQ0NBTlJnMENJRjc5R3dNTUFRc2dBaUVCSUFraEJrRUFDeUVIQTBBZ0IwRWNkaUVKSUFFZ0JpZ0NBQ0lIUVFSMklBa2dCMEVFZEhKeUlBZHlJZ2syQWdBZ0FTQUpJQVlvQWdSQkhIUnlJZ2xCQVhaQjkrN2R1d2R4SUFsQkFYUkI3dDI3OTM1eGNpQUpjaUFIUVg5emNUWUNBQ0FCUVFScUlRRWdCa0VFYWlFR0lBTkJDR29pQXlBVlNBMEFDd3NnSHlBZlFRRnFRUU54YTBFRGEwRUFJQjlCQmtvYkloRWdIMDROQUVFRElDWkJBbXQwSVJrZ0t5QWtRWDl6YWlJQlFRTjJJZ05CQW5RaUswRUVhaUVkSUFOQkFXb2lBMEg4Ly8vL0EzRWlFa0VDZENFaElCSkJBM1FoRmlBVlFReHNJU3dnRlVFRGRDRXRJQUZCR0VraEppQURJQkpHSVJzRFFBSkFBa0FDUUFKQUFuOENRQ0FmSUJGcklnRkJBV3NpQTBFRFR3UkFRWDhoRnlBQlFRVklEUVVnRlVFQVRBMEdJQ1VnRkNBUlFRUnhJZ0ViSVFJZ0tDQXBJQUViSVFrZ09BUkFRUUFoQmlBbURRUWdBaUFKSUIxcVNTQUNJQjFxSUFsTGNRMEVJQUlnSVdvaEFTQUpJQ0ZxSVFjRFFDQUpJQVpCQW5RaUEyb2lDQ0FJL1FBQ0FDQUNJQU5xL1FBQ0FQMVAvUXNDQUNBR1FRUnFJZ1lnRWtjTkFBc2dGaUVHSUJzTkJnd0ZDeUFVSUNVZ0FSc2hEVUVBSVFNZ0pnMEJJQWtnRFNBZGFra2dEU0FKSUIxcUlnRkpjUTBCSUFrZ0RTQXJha0VJYWtrZ0RVRUVhaUFCU1hFTkFTQUpJQUlnSFdwSklBRWdBa3R4RFFFZ0FpQWhhaUVJSUFrZ0lXb2hBU0FOSUNGcUlRZjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWhYa0VBSVFZRFFDQUpJQVpCQW5RaUEyb2lCU0FESUExcUlnejlBQUlBSWw5QkJQMnRBU0JmUVFUOXF3RWdYaUJmL1EwTURRNFBFQkVTRXhRVkZoY1lHUm9iUVJ6OXJRSDlVUDFRSUF6OUFBSUVRUno5cXdIOVVDQmYvVkJCQS8yckFmME1pSWlJaUlpSWlJaUlpSWlJaUlpSWlQMU9JQVg5QUFJQS9WQWdBaUFEYXYwQUFnRDlULzBMQWdBZ1h5RmVJQVpCQkdvaUJpQVNSdzBBQ3lBYkRRVWdGaUVESUY3OUd3TU1BZ3NnQTBFQ2RFSGNuUUZxS0FJQUlSY01CQXNnRFNFSElBa2hBU0FDSVFoQkFBc2hCZ05BSUFaQkhIWWhDU0FCSUFFb0FnQWdCeWdDQUNJR1FRUjJJQWtnQmtFRWRISnlJQWNvQWdSQkhIUnlJQVp5UVFOMFFZaVJvc1I0Y1hJZ0NDZ0NBRUYvYzNFMkFnQWdDRUVFYWlFSUlBRkJCR29oQVNBSFFRUnFJUWNnQTBFSWFpSURJQlZJRFFBTERBSUxJQWtoQnlBQ0lRRUxBMEFnQnlBSEtBSUFJQUVvQWdCQmYzTnhOZ0lBSUFGQkJHb2hBU0FIUVFScUlRY2dCa0VJYWlJR0lCVklEUUFMQ3lBVlFRQk1EUUFnSlNBVUlCRkJCSEVpQVJzaENpQW9JQ2tnQVJzaEFpQVVJQ1VnQVJzaEV5QXBJQ2dnQVJzaEhpQU9JQkVnRld4QkFuUnFJUzVCQUNFRkEwQkJBQ0VESUFJb0FnQWdGM0VpQVFSQUlCVWdCV3NoS2tFQUlRZEJBQ0VOQTBBZ0J5Rk9JQTlCb0FGcUVCc2hCd0pBSUEwZ0RVRUVhaUlHSUNvZ0JTQUdhaUFWU0JzaUpFNGlKd1JBUVFBaEJnd0JDeUFYSUFvb0FnQkJmM054SVJnZ0xpQUZJQTF5UVFKMGFpRUxRUUFoQmtFUElBMGlDVUVDZENJY2RDSWdJUWdEUUFKQUlBRWdDSEZGRFFBZ0NFR1Jvc1NJQVhFaUlpQUJjUVJBSUFkQkFYRUVRQ0FESUNKeUlRTkJNaUFKUVFKMGRDQVljU0FCY2lFQkN5QUhRUUYySVFjZ0JrRUJhaUVHQ3lBQklDSkJBWFFpTVhFRVFDQUhRUUZ4QkVBZ0F5QXhjaUVESUFGQjlBQWdDVUVDZEhRZ0dIRnlJUUVMSUFkQkFYWWhCeUFHUVFGcUlRWUxJQUVnSWtFQ2RDSXhjUVJBSUFkQkFYRUVRQ0FESURGeUlRTWdBVUhvQVNBSlFRSjBkQ0FZY1hJaEFRc2dCMEVCZGlFSElBWkJBV29oQmdzZ0FTQWlRUU4wSWlKeFJRMEFJQWRCQVhFRVFDQURJQ0p5SVFNZ0FVSEFBU0FKUVFKMGRDQVljWEloQVFzZ0JrRUJhaUVHSUFkQkFYWWhCd3NnQ0VFRWRDRUlJQWxCQVdvaUNTQWtTQTBBQ3lBRElCeDJRZi8vQTNGRkRRQWdKdzBBQTBBQ1FDQURJQ0J4UlEwQUlDQkJrYUxFaUFGeElna2dBM0VFUUNBTElBc29BZ0FnQjBFZmRISWdHWEkyQWdBZ0IwRUJkaUVISUFaQkFXb2hCZ3NnQ1VFQmRDQURjUVJBSUFzZ0ZVRUNkR29pQ0NBSUtBSUFJQWRCSDNSeUlCbHlOZ0lBSUFkQkFYWWhCeUFHUVFGcUlRWUxJQWxCQW5RZ0EzRUVRQ0FMSUMxcUlnZ2dDQ2dDQUNBSFFSOTBjaUFaY2pZQ0FDQUhRUUYySVFjZ0JrRUJhaUVHQ3lBSlFRTjBJQU54UlEwQUlBc2dMR29pQ1NBSktBSUFJQWRCSDNSeUlCbHlOZ0lBSUFaQkFXb2hCaUFIUVFGMklRY0xJQ0JCQkhRaElDQUxRUVJxSVFzZ0RVRUJhaUlOSUNSSURRQUxDeUFQSUE4b0FyQUJJQVpyTmdLd0FTQVBJQThwQTZnQklBYXRpRGNEcUFGQkFTRUhRUVFoRFNCT1FRRnhSUTBBQ3lBQ0lBSW9BZ1FnQTBFYmRrRU9jU0FEUVIxMmNpQURRUngyY2lBS0tBSUVRWDl6Y1hJMkFnUUxJQW9vQWdBZ0EzSWlBMEVEZGtHUm9zU0lBWEVpQVVFRWRpQUJRUVIwY2lBQmNpRUdJQVVFUUNBZVFRUnJJZ2NnQnlnQ0FDQVRRUVJyS0FJQVFYOXpJQUZCSEhSeGNqWUNBQXNnSGlBZUtBSUFJQVlnRXlnQ0FFRi9jM0Z5TmdJQUlCNGdIaWdDQkNBVEtBSUVRWDl6SUFOQkgzWnhjallDQkNBQ1FRUnFJUUlnQ2tFRWFpRUtJQjVCQkdvaEhpQVRRUVJxSVJNZ0JVRUlhaUlGSUJWSURRQUxDeUFSUVFScUloRWdIMGdOQUFzTFFRRWhCeUFmUVFCTURRTWdGVUVBVEEwRElCVkIvUC8vL3dkeElnWkJBblFoQWlBVlFRUkpJUWhCQUNFSkEwQWdEaUFKSUJWc1FRSjBhaUVEQWtBQ1FDQUlCRUFnQXlFSFFRQWhBUXdCQ3lBQ0lBTnFJUWRCQUNFQkEwQWdBeUFCUVFKMGFpSU5JQTM5QUFJQUlsNzlEUC8vLzMvLy8vOS8vLy8vZi8vLy8zLzlUaUpmL2FFQklGOGdYdjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZMOUN3SUFJQUZCQkdvaUFTQUdSdzBBQ3lBR0lnRWdGVVlOQVFzRFFDQUhRUUFnQnlnQ0FDSURRZi8vLy84SGNTSU5heUFOSUFOQkFFZ2JOZ0lBSUFkQkJHb2hCeUFCUVFGcUlnRWdGVWNOQUFzTFFRRWhCeUFKUVFGcUlna2dIMGNOQUFzTUF3c2dJVVVOQUNBUElCb29BaGcyQWpRZ0R5QVdOZ0l3SUIxQkFVSGN4d0FnRDBFd2FoQVBEQUVMSUE4Z0FUWUNGQ0FQSUJZMkFoQWdIVUVCUWR6SEFDQVBRUkJxRUE5QkFDRUhEQUVMUVFBaEJ3c2dEMEd3QW1va0FDQUhEUUVNQXdzZ0JDQUJRUWwwUWRDcEFXbzJBbXdDZnlBRUtBSjBJUUVDUUFKQUlCb29BaEFnR2lnQ0NHc2lCU0FhS0FJVUlCb29BZ3hySWdsc0lnTWdCQ2dDaEFGTEJFQWdBUkFRSUFRZ0EwRUNkQkFZSWdFMkFuUkJBQ0FCUlEwREdpQUVJQU0yQW9RQkRBRUxJQUZGRFFFTElBRkJBQ0FEUVFKMEVCVWFDeUFFS0FKNElRRUNRQ0FGUVFKcUlnWWdDVUVEYWtFQ2RpSU1RUUpxYkNJRElBUW9Bb2dCVFFSQUlBTkJBblFoQ0F3QkN5QUJFQkFnQkNBRFFRSjBJZ2dRR0NJQk5nSjRJQUVOQUVFQURBRUxJQVFnQXpZQ2lBRWdBVUVBSUFnUUZSb0NRQ0FHUlEwQUlBUW9BbmdpQnlFQkFrQWdCa0VFVHdSQUlBY2dCa0Y4Y1NJTlFRSjBhaUVCUVFBaENBTkFJQWNnQ0VFQ2RHcjlEQUFBSUVrQUFDQkpBQUFnU1FBQUlFbjlDd0lBSUFoQkJHb2lDQ0FOUncwQUN5QUdJQTFHRFFFTEEwQWdBVUdBZ0lESkJEWUNBQ0FCUVFScUlRRWdEVUVCYWlJTklBWkhEUUFMQ3lBSElBeEJBV29nQm14QkFuUnFJUU5CQUNFTkFrQUNRQ0FHUVFSSkJFQWdBeUVCREFFTElBTWdCa0Y4Y1NJTlFRSjBhaUVCUVFBaENBTkFJQU1nQ0VFQ2RHcjlEQUFBSUVrQUFDQkpBQUFnU1FBQUlFbjlDd0lBSUFoQkJHb2lDQ0FOUncwQUN5QUdJQTFHRFFFTEEwQWdBVUdBZ0lESkJEWUNBQ0FCUVFScUlRRWdEVUVCYWlJTklBWkhEUUFMQ3lBSlFRTnhJZ0ZGRFFBZ0JrVU5BRUdBZ0lESUJFR0FnSURBQkVHQWdJQ0FCQ0FCUVFKR0d5QUJRUUZHR3lFTElBY2dCaUFNYkVFQ2RHb2hBMEVBSVEwQ1FDQUdRUVJKQkVBZ0F5RUJEQUVMSUFNZ0JrRjhjU0lOUVFKMGFpRUJJQXY5RVNGZlFRQWhDQU5BSUFNZ0NFRUNkR29nWC8wTEFnQWdDRUVFYWlJSUlBMUhEUUFMSUFZZ0RVWU5BUXNEUUNBQklBczJBZ0FnQVVFRWFpRUJJQTFCQVdvaURTQUdSdzBBQ3dzZ0JDQUpOZ0tBQVNBRUlBVTJBbnhCQVF0RkRRSWdHaWdDSENBUmFpSVpRUjlPQkVBZ0lVVU5BaUFqSUJrMkFoQWdIVUVDUWRYQkFDQWpRUkJxRUE4TUF3c2dCQkJhUVFBaEFTQUVRYkNwQVRZQ1pDQUVRZENlQVRZQ1lDQUVRZkNlQVRZQ0hBSkFBa0FDUUFKQUlCb29BalFpQjBFQlN3MEFJQVFvQXBBQlJRMENJQWNOQUF3QkN5QWFLQUlFSVFNZ0IwRUVUd1JBSUFkQmZIRWhBa0VBSVFZRFFDQURJQVpCQTNScUlnRkJIR29nQVVFVWFpQUJRUXhxSUFIOUNRSUUvVllDQUFIOVZnSUFBdjFXQWdBRElGNzlyZ0VoWGlBR1FRUnFJZ1lnQWtjTkFBc2dYaUJlSUY3OURRZ0pDZ3NNRFE0UEFBRUNBd0FCQWdQOXJnRWlYaUJlSUY3OURRUUZCZ2NBQVFJREFBRUNBd0FCQWdQOXJnSDlHd0FoQVNBQ0lBZEdEUUVMQTBBZ0F5QUNRUU4wYWlnQ0JDQUJhaUVCSUFKQkFXb2lBaUFIUncwQUN3c2dBVUVDYWlJRElBUW9BcGdCU3dSQUlBUW9BcFFCSUFNUUZ5SUdSUTBGSUFRZ0JqWUNsQUVnQVNBR2FrRUFPd0FBSUFRZ0F6WUNtQUVnR2lnQ05DRUhDeUFFS0FLVUFTRWVJQWRGRFFFZ0dpZ0NCQ0VHUVFBaEFrRUFJUUVEUUNBQ0lCNXFJQVlnQVVFRGRDSURhaUlHS0FJQUlBWW9BZ1FRRWhvZ0dpZ0NCQ0lHSUFOcUtBSUVJQUpxSVFJZ0FVRUJhaUlCSUJvb0FqUkpEUUFMREFFTElBZEJBVWNOQVNBYUtBSUVLQUlBSVI0TElCb29BandpQVFSQUlBUW9BblFoTENBRUlBRTJBblFMSUJvb0Fpd0VRQ0FXUVFoeElTVWdCRUVjYWlFUElCWkJBWEVoTFNBV1FRSnhSU0V1UVFJaEh3TkFJQjRnS0dvaEFTQWFLQUlBSUNsQkdHeHFJaUFvQWdBaEF3SkFJQzBnSDBFQ1NTQVpJQm9vQWh4QkJHdE1jWEVpSWdSQUlBUWdBVFlDRkNBRUlBRWdBMm9pQXpZQ0dDQUVJQU12QUFBN0FYQWdBMEgvQVRvQUFDQUVLQUlZUWY4Qk9nQUJJQVJCQURZQ0NDQUVRUUEyQWdBZ0JDQUJOZ0lRREFFTElBUWdBVFlDRkNBRUlBRWdBMm9pQmpZQ0dDQUVJQVl2QUFBN0FYQWdCa0gvQVRvQUFDQUVLQUlZUWY4Qk9nQUJJQVFnQkVFY2FqWUNhQ0FFSUFFMkFoQWdCRUVBTmdJTUlBUWdBd1IvSUFFdEFBQkJFSFFGUVlDQS9BY0xJZ00yQWdCQkFTRUdJQUZCQVdvaENTQUJMUUFCSVFjQ2Z5QUJMUUFBUWY4QlJnUkFJQWRCa0FGUEJFQWdCRUVCTmdJTUlBTkJnUDREY2d3Q0N5QUVJQWsyQWhCQkFDRUdJQWRCQ1hRZ0Eyb01BUXNnQkNBSk5nSVFJQWRCQ0hRZ0EzSUxJUUVnQkNBR05nSUlJQVJCZ0lBQ05nSUVJQVFnQVVFSGREWUNBQXNnSUNnQ0FDRXFBa0FnR1VFQVRBMEFJQ0FvQWdoRkRRQWdJaUF1Y2lFblFRQWhKZ05BQWtBQ1FBSkFBa0FDUUNBZlFRRnJEZ0lCQWdBTElDSUVRRUVCSUJsMElnRkJBWFlnQVhJaEVTQUVLQUo4SWdWQkFuUWlEU0FFS0FKNGFrRU1haUVCSUFRb0FuUWhCa0VBSVFnZ0JDZ0NnQUVpQTBFRVR3UkFJQVZGRFFVZ0JVRURiQ0VDSUFWQkFYUWhERUVBSUJGcklRa0RRQ0FNUVFKMElRdEJBQ0VEQTBBQ1FDQUJJZ2NvQWdBaUFVVU5BQUpBSUFGQmtJQ0FBWEVOQUNBQlFlOERjVVVOQUNBRUtBSUFJUUVDUUNBRUtBSUlJaEFOQUNBQlFmOEJSaUVLSUFRb0FoQWlFQzBBQUNFQkFrQWdDa1VFUUNBRUlBRTJBZ0FnQkNBUVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0JDQUJOZ0lBSUFRZ0VFRUJhallDRUVFSElSQU1BZ3RCL3dFaEFTQUVRZjhCTmdJQUMwRUlJUkFMSUFRZ0VFRUJheUlRTmdJSUFrQWdBU0FRZGtFQmNVVU5BQUpBSUJBTkFDQUJRZjhCUmlFS0lBUW9BaEFpRUMwQUFDRUJBa0FnQ2tVRVFDQUVJQUUyQWdBZ0JDQVFRUUZxTmdJUURBRUxJQUZCandGTkJFQWdCQ0FCTmdJQUlBUWdFRUVCYWpZQ0VFRUhJUkFNQWd0Qi93RWhBU0FFUWY4Qk5nSUFDMEVJSVJBTElBUWdFRUVCYXlJUU5nSUlJQVlnQ1NBUklBRWdFSFpCQVhFaUVCczJBZ0FnQkNnQ2ZDRUJJQWRCQkdzaUNpQUtLQUlBUVNCeU5nSUFJQWNnQnlnQ0JFRUljallDQkNBSElBY29BZ0FnRUVFVGRISkJFSEkyQWdBZ0pRMEFJQWRCZmlBQmEwRUNkR29pQVNBQktBSUVRWUNBQW5JMkFnUWdBU0FCS0FJQUlCQkJIM1J5UVlDQUJISTJBZ0FnQVVFRWF5SUJJQUVvQWdCQmdJQUljallDQUFzZ0J5QUhLQUlBUVlDQWdBRnlJZ0UyQWdBTEFrQWdBVUdBZ1lBSWNRMEFJQUZCK0I1eFJRMEFJQVFvQWdBaEFRSkFJQVFvQWdnaUVBMEFJQUZCL3dGR0lRb2dCQ2dDRUNJUUxRQUFJUUVDUUNBS1JRUkFJQVFnQVRZQ0FDQUVJQkJCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGckloQTJBZ2dnQndKL0lBRWdFSFpCQVhGRkJFQWdCeWdDQUF3QkN3SkFJQkFOQUNBQlFmOEJSaUVLSUFRb0FoQWlFQzBBQUNFQkFrQWdDa1VFUUNBRUlBRTJBZ0FnQkNBUVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0JDQUJOZ0lBSUFRZ0VFRUJhallDRUVFSElSQU1BZ3RCL3dFaEFTQUVRZjhCTmdJQUMwRUlJUkFMSUFRZ0VFRUJheUlRTmdJSUlBWWdEV29nQ1NBUklBRWdFSFpCQVhFaUFSczJBZ0FnQjBFRWF5SVFJQkFvQWdCQmdBSnlOZ0lBSUFjZ0J5Z0NCRUhBQUhJMkFnUWdCeWdDQUNBQlFSWjBja0dBQVhJTFFZQ0FnQWh5SWdFMkFnQUxBa0FnQVVHQWlJREFBSEVOQUNBQlFjRDNBWEZGRFFBZ0JDZ0NBQ0VCQWtBZ0JDZ0NDQ0lRRFFBZ0FVSC9BVVloQ2lBRUtBSVFJaEF0QUFBaEFRSkFJQXBGQkVBZ0JDQUJOZ0lBSUFRZ0VFRUJhallDRUF3QkN5QUJRWThCVFFSQUlBUWdBVFlDQUNBRUlCQkJBV28yQWhCQkJ5RVFEQUlMUWY4QklRRWdCRUgvQVRZQ0FBdEJDQ0VRQ3lBRUlCQkJBV3NpRURZQ0NDQUhBbjhnQVNBUWRrRUJjVVVFUUNBSEtBSUFEQUVMQWtBZ0VBMEFJQUZCL3dGR0lRb2dCQ2dDRUNJUUxRQUFJUUVDUUNBS1JRUkFJQVFnQVRZQ0FDQUVJQkJCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGckloQTJBZ2dnQmlBTGFpQUpJQkVnQVNBUWRrRUJjU0lCR3pZQ0FDQUhRUVJySWhBZ0VDZ0NBRUdBRUhJMkFnQWdCeUFIS0FJRVFZQUVjallDQkNBSEtBSUFJQUZCR1hSeVFZQUljZ3RCZ0lDQXdBQnlJZ0UyQWdBTElBRkJnTUNBZ0FSeERRQWdBVUdBdkE5eFJRMEFJQVFvQWdBaEFRSkFJQVFvQWdnaUVBMEFJQUZCL3dGR0lRb2dCQ2dDRUNJUUxRQUFJUUVDUUNBS1JRUkFJQVFnQVRZQ0FDQUVJQkJCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGckloQTJBZ2dnQVNBUWRrRUJjUVJBSUFZZ0FrRUNkR29oVHdKQUlCQU5BQ0FCUWY4QlJpRVVJQVFvQWhBaUVDMEFBQ0VCQWtBZ0ZFVUVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFEQUVMSUFGQmp3Rk5CRUFnQkNBQk5nSUFJQVFnRUVFQmFqWUNFRUVISVJBTUFndEIvd0VoQVNBRVFmOEJOZ0lBQzBFSUlSQUxJQVFnRUVFQmF5SVFOZ0lJSUU4Z0NTQVJJQUVnRUhaQkFYRWlFQnMyQWdBZ0JDZ0NmQ0VCSUFkQkJHc2lDaUFLS0FJQVFZQ0FBWEkyQWdBZ0J5QUhLQUlFUVlBZ2NqWUNCQ0FISUFjb0FnQWdFRUVjZEhKQmdNQUFjallDQUNBSElBRkJBblJxSWdFZ0FTZ0NCRUVFY2pZQ0JDQUJJQUVvQWd4QkFYSTJBZ3dnQVNBQktBSUlJQkJCRW5SeVFRSnlOZ0lJQ3lBSElBY29BZ0JCZ0lDQWdBUnlOZ0lBQ3lBR1FRUnFJUVlnQjBFRWFpRUJJQU5CQVdvaUF5QUZSdzBBQ3lBSFFReHFJUUVnQmlBQ1FRSjBhaUVHSUFoQkJHb2lDQ0FFS0FLQUFTSURRWHh4U1EwQUN3c2dBeUFJVFEwRElBVkZEUU5CQUNFVFFRQWdFV3NoQ3lBRElSQURRQUpBSUFnZ0VFWUVRQ0FJSVJBTUFRc2dBVUVFYXlFTUlBRW9BZ0FoRFVFQUlRSURRQUpBSUEwZ0FrRURiQ0lIZGlJSlFaQ0FnQUZ4RFFBZ0NVSHZBM0ZGRFFBZ0JDZ0NBQ0VEQWtBZ0JDZ0NDQ0lKRFFBZ0EwSC9BVWNoRUNBRUtBSVFJZ2t0QUFBaEF3SkFJQkJGQkVBZ0EwR1FBVThFUUVIL0FTRURJQVJCL3dFMkFnQU1BZ3NnQkNBRE5nSUFJQVFnQ1VFQmFqWUNFRUVISVFrTUFnc2dCQ0FETmdJQUlBUWdDVUVCYWpZQ0VBdEJDQ0VKQ3lBRUlBbEJBV3NpQ1RZQ0NBSkFJQU1nQ1haQkFYRkZEUUFnQmlBQ0lBVnNRUUowYWlGUUFrQWdDUTBBSUFOQi93RkhJUTBnQkNnQ0VDSUpMUUFBSVFNQ1FDQU5SUVJBSUFOQmtBRlBCRUJCL3dFaEF5QUVRZjhCTmdJQURBSUxJQVFnQXpZQ0FDQUVJQWxCQVdvMkFoQkJCeUVKREFJTElBUWdBellDQUNBRUlBbEJBV28yQWhBTFFRZ2hDUXNnQkNBSlFRRnJJZ2syQWdnZ1VDQUxJQkVnQXlBSmRrRUJjU0lKR3pZQ0FDQUVLQUo4SVJBZ0RDQU1LQUlBUVNBZ0IzUnlOZ0lBSUFFZ0FTZ0NBQ0FKUVJOMFFSQnlJQWQwY2pZQ0FDQUJJQUVvQWdSQkNDQUhkSEkyQWdRZ0FpQWxja1VFUUNBQlFYNGdFR3RCQW5ScUlnTWdBeWdDQkVHQWdBSnlOZ0lFSUFNZ0F5Z0NBQ0FKUVI5MGNrR0FnQVJ5TmdJQUlBTkJCR3NpQXlBREtBSUFRWUNBQ0hJMkFnQUxJQUpCQTBjTkFDQUJJQkJCQW5ScUlnTWdBeWdDQkVFRWNqWUNCQ0FESUFNb0FneEJBWEkyQWd3Z0F5QURLQUlJSUFsQkVuUnlRUUp5TmdJSUN5QUJJQUVvQWdCQmdJQ0FBU0FIZEhJaURUWUNBQ0FFS0FLQUFTRURDeUFESVJBZ0FrRUJhaUlDSUFNZ0NHdEpEUUFMQ3lBR1FRUnFJUVlnQVVFRWFpRUJJQk5CQVdvaUV5QUZSdzBBQ3d3REMwRUFJUWRCQUNFTlFRQWhGd0pBQWtBQ1FBSkFJQVFvQW53aUVFSEFBRWNOQUNBRUtBS0FBVUhBQUVjTkFFRUFRUUVnR1hRaUFVRUJkaUFCY2lJUmF5RUZJQVJCSEdvaEVDQUVLQUo0UVl3Q2FpRUdJQVFvQWdnaENDQUVLQUlFSVFNZ0JDZ0NBQ0VDSUFRb0FtZ2hEQ0FFS0FKMElRRWdGa0VJY1EwQkEwQkJBQ0VYQTBBZ0FTRUpJQVlpQnlnQ0FDSUdCRUFDUUNBR1FaQ0FnQUZ4RFFBZ0JrSHZBM0VpQVVVTkFDQURJQkFnQkNnQ2JDQUJhaTBBQUVFQ2RHb2lEQ2dDQUNJTEtBSUFJZ0ZySVFNQ2Z5QUJJQUpCRUhaTEJFQWdDeWdDQkNFS0lBd2dDMEVJUVF3Z0FTQURTeUlVRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUU1nQ0MwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFOQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBRFFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VESUFvZ0NrVWdGQnNNQVFzZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1VVRVFDQUxLQUlFSVFvZ0RDQUxRUXhCQ0NBQklBTkxJaFFiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBU0FJTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFEUVFGMElnTkJnSUFDU1EwQUN5QUtSU0FLSUJRYkRBRUxJQXNvQWdRTEJIOGdBeUFRSUFjb0FnUkJFWFpCQkhFZ0IwRUVheUlLS0FJQVFSTjJRUUZ4SUFaQkRuWkJFSEVnQmtFUWRrSEFBSEVnQmtHcUFYRnljbkp5SWhSQjBMa0JhaTBBQUVFQ2RHb2lEQ2dDQUNJTEtBSUFJZ0ZySVFNZ0ZFSFF1d0ZxTFFBQUlSTWdDU0FGSUJFQ2Z5QUJJQUpCRUhaTEJFQWdDeWdDQkNFVUlBd2dDMEVJUVF3Z0FTQURTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUU1nQ0MwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFOQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBRFFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VESUJRZ0ZFVWdEaHNNQVFzZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1VVRVFDQUxLQUlFSVJRZ0RDQUxRUXhCQ0NBQklBTkxJZzRiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBU0FJTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFEUVFGMElnTkJnSUFDU1EwQUN5QVVSU0FVSUE0YkRBRUxJQXNvQWdRTElCTnpJZ0ViTmdJQUlBb2dDaWdDQUVFZ2NqWUNBQ0FISUFjb0FnUkJDSEkyQWdRZ0IwR01BbXNpQ3lBTEtBSUFRWUNBQ0hJMkFnQWdCMEdFQW1zaUN5QUxLQUlBUVlDQUFuSTJBZ0FnQjBHSUFtc2lDeUFMS0FJQUlBRkJIM1J5UVlDQUJISTJBZ0FnQmlBQlFSTjBja0VRY2dVZ0JndEJnSUNBQVhJaEJnc0NRQ0FHUVlDQmdBaHhEUUFnQmtINEhuRkZEUUFnQXlBUUlBUW9BbXdnQmtFRGRpSVVRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhDaUFNSUF0QkNFRU1JQUVnQTBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QUtJQXBGSUJNYkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRUtJQXdnQzBFTVFRZ2dBU0FEU3lJVEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQ2tVZ0NpQVRHd3dCQ3lBTEtBSUVDd1IvSUFNZ0VDQUhLQUlFUVJSMlFRUnhJQWRCQkdzaUNpZ0NBRUVXZGtFQmNTQUdRUTkyUVJCeElBWkJFM1pCd0FCeElCUkJxZ0Z4Y25KeWNpSVVRZEM1QVdvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURJQlJCMExzQmFpMEFBQ0VUSUFrZ0JTQVJBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhGQ0FNSUF0QkNFRU1JQUVnQTBzaURodHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVVJQlJGSUE0YkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRVVJQXdnQzBFTVFRZ2dBU0FEU3lJT0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnRkVVZ0ZDQU9Hd3dCQ3lBTEtBSUVDeUFUY3lJQkd6WUNnQUlnQ2lBS0tBSUFRWUFDY2pZQ0FDQUhJQWNvQWdSQndBQnlOZ0lFSUFZZ0FVRVdkSEpCZ0FGeUJTQUdDMEdBZ0lBSWNpRUdDd0pBSUFaQmdJaUF3QUJ4RFFBZ0JrSEE5d0Z4UlEwQUlBTWdFQ0FFS0FKc0lBWkJCbllpRkVIdkEzRnFMUUFBUVFKMGFpSU1LQUlBSWdzb0FnQWlBV3NoQXdKL0lBRWdBa0VRZGtzRVFDQUxLQUlFSVFvZ0RDQUxRUWhCRENBQklBTkxJaE1iYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBeUFJTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nQ2lBS1JTQVRHd3dCQ3lBQ0lBRkJFSFJySVFJZ0EwR0FnQUp4UlFSQUlBc29BZ1FoQ2lBTUlBdEJERUVJSUFFZ0Ewc2lFeHRxS0FJQU5nSUFBMEFDUUNBSURRQWdCQ2dDRUNJSVFRRnFJUXNnQ0MwQUFTRUJJQWd0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlEQUlMSUFRZ0N6WUNFQ0FCUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQ3pZQ0VFRUlJUWdnQVVFSWRDQUNhaUVDQ3lBSVFRRnJJUWdnQWtFQmRDRUNJQU5CQVhRaUEwR0FnQUpKRFFBTElBcEZJQW9nRXhzTUFRc2dDeWdDQkFzRWZ5QURJQkFnQnlnQ0JFRVhka0VFY1NBSFFRUnJJZ29vQWdCQkdYWkJBWEVnQmtFU2RrRVFjU0FHUVJaMlFjQUFjU0FVUWFvQmNYSnljbklpRkVIUXVRRnFMUUFBUVFKMGFpSU1LQUlBSWdzb0FnQWlBV3NoQXlBVVFkQzdBV290QUFBaEV5QUpJQVVnRVFKL0lBRWdBa0VRZGtzRVFDQUxLQUlFSVJRZ0RDQUxRUWhCRENBQklBTkxJZzRiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBeUFJTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRkNBVVJTQU9Hd3dCQ3lBQ0lBRkJFSFJySVFJZ0EwR0FnQUp4UlFSQUlBc29BZ1FoRkNBTUlBdEJERUVJSUFFZ0Ewc2lEaHRxS0FJQU5nSUFBMEFDUUNBSURRQWdCQ2dDRUNJSVFRRnFJUXNnQ0MwQUFTRUJJQWd0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlEQUlMSUFRZ0N6WUNFQ0FCUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQ3pZQ0VFRUlJUWdnQVVFSWRDQUNhaUVDQ3lBSVFRRnJJUWdnQWtFQmRDRUNJQU5CQVhRaUEwR0FnQUpKRFFBTElCUkZJQlFnRGhzTUFRc2dDeWdDQkFzZ0UzTWlBUnMyQW9BRUlBb2dDaWdDQUVHQUVISTJBZ0FnQnlBSEtBSUVRWUFFY2pZQ0JDQUdJQUZCR1hSeVFZQUljZ1VnQmd0QmdJQ0F3QUJ5SVFZTEFrQWdCa0dBd0lDQUJIRU5BQ0FHUVlDOEQzRkZEUUFnQXlBUUlBUW9BbXdnQmtFSmRpSVVRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhDaUFNSUF0QkNFRU1JQUVnQTBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QUtJQXBGSUJNYkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRUtJQXdnQzBFTVFRZ2dBU0FEU3lJVEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQ2tVZ0NpQVRHd3dCQ3lBTEtBSUVDd1IvSUFNZ0VDQUhLQUlFUVJwMlFRUnhJQWRCQkdzaUNpZ0NBRUVjZGtFQmNTQUdRUlYyUVJCeElBWkJHWFpCd0FCeElCUkJxZ0Z4Y25KeWNpSVVRZEM1QVdvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURJQlJCMExzQmFpMEFBQ0VUSUFrZ0JTQVJBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhGQ0FNSUF0QkNFRU1JQUVnQTBzaURodHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVVJQlJGSUE0YkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRVVJQXdnQzBFTVFRZ2dBU0FEU3lJT0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnRkVVZ0ZDQU9Hd3dCQ3lBTEtBSUVDeUFUY3lJQkd6WUNnQVlnQ2lBS0tBSUFRWUNBQVhJMkFnQWdCeUFIS0FJRVFZQWdjallDQkNBSElBY29Bb1FDUVFSeU5nS0VBaUFISUFjb0Fvd0NRUUZ5TmdLTUFpQUhJQWNvQW9nQ0lBRkJFblJ5UVFKeU5nS0lBaUFHSUFGQkhIUnlRWURBQUhJRklBWUxRWUNBZ0lBRWNpRUdDeUFISUFZMkFnQUxJQWRCQkdvaEJpQUpRUVJxSVFFZ0YwRUJhaUlYUWNBQVJ3MEFDeUFIUVF4cUlRWWdDVUdFQm1vaEFTQU5RVHhKSVZFZ0RVRUVhaUVOSUZFTkFBc01BZ3RCQVNBWmRDSUJRUUYySUFGeUlRMGdCQ2dDZUNJSklCQkJBblJxUVF4cUlRWWdCQ2dDZ0FFaEFTQUVLQUlJSVFnZ0JDZ0NCQ0VESUFRb0FnQWhBaUFFS0FKb0lRd2dCQ2dDZENFUkFrQWdGa0VJY1FSQUFrQWdBVUVFU1EwQUlCQUVRRUVBSUExcklSUWdCRUVjYWlFRklCQkJER3doRXlBUVFRTjBJUlVEUUVFQUlRc0RRQ0FHSWdrb0FnQWlCZ1JBQWtBZ0JrR1FnSUFCY1EwQUlBWkI3d054SWdGRkRRQWdBeUFGSUFRb0Ftd2dBV290QUFCQkFuUnFJZ3dvQWdBaUNpZ0NBQ0lCYXlFREFuOGdBU0FDUVJCMlRRUkFJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRUVRQ0FLS0FJRURBSUxJQW9vQWdRaERpQU1JQXBCREVFSUlBRWdBMHNpRWh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFvZ0NDMEFBU0VCSUFndEFBQkIvd0ZIQkVBZ0JDQUtOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQ0F3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSUN5QUlRUUZySVFnZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQTVGSUE0Z0Voc01BUXNnQ2lnQ0JDRU9JQXdnQ2tFSVFRd2dBU0FEU3lJU0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaENpQUlMUUFCSVFNZ0NDMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUlJQU5CQ0hRZ0Ftb2hBZ3dCQ3lBRFFZOEJUUVJBSUFRZ0NqWUNFQ0FEUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRZ0xJQWhCQVdzaENDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRElBNGdEa1VnRWhzTEJIOGdBeUFGSUFrb0FnUkJFWFpCQkhFZ0NVRUVheUlPS0FJQVFSTjJRUUZ4SUFaQkRuWkJFSEVnQmtFUWRrSEFBSEVnQmtHcUFYRnljbkp5SWhKQjBMa0JhaTBBQUVFQ2RHb2lEQ2dDQUNJS0tBSUFJZ0ZySVFNZ0VrSFF1d0ZxTFFBQUlSZ2dFU0FVSUEwQ2Z5QUJJQUpCRUhaTkJFQWdBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFU0lBd2dDa0VNUVFnZ0FTQURTeUliRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ2lBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dFa1VnRWlBYkd3d0JDeUFLS0FJRUlSSWdEQ0FLUVFoQkRDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQXlBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBMEVJZENBQ2FpRUNEQUVMSUFOQmp3Rk5CRUFnQkNBS05nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFNZ0VpQVNSU0FiR3dzZ0dITWlBUnMyQWdBZ0RpQU9LQUlBUVNCeU5nSUFJQWtnQ1NnQ0JFRUljallDQkNBR0lBRkJFM1J5UVJCeUJTQUdDMEdBZ0lBQmNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBR1FmZ2VjVVVOQUNBRElBVWdCQ2dDYkNBR1FRTjJJaEpCN3dOeGFpMEFBRUVDZEdvaURDZ0NBQ0lLS0FJQUlnRnJJUU1DZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VPSUF3Z0NrRU1RUWdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0RrVWdEaUFZR3d3QkN5QUtLQUlFSVE0Z0RDQUtRUWhCRENBQklBTkxJaGdiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRGlBT1JTQVlHd3NFZnlBRElBVWdDU2dDQkVFVWRrRUVjU0FKUVFScklnNG9BZ0JCRm5aQkFYRWdCa0VQZGtFUWNTQUdRUk4yUWNBQWNTQVNRYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ29vQWdBaUFXc2hBeUFTUWRDN0FXb3RBQUFoR0NBUklCQkJBblJxSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlCR3pZQ0FDQU9JQTRvQWdCQmdBSnlOZ0lBSUFrZ0NTZ0NCRUhBQUhJMkFnUWdCaUFCUVJaMGNrR0FBWElGSUFZTFFZQ0FnQWh5SVFZTEFrQWdCa0dBaUlEQUFIRU5BQ0FHUWNEM0FYRkZEUUFnQXlBRklBUW9BbXdnQmtFR2RpSVNRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDaWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJUUVJBSUFJZ0FVRVFkR3NoQWlBRFFZQ0FBbkVFUUNBS0tBSUVEQUlMSUFvb0FnUWhEaUFNSUFwQkRFRUlJQUVnQTBzaUdCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFQklBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUE1RklBNGdHQnNNQVFzZ0NpZ0NCQ0VPSUF3Z0NrRUlRUXdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRTWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWd3QkN5QURRWThCVFFSQUlBUWdDallDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRURJQTRnRGtVZ0dCc0xCSDhnQXlBRklBa29BZ1JCRjNaQkJIRWdDVUVFYXlJT0tBSUFRUmwyUVFGeElBWkJFblpCRUhFZ0JrRVdka0hBQUhFZ0VrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pRENnQ0FDSUtLQUlBSWdGcklRTWdFa0hRdXdGcUxRQUFJUmdnRVNBVmFpQVVJQTBDZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VTSUF3Z0NrRU1RUWdnQVNBRFN5SWJHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0VrVWdFaUFiR3d3QkN5QUtLQUlFSVJJZ0RDQUtRUWhCRENBQklBTkxJaHNiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRWlBU1JTQWJHd3NnR0hNaUFSczJBZ0FnRGlBT0tBSUFRWUFRY2pZQ0FDQUpJQWtvQWdSQmdBUnlOZ0lFSUFZZ0FVRVpkSEpCZ0FoeUJTQUdDMEdBZ0lEQUFISWhCZ3NDUUNBR1FZREFnSUFFY1EwQUlBWkJnTHdQY1VVTkFDQURJQVVnQkNnQ2JDQUdRUWwySWhKQjd3TnhhaTBBQUVFQ2RHb2lEQ2dDQUNJS0tBSUFJZ0ZySVFNQ2Z5QUJJQUpCRUhaTkJFQWdBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFT0lBd2dDa0VNUVFnZ0FTQURTeUlZRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ2lBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dEa1VnRGlBWUd3d0JDeUFLS0FJRUlRNGdEQ0FLUVFoQkRDQUJJQU5MSWhnYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQXlBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBMEVJZENBQ2FpRUNEQUVMSUFOQmp3Rk5CRUFnQkNBS05nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFNZ0RpQU9SU0FZR3dzRWZ5QURJQVVnQ1NnQ0JFRWFka0VFY1NBSlFRUnJJZzRvQWdCQkhIWkJBWEVnQmtFVmRrRVFjU0FHUVJsMlFjQUFjU0FTUWFvQmNYSnljbklpRWtIUXVRRnFMUUFBUVFKMGFpSU1LQUlBSWdvb0FnQWlBV3NoQXlBU1FkQzdBV290QUFBaEdDQVJJQk5xSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlLR3pZQ0FDQU9JQTRvQWdCQmdJQUJjallDQUNBSklBa29BZ1JCZ0NCeU5nSUVJQVFvQW54QkFuUWdDV29pQVNBQktBSUVRUVJ5TmdJRUlBRWdBU2dDREVFQmNqWUNEQ0FCSUFFb0FnZ2dDa0VTZEhKQkFuSTJBZ2dnQmlBS1FSeDBja0dBd0FCeUJTQUdDMEdBZ0lDQUJISWhCZ3NnQ1NBR05nSUFDeUFKUVFScUlRWWdFVUVFYWlFUklBdEJBV29pQ3lBUVJ3MEFDeUFKUVF4cUlRWWdFU0FUYWlFUklBZEJCR29pQnlBRUtBS0FBU0lCUVh4eFNRMEFDd3dCQzBFRUlBRkJmSEVpQmlBR1FRUk5HMEVCYXlJR1FYeHhRUVJxSVFjZ0NTQUdRUUYwUVhoeGFrRVVhaUVHQ3lBRUlBZzJBZ2dnQkNBRE5nSUVJQVFnQWpZQ0FDQUVJQXcyQW1nZ0VFVU5BU0FCSUFkTkRRRURRQ0FCSUFkR0lWSkJBQ0VJSUFjaEFTQlNSUVJBQTBBZ0JDQUdJQkVnQ0NBUWJFRUNkR29nRFNBSUlBUW9BbnhCQW1wQkFSQlpJQWhCQVdvaUNDQUVLQUtBQVNJQklBZHJTUTBBQ3dzZ0JrRUVhaUVHSUJGQkJHb2hFU0FYUVFGcUloY2dFRWNOQUFzTUFRc0NRQ0FCUVFSSkRRQWdFQVJBUVFBZ0RXc2hGQ0FFUVJ4cUlRVWdFRUVNYkNFVElCQkJBM1FoRlFOQVFRQWhDd05BSUFZaUNTZ0NBQ0lHQkVBQ1FDQUdRWkNBZ0FGeERRQWdCa0h2QTNFaUFVVU5BQ0FESUFVZ0JDZ0NiQ0FCYWkwQUFFRUNkR29pRENnQ0FDSUtLQUlBSWdGcklRTUNmeUFCSUFKQkVIWk5CRUFnQWlBQlFSQjBheUVDSUFOQmdJQUNjUVJBSUFvb0FnUU1BZ3NnQ2lnQ0JDRU9JQXdnQ2tFTVFRZ2dBU0FEU3lJU0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaENpQUlMUUFCSVFFZ0NDMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUlJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0NqWUNFQ0FCUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRZ0xJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnRGtVZ0RpQVNHd3dCQ3lBS0tBSUVJUTRnRENBS1FRaEJEQ0FCSUFOTEloSWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBUW9BaEFpQ0VFQmFpRUtJQWd0QUFFaEF5QUlMUUFBUWY4QlJ3UkFJQVFnQ2pZQ0VFRUlJUWdnQTBFSWRDQUNhaUVDREFFTElBTkJqd0ZOQkVBZ0JDQUtOZ0lRSUFOQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXNnQ0VFQmF5RUlJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRTWdEaUFPUlNBU0d3c0VmeUFESUFVZ0NTZ0NCRUVSZGtFRWNTQUpRUVJySWc0b0FnQkJFM1pCQVhFZ0JrRU9ka0VRY1NBR1FSQjJRY0FBY1NBR1Fhb0JjWEp5Y25JaUVrSFF1UUZxTFFBQVFRSjBhaUlNS0FJQUlnb29BZ0FpQVdzaEF5QVNRZEM3QVdvdEFBQWhHQ0FSSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlLR3pZQ0FDQU9JQTRvQWdCQklISTJBZ0FnQ1NBSktBSUVRUWh5TmdJRUlBbEJmaUFFS0FKOGEwRUNkR29pQVNBQktBSUVRWUNBQW5JMkFnUWdBU0FCS0FJQUlBcEJIM1J5UVlDQUJISTJBZ0FnQVVFRWF5SUJJQUVvQWdCQmdJQUljallDQUNBR0lBcEJFM1J5UVJCeUJTQUdDMEdBZ0lBQmNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBR1FmZ2VjVVVOQUNBRElBVWdCQ2dDYkNBR1FRTjJJaEpCN3dOeGFpMEFBRUVDZEdvaURDZ0NBQ0lLS0FJQUlnRnJJUU1DZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VPSUF3Z0NrRU1RUWdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0RrVWdEaUFZR3d3QkN5QUtLQUlFSVE0Z0RDQUtRUWhCRENBQklBTkxJaGdiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRGlBT1JTQVlHd3NFZnlBRElBVWdDU2dDQkVFVWRrRUVjU0FKUVFScklnNG9BZ0JCRm5aQkFYRWdCa0VQZGtFUWNTQUdRUk4yUWNBQWNTQVNRYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ29vQWdBaUFXc2hBeUFTUWRDN0FXb3RBQUFoR0NBUklCQkJBblJxSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlCR3pZQ0FDQU9JQTRvQWdCQmdBSnlOZ0lBSUFrZ0NTZ0NCRUhBQUhJMkFnUWdCaUFCUVJaMGNrR0FBWElGSUFZTFFZQ0FnQWh5SVFZTEFrQWdCa0dBaUlEQUFIRU5BQ0FHUWNEM0FYRkZEUUFnQXlBRklBUW9BbXdnQmtFR2RpSVNRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDaWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJUUVJBSUFJZ0FVRVFkR3NoQWlBRFFZQ0FBbkVFUUNBS0tBSUVEQUlMSUFvb0FnUWhEaUFNSUFwQkRFRUlJQUVnQTBzaUdCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFQklBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUE1RklBNGdHQnNNQVFzZ0NpZ0NCQ0VPSUF3Z0NrRUlRUXdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRTWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWd3QkN5QURRWThCVFFSQUlBUWdDallDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRURJQTRnRGtVZ0dCc0xCSDhnQXlBRklBa29BZ1JCRjNaQkJIRWdDVUVFYXlJT0tBSUFRUmwyUVFGeElBWkJFblpCRUhFZ0JrRVdka0hBQUhFZ0VrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pRENnQ0FDSUtLQUlBSWdGcklRTWdFa0hRdXdGcUxRQUFJUmdnRVNBVmFpQVVJQTBDZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VTSUF3Z0NrRU1RUWdnQVNBRFN5SWJHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0VrVWdFaUFiR3d3QkN5QUtLQUlFSVJJZ0RDQUtRUWhCRENBQklBTkxJaHNiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRWlBU1JTQWJHd3NnR0hNaUFSczJBZ0FnRGlBT0tBSUFRWUFRY2pZQ0FDQUpJQWtvQWdSQmdBUnlOZ0lFSUFZZ0FVRVpkSEpCZ0FoeUJTQUdDMEdBZ0lEQUFISWhCZ3NDUUNBR1FZREFnSUFFY1EwQUlBWkJnTHdQY1VVTkFDQURJQVVnQkNnQ2JDQUdRUWwySWhKQjd3TnhhaTBBQUVFQ2RHb2lEQ2dDQUNJS0tBSUFJZ0ZySVFNQ2Z5QUJJQUpCRUhaTkJFQWdBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFT0lBd2dDa0VNUVFnZ0FTQURTeUlZRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ2lBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dEa1VnRGlBWUd3d0JDeUFLS0FJRUlRNGdEQ0FLUVFoQkRDQUJJQU5MSWhnYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQXlBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBMEVJZENBQ2FpRUNEQUVMSUFOQmp3Rk5CRUFnQkNBS05nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFNZ0RpQU9SU0FZR3dzRWZ5QURJQVVnQ1NnQ0JFRWFka0VFY1NBSlFRUnJJZzRvQWdCQkhIWkJBWEVnQmtFVmRrRVFjU0FHUVJsMlFjQUFjU0FTUWFvQmNYSnljbklpRWtIUXVRRnFMUUFBUVFKMGFpSU1LQUlBSWdvb0FnQWlBV3NoQXlBU1FkQzdBV290QUFBaEdDQVJJQk5xSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlLR3pZQ0FDQU9JQTRvQWdCQmdJQUJjallDQUNBSklBa29BZ1JCZ0NCeU5nSUVJQVFvQW54QkFuUWdDV29pQVNBQktBSUVRUVJ5TmdJRUlBRWdBU2dDREVFQmNqWUNEQ0FCSUFFb0FnZ2dDa0VTZEhKQkFuSTJBZ2dnQmlBS1FSeDBja0dBd0FCeUJTQUdDMEdBZ0lDQUJISWhCZ3NnQ1NBR05nSUFDeUFKUVFScUlRWWdFVUVFYWlFUklBdEJBV29pQ3lBUVJ3MEFDeUFKUVF4cUlRWWdFU0FUYWlFUklBZEJCR29pQnlBRUtBS0FBU0lCUVh4eFNRMEFDd3dCQzBFRUlBRkJmSEVpQmlBR1FRUk5HMEVCYXlJR1FYeHhRUVJxSVFjZ0NTQUdRUUYwUVhoeGFrRVVhaUVHQ3lBRUlBZzJBZ2dnQkNBRE5nSUVJQVFnQWpZQ0FDQUVJQXcyQW1nZ0VFVU5BQ0FCSUFkTkRRQURRQ0FCSUFkR0lWTkJBQ0VJSUFjaEFTQlRSUVJBQTBBZ0JDQUdJQkVnQ0NBUWJFRUNkR29nRFNBSUlBUW9BbnhCQW1wQkFCQlpJQWhCQVdvaUNDQUVLQUtBQVNJQklBZHJTUTBBQ3dzZ0JrRUVhaUVHSUJGQkJHb2hFU0FYUVFGcUloY2dFRWNOQUFzTERBSUxBMEJCQUNFWEEwQWdBU0VKSUFZaUJ5Z0NBQ0lHQkVBQ1FDQUdRWkNBZ0FGeERRQWdCa0h2QTNFaUFVVU5BQ0FESUJBZ0JDZ0NiQ0FCYWkwQUFFRUNkR29pRENnQ0FDSUxLQUlBSWdGcklRTUNmeUFCSUFKQkVIWkxCRUFnQ3lnQ0JDRUtJQXdnQzBFSVFRd2dBU0FEU3lJVUcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFNZ0NDMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQURRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRElBb2dDa1VnRkJzTUFRc2dBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NVVUVRQ0FMS0FJRUlRb2dEQ0FMUVF4QkNDQUJJQU5MSWhRYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFTElBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0F3Q0N5QUVJQXMyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hDQXdCQ3lBRUlBczJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFLUlNBS0lCUWJEQUVMSUFzb0FnUUxCSDhnQXlBUUlBY29BZ1JCRVhaQkJIRWdCMEVFYXlJS0tBSUFRUk4yUVFGeElBWkJEblpCRUhFZ0JrRVFka0hBQUhFZ0JrR3FBWEZ5Y25KeUloUkIwTGtCYWkwQUFFRUNkR29pRENnQ0FDSUxLQUlBSWdGcklRTWdGRUhRdXdGcUxRQUFJUk1nQ1NBRklCRUNmeUFCSUFKQkVIWkxCRUFnQ3lnQ0JDRVVJQXdnQzBFSVFRd2dBU0FEU3lJT0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFNZ0NDMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQURRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRElCUWdGRVVnRGhzTUFRc2dBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NVVUVRQ0FMS0FJRUlSUWdEQ0FMUVF4QkNDQUJJQU5MSWc0YmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFTElBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0F3Q0N5QUVJQXMyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hDQXdCQ3lBRUlBczJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFVUlNBVUlBNGJEQUVMSUFzb0FnUUxJQk56SWdFYk5nSUFJQW9nQ2lnQ0FFRWdjallDQUNBSElBY29BZ1JCQ0hJMkFnUWdCaUFCUVJOMGNrRVFjZ1VnQmd0QmdJQ0FBWEloQmdzQ1FDQUdRWUNCZ0FoeERRQWdCa0g0SG5GRkRRQWdBeUFRSUFRb0Ftd2dCa0VEZGlJVVFlOERjV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFREFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaENpQU1JQXRCQ0VFTUlBRWdBMHNpRXh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBS0lBcEZJQk1iREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFS0lBd2dDMEVNUVFnZ0FTQURTeUlURzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dDa1VnQ2lBVEd3d0JDeUFMS0FJRUN3Ui9JQU1nRUNBSEtBSUVRUlIyUVFSeElBZEJCR3NpQ2lnQ0FFRVdka0VCY1NBR1FROTJRUkJ4SUFaQkUzWkJ3QUJ4SUJSQnFnRnhjbkp5Y2lJVVFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFRElCUkIwTHNCYWkwQUFDRVRJQWtnQlNBUkFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaEZDQU1JQXRCQ0VFTUlBRWdBMHNpRGh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBVUlCUkZJQTRiREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFVUlBd2dDMEVNUVFnZ0FTQURTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dGRVVnRkNBT0d3d0JDeUFMS0FJRUN5QVRjeUlCR3pZQ2dBSWdDaUFLS0FJQVFZQUNjallDQUNBSElBY29BZ1JCd0FCeU5nSUVJQVlnQVVFV2RISkJnQUZ5QlNBR0MwR0FnSUFJY2lFR0N3SkFJQVpCZ0lpQXdBQnhEUUFnQmtIQTl3RnhSUTBBSUFNZ0VDQUVLQUpzSUFaQkJuWWlGRUh2QTNGcUxRQUFRUUowYWlJTUtBSUFJZ3NvQWdBaUFXc2hBd0ovSUFFZ0FrRVFka3NFUUNBTEtBSUVJUW9nRENBTFFRaEJEQ0FCSUFOTEloTWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBUW9BaEFpQ0VFQmFpRUxJQWd0QUFFaEF5QUlMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBd0NDeUFFSUFzMkFoQWdBMEVKZENBQ2FpRUNRUWNoQ0F3QkN5QUVJQXMyQWhCQkNDRUlJQU5CQ0hRZ0Ftb2hBZ3NnQ0VFQmF5RUlJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRTWdDaUFLUlNBVEd3d0JDeUFDSUFGQkVIUnJJUUlnQTBHQWdBSnhSUVJBSUFzb0FnUWhDaUFNSUF0QkRFRUlJQUVnQTBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBVUVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFwRklBb2dFeHNNQVFzZ0N5Z0NCQXNFZnlBRElCQWdCeWdDQkVFWGRrRUVjU0FIUVFScklnb29BZ0JCR1haQkFYRWdCa0VTZGtFUWNTQUdRUloyUWNBQWNTQVVRYW9CY1hKeWNuSWlGRUhRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ3NvQWdBaUFXc2hBeUFVUWRDN0FXb3RBQUFoRXlBSklBVWdFUUovSUFFZ0FrRVFka3NFUUNBTEtBSUVJUlFnRENBTFFRaEJEQ0FCSUFOTElnNGJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBUW9BaEFpQ0VFQmFpRUxJQWd0QUFFaEF5QUlMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBd0NDeUFFSUFzMkFoQWdBMEVKZENBQ2FpRUNRUWNoQ0F3QkN5QUVJQXMyQWhCQkNDRUlJQU5CQ0hRZ0Ftb2hBZ3NnQ0VFQmF5RUlJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRTWdGQ0FVUlNBT0d3d0JDeUFDSUFGQkVIUnJJUUlnQTBHQWdBSnhSUVJBSUFzb0FnUWhGQ0FNSUF0QkRFRUlJQUVnQTBzaURodHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBVUVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUJSRklCUWdEaHNNQVFzZ0N5Z0NCQXNnRTNNaUFSczJBb0FFSUFvZ0NpZ0NBRUdBRUhJMkFnQWdCeUFIS0FJRVFZQUVjallDQkNBR0lBRkJHWFJ5UVlBSWNnVWdCZ3RCZ0lDQXdBQnlJUVlMQWtBZ0JrR0F3SUNBQkhFTkFDQUdRWUM4RDNGRkRRQWdBeUFRSUFRb0Ftd2dCa0VKZGlJVVFlOERjV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFREFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaENpQU1JQXRCQ0VFTUlBRWdBMHNpRXh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBS0lBcEZJQk1iREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFS0lBd2dDMEVNUVFnZ0FTQURTeUlURzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dDa1VnQ2lBVEd3d0JDeUFMS0FJRUN3Ui9JQU1nRUNBSEtBSUVRUnAyUVFSeElBZEJCR3NpQ2lnQ0FFRWNka0VCY1NBR1FSVjJRUkJ4SUFaQkdYWkJ3QUJ4SUJSQnFnRnhjbkp5Y2lJVVFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFRElCUkIwTHNCYWkwQUFDRVRJQWtnQlNBUkFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaEZDQU1JQXRCQ0VFTUlBRWdBMHNpRGh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBVUlCUkZJQTRiREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFVUlBd2dDMEVNUVFnZ0FTQURTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dGRVVnRkNBT0d3d0JDeUFMS0FJRUN5QVRjeUlCR3pZQ2dBWWdDaUFLS0FJQVFZQ0FBWEkyQWdBZ0J5QUhLQUlFUVlBZ2NqWUNCQ0FISUFjb0FvUUNRUVJ5TmdLRUFpQUhJQWNvQW93Q1FRRnlOZ0tNQWlBSElBY29Bb2dDSUFGQkVuUnlRUUp5TmdLSUFpQUdJQUZCSEhSeVFZREFBSElGSUFZTFFZQ0FnSUFFY2lFR0N5QUhJQVkyQWdBTElBZEJCR29oQmlBSlFRUnFJUUVnRjBFQmFpSVhRY0FBUncwQUN5QUhRUXhxSVFZZ0NVR0VCbW9oQVNBTlFUeEpJVlFnRFVFRWFpRU5JRlFOQUFzTElBUWdDRFlDQ0NBRUlBTTJBZ1FnQkNBQ05nSUFJQVFnRERZQ2FBc01BZ3NnSWdSQVFRRWdHWFJCQVhZaENTQUVLQUo4SWhGQkFuUWlEQ0FFS0FKNGFrRU1haUVCSUFRb0FuUWhCa0VBSVEwZ0JDZ0NnQUVpQTBFRVR3UkFJQkZGRFFRZ0VVRURiQ0VGSUJGQkFYUWhDMEVBSUFscklRSURRQ0FMUVFKMElRcEJBQ0VEQTBBQ1FDQUJJZ2NvQWdBaUFVVU5BQ0FCUVpDQWdBRnhRUkJHQkVBZ0JDZ0NBQ0VCQWtBZ0JDZ0NDQ0lRRFFBZ0FVSC9BVVloRUNBRUtBSVFJZ2d0QUFBaEFRSkFJQkJGQkVBZ0JDQUJOZ0lBSUFRZ0NFRUJhallDRUF3QkN5QUJRWThCVFFSQUlBUWdBVFlDQUNBRUlBaEJBV28yQWhCQkJ5RVFEQUlMUWY4QklRRWdCRUgvQVRZQ0FBdEJDQ0VRQ3lBRUlCQkJBV3NpQ0RZQ0NDQUdJQUlnQ1NBQklBaDJRUUZ4SUFZb0FnQWlBVUVmZGtZYklBRnFOZ0lBSUFjZ0J5Z0NBRUdBZ01BQWNpSUJOZ0lBQ3lBQlFZQ0JnQWh4UVlBQlJnUkFJQVFvQWdBaEFRSkFJQVFvQWdnaUVBMEFJQUZCL3dGR0lSQWdCQ2dDRUNJSUxRQUFJUUVDUUNBUVJRUkFJQVFnQVRZQ0FDQUVJQWhCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FJUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGcklnZzJBZ2dnQmlBTWFpSVFJQUlnQ1NBQklBaDJRUUZ4SUJBb0FnQWlBVUVmZGtZYklBRnFOZ0lBSUFjZ0J5Z0NBRUdBZ0lBRWNpSUJOZ0lBQ3lBQlFZQ0lnTUFBY1VHQUNFWUVRQ0FFS0FJQUlRRUNRQ0FFS0FJSUloQU5BQ0FCUWY4QlJpRVFJQVFvQWhBaUNDMEFBQ0VCQWtBZ0VFVUVRQ0FFSUFFMkFnQWdCQ0FJUVFGcU5nSVFEQUVMSUFGQmp3Rk5CRUFnQkNBQk5nSUFJQVFnQ0VFQmFqWUNFRUVISVJBTUFndEIvd0VoQVNBRVFmOEJOZ0lBQzBFSUlSQUxJQVFnRUVFQmF5SUlOZ0lJSUFZZ0Ntb2lFQ0FDSUFrZ0FTQUlka0VCY1NBUUtBSUFJZ0ZCSDNaR0d5QUJhallDQUNBSElBY29BZ0JCZ0lDQUlISWlBVFlDQUFzZ0FVR0F3SUNBQkhGQmdNQUFSdzBBSUFZZ0JVRUNkR29oRUNBRUtBSUFJUUVDUUNBRUtBSUlJZ2dOQUNBQlFmOEJSaUVVSUFRb0FoQWlDQzBBQUNFQkFrQWdGRVVFUUNBRUlBRTJBZ0FnQkNBSVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0JDQUJOZ0lBSUFRZ0NFRUJhallDRUVFSElRZ01BZ3RCL3dFaEFTQUVRZjhCTmdJQUMwRUlJUWdMSUFRZ0NFRUJheUlJTmdJSUlCQWdBaUFKSUFFZ0NIWkJBWEVnRUNnQ0FDSUJRUjkyUmhzZ0FXbzJBZ0FnQnlBSEtBSUFRWUNBZ0lBQ2NqWUNBQXNnQmtFRWFpRUdJQWRCQkdvaEFTQURRUUZxSWdNZ0VVY05BQXNnQjBFTWFpRUJJQVlnQlVFQ2RHb2hCaUFOUVFScUlnMGdCQ2dDZ0FFaUEwRjhjVWtOQUFzTElBTWdEVTBOQWlBUlJRMENRUUFoRTBFQUlBbHJJUVVnQXlFSEEwQUNRQ0FISUExR0JFQWdEU0VIREFFTElBRW9BZ0FoRUVFQUlRSURRRUdRZ0lBQklBSkJBMndpQjNRZ0VIRkJFQ0FIZEVZRVFDQUdJQUlnRVd4QkFuUnFJUkFnQkNnQ0FDRURBa0FnQkNnQ0NDSUlEUUFnQTBIL0FVY2hEQ0FFS0FJUUlnZ3RBQUFoQXdKQUlBeEZCRUFnQTBHUUFVOEVRRUgvQVNFRElBUkIvd0UyQWdBTUFnc2dCQ0FETmdJQUlBUWdDRUVCYWpZQ0VFRUhJUWdNQWdzZ0JDQUROZ0lBSUFRZ0NFRUJhallDRUF0QkNDRUlDeUFFSUFoQkFXc2lDRFlDQ0NBUUlBVWdDU0FESUFoMlFRRnhJQkFvQWdBaUEwRWZka1liSUFOcU5nSUFJQUVnQVNnQ0FFR0FnTUFBSUFkMGNpSVFOZ0lBSUFRb0FvQUJJUU1MSUFNaEJ5QUNRUUZxSWdJZ0F5QU5hMGtOQUFzTElBWkJCR29oQmlBQlFRUnFJUUVnRTBFQmFpSVRJQkZIRFFBTERBSUxJQVFvQW5naENDQUVLQUowSVFjZ0JDZ0NnQUVoQXdKQUlBUW9BbndpREVIQUFFY05BQ0FEUWNBQVJ3MEFJQWhCakFKcUlRTkJBQ0VUUVFCQkFTQVpkRUVCZGlJRmF5RU1JQVFvQWdnaEFpQUVLQUlFSVFZZ0JDZ0NBQ0VCSUFRb0FtZ2hEUU5BUVFBaENBTkFJQWNoQ1NBREloQW9BZ0FpQndSQUlBTWhWU0FIUVpDQWdBRnhRUkJHQkVBZ0JpQVBRUkJCRDBFT0lBZEI3d054R3lBSFFZQ0F3QUJ4RzBFQ2RHb2lEU2dDQUNJUktBSUFJZ05ySVFZQ2Z5QURJQUZCRUhaTEJFQWdFU2dDQkNFTElBMGdFVUVJUVF3Z0F5QUdTeUlLRzJvb0FnQTJBZ0FEUUFKQUlBSU5BQ0FFS0FJUUlnSkJBV29oRVNBQ0xRQUJJUVlnQWkwQUFFSC9BVVlFUUNBR1FaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlNQWdzZ0JDQVJOZ0lRSUFaQkNYUWdBV29oQVVFSElRSU1BUXNnQkNBUk5nSVFRUWdoQWlBR1FRaDBJQUZxSVFFTElBSkJBV3NoQWlBQlFRRjBJUUVnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVHSUFzZ0MwVWdDaHNNQVFzZ0FTQURRUkIwYXlFQklBWkJnSUFDY1VVRVFDQVJLQUlFSVFzZ0RTQVJRUXhCQ0NBRElBWkxJZ29iYWlnQ0FEWUNBQU5BQWtBZ0FnMEFJQVFvQWhBaUFrRUJhaUVSSUFJdEFBRWhBeUFDTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3dDQ3lBRUlCRTJBaEFnQTBFSmRDQUJhaUVCUVFjaEFnd0JDeUFFSUJFMkFoQkJDQ0VDSUFOQkNIUWdBV29oQVFzZ0FrRUJheUVDSUFGQkFYUWhBU0FHUVFGMElnWkJnSUFDU1EwQUN5QUxSU0FMSUFvYkRBRUxJQkVvQWdRTElRTWdDU0FNSUFVZ0F5QUpLQUlBSWhGQkgzWkdHeUFSYWpZQ0FDQUhRWUNBd0FCeUlRY0xJQWRCZ0lHQUNIRkJnQUZHQkVBZ0JpQVBRUkJCRDBFT0lBZEIrQjV4R3lBSFFZQ0FnQVJ4RzBFQ2RHb2lEU2dDQUNJUktBSUFJZ05ySVFZQ2Z5QURJQUZCRUhaTEJFQWdFU2dDQkNFTElBMGdFVUVJUVF3Z0F5QUdTeUlLRzJvb0FnQTJBZ0FEUUFKQUlBSU5BQ0FFS0FJUUlnSkJBV29oRVNBQ0xRQUJJUVlnQWkwQUFFSC9BVVlFUUNBR1FaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlNQWdzZ0JDQVJOZ0lRSUFaQkNYUWdBV29oQVVFSElRSU1BUXNnQkNBUk5nSVFRUWdoQWlBR1FRaDBJQUZxSVFFTElBSkJBV3NoQWlBQlFRRjBJUUVnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVHSUFzZ0MwVWdDaHNNQVFzZ0FTQURRUkIwYXlFQklBWkJnSUFDY1VVRVFDQVJLQUlFSVFzZ0RTQVJRUXhCQ0NBRElBWkxJZ29iYWlnQ0FEWUNBQU5BQWtBZ0FnMEFJQVFvQWhBaUFrRUJhaUVSSUFJdEFBRWhBeUFDTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3dDQ3lBRUlCRTJBaEFnQTBFSmRDQUJhaUVCUVFjaEFnd0JDeUFFSUJFMkFoQkJDQ0VDSUFOQkNIUWdBV29oQVFzZ0FrRUJheUVDSUFGQkFYUWhBU0FHUVFGMElnWkJnSUFDU1EwQUN5QUxSU0FMSUFvYkRBRUxJQkVvQWdRTElRTWdDU0FNSUFVZ0F5QUpLQUtBQWlJUlFSOTJSaHNnRVdvMkFvQUNJQWRCZ0lDQUJISWhCd3NnQjBHQWlJREFBSEZCZ0FoR0JFQWdCaUFQUVJCQkQwRU9JQWRCd1BjQmNSc2dCMEdBZ0lBZ2NSdEJBblJxSWcwb0FnQWlFU2dDQUNJRGF5RUdBbjhnQXlBQlFSQjJTd1JBSUJFb0FnUWhDeUFOSUJGQkNFRU1JQU1nQmtzaUNodHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0JDZ0NFQ0lDUVFGcUlSRWdBaTBBQVNFR0lBSXRBQUJCL3dGR0JFQWdCa0dRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0RBSUxJQVFnRVRZQ0VDQUdRUWwwSUFGcUlRRkJCeUVDREFFTElBUWdFVFlDRUVFSUlRSWdCa0VJZENBQmFpRUJDeUFDUVFGcklRSWdBVUVCZENFQklBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEJpQUxJQXRGSUFvYkRBRUxJQUVnQTBFUWRHc2hBU0FHUVlDQUFuRkZCRUFnRVNnQ0JDRUxJQTBnRVVFTVFRZ2dBeUFHU3lJS0cyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ0pCQVdvaEVTQUNMUUFCSVFNZ0FpMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTUFnc2dCQ0FSTmdJUUlBTkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0JDQVJOZ0lRUVFnaEFpQURRUWgwSUFGcUlRRUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JrRUJkQ0lHUVlDQUFra05BQXNnQzBVZ0N5QUtHd3dCQ3lBUktBSUVDeUVESUFrZ0RDQUZJQU1nQ1NnQ2dBUWlFVUVmZGtZYklCRnFOZ0tBQkNBSFFZQ0FnQ0J5SVFjTElGVWdCMEdBd0lDQUJIRkJnTUFBUmdSL0lBWWdEMEVRUVE5QkRpQUhRWUM4RDNFYklBZEJnSUNBZ0FKeEcwRUNkR29pRFNnQ0FDSVJLQUlBSWdOcklRWUNmeUFESUFGQkVIWkxCRUFnRVNnQ0JDRUxJQTBnRVVFSVFRd2dBeUFHU3lJS0cyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ0pCQVdvaEVTQUNMUUFCSVFZZ0FpMEFBRUgvQVVZRVFDQUdRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTUFnc2dCQ0FSTmdJUUlBWkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0JDQVJOZ0lRUVFnaEFpQUdRUWgwSUFGcUlRRUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFR0lBc2dDMFVnQ2hzTUFRc2dBU0FEUVJCMGF5RUJJQVpCZ0lBQ2NVVUVRQ0FSS0FJRUlRc2dEU0FSUVF4QkNDQURJQVpMSWdvYmFpZ0NBRFlDQUFOQUFrQWdBZzBBSUFRb0FoQWlBa0VCYWlFUklBSXRBQUVoQXlBQ0xRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUZCZ1A0RGFpRUJRUWdoQWd3Q0N5QUVJQkUyQWhBZ0EwRUpkQ0FCYWlFQlFRY2hBZ3dCQ3lBRUlCRTJBaEJCQ0NFQ0lBTkJDSFFnQVdvaEFRc2dBa0VCYXlFQ0lBRkJBWFFoQVNBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFMUlNBTElBb2JEQUVMSUJFb0FnUUxJUU1nQ1NBTUlBVWdBeUFKS0FLQUJpSVJRUjkyUmhzZ0VXbzJBb0FHSUFkQmdJQ0FnQUp5QlNBSEN6WUNBQXNnRUVFRWFpRURJQWxCQkdvaEJ5QUlRUUZxSWdoQndBQkhEUUFMSUJCQkRHb2hBeUFKUVlRR2FpRUhJQk5CUEVraFZpQVRRUVJxSVJNZ1ZnMEFDeUFFSUFJMkFnZ2dCQ0FHTmdJRUlBUWdBVFlDQUNBRUlBMDJBbWdNQWd0QkFTQVpkRUVCZGlFTElBZ2dERUVDZENJT2FrRU1haUVKSUFRb0FnZ2hBaUFFS0FJRUlRWWdCQ2dDQUNFQklBUW9BbWdoRFVFQUlSRUNRQ0FEUVFSSkRRQWdEQVJBSUF4QkEyd2hGQ0FNUVFGMElSZEJBQ0FMYXlFS0EwQWdGMEVDZENFU1FRQWhDQU5BSUFraUJTZ0NBQ0lRQkVBZ0VFR1FnSUFCY1VFUVJnUkFJQVlnRDBFUVFROUJEaUFRUWU4RGNSc2dFRUdBZ01BQWNSdEJBblJxSWcwb0FnQWlDU2dDQUNJRGF5RUdBbjhnQXlBQlFSQjJUUVJBSUFFZ0EwRVFkR3NoQVNBR1FZQ0FBbkVFUUNBSktBSUVEQUlMSUFrb0FnUWhFeUFOSUFsQkRFRUlJQU1nQmtzaUZSdHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0JDZ0NFQ0lKUVFGcUlRSWdDUzBBQVNFRElBa3RBQUJCL3dGSEJFQWdCQ0FDTmdJUVFRZ2hBaUFEUVFoMElBRnFJUUVNQVFzZ0EwR1BBVTBFUUNBRUlBSTJBaEFnQTBFSmRDQUJhaUVCUVFjaEFnd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FVR0EvZ05xSVFGQkNDRUNDeUFDUVFGcklRSWdBVUVCZENFQklBWkJBWFFpQmtHQWdBSkpEUUFMSUJORklCTWdGUnNNQVFzZ0NTZ0NCQ0VUSUEwZ0NVRUlRUXdnQXlBR1N5SVZHMm9vQWdBMkFnQURRQUpBSUFJTkFDQUVLQUlRSWdsQkFXb2hBaUFKTFFBQklRWWdDUzBBQUVIL0FVY0VRQ0FFSUFJMkFoQkJDQ0VDSUFaQkNIUWdBV29oQVF3QkN5QUdRWThCVFFSQUlBUWdBallDRUNBR1FRbDBJQUZxSVFGQkJ5RUNEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlMSUFKQkFXc2hBaUFCUVFGMElRRWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUdJQk1nRTBVZ0ZSc0xJUU1nQnlBS0lBc2dBeUFIS0FJQUlnbEJIM1pHR3lBSmFqWUNBQ0FRUVlDQXdBQnlJUkFMSUJCQmdJR0FDSEZCZ0FGR0JFQWdCaUFQUVJCQkQwRU9JQkJCK0I1eEd5QVFRWUNBZ0FSeEcwRUNkR29pRFNnQ0FDSUpLQUlBSWdOcklRWUNmeUFESUFGQkVIWk5CRUFnQVNBRFFSQjBheUVCSUFaQmdJQUNjUVJBSUFrb0FnUU1BZ3NnQ1NnQ0JDRVRJQTBnQ1VFTVFRZ2dBeUFHU3lJVkcyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ2xCQVdvaEFpQUpMUUFCSVFNZ0NTMEFBRUgvQVVjRVFDQUVJQUkyQWhCQkNDRUNJQU5CQ0hRZ0FXb2hBUXdCQ3lBRFFZOEJUUVJBSUFRZ0FqWUNFQ0FEUVFsMElBRnFJUUZCQnlFQ0RBRUxJQVFnQkNnQ0RFRUJhallDRENBQlFZRCtBMm9oQVVFSUlRSUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JrRUJkQ0lHUVlDQUFra05BQXNnRTBVZ0V5QVZHd3dCQ3lBSktBSUVJUk1nRFNBSlFRaEJEQ0FESUFaTEloVWJhaWdDQURZQ0FBTkFBa0FnQWcwQUlBUW9BaEFpQ1VFQmFpRUNJQWt0QUFFaEJpQUpMUUFBUWY4QlJ3UkFJQVFnQWpZQ0VFRUlJUUlnQmtFSWRDQUJhaUVCREFFTElBWkJqd0ZOQkVBZ0JDQUNOZ0lRSUFaQkNYUWdBV29oQVVFSElRSU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3NnQWtFQmF5RUNJQUZCQVhRaEFTQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRWWdFeUFUUlNBVkd3c2hBeUFISUE1cUlna2dDaUFMSUFNZ0NTZ0NBQ0lKUVI5MlJoc2dDV28yQWdBZ0VFR0FnSUFFY2lFUUN5QVFRWUNJZ01BQWNVR0FDRVlFUUNBR0lBOUJFRUVQUVE0Z0VFSEE5d0Z4R3lBUVFZQ0FnQ0J4RzBFQ2RHb2lEU2dDQUNJSktBSUFJZ05ySVFZQ2Z5QURJQUZCRUhaTkJFQWdBU0FEUVJCMGF5RUJJQVpCZ0lBQ2NRUkFJQWtvQWdRTUFnc2dDU2dDQkNFVElBMGdDVUVNUVFnZ0F5QUdTeUlWRzJvb0FnQTJBZ0FEUUFKQUlBSU5BQ0FFS0FJUUlnbEJBV29oQWlBSkxRQUJJUU1nQ1MwQUFFSC9BVWNFUUNBRUlBSTJBaEJCQ0NFQ0lBTkJDSFFnQVdvaEFRd0JDeUFEUVk4QlRRUkFJQVFnQWpZQ0VDQURRUWwwSUFGcUlRRkJCeUVDREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTElBSkJBV3NoQWlBQlFRRjBJUUVnQmtFQmRDSUdRWUNBQWtrTkFBc2dFMFVnRXlBVkd3d0JDeUFKS0FJRUlSTWdEU0FKUVFoQkRDQURJQVpMSWhVYmFpZ0NBRFlDQUFOQUFrQWdBZzBBSUFRb0FoQWlDVUVCYWlFQ0lBa3RBQUVoQmlBSkxRQUFRZjhCUndSQUlBUWdBallDRUVFSUlRSWdCa0VJZENBQmFpRUJEQUVMSUFaQmp3Rk5CRUFnQkNBQ05nSVFJQVpCQ1hRZ0FXb2hBVUVISVFJTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFGQmdQNERhaUVCUVFnaEFnc2dBa0VCYXlFQ0lBRkJBWFFoQVNBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFESVFZZ0V5QVRSU0FWR3dzaEF5QUhJQkpxSWdrZ0NpQUxJQU1nQ1NnQ0FDSUpRUjkyUmhzZ0NXbzJBZ0FnRUVHQWdJQWdjaUVRQ3lBRklCQkJnTUNBZ0FSeFFZREFBRVlFZnlBR0lBOUJFRUVQUVE0Z0VFR0F2QTl4R3lBUVFZQ0FnSUFDY1J0QkFuUnFJZzBvQWdBaUNTZ0NBQ0lEYXlFR0FuOGdBeUFCUVJCMlRRUkFJQUVnQTBFUWRHc2hBU0FHUVlDQUFuRUVRQ0FKS0FJRURBSUxJQWtvQWdRaEV5QU5JQWxCREVFSUlBTWdCa3NpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUNEUUFnQkNnQ0VDSUpRUUZxSVFJZ0NTMEFBU0VESUFrdEFBQkIvd0ZIQkVBZ0JDQUNOZ0lRUVFnaEFpQURRUWgwSUFGcUlRRU1BUXNnQTBHUEFVMEVRQ0FFSUFJMkFoQWdBMEVKZENBQmFpRUJRUWNoQWd3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0N5QUNRUUZySVFJZ0FVRUJkQ0VCSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQk5GSUJNZ0ZSc01BUXNnQ1NnQ0JDRVRJQTBnQ1VFSVFRd2dBeUFHU3lJVkcyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ2xCQVdvaEFpQUpMUUFCSVFZZ0NTMEFBRUgvQVVjRVFDQUVJQUkyQWhCQkNDRUNJQVpCQ0hRZ0FXb2hBUXdCQ3lBR1FZOEJUUVJBSUFRZ0FqWUNFQ0FHUVFsMElBRnFJUUZCQnlFQ0RBRUxJQVFnQkNnQ0RFRUJhallDRENBQlFZRCtBMm9oQVVFSUlRSUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFR0lCTWdFMFVnRlJzTElRTWdCeUFVUVFKMGFpSUpJQW9nQ3lBRElBa29BZ0FpQ1VFZmRrWWJJQWxxTmdJQUlCQkJnSUNBZ0FKeUJTQVFDellDQUFzZ0JVRUVhaUVKSUFkQkJHb2hCeUFJUVFGcUlnZ2dERWNOQUFzZ0JVRU1haUVKSUFjZ0ZFRUNkR29oQnlBUlFRUnFJaEVnQkNnQ2dBRWlBMEY4Y1VrTkFBc01BUXRCQkNBRFFYeHhJZ2tnQ1VFRVRSdEJBV3NpQ1VGOGNVRUVhaUVSSUFnZ0NVRUJkRUY0Y1dwQkZHb2hDUXNnQkNBQ05nSUlJQVFnQmpZQ0JDQUVJQUUyQWdBZ0JDQU5OZ0pvSUF4RkRRRWdBeUFSVFEwQlFRQWhFMEVBSUF0cklSUWdBeUVCQTBBQ1FDQUJJQkZHQkVBZ0VTRUJEQUVMSUFrb0FnQWhBa0VBSVJBRFFFR1FnSUFCSUJCQkEyd2lDSFFnQW5GQkVDQUlkRVlFUUNBSElBd2dFR3hCQW5ScUlRVWdCQ0FQUVJCQkQwRU9JQUlnQ0hZaUFVSHZBM0ViSUFGQmdJREFBSEViUVFKMGFpSU5OZ0pvSUFRZ0JDZ0NCQ0FOS0FJQUlnSW9BZ0FpQVdzaUF6WUNCQUovSUFFZ0JDZ0NBQ0lHUVJCMlN3UkFJQUlvQWdRaENpQUVJQUUyQWdRZ0RTQUNRUWhCRENBQklBTkxJZzRiYWlnQ0FEWUNBQ0FFS0FJSUlRSURRQUpBSUFJTkFDQUVLQUlRSWdKQkFXb2hEU0FDTFFBQklRTWdBaTBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBR1FZRCtBMm9oQmtFSUlRSU1BZ3NnQkNBTk5nSVFJQU5CQ1hRZ0Jtb2hCa0VISVFJTUFRc2dCQ0FOTmdJUVFRZ2hBaUFEUVFoMElBWnFJUVlMSUFRZ0FrRUJheUlDTmdJSUlBUWdCa0VCZENJR05nSUFJQVFnQVVFQmRDSUJOZ0lFSUFGQmdJQUNTUTBBQ3lBS0lBcEZJQTRiREFFTElBUWdCaUFCUVJCMGF5SUdOZ0lBSUFOQmdJQUNjVVVFUUNBQ0tBSUVJUW9nRFNBQ1FReEJDQ0FCSUFOTElnNGJhaWdDQURZQ0FDQUVLQUlJSVFJRFFBSkFJQUlOQUNBRUtBSVFJZ0pCQVdvaERTQUNMUUFCSVFFZ0FpMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FHUVlEK0Eyb2hCa0VJSVFJTUFnc2dCQ0FOTmdJUUlBRkJDWFFnQm1vaEJrRUhJUUlNQVFzZ0JDQU5OZ0lRUVFnaEFpQUJRUWgwSUFacUlRWUxJQVFnQWtFQmF5SUNOZ0lJSUFRZ0JrRUJkQ0lHTmdJQUlBUWdBMEVCZENJRE5nSUVJQU5CZ0lBQ1NRMEFDeUFLUlNBS0lBNGJEQUVMSUFJb0FnUUxJUUVnQlNBVUlBc2dBU0FGS0FJQUlnTkJIM1pHR3lBRGFqWUNBQ0FKSUFrb0FnQkJnSURBQUNBSWRISWlBallDQUNBRUtBS0FBU0VEQ3lBUVFRRnFJaEFnQXlJQklCRnJTUTBBQ3dzZ0NVRUVhaUVKSUFkQkJHb2hCeUFUUVFGcUloTWdERWNOQUFzTUFRdEJBQ0VSUVFBaEZ3SkFBa0FDUUFKQUlBUW9BbndpRkVIQUFFY05BQ0FFS0FLQUFVSEFBRWNOQUVFQVFRRWdHWFFpQVVFQmRpQUJjaUlVYXlFVElBUkI1QUJxSVFnZ0JFSGdBR29oRUNBRVFSeHFJUXNnQkNnQ2VFR01BbW9oQmlBRUtBSUlJUVVnQkNnQ0JDRUJJQVFvQWdBaEFpQUVLQUpvSVFrZ0JDZ0NkQ0VESUJaQkNIRU5BUU5BUVFBaERBTkFJQU1oRVFKQUFrQUNmd0pBQWtBZ0JpSU5LQUlBSWdaRkJFQWdBU0FRS0FJQUlnTW9BZ0FpQm1zaEFRSi9JQVlnQWtFUWRrc0VRQ0FES0FJRUlRY2dFQ0FEUVFoQkRDQUJJQVpKSWdvYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlBMEVCYWlFSklBTXRBQUVoQVNBRExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQWsyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0J5QUhSU0FLR3d3QkN5QUNJQVpCRUhScklRSWdBVUdBZ0FKeFJRUkFJQU1vQWdRaEJ5QVFJQU5CREVFSUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUdRUUZxSVFrZ0JpMEFBU0VESUFZdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdDVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0NUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQWRGSUFjZ0Noc01BUXNnQXlnQ0JBdEZCRUFnRUNFSkRBWUxJQUVnQ0NnQ0FDSURLQUlBSWdacklRRUNmeUFHSUFKQkVIWkxCRUFnQXlnQ0JDRUhJQWdnQTBFSVFRd2dBU0FHU1NJS0cyb29BZ0FpQXpZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQ1VFQmFpRUZJQWt0QUFFaEFTQUpMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdCeUFIUlNBS0d3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFNb0FnUWhCeUFJSUFOQkRFRUlJQUVnQmtraUNodHFLQUlBSWdNMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdsQkFXb2hCU0FKTFFBQklRWWdDUzBBQUVIL0FVWUVRQ0FHUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQVpCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0IwVWdCeUFLR3d3QkN5QURLQUlFQ3lFS0lBRWdBeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJTd1JBSUFNb0FnUWhCeUFJSUFOQkNFRU1JQUVnQmtraURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lEUVFGcUlRa2dBeTBBQVNFQklBTXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdDVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUhJQWRGSUE0YkRBRUxJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQXlnQ0JDRUhJQWdnQTBFTVFRZ2dBU0FHU1NJT0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1pCQVdvaENTQUdMUUFCSVFNZ0JpMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FKTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUpOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQjBVZ0J5QU9Hd3dCQ3lBREtBSUVDeUVEUVFBaEJpQUlJUWtDUUFKQUFrQUNmd0pBQWtBZ0F5QUtRUUYwY2c0RUFBRURCUW9MSUFFZ0N5QU5LQUlFUVJGMlFRUnhJQTFCQkdzaUJ5Z0NBRUVUZGtFQmNYSWlEa0hRdVFGcUxRQUFRUUowYWlJSktBSUFJZ01vQWdBaUJtc2hBUUovSUFZZ0FrRVFka3NFUUNBREtBSUVJUW9nQ1NBRFFRaEJEQ0FCSUFaSkloSWJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQTBFQmFpRUpJQU10QUFFaEFTQURMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFrMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQWsyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDaUFLUlNBU0d3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFNb0FnUWhDaUFKSUFOQkRFRUlJQUVnQmtraUVodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQ1RZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdDVFlDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dFaHNNQVFzZ0F5Z0NCQXNoQXlBUklCTWdGQ0FESUE1QjBMc0JhaTBBQUhNaUF4czJBZ0FnQnlBSEtBSUFRU0J5TmdJQUlBMGdEU2dDQkVFSWNqWUNCQ0FOUVl3Q2F5SUdJQVlvQWdCQmdJQUljallDQUNBTlFZUUNheUlHSUFZb0FnQkJnSUFDY2pZQ0FDQU5RWWdDYXlJR0lBWW9BZ0FnQTBFZmRISkJnSUFFY2pZQ0FDQURRUk4wSVZjZ0FTQUxJQVFvQW13dEFBSkJBblJxSWdjb0FnQWlBeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJTd1JBSUFNb0FnUWhDU0FISUFOQkNFRU1JQUVnQmtraURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lEUVFGcUlRY2dBeTBBQVNFQklBTXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQnpZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCellDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUpJQWxGSUE0YkRBRUxJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQXlnQ0JDRUpJQWNnQTBFTVFRZ2dBU0FHU1NJT0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1pCQVdvaEJ5QUdMUUFCSVFNZ0JpMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FITmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUhOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ1VVZ0NTQU9Hd3dCQ3lBREtBSUVDeUVESUZkQkVISWlCaUFEUlEwQkdnc2dBU0FMSUEwb0FnUkJGSFpCQkhFZ0RVRUVheUlKS0FJQVFSWjJRUUZ4SUFaQkQzWkJFSEVnQmtFVGRrSEFBSEVnQmtFRGRrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pQ2lnQ0FDSUhLQUlBSWdOcklRRUNmeUFESUFKQkVIWkxCRUFnQnlnQ0JDRU9JQW9nQjBFSVFRd2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklBNGdEa1VnQ2hzTUFRc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FIS0FJRUlRNGdDaUFIUVF4QkNDQUJJQU5KSWdvYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFPUlNBT0lBb2JEQUVMSUFjb0FnUUxJUU1nRVNBVElCUWdBeUFTUWRDN0FXb3RBQUJ6SWdNYk5nS0FBaUFKSUFrb0FnQkJnQUp5TmdJQUlBMGdEU2dDQkVIQUFISTJBZ1FnQmlBRFFSWjBja0dBQVhJTElRWWdBU0FMSUFRb0Ftd2dCa0VHZGtIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdjb0FnQWlBMnNoQVFKL0lBTWdBa0VRZGtzRVFDQUhLQUlFSVFvZ0NTQUhRUWhCRENBQklBTkpJZzRiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVKSUFjdEFBRWhBU0FITFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBazJBaEFnQVVFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFEUVFGMElnTkJnSUFDU1EwQUN5QURJUUVnQ2lBS1JTQU9Hd3dCQ3lBQ0lBTkJFSFJySVFJZ0FVR0FnQUp4UlFSQUlBY29BZ1FoQ2lBSklBZEJERUVJSUFFZ0Ewa2lEaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUWtnQnkwQUFTRURJQWN0QUFCQi93RkdCRUFnQTBHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZEQUlMSUFRZ0NUWUNFQ0FEUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQ1RZQ0VFRUlJUVVnQTBFSWRDQUNhaUVDQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBcEZJQW9nRGhzTUFRc2dCeWdDQkF0RkRRRUxJQUVnQ3lBTktBSUVRUmQyUVFSeElBMUJCR3NpQ1NnQ0FFRVpka0VCY1NBR1FSSjJRUkJ4SUFaQkZuWkJ3QUJ4SUFaQkJuWkJxZ0Z4Y25KeWNpSVNRZEM1QVdvdEFBQkJBblJxSWdvb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhEaUFLSUFkQkNFRU1JQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQU9JQTVGSUFvYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRU9JQW9nQjBFTVFRZ2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRGtVZ0RpQUtHd3dCQ3lBSEtBSUVDeUVESUJFZ0V5QVVJQU1nRWtIUXV3RnFMUUFBY3lJREd6WUNnQVFnQ1NBSktBSUFRWUFRY2pZQ0FDQU5JQTBvQWdSQmdBUnlOZ0lFSUFZZ0EwRVpkSEpCZ0FoeUlRWUxJQUVnQ3lBRUtBSnNJQVpCQ1haQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ05ySVFFQ2Z5QURJQUpCRUhaTEJFQWdCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQURTU0lPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFvZ0NrVWdEaHNNQVFzZ0FpQURRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUhLQUlFSVFvZ0NTQUhRUXhCQ0NBQklBTkpJZzRiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVGSUFjdEFBRWhBeUFITFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBVTJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFVMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUE0YkRBRUxJQWNvQWdRTFJRMEZDeUFCSUFzZ0RTZ0NCRUVhZGtFRWNTQU5RUVJySWc0b0FnQkJISFpCQVhFZ0JrRVZka0VRY1NBR1FSbDJRY0FBY1NBR1FRbDJRYW9CY1hKeWNuSWlDa0hRdVFGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUEyc2hBU0FESUFKQkVIWkxCRUFnQnlnQ0JDRVNJQWtnQjBFSVFRd2dBU0FEU1NJVkcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklCSWdFa1VnRlJzTUJBc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NRMEJJQWNvQWdRaEVpQUpJQWRCREVFSUlBRWdBMGtpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VESUFjdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQkpGSUJJZ0ZSc01Bd3NDUUNBR1FaQ0FnQUZ4RFFBZ0FTQUxJQVFvQW13Z0JrSHZBM0ZxTFFBQVFRSjBhaUlKS0FJQUlnY29BZ0FpQTJzaEFRSi9JQU1nQWtFUWRrc0VRQ0FIS0FJRUlRb2dDU0FIUVFoQkRDQUJJQU5KSWc0YmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQVNBSExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFESVFFZ0NpQUtSU0FPR3d3QkN5QUNJQU5CRUhScklRSWdBVUdBZ0FKeFJRUkFJQWNvQWdRaENpQUpJQWRCREVFSUlBRWdBMGtpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VESUFjdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0Roc01BUXNnQnlnQ0JBdEZEUUFnQVNBTElBMG9BZ1JCRVhaQkJIRWdEVUVFYXlJS0tBSUFRUk4yUVFGeElBWkJEblpCRUhFZ0JrRVFka0hBQUhFZ0JrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pQ1NnQ0FDSUhLQUlBSWdOcklRRUNmeUFESUFKQkVIWkxCRUFnQnlnQ0JDRU9JQWtnQjBFSVFRd2dBU0FEU1NJVkcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklBNGdEa1VnRlJzTUFRc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FIS0FJRUlRNGdDU0FIUVF4QkNDQUJJQU5KSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFPUlNBT0lCVWJEQUVMSUFjb0FnUUxJUU1nRVNBVElCUWdBeUFTUWRDN0FXb3RBQUJ6SWdNYk5nSUFJQW9nQ2lnQ0FFRWdjallDQUNBTklBMG9BZ1JCQ0hJMkFnUWdEVUdNQW1zaUJ5QUhLQUlBUVlDQUNISTJBZ0FnRFVHRUFtc2lCeUFIS0FJQVFZQ0FBbkkyQWdBZ0RVR0lBbXNpQnlBSEtBSUFJQU5CSDNSeVFZQ0FCSEkyQWdBZ0JpQURRUk4wY2tFUWNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBQklBc2dCQ2dDYkNBR1FRTjJJZzVCN3dOeGFpMEFBRUVDZEdvaUNTZ0NBQ0lIS0FJQUlnTnJJUUVDZnlBRElBSkJFSFpMQkVBZ0J5Z0NCQ0VLSUFrZ0IwRUlRUXdnQVNBRFNTSVNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQW9nQ2tVZ0Voc01BUXNnQWlBRFFSQjBheUVDSUFGQmdJQUNjVVVFUUNBSEtBSUVJUW9nQ1NBSFFReEJDQ0FCSUFOSkloSWJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEF5QUhMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBMEVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQU5CQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQkliREFFTElBY29BZ1FMUlEwQUlBRWdDeUFOS0FJRVFSUjJRUVJ4SUExQkJHc2lDaWdDQUVFV2RrRUJjU0FHUVE5MlFSQnhJQVpCRTNaQndBQnhJQTVCcWdGeGNuSnljaUlTUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSURheUVCQW44Z0F5QUNRUkIyU3dSQUlBY29BZ1FoRGlBSklBZEJDRUVNSUFFZ0Ewa2lGUnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZEQUlMSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQlRZQ0VFRUlJUVVnQVVFSWRDQUNhaUVDQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQU5CQVhRaUEwR0FnQUpKRFFBTElBTWhBU0FPSUE1RklCVWJEQUVMSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkZGQkVBZ0J5Z0NCQ0VPSUFrZ0IwRU1RUWdnQVNBRFNTSVZHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRTWdCeTBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0RrVWdEaUFWR3d3QkN5QUhLQUlFQ3lFRElCRWdFeUFVSUFNZ0VrSFF1d0ZxTFFBQWN5SURHellDZ0FJZ0NpQUtLQUlBUVlBQ2NqWUNBQ0FOSUEwb0FnUkJ3QUJ5TmdJRUlBWWdBMEVXZEhKQmdBRnlJUVlMQWtBZ0JrR0FpSURBQUhFTkFDQUJJQXNnQkNnQ2JDQUdRUVoySWc1Qjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ05ySVFFQ2Z5QURJQUpCRUhaTEJFQWdCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQURTU0lTRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFvZ0NrVWdFaHNNQVFzZ0FpQURRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUhLQUlFSVFvZ0NTQUhRUXhCQ0NBQklBTkpJaEliYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVGSUFjdEFBRWhBeUFITFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBVTJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFVMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUJJYkRBRUxJQWNvQWdRTFJRMEFJQUVnQ3lBTktBSUVRUmQyUVFSeElBMUJCR3NpQ2lnQ0FFRVpka0VCY1NBR1FSSjJRUkJ4SUFaQkZuWkJ3QUJ4SUE1QnFnRnhjbkp5Y2lJU1FkQzVBV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lEYXlFQkFuOGdBeUFDUVJCMlN3UkFJQWNvQWdRaERpQUpJQWRCQ0VFTUlBRWdBMGtpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBT0lBNUZJQlViREFFTElBSWdBMEVRZEdzaEFpQUJRWUNBQW5GRkJFQWdCeWdDQkNFT0lBa2dCMEVNUVFnZ0FTQURTU0lWRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFOQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dEa1VnRGlBVkd3d0JDeUFIS0FJRUN5RURJQkVnRXlBVUlBTWdFa0hRdXdGcUxRQUFjeUlER3pZQ2dBUWdDaUFLS0FJQVFZQVFjallDQUNBTklBMG9BZ1JCZ0FSeU5nSUVJQVlnQTBFWmRISkJnQWh5SVFZTElBWkJnTUNBZ0FSeERRTWdBU0FMSUFRb0Ftd2dCa0VKZGlJU1FlOERjV290QUFCQkFuUnFJZ2tvQWdBaUFTZ0NBQ0lEYXlFSEFuOGdBeUFDUVJCMlN3UkFJQUVvQWdRaENpQUpJQUZCQ0VFTUlBTWdCMHNpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQnlBS0lBcEZJQTRiREFFTElBSWdBMEVRZEdzaEFpQUhRWUNBQW5GRkJFQWdBU2dDQkNFS0lBa2dBVUVNUVFnZ0F5QUhTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnTkJBV29oQlNBRExRQUJJUUVnQXkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQjBFQmRDSUhRWUNBQWtrTkFBc2dDa1VnQ2lBT0d3d0JDeUFCS0FJRUMwVUVRQ0FISVFFTUJBc2dCeUFMSUEwb0FnUkJHblpCQkhFZ0RVRUVheUlPS0FJQVFSeDJRUUZ4SUFaQkZYWkJFSEVnQmtFWmRrSEFBSEVnRWtHcUFYRnljbkp5SWdwQjBMa0JhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ0ZySVFNZ0FTQUNRUkIyU3dSQUlBY29BZ1FoRWlBSklBZEJDRUVNSUFFZ0Ewc2lGUnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRURJQWN0QUFCQi93RkdCRUFnQTBHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZEQUlMSUFRZ0JUWUNFQ0FEUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQlRZQ0VFRUlJUVVnQTBFSWRDQUNhaUVDQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElCSWdFa1VnRlJzTUF3c2dBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NVVU5BU0FESVFFTElBY29BZ1FNQVFzZ0J5Z0NCQ0VTSUFrZ0IwRU1RUWdnQVNBRFN5SVZHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQkpGSUJJZ0ZSc0xJUU1nRVNBVElCUWdBeUFLUWRDN0FXb3RBQUJ6SWdNYk5nS0FCaUFPSUE0b0FnQkJnSUFCY2pZQ0FDQU5JQTBvQWdSQmdDQnlOZ0lFSUEwZ0RTZ0NoQUpCQkhJMkFvUUNJQTBnRFNnQ2pBSkJBWEkyQW93Q0lBMGdEU2dDaUFJZ0EwRVNkSEpCQW5JMkFvZ0NJQVlnQTBFY2RISkJnTUFBY2lFR0N5QU5JQVpCLy8vL3RudHhOZ0lBQ3lBTlFRUnFJUVlnRVVFRWFpRURJQXhCQVdvaURFSEFBRWNOQUFzZ0RVRU1haUVHSUJGQmhBWnFJUU1nRjBFOFNTRllJQmRCQkdvaEZ5QllEUUFMREFJTFFRRWdHWFFpQVVFQmRpQUJjaUVPSUFRb0FuZ2lCeUFVUVFKMGFrRU1haUVESUFRb0FvQUJJUVlnQkNnQ0NDRUZJQVFvQWdRaEFTQUVLQUlBSVFJZ0JDZ0NhQ0VKSUFRb0FuUWhDd0pBQWtBZ0ZrRUljUVJBSUFaQkJFa05BaUFVUlEwQklBUkI1QUJxSVJBZ0JFSGdBR29oRFNBVVFRTnNJUnNnRkVFQmRDRWtRUUFnRG1zaEZTQUVRUnhxSVJJRFFFRUFJUmdEUUFKQUFrQUNmd0pBSUFNaUNDZ0NBQ0lEQkVBQ1FDQURRWkNBZ0FGeERRQWdBU0FTSUFRb0Ftd2dBMEh2QTNGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUXdnQ1NBSFFReEJDQ0FCSUFaSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBTVJTQU1JQW9iREFFTElBY29BZ1FoRENBSklBZEJDRUVNSUFFZ0Jra2lDaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FNSUF4RklBb2JDMFVOQUNBQklCSWdDQ2dDQkVFUmRrRUVjU0FJUVFScklnd29BZ0JCRTNaQkFYRWdBMEVPZGtFUWNTQURRUkIyUWNBQWNTQURRYW9CY1hKeWNuSWlFMEhRdVFGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUW9nQ1NBSFFReEJDQ0FCSUFaSklod2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQndiREFFTElBY29BZ1FoQ2lBSklBZEJDRUVNSUFFZ0Jra2lIQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FLSUFwRklCd2JDeUVHSUFzZ0ZTQU9JQVlnRTBIUXV3RnFMUUFBY3lJR0d6WUNBQ0FNSUF3b0FnQkJJSEkyQWdBZ0NDQUlLQUlFUVFoeU5nSUVJQU1nQmtFVGRISkJFSEloQXdzQ1FDQURRWUNCZ0FoeERRQWdBU0FTSUFRb0Ftd2dBMEVEZGlJS1FlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaERDQUpJQWRCREVFSUlBRWdCa2tpRXh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXhGSUF3Z0V4c01BUXNnQnlnQ0JDRU1JQWtnQjBFSVFRd2dBU0FHU1NJVEcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBd2dERVVnRXhzTFJRMEFJQUVnRWlBSUtBSUVRUlIyUVFSeElBaEJCR3NpRENnQ0FFRVdka0VCY1NBRFFROTJRUkJ4SUFOQkUzWkJ3QUJ4SUFwQnFnRnhjbkp5Y2lJVFFkQzVBV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaENpQUpJQWRCREVFSUlBRWdCa2tpSEJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0hCc01BUXNnQnlnQ0JDRUtJQWtnQjBFSVFRd2dBU0FHU1NJY0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnSEJzTElRWWdDeUFVUVFKMGFpQVZJQTRnQmlBVFFkQzdBV290QUFCeklnWWJOZ0lBSUF3Z0RDZ0NBRUdBQW5JMkFnQWdDQ0FJS0FJRVFjQUFjallDQkNBRElBWkJGblJ5UVlBQmNpRURDd0pBSUFOQmdJaUF3QUJ4RFFBZ0FTQVNJQVFvQW13Z0EwRUdkaUlLUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoRENBSklBZEJERUVJSUFFZ0Jra2lFeHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBeEZJQXdnRXhzTUFRc2dCeWdDQkNFTUlBa2dCMEVJUVF3Z0FTQUdTU0lURzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUF3Z0RFVWdFeHNMUlEwQUlBRWdFaUFJS0FJRVFSZDJRUVJ4SUFoQkJHc2lEQ2dDQUVFWmRrRUJjU0FEUVJKMlFSQnhJQU5CRm5aQndBQnhJQXBCcWdGeGNuSnljaUlUUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoQ2lBSklBZEJERUVJSUFFZ0Jra2lIQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBcEZJQW9nSEJzTUFRc2dCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQUdTU0ljRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFvZ0NrVWdIQnNMSVFZZ0N5QWtRUUowYWlBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdZYk5nSUFJQXdnRENnQ0FFR0FFSEkyQWdBZ0NDQUlLQUlFUVlBRWNqWUNCQ0FESUFaQkdYUnlRWUFJY2lFREN5QURRWURBZ0lBRWNRMERJQUVnRWlBRUtBSnNJQU5CQ1hZaUNrSHZBM0ZxTFFBQVFRSjBhaUlKS0FJQUlnRW9BZ0FpQm1zaEJ3Si9JQVlnQWtFUWRrMEVRQ0FDSUFaQkVIUnJJUUlnQjBHQWdBSnhCRUFnQVNnQ0JBd0NDeUFCS0FJRUlRd2dDU0FCUVF4QkNDQUdJQWRMSWhNYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCa0VCYWlFRklBWXRBQUVoQVNBR0xRQUFRZjhCUndSQUlBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBRk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRc2dCVUVCYXlFRklBSkJBWFFoQWlBSFFRRjBJZ2RCZ0lBQ1NRMEFDeUFNUlNBTUlCTWJEQUVMSUFFb0FnUWhEQ0FKSUFGQkNFRU1JQVlnQjBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBVTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEJ5QU1JQXhGSUJNYkMwVUVRQ0FISVFFTUJBc2dCeUFTSUFnb0FnUkJHblpCQkhFZ0NFRUVheUlNS0FJQVFSeDJRUUZ4SUFOQkZYWkJFSEVnQTBFWmRrSEFBSEVnQ2tHcUFYRnljbkp5SWhOQjBMa0JhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ0ZySVFZZ0FTQUNRUkIyVFFSQUlBSWdBVUVRZEdzaEFpQUdRWUNBQW5FRVFDQUdJUUVNQXdzZ0NpZ0NCQ0VISUFrZ0NrRU1RUWdnQVNBR1N5SWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdWQkFXb2hDaUFGTFFBQklRRWdCUzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQWRGSUFjZ0hCc01Bd3NnQ2lnQ0JDRUhJQWtnQ2tFSVFRd2dBU0FHU3lJY0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1ZCQVdvaENpQUZMUUFCSVFZZ0JTMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUZJQVpCQ0hRZ0Ftb2hBZ3dCQ3lBR1FZOEJUUVJBSUFRZ0NqWUNFQ0FHUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQnlBSFJTQWNHd3dDQ3lBQklBMG9BZ0FpQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoQnlBTklBWkJERUVJSUFFZ0Ewa2lEQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJR1FRRnFJUWtnQmkwQUFTRURJQVl0QUFCQi93RkhCRUFnQkNBSk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTUFRc2dBMEdQQVUwRVFDQUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBZEZJQWNnREJzTUFRc2dCaWdDQkNFSElBMGdCa0VJUVF3Z0FTQURTU0lNRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnWkJBV29oQ1NBR0xRQUJJUUVnQmkwQUFFSC9BVWNFUUNBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFjZ0IwVWdEQnNMUlFSQUlBMGhDUXdFQ3lBQklCQW9BZ0FpQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoQnlBUUlBWkJERUVJSUFFZ0Ewa2lEQnRxS0FJQUlnWTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnbEJBV29oQlNBSkxRQUJJUU1nQ1MwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnd0JDeUFEUVk4QlRRUkFJQVFnQlRZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dCMFVnQnlBTUd3d0JDeUFHS0FJRUlRY2dFQ0FHUVFoQkRDQUJJQU5KSWd3YmFpZ0NBQ0lHTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lKUVFGcUlRVWdDUzBBQVNFQklBa3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBVTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQUhJQWRGSUF3YkN5RU1JQUVnQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoQnlBUUlBWkJERUVJSUFFZ0Ewa2lDaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJR1FRRnFJUWtnQmkwQUFTRURJQVl0QUFCQi93RkhCRUFnQkNBSk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTUFRc2dBMEdQQVUwRVFDQUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBZEZJQWNnQ2hzTUFRc2dCaWdDQkNFSElCQWdCa0VJUVF3Z0FTQURTU0lLRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnWkJBV29oQ1NBR0xRQUJJUUVnQmkwQUFFSC9BVWNFUUNBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFjZ0IwVWdDaHNMSVFaQkFDRURJQkFoQ1FKQUFrQUNRQUovQWtBQ1FDQUdJQXhCQVhSeURnUUFBUU1GQ0FzZ0FTQVNJQWdvQWdSQkVYWkJCSEVnQ0VFRWF5SUhLQUlBUVJOMlFRRnhjaUlLUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoRENBSklBWkJERUVJSUFFZ0Ewa2lFeHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJR1FRRnFJUWtnQmkwQUFTRURJQVl0QUFCQi93RkhCRUFnQkNBSk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTUFRc2dBMEdQQVUwRVFDQUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBeEZJQXdnRXhzTUFRc2dCaWdDQkNFTUlBa2dCa0VJUVF3Z0FTQURTU0lURzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnWkJBV29oQ1NBR0xRQUJJUUVnQmkwQUFFSC9BVWNFUUNBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUF3Z0RFVWdFeHNMSVFNZ0N5QVZJQTRnQXlBS1FkQzdBV290QUFCeklnTWJOZ0lBSUFjZ0J5Z0NBRUVnY2pZQ0FDQUlJQWdvQWdSQkNISTJBZ1FnQTBFVGRDRlpJQUVnRWlBRUtBSnNMUUFDUVFKMGFpSUhLQUlBSWdZb0FnQWlBMnNoQVFKL0lBTWdBa0VRZGswRVFDQUNJQU5CRUhScklRSWdBVUdBZ0FKeEJFQWdCaWdDQkF3Q0N5QUdLQUlFSVFrZ0J5QUdRUXhCQ0NBQklBTkpJZ29iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJrRUJhaUVISUFZdEFBRWhBeUFHTFFBQVFmOEJSd1JBSUFRZ0J6WUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FITmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUpSU0FKSUFvYkRBRUxJQVlvQWdRaENTQUhJQVpCQ0VFTUlBRWdBMGtpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUdRUUZxSVFjZ0JpMEFBU0VCSUFZdEFBQkIvd0ZIQkVBZ0JDQUhOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFjMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBSklBbEZJQW9iQ3lFR0lGbEJFSElpQXlBR1JRMEJHZ3NnQVNBU0lBZ29BZ1JCRkhaQkJIRWdDRUVFYXlJSktBSUFRUloyUVFGeElBTkJEM1pCRUhFZ0EwRVRka0hBQUhFZ0EwRURka0dxQVhGeWNuSnlJaE5CMExrQmFpMEFBRUVDZEdvaURDZ0NBQ0lIS0FJQUlnWnJJUUVDZnlBR0lBSkJFSFpOQkVBZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1FSQUlBY29BZ1FNQWdzZ0J5Z0NCQ0VLSUF3Z0IwRU1RUWdnQVNBR1NTSU1HMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRWWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFaQkNIUWdBbW9oQWd3QkN5QUdRWThCVFFSQUlBUWdCVFlDRUNBR1FRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0NrVWdDaUFNR3d3QkN5QUhLQUlFSVFvZ0RDQUhRUWhCRENBQklBWkpJZ3diYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVGSUFjdEFBRWhBU0FITFFBQVFmOEJSd1JBSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFHUVFGMElnWkJnSUFDU1EwQUN5QUdJUUVnQ2lBS1JTQU1Hd3NoQmlBTElCUkJBblJxSUJVZ0RpQUdJQk5CMExzQmFpMEFBSE1pQmhzMkFnQWdDU0FKS0FJQVFZQUNjallDQUNBSUlBZ29BZ1JCd0FCeU5nSUVJQU1nQmtFV2RISkJnQUZ5Q3lFRElBRWdFaUFFS0FKc0lBTkJCblpCN3dOeGFpMEFBRUVDZEdvaUNTZ0NBQ0lIS0FJQUlnWnJJUUVDZnlBR0lBSkJFSFpOQkVBZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1FSQUlBY29BZ1FNQWdzZ0J5Z0NCQ0VNSUFrZ0IwRU1RUWdnQVNBR1NTSUtHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hDU0FITFFBQklRWWdCeTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFaQkNIUWdBbW9oQWd3QkN5QUdRWThCVFFSQUlBUWdDVFlDRUNBR1FRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0RFVWdEQ0FLR3d3QkN5QUhLQUlFSVF3Z0NTQUhRUWhCRENBQklBWkpJZ29iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVKSUFjdEFBRWhBU0FITFFBQVFmOEJSd1JBSUFRZ0NUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdCQ0FKTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFHUVFGMElnWkJnSUFDU1EwQUN5QUdJUUVnRENBTVJTQUtHd3RGRFFFTElBRWdFaUFJS0FJRVFSZDJRUVJ4SUFoQkJHc2lDU2dDQUVFWmRrRUJjU0FEUVJKMlFSQnhJQU5CRm5aQndBQnhJQU5CQm5aQnFnRnhjbkp5Y2lJVFFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaENpQU1JQWRCREVFSUlBRWdCa2tpREJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0RCc01BUXNnQnlnQ0JDRUtJQXdnQjBFSVFRd2dBU0FHU1NJTUcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnREJzTElRWWdDeUFrUVFKMGFpQVZJQTRnQmlBVFFkQzdBV290QUFCeklnWWJOZ0lBSUFrZ0NTZ0NBRUdBRUhJMkFnQWdDQ0FJS0FJRVFZQUVjallDQkNBRElBWkJHWFJ5UVlBSWNpRURDeUFCSUJJZ0JDZ0NiQ0FEUVFsMlFlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaERDQUpJQWRCREVFSUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXhGSUF3Z0Noc01BUXNnQnlnQ0JDRU1JQWtnQjBFSVFRd2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBd2dERVVnQ2hzTFJRMERDeUFCSUJJZ0NDZ0NCRUVhZGtFRWNTQUlRUVJySWd3b0FnQkJISFpCQVhFZ0EwRVZka0VRY1NBRFFSbDJRY0FBY1NBRFFRbDJRYW9CY1hKeWNuSWlFMEhRdVFGcUxRQUFRUUowYWlJSktBSUFJZ29vQWdBaUJtc2hBU0FHSUFKQkVIWk5CRUFnQWlBR1FSQjBheUVDSUFGQmdJQUNjUTBCSUFvb0FnUWhCeUFKSUFwQkRFRUlJQUVnQmtraUhCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lGUVFGcUlRb2dCUzBBQVNFR0lBVXRBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBbzJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dIQnNNQWdzZ0NpZ0NCQ0VISUFrZ0NrRUlRUXdnQVNBR1NTSWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdWQkFXb2hDaUFGTFFBQklRRWdCUzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQWNnQjBVZ0hCc01BUXNnQ2lnQ0JBc2hCaUFMSUJ0QkFuUnFJQlVnRGlBR0lCTkIwTHNCYWkwQUFITWlCeHMyQWdBZ0RDQU1LQUlBUVlDQUFYSTJBZ0FnQ0NBSUtBSUVRWUFnY2pZQ0JDQUVLQUo4UVFKMElBaHFJZ1lnQmlnQ0JFRUVjallDQkNBR0lBWW9BZ3hCQVhJMkFnd2dCaUFHS0FJSUlBZEJFblJ5UVFKeU5nSUlJQU1nQjBFY2RISkJnTUFBY2lFREN5QUlJQU5CLy8vL3RudHhOZ0lBQ3lBSVFRUnFJUU1nQzBFRWFpRUxJQmhCQVdvaUdDQVVSdzBBQ3lBSVFReHFJUU1nQ3lBYlFRSjBhaUVMSUJGQkJHb2lFU0FFS0FLQUFTSUdRWHh4U1EwQUN3d0NDd0pBSUFaQkJFa05BQ0FVQkVBZ0JFSGtBR29oRUNBRVFlQUFhaUVOSUJSQkEyd2hHeUFVUVFGMElTUkJBQ0FPYXlFVklBUkJIR29oRWdOQVFRQWhHQU5BQWtBQ1FBSi9Ba0FnQXlJSUtBSUFJZ01FUUFKQUlBTkJrSUNBQVhFTkFDQUJJQklnQkNnQ2JDQURRZThEY1dvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhEQ0FKSUFkQkRFRUlJQUVnQmtraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF4RklBd2dDaHNNQVFzZ0J5Z0NCQ0VNSUFrZ0IwRUlRUXdnQVNBR1NTSUtHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQXdnREVVZ0Noc0xSUTBBSUFFZ0VpQUlLQUlFUVJGMlFRUnhJQWhCQkdzaURDZ0NBRUVUZGtFQmNTQURRUTUyUVJCeElBTkJFSFpCd0FCeElBTkJxZ0Z4Y25KeWNpSVRRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhDaUFKSUFkQkRFRUlJQUVnQmtraUhCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dIQnNNQVFzZ0J5Z0NCQ0VLSUFrZ0IwRUlRUXdnQVNBR1NTSWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQW9nQ2tVZ0hCc0xJUVlnQ3lBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdjYk5nSUFJQXdnRENnQ0FFRWdjallDQUNBSUlBZ29BZ1JCQ0hJMkFnUWdDRUYrSUFRb0FueHJRUUowYWlJR0lBWW9BZ1JCZ0lBQ2NqWUNCQ0FHSUFZb0FnQWdCMEVmZEhKQmdJQUVjallDQUNBR1FRUnJJZ1lnQmlnQ0FFR0FnQWh5TmdJQUlBTWdCMEVUZEhKQkVISWhBd3NDUUNBRFFZQ0JnQWh4RFFBZ0FTQVNJQVFvQW13Z0EwRURkaUlLUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoRENBSklBZEJERUVJSUFFZ0Jra2lFeHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBeEZJQXdnRXhzTUFRc2dCeWdDQkNFTUlBa2dCMEVJUVF3Z0FTQUdTU0lURzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUF3Z0RFVWdFeHNMUlEwQUlBRWdFaUFJS0FJRVFSUjJRUVJ4SUFoQkJHc2lEQ2dDQUVFV2RrRUJjU0FEUVE5MlFSQnhJQU5CRTNaQndBQnhJQXBCcWdGeGNuSnljaUlUUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoQ2lBSklBZEJERUVJSUFFZ0Jra2lIQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBcEZJQW9nSEJzTUFRc2dCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQUdTU0ljRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFvZ0NrVWdIQnNMSVFZZ0N5QVVRUUowYWlBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdZYk5nSUFJQXdnRENnQ0FFR0FBbkkyQWdBZ0NDQUlLQUlFUWNBQWNqWUNCQ0FESUFaQkZuUnlRWUFCY2lFREN3SkFJQU5CZ0lpQXdBQnhEUUFnQVNBU0lBUW9BbXdnQTBFR2RpSUtRZThEY1dvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhEQ0FKSUFkQkRFRUlJQUVnQmtraUV4dHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF4RklBd2dFeHNNQVFzZ0J5Z0NCQ0VNSUFrZ0IwRUlRUXdnQVNBR1NTSVRHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQXdnREVVZ0V4c0xSUTBBSUFFZ0VpQUlLQUlFUVJkMlFRUnhJQWhCQkdzaURDZ0NBRUVaZGtFQmNTQURRUkoyUVJCeElBTkJGblpCd0FCeElBcEJxZ0Z4Y25KeWNpSVRRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhDaUFKSUFkQkRFRUlJQUVnQmtraUhCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dIQnNNQVFzZ0J5Z0NCQ0VLSUFrZ0IwRUlRUXdnQVNBR1NTSWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQW9nQ2tVZ0hCc0xJUVlnQ3lBa1FRSjBhaUFWSUE0Z0JpQVRRZEM3QVdvdEFBQnpJZ1liTmdJQUlBd2dEQ2dDQUVHQUVISTJBZ0FnQ0NBSUtBSUVRWUFFY2pZQ0JDQURJQVpCR1hSeVFZQUljaUVEQ3lBRFFZREFnSUFFY1EwRElBRWdFaUFFS0FKc0lBTkJDWFlpQ2tIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdFb0FnQWlCbXNoQndKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdCMEdBZ0FKeEJFQWdBU2dDQkF3Q0N5QUJLQUlFSVF3Z0NTQUJRUXhCQ0NBR0lBZExJaE1iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJrRUJhaUVGSUFZdEFBRWhBU0FHTFFBQVFmOEJSd1JBSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFIUVFGMElnZEJnSUFDU1EwQUN5QU1SU0FNSUJNYkRBRUxJQUVvQWdRaERDQUpJQUZCQ0VFTUlBWWdCMHNpRXh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQnlBTUlBeEZJQk1iQzBVRVFDQUhJUUVNQkFzZ0J5QVNJQWdvQWdSQkduWkJCSEVnQ0VFRWF5SU1LQUlBUVJ4MlFRRnhJQU5CRlhaQkVIRWdBMEVaZGtIQUFIRWdDa0dxQVhGeWNuSnlJaE5CMExrQmFpMEFBRUVDZEdvaUNTZ0NBQ0lLS0FJQUlnRnJJUVlnQVNBQ1FSQjJUUVJBSUFJZ0FVRVFkR3NoQWlBR1FZQ0FBbkVFUUNBR0lRRU1Bd3NnQ2lnQ0JDRUhJQWtnQ2tFTVFRZ2dBU0FHU3lJY0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1ZCQVdvaENpQUZMUUFCSVFFZ0JTMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0NqWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBZEZJQWNnSEJzTUF3c2dDaWdDQkNFSElBa2dDa0VJUVF3Z0FTQUdTeUljRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnVkJBV29oQ2lBRkxRQUJJUVlnQlMwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFRklBWkJDSFFnQW1vaEFnd0JDeUFHUVk4QlRRUkFJQVFnQ2pZQ0VDQUdRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dCeUFIUlNBY0d3d0NDeUFCSUEwb0FnQWlCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhCeUFOSUFaQkRFRUlJQUVnQTBraURCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGSEJFQWdCQ0FKTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dEQnNNQVFzZ0JpZ0NCQ0VISUEwZ0JrRUlRUXdnQVNBRFNTSU1HMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQWNnQjBVZ0RCc0xSUVJBSUEwaENRd0VDeUFCSUJBb0FnQWlCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhCeUFRSUFaQkRFRUlJQUVnQTBraURCdHFLQUlBSWdZMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdsQkFXb2hCU0FKTFFBQklRTWdDUzBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWd3QkN5QURRWThCVFFSQUlBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0IwVWdCeUFNR3d3QkN5QUdLQUlFSVFjZ0VDQUdRUWhCRENBQklBTkpJZ3diYWlnQ0FDSUdOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUpRUUZxSVFVZ0NTMEFBU0VCSUFrdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBSElBZEZJQXdiQ3lFTUlBRWdCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhCeUFRSUFaQkRFRUlJQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGSEJFQWdCQ0FKTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dDaHNNQVFzZ0JpZ0NCQ0VISUJBZ0JrRUlRUXdnQVNBRFNTSUtHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQWNnQjBVZ0Noc0xJUVpCQUNFRElCQWhDUUpBQWtBQ1FBSi9Ba0FDUUNBR0lBeEJBWFJ5RGdRQUFRTUZDQXNnQVNBU0lBZ29BZ1JCRVhaQkJIRWdDRUVFYXlJSEtBSUFRUk4yUVFGeGNpSUtRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhEQ0FKSUFaQkRFRUlJQUVnQTBraUV4dHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGSEJFQWdCQ0FKTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF4RklBd2dFeHNNQVFzZ0JpZ0NCQ0VNSUFrZ0JrRUlRUXdnQVNBRFNTSVRHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQXdnREVVZ0V4c0xJUU1nQ3lBVklBNGdBeUFLUWRDN0FXb3RBQUJ6SWdZYk5nSUFJQWNnQnlnQ0FFRWdjallDQUNBSUlBZ29BZ1JCQ0hJMkFnUWdDRUYrSUFRb0FueHJRUUowYWlJRElBTW9BZ1JCZ0lBQ2NqWUNCQ0FESUFNb0FnQWdCa0VmZEhKQmdJQUVjallDQUNBRFFRUnJJZ01nQXlnQ0FFR0FnQWh5TmdJQUlBWkJFM1FoV2lBQklCSWdCQ2dDYkMwQUFrRUNkR29pQnlnQ0FDSUdLQUlBSWdOcklRRUNmeUFESUFKQkVIWk5CRUFnQWlBRFFSQjBheUVDSUFGQmdJQUNjUVJBSUFZb0FnUU1BZ3NnQmlnQ0JDRUpJQWNnQmtFTVFRZ2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1pCQVdvaEJ5QUdMUUFCSVFNZ0JpMEFBRUgvQVVjRVFDQUVJQWMyQWhCQkNDRUZJQU5CQ0hRZ0Ftb2hBZ3dCQ3lBRFFZOEJUUVJBSUFRZ0J6WUNFQ0FEUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ1VVZ0NTQUtHd3dCQ3lBR0tBSUVJUWtnQnlBR1FRaEJEQ0FCSUFOSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQmtFQmFpRUhJQVl0QUFFaEFTQUdMUUFBUWY4QlJ3UkFJQVFnQnpZQ0VFRUlJUVVnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0JDQUhOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRRWdDU0FKUlNBS0d3c2hCaUJhUVJCeUlnTWdCa1VOQVJvTElBRWdFaUFJS0FJRVFSUjJRUVJ4SUFoQkJHc2lDU2dDQUVFV2RrRUJjU0FEUVE5MlFSQnhJQU5CRTNaQndBQnhJQU5CQTNaQnFnRnhjbkp5Y2lJVFFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaENpQU1JQWRCREVFSUlBRWdCa2tpREJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0RCc01BUXNnQnlnQ0JDRUtJQXdnQjBFSVFRd2dBU0FHU1NJTUcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnREJzTElRWWdDeUFVUVFKMGFpQVZJQTRnQmlBVFFkQzdBV290QUFCeklnWWJOZ0lBSUFrZ0NTZ0NBRUdBQW5JMkFnQWdDQ0FJS0FJRVFjQUFjallDQkNBRElBWkJGblJ5UVlBQmNnc2hBeUFCSUJJZ0JDZ0NiQ0FEUVFaMlFlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaERDQUpJQWRCREVFSUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFrZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUpOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFrMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXhGSUF3Z0Noc01BUXNnQnlnQ0JDRU1JQWtnQjBFSVFRd2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaENTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQWsyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0NUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBd2dERVVnQ2hzTFJRMEJDeUFCSUJJZ0NDZ0NCRUVYZGtFRWNTQUlRUVJySWdrb0FnQkJHWFpCQVhFZ0EwRVNka0VRY1NBRFFSWjJRY0FBY1NBRFFRWjJRYW9CY1hKeWNuSWlFMEhRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUW9nRENBSFFReEJDQ0FCSUFaSklnd2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQXdiREFFTElBY29BZ1FoQ2lBTUlBZEJDRUVNSUFFZ0Jra2lEQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FLSUFwRklBd2JDeUVHSUFzZ0pFRUNkR29nRlNBT0lBWWdFMEhRdXdGcUxRQUFjeUlHR3pZQ0FDQUpJQWtvQWdCQmdCQnlOZ0lBSUFnZ0NDZ0NCRUdBQkhJMkFnUWdBeUFHUVJsMGNrR0FDSEloQXdzZ0FTQVNJQVFvQW13Z0EwRUpka0h2QTNGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUXdnQ1NBSFFReEJDQ0FCSUFaSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBTVJTQU1JQW9iREFFTElBY29BZ1FoRENBSklBZEJDRUVNSUFFZ0Jra2lDaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FNSUF4RklBb2JDMFVOQXdzZ0FTQVNJQWdvQWdSQkduWkJCSEVnQ0VFRWF5SU1LQUlBUVJ4MlFRRnhJQU5CRlhaQkVIRWdBMEVaZGtIQUFIRWdBMEVKZGtHcUFYRnljbkp5SWhOQjBMa0JhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1pySVFFZ0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FTkFTQUtLQUlFSVFjZ0NTQUtRUXhCQ0NBQklBWkpJaHdiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJVRUJhaUVLSUFVdEFBRWhCaUFGTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFVZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdCQ0FLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUhSU0FISUJ3YkRBSUxJQW9vQWdRaEJ5QUpJQXBCQ0VFTUlBRWdCa2tpSEJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUZRUUZxSVFvZ0JTMEFBU0VCSUFVdEFBQkIvd0ZIQkVBZ0JDQUtOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBSElBZEZJQndiREFFTElBb29BZ1FMSVFZZ0N5QWJRUUowYWlBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdjYk5nSUFJQXdnRENnQ0FFR0FnQUZ5TmdJQUlBZ2dDQ2dDQkVHQUlISTJBZ1FnQkNnQ2ZFRUNkQ0FJYWlJR0lBWW9BZ1JCQkhJMkFnUWdCaUFHS0FJTVFRRnlOZ0lNSUFZZ0JpZ0NDQ0FIUVJKMGNrRUNjallDQ0NBRElBZEJISFJ5UVlEQUFISWhBd3NnQ0NBRFFmLy8vN1o3Y1RZQ0FBc2dDRUVFYWlFRElBdEJCR29oQ3lBWVFRRnFJaGdnRkVjTkFBc2dDRUVNYWlFRElBc2dHMEVDZEdvaEN5QVJRUVJxSWhFZ0JDZ0NnQUVpQmtGOGNVa05BQXNNQVF0QkJDQUdRWHh4SWdNZ0EwRUVUUnRCQVdzaUEwRjhjVUVFYWlFUklBY2dBMEVCZEVGNGNXcEJGR29oQXdzZ0JDQUZOZ0lJSUFRZ0FUWUNCQ0FFSUFJMkFnQWdCQ0FKTmdKb0lCUkZEUVFnQmlBUlRRMEVBMEJCQUNFRklCRWdCQ2dDZ0FGSEJFQURRQ0FFSUFNZ0N5QUZJQlJzUVFKMGFpQU9JQVZCQUJCWUlBVkJBV29pQlNBRUtBS0FBU0FSYTBrTkFBc0xJQU1nQXlnQ0FFSC8vLysyZTNFMkFnQWdDMEVFYWlFTElBTkJCR29oQXlBWFFRRnFJaGNnRkVjTkFBc01CQXRCQkNBR1FYeHhJZ01nQTBFRVRSdEJBV3NpQTBGOGNVRUVhaUVSSUFjZ0EwRUJkRUY0Y1dwQkZHb2hBd3NnQkNBRk5nSUlJQVFnQVRZQ0JDQUVJQUkyQWdBZ0JDQUpOZ0pvSUJSRkRRSWdCaUFSVFEwQ0EwQkJBQ0VGSUJFZ0JDZ0NnQUZIQkVBRFFDQUVJQU1nQ3lBRklCUnNRUUowYWlBT0lBVkJBUkJZSUFWQkFXb2lCU0FFS0FLQUFTQVJhMGtOQUFzTElBTWdBeWdDQUVILy8vKzJlM0UyQWdBZ0MwRUVhaUVMSUFOQkJHb2hBeUFYUVFGcUloY2dGRWNOQUFzTUFnc0RRRUVBSVF3RFFDQURJUkVDUUFKQUFuOENRQUpBSUFZaURTZ0NBQ0lHUlFSQUlBRWdFQ2dDQUNJREtBSUFJZ1pySVFFQ2Z5QUdJQUpCRUhaTEJFQWdBeWdDQkNFSElCQWdBMEVJUVF3Z0FTQUdTU0lLRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnTkJBV29oQ1NBRExRQUJJUUVnQXkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUpOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBSk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFjZ0IwVWdDaHNNQVFzZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQURLQUlFSVFjZ0VDQURRUXhCQ0NBQklBWkpJZ29iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJrRUJhaUVKSUFZdEFBRWhBeUFHTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFrMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUhSU0FISUFvYkRBRUxJQU1vQWdRTFJRUkFJQkFoQ1F3R0N5QUJJQWdvQWdBaUF5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlN3UkFJQU1vQWdRaEJ5QUlJQU5CQ0VFTUlBRWdCa2tpQ2h0cUtBSUFJZ00yQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2xCQVdvaEJTQUpMUUFCSVFFZ0NTMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBY2dCMFVnQ2hzTUFRc2dBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FES0FJRUlRY2dDQ0FEUVF4QkNDQUJJQVpKSWdvYmFpZ0NBQ0lETmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lKUVFGcUlRVWdDUzBBQVNFR0lBa3RBQUJCL3dGR0JFQWdCa0dRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUdRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdCa0VJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dDaHNNQVFzZ0F5Z0NCQXNoQ2lBQklBTW9BZ0FpQm1zaEFRSi9JQVlnQWtFUWRrc0VRQ0FES0FJRUlRY2dDQ0FEUVFoQkRDQUJJQVpKSWc0YmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlBMEVCYWlFSklBTXRBQUVoQVNBRExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQWsyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0J5QUhSU0FPR3d3QkN5QUNJQVpCRUhScklRSWdBVUdBZ0FKeFJRUkFJQU1vQWdRaEJ5QUlJQU5CREVFSUlBRWdCa2tpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUdRUUZxSVFrZ0JpMEFBU0VESUFZdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdDVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0NUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQWRGSUFjZ0Roc01BUXNnQXlnQ0JBc2hBMEVBSVFZZ0NDRUpBa0FDUUFKQUFuOENRQUpBSUFNZ0NrRUJkSElPQkFBQkF3VUtDeUFCSUFzZ0RTZ0NCRUVSZGtFRWNTQU5RUVJySWdjb0FnQkJFM1pCQVhGeUlnNUIwTGtCYWkwQUFFRUNkR29pQ1NnQ0FDSURLQUlBSWdacklRRUNmeUFHSUFKQkVIWkxCRUFnQXlnQ0JDRUtJQWtnQTBFSVFRd2dBU0FHU1NJU0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ05CQVdvaENTQURMUUFCSVFFZ0F5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FKTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUpOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnRWhzTUFRc2dBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FES0FJRUlRb2dDU0FEUVF4QkNDQUJJQVpKSWhJYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCa0VCYWlFSklBWXRBQUVoQXlBR0xRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBazJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFLUlNBS0lCSWJEQUVMSUFNb0FnUUxJUU1nRVNBVElCUWdBeUFPUWRDN0FXb3RBQUJ6SWdNYk5nSUFJQWNnQnlnQ0FFRWdjallDQUNBTklBMG9BZ1JCQ0hJMkFnUWdBMEVUZENGYklBRWdDeUFFS0FKc0xRQUNRUUowYWlJSEtBSUFJZ01vQWdBaUJtc2hBUUovSUFZZ0FrRVFka3NFUUNBREtBSUVJUWtnQnlBRFFRaEJEQ0FCSUFaSklnNGJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQTBFQmFpRUhJQU10QUFFaEFTQURMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFjMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQWMyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDU0FKUlNBT0d3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFNb0FnUWhDU0FISUFOQkRFRUlJQUVnQmtraURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRY2dCaTBBQVNFRElBWXRBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQnpZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCellDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFsRklBa2dEaHNNQVFzZ0F5Z0NCQXNoQXlCYlFSQnlJZ1lnQTBVTkFSb0xJQUVnQ3lBTktBSUVRUlIyUVFSeElBMUJCR3NpQ1NnQ0FFRVdka0VCY1NBR1FROTJRUkJ4SUFaQkUzWkJ3QUJ4SUFaQkEzWkJxZ0Z4Y25KeWNpSVNRZEM1QVdvdEFBQkJBblJxSWdvb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhEaUFLSUFkQkNFRU1JQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQU9JQTVGSUFvYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRU9JQW9nQjBFTVFRZ2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRGtVZ0RpQUtHd3dCQ3lBSEtBSUVDeUVESUJFZ0V5QVVJQU1nRWtIUXV3RnFMUUFBY3lJREd6WUNnQUlnQ1NBSktBSUFRWUFDY2pZQ0FDQU5JQTBvQWdSQndBQnlOZ0lFSUFZZ0EwRVdkSEpCZ0FGeUN5RUdJQUVnQ3lBRUtBSnNJQVpCQm5aQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ05ySVFFQ2Z5QURJQUpCRUhaTEJFQWdCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQURTU0lPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQ1NBSExRQUJJUUVnQnkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUpOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBSk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFvZ0NrVWdEaHNNQVFzZ0FpQURRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUhLQUlFSVFvZ0NTQUhRUXhCQ0NBQklBTkpJZzRiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVKSUFjdEFBRWhBeUFITFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFrMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUE0YkRBRUxJQWNvQWdRTFJRMEJDeUFCSUFzZ0RTZ0NCRUVYZGtFRWNTQU5RUVJySWdrb0FnQkJHWFpCQVhFZ0JrRVNka0VRY1NBR1FSWjJRY0FBY1NBR1FRWjJRYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJS0tBSUFJZ2NvQWdBaUEyc2hBUUovSUFNZ0FrRVFka3NFUUNBSEtBSUVJUTRnQ2lBSFFRaEJEQ0FCSUFOSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEFTQUhMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRRWdEaUFPUlNBS0d3d0JDeUFDSUFOQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFjb0FnUWhEaUFLSUFkQkRFRUlJQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFRElBY3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUE1RklBNGdDaHNNQVFzZ0J5Z0NCQXNoQXlBUklCTWdGQ0FESUJKQjBMc0JhaTBBQUhNaUF4czJBb0FFSUFrZ0NTZ0NBRUdBRUhJMkFnQWdEU0FOS0FJRVFZQUVjallDQkNBR0lBTkJHWFJ5UVlBSWNpRUdDeUFCSUFzZ0JDZ0NiQ0FHUVFsMlFlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lEYXlFQkFuOGdBeUFDUVJCMlN3UkFJQWNvQWdRaENpQUpJQWRCQ0VFTUlBRWdBMGtpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBS0lBcEZJQTRiREFFTElBSWdBMEVRZEdzaEFpQUJRWUNBQW5GRkJFQWdCeWdDQkNFS0lBa2dCMEVNUVFnZ0FTQURTU0lPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFOQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dDa1VnQ2lBT0d3d0JDeUFIS0FJRUMwVU5CUXNnQVNBTElBMG9BZ1JCR25aQkJIRWdEVUVFYXlJT0tBSUFRUngyUVFGeElBWkJGWFpCRUhFZ0JrRVpka0hBQUhFZ0JrRUpka0dxQVhGeWNuSnlJZ3BCMExrQmFpMEFBRUVDZEdvaUNTZ0NBQ0lIS0FJQUlnTnJJUUVnQXlBQ1FSQjJTd1JBSUFjb0FnUWhFaUFKSUFkQkNFRU1JQUVnQTBraUZSdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQVNJQkpGSUJVYkRBUUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRU5BU0FIS0FJRUlSSWdDU0FIUVF4QkNDQUJJQU5KSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFTUlNBU0lCVWJEQU1MQWtBZ0JrR1FnSUFCY1EwQUlBRWdDeUFFS0FKc0lBWkI3d054YWkwQUFFRUNkR29pQ1NnQ0FDSUhLQUlBSWdOcklRRUNmeUFESUFKQkVIWkxCRUFnQnlnQ0JDRUtJQWtnQjBFSVFRd2dBU0FEU1NJT0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklBb2dDa1VnRGhzTUFRc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FIS0FJRUlRb2dDU0FIUVF4QkNDQUJJQU5KSWc0YmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFLUlNBS0lBNGJEQUVMSUFjb0FnUUxSUTBBSUFFZ0N5QU5LQUlFUVJGMlFRUnhJQTFCQkdzaUNpZ0NBRUVUZGtFQmNTQUdRUTUyUVJCeElBWkJFSFpCd0FCeElBWkJxZ0Z4Y25KeWNpSVNRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhEaUFKSUFkQkNFRU1JQUVnQTBraUZSdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQU9JQTVGSUJVYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRU9JQWtnQjBFTVFRZ2dBU0FEU1NJVkcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRGtVZ0RpQVZHd3dCQ3lBSEtBSUVDeUVESUJFZ0V5QVVJQU1nRWtIUXV3RnFMUUFBY3lJREd6WUNBQ0FLSUFvb0FnQkJJSEkyQWdBZ0RTQU5LQUlFUVFoeU5nSUVJQVlnQTBFVGRISkJFSEloQmdzQ1FDQUdRWUNCZ0FoeERRQWdBU0FMSUFRb0Ftd2dCa0VEZGlJT1FlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lEYXlFQkFuOGdBeUFDUVJCMlN3UkFJQWNvQWdRaENpQUpJQWRCQ0VFTUlBRWdBMGtpRWh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBS0lBcEZJQkliREFFTElBSWdBMEVRZEdzaEFpQUJRWUNBQW5GRkJFQWdCeWdDQkNFS0lBa2dCMEVNUVFnZ0FTQURTU0lTRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFOQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dDa1VnQ2lBU0d3d0JDeUFIS0FJRUMwVU5BQ0FCSUFzZ0RTZ0NCRUVVZGtFRWNTQU5RUVJySWdvb0FnQkJGblpCQVhFZ0JrRVBka0VRY1NBR1FSTjJRY0FBY1NBT1Fhb0JjWEp5Y25JaUVrSFF1UUZxTFFBQVFRSjBhaUlKS0FJQUlnY29BZ0FpQTJzaEFRSi9JQU1nQWtFUWRrc0VRQ0FIS0FJRUlRNGdDU0FIUVFoQkRDQUJJQU5KSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQVNBSExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFESVFFZ0RpQU9SU0FWR3d3QkN5QUNJQU5CRUhScklRSWdBVUdBZ0FKeFJRUkFJQWNvQWdRaERpQUpJQWRCREVFSUlBRWdBMGtpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VESUFjdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQTVGSUE0Z0ZSc01BUXNnQnlnQ0JBc2hBeUFSSUJNZ0ZDQURJQkpCMExzQmFpMEFBSE1pQXhzMkFvQUNJQW9nQ2lnQ0FFR0FBbkkyQWdBZ0RTQU5LQUlFUWNBQWNqWUNCQ0FHSUFOQkZuUnlRWUFCY2lFR0N3SkFJQVpCZ0lpQXdBQnhEUUFnQVNBTElBUW9BbXdnQmtFR2RpSU9RZThEY1dvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhDaUFKSUFkQkNFRU1JQUVnQTBraUVodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQUtJQXBGSUJJYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRUtJQWtnQjBFTVFRZ2dBU0FEU1NJU0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ2tVZ0NpQVNHd3dCQ3lBSEtBSUVDMFVOQUNBQklBc2dEU2dDQkVFWGRrRUVjU0FOUVFScklnb29BZ0JCR1haQkFYRWdCa0VTZGtFUWNTQUdRUloyUWNBQWNTQU9RYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUEyc2hBUUovSUFNZ0FrRVFka3NFUUNBSEtBSUVJUTRnQ1NBSFFRaEJEQ0FCSUFOSkloVWJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEFTQUhMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRRWdEaUFPUlNBVkd3d0JDeUFDSUFOQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFjb0FnUWhEaUFKSUFkQkRFRUlJQUVnQTBraUZSdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFRElBY3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUE1RklBNGdGUnNNQVFzZ0J5Z0NCQXNoQXlBUklCTWdGQ0FESUJKQjBMc0JhaTBBQUhNaUF4czJBb0FFSUFvZ0NpZ0NBRUdBRUhJMkFnQWdEU0FOS0FJRVFZQUVjallDQkNBR0lBTkJHWFJ5UVlBSWNpRUdDeUFHUVlEQWdJQUVjUTBESUFFZ0N5QUVLQUpzSUFaQkNYWWlFa0h2QTNGcUxRQUFRUUowYWlJSktBSUFJZ0VvQWdBaUEyc2hCd0ovSUFNZ0FrRVFka3NFUUNBQktBSUVJUW9nQ1NBQlFRaEJEQ0FESUFkTElnNGJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEFTQUhMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRY2dDaUFLUlNBT0d3d0JDeUFDSUFOQkVIUnJJUUlnQjBHQWdBSnhSUVJBSUFFb0FnUWhDaUFKSUFGQkRFRUlJQU1nQjBzaURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lEUVFGcUlRVWdBeTBBQVNFQklBTXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBZEJBWFFpQjBHQWdBSkpEUUFMSUFwRklBb2dEaHNNQVFzZ0FTZ0NCQXRGQkVBZ0J5RUJEQVFMSUFjZ0N5QU5LQUlFUVJwMlFRUnhJQTFCQkdzaURpZ0NBRUVjZGtFQmNTQUdRUlYyUVJCeElBWkJHWFpCd0FCeElCSkJxZ0Z4Y25KeWNpSUtRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJQmF5RURJQUVnQWtFUWRrc0VRQ0FIS0FJRUlSSWdDU0FIUVFoQkRDQUJJQU5MSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFTSUJKRklCVWJEQU1MSUFJZ0FVRVFkR3NoQWlBRFFZQ0FBbkZGRFFFZ0F5RUJDeUFIS0FJRURBRUxJQWNvQWdRaEVpQUpJQWRCREVFSUlBRWdBMHNpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBU1JTQVNJQlViQ3lFRElCRWdFeUFVSUFNZ0NrSFF1d0ZxTFFBQWN5SURHellDZ0FZZ0RpQU9LQUlBUVlDQUFYSTJBZ0FnRFNBTktBSUVRWUFnY2pZQ0JDQU5JQTBvQW9RQ1FRUnlOZ0tFQWlBTklBMG9Bb3dDUVFGeU5nS01BaUFOSUEwb0FvZ0NJQU5CRW5SeVFRSnlOZ0tJQWlBR0lBTkJISFJ5UVlEQUFISWhCZ3NnRFNBR1FmLy8vN1o3Y1RZQ0FBc2dEVUVFYWlFR0lCRkJCR29oQXlBTVFRRnFJZ3hCd0FCSERRQUxJQTFCREdvaEJpQVJRWVFHYWlFRElCZEJQRWtoWENBWFFRUnFJUmNnWEEwQUN3c2dCQ0FGTmdJSUlBUWdBVFlDQkNBRUlBSTJBZ0FnQkNBSk5nSm9Dd0pBSUJaQklIRkZEUUFnQkNBRVFlUUFhallDYUNBRUlBUW9BZ1FnQkNnQ1pDSUdLQUlBSWdGcklnSTJBZ1FDUUNBQklBUW9BZ0FpQlVFUWRrc0VRQ0FFSUFFMkFnUWdCQ0FHUVFoQkRDQUJJQUpMRzJvb0FnQWlCallDWkNBRUtBSUlJUUlEUUFKQUlBSU5BQ0FFS0FJUUlnZEJBV29oQ1NBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUZRWUQrQTJvaEJVRUlJUUlNQWdzZ0JDQUpOZ0lRSUFOQkNYUWdCV29oQlVFSElRSU1BUXNnQkNBSk5nSVFRUWdoQWlBRFFRaDBJQVZxSVFVTElBUWdBa0VCYXlJQ05nSUlJQVFnQlVFQmRDSUZOZ0lBSUFRZ0FVRUJkQ0lCTmdJRUlBRkJnSUFDU1EwQUN5QUJJUUlNQVFzZ0JDQUZJQUZCRUhScklnVTJBZ0FnQWtHQWdBSnhEUUFnQkNBR1FReEJDQ0FCSUFKTEcyb29BZ0FpQmpZQ1pDQUVLQUlJSVFFRFFBSkFJQUVOQUNBRUtBSVFJZ0ZCQVdvaEJ5QUJMUUFCSVFNZ0FTMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FGUVlEK0Eyb2hCVUVJSVFFTUFnc2dCQ0FITmdJUUlBTkJDWFFnQldvaEJVRUhJUUVNQVFzZ0JDQUhOZ0lRUVFnaEFTQURRUWgwSUFWcUlRVUxJQVFnQVVFQmF5SUJOZ0lJSUFRZ0JVRUJkQ0lGTmdJQUlBUWdBa0VCZENJQ05nSUVJQUpCZ0lBQ1NRMEFDd3NnQkNBQ0lBWW9BZ0FpQVdzaUFqWUNCQUpBSUFFZ0JVRVFka3NFUUNBRUlBRTJBZ1FnQkNBR1FRaEJEQ0FCSUFKTEcyb29BZ0FpQmpZQ1pDQUVLQUlJSVFJRFFBSkFJQUlOQUNBRUtBSVFJZ2RCQVdvaENTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FGUVlEK0Eyb2hCVUVJSVFJTUFnc2dCQ0FKTmdJUUlBTkJDWFFnQldvaEJVRUhJUUlNQVFzZ0JDQUpOZ0lRUVFnaEFpQURRUWgwSUFWcUlRVUxJQVFnQWtFQmF5SUNOZ0lJSUFRZ0JVRUJkQ0lGTmdJQUlBUWdBVUVCZENJQk5nSUVJQUZCZ0lBQ1NRMEFDeUFCSVFJTUFRc2dCQ0FGSUFGQkVIUnJJZ1UyQWdBZ0FrR0FnQUp4RFFBZ0JDQUdRUXhCQ0NBQklBSkxHMm9vQWdBaUJqWUNaQ0FFS0FJSUlRRURRQUpBSUFFTkFDQUVLQUlRSWdGQkFXb2hCeUFCTFFBQklRTWdBUzBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBRlFZRCtBMm9oQlVFSUlRRU1BZ3NnQkNBSE5nSVFJQU5CQ1hRZ0JXb2hCVUVISVFFTUFRc2dCQ0FITmdJUVFRZ2hBU0FEUVFoMElBVnFJUVVMSUFRZ0FVRUJheUlCTmdJSUlBUWdCVUVCZENJRk5nSUFJQVFnQWtFQmRDSUNOZ0lFSUFKQmdJQUNTUTBBQ3dzZ0JDQUNJQVlvQWdBaUFXc2lBallDQkFKQUlBRWdCVUVRZGtzRVFDQUVJQUUyQWdRZ0JDQUdRUWhCRENBQklBSkxHMm9vQWdBaUJqWUNaQ0FFS0FJSUlRSURRQUpBSUFJTkFDQUVLQUlRSWdkQkFXb2hDU0FITFFBQklRTWdCeTBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBRlFZRCtBMm9oQlVFSUlRSU1BZ3NnQkNBSk5nSVFJQU5CQ1hRZ0JXb2hCVUVISVFJTUFRc2dCQ0FKTmdJUVFRZ2hBaUFEUVFoMElBVnFJUVVMSUFRZ0FrRUJheUlDTmdJSUlBUWdCVUVCZENJRk5nSUFJQVFnQVVFQmRDSUJOZ0lFSUFGQmdJQUNTUTBBQ3lBQklRSU1BUXNnQkNBRklBRkJFSFJySWdVMkFnQWdBa0dBZ0FKeERRQWdCQ0FHUVF4QkNDQUJJQUpMRzJvb0FnQWlCallDWkNBRUtBSUlJUUVEUUFKQUlBRU5BQ0FFS0FJUUlnRkJBV29oQnlBQkxRQUJJUU1nQVMwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUZRWUQrQTJvaEJVRUlJUUVNQWdzZ0JDQUhOZ0lRSUFOQkNYUWdCV29oQlVFSElRRU1BUXNnQkNBSE5nSVFRUWdoQVNBRFFRaDBJQVZxSVFVTElBUWdBVUVCYXlJQk5nSUlJQVFnQlVFQmRDSUZOZ0lBSUFRZ0FrRUJkQ0lDTmdJRUlBSkJnSUFDU1EwQUN3c2dCQ0FDSUFZb0FnQWlBV3NpQWpZQ0JDQUJJQVZCRUhaTEJFQWdCQ0FCTmdJRUlBUWdCa0VJUVF3Z0FTQUNTeHRxS0FJQU5nSmtJQVFvQWdnaEFnTkFBa0FnQWcwQUlBUW9BaEFpQmtFQmFpRUhJQVl0QUFFaEF5QUdMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFWQmdQNERhaUVGUVFnaEFnd0NDeUFFSUFjMkFoQWdBMEVKZENBRmFpRUZRUWNoQWd3QkN5QUVJQWMyQWhCQkNDRUNJQU5CQ0hRZ0JXb2hCUXNnQkNBQ1FRRnJJZ0kyQWdnZ0JDQUZRUUYwSWdVMkFnQWdCQ0FCUVFGMElnRTJBZ1FnQVVHQWdBSkpEUUFMREFFTElBUWdCU0FCUVJCMGF5SUhOZ0lBSUFKQmdJQUNjUTBBSUFRZ0JrRU1RUWdnQVNBQ1N4dHFLQUlBTmdKa0lBUW9BZ2doQlFOQUFrQWdCUTBBSUFRb0FoQWlBMEVCYWlFR0lBTXRBQUVoQVNBRExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQlF3Q0N5QUVJQVkyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hCUXdCQ3lBRUlBWTJBaEJCQ0NFRklBRkJDSFFnQjJvaEJ3c2dCQ0FGUVFGcklnVTJBZ2dnQkNBSFFRRjBJZ2MyQWdBZ0JDQUNRUUYwSWdJMkFnUWdBa0dBZ0FKSkRRQUxDd3NnSncwQUlBUVFXaUFFUWJDcEFUWUNaQ0FFUWRDZUFUWUNZQ0FFUWZDZUFUWUNIQXRCQUNBZlFRRnFJZ0VnQVVFRFJpSUJHeUVmSUJrZ0FXc2hHU0FtUVFGcUlpWWdJQ2dDQ0U4TkFTQVpRUUJLRFFBTEN5QW9JQ3BxSVNnZ0JDZ0NHQ0FFTHdGd093QUFJQ2xCQVdvaUtTQWFLQUlzU1EwQUN3c0NRQ0FyUlEwQUFrQWdCQ2dDR0NJQklBUW9BaEFpQTBFQ2Frc0VRQ0FoUlEwQklDTWdBU0FFS0FJVUlnWnJOZ0k0SUNNZ0F5QUdhellDTkNBaklBRWdBMnRCQW1zMkFqQWdIVUVDUVpEeUFDQWpRVEJxRUE4TUFnc2dCQ2dDRENJQlFRTkpEUUVnSVFSQUlDTWdBVFlDVUNBZFFRSkI2VFVnSTBIUUFHb1FEd3dDQ3lBaklBRTJBa0FnSFVFQ1FlazFJQ05CUUdzUUR3d0JDeUFqSUFFZ0JDZ0NGQ0lHYXpZQ0tDQWpJQU1nQm1zMkFpUWdJeUFCSUFOclFRSnJOZ0lnSUIxQkFrR1E4Z0FnSTBFZ2FoQVBDeUFhS0FJOFJRMEFJQVFnTERZQ2RBc2dNQ2dDQkNFQklCb29BZ3doWFNBYUtBSUlJREFvQWdCcklRZ2dNQ2dDRUNJR1FRRnhCRUFnTWlnQ0hDQTNRWmdCYkdvaUIwR1FBV3NvQWdBZ0NHb2dCMEdZQVdzb0FnQnJJUWdMSUYwZ0FXc2hBeUFHUVFKeEJFQWdNaWdDSENBM1FaZ0JiR29pQVVHTUFXc29BZ0FnQTJvZ0FVR1VBV3NvQWdCcklRTUxJQm9vQWp3aUJpRUNJQVpGQkVBZ0JDZ0NkQ0VDQ3lBRUtBS0FBU0VXSUFRb0Fud2hEUUpBSUM4b0FxZ0dJZ2RGRFFBZ0ZrVWdEVVZ5SVFFZ0IwRWVUQVJBSUFFTkFVRUFJUkFEUUNBTklCQnNJUVJCQUNFQkEwQWdBaUFCSUFScVFRSjBhaUlSS0FJQUlna2dDVUVmZFNJRmN5QUZheUlGSUFkMkJFQWdFVUVBSUFVZ0x5Z0NxQVoySWhGcklCRWdDVUVBU0JzMkFnQUxJQUZCQVdvaUFTQU5SdzBBQ3lBUVFRRnFJaEFnRmtjTkFBc01BUXNnQVEwQUlBSkJBQ0FOSUJac1FRSjBFQlVhQ3lBR0JFQWdEU0FXYkNFR0lDOG9BaFJCQVVZRVFDQUdSUTBGUVFBaEFTQUdRUVJQQkVBZ0JrRjhjU0VCUVFBaEJBTkFJQUlnQkVFQ2RHb2lBeUFEL1FBQ0FDSmUvUnNBUVFKdC9SRWdYdjBiQVVFQ2JmMGNBU0JlL1JzQ1FRSnQvUndDSUY3OUd3TkJBbTM5SEFQOUN3SUFJQVJCQkdvaUJDQUJSdzBBQ3lBQklBWkdEUVlMQTBBZ0FpQUJRUUowYWlJRElBTW9BZ0JCQW0wMkFnQWdBVUVCYWlJQklBWkhEUUFMREFVTElBWkZEUVFnTUNvQ0lFTUFBQUEvbENGbVFRQWhCQUpBSUFaQkJFa0VRQ0FDSVFFTUFRc2dBaUFHUVh4eElnUkJBblJxSVFFZ1p2MFRJVjVCQUNFREEwQWdBaUFEUVFKMGFpSUhJRjRnQi8wQUFnRDkrZ0g5NWdIOUN3SUFJQU5CQkdvaUF5QUVSdzBBQ3lBRUlBWkdEUVVMQTBBZ0FTQm1JQUVvQWdDeWxEZ0NBQ0FCUVFScUlRRWdCRUVCYWlJRUlBWkhEUUFMREFRTElEWWdOV3NoRVNBdktBSVVRUUZIRFFJZ0ZrVU5BeUF5S0FJa0lnWWdBeUFSYkNJRFFRSjBhaUFJUVFKMGFpRUpJQTFCZkhFaURFRUJheUlCUVFSeElRc2dOaUFOSURWcWEwRUNkQ0VhSUFGQkFuWkJBV3BCL3YvLy93ZHhJUjBnQXlBSWFrRUNkQ0FHYWlBQ2F5RUtRUUFoQ0NBQlFRTkhJUlFEUUVFQUlRRUNRQ0FNUlEwQUlBZ2dEV3doQXlBSklBZ2dFV3hCQW5ScUlRWkJBQ0VISUJRRVFBTkFJQVlnQVVFQ2RHb2dBaUFCSUFOcVFRSjBhdjBBQWdBaVh2MGJBRUVDYmYwUklGNzlHd0ZCQW0zOUhBRWdYdjBiQWtFQ2JmMGNBaUJlL1JzRFFRSnQvUndEL1FzQ0FDQUdJQUZCQkhJaUJFRUNkR29nQWlBRElBUnFRUUowYXYwQUFnQWlYdjBiQUVFQ2JmMFJJRjc5R3dGQkFtMzlIQUVnWHYwYkFrRUNiZjBjQWlCZS9Sc0RRUUp0L1J3RC9Rc0NBQ0FCUVFocUlRRWdCMEVDYWlJSElCMUhEUUFMQ3lBTERRQWdCaUFCUVFKMGFpQUNJQUVnQTJwQkFuUnEvUUFDQUNKZS9Sc0FRUUp0L1JFZ1h2MGJBVUVDYmYwY0FTQmUvUnNDUVFKdC9Sd0NJRjc5R3dOQkFtMzlIQVA5Q3dJQUlBRkJCR29oQVFzQ1FDQUJJQTFQRFFBZ0NDQU5iQ0VESUFrZ0NDQVJiRUVDZEdvaEJ3SkFJQTBnQVdzaUVFRUVTUVJBSUFFaEJBd0JDeUFLSUFnZ0dteHFRUkJKQkVBZ0FTRUVEQUVMSUFFZ0VFRjhjU0lGYWlFRVFRQWhCZ05BSUFjZ0FTQUdhaUloUVFKMGFpQUNJQU1nSVdwQkFuUnEvUUFDQUNKZS9Sc0FRUUp0L1JFZ1h2MGJBVUVDYmYwY0FTQmUvUnNDUVFKdC9Sd0NJRjc5R3dOQkFtMzlIQVA5Q3dJQUlBWkJCR29pQmlBRlJ3MEFDeUFGSUJCR0RRRUxJQVJCQVdvaEFTQU5JQVJyUVFGeEJFQWdCeUFFUVFKMGFpQUNJQU1nQkdwQkFuUnFLQUlBUVFKdE5nSUFJQUVoQkFzZ0FTQU5SZzBBQTBBZ0J5QUVRUUowYWlBQ0lBTWdCR3BCQW5ScUtBSUFRUUp0TmdJQUlBY2dCRUVCYWlJQlFRSjBhaUFDSUFFZ0EycEJBblJxS0FJQVFRSnROZ0lBSUFSQkFtb2lCQ0FOUncwQUN3c2dDRUVCYWlJSUlCWkhEUUFMREFNTElDTWdHVFlDQUNBZFFRSkIxY0VBSUNNUUR3c2dFQ2dDQUVFQU5nSUFEQUVMSUJaRkRRQWdEVVVOQUNBeUtBSWtJQU1nRVd4QkFuUnFJQWhCQW5ScUlRY2dEVUY4Y1NJRFFRSjBJUVlnTUNvQ0lFTUFBQUEvbENKbS9STWhYa0VBSVJBZ0RVRUVTU0VJQTBBQ1FBSkFJQWdFUUNBQ0lRa2dCeUVCUVFBaEJBd0JDeUFHSUFkcUlRRWdBaUFHYWlFSlFRQWhCQU5BSUFjZ0JFRUNkQ0lGYWlCZUlBSWdCV3I5QUFJQS9mb0IvZVlCL1FzQ0FDQUVRUVJxSWdRZ0EwY05BQXNnQ1NFQ0lBTWlCQ0FOUmcwQkN5QUpJUUlEUUNBQklHWWdBaWdDQUxLVU9BSUFJQUZCQkdvaEFTQUNRUVJxSVFJZ0JFRUJhaUlFSUExSERRQUxDeUFISUJGQkFuUnFJUWNnRUVFQmFpSVFJQlpIRFFBTEN5QUFFQkFnSTBIZ0FHb2tBQXZXQkFFSmZ5QUFLQUlzUVFoUEJFQWdBQ2dDS0NFRlFRZ2hDZ05BSUFBb0FneEJCWFFoQ0NBQUtBSUFJUVFnQUNnQ0pDRURBa0FnQUNnQ0ZDSUdJQUFvQWhBaUFVME5BQ0FFSUFocUlRY2dBVUVCYWlFQ0lBWWdBV3RCQVhFRVFDQUhJQUZCQm5ScUlna2dCU0FCSUFOc1FRSjBhaUlCL1FBQ0FQMExBZ0FnQ1NBQi9RQUNFUDBMQWhBZ0FpRUJDeUFDSUFaR0RRQURRQ0FISUFGQkJuUnFJZ0lnQlNBQklBTnNRUUowYWlJSi9RQUNBUDBMQWdBZ0FpQUovUUFDRVAwTEFoQWdCeUFCUVFGcUlnSkJCblJxSWdrZ0JTQUNJQU5zUVFKMGFpSUMvUUFDRVAwTEFoQWdDU0FDL1FBQ0FQMExBZ0FnQVVFQ2FpSUJJQVpIRFFBTEN3SkFJQUFvQWh3aUJpQUFLQUlZSWdGTkRRQWdCQ0FJYTBFZ2FpRUhJQVVnQUNnQ0NDQURiRUVDZEdvaENDQUJRUUZxSVFJZ0JpQUJhMEVCY1FSQUlBY2dBVUVHZEdvaUJDQUlJQUVnQTJ4QkFuUnFJZ0g5QUFJQS9Rc0NBQ0FFSUFIOUFBSVEvUXNDRUNBQ0lRRUxJQUlnQmtZTkFBTkFJQWNnQVVFR2RHb2lBaUFJSUFFZ0EyeEJBblJxSWdUOUFBSUEvUXNDQUNBQ0lBVDlBQUlRL1FzQ0VDQUhJQUZCQVdvaUFrRUdkR29pQkNBSUlBSWdBMnhCQW5ScUlnTDlBQUlRL1FzQ0VDQUVJQUw5QUFJQS9Rc0NBQ0FCUVFKcUlnRWdCa2NOQUFzTElBQVFJa0VBSVFFZ0FDZ0NJQVJBQTBBZ0JTQUFLQUlrSUFGc1FRSjBhaUlDSUFBb0FnQWdBVUVGZEdvaUEvMEFBZ0Q5Q3dJQUlBSWdBLzBBQWhEOUN3SVFJQUZCQVdvaUFTQUFLQUlnU1EwQUN3c2dCVUVnYWlFRklBcEJDR29pQ2lBQUtBSXNUUTBBQ3dzZ0FDZ0NBQkFRSUFBUUVBdjNEUUVsZnlBQUtBSXNRUWhQQkVBZ0FDZ0NKQ0lLUVFWMElSNGdDa0VIYkNFV0lBcEJCbXdoRnlBS1FRVnNJUmdnQ2tFRGJDRVpJQXBCQVhRaEdpQUFLQUlvSWdFZ0NrRWNiR29oSHlBQklBcEJHR3hxSVNBZ0FTQUtRUlJzYWlFaElBRWdDa0VFZEdvaElpQUJJQXBCREd4cUlTTWdBU0FLUVFOMElpUnFJU1VnQVNBS1FRSjBJaHRxSVNaQkNDRWNBMEFnQUNBQklBQW9BaVJCQ0JBN0lBQVFJZ0pBSUFBb0FpQWlDMFVOQUNBZElCNXNJUWdnQUNnQ0FDRUdRUUFoQkFKQUFrQWdDMEhvQWtrTkFDQUdRUXhxSWc0Z0MwRUJheUlDUVFWMElnTnFJQTVKRFFBZ0JrRUlhaUlQSUFOcUlBOUpEUUFnQXlBR2FpQUdTUTBBSUFaQkJHb2lFQ0FEYWlBUVNRMEFJQUpCLy8vL1Awc05BQ0FCSUFnZ0ptb2lBeUFMUVFKMElnVnFJZ3hKSUFNZ0FTQUZhaUlIU1hFTkFDQUJJQWdnSldvaUFpQUZhaUlOU1NBQ0lBZEpjUTBBSUFFZ0JTQUlJQ05xSWdscUlnVkpJQWNnQ1V0eERRQWdCaUFIU1NBQklBWWdDMEVGZEdvaUVVRWNheUlTU1hFTkFDQUJJQkZCR0dzaUUwa2dCeUFRUzNFTkFDQUJJQkZCRkdzaUZFa2dCeUFQUzNFTkFDQUhJQTVMSUFFZ0VVRVFheUlIU1hFTkFDQURJQTFKSUFJZ0RFbHhEUUFnQXlBRlNTQUpJQXhKY1EwQUlBTWdFa2tnQmlBTVNYRU5BQ0FESUJOSklBd2dFRXR4RFFBZ0F5QVVTU0FNSUE5TGNRMEFJQU1nQjBrZ0RDQU9TM0VOQUNBQ0lBVkpJQWtnRFVseERRQWdBaUFTU1NBR0lBMUpjUTBBSUFJZ0Uwa2dEU0FRUzNFTkFDQUNJQlJKSUEwZ0QwdHhEUUFnQWlBSFNTQU5JQTVMY1EwQUlBa2dFa2tnQlNBR1MzRU5BQ0FKSUJOSklBVWdFRXR4RFFBZ0NTQVVTU0FGSUE5TGNRMEFJQWNnQ1VzZ0JTQU9TM0VOQUNBTFFmei8vLzhBY1NFRVFRQWhBd05BSUFFZ0EwRUNkR29nQmlBRFFRVjBhaUlDL1FrQ0FDQUNLZ0lnL1NBQklBSkJRR3NxQWdEOUlBSWdBaW9DWVAwZ0EvMExBZ0FnQVNBRElBcHFRUUowYWlBQy9Ra0NCQ0FDS2dJay9TQUJJQUlxQWtUOUlBSWdBaW9DWlAwZ0EvMExBZ0FnQVNBRElCcHFRUUowYWlBQy9Ra0NDQ0FDS2dJby9TQUJJQUlxQWtqOUlBSWdBaW9DYVAwZ0EvMExBZ0FnQVNBRElCbHFRUUowYWlBQy9Ra0NEQ0FDS2dJcy9TQUJJQUlxQWt6OUlBSWdBaW9DYlAwZ0EvMExBZ0FnQTBFRWFpSURJQVJIRFFBTElBUWdDMFlOQVFzRFFDQUJJQVJCQW5ScUlBWWdCRUVGZEdvaUF5b0NBRGdDQUNBQklBUWdDbXBCQW5ScUlBTXFBZ1E0QWdBZ0FTQUVJQnBxUVFKMGFpQURLZ0lJT0FJQUlBRWdCQ0FaYWtFQ2RHb2dBeW9DRERnQ0FDQUVRUUZxSWdRZ0MwY05BQXNMSUFBb0FnQWhCa0VBSVFRQ1FDQUxRZHdBU1EwQUlBWkJIR29pRHlBTFFRRnJJZ0pCQlhRaUEyb2dEMGtOQUNBR1FSaHFJaEFnQTJvZ0VFa05BQ0FHUVJCcUloRWdBMm9nRVVrTkFDQUdRUlJxSWhJZ0Eyb2dFa2tOQUNBQ1FmLy8vejlMRFFBZ0NDQWlhaUlESUFnZ0lXb2lBaUFMUVFKMElnVnFJZ3hKSUFJZ0F5QUZhaUlIU1hFTkFDQURJQWdnSUdvaUNTQUZhaUlOU1NBSElBbExjUTBBSUFNZ0NDQWZhaUlJSUFWcUlnVkpJQWNnQ0V0eERRQWdBeUFHSUF0QkJYUnFJZzVCREdzaUUwa2dCeUFSUzNFTkFDQURJQTVCQ0dzaUZFa2dCeUFTUzNFTkFDQURJQTVCQkdzaUZVa2dCeUFRUzNFTkFDQURJQTVKSUFjZ0QwdHhEUUFnQWlBTlNTQUpJQXhKY1EwQUlBSWdCVWtnQ0NBTVNYRU5BQ0FDSUJOSklBd2dFVXR4RFFBZ0FpQVVTU0FNSUJKTGNRMEFJQUlnRlVrZ0RDQVFTM0VOQUNBQ0lBNUpJQXdnRDB0eERRQWdDQ0FOU1NBRklBbExjUTBBSUFrZ0Uwa2dEU0FSUzNFTkFDQUpJQlJKSUEwZ0VrdHhEUUFnQ1NBVlNTQU5JQkJMY1EwQUlBa2dEa2tnRFNBUFMzRU5BQ0FJSUJOSklBVWdFVXR4RFFBZ0NDQVVTU0FGSUJKTGNRMEFJQWdnRlVrZ0JTQVFTM0VOQUNBSUlBNUpJQVVnRDB0eERRQWdDMEg4Ly8vL0FIRWhCRUVBSVFNRFFDQUJJQU1nRzJwQkFuUnFJQVlnQTBFRmRHb2lBdjBKQWhBZ0Fpb0NNUDBnQVNBQ0tnSlEvU0FDSUFJcUFuRDlJQVA5Q3dJQUlBRWdBeUFZYWtFQ2RHb2dBdjBKQWhRZ0Fpb0NOUDBnQVNBQ0tnSlUvU0FDSUFJcUFuVDlJQVA5Q3dJQUlBRWdBeUFYYWtFQ2RHb2dBdjBKQWhnZ0Fpb0NPUDBnQVNBQ0tnSlkvU0FDSUFJcUFuajlJQVA5Q3dJQUlBRWdBeUFXYWtFQ2RHb2dBdjBKQWh3Z0Fpb0NQUDBnQVNBQ0tnSmMvU0FDSUFJcUFuejlJQVA5Q3dJQUlBTkJCR29pQXlBRVJ3MEFDeUFFSUF0R0RRRUxBMEFnQVNBRUlCdHFRUUowYWlBR0lBUkJCWFJxSWdNcUFoQTRBZ0FnQVNBRUlCaHFRUUowYWlBREtnSVVPQUlBSUFFZ0JDQVhha0VDZEdvZ0F5b0NHRGdDQUNBQklBUWdGbXBCQW5ScUlBTXFBaHc0QWdBZ0JFRUJhaUlFSUF0SERRQUxDeUFkUVFGcUlSMGdBU0FrUVFKMGFpRUJJQnhCQ0dvaUhDQUFLQUlzVFEwQUN3c2dBQ2dDQUJBUUlBQVFFQXR6QVFKL0lBQW9BaHdpQVVFSWFpSURJQUFvQWlBaUFrMEVRQU5BSUFBZ0FDZ0NHQ0FCUVFKMGFpQUFLQUlVUVFnUU1DQURJZ0ZCQ0dvaUF5QUFLQUlnSWdKTkRRQUxDeUFCSUFKSkJFQWdBQ0FBS0FJWUlBRkJBblJxSUFBb0FoUWdBaUFCYXhBd0N5QUFLQUlBRUJBZ0FCQVFDMFFBSUFBb0Fod2lBU0FBS0FJZ1NRUkFBMEFnQUNBQUtBSVlJQUFvQWhRZ0FXeEJBblJxRUYwZ0FVRUJhaUlCSUFBb0FpQkpEUUFMQ3lBQUtBSUFFQkFnQUJBUUM2Z0JBUVYvSUFBb0FsUWlBeWdDQUNFRklBTW9BZ1FpQkNBQUtBSVVJQUFvQWh3aUIyc2lCaUFFSUFaSkd5SUdCRUFnQlNBSElBWVFFaG9nQXlBREtBSUFJQVpxSWdVMkFnQWdBeUFES0FJRUlBWnJJZ1EyQWdRTElBUWdBaUFDSUFSTEd5SUVCRUFnQlNBQklBUVFFaG9nQXlBREtBSUFJQVJxSWdVMkFnQWdBeUFES0FJRUlBUnJOZ0lFQ3lBRlFRQTZBQUFnQUNBQUtBSXNJZ0UyQWh3Z0FDQUJOZ0lVSUFJTG5nVUNCbjRFZnlBQklBRW9BZ0JCQjJwQmVIRWlBVUVRYWpZQ0FDQUFJUXNnQVNrREFDRURJQUVwQXdnaEJ5TUFRU0JySWdna0FDQUhRdi8vLy8vLy96K0RJUVFDZmlBSFFqQ0lRdi8vQVlNaUJhY2lDa0dCK0FCclFmMFBUUVJBSUFSQ0JJWWdBMEk4aUlRaEFpQUtRWUQ0QUd1dElRVUNRQ0FEUXYvLy8vLy8vLy8vRDRNaUEwS0JnSUNBZ0lDQWdBaGFCRUFnQWtJQmZDRUNEQUVMSUFOQ2dJQ0FnSUNBZ0lBSVVnMEFJQUpDQVlNZ0Fud2hBZ3RDQUNBQ0lBSkMvLy8vLy8vLy93ZFdJZ0FiSVFJZ0FLMGdCWHdNQVFzQ1FDQURJQVNFVUEwQUlBVkMvLzhCVWcwQUlBUkNCSVlnQTBJOGlJUkNnSUNBZ0lDQWdBU0VJUUpDL3c4TUFRdEMvdzhnQ2tIK2h3RkxEUUFhUWdCQmdQZ0FRWUg0QUNBRlVDSUJHeUlBSUFwcklnbEI4QUJLRFFBYUlBTWhBaUFFSUFSQ2dJQ0FnSUNBd0FDRUlBRWJJZ1loQkFKQVFZQUJJQWxySWdGQndBQnhCRUFnQXlBQlFVQnFyWVloQkVJQUlRSU1BUXNnQVVVTkFDQUVJQUd0SWdXR0lBSkJ3QUFnQVd1dGlJUWhCQ0FDSUFXR0lRSUxJQWdnQWpjREVDQUlJQVEzQXhnQ1FDQUpRY0FBY1FSQUlBWWdDVUZBYXEySUlRTkNBQ0VHREFFTElBbEZEUUFnQmtIQUFDQUphNjJHSUFNZ0NhMGlBb2lFSVFNZ0JpQUNpQ0VHQ3lBSUlBTTNBd0FnQ0NBR053TUlJQWdwQXdoQ0JJWWdDQ2tEQUNJQ1FqeUloQ0VEQWtBZ0FDQUtSeUFJS1FNUUlBZ3BBeGlFUWdCU2NhMGdBa0wvLy8vLy8vLy8vdytEaENJQ1FvR0FnSUNBZ0lDQUNGb0VRQ0FEUWdGOElRTU1BUXNnQWtLQWdJQ0FnSUNBZ0FoU0RRQWdBMElCZ3lBRGZDRURDeUFEUW9DQWdJQ0FnSUFJaFNBRElBTkMvLy8vLy8vLy93ZFdJZ0FiSVFJZ0FLMExJUU1nQ0VFZ2FpUUFJQXNnQjBLQWdJQ0FnSUNBZ0lCL2d5QURRalNHaENBQ2hMODVBd0FMaGhnREUzOEJmQU4rSXdCQnNBUnJJZ3drQUNBTVFRQTJBaXdDUUNBQnZTSWFRZ0JUQkVCQkFTRVJRYm9JSVJNZ0Fab2lBYjBoR2d3QkN5QUVRWUFRY1FSQVFRRWhFVUc5Q0NFVERBRUxRY0FJUWJzSUlBUkJBWEVpRVJzaEV5QVJSU0VWQ3dKQUlCcENnSUNBZ0lDQWdQai9BSU5DZ0lDQWdJQ0FnUGovQUZFRVFDQUFRU0FnQWlBUlFRTnFJZ01nQkVILy8zdHhFQndnQUNBVElCRVFHU0FBUVpJSlFmWUtJQVZCSUhFaUJSdEIrd2xCK2dvZ0JSc2dBU0FCWWh0QkF4QVpJQUJCSUNBQ0lBTWdCRUdBd0FCekVCd2dBeUFDSUFJZ0EwZ2JJUW9NQVFzZ0RFRVFhaUVTQWtBQ2Z3SkFJQUVnREVFc2FoQmxJZ0VnQWFBaUFVUUFBQUFBQUFBQUFHSUVRQ0FNSUF3b0Fpd2lCa0VCYXpZQ0xDQUZRU0J5SWc1QjRRQkhEUUVNQXdzZ0JVRWdjaUlPUWVFQVJnMENJQXdvQWl3aENVRUdJQU1nQTBFQVNCc01BUXNnRENBR1FSMXJJZ2syQWl3Z0FVUUFBQUFBQUFDd1FhSWhBVUVHSUFNZ0EwRUFTQnNMSVFzZ0RFRXdha0dnQWtFQUlBbEJBRTRiYWlJTklRY0RRQ0FIQW44Z0FVUUFBQUFBQUFEd1FXTWdBVVFBQUFBQUFBQUFBR1p4QkVBZ0Fhc01BUXRCQUFzaUF6WUNBQ0FIUVFScUlRY2dBU0FEdUtGRUFBQUFBR1hOelVHaUlnRkVBQUFBQUFBQUFBQmlEUUFMQWtBZ0NVRUFUQVJBSUFraEF5QUhJUVlnRFNFSURBRUxJQTBoQ0NBSklRTURRRUVkSUFNZ0EwRWRUeHNoQXdKQUlBZEJCR3NpQmlBSVNRMEFJQU90SVJ4Q0FDRWFBMEFnQmlBYVF2Ly8vLzhQZ3lBR05RSUFJQnlHZkNJYlFvQ1U2OXdEZ0NJYVFvRHNsS01NZmlBYmZENENBQ0FHUVFScklnWWdDRThOQUFzZ0cwS0FsT3ZjQTFRTkFDQUlRUVJySWdnZ0dqNENBQXNEUUNBSUlBY2lCa2tFUUNBR1FRUnJJZ2NvQWdCRkRRRUxDeUFNSUF3b0Fpd2dBMnNpQXpZQ0xDQUdJUWNnQTBFQVNnMEFDd3NnQTBFQVNBUkFJQXRCR1dwQkNXNUJBV29oRHlBT1FlWUFSaUVRQTBCQkNVRUFJQU5ySWdNZ0EwRUpUeHNoQ2dKQUlBWWdDRTBFUUNBSUtBSUFSVUVDZENFSERBRUxRWUNVNjl3RElBcDJJUlJCZnlBS2RFRi9jeUVXUVFBaEF5QUlJUWNEUUNBSElBTWdCeWdDQUNJWElBcDJhallDQUNBV0lCZHhJQlJzSVFNZ0IwRUVhaUlISUFaSkRRQUxJQWdvQWdCRlFRSjBJUWNnQTBVTkFDQUdJQU0yQWdBZ0JrRUVhaUVHQ3lBTUlBd29BaXdnQ21vaUF6WUNMQ0FOSUFjZ0NHb2lDQ0FRR3lJSElBOUJBblJxSUFZZ0JpQUhhMEVDZFNBUFNoc2hCaUFEUVFCSURRQUxDMEVBSVFNQ1FDQUdJQWhORFFBZ0RTQUlhMEVDZFVFSmJDRURRUW9oQnlBSUtBSUFJZ3BCQ2trTkFBTkFJQU5CQVdvaEF5QUtJQWRCQ213aUIwOE5BQXNMSUFzZ0EwRUFJQTVCNWdCSEcyc2dEa0huQUVZZ0MwRUFSM0ZySWdjZ0JpQU5hMEVDZFVFSmJFRUphMGdFUUNBTVFUQnFRWVJnUWFSaUlBbEJBRWdiYWlBSFFZRElBR29pQ2tFSmJTSVBRUUowYWlFSlFRb2hCeUFQUVhkc0lBcHFJZ3BCQjB3RVFBTkFJQWRCQ213aEJ5QUtRUUZxSWdwQkNFY05BQXNMQWtBZ0NTZ0NBQ0lRSUJBZ0IyNGlEeUFIYkNJS1JpQUpRUVJxSWhRZ0JrWnhEUUFnRUNBS2F5RVFBa0FnRDBFQmNVVUVRRVFBQUFBQUFBQkFReUVCSUFkQmdKVHIzQU5IRFFFZ0NDQUpUdzBCSUFsQkJHc3RBQUJCQVhGRkRRRUxSQUVBQUFBQUFFQkRJUUVMUkFBQUFBQUFBT0EvUkFBQUFBQUFBUEEvUkFBQUFBQUFBUGcvSUFZZ0ZFWWJSQUFBQUFBQUFQZy9JQkFnQjBFQmRpSVVSaHNnRUNBVVNSc2hHUUpBSUJVTkFDQVRMUUFBUVMxSERRQWdHWm9oR1NBQm1pRUJDeUFKSUFvMkFnQWdBU0Fab0NBQllRMEFJQWtnQnlBS2FpSUROZ0lBSUFOQmdKVHIzQU5QQkVBRFFDQUpRUUEyQWdBZ0NDQUpRUVJySWdsTEJFQWdDRUVFYXlJSVFRQTJBZ0FMSUFrZ0NTZ0NBRUVCYWlJRE5nSUFJQU5CLzVQcjNBTkxEUUFMQ3lBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDa0VLU1EwQUEwQWdBMEVCYWlFRElBb2dCMEVLYkNJSFR3MEFDd3NnQ1VFRWFpSUhJQVlnQmlBSFN4c2hCZ3NEUUNBR0lnY2dDRTBpQ2tVRVFDQUdRUVJySWdZb0FnQkZEUUVMQ3dKQUlBNUI1d0JIQkVBZ0JFRUljU0VKREFFTElBTkJmM05CZnlBTFFRRWdDeHNpQmlBRFNpQURRWHRLY1NJSkd5QUdhaUVMUVg5QmZpQUpHeUFGYWlFRklBUkJDSEVpQ1EwQVFYY2hCZ0pBSUFvTkFDQUhRUVJyS0FJQUlnNUZEUUJCQ2lFS1FRQWhCaUFPUVFwd0RRQURRQ0FHSWdsQkFXb2hCaUFPSUFwQkNtd2lDbkJGRFFBTElBbEJmM01oQmdzZ0J5QU5hMEVDZFVFSmJDRUtJQVZCWDNGQnhnQkdCRUJCQUNFSklBc2dCaUFLYWtFSmF5SUdRUUFnQmtFQVNoc2lCaUFHSUF0S0d5RUxEQUVMUVFBaENTQUxJQU1nQ21vZ0JtcEJDV3NpQmtFQUlBWkJBRW9iSWdZZ0JpQUxTaHNoQ3d0QmZ5RUtJQXRCL2YvLy93ZEIvdi8vL3djZ0NTQUxjaUlRRzBvTkFTQUxJQkJCQUVkcVFRRnFJUTRDUUNBRlFWOXhJaFZCeGdCR0JFQWdBeUFPUWYvLy8vOEhjMG9OQXlBRFFRQWdBMEVBU2hzaEJnd0JDeUFTSUFNZ0EwRWZkU0lHY3lBR2E2MGdFaEFxSWdaclFRRk1CRUFEUUNBR1FRRnJJZ1pCTURvQUFDQVNJQVpyUVFKSURRQUxDeUFHUVFKcklnOGdCVG9BQUNBR1FRRnJRUzFCS3lBRFFRQklHem9BQUNBU0lBOXJJZ1lnRGtILy8vLy9CM05LRFFJTElBWWdEbW9pQXlBUlFmLy8vLzhIYzBvTkFTQUFRU0FnQWlBRElCRnFJZ01nQkJBY0lBQWdFeUFSRUJrZ0FFRXdJQUlnQXlBRVFZQ0FCSE1RSEFKQUFrQUNRQ0FWUWNZQVJnUkFJQXhCRUdwQkNYSWhCU0FOSUFnZ0NDQU5TeHNpQ1NFSUEwQWdDRFVDQUNBRkVDb2hCZ0pBSUFnZ0NVY0VRQ0FHSUF4QkVHcE5EUUVEUUNBR1FRRnJJZ1pCTURvQUFDQUdJQXhCRUdwTERRQUxEQUVMSUFVZ0JrY05BQ0FHUVFGcklnWkJNRG9BQUFzZ0FDQUdJQVVnQm1zUUdTQUlRUVJxSWdnZ0RVME5BQXNnRUFSQUlBQkJnZ3hCQVJBWkN5QUhJQWhORFFFZ0MwRUFUQTBCQTBBZ0NEVUNBQ0FGRUNvaUJpQU1RUkJxU3dSQUEwQWdCa0VCYXlJR1FUQTZBQUFnQmlBTVFSQnFTdzBBQ3dzZ0FDQUdRUWtnQ3lBTFFRbE9HeEFaSUF0QkNXc2hCaUFJUVFScUlnZ2dCMDhOQXlBTFFRbEtJUmdnQmlFTElCZ05BQXNNQWdzQ1FDQUxRUUJJRFFBZ0J5QUlRUVJxSUFjZ0NFc2JJUTBnREVFUWFrRUpjaUVGSUFnaEJ3TkFJQVVnQnpVQ0FDQUZFQ29pQmtZRVFDQUdRUUZySWdaQk1Eb0FBQXNDUUNBSElBaEhCRUFnQmlBTVFSQnFUUTBCQTBBZ0JrRUJheUlHUVRBNkFBQWdCaUFNUVJCcVN3MEFDd3dCQ3lBQUlBWkJBUkFaSUFaQkFXb2hCaUFKSUF0eVJRMEFJQUJCZ2d4QkFSQVpDeUFBSUFZZ0JTQUdheUlHSUFzZ0JpQUxTQnNRR1NBTElBWnJJUXNnQjBFRWFpSUhJQTFQRFFFZ0MwRUFUZzBBQ3dzZ0FFRXdJQXRCRW1wQkVrRUFFQndnQUNBUElCSWdEMnNRR1F3Q0N5QUxJUVlMSUFCQk1DQUdRUWxxUVFsQkFCQWNDeUFBUVNBZ0FpQURJQVJCZ01BQWN4QWNJQU1nQWlBQ0lBTklHeUVLREFFTElCTWdCVUVhZEVFZmRVRUpjV29oQ0FKQUlBTkJDMHNOQUVFTUlBTnJJUVpFQUFBQUFBQUFNRUFoR1FOQUlCbEVBQUFBQUFBQU1FQ2lJUmtnQmtFQmF5SUdEUUFMSUFndEFBQkJMVVlFUUNBWklBR2FJQm1ob0pvaEFRd0JDeUFCSUJtZ0lCbWhJUUVMSUJJZ0RDZ0NMQ0lISUFkQkgzVWlCbk1nQm11dElCSVFLaUlHUmdSQUlBWkJBV3NpQmtFd09nQUFDeUFSUVFKeUlRc2dCVUVnY1NFTklBWkJBbXNpQ1NBRlFROXFPZ0FBSUFaQkFXdEJMVUVySUFkQkFFZ2JPZ0FBSUFSQkNIRWhCaUFNUVJCcUlRY0RRQ0FISWdVQ2Z5QUJtVVFBQUFBQUFBRGdRV01FUUNBQnFnd0JDMEdBZ0lDQWVBc2lCMEhReEFGcUxRQUFJQTF5T2dBQUlBRWdCN2VoUkFBQUFBQUFBREJBb2lFQkFrQWdCVUVCYWlJSElBeEJFR3ByUVFGSERRQUNRQ0FHRFFBZ0EwRUFTZzBBSUFGRUFBQUFBQUFBQUFCaERRRUxJQVZCTGpvQUFTQUZRUUpxSVFjTElBRkVBQUFBQUFBQUFBQmlEUUFMUVg4aENrSDkvLy8vQnlBTElCSWdDV3NpQm1vaURXc2dBMGdOQUNBQVFTQWdBaUFOSUFOQkFtb2dCeUFNUVJCcUlnZHJJZ1VnQlVFQ2F5QURTQnNnQlNBREd5SUthaUlESUFRUUhDQUFJQWdnQ3hBWklBQkJNQ0FDSUFNZ0JFR0FnQVJ6RUJ3Z0FDQUhJQVVRR1NBQVFUQWdDaUFGYTBFQVFRQVFIQ0FBSUFrZ0JoQVpJQUJCSUNBQ0lBTWdCRUdBd0FCekVCd2dBeUFDSUFJZ0EwZ2JJUW9MSUF4QnNBUnFKQUFnQ2dzRUFFSUFDd1FBUVFBTG53TUJDWDlCNWdvaEFBSkFBMEFnQUMwQUFDSUJSUTBCSUFGQlBVWU5BU0FBUVFGcUlnQkJBM0VOQUFzQ1FBSkFRWUNDaEFnZ0FDZ0NBQ0lDYXlBQ2NrR0FnWUtFZUhGQmdJR0NoSGhIRFFBRFFFR0Fnb1FJSUFKQnZmcjA2UU56SWdGcklBRnlRWUNCZ29SNGNVR0FnWUtFZUVjTkFTQUFLQUlFSVFJZ0FFRUVhaUlCSVFBZ0FrR0Fnb1FJSUFKcmNrR0FnWUtFZUhGQmdJR0NoSGhHRFFBTERBRUxJQUFoQVFzRFFDQUJJZ0F0QUFBaUFrVU5BU0FBUVFGcUlRRWdBa0U5UncwQUN3c2dBQ0lCUWVZS1JnUkFRUUFQQ3dKQUlBRkI1Z3BySWdCQjVncHFMUUFBRFFCQnNNOEJLQUlBSWdSRkRRQWdCQ2dDQUNJRlJRMEFBMEFDUUFKL0lBVWhBa0htQ2lFR1FRQWdBQ0lCUlEwQUdrSG1DaTBBQUNJREJIOENRQU5BSUFNZ0FpMEFBQ0lIUncwQklBZEZEUUVnQVVFQmF5SUJSUTBCSUFKQkFXb2hBaUFHTFFBQklRTWdCa0VCYWlFR0lBTU5BQXRCQUNFREN5QURCVUVBQ3lBQ0xRQUFhd3RGQkVBZ0FDQUZhaUlCTFFBQVFUMUdEUUVMSUFRb0FnUWhCU0FFUVFScUlRUWdCUTBCREFJTEN5QUJRUUZxSVFnTElBZ0xDUUFnQUNnQ1BCQU5DODRDQVFoL0l3QkJJR3NpQXlRQUlBTWdBQ2dDSENJRU5nSVFJQUFvQWhRaEJTQURJQUkyQWh3Z0F5QUJOZ0lZSUFNZ0JTQUVheUlCTmdJVUlBRWdBbW9oQlVFQ0lRWWdBMEVRYWlFQkFuOERRQUpBQWtBQ1FDQUFLQUk4SUFFZ0JpQURRUXhxRUFFaUJBUi9RWlRIQVNBRU5nSUFRWDhGUVFBTFJRUkFJQVVnQXlnQ0RDSUhSZzBCSUFkQkFFNE5BZ3dEQ3lBRlFYOUhEUUlMSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQUlBRWdBQ2dDTUdvMkFoQWdBZ3dEQ3lBQklBY2dBU2dDQkNJSVN5SUpRUU4wYWlJRUlBY2dDRUVBSUFrYmF5SUlJQVFvQWdCcU5nSUFJQUZCREVFRUlBa2JhaUlCSUFFb0FnQWdDR3MyQWdBZ0JTQUhheUVGSUFZZ0NXc2hCaUFFSVFFTUFRc0xJQUJCQURZQ0hDQUFRZ0EzQXhBZ0FDQUFLQUlBUVNCeU5nSUFRUUFnQmtFQ1JnMEFHaUFDSUFFb0FnUnJDeUVLSUFOQklHb2tBQ0FLQzFZQkFuOGdBQ2dDUENFRUl3QkJFR3NpQUNRQUlBUWdBYWNnQVVJZ2lLY2dBa0gvQVhFZ0FFRUlhaEFKSWdJRWYwR1V4d0VnQWpZQ0FFRi9CVUVBQ3lFQ0lBQXBBd2doQVNBQVFSQnFKQUJDZnlBQklBSWJDd1lBSUFBUUFBc0dBQ0FBRUFNTDhuNEZBbncyZndoN0EzNEdmU01BUWVEQUFHc2lHQ1FBSUJoQkFEWUNJRUVDSVF3Q1FBSkFJQUFvQWdBaUIwR05sSnpVQUVZTkFDQUhRZitmL1k4RlJ3UkFBa0FnQjBHQWdJRGdBRWNOQUNBQUtBSUVRZXFnZ1lFQ1J3MEFJQUFvQWdoQmpaU2MxQUJHRFFJTFFjMElFQUJCQVNFTURBSUxRUUFoREFzQ2YwRUFRUUZCNEFBUUV5SUhSUTBBR2lBSFFRRTJBa3dDUUFKQUFrQUNRQ0FNRGdNQUF3RURDeUFIUWNNQU5nSllJQWRCeEFBMkFsUWdCMEhGQURZQ1VDQUhRY1lBTmdJUUlBZEJ4d0EyQWdRZ0IwSElBRFlDSENBSFFja0FOZ0lZSUFkQnlnQTJBaFFnQjBITEFEWUNBQ0FIUWN3QU5nSmNJQWRCelFBMkFpd2dCMEhPQURZQ0tDQUhRYzhBTmdJa0lBZEIwQUEyQWlBZ0IwSFJBRFlDRENBSFFkSUFOZ0lJSUFjUVRTSUlOZ0l3SUFnTkFRd0NDeUFIUWRNQU5nSllJQWRCMUFBMkFsUWdCMEhWQURZQ1VDQUhRZFlBTmdJUUlBZEIxd0EyQWdRZ0IwSFlBRFlDWENBSFFka0FOZ0lzSUFkQjJnQTJBaWdnQjBIYkFEWUNKQ0FIUWR3QU5nSWdJQWRCM1FBMkFod2dCMEhlQURZQ0dDQUhRZDhBTmdJVUlBZEI0QUEyQWd3Z0IwSGhBRFlDQ0NBSFFlSUFOZ0lBSUFjQ2YwRUJRWWdCRUJNaUNBUkFJQWdRVFNJT05nSUFBa0FnRGtVTkFDQUkvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUXNDYkNBSVFRQTZBSHdnQ0JBeklnNDJBZ1FnRGtVTkFDQUlFRE1pRGpZQ0NDQU9SUTBBSUFnTUFnc2dDQkJ3QzBFQUN5SUlOZ0l3SUFoRkRRRUxJQWRCQVRZQ1NDQUhRUUUyQWtBZ0IwRUFOZ0k4SUFkQ0FEY0NOQ0FIUVFFMkFrUWdCd3dCQ3lBSEVCQkJBQXNpQ0FSQUlBaEJBRFlDUENBSVFlTUFOZ0pJQ3lBSUJFQWdDRUVBTmdJNElBaEI1QUEyQWtRTElBZ0VRQ0FJUVFBMkFqUWdDRUhsQURZQ1FBc2dHRUVrYWlJSEJFQWdCMEVBUWJqQUFCQVZJZ2RCQURZQ3VFQWdCMEovTndLSVFBc2dBd1JBSUJnZ0dDZ0MzRUJCQVhJMkF0eEFDeUFZSUFFMkFod2dHQ0FBTmdJWUlCZ2dBRFlDRkVFQklReEJBQ0VCQWtBZ0dFRVVhaUlIUlEwQVFRRkJ5QUFRRXlJQUJIOENmeUFBUVlDQXdBQTJBa0FnQUVHQWdNQUFFQlFpRGpZQ0lDQU9SUVJBSUFBUUVFRUFEQUVMSUFBZ0RqWUNKQ0FBUVFJMkFod2dBRUVETmdJWUlBQkJCRFlDRkNBQVFRVTJBaEFnQUVFR05nSXNJQUJCQ0RZQ0tDQUFJQUFvQWtSQkFuSTJBa1FnQUFzRlFRQUxJZ0JGRFFBZ0FBUkFJQUJCQURZQ0JDQUFJQWMyQWdBTElBYzFBZ2doUlNBQUJFQWdBQ0JGTndNSUN3SkFJQUJGRFFBZ0FDMEFSRUVDY1VVTkFDQUFRVDgyQWhBTElBQUVRQ0FBUWNFQU5nSVlDeUFBQkVBZ0FFSENBRFlDSEFzZ0FDRUJDeUFCSVFBQ2Z5QVlRU1JxSVFFQ1FDQUlSUTBBSUFGRkRRQWdDQ2dDVEVVRVFDQUlRVFJxUVFGQnRNa0FRUUFRRDBFQURBSUxJQWdvQWpBZ0FTQUlLQUlZRVFNQVFRRWhDd3NnQ3d0RkJFQkIzQWdRQUNBQUVEUWdDQkExREFFTEFuOGdHRUVnYWlFQlFRQWhCd0pBSUFCRkRRQWdDRVVOQUNBSUtBSk1SUVJBSUFoQk5HcEJBVUdGeWdCQkFCQVBRUUFNQWdzZ0FDQUlLQUl3SUFFZ0NFRTBhaUFJS0FJQUVRRUFJUWNMSUFjTFJRUkFRZmdJRUFBZ0FCQTBJQWdRTlNBWUtBSWdFQ0VNQVFzZ0dDZ0NJQ0VCUVFBaEJ3SkFJQWhGRFFBZ0FFVU5BQ0FJS0FKTVJRMEFJQWdvQWpBZ0FDQUJJQWhCTkdvZ0NDZ0NCQkVCQUNFSEN3SkFJQWNFUUVFQUlRY0NRQ0FJUlEwQUlBQkZEUUFnQ0NnQ1RFVU5BQ0FJS0FJd0lBQWdDRUUwYWlBSUtBSVFFUUFBSVFjTElBY05BUXRCL3drUUFDQUlFRFVnQUJBMElCZ29BaUFRSVF3QkN5QUFFRFFnQ0JBMUlCZ29BaUFpRFNnQ0hDSUFCRUFnQUJBUUlCZ29BaUFpRFVJQU53SWNDeUFOS0FJUUlTRUNRQUpBSUFKRkJFQUNRQ0FFUlEwQUlDRkJCRWNOQUVFQklSbEJCQ0VoREFNTEFrQUNRQ0FOS0FJVUlnRkJBMFlOQUNBaFFRTkhEUUFnRFNnQ0dDSUFLQUlBSUFBb0FnUkhEUUVnQUNnQ05FRUJSZzBCSUExQkF6WUNGQXdEQ3lBaFFRSkxEUUFnRFVFQ05nSVVEQU1MQWtBQ1FDQUJRUU5yRGdNREFRQUVDeU1BUVJCcklnNGtBQUpBQWtBQ1FDQU5LQUlRUVFSSkRRQWdEU2dDR0NJQUtBSUFJZ0VnQUNnQ05FY05BQ0FCSUFBb0FtaEhEUUFnQVNBQUtBS2NBVWNOQUNBQUtBSUVJZ0VnQUNnQ09FY05BQ0FCSUFBb0FteEhEUUFnQVNBQUtBS2dBVVlOQVFzZ0RrR0hDRFlDQkNBT1FiZ0tOZ0lBUWVqRUFVSHRQU0FPRUJZTUFRc0NRQ0FBS0FJTUlBQW9BZ2hzSWdoRkJFQWdBQ2dDeUFFaEFRd0JDME1BQUlBL1FYOGdBQ2dDdEFGMFFYOXpzNVVoU0VNQUFJQS9RWDhnQUNnQ2dBRjBRWDl6czVVaFNrTUFBSUEvUVg4Z0FDZ0NUSFJCZjNPemxTRkxRd0FBZ0Q5QmZ5QUFLQUlZZEVGL2M3T1ZJVWtnQUNnQ3lBRWhBU0FBS0FLVUFTRUNJQUFvQW1BaENpQUFLQUlzSVFkQkFDRUFBa0FnQ0VFSVNRMEFJQWNnQ2lBSVFRSjBJZ3RxSWc5SklBb2dCeUFMYWlJWFNYRU5BQ0FDSUJkSklBY2dBaUFMYWlJSlNYRU5BQ0FCSUJkSklBY2dBU0FMYWlJTFNYRU5BQ0FDSUE5SklBa2dDa3R4RFFBZ0FTQVBTU0FLSUF0SmNRMEFJQUVnQ1VrZ0FpQUxTWEVOQUNBSVFYeHhJUUFnU1AwVElUMGdTdjBUSVQ0Z1MvMFRJVU1nU2YwVElVQkJBQ0VMQTBBZ0FpQUxRUUowSWc5cUloZjlBQUlBSVVFZ0NpQVBhaUlKL1FBQ0FDRkNJQWNnRDJvaUVQME1BQUNBUHdBQWdEOEFBSUEvQUFDQVB5QkFJQkQ5QUFJQS9mb0IvZVlCL2VVQi9Rd0FBSDlEQUFCL1F3QUFmME1BQUg5RC9lWUIvUXdBQUlBL0FBQ0FQd0FBZ0Q4QUFJQS9JRDBnQVNBUGF2MEFBZ0Q5K2dIOTVnSDk1UUVpUC8zbUFmMzRBZjBMQWdBZ0NmME1BQUNBUHdBQWdEOEFBSUEvQUFDQVB5QkRJRUw5K2dIOTVnSDk1UUg5REFBQWYwTUFBSDlEQUFCL1F3QUFmMFA5NWdFZ1AvM21BZjM0QWYwTEFnQWdGLzBNQUFDQVB3QUFnRDhBQUlBL0FBQ0FQeUErSUVIOStnSDk1Z0g5NVFIOURBQUFmME1BQUg5REFBQi9Rd0FBZjBQOTVnRWdQLzNtQWYzNEFmMExBZ0FnQzBFRWFpSUxJQUJIRFFBTElBQWdDRVlOQVFzRFFBSi9Rd0FBZ0Q4Z1NTQUhJQUJCQW5RaUMyb2lEeWdDQUxLVWswTUFBSDlEbEVNQUFJQS9JRWdnQVNBTGFpZ0NBTEtVa3lKTWxDSk5pME1BQUFCUFhRUkFJRTJvREFFTFFZQ0FnSUI0Q3lFWElBSWdDMm9pQ1NnQ0FDRVFJQW9nQzJvaUN5Z0NBQ0VNSUE4Z0Z6WUNBQ0FMQW45REFBQ0FQeUJMSUF5eWxKTkRBQUIvUTVRZ1RKUWlUWXREQUFBQVQxMEVRQ0JOcUF3QkMwR0FnSUNBZUFzMkFnQWdDUUovUXdBQWdEOGdTaUFRc3BTVFF3QUFmME9VSUV5VUlreUxRd0FBQUU5ZEJFQWdUS2dNQVF0QmdJQ0FnSGdMTmdJQUlBQkJBV29pQUNBSVJ3MEFDd3NnQVJBUUlBMG9BaGdpQUVFSU5nS0FBU0FBUVFnMkFrd2dBRUVJTmdJWUlBQkJBRFlDeUFFZ0RVRUJOZ0lVSUEwZ0RTZ0NFRUVCYXlJQU5nSVFJQUJCQkVrTkFFRURJUUFEUUNBTktBSVlJQUJCTkd4cUlnRWdBU2dDWkRZQ01DQUJJQUg5QUFKVS9Rc0NJQ0FCSUFIOUFBSkUvUXNDRUNBQklBSDlBQUkwL1FzQ0FDQUFRUUZxSWdBZ0RTZ0NFRWtOQUFzTElBNUJFR29rQUF3REN5TUFRUkJySWdza0FBSkFBa0FDUUNBTktBSVFRUU5KRFFBZ0RTZ0NHQ0lBS0FJQUlnRWdBQ2dDTkVjTkFDQUJJQUFvQW1oSERRQWdBQ2dDQkNJQklBQW9BamhIRFFBZ0FTQUFLQUpzUmcwQkN5QUxRY1VJTmdJRUlBdEJ1QW8yQWdCQjZNUUJRWmMrSUFzUUZnd0JDd0pBSUFBb0Fnd2dBQ2dDQ0d3aUFrVU5BRUYvSUFBb0FoZ2lDblJCZjNNaEFVRUFRUUVnQ2tFQmEzUWlDaUFBS0FLSUFSc2hEMEVBSUFvZ0FDZ0NWQnNoRnlBQUtBS1VBU0VLSUFBb0FtQWhCeUFBS0FJc0lRNUJBQ0VBQWtBZ0FrRUVTUTBBSUE0Z0J5QUNRUUowSWdocUlnbEpJQWNnQ0NBT2FpSVFTWEVOQUNBS0lCQkpJQTRnQ0NBS2FpSUlTWEVOQUNBSElBaEpJQWtnQ2t0eERRQWdBa0Y4Y1NFQUlBSDlFU0UvSUEvOUVTRkFJQmY5RVNGQlFRQWhDQU5BSUE0Z0NFRUNkQ0lKYWlJUUlEOGdDU0FLYWlJTS9RQUNBQ0JBL2JFQi9mb0JJajM5REdsMHN6OXBkTE0vYVhTelAybDBzei85NWdFZ0J5QUphaUlKL1FBQ0FDQkIvYkVCL2ZvQklqNzlETE5aR3JpeldScTRzMWthdUxOWkdyajk1Z0VnRVAwQUFnRDkrZ0VpUS8za0FmM2tBZjBNQUFBQVB3QUFBRDhBQUFBL0FBQUFQLzNrQWYzNEFTSkMvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvYmdCSUQ4Z1F2MDUvVkw5Q3dJQUlBa2dQeUE5L1F3WjBEYS9HZEEydnhuUU5yOFowRGEvL2VZQklFUDlETlVKZ0QvVkNZQS8xUW1BUDlVSmdELzk1Z0VnUHYwTUp6R3d2aWN4c0w0bk1iQytKekd3dnYzbUFmM2tBZjNrQWYwTUFBQUFQd0FBQUQ4QUFBQS9BQUFBUC8za0FmMzRBU0pDL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL2JnQklEOGdRdjA1L1ZMOUN3SUFJQXdnUHlBOS9ReTlOd2EzdlRjR3Q3MDNCcmU5TndhMy9lWUJJRVA5REdiMGZ6OW05SDgvWnZSL1AyYjBmei85NWdFZ1B2ME1OZExpUHpYUzRqODEwdUkvTmRMaVAvM21BZjNrQWYza0FmME1BQUFBUHdBQUFEOEFBQUEvQUFBQVAvM2tBZjM0QVNJOS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9iZ0JJRDhnUGYwNS9WTDlDd0lBSUFoQkJHb2lDQ0FBUncwQUN5QUFJQUpHRFFFTEEwQUNmeUFLSUFCQkFuUWlDR29pQ1NnQ0FDQVBhN0lpU0VOcGRMTS9sQ0FISUFocUloQW9BZ0FnRjJ1eUlrcERzMWthdUpRZ0NDQU9haUlNS0FJQXNpSkxrcEpEQUFBQVA1SWlTWXREQUFBQVQxMEVRQ0JKcUF3QkMwR0FnSUNBZUFzaENDQU1JQUVnQ0VFQUlBaEJBRW9iSUFFZ0NFZ2JOZ0lBSUJBZ0FRSi9JRWhER2RBMnY1UWdTMFBWQ1lBL2xDQktReWN4c0w2VWtwSkRBQUFBUDVJaVNZdERBQUFBVDEwRVFDQkpxQXdCQzBHQWdJQ0FlQXNpQ0VFQUlBaEJBRW9iSUFFZ0NFZ2JOZ0lBSUFrZ0FRSi9JRWhEdlRjR3Q1UWdTME5tOUg4L2xDQktRelhTNGorVWtwSkRBQUFBUDVJaVNJdERBQUFBVDEwRVFDQklxQXdCQzBHQWdJQ0FlQXNpQ0VFQUlBaEJBRW9iSUFFZ0NFZ2JOZ0lBSUFCQkFXb2lBQ0FDUncwQUN3c2dEVUVCTmdJVUN5QUxRUkJxSkFBTUFnc2dJU0FDSUFJZ0lVc2JJU0ZCQVNFWkRBRUxBa0FDUUFKL0FrQUNRQ0FOS0FJWUlnRW9BZ0JCQVVjTkFBSkFBa0FnQVNnQ05FRUJhdzRDQVFBQ0N5QUJLQUpvUVFKSERRRUNRQ0FCS0FJRVFRRkhEUUFnQVNnQ09FRUNSdzBBSUFFb0FteEJBa2NOQUVFQUlRc2dEU0lYS0FJWUlnQW9BaGdoQVNBQUtBS1VBU0VSSUFBb0FtQWhDaUFBS0FJc0lSQWdBQ2dDQ0NJTklBQW9BZ3dpQW14QkFuUWlBQkFZSVFjZ0FCQVlJUWdnQUJBWUlRNENRQUpBQWtBQ1FBSkFBa0FnQjBVTkFDQUlSUTBBSUE1RkRRQkJmeUFCZEVGL2N5RUpRUUVnQVVFQmEzUWhEQ0FDSUJjb0FnUkJBWEVpQUdzaEhpQVhLQUlBUVFGeElSc2dBRVVOQXlBTlJRMERBbjlCQUNBTWE3SzdJZ1ZFYXJ4MGt4Z0UxaitpSUFWRURBSXJoeGJaNWoraW9DSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2hGQUovSUFWRUp6RUlyQnhhL0QraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5RWFJQTFCQ0VraE9BSi9JQVZFTzk5UGpaZHU5aitpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lFZElEZ05BU0FJSUFkclFSQkpEUUVnRGlBSGEwRVFTUTBCSUFjZ0VHdEJFRWtOQVNBT0lBaHJRUkJKRFFFZ0NDQVFhMEVRU1EwQklBNGdFR3RCRUVrTkFTQU9JQTFCZkhFaUMwRUNkQ0lDYWlFQklBSWdCMm9oQUNBYS9SRWhQaUFVL1JFaFF5QUovUkVoUHlBZC9SRWhRQU5BSUFjZ0QwRUNkQ0lUYXYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBUUlCTnEvUUFDQUNJOUlFRDlyZ0VpUVNBLy9iWUJJRUg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxUy9Rc0NBQ0FJSUJOcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMGdRLzJ4QVNKQklELzl0Z0VnUWYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WTDlDd0lBSUE0Z0UycjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdQU0ErL2E0QklqMGdQLzIyQVNBOS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9UbjlVdjBMQWdBZ0QwRUVhaUlQSUF0SERRQUxJQUlnRUdvaEVDQUNJQWhxSVFJZ0N5QU5SZzBFREFJTElBY1FFQ0FJRUJBZ0RoQVFEQVFMSUFjaEFDQUlJUUlnRGlFQkN3TkFJQUFnRUNnQ0FDSVBJQjFxSWhNZ0NTQUpJQk5LRzBFQUlCTkJBRTRiTmdJQUlBSWdEeUFVYXlJVElBa2dDU0FUU2h0QkFDQVRRUUJPR3pZQ0FDQUJJQThnR21vaUR5QUpJQWtnRDBvYlFRQWdEMEVBVGhzMkFnQWdBVUVFYWlFQklBSkJCR29oQWlBQVFRUnFJUUFnRUVFRWFpRVFJQXRCQVdvaUN5QU5SdzBBQ3d3QkN5QU9JUUVnQ0NFQ0lBY2hBQXNnRFNBYmF5RWFBa0FnSGtGK2NTSWRCSDhDZjBFQUlBeHJzcnNpQlVScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUVpSUJwQmZuRWlIRUVCYXlFNUFuOGdCVVFuTVFpc0hGcjhQNklpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSVNNZ09VRitjU0U2QW44Z0JVUTczMCtObDI3MlA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJU1FnSFVFQmF5RWxJRHBCQW1vaEppQU5RUUowSVEwRFFDQUJJQTFxSVE4Z0FpQU5haUVUSUFBZ0RXb2hDeUFOSUJCcUlSUWdHd1JBSUFBZ0VDZ0NBQ0lWSUNScUloSWdDU0FKSUJKS0cwRUFJQkpCQUU0Yk5nSUFJQUlnRlNBaWF5SVNJQWtnQ1NBU1NodEJBQ0FTUVFCT0d6WUNBQ0FCSUJVZ0kyb2lGU0FKSUFrZ0ZVb2JRUUFnRlVFQVRoczJBZ0FnQ2lnQ0FDRVdJQXNDZnlBUktBSUFJQXhyc3JzaUJVUTczMCtObDI3MlA2SWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJQlFvQWdBaUZXb2lFaUFKSUFrZ0Vrb2JRUUFnRWtFQVRoczJBZ0FnRXlBVkFuOGdGaUFNYTdLN0lnWkVhcngwa3hnRTFqK2lJQVZFREFJcmh4Ylo1aitpb0NJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF0ckloSWdDU0FKSUJKS0cwRUFJQkpCQUU0Yk5nSUFJQThDZnlBR1JDY3hDS3djV3Z3L29pSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2dGV29pRlNBSklBa2dGVW9iUVFBZ0ZVRUFUaHMyQWdBZ0QwRUVhaUVQSUJOQkJHb2hFeUFMUVFScUlRc2dGRUVFYWlFVUlBSkJCR29oQWlBUVFRUnFJUkFnQVVFRWFpRUJJQUJCQkdvaEFBdEJBQ0VWSUJ3RWZ3TkFJQW9vQWdBaEh5QUFBbjhnRVNnQ0FDQU1hN0s3SWdWRU85OVBqWmR1OWoraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5QVFLQUlBSWhKcUloWWdDU0FKSUJaS0cwRUFJQlpCQUU0Yk5nSUFJQUlnRWdKL0lCOGdER3V5dXlJR1JHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMYXlJV0lBa2dDU0FXU2h0QkFDQVdRUUJPR3pZQ0FDQUJBbjhnQmtRbk1RaXNIRnI4UDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElCSnFJaElnQ1NBSklCSktHMEVBSUJKQkFFNGJOZ0lBSUFvb0FnQWhIeUFBQW44Z0VTZ0NBQ0FNYTdLN0lnVkVPOTlQalpkdTlqK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUFRS0FJRUloSnFJaFlnQ1NBSklCWktHMEVBSUJaQkFFNGJOZ0lFSUFJZ0VnSi9JQjhnREd1eXV5SUdSR3E4ZEpNWUJOWS9vaUFGUkF3Q0s0Y1cyZVkvb3FBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTGF5SVdJQWtnQ1NBV1NodEJBQ0FXUVFCT0d6WUNCQ0FCQW44Z0JrUW5NUWlzSEZyOFA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJQkpxSWhJZ0NTQUpJQkpLRzBFQUlCSkJBRTRiTmdJRUlBb29BZ0FoSHlBTEFuOGdFU2dDQUNBTWE3SzdJZ1ZFTzk5UGpaZHU5aitpSWdhWlJBQUFBQUFBQU9CQll3UkFJQWFxREFFTFFZQ0FnSUI0Q3lBVUtBSUFJaEpxSWhZZ0NTQUpJQlpLRzBFQUlCWkJBRTRiTmdJQUlCTWdFZ0ovSUI4Z0RHdXl1eUlHUkdxOGRKTVlCTlkvb2lBRlJBd0NLNGNXMmVZL29xQWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xheUlXSUFrZ0NTQVdTaHRCQUNBV1FRQk9HellDQUNBUEFuOGdCa1FuTVFpc0hGcjhQNklpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMSUJKcUloSWdDU0FKSUJKS0cwRUFJQkpCQUU0Yk5nSUFJQW9vQWdBaEh5QUxBbjhnRVNnQ0FDQU1hN0s3SWdWRU85OVBqWmR1OWoraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5QVVLQUlFSWhKcUloWWdDU0FKSUJaS0cwRUFJQlpCQUU0Yk5nSUVJQk1nRWdKL0lCOGdER3V5dXlJR1JHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMYXlJV0lBa2dDU0FXU2h0QkFDQVdRUUJPR3pZQ0JDQVBBbjhnQmtRbk1RaXNIRnI4UDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElCSnFJaElnQ1NBSklCSktHMEVBSUJKQkFFNGJOZ0lFSUJGQkJHb2hFU0FLUVFScUlRb2dEMEVJYWlFUElCTkJDR29oRXlBTFFRaHFJUXNnRkVFSWFpRVVJQUZCQ0dvaEFTQUNRUWhxSVFJZ0FFRUlhaUVBSUJCQkNHb2hFQ0FWUVFKcUloVWdIRWtOQUFzZ0pnVkJBQXNnR2trRWZ5QUtLQUlBSVJZZ0FBSi9JQkVvQWdBZ0RHdXl1eUlGUkR2ZlQ0Mlhidlkvb2lJR21VUUFBQUFBQUFEZ1FXTUVRQ0FHcWd3QkMwR0FnSUNBZUFzZ0VDZ0NBQ0lWYWlJU0lBa2dDU0FTU2h0QkFDQVNRUUJPR3pZQ0FDQUNJQlVDZnlBV0lBeHJzcnNpQmtScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDMnNpRWlBSklBa2dFa29iUVFBZ0VrRUFUaHMyQWdBZ0FRSi9JQVpFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBVmFpSVZJQWtnQ1NBVlNodEJBQ0FWUVFCT0d6WUNBQ0FLS0FJQUlSVWdDd0ovSUJFb0FnQWdER3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dGQ2dDQUNJTGFpSVVJQWtnQ1NBVVNodEJBQ0FVUVFCT0d6WUNBQ0FUSUFzQ2Z5QVZJQXhyc3JzaUJrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUV5QUpJQWtnRTBvYlFRQWdFMEVBVGhzMkFnQWdEd0ovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUxhaUlMSUFrZ0NTQUxTaHRCQUNBTFFRQk9HellDQUNBUlFRUnFJUkVnQ2tFRWFpRUtJQUpCQkdvaEFpQVFRUVJxSVJBZ0FFRUVhaUVBSUFGQkJHb0ZJQUVMSUExcUlRRWdBaUFOYWlFQ0lBQWdEV29oQUNBTklCQnFJUkFnSUVFQ2FpSWdJQjFKRFFBTElDVkJmbkZCQW1vRlFRQUxJQjVQRFFBZ0d3UkFJQUFDZjBFQUlBeHJzcnNpQlVRNzMwK05sMjcyUDZJaUJwbEVBQUFBQUFBQTRFRmpCRUFnQnFvTUFRdEJnSUNBZ0hnTElCQW9BZ0FpQzJvaURTQUpJQWtnRFVvYlFRQWdEVUVBVGhzMkFnQWdBaUFMQW44Z0JVUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdhWlJBQUFBQUFBQU9CQll3UkFJQWFxREFFTFFZQ0FnSUI0QzJzaURTQUpJQWtnRFVvYlFRQWdEVUVBVGhzMkFnQWdBUUovSUFWRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUxhaUlMSUFrZ0NTQUxTaHRCQUNBTFFRQk9HellDQUNBQ1FRUnFJUUlnRUVFRWFpRVFJQUZCQkdvaEFTQUFRUVJxSVFBTElCcEJmbkVpSUFSL0lDQkJBV3NpQzBGK2NTRTdBa0FDZjBFQUlDQkJEMGtOQUJwQkFDQUFJQUlnQzBFQmRpSVVRUU4wUVFocUloTnFJZ3RKSUFJZ0FDQVRhaUlOU1hFTkFCcEJBQ0FCSUExSklBQWdBU0FUYWlJUFNYRU5BQnBCQUNBQUlCQWdFMm9pRTBrZ0RTQVFTM0VOQUJwQkFDQUtJQTFKSUFBZ0NpQVVRUUowUVFScUloNXFJaHRKY1EwQUdrRUFJQTBnRVVzZ0FDQVJJQjVxSWcxSmNRMEFHa0VBSUFJZ0Qwa2dBU0FMU1hFTkFCcEJBQ0FDSUJOSklBc2dFRXR4RFFBYVFRQWdDaUFMU1NBQ0lCdEpjUTBBR2tFQUlBSWdEVWtnQ3lBUlMzRU5BQnBCQUNBQklCTkpJQThnRUV0eERRQWFRUUFnQ2lBUFNTQUJJQnRKY1EwQUdrRUFJQUVnRFVrZ0R5QVJTM0VOQUJvZ0NpQVVRUUZxSWhaQi9QLy8vd2R4SWh0QkFuUWlJbW9oQ3lBQklCdEJBM1FpSG1vaERTQUFJQjVxSVE4Z0NmMFJJVDhnRFAwUklVTkJBQ0VUQTBBZ0VDQVRRUU4wSWhSQkdISWlIV29pSXlBUUlCUkJFSElpSEdvaUpDQVFJQlJCQ0hJaUZXb2lKU0FRSUJScUlpYjlDUUlBL1ZZQ0FBSDlWZ0lBQXYxV0FnQURJVDBDZnlBUklCTkJBblFpSDJyOUFBSUFJRVA5c1FIOStnRWlQdjFmSWtEOUREdmZUNDJYYnZZL085OVBqWmR1OWovOThnRWlRZjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaEp5QUtJQjlxL1FBQ0FDRkNJQUFnRkdvaUgvME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTlBbjhnUWYwaEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlFU0FuL1J3QkFuOGdQaUErL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL1Y4aVFmME1POTlQalpkdTlqODczMCtObDI3MlAvM3lBU0krL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMGNBZ0ovSUQ3OUlRRWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUndESWtUOXJnRWlQaUEvL2JZQklENzlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlPZjFTSWo3OVdnSUFBQ0FBSUJWcUlpY2dQdjFhQWdBQklBQWdIR29pS1NBKy9Wb0NBQUlnQUNBZGFpSXFJRDc5V2dJQUF3Si9JRUlnUS8yeEFmMzZBU0krL1Y4aVF2ME1hcngwa3hnRTFqOXF2SFNUR0FUV1AvM3lBU0JBL1F3TUFpdUhGdG5tUHd3Q0s0Y1cyZVkvL2ZJQi9mQUJJa0Q5SVFFaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElTZ2dBaUFVYWlJci9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMENmeUJBL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJQ2o5SEFFQ2Z5QSsvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvVjhpUVAwTWFyeDBreGdFMWo5cXZIU1RHQVRXUC8zeUFTQkIvUXdNQWl1SEZ0bm1Qd3dDSzRjVzJlWS8vZklCL2ZBQklqNzlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3Q0FuOGdQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBTWlRZjJ4QVNJK0lELzl0Z0VnUHYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WSWlQdjFhQWdBQUlBSWdGV29pS0NBKy9Wb0NBQUVnQWlBY2FpSXNJRDc5V2dJQUFpQUNJQjFxSWkwZ1B2MWFBZ0FEQW44Z1F2ME1KekVJckJ4YS9EOG5NUWlzSEZyOFAvM3lBU0krL1NFQklnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5RXVJQUVnRkdvaUZQME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTlBbjhnUHYwaEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlFU0F1L1J3QkFuOGdRUDBNSnpFSXJCeGEvRDhuTVFpc0hGcjhQLzN5QVNJOS9TRUFJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDLzBjQWdKL0lEMzlJUUVpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3RElrRDlyZ0VpUFNBLy9iWUJJRDM5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxU0lqMzlXZ0lBQUNBQklCVnFJaFVnUGYxYUFnQUJJQUVnSEdvaUhDQTkvVm9DQUFJZ0FTQWRhaUlkSUQzOVdnSUFBeUFmL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNOQkJHb2dKRUVFYWlBbFFRUnFJQ2I5Q1FJRS9WWUNBQUg5VmdJQUF2MVdBZ0FESWo0Z1JQMnVBU0k5SUQvOXRnRWdQZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZJaVBmMWFBZ1FBSUNjZ1BmMWFBZ1FCSUNrZ1BmMWFBZ1FDSUNvZ1BmMWFBZ1FESUN2OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1BpQkIvYkVCSWowZ1AvMjJBU0E5L1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVVpSTkvVm9DQkFBZ0tDQTkvVm9DQkFFZ0xDQTkvVm9DQkFJZ0xTQTkvVm9DQkFNZ0ZQME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQStJRUQ5cmdFaVBTQS8vYllCSUQzOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOU9mMVNJajM5V2dJRUFDQVZJRDM5V2dJRUFTQWNJRDM5V2dJRUFpQWRJRDM5V2dJRUF5QVRRUVJxSWhNZ0cwY05BQXNnRVNBaWFpRVJJQkFnSG1vaEVDQUNJQjVxSVFJZ0ZpQWJSZ1JBSUE4aEFDQU5JUUVnQ3lFS0RBSUxJQThoQUNBTklRRWdDeUVLSUJ0QkFYUUxJUXNEUUNBS0tBSUFJUk1nQUFKL0lCRW9BZ0FnREd1eXV5SUZSRHZmVDQyWGJ2WS9vaUlHbVVRQUFBQUFBQURnUVdNRVFDQUdxZ3dCQzBHQWdJQ0FlQXNnRUNnQ0FDSU5haUlQSUFrZ0NTQVBTaHRCQUNBUFFRQk9HellDQUNBQ0lBMENmeUFUSUF4cnNyc2lCa1JxdkhTVEdBVFdQNklnQlVRTUFpdUhGdG5tUDZLZ0lnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMyc2lEeUFKSUFrZ0Qwb2JRUUFnRDBFQVRoczJBZ0FnQVFKL0lBWkVKekVJckJ4YS9EK2lJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDeUFOYWlJTklBa2dDU0FOU2h0QkFDQU5RUUJPR3pZQ0FDQUtLQUlBSVJNZ0FBSi9JQkVvQWdBZ0RHdXl1eUlGUkR2ZlQ0Mlhidlkvb2lJR21VUUFBQUFBQUFEZ1FXTUVRQ0FHcWd3QkMwR0FnSUNBZUFzZ0VDZ0NCQ0lOYWlJUElBa2dDU0FQU2h0QkFDQVBRUUJPR3pZQ0JDQUNJQTBDZnlBVElBeHJzcnNpQmtScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDMnNpRHlBSklBa2dEMG9iUVFBZ0QwRUFUaHMyQWdRZ0FRSi9JQVpFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBTmFpSU5JQWtnQ1NBTlNodEJBQ0FOUVFCT0d6WUNCQ0FSUVFScUlSRWdDa0VFYWlFS0lBRkJDR29oQVNBQ1FRaHFJUUlnQUVFSWFpRUFJQkJCQ0dvaEVDQUxRUUpxSWdzZ0lFa05BQXNMSUR0QkFtb0ZRUUFMSUJwUERRQWdDaWdDQUNFTElBQUNmeUFSS0FJQUlBeHJzcnNpQlVRNzMwK05sMjcyUDZJaUJwbEVBQUFBQUFBQTRFRmpCRUFnQnFvTUFRdEJnSUNBZ0hnTElCQW9BZ0FpQUdvaUNpQUpJQWtnQ2tvYlFRQWdDa0VBVGhzMkFnQWdBaUFBQW44Z0N5QU1hN0s3SWdaRWFyeDBreGdFMWoraUlBVkVEQUlyaHhiWjVqK2lvQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXRySWdJZ0NTQUNJQWxJRzBFQUlBSkJBRTRiTmdJQUlBRUNmeUFHUkNjeENLd2NXdncvb2lJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzZ0FHb2lBQ0FKSUFBZ0NVZ2JRUUFnQUVFQVRoczJBZ0FMSUJjb0FoZ29BaXdRRUNBWEtBSVlJZ0FnQnpZQ0xDQUFLQUpnRUJBZ0Z5Z0NHQ0lBSUFnMkFtQWdBQ2dDbEFFUUVDQVhLQUlZSWdBZ0RqWUNsQUVnQUNBQS9RQUNBQ0kvL1FzQ2FDQUFJRC85Q3dJMElCZEJBVFlDRkFzTUJ3c2dBU2dDQkVFQlJ3MEJJQUVvQWpoQkFVY05BU0FCS0FKc1FRRkhEUUVnQVNnQ0dDRUFJQUVvQXBRQklRSWdBU2dDWUNFSElBRW9BaXdoRENBQktBSUlJZ29nQVNnQ0RDSVdiRUVDZENJQkVCZ2hEeUFCRUJnaEZ5QUJFQmdoQ1NBUFJRMEZJQmRGRFFVZ0NVVU5CU0FXQkVBZ0NpQU5LQUlBUVFGeEloOXJJU0lDZjBFQVFRRWdBRUVCYTNRaUZHdXl1eUlGUkdxOGRKTVlCTlkvb2lBRlJBd0NLNGNXMmVZL29xQWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJU2RCZnlBQWRDRThJQ0pCZm5FaUhVRUJheUlLUVFGMklnQkJBV29oSXdKL0lBVkVKekVJckJ4YS9EK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUVwSUFwQmZuRWhDaUFBUVFKMElRZ2dBRUVEZENFQUlDTkJmSEVoR3lBOFFYOXpJUkVDZnlBRlJEdmZUNDJYYnZZL29pSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2hLaUFLUVFKcUlTUWdDRUVFYWlFbElBQkJDR29oSUNBYlFRSjBJU1lnRzBFRGRDRWVJQnRCQVhRaEVDQVIvUkVoUHlBVS9SRWhReUFkUVFkSklTZ2dEeUVLSUJjaEFDQUpJUTREUUNBZkJFQWdDaUFNS0FJQUlnRWdLbW9pQ0NBUklBZ2dFVWdiUVFBZ0NFRUFUaHMyQWdBZ0FDQUJJQ2RySWdnZ0VTQUlJQkZJRzBFQUlBaEJBRTRiTmdJQUlBNGdBU0FwYWlJQklCRWdBU0FSU0J0QkFDQUJRUUJPR3pZQ0FDQU9RUVJxSVE0Z0NrRUVhaUVLSUF4QkJHb2hEQ0FBUVFScUlRQUxBbjhDZnlBZFJRUkFJQWNoQVNBT0lRc2dDaUVJUVFBTUFRdEJBQ0VaQWtBQ1FDQW9EUUFnQ2lBQUlDQnFJZ0ZKSUFBZ0NpQWdhaUlJU1hFTkFDQUtJQTRnSUdvaUMwa2dDQ0FPUzNFTkFDQUtJQXdnSUdvaUdra2dDQ0FNUzNFTkFDQUhJQWhKSUFvZ0J5QWxhaUljU1hFTkFDQUNJQWhKSUFvZ0FpQWxhaUlJU1hFTkFDQUFJQXRKSUFFZ0RrdHhEUUFnQUNBYVNTQUJJQXhMY1EwQUlBQWdIRWtnQVNBSFMzRU5BQ0FBSUFoSklBRWdBa3R4RFFBZ0RpQWFTU0FMSUF4TGNRMEFJQTRnSEVrZ0J5QUxTWEVOQUNBQ0lBdEpJQWdnRGt0eERRQWdCeUFtYWlFQklBNGdIbW9oQ3lBS0lCNXFJUWdEUUNBTUlCbEJBM1FpR2tFWWNpSWNhaUlySUF3Z0drRVFjaUlWYWlJc0lBd2dHa0VJY2lJU2FpSXRJQXdnR21vaUx2MEpBZ0Q5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWhQUUovSUFJZ0dVRUNkQ0l2YXYwQUFnQWdRLzJ4QWYzNkFTSSsvVjhpUVAwTU85OVBqWmR1OWo4NzMwK05sMjcyUC8zeUFTSkIvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lFd0lBY2dMMnI5QUFJQUlVSWdDaUFhYWlJdi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMENmeUJCL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJREQ5SEFFQ2Z5QStJRDc5RFFnSkNnc01EUTRQQUFFQ0F3QUJBZ1A5WHlKQi9RdzczMCtObDI3MlB6dmZUNDJYYnZZLy9mSUJJajc5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9Sd0NBbjhnUHYwaEFTSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlIQU1pUlAydUFTSStJRC85dGdFZ1B2ME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFQMDUvVklpUHYxYUFnQUFJQW9nRW1vaU1DQSsvVm9DQUFFZ0NpQVZhaUl5SUQ3OVdnSUFBaUFLSUJ4cUlqTWdQdjFhQWdBREFuOGdRaUJEL2JFQi9mb0JJajc5WHlKQy9ReHF2SFNUR0FUV1AycThkSk1ZQk5ZLy9mSUJJRUQ5REF3Q0s0Y1cyZVkvREFJcmh4Ylo1ai85OGdIOThBRWlRUDBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaE1TQUFJQnBxSWpUOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1BRSi9JRUQ5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9SRWdNZjBjQVFKL0lENzlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlEUWdKQ2dzTURRNFBBQUVDQXdBQkFnUDlYeUpBL1F4cXZIU1RHQVRXUDJxOGRKTVlCTlkvL2ZJQklFSDlEQXdDSzRjVzJlWS9EQUlyaHhiWjVqLzk4Z0g5OEFFaVB2MGhBQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFJQ2Z5QSsvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wY0F5SkIvYkVCSWo0Z1AvMjJBU0ErL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVVpSSsvVm9DQUFBZ0FDQVNhaUl4SUQ3OVdnSUFBU0FBSUJWcUlqVWdQdjFhQWdBQ0lBQWdIR29pTmlBKy9Wb0NBQU1DZnlCQy9Rd25NUWlzSEZyOFB5Y3hDS3djV3Z3Ly9mSUJJajc5SVFFaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElUY2dEaUFhYWlJYS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMENmeUErL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJRGY5SEFFQ2Z5QkEvUXduTVFpc0hGcjhQeWN4Q0t3Y1d2dy8vZklCSWozOUlRQWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUndDQW44Z1BmMGhBU0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFNaVFQMnVBU0k5SUQvOXRnRWdQZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZJaVBmMWFBZ0FBSUE0Z0Vtb2lFaUE5L1ZvQ0FBRWdEaUFWYWlJVklEMzlXZ0lBQWlBT0lCeHFJaHdnUGYxYUFnQURJQy85REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnSzBFRWFpQXNRUVJxSUMxQkJHb2dMdjBKQWdUOVZnSUFBZjFXQWdBQy9WWUNBQU1pUGlCRS9hNEJJajBnUC8yMkFTQTkvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvVG45VWlJOS9Wb0NCQUFnTUNBOS9Wb0NCQUVnTWlBOS9Wb0NCQUlnTXlBOS9Wb0NCQU1nTlAwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBK0lFSDlzUUVpUFNBLy9iWUJJRDM5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxU0lqMzlXZ0lFQUNBeElEMzlXZ0lFQVNBMUlEMzlXZ0lFQWlBMklEMzlXZ0lFQXlBYS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlENGdRUDJ1QVNJOUlELzl0Z0VnUGYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WSWlQZjFhQWdRQUlCSWdQZjFhQWdRQklCVWdQZjFhQWdRQ0lCd2dQZjFhQWdRRElCbEJCR29pR1NBYlJ3MEFDeUFDSUNacUlRSWdEQ0FlYWlFTUlBQWdIbW9oQUNBUUlSa2dKQ0FiSUNOR0RRSWFEQUVMSUFvaENDQU9JUXNnQnlFQkN3TkFJQUVvQWdBaERpQUlBbjhnQWlnQ0FDQVVhN0s3SWdWRU85OVBqWmR1OWoraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5QU1LQUlBSWdwcUlnY2dFU0FISUJGSUcwRUFJQWRCQUU0Yk5nSUFJQUFnQ2dKL0lBNGdGR3V5dXlJR1JHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMYXlJSElCRWdCeUFSU0J0QkFDQUhRUUJPR3pZQ0FDQUxBbjhnQmtRbk1RaXNIRnI4UDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElBcHFJZ29nRVNBS0lCRklHMEVBSUFwQkFFNGJOZ0lBSUFFb0FnQWhEaUFJQW44Z0FpZ0NBQ0FVYTdLN0lnVkVPOTlQalpkdTlqK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUFNS0FJRUlncHFJZ2NnRVNBSElCRklHMEVBSUFkQkFFNGJOZ0lFSUFBZ0NnSi9JQTRnRkd1eXV5SUdSR3E4ZEpNWUJOWS9vaUFGUkF3Q0s0Y1cyZVkvb3FBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTGF5SUhJQkVnQnlBUlNCdEJBQ0FIUVFCT0d6WUNCQ0FMQW44Z0JrUW5NUWlzSEZyOFA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJQXBxSWdvZ0VTQUtJQkZJRzBFQUlBcEJBRTRiTmdJRUlBSkJCR29oQWlBQlFRUnFJUUVnQzBFSWFpRUxJQUJCQ0dvaEFDQUlRUWhxSVFnZ0RFRUlhaUVNSUJsQkFtb2lHU0FkU1EwQUN5QWtDeUFpVHdSQUlBRWhCeUFJSVFvZ0N3d0JDeUFCS0FJQUlRNGdDQUovSUFJb0FnQWdGR3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dEQ2dDQUNJS2FpSUhJQkVnQnlBUlNCdEJBQ0FIUVFCT0d6WUNBQ0FBSUFvQ2Z5QU9JQlJyc3JzaUJrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUJ5QVJJQWNnRVVnYlFRQWdCMEVBVGhzMkFnQWdDd0ovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUthaUlLSUJFZ0NpQVJTQnRCQUNBS1FRQk9HellDQUNBQ1FRUnFJUUlnQVVFRWFpRUhJQUJCQkdvaEFDQUlRUVJxSVFvZ0RFRUVhaUVNSUF0QkJHb0xJUTRnRTBFQmFpSVRJQlpIRFFBTEN5QU5LQUlZS0FJc0VCQWdEU2dDR0NJQUlBODJBaXdnQUNnQ1lCQVFJQTBvQWhnaUFDQVhOZ0pnSUFBb0FwUUJFQkFnRFNnQ0dDSUFJQWsyQXBRQklBQWdBUDBBQWdBaVAvMExBbWdnQUNBLy9Rc0NOQ0FOUVFFMkFoUkJBQ0VaREFZTElBRW9BbWhCQVVjTkFDQUJLQUlFUVFGSERRQWdBU2dDT0VFQlJ3MEFJQUVvQW14QkFVY05BQ0FCS0FJWUlRSWdBU2dDbEFFaENDQUJLQUpnSVF3Z0FTZ0NMQ0VBSUFFb0Fnd2dBU2dDQ0d3aUYwRUNkQ0lCRUJnaEJ5QUJFQmdoRHlBQkVCZ2hEZ0pBSUFkRkRRQWdEMFVOQUNBT1JRMEFJQmRGRFFSQmZ5QUNkRUYvY3lFWlFRRWdBa0VCYTNRaEVTQVhRUWhKRFFJZ0R5QUhhMEVRU1EwQ0lBNGdCMnRCRUVrTkFpQUhJQUJyUVJCSkRRSWdCeUFNYTBFUVNRMENJQWNnQ0d0QkVFa05BaUFPSUE5clFSQkpEUUlnRHlBQWEwRVFTUTBDSUE4Z0RHdEJFRWtOQWlBUElBaHJRUkJKRFFJZ0RpQUFhMEVRU1EwQ0lBNGdER3RCRUVrTkFpQU9JQWhyUVJCSkRRSWdDQ0FYUVh4eElncEJBblFpQ1dvaEN5QUpJQTVxSVFFZ0J5QUphaUVDSUJuOUVTRS9JQkg5RVNFOUEwQUNmeUFJSUJOQkFuUWlFR3I5QUFJQUlEMzlzUUg5K2dFaVB2MWZJa0Q5RER2ZlQ0MlhidlkvTzk5UGpaZHU5ai85OGdFaVFmMGhBU0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXNoRkNBTUlCQnEvUUFDQUNGQ0lBY2dFR3I5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUNBUWF2MEFBZ0FpUXdKL0lFSDlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1JFZ0ZQMGNBUUovSUQ0Z1B2ME5DQWtLQ3d3TkRnOEFBUUlEQUFFQ0EvMWZJajc5RER2ZlQ0MlhidlkvTzk5UGpaZHU5ai85OGdFaVFmMGhBQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFJQ2Z5QkIvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wY0EvMnVBU0pCSUQvOXRnRWdRZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZMOUN3SUFBbjhnUWlBOS9iRUIvZm9CSWtIOVh5SkMvUXhxdkhTVEdBVFdQMnE4ZEpNWUJOWS8vZklCSUVEOURBd0NLNGNXMmVZL0RBSXJoeGJaNWovOThnSDk4QUVpUVAwaEFTSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2hGQ0FQSUJCcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlFTUNmeUJBL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJQlQ5SEFFQ2Z5QkIvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvVjhpUVAwTWFyeDBreGdFMWo5cXZIU1RHQVRXUC8zeUFTQSsvUXdNQWl1SEZ0bm1Qd3dDSzRjVzJlWS8vZklCL2ZBQklqNzlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3Q0FuOGdQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBUDlzUUVpUGlBLy9iWUJJRDc5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxUy9Rc0NBQUovSUVMOURDY3hDS3djV3Z3L0p6RUlyQnhhL0QvOThnRWlQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaEZDQU9JQkJxL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSUVNQ2Z5QSsvU0VBSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wUklCVDlIQUVDZnlCQS9Rd25NUWlzSEZyOFB5Y3hDS3djV3Z3Ly9mSUJJajc5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9Sd0NBbjhnUHYwaEFTSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlIQVA5cmdFaVBpQS8vYllCSUQ3OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOU9mMVMvUXNDQUNBVFFRUnFJaE1nQ2tjTkFBc2dDaUFYUmcwRUlBa2dER29oRENBQUlBbHFJUUFnQ1NBUGFnd0RDeUFIRUJBZ0R4QVFJQTRRRUF3RkN5QVlRYmtETmdJRUlCaEJ1QW8yQWdCQjZNUUJRY0krSUJnUUZnd0VDeUFISVFJZ0RpRUJJQWdoQ3lBUEN5RUlBMEFnRENnQ0FDRVRJQUlDZnlBTEtBSUFJQkZyc3JzaUJVUTczMCtObDI3MlA2SWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJQUFvQWdBaUNXb2lFQ0FaSUJBZ0dVZ2JRUUFnRUVFQVRoczJBZ0FnQ0NBSkFuOGdFeUFSYTdLN0lnWkVhcngwa3hnRTFqK2lJQVZFREFJcmh4Ylo1aitpb0NJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF0ckloQWdHU0FRSUJsSUcwRUFJQkJCQUU0Yk5nSUFJQUVDZnlBR1JDY3hDS3djV3Z3L29pSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2dDV29pQ1NBWklBa2dHVWdiUVFBZ0NVRUFUaHMyQWdBZ0FVRUVhaUVCSUFoQkJHb2hDQ0FDUVFScUlRSWdDMEVFYWlFTElBeEJCR29oRENBQVFRUnFJUUFnQ2tFQmFpSUtJQmRIRFFBTEN5QU5LQUlZS0FJc0VCQWdEU2dDR0NJQUlBYzJBaXdnQUNnQ1lCQVFJQTBvQWhnaUFDQVBOZ0pnSUFBb0FwUUJFQkFnRFNnQ0dDQU9OZ0tVQVNBTlFRRTJBaFJCQUNFWkRBRUxJQThRRUNBWEVCQWdDUkFRQ3lBWUtBSWdJUUFDUUNBRERRQWdJVVVOQUNBQUtBSVlJUTVCQUNFVEEwQWdEaUFUUVRSc2FpSURLQUlZSWdKQkNFY0VRQUpBSUFKQkIwMEVRQ0FES0FJTUlBTW9BZ2hzSVFFZ0F5Z0NMQ0VLSUFNb0FpQUVRQ0FCUlEwQ1FRRWdBa0VCYTNTdElVVkJBQ0VISUFGQkJFOEVRQ0FCUVh4eElRY2dSZjBTSVQ5QkFDRU1BMEFnQ2lBTVFRSjBhaUlDSUFMOUFBSUFJajM5eHdGQkIvM0xBU0krL1IwQUlELzlIUUFpUm4vOUVpQSsvUjBCSUQvOUhRRWlSMy85SGdFZ1BTQS8vUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvY2NCUVFmOXl3RWlQZjBkQUNCR2YvMFNJRDM5SFFFZ1IzLzlIZ0g5RFFBQkFnTUlDUW9MRUJFU0V4Z1pHaHY5Q3dJQUlBeEJCR29pRENBSFJ3MEFDeUFCSUFkR0RRTUxBMEFnQ2lBSFFRSjBhaUlDSUFJMEFnQkNCNFlnUlg4K0FnQWdCMEVCYWlJSElBRkhEUUFMREFJTElBRkZEUUZCZnlBQ2RFRi9jNjBoUlVFQUlRY2dBVUVFVHdSQUlBRkJmSEVoQnlCRi9SSWhQMEVBSVF3RFFDQUtJQXhCQW5ScUlnSWdBdjBBQWdBaVBmM0pBZjBNL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDNWQVNJKy9SMEFJRC85SFFBaVJvRDlFaUErL1IwQklELzlIUUVpUjREOUhnRWdQU0EvL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2NrQi9Rei9BQUFBQUFBQUFQOEFBQUFBQUFBQS9kVUJJajM5SFFBZ1JvRDlFaUE5L1IwQklFZUEvUjRCL1EwQUFRSURDQWtLQ3hBUkVoTVlHUm9iL1FzQ0FDQU1RUVJxSWd3Z0IwY05BQXNnQVNBSFJnMENDd05BSUFvZ0IwRUNkR29pQWlBQ05RSUFRdjhCZmlCRmdENENBQ0FIUVFGcUlnY2dBVWNOQUFzTUFRc2dBa0VJYXlFS0lBTW9BZ3dnQXlnQ0NHd2hBU0FES0FJc0lRZ2dBeWdDSUFSQUlBRkZEUUZCQUNFSElBRkJCRThFUUNBQlFYeHhJUWRCQUNFQ0EwQWdDQ0FDUVFKMGFpSUxJQXY5QUFJQUlBcjlyQUg5Q3dJQUlBSkJCR29pQWlBSFJ3MEFDeUFCSUFkR0RRSUxBMEFnQ0NBSFFRSjBhaUlDSUFJb0FnQWdDblUyQWdBZ0IwRUJhaUlISUFGSERRQUxEQUVMSUFGRkRRQkJBQ0VISUFGQkJFOEVRQ0FCUVh4eElRZEJBQ0VDQTBBZ0NDQUNRUUowYWlJTElBdjlBQUlBSUFyOXJRSDlDd0lBSUFKQkJHb2lBaUFIUncwQUN5QUJJQWRHRFFFTEEwQWdDQ0FIUVFKMGFpSUNJQUlvQWdBZ0NuWTJBZ0FnQjBFQmFpSUhJQUZIRFFBTEN5QURRUWcyQWhnTElCTkJBV29pRXlBaFJ3MEFDd3NnQUNnQ0RDQUFLQUlJYkNFQkFrQWdHVVVFUUNBQUtBSVVRUUpHQkVBZ0FDZ0NFRUVCUmdSQUlBQW9BaGdvQWl3Z0FSQU9EQU1MSUFSRkRRSWdBQ2dDR0NJQUtBSXNJQUFvQW1BZ0FSQUlEQUlMSUFBb0FoZ2lBQ2dDTENBQUtBSmdJQUFvQXBRQklBRVFCd3dCQ3dKQUFrQUNRQ0FoUVFGckRnUUFBd0VDQXdzZ0FDZ0NHQ2dDTENBQkVBWU1BZ3NnQUNnQ0dDSUFLQUlzSUFBb0FtQWdBQ2dDbEFFZ0FSQUZEQUVMSUFBb0FoZ2lBQ2dDTENBQUtBSmdJQUFvQXBRQklBQW9Bc2dCSUFFUUJBc2dHQ2dDSUJBaFFRQWhEQXNnR0VIZ3dBQnFKQUFnREFzSUFFRUlJQUFRSlF1ckFnSUNmZ0ovUW44aEF5QUFMUUJFUVFoeFJRUkFJQUFnQUNnQ0lDSUdOZ0lrQWtBQ1FBSkFJQUFnQUNnQ01DSUZCSDhEUUNBR0lBVWdBQ2dDQUNBQUtBSVVFUUFBSWdWQmYwWU5BaUFBSUFBb0FpUWdCV29pQmpZQ0pDQUFJQUFvQWpBZ0JXc2lCVFlDTUNBRkRRQUxJQUFvQWlBRklBWUxOZ0lrSUFGQ0FGVU5BVUlBSVFNTUFnc2dBQ0FBS0FKRVFRaHlOZ0pFSUFKQkJFR0I5UUJCQUJBUElBQkJBRFlDTUNBQUlBQW9Ba1JCQ0hJMkFrUkNmdzhMUWdBaEF3TkFJQUVnQUNnQ0FDQUFLQUlZRVFzQUlnUkNmMUVFUUNBQ1FRUkI4dlFBUVFBUUR5QUFJQUFvQWtSQkNISTJBa1FnQUNBQUtRTTRJQU44TndNNFFuOGdBeUFEVUJzUEN5QURJQVI4SVFNZ0FTQUVmU0lCUWdCVkRRQUxDeUFBSUFBcEF6Z2dBM3czQXpnTElBTUxJd0VCZnlBQklBRW9BZ0FnQVNnQ0NDSUJJQUNuSWdJZ0FTQUNTUnRxTmdJRVFRRUxQQUlDZndGK0lBRW9BZ0FnQVNnQ0NHb2lBeUFCS0FJRUlnSkdCRUJDZnc4TElBRWdBaUFBcDJvMkFnUWdBeUFDYTZ3aUJDQUFJQUFnQkZVYkM1Z0RBZ0orQW44Z0FDZ0NNQ0lGSUFHbklnWlBCRUFnQUNBRklBWnJOZ0l3SUFBZ0FDZ0NKQ0FHYWpZQ0pDQUFJQUFwQXpnZ0FYdzNBemdnQVE4TElBQXRBRVJCQkhFRVFDQUFRUUEyQWpBZ0FDQUFLQUlrSUFWcU5nSWtJQUFnQmEwaUFTQUFLUU00ZkRjRE9DQUJRbjhnQlJzUEN3SkFJQVZGQkVBTUFRc2dBRUVBTmdJd0lBQWdBQ2dDSURZQ0pDQUJJQVd0SWdOOUlRRUxJQUZDQUZVRVFBTkFJQUFwQXdnZ0FDa0RPQ0FCSUFOOGZGUUVRQ0FDUVFSQm0vVUFRUUFRRHlBQVFRQTJBakFnQUNBQUtBSWdOZ0lrSUFBZ0FDa0RPQ0FEZkNJRE53TTRJQUFwQXdnaUFTQURmU0VFSUFFZ0FDZ0NBQ0FBS0FJY0VRb0FJUVVnQUNnQ1JDRUNJQUFnQlFSL0lBQWdBVGNET0NBQ1FYdHhCU0FDQzBFRWNqWUNSRUovSUFRZ0FTQURVUnNQQ3lBQklBQW9BZ0FnQUNnQ0dCRUxBQ0lFUW45UkJFQWdBa0VFUVp2MUFFRUFFQThnQUNBQUtBSkVRUVJ5TmdKRUlBQWdBQ2tET0NBRGZEY0RPRUovSUFNZ0ExQWJEd3NnQXlBRWZDRURJQUVnQkgwaUFVSUFWUTBBQ3dzZ0FDQUFLUU00SUFOOE53TTRJQU1MbXdFQkJYOUJBU0FDS0FJSUlnY2dCMEVCVFJzaEJDQUNLQUlFSWdNZ0FpZ0NBR3NoQmdOQUlBUWlCVUVCZENFRUlBVWdCbXNnQVVrTkFBc2dCU0FIUndSQUlBVVFGQ0lEUlFSQVFYOFBDeUFDS0FJQUlnUUVRQ0FESUFRZ0JoQVNHaUFDS0FJQUVCQUxJQUlnQlRZQ0NDQUNJQU0yQWdBZ0FpQURJQVpxSWdNMkFnUUxJQU1nQUNBQkVCSWFJQUlnQWlnQ0JDQUJhallDQkNBQkMwWUJBbjhnQWlnQ0FDQUNLQUlJYWlJRUlBSW9BZ1FpQTBZRVFFRi9Ed3NnQUNBRElBUWdBMnNpQUNBQklBQWdBVWtiSWdBUUVob2dBaUFDS0FJRUlBQnFOZ0lFSUFBTHFnSUJCSDhqQUVFUWF5SUVKQUFDUUNBQUtBSjBEUUFnQWtFQlRRUkFJQU5CQVVIN3dnQkJBQkFQREFFTElBRWdCRUVNYWtFQ0VCRWdCQ2dDRENJR1FmLy9BM0VpQjBVRVFDQURRUUZCbk1NQVFRQVFEd3dCQ3lBQ0lBZEJCbXhCQW1wSkJFQWdBMEVCUWZ2Q0FFRUFFQThNQVFzZ0JrRUdiQkFVSWdORkRRQWdBRUVJRUJRaUFqWUNkQ0FDUlFSQUlBTVFFQXdCQ3lBQ0lBTTJBZ0FnQWlBRUx3RU1JZ0k3QVFRZ0FrVUVRRUVCSVFVTUFRdEJBQ0VDQTBBZ0FVRUNhaUFFUVF4cUlnVkJBaEFSSUFNZ0FrRUdiR29pQmlBRUtBSU1Pd0VBSUFGQkJHb2dCVUVDRUJFZ0JpQUVLQUlNT3dFQ0lBRkJCbW9pQVNBRlFRSVFFU0FHSUFRb0FndzdBUVJCQVNFRklBSkJBV29pQWlBQUtBSjBMd0VFU1EwQUN3c2dCRUVRYWlRQUlBVUw4QUVCQlg4akFFRVFheUlFSkFBQ2Z5QUFLQUo0SWdWRkJFQWdBMEVCUWMzQ0FFRUFFQTlCQUF3QkN5QUZLQUlNQkVBZ0EwRUJRZHZWQUVFQUVBOUJBQXdCQ3lBQ0lBVXRBQklpQlVFQ2RDSUdTUVJBSUFOQkFVR3N3Z0JCQUJBUFFRQU1BUXRCQUNBR0VCUWlBa1VOQUJvZ0JRUkFRUUFoQXdOQUlBRWdCRUVNYWlJSFFRSVFFU0FDSUFOQkFuUnFJZ1lnQkNnQ0REc0JBQ0FCUVFKcUlBZEJBUkFSSUFZZ0JDZ0NERG9BQWlBQlFRTnFJQWRCQVJBUklBWWdCQ2dDRERvQUF5QUJRUVJxSVFFZ0EwRUJhaUlESUFWSERRQUxDeUFBS0FKNElBSTJBZ3hCQVFzaENDQUVRUkJxSkFBZ0NBdndBd0VKZnlNQVFSQnJJZ1VrQUFKQUlBSkJBMGtOQUNBQUtBSjREUUFnQVNBRlFReHFRUUlRRVNBRkx3RU1JZ2xCZ1FoclFmOTNUUVJBSUFVZ0NUWUNBQ0FEUVFGQnRCb2dCUkFQREFFTElBRkJBbW9nQlVFTWFrRUJFQkVnQlM4QkRDSUlSUVJBSUFOQkFVSFVGMEVBRUE4TUFRc2dDRUVEYWlBQ1N3MEFJQWdnQ1d4QkFuUVFGQ0lIUlEwQUlBZ1FGQ0lLUlFSQUlBY1FFQXdCQ3lBSUVCUWlDMFVFUUNBSEVCQWdDaEFRREFFTFFSUVFGQ0lHUlFSQUlBY1FFQ0FLRUJBZ0N4QVFEQUVMSUFGQkEyb2hBeUFHSUFvMkFnZ2dCaUFMTmdJRUlBWWdDVHNCRUNBR0lBYzJBZ0FnQlNnQ0RDRU1JQVpCQURZQ0RDQUdJQXc2QUJJZ0FDQUdOZ0o0QTBBZ0F5QUZRUXhxUVFFUUVTQUVJQXBxSUFVdEFBeEIvd0J4UVFGcU9nQUFJQVFnQzJvZ0JTZ0NERUdBQVhGQkIzWTZBQUFnQTBFQmFpRURJQVJCQVdvaUJDQUlSdzBBQ3lBSlJRUkFRUUVoQkF3QkMwRUFJUVlEUUVFQUlRUkJBQ0VBQTBBZ0FrRUVJQVFnQ21vdEFBQkJCMnBCQTNZaUJDQUVRUVJQR3lJRUlBTWdBV3RxU0FSQVFRQWhCQXdEQ3lBRElBVkJER29nQkJBUklBY2dCU2dDRERZQ0FDQUhRUVJxSVFjZ0F5QUVhaUVESUFCQkFXb2lBRUgvL3dOeElnUWdDRWtOQUF0QkFTRUVJQVpCQVdvaUJrSC8vd054SUFsSkRRQUxDeUFGUVJCcUpBQWdCQXVZQVFFQ2Z5TUFRUkJySWdVa0FDQUFLQUlZSWdSQi93RkhCRUFnQlNBRU5nSUFJQU5CQWtIa0V5QUZFQThMQWtBQ1FDQUNJQUFvQWhSR0JFQWdBZzBCUVFFaEJBd0NDMEVBSVFRZ0EwRUJRYnZzQUVFQUVBOE1BUXRCQUNFQ0EwQkJBU0VFSUFFZ0FDZ0NTQ0FDUVF4c2FrRUlha0VCRUJFZ0FVRUJhaUVCSUFKQkFXb2lBaUFBS0FJVVNRMEFDd3NnQlVFUWFpUUFJQVFMamdZQkJuOGpBRUhRQUdzaUJDUUFBa0FnQWtFQ1RRUkFJQU5CQVVHYjdBQkJBQkFQREFFTElBQXRBSHdFUUNBRFFRUkI3dElBUVFBUUQwRUJJUVlNQVF0QkFTRUdJQUVnQUVFb2FrRUJFQkVnQVVFQmFpQUFRVFJxUVFFUUVTQUJRUUpxSUFCQkxHcEJBUkFSSUFGQkEyb2hCUUpBQWtBQ1FBSkFBa0FnQUNnQ0tDSUhRUUZyRGdJQUFRSUxJQUpCQmswRVFDQUVJQUkyQWhBZ0EwRUJRY0R4QUNBRVFSQnFFQTlCQUNFR0RBVUxBa0FnQWtFSFJnMEFJQUFvQWpCQkRrWU5BQ0FFSUFJMkFqQWdBMEVDUWNEeEFDQUVRVEJxRUE4TElBVWdBRUV3YWtFRUVCRWdBQ2dDTUVFT1J3MERRU1FRRkNJRlJRUkFRUUFoQmlBRFFRRkJzenhCQUJBUERBVUxJQVZCRGpZQ0FDQUVRUUEyQWtBZ0JFRUFOZ0k0SUFSQkFEWUNTQ0FFUVFBMkFqd2dCRUVBTmdKRUlBUkJBRFlDVEVHdzZwQUNJUVlnQkVHdzZwQUNOZ0kwSUFWQmdJeVZvZ1EyQWdRQ2Z5QUNRUWRIQkVBZ0FrRWpSZ1JBSUFGQkIyb2dCRUhNQUdwQkJCQVJJQUZCQzJvZ0JFSElBR3BCQkJBUklBRkJEMm9nQkVIRUFHcEJCQkFSSUFGQkUyb2dCRUZBYTBFRUVCRWdBVUVYYWlBRVFUeHFRUVFRRVNBQlFSdHFJQVJCT0dwQkJCQVJJQUZCSDJvZ0JFRTBha0VFRUJFZ0JVRUFOZ0lFSUFRb0FqUWhCaUFFS0FJNElRSWdCQ2dDUUNFRElBUW9BandoQnlBRUtBSkVJUWdnQkNnQ1RDRUpJQVFvQWtnTUFnc2dCQ0FDTmdJZ0lBTkJBa0hrOFFBZ0JFRWdhaEFQQzBFQUlRSkJBQ0VEUVFBaEIwRUFDeUVCSUFVZ0J6WUNHQ0FGSUFnMkFoQWdCU0FKTmdJSUlBVWdCallDSUNBRklBSTJBaHdnQlNBRE5nSVVJQVVnQVRZQ0RDQUFRUUEyQW5BZ0FDQUZOZ0pzREFNTElBQWdBa0VEYXlJQk5nSndJQUJCQVNBQkVCTWlBellDYkNBRFJRMEJJQUpCQTB3TkFrRUFJUUlEUUNBRklBUkJ6QUJxUVFFUUVTQUFLQUpzSUFKcUlBUW9Ba3c2QUFBZ0JVRUJhaUVGSUFKQkFXb2lBaUFCUncwQUN3d0NDeUFIUVFOSkRRSWdCQ0FITmdJQUlBTkJCRUhiOXdBZ0JCQVBEQUlMUVFBaEJpQUFRUUEyQW5BTUFRdEJBU0VHSUFCQkFUb0FmQXNnQkVIUUFHb2tBQ0FHQzdRREFRTi9Jd0JCSUdzaUJDUUFBa0FnQUNnQ1NBUkFJQU5CQWtHTk5VRUFFQTlCQVNFQ0RBRUxJQUpCRGtjRVFFRUFJUUlnQTBFQlFmcnJBRUVBRUE4TUFRc2dBU0FBUVJCcVFRUVFFU0FCUVFScUlBQkJER3BCQkJBUklBRkJDR29nQUVFVWFrRUNFQkVnQUNnQ0RDRUZBa0FnQkFKL0lBQW9BaEFpQmtVRVFDQUFLQUlVREFFTElBQW9BaFFpQWlBRlJRMEFHaUFDRFFGQkFBczJBZ2dnQkNBR05nSUVJQVFnQlRZQ0FDQURRUUZCM3VvQUlBUVFEMEVBSVFJTUFRc2dBa0dCZ0FGclFmLy9mazBFUUVFQUlRSWdBMEVCUVlqcUFFRUFFQThNQVFzZ0FDQUNRUXdRRXlJQ05nSklJQUpGQkVCQkFDRUNJQU5CQVVHdDZnQkJBQkFQREFFTFFRRWhBaUFCUVFwcUlBQkJHR3BCQVJBUklBRkJDMm9nQUVFY2FrRUJFQkVnQUNnQ0hDSUZRUWRIQkVBZ0JDQUZOZ0lRSUFOQkJFR2QrZ0FnQkVFUWFoQVBDeUFCUVF4cUlBQkJJR3BCQVJBUklBRkJEV29nQUVFa2FrRUJFQkVnQUNnQ0FDSUJJQUV0QUx3QlFmc0JjU0FBS0FJWVFmOEJSa0VDZEhJNkFMd0JJQUFvQWdBaUFTQUFLQUlNTmdMWUFTQUJJQUFvQWhBMkF0d0JJQUJCQVRvQWhRRUxJQVJCSUdva0FDQUNDN29FQVFaL0l3QkJFR3NpQmlRQUFuOGdBQzBBWkVFQ2NVVUVRQ0FEUVFGQmtkUUFRUUFRRDBFQURBRUxJQUJCQURZQ2FBSkFBa0FDUUNBQ0JFQURRQ0FDUVFkTkJFQWdBMEVCUWJrWlFRQVFEd3dGQ3lBQklBWkJER29pQlVFRUVCRWdCaWdDRENFRUlBRkJCR29nQlVFRUVCRkJDQ0VISUFZb0Fnd2hCUUpBQWtBQ1FBSkFJQVFPQWdFQUF3c2dBa0VRU1FSQVFlRVpJUVFNQndzZ0FVRUlhaUFHUVFocVFRUVFFU0FHS0FJSUJFQkJ5ajhoQkF3SEN5QUJRUXhxSUFaQkRHcEJCQkFSSUFZb0Fnd2lCQTBCUWJJWUlRUU1CZ3NnQTBFQlFiSVlRUUFRRHd3R0MwRVFJUWNMSUFRZ0Iwa0VRQ0FEUVFGQmhjVUFRUUFRRHd3RkN5QUNJQVJKQkVBZ0EwRUJRYjNFQUVFQUVBOUJBQXdHQ3dKQUFrQWdBQ0FCSUFkcUlBUWdCMnNnQXdKL0FrQUNRQUpBSUFWQjhkaTltd1pNQkVBZ0JVSGp4c0dUQmtZTkFTQUZRZWJLa1pzR1JnMERJQVZCOE1LMW13WkhEUVZCNE1BQkRBUUxJQVZCOHRpTmd3ZEdEUUZCd01BQklBVkI4c2loeXdaR0RRTWFJQVZCOHRpOW13WkhEUVJCeU1BQkRBTUxRZERBQVF3Q0MwSFl3QUVNQVF0QjZNQUJDeWdDQkJFQkFBMEJRUUFNQndzZ0FDQUFLQUpvUWYvLy8vOEhjallDYUF0QkFTQUlJQVZCOHNpaHl3WkdHeUVJSUFFZ0JHb2hBU0FDSUFScklnSU5BQXNnQ0EwQkN5QURRUUZCMmNNQVFRQVFEMEVBREFNTElBQkJBVG9BaEFFZ0FDQUFLQUprUVFSeU5nSmtRUUVNQWdzZ0EwRUJJQVJCQUJBUEN5QURRUUZCbmc1QkFCQVBRUUFMSVFrZ0JrRVFhaVFBSUFrTDRnRUJBWDhnQUNnQ1pFRUJSd1JBSUFOQkFVRysxQUJCQUJBUFFRQVBDd0pBSUFKQkIwMEVRQXdCQ3lBQklBQkJPR3BCQkJBUklBRkJCR29nQUVFOGFrRUVFQkVnQWtFRGNRUkFEQUVMSUFBZ0FrRUlheUlDUVFKMklnUTJBa0FDUUNBQ1JRMEFJQUFnQkVFRUVCTWlBallDUkNBQ1JRUkFJQU5CQVVHcEVFRUFFQTlCQUE4TElBQW9Ba0JGRFFBZ0FVRUlhaUVEUVFBaEFnTkFJQU1nQUNnQ1JDQUNRUUowYWtFRUVCRWdBMEVFYWlFRElBSkJBV29pQWlBQUtBSkFTUTBBQ3dzZ0FDQUFLQUprUVFKeU5nSmtRUUVQQ3lBRFFRRkJxaTFCQUJBUFFRQUx4QUVCQW44Z0FDQUFLQUlnSWdRMkFpUUNRQ0FBS0FJd0lnTUVRQU5BSUFRZ0F5QUFLQUlBSUFBb0FoUVJBQUFpQTBGL1JnMENJQUFnQUNnQ0pDQURhaUlFTmdJa0lBQWdBQ2dDTUNBRGF5SUROZ0l3SUFNTkFBc2dBQ2dDSUNFRUN5QUFRUUEyQWpBZ0FDQUVOZ0lrSUFFZ0FDZ0NBQ0FBS0FJY0VRb0FSUVJBSUFBZ0FDZ0NSRUVJY2pZQ1JFRUFEd3NnQUNBQk53TTRRUUVQQ3lBQUlBQW9Ba1JCQ0hJMkFrUWdBa0VFUVlIMUFFRUFFQThnQUNBQUtBSkVRUWh5TmdKRVFRQUxnZ0VCQW44akFFRVFheUlFSkFBQ2Z5QUFLQUprQkVBZ0EwRUJRZHZUQUVFQUVBOUJBQXdCQ3lBQ1FRUkhCRUFnQTBFQlFjNHRRUUFRRDBFQURBRUxJQUVnQkVFTWFrRUVFQkVnQkNnQ0RFR0tqcXJvQUVjRVFDQURRUUZCOWlWQkFCQVBRUUFNQVFzZ0FDQUFLQUprUVFGeU5nSmtRUUVMSVFVZ0JFRVFhaVFBSUFVTERRQWdBQ2dDQUNBQklBSVFSUXNKQUNBQUtBSUFFRW9MQ1FBZ0FDZ0NBQkJKQ3cwQUlBQW9BZ0FnQVNBQ0VFd0xRUUVCZnlBQ0JIOGdBMEVDUWR2TEFFRUFFQThnQUNnQ0FDQUJJQUlnQXlBRUVFWkZCRUFnQTBFQlFha3ZRUUFRRDBFQUR3c2dBQ0FDSUFNUWNRVkJBQXNMRlFBZ0FDZ0NBQ0FCSUFJZ0F5QUVJQVVnQmhCT0N3OEFJQUFvQWdBZ0FTQUNJQU1RVHdzVEFDQUFLQUlBSUFFZ0FpQURJQVFnQlJBckN4MEFJQUFvQWdBZ0FTQUNJQU1nQkNBRklBWWdCeUFJSUFrZ0NoQW5DK29FQVFkL0FrQWdBU2dDQ0VFMUlBTVFKRVVOQUNBQktBSUVJZ2NvQWdBaEJTQUhLQUlJSVFRQ1FDQUZCRUJCQVNFR0lBVkJBVWNFUUNBRlFYNXhJUW9EUUFKL1FRQWdCa1VOQUJwQkFDQUJJQUFnQXlBRUtBSUFFUUFBUlEwQUdpQUJJQUFnQXlBRUtBSUVFUUFBUVFCSEN5RUdJQVJCQ0dvaEJDQUpRUUpxSWdrZ0NrY05BQXNMQWtBZ0JVRUJjUVJBSUFaRkRRRWdBU0FBSUFNZ0JDZ0NBQkVBQUVFQVJ5RUdDeUFIUVFBMkFnQWdCa1VOQXd3Q0N5QUhRUUEyQWdCQkFBOExJQWRCQURZQ0FBc2dBU2dDQ0NJSEtBSUFJUVVnQnlnQ0NDRUVBa0FDUUFKL0FrQWdCUVJBUVFFaEJpQUZRUUZ4SVFnZ0JVRUJSdzBCUVFBTUFnc2dCMEVBTmdJQURBSUxJQVZCZm5FaEJVRUFJUWtEUUFKL1FRQWdCa1VOQUJwQkFDQUJJQUFnQXlBRUtBSUFFUUFBUlEwQUdpQUJJQUFnQXlBRUtBSUVFUUFBUVFCSEN5RUdJQVJCQ0dvaEJDQUpRUUpxSWdrZ0JVY05BQXNnQmtVTElRVWdDQVJBSUFVTkFpQUJJQUFnQXlBRUtBSUFFUUFBUVFCSElRWUxJQWRCQURZQ0FFRUFJUWdnQmtVTkFnc2dBUzBBaEFGRkJFQWdBMEVCUWIzV0FFRUFFQTlCQUE4TElBRXRBSVVCUlFSQUlBTkJBVUdnMWdCQkFCQVBRUUFQQ3lBQUlBRW9BZ0FnQWlBREVGQWhDQ0FDUlEwQklBSW9BZ0FpQUVVTkFVRUJJUVFDUUFKQUFrQUNRQUpBQWtBZ0FTZ0NNRUVNYXc0TkF3UUVCQVVBQVFRRUJBUUVBZ1FMUVFJaEJBd0VDMEVESVFRTUF3dEJCQ0VFREFJTFFRVWhCQXdCQzBGL0lRUUxJQUFnQkRZQ0ZDQUJLQUpzSWdORkRRRWdBQ0FETmdJY0lBSW9BZ0FnQVNnQ2NEWUNJQ0FCUVFBMkFtd2dDQThMSUFkQkFEWUNBRUVBSVFnTElBZ0w1QWtDQ244QmZpTUFRZkFBYXlJREpBQkJnQWdoQ0FKL0FrQkJBVUdBQ0JBVElnWUVRQ0FEUWR3QWFpRUxJQU5CN0FCcUlRa0RRQUpBQWtBQ1FDQUJJQU5CNkFCcUlnUkJDQ0FDRUJwQkNFY05BQ0FFSUFOQjJBQnFRUVFRRVNBSklBdEJCQkFSUVFnaEJRSkFBa0FDUUFKQUFrQWdBeWdDV0E0Q0FBRUVDeUFCS1FNSUlnMVFCSDVDQUFVZ0RTQUJLUU00ZlFzaURVTDQvLy8vRDFNTkFTQUNRUUZCeWo5QkFCQVBEQVFMSUFFZ0EwSG9BR29pQkVFSUlBSVFHa0VJUncwRElBUWdBMEhrQUdwQkJCQVJJQU1vQW1SRkRRRWdBa0VCUWNvL1FRQVFEd3dEQ3lBRElBMm5RUWhxTmdKWURBRUxJQWtnQTBIWUFHcEJCQkFSUVJBaEJRc2dBeWdDWENJRVFlUGt3Tk1HUmdSQUlBQW9BbVFpQVVFRWNRUkFJQUFnQVVFSWNqWUNaQXdDQ3lBQ1FRRkJyU3RCQUJBUElBWVFFRUVBREFjTElBTW9BbGdpQjBVRVFDQUNRUUZCc2hoQkFCQVBJQVlRRUVFQURBY0xJQVVnQjBzRVFDQURJQVEyQWdRZ0F5QUhOZ0lBSUFKQkFVSDY1d0FnQXhBUERBWUxBa0FDZndKL0FrQUNmd0pBQWtBQ1FBSkFBa0FnQkVIeDJMMmJCa3dFUUNBRVFlUEd3Wk1HUmcwQ0lBUkI1c3FSbXdaR0RRUWdCRUh3d3JXYkJrY05BVUhnd0FFTUJnc2dCRUdmd01EU0Jrd0VRQ0FFUWZMWXZac0dSZzBGUWNEQUFTQUVRZkxJb2NzR1JnMEdHaUFFUWZEeTBiTUdSdzBCUWFqQUFRd0lDeUFFUWZMWWpZTUhSZzBDSUFSQm9NREEwZ1pHRFFaQnNNQUJJQVJCNk9UQTB3WkdEUWNhQ3lBQUtBSmtJZ1JCQVhFTkNDQUNRUUZCL0E1QkFCQVBJQVlRRUVFQURBOExRZERBQVF3REMwSFl3QUVNQWd0QjZNQUJEQUVMUWNqQUFRc2hDaUFESUFSQi93RnhOZ0pNSUFNZ0JFRVlkallDUUNBRElBUkJDSFpCL3dGeE5nSklJQU1nQkVFUWRrSC9BWEUyQWtRZ0FrRUNRY2tPSUFOQlFHc1FEeUFISUFWcklnVWdBQzBBWkVFRWNRMENHaUFESUFNb0Fsd2lCRUVZZGpZQ01DQURJQVJCL3dGeE5nSThJQU1nQkVFUWRrSC9BWEUyQWpRZ0F5QUVRUWgyUWY4QmNUWUNPQ0FDUVFKQjJqTWdBMEV3YWhBUElBQWdBQ2dDWkVILy8vLy9CM0kyQW1RZ0FTQUZyU0lOSUFJZ0FTZ0NLQkVJQUNBTlVRMEhJQUpCQVVHU0hFRUFFQThnQmhBUVFRQU1DZ3RCb01BQkN5RUtJQWNnQldzTElRVWdBU2tEQ0NJTlVBUitRZ0FGSUEwZ0FTa0RPSDBMSUFXdFV3UkFJQU1vQWxnaEJDQURLQUpjSVFBZ0F5QUJLUU1JSWcxUUJINUNBQVVnRFNBQktRTTRmUXMrQWlnZ0F5QUZOZ0lrSUFNZ0FFSC9BWEUyQWlBZ0F5QUFRUmgyTmdJVUlBTWdCRFlDRUNBRElBQkJDSFpCL3dGeE5nSWNJQU1nQUVFUWRrSC9BWEUyQWhnZ0FrRUJRYzMxQUNBRFFSQnFFQThNQndzZ0JTQUlUUVJBSUFZaEJBd0VDeUFGSVFnZ0JpQUZFQmNpQkEwRElBWVFFQ0FDUVFGQi93OUJBQkFQUVFBTUJ3c2dCRUVDY1VVRVFDQUNRUUZCd2c5QkFCQVBJQVlRRUVFQURBY0xJQUFnQkVILy8vLy9CM0kyQW1RZ0FTQUhJQVZyclNJTklBSWdBU2dDS0JFSUFDQU5VUTBESUFBdEFHUkJDSEZGRFFFZ0FrRUNRWkljUVFBUUR3c2dCaEFRUVFFTUJRc2dBa0VCUVpJY1FRQVFEeUFHRUJCQkFBd0VDeUFCSUFRZ0JTQUNFQm9nQlVjRVFDQUNRUUZCeEJ4QkFCQVBJQVFRRUVFQURBUUxJQUFnQkNJR0lBVWdBaUFLS0FJRUVRRUFEUUFMSUFRUUVFRUFEQUlMSUFKQkFVR2lKVUVBRUE5QkFBd0JDeUFHRUJCQkFBc2hEQ0FEUWZBQWFpUUFJQXdMNWdFQkJuOGdBQ2dDQ0VFMUlBSVFKQVJBQWtBZ0FDZ0NDQ0lHS0FJQUlRTWdCaWdDQ0NFRkFrQUNRQUovQWtBZ0F3UkFRUUVoQkNBRFFRRnhJUWNnQTBFQlJ3MEJRUUFNQWdzZ0JrRUFOZ0lBREFJTElBTkJmbkVoQXdOQUFuOUJBQ0FFUlEwQUdrRUFJQUFnQVNBQ0lBVW9BZ0FSQUFCRkRRQWFJQUFnQVNBQ0lBVW9BZ1FSQUFCQkFFY0xJUVFnQlVFSWFpRUZJQWhCQW1vaUNDQURSdzBBQ3lBRVJRc2hBeUFIQkVBZ0F3MENJQUFnQVNBQ0lBVW9BZ0FSQUFCQkFFY2hCQXNnQmtFQU5nSUFJQVJGRFFJTElBQW9BZ0FhUVFFUEN5QUdRUUEyQWdBTEMwRUFDd29BSUFBb0FnQWFRUUFMRkFBZ0FDZ0NBQ0lBQkVBZ0FDQUJOZ0s0QVFzTElRQWdBQ2dDQUNBQkVGTWdBRUVBT2dCOElBQWdBU2dDdUVCQkFYRTJBb0FCQ3pJQUlBSkZCRUJCQUE4TElBQW9BZ0FnQVNBQ0lBTVFTRVVFUUNBRFFRRkJxUzlCQUJBUFFRQVBDeUFBSUFJZ0F4QnhDMmtDQW44QmZDTUFRUkJySWdNa0FDQUNCRUFEUUNBQUlBTkJDR29RUkNBQkFuOGdBeXNEQ0NJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzMkFnQWdBVUVFYWlFQklBQkJDR29oQUNBRVFRRnFJZ1FnQWtjTkFBc0xJQU5CRUdva0FBdUVBUUlDZndGOUl3QkJFR3NpQXlRQUlBSUVRQU5BSUFNZ0FDMEFBRG9BRHlBRElBQXRBQUU2QUE0Z0F5QUFMUUFDT2dBTklBTWdBQzBBQXpvQURDQUJBbjhnQXlvQ0RDSUZpME1BQUFCUFhRUkFJQVdvREFFTFFZQ0FnSUI0Q3pZQ0FDQUJRUVJxSVFFZ0FFRUVhaUVBSUFSQkFXb2lCQ0FDUncwQUN3c2dBMEVRYWlRQUMwc0JBbjhqQUVFUWF5SURKQUFnQWdSQUEwQWdBQ0FEUVF4cVFRUVFFU0FCSUFNb0FndzJBZ0FnQVVFRWFpRUJJQUJCQkdvaEFDQUVRUUZxSWdRZ0FrY05BQXNMSUFOQkVHb2tBQXRMQVFKL0l3QkJFR3NpQXlRQUlBSUVRQU5BSUFBZ0EwRU1ha0VDRUJFZ0FTQURLQUlNTmdJQUlBRkJCR29oQVNBQVFRSnFJUUFnQkVFQmFpSUVJQUpIRFFBTEN5QURRUkJxSkFBTFNnRUNmeU1BUVJCcklnTWtBQ0FDQkVBRFFDQUFJQU5CQ0dvUVJDQUJJQU1yQXdpMk9BSUFJQUZCQkdvaEFTQUFRUWhxSVFBZ0JFRUJhaUlFSUFKSERRQUxDeUFEUVJCcUpBQUxhQUVDZnlNQVFSQnJJZ01rQUNBQ0JFQURRQ0FESUFBdEFBQTZBQThnQXlBQUxRQUJPZ0FPSUFNZ0FDMEFBam9BRFNBRElBQXRBQU02QUF3Z0FTQURLZ0lNT0FJQUlBRkJCR29oQVNBQVFRUnFJUUFnQkVFQmFpSUVJQUpIRFFBTEN5QURRUkJxSkFBTFRBRUNmeU1BUVJCcklnTWtBQ0FDQkVBRFFDQUFJQU5CREdwQkJCQVJJQUVnQXlnQ0RMTTRBZ0FnQVVFRWFpRUJJQUJCQkdvaEFDQUVRUUZxSWdRZ0FrY05BQXNMSUFOQkVHb2tBQXRNQVFKL0l3QkJFR3NpQXlRQUlBSUVRQU5BSUFBZ0EwRU1ha0VDRUJFZ0FTQURLQUlNc3pnQ0FDQUJRUVJxSVFFZ0FFRUNhaUVBSUFSQkFXb2lCQ0FDUncwQUN3c2dBMEVRYWlRQUM2b0lBZzEvQVhzakFFRVFheUlJSkFBQ2Z5QUFLQUlJUVJCR0JFQWdBQ2dDbkFFZ0FDZ0N6QUZCakN4c2Fnd0JDeUFBS0FJTUN5RUpBa0FnQWtVRVFDQURRUUZCOEI5QkFCQVBEQUVMSUFBb0FrZ2hCa0VCSVFRZ0FTQUlRUWhxUVFFUUVTQUlLQUlJSWdWQkFrOEVRQ0FEUVFKQnhzZ0FRUUFRRHd3QkN5QUNJQVZCQVdwSEJFQkJBQ0VFSUFOQkFrSHdIMEVBRUE4TUFRc0NRQ0FHS0FJUUlnTkZEUUFnQ1NnQzBDc2hCQ0FEUVFoUEJFQWdBMEY0Y1NFR1FRQWhBZ05BSUFSQkFEWUN2RU1nQkVFQU5nS0VPeUFFUVFBMkFzd3lJQVJCQURZQ2xDb2dCRUVBTmdMY0lTQUVRUUEyQXFRWklBUkJBRFlDN0JBZ0JFRUFOZ0swQ0NBRVFjRERBR29oQkNBQ1FRaHFJZ0lnQmtjTkFBc0xJQU5CQjNFaUEwVU5BRUVBSVFJRFFDQUVRUUEyQXJRSUlBUkJ1QWhxSVFRZ0FrRUJhaUlDSUFOSERRQUxDeUFKS0FMb0t5SUNCSDhnQWhBUUlBbEJBRFlDNkNzZ0NDZ0NDQVVnQlF0RkJFQkJBU0VFREFFTEEwQWdBVUVCYWlJQklBaEJER3BCQVJBUkFrQWdDU2dDZ0N4RkRRQWdDU2dDL0NzaUF5Z0NBQ0FJS0FJTVJ3MEFJQU1vQWdRaUJTQUFLQUpJSWdZb0FoQkhEUUFnQXlnQ0NDSUNCRUJCQUNFRUlBSW9BaEFnQlNBRmJDSUZJQUlvQWdCQkFuUkIwTDBCYWlnQ0FHeEhEUU1nQ1NBRlFRSjBFQlFpQnpZQzZDc2dCMFVOQXlBQ0tBSU1JQWNnQlNBQ0tBSUFRUUowUVlEQUFXb29BZ0FSQlFBTElBTW9BZ3dpQWtVTkFFRUFJUVFnQWlnQ0VDQUdLQUlRSWdNZ0FpZ0NBRUVDZEVIUXZRRnFLQUlBYkVjTkFpQURRUUowRUJRaUJVVU5BaUFDS0FJTUlBVWdBeUFDS0FJQVFRSjBRWkRBQVdvb0FnQVJCUUFDUUNBR0tBSVFJZ2RGRFFBZ0NTZ0MwQ3NoQkVFQUlRc0NRQUpBSUFkQkJFa05BQ0FFUWJRSWFpSU1JQVVnQjBFQ2RHcEpCRUFnQlNBRUlBZEJ1QWhzYWtrTkFRc2dCRUhjSVdvaERTQUVRYVFaYWlFT0lBUkI3QkJxSVE4Z0JTQUhRWHh4SWdaQkFuUnFJUUlnQkNBR1FiZ0liR29oQkVFQUlRTURRQ0FNSUFOQnVBaHNJZ3BxSUFVZ0EwRUNkR3I5QUFJQUloSDlXZ0lBQUNBS0lBOXFJQkg5V2dJQUFTQUtJQTVxSUJIOVdnSUFBaUFLSUExcUlCSDlXZ0lBQXlBRFFRUnFJZ01nQmtjTkFBc2dCaUFIUmcwQ0RBRUxJQVVoQWtFQUlRWUxJQWNnQmlJRGEwRUhjU0lLQkVBRFFDQUVJQUlvQWdBMkFyUUlJQU5CQVdvaEF5QUVRYmdJYWlFRUlBSkJCR29oQWlBTFFRRnFJZ3NnQ2tjTkFBc0xJQVlnQjJ0QmVFc05BQU5BSUFRZ0FpZ0NBRFlDdEFnZ0JDQUNLQUlFTmdMc0VDQUVJQUlvQWdnMkFxUVpJQVFnQWlnQ0REWUMzQ0VnQkNBQ0tBSVFOZ0tVS2lBRUlBSW9BaFEyQXN3eUlBUWdBaWdDR0RZQ2hEc2dCQ0FDS0FJY05nSzhReUFFUWNEREFHb2hCQ0FDUVNCcUlRSWdBMEVJYWlJRElBZEhEUUFMQ3lBRkVCQUxRUUVoQkNBUVFRRnFJaEFnQ0NnQ0NFa05BQXNMSUFoQkVHb2tBQ0FFQ3dRQVFuOEx2d2tCQzM4akFFRVFheUlGSkFBQ2Z5QUFLQUlJUVJCR0JFQWdBQ2dDbkFFZ0FDZ0N6QUZCakN4c2Fnd0JDeUFBS0FJTUN5RUhBbjhnQWtFQlRRUkFJQU5CQVVIWUkwRUFFQTlCQUF3QkN5QUJJQVZCREdwQkFoQVJJQVVvQWd3RVFDQURRUUpCOEN4QkFCQVBRUUVNQVFzZ0FrRUdUUVJBSUFOQkFVSFlJMEVBRUE5QkFBd0JDeUFCUVFKcUlBVkJDR3BCQVJBUklBY29BdndySWdraEFBSkFBa0FDUUNBSEtBS0FMQ0lHUlEwQUlBVW9BZ2doQ0FOQUlBQW9BZ0FnQ0VZTkFTQUFRUlJxSVFBZ0JFRUJhaUlFSUFaSERRQUxEQUVMSUFRZ0JrY05BUXNnQnlnQ2hDd2dCa1lFZnlBSElBWkJDbW9pQURZQ2hDd2dDU0FBUVJSc0VCY2lBRVVFUUNBSEtBTDhLeEFRSUFkQkFEWUNoQ3dnQjBJQU53TDhLeUFEUVFGQjhpTkJBQkFQUVFBTUF3c2dCeUFBTmdMOEt5QUFJQWNvQW9Bc0lnUkJGR3hxUVFBZ0J5Z0NoQ3dnQkd0QkZHd1FGUm9nQnlnQy9Dc2hDU0FIS0FLQUxBVWdCZ3RCRkd3Z0NXb2hBRUVCSVFzTElBQWdCU2dDQ0RZQ0FDQUJRUU5xSUFWQkRHcEJBaEFSSUFVb0Fnd0VRQ0FEUVFKQjhDeEJBQkFQUVFFTUFRc2dBVUVGYWlBRlFRUnFRUUlRRVNBRktBSUVJZ1JCQWs4RVFDQURRUUpCcUJkQkFCQVBRUUVNQVFzZ0FrRUhheUVHSUFRRVFDQUJRUWRxSVFKQkFDRUpBMEFnQmtFQ1RRUkFJQU5CQVVIWUkwRUFFQTlCQUF3REN5QUNJQVZCREdwQkFSQVJJQVVvQWd4QkFVY0VRQ0FEUVFKQnNpcEJBQkFQUVFFTUF3c2dBa0VCYWlBRlFRSVFFU0FBSUFVb0FnQWlCRUgvL3dGeElnRTJBZ1FnQmtFRGF5SUlJQVJCRDNaQkFXb2lCaUFCYkVFQ2FpSUtTUVJBSUFOQkFVSFlJMEVBRUE5QkFBd0RDeUFDUVFOcUlRSkJBQ0VFSUFFRVFBTkFJQUlnQlVFTWFpQUdFQkVnQkNBRktBSU1Sd1JBSUFOQkFrSGFMMEVBRUE5QkFRd0ZDeUFDSUFacUlRSWdCRUVCYWlJRUlBQW9BZ1JKRFFBTEN5QUNJQVZCQWhBUklBVWdCU2dDQUNJRVFmLy9BWEVpQVRZQ0FDQUFLQUlFSUFGSEJFQWdBMEVDUWRnWVFRQVFEMEVCREFNTElBZ2dDbXNpQ2lBRVFROTJRUUZxSWdZZ0FXeEJBMm9pREVrRVFDQURRUUZCMkNOQkFCQVBRUUFNQXdzZ0FrRUNhaUVDUVFBaEJDQUJCRUFEUUNBQ0lBVkJER29nQmhBUklBUWdCU2dDREVjRVFDQURRUUpCMmk5QkFCQVBRUUVNQlFzZ0FpQUdhaUVDSUFSQkFXb2lCQ0FBS0FJRVNRMEFDd3NnQWlBRlFReHFRUU1RRVNBRktBSU1JUVlnQUVJQU53SUlJQUFnQmtHQWdBUnhSU0FBTFFBUVFmNEJjWEk2QUJBZ0JTQUdRZjhCY1NJSU5nSUlBa0FnQ0VVTkFDQUhLQUwwS3lJTkJFQWdCeWdDOENzaEJFRUFJUUVEUUNBSUlBUW9BZ2hHQkVBZ0FDQUVOZ0lJREFNTElBUkJGR29oQkNBQlFRRnFJZ0VnRFVjTkFBc0xJQU5CQVVIWUkwRUFFQTlCQUF3REN5QUZJQVpCQ0haQi93RnhJZ1kyQWdnQ1FDQUdSUTBBSUFjb0F2UXJJZ2dFUUNBSEtBTHdLeUVFUVFBaEFRTkFJQVlnQkNnQ0NFWUVRQ0FBSUFRMkFnd01Bd3NnQkVFVWFpRUVJQUZCQVdvaUFTQUlSdzBBQ3dzZ0EwRUJRZGdqUVFBUUQwRUFEQU1MSUFvZ0RHc2hCaUFDUVFOcUlRSWdDVUVCYWlJSklBVW9BZ1JKRFFBTEN5QUdCRUFnQTBFQlFkZ2pRUUFRRDBFQURBRUxRUUVnQzBVTkFCb2dCeUFIS0FLQUxFRUJhallDZ0N4QkFRc2hEaUFGUVJCcUpBQWdEZ3YxQVFFRmZ5TUFRUkJySWdRa0FBSkFJQUlnQUNnQ1NDZ0NFQ0lHUVFKcVJ3UkFJQU5CQVVId0lrRUFFQThNQVFzZ0FTQUVRUXhxUVFJUUVTQUdJQVFvQWd4SEJFQWdBMEVCUWZBaVFRQVFEd3dCQ3lBR1JRUkFRUUVoQlF3QkN5QUJRUUpxSVFJZ0FDZ0NTQ2dDR0NFQVFRQWhBUU5BSUFJZ0JFRUlha0VCRUJFZ0FDQUVLQUlJSWdWQi93QnhJZ2RCQVdvaUNEWUNHQ0FBSUFWQkIzWkJBWEUyQWlBZ0IwRWZUd1JBSUFRZ0NEWUNCQ0FFSUFFMkFnQWdBMEVCUWJmekFDQUVFQTlCQUNFRkRBSUxJQUJCTkdvaEFFRUJJUVVnQWtFQmFpRUNJQUZCQVdvaUFTQUdSdzBBQ3dzZ0JFRVFhaVFBSUFVTG1BVUJDbjhqQUVFUWF5SUhKQUFDZnlBQUtBSUlRUkJHQkVBZ0FDZ0NuQUVnQUNnQ3pBRkJqQ3hzYWd3QkN5QUFLQUlNQ3lFRkFuOGdBa0VCVFFSQUlBTkJBVUh4SGtFQUVBOUJBQXdCQ3lBQklBZEJER3BCQWhBUkFrQWdCeWdDREFSQUlBTkJBa0dHRzBFQUVBOE1BUXNnQWtFR1RRUkFJQU5CQVVIeEhrRUFFQTlCQUF3Q0N5QUJRUUpxSUFkQkRHcEJBaEFSSUFVb0F2QXJJUVFnQnkwQURDRUtBa0FDUUFKQUlBVW9BdlFySWdaRkJFQWdCQ0VBREFFTElBUWhBQU5BSUFBb0FnZ2dDa1lOQVNBQVFSUnFJUUFnQ0VFQmFpSUlJQVpIRFFBTERBRUxJQVlnQ0VjTkFRc2dCU2dDK0NzZ0JrWUVRQ0FGSUFaQkNtb2lBRFlDK0NzZ0JDQUFRUlJzRUJjaEFDQUZLQUx3S3lFRUlBQkZCRUFnQkJBUUlBVkJBRFlDK0NzZ0JVSUFOd0x3S3lBRFFRRkJpeDlCQUJBUFFRQU1CQXNDUUNBQUlBUkdEUUFnQlNnQ2dDd2lDMFVOQUNBRktBTDhLeUVNUVFBaENBTkFJQXdnQ0VFVWJHb2lCaWdDQ0NJSkJFQWdCaUFBSUFrZ0JHdHFOZ0lJQ3lBR0tBSU1JZ2tFUUNBR0lBQWdDU0FFYTJvMkFnd0xJQWhCQVdvaUNDQUxSdzBBQ3dzZ0JTQUFOZ0x3S3lBQUlBVW9BdlFySWdSQkZHeHFRUUFnQlNnQytDc2dCR3RCRkd3UUZSb2dCU2dDOUNzaEJpQUZLQUx3S3lFRUN5QUZJQVpCQVdvMkF2UXJJQVFnQmtFVWJHb2hBQXNnQUNnQ0RDSUVCRUFnQkJBUUlBQkNBRGNDREFzZ0FDQUtOZ0lJSUFBZ0J5Z0NEQ0lFUVFwMlFRTnhOZ0lBSUFBZ0JFRUlka0VEY1RZQ0JDQUJRUVJxSUFkQkRHcEJBaEFSSUFjb0Fnd0VRQ0FEUVFKQnZSWkJBQkFQREFFTElBQWdBa0VHYXlJQ0VCUWlCRFlDRENBRVJRUkFJQU5CQVVIeEhrRUFFQTlCQUF3Q0N5QUVJQUZCQm1vZ0FoQVNHaUFBSUFJMkFoQUxRUUVMSVEwZ0IwRVFhaVFBSUEwTEp3QkJBU0VCSUFJZ0FDZ0NTQ2dDRUVFQ2RFY0VmeUFEUVFGQjF5RkJBQkFQUVFBRlFRRUxDNnNEQVFWL0l3QkJFR3NpQmlRQUFuOGdBa0VCVFFSQUlBTkJBVUg5SFVFQUVBOUJBQXdCQ3lBQUxRQzhBVUVCY1FSQUlBTkJBVUdKM2dCQkFCQVBRUUFNQVFzZ0FDZ0NuQUVnQUNnQ3pBRkJqQ3hzYWlJQUlBQXRBSWdzUVFKeU9nQ0lMQ0FCSUFaQkRHcEJBUkFSQWtBZ0FDZ0NyQ2dpQkVVRVFDQUFJQVlvQWd4QkFXb2lCVUVJRUJNaUJEWUNyQ2dnQkVVRVFDQURRUUZCbHg1QkFCQVBRUUFNQXdzZ0FDQUZOZ0tvS0F3QkN5QUdLQUlNSWdVZ0FDZ0NxQ2hKRFFBZ0JDQUZRUUZxSWdSQkEzUVFGeUlGUlFSQUlBTkJBVUdYSGtFQUVBOUJBQXdDQ3lBQUlBVTJBcXdvSUFVZ0FDZ0NxQ2dpQjBFRGRHcEJBQ0FFSUFkclFRTjBFQlVhSUFBZ0JEWUNxQ2dnQUNnQ3JDZ2hCQXNnQkNBR0tBSU1JZ1ZCQTNScUtBSUFCRUFnQmlBRk5nSUFJQU5CQVVHOU5TQUdFQTlCQUF3QkN5QUNRUUZySWdJUUZDRUVJQUFvQXF3b0lnQWdCaWdDRENJRlFRTjBhaUFFTmdJQUlBUkZCRUFnQTBFQlFaY2VRUUFRRDBFQURBRUxJQUFnQlVFRGRHb2dBallDQkNBQUlBWW9BZ3hCQTNScUtBSUFJQUZCQVdvZ0FoQVNHa0VCQ3lFSUlBWkJFR29rQUNBSUMvVUNBUVYvSXdCQkVHc2lCaVFBQW44Z0FrRUJUUVJBSUFOQkFVR2tJRUVBRUE5QkFBd0JDeUFBSUFBdEFMd0JRUUZ5T2dDOEFTQUJJQVpCREdwQkFSQVJBa0FnQUNnQ2RDSUVSUVJBSUFBZ0JpZ0NERUVCYWlJRlFRZ1FFeUlFTmdKMElBUkZCRUFnQTBFQlFiNGdRUUFRRDBFQURBTUxJQUFnQlRZQ2NBd0JDeUFHS0FJTUlnVWdBQ2dDY0VrTkFDQUVJQVZCQVdvaUJFRURkQkFYSWdWRkJFQWdBMEVCUWI0Z1FRQVFEMEVBREFJTElBQWdCVFlDZENBRklBQW9BbkFpQjBFRGRHcEJBQ0FFSUFkclFRTjBFQlVhSUFBZ0JEWUNjQ0FBS0FKMElRUUxJQVFnQmlnQ0RDSUZRUU4wYWlnQ0FBUkFJQVlnQlRZQ0FDQURRUUZCMHpVZ0JoQVBRUUFNQVFzZ0FrRUJheUlDRUJRaEJDQUFLQUowSWdBZ0JpZ0NEQ0lGUVFOMGFpQUVOZ0lBSUFSRkJFQWdBMEVCUWI0Z1FRQVFEMEVBREFFTElBQWdCVUVEZEdvZ0FqWUNCQ0FBSUFZb0FneEJBM1JxS0FJQUlBRkJBV29nQWhBU0drRUJDeUVJSUFaQkVHb2tBQ0FJQzZBQkFRUi9Jd0JCRUdzaUJDUUFBbjhnQWtVRVFDQURRUUZCMXg1QkFCQVBRUUFNQVFzZ0FTQUVRUXhxUVFFUUVVRUJJQUpCQVdzaUJVVU5BQnBCQUNFQVFRQWhBZ05BSUFGQkFXb2lBU0FFUVFocVFRRVFFU0FFS0FJSUlnWkJHSFJCSDNVZ0JrSC9BSEVnQW5KQkIzUnhJUUlnQUVFQmFpSUFJQVZIRFFBTFFRRWdBa1VOQUJvZ0EwRUJRZGNlUVFBUUQwRUFDeUVISUFSQkVHb2tBQ0FIQ3hzQVFRRWhBQ0FDQkg5QkFRVWdBMEVCUWY0Z1FRQVFEMEVBQ3d1QUFRRUJmeU1BUVJCcklnQWtBRUVCSVFRQ1FDQUNRUUZOQkVCQkFDRUVJQU5CQVVIa0lFRUFFQThNQVFzZ0FTQUFRUXhxUVFFUUVTQUJRUUZxSUFCQkNHcEJBUkFSSUFKQkFtc2dBQ2dDQ0NJQlFRVjJRUUp4SUFGQkJIWkJBM0ZxUVFKcWNFVU5BRUVBSVFRZ0EwRUJRZVFnUVFBUUR3c2dBRUVRYWlRQUlBUUxCQUJCQUFzTG9yd0JJUUJCZ0FnTGtYVmpZVzV1YjNRZ1lXeHNiMk5oZEdVZ2IzQnFYM1JqWkY5elpXZGZaR0YwWVY5amFIVnVhMTkwS2lCaGNuSmhlUUF0S3lBZ0lEQllNSGdBTFRCWUt6QllJREJZTFRCNEt6QjRJREI0QUZWdWEyNXZkMjRnWm05eWJXRjBBRVpoYVd4bFpDQjBieUJ6WlhSMWNDQjBhR1VnWkdWamIyUmxjZ0JHWVdsc1pXUWdkRzhnY21WaFpDQjBhR1VnYUdWaFpHVnlBRzVoYmdBcWJGOTBhV3hsWDJ4bGJpQStJRlZKVGxSZlRVRllJQzBnVDFCS1gwTlBUVTFQVGw5RFFreExYMFJCVkVGZlJWaFVVa0VnTFNCd1gyb3lheTArYlY5emNHVmphV1pwWTE5d1lYSmhiUzV0WDJSbFkyOWtaWEl1YlY5emIzUmZiR1Z1WjNSb0FHbHVaZ0JHWVdsc1pXUWdkRzhnWkdWamIyUmxJSFJvWlNCcGJXRm5aUUJKYm5aaGJHbGtJR0ZqWTJWemN5QjBieUJ3YVMwK2FXNWpiSFZrWlFBdmRHMXdMMjl3Wlc1cWNHVm5MM055WXk5aWFXNHZZMjl0Ylc5dUwyTnZiRzl5TG1NQVFVeE1YME5RVlZNQVQxQktYMDVWVFY5VVNGSkZRVVJUQUU1QlRnQkpUa1lBY0Y5cU1tc3RQbTFmYzNCbFkybG1hV05mY0dGeVlXMHViVjlrWldOdlpHVnlMbTFmYzI5MFgyeGxibWQwYUNBK0lGVkpUbFJmVFVGWUlDMGdUMUJLWDBOUFRVMVBUbDlEUWt4TFgwUkJWRUZmUlZoVVVrRUFDUWtKSUhCeVpXTmphVzUwYzJsNlpTQW9keXhvS1QwQUNRa0pJSE4wWlhCemFYcGxjeUFvYlN4bEtUMEFMZ0FvYm5Wc2JDa0FLQ1ZrTENWa0tTQUFKWE45Q2dBSkNTQjlDZ0JiUkVWV1hTQkVkVzF3SUdGdUlHbHRZV2RsWDJOdmJYQmZhR1ZoWkdWeUlITjBjblZqZENCN0NnQmJSRVZXWFNCRWRXMXdJR0Z1SUdsdFlXZGxYMmhsWVdSbGNpQnpkSEoxWTNRZ2V3b0FTVzFoWjJVZ2FXNW1ieUI3Q2dBSklHUmxabUYxYkhRZ2RHbHNaU0I3Q2dBbGN3a2dZMjl0Y0c5dVpXNTBJQ1ZrSUhzS0FBa0pJR052YlhBZ0pXUWdld29BQ1NCVWFXeGxJR2x1WkdWNE9pQjdDZ0FKSUUxaGNtdGxjaUJzYVhOME9pQjdDZ0JEYjJSbGMzUnlaV0Z0SUdsdVpHVjRJR1p5YjIwZ2JXRnBiaUJvWldGa1pYSTZJSHNLQUVOdlpHVnpkSEpsWVcwZ2FXNW1ieUJtY205dElHMWhhVzRnYUdWaFpHVnlPaUI3Q2dCVGRISmxZVzBnWlhKeWIzSWdkMmhwYkdVZ2NtVmhaR2x1WnlCS1VESWdTR1ZoWkdWeUlHSnZlQW9BUm05MWJtUWdZU0J0YVhOd2JHRmpaV1FnSnlWakpXTWxZeVZqSnlCaWIzZ2diM1YwYzJsa1pTQnFjREpvSUdKdmVBb0FUV0ZzWm05eWJXVmtJRXBRTWlCbWFXeGxJR1p2Y20xaGREb2dabWx5YzNRZ1ltOTRJRzExYzNRZ1ltVWdTbEJGUnlBeU1EQXdJSE5wWjI1aGRIVnlaU0JpYjNnS0FFMWhiR1p2Y20xbFpDQktVRElnWm1sc1pTQm1iM0p0WVhRNklITmxZMjl1WkNCaWIzZ2diWFZ6ZENCaVpTQm1hV3hsSUhSNWNHVWdZbTk0Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5Qm9ZVzVrYkdVZ2FuQmxaekl3TURBZ1ltOTRDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0IzYVhSb0lFWlVXVkFnUW05NENnQkJJRzFoY210bGNpQkpSQ0IzWVhNZ1pYaHdaV04wWldRZ0tEQjRabVl0TFNrZ2FXNXpkR1ZoWkNCdlppQWxMamg0Q2dBSkNTQnRZM1E5SlhnS0FBa0pDU0JqWW14cmMzUjVQU1VqZUFvQUNRa0pJR056ZEhrOUpTTjRDZ0FKQ1NCd2NtYzlKU040Q2dCSmJuUmxaMlZ5SUc5MlpYSm1iRzkzQ2dBSklIUmtlRDBsZFN3Z2RHUjVQU1YxQ2dBSklIUjNQU1YxTENCMGFEMGxkUW9BQ1NCMGVEQTlKWFVzSUhSNU1EMGxkUW9BU1c1MllXeHBaQ0JqYjIxd2IyNWxiblFnYVc1a1pYZzZJQ1YxQ2dCVGRISmxZVzBnZEc5dklITm9iM0owQ2dCTllYSnJaWElnYUdGdVpHeGxjaUJtZFc1amRHbHZiaUJtWVdsc1pXUWdkRzhnY21WaFpDQjBhR1VnYldGeWEyVnlJSE5sWjIxbGJuUUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJR1p2Y2lCamRYSnlaVzUwSUhCeVpXTnBibU4wSUdOdlpHVmliRzlqYXlCbGJHVnRaVzUwQ2dCRmNuSnZjaUJ5WldGa2FXNW5JRk5RUTI5a0lGTlFRMjlqSUdWc1pXMWxiblFLQUVWeWNtOXlJSEpsWVdScGJtY2dVMUZqWkNCdmNpQlRVV05qSUdWc1pXMWxiblFLQUVFZ1FsQkRReUJvWldGa1pYSWdZbTk0SUdseklHRjJZV2xzWVdKc1pTQmhiSFJvYjNWbmFDQkNVRU1nWjJsMlpXNGdZbmtnZEdobElFbElSRklnWW05NElDZ2xaQ2tnYVc1a2FXTmhkR1VnWTI5dGNHOXVaVzUwY3lCaWFYUWdaR1Z3ZEdnZ2FYTWdZMjl1YzNSaGJuUUtBRVZ5Y205eUlIZHBkR2dnVTBsYUlHMWhjbXRsY2pvZ2FXeHNaV2RoYkNCMGFXeGxJRzltWm5ObGRBb0FTVzUyWVd4cFpDQndjbVZqYVc1amRBb0FUbTkwSUdWdWIzVm5hQ0J0WlcxdmNua2dkRzhnYUdGdVpHeGxJR0poYm1RZ2NISmxZMmx1ZEhNS0FFWmhhV3hsWkNCMGJ5QmtaV052WkdVZ1lXeHNJSFZ6WldRZ1kyOXRjRzl1Wlc1MGN3b0FVMmw2WlNCdlppQmpiMlJsSUdKc2IyTnJJR1JoZEdFZ1pYaGpaV1ZrY3lCemVYTjBaVzBnYkdsdGFYUnpDZ0JUYVhwbElHOW1JSFJwYkdVZ1pHRjBZU0JsZUdObFpXUnpJSE41YzNSbGJTQnNhVzFwZEhNS0FFTmhibTV2ZENCMFlXdGxJR2x1SUdOb1lYSm5aU0J0ZFd4MGFYQnNaU0JOUTFRZ2JXRnlhMlZ5Y3dvQVEyOXljblZ3ZEdWa0lGQlFUU0J0WVhKclpYSnpDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0JtYjNJZ2RHbHNaU0J5WlhOdmJIVjBhVzl1Y3dvQVEyRnVibTkwSUhSaGEyVWdhVzRnWTJoaGNtZGxJRzExYkhScGNHeGxJR052Ykd4bFkzUnBiMjV6Q2dCSmJuWmhiR2xrSUZCRFRGSWdZbTk0TGlCU1pYQnZjblJ6SURBZ2NHRnNaWFIwWlNCamIyeDFiVzV6Q2dCWFpTQmtieUJ1YjNRZ2MzVndjRzl5ZENCU1Qwa2dhVzRnWkdWamIyUnBibWNnU0ZRZ1kyOWtaV0pzYjJOcmN3b0FRMkZ1Ym05MElHaGhibVJzWlNCaWIzZ2diMllnZFc1a1pXWnBibVZrSUhOcGVtVnpDZ0JEWVc1dWIzUWdkR0ZyWlNCcGJpQmphR0Z5WjJVZ1kyOXNiR1ZqZEdsdmJuTWdkMmwwYUc5MWRDQnpZVzFsSUc1MWJXSmxjaUJ2WmlCcGJtUnBlR1Z6Q2dCSmJuWmhiR2xrSUhScGJHVmpMVDUzYVc1ZmVIaDRJSFpoYkhWbGN3b0FRMkZ1Ym05MElHaGhibVJzWlNCaWIzZ2diMllnYkdWemN5QjBhR0Z1SURnZ1lubDBaWE1LQUVOaGJtNXZkQ0JvWVc1a2JHVWdXRXdnWW05NElHOW1JR3hsYzNNZ2RHaGhiaUF4TmlCaWVYUmxjd29BUTI5dGNHOXVaVzUwSUdsdVpHVjRJQ1YxSUhWelpXUWdjMlYyWlhKaGJDQjBhVzFsY3dvQVNXNTJZV3hwWkNCUVEweFNJR0p2ZUM0Z1VtVndiM0owY3lBbFpDQmxiblJ5YVdWekNnQk9iM1FnWlc1dmRXZG9JRzFsYlc5eWVTQjBieUJqY21WaGRHVWdWR0ZuTFhSeVpXVWdibTlrWlhNS0FFTmhibTV2ZENCMFlXdGxJR2x1SUdOb1lYSm5aU0J0WTNRZ1pHRjBZU0IzYVhSb2FXNGdiWFZzZEdsd2JHVWdUVU5VSUhKbFkyOXlaSE1LQUVOaGJtNXZkQ0JrWldOdlpHVWdkR2xzWlN3Z2JXVnRiM0o1SUdWeWNtOXlDZ0J2Y0dwZmFqSnJYMkZ3Y0d4NVgyNWlYM1JwYkdWZmNHRnlkSE5mWTI5eWNtVmpkR2x2YmlCbGNuSnZjZ29BVUhKdllteGxiU0IzYVhSb0lITnJhWEJ3YVc1bklFcFFSVWN5TURBd0lHSnZlQ3dnYzNSeVpXRnRJR1Z5Y205eUNnQlFjbTlpYkdWdElIZHBkR2dnY21WaFpHbHVaeUJLVUVWSE1qQXdNQ0JpYjNnc0lITjBjbVZoYlNCbGNuSnZjZ29BVlc1cmJtOTNiaUJ0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUdGa1pDQjBiQ0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUdGa1pDQnRhQ0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUhSaGEyVWdhVzRnWTJoaGNtZGxJRk5KV2lCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVRkJVSUcxaGNtdGxjZ29BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z2NtVmhaQ0JRVUZRZ2JXRnlhMlZ5Q2dCRmNuSnZjaUJ5WldGa2FXNW5JRk5QVkNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVRXhVSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5Qk5RMVFnYldGeWEyVnlDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0IwYnlCeVpXRmtJRTFEVkNCdFlYSnJaWElLQUU1dmRDQmxibTkxWjJnZ2MzQmhZMlVnWm05eUlHVjRjR1ZqZEdWa0lGTlBVQ0J0WVhKclpYSUtBRVY0Y0dWamRHVmtJRk5QVUNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dUVU5QSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QlNSMDRnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGQlFUU0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUhKbFlXUWdVRkJOSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QlVURTBnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGQk1UU0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYzNCaFkyVWdabTl5SUdWNGNHVmpkR1ZrSUVWUVNDQnRZWEpyWlhJS0FFVjRjR1ZqZEdWa0lFVlFTQ0J0WVhKclpYSUtBRVZ5Y205eUlISmxZV1JwYm1jZ1ExSkhJRzFoY210bGNnb0FWVzVyYm05M2JpQndjbTluY21WemMybHZiaUJ2Y21SbGNpQnBiaUJEVDBRZ2JXRnlhMlZ5Q2dCVmJtdHViM2R1SUZOamIyUWdkbUZzZFdVZ2FXNGdRMDlFSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QkRUMFFnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGRkRSQ0J0WVhKclpYSUtBRU55Y205eUlISmxZV1JwYm1jZ1EwSkVJRzFoY210bGNnb0FSWEp5YjNJZ2NtVmhaR2x1WnlCUVQwTWdiV0Z5YTJWeUNnQkZjbkp2Y2lCeVpXRmthVzVuSUVOUFF5QnRZWEpyWlhJS0FFVnljbTl5SUhKbFlXUnBibWNnVVVORElHMWhjbXRsY2dvQVJYSnliM0lnY21WaFpHbHVaeUJOUTBNZ2JXRnlhMlZ5Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5QnlaV0ZrSUUxRFF5QnRZWEpyWlhJS0FISmxjWFZwY21Wa0lGTkpXaUJ0WVhKclpYSWdibTkwSUdadmRXNWtJR2x1SUcxaGFXNGdhR1ZoWkdWeUNnQnlaWEYxYVhKbFpDQkRUMFFnYldGeWEyVnlJRzV2ZENCbWIzVnVaQ0JwYmlCdFlXbHVJR2hsWVdSbGNnb0FjbVZ4ZFdseVpXUWdVVU5FSUcxaGNtdGxjaUJ1YjNRZ1ptOTFibVFnYVc0Z2JXRnBiaUJvWldGa1pYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUdoaGJtUnNaU0JxY0dWbk1qQXdNQ0JtYVd4bElHaGxZV1JsY2dvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdjbVZoWkNCb1pXRmtaWElLQUVWeWNtOXlJSGRwZEdnZ1NsQWdVMmxuYm1GMGRYSmxJRG9nWW1Ga0lHMWhaMmxqSUc1MWJXSmxjZ29BU1c0Z1UwOVVJRzFoY210bGNpd2dWRkJUYjNRZ0tDVmtLU0JwY3lCdWIzUWdkbUZzYVdRZ2NtVm5ZWEprY3lCMGJ5QjBhR1VnWTNWeWNtVnVkQ0J1ZFcxaVpYSWdiMllnZEdsc1pTMXdZWEowSUNnbFpDa3NJR2RwZG1sdVp5QjFjQW9BU1c0Z1UwOVVJRzFoY210bGNpd2dWRkJUYjNRZ0tDVmtLU0JwY3lCdWIzUWdkbUZzYVdRZ2NtVm5ZWEprY3lCMGJ5QjBhR1VnY0hKbGRtbHZkWE1nYm5WdFltVnlJRzltSUhScGJHVXRjR0Z5ZENBb0pXUXBMQ0JuYVhacGJtY2dkWEFLQUVsdUlGTlBWQ0J0WVhKclpYSXNJRlJRVTI5MElDZ2xaQ2tnYVhNZ2JtOTBJSFpoYkdsa0lISmxaMkZ5WkhNZ2RHOGdkR2hsSUdOMWNuSmxiblFnYm5WdFltVnlJRzltSUhScGJHVXRjR0Z5ZENBb2FHVmhaR1Z5S1NBb0pXUXBMQ0JuYVhacGJtY2dkWEFLQUhScGJHVnpJSEpsY1hWcGNtVWdZWFFnYkdWaGMzUWdiMjVsSUhKbGMyOXNkWFJwYjI0S0FFMWhjbXRsY2lCcGN5QnViM1FnWTI5dGNHeHBZVzUwSUhkcGRHZ2dhWFJ6SUhCdmMybDBhVzl1Q2dCUWNtOWliR1Z0SUhkcGRHZ2djMlZsYXlCbWRXNWpkR2x2YmdvQVJYSnliM0lnY21WaFpHbHVaeUJUVUVOdlpDQlRVRU52WXlCbGJHVnRaVzUwTENCSmJuWmhiR2xrSUdOaWJHdDNMMk5pYkd0b0lHTnZiV0pwYm1GMGFXOXVDZ0JKYm5aaGJHbGtJRzExYkhScGNHeGxJR052YlhCdmJtVnVkQ0IwY21GdWMyWnZjbTFoZEdsdmJnb0FRMkZ1Ym05MElIUmhhMlVnYVc0Z1kyaGhjbWRsSUdOdmJHeGxZM1JwYjI1eklHOTBhR1Z5SUhSb1lXNGdZWEp5WVhrZ1pHVmpiM0p5Wld4aGRHbHZiZ29BVkc5dklHeGhjbWRsSUhaaGJIVmxJR1p2Y2lCT2NIQnRDZ0JPYjNRZ1pXNXZkV2RvSUdKNWRHVnpJSFJ2SUhKbFlXUWdUbkJ3YlFvQVltRmtJSEJzWVdObFpDQnFjR1ZuSUdOdlpHVnpkSEpsWVcwS0FBa2dUV0ZwYmlCb1pXRmtaWElnYzNSaGNuUWdjRzl6YVhScGIyNDlKV3hzYVFvSklFMWhhVzRnYUdWaFpHVnlJR1Z1WkNCd2IzTnBkR2x2YmowbGJHeHBDZ0JOWVhKclpYSWdjMmw2WlNCcGJtTnZibk5wYzNSbGJuUWdkMmwwYUNCemRISmxZVzBnYkdWdVozUm9DZ0JVYVd4bElIQmhjblFnYkdWdVozUm9JSE5wZW1VZ2FXNWpiMjV6YVhOMFpXNTBJSGRwZEdnZ2MzUnlaV0Z0SUd4bGJtZDBhQW9BUTJGdWJtOTBJSFJoYTJVZ2FXNGdZMmhoY21kbElHMTFiSFJwY0d4bElHUmhkR0VnYzNCaGJtNXBibWNLQUZkeWIyNW5JR1pzWVdjS0FFVnljbTl5SUhkcGRHZ2dSbFJaVUNCemFXZHVZWFIxY21VZ1FtOTRJSE5wZW1VS0FFVnljbTl5SUhkcGRHZ2dTbEFnYzJsbmJtRjBkWEpsSUVKdmVDQnphWHBsQ2dCSmJuWmhiR2xrSUhCeVpXTnBibU4wSUhOcGVtVUtBRWx1WTI5dWMybHpkR1Z1ZENCdFlYSnJaWElnYzJsNlpRb0FTVzUyWVd4cFpDQnRZWEpyWlhJZ2MybDZaUW9BUlhKeWIzSWdkMmwwYUNCVFNWb2diV0Z5YTJWeUlITnBlbVVLQUU1dmRDQmxibTkxWjJnZ2JXVnRiM0o1SUhSdklHRmtaQ0JoSUc1bGR5QjJZV3hwWkdGMGFXOXVJSEJ5YjJObFpIVnlaUW9BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z1pHVmpiMlJsSUhScGJHVUtBRVpoYVd4bFpDQjBieUJrWldOdlpHVWdkR2hsSUdOdlpHVnpkSEpsWVcwZ2FXNGdkR2hsSUVwUU1pQm1hV3hsQ2dCRFlXNXViM1FnZEdGclpTQnBiaUJqYUdGeVoyVWdZMjlzYkdWamRHbHZibk1nZDJsMGFDQnBibVJwZUNCemFIVm1abXhsQ2dCRFlXNXViM1FnWVd4c2IyTmhkR1VnVkdsbGNpQXhJR2hoYm1Sc1pRb0FUbThnWkdWamIyUmxaQ0JoY21WaElIQmhjbUZ0WlhSbGNuTXNJSE5sZENCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUhSdklIUm9aU0IzYUc5c1pTQnBiV0ZuWlFvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdZM0psWVhSbElGUmhaeTEwY21WbENnQk9iM1FnWlc1dmRXZG9JRzFsYlc5eWVTQjBieUJ5WldsdWFYUnBZV3hwZW1VZ2RHaGxJSFJoWnlCMGNtVmxDZ0JGY25KdmNpQnlaV0ZrYVc1bklGTlFRMjlrSUZOUVEyOWpJR1ZzWlcxbGJuUXNJRWx1ZG1Gc2FXUWdkSEpoYm5ObWIzSnRZWFJwYjI0Z1ptOTFibVFLQUVWeWNtOXlJSEpsWVdScGJtY2dVMUJEYjJRZ1UxQkRiMk1nWld4bGJXVnVkQzRnVlc1emRYQndiM0owWldRZ1RXbDRaV1FnU0ZRZ1kyOWtaUzFpYkc5amF5QnpkSGxzWlNCbWIzVnVaQW9BVkdsc1pTQlpJR052YjNKa2FXNWhkR1Z6SUdGeVpTQnViM1FnYzNWd2NHOXlkR1ZrQ2dCVWFXeGxJRmdnWTI5dmNtUnBibUYwWlhNZ1lYSmxJRzV2ZENCemRYQndiM0owWldRS0FFbHRZV2RsSUdOdmIzSmthVzVoZEdWeklHRmliM1psSUVsT1ZGOU5RVmdnWVhKbElHNXZkQ0J6ZFhCd2IzSjBaV1FLQUVwUVJVY3lNREF3SUVobFlXUmxjaUJpYjNnZ2JtOTBJSEpsWVdRZ2VXVjBMQ0FuSldNbFl5VmpKV01uSUdKdmVDQjNhV3hzSUdKbElHbG5ibTl5WldRS0FHOXdhbDlxTW10ZmJXVnlaMlZmY0hCMEtDa2dhR0Z6SUdGc2NtVmhaSGtnWW1WbGJpQmpZV3hzWldRS0FFNXZkQ0JsYm05MVoyZ2diV1Z0YjNKNUlIUnZJSEpsWVdRZ1UwOVVJRzFoY210bGNpNGdWR2xzWlNCcGJtUmxlQ0JoYkd4dlkyRjBhVzl1SUdaaGFXeGxaQW9BU1dkdWIzSnBibWNnYVdoa2NpQmliM2d1SUVacGNuTjBJR2xvWkhJZ1ltOTRJR0ZzY21WaFpIa2djbVZoWkFvQVduQndkQ0FsZFNCaGJISmxZV1I1SUhKbFlXUUtBRnB3Y0cwZ0pYVWdZV3h5WldGa2VTQnlaV0ZrQ2dCUVZFVlNUU0JqYUdWamF5Qm1ZV2xzZFhKbE9pQWxaQ0J6ZVc1MGFHVjBhWHBsWkNBd2VFWkdJRzFoY210bGNuTWdjbVZoWkFvQUNRa0pJR05pYkd0M1BUSmVKV1FLQUFrSkNTQmpZbXhyYUQweVhpVmtDZ0FKQ1FrZ2NXNTBjM1I1UFNWa0NnQWxjeUJrZUQwbFpDd2daSGs5SldRS0FBa0pDU0J5YjJsemFHbG1kRDBsWkFvQUNRa0pJRzUxYldkaWFYUnpQU1ZrQ2dBSkNTQnVkVzFzWVhsbGNuTTlKV1FLQUNWeklHNTFiV052YlhCelBTVmtDZ0J2Y0dwZmFuQXlYMkZ3Y0d4NVgyTmtaV1k2SUdGamJqMGxaQ3dnYm5WdFkyOXRjSE05SldRS0FHOXdhbDlxY0RKZllYQndiSGxmWTJSbFpqb2dZMjQ5SldRc0lHNTFiV052YlhCelBTVmtDZ0FKQ1FrZ2JuVnRjbVZ6YjJ4MWRHbHZibk05SldRS0FBa0pJSFI1Y0dVOUpTTjRMQ0J3YjNNOUpXeHNhU3dnYkdWdVBTVmtDZ0FsY3lCeloyNWtQU1ZrQ2dBSkNRa2djVzFtWW1sa1BTVmtDZ0FsY3lCd2NtVmpQU1ZrQ2dBSkNTQnVZaUJ2WmlCMGFXeGxMWEJoY25RZ2FXNGdkR2xzWlNCYkpXUmRQU1ZrQ2dBbGN5QjRNVDBsWkN3Z2VURTlKV1FLQUNWeklIZ3dQU1ZrTENCNU1EMGxaQW9BUm1GcGJHVmtJSFJ2SUdSbFkyOWtaU0IwYVd4bElDVmtMeVZrQ2dCVFpYUjBhVzVuSUdSbFkyOWthVzVuSUdGeVpXRWdkRzhnSldRc0pXUXNKV1FzSldRS0FFWmhhV3hsWkNCMGJ5QmtaV052WkdVZ1kyOXRjRzl1Wlc1MElDVmtDZ0JKYm5aaGJHbGtJSFpoYkhWbElHWnZjaUJ1ZFcxeVpYTnZiSFYwYVc5dWN5QTZJQ1ZrTENCdFlYZ2dkbUZzZFdVZ2FYTWdjMlYwSUdsdUlHOXdaVzVxY0dWbkxtZ2dZWFFnSldRS0FFbHVkbUZzYVdRZ1kyOXRjRzl1Wlc1MElHNTFiV0psY2pvZ0pXUXNJSEpsWjJGeVpHbHVaeUIwYUdVZ2JuVnRZbVZ5SUc5bUlHTnZiWEJ2Ym1WdWRITWdKV1FLQUZSdmJ5QnRZVzU1SUZCUFEzTWdKV1FLQUVsdWRtRnNhV1FnZEdsc1pTQnVkVzFpWlhJZ0pXUUtBRWx1ZG1Gc2FXUWdkR2xzWlNCd1lYSjBJR2x1WkdWNElHWnZjaUIwYVd4bElHNTFiV0psY2lBbFpDNGdSMjkwSUNWa0xDQmxlSEJsWTNSbFpDQWxaQW9BUlhKeWIzSWdkMmwwYUNCVFNWb2diV0Z5YTJWeU9pQnVkVzFpWlhJZ2IyWWdZMjl0Y0c5dVpXNTBJR2x6SUdsc2JHVm5ZV3dnTFQ0Z0pXUUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJR1p2Y2lCamFXVnNZV0lLQUVOaGJtNXZkQ0JoYkd4dlkyRjBaU0JqWW14ckxUNWtaV052WkdWa1gyUmhkR0VLQUVaaGFXeGxaQ0IwYnlCdFpYSm5aU0JRVUZRZ1pHRjBZUW9BUm1GcGJHVmtJSFJ2SUcxbGNtZGxJRkJRVFNCa1lYUmhDZ0JKYm5aaGJHbGtJRzUxYldKbGNpQnZaaUJzWVhsbGNuTWdhVzRnUTA5RUlHMWhjbXRsY2lBNklDVmtJRzV2ZENCcGJpQnlZVzVuWlNCYk1TMDJOVFV6TlYwS0FDVnpPaVZrT21OdmJHOXlYMk50ZVd0ZmRHOWZjbWRpQ2dsRFFVNGdUazlVSUVOUFRsWkZVbFFLQUNWek9pVmtPbU52Ykc5eVgyVnplV05qWDNSdlgzSm5ZZ29KUTBGT0lFNVBWQ0JEVDA1V1JWSlVDZ0FsY3pvbFpEcGpiMnh2Y2w5emVXTmpYM1J2WDNKbllnb0pRMEZPSUU1UFZDQkRUMDVXUlZKVUNnQlRkSEpsWVcwZ2RHOXZJSE5vYjNKMExDQmxlSEJsWTNSbFpDQlRUMVFLQUZWdVlXSnNaU0IwYnlCelpYUWdkREVnYUdGdVpHeGxJR0Z6SUZSTVV3b0FVM1J5WldGdElHUnZaWE1nYm05MElHVnVaQ0IzYVhSb0lFVlBRd29BUTJGdWJtOTBJR2hoYm1Sc1pTQmliM2dnYzJsNlpYTWdhR2xuYUdWeUlIUm9ZVzRnTWw0ek1nb0FiM0JxWDNCcFgyNWxlSFJmYkhKamNDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmY214amNDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmWTNCeWJDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmY0dOeWJDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmY25CamJDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNReFgyUmxZMjlrWlY5allteHJLQ2s2SUhWdWMzVndjRzl5ZEdWa0lHSndibTlmY0d4MWMxOXZibVVnUFNBbFpDQStQU0F6TVFvQVJtRnBiR1ZrSUhSdklHUmxZMjlrWlNCMGFXeGxJREV2TVFvQVNXNXpkV1ptYVdOcFpXNTBJR1JoZEdFZ1ptOXlJRU5OUVZBZ1ltOTRMZ29BVG1WbFpDQjBieUJ5WldGa0lHRWdVRU5NVWlCaWIzZ2dZbVZtYjNKbElIUm9aU0JEVFVGUUlHSnZlQzRLQUVsdWMzVm1abWxqYVdWdWRDQmtZWFJoSUdadmNpQkRSRVZHSUdKdmVDNEtBRTUxYldKbGNpQnZaaUJqYUdGdWJtVnNJR1JsYzJOeWFYQjBhVzl1SUdseklHVnhkV0ZzSUhSdklIcGxjbThnYVc0Z1EwUkZSaUJpYjNndUNnQlRkSEpsWVcwZ1pYSnliM0lnZDJocGJHVWdjbVZoWkdsdVp5QktVRElnU0dWaFpHVnlJR0p2ZURvZ2JtOGdKMmxvWkhJbklHSnZlQzRLQUU1dmJpQmpiMjVtYjNKdFlXNTBJR052WkdWemRISmxZVzBnVkZCemIzUTlQVlJPYzI5MExnb0FVM1J5WldGdElHVnljbTl5SUhkb2FXeGxJSEpsWVdScGJtY2dTbEF5SUVobFlXUmxjaUJpYjNnNklHSnZlQ0JzWlc1bmRHZ2dhWE1nYVc1amIyNXphWE4wWlc1MExnb0FRbTk0SUd4bGJtZDBhQ0JwY3lCcGJtTnZibk5wYzNSbGJuUXVDZ0JTWlhOdmJIVjBhVzl1SUdaaFkzUnZjaUJwY3lCbmNtVmhkR1Z5SUhSb1lXNGdkR2hsSUcxaGVHbHRkVzBnY21WemIyeDFkR2x2YmlCcGJpQjBhR1VnWTI5dGNHOXVaVzUwTGdvQVEyOXRjRzl1Wlc1MElHMWhjSEJwYm1jZ2MyVmxiWE1nZDNKdmJtY3VJRlJ5ZVdsdVp5QjBieUJqYjNKeVpXTjBMZ29BU1c1amIyMXdiR1YwWlNCamFHRnVibVZzSUdSbFptbHVhWFJwYjI1ekxnb0FUV0ZzWm05eWJXVmtJRWhVSUdOdlpHVmliRzlqYXk0Z1NXNTJZV3hwWkNCamIyUmxZbXh2WTJzZ2JHVnVaM1JvSUhaaGJIVmxjeTRLQUZkbElHUnZJRzV2ZENCemRYQndiM0owSUcxdmNtVWdkR2hoYmlBeklHTnZaR2x1WnlCd1lYTnpaWE1nYVc0Z1lXNGdTRlFnWTI5a1pXSnNiMk5yT3lCVWFHbHpJR052WkdWaWJHOWphM01nYUdGeklDVmtJSEJoYzNObGN5NEtBRTFoYkdadmNtMWxaQ0JJVkNCamIyUmxZbXh2WTJzdUlFUmxZMjlrYVc1bklIUm9hWE1nWTI5a1pXSnNiMk5ySUdseklITjBiM0J3WldRdUlGUm9aWEpsSUdGeVpTQWxaQ0I2WlhKdklHSnBkSEJzWVc1bGN5QnBiaUFsWkNCaWFYUndiR0Z1WlhNdUNnQkRZVzV1YjNRZ2RHRnJaU0JwYmlCamFHRnlaMlVnYlhWc2RHbHdiR1VnZEhKaGJuTm1iM0p0WVhScGIyNGdjM1JoWjJWekxnb0FWVzVyYm05M2JpQnRZWEpyWlhJZ2FHRnpJR0psWlc0Z1pHVjBaV04wWldRZ1lXNWtJR2RsYm1WeVlYUmxaQ0JsY25KdmNpNEtBRU52WkdWaklIQnliM1pwWkdWa0lIUnZJSFJvWlNCdmNHcGZjMlYwZFhCZlpHVmpiMlJsY2lCbWRXNWpkR2x2YmlCcGN5QnViM1FnWVNCa1pXTnZiWEJ5WlhOemIzSWdhR0Z1Wkd4bGNpNEtBRU52WkdWaklIQnliM1pwWkdWa0lIUnZJSFJvWlNCdmNHcGZjbVZoWkY5b1pXRmtaWElnWm5WdVkzUnBiMjRnYVhNZ2JtOTBJR0VnWkdWamIyMXdjbVZ6YzI5eUlHaGhibVJzWlhJdUNnQlVhV3hsY3lCa2IyNG5kQ0JoYkd3Z2FHRjJaU0IwYUdVZ2MyRnRaU0JrYVcxbGJuTnBiMjR1SUZOcmFYQWdkR2hsSUUxRFZDQnpkR1Z3TGdvQVRuVnRZbVZ5SUc5bUlHTnZiWEJ2Ym1WdWRITWdLQ1ZrS1NCcGN5QnBibU52Ym5OcGMzUmxiblFnZDJsMGFDQmhJRTFEVkM0Z1UydHBjQ0IwYUdVZ1RVTlVJSE4wWlhBdUNnQktVRElnWW05NElIZG9hV05vSUdGeVpTQmhablJsY2lCMGFHVWdZMjlrWlhOMGNtVmhiU0IzYVd4c0lHNXZkQ0JpWlNCeVpXRmtJR0o1SUhSb2FYTWdablZ1WTNScGIyNHVDZ0JOWVd4bWIzSnRaV1FnU0ZRZ1kyOWtaV0pzYjJOckxpQlhhR1Z1SUhSb1pTQnVkVzFpWlhJZ2IyWWdlbVZ5YnlCd2JHRnVaWE1nWW1sMGNHeGhibVZ6SUdseklHVnhkV0ZzSUhSdklIUm9aU0J1ZFcxaVpYSWdiMllnWW1sMGNHeGhibVZ6TENCdmJteDVJSFJvWlNCamJHVmhiblZ3SUhCaGMzTWdiV0ZyWlhNZ2MyVnVjMlVzSUdKMWRDQjNaU0JvWVhabElDVmtJSEJoYzNObGN5QnBiaUIwYUdseklHTnZaR1ZpYkc5amF5NGdWR2hsY21WbWIzSmxMQ0J2Ym14NUlIUm9aU0JqYkdWaGJuVndJSEJoYzNNZ2QybHNiQ0JpWlNCa1pXTnZaR1ZrTGlCVWFHbHpJRzFsYzNOaFoyVWdkMmxzYkNCdWIzUWdZbVVnWkdsemNHeGhlV1ZrSUdGbllXbHVMZ29BU1cxaFoyVWdhR0Z6SUd4bGMzTWdZMjl0Y0c5dVpXNTBjeUIwYUdGdUlHTnZaR1Z6ZEhKbFlXMHVDZ0JPWldWa0lIUnZJR1JsWTI5a1pTQjBhR1VnYldGcGJpQm9aV0ZrWlhJZ1ltVm1iM0psSUdKbFoybHVJSFJ2SUdSbFkyOWtaU0IwYUdVZ2NtVnRZV2x1YVc1bklHTnZaR1Z6ZEhKbFlXMHVDZ0JRYzI5MElIWmhiSFZsSUc5bUlIUm9aU0JqZFhKeVpXNTBJSFJwYkdVdGNHRnlkQ0JwY3lCbGNYVmhiQ0IwYnlCNlpYSnZMQ0IzWlNCaGMzTjFiV2x1WnlCcGRDQnBjeUIwYUdVZ2JHRnpkQ0IwYVd4bExYQmhjblFnYjJZZ2RHaGxJR052WkdWemRISmxZVzB1Q2dCQklHMWhiR1p2Y20xbFpDQmpiMlJsWW14dlkyc2dkR2hoZENCb1lYTWdiVzl5WlNCMGFHRnVJRzl1WlNCamIyUnBibWNnY0dGemN5d2dZblYwSUhwbGNtOGdiR1Z1WjNSb0lHWnZjaUF5Ym1RZ1lXNWtJSEJ2ZEdWdWRHbGhiR3g1SUhSb1pTQXpjbVFnY0dGemN5QnBiaUJoYmlCSVZDQmpiMlJsWW14dlkyc3VDZ0FKQ1FrZ2RHbHNaUzF3WVhKMFd5VmtYVG9nYzNSaGNsOXdiM005Sld4c2FTd2daVzVrWDJobFlXUmxjajBsYkd4cExDQmxibVJmY0c5elBTVnNiR2t1Q2dCVWFXeGxJQ1YxSUdoaGN5QlVVSE52ZENBOVBTQXdJR0Z1WkNCVVRuTnZkQ0E5UFNBd0xDQmlkWFFnYm04Z2IzUm9aWElnZEdsc1pTMXdZWEowY3lCM1pYSmxJR1p2ZFc1a0xpQkZUME1nYVhNZ1lXeHpieUJ0YVhOemFXNW5MZ29BUTI5dGNHOXVaVzUwSUNWa0lHUnZaWE51SjNRZ2FHRjJaU0JoSUcxaGNIQnBibWN1Q2dCQklHTnZibVp2Y20xcGJtY2dTbEF5SUhKbFlXUmxjaUJ6YUdGc2JDQnBaMjV2Y21VZ1lXeHNJRU52Ykc5MWNpQlRjR1ZqYVdacFkyRjBhVzl1SUdKdmVHVnpJR0ZtZEdWeUlIUm9aU0JtYVhKemRDd2djMjhnZDJVZ2FXZHViM0psSUhSb2FYTWdiMjVsTGdvQVZHaGxJSE5wWjI1aGRIVnlaU0JpYjNnZ2JYVnpkQ0JpWlNCMGFHVWdabWx5YzNRZ1ltOTRJR2x1SUhSb1pTQm1hV3hsTGdvQVZHaGxJQ0JpYjNnZ2JYVnpkQ0JpWlNCMGFHVWdabWx5YzNRZ1ltOTRJR2x1SUhSb1pTQm1hV3hsTGdvQVZHaGxJR1owZVhBZ1ltOTRJRzExYzNRZ1ltVWdkR2hsSUhObFkyOXVaQ0JpYjNnZ2FXNGdkR2hsSUdacGJHVXVDZ0JHWVdsc1pXUWdkRzhnWkdWamIyUmxMZ29BVFdGc1ptOXliV1ZrSUVoVUlHTnZaR1ZpYkc5amF5NGdTVzVqYjNKeVpXTjBJRTFGVENCelpXZHRaVzUwSUhObGNYVmxibU5sTGdvQVEyOXRjRzl1Wlc1MElDVmtJR2x6SUcxaGNIQmxaQ0IwZDJsalpTNEtBRTl1YkhrZ2IyNWxJRU5OUVZBZ1ltOTRJR2x6SUdGc2JHOTNaV1F1Q2dCWFpTQnVaV1ZrSUdGdUlHbHRZV2RsSUhCeVpYWnBiM1Z6YkhrZ1kzSmxZWFJsWkM0S0FFbElSRklnWW05NFgyMXBjM05wYm1jdUlGSmxjWFZwY21Wa0xnb0FTbEF5U0NCaWIzZ2diV2x6YzJsdVp5NGdVbVZ4ZFdseVpXUXVDZ0JPYjNRZ2MzVnlaU0JvYjNjZ2RHaGhkQ0JvWVhCd1pXNWxaQzRLQUUxaGFXNGdhR1ZoWkdWeUlHaGhjeUJpWldWdUlHTnZjbkpsWTNSc2VTQmtaV052WkdWa0xnb0FWR2xzWlNBbFpDOGxaQ0JvWVhNZ1ltVmxiaUJrWldOdlpHVmtMZ29BU0dWaFpHVnlJRzltSUhScGJHVWdKV1FnTHlBbFpDQm9ZWE1nWW1WbGJpQnlaV0ZrTGdvQVJXMXdkSGtnVTA5VUlHMWhjbXRsY2lCa1pYUmxZM1JsWkRvZ1VITnZkRDBsWkM0S0FFUnBjbVZqZENCMWMyVWdZWFFnSXlWa0lHaHZkMlYyWlhJZ2NHTnZiRDBsWkM0S0FFbHRjR3hsYldWdWRHRjBhVzl1SUd4cGJXbDBZWFJwYjI0NklHWnZjaUJ3WVd4bGRIUmxJRzFoY0hCcGJtY3NJSEJqYjJ4YkpXUmRJSE5vYjNWc1pDQmlaU0JsY1hWaGJDQjBieUFsWkN3Z1luVjBJR2x6SUdWeGRXRnNJSFJ2SUNWa0xnb0FTVzUyWVd4cFpDQmpiMjF3YjI1bGJuUXZjR0ZzWlhSMFpTQnBibVJsZUNCbWIzSWdaR2x5WldOMElHMWhjSEJwYm1jZ0pXUXVDZ0JKYm5aaGJHbGtJSFpoYkhWbElHWnZjaUJqYldGd1d5VmtYUzV0ZEhsd0lEMGdKV1F1Q2dCUWMyOTBJSFpoYkhWbElHbHpJRzV2ZENCamIzSnlaV04wSUhKbFoyRnlaSE1nZEc4Z2RHaGxJRXBRUlVjeU1EQXdJRzV2Y20wNklDVmtMZ29BVFdGc1ptOXliV1ZrSUVoVUlHTnZaR1ZpYkc5amF5NGdWa3hESUdOdlpHVWdjSEp2WkhWalpYTWdjMmxuYm1sbWFXTmhiblFnYzJGdGNHeGxjeUJ2ZFhSemFXUmxJSFJvWlNCamIyUmxZbXh2WTJzZ1lYSmxZUzRLQUZWdVpYaHdaV04wWldRZ1QwOU5MZ29BTXpJZ1ltbDBjeUJoY21VZ2JtOTBJR1Z1YjNWbmFDQjBieUJrWldOdlpHVWdkR2hwY3lCamIyUmxZbXh2WTJzc0lITnBibU5sSUhSb1pTQnVkVzFpWlhJZ2IyWWdZbWwwY0d4aGJtVXNJQ1ZrTENCcGN5QnNZWEpuWlhJZ2RHaGhiaUF6TUM0S0FFSnZkSFJ2YlNCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVURTlKV1FwSUhOb2IzVnNaQ0JpWlNBK0lEQXVDZ0JTYVdkb2RDQndiM05wZEdsdmJpQnZaaUIwYUdVZ1pHVmpiMlJsWkNCaGNtVmhJQ2h5WldkcGIyNWZlREU5SldRcElITm9iM1ZzWkNCaVpTQStJREF1Q2dCVmNDQndiM05wZEdsdmJpQnZaaUIwYUdVZ1pHVmpiMlJsWkNCaGNtVmhJQ2h5WldkcGIyNWZlVEE5SldRcElITm9iM1ZzWkNCaVpTQStQU0F3TGdvQVRHVm1kQ0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUNoeVpXZHBiMjVmZURBOUpXUXBJSE5vYjNWc1pDQmlaU0ErUFNBd0xnb0FSWEp5YjNJZ2NtVmhaR2x1WnlCUVVGUWdiV0Z5YTJWeU9pQndZV05yWlhRZ2FHVmhaR1Z5SUdoaGRtVWdZbVZsYmlCd2NtVjJhVzkxYzJ4NUlHWnZkVzVrSUdsdUlIUm9aU0J0WVdsdUlHaGxZV1JsY2lBb1VGQk5JRzFoY210bGNpa3VDZ0JUZEdGeWRDQjBieUJ5WldGa0lHb3lheUJ0WVdsdUlHaGxZV1JsY2lBb0pXeHNaQ2t1Q2dCQ2IzUjBiMjBnY0c5emFYUnBiMjRnYjJZZ2RHaGxJR1JsWTI5a1pXUWdZWEpsWVNBb2NtVm5hVzl1WDNreFBTVmtLU0JwY3lCdmRYUnphV1JsSUhSb1pTQnBiV0ZuWlNCaGNtVmhJQ2haYzJsNlBTVmtLUzRLQUZWd0lIQnZjMmwwYVc5dUlHOW1JSFJvWlNCa1pXTnZaR1ZrSUdGeVpXRWdLSEpsWjJsdmJsOTVNRDBsWkNrZ2FYTWdiM1YwYzJsa1pTQjBhR1VnYVcxaFoyVWdZWEpsWVNBb1dYTnBlajBsWkNrdUNnQlNhV2RvZENCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVERTlKV1FwSUdseklHOTFkSE5wWkdVZ2RHaGxJR2x0WVdkbElHRnlaV0VnS0ZoemFYbzlKV1FwTGdvQVRHVm1kQ0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUNoeVpXZHBiMjVmZURBOUpXUXBJR2x6SUc5MWRITnBaR1VnZEdobElHbHRZV2RsSUdGeVpXRWdLRmh6YVhvOUpXUXBMZ29BUW05MGRHOXRJSEJ2YzJsMGFXOXVJRzltSUhSb1pTQmtaV052WkdWa0lHRnlaV0VnS0hKbFoybHZibDk1TVQwbFpDa2dhWE1nYjNWMGMybGtaU0IwYUdVZ2FXMWhaMlVnWVhKbFlTQW9XVTl6YVhvOUpXUXBMZ29BVlhBZ2NHOXphWFJwYjI0Z2IyWWdkR2hsSUdSbFkyOWtaV1FnWVhKbFlTQW9jbVZuYVc5dVgza3dQU1ZrS1NCcGN5QnZkWFJ6YVdSbElIUm9aU0JwYldGblpTQmhjbVZoSUNoWlQzTnBlajBsWkNrdUNnQlNhV2RvZENCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVERTlKV1FwSUdseklHOTFkSE5wWkdVZ2RHaGxJR2x0WVdkbElHRnlaV0VnS0ZoUGMybDZQU1ZrS1M0S0FFeGxablFnY0c5emFYUnBiMjRnYjJZZ2RHaGxJR1JsWTI5a1pXUWdZWEpsWVNBb2NtVm5hVzl1WDNnd1BTVmtLU0JwY3lCdmRYUnphV1JsSUhSb1pTQnBiV0ZuWlNCaGNtVmhJQ2hZVDNOcGVqMGxaQ2t1Q2dCVGFYcGxJSGdnYjJZZ2RHaGxJR1JsWTI5a1pXUWdZMjl0Y0c5dVpXNTBJR2x0WVdkbElHbHpJR2x1WTI5eWNtVmpkQ0FvWTI5dGNGc2xaRjB1ZHowbFpDa3VDZ0JUYVhwbElIa2diMllnZEdobElHUmxZMjlrWldRZ1kyOXRjRzl1Wlc1MElHbHRZV2RsSUdseklHbHVZMjl5Y21WamRDQW9ZMjl0Y0ZzbFpGMHVhRDBsWkNrdUNnQlVhV3hsSUhKbFlXUXNJR1JsWTI5a1pXUWdZVzVrSUhWd1pHRjBaV1FnYVhNZ2JtOTBJSFJvWlNCa1pYTnBjbVZrSUc5dVpTQW9KV1FnZG5NZ0pXUXBMZ29BU1c1MllXeHBaQ0JqYjIxd2IyNWxiblFnYVc1a1pYZ2dKV1FnS0Q0OUlDVmtLUzRLQUc5d2FsOXlaV0ZrWDJobFlXUmxjaWdwSUhOb2IzVnNaQ0JpWlNCallXeHNaV1FnWW1WbWIzSmxJRzl3YWw5elpYUmZaR1ZqYjJSbFpGOWpiMjF3YjI1bGJuUnpLQ2t1Q2dCTlpXMXZjbmtnWVd4c2IyTmhkR2x2YmlCbVlXbHNkWEpsSUdsdUlHOXdhbDlxY0RKZllYQndiSGxmY0dOc2NpZ3BMZ29BYVcxaFoyVXRQbU52YlhCeld5VmtYUzVrWVhSaElEMDlJRTVWVEV3Z2FXNGdiM0JxWDJwd01sOWhjSEJzZVY5d1kyeHlLQ2t1Q2dCcGJuWmhiR2xrSUdKdmVDQnphWHBsSUNWa0lDZ2xlQ2tLQUVaaGFXd2dkRzhnY21WaFpDQjBhR1VnWTNWeWNtVnVkQ0J0WVhKclpYSWdjMlZuYldWdWRDQW9KU040S1FvQVJYSnliM0lnZDJsMGFDQlRTVm9nYldGeWEyVnlPaUJKU0VSU0lIY29KWFVwSUdnb0pYVXBJSFp6TGlCVFNWb2dkeWdsZFNrZ2FDZ2xkU2tLQUVWeWNtOXlJSEpsWVdScGJtY2dRMDlESUcxaGNtdGxjaUFvWW1Ga0lHNTFiV0psY2lCdlppQmpiMjF3YjI1bGJuUnpLUW9BU1c1MllXeHBaQ0J1ZFcxaVpYSWdiMllnZEdsc1pYTWdPaUFsZFNCNElDVjFJQ2h0WVhocGJYVnRJR1pwZUdWa0lHSjVJR3B3WldjeU1EQXdJRzV2Y20wZ2FYTWdOalUxTXpVZ2RHbHNaWE1wQ2dCSmJuWmhiR2xrSUc1MWJXSmxjaUJ2WmlCamIyMXdiMjVsYm5SeklDaHBhR1J5S1FvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdhR0Z1Wkd4bElHbHRZV2RsSUdobFlXUmxjaUFvYVdoa2Npa0tBRmR5YjI1bklIWmhiSFZsY3lCbWIzSTZJSGNvSldRcElHZ29KV1FwSUc1MWJXTnZiWEJ6S0NWa0tTQW9hV2hrY2lrS0FFbHVkbUZzYVdRZ2RtRnNkV1Z6SUdadmNpQmpiMjF3SUQwZ0pXUWdPaUJrZUQwbGRTQmtlVDBsZFNBb2MyaHZkV3hrSUdKbElHSmxkSGRsWlc0Z01TQmhibVFnTWpVMUlHRmpZMjl5WkdsdVp5QjBieUIwYUdVZ1NsQkZSekl3TURBZ2JtOXliU2tLQUVKaFpDQnBiV0ZuWlNCb1pXRmtaWElnWW05NElDaGlZV1FnYzJsNlpTa0tBRUpoWkNCRFQweFNJR2hsWVdSbGNpQmliM2dnS0dKaFpDQnphWHBsS1FvQVFtRmtJRUpRUTBNZ2FHVmhaR1Z5SUdKdmVDQW9ZbUZrSUhOcGVtVXBDZ0JGY25KdmNpQjNhWFJvSUZOSldpQnRZWEpyWlhJNklHNWxaMkYwYVhabElHOXlJSHBsY204Z2FXMWhaMlVnYzJsNlpTQW9KV3hzWkNCNElDVnNiR1FwQ2dCemEybHdPaUJ6WldkdFpXNTBJSFJ2YnlCc2IyNW5JQ2dsWkNrZ2QybDBhQ0J0WVhnZ0tDVmtLU0JtYjNJZ1kyOWtaV0pzYjJOcklDVmtJQ2h3UFNWa0xDQmlQU1ZrTENCeVBTVmtMQ0JqUFNWa0tRb0FjbVZoWkRvZ2MyVm5iV1Z1ZENCMGIyOGdiRzl1WnlBb0pXUXBJSGRwZEdnZ2JXRjRJQ2dsWkNrZ1ptOXlJR052WkdWaWJHOWpheUFsWkNBb2NEMGxaQ3dnWWowbFpDd2djajBsWkN3Z1l6MGxaQ2tLQUVSbGMzQnBkR1VnU2xBeUlFSlFReUU5TWpVMUxDQndjbVZqYVhOcGIyNGdZVzVrTDI5eUlITm5ibVFnZG1Gc2RXVnpJR1p2Y2lCamIyMXdXeVZrWFNCcGN5QmthV1ptWlhKbGJuUWdkR2hoYmlCamIyMXdXekJkT2dvZ0lDQWdJQ0FnSUZzd1hTQndjbVZqS0NWa0tTQnpaMjVrS0NWa0tTQmJKV1JkSUhCeVpXTW9KV1FwSUhObmJtUW9KV1FwQ2dCaVlXUWdZMjl0Y0c5dVpXNTBJRzUxYldKbGNpQnBiaUJTUjA0Z0tDVmtJSGRvWlc0Z2RHaGxjbVVnWVhKbElHOXViSGtnSldRcENnQkZjbkp2Y2lCM2FYUm9JRk5KV2lCdFlYSnJaWEk2SUc1MWJXSmxjaUJ2WmlCamIyMXdiMjVsYm5RZ2FYTWdibTkwSUdOdmJYQmhkR2xpYkdVZ2QybDBhQ0IwYUdVZ2NtVnRZV2x1YVc1bklHNTFiV0psY2lCdlppQndZWEpoYldWMFpYSnpJQ2dnSldRZ2RuTWdKV1FwQ2dCRmNuSnZjaUIzYVhSb0lGTkpXaUJ0WVhKclpYSTZJR2x1ZG1Gc2FXUWdkR2xzWlNCemFYcGxJQ2gwWkhnNklDVmtMQ0IwWkhrNklDVmtLUW9BUW1Ga0lFTlBURklnYUdWaFpHVnlJR0p2ZUNBb1ltRmtJSE5wZW1VNklDVmtLUW9BUW1Ga0lFTlBURklnYUdWaFpHVnlJR0p2ZUNBb1EwbEZUR0ZpTENCaVlXUWdjMmw2WlRvZ0pXUXBDZ0JRVkVWU1RTQmphR1ZqYXlCbVlXbHNkWEpsT2lBbFpDQnlaVzFoYVc1cGJtY2dZbmwwWlhNZ2FXNGdZMjlrWlNCaWJHOWpheUFvSldRZ2RYTmxaQ0F2SUNWa0tRb0FUV0ZzWm05eWJXVmtJRWhVSUdOdlpHVmliRzlqYXk0Z1QyNWxJRzltSUhSb1pTQm1iMnhzYjNkcGJtY2dZMjl1WkdsMGFXOXVJR2x6SUc1dmRDQnRaWFE2SURJZ1BEMGdVMk4xY0NBOFBTQnRhVzRvVEdOMWNDd2dOREEzT1NrS0FFbHVkbUZzYVdRZ2RtRnNkV1Z6SUdadmNpQmpiMjF3SUQwZ0pXUWdPaUJ3Y21WalBTVjFJQ2h6YUc5MWJHUWdZbVVnWW1WMGQyVmxiaUF4SUdGdVpDQXpPQ0JoWTJOdmNtUnBibWNnZEc4Z2RHaGxJRXBRUlVjeU1EQXdJRzV2Y20wdUlFOXdaVzVLY0dWbklHOXViSGtnYzNWd2NHOXlkSE1nZFhBZ2RHOGdNekVwQ2dCSmJuWmhiR2xrSUdKcGRDQnVkVzFpWlhJZ0pXUWdhVzRnYjNCcVgzUXlYM0psWVdSZmNHRmphMlYwWDJobFlXUmxjaWdwQ2dCVGRISmxZVzBnWlhKeWIzSWhDZ0JGY25KdmNpQnZiaUIzY21sMGFXNW5JSE4wY21WaGJTRUtBRk4wY21WaGJTQnlaV0ZqYUdWa0lHbDBjeUJsYm1RZ0lRb0FSWGh3WldOMFpXUWdZU0JUVDBNZ2JXRnlhMlZ5SUFvQVNXNTJZV3hwWkNCaWIzZ2djMmw2WlNBbFpDQm1iM0lnWW05NElDY2xZeVZqSldNbFl5Y3VJRTVsWldRZ0pXUWdZbmwwWlhNc0lDVmtJR0o1ZEdWeklISmxiV0ZwYm1sdVp5QUtBRTFoYkdadmNtMWxaQ0JJVkNCamIyUmxZbXh2WTJzdUlFUmxZMjlrYVc1bklIUm9hWE1nWTI5a1pXSnNiMk5ySUdseklITjBiM0J3WldRdUlGVmZjU0JwY3lCc1lYSm5aWElnZEdoaGJpQjZaWEp2SUdKcGRIQnNZVzVsY3lBcklERWdDZ0JOWVd4bWIzSnRaV1FnU0ZRZ1kyOWtaV0pzYjJOckxpQkVaV052WkdsdVp5QjBhR2x6SUdOdlpHVmliRzlqYXlCcGN5QnpkRzl3Y0dWa0xpQlZYM0VnYVhOc1lYSm5aWElnZEdoaGJpQmlhWFJ3YkdGdVpYTWdLeUF4SUFvQVEwOU1VaUJDVDFnZ2JXVjBhQ0IyWVd4MVpTQnBjeUJ1YjNRZ1lTQnlaV2QxYkdGeUlIWmhiSFZsSUNnbFpDa3NJSE52SUhkbElIZHBiR3dnYVdkdWIzSmxJSFJvWlNCbGJuUnBjbVVnUTI5c2IzVnlJRk53WldOcFptbGpZWFJwYjI0Z1ltOTRMaUFLQUZkb2FXeGxJSEpsWVdScGJtY2dRME5RWDFGT1ZGTlVXU0JsYkdWdFpXNTBJR2x1YzJsa1pTQlJRMFFnYjNJZ1VVTkRJRzFoY210bGNpQnpaV2R0Wlc1MExDQnVkVzFpWlhJZ2IyWWdjM1ZpWW1GdVpITWdLQ1ZrS1NCcGN5Qm5jbVZoZEdWeUlIUnZJRTlRU2w5S01rdGZUVUZZUWtGT1JGTWdLQ1ZrS1M0Z1UyOGdkMlVnYkdsdGFYUWdkR2hsSUc1MWJXSmxjaUJ2WmlCbGJHVnRaVzUwY3lCemRHOXlaV1FnZEc4Z1QxQktYMG95UzE5TlFWaENRVTVFVXlBb0pXUXBJR0Z1WkNCemEybHdJSFJvWlNCeVpYTjBMaUFLQUVwUU1pQkpTRVJTSUdKdmVEb2dZMjl0Y0hKbGMzTnBiMjRnZEhsd1pTQnBibVJwWTJGMFpTQjBhR0YwSUhSb1pTQm1hV3hsSUdseklHNXZkQ0JoSUdOdmJtWnZjbTFwYm1jZ1NsQXlJR1pwYkdVZ0tDVmtLU0FLQUZScGJHVWdhVzVrWlhnZ2NISnZkbWxrWldRZ1lua2dkR2hsSUhWelpYSWdhWE1nYVc1amIzSnlaV04wSUNWa0lDaHRZWGdnUFNBbFpDa2dDZ0JGY25KdmNpQmtaV052WkdsdVp5QmpiMjF3YjI1bGJuUWdKV1F1Q2xSb1pTQnVkVzFpWlhJZ2IyWWdjbVZ6YjJ4MWRHbHZibk1nZEc4Z2NtVnRiM1psSUNnbFpDa2dhWE1nWjNKbFlYUmxjaUJ2Y2lCbGNYVmhiQ0IwYUdGdUlIUm9aU0J1ZFcxaVpYSWdiMllnY21WemIyeDFkR2x2Ym5NZ2IyWWdkR2hwY3lCamIyMXdiMjVsYm5RZ0tDVmtLUXBOYjJScFpua2dkR2hsSUdOd1gzSmxaSFZqWlNCd1lYSmhiV1YwWlhJdUNnb0FTVzFoWjJVZ1pHRjBZU0JvWVhNZ1ltVmxiaUIxY0dSaGRHVmtJSGRwZEdnZ2RHbHNaU0FsWkM0S0NnQkJvUDBBQzRBZ0l3Q2xBRU1BWmdDREFPNm9GQURmMkNNQXZoQkRBUC8xZ3dCK0lGVUFYMUVqQURVQVF3Qk9SSU1BenNRVUFNL01Jd0QrNGtNQS81bURBSllBeFFBL01TTUFwUUJEQUY1RWd3RE95QlFBM3hFakFQNzBRd0QvL0lNQW5nQlZBSGNBSXdBMUFFTUEvL0dEQUs2SUZBQzNBQ01BL3ZoREFPL2tnd0NPaU1VQUh4RWpBS1VBUXdCbUFJTUE3cWdVQU45VUl3QytFRU1BN3lLREFINGdWUUIvSWlNQU5RQkRBRTVFZ3dET3hCUUF2eEVqQVA3aVF3RDNBSU1BbGdERkFEOGlJd0NsQUVNQVhrU0RBTTdJRkFEWEFDTUEvdlJEQVArNmd3Q2VBRlVBYndBakFEVUFRd0QvNW9NQXJvZ1VBSytpSXdEKytFTUE1d0NEQUk2SXhRQXZJZ0lBeFFDRUFINGdBZ0RPeENRQTl3QUNBUDZpUkFCV0FBSUFuZ0FVQU5jQUFnQytFSVFBWmdBQ0FLNklKQURmRVFJQTdxaEVBRFlBQWdDT2lCUUFIeEVDQU1VQWhBQnVBQUlBem9na0FQK0lBZ0QrdUVRQVRrUUNBSllBRkFDM0FBSUEvdVNFQUY1RUFnQ21BQ1FBNXdBQ0FONVVSQUF1SWdJQVBnQVVBSGNBQWdERkFJUUFmaUFDQU03RUpBRC84UUlBL3FKRUFGWUFBZ0NlQUJRQXZ4RUNBTDRRaEFCbUFBSUFyb2drQU84aUFnRHVxRVFBTmdBQ0FJNklGQUIvSWdJQXhRQ0VBRzRBQWdET2lDUUE3K1FDQVA2NFJBQk9SQUlBbGdBVUFLK2lBZ0QrNUlRQVhrUUNBS1lBSkFEZjJBSUEzbFJFQUM0aUFnQStBQlFBWDFFQ0FGVUFoQUJtQUFJQTNvZ2tBUDh5QWdEK0VVUUFUa1FDQUs0QUZBQzNBQUlBZmpHRUFGNVJBZ0RHQUNRQTF3QUNBTzRnUkFBZUVRSUFuZ0FVQUhjQUFnQlZBSVFBWGxRQ0FNNUVKQURuQUFJQS92RkVBRFlBQWdDbUFCUUFYMVVDQVA1MGhBQStFUUlBdmlBa0FIOTBBZ0RleEVRQS8vZ0NBSllBRkFBdklnSUFWUUNFQUdZQUFnRGVpQ1FBOXdBQ0FQNFJSQUJPUkFJQXJnQVVBSStJQWdCK01ZUUFYbEVDQU1ZQUpBRFB5QUlBN2lCRUFCNFJBZ0NlQUJRQWJ3QUNBRlVBaEFCZVZBSUF6a1FrQU4vUkFnRCs4VVFBTmdBQ0FLWUFGQUIvSWdJQS9uU0VBRDRSQWdDK0lDUUF2eUlDQU43RVJBRHZJZ0lBbGdBVUFEOHlBd0RlMVAzMC8vd1VBRDRSVlFDUGlBTUF2aktGQU9jQUpRQmVVZjZxZjNJREFNNUUvZmp2UkJRQWZtUkZBSytpQXdDbUFGMVYzNW45OFRZQS92VnZZZ01BM3RIOTlQL21GQUIrY1ZVQXY3RURBSzZJaFFEZjFTVUFUa1QrOG45bUF3REdBUDM0NytJVUFGNVVSUUNmRVFNQWxnQmRWYy9JL2ZFZUVlN0lad0FEQU43VS9mVC84eFFBUGhGVkFMOFJBd0MrTW9VQTM5Z2xBRjVSL3FvdklnTUF6a1Q5K1BjQUZBQitaRVVBbjVnREFLWUFYVlhYQVAzeE5nRCs5VzlFQXdEZTBmMzAvN2tVQUg1eFZRQzNBQU1Bcm9pRkFOL2NKUUJPUlA3eWR3QURBTVlBL2ZqdjVCUUFYbFJGQUg5ekF3Q1dBRjFWdjdqOThSNFI3c2cvTWdJQXBRQ0VBSDVBQWdEZUVDUUEzeEVDQVA1eVJBQldBQUlBcnFnVUFMK3lBZ0NXQUlRQVpnQUNBTVlBSkFEbkFBSUE3c2hFQUM0aUFnQ09pQlFBZHdBQ0FLVUFoQUJ1QUFJQXpvZ2tBUGNBQWdEK2tVUUFOZ0FDQUs2aUZBQ3ZxZ0lBL3JpRUFGNEFBZ0MrQUNRQXo4UUNBTzVFUkFELzlBSUFQaUlVQUI4UkFnQ2xBSVFBZmtBQ0FONFFKQUQvbVFJQS9uSkVBRllBQWdDdXFCUUF0d0FDQUpZQWhBQm1BQUlBeGdBa0FOY0FBZ0R1eUVRQUxpSUNBSTZJRkFCUFJBSUFwUUNFQUc0QUFnRE9pQ1FBNytJQ0FQNlJSQUEyQUFJQXJxSVVBSDlFQWdEK3VJUUFYZ0FDQUw0QUpBQ2ZBQUlBN2tSRUFQOTJBZ0ErSWhRQVB6RURBTVlBaFFELzJmM3lmbVQrOGIrWkF3Q3VvaVVBNzJiOTlGWUE3dUovY3dNQXZwaEZBUGNBL2ZobUFQNTJuNGdEQUk2SUZRRGYxYVVBTGlMZW1FOUVBd0Mrc29VQS8vejk4bTRpbGdDM0FBTUFycW9sQU4vUi9mUTJBTjdVYjJRREFLNm9SUUR2NnYzNFhrVHU2SDl4QXdBK01oVUF6OFNsQVAvNnpvZy9NUU1BeGdDRkFQOTMvZkorWlA3eHY3TURBSzZpSlFEbkFQMzBWZ0R1NG5jQUF3QyttRVVBNytUOStHWUEvblovWmdNQWpvZ1ZBTmNBcFFBdUl0NllQek1EQUw2eWhRRC9kZjN5YmlLV0FKK1JBd0N1cWlVQTM1bjk5RFlBM3RSZlVRTUFycWhGQU8vcy9maGVSTzdvZjNJREFENHlGUUMvc2FVQS8vUE9pQjhSQXdEZVZQM3lIaEVVQUg1ay92alB6QU1BdnBGRkFPOGlKUUF1SXY3emo0Z0RBTVlBaFFEM0FCUUFYaEgrL0srb0F3Q21BRFVBMzhqOThUNHgvbVp2WkFNQXpzajk4di8xRkFCbUFQNzB2N29EQUs0aVJRRG5BQ1VBUGpMKzZuOXpBd0Mrc29VQTMxVVVBRllBZm5HZkVRTUFsZ0ExQU0vRS9mRStNKzdvVDBRREFONVUvZkllRVJRQWZtVCsrTCtaQXdDK2tVVUE3K0lsQUM0aS92Ti9aZ01BeGdDRkFPL2tGQUJlRWY3OG41Z0RBS1lBTlFEWEFQM3hQakgrWm04aUF3RE95UDN5LzdrVUFHWUEvdlMzQUFNQXJpSkZBTi9SSlFBK012N3Fkd0FEQUw2eWhRRHY3QlFBVmdCK2NYOXlBd0NXQURVQXY3ajk4VDR6N3VoZlZQengzdEg5K3RjQS9QZ1dBUDMvZjNUODlINXgvZk8vcy96eTcrcnU2RTlFL1BHdUlnVUF2N2o4K1BjQS92eDNBUHowWGhIOTlYOTEvUExmMk83aVB6UDg4YjZ5L2ZyUGlQejQvL3Y5LzM5ei9QUnVBUDN6dHdEODh1OW0vdmsvTWZ6eG5nQUZBTCs2L1BqLy9mNzJad0Q4OUNZQS9mV1BpUHp5Mzl6ZTFDOGkvUEhlMGYzNno4VDgrQllBL2Y5L2N2ejBmbkg5ODcrWi9QTHY3TzdvUndEODhhNGlCUUNuQVB6NC8vZisvRmNBL1BSZUVmMzFsd0Q4OHQvVjd1STNBUHp4dnJMOStzY0EvUGovL3YzL2YyYjg5RzRBL2ZPdnFQenk1d0QrK1Q4eS9QR2VBQVVBdjdIOCtPL2svdlpmVlB6MEpnRDk5WWNBL1BMZm1kN1VIeEVUQUdVQVF3RGVBSU1BallnakFFNUVFd0NsQUVNQXJvaURBRFVBSXdEWEFCTUF4UUJEQUo0QWd3QlZBQ01BTGlJVEFKVUFRd0IrQUlNQS9oQWpBSGNBRXdCbEFFTUF6b2lEQUkySUl3QWVFUk1BcFFCREFGNEFnd0ExQUNNQTV3QVRBTVVBUXdDK0FJTUFWUUFqQVA4UkV3Q1ZBRU1BUGdDREFPNUFJd0N2b2hNQVpRQkRBTjRBZ3dDTmlDTUFUa1FUQUtVQVF3Q3VpSU1BTlFBakFPOUVFd0RGQUVNQW5nQ0RBRlVBSXdBdUloTUFsUUJEQUg0QWd3RCtFQ01BdHdBVEFHVUFRd0RPaUlNQWpZZ2pBQjRSRXdDbEFFTUFYZ0NEQURVQUl3RFB4Qk1BeFFCREFMNEFnd0JWQUNNQTl3QVRBSlVBUXdBK0FJTUE3a0FqQUc4QUFRQ0VBQUVBVmdBQkFCUUFBUURYQUFFQUpBQUJBSllBQVFCRkFBRUFkd0FCQUlRQUFRREdBQUVBRkFBQkFJK0lBUUFrQUFFQTl3QUJBRFVBQVFBdklnRUFoQUFCQVA1QUFRQVVBQUVBdHdBQkFDUUFBUUMvQUFFQVJRQUJBR2NBQVFDRUFBRUFwZ0FCQUJRQUFRQlBSQUVBSkFBQkFPY0FBUUExQUFFQVB4RUJBSVFBQVFCV0FBRUFGQUFCQU04QUFRQWtBQUVBbGdBQkFFVUFBUUJ2QUFFQWhBQUJBTVlBQVFBVUFBRUFud0FCQUNRQUFRRHZBQUVBTlFBQkFEOHlBUUNFQUFFQS9rQUJBQlFBQVFDdkFBRUFKQUFCQVA5RUFRQkZBQUVBWHdBQkFJUUFBUUNtQUFFQUZBQUJBSDhBQVFBa0FBRUEzd0FCQURVQUFRQWZFUUVBSkFBQkFGWUFBUUNGQUFFQXZ3QUJBQlFBQVFEM0FBRUF4Z0FCQUhjQUFRQWtBQUVBLy9nQkFFVUFBUUIvQUFFQUZBQUJBTjhBQVFDbUFBRUFQekVCQUNRQUFRQXVJZ0VBaFFBQkFMY0FBUUFVQUFFQTcwUUJBSzZpQVFCbkFBRUFKQUFCQVA5UkFRQkZBQUVBbHdBQkFCUUFBUURQQUFFQU5nQUJBRDhpQVFBa0FBRUFWZ0FCQUlVQUFRQy9zZ0VBRkFBQkFPOUFBUURHQUFFQWJ3QUJBQ1FBQVFEL2NnRUFSUUFCQUo4QUFRQVVBQUVBMXdBQkFLWUFBUUJQUkFFQUpBQUJBQzRpQVFDRkFBRUFyNmdCQUJRQUFRRG5BQUVBcnFJQkFGOEFBUUFrQUFFQS8wUUJBRVVBQVFDUGlBRUFGQUFCQUsrcUFRQTJBQUVBSHhFQ0FQNzRKQUJXQUFJQXRnQ0ZBUDltQWdET0FCUUFIaEVDQUpZQU5RQ3ZxQUlBOWdBa0FENHhBZ0NtQUVVQXY3TUNBTDZ5RkFELzlRSUFaZ0IrVVY5VUFnRCs4aVFBTGlJQ0FLNGloUUR2UkFJQXhnQVVBUC8wQWdCMkFEVUFmMFFDQU41QUpBQStNZ0lBbmdCRkFOY0FBZ0MraUJRQS8vb0NBRjRSL3ZGUFJBSUEvdmdrQUZZQUFnQzJBSVVBNzhnQ0FNNEFGQUFlRVFJQWxnQTFBSStJQWdEMkFDUUFQakVDQUtZQVJRRGZSQUlBdnJJVUFQK29BZ0JtQUg1UmJ3QUNBUDd5SkFBdUlnSUFyaUtGQU9jQUFnREdBQlFBNytJQ0FIWUFOUUIvY2dJQTNrQWtBRDR5QWdDZUFFVUF2N0VDQUw2SUZBRC9jd0lBWGhIKzhUOHpBUUNFQUFFQTdpQUJBTVVBQVFEUHhBRUFSQUFCQVA4eUFRQVZBQUVBajRnQkFJUUFBUUJtQUFFQUpRQUJBSzhBQVFCRUFBRUE3eUlCQUtZQUFRQmZBQUVBaEFBQkFFNUVBUURGQUFFQXo4d0JBRVFBQVFEM0FBRUFGUUFCQUc4QUFRQ0VBQUVBVmdBQkFDVUFBUUNmQUFFQVJBQUJBTjhBQVFEK01BRUFMeUlCQUlRQUFRRHVJQUVBeFFBQkFNL0lBUUJFQUFFQS94RUJBQlVBQVFCM0FBRUFoQUFCQUdZQUFRQWxBQUVBZndBQkFFUUFBUURuQUFFQXBnQUJBRGNBQVFDRUFBRUFUa1FCQU1VQUFRQzNBQUVBUkFBQkFMOEFBUUFWQUFFQVB3QUJBSVFBQVFCV0FBRUFKUUFCQUpjQUFRQkVBQUVBMXdBQkFQNHdBUUFmRVFJQTdxaEVBSTZJQWdEV0FNVUEvL01DQVA3OEpRQStBQUlBdGdCVkFOL1lBZ0QrK0VRQVpnQUNBSDRnaFFEL21RSUE1Z0QxQURZQUFnQ21BQlVBbndBQ0FQN3lSQUIyQUFJQXprVEZBUDkyQWdEKzhTVUFUa1FDQUs0QVZRRFB5QUlBL3ZSRUFGNUVBZ0MrRUlVQTcrUUNBTjVVOVFBZUVRSUFsZ0FWQUM4aUFnRHVxRVFBam9nQ0FOWUF4UUQvK2dJQS92d2xBRDRBQWdDMkFGVUF2eEVDQVA3NFJBQm1BQUlBZmlDRkFPOGlBZ0RtQVBVQU5nQUNBS1lBRlFCL0lnSUEvdkpFQUhZQUFnRE9STVVBLzlVQ0FQN3hKUUJPUkFJQXJnQlZBRzhBQWdEKzlFUUFYa1FDQUw0UWhRRGZFUUlBM2xUMUFCNFJBZ0NXQUJVQVgxRURBUFlBRkFBZUVVUUFqb2lsQU4vVUF3Q3VvbFVBLzNZa0FENGl0Z0N2cWdNQTVnQVVBUC8xUkFCbUFJVUF6OHdEQUo0QXhRRHZSQ1FBTmdEKytIOHhBd0R1NkJRQS8vRkVBSFlBcFFEUHhBTUFmaUpWQU4vUkpBQk9SUDcwWDFFREFOWUFGQUR2NGtRQVhrU0ZBTDhpQXdDV0FNVUEzOGdrQUM0aS92SnZJZ01BOWdBVUFCNFJSQUNPaUtVQXY3RURBSzZpVlFEL015UUFQaUsyQUsrb0F3RG1BQlFBLzdsRUFHWUFoUUMvcUFNQW5nREZBTy9rSkFBMkFQNzRiMlFEQU83b0ZBRC8vRVFBZGdDbEFNL0lBd0IrSWxVQTcrb2tBRTVFL3ZSL2RBTUExZ0FVQVAvNlJBQmVSSVVBdjdJREFKWUF4UURmUkNRQUxpTCs4ajh4OHdEKyt2M3hOZ0FFQUw0eWRRRGZFZk1BM2xUOTh1L2sxUUIrY2Y3OGYzUHpBUDd6L2ZnZUVRUUFsZ0JWQUwreDh3RE9BTFVBMzlqOTlHWUEvcmxmVlBNQS9uYjk4U1lBQkFDbUFIVUFud0R6QUs0QS9mTC85OVVBUmdEKzlYOTA4d0RtQVAzNEZnQUVBSVlBVlFDUGlQTUF4Z0MxQU8vaS9mUmVFZTZvUHhIekFQNzYvZkUyQUFRQXZqSjFBTi9SOHdEZVZQM3kvL3ZWQUg1eC92eC9SUE1BL3ZQOStCNFJCQUNXQUZVQWYzTHpBTTRBdFFEdkl2MzBaZ0QrdVU5RTh3RCtkdjN4SmdBRUFLWUFkUUMvRWZNQXJnRDk4di8vMVFCR0FQNzFQekx6QU9ZQS9mZ1dBQVFBaGdCVkFHOEE4d0RHQUxVQXY3ajk5RjRSN3FndklnQkJySjBCQzZRZUFRQUFBQUVBQUFBQkFBQUFBZ0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJRQUFBTGNoUWlGbklVSWhFUkVSRVRNek16TjNkM2QzQUFBQUFBQUFBQUFCVmdBQUFBQUFBQkJQQUFBZ1R3QUFBVllBQUFFQUFBQWdUd0FBRUU4QUFBRTBBQUFBQUFBQU1FOEFBTEJQQUFBQk5BQUFBUUFBQUVCUEFBREFUd0FBQVJnQUFBQUFBQUJRVHdBQUVGQUFBQUVZQUFBQkFBQUFZRThBQUNCUUFBREJDZ0FBQUFBQUFIQlBBQUJ3VUFBQXdRb0FBQUVBQUFDQVR3QUFnRkFBQUNFRkFBQUFBQUFBa0U4QUFKQlNBQUFoQlFBQUFRQUFBS0JQQUFDZ1VnQUFJUUlBQUFBQUFBQ3dVd0FBRUZNQUFDRUNBQUFCQUFBQXdGTUFBQ0JUQUFBQlZnQUFBQUFBQU5CUEFBREFUd0FBQVZZQUFBRUFBQURnVHdBQXNFOEFBQUZVQUFBQUFBQUE4RThBQUxCUUFBQUJWQUFBQVFBQUFBQlFBQURBVUFBQUFVZ0FBQUFBQUFBUVVBQUFzRkFBQUFGSUFBQUJBQUFBSUZBQUFNQlFBQUFCT0FBQUFBQUFBREJRQUFDd1VBQUFBVGdBQUFFQUFBQkFVQUFBd0ZBQUFBRXdBQUFBQUFBQVVGQUFBQkJSQUFBQk1BQUFBUUFBQUdCUUFBQWdVUUFBQVNRQUFBQUFBQUJ3VUFBQU1GRUFBQUVrQUFBQkFBQUFnRkFBQUVCUkFBQUJIQUFBQUFBQUFKQlFBQUJ3VVFBQUFSd0FBQUVBQUFDZ1VBQUFnRkVBQUFFV0FBQUFBQUFBa0ZJQUFKQlJBQUFCRmdBQUFRQUFBS0JTQUFDZ1VRQUFBVllBQUFBQUFBRFFVQUFBd0ZBQUFBRldBQUFCQUFBQTRGQUFBTEJRQUFBQlZBQUFBQUFBQVBCUUFBQ3dVQUFBQVZRQUFBRUFBQUFBVVFBQXdGQUFBQUZSQUFBQUFBQUFFRkVBQU5CUUFBQUJVUUFBQVFBQUFDQlJBQURnVUFBQUFVZ0FBQUFBQUFBd1VRQUE4RkFBQUFGSUFBQUJBQUFBUUZFQUFBQlJBQUFCT0FBQUFBQUFBRkJSQUFBUVVRQUFBVGdBQUFFQUFBQmdVUUFBSUZFQUFBRTBBQUFBQUFBQWNGRUFBREJSQUFBQk5BQUFBUUFBQUlCUkFBQkFVUUFBQVRBQUFBQUFBQUNRVVFBQVVGRUFBQUV3QUFBQkFBQUFvRkVBQUdCUkFBQUJLQUFBQUFBQUFMQlJBQUJRVVFBQUFTZ0FBQUVBQUFEQVVRQUFZRkVBQUFFa0FBQUFBQUFBMEZFQUFIQlJBQUFCSkFBQUFRQUFBT0JSQUFDQVVRQUFBU0lBQUFBQUFBRHdVUUFBa0ZFQUFBRWlBQUFCQUFBQUFGSUFBS0JSQUFBQkhBQUFBQUFBQUJCU0FBQ3dVUUFBQVJ3QUFBRUFBQUFnVWdBQXdGRUFBQUVZQUFBQUFBQUFNRklBQU5CUkFBQUJHQUFBQVFBQUFFQlNBQURnVVFBQUFSWUFBQUFBQUFCUVVnQUE4RkVBQUFFV0FBQUJBQUFBWUZJQUFBQlNBQUFCRkFBQUFBQUFBSEJTQUFBUVVnQUFBUlFBQUFFQUFBQ0FVZ0FBSUZJQUFBRVNBQUFBQUFBQWtGSUFBREJTQUFBQkVnQUFBUUFBQUtCU0FBQkFVZ0FBQVJFQUFBQUFBQUN3VWdBQVVGSUFBQUVSQUFBQkFBQUF3RklBQUdCU0FBREJDZ0FBQUFBQUFOQlNBQUJ3VWdBQXdRb0FBQUVBQUFEZ1VnQUFnRklBQU1FSkFBQUFBQUFBOEZJQUFKQlNBQURCQ1FBQUFRQUFBQUJUQUFDZ1VnQUFvUWdBQUFBQUFBQVFVd0FBc0ZJQUFLRUlBQUFCQUFBQUlGTUFBTUJTQUFBaEJRQUFBQUFBQURCVEFBRFFVZ0FBSVFVQUFBRUFBQUJBVXdBQTRGSUFBRUVFQUFBQUFBQUFVRk1BQVBCU0FBQkJCQUFBQVFBQUFHQlRBQUFBVXdBQW9RSUFBQUFBQUFCd1V3QUFFRk1BQUtFQ0FBQUJBQUFBZ0ZNQUFDQlRBQUFoQWdBQUFBQUFBSkJUQUFBd1V3QUFJUUlBQUFFQUFBQ2dVd0FBUUZNQUFFRUJBQUFBQUFBQXNGTUFBRkJUQUFCQkFRQUFBUUFBQU1CVEFBQmdVd0FBRVFFQUFBQUFBQURRVXdBQWNGTUFBQkVCQUFBQkFBQUE0Rk1BQUlCVEFBQ0ZBQUFBQUFBQUFQQlRBQUNRVXdBQWhRQUFBQUVBQUFBQVZBQUFvRk1BQUVrQUFBQUFBQUFBRUZRQUFMQlRBQUJKQUFBQUFRQUFBQ0JVQUFEQVV3QUFKUUFBQUFBQUFBQXdWQUFBMEZNQUFDVUFBQUFCQUFBQVFGUUFBT0JUQUFBVkFBQUFBQUFBQUZCVUFBRHdVd0FBRlFBQUFBRUFBQUJnVkFBQUFGUUFBQWtBQUFBQUFBQUFjRlFBQUJCVUFBQUpBQUFBQVFBQUFJQlVBQUFnVkFBQUJRQUFBQUFBQUFDUVZBQUFNRlFBQUFVQUFBQUJBQUFBb0ZRQUFFQlVBQUFCQUFBQUFBQUFBSkJVQUFCUVZBQUFBUUFBQUFFQUFBQ2dWQUFBWUZRQUFBRldBQUFBQUFBQXNGUUFBTEJVQUFBQlZnQUFBUUFBQU1CVUFBREFWQUFBQUFFREF3RUNBd01GQmdjSEJnWUhCd0FCQXdNQkFnTURCUVlIQndZR0J3Y0ZCZ2NIQmdZSEJ3Z0lDQWdJQ0FnSUJRWUhCd1lHQndjSUNBZ0lDQWdJQ0FFQ0F3TUNBZ01EQmdZSEJ3WUdCd2NCQWdNREFnSURBd1lHQndjR0JnY0hCZ1lIQndZR0J3Y0lDQWdJQ0FnSUNBWUdCd2NHQmdjSENBZ0lDQWdJQ0FnREF3UUVBd01FQkFjSEJ3Y0hCd2NIQXdNRUJBTURCQVFIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hDQWdJQ0FnSUNBZ0hCd2NIQndjSEJ3Z0lDQWdJQ0FnSUF3TUVCQU1EQkFRSEJ3Y0hCd2NIQndNREJBUURBd1FFQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2dJQ0FnSUNBZ0lCd2NIQndjSEJ3Y0lDQWdJQ0FnSUNBRUNBd01DQWdNREJnWUhCd1lHQndjQkFnTURBZ0lEQXdZR0J3Y0dCZ2NIQmdZSEJ3WUdCd2NJQ0FnSUNBZ0lDQVlHQndjR0JnY0hDQWdJQ0FnSUNBZ0NBZ01EQWdJREF3WUdCd2NHQmdjSEFnSURBd0lDQXdNR0JnY0hCZ1lIQndZR0J3Y0dCZ2NIQ0FnSUNBZ0lDQWdHQmdjSEJnWUhCd2dJQ0FnSUNBZ0lBd01FQkFNREJBUUhCd2NIQndjSEJ3TURCQVFEQXdRRUJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndnSUNBZ0lDQWdJQndjSEJ3Y0hCd2NJQ0FnSUNBZ0lDQU1EQkFRREF3UUVCd2NIQndjSEJ3Y0RBd1FFQXdNRUJBY0hCd2NIQndjSEJ3Y0hCd2NIQndjSUNBZ0lDQWdJQ0FjSEJ3Y0hCd2NIQ0FnSUNBZ0lDQWdBQVFVR0FRSUdCZ01EQndjREF3Y0hBQUVGQmdFQ0JnWURBd2NIQXdNSEJ3TURCd2NEQXdjSEJBUUhCd1FFQndjREF3Y0hBd01IQndRRUJ3Y0VCQWNIQVFJR0JnSUNCZ1lEQXdjSEF3TUhCd0VDQmdZQ0FnWUdBd01IQndNREJ3Y0RBd2NIQXdNSEJ3UUVCd2NFQkFjSEF3TUhCd01EQndjRUJBY0hCQVFIQndVR0NBZ0dCZ2dJQndjSUNBY0hDQWdGQmdnSUJnWUlDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQWNIQ0FnR0JnZ0lCZ1lJQ0FjSENBZ0hCd2dJQmdZSUNBWUdDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUFRSUdCZ0lDQmdZREF3Y0hBd01IQndFQ0JnWUNBZ1lHQXdNSEJ3TURCd2NEQXdjSEF3TUhCd1FFQndjRUJBY0hBd01IQndNREJ3Y0VCQWNIQkFRSEJ3SUNCZ1lDQWdZR0F3TUhCd01EQndjQ0FnWUdBZ0lHQmdNREJ3Y0RBd2NIQXdNSEJ3TURCd2NFQkFjSEJBUUhCd01EQndjREF3Y0hCQVFIQndRRUJ3Y0dCZ2dJQmdZSUNBY0hDQWdIQndnSUJnWUlDQVlHQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCZ1lJQ0FZR0NBZ0hCd2dJQndjSUNBWUdDQWdHQmdnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQUFCQXdNQkFnTURCUVlIQndZR0J3Y0FBUU1EQVFJREF3VUdCd2NHQmdjSEJRWUhCd1lHQndjSUNBZ0lDQWdJQ0FVR0J3Y0dCZ2NIQ0FnSUNBZ0lDQWdCQWdNREFnSURBd1lHQndjR0JnY0hBUUlEQXdJQ0F3TUdCZ2NIQmdZSEJ3WUdCd2NHQmdjSENBZ0lDQWdJQ0FnR0JnY0hCZ1lIQndnSUNBZ0lDQWdJQXdNRUJBTURCQVFIQndjSEJ3Y0hCd01EQkFRREF3UUVCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Z0lDQWdJQ0FnSUJ3Y0hCd2NIQndjSUNBZ0lDQWdJQ0FNREJBUURBd1FFQndjSEJ3Y0hCd2NEQXdRRUF3TUVCQWNIQndjSEJ3Y0hCd2NIQndjSEJ3Y0lDQWdJQ0FnSUNBY0hCd2NIQndjSENBZ0lDQWdJQ0FnQkFnTURBZ0lEQXdZR0J3Y0dCZ2NIQVFJREF3SUNBd01HQmdjSEJnWUhCd1lHQndjR0JnY0hDQWdJQ0FnSUNBZ0dCZ2NIQmdZSEJ3Z0lDQWdJQ0FnSUFnSURBd0lDQXdNR0JnY0hCZ1lIQndJQ0F3TUNBZ01EQmdZSEJ3WUdCd2NHQmdjSEJnWUhCd2dJQ0FnSUNBZ0lCZ1lIQndZR0J3Y0lDQWdJQ0FnSUNBTURCQVFEQXdRRUJ3Y0hCd2NIQndjREF3UUVBd01FQkFjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NJQ0FnSUNBZ0lDQWNIQndjSEJ3Y0hDQWdJQ0FnSUNBZ0RBd1FFQXdNRUJBY0hCd2NIQndjSEF3TUVCQU1EQkFRSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQ0FnSUNBZ0lDQWdIQndjSEJ3Y0hCd2dJQ0FnSUNBZ0lBQU1CQkFNR0JBY0JCQUlGQkFjRkJ3QURBUVFEQmdRSEFRUUNCUVFIQlFjQkJBSUZCQWNGQndJRkFnVUZCd1VIQVFRQ0JRUUhCUWNDQlFJRkJRY0ZCd01HQkFjR0NBY0lCQWNGQndjSUJ3Z0RCZ1FIQmdnSENBUUhCUWNIQ0FjSUJBY0ZCd2NJQndnRkJ3VUhCd2dIQ0FRSEJRY0hDQWNJQlFjRkJ3Y0lCd2dCQkFJRkJBY0ZCd0lGQWdVRkJ3VUhBUVFDQlFRSEJRY0NCUUlGQlFjRkJ3SUZBZ1VGQndVSEFnVUNCUVVIQlFjQ0JRSUZCUWNGQndJRkFnVUZCd1VIQkFjRkJ3Y0lCd2dGQndVSEJ3Z0hDQVFIQlFjSENBY0lCUWNGQndjSUJ3Z0ZCd1VIQndnSENBVUhCUWNIQ0FjSUJRY0ZCd2NJQndnRkJ3VUhCd2dIQ0FNR0JBY0dDQWNJQkFjRkJ3Y0lCd2dEQmdRSEJnZ0hDQVFIQlFjSENBY0lCQWNGQndjSUJ3Z0ZCd1VIQndnSENBUUhCUWNIQ0FjSUJRY0ZCd2NJQndnR0NBY0lDQWdJQ0FjSUJ3Z0lDQWdJQmdnSENBZ0lDQWdIQ0FjSUNBZ0lDQWNJQndnSUNBZ0lCd2dIQ0FnSUNBZ0hDQWNJQ0FnSUNBY0lCd2dJQ0FnSUJBY0ZCd2NJQndnRkJ3VUhCd2dIQ0FRSEJRY0hDQWNJQlFjRkJ3Y0lCd2dGQndVSEJ3Z0hDQVVIQlFjSENBY0lCUWNGQndjSUJ3Z0ZCd1VIQndnSENBY0lCd2dJQ0FnSUJ3Z0hDQWdJQ0FnSENBY0lDQWdJQ0FjSUJ3Z0lDQWdJQndnSENBZ0lDQWdIQ0FjSUNBZ0lDQWNJQndnSUNBZ0lCd2dIQ0FnSUNBZ0pDUW9LQ1FrS0Nnd01EUXNNREEwTENRa0tDZ2tKQ2dvTURBc05EQXdMRFF3TURRME1EQXNMREFrTkNna01DZ3NNREFzTERBd05EUXdKQ3dvSkRBb05DUWtLQ2drSkNnb01EQTBMREF3TkN3a0pDZ29KQ1FvS0RBd0xEUXdNQ3cwTURBME5EQXdMQ3d3SkRRb0pEQW9MREF3TEN3d01EUTBNQ1FzS0NRd0tEUW9LQ2dvS0Nnb0tEUXNOQ3cwTERRc0tDZ2tKQ2dvSkNRMExEQXdOQ3d3TURRME5EUXNMQ3dzTkNnMEtDZ3NLQ3cwTkRBd0xDd3dNRFFvTUNRb0xDUXdLQ2drSkNnb0pDUXNOREF3TERRd01DZ29LQ2dvS0Nnb0xEUXNOQ3cwTERRc0xEQXdORFF3TUN3b01DUW9OQ1F3TEN3c0xEUTBORFFzS0N3b0tEUW9OQUVIWnV3RUxOd0VBQVFBQkFBRUFBQUVCQUFBQkFRQUJBQUVBQVFBQkFBQUFBQUVCQVFFQUFBQUFBQUVBQVFBQUFBQUJBUUVCQUFBQUFRQUJBUUVBUVptOEFRczNBUUFCQUFFQUFRQUFBUUVBQUFFQkFBRUFBUUFCQUFFQUFBQUFBUUVCQVFBQUFBQUFBUUFCQUFBQUFBRUJBUUVBQUFBQkFBRUJBUUJCMmJ3QkN3Y0JBQUVBQVFBQkFFSHB2QUVMbFFJQkFBRUFBUUFCQUFBQUFBRUJBUUVBQUFBQUFBRUFBUUFBQUFBQkFRRUJBQUFBQUFBQkFBRUJBUUFBQVFFQUFBQUJBQUVBQVFBQkFRRUJBUUVCQVFFQUFRQUJBQUVBQVFBQUFBQUJBUUVCQUFFQUFBRUJBQUVBQUFBQUFRRUJBUUFCQUFFQkFRRUJBZ0FBQUFRQUFBQUVBQUFBQ0FBQUFKRC9BQUFNQUFBQUdBQUFBRkwvQUFBVUFBQUFHUUFBQUZQL0FBQVVBQUFBR2dBQUFGNy9BQUFVQUFBQUd3QUFBRnovQUFBVUFBQUFIQUFBQUYzL0FBQVVBQUFBSFFBQUFGLy9BQUFVQUFBQUhnQUFBRkgvQUFBQ0FBQUFId0FBQUZYL0FBQUVBQUFBSUFBQUFGZi9BQUFFQUFBQUlRQUFBRmovQUFBUUFBQUFJZ0FBQUdEL0FBQUVBQUFBSXdBQUFHSC9BQUFRQUFBQUpBQUFBSkgvQUVHSXZ3RUxaV1AvQUFBRUFBQUFKUUFBQUdUL0FBQVVBQUFBSmdBQUFIVC9BQUFVQUFBQUp3QUFBSGovQUFBRUFBQUFLQUFBQUZEL0FBQUVBQUFBS1FBQUFGbi9BQUFFQUFBQUtnQUFBSFgvQUFBVUFBQUFLd0FBQUhmL0FBQVVBQUFBTEFBQUFBQUFBQUFVQUVHQXdBRUxOUzBBQUFBdUFBQUFMd0FBQURBQUFBQXhBQUFBTWdBQUFETUFBQUEwQUFBQUlDQlFhallBQUFCd2VYUm1Od0FBQUdneWNHbzRBRUhBd0FFTE1uSmthR2s1QUFBQWNteHZZem9BQUFCalkzQmlPd0FBQUhKc1kzQThBQUFBY0dGdFl6MEFBQUJtWldSalBnQUFBUGhpQUVHQXdRRUxRUmtBQ3dBWkdSa0FBQUFBQlFBQUFBQUFBQWtBQUFBQUN3QUFBQUFBQUFBQUdRQUtDaGtaR1FNS0J3QUJBQWtMR0FBQUNRWUxBQUFMQUFZWkFBQUFHUmtaQUVIUndRRUxJUTRBQUFBQUFBQUFBQmtBQ3cwWkdSa0FEUUFBQWdBSkRnQUFBQWtBRGdBQURnQkJpOElCQ3dFTUFFR1h3Z0VMRlJNQUFBQUFFd0FBQUFBSkRBQUFBQUFBREFBQURBQkJ4Y0lCQ3dFUUFFSFJ3Z0VMRlE4QUFBQUVEd0FBQUFBSkVBQUFBQUFBRUFBQUVBQkIvOElCQ3dFU0FFR0x3d0VMSGhFQUFBQUFFUUFBQUFBSkVnQUFBQUFBRWdBQUVnQUFHZ0FBQUJvYUdnQkJ3c01CQ3c0YUFBQUFHaG9hQUFBQUFBQUFDUUJCODhNQkN3RVVBRUgvd3dFTEZSY0FBQUFBRndBQUFBQUpGQUFBQUFBQUZBQUFGQUJCcmNRQkN3RVdBRUc1eEFFTEp4VUFBQUFBRlFBQUFBQUpGZ0FBQUFBQUZnQUFGZ0FBTURFeU16UTFOamM0T1VGQ1EwUkZSZ0JCNE1RQkN3bVFiQUVBQUFBQUFBVUFRZlRFQVFzQmFRQkJqTVVCQ3dwcUFBQUFhd0FBQUhob0FFR2t4UUVMQVFJQVFiVEZBUXNJLy8vLy8vLy8vLzhBUWZqRkFRc0JCUUJCaE1ZQkN3RnNBRUdjeGdFTERtb0FBQUJ0QUFBQWlHZ0FBQUFFQUVHMHhnRUxBUUVBUWNUR0FRc0YvLy8vL3dvPSIpLGUodyhsLEEpWzBdKX0oKTtmdW5jdGlvbiBMKCl7ZnVuY3Rpb24gQSgpe2J8fChiPSEwLGkuY2FsbGVkUnVuPSEwLEQoRSksZShpKSxpLm9uUnVudGltZUluaXRpYWxpemVkJiZpLm9uUnVudGltZUluaXRpYWxpemVkKCksZnVuY3Rpb24oKXtpZihpLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnBvc3RSdW4mJihpLnBvc3RSdW49W2kucG9zdFJ1bl0pO2kucG9zdFJ1bi5sZW5ndGg7KUE9aS5wb3N0UnVuLnNoaWZ0KCksdS51bnNoaWZ0KEEpO3ZhciBBO0QodSl9KCkpfWQ+MHx8KGZ1bmN0aW9uKCl7aWYoaS5wcmVSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnByZVJ1biYmKGkucHJlUnVuPVtpLnByZVJ1bl0pO2kucHJlUnVuLmxlbmd0aDspQT1pLnByZVJ1bi5zaGlmdCgpLFEudW5zaGlmdChBKTt2YXIgQTtEKFEpfSgpLGQ+MHx8KGkuc2V0U3RhdHVzPyhpLnNldFN0YXR1cygiUnVubmluZy4uLiIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLnNldFN0YXR1cygiIil9KSwxKSxBKCl9KSwxKSk6QSgpKSl9aWYoTS5xLGkuX21hbGxvYz1NLnIsaS5fZnJlZT1NLnMsaS5fanAyX2RlY29kZT1NLnUscD1mdW5jdGlvbiBBKCl7Ynx8TCgpLGJ8fChwPUEpfSxpLnByZUluaXQpZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnByZUluaXQmJihpLnByZUluaXQ9W2kucHJlSW5pdF0pO2kucHJlSW5pdC5sZW5ndGg+MDspaS5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIEwoKSxpfSk7Y29uc3QgZWk9QWk7Y2xhc3MgdGkgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkpweEVycm9yIil9fWNsYXNzIGlpe3N0YXRpYyN5PW51bGw7c3RhdGljIGRlY29kZShBLGUpe2V8fD17fSx0aGlzLiN5fHw9ZWkoe3dhcm46VX0pO2NvbnN0IHQ9dGhpcy4jeS5kZWNvZGUoQSxlKTtpZigic3RyaW5nIj09dHlwZW9mIHQpdGhyb3cgbmV3IHRpKHQpO3JldHVybiB0fXN0YXRpYyBjbGVhbnVwKCl7dGhpcy4jeT1udWxsfXN0YXRpYyBwYXJzZUltYWdlUHJvcGVydGllcyhBKXtsZXQgZT1BLmdldEJ5dGUoKTtmb3IoO2U+PTA7KXtjb25zdCB0PWU7aWYoZT1BLmdldEJ5dGUoKSw2NTM2MT09KHQ8PDh8ZSkpe0Euc2tpcCg0KTtjb25zdCBlPUEuZ2V0SW50MzIoKT4+PjAsdD1BLmdldEludDMyKCk+Pj4wLGk9QS5nZXRJbnQzMigpPj4+MCxhPUEuZ2V0SW50MzIoKT4+PjA7cmV0dXJuIEEuc2tpcCgxNikse3dpZHRoOmUtaSxoZWlnaHQ6dC1hLGJpdHNQZXJDb21wb25lbnQ6OCxjb21wb25lbnRzQ291bnQ6QS5nZXRVaW50MTYoKX19fXRocm93IG5ldyB0aSgiTm8gc2l6ZSBtYXJrZXIgZm91bmQgaW4gSlBYIHN0cmVhbSIpfX1jbGFzcyBhaSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihlKSx0aGlzLnN0cmVhbT1BLHRoaXMuZGljdD1BLmRpY3QsdGhpcy5tYXliZUxlbmd0aD1lLHRoaXMucGFyYW1zPXR9Z2V0IGJ5dGVzKCl7cmV0dXJuIEgodGhpcywiYnl0ZXMiLHRoaXMuc3RyZWFtLmdldEJ5dGVzKHRoaXMubWF5YmVMZW5ndGgpKX1lbnN1cmVCdWZmZXIoQSl7fXJlYWRCbG9jayhBKXt0aGlzLmRlY29kZUltYWdlKG51bGwsQSl9ZGVjb2RlSW1hZ2UoQSxlKXtyZXR1cm4gdGhpcy5lb2Z8fChBfHw9dGhpcy5ieXRlcyx0aGlzLmJ1ZmZlcj1paS5kZWNvZGUoQSxlKSx0aGlzLmJ1ZmZlckxlbmd0aD10aGlzLmJ1ZmZlci5sZW5ndGgsdGhpcy5lb2Y9ITApLHRoaXMuYnVmZmVyfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiB0aGlzLnN0cmVhbS5pc0FzeW5jfX1jbGFzcyBzaSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihlKSx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3QsdGhpcy5jYWNoZWREYXRhPTAsdGhpcy5iaXRzQ2FjaGVkPTA7Y29uc3QgaT00MDk2LGE9e2Vhcmx5Q2hhbmdlOnQsY29kZUxlbmd0aDo5LG5leHRDb2RlOjI1OCxkaWN0aW9uYXJ5VmFsdWVzOm5ldyBVaW50OEFycmF5KGkpLGRpY3Rpb25hcnlMZW5ndGhzOm5ldyBVaW50MTZBcnJheShpKSxkaWN0aW9uYXJ5UHJldkNvZGVzOm5ldyBVaW50MTZBcnJheShpKSxjdXJyZW50U2VxdWVuY2U6bmV3IFVpbnQ4QXJyYXkoaSksY3VycmVudFNlcXVlbmNlTGVuZ3RoOjB9O2ZvcihsZXQgQT0wO0E8MjU2OysrQSlhLmRpY3Rpb25hcnlWYWx1ZXNbQV09QSxhLmRpY3Rpb25hcnlMZW5ndGhzW0FdPTE7dGhpcy5sendTdGF0ZT1hfXJlYWRCaXRzKEEpe2xldCBlPXRoaXMuYml0c0NhY2hlZCx0PXRoaXMuY2FjaGVkRGF0YTtmb3IoO2U8QTspe2NvbnN0IEE9dGhpcy5zdHIuZ2V0Qnl0ZSgpO2lmKC0xPT09QSlyZXR1cm4gdGhpcy5lb2Y9ITAsbnVsbDt0PXQ8PDh8QSxlKz04fXJldHVybiB0aGlzLmJpdHNDYWNoZWQ9ZS09QSx0aGlzLmNhY2hlZERhdGE9dCx0aGlzLmxhc3RDb2RlPW51bGwsdD4+PmUmKDE8PEEpLTF9cmVhZEJsb2NrKCl7bGV0IEEsZSx0LGk9MTAyNDtjb25zdCBhPXRoaXMubHp3U3RhdGU7aWYoIWEpcmV0dXJuO2NvbnN0IHM9YS5lYXJseUNoYW5nZTtsZXQgbj1hLm5leHRDb2RlO2NvbnN0IHI9YS5kaWN0aW9uYXJ5VmFsdWVzLGc9YS5kaWN0aW9uYXJ5TGVuZ3RocyxvPWEuZGljdGlvbmFyeVByZXZDb2RlcztsZXQgST1hLmNvZGVMZW5ndGgsYz1hLnByZXZDb2RlO2NvbnN0IGg9YS5jdXJyZW50U2VxdWVuY2U7bGV0IEM9YS5jdXJyZW50U2VxdWVuY2VMZW5ndGgsQj0wLGw9dGhpcy5idWZmZXJMZW5ndGgsUT10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCtpKTtmb3IoQT0wO0E8NTEyO0ErKyl7Y29uc3QgQT10aGlzLnJlYWRCaXRzKEkpLGE9Qz4wO2lmKEE8MjU2KWhbMF09QSxDPTE7ZWxzZXtpZighKEE+PTI1OCkpe2lmKDI1Nj09PUEpe0k9OSxuPTI1OCxDPTA7Y29udGludWV9dGhpcy5lb2Y9ITAsZGVsZXRlIHRoaXMubHp3U3RhdGU7YnJlYWt9aWYoQTxuKWZvcihDPWdbQV0sZT1DLTEsdD1BO2U+PTA7ZS0tKWhbZV09clt0XSx0PW9bdF07ZWxzZSBoW0MrK109aFswXX1pZihhJiYob1tuXT1jLGdbbl09Z1tjXSsxLHJbbl09aFswXSxuKyssST1uK3MmbitzLTE/STowfE1hdGgubWluKE1hdGgubG9nKG4rcykvLjY5MzE0NzE4MDU1OTk0NTMrMSwxMikpLGM9QSxCKz1DLGk8Qil7ZG97aSs9NTEyfXdoaWxlKGk8Qik7UT10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCtpKX1mb3IoZT0wO2U8QztlKyspUVtsKytdPWhbZV19YS5uZXh0Q29kZT1uLGEuY29kZUxlbmd0aD1JLGEucHJldkNvZGU9YyxhLmN1cnJlbnRTZXF1ZW5jZUxlbmd0aD1DLHRoaXMuYnVmZmVyTGVuZ3RoPWx9fWNsYXNzIG5pIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe2lmKHN1cGVyKGUpLCEodCBpbnN0YW5jZW9mIFFBKSlyZXR1cm4gQTtjb25zdCBpPXRoaXMucHJlZGljdG9yPXQuZ2V0KCJQcmVkaWN0b3IiKXx8MTtpZihpPD0xKXJldHVybiBBO2lmKDIhPT1pJiYoaTwxMHx8aT4xNSkpdGhyb3cgbmV3IFcoYFVuc3VwcG9ydGVkIHByZWRpY3RvcjogJHtpfWApO3RoaXMucmVhZEJsb2NrPTI9PT1pP3RoaXMucmVhZEJsb2NrVGlmZjp0aGlzLnJlYWRCbG9ja1BuZyx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3Q7Y29uc3QgYT10aGlzLmNvbG9ycz10LmdldCgiQ29sb3JzIil8fDEscz10aGlzLmJpdHM9dC5nZXQoIkJQQyIsIkJpdHNQZXJDb21wb25lbnQiKXx8OCxuPXRoaXMuY29sdW1ucz10LmdldCgiQ29sdW1ucyIpfHwxO3JldHVybiB0aGlzLnBpeEJ5dGVzPWEqcys3Pj4zLHRoaXMucm93Qnl0ZXM9biphKnMrNz4+Myx0aGlzfXJlYWRCbG9ja1RpZmYoKXtjb25zdCBBPXRoaXMucm93Qnl0ZXMsZT10aGlzLmJ1ZmZlckxlbmd0aCx0PXRoaXMuZW5zdXJlQnVmZmVyKGUrQSksaT10aGlzLmJpdHMsYT10aGlzLmNvbG9ycyxzPXRoaXMuc3RyLmdldEJ5dGVzKEEpO2lmKHRoaXMuZW9mPSFzLmxlbmd0aCx0aGlzLmVvZilyZXR1cm47bGV0IG4scj0wLGc9MCxvPTAsST0wLGM9ZTtpZigxPT09aSYmMT09PWEpZm9yKG49MDtuPEE7KytuKXtsZXQgQT1zW25dXnI7QV49QT4+MSxBXj1BPj4yLEFePUE+PjQscj0oMSZBKTw8Nyx0W2MrK109QX1lbHNlIGlmKDg9PT1pKXtmb3Iobj0wO248YTsrK24pdFtjKytdPXNbbl07Zm9yKDtuPEE7KytuKXRbY109dFtjLWFdK3Nbbl0sYysrfWVsc2UgaWYoMTY9PT1pKXtjb25zdCBlPTIqYTtmb3Iobj0wO248ZTsrK24pdFtjKytdPXNbbl07Zm9yKDtuPEE7bis9Mil7Y29uc3QgQT0oKDI1NSZzW25dKTw8OCkrKDI1NSZzW24rMV0pKygoMjU1JnRbYy1lXSk8PDgpKygyNTUmdFtjLWUrMV0pO3RbYysrXT1BPj44JjI1NSx0W2MrK109MjU1JkF9fWVsc2V7Y29uc3QgQT1uZXcgVWludDhBcnJheShhKzEpLGM9KDE8PGkpLTE7bGV0IGg9MCxDPWU7Y29uc3QgQj10aGlzLmNvbHVtbnM7Zm9yKG49MDtuPEI7KytuKWZvcihsZXQgZT0wO2U8YTsrK2UpbzxpJiYocj1yPDw4fDI1NSZzW2grK10sbys9OCksQVtlXT1BW2VdKyhyPj5vLWkpJmMsby09aSxnPWc8PGl8QVtlXSxJKz1pLEk+PTgmJih0W0MrK109Zz4+SS04JjI1NSxJLT04KTtJPjAmJih0W0MrK109KGc8PDgtSSkrKHImKDE8PDgtSSktMSkpfXRoaXMuYnVmZmVyTGVuZ3RoKz1BfXJlYWRCbG9ja1BuZygpe2NvbnN0IEE9dGhpcy5yb3dCeXRlcyxlPXRoaXMucGl4Qnl0ZXMsdD10aGlzLnN0ci5nZXRCeXRlKCksaT10aGlzLnN0ci5nZXRCeXRlcyhBKTtpZih0aGlzLmVvZj0haS5sZW5ndGgsdGhpcy5lb2YpcmV0dXJuO2NvbnN0IGE9dGhpcy5idWZmZXJMZW5ndGgscz10aGlzLmVuc3VyZUJ1ZmZlcihhK0EpO2xldCBuPXMuc3ViYXJyYXkoYS1BLGEpOzA9PT1uLmxlbmd0aCYmKG49bmV3IFVpbnQ4QXJyYXkoQSkpO2xldCByLGcsbyxJPWE7c3dpdGNoKHQpe2Nhc2UgMDpmb3Iocj0wO3I8QTsrK3Ipc1tJKytdPWlbcl07YnJlYWs7Y2FzZSAxOmZvcihyPTA7cjxlOysrcilzW0krK109aVtyXTtmb3IoO3I8QTsrK3Ipc1tJXT1zW0ktZV0raVtyXSYyNTUsSSsrO2JyZWFrO2Nhc2UgMjpmb3Iocj0wO3I8QTsrK3Ipc1tJKytdPW5bcl0raVtyXSYyNTU7YnJlYWs7Y2FzZSAzOmZvcihyPTA7cjxlOysrcilzW0krK109KG5bcl0+PjEpK2lbcl07Zm9yKDtyPEE7KytyKXNbSV09KG5bcl0rc1tJLWVdPj4xKStpW3JdJjI1NSxJKys7YnJlYWs7Y2FzZSA0OmZvcihyPTA7cjxlOysrcilnPW5bcl0sbz1pW3JdLHNbSSsrXT1nK287Zm9yKDtyPEE7KytyKXtnPW5bcl07Y29uc3QgQT1uW3ItZV0sdD1zW0ktZV0sYT10K2ctQTtsZXQgYz1hLXQ7YzwwJiYoYz0tYyk7bGV0IGg9YS1nO2g8MCYmKGg9LWgpO2xldCBDPWEtQTtDPDAmJihDPS1DKSxvPWlbcl0sc1tJKytdPWM8PWgmJmM8PUM/dCtvOmg8PUM/ZytvOkErb31icmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBVbnN1cHBvcnRlZCBwcmVkaWN0b3I6ICR7dH1gKX10aGlzLmJ1ZmZlckxlbmd0aCs9QX19Y2xhc3MgcmkgZXh0ZW5kcyBOZXtjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKGUpLHRoaXMuc3RyPUEsdGhpcy5kaWN0PUEuZGljdH1yZWFkQmxvY2soKXtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKDIpO2lmKCFBfHxBLmxlbmd0aDwyfHwxMjg9PT1BWzBdKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTtsZXQgZSx0PXRoaXMuYnVmZmVyTGVuZ3RoLGk9QVswXTtpZihpPDEyOCl7aWYoZT10aGlzLmVuc3VyZUJ1ZmZlcih0K2krMSksZVt0KytdPUFbMV0saT4wKXtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKGkpO2Uuc2V0KEEsdCksdCs9aX19ZWxzZXtpPTI1Ny1pO2NvbnN0IGE9QVsxXTtlPXRoaXMuZW5zdXJlQnVmZmVyKHQraSsxKTtmb3IobGV0IEE9MDtBPGk7QSsrKWVbdCsrXT1hfXRoaXMuYnVmZmVyTGVuZ3RoPXR9fWNsYXNzIGdpe2NvbnN0cnVjdG9yKHtsZXhlcjpBLHhyZWY6ZSxhbGxvd1N0cmVhbXM6dD0hMSxyZWNvdmVyeU1vZGU6aT0hMX0pe3RoaXMubGV4ZXI9QSx0aGlzLnhyZWY9ZSx0aGlzLmFsbG93U3RyZWFtcz10LHRoaXMucmVjb3ZlcnlNb2RlPWksdGhpcy5pbWFnZUNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5faW1hZ2VJZD0wLHRoaXMucmVmaWxsKCl9cmVmaWxsKCl7dGhpcy5idWYxPXRoaXMubGV4ZXIuZ2V0T2JqKCksdGhpcy5idWYyPXRoaXMubGV4ZXIuZ2V0T2JqKCl9c2hpZnQoKXt0aGlzLmJ1ZjIgaW5zdGFuY2VvZiBCQSYmIklEIj09PXRoaXMuYnVmMi5jbWQ/KHRoaXMuYnVmMT10aGlzLmJ1ZjIsdGhpcy5idWYyPW51bGwpOih0aGlzLmJ1ZjE9dGhpcy5idWYyLHRoaXMuYnVmMj10aGlzLmxleGVyLmdldE9iaigpKX10cnlTaGlmdCgpe3RyeXtyZXR1cm4gdGhpcy5zaGlmdCgpLCEwfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO3JldHVybiExfX1nZXRPYmooQT1udWxsKXtjb25zdCBlPXRoaXMuYnVmMTtpZih0aGlzLnNoaWZ0KCksZSBpbnN0YW5jZW9mIEJBKXN3aXRjaChlLmNtZCl7Y2FzZSJCSSI6cmV0dXJuIHRoaXMubWFrZUlubGluZUltYWdlKEEpO2Nhc2UiWyI6Y29uc3QgdD1bXTtmb3IoOyFwQSh0aGlzLmJ1ZjEsIl0iKSYmdGhpcy5idWYxIT09b0E7KXQucHVzaCh0aGlzLmdldE9iaihBKSk7aWYodGhpcy5idWYxPT09b0Epe2lmKHRoaXMucmVjb3ZlcnlNb2RlKXJldHVybiB0O3Rocm93IG5ldyBGQSgiRW5kIG9mIGZpbGUgaW5zaWRlIGFycmF5LiIpfXJldHVybiB0aGlzLnNoaWZ0KCksdDtjYXNlIjw8Ijpjb25zdCBpPW5ldyBRQSh0aGlzLnhyZWYpO2Zvcig7IXBBKHRoaXMuYnVmMSwiPj4iKSYmdGhpcy5idWYxIT09b0E7KXtpZighKHRoaXMuYnVmMSBpbnN0YW5jZW9mIENBKSl7eCgiTWFsZm9ybWVkIGRpY3Rpb25hcnk6IGtleSBtdXN0IGJlIGEgbmFtZSBvYmplY3QiKSx0aGlzLnNoaWZ0KCk7Y29udGludWV9Y29uc3QgZT10aGlzLmJ1ZjEubmFtZTtpZih0aGlzLnNoaWZ0KCksdGhpcy5idWYxPT09b0EpYnJlYWs7aS5zZXQoZSx0aGlzLmdldE9iaihBKSl9aWYodGhpcy5idWYxPT09b0Epe2lmKHRoaXMucmVjb3ZlcnlNb2RlKXJldHVybiBpO3Rocm93IG5ldyBGQSgiRW5kIG9mIGZpbGUgaW5zaWRlIGRpY3Rpb25hcnkuIil9cmV0dXJuIHBBKHRoaXMuYnVmMiwic3RyZWFtIik/dGhpcy5hbGxvd1N0cmVhbXM/dGhpcy5tYWtlU3RyZWFtKGksQSk6aToodGhpcy5zaGlmdCgpLGkpO2RlZmF1bHQ6cmV0dXJuIGV9aWYoTnVtYmVyLmlzSW50ZWdlcihlKSl7aWYoTnVtYmVyLmlzSW50ZWdlcih0aGlzLmJ1ZjEpJiZwQSh0aGlzLmJ1ZjIsIlIiKSl7Y29uc3QgQT1FQS5nZXQoZSx0aGlzLmJ1ZjEpO3JldHVybiB0aGlzLnNoaWZ0KCksdGhpcy5zaGlmdCgpLEF9cmV0dXJuIGV9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiZBP0EuZGVjcnlwdFN0cmluZyhlKTplfWZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKEEpe2NvbnN0e2tub3duQ29tbWFuZHM6ZX09dGhpcy5sZXhlcix0PUEucG9zO2xldCBpLGEscz0wO2Zvcig7LTEhPT0oaT1BLmdldEJ5dGUoKSk7KWlmKDA9PT1zKXM9Njk9PT1pPzE6MDtlbHNlIGlmKDE9PT1zKXM9NzM9PT1pPzI6MDtlbHNlIGlmKDMyPT09aXx8MTA9PT1pfHwxMz09PWkpe2E9QS5wb3M7Y29uc3QgdD1BLnBlZWtCeXRlcygxNSksbj10Lmxlbmd0aDtpZigwPT09bilicmVhaztmb3IobGV0IEE9MDtBPG47QSsrKWlmKGk9dFtBXSwoMCE9PWl8fDA9PT10W0ErMV0pJiYxMCE9PWkmJjEzIT09aSYmKGk8MzJ8fGk+MTI3KSl7cz0wO2JyZWFrfWlmKDIhPT1zKWNvbnRpbnVlO2lmKCFlKXtVKCJmaW5kRGVmYXVsdElubGluZVN0cmVhbUVuZCAtIGBsZXhlci5rbm93bkNvbW1hbmRzYCBpcyB1bmRlZmluZWQuIik7Y29udGludWV9Y29uc3Qgcj1uZXcgY2kobmV3IGdlKHQuc2xpY2UoKSksZSk7ci5faGV4U3RyaW5nV2Fybj0oKT0+e307bGV0IGc9MDtmb3IoOzspe2NvbnN0IEE9ci5nZXRPYmooKTtpZihBPT09b0Epe3M9MDticmVha31pZihBIGluc3RhbmNlb2YgQkEpe2NvbnN0IHQ9ZVtBLmNtZF07aWYoIXQpe3M9MDticmVha31pZih0LnZhcmlhYmxlQXJncz9nPD10Lm51bUFyZ3M6Zz09PXQubnVtQXJncylicmVhaztnPTB9ZWxzZSBnKyt9aWYoMj09PXMpYnJlYWt9ZWxzZSBzPTA7LTE9PT1pJiYoVSgiZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQ6IFJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhvdXQgZmluZGluZyBhIHZhbGlkIEVJIG1hcmtlciIpLGEmJihVKCcuLi4gdHJ5aW5nIHRvIHJlY292ZXIgYnkgdXNpbmcgdGhlIGxhc3QgIkVJIiBvY2N1cnJlbmNlLicpLEEuc2tpcCgtKEEucG9zLWEpKSkpO2xldCBuPTQ7cmV0dXJuIEEuc2tpcCgtbiksaT1BLnBlZWtCeXRlKCksQS5za2lwKG4pLFlBKGkpfHxuLS0sQS5wb3Mtbi10fWZpbmREQ1REZWNvZGVJbmxpbmVTdHJlYW1FbmQoQSl7Y29uc3QgZT1BLnBvcztsZXQgdCxpLGE9ITE7Zm9yKDstMSE9PSh0PUEuZ2V0Qnl0ZSgpKTspaWYoMjU1PT09dCl7c3dpdGNoKEEuZ2V0Qnl0ZSgpKXtjYXNlIDA6YnJlYWs7Y2FzZSAyNTU6QS5za2lwKC0xKTticmVhaztjYXNlIDIxNzphPSEwO2JyZWFrO2Nhc2UgMTkyOmNhc2UgMTkzOmNhc2UgMTk0OmNhc2UgMTk1OmNhc2UgMTk3OmNhc2UgMTk4OmNhc2UgMTk5OmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjAzOmNhc2UgMjA1OmNhc2UgMjA2OmNhc2UgMjA3OmNhc2UgMTk2OmNhc2UgMjA0OmNhc2UgMjE4OmNhc2UgMjE5OmNhc2UgMjIwOmNhc2UgMjIxOmNhc2UgMjIyOmNhc2UgMjIzOmNhc2UgMjI0OmNhc2UgMjI1OmNhc2UgMjI2OmNhc2UgMjI3OmNhc2UgMjI4OmNhc2UgMjI5OmNhc2UgMjMwOmNhc2UgMjMxOmNhc2UgMjMyOmNhc2UgMjMzOmNhc2UgMjM0OmNhc2UgMjM1OmNhc2UgMjM2OmNhc2UgMjM3OmNhc2UgMjM4OmNhc2UgMjM5OmNhc2UgMjU0Omk9QS5nZXRVaW50MTYoKSxpPjI/QS5za2lwKGktMik6QS5za2lwKC0yKX1pZihhKWJyZWFrfWNvbnN0IHM9QS5wb3MtZTtyZXR1cm4tMT09PXQ/KFUoIklubGluZSBEQ1REZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0kgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIiksQS5za2lwKC1zKSx0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKEEpKToodGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoQSkscyl9ZmluZEFTQ0lJODVEZWNvZGVJbmxpbmVTdHJlYW1FbmQoQSl7Y29uc3QgZT1BLnBvcztsZXQgdDtmb3IoOy0xIT09KHQ9QS5nZXRCeXRlKCkpOylpZigxMjY9PT10KXtjb25zdCBlPUEucG9zO2Zvcih0PUEucGVla0J5dGUoKTtZQSh0KTspQS5za2lwKCksdD1BLnBlZWtCeXRlKCk7aWYoNjI9PT10KXtBLnNraXAoKTticmVha31pZihBLnBvcz5lKXtjb25zdCBlPUEucGVla0J5dGVzKDIpO2lmKDY5PT09ZVswXSYmNzM9PT1lWzFdKWJyZWFrfX1jb25zdCBpPUEucG9zLWU7cmV0dXJuLTE9PT10PyhVKCJJbmxpbmUgQVNDSUk4NURlY29kZSBpbWFnZSBzdHJlYW06IEVPRCBtYXJrZXIgbm90IGZvdW5kLCBzZWFyY2hpbmcgZm9yIC9FSS8gaW5zdGVhZC4iKSxBLnNraXAoLWkpLHRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoQSkpOih0aGlzLmlubGluZVN0cmVhbVNraXBFSShBKSxpKX1maW5kQVNDSUlIZXhEZWNvZGVJbmxpbmVTdHJlYW1FbmQoQSl7Y29uc3QgZT1BLnBvcztsZXQgdDtmb3IoOy0xIT09KHQ9QS5nZXRCeXRlKCkpJiY2MiE9PXQ7KTtjb25zdCBpPUEucG9zLWU7cmV0dXJuLTE9PT10PyhVKCJJbmxpbmUgQVNDSUlIZXhEZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0QgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIiksQS5za2lwKC1pKSx0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKEEpKToodGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoQSksaSl9aW5saW5lU3RyZWFtU2tpcEVJKEEpe2xldCBlLHQ9MDtmb3IoOy0xIT09KGU9QS5nZXRCeXRlKCkpOylpZigwPT09dCl0PTY5PT09ZT8xOjA7ZWxzZSBpZigxPT09dCl0PTczPT09ZT8yOjA7ZWxzZSBpZigyPT09dClicmVha31tYWtlSW5saW5lSW1hZ2UoQSl7Y29uc3QgZT10aGlzLmxleGVyLHQ9ZS5zdHJlYW0saT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhO2Zvcig7IXBBKHRoaXMuYnVmMSwiSUQiKSYmdGhpcy5idWYxIT09b0E7KXtpZighKHRoaXMuYnVmMSBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVygiRGljdGlvbmFyeSBrZXkgbXVzdCBiZSBhIG5hbWUgb2JqZWN0Iik7Y29uc3QgZT10aGlzLmJ1ZjEubmFtZTtpZih0aGlzLnNoaWZ0KCksdGhpcy5idWYxPT09b0EpYnJlYWs7aVtlXT10aGlzLmdldE9iaihBKX0tMSE9PWUuYmVnaW5JbmxpbmVJbWFnZVBvcyYmKGE9dC5wb3MtZS5iZWdpbklubGluZUltYWdlUG9zKTtjb25zdCBzPXRoaXMueHJlZi5mZXRjaElmUmVmKGkuRnx8aS5GaWx0ZXIpO2xldCBuO2lmKHMgaW5zdGFuY2VvZiBDQSluPXMubmFtZTtlbHNlIGlmKEFycmF5LmlzQXJyYXkocykpe2NvbnN0IEE9dGhpcy54cmVmLmZldGNoSWZSZWYoc1swXSk7QSBpbnN0YW5jZW9mIENBJiYobj1BLm5hbWUpfWNvbnN0IHI9dC5wb3M7bGV0IGcsbztzd2l0Y2gobil7Y2FzZSJEQ1QiOmNhc2UiRENURGVjb2RlIjpnPXRoaXMuZmluZERDVERlY29kZUlubGluZVN0cmVhbUVuZCh0KTticmVhaztjYXNlIkE4NSI6Y2FzZSJBU0NJSTg1RGVjb2RlIjpnPXRoaXMuZmluZEFTQ0lJODVEZWNvZGVJbmxpbmVTdHJlYW1FbmQodCk7YnJlYWs7Y2FzZSJBSHgiOmNhc2UiQVNDSUlIZXhEZWNvZGUiOmc9dGhpcy5maW5kQVNDSUlIZXhEZWNvZGVJbmxpbmVTdHJlYW1FbmQodCk7YnJlYWs7ZGVmYXVsdDpnPXRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQodCl9aWYoZzwxZTMmJmE+MCl7Y29uc3QgQT10LnBvczt0LnBvcz1lLmJlZ2luSW5saW5lSW1hZ2VQb3Msbz1mdW5jdGlvbihBKXtjb25zdCBlPVtdLHQ9QS5sZW5ndGg7bGV0IGk9MDtmb3IoO2k8dC0xOyllLnB1c2goQVtpKytdPDw4fEFbaSsrXSk7cmV0dXJuIGk8dCYmZS5wdXNoKEFbaV0pLHQrIl8iK1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlKX0odC5nZXRCeXRlcyhhK2cpKSx0LnBvcz1BO2NvbnN0IGk9dGhpcy5pbWFnZUNhY2hlW29dO2lmKHZvaWQgMCE9PWkpcmV0dXJuIHRoaXMuYnVmMj1CQS5nZXQoIkVJIiksdGhpcy5zaGlmdCgpLGkucmVzZXQoKSxpfWNvbnN0IEk9bmV3IFFBKHRoaXMueHJlZik7Zm9yKGNvbnN0IEEgaW4gaSlJLnNldChBLGlbQV0pO2xldCBjPXQubWFrZVN1YlN0cmVhbShyLGcsSSk7cmV0dXJuIEEmJihjPUEuY3JlYXRlU3RyZWFtKGMsZykpLGM9dGhpcy5maWx0ZXIoYyxJLGcpLGMuZGljdD1JLHZvaWQgMCE9PW8mJihjLmNhY2hlS2V5PSJpbmxpbmVfaW1nXyIrICsrdGhpcy5faW1hZ2VJZCx0aGlzLmltYWdlQ2FjaGVbb109YyksdGhpcy5idWYyPUJBLmdldCgiRUkiKSx0aGlzLnNoaWZ0KCksY30jdyhBKXtjb25zdHtzdHJlYW06ZX09dGhpcy5sZXhlcjtlLnBvcz1BO2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoWzEwMSwxMTAsMTAwXSksaT10Lmxlbmd0aCxhPVtuZXcgVWludDhBcnJheShbMTE1LDExNiwxMTQsMTAxLDk3LDEwOV0pLG5ldyBVaW50OEFycmF5KFsxMTUsMTE2LDEwMSw5NywxMDldKSxuZXcgVWludDhBcnJheShbMTE1LDExNiwxMTQsMTAxLDk3XSldLHM9OS1pO2Zvcig7ZS5wb3M8ZS5lbmQ7KXtjb25zdCBuPWUucGVla0J5dGVzKDIwNDgpLHI9bi5sZW5ndGgtOTtpZihyPD0wKWJyZWFrO2xldCBnPTA7Zm9yKDtnPHI7KXtsZXQgcj0wO2Zvcig7cjxpJiZuW2crcl09PT10W3JdOylyKys7aWYocj49aSl7bGV0IGk9ITE7Zm9yKGNvbnN0IEEgb2YgYSl7Y29uc3QgZT1BLmxlbmd0aDtsZXQgYT0wO2Zvcig7YTxlJiZuW2crcithXT09PUFbYV07KWErKztpZihhPj1zKXtpPSEwO2JyZWFrfWlmKGE+PWUpe1lBKG5bZytyK2FdKSYmKHgoYEZvdW5kICIke1ooWy4uLnQsLi4uQV0pfSIgd2hlbiBzZWFyY2hpbmcgZm9yIGVuZHN0cmVhbSBjb21tYW5kLmApLGk9ITApO2JyZWFrfX1pZihpKXJldHVybiBlLnBvcys9ZyxlLnBvcy1BfWcrK31lLnBvcys9cn1yZXR1cm4tMX1tYWtlU3RyZWFtKEEsZSl7Y29uc3QgdD10aGlzLmxleGVyO2xldCBpPXQuc3RyZWFtO3Quc2tpcFRvTmV4dExpbmUoKTtjb25zdCBhPWkucG9zLTE7bGV0IHM9QS5nZXQoIkxlbmd0aCIpO2lmKE51bWJlci5pc0ludGVnZXIocyl8fCh4KGBCYWQgbGVuZ3RoICIke3MmJnMudG9TdHJpbmcoKX0iIGluIHN0cmVhbS5gKSxzPTApLGkucG9zPWErcyx0Lm5leHRDaGFyKCksdGhpcy50cnlTaGlmdCgpJiZwQSh0aGlzLmJ1ZjIsImVuZHN0cmVhbSIpKXRoaXMuc2hpZnQoKTtlbHNle2lmKHM9dGhpcy4jdyhhKSxzPDApdGhyb3cgbmV3IFcoIk1pc3NpbmcgZW5kc3RyZWFtIGNvbW1hbmQuIik7dC5uZXh0Q2hhcigpLHRoaXMuc2hpZnQoKSx0aGlzLnNoaWZ0KCl9cmV0dXJuIHRoaXMuc2hpZnQoKSxpPWkubWFrZVN1YlN0cmVhbShhLHMsQSksZSYmKGk9ZS5jcmVhdGVTdHJlYW0oaSxzKSksaT10aGlzLmZpbHRlcihpLEEscyksaS5kaWN0PUEsaX1maWx0ZXIoQSxlLHQpe2xldCBpPWUuZ2V0KCJGIiwiRmlsdGVyIiksYT1lLmdldCgiRFAiLCJEZWNvZGVQYXJtcyIpO2lmKGkgaW5zdGFuY2VvZiBDQSlyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmVSgiL0RlY29kZVBhcm1zIHNob3VsZCBub3QgYmUgYW4gQXJyYXksIHdoZW4gL0ZpbHRlciBpcyBhIE5hbWUuIiksdGhpcy5tYWtlRmlsdGVyKEEsaS5uYW1lLHQsYSk7bGV0IHM9dDtpZihBcnJheS5pc0FycmF5KGkpKXtjb25zdCBlPWksdD1hO2ZvcihsZXQgbj0wLHI9ZS5sZW5ndGg7bjxyOysrbil7aWYoaT10aGlzLnhyZWYuZmV0Y2hJZlJlZihlW25dKSwhKGkgaW5zdGFuY2VvZiBDQSkpdGhyb3cgbmV3IFcoYEJhZCBmaWx0ZXIgbmFtZSAiJHtpfSJgKTthPW51bGwsQXJyYXkuaXNBcnJheSh0KSYmbiBpbiB0JiYoYT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0W25dKSksQT10aGlzLm1ha2VGaWx0ZXIoQSxpLm5hbWUscyxhKSxzPW51bGx9fXJldHVybiBBfW1ha2VGaWx0ZXIoQSxlLHQsaSl7aWYoMD09PXQpcmV0dXJuIFUoYEVtcHR5ICIke2V9IiBzdHJlYW0uYCksbmV3IEllO3RyeXtzd2l0Y2goZSl7Y2FzZSJGbCI6Y2FzZSJGbGF0ZURlY29kZSI6cmV0dXJuIGk/bmV3IG5pKG5ldyBWZShBLHQpLHQsaSk6bmV3IFZlKEEsdCk7Y2FzZSJMWlciOmNhc2UiTFpXRGVjb2RlIjpsZXQgZT0xO3JldHVybiBpPyhpLmhhcygiRWFybHlDaGFuZ2UiKSYmKGU9aS5nZXQoIkVhcmx5Q2hhbmdlIikpLG5ldyBuaShuZXcgc2koQSx0LGUpLHQsaSkpOm5ldyBzaShBLHQsZSk7Y2FzZSJEQ1QiOmNhc2UiRENURGVjb2RlIjpyZXR1cm4gbmV3IHp0KEEsdCxpKTtjYXNlIkpQWCI6Y2FzZSJKUFhEZWNvZGUiOnJldHVybiBuZXcgYWkoQSx0LGkpO2Nhc2UiQTg1IjpjYXNlIkFTQ0lJODVEZWNvZGUiOnJldHVybiBuZXcgVWUoQSx0KTtjYXNlIkFIeCI6Y2FzZSJBU0NJSUhleERlY29kZSI6cmV0dXJuIG5ldyBNZShBLHQpO2Nhc2UiQ0NGIjpjYXNlIkNDSVRURmF4RGVjb2RlIjpyZXR1cm4gbmV3IFBlKEEsdCxpKTtjYXNlIlJMIjpjYXNlIlJ1bkxlbmd0aERlY29kZSI6cmV0dXJuIG5ldyByaShBLHQpO2Nhc2UiSkJJRzJEZWNvZGUiOnJldHVybiBuZXcgR3QoQSx0LGkpfXJldHVybiBVKGBGaWx0ZXIgIiR7ZX0iIGlzIG5vdCBzdXBwb3J0ZWQuYCksQX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTtyZXR1cm4gVShgSW52YWxpZCBzdHJlYW06ICIke0F9ImApLG5ldyBJZX19fWNvbnN0IG9pPVsxLDAsMCwwLDAsMCwwLDAsMCwxLDEsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDIsMCwwLDIsMiwwLDAsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXTtmdW5jdGlvbiBJaShBKXtyZXR1cm4gQT49NDgmJkE8PTU3PzE1JkE6QT49NjUmJkE8PTcwfHxBPj05NyYmQTw9MTAyPzkrKDE1JkEpOi0xfWNsYXNzIGNpe2NvbnN0cnVjdG9yKEEsZT1udWxsKXt0aGlzLnN0cmVhbT1BLHRoaXMubmV4dENoYXIoKSx0aGlzLnN0ckJ1Zj1bXSx0aGlzLmtub3duQ29tbWFuZHM9ZSx0aGlzLl9oZXhTdHJpbmdOdW1XYXJuPTAsdGhpcy5iZWdpbklubGluZUltYWdlUG9zPS0xfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfXBlZWtDaGFyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLnBlZWtCeXRlKCl9Z2V0TnVtYmVyKCl7bGV0IEE9dGhpcy5jdXJyZW50Q2hhcixlPSExLHQ9MCxpPTE7aWYoNDU9PT1BPyhpPS0xLEE9dGhpcy5uZXh0Q2hhcigpLDQ1PT09QSYmKEE9dGhpcy5uZXh0Q2hhcigpKSk6NDM9PT1BJiYoQT10aGlzLm5leHRDaGFyKCkpLDEwPT09QXx8MTM9PT1BKWRve0E9dGhpcy5uZXh0Q2hhcigpfXdoaWxlKDEwPT09QXx8MTM9PT1BKTtpZig0Nj09PUEmJih0PTEwLEE9dGhpcy5uZXh0Q2hhcigpKSxBPDQ4fHxBPjU3KXtjb25zdCBlPWBJbnZhbGlkIG51bWJlcjogJHtTdHJpbmcuZnJvbUNoYXJDb2RlKEEpfSAoY2hhckNvZGUgJHtBfSlgO2lmKFlBKEEpfHwtMT09PUEpcmV0dXJuIHgoYExleGVyLmdldE51bWJlciAtICIke2V9Ii5gKSwwO3Rocm93IG5ldyBXKGUpfWxldCBhPUEtNDgscz0wLG49MTtmb3IoOyhBPXRoaXMubmV4dENoYXIoKSk+PTA7KWlmKEE+PTQ4JiZBPD01Nyl7Y29uc3QgaT1BLTQ4O2U/cz0xMCpzK2k6KDAhPT10JiYodCo9MTApLGE9MTAqYStpKX1lbHNlIGlmKDQ2PT09QSl7aWYoMCE9PXQpYnJlYWs7dD0xfWVsc2UgaWYoNDU9PT1BKVUoIkJhZGx5IGZvcm1hdHRlZCBudW1iZXI6IG1pbnVzIHNpZ24gaW4gdGhlIG1pZGRsZSIpO2Vsc2V7aWYoNjkhPT1BJiYxMDEhPT1BKWJyZWFrO2lmKEE9dGhpcy5wZWVrQ2hhcigpLDQzPT09QXx8NDU9PT1BKW49NDU9PT1BPy0xOjEsdGhpcy5uZXh0Q2hhcigpO2Vsc2UgaWYoQTw0OHx8QT41NylicmVhaztlPSEwfXJldHVybiAwIT09dCYmKGEvPXQpLGUmJihhKj0xMCoqKG4qcykpLGkqYX1nZXRTdHJpbmcoKXtsZXQgQT0xLGU9ITE7Y29uc3QgdD10aGlzLnN0ckJ1Zjt0Lmxlbmd0aD0wO2xldCBpPXRoaXMubmV4dENoYXIoKTtmb3IoOzspe2xldCBhPSExO3N3aXRjaCgwfGkpe2Nhc2UtMTpVKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIiksZT0hMDticmVhaztjYXNlIDQwOisrQSx0LnB1c2goIigiKTticmVhaztjYXNlIDQxOjA9PS0tQT8odGhpcy5uZXh0Q2hhcigpLGU9ITApOnQucHVzaCgiKSIpO2JyZWFrO2Nhc2UgOTI6c3dpdGNoKGk9dGhpcy5uZXh0Q2hhcigpLGkpe2Nhc2UtMTpVKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIiksZT0hMDticmVhaztjYXNlIDExMDp0LnB1c2goIlxuIik7YnJlYWs7Y2FzZSAxMTQ6dC5wdXNoKCJcciIpO2JyZWFrO2Nhc2UgMTE2OnQucHVzaCgiXHQiKTticmVhaztjYXNlIDk4OnQucHVzaCgiXGIiKTticmVhaztjYXNlIDEwMjp0LnB1c2goIlxmIik7YnJlYWs7Y2FzZSA5MjpjYXNlIDQwOmNhc2UgNDE6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpO2JyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpsZXQgQT0xNSZpO2k9dGhpcy5uZXh0Q2hhcigpLGE9ITAsaT49NDgmJmk8PTU1JiYoQT0oQTw8MykrKDE1JmkpLGk9dGhpcy5uZXh0Q2hhcigpLGk+PTQ4JiZpPD01NSYmKGE9ITEsQT0oQTw8MykrKDE1JmkpKSksdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoQSkpO2JyZWFrO2Nhc2UgMTM6MTA9PT10aGlzLnBlZWtDaGFyKCkmJnRoaXMubmV4dENoYXIoKTticmVhaztjYXNlIDEwOmJyZWFrO2RlZmF1bHQ6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpfWJyZWFrO2RlZmF1bHQ6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpfWlmKGUpYnJlYWs7YXx8KGk9dGhpcy5uZXh0Q2hhcigpKX1yZXR1cm4gdC5qb2luKCIiKX1nZXROYW1lKCl7bGV0IEEsZTtjb25zdCB0PXRoaXMuc3RyQnVmO2Zvcih0Lmxlbmd0aD0wOyhBPXRoaXMubmV4dENoYXIoKSk+PTAmJiFvaVtBXTspaWYoMzU9PT1BKXtpZihBPXRoaXMubmV4dENoYXIoKSxvaVtBXSl7VSgiTGV4ZXJfZ2V0TmFtZTogTlVNQkVSIFNJR04gKCMpIHNob3VsZCBiZSBmb2xsb3dlZCBieSBhIGhleGFkZWNpbWFsIG51bWJlci4iKSx0LnB1c2goIiMiKTticmVha31jb25zdCBpPUlpKEEpO2lmKC0xIT09aSl7ZT1BLEE9dGhpcy5uZXh0Q2hhcigpO2NvbnN0IGE9SWkoQSk7aWYoLTE9PT1hKXtpZihVKGBMZXhlcl9nZXROYW1lOiBJbGxlZ2FsIGRpZ2l0ICgke1N0cmluZy5mcm9tQ2hhckNvZGUoQSl9KSBpbiBoZXhhZGVjaW1hbCBudW1iZXIuYCksdC5wdXNoKCIjIixTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSxvaVtBXSlicmVhazt0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShBKSk7Y29udGludWV9dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaTw8NHxhKSl9ZWxzZSB0LnB1c2goIiMiLFN0cmluZy5mcm9tQ2hhckNvZGUoQSkpfWVsc2UgdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoQSkpO3JldHVybiB0Lmxlbmd0aD4xMjcmJlUoYE5hbWUgdG9rZW4gaXMgbG9uZ2VyIHRoYW4gYWxsb3dlZCBieSB0aGUgc3BlYzogJHt0Lmxlbmd0aH1gKSxDQS5nZXQodC5qb2luKCIiKSl9X2hleFN0cmluZ1dhcm4oQSl7NSE9dGhpcy5faGV4U3RyaW5nTnVtV2FybisrP3RoaXMuX2hleFN0cmluZ051bVdhcm4+NXx8VShgZ2V0SGV4U3RyaW5nIC0gaWdub3JpbmcgaW52YWxpZCBjaGFyYWN0ZXI6ICR7QX1gKTpVKCJnZXRIZXhTdHJpbmcgLSBpZ25vcmluZyBhZGRpdGlvbmFsIGludmFsaWQgY2hhcmFjdGVycy4iKX1nZXRIZXhTdHJpbmcoKXtjb25zdCBBPXRoaXMuc3RyQnVmO0EubGVuZ3RoPTA7bGV0IGU9dGhpcy5jdXJyZW50Q2hhcix0PS0xLGk9LTE7Zm9yKHRoaXMuX2hleFN0cmluZ051bVdhcm49MDs7KXtpZihlPDApe1UoIlVudGVybWluYXRlZCBoZXggc3RyaW5nIik7YnJlYWt9aWYoNjI9PT1lKXt0aGlzLm5leHRDaGFyKCk7YnJlYWt9MSE9PW9pW2VdPyhpPUlpKGUpLC0xPT09aT90aGlzLl9oZXhTdHJpbmdXYXJuKGUpOi0xPT09dD90PWk6KEEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHQ8PDR8aSkpLHQ9LTEpLGU9dGhpcy5uZXh0Q2hhcigpKTplPXRoaXMubmV4dENoYXIoKX1yZXR1cm4tMSE9PXQmJkEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHQ8PDQpKSxBLmpvaW4oIiIpfWdldE9iaigpe2xldCBBPSExLGU9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKGU8MClyZXR1cm4gb0E7aWYoQSkxMCE9PWUmJjEzIT09ZXx8KEE9ITEpO2Vsc2UgaWYoMzc9PT1lKUE9ITA7ZWxzZSBpZigxIT09b2lbZV0pYnJlYWs7ZT10aGlzLm5leHRDaGFyKCl9c3dpdGNoKDB8ZSl7Y2FzZSA0ODpjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpjYXNlIDQzOmNhc2UgNDU6Y2FzZSA0NjpyZXR1cm4gdGhpcy5nZXROdW1iZXIoKTtjYXNlIDQwOnJldHVybiB0aGlzLmdldFN0cmluZygpO2Nhc2UgNDc6cmV0dXJuIHRoaXMuZ2V0TmFtZSgpO2Nhc2UgOTE6cmV0dXJuIHRoaXMubmV4dENoYXIoKSxCQS5nZXQoIlsiKTtjYXNlIDkzOnJldHVybiB0aGlzLm5leHRDaGFyKCksQkEuZ2V0KCJdIik7Y2FzZSA2MDpyZXR1cm4gZT10aGlzLm5leHRDaGFyKCksNjA9PT1lPyh0aGlzLm5leHRDaGFyKCksQkEuZ2V0KCI8PCIpKTp0aGlzLmdldEhleFN0cmluZygpO2Nhc2UgNjI6cmV0dXJuIGU9dGhpcy5uZXh0Q2hhcigpLDYyPT09ZT8odGhpcy5uZXh0Q2hhcigpLEJBLmdldCgiPj4iKSk6QkEuZ2V0KCI+Iik7Y2FzZSAxMjM6cmV0dXJuIHRoaXMubmV4dENoYXIoKSxCQS5nZXQoInsiKTtjYXNlIDEyNTpyZXR1cm4gdGhpcy5uZXh0Q2hhcigpLEJBLmdldCgifSIpO2Nhc2UgNDE6dGhyb3cgdGhpcy5uZXh0Q2hhcigpLG5ldyBXKGBJbGxlZ2FsIGNoYXJhY3RlcjogJHtlfWApfWxldCB0PVN0cmluZy5mcm9tQ2hhckNvZGUoZSk7aWYoZTwzMnx8ZT4xMjcpe2NvbnN0IEE9dGhpcy5wZWVrQ2hhcigpO2lmKEE+PTMyJiZBPD0xMjcpcmV0dXJuIHRoaXMubmV4dENoYXIoKSxCQS5nZXQodCl9Y29uc3QgaT10aGlzLmtub3duQ29tbWFuZHM7bGV0IGE9dm9pZCAwIT09aT8uW3RdO2Zvcig7KGU9dGhpcy5uZXh0Q2hhcigpKT49MCYmIW9pW2VdOyl7Y29uc3QgQT10K1N0cmluZy5mcm9tQ2hhckNvZGUoZSk7aWYoYSYmdm9pZCAwPT09aVtBXSlicmVhaztpZigxMjg9PT10Lmxlbmd0aCl0aHJvdyBuZXcgVyhgQ29tbWFuZCB0b2tlbiB0b28gbG9uZzogJHt0Lmxlbmd0aH1gKTt0PUEsYT12b2lkIDAhPT1pPy5bdF19cmV0dXJuInRydWUiPT09dHx8ImZhbHNlIiE9PXQmJigibnVsbCI9PT10P251bGw6KCJCSSI9PT10JiYodGhpcy5iZWdpbklubGluZUltYWdlUG9zPXRoaXMuc3RyZWFtLnBvcyksQkEuZ2V0KHQpKSl9c2tpcFRvTmV4dExpbmUoKXtsZXQgQT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7QT49MDspe2lmKDEzPT09QSl7QT10aGlzLm5leHRDaGFyKCksMTA9PT1BJiZ0aGlzLm5leHRDaGFyKCk7YnJlYWt9aWYoMTA9PT1BKXt0aGlzLm5leHRDaGFyKCk7YnJlYWt9QT10aGlzLm5leHRDaGFyKCl9fX1jbGFzcyBoaXtzdGF0aWMgY3JlYXRlKEEpe2Z1bmN0aW9uIGUoQSxlLHQ9ITEpe2NvbnN0IGk9QS5nZXQoZSk7aWYoTnVtYmVyLmlzSW50ZWdlcihpKSYmKHQ/aT49MDppPjApKXJldHVybiBpO3Rocm93IG5ldyBFcnJvcihgVGhlICIke2V9IiBwYXJhbWV0ZXIgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLmApfWNvbnN0IHQ9bmV3IGdpKHtsZXhlcjpuZXcgY2koQSkseHJlZjpudWxsfSksaT10LmdldE9iaigpLGE9dC5nZXRPYmooKSxzPXQuZ2V0T2JqKCksbj10LmdldE9iaigpO2xldCByLGc7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGkpJiZOdW1iZXIuaXNJbnRlZ2VyKGEpJiZwQShzLCJvYmoiKSYmbiBpbnN0YW5jZW9mIFFBJiYibnVtYmVyIj09dHlwZW9mKHI9bi5nZXQoIkxpbmVhcml6ZWQiKSkmJnI+MCkpcmV0dXJuIG51bGw7aWYoKGc9ZShuLCJMIikpIT09QS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdUaGUgIkwiIHBhcmFtZXRlciBpbiB0aGUgbGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGRvZXMgbm90IGVxdWFsIHRoZSBzdHJlYW0gbGVuZ3RoLicpO3JldHVybntsZW5ndGg6ZyxoaW50czpmdW5jdGlvbihBKXtjb25zdCBlPUEuZ2V0KCJIIik7bGV0IHQ7aWYoQXJyYXkuaXNBcnJheShlKSYmKDI9PT0odD1lLmxlbmd0aCl8fDQ9PT10KSl7Zm9yKGxldCBBPTA7QTx0O0ErKyl7Y29uc3QgdD1lW0FdO2lmKCEoTnVtYmVyLmlzSW50ZWdlcih0KSYmdD4wKSl0aHJvdyBuZXcgRXJyb3IoYEhpbnQgKCR7QX0pIGluIHRoZSBsaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgaXMgaW52YWxpZC5gKX1yZXR1cm4gZX10aHJvdyBuZXcgRXJyb3IoIkhpbnQgYXJyYXkgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLiIpfShuKSxvYmplY3ROdW1iZXJGaXJzdDplKG4sIk8iKSxlbmRGaXJzdDplKG4sIkUiKSxudW1QYWdlczplKG4sIk4iKSxtYWluWFJlZkVudHJpZXNPZmZzZXQ6ZShuLCJUIikscGFnZUZpcnN0Om4uaGFzKCJQIik/ZShuLCJQIiwhMCk6MH19fWNvbnN0IENpPVsiQWRvYmUtR0IxLVVDUzIiLCJBZG9iZS1DTlMxLVVDUzIiLCJBZG9iZS1KYXBhbjEtVUNTMiIsIkFkb2JlLUtvcmVhMS1VQ1MyIiwiNzgtRVVDLUgiLCI3OC1FVUMtViIsIjc4LUgiLCI3OC1SS1NKLUgiLCI3OC1SS1NKLVYiLCI3OC1WIiwiNzhtcy1SS1NKLUgiLCI3OG1zLVJLU0otViIsIjgzcHYtUktTSi1IIiwiOTBtcy1SS1NKLUgiLCI5MG1zLVJLU0otViIsIjkwbXNwLVJLU0otSCIsIjkwbXNwLVJLU0otViIsIjkwcHYtUktTSi1IIiwiOTBwdi1SS1NKLVYiLCJBZGQtSCIsIkFkZC1SS1NKLUgiLCJBZGQtUktTSi1WIiwiQWRkLVYiLCJBZG9iZS1DTlMxLTAiLCJBZG9iZS1DTlMxLTEiLCJBZG9iZS1DTlMxLTIiLCJBZG9iZS1DTlMxLTMiLCJBZG9iZS1DTlMxLTQiLCJBZG9iZS1DTlMxLTUiLCJBZG9iZS1DTlMxLTYiLCJBZG9iZS1HQjEtMCIsIkFkb2JlLUdCMS0xIiwiQWRvYmUtR0IxLTIiLCJBZG9iZS1HQjEtMyIsIkFkb2JlLUdCMS00IiwiQWRvYmUtR0IxLTUiLCJBZG9iZS1KYXBhbjEtMCIsIkFkb2JlLUphcGFuMS0xIiwiQWRvYmUtSmFwYW4xLTIiLCJBZG9iZS1KYXBhbjEtMyIsIkFkb2JlLUphcGFuMS00IiwiQWRvYmUtSmFwYW4xLTUiLCJBZG9iZS1KYXBhbjEtNiIsIkFkb2JlLUtvcmVhMS0wIiwiQWRvYmUtS29yZWExLTEiLCJBZG9iZS1Lb3JlYTEtMiIsIkI1LUgiLCJCNS1WIiwiQjVwYy1IIiwiQjVwYy1WIiwiQ05TLUVVQy1IIiwiQ05TLUVVQy1WIiwiQ05TMS1IIiwiQ05TMS1WIiwiQ05TMi1IIiwiQ05TMi1WIiwiRVRISy1CNS1IIiwiRVRISy1CNS1WIiwiRVRlbi1CNS1IIiwiRVRlbi1CNS1WIiwiRVRlbm1zLUI1LUgiLCJFVGVubXMtQjUtViIsIkVVQy1IIiwiRVVDLVYiLCJFeHQtSCIsIkV4dC1SS1NKLUgiLCJFeHQtUktTSi1WIiwiRXh0LVYiLCJHQi1FVUMtSCIsIkdCLUVVQy1WIiwiR0ItSCIsIkdCLVYiLCJHQkstRVVDLUgiLCJHQkstRVVDLVYiLCJHQksySy1IIiwiR0JLMkstViIsIkdCS3AtRVVDLUgiLCJHQktwLUVVQy1WIiwiR0JULUVVQy1IIiwiR0JULUVVQy1WIiwiR0JULUgiLCJHQlQtViIsIkdCVHBjLUVVQy1IIiwiR0JUcGMtRVVDLVYiLCJHQnBjLUVVQy1IIiwiR0JwYy1FVUMtViIsIkgiLCJIS2RsYS1CNS1IIiwiSEtkbGEtQjUtViIsIkhLZGxiLUI1LUgiLCJIS2RsYi1CNS1WIiwiSEtnY2NzLUI1LUgiLCJIS2djY3MtQjUtViIsIkhLbTMxNC1CNS1IIiwiSEttMzE0LUI1LVYiLCJIS200NzEtQjUtSCIsIkhLbTQ3MS1CNS1WIiwiSEtzY3MtQjUtSCIsIkhLc2NzLUI1LVYiLCJIYW5rYWt1IiwiSGlyYWdhbmEiLCJLU0MtRVVDLUgiLCJLU0MtRVVDLVYiLCJLU0MtSCIsIktTQy1Kb2hhYi1IIiwiS1NDLUpvaGFiLVYiLCJLU0MtViIsIktTQ21zLVVIQy1IIiwiS1NDbXMtVUhDLUhXLUgiLCJLU0Ntcy1VSEMtSFctViIsIktTQ21zLVVIQy1WIiwiS1NDcGMtRVVDLUgiLCJLU0NwYy1FVUMtViIsIkthdGFrYW5hIiwiTldQLUgiLCJOV1AtViIsIlJLU0otSCIsIlJLU0otViIsIlJvbWFuIiwiVW5pQ05TLVVDUzItSCIsIlVuaUNOUy1VQ1MyLVYiLCJVbmlDTlMtVVRGMTYtSCIsIlVuaUNOUy1VVEYxNi1WIiwiVW5pQ05TLVVURjMyLUgiLCJVbmlDTlMtVVRGMzItViIsIlVuaUNOUy1VVEY4LUgiLCJVbmlDTlMtVVRGOC1WIiwiVW5pR0ItVUNTMi1IIiwiVW5pR0ItVUNTMi1WIiwiVW5pR0ItVVRGMTYtSCIsIlVuaUdCLVVURjE2LVYiLCJVbmlHQi1VVEYzMi1IIiwiVW5pR0ItVVRGMzItViIsIlVuaUdCLVVURjgtSCIsIlVuaUdCLVVURjgtViIsIlVuaUpJUy1VQ1MyLUgiLCJVbmlKSVMtVUNTMi1IVy1IIiwiVW5pSklTLVVDUzItSFctViIsIlVuaUpJUy1VQ1MyLVYiLCJVbmlKSVMtVVRGMTYtSCIsIlVuaUpJUy1VVEYxNi1WIiwiVW5pSklTLVVURjMyLUgiLCJVbmlKSVMtVVRGMzItViIsIlVuaUpJUy1VVEY4LUgiLCJVbmlKSVMtVVRGOC1WIiwiVW5pSklTMjAwNC1VVEYxNi1IIiwiVW5pSklTMjAwNC1VVEYxNi1WIiwiVW5pSklTMjAwNC1VVEYzMi1IIiwiVW5pSklTMjAwNC1VVEYzMi1WIiwiVW5pSklTMjAwNC1VVEY4LUgiLCJVbmlKSVMyMDA0LVVURjgtViIsIlVuaUpJU1Byby1VQ1MyLUhXLVYiLCJVbmlKSVNQcm8tVUNTMi1WIiwiVW5pSklTUHJvLVVURjgtViIsIlVuaUpJU1gwMjEzLVVURjMyLUgiLCJVbmlKSVNYMDIxMy1VVEYzMi1WIiwiVW5pSklTWDAyMTMyMDA0LVVURjMyLUgiLCJVbmlKSVNYMDIxMzIwMDQtVVRGMzItViIsIlVuaUtTLVVDUzItSCIsIlVuaUtTLVVDUzItViIsIlVuaUtTLVVURjE2LUgiLCJVbmlLUy1VVEYxNi1WIiwiVW5pS1MtVVRGMzItSCIsIlVuaUtTLVVURjMyLVYiLCJVbmlLUy1VVEY4LUgiLCJVbmlLUy1VVEY4LVYiLCJWIiwiV1AtU3ltYm9sIl0sQmk9MioqMjQtMTtjbGFzcyBsaXtjb25zdHJ1Y3RvcihBPSExKXt0aGlzLmNvZGVzcGFjZVJhbmdlcz1bW10sW10sW10sW11dLHRoaXMubnVtQ29kZXNwYWNlUmFuZ2VzPTAsdGhpcy5fbWFwPVtdLHRoaXMubmFtZT0iIix0aGlzLnZlcnRpY2FsPSExLHRoaXMudXNlQ01hcD1udWxsLHRoaXMuYnVpbHRJbkNNYXA9QX1hZGRDb2Rlc3BhY2VSYW5nZShBLGUsdCl7dGhpcy5jb2Rlc3BhY2VSYW5nZXNbQS0xXS5wdXNoKGUsdCksdGhpcy5udW1Db2Rlc3BhY2VSYW5nZXMrK31tYXBDaWRSYW5nZShBLGUsdCl7aWYoZS1BPkJpKXRocm93IG5ldyBFcnJvcigibWFwQ2lkUmFuZ2UgLSBpZ25vcmluZyBkYXRhIGFib3ZlIE1BWF9NQVBfUkFOR0UuIik7Zm9yKDtBPD1lOyl0aGlzLl9tYXBbQSsrXT10Kyt9bWFwQmZSYW5nZShBLGUsdCl7aWYoZS1BPkJpKXRocm93IG5ldyBFcnJvcigibWFwQmZSYW5nZSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtjb25zdCBpPXQubGVuZ3RoLTE7Zm9yKDtBPD1lOyl7dGhpcy5fbWFwW0ErK109dDtjb25zdCBlPXQuY2hhckNvZGVBdChpKSsxO3Q9ZT4yNTU/dC5zdWJzdHJpbmcoMCxpLTEpK1N0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZUF0KGktMSkrMSkrIlwwIjp0LnN1YnN0cmluZygwLGkpK1N0cmluZy5mcm9tQ2hhckNvZGUoZSl9fW1hcEJmUmFuZ2VUb0FycmF5KEEsZSx0KXtpZihlLUE+QmkpdGhyb3cgbmV3IEVycm9yKCJtYXBCZlJhbmdlVG9BcnJheSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtjb25zdCBpPXQubGVuZ3RoO2xldCBhPTA7Zm9yKDtBPD1lJiZhPGk7KXRoaXMuX21hcFtBXT10W2ErK10sKytBfW1hcE9uZShBLGUpe3RoaXMuX21hcFtBXT1lfWxvb2t1cChBKXtyZXR1cm4gdGhpcy5fbWFwW0FdfWNvbnRhaW5zKEEpe3JldHVybiB2b2lkIDAhPT10aGlzLl9tYXBbQV19Zm9yRWFjaChBKXtjb25zdCBlPXRoaXMuX21hcCx0PWUubGVuZ3RoO2lmKHQ8PTY1NTM2KWZvcihsZXQgaT0wO2k8dDtpKyspdm9pZCAwIT09ZVtpXSYmQShpLGVbaV0pO2Vsc2UgZm9yKGNvbnN0IHQgaW4gZSlBKHQsZVt0XSl9Y2hhckNvZGVPZihBKXtjb25zdCBlPXRoaXMuX21hcDtpZihlLmxlbmd0aDw9NjU1MzYpcmV0dXJuIGUuaW5kZXhPZihBKTtmb3IoY29uc3QgdCBpbiBlKWlmKGVbdF09PT1BKXJldHVybiAwfHQ7cmV0dXJuLTF9Z2V0TWFwKCl7cmV0dXJuIHRoaXMuX21hcH1yZWFkQ2hhckNvZGUoQSxlLHQpe2xldCBpPTA7Y29uc3QgYT10aGlzLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IHM9MCxuPWEubGVuZ3RoO3M8bjtzKyspe2k9KGk8PDh8QS5jaGFyQ29kZUF0KGUrcykpPj4+MDtjb25zdCBuPWFbc107Zm9yKGxldCBBPTAsZT1uLmxlbmd0aDtBPGU7KXtjb25zdCBlPW5bQSsrXSxhPW5bQSsrXTtpZihpPj1lJiZpPD1hKXJldHVybiB0LmNoYXJjb2RlPWksdm9pZCh0Lmxlbmd0aD1zKzEpfX10LmNoYXJjb2RlPTAsdC5sZW5ndGg9MX1nZXRDaGFyQ29kZUxlbmd0aChBKXtjb25zdCBlPXRoaXMuY29kZXNwYWNlUmFuZ2VzO2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1lW3RdO2ZvcihsZXQgZT0wLGE9aS5sZW5ndGg7ZTxhOyl7Y29uc3QgYT1pW2UrK10scz1pW2UrK107aWYoQT49YSYmQTw9cylyZXR1cm4gdCsxfX1yZXR1cm4gMX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX21hcC5sZW5ndGh9Z2V0IGlzSWRlbnRpdHlDTWFwKCl7aWYoIklkZW50aXR5LUgiIT09dGhpcy5uYW1lJiYiSWRlbnRpdHktViIhPT10aGlzLm5hbWUpcmV0dXJuITE7aWYoNjU1MzYhPT10aGlzLl9tYXAubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgQT0wO0E8NjU1MzY7QSsrKWlmKHRoaXMuX21hcFtBXSE9PUEpcmV0dXJuITE7cmV0dXJuITB9fWNsYXNzIFFpIGV4dGVuZHMgbGl7Y29uc3RydWN0b3IoQSxlKXtzdXBlcigpLHRoaXMudmVydGljYWw9QSx0aGlzLmFkZENvZGVzcGFjZVJhbmdlKGUsMCw2NTUzNSl9bWFwQ2lkUmFuZ2UoQSxlLHQpe00oInNob3VsZCBub3QgY2FsbCBtYXBDaWRSYW5nZSIpfW1hcEJmUmFuZ2UoQSxlLHQpe00oInNob3VsZCBub3QgY2FsbCBtYXBCZlJhbmdlIil9bWFwQmZSYW5nZVRvQXJyYXkoQSxlLHQpe00oInNob3VsZCBub3QgY2FsbCBtYXBCZlJhbmdlVG9BcnJheSIpfW1hcE9uZShBLGUpe00oInNob3VsZCBub3QgY2FsbCBtYXBDaWRPbmUiKX1sb29rdXAoQSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoQSkmJkE8PTY1NTM1P0E6dm9pZCAwfWNvbnRhaW5zKEEpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEEpJiZBPD02NTUzNX1mb3JFYWNoKEEpe2ZvcihsZXQgZT0wO2U8PTY1NTM1O2UrKylBKGUsZSl9Y2hhckNvZGVPZihBKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihBKSYmQTw9NjU1MzU/QTotMX1nZXRNYXAoKXtjb25zdCBBPW5ldyBBcnJheSg2NTUzNik7Zm9yKGxldCBlPTA7ZTw9NjU1MzU7ZSsrKUFbZV09ZTtyZXR1cm4gQX1nZXQgbGVuZ3RoKCl7cmV0dXJuIDY1NTM2fWdldCBpc0lkZW50aXR5Q01hcCgpe00oInNob3VsZCBub3QgYWNjZXNzIC5pc0lkZW50aXR5Q01hcCIpfX1mdW5jdGlvbiBFaShBKXtsZXQgZT0wO2ZvcihsZXQgdD0wO3Q8QS5sZW5ndGg7dCsrKWU9ZTw8OHxBLmNoYXJDb2RlQXQodCk7cmV0dXJuIGU+Pj4wfWZ1bmN0aW9uIHVpKEEpe2lmKCJzdHJpbmciIT10eXBlb2YgQSl0aHJvdyBuZXcgVygiTWFsZm9ybWVkIENNYXA6IGV4cGVjdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBkaShBKXtpZighTnVtYmVyLmlzSW50ZWdlcihBKSl0aHJvdyBuZXcgVygiTWFsZm9ybWVkIENNYXA6IGV4cGVjdGVkIGludC4iKX1mdW5jdGlvbiBmaShBLGUpe2Zvcig7Oyl7bGV0IHQ9ZS5nZXRPYmooKTtpZih0PT09b0EpYnJlYWs7aWYocEEodCwiZW5kYmZjaGFyIikpcmV0dXJuO3VpKHQpO2NvbnN0IGk9RWkodCk7dD1lLmdldE9iaigpLHVpKHQpO2NvbnN0IGE9dDtBLm1hcE9uZShpLGEpfX1mdW5jdGlvbiBwaShBLGUpe2Zvcig7Oyl7bGV0IHQ9ZS5nZXRPYmooKTtpZih0PT09b0EpYnJlYWs7aWYocEEodCwiZW5kYmZyYW5nZSIpKXJldHVybjt1aSh0KTtjb25zdCBpPUVpKHQpO3Q9ZS5nZXRPYmooKSx1aSh0KTtjb25zdCBhPUVpKHQpO2lmKHQ9ZS5nZXRPYmooKSxOdW1iZXIuaXNJbnRlZ2VyKHQpfHwic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9TnVtYmVyLmlzSW50ZWdlcih0KT9TdHJpbmcuZnJvbUNoYXJDb2RlKHQpOnQ7QS5tYXBCZlJhbmdlKGksYSxlKX1lbHNle2lmKCFwQSh0LCJbIikpYnJlYWs7e3Q9ZS5nZXRPYmooKTtjb25zdCBzPVtdO2Zvcig7IXBBKHQsIl0iKSYmdCE9PW9BOylzLnB1c2godCksdD1lLmdldE9iaigpO0EubWFwQmZSYW5nZVRvQXJyYXkoaSxhLHMpfX19dGhyb3cgbmV3IFcoIkludmFsaWQgYmYgcmFuZ2UuIil9ZnVuY3Rpb24gbWkoQSxlKXtmb3IoOzspe2xldCB0PWUuZ2V0T2JqKCk7aWYodD09PW9BKWJyZWFrO2lmKHBBKHQsImVuZGNpZGNoYXIiKSlyZXR1cm47dWkodCk7Y29uc3QgaT1FaSh0KTt0PWUuZ2V0T2JqKCksZGkodCk7Y29uc3QgYT10O0EubWFwT25lKGksYSl9fWZ1bmN0aW9uIHlpKEEsZSl7Zm9yKDs7KXtsZXQgdD1lLmdldE9iaigpO2lmKHQ9PT1vQSlicmVhaztpZihwQSh0LCJlbmRjaWRyYW5nZSIpKXJldHVybjt1aSh0KTtjb25zdCBpPUVpKHQpO3Q9ZS5nZXRPYmooKSx1aSh0KTtjb25zdCBhPUVpKHQpO3Q9ZS5nZXRPYmooKSxkaSh0KTtjb25zdCBzPXQ7QS5tYXBDaWRSYW5nZShpLGEscyl9fWZ1bmN0aW9uIHdpKEEsZSl7Zm9yKDs7KXtsZXQgdD1lLmdldE9iaigpO2lmKHQ9PT1vQSlicmVhaztpZihwQSh0LCJlbmRjb2Rlc3BhY2VyYW5nZSIpKXJldHVybjtpZigic3RyaW5nIiE9dHlwZW9mIHQpYnJlYWs7Y29uc3QgaT1FaSh0KTtpZih0PWUuZ2V0T2JqKCksInN0cmluZyIhPXR5cGVvZiB0KWJyZWFrO2NvbnN0IGE9RWkodCk7QS5hZGRDb2Rlc3BhY2VSYW5nZSh0Lmxlbmd0aCxpLGEpfXRocm93IG5ldyBXKCJJbnZhbGlkIGNvZGVzcGFjZSByYW5nZS4iKX1mdW5jdGlvbiBEaShBLGUpe2NvbnN0IHQ9ZS5nZXRPYmooKTtOdW1iZXIuaXNJbnRlZ2VyKHQpJiYoQS52ZXJ0aWNhbD0hIXQpfWZ1bmN0aW9uIGJpKEEsZSl7Y29uc3QgdD1lLmdldE9iaigpO3QgaW5zdGFuY2VvZiBDQSYmKEEubmFtZT10Lm5hbWUpfWFzeW5jIGZ1bmN0aW9uIGtpKEEsZSx0LGkpe2xldCBhLHM7QTpmb3IoOzspdHJ5e2NvbnN0IHQ9ZS5nZXRPYmooKTtpZih0PT09b0EpYnJlYWs7aWYodCBpbnN0YW5jZW9mIENBKSJXTW9kZSI9PT10Lm5hbWU/RGkoQSxlKToiQ01hcE5hbWUiPT09dC5uYW1lJiZiaShBLGUpLGE9dDtlbHNlIGlmKHQgaW5zdGFuY2VvZiBCQSlzd2l0Y2godC5jbWQpe2Nhc2UiZW5kY21hcCI6YnJlYWsgQTtjYXNlInVzZWNtYXAiOmEgaW5zdGFuY2VvZiBDQSYmKHM9YS5uYW1lKTticmVhaztjYXNlImJlZ2luY29kZXNwYWNlcmFuZ2UiOndpKEEsZSk7YnJlYWs7Y2FzZSJiZWdpbmJmY2hhciI6ZmkoQSxlKTticmVhaztjYXNlImJlZ2luY2lkY2hhciI6bWkoQSxlKTticmVhaztjYXNlImJlZ2luYmZyYW5nZSI6cGkoQSxlKTticmVhaztjYXNlImJlZ2luY2lkcmFuZ2UiOnlpKEEsZSl9fWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIkludmFsaWQgY01hcCBkYXRhOiAiK0EpO2NvbnRpbnVlfXJldHVybiFpJiZzJiYoaT1zKSxpP0ZpKEEsdCxpKTpBfWFzeW5jIGZ1bmN0aW9uIEZpKEEsZSx0KXtpZihBLnVzZUNNYXA9YXdhaXQgU2kodCxlKSwwPT09QS5udW1Db2Rlc3BhY2VSYW5nZXMpe2NvbnN0IGU9QS51c2VDTWFwLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylBLmNvZGVzcGFjZVJhbmdlc1t0XT1lW3RdLnNsaWNlKCk7QS5udW1Db2Rlc3BhY2VSYW5nZXM9QS51c2VDTWFwLm51bUNvZGVzcGFjZVJhbmdlc31yZXR1cm4gQS51c2VDTWFwLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7QS5jb250YWlucyhlKXx8QS5tYXBPbmUoZSxBLnVzZUNNYXAubG9va3VwKGUpKX0pKSxBfWFzeW5jIGZ1bmN0aW9uIFNpKEEsZSl7aWYoIklkZW50aXR5LUgiPT09QSlyZXR1cm4gbmV3IFFpKCExLDIpO2lmKCJJZGVudGl0eS1WIj09PUEpcmV0dXJuIG5ldyBRaSghMCwyKTtpZighQ2kuaW5jbHVkZXMoQSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIENNYXAgbmFtZTogIitBKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkJ1aWx0LWluIENNYXAgcGFyYW1ldGVycyBhcmUgbm90IHByb3ZpZGVkLiIpO2NvbnN0e2NNYXBEYXRhOnQsY29tcHJlc3Npb25UeXBlOml9PWF3YWl0IGUoQSksYT1uZXcgbGkoITApO2lmKGk9PT1kLkJJTkFSWSlyZXR1cm4obmV3IFJlKS5wcm9jZXNzKHQsYSwoQT0+RmkoYSxlLEEpKSk7aWYoaT09PWQuTk9ORSl7Y29uc3QgQT1uZXcgY2kobmV3IGdlKHQpKTtyZXR1cm4ga2koYSxBLGUsbnVsbCl9dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENNYXAgImNvbXByZXNzaW9uVHlwZSIgdmFsdWU6ICR7aX1gKX1jbGFzcyBSaXtzdGF0aWMgYXN5bmMgY3JlYXRlKHtlbmNvZGluZzpBLGZldGNoQnVpbHRJbkNNYXA6ZSx1c2VDTWFwOnR9KXtpZihBIGluc3RhbmNlb2YgQ0EpcmV0dXJuIFNpKEEubmFtZSxlKTtpZihBIGluc3RhbmNlb2Ygd0Epe2NvbnN0IGk9YXdhaXQga2kobmV3IGxpLG5ldyBjaShBKSxlLHQpO3JldHVybiBpLmlzSWRlbnRpdHlDTWFwP1NpKGkubmFtZSxlKTppfXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgcmVxdWlyZWQuIil9fXQoMTc5NSk7Y29uc3QgR2k9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsInF1ZXN0aW9uZG93biIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIkFFIiwib3JkZmVtaW5pbmUiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsImFlIiwiZG90bGVzc2kiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCJvbmVzdXBlcmlvciIsImxvZ2ljYWxub3QiLCJtdSIsInRyYWRlbWFyayIsIkV0aCIsIm9uZWhhbGYiLCJwbHVzbWludXMiLCJUaG9ybiIsIm9uZXF1YXJ0ZXIiLCJkaXZpZGUiLCJicm9rZW5iYXIiLCJkZWdyZWUiLCJ0aG9ybiIsInRocmVlcXVhcnRlcnMiLCJ0d29zdXBlcmlvciIsInJlZ2lzdGVyZWQiLCJtaW51cyIsImV0aCIsIm11bHRpcGx5IiwidGhyZWVzdXBlcmlvciIsImNvcHlyaWdodCIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQWRpZXJlc2lzIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk9kaWVyZXNpcyIsIk9ncmF2ZSIsIk90aWxkZSIsIlNjYXJvbiIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiVWdyYXZlIiwiWWFjdXRlIiwiWWRpZXJlc2lzIiwiWmNhcm9uIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhZ3JhdmUiLCJhcmluZyIsImF0aWxkZSIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJlZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImlncmF2ZSIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib2dyYXZlIiwib3RpbGRlIiwic2Nhcm9uIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ1Z3JhdmUiLCJ5YWN1dGUiLCJ5ZGllcmVzaXMiLCJ6Y2Fyb24iXSxOaT1bIi5ub3RkZWYiLCJzcGFjZSIsImV4Y2xhbXNtYWxsIiwiSHVuZ2FydW1sYXV0c21hbGwiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwiYW1wZXJzYW5kc21hbGwiLCJBY3V0ZXNtYWxsIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsInF1ZXN0aW9uc21hbGwiLCJhc3VwZXJpb3IiLCJic3VwZXJpb3IiLCJjZW50c3VwZXJpb3IiLCJkc3VwZXJpb3IiLCJlc3VwZXJpb3IiLCJpc3VwZXJpb3IiLCJsc3VwZXJpb3IiLCJtc3VwZXJpb3IiLCJuc3VwZXJpb3IiLCJvc3VwZXJpb3IiLCJyc3VwZXJpb3IiLCJzc3VwZXJpb3IiLCJ0c3VwZXJpb3IiLCJmZiIsImZpIiwiZmwiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiRG90YWNjZW50c21hbGwiLCJNYWNyb25zbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJlaWdodHN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb2luZmVyaW9yIiwib25laW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwibmluZWluZmVyaW9yIiwiY2VudGluZmVyaW9yIiwiZG9sbGFyaW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsImNvbW1haW5mZXJpb3IiLCJBZ3JhdmVzbWFsbCIsIkFhY3V0ZXNtYWxsIiwiQWNpcmN1bWZsZXhzbWFsbCIsIkF0aWxkZXNtYWxsIiwiQWRpZXJlc2lzc21hbGwiLCJBcmluZ3NtYWxsIiwiQUVzbWFsbCIsIkNjZWRpbGxhc21hbGwiLCJFZ3JhdmVzbWFsbCIsIkVhY3V0ZXNtYWxsIiwiRWNpcmN1bWZsZXhzbWFsbCIsIkVkaWVyZXNpc3NtYWxsIiwiSWdyYXZlc21hbGwiLCJJYWN1dGVzbWFsbCIsIkljaXJjdW1mbGV4c21hbGwiLCJJZGllcmVzaXNzbWFsbCIsIkV0aHNtYWxsIiwiTnRpbGRlc21hbGwiLCJPZ3JhdmVzbWFsbCIsIk9hY3V0ZXNtYWxsIiwiT2NpcmN1bWZsZXhzbWFsbCIsIk90aWxkZXNtYWxsIiwiT2RpZXJlc2lzc21hbGwiLCJPRXNtYWxsIiwiT3NsYXNoc21hbGwiLCJVZ3JhdmVzbWFsbCIsIlVhY3V0ZXNtYWxsIiwiVWNpcmN1bWZsZXhzbWFsbCIsIlVkaWVyZXNpc3NtYWxsIiwiWWFjdXRlc21hbGwiLCJUaG9ybnNtYWxsIiwiWWRpZXJlc2lzc21hbGwiXSx4aT1bIi5ub3RkZWYiLCJzcGFjZSIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsImZyYWN0aW9uIiwiemVyb29sZHN0eWxlIiwib25lb2xkc3R5bGUiLCJ0d29vbGRzdHlsZSIsInRocmVlb2xkc3R5bGUiLCJmb3Vyb2xkc3R5bGUiLCJmaXZlb2xkc3R5bGUiLCJzaXhvbGRzdHlsZSIsInNldmVub2xkc3R5bGUiLCJlaWdodG9sZHN0eWxlIiwibmluZW9sZHN0eWxlIiwiY29sb24iLCJzZW1pY29sb24iLCJjb21tYXN1cGVyaW9yIiwidGhyZWVxdWFydGVyc2VtZGFzaCIsInBlcmlvZHN1cGVyaW9yIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJoeXBoZW5zdXBlcmlvciIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJjZW50b2xkc3R5bGUiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJlaWdodHN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb2luZmVyaW9yIiwib25laW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwibmluZWluZmVyaW9yIiwiY2VudGluZmVyaW9yIiwiZG9sbGFyaW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsImNvbW1haW5mZXJpb3IiXSxVaT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtc21hbGwiLCJIdW5nYXJ1bWxhdXRzbWFsbCIsIiIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJhbXBlcnNhbmRzbWFsbCIsIkFjdXRlc21hbGwiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsImZyYWN0aW9uIiwiemVyb29sZHN0eWxlIiwib25lb2xkc3R5bGUiLCJ0d29vbGRzdHlsZSIsInRocmVlb2xkc3R5bGUiLCJmb3Vyb2xkc3R5bGUiLCJmaXZlb2xkc3R5bGUiLCJzaXhvbGRzdHlsZSIsInNldmVub2xkc3R5bGUiLCJlaWdodG9sZHN0eWxlIiwibmluZW9sZHN0eWxlIiwiY29sb24iLCJzZW1pY29sb24iLCJjb21tYXN1cGVyaW9yIiwidGhyZWVxdWFydGVyc2VtZGFzaCIsInBlcmlvZHN1cGVyaW9yIiwicXVlc3Rpb25zbWFsbCIsIiIsImFzdXBlcmlvciIsImJzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsImRzdXBlcmlvciIsImVzdXBlcmlvciIsIiIsIiIsIiIsImlzdXBlcmlvciIsIiIsIiIsImxzdXBlcmlvciIsIm1zdXBlcmlvciIsIm5zdXBlcmlvciIsIm9zdXBlcmlvciIsIiIsIiIsInJzdXBlcmlvciIsInNzdXBlcmlvciIsInRzdXBlcmlvciIsIiIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwiIiwicGFyZW5yaWdodGluZmVyaW9yIiwiQ2lyY3VtZmxleHNtYWxsIiwiaHlwaGVuc3VwZXJpb3IiLCJHcmF2ZXNtYWxsIiwiQXNtYWxsIiwiQnNtYWxsIiwiQ3NtYWxsIiwiRHNtYWxsIiwiRXNtYWxsIiwiRnNtYWxsIiwiR3NtYWxsIiwiSHNtYWxsIiwiSXNtYWxsIiwiSnNtYWxsIiwiS3NtYWxsIiwiTHNtYWxsIiwiTXNtYWxsIiwiTnNtYWxsIiwiT3NtYWxsIiwiUHNtYWxsIiwiUXNtYWxsIiwiUnNtYWxsIiwiU3NtYWxsIiwiVHNtYWxsIiwiVXNtYWxsIiwiVnNtYWxsIiwiV3NtYWxsIiwiWHNtYWxsIiwiWXNtYWxsIiwiWnNtYWxsIiwiY29sb25tb25ldGFyeSIsIm9uZWZpdHRlZCIsInJ1cGlhaCIsIlRpbGRlc21hbGwiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJleGNsYW1kb3duc21hbGwiLCJjZW50b2xkc3R5bGUiLCJMc2xhc2hzbWFsbCIsIiIsIiIsIlNjYXJvbnNtYWxsIiwiWmNhcm9uc21hbGwiLCJEaWVyZXNpc3NtYWxsIiwiQnJldmVzbWFsbCIsIkNhcm9uc21hbGwiLCIiLCJEb3RhY2NlbnRzbWFsbCIsIiIsIiIsIk1hY3JvbnNtYWxsIiwiIiwiIiwiZmlndXJlZGFzaCIsImh5cGhlbmluZmVyaW9yIiwiIiwiIiwiT2dvbmVrc21hbGwiLCJSaW5nc21hbGwiLCJDZWRpbGxhc21hbGwiLCIiLCIiLCIiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJxdWVzdGlvbmRvd25zbWFsbCIsIm9uZWVpZ2h0aCIsInRocmVlZWlnaHRocyIsImZpdmVlaWdodGhzIiwic2V2ZW5laWdodGhzIiwib25ldGhpcmQiLCJ0d290aGlyZHMiLCIiLCIiLCJ6ZXJvc3VwZXJpb3IiLCJvbmVzdXBlcmlvciIsInR3b3N1cGVyaW9yIiwidGhyZWVzdXBlcmlvciIsImZvdXJzdXBlcmlvciIsImZpdmVzdXBlcmlvciIsInNpeHN1cGVyaW9yIiwic2V2ZW5zdXBlcmlvciIsImVpZ2h0c3VwZXJpb3IiLCJuaW5lc3VwZXJpb3IiLCJ6ZXJvaW5mZXJpb3IiLCJvbmVpbmZlcmlvciIsInR3b2luZmVyaW9yIiwidGhyZWVpbmZlcmlvciIsImZvdXJpbmZlcmlvciIsImZpdmVpbmZlcmlvciIsInNpeGluZmVyaW9yIiwic2V2ZW5pbmZlcmlvciIsImVpZ2h0aW5mZXJpb3IiLCJuaW5laW5mZXJpb3IiLCJjZW50aW5mZXJpb3IiLCJkb2xsYXJpbmZlcmlvciIsInBlcmlvZGluZmVyaW9yIiwiY29tbWFpbmZlcmlvciIsIkFncmF2ZXNtYWxsIiwiQWFjdXRlc21hbGwiLCJBY2lyY3VtZmxleHNtYWxsIiwiQXRpbGRlc21hbGwiLCJBZGllcmVzaXNzbWFsbCIsIkFyaW5nc21hbGwiLCJBRXNtYWxsIiwiQ2NlZGlsbGFzbWFsbCIsIkVncmF2ZXNtYWxsIiwiRWFjdXRlc21hbGwiLCJFY2lyY3VtZmxleHNtYWxsIiwiRWRpZXJlc2lzc21hbGwiLCJJZ3JhdmVzbWFsbCIsIklhY3V0ZXNtYWxsIiwiSWNpcmN1bWZsZXhzbWFsbCIsIklkaWVyZXNpc3NtYWxsIiwiRXRoc21hbGwiLCJOdGlsZGVzbWFsbCIsIk9ncmF2ZXNtYWxsIiwiT2FjdXRlc21hbGwiLCJPY2lyY3VtZmxleHNtYWxsIiwiT3RpbGRlc21hbGwiLCJPZGllcmVzaXNzbWFsbCIsIk9Fc21hbGwiLCJPc2xhc2hzbWFsbCIsIlVncmF2ZXNtYWxsIiwiVWFjdXRlc21hbGwiLCJVY2lyY3VtZmxleHNtYWxsIiwiVWRpZXJlc2lzc21hbGwiLCJZYWN1dGVzbWFsbCIsIlRob3Juc21hbGwiLCJZZGllcmVzaXNzbWFsbCJdLE1pPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiY2VudG9sZHN0eWxlIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwiZnJhY3Rpb24iLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb2xvbiIsInNlbWljb2xvbiIsIiIsInRocmVlcXVhcnRlcnNlbWRhc2giLCIiLCJxdWVzdGlvbnNtYWxsIiwiIiwiIiwiIiwiIiwiRXRoc21hbGwiLCIiLCIiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiIiwiIiwiIiwiIiwiIiwiIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCIiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5pbmZlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsIiIsIiIsImFzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsIiIsIiIsIiIsIiIsIkFhY3V0ZXNtYWxsIiwiQWdyYXZlc21hbGwiLCJBY2lyY3VtZmxleHNtYWxsIiwiQWRpZXJlc2lzc21hbGwiLCJBdGlsZGVzbWFsbCIsIkFyaW5nc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWFjdXRlc21hbGwiLCJFZ3JhdmVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklhY3V0ZXNtYWxsIiwiSWdyYXZlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJOdGlsZGVzbWFsbCIsIk9hY3V0ZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPY2lyY3VtZmxleHNtYWxsIiwiT2RpZXJlc2lzc21hbGwiLCJPdGlsZGVzbWFsbCIsIlVhY3V0ZXNtYWxsIiwiVWdyYXZlc21hbGwiLCJVY2lyY3VtZmxleHNtYWxsIiwiVWRpZXJlc2lzc21hbGwiLCIiLCJlaWdodHN1cGVyaW9yIiwiZm91cmluZmVyaW9yIiwidGhyZWVpbmZlcmlvciIsInNpeGluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJTY2Fyb25zbWFsbCIsIiIsImNlbnRpbmZlcmlvciIsInR3b2luZmVyaW9yIiwiIiwiRGllcmVzaXNzbWFsbCIsIiIsIkNhcm9uc21hbGwiLCJvc3VwZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCIiLCJjb21tYWluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJZYWN1dGVzbWFsbCIsIiIsImRvbGxhcmluZmVyaW9yIiwiIiwiIiwiVGhvcm5zbWFsbCIsIiIsIm5pbmVpbmZlcmlvciIsInplcm9pbmZlcmlvciIsIlpjYXJvbnNtYWxsIiwiQUVzbWFsbCIsIk9zbGFzaHNtYWxsIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVpbmZlcmlvciIsIkxzbGFzaHNtYWxsIiwiIiwiIiwiIiwiIiwiIiwiIiwiQ2VkaWxsYXNtYWxsIiwiIiwiIiwiIiwiIiwiIiwiT0VzbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5zdXBlcmlvciIsIiIsIiIsIiIsIiIsImV4Y2xhbWRvd25zbWFsbCIsIiIsIllkaWVyZXNpc3NtYWxsIiwiIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJuaW5lc3VwZXJpb3IiLCJ6ZXJvc3VwZXJpb3IiLCIiLCJlc3VwZXJpb3IiLCJyc3VwZXJpb3IiLCJ0c3VwZXJpb3IiLCIiLCIiLCJpc3VwZXJpb3IiLCJzc3VwZXJpb3IiLCJkc3VwZXJpb3IiLCIiLCIiLCIiLCIiLCIiLCJsc3VwZXJpb3IiLCJPZ29uZWtzbWFsbCIsIkJyZXZlc21hbGwiLCJNYWNyb25zbWFsbCIsImJzdXBlcmlvciIsIm5zdXBlcmlvciIsIm1zdXBlcmlvciIsImNvbW1hc3VwZXJpb3IiLCJwZXJpb2RzdXBlcmlvciIsIkRvdGFjY2VudHNtYWxsIiwiUmluZ3NtYWxsIiwiIiwiIiwiIiwiIl0sTGk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXNpbmdsZSIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwiZ3JhdmUiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiIiwiQWRpZXJlc2lzIiwiQXJpbmciLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIk50aWxkZSIsIk9kaWVyZXNpcyIsIlVkaWVyZXNpcyIsImFhY3V0ZSIsImFncmF2ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYXRpbGRlIiwiYXJpbmciLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVncmF2ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiaWFjdXRlIiwiaWdyYXZlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJudGlsZGUiLCJvYWN1dGUiLCJvZ3JhdmUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm90aWxkZSIsInVhY3V0ZSIsInVncmF2ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwiZGFnZ2VyIiwiZGVncmVlIiwiY2VudCIsInN0ZXJsaW5nIiwic2VjdGlvbiIsImJ1bGxldCIsInBhcmFncmFwaCIsImdlcm1hbmRibHMiLCJyZWdpc3RlcmVkIiwiY29weXJpZ2h0IiwidHJhZGVtYXJrIiwiYWN1dGUiLCJkaWVyZXNpcyIsIm5vdGVxdWFsIiwiQUUiLCJPc2xhc2giLCJpbmZpbml0eSIsInBsdXNtaW51cyIsImxlc3NlcXVhbCIsImdyZWF0ZXJlcXVhbCIsInllbiIsIm11IiwicGFydGlhbGRpZmYiLCJzdW1tYXRpb24iLCJwcm9kdWN0IiwicGkiLCJpbnRlZ3JhbCIsIm9yZGZlbWluaW5lIiwib3JkbWFzY3VsaW5lIiwiT21lZ2EiLCJhZSIsIm9zbGFzaCIsInF1ZXN0aW9uZG93biIsImV4Y2xhbWRvd24iLCJsb2dpY2Fsbm90IiwicmFkaWNhbCIsImZsb3JpbiIsImFwcHJveGVxdWFsIiwiRGVsdGEiLCJndWlsbGVtb3RsZWZ0IiwiZ3VpbGxlbW90cmlnaHQiLCJlbGxpcHNpcyIsInNwYWNlIiwiQWdyYXZlIiwiQXRpbGRlIiwiT3RpbGRlIiwiT0UiLCJvZSIsImVuZGFzaCIsImVtZGFzaCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwiZGl2aWRlIiwibG96ZW5nZSIsInlkaWVyZXNpcyIsIllkaWVyZXNpcyIsImZyYWN0aW9uIiwiY3VycmVuY3kiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInBlcnRob3VzYW5kIiwiQWNpcmN1bWZsZXgiLCJFY2lyY3VtZmxleCIsIkFhY3V0ZSIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJhcHBsZSIsIk9ncmF2ZSIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWdyYXZlIiwiZG90bGVzc2kiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iXSxKaT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3RlcmlnaHQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsInF1b3RlbGVmdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiZnJhY3Rpb24iLCJ5ZW4iLCJmbG9yaW4iLCJzZWN0aW9uIiwiY3VycmVuY3kiLCJxdW90ZXNpbmdsZSIsInF1b3RlZGJsbGVmdCIsImd1aWxsZW1vdGxlZnQiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiIiwiZW5kYXNoIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCIiLCJwYXJhZ3JhcGgiLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInF1b3RlZGJscmlnaHQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwicGVydGhvdXNhbmQiLCIiLCJxdWVzdGlvbmRvd24iLCIiLCJncmF2ZSIsImFjdXRlIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJkaWVyZXNpcyIsIiIsInJpbmciLCJjZWRpbGxhIiwiIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJlbWRhc2giLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJBRSIsIiIsIm9yZGZlbWluaW5lIiwiIiwiIiwiIiwiIiwiTHNsYXNoIiwiT3NsYXNoIiwiT0UiLCJvcmRtYXNjdWxpbmUiLCIiLCIiLCIiLCIiLCIiLCJhZSIsIiIsIiIsIiIsImRvdGxlc3NpIiwiIiwiIiwibHNsYXNoIiwib3NsYXNoIiwib2UiLCJnZXJtYW5kYmxzIiwiIiwiIiwiIiwiIl0sSGk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXNpbmdsZSIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwiZ3JhdmUiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiYnVsbGV0IiwiRXVybyIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwiZmxvcmluIiwicXVvdGVkYmxiYXNlIiwiZWxsaXBzaXMiLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJjaXJjdW1mbGV4IiwicGVydGhvdXNhbmQiLCJTY2Fyb24iLCJndWlsc2luZ2xsZWZ0IiwiT0UiLCJidWxsZXQiLCJaY2Fyb24iLCJidWxsZXQiLCJidWxsZXQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwicXVvdGVkYmxsZWZ0IiwicXVvdGVkYmxyaWdodCIsImJ1bGxldCIsImVuZGFzaCIsImVtZGFzaCIsInRpbGRlIiwidHJhZGVtYXJrIiwic2Nhcm9uIiwiZ3VpbHNpbmdscmlnaHQiLCJvZSIsImJ1bGxldCIsInpjYXJvbiIsIllkaWVyZXNpcyIsInNwYWNlIiwiZXhjbGFtZG93biIsImNlbnQiLCJzdGVybGluZyIsImN1cnJlbmN5IiwieWVuIiwiYnJva2VuYmFyIiwic2VjdGlvbiIsImRpZXJlc2lzIiwiY29weXJpZ2h0Iiwib3JkZmVtaW5pbmUiLCJndWlsbGVtb3RsZWZ0IiwibG9naWNhbG5vdCIsImh5cGhlbiIsInJlZ2lzdGVyZWQiLCJtYWNyb24iLCJkZWdyZWUiLCJwbHVzbWludXMiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJhY3V0ZSIsIm11IiwicGFyYWdyYXBoIiwicGVyaW9kY2VudGVyZWQiLCJjZWRpbGxhIiwib25lc3VwZXJpb3IiLCJvcmRtYXNjdWxpbmUiLCJndWlsbGVtb3RyaWdodCIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsInF1ZXN0aW9uZG93biIsIkFncmF2ZSIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQXRpbGRlIiwiQWRpZXJlc2lzIiwiQXJpbmciLCJBRSIsIkNjZWRpbGxhIiwiRWdyYXZlIiwiRWFjdXRlIiwiRWNpcmN1bWZsZXgiLCJFZGllcmVzaXMiLCJJZ3JhdmUiLCJJYWN1dGUiLCJJY2lyY3VtZmxleCIsIklkaWVyZXNpcyIsIkV0aCIsIk50aWxkZSIsIk9ncmF2ZSIsIk9hY3V0ZSIsIk9jaXJjdW1mbGV4IiwiT3RpbGRlIiwiT2RpZXJlc2lzIiwibXVsdGlwbHkiLCJPc2xhc2giLCJVZ3JhdmUiLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVkaWVyZXNpcyIsIllhY3V0ZSIsIlRob3JuIiwiZ2VybWFuZGJscyIsImFncmF2ZSIsImFhY3V0ZSIsImFjaXJjdW1mbGV4IiwiYXRpbGRlIiwiYWRpZXJlc2lzIiwiYXJpbmciLCJhZSIsImNjZWRpbGxhIiwiZWdyYXZlIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJpZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImV0aCIsIm50aWxkZSIsIm9ncmF2ZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib3RpbGRlIiwib2RpZXJlc2lzIiwiZGl2aWRlIiwib3NsYXNoIiwidWdyYXZlIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ5YWN1dGUiLCJ0aG9ybiIsInlkaWVyZXNpcyJdLFlpPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJ1bml2ZXJzYWwiLCJudW1iZXJzaWduIiwiZXhpc3RlbnRpYWwiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwic3VjaHRoYXQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2ttYXRoIiwicGx1cyIsImNvbW1hIiwibWludXMiLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImNvbmdydWVudCIsIkFscGhhIiwiQmV0YSIsIkNoaSIsIkRlbHRhIiwiRXBzaWxvbiIsIlBoaSIsIkdhbW1hIiwiRXRhIiwiSW90YSIsInRoZXRhMSIsIkthcHBhIiwiTGFtYmRhIiwiTXUiLCJOdSIsIk9taWNyb24iLCJQaSIsIlRoZXRhIiwiUmhvIiwiU2lnbWEiLCJUYXUiLCJVcHNpbG9uIiwic2lnbWExIiwiT21lZ2EiLCJYaSIsIlBzaSIsIlpldGEiLCJicmFja2V0bGVmdCIsInRoZXJlZm9yZSIsImJyYWNrZXRyaWdodCIsInBlcnBlbmRpY3VsYXIiLCJ1bmRlcnNjb3JlIiwicmFkaWNhbGV4IiwiYWxwaGEiLCJiZXRhIiwiY2hpIiwiZGVsdGEiLCJlcHNpbG9uIiwicGhpIiwiZ2FtbWEiLCJldGEiLCJpb3RhIiwicGhpMSIsImthcHBhIiwibGFtYmRhIiwibXUiLCJudSIsIm9taWNyb24iLCJwaSIsInRoZXRhIiwicmhvIiwic2lnbWEiLCJ0YXUiLCJ1cHNpbG9uIiwib21lZ2ExIiwib21lZ2EiLCJ4aSIsInBzaSIsInpldGEiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0Iiwic2ltaWxhciIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIkV1cm8iLCJVcHNpbG9uMSIsIm1pbnV0ZSIsImxlc3NlcXVhbCIsImZyYWN0aW9uIiwiaW5maW5pdHkiLCJmbG9yaW4iLCJjbHViIiwiZGlhbW9uZCIsImhlYXJ0Iiwic3BhZGUiLCJhcnJvd2JvdGgiLCJhcnJvd2xlZnQiLCJhcnJvd3VwIiwiYXJyb3dyaWdodCIsImFycm93ZG93biIsImRlZ3JlZSIsInBsdXNtaW51cyIsInNlY29uZCIsImdyZWF0ZXJlcXVhbCIsIm11bHRpcGx5IiwicHJvcG9ydGlvbmFsIiwicGFydGlhbGRpZmYiLCJidWxsZXQiLCJkaXZpZGUiLCJub3RlcXVhbCIsImVxdWl2YWxlbmNlIiwiYXBwcm94ZXF1YWwiLCJlbGxpcHNpcyIsImFycm93dmVydGV4IiwiYXJyb3dob3JpemV4IiwiY2FycmlhZ2VyZXR1cm4iLCJhbGVwaCIsIklmcmFrdHVyIiwiUmZyYWt0dXIiLCJ3ZWllcnN0cmFzcyIsImNpcmNsZW11bHRpcGx5IiwiY2lyY2xlcGx1cyIsImVtcHR5c2V0IiwiaW50ZXJzZWN0aW9uIiwidW5pb24iLCJwcm9wZXJzdXBlcnNldCIsInJlZmxleHN1cGVyc2V0Iiwibm90c3Vic2V0IiwicHJvcGVyc3Vic2V0IiwicmVmbGV4c3Vic2V0IiwiZWxlbWVudCIsIm5vdGVsZW1lbnQiLCJhbmdsZSIsImdyYWRpZW50IiwicmVnaXN0ZXJzZXJpZiIsImNvcHlyaWdodHNlcmlmIiwidHJhZGVtYXJrc2VyaWYiLCJwcm9kdWN0IiwicmFkaWNhbCIsImRvdG1hdGgiLCJsb2dpY2Fsbm90IiwibG9naWNhbGFuZCIsImxvZ2ljYWxvciIsImFycm93ZGJsYm90aCIsImFycm93ZGJsbGVmdCIsImFycm93ZGJsdXAiLCJhcnJvd2RibHJpZ2h0IiwiYXJyb3dkYmxkb3duIiwibG96ZW5nZSIsImFuZ2xlbGVmdCIsInJlZ2lzdGVyc2FucyIsImNvcHlyaWdodHNhbnMiLCJ0cmFkZW1hcmtzYW5zIiwic3VtbWF0aW9uIiwicGFyZW5sZWZ0dHAiLCJwYXJlbmxlZnRleCIsInBhcmVubGVmdGJ0IiwiYnJhY2tldGxlZnR0cCIsImJyYWNrZXRsZWZ0ZXgiLCJicmFja2V0bGVmdGJ0IiwiYnJhY2VsZWZ0dHAiLCJicmFjZWxlZnRtaWQiLCJicmFjZWxlZnRidCIsImJyYWNlZXgiLCIiLCJhbmdsZXJpZ2h0IiwiaW50ZWdyYWwiLCJpbnRlZ3JhbHRwIiwiaW50ZWdyYWxleCIsImludGVncmFsYnQiLCJwYXJlbnJpZ2h0dHAiLCJwYXJlbnJpZ2h0ZXgiLCJwYXJlbnJpZ2h0YnQiLCJicmFja2V0cmlnaHR0cCIsImJyYWNrZXRyaWdodGV4IiwiYnJhY2tldHJpZ2h0YnQiLCJicmFjZXJpZ2h0dHAiLCJicmFjZXJpZ2h0bWlkIiwiYnJhY2VyaWdodGJ0IiwiIl0sdmk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImExIiwiYTIiLCJhMjAyIiwiYTMiLCJhNCIsImE1IiwiYTExOSIsImExMTgiLCJhMTE3IiwiYTExIiwiYTEyIiwiYTEzIiwiYTE0IiwiYTE1IiwiYTE2IiwiYTEwNSIsImExNyIsImExOCIsImExOSIsImEyMCIsImEyMSIsImEyMiIsImEyMyIsImEyNCIsImEyNSIsImEyNiIsImEyNyIsImEyOCIsImE2IiwiYTciLCJhOCIsImE5IiwiYTEwIiwiYTI5IiwiYTMwIiwiYTMxIiwiYTMyIiwiYTMzIiwiYTM0IiwiYTM1IiwiYTM2IiwiYTM3IiwiYTM4IiwiYTM5IiwiYTQwIiwiYTQxIiwiYTQyIiwiYTQzIiwiYTQ0IiwiYTQ1IiwiYTQ2IiwiYTQ3IiwiYTQ4IiwiYTQ5IiwiYTUwIiwiYTUxIiwiYTUyIiwiYTUzIiwiYTU0IiwiYTU1IiwiYTU2IiwiYTU3IiwiYTU4IiwiYTU5IiwiYTYwIiwiYTYxIiwiYTYyIiwiYTYzIiwiYTY0IiwiYTY1IiwiYTY2IiwiYTY3IiwiYTY4IiwiYTY5IiwiYTcwIiwiYTcxIiwiYTcyIiwiYTczIiwiYTc0IiwiYTIwMyIsImE3NSIsImEyMDQiLCJhNzYiLCJhNzciLCJhNzgiLCJhNzkiLCJhODEiLCJhODIiLCJhODMiLCJhODQiLCJhOTciLCJhOTgiLCJhOTkiLCJhMTAwIiwiIiwiYTg5IiwiYTkwIiwiYTkzIiwiYTk0IiwiYTkxIiwiYTkyIiwiYTIwNSIsImE4NSIsImEyMDYiLCJhODYiLCJhODciLCJhODgiLCJhOTUiLCJhOTYiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJhMTAxIiwiYTEwMiIsImExMDMiLCJhMTA0IiwiYTEwNiIsImExMDciLCJhMTA4IiwiYTExMiIsImExMTEiLCJhMTEwIiwiYTEwOSIsImExMjAiLCJhMTIxIiwiYTEyMiIsImExMjMiLCJhMTI0IiwiYTEyNSIsImExMjYiLCJhMTI3IiwiYTEyOCIsImExMjkiLCJhMTMwIiwiYTEzMSIsImExMzIiLCJhMTMzIiwiYTEzNCIsImExMzUiLCJhMTM2IiwiYTEzNyIsImExMzgiLCJhMTM5IiwiYTE0MCIsImExNDEiLCJhMTQyIiwiYTE0MyIsImExNDQiLCJhMTQ1IiwiYTE0NiIsImExNDciLCJhMTQ4IiwiYTE0OSIsImExNTAiLCJhMTUxIiwiYTE1MiIsImExNTMiLCJhMTU0IiwiYTE1NSIsImExNTYiLCJhMTU3IiwiYTE1OCIsImExNTkiLCJhMTYwIiwiYTE2MSIsImExNjMiLCJhMTY0IiwiYTE5NiIsImExNjUiLCJhMTkyIiwiYTE2NiIsImExNjciLCJhMTY4IiwiYTE2OSIsImExNzAiLCJhMTcxIiwiYTE3MiIsImExNzMiLCJhMTYyIiwiYTE3NCIsImExNzUiLCJhMTc2IiwiYTE3NyIsImExNzgiLCJhMTc5IiwiYTE5MyIsImExODAiLCJhMTk5IiwiYTE4MSIsImEyMDAiLCJhMTgyIiwiIiwiYTIwMSIsImExODMiLCJhMTg0IiwiYTE5NyIsImExODUiLCJhMTk0IiwiYTE5OCIsImExODYiLCJhMTk1IiwiYTE4NyIsImExODgiLCJhMTg5IiwiYTE5MCIsImExOTEiLCIiXTtmdW5jdGlvbiBLaShBKXtzd2l0Y2goQSl7Y2FzZSJXaW5BbnNpRW5jb2RpbmciOnJldHVybiBIaTtjYXNlIlN0YW5kYXJkRW5jb2RpbmciOnJldHVybiBKaTtjYXNlIk1hY1JvbWFuRW5jb2RpbmciOnJldHVybiBMaTtjYXNlIlN5bWJvbFNldEVuY29kaW5nIjpyZXR1cm4gWWk7Y2FzZSJaYXBmRGluZ2JhdHNFbmNvZGluZyI6cmV0dXJuIHZpO2Nhc2UiRXhwZXJ0RW5jb2RpbmciOnJldHVybiBVaTtjYXNlIk1hY0V4cGVydEVuY29kaW5nIjpyZXR1cm4gTWk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19Y29uc3QgcWk9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsInF1ZXN0aW9uZG93biIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIkFFIiwib3JkZmVtaW5pbmUiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsImFlIiwiZG90bGVzc2kiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCJvbmVzdXBlcmlvciIsImxvZ2ljYWxub3QiLCJtdSIsInRyYWRlbWFyayIsIkV0aCIsIm9uZWhhbGYiLCJwbHVzbWludXMiLCJUaG9ybiIsIm9uZXF1YXJ0ZXIiLCJkaXZpZGUiLCJicm9rZW5iYXIiLCJkZWdyZWUiLCJ0aG9ybiIsInRocmVlcXVhcnRlcnMiLCJ0d29zdXBlcmlvciIsInJlZ2lzdGVyZWQiLCJtaW51cyIsImV0aCIsIm11bHRpcGx5IiwidGhyZWVzdXBlcmlvciIsImNvcHlyaWdodCIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQWRpZXJlc2lzIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk9kaWVyZXNpcyIsIk9ncmF2ZSIsIk90aWxkZSIsIlNjYXJvbiIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiVWdyYXZlIiwiWWFjdXRlIiwiWWRpZXJlc2lzIiwiWmNhcm9uIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhZ3JhdmUiLCJhcmluZyIsImF0aWxkZSIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJlZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImlncmF2ZSIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib2dyYXZlIiwib3RpbGRlIiwic2Nhcm9uIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ1Z3JhdmUiLCJ5YWN1dGUiLCJ5ZGllcmVzaXMiLCJ6Y2Fyb24iLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiRG90YWNjZW50c21hbGwiLCJNYWNyb25zbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIiwiMDAxLjAwMCIsIjAwMS4wMDEiLCIwMDEuMDAyIiwiMDAxLjAwMyIsIkJsYWNrIiwiQm9sZCIsIkJvb2siLCJMaWdodCIsIk1lZGl1bSIsIlJlZ3VsYXIiLCJSb21hbiIsIlNlbWlib2xkIl0sVGk9W251bGwse2lkOiJoc3RlbSIsbWluOjIsc3RhY2tDbGVhcmluZzohMCxzdGVtOiEwfSxudWxsLHtpZDoidnN0ZW0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJ2bW92ZXRvIixtaW46MSxzdGFja0NsZWFyaW5nOiEwfSx7aWQ6InJsaW5ldG8iLG1pbjoyLHJlc2V0U3RhY2s6ITB9LHtpZDoiaGxpbmV0byIsbWluOjEscmVzZXRTdGFjazohMH0se2lkOiJ2bGluZXRvIixtaW46MSxyZXNldFN0YWNrOiEwfSx7aWQ6InJyY3VydmV0byIsbWluOjYscmVzZXRTdGFjazohMH0sbnVsbCx7aWQ6ImNhbGxzdWJyIixtaW46MSx1bmRlZlN0YWNrOiEwfSx7aWQ6InJldHVybiIsbWluOjAsdW5kZWZTdGFjazohMH0sbnVsbCxudWxsLHtpZDoiZW5kY2hhciIsbWluOjAsc3RhY2tDbGVhcmluZzohMH0sbnVsbCxudWxsLG51bGwse2lkOiJoc3RlbWhtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LHtpZDoiaGludG1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoiY250cm1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoicm1vdmV0byIsbWluOjIsc3RhY2tDbGVhcmluZzohMH0se2lkOiJobW92ZXRvIixtaW46MSxzdGFja0NsZWFyaW5nOiEwfSx7aWQ6InZzdGVtaG0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJyY3VydmVsaW5lIixtaW46OCxyZXNldFN0YWNrOiEwfSx7aWQ6InJsaW5lY3VydmUiLG1pbjo4LHJlc2V0U3RhY2s6ITB9LHtpZDoidnZjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSx7aWQ6ImhoY3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH0sbnVsbCx7aWQ6ImNhbGxnc3ViciIsbWluOjEsdW5kZWZTdGFjazohMH0se2lkOiJ2aGN1cnZldG8iLG1pbjo0LHJlc2V0U3RhY2s6ITB9LHtpZDoiaHZjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfV0sUGk9W251bGwsbnVsbCxudWxsLHtpZDoiYW5kIixtaW46MixzdGFja0RlbHRhOi0xfSx7aWQ6Im9yIixtaW46MixzdGFja0RlbHRhOi0xfSx7aWQ6Im5vdCIsbWluOjEsc3RhY2tEZWx0YTowfSxudWxsLG51bGwsbnVsbCx7aWQ6ImFicyIsbWluOjEsc3RhY2tEZWx0YTowfSx7aWQ6ImFkZCIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKEEsZSl7QVtlLTJdPUFbZS0yXStBW2UtMV19fSx7aWQ6InN1YiIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKEEsZSl7QVtlLTJdPUFbZS0yXS1BW2UtMV19fSx7aWQ6ImRpdiIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKEEsZSl7QVtlLTJdPUFbZS0yXS9BW2UtMV19fSxudWxsLHtpZDoibmVnIixtaW46MSxzdGFja0RlbHRhOjAsc3RhY2tGbihBLGUpe0FbZS0xXT0tQVtlLTFdfX0se2lkOiJlcSIsbWluOjIsc3RhY2tEZWx0YTotMX0sbnVsbCxudWxsLHtpZDoiZHJvcCIsbWluOjEsc3RhY2tEZWx0YTotMX0sbnVsbCx7aWQ6InB1dCIsbWluOjIsc3RhY2tEZWx0YTotMn0se2lkOiJnZXQiLG1pbjoxLHN0YWNrRGVsdGE6MH0se2lkOiJpZmVsc2UiLG1pbjo0LHN0YWNrRGVsdGE6LTN9LHtpZDoicmFuZG9tIixtaW46MCxzdGFja0RlbHRhOjF9LHtpZDoibXVsIixtaW46MixzdGFja0RlbHRhOi0xLHN0YWNrRm4oQSxlKXtBW2UtMl09QVtlLTJdKkFbZS0xXX19LG51bGwse2lkOiJzcXJ0IixtaW46MSxzdGFja0RlbHRhOjB9LHtpZDoiZHVwIixtaW46MSxzdGFja0RlbHRhOjF9LHtpZDoiZXhjaCIsbWluOjIsc3RhY2tEZWx0YTowfSx7aWQ6ImluZGV4IixtaW46MixzdGFja0RlbHRhOjB9LHtpZDoicm9sbCIsbWluOjMsc3RhY2tEZWx0YTotMn0sbnVsbCxudWxsLG51bGwse2lkOiJoZmxleCIsbWluOjcscmVzZXRTdGFjazohMH0se2lkOiJmbGV4IixtaW46MTMscmVzZXRTdGFjazohMH0se2lkOiJoZmxleDEiLG1pbjo5LHJlc2V0U3RhY2s6ITB9LHtpZDoiZmxleDEiLG1pbjoxMSxyZXNldFN0YWNrOiEwfV07Y2xhc3MgV2l7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuYnl0ZXM9QS5nZXRCeXRlcygpLHRoaXMucHJvcGVydGllcz1lLHRoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZD0hIXR9cGFyc2UoKXtjb25zdCBBPXRoaXMucHJvcGVydGllcyxlPW5ldyBPaTt0aGlzLmNmZj1lO2NvbnN0IHQ9dGhpcy5wYXJzZUhlYWRlcigpLGk9dGhpcy5wYXJzZUluZGV4KHQuZW5kUG9zKSxhPXRoaXMucGFyc2VJbmRleChpLmVuZFBvcykscz10aGlzLnBhcnNlSW5kZXgoYS5lbmRQb3MpLG49dGhpcy5wYXJzZUluZGV4KHMuZW5kUG9zKSxyPXRoaXMucGFyc2VEaWN0KGEub2JqLmdldCgwKSksZz10aGlzLmNyZWF0ZURpY3QoemkscixlLnN0cmluZ3MpO2UuaGVhZGVyPXQub2JqLGUubmFtZXM9dGhpcy5wYXJzZU5hbWVJbmRleChpLm9iaiksZS5zdHJpbmdzPXRoaXMucGFyc2VTdHJpbmdJbmRleChzLm9iaiksZS50b3BEaWN0PWcsZS5nbG9iYWxTdWJySW5kZXg9bi5vYmosdGhpcy5wYXJzZVByaXZhdGVEaWN0KGUudG9wRGljdCksZS5pc0NJREZvbnQ9Zy5oYXNOYW1lKCJST1MiKTtjb25zdCBvPWcuZ2V0QnlOYW1lKCJDaGFyU3RyaW5ncyIpLEk9dGhpcy5wYXJzZUluZGV4KG8pLm9iaixjPWcuZ2V0QnlOYW1lKCJGb250TWF0cml4Iik7YyYmKEEuZm9udE1hdHJpeD1jKTtjb25zdCBoPWcuZ2V0QnlOYW1lKCJGb250QkJveCIpO2xldCBDLEI7aWYoaCYmKEEuYXNjZW50PU1hdGgubWF4KGhbM10saFsxXSksQS5kZXNjZW50PU1hdGgubWluKGhbMV0saFszXSksQS5hc2NlbnRTY2FsZWQ9ITApLGUuaXNDSURGb250KXtjb25zdCBBPXRoaXMucGFyc2VJbmRleChnLmdldEJ5TmFtZSgiRkRBcnJheSIpKS5vYmo7Zm9yKGxldCB0PTAsaT1BLmNvdW50O3Q8aTsrK3Qpe2NvbnN0IGk9QS5nZXQodCksYT10aGlzLmNyZWF0ZURpY3QoemksdGhpcy5wYXJzZURpY3QoaSksZS5zdHJpbmdzKTt0aGlzLnBhcnNlUHJpdmF0ZURpY3QoYSksZS5mZEFycmF5LnB1c2goYSl9Qj1udWxsLEM9dGhpcy5wYXJzZUNoYXJzZXRzKGcuZ2V0QnlOYW1lKCJjaGFyc2V0IiksSS5jb3VudCxlLnN0cmluZ3MsITApLGUuZmRTZWxlY3Q9dGhpcy5wYXJzZUZEU2VsZWN0KGcuZ2V0QnlOYW1lKCJGRFNlbGVjdCIpLEkuY291bnQpfWVsc2UgQz10aGlzLnBhcnNlQ2hhcnNldHMoZy5nZXRCeU5hbWUoImNoYXJzZXQiKSxJLmNvdW50LGUuc3RyaW5ncywhMSksQj10aGlzLnBhcnNlRW5jb2RpbmcoZy5nZXRCeU5hbWUoIkVuY29kaW5nIiksQSxlLnN0cmluZ3MsQy5jaGFyc2V0KTtlLmNoYXJzZXQ9QyxlLmVuY29kaW5nPUI7Y29uc3QgbD10aGlzLnBhcnNlQ2hhclN0cmluZ3Moe2NoYXJTdHJpbmdzOkksbG9jYWxTdWJySW5kZXg6Zy5wcml2YXRlRGljdC5zdWJyc0luZGV4LGdsb2JhbFN1YnJJbmRleDpuLm9iaixmZFNlbGVjdDplLmZkU2VsZWN0LGZkQXJyYXk6ZS5mZEFycmF5LHByaXZhdGVEaWN0OmcucHJpdmF0ZURpY3R9KTtyZXR1cm4gZS5jaGFyU3RyaW5ncz1sLmNoYXJTdHJpbmdzLGUuc2VhY3M9bC5zZWFjcyxlLndpZHRocz1sLndpZHRocyxlfXBhcnNlSGVhZGVyKCl7bGV0IEE9dGhpcy5ieXRlcztjb25zdCBlPUEubGVuZ3RoO2xldCB0PTA7Zm9yKDt0PGUmJjEhPT1BW3RdOykrK3Q7aWYodD49ZSl0aHJvdyBuZXcgVygiSW52YWxpZCBDRkYgaGVhZGVyIik7MCE9PXQmJih4KCJjZmYgZGF0YSBpcyBzaGlmdGVkIiksQT1BLnN1YmFycmF5KHQpLHRoaXMuYnl0ZXM9QSk7Y29uc3QgaT1BWzBdLGE9QVsxXSxzPUFbMl0sbj1BWzNdO3JldHVybntvYmo6bmV3IFppKGksYSxzLG4pLGVuZFBvczpzfX1wYXJzZURpY3QoQSl7bGV0IGU9MDtmdW5jdGlvbiB0KCl7bGV0IHQ9QVtlKytdO3JldHVybiAzMD09PXQ/ZnVuY3Rpb24oKXtsZXQgdD0iIjtjb25zdCBpPVsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIi4iLCJFIiwiRS0iLG51bGwsIi0iXSxhPUEubGVuZ3RoO2Zvcig7ZTxhOyl7Y29uc3QgYT1BW2UrK10scz1hPj40LG49MTUmYTtpZigxNT09PXMpYnJlYWs7aWYodCs9aVtzXSwxNT09PW4pYnJlYWs7dCs9aVtuXX1yZXR1cm4gcGFyc2VGbG9hdCh0KX0oKToyOD09PXQ/KHQ9QVtlKytdLHQ9KHQ8PDI0fEFbZSsrXTw8MTYpPj4xNix0KToyOT09PXQ/KHQ9QVtlKytdLHQ9dDw8OHxBW2UrK10sdD10PDw4fEFbZSsrXSx0PXQ8PDh8QVtlKytdLHQpOnQ+PTMyJiZ0PD0yNDY/dC0xMzk6dD49MjQ3JiZ0PD0yNTA/MjU2Kih0LTI0NykrQVtlKytdKzEwODp0Pj0yNTEmJnQ8PTI1ND8tMjU2Kih0LTI1MSktQVtlKytdLTEwODooVSgnQ0ZGUGFyc2VyX3BhcnNlRGljdDogIicrdCsnIiBpcyBhIHJlc2VydmVkIGNvbW1hbmQuJyksTmFOKX1sZXQgaT1bXTtjb25zdCBhPVtdO2U9MDtjb25zdCBzPUEubGVuZ3RoO2Zvcig7ZTxzOyl7bGV0IHM9QVtlXTtzPD0yMT8oMTI9PT1zJiYocz1zPDw4fEFbKytlXSksYS5wdXNoKFtzLGldKSxpPVtdLCsrZSk6aS5wdXNoKHQoKSl9cmV0dXJuIGF9cGFyc2VJbmRleChBKXtjb25zdCBlPW5ldyBYaSx0PXRoaXMuYnl0ZXMsaT10W0ErK108PDh8dFtBKytdLGE9W107bGV0IHMsbixyPUE7aWYoMCE9PWkpe2NvbnN0IGU9dFtBKytdLGc9QSsoaSsxKSplLTE7Zm9yKHM9MCxuPWkrMTtzPG47KytzKXtsZXQgaT0wO2ZvcihsZXQgYT0wO2E8ZTsrK2EpaTw8PTgsaSs9dFtBKytdO2EucHVzaChnK2kpfXI9YVtpXX1mb3Iocz0wLG49YS5sZW5ndGgtMTtzPG47KytzKXtjb25zdCBBPWFbc10saT1hW3MrMV07ZS5hZGQodC5zdWJhcnJheShBLGkpKX1yZXR1cm57b2JqOmUsZW5kUG9zOnJ9fXBhcnNlTmFtZUluZGV4KEEpe2NvbnN0IGU9W107Zm9yKGxldCB0PTAsaT1BLmNvdW50O3Q8aTsrK3Qpe2NvbnN0IGk9QS5nZXQodCk7ZS5wdXNoKFooaSkpfXJldHVybiBlfXBhcnNlU3RyaW5nSW5kZXgoQSl7Y29uc3QgZT1uZXcgamk7Zm9yKGxldCB0PTAsaT1BLmNvdW50O3Q8aTsrK3Qpe2NvbnN0IGk9QS5nZXQodCk7ZS5hZGQoWihpKSl9cmV0dXJuIGV9Y3JlYXRlRGljdChBLGUsdCl7Y29uc3QgaT1uZXcgQSh0KTtmb3IoY29uc3RbQSx0XW9mIGUpaS5zZXRCeUtleShBLHQpO3JldHVybiBpfXBhcnNlQ2hhclN0cmluZyhBLGUsdCxpKXtpZighZXx8QS5jYWxsRGVwdGg+MTApcmV0dXJuITE7bGV0IGE9QS5zdGFja1NpemU7Y29uc3Qgcz1BLnN0YWNrO2xldCBuPWUubGVuZ3RoO2ZvcihsZXQgcj0wO3I8bjspe2NvbnN0IGc9ZVtyKytdO2xldCBvPW51bGw7aWYoMTI9PT1nKXtjb25zdCBBPWVbcisrXTswPT09QT8oZVtyLTJdPTEzOSxlW3ItMV09MjIsYT0wKTpvPVBpW0FdfWVsc2UgaWYoMjg9PT1nKXNbYV09KGVbcl08PDI0fGVbcisxXTw8MTYpPj4xNixyKz0yLGErKztlbHNlIGlmKDE0PT09Zyl7aWYoYT49NCYmKGEtPTQsdGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkKSlyZXR1cm4gQS5zZWFjPXMuc2xpY2UoYSxhKzQpLCExO289VGlbZ119ZWxzZSBpZihnPj0zMiYmZzw9MjQ2KXNbYV09Zy0xMzksYSsrO2Vsc2UgaWYoZz49MjQ3JiZnPD0yNTQpc1thXT1nPDI1MT8oZy0yNDc8PDgpK2Vbcl0rMTA4Oi0oZy0yNTE8PDgpLWVbcl0tMTA4LHIrKyxhKys7ZWxzZSBpZigyNTU9PT1nKXNbYV09KGVbcl08PDI0fGVbcisxXTw8MTZ8ZVtyKzJdPDw4fGVbciszXSkvNjU1MzYscis9NCxhKys7ZWxzZSBpZigxOT09PWd8fDIwPT09Zyl7aWYoQS5oaW50cys9YT4+MSwwPT09QS5oaW50cyl7ZS5jb3B5V2l0aGluKHItMSxyLC0xKSxyLT0xLG4tPTE7Y29udGludWV9cis9QS5oaW50cys3Pj4zLGElPTIsbz1UaVtnXX1lbHNle2lmKDEwPT09Z3x8Mjk9PT1nKXtjb25zdCBlPTEwPT09Zz90Omk7aWYoIWUpcmV0dXJuIG89VGlbZ10sVSgiTWlzc2luZyBzdWJyc0luZGV4IGZvciAiK28uaWQpLCExO2xldCBuPTMyNzY4O2UuY291bnQ8MTI0MD9uPTEwNzplLmNvdW50PDMzOTAwJiYobj0xMTMxKTtjb25zdCByPXNbLS1hXStuO2lmKHI8MHx8cj49ZS5jb3VudHx8aXNOYU4ocikpcmV0dXJuIG89VGlbZ10sVSgiT3V0IG9mIGJvdW5kcyBzdWJySW5kZXggZm9yICIrby5pZCksITE7aWYoQS5zdGFja1NpemU9YSxBLmNhbGxEZXB0aCsrLCF0aGlzLnBhcnNlQ2hhclN0cmluZyhBLGUuZ2V0KHIpLHQsaSkpcmV0dXJuITE7QS5jYWxsRGVwdGgtLSxhPUEuc3RhY2tTaXplO2NvbnRpbnVlfWlmKDExPT09ZylyZXR1cm4gQS5zdGFja1NpemU9YSwhMDtpZigwPT09ZyYmcj09PWUubGVuZ3RoKWVbci0xXT0xNCxvPVRpWzE0XTtlbHNle2lmKDk9PT1nKXtlLmNvcHlXaXRoaW4oci0xLHIsLTEpLHItPTEsbi09MTtjb250aW51ZX1vPVRpW2ddfX1pZihvKXtpZihvLnN0ZW0mJihBLmhpbnRzKz1hPj4xLDM9PT1nfHwyMz09PWc/QS5oYXNWU3RlbXM9ITA6IUEuaGFzVlN0ZW1zfHwxIT09ZyYmMTghPT1nfHwoVSgiQ0ZGIHN0ZW0gaGludHMgYXJlIGluIHdyb25nIG9yZGVyIiksZVtyLTFdPTE9PT1nPzM6MjMpKSwibWluImluIG8mJiFBLnVuZGVmU3RhY2smJmE8by5taW4pcmV0dXJuIFUoIk5vdCBlbm91Z2ggcGFyYW1ldGVycyBmb3IgIitvLmlkKyI7IGFjdHVhbDogIithKyIsIGV4cGVjdGVkOiAiK28ubWluKSwwPT09YSYmKGVbci0xXT0xNCwhMCk7QS5maXJzdFN0YWNrQ2xlYXJpbmcmJm8uc3RhY2tDbGVhcmluZyYmKEEuZmlyc3RTdGFja0NsZWFyaW5nPSExLGEtPW8ubWluLGE+PTImJm8uc3RlbT9hJT0yOmE+MSYmVSgiRm91bmQgdG9vIG1hbnkgcGFyYW1ldGVycyBmb3Igc3RhY2stY2xlYXJpbmcgY29tbWFuZCIpLGE+MCYmKEEud2lkdGg9c1thLTFdKSksInN0YWNrRGVsdGEiaW4gbz8oInN0YWNrRm4iaW4gbyYmby5zdGFja0ZuKHMsYSksYSs9by5zdGFja0RlbHRhKTpvLnN0YWNrQ2xlYXJpbmc/YT0wOm8ucmVzZXRTdGFjaz8oYT0wLEEudW5kZWZTdGFjaz0hMSk6by51bmRlZlN0YWNrJiYoYT0wLEEudW5kZWZTdGFjaz0hMCxBLmZpcnN0U3RhY2tDbGVhcmluZz0hMSl9fXJldHVybiBuPGUubGVuZ3RoJiZlLmZpbGwoMTQsbiksQS5zdGFja1NpemU9YSwhMH1wYXJzZUNoYXJTdHJpbmdzKHtjaGFyU3RyaW5nczpBLGxvY2FsU3VickluZGV4OmUsZ2xvYmFsU3VickluZGV4OnQsZmRTZWxlY3Q6aSxmZEFycmF5OmEscHJpdmF0ZURpY3Q6c30pe2NvbnN0IG49W10scj1bXSxnPUEuY291bnQ7Zm9yKGxldCBvPTA7bzxnO28rKyl7Y29uc3QgZz1BLmdldChvKSxJPXtjYWxsRGVwdGg6MCxzdGFja1NpemU6MCxzdGFjazpbXSx1bmRlZlN0YWNrOiEwLGhpbnRzOjAsZmlyc3RTdGFja0NsZWFyaW5nOiEwLHNlYWM6bnVsbCx3aWR0aDpudWxsLGhhc1ZTdGVtczohMX07bGV0IGM9ITAsaD1udWxsLEM9cztpZihpJiZhLmxlbmd0aCl7Y29uc3QgQT1pLmdldEZESW5kZXgobyk7LTE9PT1BJiYoVSgiR2x5cGggaW5kZXggaXMgbm90IGluIGZkIHNlbGVjdC4iKSxjPSExKSxBPj1hLmxlbmd0aCYmKFUoIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpLGM9ITEpLGMmJihDPWFbQV0ucHJpdmF0ZURpY3QsaD1DLnN1YnJzSW5kZXgpfWVsc2UgZSYmKGg9ZSk7aWYoYyYmKGM9dGhpcy5wYXJzZUNoYXJTdHJpbmcoSSxnLGgsdCkpLG51bGwhPT1JLndpZHRoKXtjb25zdCBBPUMuZ2V0QnlOYW1lKCJub21pbmFsV2lkdGhYIik7cltvXT1BK0kud2lkdGh9ZWxzZXtjb25zdCBBPUMuZ2V0QnlOYW1lKCJkZWZhdWx0V2lkdGhYIik7cltvXT1BfW51bGwhPT1JLnNlYWMmJihuW29dPUkuc2VhYyksY3x8QS5zZXQobyxuZXcgVWludDhBcnJheShbMTRdKSl9cmV0dXJue2NoYXJTdHJpbmdzOkEsc2VhY3M6bix3aWR0aHM6cn19ZW1wdHlQcml2YXRlRGljdGlvbmFyeShBKXtjb25zdCBlPXRoaXMuY3JlYXRlRGljdChBYSxbXSxBLnN0cmluZ3MpO0Euc2V0QnlLZXkoMTgsWzAsMF0pLEEucHJpdmF0ZURpY3Q9ZX1wYXJzZVByaXZhdGVEaWN0KEEpe2lmKCFBLmhhc05hbWUoIlByaXZhdGUiKSlyZXR1cm4gdm9pZCB0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoQSk7Y29uc3QgZT1BLmdldEJ5TmFtZSgiUHJpdmF0ZSIpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwyIT09ZS5sZW5ndGgpcmV0dXJuIHZvaWQgQS5yZW1vdmVCeU5hbWUoIlByaXZhdGUiKTtjb25zdCB0PWVbMF0saT1lWzFdO2lmKDA9PT10fHxpPj10aGlzLmJ5dGVzLmxlbmd0aClyZXR1cm4gdm9pZCB0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoQSk7Y29uc3QgYT1pK3Qscz10aGlzLmJ5dGVzLnN1YmFycmF5KGksYSksbj10aGlzLnBhcnNlRGljdChzKSxyPXRoaXMuY3JlYXRlRGljdChBYSxuLEEuc3RyaW5ncyk7aWYoQS5wcml2YXRlRGljdD1yLDA9PT1yLmdldEJ5TmFtZSgiRXhwYW5zaW9uRmFjdG9yIikmJnIuc2V0QnlOYW1lKCJFeHBhbnNpb25GYWN0b3IiLC4wNiksIXIuZ2V0QnlOYW1lKCJTdWJycyIpKXJldHVybjtjb25zdCBnPXIuZ2V0QnlOYW1lKCJTdWJycyIpLG89aStnO2lmKDA9PT1nfHxvPj10aGlzLmJ5dGVzLmxlbmd0aClyZXR1cm4gdm9pZCB0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoQSk7Y29uc3QgST10aGlzLnBhcnNlSW5kZXgobyk7ci5zdWJyc0luZGV4PUkub2JqfXBhcnNlQ2hhcnNldHMoQSxlLHQsaSl7aWYoMD09PUEpcmV0dXJuIG5ldyB0YSghMCxlYS5JU09fQURPQkUsR2kpO2lmKDE9PT1BKXJldHVybiBuZXcgdGEoITAsZWEuRVhQRVJULE5pKTtpZigyPT09QSlyZXR1cm4gbmV3IHRhKCEwLGVhLkVYUEVSVF9TVUJTRVQseGkpO2NvbnN0IGE9dGhpcy5ieXRlcyxzPUEsbj1hW0ErK10scj1baT8wOiIubm90ZGVmIl07bGV0IGcsbyxJO3N3aXRjaChlLT0xLG4pe2Nhc2UgMDpmb3IoST0wO0k8ZTtJKyspZz1hW0ErK108PDh8YVtBKytdLHIucHVzaChpP2c6dC5nZXQoZykpO2JyZWFrO2Nhc2UgMTpmb3IoO3IubGVuZ3RoPD1lOylmb3IoZz1hW0ErK108PDh8YVtBKytdLG89YVtBKytdLEk9MDtJPD1vO0krKylyLnB1c2goaT9nKys6dC5nZXQoZysrKSk7YnJlYWs7Y2FzZSAyOmZvcig7ci5sZW5ndGg8PWU7KWZvcihnPWFbQSsrXTw8OHxhW0ErK10sbz1hW0ErK108PDh8YVtBKytdLEk9MDtJPD1vO0krKylyLnB1c2goaT9nKys6dC5nZXQoZysrKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVygiVW5rbm93biBjaGFyc2V0IGZvcm1hdCIpfWNvbnN0IGM9QSxoPWEuc3ViYXJyYXkocyxjKTtyZXR1cm4gbmV3IHRhKCExLG4scixoKX1wYXJzZUVuY29kaW5nKEEsZSx0LGkpe2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKSxzPXRoaXMuYnl0ZXM7bGV0IG4scixnLG89ITEsST1udWxsO2lmKDA9PT1BfHwxPT09QSl7bz0hMCxuPUE7Y29uc3QgZT1BP1VpOkppO2ZvcihyPTAsZz1pLmxlbmd0aDtyPGc7cisrKXtjb25zdCBBPWUuaW5kZXhPZihpW3JdKTstMSE9PUEmJihhW0FdPXIpfX1lbHNle2NvbnN0IGU9QTtzd2l0Y2gobj1zW0ErK10sMTI3Jm4pe2Nhc2UgMDpjb25zdCBlPXNbQSsrXTtmb3Iocj0xO3I8PWU7cisrKWFbc1tBKytdXT1yO2JyZWFrO2Nhc2UgMTpjb25zdCB0PXNbQSsrXTtsZXQgaT0xO2ZvcihyPTA7cjx0O3IrKyl7Y29uc3QgZT1zW0ErK10sdD1zW0ErK107Zm9yKGxldCBBPWU7QTw9ZSt0O0ErKylhW0FdPWkrK31icmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBVbmtub3duIGVuY29kaW5nIGZvcm1hdDogJHtufSBpbiBDRkZgKX1jb25zdCBnPUE7MTI4Jm4mJihzW2VdJj0xMjcsZnVuY3Rpb24oKXtjb25zdCBlPXNbQSsrXTtmb3Iocj0wO3I8ZTtyKyspe2NvbnN0IGU9c1tBKytdLG49KHNbQSsrXTw8OCkrKDI1NSZzW0ErK10pO2FbZV09aS5pbmRleE9mKHQuZ2V0KG4pKX19KCkpLEk9cy5zdWJhcnJheShlLGcpfXJldHVybiBuJj0xMjcsbmV3IGlhKG8sbixhLEkpfXBhcnNlRkRTZWxlY3QoQSxlKXtjb25zdCB0PXRoaXMuYnl0ZXMsaT10W0ErK10sYT1bXTtsZXQgcztzd2l0Y2goaSl7Y2FzZSAwOmZvcihzPTA7czxlOysrcyl7Y29uc3QgZT10W0ErK107YS5wdXNoKGUpfWJyZWFrO2Nhc2UgMzpjb25zdCBuPXRbQSsrXTw8OHx0W0ErK107Zm9yKHM9MDtzPG47KytzKXtsZXQgZT10W0ErK108PDh8dFtBKytdOzA9PT1zJiYwIT09ZSYmKFUoInBhcnNlRkRTZWxlY3Q6IFRoZSBmaXJzdCByYW5nZSBtdXN0IGhhdmUgYSBmaXJzdCBHSUQgb2YgMCAtLSB0cnlpbmcgdG8gcmVjb3Zlci4iKSxlPTApO2NvbnN0IGk9dFtBKytdLG49dFtBXTw8OHx0W0ErMV07Zm9yKGxldCBBPWU7QTxuOysrQSlhLnB1c2goaSl9QSs9MjticmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBwYXJzZUZEU2VsZWN0OiBVbmtub3duIGZvcm1hdCAiJHtpfSIuYCl9aWYoYS5sZW5ndGghPT1lKXRocm93IG5ldyBXKCJwYXJzZUZEU2VsZWN0OiBJbnZhbGlkIGZvbnQgZGF0YS4iKTtyZXR1cm4gbmV3IGFhKGksYSl9fWNsYXNzIE9pe2NvbnN0cnVjdG9yKCl7dGhpcy5oZWFkZXI9bnVsbCx0aGlzLm5hbWVzPVtdLHRoaXMudG9wRGljdD1udWxsLHRoaXMuc3RyaW5ncz1uZXcgamksdGhpcy5nbG9iYWxTdWJySW5kZXg9bnVsbCx0aGlzLmVuY29kaW5nPW51bGwsdGhpcy5jaGFyc2V0PW51bGwsdGhpcy5jaGFyU3RyaW5ncz1udWxsLHRoaXMuZmRBcnJheT1bXSx0aGlzLmZkU2VsZWN0PW51bGwsdGhpcy5pc0NJREZvbnQ9ITF9ZHVwbGljYXRlRmlyc3RHbHlwaCgpe2lmKHRoaXMuY2hhclN0cmluZ3MuY291bnQ+PTY1NTM1KXJldHVybiB2b2lkIFUoIk5vdCBlbm91Z2ggc3BhY2UgaW4gY2hhcnN0cmluZ3MgdG8gZHVwbGljYXRlIGZpcnN0IGdseXBoLiIpO2NvbnN0IEE9dGhpcy5jaGFyU3RyaW5ncy5nZXQoMCk7dGhpcy5jaGFyU3RyaW5ncy5hZGQoQSksdGhpcy5pc0NJREZvbnQmJnRoaXMuZmRTZWxlY3QuZmRTZWxlY3QucHVzaCh0aGlzLmZkU2VsZWN0LmZkU2VsZWN0WzBdKX1oYXNHbHlwaElkKEEpe3JldHVybiEoQTwwfHxBPj10aGlzLmNoYXJTdHJpbmdzLmNvdW50KSYmdGhpcy5jaGFyU3RyaW5ncy5nZXQoQSkubGVuZ3RoPjB9fWNsYXNzIFppe2NvbnN0cnVjdG9yKEEsZSx0LGkpe3RoaXMubWFqb3I9QSx0aGlzLm1pbm9yPWUsdGhpcy5oZHJTaXplPXQsdGhpcy5vZmZTaXplPWl9fWNsYXNzIGppe2NvbnN0cnVjdG9yKCl7dGhpcy5zdHJpbmdzPVtdfWdldChBKXtyZXR1cm4gQT49MCYmQTw9MzkwP3FpW0FdOkEtMzkxPD10aGlzLnN0cmluZ3MubGVuZ3RoP3RoaXMuc3RyaW5nc1tBLTM5MV06cWlbMF19Z2V0U0lEKEEpe2xldCBlPXFpLmluZGV4T2YoQSk7cmV0dXJuLTEhPT1lP2U6KGU9dGhpcy5zdHJpbmdzLmluZGV4T2YoQSksLTEhPT1lP2UrMzkxOi0xKX1hZGQoQSl7dGhpcy5zdHJpbmdzLnB1c2goQSl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuc3RyaW5ncy5sZW5ndGh9fWNsYXNzIFhpe2NvbnN0cnVjdG9yKCl7dGhpcy5vYmplY3RzPVtdLHRoaXMubGVuZ3RoPTB9YWRkKEEpe3RoaXMubGVuZ3RoKz1BLmxlbmd0aCx0aGlzLm9iamVjdHMucHVzaChBKX1zZXQoQSxlKXt0aGlzLmxlbmd0aCs9ZS5sZW5ndGgtdGhpcy5vYmplY3RzW0FdLmxlbmd0aCx0aGlzLm9iamVjdHNbQV09ZX1nZXQoQSl7cmV0dXJuIHRoaXMub2JqZWN0c1tBXX1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5vYmplY3RzLmxlbmd0aH19Y2xhc3MgVml7Y29uc3RydWN0b3IoQSxlKXt0aGlzLmtleVRvTmFtZU1hcD1BLmtleVRvTmFtZU1hcCx0aGlzLm5hbWVUb0tleU1hcD1BLm5hbWVUb0tleU1hcCx0aGlzLmRlZmF1bHRzPUEuZGVmYXVsdHMsdGhpcy50eXBlcz1BLnR5cGVzLHRoaXMub3Bjb2Rlcz1BLm9wY29kZXMsdGhpcy5vcmRlcj1BLm9yZGVyLHRoaXMuc3RyaW5ncz1lLHRoaXMudmFsdWVzPU9iamVjdC5jcmVhdGUobnVsbCl9c2V0QnlLZXkoQSxlKXtpZighKEEgaW4gdGhpcy5rZXlUb05hbWVNYXApKXJldHVybiExO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4hMDtmb3IoY29uc3QgdCBvZiBlKWlmKGlzTmFOKHQpKXJldHVybiBVKGBJbnZhbGlkIENGRkRpY3QgdmFsdWU6ICIke2V9IiBmb3Iga2V5ICIke0F9Ii5gKSwhMDtjb25zdCB0PXRoaXMudHlwZXNbQV07cmV0dXJuIm51bSIhPT10JiYic2lkIiE9PXQmJiJvZmZzZXQiIT09dHx8KGU9ZVswXSksdGhpcy52YWx1ZXNbQV09ZSwhMH1zZXRCeU5hbWUoQSxlKXtpZighKEEgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBXKGBJbnZhbGlkIGRpY3Rpb25hcnkgbmFtZSAiJHtBfSJgKTt0aGlzLnZhbHVlc1t0aGlzLm5hbWVUb0tleU1hcFtBXV09ZX1oYXNOYW1lKEEpe3JldHVybiB0aGlzLm5hbWVUb0tleU1hcFtBXWluIHRoaXMudmFsdWVzfWdldEJ5TmFtZShBKXtpZighKEEgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBXKGBJbnZhbGlkIGRpY3Rpb25hcnkgbmFtZSAke0F9ImApO2NvbnN0IGU9dGhpcy5uYW1lVG9LZXlNYXBbQV07cmV0dXJuIGUgaW4gdGhpcy52YWx1ZXM/dGhpcy52YWx1ZXNbZV06dGhpcy5kZWZhdWx0c1tlXX1yZW1vdmVCeU5hbWUoQSl7ZGVsZXRlIHRoaXMudmFsdWVzW3RoaXMubmFtZVRvS2V5TWFwW0FdXX1zdGF0aWMgY3JlYXRlVGFibGVzKEEpe2NvbnN0IGU9e2tleVRvTmFtZU1hcDp7fSxuYW1lVG9LZXlNYXA6e30sZGVmYXVsdHM6e30sdHlwZXM6e30sb3Bjb2Rlczp7fSxvcmRlcjpbXX07Zm9yKGNvbnN0IHQgb2YgQSl7Y29uc3QgQT1BcnJheS5pc0FycmF5KHRbMF0pPyh0WzBdWzBdPDw4KSt0WzBdWzFdOnRbMF07ZS5rZXlUb05hbWVNYXBbQV09dFsxXSxlLm5hbWVUb0tleU1hcFt0WzFdXT1BLGUudHlwZXNbQV09dFsyXSxlLmRlZmF1bHRzW0FdPXRbM10sZS5vcGNvZGVzW0FdPUFycmF5LmlzQXJyYXkodFswXSk/dFswXTpbdFswXV0sZS5vcmRlci5wdXNoKEEpfXJldHVybiBlfX1jb25zdCBfaT1bW1sxMiwzMF0sIlJPUyIsWyJzaWQiLCJzaWQiLCJudW0iXSxudWxsXSxbWzEyLDIwXSwiU3ludGhldGljQmFzZSIsIm51bSIsbnVsbF0sWzAsInZlcnNpb24iLCJzaWQiLG51bGxdLFsxLCJOb3RpY2UiLCJzaWQiLG51bGxdLFtbMTIsMF0sIkNvcHlyaWdodCIsInNpZCIsbnVsbF0sWzIsIkZ1bGxOYW1lIiwic2lkIixudWxsXSxbMywiRmFtaWx5TmFtZSIsInNpZCIsbnVsbF0sWzQsIldlaWdodCIsInNpZCIsbnVsbF0sW1sxMiwxXSwiaXNGaXhlZFBpdGNoIiwibnVtIiwwXSxbWzEyLDJdLCJJdGFsaWNBbmdsZSIsIm51bSIsMF0sW1sxMiwzXSwiVW5kZXJsaW5lUG9zaXRpb24iLCJudW0iLC0xMDBdLFtbMTIsNF0sIlVuZGVybGluZVRoaWNrbmVzcyIsIm51bSIsNTBdLFtbMTIsNV0sIlBhaW50VHlwZSIsIm51bSIsMF0sW1sxMiw2XSwiQ2hhcnN0cmluZ1R5cGUiLCJudW0iLDJdLFtbMTIsN10sIkZvbnRNYXRyaXgiLFsibnVtIiwibnVtIiwibnVtIiwibnVtIiwibnVtIiwibnVtIl0sWy4wMDEsMCwwLC4wMDEsMCwwXV0sWzEzLCJVbmlxdWVJRCIsIm51bSIsbnVsbF0sWzUsIkZvbnRCQm94IixbIm51bSIsIm51bSIsIm51bSIsIm51bSJdLFswLDAsMCwwXV0sW1sxMiw4XSwiU3Ryb2tlV2lkdGgiLCJudW0iLDBdLFsxNCwiWFVJRCIsImFycmF5IixudWxsXSxbMTUsImNoYXJzZXQiLCJvZmZzZXQiLDBdLFsxNiwiRW5jb2RpbmciLCJvZmZzZXQiLDBdLFsxNywiQ2hhclN0cmluZ3MiLCJvZmZzZXQiLDBdLFsxOCwiUHJpdmF0ZSIsWyJvZmZzZXQiLCJvZmZzZXQiXSxudWxsXSxbWzEyLDIxXSwiUG9zdFNjcmlwdCIsInNpZCIsbnVsbF0sW1sxMiwyMl0sIkJhc2VGb250TmFtZSIsInNpZCIsbnVsbF0sW1sxMiwyM10sIkJhc2VGb250QmxlbmQiLCJkZWx0YSIsbnVsbF0sW1sxMiwzMV0sIkNJREZvbnRWZXJzaW9uIiwibnVtIiwwXSxbWzEyLDMyXSwiQ0lERm9udFJldmlzaW9uIiwibnVtIiwwXSxbWzEyLDMzXSwiQ0lERm9udFR5cGUiLCJudW0iLDBdLFtbMTIsMzRdLCJDSURDb3VudCIsIm51bSIsODcyMF0sW1sxMiwzNV0sIlVJREJhc2UiLCJudW0iLG51bGxdLFtbMTIsMzddLCJGRFNlbGVjdCIsIm9mZnNldCIsbnVsbF0sW1sxMiwzNl0sIkZEQXJyYXkiLCJvZmZzZXQiLG51bGxdLFtbMTIsMzhdLCJGb250TmFtZSIsInNpZCIsbnVsbF1dO2NsYXNzIHppIGV4dGVuZHMgVml7c3RhdGljIGdldCB0YWJsZXMoKXtyZXR1cm4gSCh0aGlzLCJ0YWJsZXMiLHRoaXMuY3JlYXRlVGFibGVzKF9pKSl9Y29uc3RydWN0b3IoQSl7c3VwZXIoemkudGFibGVzLEEpLHRoaXMucHJpdmF0ZURpY3Q9bnVsbH19Y29uc3QgJGk9W1s2LCJCbHVlVmFsdWVzIiwiZGVsdGEiLG51bGxdLFs3LCJPdGhlckJsdWVzIiwiZGVsdGEiLG51bGxdLFs4LCJGYW1pbHlCbHVlcyIsImRlbHRhIixudWxsXSxbOSwiRmFtaWx5T3RoZXJCbHVlcyIsImRlbHRhIixudWxsXSxbWzEyLDldLCJCbHVlU2NhbGUiLCJudW0iLC4wMzk2MjVdLFtbMTIsMTBdLCJCbHVlU2hpZnQiLCJudW0iLDddLFtbMTIsMTFdLCJCbHVlRnV6eiIsIm51bSIsMV0sWzEwLCJTdGRIVyIsIm51bSIsbnVsbF0sWzExLCJTdGRWVyIsIm51bSIsbnVsbF0sW1sxMiwxMl0sIlN0ZW1TbmFwSCIsImRlbHRhIixudWxsXSxbWzEyLDEzXSwiU3RlbVNuYXBWIiwiZGVsdGEiLG51bGxdLFtbMTIsMTRdLCJGb3JjZUJvbGQiLCJudW0iLDBdLFtbMTIsMTddLCJMYW5ndWFnZUdyb3VwIiwibnVtIiwwXSxbWzEyLDE4XSwiRXhwYW5zaW9uRmFjdG9yIiwibnVtIiwuMDZdLFtbMTIsMTldLCJpbml0aWFsUmFuZG9tU2VlZCIsIm51bSIsMF0sWzIwLCJkZWZhdWx0V2lkdGhYIiwibnVtIiwwXSxbMjEsIm5vbWluYWxXaWR0aFgiLCJudW0iLDBdLFsxOSwiU3VicnMiLCJvZmZzZXQiLG51bGxdXTtjbGFzcyBBYSBleHRlbmRzIFZpe3N0YXRpYyBnZXQgdGFibGVzKCl7cmV0dXJuIEgodGhpcywidGFibGVzIix0aGlzLmNyZWF0ZVRhYmxlcygkaSkpfWNvbnN0cnVjdG9yKEEpe3N1cGVyKEFhLnRhYmxlcyxBKSx0aGlzLnN1YnJzSW5kZXg9bnVsbH19Y29uc3QgZWE9e0lTT19BRE9CRTowLEVYUEVSVDoxLEVYUEVSVF9TVUJTRVQ6Mn07Y2xhc3MgdGF7Y29uc3RydWN0b3IoQSxlLHQsaSl7dGhpcy5wcmVkZWZpbmVkPUEsdGhpcy5mb3JtYXQ9ZSx0aGlzLmNoYXJzZXQ9dCx0aGlzLnJhdz1pfX1jbGFzcyBpYXtjb25zdHJ1Y3RvcihBLGUsdCxpKXt0aGlzLnByZWRlZmluZWQ9QSx0aGlzLmZvcm1hdD1lLHRoaXMuZW5jb2Rpbmc9dCx0aGlzLnJhdz1pfX1jbGFzcyBhYXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMuZm9ybWF0PUEsdGhpcy5mZFNlbGVjdD1lfWdldEZESW5kZXgoQSl7cmV0dXJuIEE8MHx8QT49dGhpcy5mZFNlbGVjdC5sZW5ndGg/LTE6dGhpcy5mZFNlbGVjdFtBXX19Y2xhc3Mgc2F7Y29uc3RydWN0b3IoKXt0aGlzLm9mZnNldHM9T2JqZWN0LmNyZWF0ZShudWxsKX1pc1RyYWNraW5nKEEpe3JldHVybiBBIGluIHRoaXMub2Zmc2V0c310cmFjayhBLGUpe2lmKEEgaW4gdGhpcy5vZmZzZXRzKXRocm93IG5ldyBXKGBBbHJlYWR5IHRyYWNraW5nIGxvY2F0aW9uIG9mICR7QX1gKTt0aGlzLm9mZnNldHNbQV09ZX1vZmZzZXQoQSl7Zm9yKGNvbnN0IGUgaW4gdGhpcy5vZmZzZXRzKXRoaXMub2Zmc2V0c1tlXSs9QX1zZXRFbnRyeUxvY2F0aW9uKEEsZSx0KXtpZighKEEgaW4gdGhpcy5vZmZzZXRzKSl0aHJvdyBuZXcgVyhgTm90IHRyYWNraW5nIGxvY2F0aW9uIG9mICR7QX1gKTtjb25zdCBpPXQuZGF0YSxhPXRoaXMub2Zmc2V0c1tBXTtmb3IobGV0IEE9MCx0PWUubGVuZ3RoO0E8dDsrK0Epe2NvbnN0IHQ9NSpBK2Escz10KzEsbj10KzIscj10KzMsZz10KzQ7aWYoMjkhPT1pW3RdfHwwIT09aVtzXXx8MCE9PWlbbl18fDAhPT1pW3JdfHwwIT09aVtnXSl0aHJvdyBuZXcgVygid3JpdGluZyB0byBhbiBvZmZzZXQgdGhhdCBpcyBub3QgZW1wdHkiKTtjb25zdCBvPWVbQV07aVt0XT0yOSxpW3NdPW8+PjI0JjI1NSxpW25dPW8+PjE2JjI1NSxpW3JdPW8+PjgmMjU1LGlbZ109MjU1Jm99fX1jbGFzcyBuYXtjb25zdHJ1Y3RvcihBKXt0aGlzLmNmZj1BfWNvbXBpbGUoKXtjb25zdCBBPXRoaXMuY2ZmLGU9e2RhdGE6W10sbGVuZ3RoOjAsYWRkKEEpe3RyeXt0aGlzLmRhdGEucHVzaCguLi5BKX1jYXRjaHt0aGlzLmRhdGE9dGhpcy5kYXRhLmNvbmNhdChBKX10aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RofX0sdD10aGlzLmNvbXBpbGVIZWFkZXIoQS5oZWFkZXIpO2UuYWRkKHQpO2NvbnN0IGk9dGhpcy5jb21waWxlTmFtZUluZGV4KEEubmFtZXMpO2lmKGUuYWRkKGkpLEEuaXNDSURGb250JiZBLnRvcERpY3QuaGFzTmFtZSgiRm9udE1hdHJpeCIpKXtjb25zdCBlPUEudG9wRGljdC5nZXRCeU5hbWUoIkZvbnRNYXRyaXgiKTtBLnRvcERpY3QucmVtb3ZlQnlOYW1lKCJGb250TWF0cml4Iik7Zm9yKGNvbnN0IHQgb2YgQS5mZEFycmF5KXtsZXQgQT1lLnNsaWNlKDApO3QuaGFzTmFtZSgiRm9udE1hdHJpeCIpJiYoQT0kLnRyYW5zZm9ybShBLHQuZ2V0QnlOYW1lKCJGb250TWF0cml4IikpKSx0LnNldEJ5TmFtZSgiRm9udE1hdHJpeCIsQSl9fWNvbnN0IGE9QS50b3BEaWN0LmdldEJ5TmFtZSgiWFVJRCIpO2E/Lmxlbmd0aD4xNiYmQS50b3BEaWN0LnJlbW92ZUJ5TmFtZSgiWFVJRCIpLEEudG9wRGljdC5zZXRCeU5hbWUoImNoYXJzZXQiLDApO2xldCBzPXRoaXMuY29tcGlsZVRvcERpY3RzKFtBLnRvcERpY3RdLGUubGVuZ3RoLEEuaXNDSURGb250KTtlLmFkZChzLm91dHB1dCk7Y29uc3Qgbj1zLnRyYWNrZXJzWzBdLHI9dGhpcy5jb21waWxlU3RyaW5nSW5kZXgoQS5zdHJpbmdzLnN0cmluZ3MpO2UuYWRkKHIpO2NvbnN0IGc9dGhpcy5jb21waWxlSW5kZXgoQS5nbG9iYWxTdWJySW5kZXgpO2lmKGUuYWRkKGcpLEEuZW5jb2RpbmcmJkEudG9wRGljdC5oYXNOYW1lKCJFbmNvZGluZyIpKWlmKEEuZW5jb2RpbmcucHJlZGVmaW5lZCluLnNldEVudHJ5TG9jYXRpb24oIkVuY29kaW5nIixbQS5lbmNvZGluZy5mb3JtYXRdLGUpO2Vsc2V7Y29uc3QgdD10aGlzLmNvbXBpbGVFbmNvZGluZyhBLmVuY29kaW5nKTtuLnNldEVudHJ5TG9jYXRpb24oIkVuY29kaW5nIixbZS5sZW5ndGhdLGUpLGUuYWRkKHQpfWNvbnN0IG89dGhpcy5jb21waWxlQ2hhcnNldChBLmNoYXJzZXQsQS5jaGFyU3RyaW5ncy5jb3VudCxBLnN0cmluZ3MsQS5pc0NJREZvbnQpO24uc2V0RW50cnlMb2NhdGlvbigiY2hhcnNldCIsW2UubGVuZ3RoXSxlKSxlLmFkZChvKTtjb25zdCBJPXRoaXMuY29tcGlsZUNoYXJTdHJpbmdzKEEuY2hhclN0cmluZ3MpO2lmKG4uc2V0RW50cnlMb2NhdGlvbigiQ2hhclN0cmluZ3MiLFtlLmxlbmd0aF0sZSksZS5hZGQoSSksQS5pc0NJREZvbnQpe24uc2V0RW50cnlMb2NhdGlvbigiRkRTZWxlY3QiLFtlLmxlbmd0aF0sZSk7Y29uc3QgdD10aGlzLmNvbXBpbGVGRFNlbGVjdChBLmZkU2VsZWN0KTtlLmFkZCh0KSxzPXRoaXMuY29tcGlsZVRvcERpY3RzKEEuZmRBcnJheSxlLmxlbmd0aCwhMCksbi5zZXRFbnRyeUxvY2F0aW9uKCJGREFycmF5IixbZS5sZW5ndGhdLGUpLGUuYWRkKHMub3V0cHV0KTtjb25zdCBpPXMudHJhY2tlcnM7dGhpcy5jb21waWxlUHJpdmF0ZURpY3RzKEEuZmRBcnJheSxpLGUpfXJldHVybiB0aGlzLmNvbXBpbGVQcml2YXRlRGljdHMoW0EudG9wRGljdF0sW25dLGUpLGUuYWRkKFswXSksZS5kYXRhfWVuY29kZU51bWJlcihBKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihBKT90aGlzLmVuY29kZUludGVnZXIoQSk6dGhpcy5lbmNvZGVGbG9hdChBKX1zdGF0aWMgZ2V0IEVuY29kZUZsb2F0UmVnRXhwKCl7cmV0dXJuIEgodGhpcywiRW5jb2RlRmxvYXRSZWdFeHAiLC9cLihcZCo/KSg/Ojl7NSwyMH18MHs1LDIwfSlcZHswLDJ9KD86ZSguKyl8JCkvKX1lbmNvZGVGbG9hdChBKXtsZXQgZT1BLnRvU3RyaW5nKCk7Y29uc3QgdD1uYS5FbmNvZGVGbG9hdFJlZ0V4cC5leGVjKGUpO2lmKHQpe2NvbnN0IGk9cGFyc2VGbG9hdCgiMWUiKygodFsyXT8rdFsyXTowKSt0WzFdLmxlbmd0aCkpO2U9KE1hdGgucm91bmQoQSppKS9pKS50b1N0cmluZygpfWxldCBpLGEscz0iIjtmb3IoaT0wLGE9ZS5sZW5ndGg7aTxhOysraSl7Y29uc3QgQT1lW2ldO3MrPSJlIj09PUE/Ii0iPT09ZVsrK2ldPyJjIjoiYiI6Ii4iPT09QT8iYSI6Ii0iPT09QT8iZSI6QX1zKz0xJnMubGVuZ3RoPyJmIjoiZmYiO2NvbnN0IG49WzMwXTtmb3IoaT0wLGE9cy5sZW5ndGg7aTxhO2krPTIpbi5wdXNoKHBhcnNlSW50KHMuc3Vic3RyaW5nKGksaSsyKSwxNikpO3JldHVybiBufWVuY29kZUludGVnZXIoQSl7bGV0IGU7cmV0dXJuIGU9QT49LTEwNyYmQTw9MTA3P1tBKzEzOV06QT49MTA4JiZBPD0xMTMxP1syNDcrKChBLT0xMDgpPj44KSwyNTUmQV06QT49LTExMzEmJkE8PS0xMDg/WzI1MSsoKEE9LUEtMTA4KT4+OCksMjU1JkFdOkE+PS0zMjc2OCYmQTw9MzI3Njc/WzI4LEE+PjgmMjU1LDI1NSZBXTpbMjksQT4+MjQmMjU1LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0sZX1jb21waWxlSGVhZGVyKEEpe3JldHVybltBLm1ham9yLEEubWlub3IsNCxBLm9mZlNpemVdfWNvbXBpbGVOYW1lSW5kZXgoQSl7Y29uc3QgZT1uZXcgWGk7Zm9yKGNvbnN0IHQgb2YgQSl7Y29uc3QgQT1NYXRoLm1pbih0Lmxlbmd0aCwxMjcpO2xldCBpPW5ldyBBcnJheShBKTtmb3IobGV0IGU9MDtlPEE7ZSsrKXtsZXQgQT10W2VdOyhBPCIhInx8QT4ifiJ8fCJbIj09PUF8fCJdIj09PUF8fCIoIj09PUF8fCIpIj09PUF8fCJ7Ij09PUF8fCJ9Ij09PUF8fCI8Ij09PUF8fCI+Ij09PUF8fCIvIj09PUF8fCIlIj09PUEpJiYoQT0iXyIpLGlbZV09QX1pPWkuam9pbigiIiksIiI9PT1pJiYoaT0iQmFkX0ZvbnRfTmFtZSIpLGUuYWRkKGooaSkpfXJldHVybiB0aGlzLmNvbXBpbGVJbmRleChlKX1jb21waWxlVG9wRGljdHMoQSxlLHQpe2NvbnN0IGk9W107bGV0IGE9bmV3IFhpO2Zvcihjb25zdCBzIG9mIEEpe3QmJihzLnJlbW92ZUJ5TmFtZSgiQ0lERm9udFZlcnNpb24iKSxzLnJlbW92ZUJ5TmFtZSgiQ0lERm9udFJldmlzaW9uIikscy5yZW1vdmVCeU5hbWUoIkNJREZvbnRUeXBlIikscy5yZW1vdmVCeU5hbWUoIkNJRENvdW50Iikscy5yZW1vdmVCeU5hbWUoIlVJREJhc2UiKSk7Y29uc3QgQT1uZXcgc2Esbj10aGlzLmNvbXBpbGVEaWN0KHMsQSk7aS5wdXNoKEEpLGEuYWRkKG4pLEEub2Zmc2V0KGUpfXJldHVybiBhPXRoaXMuY29tcGlsZUluZGV4KGEsaSkse3RyYWNrZXJzOmksb3V0cHV0OmF9fWNvbXBpbGVQcml2YXRlRGljdHMoQSxlLHQpe2ZvcihsZXQgaT0wLGE9QS5sZW5ndGg7aTxhOysraSl7Y29uc3QgYT1BW2ldLHM9YS5wcml2YXRlRGljdDtpZighc3x8IWEuaGFzTmFtZSgiUHJpdmF0ZSIpKXRocm93IG5ldyBXKCJUaGVyZSBtdXN0IGJlIGEgcHJpdmF0ZSBkaWN0aW9uYXJ5LiIpO2NvbnN0IG49bmV3IHNhLHI9dGhpcy5jb21waWxlRGljdChzLG4pO2xldCBnPXQubGVuZ3RoO2lmKG4ub2Zmc2V0KGcpLHIubGVuZ3RofHwoZz0wKSxlW2ldLnNldEVudHJ5TG9jYXRpb24oIlByaXZhdGUiLFtyLmxlbmd0aCxnXSx0KSx0LmFkZChyKSxzLnN1YnJzSW5kZXgmJnMuaGFzTmFtZSgiU3VicnMiKSl7Y29uc3QgQT10aGlzLmNvbXBpbGVJbmRleChzLnN1YnJzSW5kZXgpO24uc2V0RW50cnlMb2NhdGlvbigiU3VicnMiLFtyLmxlbmd0aF0sdCksdC5hZGQoQSl9fX1jb21waWxlRGljdChBLGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGkgb2YgQS5vcmRlcil7aWYoIShpIGluIEEudmFsdWVzKSljb250aW51ZTtsZXQgYT1BLnZhbHVlc1tpXSxzPUEudHlwZXNbaV07aWYoQXJyYXkuaXNBcnJheShzKXx8KHM9W3NdKSxBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pLDAhPT1hLmxlbmd0aCl7Zm9yKGxldCBuPTAscj1zLmxlbmd0aDtuPHI7KytuKXtjb25zdCByPXNbbl0sZz1hW25dO3N3aXRjaChyKXtjYXNlIm51bSI6Y2FzZSJzaWQiOnQucHVzaCguLi50aGlzLmVuY29kZU51bWJlcihnKSk7YnJlYWs7Y2FzZSJvZmZzZXQiOmNvbnN0IHM9QS5rZXlUb05hbWVNYXBbaV07ZS5pc1RyYWNraW5nKHMpfHxlLnRyYWNrKHMsdC5sZW5ndGgpLHQucHVzaCgyOSwwLDAsMCwwKTticmVhaztjYXNlImFycmF5IjpjYXNlImRlbHRhIjp0LnB1c2goLi4udGhpcy5lbmNvZGVOdW1iZXIoZykpO2ZvcihsZXQgQT0xLGU9YS5sZW5ndGg7QTxlOysrQSl0LnB1c2goLi4udGhpcy5lbmNvZGVOdW1iZXIoYVtBXSkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFcoYFVua25vd24gZGF0YSB0eXBlIG9mICR7cn1gKX19dC5wdXNoKC4uLkEub3Bjb2Rlc1tpXSl9fXJldHVybiB0fWNvbXBpbGVTdHJpbmdJbmRleChBKXtjb25zdCBlPW5ldyBYaTtmb3IoY29uc3QgdCBvZiBBKWUuYWRkKGoodCkpO3JldHVybiB0aGlzLmNvbXBpbGVJbmRleChlKX1jb21waWxlQ2hhclN0cmluZ3MoQSl7Y29uc3QgZT1uZXcgWGk7Zm9yKGxldCB0PTA7dDxBLmNvdW50O3QrKyl7Y29uc3QgaT1BLmdldCh0KTswIT09aS5sZW5ndGg/ZS5hZGQoaSk6ZS5hZGQobmV3IFVpbnQ4QXJyYXkoWzEzOSwxNF0pKX1yZXR1cm4gdGhpcy5jb21waWxlSW5kZXgoZSl9Y29tcGlsZUNoYXJzZXQoQSxlLHQsaSl7bGV0IGE7Y29uc3Qgcz1lLTE7aWYoaSlhPW5ldyBVaW50OEFycmF5KFsyLDAsMCxzPj44JjI1NSwyNTUmc10pO2Vsc2V7YT1uZXcgVWludDhBcnJheSgxKzIqcyksYVswXT0wO2xldCBlPTA7Y29uc3QgaT1BLmNoYXJzZXQubGVuZ3RoO2xldCBuPSExO2ZvcihsZXQgcz0xO3M8YS5sZW5ndGg7cys9Mil7bGV0IHI9MDtpZihlPGkpe2NvbnN0IGk9QS5jaGFyc2V0W2UrK107cj10LmdldFNJRChpKSwtMT09PXImJihyPTAsbnx8KG49ITAsVShgQ291bGRuJ3QgZmluZCAke2l9IGluIENGRiBzdHJpbmdzYCkpKX1hW3NdPXI+PjgmMjU1LGFbcysxXT0yNTUmcn19cmV0dXJuIHRoaXMuY29tcGlsZVR5cGVkQXJyYXkoYSl9Y29tcGlsZUVuY29kaW5nKEEpe3JldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KEEucmF3KX1jb21waWxlRkRTZWxlY3QoQSl7Y29uc3QgZT1BLmZvcm1hdDtsZXQgdCxpO3N3aXRjaChlKXtjYXNlIDA6Zm9yKHQ9bmV3IFVpbnQ4QXJyYXkoMStBLmZkU2VsZWN0Lmxlbmd0aCksdFswXT1lLGk9MDtpPEEuZmRTZWxlY3QubGVuZ3RoO2krKyl0W2krMV09QS5mZFNlbGVjdFtpXTticmVhaztjYXNlIDM6Y29uc3QgYT0wO2xldCBzPUEuZmRTZWxlY3RbMF07Y29uc3Qgbj1bZSwwLDAsYT4+OCYyNTUsMjU1JmEsc107Zm9yKGk9MTtpPEEuZmRTZWxlY3QubGVuZ3RoO2krKyl7Y29uc3QgZT1BLmZkU2VsZWN0W2ldO2UhPT1zJiYobi5wdXNoKGk+PjgmMjU1LDI1NSZpLGUpLHM9ZSl9Y29uc3Qgcj0obi5sZW5ndGgtMykvMztuWzFdPXI+PjgmMjU1LG5bMl09MjU1JnIsbi5wdXNoKGk+PjgmMjU1LDI1NSZpKSx0PW5ldyBVaW50OEFycmF5KG4pfXJldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KHQpfWNvbXBpbGVUeXBlZEFycmF5KEEpe3JldHVybiBBcnJheS5mcm9tKEEpfWNvbXBpbGVJbmRleChBLGU9W10pe2NvbnN0IHQ9QS5vYmplY3RzLGk9dC5sZW5ndGg7aWYoMD09PWkpcmV0dXJuWzAsMF07Y29uc3QgYT1baT4+OCYyNTUsMjU1JmldO2xldCBzLG4scj0xO2ZvcihzPTA7czxpOysrcylyKz10W3NdLmxlbmd0aDtuPXI8MjU2PzE6cjw2NTUzNj8yOnI8MTY3NzcyMTY/Mzo0LGEucHVzaChuKTtsZXQgZz0xO2ZvcihzPTA7czxpKzE7cysrKTE9PT1uP2EucHVzaCgyNTUmZyk6Mj09PW4/YS5wdXNoKGc+PjgmMjU1LDI1NSZnKTozPT09bj9hLnB1c2goZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnKTphLnB1c2goZz4+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcpLHRbc10mJihnKz10W3NdLmxlbmd0aCk7Zm9yKHM9MDtzPGk7cysrKWVbc10mJmVbc10ub2Zmc2V0KGEubGVuZ3RoKSxhLnB1c2goLi4udFtzXSk7cmV0dXJuIGF9fWNvbnN0IHJhPWJBKChmdW5jdGlvbihBKXtBLkE9NjUsQS5BRT0xOTgsQS5BRWFjdXRlPTUwOCxBLkFFbWFjcm9uPTQ4MixBLkFFc21hbGw9NjM0NjIsQS5BYWN1dGU9MTkzLEEuQWFjdXRlc21hbGw9NjM0NTcsQS5BYnJldmU9MjU4LEEuQWJyZXZlYWN1dGU9Nzg1NCxBLkFicmV2ZWN5cmlsbGljPTEyMzIsQS5BYnJldmVkb3RiZWxvdz03ODYyLEEuQWJyZXZlZ3JhdmU9Nzg1NixBLkFicmV2ZWhvb2thYm92ZT03ODU4LEEuQWJyZXZldGlsZGU9Nzg2MCxBLkFjYXJvbj00NjEsQS5BY2lyY2xlPTkzOTgsQS5BY2lyY3VtZmxleD0xOTQsQS5BY2lyY3VtZmxleGFjdXRlPTc4NDQsQS5BY2lyY3VtZmxleGRvdGJlbG93PTc4NTIsQS5BY2lyY3VtZmxleGdyYXZlPTc4NDYsQS5BY2lyY3VtZmxleGhvb2thYm92ZT03ODQ4LEEuQWNpcmN1bWZsZXhzbWFsbD02MzQ1OCxBLkFjaXJjdW1mbGV4dGlsZGU9Nzg1MCxBLkFjdXRlPTYzMTc3LEEuQWN1dGVzbWFsbD02MzQxMixBLkFjeXJpbGxpYz0xMDQwLEEuQWRibGdyYXZlPTUxMixBLkFkaWVyZXNpcz0xOTYsQS5BZGllcmVzaXNjeXJpbGxpYz0xMjM0LEEuQWRpZXJlc2lzbWFjcm9uPTQ3OCxBLkFkaWVyZXNpc3NtYWxsPTYzNDYwLEEuQWRvdGJlbG93PTc4NDAsQS5BZG90bWFjcm9uPTQ4MCxBLkFncmF2ZT0xOTIsQS5BZ3JhdmVzbWFsbD02MzQ1NixBLkFob29rYWJvdmU9Nzg0MixBLkFpZWN5cmlsbGljPTEyMzYsQS5BaW52ZXJ0ZWRicmV2ZT01MTQsQS5BbHBoYT05MTMsQS5BbHBoYXRvbm9zPTkwMixBLkFtYWNyb249MjU2LEEuQW1vbm9zcGFjZT02NTMxMyxBLkFvZ29uZWs9MjYwLEEuQXJpbmc9MTk3LEEuQXJpbmdhY3V0ZT01MDYsQS5BcmluZ2JlbG93PTc2ODAsQS5BcmluZ3NtYWxsPTYzNDYxLEEuQXNtYWxsPTYzMzI5LEEuQXRpbGRlPTE5NSxBLkF0aWxkZXNtYWxsPTYzNDU5LEEuQXliYXJtZW5pYW49MTMyOSxBLkI9NjYsQS5CY2lyY2xlPTkzOTksQS5CZG90YWNjZW50PTc2ODIsQS5CZG90YmVsb3c9NzY4NCxBLkJlY3lyaWxsaWM9MTA0MSxBLkJlbmFybWVuaWFuPTEzMzAsQS5CZXRhPTkxNCxBLkJob29rPTM4NSxBLkJsaW5lYmVsb3c9NzY4NixBLkJtb25vc3BhY2U9NjUzMTQsQS5CcmV2ZXNtYWxsPTYzMjIwLEEuQnNtYWxsPTYzMzMwLEEuQnRvcGJhcj0zODYsQS5DPTY3LEEuQ2Fhcm1lbmlhbj0xMzQyLEEuQ2FjdXRlPTI2MixBLkNhcm9uPTYzMTc4LEEuQ2Fyb25zbWFsbD02MzIyMSxBLkNjYXJvbj0yNjgsQS5DY2VkaWxsYT0xOTksQS5DY2VkaWxsYWFjdXRlPTc2ODgsQS5DY2VkaWxsYXNtYWxsPTYzNDYzLEEuQ2NpcmNsZT05NDAwLEEuQ2NpcmN1bWZsZXg9MjY0LEEuQ2RvdD0yNjYsQS5DZG90YWNjZW50PTI2NixBLkNlZGlsbGFzbWFsbD02MzQxNixBLkNoYWFybWVuaWFuPTEzNTMsQS5DaGVhYmtoYXNpYW5jeXJpbGxpYz0xMjEyLEEuQ2hlY3lyaWxsaWM9MTA2MyxBLkNoZWRlc2NlbmRlcmFia2hhc2lhbmN5cmlsbGljPTEyMTQsQS5DaGVkZXNjZW5kZXJjeXJpbGxpYz0xMjA2LEEuQ2hlZGllcmVzaXNjeXJpbGxpYz0xMjY4LEEuQ2hlaGFybWVuaWFuPTEzNDcsQS5DaGVraGFrYXNzaWFuY3lyaWxsaWM9MTIyNyxBLkNoZXZlcnRpY2Fsc3Ryb2tlY3lyaWxsaWM9MTIwOCxBLkNoaT05MzUsQS5DaG9vaz0zOTEsQS5DaXJjdW1mbGV4c21hbGw9NjMyMjIsQS5DbW9ub3NwYWNlPTY1MzE1LEEuQ29hcm1lbmlhbj0xMzYxLEEuQ3NtYWxsPTYzMzMxLEEuRD02OCxBLkRaPTQ5NyxBLkRaY2Fyb249NDUyLEEuRGFhcm1lbmlhbj0xMzMyLEEuRGFmcmljYW49MzkzLEEuRGNhcm9uPTI3MCxBLkRjZWRpbGxhPTc2OTYsQS5EY2lyY2xlPTk0MDEsQS5EY2lyY3VtZmxleGJlbG93PTc2OTgsQS5EY3JvYXQ9MjcyLEEuRGRvdGFjY2VudD03NjkwLEEuRGRvdGJlbG93PTc2OTIsQS5EZWN5cmlsbGljPTEwNDQsQS5EZWljb3B0aWM9MTAwNixBLkRlbHRhPTg3MTAsQS5EZWx0YWdyZWVrPTkxNixBLkRob29rPTM5NCxBLkRpZXJlc2lzPTYzMTc5LEEuRGllcmVzaXNBY3V0ZT02MzE4MCxBLkRpZXJlc2lzR3JhdmU9NjMxODEsQS5EaWVyZXNpc3NtYWxsPTYzNDAwLEEuRGlnYW1tYWdyZWVrPTk4OCxBLkRqZWN5cmlsbGljPTEwMjYsQS5EbGluZWJlbG93PTc2OTQsQS5EbW9ub3NwYWNlPTY1MzE2LEEuRG90YWNjZW50c21hbGw9NjMyMjMsQS5Ec2xhc2g9MjcyLEEuRHNtYWxsPTYzMzMyLEEuRHRvcGJhcj0zOTUsQS5Eej00OTgsQS5EemNhcm9uPTQ1MyxBLkR6ZWFia2hhc2lhbmN5cmlsbGljPTEyNDgsQS5EemVjeXJpbGxpYz0xMDI5LEEuRHpoZWN5cmlsbGljPTEwMzksQS5FPTY5LEEuRWFjdXRlPTIwMSxBLkVhY3V0ZXNtYWxsPTYzNDY1LEEuRWJyZXZlPTI3NixBLkVjYXJvbj0yODIsQS5FY2VkaWxsYWJyZXZlPTc3MDgsQS5FY2hhcm1lbmlhbj0xMzMzLEEuRWNpcmNsZT05NDAyLEEuRWNpcmN1bWZsZXg9MjAyLEEuRWNpcmN1bWZsZXhhY3V0ZT03ODcwLEEuRWNpcmN1bWZsZXhiZWxvdz03NzA0LEEuRWNpcmN1bWZsZXhkb3RiZWxvdz03ODc4LEEuRWNpcmN1bWZsZXhncmF2ZT03ODcyLEEuRWNpcmN1bWZsZXhob29rYWJvdmU9Nzg3NCxBLkVjaXJjdW1mbGV4c21hbGw9NjM0NjYsQS5FY2lyY3VtZmxleHRpbGRlPTc4NzYsQS5FY3lyaWxsaWM9MTAyOCxBLkVkYmxncmF2ZT01MTYsQS5FZGllcmVzaXM9MjAzLEEuRWRpZXJlc2lzc21hbGw9NjM0NjcsQS5FZG90PTI3OCxBLkVkb3RhY2NlbnQ9Mjc4LEEuRWRvdGJlbG93PTc4NjQsQS5FZmN5cmlsbGljPTEwNjAsQS5FZ3JhdmU9MjAwLEEuRWdyYXZlc21hbGw9NjM0NjQsQS5FaGFybWVuaWFuPTEzMzUsQS5FaG9va2Fib3ZlPTc4NjYsQS5FaWdodHJvbWFuPTg1NTEsQS5FaW52ZXJ0ZWRicmV2ZT01MTgsQS5FaW90aWZpZWRjeXJpbGxpYz0xMTI0LEEuRWxjeXJpbGxpYz0xMDUxLEEuRWxldmVucm9tYW49ODU1NCxBLkVtYWNyb249Mjc0LEEuRW1hY3JvbmFjdXRlPTc3MDIsQS5FbWFjcm9uZ3JhdmU9NzcwMCxBLkVtY3lyaWxsaWM9MTA1MixBLkVtb25vc3BhY2U9NjUzMTcsQS5FbmN5cmlsbGljPTEwNTMsQS5FbmRlc2NlbmRlcmN5cmlsbGljPTExODYsQS5Fbmc9MzMwLEEuRW5naGVjeXJpbGxpYz0xMTg4LEEuRW5ob29rY3lyaWxsaWM9MTIyMyxBLkVvZ29uZWs9MjgwLEEuRW9wZW49NDAwLEEuRXBzaWxvbj05MTcsQS5FcHNpbG9udG9ub3M9OTA0LEEuRXJjeXJpbGxpYz0xMDU2LEEuRXJldmVyc2VkPTM5OCxBLkVyZXZlcnNlZGN5cmlsbGljPTEwNjksQS5Fc2N5cmlsbGljPTEwNTcsQS5Fc2Rlc2NlbmRlcmN5cmlsbGljPTExOTQsQS5Fc2g9NDI1LEEuRXNtYWxsPTYzMzMzLEEuRXRhPTkxOSxBLkV0YXJtZW5pYW49MTMzNixBLkV0YXRvbm9zPTkwNSxBLkV0aD0yMDgsQS5FdGhzbWFsbD02MzQ3MixBLkV0aWxkZT03ODY4LEEuRXRpbGRlYmVsb3c9NzcwNixBLkV1cm89ODM2NCxBLkV6aD00MzksQS5FemhjYXJvbj00OTQsQS5FemhyZXZlcnNlZD00NDAsQS5GPTcwLEEuRmNpcmNsZT05NDAzLEEuRmRvdGFjY2VudD03NzEwLEEuRmVoYXJtZW5pYW49MTM2NixBLkZlaWNvcHRpYz05OTYsQS5GaG9vaz00MDEsQS5GaXRhY3lyaWxsaWM9MTEzOCxBLkZpdmVyb21hbj04NTQ4LEEuRm1vbm9zcGFjZT02NTMxOCxBLkZvdXJyb21hbj04NTQ3LEEuRnNtYWxsPTYzMzM0LEEuRz03MSxBLkdCc3F1YXJlPTEzMTkxLEEuR2FjdXRlPTUwMCxBLkdhbW1hPTkxNSxBLkdhbW1hYWZyaWNhbj00MDQsQS5HYW5naWFjb3B0aWM9MTAwMixBLkdicmV2ZT0yODYsQS5HY2Fyb249NDg2LEEuR2NlZGlsbGE9MjkwLEEuR2NpcmNsZT05NDA0LEEuR2NpcmN1bWZsZXg9Mjg0LEEuR2NvbW1hYWNjZW50PTI5MCxBLkdkb3Q9Mjg4LEEuR2RvdGFjY2VudD0yODgsQS5HZWN5cmlsbGljPTEwNDMsQS5HaGFkYXJtZW5pYW49MTM0NixBLkdoZW1pZGRsZWhvb2tjeXJpbGxpYz0xMTcyLEEuR2hlc3Ryb2tlY3lyaWxsaWM9MTE3MCxBLkdoZXVwdHVybmN5cmlsbGljPTExNjgsQS5HaG9vaz00MDMsQS5HaW1hcm1lbmlhbj0xMzMxLEEuR2plY3lyaWxsaWM9MTAyNyxBLkdtYWNyb249NzcxMixBLkdtb25vc3BhY2U9NjUzMTksQS5HcmF2ZT02MzE4MixBLkdyYXZlc21hbGw9NjMzMjgsQS5Hc21hbGw9NjMzMzUsQS5Hc21hbGxob29rPTY2NyxBLkdzdHJva2U9NDg0LEEuSD03MixBLkgxODUzMz05Njc5LEEuSDE4NTQzPTk2NDIsQS5IMTg1NTE9OTY0MyxBLkgyMjA3Mz05NjMzLEEuSFBzcXVhcmU9MTMyNTksQS5IYWFia2hhc2lhbmN5cmlsbGljPTExOTIsQS5IYWRlc2NlbmRlcmN5cmlsbGljPTEyMDIsQS5IYXJkc2lnbmN5cmlsbGljPTEwNjYsQS5IYmFyPTI5NCxBLkhicmV2ZWJlbG93PTc3MjIsQS5IY2VkaWxsYT03NzIwLEEuSGNpcmNsZT05NDA1LEEuSGNpcmN1bWZsZXg9MjkyLEEuSGRpZXJlc2lzPTc3MTgsQS5IZG90YWNjZW50PTc3MTQsQS5IZG90YmVsb3c9NzcxNixBLkhtb25vc3BhY2U9NjUzMjAsQS5Ib2FybWVuaWFuPTEzNDQsQS5Ib3JpY29wdGljPTFlMyxBLkhzbWFsbD02MzMzNixBLkh1bmdhcnVtbGF1dD02MzE4MyxBLkh1bmdhcnVtbGF1dHNtYWxsPTYzMjI0LEEuSHpzcXVhcmU9MTMyMDAsQS5JPTczLEEuSUFjeXJpbGxpYz0xMDcxLEEuSUo9MzA2LEEuSVVjeXJpbGxpYz0xMDcwLEEuSWFjdXRlPTIwNSxBLklhY3V0ZXNtYWxsPTYzNDY5LEEuSWJyZXZlPTMwMCxBLkljYXJvbj00NjMsQS5JY2lyY2xlPTk0MDYsQS5JY2lyY3VtZmxleD0yMDYsQS5JY2lyY3VtZmxleHNtYWxsPTYzNDcwLEEuSWN5cmlsbGljPTEwMzAsQS5JZGJsZ3JhdmU9NTIwLEEuSWRpZXJlc2lzPTIwNyxBLklkaWVyZXNpc2FjdXRlPTc3MjYsQS5JZGllcmVzaXNjeXJpbGxpYz0xMjUyLEEuSWRpZXJlc2lzc21hbGw9NjM0NzEsQS5JZG90PTMwNCxBLklkb3RhY2NlbnQ9MzA0LEEuSWRvdGJlbG93PTc4ODIsQS5JZWJyZXZlY3lyaWxsaWM9MTIzOCxBLkllY3lyaWxsaWM9MTA0NSxBLklmcmFrdHVyPTg0NjUsQS5JZ3JhdmU9MjA0LEEuSWdyYXZlc21hbGw9NjM0NjgsQS5JaG9va2Fib3ZlPTc4ODAsQS5JaWN5cmlsbGljPTEwNDgsQS5JaW52ZXJ0ZWRicmV2ZT01MjIsQS5JaXNob3J0Y3lyaWxsaWM9MTA0OSxBLkltYWNyb249Mjk4LEEuSW1hY3JvbmN5cmlsbGljPTEyNTAsQS5JbW9ub3NwYWNlPTY1MzIxLEEuSW5pYXJtZW5pYW49MTMzOSxBLklvY3lyaWxsaWM9MTAyNSxBLklvZ29uZWs9MzAyLEEuSW90YT05MjEsQS5Jb3RhYWZyaWNhbj00MDYsQS5Jb3RhZGllcmVzaXM9OTM4LEEuSW90YXRvbm9zPTkwNixBLklzbWFsbD02MzMzNyxBLklzdHJva2U9NDA3LEEuSXRpbGRlPTI5NixBLkl0aWxkZWJlbG93PTc3MjQsQS5JemhpdHNhY3lyaWxsaWM9MTE0MCxBLkl6aGl0c2FkYmxncmF2ZWN5cmlsbGljPTExNDIsQS5KPTc0LEEuSmFhcm1lbmlhbj0xMzQ1LEEuSmNpcmNsZT05NDA3LEEuSmNpcmN1bWZsZXg9MzA4LEEuSmVjeXJpbGxpYz0xMDMyLEEuSmhlaGFybWVuaWFuPTEzNTUsQS5KbW9ub3NwYWNlPTY1MzIyLEEuSnNtYWxsPTYzMzM4LEEuSz03NSxBLktCc3F1YXJlPTEzMTg5LEEuS0tzcXVhcmU9MTMyNjEsQS5LYWJhc2hraXJjeXJpbGxpYz0xMTg0LEEuS2FjdXRlPTc3MjgsQS5LYWN5cmlsbGljPTEwNTAsQS5LYWRlc2NlbmRlcmN5cmlsbGljPTExNzgsQS5LYWhvb2tjeXJpbGxpYz0xMjE5LEEuS2FwcGE9OTIyLEEuS2FzdHJva2VjeXJpbGxpYz0xMTgyLEEuS2F2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTExODAsQS5LY2Fyb249NDg4LEEuS2NlZGlsbGE9MzEwLEEuS2NpcmNsZT05NDA4LEEuS2NvbW1hYWNjZW50PTMxMCxBLktkb3RiZWxvdz03NzMwLEEuS2VoYXJtZW5pYW49MTM2NCxBLktlbmFybWVuaWFuPTEzNDMsQS5LaGFjeXJpbGxpYz0xMDYxLEEuS2hlaWNvcHRpYz05OTgsQS5LaG9vaz00MDgsQS5LamVjeXJpbGxpYz0xMDM2LEEuS2xpbmViZWxvdz03NzMyLEEuS21vbm9zcGFjZT02NTMyMyxBLktvcHBhY3lyaWxsaWM9MTE1MixBLktvcHBhZ3JlZWs9OTkwLEEuS3NpY3lyaWxsaWM9MTEzNCxBLktzbWFsbD02MzMzOSxBLkw9NzYsQS5MSj00NTUsQS5MTD02MzE2NyxBLkxhY3V0ZT0zMTMsQS5MYW1iZGE9OTIzLEEuTGNhcm9uPTMxNyxBLkxjZWRpbGxhPTMxNSxBLkxjaXJjbGU9OTQwOSxBLkxjaXJjdW1mbGV4YmVsb3c9Nzc0MCxBLkxjb21tYWFjY2VudD0zMTUsQS5MZG90PTMxOSxBLkxkb3RhY2NlbnQ9MzE5LEEuTGRvdGJlbG93PTc3MzQsQS5MZG90YmVsb3dtYWNyb249NzczNixBLkxpd25hcm1lbmlhbj0xMzQwLEEuTGo9NDU2LEEuTGplY3lyaWxsaWM9MTAzMyxBLkxsaW5lYmVsb3c9NzczOCxBLkxtb25vc3BhY2U9NjUzMjQsQS5Mc2xhc2g9MzIxLEEuTHNsYXNoc21hbGw9NjMyMjUsQS5Mc21hbGw9NjMzNDAsQS5NPTc3LEEuTUJzcXVhcmU9MTMxOTAsQS5NYWNyb249NjMxODQsQS5NYWNyb25zbWFsbD02MzQwNyxBLk1hY3V0ZT03NzQyLEEuTWNpcmNsZT05NDEwLEEuTWRvdGFjY2VudD03NzQ0LEEuTWRvdGJlbG93PTc3NDYsQS5NZW5hcm1lbmlhbj0xMzQ4LEEuTW1vbm9zcGFjZT02NTMyNSxBLk1zbWFsbD02MzM0MSxBLk10dXJuZWQ9NDEyLEEuTXU9OTI0LEEuTj03OCxBLk5KPTQ1OCxBLk5hY3V0ZT0zMjMsQS5OY2Fyb249MzI3LEEuTmNlZGlsbGE9MzI1LEEuTmNpcmNsZT05NDExLEEuTmNpcmN1bWZsZXhiZWxvdz03NzU0LEEuTmNvbW1hYWNjZW50PTMyNSxBLk5kb3RhY2NlbnQ9Nzc0OCxBLk5kb3RiZWxvdz03NzUwLEEuTmhvb2tsZWZ0PTQxMyxBLk5pbmVyb21hbj04NTUyLEEuTmo9NDU5LEEuTmplY3lyaWxsaWM9MTAzNCxBLk5saW5lYmVsb3c9Nzc1MixBLk5tb25vc3BhY2U9NjUzMjYsQS5Ob3dhcm1lbmlhbj0xMzUwLEEuTnNtYWxsPTYzMzQyLEEuTnRpbGRlPTIwOSxBLk50aWxkZXNtYWxsPTYzNDczLEEuTnU9OTI1LEEuTz03OSxBLk9FPTMzOCxBLk9Fc21hbGw9NjMyMjYsQS5PYWN1dGU9MjExLEEuT2FjdXRlc21hbGw9NjM0NzUsQS5PYmFycmVkY3lyaWxsaWM9MTI1NixBLk9iYXJyZWRkaWVyZXNpc2N5cmlsbGljPTEyNTgsQS5PYnJldmU9MzM0LEEuT2Nhcm9uPTQ2NSxBLk9jZW50ZXJlZHRpbGRlPTQxNSxBLk9jaXJjbGU9OTQxMixBLk9jaXJjdW1mbGV4PTIxMixBLk9jaXJjdW1mbGV4YWN1dGU9Nzg4OCxBLk9jaXJjdW1mbGV4ZG90YmVsb3c9Nzg5NixBLk9jaXJjdW1mbGV4Z3JhdmU9Nzg5MCxBLk9jaXJjdW1mbGV4aG9va2Fib3ZlPTc4OTIsQS5PY2lyY3VtZmxleHNtYWxsPTYzNDc2LEEuT2NpcmN1bWZsZXh0aWxkZT03ODk0LEEuT2N5cmlsbGljPTEwNTQsQS5PZGJsYWN1dGU9MzM2LEEuT2RibGdyYXZlPTUyNCxBLk9kaWVyZXNpcz0yMTQsQS5PZGllcmVzaXNjeXJpbGxpYz0xMjU0LEEuT2RpZXJlc2lzc21hbGw9NjM0NzgsQS5PZG90YmVsb3c9Nzg4NCxBLk9nb25la3NtYWxsPTYzMjI3LEEuT2dyYXZlPTIxMCxBLk9ncmF2ZXNtYWxsPTYzNDc0LEEuT2hhcm1lbmlhbj0xMzY1LEEuT2htPTg0ODYsQS5PaG9va2Fib3ZlPTc4ODYsQS5PaG9ybj00MTYsQS5PaG9ybmFjdXRlPTc4OTgsQS5PaG9ybmRvdGJlbG93PTc5MDYsQS5PaG9ybmdyYXZlPTc5MDAsQS5PaG9ybmhvb2thYm92ZT03OTAyLEEuT2hvcm50aWxkZT03OTA0LEEuT2h1bmdhcnVtbGF1dD0zMzYsQS5PaT00MTgsQS5PaW52ZXJ0ZWRicmV2ZT01MjYsQS5PbWFjcm9uPTMzMixBLk9tYWNyb25hY3V0ZT03NzYyLEEuT21hY3JvbmdyYXZlPTc3NjAsQS5PbWVnYT04NDg2LEEuT21lZ2FjeXJpbGxpYz0xMTIwLEEuT21lZ2FncmVlaz05MzcsQS5PbWVnYXJvdW5kY3lyaWxsaWM9MTE0NixBLk9tZWdhdGl0bG9jeXJpbGxpYz0xMTQ4LEEuT21lZ2F0b25vcz05MTEsQS5PbWljcm9uPTkyNyxBLk9taWNyb250b25vcz05MDgsQS5PbW9ub3NwYWNlPTY1MzI3LEEuT25lcm9tYW49ODU0NCxBLk9vZ29uZWs9NDkwLEEuT29nb25la21hY3Jvbj00OTIsQS5Pb3Blbj0zOTAsQS5Pc2xhc2g9MjE2LEEuT3NsYXNoYWN1dGU9NTEwLEEuT3NsYXNoc21hbGw9NjM0ODAsQS5Pc21hbGw9NjMzNDMsQS5Pc3Ryb2tlYWN1dGU9NTEwLEEuT3RjeXJpbGxpYz0xMTUwLEEuT3RpbGRlPTIxMyxBLk90aWxkZWFjdXRlPTc3NTYsQS5PdGlsZGVkaWVyZXNpcz03NzU4LEEuT3RpbGRlc21hbGw9NjM0NzcsQS5QPTgwLEEuUGFjdXRlPTc3NjQsQS5QY2lyY2xlPTk0MTMsQS5QZG90YWNjZW50PTc3NjYsQS5QZWN5cmlsbGljPTEwNTUsQS5QZWhhcm1lbmlhbj0xMzU0LEEuUGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MCxBLlBoaT05MzQsQS5QaG9vaz00MjAsQS5QaT05MjgsQS5QaXdyYXJtZW5pYW49MTM2MyxBLlBtb25vc3BhY2U9NjUzMjgsQS5Qc2k9OTM2LEEuUHNpY3lyaWxsaWM9MTEzNixBLlBzbWFsbD02MzM0NCxBLlE9ODEsQS5RY2lyY2xlPTk0MTQsQS5RbW9ub3NwYWNlPTY1MzI5LEEuUXNtYWxsPTYzMzQ1LEEuUj04MixBLlJhYXJtZW5pYW49MTM1NixBLlJhY3V0ZT0zNDAsQS5SY2Fyb249MzQ0LEEuUmNlZGlsbGE9MzQyLEEuUmNpcmNsZT05NDE1LEEuUmNvbW1hYWNjZW50PTM0MixBLlJkYmxncmF2ZT01MjgsQS5SZG90YWNjZW50PTc3NjgsQS5SZG90YmVsb3c9Nzc3MCxBLlJkb3RiZWxvd21hY3Jvbj03NzcyLEEuUmVoYXJtZW5pYW49MTM2MCxBLlJmcmFrdHVyPTg0NzYsQS5SaG89OTI5LEEuUmluZ3NtYWxsPTYzMjI4LEEuUmludmVydGVkYnJldmU9NTMwLEEuUmxpbmViZWxvdz03Nzc0LEEuUm1vbm9zcGFjZT02NTMzMCxBLlJzbWFsbD02MzM0NixBLlJzbWFsbGludmVydGVkPTY0MSxBLlJzbWFsbGludmVydGVkc3VwZXJpb3I9Njk0LEEuUz04MyxBLlNGMDEwMDAwPTk0ODQsQS5TRjAyMDAwMD05NDkyLEEuU0YwMzAwMDA9OTQ4OCxBLlNGMDQwMDAwPTk0OTYsQS5TRjA1MDAwMD05NTMyLEEuU0YwNjAwMDA9OTUxNixBLlNGMDcwMDAwPTk1MjQsQS5TRjA4MDAwMD05NTAwLEEuU0YwOTAwMDA9OTUwOCxBLlNGMTAwMDAwPTk0NzIsQS5TRjExMDAwMD05NDc0LEEuU0YxOTAwMDA9OTU2OSxBLlNGMjAwMDAwPTk1NzAsQS5TRjIxMDAwMD05NTU4LEEuU0YyMjAwMDA9OTU1NyxBLlNGMjMwMDAwPTk1NzEsQS5TRjI0MDAwMD05NTUzLEEuU0YyNTAwMDA9OTU1OSxBLlNGMjYwMDAwPTk1NjUsQS5TRjI3MDAwMD05NTY0LEEuU0YyODAwMDA9OTU2MyxBLlNGMzYwMDAwPTk1NjYsQS5TRjM3MDAwMD05NTY3LEEuU0YzODAwMDA9OTU2MixBLlNGMzkwMDAwPTk1NTYsQS5TRjQwMDAwMD05NTc3LEEuU0Y0MTAwMDA9OTU3NCxBLlNGNDIwMDAwPTk1NjgsQS5TRjQzMDAwMD05NTUyLEEuU0Y0NDAwMDA9OTU4MCxBLlNGNDUwMDAwPTk1NzUsQS5TRjQ2MDAwMD05NTc2LEEuU0Y0NzAwMDA9OTU3MixBLlNGNDgwMDAwPTk1NzMsQS5TRjQ5MDAwMD05NTYxLEEuU0Y1MDAwMDA9OTU2MCxBLlNGNTEwMDAwPTk1NTQsQS5TRjUyMDAwMD05NTU1LEEuU0Y1MzAwMDA9OTU3OSxBLlNGNTQwMDAwPTk1NzgsQS5TYWN1dGU9MzQ2LEEuU2FjdXRlZG90YWNjZW50PTc3ODAsQS5TYW1waWdyZWVrPTk5MixBLlNjYXJvbj0zNTIsQS5TY2Fyb25kb3RhY2NlbnQ9Nzc4MixBLlNjYXJvbnNtYWxsPTYzMjI5LEEuU2NlZGlsbGE9MzUwLEEuU2Nod2E9Mzk5LEEuU2Nod2FjeXJpbGxpYz0xMjQwLEEuU2Nod2FkaWVyZXNpc2N5cmlsbGljPTEyNDIsQS5TY2lyY2xlPTk0MTYsQS5TY2lyY3VtZmxleD0zNDgsQS5TY29tbWFhY2NlbnQ9NTM2LEEuU2RvdGFjY2VudD03Nzc2LEEuU2RvdGJlbG93PTc3NzgsQS5TZG90YmVsb3dkb3RhY2NlbnQ9Nzc4NCxBLlNlaGFybWVuaWFuPTEzNTcsQS5TZXZlbnJvbWFuPTg1NTAsQS5TaGFhcm1lbmlhbj0xMzUxLEEuU2hhY3lyaWxsaWM9MTA2NCxBLlNoY2hhY3lyaWxsaWM9MTA2NSxBLlNoZWljb3B0aWM9OTk0LEEuU2hoYWN5cmlsbGljPTEyMTAsQS5TaGltYWNvcHRpYz0xMDA0LEEuU2lnbWE9OTMxLEEuU2l4cm9tYW49ODU0OSxBLlNtb25vc3BhY2U9NjUzMzEsQS5Tb2Z0c2lnbmN5cmlsbGljPTEwNjgsQS5Tc21hbGw9NjMzNDcsQS5TdGlnbWFncmVlaz05ODYsQS5UPTg0LEEuVGF1PTkzMixBLlRiYXI9MzU4LEEuVGNhcm9uPTM1NixBLlRjZWRpbGxhPTM1NCxBLlRjaXJjbGU9OTQxNyxBLlRjaXJjdW1mbGV4YmVsb3c9Nzc5MixBLlRjb21tYWFjY2VudD0zNTQsQS5UZG90YWNjZW50PTc3ODYsQS5UZG90YmVsb3c9Nzc4OCxBLlRlY3lyaWxsaWM9MTA1OCxBLlRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NixBLlRlbnJvbWFuPTg1NTMsQS5UZXRzZWN5cmlsbGljPTEyMDQsQS5UaGV0YT05MjAsQS5UaG9vaz00MjgsQS5UaG9ybj0yMjIsQS5UaG9ybnNtYWxsPTYzNDg2LEEuVGhyZWVyb21hbj04NTQ2LEEuVGlsZGVzbWFsbD02MzIzMCxBLlRpd25hcm1lbmlhbj0xMzU5LEEuVGxpbmViZWxvdz03NzkwLEEuVG1vbm9zcGFjZT02NTMzMixBLlRvYXJtZW5pYW49MTMzNyxBLlRvbmVmaXZlPTQ0NCxBLlRvbmVzaXg9Mzg4LEEuVG9uZXR3bz00MjMsQS5UcmV0cm9mbGV4aG9vaz00MzAsQS5Uc2VjeXJpbGxpYz0xMDYyLEEuVHNoZWN5cmlsbGljPTEwMzUsQS5Uc21hbGw9NjMzNDgsQS5Ud2VsdmVyb21hbj04NTU1LEEuVHdvcm9tYW49ODU0NSxBLlU9ODUsQS5VYWN1dGU9MjE4LEEuVWFjdXRlc21hbGw9NjM0ODIsQS5VYnJldmU9MzY0LEEuVWNhcm9uPTQ2NyxBLlVjaXJjbGU9OTQxOCxBLlVjaXJjdW1mbGV4PTIxOSxBLlVjaXJjdW1mbGV4YmVsb3c9Nzc5OCxBLlVjaXJjdW1mbGV4c21hbGw9NjM0ODMsQS5VY3lyaWxsaWM9MTA1OSxBLlVkYmxhY3V0ZT0zNjgsQS5VZGJsZ3JhdmU9NTMyLEEuVWRpZXJlc2lzPTIyMCxBLlVkaWVyZXNpc2FjdXRlPTQ3MSxBLlVkaWVyZXNpc2JlbG93PTc3OTQsQS5VZGllcmVzaXNjYXJvbj00NzMsQS5VZGllcmVzaXNjeXJpbGxpYz0xMjY0LEEuVWRpZXJlc2lzZ3JhdmU9NDc1LEEuVWRpZXJlc2lzbWFjcm9uPTQ2OSxBLlVkaWVyZXNpc3NtYWxsPTYzNDg0LEEuVWRvdGJlbG93PTc5MDgsQS5VZ3JhdmU9MjE3LEEuVWdyYXZlc21hbGw9NjM0ODEsQS5VaG9va2Fib3ZlPTc5MTAsQS5VaG9ybj00MzEsQS5VaG9ybmFjdXRlPTc5MTIsQS5VaG9ybmRvdGJlbG93PTc5MjAsQS5VaG9ybmdyYXZlPTc5MTQsQS5VaG9ybmhvb2thYm92ZT03OTE2LEEuVWhvcm50aWxkZT03OTE4LEEuVWh1bmdhcnVtbGF1dD0zNjgsQS5VaHVuZ2FydW1sYXV0Y3lyaWxsaWM9MTI2NixBLlVpbnZlcnRlZGJyZXZlPTUzNCxBLlVrY3lyaWxsaWM9MTE0NCxBLlVtYWNyb249MzYyLEEuVW1hY3JvbmN5cmlsbGljPTEyNjIsQS5VbWFjcm9uZGllcmVzaXM9NzgwMixBLlVtb25vc3BhY2U9NjUzMzMsQS5Vb2dvbmVrPTM3MCxBLlVwc2lsb249OTMzLEEuVXBzaWxvbjE9OTc4LEEuVXBzaWxvbmFjdXRlaG9va3N5bWJvbGdyZWVrPTk3OSxBLlVwc2lsb25hZnJpY2FuPTQzMyxBLlVwc2lsb25kaWVyZXNpcz05MzksQS5VcHNpbG9uZGllcmVzaXNob29rc3ltYm9sZ3JlZWs9OTgwLEEuVXBzaWxvbmhvb2tzeW1ib2w9OTc4LEEuVXBzaWxvbnRvbm9zPTkxMCxBLlVyaW5nPTM2NixBLlVzaG9ydGN5cmlsbGljPTEwMzgsQS5Vc21hbGw9NjMzNDksQS5Vc3RyYWlnaHRjeXJpbGxpYz0xMTk4LEEuVXN0cmFpZ2h0c3Ryb2tlY3lyaWxsaWM9MTIwMCxBLlV0aWxkZT0zNjAsQS5VdGlsZGVhY3V0ZT03ODAwLEEuVXRpbGRlYmVsb3c9Nzc5NixBLlY9ODYsQS5WY2lyY2xlPTk0MTksQS5WZG90YmVsb3c9NzgwNixBLlZlY3lyaWxsaWM9MTA0MixBLlZld2FybWVuaWFuPTEzNTgsQS5WaG9vaz00MzQsQS5WbW9ub3NwYWNlPTY1MzM0LEEuVm9hcm1lbmlhbj0xMzUyLEEuVnNtYWxsPTYzMzUwLEEuVnRpbGRlPTc4MDQsQS5XPTg3LEEuV2FjdXRlPTc4MTAsQS5XY2lyY2xlPTk0MjAsQS5XY2lyY3VtZmxleD0zNzIsQS5XZGllcmVzaXM9NzgxMixBLldkb3RhY2NlbnQ9NzgxNCxBLldkb3RiZWxvdz03ODE2LEEuV2dyYXZlPTc4MDgsQS5XbW9ub3NwYWNlPTY1MzM1LEEuV3NtYWxsPTYzMzUxLEEuWD04OCxBLlhjaXJjbGU9OTQyMSxBLlhkaWVyZXNpcz03ODIwLEEuWGRvdGFjY2VudD03ODE4LEEuWGVoYXJtZW5pYW49MTM0MSxBLlhpPTkyNixBLlhtb25vc3BhY2U9NjUzMzYsQS5Yc21hbGw9NjMzNTIsQS5ZPTg5LEEuWWFjdXRlPTIyMSxBLllhY3V0ZXNtYWxsPTYzNDg1LEEuWWF0Y3lyaWxsaWM9MTEyMixBLlljaXJjbGU9OTQyMixBLlljaXJjdW1mbGV4PTM3NCxBLllkaWVyZXNpcz0zNzYsQS5ZZGllcmVzaXNzbWFsbD02MzQ4NyxBLllkb3RhY2NlbnQ9NzgyMixBLllkb3RiZWxvdz03OTI0LEEuWWVyaWN5cmlsbGljPTEwNjcsQS5ZZXJ1ZGllcmVzaXNjeXJpbGxpYz0xMjcyLEEuWWdyYXZlPTc5MjIsQS5ZaG9vaz00MzUsQS5ZaG9va2Fib3ZlPTc5MjYsQS5ZaWFybWVuaWFuPTEzNDksQS5ZaWN5cmlsbGljPTEwMzEsQS5ZaXduYXJtZW5pYW49MTM2MixBLlltb25vc3BhY2U9NjUzMzcsQS5Zc21hbGw9NjMzNTMsQS5ZdGlsZGU9NzkyOCxBLll1c2JpZ2N5cmlsbGljPTExMzAsQS5ZdXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzIsQS5ZdXNsaXR0bGVjeXJpbGxpYz0xMTI2LEEuWXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI4LEEuWj05MCxBLlphYXJtZW5pYW49MTMzNCxBLlphY3V0ZT0zNzcsQS5aY2Fyb249MzgxLEEuWmNhcm9uc21hbGw9NjMyMzEsQS5aY2lyY2xlPTk0MjMsQS5aY2lyY3VtZmxleD03ODI0LEEuWmRvdD0zNzksQS5aZG90YWNjZW50PTM3OSxBLlpkb3RiZWxvdz03ODI2LEEuWmVjeXJpbGxpYz0xMDQ3LEEuWmVkZXNjZW5kZXJjeXJpbGxpYz0xMTc2LEEuWmVkaWVyZXNpc2N5cmlsbGljPTEyNDYsQS5aZXRhPTkxOCxBLlpoZWFybWVuaWFuPTEzMzgsQS5aaGVicmV2ZWN5cmlsbGljPTEyMTcsQS5aaGVjeXJpbGxpYz0xMDQ2LEEuWmhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NCxBLlpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NCxBLlpsaW5lYmVsb3c9NzgyOCxBLlptb25vc3BhY2U9NjUzMzgsQS5ac21hbGw9NjMzNTQsQS5ac3Ryb2tlPTQzNyxBLmE9OTcsQS5hYWJlbmdhbGk9MjQzOCxBLmFhY3V0ZT0yMjUsQS5hYWRldmE9MjMxMCxBLmFhZ3VqYXJhdGk9MjY5NCxBLmFhZ3VybXVraGk9MjU2NixBLmFhbWF0cmFndXJtdWtoaT0yNjIyLEEuYWFydXNxdWFyZT0xMzA1OSxBLmFhdm93ZWxzaWduYmVuZ2FsaT0yNDk0LEEuYWF2b3dlbHNpZ25kZXZhPTIzNjYsQS5hYXZvd2Vsc2lnbmd1amFyYXRpPTI3NTAsQS5hYmJyZXZpYXRpb25tYXJrYXJtZW5pYW49MTM3NSxBLmFiYnJldmlhdGlvbnNpZ25kZXZhPTI0MTYsQS5hYmVuZ2FsaT0yNDM3LEEuYWJvcG9tb2ZvPTEyNTcwLEEuYWJyZXZlPTI1OSxBLmFicmV2ZWFjdXRlPTc4NTUsQS5hYnJldmVjeXJpbGxpYz0xMjMzLEEuYWJyZXZlZG90YmVsb3c9Nzg2MyxBLmFicmV2ZWdyYXZlPTc4NTcsQS5hYnJldmVob29rYWJvdmU9Nzg1OSxBLmFicmV2ZXRpbGRlPTc4NjEsQS5hY2Fyb249NDYyLEEuYWNpcmNsZT05NDI0LEEuYWNpcmN1bWZsZXg9MjI2LEEuYWNpcmN1bWZsZXhhY3V0ZT03ODQ1LEEuYWNpcmN1bWZsZXhkb3RiZWxvdz03ODUzLEEuYWNpcmN1bWZsZXhncmF2ZT03ODQ3LEEuYWNpcmN1bWZsZXhob29rYWJvdmU9Nzg0OSxBLmFjaXJjdW1mbGV4dGlsZGU9Nzg1MSxBLmFjdXRlPTE4MCxBLmFjdXRlYmVsb3djbWI9NzkxLEEuYWN1dGVjbWI9NzY5LEEuYWN1dGVjb21iPTc2OSxBLmFjdXRlZGV2YT0yMzg4LEEuYWN1dGVsb3dtb2Q9NzE5LEEuYWN1dGV0b25lY21iPTgzMyxBLmFjeXJpbGxpYz0xMDcyLEEuYWRibGdyYXZlPTUxMyxBLmFkZGFrZ3VybXVraGk9MjY3MyxBLmFkZXZhPTIzMDksQS5hZGllcmVzaXM9MjI4LEEuYWRpZXJlc2lzY3lyaWxsaWM9MTIzNSxBLmFkaWVyZXNpc21hY3Jvbj00NzksQS5hZG90YmVsb3c9Nzg0MSxBLmFkb3RtYWNyb249NDgxLEEuYWU9MjMwLEEuYWVhY3V0ZT01MDksQS5hZWtvcmVhbj0xMjYyNCxBLmFlbWFjcm9uPTQ4MyxBLmFmaWkwMDIwOD04MjEzLEEuYWZpaTA4OTQxPTgzNTYsQS5hZmlpMTAwMTc9MTA0MCxBLmFmaWkxMDAxOD0xMDQxLEEuYWZpaTEwMDE5PTEwNDIsQS5hZmlpMTAwMjA9MTA0MyxBLmFmaWkxMDAyMT0xMDQ0LEEuYWZpaTEwMDIyPTEwNDUsQS5hZmlpMTAwMjM9MTAyNSxBLmFmaWkxMDAyND0xMDQ2LEEuYWZpaTEwMDI1PTEwNDcsQS5hZmlpMTAwMjY9MTA0OCxBLmFmaWkxMDAyNz0xMDQ5LEEuYWZpaTEwMDI4PTEwNTAsQS5hZmlpMTAwMjk9MTA1MSxBLmFmaWkxMDAzMD0xMDUyO0EuYWZpaTEwMDMxPTEwNTMsQS5hZmlpMTAwMzI9MTA1NCxBLmFmaWkxMDAzMz0xMDU1LEEuYWZpaTEwMDM0PTEwNTYsQS5hZmlpMTAwMzU9MTA1NyxBLmFmaWkxMDAzNj0xMDU4LEEuYWZpaTEwMDM3PTEwNTksQS5hZmlpMTAwMzg9MTA2MCxBLmFmaWkxMDAzOT0xMDYxLEEuYWZpaTEwMDQwPTEwNjIsQS5hZmlpMTAwNDE9MTA2MyxBLmFmaWkxMDA0Mj0xMDY0LEEuYWZpaTEwMDQzPTEwNjUsQS5hZmlpMTAwNDQ9MTA2NixBLmFmaWkxMDA0NT0xMDY3LEEuYWZpaTEwMDQ2PTEwNjgsQS5hZmlpMTAwNDc9MTA2OSxBLmFmaWkxMDA0OD0xMDcwLEEuYWZpaTEwMDQ5PTEwNzEsQS5hZmlpMTAwNTA9MTE2OCxBLmFmaWkxMDA1MT0xMDI2LEEuYWZpaTEwMDUyPTEwMjcsQS5hZmlpMTAwNTM9MTAyOCxBLmFmaWkxMDA1ND0xMDI5LEEuYWZpaTEwMDU1PTEwMzAsQS5hZmlpMTAwNTY9MTAzMSxBLmFmaWkxMDA1Nz0xMDMyLEEuYWZpaTEwMDU4PTEwMzMsQS5hZmlpMTAwNTk9MTAzNCxBLmFmaWkxMDA2MD0xMDM1LEEuYWZpaTEwMDYxPTEwMzYsQS5hZmlpMTAwNjI9MTAzOCxBLmFmaWkxMDA2Mz02MzE3MixBLmFmaWkxMDA2ND02MzE3MyxBLmFmaWkxMDA2NT0xMDcyLEEuYWZpaTEwMDY2PTEwNzMsQS5hZmlpMTAwNjc9MTA3NCxBLmFmaWkxMDA2OD0xMDc1LEEuYWZpaTEwMDY5PTEwNzYsQS5hZmlpMTAwNzA9MTA3NyxBLmFmaWkxMDA3MT0xMTA1LEEuYWZpaTEwMDcyPTEwNzgsQS5hZmlpMTAwNzM9MTA3OSxBLmFmaWkxMDA3ND0xMDgwLEEuYWZpaTEwMDc1PTEwODEsQS5hZmlpMTAwNzY9MTA4MixBLmFmaWkxMDA3Nz0xMDgzLEEuYWZpaTEwMDc4PTEwODQsQS5hZmlpMTAwNzk9MTA4NSxBLmFmaWkxMDA4MD0xMDg2LEEuYWZpaTEwMDgxPTEwODcsQS5hZmlpMTAwODI9MTA4OCxBLmFmaWkxMDA4Mz0xMDg5LEEuYWZpaTEwMDg0PTEwOTAsQS5hZmlpMTAwODU9MTA5MSxBLmFmaWkxMDA4Nj0xMDkyLEEuYWZpaTEwMDg3PTEwOTMsQS5hZmlpMTAwODg9MTA5NCxBLmFmaWkxMDA4OT0xMDk1LEEuYWZpaTEwMDkwPTEwOTYsQS5hZmlpMTAwOTE9MTA5NyxBLmFmaWkxMDA5Mj0xMDk4LEEuYWZpaTEwMDkzPTEwOTksQS5hZmlpMTAwOTQ9MTEwMCxBLmFmaWkxMDA5NT0xMTAxLEEuYWZpaTEwMDk2PTExMDIsQS5hZmlpMTAwOTc9MTEwMyxBLmFmaWkxMDA5OD0xMTY5LEEuYWZpaTEwMDk5PTExMDYsQS5hZmlpMTAxMDA9MTEwNyxBLmFmaWkxMDEwMT0xMTA4LEEuYWZpaTEwMTAyPTExMDksQS5hZmlpMTAxMDM9MTExMCxBLmFmaWkxMDEwND0xMTExLEEuYWZpaTEwMTA1PTExMTIsQS5hZmlpMTAxMDY9MTExMyxBLmFmaWkxMDEwNz0xMTE0LEEuYWZpaTEwMTA4PTExMTUsQS5hZmlpMTAxMDk9MTExNixBLmFmaWkxMDExMD0xMTE4LEEuYWZpaTEwMTQ1PTEwMzksQS5hZmlpMTAxNDY9MTEyMixBLmFmaWkxMDE0Nz0xMTM4LEEuYWZpaTEwMTQ4PTExNDAsQS5hZmlpMTAxOTI9NjMxNzQsQS5hZmlpMTAxOTM9MTExOSxBLmFmaWkxMDE5ND0xMTIzLEEuYWZpaTEwMTk1PTExMzksQS5hZmlpMTAxOTY9MTE0MSxBLmFmaWkxMDgzMT02MzE3NSxBLmFmaWkxMDgzMj02MzE3NixBLmFmaWkxMDg0Nj0xMjQxLEEuYWZpaTI5OT04MjA2LEEuYWZpaTMwMD04MjA3LEEuYWZpaTMwMT04MjA1LEEuYWZpaTU3MzgxPTE2NDIsQS5hZmlpNTczODg9MTU0OCxBLmFmaWk1NzM5Mj0xNjMyLEEuYWZpaTU3MzkzPTE2MzMsQS5hZmlpNTczOTQ9MTYzNCxBLmFmaWk1NzM5NT0xNjM1LEEuYWZpaTU3Mzk2PTE2MzYsQS5hZmlpNTczOTc9MTYzNyxBLmFmaWk1NzM5OD0xNjM4LEEuYWZpaTU3Mzk5PTE2MzksQS5hZmlpNTc0MDA9MTY0MCxBLmFmaWk1NzQwMT0xNjQxLEEuYWZpaTU3NDAzPTE1NjMsQS5hZmlpNTc0MDc9MTU2NyxBLmFmaWk1NzQwOT0xNTY5LEEuYWZpaTU3NDEwPTE1NzAsQS5hZmlpNTc0MTE9MTU3MSxBLmFmaWk1NzQxMj0xNTcyLEEuYWZpaTU3NDEzPTE1NzMsQS5hZmlpNTc0MTQ9MTU3NCxBLmFmaWk1NzQxNT0xNTc1LEEuYWZpaTU3NDE2PTE1NzYsQS5hZmlpNTc0MTc9MTU3NyxBLmFmaWk1NzQxOD0xNTc4LEEuYWZpaTU3NDE5PTE1NzksQS5hZmlpNTc0MjA9MTU4MCxBLmFmaWk1NzQyMT0xNTgxLEEuYWZpaTU3NDIyPTE1ODIsQS5hZmlpNTc0MjM9MTU4MyxBLmFmaWk1NzQyND0xNTg0LEEuYWZpaTU3NDI1PTE1ODUsQS5hZmlpNTc0MjY9MTU4NixBLmFmaWk1NzQyNz0xNTg3LEEuYWZpaTU3NDI4PTE1ODgsQS5hZmlpNTc0Mjk9MTU4OSxBLmFmaWk1NzQzMD0xNTkwLEEuYWZpaTU3NDMxPTE1OTEsQS5hZmlpNTc0MzI9MTU5MixBLmFmaWk1NzQzMz0xNTkzLEEuYWZpaTU3NDM0PTE1OTQsQS5hZmlpNTc0NDA9MTYwMCxBLmFmaWk1NzQ0MT0xNjAxLEEuYWZpaTU3NDQyPTE2MDIsQS5hZmlpNTc0NDM9MTYwMyxBLmFmaWk1NzQ0ND0xNjA0LEEuYWZpaTU3NDQ1PTE2MDUsQS5hZmlpNTc0NDY9MTYwNixBLmFmaWk1NzQ0OD0xNjA4LEEuYWZpaTU3NDQ5PTE2MDksQS5hZmlpNTc0NTA9MTYxMCxBLmFmaWk1NzQ1MT0xNjExLEEuYWZpaTU3NDUyPTE2MTIsQS5hZmlpNTc0NTM9MTYxMyxBLmFmaWk1NzQ1ND0xNjE0LEEuYWZpaTU3NDU1PTE2MTUsQS5hZmlpNTc0NTY9MTYxNixBLmFmaWk1NzQ1Nz0xNjE3LEEuYWZpaTU3NDU4PTE2MTgsQS5hZmlpNTc0NzA9MTYwNyxBLmFmaWk1NzUwNT0xNzAwLEEuYWZpaTU3NTA2PTE2NjIsQS5hZmlpNTc1MDc9MTY3MCxBLmFmaWk1NzUwOD0xNjg4LEEuYWZpaTU3NTA5PTE3MTEsQS5hZmlpNTc1MTE9MTY1NyxBLmFmaWk1NzUxMj0xNjcyLEEuYWZpaTU3NTEzPTE2ODEsQS5hZmlpNTc1MTQ9MTcyMixBLmFmaWk1NzUxOT0xNzQ2LEEuYWZpaTU3NTM0PTE3NDksQS5hZmlpNTc2MzY9ODM2MixBLmFmaWk1NzY0NT0xNDcwLEEuYWZpaTU3NjU4PTE0NzUsQS5hZmlpNTc2NjQ9MTQ4OCxBLmFmaWk1NzY2NT0xNDg5LEEuYWZpaTU3NjY2PTE0OTAsQS5hZmlpNTc2Njc9MTQ5MSxBLmFmaWk1NzY2OD0xNDkyLEEuYWZpaTU3NjY5PTE0OTMsQS5hZmlpNTc2NzA9MTQ5NCxBLmFmaWk1NzY3MT0xNDk1LEEuYWZpaTU3NjcyPTE0OTYsQS5hZmlpNTc2NzM9MTQ5NyxBLmFmaWk1NzY3ND0xNDk4LEEuYWZpaTU3Njc1PTE0OTksQS5hZmlpNTc2NzY9MTUwMCxBLmFmaWk1NzY3Nz0xNTAxLEEuYWZpaTU3Njc4PTE1MDIsQS5hZmlpNTc2Nzk9MTUwMyxBLmFmaWk1NzY4MD0xNTA0LEEuYWZpaTU3NjgxPTE1MDUsQS5hZmlpNTc2ODI9MTUwNixBLmFmaWk1NzY4Mz0xNTA3LEEuYWZpaTU3Njg0PTE1MDgsQS5hZmlpNTc2ODU9MTUwOSxBLmFmaWk1NzY4Nj0xNTEwLEEuYWZpaTU3Njg3PTE1MTEsQS5hZmlpNTc2ODg9MTUxMixBLmFmaWk1NzY4OT0xNTEzLEEuYWZpaTU3NjkwPTE1MTQsQS5hZmlpNTc2OTQ9NjQyOTgsQS5hZmlpNTc2OTU9NjQyOTksQS5hZmlpNTc3MDA9NjQzMzEsQS5hZmlpNTc3MDU9NjQyODcsQS5hZmlpNTc3MTY9MTUyMCxBLmFmaWk1NzcxNz0xNTIxLEEuYWZpaTU3NzE4PTE1MjIsQS5hZmlpNTc3MjM9NjQzMDksQS5hZmlpNTc3OTM9MTQ2MCxBLmFmaWk1Nzc5ND0xNDYxLEEuYWZpaTU3Nzk1PTE0NjIsQS5hZmlpNTc3OTY9MTQ2NyxBLmFmaWk1Nzc5Nz0xNDY0LEEuYWZpaTU3Nzk4PTE0NjMsQS5hZmlpNTc3OTk9MTQ1NixBLmFmaWk1NzgwMD0xNDU4LEEuYWZpaTU3ODAxPTE0NTcsQS5hZmlpNTc4MDI9MTQ1OSxBLmFmaWk1NzgwMz0xNDc0LEEuYWZpaTU3ODA0PTE0NzMsQS5hZmlpNTc4MDY9MTQ2NSxBLmFmaWk1NzgwNz0xNDY4LEEuYWZpaTU3ODM5PTE0NjksQS5hZmlpNTc4NDE9MTQ3MSxBLmFmaWk1Nzg0Mj0xNDcyLEEuYWZpaTU3OTI5PTcwMCxBLmFmaWk2MTI0OD04NDUzLEEuYWZpaTYxMjg5PTg0NjcsQS5hZmlpNjEzNTI9ODQ3MCxBLmFmaWk2MTU3Mz04MjM2LEEuYWZpaTYxNTc0PTgyMzcsQS5hZmlpNjE1NzU9ODIzOCxBLmFmaWk2MTY2ND04MjA0LEEuYWZpaTYzMTY3PTE2NDUsQS5hZmlpNjQ5Mzc9NzAxLEEuYWdyYXZlPTIyNCxBLmFndWphcmF0aT0yNjkzLEEuYWd1cm11a2hpPTI1NjUsQS5haGlyYWdhbmE9MTIzNTQsQS5haG9va2Fib3ZlPTc4NDMsQS5haWJlbmdhbGk9MjQ0OCxBLmFpYm9wb21vZm89MTI1NzQsQS5haWRldmE9MjMyMCxBLmFpZWN5cmlsbGljPTEyMzcsQS5haWd1amFyYXRpPTI3MDQsQS5haWd1cm11a2hpPTI1NzYsQS5haW1hdHJhZ3VybXVraGk9MjYzMixBLmFpbmFyYWJpYz0xNTkzLEEuYWluZmluYWxhcmFiaWM9NjUyMjYsQS5haW5pbml0aWFsYXJhYmljPTY1MjI3LEEuYWlubWVkaWFsYXJhYmljPTY1MjI4LEEuYWludmVydGVkYnJldmU9NTE1LEEuYWl2b3dlbHNpZ25iZW5nYWxpPTI1MDQsQS5haXZvd2Vsc2lnbmRldmE9MjM3NixBLmFpdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MCxBLmFrYXRha2FuYT0xMjQ1MCxBLmFrYXRha2FuYWhhbGZ3aWR0aD02NTM5MyxBLmFrb3JlYW49MTI2MjMsQS5hbGVmPTE0ODgsQS5hbGVmYXJhYmljPTE1NzUsQS5hbGVmZGFnZXNoaGVicmV3PTY0MzA0LEEuYWxlZmZpbmFsYXJhYmljPTY1MTY2LEEuYWxlZmhhbXphYWJvdmVhcmFiaWM9MTU3MSxBLmFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNTYsQS5hbGVmaGFtemFiZWxvd2FyYWJpYz0xNTczLEEuYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTE2MCxBLmFsZWZoZWJyZXc9MTQ4OCxBLmFsZWZsYW1lZGhlYnJldz02NDMzNSxBLmFsZWZtYWRkYWFib3ZlYXJhYmljPTE1NzAsQS5hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MTU0LEEuYWxlZm1ha3N1cmFhcmFiaWM9MTYwOSxBLmFsZWZtYWtzdXJhZmluYWxhcmFiaWM9NjUyNjQsQS5hbGVmbWFrc3VyYWluaXRpYWxhcmFiaWM9NjUyNjcsQS5hbGVmbWFrc3VyYW1lZGlhbGFyYWJpYz02NTI2OCxBLmFsZWZwYXRhaGhlYnJldz02NDMwMixBLmFsZWZxYW1hdHNoZWJyZXc9NjQzMDMsQS5hbGVwaD04NTAxLEEuYWxsZXF1YWw9ODc4MCxBLmFscGhhPTk0NSxBLmFscGhhdG9ub3M9OTQwLEEuYW1hY3Jvbj0yNTcsQS5hbW9ub3NwYWNlPTY1MzQ1LEEuYW1wZXJzYW5kPTM4LEEuYW1wZXJzYW5kbW9ub3NwYWNlPTY1Mjg2LEEuYW1wZXJzYW5kc21hbGw9NjMyNzAsQS5hbXNxdWFyZT0xMzI1MCxBLmFuYm9wb21vZm89MTI1NzgsQS5hbmdib3BvbW9mbz0xMjU4MCxBLmFuZ2JyYWNrZXRsZWZ0PTEyMjk2LEEuYW5nYnJhY2tldHJpZ2h0PTEyMjk3LEEuYW5na2hhbmtodXRoYWk9MzY3NCxBLmFuZ2xlPTg3MzYsQS5hbmdsZWJyYWNrZXRsZWZ0PTEyMjk2LEEuYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg3LEEuYW5nbGVicmFja2V0cmlnaHQ9MTIyOTcsQS5hbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg4LEEuYW5nbGVsZWZ0PTkwMDEsQS5hbmdsZXJpZ2h0PTkwMDIsQS5hbmdzdHJvbT04NDkxLEEuYW5vdGVsZWlhPTkwMyxBLmFudWRhdHRhZGV2YT0yMzg2LEEuYW51c3ZhcmFiZW5nYWxpPTI0MzQsQS5hbnVzdmFyYWRldmE9MjMwNixBLmFudXN2YXJhZ3VqYXJhdGk9MjY5MCxBLmFvZ29uZWs9MjYxLEEuYXBhYXRvc3F1YXJlPTEzMDU2LEEuYXBhcmVuPTkzNzIsQS5hcG9zdHJvcGhlYXJtZW5pYW49MTM3MCxBLmFwb3N0cm9waGVtb2Q9NzAwLEEuYXBwbGU9NjM3NDMsQS5hcHByb2FjaGVzPTg3ODQsQS5hcHByb3hlcXVhbD04Nzc2LEEuYXBwcm94ZXF1YWxvcmltYWdlPTg3ODYsQS5hcHByb3hpbWF0ZWx5ZXF1YWw9ODc3MyxBLmFyYWVhZWtvcmVhbj0xMjY4NixBLmFyYWVha29yZWFuPTEyNjg1LEEuYXJjPTg5NzgsQS5hcmlnaHRoYWxmcmluZz03ODM0LEEuYXJpbmc9MjI5LEEuYXJpbmdhY3V0ZT01MDcsQS5hcmluZ2JlbG93PTc2ODEsQS5hcnJvd2JvdGg9ODU5NixBLmFycm93ZGFzaGRvd249ODY3NSxBLmFycm93ZGFzaGxlZnQ9ODY3MixBLmFycm93ZGFzaHJpZ2h0PTg2NzQsQS5hcnJvd2Rhc2h1cD04NjczLEEuYXJyb3dkYmxib3RoPTg2NjAsQS5hcnJvd2RibGRvd249ODY1OSxBLmFycm93ZGJsbGVmdD04NjU2LEEuYXJyb3dkYmxyaWdodD04NjU4LEEuYXJyb3dkYmx1cD04NjU3LEEuYXJyb3dkb3duPTg1OTUsQS5hcnJvd2Rvd25sZWZ0PTg2MDEsQS5hcnJvd2Rvd25yaWdodD04NjAwLEEuYXJyb3dkb3dud2hpdGU9ODY4MSxBLmFycm93aGVhZGRvd25tb2Q9NzA5LEEuYXJyb3doZWFkbGVmdG1vZD03MDYsQS5hcnJvd2hlYWRyaWdodG1vZD03MDcsQS5hcnJvd2hlYWR1cG1vZD03MDgsQS5hcnJvd2hvcml6ZXg9NjM3MTksQS5hcnJvd2xlZnQ9ODU5MixBLmFycm93bGVmdGRibD04NjU2LEEuYXJyb3dsZWZ0ZGJsc3Ryb2tlPTg2NTMsQS5hcnJvd2xlZnRvdmVycmlnaHQ9ODY0NixBLmFycm93bGVmdHdoaXRlPTg2NzgsQS5hcnJvd3JpZ2h0PTg1OTQsQS5hcnJvd3JpZ2h0ZGJsc3Ryb2tlPTg2NTUsQS5hcnJvd3JpZ2h0aGVhdnk9MTAxNDIsQS5hcnJvd3JpZ2h0b3ZlcmxlZnQ9ODY0NCxBLmFycm93cmlnaHR3aGl0ZT04NjgwLEEuYXJyb3d0YWJsZWZ0PTg2NzYsQS5hcnJvd3RhYnJpZ2h0PTg2NzcsQS5hcnJvd3VwPTg1OTMsQS5hcnJvd3VwZG49ODU5NyxBLmFycm93dXBkbmJzZT04NjE2LEEuYXJyb3d1cGRvd25iYXNlPTg2MTYsQS5hcnJvd3VwbGVmdD04NTk4LEEuYXJyb3d1cGxlZnRvZmRvd249ODY0NSxBLmFycm93dXByaWdodD04NTk5LEEuYXJyb3d1cHdoaXRlPTg2NzksQS5hcnJvd3ZlcnRleD02MzcxOCxBLmFzY2lpY2lyY3VtPTk0LEEuYXNjaWljaXJjdW1tb25vc3BhY2U9NjUzNDIsQS5hc2NpaXRpbGRlPTEyNixBLmFzY2lpdGlsZGVtb25vc3BhY2U9NjUzNzQsQS5hc2NyaXB0PTU5MyxBLmFzY3JpcHR0dXJuZWQ9NTk0LEEuYXNtYWxsaGlyYWdhbmE9MTIzNTMsQS5hc21hbGxrYXRha2FuYT0xMjQ0OSxBLmFzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzgzLEEuYXN0ZXJpc2s9NDIsQS5hc3Rlcmlza2FsdG9uZWFyYWJpYz0xNjQ1LEEuYXN0ZXJpc2thcmFiaWM9MTY0NSxBLmFzdGVyaXNrbWF0aD04NzI3LEEuYXN0ZXJpc2ttb25vc3BhY2U9NjUyOTAsQS5hc3Rlcmlza3NtYWxsPTY1MTIxLEEuYXN0ZXJpc209ODI1OCxBLmFzdXBlcmlvcj02MzIwOSxBLmFzeW1wdG90aWNhbGx5ZXF1YWw9ODc3MSxBLmF0PTY0LEEuYXRpbGRlPTIyNyxBLmF0bW9ub3NwYWNlPTY1MzEyLEEuYXRzbWFsbD02NTEzMSxBLmF0dXJuZWQ9NTkyLEEuYXViZW5nYWxpPTI0NTIsQS5hdWJvcG9tb2ZvPTEyNTc2LEEuYXVkZXZhPTIzMjQsQS5hdWd1amFyYXRpPTI3MDgsQS5hdWd1cm11a2hpPTI1ODAsQS5hdWxlbmd0aG1hcmtiZW5nYWxpPTI1MTksQS5hdW1hdHJhZ3VybXVraGk9MjYzNixBLmF1dm93ZWxzaWduYmVuZ2FsaT0yNTA4LEEuYXV2b3dlbHNpZ25kZXZhPTIzODAsQS5hdXZvd2Vsc2lnbmd1amFyYXRpPTI3NjQsQS5hdmFncmFoYWRldmE9MjM2NSxBLmF5YmFybWVuaWFuPTEzNzcsQS5heWluPTE1MDYsQS5heWluYWx0b25laGVicmV3PTY0Mjg4LEEuYXlpbmhlYnJldz0xNTA2LEEuYj05OCxBLmJhYmVuZ2FsaT0yNDc2LEEuYmFja3NsYXNoPTkyLEEuYmFja3NsYXNobW9ub3NwYWNlPTY1MzQwLEEuYmFkZXZhPTIzNDgsQS5iYWd1amFyYXRpPTI3MzIsQS5iYWd1cm11a2hpPTI2MDQsQS5iYWhpcmFnYW5hPTEyNDAwLEEuYmFodHRoYWk9MzY0NyxBLmJha2F0YWthbmE9MTI0OTYsQS5iYXI9MTI0LEEuYmFybW9ub3NwYWNlPTY1MzcyLEEuYmJvcG9tb2ZvPTEyNTQ5LEEuYmNpcmNsZT05NDI1LEEuYmRvdGFjY2VudD03NjgzLEEuYmRvdGJlbG93PTc2ODUsQS5iZWFtZWRzaXh0ZWVudGhub3Rlcz05ODM2LEEuYmVjYXVzZT04NzU3LEEuYmVjeXJpbGxpYz0xMDczLEEuYmVoYXJhYmljPTE1NzYsQS5iZWhmaW5hbGFyYWJpYz02NTE2OCxBLmJlaGluaXRpYWxhcmFiaWM9NjUxNjksQS5iZWhpcmFnYW5hPTEyNDA5LEEuYmVobWVkaWFsYXJhYmljPTY1MTcwLEEuYmVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzEsQS5iZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjAsQS5iZWhub29uZmluYWxhcmFiaWM9NjQ2MjEsQS5iZWthdGFrYW5hPTEyNTA1LEEuYmVuYXJtZW5pYW49MTM3OCxBLmJldD0xNDg5LEEuYmV0YT05NDYsQS5iZXRhc3ltYm9sZ3JlZWs9OTc2LEEuYmV0ZGFnZXNoPTY0MzA1LEEuYmV0ZGFnZXNoaGVicmV3PTY0MzA1LEEuYmV0aGVicmV3PTE0ODksQS5iZXRyYWZlaGVicmV3PTY0MzMyLEEuYmhhYmVuZ2FsaT0yNDc3LEEuYmhhZGV2YT0yMzQ5LEEuYmhhZ3VqYXJhdGk9MjczMyxBLmJoYWd1cm11a2hpPTI2MDUsQS5iaG9vaz01OTUsQS5iaWhpcmFnYW5hPTEyNDAzLEEuYmlrYXRha2FuYT0xMjQ5OSxBLmJpbGFiaWFsY2xpY2s9NjY0LEEuYmluZGlndXJtdWtoaT0yNTYyLEEuYmlydXNxdWFyZT0xMzEwNSxBLmJsYWNrY2lyY2xlPTk2NzksQS5ibGFja2RpYW1vbmQ9OTY3MCxBLmJsYWNrZG93bnBvaW50aW5ndHJpYW5nbGU9OTY2MCxBLmJsYWNrbGVmdHBvaW50aW5ncG9pbnRlcj05NjY4LEEuYmxhY2tsZWZ0cG9pbnRpbmd0cmlhbmdsZT05NjY0LEEuYmxhY2tsZW50aWN1bGFyYnJhY2tldGxlZnQ9MTIzMDQsQS5ibGFja2xlbnRpY3VsYXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgzLEEuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0PTEyMzA1LEEuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwODQsQS5ibGFja2xvd2VybGVmdHRyaWFuZ2xlPTk2OTksQS5ibGFja2xvd2VycmlnaHR0cmlhbmdsZT05Njk4LEEuYmxhY2tyZWN0YW5nbGU9OTY0NCxBLmJsYWNrcmlnaHRwb2ludGluZ3BvaW50ZXI9OTY1OCxBLmJsYWNrcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTQsQS5ibGFja3NtYWxsc3F1YXJlPTk2NDIsQS5ibGFja3NtaWxpbmdmYWNlPTk3ODcsQS5ibGFja3NxdWFyZT05NjMyLEEuYmxhY2tzdGFyPTk3MzMsQS5ibGFja3VwcGVybGVmdHRyaWFuZ2xlPTk3MDAsQS5ibGFja3VwcGVycmlnaHR0cmlhbmdsZT05NzAxLEEuYmxhY2t1cHBvaW50aW5nc21hbGx0cmlhbmdsZT05NjUyLEEuYmxhY2t1cHBvaW50aW5ndHJpYW5nbGU9OTY1MCxBLmJsYW5rPTkyNTEsQS5ibGluZWJlbG93PTc2ODcsQS5ibG9jaz05NjA4LEEuYm1vbm9zcGFjZT02NTM0NixBLmJvYmFpbWFpdGhhaT0zNjEwLEEuYm9oaXJhZ2FuYT0xMjQxMixBLmJva2F0YWthbmE9MTI1MDgsQS5icGFyZW49OTM3MyxBLmJxc3F1YXJlPTEzMjUxLEEuYnJhY2VleD02MzczMixBLmJyYWNlbGVmdD0xMjMsQS5icmFjZWxlZnRidD02MzczMSxBLmJyYWNlbGVmdG1pZD02MzczMCxBLmJyYWNlbGVmdG1vbm9zcGFjZT02NTM3MSxBLmJyYWNlbGVmdHNtYWxsPTY1MTE1LEEuYnJhY2VsZWZ0dHA9NjM3MjksQS5icmFjZWxlZnR2ZXJ0aWNhbD02NTA3OSxBLmJyYWNlcmlnaHQ9MTI1LEEuYnJhY2VyaWdodGJ0PTYzNzQyLEEuYnJhY2VyaWdodG1pZD02Mzc0MSxBLmJyYWNlcmlnaHRtb25vc3BhY2U9NjUzNzMsQS5icmFjZXJpZ2h0c21hbGw9NjUxMTYsQS5icmFjZXJpZ2h0dHA9NjM3NDAsQS5icmFjZXJpZ2h0dmVydGljYWw9NjUwODAsQS5icmFja2V0bGVmdD05MSxBLmJyYWNrZXRsZWZ0YnQ9NjM3MjgsQS5icmFja2V0bGVmdGV4PTYzNzI3LEEuYnJhY2tldGxlZnRtb25vc3BhY2U9NjUzMzksQS5icmFja2V0bGVmdHRwPTYzNzI2LEEuYnJhY2tldHJpZ2h0PTkzLEEuYnJhY2tldHJpZ2h0YnQ9NjM3MzksQS5icmFja2V0cmlnaHRleD02MzczOCxBLmJyYWNrZXRyaWdodG1vbm9zcGFjZT02NTM0MSxBLmJyYWNrZXRyaWdodHRwPTYzNzM3LEEuYnJldmU9NzI4LEEuYnJldmViZWxvd2NtYj04MTQsQS5icmV2ZWNtYj03NzQsQS5icmV2ZWludmVydGVkYmVsb3djbWI9ODE1LEEuYnJldmVpbnZlcnRlZGNtYj03ODUsQS5icmV2ZWludmVydGVkZG91YmxlY21iPTg2NSxBLmJyaWRnZWJlbG93Y21iPTgxMCxBLmJyaWRnZWludmVydGVkYmVsb3djbWI9ODI2LEEuYnJva2VuYmFyPTE2NixBLmJzdHJva2U9Mzg0LEEuYnN1cGVyaW9yPTYzMjEwLEEuYnRvcGJhcj0zODcsQS5idWhpcmFnYW5hPTEyNDA2LEEuYnVrYXRha2FuYT0xMjUwMixBLmJ1bGxldD04MjI2LEEuYnVsbGV0aW52ZXJzZT05Njg4LEEuYnVsbGV0b3BlcmF0b3I9ODcyOSxBLmJ1bGxzZXllPTk2NzgsQS5jPTk5LEEuY2Fhcm1lbmlhbj0xMzkwLEEuY2FiZW5nYWxpPTI0NTgsQS5jYWN1dGU9MjYzLEEuY2FkZXZhPTIzMzAsQS5jYWd1amFyYXRpPTI3MTQsQS5jYWd1cm11a2hpPTI1ODYsQS5jYWxzcXVhcmU9MTMxOTIsQS5jYW5kcmFiaW5kdWJlbmdhbGk9MjQzMyxBLmNhbmRyYWJpbmR1Y21iPTc4NCxBLmNhbmRyYWJpbmR1ZGV2YT0yMzA1LEEuY2FuZHJhYmluZHVndWphcmF0aT0yNjg5LEEuY2Fwc2xvY2s9ODY4MixBLmNhcmVvZj04NDUzLEEuY2Fyb249NzExLEEuY2Fyb25iZWxvd2NtYj04MTIsQS5jYXJvbmNtYj03ODAsQS5jYXJyaWFnZXJldHVybj04NjI5LEEuY2JvcG9tb2ZvPTEyNTY4LEEuY2Nhcm9uPTI2OSxBLmNjZWRpbGxhPTIzMSxBLmNjZWRpbGxhYWN1dGU9NzY4OSxBLmNjaXJjbGU9OTQyNixBLmNjaXJjdW1mbGV4PTI2NSxBLmNjdXJsPTU5NyxBLmNkb3Q9MjY3LEEuY2RvdGFjY2VudD0yNjcsQS5jZHNxdWFyZT0xMzI1MyxBLmNlZGlsbGE9MTg0LEEuY2VkaWxsYWNtYj04MDcsQS5jZW50PTE2MixBLmNlbnRpZ3JhZGU9ODQ1MSxBLmNlbnRpbmZlcmlvcj02MzE5OSxBLmNlbnRtb25vc3BhY2U9NjU1MDQsQS5jZW50b2xkc3R5bGU9NjMzOTQsQS5jZW50c3VwZXJpb3I9NjMyMDAsQS5jaGFhcm1lbmlhbj0xNDAxLEEuY2hhYmVuZ2FsaT0yNDU5LEEuY2hhZGV2YT0yMzMxLEEuY2hhZ3VqYXJhdGk9MjcxNSxBLmNoYWd1cm11a2hpPTI1ODcsQS5jaGJvcG9tb2ZvPTEyNTY0LEEuY2hlYWJraGFzaWFuY3lyaWxsaWM9MTIxMyxBLmNoZWNrbWFyaz0xMDAwMyxBLmNoZWN5cmlsbGljPTEwOTUsQS5jaGVkZXNjZW5kZXJhYmtoYXNpYW5jeXJpbGxpYz0xMjE1LEEuY2hlZGVzY2VuZGVyY3lyaWxsaWM9MTIwNyxBLmNoZWRpZXJlc2lzY3lyaWxsaWM9MTI2OSxBLmNoZWhhcm1lbmlhbj0xMzk1LEEuY2hla2hha2Fzc2lhbmN5cmlsbGljPTEyMjgsQS5jaGV2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTEyMDksQS5jaGk9OTY3LEEuY2hpZXVjaGFjaXJjbGVrb3JlYW49MTI5MTksQS5jaGlldWNoYXBhcmVua29yZWFuPTEyODIzLEEuY2hpZXVjaGNpcmNsZWtvcmVhbj0xMjkwNSxBLmNoaWV1Y2hrb3JlYW49MTI2MTgsQS5jaGlldWNocGFyZW5rb3JlYW49MTI4MDksQS5jaG9jaGFuZ3RoYWk9MzU5NCxBLmNob2NoYW50aGFpPTM1OTIsQS5jaG9jaGluZ3RoYWk9MzU5MyxBLmNob2Nob2V0aGFpPTM1OTYsQS5jaG9vaz0zOTIsQS5jaWV1Y2FjaXJjbGVrb3JlYW49MTI5MTgsQS5jaWV1Y2FwYXJlbmtvcmVhbj0xMjgyMixBLmNpZXVjY2lyY2xla29yZWFuPTEyOTA0LEEuY2lldWNrb3JlYW49MTI2MTYsQS5jaWV1Y3BhcmVua29yZWFuPTEyODA4LEEuY2lldWN1cGFyZW5rb3JlYW49MTI4MjgsQS5jaXJjbGU9OTY3NSxBLmNpcmNsZWNvcHlydD0xNjksQS5jaXJjbGVtdWx0aXBseT04ODU1LEEuY2lyY2xlb3Q9ODg1NyxBLmNpcmNsZXBsdXM9ODg1MyxBLmNpcmNsZXBvc3RhbG1hcms9MTIzNDIsQS5jaXJjbGV3aXRobGVmdGhhbGZibGFjaz05NjgwLEEuY2lyY2xld2l0aHJpZ2h0aGFsZmJsYWNrPTk2ODEsQS5jaXJjdW1mbGV4PTcxMCxBLmNpcmN1bWZsZXhiZWxvd2NtYj04MTMsQS5jaXJjdW1mbGV4Y21iPTc3MCxBLmNsZWFyPTg5OTksQS5jbGlja2FsdmVvbGFyPTQ1MCxBLmNsaWNrZGVudGFsPTQ0OCxBLmNsaWNrbGF0ZXJhbD00NDksQS5jbGlja3JldHJvZmxleD00NTEsQS5jbHViPTk4MjcsQS5jbHVic3VpdGJsYWNrPTk4MjcsQS5jbHVic3VpdHdoaXRlPTk4MzEsQS5jbWN1YmVkc3F1YXJlPTEzMjIwLEEuY21vbm9zcGFjZT02NTM0NyxBLmNtc3F1YXJlZHNxdWFyZT0xMzIxNixBLmNvYXJtZW5pYW49MTQwOSxBLmNvbG9uPTU4LEEuY29sb25tb25ldGFyeT04MzUzLEEuY29sb25tb25vc3BhY2U9NjUzMDYsQS5jb2xvbnNpZ249ODM1MyxBLmNvbG9uc21hbGw9NjUxMDksQS5jb2xvbnRyaWFuZ3VsYXJoYWxmbW9kPTcyMSxBLmNvbG9udHJpYW5ndWxhcm1vZD03MjAsQS5jb21tYT00NCxBLmNvbW1hYWJvdmVjbWI9Nzg3LEEuY29tbWFhYm92ZXJpZ2h0Y21iPTc4OSxBLmNvbW1hYWNjZW50PTYzMTcxLEEuY29tbWFhcmFiaWM9MTU0OCxBLmNvbW1hYXJtZW5pYW49MTM3MyxBLmNvbW1haW5mZXJpb3I9NjMyMDEsQS5jb21tYW1vbm9zcGFjZT02NTI5MixBLmNvbW1hcmV2ZXJzZWRhYm92ZWNtYj03ODgsQS5jb21tYXJldmVyc2VkbW9kPTcwMSxBLmNvbW1hc21hbGw9NjUxMDQsQS5jb21tYXN1cGVyaW9yPTYzMjAyLEEuY29tbWF0dXJuZWRhYm92ZWNtYj03ODYsQS5jb21tYXR1cm5lZG1vZD02OTksQS5jb21wYXNzPTk3ODgsQS5jb25ncnVlbnQ9ODc3MyxBLmNvbnRvdXJpbnRlZ3JhbD04NzUwLEEuY29udHJvbD04OTYzLEEuY29udHJvbEFDSz02LEEuY29udHJvbEJFTD03LEEuY29udHJvbEJTPTgsQS5jb250cm9sQ0FOPTI0LEEuY29udHJvbENSPTEzLEEuY29udHJvbERDMT0xNyxBLmNvbnRyb2xEQzI9MTgsQS5jb250cm9sREMzPTE5LEEuY29udHJvbERDND0yMCxBLmNvbnRyb2xERUw9MTI3LEEuY29udHJvbERMRT0xNixBLmNvbnRyb2xFTT0yNSxBLmNvbnRyb2xFTlE9NSxBLmNvbnRyb2xFT1Q9NCxBLmNvbnRyb2xFU0M9MjcsQS5jb250cm9sRVRCPTIzLEEuY29udHJvbEVUWD0zLEEuY29udHJvbEZGPTEyLEEuY29udHJvbEZTPTI4LEEuY29udHJvbEdTPTI5LEEuY29udHJvbEhUPTksQS5jb250cm9sTEY9MTAsQS5jb250cm9sTkFLPTIxLEEuY29udHJvbE5VTEw9MCxBLmNvbnRyb2xSUz0zMCxBLmNvbnRyb2xTST0xNSxBLmNvbnRyb2xTTz0xNCxBLmNvbnRyb2xTT1Q9MixBLmNvbnRyb2xTVFg9MSxBLmNvbnRyb2xTVUI9MjYsQS5jb250cm9sU1lOPTIyLEEuY29udHJvbFVTPTMxLEEuY29udHJvbFZUPTExLEEuY29weXJpZ2h0PTE2OSxBLmNvcHlyaWdodHNhbnM9NjM3MjEsQS5jb3B5cmlnaHRzZXJpZj02MzE5MyxBLmNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAwLEEuY29ybmVyYnJhY2tldGxlZnRoYWxmd2lkdGg9NjUzNzgsQS5jb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg5LEEuY29ybmVyYnJhY2tldHJpZ2h0PTEyMzAxLEEuY29ybmVyYnJhY2tldHJpZ2h0aGFsZndpZHRoPTY1Mzc5LEEuY29ybmVyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwOTAsQS5jb3Jwb3JhdGlvbnNxdWFyZT0xMzE4MyxBLmNvc3F1YXJlPTEzMjU1LEEuY292ZXJrZ3NxdWFyZT0xMzI1NCxBLmNwYXJlbj05Mzc0LEEuY3J1emVpcm89ODM1NCxBLmNzdHJldGNoZWQ9NjYzLEEuY3VybHlhbmQ9ODkxMSxBLmN1cmx5b3I9ODkxMCxBLmN1cnJlbmN5PTE2NCxBLmN5ckJyZXZlPTYzMTg1LEEuY3lyRmxleD02MzE4NixBLmN5cmJyZXZlPTYzMTg4LEEuY3lyZmxleD02MzE4OSxBLmQ9MTAwLEEuZGFhcm1lbmlhbj0xMzgwLEEuZGFiZW5nYWxpPTI0NzAsQS5kYWRhcmFiaWM9MTU5MCxBLmRhZGV2YT0yMzQyLEEuZGFkZmluYWxhcmFiaWM9NjUyMTQsQS5kYWRpbml0aWFsYXJhYmljPTY1MjE1LEEuZGFkbWVkaWFsYXJhYmljPTY1MjE2LEEuZGFnZXNoPTE0NjgsQS5kYWdlc2hoZWJyZXc9MTQ2OCxBLmRhZ2dlcj04MjI0LEEuZGFnZ2VyZGJsPTgyMjUsQS5kYWd1amFyYXRpPTI3MjYsQS5kYWd1cm11a2hpPTI1OTgsQS5kYWhpcmFnYW5hPTEyMzg0LEEuZGFrYXRha2FuYT0xMjQ4MCxBLmRhbGFyYWJpYz0xNTgzLEEuZGFsZXQ9MTQ5MSxBLmRhbGV0ZGFnZXNoPTY0MzA3LEEuZGFsZXRkYWdlc2hoZWJyZXc9NjQzMDcsQS5kYWxldGhlYnJldz0xNDkxLEEuZGFsZmluYWxhcmFiaWM9NjUxOTQsQS5kYW1tYWFyYWJpYz0xNjE1LEEuZGFtbWFsb3dhcmFiaWM9MTYxNSxBLmRhbW1hdGFuYWx0b25lYXJhYmljPTE2MTIsQS5kYW1tYXRhbmFyYWJpYz0xNjEyLEEuZGFuZGE9MjQwNCxBLmRhcmdhaGVicmV3PTE0NDcsQS5kYXJnYWxlZnRoZWJyZXc9MTQ0NyxBLmRhc2lhcG5ldW1hdGFjeXJpbGxpY2NtYj0xMTU3LEEuZGJsR3JhdmU9NjMxODcsQS5kYmxhbmdsZWJyYWNrZXRsZWZ0PTEyMjk4LEEuZGJsYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg1LEEuZGJsYW5nbGVicmFja2V0cmlnaHQ9MTIyOTksQS5kYmxhbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg2LEEuZGJsYXJjaGludmVydGVkYmVsb3djbWI9ODExLEEuZGJsYXJyb3dsZWZ0PTg2NjAsQS5kYmxhcnJvd3JpZ2h0PTg2NTgsQS5kYmxkYW5kYT0yNDA1LEEuZGJsZ3JhdmU9NjMxOTAsQS5kYmxncmF2ZWNtYj03ODMsQS5kYmxpbnRlZ3JhbD04NzQ4LEEuZGJsbG93bGluZT04MjE1LEEuZGJsbG93bGluZWNtYj04MTksQS5kYmxvdmVybGluZWNtYj04MzEsQS5kYmxwcmltZW1vZD02OTgsQS5kYmx2ZXJ0aWNhbGJhcj04MjE0LEEuZGJsdmVydGljYWxsaW5lYWJvdmVjbWI9NzgyLEEuZGJvcG9tb2ZvPTEyNTUzLEEuZGJzcXVhcmU9MTMyNTYsQS5kY2Fyb249MjcxLEEuZGNlZGlsbGE9NzY5NyxBLmRjaXJjbGU9OTQyNyxBLmRjaXJjdW1mbGV4YmVsb3c9NzY5OSxBLmRjcm9hdD0yNzMsQS5kZGFiZW5nYWxpPTI0NjUsQS5kZGFkZXZhPTIzMzcsQS5kZGFndWphcmF0aT0yNzIxLEEuZGRhZ3VybXVraGk9MjU5MyxBLmRkYWxhcmFiaWM9MTY3MixBLmRkYWxmaW5hbGFyYWJpYz02NDM5MyxBLmRkZGhhZGV2YT0yMzk2LEEuZGRoYWJlbmdhbGk9MjQ2NixBLmRkaGFkZXZhPTIzMzgsQS5kZGhhZ3VqYXJhdGk9MjcyMixBLmRkaGFndXJtdWtoaT0yNTk0LEEuZGRvdGFjY2VudD03NjkxLEEuZGRvdGJlbG93PTc2OTMsQS5kZWNpbWFsc2VwYXJhdG9yYXJhYmljPTE2NDMsQS5kZWNpbWFsc2VwYXJhdG9ycGVyc2lhbj0xNjQzLEEuZGVjeXJpbGxpYz0xMDc2LEEuZGVncmVlPTE3NixBLmRlaGloZWJyZXc9MTQ1MyxBLmRlaGlyYWdhbmE9MTIzOTEsQS5kZWljb3B0aWM9MTAwNyxBLmRla2F0YWthbmE9MTI0ODcsQS5kZWxldGVsZWZ0PTkwMDMsQS5kZWxldGVyaWdodD04OTk4LEEuZGVsdGE9OTQ4LEEuZGVsdGF0dXJuZWQ9Mzk3LEEuZGVub21pbmF0b3JtaW51c29uZW51bWVyYXRvcmJlbmdhbGk9MjU1MixBLmRlemg9Njc2LEEuZGhhYmVuZ2FsaT0yNDcxLEEuZGhhZGV2YT0yMzQzLEEuZGhhZ3VqYXJhdGk9MjcyNyxBLmRoYWd1cm11a2hpPTI1OTksQS5kaG9vaz01OTksQS5kaWFseXRpa2F0b25vcz05MDEsQS5kaWFseXRpa2F0b25vc2NtYj04MzYsQS5kaWFtb25kPTk4MzAsQS5kaWFtb25kc3VpdHdoaXRlPTk4MjYsQS5kaWVyZXNpcz0xNjgsQS5kaWVyZXNpc2FjdXRlPTYzMTkxLEEuZGllcmVzaXNiZWxvd2NtYj04MDQsQS5kaWVyZXNpc2NtYj03NzYsQS5kaWVyZXNpc2dyYXZlPTYzMTkyLEEuZGllcmVzaXN0b25vcz05MDEsQS5kaWhpcmFnYW5hPTEyMzg2LEEuZGlrYXRha2FuYT0xMjQ4MixBLmRpdHRvbWFyaz0xMjI5MSxBLmRpdmlkZT0yNDcsQS5kaXZpZGVzPTg3MzksQS5kaXZpc2lvbnNsYXNoPTg3MjUsQS5kamVjeXJpbGxpYz0xMTA2LEEuZGtzaGFkZT05NjE5LEEuZGxpbmViZWxvdz03Njk1LEEuZGxzcXVhcmU9MTMyMDcsQS5kbWFjcm9uPTI3MyxBLmRtb25vc3BhY2U9NjUzNDgsQS5kbmJsb2NrPTk2MDQsQS5kb2NoYWRhdGhhaT0zNTk4LEEuZG9kZWt0aGFpPTM2MDQsQS5kb2hpcmFnYW5hPTEyMzkzLEEuZG9rYXRha2FuYT0xMjQ4OSxBLmRvbGxhcj0zNjtBLmRvbGxhcmluZmVyaW9yPTYzMjAzLEEuZG9sbGFybW9ub3NwYWNlPTY1Mjg0LEEuZG9sbGFyb2xkc3R5bGU9NjMyNjgsQS5kb2xsYXJzbWFsbD02NTEyOSxBLmRvbGxhcnN1cGVyaW9yPTYzMjA0LEEuZG9uZz04MzYzLEEuZG9ydXNxdWFyZT0xMzA5NCxBLmRvdGFjY2VudD03MjksQS5kb3RhY2NlbnRjbWI9Nzc1LEEuZG90YmVsb3djbWI9ODAzLEEuZG90YmVsb3djb21iPTgwMyxBLmRvdGthdGFrYW5hPTEyNTM5LEEuZG90bGVzc2k9MzA1LEEuZG90bGVzc2o9NjMxNjYsQS5kb3RsZXNzanN0cm9rZWhvb2s9NjQ0LEEuZG90bWF0aD04OTAxLEEuZG90dGVkY2lyY2xlPTk2NzYsQS5kb3VibGV5b2RwYXRhaD02NDI4NyxBLmRvdWJsZXlvZHBhdGFoaGVicmV3PTY0Mjg3LEEuZG93bnRhY2tiZWxvd2NtYj03OTgsQS5kb3dudGFja21vZD03MjUsQS5kcGFyZW49OTM3NSxBLmRzdXBlcmlvcj02MzIxMSxBLmR0YWlsPTU5OCxBLmR0b3BiYXI9Mzk2LEEuZHVoaXJhZ2FuYT0xMjM4OSxBLmR1a2F0YWthbmE9MTI0ODUsQS5kej00OTksQS5kemFsdG9uZT02NzUsQS5kemNhcm9uPTQ1NCxBLmR6Y3VybD02NzcsQS5kemVhYmtoYXNpYW5jeXJpbGxpYz0xMjQ5LEEuZHplY3lyaWxsaWM9MTEwOSxBLmR6aGVjeXJpbGxpYz0xMTE5LEEuZT0xMDEsQS5lYWN1dGU9MjMzLEEuZWFydGg9OTc5MyxBLmViZW5nYWxpPTI0NDcsQS5lYm9wb21vZm89MTI1NzIsQS5lYnJldmU9Mjc3LEEuZWNhbmRyYWRldmE9MjMxNyxBLmVjYW5kcmFndWphcmF0aT0yNzAxLEEuZWNhbmRyYXZvd2Vsc2lnbmRldmE9MjM3MyxBLmVjYW5kcmF2b3dlbHNpZ25ndWphcmF0aT0yNzU3LEEuZWNhcm9uPTI4MyxBLmVjZWRpbGxhYnJldmU9NzcwOSxBLmVjaGFybWVuaWFuPTEzODEsQS5lY2h5aXduYXJtZW5pYW49MTQxNSxBLmVjaXJjbGU9OTQyOCxBLmVjaXJjdW1mbGV4PTIzNCxBLmVjaXJjdW1mbGV4YWN1dGU9Nzg3MSxBLmVjaXJjdW1mbGV4YmVsb3c9NzcwNSxBLmVjaXJjdW1mbGV4ZG90YmVsb3c9Nzg3OSxBLmVjaXJjdW1mbGV4Z3JhdmU9Nzg3MyxBLmVjaXJjdW1mbGV4aG9va2Fib3ZlPTc4NzUsQS5lY2lyY3VtZmxleHRpbGRlPTc4NzcsQS5lY3lyaWxsaWM9MTEwOCxBLmVkYmxncmF2ZT01MTcsQS5lZGV2YT0yMzE5LEEuZWRpZXJlc2lzPTIzNSxBLmVkb3Q9Mjc5LEEuZWRvdGFjY2VudD0yNzksQS5lZG90YmVsb3c9Nzg2NSxBLmVlZ3VybXVraGk9MjU3NSxBLmVlbWF0cmFndXJtdWtoaT0yNjMxLEEuZWZjeXJpbGxpYz0xMDkyLEEuZWdyYXZlPTIzMixBLmVndWphcmF0aT0yNzAzLEEuZWhhcm1lbmlhbj0xMzgzLEEuZWhib3BvbW9mbz0xMjU3MyxBLmVoaXJhZ2FuYT0xMjM2MCxBLmVob29rYWJvdmU9Nzg2NyxBLmVpYm9wb21vZm89MTI1NzUsQS5laWdodD01NixBLmVpZ2h0YXJhYmljPTE2NDAsQS5laWdodGJlbmdhbGk9MjU0MixBLmVpZ2h0Y2lyY2xlPTkzMTksQS5laWdodGNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjksQS5laWdodGRldmE9MjQxNCxBLmVpZ2h0ZWVuY2lyY2xlPTkzMjksQS5laWdodGVlbnBhcmVuPTkzNDksQS5laWdodGVlbnBlcmlvZD05MzY5LEEuZWlnaHRndWphcmF0aT0yNzk4LEEuZWlnaHRndXJtdWtoaT0yNjcwLEEuZWlnaHRoYWNrYXJhYmljPTE2NDAsQS5laWdodGhhbmd6aG91PTEyMzI4LEEuZWlnaHRobm90ZWJlYW1lZD05ODM1LEEuZWlnaHRpZGVvZ3JhcGhpY3BhcmVuPTEyODM5LEEuZWlnaHRpbmZlcmlvcj04MzI4LEEuZWlnaHRtb25vc3BhY2U9NjUzMDQsQS5laWdodG9sZHN0eWxlPTYzMjg4LEEuZWlnaHRwYXJlbj05MzM5LEEuZWlnaHRwZXJpb2Q9OTM1OSxBLmVpZ2h0cGVyc2lhbj0xNzg0LEEuZWlnaHRyb21hbj04NTY3LEEuZWlnaHRzdXBlcmlvcj04MzEyLEEuZWlnaHR0aGFpPTM2NzIsQS5laW52ZXJ0ZWRicmV2ZT01MTksQS5laW90aWZpZWRjeXJpbGxpYz0xMTI1LEEuZWthdGFrYW5hPTEyNDU2LEEuZWthdGFrYW5haGFsZndpZHRoPTY1Mzk2LEEuZWtvbmthcmd1cm11a2hpPTI2NzYsQS5la29yZWFuPTEyNjI4LEEuZWxjeXJpbGxpYz0xMDgzLEEuZWxlbWVudD04NzEyLEEuZWxldmVuY2lyY2xlPTkzMjIsQS5lbGV2ZW5wYXJlbj05MzQyLEEuZWxldmVucGVyaW9kPTkzNjIsQS5lbGV2ZW5yb21hbj04NTcwLEEuZWxsaXBzaXM9ODIzMCxBLmVsbGlwc2lzdmVydGljYWw9ODk0MixBLmVtYWNyb249Mjc1LEEuZW1hY3JvbmFjdXRlPTc3MDMsQS5lbWFjcm9uZ3JhdmU9NzcwMSxBLmVtY3lyaWxsaWM9MTA4NCxBLmVtZGFzaD04MjEyLEEuZW1kYXNodmVydGljYWw9NjUwNzMsQS5lbW9ub3NwYWNlPTY1MzQ5LEEuZW1waGFzaXNtYXJrYXJtZW5pYW49MTM3MSxBLmVtcHR5c2V0PTg3MDksQS5lbmJvcG9tb2ZvPTEyNTc5LEEuZW5jeXJpbGxpYz0xMDg1LEEuZW5kYXNoPTgyMTEsQS5lbmRhc2h2ZXJ0aWNhbD02NTA3NCxBLmVuZGVzY2VuZGVyY3lyaWxsaWM9MTE4NyxBLmVuZz0zMzEsQS5lbmdib3BvbW9mbz0xMjU4MSxBLmVuZ2hlY3lyaWxsaWM9MTE4OSxBLmVuaG9va2N5cmlsbGljPTEyMjQsQS5lbnNwYWNlPTgxOTQsQS5lb2dvbmVrPTI4MSxBLmVva29yZWFuPTEyNjI3LEEuZW9wZW49NjAzLEEuZW9wZW5jbG9zZWQ9NjY2LEEuZW9wZW5yZXZlcnNlZD02MDQsQS5lb3BlbnJldmVyc2VkY2xvc2VkPTYwNixBLmVvcGVucmV2ZXJzZWRob29rPTYwNSxBLmVwYXJlbj05Mzc2LEEuZXBzaWxvbj05NDksQS5lcHNpbG9udG9ub3M9OTQxLEEuZXF1YWw9NjEsQS5lcXVhbG1vbm9zcGFjZT02NTMwOSxBLmVxdWFsc21hbGw9NjUxMjYsQS5lcXVhbHN1cGVyaW9yPTgzMTYsQS5lcXVpdmFsZW5jZT04ODAxLEEuZXJib3BvbW9mbz0xMjU4MixBLmVyY3lyaWxsaWM9MTA4OCxBLmVyZXZlcnNlZD02MDAsQS5lcmV2ZXJzZWRjeXJpbGxpYz0xMTAxLEEuZXNjeXJpbGxpYz0xMDg5LEEuZXNkZXNjZW5kZXJjeXJpbGxpYz0xMTk1LEEuZXNoPTY0MyxBLmVzaGN1cmw9NjQ2LEEuZXNob3J0ZGV2YT0yMzE4LEEuZXNob3J0dm93ZWxzaWduZGV2YT0yMzc0LEEuZXNocmV2ZXJzZWRsb29wPTQyNixBLmVzaHNxdWF0cmV2ZXJzZWQ9NjQ1LEEuZXNtYWxsaGlyYWdhbmE9MTIzNTksQS5lc21hbGxrYXRha2FuYT0xMjQ1NSxBLmVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg2LEEuZXN0aW1hdGVkPTg0OTQsQS5lc3VwZXJpb3I9NjMyMTIsQS5ldGE9OTUxLEEuZXRhcm1lbmlhbj0xMzg0LEEuZXRhdG9ub3M9OTQyLEEuZXRoPTI0MCxBLmV0aWxkZT03ODY5LEEuZXRpbGRlYmVsb3c9NzcwNyxBLmV0bmFodGFmb3VraGhlYnJldz0xNDI1LEEuZXRuYWh0YWZvdWtobGVmdGhlYnJldz0xNDI1LEEuZXRuYWh0YWhlYnJldz0xNDI1LEEuZXRuYWh0YWxlZnRoZWJyZXc9MTQyNSxBLmV0dXJuZWQ9NDc3LEEuZXVrb3JlYW49MTI2NDEsQS5ldXJvPTgzNjQsQS5ldm93ZWxzaWduYmVuZ2FsaT0yNTAzLEEuZXZvd2Vsc2lnbmRldmE9MjM3NSxBLmV2b3dlbHNpZ25ndWphcmF0aT0yNzU5LEEuZXhjbGFtPTMzLEEuZXhjbGFtYXJtZW5pYW49MTM3MixBLmV4Y2xhbWRibD04MjUyLEEuZXhjbGFtZG93bj0xNjEsQS5leGNsYW1kb3duc21hbGw9NjMzOTMsQS5leGNsYW1tb25vc3BhY2U9NjUyODEsQS5leGNsYW1zbWFsbD02MzI2NSxBLmV4aXN0ZW50aWFsPTg3MDcsQS5lemg9NjU4LEEuZXpoY2Fyb249NDk1LEEuZXpoY3VybD02NTksQS5lemhyZXZlcnNlZD00NDEsQS5lemh0YWlsPTQ0MixBLmY9MTAyLEEuZmFkZXZhPTIzOTgsQS5mYWd1cm11a2hpPTI2NTQsQS5mYWhyZW5oZWl0PTg0NTcsQS5mYXRoYWFyYWJpYz0xNjE0LEEuZmF0aGFsb3dhcmFiaWM9MTYxNCxBLmZhdGhhdGFuYXJhYmljPTE2MTEsQS5mYm9wb21vZm89MTI1NTIsQS5mY2lyY2xlPTk0MjksQS5mZG90YWNjZW50PTc3MTEsQS5mZWhhcmFiaWM9MTYwMSxBLmZlaGFybWVuaWFuPTE0MTQsQS5mZWhmaW5hbGFyYWJpYz02NTIzNCxBLmZlaGluaXRpYWxhcmFiaWM9NjUyMzUsQS5mZWhtZWRpYWxhcmFiaWM9NjUyMzYsQS5mZWljb3B0aWM9OTk3LEEuZmVtYWxlPTk3OTIsQS5mZj02NDI1NixBLmZfZj02NDI1NixBLmZmaT02NDI1OSxBLmZfZl9pPTY0MjU5LEEuZmZsPTY0MjYwLEEuZl9mX2w9NjQyNjAsQS5maT02NDI1NyxBLmZfaT02NDI1NyxBLmZpZnRlZW5jaXJjbGU9OTMyNixBLmZpZnRlZW5wYXJlbj05MzQ2LEEuZmlmdGVlbnBlcmlvZD05MzY2LEEuZmlndXJlZGFzaD04MjEwLEEuZmlsbGVkYm94PTk2MzIsQS5maWxsZWRyZWN0PTk2NDQsQS5maW5hbGthZj0xNDk4LEEuZmluYWxrYWZkYWdlc2g9NjQzMTQsQS5maW5hbGthZmRhZ2VzaGhlYnJldz02NDMxNCxBLmZpbmFsa2FmaGVicmV3PTE0OTgsQS5maW5hbG1lbT0xNTAxLEEuZmluYWxtZW1oZWJyZXc9MTUwMSxBLmZpbmFsbnVuPTE1MDMsQS5maW5hbG51bmhlYnJldz0xNTAzLEEuZmluYWxwZT0xNTA3LEEuZmluYWxwZWhlYnJldz0xNTA3LEEuZmluYWx0c2FkaT0xNTA5LEEuZmluYWx0c2FkaWhlYnJldz0xNTA5LEEuZmlyc3R0b25lY2hpbmVzZT03MTMsQS5maXNoZXllPTk2NzMsQS5maXRhY3lyaWxsaWM9MTEzOSxBLmZpdmU9NTMsQS5maXZlYXJhYmljPTE2MzcsQS5maXZlYmVuZ2FsaT0yNTM5LEEuZml2ZWNpcmNsZT05MzE2LEEuZml2ZWNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjYsQS5maXZlZGV2YT0yNDExLEEuZml2ZWVpZ2h0aHM9ODU0MSxBLmZpdmVndWphcmF0aT0yNzk1LEEuZml2ZWd1cm11a2hpPTI2NjcsQS5maXZlaGFja2FyYWJpYz0xNjM3LEEuZml2ZWhhbmd6aG91PTEyMzI1LEEuZml2ZWlkZW9ncmFwaGljcGFyZW49MTI4MzYsQS5maXZlaW5mZXJpb3I9ODMyNSxBLmZpdmVtb25vc3BhY2U9NjUzMDEsQS5maXZlb2xkc3R5bGU9NjMyODUsQS5maXZlcGFyZW49OTMzNixBLmZpdmVwZXJpb2Q9OTM1NixBLmZpdmVwZXJzaWFuPTE3ODEsQS5maXZlcm9tYW49ODU2NCxBLmZpdmVzdXBlcmlvcj04MzA5LEEuZml2ZXRoYWk9MzY2OSxBLmZsPTY0MjU4LEEuZl9sPTY0MjU4LEEuZmxvcmluPTQwMixBLmZtb25vc3BhY2U9NjUzNTAsQS5mbXNxdWFyZT0xMzIwOSxBLmZvZmFudGhhaT0zNjE1LEEuZm9mYXRoYWk9MzYxMyxBLmZvbmdtYW50aGFpPTM2NjMsQS5mb3JhbGw9ODcwNCxBLmZvdXI9NTIsQS5mb3VyYXJhYmljPTE2MzYsQS5mb3VyYmVuZ2FsaT0yNTM4LEEuZm91cmNpcmNsZT05MzE1LEEuZm91cmNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjUsQS5mb3VyZGV2YT0yNDEwLEEuZm91cmd1amFyYXRpPTI3OTQsQS5mb3VyZ3VybXVraGk9MjY2NixBLmZvdXJoYWNrYXJhYmljPTE2MzYsQS5mb3VyaGFuZ3pob3U9MTIzMjQsQS5mb3VyaWRlb2dyYXBoaWNwYXJlbj0xMjgzNSxBLmZvdXJpbmZlcmlvcj04MzI0LEEuZm91cm1vbm9zcGFjZT02NTMwMCxBLmZvdXJudW1lcmF0b3JiZW5nYWxpPTI1NTEsQS5mb3Vyb2xkc3R5bGU9NjMyODQsQS5mb3VycGFyZW49OTMzNSxBLmZvdXJwZXJpb2Q9OTM1NSxBLmZvdXJwZXJzaWFuPTE3ODAsQS5mb3Vycm9tYW49ODU2MyxBLmZvdXJzdXBlcmlvcj04MzA4LEEuZm91cnRlZW5jaXJjbGU9OTMyNSxBLmZvdXJ0ZWVucGFyZW49OTM0NSxBLmZvdXJ0ZWVucGVyaW9kPTkzNjUsQS5mb3VydGhhaT0zNjY4LEEuZm91cnRodG9uZWNoaW5lc2U9NzE1LEEuZnBhcmVuPTkzNzcsQS5mcmFjdGlvbj04MjYwLEEuZnJhbmM9ODM1NSxBLmc9MTAzLEEuZ2FiZW5nYWxpPTI0NTUsQS5nYWN1dGU9NTAxLEEuZ2FkZXZhPTIzMjcsQS5nYWZhcmFiaWM9MTcxMSxBLmdhZmZpbmFsYXJhYmljPTY0NDAzLEEuZ2FmaW5pdGlhbGFyYWJpYz02NDQwNCxBLmdhZm1lZGlhbGFyYWJpYz02NDQwNSxBLmdhZ3VqYXJhdGk9MjcxMSxBLmdhZ3VybXVraGk9MjU4MyxBLmdhaGlyYWdhbmE9MTIzNjQsQS5nYWthdGFrYW5hPTEyNDYwLEEuZ2FtbWE9OTQ3LEEuZ2FtbWFsYXRpbnNtYWxsPTYxMSxBLmdhbW1hc3VwZXJpb3I9NzM2LEEuZ2FuZ2lhY29wdGljPTEwMDMsQS5nYm9wb21vZm89MTI1NTcsQS5nYnJldmU9Mjg3LEEuZ2Nhcm9uPTQ4NyxBLmdjZWRpbGxhPTI5MSxBLmdjaXJjbGU9OTQzMCxBLmdjaXJjdW1mbGV4PTI4NSxBLmdjb21tYWFjY2VudD0yOTEsQS5nZG90PTI4OSxBLmdkb3RhY2NlbnQ9Mjg5LEEuZ2VjeXJpbGxpYz0xMDc1LEEuZ2VoaXJhZ2FuYT0xMjM3MCxBLmdla2F0YWthbmE9MTI0NjYsQS5nZW9tZXRyaWNhbGx5ZXF1YWw9ODc4NSxBLmdlcmVzaGFjY2VudGhlYnJldz0xNDM2LEEuZ2VyZXNoaGVicmV3PTE1MjMsQS5nZXJlc2htdXFkYW1oZWJyZXc9MTQzNyxBLmdlcm1hbmRibHM9MjIzLEEuZ2Vyc2hheWltYWNjZW50aGVicmV3PTE0MzgsQS5nZXJzaGF5aW1oZWJyZXc9MTUyNCxBLmdldGFtYXJrPTEyMzA3LEEuZ2hhYmVuZ2FsaT0yNDU2LEEuZ2hhZGFybWVuaWFuPTEzOTQsQS5naGFkZXZhPTIzMjgsQS5naGFndWphcmF0aT0yNzEyLEEuZ2hhZ3VybXVraGk9MjU4NCxBLmdoYWluYXJhYmljPTE1OTQsQS5naGFpbmZpbmFsYXJhYmljPTY1MjMwLEEuZ2hhaW5pbml0aWFsYXJhYmljPTY1MjMxLEEuZ2hhaW5tZWRpYWxhcmFiaWM9NjUyMzIsQS5naGVtaWRkbGVob29rY3lyaWxsaWM9MTE3MyxBLmdoZXN0cm9rZWN5cmlsbGljPTExNzEsQS5naGV1cHR1cm5jeXJpbGxpYz0xMTY5LEEuZ2hoYWRldmE9MjM5NCxBLmdoaGFndXJtdWtoaT0yNjUwLEEuZ2hvb2s9NjA4LEEuZ2h6c3F1YXJlPTEzMjAzLEEuZ2loaXJhZ2FuYT0xMjM2NixBLmdpa2F0YWthbmE9MTI0NjIsQS5naW1hcm1lbmlhbj0xMzc5LEEuZ2ltZWw9MTQ5MCxBLmdpbWVsZGFnZXNoPTY0MzA2LEEuZ2ltZWxkYWdlc2hoZWJyZXc9NjQzMDYsQS5naW1lbGhlYnJldz0xNDkwLEEuZ2plY3lyaWxsaWM9MTEwNyxBLmdsb3R0YWxpbnZlcnRlZHN0cm9rZT00NDYsQS5nbG90dGFsc3RvcD02NjAsQS5nbG90dGFsc3RvcGludmVydGVkPTY2MixBLmdsb3R0YWxzdG9wbW9kPTcwNCxBLmdsb3R0YWxzdG9wcmV2ZXJzZWQ9NjYxLEEuZ2xvdHRhbHN0b3ByZXZlcnNlZG1vZD03MDUsQS5nbG90dGFsc3RvcHJldmVyc2Vkc3VwZXJpb3I9NzQwLEEuZ2xvdHRhbHN0b3BzdHJva2U9NjczLEEuZ2xvdHRhbHN0b3BzdHJva2VyZXZlcnNlZD02NzQsQS5nbWFjcm9uPTc3MTMsQS5nbW9ub3NwYWNlPTY1MzUxLEEuZ29oaXJhZ2FuYT0xMjM3MixBLmdva2F0YWthbmE9MTI0NjgsQS5ncGFyZW49OTM3OCxBLmdwYXNxdWFyZT0xMzIyOCxBLmdyYWRpZW50PTg3MTEsQS5ncmF2ZT05NixBLmdyYXZlYmVsb3djbWI9NzkwLEEuZ3JhdmVjbWI9NzY4LEEuZ3JhdmVjb21iPTc2OCxBLmdyYXZlZGV2YT0yMzg3LEEuZ3JhdmVsb3dtb2Q9NzE4LEEuZ3JhdmVtb25vc3BhY2U9NjUzNDQsQS5ncmF2ZXRvbmVjbWI9ODMyLEEuZ3JlYXRlcj02MixBLmdyZWF0ZXJlcXVhbD04ODA1LEEuZ3JlYXRlcmVxdWFsb3JsZXNzPTg5MjMsQS5ncmVhdGVybW9ub3NwYWNlPTY1MzEwLEEuZ3JlYXRlcm9yZXF1aXZhbGVudD04ODE5LEEuZ3JlYXRlcm9ybGVzcz04ODIzLEEuZ3JlYXRlcm92ZXJlcXVhbD04ODA3LEEuZ3JlYXRlcnNtYWxsPTY1MTI1LEEuZ3NjcmlwdD02MDksQS5nc3Ryb2tlPTQ4NSxBLmd1aGlyYWdhbmE9MTIzNjgsQS5ndWlsbGVtb3RsZWZ0PTE3MSxBLmd1aWxsZW1vdHJpZ2h0PTE4NyxBLmd1aWxzaW5nbGxlZnQ9ODI0OSxBLmd1aWxzaW5nbHJpZ2h0PTgyNTAsQS5ndWthdGFrYW5hPTEyNDY0LEEuZ3VyYW11c3F1YXJlPTEzMDgwLEEuZ3lzcXVhcmU9MTMyNTcsQS5oPTEwNCxBLmhhYWJraGFzaWFuY3lyaWxsaWM9MTE5MyxBLmhhYWx0b25lYXJhYmljPTE3MjksQS5oYWJlbmdhbGk9MjQ4OSxBLmhhZGVzY2VuZGVyY3lyaWxsaWM9MTIwMyxBLmhhZGV2YT0yMzYxLEEuaGFndWphcmF0aT0yNzQ1LEEuaGFndXJtdWtoaT0yNjE3LEEuaGFoYXJhYmljPTE1ODEsQS5oYWhmaW5hbGFyYWJpYz02NTE4NixBLmhhaGluaXRpYWxhcmFiaWM9NjUxODcsQS5oYWhpcmFnYW5hPTEyMzk5LEEuaGFobWVkaWFsYXJhYmljPTY1MTg4LEEuaGFpdHVzcXVhcmU9MTMwOTgsQS5oYWthdGFrYW5hPTEyNDk1LEEuaGFrYXRha2FuYWhhbGZ3aWR0aD02NTQxOCxBLmhhbGFudGd1cm11a2hpPTI2MzcsQS5oYW16YWFyYWJpYz0xNTY5LEEuaGFtemFsb3dhcmFiaWM9MTU2OSxBLmhhbmd1bGZpbGxlcj0xMjY0NCxBLmhhcmRzaWduY3lyaWxsaWM9MTA5OCxBLmhhcnBvb25sZWZ0YmFyYnVwPTg2MzYsQS5oYXJwb29ucmlnaHRiYXJidXA9ODY0MCxBLmhhc3F1YXJlPTEzMjU4LEEuaGF0YWZwYXRhaD0xNDU4LEEuaGF0YWZwYXRhaDE2PTE0NTgsQS5oYXRhZnBhdGFoMjM9MTQ1OCxBLmhhdGFmcGF0YWgyZj0xNDU4LEEuaGF0YWZwYXRhaGhlYnJldz0xNDU4LEEuaGF0YWZwYXRhaG5hcnJvd2hlYnJldz0xNDU4LEEuaGF0YWZwYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ1OCxBLmhhdGFmcGF0YWh3aWRlaGVicmV3PTE0NTgsQS5oYXRhZnFhbWF0cz0xNDU5LEEuaGF0YWZxYW1hdHMxYj0xNDU5LEEuaGF0YWZxYW1hdHMyOD0xNDU5LEEuaGF0YWZxYW1hdHMzND0xNDU5LEEuaGF0YWZxYW1hdHNoZWJyZXc9MTQ1OSxBLmhhdGFmcWFtYXRzbmFycm93aGVicmV3PTE0NTksQS5oYXRhZnFhbWF0c3F1YXJ0ZXJoZWJyZXc9MTQ1OSxBLmhhdGFmcWFtYXRzd2lkZWhlYnJldz0xNDU5LEEuaGF0YWZzZWdvbD0xNDU3LEEuaGF0YWZzZWdvbDE3PTE0NTcsQS5oYXRhZnNlZ29sMjQ9MTQ1NyxBLmhhdGFmc2Vnb2wzMD0xNDU3LEEuaGF0YWZzZWdvbGhlYnJldz0xNDU3LEEuaGF0YWZzZWdvbG5hcnJvd2hlYnJldz0xNDU3LEEuaGF0YWZzZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ1NyxBLmhhdGFmc2Vnb2x3aWRlaGVicmV3PTE0NTcsQS5oYmFyPTI5NSxBLmhib3BvbW9mbz0xMjU1OSxBLmhicmV2ZWJlbG93PTc3MjMsQS5oY2VkaWxsYT03NzIxLEEuaGNpcmNsZT05NDMxLEEuaGNpcmN1bWZsZXg9MjkzLEEuaGRpZXJlc2lzPTc3MTksQS5oZG90YWNjZW50PTc3MTUsQS5oZG90YmVsb3c9NzcxNyxBLmhlPTE0OTIsQS5oZWFydD05ODI5LEEuaGVhcnRzdWl0YmxhY2s9OTgyOSxBLmhlYXJ0c3VpdHdoaXRlPTk4MjUsQS5oZWRhZ2VzaD02NDMwOCxBLmhlZGFnZXNoaGVicmV3PTY0MzA4LEEuaGVoYWx0b25lYXJhYmljPTE3MjksQS5oZWhhcmFiaWM9MTYwNyxBLmhlaGVicmV3PTE0OTIsQS5oZWhmaW5hbGFsdG9uZWFyYWJpYz02NDQyMyxBLmhlaGZpbmFsYWx0dHdvYXJhYmljPTY1MjU4LEEuaGVoZmluYWxhcmFiaWM9NjUyNTgsQS5oZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjQ0MjEsQS5oZWhoYW16YWFib3ZlaXNvbGF0ZWRhcmFiaWM9NjQ0MjAsQS5oZWhpbml0aWFsYWx0b25lYXJhYmljPTY0NDI0LEEuaGVoaW5pdGlhbGFyYWJpYz02NTI1OSxBLmhlaGlyYWdhbmE9MTI0MDgsQS5oZWhtZWRpYWxhbHRvbmVhcmFiaWM9NjQ0MjUsQS5oZWhtZWRpYWxhcmFiaWM9NjUyNjAsQS5oZWlzZWllcmFzcXVhcmU9MTMxNzksQS5oZWthdGFrYW5hPTEyNTA0LEEuaGVrYXRha2FuYWhhbGZ3aWR0aD02NTQyMSxBLmhla3V0YWFydXNxdWFyZT0xMzExMCxBLmhlbmdob29rPTYxNSxBLmhlcnV0dXNxdWFyZT0xMzExMyxBLmhldD0xNDk1LEEuaGV0aGVicmV3PTE0OTUsQS5oaG9vaz02MTQsQS5oaG9va3N1cGVyaW9yPTY4OSxBLmhpZXVoYWNpcmNsZWtvcmVhbj0xMjkyMyxBLmhpZXVoYXBhcmVua29yZWFuPTEyODI3LEEuaGlldWhjaXJjbGVrb3JlYW49MTI5MDksQS5oaWV1aGtvcmVhbj0xMjYyMixBLmhpZXVocGFyZW5rb3JlYW49MTI4MTMsQS5oaWhpcmFnYW5hPTEyNDAyLEEuaGlrYXRha2FuYT0xMjQ5OCxBLmhpa2F0YWthbmFoYWxmd2lkdGg9NjU0MTksQS5oaXJpcT0xNDYwLEEuaGlyaXExND0xNDYwLEEuaGlyaXEyMT0xNDYwLEEuaGlyaXEyZD0xNDYwLEEuaGlyaXFoZWJyZXc9MTQ2MCxBLmhpcmlxbmFycm93aGVicmV3PTE0NjAsQS5oaXJpcXF1YXJ0ZXJoZWJyZXc9MTQ2MCxBLmhpcmlxd2lkZWhlYnJldz0xNDYwLEEuaGxpbmViZWxvdz03ODMwLEEuaG1vbm9zcGFjZT02NTM1MixBLmhvYXJtZW5pYW49MTM5MixBLmhvaGlwdGhhaT0zNjI3LEEuaG9oaXJhZ2FuYT0xMjQxMSxBLmhva2F0YWthbmE9MTI1MDcsQS5ob2thdGFrYW5haGFsZndpZHRoPTY1NDIyLEEuaG9sYW09MTQ2NSxBLmhvbGFtMTk9MTQ2NSxBLmhvbGFtMjY9MTQ2NSxBLmhvbGFtMzI9MTQ2NSxBLmhvbGFtaGVicmV3PTE0NjUsQS5ob2xhbW5hcnJvd2hlYnJldz0xNDY1LEEuaG9sYW1xdWFydGVyaGVicmV3PTE0NjUsQS5ob2xhbXdpZGVoZWJyZXc9MTQ2NSxBLmhvbm9raHVrdGhhaT0zNjMwLEEuaG9va2Fib3ZlY29tYj03NzcsQS5ob29rY21iPTc3NyxBLmhvb2twYWxhdGFsaXplZGJlbG93Y21iPTgwMSxBLmhvb2tyZXRyb2ZsZXhiZWxvd2NtYj04MDIsQS5ob29uc3F1YXJlPTEzMTIyLEEuaG9yaWNvcHRpYz0xMDAxLEEuaG9yaXpvbnRhbGJhcj04MjEzLEEuaG9ybmNtYj03OTUsQS5ob3RzcHJpbmdzPTk4MzIsQS5ob3VzZT04OTYyLEEuaHBhcmVuPTkzNzksQS5oc3VwZXJpb3I9Njg4LEEuaHR1cm5lZD02MTMsQS5odWhpcmFnYW5hPTEyNDA1LEEuaHVpaXRvc3F1YXJlPTEzMTA3LEEuaHVrYXRha2FuYT0xMjUwMSxBLmh1a2F0YWthbmFoYWxmd2lkdGg9NjU0MjAsQS5odW5nYXJ1bWxhdXQ9NzMzLEEuaHVuZ2FydW1sYXV0Y21iPTc3OSxBLmh2PTQwNSxBLmh5cGhlbj00NSxBLmh5cGhlbmluZmVyaW9yPTYzMjA1LEEuaHlwaGVubW9ub3NwYWNlPTY1MjkzLEEuaHlwaGVuc21hbGw9NjUxMjMsQS5oeXBoZW5zdXBlcmlvcj02MzIwNixBLmh5cGhlbnR3bz04MjA4LEEuaT0xMDUsQS5pYWN1dGU9MjM3LEEuaWFjeXJpbGxpYz0xMTAzLEEuaWJlbmdhbGk9MjQzOSxBLmlib3BvbW9mbz0xMjU4MyxBLmlicmV2ZT0zMDEsQS5pY2Fyb249NDY0LEEuaWNpcmNsZT05NDMyLEEuaWNpcmN1bWZsZXg9MjM4LEEuaWN5cmlsbGljPTExMTAsQS5pZGJsZ3JhdmU9NTIxLEEuaWRlb2dyYXBoZWFydGhjaXJjbGU9MTI5NDMsQS5pZGVvZ3JhcGhmaXJlY2lyY2xlPTEyOTM5LEEuaWRlb2dyYXBoaWNhbGxpYW5jZXBhcmVuPTEyODYzLEEuaWRlb2dyYXBoaWNjYWxscGFyZW49MTI4NTgsQS5pZGVvZ3JhcGhpY2NlbnRyZWNpcmNsZT0xMjk2NSxBLmlkZW9ncmFwaGljY2xvc2U9MTIyOTQsQS5pZGVvZ3JhcGhpY2NvbW1hPTEyMjg5LEEuaWRlb2dyYXBoaWNjb21tYWxlZnQ9NjUzODAsQS5pZGVvZ3JhcGhpY2NvbmdyYXR1bGF0aW9ucGFyZW49MTI4NTUsQS5pZGVvZ3JhcGhpY2NvcnJlY3RjaXJjbGU9MTI5NjMsQS5pZGVvZ3JhcGhpY2VhcnRocGFyZW49MTI4NDcsQS5pZGVvZ3JhcGhpY2VudGVycHJpc2VwYXJlbj0xMjg2MSxBLmlkZW9ncmFwaGljZXhjZWxsZW50Y2lyY2xlPTEyOTU3LEEuaWRlb2dyYXBoaWNmZXN0aXZhbHBhcmVuPTEyODY0LEEuaWRlb2dyYXBoaWNmaW5hbmNpYWxjaXJjbGU9MTI5NTAsQS5pZGVvZ3JhcGhpY2ZpbmFuY2lhbHBhcmVuPTEyODU0LEEuaWRlb2dyYXBoaWNmaXJlcGFyZW49MTI4NDMsQS5pZGVvZ3JhcGhpY2hhdmVwYXJlbj0xMjg1MCxBLmlkZW9ncmFwaGljaGlnaGNpcmNsZT0xMjk2NCxBLmlkZW9ncmFwaGljaXRlcmF0aW9ubWFyaz0xMjI5MyxBLmlkZW9ncmFwaGljbGFib3JjaXJjbGU9MTI5NTIsQS5pZGVvZ3JhcGhpY2xhYm9ycGFyZW49MTI4NTYsQS5pZGVvZ3JhcGhpY2xlZnRjaXJjbGU9MTI5NjcsQS5pZGVvZ3JhcGhpY2xvd2NpcmNsZT0xMjk2NixBLmlkZW9ncmFwaGljbWVkaWNpbmVjaXJjbGU9MTI5NjksQS5pZGVvZ3JhcGhpY21ldGFscGFyZW49MTI4NDYsQS5pZGVvZ3JhcGhpY21vb25wYXJlbj0xMjg0MixBLmlkZW9ncmFwaGljbmFtZXBhcmVuPTEyODUyLEEuaWRlb2dyYXBoaWNwZXJpb2Q9MTIyOTAsQS5pZGVvZ3JhcGhpY3ByaW50Y2lyY2xlPTEyOTU4LEEuaWRlb2dyYXBoaWNyZWFjaHBhcmVuPTEyODY3LEEuaWRlb2dyYXBoaWNyZXByZXNlbnRwYXJlbj0xMjg1NyxBLmlkZW9ncmFwaGljcmVzb3VyY2VwYXJlbj0xMjg2MixBLmlkZW9ncmFwaGljcmlnaHRjaXJjbGU9MTI5NjgsQS5pZGVvZ3JhcGhpY3NlY3JldGNpcmNsZT0xMjk1MyxBLmlkZW9ncmFwaGljc2VsZnBhcmVuPTEyODY2LEEuaWRlb2dyYXBoaWNzb2NpZXR5cGFyZW49MTI4NTEsQS5pZGVvZ3JhcGhpY3NwYWNlPTEyMjg4LEEuaWRlb2dyYXBoaWNzcGVjaWFscGFyZW49MTI4NTMsQS5pZGVvZ3JhcGhpY3N0b2NrcGFyZW49MTI4NDksQS5pZGVvZ3JhcGhpY3N0dWR5cGFyZW49MTI4NTksQS5pZGVvZ3JhcGhpY3N1bnBhcmVuPTEyODQ4LEEuaWRlb2dyYXBoaWNzdXBlcnZpc2VwYXJlbj0xMjg2MCxBLmlkZW9ncmFwaGljd2F0ZXJwYXJlbj0xMjg0NCxBLmlkZW9ncmFwaGljd29vZHBhcmVuPTEyODQ1LEEuaWRlb2dyYXBoaWN6ZXJvPTEyMjk1LEEuaWRlb2dyYXBobWV0YWxjaXJjbGU9MTI5NDIsQS5pZGVvZ3JhcGhtb29uY2lyY2xlPTEyOTM4LEEuaWRlb2dyYXBobmFtZWNpcmNsZT0xMjk0OCxBLmlkZW9ncmFwaHN1bmNpcmNsZT0xMjk0NCxBLmlkZW9ncmFwaHdhdGVyY2lyY2xlPTEyOTQwLEEuaWRlb2dyYXBod29vZGNpcmNsZT0xMjk0MSxBLmlkZXZhPTIzMTEsQS5pZGllcmVzaXM9MjM5LEEuaWRpZXJlc2lzYWN1dGU9NzcyNyxBLmlkaWVyZXNpc2N5cmlsbGljPTEyNTMsQS5pZG90YmVsb3c9Nzg4MyxBLmllYnJldmVjeXJpbGxpYz0xMjM5LEEuaWVjeXJpbGxpYz0xMDc3LEEuaWV1bmdhY2lyY2xla29yZWFuPTEyOTE3LEEuaWV1bmdhcGFyZW5rb3JlYW49MTI4MjEsQS5pZXVuZ2NpcmNsZWtvcmVhbj0xMjkwMyxBLmlldW5na29yZWFuPTEyNjE1LEEuaWV1bmdwYXJlbmtvcmVhbj0xMjgwNyxBLmlncmF2ZT0yMzYsQS5pZ3VqYXJhdGk9MjY5NSxBLmlndXJtdWtoaT0yNTY3LEEuaWhpcmFnYW5hPTEyMzU2LEEuaWhvb2thYm92ZT03ODgxLEEuaWliZW5nYWxpPTI0NDAsQS5paWN5cmlsbGljPTEwODAsQS5paWRldmE9MjMxMixBLmlpZ3VqYXJhdGk9MjY5NixBLmlpZ3VybXVraGk9MjU2OCxBLmlpbWF0cmFndXJtdWtoaT0yNjI0LEEuaWludmVydGVkYnJldmU9NTIzLEEuaWlzaG9ydGN5cmlsbGljPTEwODEsQS5paXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NixBLmlpdm93ZWxzaWduZGV2YT0yMzY4LEEuaWl2b3dlbHNpZ25ndWphcmF0aT0yNzUyLEEuaWo9MzA3LEEuaWthdGFrYW5hPTEyNDUyLEEuaWthdGFrYW5haGFsZndpZHRoPTY1Mzk0LEEuaWtvcmVhbj0xMjY0MyxBLmlsZGU9NzMyLEEuaWx1eWhlYnJldz0xNDUyLEEuaW1hY3Jvbj0yOTksQS5pbWFjcm9uY3lyaWxsaWM9MTI1MSxBLmltYWdlb3JhcHByb3hpbWF0ZWx5ZXF1YWw9ODc4NyxBLmltYXRyYWd1cm11a2hpPTI2MjMsQS5pbW9ub3NwYWNlPTY1MzUzLEEuaW5jcmVtZW50PTg3MTAsQS5pbmZpbml0eT04NzM0LEEuaW5pYXJtZW5pYW49MTM4NyxBLmludGVncmFsPTg3NDcsQS5pbnRlZ3JhbGJvdHRvbT04OTkzLEEuaW50ZWdyYWxidD04OTkzLEEuaW50ZWdyYWxleD02MzczMyxBLmludGVncmFsdG9wPTg5OTIsQS5pbnRlZ3JhbHRwPTg5OTIsQS5pbnRlcnNlY3Rpb249ODc0NSxBLmludGlzcXVhcmU9MTMwNjEsQS5pbnZidWxsZXQ9OTY4OCxBLmludmNpcmNsZT05Njg5LEEuaW52c21pbGVmYWNlPTk3ODcsQS5pb2N5cmlsbGljPTExMDUsQS5pb2dvbmVrPTMwMyxBLmlvdGE9OTUzLEEuaW90YWRpZXJlc2lzPTk3MCxBLmlvdGFkaWVyZXNpc3Rvbm9zPTkxMixBLmlvdGFsYXRpbj02MTcsQS5pb3RhdG9ub3M9OTQzLEEuaXBhcmVuPTkzODAsQS5pcmlndXJtdWtoaT0yNjc0LEEuaXNtYWxsaGlyYWdhbmE9MTIzNTUsQS5pc21hbGxrYXRha2FuYT0xMjQ1MSxBLmlzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg0LEEuaXNzaGFyYmVuZ2FsaT0yNTU0LEEuaXN0cm9rZT02MTYsQS5pc3VwZXJpb3I9NjMyMTMsQS5pdGVyYXRpb25oaXJhZ2FuYT0xMjQ0NSxBLml0ZXJhdGlvbmthdGFrYW5hPTEyNTQxLEEuaXRpbGRlPTI5NyxBLml0aWxkZWJlbG93PTc3MjUsQS5pdWJvcG9tb2ZvPTEyNTg1LEEuaXVjeXJpbGxpYz0xMTAyLEEuaXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NSxBLml2b3dlbHNpZ25kZXZhPTIzNjcsQS5pdm93ZWxzaWduZ3VqYXJhdGk9Mjc1MSxBLml6aGl0c2FjeXJpbGxpYz0xMTQxLEEuaXpoaXRzYWRibGdyYXZlY3lyaWxsaWM9MTE0MyxBLmo9MTA2LEEuamFhcm1lbmlhbj0xMzkzLEEuamFiZW5nYWxpPTI0NjAsQS5qYWRldmE9MjMzMixBLmphZ3VqYXJhdGk9MjcxNixBLmphZ3VybXVraGk9MjU4OCxBLmpib3BvbW9mbz0xMjU2MCxBLmpjYXJvbj00OTYsQS5qY2lyY2xlPTk0MzMsQS5qY2lyY3VtZmxleD0zMDksQS5qY3Jvc3NlZHRhaWw9NjY5LEEuamRvdGxlc3NzdHJva2U9NjA3LEEuamVjeXJpbGxpYz0xMTEyLEEuamVlbWFyYWJpYz0xNTgwLEEuamVlbWZpbmFsYXJhYmljPTY1MTgyLEEuamVlbWluaXRpYWxhcmFiaWM9NjUxODMsQS5qZWVtbWVkaWFsYXJhYmljPTY1MTg0LEEuamVoYXJhYmljPTE2ODgsQS5qZWhmaW5hbGFyYWJpYz02NDM5NSxBLmpoYWJlbmdhbGk9MjQ2MSxBLmpoYWRldmE9MjMzMyxBLmpoYWd1amFyYXRpPTI3MTcsQS5qaGFndXJtdWtoaT0yNTg5LEEuamhlaGFybWVuaWFuPTE0MDMsQS5qaXM9MTIyOTIsQS5qbW9ub3NwYWNlPTY1MzU0LEEuanBhcmVuPTkzODEsQS5qc3VwZXJpb3I9NjkwLEEuaz0xMDcsQS5rYWJhc2hraXJjeXJpbGxpYz0xMTg1LEEua2FiZW5nYWxpPTI0NTMsQS5rYWN1dGU9NzcyOSxBLmthY3lyaWxsaWM9MTA4MixBLmthZGVzY2VuZGVyY3lyaWxsaWM9MTE3OSxBLmthZGV2YT0yMzI1LEEua2FmPTE0OTksQS5rYWZhcmFiaWM9MTYwMyxBLmthZmRhZ2VzaD02NDMxNSxBLmthZmRhZ2VzaGhlYnJldz02NDMxNSxBLmthZmZpbmFsYXJhYmljPTY1MjQyLEEua2FmaGVicmV3PTE0OTksQS5rYWZpbml0aWFsYXJhYmljPTY1MjQzLEEua2FmbWVkaWFsYXJhYmljPTY1MjQ0LEEua2FmcmFmZWhlYnJldz02NDMzMyxBLmthZ3VqYXJhdGk9MjcwOSxBLmthZ3VybXVraGk9MjU4MSxBLmthaGlyYWdhbmE9MTIzNjMsQS5rYWhvb2tjeXJpbGxpYz0xMjIwLEEua2FrYXRha2FuYT0xMjQ1OSxBLmtha2F0YWthbmFoYWxmd2lkdGg9NjUzOTgsQS5rYXBwYT05NTQsQS5rYXBwYXN5bWJvbGdyZWVrPTEwMDgsQS5rYXB5ZW91bm1pZXVta29yZWFuPTEyNjU3LEEua2FweWVvdW5waGlldXBoa29yZWFuPTEyNjc2LEEua2FweWVvdW5waWV1cGtvcmVhbj0xMjY2NCxBLmthcHllb3Vuc3NhbmdwaWV1cGtvcmVhbj0xMjY2NSxBLmthcm9yaWlzcXVhcmU9MTMwNjksQS5rYXNoaWRhYXV0b2FyYWJpYz0xNjAwLEEua2FzaGlkYWF1dG9ub3NpZGViZWFyaW5nYXJhYmljPTE2MDAsQS5rYXNtYWxsa2F0YWthbmE9MTI1MzMsQS5rYXNxdWFyZT0xMzE4OCxBLmthc3JhYXJhYmljPTE2MTYsQS5rYXNyYXRhbmFyYWJpYz0xNjEzLEEua2FzdHJva2VjeXJpbGxpYz0xMTgzLEEua2F0YWhpcmFwcm9sb25nbWFya2hhbGZ3aWR0aD02NTM5MixBLmthdmVydGljYWxzdHJva2VjeXJpbGxpYz0xMTgxLEEua2JvcG9tb2ZvPTEyNTU4LEEua2NhbHNxdWFyZT0xMzE5MyxBLmtjYXJvbj00ODksQS5rY2VkaWxsYT0zMTEsQS5rY2lyY2xlPTk0MzQsQS5rY29tbWFhY2NlbnQ9MzExLEEua2RvdGJlbG93PTc3MzEsQS5rZWhhcm1lbmlhbj0xNDEyLEEua2VoaXJhZ2FuYT0xMjM2OSxBLmtla2F0YWthbmE9MTI0NjUsQS5rZWthdGFrYW5haGFsZndpZHRoPTY1NDAxLEEua2VuYXJtZW5pYW49MTM5MSxBLmtlc21hbGxrYXRha2FuYT0xMjUzNCxBLmtncmVlbmxhbmRpYz0zMTIsQS5raGFiZW5nYWxpPTI0NTQsQS5raGFjeXJpbGxpYz0xMDkzLEEua2hhZGV2YT0yMzI2LEEua2hhZ3VqYXJhdGk9MjcxMCxBLmtoYWd1cm11a2hpPTI1ODIsQS5raGFoYXJhYmljPTE1ODIsQS5raGFoZmluYWxhcmFiaWM9NjUxOTAsQS5raGFoaW5pdGlhbGFyYWJpYz02NTE5MSxBLmtoYWhtZWRpYWxhcmFiaWM9NjUxOTIsQS5raGVpY29wdGljPTk5OSxBLmtoaGFkZXZhPTIzOTMsQS5raGhhZ3VybXVraGk9MjY0OSxBLmtoaWV1a2hhY2lyY2xla29yZWFuPTEyOTIwLEEua2hpZXVraGFwYXJlbmtvcmVhbj0xMjgyNCxBLmtoaWV1a2hjaXJjbGVrb3JlYW49MTI5MDYsQS5raGlldWtoa29yZWFuPTEyNjE5LEEua2hpZXVraHBhcmVua29yZWFuPTEyODEwLEEua2hva2hhaXRoYWk9MzU4NixBLmtob2tob250aGFpPTM1ODksQS5raG9raHVhdHRoYWk9MzU4NyxBLmtob2tod2FpdGhhaT0zNTg4LEEua2hvbXV0dGhhaT0zNjc1LEEua2hvb2s9NDA5LEEua2hvcmFraGFuZ3RoYWk9MzU5MCxBLmtoenNxdWFyZT0xMzIwMSxBLmtpaGlyYWdhbmE9MTIzNjUsQS5raWthdGFrYW5hPTEyNDYxLEEua2lrYXRha2FuYWhhbGZ3aWR0aD02NTM5OSxBLmtpcm9ndXJhbXVzcXVhcmU9MTMwNzcsQS5raXJvbWVldG9ydXNxdWFyZT0xMzA3OCxBLmtpcm9zcXVhcmU9MTMwNzYsQS5raXllb2thY2lyY2xla29yZWFuPTEyOTEwLEEua2l5ZW9rYXBhcmVua29yZWFuPTEyODE0LEEua2l5ZW9rY2lyY2xla29yZWFuPTEyODk2LEEua2l5ZW9ra29yZWFuPTEyNTkzLEEua2l5ZW9rcGFyZW5rb3JlYW49MTI4MDAsQS5raXllb2tzaW9za29yZWFuPTEyNTk1O0Eua2plY3lyaWxsaWM9MTExNixBLmtsaW5lYmVsb3c9NzczMyxBLmtsc3F1YXJlPTEzMjA4LEEua21jdWJlZHNxdWFyZT0xMzIyMixBLmttb25vc3BhY2U9NjUzNTUsQS5rbXNxdWFyZWRzcXVhcmU9MTMyMTgsQS5rb2hpcmFnYW5hPTEyMzcxLEEua29obXNxdWFyZT0xMzI0OCxBLmtva2FpdGhhaT0zNTg1LEEua29rYXRha2FuYT0xMjQ2NyxBLmtva2F0YWthbmFoYWxmd2lkdGg9NjU0MDIsQS5rb29wb3NxdWFyZT0xMzA4NixBLmtvcHBhY3lyaWxsaWM9MTE1MyxBLmtvcmVhbnN0YW5kYXJkc3ltYm9sPTEyOTI3LEEua29yb25pc2NtYj04MzUsQS5rcGFyZW49OTM4MixBLmtwYXNxdWFyZT0xMzIyNixBLmtzaWN5cmlsbGljPTExMzUsQS5rdHNxdWFyZT0xMzI2MyxBLmt0dXJuZWQ9NjcwLEEua3VoaXJhZ2FuYT0xMjM2NyxBLmt1a2F0YWthbmE9MTI0NjMsQS5rdWthdGFrYW5haGFsZndpZHRoPTY1NDAwLEEua3ZzcXVhcmU9MTMyNDAsQS5rd3NxdWFyZT0xMzI0NixBLmw9MTA4LEEubGFiZW5nYWxpPTI0ODIsQS5sYWN1dGU9MzE0LEEubGFkZXZhPTIzNTQsQS5sYWd1amFyYXRpPTI3MzgsQS5sYWd1cm11a2hpPTI2MTAsQS5sYWtraGFuZ3lhb3RoYWk9MzY1MyxBLmxhbWFsZWZmaW5hbGFyYWJpYz02NTI3NixBLmxhbWFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUyNzIsQS5sYW1hbGVmaGFtemFhYm92ZWlzb2xhdGVkYXJhYmljPTY1MjcxLEEubGFtYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTI3NCxBLmxhbWFsZWZoYW16YWJlbG93aXNvbGF0ZWRhcmFiaWM9NjUyNzMsQS5sYW1hbGVmaXNvbGF0ZWRhcmFiaWM9NjUyNzUsQS5sYW1hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MjcwLEEubGFtYWxlZm1hZGRhYWJvdmVpc29sYXRlZGFyYWJpYz02NTI2OSxBLmxhbWFyYWJpYz0xNjA0LEEubGFtYmRhPTk1NSxBLmxhbWJkYXN0cm9rZT00MTEsQS5sYW1lZD0xNTAwLEEubGFtZWRkYWdlc2g9NjQzMTYsQS5sYW1lZGRhZ2VzaGhlYnJldz02NDMxNixBLmxhbWVkaGVicmV3PTE1MDAsQS5sYW1maW5hbGFyYWJpYz02NTI0NixBLmxhbWhhaGluaXRpYWxhcmFiaWM9NjQ3MTQsQS5sYW1pbml0aWFsYXJhYmljPTY1MjQ3LEEubGFtamVlbWluaXRpYWxhcmFiaWM9NjQ3MTMsQS5sYW1raGFoaW5pdGlhbGFyYWJpYz02NDcxNSxBLmxhbWxhbWhlaGlzb2xhdGVkYXJhYmljPTY1MDEwLEEubGFtbWVkaWFsYXJhYmljPTY1MjQ4LEEubGFtbWVlbWhhaGluaXRpYWxhcmFiaWM9NjQ5MDQsQS5sYW1tZWVtaW5pdGlhbGFyYWJpYz02NDcxNixBLmxhcmdlY2lyY2xlPTk3MTEsQS5sYmFyPTQxMCxBLmxiZWx0PTYyMCxBLmxib3BvbW9mbz0xMjU1NixBLmxjYXJvbj0zMTgsQS5sY2VkaWxsYT0zMTYsQS5sY2lyY2xlPTk0MzUsQS5sY2lyY3VtZmxleGJlbG93PTc3NDEsQS5sY29tbWFhY2NlbnQ9MzE2LEEubGRvdD0zMjAsQS5sZG90YWNjZW50PTMyMCxBLmxkb3RiZWxvdz03NzM1LEEubGRvdGJlbG93bWFjcm9uPTc3MzcsQS5sZWZ0YW5nbGVhYm92ZWNtYj03OTQsQS5sZWZ0dGFja2JlbG93Y21iPTc5MixBLmxlc3M9NjAsQS5sZXNzZXF1YWw9ODgwNCxBLmxlc3NlcXVhbG9yZ3JlYXRlcj04OTIyLEEubGVzc21vbm9zcGFjZT02NTMwOCxBLmxlc3NvcmVxdWl2YWxlbnQ9ODgxOCxBLmxlc3NvcmdyZWF0ZXI9ODgyMixBLmxlc3NvdmVyZXF1YWw9ODgwNixBLmxlc3NzbWFsbD02NTEyNCxBLmxlemg9NjIyLEEubGZibG9jaz05NjEyLEEubGhvb2tyZXRyb2ZsZXg9NjIxLEEubGlyYT04MzU2LEEubGl3bmFybWVuaWFuPTEzODgsQS5saj00NTcsQS5samVjeXJpbGxpYz0xMTEzLEEubGw9NjMxNjgsQS5sbGFkZXZhPTIzNTUsQS5sbGFndWphcmF0aT0yNzM5LEEubGxpbmViZWxvdz03NzM5LEEubGxsYWRldmE9MjM1NixBLmxsdm9jYWxpY2JlbmdhbGk9MjUyOSxBLmxsdm9jYWxpY2RldmE9MjQwMSxBLmxsdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMSxBLmxsdm9jYWxpY3Zvd2Vsc2lnbmRldmE9MjQwMyxBLmxtaWRkbGV0aWxkZT02MTksQS5sbW9ub3NwYWNlPTY1MzU2LEEubG1zcXVhcmU9MTMyNjQsQS5sb2NodWxhdGhhaT0zNjI4LEEubG9naWNhbGFuZD04NzQzLEEubG9naWNhbG5vdD0xNzIsQS5sb2dpY2Fsbm90cmV2ZXJzZWQ9ODk3NixBLmxvZ2ljYWxvcj04NzQ0LEEubG9saW5ndGhhaT0zNjIxLEEubG9uZ3M9MzgzLEEubG93bGluZWNlbnRlcmxpbmU9NjUxMDIsQS5sb3dsaW5lY21iPTgxOCxBLmxvd2xpbmVkYXNoZWQ9NjUxMDEsQS5sb3plbmdlPTk2NzQsQS5scGFyZW49OTM4MyxBLmxzbGFzaD0zMjIsQS5sc3F1YXJlPTg0NjcsQS5sc3VwZXJpb3I9NjMyMTQsQS5sdHNoYWRlPTk2MTcsQS5sdXRoYWk9MzYyMixBLmx2b2NhbGljYmVuZ2FsaT0yNDQ0LEEubHZvY2FsaWNkZXZhPTIzMTYsQS5sdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMCxBLmx2b2NhbGljdm93ZWxzaWduZGV2YT0yNDAyLEEubHhzcXVhcmU9MTMyNjcsQS5tPTEwOSxBLm1hYmVuZ2FsaT0yNDc4LEEubWFjcm9uPTE3NSxBLm1hY3JvbmJlbG93Y21iPTgxNyxBLm1hY3JvbmNtYj03NzIsQS5tYWNyb25sb3dtb2Q9NzE3LEEubWFjcm9ubW9ub3NwYWNlPTY1NTA3LEEubWFjdXRlPTc3NDMsQS5tYWRldmE9MjM1MCxBLm1hZ3VqYXJhdGk9MjczNCxBLm1hZ3VybXVraGk9MjYwNixBLm1haGFwYWtoaGVicmV3PTE0NDQsQS5tYWhhcGFraGxlZnRoZWJyZXc9MTQ0NCxBLm1haGlyYWdhbmE9MTI0MTQsQS5tYWljaGF0dGF3YWxvd2xlZnR0aGFpPTYzNjM3LEEubWFpY2hhdHRhd2Fsb3dyaWdodHRoYWk9NjM2MzYsQS5tYWljaGF0dGF3YXRoYWk9MzY1OSxBLm1haWNoYXR0YXdhdXBwZXJsZWZ0dGhhaT02MzYzNSxBLm1haWVrbG93bGVmdHRoYWk9NjM2MjgsQS5tYWlla2xvd3JpZ2h0dGhhaT02MzYyNyxBLm1haWVrdGhhaT0zNjU2LEEubWFpZWt1cHBlcmxlZnR0aGFpPTYzNjI2LEEubWFpaGFuYWthdGxlZnR0aGFpPTYzNjIwLEEubWFpaGFuYWthdHRoYWk9MzYzMyxBLm1haXRhaWtodWxlZnR0aGFpPTYzNjI1LEEubWFpdGFpa2h1dGhhaT0zNjU1LEEubWFpdGhvbG93bGVmdHRoYWk9NjM2MzEsQS5tYWl0aG9sb3dyaWdodHRoYWk9NjM2MzAsQS5tYWl0aG90aGFpPTM2NTcsQS5tYWl0aG91cHBlcmxlZnR0aGFpPTYzNjI5LEEubWFpdHJpbG93bGVmdHRoYWk9NjM2MzQsQS5tYWl0cmlsb3dyaWdodHRoYWk9NjM2MzMsQS5tYWl0cml0aGFpPTM2NTgsQS5tYWl0cml1cHBlcmxlZnR0aGFpPTYzNjMyLEEubWFpeWFtb2t0aGFpPTM2NTQsQS5tYWthdGFrYW5hPTEyNTEwLEEubWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyMyxBLm1hbGU9OTc5NCxBLm1hbnN5b25zcXVhcmU9MTMxMjcsQS5tYXFhZmhlYnJldz0xNDcwLEEubWFycz05Nzk0LEEubWFzb3JhY2lyY2xlaGVicmV3PTE0NTUsQS5tYXNxdWFyZT0xMzE4NyxBLm1ib3BvbW9mbz0xMjU1MSxBLm1ic3F1YXJlPTEzMjY4LEEubWNpcmNsZT05NDM2LEEubWN1YmVkc3F1YXJlPTEzMjIxLEEubWRvdGFjY2VudD03NzQ1LEEubWRvdGJlbG93PTc3NDcsQS5tZWVtYXJhYmljPTE2MDUsQS5tZWVtZmluYWxhcmFiaWM9NjUyNTAsQS5tZWVtaW5pdGlhbGFyYWJpYz02NTI1MSxBLm1lZW1tZWRpYWxhcmFiaWM9NjUyNTIsQS5tZWVtbWVlbWluaXRpYWxhcmFiaWM9NjQ3MjEsQS5tZWVtbWVlbWlzb2xhdGVkYXJhYmljPTY0NTg0LEEubWVldG9ydXNxdWFyZT0xMzEzMyxBLm1laGlyYWdhbmE9MTI0MTcsQS5tZWl6aWVyYXNxdWFyZT0xMzE4MixBLm1la2F0YWthbmE9MTI1MTMsQS5tZWthdGFrYW5haGFsZndpZHRoPTY1NDI2LEEubWVtPTE1MDIsQS5tZW1kYWdlc2g9NjQzMTgsQS5tZW1kYWdlc2hoZWJyZXc9NjQzMTgsQS5tZW1oZWJyZXc9MTUwMixBLm1lbmFybWVuaWFuPTEzOTYsQS5tZXJraGFoZWJyZXc9MTQ0NSxBLm1lcmtoYWtlZnVsYWhlYnJldz0xNDQ2LEEubWVya2hha2VmdWxhbGVmdGhlYnJldz0xNDQ2LEEubWVya2hhbGVmdGhlYnJldz0xNDQ1LEEubWhvb2s9NjI1LEEubWh6c3F1YXJlPTEzMjAyLEEubWlkZGxlZG90a2F0YWthbmFoYWxmd2lkdGg9NjUzODEsQS5taWRkb3Q9MTgzLEEubWlldW1hY2lyY2xla29yZWFuPTEyOTE0LEEubWlldW1hcGFyZW5rb3JlYW49MTI4MTgsQS5taWV1bWNpcmNsZWtvcmVhbj0xMjkwMCxBLm1pZXVta29yZWFuPTEyNjA5LEEubWlldW1wYW5zaW9za29yZWFuPTEyNjU2LEEubWlldW1wYXJlbmtvcmVhbj0xMjgwNCxBLm1pZXVtcGlldXBrb3JlYW49MTI2NTQsQS5taWV1bXNpb3Nrb3JlYW49MTI2NTUsQS5taWhpcmFnYW5hPTEyNDE1LEEubWlrYXRha2FuYT0xMjUxMSxBLm1pa2F0YWthbmFoYWxmd2lkdGg9NjU0MjQsQS5taW51cz04NzIyLEEubWludXNiZWxvd2NtYj04MDAsQS5taW51c2NpcmNsZT04ODU0LEEubWludXNtb2Q9NzI3LEEubWludXNwbHVzPTg3MjMsQS5taW51dGU9ODI0MixBLm1pcmliYWFydXNxdWFyZT0xMzEzMCxBLm1pcmlzcXVhcmU9MTMxMjksQS5tbG9uZ2xlZ3R1cm5lZD02MjQsQS5tbHNxdWFyZT0xMzIwNixBLm1tY3ViZWRzcXVhcmU9MTMyMTksQS5tbW9ub3NwYWNlPTY1MzU3LEEubW1zcXVhcmVkc3F1YXJlPTEzMjE1LEEubW9oaXJhZ2FuYT0xMjQxOCxBLm1vaG1zcXVhcmU9MTMyNDksQS5tb2thdGFrYW5hPTEyNTE0LEEubW9rYXRha2FuYWhhbGZ3aWR0aD02NTQyNyxBLm1vbHNxdWFyZT0xMzI3MCxBLm1vbWF0aGFpPTM2MTcsQS5tb3ZlcnNzcXVhcmU9MTMyMjMsQS5tb3ZlcnNzcXVhcmVkc3F1YXJlPTEzMjI0LEEubXBhcmVuPTkzODQsQS5tcGFzcXVhcmU9MTMyMjcsQS5tc3NxdWFyZT0xMzIzNSxBLm1zdXBlcmlvcj02MzIxNSxBLm10dXJuZWQ9NjIzLEEubXU9MTgxLEEubXUxPTE4MSxBLm11YXNxdWFyZT0xMzE4NixBLm11Y2hncmVhdGVyPTg4MTEsQS5tdWNobGVzcz04ODEwLEEubXVmc3F1YXJlPTEzMTk2LEEubXVncmVlaz05NTYsQS5tdWdzcXVhcmU9MTMxOTcsQS5tdWhpcmFnYW5hPTEyNDE2LEEubXVrYXRha2FuYT0xMjUxMixBLm11a2F0YWthbmFoYWxmd2lkdGg9NjU0MjUsQS5tdWxzcXVhcmU9MTMyMDUsQS5tdWx0aXBseT0yMTUsQS5tdW1zcXVhcmU9MTMyMTEsQS5tdW5haGhlYnJldz0xNDQzLEEubXVuYWhsZWZ0aGVicmV3PTE0NDMsQS5tdXNpY2Fsbm90ZT05ODM0LEEubXVzaWNhbG5vdGVkYmw9OTgzNSxBLm11c2ljZmxhdHNpZ249OTgzNyxBLm11c2ljc2hhcnBzaWduPTk4MzksQS5tdXNzcXVhcmU9MTMyMzQsQS5tdXZzcXVhcmU9MTMyMzgsQS5tdXdzcXVhcmU9MTMyNDQsQS5tdm1lZ2FzcXVhcmU9MTMyNDEsQS5tdnNxdWFyZT0xMzIzOSxBLm13bWVnYXNxdWFyZT0xMzI0NyxBLm13c3F1YXJlPTEzMjQ1LEEubj0xMTAsQS5uYWJlbmdhbGk9MjQ3MixBLm5hYmxhPTg3MTEsQS5uYWN1dGU9MzI0LEEubmFkZXZhPTIzNDQsQS5uYWd1amFyYXRpPTI3MjgsQS5uYWd1cm11a2hpPTI2MDAsQS5uYWhpcmFnYW5hPTEyMzk0LEEubmFrYXRha2FuYT0xMjQ5MCxBLm5ha2F0YWthbmFoYWxmd2lkdGg9NjU0MTMsQS5uYXBvc3Ryb3BoZT0zMjksQS5uYXNxdWFyZT0xMzE4NSxBLm5ib3BvbW9mbz0xMjU1NSxBLm5ic3BhY2U9MTYwLEEubmNhcm9uPTMyOCxBLm5jZWRpbGxhPTMyNixBLm5jaXJjbGU9OTQzNyxBLm5jaXJjdW1mbGV4YmVsb3c9Nzc1NSxBLm5jb21tYWFjY2VudD0zMjYsQS5uZG90YWNjZW50PTc3NDksQS5uZG90YmVsb3c9Nzc1MSxBLm5laGlyYWdhbmE9MTIzOTcsQS5uZWthdGFrYW5hPTEyNDkzLEEubmVrYXRha2FuYWhhbGZ3aWR0aD02NTQxNixBLm5ld3NoZXFlbHNpZ249ODM2MixBLm5mc3F1YXJlPTEzMTk1LEEubmdhYmVuZ2FsaT0yNDU3LEEubmdhZGV2YT0yMzI5LEEubmdhZ3VqYXJhdGk9MjcxMyxBLm5nYWd1cm11a2hpPTI1ODUsQS5uZ29uZ3V0aGFpPTM1OTEsQS5uaGlyYWdhbmE9MTI0MzUsQS5uaG9va2xlZnQ9NjI2LEEubmhvb2tyZXRyb2ZsZXg9NjI3LEEubmlldW5hY2lyY2xla29yZWFuPTEyOTExLEEubmlldW5hcGFyZW5rb3JlYW49MTI4MTUsQS5uaWV1bmNpZXVja29yZWFuPTEyNTk3LEEubmlldW5jaXJjbGVrb3JlYW49MTI4OTcsQS5uaWV1bmhpZXVoa29yZWFuPTEyNTk4LEEubmlldW5rb3JlYW49MTI1OTYsQS5uaWV1bnBhbnNpb3Nrb3JlYW49MTI2NDgsQS5uaWV1bnBhcmVua29yZWFuPTEyODAxLEEubmlldW5zaW9za29yZWFuPTEyNjQ3LEEubmlldW50aWtldXRrb3JlYW49MTI2NDYsQS5uaWhpcmFnYW5hPTEyMzk1LEEubmlrYXRha2FuYT0xMjQ5MSxBLm5pa2F0YWthbmFoYWxmd2lkdGg9NjU0MTQsQS5uaWtoYWhpdGxlZnR0aGFpPTYzNjQxLEEubmlraGFoaXR0aGFpPTM2NjEsQS5uaW5lPTU3LEEubmluZWFyYWJpYz0xNjQxLEEubmluZWJlbmdhbGk9MjU0MyxBLm5pbmVjaXJjbGU9OTMyMCxBLm5pbmVjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTMwLEEubmluZWRldmE9MjQxNSxBLm5pbmVndWphcmF0aT0yNzk5LEEubmluZWd1cm11a2hpPTI2NzEsQS5uaW5laGFja2FyYWJpYz0xNjQxLEEubmluZWhhbmd6aG91PTEyMzI5LEEubmluZWlkZW9ncmFwaGljcGFyZW49MTI4NDAsQS5uaW5laW5mZXJpb3I9ODMyOSxBLm5pbmVtb25vc3BhY2U9NjUzMDUsQS5uaW5lb2xkc3R5bGU9NjMyODksQS5uaW5lcGFyZW49OTM0MCxBLm5pbmVwZXJpb2Q9OTM2MCxBLm5pbmVwZXJzaWFuPTE3ODUsQS5uaW5lcm9tYW49ODU2OCxBLm5pbmVzdXBlcmlvcj04MzEzLEEubmluZXRlZW5jaXJjbGU9OTMzMCxBLm5pbmV0ZWVucGFyZW49OTM1MCxBLm5pbmV0ZWVucGVyaW9kPTkzNzAsQS5uaW5ldGhhaT0zNjczLEEubmo9NDYwLEEubmplY3lyaWxsaWM9MTExNCxBLm5rYXRha2FuYT0xMjUzMSxBLm5rYXRha2FuYWhhbGZ3aWR0aD02NTQzNyxBLm5sZWdyaWdodGxvbmc9NDE0LEEubmxpbmViZWxvdz03NzUzLEEubm1vbm9zcGFjZT02NTM1OCxBLm5tc3F1YXJlPTEzMjEwLEEubm5hYmVuZ2FsaT0yNDY3LEEubm5hZGV2YT0yMzM5LEEubm5hZ3VqYXJhdGk9MjcyMyxBLm5uYWd1cm11a2hpPTI1OTUsQS5ubm5hZGV2YT0yMzQ1LEEubm9oaXJhZ2FuYT0xMjM5OCxBLm5va2F0YWthbmE9MTI0OTQsQS5ub2thdGFrYW5haGFsZndpZHRoPTY1NDE3LEEubm9uYnJlYWtpbmdzcGFjZT0xNjAsQS5ub25lbnRoYWk9MzYwMyxBLm5vbnV0aGFpPTM2MDksQS5ub29uYXJhYmljPTE2MDYsQS5ub29uZmluYWxhcmFiaWM9NjUyNTQsQS5ub29uZ2h1bm5hYXJhYmljPTE3MjIsQS5ub29uZ2h1bm5hZmluYWxhcmFiaWM9NjQ0MTUsQS5ub29uaW5pdGlhbGFyYWJpYz02NTI1NSxBLm5vb25qZWVtaW5pdGlhbGFyYWJpYz02NDcyMixBLm5vb25qZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1ODcsQS5ub29ubWVkaWFsYXJhYmljPTY1MjU2LEEubm9vbm1lZW1pbml0aWFsYXJhYmljPTY0NzI1LEEubm9vbm1lZW1pc29sYXRlZGFyYWJpYz02NDU5MCxBLm5vb25ub29uZmluYWxhcmFiaWM9NjQ2NTMsQS5ub3Rjb250YWlucz04NzE2LEEubm90ZWxlbWVudD04NzEzLEEubm90ZWxlbWVudG9mPTg3MTMsQS5ub3RlcXVhbD04ODAwLEEubm90Z3JlYXRlcj04ODE1LEEubm90Z3JlYXRlcm5vcmVxdWFsPTg4MTcsQS5ub3RncmVhdGVybm9ybGVzcz04ODI1LEEubm90aWRlbnRpY2FsPTg4MDIsQS5ub3RsZXNzPTg4MTQsQS5ub3RsZXNzbm9yZXF1YWw9ODgxNixBLm5vdHBhcmFsbGVsPTg3NDIsQS5ub3RwcmVjZWRlcz04ODMyLEEubm90c3Vic2V0PTg4MzYsQS5ub3RzdWNjZWVkcz04ODMzLEEubm90c3VwZXJzZXQ9ODgzNyxBLm5vd2FybWVuaWFuPTEzOTgsQS5ucGFyZW49OTM4NSxBLm5zc3F1YXJlPTEzMjMzLEEubnN1cGVyaW9yPTgzMTksQS5udGlsZGU9MjQxLEEubnU9OTU3LEEubnVoaXJhZ2FuYT0xMjM5NixBLm51a2F0YWthbmE9MTI0OTIsQS5udWthdGFrYW5haGFsZndpZHRoPTY1NDE1LEEubnVrdGFiZW5nYWxpPTI0OTIsQS5udWt0YWRldmE9MjM2NCxBLm51a3RhZ3VqYXJhdGk9Mjc0OCxBLm51a3RhZ3VybXVraGk9MjYyMCxBLm51bWJlcnNpZ249MzUsQS5udW1iZXJzaWdubW9ub3NwYWNlPTY1MjgzLEEubnVtYmVyc2lnbnNtYWxsPTY1MTE5LEEubnVtZXJhbHNpZ25ncmVlaz04ODQsQS5udW1lcmFsc2lnbmxvd2VyZ3JlZWs9ODg1LEEubnVtZXJvPTg0NzAsQS5udW49MTUwNCxBLm51bmRhZ2VzaD02NDMyMCxBLm51bmRhZ2VzaGhlYnJldz02NDMyMCxBLm51bmhlYnJldz0xNTA0LEEubnZzcXVhcmU9MTMyMzcsQS5ud3NxdWFyZT0xMzI0MyxBLm55YWJlbmdhbGk9MjQ2MixBLm55YWRldmE9MjMzNCxBLm55YWd1amFyYXRpPTI3MTgsQS5ueWFndXJtdWtoaT0yNTkwLEEubz0xMTEsQS5vYWN1dGU9MjQzLEEub2FuZ3RoYWk9MzYyOSxBLm9iYXJyZWQ9NjI5LEEub2JhcnJlZGN5cmlsbGljPTEyNTcsQS5vYmFycmVkZGllcmVzaXNjeXJpbGxpYz0xMjU5LEEub2JlbmdhbGk9MjQ1MSxBLm9ib3BvbW9mbz0xMjU3MSxBLm9icmV2ZT0zMzUsQS5vY2FuZHJhZGV2YT0yMzIxLEEub2NhbmRyYWd1amFyYXRpPTI3MDUsQS5vY2FuZHJhdm93ZWxzaWduZGV2YT0yMzc3LEEub2NhbmRyYXZvd2Vsc2lnbmd1amFyYXRpPTI3NjEsQS5vY2Fyb249NDY2LEEub2NpcmNsZT05NDM4LEEub2NpcmN1bWZsZXg9MjQ0LEEub2NpcmN1bWZsZXhhY3V0ZT03ODg5LEEub2NpcmN1bWZsZXhkb3RiZWxvdz03ODk3LEEub2NpcmN1bWZsZXhncmF2ZT03ODkxLEEub2NpcmN1bWZsZXhob29rYWJvdmU9Nzg5MyxBLm9jaXJjdW1mbGV4dGlsZGU9Nzg5NSxBLm9jeXJpbGxpYz0xMDg2LEEub2RibGFjdXRlPTMzNyxBLm9kYmxncmF2ZT01MjUsQS5vZGV2YT0yMzIzLEEub2RpZXJlc2lzPTI0NixBLm9kaWVyZXNpc2N5cmlsbGljPTEyNTUsQS5vZG90YmVsb3c9Nzg4NSxBLm9lPTMzOSxBLm9la29yZWFuPTEyNjM0LEEub2dvbmVrPTczMSxBLm9nb25la2NtYj04MDgsQS5vZ3JhdmU9MjQyLEEub2d1amFyYXRpPTI3MDcsQS5vaGFybWVuaWFuPTE0MTMsQS5vaGlyYWdhbmE9MTIzNjIsQS5vaG9va2Fib3ZlPTc4ODcsQS5vaG9ybj00MTcsQS5vaG9ybmFjdXRlPTc4OTksQS5vaG9ybmRvdGJlbG93PTc5MDcsQS5vaG9ybmdyYXZlPTc5MDEsQS5vaG9ybmhvb2thYm92ZT03OTAzLEEub2hvcm50aWxkZT03OTA1LEEub2h1bmdhcnVtbGF1dD0zMzcsQS5vaT00MTksQS5vaW52ZXJ0ZWRicmV2ZT01MjcsQS5va2F0YWthbmE9MTI0NTgsQS5va2F0YWthbmFoYWxmd2lkdGg9NjUzOTcsQS5va29yZWFuPTEyNjMxLEEub2xlaGVicmV3PTE0NTEsQS5vbWFjcm9uPTMzMyxBLm9tYWNyb25hY3V0ZT03NzYzLEEub21hY3JvbmdyYXZlPTc3NjEsQS5vbWRldmE9MjM4NCxBLm9tZWdhPTk2OSxBLm9tZWdhMT05ODIsQS5vbWVnYWN5cmlsbGljPTExMjEsQS5vbWVnYWxhdGluY2xvc2VkPTYzMSxBLm9tZWdhcm91bmRjeXJpbGxpYz0xMTQ3LEEub21lZ2F0aXRsb2N5cmlsbGljPTExNDksQS5vbWVnYXRvbm9zPTk3NCxBLm9tZ3VqYXJhdGk9Mjc2OCxBLm9taWNyb249OTU5LEEub21pY3JvbnRvbm9zPTk3MixBLm9tb25vc3BhY2U9NjUzNTksQS5vbmU9NDksQS5vbmVhcmFiaWM9MTYzMyxBLm9uZWJlbmdhbGk9MjUzNSxBLm9uZWNpcmNsZT05MzEyLEEub25lY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMixBLm9uZWRldmE9MjQwNyxBLm9uZWRvdGVubGVhZGVyPTgyMjgsQS5vbmVlaWdodGg9ODUzOSxBLm9uZWZpdHRlZD02MzE5NixBLm9uZWd1amFyYXRpPTI3OTEsQS5vbmVndXJtdWtoaT0yNjYzLEEub25laGFja2FyYWJpYz0xNjMzLEEub25laGFsZj0xODksQS5vbmVoYW5nemhvdT0xMjMyMSxBLm9uZWlkZW9ncmFwaGljcGFyZW49MTI4MzIsQS5vbmVpbmZlcmlvcj04MzIxLEEub25lbW9ub3NwYWNlPTY1Mjk3LEEub25lbnVtZXJhdG9yYmVuZ2FsaT0yNTQ4LEEub25lb2xkc3R5bGU9NjMyODEsQS5vbmVwYXJlbj05MzMyLEEub25lcGVyaW9kPTkzNTIsQS5vbmVwZXJzaWFuPTE3NzcsQS5vbmVxdWFydGVyPTE4OCxBLm9uZXJvbWFuPTg1NjAsQS5vbmVzdXBlcmlvcj0xODUsQS5vbmV0aGFpPTM2NjUsQS5vbmV0aGlyZD04NTMxLEEub29nb25laz00OTEsQS5vb2dvbmVrbWFjcm9uPTQ5MyxBLm9vZ3VybXVraGk9MjU3OSxBLm9vbWF0cmFndXJtdWtoaT0yNjM1LEEub29wZW49NTk2LEEub3BhcmVuPTkzODYsQS5vcGVuYnVsbGV0PTk3MDIsQS5vcHRpb249ODk5NyxBLm9yZGZlbWluaW5lPTE3MCxBLm9yZG1hc2N1bGluZT0xODYsQS5vcnRob2dvbmFsPTg3MzUsQS5vc2hvcnRkZXZhPTIzMjIsQS5vc2hvcnR2b3dlbHNpZ25kZXZhPTIzNzgsQS5vc2xhc2g9MjQ4LEEub3NsYXNoYWN1dGU9NTExLEEub3NtYWxsaGlyYWdhbmE9MTIzNjEsQS5vc21hbGxrYXRha2FuYT0xMjQ1NyxBLm9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg3LEEub3N0cm9rZWFjdXRlPTUxMSxBLm9zdXBlcmlvcj02MzIxNixBLm90Y3lyaWxsaWM9MTE1MSxBLm90aWxkZT0yNDUsQS5vdGlsZGVhY3V0ZT03NzU3LEEub3RpbGRlZGllcmVzaXM9Nzc1OSxBLm91Ym9wb21vZm89MTI1NzcsQS5vdmVybGluZT04MjU0LEEub3ZlcmxpbmVjZW50ZXJsaW5lPTY1MDk4LEEub3ZlcmxpbmVjbWI9NzczLEEub3ZlcmxpbmVkYXNoZWQ9NjUwOTcsQS5vdmVybGluZWRibHdhdnk9NjUxMDAsQS5vdmVybGluZXdhdnk9NjUwOTksQS5vdmVyc2NvcmU9MTc1LEEub3Zvd2Vsc2lnbmJlbmdhbGk9MjUwNyxBLm92b3dlbHNpZ25kZXZhPTIzNzksQS5vdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MyxBLnA9MTEyLEEucGFhbXBzc3F1YXJlPTEzMTg0LEEucGFhc2VudG9zcXVhcmU9MTMwOTksQS5wYWJlbmdhbGk9MjQ3NCxBLnBhY3V0ZT03NzY1LEEucGFkZXZhPTIzNDYsQS5wYWdlZG93bj04NjcxLEEucGFnZXVwPTg2NzAsQS5wYWd1amFyYXRpPTI3MzAsQS5wYWd1cm11a2hpPTI2MDIsQS5wYWhpcmFnYW5hPTEyNDAxLEEucGFpeWFubm9pdGhhaT0zNjMxLEEucGFrYXRha2FuYT0xMjQ5NyxBLnBhbGF0YWxpemF0aW9uY3lyaWxsaWNjbWI9MTE1NixBLnBhbG9jaGthY3lyaWxsaWM9MTIxNixBLnBhbnNpb3Nrb3JlYW49MTI2NzEsQS5wYXJhZ3JhcGg9MTgyLEEucGFyYWxsZWw9ODc0MSxBLnBhcmVubGVmdD00MCxBLnBhcmVubGVmdGFsdG9uZWFyYWJpYz02NDgzMCxBLnBhcmVubGVmdGJ0PTYzNzI1LEEucGFyZW5sZWZ0ZXg9NjM3MjQsQS5wYXJlbmxlZnRpbmZlcmlvcj04MzMzLEEucGFyZW5sZWZ0bW9ub3NwYWNlPTY1Mjg4LEEucGFyZW5sZWZ0c21hbGw9NjUxMTMsQS5wYXJlbmxlZnRzdXBlcmlvcj04MzE3LEEucGFyZW5sZWZ0dHA9NjM3MjMsQS5wYXJlbmxlZnR2ZXJ0aWNhbD02NTA3NyxBLnBhcmVucmlnaHQ9NDEsQS5wYXJlbnJpZ2h0YWx0b25lYXJhYmljPTY0ODMxLEEucGFyZW5yaWdodGJ0PTYzNzM2LEEucGFyZW5yaWdodGV4PTYzNzM1LEEucGFyZW5yaWdodGluZmVyaW9yPTgzMzQsQS5wYXJlbnJpZ2h0bW9ub3NwYWNlPTY1Mjg5LEEucGFyZW5yaWdodHNtYWxsPTY1MTE0LEEucGFyZW5yaWdodHN1cGVyaW9yPTgzMTgsQS5wYXJlbnJpZ2h0dHA9NjM3MzQsQS5wYXJlbnJpZ2h0dmVydGljYWw9NjUwNzgsQS5wYXJ0aWFsZGlmZj04NzA2LEEucGFzZXFoZWJyZXc9MTQ3MixBLnBhc2h0YWhlYnJldz0xNDMzLEEucGFzcXVhcmU9MTMyMjUsQS5wYXRhaD0xNDYzLEEucGF0YWgxMT0xNDYzLEEucGF0YWgxZD0xNDYzLEEucGF0YWgyYT0xNDYzLEEucGF0YWhoZWJyZXc9MTQ2MyxBLnBhdGFobmFycm93aGVicmV3PTE0NjMsQS5wYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ2MyxBLnBhdGFod2lkZWhlYnJldz0xNDYzLEEucGF6ZXJoZWJyZXc9MTQ0MSxBLnBib3BvbW9mbz0xMjU1MCxBLnBjaXJjbGU9OTQzOSxBLnBkb3RhY2NlbnQ9Nzc2NyxBLnBlPTE1MDgsQS5wZWN5cmlsbGljPTEwODcsQS5wZWRhZ2VzaD02NDMyNCxBLnBlZGFnZXNoaGVicmV3PTY0MzI0LEEucGVlemlzcXVhcmU9MTMxMTUsQS5wZWZpbmFsZGFnZXNoaGVicmV3PTY0MzIzLEEucGVoYXJhYmljPTE2NjIsQS5wZWhhcm1lbmlhbj0xNDAyLEEucGVoZWJyZXc9MTUwOCxBLnBlaGZpbmFsYXJhYmljPTY0MzQzLEEucGVoaW5pdGlhbGFyYWJpYz02NDM0NCxBLnBlaGlyYWdhbmE9MTI0MTAsQS5wZWhtZWRpYWxhcmFiaWM9NjQzNDUsQS5wZWthdGFrYW5hPTEyNTA2LEEucGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MSxBLnBlcmFmZWhlYnJldz02NDMzNCxBLnBlcmNlbnQ9MzcsQS5wZXJjZW50YXJhYmljPTE2NDIsQS5wZXJjZW50bW9ub3NwYWNlPTY1Mjg1LEEucGVyY2VudHNtYWxsPTY1MTMwLEEucGVyaW9kPTQ2LEEucGVyaW9kYXJtZW5pYW49MTQxNyxBLnBlcmlvZGNlbnRlcmVkPTE4MyxBLnBlcmlvZGhhbGZ3aWR0aD02NTM3NyxBLnBlcmlvZGluZmVyaW9yPTYzMjA3LEEucGVyaW9kbW9ub3NwYWNlPTY1Mjk0LEEucGVyaW9kc21hbGw9NjUxMDYsQS5wZXJpb2RzdXBlcmlvcj02MzIwOCxBLnBlcmlzcG9tZW5pZ3JlZWtjbWI9ODM0LEEucGVycGVuZGljdWxhcj04ODY5LEEucGVydGhvdXNhbmQ9ODI0MCxBLnBlc2V0YT04MzU5LEEucGZzcXVhcmU9MTMxOTQsQS5waGFiZW5nYWxpPTI0NzUsQS5waGFkZXZhPTIzNDcsQS5waGFndWphcmF0aT0yNzMxLEEucGhhZ3VybXVraGk9MjYwMyxBLnBoaT05NjYsQS5waGkxPTk4MSxBLnBoaWV1cGhhY2lyY2xla29yZWFuPTEyOTIyLEEucGhpZXVwaGFwYXJlbmtvcmVhbj0xMjgyNixBLnBoaWV1cGhjaXJjbGVrb3JlYW49MTI5MDgsQS5waGlldXBoa29yZWFuPTEyNjIxLEEucGhpZXVwaHBhcmVua29yZWFuPTEyODEyLEEucGhpbGF0aW49NjMyLEEucGhpbnRodXRoYWk9MzY0MixBLnBoaXN5bWJvbGdyZWVrPTk4MSxBLnBob29rPTQyMSxBLnBob3BoYW50aGFpPTM2MTQsQS5waG9waHVuZ3RoYWk9MzYxMixBLnBob3NhbXBoYW90aGFpPTM2MTYsQS5waT05NjAsQS5waWV1cGFjaXJjbGVrb3JlYW49MTI5MTUsQS5waWV1cGFwYXJlbmtvcmVhbj0xMjgxOSxBLnBpZXVwY2lldWNrb3JlYW49MTI2NjIsQS5waWV1cGNpcmNsZWtvcmVhbj0xMjkwMSxBLnBpZXVwa2l5ZW9ra29yZWFuPTEyNjU4LEEucGlldXBrb3JlYW49MTI2MTAsQS5waWV1cHBhcmVua29yZWFuPTEyODA1LEEucGlldXBzaW9za2l5ZW9ra29yZWFuPTEyNjYwLEEucGlldXBzaW9za29yZWFuPTEyNjEyLEEucGlldXBzaW9zdGlrZXV0a29yZWFuPTEyNjYxLEEucGlldXB0aGlldXRoa29yZWFuPTEyNjYzLEEucGlldXB0aWtldXRrb3JlYW49MTI2NTksQS5waWhpcmFnYW5hPTEyNDA0LEEucGlrYXRha2FuYT0xMjUwMCxBLnBpc3ltYm9sZ3JlZWs9OTgyLEEucGl3cmFybWVuaWFuPTE0MTEsQS5wbGFuY2tvdmVyMnBpPTg0NjMsQS5wbGFuY2tvdmVyMnBpMT04NDYzLEEucGx1cz00MyxBLnBsdXNiZWxvd2NtYj03OTksQS5wbHVzY2lyY2xlPTg4NTMsQS5wbHVzbWludXM9MTc3LEEucGx1c21vZD03MjYsQS5wbHVzbW9ub3NwYWNlPTY1MjkxLEEucGx1c3NtYWxsPTY1MTIyLEEucGx1c3N1cGVyaW9yPTgzMTQsQS5wbW9ub3NwYWNlPTY1MzYwLEEucG1zcXVhcmU9MTMyNzIsQS5wb2hpcmFnYW5hPTEyNDEzLEEucG9pbnRpbmdpbmRleGRvd253aGl0ZT05NzU5LEEucG9pbnRpbmdpbmRleGxlZnR3aGl0ZT05NzU2LEEucG9pbnRpbmdpbmRleHJpZ2h0d2hpdGU9OTc1OCxBLnBvaW50aW5naW5kZXh1cHdoaXRlPTk3NTcsQS5wb2thdGFrYW5hPTEyNTA5LEEucG9wbGF0aGFpPTM2MTEsQS5wb3N0YWxtYXJrPTEyMzA2LEEucG9zdGFsbWFya2ZhY2U9MTIzMjAsQS5wcGFyZW49OTM4NyxBLnByZWNlZGVzPTg4MjYsQS5wcmVzY3JpcHRpb249ODQ3OCxBLnByaW1lbW9kPTY5NyxBLnByaW1lcmV2ZXJzZWQ9ODI0NSxBLnByb2R1Y3Q9ODcxOSxBLnByb2plY3RpdmU9ODk2NSxBLnByb2xvbmdlZGthbmE9MTI1NDAsQS5wcm9wZWxsb3I9ODk4NCxBLnByb3BlcnN1YnNldD04ODM0LEEucHJvcGVyc3VwZXJzZXQ9ODgzNSxBLnByb3BvcnRpb249ODc1OSxBLnByb3BvcnRpb25hbD04NzMzLEEucHNpPTk2OCxBLnBzaWN5cmlsbGljPTExMzcsQS5wc2lsaXBuZXVtYXRhY3lyaWxsaWNjbWI9MTE1OCxBLnBzc3F1YXJlPTEzMjMyLEEucHVoaXJhZ2FuYT0xMjQwNyxBLnB1a2F0YWthbmE9MTI1MDMsQS5wdnNxdWFyZT0xMzIzNixBLnB3c3F1YXJlPTEzMjQyLEEucT0xMTMsQS5xYWRldmE9MjM5MixBLnFhZG1haGVicmV3PTE0NDgsQS5xYWZhcmFiaWM9MTYwMixBLnFhZmZpbmFsYXJhYmljPTY1MjM4LEEucWFmaW5pdGlhbGFyYWJpYz02NTIzOSxBLnFhZm1lZGlhbGFyYWJpYz02NTI0MCxBLnFhbWF0cz0xNDY0LEEucWFtYXRzMTA9MTQ2NCxBLnFhbWF0czFhPTE0NjQsQS5xYW1hdHMxYz0xNDY0LEEucWFtYXRzMjc9MTQ2NCxBLnFhbWF0czI5PTE0NjQsQS5xYW1hdHMzMz0xNDY0LEEucWFtYXRzZGU9MTQ2NCxBLnFhbWF0c2hlYnJldz0xNDY0LEEucWFtYXRzbmFycm93aGVicmV3PTE0NjQsQS5xYW1hdHNxYXRhbmhlYnJldz0xNDY0LEEucWFtYXRzcWF0YW5uYXJyb3doZWJyZXc9MTQ2NCxBLnFhbWF0c3FhdGFucXVhcnRlcmhlYnJldz0xNDY0LEEucWFtYXRzcWF0YW53aWRlaGVicmV3PTE0NjQsQS5xYW1hdHNxdWFydGVyaGVicmV3PTE0NjQsQS5xYW1hdHN3aWRlaGVicmV3PTE0NjQsQS5xYXJuZXlwYXJhaGVicmV3PTE0MzksQS5xYm9wb21vZm89MTI1NjEsQS5xY2lyY2xlPTk0NDAsQS5xaG9vaz02NzIsQS5xbW9ub3NwYWNlPTY1MzYxLEEucW9mPTE1MTEsQS5xb2ZkYWdlc2g9NjQzMjcsQS5xb2ZkYWdlc2hoZWJyZXc9NjQzMjcsQS5xb2ZoZWJyZXc9MTUxMSxBLnFwYXJlbj05Mzg4LEEucXVhcnRlcm5vdGU9OTgzMyxBLnF1YnV0cz0xNDY3LEEucXVidXRzMTg9MTQ2NyxBLnF1YnV0czI1PTE0NjcsQS5xdWJ1dHMzMT0xNDY3LEEucXVidXRzaGVicmV3PTE0NjcsQS5xdWJ1dHNuYXJyb3doZWJyZXc9MTQ2NyxBLnF1YnV0c3F1YXJ0ZXJoZWJyZXc9MTQ2NyxBLnF1YnV0c3dpZGVoZWJyZXc9MTQ2NyxBLnF1ZXN0aW9uPTYzLEEucXVlc3Rpb25hcmFiaWM9MTU2NyxBLnF1ZXN0aW9uYXJtZW5pYW49MTM3NCxBLnF1ZXN0aW9uZG93bj0xOTEsQS5xdWVzdGlvbmRvd25zbWFsbD02MzQyMyxBLnF1ZXN0aW9uZ3JlZWs9ODk0LEEucXVlc3Rpb25tb25vc3BhY2U9NjUzMTEsQS5xdWVzdGlvbnNtYWxsPTYzMjk1LEEucXVvdGVkYmw9MzQsQS5xdW90ZWRibGJhc2U9ODIyMixBLnF1b3RlZGJsbGVmdD04MjIwLEEucXVvdGVkYmxtb25vc3BhY2U9NjUyODIsQS5xdW90ZWRibHByaW1lPTEyMzE4LEEucXVvdGVkYmxwcmltZXJldmVyc2VkPTEyMzE3LEEucXVvdGVkYmxyaWdodD04MjIxLEEucXVvdGVsZWZ0PTgyMTYsQS5xdW90ZWxlZnRyZXZlcnNlZD04MjE5LEEucXVvdGVyZXZlcnNlZD04MjE5LEEucXVvdGVyaWdodD04MjE3LEEucXVvdGVyaWdodG49MzI5LEEucXVvdGVzaW5nbGJhc2U9ODIxOCxBLnF1b3Rlc2luZ2xlPTM5LEEucXVvdGVzaW5nbGVtb25vc3BhY2U9NjUyODcsQS5yPTExNCxBLnJhYXJtZW5pYW49MTQwNCxBLnJhYmVuZ2FsaT0yNDgwLEEucmFjdXRlPTM0MSxBLnJhZGV2YT0yMzUyLEEucmFkaWNhbD04NzMwLEEucmFkaWNhbGV4PTYzNzE3LEEucmFkb3ZlcnNzcXVhcmU9MTMyMzAsQS5yYWRvdmVyc3NxdWFyZWRzcXVhcmU9MTMyMzEsQS5yYWRzcXVhcmU9MTMyMjksQS5yYWZlPTE0NzEsQS5yYWZlaGVicmV3PTE0NzEsQS5yYWd1amFyYXRpPTI3MzYsQS5yYWd1cm11a2hpPTI2MDgsQS5yYWhpcmFnYW5hPTEyNDI1LEEucmFrYXRha2FuYT0xMjUyMSxBLnJha2F0YWthbmFoYWxmd2lkdGg9NjU0MzEsQS5yYWxvd2VyZGlhZ29uYWxiZW5nYWxpPTI1NDUsQS5yYW1pZGRsZWRpYWdvbmFsYmVuZ2FsaT0yNTQ0LEEucmFtc2hvcm49NjEyLEEucmF0aW89ODc1OCxBLnJib3BvbW9mbz0xMjU2NixBLnJjYXJvbj0zNDUsQS5yY2VkaWxsYT0zNDMsQS5yY2lyY2xlPTk0NDEsQS5yY29tbWFhY2NlbnQ9MzQzLEEucmRibGdyYXZlPTUyOSxBLnJkb3RhY2NlbnQ9Nzc2OSxBLnJkb3RiZWxvdz03NzcxLEEucmRvdGJlbG93bWFjcm9uPTc3NzMsQS5yZWZlcmVuY2VtYXJrPTgyNTEsQS5yZWZsZXhzdWJzZXQ9ODgzOCxBLnJlZmxleHN1cGVyc2V0PTg4MzksQS5yZWdpc3RlcmVkPTE3NCxBLnJlZ2lzdGVyc2Fucz02MzcyMCxBLnJlZ2lzdGVyc2VyaWY9NjMxOTQsQS5yZWhhcmFiaWM9MTU4NSxBLnJlaGFybWVuaWFuPTE0MDgsQS5yZWhmaW5hbGFyYWJpYz02NTE5OCxBLnJlaGlyYWdhbmE9MTI0MjgsQS5yZWthdGFrYW5hPTEyNTI0O0EucmVrYXRha2FuYWhhbGZ3aWR0aD02NTQzNCxBLnJlc2g9MTUxMixBLnJlc2hkYWdlc2hoZWJyZXc9NjQzMjgsQS5yZXNoaGVicmV3PTE1MTIsQS5yZXZlcnNlZHRpbGRlPTg3NjUsQS5yZXZpYWhlYnJldz0xNDMxLEEucmV2aWFtdWdyYXNoaGVicmV3PTE0MzEsQS5yZXZsb2dpY2Fsbm90PTg5NzYsQS5yZmlzaGhvb2s9NjM4LEEucmZpc2hob29rcmV2ZXJzZWQ9NjM5LEEucmhhYmVuZ2FsaT0yNTI1LEEucmhhZGV2YT0yMzk3LEEucmhvPTk2MSxBLnJob29rPTYzNyxBLnJob29rdHVybmVkPTYzNSxBLnJob29rdHVybmVkc3VwZXJpb3I9NjkzLEEucmhvc3ltYm9sZ3JlZWs9MTAwOSxBLnJob3RpY2hvb2ttb2Q9NzM0LEEucmlldWxhY2lyY2xla29yZWFuPTEyOTEzLEEucmlldWxhcGFyZW5rb3JlYW49MTI4MTcsQS5yaWV1bGNpcmNsZWtvcmVhbj0xMjg5OSxBLnJpZXVsaGlldWhrb3JlYW49MTI2MDgsQS5yaWV1bGtpeWVva2tvcmVhbj0xMjYwMixBLnJpZXVsa2l5ZW9rc2lvc2tvcmVhbj0xMjY0OSxBLnJpZXVsa29yZWFuPTEyNjAxLEEucmlldWxtaWV1bWtvcmVhbj0xMjYwMyxBLnJpZXVscGFuc2lvc2tvcmVhbj0xMjY1MixBLnJpZXVscGFyZW5rb3JlYW49MTI4MDMsQS5yaWV1bHBoaWV1cGhrb3JlYW49MTI2MDcsQS5yaWV1bHBpZXVwa29yZWFuPTEyNjA0LEEucmlldWxwaWV1cHNpb3Nrb3JlYW49MTI2NTEsQS5yaWV1bHNpb3Nrb3JlYW49MTI2MDUsQS5yaWV1bHRoaWV1dGhrb3JlYW49MTI2MDYsQS5yaWV1bHRpa2V1dGtvcmVhbj0xMjY1MCxBLnJpZXVseWVvcmluaGlldWhrb3JlYW49MTI2NTMsQS5yaWdodGFuZ2xlPTg3MzUsQS5yaWdodHRhY2tiZWxvd2NtYj03OTMsQS5yaWdodHRyaWFuZ2xlPTg4OTUsQS5yaWhpcmFnYW5hPTEyNDI2LEEucmlrYXRha2FuYT0xMjUyMixBLnJpa2F0YWthbmFoYWxmd2lkdGg9NjU0MzIsQS5yaW5nPTczMCxBLnJpbmdiZWxvd2NtYj04MDUsQS5yaW5nY21iPTc3OCxBLnJpbmdoYWxmbGVmdD03MDMsQS5yaW5naGFsZmxlZnRhcm1lbmlhbj0xMzY5LEEucmluZ2hhbGZsZWZ0YmVsb3djbWI9Nzk2LEEucmluZ2hhbGZsZWZ0Y2VudGVyZWQ9NzIzLEEucmluZ2hhbGZyaWdodD03MDIsQS5yaW5naGFsZnJpZ2h0YmVsb3djbWI9ODI1LEEucmluZ2hhbGZyaWdodGNlbnRlcmVkPTcyMixBLnJpbnZlcnRlZGJyZXZlPTUzMSxBLnJpdHRvcnVzcXVhcmU9MTMxMzcsQS5ybGluZWJlbG93PTc3NzUsQS5ybG9uZ2xlZz02MzYsQS5ybG9uZ2xlZ3R1cm5lZD02MzQsQS5ybW9ub3NwYWNlPTY1MzYyLEEucm9oaXJhZ2FuYT0xMjQyOSxBLnJva2F0YWthbmE9MTI1MjUsQS5yb2thdGFrYW5haGFsZndpZHRoPTY1NDM1LEEucm9ydWF0aGFpPTM2MTksQS5ycGFyZW49OTM4OSxBLnJyYWJlbmdhbGk9MjUyNCxBLnJyYWRldmE9MjM1MyxBLnJyYWd1cm11a2hpPTI2NTIsQS5ycmVoYXJhYmljPTE2ODEsQS5ycmVoZmluYWxhcmFiaWM9NjQzOTcsQS5ycnZvY2FsaWNiZW5nYWxpPTI1MjgsQS5ycnZvY2FsaWNkZXZhPTI0MDAsQS5ycnZvY2FsaWNndWphcmF0aT0yNzg0LEEucnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNTAwLEEucnJ2b2NhbGljdm93ZWxzaWduZGV2YT0yMzcyLEEucnJ2b2NhbGljdm93ZWxzaWduZ3VqYXJhdGk9Mjc1NixBLnJzdXBlcmlvcj02MzIxNyxBLnJ0YmxvY2s9OTYxNixBLnJ0dXJuZWQ9NjMzLEEucnR1cm5lZHN1cGVyaW9yPTY5MixBLnJ1aGlyYWdhbmE9MTI0MjcsQS5ydWthdGFrYW5hPTEyNTIzLEEucnVrYXRha2FuYWhhbGZ3aWR0aD02NTQzMyxBLnJ1cGVlbWFya2JlbmdhbGk9MjU0NixBLnJ1cGVlc2lnbmJlbmdhbGk9MjU0NyxBLnJ1cGlhaD02MzE5NyxBLnJ1dGhhaT0zNjIwLEEucnZvY2FsaWNiZW5nYWxpPTI0NDMsQS5ydm9jYWxpY2RldmE9MjMxNSxBLnJ2b2NhbGljZ3VqYXJhdGk9MjY5OSxBLnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNDk5LEEucnZvY2FsaWN2b3dlbHNpZ25kZXZhPTIzNzEsQS5ydm9jYWxpY3Zvd2Vsc2lnbmd1amFyYXRpPTI3NTUsQS5zPTExNSxBLnNhYmVuZ2FsaT0yNDg4LEEuc2FjdXRlPTM0NyxBLnNhY3V0ZWRvdGFjY2VudD03NzgxLEEuc2FkYXJhYmljPTE1ODksQS5zYWRldmE9MjM2MCxBLnNhZGZpbmFsYXJhYmljPTY1MjEwLEEuc2FkaW5pdGlhbGFyYWJpYz02NTIxMSxBLnNhZG1lZGlhbGFyYWJpYz02NTIxMixBLnNhZ3VqYXJhdGk9Mjc0NCxBLnNhZ3VybXVraGk9MjYxNixBLnNhaGlyYWdhbmE9MTIzNzMsQS5zYWthdGFrYW5hPTEyNDY5LEEuc2FrYXRha2FuYWhhbGZ3aWR0aD02NTQwMyxBLnNhbGxhbGxhaG91YWxheWhld2FzYWxsYW1hcmFiaWM9NjUwMTgsQS5zYW1la2g9MTUwNSxBLnNhbWVraGRhZ2VzaD02NDMyMSxBLnNhbWVraGRhZ2VzaGhlYnJldz02NDMyMSxBLnNhbWVraGhlYnJldz0xNTA1LEEuc2FyYWFhdGhhaT0zNjM0LEEuc2FyYWFldGhhaT0zNjQ5LEEuc2FyYWFpbWFpbWFsYWl0aGFpPTM2NTIsQS5zYXJhYWltYWltdWFudGhhaT0zNjUxLEEuc2FyYWFtdGhhaT0zNjM1LEEuc2FyYWF0aGFpPTM2MzIsQS5zYXJhZXRoYWk9MzY0OCxBLnNhcmFpaWxlZnR0aGFpPTYzNjIyLEEuc2FyYWlpdGhhaT0zNjM3LEEuc2FyYWlsZWZ0dGhhaT02MzYyMSxBLnNhcmFpdGhhaT0zNjM2LEEuc2FyYW90aGFpPTM2NTAsQS5zYXJhdWVlbGVmdHRoYWk9NjM2MjQsQS5zYXJhdWVldGhhaT0zNjM5LEEuc2FyYXVlbGVmdHRoYWk9NjM2MjMsQS5zYXJhdWV0aGFpPTM2MzgsQS5zYXJhdXRoYWk9MzY0MCxBLnNhcmF1dXRoYWk9MzY0MSxBLnNib3BvbW9mbz0xMjU2OSxBLnNjYXJvbj0zNTMsQS5zY2Fyb25kb3RhY2NlbnQ9Nzc4MyxBLnNjZWRpbGxhPTM1MSxBLnNjaHdhPTYwMSxBLnNjaHdhY3lyaWxsaWM9MTI0MSxBLnNjaHdhZGllcmVzaXNjeXJpbGxpYz0xMjQzLEEuc2Nod2Fob29rPTYwMixBLnNjaXJjbGU9OTQ0MixBLnNjaXJjdW1mbGV4PTM0OSxBLnNjb21tYWFjY2VudD01MzcsQS5zZG90YWNjZW50PTc3NzcsQS5zZG90YmVsb3c9Nzc3OSxBLnNkb3RiZWxvd2RvdGFjY2VudD03Nzg1LEEuc2VhZ3VsbGJlbG93Y21iPTgyOCxBLnNlY29uZD04MjQzLEEuc2Vjb25kdG9uZWNoaW5lc2U9NzE0LEEuc2VjdGlvbj0xNjcsQS5zZWVuYXJhYmljPTE1ODcsQS5zZWVuZmluYWxhcmFiaWM9NjUyMDIsQS5zZWVuaW5pdGlhbGFyYWJpYz02NTIwMyxBLnNlZW5tZWRpYWxhcmFiaWM9NjUyMDQsQS5zZWdvbD0xNDYyLEEuc2Vnb2wxMz0xNDYyLEEuc2Vnb2wxZj0xNDYyLEEuc2Vnb2wyYz0xNDYyLEEuc2Vnb2xoZWJyZXc9MTQ2MixBLnNlZ29sbmFycm93aGVicmV3PTE0NjIsQS5zZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ2MixBLnNlZ29sdGFoZWJyZXc9MTQyNixBLnNlZ29sd2lkZWhlYnJldz0xNDYyLEEuc2VoYXJtZW5pYW49MTQwNSxBLnNlaGlyYWdhbmE9MTIzNzksQS5zZWthdGFrYW5hPTEyNDc1LEEuc2VrYXRha2FuYWhhbGZ3aWR0aD02NTQwNixBLnNlbWljb2xvbj01OSxBLnNlbWljb2xvbmFyYWJpYz0xNTYzLEEuc2VtaWNvbG9ubW9ub3NwYWNlPTY1MzA3LEEuc2VtaWNvbG9uc21hbGw9NjUxMDgsQS5zZW1pdm9pY2VkbWFya2thbmE9MTI0NDQsQS5zZW1pdm9pY2VkbWFya2thbmFoYWxmd2lkdGg9NjU0MzksQS5zZW50aXNxdWFyZT0xMzA5MCxBLnNlbnRvc3F1YXJlPTEzMDkxLEEuc2V2ZW49NTUsQS5zZXZlbmFyYWJpYz0xNjM5LEEuc2V2ZW5iZW5nYWxpPTI1NDEsQS5zZXZlbmNpcmNsZT05MzE4LEEuc2V2ZW5jaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI4LEEuc2V2ZW5kZXZhPTI0MTMsQS5zZXZlbmVpZ2h0aHM9ODU0MixBLnNldmVuZ3VqYXJhdGk9Mjc5NyxBLnNldmVuZ3VybXVraGk9MjY2OSxBLnNldmVuaGFja2FyYWJpYz0xNjM5LEEuc2V2ZW5oYW5nemhvdT0xMjMyNyxBLnNldmVuaWRlb2dyYXBoaWNwYXJlbj0xMjgzOCxBLnNldmVuaW5mZXJpb3I9ODMyNyxBLnNldmVubW9ub3NwYWNlPTY1MzAzLEEuc2V2ZW5vbGRzdHlsZT02MzI4NyxBLnNldmVucGFyZW49OTMzOCxBLnNldmVucGVyaW9kPTkzNTgsQS5zZXZlbnBlcnNpYW49MTc4MyxBLnNldmVucm9tYW49ODU2NixBLnNldmVuc3VwZXJpb3I9ODMxMSxBLnNldmVudGVlbmNpcmNsZT05MzI4LEEuc2V2ZW50ZWVucGFyZW49OTM0OCxBLnNldmVudGVlbnBlcmlvZD05MzY4LEEuc2V2ZW50aGFpPTM2NzEsQS5zZnRoeXBoZW49MTczLEEuc2hhYXJtZW5pYW49MTM5OSxBLnNoYWJlbmdhbGk9MjQ4NixBLnNoYWN5cmlsbGljPTEwOTYsQS5zaGFkZGFhcmFiaWM9MTYxNyxBLnNoYWRkYWRhbW1hYXJhYmljPTY0NjA5LEEuc2hhZGRhZGFtbWF0YW5hcmFiaWM9NjQ2MDYsQS5zaGFkZGFmYXRoYWFyYWJpYz02NDYwOCxBLnNoYWRkYWthc3JhYXJhYmljPTY0NjEwLEEuc2hhZGRha2FzcmF0YW5hcmFiaWM9NjQ2MDcsQS5zaGFkZT05NjE4LEEuc2hhZGVkYXJrPTk2MTksQS5zaGFkZWxpZ2h0PTk2MTcsQS5zaGFkZW1lZGl1bT05NjE4LEEuc2hhZGV2YT0yMzU4LEEuc2hhZ3VqYXJhdGk9Mjc0MixBLnNoYWd1cm11a2hpPTI2MTQsQS5zaGFsc2hlbGV0aGVicmV3PTE0MjcsQS5zaGJvcG9tb2ZvPTEyNTY1LEEuc2hjaGFjeXJpbGxpYz0xMDk3LEEuc2hlZW5hcmFiaWM9MTU4OCxBLnNoZWVuZmluYWxhcmFiaWM9NjUyMDYsQS5zaGVlbmluaXRpYWxhcmFiaWM9NjUyMDcsQS5zaGVlbm1lZGlhbGFyYWJpYz02NTIwOCxBLnNoZWljb3B0aWM9OTk1LEEuc2hlcWVsPTgzNjIsQS5zaGVxZWxoZWJyZXc9ODM2MixBLnNoZXZhPTE0NTYsQS5zaGV2YTExNT0xNDU2LEEuc2hldmExNT0xNDU2LEEuc2hldmEyMj0xNDU2LEEuc2hldmEyZT0xNDU2LEEuc2hldmFoZWJyZXc9MTQ1NixBLnNoZXZhbmFycm93aGVicmV3PTE0NTYsQS5zaGV2YXF1YXJ0ZXJoZWJyZXc9MTQ1NixBLnNoZXZhd2lkZWhlYnJldz0xNDU2LEEuc2hoYWN5cmlsbGljPTEyMTEsQS5zaGltYWNvcHRpYz0xMDA1LEEuc2hpbj0xNTEzLEEuc2hpbmRhZ2VzaD02NDMyOSxBLnNoaW5kYWdlc2hoZWJyZXc9NjQzMjksQS5zaGluZGFnZXNoc2hpbmRvdD02NDMwMCxBLnNoaW5kYWdlc2hzaGluZG90aGVicmV3PTY0MzAwLEEuc2hpbmRhZ2VzaHNpbmRvdD02NDMwMSxBLnNoaW5kYWdlc2hzaW5kb3RoZWJyZXc9NjQzMDEsQS5zaGluZG90aGVicmV3PTE0NzMsQS5zaGluaGVicmV3PTE1MTMsQS5zaGluc2hpbmRvdD02NDI5OCxBLnNoaW5zaGluZG90aGVicmV3PTY0Mjk4LEEuc2hpbnNpbmRvdD02NDI5OSxBLnNoaW5zaW5kb3RoZWJyZXc9NjQyOTksQS5zaG9vaz02NDIsQS5zaWdtYT05NjMsQS5zaWdtYTE9OTYyLEEuc2lnbWFmaW5hbD05NjIsQS5zaWdtYWx1bmF0ZXN5bWJvbGdyZWVrPTEwMTAsQS5zaWhpcmFnYW5hPTEyMzc1LEEuc2lrYXRha2FuYT0xMjQ3MSxBLnNpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDQsQS5zaWx1cWhlYnJldz0xNDY5LEEuc2lsdXFsZWZ0aGVicmV3PTE0NjksQS5zaW1pbGFyPTg3NjQsQS5zaW5kb3RoZWJyZXc9MTQ3NCxBLnNpb3NhY2lyY2xla29yZWFuPTEyOTE2LEEuc2lvc2FwYXJlbmtvcmVhbj0xMjgyMCxBLnNpb3NjaWV1Y2tvcmVhbj0xMjY3MCxBLnNpb3NjaXJjbGVrb3JlYW49MTI5MDIsQS5zaW9za2l5ZW9ra29yZWFuPTEyNjY2LEEuc2lvc2tvcmVhbj0xMjYxMyxBLnNpb3NuaWV1bmtvcmVhbj0xMjY2NyxBLnNpb3NwYXJlbmtvcmVhbj0xMjgwNixBLnNpb3NwaWV1cGtvcmVhbj0xMjY2OSxBLnNpb3N0aWtldXRrb3JlYW49MTI2NjgsQS5zaXg9NTQsQS5zaXhhcmFiaWM9MTYzOCxBLnNpeGJlbmdhbGk9MjU0MCxBLnNpeGNpcmNsZT05MzE3LEEuc2l4Y2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNyxBLnNpeGRldmE9MjQxMixBLnNpeGd1amFyYXRpPTI3OTYsQS5zaXhndXJtdWtoaT0yNjY4LEEuc2l4aGFja2FyYWJpYz0xNjM4LEEuc2l4aGFuZ3pob3U9MTIzMjYsQS5zaXhpZGVvZ3JhcGhpY3BhcmVuPTEyODM3LEEuc2l4aW5mZXJpb3I9ODMyNixBLnNpeG1vbm9zcGFjZT02NTMwMixBLnNpeG9sZHN0eWxlPTYzMjg2LEEuc2l4cGFyZW49OTMzNyxBLnNpeHBlcmlvZD05MzU3LEEuc2l4cGVyc2lhbj0xNzgyLEEuc2l4cm9tYW49ODU2NSxBLnNpeHN1cGVyaW9yPTgzMTAsQS5zaXh0ZWVuY2lyY2xlPTkzMjcsQS5zaXh0ZWVuY3VycmVuY3lkZW5vbWluYXRvcmJlbmdhbGk9MjU1MyxBLnNpeHRlZW5wYXJlbj05MzQ3LEEuc2l4dGVlbnBlcmlvZD05MzY3LEEuc2l4dGhhaT0zNjcwLEEuc2xhc2g9NDcsQS5zbGFzaG1vbm9zcGFjZT02NTI5NSxBLnNsb25nPTM4MyxBLnNsb25nZG90YWNjZW50PTc4MzUsQS5zbWlsZWZhY2U9OTc4NixBLnNtb25vc3BhY2U9NjUzNjMsQS5zb2ZwYXN1cWhlYnJldz0xNDc1LEEuc29mdGh5cGhlbj0xNzMsQS5zb2Z0c2lnbmN5cmlsbGljPTExMDAsQS5zb2hpcmFnYW5hPTEyMzgxLEEuc29rYXRha2FuYT0xMjQ3NyxBLnNva2F0YWthbmFoYWxmd2lkdGg9NjU0MDcsQS5zb2xpZHVzbG9uZ292ZXJsYXljbWI9ODI0LEEuc29saWR1c3Nob3J0b3ZlcmxheWNtYj04MjMsQS5zb3J1c2l0aGFpPTM2MjUsQS5zb3NhbGF0aGFpPTM2MjQsQS5zb3NvdGhhaT0zNTk1LEEuc29zdWF0aGFpPTM2MjYsQS5zcGFjZT0zMixBLnNwYWNlaGFja2FyYWJpYz0zMixBLnNwYWRlPTk4MjQsQS5zcGFkZXN1aXRibGFjaz05ODI0LEEuc3BhZGVzdWl0d2hpdGU9OTgyOCxBLnNwYXJlbj05MzkwLEEuc3F1YXJlYmVsb3djbWI9ODI3LEEuc3F1YXJlY2M9MTMyNTIsQS5zcXVhcmVjbT0xMzIxMyxBLnNxdWFyZWRpYWdvbmFsY3Jvc3NoYXRjaGZpbGw9OTY0MSxBLnNxdWFyZWhvcml6b250YWxmaWxsPTk2MzYsQS5zcXVhcmVrZz0xMzE5OSxBLnNxdWFyZWttPTEzMjE0LEEuc3F1YXJla21jYXBpdGFsPTEzMjYyLEEuc3F1YXJlbG49MTMyNjUsQS5zcXVhcmVsb2c9MTMyNjYsQS5zcXVhcmVtZz0xMzE5OCxBLnNxdWFyZW1pbD0xMzI2OSxBLnNxdWFyZW1tPTEzMjEyLEEuc3F1YXJlbXNxdWFyZWQ9MTMyMTcsQS5zcXVhcmVvcnRob2dvbmFsY3Jvc3NoYXRjaGZpbGw9OTYzOCxBLnNxdWFyZXVwcGVybGVmdHRvbG93ZXJyaWdodGZpbGw9OTYzOSxBLnNxdWFyZXVwcGVycmlnaHR0b2xvd2VybGVmdGZpbGw9OTY0MCxBLnNxdWFyZXZlcnRpY2FsZmlsbD05NjM3LEEuc3F1YXJld2hpdGV3aXRoc21hbGxibGFjaz05NjM1LEEuc3JzcXVhcmU9MTMyNzUsQS5zc2FiZW5nYWxpPTI0ODcsQS5zc2FkZXZhPTIzNTksQS5zc2FndWphcmF0aT0yNzQzLEEuc3NhbmdjaWV1Y2tvcmVhbj0xMjYxNyxBLnNzYW5naGlldWhrb3JlYW49MTI2NzcsQS5zc2FuZ2lldW5na29yZWFuPTEyNjcyLEEuc3NhbmdraXllb2trb3JlYW49MTI1OTQsQS5zc2FuZ25pZXVua29yZWFuPTEyNjQ1LEEuc3NhbmdwaWV1cGtvcmVhbj0xMjYxMSxBLnNzYW5nc2lvc2tvcmVhbj0xMjYxNCxBLnNzYW5ndGlrZXV0a29yZWFuPTEyNjAwLEEuc3N1cGVyaW9yPTYzMjE4LEEuc3Rlcmxpbmc9MTYzLEEuc3Rlcmxpbmdtb25vc3BhY2U9NjU1MDUsQS5zdHJva2Vsb25nb3ZlcmxheWNtYj04MjIsQS5zdHJva2VzaG9ydG92ZXJsYXljbWI9ODIxLEEuc3Vic2V0PTg4MzQsQS5zdWJzZXRub3RlcXVhbD04ODQyLEEuc3Vic2V0b3JlcXVhbD04ODM4LEEuc3VjY2VlZHM9ODgyNyxBLnN1Y2h0aGF0PTg3MTUsQS5zdWhpcmFnYW5hPTEyMzc3LEEuc3VrYXRha2FuYT0xMjQ3MyxBLnN1a2F0YWthbmFoYWxmd2lkdGg9NjU0MDUsQS5zdWt1bmFyYWJpYz0xNjE4LEEuc3VtbWF0aW9uPTg3MjEsQS5zdW49OTc4OCxBLnN1cGVyc2V0PTg4MzUsQS5zdXBlcnNldG5vdGVxdWFsPTg4NDMsQS5zdXBlcnNldG9yZXF1YWw9ODgzOSxBLnN2c3F1YXJlPTEzMjc2LEEuc3lvdXdhZXJhc3F1YXJlPTEzMTgwLEEudD0xMTYsQS50YWJlbmdhbGk9MjQ2OCxBLnRhY2tkb3duPTg4NjgsQS50YWNrbGVmdD04ODY3LEEudGFkZXZhPTIzNDAsQS50YWd1amFyYXRpPTI3MjQsQS50YWd1cm11a2hpPTI1OTYsQS50YWhhcmFiaWM9MTU5MSxBLnRhaGZpbmFsYXJhYmljPTY1MjE4LEEudGFoaW5pdGlhbGFyYWJpYz02NTIxOSxBLnRhaGlyYWdhbmE9MTIzODMsQS50YWhtZWRpYWxhcmFiaWM9NjUyMjAsQS50YWlzeW91ZXJhc3F1YXJlPTEzMTgxLEEudGFrYXRha2FuYT0xMjQ3OSxBLnRha2F0YWthbmFoYWxmd2lkdGg9NjU0MDgsQS50YXR3ZWVsYXJhYmljPTE2MDAsQS50YXU9OTY0LEEudGF2PTE1MTQsQS50YXZkYWdlcz02NDMzMCxBLnRhdmRhZ2VzaD02NDMzMCxBLnRhdmRhZ2VzaGhlYnJldz02NDMzMCxBLnRhdmhlYnJldz0xNTE0LEEudGJhcj0zNTksQS50Ym9wb21vZm89MTI1NTQsQS50Y2Fyb249MzU3LEEudGNjdXJsPTY4MCxBLnRjZWRpbGxhPTM1NSxBLnRjaGVoYXJhYmljPTE2NzAsQS50Y2hlaGZpbmFsYXJhYmljPTY0Mzc5LEEudGNoZWhpbml0aWFsYXJhYmljPTY0MzgwLEEudGNoZWhtZWRpYWxhcmFiaWM9NjQzODEsQS50Y2lyY2xlPTk0NDMsQS50Y2lyY3VtZmxleGJlbG93PTc3OTMsQS50Y29tbWFhY2NlbnQ9MzU1LEEudGRpZXJlc2lzPTc4MzEsQS50ZG90YWNjZW50PTc3ODcsQS50ZG90YmVsb3c9Nzc4OSxBLnRlY3lyaWxsaWM9MTA5MCxBLnRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NyxBLnRlaGFyYWJpYz0xNTc4LEEudGVoZmluYWxhcmFiaWM9NjUxNzQsQS50ZWhoYWhpbml0aWFsYXJhYmljPTY0Njc0LEEudGVoaGFoaXNvbGF0ZWRhcmFiaWM9NjQ1MjQsQS50ZWhpbml0aWFsYXJhYmljPTY1MTc1LEEudGVoaXJhZ2FuYT0xMjM5MCxBLnRlaGplZW1pbml0aWFsYXJhYmljPTY0NjczLEEudGVoamVlbWlzb2xhdGVkYXJhYmljPTY0NTIzLEEudGVobWFyYnV0YWFyYWJpYz0xNTc3LEEudGVobWFyYnV0YWZpbmFsYXJhYmljPTY1MTcyLEEudGVobWVkaWFsYXJhYmljPTY1MTc2LEEudGVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzYsQS50ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjYsQS50ZWhub29uZmluYWxhcmFiaWM9NjQ2MjcsQS50ZWthdGFrYW5hPTEyNDg2LEEudGVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMSxBLnRlbGVwaG9uZT04NDgxLEEudGVsZXBob25lYmxhY2s9OTc0MixBLnRlbGlzaGFnZWRvbGFoZWJyZXc9MTQ0MCxBLnRlbGlzaGFxZXRhbmFoZWJyZXc9MTQ0OSxBLnRlbmNpcmNsZT05MzIxLEEudGVuaWRlb2dyYXBoaWNwYXJlbj0xMjg0MSxBLnRlbnBhcmVuPTkzNDEsQS50ZW5wZXJpb2Q9OTM2MSxBLnRlbnJvbWFuPTg1NjksQS50ZXNoPTY3OSxBLnRldD0xNDk2LEEudGV0ZGFnZXNoPTY0MzEyLEEudGV0ZGFnZXNoaGVicmV3PTY0MzEyLEEudGV0aGVicmV3PTE0OTYsQS50ZXRzZWN5cmlsbGljPTEyMDUsQS50ZXZpcmhlYnJldz0xNDM1LEEudGV2aXJsZWZ0aGVicmV3PTE0MzUsQS50aGFiZW5nYWxpPTI0NjksQS50aGFkZXZhPTIzNDEsQS50aGFndWphcmF0aT0yNzI1LEEudGhhZ3VybXVraGk9MjU5NyxBLnRoYWxhcmFiaWM9MTU4NCxBLnRoYWxmaW5hbGFyYWJpYz02NTE5NixBLnRoYW50aGFraGF0bG93bGVmdHRoYWk9NjM2NDAsQS50aGFudGhha2hhdGxvd3JpZ2h0dGhhaT02MzYzOSxBLnRoYW50aGFraGF0dGhhaT0zNjYwLEEudGhhbnRoYWtoYXR1cHBlcmxlZnR0aGFpPTYzNjM4LEEudGhlaGFyYWJpYz0xNTc5LEEudGhlaGZpbmFsYXJhYmljPTY1MTc4LEEudGhlaGluaXRpYWxhcmFiaWM9NjUxNzksQS50aGVobWVkaWFsYXJhYmljPTY1MTgwLEEudGhlcmVleGlzdHM9ODcwNyxBLnRoZXJlZm9yZT04NzU2LEEudGhldGE9OTUyLEEudGhldGExPTk3NyxBLnRoZXRhc3ltYm9sZ3JlZWs9OTc3LEEudGhpZXV0aGFjaXJjbGVrb3JlYW49MTI5MjEsQS50aGlldXRoYXBhcmVua29yZWFuPTEyODI1LEEudGhpZXV0aGNpcmNsZWtvcmVhbj0xMjkwNyxBLnRoaWV1dGhrb3JlYW49MTI2MjAsQS50aGlldXRocGFyZW5rb3JlYW49MTI4MTEsQS50aGlydGVlbmNpcmNsZT05MzI0LEEudGhpcnRlZW5wYXJlbj05MzQ0LEEudGhpcnRlZW5wZXJpb2Q9OTM2NCxBLnRob25hbmdtb250aG90aGFpPTM2MDEsQS50aG9vaz00MjksQS50aG9waHV0aGFvdGhhaT0zNjAyLEEudGhvcm49MjU0LEEudGhvdGhhaGFudGhhaT0zNjA3LEEudGhvdGhhbnRoYWk9MzYwMCxBLnRob3Rob25ndGhhaT0zNjA4LEEudGhvdGh1bmd0aGFpPTM2MDYsQS50aG91c2FuZGN5cmlsbGljPTExNTQsQS50aG91c2FuZHNzZXBhcmF0b3JhcmFiaWM9MTY0NCxBLnRob3VzYW5kc3NlcGFyYXRvcnBlcnNpYW49MTY0NCxBLnRocmVlPTUxLEEudGhyZWVhcmFiaWM9MTYzNSxBLnRocmVlYmVuZ2FsaT0yNTM3LEEudGhyZWVjaXJjbGU9OTMxNCxBLnRocmVlY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNCxBLnRocmVlZGV2YT0yNDA5LEEudGhyZWVlaWdodGhzPTg1NDAsQS50aHJlZWd1amFyYXRpPTI3OTMsQS50aHJlZWd1cm11a2hpPTI2NjUsQS50aHJlZWhhY2thcmFiaWM9MTYzNSxBLnRocmVlaGFuZ3pob3U9MTIzMjMsQS50aHJlZWlkZW9ncmFwaGljcGFyZW49MTI4MzQsQS50aHJlZWluZmVyaW9yPTgzMjMsQS50aHJlZW1vbm9zcGFjZT02NTI5OSxBLnRocmVlbnVtZXJhdG9yYmVuZ2FsaT0yNTUwLEEudGhyZWVvbGRzdHlsZT02MzI4MyxBLnRocmVlcGFyZW49OTMzNCxBLnRocmVlcGVyaW9kPTkzNTQsQS50aHJlZXBlcnNpYW49MTc3OSxBLnRocmVlcXVhcnRlcnM9MTkwLEEudGhyZWVxdWFydGVyc2VtZGFzaD02MzE5OCxBLnRocmVlcm9tYW49ODU2MixBLnRocmVlc3VwZXJpb3I9MTc5LEEudGhyZWV0aGFpPTM2NjcsQS50aHpzcXVhcmU9MTMyMDQsQS50aWhpcmFnYW5hPTEyMzg1LEEudGlrYXRha2FuYT0xMjQ4MSxBLnRpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDksQS50aWtldXRhY2lyY2xla29yZWFuPTEyOTEyLEEudGlrZXV0YXBhcmVua29yZWFuPTEyODE2LEEudGlrZXV0Y2lyY2xla29yZWFuPTEyODk4LEEudGlrZXV0a29yZWFuPTEyNTk5LEEudGlrZXV0cGFyZW5rb3JlYW49MTI4MDIsQS50aWxkZT03MzIsQS50aWxkZWJlbG93Y21iPTgxNixBLnRpbGRlY21iPTc3MSxBLnRpbGRlY29tYj03NzEsQS50aWxkZWRvdWJsZWNtYj04NjQsQS50aWxkZW9wZXJhdG9yPTg3NjQsQS50aWxkZW92ZXJsYXljbWI9ODIwLEEudGlsZGV2ZXJ0aWNhbGNtYj04MzAsQS50aW1lc2NpcmNsZT04ODU1LEEudGlwZWhhaGVicmV3PTE0MzAsQS50aXBlaGFsZWZ0aGVicmV3PTE0MzAsQS50aXBwaWd1cm11a2hpPTI2NzIsQS50aXRsb2N5cmlsbGljY21iPTExNTUsQS50aXduYXJtZW5pYW49MTQwNyxBLnRsaW5lYmVsb3c9Nzc5MSxBLnRtb25vc3BhY2U9NjUzNjQsQS50b2FybWVuaWFuPTEzODUsQS50b2hpcmFnYW5hPTEyMzkyLEEudG9rYXRha2FuYT0xMjQ4OCxBLnRva2F0YWthbmFoYWxmd2lkdGg9NjU0MTIsQS50b25lYmFyZXh0cmFoaWdobW9kPTc0MSxBLnRvbmViYXJleHRyYWxvd21vZD03NDUsQS50b25lYmFyaGlnaG1vZD03NDIsQS50b25lYmFybG93bW9kPTc0NCxBLnRvbmViYXJtaWRtb2Q9NzQzLEEudG9uZWZpdmU9NDQ1LEEudG9uZXNpeD0zODksQS50b25ldHdvPTQyNCxBLnRvbm9zPTkwMCxBLnRvbnNxdWFyZT0xMzA5NSxBLnRvcGF0YWt0aGFpPTM1OTksQS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMDgsQS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnRzbWFsbD02NTExNyxBLnRvcnRvaXNlc2hlbGxicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgxLEEudG9ydG9pc2VzaGVsbGJyYWNrZXRyaWdodD0xMjMwOSxBLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHRzbWFsbD02NTExOCxBLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA4MixBLnRvdGFvdGhhaT0zNjA1LEEudHBhbGF0YWxob29rPTQyNyxBLnRwYXJlbj05MzkxLEEudHJhZGVtYXJrPTg0ODIsQS50cmFkZW1hcmtzYW5zPTYzNzIyLEEudHJhZGVtYXJrc2VyaWY9NjMxOTUsQS50cmV0cm9mbGV4aG9vaz02NDgsQS50cmlhZ2RuPTk2NjAsQS50cmlhZ2xmPTk2NjgsQS50cmlhZ3J0PTk2NTgsQS50cmlhZ3VwPTk2NTAsQS50cz02NzgsQS50c2FkaT0xNTEwLEEudHNhZGlkYWdlc2g9NjQzMjYsQS50c2FkaWRhZ2VzaGhlYnJldz02NDMyNixBLnRzYWRpaGVicmV3PTE1MTAsQS50c2VjeXJpbGxpYz0xMDk0LEEudHNlcmU9MTQ2MSxBLnRzZXJlMTI9MTQ2MSxBLnRzZXJlMWU9MTQ2MSxBLnRzZXJlMmI9MTQ2MSxBLnRzZXJlaGVicmV3PTE0NjEsQS50c2VyZW5hcnJvd2hlYnJldz0xNDYxLEEudHNlcmVxdWFydGVyaGVicmV3PTE0NjEsQS50c2VyZXdpZGVoZWJyZXc9MTQ2MSxBLnRzaGVjeXJpbGxpYz0xMTE1LEEudHN1cGVyaW9yPTYzMjE5LEEudHRhYmVuZ2FsaT0yNDYzLEEudHRhZGV2YT0yMzM1LEEudHRhZ3VqYXJhdGk9MjcxOSxBLnR0YWd1cm11a2hpPTI1OTEsQS50dGVoYXJhYmljPTE2NTcsQS50dGVoZmluYWxhcmFiaWM9NjQzNTksQS50dGVoaW5pdGlhbGFyYWJpYz02NDM2MCxBLnR0ZWhtZWRpYWxhcmFiaWM9NjQzNjEsQS50dGhhYmVuZ2FsaT0yNDY0LEEudHRoYWRldmE9MjMzNixBLnR0aGFndWphcmF0aT0yNzIwLEEudHRoYWd1cm11a2hpPTI1OTIsQS50dHVybmVkPTY0NyxBLnR1aGlyYWdhbmE9MTIzODgsQS50dWthdGFrYW5hPTEyNDg0LEEudHVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMCxBLnR1c21hbGxoaXJhZ2FuYT0xMjM4NyxBLnR1c21hbGxrYXRha2FuYT0xMjQ4MyxBLnR1c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM5MSxBLnR3ZWx2ZWNpcmNsZT05MzIzLEEudHdlbHZlcGFyZW49OTM0MyxBLnR3ZWx2ZXBlcmlvZD05MzYzLEEudHdlbHZlcm9tYW49ODU3MSxBLnR3ZW50eWNpcmNsZT05MzMxLEEudHdlbnR5aGFuZ3pob3U9MjEzMTYsQS50d2VudHlwYXJlbj05MzUxLEEudHdlbnR5cGVyaW9kPTkzNzEsQS50d289NTAsQS50d29hcmFiaWM9MTYzNCxBLnR3b2JlbmdhbGk9MjUzNixBLnR3b2NpcmNsZT05MzEzLEEudHdvY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMyxBLnR3b2RldmE9MjQwOCxBLnR3b2RvdGVubGVhZGVyPTgyMjksQS50d29kb3RsZWFkZXI9ODIyOSxBLnR3b2RvdGxlYWRlcnZlcnRpY2FsPTY1MDcyLEEudHdvZ3VqYXJhdGk9Mjc5MixBLnR3b2d1cm11a2hpPTI2NjQsQS50d29oYWNrYXJhYmljPTE2MzQsQS50d29oYW5nemhvdT0xMjMyMixBLnR3b2lkZW9ncmFwaGljcGFyZW49MTI4MzMsQS50d29pbmZlcmlvcj04MzIyLEEudHdvbW9ub3NwYWNlPTY1Mjk4LEEudHdvbnVtZXJhdG9yYmVuZ2FsaT0yNTQ5LEEudHdvb2xkc3R5bGU9NjMyODIsQS50d29wYXJlbj05MzMzLEEudHdvcGVyaW9kPTkzNTMsQS50d29wZXJzaWFuPTE3NzgsQS50d29yb21hbj04NTYxLEEudHdvc3Ryb2tlPTQ0MyxBLnR3b3N1cGVyaW9yPTE3OCxBLnR3b3RoYWk9MzY2NixBLnR3b3RoaXJkcz04NTMyLEEudT0xMTcsQS51YWN1dGU9MjUwLEEudWJhcj02NDksQS51YmVuZ2FsaT0yNDQxLEEudWJvcG9tb2ZvPTEyNTg0LEEudWJyZXZlPTM2NSxBLnVjYXJvbj00NjgsQS51Y2lyY2xlPTk0NDQsQS51Y2lyY3VtZmxleD0yNTEsQS51Y2lyY3VtZmxleGJlbG93PTc3OTksQS51Y3lyaWxsaWM9MTA5MSxBLnVkYXR0YWRldmE9MjM4NSxBLnVkYmxhY3V0ZT0zNjksQS51ZGJsZ3JhdmU9NTMzLEEudWRldmE9MjMxMyxBLnVkaWVyZXNpcz0yNTIsQS51ZGllcmVzaXNhY3V0ZT00NzIsQS51ZGllcmVzaXNiZWxvdz03Nzk1LEEudWRpZXJlc2lzY2Fyb249NDc0LEEudWRpZXJlc2lzY3lyaWxsaWM9MTI2NSxBLnVkaWVyZXNpc2dyYXZlPTQ3NixBLnVkaWVyZXNpc21hY3Jvbj00NzAsQS51ZG90YmVsb3c9NzkwOSxBLnVncmF2ZT0yNDksQS51Z3VqYXJhdGk9MjY5NyxBLnVndXJtdWtoaT0yNTY5LEEudWhpcmFnYW5hPTEyMzU4LEEudWhvb2thYm92ZT03OTExLEEudWhvcm49NDMyLEEudWhvcm5hY3V0ZT03OTEzLEEudWhvcm5kb3RiZWxvdz03OTIxLEEudWhvcm5ncmF2ZT03OTE1LEEudWhvcm5ob29rYWJvdmU9NzkxNyxBLnVob3JudGlsZGU9NzkxOSxBLnVodW5nYXJ1bWxhdXQ9MzY5LEEudWh1bmdhcnVtbGF1dGN5cmlsbGljPTEyNjcsQS51aW52ZXJ0ZWRicmV2ZT01MzUsQS51a2F0YWthbmE9MTI0NTQsQS51a2F0YWthbmFoYWxmd2lkdGg9NjUzOTUsQS51a2N5cmlsbGljPTExNDUsQS51a29yZWFuPTEyNjM2LEEudW1hY3Jvbj0zNjMsQS51bWFjcm9uY3lyaWxsaWM9MTI2MyxBLnVtYWNyb25kaWVyZXNpcz03ODAzLEEudW1hdHJhZ3VybXVraGk9MjYyNSxBLnVtb25vc3BhY2U9NjUzNjUsQS51bmRlcnNjb3JlPTk1LEEudW5kZXJzY29yZWRibD04MjE1LEEudW5kZXJzY29yZW1vbm9zcGFjZT02NTM0MyxBLnVuZGVyc2NvcmV2ZXJ0aWNhbD02NTA3NSxBLnVuZGVyc2NvcmV3YXZ5PTY1MTAzLEEudW5pb249ODc0NixBLnVuaXZlcnNhbD04NzA0LEEudW9nb25laz0zNzEsQS51cGFyZW49OTM5MixBLnVwYmxvY2s9OTYwMCxBLnVwcGVyZG90aGVicmV3PTE0NzYsQS51cHNpbG9uPTk2NSxBLnVwc2lsb25kaWVyZXNpcz05NzEsQS51cHNpbG9uZGllcmVzaXN0b25vcz05NDQsQS51cHNpbG9ubGF0aW49NjUwLEEudXBzaWxvbnRvbm9zPTk3MyxBLnVwdGFja2JlbG93Y21iPTc5NyxBLnVwdGFja21vZD03MjQsQS51cmFndXJtdWtoaT0yNjc1LEEudXJpbmc9MzY3LEEudXNob3J0Y3lyaWxsaWM9MTExOCxBLnVzbWFsbGhpcmFnYW5hPTEyMzU3LEEudXNtYWxsa2F0YWthbmE9MTI0NTMsQS51c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NSxBLnVzdHJhaWdodGN5cmlsbGljPTExOTksQS51c3RyYWlnaHRzdHJva2VjeXJpbGxpYz0xMjAxLEEudXRpbGRlPTM2MSxBLnV0aWxkZWFjdXRlPTc4MDEsQS51dGlsZGViZWxvdz03Nzk3LEEudXViZW5nYWxpPTI0NDIsQS51dWRldmE9MjMxNCxBLnV1Z3VqYXJhdGk9MjY5OCxBLnV1Z3VybXVraGk9MjU3MCxBLnV1bWF0cmFndXJtdWtoaT0yNjI2LEEudXV2b3dlbHNpZ25iZW5nYWxpPTI0OTgsQS51dXZvd2Vsc2lnbmRldmE9MjM3MCxBLnV1dm93ZWxzaWduZ3VqYXJhdGk9Mjc1NCxBLnV2b3dlbHNpZ25iZW5nYWxpPTI0OTcsQS51dm93ZWxzaWduZGV2YT0yMzY5LEEudXZvd2Vsc2lnbmd1amFyYXRpPTI3NTMsQS52PTExOCxBLnZhZGV2YT0yMzU3LEEudmFndWphcmF0aT0yNzQxLEEudmFndXJtdWtoaT0yNjEzLEEudmFrYXRha2FuYT0xMjUzNSxBLnZhdj0xNDkzLEEudmF2ZGFnZXNoPTY0MzA5LEEudmF2ZGFnZXNoNjU9NjQzMDksQS52YXZkYWdlc2hoZWJyZXc9NjQzMDksQS52YXZoZWJyZXc9MTQ5MyxBLnZhdmhvbGFtPTY0MzMxLEEudmF2aG9sYW1oZWJyZXc9NjQzMzEsQS52YXZ2YXZoZWJyZXc9MTUyMCxBLnZhdnlvZGhlYnJldz0xNTIxLEEudmNpcmNsZT05NDQ1LEEudmRvdGJlbG93PTc4MDcsQS52ZWN5cmlsbGljPTEwNzQsQS52ZWhhcmFiaWM9MTcwMCxBLnZlaGZpbmFsYXJhYmljPTY0MzYzLEEudmVoaW5pdGlhbGFyYWJpYz02NDM2NCxBLnZlaG1lZGlhbGFyYWJpYz02NDM2NSxBLnZla2F0YWthbmE9MTI1MzcsQS52ZW51cz05NzkyLEEudmVydGljYWxiYXI9MTI0LEEudmVydGljYWxsaW5lYWJvdmVjbWI9NzgxLEEudmVydGljYWxsaW5lYmVsb3djbWI9ODA5LEEudmVydGljYWxsaW5lbG93bW9kPTcxNixBLnZlcnRpY2FsbGluZW1vZD03MTIsQS52ZXdhcm1lbmlhbj0xNDA2LEEudmhvb2s9NjUxLEEudmlrYXRha2FuYT0xMjUzNixBLnZpcmFtYWJlbmdhbGk9MjUwOSxBLnZpcmFtYWRldmE9MjM4MSxBLnZpcmFtYWd1amFyYXRpPTI3NjUsQS52aXNhcmdhYmVuZ2FsaT0yNDM1LEEudmlzYXJnYWRldmE9MjMwNyxBLnZpc2FyZ2FndWphcmF0aT0yNjkxLEEudm1vbm9zcGFjZT02NTM2NixBLnZvYXJtZW5pYW49MTQwMCxBLnZvaWNlZGl0ZXJhdGlvbmhpcmFnYW5hPTEyNDQ2LEEudm9pY2VkaXRlcmF0aW9ua2F0YWthbmE9MTI1NDIsQS52b2ljZWRtYXJra2FuYT0xMjQ0MyxBLnZvaWNlZG1hcmtrYW5haGFsZndpZHRoPTY1NDM4LEEudm9rYXRha2FuYT0xMjUzOCxBLnZwYXJlbj05MzkzLEEudnRpbGRlPTc4MDUsQS52dHVybmVkPTY1MixBLnZ1aGlyYWdhbmE9MTI0MzYsQS52dWthdGFrYW5hPTEyNTMyLEEudz0xMTksQS53YWN1dGU9NzgxMSxBLndhZWtvcmVhbj0xMjYzMyxBLndhaGlyYWdhbmE9MTI0MzEsQS53YWthdGFrYW5hPTEyNTI3LEEud2FrYXRha2FuYWhhbGZ3aWR0aD02NTQzNixBLndha29yZWFuPTEyNjMyLEEud2FzbWFsbGhpcmFnYW5hPTEyNDMwLEEud2FzbWFsbGthdGFrYW5hPTEyNTI2LEEud2F0dG9zcXVhcmU9MTMxNDMsQS53YXZlZGFzaD0xMjMxNixBLndhdnl1bmRlcnNjb3JldmVydGljYWw9NjUwNzYsQS53YXdhcmFiaWM9MTYwOCxBLndhd2ZpbmFsYXJhYmljPTY1MjYyLEEud2F3aGFtemFhYm92ZWFyYWJpYz0xNTcyLEEud2F3aGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MTU4LEEud2JzcXVhcmU9MTMyNzcsQS53Y2lyY2xlPTk0NDYsQS53Y2lyY3VtZmxleD0zNzMsQS53ZGllcmVzaXM9NzgxMyxBLndkb3RhY2NlbnQ9NzgxNSxBLndkb3RiZWxvdz03ODE3LEEud2VoaXJhZ2FuYT0xMjQzMyxBLndlaWVyc3RyYXNzPTg0NzIsQS53ZWthdGFrYW5hPTEyNTI5LEEud2Vrb3JlYW49MTI2MzgsQS53ZW9rb3JlYW49MTI2MzcsQS53Z3JhdmU9NzgwOSxBLndoaXRlYnVsbGV0PTk3MDIsQS53aGl0ZWNpcmNsZT05Njc1LEEud2hpdGVjaXJjbGVpbnZlcnNlPTk2ODksQS53aGl0ZWNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAyLEEud2hpdGVjb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDkxLEEud2hpdGVjb3JuZXJicmFja2V0cmlnaHQ9MTIzMDMsQS53aGl0ZWNvcm5lcmJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDkyLEEud2hpdGVkaWFtb25kPTk2NzEsQS53aGl0ZWRpYW1vbmRjb250YWluaW5nYmxhY2tzbWFsbGRpYW1vbmQ9OTY3MixBLndoaXRlZG93bnBvaW50aW5nc21hbGx0cmlhbmdsZT05NjYzO0Eud2hpdGVkb3ducG9pbnRpbmd0cmlhbmdsZT05NjYxLEEud2hpdGVsZWZ0cG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NjcsQS53aGl0ZWxlZnRwb2ludGluZ3RyaWFuZ2xlPTk2NjUsQS53aGl0ZWxlbnRpY3VsYXJicmFja2V0bGVmdD0xMjMxMCxBLndoaXRlbGVudGljdWxhcmJyYWNrZXRyaWdodD0xMjMxMSxBLndoaXRlcmlnaHRwb2ludGluZ3NtYWxsdHJpYW5nbGU9OTY1NyxBLndoaXRlcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTUsQS53aGl0ZXNtYWxsc3F1YXJlPTk2NDMsQS53aGl0ZXNtaWxpbmdmYWNlPTk3ODYsQS53aGl0ZXNxdWFyZT05NjMzLEEud2hpdGVzdGFyPTk3MzQsQS53aGl0ZXRlbGVwaG9uZT05NzQzLEEud2hpdGV0b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMTIsQS53aGl0ZXRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHQ9MTIzMTMsQS53aGl0ZXVwcG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NTMsQS53aGl0ZXVwcG9pbnRpbmd0cmlhbmdsZT05NjUxLEEud2loaXJhZ2FuYT0xMjQzMixBLndpa2F0YWthbmE9MTI1MjgsQS53aWtvcmVhbj0xMjYzOSxBLndtb25vc3BhY2U9NjUzNjcsQS53b2hpcmFnYW5hPTEyNDM0LEEud29rYXRha2FuYT0xMjUzMCxBLndva2F0YWthbmFoYWxmd2lkdGg9NjUzODIsQS53b249ODM2MSxBLndvbm1vbm9zcGFjZT02NTUxMCxBLndvd2FlbnRoYWk9MzYyMyxBLndwYXJlbj05Mzk0LEEud3Jpbmc9NzgzMixBLndzdXBlcmlvcj02OTUsQS53dHVybmVkPTY1MyxBLnd5bm49NDQ3LEEueD0xMjAsQS54YWJvdmVjbWI9ODI5LEEueGJvcG9tb2ZvPTEyNTYyLEEueGNpcmNsZT05NDQ3LEEueGRpZXJlc2lzPTc4MjEsQS54ZG90YWNjZW50PTc4MTksQS54ZWhhcm1lbmlhbj0xMzg5LEEueGk9OTU4LEEueG1vbm9zcGFjZT02NTM2OCxBLnhwYXJlbj05Mzk1LEEueHN1cGVyaW9yPTczOSxBLnk9MTIxLEEueWFhZG9zcXVhcmU9MTMxMzQsQS55YWJlbmdhbGk9MjQ3OSxBLnlhY3V0ZT0yNTMsQS55YWRldmE9MjM1MSxBLnlhZWtvcmVhbj0xMjYyNixBLnlhZ3VqYXJhdGk9MjczNSxBLnlhZ3VybXVraGk9MjYwNyxBLnlhaGlyYWdhbmE9MTI0MjAsQS55YWthdGFrYW5hPTEyNTE2LEEueWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyOCxBLnlha29yZWFuPTEyNjI1LEEueWFtYWtrYW50aGFpPTM2NjIsQS55YXNtYWxsaGlyYWdhbmE9MTI0MTksQS55YXNtYWxsa2F0YWthbmE9MTI1MTUsQS55YXNtYWxsa2F0YWthbmFoYWxmd2lkdGg9NjUzODgsQS55YXRjeXJpbGxpYz0xMTIzLEEueWNpcmNsZT05NDQ4LEEueWNpcmN1bWZsZXg9Mzc1LEEueWRpZXJlc2lzPTI1NSxBLnlkb3RhY2NlbnQ9NzgyMyxBLnlkb3RiZWxvdz03OTI1LEEueWVoYXJhYmljPTE2MTAsQS55ZWhiYXJyZWVhcmFiaWM9MTc0NixBLnllaGJhcnJlZWZpbmFsYXJhYmljPTY0NDMxLEEueWVoZmluYWxhcmFiaWM9NjUyNjYsQS55ZWhoYW16YWFib3ZlYXJhYmljPTE1NzQsQS55ZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNjIsQS55ZWhoYW16YWFib3ZlaW5pdGlhbGFyYWJpYz02NTE2MyxBLnllaGhhbXphYWJvdmVtZWRpYWxhcmFiaWM9NjUxNjQsQS55ZWhpbml0aWFsYXJhYmljPTY1MjY3LEEueWVobWVkaWFsYXJhYmljPTY1MjY4LEEueWVobWVlbWluaXRpYWxhcmFiaWM9NjQ3MzMsQS55ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ2MDAsQS55ZWhub29uZmluYWxhcmFiaWM9NjQ2NjAsQS55ZWh0aHJlZWRvdHNiZWxvd2FyYWJpYz0xNzQ1LEEueWVrb3JlYW49MTI2MzAsQS55ZW49MTY1LEEueWVubW9ub3NwYWNlPTY1NTA5LEEueWVva29yZWFuPTEyNjI5LEEueWVvcmluaGlldWhrb3JlYW49MTI2NzgsQS55ZXJhaGJlbnlvbW9oZWJyZXc9MTQ1MCxBLnllcmFoYmVueW9tb2xlZnRoZWJyZXc9MTQ1MCxBLnllcmljeXJpbGxpYz0xMDk5LEEueWVydWRpZXJlc2lzY3lyaWxsaWM9MTI3MyxBLnllc2lldW5na29yZWFuPTEyNjczLEEueWVzaWV1bmdwYW5zaW9za29yZWFuPTEyNjc1LEEueWVzaWV1bmdzaW9za29yZWFuPTEyNjc0LEEueWV0aXZoZWJyZXc9MTQzNCxBLnlncmF2ZT03OTIzLEEueWhvb2s9NDM2LEEueWhvb2thYm92ZT03OTI3LEEueWlhcm1lbmlhbj0xMzk3LEEueWljeXJpbGxpYz0xMTExLEEueWlrb3JlYW49MTI2NDIsQS55aW55YW5nPTk3NzUsQS55aXduYXJtZW5pYW49MTQxMCxBLnltb25vc3BhY2U9NjUzNjksQS55b2Q9MTQ5NyxBLnlvZGRhZ2VzaD02NDMxMyxBLnlvZGRhZ2VzaGhlYnJldz02NDMxMyxBLnlvZGhlYnJldz0xNDk3LEEueW9keW9kaGVicmV3PTE1MjIsQS55b2R5b2RwYXRhaGhlYnJldz02NDI4NyxBLnlvaGlyYWdhbmE9MTI0MjQsQS55b2lrb3JlYW49MTI2ODEsQS55b2thdGFrYW5hPTEyNTIwLEEueW9rYXRha2FuYWhhbGZ3aWR0aD02NTQzMCxBLnlva29yZWFuPTEyNjM1LEEueW9zbWFsbGhpcmFnYW5hPTEyNDIzLEEueW9zbWFsbGthdGFrYW5hPTEyNTE5LEEueW9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzkwLEEueW90Z3JlZWs9MTAxMSxBLnlveWFla29yZWFuPTEyNjgwLEEueW95YWtvcmVhbj0xMjY3OSxBLnlveWFrdGhhaT0zNjE4LEEueW95aW5ndGhhaT0zNTk3LEEueXBhcmVuPTkzOTYsQS55cG9nZWdyYW1tZW5pPTg5MCxBLnlwb2dlZ3JhbW1lbmlncmVla2NtYj04MzcsQS55cj00MjIsQS55cmluZz03ODMzLEEueXN1cGVyaW9yPTY5NixBLnl0aWxkZT03OTI5LEEueXR1cm5lZD02NTQsQS55dWhpcmFnYW5hPTEyNDIyLEEueXVpa29yZWFuPTEyNjg0LEEueXVrYXRha2FuYT0xMjUxOCxBLnl1a2F0YWthbmFoYWxmd2lkdGg9NjU0MjksQS55dWtvcmVhbj0xMjY0MCxBLnl1c2JpZ2N5cmlsbGljPTExMzEsQS55dXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzMsQS55dXNsaXR0bGVjeXJpbGxpYz0xMTI3LEEueXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI5LEEueXVzbWFsbGhpcmFnYW5hPTEyNDIxLEEueXVzbWFsbGthdGFrYW5hPTEyNTE3LEEueXVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg5LEEueXV5ZWtvcmVhbj0xMjY4MyxBLnl1eWVva29yZWFuPTEyNjgyLEEueXlhYmVuZ2FsaT0yNTI3LEEueXlhZGV2YT0yMzk5LEEuej0xMjIsQS56YWFybWVuaWFuPTEzODIsQS56YWN1dGU9Mzc4LEEuemFkZXZhPTIzOTUsQS56YWd1cm11a2hpPTI2NTEsQS56YWhhcmFiaWM9MTU5MixBLnphaGZpbmFsYXJhYmljPTY1MjIyLEEuemFoaW5pdGlhbGFyYWJpYz02NTIyMyxBLnphaGlyYWdhbmE9MTIzNzQsQS56YWhtZWRpYWxhcmFiaWM9NjUyMjQsQS56YWluYXJhYmljPTE1ODYsQS56YWluZmluYWxhcmFiaWM9NjUyMDAsQS56YWthdGFrYW5hPTEyNDcwLEEuemFxZWZnYWRvbGhlYnJldz0xNDI5LEEuemFxZWZxYXRhbmhlYnJldz0xNDI4LEEuemFycWFoZWJyZXc9MTQzMixBLnpheWluPTE0OTQsQS56YXlpbmRhZ2VzaD02NDMxMCxBLnpheWluZGFnZXNoaGVicmV3PTY0MzEwLEEuemF5aW5oZWJyZXc9MTQ5NCxBLnpib3BvbW9mbz0xMjU2NyxBLnpjYXJvbj0zODIsQS56Y2lyY2xlPTk0NDksQS56Y2lyY3VtZmxleD03ODI1LEEuemN1cmw9NjU3LEEuemRvdD0zODAsQS56ZG90YWNjZW50PTM4MCxBLnpkb3RiZWxvdz03ODI3LEEuemVjeXJpbGxpYz0xMDc5LEEuemVkZXNjZW5kZXJjeXJpbGxpYz0xMTc3LEEuemVkaWVyZXNpc2N5cmlsbGljPTEyNDcsQS56ZWhpcmFnYW5hPTEyMzgwLEEuemVrYXRha2FuYT0xMjQ3NixBLnplcm89NDgsQS56ZXJvYXJhYmljPTE2MzIsQS56ZXJvYmVuZ2FsaT0yNTM0LEEuemVyb2RldmE9MjQwNixBLnplcm9ndWphcmF0aT0yNzkwLEEuemVyb2d1cm11a2hpPTI2NjIsQS56ZXJvaGFja2FyYWJpYz0xNjMyLEEuemVyb2luZmVyaW9yPTgzMjAsQS56ZXJvbW9ub3NwYWNlPTY1Mjk2LEEuemVyb29sZHN0eWxlPTYzMjgwLEEuemVyb3BlcnNpYW49MTc3NixBLnplcm9zdXBlcmlvcj04MzA0LEEuemVyb3RoYWk9MzY2NCxBLnplcm93aWR0aGpvaW5lcj02NTI3OSxBLnplcm93aWR0aG5vbmpvaW5lcj04MjA0LEEuemVyb3dpZHRoc3BhY2U9ODIwMyxBLnpldGE9OTUwLEEuemhib3BvbW9mbz0xMjU2MyxBLnpoZWFybWVuaWFuPTEzODYsQS56aGVicmV2ZWN5cmlsbGljPTEyMTgsQS56aGVjeXJpbGxpYz0xMDc4LEEuemhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NSxBLnpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NSxBLnppaGlyYWdhbmE9MTIzNzYsQS56aWthdGFrYW5hPTEyNDcyLEEuemlub3JoZWJyZXc9MTQ1NCxBLnpsaW5lYmVsb3c9NzgyOSxBLnptb25vc3BhY2U9NjUzNzAsQS56b2hpcmFnYW5hPTEyMzgyLEEuem9rYXRha2FuYT0xMjQ3OCxBLnpwYXJlbj05Mzk3LEEuenJldHJvZmxleGhvb2s9NjU2LEEuenN0cm9rZT00MzgsQS56dWhpcmFnYW5hPTEyMzc4LEEuenVrYXRha2FuYT0xMjQ3NCxBWyIubm90ZGVmIl09MCxBLmFuZ2JyYWNrZXRsZWZ0YmlnPTkwMDEsQS5hbmdicmFja2V0bGVmdEJpZz05MDAxLEEuYW5nYnJhY2tldGxlZnRiaWdnPTkwMDEsQS5hbmdicmFja2V0bGVmdEJpZ2c9OTAwMSxBLmFuZ2JyYWNrZXRyaWdodEJpZz05MDAyLEEuYW5nYnJhY2tldHJpZ2h0YmlnPTkwMDIsQS5hbmdicmFja2V0cmlnaHRCaWdnPTkwMDIsQS5hbmdicmFja2V0cmlnaHRiaWdnPTkwMDIsQS5hcnJvd2hvb2tsZWZ0PTg2MTgsQS5hcnJvd2hvb2tyaWdodD04NjE3LEEuYXJyb3dsZWZ0dG9waGFsZj04NjM2LEEuYXJyb3dsZWZ0Ym90aGFsZj04NjM3LEEuYXJyb3dub3J0aGVhc3Q9ODU5OSxBLmFycm93bm9ydGh3ZXN0PTg1OTgsQS5hcnJvd3JpZ2h0dG9waGFsZj04NjQwLEEuYXJyb3dyaWdodGJvdGhhbGY9ODY0MSxBLmFycm93c291dGhlYXN0PTg2MDAsQS5hcnJvd3NvdXRod2VzdD04NjAxLEEuYmFja3NsYXNoYmlnPTg3MjYsQS5iYWNrc2xhc2hCaWc9ODcyNixBLmJhY2tzbGFzaEJpZ2c9ODcyNixBLmJhY2tzbGFzaGJpZ2c9ODcyNixBLmJhcmRibD04MjE0LEEuYnJhY2VodGlwZG93bmxlZnQ9NjUwNzksQS5icmFjZWh0aXBkb3ducmlnaHQ9NjUwNzksQS5icmFjZWh0aXB1cGxlZnQ9NjUwODAsQS5icmFjZWh0aXB1cHJpZ2h0PTY1MDgwLEEuYnJhY2VsZWZ0QmlnPTEyMyxBLmJyYWNlbGVmdGJpZz0xMjMsQS5icmFjZWxlZnRiaWdnPTEyMyxBLmJyYWNlbGVmdEJpZ2c9MTIzLEEuYnJhY2VyaWdodEJpZz0xMjUsQS5icmFjZXJpZ2h0YmlnPTEyNSxBLmJyYWNlcmlnaHRiaWdnPTEyNSxBLmJyYWNlcmlnaHRCaWdnPTEyNSxBLmJyYWNrZXRsZWZ0YmlnPTkxLEEuYnJhY2tldGxlZnRCaWc9OTEsQS5icmFja2V0bGVmdGJpZ2c9OTEsQS5icmFja2V0bGVmdEJpZ2c9OTEsQS5icmFja2V0cmlnaHRCaWc9OTMsQS5icmFja2V0cmlnaHRiaWc9OTMsQS5icmFja2V0cmlnaHRiaWdnPTkzLEEuYnJhY2tldHJpZ2h0QmlnZz05MyxBLmNlaWxpbmdsZWZ0YmlnPTg5NjgsQS5jZWlsaW5nbGVmdEJpZz04OTY4LEEuY2VpbGluZ2xlZnRCaWdnPTg5NjgsQS5jZWlsaW5nbGVmdGJpZ2c9ODk2OCxBLmNlaWxpbmdyaWdodGJpZz04OTY5LEEuY2VpbGluZ3JpZ2h0QmlnPTg5NjksQS5jZWlsaW5ncmlnaHRiaWdnPTg5NjksQS5jZWlsaW5ncmlnaHRCaWdnPTg5NjksQS5jaXJjbGVkb3RkaXNwbGF5PTg4NTcsQS5jaXJjbGVkb3R0ZXh0PTg4NTcsQS5jaXJjbGVtdWx0aXBseWRpc3BsYXk9ODg1NSxBLmNpcmNsZW11bHRpcGx5dGV4dD04ODU1LEEuY2lyY2xlcGx1c2Rpc3BsYXk9ODg1MyxBLmNpcmNsZXBsdXN0ZXh0PTg4NTMsQS5jb250aW50ZWdyYWxkaXNwbGF5PTg3NTAsQS5jb250aW50ZWdyYWx0ZXh0PTg3NTAsQS5jb3Byb2R1Y3RkaXNwbGF5PTg3MjAsQS5jb3Byb2R1Y3R0ZXh0PTg3MjAsQS5mbG9vcmxlZnRCaWc9ODk3MCxBLmZsb29ybGVmdGJpZz04OTcwLEEuZmxvb3JsZWZ0YmlnZz04OTcwLEEuZmxvb3JsZWZ0QmlnZz04OTcwLEEuZmxvb3JyaWdodGJpZz04OTcxLEEuZmxvb3JyaWdodEJpZz04OTcxLEEuZmxvb3JyaWdodEJpZ2c9ODk3MSxBLmZsb29ycmlnaHRiaWdnPTg5NzEsQS5oYXR3aWRlPTc3MCxBLmhhdHdpZGVyPTc3MCxBLmhhdHdpZGVzdD03NzAsQS5pbnRlcmNhbD03NDg4LEEuaW50ZWdyYWxkaXNwbGF5PTg3NDcsQS5pbnRlZ3JhbHRleHQ9ODc0NyxBLmludGVyc2VjdGlvbmRpc3BsYXk9ODg5OCxBLmludGVyc2VjdGlvbnRleHQ9ODg5OCxBLmxvZ2ljYWxhbmRkaXNwbGF5PTg3NDMsQS5sb2dpY2FsYW5kdGV4dD04NzQzLEEubG9naWNhbG9yZGlzcGxheT04NzQ0LEEubG9naWNhbG9ydGV4dD04NzQ0LEEucGFyZW5sZWZ0QmlnPTQwLEEucGFyZW5sZWZ0YmlnPTQwLEEucGFyZW5sZWZ0QmlnZz00MCxBLnBhcmVubGVmdGJpZ2c9NDAsQS5wYXJlbnJpZ2h0QmlnPTQxLEEucGFyZW5yaWdodGJpZz00MSxBLnBhcmVucmlnaHRCaWdnPTQxLEEucGFyZW5yaWdodGJpZ2c9NDEsQS5wcmltZT04MjQyLEEucHJvZHVjdGRpc3BsYXk9ODcxOSxBLnByb2R1Y3R0ZXh0PTg3MTksQS5yYWRpY2FsYmlnPTg3MzAsQS5yYWRpY2FsQmlnPTg3MzAsQS5yYWRpY2FsQmlnZz04NzMwLEEucmFkaWNhbGJpZ2c9ODczMCxBLnJhZGljYWxidD04NzMwLEEucmFkaWNhbHRwPTg3MzAsQS5yYWRpY2FsdmVydGV4PTg3MzAsQS5zbGFzaGJpZz00NyxBLnNsYXNoQmlnPTQ3LEEuc2xhc2hCaWdnPTQ3LEEuc2xhc2hiaWdnPTQ3LEEuc3VtbWF0aW9uZGlzcGxheT04NzIxLEEuc3VtbWF0aW9udGV4dD04NzIxLEEudGlsZGV3aWRlPTczMixBLnRpbGRld2lkZXI9NzMyLEEudGlsZGV3aWRlc3Q9NzMyLEEudW5pb25kaXNwbGF5PTg4OTksQS51bmlvbm11bHRpZGlzcGxheT04ODQ2LEEudW5pb25tdWx0aXRleHQ9ODg0NixBLnVuaW9uc3FkaXNwbGF5PTg4NTIsQS51bmlvbnNxdGV4dD04ODUyLEEudW5pb250ZXh0PTg4OTksQS52ZXh0ZW5kZG91YmxlPTg3NDEsQS52ZXh0ZW5kc2luZ2xlPTg3Mzl9KSksZ2E9YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9MzIsQS5hMT05OTg1LEEuYTI9OTk4NixBLmEyMDI9OTk4NyxBLmEzPTk5ODgsQS5hND05NzQyLEEuYTU9OTk5MCxBLmExMTk9OTk5MSxBLmExMTg9OTk5MixBLmExMTc9OTk5MyxBLmExMT05NzU1LEEuYTEyPTk3NTgsQS5hMTM9OTk5NixBLmExND05OTk3LEEuYTE1PTk5OTgsQS5hMTY9OTk5OSxBLmExMDU9MWU0LEEuYTE3PTEwMDAxLEEuYTE4PTEwMDAyLEEuYTE5PTEwMDAzLEEuYTIwPTEwMDA0LEEuYTIxPTEwMDA1LEEuYTIyPTEwMDA2LEEuYTIzPTEwMDA3LEEuYTI0PTEwMDA4LEEuYTI1PTEwMDA5LEEuYTI2PTEwMDEwLEEuYTI3PTEwMDExLEEuYTI4PTEwMDEyLEEuYTY9MTAwMTMsQS5hNz0xMDAxNCxBLmE4PTEwMDE1LEEuYTk9MTAwMTYsQS5hMTA9MTAwMTcsQS5hMjk9MTAwMTgsQS5hMzA9MTAwMTksQS5hMzE9MTAwMjAsQS5hMzI9MTAwMjEsQS5hMzM9MTAwMjIsQS5hMzQ9MTAwMjMsQS5hMzU9OTczMyxBLmEzNj0xMDAyNSxBLmEzNz0xMDAyNixBLmEzOD0xMDAyNyxBLmEzOT0xMDAyOCxBLmE0MD0xMDAyOSxBLmE0MT0xMDAzMCxBLmE0Mj0xMDAzMSxBLmE0Mz0xMDAzMixBLmE0ND0xMDAzMyxBLmE0NT0xMDAzNCxBLmE0Nj0xMDAzNSxBLmE0Nz0xMDAzNixBLmE0OD0xMDAzNyxBLmE0OT0xMDAzOCxBLmE1MD0xMDAzOSxBLmE1MT0xMDA0MCxBLmE1Mj0xMDA0MSxBLmE1Mz0xMDA0MixBLmE1ND0xMDA0MyxBLmE1NT0xMDA0NCxBLmE1Nj0xMDA0NSxBLmE1Nz0xMDA0NixBLmE1OD0xMDA0NyxBLmE1OT0xMDA0OCxBLmE2MD0xMDA0OSxBLmE2MT0xMDA1MCxBLmE2Mj0xMDA1MSxBLmE2Mz0xMDA1MixBLmE2ND0xMDA1MyxBLmE2NT0xMDA1NCxBLmE2Nj0xMDA1NSxBLmE2Nz0xMDA1NixBLmE2OD0xMDA1NyxBLmE2OT0xMDA1OCxBLmE3MD0xMDA1OSxBLmE3MT05Njc5LEEuYTcyPTEwMDYxLEEuYTczPTk2MzIsQS5hNzQ9MTAwNjMsQS5hMjAzPTEwMDY0LEEuYTc1PTEwMDY1LEEuYTIwND0xMDA2NixBLmE3Nj05NjUwLEEuYTc3PTk2NjAsQS5hNzg9OTY3MCxBLmE3OT0xMDA3MCxBLmE4MT05Njg3LEEuYTgyPTEwMDcyLEEuYTgzPTEwMDczLEEuYTg0PTEwMDc0LEEuYTk3PTEwMDc1LEEuYTk4PTEwMDc2LEEuYTk5PTEwMDc3LEEuYTEwMD0xMDA3OCxBLmExMDE9MTAwODEsQS5hMTAyPTEwMDgyLEEuYTEwMz0xMDA4MyxBLmExMDQ9MTAwODQsQS5hMTA2PTEwMDg1LEEuYTEwNz0xMDA4NixBLmExMDg9MTAwODcsQS5hMTEyPTk4MjcsQS5hMTExPTk4MzAsQS5hMTEwPTk4MjksQS5hMTA5PTk4MjQsQS5hMTIwPTkzMTIsQS5hMTIxPTkzMTMsQS5hMTIyPTkzMTQsQS5hMTIzPTkzMTUsQS5hMTI0PTkzMTYsQS5hMTI1PTkzMTcsQS5hMTI2PTkzMTgsQS5hMTI3PTkzMTksQS5hMTI4PTkzMjAsQS5hMTI5PTkzMjEsQS5hMTMwPTEwMTAyLEEuYTEzMT0xMDEwMyxBLmExMzI9MTAxMDQsQS5hMTMzPTEwMTA1LEEuYTEzND0xMDEwNixBLmExMzU9MTAxMDcsQS5hMTM2PTEwMTA4LEEuYTEzNz0xMDEwOSxBLmExMzg9MTAxMTAsQS5hMTM5PTEwMTExLEEuYTE0MD0xMDExMixBLmExNDE9MTAxMTMsQS5hMTQyPTEwMTE0LEEuYTE0Mz0xMDExNSxBLmExNDQ9MTAxMTYsQS5hMTQ1PTEwMTE3LEEuYTE0Nj0xMDExOCxBLmExNDc9MTAxMTksQS5hMTQ4PTEwMTIwLEEuYTE0OT0xMDEyMSxBLmExNTA9MTAxMjIsQS5hMTUxPTEwMTIzLEEuYTE1Mj0xMDEyNCxBLmExNTM9MTAxMjUsQS5hMTU0PTEwMTI2LEEuYTE1NT0xMDEyNyxBLmExNTY9MTAxMjgsQS5hMTU3PTEwMTI5LEEuYTE1OD0xMDEzMCxBLmExNTk9MTAxMzEsQS5hMTYwPTEwMTMyLEEuYTE2MT04NTk0LEEuYTE2Mz04NTk2LEEuYTE2ND04NTk3LEEuYTE5Nj0xMDEzNixBLmExNjU9MTAxMzcsQS5hMTkyPTEwMTM4LEEuYTE2Nj0xMDEzOSxBLmExNjc9MTAxNDAsQS5hMTY4PTEwMTQxLEEuYTE2OT0xMDE0MixBLmExNzA9MTAxNDMsQS5hMTcxPTEwMTQ0LEEuYTE3Mj0xMDE0NSxBLmExNzM9MTAxNDYsQS5hMTYyPTEwMTQ3LEEuYTE3ND0xMDE0OCxBLmExNzU9MTAxNDksQS5hMTc2PTEwMTUwLEEuYTE3Nz0xMDE1MSxBLmExNzg9MTAxNTIsQS5hMTc5PTEwMTUzLEEuYTE5Mz0xMDE1NCxBLmExODA9MTAxNTUsQS5hMTk5PTEwMTU2LEEuYTE4MT0xMDE1NyxBLmEyMDA9MTAxNTgsQS5hMTgyPTEwMTU5LEEuYTIwMT0xMDE2MSxBLmExODM9MTAxNjIsQS5hMTg0PTEwMTYzLEEuYTE5Nz0xMDE2NCxBLmExODU9MTAxNjUsQS5hMTk0PTEwMTY2LEEuYTE5OD0xMDE2NyxBLmExODY9MTAxNjgsQS5hMTk1PTEwMTY5LEEuYTE4Nz0xMDE3MCxBLmExODg9MTAxNzEsQS5hMTg5PTEwMTcyLEEuYTE5MD0xMDE3MyxBLmExOTE9MTAxNzQsQS5hODk9MTAwODgsQS5hOTA9MTAwODksQS5hOTM9MTAwOTAsQS5hOTQ9MTAwOTEsQS5hOTE9MTAwOTIsQS5hOTI9MTAwOTMsQS5hMjA1PTEwMDk0LEEuYTg1PTEwMDk1LEEuYTIwNj0xMDA5NixBLmE4Nj0xMDA5NyxBLmE4Nz0xMDA5OCxBLmE4OD0xMDA5OSxBLmE5NT0xMDEwMCxBLmE5Nj0xMDEwMSxBWyIubm90ZGVmIl09MH0pKSxvYT1iQSgoZnVuY3Rpb24oQSl7QVs2MzcyMV09MTY5LEFbNjMxOTNdPTE2OSxBWzYzNzIwXT0xNzQsQVs2MzE5NF09MTc0LEFbNjM3MjJdPTg0ODIsQVs2MzE5NV09ODQ4MixBWzYzNzI5XT05MTI3LEFbNjM3MzBdPTkxMjgsQVs2MzczMV09OTEyOSxBWzYzNzQwXT05MTMxLEFbNjM3NDFdPTkxMzIsQVs2Mzc0Ml09OTEzMyxBWzYzNzI2XT05MTIxLEFbNjM3MjddPTkxMjIsQVs2MzcyOF09OTEyMyxBWzYzNzM3XT05MTI0LEFbNjM3MzhdPTkxMjUsQVs2MzczOV09OTEyNixBWzYzNzIzXT05MTE1LEFbNjM3MjRdPTkxMTYsQVs2MzcyNV09OTExNyxBWzYzNzM0XT05MTE4LEFbNjM3MzVdPTkxMTksQVs2MzczNl09OTEyMH0pKTtmdW5jdGlvbiBJYShBLGUpe2xldCB0PWVbQV07aWYodm9pZCAwIT09dClyZXR1cm4gdDtpZighQSlyZXR1cm4tMTtpZigidSI9PT1BWzBdKXtjb25zdCBlPUEubGVuZ3RoO2xldCBpO2lmKDc9PT1lJiYibiI9PT1BWzFdJiYiaSI9PT1BWzJdKWk9QS5zdWJzdHJpbmcoMyk7ZWxzZXtpZighKGU+PTUmJmU8PTcpKXJldHVybi0xO2k9QS5zdWJzdHJpbmcoMSl9aWYoaT09PWkudG9VcHBlckNhc2UoKSYmKHQ9cGFyc2VJbnQoaSwxNiksdD49MCkpcmV0dXJuIHR9cmV0dXJuLTF9Y29uc3QgY2E9W1swLDEyN10sWzEyOCwyNTVdLFsyNTYsMzgzXSxbMzg0LDU5MV0sWzU5Miw2ODcsNzQyNCw3NTUxLDc1NTIsNzYxNV0sWzY4OCw3NjcsNDI3NTIsNDI3ODNdLFs3NjgsODc5LDc2MTYsNzY3OV0sWzg4MCwxMDIzXSxbMTEzOTIsMTE1MTldLFsxMDI0LDEyNzksMTI4MCwxMzI3LDExNzQ0LDExNzc1LDQyNTYwLDQyNjU1XSxbMTMyOCwxNDIzXSxbMTQyNCwxNTM1XSxbNDIyNDAsNDI1NTldLFsxNTM2LDE3OTEsMTg3MiwxOTE5XSxbMTk4NCwyMDQ3XSxbMjMwNCwyNDMxXSxbMjQzMiwyNTU5XSxbMjU2MCwyNjg3XSxbMjY4OCwyODE1XSxbMjgxNiwyOTQzXSxbMjk0NCwzMDcxXSxbMzA3MiwzMTk5XSxbMzIwMCwzMzI3XSxbMzMyOCwzNDU1XSxbMzU4NCwzNzExXSxbMzcxMiwzODM5XSxbNDI1Niw0MzUxLDExNTIwLDExNTY3XSxbNjkxMiw3MDM5XSxbNDM1Miw0NjA3XSxbNzY4MCw3OTM1LDExMzYwLDExMzkxLDQyNzg0LDQzMDA3XSxbNzkzNiw4MTkxXSxbODE5Miw4MzAzLDExNzc2LDExOTAzXSxbODMwNCw4MzUxXSxbODM1Miw4Mzk5XSxbODQwMCw4NDQ3XSxbODQ0OCw4NTI3XSxbODUyOCw4NTkxXSxbODU5Miw4NzAzLDEwMjI0LDEwMjM5LDEwNDk2LDEwNjIzLDExMDA4LDExMjYzXSxbODcwNCw4OTU5LDEwNzUyLDExMDA3LDEwMTc2LDEwMjIzLDEwNjI0LDEwNzUxXSxbODk2MCw5MjE1XSxbOTIxNiw5Mjc5XSxbOTI4MCw5MzExXSxbOTMxMiw5NDcxXSxbOTQ3Miw5NTk5XSxbOTYwMCw5NjMxXSxbOTYzMiw5NzI3XSxbOTcyOCw5OTgzXSxbOTk4NCwxMDE3NV0sWzEyMjg4LDEyMzUxXSxbMTIzNTIsMTI0NDddLFsxMjQ0OCwxMjU0MywxMjc4NCwxMjc5OV0sWzEyNTQ0LDEyNTkxLDEyNzA0LDEyNzM1XSxbMTI1OTIsMTI2ODddLFs0MzA3Miw0MzEzNV0sWzEyODAwLDEzMDU1XSxbMTMwNTYsMTMzMTFdLFs0NDAzMiw1NTIxNV0sWzU1Mjk2LDU3MzQzXSxbNjc4NDAsNjc4NzFdLFsxOTk2OCw0MDk1OSwxMTkwNCwxMjAzMSwxMjAzMiwxMjI1NSwxMjI3MiwxMjI4NywxMzMxMiwxOTkwMywxMzEwNzIsMTczNzkxLDEyNjg4LDEyNzAzXSxbNTczNDQsNjM3NDNdLFsxMjczNiwxMjc4Myw2Mzc0NCw2NDI1NSwxOTQ1NjAsMTk1MTAzXSxbNjQyNTYsNjQzMzVdLFs2NDMzNiw2NTAyM10sWzY1MDU2LDY1MDcxXSxbNjUwNDAsNjUwNTVdLFs2NTEwNCw2NTEzNV0sWzY1MTM2LDY1Mjc5XSxbNjUyODAsNjU1MTldLFs2NTUyMCw2NTUzNV0sWzM4NDAsNDA5NV0sWzE3OTIsMTg3MV0sWzE5MjAsMTk4M10sWzM0NTYsMzU4M10sWzQwOTYsNDI1NV0sWzQ2MDgsNDk5MSw0OTkyLDUwMjMsMTE2NDgsMTE3NDNdLFs1MDI0LDUxMTldLFs1MTIwLDU3NTldLFs1NzYwLDU3OTFdLFs1NzkyLDU4ODddLFs2MDE2LDYxNDNdLFs2MTQ0LDYzMTldLFsxMDI0MCwxMDQ5NV0sWzQwOTYwLDQyMTI3XSxbNTg4OCw1OTE5LDU5MjAsNTk1MSw1OTUyLDU5ODMsNTk4NCw2MDE1XSxbNjYzMDQsNjYzNTFdLFs2NjM1Miw2NjM4M10sWzY2NTYwLDY2NjM5XSxbMTE4Nzg0LDExOTAzOSwxMTkwNDAsMTE5Mjk1LDExOTI5NiwxMTkzNzVdLFsxMTk4MDgsMTIwODMxXSxbMTA0NDQ4MCwxMDQ4NTczXSxbNjUwMjQsNjUwMzksOTE3NzYwLDkxNzk5OV0sWzkxNzUwNCw5MTc2MzFdLFs2NDAwLDY0NzldLFs2NDgwLDY1MjddLFs2NTI4LDY2MjNdLFs2NjU2LDY2ODddLFsxMTI2NCwxMTM1OV0sWzExNTY4LDExNjQ3XSxbMTk5MDQsMTk5NjddLFs0MzAwOCw0MzA1NV0sWzY1NTM2LDY1NjYzLDY1NjY0LDY1NzkxLDY1NzkyLDY1ODU1XSxbNjU4NTYsNjU5MzVdLFs2NjQzMiw2NjQ2M10sWzY2NDY0LDY2NTI3XSxbNjY2NDAsNjY2ODddLFs2NjY4OCw2NjczNV0sWzY3NTg0LDY3NjQ3XSxbNjgwOTYsNjgxOTFdLFsxMTk1NTIsMTE5NjQ3XSxbNzM3MjgsNzQ3NTEsNzQ3NTIsNzQ4NzldLFsxMTk2NDgsMTE5Njc5XSxbNzA0MCw3MTAzXSxbNzE2OCw3MjQ3XSxbNzI0OCw3Mjk1XSxbNDMxMzYsNDMyMzFdLFs0MzI2NCw0MzMxMV0sWzQzMzEyLDQzMzU5XSxbNDM1MjAsNDM2MTVdLFs2NTkzNiw2NTk5OV0sWzY2ZTMsNjYwNDddLFs2NjIwOCw2NjI3MSw2NjE3Niw2NjIwNyw2Nzg3Miw2NzkwM10sWzEyNzAyNCwxMjcxMzUsMTI2OTc2LDEyNzAyM11dO2Z1bmN0aW9uIGhhKEEsZT0tMSl7aWYoLTEhPT1lKXtjb25zdCB0PWNhW2VdO2ZvcihsZXQgaT0wLGE9dC5sZW5ndGg7aTxhO2krPTIpaWYoQT49dFtpXSYmQTw9dFtpKzFdKXJldHVybiBlfWZvcihsZXQgZT0wLHQ9Y2EubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9Y2FbZV07Zm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSs9MilpZihBPj10W2ldJiZBPD10W2krMV0pcmV0dXJuIGV9cmV0dXJuLTF9Y29uc3QgQ2E9bmV3IFJlZ0V4cCgiXihcXHMpfChcXHB7TW59KXwoXFxwe0NmfSkkIiwidSIpLEJhPW5ldyBNYXAsbGE9ITAsUWE9WyIubm90ZGVmIiwiLm51bGwiLCJub25tYXJraW5ncmV0dXJuIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJOdGlsZGUiLCJPZGllcmVzaXMiLCJVZGllcmVzaXMiLCJhYWN1dGUiLCJhZ3JhdmUiLCJhY2lyY3VtZmxleCIsImFkaWVyZXNpcyIsImF0aWxkZSIsImFyaW5nIiwiY2NlZGlsbGEiLCJlYWN1dGUiLCJlZ3JhdmUiLCJlY2lyY3VtZmxleCIsImVkaWVyZXNpcyIsImlhY3V0ZSIsImlncmF2ZSIsImljaXJjdW1mbGV4IiwiaWRpZXJlc2lzIiwibnRpbGRlIiwib2FjdXRlIiwib2dyYXZlIiwib2NpcmN1bWZsZXgiLCJvZGllcmVzaXMiLCJvdGlsZGUiLCJ1YWN1dGUiLCJ1Z3JhdmUiLCJ1Y2lyY3VtZmxleCIsInVkaWVyZXNpcyIsImRhZ2dlciIsImRlZ3JlZSIsImNlbnQiLCJzdGVybGluZyIsInNlY3Rpb24iLCJidWxsZXQiLCJwYXJhZ3JhcGgiLCJnZXJtYW5kYmxzIiwicmVnaXN0ZXJlZCIsImNvcHlyaWdodCIsInRyYWRlbWFyayIsImFjdXRlIiwiZGllcmVzaXMiLCJub3RlcXVhbCIsIkFFIiwiT3NsYXNoIiwiaW5maW5pdHkiLCJwbHVzbWludXMiLCJsZXNzZXF1YWwiLCJncmVhdGVyZXF1YWwiLCJ5ZW4iLCJtdSIsInBhcnRpYWxkaWZmIiwic3VtbWF0aW9uIiwicHJvZHVjdCIsInBpIiwiaW50ZWdyYWwiLCJvcmRmZW1pbmluZSIsIm9yZG1hc2N1bGluZSIsIk9tZWdhIiwiYWUiLCJvc2xhc2giLCJxdWVzdGlvbmRvd24iLCJleGNsYW1kb3duIiwibG9naWNhbG5vdCIsInJhZGljYWwiLCJmbG9yaW4iLCJhcHByb3hlcXVhbCIsIkRlbHRhIiwiZ3VpbGxlbW90bGVmdCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJub25icmVha2luZ3NwYWNlIiwiQWdyYXZlIiwiQXRpbGRlIiwiT3RpbGRlIiwiT0UiLCJvZSIsImVuZGFzaCIsImVtZGFzaCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwiZGl2aWRlIiwibG96ZW5nZSIsInlkaWVyZXNpcyIsIllkaWVyZXNpcyIsImZyYWN0aW9uIiwiY3VycmVuY3kiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInBlcnRob3VzYW5kIiwiQWNpcmN1bWZsZXgiLCJFY2lyY3VtZmxleCIsIkFhY3V0ZSIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJhcHBsZSIsIk9ncmF2ZSIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWdyYXZlIiwiZG90bGVzc2kiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJMc2xhc2giLCJsc2xhc2giLCJTY2Fyb24iLCJzY2Fyb24iLCJaY2Fyb24iLCJ6Y2Fyb24iLCJicm9rZW5iYXIiLCJFdGgiLCJldGgiLCJZYWN1dGUiLCJ5YWN1dGUiLCJUaG9ybiIsInRob3JuIiwibWludXMiLCJtdWx0aXBseSIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwib25laGFsZiIsIm9uZXF1YXJ0ZXIiLCJ0aHJlZXF1YXJ0ZXJzIiwiZnJhbmMiLCJHYnJldmUiLCJnYnJldmUiLCJJZG90YWNjZW50IiwiU2NlZGlsbGEiLCJzY2VkaWxsYSIsIkNhY3V0ZSIsImNhY3V0ZSIsIkNjYXJvbiIsImNjYXJvbiIsImRjcm9hdCJdO2Z1bmN0aW9uIEVhKEEsZSl7aWYodm9pZCAwIT09ZVtBXSlyZXR1cm4gQTtjb25zdCB0PUlhKEEsZSk7aWYoLTEhPT10KWZvcihjb25zdCBBIGluIGUpaWYoZVtBXT09PXQpcmV0dXJuIEE7cmV0dXJuIHgoIlVuYWJsZSB0byByZWNvdmVyIGEgc3RhbmRhcmQgZ2x5cGggbmFtZSBmb3I6ICIrQSksQX1mdW5jdGlvbiB1YShBLGUsdCl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhLHMsbjtjb25zdCByPSEhKDQmQS5mbGFncyk7aWYoQS5pc0ludGVybmFsRm9udClmb3Iobj1lLHM9MDtzPG4ubGVuZ3RoO3MrKylhPXQuaW5kZXhPZihuW3NdKSxpW3NdPWE+PTA/YTowO2Vsc2UgaWYoQS5iYXNlRW5jb2RpbmdOYW1lKWZvcihuPUtpKEEuYmFzZUVuY29kaW5nTmFtZSkscz0wO3M8bi5sZW5ndGg7cysrKWE9dC5pbmRleE9mKG5bc10pLGlbc109YT49MD9hOjA7ZWxzZSBpZihyKWZvcihzIGluIGUpaVtzXT1lW3NdO2Vsc2UgZm9yKG49Smkscz0wO3M8bi5sZW5ndGg7cysrKWE9dC5pbmRleE9mKG5bc10pLGlbc109YT49MD9hOjA7Y29uc3QgZz1BLmRpZmZlcmVuY2VzO2xldCBvO2lmKGcpZm9yKHMgaW4gZyl7Y29uc3QgQT1nW3NdO2lmKGE9dC5pbmRleE9mKEEpLC0xPT09YSl7b3x8KG89cmEoKSk7Y29uc3QgZT1FYShBLG8pO2UhPT1BJiYoYT10LmluZGV4T2YoZSkpfWlbc109YT49MD9hOjB9cmV0dXJuIGl9ZnVuY3Rpb24gZGEoQSl7cmV0dXJuIEEucmVwbGFjZUFsbCgvWyxfXS9nLCItIikucmVwbGFjZUFsbCgvXHMvZywiIil9Y29uc3QgZmE9YkEoKEE9PntBWzgyMTFdPTY1MDc0LEFbODIxMl09NjUwNzMsQVs4MjI5XT02NTA3MixBWzgyMzBdPTY1MDQ5LEFbMTIyODldPTY1MDQxLEFbMTIyOTBdPTY1MDQyLEFbMTIyOTZdPTY1MDg3LEFbMTIyOTddPTY1MDg4LEFbMTIyOThdPTY1MDg1LEFbMTIyOTldPTY1MDg2LEFbMTIzMDBdPTY1MDg5LEFbMTIzMDFdPTY1MDkwLEFbMTIzMDJdPTY1MDkxLEFbMTIzMDNdPTY1MDkyLEFbMTIzMDRdPTY1MDgzLEFbMTIzMDVdPTY1MDg0LEFbMTIzMDhdPTY1MDgxLEFbMTIzMDldPTY1MDgyLEFbMTIzMTBdPTY1MDQ3LEFbMTIzMTFdPTY1MDQ4LEFbNjUxMDNdPTY1MDc2LEFbNjUyODFdPTY1MDQ1LEFbNjUyODhdPTY1MDc3LEFbNjUyODldPTY1MDc4LEFbNjUyOTJdPTY1MDQwLEFbNjUzMDZdPTY1MDQzLEFbNjUzMDddPTY1MDQ0LEFbNjUzMTFdPTY1MDQ2LEFbNjUzMzldPTY1MDk1LEFbNjUzNDFdPTY1MDk2LEFbNjUzNDNdPTY1MDc1LEFbNjUzNzFdPTY1MDc5LEFbNjUzNzNdPTY1MDgwfSkpLHBhPWJBKChmdW5jdGlvbihBKXtBWyJUaW1lcy1Sb21hbiJdPSJUaW1lcy1Sb21hbiIsQS5IZWx2ZXRpY2E9IkhlbHZldGljYSIsQS5Db3VyaWVyPSJDb3VyaWVyIixBLlN5bWJvbD0iU3ltYm9sIixBWyJUaW1lcy1Cb2xkIl09IlRpbWVzLUJvbGQiLEFbIkhlbHZldGljYS1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJDb3VyaWVyLUJvbGQiXT0iQ291cmllci1Cb2xkIixBLlphcGZEaW5nYmF0cz0iWmFwZkRpbmdiYXRzIixBWyJUaW1lcy1JdGFsaWMiXT0iVGltZXMtSXRhbGljIixBWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQVsiQ291cmllci1PYmxpcXVlIl09IkNvdXJpZXItT2JsaXF1ZSIsQVsiVGltZXMtQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIixBWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJDb3VyaWVyLUJvbGRPYmxpcXVlIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiLEEuQXJpYWxOYXJyb3c9IkhlbHZldGljYSIsQVsiQXJpYWxOYXJyb3ctQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWxOYXJyb3ctQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiLEFbIkFyaWFsTmFycm93LUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5BcmlhbEJsYWNrPSJIZWx2ZXRpY2EiLEFbIkFyaWFsQmxhY2stQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWxCbGFjay1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQXJpYWxCbGFjay1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEFbIkFyaWFsLUJsYWNrIl09IkhlbHZldGljYSIsQVsiQXJpYWwtQmxhY2stQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWwtQmxhY2stQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiLEFbIkFyaWFsLUJsYWNrLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5BcmlhbD0iSGVsdmV0aWNhIixBWyJBcmlhbC1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJBcmlhbC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQXJpYWwtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIixBLkFyaWFsTVQ9IkhlbHZldGljYSIsQVsiQXJpYWwtQm9sZEl0YWxpY01UIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQXJpYWwtQm9sZE1UIl09IkhlbHZldGljYS1Cb2xkIixBWyJBcmlhbC1JdGFsaWNNVCJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQVsiQXJpYWwtQm9sZEl0YWxpY01ULUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJBcmlhbC1Cb2xkTVQtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWwtSXRhbGljTVQtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIixBLkFyaWFsVW5pY29kZU1TPSJIZWx2ZXRpY2EiLEFbIkFyaWFsVW5pY29kZU1TLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiLEFbIkFyaWFsVW5pY29kZU1TLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJBcmlhbFVuaWNvZGVNUy1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEFbIkNvdXJpZXItQm9sZEl0YWxpYyJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIixBWyJDb3VyaWVyLUl0YWxpYyJdPSJDb3VyaWVyLU9ibGlxdWUiLEEuQ291cmllck5ldz0iQ291cmllciIsQVsiQ291cmllck5ldy1Cb2xkIl09IkNvdXJpZXItQm9sZCIsQVsiQ291cmllck5ldy1Cb2xkSXRhbGljIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiLEFbIkNvdXJpZXJOZXctSXRhbGljIl09IkNvdXJpZXItT2JsaXF1ZSIsQVsiQ291cmllck5ld1BTLUJvbGRJdGFsaWNNVCJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIixBWyJDb3VyaWVyTmV3UFMtQm9sZE1UIl09IkNvdXJpZXItQm9sZCIsQVsiQ291cmllck5ld1BTLUl0YWxpY01UIl09IkNvdXJpZXItT2JsaXF1ZSIsQS5Db3VyaWVyTmV3UFNNVD0iQ291cmllciIsQVsiSGVsdmV0aWNhLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJIZWx2ZXRpY2EtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIixBWyJTeW1ib2wtQm9sZCJdPSJTeW1ib2wiLEFbIlN5bWJvbC1Cb2xkSXRhbGljIl09IlN5bWJvbCIsQVsiU3ltYm9sLUl0YWxpYyJdPSJTeW1ib2wiLEEuVGltZXNOZXdSb21hbj0iVGltZXMtUm9tYW4iLEFbIlRpbWVzTmV3Um9tYW4tQm9sZCJdPSJUaW1lcy1Cb2xkIixBWyJUaW1lc05ld1JvbWFuLUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyIsQVsiVGltZXNOZXdSb21hbi1JdGFsaWMiXT0iVGltZXMtSXRhbGljIixBLlRpbWVzTmV3Um9tYW5QUz0iVGltZXMtUm9tYW4iLEFbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkIl09IlRpbWVzLUJvbGQiLEFbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkSXRhbGljIl09IlRpbWVzLUJvbGRJdGFsaWMiLEFbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkSXRhbGljTVQiXT0iVGltZXMtQm9sZEl0YWxpYyIsQVsiVGltZXNOZXdSb21hblBTLUJvbGRNVCJdPSJUaW1lcy1Cb2xkIixBWyJUaW1lc05ld1JvbWFuUFMtSXRhbGljIl09IlRpbWVzLUl0YWxpYyIsQVsiVGltZXNOZXdSb21hblBTLUl0YWxpY01UIl09IlRpbWVzLUl0YWxpYyIsQS5UaW1lc05ld1JvbWFuUFNNVD0iVGltZXMtUm9tYW4iLEFbIlRpbWVzTmV3Um9tYW5QU01ULUJvbGQiXT0iVGltZXMtQm9sZCIsQVsiVGltZXNOZXdSb21hblBTTVQtQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIixBWyJUaW1lc05ld1JvbWFuUFNNVC1JdGFsaWMiXT0iVGltZXMtSXRhbGljIn0pKSxtYT1iQSgoZnVuY3Rpb24oQSl7QS5Db3VyaWVyPSJGb3hpdEZpeGVkLnBmYiIsQVsiQ291cmllci1Cb2xkIl09IkZveGl0Rml4ZWRCb2xkLnBmYiIsQVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJGb3hpdEZpeGVkQm9sZEl0YWxpYy5wZmIiLEFbIkNvdXJpZXItT2JsaXF1ZSJdPSJGb3hpdEZpeGVkSXRhbGljLnBmYiIsQS5IZWx2ZXRpY2E9IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIixBWyJIZWx2ZXRpY2EtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiIsQVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIixBWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIixBWyJUaW1lcy1Sb21hbiJdPSJGb3hpdFNlcmlmLnBmYiIsQVsiVGltZXMtQm9sZCJdPSJGb3hpdFNlcmlmQm9sZC5wZmIiLEFbIlRpbWVzLUJvbGRJdGFsaWMiXT0iRm94aXRTZXJpZkJvbGRJdGFsaWMucGZiIixBWyJUaW1lcy1JdGFsaWMiXT0iRm94aXRTZXJpZkl0YWxpYy5wZmIiLEEuU3ltYm9sPSJGb3hpdFN5bWJvbC5wZmIiLEEuWmFwZkRpbmdiYXRzPSJGb3hpdERpbmdiYXRzLnBmYiIsQVsiTGliZXJhdGlvblNhbnMtUmVndWxhciJdPSJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiIsQVsiTGliZXJhdGlvblNhbnMtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiIsQVsiTGliZXJhdGlvblNhbnMtSXRhbGljIl09IkxpYmVyYXRpb25TYW5zLUl0YWxpYy50dGYiLEFbIkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiXT0iTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYy50dGYifSkpLHlhPWJBKChmdW5jdGlvbihBKXtBLkNhbGlicmk9IkhlbHZldGljYSIsQVsiQ2FsaWJyaS1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJDYWxpYnJpLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJDYWxpYnJpLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5DZW50dXJ5R290aGljPSJIZWx2ZXRpY2EiLEFbIkNlbnR1cnlHb3RoaWMtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQ2VudHVyeUdvdGhpYy1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQ2VudHVyeUdvdGhpYy1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEEuQ29taWNTYW5zTVM9IkNvbWljIFNhbnMgTVMiLEFbIkNvbWljU2Fuc01TLUJvbGQiXT0iQ29taWMgU2FucyBNUy1Cb2xkIixBWyJDb21pY1NhbnNNUy1Cb2xkSXRhbGljIl09IkNvbWljIFNhbnMgTVMtQm9sZEl0YWxpYyIsQVsiQ29taWNTYW5zTVMtSXRhbGljIl09IkNvbWljIFNhbnMgTVMtSXRhbGljIixBLkdpbGxTYW5zTVQ9IkhlbHZldGljYSIsQVsiR2lsbFNhbnNNVC1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJHaWxsU2Fuc01ULUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJHaWxsU2Fuc01ULUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5JbXBhY3Q9IkhlbHZldGljYSIsQVsiSXRjU3ltYm9sLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiLEFbIkl0Y1N5bWJvbC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiSXRjU3ltYm9sLUJvb2siXT0iSGVsdmV0aWNhIixBWyJJdGNTeW1ib2wtQm9va0l0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQVsiSXRjU3ltYm9sLU1lZGl1bSJdPSJIZWx2ZXRpY2EiLEFbIkl0Y1N5bWJvbC1NZWRpdW1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEEuTHVjaWRhQ29uc29sZT0iQ291cmllciIsQVsiTHVjaWRhQ29uc29sZS1Cb2xkIl09IkNvdXJpZXItQm9sZCIsQVsiTHVjaWRhQ29uc29sZS1Cb2xkSXRhbGljIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiLEFbIkx1Y2lkYUNvbnNvbGUtSXRhbGljIl09IkNvdXJpZXItT2JsaXF1ZSIsQVsiTHVjaWRhU2Fucy1EZW1pIl09IkhlbHZldGljYS1Cb2xkIixBWyJNUy1Hb3RoaWMiXT0iTVMgR290aGljIixBWyJNUy1Hb3RoaWMtQm9sZCJdPSJNUyBHb3RoaWMtQm9sZCIsQVsiTVMtR290aGljLUJvbGRJdGFsaWMiXT0iTVMgR290aGljLUJvbGRJdGFsaWMiLEFbIk1TLUdvdGhpYy1JdGFsaWMiXT0iTVMgR290aGljLUl0YWxpYyIsQVsiTVMtTWluY2hvIl09Ik1TIE1pbmNobyIsQVsiTVMtTWluY2hvLUJvbGQiXT0iTVMgTWluY2hvLUJvbGQiLEFbIk1TLU1pbmNoby1Cb2xkSXRhbGljIl09Ik1TIE1pbmNoby1Cb2xkSXRhbGljIixBWyJNUy1NaW5jaG8tSXRhbGljIl09Ik1TIE1pbmNoby1JdGFsaWMiLEFbIk1TLVBHb3RoaWMiXT0iTVMgUEdvdGhpYyIsQVsiTVMtUEdvdGhpYy1Cb2xkIl09Ik1TIFBHb3RoaWMtQm9sZCIsQVsiTVMtUEdvdGhpYy1Cb2xkSXRhbGljIl09Ik1TIFBHb3RoaWMtQm9sZEl0YWxpYyIsQVsiTVMtUEdvdGhpYy1JdGFsaWMiXT0iTVMgUEdvdGhpYy1JdGFsaWMiLEFbIk1TLVBNaW5jaG8iXT0iTVMgUE1pbmNobyIsQVsiTVMtUE1pbmNoby1Cb2xkIl09Ik1TIFBNaW5jaG8tQm9sZCIsQVsiTVMtUE1pbmNoby1Cb2xkSXRhbGljIl09Ik1TIFBNaW5jaG8tQm9sZEl0YWxpYyIsQVsiTVMtUE1pbmNoby1JdGFsaWMiXT0iTVMgUE1pbmNoby1JdGFsaWMiLEEuTnVwdGlhbFNjcmlwdD0iVGltZXMtSXRhbGljIixBLlNlZ29lVUlTeW1ib2w9IkhlbHZldGljYSJ9KSksd2E9YkEoKGZ1bmN0aW9uKEEpe0FbIkFkb2JlIEplbnNvbiJdPSEwLEFbIkFkb2JlIFRleHQiXT0hMCxBLkFsYmVydHVzPSEwLEEuQWxkdXM9ITAsQS5BbGV4YW5kcmlhPSEwLEEuQWxnZXJpYW49ITAsQVsiQW1lcmljYW4gVHlwZXdyaXRlciJdPSEwLEEuQW50aXF1YT0hMCxBLkFwZXg9ITAsQS5Bcm5vPSEwLEEuQXN0ZXI9ITAsQS5BdXJvcmE9ITAsQS5CYXNrZXJ2aWxsZT0hMCxBLkJlbGw9ITAsQS5CZW1ibz0hMCxBWyJCZW1ibyBTY2hvb2xib29rIl09ITAsQS5CZW5ndWlhdD0hMCxBWyJCZXJrZWxleSBPbGQgU3R5bGUiXT0hMCxBWyJCZXJuaGFyZCBNb2Rlcm4iXT0hMCxBWyJCZXJ0aG9sZCBDaXR5Il09ITAsQS5Cb2Rvbmk9ITAsQVsiQmF1ZXIgQm9kb25pIl09ITAsQVsiQm9vayBBbnRpcXVhIl09ITAsQS5Cb29rbWFuPSEwLEFbIkJvcmRlYXV4IFJvbWFuIl09ITAsQVsiQ2FsaWZvcm5pYW4gRkIiXT0hMCxBLkNhbGlzdG89ITAsQS5DYWx2ZXJ0PSEwLEEuQ2FwaXRhbHM9ITAsQS5DYW1icmlhPSEwLEEuQ2FydGllcj0hMCxBLkNhc2xvbj0hMCxBLkNhdHVsbD0hMCxBLkNlbnRhdXI9ITAsQVsiQ2VudHVyeSBPbGQgU3R5bGUiXT0hMCxBWyJDZW50dXJ5IFNjaG9vbGJvb2siXT0hMCxBLkNoYXBhcnJhbD0hMCxBWyJDaGFyaXMgU0lMIl09ITAsQS5DaGVsdGVuaGFtPSEwLEFbIkNob2xsYSBTbGFiIl09ITAsQS5DbGFyZW5kb249ITAsQS5DbGVhcmZhY2U9ITAsQS5Db2NoaW49ITAsQS5Db2xvbm5hPSEwLEFbIkNvbXB1dGVyIE1vZGVybiJdPSEwLEFbIkNvbmNyZXRlIFJvbWFuIl09ITAsQS5Db25zdGFudGlhPSEwLEFbIkNvb3BlciBCbGFjayJdPSEwLEEuQ29yb25hPSEwLEEuRWNvdHlwZT0hMCxBLkVneXB0aWVubmU9ITAsQS5FbGVwaGFudD0hMCxBLkV4Y2Vsc2lvcj0hMCxBLkZhaXJmaWVsZD0hMCxBWyJGRiBTY2FsYSJdPSEwLEEuRm9sa2FyZD0hMCxBLkZvb3RsaWdodD0hMCxBLkZyZWVTZXJpZj0hMCxBWyJGcml6IFF1YWRyYXRhIl09ITAsQS5HYXJhbW9uZD0hMCxBLkdlbnRpdW09ITAsQS5HZW9yZ2lhPSEwLEEuR2xvdWNlc3Rlcj0hMCxBWyJHb3VkeSBPbGQgU3R5bGUiXT0hMCxBWyJHb3VkeSBTY2hvb2xib29rIl09ITAsQVsiR291ZHkgUHJvIEZvbnQiXT0hMCxBLkdyYW5qb249ITAsQVsiR3VhcmRpYW4gRWd5cHRpYW4iXT0hMCxBLkhlYXRoZXI9ITAsQS5IZXJjdWxlcz0hMCxBWyJIaWdoIFRvd2VyIFRleHQiXT0hMCxBLkhpcm9zaGlnZT0hMCxBWyJIb2VmbGVyIFRleHQiXT0hMCxBWyJIdW1hbmEgU2VyaWYiXT0hMCxBLkltcHJpbnQ9ITAsQVsiSW9uaWMgTm8uIDUiXT0hMCxBLkphbnNvbj0hMCxBLkpvYW5uYT0hMCxBLktvcmlubmE9ITAsQS5MZXhpY29uPSEwLEEuTGliZXJhdGlvblNlcmlmPSEwLEFbIkxpYmVyYXRpb24gU2VyaWYiXT0hMCxBWyJMaW51eCBMaWJlcnRpbmUiXT0hMCxBLkxpdGVyYXR1cm5heWE9ITAsQS5MdWNpZGE9ITAsQVsiTHVjaWRhIEJyaWdodCJdPSEwLEEuTWVsaW9yPSEwLEEuTWVtcGhpcz0hMCxBLk1pbGxlcj0hMCxBLk1pbmlvbj0hMCxBLk1vZGVybj0hMCxBWyJNb25hIExpc2EiXT0hMCxBWyJNcnMgRWF2ZXMiXT0hMCxBWyJNUyBTZXJpZiJdPSEwLEFbIk11c2VvIFNsYWIiXT0hMCxBWyJOZXcgWW9yayJdPSEwLEFbIk5pbWJ1cyBSb21hbiJdPSEwLEFbIk5QUyBSYXdsaW5zb24gUm9hZHdheSJdPSEwLEEuTnVwdGlhbFNjcmlwdD0hMCxBLlBhbGF0aW5vPSEwLEEuUGVycGV0dWE9ITAsQS5QbGFudGluPSEwLEFbIlBsYW50aW4gU2Nob29sYm9vayJdPSEwLEEuUGxheWJpbGw9ITAsQVsiUG9vciBSaWNoYXJkIl09ITAsQVsiUmF3bGluc29uIFJvYWR3YXkiXT0hMCxBLlJlbmF1bHQ9ITAsQS5SZXF1aWVtPSEwLEEuUm9ja3dlbGw9ITAsQS5Sb21hbj0hMCxBWyJSb3RpcyBTZXJpZiJdPSEwLEEuU2Fib249ITAsQS5TY2FsYT0hMCxBLlNlYWd1bGw9ITAsQS5TaXN0aW5hPSEwLEEuU291dmVuaXI9ITAsQS5TVElYPSEwLEFbIlN0b25lIEluZm9ybWFsIl09ITAsQVsiU3RvbmUgU2VyaWYiXT0hMCxBLlN5bGZhZW49ITAsQS5UaW1lcz0hMCxBLlRyYWphbj0hMCxBWyJUcmluaXTDqSJdPSEwLEFbIlRydW1wIE1lZGlhZXZhbCJdPSEwLEEuVXRvcGlhPSEwLEFbIlZhbGUgVHlwZSJdPSEwLEFbIkJpdHN0cmVhbSBWZXJhIl09ITAsQVsiVmVyYSBTZXJpZiJdPSEwLEEuVmVyc2FpbGxlcz0hMCxBLldhbnRlZD0hMCxBLldlaXNzPSEwLEFbIldpZGUgTGF0aW4iXT0hMCxBLldpbmRzb3I9ITAsQS5YSVRTPSEwfSkpLERhPWJBKChmdW5jdGlvbihBKXtBLkRpbmdiYXRzPSEwLEEuU3ltYm9sPSEwLEEuWmFwZkRpbmdiYXRzPSEwLEEuV2luZ2RpbmdzPSEwLEFbIldpbmdkaW5ncy1Cb2xkIl09ITAsQVsiV2luZ2RpbmdzLVJlZ3VsYXIiXT0hMH0pKSxiYT1iQSgoZnVuY3Rpb24oQSl7QVsyXT0xMCxBWzNdPTMyLEFbNF09MzMsQVs1XT0zNCxBWzZdPTM1LEFbN109MzYsQVs4XT0zNyxBWzldPTM4LEFbMTBdPTM5LEFbMTFdPTQwLEFbMTJdPTQxLEFbMTNdPTQyLEFbMTRdPTQzLEFbMTVdPTQ0LEFbMTZdPTQ1LEFbMTddPTQ2LEFbMThdPTQ3LEFbMTldPTQ4LEFbMjBdPTQ5LEFbMjFdPTUwLEFbMjJdPTUxLEFbMjNdPTUyLEFbMjRdPTUzLEFbMjVdPTU0LEFbMjZdPTU1LEFbMjddPTU2LEFbMjhdPTU3LEFbMjldPTU4LEFbMzBdPTg5NCxBWzMxXT02MCxBWzMyXT02MSxBWzMzXT02MixBWzM0XT02MyxBWzM1XT02NCxBWzM2XT02NSxBWzM3XT02NixBWzM4XT02NyxBWzM5XT02OCxBWzQwXT02OSxBWzQxXT03MCxBWzQyXT03MSxBWzQzXT03MixBWzQ0XT03MyxBWzQ1XT03NCxBWzQ2XT03NSxBWzQ3XT03NixBWzQ4XT03NyxBWzQ5XT03OCxBWzUwXT03OSxBWzUxXT04MCxBWzUyXT04MSxBWzUzXT04MixBWzU0XT04MyxBWzU1XT04NCxBWzU2XT04NSxBWzU3XT04NixBWzU4XT04NyxBWzU5XT04OCxBWzYwXT04OSxBWzYxXT05MCxBWzYyXT05MSxBWzYzXT05MixBWzY0XT05MyxBWzY1XT05NCxBWzY2XT05NSxBWzY3XT05NixBWzY4XT05NyxBWzY5XT05OCxBWzcwXT05OSxBWzcxXT0xMDAsQVs3Ml09MTAxLEFbNzNdPTEwMixBWzc0XT0xMDMsQVs3NV09MTA0LEFbNzZdPTEwNSxBWzc3XT0xMDYsQVs3OF09MTA3LEFbNzldPTEwOCxBWzgwXT0xMDksQVs4MV09MTEwLEFbODJdPTExMSxBWzgzXT0xMTIsQVs4NF09MTEzLEFbODVdPTExNCxBWzg2XT0xMTUsQVs4N109MTE2LEFbODhdPTExNyxBWzg5XT0xMTgsQVs5MF09MTE5LEFbOTFdPTEyMCxBWzkyXT0xMjEsQVs5M109MTIyLEFbOTRdPTEyMyxBWzk1XT0xMjQsQVs5Nl09MTI1LEFbOTddPTEyNixBWzk4XT0xOTYsQVs5OV09MTk3LEFbMTAwXT0xOTksQVsxMDFdPTIwMSxBWzEwMl09MjA5LEFbMTAzXT0yMTQsQVsxMDRdPTIyMCxBWzEwNV09MjI1LEFbMTA2XT0yMjQsQVsxMDddPTIyNixBWzEwOF09MjI4LEFbMTA5XT0yMjcsQVsxMTBdPTIyOSxBWzExMV09MjMxLEFbMTEyXT0yMzMsQVsxMTNdPTIzMixBWzExNF09MjM0LEFbMTE1XT0yMzUsQVsxMTZdPTIzNyxBWzExN109MjM2LEFbMTE4XT0yMzgsQVsxMTldPTIzOSxBWzEyMF09MjQxLEFbMTIxXT0yNDMsQVsxMjJdPTI0MixBWzEyM109MjQ0LEFbMTI0XT0yNDYsQVsxMjVdPTI0NSxBWzEyNl09MjUwLEFbMTI3XT0yNDksQVsxMjhdPTI1MSxBWzEyOV09MjUyLEFbMTMwXT04MjI0LEFbMTMxXT0xNzYsQVsxMzJdPTE2MixBWzEzM109MTYzLEFbMTM0XT0xNjcsQVsxMzVdPTgyMjYsQVsxMzZdPTE4MixBWzEzN109MjIzLEFbMTM4XT0xNzQsQVsxMzldPTE2OSxBWzE0MF09ODQ4MixBWzE0MV09MTgwLEFbMTQyXT0xNjgsQVsxNDNdPTg4MDAsQVsxNDRdPTE5OCxBWzE0NV09MjE2LEFbMTQ2XT04NzM0LEFbMTQ3XT0xNzcsQVsxNDhdPTg4MDQsQVsxNDldPTg4MDUsQVsxNTBdPTE2NSxBWzE1MV09MTgxLEFbMTUyXT04NzA2LEFbMTUzXT04NzIxLEFbMTU0XT04NzE5LEFbMTU2XT04NzQ3LEFbMTU3XT0xNzAsQVsxNThdPTE4NixBWzE1OV09ODQ4NixBWzE2MF09MjMwLEFbMTYxXT0yNDgsQVsxNjJdPTE5MSxBWzE2M109MTYxLEFbMTY0XT0xNzIsQVsxNjVdPTg3MzAsQVsxNjZdPTQwMixBWzE2N109ODc3NixBWzE2OF09ODcxMCxBWzE2OV09MTcxLEFbMTcwXT0xODcsQVsxNzFdPTgyMzAsQVsxNzldPTgyMjAsQVsxODBdPTgyMjEsQVsxODFdPTgyMTYsQVsxODJdPTgyMTcsQVsyMDBdPTE5MyxBWzIwM109MjA1LEFbMjA3XT0yMTEsQVsyMTBdPTIxOCxBWzIyM109NzExLEFbMjI0XT0zMjEsQVsyMjVdPTMyMixBWzIyNl09MzUyLEFbMjI3XT0zNTMsQVsyMjhdPTM4MSxBWzIyOV09MzgyLEFbMjMzXT0yMjEsQVsyMzRdPTI1MyxBWzI1Ml09MjYzLEFbMjUzXT0yNjgsQVsyNTRdPTI2OSxBWzI1OF09MjU4LEFbMjYwXT0yNjAsQVsyNjFdPTI2MSxBWzI2NV09MjgwLEFbMjY2XT0yODEsQVsyNjddPTI4MixBWzI2OF09MjgzLEFbMjY5XT0zMTMsQVsyNzVdPTMyMyxBWzI3Nl09MzI0LEFbMjc4XT0zMjgsQVsyODNdPTM0NCxBWzI4NF09MzQ1LEFbMjg1XT0zNDYsQVsyODZdPTM0NyxBWzI5Ml09MzY3LEFbMjk1XT0zNzcsQVsyOTZdPTM3OCxBWzI5OF09MzgwLEFbMzA1XT05NjMsQVszMDZdPTk2NCxBWzMwN109OTY2LEFbMzA4XT04MjE1LEFbMzA5XT04MjUyLEFbMzEwXT04MzE5LEFbMzExXT04MzU5LEFbMzEyXT04NTkyLEFbMzEzXT04NTkzLEFbMzM3XT05NTUyLEFbNDkzXT0xMDM5LEFbNDk0XT0xMDQwLEFbNjcyXT0xNDg4LEFbNjczXT0xNDg5LEFbNjc0XT0xNDkwLEFbNjc1XT0xNDkxLEFbNjc2XT0xNDkyLEFbNjc3XT0xNDkzLEFbNjc4XT0xNDk0LEFbNjc5XT0xNDk1LEFbNjgwXT0xNDk2LEFbNjgxXT0xNDk3LEFbNjgyXT0xNDk4LEFbNjgzXT0xNDk5LEFbNjg0XT0xNTAwLEFbNjg1XT0xNTAxLEFbNjg2XT0xNTAyLEFbNjg3XT0xNTAzLEFbNjg4XT0xNTA0LEFbNjg5XT0xNTA1LEFbNjkwXT0xNTA2LEFbNjkxXT0xNTA3LEFbNjkyXT0xNTA4LEFbNjkzXT0xNTA5LEFbNjk0XT0xNTEwLEFbNjk1XT0xNTExLEFbNjk2XT0xNTEyLEFbNjk3XT0xNTEzLEFbNjk4XT0xNTE0LEFbNzA1XT0xNTI0LEFbNzA2XT04MzYyLEFbNzEwXT02NDI4OCxBWzcxMV09NjQyOTgsQVs3NTldPTE2MTcsQVs3NjFdPTE3NzYsQVs3NjNdPTE3NzgsQVs3NzVdPTE2NTIsQVs3NzddPTE3NjQsQVs3NzhdPTE3ODAsQVs3NzldPTE3ODEsQVs3ODBdPTE3ODIsQVs3ODJdPTc3MSxBWzc4M109NjQ3MjYsQVs3ODZdPTgzNjMsQVs3ODhdPTg1MzIsQVs3OTBdPTc2OCxBWzc5MV09NzY5LEFbNzkyXT03NjgsQVs3OTVdPTgwMyxBWzc5N109NjQzMzYsQVs3OThdPTY0MzM3LEFbNzk5XT02NDM0MixBWzgwMF09NjQzNDMsQVs4MDFdPTY0MzQ0LEFbODAyXT02NDM0NSxBWzgwM109NjQzNjIsQVs4MDRdPTY0MzYzLEFbODA1XT02NDM2NCxBWzI0MjRdPTc4MjEsQVsyNDI1XT03ODIyLEFbMjQyNl09NzgyMyxBWzI0MjddPTc4MjQsQVsyNDI4XT03ODI1LEFbMjQyOV09NzgyNixBWzI0MzBdPTc4MjcsQVsyNDMzXT03NjgyLEFbMjY3OF09ODA0NSxBWzI2NzldPTgwNDYsQVsyODMwXT0xNTUyLEFbMjgzOF09Njg2LEFbMjg0MF09NzUxLEFbMjg0Ml09NzUzLEFbMjg0M109NzU0LEFbMjg0NF09NzU1LEFbMjg0Nl09NzU3LEFbMjg1Nl09NzY3LEFbMjg1N109ODQ4LEFbMjg1OF09ODQ5LEFbMjg2Ml09ODUzLEFbMjg2M109ODU0LEFbMjg2NF09ODU1LEFbMjg2NV09ODYxLEFbMjg2Nl09ODYyLEFbMjkwNl09NzQ2MCxBWzI5MDhdPTc0NjIsQVsyOTA5XT03NDYzLEFbMjkxMF09NzQ2NCxBWzI5MTJdPTc0NjYsQVsyOTEzXT03NDY3LEFbMjkxNF09NzQ2OCxBWzI5MTZdPTc0NzAsQVsyOTE3XT03NDcxLEFbMjkxOF09NzQ3MixBWzI5MjBdPTc0NzQsQVsyOTIxXT03NDc1LEFbMjkyMl09NzQ3NixBWzI5MjRdPTc0NzgsQVsyOTI1XT03NDc5LEFbMjkyNl09NzQ4MCxBWzI5MjhdPTc0ODIsQVsyOTI5XT03NDgzLEFbMjkzMF09NzQ4NCxBWzI5MzJdPTc0ODYsQVsyOTMzXT03NDg3LEFbMjkzNF09NzQ4OCxBWzI5MzZdPTc0OTAsQVsyOTM3XT03NDkxLEFbMjkzOF09NzQ5MixBWzI5NDBdPTc0OTQsQVsyOTQxXT03NDk1LEFbMjk0Ml09NzQ5NixBWzI5NDRdPTc0OTgsQVsyOTQ2XT03NTAwLEFbMjk0OF09NzUwMixBWzI5NTBdPTc1MDQsQVsyOTUxXT03NTA1LEFbMjk1Ml09NzUwNixBWzI5NTRdPTc1MDgsQVsyOTU1XT03NTA5LEFbMjk1Nl09NzUxMCxBWzI5NThdPTc1MTIsQVsyOTU5XT03NTEzLEFbMjk2MF09NzUxNCxBWzI5NjJdPTc1MTYsQVsyOTYzXT03NTE3LEFbMjk2NF09NzUxOCxBWzI5NjZdPTc1MjAsQVsyOTY3XT03NTIxLEFbMjk2OF09NzUyMixBWzI5NzBdPTc1MjQsQVsyOTcxXT03NTI1LEFbMjk3Ml09NzUyNixBWzI5NzRdPTc1MjgsQVsyOTc1XT03NTI5LEFbMjk3Nl09NzUzMCxBWzI5NzhdPTE1MzcsQVsyOTc5XT0xNTM4LEFbMjk4MF09MTUzOSxBWzI5ODJdPTE1NDksQVsyOTgzXT0xNTUxLEFbMjk4NF09MTU1MixBWzI5ODZdPTE1NTQsQVsyOTg3XT0xNTU1LEFbMjk4OF09MTU1NixBWzI5OTBdPTE2MjMsQVsyOTkxXT0xNjI0LEFbMjk5NV09MTc3NSxBWzI5OTldPTE3OTEsQVszMDAyXT02NDI5MCxBWzMwMDNdPTY0MjkxLEFbMzAwNF09NjQyOTIsQVszMDA2XT02NDI5NCxBWzMwMDddPTY0Mjk1LEFbMzAwOF09NjQyOTYsQVszMDExXT0xOTAwLEFbMzAxNF09ODIyMyxBWzMwMTVdPTgyNDQsQVszMDE3XT03NTMyLEFbMzAxOF09NzUzMyxBWzMwMTldPTc1MzQsQVszMDc1XT03NTkwLEFbMzA3Nl09NzU5MSxBWzMwNzldPTc1OTQsQVszMDgwXT03NTk1LEFbMzA4M109NzU5OCxBWzMwODRdPTc1OTksQVszMDg3XT03NjAyLEFbMzA4OF09NzYwMyxBWzMwOTFdPTc2MDYsQVszMDkyXT03NjA3LEFbMzA5NV09NzYxMCxBWzMwOTZdPTc2MTEsQVszMDk5XT03NjE0LEFbMzEwMF09NzYxNSxBWzMxMDNdPTc2MTgsQVszMTA0XT03NjE5LEFbMzEwN109ODMzNyxBWzMxMDhdPTgzMzgsQVszMTE2XT0xODg0LEFbMzExOV09MTg4NSxBWzMxMjBdPTE4ODUsQVszMTIzXT0xODg2LEFbMzEyNF09MTg4NixBWzMxMjddPTE4ODcsQVszMTI4XT0xODg3LEFbMzEzMV09MTg4OCxBWzMxMzJdPTE4ODgsQVszMTM1XT0xODg5LEFbMzEzNl09MTg4OSxBWzMxMzldPTE4OTAsQVszMTQwXT0xODkwLEFbMzE0M109MTg5MSxBWzMxNDRdPTE4OTEsQVszMTQ3XT0xODkyLEFbMzE0OF09MTg5MixBWzMxNTNdPTU4MCxBWzMxNTRdPTU4MSxBWzMxNTddPTU4NCxBWzMxNThdPTU4NSxBWzMxNjFdPTU4OCxBWzMxNjJdPTU4OSxBWzMxNjVdPTg5MSxBWzMxNjZdPTg5MixBWzMxNjldPTEyNzQsQVszMTcwXT0xMjc1LEFbMzE3M109MTI3OCxBWzMxNzRdPTEyNzksQVszMTgxXT03NjIyLEFbMzE4Ml09NzYyMyxBWzMyODJdPTExNzk5LEFbMzMxNl09NTc4LEFbMzM3OV09NDI3ODUsQVszMzkzXT0xMTU5LEFbMzQxNl09ODM3N30pKSxrYT1iQSgoZnVuY3Rpb24oQSl7QVsyMjddPTMyMixBWzI2NF09MjYxLEFbMjkxXT0zNDZ9KSksRmE9YkEoKGZ1bmN0aW9uKEEpe0FbMV09MzIsQVs0XT02NSxBWzVdPTE5MixBWzZdPTE5MyxBWzldPTE5NixBWzE3XT02NixBWzE4XT02NyxBWzIxXT0yNjgsQVsyNF09NjgsQVsyOF09NjksQVsyOV09MjAwLEFbMzBdPTIwMSxBWzMyXT0yODIsQVszOF09NzAsQVszOV09NzEsQVs0NF09NzIsQVs0N109NzMsQVs0OF09MjA0LEFbNDldPTIwNSxBWzU4XT03NCxBWzYwXT03NSxBWzYyXT03NixBWzY4XT03NyxBWzY5XT03OCxBWzc1XT03OSxBWzc2XT0yMTAsQVs4MF09MjE0LEFbODddPTgwLEFbODldPTgxLEFbOTBdPTgyLEFbOTJdPTM0NCxBWzk0XT04MyxBWzk3XT0zNTIsQVsxMDBdPTg0LEFbMTA0XT04NSxBWzEwOV09MjIwLEFbMTE1XT04NixBWzExNl09ODcsQVsxMjFdPTg4LEFbMTIyXT04OSxBWzEyNF09MjIxLEFbMTI3XT05MCxBWzEyOV09MzgxLEFbMjU4XT05NyxBWzI1OV09MjI0LEFbMjYwXT0yMjUsQVsyNjNdPTIyOCxBWzI2OF09MjYxLEFbMjcxXT05OCxBWzI3Ml09OTksQVsyNzNdPTI2MyxBWzI3NV09MjY5LEFbMjgyXT0xMDAsQVsyODZdPTEwMSxBWzI4N109MjMyLEFbMjg4XT0yMzMsQVsyOTBdPTI4MyxBWzI5NV09MjgxLEFbMjk2XT0xMDIsQVszMzZdPTEwMyxBWzM0Nl09MTA0LEFbMzQ5XT0xMDUsQVszNTBdPTIzNixBWzM1MV09MjM3LEFbMzYxXT0xMDYsQVszNjRdPTEwNyxBWzM2N109MTA4LEFbMzcxXT0zMjIsQVszNzNdPTEwOSxBWzM3NF09MTEwLEFbMzgxXT0xMTEsQVszODJdPTI0MixBWzM4M109MjQzLEFbMzg2XT0yNDYsQVszOTNdPTExMixBWzM5NV09MTEzLEFbMzk2XT0xMTQsQVszOThdPTM0NSxBWzQwMF09MTE1LEFbNDAxXT0zNDcsQVs0MDNdPTM1MyxBWzQxMF09MTE2LEFbNDM3XT0xMTcsQVs0NDJdPTI1MixBWzQ0OF09MTE4LEFbNDQ5XT0xMTksQVs0NTRdPTEyMCxBWzQ1NV09MTIxLEFbNDU3XT0yNTMsQVs0NjBdPTEyMixBWzQ2Ml09MzgyLEFbNDYzXT0zODAsQVs4NTNdPTQ0LEFbODU1XT01OCxBWzg1Nl09NDYsQVs4NzZdPTQ3LEFbODc4XT00NSxBWzg4Ml09NDUsQVs4OTRdPTQwLEFbODk1XT00MSxBWzg5Nl09OTEsQVs4OTddPTkzLEFbOTIzXT02NCxBWzEwMDRdPTQ4LEFbMTAwNV09NDksQVsxMDA2XT01MCxBWzEwMDddPTUxLEFbMTAwOF09NTIsQVsxMDA5XT01MyxBWzEwMTBdPTU0LEFbMTAxMV09NTUsQVsxMDEyXT01NixBWzEwMTNdPTU3LEFbMTA4MV09MzcsQVsxMDg1XT00MyxBWzEwODZdPTQ1fSkpO2Z1bmN0aW9uIFNhKEEpe2NvbnN0IGU9ZGEoQSk7cmV0dXJuIHBhKClbZV19ZnVuY3Rpb24gUmEoQSl7Y29uc3QgZT1kYShBKTtyZXR1cm4hIShwYSgpW2VdfHx5YSgpW2VdfHx3YSgpW2VdfHxEYSgpW2VdKX1jbGFzcyBHYXtjb25zdHJ1Y3RvcihBPVtdKXt0aGlzLl9tYXA9QX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX21hcC5sZW5ndGh9Zm9yRWFjaChBKXtmb3IoY29uc3QgZSBpbiB0aGlzLl9tYXApQShlLHRoaXMuX21hcFtlXS5jaGFyQ29kZUF0KDApKX1oYXMoQSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX21hcFtBXX1nZXQoQSl7cmV0dXJuIHRoaXMuX21hcFtBXX1jaGFyQ29kZU9mKEEpe2NvbnN0IGU9dGhpcy5fbWFwO2lmKGUubGVuZ3RoPD02NTUzNilyZXR1cm4gZS5pbmRleE9mKEEpO2Zvcihjb25zdCB0IGluIGUpaWYoZVt0XT09PUEpcmV0dXJuIDB8dDtyZXR1cm4tMX1hbWVuZChBKXtmb3IoY29uc3QgZSBpbiBBKXRoaXMuX21hcFtlXT1BW2VdfX1jbGFzcyBOYXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMuZmlyc3RDaGFyPUEsdGhpcy5sYXN0Q2hhcj1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sYXN0Q2hhcisxLXRoaXMuZmlyc3RDaGFyfWZvckVhY2goQSl7Zm9yKGxldCBlPXRoaXMuZmlyc3RDaGFyLHQ9dGhpcy5sYXN0Q2hhcjtlPD10O2UrKylBKGUsZSl9aGFzKEEpe3JldHVybiB0aGlzLmZpcnN0Q2hhcjw9QSYmQTw9dGhpcy5sYXN0Q2hhcn1nZXQoQSl7aWYodGhpcy5maXJzdENoYXI8PUEmJkE8PXRoaXMubGFzdENoYXIpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoQSl9Y2hhckNvZGVPZihBKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihBKSYmQT49dGhpcy5maXJzdENoYXImJkE8PXRoaXMubGFzdENoYXI/QTotMX1hbWVuZChBKXtNKCJTaG91bGQgbm90IGNhbGwgYW1lbmQoKSIpfX1jbGFzcyB4YXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMucHJvcGVydGllcz1lO2NvbnN0IHQ9bmV3IFdpKEEsZSxsYSk7dGhpcy5jZmY9dC5wYXJzZSgpLHRoaXMuY2ZmLmR1cGxpY2F0ZUZpcnN0R2x5cGgoKTtjb25zdCBpPW5ldyBuYSh0aGlzLmNmZik7dGhpcy5zZWFjcz10aGlzLmNmZi5zZWFjczt0cnl7dGhpcy5kYXRhPWkuY29tcGlsZSgpfWNhdGNoe1UoIkZhaWxlZCB0byBjb21waWxlIGZvbnQgIitlLmxvYWRlZE5hbWUpLHRoaXMuZGF0YT1BfXRoaXMuX2NyZWF0ZUJ1aWx0SW5FbmNvZGluZygpfWdldCBudW1HbHlwaHMoKXtyZXR1cm4gdGhpcy5jZmYuY2hhclN0cmluZ3MuY291bnR9Z2V0Q2hhcnNldCgpe3JldHVybiB0aGlzLmNmZi5jaGFyc2V0LmNoYXJzZXR9Z2V0R2x5cGhNYXBwaW5nKCl7Y29uc3QgQT10aGlzLmNmZixlPXRoaXMucHJvcGVydGllcyx7Y2lkVG9HaWRNYXA6dCxjTWFwOml9PWUsYT1BLmNoYXJzZXQuY2hhcnNldDtsZXQgcyxuO2lmKGUuY29tcG9zaXRlKXtsZXQgZSxyO2lmKHQ/Lmxlbmd0aD4wKXtlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBBPTAsaT10Lmxlbmd0aDtBPGk7QSsrKXtjb25zdCBpPXRbQV07dm9pZCAwIT09aSYmKGVbaV09QSl9fWlmKHM9T2JqZWN0LmNyZWF0ZShudWxsKSxBLmlzQ0lERm9udClmb3Iobj0wO248YS5sZW5ndGg7bisrKXtjb25zdCBBPWFbbl07cj1pLmNoYXJDb2RlT2YoQSksdm9pZCAwIT09ZT8uW3JdJiYocj1lW3JdKSxzW3JdPW59ZWxzZSBmb3Iobj0wO248QS5jaGFyU3RyaW5ncy5jb3VudDtuKyspcj1pLmNoYXJDb2RlT2Yobiksc1tyXT1uO3JldHVybiBzfWxldCByPUEuZW5jb2Rpbmc/QS5lbmNvZGluZy5lbmNvZGluZzpudWxsO3JldHVybiBlLmlzSW50ZXJuYWxGb250JiYocj1lLmRlZmF1bHRFbmNvZGluZykscz11YShlLHIsYSksc31oYXNHbHlwaElkKEEpe3JldHVybiB0aGlzLmNmZi5oYXNHbHlwaElkKEEpfV9jcmVhdGVCdWlsdEluRW5jb2RpbmcoKXtjb25zdHtjaGFyc2V0OkEsZW5jb2Rpbmc6ZX09dGhpcy5jZmY7aWYoIUF8fCFlKXJldHVybjtjb25zdCB0PUEuY2hhcnNldCxpPWUuZW5jb2RpbmcsYT1bXTtmb3IoY29uc3QgQSBpbiBpKXtjb25zdCBlPWlbQV07aWYoZT49MCl7Y29uc3QgaT10W2VdO2kmJihhW0FdPWkpfX1hLmxlbmd0aD4wJiYodGhpcy5wcm9wZXJ0aWVzLmJ1aWx0SW5FbmNvZGluZz1hKX19ZnVuY3Rpb24gVWEoQSxlKXtyZXR1cm4oQVtlXTw8MjR8QVtlKzFdPDwxNnxBW2UrMl08PDh8QVtlKzNdKT4+PjB9ZnVuY3Rpb24gTWEoQSxlKXtyZXR1cm4gQVtlXTw8OHxBW2UrMV19ZnVuY3Rpb24gTGEoQSxlKXtyZXR1cm4oQVtlXTw8MjR8QVtlKzFdPDwxNik+PjE2fWZ1bmN0aW9uIEphKEEsZSl7cmV0dXJuIEFbZV08PDI0Pj4yNH1mdW5jdGlvbiBIYShBLGUpe3JldHVybiBMYShBLGUpLzE2Mzg0fWZ1bmN0aW9uIFlhKEEpe2NvbnN0IGU9QS5sZW5ndGg7bGV0IHQ9MzI3Njg7cmV0dXJuIGU8MTI0MD90PTEwNzplPDMzOTAwJiYodD0xMTMxKSx0fWZ1bmN0aW9uIHZhKEEsZSx0KXtjb25zdCBpPTE9PT1NYShBLGUrMik/VWEoQSxlKzgpOlVhKEEsZSsxNiksYT1NYShBLGUraSk7bGV0IHMsbixyO2lmKDQ9PT1hKXtNYShBLGUraSsyKTtjb25zdCB0PU1hKEEsZStpKzYpPj4xO2ZvcihuPWUraSsxNCxzPVtdLHI9MDtyPHQ7cisrLG4rPTIpc1tyXT17ZW5kOk1hKEEsbil9O2ZvcihuKz0yLHI9MDtyPHQ7cisrLG4rPTIpc1tyXS5zdGFydD1NYShBLG4pO2ZvcihyPTA7cjx0O3IrKyxuKz0yKXNbcl0uaWREZWx0YT1NYShBLG4pO2ZvcihyPTA7cjx0O3IrKyxuKz0yKXtsZXQgZT1NYShBLG4pO2lmKDAhPT1lKXtzW3JdLmlkcz1bXTtmb3IobGV0IHQ9MCxpPXNbcl0uZW5kLXNbcl0uc3RhcnQrMTt0PGk7dCsrKXNbcl0uaWRzW3RdPU1hKEEsbitlKSxlKz0yfX1yZXR1cm4gc31pZigxMj09PWEpe2NvbnN0IHQ9VWEoQSxlK2krMTIpO2ZvcihuPWUraSsxNixzPVtdLHI9MDtyPHQ7cisrKWU9VWEoQSxuKSxzLnB1c2goe3N0YXJ0OmUsZW5kOlVhKEEsbis0KSxpZERlbHRhOlVhKEEsbis4KS1lfSksbis9MTI7cmV0dXJuIHN9dGhyb3cgbmV3IFcoYHVuc3VwcG9ydGVkIGNtYXA6ICR7YX1gKX1mdW5jdGlvbiBLYShBLGUsdCxpKXtjb25zdCBhPW5ldyBXaShuZXcgZ2UoQSxlLHQtZSkse30saSkucGFyc2UoKTtyZXR1cm57Z2x5cGhzOmEuY2hhclN0cmluZ3Mub2JqZWN0cyxzdWJyczphLnRvcERpY3QucHJpdmF0ZURpY3Q/LnN1YnJzSW5kZXg/Lm9iamVjdHMsZ3N1YnJzOmEuZ2xvYmFsU3VickluZGV4Py5vYmplY3RzLGlzQ0ZGQ0lERm9udDphLmlzQ0lERm9udCxmZFNlbGVjdDphLmZkU2VsZWN0LGZkQXJyYXk6YS5mZEFycmF5fX1mdW5jdGlvbiBxYShBLGUpe2NvbnN0IHQ9ZS5jb2RlUG9pbnRBdCgwKTtsZXQgaT0wLGE9MCxzPUEubGVuZ3RoLTE7Zm9yKDthPHM7KXtjb25zdCBlPWErcysxPj4xO3Q8QVtlXS5zdGFydD9zPWUtMTphPWV9cmV0dXJuIEFbYV0uc3RhcnQ8PXQmJnQ8PUFbYV0uZW5kJiYoaT1BW2FdLmlkRGVsdGErKEFbYV0uaWRzP0FbYV0uaWRzW3QtQVthXS5zdGFydF06dCkmNjU1MzUpLHtjaGFyQ29kZTp0LGdseXBoSWQ6aX19ZnVuY3Rpb24gVGEoQSxlLHQpe2Z1bmN0aW9uIGkoQSx0KXtlLmFkZCgxLFtBLHRdKX1mdW5jdGlvbiBhKEEsdCl7ZS5hZGQoMixbQSx0XSl9ZnVuY3Rpb24gcyhBLHQsaSxhKXtlLmFkZCgzLFtBLHQsaSxhXSl9bGV0IG49MDtjb25zdCByPUxhKEEsbik7bGV0IGcsbz0wLEk9MDtpZihuKz0xMCxyPDApZG97Zz1NYShBLG4pO2NvbnN0IGk9TWEoQSxuKzIpO2xldCBhLHM7bis9NCwxJmc/KDImZz8oYT1MYShBLG4pLHM9TGEoQSxuKzIpKTooYT1NYShBLG4pLHM9TWEoQSxuKzIpKSxuKz00KToyJmc/KGE9SmEoQSxuKyspLHM9SmEoQSxuKyspKTooYT1BW24rK10scz1BW24rK10pLDImZz8obz1hLEk9cyk6KG89MCxJPTApO2xldCByPTEsYz0xLGg9MCxDPTA7OCZnPyhyPWM9SGEoQSxuKSxuKz0yKTo2NCZnPyhyPUhhKEEsbiksYz1IYShBLG4rMiksbis9NCk6MTI4JmcmJihyPUhhKEEsbiksaD1IYShBLG4rMiksQz1IYShBLG4rNCksYz1IYShBLG4rNiksbis9OCk7Y29uc3QgQj10LmdseXBoc1tpXTtCJiYoZS5hZGQoNSksZS5hZGQoNyxbcixoLEMsYyxvLEldKSxUYShCLGUsdCksZS5hZGQoNCkpfXdoaWxlKDMyJmcpO2Vsc2V7Y29uc3QgZT1bXTtsZXQgdCxjO2Zvcih0PTA7dDxyO3QrKyllLnB1c2goTWEoQSxuKSksbis9MjtuKz0yK01hKEEsbik7Y29uc3QgaD1lLmF0KC0xKSsxLEM9W107Zm9yKDtDLmxlbmd0aDxoOyl7Zz1BW24rK107bGV0IGU9MTtmb3IoOCZnJiYoZSs9QVtuKytdKTtlLS0gPjA7KUMucHVzaCh7ZmxhZ3M6Z30pfWZvcih0PTA7dDxoO3QrKyl7c3dpdGNoKDE4JkNbdF0uZmxhZ3Mpe2Nhc2UgMDpvKz1MYShBLG4pLG4rPTI7YnJlYWs7Y2FzZSAyOm8tPUFbbisrXTticmVhaztjYXNlIDE4Om8rPUFbbisrXX1DW3RdLng9b31mb3IodD0wO3Q8aDt0Kyspe3N3aXRjaCgzNiZDW3RdLmZsYWdzKXtjYXNlIDA6SSs9TGEoQSxuKSxuKz0yO2JyZWFrO2Nhc2UgNDpJLT1BW24rK107YnJlYWs7Y2FzZSAzNjpJKz1BW24rK119Q1t0XS55PUl9bGV0IEI9MDtmb3Iobj0wO248cjtuKyspe2NvbnN0IEE9ZVtuXSxyPUMuc2xpY2UoQixBKzEpO2lmKDEmclswXS5mbGFncylyLnB1c2goclswXSk7ZWxzZSBpZigxJnIuYXQoLTEpLmZsYWdzKXIudW5zaGlmdChyLmF0KC0xKSk7ZWxzZXtjb25zdCBBPXtmbGFnczoxLHg6KHJbMF0ueCtyLmF0KC0xKS54KS8yLHk6KHJbMF0ueStyLmF0KC0xKS55KS8yfTtyLnVuc2hpZnQoQSksci5wdXNoKEEpfWZvcihpKHJbMF0ueCxyWzBdLnkpLHQ9MSxjPXIubGVuZ3RoO3Q8Yzt0KyspMSZyW3RdLmZsYWdzP2Eoclt0XS54LHJbdF0ueSk6MSZyW3QrMV0uZmxhZ3M/KHMoclt0XS54LHJbdF0ueSxyW3QrMV0ueCxyW3QrMV0ueSksdCsrKTpzKHJbdF0ueCxyW3RdLnksKHJbdF0ueCtyW3QrMV0ueCkvMiwoclt0XS55K3JbdCsxXS55KS8yKTtCPUErMX19fWZ1bmN0aW9uIFBhKEEsZSx0LGkpe2Z1bmN0aW9uIGEoQSx0KXtlLmFkZCgxLFtBLHRdKX1mdW5jdGlvbiBzKEEsdCl7ZS5hZGQoMixbQSx0XSl9ZnVuY3Rpb24gbihBLHQsaSxhLHMsbil7ZS5hZGQoMCxbQSx0LGksYSxzLG5dKX1jb25zdCByPVtdO2xldCBnPTAsbz0wLEk9MDshZnVuY3Rpb24gQShjKXtsZXQgaD0wO2Zvcig7aDxjLmxlbmd0aDspe2xldCBDLEIsbCxRLEUsdSxkLGYscCxtPSExLHk9Y1toKytdO3N3aXRjaCh5KXtjYXNlIDE6Y2FzZSAzOmNhc2UgMTg6Y2FzZSAyMzpJKz1yLmxlbmd0aD4+MSxtPSEwO2JyZWFrO2Nhc2UgNDpvKz1yLnBvcCgpLGEoZyxvKSxtPSEwO2JyZWFrO2Nhc2UgNTpmb3IoO3IubGVuZ3RoPjA7KWcrPXIuc2hpZnQoKSxvKz1yLnNoaWZ0KCkscyhnLG8pO2JyZWFrO2Nhc2UgNjpmb3IoO3IubGVuZ3RoPjAmJihnKz1yLnNoaWZ0KCkscyhnLG8pLDAhPT1yLmxlbmd0aCk7KW8rPXIuc2hpZnQoKSxzKGcsbyk7YnJlYWs7Y2FzZSA3OmZvcig7ci5sZW5ndGg+MCYmKG8rPXIuc2hpZnQoKSxzKGcsbyksMCE9PXIubGVuZ3RoKTspZys9ci5zaGlmdCgpLHMoZyxvKTticmVhaztjYXNlIDg6Zm9yKDtyLmxlbmd0aD4wOylDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKTticmVhaztjYXNlIDEwOmlmKGY9ci5wb3AoKSxwPW51bGwsdC5pc0NGRkNJREZvbnQpe2NvbnN0IEE9dC5mZFNlbGVjdC5nZXRGREluZGV4KGkpO2lmKEE+PTAmJkE8dC5mZEFycmF5Lmxlbmd0aCl7Y29uc3QgZT10LmZkQXJyYXlbQV07bGV0IGk7ZS5wcml2YXRlRGljdD8uc3VicnNJbmRleCYmKGk9ZS5wcml2YXRlRGljdC5zdWJyc0luZGV4Lm9iamVjdHMpLGkmJihmKz1ZYShpKSxwPWlbZl0pfWVsc2UgVSgiSW52YWxpZCBmZCBpbmRleCBmb3IgZ2x5cGggaW5kZXguIil9ZWxzZSBwPXQuc3VicnNbZit0LnN1YnJzQmlhc107cCYmQShwKTticmVhaztjYXNlIDExOnJldHVybjtjYXNlIDEyOnN3aXRjaCh5PWNbaCsrXSx5KXtjYXNlIDM0OkM9ZytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxFPW8rci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbihDLG8sQixFLGcsRSksQz1nK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbihDLEUsQixvLGcsbyk7YnJlYWs7Y2FzZSAzNTpDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKSxDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKSxyLnBvcCgpO2JyZWFrO2Nhc2UgMzY6Qz1nK3Iuc2hpZnQoKSxFPW8rci5zaGlmdCgpLEI9QytyLnNoaWZ0KCksdT1FK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG4oQyxFLEIsdSxnLHUpLEM9ZytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxkPXUrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbihDLHUsQixkLGcsbyk7YnJlYWs7Y2FzZSAzNzpjb25zdCBBPWcsZT1vO0M9ZytyLnNoaWZ0KCksbD1vK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLFE9bCtyLnNoaWZ0KCksZz1CK3Iuc2hpZnQoKSxvPVErci5zaGlmdCgpLG4oQyxsLEIsUSxnLG8pLEM9ZytyLnNoaWZ0KCksbD1vK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLFE9bCtyLnNoaWZ0KCksZz1CLG89USxNYXRoLmFicyhnLUEpPk1hdGguYWJzKG8tZSk/Zys9ci5zaGlmdCgpOm8rPXIuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGB1bmtub3duIG9wZXJhdG9yOiAxMiAke3l9YCl9YnJlYWs7Y2FzZSAxNDppZihyLmxlbmd0aD49NCl7Y29uc3QgQT1yLnBvcCgpLGk9ci5wb3AoKTtvPXIucG9wKCksZz1yLnBvcCgpLGUuYWRkKDUpLGUuYWRkKDgsW2csb10pO2xldCBhPXFhKHQuY21hcCxTdHJpbmcuZnJvbUNoYXJDb2RlKHQuZ2x5cGhOYW1lTWFwW0ppW0FdXSkpO1BhKHQuZ2x5cGhzW2EuZ2x5cGhJZF0sZSx0LGEuZ2x5cGhJZCksZS5hZGQoNCksYT1xYSh0LmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZSh0LmdseXBoTmFtZU1hcFtKaVtpXV0pKSxQYSh0LmdseXBoc1thLmdseXBoSWRdLGUsdCxhLmdseXBoSWQpfXJldHVybjtjYXNlIDE5OmNhc2UgMjA6SSs9ci5sZW5ndGg+PjEsaCs9SSs3Pj4zLG09ITA7YnJlYWs7Y2FzZSAyMTpvKz1yLnBvcCgpLGcrPXIucG9wKCksYShnLG8pLG09ITA7YnJlYWs7Y2FzZSAyMjpnKz1yLnBvcCgpLGEoZyxvKSxtPSEwO2JyZWFrO2Nhc2UgMjQ6Zm9yKDtyLmxlbmd0aD4yOylDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKTtnKz1yLnNoaWZ0KCksbys9ci5zaGlmdCgpLHMoZyxvKTticmVhaztjYXNlIDI1OmZvcig7ci5sZW5ndGg+NjspZys9ci5zaGlmdCgpLG8rPXIuc2hpZnQoKSxzKGcsbyk7Qz1nK3Iuc2hpZnQoKSxsPW8rci5zaGlmdCgpLEI9QytyLnNoaWZ0KCksUT1sK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG89UStyLnNoaWZ0KCksbihDLGwsQixRLGcsbyk7YnJlYWs7Y2FzZSAyNjpmb3Ioci5sZW5ndGglMiYmKGcrPXIuc2hpZnQoKSk7ci5sZW5ndGg+MDspQz1nLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QixvPVErci5zaGlmdCgpLG4oQyxsLEIsUSxnLG8pO2JyZWFrO2Nhc2UgMjc6Zm9yKHIubGVuZ3RoJTImJihvKz1yLnNoaWZ0KCkpO3IubGVuZ3RoPjA7KUM9ZytyLnNoaWZ0KCksbD1vLEI9QytyLnNoaWZ0KCksUT1sK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG89USxuKEMsbCxCLFEsZyxvKTticmVhaztjYXNlIDI4OnIucHVzaCgoY1toXTw8MjR8Y1toKzFdPDwxNik+PjE2KSxoKz0yO2JyZWFrO2Nhc2UgMjk6Zj1yLnBvcCgpK3QuZ3N1YnJzQmlhcyxwPXQuZ3N1YnJzW2ZdLHAmJkEocCk7YnJlYWs7Y2FzZSAzMDpmb3IoO3IubGVuZ3RoPjAmJihDPWcsbD1vK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLFE9bCtyLnNoaWZ0KCksZz1CK3Iuc2hpZnQoKSxvPVErKDE9PT1yLmxlbmd0aD9yLnNoaWZ0KCk6MCksbihDLGwsQixRLGcsbyksMCE9PXIubGVuZ3RoKTspQz1nK3Iuc2hpZnQoKSxsPW8sQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLG89UStyLnNoaWZ0KCksZz1CKygxPT09ci5sZW5ndGg/ci5zaGlmdCgpOjApLG4oQyxsLEIsUSxnLG8pO2JyZWFrO2Nhc2UgMzE6Zm9yKDtyLmxlbmd0aD4wJiYoQz1nK3Iuc2hpZnQoKSxsPW8sQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLG89UStyLnNoaWZ0KCksZz1CKygxPT09ci5sZW5ndGg/ci5zaGlmdCgpOjApLG4oQyxsLEIsUSxnLG8pLDAhPT1yLmxlbmd0aCk7KUM9ZyxsPW8rci5zaGlmdCgpLEI9QytyLnNoaWZ0KCksUT1sK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG89USsoMT09PXIubGVuZ3RoP3Iuc2hpZnQoKTowKSxuKEMsbCxCLFEsZyxvKTticmVhaztkZWZhdWx0OmlmKHk8MzIpdGhyb3cgbmV3IFcoYHVua25vd24gb3BlcmF0b3I6ICR7eX1gKTt5PDI0Nz9yLnB1c2goeS0xMzkpOnk8MjUxP3IucHVzaCgyNTYqKHktMjQ3KStjW2grK10rMTA4KTp5PDI1NT9yLnB1c2goMjU2Ki0oeS0yNTEpLWNbaCsrXS0xMDgpOihyLnB1c2goKGNbaF08PDI0fGNbaCsxXTw8MTZ8Y1toKzJdPDw4fGNbaCszXSkvNjU1MzYpLGgrPTQpfW0mJihyLmxlbmd0aD0wKX19KEEpfWNvbnN0IFdhPVtdO2NsYXNzIE9he2NtZHM9W107YWRkKEEsZSl7aWYoZSlpZih2QShlLG51bGwpKXRoaXMuY21kcy5wdXNoKEEsLi4uZSk7ZWxzZXtVKGBDb21tYW5kcy5hZGQgLSAiJHtBfSIgaGFzIGF0IGxlYXN0IG9uZSBub24tbnVtYmVyIGFyZzogIiR7ZX0iLmApO2NvbnN0IHQ9ZS5tYXAoKEE9PiJudW1iZXIiPT10eXBlb2YgQT9BOjApKTt0aGlzLmNtZHMucHVzaChBLC4uLnQpfWVsc2UgdGhpcy5jbWRzLnB1c2goQSl9fWNsYXNzIFphe2NvbnN0cnVjdG9yKEEpe3RoaXMuZm9udE1hdHJpeD1BLHRoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWQ9T2JqZWN0LmNyZWF0ZShudWxsKX1nZXRQYXRoSnMoQSl7Y29uc3R7Y2hhckNvZGU6ZSxnbHlwaElkOnR9PXFhKHRoaXMuY21hcCxBKTtsZXQgaSxhPXRoaXMuY29tcGlsZWRHbHlwaHNbdF07aWYoIWEpe3RyeXthPXRoaXMuY29tcGlsZUdseXBoKHRoaXMuZ2x5cGhzW3RdLHQpfWNhdGNoKEEpe2E9V2EsaT1BfXRoaXMuY29tcGlsZWRHbHlwaHNbdF09YX1pZih0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWRbZV0/Pz10LGkpdGhyb3cgaTtyZXR1cm4gYX1jb21waWxlR2x5cGgoQSxlKXtpZighQXx8MD09PUEubGVuZ3RofHwxND09PUFbMF0pcmV0dXJuIFdhO2xldCB0PXRoaXMuZm9udE1hdHJpeDtpZih0aGlzLmlzQ0ZGQ0lERm9udCl7Y29uc3QgQT10aGlzLmZkU2VsZWN0LmdldEZESW5kZXgoZSk7QT49MCYmQTx0aGlzLmZkQXJyYXkubGVuZ3RoP3Q9dGhpcy5mZEFycmF5W0FdLmdldEJ5TmFtZSgiRm9udE1hdHJpeCIpfHxuOlUoIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWNvbnN0IGk9bmV3IE9hO3JldHVybiBpLmFkZCg1KSxpLmFkZCg3LHQuc2xpY2UoKSksaS5hZGQoNiksdGhpcy5jb21waWxlR2x5cGhJbXBsKEEsaSxlKSxpLmFkZCg0KSxpLmNtZHN9Y29tcGlsZUdseXBoSW1wbCgpe00oIkNoaWxkcmVuIGNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB0aGlzLiIpfWhhc0J1aWx0UGF0aChBKXtjb25zdHtjaGFyQ29kZTplLGdseXBoSWQ6dH09cWEodGhpcy5jbWFwLEEpO3JldHVybiB2b2lkIDAhPT10aGlzLmNvbXBpbGVkR2x5cGhzW3RdJiZ2b2lkIDAhPT10aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWRbZV19fWNsYXNzIGphIGV4dGVuZHMgWmF7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKHR8fFs0ODhlLTYsMCwwLDQ4OGUtNiwwLDBdKSx0aGlzLmdseXBocz1BLHRoaXMuY21hcD1lfWNvbXBpbGVHbHlwaEltcGwoQSxlKXtUYShBLGUsdGhpcyl9fWNsYXNzIFhhIGV4dGVuZHMgWmF7Y29uc3RydWN0b3IoQSxlLHQsaSl7c3VwZXIodHx8Wy4wMDEsMCwwLC4wMDEsMCwwXSksdGhpcy5nbHlwaHM9QS5nbHlwaHMsdGhpcy5nc3VicnM9QS5nc3VicnN8fFtdLHRoaXMuc3VicnM9QS5zdWJyc3x8W10sdGhpcy5jbWFwPWUsdGhpcy5nbHlwaE5hbWVNYXA9aXx8cmEoKSx0aGlzLmdzdWJyc0JpYXM9WWEodGhpcy5nc3VicnMpLHRoaXMuc3VicnNCaWFzPVlhKHRoaXMuc3VicnMpLHRoaXMuaXNDRkZDSURGb250PUEuaXNDRkZDSURGb250LHRoaXMuZmRTZWxlY3Q9QS5mZFNlbGVjdCx0aGlzLmZkQXJyYXk9QS5mZEFycmF5fWNvbXBpbGVHbHlwaEltcGwoQSxlLHQpe1BhKEEsZSx0aGlzLHQpfX1jbGFzcyBWYXtzdGF0aWMgY3JlYXRlKEEsZSl7Y29uc3QgdD1uZXcgVWludDhBcnJheShBLmRhdGEpO2xldCBpLGEscyxuLHIsZztjb25zdCBvPU1hKHQsNCk7Zm9yKGxldCBBPTAsST0xMjtBPG87QSsrLEkrPTE2KXtjb25zdCBBPVoodC5zdWJhcnJheShJLEkrNCkpLG89VWEodCxJKzgpLGM9VWEodCxJKzEyKTtzd2l0Y2goQSl7Y2FzZSJjbWFwIjppPXZhKHQsbyk7YnJlYWs7Y2FzZSJnbHlmIjphPXQuc3ViYXJyYXkobyxvK2MpO2JyZWFrO2Nhc2UibG9jYSI6cz10LnN1YmFycmF5KG8sbytjKTticmVhaztjYXNlImhlYWQiOmc9TWEodCxvKzE4KSxyPU1hKHQsbys1MCk7YnJlYWs7Y2FzZSJDRkYgIjpuPUthKHQsbyxvK2MsZSl9fWlmKGEpe2NvbnN0IGU9Zz9bMS9nLDAsMCwxL2csMCwwXTpBLmZvbnRNYXRyaXg7cmV0dXJuIG5ldyBqYShmdW5jdGlvbihBLGUsdCl7bGV0IGksYTt0PyhpPTQsYT1VYSk6KGk9MixhPShBLGUpPT4yKk1hKEEsZSkpO2NvbnN0IHM9W107bGV0IG49YShlLDApO2ZvcihsZXQgdD1pO3Q8ZS5sZW5ndGg7dCs9aSl7Y29uc3QgaT1hKGUsdCk7cy5wdXNoKEEuc3ViYXJyYXkobixpKSksbj1pfXJldHVybiBzfShhLHMsciksaSxlKX1yZXR1cm4gbmV3IFhhKG4saSxBLmZvbnRNYXRyaXgsQS5nbHlwaE5hbWVNYXApfX1jb25zdCBfYT1iQSgoZnVuY3Rpb24oQSl7QS5Db3VyaWVyPTYwMCxBWyJDb3VyaWVyLUJvbGQiXT02MDAsQVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPTYwMCxBWyJDb3VyaWVyLU9ibGlxdWUiXT02MDAsQS5IZWx2ZXRpY2E9YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9Mjc4LEEuZXhjbGFtPTI3OCxBLnF1b3RlZGJsPTM1NSxBLm51bWJlcnNpZ249NTU2LEEuZG9sbGFyPTU1NixBLnBlcmNlbnQ9ODg5LEEuYW1wZXJzYW5kPTY2NyxBLnF1b3RlcmlnaHQ9MjIyLEEucGFyZW5sZWZ0PTMzMyxBLnBhcmVucmlnaHQ9MzMzLEEuYXN0ZXJpc2s9Mzg5LEEucGx1cz01ODQsQS5jb21tYT0yNzgsQS5oeXBoZW49MzMzLEEucGVyaW9kPTI3OCxBLnNsYXNoPTI3OCxBLnplcm89NTU2LEEub25lPTU1NixBLnR3bz01NTYsQS50aHJlZT01NTYsQS5mb3VyPTU1NixBLmZpdmU9NTU2LEEuc2l4PTU1NixBLnNldmVuPTU1NixBLmVpZ2h0PTU1NixBLm5pbmU9NTU2LEEuY29sb249Mjc4LEEuc2VtaWNvbG9uPTI3OCxBLmxlc3M9NTg0LEEuZXF1YWw9NTg0LEEuZ3JlYXRlcj01ODQsQS5xdWVzdGlvbj01NTYsQS5hdD0xMDE1LEEuQT02NjcsQS5CPTY2NyxBLkM9NzIyLEEuRD03MjIsQS5FPTY2NyxBLkY9NjExLEEuRz03NzgsQS5IPTcyMixBLkk9Mjc4LEEuSj01MDAsQS5LPTY2NyxBLkw9NTU2LEEuTT04MzMsQS5OPTcyMixBLk89Nzc4LEEuUD02NjcsQS5RPTc3OCxBLlI9NzIyLEEuUz02NjcsQS5UPTYxMSxBLlU9NzIyLEEuVj02NjcsQS5XPTk0NCxBLlg9NjY3LEEuWT02NjcsQS5aPTYxMSxBLmJyYWNrZXRsZWZ0PTI3OCxBLmJhY2tzbGFzaD0yNzgsQS5icmFja2V0cmlnaHQ9Mjc4LEEuYXNjaWljaXJjdW09NDY5LEEudW5kZXJzY29yZT01NTYsQS5xdW90ZWxlZnQ9MjIyLEEuYT01NTYsQS5iPTU1NixBLmM9NTAwLEEuZD01NTYsQS5lPTU1NixBLmY9Mjc4LEEuZz01NTYsQS5oPTU1NixBLmk9MjIyLEEuaj0yMjIsQS5rPTUwMCxBLmw9MjIyLEEubT04MzMsQS5uPTU1NixBLm89NTU2LEEucD01NTYsQS5xPTU1NixBLnI9MzMzLEEucz01MDAsQS50PTI3OCxBLnU9NTU2LEEudj01MDAsQS53PTcyMixBLng9NTAwLEEueT01MDAsQS56PTUwMCxBLmJyYWNlbGVmdD0zMzQsQS5iYXI9MjYwLEEuYnJhY2VyaWdodD0zMzQsQS5hc2NpaXRpbGRlPTU4NCxBLmV4Y2xhbWRvd249MzMzLEEuY2VudD01NTYsQS5zdGVybGluZz01NTYsQS5mcmFjdGlvbj0xNjcsQS55ZW49NTU2LEEuZmxvcmluPTU1NixBLnNlY3Rpb249NTU2LEEuY3VycmVuY3k9NTU2LEEucXVvdGVzaW5nbGU9MTkxLEEucXVvdGVkYmxsZWZ0PTMzMyxBLmd1aWxsZW1vdGxlZnQ9NTU2LEEuZ3VpbHNpbmdsbGVmdD0zMzMsQS5ndWlsc2luZ2xyaWdodD0zMzMsQS5maT01MDAsQS5mbD01MDAsQS5lbmRhc2g9NTU2LEEuZGFnZ2VyPTU1NixBLmRhZ2dlcmRibD01NTYsQS5wZXJpb2RjZW50ZXJlZD0yNzgsQS5wYXJhZ3JhcGg9NTM3LEEuYnVsbGV0PTM1MCxBLnF1b3Rlc2luZ2xiYXNlPTIyMixBLnF1b3RlZGJsYmFzZT0zMzMsQS5xdW90ZWRibHJpZ2h0PTMzMyxBLmd1aWxsZW1vdHJpZ2h0PTU1NixBLmVsbGlwc2lzPTFlMyxBLnBlcnRob3VzYW5kPTFlMyxBLnF1ZXN0aW9uZG93bj02MTEsQS5ncmF2ZT0zMzMsQS5hY3V0ZT0zMzMsQS5jaXJjdW1mbGV4PTMzMyxBLnRpbGRlPTMzMyxBLm1hY3Jvbj0zMzMsQS5icmV2ZT0zMzMsQS5kb3RhY2NlbnQ9MzMzLEEuZGllcmVzaXM9MzMzLEEucmluZz0zMzMsQS5jZWRpbGxhPTMzMyxBLmh1bmdhcnVtbGF1dD0zMzMsQS5vZ29uZWs9MzMzLEEuY2Fyb249MzMzLEEuZW1kYXNoPTFlMyxBLkFFPTFlMyxBLm9yZGZlbWluaW5lPTM3MCxBLkxzbGFzaD01NTYsQS5Pc2xhc2g9Nzc4LEEuT0U9MWUzLEEub3JkbWFzY3VsaW5lPTM2NSxBLmFlPTg4OSxBLmRvdGxlc3NpPTI3OCxBLmxzbGFzaD0yMjIsQS5vc2xhc2g9NjExLEEub2U9OTQ0LEEuZ2VybWFuZGJscz02MTEsQS5JZGllcmVzaXM9Mjc4LEEuZWFjdXRlPTU1NixBLmFicmV2ZT01NTYsQS51aHVuZ2FydW1sYXV0PTU1NixBLmVjYXJvbj01NTYsQS5ZZGllcmVzaXM9NjY3LEEuZGl2aWRlPTU4NCxBLllhY3V0ZT02NjcsQS5BY2lyY3VtZmxleD02NjcsQS5hYWN1dGU9NTU2LEEuVWNpcmN1bWZsZXg9NzIyLEEueWFjdXRlPTUwMCxBLnNjb21tYWFjY2VudD01MDAsQS5lY2lyY3VtZmxleD01NTYsQS5VcmluZz03MjIsQS5VZGllcmVzaXM9NzIyLEEuYW9nb25laz01NTYsQS5VYWN1dGU9NzIyLEEudW9nb25laz01NTYsQS5FZGllcmVzaXM9NjY3LEEuRGNyb2F0PTcyMixBLmNvbW1hYWNjZW50PTI1MCxBLmNvcHlyaWdodD03MzcsQS5FbWFjcm9uPTY2NyxBLmNjYXJvbj01MDAsQS5hcmluZz01NTYsQS5OY29tbWFhY2NlbnQ9NzIyLEEubGFjdXRlPTIyMixBLmFncmF2ZT01NTYsQS5UY29tbWFhY2NlbnQ9NjExLEEuQ2FjdXRlPTcyMixBLmF0aWxkZT01NTYsQS5FZG90YWNjZW50PTY2NyxBLnNjYXJvbj01MDAsQS5zY2VkaWxsYT01MDAsQS5pYWN1dGU9Mjc4LEEubG96ZW5nZT00NzEsQS5SY2Fyb249NzIyLEEuR2NvbW1hYWNjZW50PTc3OCxBLnVjaXJjdW1mbGV4PTU1NixBLmFjaXJjdW1mbGV4PTU1NixBLkFtYWNyb249NjY3LEEucmNhcm9uPTMzMyxBLmNjZWRpbGxhPTUwMCxBLlpkb3RhY2NlbnQ9NjExLEEuVGhvcm49NjY3LEEuT21hY3Jvbj03NzgsQS5SYWN1dGU9NzIyLEEuU2FjdXRlPTY2NyxBLmRjYXJvbj02NDMsQS5VbWFjcm9uPTcyMixBLnVyaW5nPTU1NixBLnRocmVlc3VwZXJpb3I9MzMzLEEuT2dyYXZlPTc3OCxBLkFncmF2ZT02NjcsQS5BYnJldmU9NjY3LEEubXVsdGlwbHk9NTg0LEEudWFjdXRlPTU1NixBLlRjYXJvbj02MTEsQS5wYXJ0aWFsZGlmZj00NzYsQS55ZGllcmVzaXM9NTAwLEEuTmFjdXRlPTcyMixBLmljaXJjdW1mbGV4PTI3OCxBLkVjaXJjdW1mbGV4PTY2NyxBLmFkaWVyZXNpcz01NTYsQS5lZGllcmVzaXM9NTU2LEEuY2FjdXRlPTUwMCxBLm5hY3V0ZT01NTYsQS51bWFjcm9uPTU1NixBLk5jYXJvbj03MjIsQS5JYWN1dGU9Mjc4LEEucGx1c21pbnVzPTU4NCxBLmJyb2tlbmJhcj0yNjAsQS5yZWdpc3RlcmVkPTczNyxBLkdicmV2ZT03NzgsQS5JZG90YWNjZW50PTI3OCxBLnN1bW1hdGlvbj02MDAsQS5FZ3JhdmU9NjY3LEEucmFjdXRlPTMzMyxBLm9tYWNyb249NTU2LEEuWmFjdXRlPTYxMSxBLlpjYXJvbj02MTEsQS5ncmVhdGVyZXF1YWw9NTQ5LEEuRXRoPTcyMixBLkNjZWRpbGxhPTcyMixBLmxjb21tYWFjY2VudD0yMjIsQS50Y2Fyb249MzE3LEEuZW9nb25laz01NTYsQS5Vb2dvbmVrPTcyMixBLkFhY3V0ZT02NjcsQS5BZGllcmVzaXM9NjY3LEEuZWdyYXZlPTU1NixBLnphY3V0ZT01MDAsQS5pb2dvbmVrPTIyMixBLk9hY3V0ZT03NzgsQS5vYWN1dGU9NTU2LEEuYW1hY3Jvbj01NTYsQS5zYWN1dGU9NTAwLEEuaWRpZXJlc2lzPTI3OCxBLk9jaXJjdW1mbGV4PTc3OCxBLlVncmF2ZT03MjIsQS5EZWx0YT02MTIsQS50aG9ybj01NTYsQS50d29zdXBlcmlvcj0zMzMsQS5PZGllcmVzaXM9Nzc4LEEubXU9NTU2LEEuaWdyYXZlPTI3OCxBLm9odW5nYXJ1bWxhdXQ9NTU2LEEuRW9nb25laz02NjcsQS5kY3JvYXQ9NTU2LEEudGhyZWVxdWFydGVycz04MzQsQS5TY2VkaWxsYT02NjcsQS5sY2Fyb249Mjk5LEEuS2NvbW1hYWNjZW50PTY2NyxBLkxhY3V0ZT01NTYsQS50cmFkZW1hcms9MWUzLEEuZWRvdGFjY2VudD01NTYsQS5JZ3JhdmU9Mjc4LEEuSW1hY3Jvbj0yNzgsQS5MY2Fyb249NTU2LEEub25laGFsZj04MzQsQS5sZXNzZXF1YWw9NTQ5LEEub2NpcmN1bWZsZXg9NTU2LEEubnRpbGRlPTU1NixBLlVodW5nYXJ1bWxhdXQ9NzIyLEEuRWFjdXRlPTY2NyxBLmVtYWNyb249NTU2LEEuZ2JyZXZlPTU1NixBLm9uZXF1YXJ0ZXI9ODM0LEEuU2Nhcm9uPTY2NyxBLlNjb21tYWFjY2VudD02NjcsQS5PaHVuZ2FydW1sYXV0PTc3OCxBLmRlZ3JlZT00MDAsQS5vZ3JhdmU9NTU2LEEuQ2Nhcm9uPTcyMixBLnVncmF2ZT01NTYsQS5yYWRpY2FsPTQ1MyxBLkRjYXJvbj03MjIsQS5yY29tbWFhY2NlbnQ9MzMzLEEuTnRpbGRlPTcyMixBLm90aWxkZT01NTYsQS5SY29tbWFhY2NlbnQ9NzIyLEEuTGNvbW1hYWNjZW50PTU1NixBLkF0aWxkZT02NjcsQS5Bb2dvbmVrPTY2NyxBLkFyaW5nPTY2NyxBLk90aWxkZT03NzgsQS56ZG90YWNjZW50PTUwMCxBLkVjYXJvbj02NjcsQS5Jb2dvbmVrPTI3OCxBLmtjb21tYWFjY2VudD01MDAsQS5taW51cz01ODQsQS5JY2lyY3VtZmxleD0yNzgsQS5uY2Fyb249NTU2LEEudGNvbW1hYWNjZW50PTI3OCxBLmxvZ2ljYWxub3Q9NTg0LEEub2RpZXJlc2lzPTU1NixBLnVkaWVyZXNpcz01NTYsQS5ub3RlcXVhbD01NDksQS5nY29tbWFhY2NlbnQ9NTU2LEEuZXRoPTU1NixBLnpjYXJvbj01MDAsQS5uY29tbWFhY2NlbnQ9NTU2LEEub25lc3VwZXJpb3I9MzMzLEEuaW1hY3Jvbj0yNzgsQS5FdXJvPTU1Nn0pKSxBWyJIZWx2ZXRpY2EtQm9sZCJdPWJBKChmdW5jdGlvbihBKXtBLnNwYWNlPTI3OCxBLmV4Y2xhbT0zMzMsQS5xdW90ZWRibD00NzQsQS5udW1iZXJzaWduPTU1NixBLmRvbGxhcj01NTYsQS5wZXJjZW50PTg4OSxBLmFtcGVyc2FuZD03MjIsQS5xdW90ZXJpZ2h0PTI3OCxBLnBhcmVubGVmdD0zMzMsQS5wYXJlbnJpZ2h0PTMzMyxBLmFzdGVyaXNrPTM4OSxBLnBsdXM9NTg0LEEuY29tbWE9Mjc4LEEuaHlwaGVuPTMzMyxBLnBlcmlvZD0yNzgsQS5zbGFzaD0yNzgsQS56ZXJvPTU1NixBLm9uZT01NTYsQS50d289NTU2LEEudGhyZWU9NTU2LEEuZm91cj01NTYsQS5maXZlPTU1NixBLnNpeD01NTYsQS5zZXZlbj01NTYsQS5laWdodD01NTYsQS5uaW5lPTU1NixBLmNvbG9uPTMzMyxBLnNlbWljb2xvbj0zMzMsQS5sZXNzPTU4NCxBLmVxdWFsPTU4NCxBLmdyZWF0ZXI9NTg0LEEucXVlc3Rpb249NjExLEEuYXQ9OTc1LEEuQT03MjIsQS5CPTcyMixBLkM9NzIyLEEuRD03MjIsQS5FPTY2NyxBLkY9NjExLEEuRz03NzgsQS5IPTcyMixBLkk9Mjc4LEEuSj01NTYsQS5LPTcyMixBLkw9NjExLEEuTT04MzMsQS5OPTcyMixBLk89Nzc4LEEuUD02NjcsQS5RPTc3OCxBLlI9NzIyLEEuUz02NjcsQS5UPTYxMSxBLlU9NzIyLEEuVj02NjcsQS5XPTk0NCxBLlg9NjY3LEEuWT02NjcsQS5aPTYxMSxBLmJyYWNrZXRsZWZ0PTMzMyxBLmJhY2tzbGFzaD0yNzgsQS5icmFja2V0cmlnaHQ9MzMzLEEuYXNjaWljaXJjdW09NTg0LEEudW5kZXJzY29yZT01NTYsQS5xdW90ZWxlZnQ9Mjc4LEEuYT01NTYsQS5iPTYxMSxBLmM9NTU2LEEuZD02MTEsQS5lPTU1NixBLmY9MzMzLEEuZz02MTEsQS5oPTYxMSxBLmk9Mjc4LEEuaj0yNzgsQS5rPTU1NixBLmw9Mjc4LEEubT04ODksQS5uPTYxMSxBLm89NjExLEEucD02MTEsQS5xPTYxMSxBLnI9Mzg5LEEucz01NTYsQS50PTMzMyxBLnU9NjExLEEudj01NTYsQS53PTc3OCxBLng9NTU2LEEueT01NTYsQS56PTUwMCxBLmJyYWNlbGVmdD0zODksQS5iYXI9MjgwLEEuYnJhY2VyaWdodD0zODksQS5hc2NpaXRpbGRlPTU4NCxBLmV4Y2xhbWRvd249MzMzLEEuY2VudD01NTYsQS5zdGVybGluZz01NTYsQS5mcmFjdGlvbj0xNjcsQS55ZW49NTU2LEEuZmxvcmluPTU1NixBLnNlY3Rpb249NTU2LEEuY3VycmVuY3k9NTU2LEEucXVvdGVzaW5nbGU9MjM4LEEucXVvdGVkYmxsZWZ0PTUwMCxBLmd1aWxsZW1vdGxlZnQ9NTU2LEEuZ3VpbHNpbmdsbGVmdD0zMzMsQS5ndWlsc2luZ2xyaWdodD0zMzMsQS5maT02MTEsQS5mbD02MTEsQS5lbmRhc2g9NTU2LEEuZGFnZ2VyPTU1NixBLmRhZ2dlcmRibD01NTYsQS5wZXJpb2RjZW50ZXJlZD0yNzgsQS5wYXJhZ3JhcGg9NTU2LEEuYnVsbGV0PTM1MCxBLnF1b3Rlc2luZ2xiYXNlPTI3OCxBLnF1b3RlZGJsYmFzZT01MDAsQS5xdW90ZWRibHJpZ2h0PTUwMCxBLmd1aWxsZW1vdHJpZ2h0PTU1NixBLmVsbGlwc2lzPTFlMyxBLnBlcnRob3VzYW5kPTFlMyxBLnF1ZXN0aW9uZG93bj02MTEsQS5ncmF2ZT0zMzMsQS5hY3V0ZT0zMzMsQS5jaXJjdW1mbGV4PTMzMyxBLnRpbGRlPTMzMyxBLm1hY3Jvbj0zMzMsQS5icmV2ZT0zMzMsQS5kb3RhY2NlbnQ9MzMzLEEuZGllcmVzaXM9MzMzLEEucmluZz0zMzMsQS5jZWRpbGxhPTMzMyxBLmh1bmdhcnVtbGF1dD0zMzMsQS5vZ29uZWs9MzMzLEEuY2Fyb249MzMzLEEuZW1kYXNoPTFlMyxBLkFFPTFlMyxBLm9yZGZlbWluaW5lPTM3MCxBLkxzbGFzaD02MTEsQS5Pc2xhc2g9Nzc4LEEuT0U9MWUzLEEub3JkbWFzY3VsaW5lPTM2NSxBLmFlPTg4OSxBLmRvdGxlc3NpPTI3OCxBLmxzbGFzaD0yNzgsQS5vc2xhc2g9NjExLEEub2U9OTQ0LEEuZ2VybWFuZGJscz02MTEsQS5JZGllcmVzaXM9Mjc4LEEuZWFjdXRlPTU1NixBLmFicmV2ZT01NTYsQS51aHVuZ2FydW1sYXV0PTYxMSxBLmVjYXJvbj01NTYsQS5ZZGllcmVzaXM9NjY3LEEuZGl2aWRlPTU4NCxBLllhY3V0ZT02NjcsQS5BY2lyY3VtZmxleD03MjIsQS5hYWN1dGU9NTU2LEEuVWNpcmN1bWZsZXg9NzIyLEEueWFjdXRlPTU1NixBLnNjb21tYWFjY2VudD01NTYsQS5lY2lyY3VtZmxleD01NTYsQS5VcmluZz03MjIsQS5VZGllcmVzaXM9NzIyLEEuYW9nb25laz01NTYsQS5VYWN1dGU9NzIyLEEudW9nb25laz02MTEsQS5FZGllcmVzaXM9NjY3LEEuRGNyb2F0PTcyMixBLmNvbW1hYWNjZW50PTI1MCxBLmNvcHlyaWdodD03MzcsQS5FbWFjcm9uPTY2NyxBLmNjYXJvbj01NTYsQS5hcmluZz01NTYsQS5OY29tbWFhY2NlbnQ9NzIyLEEubGFjdXRlPTI3OCxBLmFncmF2ZT01NTYsQS5UY29tbWFhY2NlbnQ9NjExLEEuQ2FjdXRlPTcyMixBLmF0aWxkZT01NTYsQS5FZG90YWNjZW50PTY2NyxBLnNjYXJvbj01NTYsQS5zY2VkaWxsYT01NTYsQS5pYWN1dGU9Mjc4LEEubG96ZW5nZT00OTQsQS5SY2Fyb249NzIyLEEuR2NvbW1hYWNjZW50PTc3OCxBLnVjaXJjdW1mbGV4PTYxMSxBLmFjaXJjdW1mbGV4PTU1NixBLkFtYWNyb249NzIyLEEucmNhcm9uPTM4OSxBLmNjZWRpbGxhPTU1NixBLlpkb3RhY2NlbnQ9NjExLEEuVGhvcm49NjY3LEEuT21hY3Jvbj03NzgsQS5SYWN1dGU9NzIyLEEuU2FjdXRlPTY2NyxBLmRjYXJvbj03NDMsQS5VbWFjcm9uPTcyMixBLnVyaW5nPTYxMSxBLnRocmVlc3VwZXJpb3I9MzMzLEEuT2dyYXZlPTc3OCxBLkFncmF2ZT03MjIsQS5BYnJldmU9NzIyLEEubXVsdGlwbHk9NTg0LEEudWFjdXRlPTYxMSxBLlRjYXJvbj02MTEsQS5wYXJ0aWFsZGlmZj00OTQsQS55ZGllcmVzaXM9NTU2LEEuTmFjdXRlPTcyMixBLmljaXJjdW1mbGV4PTI3OCxBLkVjaXJjdW1mbGV4PTY2NyxBLmFkaWVyZXNpcz01NTYsQS5lZGllcmVzaXM9NTU2LEEuY2FjdXRlPTU1NixBLm5hY3V0ZT02MTEsQS51bWFjcm9uPTYxMSxBLk5jYXJvbj03MjIsQS5JYWN1dGU9Mjc4LEEucGx1c21pbnVzPTU4NCxBLmJyb2tlbmJhcj0yODAsQS5yZWdpc3RlcmVkPTczNyxBLkdicmV2ZT03NzgsQS5JZG90YWNjZW50PTI3OCxBLnN1bW1hdGlvbj02MDAsQS5FZ3JhdmU9NjY3LEEucmFjdXRlPTM4OSxBLm9tYWNyb249NjExLEEuWmFjdXRlPTYxMSxBLlpjYXJvbj02MTEsQS5ncmVhdGVyZXF1YWw9NTQ5LEEuRXRoPTcyMixBLkNjZWRpbGxhPTcyMixBLmxjb21tYWFjY2VudD0yNzgsQS50Y2Fyb249Mzg5LEEuZW9nb25laz01NTYsQS5Vb2dvbmVrPTcyMixBLkFhY3V0ZT03MjIsQS5BZGllcmVzaXM9NzIyLEEuZWdyYXZlPTU1NixBLnphY3V0ZT01MDAsQS5pb2dvbmVrPTI3OCxBLk9hY3V0ZT03NzgsQS5vYWN1dGU9NjExLEEuYW1hY3Jvbj01NTYsQS5zYWN1dGU9NTU2LEEuaWRpZXJlc2lzPTI3OCxBLk9jaXJjdW1mbGV4PTc3OCxBLlVncmF2ZT03MjIsQS5EZWx0YT02MTIsQS50aG9ybj02MTEsQS50d29zdXBlcmlvcj0zMzMsQS5PZGllcmVzaXM9Nzc4LEEubXU9NjExLEEuaWdyYXZlPTI3OCxBLm9odW5nYXJ1bWxhdXQ9NjExLEEuRW9nb25laz02NjcsQS5kY3JvYXQ9NjExLEEudGhyZWVxdWFydGVycz04MzQsQS5TY2VkaWxsYT02NjcsQS5sY2Fyb249NDAwLEEuS2NvbW1hYWNjZW50PTcyMixBLkxhY3V0ZT02MTEsQS50cmFkZW1hcms9MWUzLEEuZWRvdGFjY2VudD01NTYsQS5JZ3JhdmU9Mjc4LEEuSW1hY3Jvbj0yNzgsQS5MY2Fyb249NjExLEEub25laGFsZj04MzQsQS5sZXNzZXF1YWw9NTQ5LEEub2NpcmN1bWZsZXg9NjExLEEubnRpbGRlPTYxMSxBLlVodW5nYXJ1bWxhdXQ9NzIyLEEuRWFjdXRlPTY2NyxBLmVtYWNyb249NTU2LEEuZ2JyZXZlPTYxMSxBLm9uZXF1YXJ0ZXI9ODM0LEEuU2Nhcm9uPTY2NyxBLlNjb21tYWFjY2VudD02NjcsQS5PaHVuZ2FydW1sYXV0PTc3OCxBLmRlZ3JlZT00MDAsQS5vZ3JhdmU9NjExLEEuQ2Nhcm9uPTcyMixBLnVncmF2ZT02MTEsQS5yYWRpY2FsPTU0OSxBLkRjYXJvbj03MjIsQS5yY29tbWFhY2NlbnQ9Mzg5LEEuTnRpbGRlPTcyMixBLm90aWxkZT02MTEsQS5SY29tbWFhY2NlbnQ9NzIyLEEuTGNvbW1hYWNjZW50PTYxMSxBLkF0aWxkZT03MjIsQS5Bb2dvbmVrPTcyMixBLkFyaW5nPTcyMixBLk90aWxkZT03NzgsQS56ZG90YWNjZW50PTUwMCxBLkVjYXJvbj02NjcsQS5Jb2dvbmVrPTI3OCxBLmtjb21tYWFjY2VudD01NTYsQS5taW51cz01ODQsQS5JY2lyY3VtZmxleD0yNzgsQS5uY2Fyb249NjExLEEudGNvbW1hYWNjZW50PTMzMyxBLmxvZ2ljYWxub3Q9NTg0LEEub2RpZXJlc2lzPTYxMSxBLnVkaWVyZXNpcz02MTEsQS5ub3RlcXVhbD01NDksQS5nY29tbWFhY2NlbnQ9NjExLEEuZXRoPTYxMSxBLnpjYXJvbj01MDAsQS5uY29tbWFhY2NlbnQ9NjExLEEub25lc3VwZXJpb3I9MzMzLEEuaW1hY3Jvbj0yNzgsQS5FdXJvPTU1Nn0pKSxBWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNzgsQS5leGNsYW09MzMzLEEucXVvdGVkYmw9NDc0LEEubnVtYmVyc2lnbj01NTYsQS5kb2xsYXI9NTU2LEEucGVyY2VudD04ODksQS5hbXBlcnNhbmQ9NzIyLEEucXVvdGVyaWdodD0yNzgsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz0zODksQS5wbHVzPTU4NCxBLmNvbW1hPTI3OCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9Mjc4LEEuc2xhc2g9Mjc4LEEuemVybz01NTYsQS5vbmU9NTU2LEEudHdvPTU1NixBLnRocmVlPTU1NixBLmZvdXI9NTU2LEEuZml2ZT01NTYsQS5zaXg9NTU2LEEuc2V2ZW49NTU2LEEuZWlnaHQ9NTU2LEEubmluZT01NTYsQS5jb2xvbj0zMzMsQS5zZW1pY29sb249MzMzLEEubGVzcz01ODQsQS5lcXVhbD01ODQsQS5ncmVhdGVyPTU4NCxBLnF1ZXN0aW9uPTYxMSxBLmF0PTk3NSxBLkE9NzIyLEEuQj03MjIsQS5DPTcyMixBLkQ9NzIyLEEuRT02NjcsQS5GPTYxMSxBLkc9Nzc4LEEuSD03MjIsQS5JPTI3OCxBLko9NTU2LEEuSz03MjIsQS5MPTYxMSxBLk09ODMzLEEuTj03MjIsQS5PPTc3OCxBLlA9NjY3LEEuUT03NzgsQS5SPTcyMixBLlM9NjY3LEEuVD02MTEsQS5VPTcyMixBLlY9NjY3LEEuVz05NDQsQS5YPTY2NyxBLlk9NjY3LEEuWj02MTEsQS5icmFja2V0bGVmdD0zMzMsQS5iYWNrc2xhc2g9Mjc4LEEuYnJhY2tldHJpZ2h0PTMzMyxBLmFzY2lpY2lyY3VtPTU4NCxBLnVuZGVyc2NvcmU9NTU2LEEucXVvdGVsZWZ0PTI3OCxBLmE9NTU2LEEuYj02MTEsQS5jPTU1NixBLmQ9NjExLEEuZT01NTYsQS5mPTMzMyxBLmc9NjExLEEuaD02MTEsQS5pPTI3OCxBLmo9Mjc4LEEuaz01NTYsQS5sPTI3OCxBLm09ODg5LEEubj02MTEsQS5vPTYxMSxBLnA9NjExLEEucT02MTEsQS5yPTM4OSxBLnM9NTU2LEEudD0zMzMsQS51PTYxMSxBLnY9NTU2LEEudz03NzgsQS54PTU1NixBLnk9NTU2LEEuej01MDAsQS5icmFjZWxlZnQ9Mzg5LEEuYmFyPTI4MCxBLmJyYWNlcmlnaHQ9Mzg5LEEuYXNjaWl0aWxkZT01ODQsQS5leGNsYW1kb3duPTMzMyxBLmNlbnQ9NTU2LEEuc3Rlcmxpbmc9NTU2LEEuZnJhY3Rpb249MTY3LEEueWVuPTU1NixBLmZsb3Jpbj01NTYsQS5zZWN0aW9uPTU1NixBLmN1cnJlbmN5PTU1NixBLnF1b3Rlc2luZ2xlPTIzOCxBLnF1b3RlZGJsbGVmdD01MDAsQS5ndWlsbGVtb3RsZWZ0PTU1NixBLmd1aWxzaW5nbGxlZnQ9MzMzLEEuZ3VpbHNpbmdscmlnaHQ9MzMzLEEuZmk9NjExLEEuZmw9NjExLEEuZW5kYXNoPTU1NixBLmRhZ2dlcj01NTYsQS5kYWdnZXJkYmw9NTU2LEEucGVyaW9kY2VudGVyZWQ9Mjc4LEEucGFyYWdyYXBoPTU1NixBLmJ1bGxldD0zNTAsQS5xdW90ZXNpbmdsYmFzZT0yNzgsQS5xdW90ZWRibGJhc2U9NTAwLEEucXVvdGVkYmxyaWdodD01MDAsQS5ndWlsbGVtb3RyaWdodD01NTYsQS5lbGxpcHNpcz0xZTMsQS5wZXJ0aG91c2FuZD0xZTMsQS5xdWVzdGlvbmRvd249NjExLEEuZ3JhdmU9MzMzLEEuYWN1dGU9MzMzLEEuY2lyY3VtZmxleD0zMzMsQS50aWxkZT0zMzMsQS5tYWNyb249MzMzLEEuYnJldmU9MzMzLEEuZG90YWNjZW50PTMzMyxBLmRpZXJlc2lzPTMzMyxBLnJpbmc9MzMzLEEuY2VkaWxsYT0zMzMsQS5odW5nYXJ1bWxhdXQ9MzMzLEEub2dvbmVrPTMzMyxBLmNhcm9uPTMzMyxBLmVtZGFzaD0xZTMsQS5BRT0xZTMsQS5vcmRmZW1pbmluZT0zNzAsQS5Mc2xhc2g9NjExLEEuT3NsYXNoPTc3OCxBLk9FPTFlMyxBLm9yZG1hc2N1bGluZT0zNjUsQS5hZT04ODksQS5kb3RsZXNzaT0yNzgsQS5sc2xhc2g9Mjc4LEEub3NsYXNoPTYxMSxBLm9lPTk0NCxBLmdlcm1hbmRibHM9NjExLEEuSWRpZXJlc2lzPTI3OCxBLmVhY3V0ZT01NTYsQS5hYnJldmU9NTU2LEEudWh1bmdhcnVtbGF1dD02MTEsQS5lY2Fyb249NTU2LEEuWWRpZXJlc2lzPTY2NyxBLmRpdmlkZT01ODQsQS5ZYWN1dGU9NjY3LEEuQWNpcmN1bWZsZXg9NzIyLEEuYWFjdXRlPTU1NixBLlVjaXJjdW1mbGV4PTcyMixBLnlhY3V0ZT01NTYsQS5zY29tbWFhY2NlbnQ9NTU2LEEuZWNpcmN1bWZsZXg9NTU2LEEuVXJpbmc9NzIyLEEuVWRpZXJlc2lzPTcyMixBLmFvZ29uZWs9NTU2LEEuVWFjdXRlPTcyMixBLnVvZ29uZWs9NjExLEEuRWRpZXJlc2lzPTY2NyxBLkRjcm9hdD03MjIsQS5jb21tYWFjY2VudD0yNTAsQS5jb3B5cmlnaHQ9NzM3LEEuRW1hY3Jvbj02NjcsQS5jY2Fyb249NTU2LEEuYXJpbmc9NTU2LEEuTmNvbW1hYWNjZW50PTcyMixBLmxhY3V0ZT0yNzgsQS5hZ3JhdmU9NTU2LEEuVGNvbW1hYWNjZW50PTYxMSxBLkNhY3V0ZT03MjIsQS5hdGlsZGU9NTU2LEEuRWRvdGFjY2VudD02NjcsQS5zY2Fyb249NTU2LEEuc2NlZGlsbGE9NTU2LEEuaWFjdXRlPTI3OCxBLmxvemVuZ2U9NDk0LEEuUmNhcm9uPTcyMixBLkdjb21tYWFjY2VudD03NzgsQS51Y2lyY3VtZmxleD02MTEsQS5hY2lyY3VtZmxleD01NTYsQS5BbWFjcm9uPTcyMixBLnJjYXJvbj0zODksQS5jY2VkaWxsYT01NTYsQS5aZG90YWNjZW50PTYxMSxBLlRob3JuPTY2NyxBLk9tYWNyb249Nzc4LEEuUmFjdXRlPTcyMixBLlNhY3V0ZT02NjcsQS5kY2Fyb249NzQzLEEuVW1hY3Jvbj03MjIsQS51cmluZz02MTEsQS50aHJlZXN1cGVyaW9yPTMzMyxBLk9ncmF2ZT03NzgsQS5BZ3JhdmU9NzIyLEEuQWJyZXZlPTcyMixBLm11bHRpcGx5PTU4NCxBLnVhY3V0ZT02MTEsQS5UY2Fyb249NjExLEEucGFydGlhbGRpZmY9NDk0LEEueWRpZXJlc2lzPTU1NixBLk5hY3V0ZT03MjIsQS5pY2lyY3VtZmxleD0yNzgsQS5FY2lyY3VtZmxleD02NjcsQS5hZGllcmVzaXM9NTU2LEEuZWRpZXJlc2lzPTU1NixBLmNhY3V0ZT01NTYsQS5uYWN1dGU9NjExLEEudW1hY3Jvbj02MTEsQS5OY2Fyb249NzIyLEEuSWFjdXRlPTI3OCxBLnBsdXNtaW51cz01ODQsQS5icm9rZW5iYXI9MjgwLEEucmVnaXN0ZXJlZD03MzcsQS5HYnJldmU9Nzc4LEEuSWRvdGFjY2VudD0yNzgsQS5zdW1tYXRpb249NjAwLEEuRWdyYXZlPTY2NyxBLnJhY3V0ZT0zODksQS5vbWFjcm9uPTYxMSxBLlphY3V0ZT02MTEsQS5aY2Fyb249NjExLEEuZ3JlYXRlcmVxdWFsPTU0OSxBLkV0aD03MjIsQS5DY2VkaWxsYT03MjIsQS5sY29tbWFhY2NlbnQ9Mjc4LEEudGNhcm9uPTM4OSxBLmVvZ29uZWs9NTU2LEEuVW9nb25laz03MjIsQS5BYWN1dGU9NzIyLEEuQWRpZXJlc2lzPTcyMixBLmVncmF2ZT01NTYsQS56YWN1dGU9NTAwLEEuaW9nb25laz0yNzgsQS5PYWN1dGU9Nzc4LEEub2FjdXRlPTYxMSxBLmFtYWNyb249NTU2LEEuc2FjdXRlPTU1NixBLmlkaWVyZXNpcz0yNzgsQS5PY2lyY3VtZmxleD03NzgsQS5VZ3JhdmU9NzIyLEEuRGVsdGE9NjEyLEEudGhvcm49NjExLEEudHdvc3VwZXJpb3I9MzMzLEEuT2RpZXJlc2lzPTc3OCxBLm11PTYxMSxBLmlncmF2ZT0yNzgsQS5vaHVuZ2FydW1sYXV0PTYxMSxBLkVvZ29uZWs9NjY3LEEuZGNyb2F0PTYxMSxBLnRocmVlcXVhcnRlcnM9ODM0LEEuU2NlZGlsbGE9NjY3LEEubGNhcm9uPTQwMCxBLktjb21tYWFjY2VudD03MjIsQS5MYWN1dGU9NjExLEEudHJhZGVtYXJrPTFlMyxBLmVkb3RhY2NlbnQ9NTU2LEEuSWdyYXZlPTI3OCxBLkltYWNyb249Mjc4LEEuTGNhcm9uPTYxMSxBLm9uZWhhbGY9ODM0LEEubGVzc2VxdWFsPTU0OSxBLm9jaXJjdW1mbGV4PTYxMSxBLm50aWxkZT02MTEsQS5VaHVuZ2FydW1sYXV0PTcyMixBLkVhY3V0ZT02NjcsQS5lbWFjcm9uPTU1NixBLmdicmV2ZT02MTEsQS5vbmVxdWFydGVyPTgzNCxBLlNjYXJvbj02NjcsQS5TY29tbWFhY2NlbnQ9NjY3LEEuT2h1bmdhcnVtbGF1dD03NzgsQS5kZWdyZWU9NDAwLEEub2dyYXZlPTYxMSxBLkNjYXJvbj03MjIsQS51Z3JhdmU9NjExLEEucmFkaWNhbD01NDksQS5EY2Fyb249NzIyLEEucmNvbW1hYWNjZW50PTM4OSxBLk50aWxkZT03MjIsQS5vdGlsZGU9NjExLEEuUmNvbW1hYWNjZW50PTcyMixBLkxjb21tYWFjY2VudD02MTEsQS5BdGlsZGU9NzIyLEEuQW9nb25laz03MjIsQS5BcmluZz03MjIsQS5PdGlsZGU9Nzc4LEEuemRvdGFjY2VudD01MDAsQS5FY2Fyb249NjY3LEEuSW9nb25laz0yNzgsQS5rY29tbWFhY2NlbnQ9NTU2LEEubWludXM9NTg0LEEuSWNpcmN1bWZsZXg9Mjc4LEEubmNhcm9uPTYxMSxBLnRjb21tYWFjY2VudD0zMzMsQS5sb2dpY2Fsbm90PTU4NCxBLm9kaWVyZXNpcz02MTEsQS51ZGllcmVzaXM9NjExLEEubm90ZXF1YWw9NTQ5LEEuZ2NvbW1hYWNjZW50PTYxMSxBLmV0aD02MTEsQS56Y2Fyb249NTAwLEEubmNvbW1hYWNjZW50PTYxMSxBLm9uZXN1cGVyaW9yPTMzMyxBLmltYWNyb249Mjc4LEEuRXVybz01NTZ9KSksQVsiSGVsdmV0aWNhLU9ibGlxdWUiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNzgsQS5leGNsYW09Mjc4LEEucXVvdGVkYmw9MzU1LEEubnVtYmVyc2lnbj01NTYsQS5kb2xsYXI9NTU2LEEucGVyY2VudD04ODksQS5hbXBlcnNhbmQ9NjY3LEEucXVvdGVyaWdodD0yMjIsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz0zODksQS5wbHVzPTU4NCxBLmNvbW1hPTI3OCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9Mjc4LEEuc2xhc2g9Mjc4LEEuemVybz01NTYsQS5vbmU9NTU2LEEudHdvPTU1NixBLnRocmVlPTU1NixBLmZvdXI9NTU2LEEuZml2ZT01NTYsQS5zaXg9NTU2LEEuc2V2ZW49NTU2LEEuZWlnaHQ9NTU2LEEubmluZT01NTYsQS5jb2xvbj0yNzgsQS5zZW1pY29sb249Mjc4LEEubGVzcz01ODQsQS5lcXVhbD01ODQsQS5ncmVhdGVyPTU4NCxBLnF1ZXN0aW9uPTU1NixBLmF0PTEwMTUsQS5BPTY2NyxBLkI9NjY3LEEuQz03MjIsQS5EPTcyMixBLkU9NjY3LEEuRj02MTEsQS5HPTc3OCxBLkg9NzIyLEEuST0yNzgsQS5KPTUwMCxBLks9NjY3LEEuTD01NTYsQS5NPTgzMyxBLk49NzIyLEEuTz03NzgsQS5QPTY2NyxBLlE9Nzc4LEEuUj03MjIsQS5TPTY2NyxBLlQ9NjExLEEuVT03MjIsQS5WPTY2NyxBLlc9OTQ0LEEuWD02NjcsQS5ZPTY2NyxBLlo9NjExLEEuYnJhY2tldGxlZnQ9Mjc4LEEuYmFja3NsYXNoPTI3OCxBLmJyYWNrZXRyaWdodD0yNzgsQS5hc2NpaWNpcmN1bT00NjksQS51bmRlcnNjb3JlPTU1NixBLnF1b3RlbGVmdD0yMjIsQS5hPTU1NixBLmI9NTU2LEEuYz01MDAsQS5kPTU1NixBLmU9NTU2LEEuZj0yNzgsQS5nPTU1NixBLmg9NTU2LEEuaT0yMjIsQS5qPTIyMixBLms9NTAwLEEubD0yMjIsQS5tPTgzMyxBLm49NTU2LEEubz01NTYsQS5wPTU1NixBLnE9NTU2LEEucj0zMzMsQS5zPTUwMCxBLnQ9Mjc4LEEudT01NTYsQS52PTUwMCxBLnc9NzIyLEEueD01MDAsQS55PTUwMCxBLno9NTAwLEEuYnJhY2VsZWZ0PTMzNCxBLmJhcj0yNjAsQS5icmFjZXJpZ2h0PTMzNCxBLmFzY2lpdGlsZGU9NTg0LEEuZXhjbGFtZG93bj0zMzMsQS5jZW50PTU1NixBLnN0ZXJsaW5nPTU1NixBLmZyYWN0aW9uPTE2NyxBLnllbj01NTYsQS5mbG9yaW49NTU2LEEuc2VjdGlvbj01NTYsQS5jdXJyZW5jeT01NTYsQS5xdW90ZXNpbmdsZT0xOTEsQS5xdW90ZWRibGxlZnQ9MzMzLEEuZ3VpbGxlbW90bGVmdD01NTYsQS5ndWlsc2luZ2xsZWZ0PTMzMyxBLmd1aWxzaW5nbHJpZ2h0PTMzMyxBLmZpPTUwMCxBLmZsPTUwMCxBLmVuZGFzaD01NTYsQS5kYWdnZXI9NTU2LEEuZGFnZ2VyZGJsPTU1NixBLnBlcmlvZGNlbnRlcmVkPTI3OCxBLnBhcmFncmFwaD01MzcsQS5idWxsZXQ9MzUwLEEucXVvdGVzaW5nbGJhc2U9MjIyLEEucXVvdGVkYmxiYXNlPTMzMyxBLnF1b3RlZGJscmlnaHQ9MzMzLEEuZ3VpbGxlbW90cmlnaHQ9NTU2LEEuZWxsaXBzaXM9MWUzLEEucGVydGhvdXNhbmQ9MWUzLEEucXVlc3Rpb25kb3duPTYxMSxBLmdyYXZlPTMzMyxBLmFjdXRlPTMzMyxBLmNpcmN1bWZsZXg9MzMzLEEudGlsZGU9MzMzLEEubWFjcm9uPTMzMyxBLmJyZXZlPTMzMyxBLmRvdGFjY2VudD0zMzMsQS5kaWVyZXNpcz0zMzMsQS5yaW5nPTMzMyxBLmNlZGlsbGE9MzMzLEEuaHVuZ2FydW1sYXV0PTMzMyxBLm9nb25laz0zMzMsQS5jYXJvbj0zMzMsQS5lbWRhc2g9MWUzLEEuQUU9MWUzLEEub3JkZmVtaW5pbmU9MzcwLEEuTHNsYXNoPTU1NixBLk9zbGFzaD03NzgsQS5PRT0xZTMsQS5vcmRtYXNjdWxpbmU9MzY1LEEuYWU9ODg5LEEuZG90bGVzc2k9Mjc4LEEubHNsYXNoPTIyMixBLm9zbGFzaD02MTEsQS5vZT05NDQsQS5nZXJtYW5kYmxzPTYxMSxBLklkaWVyZXNpcz0yNzgsQS5lYWN1dGU9NTU2LEEuYWJyZXZlPTU1NixBLnVodW5nYXJ1bWxhdXQ9NTU2LEEuZWNhcm9uPTU1NixBLllkaWVyZXNpcz02NjcsQS5kaXZpZGU9NTg0LEEuWWFjdXRlPTY2NyxBLkFjaXJjdW1mbGV4PTY2NyxBLmFhY3V0ZT01NTYsQS5VY2lyY3VtZmxleD03MjIsQS55YWN1dGU9NTAwLEEuc2NvbW1hYWNjZW50PTUwMCxBLmVjaXJjdW1mbGV4PTU1NixBLlVyaW5nPTcyMixBLlVkaWVyZXNpcz03MjIsQS5hb2dvbmVrPTU1NixBLlVhY3V0ZT03MjIsQS51b2dvbmVrPTU1NixBLkVkaWVyZXNpcz02NjcsQS5EY3JvYXQ9NzIyLEEuY29tbWFhY2NlbnQ9MjUwLEEuY29weXJpZ2h0PTczNyxBLkVtYWNyb249NjY3LEEuY2Nhcm9uPTUwMCxBLmFyaW5nPTU1NixBLk5jb21tYWFjY2VudD03MjIsQS5sYWN1dGU9MjIyLEEuYWdyYXZlPTU1NixBLlRjb21tYWFjY2VudD02MTEsQS5DYWN1dGU9NzIyLEEuYXRpbGRlPTU1NixBLkVkb3RhY2NlbnQ9NjY3LEEuc2Nhcm9uPTUwMCxBLnNjZWRpbGxhPTUwMCxBLmlhY3V0ZT0yNzgsQS5sb3plbmdlPTQ3MSxBLlJjYXJvbj03MjIsQS5HY29tbWFhY2NlbnQ9Nzc4LEEudWNpcmN1bWZsZXg9NTU2LEEuYWNpcmN1bWZsZXg9NTU2LEEuQW1hY3Jvbj02NjcsQS5yY2Fyb249MzMzLEEuY2NlZGlsbGE9NTAwLEEuWmRvdGFjY2VudD02MTEsQS5UaG9ybj02NjcsQS5PbWFjcm9uPTc3OCxBLlJhY3V0ZT03MjIsQS5TYWN1dGU9NjY3LEEuZGNhcm9uPTY0MyxBLlVtYWNyb249NzIyLEEudXJpbmc9NTU2LEEudGhyZWVzdXBlcmlvcj0zMzMsQS5PZ3JhdmU9Nzc4LEEuQWdyYXZlPTY2NyxBLkFicmV2ZT02NjcsQS5tdWx0aXBseT01ODQsQS51YWN1dGU9NTU2LEEuVGNhcm9uPTYxMSxBLnBhcnRpYWxkaWZmPTQ3NixBLnlkaWVyZXNpcz01MDAsQS5OYWN1dGU9NzIyLEEuaWNpcmN1bWZsZXg9Mjc4LEEuRWNpcmN1bWZsZXg9NjY3LEEuYWRpZXJlc2lzPTU1NixBLmVkaWVyZXNpcz01NTYsQS5jYWN1dGU9NTAwLEEubmFjdXRlPTU1NixBLnVtYWNyb249NTU2LEEuTmNhcm9uPTcyMixBLklhY3V0ZT0yNzgsQS5wbHVzbWludXM9NTg0LEEuYnJva2VuYmFyPTI2MCxBLnJlZ2lzdGVyZWQ9NzM3LEEuR2JyZXZlPTc3OCxBLklkb3RhY2NlbnQ9Mjc4LEEuc3VtbWF0aW9uPTYwMCxBLkVncmF2ZT02NjcsQS5yYWN1dGU9MzMzLEEub21hY3Jvbj01NTYsQS5aYWN1dGU9NjExLEEuWmNhcm9uPTYxMSxBLmdyZWF0ZXJlcXVhbD01NDksQS5FdGg9NzIyLEEuQ2NlZGlsbGE9NzIyLEEubGNvbW1hYWNjZW50PTIyMixBLnRjYXJvbj0zMTcsQS5lb2dvbmVrPTU1NixBLlVvZ29uZWs9NzIyLEEuQWFjdXRlPTY2NyxBLkFkaWVyZXNpcz02NjcsQS5lZ3JhdmU9NTU2LEEuemFjdXRlPTUwMCxBLmlvZ29uZWs9MjIyLEEuT2FjdXRlPTc3OCxBLm9hY3V0ZT01NTYsQS5hbWFjcm9uPTU1NixBLnNhY3V0ZT01MDAsQS5pZGllcmVzaXM9Mjc4LEEuT2NpcmN1bWZsZXg9Nzc4LEEuVWdyYXZlPTcyMixBLkRlbHRhPTYxMixBLnRob3JuPTU1NixBLnR3b3N1cGVyaW9yPTMzMyxBLk9kaWVyZXNpcz03NzgsQS5tdT01NTYsQS5pZ3JhdmU9Mjc4LEEub2h1bmdhcnVtbGF1dD01NTYsQS5Fb2dvbmVrPTY2NyxBLmRjcm9hdD01NTYsQS50aHJlZXF1YXJ0ZXJzPTgzNCxBLlNjZWRpbGxhPTY2NyxBLmxjYXJvbj0yOTksQS5LY29tbWFhY2NlbnQ9NjY3LEEuTGFjdXRlPTU1NixBLnRyYWRlbWFyaz0xZTMsQS5lZG90YWNjZW50PTU1NixBLklncmF2ZT0yNzgsQS5JbWFjcm9uPTI3OCxBLkxjYXJvbj01NTYsQS5vbmVoYWxmPTgzNCxBLmxlc3NlcXVhbD01NDksQS5vY2lyY3VtZmxleD01NTYsQS5udGlsZGU9NTU2LEEuVWh1bmdhcnVtbGF1dD03MjIsQS5FYWN1dGU9NjY3LEEuZW1hY3Jvbj01NTYsQS5nYnJldmU9NTU2LEEub25lcXVhcnRlcj04MzQsQS5TY2Fyb249NjY3LEEuU2NvbW1hYWNjZW50PTY2NyxBLk9odW5nYXJ1bWxhdXQ9Nzc4LEEuZGVncmVlPTQwMCxBLm9ncmF2ZT01NTYsQS5DY2Fyb249NzIyLEEudWdyYXZlPTU1NixBLnJhZGljYWw9NDUzLEEuRGNhcm9uPTcyMixBLnJjb21tYWFjY2VudD0zMzMsQS5OdGlsZGU9NzIyLEEub3RpbGRlPTU1NixBLlJjb21tYWFjY2VudD03MjIsQS5MY29tbWFhY2NlbnQ9NTU2LEEuQXRpbGRlPTY2NyxBLkFvZ29uZWs9NjY3LEEuQXJpbmc9NjY3LEEuT3RpbGRlPTc3OCxBLnpkb3RhY2NlbnQ9NTAwLEEuRWNhcm9uPTY2NyxBLklvZ29uZWs9Mjc4LEEua2NvbW1hYWNjZW50PTUwMCxBLm1pbnVzPTU4NCxBLkljaXJjdW1mbGV4PTI3OCxBLm5jYXJvbj01NTYsQS50Y29tbWFhY2NlbnQ9Mjc4LEEubG9naWNhbG5vdD01ODQsQS5vZGllcmVzaXM9NTU2LEEudWRpZXJlc2lzPTU1NixBLm5vdGVxdWFsPTU0OSxBLmdjb21tYWFjY2VudD01NTYsQS5ldGg9NTU2LEEuemNhcm9uPTUwMCxBLm5jb21tYWFjY2VudD01NTYsQS5vbmVzdXBlcmlvcj0zMzMsQS5pbWFjcm9uPTI3OCxBLkV1cm89NTU2fSkpLEEuU3ltYm9sPWJBKChmdW5jdGlvbihBKXtBLnNwYWNlPTI1MCxBLmV4Y2xhbT0zMzMsQS51bml2ZXJzYWw9NzEzLEEubnVtYmVyc2lnbj01MDAsQS5leGlzdGVudGlhbD01NDksQS5wZXJjZW50PTgzMyxBLmFtcGVyc2FuZD03NzgsQS5zdWNodGhhdD00MzksQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlza21hdGg9NTAwLEEucGx1cz01NDksQS5jb21tYT0yNTAsQS5taW51cz01NDksQS5wZXJpb2Q9MjUwLEEuc2xhc2g9Mjc4LEEuemVybz01MDAsQS5vbmU9NTAwLEEudHdvPTUwMCxBLnRocmVlPTUwMCxBLmZvdXI9NTAwLEEuZml2ZT01MDAsQS5zaXg9NTAwLEEuc2V2ZW49NTAwLEEuZWlnaHQ9NTAwLEEubmluZT01MDAsQS5jb2xvbj0yNzgsQS5zZW1pY29sb249Mjc4LEEubGVzcz01NDksQS5lcXVhbD01NDksQS5ncmVhdGVyPTU0OSxBLnF1ZXN0aW9uPTQ0NCxBLmNvbmdydWVudD01NDksQS5BbHBoYT03MjIsQS5CZXRhPTY2NyxBLkNoaT03MjIsQS5EZWx0YT02MTIsQS5FcHNpbG9uPTYxMSxBLlBoaT03NjMsQS5HYW1tYT02MDMsQS5FdGE9NzIyLEEuSW90YT0zMzMsQS50aGV0YTE9NjMxLEEuS2FwcGE9NzIyLEEuTGFtYmRhPTY4NixBLk11PTg4OSxBLk51PTcyMixBLk9taWNyb249NzIyLEEuUGk9NzY4LEEuVGhldGE9NzQxLEEuUmhvPTU1NixBLlNpZ21hPTU5MixBLlRhdT02MTEsQS5VcHNpbG9uPTY5MCxBLnNpZ21hMT00MzksQS5PbWVnYT03NjgsQS5YaT02NDUsQS5Qc2k9Nzk1LEEuWmV0YT02MTEsQS5icmFja2V0bGVmdD0zMzMsQS50aGVyZWZvcmU9ODYzLEEuYnJhY2tldHJpZ2h0PTMzMyxBLnBlcnBlbmRpY3VsYXI9NjU4LEEudW5kZXJzY29yZT01MDAsQS5yYWRpY2FsZXg9NTAwLEEuYWxwaGE9NjMxLEEuYmV0YT01NDksQS5jaGk9NTQ5LEEuZGVsdGE9NDk0LEEuZXBzaWxvbj00MzksQS5waGk9NTIxLEEuZ2FtbWE9NDExLEEuZXRhPTYwMyxBLmlvdGE9MzI5LEEucGhpMT02MDMsQS5rYXBwYT01NDksQS5sYW1iZGE9NTQ5LEEubXU9NTc2LEEubnU9NTIxLEEub21pY3Jvbj01NDksQS5waT01NDksQS50aGV0YT01MjEsQS5yaG89NTQ5LEEuc2lnbWE9NjAzLEEudGF1PTQzOSxBLnVwc2lsb249NTc2LEEub21lZ2ExPTcxMyxBLm9tZWdhPTY4NixBLnhpPTQ5MyxBLnBzaT02ODYsQS56ZXRhPTQ5NCxBLmJyYWNlbGVmdD00ODAsQS5iYXI9MjAwLEEuYnJhY2VyaWdodD00ODAsQS5zaW1pbGFyPTU0OSxBLkV1cm89NzUwLEEuVXBzaWxvbjE9NjIwLEEubWludXRlPTI0NyxBLmxlc3NlcXVhbD01NDksQS5mcmFjdGlvbj0xNjcsQS5pbmZpbml0eT03MTMsQS5mbG9yaW49NTAwLEEuY2x1Yj03NTMsQS5kaWFtb25kPTc1MyxBLmhlYXJ0PTc1MyxBLnNwYWRlPTc1MyxBLmFycm93Ym90aD0xMDQyLEEuYXJyb3dsZWZ0PTk4NyxBLmFycm93dXA9NjAzLEEuYXJyb3dyaWdodD05ODcsQS5hcnJvd2Rvd249NjAzLEEuZGVncmVlPTQwMCxBLnBsdXNtaW51cz01NDksQS5zZWNvbmQ9NDExLEEuZ3JlYXRlcmVxdWFsPTU0OSxBLm11bHRpcGx5PTU0OSxBLnByb3BvcnRpb25hbD03MTMsQS5wYXJ0aWFsZGlmZj00OTQsQS5idWxsZXQ9NDYwLEEuZGl2aWRlPTU0OSxBLm5vdGVxdWFsPTU0OSxBLmVxdWl2YWxlbmNlPTU0OSxBLmFwcHJveGVxdWFsPTU0OSxBLmVsbGlwc2lzPTFlMyxBLmFycm93dmVydGV4PTYwMyxBLmFycm93aG9yaXpleD0xZTMsQS5jYXJyaWFnZXJldHVybj02NTgsQS5hbGVwaD04MjMsQS5JZnJha3R1cj02ODYsQS5SZnJha3R1cj03OTUsQS53ZWllcnN0cmFzcz05ODcsQS5jaXJjbGVtdWx0aXBseT03NjgsQS5jaXJjbGVwbHVzPTc2OCxBLmVtcHR5c2V0PTgyMyxBLmludGVyc2VjdGlvbj03NjgsQS51bmlvbj03NjgsQS5wcm9wZXJzdXBlcnNldD03MTMsQS5yZWZsZXhzdXBlcnNldD03MTMsQS5ub3RzdWJzZXQ9NzEzLEEucHJvcGVyc3Vic2V0PTcxMyxBLnJlZmxleHN1YnNldD03MTMsQS5lbGVtZW50PTcxMyxBLm5vdGVsZW1lbnQ9NzEzLEEuYW5nbGU9NzY4LEEuZ3JhZGllbnQ9NzEzLEEucmVnaXN0ZXJzZXJpZj03OTAsQS5jb3B5cmlnaHRzZXJpZj03OTAsQS50cmFkZW1hcmtzZXJpZj04OTAsQS5wcm9kdWN0PTgyMyxBLnJhZGljYWw9NTQ5LEEuZG90bWF0aD0yNTAsQS5sb2dpY2Fsbm90PTcxMyxBLmxvZ2ljYWxhbmQ9NjAzLEEubG9naWNhbG9yPTYwMyxBLmFycm93ZGJsYm90aD0xMDQyLEEuYXJyb3dkYmxsZWZ0PTk4NyxBLmFycm93ZGJsdXA9NjAzLEEuYXJyb3dkYmxyaWdodD05ODcsQS5hcnJvd2RibGRvd249NjAzLEEubG96ZW5nZT00OTQsQS5hbmdsZWxlZnQ9MzI5LEEucmVnaXN0ZXJzYW5zPTc5MCxBLmNvcHlyaWdodHNhbnM9NzkwLEEudHJhZGVtYXJrc2Fucz03ODYsQS5zdW1tYXRpb249NzEzLEEucGFyZW5sZWZ0dHA9Mzg0LEEucGFyZW5sZWZ0ZXg9Mzg0LEEucGFyZW5sZWZ0YnQ9Mzg0LEEuYnJhY2tldGxlZnR0cD0zODQsQS5icmFja2V0bGVmdGV4PTM4NCxBLmJyYWNrZXRsZWZ0YnQ9Mzg0LEEuYnJhY2VsZWZ0dHA9NDk0LEEuYnJhY2VsZWZ0bWlkPTQ5NCxBLmJyYWNlbGVmdGJ0PTQ5NCxBLmJyYWNlZXg9NDk0LEEuYW5nbGVyaWdodD0zMjksQS5pbnRlZ3JhbD0yNzQsQS5pbnRlZ3JhbHRwPTY4NixBLmludGVncmFsZXg9Njg2LEEuaW50ZWdyYWxidD02ODYsQS5wYXJlbnJpZ2h0dHA9Mzg0LEEucGFyZW5yaWdodGV4PTM4NCxBLnBhcmVucmlnaHRidD0zODQsQS5icmFja2V0cmlnaHR0cD0zODQsQS5icmFja2V0cmlnaHRleD0zODQsQS5icmFja2V0cmlnaHRidD0zODQsQS5icmFjZXJpZ2h0dHA9NDk0LEEuYnJhY2VyaWdodG1pZD00OTQsQS5icmFjZXJpZ2h0YnQ9NDk0LEEuYXBwbGU9NzkwfSkpLEFbIlRpbWVzLVJvbWFuIl09YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9MjUwLEEuZXhjbGFtPTMzMyxBLnF1b3RlZGJsPTQwOCxBLm51bWJlcnNpZ249NTAwLEEuZG9sbGFyPTUwMCxBLnBlcmNlbnQ9ODMzLEEuYW1wZXJzYW5kPTc3OCxBLnF1b3RlcmlnaHQ9MzMzLEEucGFyZW5sZWZ0PTMzMyxBLnBhcmVucmlnaHQ9MzMzLEEuYXN0ZXJpc2s9NTAwLEEucGx1cz01NjQsQS5jb21tYT0yNTAsQS5oeXBoZW49MzMzLEEucGVyaW9kPTI1MCxBLnNsYXNoPTI3OCxBLnplcm89NTAwLEEub25lPTUwMCxBLnR3bz01MDAsQS50aHJlZT01MDAsQS5mb3VyPTUwMCxBLmZpdmU9NTAwLEEuc2l4PTUwMCxBLnNldmVuPTUwMCxBLmVpZ2h0PTUwMCxBLm5pbmU9NTAwLEEuY29sb249Mjc4LEEuc2VtaWNvbG9uPTI3OCxBLmxlc3M9NTY0LEEuZXF1YWw9NTY0LEEuZ3JlYXRlcj01NjQsQS5xdWVzdGlvbj00NDQsQS5hdD05MjEsQS5BPTcyMixBLkI9NjY3LEEuQz02NjcsQS5EPTcyMixBLkU9NjExLEEuRj01NTYsQS5HPTcyMixBLkg9NzIyLEEuST0zMzMsQS5KPTM4OSxBLks9NzIyLEEuTD02MTEsQS5NPTg4OSxBLk49NzIyLEEuTz03MjIsQS5QPTU1NixBLlE9NzIyLEEuUj02NjcsQS5TPTU1NixBLlQ9NjExLEEuVT03MjIsQS5WPTcyMixBLlc9OTQ0LEEuWD03MjIsQS5ZPTcyMixBLlo9NjExLEEuYnJhY2tldGxlZnQ9MzMzLEEuYmFja3NsYXNoPTI3OCxBLmJyYWNrZXRyaWdodD0zMzMsQS5hc2NpaWNpcmN1bT00NjksQS51bmRlcnNjb3JlPTUwMCxBLnF1b3RlbGVmdD0zMzMsQS5hPTQ0NCxBLmI9NTAwLEEuYz00NDQsQS5kPTUwMCxBLmU9NDQ0LEEuZj0zMzMsQS5nPTUwMCxBLmg9NTAwLEEuaT0yNzgsQS5qPTI3OCxBLms9NTAwLEEubD0yNzgsQS5tPTc3OCxBLm49NTAwLEEubz01MDAsQS5wPTUwMCxBLnE9NTAwLEEucj0zMzMsQS5zPTM4OSxBLnQ9Mjc4LEEudT01MDAsQS52PTUwMCxBLnc9NzIyLEEueD01MDAsQS55PTUwMCxBLno9NDQ0LEEuYnJhY2VsZWZ0PTQ4MCxBLmJhcj0yMDAsQS5icmFjZXJpZ2h0PTQ4MCxBLmFzY2lpdGlsZGU9NTQxLEEuZXhjbGFtZG93bj0zMzMsQS5jZW50PTUwMCxBLnN0ZXJsaW5nPTUwMCxBLmZyYWN0aW9uPTE2NyxBLnllbj01MDAsQS5mbG9yaW49NTAwLEEuc2VjdGlvbj01MDAsQS5jdXJyZW5jeT01MDAsQS5xdW90ZXNpbmdsZT0xODAsQS5xdW90ZWRibGxlZnQ9NDQ0LEEuZ3VpbGxlbW90bGVmdD01MDAsQS5ndWlsc2luZ2xsZWZ0PTMzMyxBLmd1aWxzaW5nbHJpZ2h0PTMzMyxBLmZpPTU1NixBLmZsPTU1NixBLmVuZGFzaD01MDAsQS5kYWdnZXI9NTAwLEEuZGFnZ2VyZGJsPTUwMCxBLnBlcmlvZGNlbnRlcmVkPTI1MCxBLnBhcmFncmFwaD00NTMsQS5idWxsZXQ9MzUwLEEucXVvdGVzaW5nbGJhc2U9MzMzLEEucXVvdGVkYmxiYXNlPTQ0NCxBLnF1b3RlZGJscmlnaHQ9NDQ0LEEuZ3VpbGxlbW90cmlnaHQ9NTAwLEEuZWxsaXBzaXM9MWUzLEEucGVydGhvdXNhbmQ9MWUzLEEucXVlc3Rpb25kb3duPTQ0NCxBLmdyYXZlPTMzMyxBLmFjdXRlPTMzMyxBLmNpcmN1bWZsZXg9MzMzLEEudGlsZGU9MzMzLEEubWFjcm9uPTMzMyxBLmJyZXZlPTMzMyxBLmRvdGFjY2VudD0zMzMsQS5kaWVyZXNpcz0zMzMsQS5yaW5nPTMzMyxBLmNlZGlsbGE9MzMzLEEuaHVuZ2FydW1sYXV0PTMzMyxBLm9nb25laz0zMzMsQS5jYXJvbj0zMzMsQS5lbWRhc2g9MWUzLEEuQUU9ODg5LEEub3JkZmVtaW5pbmU9Mjc2LEEuTHNsYXNoPTYxMSxBLk9zbGFzaD03MjIsQS5PRT04ODksQS5vcmRtYXNjdWxpbmU9MzEwLEEuYWU9NjY3LEEuZG90bGVzc2k9Mjc4LEEubHNsYXNoPTI3OCxBLm9zbGFzaD01MDAsQS5vZT03MjIsQS5nZXJtYW5kYmxzPTUwMCxBLklkaWVyZXNpcz0zMzMsQS5lYWN1dGU9NDQ0LEEuYWJyZXZlPTQ0NCxBLnVodW5nYXJ1bWxhdXQ9NTAwLEEuZWNhcm9uPTQ0NCxBLllkaWVyZXNpcz03MjIsQS5kaXZpZGU9NTY0LEEuWWFjdXRlPTcyMixBLkFjaXJjdW1mbGV4PTcyMixBLmFhY3V0ZT00NDQsQS5VY2lyY3VtZmxleD03MjIsQS55YWN1dGU9NTAwLEEuc2NvbW1hYWNjZW50PTM4OSxBLmVjaXJjdW1mbGV4PTQ0NCxBLlVyaW5nPTcyMixBLlVkaWVyZXNpcz03MjIsQS5hb2dvbmVrPTQ0NCxBLlVhY3V0ZT03MjIsQS51b2dvbmVrPTUwMCxBLkVkaWVyZXNpcz02MTEsQS5EY3JvYXQ9NzIyLEEuY29tbWFhY2NlbnQ9MjUwLEEuY29weXJpZ2h0PTc2MCxBLkVtYWNyb249NjExLEEuY2Nhcm9uPTQ0NCxBLmFyaW5nPTQ0NCxBLk5jb21tYWFjY2VudD03MjIsQS5sYWN1dGU9Mjc4LEEuYWdyYXZlPTQ0NCxBLlRjb21tYWFjY2VudD02MTEsQS5DYWN1dGU9NjY3LEEuYXRpbGRlPTQ0NCxBLkVkb3RhY2NlbnQ9NjExLEEuc2Nhcm9uPTM4OSxBLnNjZWRpbGxhPTM4OSxBLmlhY3V0ZT0yNzgsQS5sb3plbmdlPTQ3MSxBLlJjYXJvbj02NjcsQS5HY29tbWFhY2NlbnQ9NzIyLEEudWNpcmN1bWZsZXg9NTAwLEEuYWNpcmN1bWZsZXg9NDQ0LEEuQW1hY3Jvbj03MjIsQS5yY2Fyb249MzMzLEEuY2NlZGlsbGE9NDQ0LEEuWmRvdGFjY2VudD02MTEsQS5UaG9ybj01NTYsQS5PbWFjcm9uPTcyMixBLlJhY3V0ZT02NjcsQS5TYWN1dGU9NTU2LEEuZGNhcm9uPTU4OCxBLlVtYWNyb249NzIyLEEudXJpbmc9NTAwLEEudGhyZWVzdXBlcmlvcj0zMDAsQS5PZ3JhdmU9NzIyLEEuQWdyYXZlPTcyMixBLkFicmV2ZT03MjIsQS5tdWx0aXBseT01NjQsQS51YWN1dGU9NTAwLEEuVGNhcm9uPTYxMSxBLnBhcnRpYWxkaWZmPTQ3NixBLnlkaWVyZXNpcz01MDAsQS5OYWN1dGU9NzIyLEEuaWNpcmN1bWZsZXg9Mjc4LEEuRWNpcmN1bWZsZXg9NjExLEEuYWRpZXJlc2lzPTQ0NCxBLmVkaWVyZXNpcz00NDQsQS5jYWN1dGU9NDQ0LEEubmFjdXRlPTUwMCxBLnVtYWNyb249NTAwLEEuTmNhcm9uPTcyMixBLklhY3V0ZT0zMzMsQS5wbHVzbWludXM9NTY0LEEuYnJva2VuYmFyPTIwMCxBLnJlZ2lzdGVyZWQ9NzYwLEEuR2JyZXZlPTcyMixBLklkb3RhY2NlbnQ9MzMzLEEuc3VtbWF0aW9uPTYwMCxBLkVncmF2ZT02MTEsQS5yYWN1dGU9MzMzLEEub21hY3Jvbj01MDAsQS5aYWN1dGU9NjExLEEuWmNhcm9uPTYxMSxBLmdyZWF0ZXJlcXVhbD01NDksQS5FdGg9NzIyLEEuQ2NlZGlsbGE9NjY3LEEubGNvbW1hYWNjZW50PTI3OCxBLnRjYXJvbj0zMjYsQS5lb2dvbmVrPTQ0NCxBLlVvZ29uZWs9NzIyLEEuQWFjdXRlPTcyMixBLkFkaWVyZXNpcz03MjIsQS5lZ3JhdmU9NDQ0LEEuemFjdXRlPTQ0NCxBLmlvZ29uZWs9Mjc4LEEuT2FjdXRlPTcyMixBLm9hY3V0ZT01MDAsQS5hbWFjcm9uPTQ0NCxBLnNhY3V0ZT0zODksQS5pZGllcmVzaXM9Mjc4LEEuT2NpcmN1bWZsZXg9NzIyLEEuVWdyYXZlPTcyMixBLkRlbHRhPTYxMixBLnRob3JuPTUwMCxBLnR3b3N1cGVyaW9yPTMwMCxBLk9kaWVyZXNpcz03MjIsQS5tdT01MDAsQS5pZ3JhdmU9Mjc4LEEub2h1bmdhcnVtbGF1dD01MDAsQS5Fb2dvbmVrPTYxMSxBLmRjcm9hdD01MDAsQS50aHJlZXF1YXJ0ZXJzPTc1MCxBLlNjZWRpbGxhPTU1NixBLmxjYXJvbj0zNDQsQS5LY29tbWFhY2NlbnQ9NzIyLEEuTGFjdXRlPTYxMSxBLnRyYWRlbWFyaz05ODAsQS5lZG90YWNjZW50PTQ0NCxBLklncmF2ZT0zMzMsQS5JbWFjcm9uPTMzMyxBLkxjYXJvbj02MTEsQS5vbmVoYWxmPTc1MCxBLmxlc3NlcXVhbD01NDksQS5vY2lyY3VtZmxleD01MDAsQS5udGlsZGU9NTAwLEEuVWh1bmdhcnVtbGF1dD03MjIsQS5FYWN1dGU9NjExLEEuZW1hY3Jvbj00NDQsQS5nYnJldmU9NTAwLEEub25lcXVhcnRlcj03NTAsQS5TY2Fyb249NTU2LEEuU2NvbW1hYWNjZW50PTU1NixBLk9odW5nYXJ1bWxhdXQ9NzIyLEEuZGVncmVlPTQwMCxBLm9ncmF2ZT01MDAsQS5DY2Fyb249NjY3LEEudWdyYXZlPTUwMCxBLnJhZGljYWw9NDUzLEEuRGNhcm9uPTcyMixBLnJjb21tYWFjY2VudD0zMzMsQS5OdGlsZGU9NzIyLEEub3RpbGRlPTUwMCxBLlJjb21tYWFjY2VudD02NjcsQS5MY29tbWFhY2NlbnQ9NjExLEEuQXRpbGRlPTcyMixBLkFvZ29uZWs9NzIyLEEuQXJpbmc9NzIyLEEuT3RpbGRlPTcyMixBLnpkb3RhY2NlbnQ9NDQ0LEEuRWNhcm9uPTYxMSxBLklvZ29uZWs9MzMzLEEua2NvbW1hYWNjZW50PTUwMCxBLm1pbnVzPTU2NCxBLkljaXJjdW1mbGV4PTMzMyxBLm5jYXJvbj01MDAsQS50Y29tbWFhY2NlbnQ9Mjc4LEEubG9naWNhbG5vdD01NjQsQS5vZGllcmVzaXM9NTAwLEEudWRpZXJlc2lzPTUwMCxBLm5vdGVxdWFsPTU0OSxBLmdjb21tYWFjY2VudD01MDAsQS5ldGg9NTAwLEEuemNhcm9uPTQ0NCxBLm5jb21tYWFjY2VudD01MDAsQS5vbmVzdXBlcmlvcj0zMDAsQS5pbWFjcm9uPTI3OCxBLkV1cm89NTAwfSkpLEFbIlRpbWVzLUJvbGQiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNTAsQS5leGNsYW09MzMzLEEucXVvdGVkYmw9NTU1LEEubnVtYmVyc2lnbj01MDAsQS5kb2xsYXI9NTAwLEEucGVyY2VudD0xZTMsQS5hbXBlcnNhbmQ9ODMzLEEucXVvdGVyaWdodD0zMzMsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz01MDAsQS5wbHVzPTU3MCxBLmNvbW1hPTI1MCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9MjUwLEEuc2xhc2g9Mjc4LEEuemVybz01MDAsQS5vbmU9NTAwLEEudHdvPTUwMCxBLnRocmVlPTUwMCxBLmZvdXI9NTAwLEEuZml2ZT01MDAsQS5zaXg9NTAwLEEuc2V2ZW49NTAwLEEuZWlnaHQ9NTAwLEEubmluZT01MDAsQS5jb2xvbj0zMzMsQS5zZW1pY29sb249MzMzLEEubGVzcz01NzAsQS5lcXVhbD01NzAsQS5ncmVhdGVyPTU3MCxBLnF1ZXN0aW9uPTUwMCxBLmF0PTkzMCxBLkE9NzIyLEEuQj02NjcsQS5DPTcyMixBLkQ9NzIyLEEuRT02NjcsQS5GPTYxMSxBLkc9Nzc4LEEuSD03NzgsQS5JPTM4OSxBLko9NTAwLEEuSz03NzgsQS5MPTY2NyxBLk09OTQ0LEEuTj03MjIsQS5PPTc3OCxBLlA9NjExLEEuUT03NzgsQS5SPTcyMixBLlM9NTU2LEEuVD02NjcsQS5VPTcyMixBLlY9NzIyLEEuVz0xZTMsQS5YPTcyMixBLlk9NzIyLEEuWj02NjcsQS5icmFja2V0bGVmdD0zMzMsQS5iYWNrc2xhc2g9Mjc4LEEuYnJhY2tldHJpZ2h0PTMzMyxBLmFzY2lpY2lyY3VtPTU4MSxBLnVuZGVyc2NvcmU9NTAwLEEucXVvdGVsZWZ0PTMzMyxBLmE9NTAwLEEuYj01NTYsQS5jPTQ0NCxBLmQ9NTU2LEEuZT00NDQsQS5mPTMzMyxBLmc9NTAwLEEuaD01NTYsQS5pPTI3OCxBLmo9MzMzLEEuaz01NTYsQS5sPTI3OCxBLm09ODMzLEEubj01NTYsQS5vPTUwMCxBLnA9NTU2LEEucT01NTYsQS5yPTQ0NCxBLnM9Mzg5LEEudD0zMzMsQS51PTU1NixBLnY9NTAwLEEudz03MjIsQS54PTUwMCxBLnk9NTAwLEEuej00NDQsQS5icmFjZWxlZnQ9Mzk0LEEuYmFyPTIyMCxBLmJyYWNlcmlnaHQ9Mzk0LEEuYXNjaWl0aWxkZT01MjAsQS5leGNsYW1kb3duPTMzMyxBLmNlbnQ9NTAwLEEuc3Rlcmxpbmc9NTAwLEEuZnJhY3Rpb249MTY3LEEueWVuPTUwMCxBLmZsb3Jpbj01MDAsQS5zZWN0aW9uPTUwMCxBLmN1cnJlbmN5PTUwMCxBLnF1b3Rlc2luZ2xlPTI3OCxBLnF1b3RlZGJsbGVmdD01MDAsQS5ndWlsbGVtb3RsZWZ0PTUwMCxBLmd1aWxzaW5nbGxlZnQ9MzMzLEEuZ3VpbHNpbmdscmlnaHQ9MzMzLEEuZmk9NTU2LEEuZmw9NTU2LEEuZW5kYXNoPTUwMCxBLmRhZ2dlcj01MDAsQS5kYWdnZXJkYmw9NTAwLEEucGVyaW9kY2VudGVyZWQ9MjUwLEEucGFyYWdyYXBoPTU0MCxBLmJ1bGxldD0zNTAsQS5xdW90ZXNpbmdsYmFzZT0zMzMsQS5xdW90ZWRibGJhc2U9NTAwLEEucXVvdGVkYmxyaWdodD01MDAsQS5ndWlsbGVtb3RyaWdodD01MDAsQS5lbGxpcHNpcz0xZTMsQS5wZXJ0aG91c2FuZD0xZTMsQS5xdWVzdGlvbmRvd249NTAwLEEuZ3JhdmU9MzMzLEEuYWN1dGU9MzMzLEEuY2lyY3VtZmxleD0zMzMsQS50aWxkZT0zMzMsQS5tYWNyb249MzMzLEEuYnJldmU9MzMzLEEuZG90YWNjZW50PTMzMyxBLmRpZXJlc2lzPTMzMyxBLnJpbmc9MzMzLEEuY2VkaWxsYT0zMzMsQS5odW5nYXJ1bWxhdXQ9MzMzLEEub2dvbmVrPTMzMyxBLmNhcm9uPTMzMyxBLmVtZGFzaD0xZTMsQS5BRT0xZTMsQS5vcmRmZW1pbmluZT0zMDAsQS5Mc2xhc2g9NjY3LEEuT3NsYXNoPTc3OCxBLk9FPTFlMyxBLm9yZG1hc2N1bGluZT0zMzAsQS5hZT03MjIsQS5kb3RsZXNzaT0yNzgsQS5sc2xhc2g9Mjc4LEEub3NsYXNoPTUwMCxBLm9lPTcyMixBLmdlcm1hbmRibHM9NTU2LEEuSWRpZXJlc2lzPTM4OSxBLmVhY3V0ZT00NDQsQS5hYnJldmU9NTAwLEEudWh1bmdhcnVtbGF1dD01NTYsQS5lY2Fyb249NDQ0LEEuWWRpZXJlc2lzPTcyMixBLmRpdmlkZT01NzAsQS5ZYWN1dGU9NzIyLEEuQWNpcmN1bWZsZXg9NzIyLEEuYWFjdXRlPTUwMCxBLlVjaXJjdW1mbGV4PTcyMixBLnlhY3V0ZT01MDAsQS5zY29tbWFhY2NlbnQ9Mzg5LEEuZWNpcmN1bWZsZXg9NDQ0LEEuVXJpbmc9NzIyLEEuVWRpZXJlc2lzPTcyMixBLmFvZ29uZWs9NTAwLEEuVWFjdXRlPTcyMixBLnVvZ29uZWs9NTU2LEEuRWRpZXJlc2lzPTY2NyxBLkRjcm9hdD03MjIsQS5jb21tYWFjY2VudD0yNTAsQS5jb3B5cmlnaHQ9NzQ3LEEuRW1hY3Jvbj02NjcsQS5jY2Fyb249NDQ0LEEuYXJpbmc9NTAwLEEuTmNvbW1hYWNjZW50PTcyMixBLmxhY3V0ZT0yNzgsQS5hZ3JhdmU9NTAwLEEuVGNvbW1hYWNjZW50PTY2NyxBLkNhY3V0ZT03MjIsQS5hdGlsZGU9NTAwLEEuRWRvdGFjY2VudD02NjcsQS5zY2Fyb249Mzg5LEEuc2NlZGlsbGE9Mzg5LEEuaWFjdXRlPTI3OCxBLmxvemVuZ2U9NDk0LEEuUmNhcm9uPTcyMixBLkdjb21tYWFjY2VudD03NzgsQS51Y2lyY3VtZmxleD01NTYsQS5hY2lyY3VtZmxleD01MDAsQS5BbWFjcm9uPTcyMixBLnJjYXJvbj00NDQsQS5jY2VkaWxsYT00NDQsQS5aZG90YWNjZW50PTY2NyxBLlRob3JuPTYxMSxBLk9tYWNyb249Nzc4LEEuUmFjdXRlPTcyMixBLlNhY3V0ZT01NTYsQS5kY2Fyb249NjcyLEEuVW1hY3Jvbj03MjIsQS51cmluZz01NTYsQS50aHJlZXN1cGVyaW9yPTMwMCxBLk9ncmF2ZT03NzgsQS5BZ3JhdmU9NzIyLEEuQWJyZXZlPTcyMixBLm11bHRpcGx5PTU3MCxBLnVhY3V0ZT01NTYsQS5UY2Fyb249NjY3LEEucGFydGlhbGRpZmY9NDk0LEEueWRpZXJlc2lzPTUwMCxBLk5hY3V0ZT03MjIsQS5pY2lyY3VtZmxleD0yNzgsQS5FY2lyY3VtZmxleD02NjcsQS5hZGllcmVzaXM9NTAwLEEuZWRpZXJlc2lzPTQ0NCxBLmNhY3V0ZT00NDQsQS5uYWN1dGU9NTU2LEEudW1hY3Jvbj01NTYsQS5OY2Fyb249NzIyLEEuSWFjdXRlPTM4OSxBLnBsdXNtaW51cz01NzAsQS5icm9rZW5iYXI9MjIwLEEucmVnaXN0ZXJlZD03NDcsQS5HYnJldmU9Nzc4LEEuSWRvdGFjY2VudD0zODksQS5zdW1tYXRpb249NjAwLEEuRWdyYXZlPTY2NyxBLnJhY3V0ZT00NDQsQS5vbWFjcm9uPTUwMCxBLlphY3V0ZT02NjcsQS5aY2Fyb249NjY3LEEuZ3JlYXRlcmVxdWFsPTU0OSxBLkV0aD03MjIsQS5DY2VkaWxsYT03MjIsQS5sY29tbWFhY2NlbnQ9Mjc4LEEudGNhcm9uPTQxNixBLmVvZ29uZWs9NDQ0LEEuVW9nb25laz03MjIsQS5BYWN1dGU9NzIyLEEuQWRpZXJlc2lzPTcyMixBLmVncmF2ZT00NDQsQS56YWN1dGU9NDQ0LEEuaW9nb25laz0yNzgsQS5PYWN1dGU9Nzc4LEEub2FjdXRlPTUwMCxBLmFtYWNyb249NTAwLEEuc2FjdXRlPTM4OSxBLmlkaWVyZXNpcz0yNzgsQS5PY2lyY3VtZmxleD03NzgsQS5VZ3JhdmU9NzIyLEEuRGVsdGE9NjEyLEEudGhvcm49NTU2LEEudHdvc3VwZXJpb3I9MzAwLEEuT2RpZXJlc2lzPTc3OCxBLm11PTU1NixBLmlncmF2ZT0yNzgsQS5vaHVuZ2FydW1sYXV0PTUwMCxBLkVvZ29uZWs9NjY3LEEuZGNyb2F0PTU1NixBLnRocmVlcXVhcnRlcnM9NzUwLEEuU2NlZGlsbGE9NTU2LEEubGNhcm9uPTM5NCxBLktjb21tYWFjY2VudD03NzgsQS5MYWN1dGU9NjY3LEEudHJhZGVtYXJrPTFlMyxBLmVkb3RhY2NlbnQ9NDQ0LEEuSWdyYXZlPTM4OSxBLkltYWNyb249Mzg5LEEuTGNhcm9uPTY2NyxBLm9uZWhhbGY9NzUwLEEubGVzc2VxdWFsPTU0OSxBLm9jaXJjdW1mbGV4PTUwMCxBLm50aWxkZT01NTYsQS5VaHVuZ2FydW1sYXV0PTcyMixBLkVhY3V0ZT02NjcsQS5lbWFjcm9uPTQ0NCxBLmdicmV2ZT01MDAsQS5vbmVxdWFydGVyPTc1MCxBLlNjYXJvbj01NTYsQS5TY29tbWFhY2NlbnQ9NTU2LEEuT2h1bmdhcnVtbGF1dD03NzgsQS5kZWdyZWU9NDAwLEEub2dyYXZlPTUwMCxBLkNjYXJvbj03MjIsQS51Z3JhdmU9NTU2LEEucmFkaWNhbD01NDksQS5EY2Fyb249NzIyLEEucmNvbW1hYWNjZW50PTQ0NCxBLk50aWxkZT03MjIsQS5vdGlsZGU9NTAwLEEuUmNvbW1hYWNjZW50PTcyMixBLkxjb21tYWFjY2VudD02NjcsQS5BdGlsZGU9NzIyLEEuQW9nb25laz03MjIsQS5BcmluZz03MjIsQS5PdGlsZGU9Nzc4LEEuemRvdGFjY2VudD00NDQsQS5FY2Fyb249NjY3LEEuSW9nb25laz0zODksQS5rY29tbWFhY2NlbnQ9NTU2LEEubWludXM9NTcwLEEuSWNpcmN1bWZsZXg9Mzg5LEEubmNhcm9uPTU1NixBLnRjb21tYWFjY2VudD0zMzMsQS5sb2dpY2Fsbm90PTU3MCxBLm9kaWVyZXNpcz01MDAsQS51ZGllcmVzaXM9NTU2LEEubm90ZXF1YWw9NTQ5LEEuZ2NvbW1hYWNjZW50PTUwMCxBLmV0aD01MDAsQS56Y2Fyb249NDQ0LEEubmNvbW1hYWNjZW50PTU1NixBLm9uZXN1cGVyaW9yPTMwMCxBLmltYWNyb249Mjc4LEEuRXVybz01MDB9KSksQVsiVGltZXMtQm9sZEl0YWxpYyJdPWJBKChmdW5jdGlvbihBKXtBLnNwYWNlPTI1MCxBLmV4Y2xhbT0zODksQS5xdW90ZWRibD01NTUsQS5udW1iZXJzaWduPTUwMCxBLmRvbGxhcj01MDAsQS5wZXJjZW50PTgzMyxBLmFtcGVyc2FuZD03NzgsQS5xdW90ZXJpZ2h0PTMzMyxBLnBhcmVubGVmdD0zMzMsQS5wYXJlbnJpZ2h0PTMzMyxBLmFzdGVyaXNrPTUwMCxBLnBsdXM9NTcwLEEuY29tbWE9MjUwLEEuaHlwaGVuPTMzMyxBLnBlcmlvZD0yNTAsQS5zbGFzaD0yNzgsQS56ZXJvPTUwMCxBLm9uZT01MDAsQS50d289NTAwLEEudGhyZWU9NTAwLEEuZm91cj01MDAsQS5maXZlPTUwMCxBLnNpeD01MDAsQS5zZXZlbj01MDAsQS5laWdodD01MDAsQS5uaW5lPTUwMCxBLmNvbG9uPTMzMyxBLnNlbWljb2xvbj0zMzMsQS5sZXNzPTU3MCxBLmVxdWFsPTU3MCxBLmdyZWF0ZXI9NTcwLEEucXVlc3Rpb249NTAwLEEuYXQ9ODMyLEEuQT02NjcsQS5CPTY2NyxBLkM9NjY3LEEuRD03MjIsQS5FPTY2NyxBLkY9NjY3LEEuRz03MjIsQS5IPTc3OCxBLkk9Mzg5LEEuSj01MDAsQS5LPTY2NyxBLkw9NjExLEEuTT04ODksQS5OPTcyMixBLk89NzIyLEEuUD02MTEsQS5RPTcyMixBLlI9NjY3LEEuUz01NTYsQS5UPTYxMSxBLlU9NzIyLEEuVj02NjcsQS5XPTg4OSxBLlg9NjY3LEEuWT02MTEsQS5aPTYxMSxBLmJyYWNrZXRsZWZ0PTMzMyxBLmJhY2tzbGFzaD0yNzgsQS5icmFja2V0cmlnaHQ9MzMzLEEuYXNjaWljaXJjdW09NTcwLEEudW5kZXJzY29yZT01MDAsQS5xdW90ZWxlZnQ9MzMzLEEuYT01MDAsQS5iPTUwMCxBLmM9NDQ0LEEuZD01MDAsQS5lPTQ0NCxBLmY9MzMzLEEuZz01MDAsQS5oPTU1NixBLmk9Mjc4LEEuaj0yNzgsQS5rPTUwMCxBLmw9Mjc4LEEubT03NzgsQS5uPTU1NixBLm89NTAwLEEucD01MDAsQS5xPTUwMCxBLnI9Mzg5LEEucz0zODksQS50PTI3OCxBLnU9NTU2LEEudj00NDQsQS53PTY2NyxBLng9NTAwLEEueT00NDQsQS56PTM4OSxBLmJyYWNlbGVmdD0zNDgsQS5iYXI9MjIwLEEuYnJhY2VyaWdodD0zNDgsQS5hc2NpaXRpbGRlPTU3MCxBLmV4Y2xhbWRvd249Mzg5LEEuY2VudD01MDAsQS5zdGVybGluZz01MDAsQS5mcmFjdGlvbj0xNjcsQS55ZW49NTAwLEEuZmxvcmluPTUwMCxBLnNlY3Rpb249NTAwLEEuY3VycmVuY3k9NTAwLEEucXVvdGVzaW5nbGU9Mjc4LEEucXVvdGVkYmxsZWZ0PTUwMCxBLmd1aWxsZW1vdGxlZnQ9NTAwLEEuZ3VpbHNpbmdsbGVmdD0zMzMsQS5ndWlsc2luZ2xyaWdodD0zMzMsQS5maT01NTYsQS5mbD01NTYsQS5lbmRhc2g9NTAwLEEuZGFnZ2VyPTUwMCxBLmRhZ2dlcmRibD01MDAsQS5wZXJpb2RjZW50ZXJlZD0yNTAsQS5wYXJhZ3JhcGg9NTAwLEEuYnVsbGV0PTM1MCxBLnF1b3Rlc2luZ2xiYXNlPTMzMyxBLnF1b3RlZGJsYmFzZT01MDAsQS5xdW90ZWRibHJpZ2h0PTUwMCxBLmd1aWxsZW1vdHJpZ2h0PTUwMCxBLmVsbGlwc2lzPTFlMyxBLnBlcnRob3VzYW5kPTFlMyxBLnF1ZXN0aW9uZG93bj01MDAsQS5ncmF2ZT0zMzMsQS5hY3V0ZT0zMzMsQS5jaXJjdW1mbGV4PTMzMyxBLnRpbGRlPTMzMyxBLm1hY3Jvbj0zMzMsQS5icmV2ZT0zMzMsQS5kb3RhY2NlbnQ9MzMzLEEuZGllcmVzaXM9MzMzLEEucmluZz0zMzMsQS5jZWRpbGxhPTMzMyxBLmh1bmdhcnVtbGF1dD0zMzMsQS5vZ29uZWs9MzMzLEEuY2Fyb249MzMzLEEuZW1kYXNoPTFlMyxBLkFFPTk0NCxBLm9yZGZlbWluaW5lPTI2NixBLkxzbGFzaD02MTEsQS5Pc2xhc2g9NzIyLEEuT0U9OTQ0LEEub3JkbWFzY3VsaW5lPTMwMCxBLmFlPTcyMixBLmRvdGxlc3NpPTI3OCxBLmxzbGFzaD0yNzgsQS5vc2xhc2g9NTAwLEEub2U9NzIyLEEuZ2VybWFuZGJscz01MDAsQS5JZGllcmVzaXM9Mzg5LEEuZWFjdXRlPTQ0NCxBLmFicmV2ZT01MDAsQS51aHVuZ2FydW1sYXV0PTU1NixBLmVjYXJvbj00NDQsQS5ZZGllcmVzaXM9NjExLEEuZGl2aWRlPTU3MCxBLllhY3V0ZT02MTEsQS5BY2lyY3VtZmxleD02NjcsQS5hYWN1dGU9NTAwLEEuVWNpcmN1bWZsZXg9NzIyLEEueWFjdXRlPTQ0NCxBLnNjb21tYWFjY2VudD0zODksQS5lY2lyY3VtZmxleD00NDQsQS5VcmluZz03MjIsQS5VZGllcmVzaXM9NzIyLEEuYW9nb25laz01MDAsQS5VYWN1dGU9NzIyLEEudW9nb25laz01NTYsQS5FZGllcmVzaXM9NjY3LEEuRGNyb2F0PTcyMixBLmNvbW1hYWNjZW50PTI1MCxBLmNvcHlyaWdodD03NDcsQS5FbWFjcm9uPTY2NyxBLmNjYXJvbj00NDQsQS5hcmluZz01MDAsQS5OY29tbWFhY2NlbnQ9NzIyLEEubGFjdXRlPTI3OCxBLmFncmF2ZT01MDAsQS5UY29tbWFhY2NlbnQ9NjExLEEuQ2FjdXRlPTY2NyxBLmF0aWxkZT01MDAsQS5FZG90YWNjZW50PTY2NyxBLnNjYXJvbj0zODksQS5zY2VkaWxsYT0zODksQS5pYWN1dGU9Mjc4LEEubG96ZW5nZT00OTQsQS5SY2Fyb249NjY3LEEuR2NvbW1hYWNjZW50PTcyMixBLnVjaXJjdW1mbGV4PTU1NixBLmFjaXJjdW1mbGV4PTUwMCxBLkFtYWNyb249NjY3LEEucmNhcm9uPTM4OSxBLmNjZWRpbGxhPTQ0NCxBLlpkb3RhY2NlbnQ9NjExLEEuVGhvcm49NjExLEEuT21hY3Jvbj03MjIsQS5SYWN1dGU9NjY3LEEuU2FjdXRlPTU1NixBLmRjYXJvbj02MDgsQS5VbWFjcm9uPTcyMixBLnVyaW5nPTU1NixBLnRocmVlc3VwZXJpb3I9MzAwLEEuT2dyYXZlPTcyMixBLkFncmF2ZT02NjcsQS5BYnJldmU9NjY3LEEubXVsdGlwbHk9NTcwLEEudWFjdXRlPTU1NixBLlRjYXJvbj02MTEsQS5wYXJ0aWFsZGlmZj00OTQsQS55ZGllcmVzaXM9NDQ0LEEuTmFjdXRlPTcyMixBLmljaXJjdW1mbGV4PTI3OCxBLkVjaXJjdW1mbGV4PTY2NyxBLmFkaWVyZXNpcz01MDAsQS5lZGllcmVzaXM9NDQ0LEEuY2FjdXRlPTQ0NCxBLm5hY3V0ZT01NTYsQS51bWFjcm9uPTU1NixBLk5jYXJvbj03MjIsQS5JYWN1dGU9Mzg5LEEucGx1c21pbnVzPTU3MCxBLmJyb2tlbmJhcj0yMjAsQS5yZWdpc3RlcmVkPTc0NyxBLkdicmV2ZT03MjIsQS5JZG90YWNjZW50PTM4OSxBLnN1bW1hdGlvbj02MDAsQS5FZ3JhdmU9NjY3LEEucmFjdXRlPTM4OSxBLm9tYWNyb249NTAwLEEuWmFjdXRlPTYxMSxBLlpjYXJvbj02MTEsQS5ncmVhdGVyZXF1YWw9NTQ5LEEuRXRoPTcyMixBLkNjZWRpbGxhPTY2NyxBLmxjb21tYWFjY2VudD0yNzgsQS50Y2Fyb249MzY2LEEuZW9nb25laz00NDQsQS5Vb2dvbmVrPTcyMixBLkFhY3V0ZT02NjcsQS5BZGllcmVzaXM9NjY3LEEuZWdyYXZlPTQ0NCxBLnphY3V0ZT0zODksQS5pb2dvbmVrPTI3OCxBLk9hY3V0ZT03MjIsQS5vYWN1dGU9NTAwLEEuYW1hY3Jvbj01MDAsQS5zYWN1dGU9Mzg5LEEuaWRpZXJlc2lzPTI3OCxBLk9jaXJjdW1mbGV4PTcyMixBLlVncmF2ZT03MjIsQS5EZWx0YT02MTIsQS50aG9ybj01MDAsQS50d29zdXBlcmlvcj0zMDAsQS5PZGllcmVzaXM9NzIyLEEubXU9NTc2LEEuaWdyYXZlPTI3OCxBLm9odW5nYXJ1bWxhdXQ9NTAwLEEuRW9nb25laz02NjcsQS5kY3JvYXQ9NTAwLEEudGhyZWVxdWFydGVycz03NTAsQS5TY2VkaWxsYT01NTYsQS5sY2Fyb249MzgyLEEuS2NvbW1hYWNjZW50PTY2NyxBLkxhY3V0ZT02MTEsQS50cmFkZW1hcms9MWUzLEEuZWRvdGFjY2VudD00NDQsQS5JZ3JhdmU9Mzg5LEEuSW1hY3Jvbj0zODksQS5MY2Fyb249NjExLEEub25laGFsZj03NTAsQS5sZXNzZXF1YWw9NTQ5LEEub2NpcmN1bWZsZXg9NTAwLEEubnRpbGRlPTU1NixBLlVodW5nYXJ1bWxhdXQ9NzIyLEEuRWFjdXRlPTY2NyxBLmVtYWNyb249NDQ0LEEuZ2JyZXZlPTUwMCxBLm9uZXF1YXJ0ZXI9NzUwLEEuU2Nhcm9uPTU1NixBLlNjb21tYWFjY2VudD01NTYsQS5PaHVuZ2FydW1sYXV0PTcyMixBLmRlZ3JlZT00MDAsQS5vZ3JhdmU9NTAwLEEuQ2Nhcm9uPTY2NyxBLnVncmF2ZT01NTYsQS5yYWRpY2FsPTU0OSxBLkRjYXJvbj03MjIsQS5yY29tbWFhY2NlbnQ9Mzg5LEEuTnRpbGRlPTcyMixBLm90aWxkZT01MDAsQS5SY29tbWFhY2NlbnQ9NjY3LEEuTGNvbW1hYWNjZW50PTYxMSxBLkF0aWxkZT02NjcsQS5Bb2dvbmVrPTY2NyxBLkFyaW5nPTY2NyxBLk90aWxkZT03MjIsQS56ZG90YWNjZW50PTM4OSxBLkVjYXJvbj02NjcsQS5Jb2dvbmVrPTM4OSxBLmtjb21tYWFjY2VudD01MDAsQS5taW51cz02MDYsQS5JY2lyY3VtZmxleD0zODksQS5uY2Fyb249NTU2LEEudGNvbW1hYWNjZW50PTI3OCxBLmxvZ2ljYWxub3Q9NjA2LEEub2RpZXJlc2lzPTUwMCxBLnVkaWVyZXNpcz01NTYsQS5ub3RlcXVhbD01NDksQS5nY29tbWFhY2NlbnQ9NTAwLEEuZXRoPTUwMCxBLnpjYXJvbj0zODksQS5uY29tbWFhY2NlbnQ9NTU2LEEub25lc3VwZXJpb3I9MzAwLEEuaW1hY3Jvbj0yNzgsQS5FdXJvPTUwMH0pKSxBWyJUaW1lcy1JdGFsaWMiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNTAsQS5leGNsYW09MzMzLEEucXVvdGVkYmw9NDIwLEEubnVtYmVyc2lnbj01MDAsQS5kb2xsYXI9NTAwLEEucGVyY2VudD04MzMsQS5hbXBlcnNhbmQ9Nzc4LEEucXVvdGVyaWdodD0zMzMsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz01MDAsQS5wbHVzPTY3NSxBLmNvbW1hPTI1MCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9MjUwLEEuc2xhc2g9Mjc4LEEuemVybz01MDAsQS5vbmU9NTAwLEEudHdvPTUwMCxBLnRocmVlPTUwMCxBLmZvdXI9NTAwLEEuZml2ZT01MDAsQS5zaXg9NTAwLEEuc2V2ZW49NTAwLEEuZWlnaHQ9NTAwLEEubmluZT01MDAsQS5jb2xvbj0zMzMsQS5zZW1pY29sb249MzMzLEEubGVzcz02NzUsQS5lcXVhbD02NzUsQS5ncmVhdGVyPTY3NSxBLnF1ZXN0aW9uPTUwMCxBLmF0PTkyMCxBLkE9NjExLEEuQj02MTEsQS5DPTY2NyxBLkQ9NzIyLEEuRT02MTEsQS5GPTYxMSxBLkc9NzIyLEEuSD03MjIsQS5JPTMzMyxBLko9NDQ0LEEuSz02NjcsQS5MPTU1NixBLk09ODMzLEEuTj02NjcsQS5PPTcyMixBLlA9NjExLEEuUT03MjIsQS5SPTYxMSxBLlM9NTAwLEEuVD01NTYsQS5VPTcyMixBLlY9NjExLEEuVz04MzMsQS5YPTYxMSxBLlk9NTU2LEEuWj01NTYsQS5icmFja2V0bGVmdD0zODksQS5iYWNrc2xhc2g9Mjc4LEEuYnJhY2tldHJpZ2h0PTM4OSxBLmFzY2lpY2lyY3VtPTQyMixBLnVuZGVyc2NvcmU9NTAwLEEucXVvdGVsZWZ0PTMzMyxBLmE9NTAwLEEuYj01MDAsQS5jPTQ0NCxBLmQ9NTAwLEEuZT00NDQsQS5mPTI3OCxBLmc9NTAwLEEuaD01MDAsQS5pPTI3OCxBLmo9Mjc4LEEuaz00NDQsQS5sPTI3OCxBLm09NzIyLEEubj01MDAsQS5vPTUwMCxBLnA9NTAwLEEucT01MDAsQS5yPTM4OSxBLnM9Mzg5LEEudD0yNzgsQS51PTUwMCxBLnY9NDQ0LEEudz02NjcsQS54PTQ0NCxBLnk9NDQ0LEEuej0zODksQS5icmFjZWxlZnQ9NDAwLEEuYmFyPTI3NSxBLmJyYWNlcmlnaHQ9NDAwLEEuYXNjaWl0aWxkZT01NDEsQS5leGNsYW1kb3duPTM4OSxBLmNlbnQ9NTAwLEEuc3Rlcmxpbmc9NTAwLEEuZnJhY3Rpb249MTY3LEEueWVuPTUwMCxBLmZsb3Jpbj01MDAsQS5zZWN0aW9uPTUwMCxBLmN1cnJlbmN5PTUwMCxBLnF1b3Rlc2luZ2xlPTIxNCxBLnF1b3RlZGJsbGVmdD01NTYsQS5ndWlsbGVtb3RsZWZ0PTUwMCxBLmd1aWxzaW5nbGxlZnQ9MzMzLEEuZ3VpbHNpbmdscmlnaHQ9MzMzLEEuZmk9NTAwLEEuZmw9NTAwLEEuZW5kYXNoPTUwMCxBLmRhZ2dlcj01MDAsQS5kYWdnZXJkYmw9NTAwLEEucGVyaW9kY2VudGVyZWQ9MjUwLEEucGFyYWdyYXBoPTUyMyxBLmJ1bGxldD0zNTAsQS5xdW90ZXNpbmdsYmFzZT0zMzMsQS5xdW90ZWRibGJhc2U9NTU2LEEucXVvdGVkYmxyaWdodD01NTYsQS5ndWlsbGVtb3RyaWdodD01MDAsQS5lbGxpcHNpcz04ODksQS5wZXJ0aG91c2FuZD0xZTMsQS5xdWVzdGlvbmRvd249NTAwLEEuZ3JhdmU9MzMzLEEuYWN1dGU9MzMzLEEuY2lyY3VtZmxleD0zMzMsQS50aWxkZT0zMzMsQS5tYWNyb249MzMzLEEuYnJldmU9MzMzLEEuZG90YWNjZW50PTMzMyxBLmRpZXJlc2lzPTMzMyxBLnJpbmc9MzMzLEEuY2VkaWxsYT0zMzMsQS5odW5nYXJ1bWxhdXQ9MzMzLEEub2dvbmVrPTMzMyxBLmNhcm9uPTMzMyxBLmVtZGFzaD04ODksQS5BRT04ODksQS5vcmRmZW1pbmluZT0yNzYsQS5Mc2xhc2g9NTU2LEEuT3NsYXNoPTcyMixBLk9FPTk0NCxBLm9yZG1hc2N1bGluZT0zMTAsQS5hZT02NjcsQS5kb3RsZXNzaT0yNzgsQS5sc2xhc2g9Mjc4LEEub3NsYXNoPTUwMCxBLm9lPTY2NyxBLmdlcm1hbmRibHM9NTAwLEEuSWRpZXJlc2lzPTMzMyxBLmVhY3V0ZT00NDQsQS5hYnJldmU9NTAwLEEudWh1bmdhcnVtbGF1dD01MDAsQS5lY2Fyb249NDQ0LEEuWWRpZXJlc2lzPTU1NixBLmRpdmlkZT02NzUsQS5ZYWN1dGU9NTU2LEEuQWNpcmN1bWZsZXg9NjExLEEuYWFjdXRlPTUwMCxBLlVjaXJjdW1mbGV4PTcyMixBLnlhY3V0ZT00NDQsQS5zY29tbWFhY2NlbnQ9Mzg5LEEuZWNpcmN1bWZsZXg9NDQ0LEEuVXJpbmc9NzIyLEEuVWRpZXJlc2lzPTcyMixBLmFvZ29uZWs9NTAwLEEuVWFjdXRlPTcyMixBLnVvZ29uZWs9NTAwLEEuRWRpZXJlc2lzPTYxMSxBLkRjcm9hdD03MjIsQS5jb21tYWFjY2VudD0yNTAsQS5jb3B5cmlnaHQ9NzYwLEEuRW1hY3Jvbj02MTEsQS5jY2Fyb249NDQ0LEEuYXJpbmc9NTAwLEEuTmNvbW1hYWNjZW50PTY2NyxBLmxhY3V0ZT0yNzgsQS5hZ3JhdmU9NTAwLEEuVGNvbW1hYWNjZW50PTU1NixBLkNhY3V0ZT02NjcsQS5hdGlsZGU9NTAwLEEuRWRvdGFjY2VudD02MTEsQS5zY2Fyb249Mzg5LEEuc2NlZGlsbGE9Mzg5LEEuaWFjdXRlPTI3OCxBLmxvemVuZ2U9NDcxLEEuUmNhcm9uPTYxMSxBLkdjb21tYWFjY2VudD03MjIsQS51Y2lyY3VtZmxleD01MDAsQS5hY2lyY3VtZmxleD01MDAsQS5BbWFjcm9uPTYxMSxBLnJjYXJvbj0zODksQS5jY2VkaWxsYT00NDQsQS5aZG90YWNjZW50PTU1NixBLlRob3JuPTYxMSxBLk9tYWNyb249NzIyLEEuUmFjdXRlPTYxMSxBLlNhY3V0ZT01MDAsQS5kY2Fyb249NTQ0LEEuVW1hY3Jvbj03MjIsQS51cmluZz01MDAsQS50aHJlZXN1cGVyaW9yPTMwMCxBLk9ncmF2ZT03MjIsQS5BZ3JhdmU9NjExLEEuQWJyZXZlPTYxMSxBLm11bHRpcGx5PTY3NSxBLnVhY3V0ZT01MDAsQS5UY2Fyb249NTU2LEEucGFydGlhbGRpZmY9NDc2LEEueWRpZXJlc2lzPTQ0NCxBLk5hY3V0ZT02NjcsQS5pY2lyY3VtZmxleD0yNzgsQS5FY2lyY3VtZmxleD02MTEsQS5hZGllcmVzaXM9NTAwLEEuZWRpZXJlc2lzPTQ0NCxBLmNhY3V0ZT00NDQsQS5uYWN1dGU9NTAwLEEudW1hY3Jvbj01MDAsQS5OY2Fyb249NjY3LEEuSWFjdXRlPTMzMyxBLnBsdXNtaW51cz02NzUsQS5icm9rZW5iYXI9Mjc1LEEucmVnaXN0ZXJlZD03NjAsQS5HYnJldmU9NzIyLEEuSWRvdGFjY2VudD0zMzMsQS5zdW1tYXRpb249NjAwLEEuRWdyYXZlPTYxMSxBLnJhY3V0ZT0zODksQS5vbWFjcm9uPTUwMCxBLlphY3V0ZT01NTYsQS5aY2Fyb249NTU2LEEuZ3JlYXRlcmVxdWFsPTU0OSxBLkV0aD03MjIsQS5DY2VkaWxsYT02NjcsQS5sY29tbWFhY2NlbnQ9Mjc4LEEudGNhcm9uPTMwMCxBLmVvZ29uZWs9NDQ0LEEuVW9nb25laz03MjIsQS5BYWN1dGU9NjExLEEuQWRpZXJlc2lzPTYxMSxBLmVncmF2ZT00NDQsQS56YWN1dGU9Mzg5LEEuaW9nb25laz0yNzgsQS5PYWN1dGU9NzIyLEEub2FjdXRlPTUwMCxBLmFtYWNyb249NTAwLEEuc2FjdXRlPTM4OSxBLmlkaWVyZXNpcz0yNzgsQS5PY2lyY3VtZmxleD03MjIsQS5VZ3JhdmU9NzIyLEEuRGVsdGE9NjEyLEEudGhvcm49NTAwLEEudHdvc3VwZXJpb3I9MzAwLEEuT2RpZXJlc2lzPTcyMixBLm11PTUwMCxBLmlncmF2ZT0yNzgsQS5vaHVuZ2FydW1sYXV0PTUwMCxBLkVvZ29uZWs9NjExLEEuZGNyb2F0PTUwMCxBLnRocmVlcXVhcnRlcnM9NzUwLEEuU2NlZGlsbGE9NTAwLEEubGNhcm9uPTMwMCxBLktjb21tYWFjY2VudD02NjcsQS5MYWN1dGU9NTU2LEEudHJhZGVtYXJrPTk4MCxBLmVkb3RhY2NlbnQ9NDQ0LEEuSWdyYXZlPTMzMyxBLkltYWNyb249MzMzLEEuTGNhcm9uPTYxMSxBLm9uZWhhbGY9NzUwLEEubGVzc2VxdWFsPTU0OSxBLm9jaXJjdW1mbGV4PTUwMCxBLm50aWxkZT01MDAsQS5VaHVuZ2FydW1sYXV0PTcyMixBLkVhY3V0ZT02MTEsQS5lbWFjcm9uPTQ0NCxBLmdicmV2ZT01MDAsQS5vbmVxdWFydGVyPTc1MCxBLlNjYXJvbj01MDAsQS5TY29tbWFhY2NlbnQ9NTAwLEEuT2h1bmdhcnVtbGF1dD03MjIsQS5kZWdyZWU9NDAwLEEub2dyYXZlPTUwMCxBLkNjYXJvbj02NjcsQS51Z3JhdmU9NTAwLEEucmFkaWNhbD00NTMsQS5EY2Fyb249NzIyLEEucmNvbW1hYWNjZW50PTM4OSxBLk50aWxkZT02NjcsQS5vdGlsZGU9NTAwLEEuUmNvbW1hYWNjZW50PTYxMSxBLkxjb21tYWFjY2VudD01NTYsQS5BdGlsZGU9NjExLEEuQW9nb25laz02MTEsQS5BcmluZz02MTEsQS5PdGlsZGU9NzIyLEEuemRvdGFjY2VudD0zODksQS5FY2Fyb249NjExLEEuSW9nb25laz0zMzMsQS5rY29tbWFhY2NlbnQ9NDQ0LEEubWludXM9Njc1LEEuSWNpcmN1bWZsZXg9MzMzLEEubmNhcm9uPTUwMCxBLnRjb21tYWFjY2VudD0yNzgsQS5sb2dpY2Fsbm90PTY3NSxBLm9kaWVyZXNpcz01MDAsQS51ZGllcmVzaXM9NTAwLEEubm90ZXF1YWw9NTQ5LEEuZ2NvbW1hYWNjZW50PTUwMCxBLmV0aD01MDAsQS56Y2Fyb249Mzg5LEEubmNvbW1hYWNjZW50PTUwMCxBLm9uZXN1cGVyaW9yPTMwMCxBLmltYWNyb249Mjc4LEEuRXVybz01MDB9KSksQS5aYXBmRGluZ2JhdHM9YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9Mjc4LEEuYTE9OTc0LEEuYTI9OTYxLEEuYTIwMj05NzQsQS5hMz05ODAsQS5hND03MTksQS5hNT03ODksQS5hMTE5PTc5MCxBLmExMTg9NzkxLEEuYTExNz02OTAsQS5hMTE9OTYwLEEuYTEyPTkzOSxBLmExMz01NDksQS5hMTQ9ODU1LEEuYTE1PTkxMSxBLmExNj05MzMsQS5hMTA1PTkxMSxBLmExNz05NDUsQS5hMTg9OTc0LEEuYTE5PTc1NSxBLmEyMD04NDYsQS5hMjE9NzYyLEEuYTIyPTc2MSxBLmEyMz01NzEsQS5hMjQ9Njc3LEEuYTI1PTc2MyxBLmEyNj03NjAsQS5hMjc9NzU5LEEuYTI4PTc1NCxBLmE2PTQ5NCxBLmE3PTU1MixBLmE4PTUzNyxBLmE5PTU3NyxBLmExMD02OTIsQS5hMjk9Nzg2LEEuYTMwPTc4OCxBLmEzMT03ODgsQS5hMzI9NzkwLEEuYTMzPTc5MyxBLmEzND03OTQsQS5hMzU9ODE2LEEuYTM2PTgyMyxBLmEzNz03ODksQS5hMzg9ODQxLEEuYTM5PTgyMyxBLmE0MD04MzMsQS5hNDE9ODE2LEEuYTQyPTgzMSxBLmE0Mz05MjMsQS5hNDQ9NzQ0LEEuYTQ1PTcyMyxBLmE0Nj03NDksQS5hNDc9NzkwLEEuYTQ4PTc5MixBLmE0OT02OTUsQS5hNTA9Nzc2LEEuYTUxPTc2OCxBLmE1Mj03OTIsQS5hNTM9NzU5LEEuYTU0PTcwNyxBLmE1NT03MDgsQS5hNTY9NjgyLEEuYTU3PTcwMSxBLmE1OD04MjYsQS5hNTk9ODE1LEEuYTYwPTc4OSxBLmE2MT03ODksQS5hNjI9NzA3LEEuYTYzPTY4NyxBLmE2ND02OTYsQS5hNjU9Njg5LEEuYTY2PTc4NixBLmE2Nz03ODcsQS5hNjg9NzEzLEEuYTY5PTc5MSxBLmE3MD03ODUsQS5hNzE9NzkxLEEuYTcyPTg3MyxBLmE3Mz03NjEsQS5hNzQ9NzYyLEEuYTIwMz03NjIsQS5hNzU9NzU5LEEuYTIwND03NTksQS5hNzY9ODkyLEEuYTc3PTg5MixBLmE3OD03ODgsQS5hNzk9Nzg0LEEuYTgxPTQzOCxBLmE4Mj0xMzgsQS5hODM9Mjc3LEEuYTg0PTQxNSxBLmE5Nz0zOTIsQS5hOTg9MzkyLEEuYTk5PTY2OCxBLmExMDA9NjY4LEEuYTg5PTM5MCxBLmE5MD0zOTAsQS5hOTM9MzE3LEEuYTk0PTMxNyxBLmE5MT0yNzYsQS5hOTI9Mjc2LEEuYTIwNT01MDksQS5hODU9NTA5LEEuYTIwNj00MTAsQS5hODY9NDEwLEEuYTg3PTIzNCxBLmE4OD0yMzQsQS5hOTU9MzM0LEEuYTk2PTMzNCxBLmExMDE9NzMyLEEuYTEwMj01NDQsQS5hMTAzPTU0NCxBLmExMDQ9OTEwLEEuYTEwNj02NjcsQS5hMTA3PTc2MCxBLmExMDg9NzYwLEEuYTExMj03NzYsQS5hMTExPTU5NSxBLmExMTA9Njk0LEEuYTEwOT02MjYsQS5hMTIwPTc4OCxBLmExMjE9Nzg4LEEuYTEyMj03ODgsQS5hMTIzPTc4OCxBLmExMjQ9Nzg4LEEuYTEyNT03ODgsQS5hMTI2PTc4OCxBLmExMjc9Nzg4LEEuYTEyOD03ODgsQS5hMTI5PTc4OCxBLmExMzA9Nzg4LEEuYTEzMT03ODgsQS5hMTMyPTc4OCxBLmExMzM9Nzg4LEEuYTEzND03ODgsQS5hMTM1PTc4OCxBLmExMzY9Nzg4LEEuYTEzNz03ODgsQS5hMTM4PTc4OCxBLmExMzk9Nzg4LEEuYTE0MD03ODgsQS5hMTQxPTc4OCxBLmExNDI9Nzg4LEEuYTE0Mz03ODgsQS5hMTQ0PTc4OCxBLmExNDU9Nzg4LEEuYTE0Nj03ODgsQS5hMTQ3PTc4OCxBLmExNDg9Nzg4LEEuYTE0OT03ODgsQS5hMTUwPTc4OCxBLmExNTE9Nzg4LEEuYTE1Mj03ODgsQS5hMTUzPTc4OCxBLmExNTQ9Nzg4LEEuYTE1NT03ODgsQS5hMTU2PTc4OCxBLmExNTc9Nzg4LEEuYTE1OD03ODgsQS5hMTU5PTc4OCxBLmExNjA9ODk0LEEuYTE2MT04MzgsQS5hMTYzPTEwMTYsQS5hMTY0PTQ1OCxBLmExOTY9NzQ4LEEuYTE2NT05MjQsQS5hMTkyPTc0OCxBLmExNjY9OTE4LEEuYTE2Nz05MjcsQS5hMTY4PTkyOCxBLmExNjk9OTI4LEEuYTE3MD04MzQsQS5hMTcxPTg3MyxBLmExNzI9ODI4LEEuYTE3Mz05MjQsQS5hMTYyPTkyNCxBLmExNzQ9OTE3LEEuYTE3NT05MzAsQS5hMTc2PTkzMSxBLmExNzc9NDYzLEEuYTE3OD04ODMsQS5hMTc5PTgzNixBLmExOTM9ODM2LEEuYTE4MD04NjcsQS5hMTk5PTg2NyxBLmExODE9Njk2LEEuYTIwMD02OTYsQS5hMTgyPTg3NCxBLmEyMDE9ODc0LEEuYTE4Mz03NjAsQS5hMTg0PTk0NixBLmExOTc9NzcxLEEuYTE4NT04NjUsQS5hMTk0PTc3MSxBLmExOTg9ODg4LEEuYTE4Nj05NjcsQS5hMTk1PTg4OCxBLmExODc9ODMxLEEuYTE4OD04NzMsQS5hMTg5PTkyNyxBLmExOTA9OTcwLEEuYTE5MT05MTh9KSl9KSksemE9YkEoKGZ1bmN0aW9uKEEpe0EuQ291cmllcj17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0Oi00MjZ9LEFbIkNvdXJpZXItQm9sZCJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDM5fSxBWyJDb3VyaWVyLU9ibGlxdWUiXT17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0OjQyNn0sQVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDI2fSxBLkhlbHZldGljYT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM30sQVsiSGVsdmV0aWNhLUJvbGQiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUzMn0sQVsiSGVsdmV0aWNhLU9ibGlxdWUiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM30sQVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MzJ9LEFbIlRpbWVzLVJvbWFuIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NjIseEhlaWdodDo0NTB9LEFbIlRpbWVzLUJvbGQiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY3Nix4SGVpZ2h0OjQ2MX0sQVsiVGltZXMtSXRhbGljIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NTMseEhlaWdodDo0NDF9LEFbIlRpbWVzLUJvbGRJdGFsaWMiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY2OSx4SGVpZ2h0OjQ2Mn0sQS5TeW1ib2w9e2FzY2VudDpNYXRoLk5hTixkZXNjZW50Ok1hdGguTmFOLGNhcEhlaWdodDpNYXRoLk5hTix4SGVpZ2h0Ok1hdGguTmFOfSxBLlphcGZEaW5nYmF0cz17YXNjZW50Ok1hdGguTmFOLGRlc2NlbnQ6TWF0aC5OYU4sY2FwSGVpZ2h0Ok1hdGguTmFOLHhIZWlnaHQ6TWF0aC5OYU59fSkpO2NsYXNzICRhe2NvbnN0cnVjdG9yKHtnbHlmVGFibGU6QSxpc0dseXBoTG9jYXRpb25zTG9uZzplLGxvY2FUYWJsZTp0LG51bUdseXBoczppfSl7dGhpcy5nbHlwaHM9W107Y29uc3QgYT1uZXcgRGF0YVZpZXcodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkscz1uZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCksbj1lPzQ6MjtsZXQgcj1lP2EuZ2V0VWludDMyKDApOjIqYS5nZXRVaW50MTYoMCksZz0wO2ZvcihsZXQgQT0wO0E8aTtBKyspe2crPW47Y29uc3QgQT1lP2EuZ2V0VWludDMyKGcpOjIqYS5nZXRVaW50MTYoZyk7aWYoQT09PXIpe3RoaXMuZ2x5cGhzLnB1c2gobmV3IEFzKHt9KSk7Y29udGludWV9Y29uc3QgdD1Bcy5wYXJzZShyLHMpO3RoaXMuZ2x5cGhzLnB1c2godCkscj1BfX1nZXRTaXplKCl7cmV0dXJuIHRoaXMuZ2x5cGhzLnJlZHVjZSgoKEEsZSk9PkErKGUuZ2V0U2l6ZSgpKzMmLTQpKSwwKX13cml0ZSgpe2NvbnN0IEE9dGhpcy5nZXRTaXplKCksZT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKEEpKSx0PUE+MTMxMDcwLGk9dD80OjIsYT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKCh0aGlzLmdseXBocy5sZW5ndGgrMSkqaSkpO3Q/YS5zZXRVaW50MzIoMCwwKTphLnNldFVpbnQxNigwLDApO2xldCBzPTAsbj0wO2Zvcihjb25zdCBBIG9mIHRoaXMuZ2x5cGhzKXMrPUEud3JpdGUocyxlKSxzPXMrMyYtNCxuKz1pLHQ/YS5zZXRVaW50MzIobixzKTphLnNldFVpbnQxNihuLHM+PjEpO3JldHVybntpc0xvY2F0aW9uTG9uZzp0LGxvY2E6bmV3IFVpbnQ4QXJyYXkoYS5idWZmZXIpLGdseWY6bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1zY2FsZShBKXtmb3IobGV0IGU9MCx0PXRoaXMuZ2x5cGhzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMuZ2x5cGhzW2VdLnNjYWxlKEFbZV0pfX1jbGFzcyBBc3tjb25zdHJ1Y3Rvcih7aGVhZGVyOkE9bnVsbCxzaW1wbGU6ZT1udWxsLGNvbXBvc2l0ZXM6dD1udWxsfSl7dGhpcy5oZWFkZXI9QSx0aGlzLnNpbXBsZT1lLHRoaXMuY29tcG9zaXRlcz10fXN0YXRpYyBwYXJzZShBLGUpe2NvbnN0W3QsaV09ZXMucGFyc2UoQSxlKTtpZihBKz10LGkubnVtYmVyT2ZDb250b3VyczwwKXtjb25zdCB0PVtdO2Zvcig7Oyl7Y29uc3RbaSxhXT1hcy5wYXJzZShBLGUpO2lmKEErPWksdC5wdXNoKGEpLCEoMzImYS5mbGFncykpYnJlYWt9cmV0dXJuIG5ldyBBcyh7aGVhZGVyOmksY29tcG9zaXRlczp0fSl9Y29uc3QgYT1pcy5wYXJzZShBLGUsaS5udW1iZXJPZkNvbnRvdXJzKTtyZXR1cm4gbmV3IEFzKHtoZWFkZXI6aSxzaW1wbGU6YX0pfWdldFNpemUoKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3QgQT10aGlzLnNpbXBsZT90aGlzLnNpbXBsZS5nZXRTaXplKCk6dGhpcy5jb21wb3NpdGVzLnJlZHVjZSgoKEEsZSk9PkErZS5nZXRTaXplKCkpLDApO3JldHVybiB0aGlzLmhlYWRlci5nZXRTaXplKCkrQX13cml0ZShBLGUpe2lmKCF0aGlzLmhlYWRlcilyZXR1cm4gMDtjb25zdCB0PUE7aWYoQSs9dGhpcy5oZWFkZXIud3JpdGUoQSxlKSx0aGlzLnNpbXBsZSlBKz10aGlzLnNpbXBsZS53cml0ZShBLGUpO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpcy5jb21wb3NpdGVzKUErPXQud3JpdGUoQSxlKTtyZXR1cm4gQS10fXNjYWxlKEEpe2lmKCF0aGlzLmhlYWRlcilyZXR1cm47Y29uc3QgZT0odGhpcy5oZWFkZXIueE1pbit0aGlzLmhlYWRlci54TWF4KS8yO2lmKHRoaXMuaGVhZGVyLnNjYWxlKGUsQSksdGhpcy5zaW1wbGUpdGhpcy5zaW1wbGUuc2NhbGUoZSxBKTtlbHNlIGZvcihjb25zdCB0IG9mIHRoaXMuY29tcG9zaXRlcyl0LnNjYWxlKGUsQSl9fWNsYXNzIGVze2NvbnN0cnVjdG9yKHtudW1iZXJPZkNvbnRvdXJzOkEseE1pbjplLHlNaW46dCx4TWF4OmkseU1heDphfSl7dGhpcy5udW1iZXJPZkNvbnRvdXJzPUEsdGhpcy54TWluPWUsdGhpcy55TWluPXQsdGhpcy54TWF4PWksdGhpcy55TWF4PWF9c3RhdGljIHBhcnNlKEEsZSl7cmV0dXJuWzEwLG5ldyBlcyh7bnVtYmVyT2ZDb250b3VyczplLmdldEludDE2KEEpLHhNaW46ZS5nZXRJbnQxNihBKzIpLHlNaW46ZS5nZXRJbnQxNihBKzQpLHhNYXg6ZS5nZXRJbnQxNihBKzYpLHlNYXg6ZS5nZXRJbnQxNihBKzgpfSldfWdldFNpemUoKXtyZXR1cm4gMTB9d3JpdGUoQSxlKXtyZXR1cm4gZS5zZXRJbnQxNihBLHRoaXMubnVtYmVyT2ZDb250b3VycyksZS5zZXRJbnQxNihBKzIsdGhpcy54TWluKSxlLnNldEludDE2KEErNCx0aGlzLnlNaW4pLGUuc2V0SW50MTYoQSs2LHRoaXMueE1heCksZS5zZXRJbnQxNihBKzgsdGhpcy55TWF4KSwxMH1zY2FsZShBLGUpe3RoaXMueE1pbj1NYXRoLnJvdW5kKEErKHRoaXMueE1pbi1BKSplKSx0aGlzLnhNYXg9TWF0aC5yb3VuZChBKyh0aGlzLnhNYXgtQSkqZSl9fWNsYXNzIHRze2NvbnN0cnVjdG9yKHtmbGFnczpBLHhDb29yZGluYXRlczplLHlDb29yZGluYXRlczp0fSl7dGhpcy54Q29vcmRpbmF0ZXM9ZSx0aGlzLnlDb29yZGluYXRlcz10LHRoaXMuZmxhZ3M9QX19Y2xhc3MgaXN7Y29uc3RydWN0b3Ioe2NvbnRvdXJzOkEsaW5zdHJ1Y3Rpb25zOmV9KXt0aGlzLmNvbnRvdXJzPUEsdGhpcy5pbnN0cnVjdGlvbnM9ZX1zdGF0aWMgcGFyc2UoQSxlLHQpe2NvbnN0IGk9W107Zm9yKGxldCBhPTA7YTx0O2ErKyl7Y29uc3QgdD1lLmdldFVpbnQxNihBKTtBKz0yLGkucHVzaCh0KX1jb25zdCBhPWlbdC0xXSsxLHM9ZS5nZXRVaW50MTYoQSk7QSs9Mjtjb25zdCBuPW5ldyBVaW50OEFycmF5KGUpLnNsaWNlKEEsQStzKTtBKz1zO2NvbnN0IHI9W107Zm9yKGxldCB0PTA7dDxhO0ErKyx0Kyspe2xldCBpPWUuZ2V0VWludDgoQSk7aWYoci5wdXNoKGkpLDgmaSl7Y29uc3QgYT1lLmdldFVpbnQ4KCsrQSk7aV49ODtmb3IobGV0IEE9MDtBPGE7QSsrKXIucHVzaChpKTt0Kz1hfX1jb25zdCBnPVtdO2xldCBvPVtdLEk9W10sYz1bXTtjb25zdCBoPVtdO2xldCBDPTAsQj0wO2ZvcihsZXQgdD0wO3Q8YTt0Kyspe2NvbnN0IGE9clt0XTtpZigyJmEpe2NvbnN0IHQ9ZS5nZXRVaW50OChBKyspO0IrPTE2JmE/dDotdCxvLnB1c2goQil9ZWxzZSAxNiZhfHwoQis9ZS5nZXRJbnQxNihBKSxBKz0yKSxvLnB1c2goQik7aVtDXT09PXQmJihDKyssZy5wdXNoKG8pLG89W10pfUI9MCxDPTA7Zm9yKGxldCB0PTA7dDxhO3QrKyl7Y29uc3QgYT1yW3RdO2lmKDQmYSl7Y29uc3QgdD1lLmdldFVpbnQ4KEErKyk7Qis9MzImYT90Oi10LEkucHVzaChCKX1lbHNlIDMyJmF8fChCKz1lLmdldEludDE2KEEpLEErPTIpLEkucHVzaChCKTtjLnB1c2goMSZhfDY0JmEpLGlbQ109PT10JiYobz1nW0NdLEMrKyxoLnB1c2gobmV3IHRzKHtmbGFnczpjLHhDb29yZGluYXRlczpvLHlDb29yZGluYXRlczpJfSkpLEk9W10sYz1bXSl9cmV0dXJuIG5ldyBpcyh7Y29udG91cnM6aCxpbnN0cnVjdGlvbnM6bn0pfWdldFNpemUoKXtsZXQgQT0yKnRoaXMuY29udG91cnMubGVuZ3RoKzIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoLGU9MCx0PTA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5jb250b3Vycyl7QSs9aS5mbGFncy5sZW5ndGg7Zm9yKGxldCBhPTAscz1pLnhDb29yZGluYXRlcy5sZW5ndGg7YTxzO2ErKyl7Y29uc3Qgcz1pLnhDb29yZGluYXRlc1thXSxuPWkueUNvb3JkaW5hdGVzW2FdO2xldCByPU1hdGguYWJzKHMtZSk7cj4yNTU/QSs9MjpyPjAmJihBKz0xKSxlPXMscj1NYXRoLmFicyhuLXQpLHI+MjU1P0ErPTI6cj4wJiYoQSs9MSksdD1ufX1yZXR1cm4gQX13cml0ZShBLGUpe2NvbnN0IHQ9QSxpPVtdLGE9W10scz1bXTtsZXQgbj0wLHI9MDtmb3IoY29uc3QgdCBvZiB0aGlzLmNvbnRvdXJzKXtmb3IobGV0IEE9MCxlPXQueENvb3JkaW5hdGVzLmxlbmd0aDtBPGU7QSsrKXtsZXQgZT10LmZsYWdzW0FdO2NvbnN0IGc9dC54Q29vcmRpbmF0ZXNbQV07bGV0IG89Zy1uO2lmKDA9PT1vKWV8PTE2LGkucHVzaCgwKTtlbHNle2NvbnN0IEE9TWF0aC5hYnMobyk7QTw9MjU1PyhlfD1vPj0wPzE4OjIsaS5wdXNoKEEpKTppLnB1c2gobyl9bj1nO2NvbnN0IEk9dC55Q29vcmRpbmF0ZXNbQV07aWYobz1JLXIsMD09PW8pZXw9MzIsYS5wdXNoKDApO2Vsc2V7Y29uc3QgQT1NYXRoLmFicyhvKTtBPD0yNTU/KGV8PW8+PTA/MzY6NCxhLnB1c2goQSkpOmEucHVzaChvKX1yPUkscy5wdXNoKGUpfWUuc2V0VWludDE2KEEsaS5sZW5ndGgtMSksQSs9Mn1lLnNldFVpbnQxNihBLHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCksQSs9Mix0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgmJihuZXcgVWludDhBcnJheShlLmJ1ZmZlciwwLGUuYnVmZmVyLmJ5dGVMZW5ndGgpLnNldCh0aGlzLmluc3RydWN0aW9ucyxBKSxBKz10aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpO2Zvcihjb25zdCB0IG9mIHMpZS5zZXRVaW50OChBKyssdCk7Zm9yKGxldCB0PTAsYT1pLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPWlbdF0sbj1zW3RdOzImbj9lLnNldFVpbnQ4KEErKyxhKToxNiZufHwoZS5zZXRJbnQxNihBLGEpLEErPTIpfWZvcihsZXQgdD0wLGk9YS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1hW3RdLG49c1t0XTs0Jm4/ZS5zZXRVaW50OChBKyssaSk6MzImbnx8KGUuc2V0SW50MTYoQSxpKSxBKz0yKX1yZXR1cm4gQS10fXNjYWxlKEEsZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb250b3VycylpZigwIT09dC54Q29vcmRpbmF0ZXMubGVuZ3RoKWZvcihsZXQgaT0wLGE9dC54Q29vcmRpbmF0ZXMubGVuZ3RoO2k8YTtpKyspdC54Q29vcmRpbmF0ZXNbaV09TWF0aC5yb3VuZChBKyh0LnhDb29yZGluYXRlc1tpXS1BKSplKX19Y2xhc3MgYXN7Y29uc3RydWN0b3Ioe2ZsYWdzOkEsZ2x5cGhJbmRleDplLGFyZ3VtZW50MTp0LGFyZ3VtZW50MjppLHRyYW5zZjphLGluc3RydWN0aW9uczpzfSl7dGhpcy5mbGFncz1BLHRoaXMuZ2x5cGhJbmRleD1lLHRoaXMuYXJndW1lbnQxPXQsdGhpcy5hcmd1bWVudDI9aSx0aGlzLnRyYW5zZj1hLHRoaXMuaW5zdHJ1Y3Rpb25zPXN9c3RhdGljIHBhcnNlKEEsZSl7Y29uc3QgdD1BLGk9W107bGV0IGE9ZS5nZXRVaW50MTYoQSk7Y29uc3Qgcz1lLmdldFVpbnQxNihBKzIpO2xldCBuLHI7QSs9NCwxJmE/KDImYT8obj1lLmdldEludDE2KEEpLHI9ZS5nZXRJbnQxNihBKzIpKToobj1lLmdldFVpbnQxNihBKSxyPWUuZ2V0VWludDE2KEErMikpLEErPTQsYV49MSk6KDImYT8obj1lLmdldEludDgoQSkscj1lLmdldEludDgoQSsxKSk6KG49ZS5nZXRVaW50OChBKSxyPWUuZ2V0VWludDgoQSsxKSksQSs9MiksOCZhPyhpLnB1c2goZS5nZXRVaW50MTYoQSkpLEErPTIpOjY0JmE/KGkucHVzaChlLmdldFVpbnQxNihBKSxlLmdldFVpbnQxNihBKzIpKSxBKz00KToxMjgmYSYmKGkucHVzaChlLmdldFVpbnQxNihBKSxlLmdldFVpbnQxNihBKzIpLGUuZ2V0VWludDE2KEErNCksZS5nZXRVaW50MTYoQSs2KSksQSs9OCk7bGV0IGc9bnVsbDtpZigyNTYmYSl7Y29uc3QgdD1lLmdldFVpbnQxNihBKTtBKz0yLGc9bmV3IFVpbnQ4QXJyYXkoZSkuc2xpY2UoQSxBK3QpLEErPXR9cmV0dXJuW0EtdCxuZXcgYXMoe2ZsYWdzOmEsZ2x5cGhJbmRleDpzLGFyZ3VtZW50MTpuLGFyZ3VtZW50MjpyLHRyYW5zZjppLGluc3RydWN0aW9uczpnfSldfWdldFNpemUoKXtsZXQgQT00KzIqdGhpcy50cmFuc2YubGVuZ3RoO3JldHVybiAyNTYmdGhpcy5mbGFncyYmKEErPTIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKSxBKz0yLDImdGhpcy5mbGFncz90aGlzLmFyZ3VtZW50MT49LTEyOCYmdGhpcy5hcmd1bWVudDE8PTEyNyYmdGhpcy5hcmd1bWVudDI+PS0xMjgmJnRoaXMuYXJndW1lbnQyPD0xMjd8fChBKz0yKTp0aGlzLmFyZ3VtZW50MT49MCYmdGhpcy5hcmd1bWVudDE8PTI1NSYmdGhpcy5hcmd1bWVudDI+PTAmJnRoaXMuYXJndW1lbnQyPD0yNTV8fChBKz0yKSxBfXdyaXRlKEEsZSl7Y29uc3QgdD1BO3JldHVybiAyJnRoaXMuZmxhZ3M/dGhpcy5hcmd1bWVudDE+PS0xMjgmJnRoaXMuYXJndW1lbnQxPD0xMjcmJnRoaXMuYXJndW1lbnQyPj0tMTI4JiZ0aGlzLmFyZ3VtZW50Mjw9MTI3fHwodGhpcy5mbGFnc3w9MSk6dGhpcy5hcmd1bWVudDE+PTAmJnRoaXMuYXJndW1lbnQxPD0yNTUmJnRoaXMuYXJndW1lbnQyPj0wJiZ0aGlzLmFyZ3VtZW50Mjw9MjU1fHwodGhpcy5mbGFnc3w9MSksZS5zZXRVaW50MTYoQSx0aGlzLmZsYWdzKSxlLnNldFVpbnQxNihBKzIsdGhpcy5nbHlwaEluZGV4KSxBKz00LDEmdGhpcy5mbGFncz8oMiZ0aGlzLmZsYWdzPyhlLnNldEludDE2KEEsdGhpcy5hcmd1bWVudDEpLGUuc2V0SW50MTYoQSsyLHRoaXMuYXJndW1lbnQyKSk6KGUuc2V0VWludDE2KEEsdGhpcy5hcmd1bWVudDEpLGUuc2V0VWludDE2KEErMix0aGlzLmFyZ3VtZW50MikpLEErPTQpOihlLnNldFVpbnQ4KEEsdGhpcy5hcmd1bWVudDEpLGUuc2V0VWludDgoQSsxLHRoaXMuYXJndW1lbnQyKSxBKz0yKSwyNTYmdGhpcy5mbGFncyYmKGUuc2V0VWludDE2KEEsdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKSxBKz0yLHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCYmKG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLDAsZS5idWZmZXIuYnl0ZUxlbmd0aCkuc2V0KHRoaXMuaW5zdHJ1Y3Rpb25zLEEpLEErPXRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCkpLEEtdH1zY2FsZShBLGUpe319ZnVuY3Rpb24gc3MoQSxlLHQpe0FbZV09dD4+OCYyNTUsQVtlKzFdPTI1NSZ0fWZ1bmN0aW9uIG5zKEEsZSx0KXtBW2VdPXQ+PjI0JjI1NSxBW2UrMV09dD4+MTYmMjU1LEFbZSsyXT10Pj44JjI1NSxBW2UrM109MjU1JnR9ZnVuY3Rpb24gcnMoQSxlLHQpe2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KUEuc2V0KHQsZSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHQpZm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKUFbZSsrXT0yNTUmdC5jaGFyQ29kZUF0KGkpO2Vsc2UgZm9yKGNvbnN0IGkgb2YgdClBW2UrK109MjU1Jml9Y2xhc3MgZ3N7Y29uc3RydWN0b3IoQSl7dGhpcy5zZm50PUEsdGhpcy50YWJsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX1zdGF0aWMgZ2V0U2VhcmNoUGFyYW1zKEEsZSl7bGV0IHQ9MSxpPTA7Zm9yKDsodF5BKT50Oyl0PDw9MSxpKys7Y29uc3QgYT10KmU7cmV0dXJue3JhbmdlOmEsZW50cnk6aSxyYW5nZVNoaWZ0OmUqQS1hfX10b0FycmF5KCl7bGV0IEE9dGhpcy5zZm50O2NvbnN0IGU9dGhpcy50YWJsZXMsdD1PYmplY3Qua2V5cyhlKTt0LnNvcnQoKTtjb25zdCBpPXQubGVuZ3RoO2xldCBhLHMsbixyLGcsbz0xMisxNippO2NvbnN0IEk9W29dO2ZvcihhPTA7YTxpO2ErKylyPWVbdFthXV0sbys9KHIubGVuZ3RoKzMmLTQpPj4+MCxJLnB1c2gobyk7Y29uc3QgYz1uZXcgVWludDhBcnJheShvKTtmb3IoYT0wO2E8aTthKyspcj1lW3RbYV1dLHJzKGMsSVthXSxyKTsidHJ1ZSI9PT1BJiYoQT1YKDY1NTM2KSksY1swXT0yNTUmQS5jaGFyQ29kZUF0KDApLGNbMV09MjU1JkEuY2hhckNvZGVBdCgxKSxjWzJdPTI1NSZBLmNoYXJDb2RlQXQoMiksY1szXT0yNTUmQS5jaGFyQ29kZUF0KDMpLHNzKGMsNCxpKTtjb25zdCBoPWdzLmdldFNlYXJjaFBhcmFtcyhpLDE2KTtmb3Ioc3MoYyw2LGgucmFuZ2UpLHNzKGMsOCxoLmVudHJ5KSxzcyhjLDEwLGgucmFuZ2VTaGlmdCksbz0xMixhPTA7YTxpO2ErKyl7Zz10W2FdLGNbb109MjU1JmcuY2hhckNvZGVBdCgwKSxjW28rMV09MjU1JmcuY2hhckNvZGVBdCgxKSxjW28rMl09MjU1JmcuY2hhckNvZGVBdCgyKSxjW28rM109MjU1JmcuY2hhckNvZGVBdCgzKTtsZXQgQT0wO2ZvcihzPUlbYV0sbj1JW2ErMV07czxuO3MrPTQpQT1BK0hBKGMscyk+Pj4wO25zKGMsbys0LEEpLG5zKGMsbys4LElbYV0pLG5zKGMsbysxMixlW2ddLmxlbmd0aCksbys9MTZ9cmV0dXJuIGN9YWRkVGFibGUoQSxlKXtpZihBIGluIHRoaXMudGFibGVzKXRocm93IG5ldyBFcnJvcigiVGFibGUgIitBKyIgYWxyZWFkeSBleGlzdHMiKTt0aGlzLnRhYmxlc1tBXT1lfX1jb25zdCBvcz1bNF0sSXM9WzVdLGNzPVs2XSxocz1bN10sQ3M9WzhdLEJzPVsxMiwzNV0sbHM9WzE0XSxRcz1bMjFdLEVzPVsyMl0sdXM9WzMwXSxkcz1bMzFdO2NsYXNzIGZze2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0wLHRoaXMubHNiPTAsdGhpcy5mbGV4aW5nPSExLHRoaXMub3V0cHV0PVtdLHRoaXMuc3RhY2s9W119Y29udmVydChBLGUsdCl7Y29uc3QgaT1BLmxlbmd0aDtsZXQgYSxzLG4scj0hMTtmb3IobGV0IGc9MDtnPGk7ZysrKXtsZXQgaT1BW2ddO2lmKGk8MzIpe3N3aXRjaCgxMj09PWkmJihpPShpPDw4KStBWysrZ10pLGkpe2Nhc2UgMTpjYXNlIDM6Y2FzZSA5OmNhc2UgMzA3MjpjYXNlIDMwNzM6Y2FzZSAzMDc0OmNhc2UgMzEwNTp0aGlzLnN0YWNrPVtdO2JyZWFrO2Nhc2UgNDppZih0aGlzLmZsZXhpbmcpe2lmKHRoaXMuc3RhY2subGVuZ3RoPDEpe3I9ITA7YnJlYWt9Y29uc3QgQT10aGlzLnN0YWNrLnBvcCgpO3RoaXMuc3RhY2sucHVzaCgwLEEpO2JyZWFrfXI9dGhpcy5leGVjdXRlQ29tbWFuZCgxLG9zKTticmVhaztjYXNlIDU6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDIsSXMpO2JyZWFrO2Nhc2UgNjpyPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSxjcyk7YnJlYWs7Y2FzZSA3OnI9dGhpcy5leGVjdXRlQ29tbWFuZCgxLGhzKTticmVhaztjYXNlIDg6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDYsQ3MpO2JyZWFrO2Nhc2UgMTA6aWYodGhpcy5zdGFjay5sZW5ndGg8MSl7cj0hMDticmVha31pZihuPXRoaXMuc3RhY2sucG9wKCksIWVbbl0pe3I9ITA7YnJlYWt9cj10aGlzLmNvbnZlcnQoZVtuXSxlLHQpO2JyZWFrO2Nhc2UgMTE6cmV0dXJuIHI7Y2FzZSAxMzppZih0aGlzLnN0YWNrLmxlbmd0aDwyKXtyPSEwO2JyZWFrfWE9dGhpcy5zdGFjay5wb3AoKSxzPXRoaXMuc3RhY2sucG9wKCksdGhpcy5sc2I9cyx0aGlzLndpZHRoPWEsdGhpcy5zdGFjay5wdXNoKGEscykscj10aGlzLmV4ZWN1dGVDb21tYW5kKDIsRXMpO2JyZWFrO2Nhc2UgMTQ6dGhpcy5vdXRwdXQucHVzaChsc1swXSk7YnJlYWs7Y2FzZSAyMTppZih0aGlzLmZsZXhpbmcpYnJlYWs7cj10aGlzLmV4ZWN1dGVDb21tYW5kKDIsUXMpO2JyZWFrO2Nhc2UgMjI6aWYodGhpcy5mbGV4aW5nKXt0aGlzLnN0YWNrLnB1c2goMCk7YnJlYWt9cj10aGlzLmV4ZWN1dGVDb21tYW5kKDEsRXMpO2JyZWFrO2Nhc2UgMzA6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDQsdXMpO2JyZWFrO2Nhc2UgMzE6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDQsZHMpO2JyZWFrO2Nhc2UgMzA3ODppZih0KXtjb25zdCBBPXRoaXMuc3RhY2suYXQoLTUpO3RoaXMuc2VhYz10aGlzLnN0YWNrLnNwbGljZSgtNCw0KSx0aGlzLnNlYWNbMF0rPXRoaXMubHNiLUEscj10aGlzLmV4ZWN1dGVDb21tYW5kKDAsbHMpfWVsc2Ugcj10aGlzLmV4ZWN1dGVDb21tYW5kKDQsbHMpO2JyZWFrO2Nhc2UgMzA3OTppZih0aGlzLnN0YWNrLmxlbmd0aDw0KXtyPSEwO2JyZWFrfXRoaXMuc3RhY2sucG9wKCksYT10aGlzLnN0YWNrLnBvcCgpO2NvbnN0IEE9dGhpcy5zdGFjay5wb3AoKTtzPXRoaXMuc3RhY2sucG9wKCksdGhpcy5sc2I9cyx0aGlzLndpZHRoPWEsdGhpcy5zdGFjay5wdXNoKGEscyxBKSxyPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMyxRcyk7YnJlYWs7Y2FzZSAzMDg0OmlmKHRoaXMuc3RhY2subGVuZ3RoPDIpe3I9ITA7YnJlYWt9Y29uc3QgZz10aGlzLnN0YWNrLnBvcCgpLG89dGhpcy5zdGFjay5wb3AoKTt0aGlzLnN0YWNrLnB1c2goby9nKTticmVhaztjYXNlIDMwODg6aWYodGhpcy5zdGFjay5sZW5ndGg8Mil7cj0hMDticmVha31uPXRoaXMuc3RhY2sucG9wKCk7Y29uc3QgST10aGlzLnN0YWNrLnBvcCgpO2lmKDA9PT1uJiYzPT09SSl7Y29uc3QgQT10aGlzLnN0YWNrLnNwbGljZSgtMTcsMTcpO3RoaXMuc3RhY2sucHVzaChBWzJdK0FbMF0sQVszXStBWzFdLEFbNF0sQVs1XSxBWzZdLEFbN10sQVs4XSxBWzldLEFbMTBdLEFbMTFdLEFbMTJdLEFbMTNdLEFbMTRdKSxyPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMTMsQnMsITApLHRoaXMuZmxleGluZz0hMSx0aGlzLnN0YWNrLnB1c2goQVsxNV0sQVsxNl0pfWVsc2UgMT09PW4mJjA9PT1JJiYodGhpcy5mbGV4aW5nPSEwKTticmVhaztjYXNlIDMwODk6YnJlYWs7ZGVmYXVsdDpVKCdVbmtub3duIHR5cGUgMSBjaGFyc3RyaW5nIGNvbW1hbmQgb2YgIicraSsnIicpfWlmKHIpYnJlYWt9ZWxzZSBpPD0yNDY/aS09MTM5Omk9aTw9MjUwPzI1NiooaS0yNDcpK0FbKytnXSsxMDg6aTw9MjU0Py0yNTYqKGktMjUxKS1BWysrZ10tMTA4OigyNTUmQVsrK2ddKTw8MjR8KDI1NSZBWysrZ10pPDwxNnwoMjU1JkFbKytnXSk8PDh8KDI1NSZBWysrZ10pPDwwLHRoaXMuc3RhY2sucHVzaChpKX1yZXR1cm4gcn1leGVjdXRlQ29tbWFuZChBLGUsdCl7Y29uc3QgaT10aGlzLnN0YWNrLmxlbmd0aDtpZihBPmkpcmV0dXJuITA7Y29uc3QgYT1pLUE7Zm9yKGxldCBBPWE7QTxpO0ErKyl7bGV0IGU9dGhpcy5zdGFja1tBXTtOdW1iZXIuaXNJbnRlZ2VyKGUpP3RoaXMub3V0cHV0LnB1c2goMjgsZT4+OCYyNTUsMjU1JmUpOihlPTY1NTM2KmV8MCx0aGlzLm91dHB1dC5wdXNoKDI1NSxlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlKSl9cmV0dXJuIHRoaXMub3V0cHV0LnB1c2goLi4uZSksdD90aGlzLnN0YWNrLnNwbGljZShhLEEpOnRoaXMuc3RhY2subGVuZ3RoPTAsITF9fWZ1bmN0aW9uIHBzKEEpe3JldHVybiBBPj00OCYmQTw9NTd8fEE+PTY1JiZBPD03MHx8QT49OTcmJkE8PTEwMn1mdW5jdGlvbiBtcyhBLGUsdCl7aWYodD49QS5sZW5ndGgpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2xldCBpLGEscz0wfGU7Zm9yKGk9MDtpPHQ7aSsrKXM9NTI4NDUqKEFbaV0rcykrMjI3MTkmNjU1MzU7Y29uc3Qgbj1BLmxlbmd0aC10LHI9bmV3IFVpbnQ4QXJyYXkobik7Zm9yKGk9dCxhPTA7YTxuO2krKyxhKyspe2NvbnN0IGU9QVtpXTtyW2FdPWVecz4+OCxzPTUyODQ1KihlK3MpKzIyNzE5JjY1NTM1fXJldHVybiByfWZ1bmN0aW9uIHlzKEEpe3JldHVybiA0Nz09PUF8fDkxPT09QXx8OTM9PT1BfHwxMjM9PT1BfHwxMjU9PT1BfHw0MD09PUF8fDQxPT09QX1jbGFzcyB3c3tjb25zdHJ1Y3RvcihBLGUsdCl7aWYoZSl7Y29uc3QgZT1BLmdldEJ5dGVzKCksdD0hKChwcyhlWzBdKXx8WUEoZVswXSkpJiZwcyhlWzFdKSYmcHMoZVsyXSkmJnBzKGVbM10pJiZwcyhlWzRdKSYmcHMoZVs1XSkmJnBzKGVbNl0pJiZwcyhlWzddKSk7QT1uZXcgZ2UodD9tcyhlLDU1NjY1LDQpOmZ1bmN0aW9uKEEsZSx0KXtsZXQgaT01NTY2NTtjb25zdCBhPUEubGVuZ3RoLHM9bmV3IFVpbnQ4QXJyYXkoYT4+PjEpO2xldCBuLHI7Zm9yKG49MCxyPTA7bjxhO24rKyl7Y29uc3QgZT1BW25dO2lmKCFwcyhlKSljb250aW51ZTtsZXQgdDtmb3IobisrO248YSYmIXBzKHQ9QVtuXSk7KW4rKztpZihuPGEpe2NvbnN0IEE9cGFyc2VJbnQoU3RyaW5nLmZyb21DaGFyQ29kZShlLHQpLDE2KTtzW3IrK109QV5pPj44LGk9NTI4NDUqKEEraSkrMjI3MTkmNjU1MzV9fXJldHVybiBzLnNsaWNlKDQscil9KGUpKX10aGlzLnNlYWNBbmFseXNpc0VuYWJsZWQ9ISF0LHRoaXMuc3RyZWFtPUEsdGhpcy5uZXh0Q2hhcigpfXJlYWROdW1iZXJBcnJheSgpe3RoaXMuZ2V0VG9rZW4oKTtjb25zdCBBPVtdO2Zvcig7Oyl7Y29uc3QgZT10aGlzLmdldFRva2VuKCk7aWYobnVsbD09PWV8fCJdIj09PWV8fCJ9Ij09PWUpYnJlYWs7QS5wdXNoKHBhcnNlRmxvYXQoZXx8MCkpfXJldHVybiBBfXJlYWROdW1iZXIoKXtjb25zdCBBPXRoaXMuZ2V0VG9rZW4oKTtyZXR1cm4gcGFyc2VGbG9hdChBfHwwKX1yZWFkSW50KCl7Y29uc3QgQT10aGlzLmdldFRva2VuKCk7cmV0dXJuIDB8cGFyc2VJbnQoQXx8MCwxMCl9cmVhZEJvb2xlYW4oKXtyZXR1cm4idHJ1ZSI9PT10aGlzLmdldFRva2VuKCk/MTowfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfXByZXZDaGFyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLnNraXAoLTIpLHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfWdldFRva2VuKCl7bGV0IEE9ITEsZT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYoLTE9PT1lKXJldHVybiBudWxsO2lmKEEpMTAhPT1lJiYxMyE9PWV8fChBPSExKTtlbHNlIGlmKDM3PT09ZSlBPSEwO2Vsc2UgaWYoIVlBKGUpKWJyZWFrO2U9dGhpcy5uZXh0Q2hhcigpfWlmKHlzKGUpKXJldHVybiB0aGlzLm5leHRDaGFyKCksU3RyaW5nLmZyb21DaGFyQ29kZShlKTtsZXQgdD0iIjtkb3t0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpLGU9dGhpcy5uZXh0Q2hhcigpfXdoaWxlKGU+PTAmJiFZQShlKSYmIXlzKGUpKTtyZXR1cm4gdH1yZWFkQ2hhclN0cmluZ3MoQSxlKXtyZXR1cm4tMT09PWU/QTptcyhBLDQzMzAsZSl9ZXh0cmFjdEZvbnRQcm9ncmFtKEEpe2NvbnN0IGU9dGhpcy5zdHJlYW0sdD1bXSxpPVtdLGE9T2JqZWN0LmNyZWF0ZShudWxsKTthLmxlbklWPTQ7Y29uc3Qgcz17c3VicnM6W10sY2hhcnN0cmluZ3M6W10scHJvcGVydGllczp7cHJpdmF0ZURhdGE6YX19O2xldCBuLHIsZyxvO2Zvcig7bnVsbCE9PShuPXRoaXMuZ2V0VG9rZW4oKSk7KWlmKCIvIj09PW4pc3dpdGNoKG49dGhpcy5nZXRUb2tlbigpLG4pe2Nhc2UiQ2hhclN0cmluZ3MiOmZvcih0aGlzLmdldFRva2VuKCksdGhpcy5nZXRUb2tlbigpLHRoaXMuZ2V0VG9rZW4oKSx0aGlzLmdldFRva2VuKCk7bj10aGlzLmdldFRva2VuKCksbnVsbCE9PW4mJiJlbmQiIT09bjspe2lmKCIvIiE9PW4pY29udGludWU7Y29uc3QgQT10aGlzLmdldFRva2VuKCk7cj10aGlzLnJlYWRJbnQoKSx0aGlzLmdldFRva2VuKCksZz1yPjA/ZS5nZXRCeXRlcyhyKTpuZXcgVWludDhBcnJheSgwKSxvPXMucHJvcGVydGllcy5wcml2YXRlRGF0YS5sZW5JVjtjb25zdCB0PXRoaXMucmVhZENoYXJTdHJpbmdzKGcsbyk7dGhpcy5uZXh0Q2hhcigpLG49dGhpcy5nZXRUb2tlbigpLCJub2FjY2VzcyI9PT1uP3RoaXMuZ2V0VG9rZW4oKToiLyI9PT1uJiZ0aGlzLnByZXZDaGFyKCksaS5wdXNoKHtnbHlwaDpBLGVuY29kZWQ6dH0pfWJyZWFrO2Nhc2UiU3VicnMiOmZvcih0aGlzLnJlYWRJbnQoKSx0aGlzLmdldFRva2VuKCk7ImR1cCI9PT10aGlzLmdldFRva2VuKCk7KXtjb25zdCBBPXRoaXMucmVhZEludCgpO3I9dGhpcy5yZWFkSW50KCksdGhpcy5nZXRUb2tlbigpLGc9cj4wP2UuZ2V0Qnl0ZXMocik6bmV3IFVpbnQ4QXJyYXkoMCksbz1zLnByb3BlcnRpZXMucHJpdmF0ZURhdGEubGVuSVY7Y29uc3QgaT10aGlzLnJlYWRDaGFyU3RyaW5ncyhnLG8pO3RoaXMubmV4dENoYXIoKSxuPXRoaXMuZ2V0VG9rZW4oKSwibm9hY2Nlc3MiPT09biYmdGhpcy5nZXRUb2tlbigpLHRbQV09aX1icmVhaztjYXNlIkJsdWVWYWx1ZXMiOmNhc2UiT3RoZXJCbHVlcyI6Y2FzZSJGYW1pbHlCbHVlcyI6Y2FzZSJGYW1pbHlPdGhlckJsdWVzIjpjb25zdCBBPXRoaXMucmVhZE51bWJlckFycmF5KCk7QS5sZW5ndGg+MCYmQS5sZW5ndGg7YnJlYWs7Y2FzZSJTdGVtU25hcEgiOmNhc2UiU3RlbVNuYXBWIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbbl09dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTticmVhaztjYXNlIlN0ZEhXIjpjYXNlIlN0ZFZXIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbbl09dGhpcy5yZWFkTnVtYmVyQXJyYXkoKVswXTticmVhaztjYXNlIkJsdWVTaGlmdCI6Y2FzZSJsZW5JViI6Y2FzZSJCbHVlRnV6eiI6Y2FzZSJCbHVlU2NhbGUiOmNhc2UiTGFuZ3VhZ2VHcm91cCI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZE51bWJlcigpO2JyZWFrO2Nhc2UiRXhwYW5zaW9uRmFjdG9yIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbbl09dGhpcy5yZWFkTnVtYmVyKCl8fC4wNjticmVhaztjYXNlIkZvcmNlQm9sZCI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZEJvb2xlYW4oKX1mb3IoY29uc3R7ZW5jb2RlZDplLGdseXBoOmF9b2YgaSl7Y29uc3QgaT1uZXcgZnMsbj1pLmNvbnZlcnQoZSx0LHRoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZCk7bGV0IHI9aS5vdXRwdXQ7biYmKHI9WzE0XSk7Y29uc3QgZz17Z2x5cGhOYW1lOmEsY2hhcnN0cmluZzpyLHdpZHRoOmkud2lkdGgsbHNiOmkubHNiLHNlYWM6aS5zZWFjfTtpZigiLm5vdGRlZiI9PT1hP3MuY2hhcnN0cmluZ3MudW5zaGlmdChnKTpzLmNoYXJzdHJpbmdzLnB1c2goZyksQS5idWlsdEluRW5jb2Rpbmcpe2NvbnN0IGU9QS5idWlsdEluRW5jb2RpbmcuaW5kZXhPZihhKTtlPi0xJiZ2b2lkIDA9PT1BLndpZHRoc1tlXSYmZT49QS5maXJzdENoYXImJmU8PUEubGFzdENoYXImJihBLndpZHRoc1tlXT1pLndpZHRoKX19cmV0dXJuIHN9ZXh0cmFjdEZvbnRIZWFkZXIoQSl7bGV0IGU7Zm9yKDtudWxsIT09KGU9dGhpcy5nZXRUb2tlbigpKTspaWYoIi8iPT09ZSlzd2l0Y2goZT10aGlzLmdldFRva2VuKCksZSl7Y2FzZSJGb250TWF0cml4Ijpjb25zdCB0PXRoaXMucmVhZE51bWJlckFycmF5KCk7QS5mb250TWF0cml4PXQ7YnJlYWs7Y2FzZSJFbmNvZGluZyI6Y29uc3QgaT10aGlzLmdldFRva2VuKCk7bGV0IGE7aWYoL15cZCskLy50ZXN0KGkpKXthPVtdO2NvbnN0IEE9MHxwYXJzZUludChpLDEwKTt0aGlzLmdldFRva2VuKCk7Zm9yKGxldCB0PTA7dDxBO3QrKyl7Zm9yKGU9dGhpcy5nZXRUb2tlbigpOyJkdXAiIT09ZSYmImRlZiIhPT1lOylpZihlPXRoaXMuZ2V0VG9rZW4oKSxudWxsPT09ZSlyZXR1cm47aWYoImRlZiI9PT1lKWJyZWFrO2NvbnN0IEE9dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2NvbnN0IHQ9dGhpcy5nZXRUb2tlbigpO2FbQV09dCx0aGlzLmdldFRva2VuKCl9fWVsc2UgYT1LaShpKTtBLmJ1aWx0SW5FbmNvZGluZz1hO2JyZWFrO2Nhc2UiRm9udEJCb3giOmNvbnN0IHM9dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTtBLmFzY2VudD1NYXRoLm1heChzWzNdLHNbMV0pLEEuZGVzY2VudD1NYXRoLm1pbihzWzFdLHNbM10pLEEuYXNjZW50U2NhbGVkPSEwfX19ZnVuY3Rpb24gRHMoQSxlLHQpe2NvbnN0IGk9QS5sZW5ndGgsYT1lLmxlbmd0aCxzPWktYTtsZXQgbj10LHI9ITE7Zm9yKDtuPHM7KXtsZXQgdD0wO2Zvcig7dDxhJiZBW24rdF09PT1lW3RdOyl0Kys7aWYodD49YSl7Zm9yKG4rPXQ7bjxpJiZZQShBW25dKTspbisrO3I9ITA7YnJlYWt9bisrfXJldHVybntmb3VuZDpyLGxlbmd0aDpufX1jbGFzcyBic3tjb25zdHJ1Y3RvcihBLGUsdCl7bGV0IGk9dC5sZW5ndGgxLGE9dC5sZW5ndGgyLHM9ZS5wZWVrQnl0ZXMoNik7Y29uc3Qgbj0xMjg9PT1zWzBdJiYxPT09c1sxXTtuJiYoZS5za2lwKDYpLGk9c1s1XTw8MjR8c1s0XTw8MTZ8c1szXTw8OHxzWzJdKTtjb25zdCByPWZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1bMTAxLDEwMSwxMjAsMTAxLDk5XSxpPUEucG9zO2xldCBhLHMsbixyO3RyeXthPUEuZ2V0Qnl0ZXMoZSkscz1hLmxlbmd0aH1jYXRjaHt9aWYocz09PWUmJihuPURzKGEsdCxlLTIqdC5sZW5ndGgpLG4uZm91bmQmJm4ubGVuZ3RoPT09ZSkpcmV0dXJue3N0cmVhbTpuZXcgZ2UoYSksbGVuZ3RoOmV9O2ZvcihVKCdJbnZhbGlkICJMZW5ndGgxIiBwcm9wZXJ0eSBpbiBUeXBlMSBmb250IC0tIHRyeWluZyB0byByZWNvdmVyLicpLEEucG9zPWk7bj1EcyhBLnBlZWtCeXRlcygyMDQ4KSx0LDApLDAhPT1uLmxlbmd0aDspaWYoQS5wb3MrPW4ubGVuZ3RoLG4uZm91bmQpe3I9QS5wb3MtaTticmVha31yZXR1cm4gQS5wb3M9aSxyP3tzdHJlYW06bmV3IGdlKEEuZ2V0Qnl0ZXMocikpLGxlbmd0aDpyfTooVSgnVW5hYmxlIHRvIHJlY292ZXIgIkxlbmd0aDEiIHByb3BlcnR5IGluIFR5cGUxIGZvbnQgLS0gdXNpbmcgYXMgaXMuJykse3N0cmVhbTpuZXcgZ2UoQS5nZXRCeXRlcyhlKSksbGVuZ3RoOmV9KX0oZSxpKTtuZXcgd3Moci5zdHJlYW0sITEsbGEpLmV4dHJhY3RGb250SGVhZGVyKHQpLG4mJihzPWUuZ2V0Qnl0ZXMoNiksYT1zWzVdPDwyNHxzWzRdPDwxNnxzWzNdPDw4fHNbMl0pO2NvbnN0IGc9ZnVuY3Rpb24oQSxlKXtjb25zdCB0PUEuZ2V0Qnl0ZXMoKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFcoImdldEVleGVjQmxvY2sgLSBubyBmb250IHByb2dyYW0gZm91bmQuIik7cmV0dXJue3N0cmVhbTpuZXcgZ2UodCksbGVuZ3RoOnQubGVuZ3RofX0oZSksbz1uZXcgd3MoZy5zdHJlYW0sITAsbGEpLmV4dHJhY3RGb250UHJvZ3JhbSh0KTtmb3IoY29uc3QgQSBpbiBvLnByb3BlcnRpZXMpdFtBXT1vLnByb3BlcnRpZXNbQV07Y29uc3QgST1vLmNoYXJzdHJpbmdzLGM9dGhpcy5nZXRUeXBlMkNoYXJzdHJpbmdzKEkpLGg9dGhpcy5nZXRUeXBlMlN1YnJzKG8uc3VicnMpO3RoaXMuY2hhcnN0cmluZ3M9SSx0aGlzLmRhdGE9dGhpcy53cmFwKEEsYyx0aGlzLmNoYXJzdHJpbmdzLGgsdCksdGhpcy5zZWFjcz10aGlzLmdldFNlYWNzKG8uY2hhcnN0cmluZ3MpfWdldCBudW1HbHlwaHMoKXtyZXR1cm4gdGhpcy5jaGFyc3RyaW5ncy5sZW5ndGgrMX1nZXRDaGFyc2V0KCl7Y29uc3QgQT1bIi5ub3RkZWYiXTtmb3IoY29uc3R7Z2x5cGhOYW1lOmV9b2YgdGhpcy5jaGFyc3RyaW5ncylBLnB1c2goZSk7cmV0dXJuIEF9Z2V0R2x5cGhNYXBwaW5nKEEpe2NvbnN0IGU9dGhpcy5jaGFyc3RyaW5ncztpZihBLmNvbXBvc2l0ZSl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgaT0wLGE9ZS5sZW5ndGg7aTxhO2krKyl0W0EuY01hcC5jaGFyQ29kZU9mKGkpXT1pKzE7cmV0dXJuIHR9Y29uc3QgdD1bIi5ub3RkZWYiXTtsZXQgaSxhO2ZvcihhPTA7YTxlLmxlbmd0aDthKyspdC5wdXNoKGVbYV0uZ2x5cGhOYW1lKTtjb25zdCBzPUEuYnVpbHRJbkVuY29kaW5nO2lmKHMpe2k9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgQSBpbiBzKWE9dC5pbmRleE9mKHNbQV0pLGE+PTAmJihpW0FdPWEpfXJldHVybiB1YShBLGksdCl9aGFzR2x5cGhJZChBKXtyZXR1cm4hKEE8MHx8QT49dGhpcy5udW1HbHlwaHMpJiYoMD09PUF8fHRoaXMuY2hhcnN0cmluZ3NbQS0xXS5jaGFyc3RyaW5nLmxlbmd0aD4wKX1nZXRTZWFjcyhBKXtjb25zdCBlPVtdO2ZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1BW3RdO2kuc2VhYyYmKGVbdCsxXT1pLnNlYWMpfXJldHVybiBlfWdldFR5cGUyQ2hhcnN0cmluZ3MoQSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBBKWUucHVzaCh0LmNoYXJzdHJpbmcpO3JldHVybiBlfWdldFR5cGUyU3VicnMoQSl7bGV0IGU9MDtjb25zdCB0PUEubGVuZ3RoO2U9dDwxMTMzPzEwNzp0PDMzNzY5PzExMzE6MzI3Njg7Y29uc3QgaT1bXTtsZXQgYTtmb3IoYT0wO2E8ZTthKyspaS5wdXNoKFsxMV0pO2ZvcihhPTA7YTx0O2ErKylpLnB1c2goQVthXSk7cmV0dXJuIGl9d3JhcChBLGUsdCxpLGEpe2NvbnN0IHM9bmV3IE9pO3MuaGVhZGVyPW5ldyBaaSgxLDAsNCw0KSxzLm5hbWVzPVtBXTtjb25zdCBuPW5ldyB6aTtuLnNldEJ5TmFtZSgidmVyc2lvbiIsMzkxKSxuLnNldEJ5TmFtZSgiTm90aWNlIiwzOTIpLG4uc2V0QnlOYW1lKCJGdWxsTmFtZSIsMzkzKSxuLnNldEJ5TmFtZSgiRmFtaWx5TmFtZSIsMzk0KSxuLnNldEJ5TmFtZSgiV2VpZ2h0IiwzOTUpLG4uc2V0QnlOYW1lKCJFbmNvZGluZyIsbnVsbCksbi5zZXRCeU5hbWUoIkZvbnRNYXRyaXgiLGEuZm9udE1hdHJpeCksbi5zZXRCeU5hbWUoIkZvbnRCQm94IixhLmJib3gpLG4uc2V0QnlOYW1lKCJjaGFyc2V0IixudWxsKSxuLnNldEJ5TmFtZSgiQ2hhclN0cmluZ3MiLG51bGwpLG4uc2V0QnlOYW1lKCJQcml2YXRlIixudWxsKSxzLnRvcERpY3Q9bjtjb25zdCByPW5ldyBqaTtyLmFkZCgiVmVyc2lvbiAwLjExIiksci5hZGQoIlNlZSBvcmlnaW5hbCBub3RpY2UiKSxyLmFkZChBKSxyLmFkZChBKSxyLmFkZCgiTWVkaXVtIikscy5zdHJpbmdzPXIscy5nbG9iYWxTdWJySW5kZXg9bmV3IFhpO2NvbnN0IGc9ZS5sZW5ndGgsbz1bIi5ub3RkZWYiXTtsZXQgSSxjO2ZvcihJPTA7STxnO0krKyl7Y29uc3QgQT10W0ldLmdseXBoTmFtZTstMT09PXFpLmluZGV4T2YoQSkmJnIuYWRkKEEpLG8ucHVzaChBKX1zLmNoYXJzZXQ9bmV3IHRhKCExLDAsbyk7Y29uc3QgaD1uZXcgWGk7Zm9yKGguYWRkKFsxMzksMTRdKSxJPTA7STxnO0krKyloLmFkZChlW0ldKTtzLmNoYXJTdHJpbmdzPWg7Y29uc3QgQz1uZXcgQWE7Qy5zZXRCeU5hbWUoIlN1YnJzIixudWxsKTtjb25zdCBCPVsiQmx1ZVZhbHVlcyIsIk90aGVyQmx1ZXMiLCJGYW1pbHlCbHVlcyIsIkZhbWlseU90aGVyQmx1ZXMiLCJTdGVtU25hcEgiLCJTdGVtU25hcFYiLCJCbHVlU2hpZnQiLCJCbHVlRnV6eiIsIkJsdWVTY2FsZSIsIkxhbmd1YWdlR3JvdXAiLCJFeHBhbnNpb25GYWN0b3IiLCJGb3JjZUJvbGQiLCJTdGRIVyIsIlN0ZFZXIl07Zm9yKEk9MCxjPUIubGVuZ3RoO0k8YztJKyspe2NvbnN0IEE9QltJXTtpZighKEEgaW4gYS5wcml2YXRlRGF0YSkpY29udGludWU7Y29uc3QgZT1hLnByaXZhdGVEYXRhW0FdO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCBBPWUubGVuZ3RoLTE7QT4wO0EtLSllW0FdLT1lW0EtMV07Qy5zZXRCeU5hbWUoQSxlKX1zLnRvcERpY3QucHJpdmF0ZURpY3Q9Qztjb25zdCBsPW5ldyBYaTtmb3IoST0wLGM9aS5sZW5ndGg7STxjO0krKylsLmFkZChpW0ldKTtyZXR1cm4gQy5zdWJyc0luZGV4PWwsbmV3IG5hKHMpLmNvbXBpbGUoKX19Y29uc3Qga3M9W1s1NzM0NCw2Mzc0M10sWzEwNDg1NzYsMTExNDEwOV1dLEZzPTFlMyxTcz1bImFzY2VudCIsImJib3giLCJibGFjayIsImJvbGQiLCJjaGFyUHJvY09wZXJhdG9yTGlzdCIsImNvbXBvc2l0ZSIsImNzc0ZvbnRJbmZvIiwiZGF0YSIsImRlZmF1bHRWTWV0cmljcyIsImRlZmF1bHRXaWR0aCIsImRlc2NlbnQiLCJmYWxsYmFja05hbWUiLCJmb250TWF0cml4IiwiaXNJbnZhbGlkUERGanNGb250IiwiaXNUeXBlM0ZvbnQiLCJpdGFsaWMiLCJsb2FkZWROYW1lIiwibWltZXR5cGUiLCJtaXNzaW5nRmlsZSIsIm5hbWUiLCJyZW1lYXN1cmUiLCJzdWJ0eXBlIiwic3lzdGVtRm9udEluZm8iLCJ0eXBlIiwidmVydGljYWwiXSxScz1bImNNYXAiLCJkZWZhdWx0RW5jb2RpbmciLCJkaWZmZXJlbmNlcyIsImlzTW9ub3NwYWNlIiwiaXNTZXJpZkZvbnQiLCJpc1N5bWJvbGljRm9udCIsInNlYWNNYXAiLCJ0b0ZvbnRDaGFyIiwidG9Vbmljb2RlIiwidm1ldHJpY3MiLCJ3aWR0aHMiXTtmdW5jdGlvbiBHcyhBKXtpZighQS5mb250TWF0cml4KXJldHVybjtpZihBLmZvbnRNYXRyaXhbMF09PT1uWzBdKXJldHVybjtjb25zdCBlPS4wMDEvQS5mb250TWF0cml4WzBdLHQ9QS53aWR0aHM7Zm9yKGNvbnN0IEEgaW4gdCl0W0FdKj1lO0EuZGVmYXVsdFdpZHRoKj1lfWZ1bmN0aW9uIE5zKEEpe2lmKCFBLmZhbGxiYWNrVG9Vbmljb2RlKXJldHVybjtpZihBLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hKXJldHVybjtjb25zdCBlPVtdO2Zvcihjb25zdCB0IGluIEEuZmFsbGJhY2tUb1VuaWNvZGUpQS50b1VuaWNvZGUuaGFzKHQpfHwoZVt0XT1BLmZhbGxiYWNrVG9Vbmljb2RlW3RdKTtlLmxlbmd0aD4wJiZBLnRvVW5pY29kZS5hbWVuZChlKX1jbGFzcyB4c3tjb25zdHJ1Y3RvcihBLGUsdCxpLGEscyxuLHIsZyl7dGhpcy5vcmlnaW5hbENoYXJDb2RlPUEsdGhpcy5mb250Q2hhcj1lLHRoaXMudW5pY29kZT10LHRoaXMuYWNjZW50PWksdGhpcy53aWR0aD1hLHRoaXMudm1ldHJpYz1zLHRoaXMub3BlcmF0b3JMaXN0SWQ9bix0aGlzLmlzU3BhY2U9cix0aGlzLmlzSW5Gb250PWd9Z2V0IGNhdGVnb3J5KCl7cmV0dXJuIEgodGhpcywiY2F0ZWdvcnkiLGZ1bmN0aW9uKEEpe2NvbnN0IGU9QmEuZ2V0KEEpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD1BLm1hdGNoKENhKSxpPXtpc1doaXRlc3BhY2U6ISF0Py5bMV0saXNaZXJvV2lkdGhEaWFjcml0aWM6ISF0Py5bMl0saXNJbnZpc2libGVGb3JtYXRNYXJrOiEhdD8uWzNdfTtyZXR1cm4gQmEuc2V0KEEsaSksaX0odGhpcy51bmljb2RlKSwhMCl9fWZ1bmN0aW9uIFVzKEEsZSl7cmV0dXJuKEE8PDgpK2V9ZnVuY3Rpb24gTXMoQSxlLHQpe0FbZSsxXT10LEFbZV09dD4+Pjh9ZnVuY3Rpb24gTHMoQSxlKXtjb25zdCB0PShBPDw4KStlO3JldHVybiAzMjc2OCZ0P3QtNjU1MzY6dH1mdW5jdGlvbiBKcyhBKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShBPj44JjI1NSwyNTUmQSl9ZnVuY3Rpb24gSHMoQSl7cmV0dXJuIEE+MzI3Njc/QT0zMjc2NzpBPC0zMjc2OCYmKEE9LTMyNzY4KSxTdHJpbmcuZnJvbUNoYXJDb2RlKEE+PjgmMjU1LDI1NSZBKX1mdW5jdGlvbiBZcyhBKXtyZXR1cm4idHRjZiI9PT1aKEEucGVla0J5dGVzKDQpKX1mdW5jdGlvbiB2cyhBLGUpe2Zvcihjb25zdCB0IGluIGUpQVsrdF09ZVt0XX1mdW5jdGlvbiBLcyhBLGUsdCl7Y29uc3QgaT1bXTtsZXQgYTtmb3IobGV0IHQ9MCxzPUEubGVuZ3RoO3Q8czt0KyspYT1JYShBW3RdLGUpLC0xIT09YSYmKGlbdF09YSk7Zm9yKGNvbnN0IEEgaW4gdClhPUlhKHRbQV0sZSksLTEhPT1hJiYoaVsrQV09YSk7cmV0dXJuIGl9ZnVuY3Rpb24gcXMoQSl7cmV0dXJuIDE9PT1BLnBsYXRmb3JtJiYwPT09QS5lbmNvZGluZyYmMD09PUEubGFuZ3VhZ2V9ZnVuY3Rpb24gVHMoQSl7cmV0dXJuIDM9PT1BLnBsYXRmb3JtJiYxPT09QS5lbmNvZGluZyYmMTAzMz09PUEubGFuZ3VhZ2V9ZnVuY3Rpb24gUHMoQSxlLHQ9ITEpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBlLmNoYXJDb2RlQXQoMCk7Y2FzZSAyOnJldHVybiBlLmNoYXJDb2RlQXQoMCk8PDh8ZS5jaGFyQ29kZUF0KDEpfWNvbnN0IGk9YFVuc3VwcG9ydGVkIENJRCBzdHJpbmcgKGNoYXJDb2RlICR7QX0pOiAiJHtlfSIuYDtpZih0KXRocm93IG5ldyBXKGkpO3JldHVybiBVKGkpLGV9ZnVuY3Rpb24gV3MoQSxlLHQsaSl7Y29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpLHM9bmV3IE1hcCxuPVtdLHI9bmV3IFNldDtsZXQgZz0wLG89a3NbZ11bMF0sST1rc1tnXVsxXTtmb3IoY29uc3QgaCBpbiBBKXtsZXQgQz1BW2hdO2lmKCFlKEMpKWNvbnRpbnVlO2lmKG8+SSl7aWYoZysrLGc+PWtzLmxlbmd0aCl7VSgiUmFuIG91dCBvZiBzcGFjZSBpbiBmb250IHByaXZhdGUgdXNlIGFyZWEuIik7YnJlYWt9bz1rc1tnXVswXSxJPWtzW2ddWzFdfWNvbnN0IEI9bysrOzA9PT1DJiYoQz10KTtsZXQgbD1pLmdldChoKTsic3RyaW5nIj09dHlwZW9mIGwmJihsPWwuY29kZVBvaW50QXQoMCkpLCFsfHwoYz1sLGtzWzBdWzBdPD1jJiZjPD1rc1swXVsxXXx8a3NbMV1bMF08PWMmJmM8PWtzWzFdWzFdKXx8ci5oYXMoQyl8fChzLnNldChsLEMpLHIuYWRkKEMpKSxhW0JdPUMsbltoXT1CfXZhciBjO3JldHVybnt0b0ZvbnRDaGFyOm4sY2hhckNvZGVUb0dseXBoSWQ6YSx0b1VuaWNvZGVFeHRyYU1hcDpzLG5leHRBdmFpbGFibGVGb250Q2hhckNvZGU6b319ZnVuY3Rpb24gT3MoQSxlLHQpe2NvbnN0IGk9ZnVuY3Rpb24oQSxlLHQpe2NvbnN0IGk9W107Zm9yKGNvbnN0IGUgaW4gQSlBW2VdPj10fHxpLnB1c2goe2ZvbnRDaGFyQ29kZTowfGUsZ2x5cGhJZDpBW2VdfSk7aWYoZSlmb3IoY29uc3RbQSxhXW9mIGUpYT49dHx8aS5wdXNoKHtmb250Q2hhckNvZGU6QSxnbHlwaElkOmF9KTswPT09aS5sZW5ndGgmJmkucHVzaCh7Zm9udENoYXJDb2RlOjAsZ2x5cGhJZDowfSksaS5zb3J0KChmdW5jdGlvbihBLGUpe3JldHVybiBBLmZvbnRDaGFyQ29kZS1lLmZvbnRDaGFyQ29kZX0pKTtjb25zdCBhPVtdLHM9aS5sZW5ndGg7Zm9yKGxldCBBPTA7QTxzOyl7Y29uc3QgZT1pW0FdLmZvbnRDaGFyQ29kZSx0PVtpW0FdLmdseXBoSWRdOysrQTtsZXQgbj1lO2Zvcig7QTxzJiZuKzE9PT1pW0FdLmZvbnRDaGFyQ29kZSYmKHQucHVzaChpW0FdLmdseXBoSWQpLCsrbiwrK0EsNjU1MzUhPT1uKTspO2EucHVzaChbZSxuLHRdKX1yZXR1cm4gYX0oQSxlLHQpLGE9aS5hdCgtMSlbMV0+NjU1MzU/MjoxO2xldCBzLG4scixnLG89IlwwXDAiK0pzKGEpKyJcMANcMAEiK1goNCs4KmEpO2ZvcihzPWkubGVuZ3RoLTE7cz49MCYmIShpW3NdWzBdPD02NTUzNSk7LS1zKTtjb25zdCBJPXMrMTtpW3NdWzBdPDY1NTM1JiY2NTUzNT09PWlbc11bMV0mJihpW3NdWzFdPTY1NTM0KTtjb25zdCBjPWlbc11bMV08NjU1MzU/MTowLGg9SStjLEM9Z3MuZ2V0U2VhcmNoUGFyYW1zKGgsMik7bGV0IEIsbCxRLEUsdT0iIixkPSIiLGY9IiIscD0iIixtPSIiLHk9MDtmb3Iocz0wLG49STtzPG47cysrKXtCPWlbc10sbD1CWzBdLFE9QlsxXSx1Kz1KcyhsKSxkKz1KcyhRKSxFPUJbMl07bGV0IEE9ITA7Zm9yKHI9MSxnPUUubGVuZ3RoO3I8ZzsrK3IpaWYoRVtyXSE9PUVbci0xXSsxKXtBPSExO2JyZWFrfWlmKEEpZis9SnMoRVswXS1sJjY1NTM1KSxwKz1KcygwKTtlbHNle2NvbnN0IEE9MiooaC1zKSsyKnk7Zm9yKHkrPVEtbCsxLGYrPUpzKDApLHArPUpzKEEpLHI9MCxnPUUubGVuZ3RoO3I8ZzsrK3IpbSs9SnMoRVtyXSl9fWM+MCYmKGQrPSLDv8O/Iix1Kz0iw7/DvyIsZis9IlwwASIscCs9IlwwXDAiKTtjb25zdCB3PSJcMFwwIitKcygyKmgpK0pzKEMucmFuZ2UpK0pzKEMuZW50cnkpK0pzKEMucmFuZ2VTaGlmdCkrZCsiXDBcMCIrdStmK3ArbTtsZXQgRD0iIixiPSIiO2lmKGE+MSl7Zm9yKG8rPSJcMANcMFxuIitYKDQrOCphKzQrdy5sZW5ndGgpLEQ9IiIscz0wLG49aS5sZW5ndGg7czxuO3MrKyl7Qj1pW3NdLGw9QlswXSxFPUJbMl07bGV0IEE9RVswXTtmb3Iocj0xLGc9RS5sZW5ndGg7cjxnOysrcilFW3JdIT09RVtyLTFdKzEmJihRPUJbMF0rci0xLEQrPVgobCkrWChRKStYKEEpLGw9USsxLEE9RVtyXSk7RCs9WChsKStYKEJbMV0pK1goQSl9Yj0iXDBcZlwwXDAiK1goRC5sZW5ndGgrMTYpKyJcMFwwXDBcMCIrWChELmxlbmd0aC8xMil9cmV0dXJuIG8rIlwwBCIrSnMody5sZW5ndGgrNCkrdytiK0R9ZnVuY3Rpb24gWnMoQSxlLHQpe3R8fD17dW5pdHNQZXJFbTowLHlNYXg6MCx5TWluOjAsYXNjZW50OjAsZGVzY2VudDowfTtsZXQgaT0wLGE9MCxzPTAsbj0wLHI9bnVsbCxnPTAsbz0tMTtpZihlKXtmb3IobGV0IEEgaW4gZSlpZihBfD0wLChyPkF8fCFyKSYmKHI9QSksZzxBJiYoZz1BKSxvPWhhKEEsbyksbzwzMilpfD0xPDxvO2Vsc2UgaWYobzw2NClhfD0xPDxvLTMyO2Vsc2UgaWYobzw5NilzfD0xPDxvLTY0O2Vsc2V7aWYoIShvPDEyMykpdGhyb3cgbmV3IFcoIlVuaWNvZGUgcmFuZ2VzIEJpdHMgPiAxMjMgYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2FnZSIpO258PTE8PG8tOTZ9Zz42NTUzNSYmKGc9NjU1MzUpfWVsc2Ugcj0wLGc9MjU1O2NvbnN0IEk9QS5iYm94fHxbMCwwLDAsMF0sYz10LnVuaXRzUGVyRW18fChBLmZvbnRNYXRyaXg/MS9NYXRoLm1heCguLi5BLmZvbnRNYXRyaXguc2xpY2UoMCw0KS5tYXAoTWF0aC5hYnMpKToxZTMpLGg9QS5hc2NlbnRTY2FsZWQ/MTpjL0ZzLEM9dC5hc2NlbnR8fE1hdGgucm91bmQoaCooQS5hc2NlbnR8fElbM10pKTtsZXQgQj10LmRlc2NlbnR8fE1hdGgucm91bmQoaCooQS5kZXNjZW50fHxJWzFdKSk7Qj4wJiZBLmRlc2NlbnQ+MCYmSVsxXTwwJiYoQj0tQik7Y29uc3QgbD10LnlNYXh8fEMsUT0tdC55TWlufHwtQjtyZXR1cm4iXDADAiQBw7RcMAVcMFwwAsKKAsK7XDBcMFwwwowCwooCwrtcMFwwAcOfXHgwMDEBAlwwXDBcMFwwBiIrU3RyaW5nLmZyb21DaGFyQ29kZShBLmZpeGVkUGl0Y2g/OTowKSsiXDBcMFwwXDBcMFwwIitYKGkpK1goYSkrWChzKStYKG4pKyIqMjEqIitKcyhBLml0YWxpY0FuZ2xlPzE6MCkrSnMocnx8QS5maXJzdENoYXIpK0pzKGd8fEEubGFzdENoYXIpK0pzKEMpK0pzKEIpKyJcMGQiK0pzKGwpK0pzKFEpKyJcMFwwXDBcMFwwXDBcMFwwIitKcyhBLnhIZWlnaHQpK0pzKEEuY2FwSGVpZ2h0KStKcygwKStKcyhyfHxBLmZpcnN0Q2hhcikrIlwwAyJ9ZnVuY3Rpb24ganMoQSl7cmV0dXJuIlwwA1wwXDAiK1goTWF0aC5mbG9vcig2NTUzNipBLml0YWxpY0FuZ2xlKSkrIlwwXDBcMFwwIitYKEEuZml4ZWRQaXRjaD8xOjApKyJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9ZnVuY3Rpb24gWHMoQSl7cmV0dXJuIEEucmVwbGFjZUFsbCgvW15ceDIxLVx4N0VdfFtbXF0oKXt9PD4vJV0vZywiIikuc2xpY2UoMCw2Myl9ZnVuY3Rpb24gVnMoQSxlKXtlfHwoZT1bW10sW11dKTtjb25zdCB0PVtlWzBdWzBdfHwiT3JpZ2luYWwgbGljZW5jZSIsZVswXVsxXXx8QSxlWzBdWzJdfHwiVW5rbm93biIsZVswXVszXXx8InVuaXF1ZUlEIixlWzBdWzRdfHxBLGVbMF1bNV18fCJWZXJzaW9uIDAuMTEiLGVbMF1bNl18fFhzKEEpLGVbMF1bN118fCJVbmtub3duIixlWzBdWzhdfHwiVW5rbm93biIsZVswXVs5XXx8IlVua25vd24iXSxpPVtdO2xldCBhLHMsbixyLGc7Zm9yKGE9MCxzPXQubGVuZ3RoO2E8czthKyspe2c9ZVsxXVthXXx8dFthXTtjb25zdCBBPVtdO2ZvcihuPTAscj1nLmxlbmd0aDtuPHI7bisrKUEucHVzaChKcyhnLmNoYXJDb2RlQXQobikpKTtpLnB1c2goQS5qb2luKCIiKSl9Y29uc3Qgbz1bdCxpXSxJPVsiXDABIiwiXDADIl0sYz1bIlwwXDAiLCJcMAEiXSxoPVsiXDBcMCIsIgRcdCJdLEM9dC5sZW5ndGgqSS5sZW5ndGg7bGV0IEI9IlwwXDAiK0pzKEMpK0pzKDEyKkMrNiksbD0wO2ZvcihhPTAscz1JLmxlbmd0aDthPHM7YSsrKXtjb25zdCBBPW9bYV07Zm9yKG49MCxyPUEubGVuZ3RoO248cjtuKyspZz1BW25dLEIrPUlbYV0rY1thXStoW2FdK0pzKG4pK0pzKGcubGVuZ3RoKStKcyhsKSxsKz1nLmxlbmd0aH1yZXR1cm4gQis9dC5qb2luKCIiKStpLmpvaW4oIiIpLEJ9Y2xhc3MgX3N7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMubmFtZT1BLHRoaXMucHNOYW1lPW51bGwsdGhpcy5taW1ldHlwZT1udWxsLHRoaXMuZGlzYWJsZUZvbnRGYWNlPSExLHRoaXMubG9hZGVkTmFtZT10LmxvYWRlZE5hbWUsdGhpcy5pc1R5cGUzRm9udD10LmlzVHlwZTNGb250LHRoaXMubWlzc2luZ0ZpbGU9ITEsdGhpcy5jc3NGb250SW5mbz10LmNzc0ZvbnRJbmZvLHRoaXMuX2NoYXJzQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9nbHlwaENhY2hlPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IGk9ISEoMiZ0LmZsYWdzKTtpZighaSYmIXQuaXNTaW11bGF0ZWRGbGFncyl7Y29uc3QgZT1BLnJlcGxhY2VBbGwoL1ssX10vZywiLSIpLnNwbGl0KCItIiwxKVswXSx0PXdhKCk7Zm9yKGNvbnN0IEEgb2YgZS5zcGxpdCgiKyIpKWlmKHRbQV0pe2k9ITA7YnJlYWt9fXRoaXMuaXNTZXJpZkZvbnQ9aSx0aGlzLmlzU3ltYm9saWNGb250PSEhKDQmdC5mbGFncyksdGhpcy5pc01vbm9zcGFjZT0hISgxJnQuZmxhZ3MpO2xldHt0eXBlOmEsc3VidHlwZTpzfT10O3RoaXMudHlwZT1hLHRoaXMuc3VidHlwZT1zLHRoaXMuc3lzdGVtRm9udEluZm89dC5zeXN0ZW1Gb250SW5mbztjb25zdCBuPUEubWF0Y2goL15JbnZhbGlkUERGanNGb250XyguKilfXGQrJC8pO2lmKHRoaXMuaXNJbnZhbGlkUERGanNGb250PSEhbix0aGlzLmlzSW52YWxpZFBERmpzRm9udD90aGlzLmZhbGxiYWNrTmFtZT1uWzFdOnRoaXMuaXNNb25vc3BhY2U/dGhpcy5mYWxsYmFja05hbWU9Im1vbm9zcGFjZSI6dGhpcy5pc1NlcmlmRm9udD90aGlzLmZhbGxiYWNrTmFtZT0ic2VyaWYiOnRoaXMuZmFsbGJhY2tOYW1lPSJzYW5zLXNlcmlmIix0aGlzLnN5c3RlbUZvbnRJbmZvPy5ndWVzc0ZhbGxiYWNrJiYodGhpcy5zeXN0ZW1Gb250SW5mby5ndWVzc0ZhbGxiYWNrPSExLHRoaXMuc3lzdGVtRm9udEluZm8uY3NzKz1gLCR7dGhpcy5mYWxsYmFja05hbWV9YCksdGhpcy5kaWZmZXJlbmNlcz10LmRpZmZlcmVuY2VzLHRoaXMud2lkdGhzPXQud2lkdGhzLHRoaXMuZGVmYXVsdFdpZHRoPXQuZGVmYXVsdFdpZHRoLHRoaXMuY29tcG9zaXRlPXQuY29tcG9zaXRlLHRoaXMuY01hcD10LmNNYXAsdGhpcy5jYXBIZWlnaHQ9dC5jYXBIZWlnaHQvRnMsdGhpcy5hc2NlbnQ9dC5hc2NlbnQvRnMsdGhpcy5kZXNjZW50PXQuZGVzY2VudC9Gcyx0aGlzLmxpbmVIZWlnaHQ9dGhpcy5hc2NlbnQtdGhpcy5kZXNjZW50LHRoaXMuZm9udE1hdHJpeD10LmZvbnRNYXRyaXgsdGhpcy5iYm94PXQuYmJveCx0aGlzLmRlZmF1bHRFbmNvZGluZz10LmRlZmF1bHRFbmNvZGluZyx0aGlzLnRvVW5pY29kZT10LnRvVW5pY29kZSx0aGlzLnRvRm9udENoYXI9W10sIlR5cGUzIj09PXQudHlwZSl7Zm9yKGxldCBBPTA7QTwyNTY7QSsrKXRoaXMudG9Gb250Q2hhcltBXT10aGlzLmRpZmZlcmVuY2VzW0FdfHx0LmRlZmF1bHRFbmNvZGluZ1tBXTtyZXR1cm59aWYodGhpcy5jaWRFbmNvZGluZz10LmNpZEVuY29kaW5nfHwiIix0aGlzLnZlcnRpY2FsPSEhdC52ZXJ0aWNhbCx0aGlzLnZlcnRpY2FsJiYodGhpcy52bWV0cmljcz10LnZtZXRyaWNzLHRoaXMuZGVmYXVsdFZNZXRyaWNzPXQuZGVmYXVsdFZNZXRyaWNzKSwhZXx8ZS5pc0VtcHR5KXJldHVybiBlJiZVKCdGb250IGZpbGUgaXMgZW1wdHkgaW4gIicrQSsnIiAoJyt0aGlzLmxvYWRlZE5hbWUrIikiKSx2b2lkIHRoaXMuZmFsbGJhY2tUb1N5c3RlbUZvbnQodCk7bGV0IHI7W2Esc109ZnVuY3Rpb24oQSx7dHlwZTplLHN1YnR5cGU6dCxjb21wb3NpdGU6aX0pe2xldCBhLHM7cmV0dXJuIGZ1bmN0aW9uKEEpe2NvbnN0IGU9QS5wZWVrQnl0ZXMoNCk7cmV0dXJuIDY1NTM2PT09SEEoZSwwKXx8InRydWUiPT09WihlKX0oQSl8fFlzKEEpP2E9aT8iQ0lERm9udFR5cGUyIjoiVHJ1ZVR5cGUiOmZ1bmN0aW9uKEEpe3JldHVybiJPVFRPIj09PVooQS5wZWVrQnl0ZXMoNCkpfShBKT9hPWk/IkNJREZvbnRUeXBlMiI6Ik9wZW5UeXBlIjpmdW5jdGlvbihBKXtjb25zdCBlPUEucGVla0J5dGVzKDIpO3JldHVybiAzNz09PWVbMF0mJjMzPT09ZVsxXXx8MTI4PT09ZVswXSYmMT09PWVbMV19KEEpP2E9aT8iQ0lERm9udFR5cGUwIjoiTU1UeXBlMSI9PT1lPyJNTVR5cGUxIjoiVHlwZTEiOmZ1bmN0aW9uKEEpe2NvbnN0IGU9QS5wZWVrQnl0ZXMoNCk7cmV0dXJuIGVbMF0+PTEmJmVbM10+PTEmJmVbM108PTR9KEEpP2k/KGE9IkNJREZvbnRUeXBlMCIscz0iQ0lERm9udFR5cGUwQyIpOihhPSJNTVR5cGUxIj09PWU/Ik1NVHlwZTEiOiJUeXBlMSIscz0iVHlwZTFDIik6KFUoImdldEZvbnRGaWxlVHlwZTogVW5hYmxlIHRvIGRldGVjdCBjb3JyZWN0IGZvbnQgZmlsZSBUeXBlL1N1YnR5cGUuIiksYT1lLHM9dCksW2Esc119KGUsdCksYT09PXRoaXMudHlwZSYmcz09PXRoaXMuc3VidHlwZXx8eChgSW5jb25zaXN0ZW50IGZvbnQgZmlsZSBUeXBlL1N1YlR5cGUsIGV4cGVjdGVkOiAke3RoaXMudHlwZX0vJHt0aGlzLnN1YnR5cGV9IGJ1dCBmb3VuZDogJHthfS8ke3N9LmApO3RyeXtzd2l0Y2goYSl7Y2FzZSJNTVR5cGUxIjp4KCJNTVR5cGUxIGZvbnQgKCIrQSsiKSwgZmFsbGluZyBiYWNrIHRvIFR5cGUxLiIpO2Nhc2UiVHlwZTEiOmNhc2UiQ0lERm9udFR5cGUwIjp0aGlzLm1pbWV0eXBlPSJmb250L29wZW50eXBlIjtjb25zdCBpPSJUeXBlMUMiPT09c3x8IkNJREZvbnRUeXBlMEMiPT09cz9uZXcgeGEoZSx0KTpuZXcgYnMoQSxlLHQpO0dzKHQpLHI9dGhpcy5jb252ZXJ0KEEsaSx0KTticmVhaztjYXNlIk9wZW5UeXBlIjpjYXNlIlRydWVUeXBlIjpjYXNlIkNJREZvbnRUeXBlMiI6dGhpcy5taW1ldHlwZT0iZm9udC9vcGVudHlwZSIscj10aGlzLmNoZWNrQW5kUmVwYWlyKEEsZSx0KSx0aGlzLmlzT3BlblR5cGUmJihHcyh0KSxhPSJPcGVuVHlwZSIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFcoYEZvbnQgJHthfSBpcyBub3Qgc3VwcG9ydGVkYCl9fWNhdGNoKEEpe3JldHVybiBVKEEpLHZvaWQgdGhpcy5mYWxsYmFja1RvU3lzdGVtRm9udCh0KX1Ocyh0KSx0aGlzLmRhdGE9cix0aGlzLnR5cGU9YSx0aGlzLnN1YnR5cGU9cyx0aGlzLmZvbnRNYXRyaXg9dC5mb250TWF0cml4LHRoaXMud2lkdGhzPXQud2lkdGhzLHRoaXMuZGVmYXVsdFdpZHRoPXQuZGVmYXVsdFdpZHRoLHRoaXMudG9Vbmljb2RlPXQudG9Vbmljb2RlLHRoaXMuc2VhY01hcD10LnNlYWNNYXB9Z2V0IHJlbmRlcmVyKCl7cmV0dXJuIEgodGhpcywicmVuZGVyZXIiLFZhLmNyZWF0ZSh0aGlzLGxhKSl9ZXhwb3J0RGF0YShBPSExKXtjb25zdCBlPUE/Wy4uLlNzLC4uLlJzXTpTcyx0PU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IGksYTtmb3IoaSBvZiBlKWE9dGhpc1tpXSx2b2lkIDAhPT1hJiYodFtpXT1hKTtyZXR1cm4gdH1mYWxsYmFja1RvU3lzdGVtRm9udChBKXt0aGlzLm1pc3NpbmdGaWxlPSEwO2NvbnN0e25hbWU6ZSx0eXBlOnR9PXRoaXM7bGV0IGk9ZGEoZSk7Y29uc3QgYT1wYSgpLHM9eWEoKSxuPSEhYVtpXSxyPSEoIXNbaV18fCFhW3NbaV1dKTtpPWFbaV18fHNbaV18fGk7Y29uc3QgZz16YSgpW2ldO2cmJihpc05hTih0aGlzLmFzY2VudCkmJih0aGlzLmFzY2VudD1nLmFzY2VudC9GcyksaXNOYU4odGhpcy5kZXNjZW50KSYmKHRoaXMuZGVzY2VudD1nLmRlc2NlbnQvRnMpLGlzTmFOKHRoaXMuY2FwSGVpZ2h0KSYmKHRoaXMuY2FwSGVpZ2h0PWcuY2FwSGVpZ2h0L0ZzKSksdGhpcy5ib2xkPS9ib2xkL2dpLnRlc3QoaSksdGhpcy5pdGFsaWM9L29ibGlxdWV8aXRhbGljL2dpLnRlc3QoaSksdGhpcy5ibGFjaz0vQmxhY2svZy50ZXN0KGUpO2NvbnN0IG89L05hcnJvdy9nLnRlc3QoZSk7aWYodGhpcy5yZW1lYXN1cmU9KCFufHxvKSYmT2JqZWN0LmtleXModGhpcy53aWR0aHMpLmxlbmd0aD4wLChufHxyKSYmIkNJREZvbnRUeXBlMiI9PT10JiZ0aGlzLmNpZEVuY29kaW5nLnN0YXJ0c1dpdGgoIklkZW50aXR5LSIpKXtjb25zdCB0PUEuY2lkVG9HaWRNYXAsaT1bXTtpZih2cyhpLGJhKCkpLC9BcmlhbC0/QmxhY2svaS50ZXN0KGUpP3ZzKGksa2EoKSk6L0NhbGlicmkvaS50ZXN0KGUpJiZ2cyhpLEZhKCkpLHQpe2Zvcihjb25zdCBBIGluIGkpe2NvbnN0IGU9aVtBXTt2b2lkIDAhPT10W2VdJiYoaVsrQV09dFtlXSl9dC5sZW5ndGghPT10aGlzLnRvVW5pY29kZS5sZW5ndGgmJkEuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXAmJnRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgTmEmJnRoaXMudG9Vbmljb2RlLmZvckVhY2goKGZ1bmN0aW9uKEEsZSl7Y29uc3QgYT1pW0FdO3ZvaWQgMD09PXRbYV0mJihpWytBXT1lKX0pKX10aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hfHx0aGlzLnRvVW5pY29kZS5mb3JFYWNoKChmdW5jdGlvbihBLGUpe2lbK0FdPWV9KSksdGhpcy50b0ZvbnRDaGFyPWksdGhpcy50b1VuaWNvZGU9bmV3IEdhKGkpfWVsc2UgaWYoL1N5bWJvbC9pLnRlc3QoaSkpdGhpcy50b0ZvbnRDaGFyPUtzKFlpLHJhKCksdGhpcy5kaWZmZXJlbmNlcyk7ZWxzZSBpZigvRGluZ2JhdHMvaS50ZXN0KGkpKXRoaXMudG9Gb250Q2hhcj1Lcyh2aSxnYSgpLHRoaXMuZGlmZmVyZW5jZXMpO2Vsc2UgaWYobnx8cil7Y29uc3QgQT1Lcyh0aGlzLmRlZmF1bHRFbmNvZGluZyxyYSgpLHRoaXMuZGlmZmVyZW5jZXMpOyJDSURGb250VHlwZTIiIT09dHx8dGhpcy5jaWRFbmNvZGluZy5zdGFydHNXaXRoKCJJZGVudGl0eS0iKXx8dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBOYXx8dGhpcy50b1VuaWNvZGUuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtBWytlXT10fSkpLHRoaXMudG9Gb250Q2hhcj1BfWVsc2V7Y29uc3QgQT1yYSgpLHQ9W107dGhpcy50b1VuaWNvZGUuZm9yRWFjaCgoKGUsaSk9PntpZighdGhpcy5jb21wb3NpdGUpe2NvbnN0IHQ9SWEodGhpcy5kaWZmZXJlbmNlc1tlXXx8dGhpcy5kZWZhdWx0RW5jb2RpbmdbZV0sQSk7LTEhPT10JiYoaT10KX10WytlXT1pfSkpLHRoaXMuY29tcG9zaXRlJiZ0aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hJiYvVGFob21hfFZlcmRhbmEvaS50ZXN0KGUpJiZ2cyh0LGJhKCkpLHRoaXMudG9Gb250Q2hhcj10fU5zKEEpLHRoaXMubG9hZGVkTmFtZT1pLnNwbGl0KCItIiwxKVswXX1jaGVja0FuZFJlcGFpcihBLGUsdCl7Y29uc3QgaT1bIk9TLzIiLCJjbWFwIiwiaGVhZCIsImhoZWEiLCJobXR4IiwibWF4cCIsIm5hbWUiLCJwb3N0IiwibG9jYSIsImdseWYiLCJmcGdtIiwicHJlcCIsImN2dCAiLCJDRkYgIl07ZnVuY3Rpb24gYShBLGUpe2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTt0WyJPUy8yIl09bnVsbCx0LmNtYXA9bnVsbCx0LmhlYWQ9bnVsbCx0LmhoZWE9bnVsbCx0LmhtdHg9bnVsbCx0Lm1heHA9bnVsbCx0Lm5hbWU9bnVsbCx0LnBvc3Q9bnVsbDtmb3IobGV0IGE9MDthPGU7YSsrKXtjb25zdCBlPXMoQSk7aS5pbmNsdWRlcyhlLnRhZykmJjAhPT1lLmxlbmd0aCYmKHRbZS50YWddPWUpfXJldHVybiB0fWZ1bmN0aW9uIHMoQSl7Y29uc3QgZT1BLmdldFN0cmluZyg0KSx0PUEuZ2V0SW50MzIoKT4+PjAsaT1BLmdldEludDMyKCk+Pj4wLGE9QS5nZXRJbnQzMigpPj4+MCxzPUEucG9zO0EucG9zPUEuc3RhcnR8fDAsQS5za2lwKGkpO2NvbnN0IG49QS5nZXRCeXRlcyhhKTtyZXR1cm4gQS5wb3M9cywiaGVhZCI9PT1lJiYobls4XT1uWzldPW5bMTBdPW5bMTFdPTAsblsxN118PTMyKSx7dGFnOmUsY2hlY2tzdW06dCxsZW5ndGg6YSxvZmZzZXQ6aSxkYXRhOm59fWZ1bmN0aW9uIG4oQSl7cmV0dXJue3ZlcnNpb246QS5nZXRTdHJpbmcoNCksbnVtVGFibGVzOkEuZ2V0VWludDE2KCksc2VhcmNoUmFuZ2U6QS5nZXRVaW50MTYoKSxlbnRyeVNlbGVjdG9yOkEuZ2V0VWludDE2KCkscmFuZ2VTaGlmdDpBLmdldFVpbnQxNigpfX1mdW5jdGlvbiByKEEsZSx0LGksYSxzKXtjb25zdCBuPXtsZW5ndGg6MCxzaXplT2ZJbnN0cnVjdGlvbnM6MH07aWYoZTwwfHxlPj1BLmxlbmd0aHx8dD5BLmxlbmd0aHx8dC1lPD0xMilyZXR1cm4gbjtjb25zdCByPUEuc3ViYXJyYXkoZSx0KSxnPUxzKHJbMl0sclszXSksbz1McyhyWzRdLHJbNV0pLEk9THMocls2XSxyWzddKSxjPUxzKHJbOF0scls5XSk7Zz5JJiYoTXMociwyLEkpLE1zKHIsNixnKSksbz5jJiYoTXMociw0LGMpLE1zKHIsOCxvKSk7Y29uc3QgaD1McyhyWzBdLHJbMV0pO2lmKGg8MClyZXR1cm4gaDwtMXx8KGkuc2V0KHIsYSksbi5sZW5ndGg9ci5sZW5ndGgpLG47bGV0IEMsQj0xMCxsPTA7Zm9yKEM9MDtDPGg7QysrKWw9MSsocltCXTw8OHxyW0IrMV0pLEIrPTI7Y29uc3QgUT1CLEU9cltCXTw8OHxyW0IrMV07bi5zaXplT2ZJbnN0cnVjdGlvbnM9RSxCKz0yK0U7Y29uc3QgdT1CO2xldCBkPTA7Zm9yKEM9MDtDPGw7QysrKXtjb25zdCBBPXJbQisrXTsxOTImQSYmKHJbQi0xXT02MyZBKTtsZXQgZT0yOzImQT9lPTE6MTYmQSYmKGU9MCk7bGV0IHQ9Mjs0JkE/dD0xOjMyJkEmJih0PTApO2NvbnN0IGk9ZSt0O2lmKGQrPWksOCZBKXtjb25zdCBBPXJbQisrXTswPT09QSYmKHJbQi0xXV49OCksQys9QSxkKz1BKml9fWlmKDA9PT1kKXJldHVybiBuO2xldCBmPUIrZDtyZXR1cm4gZj5yLmxlbmd0aD9uOiFzJiZFPjA/KGkuc2V0KHIuc3ViYXJyYXkoMCxRKSxhKSxpLnNldChbMCwwXSxhK1EpLGkuc2V0KHIuc3ViYXJyYXkodSxmKSxhK1ErMiksZi09RSxyLmxlbmd0aC1mPjMmJihmPWYrMyYtNCksbi5sZW5ndGg9ZixuKTpyLmxlbmd0aC1mPjM/KGY9ZiszJi00LGkuc2V0KHIuc3ViYXJyYXkoMCxmKSxhKSxuLmxlbmd0aD1mLG4pOihpLnNldChyLGEpLG4ubGVuZ3RoPXIubGVuZ3RoLG4pfWZ1bmN0aW9uIGcoQSl7Y29uc3QgdD0oZS5zdGFydHx8MCkrQS5vZmZzZXQ7ZS5wb3M9dDtjb25zdCBpPVtbXSxbXV0sYT1bXSxzPUEubGVuZ3RoLG49dCtzO2lmKDAhPT1lLmdldFVpbnQxNigpfHxzPDYpcmV0dXJuW2ksYV07Y29uc3Qgcj1lLmdldFVpbnQxNigpLGc9ZS5nZXRVaW50MTYoKTtsZXQgbyxJO2ZvcihvPTA7bzxyJiZlLnBvcysxMjw9bjtvKyspe2NvbnN0IEE9e3BsYXRmb3JtOmUuZ2V0VWludDE2KCksZW5jb2Rpbmc6ZS5nZXRVaW50MTYoKSxsYW5ndWFnZTplLmdldFVpbnQxNigpLG5hbWU6ZS5nZXRVaW50MTYoKSxsZW5ndGg6ZS5nZXRVaW50MTYoKSxvZmZzZXQ6ZS5nZXRVaW50MTYoKX07KHFzKEEpfHxUcyhBKSkmJmEucHVzaChBKX1mb3Iobz0wLEk9YS5sZW5ndGg7bzxJO28rKyl7Y29uc3QgQT1hW29dO2lmKEEubGVuZ3RoPD0wKWNvbnRpbnVlO2NvbnN0IHM9dCtnK0Eub2Zmc2V0O2lmKHMrQS5sZW5ndGg+biljb250aW51ZTtlLnBvcz1zO2NvbnN0IHI9QS5uYW1lO2lmKEEuZW5jb2Rpbmcpe2xldCB0PSIiO2ZvcihsZXQgaT0wLGE9QS5sZW5ndGg7aTxhO2krPTIpdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlLmdldFVpbnQxNigpKTtpWzFdW3JdPXR9ZWxzZSBpWzBdW3JdPWUuZ2V0U3RyaW5nKEEubGVuZ3RoKX1yZXR1cm5baSxhXX1jb25zdCBvPVswLDAsMCwwLDAsMCwwLDAsLTIsLTIsLTIsLTIsMCwwLC0yLC01LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLC0xLC0xLDEsLTEsLTk5OSwwLDEsMCwtMSwtMiwwLC0xLC0yLC0xLC0xLDAsLTEsLTEsMCwwLC05OTksLTk5OSwtMSwtMSwtMSwtMSwtMiwtOTk5LC0yLC0yLC05OTksMCwtMiwtMiwwLDAsLTIsMCwtMiwwLDAsMCwtMiwtMSwtMSwxLDEsMCwwLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLDAsLTk5OSwtMSwtMSwtMSwtMSwtMSwtMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwtMiwtOTk5LC05OTksLTk5OSwtOTk5LC05OTksLTEsLTEsLTIsLTIsMCwwLDAsMCwtMSwtMSwtOTk5LC0yLC0yLDAsMCwtMSwtMiwtMiwwLDAsMCwtMSwtMSwtMSwtMl07ZnVuY3Rpb24gSShBLGUpe2xldCB0LGksYSxzLG4scj1BLmRhdGEsZz0wLEk9MCxjPTA7Y29uc3QgaD1bXSxDPVtdLEI9W107bGV0IGw9ZS50b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnMsUT0hMSxFPTAsdT0wO2ZvcihsZXQgQT1yLmxlbmd0aDtnPEE7KXtjb25zdCBBPXJbZysrXTtpZig2ND09PUEpaWYoaT1yW2crK10sUXx8dSlnKz1pO2Vsc2UgZm9yKHQ9MDt0PGk7dCsrKWgucHVzaChyW2crK10pO2Vsc2UgaWYoNjU9PT1BKWlmKGk9cltnKytdLFF8fHUpZys9MippO2Vsc2UgZm9yKHQ9MDt0PGk7dCsrKWE9cltnKytdLGgucHVzaChhPDw4fHJbZysrXSk7ZWxzZSBpZigxNzY9PSgyNDgmQSkpaWYoaT1BLTE3NisxLFF8fHUpZys9aTtlbHNlIGZvcih0PTA7dDxpO3QrKyloLnB1c2gocltnKytdKTtlbHNlIGlmKDE4ND09KDI0OCZBKSlpZihpPUEtMTg0KzEsUXx8dSlnKz0yKmk7ZWxzZSBmb3IodD0wO3Q8aTt0KyspYT1yW2crK10saC5wdXNoKExzKGEscltnKytdKSk7ZWxzZSBpZig0MyE9PUF8fGwpaWYoNDQhPT1BfHxsKXtpZig0NT09PUEpaWYoUSlRPSExLEk9ZztlbHNle2lmKG49Qy5wb3AoKSwhbilyZXR1cm4gVSgiVFQ6IEVOREYgYmFkIHN0YWNrIiksdm9pZChlLmhpbnRzVmFsaWQ9ITEpO3M9Qi5wb3AoKSxyPW4uZGF0YSxnPW4uaSxlLmZ1bmN0aW9uc1N0YWNrRGVsdGFzW3NdPWgubGVuZ3RoLW4uc3RhY2tUb3B9ZWxzZSBpZigxMzc9PT1BKShRfHx1KSYmKFUoIlRUOiBuZXN0ZWQgSURFRnMgbm90IGFsbG93ZWQiKSxsPSEwKSxRPSEwLGM9ZztlbHNlIGlmKDg4PT09QSkrK0U7ZWxzZSBpZigyNz09PUEpdT1FO2Vsc2UgaWYoODk9PT1BKXU9PT1FJiYodT0wKSwtLUU7ZWxzZSBpZigyOD09PUEmJiFRJiYhdSl7Y29uc3QgQT1oLmF0KC0xKTtBPjAmJihnKz1BLTEpfX1lbHNlKFF8fHUpJiYoVSgiVFQ6IG5lc3RlZCBGREVGcyBub3QgYWxsb3dlZCIpLGw9ITApLFE9ITAsYz1nLHM9aC5wb3AoKSxlLmZ1bmN0aW9uc0RlZmluZWRbc109e2RhdGE6cixpOmd9O2Vsc2UgaWYoIVEmJiF1KWlmKHM9aC5hdCgtMSksaXNOYU4ocykpeCgiVFQ6IENBTEwgZW1wdHkgc3RhY2sgKG9yIGludmFsaWQgZW50cnkpLiIpO2Vsc2UgaWYoZS5mdW5jdGlvbnNVc2VkW3NdPSEwLHMgaW4gZS5mdW5jdGlvbnNTdGFja0RlbHRhcyl7Y29uc3QgQT1oLmxlbmd0aCtlLmZ1bmN0aW9uc1N0YWNrRGVsdGFzW3NdO2lmKEE8MClyZXR1cm4gVSgiVFQ6IENBTEwgaW52YWxpZCBmdW5jdGlvbnMgc3RhY2sgZGVsdGEuIiksdm9pZChlLmhpbnRzVmFsaWQ9ITEpO2gubGVuZ3RoPUF9ZWxzZSBpZihzIGluIGUuZnVuY3Rpb25zRGVmaW5lZCYmIUIuaW5jbHVkZXMocykpe2lmKEMucHVzaCh7ZGF0YTpyLGk6ZyxzdGFja1RvcDpoLmxlbmd0aC0xfSksQi5wdXNoKHMpLG49ZS5mdW5jdGlvbnNEZWZpbmVkW3NdLCFuKXJldHVybiBVKCJUVDogQ0FMTCBub24tZXhpc3RlbnQgZnVuY3Rpb24iKSx2b2lkKGUuaGludHNWYWxpZD0hMSk7cj1uLmRhdGEsZz1uLml9aWYoIVEmJiF1KXtsZXQgZT0wO2ZvcihBPD0xNDI/ZT1vW0FdOkE+PTE5MiYmQTw9MjIzP2U9LTE6QT49MjI0JiYoZT0tMiksQT49MTEzJiZBPD0xMTcmJihpPWgucG9wKCksaXNOYU4oaSl8fChlPTIqLWkpKTtlPDAmJmgubGVuZ3RoPjA7KWgucG9wKCksZSsrO2Zvcig7ZT4wOyloLnB1c2goTmFOKSxlLS19fWUudG9vQ29tcGxleFRvRm9sbG93RnVuY3Rpb25zPWw7Y29uc3QgZD1bcl07Zz5yLmxlbmd0aCYmZC5wdXNoKG5ldyBVaW50OEFycmF5KGctci5sZW5ndGgpKSxjPkkmJihVKCJUVDogY29tcGxlbWVudGluZyBhIG1pc3NpbmcgZnVuY3Rpb24gdGFpbCIpLGQucHVzaChuZXcgVWludDhBcnJheShbMzQsNDVdKSkpLGZ1bmN0aW9uKEEsZSl7aWYoZS5sZW5ndGg+MSl7bGV0IHQsaSxhPTA7Zm9yKHQ9MCxpPWUubGVuZ3RoO3Q8aTt0KyspYSs9ZVt0XS5sZW5ndGg7YT1hKzMmLTQ7Y29uc3Qgcz1uZXcgVWludDhBcnJheShhKTtsZXQgbj0wO2Zvcih0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXMuc2V0KGVbdF0sbiksbis9ZVt0XS5sZW5ndGg7QS5kYXRhPXMsQS5sZW5ndGg9YX19KEEsZCl9bGV0IGMsaCxDLEI7aWYoWXMoZT1uZXcgZ2UobmV3IFVpbnQ4QXJyYXkoZS5nZXRCeXRlcygpKSkpKXtjb25zdCBBPWZ1bmN0aW9uKEEsZSl7Y29uc3R7bnVtRm9udHM6dCxvZmZzZXRUYWJsZTppfT1mdW5jdGlvbihBKXtjb25zdCBlPUEuZ2V0U3RyaW5nKDQpO0woInR0Y2YiPT09ZSwiTXVzdCBiZSBhIFRydWVUeXBlIENvbGxlY3Rpb24gZm9udC4iKTtjb25zdCB0PUEuZ2V0VWludDE2KCksaT1BLmdldFVpbnQxNigpLGE9QS5nZXRJbnQzMigpPj4+MCxzPVtdO2ZvcihsZXQgZT0wO2U8YTtlKyspcy5wdXNoKEEuZ2V0SW50MzIoKT4+PjApO2NvbnN0IG49e3R0Y1RhZzplLG1ham9yVmVyc2lvbjp0LG1pbm9yVmVyc2lvbjppLG51bUZvbnRzOmEsb2Zmc2V0VGFibGU6c307c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gbjtjYXNlIDI6cmV0dXJuIG4uZHNpZ1RhZz1BLmdldEludDMyKCk+Pj4wLG4uZHNpZ0xlbmd0aD1BLmdldEludDMyKCk+Pj4wLG4uZHNpZ09mZnNldD1BLmdldEludDMyKCk+Pj4wLG59dGhyb3cgbmV3IFcoYEludmFsaWQgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBtYWpvclZlcnNpb246ICR7dH0uYCl9KEEpLHM9ZS5zcGxpdCgiKyIpO2xldCByO2ZvcihsZXQgbz0wO288dDtvKyspe0EucG9zPShBLnN0YXJ0fHwwKStpW29dO2NvbnN0IHQ9bihBKSxJPWEoQSx0Lm51bVRhYmxlcyk7aWYoIUkubmFtZSl0aHJvdyBuZXcgVygnVHJ1ZVR5cGUgQ29sbGVjdGlvbiBmb250IG11c3QgY29udGFpbiBhICJuYW1lIiB0YWJsZS4nKTtjb25zdFtjXT1nKEkubmFtZSk7Zm9yKGxldCBBPTAsaT1jLmxlbmd0aDtBPGk7QSsrKWZvcihsZXQgaT0wLGE9Y1tBXS5sZW5ndGg7aTxhO2krKyl7Y29uc3QgYT1jW0FdW2ldPy5yZXBsYWNlQWxsKC9ccy9nLCIiKTtpZihhKXtpZihhPT09ZSlyZXR1cm57aGVhZGVyOnQsdGFibGVzOkl9O2lmKCEocy5sZW5ndGg8MikpZm9yKGNvbnN0IEEgb2YgcylhPT09QSYmKHI9e25hbWU6QSxoZWFkZXI6dCx0YWJsZXM6SX0pfX19aWYocilyZXR1cm4gVShgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBkb2VzIG5vdCBjb250YWluICIke2V9IiBmb250LCBmYWxsaW5nIGJhY2sgdG8gIiR7ci5uYW1lfSIgZm9udCBpbnN0ZWFkLmApLHtoZWFkZXI6ci5oZWFkZXIsdGFibGVzOnIudGFibGVzfTt0aHJvdyBuZXcgVyhgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBkb2VzIG5vdCBjb250YWluICIke2V9IiBmb250LmApfShlLHRoaXMubmFtZSk7Yz1BLmhlYWRlcixoPUEudGFibGVzfWVsc2UgYz1uKGUpLGg9YShlLGMubnVtVGFibGVzKTtjb25zdCBsPSFoWyJDRkYgIl07aWYobCl7aWYoIWgubG9jYSl0aHJvdyBuZXcgVygnUmVxdWlyZWQgImxvY2EiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2guZ2x5Znx8KFUoJ1JlcXVpcmVkICJnbHlmIiB0YWJsZSBpcyBub3QgZm91bmQgLS0gdHJ5aW5nIHRvIHJlY292ZXIuJyksaC5nbHlmPXt0YWc6ImdseWYiLGRhdGE6bmV3IFVpbnQ4QXJyYXkoMCl9KSx0aGlzLmlzT3BlblR5cGU9ITF9ZWxzZXtjb25zdCBlPXQuY29tcG9zaXRlJiYodC5jaWRUb0dpZE1hcD8ubGVuZ3RoPjB8fCEodC5jTWFwIGluc3RhbmNlb2YgUWkpKTtpZigiT1RUTyI9PT1jLnZlcnNpb24mJiFlfHwhaC5oZWFkfHwhaC5oaGVhfHwhaC5tYXhwfHwhaC5wb3N0KXJldHVybiBCPW5ldyBnZShoWyJDRkYgIl0uZGF0YSksQz1uZXcgeGEoQix0KSxHcyh0KSx0aGlzLmNvbnZlcnQoQSxDLHQpO2RlbGV0ZSBoLmdseWYsZGVsZXRlIGgubG9jYSxkZWxldGUgaC5mcGdtLGRlbGV0ZSBoLnByZXAsZGVsZXRlIGhbImN2dCAiXSx0aGlzLmlzT3BlblR5cGU9ITB9aWYoIWgubWF4cCl0aHJvdyBuZXcgVygnUmVxdWlyZWQgIm1heHAiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2UucG9zPShlLnN0YXJ0fHwwKStoLm1heHAub2Zmc2V0O2xldCBRPWUuZ2V0SW50MzIoKTtjb25zdCBFPWUuZ2V0VWludDE2KCk7aWYoNjU1MzYhPT1RJiYyMDQ4MCE9PVEpe2lmKDY9PT1oLm1heHAubGVuZ3RoKVE9MjA0ODA7ZWxzZXtpZighKGgubWF4cC5sZW5ndGg+PTMyKSl0aHJvdyBuZXcgVygnIm1heHAiIHRhYmxlIGhhcyBhIHdyb25nIHZlcnNpb24gbnVtYmVyJyk7UT02NTUzNn1kPVEsKHU9aC5tYXhwLmRhdGEpWzMrMF09MjU1JmQsdVsyXT1kPj4+OCx1WzFdPWQ+Pj4xNix1WzBdPWQ+Pj4yNH12YXIgdSxkO2lmKHQuc2NhbGVGYWN0b3JzPy5sZW5ndGg9PT1FJiZsKXtjb25zdHtzY2FsZUZhY3RvcnM6QX09dCxlPVVzKGguaGVhZC5kYXRhWzUwXSxoLmhlYWQuZGF0YVs1MV0pLGk9bmV3ICRhKHtnbHlmVGFibGU6aC5nbHlmLmRhdGEsaXNHbHlwaExvY2F0aW9uc0xvbmc6ZSxsb2NhVGFibGU6aC5sb2NhLmRhdGEsbnVtR2x5cGhzOkV9KTtpLnNjYWxlKEEpO2NvbnN0e2dseWY6YSxsb2NhOnMsaXNMb2NhdGlvbkxvbmc6bn09aS53cml0ZSgpO2guZ2x5Zi5kYXRhPWEsaC5sb2NhLmRhdGE9cyxuIT09ISFlJiYoaC5oZWFkLmRhdGFbNTBdPTAsaC5oZWFkLmRhdGFbNTFdPW4/MTowKTtjb25zdCByPWguaG10eC5kYXRhO2ZvcihsZXQgZT0wO2U8RTtlKyspe2NvbnN0IHQ9NCplLGk9TWF0aC5yb3VuZChBW2VdKlVzKHJbdF0sclt0KzFdKSk7clt0XT1pPj44JjI1NSxyW3QrMV09MjU1JmksTXMocix0KzIsTWF0aC5yb3VuZChBW2VdKkxzKHJbdCsyXSxyW3QrM10pKSl9fWxldCBmPUUrMSxwPSEwO2Y+NjU1MzUmJihwPSExLGY9RSxVKCJOb3QgZW5vdWdoIHNwYWNlIGluIGdseWZzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKSk7bGV0IG09MCx5PTA7UT49NjU1MzYmJmgubWF4cC5sZW5ndGg+PTMyJiYoZS5wb3MrPTgsZS5nZXRVaW50MTYoKT4yJiYoaC5tYXhwLmRhdGFbMTRdPTAsaC5tYXhwLmRhdGFbMTVdPTIpLGUucG9zKz00LG09ZS5nZXRVaW50MTYoKSxlLnBvcys9NCx5PWUuZ2V0VWludDE2KCkpLGgubWF4cC5kYXRhWzRdPWY+PjgsaC5tYXhwLmRhdGFbNV09MjU1JmY7Y29uc3Qgdz1mdW5jdGlvbihBLGUsdCxpKXtjb25zdCBhPXtmdW5jdGlvbnNEZWZpbmVkOltdLGZ1bmN0aW9uc1VzZWQ6W10sZnVuY3Rpb25zU3RhY2tEZWx0YXM6W10sdG9vQ29tcGxleFRvRm9sbG93RnVuY3Rpb25zOiExLGhpbnRzVmFsaWQ6ITB9O2lmKEEmJkkoQSxhKSxlJiZJKGUsYSksQSYmZnVuY3Rpb24oQSxlKXtpZighQS50b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnMpe2lmKEEuZnVuY3Rpb25zRGVmaW5lZC5sZW5ndGg+ZSlyZXR1cm4gVSgiVFQ6IG1vcmUgZnVuY3Rpb25zIGRlZmluZWQgdGhhbiBleHBlY3RlZCIpLHZvaWQoQS5oaW50c1ZhbGlkPSExKTtmb3IobGV0IHQ9MCxpPUEuZnVuY3Rpb25zVXNlZC5sZW5ndGg7dDxpO3QrKyl7aWYodD5lKXJldHVybiBVKCJUVDogaW52YWxpZCBmdW5jdGlvbiBpZDogIit0KSx2b2lkKEEuaGludHNWYWxpZD0hMSk7aWYoQS5mdW5jdGlvbnNVc2VkW3RdJiYhQS5mdW5jdGlvbnNEZWZpbmVkW3RdKXJldHVybiBVKCJUVDogdW5kZWZpbmVkIGZ1bmN0aW9uOiAiK3QpLHZvaWQoQS5oaW50c1ZhbGlkPSExKX19fShhLGkpLHQmJjEmdC5sZW5ndGgpe2NvbnN0IEE9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgrMSk7QS5zZXQodC5kYXRhKSx0LmRhdGE9QX1yZXR1cm4gYS5oaW50c1ZhbGlkfShoLmZwZ20saC5wcmVwLGhbImN2dCAiXSxtKTtpZih3fHwoZGVsZXRlIGguZnBnbSxkZWxldGUgaC5wcmVwLGRlbGV0ZSBoWyJjdnQgIl0pLGZ1bmN0aW9uKEEsZSx0LGksYSxzKXtpZighZSlyZXR1cm4gdm9pZCh0JiYodC5kYXRhPW51bGwpKTtBLnBvcz0oQS5zdGFydHx8MCkrZS5vZmZzZXQsQS5wb3MrPTQsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTI7Y29uc3Qgbj1BLmdldFVpbnQxNigpO0EucG9zKz04LEEucG9zKz0yO2xldCByPUEuZ2V0VWludDE2KCk7MCE9PW4mJigyJlVzKGkuZGF0YVs0NF0saS5kYXRhWzQ1XSl8fChlLmRhdGFbMjJdPTAsZS5kYXRhWzIzXT0wKSkscj5hJiYoeChgVGhlIG51bU9mTWV0cmljcyAoJHtyfSkgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIG51bUdseXBocyAoJHthfSkuYCkscj1hLGUuZGF0YVszNF09KDY1MjgwJnIpPj44LGUuZGF0YVszNV09MjU1JnIpO2NvbnN0IGc9YS1yLSh0Lmxlbmd0aC00KnI+PjEpO2lmKGc+MCl7Y29uc3QgQT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCsyKmcpO0Euc2V0KHQuZGF0YSkscyYmKEFbdC5sZW5ndGhdPXQuZGF0YVsyXSxBW3QubGVuZ3RoKzFdPXQuZGF0YVszXSksdC5kYXRhPUF9fShlLGguaGhlYSxoLmhtdHgsaC5oZWFkLGYscCksIWguaGVhZCl0aHJvdyBuZXcgVygnUmVxdWlyZWQgImhlYWQiIHRhYmxlIGlzIG5vdCBmb3VuZCcpOyFmdW5jdGlvbihBLGUsdCl7Y29uc3QgaT1BLmRhdGEsYT0oaVswXTw8MjQpKyhpWzFdPDwxNikrKGlbMl08PDgpK2lbM107YT4+MTYhPTEmJih4KCJBdHRlbXB0aW5nIHRvIGZpeCBpbnZhbGlkIHZlcnNpb24gaW4gaGVhZCB0YWJsZTogIithKSxpWzBdPTAsaVsxXT0xLGlbMl09MCxpWzNdPTApO2NvbnN0IHM9VXMoaVs1MF0saVs1MV0pO2lmKHM8MHx8cz4xKXt4KCJBdHRlbXB0aW5nIHRvIGZpeCBpbnZhbGlkIGluZGV4VG9Mb2NGb3JtYXQgaW4gaGVhZCB0YWJsZTogIitzKTtjb25zdCBBPWUrMTtpZih0PT09QTw8MSlpWzUwXT0wLGlbNTFdPTA7ZWxzZXtpZih0IT09QTw8Mil0aHJvdyBuZXcgVygiQ291bGQgbm90IGZpeCBpbmRleFRvTG9jRm9ybWF0OiAiK3MpO2lbNTBdPTAsaVs1MV09MX19fShoLmhlYWQsRSxsP2gubG9jYS5sZW5ndGg6MCk7bGV0IEQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihsKXtjb25zdCBBPVVzKGguaGVhZC5kYXRhWzUwXSxoLmhlYWQuZGF0YVs1MV0pLGU9ZnVuY3Rpb24oQSxlLHQsaSxhLHMsbil7bGV0IGcsbyxJO2k/KGc9NCxvPWZ1bmN0aW9uKEEsZSl7cmV0dXJuIEFbZV08PDI0fEFbZSsxXTw8MTZ8QVtlKzJdPDw4fEFbZSszXX0sST1mdW5jdGlvbihBLGUsdCl7QVtlXT10Pj4+MjQmMjU1LEFbZSsxXT10Pj4xNiYyNTUsQVtlKzJdPXQ+PjgmMjU1LEFbZSszXT0yNTUmdH0pOihnPTIsbz1mdW5jdGlvbihBLGUpe3JldHVybiBBW2VdPDw5fEFbZSsxXTw8MX0sST1mdW5jdGlvbihBLGUsdCl7QVtlXT10Pj45JjI1NSxBW2UrMV09dD4+MSYyNTV9KTtjb25zdCBjPXM/dCsxOnQsaD1nKigxK2MpLEM9bmV3IFVpbnQ4QXJyYXkoaCk7Qy5zZXQoQS5kYXRhLnN1YmFycmF5KDAsaCkpLEEuZGF0YT1DO2NvbnN0IEI9ZS5kYXRhLGw9Qi5sZW5ndGgsUT1uZXcgVWludDhBcnJheShsKTtsZXQgRSx1O2NvbnN0IGQ9W107Zm9yKEU9MCx1PTA7RTx0KzE7RSsrLHUrPWcpe2xldCBBPW8oQyx1KTtBPmwmJihBPWwpLGQucHVzaCh7aW5kZXg6RSxvZmZzZXQ6QSxlbmRPZmZzZXQ6MH0pfWZvcihkLnNvcnQoKChBLGUpPT5BLm9mZnNldC1lLm9mZnNldCkpLEU9MDtFPHQ7RSsrKWRbRV0uZW5kT2Zmc2V0PWRbRSsxXS5vZmZzZXQ7Zm9yKGQuc29ydCgoKEEsZSk9PkEuaW5kZXgtZS5pbmRleCkpLEU9MDtFPHQ7RSsrKXtjb25zdHtvZmZzZXQ6QSxlbmRPZmZzZXQ6ZX09ZFtFXTtpZigwIT09QXx8MCE9PWUpYnJlYWs7Y29uc3QgdD1kW0UrMV0ub2Zmc2V0O2lmKDAhPT10KXtkW0VdLmVuZE9mZnNldD10O2JyZWFrfX1jb25zdCBmPWQuYXQoLTIpOzAhPT1mLm9mZnNldCYmMD09PWYuZW5kT2Zmc2V0JiYoZi5lbmRPZmZzZXQ9bCk7Y29uc3QgcD1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBtPTA7Zm9yKEkoQywwLG0pLEU9MCx1PWc7RTx0O0UrKyx1Kz1nKXtjb25zdCBBPXIoQixkW0VdLm9mZnNldCxkW0VdLmVuZE9mZnNldCxRLG0sYSksZT1BLmxlbmd0aDswPT09ZSYmKHBbRV09ITApLEEuc2l6ZU9mSW5zdHJ1Y3Rpb25zPm4mJihuPUEuc2l6ZU9mSW5zdHJ1Y3Rpb25zKSxtKz1lLEkoQyx1LG0pfWlmKDA9PT1tKXtjb25zdCBBPW5ldyBVaW50OEFycmF5KFswLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDksMF0pO2ZvcihFPTAsdT1nO0U8YztFKyssdSs9ZylJKEMsdSxBLmxlbmd0aCk7ZS5kYXRhPUF9ZWxzZSBpZihzKXtjb25zdCB0PW8oQyxnKTtRLmxlbmd0aD50K20/ZS5kYXRhPVEuc3ViYXJyYXkoMCx0K20pOihlLmRhdGE9bmV3IFVpbnQ4QXJyYXkodCttKSxlLmRhdGEuc2V0KFEuc3ViYXJyYXkoMCxtKSkpLGUuZGF0YS5zZXQoUS5zdWJhcnJheSgwLHQpLG0pLEkoQS5kYXRhLEMubGVuZ3RoLWcsbSt0KX1lbHNlIGUuZGF0YT1RLnN1YmFycmF5KDAsbSk7cmV0dXJue21pc3NpbmdHbHlwaHM6cCxtYXhTaXplT2ZJbnN0cnVjdGlvbnM6bn19KGgubG9jYSxoLmdseWYsRSxBLHcscCx5KTtEPWUubWlzc2luZ0dseXBocyxRPj02NTUzNiYmaC5tYXhwLmxlbmd0aD49MzImJihoLm1heHAuZGF0YVsyNl09ZS5tYXhTaXplT2ZJbnN0cnVjdGlvbnM+PjgsaC5tYXhwLmRhdGFbMjddPTI1NSZlLm1heFNpemVPZkluc3RydWN0aW9ucyl9aWYoIWguaGhlYSl0aHJvdyBuZXcgVygnUmVxdWlyZWQgImhoZWEiIHRhYmxlIGlzIG5vdCBmb3VuZCcpOzA9PT1oLmhoZWEuZGF0YVsxMF0mJjA9PT1oLmhoZWEuZGF0YVsxMV0mJihoLmhoZWEuZGF0YVsxMF09MjU1LGguaGhlYS5kYXRhWzExXT0yNTUpO2NvbnN0IGI9e3VuaXRzUGVyRW06VXMoaC5oZWFkLmRhdGFbMThdLGguaGVhZC5kYXRhWzE5XSkseU1heDpMcyhoLmhlYWQuZGF0YVs0Ml0saC5oZWFkLmRhdGFbNDNdKSx5TWluOkxzKGguaGVhZC5kYXRhWzM4XSxoLmhlYWQuZGF0YVszOV0pLGFzY2VudDpMcyhoLmhoZWEuZGF0YVs0XSxoLmhoZWEuZGF0YVs1XSksZGVzY2VudDpMcyhoLmhoZWEuZGF0YVs2XSxoLmhoZWEuZGF0YVs3XSksbGluZUdhcDpMcyhoLmhoZWEuZGF0YVs4XSxoLmhoZWEuZGF0YVs5XSl9O3RoaXMuYXNjZW50PWIuYXNjZW50L2IudW5pdHNQZXJFbSx0aGlzLmRlc2NlbnQ9Yi5kZXNjZW50L2IudW5pdHNQZXJFbSx0aGlzLmxpbmVHYXA9Yi5saW5lR2FwL2IudW5pdHNQZXJFbSx0aGlzLmNzc0ZvbnRJbmZvPy5saW5lSGVpZ2h0Pyh0aGlzLmxpbmVIZWlnaHQ9dGhpcy5jc3NGb250SW5mby5tZXRyaWNzLmxpbmVIZWlnaHQsdGhpcy5saW5lR2FwPXRoaXMuY3NzRm9udEluZm8ubWV0cmljcy5saW5lR2FwKTp0aGlzLmxpbmVIZWlnaHQ9dGhpcy5hc2NlbnQtdGhpcy5kZXNjZW50K3RoaXMubGluZUdhcCxoLnBvc3QmJmZ1bmN0aW9uKEEsdCxpKXtjb25zdCBhPShlLnN0YXJ0fHwwKStBLm9mZnNldDtlLnBvcz1hO2NvbnN0IHM9YStBLmxlbmd0aCxuPWUuZ2V0SW50MzIoKTtsZXQgcjtlLnNraXAoMjgpO2xldCBnLG89ITA7c3dpdGNoKG4pe2Nhc2UgNjU1MzY6cj1RYTticmVhaztjYXNlIDEzMTA3Mjpjb25zdCBBPWUuZ2V0VWludDE2KCk7aWYoQSE9PWkpe289ITE7YnJlYWt9Y29uc3QgYT1bXTtmb3IoZz0wO2c8QTsrK2cpe2NvbnN0IEE9ZS5nZXRVaW50MTYoKTtpZihBPj0zMjc2OCl7bz0hMTticmVha31hLnB1c2goQSl9aWYoIW8pYnJlYWs7Y29uc3QgST1bXSxjPVtdO2Zvcig7ZS5wb3M8czspe2NvbnN0IEE9ZS5nZXRCeXRlKCk7Zm9yKGMubGVuZ3RoPUEsZz0wO2c8QTsrK2cpY1tnXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUuZ2V0Qnl0ZSgpKTtJLnB1c2goYy5qb2luKCIiKSl9Zm9yKHI9W10sZz0wO2c8QTsrK2cpe2NvbnN0IEE9YVtnXTtBPDI1OD9yLnB1c2goUWFbQV0pOnIucHVzaChJW0EtMjU4XSl9YnJlYWs7Y2FzZSAxOTY2MDg6YnJlYWs7ZGVmYXVsdDpVKCJVbmtub3duL3Vuc3VwcG9ydGVkIHBvc3QgdGFibGUgdmVyc2lvbiAiK24pLG89ITEsdC5kZWZhdWx0RW5jb2RpbmcmJihyPXQuZGVmYXVsdEVuY29kaW5nKX10LmdseXBoTmFtZXM9cn0oaC5wb3N0LHQsRSksaC5wb3N0PXt0YWc6InBvc3QiLGRhdGE6anModCl9O2NvbnN0IGs9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBGKEEpe3JldHVybiFEW0FdfWlmKHQuY29tcG9zaXRlKXtjb25zdCBBPXQuY2lkVG9HaWRNYXB8fFtdLGU9MD09PUEubGVuZ3RoO3QuY01hcC5mb3JFYWNoKChmdW5jdGlvbih0LGkpe2lmKCJzdHJpbmciPT10eXBlb2YgaSYmKGk9UHModCxpLCEwKSksaT42NTUzNSl0aHJvdyBuZXcgVygiTWF4IHNpemUgb2YgQ0lEIGlzIDY1LDUzNSIpO2xldCBhPS0xO2U/YT1pOnZvaWQgMCE9PUFbaV0mJihhPUFbaV0pLGE+PTAmJmE8RSYmRihhKSYmKGtbdF09YSl9KSl9ZWxzZXtjb25zdCBBPWZ1bmN0aW9uKEEsZSx0LGkpe2lmKCFBKXJldHVybiBVKCJObyBjbWFwIHRhYmxlIGF2YWlsYWJsZS4iKSx7cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX07bGV0IGEscz0oZS5zdGFydHx8MCkrQS5vZmZzZXQ7ZS5wb3M9cyxlLnNraXAoMik7Y29uc3Qgbj1lLmdldFVpbnQxNigpO2xldCByLGc9ITE7Zm9yKGxldCBBPTA7QTxuO0ErKyl7Y29uc3QgYT1lLmdldFVpbnQxNigpLHM9ZS5nZXRVaW50MTYoKSxvPWUuZ2V0SW50MzIoKT4+PjA7bGV0IEk9ITE7aWYocj8ucGxhdGZvcm1JZCE9PWF8fHI/LmVuY29kaW5nSWQhPT1zKXtpZigwIT09YXx8MCE9PXMmJjEhPT1zJiYzIT09cylpZigxPT09YSYmMD09PXMpST0hMDtlbHNlIGlmKDMhPT1hfHwxIT09c3x8IWkmJnIpe2lmKHQmJjM9PT1hJiYwPT09cyl7ST0hMDtsZXQgdD0hMDtpZihBPG4tMSl7Y29uc3QgQT1lLnBlZWtCeXRlcygyKTtVcyhBWzBdLEFbMV0pPGEmJih0PSExKX10JiYoZz0hMCl9fWVsc2UgST0hMCx0fHwoZz0hMCk7ZWxzZSBJPSEwO2lmKEkmJihyPXtwbGF0Zm9ybUlkOmEsZW5jb2RpbmdJZDpzLG9mZnNldDpvfSksZylicmVha319aWYociYmKGUucG9zPXMrci5vZmZzZXQpLCFyfHwtMT09PWUucGVla0J5dGUoKSlyZXR1cm4gVSgiQ291bGQgbm90IGZpbmQgYSBwcmVmZXJyZWQgY21hcCB0YWJsZS4iKSx7cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX07Y29uc3Qgbz1lLmdldFVpbnQxNigpO2xldCBJPSExO2NvbnN0IGM9W107bGV0IGgsQztpZigwPT09byl7Zm9yKGUuc2tpcCg0KSxoPTA7aDwyNTY7aCsrKXtjb25zdCBBPWUuZ2V0Qnl0ZSgpO0EmJmMucHVzaCh7Y2hhckNvZGU6aCxnbHlwaElkOkF9KX1JPSEwfWVsc2UgaWYoMj09PW8pe2Uuc2tpcCg0KTtjb25zdCBBPVtdO2xldCB0PTA7Zm9yKGxldCBpPTA7aTwyNTY7aSsrKXtjb25zdCBpPWUuZ2V0VWludDE2KCk+PjM7QS5wdXNoKGkpLHQ9TWF0aC5tYXgoaSx0KX1jb25zdCBpPVtdO2ZvcihsZXQgQT0wO0E8PXQ7QSsrKWkucHVzaCh7Zmlyc3RDb2RlOmUuZ2V0VWludDE2KCksZW50cnlDb3VudDplLmdldFVpbnQxNigpLGlkRGVsdGE6THMoZS5nZXRCeXRlKCksZS5nZXRCeXRlKCkpLGlkUmFuZ2VQb3M6ZS5wb3MrZS5nZXRVaW50MTYoKX0pO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKylpZigwPT09QVt0XSllLnBvcz1pWzBdLmlkUmFuZ2VQb3MrMip0LEM9ZS5nZXRVaW50MTYoKSxjLnB1c2goe2NoYXJDb2RlOnQsZ2x5cGhJZDpDfSk7ZWxzZXtjb25zdCBhPWlbQVt0XV07Zm9yKGg9MDtoPGEuZW50cnlDb3VudDtoKyspe2NvbnN0IEE9KHQ8PDgpK2grYS5maXJzdENvZGU7ZS5wb3M9YS5pZFJhbmdlUG9zKzIqaCxDPWUuZ2V0VWludDE2KCksMCE9PUMmJihDPShDK2EuaWREZWx0YSklNjU1MzYpLGMucHVzaCh7Y2hhckNvZGU6QSxnbHlwaElkOkN9KX19fWVsc2UgaWYoND09PW8pe2Uuc2tpcCg0KTtjb25zdCBBPWUuZ2V0VWludDE2KCk+PjE7ZS5za2lwKDYpO2NvbnN0IHQ9W107bGV0IGk7Zm9yKGk9MDtpPEE7aSsrKXQucHVzaCh7ZW5kOmUuZ2V0VWludDE2KCl9KTtmb3IoZS5za2lwKDIpLGk9MDtpPEE7aSsrKXRbaV0uc3RhcnQ9ZS5nZXRVaW50MTYoKTtmb3IoaT0wO2k8QTtpKyspdFtpXS5kZWx0YT1lLmdldFVpbnQxNigpO2xldCBuLHI9MDtmb3IoaT0wO2k8QTtpKyspe2E9dFtpXTtjb25zdCBzPWUuZ2V0VWludDE2KCk7cz8obj0ocz4+MSktKEEtaSksYS5vZmZzZXRJbmRleD1uLHI9TWF0aC5tYXgocixuK2EuZW5kLWEuc3RhcnQrMSkpOmEub2Zmc2V0SW5kZXg9LTF9Y29uc3QgZz1bXTtmb3IoaD0wO2g8cjtoKyspZy5wdXNoKGUuZ2V0VWludDE2KCkpO2ZvcihpPTA7aTxBO2krKyl7YT10W2ldLHM9YS5zdGFydDtjb25zdCBBPWEuZW5kLGU9YS5kZWx0YTtmb3Iobj1hLm9mZnNldEluZGV4LGg9cztoPD1BO2grKyk2NTUzNSE9PWgmJihDPW48MD9oOmdbbitoLXNdLEM9QytlJjY1NTM1LGMucHVzaCh7Y2hhckNvZGU6aCxnbHlwaElkOkN9KSl9fWVsc2UgaWYoNj09PW8pe2Uuc2tpcCg0KTtjb25zdCBBPWUuZ2V0VWludDE2KCksdD1lLmdldFVpbnQxNigpO2ZvcihoPTA7aDx0O2grKyl7Qz1lLmdldFVpbnQxNigpO2NvbnN0IHQ9QStoO2MucHVzaCh7Y2hhckNvZGU6dCxnbHlwaElkOkN9KX19ZWxzZXtpZigxMiE9PW8pcmV0dXJuIFUoImNtYXAgdGFibGUgaGFzIHVuc3VwcG9ydGVkIGZvcm1hdDogIitvKSx7cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX07e2Uuc2tpcCgxMCk7Y29uc3QgQT1lLmdldEludDMyKCk+Pj4wO2ZvcihoPTA7aDxBO2grKyl7Y29uc3QgQT1lLmdldEludDMyKCk+Pj4wLHQ9ZS5nZXRJbnQzMigpPj4+MDtsZXQgaT1lLmdldEludDMyKCk+Pj4wO2ZvcihsZXQgZT1BO2U8PXQ7ZSsrKWMucHVzaCh7Y2hhckNvZGU6ZSxnbHlwaElkOmkrK30pfX19Yy5zb3J0KChmdW5jdGlvbihBLGUpe3JldHVybiBBLmNoYXJDb2RlLWUuY2hhckNvZGV9KSk7Zm9yKGxldCBBPTE7QTxjLmxlbmd0aDtBKyspY1tBLTFdLmNoYXJDb2RlPT09Y1tBXS5jaGFyQ29kZSYmKGMuc3BsaWNlKEEsMSksQS0tKTtyZXR1cm57cGxhdGZvcm1JZDpyLnBsYXRmb3JtSWQsZW5jb2RpbmdJZDpyLmVuY29kaW5nSWQsbWFwcGluZ3M6YyxoYXNTaG9ydENtYXA6SX19KGguY21hcCxlLHRoaXMuaXNTeW1ib2xpY0ZvbnQsdC5oYXNFbmNvZGluZyksaT1BLnBsYXRmb3JtSWQsYT1BLmVuY29kaW5nSWQscz1BLm1hcHBpbmdzO2xldCBuPVtdLHI9ITE7aWYoIXQuaGFzRW5jb2Rpbmd8fCJNYWNSb21hbkVuY29kaW5nIiE9PXQuYmFzZUVuY29kaW5nTmFtZSYmIldpbkFuc2lFbmNvZGluZyIhPT10LmJhc2VFbmNvZGluZ05hbWV8fChuPUtpKHQuYmFzZUVuY29kaW5nTmFtZSkpLHQuaGFzRW5jb2RpbmcmJiF0aGlzLmlzU3ltYm9saWNGb250JiYoMz09PWkmJjE9PT1hfHwxPT09aSYmMD09PWEpKXtjb25zdCBBPXJhKCk7Zm9yKGxldCBlPTA7ZTwyNTY7ZSsrKXtsZXQgcjtpZihyPXZvaWQgMCE9PXRoaXMuZGlmZmVyZW5jZXNbZV0/dGhpcy5kaWZmZXJlbmNlc1tlXTpuLmxlbmd0aCYmIiIhPT1uW2VdP25bZV06SmlbZV0sIXIpY29udGludWU7Y29uc3QgZz1FYShyLEEpO2xldCBvO2lmKDM9PT1pJiYxPT09YT9vPUFbZ106MT09PWkmJjA9PT1hJiYobz1MaS5pbmRleE9mKGcpKSx2b2lkIDA9PT1vKXtpZighdC5nbHlwaE5hbWVzJiZ0Lmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwJiYhKHRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgTmEpKXtjb25zdCBBPXRoaXMudG9Vbmljb2RlLmdldChlKTtBJiYobz1BLmNvZGVQb2ludEF0KDApKX1pZih2b2lkIDA9PT1vKWNvbnRpbnVlfWZvcihjb25zdCBBIG9mIHMpaWYoQS5jaGFyQ29kZT09PW8pe2tbZV09QS5nbHlwaElkO2JyZWFrfX19ZWxzZSBpZigwPT09aSl7Zm9yKGNvbnN0IEEgb2YgcylrW0EuY2hhckNvZGVdPUEuZ2x5cGhJZDtyPSEwfWVsc2UgaWYoMz09PWkmJjA9PT1hKWZvcihjb25zdCBBIG9mIHMpe2xldCBlPUEuY2hhckNvZGU7ZT49NjE0NDAmJmU8PTYxNjk1JiYoZSY9MjU1KSxrW2VdPUEuZ2x5cGhJZH1lbHNlIGZvcihjb25zdCBBIG9mIHMpa1tBLmNoYXJDb2RlXT1BLmdseXBoSWQ7aWYodC5nbHlwaE5hbWVzJiYobi5sZW5ndGh8fHRoaXMuZGlmZmVyZW5jZXMubGVuZ3RoKSlmb3IobGV0IEE9MDtBPDI1NjsrK0Epe2lmKCFyJiZ2b2lkIDAhPT1rW0FdKWNvbnRpbnVlO2NvbnN0IGU9dGhpcy5kaWZmZXJlbmNlc1tBXXx8bltBXTtpZighZSljb250aW51ZTtjb25zdCBpPXQuZ2x5cGhOYW1lcy5pbmRleE9mKGUpO2k+MCYmRihpKSYmKGtbQV09aSl9fTA9PT1rLmxlbmd0aCYmKGtbMF09MCk7bGV0IFM9Zi0xO2lmKHB8fChTPTApLCF0LmNzc0ZvbnRJbmZvKXtjb25zdCBBPVdzKGssRixTLHRoaXMudG9Vbmljb2RlKTt0aGlzLnRvRm9udENoYXI9QS50b0ZvbnRDaGFyLGguY21hcD17dGFnOiJjbWFwIixkYXRhOk9zKEEuY2hhckNvZGVUb0dseXBoSWQsQS50b1VuaWNvZGVFeHRyYU1hcCxmKX0saFsiT1MvMiJdJiZmdW5jdGlvbihBLGUpe2UucG9zPShlLnN0YXJ0fHwwKStBLm9mZnNldDtjb25zdCB0PWUuZ2V0VWludDE2KCk7ZS5za2lwKDYwKTtjb25zdCBpPWUuZ2V0VWludDE2KCk7cmV0dXJuISh0PDQmJjc2OCZpfHxlLmdldFVpbnQxNigpPmUuZ2V0VWludDE2KCl8fChlLnNraXAoNiksMD09PWUuZ2V0VWludDE2KCl8fChBLmRhdGFbOF09QS5kYXRhWzldPTAsMCkpKX0oaFsiT1MvMiJdLGUpfHwoaFsiT1MvMiJdPXt0YWc6Ik9TLzIiLGRhdGE6WnModCxBLmNoYXJDb2RlVG9HbHlwaElkLGIpfSl9aWYoIWwpdHJ5e0I9bmV3IGdlKGhbIkNGRiAiXS5kYXRhKSxDPW5ldyBXaShCLHQsbGEpLnBhcnNlKCksQy5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgQT1uZXcgbmEoQyk7aFsiQ0ZGICJdLmRhdGE9QS5jb21waWxlKCl9Y2F0Y2h7VSgiRmFpbGVkIHRvIGNvbXBpbGUgZm9udCAiK3QubG9hZGVkTmFtZSl9aWYoaC5uYW1lKXtjb25zdFtlLGldPWcoaC5uYW1lKTtoLm5hbWUuZGF0YT1WcyhBLGUpLHRoaXMucHNOYW1lPWVbMF1bNl18fG51bGwsdC5jb21wb3NpdGV8fGZ1bmN0aW9uKEEsZSx0KXtpZihBLmlzSW50ZXJuYWxGb250KXJldHVybjtpZihBLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwKXJldHVybjtpZihBLmhhc0VuY29kaW5nKXJldHVybjtpZihBLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hKXJldHVybjtpZighZSlyZXR1cm47aWYoMD09PXQubGVuZ3RoKXJldHVybjtpZihBLmRlZmF1bHRFbmNvZGluZz09PUhpKXJldHVybjtmb3IoY29uc3QgQSBvZiB0KWlmKCFUcyhBKSlyZXR1cm47Y29uc3QgaT1IaSxhPVtdLHM9cmEoKTtmb3IoY29uc3QgQSBpbiBpKXtjb25zdCBlPWlbQV07aWYoIiI9PT1lKWNvbnRpbnVlO2NvbnN0IHQ9c1tlXTt2b2lkIDAhPT10JiYoYVtBXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKX1hLmxlbmd0aD4wJiZBLnRvVW5pY29kZS5hbWVuZChhKX0odCx0aGlzLmlzU3ltYm9saWNGb250LGkpfWVsc2UgaC5uYW1lPXt0YWc6Im5hbWUiLGRhdGE6VnModGhpcy5uYW1lKX07Y29uc3QgUj1uZXcgZ3MoYy52ZXJzaW9uKTtmb3IoY29uc3QgQSBpbiBoKVIuYWRkVGFibGUoQSxoW0FdLmRhdGEpO3JldHVybiBSLnRvQXJyYXkoKX1jb252ZXJ0KEEsZSx0KXt0LmZpeGVkUGl0Y2g9ITEsdC5idWlsdEluRW5jb2RpbmcmJmZ1bmN0aW9uKEEsZSl7aWYoQS5pc0ludGVybmFsRm9udClyZXR1cm47aWYoQS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm47aWYoZT09PUEuZGVmYXVsdEVuY29kaW5nKXJldHVybjtpZihBLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hKXJldHVybjtjb25zdCB0PVtdLGk9cmEoKTtmb3IoY29uc3QgYSBpbiBlKXtpZihBLmhhc0VuY29kaW5nJiYoQS5iYXNlRW5jb2RpbmdOYW1lfHx2b2lkIDAhPT1BLmRpZmZlcmVuY2VzW2FdKSljb250aW51ZTtjb25zdCBzPUlhKGVbYV0saSk7LTEhPT1zJiYodFthXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpKX10Lmxlbmd0aD4wJiZBLnRvVW5pY29kZS5hbWVuZCh0KX0odCx0LmJ1aWx0SW5FbmNvZGluZyk7bGV0IGk9MTtlIGluc3RhbmNlb2YgeGEmJihpPWUubnVtR2x5cGhzLTEpO2NvbnN0IGE9ZS5nZXRHbHlwaE1hcHBpbmcodCk7bGV0IHM9bnVsbCxyPWEsZz1udWxsO3QuY3NzRm9udEluZm98fChzPVdzKGEsZS5oYXNHbHlwaElkLmJpbmQoZSksaSx0aGlzLnRvVW5pY29kZSksdGhpcy50b0ZvbnRDaGFyPXMudG9Gb250Q2hhcixyPXMuY2hhckNvZGVUb0dseXBoSWQsZz1zLnRvVW5pY29kZUV4dHJhTWFwKTtjb25zdCBvPWUubnVtR2x5cGhzO2Z1bmN0aW9uIEkoQSxlKXtsZXQgdD1udWxsO2Zvcihjb25zdCBpIGluIEEpZT09PUFbaV0mJih0fHw9W10pLnB1c2goMHxpKTtyZXR1cm4gdH1mdW5jdGlvbiBjKEEsZSl7Zm9yKGNvbnN0IHQgaW4gQSlpZihlPT09QVt0XSlyZXR1cm4gMHx0O3JldHVybiBzLmNoYXJDb2RlVG9HbHlwaElkW3MubmV4dEF2YWlsYWJsZUZvbnRDaGFyQ29kZV09ZSxzLm5leHRBdmFpbGFibGVGb250Q2hhckNvZGUrK31jb25zdCBoPWUuc2VhY3M7aWYocyYmaD8ubGVuZ3RoKXtjb25zdCBBPXQuZm9udE1hdHJpeHx8bixpPWUuZ2V0Q2hhcnNldCgpLHI9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGUgaW4gaCl7ZXw9MDtjb25zdCB0PWhbZV0sbj1KaVt0WzJdXSxnPUppW3RbM11dLG89aS5pbmRleE9mKG4pLEM9aS5pbmRleE9mKGcpO2lmKG88MHx8QzwwKWNvbnRpbnVlO2NvbnN0IEI9e3g6dFswXSpBWzBdK3RbMV0qQVsyXStBWzRdLHk6dFswXSpBWzFdK3RbMV0qQVszXStBWzVdfSxsPUkoYSxlKTtpZihsKWZvcihjb25zdCBBIG9mIGwpe2NvbnN0IGU9cy5jaGFyQ29kZVRvR2x5cGhJZCx0PWMoZSxvKSxpPWMoZSxDKTtyW0FdPXtiYXNlRm9udENoYXJDb2RlOnQsYWNjZW50Rm9udENoYXJDb2RlOmksYWNjZW50T2Zmc2V0OkJ9fX10LnNlYWNNYXA9cn1jb25zdCBDPXQuZm9udE1hdHJpeD8xL01hdGgubWF4KC4uLnQuZm9udE1hdHJpeC5zbGljZSgwLDQpLm1hcChNYXRoLmFicykpOjFlMyxCPW5ldyBncygiT1RUTyIpO3JldHVybiBCLmFkZFRhYmxlKCJDRkYgIixlLmRhdGEpLEIuYWRkVGFibGUoIk9TLzIiLFpzKHQscikpLEIuYWRkVGFibGUoImNtYXAiLE9zKHIsZyxvKSksQi5hZGRUYWJsZSgiaGVhZCIsIlwwAVwwXDBcMFwwEFwwXDBcMFwwXDBfDzzDtVwwXDAiK0hzKEMpKyJcMFwwXDBcMMKeXHZ+J1wwXDBcMFwwwp5cdn4nXDBcMCIrSHModC5kZXNjZW50KSsiD8O/IitIcyh0LmFzY2VudCkrSnModC5pdGFsaWNBbmdsZT8yOjApKyJcMBFcMFwwXDBcMFwwXDAiKSxCLmFkZFRhYmxlKCJoaGVhIiwiXDABXDBcMCIrSHModC5hc2NlbnQpK0hzKHQuZGVzY2VudCkrIlwwXDDDv8O/XDBcMFwwXDBcMFwwIitIcyh0LmNhcEhlaWdodCkrSHMoTWF0aC50YW4odC5pdGFsaWNBbmdsZSkqdC54SGVpZ2h0KSsiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIitKcyhvKSksQi5hZGRUYWJsZSgiaG10eCIsZnVuY3Rpb24oKXtjb25zdCBBPWUuY2hhcnN0cmluZ3MsdD1lLmNmZj9lLmNmZi53aWR0aHM6bnVsbDtsZXQgaT0iXDBcMFwwXDAiO2ZvcihsZXQgZT0xLGE9bztlPGE7ZSsrKXtsZXQgYT0wO2lmKEEpe2NvbnN0IHQ9QVtlLTFdO2E9IndpZHRoImluIHQ/dC53aWR0aDowfWVsc2UgdCYmKGE9TWF0aC5jZWlsKHRbZV18fDApKTtpKz1KcyhhKStKcygwKX1yZXR1cm4gaX0oKSksQi5hZGRUYWJsZSgibWF4cCIsIlwwXDBQXDAiK0pzKG8pKSxCLmFkZFRhYmxlKCJuYW1lIixWcyhBKSksQi5hZGRUYWJsZSgicG9zdCIsanModCkpLEIudG9BcnJheSgpfWdldCBfc3BhY2VXaWR0aCgpe2NvbnN0IEE9WyJzcGFjZSIsIm1pbnVzIiwib25lIiwiaSIsIkkiXTtsZXQgZTtmb3IoY29uc3QgdCBvZiBBKXtpZih0IGluIHRoaXMud2lkdGhzKXtlPXRoaXMud2lkdGhzW3RdO2JyZWFrfWNvbnN0IEE9cmEoKVt0XTtsZXQgaT0wO2lmKHRoaXMuY29tcG9zaXRlJiZ0aGlzLmNNYXAuY29udGFpbnMoQSkmJihpPXRoaXMuY01hcC5sb29rdXAoQSksInN0cmluZyI9PXR5cGVvZiBpJiYoaT1QcyhBLGkpKSksIWkmJnRoaXMudG9Vbmljb2RlJiYoaT10aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKEEpKSxpPD0wJiYoaT1BKSxlPXRoaXMud2lkdGhzW2ldLGUpYnJlYWt9cmV0dXJuIEgodGhpcywiX3NwYWNlV2lkdGgiLGV8fHRoaXMuZGVmYXVsdFdpZHRoKX1fY2hhclRvR2x5cGgoQSxlPSExKXtsZXQgdCxpLGEscz10aGlzLl9nbHlwaENhY2hlW0FdO2lmKHM/LmlzU3BhY2U9PT1lKXJldHVybiBzO2xldCBuPUE7dGhpcy5jTWFwPy5jb250YWlucyhBKSYmKG49dGhpcy5jTWFwLmxvb2t1cChBKSwic3RyaW5nIj09dHlwZW9mIG4mJihuPVBzKEEsbikpKSxpPXRoaXMud2lkdGhzW25dLCJudW1iZXIiIT10eXBlb2YgaSYmKGk9dGhpcy5kZWZhdWx0V2lkdGgpO2NvbnN0IHI9dGhpcy52bWV0cmljcz8uW25dO2xldCBnPXRoaXMudG9Vbmljb2RlLmdldChBKXx8QTsibnVtYmVyIj09dHlwZW9mIGcmJihnPVN0cmluZy5mcm9tQ2hhckNvZGUoZykpO2xldCBvPXZvaWQgMCE9PXRoaXMudG9Gb250Q2hhcltBXTtpZih0PXRoaXMudG9Gb250Q2hhcltBXXx8QSx0aGlzLm1pc3NpbmdGaWxlKXtjb25zdCBlPXRoaXMuZGlmZmVyZW5jZXNbQV18fHRoaXMuZGVmYXVsdEVuY29kaW5nW0FdOyIubm90ZGVmIiE9PWUmJiIiIT09ZXx8IlR5cGUxIiE9PXRoaXMudHlwZXx8KHQ9MzIsIiI9PT1lJiYoaXx8PXRoaXMuX3NwYWNlV2lkdGgsZz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKSksdD0oST10KT49NjU1MjAmJkk8PTY1NTM1PzA6ST49NjI5NzYmJkk8PTYzNzQzP29hKClbSV18fEk6MTczPT09ST80NTpJfXZhciBJO3RoaXMuaXNUeXBlM0ZvbnQmJihhPXQpO2xldCBjPW51bGw7aWYodGhpcy5zZWFjTWFwPy5bQV0pe289ITA7Y29uc3QgZT10aGlzLnNlYWNNYXBbQV07dD1lLmJhc2VGb250Q2hhckNvZGUsYz17Zm9udENoYXI6U3RyaW5nLmZyb21Db2RlUG9pbnQoZS5hY2NlbnRGb250Q2hhckNvZGUpLG9mZnNldDplLmFjY2VudE9mZnNldH19bGV0IGg9IiI7aWYoIm51bWJlciI9PXR5cGVvZiB0JiYodDw9MTExNDExMT9oPVN0cmluZy5mcm9tQ29kZVBvaW50KHQpOlUoYGNoYXJUb0dseXBoIC0gaW52YWxpZCBmb250Q2hhckNvZGU6ICR7dH1gKSksdGhpcy5taXNzaW5nRmlsZSYmdGhpcy52ZXJ0aWNhbCYmMT09PWgubGVuZ3RoKXtjb25zdCBBPWZhKClbaC5jaGFyQ29kZUF0KDApXTtBJiYoaD1nPVN0cmluZy5mcm9tQ2hhckNvZGUoQSkpfXJldHVybiBzPW5ldyB4cyhBLGgsZyxjLGkscixhLGUsbyksdGhpcy5fZ2x5cGhDYWNoZVtBXT1zfWNoYXJzVG9HbHlwaHMoQSl7bGV0IGU9dGhpcy5fY2hhcnNDYWNoZVtBXTtpZihlKXJldHVybiBlO2lmKGU9W10sdGhpcy5jTWFwKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCksaT1BLmxlbmd0aDtsZXQgYT0wO2Zvcig7YTxpOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShBLGEsdCk7Y29uc3R7Y2hhcmNvZGU6aSxsZW5ndGg6c309dDthKz1zO2NvbnN0IG49dGhpcy5fY2hhclRvR2x5cGgoaSwxPT09cyYmMzI9PT1BLmNoYXJDb2RlQXQoYS0xKSk7ZS5wdXNoKG4pfX1lbHNlIGZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpOysrdCl7Y29uc3QgaT1BLmNoYXJDb2RlQXQodCksYT10aGlzLl9jaGFyVG9HbHlwaChpLDMyPT09aSk7ZS5wdXNoKGEpfXJldHVybiB0aGlzLl9jaGFyc0NhY2hlW0FdPWV9Z2V0Q2hhclBvc2l0aW9ucyhBKXtjb25zdCBlPVtdO2lmKHRoaXMuY01hcCl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBpPTA7Zm9yKDtpPEEubGVuZ3RoOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShBLGksdCk7Y29uc3QgYT10Lmxlbmd0aDtlLnB1c2goW2ksaSthXSksaSs9YX19ZWxzZSBmb3IobGV0IHQ9MCxpPUEubGVuZ3RoO3Q8aTsrK3QpZS5wdXNoKFt0LHQrMV0pO3JldHVybiBlfWdldCBnbHlwaENhY2hlVmFsdWVzKCl7cmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fZ2x5cGhDYWNoZSl9ZW5jb2RlU3RyaW5nKEEpe2NvbnN0IGU9W10sdD1bXSxpPSgpPT5lLmxlbmd0aCUyPT0xLGE9dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBOYT9BPT50aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKEEpOkE9PnRoaXMudG9Vbmljb2RlLmNoYXJDb2RlT2YoU3RyaW5nLmZyb21Db2RlUG9pbnQoQSkpO2ZvcihsZXQgcz0wLG49QS5sZW5ndGg7czxuO3MrKyl7Y29uc3Qgbj1BLmNvZGVQb2ludEF0KHMpO2lmKG4+NTUyOTUmJihuPDU3MzQ0fHxuPjY1NTMzKSYmcysrLHRoaXMudG9Vbmljb2RlKXtjb25zdCBBPWEobik7aWYoLTEhPT1BKXtpKCkmJihlLnB1c2godC5qb2luKCIiKSksdC5sZW5ndGg9MCk7Zm9yKGxldCBlPSh0aGlzLmNNYXA/dGhpcy5jTWFwLmdldENoYXJDb2RlTGVuZ3RoKEEpOjEpLTE7ZT49MDtlLS0pdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoQT4+OCplJjI1NSkpO2NvbnRpbnVlfX1pKCl8fChlLnB1c2godC5qb2luKCIiKSksdC5sZW5ndGg9MCksdC5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KG4pKX1yZXR1cm4gZS5wdXNoKHQuam9pbigiIikpLGV9fWNsYXNzIHpze2NvbnN0cnVjdG9yKEEpe3RoaXMuZXJyb3I9QSx0aGlzLmxvYWRlZE5hbWU9ImdfZm9udF9lcnJvciIsdGhpcy5taXNzaW5nRmlsZT0hMH1jaGFyc1RvR2x5cGhzKCl7cmV0dXJuW119ZW5jb2RlU3RyaW5nKEEpe3JldHVybltBXX1leHBvcnREYXRhKEE9ITEpe3JldHVybntlcnJvcjp0aGlzLmVycm9yfX19Y2xhc3MgJHN7Y29uc3RydWN0b3IoKXtNKCJDYW5ub3QgaW5pdGlhbGl6ZSBQYXR0ZXJuLiIpfXN0YXRpYyBwYXJzZVNoYWRpbmcoQSxlLHQsaSxhKXtjb25zdCBzPUEgaW5zdGFuY2VvZiB3QT9BLmRpY3Q6QSxuPXMuZ2V0KCJTaGFkaW5nVHlwZSIpO3RyeXtzd2l0Y2gobil7Y2FzZSAyOmNhc2UgMzpyZXR1cm4gbmV3IGVuKHMsZSx0LGksYSk7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OnJldHVybiBuZXcgbm4oQSxlLHQsaSxhKTtkZWZhdWx0OnRocm93IG5ldyBXKCJVbnN1cHBvcnRlZCBTaGFkaW5nVHlwZTogIituKX19Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7cmV0dXJuIFUoQSksbmV3IHJufX19Y2xhc3MgQW57c3RhdGljIFNNQUxMX05VTUJFUj0xZS02O2dldElSKCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRJUmAgY2FsbGVkLiIpfX1jbGFzcyBlbiBleHRlbmRzIEFue2NvbnN0cnVjdG9yKEEsZSx0LGksYSl7c3VwZXIoKSx0aGlzLnNoYWRpbmdUeXBlPUEuZ2V0KCJTaGFkaW5nVHlwZSIpO2xldCBzPTA7aWYoMj09PXRoaXMuc2hhZGluZ1R5cGU/cz00OjM9PT10aGlzLnNoYWRpbmdUeXBlJiYocz02KSx0aGlzLmNvb3Jkc0Fycj1BLmdldEFycmF5KCJDb29yZHMiKSwhdkEodGhpcy5jb29yZHNBcnIscykpdGhyb3cgbmV3IFcoIlJhZGlhbEF4aWFsU2hhZGluZzogSW52YWxpZCAvQ29vcmRzIGFycmF5LiIpO2NvbnN0IG49Q2UucGFyc2Uoe2NzOkEuZ2V0UmF3KCJDUyIpfHxBLmdldFJhdygiQ29sb3JTcGFjZSIpLHhyZWY6ZSxyZXNvdXJjZXM6dCxwZGZGdW5jdGlvbkZhY3Rvcnk6aSxsb2NhbENvbG9yU3BhY2VDYWNoZTphfSk7dGhpcy5iYm94PVRBKEEuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtsZXQgcj0wLGc9MTtjb25zdCBvPUEuZ2V0QXJyYXkoIkRvbWFpbiIpO3ZBKG8sMikmJihbcixnXT1vKTtsZXQgST0hMSxjPSExO2NvbnN0IGg9QS5nZXRBcnJheSgiRXh0ZW5kIik7dmFyIEM7aWYoQz1oLDIsQXJyYXkuaXNBcnJheShDKSYmMj09PUMubGVuZ3RoJiZDLmV2ZXJ5KChBPT4iYm9vbGVhbiI9PXR5cGVvZiBBKSkmJihbSSxjXT1oKSwhKDMhPT10aGlzLnNoYWRpbmdUeXBlfHxJJiZjKSl7Y29uc3RbQSxlLHQsaSxhLHNdPXRoaXMuY29vcmRzQXJyLG49TWF0aC5oeXBvdChBLWksZS1hKTt0PD1zK24mJnM8PXQrbiYmVSgiVW5zdXBwb3J0ZWQgcmFkaWFsIGdyYWRpZW50LiIpfXRoaXMuZXh0ZW5kU3RhcnQ9SSx0aGlzLmV4dGVuZEVuZD1jO2NvbnN0IEI9QS5nZXRSYXcoIkZ1bmN0aW9uIiksbD1pLmNyZWF0ZUZyb21BcnJheShCKSxRPShnLXIpLzg0MCxFPXRoaXMuY29sb3JTdG9wcz1bXTtpZihyPj1nfHxRPD0wKXJldHVybiB2b2lkIHgoIkJhZCBzaGFkaW5nIGRvbWFpbi4iKTtjb25zdCB1PW5ldyBGbG9hdDMyQXJyYXkobi5udW1Db21wcyksZD1uZXcgRmxvYXQzMkFycmF5KDEpO2xldCBmLHA9MDtkWzBdPXIsbChkLDAsdSwwKTtsZXQgbT1uLmdldFJnYih1LDApO2NvbnN0IHk9JC5tYWtlSGV4Q29sb3IobVswXSxtWzFdLG1bMl0pO0UucHVzaChbMCx5XSk7bGV0IHc9MTtkWzBdPXIrUSxsKGQsMCx1LDApO2xldCBEPW4uZ2V0UmdiKHUsMCksYj1EWzBdLW1bMF0rMSxrPURbMV0tbVsxXSsxLEY9RFsyXS1tWzJdKzEsUz1EWzBdLW1bMF0tMSxSPURbMV0tbVsxXS0xLEc9RFsyXS1tWzJdLTE7Zm9yKGxldCBBPTI7QTw4NDA7QSsrKXtkWzBdPXIrQSpRLGwoZCwwLHUsMCksZj1uLmdldFJnYih1LDApO2NvbnN0IGU9QS1wO2lmKGI9TWF0aC5taW4oYiwoZlswXS1tWzBdKzEpL2UpLGs9TWF0aC5taW4oaywoZlsxXS1tWzFdKzEpL2UpLEY9TWF0aC5taW4oRiwoZlsyXS1tWzJdKzEpL2UpLFM9TWF0aC5tYXgoUywoZlswXS1tWzBdLTEpL2UpLFI9TWF0aC5tYXgoUiwoZlsxXS1tWzFdLTEpL2UpLEc9TWF0aC5tYXgoRywoZlsyXS1tWzJdLTEpL2UpLCEoUzw9YiYmUjw9ayYmRzw9Rikpe2NvbnN0IEE9JC5tYWtlSGV4Q29sb3IoRFswXSxEWzFdLERbMl0pO0UucHVzaChbdy84NDAsQV0pLGI9ZlswXS1EWzBdKzEsaz1mWzFdLURbMV0rMSxGPWZbMl0tRFsyXSsxLFM9ZlswXS1EWzBdLTEsUj1mWzFdLURbMV0tMSxHPWZbMl0tRFsyXS0xLHA9dyxtPUR9dz1BLEQ9Zn1jb25zdCBOPSQubWFrZUhleENvbG9yKERbMF0sRFsxXSxEWzJdKTtFLnB1c2goWzEsTl0pO2xldCBNPSJ0cmFuc3BhcmVudCI7QS5oYXMoIkJhY2tncm91bmQiKSYmKGY9bi5nZXRSZ2IoQS5nZXQoIkJhY2tncm91bmQiKSwwKSxNPSQubWFrZUhleENvbG9yKGZbMF0sZlsxXSxmWzJdKSksSXx8KEUudW5zaGlmdChbMCxNXSksRVsxXVswXSs9QW4uU01BTExfTlVNQkVSKSxjfHwoRS5hdCgtMSlbMF0tPUFuLlNNQUxMX05VTUJFUixFLnB1c2goWzEsTV0pKSx0aGlzLmNvbG9yU3RvcHM9RX1nZXRJUigpe2NvbnN0e2Nvb3Jkc0FycjpBLHNoYWRpbmdUeXBlOmV9PXRoaXM7bGV0IHQsaSxhLHMsbjtyZXR1cm4gMj09PWU/KGk9W0FbMF0sQVsxXV0sYT1bQVsyXSxBWzNdXSxzPW51bGwsbj1udWxsLHQ9ImF4aWFsIik6Mz09PWU/KGk9W0FbMF0sQVsxXV0sYT1bQVszXSxBWzRdXSxzPUFbMl0sbj1BWzVdLHQ9InJhZGlhbCIpOk0oYGdldFBhdHRlcm4gdHlwZSB1bmtub3duOiAke2V9YCksWyJSYWRpYWxBeGlhbCIsdCx0aGlzLmJib3gsdGhpcy5jb2xvclN0b3BzLGksYSxzLG5dfX1jbGFzcyB0bntjb25zdHJ1Y3RvcihBLGUpe3RoaXMuc3RyZWFtPUEsdGhpcy5jb250ZXh0PWUsdGhpcy5idWZmZXI9MCx0aGlzLmJ1ZmZlckxlbmd0aD0wO2NvbnN0IHQ9ZS5udW1Db21wczt0aGlzLnRtcENvbXBzQnVmPW5ldyBGbG9hdDMyQXJyYXkodCk7Y29uc3QgaT1lLmNvbG9yU3BhY2UubnVtQ29tcHM7dGhpcy50bXBDc0NvbXBzQnVmPWUuY29sb3JGbj9uZXcgRmxvYXQzMkFycmF5KGkpOnRoaXMudG1wQ29tcHNCdWZ9Z2V0IGhhc0RhdGEoKXtpZih0aGlzLnN0cmVhbS5lbmQpcmV0dXJuIHRoaXMuc3RyZWFtLnBvczx0aGlzLnN0cmVhbS5lbmQ7aWYodGhpcy5idWZmZXJMZW5ndGg+MClyZXR1cm4hMDtjb25zdCBBPXRoaXMuc3RyZWFtLmdldEJ5dGUoKTtyZXR1cm4hKEE8MHx8KHRoaXMuYnVmZmVyPUEsdGhpcy5idWZmZXJMZW5ndGg9OCwwKSl9cmVhZEJpdHMoQSl7bGV0IGU9dGhpcy5idWZmZXIsdD10aGlzLmJ1ZmZlckxlbmd0aDtpZigzMj09PUEpe2lmKDA9PT10KXJldHVybih0aGlzLnN0cmVhbS5nZXRCeXRlKCk8PDI0fHRoaXMuc3RyZWFtLmdldEJ5dGUoKTw8MTZ8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpPDw4fHRoaXMuc3RyZWFtLmdldEJ5dGUoKSk+Pj4wO2U9ZTw8MjR8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpPDwxNnx0aGlzLnN0cmVhbS5nZXRCeXRlKCk8PDh8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2NvbnN0IEE9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO3JldHVybiB0aGlzLmJ1ZmZlcj1BJigxPDx0KS0xLChlPDw4LXR8KDI1NSZBKT4+dCk+Pj4wfWlmKDg9PT1BJiYwPT09dClyZXR1cm4gdGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2Zvcig7dDxBOyllPWU8PDh8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpLHQrPTg7cmV0dXJuIHQtPUEsdGhpcy5idWZmZXJMZW5ndGg9dCx0aGlzLmJ1ZmZlcj1lJigxPDx0KS0xLGU+PnR9YWxpZ24oKXt0aGlzLmJ1ZmZlcj0wLHRoaXMuYnVmZmVyTGVuZ3RoPTB9cmVhZEZsYWcoKXtyZXR1cm4gdGhpcy5yZWFkQml0cyh0aGlzLmNvbnRleHQuYml0c1BlckZsYWcpfXJlYWRDb29yZGluYXRlKCl7Y29uc3QgQT10aGlzLmNvbnRleHQuYml0c1BlckNvb3JkaW5hdGUsZT10aGlzLnJlYWRCaXRzKEEpLHQ9dGhpcy5yZWFkQml0cyhBKSxpPXRoaXMuY29udGV4dC5kZWNvZGUsYT1BPDMyPzEvKCgxPDxBKS0xKToyLjMyODMwNjQzNjUzODY5NjNlLTEwO3JldHVybltlKmEqKGlbMV0taVswXSkraVswXSx0KmEqKGlbM10taVsyXSkraVsyXV19cmVhZENvbXBvbmVudHMoKXtjb25zdCBBPXRoaXMuY29udGV4dC5udW1Db21wcyxlPXRoaXMuY29udGV4dC5iaXRzUGVyQ29tcG9uZW50LHQ9ZTwzMj8xLygoMTw8ZSktMSk6Mi4zMjgzMDY0MzY1Mzg2OTYzZS0xMCxpPXRoaXMuY29udGV4dC5kZWNvZGUsYT10aGlzLnRtcENvbXBzQnVmO2ZvcihsZXQgcz0wLG49NDtzPEE7cysrLG4rPTIpe2NvbnN0IEE9dGhpcy5yZWFkQml0cyhlKTthW3NdPUEqdCooaVtuKzFdLWlbbl0pK2lbbl19Y29uc3Qgcz10aGlzLnRtcENzQ29tcHNCdWY7cmV0dXJuIHRoaXMuY29udGV4dC5jb2xvckZuJiZ0aGlzLmNvbnRleHQuY29sb3JGbihhLDAscywwKSx0aGlzLmNvbnRleHQuY29sb3JTcGFjZS5nZXRSZ2IocywwKX19bGV0IGFuPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gc24oQSl7cmV0dXJuIGFuW0FdfHw9ZnVuY3Rpb24oQSl7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MDt0PD1BO3QrKyl7Y29uc3QgaT10L0EsYT0xLWk7ZS5wdXNoKG5ldyBGbG9hdDMyQXJyYXkoW2EqKjMsMyppKmEqKjIsMyppKioyKmEsaSoqM10pKX1yZXR1cm4gZX0oQSl9Y2xhc3Mgbm4gZXh0ZW5kcyBBbntzdGF0aWMgTUlOX1NQTElUX1BBVENIX0NIVU5LU19BTU9VTlQ9MztzdGF0aWMgTUFYX1NQTElUX1BBVENIX0NIVU5LU19BTU9VTlQ9MjA7c3RhdGljIFRSSUFOR0xFX0RFTlNJVFk9MjA7Y29uc3RydWN0b3IoQSxlLHQsaSxhKXtpZihzdXBlcigpLCEoQSBpbnN0YW5jZW9mIHdBKSl0aHJvdyBuZXcgVygiTWVzaCBkYXRhIGlzIG5vdCBhIHN0cmVhbSIpO2NvbnN0IHM9QS5kaWN0O3RoaXMuc2hhZGluZ1R5cGU9cy5nZXQoIlNoYWRpbmdUeXBlIiksdGhpcy5iYm94PVRBKHMuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtjb25zdCBuPUNlLnBhcnNlKHtjczpzLmdldFJhdygiQ1MiKXx8cy5nZXRSYXcoIkNvbG9yU3BhY2UiKSx4cmVmOmUscmVzb3VyY2VzOnQscGRmRnVuY3Rpb25GYWN0b3J5OmksbG9jYWxDb2xvclNwYWNlQ2FjaGU6YX0pO3RoaXMuYmFja2dyb3VuZD1zLmhhcygiQmFja2dyb3VuZCIpP24uZ2V0UmdiKHMuZ2V0KCJCYWNrZ3JvdW5kIiksMCk6bnVsbDtjb25zdCByPXMuZ2V0UmF3KCJGdW5jdGlvbiIpLGc9cj9pLmNyZWF0ZUZyb21BcnJheShyKTpudWxsO3RoaXMuY29vcmRzPVtdLHRoaXMuY29sb3JzPVtdLHRoaXMuZmlndXJlcz1bXTtjb25zdCBvPXtiaXRzUGVyQ29vcmRpbmF0ZTpzLmdldCgiQml0c1BlckNvb3JkaW5hdGUiKSxiaXRzUGVyQ29tcG9uZW50OnMuZ2V0KCJCaXRzUGVyQ29tcG9uZW50IiksYml0c1BlckZsYWc6cy5nZXQoIkJpdHNQZXJGbGFnIiksZGVjb2RlOnMuZ2V0QXJyYXkoIkRlY29kZSIpLGNvbG9yRm46Zyxjb2xvclNwYWNlOm4sbnVtQ29tcHM6Zz8xOm4ubnVtQ29tcHN9LEk9bmV3IHRuKEEsbyk7bGV0IGM9ITE7c3dpdGNoKHRoaXMuc2hhZGluZ1R5cGUpe2Nhc2UgNDp0aGlzLl9kZWNvZGVUeXBlNFNoYWRpbmcoSSk7YnJlYWs7Y2FzZSA1OmNvbnN0IEE9MHxzLmdldCgiVmVydGljZXNQZXJSb3ciKTtpZihBPDIpdGhyb3cgbmV3IFcoIkludmFsaWQgVmVydGljZXNQZXJSb3ciKTt0aGlzLl9kZWNvZGVUeXBlNVNoYWRpbmcoSSxBKTticmVhaztjYXNlIDY6dGhpcy5fZGVjb2RlVHlwZTZTaGFkaW5nKEkpLGM9ITA7YnJlYWs7Y2FzZSA3OnRoaXMuX2RlY29kZVR5cGU3U2hhZGluZyhJKSxjPSEwO2JyZWFrO2RlZmF1bHQ6TSgiVW5zdXBwb3J0ZWQgbWVzaCB0eXBlLiIpfWlmKGMpe3RoaXMuX3VwZGF0ZUJvdW5kcygpO2ZvcihsZXQgQT0wLGU9dGhpcy5maWd1cmVzLmxlbmd0aDtBPGU7QSsrKXRoaXMuX2J1aWxkRmlndXJlRnJvbVBhdGNoKEEpfXRoaXMuX3VwZGF0ZUJvdW5kcygpLHRoaXMuX3BhY2tEYXRhKCl9X2RlY29kZVR5cGU0U2hhZGluZyhBKXtjb25zdCBlPXRoaXMuY29vcmRzLHQ9dGhpcy5jb2xvcnMsaT1bXSxhPVtdO2xldCBzPTA7Zm9yKDtBLmhhc0RhdGE7KXtjb25zdCBuPUEucmVhZEZsYWcoKSxyPUEucmVhZENvb3JkaW5hdGUoKSxnPUEucmVhZENvbXBvbmVudHMoKTtpZigwPT09cyl7aWYoISgwPD1uJiZuPD0yKSl0aHJvdyBuZXcgVygiVW5rbm93biB0eXBlNCBmbGFnIik7c3dpdGNoKG4pe2Nhc2UgMDpzPTM7YnJlYWs7Y2FzZSAxOmEucHVzaChhLmF0KC0yKSxhLmF0KC0xKSkscz0xO2JyZWFrO2Nhc2UgMjphLnB1c2goYS5hdCgtMyksYS5hdCgtMSkpLHM9MX1pLnB1c2gobil9YS5wdXNoKGUubGVuZ3RoKSxlLnB1c2gociksdC5wdXNoKGcpLHMtLSxBLmFsaWduKCl9dGhpcy5maWd1cmVzLnB1c2goe3R5cGU6InRyaWFuZ2xlcyIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShhKX0pfV9kZWNvZGVUeXBlNVNoYWRpbmcoQSxlKXtjb25zdCB0PXRoaXMuY29vcmRzLGk9dGhpcy5jb2xvcnMsYT1bXTtmb3IoO0EuaGFzRGF0YTspe2NvbnN0IGU9QS5yZWFkQ29vcmRpbmF0ZSgpLHM9QS5yZWFkQ29tcG9uZW50cygpO2EucHVzaCh0Lmxlbmd0aCksdC5wdXNoKGUpLGkucHVzaChzKX10aGlzLmZpZ3VyZXMucHVzaCh7dHlwZToibGF0dGljZSIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShhKSx2ZXJ0aWNlc1BlclJvdzplfSl9X2RlY29kZVR5cGU2U2hhZGluZyhBKXtjb25zdCBlPXRoaXMuY29vcmRzLHQ9dGhpcy5jb2xvcnMsaT1uZXcgSW50MzJBcnJheSgxNiksYT1uZXcgSW50MzJBcnJheSg0KTtmb3IoO0EuaGFzRGF0YTspe2NvbnN0IHM9QS5yZWFkRmxhZygpO2lmKCEoMDw9cyYmczw9MykpdGhyb3cgbmV3IFcoIlVua25vd24gdHlwZTYgZmxhZyIpO2NvbnN0IG49ZS5sZW5ndGg7Zm9yKGxldCB0PTAsaT0wIT09cz84OjEyO3Q8aTt0KyspZS5wdXNoKEEucmVhZENvb3JkaW5hdGUoKSk7Y29uc3Qgcj10Lmxlbmd0aDtmb3IobGV0IGU9MCxpPTAhPT1zPzI6NDtlPGk7ZSsrKXQucHVzaChBLnJlYWRDb21wb25lbnRzKCkpO2xldCBnLG8sSSxjO3N3aXRjaChzKXtjYXNlIDA6aVsxMl09biszLGlbMTNdPW4rNCxpWzE0XT1uKzUsaVsxNV09bis2LGlbOF09bisyLGlbMTFdPW4rNyxpWzRdPW4rMSxpWzddPW4rOCxpWzBdPW4saVsxXT1uKzExLGlbMl09bisxMCxpWzNdPW4rOSxhWzJdPXIrMSxhWzNdPXIrMixhWzBdPXIsYVsxXT1yKzM7YnJlYWs7Y2FzZSAxOmc9aVsxMl0sbz1pWzEzXSxJPWlbMTRdLGM9aVsxNV0saVsxMl09YyxpWzEzXT1uKzAsaVsxNF09bisxLGlbMTVdPW4rMixpWzhdPUksaVsxMV09biszLGlbNF09byxpWzddPW4rNCxpWzBdPWcsaVsxXT1uKzcsaVsyXT1uKzYsaVszXT1uKzUsZz1hWzJdLG89YVszXSxhWzJdPW8sYVszXT1yLGFbMF09ZyxhWzFdPXIrMTticmVhaztjYXNlIDI6Zz1pWzE1XSxvPWlbMTFdLGlbMTJdPWlbM10saVsxM109biswLGlbMTRdPW4rMSxpWzE1XT1uKzIsaVs4XT1pWzddLGlbMTFdPW4rMyxpWzRdPW8saVs3XT1uKzQsaVswXT1nLGlbMV09bis3LGlbMl09bis2LGlbM109bis1LGc9YVszXSxhWzJdPWFbMV0sYVszXT1yLGFbMF09ZyxhWzFdPXIrMTticmVhaztjYXNlIDM6aVsxMl09aVswXSxpWzEzXT1uKzAsaVsxNF09bisxLGlbMTVdPW4rMixpWzhdPWlbMV0saVsxMV09biszLGlbNF09aVsyXSxpWzddPW4rNCxpWzBdPWlbM10saVsxXT1uKzcsaVsyXT1uKzYsaVszXT1uKzUsYVsyXT1hWzBdLGFbM109cixhWzBdPWFbMV0sYVsxXT1yKzF9aVs1XT1lLmxlbmd0aCxlLnB1c2goWygtNCplW2lbMF1dWzBdLWVbaVsxNV1dWzBdKzYqKGVbaVs0XV1bMF0rZVtpWzFdXVswXSktMiooZVtpWzEyXV1bMF0rZVtpWzNdXVswXSkrMyooZVtpWzEzXV1bMF0rZVtpWzddXVswXSkpLzksKC00KmVbaVswXV1bMV0tZVtpWzE1XV1bMV0rNiooZVtpWzRdXVsxXStlW2lbMV1dWzFdKS0yKihlW2lbMTJdXVsxXStlW2lbM11dWzFdKSszKihlW2lbMTNdXVsxXStlW2lbN11dWzFdKSkvOV0pLGlbNl09ZS5sZW5ndGgsZS5wdXNoKFsoLTQqZVtpWzNdXVswXS1lW2lbMTJdXVswXSs2KihlW2lbMl1dWzBdK2VbaVs3XV1bMF0pLTIqKGVbaVswXV1bMF0rZVtpWzE1XV1bMF0pKzMqKGVbaVs0XV1bMF0rZVtpWzE0XV1bMF0pKS85LCgtNCplW2lbM11dWzFdLWVbaVsxMl1dWzFdKzYqKGVbaVsyXV1bMV0rZVtpWzddXVsxXSktMiooZVtpWzBdXVsxXStlW2lbMTVdXVsxXSkrMyooZVtpWzRdXVsxXStlW2lbMTRdXVsxXSkpLzldKSxpWzldPWUubGVuZ3RoLGUucHVzaChbKC00KmVbaVsxMl1dWzBdLWVbaVszXV1bMF0rNiooZVtpWzhdXVswXStlW2lbMTNdXVswXSktMiooZVtpWzBdXVswXStlW2lbMTVdXVswXSkrMyooZVtpWzExXV1bMF0rZVtpWzFdXVswXSkpLzksKC00KmVbaVsxMl1dWzFdLWVbaVszXV1bMV0rNiooZVtpWzhdXVsxXStlW2lbMTNdXVsxXSktMiooZVtpWzBdXVsxXStlW2lbMTVdXVsxXSkrMyooZVtpWzExXV1bMV0rZVtpWzFdXVsxXSkpLzldKSxpWzEwXT1lLmxlbmd0aCxlLnB1c2goWygtNCplW2lbMTVdXVswXS1lW2lbMF1dWzBdKzYqKGVbaVsxMV1dWzBdK2VbaVsxNF1dWzBdKS0yKihlW2lbMTJdXVswXStlW2lbM11dWzBdKSszKihlW2lbMl1dWzBdK2VbaVs4XV1bMF0pKS85LCgtNCplW2lbMTVdXVsxXS1lW2lbMF1dWzFdKzYqKGVbaVsxMV1dWzFdK2VbaVsxNF1dWzFdKS0yKihlW2lbMTJdXVsxXStlW2lbM11dWzFdKSszKihlW2lbMl1dWzFdK2VbaVs4XV1bMV0pKS85XSksdGhpcy5maWd1cmVzLnB1c2goe3R5cGU6InBhdGNoIixjb29yZHM6bmV3IEludDMyQXJyYXkoaSksY29sb3JzOm5ldyBJbnQzMkFycmF5KGEpfSl9fV9kZWNvZGVUeXBlN1NoYWRpbmcoQSl7Y29uc3QgZT10aGlzLmNvb3Jkcyx0PXRoaXMuY29sb3JzLGk9bmV3IEludDMyQXJyYXkoMTYpLGE9bmV3IEludDMyQXJyYXkoNCk7Zm9yKDtBLmhhc0RhdGE7KXtjb25zdCBzPUEucmVhZEZsYWcoKTtpZighKDA8PXMmJnM8PTMpKXRocm93IG5ldyBXKCJVbmtub3duIHR5cGU3IGZsYWciKTtjb25zdCBuPWUubGVuZ3RoO2ZvcihsZXQgdD0wLGk9MCE9PXM/MTI6MTY7dDxpO3QrKyllLnB1c2goQS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCByPXQubGVuZ3RoO2ZvcihsZXQgZT0wLGk9MCE9PXM/Mjo0O2U8aTtlKyspdC5wdXNoKEEucmVhZENvbXBvbmVudHMoKSk7bGV0IGcsbyxJLGM7c3dpdGNoKHMpe2Nhc2UgMDppWzEyXT1uKzMsaVsxM109bis0LGlbMTRdPW4rNSxpWzE1XT1uKzYsaVs4XT1uKzIsaVs5XT1uKzEzLGlbMTBdPW4rMTQsaVsxMV09bis3LGlbNF09bisxLGlbNV09bisxMixpWzZdPW4rMTUsaVs3XT1uKzgsaVswXT1uLGlbMV09bisxMSxpWzJdPW4rMTAsaVszXT1uKzksYVsyXT1yKzEsYVszXT1yKzIsYVswXT1yLGFbMV09ciszO2JyZWFrO2Nhc2UgMTpnPWlbMTJdLG89aVsxM10sST1pWzE0XSxjPWlbMTVdLGlbMTJdPWMsaVsxM109biswLGlbMTRdPW4rMSxpWzE1XT1uKzIsaVs4XT1JLGlbOV09bis5LGlbMTBdPW4rMTAsaVsxMV09biszLGlbNF09byxpWzVdPW4rOCxpWzZdPW4rMTEsaVs3XT1uKzQsaVswXT1nLGlbMV09bis3LGlbMl09bis2LGlbM109bis1LGc9YVsyXSxvPWFbM10sYVsyXT1vLGFbM109cixhWzBdPWcsYVsxXT1yKzE7YnJlYWs7Y2FzZSAyOmc9aVsxNV0sbz1pWzExXSxpWzEyXT1pWzNdLGlbMTNdPW4rMCxpWzE0XT1uKzEsaVsxNV09bisyLGlbOF09aVs3XSxpWzldPW4rOSxpWzEwXT1uKzEwLGlbMTFdPW4rMyxpWzRdPW8saVs1XT1uKzgsaVs2XT1uKzExLGlbN109bis0LGlbMF09ZyxpWzFdPW4rNyxpWzJdPW4rNixpWzNdPW4rNSxnPWFbM10sYVsyXT1hWzFdLGFbM109cixhWzBdPWcsYVsxXT1yKzE7YnJlYWs7Y2FzZSAzOmlbMTJdPWlbMF0saVsxM109biswLGlbMTRdPW4rMSxpWzE1XT1uKzIsaVs4XT1pWzFdLGlbOV09bis5LGlbMTBdPW4rMTAsaVsxMV09biszLGlbNF09aVsyXSxpWzVdPW4rOCxpWzZdPW4rMTEsaVs3XT1uKzQsaVswXT1pWzNdLGlbMV09bis3LGlbMl09bis2LGlbM109bis1LGFbMl09YVswXSxhWzNdPXIsYVswXT1hWzFdLGFbMV09cisxfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOiJwYXRjaCIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGkpLGNvbG9yczpuZXcgSW50MzJBcnJheShhKX0pfX1fYnVpbGRGaWd1cmVGcm9tUGF0Y2goQSl7Y29uc3QgZT10aGlzLmZpZ3VyZXNbQV07TCgicGF0Y2giPT09ZS50eXBlLCJVbmV4cGVjdGVkIHBhdGNoIG1lc2ggZmlndXJlIik7Y29uc3QgdD10aGlzLmNvb3JkcyxpPXRoaXMuY29sb3JzLGE9ZS5jb29yZHMscz1lLmNvbG9ycyxuPU1hdGgubWluKHRbYVswXV1bMF0sdFthWzNdXVswXSx0W2FbMTJdXVswXSx0W2FbMTVdXVswXSkscj1NYXRoLm1pbih0W2FbMF1dWzFdLHRbYVszXV1bMV0sdFthWzEyXV1bMV0sdFthWzE1XV1bMV0pLGc9TWF0aC5tYXgodFthWzBdXVswXSx0W2FbM11dWzBdLHRbYVsxMl1dWzBdLHRbYVsxNV1dWzBdKSxvPU1hdGgubWF4KHRbYVswXV1bMV0sdFthWzNdXVsxXSx0W2FbMTJdXVsxXSx0W2FbMTVdXVsxXSk7bGV0IEk9TWF0aC5jZWlsKChnLW4pKm5uLlRSSUFOR0xFX0RFTlNJVFkvKHRoaXMuYm91bmRzWzJdLXRoaXMuYm91bmRzWzBdKSk7ST1NYXRoLm1heChubi5NSU5fU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxNYXRoLm1pbihubi5NQVhfU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxJKSk7bGV0IGM9TWF0aC5jZWlsKChvLXIpKm5uLlRSSUFOR0xFX0RFTlNJVFkvKHRoaXMuYm91bmRzWzNdLXRoaXMuYm91bmRzWzFdKSk7Yz1NYXRoLm1heChubi5NSU5fU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxNYXRoLm1pbihubi5NQVhfU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxjKSk7Y29uc3QgaD1JKzEsQz1uZXcgSW50MzJBcnJheSgoYysxKSpoKSxCPW5ldyBJbnQzMkFycmF5KChjKzEpKmgpO2xldCBsPTA7Y29uc3QgUT1uZXcgVWludDhBcnJheSgzKSxFPW5ldyBVaW50OEFycmF5KDMpLHU9aVtzWzBdXSxkPWlbc1sxXV0sZj1pW3NbMl1dLHA9aVtzWzNdXSxtPXNuKGMpLHk9c24oSSk7Zm9yKGxldCBBPTA7QTw9YztBKyspe1FbMF09KHVbMF0qKGMtQSkrZlswXSpBKS9jfDAsUVsxXT0odVsxXSooYy1BKStmWzFdKkEpL2N8MCxRWzJdPSh1WzJdKihjLUEpK2ZbMl0qQSkvY3wwLEVbMF09KGRbMF0qKGMtQSkrcFswXSpBKS9jfDAsRVsxXT0oZFsxXSooYy1BKStwWzFdKkEpL2N8MCxFWzJdPShkWzJdKihjLUEpK3BbMl0qQSkvY3wwO2ZvcihsZXQgZT0wO2U8PUk7ZSsrLGwrKyl7aWYoISgwIT09QSYmQSE9PWN8fDAhPT1lJiZlIT09SSkpY29udGludWU7bGV0IHM9MCxuPTAscj0wO2ZvcihsZXQgaT0wO2k8PTM7aSsrKWZvcihsZXQgZz0wO2c8PTM7ZysrLHIrKyl7Y29uc3Qgbz1tW0FdW2ldKnlbZV1bZ107cys9dFthW3JdXVswXSpvLG4rPXRbYVtyXV1bMV0qb31DW2xdPXQubGVuZ3RoLHQucHVzaChbcyxuXSksQltsXT1pLmxlbmd0aDtjb25zdCBnPW5ldyBVaW50OEFycmF5KDMpO2dbMF09KFFbMF0qKEktZSkrRVswXSplKS9JfDAsZ1sxXT0oUVsxXSooSS1lKStFWzFdKmUpL0l8MCxnWzJdPShRWzJdKihJLWUpK0VbMl0qZSkvSXwwLGkucHVzaChnKX19Q1swXT1hWzBdLEJbMF09c1swXSxDW0ldPWFbM10sQltJXT1zWzFdLENbaCpjXT1hWzEyXSxCW2gqY109c1syXSxDW2gqYytJXT1hWzE1XSxCW2gqYytJXT1zWzNdLHRoaXMuZmlndXJlc1tBXT17dHlwZToibGF0dGljZSIsY29vcmRzOkMsY29sb3JzOkIsdmVydGljZXNQZXJSb3c6aH19X3VwZGF0ZUJvdW5kcygpe2xldCBBPXRoaXMuY29vcmRzWzBdWzBdLGU9dGhpcy5jb29yZHNbMF1bMV0sdD1BLGk9ZTtmb3IobGV0IGE9MSxzPXRoaXMuY29vcmRzLmxlbmd0aDthPHM7YSsrKXtjb25zdCBzPXRoaXMuY29vcmRzW2FdWzBdLG49dGhpcy5jb29yZHNbYV1bMV07QT1BPnM/czpBLGU9ZT5uP246ZSx0PXQ8cz9zOnQsaT1pPG4/bjppfXRoaXMuYm91bmRzPVtBLGUsdCxpXX1fcGFja0RhdGEoKXtsZXQgQSxlLHQsaTtjb25zdCBhPXRoaXMuY29vcmRzLHM9bmV3IEZsb2F0MzJBcnJheSgyKmEubGVuZ3RoKTtmb3IoQT0wLHQ9MCxlPWEubGVuZ3RoO0E8ZTtBKyspe2NvbnN0IGU9YVtBXTtzW3QrK109ZVswXSxzW3QrK109ZVsxXX10aGlzLmNvb3Jkcz1zO2NvbnN0IG49dGhpcy5jb2xvcnMscj1uZXcgVWludDhBcnJheSgzKm4ubGVuZ3RoKTtmb3IoQT0wLHQ9MCxlPW4ubGVuZ3RoO0E8ZTtBKyspe2NvbnN0IGU9bltBXTtyW3QrK109ZVswXSxyW3QrK109ZVsxXSxyW3QrK109ZVsyXX10aGlzLmNvbG9ycz1yO2NvbnN0IGc9dGhpcy5maWd1cmVzO2ZvcihBPTAsZT1nLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPWdbQV0sYT1lLmNvb3JkcyxzPWUuY29sb3JzO2Zvcih0PTAsaT1hLmxlbmd0aDt0PGk7dCsrKWFbdF0qPTIsc1t0XSo9M319Z2V0SVIoKXtjb25zdHtib3VuZHM6QX09dGhpcztpZihBWzJdLUFbMF09PTB8fEFbM10tQVsxXT09MCl0aHJvdyBuZXcgVyhgSW52YWxpZCBNZXNoU2hhZGluZyBib3VuZHM6IFske0F9XS5gKTtyZXR1cm5bIk1lc2giLHRoaXMuc2hhZGluZ1R5cGUsdGhpcy5jb29yZHMsdGhpcy5jb2xvcnMsdGhpcy5maWd1cmVzLEEsdGhpcy5iYm94LHRoaXMuYmFja2dyb3VuZF19fWNsYXNzIHJuIGV4dGVuZHMgQW57Z2V0SVIoKXtyZXR1cm5bIkR1bW15Il19fWZ1bmN0aW9uIGduKEEsZSx0KXtjb25zdCBpPUtBKGUuZ2V0QXJyYXkoIk1hdHJpeCIpLHMpLGE9VEEoZS5nZXRBcnJheSgiQkJveCIpLG51bGwpO2lmKCFhfHxhWzJdLWFbMF09PTB8fGFbM10tYVsxXT09MCl0aHJvdyBuZXcgVygiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL0JCb3ggYXJyYXkuIik7Y29uc3Qgbj1lLmdldCgiWFN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIG4pdGhyb3cgbmV3IFcoIkludmFsaWQgZ2V0VGlsaW5nUGF0dGVybklSIC9YU3RlcCB2YWx1ZS4iKTtjb25zdCByPWUuZ2V0KCJZU3RlcCIpO2lmKCJudW1iZXIiIT10eXBlb2Ygcil0aHJvdyBuZXcgVygiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL1lTdGVwIHZhbHVlLiIpO2NvbnN0IGc9ZS5nZXQoIlBhaW50VHlwZSIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGcpKXRocm93IG5ldyBXKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvUGFpbnRUeXBlIHZhbHVlLiIpO2NvbnN0IG89ZS5nZXQoIlRpbGluZ1R5cGUiKTtpZighTnVtYmVyLmlzSW50ZWdlcihvKSl0aHJvdyBuZXcgVygiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL1RpbGluZ1R5cGUgdmFsdWUuIik7cmV0dXJuWyJUaWxpbmdQYXR0ZXJuIix0LEEsaSxhLG4scixnLG9dfWNvbnN0IG9uPVsxLjM4NzcsMSwxLDEsLjk3ODAxLC45MjQ4MiwuODk1NTIsLjkxMTMzLC44MTk4OCwuOTc1NjYsLjk4MTUyLC45MzU0OCwuOTM1NDgsMS4yNzk4LC44NTI4NCwuOTI3OTQsMSwuOTYxMzQsMS41NDY1NywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjgyODQ1LC44Mjg0NSwuODUyODQsLjg1Mjg0LC44NTI4NCwuNzU4NTksLjkyMTM4LC44MzkwOCwuNzc2MiwuNzMyOTMsLjg3Mjg5LC43MzEzMywuNzUxNCwuODE5MjEsLjg3MzU2LC45NTk1OCwuNTk1MjYsLjc1NzI3LC42OTIyNSwxLjA0OTI0LC45MTIxLC44Njk0MywuNzk3OTUsLjg4MTk4LC43Nzk1OCwuNzA4NjQsLjgxMDU1LC45MDM5OSwuODg2NTMsLjk2MDE3LC44MjU3NywuNzc4OTIsLjc4MjU3LC45NzUwNywxLjU0NjU3LC45NzUwNywuODUyODQsLjg5NTUyLC45MDE3NiwuODg3NjIsLjg3ODUsLjc1MjQxLC44Nzg1LC45MDUxOCwuOTUwMTUsLjc3NjE4LC44Nzg1LC44ODQwMSwuOTE5MTYsLjg2MzA0LC44ODQwMSwuOTE0ODgsLjg3ODUsLjg4MDEsLjg3ODUsLjg3ODUsLjkxMzQzLC43MTczLDEuMDQxMDYsLjg3ODUsLjg1MDc1LC45NTc5NCwuODI2MTYsLjg1MTYyLC43OTQ5MiwuODgzMzEsMS42OTgwOCwuODgzMzEsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS43ODAxLC44OTU1MiwxLjI0NDg3LDEuMTMyNTQsMS4xMjQwMSwuOTY4MzksLjg1Mjg0LC42ODc4NywuNzA2NDUsLjg1NTkyLC45MDc0NywxLjAxNDY2LDEuMDA4OCwuOTAzMjMsMSwxLjA3NDYzLDEsLjkxMDU2LC43NTgwNiwxLjE5MTE4LC45NjgzOSwuNzg4NjQsLjgyODQ1LC44NDEzMywuNzU4NTksLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjc3NTM5LC43MzI5MywuNzMxMzMsLjczMTMzLC43MzEzMywuNzMxMzMsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjk1OTU4LC44ODUwNiwuOTEyMSwuODY5NDMsLjg2OTQzLC44Njk0MywuODY5NDMsLjg2OTQzLC44NTI4NCwuODc1MDgsLjkwMzk5LC45MDM5OSwuOTAzOTksLjkwMzk5LC43Nzg5MiwuNzk3OTUsLjkwODA3LC44ODc2MiwuODg3NjIsLjg4NzYyLC44ODc2MiwuODg3NjIsLjg4NzYyLC44NzE1LC43NTI0MSwuOTA1MTgsLjkwNTE4LC45MDUxOCwuOTA1MTgsLjg4NDAxLC44ODQwMSwuODg0MDEsLjg4NDAxLC44Nzg1LC44Nzg1LC44ODAxLC44ODAxLC44ODAxLC44ODAxLC44ODAxLC45MDc0NywuODkwNDksLjg3ODUsLjg3ODUsLjg3ODUsLjg3ODUsLjg1MTYyLC44Nzg1LC44NTE2MiwuODM5MDgsLjg4NzYyLC44MzkwOCwuODg3NjIsLjgzOTA4LC44ODc2MiwuNzMyOTMsLjc1MjQxLC43MzI5MywuNzUyNDEsLjczMjkzLC43NTI0MSwuNzMyOTMsLjc1MjQxLC44NzI4OSwuODMwMTYsLjg4NTA2LC45MzEyNSwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjgxOTIxLC43NzYxOCwuODE5MjEsLjc3NjE4LC44MTkyMSwuNzc2MTgsMSwxLC44NzM1NiwuODc4NSwuOTEwNzUsLjg5NjA4LC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuNzYyMjksLjkwMTY3LC41OTUyNiwuOTE5MTYsMSwxLC44NjMwNCwuNjkyMjUsLjg4NDAxLDEsMSwuNzA0MjQsLjc5NDY4LC45MTkyNiwuODgxNzUsLjcwODIzLC45NDkwMywuOTEyMSwuODc4NSwxLDEsLjkxMjEsLjg3ODUsLjg3ODAyLC44ODY1NiwuODc4NSwuODY5NDMsLjg4MDEsLjg2OTQzLC44ODAxLC44Njk0MywuODgwMSwuODc0MDIsLjg5MjkxLC43Nzk1OCwuOTEzNDMsMSwxLC43Nzk1OCwuOTEzNDMsLjcwODY0LC43MTczLC43MDg2NCwuNzE3MywuNzA4NjQsLjcxNzMsLjcwODY0LC43MTczLDEsMSwuODEwNTUsLjc1ODQxLC44MTA1NSwxLjA2NDUyLC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45NjAxNywuOTU3OTQsLjc3ODkyLC44NTE2MiwuNzc4OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC43ODI1NywuNzk0OTIsLjkyOTcsLjU2ODkyLC44MzkwOCwuODg3NjIsLjc3NTM5LC44NzE1LC44NzUwOCwuODkwNDksMSwxLC44MTA1NSwxLjA0MTA2LDEuMjA1MjgsMS4yMDUyOCwxLDEuMTU1NDMsLjcwNjc0LC45ODM4NywuOTQ3MjEsMS4zMzQzMSwxLjQ1ODk0LC45NTE2MSwxLjA2MzAzLC44MzkwOCwuODAzNTIsLjU3MTg0LC42OTY1LC41NjI4OSwuODIwMDEsLjU2MDI5LC44MTIzNSwxLjAyOTg4LC44MzkwOCwuNzc2MiwuNjgxNTYsLjgwMzY3LC43MzEzMywuNzgyNTcsLjg3MzU2LC44Njk0MywuOTU5NTgsLjc1NzI3LC44OTAxOSwxLjA0OTI0LC45MTIxLC43NjQ4LC44Njk0MywuODczNTYsLjc5Nzk1LC43ODI3NSwuODEwNTUsLjc3ODkyLC45NzYyLC44MjU3NywuOTk4MTksLjg0ODk2LC45NTk1OCwuNzc4OTIsLjk2MTA4LDEuMDE0MDcsLjg5MDQ5LDEuMDI5ODgsLjk0MjExLC45NjEwOCwuODkzNiwuODQwMjEsLjg3ODQyLC45NjM5OSwuNzkxMDksLjg5MDQ5LDEuMDA4MTMsMS4wMjk4OCwuODYwNzcsLjg3NDQ1LC45MjA5OSwuODQ3MjMsLjg2NTEzLC44ODAxLC43NTYzOCwuODU3MTQsLjc4MjE2LC43OTU4NiwuODc5NjUsLjk0MjExLC45Nzc0NywuNzgyODcsLjk3OTI2LC44NDk3MSwxLjAyOTg4LC45NDIxMSwuODgwMSwuOTQyMTEsLjg0OTcxLC43MzEzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTAyNjQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwNTE4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDU0OCwxLDEsMSwxLDEsMSwuOTYwMTcsLjk1Nzk0LC45NjAxNywuOTU3OTQsLjk2MDE3LC45NTc5NCwuNzc4OTIsLjg1MTYyLDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMzYzLC45Mjc5NCwuOTI3OTQsLjkyNzk0LC45Mjc5NCwuODcwMTIsLjg3MDEyLC44NzAxMiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjcxMTQzLDEuMDYxNTIsMSwxLDEuMDMzNzIsMS4wMzM3MiwuOTcxNzEsMS40OTU2LDIuMjgwNywuOTM4MzUsLjgzNDA2LC45MTEzMywuODQxMDcsLjkxMTMzLDEsMSwxLC43MjAyMSwxLDEuMjMxMDgsLjgzNDg5LC44ODUyNSwuODg1MjUsLjgxNDk5LC45MDUyNywxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMzEwMDYsMS41MzcxMSwuOTQ0MzQsMS4wODY5NiwxLC45NTAxOCwuNzcxOTIsLjg1Mjg0LC45MDc0NywxLjE3NTM0LC42OTgyNSwuOTcxNiwxLjM3MDc3LC45MDc0NywuOTA3NDcsLjg1MzU2LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wODAwNCwuOTEwMjcsMSwxLDEsLjk5ODYyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDcyNywuOTA3MjcsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEluPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSxjbj1bMS4zODc3LDEsMSwxLC45NzgwMSwuOTI0ODIsLjg5NTUyLC45MTEzMywuODE5ODgsLjk3NTY2LC45ODE1MiwuOTM1NDgsLjkzNTQ4LDEuMjc5OCwuODUyODQsLjkyNzk0LDEsLjk2MTM0LDEuNTYyMzksLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC44Mjg0NSwuODI4NDUsLjg1Mjg0LC44NTI4NCwuODUyODQsLjc1ODU5LC45MjEzOCwuODM5MDgsLjc3NjIsLjcxODA1LC44NzI4OSwuNzMxMzMsLjc1MTQsLjgxOTIxLC44NzM1NiwuOTU5NTgsLjU5NTI2LC43NTcyNywuNjkyMjUsMS4wNDkyNCwuOTA4NzIsLjg1OTM4LC43OTc5NSwuODcwNjgsLjc3OTU4LC42OTc2NiwuODEwNTUsLjkwMzk5LC44ODY1MywuOTYwNjgsLjgyNTc3LC43Nzg5MiwuNzgyNTcsLjk3NTA3LDEuNTI5LC45NzUwNywuODUyODQsLjg5NTUyLC45MDE3NiwuOTQ5MDgsLjg2NDExLC43NDAxMiwuODY0MTEsLjg4MzIzLC45NTAxNSwuODY0MTEsLjg2MzMxLC44ODQwMSwuOTE5MTYsLjg2MzA0LC44ODQwMSwuOTAzOSwuODYzMzEsLjg2MzMxLC44NjQxMSwuODY0MTEsLjkwNDY0LC43MDg1MiwxLjA0MTA2LC44NjMzMSwuODQzNzIsLjk1Nzk0LC44MjYxNiwuODQ1NDgsLjc5NDkyLC44ODMzMSwxLjY5ODA4LC44ODMzMSwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjc4MDEsLjg5NTUyLDEuMjQ0ODcsMS4xMzI1NCwxLjE5MTI5LC45NjgzOSwuODUyODQsLjY4Nzg3LC43MDY0NSwuODU1OTIsLjkwNzQ3LDEuMDE0NjYsMS4wMDg4LC45MDMyMywxLDEuMDc0NjMsMSwuOTEwNTYsLjc1ODA2LDEuMTkxMTgsLjk2ODM5LC43ODg2NCwuODI4NDUsLjg0MTMzLC43NTg1OSwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuNzc1MzksLjcxODA1LC43MzEzMywuNzMxMzMsLjczMTMzLC43MzEzMywuOTU5NTgsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjg4NTA2LC45MDg3MiwuODU5MzgsLjg1OTM4LC44NTkzOCwuODU5MzgsLjg1OTM4LC44NTI4NCwuODcwNjgsLjkwMzk5LC45MDM5OSwuOTAzOTksLjkwMzk5LC43Nzg5MiwuNzk3OTUsLjkwODA3LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC44NTg4NywuNzQwMTIsLjg4MzIzLC44ODMyMywuODgzMjMsLjg4MzIzLC44ODQwMSwuODg0MDEsLjg4NDAxLC44ODQwMSwuODc4NSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuOTA3NDcsLjg5MDQ5LC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODQ1NDgsLjg2NDExLC44NDU0OCwuODM5MDgsLjk0OTA4LC44MzkwOCwuOTQ5MDgsLjgzOTA4LC45NDkwOCwuNzE4MDUsLjc0MDEyLC43MTgwNSwuNzQwMTIsLjcxODA1LC43NDAxMiwuNzE4MDUsLjc0MDEyLC44NzI4OSwuNzk1MzgsLjg4NTA2LC45MjcyNiwuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjgxOTIxLC44NjQxMSwuODE5MjEsLjg2NDExLC44MTkyMSwuODY0MTEsMSwxLC44NzM1NiwuODYzMzEsLjkxMDc1LC44Nzc3LC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuNzY0NjcsLjkwMTY3LC41OTUyNiwuOTE5MTYsMSwxLC44NjMwNCwuNjkyMjUsLjg4NDAxLDEsMSwuNzA0MjQsLjc3MzEyLC45MTkyNiwuODgxNzUsLjcwODIzLC45NDkwMywuOTA4NzIsLjg2MzMxLDEsMSwuOTA4NzIsLjg2MzMxLC44NjkwNiwuODgxMTYsLjg2MzMxLC44NTkzOCwuODYzMzEsLjg1OTM4LC44NjMzMSwuODU5MzgsLjg2MzMxLC44NzQwMiwuODY1NDksLjc3OTU4LC45MDQ2NCwxLDEsLjc3OTU4LC45MDQ2NCwuNjk3NjYsLjcwODUyLC42OTc2NiwuNzA4NTIsLjY5NzY2LC43MDg1MiwuNjk3NjYsLjcwODUyLDEsMSwuODEwNTUsLjc1ODQxLC44MTA1NSwxLjA2NDUyLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45NjA2OCwuOTU3OTQsLjc3ODkyLC44NDU0OCwuNzc4OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC43ODI1NywuNzk0OTIsLjkyOTcsLjU2ODkyLC44MzkwOCwuOTQ5MDgsLjc3NTM5LC44NTg4NywuODcwNjgsLjg5MDQ5LDEsMSwuODEwNTUsMS4wNDEwNiwxLjIwNTI4LDEuMjA1MjgsMSwxLjE1NTQzLC43MDA4OCwuOTgzODcsLjk0NzIxLDEuMzM0MzEsMS40NTg5NCwuOTUxNjEsMS40ODM4NywuODM5MDgsLjgwMzUyLC41NzExOCwuNjk2NSwuNTYzNDcsLjc5MTc5LC41NTg1MywuODAzNDYsMS4wMjk4OCwuODM5MDgsLjc3NjIsLjY3MTc0LC44NjAzNiwuNzMxMzMsLjc4MjU3LC44NzM1NiwuODY0NDEsLjk1OTU4LC43NTcyNywuODkwMTksMS4wNDkyNCwuOTA4NzIsLjc0ODg5LC44NTkzOCwuODc4OTEsLjc5Nzk1LC43OTU3LC44MTA1NSwuNzc4OTIsLjk3NDQ3LC44MjU3NywuOTc0NjYsLjg3MTc5LC45NTk1OCwuNzc4OTIsLjk0MjUyLC45NTYxMiwuODc1MywxLjAyOTg4LC45MjczMywuOTQyNTIsLjg3NDExLC44NDAyMSwuODcyOCwuOTU2MTIsLjc0MDgxLC44NzUzLDEuMDIxODksMS4wMjk4OCwuODQ4MTQsLjg3NDQ1LC45MTgyMiwuODQ3MjMsLjg1NjY4LC44NjMzMSwuODEzNDQsLjg3NTgxLC43NjQyMiwuODIwNDYsLjk2MDU3LC45MjczMywuOTkzNzUsLjc4MDIyLC45NTQ1MiwuODYwMTUsMS4wMjk4OCwuOTI3MzMsLjg2MzMxLC45MjczMywuODYwMTUsLjczMTMzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDYzMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODgzMjMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg1MTc0LDEsMSwxLDEsMSwxLC45NjA2OCwuOTU3OTQsLjk2MDY4LC45NTc5NCwuOTYwNjgsLjk1Nzk0LC43Nzg5MiwuODQ1NDgsMSwxLC44OTU1MiwuOTA1MjcsMSwuOTAzNjMsLjkyNzk0LC45Mjc5NCwuOTI3OTQsLjg5ODA3LC44NzAxMiwuODcwMTIsLjg3MDEyLC44OTU1MiwuODk1NTIsMS40MjI1OSwuNzEwOTQsMS4wNjE1MiwxLDEsMS4wMzM3MiwxLjAzMzcyLC45NzE3MSwxLjQ5NTYsMi4yODA3LC45Mjk3MiwuODM0MDYsLjkxMTMzLC44MzMyNiwuOTExMzMsMSwxLDEsLjcyMDIxLDEsMS4yMzEwOCwuODM0ODksLjg4NTI1LC44ODUyNSwuODE0OTksLjkwNjE2LDEuODEwNTUsLjkwNTI3LDEuODEwNTUsMS4zMTA3LDEuNTM3MTEsLjk0NDM0LDEuMDg2OTYsMSwuOTUwMTgsLjc3MTkyLC44NTI4NCwuOTA3NDcsMS4xNzUzNCwuNjk4MjUsLjk3MTYsMS4zNzA3NywuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDgwMDQsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA3MjcsLjkwNzI3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxobj17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sQ249WzEuMzg3NywxLDEsMSwxLjE3MjIzLDEuMTI5MywuODk1NTIsLjkxMTMzLC44MDM5NSwxLjAyMjY5LDEuMTU2MDEsLjkxMDU2LC45MTA1NiwxLjI3OTgsLjg1Mjg0LC44OTgwNywxLC45MDg2MSwxLjM5NTQzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTYzMDksLjk2MzA5LC44NTI4NCwuODUyODQsLjg1Mjg0LC44MzMxOSwuODgwNzEsLjg2NzUsLjgxNTUyLC43MjM0NiwuODUxOTMsLjczMjA2LC43NTIyLC44MTEwNSwuODYyNzUsLjkwNjg1LC42Mzc3LC43Nzg5MiwuNzU1OTMsMS4wMjYzOCwuODkyNDksLjg0MTE4LC43NzQ1MiwuODUzNzQsLjc1MTg2LC42Nzc4OSwuNzk3NzYsLjg4ODQ0LC44NTA2NiwuOTQzMDksLjc3ODE4LC43MzA2LC43NjY1OSwxLjEwMzY5LDEuMzgzMTMsMS4xMDM2OSwxLjA2MTM5LC44OTU1MiwuODczOSwuOTI0NSwuOTI0NSwuODMyMDMsLjkyNDUsLjg1ODY1LDEuMDk4NDIsLjkyNDUsLjkyNDUsMS4wMzI5NywxLjA3NjkyLC45MDkxOCwxLjAzMjk3LC45NDk1OSwuOTI0NSwuOTIyNzQsLjkyNDUsLjkyNDUsMS4wMjkzMywuNzc4MzIsMS4yMDU2MiwuOTI0NSwuODkxNiwuOTg5ODYsLjg2NjIxLC44OTQ1MywuNzkwMDQsLjk0MTUyLDEuNzcyNTYsLjk0MTUyLC44NTI4NCwuOTc4MDEsLjg5NTUyLC45MTEzMywuODk1NTIsLjkxMTMzLDEuOTE3MjksLjg5NTUyLDEuMTc4ODksMS4xMzI1NCwxLjE2MzU5LC45MjA5OCwuODUyODQsLjY4Nzg3LC43MTM1MywuODQ3MzcsLjkwNzQ3LDEuMDA4OCwxLjAwNDQsLjg3NjgzLDEsMS4wOTA5MSwxLC45MjIyOSwuNzM5LDEuMTU2NDIsLjkyMDk4LC43NjI4OCwuODA1MDQsLjgwOTcyLC43NTg1OSwuODY3NSwuODY3NSwuODY3NSwuODY3NSwuODY3NSwuODY3NSwuNzYzMTgsLjcyMzQ2LC43MzIwNiwuNzMyMDYsLjczMjA2LC43MzIwNiwuOTA2ODUsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjg2NDc3LC44OTI0OSwuODQxMTgsLjg0MTE4LC44NDExOCwuODQxMTgsLjg0MTE4LC44NTI4NCwuODQ1NTcsLjg4ODQ0LC44ODg0NCwuODg4NDQsLjg4ODQ0LC43MzA2LC43NzQ1MiwuODYzMzEsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjg0ODQzLC44MzIwMywuODU4NjUsLjg1ODY1LC44NTg2NSwuODU4NjUsLjgyNjAxLC44MjYwMSwuODI2MDEsLjgyNjAxLC45NDQ2OSwuOTI0NSwuOTIyNzQsLjkyMjc0LC45MjI3NCwuOTIyNzQsLjkyMjc0LC45MDc0NywuODY2NTEsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjg5NDUzLC45MjQ1LC44OTQ1MywuODY3NSwuOTI0NSwuODY3NSwuOTI0NSwuODY3NSwuOTI0NSwuNzIzNDYsLjgzMjAzLC43MjM0NiwuODMyMDMsLjcyMzQ2LC44MzIwMywuNzIzNDYsLjgzMjAzLC44NTE5MywuODg3NSwuODY0NzcsLjk5MDM0LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuODExMDUsLjkyNDUsLjgxMTA1LC45MjQ1LC44MTEwNSwuOTI0NSwxLDEsLjg2Mjc1LC45MjQ1LC45MDg3MiwuOTM1OTEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwuODI2MDEsLjkwNjg1LDEuMDMyOTcsLjkwNjg1LC44MjYwMSwuNzc4OTYsMS4wNTYxMSwuNjM3NywxLjA3NjkyLDEsMSwuOTA5MTgsLjc1NTkzLDEuMDMyOTcsMSwxLC43NjAzMiwuOTM3NSwuOTgxNTYsLjkzNDA3LC43NzI2MSwxLjExNDI5LC44OTI0OSwuOTI0NSwxLDEsLjg5MjQ5LC45MjQ1LC45MjUzNCwuODY2OTgsLjkyNDUsLjg0MTE4LC45MjI3NCwuODQxMTgsLjkyMjc0LC44NDExOCwuOTIyNzQsLjg2NjcsLjg2MjkxLC43NTE4NiwxLjAyOTMzLDEsMSwuNzUxODYsMS4wMjkzMywuNjc3ODksLjc3ODMyLC42Nzc4OSwuNzc4MzIsLjY3Nzg5LC43NzgzMiwuNjc3ODksLjc3ODMyLDEsMSwuNzk3NzYsLjk3NjU1LC43OTc3NiwxLjIzMDIzLC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC45NDMwOSwuOTg5ODYsLjczMDYsLjg5NDUzLC43MzA2LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LDEuMDkyMzEsLjU0ODczLC44Njc1LC45MjQ1LC43NjMxOCwuODQ4NDMsLjg0NTU3LC44NjY1MSwxLDEsLjc5Nzc2LDEuMjA1NjIsMS4xODYyMiwxLjE4NjIyLDEsMS4xNDM3LC42NzAwOSwuOTYzMzQsLjkzNjk1LDEuMzUxOTEsMS40MDkwOSwuOTUxNjEsMS40ODM4NywuODY3NSwuOTA4NjEsLjYxOTIsLjczNjMsLjY0ODI0LC44MjQxMSwuNTYzMjEsLjg1Njk2LDEuMjM1MTYsLjg2NzUsLjgxNTUyLC43Mjg2LC44NDEzNCwuNzMyMDYsLjc2NjU5LC44NjI3NSwuODQzNjksLjkwNjg1LC43Nzg5MiwuODU4NzEsMS4wMjYzOCwuODkyNDksLjc1ODI4LC44NDExOCwuODU5ODQsLjc3NDUyLC43NjQ2NiwuNzk3NzYsLjczMDYsLjkwNzgyLC43NzgxOCwuOTAzLC44NzI5MSwuOTA2ODUsLjczMDYsLjk5MDU4LDEuMDM2NjcsLjk0NjM1LDEuMjM1MTYsLjk4NDksLjk5MDU4LC45MjM5MywuODkxNiwuOTQyLDEuMDM2NjcsLjc1MDI2LC45NDYzNSwxLjAyOTcsMS4yMzUxNiwuOTA5MTgsLjk0MDQ4LC45ODIxNywuODk3NDYsLjg0MTUzLC45MjI3NCwuODI1MDcsLjg4ODMyLC44NDQzOCwuODgxNzgsMS4wMzUyNSwuOTg0OSwxLjAwMjI1LC43ODA4NiwuOTcyNDgsLjg5NDA0LDEuMjM1MTYsLjk4NDksLjkyMjc0LC45ODQ5LC44OTQwNCwuNzMyMDYsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg5NjkzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NTg2NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA5MzMsMSwxLDEsMSwxLDEsLjk0MzA5LC45ODk4NiwuOTQzMDksLjk4OTg2LC45NDMwOSwuOTg5ODYsLjczMDYsLjg5NDUzLDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMTg2LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMTIzMDgsMS4yNTY2LDEuMjU2NiwxLjI1NjYsLjg5NTUyLC44OTU1MiwxLjQyMjU5LC42ODk5NCwxLjAzODA5LDEsMSwxLjAxNzYsMS4wMTc2LDEuMTE1MjMsMS40OTU2LDIuMDE0NjIsLjk3ODU4LC44MjYxNiwuOTExMzMsLjgzNDM3LC45MTEzMywxLDEsMSwuNzA1MDgsMSwxLjIzMTA4LC43OTgwMSwuODQ0MjYsLjg0NDI2LC43NzQsLjkwNTcyLDEuODEwNTUsLjkwNzQ5LDEuODEwNTUsMS4yODgwOSwxLjU1NDY5LC45NDQzNCwxLjA3ODA2LDEsLjk3MDk0LC43NTg5LC44NTI4NCwuOTA3NDcsMS4xOTY1OCwuNjk4MjUsLjk3NjIyLDEuMzM1MTIsLjkwNzQ3LC45MDc0NywuODUyODQsLjkwNzQ3LC45MDc0NywxLjQ0OTQ3LC44NTI4NCwuODk0MSwuODk0MSwuNzA1NzIsLjgsLjcwNTcyLC43MDU3MiwuNzA1NzIsLjcwNTcyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTk4NjIsLjk5ODYyLDEsMSwxLDEsMSwxLjAzMzYsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1ODU5LDEuMDU4NTksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEJuPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSxsbj1bMS4zODc3LDEsMSwxLDEuMTcyMjMsMS4xMjkzLC44OTU1MiwuOTExMzMsLjgwMzk1LDEuMDIyNjksMS4xNTYwMSwuOTEwNTYsLjkxMDU2LDEuMjc5OCwuODUyODQsLjg5ODA3LDEsLjkwODYxLDEuMzkwMTYsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45NjMwOSwuOTYzMDksLjg1Mjg0LC44NTI4NCwuODUyODQsLjgzMzE5LC44ODA3MSwuODY3NSwuODE1NTIsLjczODM0LC44NTE5MywuNzMyMDYsLjc1MjIsLjgxMTA1LC44NjI3NSwuOTA2ODUsLjYzNzcsLjc3ODkyLC43NTU5MywxLjAyNjM4LC44OTM4NSwuODUxMjIsLjc3NDUyLC44NjUwMywuNzUxODYsLjY4ODg3LC43OTc3NiwuODg4NDQsLjg1MDY2LC45NDI1OCwuNzc4MTgsLjczMDYsLjc2NjU5LDEuMTAzNjksMS4zOTAxNiwxLjEwMzY5LDEuMDYxMzksLjg5NTUyLC44NzM5LC44NjEyOCwuOTQ0NjksLjg0NTcsLjk0NDY5LC44OTQ2NCwxLjA5ODQyLC44NDYzNiwuOTQ0NjksMS4wMzI5NywxLjA3NjkyLC45MDkxOCwxLjAzMjk3LC45NTg5NywuOTQ0NjksLjk0ODIsLjk0NDY5LC45NDQ2OSwxLjA0NjkyLC43ODIyMywxLjIwNTYyLC45NDQ2OSwuOTAzMzIsLjk4OTg2LC44NjYyMSwuOTA1MjcsLjc5MDA0LC45NDE1MiwxLjc3MjU2LC45NDE1MiwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjkxNzI5LC44OTU1MiwxLjE3ODg5LDEuMTMyNTQsMS4wODcwNywuOTIwOTgsLjg1Mjg0LC42ODc4NywuNzEzNTMsLjg0NzM3LC45MDc0NywxLjAwODgsMS4wMDQ0LC44NzY4MywxLDEuMDkwOTEsMSwuOTIyMjksLjczOSwxLjE1NjQyLC45MjA5OCwuNzYyODgsLjgwNTA0LC44MDk3MiwuNzU4NTksLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjc2MzE4LC43MzgzNCwuNzMyMDYsLjczMjA2LC43MzIwNiwuNzMyMDYsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjkwNjg1LC44NjQ3NywuODkzODUsLjg1MTIyLC44NTEyMiwuODUxMjIsLjg1MTIyLC44NTEyMiwuODUyODQsLjg1MzExLC44ODg0NCwuODg4NDQsLjg4ODQ0LC44ODg0NCwuNzMwNiwuNzc0NTIsLjg2MzMxLC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjkzLC44NDU3LC44OTQ2NCwuODk0NjQsLjg5NDY0LC44OTQ2NCwuODI2MDEsLjgyNjAxLC44MjYwMSwuODI2MDEsLjk0NDY5LC45NDQ2OSwuOTQ4MiwuOTQ4MiwuOTQ4MiwuOTQ4MiwuOTQ4MiwuOTA3NDcsLjg2NjUxLC45NDQ2OSwuOTQ0NjksLjk0NDY5LC45NDQ2OSwuOTA1MjcsLjk0NDY5LC45MDUyNywuODY3NSwuODYxMjgsLjg2NzUsLjg2MTI4LC44Njc1LC44NjEyOCwuNzM4MzQsLjg0NTcsLjczODM0LC44NDU3LC43MzgzNCwuODQ1NywuNzM4MzQsLjg0NTcsLjg1MTkzLC45MjQ1NCwuODY0NzcsLjk5MjEsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC44MTEwNSwuODQ2MzYsLjgxMTA1LC44NDYzNiwuODExMDUsLjg0NjM2LDEsMSwuODYyNzUsLjk0NDY5LC45MDg3MiwuOTU3ODYsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwuODI2MDEsLjkwNjg1LDEuMDMyOTcsLjkwNjg1LC44MjYwMSwuNzc3NDEsMS4wNTYxMSwuNjM3NywxLjA3NjkyLDEsMSwuOTA5MTgsLjc1NTkzLDEuMDMyOTcsMSwxLC43NjAzMiwuOTA0NTIsLjk4MTU2LDEuMTE4NDIsLjc3MjYxLDEuMTE0MjksLjg5Mzg1LC45NDQ2OSwxLDEsLjg5Mzg1LC45NDQ2OSwuOTU4NzcsLjg2OTAxLC45NDQ2OSwuODUxMjIsLjk0ODIsLjg1MTIyLC45NDgyLC44NTEyMiwuOTQ4MiwuODY2NywuOTAwMTYsLjc1MTg2LDEuMDQ2OTIsMSwxLC43NTE4NiwxLjA0NjkyLC42ODg4NywuNzgyMjMsLjY4ODg3LC43ODIyMywuNjg4ODcsLjc4MjIzLC42ODg4NywuNzgyMjMsMSwxLC43OTc3NiwuOTIxODgsLjc5Nzc2LDEuMjMwMjMsLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjk0MjU4LC45ODk4NiwuNzMwNiwuOTA1MjcsLjczMDYsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LC43NjY1OSwuNzkwMDQsMS4wOTIzMSwuNTQ4NzMsLjg2NzUsLjg2MTI4LC43NjMxOCwuODY5MywuODUzMTEsLjg2NjUxLDEsMSwuNzk3NzYsMS4yMDU2MiwxLjE4NjIyLDEuMTg2MjIsMSwxLjE0MzcsLjY3NzQyLC45NjMzNCwuOTM2OTUsMS4zNTE5MSwxLjQwOTA5LC45NTE2MSwxLjQ4Mzg3LC44NjY4NiwuOTA4NjEsLjYyMjY3LC43NDM1OSwuNjU2NDksLjg1NDk4LC41Njk2MywuODgyNTQsMS4yMzUxNiwuODY3NSwuODE1NTIsLjc1NDQzLC44NDUwMywuNzMyMDYsLjc2NjU5LC44NjI3NSwuODUxMjIsLjkwNjg1LC43Nzg5MiwuODU3NDYsMS4wMjYzOCwuODkzODUsLjc1NjU3LC44NTEyMiwuODYyNzUsLjc3NDUyLC43NDE3MSwuNzk3NzYsLjczMDYsLjk1MTY1LC43NzgxOCwuODk3NzIsLjg4ODMxLC45MDY4NSwuNzMwNiwuOTgxNDIsMS4wMjE5MSwuOTY1NzYsMS4yMzUxNiwuOTkwMTgsLjk4MTQyLC45MjM2LC44OTI1OCwuOTQwMzUsMS4wMjE5MSwuNzg4NDgsLjk2NTc2LC45NTYxLDEuMjM1MTYsLjkwOTE4LC45MjU3OCwuOTU0MjQsLjg5NzQ2LC44Mzk2OSwuOTQ4MiwuODAxMTMsLjg5NDQyLC44NTIwOCwuODYxNTUsLjk4MDIyLC45OTAxOCwxLjAwNDUyLC44MTIwOSwuOTkyNDcsLjg5MTgxLDEuMjM1MTYsLjk5MDE4LC45NDgyLC45OTAxOCwuODkxODEsLjczMjA2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44ODg0NCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODk0NjQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk2NzY2LDEsMSwxLDEsMSwxLC45NDI1OCwuOTg5ODYsLjk0MjU4LC45ODk4NiwuOTQyNTgsLjk4OTg2LC43MzA2LC45MDUyNywxLDEsLjg5NTUyLC45MDUyNywxLC45MDE4NiwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMjU2NiwxLjI1NjYsMS4yNTY2LC44OTU1MiwuODk1NTIsMS40MjI1OSwuNjkwNDMsMS4wMzgwOSwxLDEsMS4wMTc2LDEuMDE3NiwxLjExNTIzLDEuNDk1NiwyLjAxNDYyLC45OTMzMSwuODI2MTYsLjkxMTMzLC44NDI4NiwuOTExMzMsMSwxLDEsLjcwNTA4LDEsMS4yMzEwOCwuNzk4MDEsLjg0NDI2LC44NDQyNiwuNzc0LC45MDUyNywxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMjg4MDksMS41NTQ2OSwuOTQ0MzQsMS4wNzgwNiwxLC45NzA5NCwuNzU4OSwuODUyODQsLjkwNzQ3LDEuMTk2NTgsLjY5ODI1LC45NzYyMiwxLjMzNTEyLC45MDc0NywuOTA3NDcsLjg1MzU2LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wMzM2LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTg1OSwxLjA1ODU5LDEsMSwxLDEuMDcxODUsLjk5NDEzLC45NjMzNCwxLjA4MDY1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sUW49e2xpbmVIZWlnaHQ6MS4yMjA3LGxpbmVHYXA6LjIyMDd9LEVuPVsuNzYxMTYsMSwxLDEuMDAwNiwuOTk5OTgsLjk5OTc0LC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3NywxLjAwMDg3LC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5OTgsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywxLjAwMDI2LC45OTk5LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LC45OTk3MywuOTk5NzcsMS4wMDAyNiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5OTgsMS4wMDA2LC45OTk5OCwxLjAwMDAzLC45OTk3MywuOTk5OTgsLjk5OTczLDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk5OCwxLjAwMDI2LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsMS4wMDA2LC45OTk4MiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk1OSwuOTk5NzMsLjk5OTk4LDEuMDAwMjYsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3MywxLC45OTk1OSwxLjAwMDc3LC45OTk1OSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA3NywuOTk5NzMsLjk5OTk4LDEuMDAwMjUsLjk5OTY4LC45OTk3MywxLjAwMDAzLDEuMDAwMjUsLjYwMjk5LDEuMDAwMjQsMS4wNjQwOSwxLDEsLjk5OTk4LDEsLjk5OTczLDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjA2NDA5LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsMS4wMDAyNiwuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsMS4wMzM3NCwuOTk5NzcsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNDIsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzMsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwxLjAzODI4LDEuMDAwMjYsLjk5OTk5LDEuMDAwMjYsMS4wMDA2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTkzLC45OTk4LDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMSwxLjAwMDE2LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwuOTk5NzcsLjk5OTU5LDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsLjk5OTk4LDEuMDAwMjYsLjgxMjEsMS4wMDAyNiwuOTk5OTgsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDA2LC45OTk3MywuOTk5NzcsLjk5OTczLDEsLjk5OTgyLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMS4wMDAzNCwuOTk5NzcsMSwuOTk5OTcsMS4wMDAyNiwxLjAwMDc4LDEuMDAwMzYsLjk5OTczLDEuMDAwMTMsMS4wMDA2LC45OTk3NywuOTk5NzcsLjk5OTg4LC44NTE0OCwxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjIsMS4wMDA2LC45OTk3NywxLjAwMDAxLC45OTk5OSwuOTk5NzcsMS4wMDA2OSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLC45OTk4NCwxLjAwMDI2LDEuMDAwMDEsMS4wMDAyNCwxLjAwMDAxLC45OTk5LDEsMS4wMDA2LDEuMDAwMDEsMS4wMDA0MSwuOTk5NjIsMS4wMDAyNiwxLjAwMDYsLjk5OTk1LDEuMDAwNDEsLjk5OTQyLC45OTk3MywuOTk5MjcsMS4wMDA4MiwuOTk5MDIsMS4wMDAyNiwxLjAwMDg3LDEuMDAwNiwxLjAwMDY5LC45OTk3MywuOTk4NjcsLjk5OTczLC45OTkzLDEuMDAwMjYsMS4wMDA0OSwxLjAwMDU2LDEsLjk5OTg4LC45OTkzNSwuOTk5OTUsLjk5OTU0LDEuMDAwNTUsLjk5OTQ1LDEuMDAwMzIsMS4wMDA2LC45OTk5NSwxLjAwMDI2LC45OTk5NSwxLjAwMDMyLDEuMDAwMDEsMS4wMDAwOCwuOTk5NzEsMS4wMDAxOSwuOTk5NCwxLjAwMDAxLDEuMDAwNiwxLjAwMDQ0LC45OTk3MywxLjAwMDIzLDEuMDAwNDcsMSwuOTk5NDIsLjk5NTYxLC45OTk4OSwxLjAwMDM1LC45OTk3NywxLjAwMDM1LC45OTk3NywxLjAwMDE5LC45OTk0NCwxLjAwMDAxLDEuMDAwMjEsLjk5OTI2LDEuMDAwMzUsMS4wMDAzNSwuOTk5NDIsMS4wMDA0OCwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAzNSwxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk4OSwxLjAwMDU3LDEuMDAwMDEsLjk5OTM2LDEuMDAwNTIsMS4wMDAxMiwuOTk5OTYsMS4wMDA0MywxLDEuMDAwMzUsLjk5OTQsLjk5OTc2LDEuMDAwMzUsLjk5OTczLDEuMDAwNTIsMS4wMDA0MSwxLjAwMTE5LDEuMDAwMzcsLjk5OTczLDEuMDAwMDIsLjk5OTg2LDEuMDAwNDEsMS4wMDA0MSwuOTk5MDIsLjk5OTYsMS4wMDAzNCwuOTk5OTksMS4wMDAyNiwuOTk5OTksMS4wMDAyNiwuOTk5NzMsMS4wMDA1MiwuOTk5NzMsMSwuOTk5NzMsMS4wMDA0MSwxLjAwMDc1LC45OTk0LDEuMDAwMywuOTk5OTksMSwxLjAwMDQxLC45OTk1NSwxLC45OTkxNSwuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDExOSwuOTk5NTUsLjk5OTczLDEuMDAwNiwuOTk5MTEsMS4wMDA2LDEuMDAwMjYsLjk5OTcyLDEuMDAwMjYsLjk5OTAyLDEuMDAwNDEsLjk5OTczLC45OTk5OSwxLDEsMS4wMDAzOCwxLjAwMDUsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAwMSwuOTk5NzMsMSwxLC45OTk3MywxLDEsLjk5OTU1LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLDEsMSwuOTk5NzMsLjk5OTczLC45OTk3MiwxLDEsMS4wMDEwNiwuOTk5OTksLjk5OTk4LC45OTk5OCwuOTk5OTksLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLC45OTk3MSwxLjAwMDQ3LDEuMDAwMjMsMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMSwxLDEsMSwxLDEsMSwuOTk5NzIsMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywxLjAwMDMxLDEuMDAwMTUsMSwuOTk1NjEsMS4wMDAyNywxLjAwMDMxLDEuMDAwMzEsLjk5OTE1LDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTcyLC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sdW49e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LGRuPVsuNzYxMTYsMSwxLDEuMDAwNiwuOTk5OTgsLjk5OTc0LC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3NywxLjAwMDg3LC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5OTgsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywxLjAwMDI2LC45OTk5LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LC45OTk3MywuOTk5NzcsMS4wMDAyNiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5OTgsMS4wMDA2LC45OTk5OCwxLjAwMDAzLC45OTk3MywuOTk5OTgsLjk5OTczLDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk5OCwxLjAwMDI2LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsMS4wMDA2LC45OTk4MiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk1OSwuOTk5NzMsLjk5OTk4LDEuMDAwMjYsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3MywxLC45OTk1OSwxLjAwMDc3LC45OTk1OSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA3NywuOTk5NzMsLjk5OTk4LDEuMDAwMjUsLjk5OTY4LC45OTk3MywxLjAwMDAzLDEuMDAwMjUsLjYwMjk5LDEuMDAwMjQsMS4wNjQwOSwxLDEsLjk5OTk4LDEsLjk5OTczLDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjA2NDA5LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsMS4wMDAyNiwuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsMS4wMDQ0LC45OTk3NywxLjAwMDI2LDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTcxLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3NywuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMTAxMSwxLjAwMDI2LC45OTk5OSwxLjAwMDI2LDEuMDAwNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5MywuOTk5OCwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEsMS4wMDAxNiwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwxLjAwMDI2LC44MTIxLDEuMDAwMjYsLjk5OTk4LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwNiwuOTk5NzMsLjk5OTc3LC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5NzcsMSwxLDEuMDAwMjYsLjk5OTY5LC45OTk3MiwuOTk5ODEsLjk5OTgsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwuOTExNTUsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwuOTk5NzcsMS4wMDAwMSwuOTk5OTksLjk5OTc3LC45OTk2NiwxLjAwMDIyLDEuMDAwMzIsMS4wMDAwMSwuOTk5NDQsMS4wMDAyNiwxLjAwMDAxLC45OTk2OCwxLjAwMDAxLDEuMDAwNDcsMSwxLjAwMDYsMS4wMDAwMSwuOTk5ODEsMS4wMDEwMSwxLjAwMDI2LDEuMDAwNiwuOTk5NDgsLjk5OTgxLDEuMDAwNjQsLjk5OTczLC45OTk0MiwxLjAwMTAxLDEuMDAwNjEsMS4wMDAyNiwxLjAwMDY5LDEuMDAwNiwxLjAwMDE0LC45OTk3MywxLjAxMzIyLC45OTk3MywxLjAwMDY1LDEuMDAwMjYsMS4wMDAxMiwuOTk5MjMsMSwxLjAwMDY0LDEuMDAwNzYsLjk5OTQ4LDEuMDAwNTUsMS4wMDA2MywxLjAwMDA3LC45OTk0MywxLjAwMDYsLjk5OTQ4LDEuMDAwMjYsLjk5OTQ4LC45OTk0MywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyOSwxLjAwMDM4LDEuMDAwMzUsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzgsMS4wMDAwMSwxLjAwMDU3LC45OTk4OSwuOTk5NjcsLjk5OTY0LC45OTk2NywuOTk5NzcsLjk5OTk5LC45OTk3NywxLjAwMDM4LC45OTk3NywxLjAwMDAxLC45OTk3MywxLjAwMDY2LC45OTk2NywuOTk5NjcsMS4wMDA0MSwuOTk5OTgsLjk5OTk5LC45OTk3NywxLjAwMDIyLC45OTk2NywxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk2NCwxLjAwMDMxLDEuMDAwMDEsLjk5OTk5LC45OTk5OSwxLDEuMDAwMjMsMSwxLC45OTk5OSwxLjAwMDM1LDEuMDAwMDEsLjk5OTk5LC45OTk3MywuOTk5NzcsLjk5OTk5LDEuMDAwNTgsLjk5OTczLC45OTk3MywuOTk5NTUsLjk5OTUsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMzIsLjk5OTg5LDEuMDAwMzQsLjk5OTk5LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MywuNDU5OTgsLjk5OTczLDEuMDAwMjYsLjk5OTczLDEuMDAwMDEsLjk5OTk5LC45OTk4MiwuOTk5OTQsLjk5OTk2LDEsMS4wMDA0MiwxLjAwMDQ0LDEuMDAwMjksMS4wMDAyMywuOTk5NzMsLjk5OTczLDEuMDAwMjYsLjk5OTQ5LDEuMDAwMDIsLjk5OTczLDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAzMiwuOTg2ODUsLjk5OTczLDEuMDAwMjYsMSwxLC45OTk2NiwxLjAwMDQ0LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMSwxLDEsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAxMDYsLjk5OTk5LC45OTk5OCwuOTk5OTgsLjk5OTk5LC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLC45OTk3MywuOTk5NzEsLjk5OTc4LDEsMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDA5OCwxLDEsMSwxLjAwMDQ5LDEsMSwuOTk5NzIsMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywxLjAwMDMxLDEuMDAwMTUsMSwuOTk1NjEsMS4wMDAyNywxLjAwMDMxLDEuMDAwMzEsLjk5OTE1LDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTcyLC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sZm49e2xpbmVIZWlnaHQ6MS4zNSxsaW5lR2FwOi4yfSxwbj1bLjc2MTE2LDEsMSwxLjAwMDYsMS4wMDA2LDEuMDAwMDYsLjk5OTczLC45OTk3MywuOTk5ODIsMS4wMDAwMSwxLjAwMDQzLC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywuOTk5NzMsLjk5OTg3LDEuMDAwMDEsMS4wMDAwMSwuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwxLjAwMDIyLC45OTk3NywxLjAwMDYsMSwxLjAwMDAxLC45OTk3MywuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NDksLjk5OTczLC45OTk5OCwuOTk5NzMsLjk5OTczLDEsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5MjQsLjk5OTI0LDEsLjk5OTI0LC45OTk5OSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDA2LC45OTk3MywxLC45OTk3NywxLDEsMSwxLjAwMDA1LDEuMDAwOSwxLjAwMDA1LDEuMDAwMDMsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDksLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk4LDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsMSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjA2NDA5LDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEsLjk5OTczLDEsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEuMDI4OCwuOTk5NzcsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTI0LDEuMDAwNiwxLjAwMDYsLjk5OTQ2LDEuMDAwMzQsMSwuOTk5MjQsMS4wMDAwMSwxLDEsLjk5OTczLC45OTkyNCwuOTk5NzMsLjk5OTI0LC45OTk3MywxLjA2MzExLC45OTk3MywxLjAwMDI0LC45OTk3MywuOTk5MjQsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA0MSwuOTk5OCwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMSwxLjAwMDE2LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwuOTk5NzcsLjk5OTk4LDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LC44OTU0NywxLjAwMDI2LDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwuOTk5MjQsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEsLjk5OTgyLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLjAwMDAxLDEsMS4wMDA1NCwuOTk5NzcsMS4wMDA4NCwxLjAwMDA3LC45OTk3MywxLjAwMDEzLC45OTkyNCwxLjAwMDAxLDEuMDAwMDEsLjk5OTQ1LC45MTIyMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjIsMS4wMDA2LDEuMDAwMDEsMS4wMDAwMSwuOTk5OTksLjk5OTc3LC45OTkzMywxLjAwMDIyLDEuMDAwNTQsMS4wMDAwMSwxLjAwMDY1LDEuMDAwMjYsMS4wMDAwMSwxLjAwMDEsMS4wMDAwMSwxLjAwMDUyLDEsMS4wMDA2LDEuMDAwMDEsLjk5OTQ1LC45OTg5NywuOTk5NjgsLjk5OTI0LDEuMDAwMzYsLjk5OTQ1LC45OTk0OSwxLDEuMDAwNiwuOTk4OTcsLjk5OTE4LC45OTk2OCwuOTk5MTEsLjk5OTI0LDEsLjk5OTYyLDEuMDE0ODcsMSwxLjAwMDUsLjk5OTczLDEuMDAwMTIsMS4wMDA0MywxLC45OTk5NSwuOTk5OTQsMS4wMDAzNiwuOTk5NDcsMS4wMDAxOSwxLjAwMDYzLDEuMDAwMjUsLjk5OTI0LDEuMDAwMzYsLjk5OTczLDEuMDAwMzYsMS4wMDAyNSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNywxLjAwMDEsMS4wMDA2OCwxLjAwMDAxLDEuMDAwNiwxLjAwMDYsMSwxLjAwMDA4LC45OTk1NywuOTk5NzIsLjk5OTQsLjk5OTU0LC45OTk3NSwxLjAwMDUxLDEuMDAwMDEsMS4wMDAxOSwxLjAwMDAxLDEuMDAwMSwuOTk5ODYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMzgsLjk5OTU0LC45OTk1NCwuOTk5NCwxLjAwMDY2LC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDU0LDEuMDAwMDEsLjk5OTc3LDEuMDAwMjYsLjk5OTc1LDEuMDAwMSwxLjAwMDAxLC45OTk5MywuOTk5NSwuOTk5NTUsMS4wMDAxNiwuOTk5NzgsLjk5OTc0LDEuMDAwMTksMS4wMDAyMiwuOTk5NTUsMS4wMDA1MywuOTk5NzMsMS4wMDA4OSwxLjAwMDA1LC45OTk2NywxLjAwMDQ4LC45OTk3MywxLjAwMDAyLDEuMDAwMzQsLjk5OTczLC45OTk3MywuOTk5NjQsMS4wMDAwNiwxLjAwMDY2LC45OTk0NywuOTk5NzMsLjk4ODk0LC45OTk3MywxLC40NDg5OCwxLC45OTk0NiwxLDEuMDAwMzksMS4wMDA4MiwuOTk5OTEsLjk5OTkxLC45OTk4NSwxLjAwMDIyLDEuMDAwMjMsMS4wMDA2MSwxLjAwMDA2LC45OTk2NiwuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDE5LDEuMDAwOCwxLC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk4MywxLjAwMDQ0LC45OTk3MywuOTk5NjQsLjk4MzMyLDEsLjk5OTczLDEsMSwuOTk5NjIsLjk5ODk1LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMDEsMSwxLDEsLjk5OTczLDEsMSwuOTk5NTUsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMjY3LC45OTk5OSwuOTk5OTgsLjk5OTk4LDEsLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLDEuMDA0MjMsLjk5OTI1LC45OTk5OSwxLC45OTk5MSwuOTk5ODQsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDQ5LDEsMS4wMDI0NSwxLDEsMSwxLC45NjMyOSwxLDEuMjA5ODUsMS4zOTcxMywxLjAwMDAzLC44MjU0LDEuMDAwMTUsMSwxLjAwMDM1LDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDMxLC45OTk5OSwxLjAwMDAzLC45OTk5OSwuOTk5OTksMS40MTE0NCwxLjYsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQwNTc5LDEuNDA1NzksMS4zNjYyNSwuOTk5OTksMSwuOTk4NjEsLjk5ODYxLDEsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTUzMTcsLjk5OTk5LC45OTk5OSwuOTk5OTksLjk5OTk5LDEuNDA0ODMsMSwuOTk5NzcsMS4wMDA1NCwxLDEsLjk5OTUzLC45OTk2MiwxLjAwMDQyLC45OTk1LDEsMSwxLDEsMSwxLDEsMSwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxtbj17bGluZUhlaWdodDoxLjM1LGxpbmVHYXA6LjJ9LHluPVsuNzYxMTYsMSwxLDEuMDAwNiwxLjAwMDYsMS4wMDAwNiwuOTk5NzMsLjk5OTczLC45OTk4MiwxLjAwMDAxLDEuMDAwNDMsLjk5OTk4LC45OTk5OCwuOTk5NTksMS4wMDAwMywxLjAwMDYsLjk5OTk4LDEuMDAwNiwxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNiwxLDEuMDAwMDMsMS4wMDAwMywxLjAwMDAzLC45OTk3MywuOTk5ODcsMS4wMDAwMSwxLjAwMDAxLC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwxLDEuMDAwMDEsLjk5OTczLC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDAxLDEuMDAwMjIsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwuOTk5NzcsMS4wMDAwMSwxLjAwMDE2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk0OSwuOTk5NzMsLjk5OTk4LC45OTk3MywuOTk5NzMsMSwuOTk5NzMsLjk5OTczLDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTkyNCwuOTk5MjQsMSwuOTk5MjQsLjk5OTk5LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5OTgsMSwxLjAwMDYsLjk5OTczLDEsLjk5OTc3LDEsMSwxLDEuMDAwMDUsMS4wMDA5LDEuMDAwMDUsMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwOSwuOTk5NzMsLjk5OTk4LDEuMDAwMjUsLjk5OTY4LC45OTk3MywxLjAwMDAzLDEuMDAwMjUsLjYwMjk5LDEuMDAwMjQsMS4wNjQwOSwxLDEsLjk5OTk4LDEsLjk5OTgsMS4wMDA2LC45OTk5OCwxLC45OTkzNiwuOTk5NzMsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzcsLjk5OTc3LDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDAzLDEuMDAwMjIsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDI2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk4MiwxLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDY0MDksMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMSwuOTk5NzMsMSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywuOTk5NzcsMSwuOTk5NzcsMSwuOTk5NzcsMSwuOTk5NzcsMSwuOTk5NzcsMS4wNDU5NiwuOTk5NzcsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTI0LDEuMDAwNiwxLjAwMDYsMS4wMDAxOSwxLjAwMDM0LDEsLjk5OTI0LDEuMDAwMDEsMSwxLC45OTk3MywuOTk5MjQsLjk5OTczLC45OTkyNCwuOTk5NzMsMS4wMjU3MiwuOTk5NzMsMS4wMDAwNSwuOTk5NzMsLjk5OTI0LC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk5OSwuOTk5OCwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMSwxLjAwMDE2LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwuOTk5NzcsLjk5OTk4LDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LC44NDUzMywxLjAwMDI2LDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwuOTk5MjQsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEsLjk5OTgyLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5MjgsMSwuOTk5NzcsMS4wMDAxMywxLjAwMDU1LC45OTk0NywuOTk5NDUsLjk5OTQxLC45OTkyNCwxLjAwMDAxLDEuMDAwMDEsMS4wMDA0LC45MTYyMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjIsMS4wMDA2LDEuMDAwMDEsMS4wMDAwNSwuOTk5OTksLjk5OTc3LDEuMDAwMTUsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMTksMS4wMDAwMSwuOTk5NDYsMSwxLjAwMDYsMS4wMDAwMSwuOTk5NzgsMS4wMDA0NSwuOTk5NzMsLjk5OTI0LDEuMDAwMjMsLjk5OTc4LC45OTk2NiwxLDEuMDAwNjUsMS4wMDA0NSwxLjAwMDE5LC45OTk3MywuOTk5NzMsLjk5OTI0LDEsMSwuOTY0OTksMSwxLjAwMDU1LC45OTk3MywxLjAwMDA4LDEuMDAwMjcsMSwuOTk5NywuOTk5OTUsMS4wMDAyMywuOTk5MzMsMS4wMDAxOSwxLjAwMDE1LDEuMDAwMzEsLjk5OTI0LDEuMDAwMjMsLjk5OTczLDEuMDAwMjMsMS4wMDAzMSwxLjAwMDAxLC45OTkyOCwxLjAwMDI5LDEuMDAwOTIsMS4wMDAzNSwxLjAwMDAxLDEuMDAwNiwxLjAwMDYsMSwuOTk5ODgsLjk5OTc1LDEsMS4wMDA4MiwuOTk1NjEsLjk5OTYsMS4wMDAzNSwxLjAwMDAxLC45OTk2MiwxLjAwMDAxLDEuMDAwOTIsLjk5OTY0LDEuMDAwMDEsLjk5OTYzLC45OTk5OSwxLjAwMDM1LDEuMDAwMzUsMS4wMDA4MiwuOTk5NjIsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMzUsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5NiwuOTk5NjcsMS4wMDAwMSwxLjAwMDM0LDEuMDAwNzQsMS4wMDA1NCwxLjAwMDUzLDEuMDAwNjMsLjk5OTcxLC45OTk2MiwxLjAwMDM1LC45OTk3NSwuOTk5NzcsLjk5OTczLDEuMDAwNDMsLjk5OTUzLDEuMDAwNywuOTk5MTUsLjk5OTczLDEuMDAwMDgsLjk5ODkyLDEuMDAwNzMsMS4wMDA3MywxLjAwMTE0LC45OTkxNSwxLjAwMDczLC45OTk1NSwuOTk5NzMsMS4wMDA5MiwuOTk5NzMsMSwuOTk5OTgsMSwxLjAwMDMsMSwxLjAwMDQzLDEuMDAwMDEsLjk5OTY5LDEuMDAwMywxLDEuMDAwMzUsMS4wMDAwMSwuOTk5NSwxLDEuMDAwOTIsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA3LC45OTk1LDEsLjk5OTI0LDEuMDAwNiwuOTk5MjQsLjk5OTcyLDEuMDAwNjIsLjk5OTczLDEuMDAxMTQsMS4wMDA3MywxLC45OTk1NSwxLDEsMS4wMDA0NywuOTk5NjgsMS4wMDAxNiwuOTk5NzcsMS4wMDAxNiwuOTk5NzcsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAyNjcsLjk5OTk5LC45OTk5OCwuOTk5OTgsMSwuOTk5OTgsMS42NjQ3NSwxLC45OTk3MywuOTk5NzMsMS4wMDAyMywuOTk5NzMsLjk5OTcxLC45OTkyNSwxLjAwMDIzLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEsMSwxLDEsMSwxLDEsLjk2MzI5LDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsLjgyNTQsMS4wMDAxNSwxLDEuMDAwMzUsMS4wMDAyNywxLjAwMDMxLDEuMDAwMzEsLjk5OTE1LDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk1MzE3LC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHduPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxEbj1bMzY1LDAsMzMzLDI3OCwzMzMsNDc0LDU1Niw1NTYsODg5LDcyMiwyMzgsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMzMzLDMzMyw1ODQsNTg0LDU4NCw2MTEsOTc1LDcyMiw3MjIsNzIyLDcyMiw2NjcsNjExLDc3OCw3MjIsMjc4LDU1Niw3MjIsNjExLDgzMyw3MjIsNzc4LDY2Nyw3NzgsNzIyLDY2Nyw2MTEsNzIyLDY2Nyw5NDQsNjY3LDY2Nyw2MTEsMzMzLDI3OCwzMzMsNTg0LDU1NiwzMzMsNTU2LDYxMSw1NTYsNjExLDU1NiwzMzMsNjExLDYxMSwyNzgsMjc4LDU1NiwyNzgsODg5LDYxMSw2MTEsNjExLDYxMSwzODksNTU2LDMzMyw2MTEsNTU2LDc3OCw1NTYsNTU2LDUwMCwzODksMjgwLDM4OSw1ODQsMzMzLDU1Niw1NTYsNTU2LDU1NiwyODAsNTU2LDMzMyw3MzcsMzcwLDU1Niw1ODQsNzM3LDU1Miw0MDAsNTQ5LDMzMywzMzMsMzMzLDU3Niw1NTYsMjc4LDMzMywzMzMsMzY1LDU1Niw4MzQsODM0LDgzNCw2MTEsNzIyLDcyMiw3MjIsNzIyLDcyMiw3MjIsMWUzLDcyMiw2NjcsNjY3LDY2Nyw2NjcsMjc4LDI3OCwyNzgsMjc4LDcyMiw3MjIsNzc4LDc3OCw3NzgsNzc4LDc3OCw1ODQsNzc4LDcyMiw3MjIsNzIyLDcyMiw2NjcsNjY3LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw4ODksNTU2LDU1Niw1NTYsNTU2LDU1NiwyNzgsMjc4LDI3OCwyNzgsNjExLDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDU0OSw2MTEsNjExLDYxMSw2MTEsNjExLDU1Niw2MTEsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDcxOSw3MjIsNjExLDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDcyMiw2MTEsNzIyLDYxMSwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsNzg1LDU1Niw1NTYsMjc4LDcyMiw1NTYsNTU2LDYxMSwyNzgsNjExLDI3OCw2MTEsMzg1LDYxMSw0NzksNjExLDI3OCw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MDgsNzIzLDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSwxZTMsOTQ0LDcyMiwzODksNzIyLDM4OSw3MjIsMzg5LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjExLDMzMyw2MTEsNDc5LDYxMSwzMzMsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsOTQ0LDc3OCw2NjcsNTU2LDY2Nyw2MTEsNTAwLDYxMSw1MDAsNjExLDUwMCwyNzgsNTU2LDcyMiw1NTYsMWUzLDg4OSw3NzgsNjExLDY2Nyw1NTYsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNDY1LDcyMiwzMzMsODUzLDkwNiw0NzQsODI1LDkyNyw4MzgsMjc4LDcyMiw3MjIsNjAxLDcxOSw2NjcsNjExLDcyMiw3NzgsMjc4LDcyMiw2NjcsODMzLDcyMiw2NDQsNzc4LDcyMiw2NjcsNjAwLDYxMSw2NjcsODIxLDY2Nyw4MDksODAyLDI3OCw2NjcsNjE1LDQ1MSw2MTEsMjc4LDU4Miw2MTUsNjEwLDU1Niw2MDYsNDc1LDQ2MCw2MTEsNTQxLDI3OCw1NTgsNTU2LDYxMiw1NTYsNDQ1LDYxMSw3NjYsNjE5LDUyMCw2ODQsNDQ2LDU4Miw3MTUsNTc2LDc1Myw4NDUsMjc4LDU4Miw2MTEsNTgyLDg0NSw2NjcsNjY5LDg4NSw1NjcsNzExLDY2NywyNzgsMjc2LDU1NiwxMDk0LDEwNjIsODc1LDYxMCw3MjIsNjIyLDcxOSw3MjIsNzE5LDcyMiw1NjcsNzEyLDY2Nyw5MDQsNjI2LDcxOSw3MTksNjEwLDcwMiw4MzMsNzIyLDc3OCw3MTksNjY3LDcyMiw2MTEsNjIyLDg1NCw2NjcsNzMwLDcwMywxMDA1LDEwMTksODcwLDk3OSw3MTksNzExLDEwMzEsNzE5LDU1Niw2MTgsNjE1LDQxNyw2MzUsNTU2LDcwOSw0OTcsNjE1LDYxNSw1MDAsNjM1LDc0MCw2MDQsNjExLDYwNCw2MTEsNTU2LDQ5MCw1NTYsODc1LDU1Niw2MTUsNTgxLDgzMyw4NDQsNzI5LDg1NCw2MTUsNTUyLDg1NCw1ODMsNTU2LDU1Niw2MTEsNDE3LDU1Miw1NTYsMjc4LDI4MSwyNzgsOTY5LDkwNiw2MTEsNTAwLDYxNSw1NTYsNjA0LDc3OCw2MTEsNDg3LDQ0Nyw5NDQsNzc4LDk0NCw3NzgsOTQ0LDc3OCw2NjcsNTU2LDMzMywzMzMsNTU2LDFlMywxZTMsNTUyLDI3OCwyNzgsMjc4LDI3OCw1MDAsNTAwLDUwMCw1NTYsNTU2LDM1MCwxZTMsMWUzLDI0MCw0NzksMzMzLDMzMyw2MDQsMzMzLDE2NywzOTYsNTU2LDU1NiwxMDk0LDU1Niw4ODUsNDg5LDExMTUsMWUzLDc2OCw2MDAsODM0LDgzNCw4MzQsODM0LDFlMyw1MDAsMWUzLDUwMCwxZTMsNTAwLDUwMCw0OTQsNjEyLDgyMyw3MTMsNTg0LDU0OSw3MTMsOTc5LDcyMiwyNzQsNTQ5LDU0OSw1ODMsNTQ5LDU0OSw2MDQsNTg0LDYwNCw2MDQsNzA4LDYyNSw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MjksNjA0LDYwNCwzNTQsMzU0LDFlMyw5OTAsOTkwLDk5MCw5OTAsNDk0LDYwNCw2MDQsNjA0LDYwNCwzNTQsMTAyMSwxMDUyLDkxNyw3NTAsNzUwLDUzMSw2NTYsNTk0LDUxMCw1MDAsNzUwLDc1MCw2MTEsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMjIyLDIyMiwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzXSxibj1bLTEsLTEsLTEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDI1NiwyNTcsMjU4LDI1OSwyNjAsMjYxLDI2MiwyNjMsMjY0LDI2NSwyNjYsMjY3LDI2OCwyNjksMjcwLDI3MSwyNzIsMjczLDI3NCwyNzUsMjc2LDI3NywyNzgsMjc5LDI4MCwyODEsMjgyLDI4MywyODQsMjg1LDI4NiwyODcsMjg4LDI4OSwyOTAsMjkxLDI5MiwyOTMsMjk0LDI5NSwyOTYsMjk3LDI5OCwyOTksMzAwLDMwMSwzMDIsMzAzLDMwNCwzMDUsMzA2LDMwNywzMDgsMzA5LDMxMCwzMTEsMzEyLDMxMywzMTQsMzE1LDMxNiwzMTcsMzE4LDMxOSwzMjAsMzIxLDMyMiwzMjMsMzI0LDMyNSwzMjYsMzI3LDMyOCwzMjksMzMwLDMzMSwzMzIsMzMzLDMzNCwzMzUsMzM2LDMzNywzMzgsMzM5LDM0MCwzNDEsMzQyLDM0MywzNDQsMzQ1LDM0NiwzNDcsMzQ4LDM0OSwzNTAsMzUxLDM1MiwzNTMsMzU0LDM1NSwzNTYsMzU3LDM1OCwzNTksMzYwLDM2MSwzNjIsMzYzLDM2NCwzNjUsMzY2LDM2NywzNjgsMzY5LDM3MCwzNzEsMzcyLDM3MywzNzQsMzc1LDM3NiwzNzcsMzc4LDM3OSwzODAsMzgxLDM4MiwzODMsNDAyLDUwNiw1MDcsNTA4LDUwOSw1MTAsNTExLDUzNiw1MzcsNTM4LDUzOSw3MTAsNzExLDcxMyw3MjgsNzI5LDczMCw3MzEsNzMyLDczMyw5MDAsOTAxLDkwMiw5MDMsOTA0LDkwNSw5MDYsOTA4LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5NzIsOTczLDk3NCwxMDI0LDEwMjUsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEwMzcsMTAzOCwxMDM5LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsMTEwNCwxMTA1LDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTExLDExMTIsMTExMywxMTE0LDExMTUsMTExNiwxMTE3LDExMTgsMTExOSwxMTM4LDExMzksMTE2OCwxMTY5LDc4MDgsNzgwOSw3ODEwLDc4MTEsNzgxMiw3ODEzLDc5MjIsNzkyMyw4MjA4LDgyMDksODIxMSw4MjEyLDgyMTMsODIxNSw4MjE2LDgyMTcsODIxOCw4MjE5LDgyMjAsODIyMSw4MjIyLDgyMjQsODIyNSw4MjI2LDgyMzAsODI0MCw4MjQyLDgyNDMsODI0OSw4MjUwLDgyNTIsODI1NCw4MjYwLDgzMTksODM1NSw4MzU2LDgzNTksODM2NCw4NDUzLDg0NjcsODQ3MCw4NDgyLDg0ODYsODQ5NCw4NTM5LDg1NDAsODU0MSw4NTQyLDg1OTIsODU5Myw4NTk0LDg1OTUsODU5Niw4NTk3LDg2MTYsODcwNiw4NzEwLDg3MTksODcyMSw4NzIyLDg3MzAsODczNCw4NzM1LDg3NDUsODc0Nyw4Nzc2LDg4MDAsODgwMSw4ODA0LDg4MDUsODk2Miw4OTc2LDg5OTIsODk5Myw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw5NjMyLDk2MzMsOTY0Miw5NjQzLDk2NDQsOTY1MCw5NjU4LDk2NjAsOTY2OCw5Njc0LDk2NzUsOTY3OSw5Njg4LDk2ODksOTcwMiw5Nzg2LDk3ODcsOTc4OCw5NzkyLDk3OTQsOTgyNCw5ODI3LDk4MjksOTgzMCw5ODM0LDk4MzUsOTgzNiw2MTQ0MSw2MTQ0Miw2MTQ0NSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMV0sa249WzM2NSwwLDMzMywyNzgsMzMzLDQ3NCw1NTYsNTU2LDg4OSw3MjIsMjM4LDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDMzMywzMzMsNTg0LDU4NCw1ODQsNjExLDk3NSw3MjIsNzIyLDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1NTYsNzIyLDYxMSw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDMzMywyNzgsMzMzLDU4NCw1NTYsMzMzLDU1Niw2MTEsNTU2LDYxMSw1NTYsMzMzLDYxMSw2MTEsMjc4LDI3OCw1NTYsMjc4LDg4OSw2MTEsNjExLDYxMSw2MTEsMzg5LDU1NiwzMzMsNjExLDU1Niw3NzgsNTU2LDU1Niw1MDAsMzg5LDI4MCwzODksNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjgwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTU2LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDcyMiw3MjIsNzIyLDcyMiw3MjIsNzIyLDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw1NDksNjExLDYxMSw2MTEsNjExLDYxMSw1NTYsNjExLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw3NDAsNzIyLDYxMSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3MjIsNjExLDcyMiw2MTEsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDc4Miw1NTYsNTU2LDI3OCw3MjIsNTU2LDU1Niw2MTEsMjc4LDYxMSwyNzgsNjExLDM5Niw2MTEsNDc5LDYxMSwyNzgsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzA4LDcyMyw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsMWUzLDk0NCw3MjIsMzg5LDcyMiwzODksNzIyLDM4OSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDYxMSwzMzMsNjExLDQ3OSw2MTEsMzMzLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDk0NCw3NzgsNjY3LDU1Niw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjc4LDU1Niw3MjIsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTU2LDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw3MjIsMzMzLDg1NCw5MDYsNDczLDg0NCw5MzAsODQ3LDI3OCw3MjIsNzIyLDYxMCw2NzEsNjY3LDYxMSw3MjIsNzc4LDI3OCw3MjIsNjY3LDgzMyw3MjIsNjU3LDc3OCw3MTgsNjY3LDU5MCw2MTEsNjY3LDgyMiw2NjcsODI5LDc4MSwyNzgsNjY3LDYyMCw0NzksNjExLDI3OCw1OTEsNjIwLDYyMSw1NTYsNjEwLDQ3OSw0OTIsNjExLDU1OCwyNzgsNTY2LDU1Niw2MDMsNTU2LDQ1MCw2MTEsNzEyLDYwNSw1MzIsNjY0LDQwOSw1OTEsNzA0LDU3OCw3NzMsODM0LDI3OCw1OTEsNjExLDU5MSw4MzQsNjY3LDY2Nyw4ODYsNjE0LDcxOSw2NjcsMjc4LDI3OCw1NTYsMTA5NCwxMDQyLDg1NCw2MjIsNzE5LDY3Nyw3MTksNzIyLDcwOCw3MjIsNjE0LDcyMiw2NjcsOTI3LDY0Myw3MTksNzE5LDYxNSw2ODcsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDY3Nyw3ODEsNjY3LDcyOSw3MDgsOTc5LDk4OSw4NTQsMWUzLDcwOCw3MTksMTA0Miw3MjksNTU2LDYxOSw2MDQsNTM0LDYxOCw1NTYsNzM2LDUxMCw2MTEsNjExLDUwNyw2MjIsNzQwLDYwNCw2MTEsNjExLDYxMSw1NTYsODg5LDU1Niw4ODUsNTU2LDY0Niw1ODMsODg5LDkzNSw3MDcsODU0LDU5NCw1NTIsODY1LDU4OSw1NTYsNTU2LDYxMSw0NjksNTYzLDU1NiwyNzgsMjc4LDI3OCw5NjksOTA2LDYxMSw1MDcsNjE5LDU1Niw2MTEsNzc4LDYxMSw1NzUsNDY3LDk0NCw3NzgsOTQ0LDc3OCw5NDQsNzc4LDY2Nyw1NTYsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjc4LDI3OCwyNzgsMjc4LDUwMCw1MDAsNTAwLDU1Niw1NTYsMzUwLDFlMywxZTMsMjQwLDQ3OSwzMzMsMzMzLDYwNCwzMzMsMTY3LDM5Niw1NTYsNTU2LDExMDQsNTU2LDg4NSw1MTYsMTE0NiwxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsOTk5LDUwMCwxZTMsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzIyLDI3NCw1NDksNTQ5LDU4Myw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDYxMSw2MTEsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzNdLEZuPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxTbj1bMzY1LDAsMzMzLDI3OCwyNzgsMzU1LDU1Niw1NTYsODg5LDY2NywxOTEsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCw1ODQsNTg0LDU4NCw1NTYsMTAxNSw2NjcsNjY3LDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1MDAsNjY3LDU1Niw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDI3OCwyNzgsMjc4LDQ2OSw1NTYsMzMzLDU1Niw1NTYsNTAwLDU1Niw1NTYsMjc4LDU1Niw1NTYsMjIyLDIyMiw1MDAsMjIyLDgzMyw1NTYsNTU2LDU1Niw1NTYsMzMzLDUwMCwyNzgsNTU2LDUwMCw3MjIsNTAwLDUwMCw1MDAsMzM0LDI2MCwzMzQsNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjYwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTM3LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDY2Nyw2NjcsNjY3LDY2Nyw2NjcsNjY3LDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDUwMCw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NDksNjExLDU1Niw1NTYsNTU2LDU1Niw1MDAsNTU2LDUwMCw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw2MjUsNzIyLDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3MjIsNTU2LDcyMiw1NTYsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDIyMiwyNzgsMjc4LDczMyw0NDQsNTAwLDIyMiw2NjcsNTAwLDUwMCw1NTYsMjIyLDU1NiwyMjIsNTU2LDI4MSw1NTYsNDAwLDU1NiwyMjIsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNjE1LDcyMyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsMWUzLDk0NCw3MjIsMzMzLDcyMiwzMzMsNzIyLDMzMyw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDYxMSwyNzgsNjExLDM1NCw2MTEsMjc4LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDk0NCw3MjIsNjY3LDUwMCw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjIyLDU1Niw2NjcsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTAwLDYxMSwyNzgsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw2NjcsMjc4LDc4OSw4NDYsMzg5LDc5NCw4NjUsNzc1LDIyMiw2NjcsNjY3LDU3MCw2NzEsNjY3LDYxMSw3MjIsNzc4LDI3OCw2NjcsNjY3LDgzMyw3MjIsNjQ4LDc3OCw3MjUsNjY3LDYwMCw2MTEsNjY3LDgzNyw2NjcsODMxLDc2MSwyNzgsNjY3LDU3MCw0MzksNTU1LDIyMiw1NTAsNTcwLDU3MSw1MDAsNTU2LDQzOSw0NjMsNTU1LDU0MiwyMjIsNTAwLDQ5Miw1NDgsNTAwLDQ0Nyw1NTYsNjcwLDU3Myw0ODYsNjAzLDM3NCw1NTAsNjUyLDU0Niw3MjgsNzc5LDIyMiw1NTAsNTU2LDU1MCw3NzksNjY3LDY2Nyw4NDMsNTQ0LDcwOCw2NjcsMjc4LDI3OCw1MDAsMTA2Niw5ODIsODQ0LDU4OSw3MTUsNjM5LDcyNCw2NjcsNjUxLDY2Nyw1NDQsNzA0LDY2Nyw5MTcsNjE0LDcxNSw3MTUsNTg5LDY4Niw4MzMsNzIyLDc3OCw3MjUsNjY3LDcyMiw2MTEsNjM5LDc5NSw2NjcsNzI3LDY3Myw5MjAsOTIzLDgwNSw4ODYsNjUxLDY5NCwxMDIyLDY4Miw1NTYsNTYyLDUyMiw0OTMsNTUzLDU1Niw2ODgsNDY1LDU1Niw1NTYsNDcyLDU2NCw2ODYsNTUwLDU1Niw1NTYsNTU2LDUwMCw4MzMsNTAwLDgzNSw1MDAsNTcyLDUxOCw4MzAsODUxLDYyMSw3MzYsNTI2LDQ5Miw3NTIsNTM0LDU1Niw1NTYsNTU2LDM3OCw0OTYsNTAwLDIyMiwyMjIsMjIyLDkxMCw4MjgsNTU2LDQ3Miw1NjUsNTAwLDU1Niw3NzgsNTU2LDQ5MiwzMzksOTQ0LDcyMiw5NDQsNzIyLDk0NCw3MjIsNjY3LDUwMCwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyMjIsMjIyLDIyMiwyMjIsMzMzLDMzMywzMzMsNTU2LDU1NiwzNTAsMWUzLDFlMywxODgsMzU0LDMzMywzMzMsNTAwLDMzMywxNjcsMzY1LDU1Niw1NTYsMTA5NCw1NTYsODg1LDMyMywxMDgzLDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDk5OCw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MTksMjc0LDU0OSw1NDksNTg0LDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNTAwLDUwMCwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMjk0LDI5NCwzMjQsMzI0LDMxNiwzMjgsMzk4LDI4NV0sUm49Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLEduPVszNjUsMCwzMzMsMjc4LDI3OCwzNTUsNTU2LDU1Niw4ODksNjY3LDE5MSwzMzMsMzMzLDM4OSw1ODQsMjc4LDMzMywyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1NiwyNzgsMjc4LDU4NCw1ODQsNTg0LDU1NiwxMDE1LDY2Nyw2NjcsNzIyLDcyMiw2NjcsNjExLDc3OCw3MjIsMjc4LDUwMCw2NjcsNTU2LDgzMyw3MjIsNzc4LDY2Nyw3NzgsNzIyLDY2Nyw2MTEsNzIyLDY2Nyw5NDQsNjY3LDY2Nyw2MTEsMjc4LDI3OCwyNzgsNDY5LDU1NiwzMzMsNTU2LDU1Niw1MDAsNTU2LDU1NiwyNzgsNTU2LDU1NiwyMjIsMjIyLDUwMCwyMjIsODMzLDU1Niw1NTYsNTU2LDU1NiwzMzMsNTAwLDI3OCw1NTYsNTAwLDcyMiw1MDAsNTAwLDUwMCwzMzQsMjYwLDMzNCw1ODQsMzMzLDU1Niw1NTYsNTU2LDU1NiwyNjAsNTU2LDMzMyw3MzcsMzcwLDU1Niw1ODQsNzM3LDU1Miw0MDAsNTQ5LDMzMywzMzMsMzMzLDU3Niw1MzcsMjc4LDMzMywzMzMsMzY1LDU1Niw4MzQsODM0LDgzNCw2MTEsNjY3LDY2Nyw2NjcsNjY3LDY2Nyw2NjcsMWUzLDcyMiw2NjcsNjY3LDY2Nyw2NjcsMjc4LDI3OCwyNzgsMjc4LDcyMiw3MjIsNzc4LDc3OCw3NzgsNzc4LDc3OCw1ODQsNzc4LDcyMiw3MjIsNzIyLDcyMiw2NjcsNjY3LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw4ODksNTAwLDU1Niw1NTYsNTU2LDU1NiwyNzgsMjc4LDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU0OSw2MTEsNTU2LDU1Niw1NTYsNTU2LDUwMCw1NTYsNTAwLDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw1MDAsNzIyLDYxNSw3MjIsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDcyMiw1NTYsNzIyLDU1NiwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjIyLDI3OCwyNzgsNzM1LDQ0NCw1MDAsMjIyLDY2Nyw1MDAsNTAwLDU1NiwyMjIsNTU2LDIyMiw1NTYsMjkyLDU1NiwzMzQsNTU2LDIyMiw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw2MDQsNzIzLDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1NiwxZTMsOTQ0LDcyMiwzMzMsNzIyLDMzMyw3MjIsMzMzLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDY2Nyw1MDAsNjExLDI3OCw2MTEsMzc1LDYxMSwyNzgsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsOTQ0LDcyMiw2NjcsNTAwLDY2Nyw2MTEsNTAwLDYxMSw1MDAsNjExLDUwMCwyMjIsNTU2LDY2Nyw1NTYsMWUzLDg4OSw3NzgsNjExLDY2Nyw1MDAsNjExLDI3OCwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDY2NywyNzgsNzg0LDgzOCwzODQsNzc0LDg1NSw3NTIsMjIyLDY2Nyw2NjcsNTUxLDY2OCw2NjcsNjExLDcyMiw3NzgsMjc4LDY2Nyw2NjgsODMzLDcyMiw2NTAsNzc4LDcyMiw2NjcsNjE4LDYxMSw2NjcsNzk4LDY2Nyw4MzUsNzQ4LDI3OCw2NjcsNTc4LDQ0Niw1NTYsMjIyLDU0Nyw1NzgsNTc1LDUwMCw1NTcsNDQ2LDQ0MSw1NTYsNTU2LDIyMiw1MDAsNTAwLDU3Niw1MDAsNDQ4LDU1Niw2OTAsNTY5LDQ4Miw2MTcsMzk1LDU0Nyw2NDgsNTI1LDcxMyw3ODEsMjIyLDU0Nyw1NTYsNTQ3LDc4MSw2NjcsNjY3LDg2NSw1NDIsNzE5LDY2NywyNzgsMjc4LDUwMCwxMDU3LDEwMTAsODU0LDU4Myw3MjIsNjM1LDcxOSw2NjcsNjU2LDY2Nyw1NDIsNjc3LDY2Nyw5MjMsNjA0LDcxOSw3MTksNTgzLDY1Niw4MzMsNzIyLDc3OCw3MTksNjY3LDcyMiw2MTEsNjM1LDc2MCw2NjcsNzQwLDY2Nyw5MTcsOTM4LDc5Miw4ODUsNjU2LDcxOSwxMDEwLDcyMiw1NTYsNTczLDUzMSwzNjUsNTgzLDU1Niw2NjksNDU4LDU1OSw1NTksNDM4LDU4Myw2ODgsNTUyLDU1Niw1NDIsNTU2LDUwMCw0NTgsNTAwLDgyMyw1MDAsNTczLDUyMSw4MDIsODIzLDYyNSw3MTksNTIxLDUxMCw3NTAsNTQyLDU1Niw1NTYsNTU2LDM2NSw1MTAsNTAwLDIyMiwyNzgsMjIyLDkwNiw4MTIsNTU2LDQzOCw1NTksNTAwLDU1Miw3NzgsNTU2LDQ4OSw0MTEsOTQ0LDcyMiw5NDQsNzIyLDk0NCw3MjIsNjY3LDUwMCwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyMjIsMjIyLDIyMiwyMjIsMzMzLDMzMywzMzMsNTU2LDU1NiwzNTAsMWUzLDFlMywxODgsMzU0LDMzMywzMzMsNTAwLDMzMywxNjcsMzY1LDU1Niw1NTYsMTA5NCw1NTYsODg1LDMyMywxMDczLDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDFlMyw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MTksMjc0LDU0OSw1NDksNTgzLDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNTAwLDUwMCwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMjk0LDI5NCwzMjQsMzI0LDMxNiwzMjgsMzk4LDI4NV0sTm49Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLHhuPVsxLjM2ODk4LDEsMSwuNzI3MDYsLjgwNDc5LC44MzczNCwuOTg4OTQsLjk5NzkzLC45ODk3LC45Mzg4NCwuODYyMDksLjk0MjkyLC45NDI5MiwxLjE2NjYxLDEuMDIwNTgsLjkzNTgyLC45NjY5NCwuOTM1ODIsMS4xOTEzNywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjc4MDc2LC43ODA3NiwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNzI4NTEsLjc4OTY2LC45MDgzOCwuODM2MzcsLjgyMzkxLC45NjM3NiwuODAwNjEsLjg2Mjc1LC44NzY4LC45NTQwNywxLjAyNTgsLjczOTAxLC44NTAyMiwuODM2NTUsMS4wMTU2LC45NTU0NiwuOTIxNzksLjg3MTA3LC45MjE3OSwuODIxMTQsLjgwOTYsLjg5NzEzLC45NDQzOCwuOTUzNTMsLjk0MDgzLC45MTkwNSwuOTA0MDYsLjk0NDYsLjk0MjkyLDEuMTg3NzcsLjk0MjkyLDEuMDIwNTgsLjg5OTAzLC45MDA4OCwuOTQ5MzgsLjk3ODk4LC44MTA5MywuOTc1NzEsLjk0OTM4LDEuMDI0LC45NTc3LC45NTkzMywuOTg2MjEsMS4wNDc0LC45NzQ1NSwuOTg5ODEsLjk2NzIsLjk1OTMzLC45NDQ2LC45Nzg5OCwuOTc0MDcsLjk3NjQ2LC43ODAzNiwxLjEwMjA4LC45NTQ0MiwuOTUyOTgsLjk3NTc5LC45MzMyLC45NDAzOSwuOTM4LC44MDY4NywxLjAxMTQ5LC44MDY4NywxLjAyMDU4LC44MDQ3OSwuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsMS4wMTE0OSwxLjAwODcyLC45MDA4OCwuOTE4ODIsMS4wMjEzLC44MzYxLDEuMDIwNTgsLjYyMjk1LC41NDMyNCwuODkwMjIsMS4wODU5NSwxLDEsLjkwMDg4LDEsLjk3NDU1LC45MzU4MiwuOTAwODgsMSwxLjA1Njg2LC44MzYxLC45OTY0MiwuOTk2NDIsLjk5NjQyLC43Mjg1MSwuOTA4MzgsLjkwODM4LC45MDgzOCwuOTA4MzgsLjkwODM4LC45MDgzOCwuODY4LC44MjM5MSwuODAwNjEsLjgwMDYxLC44MDA2MSwuODAwNjEsMS4wMjU4LDEuMDI1OCwxLjAyNTgsMS4wMjU4LC45NzQ4NCwuOTU1NDYsLjkyMTc5LC45MjE3OSwuOTIxNzksLjkyMTc5LC45MjE3OSwxLjAyMDU4LC45MjE3OSwuOTQ0MzgsLjk0NDM4LC45NDQzOCwuOTQ0MzgsLjkwNDA2LC44Njk1OCwuOTgyMjUsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjkwMzEsLjgxMDkzLC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjkzOTY5LC45NTkzMywuOTQ0NiwuOTQ0NiwuOTQ0NiwuOTQ0NiwuOTQ0NiwxLjA4NTk1LC45NDQ2LC45NTQ0MiwuOTU0NDIsLjk1NDQyLC45NTQ0MiwuOTQwMzksLjk3ODk4LC45NDAzOSwuOTA4MzgsLjk0OTM4LC45MDgzOCwuOTQ5MzgsLjkwODM4LC45NDkzOCwuODIzOTEsLjgxMDkzLC44MjM5MSwuODEwOTMsLjgyMzkxLC44MTA5MywuODIzOTEsLjgxMDkzLC45NjM3NiwuODQzMTMsLjk3NDg0LC45NzU3MSwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjg3NjgsLjk1NzcsLjg3NjgsLjk1NzcsLjg3NjgsLjk1NzcsMSwxLC45NTQwNywuOTU5MzMsLjk3MDY5LC45NTkzMywxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsLjg4NywxLjAxNTkxLC43MzkwMSwxLjA0NzQsMSwxLC45NzQ1NSwuODM2NTUsLjk4OTgxLDEsMSwuODM2NTUsLjczOTc3LC44MzY1NSwuNzM5MDMsLjg0NjM4LDEuMDMzLC45NTU0NiwuOTU5MzMsMSwxLC45NTU0NiwuOTU5MzMsLjgyNzEsLjk1NDE3LC45NTkzMywuOTIxNzksLjk0NDYsLjkyMTc5LC45NDQ2LC45MjE3OSwuOTQ0NiwuOTM2LC45MTk2NCwuODIxMTQsLjk3NjQ2LDEsMSwuODIxMTQsLjk3NjQ2LC44MDk2LC43ODAzNiwuODA5NiwuNzgwMzYsMSwxLC44MDk2LC43ODAzNiwxLDEsLjg5NzEzLC43NzQ1MiwuODk3MTMsMS4xMDIwOCwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQwODMsLjk3NTc5LC45MDQwNiwuOTQwMzksLjkwNDA2LC45NDQ2LC45MzgsLjk0NDYsLjkzOCwuOTQ0NiwuOTM4LDEsLjk5NzkzLC45MDgzOCwuOTQ5MzgsLjg2OCwuOTAzMSwuOTIxNzksLjk0NDYsMSwxLC44OTcxMywxLjEwMjA4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDk4OSwuOTM1OCwuOTE5NDUsLjgzMTgxLC43NTI2MSwuODc5OTIsLjgyOTc2LC45NjAzNCwuODM2ODksLjk3MjY4LDEuMDA3OCwuOTA4MzgsLjgzNjM3LC44MDE5LC45MDE1NywuODAwNjEsLjk0NDYsLjk1NDA3LC45MjQzNiwxLjAyNTgsLjg1MDIyLC45NzE1MywxLjAxNTYsLjk1NTQ2LC44OTE5MiwuOTIxNzksLjkyMzYxLC44NzEwNywuOTYzMTgsLjg5NzEzLC45MzcwNCwuOTU2MzgsLjkxOTA1LC45MTcwOSwuOTI3OTYsMS4wMjU4LC45MzcwNCwuOTQ4MzYsMS4wMzczLC45NTkzMywxLjAwNzgsLjk1ODcxLC45NDgzNiwuOTYxNzQsLjkyNjAxLC45NDk4LC45ODYwNywuOTU3NzYsLjk1OTMzLDEuMDU0NTMsMS4wMDc4LC45ODI3NSwuOTMxNCwuOTU2MTcsLjkxNzAxLDEuMDU5OTMsLjk0NDYsLjc4MzY3LC45NTUzLDEsLjg2ODMyLDEuMDEyOCwuOTU4NzEsLjk5Mzk0LC44NzU0OCwuOTYzNjEsLjg2Nzc0LDEuMDA3OCwuOTU4NzEsLjk0NDYsLjk1ODcxLC44Njc3NCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NDA4MywuOTc1NzksLjk0MDgzLC45NzU3OSwuOTQwODMsLjk3NTc5LC45MDQwNiwuOTQwMzksLjk2Njk0LDEsLjg5OTAzLDEsMSwxLC45MzU4MiwuOTM1ODIsLjkzNTgyLDEsLjkwOCwuOTA4LC45MTgsLjk0MjE5LC45NDIxOSwuOTY1NDQsMSwxLjI4NSwxLDEsLjgxMDc5LC44MTA3OSwxLDEsLjc0ODU0LDEsMSwxLDEsLjk5NzkzLDEsMSwxLC42NSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTcxNzMsMSwuODA1MzUsLjc2MTY5LDEuMDIwNTgsMS4wNzMyLDEuMDU0ODYsMSwxLDEuMzA2OTIsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4xNjE2MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxVbj17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sTW49WzEuMzY4OTgsMSwxLC42NjIyNywuODA3NzksLjgxNjI1LC45NzI3NiwuOTcyNzYsLjk3NzMzLC45MjIyMiwuODMyNjYsLjk0MjkyLC45NDI5MiwxLjE2MTQ4LDEuMDIwNTgsLjkzNTgyLC45NjY5NCwuOTM1ODIsMS4xNzMzNywuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjc4MDc2LC43ODA3NiwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNzE1NDEsLjc2ODEzLC44NTU3NiwuODA1OTEsLjgwNzI5LC45NDI5OSwuNzc1MTIsLjgzNjU1LC44NjUyMywuOTIyMjIsLjk4NjIxLC43MTc0MywuODE2OTgsLjc5NzI2LC45ODU1OCwuOTIyMjIsLjkwNjM3LC44MzgwOSwuOTA2MzcsLjgwNzI5LC43NjQ2MywuODYyNzUsLjkwNjk5LC45MTYwNSwuOTE1NCwuODUzMDgsLjg1NDU4LC45MDUzMSwuOTQyOTIsMS4yMTI5NiwuOTQyOTIsMS4wMjA1OCwuODk5MDMsMS4xODYxNiwuOTk2MTMsLjkxNjc3LC43ODIxNiwuOTE2NzcsLjkwMDgzLC45ODc5NiwuOTEzNSwuOTIxNjgsLjk1MzgxLC45ODk4MSwuOTUyOTgsLjk1MzgxLC45MzQ1OSwuOTIxNjgsLjkxNTEzLC45MjAwNCwuOTE2NzcsLjk1MDc3LC43NDgsMS4wNDUwMiwuOTE2NzcsLjkyMDYxLC45NDIzNiwuODk1NDQsLjg5MzY0LC45LC44MDY4NywuODU3OCwuODA2ODcsMS4wMjA1OCwuODA3NzksLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC44NTc4LC45OTk3MywxLjE4NjE2LC45MTMzOSwxLjA4MDc0LC44Mjg5MSwxLjAyMDU4LC41NTUwOSwuNzE1MjYsLjg5MDIyLDEuMDg1OTUsMSwxLDEuMTg2MTYsMSwuOTY3MzYsLjkzNTgyLDEuMTg2MTYsMSwxLjA0ODY0LC44MjcxMSwuOTkwNDMsLjk5MDQzLC45OTA0MywuNzE1NDEsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg0NSwuODA3MjksLjc3NTEyLC43NzUxMiwuNzc1MTIsLjc3NTEyLC45ODYyMSwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTU5NjEsLjkyMjIyLC45MDYzNywuOTA2MzcsLjkwNjM3LC45MDYzNywuOTA2MzcsMS4wMjA1OCwuOTAyNTEsLjkwNjk5LC45MDY5OSwuOTA2OTksLjkwNjk5LC44NTQ1OCwuODM2NTksLjk0OTUxLC45OTYxMywuOTk2MTMsLjk5NjEzLC45OTYxMywuOTk2MTMsLjk5NjEzLC44NTgxMSwuNzgyMTYsLjkwMDgzLC45MDA4MywuOTAwODMsLjkwMDgzLC45NTM4MSwuOTUzODEsLjk1MzgxLC45NTM4MSwuOTEzNSwuOTIxNjgsLjkxNTEzLC45MTUxMywuOTE1MTMsLjkxNTEzLC45MTUxMywxLjA4NTk1LC45MTY3NywuOTE2NzcsLjkxNjc3LC45MTY3NywuOTE2NzcsLjg5MzY0LC45MjMzMiwuODkzNjQsLjg1NTc2LC45OTYxMywuODU1NzYsLjk5NjEzLC44NTU3NiwuOTk2MTMsLjgwNzI5LC43ODIxNiwuODA3MjksLjc4MjE2LC44MDcyOSwuNzgyMTYsLjgwNzI5LC43ODIxNiwuOTQyOTksLjc2NzgzLC45NTk2MSwuOTE2NzcsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC44NjUyMywuOTEzNSwuODY1MjMsLjkxMzUsLjg2NTIzLC45MTM1LDEsMSwuOTIyMjIsLjkyMTY4LC45MjIyMiwuOTIxNjgsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC44NjAzNiwuOTcwOTYsLjcxNzQzLC45ODk4MSwxLDEsLjk1Mjk4LC43OTcyNiwuOTUzODEsMSwxLC43OTcyNiwuNjg5NCwuNzk3MjYsLjc0MzIxLC44MTY5MSwxLjAwMDYsLjkyMjIyLC45MjE2OCwxLDEsLjkyMjIyLC45MjE2OCwuNzk0NjQsLjkyMDk4LC45MjE2OCwuOTA2MzcsLjkxNTEzLC45MDYzNywuOTE1MTMsLjkwNjM3LC45MTUxMywuOTA5LC44NzUxNCwuODA3MjksLjk1MDc3LDEsMSwuODA3MjksLjk1MDc3LC43NjQ2MywuNzQ4LC43NjQ2MywuNzQ4LDEsMSwuNzY0NjMsLjc0OCwxLDEsLjg2Mjc1LC43MjY1MSwuODYyNzUsMS4wNDUwMiwuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTE1NCwuOTQyMzYsLjg1NDU4LC44OTM2NCwuODU0NTgsLjkwNTMxLC45LC45MDUzMSwuOSwuOTA1MzEsLjksMSwuOTcyNzYsLjg1NTc2LC45OTYxMywuODQ1LC44NTgxMSwuOTAyNTEsLjkxNjc3LDEsMSwuODYyNzUsMS4wNDUwMiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjAwODk5LDEuMzA2MjgsLjg1NTc2LC44MDE3OCwuNjY4NjIsLjc5MjcsLjY5MzIzLC44ODEyNywuNzI0NTksLjg5NzExLC45NTM4MSwuODU1NzYsLjgwNTkxLC43ODA1LC45NDcyOSwuNzc1MTIsLjkwNTMxLC45MjIyMiwuOTA2MzcsLjk4NjIxLC44MTY5OCwuOTI2NTUsLjk4NTU4LC45MjIyMiwuODUzNTksLjkwNjM3LC45MDk3NiwuODM4MDksLjk0NTIzLC44NjI3NSwuODM1MDksLjkzMTU3LC44NTMwOCwuODMzOTIsLjkyMzQ2LC45ODYyMSwuODM1MDksLjkyODg2LC45MTMyNCwuOTIxNjgsLjk1MzgxLC45MDY0NiwuOTI4ODYsLjkwNTU3LC44Njg0NywuOTAyNzYsLjkxMzI0LC44Njg0MiwuOTIxNjgsLjk5NTMxLC45NTM4MSwuOTIyNCwuODU0MDgsLjkyNjk5LC44Njg0NywxLjAwNTEsLjkxNTEzLC44MDQ4NywuOTM0ODEsMSwuODgxNTksMS4wNTIxNCwuOTA2NDYsLjk3MzU1LC44MTUzOSwuODkzOTgsLjg1OTIzLC45NTM4MSwuOTA2NDYsLjkxNTEzLC45MDY0NiwuODU5MjMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTE1NCwuOTQyMzYsLjkxNTQsLjk0MjM2LC45MTU0LC45NDIzNiwuODU0NTgsLjg5MzY0LC45NjY5NCwxLC44OTkwMywxLDEsMSwuOTE3ODIsLjkxNzgyLC45MTc4MiwxLC44OTYsLjg5NiwuODk2LC45MzMyLC45MzMyLC45NTk3MywxLDEuMjYsMSwxLC44MDQ3OSwuODAxNzgsMSwxLC44NTYzMywxLDEsMSwxLC45NzI3NiwxLDEsMSwuNjk4LDEsMS4zNjE0NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4xNDU0MiwxLC43OTE5OSwuNzg2OTQsMS4wMjA1OCwxLjAzNDkzLDEuMDU0ODYsMSwxLDEuMjMwMjYsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4yMDAwNiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxMbj17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sSm49WzEuMzY4OTgsMSwxLC42NTUwNywuODQ5NDMsLjg1NjM5LC44ODQ2NSwuODg0NjUsLjg2OTM2LC44ODMwNywuODY5NDgsLjg1MjgzLC44NTI4MywxLjA2MzgzLDEuMDIwNTgsLjc1OTQ1LC45MjE5LC43NTk0NSwxLjE3MzM3LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuNzU5NDUsLjc1OTQ1LDEuMDIwNTgsMS4wMjA1OCwxLjAyMDU4LC42OTA0NiwuNzA5MjYsLjg1MTU4LC43NzgxMiwuNzY4NTIsLjg5NTkxLC43MDQ2NiwuNzYxMjUsLjgwMDk0LC44NjgyMiwuODM4NjQsLjcyOCwuNzcyMTIsLjc5NDc1LC45MzYzNywuODc1MTQsLjg1ODgsLjc2MDEzLC44NTg4LC43MjQyMSwuNjk4NjYsLjc3NTk4LC44NTk5MSwuODA4MTEsLjg3ODMyLC43ODExMiwuNzc1MTIsLjg1NjIsMS4wMjIyLDEuMTg0MTcsMS4wMjIyLDEuMjcwMTQsLjg5OTAzLDEuMTUwMTIsLjkzODU5LC45NDM5OSwuODQ2LC45NDM5OSwuODE0NTMsMS4wMTg2LC45NDIxOSwuOTYwMTcsMS4wMzA3NSwxLjAyMTc1LC45MTIsMS4wMzA3NSwuOTY5OTgsLjk2MDE3LC45Mzg1OSwuOTQzOTksLjk0Mzk5LC45NTQ5MywuNzQ2LDEuMTI2NTgsLjk0NTc4LC45MSwuOTc5LC44ODIsLjg4MiwuODMsLjg1MDM0LC44MzUzNywuODUwMzQsMS4wMjA1OCwuNzA4NjksLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44MzUzNywuOTAwODMsMS4xNTAxMiwuOTE2MSwuOTQ1NjUsLjczNTQxLDEuMDIwNTgsLjUzNjA5LC42OTM1MywuNzk1MTksMS4wODU5NSwxLDEsMS4xNTAxMiwxLC45MTk3NCwuNzU5NDUsMS4xNTAxMiwxLC45NDQ2LC43MzM2MSwuOTAwNSwuOTAwNSwuOTAwNSwuNjI4NjQsLjg1MTU4LC44NTE1OCwuODUxNTgsLjg1MTU4LC44NTE1OCwuODUxNTgsLjc3MywuNzY4NTIsLjcwNDY2LC43MDQ2NiwuNzA0NjYsLjcwNDY2LC44Mzg2NCwuODM4NjQsLjgzODY0LC44Mzg2NCwuOTA1NjEsLjg3NTE0LC44NTg4LC44NTg4LC44NTg4LC44NTg4LC44NTg4LDEuMDIwNTgsLjg1NzUxLC44NTk5MSwuODU5OTEsLjg1OTkxLC44NTk5MSwuNzc1MTIsLjc2MDEzLC44ODA3NSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuODA3NSwuODQ2LC44MTQ1MywuODE0NTMsLjgxNDUzLC44MTQ1MywuODI0MjQsLjgyNDI0LC44MjQyNCwuODI0MjQsLjkyNzgsLjk2MDE3LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksMS4wODU5NSwuODU2MiwuOTQ1NzgsLjk0NTc4LC45NDU3OCwuOTQ1NzgsLjg4MiwuOTQ1NzgsLjg4MiwuODUxNTgsLjkzODU5LC44NTE1OCwuOTM4NTksLjg1MTU4LC45Mzg1OSwuNzY4NTIsLjg0NiwuNzY4NTIsLjg0NiwuNzY4NTIsLjg0NiwuNzY4NTIsLjg0NiwuODk1OTEsLjg1NDQsLjkwNTYxLC45NDM5OSwuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjgwMDk0LC45NDIxOSwuODAwOTQsLjk0MjE5LC44MDA5NCwuOTQyMTksMSwxLC44NjgyMiwuOTYwMTcsLjg2ODIyLC45NjAxNywuODM4NjQsLjgyNDI0LC44Mzg2NCwuODI0MjQsLjgzODY0LC44MjQyNCwuODM4NjQsMS4wMzA3NSwuODM4NjQsLjgyNDI0LC44MTQwMiwxLjAyNzM4LC43MjgsMS4wMjE3NSwxLDEsLjkxMiwuNzk0NzUsMS4wMzA3NSwxLDEsLjc5NDc1LC44MzkxMSwuNzk0NzUsLjY2MjY2LC44MDU1MywxLjA2Njc2LC44NzUxNCwuOTYwMTcsMSwxLC44NzUxNCwuOTYwMTcsLjg2ODY1LC44NzM5NiwuOTYwMTcsLjg1ODgsLjkzODU5LC44NTg4LC45Mzg1OSwuODU4OCwuOTM4NTksLjg2NywuODQ3NTksLjcyNDIxLC45NTQ5MywxLDEsLjcyNDIxLC45NTQ5MywuNjk4NjYsLjc0NiwuNjk4NjYsLjc0NiwxLDEsLjY5ODY2LC43NDYsMSwxLC43NzU5OCwuODg0MTcsLjc3NTk4LDEuMTI2NTgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg3ODMyLC45NzksLjc3NTEyLC44ODIsLjc3NTEyLC44NTYyLC44MywuODU2MiwuODMsLjg1NjIsLjgzLDEsLjg4NDY1LC44NTE1OCwuOTM4NTksLjc3MywuODA3NSwuODU3NTEsLjg1NjIsMSwxLC43NzU5OCwxLjEyNjU4LDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjE1MzEzLDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMDgxMDYsMS4wMzkwMSwuODUxNTgsLjc3MDI1LC42MjI2NCwuNzY0NiwuNjUzNTEsLjg2MDI2LC42OTQ2MSwuODk5NDcsMS4wMzA3NSwuODUxNTgsLjc3ODEyLC43NjQ0OSwuODg4MzYsLjcwNDY2LC44NTYyLC44NjgyMiwuODU4OCwuODM4NjQsLjc3MjEyLC44NTMwOCwuOTM2MzcsLjg3NTE0LC44MjM1MiwuODU4OCwuODU3MDEsLjc2MDEzLC44OTA1OCwuNzc1OTgsLjgxNTYsLjgyNTY1LC43ODExMiwuNzc4OTksLjg5Mzg2LC44Mzg2NCwuODE1NiwuOTQ4NiwuOTIzODgsLjk2MTg2LDEuMDMwNzUsLjkxMTIzLC45NDg2LC45MzI5OCwuODc4LC45Mzk0MiwuOTIzODgsLjg0NTk2LC45NjE4NiwuOTUxMTksMS4wMzA3NSwuOTIyLC44ODc4NywuOTU4MjksLjg4LC45MzU1OSwuOTM4NTksLjc4ODE1LC45Mzc1OCwxLC44OTIxNywxLjAzNzM3LC45MTEyMywuOTM5NjksLjc3NDg3LC44NTc2OSwuODY3OTksMS4wMzA3NSwuOTExMjMsLjkzODU5LC45MTEyMywuODY3OTksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODc4MzIsLjk3OSwuODc4MzIsLjk3OSwuODc4MzIsLjk3OSwuNzc1MTIsLjg4MiwuOTIxOSwxLC44OTkwMywxLDEsMSwuODczMjEsLjg3MzIxLC44NzMyMSwxLDEuMDI3LDEuMDI3LDEuMDI3LC44Njg0NywuODY4NDcsLjc5MTIxLDEsMS4xMjQsMSwxLC43MzU3MiwuNzM1NzIsMSwxLC44NTAzNCwxLDEsMSwxLC44ODQ2NSwxLDEsMSwuNjY5LDEsMS4zNjE0NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNDgyOCwxLC43NDk0OCwuNzUxODcsMS4wMjA1OCwuOTgzOTEsMS4wMjExOSwxLDEsMS4wNjIzMywxLjA4NTk1LDEuMDg1OTUsMSwxLjA4NTk1LDEuMDg1OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1MjMzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEhuPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxZbj1bMS4zNjg5OCwxLDEsLjc2MzA1LC44Mjc4NCwuOTQ5MzUsLjg5MzY0LC45MjI0MSwuODkwNzMsLjkwNzA2LC45ODQ3MiwuODUyODMsLjg1MjgzLDEuMDY2NCwxLjAyMDU4LC43NDUwNSwuOTIxOSwuNzQ1MDUsMS4yMzQ1NiwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjc0NTA1LC43NDUwNSwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNzMwMDIsLjcyNjAxLC45MTc1NSwuODEyNiwuODAzMTQsLjkyMjIyLC43Mzc2NCwuNzk3MjYsLjgzMDUxLC45MDI4NCwuODYwMjMsLjc0LC44MTI2LC44NDg2OSwuOTY1MTgsLjkxMTE1LC44ODU4LC43OTc2MSwuODg1OCwuNzQ0OTgsLjczOTE0LC44MTM2MywuODk1OTEsLjgzNjU5LC44OTYzMywuODU2MDgsLjgxMTEsLjkwNTMxLDEuMDIyMiwxLjIyNzM2LDEuMDIyMiwxLjI3MDE0LC44OTkwMywuOTAwODgsLjg2NjY3LDEuMDIzMSwuODk2LDEuMDE0MTEsLjkwMDgzLDEuMDUwOTksMS4wMDUxMiwuOTk3OTMsMS4wNTMyNiwxLjA5Mzc3LC45MzgsMS4wNjIyNiwxLjAwMTE5LC45OTc5MywuOTg3MTQsMS4wMjMxLDEuMDEyMzEsLjk4MTk2LC43OTIsMS4xOTEzNywuOTkwNzQsLjk2MiwxLjAxOTE1LC45MjYsLjk0MiwuODU2LC44NTAzNCwuOTIwMDYsLjg1MDM0LDEuMDIwNTgsLjY5MDY3LC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIwMDYsLjkzMzIsLjkwMDg4LC45MTg4MiwuOTM0ODQsLjc1MzM5LDEuMDIwNTgsLjU2ODY2LC41NDMyNCwuNzk1MTksMS4wODU5NSwxLDEsLjkwMDg4LDEsLjk1MzI1LC43NDUwNSwuOTAwODgsMSwuOTcxOTgsLjc1MzM5LC45MTAwOSwuOTEwMDksLjkxMDA5LC42NjQ2NiwuOTE3NTUsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjkxNzU1LC45MTc1NSwuNzg4LC44MDMxNCwuNzM3NjQsLjczNzY0LC43Mzc2NCwuNzM3NjQsLjg2MDIzLC44NjAyMywuODYwMjMsLjg2MDIzLC45MjkxNSwuOTExMTUsLjg4NTgsLjg4NTgsLjg4NTgsLjg4NTgsLjg4NTgsMS4wMjA1OCwuODg1OCwuODk1OTEsLjg5NTkxLC44OTU5MSwuODk1OTEsLjgxMTEsLjc5NjExLC44OTcxMywuODY2NjcsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2NjY3LC44NjY2NywuODY5MzYsLjg5NiwuOTAwODMsLjkwMDgzLC45MDA4MywuOTAwODMsLjg0MjI0LC44NDIyNCwuODQyMjQsLjg0MjI0LC45NzI3NiwuOTk3OTMsLjk4NzE0LC45ODcxNCwuOTg3MTQsLjk4NzE0LC45ODcxNCwxLjA4NTk1LC44OTg3NiwuOTkwNzQsLjk5MDc0LC45OTA3NCwuOTkwNzQsLjk0MiwxLjAyMzEsLjk0MiwuOTE3NTUsLjg2NjY3LC45MTc1NSwuODY2NjcsLjkxNzU1LC44NjY2NywuODAzMTQsLjg5NiwuODAzMTQsLjg5NiwuODAzMTQsLjg5NiwuODAzMTQsLjg5NiwuOTIyMjIsLjkzMzcyLC45MjkxNSwxLjAxNDExLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuODMwNTEsMS4wMDUxMiwuODMwNTEsMS4wMDUxMiwuODMwNTEsMS4wMDUxMiwxLDEsLjkwMjg0LC45OTc5MywuOTA5NzYsLjk5NzkzLC44NjAyMywuODQyMjQsLjg2MDIzLC44NDIyNCwuODYwMjMsLjg0MjI0LC44NjAyMywxLjA1MzI2LC44NjAyMywuODQyMjQsLjgyODczLDEuMDc0NjksLjc0LDEuMDkzNzcsMSwxLC45MzgsLjg0ODY5LDEuMDYyMjYsMSwxLC44NDg2OSwuODM3MDQsLjg0ODY5LC44MTQ0MSwuODU1ODgsMS4wODkyNywuOTExMTUsLjk5NzkzLDEsMSwuOTExMTUsLjk5NzkzLC45MTg4NywuOTA5OTEsLjk5NzkzLC44ODU4LC45ODcxNCwuODg1OCwuOTg3MTQsLjg4NTgsLjk4NzE0LC44OTQsLjkxNDM0LC43NDQ5OCwuOTgxOTYsMSwxLC43NDQ5OCwuOTgxOTYsLjczOTE0LC43OTIsLjczOTE0LC43OTIsMSwxLC43MzkxNCwuNzkyLDEsMSwuODEzNjMsLjkwNCwuODEzNjMsMS4xOTEzNywuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk2MzMsMS4wMTkxNSwuODExMSwuOTQyLC44MTExLC45MDUzMSwuODU2LC45MDUzMSwuODU2LC45MDUzMSwuODU2LDEsLjkyMjQxLC45MTc1NSwuODY2NjcsLjc4OCwuODY5MzYsLjg4NTgsLjg5ODc2LDEsMSwuODEzNjMsMS4xOTEzNywuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAzODgsMS4wMzkwMSwuOTIxMzgsLjc4MTA1LC43MTU0LC44NjE2OSwuODA1MTMsLjk0MDA3LC44MjUyOCwuOTg2MTIsMS4wNjIyNiwuOTE3NTUsLjgxMjYsLjgxODg0LC45MjgxOSwuNzM3NjQsLjkwNTMxLC45MDI4NCwuODg1OCwuODYwMjMsLjgxMjYsLjkxMTcyLC45NjUxOCwuOTExMTUsLjgzMDg5LC44ODU4LC44Nzc5MSwuNzk3NjEsLjg5Mjk3LC44MTM2MywuODgxNTcsLjg5OTkyLC44NTYwOCwuODE5OTIsLjk0MzA3LC44NjAyMywuODgxNTcsLjk1MzA4LC45ODY5OSwuOTk3OTMsMS4wNjIyNiwuOTU4MTcsLjk1MzA4LC45NzM1OCwuOTI4LC45ODA4OCwuOTg2OTksLjkyNzYxLC45OTc5MywuOTYwMTcsMS4wNjIyNiwuOTg2LC45NDQsLjk1OTc4LC45MzgsLjk2NzA1LC45ODcxNCwuODA0NDIsLjk4OTcyLDEsLjg5NzYyLDEuMDQ1NTIsLjk1ODE3LC45OTAwNywuODcwNjQsLjkxODc5LC44ODg4OCwxLjA2MjI2LC45NTgxNywuOTg3MTQsLjk1ODE3LC44ODg4OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44OTYzMywxLjAxOTE1LC44OTYzMywxLjAxOTE1LC44OTYzMywxLjAxOTE1LC44MTExLC45NDIsLjkyMTksMSwuODk5MDMsMSwxLDEsLjkzMTczLC45MzE3MywuOTMxNzMsMSwxLjA2MzA0LDEuMDYzMDQsMS4wNjkwNCwuODk5MDMsLjg5OTAzLC44MDU0OSwxLDEuMTU2LDEsMSwuNzY1NzUsLjc2NTc1LDEsMSwuNzI0NTgsMSwxLDEsMSwuOTIyNDEsMSwxLDEsLjYxOSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDcyNTcsMSwuNzQ3MDUsLjcxMTE5LDEuMDIwNTgsMS4wMjQsMS4wMjExOSwxLDEsMS4xNTM2LDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDU2MzgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sdm49e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LEtuPVsxLjc2NzM4LDEsMSwuOTkyOTcsLjk4MjQsMS4wNDAxNiwxLjA2NDk3LDEuMDM0MjQsLjk3NTI5LDEuMTc2NDcsMS4yMzIwMywxLjEwODUsMS4xMDg1LDEuMTY5MzksMS4yMTA3LC45NzU0LDEuMjE0MDgsLjk3NTQsMS41OTU3OCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LC44MTM3OCwuODEzNzgsMS4yMTA3LDEuMjEwNywxLjIxMDcsLjcxNzAzLC45Nzg0NywuOTczNjMsLjg4Nzc2LC44NjQxLDEuMDIwOTYsLjc5Nzk1LC44NTEzMiwuOTE0LDEuMDYwODUsMS4xNDA2LC44MDA3LC44OTg1OCwuODM2OTMsMS4xNDg4OSwxLjA5Mzk4LC45NzQ4OSwuOTIwOTQsLjk3NDg5LC45MDM5OSwuODQwNDEsLjk1OTIzLDEuMDAxMzUsMSwxLjA2NDY3LC45ODI0MywuOTA5OTYsLjk5MzYxLDEuMTA4NSwxLjU2OTQyLDEuMTA4NSwxLjIxMDcsLjc0NjI3LC45NDI4MiwuOTY3NTIsMS4wMTUxOSwuODYzMDQsMS4wMTM1OSwuOTcyNzgsMS4xNTEwMywxLjAxMzU5LC45ODU2MSwxLjAyMjg1LDEuMDIyODUsMS4wMDUyNywxLjAyMjg1LDEuMDMwMiwuOTkwNDEsMS4wMDA4LDEuMDE1MTksMS4wMTM1OSwxLjAyMjU4LC43OTEwNCwxLjE2ODYyLC45OTA0MSwuOTc0NTQsMS4wMjUxMSwuOTkyOTgsLjk2NzUyLC45NTgwMSwuOTQ4NTYsMS4xNjU3OSwuOTQ4NTYsMS4yMTA3LC45ODI0LDEuMDM0MjQsMS4wMzQyNCwxLDEuMDM0MjQsMS4xNjU3OSwuODcyNywxLjM4NzEsMS4xODYyMiwxLjEwODE4LDEuMDQ0NzgsMS4yMTA3LDEuMTg2MjIsLjc1MTU1LC45NDk5NCwxLjI4ODI2LDEuMjE0MDgsMS4yMTQwOCwuOTEwNTYsMSwuOTE1NzIsLjk3NTQsLjY0NjYzLDEuMTgzMjgsMS4yNDg2NiwxLjA0NDc4LDEuMTQxNjksMS4xNTc0OSwxLjE3Mzg5LC43MTcwMywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTM1MDYsLjg2NDEsLjc5Nzk1LC43OTc5NSwuNzk3OTUsLjc5Nzk1LDEuMTQwNiwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjAyMDk2LDEuMDkzOTgsLjk3NDI2LC45NzQyNiwuOTc0MjYsLjk3NDI2LC45NzQyNiwxLjIxMDcsLjk3NDg5LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LDEuMDAxMzUsLjkwOTk2LC45MjA5NCwxLjAyNzk4LC45Njc1MiwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTY3NTIsLjk2NzUyLC45MzEzNiwuODYzMDQsLjk3Mjc4LC45NzI3OCwuOTcyNzgsLjk3Mjc4LDEuMDIyODUsMS4wMjI4NSwxLjAyMjg1LDEuMDIyODUsLjk3MTIyLC45OTA0MSwxLDEsMSwxLDEsMS4yODgyNiwxLjAwMDgsLjk5MDQxLC45OTA0MSwuOTkwNDEsLjk5MDQxLC45Njc1MiwxLjAxNTE5LC45Njc1MiwuOTczNjMsLjk2NzUyLC45NzM2MywuOTY3NTIsLjk3MzYzLC45Njc1MiwuODY0MSwuODYzMDQsLjg2NDEsLjg2MzA0LC44NjQxLC44NjMwNCwuODY0MSwuODYzMDQsMS4wMjA5NiwxLjAzMDU3LDEuMDIwOTYsMS4wMzUxNywuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjkxNCwxLjAxMzU5LC45MTQsMS4wMTM1OSwuOTE0LDEuMDEzNTksMSwxLDEuMDYwODUsLjk4NTYxLDEuMDYwODUsMS4wMDg3OSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwuOTcxMzgsMS4wODY5MiwuODAwNywxLjAyMjg1LDEsMSwxLjAwNTI3LC44MzY5MywxLjAyMjg1LDEsMSwuODM2OTMsLjk0NTUsLjgzNjkzLC45MDQxOCwuODM2OTMsMS4xMzAwNSwxLjA5Mzk4LC45OTA0MSwxLDEsMS4wOTM5OCwuOTkwNDEsLjk2NjkyLDEuMDkyNTEsLjk5MDQxLC45NzQ4OSwxLjAwMDgsLjk3NDg5LDEuMDAwOCwuOTc0ODksMS4wMDA4LC45Mzk5NCwuOTc5MzEsLjkwMzk5LDEuMDIyNTgsMSwxLC45MDM5OSwxLjAyMjU4LC44NDA0MSwuNzkxMDQsLjg0MDQxLC43OTEwNCwuODQwNDEsLjc5MTA0LC44NDA0MSwuNzkxMDQsMSwxLC45NTkyMywxLjA3MDM0LC45NTkyMywxLjE2ODYyLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDY0NjcsMS4wMjUxMSwuOTA5OTYsLjk2NzUyLC45MDk5NiwuOTkzNjEsLjk1ODAxLC45OTM2MSwuOTU4MDEsLjk5MzYxLC45NTgwMSwxLjA3NzMzLDEuMDM0MjQsLjk3MzYzLC45Njc1MiwuOTM1MDYsLjkzMTM2LC45NzQ4OSwxLjAwMDgsMSwxLC45NTkyMywxLjE2ODYyLDEuMTUxMDMsMS4xNTEwMywxLjAxMTczLDEuMDM5NTksLjc1OTUzLC44MTM3OCwuNzk5MTIsMS4xNTEwMywxLjIxOTk0LC45NTE2MSwuODc4MTUsMS4wMTE0OSwuODE1MjUsLjc2NzYsLjk4MTY3LDEuMDExMzQsMS4wMjU0NiwuODQwOTcsMS4wMzA4OSwxLjE4MTAyLC45NzM2MywuODg3NzYsLjg1MTM0LC45NzgyNiwuNzk3OTUsLjk5MzYxLDEuMDYwODUsLjk3NDg5LDEuMTQwNiwuODk4NTgsMS4wMzg4LDEuMTQ4ODksMS4wOTM5OCwuODYwMzksLjk3NDg5LDEuMDU5NSwuOTIwOTQsLjk0NzkzLC45NTkyMywuOTA5OTYsLjk5MzQ2LC45ODI0MywxLjAyMTEyLC45NTQ5MywxLjE0MDYsLjkwOTk2LDEuMDM1NzQsMS4wMjU5NywxLjAwMDgsMS4xODEwMiwxLjA2NjI4LDEuMDM1NzQsMS4wMTkyLDEuMDE5MzIsMS4wMDg4NiwuOTc1MzEsMS4wMTA2LDEuMDAwOCwxLjEzMTg5LDEuMTgxMDIsMS4wMjI3NywuOTg2ODMsMS4wMDE2LC45OTU2MSwxLjA3MjM3LDEuMDAwOCwuOTA0MzQsLjk5OTIxLC45MzgwMywuODk2NSwxLjIzMDg1LDEuMDY2MjgsMS4wNDk4MywuOTYyNjgsMS4wNDk5LC45ODQzOSwxLjE4MTAyLDEuMDY2MjgsMS4wMDA4LDEuMDY2MjgsLjk4NDM5LC43OTc5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA5NDY2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NzI3OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAyMDY1LDEsMSwxLDEsMSwxLDEuMDY0NjcsMS4wMjUxMSwxLjA2NDY3LDEuMDI1MTEsMS4wNjQ2NywxLjAyNTExLC45MDk5NiwuOTY3NTIsMSwxLjIxNDA4LC44OTkwMywxLDEsLjc1MTU1LDEuMDQzOTQsMS4wNDM5NCwxLjA0Mzk0LDEuMDQzOTQsLjk4NjMzLC45ODYzMywuOTg2MzMsLjczMDQ3LC43MzA0NywxLjIwNjQyLC45MTIxMSwxLjI1NjM1LDEuMjIyLDEuMDI5NTYsMS4wMzM3MiwxLjAzMzcyLC45NjAzOSwxLjI0NjMzLDEsMS4xMjQ1NCwuOTM1MDMsMS4wMzQyNCwxLjE5Njg3LDEuMDM0MjQsMSwxLDEsLjc3MSwxLDEsMS4xNTc0OSwxLjE1NzQ5LDEuMTU3NDksMS4xMDk0OCwuODYyNzksLjk0NDM0LC44NjI3OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjE2ODk3LDEsLjk2MDg1LC45MDEzNywxLjIxMDcsMS4xODQxNiwxLjEzOTczLC42OTgyNSwuOTcxNiwyLjEwMzM5LDEuMjkwMDQsMS4yOTAwNCwxLjIxMTcyLDEuMjkwMDQsMS4yOTAwNCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTg4NzQsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjA5MTkzLDEuMDkxOTMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHFuPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxUbj1bMS43NjczOCwxLDEsLjk4OTQ2LDEuMDM5NTksMS4wNDAxNiwxLjAyODA5LDEuMDM2LC45NzYzOSwxLjEwOTUzLDEuMjMyMDMsMS4xMTE0NCwxLjExMTQ0LDEuMTY5MzksMS4yMTIzNywuOTc1NCwxLjIxMjYxLC45NzU0LDEuNTk3NTQsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsLjgxMzc4LC44MTM3OCwxLjIxMjM3LDEuMjEyMzcsMS4yMTIzNywuNzM1NDEsLjk3ODQ3LC45NzM2MywuODk3MjMsLjg3ODk3LDEuMDQyNiwuNzk0MjksLjg1MjkyLC45MTE0OSwxLjA1ODE1LDEuMTQwNiwuNzk2MzEsLjkwMTI4LC44Mzg1MywxLjA0Mzk2LDEuMTA2MTUsLjk3NTUyLC45NDQzNiwuOTc1NTIsLjg4NjQxLC44MDUyNywuOTYwODMsMS4wMDEzNSwxLDEuMDY3NzcsLjk4MTcsLjkxMTQyLC45OTM2MSwxLjExMTQ0LDEuNTcyOTMsMS4xMTE0NCwxLjIxMjM3LC43NDYyNywxLjMxODE4LDEuMDY1ODUsLjk3MDQyLC44MzA1NSwuOTcwNDIsLjkzNTAzLDEuMTI2MSwuOTcwNDIsLjk3OTIyLDEuMTQyMzYsLjk0NTUyLDEuMDEwNTQsMS4xNDIzNiwxLjAyNDcxLC45NzkyMiwuOTQxNjUsLjk3MDQyLC45NzA0MiwxLjAyNzYsLjc4OTI5LDEuMTI2MSwuOTc5MjIsLjk1ODc0LDEuMDIxOTcsLjk4NTA3LC45Njc1MiwuOTcxNjgsLjk1MTA3LDEuMTY1NzksLjk1MTA3LDEuMjEyMzcsMS4wMzk1OSwxLjAzNiwxLjAzNiwxLDEuMDM2LDEuMTY1NzksLjg3MzU3LDEuMzE4MTgsMS4xODc1NCwxLjI2NzgxLDEuMDUzNTYsMS4yMTIzNywxLjE4NjIyLC43OTQ4NywuOTQ5OTQsMS4yOTAwNCwxLjI0MDQ3LDEuMjQwNDcsMS4zMTgxOCwxLC45MTQ4NCwuOTc1NCwxLjMxODE4LDEuMTM0OSwxLjI0ODY2LDEuMDUzNTYsMS4xMzkzNCwxLjE1NTc0LDEuMTczODksLjczNTQxLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NDM4NSwuODc4OTcsLjc5NDI5LC43OTQyOSwuNzk0MjksLjc5NDI5LDEuMTQwNiwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjA0MjYsMS4xMDYxNSwuOTc1NTIsLjk3NTUyLC45NzU1MiwuOTc1NTIsLjk3NTUyLDEuMjEyMzcsLjk3NTUyLDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LDEuMDAxMzUsLjkxMTQyLC45NDQzNiwuOTg3MjEsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsLjk2NzA1LC44MzA1NSwuOTM1MDMsLjkzNTAzLC45MzUwMywuOTM1MDMsMS4xNDIzNiwxLjE0MjM2LDEuMTQyMzYsMS4xNDIzNiwuOTMxMjUsLjk3OTIyLC45NDE2NSwuOTQxNjUsLjk0MTY1LC45NDE2NSwuOTQxNjUsMS4yOTAwNCwuOTQxNjUsLjk3OTIyLC45NzkyMiwuOTc5MjIsLjk3OTIyLC45Njc1MiwuOTcwNDIsLjk2NzUyLC45NzM2MywxLjA2NTg1LC45NzM2MywxLjA2NTg1LC45NzM2MywxLjA2NTg1LC44Nzg5NywuODMwNTUsLjg3ODk3LC44MzA1NSwuODc4OTcsLjgzMDU1LC44Nzg5NywuODMwNTUsMS4wNDI2LDEuMDAzMywxLjA0MjYsLjk3MDQyLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuOTExNDksLjk3MDQyLC45MTE0OSwuOTcwNDIsLjkxMTQ5LC45NzA0MiwxLDEsMS4wNTgxNSwuOTc5MjIsMS4wNTgxNSwuOTc5MjIsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsLjk3NDQxLDEuMDQzMDIsLjc5NjMxLDEuMDE1ODIsMSwxLDEuMDEwNTQsLjgzODUzLDEuMTQyMzYsMSwxLC44Mzg1MywxLjA5MTI1LC44Mzg1MywuOTA0MTgsLjgzODUzLDEuMTk1MDgsMS4xMDYxNSwuOTc5MjIsMSwxLDEuMTA2MTUsLjk3OTIyLDEuMDEwMzQsMS4xMDQ2NiwuOTc5MjIsLjk3NTUyLC45NDE2NSwuOTc1NTIsLjk0MTY1LC45NzU1MiwuOTQxNjUsLjkxNjAyLC45MTk4MSwuODg2NDEsMS4wMjc2LDEsMSwuODg2NDEsMS4wMjc2LC44MDUyNywuNzg5MjksLjgwNTI3LC43ODkyOSwuODA1MjcsLjc4OTI5LC44MDUyNywuNzg5MjksMSwxLC45NjA4MywxLjA1NDAzLC45NTkyMywxLjE2ODYyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDY3NzcsMS4wMjE5NywuOTExNDIsLjk2NzUyLC45MTE0MiwuOTkzNjEsLjk3MTY4LC45OTM2MSwuOTcxNjgsLjk5MzYxLC45NzE2OCwxLjIzMTk5LDEuMDM2LC45NzM2MywxLjA2NTg1LC45NDM4NSwuOTY3MDUsLjk3NTUyLC45NDE2NSwxLDEsLjk2MDgzLDEuMTI2MSwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwuOTUxNjEsMS4yNzEyNiwxLjAwODExLC44MzI4NCwuNzc3MDIsLjk5MTM3LC45NTI1MywxLjAzNDcsLjg2MTQyLDEuMDcyMDUsMS4xNDIzNiwuOTczNjMsLjg5NzIzLC44Njg2OSwxLjA5ODE4LC43OTQyOSwuOTkzNjEsMS4wNTgxNSwuOTc1NTIsMS4xNDA2LC45MDEyOCwxLjA2NjYyLDEuMDQzOTYsMS4xMDYxNSwuODQ5MTgsLjk3NTUyLDEuMDQ2OTQsLjk0NDM2LC45ODAxNSwuOTYwODMsLjkxMTQyLDEuMDAzNTYsLjk4MTcsMS4wMTk0NSwuOTg5OTksMS4xNDA2LC45MTE0MiwxLjA0OTYxLC45ODk4LDEuMDA2MzksMS4xNDIzNiwxLjA3NTE0LDEuMDQ5NjEsLjk5NjA3LDEuMDI4OTcsMS4wMDgsLjk4OTgsLjk1MTM0LDEuMDA2MzksMS4xMTEyMSwxLjE0MjM2LDEuMDA1MTgsLjk3OTgxLDEuMDIxODYsMSwxLjA4NTc4LC45NDE2NSwuOTkzMTQsLjk4Mzg3LC45MzAyOCwuOTMzNzcsMS4zNTEyNSwxLjA3NTE0LDEuMTA2ODcsLjkzNDkxLDEuMDQyMzIsMS4wMDM1MSwxLjE0MjM2LDEuMDc1MTQsLjk0MTY1LDEuMDc1MTQsMS4wMDM1MSwuNzk0MjksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wOTA5NywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTM1MDMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk2NjA5LDEsMSwxLDEsMSwxLDEuMDY3NzcsMS4wMjE5NywxLjA2Nzc3LDEuMDIxOTcsMS4wNjc3NywxLjAyMTk3LC45MTE0MiwuOTY3NTIsMSwxLjIxMjYxLC44OTkwMywxLDEsLjc1MTU1LDEuMDQ3NDUsMS4wNDc0NSwxLjA0NzQ1LDEuMDQzOTQsLjk4NjMzLC45ODYzMywuOTg2MzMsLjcyOTU5LC43Mjk1OSwxLjIwNTAyLC45MTQwNiwxLjI2NTE0LDEuMjIyLDEuMDI5NTYsMS4wMzM3MiwxLjAzMzcyLC45NjAzOSwxLjI0NjMzLDEsMS4wOTEyNSwuOTMzMjcsMS4wMzMzNiwxLjE2NTQxLDEuMDM2LDEsMSwxLC43NzEsMSwxLDEuMTU1NzQsMS4xNTU3NCwxLjE1NTc0LDEuMTU1NzQsLjg2MzY0LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjIyNCwxLDEsMS4xNjc5OCwxLC45NjA4NSwuOTAwNjgsMS4yMTIzNywxLjE4NDE2LDEuMTM5MDQsLjY5ODI1LC45NzE2LDIuMTAzMzksMS4yOTAwNCwxLjI5MDA0LDEuMjEzMzksMS4yOTAwNCwxLjI5MDA0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xODc3NSwxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTMyNjksMS4xMzI2OSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sUG49e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LFduPVsxLjc2NzM4LDEsMSwuOTg5NDYsMS4xNDc2MywxLjA1MzY1LDEuMDYyMzQsLjk2OTI3LC45MjU4NiwxLjE1MzczLDEuMTg0MTQsLjkxMzQ5LC45MTM0OSwxLjA3NDAzLDEuMTczMDgsLjc4MzgzLDEuMjAwODgsLjc4MzgzLDEuNDI1MzEsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC43ODM4MywuNzgzODMsMS4xNzMwOCwxLjE3MzA4LDEuMTczMDgsLjc3MzQ5LC45NDU2NSwuOTQ3MjksLjg1OTQ0LC44ODUwNiwuOTg1OCwuNzQ4MTcsLjgwMDE2LC44ODQ0OSwuOTgwMzksLjk1NzgyLC42OTIzOCwuODk4OTgsLjgzMjMxLC45ODE4MywxLjAzOTg5LC45NjkyNCwuODYyMzcsLjk2OTI0LC44MDU5NSwuNzQ1MjQsLjg2MDkxLC45NTQwMiwuOTQxNDMsLjk4NDQ4LC44ODU4LC44MzA4OSwuOTMyODUsMS4wOTQ5LDEuMzkwMTYsMS4wOTQ5LDEuNDU5OTQsLjc0NjI3LDEuMDQ4MzksLjk3NDU0LC45NzQ1NCwuODcyMDcsLjk3NDU0LC44NzUzMywxLjA2MTUxLC45NzQ1NCwxLjAwMTc2LDEuMTY0ODQsMS4wODEzMiwuOTgwNDcsMS4xNjQ4NCwxLjAyOTg5LDEuMDEwNTQsLjk2MjI1LC45NzQ1NCwuOTc0NTQsMS4wNjU5OCwuNzkwMDQsMS4xNjM0NCwxLjAwMzUxLC45NDYyOSwuOTk3MywuOTEwMTYsLjk2Nzc3LC45MDQzLC45MTA4MiwuOTI0ODEsLjkxMDgyLDEuMTczMDgsLjk1NzQ4LC45NjkyNywuOTY5MjcsMSwuOTY5MjcsLjkyNDgxLC44MDU5NywxLjA0ODM5LDEuMjMzOTMsMS4xNzgxLC45MjQ1LDEuMTczMDgsMS4yMDgwOCwuNjMyMTgsLjk0MjYxLDEuMjQ4MjIsMS4wOTk3MSwxLjA5OTcxLDEuMDQ4MzksMSwuODUyNzMsLjc4MDMyLDEuMDQ4MzksMS4wOTk3MSwxLjIyMzI2LC45MjQ1LDEuMDk4MzYsMS4xMzUyNSwxLjE1MjIyLC43MDQyNCwuOTQ3MjksLjk0NzI5LC45NDcyOSwuOTQ3MjksLjk0NzI5LC45NDcyOSwuODU0OTgsLjg4NTA2LC43NDgxNywuNzQ4MTcsLjc0ODE3LC43NDgxNywuOTU3ODIsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk4NTgsMS4wMzk4OSwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LDEuMTczMDgsLjk2OTI0LC45NTQwMiwuOTU0MDIsLjk1NDAyLC45NTQwMiwuODMwODksLjg2MjM3LC44ODQwOSwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTI5MTYsLjg3MjA3LC44NzUzMywuODc1MzMsLjg3NTMzLC44NzUzMywuOTMxNDYsLjkzMTQ2LC45MzE0NiwuOTMxNDYsLjkzODU0LDEuMDEwNTQsLjk2MjI1LC45NjIyNSwuOTYyMjUsLjk2MjI1LC45NjIyNSwxLjI0ODIyLC44NzYxLDEuMDAzNTEsMS4wMDM1MSwxLjAwMzUxLDEuMDAzNTEsLjk2Nzc3LC45NzQ1NCwuOTY3NzcsLjk0NzI5LC45NzQ1NCwuOTQ3MjksLjk3NDU0LC45NDcyOSwuOTc0NTQsLjg4NTA2LC44NzIwNywuODg1MDYsLjg3MjA3LC44ODUwNiwuODcyMDcsLjg4NTA2LC44NzIwNywuOTg1OCwuOTUzOTEsLjk4NTgsLjk3NDU0LC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuODg0NDksLjk3NDU0LC44ODQ0OSwuOTc0NTQsLjg4NDQ5LC45NzQ1NCwxLDEsLjk4MDM5LDEuMDAxNzYsLjk4MDM5LDEuMDAxNzYsLjk1NzgyLC45MzE0NiwuOTU3ODIsLjkzMTQ2LC45NTc4MiwuOTMxNDYsLjk1NzgyLDEuMTY0ODQsLjk1NzgyLC45MzE0NiwuODQ0MjEsMS4xMjc2MSwuNjkyMzgsMS4wODEzMiwxLDEsLjk4MDQ3LC44MzIzMSwxLjE2NDg0LDEsMSwuODQ3MjMsMS4wNDg2MSwuODQ3MjMsLjc4NzU1LC44MzIzMSwxLjIzNzM2LDEuMDM5ODksMS4wMTA1NCwxLDEsMS4wMzk4OSwxLjAxMDU0LC45ODU3LDEuMDM4NDksMS4wMTA1NCwuOTY5MjQsLjk2MjI1LC45NjkyNCwuOTYyMjUsLjk2OTI0LC45NjIyNSwuOTIzODMsLjkwMTcxLC44MDU5NSwxLjA2NTk4LDEsMSwuODA1OTUsMS4wNjU5OCwuNzQ1MjQsLjc5MDA0LC43NDUyNCwuNzkwMDQsLjc0NTI0LC43OTAwNCwuNzQ1MjQsLjc5MDA0LDEsMSwuODYwOTEsMS4wMjc1OSwuODU3NzEsMS4xNjM0NCwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTg0NDgsLjk5NzMsLjgzMDg5LC45Njc3NywuODMwODksLjkzMjg1LC45MDQzLC45MzI4NSwuOTA0MywuOTMyODUsLjkwNDMsMS4zMTg2OCwuOTY5MjcsLjk0NzI5LC45NzQ1NCwuODU0OTgsLjkyOTE2LC45NjkyNCwuODc2MSwxLDEsLjg2MDkxLDEuMTYzNDQsMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksLjgxOTY1LC44MTk2NSwuOTQ3MjksLjc4MDMyLC43MTAyMiwuOTA4ODMsLjg0MTcxLC45OTg3NywuNzc1OTYsMS4wNTczNCwxLjIsLjk0NzI5LC44NTk0NCwuODI3OTEsLjk2MDcsLjc0ODE3LC45MzI4NSwuOTgwMzksLjk2OTI0LC45NTc4MiwuODk4OTgsLjk4MzE2LC45ODE4MywxLjAzOTg5LC43ODYxNCwuOTY5MjQsLjk3NjQyLC44NjIzNywuODYwNzUsLjg2MDkxLC44MzA4OSwuOTAwODIsLjg4NTgsLjk3Mjk2LDEuMDEyODQsLjk1NzgyLC44MzA4OSwxLjA5NzYsMS4wNCwxLjAzMzQyLDEuMiwxLjA2NzUsMS4wOTc2LC45ODIwNSwxLjAzODA5LDEuMDUwOTcsMS4wNCwuOTUzNjQsMS4wMzM0MiwxLjA1NDAxLDEuMiwxLjAyMTQ4LDEuMDExOSwxLjA0NzI0LDEuMDEyNywxLjAyNzMyLC45NjIyNSwuODk2NSwuOTc3ODMsLjkzNTc0LC45NDgxOCwxLjMwNjc5LDEuMDY3NSwxLjExODI2LC45OTgyMSwxLjA1NTcsMS4wMzI2LDEuMiwxLjA2NzUsLjk2MjI1LDEuMDY3NSwxLjAzMjYsLjc0ODE3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDM3NTQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg3NTMzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45ODcwNSwxLDEsMSwxLDEsMSwuOTg0NDgsLjk5NzMsLjk4NDQ4LC45OTczLC45ODQ0OCwuOTk3MywuODMwODksLjk2Nzc3LDEsMS4yMDA4OCwuODk5MDMsMSwxLC43NTE1NSwuOTQ5NDUsLjk0OTQ1LC45NDk0NSwuOTQ5NDUsMS4xMjMxNywxLjEyMzE3LDEuMTIzMTcsLjY3NjAzLC42NzYwMywxLjE1NjIxLC43MzU4NCwxLjIxMTkxLDEuMjIxMzUsMS4wNjQ4MywuOTQ4NjgsLjk0ODY4LC45NTk5NiwxLjI0NjMzLDEsMS4wNzQ5NywuODc3MDksLjk2OTI3LDEuMDE0NzMsLjk2OTI3LDEsMSwxLC43NzI5NSwxLDEsMS4wOTgzNiwxLjA5ODM2LDEuMDk4MzYsMS4wMTUyMiwuODYzMjEsLjk0NDM0LC44NjQ5LC45NDQzNCwuODYxODIsMSwxLDEuMDgzLDEsLjkxNTc4LC44NjQzOCwxLjE3MzA4LDEuMTg0MTYsMS4xNDU4OSwuNjk4MjUsLjk3NjIyLDEuOTY3OTEsMS4yNDgyMiwxLjI0ODIyLDEuMTczMDgsMS4yNDgyMiwxLjI0ODIyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xNzk4NCwxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTA3NDIsMS4xMDc0MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sT249e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LFpuPVsxLjc2NzM4LDEsMSwuOTg1OTQsMS4wMjI4NSwxLjEwNDU0LDEuMDYyMzQsLjk2OTI3LC45MjAzNywxLjE5OTg1LDEuMjA0NiwuOTA2MTYsLjkwNjE2LDEuMDcxNTIsMS4xNzE0LC43ODAzMiwxLjIwMDg4LC43ODAzMiwxLjQwMjQ2LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuNzgwMzIsLjc4MDMyLDEuMTcxNCwxLjE3MTQsMS4xNzE0LC44MDU5NywuOTQwODQsLjk2NzA2LC44NTk0NCwuODU3MzQsLjk3MDkzLC43NTg0MiwuNzk5MzYsLjg4MTk4LC45ODMxLC45NTc4MiwuNzEzODcsLjg2OTY5LC44NDYzNiwxLjA3Nzk2LDEuMDM1ODQsLjk2OTI0LC44Mzk2OCwuOTY5MjQsLjgyODI2LC43OTY0OSwuODU3NzEsLjk1MTMyLC45MzExOSwuOTg5NjUsLjg4NDMzLC44Mjg3LC45MzM2NSwxLjA4NjEyLDEuMzYzOCwxLjA4NjEyLDEuNDU3ODYsLjc0NjI3LC44MDQ5OSwuOTE0ODQsMS4wNTcwNywuOTIzODMsMS4wNTg4MiwuOTQwMywxLjEyNjU0LDEuMDU4ODIsMS4wMTc1NiwxLjA5MDExLDEuMDkwMTEsLjk5NDE0LDEuMDkwMTEsMS4wMzQsMS4wMTc1NiwxLjA1MzU2LDEuMDU3MDcsMS4wNTg4MiwxLjA0Mzk5LC44NDg2MywxLjIxOTY4LDEuMDE3NTYsLjk1ODAxLDEuMDAwNjgsLjkxNzk3LC45Njc3NywuOTA0MywuOTAzNTEsLjkyMTA1LC45MDM1MSwxLjE3MTQsLjg1MzM3LC45NjkyNywuOTY5MjcsLjk5OTEyLC45NjkyNywuOTIxMDUsLjgwNTk3LDEuMjQzNCwxLjIwODA4LDEuMDU5MzcsLjkwOTU3LDEuMTcxNCwxLjIwODA4LC43NTE1NSwuOTQyNjEsMS4yNDY0NCwxLjA5OTcxLDEuMDk5NzEsLjg0NzUxLDEsLjg1MjczLC43ODAzMiwuNjE1ODQsMS4wNTQyNSwxLjE3OTE0LC45MDk1NywxLjA4NjY1LDEuMTE1OTMsMS4xNDE2OSwuNzMzODEsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjg2MDM1LC44NTczNCwuNzU4NDIsLjc1ODQyLC43NTg0MiwuNzU4NDIsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45NzA5MywxLjAzNTg0LC45NjkyNCwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsMS4xNzE0LC45NjkyNCwuOTUxMzIsLjk1MTMyLC45NTEzMiwuOTUxMzIsLjgyODcsLjgzOTY4LC44OTA0OSwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTM1NzUsLjkyMzgzLC45NDAzLC45NDAzLC45NDAzLC45NDAzLC44NzE3LC44NzE3LC44NzE3LC44NzE3LDEuMDA1MjcsMS4wMTc1NiwxLjA1MzU2LDEuMDUzNTYsMS4wNTM1NiwxLjA1MzU2LDEuMDUzNTYsMS4yNDY0NCwuOTU5MjMsMS4wMTc1NiwxLjAxNzU2LDEuMDE3NTYsMS4wMTc1NiwuOTY3NzcsMS4wNTcwNywuOTY3NzcsLjk2NzA2LC45MTQ4NCwuOTY3MDYsLjkxNDg0LC45NjcwNiwuOTE0ODQsLjg1NzM0LC45MjM4MywuODU3MzQsLjkyMzgzLC44NTczNCwuOTIzODMsLjg1NzM0LC45MjM4MywuOTcwOTMsMS4wOTY5LC45NzA5MywxLjA1ODgyLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjg4MTk4LDEuMDU4ODIsLjg4MTk4LDEuMDU4ODIsLjg4MTk4LDEuMDU4ODIsMSwxLC45ODMxLDEuMDE3NTYsLjk4MzEsMS4wMTc1NiwuOTU3ODIsLjg3MTcsLjk1NzgyLC44NzE3LC45NTc4MiwuODcxNywuOTU3ODIsMS4wOTAxMSwuOTU3ODIsLjg3MTcsLjg0Nzg0LDEuMTE1NTEsLjcxMzg3LDEuMDkwMTEsMSwxLC45OTQxNCwuODQ2MzYsMS4wOTAxMSwxLDEsLjg0NjM2LDEuMDUzNiwuODQ2MzYsLjk0Mjk4LC44NDYzNiwxLjIzMjk3LDEuMDM1ODQsMS4wMTc1NiwxLDEsMS4wMzU4NCwxLjAxNzU2LDEuMDAzMjMsMS4wMzQ0NCwxLjAxNzU2LC45NjkyNCwxLjA1MzU2LC45NjkyNCwxLjA1MzU2LC45NjkyNCwxLjA1MzU2LC45MzA2NiwuOTgyOTMsLjgyODI2LDEuMDQzOTksMSwxLC44MjgyNiwxLjA0Mzk5LC43OTY0OSwuODQ4NjMsLjc5NjQ5LC44NDg2MywuNzk2NDksLjg0ODYzLC43OTY0OSwuODQ4NjMsMSwxLC44NTc3MSwxLjE3MzE4LC44NTc3MSwxLjIxOTY4LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45ODk2NSwxLjAwMDY4LC44Mjg3LC45Njc3NywuODI4NywuOTMzNjUsLjkwNDMsLjkzMzY1LC45MDQzLC45MzM2NSwuOTA0MywxLjA4NTcxLC45NjkyNywuOTY3MDYsLjkxNDg0LC44NjAzNSwuOTM1NzUsLjk2OTI0LC45NTkyMywxLDEsLjg1NzcxLDEuMjE5NjgsMS4xMTQzNywxLjExNDM3LC45MzEwOSwuOTEyMDIsLjYwNDExLC44NDE2NCwuNTU1NzIsMS4wMTE3MywuOTczNjEsLjgxODE4LC44MTgxOCwuOTY2MzUsLjc4MDMyLC43MjcyNywuOTIzNjYsLjk4NjAxLDEuMDM0MDUsLjc3OTY4LDEuMDk3OTksMS4yLC45NjcwNiwuODU5NDQsLjg1NjM4LC45NjQ5MSwuNzU4NDIsLjkzMzY1LC45ODMxLC45NjkyNCwuOTU3ODIsLjg2OTY5LC45NDE1MiwxLjA3Nzk2LDEuMDM1ODQsLjc4NDM3LC45NjkyNCwuOTg3MTUsLjgzOTY4LC44MzQ5MSwuODU3NzEsLjgyODcsLjk0NDkyLC44ODQzMywuOTI4NywxLjAwOTgsLjk1NzgyLC44Mjg3LDEuMDYyNSwuOTgyNDgsMS4wMzQyNCwxLjIsMS4wMTA3MSwxLjA2MjUsLjk1MjQ2LDEuMDM4MDksMS4wNDkxMiwuOTgyNDgsMS4wMDIyMSwxLjAzNDI0LDEuMDU0NDMsMS4yLDEuMDQ3ODUsLjk5NjA5LDEuMDAxNjksMS4wNTE3NiwuOTkzNDYsMS4wNTM1NiwuOTA4NywxLjAzMDA0LC45NTU0MiwuOTMxMTcsMS4yMzM2MiwxLjAxMDcxLDEuMDc4MzEsMS4wMjUxMiwxLjA1MjA1LDEuMDM1MDIsMS4yLDEuMDEwNzEsMS4wNTM1NiwxLjAxMDcxLDEuMDM1MDIsLjc1ODQyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDM3MTksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk0MDMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNDAyMSwxLDEsMSwxLDEsMSwuOTg5NjUsMS4wMDA2OCwuOTg5NjUsMS4wMDA2OCwuOTg5NjUsMS4wMDA2OCwuODI4NywuOTY3NzcsMSwxLjIwMDg4LC44OTkwMywxLDEsLjc1MTU1LDEuMDMwNzcsMS4wMzA3NywxLjAzMDc3LDEuMDMwNzcsMS4xMzE5NiwxLjEzMTk2LDEuMTMxOTYsLjY3NDI4LC42NzQyOCwxLjE2MDM5LC43MzI5MSwxLjIwOTk2LDEuMjIxMzUsMS4wNjQ4MywuOTQ4NjgsLjk0ODY4LC45NTk5NiwxLjI0NjMzLDEsMS4wNzQ5NywuODc3OTYsLjk2OTI3LDEuMDE1MTgsLjk2OTI3LDEsMSwxLC43NzI5NSwxLDEsMS4xMDUzOSwxLjEwNTM5LDEuMTEzNTgsMS4wNjk2NywuODYyNzksLjk0NDM0LC44NjI3OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjA4MywxLC45MTU3OCwuODY1MDcsMS4xNzE0LDEuMTg0MTYsMS4xNDU4OSwuNjk4MjUsLjk3NjIyLDEuOTY5NywxLjI0ODIyLDEuMjQ4MjIsMS4xNzIzOCwxLjI0ODIyLDEuMjQ4MjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjQyNjAzLDEsLjk5ODYyLC45OTg2MiwxLC44NzAyNSwuODcwMjUsLjg3MDI1LC44NzAyNSwxLjE4MDgzLDEuNDI2MDMsMSwxLjQyNjAzLDEuNDI2MDMsLjk5ODYyLDEsMSwxLDEsMSwxLjI4ODYsMS4wNDMxNSwxLjE1Mjk2LDEuMzQxNjMsMSwxLDEsMS4xMDkzOCwxLjEwOTM4LDEsMSwxLDEuMDU0MjUsMS4wOTk3MSwxLjA5OTcxLDEuMDk5NzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxqbj17bGluZUhlaWdodDoxLjMzMDA4LGxpbmVHYXA6MH0sWG49YkEoKGZ1bmN0aW9uKEEpe0FbIk15cmlhZFByby1SZWd1bGFyIl09QVsiUGRmSlMtRmFsbGJhY2stUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOlluLGJhc2VXaWR0aHM6R24sYmFzZU1hcHBpbmc6Tm4sbWV0cmljczp2bn0sQVsiTXlyaWFkUHJvLUJvbGQiXT1BWyJQZGZKUy1GYWxsYmFjay1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6eG4sYmFzZVdpZHRoczpEbixiYXNlTWFwcGluZzpibixtZXRyaWNzOlVufSxBWyJNeXJpYWRQcm8tSXQiXT1BWyJNeXJpYWRQcm8tSXRhbGljIl09QVsiUGRmSlMtRmFsbGJhY2stSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpKbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6SG59LEFbIk15cmlhZFByby1Cb2xkSXQiXT1BWyJNeXJpYWRQcm8tQm9sZEl0YWxpYyJdPUFbIlBkZkpTLUZhbGxiYWNrLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczpNbixiYXNlV2lkdGhzOmtuLGJhc2VNYXBwaW5nOkZuLG1ldHJpY3M6TG59LEEuQXJpYWxNVD1BLkFyaWFsPUFbIkFyaWFsLVJlZ3VsYXIiXT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsYmFzZVdpZHRoczpHbixiYXNlTWFwcGluZzpObn0sQVsiQXJpYWwtQm9sZE1UIl09QVsiQXJpYWwtQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixiYXNlV2lkdGhzOkRuLGJhc2VNYXBwaW5nOmJufSxBWyJBcmlhbC1JdGFsaWNNVCJdPUFbIkFyaWFsLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGJhc2VXaWR0aHM6U24sYmFzZU1hcHBpbmc6Um59LEFbIkFyaWFsLUJvbGRJdGFsaWNNVCJdPUFbIkFyaWFsLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsYmFzZVdpZHRoczprbixiYXNlTWFwcGluZzpGbn0sQVsiQ2FsaWJyaS1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6bG4sYmFzZVdpZHRoczpHbixiYXNlTWFwcGluZzpObixtZXRyaWNzOlFufSxBWyJDYWxpYnJpLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsZmFjdG9yczpvbixiYXNlV2lkdGhzOkRuLGJhc2VNYXBwaW5nOmJuLG1ldHJpY3M6SW59LEFbIkNhbGlicmktSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpDbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6Qm59LEFbIkNhbGlicmktQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOmNuLGJhc2VXaWR0aHM6a24sYmFzZU1hcHBpbmc6Rm4sbWV0cmljczpobn0sQVsiU2Vnb2V1aS1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6Wm4sYmFzZVdpZHRoczpHbixiYXNlTWFwcGluZzpObixtZXRyaWNzOmpufSxBWyJTZWdvZXVpLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsZmFjdG9yczpLbixiYXNlV2lkdGhzOkRuLGJhc2VNYXBwaW5nOmJuLG1ldHJpY3M6cW59LEFbIlNlZ29ldWktSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpXbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6T259LEFbIlNlZ29ldWktQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOlRuLGJhc2VXaWR0aHM6a24sYmFzZU1hcHBpbmc6Rm4sbWV0cmljczpQbn0sQVsiSGVsdmV0aWNhLVJlZ3VsYXIiXT1BLkhlbHZldGljYT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsZmFjdG9yczp5bixiYXNlV2lkdGhzOkduLGJhc2VNYXBwaW5nOk5uLG1ldHJpY3M6d259LEFbIkhlbHZldGljYS1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6RW4sYmFzZVdpZHRoczpEbixiYXNlTWFwcGluZzpibixtZXRyaWNzOnVufSxBWyJIZWx2ZXRpY2EtSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpwbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6bW59LEFbIkhlbHZldGljYS1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGZhY3RvcnM6ZG4sYmFzZVdpZHRoczprbixiYXNlTWFwcGluZzpGbixtZXRyaWNzOmZufX0pKTtmdW5jdGlvbiBWbihBKXtjb25zdCBlPWRhKEEpO3JldHVybiBYbigpW2VdfWZ1bmN0aW9uIF9uKEEpe2NvbnN0IGU9ZnVuY3Rpb24oQSl7Y29uc3QgZT1WbihBKTtpZighZSlyZXR1cm4gbnVsbDtjb25zdHtiYXNlV2lkdGhzOnQsYmFzZU1hcHBpbmc6aSxmYWN0b3JzOmF9PWUscz1hP3QubWFwKCgoQSxlKT0+QSphW2VdKSk6dDtsZXQgbixyPS0yO2NvbnN0IGc9W107Zm9yKGNvbnN0W0EsZV1vZiBpLm1hcCgoKEEsZSk9PltBLGVdKSkuc29ydCgoKFtBXSxbZV0pPT5BLWUpKSktMSE9PUEmJihBPT09cisxPyhuLnB1c2goc1tlXSkscis9MSk6KHI9QSxuPVtzW2VdXSxnLnB1c2goQSxuKSkpO3JldHVybiBnfShBKSx0PW5ldyBRQShudWxsKTt0LnNldCgiQmFzZUZvbnQiLENBLmdldChBKSksdC5zZXQoIlR5cGUiLENBLmdldCgiRm9udCIpKSx0LnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJDSURGb250VHlwZTIiKSksdC5zZXQoIkVuY29kaW5nIixDQS5nZXQoIklkZW50aXR5LUgiKSksdC5zZXQoIkNJRFRvR0lETWFwIixDQS5nZXQoIklkZW50aXR5IikpLHQuc2V0KCJXIixlKSx0LnNldCgiRmlyc3RDaGFyIixlWzBdKSx0LnNldCgiTGFzdENoYXIiLGUuYXQoLTIpK2UuYXQoLTEpLmxlbmd0aC0xKTtjb25zdCBpPW5ldyBRQShudWxsKTt0LnNldCgiRm9udERlc2NyaXB0b3IiLGkpO2NvbnN0IGE9bmV3IFFBKG51bGwpO3JldHVybiBhLnNldCgiT3JkZXJpbmciLCJJZGVudGl0eSIpLGEuc2V0KCJSZWdpc3RyeSIsIkFkb2JlIiksYS5zZXQoIlN1cHBsZW1lbnQiLDApLHQuc2V0KCJDSURTeXN0ZW1JbmZvIixhKSx0fWNsYXNzIHpue2NvbnN0cnVjdG9yKEEpe3RoaXMubGV4ZXI9QSx0aGlzLm9wZXJhdG9ycz1bXSx0aGlzLnRva2VuPW51bGwsdGhpcy5wcmV2PW51bGx9bmV4dFRva2VuKCl7dGhpcy5wcmV2PXRoaXMudG9rZW4sdGhpcy50b2tlbj10aGlzLmxleGVyLmdldFRva2VuKCl9YWNjZXB0KEEpe3JldHVybiB0aGlzLnRva2VuLnR5cGU9PT1BJiYodGhpcy5uZXh0VG9rZW4oKSwhMCl9ZXhwZWN0KEEpe2lmKHRoaXMuYWNjZXB0KEEpKXJldHVybiEwO3Rocm93IG5ldyBXKGBVbmV4cGVjdGVkIHN5bWJvbDogZm91bmQgJHt0aGlzLnRva2VuLnR5cGV9IGV4cGVjdGVkICR7QX0uYCl9cGFyc2UoKXtyZXR1cm4gdGhpcy5uZXh0VG9rZW4oKSx0aGlzLmV4cGVjdCgkbi5MQlJBQ0UpLHRoaXMucGFyc2VCbG9jaygpLHRoaXMuZXhwZWN0KCRuLlJCUkFDRSksdGhpcy5vcGVyYXRvcnN9cGFyc2VCbG9jaygpe2Zvcig7OylpZih0aGlzLmFjY2VwdCgkbi5OVU1CRVIpKXRoaXMub3BlcmF0b3JzLnB1c2godGhpcy5wcmV2LnZhbHVlKTtlbHNlIGlmKHRoaXMuYWNjZXB0KCRuLk9QRVJBVE9SKSl0aGlzLm9wZXJhdG9ycy5wdXNoKHRoaXMucHJldi52YWx1ZSk7ZWxzZXtpZighdGhpcy5hY2NlcHQoJG4uTEJSQUNFKSlyZXR1cm47dGhpcy5wYXJzZUNvbmRpdGlvbigpfX1wYXJzZUNvbmRpdGlvbigpe2NvbnN0IEE9dGhpcy5vcGVyYXRvcnMubGVuZ3RoO2lmKHRoaXMub3BlcmF0b3JzLnB1c2gobnVsbCxudWxsKSx0aGlzLnBhcnNlQmxvY2soKSx0aGlzLmV4cGVjdCgkbi5SQlJBQ0UpLHRoaXMuYWNjZXB0KCRuLklGKSl0aGlzLm9wZXJhdG9yc1tBXT10aGlzLm9wZXJhdG9ycy5sZW5ndGgsdGhpcy5vcGVyYXRvcnNbQSsxXT0ianoiO2Vsc2V7aWYoIXRoaXMuYWNjZXB0KCRuLkxCUkFDRSkpdGhyb3cgbmV3IFcoIlBTIEZ1bmN0aW9uOiBlcnJvciBwYXJzaW5nIGNvbmRpdGlvbmFsLiIpO3tjb25zdCBlPXRoaXMub3BlcmF0b3JzLmxlbmd0aDt0aGlzLm9wZXJhdG9ycy5wdXNoKG51bGwsbnVsbCk7Y29uc3QgdD10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5wYXJzZUJsb2NrKCksdGhpcy5leHBlY3QoJG4uUkJSQUNFKSx0aGlzLmV4cGVjdCgkbi5JRkVMU0UpLHRoaXMub3BlcmF0b3JzW2VdPXRoaXMub3BlcmF0b3JzLmxlbmd0aCx0aGlzLm9wZXJhdG9yc1tlKzFdPSJqIix0aGlzLm9wZXJhdG9yc1tBXT10LHRoaXMub3BlcmF0b3JzW0ErMV09Imp6In19fX1jb25zdCAkbj17TEJSQUNFOjAsUkJSQUNFOjEsTlVNQkVSOjIsT1BFUkFUT1I6MyxJRjo0LElGRUxTRTo1fTtjbGFzcyBBcntzdGF0aWMgZ2V0IG9wQ2FjaGUoKXtyZXR1cm4gSCh0aGlzLCJvcENhY2hlIixPYmplY3QuY3JlYXRlKG51bGwpKX1jb25zdHJ1Y3RvcihBLGUpe3RoaXMudHlwZT1BLHRoaXMudmFsdWU9ZX1zdGF0aWMgZ2V0T3BlcmF0b3IoQSl7cmV0dXJuIEFyLm9wQ2FjaGVbQV18fD1uZXcgQXIoJG4uT1BFUkFUT1IsQSl9c3RhdGljIGdldCBMQlJBQ0UoKXtyZXR1cm4gSCh0aGlzLCJMQlJBQ0UiLG5ldyBBcigkbi5MQlJBQ0UsInsiKSl9c3RhdGljIGdldCBSQlJBQ0UoKXtyZXR1cm4gSCh0aGlzLCJSQlJBQ0UiLG5ldyBBcigkbi5SQlJBQ0UsIn0iKSl9c3RhdGljIGdldCBJRigpe3JldHVybiBIKHRoaXMsIklGIixuZXcgQXIoJG4uSUYsIklGIikpfXN0YXRpYyBnZXQgSUZFTFNFKCl7cmV0dXJuIEgodGhpcywiSUZFTFNFIixuZXcgQXIoJG4uSUZFTFNFLCJJRkVMU0UiKSl9fWNsYXNzIGVye2NvbnN0cnVjdG9yKEEpe3RoaXMuc3RyZWFtPUEsdGhpcy5uZXh0Q2hhcigpLHRoaXMuc3RyQnVmPVtdfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfWdldFRva2VuKCl7bGV0IEE9ITEsZT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYoZTwwKXJldHVybiBvQTtpZihBKTEwIT09ZSYmMTMhPT1lfHwoQT0hMSk7ZWxzZSBpZigzNz09PWUpQT0hMDtlbHNlIGlmKCFZQShlKSlicmVhaztlPXRoaXMubmV4dENoYXIoKX1zd2l0Y2goMHxlKXtjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OmNhc2UgNDM6Y2FzZSA0NTpjYXNlIDQ2OnJldHVybiBuZXcgQXIoJG4uTlVNQkVSLHRoaXMuZ2V0TnVtYmVyKCkpO2Nhc2UgMTIzOnJldHVybiB0aGlzLm5leHRDaGFyKCksQXIuTEJSQUNFO2Nhc2UgMTI1OnJldHVybiB0aGlzLm5leHRDaGFyKCksQXIuUkJSQUNFfWNvbnN0IHQ9dGhpcy5zdHJCdWY7Zm9yKHQubGVuZ3RoPTAsdFswXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpOyhlPXRoaXMubmV4dENoYXIoKSk+PTAmJihlPj02NSYmZTw9OTB8fGU+PTk3JiZlPD0xMjIpOyl0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7Y29uc3QgaT10LmpvaW4oIiIpO3N3aXRjaChpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaWYiOnJldHVybiBBci5JRjtjYXNlImlmZWxzZSI6cmV0dXJuIEFyLklGRUxTRTtkZWZhdWx0OnJldHVybiBBci5nZXRPcGVyYXRvcihpKX19Z2V0TnVtYmVyKCl7bGV0IEE9dGhpcy5jdXJyZW50Q2hhcjtjb25zdCBlPXRoaXMuc3RyQnVmO2ZvcihlLmxlbmd0aD0wLGVbMF09U3RyaW5nLmZyb21DaGFyQ29kZShBKTsoQT10aGlzLm5leHRDaGFyKCkpPj0wJiYoQT49NDgmJkE8PTU3fHw0NT09PUF8fDQ2PT09QSk7KWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKEEpKTtjb25zdCB0PXBhcnNlRmxvYXQoZS5qb2luKCIiKSk7aWYoaXNOYU4odCkpdGhyb3cgbmV3IFcoYEludmFsaWQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyOiAke3R9YCk7cmV0dXJuIHR9fWNsYXNzIHRye2NvbnN0cnVjdG9yKEEpe3RoaXMuX29ubHlSZWZzPSEwPT09QT8ub25seVJlZnMsdGhpcy5fb25seVJlZnN8fCh0aGlzLl9uYW1lUmVmTWFwPW5ldyBNYXAsdGhpcy5faW1hZ2VNYXA9bmV3IE1hcCksdGhpcy5faW1hZ2VDYWNoZT1uZXcgZEF9Z2V0QnlOYW1lKEEpe3RoaXMuX29ubHlSZWZzJiZNKCJTaG91bGQgbm90IGNhbGwgYGdldEJ5TmFtZWAgbWV0aG9kLiIpO2NvbnN0IGU9dGhpcy5fbmFtZVJlZk1hcC5nZXQoQSk7cmV0dXJuIGU/dGhpcy5nZXRCeVJlZihlKTp0aGlzLl9pbWFnZU1hcC5nZXQoQSl8fG51bGx9Z2V0QnlSZWYoQSl7cmV0dXJuIHRoaXMuX2ltYWdlQ2FjaGUuZ2V0KEEpfHxudWxsfXNldChBLGUsdCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBzZXRgIGNhbGxlZC4iKX19Y2xhc3MgaXIgZXh0ZW5kcyB0cntzZXQoQSxlPW51bGwsdCl7aWYoInN0cmluZyIhPXR5cGVvZiBBKXRocm93IG5ldyBFcnJvcignTG9jYWxJbWFnZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhcmd1bWVudC4nKTtpZihlKXtpZih0aGlzLl9pbWFnZUNhY2hlLmhhcyhlKSlyZXR1cm47cmV0dXJuIHRoaXMuX25hbWVSZWZNYXAuc2V0KEEsZSksdm9pZCB0aGlzLl9pbWFnZUNhY2hlLnB1dChlLHQpfXRoaXMuX2ltYWdlTWFwLmhhcyhBKXx8dGhpcy5faW1hZ2VNYXAuc2V0KEEsdCl9fWNsYXNzIGFyIGV4dGVuZHMgdHJ7c2V0KEE9bnVsbCxlPW51bGwsdCl7aWYoInN0cmluZyIhPXR5cGVvZiBBJiYhZSl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsQ29sb3JTcGFjZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhbmQvb3IgInJlZiIgYXJndW1lbnQuJyk7aWYoZSl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXMoZSkpcmV0dXJuO3JldHVybiBudWxsIT09QSYmdGhpcy5fbmFtZVJlZk1hcC5zZXQoQSxlKSx2b2lkIHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9dGhpcy5faW1hZ2VNYXAuaGFzKEEpfHx0aGlzLl9pbWFnZU1hcC5zZXQoQSx0KX19Y2xhc3Mgc3IgZXh0ZW5kcyB0cntjb25zdHJ1Y3RvcihBKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoQT1udWxsLGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCdMb2NhbEZ1bmN0aW9uQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXMoZSl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9fWNsYXNzIG5yIGV4dGVuZHMgdHJ7c2V0KEEsZT1udWxsLHQpe2lmKCJzdHJpbmciIT10eXBlb2YgQSl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsR1N0YXRlQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgIm5hbWUiIGFyZ3VtZW50LicpO2lmKGUpe2lmKHRoaXMuX2ltYWdlQ2FjaGUuaGFzKGUpKXJldHVybjtyZXR1cm4gdGhpcy5fbmFtZVJlZk1hcC5zZXQoQSxlKSx2b2lkIHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9dGhpcy5faW1hZ2VNYXAuaGFzKEEpfHx0aGlzLl9pbWFnZU1hcC5zZXQoQSx0KX19Y2xhc3MgcnIgZXh0ZW5kcyB0cntjb25zdHJ1Y3RvcihBKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoQT1udWxsLGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCdMb2NhbFRpbGluZ1BhdHRlcm5DYWNoZS5zZXQgLSBleHBlY3RlZCAicmVmIiBhcmd1bWVudC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyhlKXx8dGhpcy5faW1hZ2VDYWNoZS5wdXQoZSx0KX19Y2xhc3MgZ3IgZXh0ZW5kcyB0cntjb25zdHJ1Y3RvcihBKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoQT1udWxsLGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCdSZWdpb25hbEltYWdlQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXMoZSl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9fWNsYXNzIG9ye3N0YXRpYyBOVU1fUEFHRVNfVEhSRVNIT0xEPTI7c3RhdGljIE1JTl9JTUFHRVNfVE9fQ0FDSEU9MTA7c3RhdGljIE1BWF9CWVRFX1NJWkU9NWU3OyNEPW5ldyB1QTtjb25zdHJ1Y3Rvcigpe3RoaXMuX3JlZkNhY2hlPW5ldyBkQSx0aGlzLl9pbWFnZUNhY2hlPW5ldyBkQX1nZXQjYigpe2xldCBBPTA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5faW1hZ2VDYWNoZSlBKz1lLmJ5dGVTaXplO3JldHVybiBBfWdldCNrKCl7cmV0dXJuISh0aGlzLl9pbWFnZUNhY2hlLnNpemU8b3IuTUlOX0lNQUdFU19UT19DQUNIRXx8dGhpcy4jYjxvci5NQVhfQllURV9TSVpFKX1zaG91bGRDYWNoZShBLGUpe2xldCB0PXRoaXMuX3JlZkNhY2hlLmdldChBKTtyZXR1cm4gdHx8KHQ9bmV3IFNldCx0aGlzLl9yZWZDYWNoZS5wdXQoQSx0KSksdC5hZGQoZSksISh0LnNpemU8b3IuTlVNX1BBR0VTX1RIUkVTSE9MRHx8IXRoaXMuX2ltYWdlQ2FjaGUuaGFzKEEpJiZ0aGlzLiNrKX1hZGREZWNvZGVGYWlsZWQoQSl7dGhpcy4jRC5wdXQoQSl9aGFzRGVjb2RlRmFpbGVkKEEpe3JldHVybiB0aGlzLiNELmhhcyhBKX1hZGRCeXRlU2l6ZShBLGUpe2NvbnN0IHQ9dGhpcy5faW1hZ2VDYWNoZS5nZXQoQSk7dCYmKHQuYnl0ZVNpemV8fCh0LmJ5dGVTaXplPWUpKX1nZXREYXRhKEEsZSl7Y29uc3QgdD10aGlzLl9yZWZDYWNoZS5nZXQoQSk7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5zaXplPG9yLk5VTV9QQUdFU19USFJFU0hPTEQpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLl9pbWFnZUNhY2hlLmdldChBKTtyZXR1cm4gaT8odC5hZGQoZSksaSk6bnVsbH1zZXREYXRhKEEsZSl7aWYoIXRoaXMuX3JlZkNhY2hlLmhhcyhBKSl0aHJvdyBuZXcgRXJyb3IoJ0dsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YSAtIGV4cGVjdGVkICJzaG91bGRDYWNoZSIgdG8gaGF2ZSBiZWVuIGNhbGxlZC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyhBKXx8KHRoaXMuI2s/VSgiR2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhIC0gY2FjaGUgbGltaXQgcmVhY2hlZC4iKTp0aGlzLl9pbWFnZUNhY2hlLnB1dChBLGUpKX1jbGVhcihBPSExKXtBfHwodGhpcy4jRC5jbGVhcigpLHRoaXMuX3JlZkNhY2hlLmNsZWFyKCkpLHRoaXMuX2ltYWdlQ2FjaGUuY2xlYXIoKX19Y2xhc3MgSXJ7Y29uc3RydWN0b3Ioe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZT0hMH0pe3RoaXMueHJlZj1BLHRoaXMuaXNFdmFsU3VwcG9ydGVkPSExIT09ZX1jcmVhdGUoQSl7Y29uc3QgZT10aGlzLmdldENhY2hlZChBKTtpZihlKXJldHVybiBlO2NvbnN0IHQ9aHIucGFyc2Uoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmlzRXZhbFN1cHBvcnRlZCxmbjpBIGluc3RhbmNlb2YgRUE/dGhpcy54cmVmLmZldGNoKEEpOkF9KTtyZXR1cm4gdGhpcy5fY2FjaGUoQSx0KSx0fWNyZWF0ZUZyb21BcnJheShBKXtjb25zdCBlPXRoaXMuZ2V0Q2FjaGVkKEEpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD1oci5wYXJzZUFycmF5KHt4cmVmOnRoaXMueHJlZixpc0V2YWxTdXBwb3J0ZWQ6dGhpcy5pc0V2YWxTdXBwb3J0ZWQsZm5PYmo6QSBpbnN0YW5jZW9mIEVBP3RoaXMueHJlZi5mZXRjaChBKTpBfSk7cmV0dXJuIHRoaXMuX2NhY2hlKEEsdCksdH1nZXRDYWNoZWQoQSl7bGV0IGU7aWYoQSBpbnN0YW5jZW9mIEVBP2U9QTpBIGluc3RhbmNlb2YgUUE/ZT1BLm9iaklkOkEgaW5zdGFuY2VvZiB3QSYmKGU9QS5kaWN0Py5vYmpJZCksZSl7Y29uc3QgQT10aGlzLl9sb2NhbEZ1bmN0aW9uQ2FjaGUuZ2V0QnlSZWYoZSk7aWYoQSlyZXR1cm4gQX1yZXR1cm4gbnVsbH1fY2FjaGUoQSxlKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoJ1BERkZ1bmN0aW9uRmFjdG9yeS5fY2FjaGUgLSBleHBlY3RlZCAicGFyc2VkRnVuY3Rpb24iIGFyZ3VtZW50LicpO2xldCB0O0EgaW5zdGFuY2VvZiBFQT90PUE6QSBpbnN0YW5jZW9mIFFBP3Q9QS5vYmpJZDpBIGluc3RhbmNlb2Ygd0EmJih0PUEuZGljdD8ub2JqSWQpLHQmJnRoaXMuX2xvY2FsRnVuY3Rpb25DYWNoZS5zZXQobnVsbCx0LGUpfWdldCBfbG9jYWxGdW5jdGlvbkNhY2hlKCl7cmV0dXJuIEgodGhpcywiX2xvY2FsRnVuY3Rpb25DYWNoZSIsbmV3IHNyKX19ZnVuY3Rpb24gY3IoQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSk/dkEoQSxudWxsKT9BOkEubWFwKChBPT4rQSkpOm51bGx9Y2xhc3MgaHJ7c3RhdGljIGdldFNhbXBsZUFycmF5KEEsZSx0LGkpe2xldCBhLHMsbj0xO2ZvcihhPTAscz1BLmxlbmd0aDthPHM7YSsrKW4qPUFbYV07bio9ZTtjb25zdCByPW5ldyBBcnJheShuKTtsZXQgZz0wLG89MDtjb25zdCBJPTEvKDIqKnQtMSksYz1pLmdldEJ5dGVzKChuKnQrNykvOCk7bGV0IGg9MDtmb3IoYT0wO2E8bjthKyspe2Zvcig7Zzx0OylvPDw9OCxvfD1jW2grK10sZys9ODtnLT10LHJbYV09KG8+PmcpKkksbyY9KDE8PGcpLTF9cmV0dXJuIHJ9c3RhdGljIHBhcnNlKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dH0pe2NvbnN0IGk9dC5kaWN0fHx0O3N3aXRjaChpLmdldCgiRnVuY3Rpb25UeXBlIikpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RTYW1wbGVkKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dCxkaWN0Oml9KTtjYXNlIDE6YnJlYWs7Y2FzZSAyOnJldHVybiB0aGlzLmNvbnN0cnVjdEludGVycG9sYXRlZCh7eHJlZjpBLGlzRXZhbFN1cHBvcnRlZDplLGRpY3Q6aX0pO2Nhc2UgMzpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RTdGljaGVkKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZGljdDppfSk7Y2FzZSA0OnJldHVybiB0aGlzLmNvbnN0cnVjdFBvc3RTY3JpcHQoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxmbjp0LGRpY3Q6aX0pfXRocm93IG5ldyBXKCJVbmtub3duIHR5cGUgb2YgZnVuY3Rpb24iKX1zdGF0aWMgcGFyc2VBcnJheSh7eHJlZjpBLGlzRXZhbFN1cHBvcnRlZDplLGZuT2JqOnR9KXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdGhpcy5wYXJzZSh7eHJlZjpBLGlzRXZhbFN1cHBvcnRlZDplLGZuOnR9KTtjb25zdCBpPVtdO2Zvcihjb25zdCBhIG9mIHQpaS5wdXNoKHRoaXMucGFyc2Uoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxmbjpBLmZldGNoSWZSZWYoYSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEEsZSx0LGEpe2ZvcihsZXQgcz0wLG49aS5sZW5ndGg7czxuO3MrKylpW3NdKEEsZSx0LGErcyl9fXN0YXRpYyBjb25zdHJ1Y3RTYW1wbGVkKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dCxkaWN0Oml9KXtmdW5jdGlvbiBhKEEpe2NvbnN0IGU9QS5sZW5ndGgsdD1bXTtsZXQgaT0wO2ZvcihsZXQgYT0wO2E8ZTthKz0yKXRbaSsrXT1bQVthXSxBW2ErMV1dO3JldHVybiB0fWZ1bmN0aW9uIHMoQSxlLHQsaSxhKXtyZXR1cm4gaSsoYS1pKS8odC1lKSooQS1lKX1sZXQgbj1jcihpLmdldEFycmF5KCJEb21haW4iKSkscj1jcihpLmdldEFycmF5KCJSYW5nZSIpKTtpZighbnx8IXIpdGhyb3cgbmV3IFcoIk5vIGRvbWFpbiBvciByYW5nZSIpO2NvbnN0IGc9bi5sZW5ndGgvMixvPXIubGVuZ3RoLzI7bj1hKG4pLHI9YShyKTtjb25zdCBJPWNyKGkuZ2V0QXJyYXkoIlNpemUiKSksYz1pLmdldCgiQml0c1BlclNhbXBsZSIpLGg9aS5nZXQoIk9yZGVyIil8fDE7MSE9PWgmJngoIk5vIHN1cHBvcnQgZm9yIGN1YmljIHNwbGluZSBpbnRlcnBvbGF0aW9uOiAiK2gpO2xldCBDPWNyKGkuZ2V0QXJyYXkoIkVuY29kZSIpKTtpZihDKUM9YShDKTtlbHNle0M9W107Zm9yKGxldCBBPTA7QTxnOysrQSlDLnB1c2goWzAsSVtBXS0xXSl9bGV0IEI9Y3IoaS5nZXRBcnJheSgiRGVjb2RlIikpO0I9Qj9hKEIpOnI7Y29uc3QgbD10aGlzLmdldFNhbXBsZUFycmF5KEksbyxjLHQpO3JldHVybiBmdW5jdGlvbihBLGUsdCxpKXtjb25zdCBhPTE8PGcsYz1uZXcgRmxvYXQ2NEFycmF5KGEpLGg9bmV3IFVpbnQzMkFycmF5KGEpO2xldCBRLEU7Zm9yKEU9MDtFPGE7RSsrKWNbRV09MTtsZXQgdT1vLGQ9MTtmb3IoUT0wO1E8ZzsrK1Epe2NvbnN0IHQ9bltRXVswXSxpPW5bUV1bMV07bGV0IHI9cyhNYXRoLm1pbihNYXRoLm1heChBW2UrUV0sdCksaSksdCxpLENbUV1bMF0sQ1tRXVsxXSk7Y29uc3QgZz1JW1FdO3I9TWF0aC5taW4oTWF0aC5tYXgociwwKSxnLTEpO2NvbnN0IG89cjxnLTE/TWF0aC5mbG9vcihyKTpyLTEsQj1vKzEtcixsPXItbyxmPW8qdSxwPWYrdTtmb3IoRT0wO0U8YTtFKyspRSZkPyhjW0VdKj1sLGhbRV0rPXApOihjW0VdKj1CLGhbRV0rPWYpO3UqPWcsZDw8PTF9Zm9yKEU9MDtFPG87KytFKXtsZXQgQT0wO2ZvcihRPTA7UTxhO1ErKylBKz1sW2hbUV0rRV0qY1tRXTtBPXMoQSwwLDEsQltFXVswXSxCW0VdWzFdKSx0W2krRV09TWF0aC5taW4oTWF0aC5tYXgoQSxyW0VdWzBdKSxyW0VdWzFdKX19fXN0YXRpYyBjb25zdHJ1Y3RJbnRlcnBvbGF0ZWQoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxkaWN0OnR9KXtjb25zdCBpPWNyKHQuZ2V0QXJyYXkoIkMwIikpfHxbMF0sYT1jcih0LmdldEFycmF5KCJDMSIpKXx8WzFdLHM9dC5nZXQoIk4iKSxuPVtdO2ZvcihsZXQgQT0wLGU9aS5sZW5ndGg7QTxlOysrQSluLnB1c2goYVtBXS1pW0FdKTtjb25zdCByPW4ubGVuZ3RoO3JldHVybiBmdW5jdGlvbihBLGUsdCxhKXtjb25zdCBnPTE9PT1zP0FbZV06QVtlXSoqcztmb3IobGV0IEE9MDtBPHI7KytBKXRbYStBXT1pW0FdK2cqbltBXX19c3RhdGljIGNvbnN0cnVjdFN0aWNoZWQoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxkaWN0OnR9KXtjb25zdCBpPWNyKHQuZ2V0QXJyYXkoIkRvbWFpbiIpKTtpZighaSl0aHJvdyBuZXcgVygiTm8gZG9tYWluIik7aWYoMSE9aS5sZW5ndGgvMil0aHJvdyBuZXcgVygiQmFkIGRvbWFpbiBmb3Igc3RpY2hlZCBmdW5jdGlvbiIpO2NvbnN0IGE9W107Zm9yKGNvbnN0IGkgb2YgdC5nZXQoIkZ1bmN0aW9ucyIpKWEucHVzaCh0aGlzLnBhcnNlKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46QS5mZXRjaElmUmVmKGkpfSkpO2NvbnN0IHM9Y3IodC5nZXRBcnJheSgiQm91bmRzIikpLG49Y3IodC5nZXRBcnJheSgiRW5jb2RlIikpLHI9bmV3IEZsb2F0MzJBcnJheSgxKTtyZXR1cm4gZnVuY3Rpb24oQSxlLHQsZyl7Y29uc3Qgbz1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIEE+dD9BPXQ6QTxlJiYoQT1lKSxBfShBW2VdLGlbMF0saVsxXSksST1zLmxlbmd0aDtsZXQgYztmb3IoYz0wO2M8SSYmIShvPHNbY10pOysrYyk7bGV0IGg9aVswXTtjPjAmJihoPXNbYy0xXSk7bGV0IEM9aVsxXTtjPHMubGVuZ3RoJiYoQz1zW2NdKTtjb25zdCBCPW5bMipjXSxsPW5bMipjKzFdO3JbMF09aD09PUM/QjpCKyhvLWgpKihsLUIpLyhDLWgpLGFbY10ociwwLHQsZyl9fXN0YXRpYyBjb25zdHJ1Y3RQb3N0U2NyaXB0KHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dCxkaWN0Oml9KXtjb25zdCBhPWNyKGkuZ2V0QXJyYXkoIkRvbWFpbiIpKSxzPWNyKGkuZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFhKXRocm93IG5ldyBXKCJObyBkb21haW4uIik7aWYoIXMpdGhyb3cgbmV3IFcoIk5vIHJhbmdlLiIpO2NvbnN0IG49bmV3IGVyKHQpLHI9bmV3IHpuKG4pLnBhcnNlKCk7aWYoZSYmXy5pc0V2YWxTdXBwb3J0ZWQpe2NvbnN0IEE9KG5ldyBGcikuY29tcGlsZShyLGEscyk7aWYoQSlyZXR1cm4gbmV3IEZ1bmN0aW9uKCJzcmMiLCJzcmNPZmZzZXQiLCJkZXN0IiwiZGVzdE9mZnNldCIsQSl9eCgiVW5hYmxlIHRvIGNvbXBpbGUgUFMgZnVuY3Rpb24iKTtjb25zdCBnPXMubGVuZ3RoPj4xLG89YS5sZW5ndGg+PjEsST1uZXcgbHIociksYz1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBoPTgxOTI7Y29uc3QgQz1uZXcgRmxvYXQzMkFycmF5KG8pO3JldHVybiBmdW5jdGlvbihBLGUsdCxpKXtsZXQgYSxuLHI9IiI7Y29uc3QgQj1DO2ZvcihhPTA7YTxvO2ErKyluPUFbZSthXSxCW2FdPW4scis9bisiXyI7Y29uc3QgbD1jW3JdO2lmKHZvaWQgMCE9PWwpcmV0dXJuIHZvaWQgdC5zZXQobCxpKTtjb25zdCBRPW5ldyBGbG9hdDMyQXJyYXkoZyksRT1JLmV4ZWN1dGUoQiksdT1FLmxlbmd0aC1nO2ZvcihhPTA7YTxnO2ErKyl7bj1FW3UrYV07bGV0IEE9c1syKmFdO248QT9uPUE6KEE9c1syKmErMV0sbj5BJiYobj1BKSksUVthXT1ufWg+MCYmKGgtLSxjW3JdPVEpLHQuc2V0KFEsaSl9fX1mdW5jdGlvbiBDcihBKXtsZXQgZTtpZihBIGluc3RhbmNlb2YgUUEpZT1BO2Vsc2V7aWYoIShBIGluc3RhbmNlb2Ygd0EpKXJldHVybiExO2U9QS5kaWN0fXJldHVybiBlLmhhcygiRnVuY3Rpb25UeXBlIil9Y2xhc3MgQnJ7c3RhdGljIE1BWF9TVEFDS19TSVpFPTEwMDtjb25zdHJ1Y3RvcihBKXt0aGlzLnN0YWNrPUE/QXJyYXkuZnJvbShBKTpbXX1wdXNoKEEpe2lmKHRoaXMuc3RhY2subGVuZ3RoPj1Cci5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7dGhpcy5zdGFjay5wdXNoKEEpfXBvcCgpe2lmKHRoaXMuc3RhY2subGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiUG9zdFNjcmlwdCBmdW5jdGlvbiBzdGFjayB1bmRlcmZsb3cuIik7cmV0dXJuIHRoaXMuc3RhY2sucG9wKCl9Y29weShBKXtpZih0aGlzLnN0YWNrLmxlbmd0aCtBPj1Cci5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7Y29uc3QgZT10aGlzLnN0YWNrO2ZvcihsZXQgdD1lLmxlbmd0aC1BLGk9QS0xO2k+PTA7aS0tLHQrKyllLnB1c2goZVt0XSl9aW5kZXgoQSl7dGhpcy5wdXNoKHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtQS0xXSl9cm9sbChBLGUpe2NvbnN0IHQ9dGhpcy5zdGFjayxpPXQubGVuZ3RoLUEsYT10Lmxlbmd0aC0xLHM9aSsoZS1NYXRoLmZsb29yKGUvQSkqQSk7Zm9yKGxldCBBPWksZT1hO0E8ZTtBKyssZS0tKXtjb25zdCBpPXRbQV07dFtBXT10W2VdLHRbZV09aX1mb3IobGV0IEE9aSxlPXMtMTtBPGU7QSsrLGUtLSl7Y29uc3QgaT10W0FdO3RbQV09dFtlXSx0W2VdPWl9Zm9yKGxldCBBPXMsZT1hO0E8ZTtBKyssZS0tKXtjb25zdCBpPXRbQV07dFtBXT10W2VdLHRbZV09aX19fWNsYXNzIGxye2NvbnN0cnVjdG9yKEEpe3RoaXMub3BlcmF0b3JzPUF9ZXhlY3V0ZShBKXtjb25zdCBlPW5ldyBCcihBKTtsZXQgdD0wO2NvbnN0IGk9dGhpcy5vcGVyYXRvcnMsYT1pLmxlbmd0aDtsZXQgcyxuLHI7Zm9yKDt0PGE7KWlmKHM9aVt0KytdLCJudW1iZXIiIT10eXBlb2Ygcylzd2l0Y2gocyl7Y2FzZSJqeiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxufHwodD1yKTticmVhaztjYXNlImoiOm49ZS5wb3AoKSx0PW47YnJlYWs7Y2FzZSJhYnMiOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5hYnMobikpO2JyZWFrO2Nhc2UiYWRkIjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuK3IpO2JyZWFrO2Nhc2UiYW5kIjpyPWUucG9wKCksbj1lLnBvcCgpLCJib29sZWFuIj09dHlwZW9mIG4mJiJib29sZWFuIj09dHlwZW9mIHI/ZS5wdXNoKG4mJnIpOmUucHVzaChuJnIpO2JyZWFrO2Nhc2UiYXRhbiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxuPU1hdGguYXRhbjIobixyKS9NYXRoLlBJKjE4MCxuPDAmJihuKz0zNjApLGUucHVzaChuKTticmVhaztjYXNlImJpdHNoaWZ0IjpyPWUucG9wKCksbj1lLnBvcCgpLG4+MD9lLnB1c2gobjw8cik6ZS5wdXNoKG4+PnIpO2JyZWFrO2Nhc2UiY2VpbGluZyI6bj1lLnBvcCgpLGUucHVzaChNYXRoLmNlaWwobikpO2JyZWFrO2Nhc2UiY29weSI6bj1lLnBvcCgpLGUuY29weShuKTticmVhaztjYXNlImNvcyI6bj1lLnBvcCgpLGUucHVzaChNYXRoLmNvcyhuJTM2MC8xODAqTWF0aC5QSSkpO2JyZWFrO2Nhc2UiY3ZpIjpuPTB8ZS5wb3AoKSxlLnB1c2gobik7YnJlYWs7Y2FzZSJjdnIiOmJyZWFrO2Nhc2UiZGl2IjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuL3IpO2JyZWFrO2Nhc2UiZHVwIjplLmNvcHkoMSk7YnJlYWs7Y2FzZSJlcSI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobj09PXIpO2JyZWFrO2Nhc2UiZXhjaCI6ZS5yb2xsKDIsMSk7YnJlYWs7Y2FzZSJleHAiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG4qKnIpO2JyZWFrO2Nhc2UiZmFsc2UiOmUucHVzaCghMSk7YnJlYWs7Y2FzZSJmbG9vciI6bj1lLnBvcCgpLGUucHVzaChNYXRoLmZsb29yKG4pKTticmVhaztjYXNlImdlIjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuPj1yKTticmVhaztjYXNlImd0IjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuPnIpO2JyZWFrO2Nhc2UiaWRpdiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobi9yfDApO2JyZWFrO2Nhc2UiaW5kZXgiOm49ZS5wb3AoKSxlLmluZGV4KG4pO2JyZWFrO2Nhc2UibGUiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG48PXIpO2JyZWFrO2Nhc2UibG4iOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5sb2cobikpO2JyZWFrO2Nhc2UibG9nIjpuPWUucG9wKCksZS5wdXNoKE1hdGgubG9nMTAobikpO2JyZWFrO2Nhc2UibHQiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG48cik7YnJlYWs7Y2FzZSJtb2QiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG4lcik7YnJlYWs7Y2FzZSJtdWwiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG4qcik7YnJlYWs7Y2FzZSJuZSI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobiE9PXIpO2JyZWFrO2Nhc2UibmVnIjpuPWUucG9wKCksZS5wdXNoKC1uKTticmVhaztjYXNlIm5vdCI6bj1lLnBvcCgpLCJib29sZWFuIj09dHlwZW9mIG4/ZS5wdXNoKCFuKTplLnB1c2gofm4pO2JyZWFrO2Nhc2Uib3IiOnI9ZS5wb3AoKSxuPWUucG9wKCksImJvb2xlYW4iPT10eXBlb2YgbiYmImJvb2xlYW4iPT10eXBlb2Ygcj9lLnB1c2gobnx8cik6ZS5wdXNoKG58cik7YnJlYWs7Y2FzZSJwb3AiOmUucG9wKCk7YnJlYWs7Y2FzZSJyb2xsIjpyPWUucG9wKCksbj1lLnBvcCgpLGUucm9sbChuLHIpO2JyZWFrO2Nhc2Uicm91bmQiOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5yb3VuZChuKSk7YnJlYWs7Y2FzZSJzaW4iOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5zaW4obiUzNjAvMTgwKk1hdGguUEkpKTticmVhaztjYXNlInNxcnQiOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5zcXJ0KG4pKTticmVhaztjYXNlInN1YiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobi1yKTticmVhaztjYXNlInRydWUiOmUucHVzaCghMCk7YnJlYWs7Y2FzZSJ0cnVuY2F0ZSI6bj1lLnBvcCgpLG49bjwwP01hdGguY2VpbChuKTpNYXRoLmZsb29yKG4pLGUucHVzaChuKTticmVhaztjYXNlInhvciI6cj1lLnBvcCgpLG49ZS5wb3AoKSwiYm9vbGVhbiI9PXR5cGVvZiBuJiYiYm9vbGVhbiI9PXR5cGVvZiByP2UucHVzaChuIT09cik6ZS5wdXNoKG5ecik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVyhgVW5rbm93biBvcGVyYXRvciAke3N9YCl9ZWxzZSBlLnB1c2gocyk7cmV0dXJuIGUuc3RhY2t9fWNsYXNzIFFye2NvbnN0cnVjdG9yKEEpe3RoaXMudHlwZT1BfXZpc2l0KEEpe00oImFic3RyYWN0IG1ldGhvZCIpfX1jbGFzcyBFciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcigiYXJncyIpLHRoaXMuaW5kZXg9QSx0aGlzLm1pbj1lLHRoaXMubWF4PXR9dmlzaXQoQSl7QS52aXNpdEFyZ3VtZW50KHRoaXMpfX1jbGFzcyB1ciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEpe3N1cGVyKCJsaXRlcmFsIiksdGhpcy5udW1iZXI9QSx0aGlzLm1pbj1BLHRoaXMubWF4PUF9dmlzaXQoQSl7QS52aXNpdExpdGVyYWwodGhpcyl9fWNsYXNzIGRyIGV4dGVuZHMgUXJ7Y29uc3RydWN0b3IoQSxlLHQsaSxhKXtzdXBlcigiYmluYXJ5IiksdGhpcy5vcD1BLHRoaXMuYXJnMT1lLHRoaXMuYXJnMj10LHRoaXMubWluPWksdGhpcy5tYXg9YX12aXNpdChBKXtBLnZpc2l0QmluYXJ5T3BlcmF0aW9uKHRoaXMpfX1jbGFzcyBmciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoIm1heCIpLHRoaXMuYXJnPUEsdGhpcy5taW49QS5taW4sdGhpcy5tYXg9ZX12aXNpdChBKXtBLnZpc2l0TWluKHRoaXMpfX1jbGFzcyBwciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcigidmFyIiksdGhpcy5pbmRleD1BLHRoaXMubWluPWUsdGhpcy5tYXg9dH12aXNpdChBKXtBLnZpc2l0VmFyaWFibGUodGhpcyl9fWNsYXNzIG1yIGV4dGVuZHMgUXJ7Y29uc3RydWN0b3IoQSxlKXtzdXBlcigiZGVmaW5pdGlvbiIpLHRoaXMudmFyaWFibGU9QSx0aGlzLmFyZz1lfXZpc2l0KEEpe0EudmlzaXRWYXJpYWJsZURlZmluaXRpb24odGhpcyl9fWNsYXNzIHlye2NvbnN0cnVjdG9yKCl7dGhpcy5wYXJ0cz1bXX12aXNpdEFyZ3VtZW50KEEpe3RoaXMucGFydHMucHVzaCgiTWF0aC5tYXgoIixBLm1pbiwiLCBNYXRoLm1pbigiLEEubWF4LCIsIHNyY1tzcmNPZmZzZXQgKyAiLEEuaW5kZXgsIl0pKSIpfXZpc2l0VmFyaWFibGUoQSl7dGhpcy5wYXJ0cy5wdXNoKCJ2IixBLmluZGV4KX12aXNpdExpdGVyYWwoQSl7dGhpcy5wYXJ0cy5wdXNoKEEubnVtYmVyKX12aXNpdEJpbmFyeU9wZXJhdGlvbihBKXt0aGlzLnBhcnRzLnB1c2goIigiKSxBLmFyZzEudmlzaXQodGhpcyksdGhpcy5wYXJ0cy5wdXNoKCIgIixBLm9wLCIgIiksQS5hcmcyLnZpc2l0KHRoaXMpLHRoaXMucGFydHMucHVzaCgiKSIpfXZpc2l0VmFyaWFibGVEZWZpbml0aW9uKEEpe3RoaXMucGFydHMucHVzaCgidmFyICIpLEEudmFyaWFibGUudmlzaXQodGhpcyksdGhpcy5wYXJ0cy5wdXNoKCIgPSAiKSxBLmFyZy52aXNpdCh0aGlzKSx0aGlzLnBhcnRzLnB1c2goIjsiKX12aXNpdE1pbihBKXt0aGlzLnBhcnRzLnB1c2goIk1hdGgubWluKCIpLEEuYXJnLnZpc2l0KHRoaXMpLHRoaXMucGFydHMucHVzaCgiLCAiLEEubWF4LCIpIil9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5wYXJ0cy5qb2luKCIiKX19ZnVuY3Rpb24gd3IoQSxlKXtyZXR1cm4ibGl0ZXJhbCI9PT1lLnR5cGUmJjA9PT1lLm51bWJlcj9BOiJsaXRlcmFsIj09PUEudHlwZSYmMD09PUEubnVtYmVyP2U6ImxpdGVyYWwiPT09ZS50eXBlJiYibGl0ZXJhbCI9PT1BLnR5cGU/bmV3IHVyKEEubnVtYmVyK2UubnVtYmVyKTpuZXcgZHIoIisiLEEsZSxBLm1pbitlLm1pbixBLm1heCtlLm1heCl9ZnVuY3Rpb24gRHIoQSxlKXtpZigibGl0ZXJhbCI9PT1lLnR5cGUpe2lmKDA9PT1lLm51bWJlcilyZXR1cm4gbmV3IHVyKDApO2lmKDE9PT1lLm51bWJlcilyZXR1cm4gQTtpZigibGl0ZXJhbCI9PT1BLnR5cGUpcmV0dXJuIG5ldyB1cihBLm51bWJlciplLm51bWJlcil9aWYoImxpdGVyYWwiPT09QS50eXBlKXtpZigwPT09QS5udW1iZXIpcmV0dXJuIG5ldyB1cigwKTtpZigxPT09QS5udW1iZXIpcmV0dXJuIGV9Y29uc3QgdD1NYXRoLm1pbihBLm1pbiplLm1pbixBLm1pbiplLm1heCxBLm1heCplLm1pbixBLm1heCplLm1heCksaT1NYXRoLm1heChBLm1pbiplLm1pbixBLm1pbiplLm1heCxBLm1heCplLm1pbixBLm1heCplLm1heCk7cmV0dXJuIG5ldyBkcigiKiIsQSxlLHQsaSl9ZnVuY3Rpb24gYnIoQSxlKXtpZigibGl0ZXJhbCI9PT1lLnR5cGUpe2lmKDA9PT1lLm51bWJlcilyZXR1cm4gQTtpZigibGl0ZXJhbCI9PT1BLnR5cGUpcmV0dXJuIG5ldyB1cihBLm51bWJlci1lLm51bWJlcil9cmV0dXJuImJpbmFyeSI9PT1lLnR5cGUmJiItIj09PWUub3AmJiJsaXRlcmFsIj09PUEudHlwZSYmMT09PUEubnVtYmVyJiYibGl0ZXJhbCI9PT1lLmFyZzEudHlwZSYmMT09PWUuYXJnMS5udW1iZXI/ZS5hcmcyOm5ldyBkcigiLSIsQSxlLEEubWluLWUubWF4LEEubWF4LWUubWluKX1mdW5jdGlvbiBrcihBLGUpe3JldHVybiBBLm1pbj49ZT9uZXcgdXIoZSk6QS5tYXg8PWU/QTpuZXcgZnIoQSxlKX1jbGFzcyBGcntjb21waWxlKEEsZSx0KXtjb25zdCBpPVtdLGE9W10scz1lLmxlbmd0aD4+MSxuPXQubGVuZ3RoPj4xO2xldCByLGcsbyxJLGMsaCxDLEIsbD0wO2ZvcihsZXQgQT0wO0E8cztBKyspaS5wdXNoKG5ldyBFcihBLGVbMipBXSxlWzIqQSsxXSkpO2ZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrKylpZihCPUFbZV0sIm51bWJlciIhPXR5cGVvZiBCKXN3aXRjaChCKXtjYXNlImFkZCI6aWYoaS5sZW5ndGg8MilyZXR1cm4gbnVsbDtJPWkucG9wKCksbz1pLnBvcCgpLGkucHVzaCh3cihvLEkpKTticmVhaztjYXNlImN2ciI6aWYoaS5sZW5ndGg8MSlyZXR1cm4gbnVsbDticmVhaztjYXNlIm11bCI6aWYoaS5sZW5ndGg8MilyZXR1cm4gbnVsbDtJPWkucG9wKCksbz1pLnBvcCgpLGkucHVzaChEcihvLEkpKTticmVhaztjYXNlInN1YiI6aWYoaS5sZW5ndGg8MilyZXR1cm4gbnVsbDtJPWkucG9wKCksbz1pLnBvcCgpLGkucHVzaChicihvLEkpKTticmVhaztjYXNlImV4Y2giOmlmKGkubGVuZ3RoPDIpcmV0dXJuIG51bGw7Yz1pLnBvcCgpLGg9aS5wb3AoKSxpLnB1c2goYyxoKTticmVhaztjYXNlInBvcCI6aWYoaS5sZW5ndGg8MSlyZXR1cm4gbnVsbDtpLnBvcCgpO2JyZWFrO2Nhc2UiaW5kZXgiOmlmKGkubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYobz1pLnBvcCgpLCJsaXRlcmFsIiE9PW8udHlwZSlyZXR1cm4gbnVsbDtpZihyPW8ubnVtYmVyLHI8MHx8IU51bWJlci5pc0ludGVnZXIocil8fGkubGVuZ3RoPHIpcmV0dXJuIG51bGw7aWYoYz1pW2kubGVuZ3RoLXItMV0sImxpdGVyYWwiPT09Yy50eXBlfHwidmFyIj09PWMudHlwZSl7aS5wdXNoKGMpO2JyZWFrfUM9bmV3IHByKGwrKyxjLm1pbixjLm1heCksaVtpLmxlbmd0aC1yLTFdPUMsaS5wdXNoKEMpLGEucHVzaChuZXcgbXIoQyxjKSk7YnJlYWs7Y2FzZSJkdXAiOmlmKGkubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYoIm51bWJlciI9PXR5cGVvZiBBW2UrMV0mJiJndCI9PT1BW2UrMl0mJkFbZSszXT09PWUrNyYmImp6Ij09PUFbZSs0XSYmInBvcCI9PT1BW2UrNV0mJkFbZSs2XT09PUFbZSsxXSl7bz1pLnBvcCgpLGkucHVzaChrcihvLEFbZSsxXSkpLGUrPTY7YnJlYWt9aWYoYz1pLmF0KC0xKSwibGl0ZXJhbCI9PT1jLnR5cGV8fCJ2YXIiPT09Yy50eXBlKXtpLnB1c2goYyk7YnJlYWt9Qz1uZXcgcHIobCsrLGMubWluLGMubWF4KSxpW2kubGVuZ3RoLTFdPUMsaS5wdXNoKEMpLGEucHVzaChuZXcgbXIoQyxjKSk7YnJlYWs7Y2FzZSJyb2xsIjppZihpLmxlbmd0aDwyKXJldHVybiBudWxsO2lmKEk9aS5wb3AoKSxvPWkucG9wKCksImxpdGVyYWwiIT09SS50eXBlfHwibGl0ZXJhbCIhPT1vLnR5cGUpcmV0dXJuIG51bGw7aWYoZz1JLm51bWJlcixyPW8ubnVtYmVyLHI8PTB8fCFOdW1iZXIuaXNJbnRlZ2VyKHIpfHwhTnVtYmVyLmlzSW50ZWdlcihnKXx8aS5sZW5ndGg8cilyZXR1cm4gbnVsbDtpZihnPShnJXIrciklciwwPT09ZylicmVhaztpLnB1c2goLi4uaS5zcGxpY2UoaS5sZW5ndGgtcixyLWcpKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfWVsc2UgaS5wdXNoKG5ldyB1cihCKSk7aWYoaS5sZW5ndGghPT1uKXJldHVybiBudWxsO2NvbnN0IFE9W107Zm9yKGNvbnN0IEEgb2YgYSl7Y29uc3QgZT1uZXcgeXI7QS52aXNpdChlKSxRLnB1c2goZS50b1N0cmluZygpKX1mb3IobGV0IEE9MCxlPWkubGVuZ3RoO0E8ZTtBKyspe2NvbnN0IGU9aVtBXSxhPW5ldyB5cjtlLnZpc2l0KGEpO2NvbnN0IHM9dFsyKkFdLG49dFsyKkErMV0scj1bYS50b1N0cmluZygpXTtzPmUubWluJiYoci51bnNoaWZ0KCJNYXRoLm1heCgiLHMsIiwgIiksci5wdXNoKCIpIikpLG48ZS5tYXgmJihyLnVuc2hpZnQoIk1hdGgubWluKCIsbiwiLCAiKSxyLnB1c2goIikiKSksci51bnNoaWZ0KCJkZXN0W2Rlc3RPZmZzZXQgKyAiLEEsIl0gPSAiKSxyLnB1c2goIjsiKSxRLnB1c2goci5qb2luKCIiKSl9cmV0dXJuIFEuam9pbigiXG4iKX19Y29uc3QgU3I9WyJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJTIiwiQiIsIlMiLCJXUyIsIkIiLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQiIsIkIiLCJCIiwiUyIsIldTIiwiT04iLCJPTiIsIkVUIiwiRVQiLCJFVCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJFUyIsIkNTIiwiRVMiLCJDUyIsIkNTIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJDUyIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJPTiIsIk9OIiwiT04iLCJPTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkIiLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQ1MiLCJPTiIsIkVUIiwiRVQiLCJFVCIsIkVUIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiT04iLCJPTiIsIkJOIiwiT04iLCJPTiIsIkVUIiwiRVQiLCJFTiIsIkVOIiwiT04iLCJMIiwiT04iLCJPTiIsIk9OIiwiRU4iLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCJdLFJyPVsiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiT04iLCJPTiIsIkFMIiwiRVQiLCJFVCIsIkFMIiwiQ1MiLCJBTCIsIk9OIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJFVCIsIkFOIiwiQU4iLCJBTCIsIkFMIiwiQUwiLCJOU00iLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQU4iLCJPTiIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFMIiwiQUwiLCJOU00iLCJOU00iLCJPTiIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFMIiwiQUwiLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCJdO2Z1bmN0aW9uIEdyKEEpe3JldHVybiAwIT0oMSZBKX1mdW5jdGlvbiBOcihBKXtyZXR1cm4gMD09KDEmQSl9ZnVuY3Rpb24geHIoQSxlLHQpe2xldCBpLGE7Zm9yKGk9ZSxhPUEubGVuZ3RoO2k8YTsrK2kpaWYoQVtpXSE9PXQpcmV0dXJuIGk7cmV0dXJuIGl9ZnVuY3Rpb24gVXIoQSxlLHQsaSl7Zm9yKGxldCBhPWU7YTx0OysrYSlBW2FdPWl9ZnVuY3Rpb24gTXIoQSxlLHQpe2ZvcihsZXQgaT1lLGE9dC0xO2k8YTsrK2ksLS1hKXtjb25zdCBlPUFbaV07QVtpXT1BW2FdLEFbYV09ZX19ZnVuY3Rpb24gTHIoQSxlLHQ9ITEpe2xldCBpPSJsdHIiO3JldHVybiB0P2k9InR0YiI6ZXx8KGk9InJ0bCIpLHtzdHI6QSxkaXI6aX19Y29uc3QgSnI9W10sSHI9W107ZnVuY3Rpb24gWXIoQSxlPS0xLHQ9ITEpe2xldCBpPSEwO2NvbnN0IGE9QS5sZW5ndGg7aWYoMD09PWF8fHQpcmV0dXJuIExyKEEsaSx0KTtKci5sZW5ndGg9YSxIci5sZW5ndGg9YTtsZXQgcyxuLHI9MDtmb3Iocz0wO3M8YTsrK3Mpe0pyW3NdPUEuY2hhckF0KHMpO2NvbnN0IGU9QS5jaGFyQ29kZUF0KHMpO2xldCB0PSJMIjtlPD0yNTU/dD1TcltlXToxNDI0PD1lJiZlPD0xNTI0P3Q9IlIiOjE1MzY8PWUmJmU8PTE3OTE/KHQ9UnJbMjU1JmVdLHR8fFUoIkJpZGk6IGludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgIitlLnRvU3RyaW5nKDE2KSkpOigxNzkyPD1lJiZlPD0yMjIwfHw2NDMzNjw9ZSYmZTw9NjUwMjN8fDY1MTM2PD1lJiZlPD02NTI3OSkmJih0PSJBTCIpLCJSIiE9PXQmJiJBTCIhPT10JiYiQU4iIT09dHx8cisrLEhyW3NdPXR9aWYoMD09PXIpcmV0dXJuIGk9ITAsTHIoQSxpKTstMT09PWUmJihyL2E8LjMmJmE+ND8oaT0hMCxlPTApOihpPSExLGU9MSkpO2NvbnN0IGc9W107Zm9yKHM9MDtzPGE7KytzKWdbc109ZTtjb25zdCBvPUdyKGUpPyJSIjoiTCIsST1vLGM9STtsZXQgaCxDPUk7Zm9yKHM9MDtzPGE7KytzKSJOU00iPT09SHJbc10/SHJbc109QzpDPUhyW3NdO2ZvcihDPUkscz0wO3M8YTsrK3MpaD1IcltzXSwiRU4iPT09aD9IcltzXT0iQUwiPT09Qz8iQU4iOiJFTiI6IlIiIT09aCYmIkwiIT09aCYmIkFMIiE9PWh8fChDPWgpO2ZvcihzPTA7czxhOysrcyloPUhyW3NdLCJBTCI9PT1oJiYoSHJbc109IlIiKTtmb3Iocz0xO3M8YS0xOysrcykiRVMiPT09SHJbc10mJiJFTiI9PT1IcltzLTFdJiYiRU4iPT09SHJbcysxXSYmKEhyW3NdPSJFTiIpLCJDUyIhPT1IcltzXXx8IkVOIiE9PUhyW3MtMV0mJiJBTiIhPT1IcltzLTFdfHxIcltzKzFdIT09SHJbcy0xXXx8KEhyW3NdPUhyW3MtMV0pO2ZvcihzPTA7czxhOysrcylpZigiRU4iPT09SHJbc10pe2ZvcihsZXQgQT1zLTE7QT49MCYmIkVUIj09PUhyW0FdOy0tQSlIcltBXT0iRU4iO2ZvcihsZXQgQT1zKzE7QTxhJiYiRVQiPT09SHJbQV07KytBKUhyW0FdPSJFTiJ9Zm9yKHM9MDtzPGE7KytzKWg9SHJbc10sIldTIiE9PWgmJiJFUyIhPT1oJiYiRVQiIT09aCYmIkNTIiE9PWh8fChIcltzXT0iT04iKTtmb3IoQz1JLHM9MDtzPGE7KytzKWg9SHJbc10sIkVOIj09PWg/SHJbc109IkwiPT09Qz8iTCI6IkVOIjoiUiIhPT1oJiYiTCIhPT1ofHwoQz1oKTtmb3Iocz0wO3M8YTsrK3MpaWYoIk9OIj09PUhyW3NdKXtjb25zdCBBPXhyKEhyLHMrMSwiT04iKTtsZXQgZT1JO3M+MCYmKGU9SHJbcy0xXSk7bGV0IHQ9YztBKzE8YSYmKHQ9SHJbQSsxXSksIkwiIT09ZSYmKGU9IlIiKSwiTCIhPT10JiYodD0iUiIpLGU9PT10JiZVcihIcixzLEEsZSkscz1BLTF9Zm9yKHM9MDtzPGE7KytzKSJPTiI9PT1IcltzXSYmKEhyW3NdPW8pO2ZvcihzPTA7czxhOysrcyloPUhyW3NdLE5yKGdbc10pPyJSIj09PWg/Z1tzXSs9MToiQU4iIT09aCYmIkVOIiE9PWh8fChnW3NdKz0yKToiTCIhPT1oJiYiQU4iIT09aCYmIkVOIiE9PWh8fChnW3NdKz0xKTtsZXQgQixsPS0xLFE9OTk7Zm9yKHM9MCxuPWcubGVuZ3RoO3M8bjsrK3MpQj1nW3NdLGw8QiYmKGw9QiksUT5CJiZHcihCKSYmKFE9Qik7Zm9yKEI9bDtCPj1ROy0tQil7bGV0IEE9LTE7Zm9yKHM9MCxuPWcubGVuZ3RoO3M8bjsrK3MpZ1tzXTxCP0E+PTAmJihNcihKcixBLHMpLEE9LTEpOkE8MCYmKEE9cyk7QT49MCYmTXIoSnIsQSxnLmxlbmd0aCl9Zm9yKHM9MCxuPUpyLmxlbmd0aDtzPG47KytzKXtjb25zdCBBPUpyW3NdOyI8IiE9PUEmJiI+IiE9PUF8fChKcltzXT0iIil9cmV0dXJuIExyKEpyLmpvaW4oIiIpLGkpfWNvbnN0IHZyPXtzdHlsZToibm9ybWFsIix3ZWlnaHQ6Im5vcm1hbCJ9LEtyPXtzdHlsZToibm9ybWFsIix3ZWlnaHQ6ImJvbGQifSxxcj17c3R5bGU6Iml0YWxpYyIsd2VpZ2h0OiJub3JtYWwifSxUcj17c3R5bGU6Iml0YWxpYyIsd2VpZ2h0OiJib2xkIn0sUHI9bmV3IE1hcChbWyJUaW1lcy1Sb21hbiIse2xvY2FsOlsiVGltZXMgTmV3IFJvbWFuIiwiVGltZXMtUm9tYW4iLCJUaW1lcyIsIkxpYmVyYXRpb24gU2VyaWYiLCJOaW1idXMgUm9tYW4iLCJOaW1idXMgUm9tYW4gTCIsIlRpbm9zIiwiVGhvcm5kYWxlIiwiVGVYIEd5cmUgVGVybWVzIiwiRnJlZVNlcmlmIiwiTGludXggTGliZXJ0aW5lIE8iLCJMaWJlcnRpbnVzIFNlcmlmIiwiRGVqYVZ1IFNlcmlmIiwiQml0c3RyZWFtIFZlcmEgU2VyaWYiLCJVYnVudHUiXSxzdHlsZTp2cix1bHRpbWF0ZToic2VyaWYifV0sWyJUaW1lcy1Cb2xkIix7YWxpYXM6IlRpbWVzLVJvbWFuIixzdHlsZTpLcix1bHRpbWF0ZToic2VyaWYifV0sWyJUaW1lcy1JdGFsaWMiLHthbGlhczoiVGltZXMtUm9tYW4iLHN0eWxlOnFyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIlRpbWVzLUJvbGRJdGFsaWMiLHthbGlhczoiVGltZXMtUm9tYW4iLHN0eWxlOlRyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIkhlbHZldGljYSIse2xvY2FsOlsiSGVsdmV0aWNhIiwiSGVsdmV0aWNhIE5ldWUiLCJBcmlhbCIsIkFyaWFsIE5vdmEiLCJMaWJlcmF0aW9uIFNhbnMiLCJBcmltbyIsIk5pbWJ1cyBTYW5zIiwiTmltYnVzIFNhbnMgTCIsIkEwMzAiLCJUZVggR3lyZSBIZXJvcyIsIkZyZWVTYW5zIiwiRGVqYVZ1IFNhbnMiLCJBbGJhbnkiLCJCaXRzdHJlYW0gVmVyYSBTYW5zIiwiQXJpYWwgVW5pY29kZSBNUyIsIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwiQXBwbGUgU3ltYm9scyIsIkNhbnRhcmVsbCJdLHBhdGg6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIixzdHlsZTp2cix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkhlbHZldGljYS1Cb2xkIix7YWxpYXM6IkhlbHZldGljYSIscGF0aDoiTGliZXJhdGlvblNhbnMtQm9sZC50dGYiLHN0eWxlOktyLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiSGVsdmV0aWNhLU9ibGlxdWUiLHthbGlhczoiSGVsdmV0aWNhIixwYXRoOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIixzdHlsZTpxcix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIse2FsaWFzOiJIZWx2ZXRpY2EiLHBhdGg6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIixzdHlsZTpUcix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkNvdXJpZXIiLHtsb2NhbDpbIkNvdXJpZXIiLCJDb3VyaWVyIE5ldyIsIkxpYmVyYXRpb24gTW9ubyIsIk5pbWJ1cyBNb25vIiwiTmltYnVzIE1vbm8gTCIsIkNvdXNpbmUiLCJDdW1iZXJsYW5kIiwiVGVYIEd5cmUgQ3Vyc29yIiwiRnJlZU1vbm8iLCJMaW51eCBMaWJlcnRpbmUgTW9ubyBPIiwiTGliZXJ0aW51cyBNb25vIl0sc3R5bGU6dnIsdWx0aW1hdGU6Im1vbm9zcGFjZSJ9XSxbIkNvdXJpZXItQm9sZCIse2FsaWFzOiJDb3VyaWVyIixzdHlsZTpLcix1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQ291cmllci1PYmxpcXVlIix7YWxpYXM6IkNvdXJpZXIiLHN0eWxlOnFyLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJDb3VyaWVyLUJvbGRPYmxpcXVlIix7YWxpYXM6IkNvdXJpZXIiLHN0eWxlOlRyLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJBcmlhbEJsYWNrIix7bG9jYWw6WyJBcmlhbCBCbGFjayJdLHN0eWxlOntzdHlsZToibm9ybWFsIix3ZWlnaHQ6IjkwMCJ9LGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZCJ9XSxbIkFyaWFsQmxhY2stQm9sZCIse2FsaWFzOiJBcmlhbEJsYWNrIn1dLFsiQXJpYWxCbGFjay1JdGFsaWMiLHthbGlhczoiQXJpYWxCbGFjayIsc3R5bGU6e3N0eWxlOiJpdGFsaWMiLHdlaWdodDoiOTAwIn0sZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJ9XSxbIkFyaWFsQmxhY2stQm9sZEl0YWxpYyIse2FsaWFzOiJBcmlhbEJsYWNrLUl0YWxpYyJ9XSxbIkFyaWFsTmFycm93Iix7bG9jYWw6WyJBcmlhbCBOYXJyb3ciLCJMaWJlcmF0aW9uIFNhbnMgTmFycm93IiwiSGVsdmV0aWNhIENvbmRlbnNlZCIsIk5pbWJ1cyBTYW5zIE5hcnJvdyIsIlRlWCBHeXJlIEhlcm9zIENuIl0sc3R5bGU6dnIsZmFsbGJhY2s6IkhlbHZldGljYSJ9XSxbIkFyaWFsTmFycm93LUJvbGQiLHthbGlhczoiQXJpYWxOYXJyb3ciLHN0eWxlOktyLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZCJ9XSxbIkFyaWFsTmFycm93LUl0YWxpYyIse2FsaWFzOiJBcmlhbE5hcnJvdyIsc3R5bGU6cXIsZmFsbGJhY2s6IkhlbHZldGljYS1PYmxpcXVlIn1dLFsiQXJpYWxOYXJyb3ctQm9sZEl0YWxpYyIse2FsaWFzOiJBcmlhbE5hcnJvdyIsc3R5bGU6VHIsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJ9XSxbIkNhbGlicmkiLHtsb2NhbDpbIkNhbGlicmkiLCJDYXJsaXRvIl0sc3R5bGU6dnIsZmFsbGJhY2s6IkhlbHZldGljYSJ9XSxbIkNhbGlicmktQm9sZCIse2FsaWFzOiJDYWxpYnJpIixzdHlsZTpLcixmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGQifV0sWyJDYWxpYnJpLUl0YWxpYyIse2FsaWFzOiJDYWxpYnJpIixzdHlsZTpxcixmYWxsYmFjazoiSGVsdmV0aWNhLU9ibGlxdWUifV0sWyJDYWxpYnJpLUJvbGRJdGFsaWMiLHthbGlhczoiQ2FsaWJyaSIsc3R5bGU6VHIsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJ9XSxbIldpbmdkaW5ncyIse2xvY2FsOlsiV2luZ2RpbmdzIiwiVVJXIERpbmdiYXRzIl0sc3R5bGU6dnJ9XSxbIldpbmdkaW5ncy1SZWd1bGFyIix7YWxpYXM6IldpbmdkaW5ncyJ9XSxbIldpbmdkaW5ncy1Cb2xkIix7YWxpYXM6IldpbmdkaW5ncyJ9XV0pLFdyPW5ldyBNYXAoW1siQXJpYWwtQmxhY2siLCJBcmlhbEJsYWNrIl1dKTtmdW5jdGlvbiBPcihBKXtjb25zdCBlPW5ldyBTZXQoWyJ0aGluIiwiZXh0cmFsaWdodCIsInVsdHJhbGlnaHQiLCJkZW1pbGlnaHQiLCJzZW1pbGlnaHQiLCJsaWdodCIsImJvb2siLCJyZWd1bGFyIiwibm9ybWFsIiwibWVkaXVtIiwiZGVtaWJvbGQiLCJzZW1pYm9sZCIsImJvbGQiLCJleHRyYWJvbGQiLCJ1bHRyYWJvbGQiLCJibGFjayIsImhlYXZ5IiwiZXh0cmFibGFjayIsInVsdHJhYmxhY2siLCJyb21hbiIsIml0YWxpYyIsIm9ibGlxdWUiLCJ1bHRyYWNvbmRlbnNlZCIsImV4dHJhY29uZGVuc2VkIiwiY29uZGVuc2VkIiwic2VtaWNvbmRlbnNlZCIsIm5vcm1hbCIsInNlbWlleHBhbmRlZCIsImV4cGFuZGVkIiwiZXh0cmFleHBhbmRlZCIsInVsdHJhZXhwYW5kZWQiLCJib2xkaXRhbGljIl0pO3JldHVybiBBLnNwbGl0KC9bLSAsK10rL2cpLmZpbHRlcigoQT0+IWUuaGFzKEEudG9Mb3dlckNhc2UoKSkpKS5qb2luKCIgIil9ZnVuY3Rpb24gWnIoe2FsaWFzOkEsbG9jYWw6ZSxwYXRoOnQsZmFsbGJhY2s6aSxzdHlsZTphLHVsdGltYXRlOnN9LG4scixnPSEwLG89ITAsST0iIil7Y29uc3QgYz17c3R5bGU6bnVsbCx1bHRpbWF0ZTpudWxsfTtpZihlKXtjb25zdCBBPUk/YCAke0l9YDoiIjtmb3IoY29uc3QgdCBvZiBlKW4ucHVzaChgbG9jYWwoJHt0fSR7QX0pYCl9aWYoQSl7Y29uc3QgZT1Qci5nZXQoQSkscz1JfHxmdW5jdGlvbihBKXtzd2l0Y2goQSl7Y2FzZSBLcjpyZXR1cm4iQm9sZCI7Y2FzZSBxcjpyZXR1cm4iSXRhbGljIjtjYXNlIFRyOnJldHVybiJCb2xkIEl0YWxpYyI7ZGVmYXVsdDppZigiYm9sZCI9PT1BPy53ZWlnaHQpcmV0dXJuIkJvbGQiO2lmKCJpdGFsaWMiPT09QT8uc3R5bGUpcmV0dXJuIkl0YWxpYyJ9cmV0dXJuIiJ9KGEpO09iamVjdC5hc3NpZ24oYyxacihlLG4scixnJiYhaSxvJiYhdCxzKSl9aWYoYSYmKGMuc3R5bGU9YSkscyYmKGMudWx0aW1hdGU9cyksZyYmaSl7Y29uc3QgQT1Qci5nZXQoaSkse3VsdGltYXRlOmV9PVpyKEEsbixyLGcsbyYmIXQsSSk7Yy51bHRpbWF0ZXx8PWV9cmV0dXJuIG8mJnQmJnImJm4ucHVzaChgdXJsKCR7cn0ke3R9KWApLGN9ZnVuY3Rpb24ganIoQSxlLHQsaSxhLHMpe2lmKGkuc3RhcnRzV2l0aCgiSW52YWxpZFBERmpzRm9udF8iKSlyZXR1cm4gbnVsbDsiVHJ1ZVR5cGUiIT09cyYmIlR5cGUxIiE9PXN8fCEvXltBLVpdezZ9XCsvLnRlc3QoaSl8fChpPWkuc2xpY2UoNykpO2NvbnN0IG49aT1kYShpKTtsZXQgcj1BLmdldChuKTtpZihyKXJldHVybiByO2xldCBnPVByLmdldChpKTtpZighZylmb3IoY29uc3RbQSxlXW9mIFdyKWlmKGkuc3RhcnRzV2l0aChBKSl7aT1gJHtlfSR7aS5zdWJzdHJpbmcoQS5sZW5ndGgpfWAsZz1Qci5nZXQoaSk7YnJlYWt9bGV0IG89ITE7Z3x8KGc9UHIuZ2V0KGEpLG89ITApO2NvbnN0IEk9YCR7ZS5nZXREb2NJZCgpfV9zJHtlLmNyZWF0ZUZvbnRJZCgpfWA7aWYoIWcpe2lmKCF6QShpKSlyZXR1cm4gVShgQ2Fubm90IHN1YnN0aXR1dGUgdGhlIGZvbnQgYmVjYXVzZSBvZiBpdHMgbmFtZTogJHtpfWApLEEuc2V0KG4sbnVsbCksbnVsbDtjb25zdCBlPS9ib2xkL2dpLnRlc3QoaSksdD0vb2JsaXF1ZXxpdGFsaWMvZ2kudGVzdChpKSxhPWUmJnQmJlRyfHxlJiZLcnx8dCYmcXJ8fHZyO3JldHVybiByPXtjc3M6YCIke09yKGkpfSIsJHtJfWAsZ3Vlc3NGYWxsYmFjazohMCxsb2FkZWROYW1lOkksYmFzZUZvbnROYW1lOmksc3JjOmBsb2NhbCgke2l9KWAsc3R5bGU6YX0sQS5zZXQobixyKSxyfWNvbnN0IGM9W107byYmekEoaSkmJmMucHVzaChgbG9jYWwoJHtpfSlgKTtjb25zdHtzdHlsZTpoLHVsdGltYXRlOkN9PVpyKGcsYyx0KSxCPW51bGw9PT1DLGw9Qj8iIjpgLCR7Q31gO3JldHVybiByPXtjc3M6YCIke09yKGkpfSIsJHtJfSR7bH1gLGd1ZXNzRmFsbGJhY2s6Qixsb2FkZWROYW1lOkksYmFzZUZvbnROYW1lOmksc3JjOmMuam9pbigiLCIpLHN0eWxlOmh9LEEuc2V0KG4scikscn1jbGFzcyBYcntjb25zdHJ1Y3RvcihBLGUpe3RoaXMuX2ltZ0RhdGE9QSx0aGlzLl9pc01hc2s9ZX1zdGF0aWMgbmVlZHNUb0JlUmVzaXplZChBLGUpe2lmKEE8PXRoaXMuX2dvb2RTcXVhcmVMZW5ndGgmJmU8PXRoaXMuX2dvb2RTcXVhcmVMZW5ndGgpcmV0dXJuITE7Y29uc3R7TUFYX0RJTTp0fT10aGlzO2lmKEE+dHx8ZT50KXJldHVybiEwO2NvbnN0IGk9QSplO3JldHVybiB0aGlzLl9oYXNNYXhBcmVhP2k+dGhpcy5NQVhfQVJFQTohKGk8dGhpcy5fZ29vZFNxdWFyZUxlbmd0aCoqMikmJih0aGlzLl9hcmVHb29kRGltcyhBLGUpPyh0aGlzLl9nb29kU3F1YXJlTGVuZ3RoPU1hdGgubWF4KHRoaXMuX2dvb2RTcXVhcmVMZW5ndGgsTWF0aC5mbG9vcihNYXRoLnNxcnQoQSplKSkpLCExKToodGhpcy5fZ29vZFNxdWFyZUxlbmd0aD10aGlzLl9ndWVzc01heCh0aGlzLl9nb29kU3F1YXJlTGVuZ3RoLHQsMTI4LDApLGk+KHRoaXMuTUFYX0FSRUE9dGhpcy5fZ29vZFNxdWFyZUxlbmd0aCoqMikpKX1zdGF0aWMgZ2V0IE1BWF9ESU0oKXtyZXR1cm4gSCh0aGlzLCJNQVhfRElNIix0aGlzLl9ndWVzc01heCgyMDQ4LDY1NTM3LDAsMSkpfXN0YXRpYyBnZXQgTUFYX0FSRUEoKXtyZXR1cm4gdGhpcy5faGFzTWF4QXJlYT0hMCxIKHRoaXMsIk1BWF9BUkVBIix0aGlzLl9ndWVzc01heChYci5fZ29vZFNxdWFyZUxlbmd0aCx0aGlzLk1BWF9ESU0sMTI4LDApKioyKX1zdGF0aWMgc2V0IE1BWF9BUkVBKEEpe0E+PTAmJih0aGlzLl9oYXNNYXhBcmVhPSEwLEgodGhpcywiTUFYX0FSRUEiLEEpKX1zdGF0aWMgc2V0TWF4QXJlYShBKXt0aGlzLl9oYXNNYXhBcmVhfHwodGhpcy5NQVhfQVJFQT1BPj4yKX1zdGF0aWMgX2FyZUdvb2REaW1zKEEsZSl7dHJ5e2NvbnN0IHQ9bmV3IE9mZnNjcmVlbkNhbnZhcyhBLGUpLGk9dC5nZXRDb250ZXh0KCIyZCIpO2kuZmlsbFJlY3QoMCwwLDEsMSk7Y29uc3QgYT1pLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhWzNdO3JldHVybiB0LndpZHRoPXQuaGVpZ2h0PTEsMCE9PWF9Y2F0Y2h7cmV0dXJuITF9fXN0YXRpYyBfZ3Vlc3NNYXgoQSxlLHQsaSl7Zm9yKDtBK3QrMTxlOyl7Y29uc3QgdD1NYXRoLmZsb29yKChBK2UpLzIpLGE9aXx8dDt0aGlzLl9hcmVHb29kRGltcyh0LGEpP0E9dDplPXR9cmV0dXJuIEF9c3RhdGljIGFzeW5jIGNyZWF0ZUltYWdlKEEsZT0hMSl7cmV0dXJuIG5ldyBYcihBLGUpLl9jcmVhdGVJbWFnZSgpfWFzeW5jIF9jcmVhdGVJbWFnZSgpe2NvbnN0IEE9dGhpcy5fZW5jb2RlQk1QKCksZT1uZXcgQmxvYihbQS5idWZmZXJdLHt0eXBlOiJpbWFnZS9ibXAifSksdD1jcmVhdGVJbWFnZUJpdG1hcChlKSx7TUFYX0FSRUE6aSxNQVhfRElNOmF9PVhyLHtfaW1nRGF0YTpzfT10aGlzLHt3aWR0aDpuLGhlaWdodDpyfT1zLGc9TWF0aC5tYXgobi9hLHIvYSxNYXRoLnNxcnQobipyL2kpKSxvPU1hdGgubWF4KGcsMiksST1NYXRoLnJvdW5kKDEwKihnKzEuMjUpKS8xMC9vLGM9TWF0aC5mbG9vcihNYXRoLmxvZzIoSSkpLGg9bmV3IEFycmF5KGMrMikuZmlsbCgyKTtoWzBdPW8saC5zcGxpY2UoLTEsMSxJLygxPDxjKSk7bGV0IEM9bixCPXIsbD1hd2FpdCB0O2Zvcihjb25zdCBBIG9mIGgpe2NvbnN0IGU9Qyx0PUI7Qz1NYXRoLmZsb29yKEMvQSktMSxCPU1hdGguZmxvb3IoQi9BKS0xO2NvbnN0IGk9bmV3IE9mZnNjcmVlbkNhbnZhcyhDLEIpO2kuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UobCwwLDAsZSx0LDAsMCxDLEIpLGw9aS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX1yZXR1cm4gcy5kYXRhPW51bGwscy5iaXRtYXA9bCxzLndpZHRoPUMscy5oZWlnaHQ9QixzfV9lbmNvZGVCTVAoKXtjb25zdHt3aWR0aDpBLGhlaWdodDplLGtpbmQ6dH09dGhpcy5faW1nRGF0YTtsZXQgaSxhPXRoaXMuX2ltZ0RhdGEuZGF0YSxzPW5ldyBVaW50OEFycmF5KDApLG49cyxyPTA7c3dpdGNoKHQpe2Nhc2UgMTp7aT0xLHM9bmV3IFVpbnQ4QXJyYXkodGhpcy5faXNNYXNrP1syNTUsMjU1LDI1NSwyNTUsMCwwLDAsMF06WzAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSk7Y29uc3QgdD1BKzc+PjMsbj10KzMmLTQ7aWYodCE9PW4pe2NvbnN0IEE9bmV3IFVpbnQ4QXJyYXkobiplKTtsZXQgaT0wO2ZvcihsZXQgcz0wLHI9ZSp0O3M8cjtzKz10LGkrPW4pQS5zZXQoYS5zdWJhcnJheShzLHMrdCksaSk7YT1BfWJyZWFrfWNhc2UgMjppZihpPTI0LDMmQSl7Y29uc3QgdD0zKkEsaT10KzMmLTQscz1pLXQsbj1uZXcgVWludDhBcnJheShpKmUpO2xldCByPTA7Zm9yKGxldCBBPTAsaT1lKnQ7QTxpO0ErPXQpe2NvbnN0IGU9YS5zdWJhcnJheShBLEErdCk7Zm9yKGxldCBBPTA7QTx0O0ErPTMpbltyKytdPWVbQSsyXSxuW3IrK109ZVtBKzFdLG5bcisrXT1lW0FdO3IrPXN9YT1ufWVsc2UgZm9yKGxldCBBPTAsZT1hLmxlbmd0aDtBPGU7QSs9Myl7Y29uc3QgZT1hW0FdO2FbQV09YVtBKzJdLGFbQSsyXT1lfWJyZWFrO2Nhc2UgMzppPTMyLHI9MyxuPW5ldyBVaW50OEFycmF5KDY4KTtjb25zdCB0PW5ldyBEYXRhVmlldyhuLmJ1ZmZlcik7Xy5pc0xpdHRsZUVuZGlhbj8odC5zZXRVaW50MzIoMCwyNTUsITApLHQuc2V0VWludDMyKDQsNjUyODAsITApLHQuc2V0VWludDMyKDgsMTY3MTE2ODAsITApLHQuc2V0VWludDMyKDEyLDQyNzgxOTAwODAsITApKToodC5zZXRVaW50MzIoMCw0Mjc4MTkwMDgwLCEwKSx0LnNldFVpbnQzMig0LDE2NzExNjgwLCEwKSx0LnNldFVpbnQzMig4LDY1MjgwLCEwKSx0LnNldFVpbnQzMigxMiwyNTUsITApKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQiKX1sZXQgZz0wO2NvbnN0IG89NDArbi5sZW5ndGgsST0xNCtvK3MubGVuZ3RoK2EubGVuZ3RoLGM9bmV3IFVpbnQ4QXJyYXkoSSksaD1uZXcgRGF0YVZpZXcoYy5idWZmZXIpO3JldHVybiBoLnNldFVpbnQxNihnLDE5Nzc4LCEwKSxnKz0yLGguc2V0VWludDMyKGcsSSwhMCksZys9NCxoLnNldFVpbnQzMihnLDAsITApLGcrPTQsaC5zZXRVaW50MzIoZywxNCtvK3MubGVuZ3RoLCEwKSxnKz00LGguc2V0VWludDMyKGcsbywhMCksZys9NCxoLnNldEludDMyKGcsQSwhMCksZys9NCxoLnNldEludDMyKGcsLWUsITApLGcrPTQsaC5zZXRVaW50MTYoZywxLCEwKSxnKz0yLGguc2V0VWludDE2KGcsaSwhMCksZys9MixoLnNldFVpbnQzMihnLHIsITApLGcrPTQsaC5zZXRVaW50MzIoZywwLCEwKSxnKz00LGguc2V0SW50MzIoZywwLCEwKSxnKz00LGguc2V0SW50MzIoZywwLCEwKSxnKz00LGguc2V0VWludDMyKGcscy5sZW5ndGgvNCwhMCksZys9NCxoLnNldFVpbnQzMihnLDAsITApLGcrPTQsYy5zZXQobixnKSxnKz1uLmxlbmd0aCxjLnNldChzLGcpLGcrPXMubGVuZ3RoLGMuc2V0KGEsZyksY319WHIuX2dvb2RTcXVhcmVMZW5ndGg9MjA0ODtjb25zdCBWcj0zMjg1Mzc3NTIwLF9yPTQyOTQ5MDE3NjAsenI9NjU1MzU7Y2xhc3MgJHJ7Y29uc3RydWN0b3IoQSl7dGhpcy5oMT1BPzQyOTQ5NjcyOTUmQTpWcix0aGlzLmgyPUE/NDI5NDk2NzI5NSZBOlZyfXVwZGF0ZShBKXtsZXQgZSx0O2lmKCJzdHJpbmciPT10eXBlb2YgQSl7ZT1uZXcgVWludDhBcnJheSgyKkEubGVuZ3RoKSx0PTA7Zm9yKGxldCBpPTAsYT1BLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPUEuY2hhckNvZGVBdChpKTthPD0yNTU/ZVt0KytdPWE6KGVbdCsrXT1hPj4+OCxlW3QrK109MjU1JmEpfX1lbHNle2lmKCFBcnJheUJ1ZmZlci5pc1ZpZXcoQSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGEgZm9ybWF0LCBtdXN0IGJlIGEgc3RyaW5nIG9yIFR5cGVkQXJyYXkuIik7ZT1BLnNsaWNlKCksdD1lLmJ5dGVMZW5ndGh9Y29uc3QgaT10Pj4yLGE9dC00Kmkscz1uZXcgVWludDMyQXJyYXkoZS5idWZmZXIsMCxpKTtsZXQgbj0wLHI9MCxnPXRoaXMuaDEsbz10aGlzLmgyO2NvbnN0IEk9MzQzMjkxODM1MyxjPTQ2MTg0NTkwNyxoPTExNjAxLEM9MTM3MTU7Zm9yKGxldCBBPTA7QTxpO0ErKykxJkE/KG49c1tBXSxuPW4qSSZfcnxuKmgmenIsbj1uPDwxNXxuPj4+MTcsbj1uKmMmX3J8bipDJnpyLGdePW4sZz1nPDwxM3xnPj4+MTksZz01KmcrMzg2NDI5MjE5Nik6KHI9c1tBXSxyPXIqSSZfcnxyKmgmenIscj1yPDwxNXxyPj4+MTcscj1yKmMmX3J8cipDJnpyLG9ePXIsbz1vPDwxM3xvPj4+MTksbz01Km8rMzg2NDI5MjE5Nik7c3dpdGNoKG49MCxhKXtjYXNlIDM6bl49ZVs0KmkrMl08PDE2O2Nhc2UgMjpuXj1lWzQqaSsxXTw8ODtjYXNlIDE6bl49ZVs0KmldLG49bipJJl9yfG4qaCZ6cixuPW48PDE1fG4+Pj4xNyxuPW4qYyZfcnxuKkMmenIsMSZpP2dePW46b149bn10aGlzLmgxPWcsdGhpcy5oMj1vfWhleGRpZ2VzdCgpe2xldCBBPXRoaXMuaDEsZT10aGlzLmgyO3JldHVybiBBXj1lPj4+MSxBPTM5ODE4MDY3OTcqQSZfcnwzNjA0NSpBJnpyLGU9NDI4MzU0MzUxMSplJl9yfCgyOTUwMTYzNzk3KihlPDwxNnxBPj4+MTYpJl9yKT4+PjE2LEFePWU+Pj4xLEE9NDQ0OTg0NDAzKkEmX3J8NjA0OTkqQSZ6cixlPTMzMDE4ODIzNjYqZSZfcnwoMzEyMDQzNzg5MyooZTw8MTZ8QT4+PjE2KSZfcik+Pj4xNixBXj1lPj4+MSwoQT4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIikrKGU+Pj4wKS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpfX1mdW5jdGlvbiBBZyhBLGUsdCxpLGEpe2xldCBzPUE7Zm9yKGxldCBBPTAsdD1lLmxlbmd0aC0xO0E8dDtBKyspe2NvbnN0IHQ9ZVtBXTtzPXNbdF18fD1bXX1zW2UuYXQoLTEpXT17Y2hlY2tGbjp0LGl0ZXJhdGVGbjppLHByb2Nlc3NGbjphfX1jb25zdCBlZz1bXTtBZyhlZyxbZixtLDg2LHBdLG51bGwsKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT0oZS0oQS5pQ3Vyci0zKSklNDtzd2l0Y2goaSl7Y2FzZSAwOnJldHVybiB0W2VdPT09ZjtjYXNlIDE6cmV0dXJuIHRbZV09PT1tO2Nhc2UgMjpyZXR1cm4gODY9PT10W2VdO2Nhc2UgMzpyZXR1cm4gdFtlXT09PXB9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlSW5saW5lSW1hZ2VHcm91cCAtIGludmFsaWQgcG9zOiAke2l9YCl9KSwoZnVuY3Rpb24oQSxlKXtjb25zdCB0PUEuZm5BcnJheSxpPUEuYXJnc0FycmF5LGE9QS5pQ3VycixzPWEtMyxuPWEtMixyPWEtMSxnPU1hdGgubWluKE1hdGguZmxvb3IoKGUtcykvNCksMjAwKTtpZihnPDEwKXJldHVybiBlLShlLXMpJTQ7bGV0IG89MDtjb25zdCBJPVtdO2xldCBjPTAsaD0xLEM9MTtmb3IobGV0IEE9MDtBPGc7QSsrKXtjb25zdCBlPWlbbisoQTw8MildLHQ9aVtyKyhBPDwyKV1bMF07aCt0LndpZHRoPjFlMyYmKG89TWF0aC5tYXgobyxoKSxDKz1jKzIsaD0wLGM9MCksSS5wdXNoKHt0cmFuc2Zvcm06ZSx4OmgseTpDLHc6dC53aWR0aCxoOnQuaGVpZ2h0fSksaCs9dC53aWR0aCsyLGM9TWF0aC5tYXgoYyx0LmhlaWdodCl9Y29uc3QgQj1NYXRoLm1heChvLGgpKzEsbD1DK2MrMSxRPW5ldyBVaW50OEFycmF5KEIqbCo0KSxFPUI8PDI7Zm9yKGxldCBBPTA7QTxnO0ErKyl7Y29uc3QgZT1pW3IrKEE8PDIpXVswXS5kYXRhLHQ9SVtBXS53PDwyO2xldCBhPTAscz1JW0FdLngrSVtBXS55KkI8PDI7US5zZXQoZS5zdWJhcnJheSgwLHQpLHMtRSk7Zm9yKGxldCBpPTAsbj1JW0FdLmg7aTxuO2krKylRLnNldChlLnN1YmFycmF5KGEsYSt0KSxzKSxhKz10LHMrPUU7Zm9yKFEuc2V0KGUuc3ViYXJyYXkoYS10LGEpLHMpO3M+PTA7KWVbcy00XT1lW3NdLGVbcy0zXT1lW3MrMV0sZVtzLTJdPWVbcysyXSxlW3MtMV09ZVtzKzNdLGVbcyt0XT1lW3MrdC00XSxlW3MrdCsxXT1lW3MrdC0zXSxlW3MrdCsyXT1lW3MrdC0yXSxlW3MrdCszXT1lW3MrdC0xXSxzLT1FfWNvbnN0IHU9e3dpZHRoOkIsaGVpZ2h0Omx9O2lmKEEuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IEE9bmV3IE9mZnNjcmVlbkNhbnZhcyhCLGwpO0EuZ2V0Q29udGV4dCgiMmQiKS5wdXRJbWFnZURhdGEobmV3IEltYWdlRGF0YShuZXcgVWludDhDbGFtcGVkQXJyYXkoUS5idWZmZXIpLEIsbCksMCwwKSx1LmJpdG1hcD1BLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpLHUuZGF0YT1udWxsfWVsc2UgdS5raW5kPTMsdS5kYXRhPVE7cmV0dXJuIHQuc3BsaWNlKHMsNCpnLDg3KSxpLnNwbGljZShzLDQqZyxbdSxJXSkscysxfSkpLEFnKGVnLFtmLG0sUyxwXSxudWxsLChmdW5jdGlvbihBLGUpe2NvbnN0IHQ9QS5mbkFycmF5LGk9KGUtKEEuaUN1cnItMykpJTQ7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm4gdFtlXT09PWY7Y2FzZSAxOnJldHVybiB0W2VdPT09bTtjYXNlIDI6cmV0dXJuIHRbZV09PT1TO2Nhc2UgMzpyZXR1cm4gdFtlXT09PXB9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlSW1hZ2VNYXNrR3JvdXAgLSBpbnZhbGlkIHBvczogJHtpfWApfSksKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT1BLmFyZ3NBcnJheSxhPUEuaUN1cnIscz1hLTMsbj1hLTIscj1hLTE7bGV0IGc9TWF0aC5mbG9vcigoZS1zKS80KTtpZihnPDEwKXJldHVybiBlLShlLXMpJTQ7bGV0IG8sSSxjPSExO2NvbnN0IGg9aVtyXVswXSxDPWlbbl1bMF0sQj1pW25dWzFdLGw9aVtuXVsyXSxRPWlbbl1bM107aWYoQj09PWwpe2M9ITAsbz1uKzQ7bGV0IEE9cis0O2ZvcihsZXQgZT0xO2U8ZztlKyssbys9NCxBKz00KWlmKEk9aVtvXSxpW0FdWzBdIT09aHx8SVswXSE9PUN8fElbMV0hPT1CfHxJWzJdIT09bHx8SVszXSE9PVEpe2U8MTA/Yz0hMTpnPWU7YnJlYWt9fWlmKGMpe2c9TWF0aC5taW4oZywxZTMpO2NvbnN0IEE9bmV3IEZsb2F0MzJBcnJheSgyKmcpO289bjtmb3IobGV0IGU9MDtlPGc7ZSsrLG8rPTQpST1pW29dLEFbZTw8MV09SVs0XSxBWzErKGU8PDEpXT1JWzVdO3Quc3BsaWNlKHMsNCpnLDg5KSxpLnNwbGljZShzLDQqZyxbaCxDLEIsbCxRLEFdKX1lbHNle2c9TWF0aC5taW4oZywxMDApO2NvbnN0IEE9W107Zm9yKGxldCBlPTA7ZTxnO2UrKyl7ST1pW24rKGU8PDIpXTtjb25zdCB0PWlbcisoZTw8MildWzBdO0EucHVzaCh7ZGF0YTp0LmRhdGEsd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsaW50ZXJwb2xhdGU6dC5pbnRlcnBvbGF0ZSxjb3VudDp0LmNvdW50LHRyYW5zZm9ybTpJfSl9dC5zcGxpY2Uocyw0KmcsODQpLGkuc3BsaWNlKHMsNCpnLFtBXSl9cmV0dXJuIHMrMX0pKSxBZyhlZyxbZixtLFIscF0sKGZ1bmN0aW9uKEEpe2NvbnN0IGU9QS5hcmdzQXJyYXksdD1BLmlDdXJyLTI7cmV0dXJuIDA9PT1lW3RdWzFdJiYwPT09ZVt0XVsyXX0pLChmdW5jdGlvbihBLGUpe2NvbnN0IHQ9QS5mbkFycmF5LGk9QS5hcmdzQXJyYXksYT0oZS0oQS5pQ3Vyci0zKSklNDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiB0W2VdPT09ZjtjYXNlIDE6aWYodFtlXSE9PW0pcmV0dXJuITE7Y29uc3QgYT1BLmlDdXJyLTIscz1pW2FdWzBdLG49aVthXVszXTtyZXR1cm4gaVtlXVswXT09PXMmJjA9PT1pW2VdWzFdJiYwPT09aVtlXVsyXSYmaVtlXVszXT09PW47Y2FzZSAyOmlmKHRbZV0hPT1SKXJldHVybiExO2NvbnN0IHI9aVtBLmlDdXJyLTFdWzBdO3JldHVybiBpW2VdWzBdPT09cjtjYXNlIDM6cmV0dXJuIHRbZV09PT1wfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZUltYWdlR3JvdXAgLSBpbnZhbGlkIHBvczogJHthfWApfSksKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT1BLmFyZ3NBcnJheSxhPUEuaUN1cnIscz1hLTMsbj1hLTIscj1pW2EtMV1bMF0sZz1pW25dWzBdLG89aVtuXVszXSxJPU1hdGgubWluKE1hdGguZmxvb3IoKGUtcykvNCksMWUzKTtpZihJPDMpcmV0dXJuIGUtKGUtcyklNDtjb25zdCBjPW5ldyBGbG9hdDMyQXJyYXkoMipJKTtsZXQgaD1uO2ZvcihsZXQgQT0wO0E8STtBKyssaCs9NCl7Y29uc3QgZT1pW2hdO2NbQTw8MV09ZVs0XSxjWzErKEE8PDEpXT1lWzVdfWNvbnN0IEM9W3IsZyxvLGNdO3JldHVybiB0LnNwbGljZShzLDQqSSw4OCksaS5zcGxpY2Uocyw0KkksQykscysxfSkpLEFnKGVnLFszMSx5LDQyLHcsMzJdLG51bGwsKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT1BLmFyZ3NBcnJheSxhPShlLShBLmlDdXJyLTQpKSU1O3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIDMxPT09dFtlXTtjYXNlIDE6cmV0dXJuIHRbZV09PT15O2Nhc2UgMjpyZXR1cm4gNDI9PT10W2VdO2Nhc2UgMzppZih0W2VdIT09dylyZXR1cm4hMTtjb25zdCBhPUEuaUN1cnItMyxzPWlbYV1bMF0sbj1pW2FdWzFdO3JldHVybiBpW2VdWzBdPT09cyYmaVtlXVsxXT09PW47Y2FzZSA0OnJldHVybiAzMj09PXRbZV19dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlU2hvd1RleHRHcm91cCAtIGludmFsaWQgcG9zOiAke2F9YCl9KSwoZnVuY3Rpb24oQSxlKXtjb25zdCB0PUEuZm5BcnJheSxpPUEuYXJnc0FycmF5LGE9QS5pQ3VycixzPWEtNCxuPWEtMyxyPWEtMixnPWEtMSxvPWEsST1pW25dWzBdLGM9aVtuXVsxXTtsZXQgaD1NYXRoLm1pbihNYXRoLmZsb29yKChlLXMpLzUpLDFlMyk7aWYoaDwzKXJldHVybiBlLShlLXMpJTU7bGV0IEM9cztzPj00JiZ0W3MtNF09PT10W25dJiZ0W3MtM109PT10W3JdJiZ0W3MtMl09PT10W2ddJiZ0W3MtMV09PT10W29dJiZpW3MtNF1bMF09PT1JJiZpW3MtNF1bMV09PT1jJiYoaCsrLEMtPTUpO2xldCBCPUMrNDtmb3IobGV0IEE9MTtBPGg7QSsrKXQuc3BsaWNlKEIsMyksaS5zcGxpY2UoQiwzKSxCKz0yO3JldHVybiBCKzF9KSk7Y2xhc3MgdGd7Y29uc3RydWN0b3IoQSl7dGhpcy5xdWV1ZT1BfV9vcHRpbWl6ZSgpe31wdXNoKEEsZSl7dGhpcy5xdWV1ZS5mbkFycmF5LnB1c2goQSksdGhpcy5xdWV1ZS5hcmdzQXJyYXkucHVzaChlKSx0aGlzLl9vcHRpbWl6ZSgpfWZsdXNoKCl7fXJlc2V0KCl7fX1jbGFzcyBpZyBleHRlbmRzIHRne2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmNvbnRleHQ9e2lDdXJyOjAsZm5BcnJheTpBLmZuQXJyYXksYXJnc0FycmF5OkEuYXJnc0FycmF5LGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOiExfSx0aGlzLm1hdGNoPW51bGwsdGhpcy5sYXN0UHJvY2Vzc2VkPTB9c2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKEEpe3RoaXMuY29udGV4dC5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZD1BfV9vcHRpbWl6ZSgpe2NvbnN0IEE9dGhpcy5xdWV1ZS5mbkFycmF5O2xldCBlPXRoaXMubGFzdFByb2Nlc3NlZCx0PUEubGVuZ3RoLGk9dGhpcy5zdGF0ZSxhPXRoaXMubWF0Y2g7aWYoIWkmJiFhJiZlKzE9PT10JiYhZWdbQVtlXV0pcmV0dXJuIHZvaWQodGhpcy5sYXN0UHJvY2Vzc2VkPXQpO2NvbnN0IHM9dGhpcy5jb250ZXh0O2Zvcig7ZTx0Oyl7aWYoYSl7aWYoKDAsYS5pdGVyYXRlRm4pKHMsZSkpe2UrKztjb250aW51ZX1pZihlPSgwLGEucHJvY2Vzc0ZuKShzLGUrMSksdD1BLmxlbmd0aCxhPW51bGwsaT1udWxsLGU+PXQpYnJlYWt9aT0oaXx8ZWcpW0FbZV1dLGkmJiFBcnJheS5pc0FycmF5KGkpPyhzLmlDdXJyPWUsZSsrLCFpLmNoZWNrRm58fCgwLGkuY2hlY2tGbikocyk/KGE9aSxpPW51bGwpOmk9bnVsbCk6ZSsrfXRoaXMuc3RhdGU9aSx0aGlzLm1hdGNoPWEsdGhpcy5sYXN0UHJvY2Vzc2VkPWV9Zmx1c2goKXtmb3IoO3RoaXMubWF0Y2g7KXtjb25zdCBBPXRoaXMucXVldWUuZm5BcnJheS5sZW5ndGg7dGhpcy5sYXN0UHJvY2Vzc2VkPSgwLHRoaXMubWF0Y2gucHJvY2Vzc0ZuKSh0aGlzLmNvbnRleHQsQSksdGhpcy5tYXRjaD1udWxsLHRoaXMuc3RhdGU9bnVsbCx0aGlzLl9vcHRpbWl6ZSgpfX1yZXNldCgpe3RoaXMuc3RhdGU9bnVsbCx0aGlzLm1hdGNoPW51bGwsdGhpcy5sYXN0UHJvY2Vzc2VkPTB9fWNsYXNzIGFne3N0YXRpYyBDSFVOS19TSVpFPTFlMztzdGF0aWMgQ0hVTktfU0laRV9BQk9VVD10aGlzLkNIVU5LX1NJWkUtNTtjb25zdHJ1Y3RvcihBPTAsZSl7dGhpcy5fc3RyZWFtU2luaz1lLHRoaXMuZm5BcnJheT1bXSx0aGlzLmFyZ3NBcnJheT1bXSx0aGlzLm9wdGltaXplcj0hZXx8MjU2JkE/bmV3IHRnKHRoaXMpOm5ldyBpZyh0aGlzKSx0aGlzLmRlcGVuZGVuY2llcz1uZXcgU2V0LHRoaXMuX3RvdGFsTGVuZ3RoPTAsdGhpcy53ZWlnaHQ9MCx0aGlzLl9yZXNvbHZlZD1lP251bGw6UHJvbWlzZS5yZXNvbHZlKCl9c2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKEEpe3RoaXMub3B0aW1pemVyLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPUF9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmFyZ3NBcnJheS5sZW5ndGh9Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVkfHx0aGlzLl9zdHJlYW1TaW5rLnJlYWR5fWdldCB0b3RhbExlbmd0aCgpe3JldHVybiB0aGlzLl90b3RhbExlbmd0aCt0aGlzLmxlbmd0aH1hZGRPcChBLGUpe3RoaXMub3B0aW1pemVyLnB1c2goQSxlKSx0aGlzLndlaWdodCsrLHRoaXMuX3N0cmVhbVNpbmsmJih0aGlzLndlaWdodD49YWcuQ0hVTktfU0laRXx8dGhpcy53ZWlnaHQ+PWFnLkNIVU5LX1NJWkVfQUJPVVQmJihBPT09cHx8MzI9PT1BKSkmJnRoaXMuZmx1c2goKX1hZGRJbWFnZU9wcyhBLGUsdCl7dm9pZCAwIT09dCYmdGhpcy5hZGRPcChrLFsiT0MiLHRdKSx0aGlzLmFkZE9wKEEsZSksdm9pZCAwIT09dCYmdGhpcy5hZGRPcChGLFtdKX1hZGREZXBlbmRlbmN5KEEpe3RoaXMuZGVwZW5kZW5jaWVzLmhhcyhBKXx8KHRoaXMuZGVwZW5kZW5jaWVzLmFkZChBKSx0aGlzLmFkZE9wKDEsW0FdKSl9YWRkRGVwZW5kZW5jaWVzKEEpe2Zvcihjb25zdCBlIG9mIEEpdGhpcy5hZGREZXBlbmRlbmN5KGUpfWFkZE9wTGlzdChBKXtpZihBIGluc3RhbmNlb2YgYWcpe2Zvcihjb25zdCBlIG9mIEEuZGVwZW5kZW5jaWVzKXRoaXMuZGVwZW5kZW5jaWVzLmFkZChlKTtmb3IobGV0IGU9MCx0PUEubGVuZ3RoO2U8dDtlKyspdGhpcy5hZGRPcChBLmZuQXJyYXlbZV0sQS5hcmdzQXJyYXlbZV0pfWVsc2UgVSgnYWRkT3BMaXN0IC0gaWdub3JpbmcgaW52YWxpZCAib3BMaXN0IiBwYXJhbWV0ZXIuJyl9Z2V0SVIoKXtyZXR1cm57Zm5BcnJheTp0aGlzLmZuQXJyYXksYXJnc0FycmF5OnRoaXMuYXJnc0FycmF5LGxlbmd0aDp0aGlzLmxlbmd0aH19Z2V0IF90cmFuc2ZlcnMoKXtjb25zdCBBPVtdLHtmbkFycmF5OmUsYXJnc0FycmF5OnQsbGVuZ3RoOml9PXRoaXM7Zm9yKGxldCBhPTA7YTxpO2ErKylzd2l0Y2goZVthXSl7Y2FzZSA4NjpjYXNlIDg3OmNhc2UgUzpjb25zdCBlPXRbYV1bMF07IWUuY2FjaGVkJiZlLmRhdGE/LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZBLnB1c2goZS5kYXRhLmJ1ZmZlcil9cmV0dXJuIEF9Zmx1c2goQT0hMSxlPW51bGwpe3RoaXMub3B0aW1pemVyLmZsdXNoKCk7Y29uc3QgdD10aGlzLmxlbmd0aDt0aGlzLl90b3RhbExlbmd0aCs9dCx0aGlzLl9zdHJlYW1TaW5rLmVucXVldWUoe2ZuQXJyYXk6dGhpcy5mbkFycmF5LGFyZ3NBcnJheTp0aGlzLmFyZ3NBcnJheSxsYXN0Q2h1bms6QSxzZXBhcmF0ZUFubm90czplLGxlbmd0aDp0fSwxLHRoaXMuX3RyYW5zZmVycyksdGhpcy5kZXBlbmRlbmNpZXMuY2xlYXIoKSx0aGlzLmZuQXJyYXkubGVuZ3RoPTAsdGhpcy5hcmdzQXJyYXkubGVuZ3RoPTAsdGhpcy53ZWlnaHQ9MCx0aGlzLm9wdGltaXplci5yZXNldCgpfX1mdW5jdGlvbiBzZyhBLGUsdCxpKXtyZXR1cm4oQT1lK0EqdCk8MD9BPTA6QT5pJiYoQT1pKSxBfWZ1bmN0aW9uIG5nKEEsZSx0LGksYSxzKXtjb25zdCBuPWEqcztsZXQgcjtyPWU8PTg/bmV3IFVpbnQ4QXJyYXkobik6ZTw9MTY/bmV3IFVpbnQxNkFycmF5KG4pOm5ldyBVaW50MzJBcnJheShuKTtjb25zdCBnPXQvYSxvPWkvcztsZXQgSSxjLGgsQyxCPTA7Y29uc3QgbD1uZXcgVWludDE2QXJyYXkoYSksUT10O2ZvcihJPTA7STxhO0krKylsW0ldPU1hdGguZmxvb3IoSSpnKTtmb3IoST0wO0k8cztJKyspZm9yKGg9TWF0aC5mbG9vcihJKm8pKlEsYz0wO2M8YTtjKyspQz1oK2xbY10scltCKytdPUFbQ107cmV0dXJuIHJ9Y2xhc3Mgcmd7Y29uc3RydWN0b3Ioe3hyZWY6QSxyZXM6ZSxpbWFnZTp0LGlzSW5saW5lOmk9ITEsc21hc2s6YT1udWxsLG1hc2s6cz1udWxsLGlzTWFzazpuPSExLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmd9KXt0aGlzLmltYWdlPXQ7Y29uc3Qgbz10LmRpY3QsST1vLmdldCgiRiIsIkZpbHRlciIpO2xldCBjO2lmKEkgaW5zdGFuY2VvZiBDQSljPUkubmFtZTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoSSkpe2NvbnN0IGU9QS5mZXRjaElmUmVmKElbMF0pO2UgaW5zdGFuY2VvZiBDQSYmKGM9ZS5uYW1lKX1zd2l0Y2goYyl7Y2FzZSJKUFhEZWNvZGUiOih7d2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsY29tcG9uZW50c0NvdW50OnQubnVtQ29tcHMsYml0c1BlckNvbXBvbmVudDp0LmJpdHNQZXJDb21wb25lbnR9PWlpLnBhcnNlSW1hZ2VQcm9wZXJ0aWVzKHQuc3RyZWFtKSksdC5zdHJlYW0ucmVzZXQoKSx0aGlzLmpweERlY29kZXJPcHRpb25zPXtudW1Db21wb25lbnRzOjAsaXNJbmRleGVkQ29sb3JtYXA6ITEsc21hc2tJbkRhdGE6by5oYXMoIlNNYXNrSW5EYXRhIil9O2JyZWFrO2Nhc2UiSkJJRzJEZWNvZGUiOnQuYml0c1BlckNvbXBvbmVudD0xLHQubnVtQ29tcHM9MX1sZXQgaD1vLmdldCgiVyIsIldpZHRoIiksQz1vLmdldCgiSCIsIkhlaWdodCIpO2lmKE51bWJlci5pc0ludGVnZXIodC53aWR0aCkmJnQud2lkdGg+MCYmTnVtYmVyLmlzSW50ZWdlcih0LmhlaWdodCkmJnQuaGVpZ2h0PjAmJih0LndpZHRoIT09aHx8dC5oZWlnaHQhPT1DKSYmKFUoIlBERkltYWdlIC0gdXNpbmcgdGhlIFdpZHRoL0hlaWdodCBvZiB0aGUgaW1hZ2UgZGF0YSwgcmF0aGVyIHRoYW4gdGhlIGltYWdlIGRpY3Rpb25hcnkuIiksaD10LndpZHRoLEM9dC5oZWlnaHQpLGg8MXx8QzwxKXRocm93IG5ldyBXKGBJbnZhbGlkIGltYWdlIHdpZHRoOiAke2h9IG9yIGhlaWdodDogJHtDfWApO3RoaXMud2lkdGg9aCx0aGlzLmhlaWdodD1DLHRoaXMuaW50ZXJwb2xhdGU9by5nZXQoIkkiLCJJbnRlcnBvbGF0ZSIpLHRoaXMuaW1hZ2VNYXNrPW8uZ2V0KCJJTSIsIkltYWdlTWFzayIpfHwhMSx0aGlzLm1hdHRlPW8uZ2V0KCJNYXR0ZSIpfHwhMTtsZXQgQj10LmJpdHNQZXJDb21wb25lbnQ7aWYoIUImJihCPW8uZ2V0KCJCUEMiLCJCaXRzUGVyQ29tcG9uZW50IiksIUIpKXtpZighdGhpcy5pbWFnZU1hc2spdGhyb3cgbmV3IFcoYEJpdHMgcGVyIGNvbXBvbmVudCBtaXNzaW5nIGluIGltYWdlOiAke3RoaXMuaW1hZ2VNYXNrfWApO0I9MX1pZih0aGlzLmJwYz1CLCF0aGlzLmltYWdlTWFzayl7bGV0IGE9by5nZXRSYXcoIkNTIil8fG8uZ2V0UmF3KCJDb2xvclNwYWNlIik7Y29uc3Qgcz0hIWE7aWYocyl0aGlzLmpweERlY29kZXJPcHRpb25zPy5zbWFza0luRGF0YSYmKGE9Q0EuZ2V0KCJEZXZpY2VSR0JBIikpO2Vsc2UgaWYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucylhPUNBLmdldCgiRGV2aWNlUkdCQSIpO2Vsc2Ugc3dpdGNoKHQubnVtQ29tcHMpe2Nhc2UgMTphPUNBLmdldCgiRGV2aWNlR3JheSIpO2JyZWFrO2Nhc2UgMzphPUNBLmdldCgiRGV2aWNlUkdCIik7YnJlYWs7Y2FzZSA0OmE9Q0EuZ2V0KCJEZXZpY2VDTVlLIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEltYWdlcyB3aXRoICR7dC5udW1Db21wc30gY29sb3IgY29tcG9uZW50cyBub3Qgc3VwcG9ydGVkLmApfXRoaXMuY29sb3JTcGFjZT1DZS5wYXJzZSh7Y3M6YSx4cmVmOkEscmVzb3VyY2VzOmk/ZTpudWxsLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmd9KSx0aGlzLm51bUNvbXBzPXRoaXMuY29sb3JTcGFjZS5udW1Db21wcyx0aGlzLmpweERlY29kZXJPcHRpb25zJiYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5udW1Db21wb25lbnRzPXM/dGhpcy5udW1Db21wOjAsdGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5pc0luZGV4ZWRDb2xvcm1hcD0iSW5kZXhlZCI9PT10aGlzLmNvbG9yU3BhY2UubmFtZSl9aWYodGhpcy5kZWNvZGU9by5nZXRBcnJheSgiRCIsIkRlY29kZSIpLHRoaXMubmVlZHNEZWNvZGU9ITEsdGhpcy5kZWNvZGUmJih0aGlzLmNvbG9yU3BhY2UmJiF0aGlzLmNvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLEIpfHxuJiYhQ2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLDEpKSl7dGhpcy5uZWVkc0RlY29kZT0hMDtjb25zdCBBPSgxPDxCKS0xO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzPVtdLHRoaXMuZGVjb2RlQWRkZW5kcz1bXTtjb25zdCBlPSJJbmRleGVkIj09PXRoaXMuY29sb3JTcGFjZT8ubmFtZTtmb3IobGV0IHQ9MCxpPTA7dDx0aGlzLmRlY29kZS5sZW5ndGg7dCs9MiwrK2kpe2NvbnN0IGE9dGhpcy5kZWNvZGVbdF0scz10aGlzLmRlY29kZVt0KzFdO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzW2ldPWU/KHMtYSkvQTpzLWEsdGhpcy5kZWNvZGVBZGRlbmRzW2ldPWU/YTpBKmF9fWE/dGhpcy5zbWFzaz1uZXcgcmcoe3hyZWY6QSxyZXM6ZSxpbWFnZTphLGlzSW5saW5lOmkscGRmRnVuY3Rpb25GYWN0b3J5OnIsbG9jYWxDb2xvclNwYWNlQ2FjaGU6Z30pOnMmJihzIGluc3RhbmNlb2Ygd0E/cy5kaWN0LmdldCgiSU0iLCJJbWFnZU1hc2siKT90aGlzLm1hc2s9bmV3IHJnKHt4cmVmOkEscmVzOmUsaW1hZ2U6cyxpc0lubGluZTppLGlzTWFzazohMCxwZGZGdW5jdGlvbkZhY3Rvcnk6cixsb2NhbENvbG9yU3BhY2VDYWNoZTpnfSk6VSgiSWdub3JpbmcgL01hc2sgaW4gaW1hZ2Ugd2l0aG91dCAvSW1hZ2VNYXNrLiIpOnRoaXMubWFzaz1zKX1zdGF0aWMgYXN5bmMgYnVpbGRJbWFnZSh7eHJlZjpBLHJlczplLGltYWdlOnQsaXNJbmxpbmU6aT0hMSxwZGZGdW5jdGlvbkZhY3Rvcnk6YSxsb2NhbENvbG9yU3BhY2VDYWNoZTpzfSl7Y29uc3Qgbj10O2xldCByPW51bGwsZz1udWxsO2NvbnN0IG89dC5kaWN0LmdldCgiU01hc2siKSxJPXQuZGljdC5nZXQoIk1hc2siKTtyZXR1cm4gbz9vIGluc3RhbmNlb2Ygd0E/cj1vOlUoIlVuc3VwcG9ydGVkIC9TTWFzayBmb3JtYXQuIik6SSYmKEkgaW5zdGFuY2VvZiB3QXx8QXJyYXkuaXNBcnJheShJKT9nPUk6VSgiVW5zdXBwb3J0ZWQgL01hc2sgZm9ybWF0LiIpKSxuZXcgcmcoe3hyZWY6QSxyZXM6ZSxpbWFnZTpuLGlzSW5saW5lOmksc21hc2s6cixtYXNrOmcscGRmRnVuY3Rpb25GYWN0b3J5OmEsbG9jYWxDb2xvclNwYWNlQ2FjaGU6c30pfXN0YXRpYyBjcmVhdGVSYXdNYXNrKHtpbWdBcnJheTpBLHdpZHRoOmUsaGVpZ2h0OnQsaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06aSxpbnZlcnNlRGVjb2RlOmEsaW50ZXJwb2xhdGU6c30pe2NvbnN0IG49KGUrNz4+MykqdCxyPUEuYnl0ZUxlbmd0aDtsZXQgZyxvO2lmKCFpfHxhJiZuIT09cj9hPyhnPW5ldyBVaW50OEFycmF5KG4pLGcuc2V0KEEpLGcuZmlsbCgyNTUscikpOmc9bmV3IFVpbnQ4QXJyYXkoQSk6Zz1BLGEpZm9yKG89MDtvPHI7bysrKWdbb11ePTI1NTtyZXR1cm57ZGF0YTpnLHdpZHRoOmUsaGVpZ2h0OnQsaW50ZXJwb2xhdGU6c319c3RhdGljIGFzeW5jIGNyZWF0ZU1hc2soe2ltZ0FycmF5OkEsd2lkdGg6ZSxoZWlnaHQ6dCxpbWFnZUlzRnJvbURlY29kZVN0cmVhbTppLGludmVyc2VEZWNvZGU6YSxpbnRlcnBvbGF0ZTpzLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOm49ITF9KXtjb25zdCByPTE9PT1lJiYxPT09dCYmYT09PSgwPT09QS5sZW5ndGh8fCEhKDEyOCZBWzBdKSk7aWYocilyZXR1cm57aXNTaW5nbGVPcGFxdWVQaXhlbDpyfTtpZihuKXtpZihYci5uZWVkc1RvQmVSZXNpemVkKGUsdCkpe2NvbnN0IGk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUqdCo0KTtyZXR1cm4gTnQoe3NyYzpBLGRlc3Q6aSx3aWR0aDplLGhlaWdodDp0LG5vbkJsYWNrQ29sb3I6MCxpbnZlcnNlRGVjb2RlOmF9KSxYci5jcmVhdGVJbWFnZSh7a2luZDozLGRhdGE6aSx3aWR0aDplLGhlaWdodDp0LGludGVycG9sYXRlOnN9KX1jb25zdCBpPW5ldyBPZmZzY3JlZW5DYW52YXMoZSx0KSxuPWkuZ2V0Q29udGV4dCgiMmQiKSxyPW4uY3JlYXRlSW1hZ2VEYXRhKGUsdCk7cmV0dXJuIE50KHtzcmM6QSxkZXN0OnIuZGF0YSx3aWR0aDplLGhlaWdodDp0LG5vbkJsYWNrQ29sb3I6MCxpbnZlcnNlRGVjb2RlOmF9KSxuLnB1dEltYWdlRGF0YShyLDAsMCkse2RhdGE6bnVsbCx3aWR0aDplLGhlaWdodDp0LGludGVycG9sYXRlOnMsYml0bWFwOmkudHJhbnNmZXJUb0ltYWdlQml0bWFwKCl9fXJldHVybiB0aGlzLmNyZWF0ZVJhd01hc2soe2ltZ0FycmF5OkEsd2lkdGg6ZSxoZWlnaHQ6dCxpbnZlcnNlRGVjb2RlOmEsaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06aSxpbnRlcnBvbGF0ZTpzfSl9Z2V0IGRyYXdXaWR0aCgpe3JldHVybiBNYXRoLm1heCh0aGlzLndpZHRoLHRoaXMuc21hc2s/LndpZHRofHwwLHRoaXMubWFzaz8ud2lkdGh8fDApfWdldCBkcmF3SGVpZ2h0KCl7cmV0dXJuIE1hdGgubWF4KHRoaXMuaGVpZ2h0LHRoaXMuc21hc2s/LmhlaWdodHx8MCx0aGlzLm1hc2s/LmhlaWdodHx8MCl9ZGVjb2RlQnVmZmVyKEEpe2NvbnN0IGU9dGhpcy5icGMsdD10aGlzLm51bUNvbXBzLGk9dGhpcy5kZWNvZGVBZGRlbmRzLGE9dGhpcy5kZWNvZGVDb2VmZmljaWVudHMscz0oMTw8ZSktMTtsZXQgbixyO2lmKDE9PT1lKXtmb3Iobj0wLHI9QS5sZW5ndGg7bjxyO24rKylBW25dPSshQVtuXTtyZXR1cm59bGV0IGc9MDtmb3Iobj0wLHI9dGhpcy53aWR0aCp0aGlzLmhlaWdodDtuPHI7bisrKWZvcihsZXQgZT0wO2U8dDtlKyspQVtnXT1zZyhBW2ddLGlbZV0sYVtlXSxzKSxnKyt9Z2V0Q29tcG9uZW50cyhBKXtjb25zdCBlPXRoaXMuYnBjO2lmKDg9PT1lKXJldHVybiBBO2NvbnN0IHQ9dGhpcy53aWR0aCxpPXRoaXMuaGVpZ2h0LGE9dGhpcy5udW1Db21wcyxzPXQqaSphO2xldCBuLHI9MDtuPWU8PTg/bmV3IFVpbnQ4QXJyYXkocyk6ZTw9MTY/bmV3IFVpbnQxNkFycmF5KHMpOm5ldyBVaW50MzJBcnJheShzKTtjb25zdCBnPXQqYSxvPSgxPDxlKS0xO2xldCBJLGMsaD0wO2lmKDE9PT1lKXtsZXQgZSx0LGE7Zm9yKGxldCBzPTA7czxpO3MrKyl7Zm9yKHQ9aCsoLTgmZyksYT1oK2c7aDx0OyljPUFbcisrXSxuW2hdPWM+PjcmMSxuW2grMV09Yz4+NiYxLG5baCsyXT1jPj41JjEsbltoKzNdPWM+PjQmMSxuW2grNF09Yz4+MyYxLG5baCs1XT1jPj4yJjEsbltoKzZdPWM+PjEmMSxuW2grN109MSZjLGgrPTg7aWYoaDxhKWZvcihjPUFbcisrXSxlPTEyODtoPGE7KW5baCsrXT0rISEoYyZlKSxlPj49MX19ZWxzZXtsZXQgdD0wO2ZvcihjPTAsaD0wLEk9cztoPEk7KytoKXtmb3IoaCVnPT0wJiYoYz0wLHQ9MCk7dDxlOyljPWM8PDh8QVtyKytdLHQrPTg7Y29uc3QgaT10LWU7bGV0IGE9Yz4+aTthPDA/YT0wOmE+byYmKGE9byksbltoXT1hLGMmPSgxPDxpKS0xLHQ9aX19cmV0dXJuIG59YXN5bmMgZmlsbE9wYWNpdHkoQSxlLHQsaSxhKXtjb25zdCBzPXRoaXMuc21hc2ssbj10aGlzLm1hc2s7bGV0IHIsZyxvLEksYyxoO2lmKHMpZz1zLndpZHRoLG89cy5oZWlnaHQscj1uZXcgVWludDhDbGFtcGVkQXJyYXkoZypvKSxhd2FpdCBzLmZpbGxHcmF5QnVmZmVyKHIpLGc9PT1lJiZvPT09dHx8KHI9bmcocixzLmJwYyxnLG8sZSx0KSk7ZWxzZSBpZihuKWlmKG4gaW5zdGFuY2VvZiByZyl7Zm9yKGc9bi53aWR0aCxvPW4uaGVpZ2h0LHI9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGcqbyksbi5udW1Db21wcz0xLGF3YWl0IG4uZmlsbEdyYXlCdWZmZXIociksST0wLGM9ZypvO0k8YzsrK0kpcltJXT0yNTUtcltJXTtnPT09ZSYmbz09PXR8fChyPW5nKHIsbi5icGMsZyxvLGUsdCkpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkobikpdGhyb3cgbmV3IFcoIlVua25vd24gbWFzayBmb3JtYXQuIik7e3I9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUqdCk7Y29uc3QgQT10aGlzLm51bUNvbXBzO2ZvcihJPTAsYz1lKnQ7STxjOysrSSl7bGV0IGU9MDtjb25zdCB0PUkqQTtmb3IoaD0wO2g8QTsrK2gpe2NvbnN0IEE9YVt0K2hdLGk9MipoO2lmKEE8bltpXXx8QT5uW2krMV0pe2U9MjU1O2JyZWFrfX1yW0ldPWV9fX1pZihyKWZvcihJPTAsaD0zLGM9ZSppO0k8YzsrK0ksaCs9NClBW2hdPXJbSV07ZWxzZSBmb3IoST0wLGg9MyxjPWUqaTtJPGM7KytJLGgrPTQpQVtoXT0yNTV9dW5kb1ByZWJsZW5kKEEsZSx0KXtjb25zdCBpPXRoaXMuc21hc2s/Lm1hdHRlO2lmKCFpKXJldHVybjtjb25zdCBhPXRoaXMuY29sb3JTcGFjZS5nZXRSZ2IoaSwwKSxzPWFbMF0sbj1hWzFdLHI9YVsyXSxnPWUqdCo0O2ZvcihsZXQgZT0wO2U8ZztlKz00KXtjb25zdCB0PUFbZSszXTtpZigwPT09dCl7QVtlXT0yNTUsQVtlKzFdPTI1NSxBW2UrMl09MjU1O2NvbnRpbnVlfWNvbnN0IGk9MjU1L3Q7QVtlXT0oQVtlXS1zKSppK3MsQVtlKzFdPShBW2UrMV0tbikqaStuLEFbZSsyXT0oQVtlKzJdLXIpKmkrcn19YXN5bmMgY3JlYXRlSW1hZ2VEYXRhKEE9ITEsZT0hMSl7Y29uc3QgdD10aGlzLmRyYXdXaWR0aCxpPXRoaXMuZHJhd0hlaWdodCxhPXt3aWR0aDp0LGhlaWdodDppLGludGVycG9sYXRlOnRoaXMuaW50ZXJwb2xhdGUsa2luZDowLGRhdGE6bnVsbH0scz10aGlzLm51bUNvbXBzLG49dGhpcy53aWR0aCxyPXRoaXMuaGVpZ2h0LGc9dGhpcy5icGMsbz1uKnMqZys3Pj4zLEk9ZSYmWHIubmVlZHNUb0JlUmVzaXplZCh0LGkpO2lmKCJEZXZpY2VSR0JBIj09PXRoaXMuY29sb3JTcGFjZS5uYW1lKXthLmtpbmQ9Mztjb25zdCBBPWEuZGF0YT1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMocipuKjQse30pO3JldHVybiBlP0k/WHIuY3JlYXRlSW1hZ2UoYSwhMSk6dGhpcy5jcmVhdGVCaXRtYXAoMyx0LGksQSk6YX1pZighQSl7bGV0IEE7aWYoIkRldmljZUdyYXkiPT09dGhpcy5jb2xvclNwYWNlLm5hbWUmJjE9PT1nP0E9MToiRGV2aWNlUkdCIiE9PXRoaXMuY29sb3JTcGFjZS5uYW1lfHw4IT09Z3x8dGhpcy5uZWVkc0RlY29kZXx8KEE9MiksQSYmIXRoaXMuc21hc2smJiF0aGlzLm1hc2smJnQ9PT1uJiZpPT09cil7Y29uc3Qgcz1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMocipvLHt9KTtpZihlKXJldHVybiBJP1hyLmNyZWF0ZUltYWdlKHtkYXRhOnMsa2luZDpBLHdpZHRoOnQsaGVpZ2h0OmksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX0sdGhpcy5uZWVkc0RlY29kZSk6dGhpcy5jcmVhdGVCaXRtYXAoQSxuLHIscyk7aWYoYS5raW5kPUEsYS5kYXRhPXMsdGhpcy5uZWVkc0RlY29kZSl7TCgxPT09QSwiUERGSW1hZ2UuY3JlYXRlSW1hZ2VEYXRhOiBUaGUgaW1hZ2UgbXVzdCBiZSBncmF5c2NhbGUuIik7Y29uc3QgZT1hLmRhdGE7Zm9yKGxldCBBPTAsdD1lLmxlbmd0aDtBPHQ7QSsrKWVbQV1ePTI1NX1yZXR1cm4gYX1pZih0aGlzLmltYWdlIGluc3RhbmNlb2YgenQmJiF0aGlzLnNtYXNrJiYhdGhpcy5tYXNrJiYhdGhpcy5uZWVkc0RlY29kZSl7bGV0IEE9cipvO2lmKGUmJiFJKXtsZXQgZT0hMTtzd2l0Y2godGhpcy5jb2xvclNwYWNlLm5hbWUpe2Nhc2UiRGV2aWNlR3JheSI6QSo9NCxlPSEwO2JyZWFrO2Nhc2UiRGV2aWNlUkdCIjpBPUEvMyo0LGU9ITA7YnJlYWs7Y2FzZSJEZXZpY2VDTVlLIjplPSEwfWlmKGUpe2NvbnN0IGU9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKEEse2RyYXdXaWR0aDp0LGRyYXdIZWlnaHQ6aSxmb3JjZVJHQkE6ITB9KTtyZXR1cm4gdGhpcy5jcmVhdGVCaXRtYXAoMyx0LGksZSl9fWVsc2Ugc3dpdGNoKHRoaXMuY29sb3JTcGFjZS5uYW1lKXtjYXNlIkRldmljZUdyYXkiOkEqPTM7Y2FzZSJEZXZpY2VSR0IiOmNhc2UiRGV2aWNlQ01ZSyI6cmV0dXJuIGEua2luZD0yLGEuZGF0YT1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMoQSx7ZHJhd1dpZHRoOnQsZHJhd0hlaWdodDppLGZvcmNlUkdCOiEwfSksST9Yci5jcmVhdGVJbWFnZShhKTphfX19Y29uc3QgYz1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMocipvLHtpbnRlcm5hbDohMH0pLGg9MHxjLmxlbmd0aC9vKmkvcixDPXRoaXMuZ2V0Q29tcG9uZW50cyhjKTtsZXQgQixsLFEsRSx1LGQ7cmV0dXJuIGUmJiFJJiYoUT1uZXcgT2Zmc2NyZWVuQ2FudmFzKHQsaSksRT1RLmdldENvbnRleHQoIjJkIiksdT1FLmNyZWF0ZUltYWdlRGF0YSh0LGkpLGQ9dS5kYXRhKSxhLmtpbmQ9MyxBfHx0aGlzLnNtYXNrfHx0aGlzLm1hc2s/KGUmJiFJfHwoZD1uZXcgVWludDhDbGFtcGVkQXJyYXkodCppKjQpKSxCPTEsbD0hMCxhd2FpdCB0aGlzLmZpbGxPcGFjaXR5KGQsdCxpLGgsQykpOighZXx8ST8oYS5raW5kPTIsZD1uZXcgVWludDhDbGFtcGVkQXJyYXkodCppKjMpLEI9MCk6KG5ldyBVaW50MzJBcnJheShkLmJ1ZmZlcikuZmlsbChfLmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1KSxCPTEpLGw9ITEpLHRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKEMpLHRoaXMuY29sb3JTcGFjZS5maWxsUmdiKGQsbixyLHQsaSxoLGcsQyxCKSxsJiZ0aGlzLnVuZG9QcmVibGVuZChkLHQsaCksZSYmIUk/KEUucHV0SW1hZ2VEYXRhKHUsMCwwKSx7ZGF0YTpudWxsLHdpZHRoOnQsaGVpZ2h0OmksYml0bWFwOlEudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX0pOihhLmRhdGE9ZCxJP1hyLmNyZWF0ZUltYWdlKGEpOmEpfWFzeW5jIGZpbGxHcmF5QnVmZmVyKEEpe2NvbnN0IGU9dGhpcy5udW1Db21wcztpZigxIT09ZSl0aHJvdyBuZXcgVyhgUmVhZGluZyBncmF5IHNjYWxlIGZyb20gYSBjb2xvciBpbWFnZTogJHtlfWApO2NvbnN0IHQ9dGhpcy53aWR0aCxpPXRoaXMuaGVpZ2h0LGE9dGhpcy5icGMscz10KmUqYSs3Pj4zLG49YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGkqcyx7aW50ZXJuYWw6ITB9KSxyPXRoaXMuZ2V0Q29tcG9uZW50cyhuKTtsZXQgZyxvO2lmKDE9PT1hKXtpZihvPXQqaSx0aGlzLm5lZWRzRGVjb2RlKWZvcihnPTA7ZzxvOysrZylBW2ddPXJbZ10tMSYyNTU7ZWxzZSBmb3IoZz0wO2c8bzsrK2cpQVtnXT0yNTUmLXJbZ107cmV0dXJufXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKHIpLG89dCppO2NvbnN0IEk9MjU1LygoMTw8YSktMSk7Zm9yKGc9MDtnPG87KytnKUFbZ109SSpyW2ddfWNyZWF0ZUJpdG1hcChBLGUsdCxpKXtjb25zdCBhPW5ldyBPZmZzY3JlZW5DYW52YXMoZSx0KSxzPWEuZ2V0Q29udGV4dCgiMmQiKTtsZXQgbjtyZXR1cm4gMz09PUE/bj1uZXcgSW1hZ2VEYXRhKGksZSx0KToobj1zLmNyZWF0ZUltYWdlRGF0YShlLHQpLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmtpbmQpe2Nhc2UgMTpyZXR1cm4gTnQoQSk7Y2FzZSAyOnJldHVybiBmdW5jdGlvbih7c3JjOkEsc3JjUG9zOmU9MCxkZXN0OnQsZGVzdFBvczppPTAsd2lkdGg6YSxoZWlnaHQ6c30pe2xldCBuPTA7Y29uc3Qgcj1BLmxlbmd0aD4+MixnPW5ldyBVaW50MzJBcnJheShBLmJ1ZmZlcixlLHIpO2lmKF8uaXNMaXR0bGVFbmRpYW4pe2Zvcig7bjxyLTI7bis9MyxpKz00KXtjb25zdCBBPWdbbl0sZT1nW24rMV0sYT1nW24rMl07dFtpXT00Mjc4MTkwMDgwfEEsdFtpKzFdPUE+Pj4yNHxlPDw4fDQyNzgxOTAwODAsdFtpKzJdPWU+Pj4xNnxhPDwxNnw0Mjc4MTkwMDgwLHRbaSszXT1hPj4+OHw0Mjc4MTkwMDgwfWZvcihsZXQgZT00Km4sYT1BLmxlbmd0aDtlPGE7ZSs9Myl0W2krK109QVtlXXxBW2UrMV08PDh8QVtlKzJdPDwxNnw0Mjc4MTkwMDgwfWVsc2V7Zm9yKDtuPHItMjtuKz0zLGkrPTQpe2NvbnN0IEE9Z1tuXSxlPWdbbisxXSxhPWdbbisyXTt0W2ldPTI1NXxBLHRbaSsxXT1BPDwyNHxlPj4+OHwyNTUsdFtpKzJdPWU8PDE2fGE+Pj4xNnwyNTUsdFtpKzNdPWE8PDh8MjU1fWZvcihsZXQgZT00Km4sYT1BLmxlbmd0aDtlPGE7ZSs9Myl0W2krK109QVtlXTw8MjR8QVtlKzFdPDwxNnxBW2UrMl08PDh8MjU1fXJldHVybntzcmNQb3M6ZSxkZXN0UG9zOml9fShBKX19KHtraW5kOkEsc3JjOmksZGVzdDpuZXcgVWludDMyQXJyYXkobi5kYXRhLmJ1ZmZlciksd2lkdGg6ZSxoZWlnaHQ6dCxpbnZlcnNlRGVjb2RlOnRoaXMubmVlZHNEZWNvZGV9KSkscy5wdXRJbWFnZURhdGEobiwwLDApLHtkYXRhOm51bGwsd2lkdGg6ZSxoZWlnaHQ6dCxiaXRtYXA6YS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlfX1hc3luYyBnZXRJbWFnZUJ5dGVzKEEse2RyYXdXaWR0aDplLGRyYXdIZWlnaHQ6dCxmb3JjZVJHQkE6aT0hMSxmb3JjZVJHQjphPSExLGludGVybmFsOnM9ITF9KXt0aGlzLmltYWdlLnJlc2V0KCksdGhpcy5pbWFnZS5kcmF3V2lkdGg9ZXx8dGhpcy53aWR0aCx0aGlzLmltYWdlLmRyYXdIZWlnaHQ9dHx8dGhpcy5oZWlnaHQsdGhpcy5pbWFnZS5mb3JjZVJHQkE9ISFpLHRoaXMuaW1hZ2UuZm9yY2VSR0I9ISFhO2NvbnN0IG49YXdhaXQgdGhpcy5pbWFnZS5nZXRJbWFnZURhdGEoQSx0aGlzLmpweERlY29kZXJPcHRpb25zKTtyZXR1cm4gc3x8dGhpcy5pbWFnZSBpbnN0YW5jZW9mIE5lP246KEwobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksJ1BERkltYWdlLmdldEltYWdlQnl0ZXM6IFVuc3VwcG9ydGVkICJpbWFnZUJ5dGVzIiB0eXBlLicpLG5ldyBVaW50OEFycmF5KG4pKX19Y29uc3QgZ2c9T2JqZWN0LmZyZWV6ZSh7bWF4SW1hZ2VTaXplOi0xLGRpc2FibGVGb250RmFjZTohMSxpZ25vcmVFcnJvcnM6ITEsaXNFdmFsU3VwcG9ydGVkOiEwLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOiExLGNhbnZhc01heEFyZWFJbkJ5dGVzOi0xLGZvbnRFeHRyYVByb3BlcnRpZXM6ITEsdXNlU3lzdGVtRm9udHM6ITAsY01hcFVybDpudWxsLHN0YW5kYXJkRm9udERhdGFVcmw6bnVsbH0pLG9nPVByb21pc2UucmVzb2x2ZSgpO2Z1bmN0aW9uIElnKEEsZT0hMSl7aWYoQXJyYXkuaXNBcnJheShBKSl7Zm9yKGNvbnN0IGUgb2YgQSl7Y29uc3QgQT1JZyhlLCEwKTtpZihBKXJldHVybiBBfXJldHVybiBVKGBVbnN1cHBvcnRlZCBibGVuZCBtb2RlIEFycmF5OiAke0F9YCksInNvdXJjZS1vdmVyIn1pZighKEEgaW5zdGFuY2VvZiBDQSkpcmV0dXJuIGU/bnVsbDoic291cmNlLW92ZXIiO3N3aXRjaChBLm5hbWUpe2Nhc2UiTm9ybWFsIjpjYXNlIkNvbXBhdGlibGUiOnJldHVybiJzb3VyY2Utb3ZlciI7Y2FzZSJNdWx0aXBseSI6cmV0dXJuIm11bHRpcGx5IjtjYXNlIlNjcmVlbiI6cmV0dXJuInNjcmVlbiI7Y2FzZSJPdmVybGF5IjpyZXR1cm4ib3ZlcmxheSI7Y2FzZSJEYXJrZW4iOnJldHVybiJkYXJrZW4iO2Nhc2UiTGlnaHRlbiI6cmV0dXJuImxpZ2h0ZW4iO2Nhc2UiQ29sb3JEb2RnZSI6cmV0dXJuImNvbG9yLWRvZGdlIjtjYXNlIkNvbG9yQnVybiI6cmV0dXJuImNvbG9yLWJ1cm4iO2Nhc2UiSGFyZExpZ2h0IjpyZXR1cm4iaGFyZC1saWdodCI7Y2FzZSJTb2Z0TGlnaHQiOnJldHVybiJzb2Z0LWxpZ2h0IjtjYXNlIkRpZmZlcmVuY2UiOnJldHVybiJkaWZmZXJlbmNlIjtjYXNlIkV4Y2x1c2lvbiI6cmV0dXJuImV4Y2x1c2lvbiI7Y2FzZSJIdWUiOnJldHVybiJodWUiO2Nhc2UiU2F0dXJhdGlvbiI6cmV0dXJuInNhdHVyYXRpb24iO2Nhc2UiQ29sb3IiOnJldHVybiJjb2xvciI7Y2FzZSJMdW1pbm9zaXR5IjpyZXR1cm4ibHVtaW5vc2l0eSJ9cmV0dXJuIGU/bnVsbDooVShgVW5zdXBwb3J0ZWQgYmxlbmQgbW9kZTogJHtBLm5hbWV9YCksInNvdXJjZS1vdmVyIil9ZnVuY3Rpb24gY2coQSxlKXtlLm9iaklkJiZBLmFkZERlcGVuZGVuY3koZS5vYmpJZCksQS5hZGRJbWFnZU9wcyhlLmZuLGUuYXJncyxlLm9wdGlvbmFsQ29udGVudCksZS5mbj09PVMmJmUuYXJnc1swXT8uY291bnQ+MCYmZS5hcmdzWzBdLmNvdW50Kyt9Y2xhc3MgaGd7c3RhdGljIFRJTUVfU0xPVF9EVVJBVElPTl9NUz0yMDtzdGF0aWMgQ0hFQ0tfVElNRV9FVkVSWT0xMDA7Y29uc3RydWN0b3IoKXt0aGlzLnJlc2V0KCl9Y2hlY2soKXtyZXR1cm4hKCsrdGhpcy5jaGVja2VkPGhnLkNIRUNLX1RJTUVfRVZFUlkpJiYodGhpcy5jaGVja2VkPTAsdGhpcy5lbmRUaW1lPD1EYXRlLm5vdygpKX1yZXNldCgpe3RoaXMuZW5kVGltZT1EYXRlLm5vdygpK2hnLlRJTUVfU0xPVF9EVVJBVElPTl9NUyx0aGlzLmNoZWNrZWQ9MH19Y2xhc3MgQ2d7Y29uc3RydWN0b3Ioe3hyZWY6QSxoYW5kbGVyOmUscGFnZUluZGV4OnQsaWRGYWN0b3J5OmksZm9udENhY2hlOmEsYnVpbHRJbkNNYXBDYWNoZTpzLHN0YW5kYXJkRm9udERhdGFDYWNoZTpuLGdsb2JhbEltYWdlQ2FjaGU6cixzeXN0ZW1Gb250Q2FjaGU6ZyxvcHRpb25zOm89bnVsbH0pe3RoaXMueHJlZj1BLHRoaXMuaGFuZGxlcj1lLHRoaXMucGFnZUluZGV4PXQsdGhpcy5pZEZhY3Rvcnk9aSx0aGlzLmZvbnRDYWNoZT1hLHRoaXMuYnVpbHRJbkNNYXBDYWNoZT1zLHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPW4sdGhpcy5nbG9iYWxJbWFnZUNhY2hlPXIsdGhpcy5zeXN0ZW1Gb250Q2FjaGU9Zyx0aGlzLm9wdGlvbnM9b3x8Z2csdGhpcy50eXBlM0ZvbnRSZWZzPW51bGwsdGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlPW5ldyBncix0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQ9dGhpcy5mZXRjaEJ1aWx0SW5DTWFwLmJpbmQodGhpcyksWHIuc2V0TWF4QXJlYSh0aGlzLm9wdGlvbnMuY2FudmFzTWF4QXJlYUluQnl0ZXMpfWdldCBfcGRmRnVuY3Rpb25GYWN0b3J5KCl7cmV0dXJuIEgodGhpcywiX3BkZkZ1bmN0aW9uRmFjdG9yeSIsbmV3IElyKHt4cmVmOnRoaXMueHJlZixpc0V2YWxTdXBwb3J0ZWQ6dGhpcy5vcHRpb25zLmlzRXZhbFN1cHBvcnRlZH0pKX1nZXQgcGFyc2luZ1R5cGUzRm9udCgpe3JldHVybiEhdGhpcy50eXBlM0ZvbnRSZWZzfWNsb25lKEE9bnVsbCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKHRoaXMpO3JldHVybiBlLm9wdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucyxBKSxlfWhhc0JsZW5kTW9kZXMoQSxlKXtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuITE7aWYoQS5vYmpJZCYmZS5oYXMoQS5vYmpJZCkpcmV0dXJuITE7Y29uc3QgdD1uZXcgdUEoZSk7QS5vYmpJZCYmdC5wdXQoQS5vYmpJZCk7Y29uc3QgaT1bQV0sYT10aGlzLnhyZWY7Zm9yKDtpLmxlbmd0aDspe2NvbnN0IEE9aS5zaGlmdCgpLGU9QS5nZXQoIkV4dEdTdGF0ZSIpO2lmKGUgaW5zdGFuY2VvZiBRQSlmb3IobGV0IEEgb2YgZS5nZXRSYXdWYWx1ZXMoKSl7aWYoQSBpbnN0YW5jZW9mIEVBKXtpZih0LmhhcyhBKSljb250aW51ZTt0cnl7QT1hLmZldGNoKEEpfWNhdGNoKGUpe3QucHV0KEEpLHgoYGhhc0JsZW5kTW9kZXMgLSBpZ25vcmluZyBFeHRHU3RhdGU6ICIke2V9Ii5gKTtjb250aW51ZX19aWYoIShBIGluc3RhbmNlb2YgUUEpKWNvbnRpbnVlO0Eub2JqSWQmJnQucHV0KEEub2JqSWQpO2NvbnN0IGU9QS5nZXQoIkJNIik7aWYoZSBpbnN0YW5jZW9mIENBKXtpZigiTm9ybWFsIiE9PWUubmFtZSlyZXR1cm4hMH1lbHNlIGlmKHZvaWQgMCE9PWUmJkFycmF5LmlzQXJyYXkoZSkpZm9yKGNvbnN0IEEgb2YgZSlpZihBIGluc3RhbmNlb2YgQ0EmJiJOb3JtYWwiIT09QS5uYW1lKXJldHVybiEwfWNvbnN0IHM9QS5nZXQoIlhPYmplY3QiKTtpZihzIGluc3RhbmNlb2YgUUEpZm9yKGxldCBBIG9mIHMuZ2V0UmF3VmFsdWVzKCkpe2lmKEEgaW5zdGFuY2VvZiBFQSl7aWYodC5oYXMoQSkpY29udGludWU7dHJ5e0E9YS5mZXRjaChBKX1jYXRjaChlKXt0LnB1dChBKSx4KGBoYXNCbGVuZE1vZGVzIC0gaWdub3JpbmcgWE9iamVjdDogIiR7ZX0iLmApO2NvbnRpbnVlfX1pZighKEEgaW5zdGFuY2VvZiB3QSkpY29udGludWU7QS5kaWN0Lm9iaklkJiZ0LnB1dChBLmRpY3Qub2JqSWQpO2NvbnN0IGU9QS5kaWN0LmdldCgiUmVzb3VyY2VzIik7ZSBpbnN0YW5jZW9mIFFBJiYoZS5vYmpJZCYmdC5oYXMoZS5vYmpJZCl8fChpLnB1c2goZSksZS5vYmpJZCYmdC5wdXQoZS5vYmpJZCkpKX19Zm9yKGNvbnN0IEEgb2YgdCllLnB1dChBKTtyZXR1cm4hMX1hc3luYyBmZXRjaEJ1aWx0SW5DTWFwKEEpe2NvbnN0IGU9dGhpcy5idWlsdEluQ01hcENhY2hlLmdldChBKTtpZihlKXJldHVybiBlO2xldCB0O2lmKG51bGwhPT10aGlzLm9wdGlvbnMuY01hcFVybCl7Y29uc3QgZT1gJHt0aGlzLm9wdGlvbnMuY01hcFVybH0ke0F9LmJjbWFwYCxpPWF3YWl0IGZldGNoKGUpO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgZmV0Y2hCdWlsdEluQ01hcDogZmFpbGVkIHRvIGZldGNoIGZpbGUgIiR7ZX0iIHdpdGggIiR7aS5zdGF0dXNUZXh0fSIuYCk7dD17Y01hcERhdGE6bmV3IFVpbnQ4QXJyYXkoYXdhaXQgaS5hcnJheUJ1ZmZlcigpKSxjb21wcmVzc2lvblR5cGU6ZC5CSU5BUll9fWVsc2UgdD1hd2FpdCB0aGlzLmhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJGZXRjaEJ1aWx0SW5DTWFwIix7bmFtZTpBfSk7cmV0dXJuIHQuY29tcHJlc3Npb25UeXBlIT09ZC5OT05FJiZ0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUuc2V0KEEsdCksdH1hc3luYyBmZXRjaFN0YW5kYXJkRm9udERhdGEoQSl7Y29uc3QgZT10aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZS5nZXQoQSk7aWYoZSlyZXR1cm4gbmV3IGdlKGUpO2lmKHRoaXMub3B0aW9ucy51c2VTeXN0ZW1Gb250cyYmIlN5bWJvbCIhPT1BJiYiWmFwZkRpbmdiYXRzIiE9PUEpcmV0dXJuIG51bGw7Y29uc3QgdD1tYSgpW0FdO2xldCBpO2lmKG51bGwhPT10aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybCl7Y29uc3QgQT1gJHt0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybH0ke3R9YCxlPWF3YWl0IGZldGNoKEEpO2Uub2s/aT1uZXcgVWludDhBcnJheShhd2FpdCBlLmFycmF5QnVmZmVyKCkpOlUoYGZldGNoU3RhbmRhcmRGb250RGF0YTogZmFpbGVkIHRvIGZldGNoIGZpbGUgIiR7QX0iIHdpdGggIiR7ZS5zdGF0dXNUZXh0fSIuYCl9ZWxzZSB0cnl7aT1hd2FpdCB0aGlzLmhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJGZXRjaFN0YW5kYXJkRm9udERhdGEiLHtmaWxlbmFtZTp0fSl9Y2F0Y2goQSl7VShgZmV0Y2hTdGFuZGFyZEZvbnREYXRhOiBmYWlsZWQgdG8gZmV0Y2ggZmlsZSAiJHt0fSIgd2l0aCAiJHtBfSIuYCl9cmV0dXJuIGk/KHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLnNldChBLGkpLG5ldyBnZShpKSk6bnVsbH1hc3luYyBidWlsZEZvcm1YT2JqZWN0KEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9ZS5kaWN0LGc9S0Eoci5nZXRBcnJheSgiTWF0cml4IiksbnVsbCksbz1UQShyLmdldEFycmF5KCJCQm94IiksbnVsbCk7bGV0IEksYztyLmhhcygiT0MiKSYmKEk9YXdhaXQgdGhpcy5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhyLmdldCgiT0MiKSxBKSksdm9pZCAwIT09SSYmaS5hZGRPcChrLFsiT0MiLEldKTtjb25zdCBoPXIuZ2V0KCJHcm91cCIpO2lmKGgpe2M9e21hdHJpeDpnLGJib3g6byxzbWFzazp0LGlzb2xhdGVkOiExLGtub2Nrb3V0OiExfTtsZXQgZT1udWxsO2lmKGZBKGguZ2V0KCJTIiksIlRyYW5zcGFyZW5jeSIpJiYoYy5pc29sYXRlZD1oLmdldCgiSSIpfHwhMSxjLmtub2Nrb3V0PWguZ2V0KCJLIil8fCExLGguaGFzKCJDUyIpKSl7Y29uc3QgdD1oLmdldFJhdygiQ1MiKTtlPUNlLmdldENhY2hlZCh0LHRoaXMueHJlZixuKXx8YXdhaXQgdGhpcy5wYXJzZUNvbG9yU3BhY2Uoe2NzOnQscmVzb3VyY2VzOkEsbG9jYWxDb2xvclNwYWNlQ2FjaGU6bn0pfXQ/LmJhY2tkcm9wJiYoZXx8PUNlLnNpbmdsZXRvbnMucmdiLHQuYmFja2Ryb3A9ZS5nZXRSZ2IodC5iYWNrZHJvcCwwKSksaS5hZGRPcCg3NixbY10pfWNvbnN0IEM9aD9bZyxudWxsXTpbZyxvXTtpLmFkZE9wKDc0LEMpLGF3YWl0IHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06ZSx0YXNrOmEscmVzb3VyY2VzOnIuZ2V0KCJSZXNvdXJjZXMiKXx8QSxvcGVyYXRvckxpc3Q6aSxpbml0aWFsU3RhdGU6c30pLGkuYWRkT3AoNzUsW10pLGgmJmkuYWRkT3AoNzcsW2NdKSx2b2lkIDAhPT1JJiZpLmFkZE9wKEYsW10pfV9zZW5kSW1nRGF0YShBLGUsdD0hMSl7Y29uc3QgaT1lP1tlLmJpdG1hcHx8ZS5kYXRhLmJ1ZmZlcl06bnVsbDtyZXR1cm4gdGhpcy5wYXJzaW5nVHlwZTNGb250fHx0P3RoaXMuaGFuZGxlci5zZW5kKCJjb21tb25vYmoiLFtBLCJJbWFnZSIsZV0saSk6dGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW0EsdGhpcy5wYWdlSW5kZXgsIkltYWdlIixlXSxpKX1hc3luYyBidWlsZFBhaW50SW1hZ2VYT2JqZWN0KHtyZXNvdXJjZXM6QSxpbWFnZTplLGlzSW5saW5lOnQ9ITEsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6YSxsb2NhbEltYWdlQ2FjaGU6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpufSl7Y29uc3Qgcj1lLmRpY3QsZz1yLm9iaklkLG89ci5nZXQoIlciLCJXaWR0aCIpLEk9ci5nZXQoIkgiLCJIZWlnaHQiKTtpZighb3x8Im51bWJlciIhPXR5cGVvZiBvfHwhSXx8Im51bWJlciIhPXR5cGVvZiBJKXJldHVybiB2b2lkIFUoIkltYWdlIGRpbWVuc2lvbnMgYXJlIG1pc3NpbmcsIG9yIG5vdCBudW1iZXJzLiIpO2NvbnN0IGM9dGhpcy5vcHRpb25zLm1heEltYWdlU2l6ZTtpZigtMSE9PWMmJm8qST5jKXtjb25zdCBBPSJJbWFnZSBleGNlZWRlZCBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBhbmQgd2FzIHJlbW92ZWQuIjtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiB2b2lkIFUoQSk7dGhyb3cgbmV3IEVycm9yKEEpfWxldCBoLEMsQjtpZihyLmhhcygiT0MiKSYmKGg9YXdhaXQgdGhpcy5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhyLmdldCgiT0MiKSxBKSksci5nZXQoIklNIiwiSW1hZ2VNYXNrIikpe2NvbnN0IEE9ci5nZXQoIkkiLCJJbnRlcnBvbGF0ZSIpLHQ9bys3Pj4zLG49ZS5nZXRCeXRlcyh0KkkpLGM9ci5nZXRBcnJheSgiRCIsIkRlY29kZSIpO2lmKHRoaXMucGFyc2luZ1R5cGUzRm9udCl7aWYoQz1yZy5jcmVhdGVSYXdNYXNrKHtpbWdBcnJheTpuLHdpZHRoOm8saGVpZ2h0OkksaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06ZSBpbnN0YW5jZW9mIE5lLGludmVyc2VEZWNvZGU6Yz8uWzBdPjAsaW50ZXJwb2xhdGU6QX0pLEMuY2FjaGVkPSEhYSxCPVtDXSxpLmFkZEltYWdlT3BzKFMsQixoKSxhKXtjb25zdCBBPXtmbjpTLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aH07cy5zZXQoYSxnLEEpLGcmJnRoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxnLEEpfXJldHVybn1pZihDPWF3YWl0IHJnLmNyZWF0ZU1hc2soe2ltZ0FycmF5Om4sd2lkdGg6byxoZWlnaHQ6SSxpbWFnZUlzRnJvbURlY29kZVN0cmVhbTplIGluc3RhbmNlb2YgTmUsaW52ZXJzZURlY29kZTpjPy5bMF0+MCxpbnRlcnBvbGF0ZTpBLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOnRoaXMub3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZH0pLEMuaXNTaW5nbGVPcGFxdWVQaXhlbCl7aWYoaS5hZGRJbWFnZU9wcyg5MCxbXSxoKSxhKXtjb25zdCBBPXtmbjo5MCxhcmdzOltdLG9wdGlvbmFsQ29udGVudDpofTtzLnNldChhLGcsQSksZyYmdGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlLnNldChudWxsLGcsQSl9cmV0dXJufWNvbnN0IGw9YG1hc2tfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWA7aWYoaS5hZGREZXBlbmRlbmN5KGwpLEMuZGF0YUxlbj1DLmJpdG1hcD9DLndpZHRoKkMuaGVpZ2h0KjQ6Qy5kYXRhLmxlbmd0aCx0aGlzLl9zZW5kSW1nRGF0YShsLEMpLEI9W3tkYXRhOmwsd2lkdGg6Qy53aWR0aCxoZWlnaHQ6Qy5oZWlnaHQsaW50ZXJwb2xhdGU6Qy5pbnRlcnBvbGF0ZSxjb3VudDoxfV0saS5hZGRJbWFnZU9wcyhTLEIsaCksYSl7Y29uc3QgQT17b2JqSWQ6bCxmbjpTLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aH07cy5zZXQoYSxnLEEpLGcmJnRoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxnLEEpfXJldHVybn1pZih0JiZvK0k8MjAwJiYhci5oYXMoIlNNYXNrIikmJiFyLmhhcygiTWFzayIpKXt0cnl7Y29uc3QgYT1uZXcgcmcoe3hyZWY6dGhpcy54cmVmLHJlczpBLGltYWdlOmUsaXNJbmxpbmU6dCxwZGZGdW5jdGlvbkZhY3Rvcnk6dGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LGxvY2FsQ29sb3JTcGFjZUNhY2hlOm59KTtDPWF3YWl0IGEuY3JlYXRlSW1hZ2VEYXRhKCEwLCExKSxpLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPXRoaXMub3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCxpLmFkZEltYWdlT3BzKDg2LFtDXSxoKX1jYXRjaChBKXtjb25zdCBlPWBVbmFibGUgdG8gZGVjb2RlIGlubGluZSBpbWFnZTogIiR7QX0iLmA7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgbmV3IEVycm9yKGUpO1UoZSl9cmV0dXJufWxldCBsPWBpbWdfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWAsUT0hMTtpZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQ/bD1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV90eXBlM18ke2x9YDphJiZnJiYoUT10aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2hvdWxkQ2FjaGUoZyx0aGlzLnBhZ2VJbmRleCksUSYmKEwoIXQsIkNhbm5vdCBjYWNoZSBhbiBpbmxpbmUgaW1hZ2UgZ2xvYmFsbHkuIiksbD1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke2x9YCkpLGkuYWRkRGVwZW5kZW5jeShsKSxCPVtsLG8sSV0saS5hZGRJbWFnZU9wcyhSLEIsaCksUSl7aWYodGhpcy5nbG9iYWxJbWFnZUNhY2hlLmhhc0RlY29kZUZhaWxlZChnKSlyZXR1cm4gdGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoZyx7b2JqSWQ6bCxmbjpSLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aCxieXRlU2l6ZTowfSksdm9pZCB0aGlzLl9zZW5kSW1nRGF0YShsLG51bGwsUSk7aWYobypJPjI1ZTR8fHIuaGFzKCJTTWFzayIpfHxyLmhhcygiTWFzayIpKXtjb25zdCBBPWF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoImNvbW1vbm9iaiIsW2wsIkNvcHlMb2NhbEltYWdlIix7aW1hZ2VSZWY6Z31dKTtpZihBKXJldHVybiB0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShnLHtvYmpJZDpsLGZuOlIsYXJnczpCLG9wdGlvbmFsQ29udGVudDpoLGJ5dGVTaXplOjB9KSx2b2lkIHRoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5hZGRCeXRlU2l6ZShnLEEpfX1pZihyZy5idWlsZEltYWdlKHt4cmVmOnRoaXMueHJlZixyZXM6QSxpbWFnZTplLGlzSW5saW5lOnQscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTpufSkudGhlbigoYXN5bmMgQT0+KEM9YXdhaXQgQS5jcmVhdGVJbWFnZURhdGEoITEsdGhpcy5vcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKSxDLmRhdGFMZW49Qy5iaXRtYXA/Qy53aWR0aCpDLmhlaWdodCo0OkMuZGF0YS5sZW5ndGgsQy5yZWY9ZyxRJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkQnl0ZVNpemUoZyxDLmRhdGFMZW4pLHRoaXMuX3NlbmRJbWdEYXRhKGwsQyxRKSkpKS5jYXRjaCgoQT0+KFUoYFVuYWJsZSB0byBkZWNvZGUgaW1hZ2UgIiR7bH0iOiAiJHtBfSIuYCksZyYmdGhpcy5nbG9iYWxJbWFnZUNhY2hlLmFkZERlY29kZUZhaWxlZChnKSx0aGlzLl9zZW5kSW1nRGF0YShsLG51bGwsUSkpKSksYSl7Y29uc3QgQT17b2JqSWQ6bCxmbjpSLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aH07cy5zZXQoYSxnLEEpLGcmJih0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGUuc2V0KG51bGwsZyxBKSxRJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShnLHtvYmpJZDpsLGZuOlIsYXJnczpCLG9wdGlvbmFsQ29udGVudDpoLGJ5dGVTaXplOjB9KSl9fWhhbmRsZVNNYXNrKEEsZSx0LGksYSxzKXtjb25zdCBuPUEuZ2V0KCJHIikscj17c3VidHlwZTpBLmdldCgiUyIpLm5hbWUsYmFja2Ryb3A6QS5nZXQoIkJDIil9LGc9QS5nZXQoIlRSIik7aWYoQ3IoZykpe2NvbnN0IEE9dGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LmNyZWF0ZShnKSxlPW5ldyBVaW50OEFycmF5KDI1NiksdD1uZXcgRmxvYXQzMkFycmF5KDEpO2ZvcihsZXQgaT0wO2k8MjU2O2krKyl0WzBdPWkvMjU1LEEodCwwLHQsMCksZVtpXT0yNTUqdFswXXwwO3IudHJhbnNmZXJNYXA9ZX1yZXR1cm4gdGhpcy5idWlsZEZvcm1YT2JqZWN0KGUsbixyLHQsaSxhLnN0YXRlLmNsb25lKCkscyl9aGFuZGxlVHJhbnNmZXJGdW5jdGlvbihBKXtsZXQgZTtpZihBcnJheS5pc0FycmF5KEEpKWU9QTtlbHNle2lmKCFDcihBKSlyZXR1cm4gbnVsbDtlPVtBXX1jb25zdCB0PVtdO2xldCBpPTAsYT0wO2Zvcihjb25zdCBBIG9mIGUpe2NvbnN0IGU9dGhpcy54cmVmLmZldGNoSWZSZWYoQSk7aWYoaSsrLGZBKGUsIklkZW50aXR5Iikpe3QucHVzaChudWxsKTtjb250aW51ZX1pZighQ3IoZSkpcmV0dXJuIG51bGw7Y29uc3Qgcz10aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnkuY3JlYXRlKGUpLG49bmV3IFVpbnQ4QXJyYXkoMjU2KSxyPW5ldyBGbG9hdDMyQXJyYXkoMSk7Zm9yKGxldCBBPTA7QTwyNTY7QSsrKXJbMF09QS8yNTUscyhyLDAsciwwKSxuW0FdPTI1NSpyWzBdfDA7dC5wdXNoKG4pLGErK31yZXR1cm4gMSE9PWkmJjQhPT1pfHwwPT09YT9udWxsOnR9aGFuZGxlVGlsaW5nVHlwZShBLGUsdCxpLGEscyxuLHIpe2NvbnN0IGc9bmV3IGFnLG89UUEubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpbYS5nZXQoIlJlc291cmNlcyIpLHRdfSk7cmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06aSx0YXNrOm4scmVzb3VyY2VzOm8sb3BlcmF0b3JMaXN0Omd9KS50aGVuKChmdW5jdGlvbigpe2NvbnN0IHQ9Zy5nZXRJUigpLGk9Z24odCxhLGUpO3MuYWRkRGVwZW5kZW5jaWVzKGcuZGVwZW5kZW5jaWVzKSxzLmFkZE9wKEEsaSksYS5vYmpJZCYmci5zZXQobnVsbCxhLm9iaklkLHtvcGVyYXRvckxpc3RJUjp0LGRpY3Q6YX0pfSkpLmNhdGNoKChBPT57aWYoIShBIGluc3RhbmNlb2YgTykpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IEE7VShgaGFuZGxlVGlsaW5nVHlwZSAtIGlnbm9yaW5nIHBhdHRlcm46ICIke0F9Ii5gKX19KSl9YXN5bmMgaGFuZGxlU2V0Rm9udChBLGUsdCxpLGEscyxuPW51bGwscj1udWxsKXtjb25zdCBnPWU/LlswXWluc3RhbmNlb2YgQ0E/ZVswXS5uYW1lOm51bGw7bGV0IG89YXdhaXQgdGhpcy5sb2FkRm9udChnLHQsQSxuLHIpO2lmKG8uZm9udC5pc1R5cGUzRm9udCl0cnl7YXdhaXQgby5sb2FkVHlwZTNEYXRhKHRoaXMsQSxhKSxpLmFkZERlcGVuZGVuY2llcyhvLnR5cGUzRGVwZW5kZW5jaWVzKX1jYXRjaChBKXtvPW5ldyBCZyh7bG9hZGVkTmFtZToiZ19mb250X2Vycm9yIixmb250Om5ldyB6cyhgVHlwZTMgZm9udCBsb2FkIGVycm9yOiAke0F9YCksZGljdDpvLmZvbnQsZXZhbHVhdG9yT3B0aW9uczp0aGlzLm9wdGlvbnN9KX1yZXR1cm4gcy5mb250PW8uZm9udCxvLnNlbmQodGhpcy5oYW5kbGVyKSxvLmxvYWRlZE5hbWV9aGFuZGxlVGV4dChBLGUpe2NvbnN0IHQ9ZS5mb250LGk9dC5jaGFyc1RvR2x5cGhzKEEpO3JldHVybiB0LmRhdGEmJig0JmUudGV4dFJlbmRlcmluZ01vZGV8fCJQYXR0ZXJuIj09PWUuZmlsbENvbG9yU3BhY2UubmFtZXx8dC5kaXNhYmxlRm9udEZhY2V8fHRoaXMub3B0aW9ucy5kaXNhYmxlRm9udEZhY2UpJiZDZy5idWlsZEZvbnRQYXRocyh0LGksdGhpcy5oYW5kbGVyLHRoaXMub3B0aW9ucyksaX1lbnN1cmVTdGF0ZUZvbnQoQSl7aWYoQS5mb250KXJldHVybjtjb25zdCBlPW5ldyBXKCJNaXNzaW5nIHNldEZvbnQgKFRmKSBvcGVyYXRvciBiZWZvcmUgdGV4dCByZW5kZXJpbmcgb3BlcmF0b3IuIik7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTtVKGBlbnN1cmVTdGF0ZUZvbnQ6ICIke2V9Ii5gKX1hc3luYyBzZXRHU3RhdGUoe3Jlc291cmNlczpBLGdTdGF0ZTplLG9wZXJhdG9yTGlzdDp0LGNhY2hlS2V5OmksdGFzazphLHN0YXRlTWFuYWdlcjpzLGxvY2FsR1N0YXRlQ2FjaGU6bixsb2NhbENvbG9yU3BhY2VDYWNoZTpyfSl7Y29uc3QgZz1lLm9iaklkO2xldCBvPSEwO2NvbnN0IEk9W107bGV0IGM9UHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGNvbnN0IGkgb2YgZS5nZXRLZXlzKCkpe2NvbnN0IG49ZS5nZXQoaSk7c3dpdGNoKGkpe2Nhc2UiVHlwZSI6YnJlYWs7Y2FzZSJMVyI6Y2FzZSJMQyI6Y2FzZSJMSiI6Y2FzZSJNTCI6Y2FzZSJEIjpjYXNlIlJJIjpjYXNlIkZMIjpjYXNlIkNBIjpjYXNlImNhIjpJLnB1c2goW2ksbl0pO2JyZWFrO2Nhc2UiRm9udCI6bz0hMSxjPWMudGhlbigoKCk9PnRoaXMuaGFuZGxlU2V0Rm9udChBLG51bGwsblswXSx0LGEscy5zdGF0ZSkudGhlbigoZnVuY3Rpb24oQSl7dC5hZGREZXBlbmRlbmN5KEEpLEkucHVzaChbaSxbQSxuWzFdXV0pfSkpKSk7YnJlYWs7Y2FzZSJCTSI6SS5wdXNoKFtpLElnKG4pXSk7YnJlYWs7Y2FzZSJTTWFzayI6aWYoZkEobiwiTm9uZSIpKXtJLnB1c2goW2ksITFdKTticmVha31uIGluc3RhbmNlb2YgUUE/KG89ITEsYz1jLnRoZW4oKCgpPT50aGlzLmhhbmRsZVNNYXNrKG4sQSx0LGEscyxyKSkpLEkucHVzaChbaSwhMF0pKTpVKCJVbnN1cHBvcnRlZCBTTWFzayB0eXBlIik7YnJlYWs7Y2FzZSJUUiI6Y29uc3QgZT10aGlzLmhhbmRsZVRyYW5zZmVyRnVuY3Rpb24obik7SS5wdXNoKFtpLGVdKTticmVhaztjYXNlIk9QIjpjYXNlIm9wIjpjYXNlIk9QTSI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOmNhc2UiVFIyIjpjYXNlIkhUIjpjYXNlIlNNIjpjYXNlIlNBIjpjYXNlIkFJUyI6Y2FzZSJUSyI6eCgiZ3JhcGhpYyBzdGF0ZSBvcGVyYXRvciAiK2kpO2JyZWFrO2RlZmF1bHQ6eCgiVW5rbm93biBncmFwaGljIHN0YXRlIG9wZXJhdG9yICIraSl9fWF3YWl0IGMsSS5sZW5ndGg+MCYmdC5hZGRPcCg5LFtJXSksbyYmbi5zZXQoaSxnLEkpfWxvYWRGb250KEEsZSx0LGk9bnVsbCxhPW51bGwpe2NvbnN0IHM9YXN5bmMoKT0+bmV3IEJnKHtsb2FkZWROYW1lOiJnX2ZvbnRfZXJyb3IiLGZvbnQ6bmV3IHpzKGBGb250ICIke0F9IiBpcyBub3QgYXZhaWxhYmxlLmApLGRpY3Q6ZSxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pO2xldCBuO2lmKGUpZSBpbnN0YW5jZW9mIEVBJiYobj1lKTtlbHNle2NvbnN0IGU9dC5nZXQoIkZvbnQiKTtlJiYobj1lLmdldFJhdyhBKSl9aWYobil7aWYodGhpcy50eXBlM0ZvbnRSZWZzPy5oYXMobikpcmV0dXJuIHMoKTtpZih0aGlzLmZvbnRDYWNoZS5oYXMobikpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChuKTt0cnl7ZT10aGlzLnhyZWYuZmV0Y2hJZlJlZihuKX1jYXRjaChBKXtVKGBsb2FkRm9udCAtIGxvb2t1cCBmYWlsZWQ6ICIke0F9Ii5gKX19aWYoIShlIGluc3RhbmNlb2YgUUEpKXtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyYmIXRoaXMucGFyc2luZ1R5cGUzRm9udClyZXR1cm4gVShgRm9udCAiJHtBfSIgaXMgbm90IGF2YWlsYWJsZS5gKSxzKCk7VShgRm9udCAiJHtBfSIgaXMgbm90IGF2YWlsYWJsZSAtLSBhdHRlbXB0aW5nIHRvIGZhbGxiYWNrIHRvIGEgZGVmYXVsdCBmb250LmApLGU9aXx8Q2cuZmFsbGJhY2tGb250RGljdH1pZihlLmNhY2hlS2V5JiZ0aGlzLmZvbnRDYWNoZS5oYXMoZS5jYWNoZUtleSkpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChlLmNhY2hlS2V5KTtjb25zdHtwcm9taXNlOnIscmVzb2x2ZTpnfT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtsZXQgbzt0cnl7bz10aGlzLnByZUV2YWx1YXRlRm9udChlKSxvLmNzc0ZvbnRJbmZvPWF9Y2F0Y2goQSl7cmV0dXJuIFUoYGxvYWRGb250IC0gcHJlRXZhbHVhdGVGb250IGZhaWxlZDogIiR7QX0iLmApLHMoKX1jb25zdHtkZXNjcmlwdG9yOkksaGFzaDpjfT1vLGg9biBpbnN0YW5jZW9mIEVBO2xldCBDO2lmKGMmJkkgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1JLmZvbnRBbGlhc2VzfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihBW2NdKXtjb25zdCBlPUFbY10uYWxpYXNSZWY7aWYoaCYmZSYmdGhpcy5mb250Q2FjaGUuaGFzKGUpKXJldHVybiB0aGlzLmZvbnRDYWNoZS5wdXRBbGlhcyhuLGUpLHRoaXMuZm9udENhY2hlLmdldChuKX1lbHNlIEFbY109e2ZvbnRJRDp0aGlzLmlkRmFjdG9yeS5jcmVhdGVGb250SWQoKX07aCYmKEFbY10uYWxpYXNSZWY9biksQz1BW2NdLmZvbnRJRH1lbHNlIEM9dGhpcy5pZEZhY3RvcnkuY3JlYXRlRm9udElkKCk7cmV0dXJuIEwoQz8uc3RhcnRzV2l0aCgiZiIpLCdUaGUgImZvbnRJRCIgbXVzdCBiZSAoY29ycmVjdGx5KSBkZWZpbmVkLicpLGg/dGhpcy5mb250Q2FjaGUucHV0KG4scik6KGUuY2FjaGVLZXk9YGNhY2hlS2V5XyR7Q31gLHRoaXMuZm9udENhY2hlLnB1dChlLmNhY2hlS2V5LHIpKSxlLmxvYWRlZE5hbWU9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fJHtDfWAsdGhpcy50cmFuc2xhdGVGb250KG8pLnRoZW4oKEE9PntnKG5ldyBCZyh7bG9hZGVkTmFtZTplLmxvYWRlZE5hbWUsZm9udDpBLGRpY3Q6ZSxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pKX0pKS5jYXRjaCgoQT0+e1UoYGxvYWRGb250IC0gdHJhbnNsYXRlRm9udCBmYWlsZWQ6ICIke0F9Ii5gKSxnKG5ldyBCZyh7bG9hZGVkTmFtZTplLmxvYWRlZE5hbWUsZm9udDpuZXcgenMoQSBpbnN0YW5jZW9mIEVycm9yP0EubWVzc2FnZTpBKSxkaWN0OmUsZXZhbHVhdG9yT3B0aW9uczp0aGlzLm9wdGlvbnN9KSl9KSkscn1idWlsZFBhdGgoQSxlLHQsaT0hMSl7Y29uc3QgYT1BLmxlbmd0aC0xO2lmKHR8fCh0PVtdKSxhPDB8fDkxIT09QS5mbkFycmF5W2FdKXtsZXQgYTtzd2l0Y2goaSYmKFUoYEVuY291bnRlcmVkIHBhdGggb3BlcmF0b3IgIiR7ZX0iIGluc2lkZSBvZiBhIHRleHQgb2JqZWN0LmApLEEuYWRkT3AoZixudWxsKSksZSl7Y2FzZSAxOTpjb25zdCBBPXRbMF0rdFsyXSxlPXRbMV0rdFszXTthPVtNYXRoLm1pbih0WzBdLEEpLE1hdGgubWluKHRbMV0sZSksTWF0aC5tYXgodFswXSxBKSxNYXRoLm1heCh0WzFdLGUpXTticmVhaztjYXNlIDEzOmNhc2UgMTQ6YT1bdFswXSx0WzFdLHRbMF0sdFsxXV07YnJlYWs7ZGVmYXVsdDphPVsxLzAsMS8wLC0xLzAsLTEvMF19QS5hZGRPcCg5MSxbW2VdLHQsYV0pLGkmJkEuYWRkT3AocCxudWxsKX1lbHNle2NvbnN0IGk9QS5hcmdzQXJyYXlbYV07aVswXS5wdXNoKGUpLGlbMV0ucHVzaCguLi50KTtjb25zdCBzPWlbMl07c3dpdGNoKGUpe2Nhc2UgMTk6Y29uc3QgQT10WzBdK3RbMl0sZT10WzFdK3RbM107c1swXT1NYXRoLm1pbihzWzBdLHRbMF0sQSksc1sxXT1NYXRoLm1pbihzWzFdLHRbMV0sZSksc1syXT1NYXRoLm1heChzWzJdLHRbMF0sQSksc1szXT1NYXRoLm1heChzWzNdLHRbMV0sZSk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE0OnNbMF09TWF0aC5taW4oc1swXSx0WzBdKSxzWzFdPU1hdGgubWluKHNbMV0sdFsxXSksc1syXT1NYXRoLm1heChzWzJdLHRbMF0pLHNbM109TWF0aC5tYXgoc1szXSx0WzFdKX19fXBhcnNlQ29sb3JTcGFjZSh7Y3M6QSxyZXNvdXJjZXM6ZSxsb2NhbENvbG9yU3BhY2VDYWNoZTp0fSl7cmV0dXJuIENlLnBhcnNlQXN5bmMoe2NzOkEseHJlZjp0aGlzLnhyZWYscmVzb3VyY2VzOmUscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTp0fSkuY2F0Y2goKEE9PntpZihBIGluc3RhbmNlb2YgTylyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiBVKGBwYXJzZUNvbG9yU3BhY2UgLSBpZ25vcmluZyBDb2xvclNwYWNlOiAiJHtBfSIuYCksbnVsbDt0aHJvdyBBfSkpfXBhcnNlU2hhZGluZyh7c2hhZGluZzpBLHJlc291cmNlczplLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnQsbG9jYWxTaGFkaW5nUGF0dGVybkNhY2hlOml9KXtsZXQgYSxzPWkuZ2V0KEEpO2lmKHMpcmV0dXJuIHM7dHJ5e2E9JHMucGFyc2VTaGFkaW5nKEEsdGhpcy54cmVmLGUsdGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LHQpLmdldElSKCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE8pcmV0dXJuIG51bGw7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycylyZXR1cm4gVShgcGFyc2VTaGFkaW5nIC0gaWdub3Jpbmcgc2hhZGluZzogIiR7ZX0iLmApLGkuc2V0KEEsbnVsbCksbnVsbDt0aHJvdyBlfXJldHVybiBzPWBwYXR0ZXJuXyR7dGhpcy5pZEZhY3RvcnkuY3JlYXRlT2JqSWQoKX1gLHRoaXMucGFyc2luZ1R5cGUzRm9udCYmKHM9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fdHlwZTNfJHtzfWApLGkuc2V0KEEscyksdGhpcy5wYXJzaW5nVHlwZTNGb250P3RoaXMuaGFuZGxlci5zZW5kKCJjb21tb25vYmoiLFtzLCJQYXR0ZXJuIixhXSk6dGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW3MsdGhpcy5wYWdlSW5kZXgsIlBhdHRlcm4iLGFdKSxzfWhhbmRsZUNvbG9yTihBLGUsdCxpLGEscyxuLHIsZyxvKXtjb25zdCBJPXQucG9wKCk7aWYoSSBpbnN0YW5jZW9mIENBKXtjb25zdCBjPWEuZ2V0UmF3KEkubmFtZSksaD1jIGluc3RhbmNlb2YgRUEmJmcuZ2V0QnlSZWYoYyk7aWYoaCl0cnl7Y29uc3QgYT1pLmJhc2U/aS5iYXNlLmdldFJnYih0LDApOm51bGwscz1nbihoLm9wZXJhdG9yTGlzdElSLGguZGljdCxhKTtyZXR1cm4gdm9pZCBBLmFkZE9wKGUscyl9Y2F0Y2h7fWNvbnN0IEM9dGhpcy54cmVmLmZldGNoSWZSZWYoYyk7aWYoQyl7Y29uc3QgYT1DIGluc3RhbmNlb2Ygd0E/Qy5kaWN0OkMsST1hLmdldCgiUGF0dGVyblR5cGUiKTtpZigxPT09SSl7Y29uc3Qgcj1pLmJhc2U/aS5iYXNlLmdldFJnYih0LDApOm51bGw7cmV0dXJuIHRoaXMuaGFuZGxlVGlsaW5nVHlwZShlLHIscyxDLGEsQSxuLGcpfWlmKDI9PT1JKXtjb25zdCB0PWEuZ2V0KCJTaGFkaW5nIiksaT10aGlzLnBhcnNlU2hhZGluZyh7c2hhZGluZzp0LHJlc291cmNlczpzLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnIsbG9jYWxTaGFkaW5nUGF0dGVybkNhY2hlOm99KTtpZihpKXtjb25zdCB0PUtBKGEuZ2V0QXJyYXkoIk1hdHJpeCIpLG51bGwpO0EuYWRkT3AoZSxbIlNoYWRpbmciLGksdF0pfXJldHVybn10aHJvdyBuZXcgVyhgVW5rbm93biBQYXR0ZXJuVHlwZTogJHtJfWApfX10aHJvdyBuZXcgVyhgVW5rbm93biBQYXR0ZXJuTmFtZTogJHtJfWApfV9wYXJzZVZpc2liaWxpdHlFeHByZXNzaW9uKEEsZSx0KXtpZigrK2U+MTApcmV0dXJuIHZvaWQgVSgiVmlzaWJpbGl0eSBleHByZXNzaW9uIGlzIHRvbyBkZWVwbHkgbmVzdGVkIik7Y29uc3QgaT1BLmxlbmd0aCxhPXRoaXMueHJlZi5mZXRjaElmUmVmKEFbMF0pO2lmKCEoaTwyKSYmYSBpbnN0YW5jZW9mIENBKXtzd2l0Y2goYS5uYW1lKXtjYXNlIkFuZCI6Y2FzZSJPciI6Y2FzZSJOb3QiOnQucHVzaChhLm5hbWUpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHZvaWQgVShgSW52YWxpZCBvcGVyYXRvciAke2EubmFtZX0gaW4gdmlzaWJpbGl0eSBleHByZXNzaW9uYCl9Zm9yKGxldCBhPTE7YTxpO2ErKyl7Y29uc3QgaT1BW2FdLHM9dGhpcy54cmVmLmZldGNoSWZSZWYoaSk7aWYoQXJyYXkuaXNBcnJheShzKSl7Y29uc3QgQT1bXTt0LnB1c2goQSksdGhpcy5fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihzLGUsQSl9ZWxzZSBpIGluc3RhbmNlb2YgRUEmJnQucHVzaChpLnRvU3RyaW5nKCkpfX1lbHNlIFUoIkludmFsaWQgdmlzaWJpbGl0eSBleHByZXNzaW9uIil9YXN5bmMgcGFyc2VNYXJrZWRDb250ZW50UHJvcHMoQSxlKXtsZXQgdDtpZihBIGluc3RhbmNlb2YgQ0EpdD1lLmdldCgiUHJvcGVydGllcyIpLmdldChBLm5hbWUpO2Vsc2V7aWYoIShBIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJPcHRpb25hbCBjb250ZW50IHByb3BlcnRpZXMgbWFsZm9ybWVkLiIpO3Q9QX1jb25zdCBpPXQuZ2V0KCJUeXBlIik/Lm5hbWU7aWYoIk9DRyI9PT1pKXJldHVybnt0eXBlOmksaWQ6dC5vYmpJZH07aWYoIk9DTUQiPT09aSl7Y29uc3QgQT10LmdldCgiVkUiKTtpZihBcnJheS5pc0FycmF5KEEpKXtjb25zdCBlPVtdO2lmKHRoaXMuX3BhcnNlVmlzaWJpbGl0eUV4cHJlc3Npb24oQSwwLGUpLGUubGVuZ3RoPjApcmV0dXJue3R5cGU6Ik9DTUQiLGV4cHJlc3Npb246ZX19Y29uc3QgZT10LmdldCgiT0NHcyIpO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1bXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihjb25zdCB0IG9mIGUpQS5wdXNoKHQudG9TdHJpbmcoKSk7ZWxzZSBBLnB1c2goZS5vYmpJZCk7cmV0dXJue3R5cGU6aSxpZHM6QSxwb2xpY3k6dC5nZXQoIlAiKWluc3RhbmNlb2YgQ0E/dC5nZXQoIlAiKS5uYW1lOm51bGwsZXhwcmVzc2lvbjpudWxsfX1pZihlIGluc3RhbmNlb2YgRUEpcmV0dXJue3R5cGU6aSxpZDplLnRvU3RyaW5nKCl9fXJldHVybiBudWxsfWdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOkEsdGFzazplLHJlc291cmNlczp0LG9wZXJhdG9yTGlzdDppLGluaXRpYWxTdGF0ZTphPW51bGwsZmFsbGJhY2tGb250RGljdDpzPW51bGx9KXtpZih0fHw9UUEuZW1wdHksYXx8PW5ldyBFZywhaSl0aHJvdyBuZXcgRXJyb3IoJ2dldE9wZXJhdG9yTGlzdDogbWlzc2luZyAib3BlcmF0b3JMaXN0IiBwYXJhbWV0ZXInKTtjb25zdCBuPXRoaXMscj10aGlzLnhyZWY7bGV0IGc9ITE7Y29uc3Qgbz1uZXcgaXIsST1uZXcgYXIsYz1uZXcgbnIsaD1uZXcgcnIsQz1uZXcgTWFwLEI9dC5nZXQoIlhPYmplY3QiKXx8UUEuZW1wdHksbD10LmdldCgiUGF0dGVybiIpfHxRQS5lbXB0eSxRPW5ldyBsZyhhKSxFPW5ldyB1ZyhBLHIsUSksdT1uZXcgaGc7ZnVuY3Rpb24gZChBKXtmb3IobGV0IEE9MCxlPUUuc2F2ZWRTdGF0ZXNEZXB0aDtBPGU7QSsrKWkuYWRkT3AocCxbXSl9cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbiBBKGEsZil7Y29uc3QgcD1mdW5jdGlvbihlKXtQcm9taXNlLmFsbChbZSxpLnJlYWR5XSkudGhlbigoZnVuY3Rpb24oKXt0cnl7QShhLGYpfWNhdGNoKEEpe2YoQSl9fSksZil9O2UuZW5zdXJlTm90VGVybWluYXRlZCgpLHUucmVzZXQoKTtjb25zdCBtPXt9O2xldCBGLFMsUixHLE4sTTtmb3IoOyEoRj11LmNoZWNrKCkpJiYobS5hcmdzPW51bGwsRS5yZWFkKG0pKTspe2xldCBBPW0uYXJncyxhPW0uZm47c3dpdGNoKDB8YSl7Y2FzZSA2NjppZihNPUFbMF1pbnN0YW5jZW9mIENBLE49QVswXS5uYW1lLE0pe2NvbnN0IGU9by5nZXRCeU5hbWUoTik7aWYoZSl7Y2coaSxlKSxBPW51bGw7Y29udGludWV9fXJldHVybiB2b2lkIHAobmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsYSl7aWYoIU0pdGhyb3cgbmV3IFcoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBzPUIuZ2V0UmF3KE4pO2lmKHMgaW5zdGFuY2VvZiBFQSl7Y29uc3QgZT1vLmdldEJ5UmVmKHMpfHxuLl9yZWdpb25hbEltYWdlQ2FjaGUuZ2V0QnlSZWYocyk7aWYoZSlyZXR1cm4gY2coaSxlKSx2b2lkIEEoKTtjb25zdCB0PW4uZ2xvYmFsSW1hZ2VDYWNoZS5nZXREYXRhKHMsbi5wYWdlSW5kZXgpO2lmKHQpcmV0dXJuIGkuYWRkRGVwZW5kZW5jeSh0Lm9iaklkKSxpLmFkZEltYWdlT3BzKHQuZm4sdC5hcmdzLHQub3B0aW9uYWxDb250ZW50KSx2b2lkIEEoKTtzPXIuZmV0Y2gocyl9aWYoIShzIGluc3RhbmNlb2Ygd0EpKXRocm93IG5ldyBXKCJYT2JqZWN0IHNob3VsZCBiZSBhIHN0cmVhbSIpO2NvbnN0IGc9cy5kaWN0LmdldCgiU3VidHlwZSIpO2lmKCEoZyBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVygiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIj09PWcubmFtZSlyZXR1cm4gUS5zYXZlKCksdm9pZCBuLmJ1aWxkRm9ybVhPYmplY3QodCxzLG51bGwsaSxlLFEuc3RhdGUuY2xvbmUoKSxJKS50aGVuKChmdW5jdGlvbigpe1EucmVzdG9yZSgpLEEoKX0pLGEpO2lmKCJJbWFnZSIhPT1nLm5hbWUpe2lmKCJQUyIhPT1nLm5hbWUpdGhyb3cgbmV3IFcoYFVuaGFuZGxlZCBYT2JqZWN0IHN1YnR5cGUgJHtnLm5hbWV9YCk7eCgiSWdub3JlZCBYT2JqZWN0IHN1YnR5cGUgUFMiKSxBKCl9ZWxzZSBuLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczp0LGltYWdlOnMsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6Tixsb2NhbEltYWdlQ2FjaGU6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpJfSkudGhlbihBLGEpfSkpLmNhdGNoKChmdW5jdGlvbihBKXtpZighKEEgaW5zdGFuY2VvZiBPKSl7aWYoIW4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgQTtVKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtBfSIuYCl9fSkpKTtjYXNlIHk6dmFyIEw9QVsxXTtyZXR1cm4gdm9pZCBwKG4uaGFuZGxlU2V0Rm9udCh0LEEsbnVsbCxpLGUsUS5zdGF0ZSxzKS50aGVuKChmdW5jdGlvbihBKXtpLmFkZERlcGVuZGVuY3koQSksaS5hZGRPcCh5LFtBLExdKX0pKSk7Y2FzZSAzMTpnPSEwO2JyZWFrO2Nhc2UgMzI6Zz0hMTticmVhaztjYXNlIDY1OnZhciBKPUFbMF0uY2FjaGVLZXk7aWYoSil7Y29uc3QgZT1vLmdldEJ5TmFtZShKKTtpZihlKXtjZyhpLGUpLEE9bnVsbDtjb250aW51ZX19cmV0dXJuIHZvaWQgcChuLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczp0LGltYWdlOkFbMF0saXNJbmxpbmU6ITAsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6Sixsb2NhbEltYWdlQ2FjaGU6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpJfSkpO2Nhc2UgdzppZighUS5zdGF0ZS5mb250KXtuLmVuc3VyZVN0YXRlRm9udChRLnN0YXRlKTtjb250aW51ZX1BWzBdPW4uaGFuZGxlVGV4dChBWzBdLFEuc3RhdGUpO2JyZWFrO2Nhc2UgNDU6aWYoIVEuc3RhdGUuZm9udCl7bi5lbnN1cmVTdGF0ZUZvbnQoUS5zdGF0ZSk7Y29udGludWV9dmFyIEg9W10sWT1RLnN0YXRlO2Zvcihjb25zdCBlIG9mIEFbMF0pInN0cmluZyI9PXR5cGVvZiBlP0gucHVzaCguLi5uLmhhbmRsZVRleHQoZSxZKSk6Im51bWJlciI9PXR5cGVvZiBlJiZILnB1c2goZSk7QVswXT1ILGE9dzticmVhaztjYXNlIDQ2OmlmKCFRLnN0YXRlLmZvbnQpe24uZW5zdXJlU3RhdGVGb250KFEuc3RhdGUpO2NvbnRpbnVlfWkuYWRkT3AoNDMpLEFbMF09bi5oYW5kbGVUZXh0KEFbMF0sUS5zdGF0ZSksYT13O2JyZWFrO2Nhc2UgNDc6aWYoIVEuc3RhdGUuZm9udCl7bi5lbnN1cmVTdGF0ZUZvbnQoUS5zdGF0ZSk7Y29udGludWV9aS5hZGRPcCg0MyksaS5hZGRPcCgzNCxbQS5zaGlmdCgpXSksaS5hZGRPcCgzMyxbQS5zaGlmdCgpXSksQVswXT1uLmhhbmRsZVRleHQoQVswXSxRLnN0YXRlKSxhPXc7YnJlYWs7Y2FzZSAzODpRLnN0YXRlLnRleHRSZW5kZXJpbmdNb2RlPUFbMF07YnJlYWs7Y2FzZSA1MTp7Y29uc3QgZT1DZS5nZXRDYWNoZWQoQVswXSxyLEkpO2lmKGUpe1Euc3RhdGUuZmlsbENvbG9yU3BhY2U9ZTtjb250aW51ZX1yZXR1cm4gdm9pZCBwKG4ucGFyc2VDb2xvclNwYWNlKHtjczpBWzBdLHJlc291cmNlczp0LGxvY2FsQ29sb3JTcGFjZUNhY2hlOkl9KS50aGVuKChmdW5jdGlvbihBKXtRLnN0YXRlLmZpbGxDb2xvclNwYWNlPUF8fENlLnNpbmdsZXRvbnMuZ3JheX0pKSl9Y2FzZSA1MDp7Y29uc3QgZT1DZS5nZXRDYWNoZWQoQVswXSxyLEkpO2lmKGUpe1Euc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1lO2NvbnRpbnVlfXJldHVybiB2b2lkIHAobi5wYXJzZUNvbG9yU3BhY2Uoe2NzOkFbMF0scmVzb3VyY2VzOnQsbG9jYWxDb2xvclNwYWNlQ2FjaGU6SX0pLnRoZW4oKGZ1bmN0aW9uKEEpe1Euc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1BfHxDZS5zaW5nbGV0b25zLmdyYXl9KSkpfWNhc2UgNTQ6Rz1RLnN0YXRlLmZpbGxDb2xvclNwYWNlLEE9Ry5nZXRSZ2IoQSwwKSxhPWI7YnJlYWs7Y2FzZSA1MjpHPVEuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZSxBPUcuZ2V0UmdiKEEsMCksYT1EO2JyZWFrO2Nhc2UgNTc6US5zdGF0ZS5maWxsQ29sb3JTcGFjZT1DZS5zaW5nbGV0b25zLmdyYXksQT1DZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiKEEsMCksYT1iO2JyZWFrO2Nhc2UgNTY6US5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuZ3JheSxBPUNlLnNpbmdsZXRvbnMuZ3JheS5nZXRSZ2IoQSwwKSxhPUQ7YnJlYWs7Y2FzZSA2MTpRLnN0YXRlLmZpbGxDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuY215ayxBPUNlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2IoQSwwKSxhPWI7YnJlYWs7Y2FzZSA2MDpRLnN0YXRlLnN0cm9rZUNvbG9yU3BhY2U9Q2Uuc2luZ2xldG9ucy5jbXlrLEE9Q2Uuc2luZ2xldG9ucy5jbXlrLmdldFJnYihBLDApLGE9RDticmVhaztjYXNlIGI6US5zdGF0ZS5maWxsQ29sb3JTcGFjZT1DZS5zaW5nbGV0b25zLnJnYixBPUNlLnNpbmdsZXRvbnMucmdiLmdldFJnYihBLDApO2JyZWFrO2Nhc2UgRDpRLnN0YXRlLnN0cm9rZUNvbG9yU3BhY2U9Q2Uuc2luZ2xldG9ucy5yZ2IsQT1DZS5zaW5nbGV0b25zLnJnYi5nZXRSZ2IoQSwwKTticmVhaztjYXNlIDU1OmlmKEc9US5zdGF0ZS5wYXR0ZXJuRmlsbENvbG9yU3BhY2UsIUcpe0E9W10sYT05MzticmVha31pZigiUGF0dGVybiI9PT1HLm5hbWUpcmV0dXJuIHZvaWQgcChuLmhhbmRsZUNvbG9yTihpLDU1LEEsRyxsLHQsZSxJLGgsQykpO0E9Ry5nZXRSZ2IoQSwwKSxhPWI7YnJlYWs7Y2FzZSA1MzppZihHPVEuc3RhdGUucGF0dGVyblN0cm9rZUNvbG9yU3BhY2UsIUcpe0E9W10sYT05MjticmVha31pZigiUGF0dGVybiI9PT1HLm5hbWUpcmV0dXJuIHZvaWQgcChuLmhhbmRsZUNvbG9yTihpLDUzLEEsRyxsLHQsZSxJLGgsQykpO0E9Ry5nZXRSZ2IoQSwwKSxhPUQ7YnJlYWs7Y2FzZSA2MjpsZXQgRTt0cnl7Y29uc3QgZT10LmdldCgiU2hhZGluZyIpO2lmKCFlKXRocm93IG5ldyBXKCJObyBzaGFkaW5nIHJlc291cmNlIGZvdW5kIik7aWYoRT1lLmdldChBWzBdLm5hbWUpLCFFKXRocm93IG5ldyBXKCJObyBzaGFkaW5nIG9iamVjdCBmb3VuZCIpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBPKWNvbnRpbnVlO2lmKG4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpe1UoYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIFNoYWRpbmc6ICIke0F9Ii5gKTtjb250aW51ZX10aHJvdyBBfWNvbnN0IHU9bi5wYXJzZVNoYWRpbmcoe3NoYWRpbmc6RSxyZXNvdXJjZXM6dCxsb2NhbENvbG9yU3BhY2VDYWNoZTpJLGxvY2FsU2hhZGluZ1BhdHRlcm5DYWNoZTpDfSk7aWYoIXUpY29udGludWU7QT1bdV0sYT02MjticmVhaztjYXNlIDk6aWYoTT1BWzBdaW5zdGFuY2VvZiBDQSxOPUFbMF0ubmFtZSxNKXtjb25zdCBlPWMuZ2V0QnlOYW1lKE4pO2lmKGUpe2UubGVuZ3RoPjAmJmkuYWRkT3AoOSxbZV0pLEE9bnVsbDtjb250aW51ZX19cmV0dXJuIHZvaWQgcChuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSxhKXtpZighTSl0aHJvdyBuZXcgVygiR1N0YXRlIG11c3QgYmUgcmVmZXJyZWQgdG8gYnkgbmFtZS4iKTtjb25zdCBzPXQuZ2V0KCJFeHRHU3RhdGUiKTtpZighKHMgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIkV4dEdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2NvbnN0IHI9cy5nZXQoTik7aWYoIShyIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJHU3RhdGUgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS4iKTtuLnNldEdTdGF0ZSh7cmVzb3VyY2VzOnQsZ1N0YXRlOnIsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6Tix0YXNrOmUsc3RhdGVNYW5hZ2VyOlEsbG9jYWxHU3RhdGVDYWNoZTpjLGxvY2FsQ29sb3JTcGFjZUNhY2hlOkl9KS50aGVuKEEsYSl9KSkuY2F0Y2goKGZ1bmN0aW9uKEEpe2lmKCEoQSBpbnN0YW5jZW9mIE8pKXtpZighbi5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7QX0iLmApfX0pKSk7Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAxNjpjYXNlIDE3OmNhc2UgMTg6Y2FzZSAxOTpuLmJ1aWxkUGF0aChpLGEsQSxnKTtjb250aW51ZTtjYXNlIDY3OmNhc2UgNjg6Y2FzZSA3MjpjYXNlIDczOmNvbnRpbnVlO2Nhc2UgazppZighKEFbMF1pbnN0YW5jZW9mIENBKSl7VShgRXhwZWN0ZWQgbmFtZSBmb3IgYmVnaW5NYXJrZWRDb250ZW50UHJvcHMgYXJnMD0ke0FbMF19YCksaS5hZGRPcChrLFsiT0MiLG51bGxdKTtjb250aW51ZX1pZigiT0MiPT09QVswXS5uYW1lKXJldHVybiB2b2lkIHAobi5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhBWzFdLHQpLnRoZW4oKEE9PntpLmFkZE9wKGssWyJPQyIsQV0pfSkpLmNhdGNoKChBPT57aWYoIShBIGluc3RhbmNlb2YgTykpe2lmKG4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpcmV0dXJuIFUoYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIGJlZ2luTWFya2VkQ29udGVudFByb3BzOiAiJHtBfSIuYCksdm9pZCBpLmFkZE9wKGssWyJPQyIsbnVsbF0pO3Rocm93IEF9fSkpKTtBPVtBWzBdLm5hbWUsQVsxXWluc3RhbmNlb2YgUUE/QVsxXS5nZXQoIk1DSUQiKTpudWxsXTticmVhaztkZWZhdWx0OmlmKG51bGwhPT1BKXtmb3IoUz0wLFI9QS5sZW5ndGg7UzxSJiYhKEFbU11pbnN0YW5jZW9mIFFBKTtTKyspO2lmKFM8Uil7VSgiZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3Jpbmcgb3BlcmF0b3I6ICIrYSk7Y29udGludWV9fX1pLmFkZE9wKGEsQSl9Rj9wKG9nKTooZCgpLGEoKSl9KSkuY2F0Y2goKEE9PntpZighKEEgaW5zdGFuY2VvZiBPKSl7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycylyZXR1cm4gVShgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgZXJyb3JzIGR1cmluZyAiJHtlLm5hbWV9IiB0YXNrOiAiJHtBfSIuYCksdm9pZCBkKCk7dGhyb3cgQX19KSl9Z2V0VGV4dENvbnRlbnQoe3N0cmVhbTpBLHRhc2s6ZSxyZXNvdXJjZXM6dCxzdGF0ZU1hbmFnZXI6aT1udWxsLGluY2x1ZGVNYXJrZWRDb250ZW50OmE9ITEsc2luazpyLHNlZW5TdHlsZXM6Zz1uZXcgU2V0LHZpZXdCb3g6byxsYW5nOkk9bnVsbCxtYXJrZWRDb250ZW50RGF0YTpjPW51bGwsZGlzYWJsZU5vcm1hbGl6YXRpb246aD0hMSxrZWVwV2hpdGVTcGFjZTpDPSExfSl7dHx8PVFBLmVtcHR5LGl8fD1uZXcgbGcobmV3IFFnKSxhJiYoY3x8PXtsZXZlbDowfSk7Y29uc3QgQj17aXRlbXM6W10sc3R5bGVzOk9iamVjdC5jcmVhdGUobnVsbCksbGFuZzpJfSxsPXtpbml0aWFsaXplZDohMSxzdHI6W10sdG90YWxXaWR0aDowLHRvdGFsSGVpZ2h0OjAsd2lkdGg6MCxoZWlnaHQ6MCx2ZXJ0aWNhbDohMSxwcmV2VHJhbnNmb3JtOm51bGwsdGV4dEFkdmFuY2VTY2FsZTowLHNwYWNlSW5GbG93TWluOjAsc3BhY2VJbkZsb3dNYXg6MCx0cmFja2luZ1NwYWNlTWluOjEvMCxuZWdhdGl2ZVNwYWNlTWF4Oi0xLzAsbm90QVNwYWNlOi0xLzAsdHJhbnNmb3JtOm51bGwsZm9udE5hbWU6bnVsbCxoYXNFT0w6ITF9LFE9WyIgIiwiICJdO2xldCBFPTA7ZnVuY3Rpb24gdShBKXtjb25zdCBlPShFKzEpJTIsdD0iICIhPT1RW0VdJiYiICI9PT1RW2VdO3JldHVybiBRW0VdPUEsRT1lLCFDJiZ0fWZ1bmN0aW9uIGQoKXtyZXR1cm4hQyYmIiAiIT09UVtFXSYmIiAiPT09UVsoRSsxKSUyXX1mdW5jdGlvbiBmKCl7UVswXT1RWzFdPSIgIixFPTB9Y29uc3QgbT10aGlzLEQ9dGhpcy54cmVmLGI9W107bGV0IFM9bnVsbDtjb25zdCBSPW5ldyBpcixHPW5ldyBucixOPW5ldyB1ZyhBLEQsaSk7bGV0IHg7ZnVuY3Rpb24gTSh7d2lkdGg6QT0wLGhlaWdodDplPTAsdHJhbnNmb3JtOnQ9bC5wcmV2VHJhbnNmb3JtLGZvbnROYW1lOmk9bC5mb250TmFtZX0pe0IuaXRlbXMucHVzaCh7c3RyOiIgIixkaXI6Imx0ciIsd2lkdGg6QSxoZWlnaHQ6ZSx0cmFuc2Zvcm06dCxmb250TmFtZTppLGhhc0VPTDohMX0pfWZ1bmN0aW9uIEwoKXtjb25zdCBBPXguZm9udCxlPVt4LmZvbnRTaXplKngudGV4dEhTY2FsZSwwLDAseC5mb250U2l6ZSwwLHgudGV4dFJpc2VdO2lmKEEuaXNUeXBlM0ZvbnQmJih4LmZvbnRTaXplPD0xfHxBLmlzQ2hhckJCb3gpJiYhYUEoeC5mb250TWF0cml4LG4pKXtjb25zdCB0PUEuYmJveFszXS1BLmJib3hbMV07dD4wJiYoZVszXSo9dCp4LmZvbnRNYXRyaXhbM10pfXJldHVybiAkLnRyYW5zZm9ybSh4LmN0bSwkLnRyYW5zZm9ybSh4LnRleHRNYXRyaXgsZSkpfWZ1bmN0aW9uIEooKXtpZihsLmluaXRpYWxpemVkKXJldHVybiBsO2NvbnN0e2ZvbnQ6QSxsb2FkZWROYW1lOmV9PXg7aWYoIWcuaGFzKGUpJiYoZy5hZGQoZSksQi5zdHlsZXNbZV09e2ZvbnRGYW1pbHk6QS5mYWxsYmFja05hbWUsYXNjZW50OkEuYXNjZW50LGRlc2NlbnQ6QS5kZXNjZW50LHZlcnRpY2FsOkEudmVydGljYWx9LG0ub3B0aW9ucy5mb250RXh0cmFQcm9wZXJ0aWVzJiZBLnN5c3RlbUZvbnRJbmZvKSl7Y29uc3QgdD1CLnN0eWxlc1tlXTt0LmZvbnRTdWJzdGl0dXRpb249QS5zeXN0ZW1Gb250SW5mby5jc3MsdC5mb250U3Vic3RpdHV0aW9uTG9hZGVkTmFtZT1BLnN5c3RlbUZvbnRJbmZvLmxvYWRlZE5hbWV9bC5mb250TmFtZT1lO2NvbnN0IHQ9bC50cmFuc2Zvcm09TCgpO0EudmVydGljYWw/KGwud2lkdGg9bC50b3RhbFdpZHRoPU1hdGguaHlwb3QodFswXSx0WzFdKSxsLmhlaWdodD1sLnRvdGFsSGVpZ2h0PTAsbC52ZXJ0aWNhbD0hMCk6KGwud2lkdGg9bC50b3RhbFdpZHRoPTAsbC5oZWlnaHQ9bC50b3RhbEhlaWdodD1NYXRoLmh5cG90KHRbMl0sdFszXSksbC52ZXJ0aWNhbD0hMSk7Y29uc3QgaT1NYXRoLmh5cG90KHgudGV4dExpbmVNYXRyaXhbMF0seC50ZXh0TGluZU1hdHJpeFsxXSksYT1NYXRoLmh5cG90KHguY3RtWzBdLHguY3RtWzFdKTtsLnRleHRBZHZhbmNlU2NhbGU9YSppO2NvbnN0e2ZvbnRTaXplOnN9PXg7cmV0dXJuIGwudHJhY2tpbmdTcGFjZU1pbj0uMTAyKnMsbC5ub3RBU3BhY2U9LjAzKnMsbC5uZWdhdGl2ZVNwYWNlTWF4PS0uMipzLGwuc3BhY2VJbkZsb3dNaW49LjEwMipzLGwuc3BhY2VJbkZsb3dNYXg9LjYqcyxsLmhhc0VPTD0hMSxsLmluaXRpYWxpemVkPSEwLGx9ZnVuY3Rpb24gSCgpe2lmKCFsLmluaXRpYWxpemVkKXJldHVybjtjb25zdCBBPU1hdGguaHlwb3QoeC50ZXh0TGluZU1hdHJpeFswXSx4LnRleHRMaW5lTWF0cml4WzFdKSxlPU1hdGguaHlwb3QoeC5jdG1bMF0seC5jdG1bMV0pKkE7ZSE9PWwudGV4dEFkdmFuY2VTY2FsZSYmKGwudmVydGljYWw/KGwudG90YWxIZWlnaHQrPWwuaGVpZ2h0KmwudGV4dEFkdmFuY2VTY2FsZSxsLmhlaWdodD0wKToobC50b3RhbFdpZHRoKz1sLndpZHRoKmwudGV4dEFkdmFuY2VTY2FsZSxsLndpZHRoPTApLGwudGV4dEFkdmFuY2VTY2FsZT1lKX1hc3luYyBmdW5jdGlvbiBZKEEsaSl7Y29uc3QgYT1hd2FpdCBtLmxvYWRGb250KEEsaSx0KTtpZihhLmZvbnQuaXNUeXBlM0ZvbnQpdHJ5e2F3YWl0IGEubG9hZFR5cGUzRGF0YShtLHQsZSl9Y2F0Y2h7fXgubG9hZGVkTmFtZT1hLmxvYWRlZE5hbWUseC5mb250PWEuZm9udCx4LmZvbnRNYXRyaXg9YS5mb250LmZvbnRNYXRyaXh8fG59ZnVuY3Rpb24gdihBLGUsdCl7Y29uc3QgaT1NYXRoLmh5cG90KHRbMF0sdFsxXSk7cmV0dXJuWyh0WzBdKkErdFsxXSplKS9pLCh0WzJdKkErdFszXSplKS9pXX1mdW5jdGlvbiBLKEEpe2NvbnN0IGU9TCgpO2xldCB0PWVbNF0saT1lWzVdO2lmKHguZm9udD8udmVydGljYWwpe2lmKHQ8b1swXXx8dD5vWzJdfHxpK0E8b1sxXXx8aT5vWzNdKXJldHVybiExfWVsc2UgaWYodCtBPG9bMF18fHQ+b1syXXx8aTxvWzFdfHxpPm9bM10pcmV0dXJuITE7aWYoIXguZm9udHx8IWwucHJldlRyYW5zZm9ybSlyZXR1cm4hMDtsZXQgYT1sLnByZXZUcmFuc2Zvcm1bNF0scz1sLnByZXZUcmFuc2Zvcm1bNV07aWYoYT09PXQmJnM9PT1pKXJldHVybiEwO2xldCBuPS0xO3N3aXRjaChlWzBdJiYwPT09ZVsxXSYmMD09PWVbMl0/bj1lWzBdPjA/MDoxODA6ZVsxXSYmMD09PWVbMF0mJjA9PT1lWzNdJiYobj1lWzFdPjA/OTA6MjcwKSxuKXtjYXNlIDA6YnJlYWs7Y2FzZSA5MDpbdCxpXT1baSx0XSxbYSxzXT1bcyxhXTticmVhaztjYXNlIDE4MDpbdCxpLGEsc109Wy10LC1pLC1hLC1zXTticmVhaztjYXNlIDI3MDpbdCxpXT1bLWksLXRdLFthLHNdPVstcywtYV07YnJlYWs7ZGVmYXVsdDpbdCxpXT12KHQsaSxlKSxbYSxzXT12KGEscyxsLnByZXZUcmFuc2Zvcm0pfWlmKHguZm9udC52ZXJ0aWNhbCl7Y29uc3QgQT0ocy1pKS9sLnRleHRBZHZhbmNlU2NhbGUsZT10LWEsbj1NYXRoLnNpZ24obC5oZWlnaHQpO3JldHVybiBBPG4qbC5uZWdhdGl2ZVNwYWNlTWF4P01hdGguYWJzKGUpPi41Kmwud2lkdGg/KFQoKSwhMCk6KGYoKSxaKCksITApOk1hdGguYWJzKGUpPmwud2lkdGg/KFQoKSwhMCk6KEE8PW4qbC5ub3RBU3BhY2UmJmYoKSxBPD1uKmwudHJhY2tpbmdTcGFjZU1pbj9kKCk/KGYoKSxaKCksTSh7aGVpZ2h0Ok1hdGguYWJzKEEpfSkpOmwuaGVpZ2h0Kz1BOlAoQSxsLnByZXZUcmFuc2Zvcm0sbil8fCgwPT09bC5zdHIubGVuZ3RoPyhmKCksTSh7aGVpZ2h0Ok1hdGguYWJzKEEpfSkpOmwuaGVpZ2h0Kz1BKSxNYXRoLmFicyhlKT4uMjUqbC53aWR0aCYmWigpLCEwKX1jb25zdCByPSh0LWEpL2wudGV4dEFkdmFuY2VTY2FsZSxnPWktcyxJPU1hdGguc2lnbihsLndpZHRoKTtyZXR1cm4gcjxJKmwubmVnYXRpdmVTcGFjZU1heD9NYXRoLmFicyhnKT4uNSpsLmhlaWdodD8oVCgpLCEwKTooZigpLFooKSwhMCk6TWF0aC5hYnMoZyk+bC5oZWlnaHQ/KFQoKSwhMCk6KHI8PUkqbC5ub3RBU3BhY2UmJmYoKSxyPD1JKmwudHJhY2tpbmdTcGFjZU1pbj9kKCk/KGYoKSxaKCksTSh7d2lkdGg6TWF0aC5hYnMocil9KSk6bC53aWR0aCs9cjpQKHIsbC5wcmV2VHJhbnNmb3JtLEkpfHwoMD09PWwuc3RyLmxlbmd0aD8oZigpLE0oe3dpZHRoOk1hdGguYWJzKHIpfSkpOmwud2lkdGgrPXIpLE1hdGguYWJzKGcpPi4yNSpsLmhlaWdodCYmWigpLCEwKX1mdW5jdGlvbiBxKHtjaGFyczpBLGV4dHJhU3BhY2luZzplfSl7Y29uc3QgdD14LmZvbnQ7aWYoIUEpe2NvbnN0IEE9eC5jaGFyU3BhY2luZytlO3JldHVybiBBJiYodC52ZXJ0aWNhbD94LnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtQSk6eC50cmFuc2xhdGVUZXh0TWF0cml4KEEqeC50ZXh0SFNjYWxlLDApKSx2b2lkKEMmJksoMCkpfWNvbnN0IGk9dC5jaGFyc1RvR2x5cGhzKEEpLGE9eC5mb250TWF0cml4WzBdKnguZm9udFNpemU7Zm9yKGxldCBBPTAscz1pLmxlbmd0aDtBPHM7QSsrKXtjb25zdCBuPWlbQV0se2NhdGVnb3J5OnJ9PW47aWYoci5pc0ludmlzaWJsZUZvcm1hdE1hcmspY29udGludWU7bGV0IGc9eC5jaGFyU3BhY2luZysoQSsxPT09cz9lOjApLG89bi53aWR0aDt0LnZlcnRpY2FsJiYobz1uLnZtZXRyaWM/bi52bWV0cmljWzBdOi1vKTtsZXQgST1vKmE7aWYoIUMmJnIuaXNXaGl0ZXNwYWNlKXt0LnZlcnRpY2FsPyhnKz0tSSt4LndvcmRTcGFjaW5nLHgudHJhbnNsYXRlVGV4dE1hdHJpeCgwLC1nKSk6KGcrPUkreC53b3JkU3BhY2luZyx4LnRyYW5zbGF0ZVRleHRNYXRyaXgoZyp4LnRleHRIU2NhbGUsMCkpLHUoIiAiKTtjb250aW51ZX1pZighci5pc1plcm9XaWR0aERpYWNyaXRpYyYmIUsoSSkpe3QudmVydGljYWw/eC50cmFuc2xhdGVUZXh0TWF0cml4KDAsSSk6eC50cmFuc2xhdGVUZXh0TWF0cml4KEkqeC50ZXh0SFNjYWxlLDApO2NvbnRpbnVlfWNvbnN0IGM9SigpO3IuaXNaZXJvV2lkdGhEaWFjcml0aWMmJihJPTApLHQudmVydGljYWw/KHgudHJhbnNsYXRlVGV4dE1hdHJpeCgwLEkpLEk9TWF0aC5hYnMoSSksYy5oZWlnaHQrPUkpOihJKj14LnRleHRIU2NhbGUseC50cmFuc2xhdGVUZXh0TWF0cml4KEksMCksYy53aWR0aCs9SSksSSYmKGMucHJldlRyYW5zZm9ybT1MKCkpO2NvbnN0IGg9bi51bmljb2RlO3UoaCkmJmMuc3RyLnB1c2goIiAiKSxjLnN0ci5wdXNoKGgpLGcmJih0LnZlcnRpY2FsP3gudHJhbnNsYXRlVGV4dE1hdHJpeCgwLC1nKTp4LnRyYW5zbGF0ZVRleHRNYXRyaXgoZyp4LnRleHRIU2NhbGUsMCkpfX1mdW5jdGlvbiBUKCl7ZigpLGwuaW5pdGlhbGl6ZWQ/KGwuaGFzRU9MPSEwLFooKSk6Qi5pdGVtcy5wdXNoKHtzdHI6IiIsZGlyOiJsdHIiLHdpZHRoOjAsaGVpZ2h0OjAsdHJhbnNmb3JtOkwoKSxmb250TmFtZTp4LmxvYWRlZE5hbWUsaGFzRU9MOiEwfSl9ZnVuY3Rpb24gUChBLGUsdCl7aWYodCpsLnNwYWNlSW5GbG93TWluPD1BJiZBPD10Kmwuc3BhY2VJbkZsb3dNYXgpcmV0dXJuIGwuaW5pdGlhbGl6ZWQmJihmKCksbC5zdHIucHVzaCgiICIpKSwhMTtjb25zdCBpPWwuZm9udE5hbWU7bGV0IGE9MDtyZXR1cm4gbC52ZXJ0aWNhbCYmKGE9QSxBPTApLFooKSxmKCksTSh7d2lkdGg6TWF0aC5hYnMoQSksaGVpZ2h0Ok1hdGguYWJzKGEpLHRyYW5zZm9ybTplfHxMKCksZm9udE5hbWU6aX0pLCEwfWZ1bmN0aW9uIFooKXtsLmluaXRpYWxpemVkJiZsLnN0ciYmKGwudmVydGljYWw/bC50b3RhbEhlaWdodCs9bC5oZWlnaHQqbC50ZXh0QWR2YW5jZVNjYWxlOmwudG90YWxXaWR0aCs9bC53aWR0aCpsLnRleHRBZHZhbmNlU2NhbGUsQi5pdGVtcy5wdXNoKGZ1bmN0aW9uKEEpe2xldCBlPUEuc3RyLmpvaW4oIiIpO3ZhciB0O2h8fCh0PWUsbkF8fChuQT0vKFtcdTAwYTBcdTAwYjVcdTAzN2VcdTBlYjNcdTIwMDAtXHUyMDBhXHUyMDJmXHUyMTI2XHVmYjAwLVx1ZmIwNFx1ZmIwNlx1ZmIyMC1cdWZiMzZcdWZiMzgtXHVmYjNjXHVmYjNlXHVmYjQwLVx1ZmI0MVx1ZmI0My1cdWZiNDRcdWZiNDYtXHVmYmExXHVmYmE0LVx1ZmJhOVx1ZmJhZS1cdWZiYjFcdWZiZDMtXHVmYmRjXHVmYmRlLVx1ZmJlN1x1ZmJlYS1cdWZiZjhcdWZiZmMtXHVmYmZkXHVmYzAwLVx1ZmM1ZFx1ZmM2NC1cdWZjZjFcdWZjZjUtXHVmZDNkXHVmZDg4XHVmZGY0XHVmZGZhLVx1ZmRmYlx1ZmU3MVx1ZmU3N1x1ZmU3OVx1ZmU3Ylx1ZmU3ZF0rKXwoXHVmYjA1KykvZ3UsckE9bmV3IE1hcChbWyLvrIUiLCLFv3QiXV0pKSxlPXQucmVwbGFjZUFsbChuQSwoKEEsZSx0KT0+ZT9lLm5vcm1hbGl6ZSgiTkZLQyIpOnJBLmdldCh0KSkpKTtjb25zdCBpPVlyKGUsLTEsQS52ZXJ0aWNhbCk7cmV0dXJue3N0cjppLnN0cixkaXI6aS5kaXIsd2lkdGg6TWF0aC5hYnMoQS50b3RhbFdpZHRoKSxoZWlnaHQ6TWF0aC5hYnMoQS50b3RhbEhlaWdodCksdHJhbnNmb3JtOkEudHJhbnNmb3JtLGZvbnROYW1lOkEuZm9udE5hbWUsaGFzRU9MOkEuaGFzRU9MfX0obCkpLGwuaW5pdGlhbGl6ZWQ9ITEsbC5zdHIubGVuZ3RoPTApfWZ1bmN0aW9uIGooQT0hMSl7Y29uc3QgZT1CLml0ZW1zLmxlbmd0aDswIT09ZSYmKEEmJmU8MTB8fChyLmVucXVldWUoQixlKSxCLml0ZW1zPVtdLEIuc3R5bGVzPU9iamVjdC5jcmVhdGUobnVsbCkpKX1jb25zdCBYPW5ldyBoZztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uIEEobixsKXtjb25zdCBRPWZ1bmN0aW9uKGUpe2ooITApLFByb21pc2UuYWxsKFtlLHIucmVhZHldKS50aGVuKChmdW5jdGlvbigpe3RyeXtBKG4sbCl9Y2F0Y2goQSl7bChBKX19KSxsKX07ZS5lbnN1cmVOb3RUZXJtaW5hdGVkKCksWC5yZXNldCgpO2NvbnN0IEU9e307bGV0IHUsZD1bXTtmb3IoOyEodT1YLmNoZWNrKCkpJiYoZC5sZW5ndGg9MCxFLmFyZ3M9ZCxOLnJlYWQoRSkpOyl7Y29uc3QgQT14O3g9aS5zdGF0ZTtjb25zdCBuPUUuZm47c3dpdGNoKGQ9RS5hcmdzLDB8bil7Y2FzZSB5OnZhciBmPWRbMF0ubmFtZSxNPWRbMV07aWYoeC5mb250JiZmPT09eC5mb250TmFtZSYmTT09PXguZm9udFNpemUpYnJlYWs7cmV0dXJuIFooKSx4LmZvbnROYW1lPWYseC5mb250U2l6ZT1NLHZvaWQgUShZKGYsbnVsbCkpO2Nhc2UgMzk6eC50ZXh0UmlzZT1kWzBdO2JyZWFrO2Nhc2UgMzU6eC50ZXh0SFNjYWxlPWRbMF0vMTAwO2JyZWFrO2Nhc2UgMzY6eC5sZWFkaW5nPWRbMF07YnJlYWs7Y2FzZSA0MDp4LnRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KGRbMF0sZFsxXSkseC50ZXh0TWF0cml4PXgudGV4dExpbmVNYXRyaXguc2xpY2UoKTticmVhaztjYXNlIDQxOngubGVhZGluZz0tZFsxXSx4LnRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KGRbMF0sZFsxXSkseC50ZXh0TWF0cml4PXgudGV4dExpbmVNYXRyaXguc2xpY2UoKTticmVhaztjYXNlIDQzOnguY2FycmlhZ2VSZXR1cm4oKTticmVhaztjYXNlIDQyOnguc2V0VGV4dE1hdHJpeChkWzBdLGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSkseC5zZXRUZXh0TGluZU1hdHJpeChkWzBdLGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSksSCgpO2JyZWFrO2Nhc2UgMzM6eC5jaGFyU3BhY2luZz1kWzBdO2JyZWFrO2Nhc2UgMzQ6eC53b3JkU3BhY2luZz1kWzBdO2JyZWFrO2Nhc2UgMzE6eC50ZXh0TWF0cml4PXMuc2xpY2UoKSx4LnRleHRMaW5lTWF0cml4PXMuc2xpY2UoKTticmVhaztjYXNlIDQ1OmlmKCFpLnN0YXRlLmZvbnQpe20uZW5zdXJlU3RhdGVGb250KGkuc3RhdGUpO2NvbnRpbnVlfWNvbnN0IG49KHguZm9udC52ZXJ0aWNhbD8xOi0xKSp4LmZvbnRTaXplLzFlMyxsPWRbMF07Zm9yKGxldCBBPTAsZT1sLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPWxbQV07aWYoInN0cmluZyI9PXR5cGVvZiBlKWIucHVzaChlKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZSYmMCE9PWUpe2NvbnN0IEE9Yi5qb2luKCIiKTtiLmxlbmd0aD0wLHEoe2NoYXJzOkEsZXh0cmFTcGFjaW5nOmUqbn0pfX1pZihiLmxlbmd0aD4wKXtjb25zdCBBPWIuam9pbigiIik7Yi5sZW5ndGg9MCxxKHtjaGFyczpBLGV4dHJhU3BhY2luZzowfSl9YnJlYWs7Y2FzZSB3OmlmKCFpLnN0YXRlLmZvbnQpe20uZW5zdXJlU3RhdGVGb250KGkuc3RhdGUpO2NvbnRpbnVlfXEoe2NoYXJzOmRbMF0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIDQ2OmlmKCFpLnN0YXRlLmZvbnQpe20uZW5zdXJlU3RhdGVGb250KGkuc3RhdGUpO2NvbnRpbnVlfXguY2FycmlhZ2VSZXR1cm4oKSxxKHtjaGFyczpkWzBdLGV4dHJhU3BhY2luZzowfSk7YnJlYWs7Y2FzZSA0NzppZighaS5zdGF0ZS5mb250KXttLmVuc3VyZVN0YXRlRm9udChpLnN0YXRlKTtjb250aW51ZX14LndvcmRTcGFjaW5nPWRbMF0seC5jaGFyU3BhY2luZz1kWzFdLHguY2FycmlhZ2VSZXR1cm4oKSxxKHtjaGFyczpkWzJdLGV4dHJhU3BhY2luZzowfSk7YnJlYWs7Y2FzZSA2NjpaKCksU3x8KFM9dC5nZXQoIlhPYmplY3QiKXx8UUEuZW1wdHkpO3ZhciBMPWRbMF1pbnN0YW5jZW9mIENBLEo9ZFswXS5uYW1lO2lmKEwmJlIuZ2V0QnlOYW1lKEopKWJyZWFrO3JldHVybiB2b2lkIFEobmV3IFByb21pc2UoKGZ1bmN0aW9uKEEscyl7aWYoIUwpdGhyb3cgbmV3IFcoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBuPVMuZ2V0UmF3KEopO2lmKG4gaW5zdGFuY2VvZiBFQSl7aWYoUi5nZXRCeVJlZihuKSlyZXR1cm4gdm9pZCBBKCk7aWYobS5nbG9iYWxJbWFnZUNhY2hlLmdldERhdGEobixtLnBhZ2VJbmRleCkpcmV0dXJuIHZvaWQgQSgpO249RC5mZXRjaChuKX1pZighKG4gaW5zdGFuY2VvZiB3QSkpdGhyb3cgbmV3IFcoIlhPYmplY3Qgc2hvdWxkIGJlIGEgc3RyZWFtIik7Y29uc3QgQj1uLmRpY3QuZ2V0KCJTdWJ0eXBlIik7aWYoIShCIGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJYT2JqZWN0IHNob3VsZCBoYXZlIGEgTmFtZSBzdWJ0eXBlIik7aWYoIkZvcm0iIT09Qi5uYW1lKXJldHVybiBSLnNldChKLG4uZGljdC5vYmpJZCwhMCksdm9pZCBBKCk7Y29uc3QgbD1pLnN0YXRlLmNsb25lKCksUT1uZXcgbGcobCksRT1LQShuLmRpY3QuZ2V0QXJyYXkoIk1hdHJpeCIpLG51bGwpO0UmJlEudHJhbnNmb3JtKEUpLGooKTtjb25zdCB1PXtlbnF1ZXVlSW52b2tlZDohMSxlbnF1ZXVlKEEsZSl7dGhpcy5lbnF1ZXVlSW52b2tlZD0hMCxyLmVucXVldWUoQSxlKX0sZ2V0IGRlc2lyZWRTaXplKCl7cmV0dXJuIHIuZGVzaXJlZFNpemV9LGdldCByZWFkeSgpe3JldHVybiByLnJlYWR5fX07bS5nZXRUZXh0Q29udGVudCh7c3RyZWFtOm4sdGFzazplLHJlc291cmNlczpuLmRpY3QuZ2V0KCJSZXNvdXJjZXMiKXx8dCxzdGF0ZU1hbmFnZXI6USxpbmNsdWRlTWFya2VkQ29udGVudDphLHNpbms6dSxzZWVuU3R5bGVzOmcsdmlld0JveDpvLGxhbmc6SSxtYXJrZWRDb250ZW50RGF0YTpjLGRpc2FibGVOb3JtYWxpemF0aW9uOmgsa2VlcFdoaXRlU3BhY2U6Q30pLnRoZW4oKGZ1bmN0aW9uKCl7dS5lbnF1ZXVlSW52b2tlZHx8Ui5zZXQoSixuLmRpY3Qub2JqSWQsITApLEEoKX0pLHMpfSkpLmNhdGNoKChmdW5jdGlvbihBKXtpZighKEEgaW5zdGFuY2VvZiBPKSl7aWYoIW0ub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgQTtVKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIFhPYmplY3Q6ICIke0F9Ii5gKX19KSkpO2Nhc2UgOTppZihMPWRbMF1pbnN0YW5jZW9mIENBLEo9ZFswXS5uYW1lLEwmJkcuZ2V0QnlOYW1lKEopKWJyZWFrO3JldHVybiB2b2lkIFEobmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsZSl7aWYoIUwpdGhyb3cgbmV3IFcoIkdTdGF0ZSBtdXN0IGJlIHJlZmVycmVkIHRvIGJ5IG5hbWUuIik7Y29uc3QgaT10LmdldCgiRXh0R1N0YXRlIik7aWYoIShpIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJFeHRHU3RhdGUgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS4iKTtjb25zdCBhPWkuZ2V0KEopO2lmKCEoYSBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiR1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3Qgcz1hLmdldCgiRm9udCIpO2lmKCFzKXJldHVybiBHLnNldChKLGEub2JqSWQsITApLHZvaWQgQSgpO1ooKSx4LmZvbnROYW1lPW51bGwseC5mb250U2l6ZT1zWzFdLFkobnVsbCxzWzBdKS50aGVuKEEsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKEEpe2lmKCEoQSBpbnN0YW5jZW9mIE8pKXtpZighbS5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYGdldFRleHRDb250ZW50IC0gaWdub3JpbmcgRXh0R1N0YXRlOiAiJHtBfSIuYCl9fSkpKTtjYXNlIDY5OlooKSxhJiYoYy5sZXZlbCsrLEIuaXRlbXMucHVzaCh7dHlwZToiYmVnaW5NYXJrZWRDb250ZW50Iix0YWc6ZFswXWluc3RhbmNlb2YgQ0E/ZFswXS5uYW1lOm51bGx9KSk7YnJlYWs7Y2FzZSBrOmlmKFooKSxhKXtjLmxldmVsKys7bGV0IEE9bnVsbDtkWzFdaW5zdGFuY2VvZiBRQSYmKEE9ZFsxXS5nZXQoIk1DSUQiKSksQi5pdGVtcy5wdXNoKHt0eXBlOiJiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyIsaWQ6TnVtYmVyLmlzSW50ZWdlcihBKT9gJHttLmlkRmFjdG9yeS5nZXRQYWdlT2JqSWQoKX1fbWMke0F9YDpudWxsLHRhZzpkWzBdaW5zdGFuY2VvZiBDQT9kWzBdLm5hbWU6bnVsbH0pfWJyZWFrO2Nhc2UgRjppZihaKCksYSl7aWYoMD09PWMubGV2ZWwpYnJlYWs7Yy5sZXZlbC0tLEIuaXRlbXMucHVzaCh7dHlwZToiZW5kTWFya2VkQ29udGVudCJ9KX1icmVhaztjYXNlIHA6IUF8fEEuZm9udD09PXguZm9udCYmQS5mb250U2l6ZT09PXguZm9udFNpemUmJkEuZm9udE5hbWU9PT14LmZvbnROYW1lfHxaKCl9aWYoQi5pdGVtcy5sZW5ndGg+PXIuZGVzaXJlZFNpemUpe3U9ITA7YnJlYWt9fXU/UShvZyk6KFooKSxqKCksbigpKX0pKS5jYXRjaCgoQT0+e2lmKCEoQSBpbnN0YW5jZW9mIE8pKXtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiBVKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIGVycm9ycyBkdXJpbmcgIiR7ZS5uYW1lfSIgdGFzazogIiR7QX0iLmApLFooKSx2b2lkIGooKTt0aHJvdyBBfX0pKX1hc3luYyBleHRyYWN0RGF0YVN0cnVjdHVyZXMoQSxlKXtjb25zdCB0PXRoaXMueHJlZjtsZXQgaTtjb25zdCBhPXRoaXMucmVhZFRvVW5pY29kZShlLnRvVW5pY29kZSk7aWYoZS5jb21wb3NpdGUpe2NvbnN0IHQ9QS5nZXQoIkNJRFN5c3RlbUluZm8iKTt0IGluc3RhbmNlb2YgUUEmJihlLmNpZFN5c3RlbUluZm89e3JlZ2lzdHJ5OmVBKHQuZ2V0KCJSZWdpc3RyeSIpKSxvcmRlcmluZzplQSh0LmdldCgiT3JkZXJpbmciKSksc3VwcGxlbWVudDp0LmdldCgiU3VwcGxlbWVudCIpfSk7dHJ5e2NvbnN0IGU9QS5nZXQoIkNJRFRvR0lETWFwIik7ZSBpbnN0YW5jZW9mIHdBJiYoaT1lLmdldEJ5dGVzKCkpfWNhdGNoKEEpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IEE7VShgZXh0cmFjdERhdGFTdHJ1Y3R1cmVzIC0gaWdub3JpbmcgQ0lEVG9HSURNYXAgZGF0YTogIiR7QX0iLmApfX1jb25zdCBzPVtdO2xldCBuLHI9bnVsbDtpZihBLmhhcygiRW5jb2RpbmciKSl7aWYobj1BLmdldCgiRW5jb2RpbmciKSxuIGluc3RhbmNlb2YgUUEpe2lmKHI9bi5nZXQoIkJhc2VFbmNvZGluZyIpLHI9ciBpbnN0YW5jZW9mIENBP3IubmFtZTpudWxsLG4uaGFzKCJEaWZmZXJlbmNlcyIpKXtjb25zdCBBPW4uZ2V0KCJEaWZmZXJlbmNlcyIpO2xldCBlPTA7Zm9yKGNvbnN0IGkgb2YgQSl7Y29uc3QgQT10LmZldGNoSWZSZWYoaSk7aWYoIm51bWJlciI9PXR5cGVvZiBBKWU9QTtlbHNle2lmKCEoQSBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVyhgSW52YWxpZCBlbnRyeSBpbiAnRGlmZmVyZW5jZXMnIGFycmF5OiAke0F9YCk7c1tlKytdPUEubmFtZX19fX1lbHNlIGlmKG4gaW5zdGFuY2VvZiBDQSlyPW4ubmFtZTtlbHNle2NvbnN0IEE9IkVuY29kaW5nIGlzIG5vdCBhIE5hbWUgbm9yIGEgRGljdCI7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgbmV3IFcoQSk7VShBKX0iTWFjUm9tYW5FbmNvZGluZyIhPT1yJiYiTWFjRXhwZXJ0RW5jb2RpbmciIT09ciYmIldpbkFuc2lFbmNvZGluZyIhPT1yJiYocj1udWxsKX1jb25zdCBnPSFlLmZpbGV8fGUuaXNJbnRlcm5hbEZvbnQsbz1EYSgpW2UubmFtZV07aWYociYmZyYmbyYmKHI9bnVsbCkscillLmRlZmF1bHRFbmNvZGluZz1LaShyKTtlbHNle2NvbnN0IEE9ISEoNCZlLmZsYWdzKSx0PSEhKDMyJmUuZmxhZ3MpO249SmksIlRydWVUeXBlIiE9PWUudHlwZXx8dHx8KG49SGkpLChBfHxvKSYmKG49TGksZyYmKC9TeW1ib2wvaS50ZXN0KGUubmFtZSk/bj1ZaTovRGluZ2JhdHMvaS50ZXN0KGUubmFtZSk/bj12aTovV2luZ2RpbmdzL2kudGVzdChlLm5hbWUpJiYobj1IaSkpKSxlLmRlZmF1bHRFbmNvZGluZz1ufWUuZGlmZmVyZW5jZXM9cyxlLmJhc2VFbmNvZGluZ05hbWU9cixlLmhhc0VuY29kaW5nPSEhcnx8cy5sZW5ndGg+MCxlLmRpY3Q9QSxlLnRvVW5pY29kZT1hd2FpdCBhO2NvbnN0IEk9YXdhaXQgdGhpcy5idWlsZFRvVW5pY29kZShlKTtyZXR1cm4gZS50b1VuaWNvZGU9SSxpJiYoZS5jaWRUb0dpZE1hcD10aGlzLnJlYWRDaWRUb0dpZE1hcChpLEkpKSxlfV9zaW1wbGVGb250VG9Vbmljb2RlKEEsZT0hMSl7TCghQS5jb21wb3NpdGUsIk11c3QgYmUgYSBzaW1wbGUgZm9udC4iKTtjb25zdCB0PVtdLGk9QS5kZWZhdWx0RW5jb2Rpbmcuc2xpY2UoKSxhPUEuYmFzZUVuY29kaW5nTmFtZSxzPUEuZGlmZmVyZW5jZXM7Zm9yKGNvbnN0IEEgaW4gcyl7Y29uc3QgZT1zW0FdOyIubm90ZGVmIiE9PWUmJihpW0FdPWUpfWNvbnN0IG49cmEoKTtmb3IoY29uc3QgcyBpbiBpKXtsZXQgcj1pW3NdO2lmKCIiPT09ciljb250aW51ZTtsZXQgZz1uW3JdO2lmKHZvaWQgMCE9PWcpe3Rbc109U3RyaW5nLmZyb21DaGFyQ29kZShnKTtjb250aW51ZX1sZXQgbz0wO3N3aXRjaChyWzBdKXtjYXNlIkciOjM9PT1yLmxlbmd0aCYmKG89cGFyc2VJbnQoci5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlImciOjU9PT1yLmxlbmd0aCYmKG89cGFyc2VJbnQoci5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlIkMiOmNhc2UiYyI6aWYoci5sZW5ndGg+PTMmJnIubGVuZ3RoPD00KXtjb25zdCB0PXIuc3Vic3RyaW5nKDEpO2lmKGUpe289cGFyc2VJbnQodCwxNik7YnJlYWt9aWYobz0rdCxOdW1iZXIuaXNOYU4obykmJk51bWJlci5pc0ludGVnZXIocGFyc2VJbnQodCwxNikpKXJldHVybiB0aGlzLl9zaW1wbGVGb250VG9Vbmljb2RlKEEsITApfWJyZWFrO2Nhc2UidSI6Zz1JYShyLG4pLC0xIT09ZyYmKG89Zyk7YnJlYWs7ZGVmYXVsdDpzd2l0Y2gocil7Y2FzZSJmX2giOmNhc2UiZl90IjpjYXNlIlRfaCI6dFtzXT1yLnJlcGxhY2VBbGwoIl8iLCIiKTtjb250aW51ZX19aWYobz4wJiZvPD0xMTE0MTExJiZOdW1iZXIuaXNJbnRlZ2VyKG8pKXtpZihhJiZvPT09K3Mpe2NvbnN0IEE9S2koYSk7aWYoQSYmKHI9QVtzXSkpe3Rbc109U3RyaW5nLmZyb21DaGFyQ29kZShuW3JdKTtjb250aW51ZX19dFtzXT1TdHJpbmcuZnJvbUNvZGVQb2ludChvKX19cmV0dXJuIHR9YXN5bmMgYnVpbGRUb1VuaWNvZGUoQSl7aWYoQS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcD1BLnRvVW5pY29kZT8ubGVuZ3RoPjAsQS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm4hQS5jb21wb3NpdGUmJkEuaGFzRW5jb2RpbmcmJihBLmZhbGxiYWNrVG9Vbmljb2RlPXRoaXMuX3NpbXBsZUZvbnRUb1VuaWNvZGUoQSkpLEEudG9Vbmljb2RlO2lmKCFBLmNvbXBvc2l0ZSlyZXR1cm4gbmV3IEdhKHRoaXMuX3NpbXBsZUZvbnRUb1VuaWNvZGUoQSkpO2lmKEEuY29tcG9zaXRlJiYoQS5jTWFwLmJ1aWx0SW5DTWFwJiYhKEEuY01hcCBpbnN0YW5jZW9mIFFpKXx8IkFkb2JlIj09PUEuY2lkU3lzdGVtSW5mbz8ucmVnaXN0cnkmJigiR0IxIj09PUEuY2lkU3lzdGVtSW5mby5vcmRlcmluZ3x8IkNOUzEiPT09QS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiSmFwYW4xIj09PUEuY2lkU3lzdGVtSW5mby5vcmRlcmluZ3x8IktvcmVhMSI9PT1BLmNpZFN5c3RlbUluZm8ub3JkZXJpbmcpKSl7Y29uc3R7cmVnaXN0cnk6ZSxvcmRlcmluZzp0fT1BLmNpZFN5c3RlbUluZm8saT1DQS5nZXQoYCR7ZX0tJHt0fS1VQ1MyYCksYT1hd2FpdCBSaS5jcmVhdGUoe2VuY29kaW5nOmksZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSkscz1bXSxuPVtdO3JldHVybiBBLmNNYXAuZm9yRWFjaCgoZnVuY3Rpb24oQSxlKXtpZihlPjY1NTM1KXRocm93IG5ldyBXKCJNYXggc2l6ZSBvZiBDSUQgaXMgNjUsNTM1Iik7Y29uc3QgdD1hLmxvb2t1cChlKTtpZih0KXtuLmxlbmd0aD0wO2ZvcihsZXQgQT0wLGU9dC5sZW5ndGg7QTxlO0ErPTIpbi5wdXNoKCh0LmNoYXJDb2RlQXQoQSk8PDgpK3QuY2hhckNvZGVBdChBKzEpKTtzW0FdPVN0cmluZy5mcm9tQ2hhckNvZGUoLi4ubil9fSkpLG5ldyBHYShzKX1yZXR1cm4gbmV3IE5hKEEuZmlyc3RDaGFyLEEubGFzdENoYXIpfWFzeW5jIHJlYWRUb1VuaWNvZGUoQSl7aWYoIUEpcmV0dXJuIG51bGw7aWYoQSBpbnN0YW5jZW9mIENBKXtjb25zdCBlPWF3YWl0IFJpLmNyZWF0ZSh7ZW5jb2Rpbmc6QSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtyZXR1cm4gZSBpbnN0YW5jZW9mIFFpP25ldyBOYSgwLDY1NTM1KTpuZXcgR2EoZS5nZXRNYXAoKSl9aWYoQSBpbnN0YW5jZW9mIHdBKXRyeXtjb25zdCBlPWF3YWl0IFJpLmNyZWF0ZSh7ZW5jb2Rpbmc6QSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtpZihlIGluc3RhbmNlb2YgUWkpcmV0dXJuIG5ldyBOYSgwLDY1NTM1KTtjb25zdCB0PW5ldyBBcnJheShlLmxlbmd0aCk7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oQSxlKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIHZvaWQodFtBXT1TdHJpbmcuZnJvbUNvZGVQb2ludChlKSk7ZS5sZW5ndGglMiE9MCYmKGU9IlwwIitlKTtjb25zdCBpPVtdO2ZvcihsZXQgQT0wO0E8ZS5sZW5ndGg7QSs9Mil7Y29uc3QgdD1lLmNoYXJDb2RlQXQoQSk8PDh8ZS5jaGFyQ29kZUF0KEErMSk7aWYoNTUyOTYhPSg2MzQ4OCZ0KSl7aS5wdXNoKHQpO2NvbnRpbnVlfUErPTI7Y29uc3QgYT1lLmNoYXJDb2RlQXQoQSk8PDh8ZS5jaGFyQ29kZUF0KEErMSk7aS5wdXNoKCgoMTAyMyZ0KTw8MTApKygxMDIzJmEpKzY1NTM2KX10W0FdPVN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmkpfSkpLG5ldyBHYSh0KX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2YgTylyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiBVKGByZWFkVG9Vbmljb2RlIC0gaWdub3JpbmcgVG9Vbmljb2RlIGRhdGE6ICIke0F9Ii5gKSxudWxsO3Rocm93IEF9cmV0dXJuIG51bGx9cmVhZENpZFRvR2lkTWFwKEEsZSl7Y29uc3QgdD1bXTtmb3IobGV0IGk9MCxhPUEubGVuZ3RoO2k8YTtpKyspe2NvbnN0IGE9QVtpKytdPDw4fEFbaV0scz1pPj4xOygwIT09YXx8ZS5oYXMocykpJiYodFtzXT1hKX1yZXR1cm4gdH1leHRyYWN0V2lkdGhzKEEsZSx0KXtjb25zdCBpPXRoaXMueHJlZjtsZXQgYT1bXSxzPTA7Y29uc3Qgbj1bXTtsZXQgcjtpZih0LmNvbXBvc2l0ZSl7Y29uc3QgZT1BLmdldCgiRFciKTtzPSJudW1iZXIiPT10eXBlb2YgZT9NYXRoLmNlaWwoZSk6MWUzO2NvbnN0IGc9QS5nZXQoIlciKTtpZihBcnJheS5pc0FycmF5KGcpKWZvcihsZXQgQT0wLGU9Zy5sZW5ndGg7QTxlO0ErKyl7bGV0IGU9aS5mZXRjaElmUmVmKGdbQSsrXSk7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpYnJlYWs7Y29uc3QgdD1pLmZldGNoSWZSZWYoZ1tBXSk7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgQSBvZiB0KXtjb25zdCB0PWkuZmV0Y2hJZlJlZihBKTsibnVtYmVyIj09dHlwZW9mIHQmJihhW2VdPXQpLGUrK31lbHNle2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpKWJyZWFrO3tjb25zdCBzPWkuZmV0Y2hJZlJlZihnWysrQV0pO2lmKCJudW1iZXIiIT10eXBlb2Ygcyljb250aW51ZTtmb3IobGV0IEE9ZTtBPD10O0ErKylhW0FdPXN9fX1pZih0LnZlcnRpY2FsKXtjb25zdCBlPUEuZ2V0QXJyYXkoIkRXMiIpO2xldCB0PXZBKGUsMik/ZTpbODgwLC0xZTNdO2lmKHI9W3RbMV0sLjUqcyx0WzBdXSx0PUEuZ2V0KCJXMiIpLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBBPTAsZT10Lmxlbmd0aDtBPGU7QSsrKXtsZXQgZT1pLmZldGNoSWZSZWYodFtBKytdKTtpZighTnVtYmVyLmlzSW50ZWdlcihlKSlicmVhaztjb25zdCBhPWkuZmV0Y2hJZlJlZih0W0FdKTtpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgQT0wLHQ9YS5sZW5ndGg7QTx0O0ErKyl7Y29uc3QgdD1baS5mZXRjaElmUmVmKGFbQSsrXSksaS5mZXRjaElmUmVmKGFbQSsrXSksaS5mZXRjaElmUmVmKGFbQV0pXTt2QSh0LG51bGwpJiYobltlXT10KSxlKyt9ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcihhKSlicmVhazt7Y29uc3Qgcz1baS5mZXRjaElmUmVmKHRbKytBXSksaS5mZXRjaElmUmVmKHRbKytBXSksaS5mZXRjaElmUmVmKHRbKytBXSldO2lmKCF2QShzLG51bGwpKWNvbnRpbnVlO2ZvcihsZXQgQT1lO0E8PWE7QSsrKW5bQV09c319fX19ZWxzZXtjb25zdCBuPUEuZ2V0KCJXaWR0aHMiKTtpZihBcnJheS5pc0FycmF5KG4pKXtsZXQgQT10LmZpcnN0Q2hhcjtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCB0PWkuZmV0Y2hJZlJlZihlKTsibnVtYmVyIj09dHlwZW9mIHQmJihhW0FdPXQpLEErK31jb25zdCByPWUuZ2V0KCJNaXNzaW5nV2lkdGgiKTtzPSJudW1iZXIiPT10eXBlb2Ygcj9yOjB9ZWxzZXtjb25zdCBlPUEuZ2V0KCJCYXNlRm9udCIpO2lmKGUgaW5zdGFuY2VvZiBDQSl7Y29uc3QgQT10aGlzLmdldEJhc2VGb250TWV0cmljcyhlLm5hbWUpO2E9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChBLndpZHRocyx0KSxzPUEuZGVmYXVsdFdpZHRofX19bGV0IGc9ITAsbz1zO2Zvcihjb25zdCBBIGluIGEpe2NvbnN0IGU9YVtBXTtpZihlKWlmKG8pe2lmKG8hPT1lKXtnPSExO2JyZWFrfX1lbHNlIG89ZX1nP3QuZmxhZ3N8PTE6dC5mbGFncyY9LTIsdC5kZWZhdWx0V2lkdGg9cyx0LndpZHRocz1hLHQuZGVmYXVsdFZNZXRyaWNzPXIsdC52bWV0cmljcz1ufWlzU2VyaWZGb250KEEpe2NvbnN0IGU9QS5zcGxpdCgiLSIsMSlbMF07cmV0dXJuIGUgaW4gd2EoKXx8L3NlcmlmL2dpLnRlc3QoZSl9Z2V0QmFzZUZvbnRNZXRyaWNzKEEpe2xldCBlPTAsdD1PYmplY3QuY3JlYXRlKG51bGwpLGk9ITEsYT1wYSgpW0FdfHxBO2NvbnN0IHM9X2EoKTthIGluIHN8fChhPXRoaXMuaXNTZXJpZkZvbnQoQSk/IlRpbWVzLVJvbWFuIjoiSGVsdmV0aWNhIik7Y29uc3Qgbj1zW2FdO3JldHVybiJudW1iZXIiPT10eXBlb2Ygbj8oZT1uLGk9ITApOnQ9bigpLHtkZWZhdWx0V2lkdGg6ZSxtb25vc3BhY2U6aSx3aWR0aHM6dH19YnVpbGRDaGFyQ29kZVRvV2lkdGgoQSxlKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCksaT1lLmRpZmZlcmVuY2VzLGE9ZS5kZWZhdWx0RW5jb2Rpbmc7Zm9yKGxldCBlPTA7ZTwyNTY7ZSsrKWUgaW4gaSYmQVtpW2VdXT90W2VdPUFbaVtlXV06ZSBpbiBhJiZBW2FbZV1dJiYodFtlXT1BW2FbZV1dKTtyZXR1cm4gdH1wcmVFdmFsdWF0ZUZvbnQoQSl7Y29uc3QgZT1BO2xldCB0PUEuZ2V0KCJTdWJ0eXBlIik7aWYoISh0IGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJpbnZhbGlkIGZvbnQgU3VidHlwZSIpO2xldCBpLGE9ITE7aWYoIlR5cGUwIj09PXQubmFtZSl7Y29uc3QgZT1BLmdldCgiRGVzY2VuZGFudEZvbnRzIik7aWYoIWUpdGhyb3cgbmV3IFcoIkRlc2NlbmRhbnQgZm9udHMgYXJlIG5vdCBzcGVjaWZpZWQiKTtpZighKChBPUFycmF5LmlzQXJyYXkoZSk/dGhpcy54cmVmLmZldGNoSWZSZWYoZVswXSk6ZSlpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiRGVzY2VuZGFudCBmb250IGlzIG5vdCBhIGRpY3Rpb25hcnkuIik7aWYodD1BLmdldCgiU3VidHlwZSIpLCEodCBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVygiaW52YWxpZCBmb250IFN1YnR5cGUiKTthPSEwfWxldCBzPUEuZ2V0KCJGaXJzdENoYXIiKTtOdW1iZXIuaXNJbnRlZ2VyKHMpfHwocz0wKTtsZXQgbj1BLmdldCgiTGFzdENoYXIiKTtOdW1iZXIuaXNJbnRlZ2VyKG4pfHwobj1hPzY1NTM1OjI1NSk7Y29uc3Qgcj1BLmdldCgiRm9udERlc2NyaXB0b3IiKSxnPUEuZ2V0KCJUb1VuaWNvZGUiKXx8ZS5nZXQoIlRvVW5pY29kZSIpO2lmKHIpe2k9bmV3ICRyO2NvbnN0IHQ9ZS5nZXRSYXcoIkVuY29kaW5nIik7aWYodCBpbnN0YW5jZW9mIENBKWkudXBkYXRlKHQubmFtZSk7ZWxzZSBpZih0IGluc3RhbmNlb2YgRUEpaS51cGRhdGUodC50b1N0cmluZygpKTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBRQSlmb3IoY29uc3QgQSBvZiB0LmdldFJhd1ZhbHVlcygpKWlmKEEgaW5zdGFuY2VvZiBDQSlpLnVwZGF0ZShBLm5hbWUpO2Vsc2UgaWYoQSBpbnN0YW5jZW9mIEVBKWkudXBkYXRlKEEudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KEEpKXtjb25zdCBlPUEubGVuZ3RoLHQ9bmV3IEFycmF5KGUpO2ZvcihsZXQgaT0wO2k8ZTtpKyspe2NvbnN0IGU9QVtpXTtlIGluc3RhbmNlb2YgQ0E/dFtpXT1lLm5hbWU6KCJudW1iZXIiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIEVBKSYmKHRbaV09ZS50b1N0cmluZygpKX1pLnVwZGF0ZSh0LmpvaW4oKSl9aWYoaS51cGRhdGUoYCR7c30tJHtufWApLGcgaW5zdGFuY2VvZiB3QSl7Y29uc3QgQT1nLnN0cnx8ZyxlPUEuYnVmZmVyP25ldyBVaW50OEFycmF5KEEuYnVmZmVyLmJ1ZmZlciwwLEEuYnVmZmVyTGVuZ3RoKTpuZXcgVWludDhBcnJheShBLmJ5dGVzLmJ1ZmZlcixBLnN0YXJ0LEEuZW5kLUEuc3RhcnQpO2kudXBkYXRlKGUpfWVsc2UgZyBpbnN0YW5jZW9mIENBJiZpLnVwZGF0ZShnLm5hbWUpO2NvbnN0IHI9QS5nZXQoIldpZHRocyIpfHxlLmdldCgiV2lkdGhzIik7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiByKSgibnVtYmVyIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBFQSkmJkEucHVzaChlLnRvU3RyaW5nKCkpO2kudXBkYXRlKEEuam9pbigpKX1pZihhKXtpLnVwZGF0ZSgiY29tcG9zaXRlRm9udCIpO2NvbnN0IHQ9QS5nZXQoIlciKXx8ZS5nZXQoIlciKTtpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBBPVtdO2Zvcihjb25zdCBlIG9mIHQpaWYoIm51bWJlciI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgRUEpQS5wdXNoKGUudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCB0PVtdO2Zvcihjb25zdCBBIG9mIGUpKCJudW1iZXIiPT10eXBlb2YgQXx8QSBpbnN0YW5jZW9mIEVBKSYmdC5wdXNoKEEudG9TdHJpbmcoKSk7QS5wdXNoKGBbJHt0LmpvaW4oKX1dYCl9aS51cGRhdGUoQS5qb2luKCkpfWNvbnN0IGE9QS5nZXRSYXcoIkNJRFRvR0lETWFwIil8fGUuZ2V0UmF3KCJDSURUb0dJRE1hcCIpO2EgaW5zdGFuY2VvZiBDQT9pLnVwZGF0ZShhLm5hbWUpOmEgaW5zdGFuY2VvZiBFQT9pLnVwZGF0ZShhLnRvU3RyaW5nKCkpOmEgaW5zdGFuY2VvZiB3QSYmaS51cGRhdGUoYS5wZWVrQnl0ZXMoKSl9fXJldHVybntkZXNjcmlwdG9yOnIsZGljdDpBLGJhc2VEaWN0OmUsY29tcG9zaXRlOmEsdHlwZTp0Lm5hbWUsZmlyc3RDaGFyOnMsbGFzdENoYXI6bix0b1VuaWNvZGU6ZyxoYXNoOmk/aS5oZXhkaWdlc3QoKToiIn19YXN5bmMgdHJhbnNsYXRlRm9udCh7ZGVzY3JpcHRvcjpBLGRpY3Q6ZSxiYXNlRGljdDp0LGNvbXBvc2l0ZTppLHR5cGU6YSxmaXJzdENoYXI6cyxsYXN0Q2hhcjpyLHRvVW5pY29kZTpnLGNzc0ZvbnRJbmZvOm99KXtjb25zdCBJPSJUeXBlMyI9PT1hO2lmKCFBKXtpZighSSl7bGV0IEE9ZS5nZXQoIkJhc2VGb250Iik7aWYoIShBIGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJCYXNlIGZvbnQgaXMgbm90IHNwZWNpZmllZCIpO0E9QS5uYW1lLnJlcGxhY2VBbGwoL1ssX10vZywiLSIpO2NvbnN0IGk9dGhpcy5nZXRCYXNlRm9udE1ldHJpY3MoQSksbj1BLnNwbGl0KCItIiwxKVswXSxvPSh0aGlzLmlzU2VyaWZGb250KG4pPzI6MCl8KGkubW9ub3NwYWNlPzE6MCl8KERhKClbbl0/NDozMiksYz17dHlwZTphLG5hbWU6QSxsb2FkZWROYW1lOnQubG9hZGVkTmFtZSxzeXN0ZW1Gb250SW5mbzpudWxsLHdpZHRoczppLndpZHRocyxkZWZhdWx0V2lkdGg6aS5kZWZhdWx0V2lkdGgsaXNTaW11bGF0ZWRGbGFnczohMCxmbGFnczpvLGZpcnN0Q2hhcjpzLGxhc3RDaGFyOnIsdG9Vbmljb2RlOmcseEhlaWdodDowLGNhcEhlaWdodDowLGl0YWxpY0FuZ2xlOjAsaXNUeXBlM0ZvbnQ6SX0saD1lLmdldCgiV2lkdGhzIiksQz1TYShBKTtsZXQgQj1udWxsO0MmJihCPWF3YWl0IHRoaXMuZmV0Y2hTdGFuZGFyZEZvbnREYXRhKEMpLGMuaXNJbnRlcm5hbEZvbnQ9ISFCKSwhYy5pc0ludGVybmFsRm9udCYmdGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYoYy5zeXN0ZW1Gb250SW5mbz1qcih0aGlzLnN5c3RlbUZvbnRDYWNoZSx0aGlzLmlkRmFjdG9yeSx0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybCxBLEMsYSkpO2NvbnN0IGw9YXdhaXQgdGhpcy5leHRyYWN0RGF0YVN0cnVjdHVyZXMoZSxjKTtpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCBBPVtdO2xldCBlPXM7Zm9yKGNvbnN0IHQgb2YgaCl7Y29uc3QgaT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0KTsibnVtYmVyIj09dHlwZW9mIGkmJihBW2VdPWkpLGUrK31sLndpZHRocz1BfWVsc2UgbC53aWR0aHM9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChpLndpZHRocyxsKTtyZXR1cm4gbmV3IF9zKEEsQixsKX17Y29uc3QgdD1UQShlLmdldEFycmF5KCJGb250QkJveCIpLFswLDAsMCwwXSk7KEE9bmV3IFFBKG51bGwpKS5zZXQoIkZvbnROYW1lIixDQS5nZXQoYSkpLEEuc2V0KCJGb250QkJveCIsdCl9fWxldCBjPUEuZ2V0KCJGb250TmFtZSIpLGg9ZS5nZXQoIkJhc2VGb250Iik7InN0cmluZyI9PXR5cGVvZiBjJiYoYz1DQS5nZXQoYykpLCJzdHJpbmciPT10eXBlb2YgaCYmKGg9Q0EuZ2V0KGgpKTtjb25zdCBDPWM/Lm5hbWUsQj1oPy5uYW1lO2lmKEl8fEM9PT1CfHwoeChgVGhlIEZvbnREZXNjcmlwdG9yJ3MgRm9udE5hbWUgaXMgIiR7Q30iIGJ1dCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIEZvbnQncyBCYXNlRm9udCAiJHtCfSIuYCksQyYmQiYmKEIuc3RhcnRzV2l0aChDKXx8IVJhKEMpJiZSYShCKSkmJihjPW51bGwpKSxjfHw9aCwhKGMgaW5zdGFuY2VvZiBDQSkpdGhyb3cgbmV3IFcoImludmFsaWQgZm9udCBuYW1lIik7bGV0IGwsUSxFLHUsZDt0cnl7bD1BLmdldCgiRm9udEZpbGUiLCJGb250RmlsZTIiLCJGb250RmlsZTMiKX1jYXRjaChBKXtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYHRyYW5zbGF0ZUZvbnQgLSBmZXRjaGluZyAiJHtjLm5hbWV9IiBmb250IGZpbGU6ICIke0F9Ii5gKSxsPW5ldyBJZX1sZXQgZj0hMSxwPW51bGwsbT1udWxsO2lmKGwpe2lmKGwuZGljdCl7Y29uc3QgQT1sLmRpY3QuZ2V0KCJTdWJ0eXBlIik7QSBpbnN0YW5jZW9mIENBJiYoUT1BLm5hbWUpLEU9bC5kaWN0LmdldCgiTGVuZ3RoMSIpLHU9bC5kaWN0LmdldCgiTGVuZ3RoMiIpLGQ9bC5kaWN0LmdldCgiTGVuZ3RoMyIpfX1lbHNlIGlmKG8pe2NvbnN0IEE9Vm4oYy5uYW1lKTtBJiYoby5mb250RmFtaWx5PWAke28uZm9udEZhbWlseX0tUGRmSlMtWEZBYCxvLm1ldHJpY3M9QS5tZXRyaWNzfHxudWxsLHA9QS5mYWN0b3JzfHxudWxsLGw9YXdhaXQgdGhpcy5mZXRjaFN0YW5kYXJkRm9udERhdGEoQS5uYW1lKSxmPSEhbCx0PWU9X24oYy5uYW1lKSxpPSEwKX1lbHNlIGlmKCFJKXtjb25zdCBBPVNhKGMubmFtZSk7QSYmKGw9YXdhaXQgdGhpcy5mZXRjaFN0YW5kYXJkRm9udERhdGEoQSksZj0hIWwpLCFmJiZ0aGlzLm9wdGlvbnMudXNlU3lzdGVtRm9udHMmJihtPWpyKHRoaXMuc3lzdGVtRm9udENhY2hlLHRoaXMuaWRGYWN0b3J5LHRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsLGMubmFtZSxBLGEpKX1jb25zdCB5PUtBKGUuZ2V0QXJyYXkoIkZvbnRNYXRyaXgiKSxuKSx3PVRBKEEuZ2V0QXJyYXkoIkZvbnRCQm94Iil8fGUuZ2V0QXJyYXkoIkZvbnRCQm94Iiksdm9pZCAwKTtsZXQgRD1BLmdldCgiQXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBEJiYoRD12b2lkIDApO2xldCBiPUEuZ2V0KCJEZXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBiJiYoYj12b2lkIDApO2xldCBrPUEuZ2V0KCJYSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBrJiYoaz0wKTtsZXQgRj1BLmdldCgiQ2FwSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBGJiYoRj0wKTtsZXQgUz1BLmdldCgiRmxhZ3MiKTtOdW1iZXIuaXNJbnRlZ2VyKFMpfHwoUz0wKTtsZXQgUj1BLmdldCgiSXRhbGljQW5nbGUiKTsibnVtYmVyIiE9dHlwZW9mIFImJihSPTApO2NvbnN0IEc9e3R5cGU6YSxuYW1lOmMubmFtZSxzdWJ0eXBlOlEsZmlsZTpsLGxlbmd0aDE6RSxsZW5ndGgyOnUsbGVuZ3RoMzpkLGlzSW50ZXJuYWxGb250OmYsbG9hZGVkTmFtZTp0LmxvYWRlZE5hbWUsY29tcG9zaXRlOmksZml4ZWRQaXRjaDohMSxmb250TWF0cml4OnksZmlyc3RDaGFyOnMsbGFzdENoYXI6cix0b1VuaWNvZGU6ZyxiYm94OncsYXNjZW50OkQsZGVzY2VudDpiLHhIZWlnaHQ6ayxjYXBIZWlnaHQ6RixmbGFnczpTLGl0YWxpY0FuZ2xlOlIsaXNUeXBlM0ZvbnQ6SSxjc3NGb250SW5mbzpvLHNjYWxlRmFjdG9yczpwLHN5c3RlbUZvbnRJbmZvOm19O2lmKGkpe2NvbnN0IEE9dC5nZXQoIkVuY29kaW5nIik7QSBpbnN0YW5jZW9mIENBJiYoRy5jaWRFbmNvZGluZz1BLm5hbWUpO2NvbnN0IGU9YXdhaXQgUmkuY3JlYXRlKHtlbmNvZGluZzpBLGZldGNoQnVpbHRJbkNNYXA6dGhpcy5fZmV0Y2hCdWlsdEluQ01hcEJvdW5kLHVzZUNNYXA6bnVsbH0pO0cuY01hcD1lLEcudmVydGljYWw9Ry5jTWFwLnZlcnRpY2FsfWNvbnN0IE49YXdhaXQgdGhpcy5leHRyYWN0RGF0YVN0cnVjdHVyZXMoZSxHKTtyZXR1cm4gdGhpcy5leHRyYWN0V2lkdGhzKGUsQSxOKSxuZXcgX3MoYy5uYW1lLGwsTil9c3RhdGljIGJ1aWxkRm9udFBhdGhzKEEsZSx0LGkpe2Z1bmN0aW9uIGEoZSl7Y29uc3QgYT1gJHtBLmxvYWRlZE5hbWV9X3BhdGhfJHtlfWA7dHJ5e2lmKEEucmVuZGVyZXIuaGFzQnVpbHRQYXRoKGUpKXJldHVybjt0LnNlbmQoImNvbW1vbm9iaiIsW2EsIkZvbnRQYXRoIixBLnJlbmRlcmVyLmdldFBhdGhKcyhlKV0pfWNhdGNoKEEpe2lmKGkuaWdub3JlRXJyb3JzKXJldHVybiB2b2lkIFUoYGJ1aWxkRm9udFBhdGhzIC0gaWdub3JpbmcgJHthfSBnbHlwaDogIiR7QX0iLmApO3Rocm93IEF9fWZvcihjb25zdCBBIG9mIGUpe2EoQS5mb250Q2hhcik7Y29uc3QgZT1BLmFjY2VudDtlPy5mb250Q2hhciYmYShlLmZvbnRDaGFyKX19c3RhdGljIGdldCBmYWxsYmFja0ZvbnREaWN0KCl7Y29uc3QgQT1uZXcgUUE7cmV0dXJuIEEuc2V0KCJCYXNlRm9udCIsQ0EuZ2V0KCJIZWx2ZXRpY2EiKSksQS5zZXQoIlR5cGUiLENBLmdldCgiRmFsbGJhY2tUeXBlIikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZhbGxiYWNrVHlwZSIpKSxBLnNldCgiRW5jb2RpbmciLENBLmdldCgiV2luQW5zaUVuY29kaW5nIikpLEgodGhpcywiZmFsbGJhY2tGb250RGljdCIsQSl9fWNsYXNzIEJne2NvbnN0cnVjdG9yKHtsb2FkZWROYW1lOkEsZm9udDplLGRpY3Q6dCxldmFsdWF0b3JPcHRpb25zOml9KXt0aGlzLmxvYWRlZE5hbWU9QSx0aGlzLmZvbnQ9ZSx0aGlzLmRpY3Q9dCx0aGlzLl9ldmFsdWF0b3JPcHRpb25zPWl8fGdnLHRoaXMudHlwZTNMb2FkZWQ9bnVsbCx0aGlzLnR5cGUzRGVwZW5kZW5jaWVzPWUuaXNUeXBlM0ZvbnQ/bmV3IFNldDpudWxsLHRoaXMuc2VudD0hMX1zZW5kKEEpe3RoaXMuc2VudHx8KHRoaXMuc2VudD0hMCxBLnNlbmQoImNvbW1vbm9iaiIsW3RoaXMubG9hZGVkTmFtZSwiRm9udCIsdGhpcy5mb250LmV4cG9ydERhdGEodGhpcy5fZXZhbHVhdG9yT3B0aW9ucy5mb250RXh0cmFQcm9wZXJ0aWVzKV0pKX1mYWxsYmFjayhBKXt0aGlzLmZvbnQuZGF0YSYmKHRoaXMuZm9udC5kaXNhYmxlRm9udEZhY2U9ITAsQ2cuYnVpbGRGb250UGF0aHModGhpcy5mb250LHRoaXMuZm9udC5nbHlwaENhY2hlVmFsdWVzLEEsdGhpcy5fZXZhbHVhdG9yT3B0aW9ucykpfWxvYWRUeXBlM0RhdGEoQSxlLHQpe2lmKHRoaXMudHlwZTNMb2FkZWQpcmV0dXJuIHRoaXMudHlwZTNMb2FkZWQ7aWYoIXRoaXMuZm9udC5pc1R5cGUzRm9udCl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYSBUeXBlMyBmb250LiIpO2NvbnN0IGk9QS5jbG9uZSh7aWdub3JlRXJyb3JzOiExfSksYT1uZXcgdUEoQS50eXBlM0ZvbnRSZWZzKTt0aGlzLmRpY3Qub2JqSWQmJiFhLmhhcyh0aGlzLmRpY3Qub2JqSWQpJiZhLnB1dCh0aGlzLmRpY3Qub2JqSWQpLGkudHlwZTNGb250UmVmcz1hO2NvbnN0IHM9dGhpcy5mb250LG49dGhpcy50eXBlM0RlcGVuZGVuY2llcztsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtjb25zdCBnPXRoaXMuZGljdC5nZXQoIkNoYXJQcm9jcyIpLG89dGhpcy5kaWN0LmdldCgiUmVzb3VyY2VzIil8fGUsST1PYmplY3QuY3JlYXRlKG51bGwpLGM9JC5ub3JtYWxpemVSZWN0KHMuYmJveHx8WzAsMCwwLDBdKSxoPWNbMl0tY1swXSxDPWNbM10tY1sxXSxCPU1hdGguaHlwb3QoaCxDKTtmb3IoY29uc3QgQSBvZiBnLmdldEtleXMoKSlyPXIudGhlbigoKCk9Pntjb25zdCBlPWcuZ2V0KEEpLGE9bmV3IGFnO3JldHVybiBpLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmUsdGFzazp0LHJlc291cmNlczpvLG9wZXJhdG9yTGlzdDphfSkudGhlbigoKCk9Pns0OT09PWEuZm5BcnJheVswXSYmdGhpcy5fcmVtb3ZlVHlwZTNDb2xvck9wZXJhdG9ycyhhLEIpLElbQV09YS5nZXRJUigpO2Zvcihjb25zdCBBIG9mIGEuZGVwZW5kZW5jaWVzKW4uYWRkKEEpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtVKGBUeXBlMyBmb250IHJlc291cmNlICIke0F9IiBpcyBub3QgYXZhaWxhYmxlLmApO2NvbnN0IHQ9bmV3IGFnO0lbQV09dC5nZXRJUigpfSkpfSkpO3JldHVybiB0aGlzLnR5cGUzTG9hZGVkPXIudGhlbigoKCk9PntzLmNoYXJQcm9jT3BlcmF0b3JMaXN0PUksdGhpcy5fYmJveCYmKHMuaXNDaGFyQkJveD0hMCxzLmJib3g9dGhpcy5fYmJveCl9KSksdGhpcy50eXBlM0xvYWRlZH1fcmVtb3ZlVHlwZTNDb2xvck9wZXJhdG9ycyhBLGU9TmFOKXtjb25zdCB0PSQubm9ybWFsaXplUmVjdChBLmFyZ3NBcnJheVswXS5zbGljZSgyKSksaT10WzJdLXRbMF0sYT10WzNdLXRbMV0scz1NYXRoLmh5cG90KGksYSk7MD09PWl8fDA9PT1hPyhBLmZuQXJyYXkuc3BsaWNlKDAsMSksQS5hcmdzQXJyYXkuc3BsaWNlKDAsMSkpOigwPT09ZXx8TWF0aC5yb3VuZChzL2UpPj0xMCkmJih0aGlzLl9iYm94fHwodGhpcy5fYmJveD1bMS8wLDEvMCwtMS8wLC0xLzBdKSx0aGlzLl9iYm94WzBdPU1hdGgubWluKHRoaXMuX2Jib3hbMF0sdFswXSksdGhpcy5fYmJveFsxXT1NYXRoLm1pbih0aGlzLl9iYm94WzFdLHRbMV0pLHRoaXMuX2Jib3hbMl09TWF0aC5tYXgodGhpcy5fYmJveFsyXSx0WzJdKSx0aGlzLl9iYm94WzNdPU1hdGgubWF4KHRoaXMuX2Jib3hbM10sdFszXSkpO2xldCBuPTAscj1BLmxlbmd0aDtmb3IoO248cjspe3N3aXRjaChBLmZuQXJyYXlbbl0pe2Nhc2UgNDk6YnJlYWs7Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OmNhc2UgRDpjYXNlIGI6Y2FzZSA2MDpjYXNlIDYxOmNhc2UgNjI6Y2FzZSA3OkEuZm5BcnJheS5zcGxpY2UobiwxKSxBLmFyZ3NBcnJheS5zcGxpY2UobiwxKSxyLS07Y29udGludWU7Y2FzZSA5OmNvbnN0W2VdPUEuYXJnc0FycmF5W25dO2xldCB0PTAsaT1lLmxlbmd0aDtmb3IoO3Q8aTspe2NvbnN0W0FdPWVbdF07c3dpdGNoKEEpe2Nhc2UiVFIiOmNhc2UiVFIyIjpjYXNlIkhUIjpjYXNlIkJHIjpjYXNlIkJHMiI6Y2FzZSJVQ1IiOmNhc2UiVUNSMiI6ZS5zcGxpY2UodCwxKSxpLS07Y29udGludWV9dCsrfX1uKyt9fX1jbGFzcyBsZ3tjb25zdHJ1Y3RvcihBPW5ldyBFZyl7dGhpcy5zdGF0ZT1BLHRoaXMuc3RhdGVTdGFjaz1bXX1zYXZlKCl7Y29uc3QgQT10aGlzLnN0YXRlO3RoaXMuc3RhdGVTdGFjay5wdXNoKHRoaXMuc3RhdGUpLHRoaXMuc3RhdGU9QS5jbG9uZSgpfXJlc3RvcmUoKXtjb25zdCBBPXRoaXMuc3RhdGVTdGFjay5wb3AoKTtBJiYodGhpcy5zdGF0ZT1BKX10cmFuc2Zvcm0oQSl7dGhpcy5zdGF0ZS5jdG09JC50cmFuc2Zvcm0odGhpcy5zdGF0ZS5jdG0sQSl9fWNsYXNzIFFne2NvbnN0cnVjdG9yKCl7dGhpcy5jdG09bmV3IEZsb2F0MzJBcnJheShzKSx0aGlzLmZvbnROYW1lPW51bGwsdGhpcy5mb250U2l6ZT0wLHRoaXMubG9hZGVkTmFtZT1udWxsLHRoaXMuZm9udD1udWxsLHRoaXMuZm9udE1hdHJpeD1uLHRoaXMudGV4dE1hdHJpeD1zLnNsaWNlKCksdGhpcy50ZXh0TGluZU1hdHJpeD1zLnNsaWNlKCksdGhpcy5jaGFyU3BhY2luZz0wLHRoaXMud29yZFNwYWNpbmc9MCx0aGlzLmxlYWRpbmc9MCx0aGlzLnRleHRIU2NhbGU9MSx0aGlzLnRleHRSaXNlPTB9c2V0VGV4dE1hdHJpeChBLGUsdCxpLGEscyl7Y29uc3Qgbj10aGlzLnRleHRNYXRyaXg7blswXT1BLG5bMV09ZSxuWzJdPXQsblszXT1pLG5bNF09YSxuWzVdPXN9c2V0VGV4dExpbmVNYXRyaXgoQSxlLHQsaSxhLHMpe2NvbnN0IG49dGhpcy50ZXh0TGluZU1hdHJpeDtuWzBdPUEsblsxXT1lLG5bMl09dCxuWzNdPWksbls0XT1hLG5bNV09c310cmFuc2xhdGVUZXh0TWF0cml4KEEsZSl7Y29uc3QgdD10aGlzLnRleHRNYXRyaXg7dFs0XT10WzBdKkErdFsyXSplK3RbNF0sdFs1XT10WzFdKkErdFszXSplK3RbNV19dHJhbnNsYXRlVGV4dExpbmVNYXRyaXgoQSxlKXtjb25zdCB0PXRoaXMudGV4dExpbmVNYXRyaXg7dFs0XT10WzBdKkErdFsyXSplK3RbNF0sdFs1XT10WzFdKkErdFszXSplK3RbNV19Y2FycmlhZ2VSZXR1cm4oKXt0aGlzLnRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KDAsLXRoaXMubGVhZGluZyksdGhpcy50ZXh0TWF0cml4PXRoaXMudGV4dExpbmVNYXRyaXguc2xpY2UoKX1jbG9uZSgpe2NvbnN0IEE9T2JqZWN0LmNyZWF0ZSh0aGlzKTtyZXR1cm4gQS50ZXh0TWF0cml4PXRoaXMudGV4dE1hdHJpeC5zbGljZSgpLEEudGV4dExpbmVNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpLEEuZm9udE1hdHJpeD10aGlzLmZvbnRNYXRyaXguc2xpY2UoKSxBfX1jbGFzcyBFZ3tjb25zdHJ1Y3Rvcigpe3RoaXMuY3RtPW5ldyBGbG9hdDMyQXJyYXkocyksdGhpcy5mb250PW51bGwsdGhpcy50ZXh0UmVuZGVyaW5nTW9kZT0wLHRoaXMuX2ZpbGxDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuZ3JheSx0aGlzLl9zdHJva2VDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuZ3JheSx0aGlzLnBhdHRlcm5GaWxsQ29sb3JTcGFjZT1udWxsLHRoaXMucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9bnVsbH1nZXQgZmlsbENvbG9yU3BhY2UoKXtyZXR1cm4gdGhpcy5fZmlsbENvbG9yU3BhY2V9c2V0IGZpbGxDb2xvclNwYWNlKEEpe3RoaXMuX2ZpbGxDb2xvclNwYWNlPXRoaXMucGF0dGVybkZpbGxDb2xvclNwYWNlPUF9Z2V0IHN0cm9rZUNvbG9yU3BhY2UoKXtyZXR1cm4gdGhpcy5fc3Ryb2tlQ29sb3JTcGFjZX1zZXQgc3Ryb2tlQ29sb3JTcGFjZShBKXt0aGlzLl9zdHJva2VDb2xvclNwYWNlPXRoaXMucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9QX1jbG9uZSgpe3JldHVybiBPYmplY3QuY3JlYXRlKHRoaXMpfX1jbGFzcyB1Z3tzdGF0aWMgZ2V0IG9wTWFwKCl7cmV0dXJuIEgodGhpcywib3BNYXAiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx7dzp7aWQ6MixudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxKOntpZDozLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGo6e2lkOjQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sTTp7aWQ6NSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxkOntpZDo2LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LHJpOntpZDo3LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGk6e2lkOjgsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZ3M6e2lkOjksbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0scTp7aWQ6ZixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxROntpZDpwLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGNtOntpZDptLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LG06e2lkOjEzLG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LGw6e2lkOjE0LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LGM6e2lkOjE1LG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LHY6e2lkOjE2LG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LHk6e2lkOjE3LG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LGg6e2lkOjE4LG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LHJlOntpZDoxOSxudW1BcmdzOjQsdmFyaWFibGVBcmdzOiExfSxTOntpZDoyMCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxzOntpZDoyMSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxmOntpZDoyMixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxGOntpZDoyMixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiZioiOntpZDoyMyxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxCOntpZDoyNCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiQioiOntpZDoyNSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxiOntpZDoyNixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiYioiOntpZDoyNyxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxuOntpZDoyOCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxXOntpZDoyOSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiVyoiOntpZDozMCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxCVDp7aWQ6MzEsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRVQ6e2lkOjMyLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRjOntpZDozMyxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUdzp7aWQ6MzQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHo6e2lkOjM1LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRMOntpZDozNixudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUZjp7aWQ6eSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxUcjp7aWQ6MzgsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHM6e2lkOjM5LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRkOntpZDo0MCxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxURDp7aWQ6NDEsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sVG06e2lkOjQyLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LCJUKiI6e2lkOjQzLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRqOntpZDp3LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRKOntpZDo0NSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSwiJyI6e2lkOjQ2LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LCciJzp7aWQ6NDcsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sZDA6e2lkOjQ4LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LGQxOntpZDo0OSxudW1BcmdzOjYsdmFyaWFibGVBcmdzOiExfSxDUzp7aWQ6NTAsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sY3M6e2lkOjUxLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFNDOntpZDo1MixudW1BcmdzOjQsdmFyaWFibGVBcmdzOiEwfSxTQ046e2lkOjUzLG51bUFyZ3M6MzMsdmFyaWFibGVBcmdzOiEwfSxzYzp7aWQ6NTQsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMH0sc2NuOntpZDo1NSxudW1BcmdzOjMzLHZhcmlhYmxlQXJnczohMH0sRzp7aWQ6NTYsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZzp7aWQ6NTcsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sUkc6e2lkOkQsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0scmc6e2lkOmIsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sSzp7aWQ6NjAsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sazp7aWQ6NjEsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sc2g6e2lkOjYyLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LEJJOntpZDo2MyxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxJRDp7aWQ6NjQsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRUk6e2lkOjY1LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LERvOntpZDo2NixudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxNUDp7aWQ6NjcsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sRFA6e2lkOjY4LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEJNQzp7aWQ6NjksbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sQkRDOntpZDprLG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEVNQzp7aWQ6RixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxCWDp7aWQ6NzIsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRVg6e2lkOjczLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJNOm51bGwsQkQ6bnVsbCx0cnVlOm51bGwsZmE6bnVsbCxmYWw6bnVsbCxmYWxzOm51bGwsZmFsc2U6bnVsbCxudTpudWxsLG51bDpudWxsLG51bGw6bnVsbH0pKX1zdGF0aWMgTUFYX0lOVkFMSURfUEFUSF9PUFM9MTA7Y29uc3RydWN0b3IoQSxlLHQ9bmV3IGxnKXt0aGlzLnBhcnNlcj1uZXcgZ2koe2xleGVyOm5ldyBjaShBLHVnLm9wTWFwKSx4cmVmOmV9KSx0aGlzLnN0YXRlTWFuYWdlcj10LHRoaXMubm9uUHJvY2Vzc2VkQXJncz1bXSx0aGlzLl9pc1BhdGhPcD0hMSx0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz0wfWdldCBzYXZlZFN0YXRlc0RlcHRoKCl7cmV0dXJuIHRoaXMuc3RhdGVNYW5hZ2VyLnN0YXRlU3RhY2subGVuZ3RofXJlYWQoQSl7bGV0IGU9QS5hcmdzO2Zvcig7Oyl7Y29uc3QgdD10aGlzLnBhcnNlci5nZXRPYmooKTtpZih0IGluc3RhbmNlb2YgQkEpe2NvbnN0IGk9dC5jbWQsYT11Zy5vcE1hcFtpXTtpZighYSl7VShgVW5rbm93biBjb21tYW5kICIke2l9Ii5gKTtjb250aW51ZX1jb25zdCBzPWEuaWQsbj1hLm51bUFyZ3M7bGV0IHI9bnVsbCE9PWU/ZS5sZW5ndGg6MDtpZih0aGlzLl9pc1BhdGhPcHx8KHRoaXMuX251bUludmFsaWRQYXRoT1BTPTApLHRoaXMuX2lzUGF0aE9wPXM+PTEzJiZzPD0yOCxhLnZhcmlhYmxlQXJncylyPm4mJngoYENvbW1hbmQgJHtpfTogZXhwZWN0ZWQgWzAsICR7bn1dIGFyZ3MsIGJ1dCByZWNlaXZlZCAke3J9IGFyZ3MuYCk7ZWxzZXtpZihyIT09bil7Y29uc3QgQT10aGlzLm5vblByb2Nlc3NlZEFyZ3M7Zm9yKDtyPm47KUEucHVzaChlLnNoaWZ0KCkpLHItLTtmb3IoO3I8biYmMCE9PUEubGVuZ3RoOyludWxsPT09ZSYmKGU9W10pLGUudW5zaGlmdChBLnBvcCgpKSxyKyt9aWYocjxuKXtjb25zdCBBPWBjb21tYW5kICR7aX06IGV4cGVjdGVkICR7bn0gYXJncywgYnV0IHJlY2VpdmVkICR7cn0gYXJncy5gO2lmKHRoaXMuX2lzUGF0aE9wJiYrK3RoaXMuX251bUludmFsaWRQYXRoT1BTPnVnLk1BWF9JTlZBTElEX1BBVEhfT1BTKXRocm93IG5ldyBXKGBJbnZhbGlkICR7QX1gKTtVKGBTa2lwcGluZyAke0F9YCksbnVsbCE9PWUmJihlLmxlbmd0aD0wKTtjb250aW51ZX19cmV0dXJuIHRoaXMucHJlcHJvY2Vzc0NvbW1hbmQocyxlKSxBLmZuPXMsQS5hcmdzPWUsITB9aWYodD09PW9BKXJldHVybiExO2lmKG51bGwhPT10JiYobnVsbD09PWUmJihlPVtdKSxlLnB1c2godCksZS5sZW5ndGg+MzMpKXRocm93IG5ldyBXKCJUb28gbWFueSBhcmd1bWVudHMiKX19cHJlcHJvY2Vzc0NvbW1hbmQoQSxlKXtzd2l0Y2goMHxBKXtjYXNlIGY6dGhpcy5zdGF0ZU1hbmFnZXIuc2F2ZSgpO2JyZWFrO2Nhc2UgcDp0aGlzLnN0YXRlTWFuYWdlci5yZXN0b3JlKCk7YnJlYWs7Y2FzZSBtOnRoaXMuc3RhdGVNYW5hZ2VyLnRyYW5zZm9ybShlKX19fWNsYXNzIGRnIGV4dGVuZHMgdWd7Y29uc3RydWN0b3IoQSl7c3VwZXIobmV3IG9lKEEpKX1wYXJzZSgpe2NvbnN0IEE9e2ZuOjAsYXJnczpbXX0sZT17Zm9udFNpemU6MCxmb250TmFtZToiIixmb250Q29sb3I6bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpfTt0cnl7Zm9yKDtBLmFyZ3MubGVuZ3RoPTAsdGhpcy5yZWFkKEEpOyl7aWYoMCE9PXRoaXMuc2F2ZWRTdGF0ZXNEZXB0aCljb250aW51ZTtjb25zdHtmbjp0LGFyZ3M6aX09QTtzd2l0Y2goMHx0KXtjYXNlIHk6Y29uc3RbQSx0XT1pO0EgaW5zdGFuY2VvZiBDQSYmKGUuZm9udE5hbWU9QS5uYW1lKSwibnVtYmVyIj09dHlwZW9mIHQmJnQ+MCYmKGUuZm9udFNpemU9dCk7YnJlYWs7Y2FzZSBiOkNlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0oaSwwLGUuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgNTc6Q2Uuc2luZ2xldG9ucy5ncmF5LmdldFJnYkl0ZW0oaSwwLGUuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgNjE6Q2Uuc2luZ2xldG9ucy5jbXlrLmdldFJnYkl0ZW0oaSwwLGUuZm9udENvbG9yLDApfX19Y2F0Y2goQSl7VShgcGFyc2VEZWZhdWx0QXBwZWFyYW5jZSAtIGlnbm9yaW5nIGVycm9yczogIiR7QX0iLmApfXJldHVybiBlfX1mdW5jdGlvbiBmZyhBKXtyZXR1cm4gbmV3IGRnKEEpLnBhcnNlKCl9Y2xhc3MgcGcgZXh0ZW5kcyB1Z3tjb25zdHJ1Y3RvcihBLGUsdCl7c3VwZXIoQSksdGhpcy5zdHJlYW09QSx0aGlzLmV2YWx1YXRvck9wdGlvbnM9ZSx0aGlzLnhyZWY9dCx0aGlzLnJlc291cmNlcz1BLmRpY3Q/LmdldCgiUmVzb3VyY2VzIil9cGFyc2UoKXtjb25zdCBBPXtmbjowLGFyZ3M6W119O2xldCBlPXtzY2FsZUZhY3RvcjoxLGZvbnRTaXplOjAsZm9udE5hbWU6IiIsZm9udENvbG9yOm5ldyBVaW50OENsYW1wZWRBcnJheSgzKSxmaWxsQ29sb3JTcGFjZTpDZS5zaW5nbGV0b25zLmdyYXl9LHQ9ITE7Y29uc3QgaT1bXTt0cnl7Zm9yKDtBLmFyZ3MubGVuZ3RoPTAsIXQmJnRoaXMucmVhZChBKTspe2NvbnN0e2ZuOmEsYXJnczpzfT1BO3N3aXRjaCgwfGEpe2Nhc2UgZjppLnB1c2goe3NjYWxlRmFjdG9yOmUuc2NhbGVGYWN0b3IsZm9udFNpemU6ZS5mb250U2l6ZSxmb250TmFtZTplLmZvbnROYW1lLGZvbnRDb2xvcjplLmZvbnRDb2xvci5zbGljZSgpLGZpbGxDb2xvclNwYWNlOmUuZmlsbENvbG9yU3BhY2V9KTticmVhaztjYXNlIHA6ZT1pLnBvcCgpfHxlO2JyZWFrO2Nhc2UgNDI6ZS5zY2FsZUZhY3Rvcio9TWF0aC5oeXBvdChzWzBdLHNbMV0pO2JyZWFrO2Nhc2UgeTpjb25zdFtBLGFdPXM7QSBpbnN0YW5jZW9mIENBJiYoZS5mb250TmFtZT1BLm5hbWUpLCJudW1iZXIiPT10eXBlb2YgYSYmYT4wJiYoZS5mb250U2l6ZT1hKmUuc2NhbGVGYWN0b3IpO2JyZWFrO2Nhc2UgNTE6ZS5maWxsQ29sb3JTcGFjZT1DZS5wYXJzZSh7Y3M6c1swXSx4cmVmOnRoaXMueHJlZixyZXNvdXJjZXM6dGhpcy5yZXNvdXJjZXMscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTp0aGlzLl9sb2NhbENvbG9yU3BhY2VDYWNoZX0pO2JyZWFrO2Nhc2UgNTQ6ZS5maWxsQ29sb3JTcGFjZS5nZXRSZ2JJdGVtKHMsMCxlLmZvbnRDb2xvciwwKTticmVhaztjYXNlIGI6Q2Uuc2luZ2xldG9ucy5yZ2IuZ2V0UmdiSXRlbShzLDAsZS5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSA1NzpDZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiSXRlbShzLDAsZS5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSA2MTpDZS5zaW5nbGV0b25zLmNteWsuZ2V0UmdiSXRlbShzLDAsZS5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSB3OmNhc2UgNDU6Y2FzZSA0NjpjYXNlIDQ3OnQ9ITB9fX1jYXRjaChBKXtVKGBwYXJzZUFwcGVhcmFuY2VTdHJlYW0gLSBpZ25vcmluZyBlcnJvcnM6ICIke0F9Ii5gKX1yZXR1cm4gdGhpcy5zdHJlYW0ucmVzZXQoKSxkZWxldGUgZS5zY2FsZUZhY3RvcixkZWxldGUgZS5maWxsQ29sb3JTcGFjZSxlfWdldCBfbG9jYWxDb2xvclNwYWNlQ2FjaGUoKXtyZXR1cm4gSCh0aGlzLCJfbG9jYWxDb2xvclNwYWNlQ2FjaGUiLG5ldyBhcil9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gSCh0aGlzLCJfcGRmRnVuY3Rpb25GYWN0b3J5IixuZXcgSXIoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmV2YWx1YXRvck9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfX1mdW5jdGlvbiBtZyhBLGUpe3JldHVybiBBWzBdPT09QVsxXSYmQVsxXT09PUFbMl0/YCR7ZWUoQVswXS8yNTUpfSAke2U/ImciOiJHIn1gOkFycmF5LmZyb20oQSwoQT0+ZWUoQS8yNTUpKSkuam9pbigiICIpKyIgIisoZT8icmciOiJSRyIpfWNsYXNzIHlne2NvbnN0cnVjdG9yKEEsZSl7dGhpcy54cmVmPUEsdGhpcy53aWR0aHM9bnVsbCx0aGlzLmZpcnN0Q2hhcj0xLzAsdGhpcy5sYXN0Q2hhcj0tMS8wLHRoaXMuZm9udEZhbWlseT1lO2NvbnN0IHQ9bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpO3RoaXMuY3R4TWVhc3VyZT10LmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSkseWcuX2ZvbnROYW1lSWR8fCh5Zy5fZm9udE5hbWVJZD0xKSx0aGlzLmZvbnROYW1lPUNBLmdldChgSW52YWxpZFBERmpzRm9udF8ke2V9XyR7eWcuX2ZvbnROYW1lSWQrK31gKX1nZXQgZm9udERlc2NyaXB0b3JSZWYoKXtpZigheWcuX2ZvbnREZXNjcmlwdG9yUmVmKXtjb25zdCBBPW5ldyBRQSh0aGlzLnhyZWYpO0Euc2V0KCJUeXBlIixDQS5nZXQoIkZvbnREZXNjcmlwdG9yIikpLEEuc2V0KCJGb250TmFtZSIsdGhpcy5mb250TmFtZSksQS5zZXQoIkZvbnRGYW1pbHkiLCJNeXJpYWRQcm8gUmVndWxhciIpLEEuc2V0KCJGb250QkJveCIsWzAsMCwwLDBdKSxBLnNldCgiRm9udFN0cmV0Y2giLENBLmdldCgiTm9ybWFsIikpLEEuc2V0KCJGb250V2VpZ2h0Iiw0MDApLEEuc2V0KCJJdGFsaWNBbmdsZSIsMCkseWcuX2ZvbnREZXNjcmlwdG9yUmVmPXRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKEEpfXJldHVybiB5Zy5fZm9udERlc2NyaXB0b3JSZWZ9Z2V0IGRlc2NlbmRhbnRGb250UmVmKCl7Y29uc3QgQT1uZXcgUUEodGhpcy54cmVmKTtBLnNldCgiQmFzZUZvbnQiLHRoaXMuZm9udE5hbWUpLEEuc2V0KCJUeXBlIixDQS5nZXQoIkZvbnQiKSksQS5zZXQoIlN1YnR5cGUiLENBLmdldCgiQ0lERm9udFR5cGUwIikpLEEuc2V0KCJDSURUb0dJRE1hcCIsQ0EuZ2V0KCJJZGVudGl0eSIpKSxBLnNldCgiRmlyc3RDaGFyIix0aGlzLmZpcnN0Q2hhciksQS5zZXQoIkxhc3RDaGFyIix0aGlzLmxhc3RDaGFyKSxBLnNldCgiRm9udERlc2NyaXB0b3IiLHRoaXMuZm9udERlc2NyaXB0b3JSZWYpLEEuc2V0KCJEVyIsMWUzKTtjb25zdCBlPVtdLHQ9Wy4uLnRoaXMud2lkdGhzLmVudHJpZXMoKV0uc29ydCgpO2xldCBpPW51bGwsYT1udWxsO2Zvcihjb25zdFtBLHNdb2YgdClpP0E9PT1pK2EubGVuZ3RoP2EucHVzaChzKTooZS5wdXNoKGksYSksaT1BLGE9W3NdKTooaT1BLGE9W3NdKTtpJiZlLnB1c2goaSxhKSxBLnNldCgiVyIsZSk7Y29uc3Qgcz1uZXcgUUEodGhpcy54cmVmKTtyZXR1cm4gcy5zZXQoIk9yZGVyaW5nIiwiSWRlbnRpdHkiKSxzLnNldCgiUmVnaXN0cnkiLCJBZG9iZSIpLHMuc2V0KCJTdXBwbGVtZW50IiwwKSxBLnNldCgiQ0lEU3lzdGVtSW5mbyIscyksdGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoQSl9Z2V0IGJhc2VGb250UmVmKCl7Y29uc3QgQT1uZXcgUUEodGhpcy54cmVmKTtyZXR1cm4gQS5zZXQoIkJhc2VGb250Iix0aGlzLmZvbnROYW1lKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGb250IikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlR5cGUwIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJJZGVudGl0eS1IIikpLEEuc2V0KCJEZXNjZW5kYW50Rm9udHMiLFt0aGlzLmRlc2NlbmRhbnRGb250UmVmXSksQS5zZXQoIlRvVW5pY29kZSIsQ0EuZ2V0KCJJZGVudGl0eS1IIikpLHRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKEEpfWdldCByZXNvdXJjZXMoKXtjb25zdCBBPW5ldyBRQSh0aGlzLnhyZWYpLGU9bmV3IFFBKHRoaXMueHJlZik7cmV0dXJuIGUuc2V0KHRoaXMuZm9udE5hbWUubmFtZSx0aGlzLmJhc2VGb250UmVmKSxBLnNldCgiRm9udCIsZSksQX1fY3JlYXRlQ29udGV4dCgpe3JldHVybiB0aGlzLndpZHRocz1uZXcgTWFwLHRoaXMuY3R4TWVhc3VyZS5mb250PWAxMDAwcHggJHt0aGlzLmZvbnRGYW1pbHl9YCx0aGlzLmN0eE1lYXN1cmV9Y3JlYXRlRm9udFJlc291cmNlcyhBKXtjb25zdCBlPXRoaXMuX2NyZWF0ZUNvbnRleHQoKTtmb3IoY29uc3QgdCBvZiBBLnNwbGl0KC9cclxuP3xcbi8pKWZvcihjb25zdCBBIG9mIHQuc3BsaXQoIiIpKXtjb25zdCB0PUEuY2hhckNvZGVBdCgwKTtpZih0aGlzLndpZHRocy5oYXModCkpY29udGludWU7Y29uc3QgaT1lLm1lYXN1cmVUZXh0KEEpLGE9TWF0aC5jZWlsKGkud2lkdGgpO3RoaXMud2lkdGhzLnNldCh0LGEpLHRoaXMuZmlyc3RDaGFyPU1hdGgubWluKHQsdGhpcy5maXJzdENoYXIpLHRoaXMubGFzdENoYXI9TWF0aC5tYXgodCx0aGlzLmxhc3RDaGFyKX1yZXR1cm4gdGhpcy5yZXNvdXJjZXN9c3RhdGljIGdldEZpcnN0UG9zaXRpb25JbmZvKEEsZSx0KXtjb25zdFtpLGEscyxuXT1BO2xldCBnPXMtaSxvPW4tYTtlJTE4MCE9MCYmKFtnLG9dPVtvLGddKTtjb25zdCBJPXIqdDtyZXR1cm57Y29vcmRzOlswLG8rLjM1KnQtSV0sYmJveDpbMCwwLGcsb10sbWF0cml4OjAhPT1lP25lKGUsbyxJKTp2b2lkIDB9fWNyZWF0ZUFwcGVhcmFuY2UoQSxlLHQsaSxhLHMpe2NvbnN0IG49dGhpcy5fY3JlYXRlQ29udGV4dCgpLGc9W107bGV0IG89LTEvMDtmb3IoY29uc3QgZSBvZiBBLnNwbGl0KC9cclxuP3xcbi8pKXtnLnB1c2goZSk7Y29uc3QgQT1uLm1lYXN1cmVUZXh0KGUpLndpZHRoO289TWF0aC5tYXgobyxBKTtmb3IoY29uc3QgQSBvZiBWQShlKSl7Y29uc3QgZT1TdHJpbmcuZnJvbUNvZGVQb2ludChBKTtsZXQgdD10aGlzLndpZHRocy5nZXQoQSk7aWYodm9pZCAwPT09dCl7Y29uc3QgaT1uLm1lYXN1cmVUZXh0KGUpO3Q9TWF0aC5jZWlsKGkud2lkdGgpLHRoaXMud2lkdGhzLnNldChBLHQpLHRoaXMuZmlyc3RDaGFyPU1hdGgubWluKEEsdGhpcy5maXJzdENoYXIpLHRoaXMubGFzdENoYXI9TWF0aC5tYXgoQSx0aGlzLmxhc3RDaGFyKX19fW8qPWkvMWUzO2NvbnN0W0ksYyxoLENdPWU7bGV0IEI9aC1JLGw9Qy1jO3QlMTgwIT0wJiYoW0IsbF09W2wsQl0pO2xldCBRPTE7bz5CJiYoUT1CL28pO2xldCBFPTE7Y29uc3QgdT1yKmksZD0uMzUqaSxmPXUqZy5sZW5ndGg7Zj5sJiYoRT1sL2YpO2NvbnN0IHA9aSpNYXRoLm1pbihRLEUpLG09WyJxIixgMCAwICR7ZWUoQil9ICR7ZWUobCl9IHJlIFcgbmAsIkJUIixgMSAwIDAgMSAwICR7ZWUobCtkKX0gVG0gMCBUYyAke21nKGEsITApfWAsYC8ke3RoaXMuZm9udE5hbWUubmFtZX0gJHtlZShwKX0gVGZgXSx7cmVzb3VyY2VzOnl9PXRoaXM7aWYoMSE9PShzPSJudW1iZXIiPT10eXBlb2YgcyYmcz49MCYmczw9MT9zOjEpKXttLnB1c2goIi9SMCBncyIpO2NvbnN0IEE9bmV3IFFBKHRoaXMueHJlZiksZT1uZXcgUUEodGhpcy54cmVmKTtlLnNldCgiY2EiLHMpLGUuc2V0KCJDQSIscyksZS5zZXQoIlR5cGUiLENBLmdldCgiRXh0R1N0YXRlIikpLEEuc2V0KCJSMCIsZSkseS5zZXQoIkV4dEdTdGF0ZSIsQSl9Y29uc3Qgdz1lZSh1KTtmb3IoY29uc3QgQSBvZiBnKW0ucHVzaChgMCAtJHt3fSBUZCA8JHthZShBKX0+IFRqYCk7bS5wdXNoKCJFVCIsIlEiKTtjb25zdCBEPW0uam9pbigiXG4iKSxiPW5ldyBRQSh0aGlzLnhyZWYpO2lmKGIuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZvcm0iKSksYi5zZXQoIlR5cGUiLENBLmdldCgiWE9iamVjdCIpKSxiLnNldCgiQkJveCIsWzAsMCxCLGxdKSxiLnNldCgiTGVuZ3RoIixELmxlbmd0aCksYi5zZXQoIlJlc291cmNlcyIseSksdCl7Y29uc3QgQT1uZSh0LEIsbCk7Yi5zZXQoIk1hdHJpeCIsQSl9Y29uc3Qgaz1uZXcgb2UoRCk7cmV0dXJuIGsuZGljdD1iLGt9fWNsYXNzIHdne2NvbnN0cnVjdG9yKEEsZSx0KXt0aGlzLnJvb3Q9QSx0aGlzLnhyZWY9ZSx0aGlzLl90eXBlPXR9Z2V0QWxsKCl7Y29uc3QgQT1uZXcgTWFwO2lmKCF0aGlzLnJvb3QpcmV0dXJuIEE7Y29uc3QgZT10aGlzLnhyZWYsdD1uZXcgdUE7dC5wdXQodGhpcy5yb290KTtjb25zdCBpPVt0aGlzLnJvb3RdO2Zvcig7aS5sZW5ndGg+MDspe2NvbnN0IGE9ZS5mZXRjaElmUmVmKGkuc2hpZnQoKSk7aWYoIShhIGluc3RhbmNlb2YgUUEpKWNvbnRpbnVlO2lmKGEuaGFzKCJLaWRzIikpe2NvbnN0IEE9YS5nZXQoIktpZHMiKTtpZighQXJyYXkuaXNBcnJheShBKSljb250aW51ZTtmb3IoY29uc3QgZSBvZiBBKXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVyhgRHVwbGljYXRlIGVudHJ5IGluICIke3RoaXMuX3R5cGV9IiB0cmVlLmApO2kucHVzaChlKSx0LnB1dChlKX1jb250aW51ZX1jb25zdCBzPWEuZ2V0KHRoaXMuX3R5cGUpO2lmKEFycmF5LmlzQXJyYXkocykpZm9yKGxldCB0PTAsaT1zLmxlbmd0aDt0PGk7dCs9MilBLnNldChlLmZldGNoSWZSZWYoc1t0XSksZS5mZXRjaElmUmVmKHNbdCsxXSkpfXJldHVybiBBfWdldFJhdyhBKXtpZighdGhpcy5yb290KXJldHVybiBudWxsO2NvbnN0IGU9dGhpcy54cmVmO2xldCB0PWUuZmV0Y2hJZlJlZih0aGlzLnJvb3QpLGk9MDtmb3IoO3QuaGFzKCJLaWRzIik7KXtpZigrK2k+MTApcmV0dXJuIFUoYFNlYXJjaCBkZXB0aCBsaW1pdCByZWFjaGVkIGZvciAiJHt0aGlzLl90eXBlfSIgdHJlZS5gKSxudWxsO2NvbnN0IGE9dC5nZXQoIktpZHMiKTtpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gbnVsbDtsZXQgcz0wLG49YS5sZW5ndGgtMTtmb3IoO3M8PW47KXtjb25zdCBpPXMrbj4+MSxyPWUuZmV0Y2hJZlJlZihhW2ldKSxnPXIuZ2V0KCJMaW1pdHMiKTtpZihBPGUuZmV0Y2hJZlJlZihnWzBdKSluPWktMTtlbHNle2lmKCEoQT5lLmZldGNoSWZSZWYoZ1sxXSkpKXt0PXI7YnJlYWt9cz1pKzF9fWlmKHM+bilyZXR1cm4gbnVsbH1jb25zdCBhPXQuZ2V0KHRoaXMuX3R5cGUpO2lmKEFycmF5LmlzQXJyYXkoYSkpe2xldCB0PTAsaT1hLmxlbmd0aC0yO2Zvcig7dDw9aTspe2NvbnN0IHM9dCtpPj4xLG49cysoMSZzKSxyPWUuZmV0Y2hJZlJlZihhW25dKTtpZihBPHIpaT1uLTI7ZWxzZXtpZighKEE+cikpcmV0dXJuIGFbbisxXTt0PW4rMn19fXJldHVybiBudWxsfWdldChBKXtyZXR1cm4gdGhpcy54cmVmLmZldGNoSWZSZWYodGhpcy5nZXRSYXcoQSkpfX1jbGFzcyBEZyBleHRlbmRzIHdne2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSxlLCJOYW1lcyIpfX1jbGFzcyBiZyBleHRlbmRzIHdne2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSxlLCJOdW1zIil9fWZ1bmN0aW9uIGtnKCl7YW49T2JqZWN0LmNyZWF0ZShudWxsKSxJQT1PYmplY3QuY3JlYXRlKG51bGwpLGNBPU9iamVjdC5jcmVhdGUobnVsbCksaEE9T2JqZWN0LmNyZWF0ZShudWxsKSxCYS5jbGVhcigpLGlpLmNsZWFudXAoKX1mdW5jdGlvbiBGZyhBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFFBP0EuaGFzKCJVRiIpP0EuZ2V0KCJVRiIpOkEuaGFzKCJGIik/QS5nZXQoIkYiKTpBLmhhcygiVW5peCIpP0EuZ2V0KCJVbml4Iik6QS5oYXMoIk1hYyIpP0EuZ2V0KCJNYWMiKTpBLmhhcygiRE9TIik/QS5nZXQoIkRPUyIpOm51bGw6bnVsbH1jbGFzcyBTZ3sjRj0hMTtjb25zdHJ1Y3RvcihBLGUsdD0hMSl7QSBpbnN0YW5jZW9mIFFBJiYodGhpcy54cmVmPWUsdGhpcy5yb290PUEsQS5oYXMoIkZTIikmJih0aGlzLmZzPUEuZ2V0KCJGUyIpKSxBLmhhcygiUkYiKSYmVSgiUmVsYXRlZCBmaWxlIHNwZWNpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIiksdHx8KEEuaGFzKCJFRiIpP3RoaXMuI0Y9ITA6VSgiTm9uLWVtYmVkZGVkIGZpbGUgc3BlY2lmaWNhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKSkpfWdldCBmaWxlbmFtZSgpe2xldCBBPSIiO2NvbnN0IGU9RmcodGhpcy5yb290KTtyZXR1cm4gZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoQT1lQShlKS5yZXBsYWNlQWxsKCJcXFxcIiwiXFwiKS5yZXBsYWNlQWxsKCJcXC8iLCIvIikucmVwbGFjZUFsbCgiXFwiLCIvIikpLEgodGhpcywiZmlsZW5hbWUiLEF8fCJ1bm5hbWVkIil9Z2V0IGNvbnRlbnQoKXtpZighdGhpcy4jRilyZXR1cm4gbnVsbDt0aGlzLl9jb250ZW50UmVmfHw9RmcodGhpcy5yb290Py5nZXQoIkVGIikpO2xldCBBPW51bGw7aWYodGhpcy5fY29udGVudFJlZil7Y29uc3QgZT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0aGlzLl9jb250ZW50UmVmKTtlIGluc3RhbmNlb2Ygd0E/QT1lLmdldEJ5dGVzKCk6VSgiRW1iZWRkZWQgZmlsZSBzcGVjaWZpY2F0aW9uIHBvaW50cyB0byBub24tZXhpc3RpbmcvaW52YWxpZCBjb250ZW50Iil9ZWxzZSBVKCJFbWJlZGRlZCBmaWxlIHNwZWNpZmljYXRpb24gZG9lcyBub3QgaGF2ZSBhbnkgY29udGVudCIpO3JldHVybiBBfWdldCBkZXNjcmlwdGlvbigpe2xldCBBPSIiO2NvbnN0IGU9dGhpcy5yb290Py5nZXQoIkRlc2MiKTtyZXR1cm4gZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoQT1lQShlKSksSCh0aGlzLCJkZXNjcmlwdGlvbiIsQSl9Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybntyYXdGaWxlbmFtZTp0aGlzLmZpbGVuYW1lLGZpbGVuYW1lOihBPXRoaXMuZmlsZW5hbWUsQS5zdWJzdHJpbmcoQS5sYXN0SW5kZXhPZigiLyIpKzEpKSxjb250ZW50OnRoaXMuY29udGVudCxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9ufTt2YXIgQX19ZnVuY3Rpb24gUmcoQSxlKXtjb25zdCB0PUFbZV07cmV0dXJuIiAiPT09dHx8IlxuIj09PXR8fCJcciI9PT10fHwiXHQiPT09dH1jbGFzcyBHZ3tfcmVzb2x2ZUVudGl0aWVzKEEpe3JldHVybiBBLnJlcGxhY2VBbGwoLyYoW147XSspOy9nLCgoQSxlKT0+e2lmKCIjeCI9PT1lLnN1YnN0cmluZygwLDIpKXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChlLnN1YnN0cmluZygyKSwxNikpO2lmKCIjIj09PWUuc3Vic3RyaW5nKDAsMSkpcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGUuc3Vic3RyaW5nKDEpLDEwKSk7c3dpdGNoKGUpe2Nhc2UibHQiOnJldHVybiI8IjtjYXNlImd0IjpyZXR1cm4iPiI7Y2FzZSJhbXAiOnJldHVybiImIjtjYXNlInF1b3QiOnJldHVybiciJztjYXNlImFwb3MiOnJldHVybiInIn1yZXR1cm4gdGhpcy5vblJlc29sdmVFbnRpdHkoZSl9KSl9X3BhcnNlQ29udGVudChBLGUpe2NvbnN0IHQ9W107bGV0IGk9ZTtmdW5jdGlvbiBhKCl7Zm9yKDtpPEEubGVuZ3RoJiZSZyhBLGkpOykrK2l9Zm9yKDtpPEEubGVuZ3RoJiYhUmcoQSxpKSYmIj4iIT09QVtpXSYmIi8iIT09QVtpXTspKytpO2NvbnN0IHM9QS5zdWJzdHJpbmcoZSxpKTtmb3IoYSgpO2k8QS5sZW5ndGgmJiI+IiE9PUFbaV0mJiIvIiE9PUFbaV0mJiI/IiE9PUFbaV07KXthKCk7bGV0IGU9IiIscz0iIjtmb3IoO2k8QS5sZW5ndGgmJiFSZyhBLGkpJiYiPSIhPT1BW2ldOyllKz1BW2ldLCsraTtpZihhKCksIj0iIT09QVtpXSlyZXR1cm4gbnVsbDsrK2ksYSgpO2NvbnN0IG49QVtpXTtpZignIichPT1uJiYiJyIhPT1uKXJldHVybiBudWxsO2NvbnN0IHI9QS5pbmRleE9mKG4sKytpKTtpZihyPDApcmV0dXJuIG51bGw7cz1BLnN1YnN0cmluZyhpLHIpLHQucHVzaCh7bmFtZTplLHZhbHVlOnRoaXMuX3Jlc29sdmVFbnRpdGllcyhzKX0pLGk9cisxLGEoKX1yZXR1cm57bmFtZTpzLGF0dHJpYnV0ZXM6dCxwYXJzZWQ6aS1lfX1fcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oQSxlKXtsZXQgdD1lO2Zvcig7dDxBLmxlbmd0aCYmIVJnKEEsdCkmJiI+IiE9PUFbdF0mJiI/IiE9PUFbdF0mJiIvIiE9PUFbdF07KSsrdDtjb25zdCBpPUEuc3Vic3RyaW5nKGUsdCk7IWZ1bmN0aW9uKCl7Zm9yKDt0PEEubGVuZ3RoJiZSZyhBLHQpOykrK3R9KCk7Y29uc3QgYT10O2Zvcig7dDxBLmxlbmd0aCYmKCI/IiE9PUFbdF18fCI+IiE9PUFbdCsxXSk7KSsrdDtyZXR1cm57bmFtZTppLHZhbHVlOkEuc3Vic3RyaW5nKGEsdCkscGFyc2VkOnQtZX19cGFyc2VYbWwoQSl7bGV0IGU9MDtmb3IoO2U8QS5sZW5ndGg7KXtsZXQgdD1lO2lmKCI8Ij09PUFbZV0pe2xldCBlO3N3aXRjaCgrK3QsQVt0XSl7Y2FzZSIvIjppZigrK3QsZT1BLmluZGV4T2YoIj4iLHQpLGU8MClyZXR1cm4gdm9pZCB0aGlzLm9uRXJyb3IoLTkpO3RoaXMub25FbmRFbGVtZW50KEEuc3Vic3RyaW5nKHQsZSkpLHQ9ZSsxO2JyZWFrO2Nhc2UiPyI6Kyt0O2NvbnN0IGk9dGhpcy5fcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oQSx0KTtpZigiPz4iIT09QS5zdWJzdHJpbmcodCtpLnBhcnNlZCx0K2kucGFyc2VkKzIpKXJldHVybiB2b2lkIHRoaXMub25FcnJvcigtMyk7dGhpcy5vblBpKGkubmFtZSxpLnZhbHVlKSx0Kz1pLnBhcnNlZCsyO2JyZWFrO2Nhc2UiISI6aWYoIi0tIj09PUEuc3Vic3RyaW5nKHQrMSx0KzMpKXtpZihlPUEuaW5kZXhPZigiLS1ceDNlIix0KzMpLGU8MClyZXR1cm4gdm9pZCB0aGlzLm9uRXJyb3IoLTUpO3RoaXMub25Db21tZW50KEEuc3Vic3RyaW5nKHQrMyxlKSksdD1lKzN9ZWxzZSBpZigiW0NEQVRBWyI9PT1BLnN1YnN0cmluZyh0KzEsdCs4KSl7aWYoZT1BLmluZGV4T2YoIl1dPiIsdCs4KSxlPDApcmV0dXJuIHZvaWQgdGhpcy5vbkVycm9yKC0yKTt0aGlzLm9uQ2RhdGEoQS5zdWJzdHJpbmcodCs4LGUpKSx0PWUrM31lbHNle2lmKCJET0NUWVBFIiE9PUEuc3Vic3RyaW5nKHQrMSx0KzgpKXJldHVybiB2b2lkIHRoaXMub25FcnJvcigtNik7e2NvbnN0IGk9QS5pbmRleE9mKCJbIix0KzgpO2xldCBhPSExO2lmKGU9QS5pbmRleE9mKCI+Iix0KzgpLGU8MClyZXR1cm4gdm9pZCB0aGlzLm9uRXJyb3IoLTQpO2lmKGk+MCYmZT5pKXtpZihlPUEuaW5kZXhPZigiXT4iLHQrOCksZTwwKXJldHVybiB2b2lkIHRoaXMub25FcnJvcigtNCk7YT0hMH1jb25zdCBzPUEuc3Vic3RyaW5nKHQrOCxlKyhhPzE6MCkpO3RoaXMub25Eb2N0eXBlKHMpLHQ9ZSsoYT8yOjEpfX1icmVhaztkZWZhdWx0OmNvbnN0IGE9dGhpcy5fcGFyc2VDb250ZW50KEEsdCk7aWYobnVsbD09PWEpcmV0dXJuIHZvaWQgdGhpcy5vbkVycm9yKC02KTtsZXQgcz0hMTtpZigiLz4iPT09QS5zdWJzdHJpbmcodCthLnBhcnNlZCx0K2EucGFyc2VkKzIpKXM9ITA7ZWxzZSBpZigiPiIhPT1BLnN1YnN0cmluZyh0K2EucGFyc2VkLHQrYS5wYXJzZWQrMSkpcmV0dXJuIHZvaWQgdGhpcy5vbkVycm9yKC05KTt0aGlzLm9uQmVnaW5FbGVtZW50KGEubmFtZSxhLmF0dHJpYnV0ZXMscyksdCs9YS5wYXJzZWQrKHM/MjoxKX19ZWxzZXtmb3IoO3Q8QS5sZW5ndGgmJiI8IiE9PUFbdF07KXQrKztjb25zdCBpPUEuc3Vic3RyaW5nKGUsdCk7dGhpcy5vblRleHQodGhpcy5fcmVzb2x2ZUVudGl0aWVzKGkpKX1lPXR9fW9uUmVzb2x2ZUVudGl0eShBKXtyZXR1cm5gJiR7QX07YH1vblBpKEEsZSl7fW9uQ29tbWVudChBKXt9b25DZGF0YShBKXt9b25Eb2N0eXBlKEEpe31vblRleHQoQSl7fW9uQmVnaW5FbGVtZW50KEEsZSx0KXt9b25FbmRFbGVtZW50KEEpe31vbkVycm9yKEEpe319Y2xhc3MgTmd7Y29uc3RydWN0b3IoQSxlKXt0aGlzLm5vZGVOYW1lPUEsdGhpcy5ub2RlVmFsdWU9ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywicGFyZW50Tm9kZSIse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkTm9kZXM/LlswXX1nZXQgbmV4dFNpYmxpbmcoKXtjb25zdCBBPXRoaXMucGFyZW50Tm9kZS5jaGlsZE5vZGVzO2lmKCFBKXJldHVybjtjb25zdCBlPUEuaW5kZXhPZih0aGlzKTtyZXR1cm4tMSE9PWU/QVtlKzFdOnZvaWQgMH1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzP3RoaXMuY2hpbGROb2Rlcy5tYXAoKGZ1bmN0aW9uKEEpe3JldHVybiBBLnRleHRDb250ZW50fSkpLmpvaW4oIiIpOnRoaXMubm9kZVZhbHVlfHwiIn1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfHxbXX1oYXNDaGlsZE5vZGVzKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlcz8ubGVuZ3RoPjB9c2VhcmNoTm9kZShBLGUpe2lmKGU+PUEubGVuZ3RoKXJldHVybiB0aGlzO2NvbnN0IHQ9QVtlXTtpZih0Lm5hbWUuc3RhcnRzV2l0aCgiIyIpJiZlPEEubGVuZ3RoLTEpcmV0dXJuIHRoaXMuc2VhcmNoTm9kZShBLGUrMSk7Y29uc3QgaT1bXTtsZXQgYT10aGlzO2Zvcig7Oyl7aWYodC5uYW1lPT09YS5ub2RlTmFtZSl7aWYoMCE9PXQucG9zKXtpZigwPT09aS5sZW5ndGgpcmV0dXJuIG51bGw7e2NvbnN0W3NdPWkucG9wKCk7bGV0IG49MDtmb3IoY29uc3QgaSBvZiBzLmNoaWxkTm9kZXMpaWYodC5uYW1lPT09aS5ub2RlTmFtZSl7aWYobj09PXQucG9zKXJldHVybiBpLnNlYXJjaE5vZGUoQSxlKzEpO24rK31yZXR1cm4gYS5zZWFyY2hOb2RlKEEsZSsxKX19e2NvbnN0IHQ9YS5zZWFyY2hOb2RlKEEsZSsxKTtpZihudWxsIT09dClyZXR1cm4gdH19aWYoYS5jaGlsZE5vZGVzPy5sZW5ndGg+MClpLnB1c2goW2EsMF0pLGE9YS5jaGlsZE5vZGVzWzBdO2Vsc2V7aWYoMD09PWkubGVuZ3RoKXJldHVybiBudWxsO2Zvcig7MCE9PWkubGVuZ3RoOyl7Y29uc3RbQSxlXT1pLnBvcCgpLHQ9ZSsxO2lmKHQ8QS5jaGlsZE5vZGVzLmxlbmd0aCl7aS5wdXNoKFtBLHRdKSxhPUEuY2hpbGROb2Rlc1t0XTticmVha319aWYoMD09PWkubGVuZ3RoKXJldHVybiBudWxsfX19ZHVtcChBKXtpZigiI3RleHQiIT09dGhpcy5ub2RlTmFtZSl7aWYoQS5wdXNoKGA8JHt0aGlzLm5vZGVOYW1lfWApLHRoaXMuYXR0cmlidXRlcylmb3IoY29uc3QgZSBvZiB0aGlzLmF0dHJpYnV0ZXMpQS5wdXNoKGAgJHtlLm5hbWV9PSIke19BKGUudmFsdWUpfSJgKTtpZih0aGlzLmhhc0NoaWxkTm9kZXMoKSl7QS5wdXNoKCI+Iik7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jaGlsZE5vZGVzKWUuZHVtcChBKTtBLnB1c2goYDwvJHt0aGlzLm5vZGVOYW1lfT5gKX1lbHNlIHRoaXMubm9kZVZhbHVlP0EucHVzaChgPiR7X0EodGhpcy5ub2RlVmFsdWUpfTwvJHt0aGlzLm5vZGVOYW1lfT5gKTpBLnB1c2goIi8+Iil9ZWxzZSBBLnB1c2goX0EodGhpcy5ub2RlVmFsdWUpKX19Y2xhc3MgeGcgZXh0ZW5kcyBHZ3tjb25zdHJ1Y3Rvcih7aGFzQXR0cmlidXRlczpBPSExLGxvd2VyQ2FzZU5hbWU6ZT0hMX0pe3N1cGVyKCksdGhpcy5fY3VycmVudEZyYWdtZW50PW51bGwsdGhpcy5fc3RhY2s9bnVsbCx0aGlzLl9lcnJvckNvZGU9MCx0aGlzLl9oYXNBdHRyaWJ1dGVzPUEsdGhpcy5fbG93ZXJDYXNlTmFtZT1lfXBhcnNlRnJvbVN0cmluZyhBKXtpZih0aGlzLl9jdXJyZW50RnJhZ21lbnQ9W10sdGhpcy5fc3RhY2s9W10sdGhpcy5fZXJyb3JDb2RlPTAsdGhpcy5wYXJzZVhtbChBKSwwIT09dGhpcy5fZXJyb3JDb2RlKXJldHVybjtjb25zdFtlXT10aGlzLl9jdXJyZW50RnJhZ21lbnQ7cmV0dXJuIGU/e2RvY3VtZW50RWxlbWVudDplfTp2b2lkIDB9b25UZXh0KEEpe2lmKGZ1bmN0aW9uKEEpe2ZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrKylpZighUmcoQSxlKSlyZXR1cm4hMTtyZXR1cm4hMH0oQSkpcmV0dXJuO2NvbnN0IGU9bmV3IE5nKCIjdGV4dCIsQSk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2goZSl9b25DZGF0YShBKXtjb25zdCBlPW5ldyBOZygiI3RleHQiLEEpO3RoaXMuX2N1cnJlbnRGcmFnbWVudC5wdXNoKGUpfW9uQmVnaW5FbGVtZW50KEEsZSx0KXt0aGlzLl9sb3dlckNhc2VOYW1lJiYoQT1BLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGk9bmV3IE5nKEEpO2kuY2hpbGROb2Rlcz1bXSx0aGlzLl9oYXNBdHRyaWJ1dGVzJiYoaS5hdHRyaWJ1dGVzPWUpLHRoaXMuX2N1cnJlbnRGcmFnbWVudC5wdXNoKGkpLHR8fCh0aGlzLl9zdGFjay5wdXNoKHRoaXMuX2N1cnJlbnRGcmFnbWVudCksdGhpcy5fY3VycmVudEZyYWdtZW50PWkuY2hpbGROb2Rlcyl9b25FbmRFbGVtZW50KEEpe3RoaXMuX2N1cnJlbnRGcmFnbWVudD10aGlzLl9zdGFjay5wb3AoKXx8W107Y29uc3QgZT10aGlzLl9jdXJyZW50RnJhZ21lbnQuYXQoLTEpO2lmKCFlKXJldHVybiBudWxsO2Zvcihjb25zdCBBIG9mIGUuY2hpbGROb2RlcylBLnBhcmVudE5vZGU9ZTtyZXR1cm4gZX1vbkVycm9yKEEpe3RoaXMuX2Vycm9yQ29kZT1BfX1jbGFzcyBVZ3tjb25zdHJ1Y3RvcihBKXtBPXRoaXMuX3JlcGFpcihBKTtjb25zdCBlPW5ldyB4Zyh7bG93ZXJDYXNlTmFtZTohMH0pLnBhcnNlRnJvbVN0cmluZyhBKTt0aGlzLl9tZXRhZGF0YU1hcD1uZXcgTWFwLHRoaXMuX2RhdGE9QSxlJiZ0aGlzLl9wYXJzZShlKX1fcmVwYWlyKEEpe3JldHVybiBBLnJlcGxhY2UoL15bXjxdKy8sIiIpLnJlcGxhY2VBbGwoLz5cXDM3NlxcMzc3KFtePF0rKS9nLChmdW5jdGlvbihBLGUpe2NvbnN0IHQ9ZS5yZXBsYWNlQWxsKC9cXChbMC0zXSkoWzAtN10pKFswLTddKS9nLChmdW5jdGlvbihBLGUsdCxpKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg2NCplKzgqdCsxKmkpfSkpLnJlcGxhY2VBbGwoLyYoYW1wfGFwb3N8Z3R8bHR8cXVvdCk7L2csKGZ1bmN0aW9uKEEsZSl7c3dpdGNoKGUpe2Nhc2UiYW1wIjpyZXR1cm4iJiI7Y2FzZSJhcG9zIjpyZXR1cm4iJyI7Y2FzZSJndCI6cmV0dXJuIj4iO2Nhc2UibHQiOnJldHVybiI8IjtjYXNlInF1b3QiOnJldHVybiciJ310aHJvdyBuZXcgRXJyb3IoYF9yZXBhaXI6ICR7ZX0gaXNuJ3QgZGVmaW5lZC5gKX0pKSxpPVsiPiJdO2ZvcihsZXQgQT0wLGU9dC5sZW5ndGg7QTxlO0ErPTIpe2NvbnN0IGU9MjU2KnQuY2hhckNvZGVBdChBKSt0LmNoYXJDb2RlQXQoQSsxKTtlPj0zMiYmZTwxMjcmJjYwIT09ZSYmNjIhPT1lJiYzOCE9PWU/aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpOmkucHVzaCgiJiN4IisoNjU1MzYrZSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKSsiOyIpfXJldHVybiBpLmpvaW4oIiIpfSkpfV9nZXRTZXF1ZW5jZShBKXtjb25zdCBlPUEubm9kZU5hbWU7cmV0dXJuInJkZjpiYWciIT09ZSYmInJkZjpzZXEiIT09ZSYmInJkZjphbHQiIT09ZT9udWxsOkEuY2hpbGROb2Rlcy5maWx0ZXIoKEE9PiJyZGY6bGkiPT09QS5ub2RlTmFtZSkpfV9wYXJzZUFycmF5KEEpe2lmKCFBLmhhc0NoaWxkTm9kZXMoKSlyZXR1cm47Y29uc3RbZV09QS5jaGlsZE5vZGVzLHQ9dGhpcy5fZ2V0U2VxdWVuY2UoZSl8fFtdO3RoaXMuX21ldGFkYXRhTWFwLnNldChBLm5vZGVOYW1lLHQubWFwKChBPT5BLnRleHRDb250ZW50LnRyaW0oKSkpKX1fcGFyc2UoQSl7bGV0IGU9QS5kb2N1bWVudEVsZW1lbnQ7aWYoInJkZjpyZGYiIT09ZS5ub2RlTmFtZSlmb3IoZT1lLmZpcnN0Q2hpbGQ7ZSYmInJkZjpyZGYiIT09ZS5ub2RlTmFtZTspZT1lLm5leHRTaWJsaW5nO2lmKGUmJiJyZGY6cmRmIj09PWUubm9kZU5hbWUmJmUuaGFzQ2hpbGROb2RlcygpKWZvcihjb25zdCBBIG9mIGUuY2hpbGROb2RlcylpZigicmRmOmRlc2NyaXB0aW9uIj09PUEubm9kZU5hbWUpZm9yKGNvbnN0IGUgb2YgQS5jaGlsZE5vZGVzKXtjb25zdCBBPWUubm9kZU5hbWU7c3dpdGNoKEEpe2Nhc2UiI3RleHQiOmNvbnRpbnVlO2Nhc2UiZGM6Y3JlYXRvciI6Y2FzZSJkYzpzdWJqZWN0Ijp0aGlzLl9wYXJzZUFycmF5KGUpO2NvbnRpbnVlfXRoaXMuX21ldGFkYXRhTWFwLnNldChBLGUudGV4dENvbnRlbnQudHJpbSgpKX19Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybntwYXJzZWREYXRhOnRoaXMuX21ldGFkYXRhTWFwLHJhd0RhdGE6dGhpcy5fZGF0YX19fWNsYXNzIE1nIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKGUpLHRoaXMuc3RyPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLmRlY3J5cHQ9dCx0aGlzLm5leHRDaHVuaz1udWxsLHRoaXMuaW5pdGlhbGl6ZWQ9ITF9cmVhZEJsb2NrKCl7bGV0IEE7aWYodGhpcy5pbml0aWFsaXplZD9BPXRoaXMubmV4dENodW5rOihBPXRoaXMuc3RyLmdldEJ5dGVzKDUxMiksdGhpcy5pbml0aWFsaXplZD0hMCksIUF8fDA9PT1BLmxlbmd0aClyZXR1cm4gdm9pZCh0aGlzLmVvZj0hMCk7dGhpcy5uZXh0Q2h1bms9dGhpcy5zdHIuZ2V0Qnl0ZXMoNTEyKTtjb25zdCBlPXRoaXMubmV4dENodW5rPy5sZW5ndGg+MDtBPSgwLHRoaXMuZGVjcnlwdCkoQSwhZSk7Y29uc3QgdD10aGlzLmJ1ZmZlckxlbmd0aCxpPXQrQS5sZW5ndGg7dGhpcy5lbnN1cmVCdWZmZXIoaSkuc2V0KEEsdCksdGhpcy5idWZmZXJMZW5ndGg9aX19Y2xhc3MgTGd7Y29uc3RydWN0b3IoQSl7dGhpcy5hPTAsdGhpcy5iPTA7Y29uc3QgZT1uZXcgVWludDhBcnJheSgyNTYpLHQ9QS5sZW5ndGg7Zm9yKGxldCBBPTA7QTwyNTY7KytBKWVbQV09QTtmb3IobGV0IGk9MCxhPTA7aTwyNTY7KytpKXtjb25zdCBzPWVbaV07YT1hK3MrQVtpJXRdJjI1NSxlW2ldPWVbYV0sZVthXT1zfXRoaXMucz1lfWVuY3J5cHRCbG9jayhBKXtsZXQgZT10aGlzLmEsdD10aGlzLmI7Y29uc3QgaT10aGlzLnMsYT1BLmxlbmd0aCxzPW5ldyBVaW50OEFycmF5KGEpO2ZvcihsZXQgbj0wO248YTsrK24pe2U9ZSsxJjI1NTtjb25zdCBhPWlbZV07dD10K2EmMjU1O2NvbnN0IHI9aVt0XTtpW2VdPXIsaVt0XT1hLHNbbl09QVtuXV5pW2ErciYyNTVdfXJldHVybiB0aGlzLmE9ZSx0aGlzLmI9dCxzfWRlY3J5cHRCbG9jayhBKXtyZXR1cm4gdGhpcy5lbmNyeXB0QmxvY2soQSl9ZW5jcnlwdChBKXtyZXR1cm4gdGhpcy5lbmNyeXB0QmxvY2soQSl9fWNvbnN0IEpnPWZ1bmN0aW9uKCl7Y29uc3QgQT1uZXcgVWludDhBcnJheShbNywxMiwxNywyMiw3LDEyLDE3LDIyLDcsMTIsMTcsMjIsNywxMiwxNywyMiw1LDksMTQsMjAsNSw5LDE0LDIwLDUsOSwxNCwyMCw1LDksMTQsMjAsNCwxMSwxNiwyMyw0LDExLDE2LDIzLDQsMTEsMTYsMjMsNCwxMSwxNiwyMyw2LDEwLDE1LDIxLDYsMTAsMTUsMjEsNiwxMCwxNSwyMSw2LDEwLDE1LDIxXSksZT1uZXcgSW50MzJBcnJheShbLTY4MDg3NjkzNiwtMzg5NTY0NTg2LDYwNjEwNTgxOSwtMTA0NDUyNTMzMCwtMTc2NDE4ODk3LDEyMDAwODA0MjYsLTE0NzMyMzEzNDEsLTQ1NzA1OTgzLDE3NzAwMzU0MTYsLTE5NTg0MTQ0MTcsLTQyMDYzLC0xOTkwNDA0MTYyLDE4MDQ2MDM2ODIsLTQwMzQxMTAxLC0xNTAyMDAyMjkwLDEyMzY1MzUzMjksLTE2NTc5NjUxMCwtMTA2OTUwMTYzMiw2NDM3MTc3MTMsLTM3Mzg5NzMwMiwtNzAxNTU4NjkxLDM4MDE2MDgzLC02NjA0NzgzMzUsLTQwNTUzNzg0OCw1Njg0NDY0MzgsLTEwMTk4MDM2OTAsLTE4NzM2Mzk2MSwxMTYzNTMxNTAxLC0xNDQ0NjgxNDY3LC01MTQwMzc4NCwxNzM1MzI4NDczLC0xOTI2NjA3NzM0LC0zNzg1NTgsLTIwMjI1NzQ0NjMsMTgzOTAzMDU2MiwtMzUzMDk1NTYsLTE1MzA5OTIwNjAsMTI3Mjg5MzM1MywtMTU1NDk3NjMyLC0xMDk0NzMwNjQwLDY4MTI3OTE3NCwtMzU4NTM3MjIyLC03MjI1MjE5NzksNzYwMjkxODksLTY0MDM2NDQ4NywtNDIxODE1ODM1LDUzMDc0MjUyMCwtOTk1MzM4NjUxLC0xOTg2MzA4NDQsMTEyNjg5MTQxNSwtMTQxNjM1NDkwNSwtNTc0MzQwNTUsMTcwMDQ4NTU3MSwtMTg5NDk4NjYwNiwtMTA1MTUyMywtMjA1NDkyMjc5OSwxODczMzEzMzU5LC0zMDYxMTc0NCwtMTU2MDE5ODM4MCwxMzA5MTUxNjQ5LC0xNDU1MjMwNzAsLTExMjAyMTAzNzksNzE4Nzg3MjU5LC0zNDM0ODU1NTFdKTtyZXR1cm4gZnVuY3Rpb24odCxpLGEpe2xldCBzPTE3MzI1ODQxOTMsbj0tMjcxNzMzODc5LHI9LTE3MzI1ODQxOTQsZz0yNzE3MzM4Nzg7Y29uc3Qgbz1hKzcyJi02NCxJPW5ldyBVaW50OEFycmF5KG8pO2xldCBjLGg7Zm9yKGM9MDtjPGE7KytjKUlbY109dFtpKytdO0lbYysrXT0xMjg7Y29uc3QgQz1vLTg7Zm9yKDtjPEM7KUlbYysrXT0wO0lbYysrXT1hPDwzJjI1NSxJW2MrK109YT4+NSYyNTUsSVtjKytdPWE+PjEzJjI1NSxJW2MrK109YT4+MjEmMjU1LElbYysrXT1hPj4+MjkmMjU1LElbYysrXT0wLElbYysrXT0wLElbYysrXT0wO2NvbnN0IEI9bmV3IEludDMyQXJyYXkoMTYpO2ZvcihjPTA7YzxvOyl7Zm9yKGg9MDtoPDE2OysraCxjKz00KUJbaF09SVtjXXxJW2MrMV08PDh8SVtjKzJdPDwxNnxJW2MrM108PDI0O2xldCB0LGksYT1zLG89bixDPXIsbD1nO2ZvcihoPTA7aDw2NDsrK2gpe2g8MTY/KHQ9byZDfH5vJmwsaT1oKTpoPDMyPyh0PWwmb3x+bCZDLGk9NSpoKzEmMTUpOmg8NDg/KHQ9b15DXmwsaT0zKmgrNSYxNSk6KHQ9Q14ob3x+bCksaT03KmgmMTUpO2NvbnN0IHM9bCxuPWErdCtlW2hdK0JbaV18MCxyPUFbaF07bD1DLEM9byxvPW8rKG48PHJ8bj4+PjMyLXIpfDAsYT1zfXM9cythfDAsbj1uK298MCxyPXIrQ3wwLGc9ZytsfDB9cmV0dXJuIG5ldyBVaW50OEFycmF5KFsyNTUmcyxzPj44JjI1NSxzPj4xNiYyNTUscz4+PjI0JjI1NSwyNTUmbixuPj44JjI1NSxuPj4xNiYyNTUsbj4+PjI0JjI1NSwyNTUmcixyPj44JjI1NSxyPj4xNiYyNTUscj4+PjI0JjI1NSwyNTUmZyxnPj44JjI1NSxnPj4xNiYyNTUsZz4+PjI0JjI1NV0pfX0oKTtjbGFzcyBIZ3tjb25zdHJ1Y3RvcihBLGUpe3RoaXMuaGlnaD0wfEEsdGhpcy5sb3c9MHxlfWFuZChBKXt0aGlzLmhpZ2gmPUEuaGlnaCx0aGlzLmxvdyY9QS5sb3d9eG9yKEEpe3RoaXMuaGlnaF49QS5oaWdoLHRoaXMubG93Xj1BLmxvd31vcihBKXt0aGlzLmhpZ2h8PUEuaGlnaCx0aGlzLmxvd3w9QS5sb3d9c2hpZnRSaWdodChBKXtBPj0zMj8odGhpcy5sb3c9dGhpcy5oaWdoPj4+QS0zMnwwLHRoaXMuaGlnaD0wKToodGhpcy5sb3c9dGhpcy5sb3c+Pj5BfHRoaXMuaGlnaDw8MzItQSx0aGlzLmhpZ2g9dGhpcy5oaWdoPj4+QXwwKX1zaGlmdExlZnQoQSl7QT49MzI/KHRoaXMuaGlnaD10aGlzLmxvdzw8QS0zMix0aGlzLmxvdz0wKToodGhpcy5oaWdoPXRoaXMuaGlnaDw8QXx0aGlzLmxvdz4+PjMyLUEsdGhpcy5sb3c8PD1BKX1yb3RhdGVSaWdodChBKXtsZXQgZSx0OzMyJkE/KHQ9dGhpcy5sb3csZT10aGlzLmhpZ2gpOihlPXRoaXMubG93LHQ9dGhpcy5oaWdoKSxBJj0zMSx0aGlzLmxvdz1lPj4+QXx0PDwzMi1BLHRoaXMuaGlnaD10Pj4+QXxlPDwzMi1BfW5vdCgpe3RoaXMuaGlnaD1+dGhpcy5oaWdoLHRoaXMubG93PX50aGlzLmxvd31hZGQoQSl7Y29uc3QgZT0odGhpcy5sb3c+Pj4wKSsoQS5sb3c+Pj4wKTtsZXQgdD0odGhpcy5oaWdoPj4+MCkrKEEuaGlnaD4+PjApO2U+NDI5NDk2NzI5NSYmKHQrPTEpLHRoaXMubG93PTB8ZSx0aGlzLmhpZ2g9MHx0fWNvcHlUbyhBLGUpe0FbZV09dGhpcy5oaWdoPj4+MjQmMjU1LEFbZSsxXT10aGlzLmhpZ2g+PjE2JjI1NSxBW2UrMl09dGhpcy5oaWdoPj44JjI1NSxBW2UrM109MjU1JnRoaXMuaGlnaCxBW2UrNF09dGhpcy5sb3c+Pj4yNCYyNTUsQVtlKzVdPXRoaXMubG93Pj4xNiYyNTUsQVtlKzZdPXRoaXMubG93Pj44JjI1NSxBW2UrN109MjU1JnRoaXMubG93fWFzc2lnbihBKXt0aGlzLmhpZ2g9QS5oaWdoLHRoaXMubG93PUEubG93fX1jb25zdCBZZz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoQSxlKXtyZXR1cm4gQT4+PmV8QTw8MzItZX1mdW5jdGlvbiBlKEEsZSx0KXtyZXR1cm4gQSZlXn5BJnR9ZnVuY3Rpb24gdChBLGUsdCl7cmV0dXJuIEEmZV5BJnReZSZ0fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIEEoZSwyKV5BKGUsMTMpXkEoZSwyMil9ZnVuY3Rpb24gYShlKXtyZXR1cm4gQShlLDYpXkEoZSwxMSleQShlLDI1KX1mdW5jdGlvbiBzKGUpe3JldHVybiBBKGUsNyleQShlLDE4KV5lPj4+M31jb25zdCBuPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO3JldHVybiBmdW5jdGlvbihyLGcsbyl7bGV0IEk9MTc3OTAzMzcwMyxjPTMxNDQxMzQyNzcsaD0xMDEzOTA0MjQyLEM9Mjc3MzQ4MDc2MixCPTEzNTk4OTMxMTksbD0yNjAwODIyOTI0LFE9NTI4NzM0NjM1LEU9MTU0MTQ1OTIyNTtjb25zdCB1PTY0Kk1hdGguY2VpbCgobys5KS82NCksZD1uZXcgVWludDhBcnJheSh1KTtsZXQgZixwO2ZvcihmPTA7ZjxvOysrZilkW2ZdPXJbZysrXTtkW2YrK109MTI4O2NvbnN0IG09dS04O2Zvcig7ZjxtOylkW2YrK109MDtkW2YrK109MCxkW2YrK109MCxkW2YrK109MCxkW2YrK109bz4+PjI5JjI1NSxkW2YrK109bz4+MjEmMjU1LGRbZisrXT1vPj4xMyYyNTUsZFtmKytdPW8+PjUmMjU1LGRbZisrXT1vPDwzJjI1NTtjb25zdCB5PW5ldyBVaW50MzJBcnJheSg2NCk7Zm9yKGY9MDtmPHU7KXtmb3IocD0wO3A8MTY7KytwKXlbcF09ZFtmXTw8MjR8ZFtmKzFdPDwxNnxkW2YrMl08PDh8ZFtmKzNdLGYrPTQ7Zm9yKHA9MTY7cDw2NDsrK3ApeVtwXT0wfChBKHc9eVtwLTJdLDE3KV5BKHcsMTkpXnc+Pj4xMCkreVtwLTddK3MoeVtwLTE1XSkreVtwLTE2XTtsZXQgcixnLG89SSx1PWMsbT1oLEQ9QyxiPUIsaz1sLEY9USxTPUU7Zm9yKHA9MDtwPDY0OysrcClyPVMrYShiKStlKGIsayxGKStuW3BdK3lbcF0sZz1pKG8pK3Qobyx1LG0pLFM9RixGPWssaz1iLGI9RCtyfDAsRD1tLG09dSx1PW8sbz1yK2d8MDtJPUkrb3wwLGM9Yyt1fDAsaD1oK218MCxDPUMrRHwwLEI9QitifDAsbD1sK2t8MCxRPVErRnwwLEU9RStTfDB9dmFyIHc7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGM+PjI0JjI1NSxjPj4xNiYyNTUsYz4+OCYyNTUsMjU1JmMsaD4+MjQmMjU1LGg+PjE2JjI1NSxoPj44JjI1NSwyNTUmaCxDPj4yNCYyNTUsQz4+MTYmMjU1LEM+PjgmMjU1LDI1NSZDLEI+PjI0JjI1NSxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsbD4+MjQmMjU1LGw+PjE2JjI1NSxsPj44JjI1NSwyNTUmbCxRPj4yNCYyNTUsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRLEU+PjI0JjI1NSxFPj4xNiYyNTUsRT4+OCYyNTUsMjU1JkVdKX19KCksdmc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKEEsZSx0LGksYSl7QS5hc3NpZ24oZSksQS5hbmQodCksYS5hc3NpZ24oZSksYS5ub3QoKSxhLmFuZChpKSxBLnhvcihhKX1mdW5jdGlvbiBlKEEsZSx0LGksYSl7QS5hc3NpZ24oZSksQS5hbmQodCksYS5hc3NpZ24oZSksYS5hbmQoaSksQS54b3IoYSksYS5hc3NpZ24odCksYS5hbmQoaSksQS54b3IoYSl9ZnVuY3Rpb24gdChBLGUsdCl7QS5hc3NpZ24oZSksQS5yb3RhdGVSaWdodCgyOCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCgzNCksQS54b3IodCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCgzOSksQS54b3IodCl9ZnVuY3Rpb24gaShBLGUsdCl7QS5hc3NpZ24oZSksQS5yb3RhdGVSaWdodCgxNCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCgxOCksQS54b3IodCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCg0MSksQS54b3IodCl9ZnVuY3Rpb24gYShBLGUsdCl7QS5hc3NpZ24oZSksQS5yb3RhdGVSaWdodCgxKSx0LmFzc2lnbihlKSx0LnJvdGF0ZVJpZ2h0KDgpLEEueG9yKHQpLHQuYXNzaWduKGUpLHQuc2hpZnRSaWdodCg3KSxBLnhvcih0KX1mdW5jdGlvbiBzKEEsZSx0KXtBLmFzc2lnbihlKSxBLnJvdGF0ZVJpZ2h0KDE5KSx0LmFzc2lnbihlKSx0LnJvdGF0ZVJpZ2h0KDYxKSxBLnhvcih0KSx0LmFzc2lnbihlKSx0LnNoaWZ0UmlnaHQoNiksQS54b3IodCl9Y29uc3Qgbj1bbmV3IEhnKDExMTYzNTI0MDgsMzYwOTc2NzQ1OCksbmV3IEhnKDE4OTk0NDc0NDEsNjAyODkxNzI1KSxuZXcgSGcoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxuZXcgSGcoMzkyMTAwOTU3MywyMTczMjk1NTQ4KSxuZXcgSGcoOTYxOTg3MTYzLDQwODE2Mjg0NzIpLG5ldyBIZygxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLG5ldyBIZygyNDUzNjM1NzQ4LDI5Mzc2NzE1NzkpLG5ldyBIZygyODcwNzYzMjIxLDM2NjQ2MDk1NjApLG5ldyBIZygzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLG5ldyBIZygzMTA1OTg0MDEsMTE2NDk5NjU0MiksbmV3IEhnKDYwNzIyNTI3OCwxMzIzNjEwNzY0KSxuZXcgSGcoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxuZXcgSGcoMTkyNTA3ODM4OCw0MDY4MTgyMzgzKSxuZXcgSGcoMjE2MjA3ODIwNiw5OTEzMzYxMTMpLG5ldyBIZygyNjE0ODg4MTAzLDYzMzgwMzMxNyksbmV3IEhnKDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCksbmV3IEhnKDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCksbmV3IEhnKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxuZXcgSGcoMjY0MzQ3MDc4LDIzNDEyNjI3NzMpLG5ldyBIZyg2MDQ4MDc2MjgsMjAwNzgwMDkzMyksbmV3IEhnKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxuZXcgSGcoMTI0OTE1MDEyMiwxODU2NDMxMjM1KSxuZXcgSGcoMTU1NTA4MTY5MiwzMTc1MjE4MTMyKSxuZXcgSGcoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxuZXcgSGcoMjU1NDIyMDg4MiwzOTk5NzE5MzM5KSxuZXcgSGcoMjgyMTgzNDM0OSw3NjY3ODQwMTYpLG5ldyBIZygyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLG5ldyBIZygzMjEwMzEzNjcxLDMyMDMzMzc5NTYpLG5ldyBIZygzMzM2NTcxODkxLDEwMzQ0NTcwMjYpLG5ldyBIZygzNTg0NTI4NzExLDI0NjY5NDg5MDEpLG5ldyBIZygxMTM5MjY5OTMsMzc1ODMyNjM4MyksbmV3IEhnKDMzODI0MTg5NSwxNjg3MTc5MzYpLG5ldyBIZyg2NjYzMDcyMDUsMTE4ODE3OTk2NCksbmV3IEhnKDc3MzUyOTkxMiwxNTQ2MDQ1NzM0KSxuZXcgSGcoMTI5NDc1NzM3MiwxNTIyODA1NDg1KSxuZXcgSGcoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxuZXcgSGcoMTY5NTE4MzcwMCwyMzQzNTI3MzkwKSxuZXcgSGcoMTk4NjY2MTA1MSwxMDE0NDc3NDgwKSxuZXcgSGcoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxuZXcgSGcoMjQ1Njk1NjAzNywzNDQwNzc2MjcpLG5ldyBIZygyNzMwNDg1OTIxLDEyOTA4NjM0NjApLG5ldyBIZygyODIwMzAyNDExLDMxNTg0NTQyNzMpLG5ldyBIZygzMjU5NzMwODAwLDM1MDU5NTI2NTcpLG5ldyBIZygzMzQ1NzY0NzcxLDEwNjIxNzAwOCksbmV3IEhnKDM1MTYwNjU4MTcsMzYwNjAwODM0NCksbmV3IEhnKDM2MDAzNTI4MDQsMTQzMjcyNTc3NiksbmV3IEhnKDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCksbmV3IEhnKDI3NTQyMzM0NCw4NTExNjk3MjApLG5ldyBIZyg0MzAyMjc3MzQsMzEwMDgyMzc1MiksbmV3IEhnKDUwNjk0ODYxNiwxMzYzMjU4MTk1KSxuZXcgSGcoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLG5ldyBIZyg4ODM5OTc4NzcsMzc4NTA1MDI4MCksbmV3IEhnKDk1ODEzOTU3MSwzMzE4MzA3NDI3KSxuZXcgSGcoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxuZXcgSGcoMTUzNzAwMjA2MywyMDAzMDM0OTk1KSxuZXcgSGcoMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5KSxuZXcgSGcoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxuZXcgSGcoMjAyNDEwNDgxNSwxMTI1NTkyOTI4KSxuZXcgSGcoMjIyNzczMDQ1MiwyNzE2OTA0MzA2KSxuZXcgSGcoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLG5ldyBIZygyNDI4NDM2NDc0LDU5MzY5ODM0NCksbmV3IEhnKDI3NTY3MzQxODcsMzczMzExMDI0OSksbmV3IEhnKDMyMDQwMzE0NzksMjk5OTM1MTU3MyksbmV3IEhnKDMzMjkzMjUyOTgsMzgxNTkyMDQyNyksbmV3IEhnKDMzOTE1Njk2MTQsMzkyODM4MzkwMCksbmV3IEhnKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxuZXcgSGcoMzk0MDE4NzYwNiwzNDU0MDY5NTM0KSxuZXcgSGcoNDExODYzMDI3MSw0MDAwMjM5OTkyKSxuZXcgSGcoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLG5ldyBIZygxNzQyOTI0MjEsMjczMTA1NTI3MCksbmV3IEhnKDI4OTM4MDM1NiwzMjAzOTkzMDA2KSxuZXcgSGcoNDYwMzkzMjY5LDMyMDYyMDMxNSksbmV3IEhnKDY4NTQ3MTczMyw1ODc0OTY4MzYpLG5ldyBIZyg4NTIxNDI5NzEsMTA4Njc5Mjg1MSksbmV3IEhnKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxuZXcgSGcoMTEyNjAwMDU4MCwyNjE4Mjk3Njc2KSxuZXcgSGcoMTI4ODAzMzQ3MCwzNDA5ODU1MTU4KSxuZXcgSGcoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxuZXcgSGcoMTYwNzE2NzkxNSw5ODcxNjc0NjgpLG5ldyBIZygxODE2NDAyMzE2LDEyNDYxODk1OTEpXTtyZXR1cm4gZnVuY3Rpb24ocixnLG8sST0hMSl7bGV0IGMsaCxDLEIsbCxRLEUsdTtJPyhjPW5ldyBIZygzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLGg9bmV3IEhnKDE2NTQyNzAyNTAsOTE0MTUwNjYzKSxDPW5ldyBIZygyNDM4NTI5MzcwLDgxMjcwMjk5OSksQj1uZXcgSGcoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLGw9bmV3IEhnKDE3MzE0MDU0MTUsNDI5MDc3NTg1NyksUT1uZXcgSGcoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxFPW5ldyBIZygzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLHU9bmV3IEhnKDEyMDMwNjI4MTMsMzIwNDA3NTQyOCkpOihjPW5ldyBIZygxNzc5MDMzNzAzLDQwODkyMzU3MjApLGg9bmV3IEhnKDMxNDQxMzQyNzcsMjIyNzg3MzU5NSksQz1uZXcgSGcoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxCPW5ldyBIZygyNzczNDgwNzYyLDE1OTU3NTAxMjkpLGw9bmV3IEhnKDEzNTk4OTMxMTksMjkxNzU2NTEzNyksUT1uZXcgSGcoMjYwMDgyMjkyNCw3MjU1MTExOTkpLEU9bmV3IEhnKDUyODczNDYzNSw0MjE1Mzg5NTQ3KSx1PW5ldyBIZygxNTQxNDU5MjI1LDMyNzAzMzIwOSkpO2NvbnN0IGQ9MTI4Kk1hdGguY2VpbCgobysxNykvMTI4KSxmPW5ldyBVaW50OEFycmF5KGQpO2xldCBwLG07Zm9yKHA9MDtwPG87KytwKWZbcF09cltnKytdO2ZbcCsrXT0xMjg7Y29uc3QgeT1kLTE2O2Zvcig7cDx5OylmW3ArK109MDtmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109bz4+PjI5JjI1NSxmW3ArK109bz4+MjEmMjU1LGZbcCsrXT1vPj4xMyYyNTUsZltwKytdPW8+PjUmMjU1LGZbcCsrXT1vPDwzJjI1NTtjb25zdCB3PW5ldyBBcnJheSg4MCk7Zm9yKHA9MDtwPDgwO3ArKyl3W3BdPW5ldyBIZygwLDApO2xldCBEPW5ldyBIZygwLDApLGI9bmV3IEhnKDAsMCksaz1uZXcgSGcoMCwwKSxGPW5ldyBIZygwLDApLFM9bmV3IEhnKDAsMCksUj1uZXcgSGcoMCwwKSxHPW5ldyBIZygwLDApLE49bmV3IEhnKDAsMCk7Y29uc3QgeD1uZXcgSGcoMCwwKSxVPW5ldyBIZygwLDApLE09bmV3IEhnKDAsMCksTD1uZXcgSGcoMCwwKTtsZXQgSixIO2ZvcihwPTA7cDxkOyl7Zm9yKG09MDttPDE2OysrbSl3W21dLmhpZ2g9ZltwXTw8MjR8ZltwKzFdPDwxNnxmW3ArMl08PDh8ZltwKzNdLHdbbV0ubG93PWZbcCs0XTw8MjR8ZltwKzVdPDwxNnxmW3ArNl08PDh8ZltwKzddLHArPTg7Zm9yKG09MTY7bTw4MDsrK20pSj13W21dLHMoSix3W20tMl0sTCksSi5hZGQod1ttLTddKSxhKE0sd1ttLTE1XSxMKSxKLmFkZChNKSxKLmFkZCh3W20tMTZdKTtmb3IoRC5hc3NpZ24oYyksYi5hc3NpZ24oaCksay5hc3NpZ24oQyksRi5hc3NpZ24oQiksUy5hc3NpZ24obCksUi5hc3NpZ24oUSksRy5hc3NpZ24oRSksTi5hc3NpZ24odSksbT0wO208ODA7KyttKXguYXNzaWduKE4pLGkoTSxTLEwpLHguYWRkKE0pLEEoTSxTLFIsRyxMKSx4LmFkZChNKSx4LmFkZChuW21dKSx4LmFkZCh3W21dKSx0KFUsRCxMKSxlKE0sRCxiLGssTCksVS5hZGQoTSksSj1OLE49RyxHPVIsUj1TLEYuYWRkKHgpLFM9RixGPWssaz1iLGI9RCxKLmFzc2lnbih4KSxKLmFkZChVKSxEPUo7Yy5hZGQoRCksaC5hZGQoYiksQy5hZGQoayksQi5hZGQoRiksbC5hZGQoUyksUS5hZGQoUiksRS5hZGQoRyksdS5hZGQoTil9cmV0dXJuIEk/KEg9bmV3IFVpbnQ4QXJyYXkoNDgpLGMuY29weVRvKEgsMCksaC5jb3B5VG8oSCw4KSxDLmNvcHlUbyhILDE2KSxCLmNvcHlUbyhILDI0KSxsLmNvcHlUbyhILDMyKSxRLmNvcHlUbyhILDQwKSk6KEg9bmV3IFVpbnQ4QXJyYXkoNjQpLGMuY29weVRvKEgsMCksaC5jb3B5VG8oSCw4KSxDLmNvcHlUbyhILDE2KSxCLmNvcHlUbyhILDI0KSxsLmNvcHlUbyhILDMyKSxRLmNvcHlUbyhILDQwKSxFLmNvcHlUbyhILDQ4KSx1LmNvcHlUbyhILDU2KSksSH19KCk7Y2xhc3MgS2d7ZGVjcnlwdEJsb2NrKEEpe3JldHVybiBBfWVuY3J5cHQoQSl7cmV0dXJuIEF9fWNsYXNzIHFne2NvbnN0cnVjdG9yKCl7dGhpcy5fcz1uZXcgVWludDhBcnJheShbOTksMTI0LDExOSwxMjMsMjQyLDEwNywxMTEsMTk3LDQ4LDEsMTAzLDQzLDI1NCwyMTUsMTcxLDExOCwyMDIsMTMwLDIwMSwxMjUsMjUwLDg5LDcxLDI0MCwxNzMsMjEyLDE2MiwxNzUsMTU2LDE2NCwxMTQsMTkyLDE4MywyNTMsMTQ3LDM4LDU0LDYzLDI0NywyMDQsNTIsMTY1LDIyOSwyNDEsMTEzLDIxNiw0OSwyMSw0LDE5OSwzNSwxOTUsMjQsMTUwLDUsMTU0LDcsMTgsMTI4LDIyNiwyMzUsMzksMTc4LDExNyw5LDEzMSw0NCwyNiwyNywxMTAsOTAsMTYwLDgyLDU5LDIxNCwxNzksNDEsMjI3LDQ3LDEzMiw4MywyMDksMCwyMzcsMzIsMjUyLDE3Nyw5MSwxMDYsMjAzLDE5MCw1Nyw3NCw3Niw4OCwyMDcsMjA4LDIzOSwxNzAsMjUxLDY3LDc3LDUxLDEzMyw2OSwyNDksMiwxMjcsODAsNjAsMTU5LDE2OCw4MSwxNjMsNjQsMTQzLDE0NiwxNTcsNTYsMjQ1LDE4OCwxODIsMjE4LDMzLDE2LDI1NSwyNDMsMjEwLDIwNSwxMiwxOSwyMzYsOTUsMTUxLDY4LDIzLDE5NiwxNjcsMTI2LDYxLDEwMCw5MywyNSwxMTUsOTYsMTI5LDc5LDIyMCwzNCw0MiwxNDQsMTM2LDcwLDIzOCwxODQsMjAsMjIyLDk0LDExLDIxOSwyMjQsNTAsNTgsMTAsNzMsNiwzNiw5MiwxOTQsMjExLDE3Miw5OCwxNDUsMTQ5LDIyOCwxMjEsMjMxLDIwMCw1NSwxMDksMTQxLDIxMyw3OCwxNjksMTA4LDg2LDI0NCwyMzQsMTAxLDEyMiwxNzQsOCwxODYsMTIwLDM3LDQ2LDI4LDE2NiwxODAsMTk4LDIzMiwyMjEsMTE2LDMxLDc1LDE4OSwxMzksMTM4LDExMiw2MiwxODEsMTAyLDcyLDMsMjQ2LDE0LDk3LDUzLDg3LDE4NSwxMzQsMTkzLDI5LDE1OCwyMjUsMjQ4LDE1MiwxNywxMDUsMjE3LDE0MiwxNDgsMTU1LDMwLDEzNSwyMzMsMjA2LDg1LDQwLDIyMywxNDAsMTYxLDEzNywxMywxOTEsMjMwLDY2LDEwNCw2NSwxNTMsNDUsMTUsMTc2LDg0LDE4NywyMl0pLHRoaXMuX2ludl9zPW5ldyBVaW50OEFycmF5KFs4Miw5LDEwNiwyMTMsNDgsNTQsMTY1LDU2LDE5MSw2NCwxNjMsMTU4LDEyOSwyNDMsMjE1LDI1MSwxMjQsMjI3LDU3LDEzMCwxNTUsNDcsMjU1LDEzNSw1MiwxNDIsNjcsNjgsMTk2LDIyMiwyMzMsMjAzLDg0LDEyMywxNDgsNTAsMTY2LDE5NCwzNSw2MSwyMzgsNzYsMTQ5LDExLDY2LDI1MCwxOTUsNzgsOCw0NiwxNjEsMTAyLDQwLDIxNywzNiwxNzgsMTE4LDkxLDE2Miw3MywxMDksMTM5LDIwOSwzNywxMTQsMjQ4LDI0NiwxMDAsMTM0LDEwNCwxNTIsMjIsMjEyLDE2NCw5MiwyMDQsOTMsMTAxLDE4MiwxNDYsMTA4LDExMiw3Miw4MCwyNTMsMjM3LDE4NSwyMTgsOTQsMjEsNzAsODcsMTY3LDE0MSwxNTcsMTMyLDE0NCwyMTYsMTcxLDAsMTQwLDE4OCwyMTEsMTAsMjQ3LDIyOCw4OCw1LDE4NCwxNzksNjksNiwyMDgsNDQsMzAsMTQzLDIwMiw2MywxNSwyLDE5MywxNzUsMTg5LDMsMSwxOSwxMzgsMTA3LDU4LDE0NSwxNyw2NSw3OSwxMDMsMjIwLDIzNCwxNTEsMjQyLDIwNywyMDYsMjQwLDE4MCwyMzAsMTE1LDE1MCwxNzIsMTE2LDM0LDIzMSwxNzMsNTMsMTMzLDIyNiwyNDksNTUsMjMyLDI4LDExNywyMjMsMTEwLDcxLDI0MSwyNiwxMTMsMjksNDEsMTk3LDEzNywxMTEsMTgzLDk4LDE0LDE3MCwyNCwxOTAsMjcsMjUyLDg2LDYyLDc1LDE5OCwyMTAsMTIxLDMyLDE1NCwyMTksMTkyLDI1NCwxMjAsMjA1LDkwLDI0NCwzMSwyMjEsMTY4LDUxLDEzNiw3LDE5OSw0OSwxNzcsMTgsMTYsODksMzksMTI4LDIzNiw5NSw5Niw4MSwxMjcsMTY5LDI1LDE4MSw3NCwxMyw0NSwyMjksMTIyLDE1OSwxNDcsMjAxLDE1NiwyMzksMTYwLDIyNCw1OSw3NywxNzQsNDIsMjQ1LDE3NiwyMDAsMjM1LDE4Nyw2MCwxMzEsODMsMTUzLDk3LDIzLDQzLDQsMTI2LDE4NiwxMTksMjE0LDM4LDIyNSwxMDUsMjAsOTksODUsMzMsMTIsMTI1XSksdGhpcy5fbWl4PW5ldyBVaW50MzJBcnJheShbMCwyMzU0NzQxODcsNDcwOTQ4Mzc0LDMwMzc2NTI3Nyw5NDE4OTY3NDgsOTA4OTMzNDE1LDYwNzUzMDU1NCw3MDg3ODA4NDksMTg4Mzc5MzQ5NiwyMTE4MjE0OTk1LDE4MTc4NjY4MzAsMTY0OTYzOTIzNywxMjE1MDYxMTA4LDExODEwNDUxMTksMTQxNzU2MTY5OCwxNTE3NzY3NTI5LDM3Njc1ODY5OTIsNDAwMzA2MTE3OSw0MjM2NDI5OTkwLDQwNjkyNDY4OTMsMzYzNTczMzY2MCwzNjAyNzcwMzI3LDMyOTkyNzg0NzQsMzQwMDUyODc2OSwyNDMwMTIyMjE2LDI2NjQ1NDM3MTUsMjM2MjA5MDIzOCwyMTkzODYyNjQ1LDI4MzUxMjMzOTYsMjgwMTEwNzQwNywzMDM1NTM1MDU4LDMxMzU3NDA4ODksMzY3ODEyNDkyMywzNTc2ODcwNTEyLDMzNDEzOTQyODUsMzM3NDM2MTcwMiwzODEwNDk2MzQzLDM5Nzc2NzUzNTYsNDI3OTA4MDI1Nyw0MDQzNjEwMTg2LDI4NzY0OTQ2MjcsMjc3NjI5MjkwNCwzMDc2NjM5MDI5LDMxMTA2NTA5NDIsMjQ3MjAxMTUzNSwyNjQwMjQzMjA0LDI0MDM3Mjg2NjUsMjE2OTMwMzA1OCwxMDAxMDg5OTk1LDg5OTgzNTU4NCw2NjY0NjQ3MzMsNjk5NDMyMTUwLDU5NzI3ODQ3LDIyNjkwNjg2MCw1MzA0MDA3NTMsMjk0OTMwNjgyLDEyNzMxNjg3ODcsMTE3Mjk2NzA2NCwxNDc1NDE4NTAxLDE1MDk0MzA0MTQsMTk0MjQzNTc3NSwyMTEwNjY3NDQ0LDE4NzYyNDE4MzMsMTY0MTgxNjIyNiwyOTEwMjE5NzY2LDI3NDMwMzQxMDksMjk3NjE1MTUyMCwzMjExNjIzMTQ3LDI1MDUyMDIxMzgsMjYwNjQ1Mzk2OSwyMzAyNjkwMjUyLDIyNjk3Mjg0NTUsMzcxMTgyOTQyMiwzNTQzNTk5MjY5LDMyNDA4OTQzOTIsMzQ3NTMxMzMzMSwzODQzNjk5MDc0LDM5NDM5MDY0NDEsNDE3ODA2MjIyOCw0MTQ0MDQ3Nzc1LDEzMDY5NjczNjYsMTEzOTc4MTcwOSwxMzc0OTg4MTEyLDE2MTA0NTk3MzksMTk3NTY4MzQzNCwyMDc2OTM1MjY1LDE3NzUyNzY5MjQsMTc0MjMxNTEyNywxMDM0ODY3OTk4LDg2NjYzNzg0NSw1NjYwMjE4OTYsODAwNDQwODM1LDkyOTg3Njk4LDE5MzE5NTA2NSw0Mjk0NTYxNjQsMzk1NDQxNzExLDE5ODQ4MTI2ODUsMjAxNzc3ODU2NiwxNzg0NjYzMTk1LDE2ODM0MDcyNDgsMTMxNTU2MjE0NSwxMDgwMDk0NjM0LDEzODM4NTYzMTEsMTU1MTAzNzg4NCwxMDEwMzk4MjksMTM1MDUwMjA2LDQzNzc1NzEyMywzMzc1NTM4NjQsMTA0MjM4NTY1Nyw4MDc5NjI2MTAsNTczODA0NzgzLDc0MjAzOTAxMiwyNTMxMDY3NDUzLDI1NjQwMzMzMzQsMjMyODgyODk3MSwyMjI3NTczMDI0LDI5MzU1NjY4NjUsMjcwMDA5OTM1NCwzMDAxNzU1NjU1LDMxNjg5MzcyMjgsMzg2ODU1MjgwNSwzOTAyNTYzMTgyLDQyMDMxODExNzEsNDEwMjk3NzkxMiwzNzM2MTY0OTM3LDM1MDE3NDE4OTAsMzI2NTQ3ODc1MSwzNDMzNzEyOTgwLDExMDYwNDE1OTEsMTM0MDQ2MzEwMCwxNTc2OTc2NjA5LDE0MDg3NDkwMzQsMjA0MzIxMTQ4MywyMDA5MTk1NDcyLDE3MDg4NDgzMzMsMTgwOTA1NDE1MCw4MzI4NzcyMzEsMTA2ODM1MTM5Niw3NjY5NDU0NjUsNTk5NzYyMzU0LDE1OTQxNzk4NywxMjY0NTQ2NjQsMzYxOTI5ODc3LDQ2MzE4MDE5MCwyNzA5MjYwODcxLDI5NDM2ODIzODAsMzE3ODEwNjk2MSwzMDA5ODc5Mzg2LDI1NzI2OTcxOTUsMjUzODY4MTE4NCwyMjM2MjI4NzMzLDIzMzY0MzQ1NTAsMzUwOTg3MTEzNSwzNzQ1MzQ1MzAwLDM0NDE4NTAzNzcsMzI3NDY2NzI2NiwzOTEwMTYxOTcxLDM4NzcxOTg2NDgsNDExMDU2ODQ4NSw0MjExODE4Nzk4LDI1OTc4MDY0NzYsMjQ5NzYwNDc0MywyMjYxMDg5MTc4LDIyOTUxMDEwNzMsMjczMzg1NjE2MCwyOTAyMDg3ODUxLDMyMDI0MzcwNDYsMjk2ODAxMTQ1MywzOTM2MjkxMjg0LDM4MzUwMzY4OTUsNDEzNjQ0MDc3MCw0MTY5NDA4MjAxLDM1MzU0ODY0NTYsMzcwMjY2NTQ1OSwzNDY3MTkyMzAyLDMyMzE3MjIyMTMsMjA1MTUxODc4MCwxOTUxMzE3MDQ3LDE3MTY4OTA0MTAsMTc1MDkwMjMwNSwxMTEzODE4Mzg0LDEyODIwNTAwNzUsMTU4NDUwNDU4MiwxMzUwMDc4OTg5LDE2ODgxMDg1Miw2NzU1NjQ2MywzNzEwNDkzMzAsNDA0MDE2NzYxLDg0MTczOTU5MiwxMDA4OTE4NTk1LDc3NTU1MDgxNCw1NDAwODA3MjUsMzk2OTU2MjM2OSwzODAxMzMyMjM0LDQwMzU0ODkwNDcsNDI2OTkwNzk5NiwzNTY5MjU1MjEzLDM2Njk0NjI1NjYsMzM2Njc1NDYxOSwzMzMyNzQwMTQ0LDI2MzEwNjU0MzMsMjQ2Mzg3OTc2MiwyMTYwMTE3MDcxLDIzOTU1ODg2NzYsMjc2NzY0NTU1NywyODY4ODk3NDA2LDMxMDIwMTE3NDcsMzA2OTA0OTk2MCwyMDIwMDg0OTcsMzM3NzgzNjIsMjcwMDQwNDg3LDUwNDQ1OTQzNiw4NzU0NTEyOTMsOTc1NjU4NjQ2LDY3NTAzOTYyNyw2NDEwMjUxNTIsMjA4NDcwNDIzMywxOTE3NTE4NTYyLDE2MTU4NjEyNDcsMTg1MTMzMjg1MiwxMTQ3NTUwNjYxLDEyNDg4MDI1MTAsMTQ4NDAwNTg0MywxNDUxMDQ0MDU2LDkzMzMwMTM3MCw5NjczMTE3MjksNzMzMTU2OTcyLDYzMjk1MzcwMywyNjAzODg5NTAsMjU5NjU5MTcsMzI4NjcxODA4LDQ5NjkwNjA1OSwxMjA2NDc3ODU4LDEyMzk0NDM3NTMsMTU0MzIwODUwMCwxNDQxOTUyNTc1LDIxNDQxNjE4MDYsMTkwODY5NDI3NywxNjc1NTc3ODgwLDE4NDI3NTk0NDMsMzYxMDM2OTIyNiwzNjQ0Mzc5NTg1LDM0MDgxMTk1MTYsMzMwNzkxNjI0Nyw0MDExMTkwNTAyLDM3NzY3Njc0NjksNDA3NzM4NDQzMiw0MjQ1NjE4NjgzLDI4MDk3NzExNTQsMjg0MjczNzA0OSwzMTQ0Mzk2NDIwLDMwNDMxNDA0OTUsMjY3MzcwNTE1MCwyNDM4MjM3NjIxLDIyMDMwMzIyMzIsMjM3MDIxMzc5NV0pLHRoaXMuX21peENvbD1uZXcgVWludDhBcnJheSgyNTYpO2ZvcihsZXQgQT0wO0E8MjU2O0ErKyl0aGlzLl9taXhDb2xbQV09QTwxMjg/QTw8MTpBPDwxXjI3O3RoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KDE2KSx0aGlzLmJ1ZmZlclBvc2l0aW9uPTB9X2V4cGFuZEtleShBKXtNKCJDYW5ub3QgY2FsbCBgX2V4cGFuZEtleWAgb24gdGhlIGJhc2UgY2xhc3MiKX1fZGVjcnlwdChBLGUpe2xldCB0LGksYTtjb25zdCBzPW5ldyBVaW50OEFycmF5KDE2KTtzLnNldChBKTtmb3IobGV0IEE9MCx0PXRoaXMuX2tleVNpemU7QTwxNjsrK0EsKyt0KXNbQV1ePWVbdF07Zm9yKGxldCBBPXRoaXMuX2N5Y2xlc09mUmVwZXRpdGlvbi0xO0E+PTE7LS1BKXt0PXNbMTNdLHNbMTNdPXNbOV0sc1s5XT1zWzVdLHNbNV09c1sxXSxzWzFdPXQsdD1zWzE0XSxpPXNbMTBdLHNbMTRdPXNbNl0sc1sxMF09c1syXSxzWzZdPXQsc1syXT1pLHQ9c1sxNV0saT1zWzExXSxhPXNbN10sc1sxNV09c1szXSxzWzExXT10LHNbN109aSxzWzNdPWE7Zm9yKGxldCBBPTA7QTwxNjsrK0Epc1tBXT10aGlzLl9pbnZfc1tzW0FdXTtmb3IobGV0IHQ9MCxpPTE2KkE7dDwxNjsrK3QsKytpKXNbdF1ePWVbaV07Zm9yKGxldCBBPTA7QTwxNjtBKz00KXtjb25zdCBlPXRoaXMuX21peFtzW0FdXSxpPXRoaXMuX21peFtzW0ErMV1dLGE9dGhpcy5fbWl4W3NbQSsyXV0sbj10aGlzLl9taXhbc1tBKzNdXTt0PWVeaT4+PjheaTw8MjReYT4+PjE2XmE8PDE2Xm4+Pj4yNF5uPDw4LHNbQV09dD4+PjI0JjI1NSxzW0ErMV09dD4+MTYmMjU1LHNbQSsyXT10Pj44JjI1NSxzW0ErM109MjU1JnR9fXQ9c1sxM10sc1sxM109c1s5XSxzWzldPXNbNV0sc1s1XT1zWzFdLHNbMV09dCx0PXNbMTRdLGk9c1sxMF0sc1sxNF09c1s2XSxzWzEwXT1zWzJdLHNbNl09dCxzWzJdPWksdD1zWzE1XSxpPXNbMTFdLGE9c1s3XSxzWzE1XT1zWzNdLHNbMTFdPXQsc1s3XT1pLHNbM109YTtmb3IobGV0IEE9MDtBPDE2OysrQSlzW0FdPXRoaXMuX2ludl9zW3NbQV1dLHNbQV1ePWVbQV07cmV0dXJuIHN9X2VuY3J5cHQoQSxlKXtjb25zdCB0PXRoaXMuX3M7bGV0IGksYSxzO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkoMTYpO24uc2V0KEEpO2ZvcihsZXQgQT0wO0E8MTY7KytBKW5bQV1ePWVbQV07Zm9yKGxldCBBPTE7QTx0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb247QSsrKXtmb3IobGV0IEE9MDtBPDE2OysrQSluW0FdPXRbbltBXV07cz1uWzFdLG5bMV09bls1XSxuWzVdPW5bOV0sbls5XT1uWzEzXSxuWzEzXT1zLHM9blsyXSxhPW5bNl0sblsyXT1uWzEwXSxuWzZdPW5bMTRdLG5bMTBdPXMsblsxNF09YSxzPW5bM10sYT1uWzddLGk9blsxMV0sblszXT1uWzE1XSxuWzddPXMsblsxMV09YSxuWzE1XT1pO2ZvcihsZXQgQT0wO0E8MTY7QSs9NCl7Y29uc3QgZT1uW0ErMF0sdD1uW0ErMV0sYT1uW0ErMl0scz1uW0ErM107aT1lXnReYV5zLG5bQSswXV49aV50aGlzLl9taXhDb2xbZV50XSxuW0ErMV1ePWledGhpcy5fbWl4Q29sW3ReYV0sbltBKzJdXj1pXnRoaXMuX21peENvbFthXnNdLG5bQSszXV49aV50aGlzLl9taXhDb2xbc15lXX1mb3IobGV0IHQ9MCxpPTE2KkE7dDwxNjsrK3QsKytpKW5bdF1ePWVbaV19Zm9yKGxldCBBPTA7QTwxNjsrK0EpbltBXT10W25bQV1dO3M9blsxXSxuWzFdPW5bNV0sbls1XT1uWzldLG5bOV09blsxM10sblsxM109cyxzPW5bMl0sYT1uWzZdLG5bMl09blsxMF0sbls2XT1uWzE0XSxuWzEwXT1zLG5bMTRdPWEscz1uWzNdLGE9bls3XSxpPW5bMTFdLG5bM109blsxNV0sbls3XT1zLG5bMTFdPWEsblsxNV09aTtmb3IobGV0IEE9MCx0PXRoaXMuX2tleVNpemU7QTwxNjsrK0EsKyt0KW5bQV1ePWVbdF07cmV0dXJuIG59X2RlY3J5cHRCbG9jazIoQSxlKXtjb25zdCB0PUEubGVuZ3RoO2xldCBpPXRoaXMuYnVmZmVyLGE9dGhpcy5idWZmZXJQb3NpdGlvbjtjb25zdCBzPVtdO2xldCBuPXRoaXMuaXY7Zm9yKGxldCBlPTA7ZTx0OysrZSl7aWYoaVthXT1BW2VdLCsrYSxhPDE2KWNvbnRpbnVlO2NvbnN0IHQ9dGhpcy5fZGVjcnlwdChpLHRoaXMuX2tleSk7Zm9yKGxldCBBPTA7QTwxNjsrK0EpdFtBXV49bltBXTtuPWkscy5wdXNoKHQpLGk9bmV3IFVpbnQ4QXJyYXkoMTYpLGE9MH1pZih0aGlzLmJ1ZmZlcj1pLHRoaXMuYnVmZmVyTGVuZ3RoPWEsdGhpcy5pdj1uLDA9PT1zLmxlbmd0aClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7bGV0IHI9MTYqcy5sZW5ndGg7aWYoZSl7Y29uc3QgQT1zLmF0KC0xKTtsZXQgZT1BWzE1XTtpZihlPD0xNil7Zm9yKGxldCB0PTE1LGk9MTYtZTt0Pj1pOy0tdClpZihBW3RdIT09ZSl7ZT0wO2JyZWFrfXItPWUsc1tzLmxlbmd0aC0xXT1BLnN1YmFycmF5KDAsMTYtZSl9fWNvbnN0IGc9bmV3IFVpbnQ4QXJyYXkocik7Zm9yKGxldCBBPTAsZT0wLHQ9cy5sZW5ndGg7QTx0OysrQSxlKz0xNilnLnNldChzW0FdLGUpO3JldHVybiBnfWRlY3J5cHRCbG9jayhBLGUsdD1udWxsKXtjb25zdCBpPUEubGVuZ3RoLGE9dGhpcy5idWZmZXI7bGV0IHM9dGhpcy5idWZmZXJQb3NpdGlvbjtpZih0KXRoaXMuaXY9dDtlbHNle2ZvcihsZXQgZT0wO3M8MTYmJmU8aTsrK2UsKytzKWFbc109QVtlXTtpZihzPDE2KXJldHVybiB0aGlzLmJ1ZmZlckxlbmd0aD1zLG5ldyBVaW50OEFycmF5KDApO3RoaXMuaXY9YSxBPUEuc3ViYXJyYXkoMTYpfXJldHVybiB0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgxNiksdGhpcy5idWZmZXJMZW5ndGg9MCx0aGlzLmRlY3J5cHRCbG9jaz10aGlzLl9kZWNyeXB0QmxvY2syLHRoaXMuZGVjcnlwdEJsb2NrKEEsZSl9ZW5jcnlwdChBLGUpe2NvbnN0IHQ9QS5sZW5ndGg7bGV0IGk9dGhpcy5idWZmZXIsYT10aGlzLmJ1ZmZlclBvc2l0aW9uO2NvbnN0IHM9W107ZXx8KGU9bmV3IFVpbnQ4QXJyYXkoMTYpKTtmb3IobGV0IG49MDtuPHQ7KytuKXtpZihpW2FdPUFbbl0sKythLGE8MTYpY29udGludWU7Zm9yKGxldCBBPTA7QTwxNjsrK0EpaVtBXV49ZVtBXTtjb25zdCB0PXRoaXMuX2VuY3J5cHQoaSx0aGlzLl9rZXkpO2U9dCxzLnB1c2godCksaT1uZXcgVWludDhBcnJheSgxNiksYT0wfWlmKHRoaXMuYnVmZmVyPWksdGhpcy5idWZmZXJMZW5ndGg9YSx0aGlzLml2PWUsMD09PXMubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtjb25zdCBuPTE2KnMubGVuZ3RoLHI9bmV3IFVpbnQ4QXJyYXkobik7Zm9yKGxldCBBPTAsZT0wLHQ9cy5sZW5ndGg7QTx0OysrQSxlKz0xNilyLnNldChzW0FdLGUpO3JldHVybiByfX1jbGFzcyBUZyBleHRlbmRzIHFne2NvbnN0cnVjdG9yKEEpe3N1cGVyKCksdGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uPTEwLHRoaXMuX2tleVNpemU9MTYwLHRoaXMuX3Jjb249bmV3IFVpbnQ4QXJyYXkoWzE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDFdKSx0aGlzLl9rZXk9dGhpcy5fZXhwYW5kS2V5KEEpfV9leHBhbmRLZXkoQSl7Y29uc3QgZT10aGlzLl9zLHQ9dGhpcy5fcmNvbixpPW5ldyBVaW50OEFycmF5KDE3Nik7aS5zZXQoQSk7Zm9yKGxldCBBPTE2LGE9MTtBPDE3NjsrK2Epe2xldCBzPWlbQS0zXSxuPWlbQS0yXSxyPWlbQS0xXSxnPWlbQS00XTtzPWVbc10sbj1lW25dLHI9ZVtyXSxnPWVbZ10sc149dFthXTtmb3IobGV0IGU9MDtlPDQ7KytlKWlbQV09c149aVtBLTE2XSxBKyssaVtBXT1uXj1pW0EtMTZdLEErKyxpW0FdPXJePWlbQS0xNl0sQSsrLGlbQV09Z149aVtBLTE2XSxBKyt9cmV0dXJuIGl9fWNsYXNzIFBnIGV4dGVuZHMgcWd7Y29uc3RydWN0b3IoQSl7c3VwZXIoKSx0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb249MTQsdGhpcy5fa2V5U2l6ZT0yMjQsdGhpcy5fa2V5PXRoaXMuX2V4cGFuZEtleShBKX1fZXhwYW5kS2V5KEEpe2NvbnN0IGU9dGhpcy5fcyx0PW5ldyBVaW50OEFycmF5KDI0MCk7dC5zZXQoQSk7bGV0IGksYSxzLG4scj0xO2ZvcihsZXQgQT0zMixnPTE7QTwyNDA7KytnKXtBJTMyPT0xNj8oaT1lW2ldLGE9ZVthXSxzPWVbc10sbj1lW25dKTpBJTMyPT0wJiYoaT10W0EtM10sYT10W0EtMl0scz10W0EtMV0sbj10W0EtNF0saT1lW2ldLGE9ZVthXSxzPWVbc10sbj1lW25dLGlePXIsKHI8PD0xKT49MjU2JiYocj0yNTUmKDI3XnIpKSk7Zm9yKGxldCBlPTA7ZTw0OysrZSl0W0FdPWlePXRbQS0zMl0sQSsrLHRbQV09YV49dFtBLTMyXSxBKyssdFtBXT1zXj10W0EtMzJdLEErKyx0W0FdPW5ePXRbQS0zMl0sQSsrfXJldHVybiB0fX1jbGFzcyBXZ3tjaGVja093bmVyUGFzc3dvcmQoQSxlLHQsaSl7Y29uc3QgYT1uZXcgVWludDhBcnJheShBLmxlbmd0aCs1Nik7cmV0dXJuIGEuc2V0KEEsMCksYS5zZXQoZSxBLmxlbmd0aCksYS5zZXQodCxBLmxlbmd0aCtlLmxlbmd0aCksYUEoWWcoYSwwLGEubGVuZ3RoKSxpKX1jaGVja1VzZXJQYXNzd29yZChBLGUsdCl7Y29uc3QgaT1uZXcgVWludDhBcnJheShBLmxlbmd0aCs4KTtyZXR1cm4gaS5zZXQoQSwwKSxpLnNldChlLEEubGVuZ3RoKSxhQShZZyhpLDAsaS5sZW5ndGgpLHQpfWdldE93bmVyS2V5KEEsZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgrNTYpO2Euc2V0KEEsMCksYS5zZXQoZSxBLmxlbmd0aCksYS5zZXQodCxBLmxlbmd0aCtlLmxlbmd0aCk7Y29uc3Qgcz1ZZyhhLDAsYS5sZW5ndGgpO3JldHVybiBuZXcgUGcocykuZGVjcnlwdEJsb2NrKGksITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX1nZXRVc2VyS2V5KEEsZSx0KXtjb25zdCBpPW5ldyBVaW50OEFycmF5KEEubGVuZ3RoKzgpO2kuc2V0KEEsMCksaS5zZXQoZSxBLmxlbmd0aCk7Y29uc3QgYT1ZZyhpLDAsaS5sZW5ndGgpO3JldHVybiBuZXcgUGcoYSkuZGVjcnlwdEJsb2NrKHQsITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX19Y2xhc3MgT2d7X2hhc2goQSxlLHQpe2xldCBpPVlnKGUsMCxlLmxlbmd0aCkuc3ViYXJyYXkoMCwzMiksYT1bMF0scz0wO2Zvcig7czw2NHx8YS5hdCgtMSk+cy0zMjspe2NvbnN0IGU9QS5sZW5ndGgraS5sZW5ndGgrdC5sZW5ndGgsZz1uZXcgVWludDhBcnJheShlKTtsZXQgbz0wO2cuc2V0KEEsbyksbys9QS5sZW5ndGgsZy5zZXQoaSxvKSxvKz1pLmxlbmd0aCxnLnNldCh0LG8pO2NvbnN0IEk9bmV3IFVpbnQ4QXJyYXkoNjQqZSk7Zm9yKGxldCBBPTAsdD0wO0E8NjQ7QSsrLHQrPWUpSS5zZXQoZyx0KTthPW5ldyBUZyhpLnN1YmFycmF5KDAsMTYpKS5lbmNyeXB0KEksaS5zdWJhcnJheSgxNiwzMikpO2NvbnN0IGM9YS5zbGljZSgwLDE2KS5yZWR1Y2UoKChBLGUpPT5BK2UpLDApJTM7MD09PWM/aT1ZZyhhLDAsYS5sZW5ndGgpOjE9PT1jPyhuPWEsMCxyPWEubGVuZ3RoLGk9dmcobiwwLHIsITApKToyPT09YyYmKGk9dmcoYSwwLGEubGVuZ3RoKSkscysrfXZhciBuLHI7cmV0dXJuIGkuc3ViYXJyYXkoMCwzMil9Y2hlY2tPd25lclBhc3N3b3JkKEEsZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgrNTYpO3JldHVybiBhLnNldChBLDApLGEuc2V0KGUsQS5sZW5ndGgpLGEuc2V0KHQsQS5sZW5ndGgrZS5sZW5ndGgpLGFBKHRoaXMuX2hhc2goQSxhLHQpLGkpfWNoZWNrVXNlclBhc3N3b3JkKEEsZSx0KXtjb25zdCBpPW5ldyBVaW50OEFycmF5KEEubGVuZ3RoKzgpO3JldHVybiBpLnNldChBLDApLGkuc2V0KGUsQS5sZW5ndGgpLGFBKHRoaXMuX2hhc2goQSxpLFtdKSx0KX1nZXRPd25lcktleShBLGUsdCxpKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KEEubGVuZ3RoKzU2KTthLnNldChBLDApLGEuc2V0KGUsQS5sZW5ndGgpLGEuc2V0KHQsQS5sZW5ndGgrZS5sZW5ndGgpO2NvbnN0IHM9dGhpcy5faGFzaChBLGEsdCk7cmV0dXJuIG5ldyBQZyhzKS5kZWNyeXB0QmxvY2soaSwhMSxuZXcgVWludDhBcnJheSgxNikpfWdldFVzZXJLZXkoQSxlLHQpe2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgrOCk7aS5zZXQoQSwwKSxpLnNldChlLEEubGVuZ3RoKTtjb25zdCBhPXRoaXMuX2hhc2goQSxpLFtdKTtyZXR1cm4gbmV3IFBnKGEpLmRlY3J5cHRCbG9jayh0LCExLG5ldyBVaW50OEFycmF5KDE2KSl9fWNsYXNzIFpne2NvbnN0cnVjdG9yKEEsZSl7dGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3Rvcj1BLHRoaXMuU3RyZWFtQ2lwaGVyQ29uc3RydWN0b3I9ZX1jcmVhdGVTdHJlYW0oQSxlKXtjb25zdCB0PW5ldyB0aGlzLlN0cmVhbUNpcGhlckNvbnN0cnVjdG9yO3JldHVybiBuZXcgTWcoQSxlLChmdW5jdGlvbihBLGUpe3JldHVybiB0LmRlY3J5cHRCbG9jayhBLGUpfSkpfWRlY3J5cHRTdHJpbmcoQSl7Y29uc3QgZT1uZXcgdGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3RvcjtsZXQgdD1qKEEpO3JldHVybiB0PWUuZGVjcnlwdEJsb2NrKHQsITApLFoodCl9ZW5jcnlwdFN0cmluZyhBKXtjb25zdCBlPW5ldyB0aGlzLlN0cmluZ0NpcGhlckNvbnN0cnVjdG9yO2lmKGUgaW5zdGFuY2VvZiBxZyl7Y29uc3QgdD0xNi1BLmxlbmd0aCUxNjtBKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLnJlcGVhdCh0KTtjb25zdCBpPW5ldyBVaW50OEFycmF5KDE2KTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byljcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGkpO2Vsc2UgZm9yKGxldCBBPTA7QTwxNjtBKyspaVtBXT1NYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKTtsZXQgYT1qKEEpO2E9ZS5lbmNyeXB0KGEsaSk7Y29uc3Qgcz1uZXcgVWludDhBcnJheSgxNithLmxlbmd0aCk7cmV0dXJuIHMuc2V0KGkpLHMuc2V0KGEsMTYpLFoocyl9bGV0IHQ9aihBKTtyZXR1cm4gdD1lLmVuY3J5cHQodCksWih0KX19Y2xhc3Mgamd7c3RhdGljI1M9bmV3IFVpbnQ4QXJyYXkoWzQwLDE5MSw3OCw5NCw3OCwxMTcsMTM4LDY1LDEwMCwwLDc4LDg2LDI1NSwyNTAsMSw4LDQ2LDQ2LDAsMTgyLDIwOCwxMDQsNjIsMTI4LDQ3LDEyLDE2OSwyNTQsMTAwLDgzLDEwNSwxMjJdKTsjUihBLGUsdCxpLGEscyxuLHIsZyxvLEksYyl7aWYoZSl7Y29uc3QgQT1NYXRoLm1pbigxMjcsZS5sZW5ndGgpO2U9ZS5zdWJhcnJheSgwLEEpfWVsc2UgZT1bXTtjb25zdCBoPTY9PT1BP25ldyBPZzpuZXcgV2c7cmV0dXJuIGguY2hlY2tVc2VyUGFzc3dvcmQoZSxyLG4pP2guZ2V0VXNlcktleShlLGcsSSk6ZS5sZW5ndGgmJmguY2hlY2tPd25lclBhc3N3b3JkKGUsaSxzLHQpP2guZ2V0T3duZXJLZXkoZSxhLHMsbyk6bnVsbH0jRyhBLGUsdCxpLGEscyxuLHIpe2NvbnN0IGc9NDArdC5sZW5ndGgrQS5sZW5ndGgsbz1uZXcgVWludDhBcnJheShnKTtsZXQgSSxjLGg9MDtpZihlKWZvcihjPU1hdGgubWluKDMyLGUubGVuZ3RoKTtoPGM7KytoKW9baF09ZVtoXTtmb3IoST0wO2g8MzI7KW9baCsrXT1qZy4jU1tJKytdO2ZvcihJPTAsYz10Lmxlbmd0aDtJPGM7KytJKW9baCsrXT10W0ldO2ZvcihvW2grK109MjU1JmEsb1toKytdPWE+PjgmMjU1LG9baCsrXT1hPj4xNiYyNTUsb1toKytdPWE+Pj4yNCYyNTUsST0wLGM9QS5sZW5ndGg7STxjOysrSSlvW2grK109QVtJXTtzPj00JiYhciYmKG9baCsrXT0yNTUsb1toKytdPTI1NSxvW2grK109MjU1LG9baCsrXT0yNTUpO2xldCBDPUpnKG8sMCxoKTtjb25zdCBCPW4+PjM7aWYocz49Mylmb3IoST0wO0k8NTA7KytJKUM9SmcoQywwLEIpO2NvbnN0IGw9Qy5zdWJhcnJheSgwLEIpO2xldCBRLEU7aWYocz49Myl7Zm9yKGg9MDtoPDMyOysraClvW2hdPWpnLiNTW2hdO2ZvcihJPTAsYz1BLmxlbmd0aDtJPGM7KytJKW9baCsrXT1BW0ldO1E9bmV3IExnKGwpLEU9US5lbmNyeXB0QmxvY2soSmcobywwLGgpKSxjPWwubGVuZ3RoO2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkoYyk7Zm9yKEk9MTtJPD0xOTsrK0kpe2ZvcihsZXQgQT0wO0E8YzsrK0EpZVtBXT1sW0FdXkk7UT1uZXcgTGcoZSksRT1RLmVuY3J5cHRCbG9jayhFKX1mb3IoST0wLGM9RS5sZW5ndGg7STxjOysrSSlpZihpW0ldIT09RVtJXSlyZXR1cm4gbnVsbH1lbHNlIGZvcihRPW5ldyBMZyhsKSxFPVEuZW5jcnlwdEJsb2NrKGpnLiNTKSxJPTAsYz1FLmxlbmd0aDtJPGM7KytJKWlmKGlbSV0hPT1FW0ldKXJldHVybiBudWxsO3JldHVybiBsfSNOKEEsZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoMzIpO2xldCBzPTA7Y29uc3Qgbj1NYXRoLm1pbigzMixBLmxlbmd0aCk7Zm9yKDtzPG47KytzKWFbc109QVtzXTtsZXQgcj0wO2Zvcig7czwzMjspYVtzKytdPWpnLiNTW3IrK107bGV0IGc9SmcoYSwwLHMpO2NvbnN0IG89aT4+MztpZih0Pj0zKWZvcihyPTA7cjw1MDsrK3IpZz1KZyhnLDAsZy5sZW5ndGgpO2xldCBJLGM7aWYodD49Myl7Yz1lO2NvbnN0IEE9bmV3IFVpbnQ4QXJyYXkobyk7Zm9yKHI9MTk7cj49MDtyLS0pe2ZvcihsZXQgZT0wO2U8bzsrK2UpQVtlXT1nW2VdXnI7ST1uZXcgTGcoQSksYz1JLmVuY3J5cHRCbG9jayhjKX19ZWxzZSBJPW5ldyBMZyhnLnN1YmFycmF5KDAsbykpLGM9SS5lbmNyeXB0QmxvY2soZSk7cmV0dXJuIGN9I3goQSxlLHQsaT0hMSl7Y29uc3QgYT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCs5KSxzPXQubGVuZ3RoO2xldCBuO2ZvcihuPTA7bjxzOysrbilhW25dPXRbbl07cmV0dXJuIGFbbisrXT0yNTUmQSxhW24rK109QT4+OCYyNTUsYVtuKytdPUE+PjE2JjI1NSxhW24rK109MjU1JmUsYVtuKytdPWU+PjgmMjU1LGkmJihhW24rK109MTE1LGFbbisrXT02NSxhW24rK109MTA4LGFbbisrXT04NCksSmcoYSwwLG4pLnN1YmFycmF5KDAsTWF0aC5taW4odC5sZW5ndGgrNSwxNikpfSNVKEEsZSx0LGksYSl7aWYoIShlIGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJJbnZhbGlkIGNyeXB0IGZpbHRlciBuYW1lLiIpO2NvbnN0IHM9dGhpcyxuPUEuZ2V0KGUubmFtZSkscj1uPy5nZXQoIkNGTSIpO2lmKCFyfHwiTm9uZSI9PT1yLm5hbWUpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBLZ307aWYoIlYyIj09PXIubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IExnKHMuI3godCxpLGEsITEpKX07aWYoIkFFU1YyIj09PXIubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRnKHMuI3godCxpLGEsITApKX07aWYoIkFFU1YzIj09PXIubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFBnKGEpfTt0aHJvdyBuZXcgVygiVW5rbm93biBjcnlwdG8gbWV0aG9kIil9Y29uc3RydWN0b3IoQSxlLHQpe2NvbnN0IGk9QS5nZXQoIkZpbHRlciIpO2lmKCFmQShpLCJTdGFuZGFyZCIpKXRocm93IG5ldyBXKCJ1bmtub3duIGVuY3J5cHRpb24gbWV0aG9kIik7dGhpcy5maWx0ZXJOYW1lPWkubmFtZSx0aGlzLmRpY3Q9QTtjb25zdCBhPUEuZ2V0KCJWIik7aWYoIU51bWJlci5pc0ludGVnZXIoYSl8fDEhPT1hJiYyIT09YSYmNCE9PWEmJjUhPT1hKXRocm93IG5ldyBXKCJ1bnN1cHBvcnRlZCBlbmNyeXB0aW9uIGFsZ29yaXRobSIpO3RoaXMuYWxnb3JpdGhtPWE7bGV0IHM9QS5nZXQoIkxlbmd0aCIpO2lmKCFzKWlmKGE8PTMpcz00MDtlbHNle2NvbnN0IGU9QS5nZXQoIkNGIiksdD1BLmdldCgiU3RtRiIpO2lmKGUgaW5zdGFuY2VvZiBRQSYmdCBpbnN0YW5jZW9mIENBKXtlLnN1cHByZXNzRW5jcnlwdGlvbj0hMDtjb25zdCBBPWUuZ2V0KHQubmFtZSk7cz1BPy5nZXQoIkxlbmd0aCIpfHwxMjgsczw0MCYmKHM8PD0zKX19aWYoIU51bWJlci5pc0ludGVnZXIocyl8fHM8NDB8fHMlOCE9MCl0aHJvdyBuZXcgVygiaW52YWxpZCBrZXkgbGVuZ3RoIik7Y29uc3Qgbj1qKEEuZ2V0KCJPIikpLHI9aihBLmdldCgiVSIpKSxnPW4uc3ViYXJyYXkoMCwzMiksbz1yLnN1YmFycmF5KDAsMzIpLEk9QS5nZXQoIlAiKSxjPUEuZ2V0KCJSIiksaD0oND09PWF8fDU9PT1hKSYmITEhPT1BLmdldCgiRW5jcnlwdE1ldGFkYXRhIik7dGhpcy5lbmNyeXB0TWV0YWRhdGE9aDtjb25zdCBDPWooZSk7bGV0IEIsbDtpZih0KXtpZig2PT09Yyl0cnl7dD1pQSh0KX1jYXRjaHtVKCJDaXBoZXJUcmFuc2Zvcm1GYWN0b3J5OiBVbmFibGUgdG8gY29udmVydCBVVEY4IGVuY29kZWQgcGFzc3dvcmQuIil9Qj1qKHQpfWlmKDUhPT1hKWw9dGhpcy4jRyhDLEIsZyxvLEksYyxzLGgpO2Vsc2V7Y29uc3QgZT1uLnN1YmFycmF5KDMyLDQwKSx0PW4uc3ViYXJyYXkoNDAsNDgpLGk9ci5zdWJhcnJheSgwLDQ4KSxhPXIuc3ViYXJyYXkoMzIsNDApLHM9ci5zdWJhcnJheSg0MCw0OCksST1qKEEuZ2V0KCJPRSIpKSxoPWooQS5nZXQoIlVFIikpLEM9aihBLmdldCgiUGVybXMiKSk7bD10aGlzLiNSKGMsQixnLGUsdCxpLG8sYSxzLEksaCxDKX1pZighbCYmIXQpdGhyb3cgbmV3IHYoIk5vIHBhc3N3b3JkIGdpdmVuIiwxKTtpZighbCYmdCl7Y29uc3QgQT10aGlzLiNOKEIsZyxjLHMpO2w9dGhpcy4jRyhDLEEsZyxvLEksYyxzLGgpfWlmKCFsKXRocm93IG5ldyB2KCJJbmNvcnJlY3QgUGFzc3dvcmQiLDIpO2lmKHRoaXMuZW5jcnlwdGlvbktleT1sLGE+PTQpe2NvbnN0IGU9QS5nZXQoIkNGIik7ZSBpbnN0YW5jZW9mIFFBJiYoZS5zdXBwcmVzc0VuY3J5cHRpb249ITApLHRoaXMuY2Y9ZSx0aGlzLnN0bWY9QS5nZXQoIlN0bUYiKXx8Q0EuZ2V0KCJJZGVudGl0eSIpLHRoaXMuc3RyZj1BLmdldCgiU3RyRiIpfHxDQS5nZXQoIklkZW50aXR5IiksdGhpcy5lZmY9QS5nZXQoIkVGRiIpfHx0aGlzLnN0bWZ9fWNyZWF0ZUNpcGhlclRyYW5zZm9ybShBLGUpe2lmKDQ9PT10aGlzLmFsZ29yaXRobXx8NT09PXRoaXMuYWxnb3JpdGhtKXJldHVybiBuZXcgWmcodGhpcy4jVSh0aGlzLmNmLHRoaXMuc3RyZixBLGUsdGhpcy5lbmNyeXB0aW9uS2V5KSx0aGlzLiNVKHRoaXMuY2YsdGhpcy5zdG1mLEEsZSx0aGlzLmVuY3J5cHRpb25LZXkpKTtjb25zdCB0PXRoaXMuI3goQSxlLHRoaXMuZW5jcnlwdGlvbktleSwhMSksaT1mdW5jdGlvbigpe3JldHVybiBuZXcgTGcodCl9O3JldHVybiBuZXcgWmcoaSxpKX19YXN5bmMgZnVuY3Rpb24gWGcoQSxlLHQse2VuY3J5cHQ6aT1udWxsfSl7Y29uc3QgYT1pPy5jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oQS5udW0sQS5nZW4pO3QucHVzaChgJHtBLm51bX0gJHtBLmdlbn0gb2JqXG5gKSxlIGluc3RhbmNlb2YgUUE/YXdhaXQgVmcoZSx0LGEpOmUgaW5zdGFuY2VvZiB3QT9hd2FpdCBfZyhlLHQsYSk6KEFycmF5LmlzQXJyYXkoZSl8fEFycmF5QnVmZmVyLmlzVmlldyhlKSkmJmF3YWl0IHpnKGUsdCxhKSx0LnB1c2goIlxuZW5kb2JqXG4iKX1hc3luYyBmdW5jdGlvbiBWZyhBLGUsdCl7ZS5wdXNoKCI8PCIpO2Zvcihjb25zdCBpIG9mIEEuZ2V0S2V5cygpKWUucHVzaChgIC8ke1dBKGkpfSBgKSxhd2FpdCAkZyhBLmdldFJhdyhpKSxlLHQpO2UucHVzaCgiPj4iKX1hc3luYyBmdW5jdGlvbiBfZyhBLGUsdCl7bGV0IGk9QS5nZXRCeXRlcygpO2NvbnN0e2RpY3Q6YX09QSxbcyxuXT1hd2FpdCBQcm9taXNlLmFsbChbYS5nZXRBc3luYygiRmlsdGVyIiksYS5nZXRBc3luYygiRGVjb2RlUGFybXMiKV0pLHI9ZkEoQXJyYXkuaXNBcnJheShzKT9hd2FpdCBhLnhyZWYuZmV0Y2hJZlJlZkFzeW5jKHNbMF0pOnMsIkZsYXRlRGVjb2RlIik7aWYoaS5sZW5ndGg+PTI1Nnx8cil0cnl7Y29uc3QgQT1uZXcgQ29tcHJlc3Npb25TdHJlYW0oImRlZmxhdGUiKSxlPUEud3JpdGFibGUuZ2V0V3JpdGVyKCk7ZS53cml0ZShpKSxlLmNsb3NlKCk7Y29uc3QgdD1hd2FpdCBuZXcgUmVzcG9uc2UoQS5yZWFkYWJsZSkuYXJyYXlCdWZmZXIoKTtsZXQgZyxvO2k9bmV3IFVpbnQ4QXJyYXkodCkscz9yfHwoZz1BcnJheS5pc0FycmF5KHMpP1tDQS5nZXQoIkZsYXRlRGVjb2RlIiksLi4uc106W0NBLmdldCgiRmxhdGVEZWNvZGUiKSxzXSxuJiYobz1BcnJheS5pc0FycmF5KG4pP1tudWxsLC4uLm5dOltudWxsLG5dKSk6Zz1DQS5nZXQoIkZsYXRlRGVjb2RlIiksZyYmYS5zZXQoIkZpbHRlciIsZyksbyYmYS5zZXQoIkRlY29kZVBhcm1zIixvKX1jYXRjaChBKXt4KGB3cml0ZVN0cmVhbSAtIGNhbm5vdCBjb21wcmVzcyBkYXRhOiAiJHtBfSIuYCl9bGV0IGc9WihpKTt0JiYoZz10LmVuY3J5cHRTdHJpbmcoZykpLGEuc2V0KCJMZW5ndGgiLGcubGVuZ3RoKSxhd2FpdCBWZyhhLGUsdCksZS5wdXNoKCIgc3RyZWFtXG4iLGcsIlxuZW5kc3RyZWFtIil9YXN5bmMgZnVuY3Rpb24gemcoQSxlLHQpe2UucHVzaCgiWyIpO2xldCBpPSEwO2Zvcihjb25zdCBhIG9mIEEpaT9pPSExOmUucHVzaCgiICIpLGF3YWl0ICRnKGEsZSx0KTtlLnB1c2goIl0iKX1hc3luYyBmdW5jdGlvbiAkZyhBLGUsdCl7QSBpbnN0YW5jZW9mIENBP2UucHVzaChgLyR7V0EoQS5uYW1lKX1gKTpBIGluc3RhbmNlb2YgRUE/ZS5wdXNoKGAke0EubnVtfSAke0EuZ2VufSBSYCk6QXJyYXkuaXNBcnJheShBKXx8QXJyYXlCdWZmZXIuaXNWaWV3KEEpP2F3YWl0IHpnKEEsZSx0KToic3RyaW5nIj09dHlwZW9mIEE/KHQmJihBPXQuZW5jcnlwdFN0cmluZyhBKSksZS5wdXNoKGAoJHtPQShBKX0pYCkpOiJudW1iZXIiPT10eXBlb2YgQT9lLnB1c2goZWUoQSkpOiJib29sZWFuIj09dHlwZW9mIEE/ZS5wdXNoKEEudG9TdHJpbmcoKSk6QSBpbnN0YW5jZW9mIFFBP2F3YWl0IFZnKEEsZSx0KTpBIGluc3RhbmNlb2Ygd0E/YXdhaXQgX2coQSxlLHQpOm51bGw9PT1BP2UucHVzaCgibnVsbCIpOlUoYFVuaGFuZGxlZCB2YWx1ZSBpbiB3cml0ZXI6ICR7dHlwZW9mIEF9LCBwbGVhc2UgZmlsZSBhIGJ1Zy5gKX1mdW5jdGlvbiBBbyhBLGUsdCxpKXtmb3IobGV0IGE9ZSt0LTE7YT50LTE7YS0tKWlbYV09MjU1JkEsQT4+PTg7cmV0dXJuIHQrZX1mdW5jdGlvbiBlbyhBLGUsdCl7Zm9yKGxldCBpPTAsYT1BLmxlbmd0aDtpPGE7aSsrKXRbZStpXT0yNTUmQS5jaGFyQ29kZUF0KGkpfWZ1bmN0aW9uIHRvKEEpe2NvbnN0IGU9W107Zm9yKGNvbnN0e3JlZjp0fW9mIEEpdC5udW09PT1lLmF0KC0yKStlLmF0KC0xKT9lW2UubGVuZ3RoLTFdKz0xOmUucHVzaCh0Lm51bSwxKTtyZXR1cm4gZX1mdW5jdGlvbiBpbyhBLGUsdCl7aWYoQXJyYXkuaXNBcnJheShlLmZpbGVJZHMpJiZlLmZpbGVJZHMubGVuZ3RoPjApe2NvbnN0IGk9ZnVuY3Rpb24oQSxlKXtjb25zdCB0PU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpLGk9ZS5maWxlbmFtZXx8IiIsYT1bdC50b1N0cmluZygpLGksQS50b1N0cmluZygpXTtsZXQgcz1hLnJlZHVjZSgoKEEsZSk9PkErZS5sZW5ndGgpLDApO2Zvcihjb25zdCBBIG9mIE9iamVjdC52YWx1ZXMoZS5pbmZvKSlhLnB1c2goQSkscys9QS5sZW5ndGg7Y29uc3Qgbj1uZXcgVWludDhBcnJheShzKTtsZXQgcj0wO2Zvcihjb25zdCBBIG9mIGEpZW8oQSxyLG4pLHIrPUEubGVuZ3RoO3JldHVybiBaKEpnKG4pKX0oQSxlKTt0LnNldCgiSUQiLFtlLmZpbGVJZHNbMF0saV0pfX1hc3luYyBmdW5jdGlvbiBhbyh7b3JpZ2luYWxEYXRhOkEseHJlZkluZm86ZSxuZXdSZWZzOnQseHJlZjppPW51bGwsaGFzWGZhOmE9ITEseGZhRGF0YXNldHNSZWY6cz1udWxsLGhhc1hmYURhdGFzZXRzRW50cnk6bj0hMSxuZWVkQXBwZWFyYW5jZXM6cixhY3JvRm9ybVJlZjpnPW51bGwsYWNyb0Zvcm06bz1udWxsLHhmYURhdGE6ST1udWxsLHVzZVhyZWZTdHJlYW06Yz0hMX0pe2F3YWl0IGFzeW5jIGZ1bmN0aW9uKHt4cmVmOkEsYWNyb0Zvcm06ZSxhY3JvRm9ybVJlZjp0LGhhc1hmYTppLGhhc1hmYURhdGFzZXRzRW50cnk6YSx4ZmFEYXRhc2V0c1JlZjpzLG5lZWRBcHBlYXJhbmNlczpuLG5ld1JlZnM6cn0pe2lmKCFpfHxhfHxzfHxVKCJYRkEgLSBDYW5ub3Qgc2F2ZSBpdCIpLCFuJiYoIWl8fCFzfHxhKSlyZXR1cm47Y29uc3QgZz1lLmNsb25lKCk7aWYoaSYmIWEpe2NvbnN0IEE9ZS5nZXQoIlhGQSIpLnNsaWNlKCk7QS5zcGxpY2UoMiwwLCJkYXRhc2V0cyIpLEEuc3BsaWNlKDMsMCxzKSxnLnNldCgiWEZBIixBKX1uJiZnLnNldCgiTmVlZEFwcGVhcmFuY2VzIiwhMCk7Y29uc3Qgbz1bXTthd2FpdCBYZyh0LGcsbyxBKSxyLnB1c2goe3JlZjp0LGRhdGE6by5qb2luKCIiKX0pfSh7eHJlZjppLGFjcm9Gb3JtOm8sYWNyb0Zvcm1SZWY6ZyxoYXNYZmE6YSxoYXNYZmFEYXRhc2V0c0VudHJ5Om4seGZhRGF0YXNldHNSZWY6cyxuZWVkQXBwZWFyYW5jZXM6cixuZXdSZWZzOnR9KSxhJiZmdW5jdGlvbih7eGZhRGF0YTpBLHhmYURhdGFzZXRzUmVmOmUsbmV3UmVmczp0LHhyZWY6aX0pe251bGw9PT1BJiYoQT1mdW5jdGlvbihBLGUpe2NvbnN0IHQ9bmV3IHhnKHtoYXNBdHRyaWJ1dGVzOiEwfSkucGFyc2VGcm9tU3RyaW5nKEEpO2Zvcihjb25zdHt4ZmE6QX1vZiBlKXtpZighQSljb250aW51ZTtjb25zdHtwYXRoOmUsdmFsdWU6aX09QTtpZighZSljb250aW51ZTtjb25zdCBhPVBBKGUpO2xldCBzPXQuZG9jdW1lbnRFbGVtZW50LnNlYXJjaE5vZGUoYSwwKTshcyYmYS5sZW5ndGg+MSYmKHM9dC5kb2N1bWVudEVsZW1lbnQuc2VhcmNoTm9kZShbYS5hdCgtMSldLDApKSxzP3MuY2hpbGROb2Rlcz1BcnJheS5pc0FycmF5KGkpP2kubWFwKChBPT5uZXcgTmcoInZhbHVlIixBKSkpOltuZXcgTmcoIiN0ZXh0IixpKV06VShgTm9kZSBub3QgZm91bmQgZm9yIHBhdGg6ICR7ZX1gKX1jb25zdCBpPVtdO3JldHVybiB0LmRvY3VtZW50RWxlbWVudC5kdW1wKGkpLGkuam9pbigiIil9KGkuZmV0Y2hJZlJlZihlKS5nZXRTdHJpbmcoKSx0KSk7Y29uc3QgYT1pLmVuY3J5cHQ7YSYmKEE9YS5jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oZS5udW0sZS5nZW4pLmVuY3J5cHRTdHJpbmcoQSkpO2NvbnN0IHM9YCR7ZS5udW19ICR7ZS5nZW59IG9ialxuPDwgL1R5cGUgL0VtYmVkZGVkRmlsZSAvTGVuZ3RoICR7QS5sZW5ndGh9Pj5cbnN0cmVhbVxuYCtBKyJcbmVuZHN0cmVhbVxuZW5kb2JqXG4iO3QucHVzaCh7cmVmOmUsZGF0YTpzfSl9KHt4ZmFEYXRhOkkseGZhRGF0YXNldHNSZWY6cyxuZXdSZWZzOnQseHJlZjppfSk7Y29uc3QgaD1bXTtsZXQgQz1BLmxlbmd0aDtjb25zdCBCPUEuYXQoLTEpOzEwIT09QiYmMTMhPT1CJiYoaC5wdXNoKCJcbiIpLEMrPTEpO2NvbnN0IGw9ZnVuY3Rpb24oQSxlLHQpe2NvbnN0IGk9bmV3IFFBKG51bGwpO2kuc2V0KCJQcmV2IixBLnN0YXJ0WFJlZik7Y29uc3QgYT1BLm5ld1JlZjtyZXR1cm4gdD8oZS5wdXNoKHtyZWY6YSxkYXRhOiIifSksaS5zZXQoIlNpemUiLGEubnVtKzEpLGkuc2V0KCJUeXBlIixDQS5nZXQoIlhSZWYiKSkpOmkuc2V0KCJTaXplIixhLm51bSksbnVsbCE9PUEucm9vdFJlZiYmaS5zZXQoIlJvb3QiLEEucm9vdFJlZiksbnVsbCE9PUEuaW5mb1JlZiYmaS5zZXQoIkluZm8iLEEuaW5mb1JlZiksbnVsbCE9PUEuZW5jcnlwdFJlZiYmaS5zZXQoIkVuY3J5cHQiLEEuZW5jcnlwdFJlZiksaX0oZSx0LGMpO3Q9dC5zb3J0KCgoQSxlKT0+QS5yZWYubnVtLWUucmVmLm51bSkpO2Zvcihjb25zdHtkYXRhOkF9b2YgdCludWxsIT09QSYmaC5wdXNoKEEpO2F3YWl0KGM/YXN5bmMgZnVuY3Rpb24oQSxlLHQsaSxhKXtjb25zdCBzPVtdO2xldCBuPTAscj0wO2Zvcihjb25zdHtyZWY6QSxkYXRhOml9b2YgdCl7bGV0IHQ7bj1NYXRoLm1heChuLGUpLG51bGwhPT1pPyh0PU1hdGgubWluKEEuZ2VuLDY1NTM1KSxzLnB1c2goWzEsZSx0XSksZSs9aS5sZW5ndGgpOih0PU1hdGgubWluKEEuZ2VuKzEsNjU1MzUpLHMucHVzaChbMCwwLHRdKSkscj1NYXRoLm1heChyLHQpfWkuc2V0KCJJbmRleCIsdG8odCkpO2NvbnN0IGc9WzEscmUobikscmUocildO2kuc2V0KCJXIixnKSxpbyhlLEEsaSk7Y29uc3Qgbz1nLnJlZHVjZSgoKEEsZSk9PkErZSksMCksST1uZXcgVWludDhBcnJheShvKnMubGVuZ3RoKSxjPW5ldyBnZShJKTtjLmRpY3Q9aTtsZXQgaD0wO2Zvcihjb25zdFtBLGUsdF1vZiBzKWg9QW8oQSxnWzBdLGgsSSksaD1BbyhlLGdbMV0saCxJKSxoPUFvKHQsZ1syXSxoLEkpO2F3YWl0IFhnKEEubmV3UmVmLGMsYSx7fSksYS5wdXNoKCJzdGFydHhyZWZcbiIsZS50b1N0cmluZygpLCJcbiUlRU9GXG4iKX0oZSxDLHQsbCxoKTphc3luYyBmdW5jdGlvbihBLGUsdCxpLGEpe2EucHVzaCgieHJlZlxuIik7Y29uc3Qgcz10byh0KTtsZXQgbj0wO2Zvcihjb25zdHtyZWY6QSxkYXRhOml9b2YgdClBLm51bT09PXNbbl0mJihhLnB1c2goYCR7c1tuXX0gJHtzW24rMV19XG5gKSxuKz0yKSxudWxsIT09aT8oYS5wdXNoKGAke2UudG9TdHJpbmcoKS5wYWRTdGFydCgxMCwiMCIpfSAke01hdGgubWluKEEuZ2VuLDY1NTM1KS50b1N0cmluZygpLnBhZFN0YXJ0KDUsIjAiKX0gblxyXG5gKSxlKz1pLmxlbmd0aCk6YS5wdXNoKGAwMDAwMDAwMDAwICR7TWF0aC5taW4oQS5nZW4rMSw2NTUzNSkudG9TdHJpbmcoKS5wYWRTdGFydCg1LCIwIil9IGZcclxuYCk7aW8oZSxBLGkpLGEucHVzaCgidHJhaWxlclxuIiksYXdhaXQgVmcoaSxhKSxhLnB1c2goIlxuc3RhcnR4cmVmXG4iLGUudG9TdHJpbmcoKSwiXG4lJUVPRlxuIil9KGUsQyx0LGwsaCkpO2NvbnN0IFE9aC5yZWR1Y2UoKChBLGUpPT5BK2UubGVuZ3RoKSxBLmxlbmd0aCksRT1uZXcgVWludDhBcnJheShRKTtFLnNldChBKTtsZXQgdT1BLmxlbmd0aDtmb3IoY29uc3QgQSBvZiBoKWVvKEEsdSxFKSx1Kz1BLmxlbmd0aDtyZXR1cm4gRX1jbGFzcyBzb3tjb25zdHJ1Y3RvcihBLGUpe3RoaXMuZGljdD1BLHRoaXMucmVmPWUgaW5zdGFuY2VvZiBFQT9lOm51bGwsdGhpcy5yb2xlTWFwPW5ldyBNYXAsdGhpcy5zdHJ1Y3RQYXJlbnRJZHM9bnVsbH1pbml0KCl7dGhpcy5yZWFkUm9sZU1hcCgpfSNNKEEsZSx0KXtpZighKEEgaW5zdGFuY2VvZiBFQSl8fGU8MClyZXR1cm47dGhpcy5zdHJ1Y3RQYXJlbnRJZHN8fD1uZXcgZEE7bGV0IGk9dGhpcy5zdHJ1Y3RQYXJlbnRJZHMuZ2V0KEEpO2l8fChpPVtdLHRoaXMuc3RydWN0UGFyZW50SWRzLnB1dChBLGkpKSxpLnB1c2goW2UsdF0pfWFkZEFubm90YXRpb25JZFRvUGFnZShBLGUpe3RoaXMuI00oQSxlLDQpfXJlYWRSb2xlTWFwKCl7Y29uc3QgQT10aGlzLmRpY3QuZ2V0KCJSb2xlTWFwIik7QSBpbnN0YW5jZW9mIFFBJiZBLmZvckVhY2goKChBLGUpPT57ZSBpbnN0YW5jZW9mIENBJiZ0aGlzLnJvbGVNYXAuc2V0KEEsZS5uYW1lKX0pKX1zdGF0aWMgYXN5bmMgY2FuQ3JlYXRlU3RydWN0dXJlVHJlZSh7Y2F0YWxvZ1JlZjpBLHBkZk1hbmFnZXI6ZSxuZXdBbm5vdGF0aW9uc0J5UGFnZTp0fSl7aWYoIShBIGluc3RhbmNlb2YgRUEpKXJldHVybiBVKCJDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IG5vIGNhdGFsb2cgcmVmZXJlbmNlLiIpLCExO2xldCBpPTAsYT0hMDtmb3IoY29uc3RbQSxzXW9mIHQpe2NvbnN0e3JlZjp0fT1hd2FpdCBlLmdldFBhZ2UoQSk7aWYoISh0IGluc3RhbmNlb2YgRUEpKXtVKGBDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IHBhZ2UgJHtBfSBoYXMgbm8gcmVmLmApLGE9ITA7YnJlYWt9Zm9yKGNvbnN0IEEgb2YgcylBLmFjY2Vzc2liaWxpdHlEYXRhPy50eXBlJiYoQS5wYXJlbnRUcmVlSWQ9aSsrLGE9ITEpfWlmKGEpe2Zvcihjb25zdCBBIG9mIHQudmFsdWVzKCkpZm9yKGNvbnN0IGUgb2YgQSlkZWxldGUgZS5wYXJlbnRUcmVlSWQ7cmV0dXJuITF9cmV0dXJuITB9c3RhdGljIGFzeW5jIGNyZWF0ZVN0cnVjdHVyZVRyZWUoe25ld0Fubm90YXRpb25zQnlQYWdlOkEseHJlZjplLGNhdGFsb2dSZWY6dCxwZGZNYW5hZ2VyOmksbmV3UmVmczphfSl7Y29uc3Qgcz1pLmNhdGFsb2cuY2xvbmVEaWN0KCksbj1uZXcgZEE7bi5wdXQodCxzKTtjb25zdCByPWUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7cy5zZXQoIlN0cnVjdFRyZWVSb290IixyKTtjb25zdCBnPW5ldyBRQShlKTtnLnNldCgiVHlwZSIsQ0EuZ2V0KCJTdHJ1Y3RUcmVlUm9vdCIpKTtjb25zdCBvPWUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7Zy5zZXQoIlBhcmVudFRyZWUiLG8pO2NvbnN0IEk9W107Zy5zZXQoIksiLEkpLG4ucHV0KHIsZyk7Y29uc3QgYz1uZXcgUUEoZSksaD1bXTtjLnNldCgiTnVtcyIsaCk7Y29uc3QgQz1hd2FpdCB0aGlzLiNMKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpBLHN0cnVjdFRyZWVSb290UmVmOnIsc3RydWN0VHJlZVJvb3Q6bnVsbCxraWRzOkksbnVtczpoLHhyZWY6ZSxwZGZNYW5hZ2VyOmksbmV3UmVmczphLGNhY2hlOm59KTtnLnNldCgiUGFyZW50VHJlZU5leHRLZXkiLEMpLG4ucHV0KG8sYyk7Y29uc3QgQj1bXTtmb3IoY29uc3RbQSx0XW9mIG4uaXRlbXMoKSlCLmxlbmd0aD0wLGF3YWl0IFhnKEEsdCxCLGUpLGEucHVzaCh7cmVmOkEsZGF0YTpCLmpvaW4oIiIpfSl9YXN5bmMgY2FuVXBkYXRlU3RydWN0VHJlZSh7cGRmTWFuYWdlcjpBLHhyZWY6ZSxuZXdBbm5vdGF0aW9uc0J5UGFnZTp0fSl7aWYoIXRoaXMucmVmKXJldHVybiBVKCJDYW5ub3QgdXBkYXRlIHRoZSBzdHJ1Y3QgdHJlZTogbm8gcm9vdCByZWZlcmVuY2UuIiksITE7bGV0IGk9dGhpcy5kaWN0LmdldCgiUGFyZW50VHJlZU5leHRLZXkiKTtpZighTnVtYmVyLmlzSW50ZWdlcihpKXx8aTwwKXJldHVybiBVKCJDYW5ub3QgdXBkYXRlIHRoZSBzdHJ1Y3QgdHJlZTogaW52YWxpZCBuZXh0IGtleS4iKSwhMTtjb25zdCBhPXRoaXMuZGljdC5nZXQoIlBhcmVudFRyZWUiKTtpZighKGEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIFUoIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBQYXJlbnRUcmVlIGlzbid0IGEgZGljdC4iKSwhMTtjb25zdCBzPWEuZ2V0KCJOdW1zIik7aWYoIUFycmF5LmlzQXJyYXkocykpcmV0dXJuIFUoIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBudW1zIGlzbid0IGFuIGFycmF5LiIpLCExO2NvbnN0IG49bmV3IGJnKGEsZSk7Zm9yKGNvbnN0IGUgb2YgdC5rZXlzKCkpe2NvbnN0e3BhZ2VEaWN0OnR9PWF3YWl0IEEuZ2V0UGFnZShlKTtpZighdC5oYXMoIlN0cnVjdFBhcmVudHMiKSljb250aW51ZTtjb25zdCBpPXQuZ2V0KCJTdHJ1Y3RQYXJlbnRzIik7aWYoIU51bWJlci5pc0ludGVnZXIoaSl8fCFBcnJheS5pc0FycmF5KG4uZ2V0KGkpKSlyZXR1cm4gVShgQ2Fubm90IHNhdmUgdGhlIHN0cnVjdCB0cmVlOiBwYWdlICR7ZX0gaGFzIGEgd3JvbmcgaWQuYCksITF9bGV0IHI9ITA7Zm9yKGNvbnN0W2UsYV1vZiB0KXtjb25zdHtwYWdlRGljdDp0fT1hd2FpdCBBLmdldFBhZ2UoZSk7c28uI0ooe2VsZW1lbnRzOmEseHJlZjp0aGlzLmRpY3QueHJlZixwYWdlRGljdDp0LG51bWJlclRyZWU6bn0pO2Zvcihjb25zdCBBIG9mIGEpQS5hY2Nlc3NpYmlsaXR5RGF0YT8udHlwZSYmKEEuYWNjZXNzaWJpbGl0eURhdGEuc3RydWN0UGFyZW50Pj0wfHwoQS5wYXJlbnRUcmVlSWQ9aSsrKSxyPSExKX1pZihyKXtmb3IoY29uc3QgQSBvZiB0LnZhbHVlcygpKWZvcihjb25zdCBlIG9mIEEpZGVsZXRlIGUucGFyZW50VHJlZUlkLGRlbGV0ZSBlLnN0cnVjdFRyZWVQYXJlbnQ7cmV0dXJuITF9cmV0dXJuITB9YXN5bmMgdXBkYXRlU3RydWN0dXJlVHJlZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6QSxwZGZNYW5hZ2VyOmUsbmV3UmVmczp0fSl7Y29uc3QgaT10aGlzLmRpY3QueHJlZixhPXRoaXMuZGljdC5jbG9uZSgpLHM9dGhpcy5yZWYsbj1uZXcgZEE7bi5wdXQocyxhKTtsZXQgcixnPWEuZ2V0UmF3KCJQYXJlbnRUcmVlIik7ZyBpbnN0YW5jZW9mIEVBP3I9aS5mZXRjaChnKToocj1nLGc9aS5nZXROZXdUZW1wb3JhcnlSZWYoKSxhLnNldCgiUGFyZW50VHJlZSIsZykpLHI9ci5jbG9uZSgpLG4ucHV0KGcscik7bGV0IG89ci5nZXRSYXcoIk51bXMiKSxJPW51bGw7byBpbnN0YW5jZW9mIEVBJiYoST1vLG89aS5mZXRjaChJKSksbz1vLnNsaWNlKCksSXx8ci5zZXQoIk51bXMiLG8pO2NvbnN0IGM9YXdhaXQgc28uI0woe25ld0Fubm90YXRpb25zQnlQYWdlOkEsc3RydWN0VHJlZVJvb3RSZWY6cyxzdHJ1Y3RUcmVlUm9vdDp0aGlzLGtpZHM6bnVsbCxudW1zOm8seHJlZjppLHBkZk1hbmFnZXI6ZSxuZXdSZWZzOnQsY2FjaGU6bn0pO2lmKC0xPT09YylyZXR1cm47YS5zZXQoIlBhcmVudFRyZWVOZXh0S2V5IixjKSxJJiZuLnB1dChJLG8pO2NvbnN0IGg9W107Zm9yKGNvbnN0W0EsZV1vZiBuLml0ZW1zKCkpaC5sZW5ndGg9MCxhd2FpdCBYZyhBLGUsaCxpKSx0LnB1c2goe3JlZjpBLGRhdGE6aC5qb2luKCIiKX0pfXN0YXRpYyBhc3luYyNMKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpBLHN0cnVjdFRyZWVSb290UmVmOmUsc3RydWN0VHJlZVJvb3Q6dCxraWRzOmksbnVtczphLHhyZWY6cyxwZGZNYW5hZ2VyOm4sbmV3UmVmczpyLGNhY2hlOmd9KXtjb25zdCBvPUNBLmdldCgiT0JKUiIpO2xldCBJLGM9LTE7Y29uc3QgaD1bXTtmb3IoY29uc3RbQyxCXW9mIEEpe2NvbnN0IEE9YXdhaXQgbi5nZXRQYWdlKEMpLHtyZWY6bH09QSxRPWwgaW5zdGFuY2VvZiBFQTtmb3IoY29uc3R7YWNjZXNzaWJpbGl0eURhdGE6bixyZWY6RSxwYXJlbnRUcmVlSWQ6dSxzdHJ1Y3RUcmVlUGFyZW50OmR9b2YgQil7aWYoIW4/LnR5cGUpY29udGludWU7Y29uc3R7c3RydWN0UGFyZW50OkJ9PW47aWYodCYmTnVtYmVyLmlzSW50ZWdlcihCKSYmQj49MCl7bGV0IGU9KEl8fD1uZXcgTWFwKS5nZXQoQyk7dm9pZCAwPT09ZSYmKGU9bmV3IGdvKHQsQS5wYWdlRGljdCkuY29sbGVjdE9iamVjdHMobCksSS5zZXQoQyxlKSk7Y29uc3QgaT1lPy5nZXQoQik7aWYoaSl7Y29uc3QgQT1zLmZldGNoKGkpLmNsb25lKCk7c28uI0goQSxuKSxoLmxlbmd0aD0wLGF3YWl0IFhnKGksQSxoLHMpLHIucHVzaCh7cmVmOmksZGF0YTpoLmpvaW4oIiIpfSk7Y29udGludWV9fWM9TWF0aC5tYXgoYyx1KTtjb25zdCBmPXMuZ2V0TmV3VGVtcG9yYXJ5UmVmKCkscD1uZXcgUUEocyk7c28uI0gocCxuKSxhd2FpdCB0aGlzLiNZKHtzdHJ1Y3RUcmVlUGFyZW50OmQsdGFnRGljdDpwLG5ld1RhZ1JlZjpmLHN0cnVjdFRyZWVSb290UmVmOmUsZmFsbGJhY2tLaWRzOmkseHJlZjpzLGNhY2hlOmd9KTtjb25zdCBtPW5ldyBRQShzKTtwLnNldCgiSyIsbSksbS5zZXQoIlR5cGUiLG8pLFEmJm0uc2V0KCJQZyIsbCksbS5zZXQoIk9iaiIsRSksZy5wdXQoZixwKSxhLnB1c2godSxmKX19cmV0dXJuIGMrMX1zdGF0aWMjSChBLHt0eXBlOmUsdGl0bGU6dCxsYW5nOmksYWx0OmEsZXhwYW5kZWQ6cyxhY3R1YWxUZXh0Om59KXtBLnNldCgiUyIsQ0EuZ2V0KGUpKSx0JiZBLnNldCgiVCIsaWUodCkpLGkmJkEuc2V0KCJMYW5nIixpZShpKSksYSYmQS5zZXQoIkFsdCIsaWUoYSkpLHMmJkEuc2V0KCJFIixpZShzKSksbiYmQS5zZXQoIkFjdHVhbFRleHQiLGllKG4pKX1zdGF0aWMjSih7ZWxlbWVudHM6QSx4cmVmOmUscGFnZURpY3Q6dCxudW1iZXJUcmVlOml9KXtjb25zdCBhPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgQSlpZihlLnN0cnVjdFRyZWVQYXJlbnRJZCl7Y29uc3QgQT1wYXJzZUludChlLnN0cnVjdFRyZWVQYXJlbnRJZC5zcGxpdCgiX21jIilbMV0sMTApO2xldCB0PWEuZ2V0KEEpO3R8fCh0PVtdLGEuc2V0KEEsdCkpLHQucHVzaChlKX1jb25zdCBzPXQuZ2V0KCJTdHJ1Y3RQYXJlbnRzIik7aWYoIU51bWJlci5pc0ludGVnZXIocykpcmV0dXJuO2NvbnN0IG49aS5nZXQocykscj0oQSx0LGkpPT57Y29uc3Qgcz1hLmdldChBKTtpZihzKXtjb25zdCBBPXQuZ2V0UmF3KCJQIiksYT1lLmZldGNoSWZSZWYoQSk7aWYoQSBpbnN0YW5jZW9mIEVBJiZhIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9e3JlZjppLGRpY3Q6dH07Zm9yKGNvbnN0IGUgb2YgcyllLnN0cnVjdFRyZWVQYXJlbnQ9QX1yZXR1cm4hMH1yZXR1cm4hMX07Zm9yKGNvbnN0IEEgb2Ygbil7aWYoIShBIGluc3RhbmNlb2YgRUEpKWNvbnRpbnVlO2NvbnN0IHQ9ZS5mZXRjaChBKSxpPXQuZ2V0KCJLIik7aWYoTnVtYmVyLmlzSW50ZWdlcihpKSlyKGksdCxBKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhIG9mIGkpe2lmKGE9ZS5mZXRjaElmUmVmKGEpLE51bWJlci5pc0ludGVnZXIoYSkmJnIoYSx0LEEpKWJyZWFrO2lmKCEoYSBpbnN0YW5jZW9mIFFBKSljb250aW51ZTtpZighZkEoYS5nZXQoIlR5cGUiKSwiTUNSIikpYnJlYWs7Y29uc3QgaT1hLmdldCgiTUNJRCIpO2lmKE51bWJlci5pc0ludGVnZXIoaSkmJnIoaSx0LEEpKWJyZWFrfX19c3RhdGljIGFzeW5jI1koe3N0cnVjdFRyZWVQYXJlbnQ6QSx0YWdEaWN0OmUsbmV3VGFnUmVmOnQsc3RydWN0VHJlZVJvb3RSZWY6aSxmYWxsYmFja0tpZHM6YSx4cmVmOnMsY2FjaGU6bn0pe2xldCByLGc9bnVsbDtBPygoe3JlZjpnfT1BKSxyPUEuZGljdC5nZXRSYXcoIlAiKXx8aSk6cj1pLGUuc2V0KCJQIixyKTtjb25zdCBvPXMuZmV0Y2hJZlJlZihyKTtpZighbylyZXR1cm4gdm9pZCBhLnB1c2godCk7bGV0IEk9bi5nZXQocik7SXx8KEk9by5jbG9uZSgpLG4ucHV0KHIsSSkpO2NvbnN0IGM9SS5nZXRSYXcoIksiKTtsZXQgaD1jIGluc3RhbmNlb2YgRUE/bi5nZXQoYyk6bnVsbDtpZighaCl7aD1zLmZldGNoSWZSZWYoYyksaD1BcnJheS5pc0FycmF5KGgpP2guc2xpY2UoKTpbY107Y29uc3QgQT1zLmdldE5ld1RlbXBvcmFyeVJlZigpO0kuc2V0KCJLIixBKSxuLnB1dChBLGgpfWNvbnN0IEM9aC5pbmRleE9mKGcpO2guc3BsaWNlKEM+PTA/QysxOmgubGVuZ3RoLDAsdCl9fWNsYXNzIG5ve2NvbnN0cnVjdG9yKEEsZSl7dGhpcy50cmVlPUEsdGhpcy5kaWN0PWUsdGhpcy5raWRzPVtdLHRoaXMucGFyc2VLaWRzKCl9Z2V0IHJvbGUoKXtjb25zdCBBPXRoaXMuZGljdC5nZXQoIlMiKSxlPUEgaW5zdGFuY2VvZiBDQT9BLm5hbWU6IiIse3Jvb3Q6dH09dGhpcy50cmVlO3JldHVybiB0LnJvbGVNYXAuaGFzKGUpP3Qucm9sZU1hcC5nZXQoZSk6ZX1wYXJzZUtpZHMoKXtsZXQgQT1udWxsO2NvbnN0IGU9dGhpcy5kaWN0LmdldFJhdygiUGciKTtlIGluc3RhbmNlb2YgRUEmJihBPWUudG9TdHJpbmcoKSk7Y29uc3QgdD10aGlzLmRpY3QuZ2V0KCJLIik7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgZSBvZiB0KXtjb25zdCB0PXRoaXMucGFyc2VLaWQoQSxlKTt0JiZ0aGlzLmtpZHMucHVzaCh0KX1lbHNle2NvbnN0IGU9dGhpcy5wYXJzZUtpZChBLHQpO2UmJnRoaXMua2lkcy5wdXNoKGUpfX1wYXJzZUtpZChBLGUpe2lmKE51bWJlci5pc0ludGVnZXIoZSkpcmV0dXJuIHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PUE/bnVsbDpuZXcgcm8oe3R5cGU6MSxtY2lkOmUscGFnZU9iaklkOkF9KTtsZXQgdD1udWxsO2lmKGUgaW5zdGFuY2VvZiBFQT90PXRoaXMuZGljdC54cmVmLmZldGNoKGUpOmUgaW5zdGFuY2VvZiBRQSYmKHQ9ZSksIXQpcmV0dXJuIG51bGw7Y29uc3QgaT10LmdldFJhdygiUGciKTtpIGluc3RhbmNlb2YgRUEmJihBPWkudG9TdHJpbmcoKSk7Y29uc3QgYT10LmdldCgiVHlwZSIpaW5zdGFuY2VvZiBDQT90LmdldCgiVHlwZSIpLm5hbWU6bnVsbDtpZigiTUNSIj09PWEpe2lmKHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PUEpcmV0dXJuIG51bGw7Y29uc3QgZT10LmdldFJhdygiU3RtIik7cmV0dXJuIG5ldyBybyh7dHlwZToyLHJlZk9iaklkOmUgaW5zdGFuY2VvZiBFQT9lLnRvU3RyaW5nKCk6bnVsbCxwYWdlT2JqSWQ6QSxtY2lkOnQuZ2V0KCJNQ0lEIil9KX1pZigiT0JKUiI9PT1hKXtpZih0aGlzLnRyZWUucGFnZURpY3Qub2JqSWQhPT1BKXJldHVybiBudWxsO2NvbnN0IGU9dC5nZXRSYXcoIk9iaiIpO3JldHVybiBuZXcgcm8oe3R5cGU6MyxyZWZPYmpJZDplIGluc3RhbmNlb2YgRUE/ZS50b1N0cmluZygpOm51bGwscGFnZU9iaklkOkF9KX1yZXR1cm4gbmV3IHJvKHt0eXBlOjUsZGljdDp0fSl9fWNsYXNzIHJve2NvbnN0cnVjdG9yKHt0eXBlOkEsZGljdDplPW51bGwsbWNpZDp0PW51bGwscGFnZU9iaklkOmk9bnVsbCxyZWZPYmpJZDphPW51bGx9KXt0aGlzLnR5cGU9QSx0aGlzLmRpY3Q9ZSx0aGlzLm1jaWQ9dCx0aGlzLnBhZ2VPYmpJZD1pLHRoaXMucmVmT2JqSWQ9YSx0aGlzLnBhcmVudE5vZGU9bnVsbH19Y2xhc3MgZ297Y29uc3RydWN0b3IoQSxlKXt0aGlzLnJvb3Q9QSx0aGlzLnJvb3REaWN0PUE/QS5kaWN0Om51bGwsdGhpcy5wYWdlRGljdD1lLHRoaXMubm9kZXM9W119Y29sbGVjdE9iamVjdHMoQSl7aWYoISh0aGlzLnJvb3QmJnRoaXMucm9vdERpY3QmJkEgaW5zdGFuY2VvZiBFQSkpcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLnJvb3REaWN0LmdldCgiUGFyZW50VHJlZSIpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5yb290LnN0cnVjdFBhcmVudElkcz8uZ2V0KEEpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGk9bmV3IE1hcCxhPW5ldyBiZyhlLHRoaXMucm9vdERpY3QueHJlZik7Zm9yKGNvbnN0W0Fdb2YgdCl7Y29uc3QgZT1hLmdldFJhdyhBKTtlIGluc3RhbmNlb2YgRUEmJmkuc2V0KEEsZSl9cmV0dXJuIGl9cGFyc2UoQSl7aWYoISh0aGlzLnJvb3QmJnRoaXMucm9vdERpY3QmJkEgaW5zdGFuY2VvZiBFQSkpcmV0dXJuO2NvbnN0IGU9dGhpcy5yb290RGljdC5nZXQoIlBhcmVudFRyZWUiKTtpZighZSlyZXR1cm47Y29uc3QgdD10aGlzLnBhZ2VEaWN0LmdldCgiU3RydWN0UGFyZW50cyIpLGk9dGhpcy5yb290LnN0cnVjdFBhcmVudElkcz8uZ2V0KEEpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpJiYhaSlyZXR1cm47Y29uc3QgYT1uZXcgTWFwLHM9bmV3IGJnKGUsdGhpcy5yb290RGljdC54cmVmKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXtjb25zdCBBPXMuZ2V0KHQpO2lmKEFycmF5LmlzQXJyYXkoQSkpZm9yKGNvbnN0IGUgb2YgQSllIGluc3RhbmNlb2YgRUEmJnRoaXMuYWRkTm9kZSh0aGlzLnJvb3REaWN0LnhyZWYuZmV0Y2goZSksYSl9aWYoaSlmb3IoY29uc3RbQSxlXW9mIGkpe2NvbnN0IHQ9cy5nZXQoQSk7aWYodCl7Y29uc3QgQT10aGlzLmFkZE5vZGUodGhpcy5yb290RGljdC54cmVmLmZldGNoSWZSZWYodCksYSk7MT09PUE/LmtpZHM/Lmxlbmd0aCYmMz09PUEua2lkc1swXS50eXBlJiYoQS5raWRzWzBdLnR5cGU9ZSl9fX1hZGROb2RlKEEsZSx0PTApe2lmKHQ+NDApcmV0dXJuIFUoIlN0cnVjdFRyZWUgTUFYX0RFUFRIIHJlYWNoZWQuIiksbnVsbDtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7aWYoZS5oYXMoQSkpcmV0dXJuIGUuZ2V0KEEpO2NvbnN0IGk9bmV3IG5vKHRoaXMsQSk7ZS5zZXQoQSxpKTtjb25zdCBhPUEuZ2V0KCJQIik7aWYoIWF8fGZBKGEuZ2V0KCJUeXBlIiksIlN0cnVjdFRyZWVSb290IikpcmV0dXJuIHRoaXMuYWRkVG9wTGV2ZWxOb2RlKEEsaSl8fGUuZGVsZXRlKEEpLGk7Y29uc3Qgcz10aGlzLmFkZE5vZGUoYSxlLHQrMSk7aWYoIXMpcmV0dXJuIGk7bGV0IG49ITE7Zm9yKGNvbnN0IGUgb2Ygcy5raWRzKTU9PT1lLnR5cGUmJmUuZGljdD09PUEmJihlLnBhcmVudE5vZGU9aSxuPSEwKTtyZXR1cm4gbnx8ZS5kZWxldGUoQSksaX1hZGRUb3BMZXZlbE5vZGUoQSxlKXtjb25zdCB0PXRoaXMucm9vdERpY3QuZ2V0KCJLIik7aWYoIXQpcmV0dXJuITE7aWYodCBpbnN0YW5jZW9mIFFBKXJldHVybiB0Lm9iaklkPT09QS5vYmpJZCYmKHRoaXMubm9kZXNbMF09ZSwhMCk7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuITA7bGV0IGk9ITE7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspe2NvbnN0IHM9dFthXTtzPy50b1N0cmluZygpPT09QS5vYmpJZCYmKHRoaXMubm9kZXNbYV09ZSxpPSEwKX1yZXR1cm4gaX1nZXQgc2VyaWFsaXphYmxlKCl7ZnVuY3Rpb24gQShlLHQsaT0wKXtpZihpPjQwKXJldHVybiB2b2lkIFUoIlN0cnVjdFRyZWUgdG9vIGRlZXAgdG8gYmUgZnVsbHkgc2VyaWFsaXplZC4iKTtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCk7YS5yb2xlPWUucm9sZSxhLmNoaWxkcmVuPVtdLHQuY2hpbGRyZW4ucHVzaChhKTtsZXQgcz1lLmRpY3QuZ2V0KCJBbHQiKTsic3RyaW5nIiE9dHlwZW9mIHMmJihzPWUuZGljdC5nZXQoIkFjdHVhbFRleHQiKSksInN0cmluZyI9PXR5cGVvZiBzJiYoYS5hbHQ9ZUEocykpO2NvbnN0IG49ZS5kaWN0LmdldCgiQSIpO2lmKG4gaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1UQShuLmdldEFycmF5KCJCQm94IiksbnVsbCk7aWYoQSlhLmJib3g9QTtlbHNle2NvbnN0IEE9bi5nZXQoIldpZHRoIiksZT1uLmdldCgiSGVpZ2h0Iik7Im51bWJlciI9PXR5cGVvZiBBJiZBPjAmJiJudW1iZXIiPT10eXBlb2YgZSYmZT4wJiYoYS5iYm94PVswLDAsQSxlXSl9fWNvbnN0IHI9ZS5kaWN0LmdldCgiTGFuZyIpOyJzdHJpbmciPT10eXBlb2YgciYmKGEubGFuZz1lQShyKSk7Zm9yKGNvbnN0IHQgb2YgZS5raWRzKXtjb25zdCBlPTU9PT10LnR5cGU/dC5wYXJlbnROb2RlOm51bGw7ZT9BKGUsYSxpKzEpOjE9PT10LnR5cGV8fDI9PT10LnR5cGU/YS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJjb250ZW50IixpZDpgcCR7dC5wYWdlT2JqSWR9X21jJHt0Lm1jaWR9YH0pOjM9PT10LnR5cGU/YS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJvYmplY3QiLGlkOnQucmVmT2JqSWR9KTo0PT09dC50eXBlJiZhLmNoaWxkcmVuLnB1c2goe3R5cGU6ImFubm90YXRpb24iLGlkOmBwZGZqc19pbnRlcm5hbF9pZF8ke3QucmVmT2JqSWR9YH0pfX1jb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZS5jaGlsZHJlbj1bXSxlLnJvbGU9IlJvb3QiO2Zvcihjb25zdCB0IG9mIHRoaXMubm9kZXMpdCYmQSh0LGUpO3JldHVybiBlfX1mdW5jdGlvbiBvbyhBKXtpZighQXJyYXkuaXNBcnJheShBKXx8QS5sZW5ndGg8MilyZXR1cm4hMTtjb25zdFtlLHQsLi4uaV09QTtpZighKGUgaW5zdGFuY2VvZiBFQXx8TnVtYmVyLmlzSW50ZWdlcihlKSkpcmV0dXJuITE7aWYoISh0IGluc3RhbmNlb2YgQ0EpKXJldHVybiExO2NvbnN0IGE9aS5sZW5ndGg7bGV0IHM9ITA7c3dpdGNoKHQubmFtZSl7Y2FzZSJYWVoiOmlmKGE8Mnx8YT4zKXJldHVybiExO2JyZWFrO2Nhc2UiRml0IjpjYXNlIkZpdEIiOnJldHVybiAwPT09YTtjYXNlIkZpdEgiOmNhc2UiRml0QkgiOmNhc2UiRml0ViI6Y2FzZSJGaXRCViI6aWYoYT4xKXJldHVybiExO2JyZWFrO2Nhc2UiRml0UiI6aWYoNCE9PWEpcmV0dXJuITE7cz0hMTticmVhaztkZWZhdWx0OnJldHVybiExfWZvcihjb25zdCBBIG9mIGkpaWYoISgibnVtYmVyIj09dHlwZW9mIEF8fHMmJm51bGw9PT1BKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBJbyhBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFFBJiYoQT1BLmdldCgiRCIpKSxvbyhBKT9BOm51bGx9ZnVuY3Rpb24gY28oQSl7bGV0IGU9QS5nZXQoIkQiKTtpZihlKXtpZihlIGluc3RhbmNlb2YgQ0EmJihlPWUubmFtZSksInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlQShlKTtpZihvbyhlKSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9cmV0dXJuIG51bGx9Y2xhc3MgaG97Y29uc3RydWN0b3IoQSxlKXtpZih0aGlzLnBkZk1hbmFnZXI9QSx0aGlzLnhyZWY9ZSx0aGlzLl9jYXREaWN0PWUuZ2V0Q2F0YWxvZ09iaigpLCEodGhpcy5fY2F0RGljdCBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiQ2F0YWxvZyBvYmplY3QgaXMgbm90IGEgZGljdGlvbmFyeS4iKTt0aGlzLnRvcGxldmVsUGFnZXNEaWN0LHRoaXMuX2FjdHVhbE51bVBhZ2VzPW51bGwsdGhpcy5mb250Q2FjaGU9bmV3IGRBLHRoaXMuYnVpbHRJbkNNYXBDYWNoZT1uZXcgTWFwLHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPW5ldyBNYXAsdGhpcy5nbG9iYWxJbWFnZUNhY2hlPW5ldyBvcix0aGlzLnBhZ2VLaWRzQ291bnRDYWNoZT1uZXcgZEEsdGhpcy5wYWdlSW5kZXhDYWNoZT1uZXcgZEEsdGhpcy5wYWdlRGljdENhY2hlPW5ldyBkQSx0aGlzLm5vbkJsZW5kTW9kZXNTZXQ9bmV3IHVBLHRoaXMuc3lzdGVtRm9udENhY2hlPW5ldyBNYXB9Y2xvbmVEaWN0KCl7cmV0dXJuIHRoaXMuX2NhdERpY3QuY2xvbmUoKX1nZXQgdmVyc2lvbigpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXQoIlZlcnNpb24iKTtpZihBIGluc3RhbmNlb2YgQ0Epe2lmKERBLnRlc3QoQS5uYW1lKSlyZXR1cm4gSCh0aGlzLCJ2ZXJzaW9uIixBLm5hbWUpO1UoYEludmFsaWQgUERGIGNhdGFsb2cgdmVyc2lvbjogJHtBLm5hbWV9YCl9cmV0dXJuIEgodGhpcywidmVyc2lvbiIsbnVsbCl9Z2V0IGxhbmcoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJMYW5nIik7cmV0dXJuIEgodGhpcywibGFuZyIsQSYmInN0cmluZyI9PXR5cGVvZiBBP2VBKEEpOm51bGwpfWdldCBuZWVkc1JlbmRlcmluZygpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXQoIk5lZWRzUmVuZGVyaW5nIik7cmV0dXJuIEgodGhpcywibmVlZHNSZW5kZXJpbmciLCJib29sZWFuIj09dHlwZW9mIEEmJkEpfWdldCBjb2xsZWN0aW9uKCl7bGV0IEE9bnVsbDt0cnl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiQ29sbGVjdGlvbiIpO2UgaW5zdGFuY2VvZiBRQSYmZS5zaXplPjAmJihBPWUpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO3goIkNhbm5vdCBmZXRjaCBDb2xsZWN0aW9uIGVudHJ5OyBhc3N1bWluZyBubyBjb2xsZWN0aW9uIGlzIHByZXNlbnQuIil9cmV0dXJuIEgodGhpcywiY29sbGVjdGlvbiIsQSl9Z2V0IGFjcm9Gb3JtKCl7bGV0IEE9bnVsbDt0cnl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiQWNyb0Zvcm0iKTtlIGluc3RhbmNlb2YgUUEmJmUuc2l6ZT4wJiYoQT1lKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTt4KCJDYW5ub3QgZmV0Y2ggQWNyb0Zvcm0gZW50cnk7IGFzc3VtaW5nIG5vIGZvcm1zIGFyZSBwcmVzZW50LiIpfXJldHVybiBIKHRoaXMsImFjcm9Gb3JtIixBKX1nZXQgYWNyb0Zvcm1SZWYoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJBY3JvRm9ybSIpO3JldHVybiBIKHRoaXMsImFjcm9Gb3JtUmVmIixBIGluc3RhbmNlb2YgRUE/QTpudWxsKX1nZXQgbWV0YWRhdGEoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJNZXRhZGF0YSIpO2lmKCEoQSBpbnN0YW5jZW9mIEVBKSlyZXR1cm4gSCh0aGlzLCJtZXRhZGF0YSIsbnVsbCk7bGV0IGU9bnVsbDt0cnl7Y29uc3QgdD10aGlzLnhyZWYuZmV0Y2goQSwhdGhpcy54cmVmLmVuY3J5cHQ/LmVuY3J5cHRNZXRhZGF0YSk7aWYodCBpbnN0YW5jZW9mIHdBJiZ0LmRpY3QgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT10LmRpY3QuZ2V0KCJUeXBlIiksaT10LmRpY3QuZ2V0KCJTdWJ0eXBlIik7aWYoZkEoQSwiTWV0YWRhdGEiKSYmZkEoaSwiWE1MIikpe2NvbnN0IEE9dEEodC5nZXRTdHJpbmcoKSk7QSYmKGU9bmV3IFVnKEEpLnNlcmlhbGl6YWJsZSl9fX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTt4KGBTa2lwcGluZyBpbnZhbGlkIE1ldGFkYXRhOiAiJHtBfSIuYCl9cmV0dXJuIEgodGhpcywibWV0YWRhdGEiLGUpfWdldCBtYXJrSW5mbygpe2xldCBBPW51bGw7dHJ5e0E9dGhpcy5fcmVhZE1hcmtJbmZvKCl9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7VSgiVW5hYmxlIHRvIHJlYWQgbWFyayBpbmZvLiIpfXJldHVybiBIKHRoaXMsIm1hcmtJbmZvIixBKX1fcmVhZE1hcmtJbmZvKCl7Y29uc3QgQT10aGlzLl9jYXREaWN0LmdldCgiTWFya0luZm8iKTtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7Y29uc3QgZT17TWFya2VkOiExLFVzZXJQcm9wZXJ0aWVzOiExLFN1c3BlY3RzOiExfTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBpPUEuZ2V0KHQpOyJib29sZWFuIj09dHlwZW9mIGkmJihlW3RdPWkpfXJldHVybiBlfWdldCBzdHJ1Y3RUcmVlUm9vdCgpe2xldCBBPW51bGw7dHJ5e0E9dGhpcy5fcmVhZFN0cnVjdFRyZWVSb290KCl9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7VSgiVW5hYmxlIHJlYWQgdG8gc3RydWN0VHJlZVJvb3QgaW5mby4iKX1yZXR1cm4gSCh0aGlzLCJzdHJ1Y3RUcmVlUm9vdCIsQSl9X3JlYWRTdHJ1Y3RUcmVlUm9vdCgpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXRSYXcoIlN0cnVjdFRyZWVSb290IiksZT10aGlzLnhyZWYuZmV0Y2hJZlJlZihBKTtpZighKGUgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7Y29uc3QgdD1uZXcgc28oZSxBKTtyZXR1cm4gdC5pbml0KCksdH1nZXQgdG9wbGV2ZWxQYWdlc0RpY3QoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlcyIpO2lmKCEoQSBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiSW52YWxpZCB0b3AtbGV2ZWwgcGFnZXMgZGljdGlvbmFyeS4iKTtyZXR1cm4gSCh0aGlzLCJ0b3BsZXZlbFBhZ2VzRGljdCIsQSl9Z2V0IGRvY3VtZW50T3V0bGluZSgpe2xldCBBPW51bGw7dHJ5e0E9dGhpcy5fcmVhZERvY3VtZW50T3V0bGluZSgpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIlVuYWJsZSB0byByZWFkIGRvY3VtZW50IG91dGxpbmUuIil9cmV0dXJuIEgodGhpcywiZG9jdW1lbnRPdXRsaW5lIixBKX1fcmVhZERvY3VtZW50T3V0bGluZSgpe2xldCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJPdXRsaW5lcyIpO2lmKCEoQSBpbnN0YW5jZW9mIFFBKSlyZXR1cm4gbnVsbDtpZihBPUEuZ2V0UmF3KCJGaXJzdCIpLCEoQSBpbnN0YW5jZW9mIEVBKSlyZXR1cm4gbnVsbDtjb25zdCBlPXtpdGVtczpbXX0sdD1be29iajpBLHBhcmVudDplfV0saT1uZXcgdUE7aS5wdXQoQSk7Y29uc3QgYT10aGlzLnhyZWYscz1uZXcgVWludDhDbGFtcGVkQXJyYXkoMyk7Zm9yKDt0Lmxlbmd0aD4wOyl7Y29uc3QgZT10LnNoaWZ0KCksbj1hLmZldGNoSWZSZWYoZS5vYmopO2lmKG51bGw9PT1uKWNvbnRpbnVlO24uaGFzKCJUaXRsZSIpfHxVKCJJbnZhbGlkIG91dGxpbmUgaXRlbSBlbmNvdW50ZXJlZC4iKTtjb25zdCByPXt1cmw6bnVsbCxkZXN0Om51bGwsYWN0aW9uOm51bGx9O2hvLnBhcnNlRGVzdERpY3Rpb25hcnkoe2Rlc3REaWN0Om4scmVzdWx0T2JqOnIsZG9jQmFzZVVybDp0aGlzLmJhc2VVcmwsZG9jQXR0YWNobWVudHM6dGhpcy5hdHRhY2htZW50c30pO2NvbnN0IGc9bi5nZXQoIlRpdGxlIiksbz1uLmdldCgiRiIpfHwwLEk9bi5nZXRBcnJheSgiQyIpLGM9bi5nZXQoIkNvdW50Iik7bGV0IGg9czshdkEoSSwzKXx8MD09PUlbMF0mJjA9PT1JWzFdJiYwPT09SVsyXXx8KGg9Q2Uuc2luZ2xldG9ucy5yZ2IuZ2V0UmdiKEksMCkpO2NvbnN0IEM9e2FjdGlvbjpyLmFjdGlvbixhdHRhY2htZW50OnIuYXR0YWNobWVudCxkZXN0OnIuZGVzdCx1cmw6ci51cmwsdW5zYWZlVXJsOnIudW5zYWZlVXJsLG5ld1dpbmRvdzpyLm5ld1dpbmRvdyxzZXRPQ0dTdGF0ZTpyLnNldE9DR1N0YXRlLHRpdGxlOiJzdHJpbmciPT10eXBlb2YgZz9lQShnKToiIixjb2xvcjpoLGNvdW50Ok51bWJlci5pc0ludGVnZXIoYyk/Yzp2b2lkIDAsYm9sZDohISgyJm8pLGl0YWxpYzohISgxJm8pLGl0ZW1zOltdfTtlLnBhcmVudC5pdGVtcy5wdXNoKEMpLEE9bi5nZXRSYXcoIkZpcnN0IiksQSBpbnN0YW5jZW9mIEVBJiYhaS5oYXMoQSkmJih0LnB1c2goe29iajpBLHBhcmVudDpDfSksaS5wdXQoQSkpLEE9bi5nZXRSYXcoIk5leHQiKSxBIGluc3RhbmNlb2YgRUEmJiFpLmhhcyhBKSYmKHQucHVzaCh7b2JqOkEscGFyZW50OmUucGFyZW50fSksaS5wdXQoQSkpfXJldHVybiBlLml0ZW1zLmxlbmd0aD4wP2UuaXRlbXM6bnVsbH1nZXQgcGVybWlzc2lvbnMoKXtsZXQgQT1udWxsO3RyeXtBPXRoaXMuX3JlYWRQZXJtaXNzaW9ucygpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIlVuYWJsZSB0byByZWFkIHBlcm1pc3Npb25zLiIpfXJldHVybiBIKHRoaXMsInBlcm1pc3Npb25zIixBKX1fcmVhZFBlcm1pc3Npb25zKCl7Y29uc3QgQT10aGlzLnhyZWYudHJhaWxlci5nZXQoIkVuY3J5cHQiKTtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7bGV0IGU9QS5nZXQoIlAiKTtpZigibnVtYmVyIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7ZSs9MioqMzI7Y29uc3QgdD1bXTtmb3IoY29uc3QgQSBpbiBJKXtjb25zdCBpPUlbQV07ZSZpJiZ0LnB1c2goaSl9cmV0dXJuIHR9Z2V0IG9wdGlvbmFsQ29udGVudENvbmZpZygpe2xldCBBPW51bGw7dHJ5e2NvbnN0IGU9dGhpcy5fY2F0RGljdC5nZXQoIk9DUHJvcGVydGllcyIpO2lmKCFlKXJldHVybiBIKHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgdD1lLmdldCgiRCIpO2lmKCF0KXJldHVybiBIKHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgaT1lLmdldCgiT0NHcyIpO2lmKCFBcnJheS5pc0FycmF5KGkpKXJldHVybiBIKHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgYT1bXSxzPW5ldyB1QTtmb3IoY29uc3QgQSBvZiBpKUEgaW5zdGFuY2VvZiBFQSYmIXMuaGFzKEEpJiYocy5wdXQoQSksYS5wdXNoKHRoaXMuI3YoQSkpKTtBPXRoaXMuI0sodCxzKSxBLmdyb3Vwcz1hfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoYFVuYWJsZSB0byByZWFkIG9wdGlvbmFsIGNvbnRlbnQgY29uZmlnOiAke0F9YCl9cmV0dXJuIEgodGhpcywib3B0aW9uYWxDb250ZW50Q29uZmlnIixBKX0jdihBKXtjb25zdCBlPXRoaXMueHJlZi5mZXRjaChBKSx0PXtpZDpBLnRvU3RyaW5nKCksbmFtZTpudWxsLGludGVudDpudWxsLHVzYWdlOntwcmludDpudWxsLHZpZXc6bnVsbH19LGk9ZS5nZXQoIk5hbWUiKTsic3RyaW5nIj09dHlwZW9mIGkmJih0Lm5hbWU9ZUEoaSkpO2xldCBhPWUuZ2V0QXJyYXkoIkludGVudCIpO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSksYS5ldmVyeSgoQT0+QSBpbnN0YW5jZW9mIENBKSkmJih0LmludGVudD1hLm1hcCgoQT0+QS5uYW1lKSkpO2NvbnN0IHM9ZS5nZXQoIlVzYWdlIik7aWYoIShzIGluc3RhbmNlb2YgUUEpKXJldHVybiB0O2NvbnN0IG49dC51c2FnZSxyPXMuZ2V0KCJQcmludCIpO2lmKHIgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1yLmdldCgiUHJpbnRTdGF0ZSIpO2lmKEEgaW5zdGFuY2VvZiBDQSlzd2l0Y2goQS5uYW1lKXtjYXNlIk9OIjpjYXNlIk9GRiI6bi5wcmludD17cHJpbnRTdGF0ZTpBLm5hbWV9fX1jb25zdCBnPXMuZ2V0KCJWaWV3Iik7aWYoZyBpbnN0YW5jZW9mIFFBKXtjb25zdCBBPWcuZ2V0KCJWaWV3U3RhdGUiKTtpZihBIGluc3RhbmNlb2YgQ0Epc3dpdGNoKEEubmFtZSl7Y2FzZSJPTiI6Y2FzZSJPRkYiOm4udmlldz17dmlld1N0YXRlOkEubmFtZX19fXJldHVybiB0fSNLKEEsZSl7ZnVuY3Rpb24gdChBKXtjb25zdCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoQSkpZm9yKGNvbnN0IGkgb2YgQSlpIGluc3RhbmNlb2YgRUEmJmUuaGFzKGkpJiZ0LnB1c2goaS50b1N0cmluZygpKTtyZXR1cm4gdH1mdW5jdGlvbiBpKEEsdD0wKXtpZighQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gbnVsbDtjb25zdCBpPVtdO2Zvcihjb25zdCBzIG9mIEEpe2lmKHMgaW5zdGFuY2VvZiBFQSYmZS5oYXMocykpe24ucHV0KHMpLGkucHVzaChzLnRvU3RyaW5nKCkpO2NvbnRpbnVlfWNvbnN0IEE9YShzLHQpO0EmJmkucHVzaChBKX1pZih0PjApcmV0dXJuIGk7Y29uc3Qgcz1bXTtmb3IoY29uc3QgQSBvZiBlKW4uaGFzKEEpfHxzLnB1c2goQS50b1N0cmluZygpKTtyZXR1cm4gcy5sZW5ndGgmJmkucHVzaCh7bmFtZTpudWxsLG9yZGVyOnN9KSxpfWZ1bmN0aW9uIGEoQSxlKXtpZigrK2U+cilyZXR1cm4gVSgicGFyc2VOZXN0ZWRPcmRlciAtIHJlYWNoZWQgTUFYX05FU1RFRF9MRVZFTFMuIiksbnVsbDtjb25zdCB0PXMuZmV0Y2hJZlJlZihBKTtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbnVsbDtjb25zdCBhPXMuZmV0Y2hJZlJlZih0WzBdKTtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7Y29uc3Qgbj1pKHQuc2xpY2UoMSksZSk7cmV0dXJuIG4mJm4ubGVuZ3RoP3tuYW1lOmVBKGEpLG9yZGVyOm59Om51bGx9Y29uc3Qgcz10aGlzLnhyZWYsbj1uZXcgdUEscj0xMDtyZXR1cm57bmFtZToic3RyaW5nIj09dHlwZW9mIEEuZ2V0KCJOYW1lIik/ZUEoQS5nZXQoIk5hbWUiKSk6bnVsbCxjcmVhdG9yOiJzdHJpbmciPT10eXBlb2YgQS5nZXQoIkNyZWF0b3IiKT9lQShBLmdldCgiQ3JlYXRvciIpKTpudWxsLGJhc2VTdGF0ZTpBLmdldCgiQmFzZVN0YXRlIilpbnN0YW5jZW9mIENBP0EuZ2V0KCJCYXNlU3RhdGUiKS5uYW1lOm51bGwsb246dChBLmdldCgiT04iKSksb2ZmOnQoQS5nZXQoIk9GRiIpKSxvcmRlcjppKEEuZ2V0KCJPcmRlciIpKSxncm91cHM6bnVsbH19c2V0QWN0dWFsTnVtUGFnZXMoQT1udWxsKXt0aGlzLl9hY3R1YWxOdW1QYWdlcz1BfWdldCBoYXNBY3R1YWxOdW1QYWdlcygpe3JldHVybiBudWxsIT09dGhpcy5fYWN0dWFsTnVtUGFnZXN9Z2V0IF9wYWdlc0NvdW50KCl7Y29uc3QgQT10aGlzLnRvcGxldmVsUGFnZXNEaWN0LmdldCgiQ291bnQiKTtpZighTnVtYmVyLmlzSW50ZWdlcihBKSl0aHJvdyBuZXcgVygiUGFnZSBjb3VudCBpbiB0b3AtbGV2ZWwgcGFnZXMgZGljdGlvbmFyeSBpcyBub3QgYW4gaW50ZWdlci4iKTtyZXR1cm4gSCh0aGlzLCJfcGFnZXNDb3VudCIsQSl9Z2V0IG51bVBhZ2VzKCl7cmV0dXJuIHRoaXMuaGFzQWN0dWFsTnVtUGFnZXM/dGhpcy5fYWN0dWFsTnVtUGFnZXM6dGhpcy5fcGFnZXNDb3VudH1nZXQgZGVzdGluYXRpb25zKCl7Y29uc3QgQT10aGlzLl9yZWFkRGVzdHMoKSxlPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoQSBpbnN0YW5jZW9mIERnKWZvcihjb25zdFt0LGldb2YgQS5nZXRBbGwoKSl7Y29uc3QgQT1JbyhpKTtBJiYoZVtlQSh0KV09QSl9ZWxzZSBBIGluc3RhbmNlb2YgUUEmJkEuZm9yRWFjaCgoZnVuY3Rpb24oQSx0KXtjb25zdCBpPUlvKHQpO2kmJihlW0FdPWkpfSkpO3JldHVybiBIKHRoaXMsImRlc3RpbmF0aW9ucyIsZSl9Z2V0RGVzdGluYXRpb24oQSl7Y29uc3QgZT10aGlzLl9yZWFkRGVzdHMoKTtpZihlIGluc3RhbmNlb2YgRGcpe2NvbnN0IHQ9SW8oZS5nZXQoQSkpO2lmKHQpcmV0dXJuIHQ7Y29uc3QgaT10aGlzLmRlc3RpbmF0aW9uc1tBXTtpZihpKXJldHVybiBVKGBGb3VuZCAiJHtBfSIgYXQgYW4gaW5jb3JyZWN0IHBvc2l0aW9uIGluIHRoZSBOYW1lVHJlZS5gKSxpfWVsc2UgaWYoZSBpbnN0YW5jZW9mIFFBKXtjb25zdCB0PUlvKGUuZ2V0KEEpKTtpZih0KXJldHVybiB0fXJldHVybiBudWxsfV9yZWFkRGVzdHMoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO3JldHVybiBBPy5oYXMoIkRlc3RzIik/bmV3IERnKEEuZ2V0UmF3KCJEZXN0cyIpLHRoaXMueHJlZik6dGhpcy5fY2F0RGljdC5oYXMoIkRlc3RzIik/dGhpcy5fY2F0RGljdC5nZXQoIkRlc3RzIik6dm9pZCAwfWdldCBwYWdlTGFiZWxzKCl7bGV0IEE9bnVsbDt0cnl7QT10aGlzLl9yZWFkUGFnZUxhYmVscygpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIlVuYWJsZSB0byByZWFkIHBhZ2UgbGFiZWxzLiIpfXJldHVybiBIKHRoaXMsInBhZ2VMYWJlbHMiLEEpfV9yZWFkUGFnZUxhYmVscygpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXRSYXcoIlBhZ2VMYWJlbHMiKTtpZighQSlyZXR1cm4gbnVsbDtjb25zdCBlPW5ldyBBcnJheSh0aGlzLm51bVBhZ2VzKTtsZXQgdD1udWxsLGk9IiI7Y29uc3QgYT1uZXcgYmcoQSx0aGlzLnhyZWYpLmdldEFsbCgpO2xldCBzPSIiLG49MTtmb3IobGV0IEE9MCxyPXRoaXMubnVtUGFnZXM7QTxyO0ErKyl7Y29uc3Qgcj1hLmdldChBKTtpZih2b2lkIDAhPT1yKXtpZighKHIgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIlBhZ2VMYWJlbCBpcyBub3QgYSBkaWN0aW9uYXJ5LiIpO2lmKHIuaGFzKCJUeXBlIikmJiFmQShyLmdldCgiVHlwZSIpLCJQYWdlTGFiZWwiKSl0aHJvdyBuZXcgVygiSW52YWxpZCB0eXBlIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LiIpO2lmKHIuaGFzKCJTIikpe2NvbnN0IEE9ci5nZXQoIlMiKTtpZighKEEgaW5zdGFuY2VvZiBDQSkpdGhyb3cgbmV3IFcoIkludmFsaWQgc3R5bGUgaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7dD1BLm5hbWV9ZWxzZSB0PW51bGw7aWYoci5oYXMoIlAiKSl7Y29uc3QgQT1yLmdldCgiUCIpO2lmKCJzdHJpbmciIT10eXBlb2YgQSl0aHJvdyBuZXcgVygiSW52YWxpZCBwcmVmaXggaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7aT1lQShBKX1lbHNlIGk9IiI7aWYoci5oYXMoIlN0Iikpe2NvbnN0IEE9ci5nZXQoIlN0Iik7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKEEpJiZBPj0xKSl0aHJvdyBuZXcgVygiSW52YWxpZCBzdGFydCBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS4iKTtuPUF9ZWxzZSBuPTF9c3dpdGNoKHQpe2Nhc2UiRCI6cz1uO2JyZWFrO2Nhc2UiUiI6Y2FzZSJyIjpzPVVBKG4sInIiPT09dCk7YnJlYWs7Y2FzZSJBIjpjYXNlImEiOmNvbnN0IEE9MjYsZT0iYSI9PT10Pzk3OjY1LGk9bi0xO3M9U3RyaW5nLmZyb21DaGFyQ29kZShlK2klQSkucmVwZWF0KE1hdGguZmxvb3IoaS9BKSsxKTticmVhaztkZWZhdWx0OmlmKHQpdGhyb3cgbmV3IFcoYEludmFsaWQgc3R5bGUgIiR7dH0iIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LmApO3M9IiJ9ZVtBXT1pK3MsbisrfXJldHVybiBlfWdldCBwYWdlTGF5b3V0KCl7Y29uc3QgQT10aGlzLl9jYXREaWN0LmdldCgiUGFnZUxheW91dCIpO2xldCBlPSIiO2lmKEEgaW5zdGFuY2VvZiBDQSlzd2l0Y2goQS5uYW1lKXtjYXNlIlNpbmdsZVBhZ2UiOmNhc2UiT25lQ29sdW1uIjpjYXNlIlR3b0NvbHVtbkxlZnQiOmNhc2UiVHdvQ29sdW1uUmlnaHQiOmNhc2UiVHdvUGFnZUxlZnQiOmNhc2UiVHdvUGFnZVJpZ2h0IjplPUEubmFtZX1yZXR1cm4gSCh0aGlzLCJwYWdlTGF5b3V0IixlKX1nZXQgcGFnZU1vZGUoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlTW9kZSIpO2xldCBlPSJVc2VOb25lIjtpZihBIGluc3RhbmNlb2YgQ0Epc3dpdGNoKEEubmFtZSl7Y2FzZSJVc2VOb25lIjpjYXNlIlVzZU91dGxpbmVzIjpjYXNlIlVzZVRodW1icyI6Y2FzZSJGdWxsU2NyZWVuIjpjYXNlIlVzZU9DIjpjYXNlIlVzZUF0dGFjaG1lbnRzIjplPUEubmFtZX1yZXR1cm4gSCh0aGlzLCJwYWdlTW9kZSIsZSl9Z2V0IHZpZXdlclByZWZlcmVuY2VzKCl7Y29uc3QgQT10aGlzLl9jYXREaWN0LmdldCgiVmlld2VyUHJlZmVyZW5jZXMiKTtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIEgodGhpcywidmlld2VyUHJlZmVyZW5jZXMiLG51bGwpO2xldCBlPW51bGw7Zm9yKGNvbnN0IHQgb2YgQS5nZXRLZXlzKCkpe2NvbnN0IGk9QS5nZXQodCk7bGV0IGE7c3dpdGNoKHQpe2Nhc2UiSGlkZVRvb2xiYXIiOmNhc2UiSGlkZU1lbnViYXIiOmNhc2UiSGlkZVdpbmRvd1VJIjpjYXNlIkZpdFdpbmRvdyI6Y2FzZSJDZW50ZXJXaW5kb3ciOmNhc2UiRGlzcGxheURvY1RpdGxlIjpjYXNlIlBpY2tUcmF5QnlQREZTaXplIjoiYm9vbGVhbiI9PXR5cGVvZiBpJiYoYT1pKTticmVhaztjYXNlIk5vbkZ1bGxTY3JlZW5QYWdlTW9kZSI6aWYoaSBpbnN0YW5jZW9mIENBKXN3aXRjaChpLm5hbWUpe2Nhc2UiVXNlTm9uZSI6Y2FzZSJVc2VPdXRsaW5lcyI6Y2FzZSJVc2VUaHVtYnMiOmNhc2UiVXNlT0MiOmE9aS5uYW1lO2JyZWFrO2RlZmF1bHQ6YT0iVXNlTm9uZSJ9YnJlYWs7Y2FzZSJEaXJlY3Rpb24iOmlmKGkgaW5zdGFuY2VvZiBDQSlzd2l0Y2goaS5uYW1lKXtjYXNlIkwyUiI6Y2FzZSJSMkwiOmE9aS5uYW1lO2JyZWFrO2RlZmF1bHQ6YT0iTDJSIn1icmVhaztjYXNlIlZpZXdBcmVhIjpjYXNlIlZpZXdDbGlwIjpjYXNlIlByaW50QXJlYSI6Y2FzZSJQcmludENsaXAiOmlmKGkgaW5zdGFuY2VvZiBDQSlzd2l0Y2goaS5uYW1lKXtjYXNlIk1lZGlhQm94IjpjYXNlIkNyb3BCb3giOmNhc2UiQmxlZWRCb3giOmNhc2UiVHJpbUJveCI6Y2FzZSJBcnRCb3giOmE9aS5uYW1lO2JyZWFrO2RlZmF1bHQ6YT0iQ3JvcEJveCJ9YnJlYWs7Y2FzZSJQcmludFNjYWxpbmciOmlmKGkgaW5zdGFuY2VvZiBDQSlzd2l0Y2goaS5uYW1lKXtjYXNlIk5vbmUiOmNhc2UiQXBwRGVmYXVsdCI6YT1pLm5hbWU7YnJlYWs7ZGVmYXVsdDphPSJBcHBEZWZhdWx0In1icmVhaztjYXNlIkR1cGxleCI6aWYoaSBpbnN0YW5jZW9mIENBKXN3aXRjaChpLm5hbWUpe2Nhc2UiU2ltcGxleCI6Y2FzZSJEdXBsZXhGbGlwU2hvcnRFZGdlIjpjYXNlIkR1cGxleEZsaXBMb25nRWRnZSI6YT1pLm5hbWU7YnJlYWs7ZGVmYXVsdDphPSJOb25lIn1icmVhaztjYXNlIlByaW50UGFnZVJhbmdlIjpBcnJheS5pc0FycmF5KGkpJiZpLmxlbmd0aCUyPT0wJiZpLmV2ZXJ5KCgoQSxlLHQpPT5OdW1iZXIuaXNJbnRlZ2VyKEEpJiZBPjAmJigwPT09ZXx8QT49dFtlLTFdKSYmQTw9dGhpcy5udW1QYWdlcykpJiYoYT1pKTticmVhaztjYXNlIk51bUNvcGllcyI6TnVtYmVyLmlzSW50ZWdlcihpKSYmaT4wJiYoYT1pKTticmVhaztkZWZhdWx0OlUoYElnbm9yaW5nIG5vbi1zdGFuZGFyZCBrZXkgaW4gVmlld2VyUHJlZmVyZW5jZXM6ICR7dH0uYCk7Y29udGludWV9dm9pZCAwIT09YT8oZXx8KGU9T2JqZWN0LmNyZWF0ZShudWxsKSksZVt0XT1hKTpVKGBCYWQgdmFsdWUsIGZvciBrZXkgIiR7dH0iLCBpbiBWaWV3ZXJQcmVmZXJlbmNlczogJHtpfS5gKX1yZXR1cm4gSCh0aGlzLCJ2aWV3ZXJQcmVmZXJlbmNlcyIsZSl9Z2V0IG9wZW5BY3Rpb24oKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJPcGVuQWN0aW9uIiksZT1PYmplY3QuY3JlYXRlKG51bGwpO2lmKEEgaW5zdGFuY2VvZiBRQSl7Y29uc3QgdD1uZXcgUUEodGhpcy54cmVmKTt0LnNldCgiQSIsQSk7Y29uc3QgaT17dXJsOm51bGwsZGVzdDpudWxsLGFjdGlvbjpudWxsfTtoby5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDp0LHJlc3VsdE9iajppfSksQXJyYXkuaXNBcnJheShpLmRlc3QpP2UuZGVzdD1pLmRlc3Q6aS5hY3Rpb24mJihlLmFjdGlvbj1pLmFjdGlvbil9ZWxzZSBBcnJheS5pc0FycmF5KEEpJiYoZS5kZXN0PUEpO3JldHVybiBIKHRoaXMsIm9wZW5BY3Rpb24iLFYoZSk+MD9lOm51bGwpfWdldCBhdHRhY2htZW50cygpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXQoIk5hbWVzIik7bGV0IGU9bnVsbDtpZihBIGluc3RhbmNlb2YgUUEmJkEuaGFzKCJFbWJlZGRlZEZpbGVzIikpe2NvbnN0IHQ9bmV3IERnKEEuZ2V0UmF3KCJFbWJlZGRlZEZpbGVzIiksdGhpcy54cmVmKTtmb3IoY29uc3RbQSxpXW9mIHQuZ2V0QWxsKCkpe2NvbnN0IHQ9bmV3IFNnKGksdGhpcy54cmVmKTtlfHwoZT1PYmplY3QuY3JlYXRlKG51bGwpKSxlW2VBKEEpXT10LnNlcmlhbGl6YWJsZX19cmV0dXJuIEgodGhpcywiYXR0YWNobWVudHMiLGUpfWdldCB4ZmFJbWFnZXMoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO2xldCBlPW51bGw7aWYoQSBpbnN0YW5jZW9mIFFBJiZBLmhhcygiWEZBSW1hZ2VzIikpe2NvbnN0IHQ9bmV3IERnKEEuZ2V0UmF3KCJYRkFJbWFnZXMiKSx0aGlzLnhyZWYpO2Zvcihjb25zdFtBLGldb2YgdC5nZXRBbGwoKSllfHwoZT1uZXcgUUEodGhpcy54cmVmKSksZS5zZXQoZUEoQSksaSl9cmV0dXJuIEgodGhpcywieGZhSW1hZ2VzIixlKX1fY29sbGVjdEphdmFTY3JpcHQoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO2xldCBlPW51bGw7ZnVuY3Rpb24gdChBLHQpe2lmKCEodCBpbnN0YW5jZW9mIFFBKSlyZXR1cm47aWYoIWZBKHQuZ2V0KCJTIiksIkphdmFTY3JpcHQiKSlyZXR1cm47bGV0IGk9dC5nZXQoIkpTIik7aWYoaSBpbnN0YW5jZW9mIHdBKWk9aS5nZXRTdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgaSlyZXR1cm47aT1lQShpKS5yZXBsYWNlQWxsKCJcMCIsIiIpLGkmJihlfHw9bmV3IE1hcCkuc2V0KEEsaSl9aWYoQSBpbnN0YW5jZW9mIFFBJiZBLmhhcygiSmF2YVNjcmlwdCIpKXtjb25zdCBlPW5ldyBEZyhBLmdldFJhdygiSmF2YVNjcmlwdCIpLHRoaXMueHJlZik7Zm9yKGNvbnN0W0EsaV1vZiBlLmdldEFsbCgpKXQoZUEoQSksaSl9Y29uc3QgaT10aGlzLl9jYXREaWN0LmdldCgiT3BlbkFjdGlvbiIpO3JldHVybiBpJiZ0KCJPcGVuQWN0aW9uIixpKSxlfWdldCBqc0FjdGlvbnMoKXtjb25zdCBBPXRoaXMuX2NvbGxlY3RKYXZhU2NyaXB0KCk7bGV0IGU9akEodGhpcy54cmVmLHRoaXMuX2NhdERpY3QsUSk7aWYoQSl7ZXx8PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W3QsaV1vZiBBKXQgaW4gZT9lW3RdLnB1c2goaSk6ZVt0XT1baV19cmV0dXJuIEgodGhpcywianNBY3Rpb25zIixlKX1hc3luYyBmb250RmFsbGJhY2soQSxlKXtjb25zdCB0PWF3YWl0IFByb21pc2UuYWxsKHRoaXMuZm9udENhY2hlKTtmb3IoY29uc3QgaSBvZiB0KWlmKGkubG9hZGVkTmFtZT09PUEpcmV0dXJuIHZvaWQgaS5mYWxsYmFjayhlKX1hc3luYyBjbGVhbnVwKEE9ITEpe2tnKCksdGhpcy5nbG9iYWxJbWFnZUNhY2hlLmNsZWFyKEEpLHRoaXMucGFnZUtpZHNDb3VudENhY2hlLmNsZWFyKCksdGhpcy5wYWdlSW5kZXhDYWNoZS5jbGVhcigpLHRoaXMucGFnZURpY3RDYWNoZS5jbGVhcigpLHRoaXMubm9uQmxlbmRNb2Rlc1NldC5jbGVhcigpO2NvbnN0IGU9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5mb250Q2FjaGUpO2Zvcihjb25zdHtkaWN0OkF9b2YgZSlkZWxldGUgQS5jYWNoZUtleTt0aGlzLmZvbnRDYWNoZS5jbGVhcigpLHRoaXMuYnVpbHRJbkNNYXBDYWNoZS5jbGVhcigpLHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLmNsZWFyKCksdGhpcy5zeXN0ZW1Gb250Q2FjaGUuY2xlYXIoKX1hc3luYyBnZXRQYWdlRGljdChBKXtjb25zdCBlPVt0aGlzLnRvcGxldmVsUGFnZXNEaWN0XSx0PW5ldyB1QSxpPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJQYWdlcyIpO2kgaW5zdGFuY2VvZiBFQSYmdC5wdXQoaSk7Y29uc3QgYT10aGlzLnhyZWYscz10aGlzLnBhZ2VLaWRzQ291bnRDYWNoZSxuPXRoaXMucGFnZUluZGV4Q2FjaGUscj10aGlzLnBhZ2VEaWN0Q2FjaGU7bGV0IGc9MDtmb3IoO2UubGVuZ3RoOyl7Y29uc3QgaT1lLnBvcCgpO2lmKGkgaW5zdGFuY2VvZiBFQSl7Y29uc3Qgbz1zLmdldChpKTtpZihvPj0wJiZnK288PUEpe2crPW87Y29udGludWV9aWYodC5oYXMoaSkpdGhyb3cgbmV3IFcoIlBhZ2VzIHRyZWUgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlLiIpO3QucHV0KGkpO2NvbnN0IEk9YXdhaXQoci5nZXQoaSl8fGEuZmV0Y2hBc3luYyhpKSk7aWYoSSBpbnN0YW5jZW9mIFFBKXtsZXQgZT1JLmdldFJhdygiVHlwZSIpO2lmKGUgaW5zdGFuY2VvZiBFQSYmKGU9YXdhaXQgYS5mZXRjaEFzeW5jKGUpKSxmQShlLCJQYWdlIil8fCFJLmhhcygiS2lkcyIpKXtpZihzLmhhcyhpKXx8cy5wdXQoaSwxKSxuLmhhcyhpKXx8bi5wdXQoaSxnKSxnPT09QSlyZXR1cm5bSSxpXTtnKys7Y29udGludWV9fWUucHVzaChJKTtjb250aW51ZX1pZighKGkgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIlBhZ2UgZGljdGlvbmFyeSBraWQgcmVmZXJlbmNlIHBvaW50cyB0byB3cm9uZyB0eXBlIG9mIG9iamVjdC4iKTtjb25zdHtvYmpJZDpvfT1pO2xldCBJPWkuZ2V0UmF3KCJDb3VudCIpO2lmKEkgaW5zdGFuY2VvZiBFQSYmKEk9YXdhaXQgYS5mZXRjaEFzeW5jKEkpKSxOdW1iZXIuaXNJbnRlZ2VyKEkpJiZJPj0wJiYobyYmIXMuaGFzKG8pJiZzLnB1dChvLEkpLGcrSTw9QSkpe2crPUk7Y29udGludWV9bGV0IGM9aS5nZXRSYXcoIktpZHMiKTtpZihjIGluc3RhbmNlb2YgRUEmJihjPWF3YWl0IGEuZmV0Y2hBc3luYyhjKSksIUFycmF5LmlzQXJyYXkoYykpe2xldCBlPWkuZ2V0UmF3KCJUeXBlIik7aWYoZSBpbnN0YW5jZW9mIEVBJiYoZT1hd2FpdCBhLmZldGNoQXN5bmMoZSkpLGZBKGUsIlBhZ2UiKXx8IWkuaGFzKCJLaWRzIikpe2lmKGc9PT1BKXJldHVybltpLG51bGxdO2crKztjb250aW51ZX10aHJvdyBuZXcgVygiUGFnZSBkaWN0aW9uYXJ5IGtpZHMgb2JqZWN0IGlzIG5vdCBhbiBhcnJheS4iKX1mb3IobGV0IEE9Yy5sZW5ndGgtMTtBPj0wO0EtLSl7Y29uc3QgdD1jW0FdO2UucHVzaCh0KSxpPT09dGhpcy50b3BsZXZlbFBhZ2VzRGljdCYmdCBpbnN0YW5jZW9mIEVBJiYhci5oYXModCkmJnIucHV0KHQsYS5mZXRjaEFzeW5jKHQpKX19dGhyb3cgbmV3IEVycm9yKGBQYWdlIGluZGV4ICR7QX0gbm90IGZvdW5kLmApfWFzeW5jIGdldEFsbFBhZ2VEaWN0cyhBPSExKXtjb25zdHtpZ25vcmVFcnJvcnM6ZX09dGhpcy5wZGZNYW5hZ2VyLmV2YWx1YXRvck9wdGlvbnMsdD1be2N1cnJlbnROb2RlOnRoaXMudG9wbGV2ZWxQYWdlc0RpY3QscG9zSW5LaWRzOjB9XSxpPW5ldyB1QSxhPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJQYWdlcyIpO2EgaW5zdGFuY2VvZiBFQSYmaS5wdXQoYSk7Y29uc3Qgcz1uZXcgTWFwLG49dGhpcy54cmVmLHI9dGhpcy5wYWdlSW5kZXhDYWNoZTtsZXQgZz0wO2Z1bmN0aW9uIG8odCl7aWYodCBpbnN0YW5jZW9mIFNBJiYhQSl0aHJvdyB0O0EmJmUmJjA9PT1nJiYoVShgZ2V0QWxsUGFnZURpY3RzIC0gU2tpcHBpbmcgaW52YWxpZCBmaXJzdCBwYWdlOiAiJHt0fSIuYCksdD1RQS5lbXB0eSkscy5zZXQoZysrLFt0LG51bGxdKX1mb3IoO3QubGVuZ3RoPjA7KXtjb25zdCBBPXQuYXQoLTEpLHtjdXJyZW50Tm9kZTplLHBvc0luS2lkczphfT1BO2xldCBoPWUuZ2V0UmF3KCJLaWRzIik7aWYoaCBpbnN0YW5jZW9mIEVBKXRyeXtoPWF3YWl0IG4uZmV0Y2hBc3luYyhoKX1jYXRjaChBKXtvKEEpO2JyZWFrfWlmKCFBcnJheS5pc0FycmF5KGgpKXtvKG5ldyBXKCJQYWdlIGRpY3Rpb25hcnkga2lkcyBvYmplY3QgaXMgbm90IGFuIGFycmF5LiIpKTticmVha31pZihhPj1oLmxlbmd0aCl7dC5wb3AoKTtjb250aW51ZX1jb25zdCBDPWhbYV07bGV0IEI7aWYoQyBpbnN0YW5jZW9mIEVBKXtpZihpLmhhcyhDKSl7byhuZXcgVygiUGFnZXMgdHJlZSBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2UuIikpO2JyZWFrfWkucHV0KEMpO3RyeXtCPWF3YWl0IG4uZmV0Y2hBc3luYyhDKX1jYXRjaChBKXtvKEEpO2JyZWFrfX1lbHNlIEI9QztpZighKEIgaW5zdGFuY2VvZiBRQSkpe28obmV3IFcoIlBhZ2UgZGljdGlvbmFyeSBraWQgcmVmZXJlbmNlIHBvaW50cyB0byB3cm9uZyB0eXBlIG9mIG9iamVjdC4iKSk7YnJlYWt9bGV0IGw9Qi5nZXRSYXcoIlR5cGUiKTtpZihsIGluc3RhbmNlb2YgRUEpdHJ5e2w9YXdhaXQgbi5mZXRjaEFzeW5jKGwpfWNhdGNoKEEpe28oQSk7YnJlYWt9ZkEobCwiUGFnZSIpfHwhQi5oYXMoIktpZHMiKT8oST1CLChjPUMgaW5zdGFuY2VvZiBFQT9DOm51bGwpJiYhci5oYXMoYykmJnIucHV0KGMsZykscy5zZXQoZysrLFtJLGNdKSk6dC5wdXNoKHtjdXJyZW50Tm9kZTpCLHBvc0luS2lkczowfSksQS5wb3NJbktpZHMrK312YXIgSSxjO3JldHVybiBzfWdldFBhZ2VJbmRleChBKXtjb25zdCBlPXRoaXMucGFnZUluZGV4Q2FjaGUuZ2V0KEEpO2lmKHZvaWQgMCE9PWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShlKTtjb25zdCB0PXRoaXMueHJlZjtsZXQgaT0wO2NvbnN0IGE9ZT0+ZnVuY3Rpb24oZSl7bGV0IGksYT0wO3JldHVybiB0LmZldGNoQXN5bmMoZSkudGhlbigoZnVuY3Rpb24odCl7aWYoeUEoZSxBKSYmIW1BKHQsIlBhZ2UiKSYmISh0IGluc3RhbmNlb2YgUUEmJiF0LmhhcygiVHlwZSIpJiZ0LmhhcygiQ29udGVudHMiKSkpdGhyb3cgbmV3IFcoIlRoZSByZWZlcmVuY2UgZG9lcyBub3QgcG9pbnQgdG8gYSAvUGFnZSBkaWN0aW9uYXJ5LiIpO2lmKCF0KXJldHVybiBudWxsO2lmKCEodCBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiTm9kZSBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTtyZXR1cm4gaT10LmdldFJhdygiUGFyZW50IiksdC5nZXRBc3luYygiUGFyZW50Iil9KSkudGhlbigoZnVuY3Rpb24oQSl7aWYoIUEpcmV0dXJuIG51bGw7aWYoIShBIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJQYXJlbnQgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7cmV0dXJuIEEuZ2V0QXN5bmMoIktpZHMiKX0pKS50aGVuKChmdW5jdGlvbihBKXtpZighQSlyZXR1cm4gbnVsbDtjb25zdCBzPVtdO2xldCBuPSExO2Zvcihjb25zdCBpIG9mIEEpe2lmKCEoaSBpbnN0YW5jZW9mIEVBKSl0aHJvdyBuZXcgVygiS2lkIG11c3QgYmUgYSByZWZlcmVuY2UuIik7aWYoeUEoaSxlKSl7bj0hMDticmVha31zLnB1c2godC5mZXRjaEFzeW5jKGkpLnRoZW4oKGZ1bmN0aW9uKEEpe2lmKCEoQSBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiS2lkIG5vZGUgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7QS5oYXMoIkNvdW50Iik/YSs9QS5nZXQoIkNvdW50Iik6YSsrfSkpKX1pZighbil0aHJvdyBuZXcgVygiS2lkIHJlZmVyZW5jZSBub3QgZm91bmQgaW4gcGFyZW50J3Mga2lkcy4iKTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoZnVuY3Rpb24oKXtyZXR1cm5bYSxpXX0pKX0pKX0oZSkudGhlbigoZT0+e2lmKCFlKXJldHVybiB0aGlzLnBhZ2VJbmRleENhY2hlLnB1dChBLGkpLGk7Y29uc3RbdCxzXT1lO3JldHVybiBpKz10LGEocyl9KSk7cmV0dXJuIGEoQSl9Z2V0IGJhc2VVcmwoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJVUkkiKTtpZihBIGluc3RhbmNlb2YgUUEpe2NvbnN0IGU9QS5nZXQoIkJhc2UiKTtpZigic3RyaW5nIj09dHlwZW9mIGUpe2NvbnN0IEE9SihlLG51bGwse3RyeUNvbnZlcnRFbmNvZGluZzohMH0pO2lmKEEpcmV0dXJuIEgodGhpcywiYmFzZVVybCIsQS5ocmVmKX19cmV0dXJuIEgodGhpcywiYmFzZVVybCIsdGhpcy5wZGZNYW5hZ2VyLmRvY0Jhc2VVcmwpfXN0YXRpYyBwYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDpBLHJlc3VsdE9iajplLGRvY0Jhc2VVcmw6dD1udWxsLGRvY0F0dGFjaG1lbnRzOmk9bnVsbH0pe2lmKCEoQSBpbnN0YW5jZW9mIFFBKSlyZXR1cm4gdm9pZCBVKCJwYXJzZURlc3REaWN0aW9uYXJ5OiBgZGVzdERpY3RgIG11c3QgYmUgYSBkaWN0aW9uYXJ5LiIpO2xldCBhLHMsbj1BLmdldCgiQSIpO2lmKG4gaW5zdGFuY2VvZiBRQXx8KEEuaGFzKCJEZXN0Iik/bj1BLmdldCgiRGVzdCIpOihuPUEuZ2V0KCJBQSIpLG4gaW5zdGFuY2VvZiBRQSYmKG4uaGFzKCJEIik/bj1uLmdldCgiRCIpOm4uaGFzKCJVIikmJihuPW4uZ2V0KCJVIikpKSkpLG4gaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1uLmdldCgiUyIpO2lmKCEoQSBpbnN0YW5jZW9mIENBKSlyZXR1cm4gdm9pZCBVKCJwYXJzZURlc3REaWN0aW9uYXJ5OiBJbnZhbGlkIHR5cGUgaW4gQWN0aW9uIGRpY3Rpb25hcnkuIik7Y29uc3QgdD1BLm5hbWU7c3dpdGNoKHQpe2Nhc2UiUmVzZXRGb3JtIjpjb25zdCBBPW4uZ2V0KCJGbGFncyIpLHI9MD09KDEmKCJudW1iZXIiPT10eXBlb2YgQT9BOjApKSxnPVtdLG89W107Zm9yKGNvbnN0IEEgb2Ygbi5nZXQoIkZpZWxkcyIpfHxbXSlBIGluc3RhbmNlb2YgRUE/by5wdXNoKEEudG9TdHJpbmcoKSk6InN0cmluZyI9PXR5cGVvZiBBJiZnLnB1c2goZUEoQSkpO2UucmVzZXRGb3JtPXtmaWVsZHM6ZyxyZWZzOm8saW5jbHVkZTpyfTticmVhaztjYXNlIlVSSSI6YT1uLmdldCgiVVJJIiksYSBpbnN0YW5jZW9mIENBJiYoYT0iLyIrYS5uYW1lKTticmVhaztjYXNlIkdvVG8iOnM9bi5nZXQoIkQiKTticmVhaztjYXNlIkxhdW5jaCI6Y2FzZSJHb1RvUiI6Y29uc3QgST1uLmdldCgiRiIpO2lmKEkgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1uZXcgU2coSSxudWxsLCEwKSx7cmF3RmlsZW5hbWU6ZX09QS5zZXJpYWxpemFibGU7YT1lfWVsc2Uic3RyaW5nIj09dHlwZW9mIEkmJihhPUkpO2NvbnN0IGM9Y28obik7YyYmInN0cmluZyI9PXR5cGVvZiBhJiYoYT1hLnNwbGl0KCIjIiwxKVswXSsiIyIrYyk7Y29uc3QgaD1uLmdldCgiTmV3V2luZG93Iik7ImJvb2xlYW4iPT10eXBlb2YgaCYmKGUubmV3V2luZG93PWgpO2JyZWFrO2Nhc2UiR29Ub0UiOmNvbnN0IEM9bi5nZXQoIlQiKTtsZXQgQjtpZihpJiZDIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9Qy5nZXQoIlIiKSxlPUMuZ2V0KCJOIik7ZkEoQSwiQyIpJiYic3RyaW5nIj09dHlwZW9mIGUmJihCPWlbZUEoZSldKX1pZihCKXtlLmF0dGFjaG1lbnQ9Qjtjb25zdCBBPWNvKG4pO0EmJihlLmF0dGFjaG1lbnREZXN0PUEpfWVsc2UgVSgncGFyc2VEZXN0RGljdGlvbmFyeSAtIHVuaW1wbGVtZW50ZWQgIkdvVG9FIiBhY3Rpb24uJyk7YnJlYWs7Y2FzZSJOYW1lZCI6Y29uc3QgbD1uLmdldCgiTiIpO2wgaW5zdGFuY2VvZiBDQSYmKGUuYWN0aW9uPWwubmFtZSk7YnJlYWs7Y2FzZSJTZXRPQ0dTdGF0ZSI6Y29uc3QgUT1uLmdldCgiU3RhdGUiKSxFPW4uZ2V0KCJQcmVzZXJ2ZVJCIik7aWYoIUFycmF5LmlzQXJyYXkoUSl8fDA9PT1RLmxlbmd0aClicmVhaztjb25zdCB1PVtdO2Zvcihjb25zdCBBIG9mIFEpaWYoQSBpbnN0YW5jZW9mIENBKXN3aXRjaChBLm5hbWUpe2Nhc2UiT04iOmNhc2UiT0ZGIjpjYXNlIlRvZ2dsZSI6dS5wdXNoKEEubmFtZSl9ZWxzZSBBIGluc3RhbmNlb2YgRUEmJnUucHVzaChBLnRvU3RyaW5nKCkpO2lmKHUubGVuZ3RoIT09US5sZW5ndGgpYnJlYWs7ZS5zZXRPQ0dTdGF0ZT17c3RhdGU6dSxwcmVzZXJ2ZVJCOiJib29sZWFuIiE9dHlwZW9mIEV8fEV9O2JyZWFrO2Nhc2UiSmF2YVNjcmlwdCI6Y29uc3QgZD1uLmdldCgiSlMiKTtsZXQgZjtkIGluc3RhbmNlb2Ygd0E/Zj1kLmdldFN0cmluZygpOiJzdHJpbmciPT10eXBlb2YgZCYmKGY9ZCk7Y29uc3QgcD1mJiZBZShlQShmKSk7aWYocCl7YT1wLnVybCxlLm5ld1dpbmRvdz1wLm5ld1dpbmRvdzticmVha31kZWZhdWx0OmlmKCJKYXZhU2NyaXB0Ij09PXR8fCJTdWJtaXRGb3JtIj09PXQpYnJlYWs7VShgcGFyc2VEZXN0RGljdGlvbmFyeSAtIHVuc3VwcG9ydGVkIGFjdGlvbjogIiR7dH0iLmApfX1lbHNlIEEuaGFzKCJEZXN0IikmJihzPUEuZ2V0KCJEZXN0IikpO2lmKCJzdHJpbmciPT10eXBlb2YgYSl7Y29uc3QgQT1KKGEsdCx7YWRkRGVmYXVsdFByb3RvY29sOiEwLHRyeUNvbnZlcnRFbmNvZGluZzohMH0pO0EmJihlLnVybD1BLmhyZWYpLGUudW5zYWZlVXJsPWF9cyYmKHMgaW5zdGFuY2VvZiBDQSYmKHM9cy5uYW1lKSwic3RyaW5nIj09dHlwZW9mIHM/ZS5kZXN0PWVBKHMpOm9vKHMpJiYoZS5kZXN0PXMpKX19ZnVuY3Rpb24gQ28oQSxlKXtpZihBIGluc3RhbmNlb2YgUUEpQT1BLmdldFJhd1ZhbHVlcygpO2Vsc2UgaWYoQSBpbnN0YW5jZW9mIHdBKUE9QS5kaWN0LmdldFJhd1ZhbHVlcygpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoQSkpcmV0dXJuO2Zvcihjb25zdCBpIG9mIEEpKCh0PWkpaW5zdGFuY2VvZiBFQXx8dCBpbnN0YW5jZW9mIFFBfHx0IGluc3RhbmNlb2Ygd0F8fEFycmF5LmlzQXJyYXkodCkpJiZlLnB1c2goaSk7dmFyIHR9Y2xhc3MgQm97Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGljdD1BLHRoaXMua2V5cz1lLHRoaXMueHJlZj10LHRoaXMucmVmU2V0PW51bGx9YXN5bmMgbG9hZCgpe2lmKHRoaXMueHJlZi5zdHJlYW0uaXNEYXRhTG9hZGVkKXJldHVybjtjb25zdHtrZXlzOkEsZGljdDplfT10aGlzO3RoaXMucmVmU2V0PW5ldyB1QTtjb25zdCB0PVtdO2Zvcihjb25zdCBpIG9mIEEpe2NvbnN0IEE9ZS5nZXRSYXcoaSk7dm9pZCAwIT09QSYmdC5wdXNoKEEpfXJldHVybiB0aGlzLl93YWxrKHQpfWFzeW5jIF93YWxrKEEpe2NvbnN0IGU9W10sdD1bXTtmb3IoO0EubGVuZ3RoOyl7bGV0IGk9QS5wb3AoKTtpZihpIGluc3RhbmNlb2YgRUEpe2lmKHRoaXMucmVmU2V0LmhhcyhpKSljb250aW51ZTt0cnl7dGhpcy5yZWZTZXQucHV0KGkpLGk9dGhpcy54cmVmLmZldGNoKGkpfWNhdGNoKEEpe2lmKCEoQSBpbnN0YW5jZW9mIGtBKSl7VShgT2JqZWN0TG9hZGVyLl93YWxrIC0gcmVxdWVzdGluZyBhbGwgZGF0YTogIiR7QX0iLmApLHRoaXMucmVmU2V0PW51bGw7Y29uc3R7bWFuYWdlcjplfT10aGlzLnhyZWYuc3RyZWFtO3JldHVybiBlLnJlcXVlc3RBbGxDaHVua3MoKX1lLnB1c2goaSksdC5wdXNoKHtiZWdpbjpBLmJlZ2luLGVuZDpBLmVuZH0pfX1pZihpIGluc3RhbmNlb2Ygd0Epe2NvbnN0IEE9aS5nZXRCYXNlU3RyZWFtcygpO2lmKEEpe2xldCBhPSExO2Zvcihjb25zdCBlIG9mIEEpZS5pc0RhdGFMb2FkZWR8fChhPSEwLHQucHVzaCh7YmVnaW46ZS5zdGFydCxlbmQ6ZS5lbmR9KSk7YSYmZS5wdXNoKGkpfX1DbyhpLEEpfWlmKHQubGVuZ3RoKXthd2FpdCB0aGlzLnhyZWYuc3RyZWFtLm1hbmFnZXIucmVxdWVzdFJhbmdlcyh0KTtmb3IoY29uc3QgQSBvZiBlKUEgaW5zdGFuY2VvZiBFQSYmdGhpcy5yZWZTZXQucmVtb3ZlKEEpO3JldHVybiB0aGlzLl93YWxrKGUpfXRoaXMucmVmU2V0PW51bGx9fWNvbnN0IGxvPVN5bWJvbCgpLFFvPVN5bWJvbCgpLEVvPVN5bWJvbCgpLHVvPVN5bWJvbCgpLGZvPVN5bWJvbCgpLHBvPVN5bWJvbCgpLG1vPVN5bWJvbCgpLHlvPVN5bWJvbCgpLHdvPVN5bWJvbCgpLERvPVN5bWJvbCgiY29udGVudCIpLGJvPVN5bWJvbCgiZGF0YSIpLGtvPVN5bWJvbCgpLEZvPVN5bWJvbCgiZXh0cmEiKSxTbz1TeW1ib2woKSxSbz1TeW1ib2woKSxHbz1TeW1ib2woKSxObz1TeW1ib2woKSx4bz1TeW1ib2woKSxVbz1TeW1ib2woKSxNbz1TeW1ib2woKSxMbz1TeW1ib2woKSxKbz1TeW1ib2woKSxIbz1TeW1ib2woKSxZbz1TeW1ib2woKSx2bz1TeW1ib2woKSxLbz1TeW1ib2woKSxxbz1TeW1ib2woKSxUbz1TeW1ib2woKSxQbz1TeW1ib2woKSxXbz1TeW1ib2woKSxPbz1TeW1ib2woKSxabz1TeW1ib2woKSxqbz1TeW1ib2woKSxYbz1TeW1ib2woKSxWbz1TeW1ib2woKSxfbz1TeW1ib2woKSx6bz1TeW1ib2woKSwkbz1TeW1ib2woKSxBST1TeW1ib2woKSxlST1TeW1ib2woKSx0ST1TeW1ib2woKSxpST1TeW1ib2woKSxhST1TeW1ib2woKSxzST1TeW1ib2woKSxuST1TeW1ib2woKSxyST1TeW1ib2woIm5hbWVzcGFjZUlkIiksZ0k9U3ltYm9sKCJub2RlTmFtZSIpLG9JPVN5bWJvbCgpLElJPVN5bWJvbCgpLGNJPVN5bWJvbCgpLGhJPVN5bWJvbCgpLENJPVN5bWJvbCgpLEJJPVN5bWJvbCgpLGxJPVN5bWJvbCgpLFFJPVN5bWJvbCgpLEVJPVN5bWJvbCgicm9vdCIpLHVJPVN5bWJvbCgpLGRJPVN5bWJvbCgpLGZJPVN5bWJvbCgpLHBJPVN5bWJvbCgpLG1JPVN5bWJvbCgpLHlJPVN5bWJvbCgpLHdJPVN5bWJvbCgpLERJPVN5bWJvbCgpLGJJPVN5bWJvbCgpLGtJPVN5bWJvbCgpLEZJPVN5bWJvbCgpLFNJPVN5bWJvbCgidWlkIiksUkk9U3ltYm9sKCksR0k9e2NvbmZpZzp7aWQ6MCxjaGVjazpBPT5BLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLyIpfSxjb25uZWN0aW9uU2V0OntpZDoxLGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtY29ubmVjdGlvbi1zZXQvIil9LGRhdGFzZXRzOntpZDoyLGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZGF0YS8iKX0sZm9ybTp7aWQ6MyxjaGVjazpBPT5BLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWZvcm0vIil9LGxvY2FsZVNldDp7aWQ6NCxjaGVjazpBPT5BLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvIil9LHBkZjp7aWQ6NSxjaGVjazpBPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvcGRmLyI9PT1BfSxzaWduYXR1cmU6e2lkOjYsY2hlY2s6QT0+Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPT09QX0sc291cmNlU2V0OntpZDo3LGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtc291cmNlLXNldC8iKX0sc3R5bGVzaGVldDp7aWQ6OCxjaGVjazpBPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj09PUF9LHRlbXBsYXRlOntpZDo5LGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvIil9LHhkYzp7aWQ6MTAsY2hlY2s6QT0+QS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hkYy8iKX0seGRwOntpZDoxMSxjaGVjazpBPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj09PUF9LHhmZGY6e2lkOjEyLGNoZWNrOkE9PiJodHRwOi8vbnMuYWRvYmUuY29tL3hmZGYvIj09PUF9LHhodG1sOntpZDoxMyxjaGVjazpBPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1BfSx4bXBtZXRhOntpZDoxNCxjaGVjazpBPT4iaHR0cDovL25zLmFkb2JlLmNvbS94bXBtZXRhLyI9PT1BfX0sTkk9e3B0OkE9PkEsY206QT0+QS8yLjU0KjcyLG1tOkE9PkEvMjUuNCo3MixpbjpBPT43MipBLHB4OkE9PkF9LHhJPS8oWystXT9cZCtcLj9cZCopKC4qKS87ZnVuY3Rpb24gVUkoQSl7cmV0dXJuIEEuc3RhcnRzV2l0aCgiJyIpfHxBLnN0YXJ0c1dpdGgoJyInKT9BLnNsaWNlKDEsLTEpOkF9ZnVuY3Rpb24gTUkoe2RhdGE6QSxkZWZhdWx0VmFsdWU6ZSx2YWxpZGF0ZTp0fSl7aWYoIUEpcmV0dXJuIGU7QT1BLnRyaW0oKTtjb25zdCBpPXBhcnNlSW50KEEsMTApO3JldHVybiFpc05hTihpKSYmdChpKT9pOmV9ZnVuY3Rpb24gTEkoe2RhdGE6QSxkZWZhdWx0VmFsdWU6ZSx2YWxpZGF0ZTp0fSl7aWYoIUEpcmV0dXJuIGU7QT1BLnRyaW0oKTtjb25zdCBpPXBhcnNlRmxvYXQoQSk7cmV0dXJuIWlzTmFOKGkpJiZ0KGkpP2k6ZX1mdW5jdGlvbiBKSSh7ZGF0YTpBLGRlZmF1bHRWYWx1ZTplLHZhbGlkYXRlOnR9KXtyZXR1cm4gQSYmdChBPUEudHJpbSgpKT9BOmV9ZnVuY3Rpb24gSEkoQSxlKXtyZXR1cm4gSkkoe2RhdGE6QSxkZWZhdWx0VmFsdWU6ZVswXSx2YWxpZGF0ZTpBPT5lLmluY2x1ZGVzKEEpfSl9ZnVuY3Rpb24gWUkoQSxlPSIwIil7aWYoZXx8PSIwIiwhQSlyZXR1cm4gWUkoZSk7Y29uc3QgdD1BLnRyaW0oKS5tYXRjaCh4SSk7aWYoIXQpcmV0dXJuIFlJKGUpO2NvbnN0WyxpLGFdPXQscz1wYXJzZUZsb2F0KGkpO2lmKGlzTmFOKHMpKXJldHVybiBZSShlKTtpZigwPT09cylyZXR1cm4gMDtjb25zdCBuPU5JW2FdO3JldHVybiBuP24ocyk6c31mdW5jdGlvbiB2SShBKXtpZighQSlyZXR1cm57bnVtOjEsZGVuOjF9O2NvbnN0IGU9QS50cmltKCkuc3BsaXQoL1xzKjpccyovKS5tYXAoKEE9PnBhcnNlRmxvYXQoQSkpKS5maWx0ZXIoKEE9PiFpc05hTihBKSkpO2lmKDE9PT1lLmxlbmd0aCYmZS5wdXNoKDEpLDA9PT1lLmxlbmd0aClyZXR1cm57bnVtOjEsZGVuOjF9O2NvbnN0W3QsaV09ZTtyZXR1cm57bnVtOnQsZGVuOml9fWZ1bmN0aW9uIEtJKEEpe3JldHVybiBBP0EudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKEE9Pih7ZXhjbHVkZWQ6Ii0iPT09QVswXSx2aWV3bmFtZTpBLnN1YnN0cmluZygxKX0pKSk6W119Y2xhc3MgcUl7c3RhdGljIGdldCBGQUlMVVJFKCl7cmV0dXJuIEgodGhpcywiRkFJTFVSRSIsbmV3IHFJKCExLG51bGwsbnVsbCxudWxsKSl9c3RhdGljIGdldCBFTVBUWSgpe3JldHVybiBIKHRoaXMsIkVNUFRZIixuZXcgcUkoITAsbnVsbCxudWxsLG51bGwpKX1jb25zdHJ1Y3RvcihBLGUsdCxpKXt0aGlzLnN1Y2Nlc3M9QSx0aGlzLmh0bWw9ZSx0aGlzLmJib3g9dCx0aGlzLmJyZWFrTm9kZT1pfWlzQnJlYWsoKXtyZXR1cm4hIXRoaXMuYnJlYWtOb2RlfXN0YXRpYyBicmVha05vZGUoQSl7cmV0dXJuIG5ldyBxSSghMSxudWxsLG51bGwsQSl9c3RhdGljIHN1Y2Nlc3MoQSxlPW51bGwpe3JldHVybiBuZXcgcUkoITAsQSxlLG51bGwpfX1jbGFzcyBUSXtjb25zdHJ1Y3RvcihBKXt0aGlzLmZvbnRzPW5ldyBNYXAsdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMud2FybmVkPW5ldyBTZXQsdGhpcy5kZWZhdWx0Rm9udD1udWxsLHRoaXMuYWRkKEEpfWFkZChBLGU9bnVsbCl7Zm9yKGNvbnN0IGUgb2YgQSl0aGlzLmFkZFBkZkZvbnQoZSk7Zm9yKGNvbnN0IEEgb2YgdGhpcy5mb250cy52YWx1ZXMoKSlBLnJlZ3VsYXJ8fChBLnJlZ3VsYXI9QS5pdGFsaWN8fEEuYm9sZHx8QS5ib2xkaXRhbGljKTtpZighZXx8MD09PWUuc2l6ZSlyZXR1cm47Y29uc3QgdD10aGlzLmZvbnRzLmdldCgiUGRmSlMtRmFsbGJhY2stUGRmSlMtWEZBIik7Zm9yKGNvbnN0IEEgb2YgZSl0aGlzLmZvbnRzLnNldChBLHQpfWFkZFBkZkZvbnQoQSl7Y29uc3QgZT1BLmNzc0ZvbnRJbmZvLHQ9ZS5mb250RmFtaWx5O2xldCBpPXRoaXMuZm9udHMuZ2V0KHQpO2l8fChpPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5mb250cy5zZXQodCxpKSx0aGlzLmRlZmF1bHRGb250fHwodGhpcy5kZWZhdWx0Rm9udD1pKSk7bGV0IGE9IiI7Y29uc3Qgcz1wYXJzZUZsb2F0KGUuZm9udFdlaWdodCk7MCE9PXBhcnNlRmxvYXQoZS5pdGFsaWNBbmdsZSk/YT1zPj03MDA/ImJvbGRpdGFsaWMiOiJpdGFsaWMiOnM+PTcwMCYmKGE9ImJvbGQiKSxhfHwoKEEubmFtZS5pbmNsdWRlcygiQm9sZCIpfHxBLnBzTmFtZT8uaW5jbHVkZXMoIkJvbGQiKSkmJihhPSJib2xkIiksKEEubmFtZS5pbmNsdWRlcygiSXRhbGljIil8fEEubmFtZS5lbmRzV2l0aCgiSXQiKXx8QS5wc05hbWU/LmluY2x1ZGVzKCJJdGFsaWMiKXx8QS5wc05hbWU/LmVuZHNXaXRoKCJJdCIpKSYmKGErPSJpdGFsaWMiKSksYXx8KGE9InJlZ3VsYXIiKSxpW2FdPUF9Z2V0RGVmYXVsdCgpe3JldHVybiB0aGlzLmRlZmF1bHRGb250fWZpbmQoQSxlPSEwKXtsZXQgdD10aGlzLmZvbnRzLmdldChBKXx8dGhpcy5jYWNoZS5nZXQoQSk7aWYodClyZXR1cm4gdDtjb25zdCBpPS8sfC18X3wgfGJvbGRpdGFsaWN8Ym9sZHxpdGFsaWN8cmVndWxhcnxpdC9naTtsZXQgYT1BLnJlcGxhY2VBbGwoaSwiIik7aWYodD10aGlzLmZvbnRzLmdldChhKSx0KXJldHVybiB0aGlzLmNhY2hlLnNldChBLHQpLHQ7YT1hLnRvTG93ZXJDYXNlKCk7Y29uc3Qgcz1bXTtmb3IoY29uc3RbQSxlXW9mIHRoaXMuZm9udHMuZW50cmllcygpKUEucmVwbGFjZUFsbChpLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoYSkmJnMucHVzaChlKTtpZigwPT09cy5sZW5ndGgpZm9yKGNvbnN0WyxBXW9mIHRoaXMuZm9udHMuZW50cmllcygpKUEucmVndWxhci5uYW1lPy5yZXBsYWNlQWxsKGksIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChhKSYmcy5wdXNoKEEpO2lmKDA9PT1zLmxlbmd0aCl7YT1hLnJlcGxhY2VBbGwoL3BzbXR8bXQvZ2ksIiIpO2Zvcihjb25zdFtBLGVdb2YgdGhpcy5mb250cy5lbnRyaWVzKCkpQS5yZXBsYWNlQWxsKGksIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChhKSYmcy5wdXNoKGUpfWlmKDA9PT1zLmxlbmd0aClmb3IoY29uc3QgQSBvZiB0aGlzLmZvbnRzLnZhbHVlcygpKUEucmVndWxhci5uYW1lPy5yZXBsYWNlQWxsKGksIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChhKSYmcy5wdXNoKEEpO3JldHVybiBzLmxlbmd0aD49MT8oMSE9PXMubGVuZ3RoJiZlJiZVKGBYRkEgLSBUb28gbWFueSBjaG9pY2VzIHRvIGd1ZXNzIHRoZSBjb3JyZWN0IGZvbnQ6ICR7QX1gKSx0aGlzLmNhY2hlLnNldChBLHNbMF0pLHNbMF0pOihlJiYhdGhpcy53YXJuZWQuaGFzKEEpJiYodGhpcy53YXJuZWQuYWRkKEEpLFUoYFhGQSAtIENhbm5vdCBmaW5kIHRoZSBmb250OiAke0F9YCkpLG51bGwpfX1mdW5jdGlvbiBQSShBLGUpe3JldHVybiJpdGFsaWMiPT09QS5wb3N0dXJlPyJib2xkIj09PUEud2VpZ2h0P2UuYm9sZGl0YWxpYzplLml0YWxpYzoiYm9sZCI9PT1BLndlaWdodD9lLmJvbGQ6ZS5yZWd1bGFyfWNsYXNzIFdJe2NvbnN0cnVjdG9yKEEsZSx0LGkpe2lmKHRoaXMubGluZUhlaWdodD10LHRoaXMucGFyYU1hcmdpbj1lfHx7dG9wOjAsYm90dG9tOjAsbGVmdDowLHJpZ2h0OjB9LCFBKXJldHVybiB2b2lkKFt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGkpKTt0aGlzLnhmYUZvbnQ9e3R5cGVmYWNlOkEudHlwZWZhY2UscG9zdHVyZTpBLnBvc3R1cmUsd2VpZ2h0OkEud2VpZ2h0LHNpemU6QS5zaXplLGxldHRlclNwYWNpbmc6QS5sZXR0ZXJTcGFjaW5nfTtjb25zdCBhPWkuZmluZChBLnR5cGVmYWNlKTthPyh0aGlzLnBkZkZvbnQ9UEkoQSxhKSx0aGlzLnBkZkZvbnR8fChbdGhpcy5wZGZGb250LHRoaXMueGZhRm9udF09dGhpcy5kZWZhdWx0Rm9udChpKSkpOlt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGkpfWRlZmF1bHRGb250KEEpe2NvbnN0IGU9QS5maW5kKCJIZWx2ZXRpY2EiLCExKXx8QS5maW5kKCJNeXJpYWQgUHJvIiwhMSl8fEEuZmluZCgiQXJpYWwiLCExKXx8QS5nZXREZWZhdWx0KCk7aWYoZT8ucmVndWxhcil7Y29uc3QgQT1lLnJlZ3VsYXI7cmV0dXJuW0Ese3R5cGVmYWNlOkEuY3NzRm9udEluZm8uZm9udEZhbWlseSxwb3N0dXJlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzaXplOjEwLGxldHRlclNwYWNpbmc6MH1dfXJldHVybltudWxsLHt0eXBlZmFjZToiQ291cmllciIscG9zdHVyZToibm9ybWFsIix3ZWlnaHQ6Im5vcm1hbCIsc2l6ZToxMCxsZXR0ZXJTcGFjaW5nOjB9XX19Y2xhc3MgT0l7Y29uc3RydWN0b3IoQSxlLHQsaSl7dGhpcy5mb250RmluZGVyPWksdGhpcy5zdGFjaz1bbmV3IFdJKEEsZSx0LGkpXX1wdXNoRGF0YShBLGUsdCl7Y29uc3QgaT10aGlzLnN0YWNrLmF0KC0xKTtmb3IoY29uc3QgZSBvZlsidHlwZWZhY2UiLCJwb3N0dXJlIiwid2VpZ2h0Iiwic2l6ZSIsImxldHRlclNwYWNpbmciXSlBW2VdfHwoQVtlXT1pLnhmYUZvbnRbZV0pO2Zvcihjb25zdCBBIG9mWyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSlpc05hTihlW0FdKSYmKGVbQV09aS5wYXJhTWFyZ2luW0FdKTtjb25zdCBhPW5ldyBXSShBLGUsdHx8aS5saW5lSGVpZ2h0LHRoaXMuZm9udEZpbmRlcik7YS5wZGZGb250fHwoYS5wZGZGb250PWkucGRmRm9udCksdGhpcy5zdGFjay5wdXNoKGEpfXBvcEZvbnQoKXt0aGlzLnN0YWNrLnBvcCgpfXRvcEZvbnQoKXtyZXR1cm4gdGhpcy5zdGFjay5hdCgtMSl9fWNsYXNzIFpJe2NvbnN0cnVjdG9yKEEsZSx0LGkpe3RoaXMuZ2x5cGhzPVtdLHRoaXMuZm9udFNlbGVjdG9yPW5ldyBPSShBLGUsdCxpKSx0aGlzLmV4dHJhSGVpZ2h0PTB9cHVzaERhdGEoQSxlLHQpe3RoaXMuZm9udFNlbGVjdG9yLnB1c2hEYXRhKEEsZSx0KX1wb3BGb250KEEpe3JldHVybiB0aGlzLmZvbnRTZWxlY3Rvci5wb3BGb250KCl9YWRkUGFyYSgpe2NvbnN0IEE9dGhpcy5mb250U2VsZWN0b3IudG9wRm9udCgpO3RoaXMuZXh0cmFIZWlnaHQrPUEucGFyYU1hcmdpbi50b3ArQS5wYXJhTWFyZ2luLmJvdHRvbX1hZGRTdHJpbmcoQSl7aWYoIUEpcmV0dXJuO2NvbnN0IGU9dGhpcy5mb250U2VsZWN0b3IudG9wRm9udCgpLHQ9ZS54ZmFGb250LnNpemU7aWYoZS5wZGZGb250KXtjb25zdCBpPWUueGZhRm9udC5sZXR0ZXJTcGFjaW5nLGE9ZS5wZGZGb250LHM9YS5saW5lSGVpZ2h0fHwxLjIsbj1lLmxpbmVIZWlnaHR8fE1hdGgubWF4KDEuMixzKSp0LHI9cy0odm9pZCAwPT09YS5saW5lR2FwPy4yOmEubGluZUdhcCksZz1NYXRoLm1heCgxLHIpKnQsbz10LzFlMyxJPWEuZGVmYXVsdFdpZHRofHxhLmNoYXJzVG9HbHlwaHMoIiAiKVswXS53aWR0aDtmb3IoY29uc3QgZSBvZiBBLnNwbGl0KC9bXHUyMDI5XG5dLykpe2NvbnN0IEE9YS5lbmNvZGVTdHJpbmcoZSkuam9pbigiIiksdD1hLmNoYXJzVG9HbHlwaHMoQSk7Zm9yKGNvbnN0IEEgb2YgdCl7Y29uc3QgZT1BLndpZHRofHxJO3RoaXMuZ2x5cGhzLnB1c2goW2UqbytpLG4sZyxBLnVuaWNvZGUsITFdKX10aGlzLmdseXBocy5wdXNoKFswLDAsMCwiXG4iLCEwXSl9dGhpcy5nbHlwaHMucG9wKCl9ZWxzZXtmb3IoY29uc3QgZSBvZiBBLnNwbGl0KC9bXHUyMDI5XG5dLykpe2Zvcihjb25zdCBBIG9mIGUuc3BsaXQoIiIpKXRoaXMuZ2x5cGhzLnB1c2goW3QsMS4yKnQsdCxBLCExXSk7dGhpcy5nbHlwaHMucHVzaChbMCwwLDAsIlxuIiwhMF0pfXRoaXMuZ2x5cGhzLnBvcCgpfX1jb21wdXRlKEEpe2xldCBlPS0xLHQ9MCxpPTAsYT0wLHM9MCxuPTAscj0hMSxnPSEwO2ZvcihsZXQgbz0wLEk9dGhpcy5nbHlwaHMubGVuZ3RoO288STtvKyspe2NvbnN0W0ksYyxoLEMsQl09dGhpcy5nbHlwaHNbb10sbD0iICI9PT1DLFE9Zz9oOmM7Qj8oaT1NYXRoLm1heChpLHMpLHM9MCxhKz1uLG49USxlPS0xLHQ9MCxnPSExKTpsP3MrST5BPyhpPU1hdGgubWF4KGkscykscz0wLGErPW4sbj1RLGU9LTEsdD0wLHI9ITAsZz0hMSk6KG49TWF0aC5tYXgoUSxuKSx0PXMscys9SSxlPW8pOnMrST5BPyhhKz1uLG49USwtMSE9PWU/KG89ZSxpPU1hdGgubWF4KGksdCkscz0wLGU9LTEsdD0wKTooaT1NYXRoLm1heChpLHMpLHM9SSkscj0hMCxnPSExKToocys9SSxuPU1hdGgubWF4KFEsbikpfXJldHVybiBpPU1hdGgubWF4KGkscyksYSs9bit0aGlzLmV4dHJhSGVpZ2h0LHt3aWR0aDoxLjAyKmksaGVpZ2h0OmEsaXNCcm9rZW46cn19fWNvbnN0IGpJPS9eW14uW10rLyxYST0vXlteXF1dKy8sVkk9e2RvdDowLGRvdERvdDoxLGRvdEhhc2g6Mixkb3RCcmFja2V0OjMsZG90UGFyZW46NH0sX0k9bmV3IE1hcChbWyIkZGF0YSIsKEEsZSk9PkEuZGF0YXNldHM/QS5kYXRhc2V0cy5kYXRhOkFdLFsiJHJlY29yZCIsKEEsZSk9PihBLmRhdGFzZXRzP0EuZGF0YXNldHMuZGF0YTpBKVt2b10oKVswXV0sWyIkdGVtcGxhdGUiLChBLGUpPT5BLnRlbXBsYXRlXSxbIiRjb25uZWN0aW9uU2V0IiwoQSxlKT0+QS5jb25uZWN0aW9uU2V0XSxbIiRmb3JtIiwoQSxlKT0+QS5mb3JtXSxbIiRsYXlvdXQiLChBLGUpPT5BLmxheW91dF0sWyIkaG9zdCIsKEEsZSk9PkEuaG9zdF0sWyIkZGF0YVdpbmRvdyIsKEEsZSk9PkEuZGF0YVdpbmRvd10sWyIkZXZlbnQiLChBLGUpPT5BLmV2ZW50XSxbIiEiLChBLGUpPT5BLmRhdGFzZXRzXSxbIiR4ZmEiLChBLGUpPT5BXSxbInhmYSIsKEEsZSk9PkFdLFsiJCIsKEEsZSk9PmVdXSksekk9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gJEkoQSxlLHQ9ITApe2xldCBpPUEubWF0Y2goakkpO2lmKCFpKXJldHVybiBudWxsO2xldFthXT1pO2NvbnN0IHM9W3tuYW1lOmEsY2FjaGVOYW1lOiIuIithLGluZGV4OjAsanM6bnVsbCxmb3JtQ2FsYzpudWxsLG9wZXJhdG9yOlZJLmRvdH1dO2xldCBuPWEubGVuZ3RoO2Zvcig7bjxBLmxlbmd0aDspe2NvbnN0IGc9bjtpZigiWyI9PT1BLmNoYXJBdChuKyspKXtpZihpPUEuc2xpY2UobikubWF0Y2goWEkpLCFpKXJldHVybiBVKCJYRkEgLSBJbnZhbGlkIGluZGV4IGluIFNPTSBleHByZXNzaW9uIiksbnVsbDtzLmF0KC0xKS5pbmRleD0iKiI9PT0ocj0ocj1pWzBdKS50cmltKCkpPzEvMDpwYXJzZUludChyLDEwKXx8MCxuKz1pWzBdLmxlbmd0aCsxO2NvbnRpbnVlfWxldCBvO3N3aXRjaChBLmNoYXJBdChuKSl7Y2FzZSIuIjppZighZSlyZXR1cm4gbnVsbDtuKyssbz1WSS5kb3REb3Q7YnJlYWs7Y2FzZSIjIjpuKyssbz1WSS5kb3RIYXNoO2JyZWFrO2Nhc2UiWyI6aWYodClyZXR1cm4gVSgiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBGb3JtQ2FsYyBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKSxudWxsO289VkkuZG90QnJhY2tldDticmVhaztjYXNlIigiOmlmKHQpcmV0dXJuIFUoIlhGQSAtIFNPTSBleHByZXNzaW9uIGNvbnRhaW5zIGEgSmF2YVNjcmlwdCBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKSxudWxsO289VkkuZG90UGFyZW47YnJlYWs7ZGVmYXVsdDpvPVZJLmRvdH1pZihpPUEuc2xpY2UobikubWF0Y2goakkpLCFpKWJyZWFrO1thXT1pLG4rPWEubGVuZ3RoLHMucHVzaCh7bmFtZTphLGNhY2hlTmFtZTpBLnNsaWNlKGcsbiksb3BlcmF0b3I6byxpbmRleDowLGpzOm51bGwsZm9ybUNhbGM6bnVsbH0pfXZhciByO3JldHVybiBzfWZ1bmN0aW9uIEFjKEEsZSx0LGk9ITAsYT0hMCl7Y29uc3Qgcz0kSSh0LGkpO2lmKCFzKXJldHVybiBudWxsO2NvbnN0IG49X0kuZ2V0KHNbMF0ubmFtZSk7bGV0IHIsZz0wO24/KHI9ITAsQT1bbihBLGUpXSxnPTEpOihyPW51bGw9PT1lLEE9W2V8fEFdKTtmb3IobGV0IHQ9cy5sZW5ndGg7Zzx0O2crKyl7Y29uc3R7bmFtZTp0LGNhY2hlTmFtZTppLG9wZXJhdG9yOm4saW5kZXg6b309c1tnXSxJPVtdO2Zvcihjb25zdCBlIG9mIEEpe2lmKCFlLmlzWEZBT2JqZWN0KWNvbnRpbnVlO2xldCBBLHM7aWYoYSYmKHM9ekkuZ2V0KGUpLHN8fChzPW5ldyBNYXAsekkuc2V0KGUscykpLEE9cy5nZXQoaSkpLCFBKXtzd2l0Y2gobil7Y2FzZSBWSS5kb3Q6QT1lW01vXSh0LCExKTticmVhaztjYXNlIFZJLmRvdERvdDpBPWVbTW9dKHQsITApO2JyZWFrO2Nhc2UgVkkuZG90SGFzaDpBPWVbVW9dKHQpLEE9QS5pc1hGQU9iamVjdEFycmF5P0EuY2hpbGRyZW46W0FdfWEmJnMuc2V0KGksQSl9QS5sZW5ndGg+MCYmSS5wdXNoKEEpfWlmKDAhPT1JLmxlbmd0aHx8cnx8MCE9PWcpQT1pc0Zpbml0ZShvKT9JLmZpbHRlcigoQT0+bzxBLmxlbmd0aCkpLm1hcCgoQT0+QVtvXSkpOkkuZmxhdCgpO2Vsc2V7Y29uc3QgdD1lW1BvXSgpO2lmKCEoZT10KSlyZXR1cm4gbnVsbDtnPS0xLEE9W2VdfX1yZXR1cm4gMD09PUEubGVuZ3RoP251bGw6QX1mdW5jdGlvbiBlYyhBLGUsdCl7Y29uc3QgaT0kSSh0KTtpZighaSlyZXR1cm4gbnVsbDtpZihpLnNvbWUoKEE9PkEub3BlcmF0b3I9PT1WSS5kb3REb3QpKSlyZXR1cm4gbnVsbDtjb25zdCBhPV9JLmdldChpWzBdLm5hbWUpO2xldCBzPTA7YT8oQT1hKEEsZSkscz0xKTpBPWV8fEE7Zm9yKGxldCBlPWkubGVuZ3RoO3M8ZTtzKyspe2NvbnN0e25hbWU6ZSxvcGVyYXRvcjp0LGluZGV4OmF9PWlbc107aWYoIWlzRmluaXRlKGEpKXJldHVybiBpW3NdLmluZGV4PTAsQS5jcmVhdGVOb2RlcyhpLnNsaWNlKHMpKTtsZXQgbjtzd2l0Y2godCl7Y2FzZSBWSS5kb3Q6bj1BW01vXShlLCExKTticmVhaztjYXNlIFZJLmRvdERvdDpuPUFbTW9dKGUsITApO2JyZWFrO2Nhc2UgVkkuZG90SGFzaDpuPUFbVW9dKGUpLG49bi5pc1hGQU9iamVjdEFycmF5P24uY2hpbGRyZW46W25dfWlmKDA9PT1uLmxlbmd0aClyZXR1cm4gQS5jcmVhdGVOb2RlcyhpLnNsaWNlKHMpKTtpZighKGE8bi5sZW5ndGgpKXJldHVybiBpW3NdLmluZGV4PWEtbi5sZW5ndGgsQS5jcmVhdGVOb2RlcyhpLnNsaWNlKHMpKTt7Y29uc3QgZT1uW2FdO2lmKCFlLmlzWEZBT2JqZWN0KXJldHVybiBVKCJYRkEgLSBDYW5ub3QgY3JlYXRlIGEgbm9kZS4iKSxudWxsO0E9ZX19cmV0dXJuIG51bGx9Y29uc3QgdGM9U3ltYm9sKCksaWM9U3ltYm9sKCksYWM9U3ltYm9sKCksc2M9U3ltYm9sKCJfY2hpbGRyZW4iKSxuYz1TeW1ib2woKSxyYz1TeW1ib2woKSxnYz1TeW1ib2woKSxvYz1TeW1ib2woKSxJYz1TeW1ib2woKSxjYz1TeW1ib2woKSxoYz1TeW1ib2woKSxDYz1TeW1ib2woKSxCYz1TeW1ib2woKSxsYz1TeW1ib2woInBhcmVudCIpLFFjPVN5bWJvbCgpLEVjPVN5bWJvbCgpLHVjPVN5bWJvbCgpO2xldCBkYz0wO2NvbnN0IGZjPUdJLmRhdGFzZXRzLmlkO2NsYXNzIHBje2NvbnN0cnVjdG9yKEEsZSx0PSExKXt0aGlzW3JJXT1BLHRoaXNbZ0ldPWUsdGhpc1toY109dCx0aGlzW2xjXT1udWxsLHRoaXNbc2NdPVtdLHRoaXNbU0ldPWAke2V9JHtkYysrfWAsdGhpc1tPb109bnVsbH1nZXQgaXNYRkFPYmplY3QoKXtyZXR1cm4hMH1nZXQgaXNYRkFPYmplY3RBcnJheSgpe3JldHVybiExfWNyZWF0ZU5vZGVzKEEpe2xldCBlPXRoaXMsdD1udWxsO2Zvcihjb25zdHtuYW1lOmksaW5kZXg6YX1vZiBBKXtmb3IobGV0IEE9MCxzPWlzRmluaXRlKGEpP2E6MDtBPD1zO0ErKyl7Y29uc3QgQT1lW3JJXT09PWZjPy0xOmVbckldO3Q9bmV3IHdjKEEsaSksZVtFb10odCl9ZT10fXJldHVybiB0fVtJSV0oQSl7aWYoIXRoaXNbaGNdfHwhdGhpc1tjSV0oQSkpcmV0dXJuITE7Y29uc3QgZT1BW2dJXSx0PXRoaXNbZV07aWYoISh0IGluc3RhbmNlb2YgbWMpKXJldHVybiBudWxsIT09dCYmdGhpc1tRSV0odCksdGhpc1tlXT1BLHRoaXNbRW9dKEEpLCEwO2lmKHQucHVzaChBKSlyZXR1cm4gdGhpc1tFb10oQSksITA7bGV0IGk9IiI7cmV0dXJuIHRoaXMuaWQ/aT1gIChpZDogJHt0aGlzLmlkfSlgOnRoaXMubmFtZSYmKGk9YCAobmFtZTogJHt0aGlzLm5hbWV9ICR7dGhpcy5oLnZhbHVlfSlgKSxVKGBYRkEgLSBub2RlICIke3RoaXNbZ0ldfSIke2l9IGhhcyBhbHJlYWR5IGVub3VnaCAiJHtlfSIhYCksITF9W2NJXShBKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eShBW2dJXSkmJkFbckldPT09dGhpc1tySV19W2VJXSgpe3JldHVybiExfVtsb10oKXtyZXR1cm4hMX1bX29dKCl7cmV0dXJuITF9W3pvXSgpe3JldHVybiExfVtCSV0oKXt0aGlzLnBhcmEmJnRoaXNbV29dKClbRm9dLnBhcmFTdGFjay5wb3AoKX1bbEldKCl7dGhpc1tXb10oKVtGb10ucGFyYVN0YWNrLnB1c2godGhpcy5wYXJhKX1bZkldKEEpe3RoaXMuaWQmJnRoaXNbckldPT09R0kudGVtcGxhdGUuaWQmJkEuc2V0KHRoaXMuaWQsdGhpcyl9W1dvXSgpe3JldHVybiB0aGlzW09vXS50ZW1wbGF0ZX1bdEldKCl7cmV0dXJuITF9W2lJXSgpe3JldHVybiExfVtFb10oQSl7QVtsY109dGhpcyx0aGlzW3NjXS5wdXNoKEEpLCFBW09vXSYmdGhpc1tPb10mJihBW09vXT10aGlzW09vXSl9W1FJXShBKXtjb25zdCBlPXRoaXNbc2NdLmluZGV4T2YoQSk7dGhpc1tzY10uc3BsaWNlKGUsMSl9W1pvXSgpe3JldHVybiB0aGlzLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpfVttSV0oQSl7fVtoSV0oQSl7fVtTb10oKXt9W2ZvXShBKXtkZWxldGUgdGhpc1toY10sdGhpc1ttb10mJihBLmNsZWFuKHRoaXNbbW9dKSxkZWxldGUgdGhpc1ttb10pfVtYb10oQSl7cmV0dXJuIHRoaXNbc2NdLmluZGV4T2YoQSl9W1ZvXShBLGUpe2VbbGNdPXRoaXMsdGhpc1tzY10uc3BsaWNlKEEsMCxlKSwhZVtPb10mJnRoaXNbT29dJiYoZVtPb109dGhpc1tPb10pfVthSV0oKXtyZXR1cm4hdGhpcy5uYW1lfVtuSV0oKXtyZXR1cm4iIn1bd0ldKCl7cmV0dXJuIDA9PT10aGlzW3NjXS5sZW5ndGg/dGhpc1tEb106dGhpc1tzY10ubWFwKChBPT5BW3dJXSgpKSkuam9pbigiIil9Z2V0W2FjXSgpe2NvbnN0IEE9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKCFBLl9hdHRyaWJ1dGVzKXtjb25zdCBlPUEuX2F0dHJpYnV0ZXM9bmV3IFNldDtmb3IoY29uc3QgQSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYobnVsbD09PXRoaXNbQV18fHRoaXNbQV1pbnN0YW5jZW9mIHBjfHx0aGlzW0FdaW5zdGFuY2VvZiBtYylicmVhaztlLmFkZChBKX19cmV0dXJuIEgodGhpcyxhYyxBLl9hdHRyaWJ1dGVzKX1bQUldKEEpe2xldCBlPXRoaXM7Zm9yKDtlOyl7aWYoZT09PUEpcmV0dXJuITA7ZT1lW1BvXSgpfXJldHVybiExfVtQb10oKXtyZXR1cm4gdGhpc1tsY119W1RvXSgpe3JldHVybiB0aGlzW1BvXSgpfVt2b10oQT1udWxsKXtyZXR1cm4gQT90aGlzW0FdOnRoaXNbc2NdfVtrb10oKXtjb25zdCBBPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpc1tEb10mJihBLiRjb250ZW50PXRoaXNbRG9dKTtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7Y29uc3QgdD10aGlzW2VdO251bGwhPT10JiYodCBpbnN0YW5jZW9mIHBjP0FbZV09dFtrb10oKTp0IGluc3RhbmNlb2YgbWM/dC5pc0VtcHR5KCl8fChBW2VdPXQuZHVtcCgpKTpBW2VdPXQpfXJldHVybiBBfVtGSV0oKXtyZXR1cm4gbnVsbH1bYkldKCl7cmV0dXJuIHFJLkVNUFRZfSpbS29dKCl7Zm9yKGNvbnN0IEEgb2YgdGhpc1t2b10oKSl5aWVsZCBBfSpbb2NdKEEsZSl7Zm9yKGNvbnN0IHQgb2YgdGhpc1tLb10oKSlpZighQXx8ZT09PUEuaGFzKHRbZ0ldKSl7Y29uc3QgQT10aGlzW3hvXSgpLGU9dFtiSV0oQSk7ZS5zdWNjZXNzfHwodGhpc1tGb10uZmFpbGluZ05vZGU9dCkseWllbGQgZX19W1JvXSgpe3JldHVybiBudWxsfVtRb10oQSxlKXt0aGlzW0ZvXS5jaGlsZHJlbi5wdXNoKEEpfVt4b10oKXt9W3VvXSh7ZmlsdGVyOkE9bnVsbCxpbmNsdWRlOmU9ITB9KXtpZih0aGlzW0ZvXS5nZW5lcmF0b3Ipe2NvbnN0IEE9dGhpc1t4b10oKSxlPXRoaXNbRm9dLmZhaWxpbmdOb2RlW2JJXShBKTtpZighZS5zdWNjZXNzKXJldHVybiBlO2UuaHRtbCYmdGhpc1tRb10oZS5odG1sLGUuYmJveCksZGVsZXRlIHRoaXNbRm9dLmZhaWxpbmdOb2RlfWVsc2UgdGhpc1tGb10uZ2VuZXJhdG9yPXRoaXNbb2NdKEEsZSk7Zm9yKDs7KXtjb25zdCBBPXRoaXNbRm9dLmdlbmVyYXRvci5uZXh0KCk7aWYoQS5kb25lKWJyZWFrO2NvbnN0IGU9QS52YWx1ZTtpZighZS5zdWNjZXNzKXJldHVybiBlO2UuaHRtbCYmdGhpc1tRb10oZS5odG1sLGUuYmJveCl9cmV0dXJuIHRoaXNbRm9dLmdlbmVyYXRvcj1udWxsLHFJLkVNUFRZfVtwSV0oQSl7dGhpc1tFY109bmV3IFNldChPYmplY3Qua2V5cyhBKSl9W2NjXShBKXtjb25zdCBlPXRoaXNbYWNdLHQ9dGhpc1tFY107cmV0dXJuWy4uLkFdLmZpbHRlcigoQT0+ZS5oYXMoQSkmJiF0LmhhcyhBKSkpfVt1SV0oQSxlPW5ldyBTZXQpe2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKXRbUWNdKEEsZSl9W1FjXShBLGUpe2NvbnN0IHQ9dGhpc1tJY10oQSxlKTt0P3RoaXNbdGNdKHQsQSxlKTp0aGlzW3VJXShBLGUpfVtJY10oQSxlKXtjb25zdHt1c2U6dCx1c2VocmVmOml9PXRoaXM7aWYoIXQmJiFpKXJldHVybiBudWxsO2xldCBhPW51bGwscz1udWxsLG49bnVsbCxyPXQ7aWYoaT8ocj1pLGkuc3RhcnRzV2l0aCgiI3NvbSgiKSYmaS5lbmRzV2l0aCgiKSIpP3M9aS5zbGljZSg1LC0xKTppLnN0YXJ0c1dpdGgoIi4jc29tKCIpJiZpLmVuZHNXaXRoKCIpIik/cz1pLnNsaWNlKDYsLTEpOmkuc3RhcnRzV2l0aCgiIyIpP249aS5zbGljZSgxKTppLnN0YXJ0c1dpdGgoIi4jIikmJihuPWkuc2xpY2UoMikpKTp0LnN0YXJ0c1dpdGgoIiMiKT9uPXQuc2xpY2UoMSk6cz10LHRoaXMudXNlPXRoaXMudXNlaHJlZj0iIixuP2E9QS5nZXQobik6KGE9QWMoQS5nZXQoRUkpLHRoaXMscywhMCwhMSksYSYmKGE9YVswXSkpLCFhKXJldHVybiBVKGBYRkEgLSBJbnZhbGlkIHByb3RvdHlwZSByZWZlcmVuY2U6ICR7cn0uYCksbnVsbDtpZihhW2dJXSE9PXRoaXNbZ0ldKXJldHVybiBVKGBYRkEgLSBJbmNvbXBhdGlibGUgcHJvdG90eXBlOiAke2FbZ0ldfSAhPT0gJHt0aGlzW2dJXX0uYCksbnVsbDtpZihlLmhhcyhhKSlyZXR1cm4gVSgiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIiksbnVsbDtlLmFkZChhKTtjb25zdCBnPWFbSWNdKEEsZSk7cmV0dXJuIGcmJmFbdGNdKGcsQSxlKSxhW3VJXShBLGUpLGUuZGVsZXRlKGEpLGF9W3RjXShBLGUsdCl7aWYodC5oYXMoQSkpVSgiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIik7ZWxzZXshdGhpc1tEb10mJkFbRG9dJiYodGhpc1tEb109QVtEb10pLG5ldyBTZXQodCkuYWRkKEEpO2Zvcihjb25zdCBlIG9mIHRoaXNbY2NdKEFbRWNdKSl0aGlzW2VdPUFbZV0sdGhpc1tFY10mJnRoaXNbRWNdLmFkZChlKTtmb3IoY29uc3QgaSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYodGhpc1thY10uaGFzKGkpKWNvbnRpbnVlO2NvbnN0IGE9dGhpc1tpXSxzPUFbaV07aWYoYSBpbnN0YW5jZW9mIG1jKXtmb3IoY29uc3QgQSBvZiBhW3NjXSlBW1FjXShlLHQpO2ZvcihsZXQgaT1hW3NjXS5sZW5ndGgsbj1zW3NjXS5sZW5ndGg7aTxuO2krKyl7Y29uc3Qgcz1BW3NjXVtpXVt5b10oKTtpZighYS5wdXNoKHMpKWJyZWFrO3NbbGNdPXRoaXMsdGhpc1tzY10ucHVzaChzKSxzW1FjXShlLHQpfX1lbHNlIGlmKG51bGw9PT1hKXtpZihudWxsIT09cyl7Y29uc3QgQT1zW3lvXSgpO0FbbGNdPXRoaXMsdGhpc1tpXT1BLHRoaXNbc2NdLnB1c2goQSksQVtRY10oZSx0KX19ZWxzZSBhW3VJXShlLHQpLHMmJmFbdGNdKHMsZSx0KX19fXN0YXRpY1tuY10oQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSk/QS5tYXAoKEE9PnBjW25jXShBKSkpOiJvYmplY3QiPT10eXBlb2YgQSYmbnVsbCE9PUE/T2JqZWN0LmFzc2lnbih7fSxBKTpBfVt5b10oKXtjb25zdCBBPU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpKTtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRoaXMpKXRyeXtBW2VdPXRoaXNbZV19Y2F0Y2h7SChBLGUsdGhpc1tlXSl9QVtTSV09YCR7QVtnSV19JHtkYysrfWAsQVtzY109W107Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKHRoaXNbYWNdLmhhcyhlKSl7QVtlXT1wY1tuY10odGhpc1tlXSk7Y29udGludWV9Y29uc3QgdD10aGlzW2VdO0FbZV09dCBpbnN0YW5jZW9mIG1jP25ldyBtYyh0W0NjXSk6bnVsbH1mb3IoY29uc3QgZSBvZiB0aGlzW3NjXSl7Y29uc3QgdD1lW2dJXSxpPWVbeW9dKCk7QVtzY10ucHVzaChpKSxpW2xjXT1BLG51bGw9PT1BW3RdP0FbdF09aTpBW3RdW3NjXS5wdXNoKGkpfXJldHVybiBBfVt2b10oQT1udWxsKXtyZXR1cm4gQT90aGlzW3NjXS5maWx0ZXIoKGU9PmVbZ0ldPT09QSkpOnRoaXNbc2NdfVtVb10oQSl7cmV0dXJuIHRoaXNbQV19W01vXShBLGUsdD0hMCl7cmV0dXJuIEFycmF5LmZyb20odGhpc1tMb10oQSxlLHQpKX0qW0xvXShBLGUsdD0hMCl7aWYoInBhcmVudCIhPT1BKXtmb3IoY29uc3QgdCBvZiB0aGlzW3NjXSl0W2dJXT09PUEmJih5aWVsZCB0KSx0Lm5hbWU9PT1BJiYoeWllbGQgdCksKGV8fHRbYUldKCkpJiYoeWllbGQqdFtMb10oQSxlLCExKSk7dCYmdGhpc1thY10uaGFzKEEpJiYoeWllbGQgbmV3IHljKHRoaXMsQSx0aGlzW0FdKSl9ZWxzZSB5aWVsZCB0aGlzW2xjXX19Y2xhc3MgbWN7Y29uc3RydWN0b3IoQT0xLzApe3RoaXNbQ2NdPUEsdGhpc1tzY109W119Z2V0IGlzWEZBT2JqZWN0KCl7cmV0dXJuITF9Z2V0IGlzWEZBT2JqZWN0QXJyYXkoKXtyZXR1cm4hMH1wdXNoKEEpe3JldHVybiB0aGlzW3NjXS5sZW5ndGg8PXRoaXNbQ2NdPyh0aGlzW3NjXS5wdXNoKEEpLCEwKTooVShgWEZBIC0gbm9kZSAiJHtBW2dJXX0iIGFjY2VwdHMgbm8gbW9yZSB0aGFuICR7dGhpc1tDY119IGNoaWxkcmVuYCksITEpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXNbc2NdLmxlbmd0aH1kdW1wKCl7cmV0dXJuIDE9PT10aGlzW3NjXS5sZW5ndGg/dGhpc1tzY11bMF1ba29dKCk6dGhpc1tzY10ubWFwKChBPT5BW2tvXSgpKSl9W3lvXSgpe2NvbnN0IEE9bmV3IG1jKHRoaXNbQ2NdKTtyZXR1cm4gQVtzY109dGhpc1tzY10ubWFwKChBPT5BW3lvXSgpKSksQX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpc1tzY119Y2xlYXIoKXt0aGlzW3NjXS5sZW5ndGg9MH19Y2xhc3MgeWN7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXNbbGNdPUEsdGhpc1tnSV09ZSx0aGlzW0RvXT10LHRoaXNbd29dPSExLHRoaXNbU0ldPSJhdHRyaWJ1dGUiK2RjKyt9W1BvXSgpe3JldHVybiB0aGlzW2xjXX1bJG9dKCl7cmV0dXJuITB9W0pvXSgpe3JldHVybiB0aGlzW0RvXS50cmltKCl9W21JXShBKXtBPUEudmFsdWV8fCIiLHRoaXNbRG9dPUEudG9TdHJpbmcoKX1bd0ldKCl7cmV0dXJuIHRoaXNbRG9dfVtBSV0oQSl7cmV0dXJuIHRoaXNbbGNdPT09QXx8dGhpc1tsY11bQUldKEEpfX1jbGFzcyB3YyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEsZSx0PXt9KXtpZihzdXBlcihBLGUpLHRoaXNbRG9dPSIiLHRoaXNbcmNdPW51bGwsIiN0ZXh0IiE9PWUpe2NvbnN0IEE9bmV3IE1hcDt0aGlzW2ljXT1BO2Zvcihjb25zdFtlLGldb2YgT2JqZWN0LmVudHJpZXModCkpQS5zZXQoZSxuZXcgeWModGhpcyxlLGkpKTtpZih0Lmhhc093blByb3BlcnR5KG9JKSl7Y29uc3QgQT10W29JXS54ZmEuZGF0YU5vZGU7dm9pZCAwIT09QSYmKCJkYXRhR3JvdXAiPT09QT90aGlzW3JjXT0hMToiZGF0YVZhbHVlIj09PUEmJih0aGlzW3JjXT0hMCkpfX10aGlzW3dvXT0hMX1ba0ldKEEpe2NvbnN0IGU9dGhpc1tnSV07aWYoIiN0ZXh0Ij09PWUpcmV0dXJuIHZvaWQgQS5wdXNoKF9BKHRoaXNbRG9dKSk7Y29uc3QgdD1pQShlKSxpPXRoaXNbckldPT09ZmM/InhmYToiOiIiO0EucHVzaChgPCR7aX0ke3R9YCk7Zm9yKGNvbnN0W2UsdF1vZiB0aGlzW2ljXS5lbnRyaWVzKCkpe2NvbnN0IGk9aUEoZSk7QS5wdXNoKGAgJHtpfT0iJHtfQSh0W0RvXSl9ImApfWlmKG51bGwhPT10aGlzW3JjXSYmKHRoaXNbcmNdP0EucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YVZhbHVlIicpOkEucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YUdyb3VwIicpKSx0aGlzW0RvXXx8MCE9PXRoaXNbc2NdLmxlbmd0aCl7aWYoQS5wdXNoKCI+IiksdGhpc1tEb10pInN0cmluZyI9PXR5cGVvZiB0aGlzW0RvXT9BLnB1c2goX0EodGhpc1tEb10pKTp0aGlzW0RvXVtrSV0oQSk7ZWxzZSBmb3IoY29uc3QgZSBvZiB0aGlzW3NjXSllW2tJXShBKTtBLnB1c2goYDwvJHtpfSR7dH0+YCl9ZWxzZSBBLnB1c2goIi8+Iil9W0lJXShBKXtpZih0aGlzW0RvXSl7Y29uc3QgQT1uZXcgd2ModGhpc1tySV0sIiN0ZXh0Iik7dGhpc1tFb10oQSksQVtEb109dGhpc1tEb10sdGhpc1tEb109IiJ9cmV0dXJuIHRoaXNbRW9dKEEpLCEwfVtoSV0oQSl7dGhpc1tEb10rPUF9W1NvXSgpe2lmKHRoaXNbRG9dJiZ0aGlzW3NjXS5sZW5ndGg+MCl7Y29uc3QgQT1uZXcgd2ModGhpc1tySV0sIiN0ZXh0Iik7dGhpc1tFb10oQSksQVtEb109dGhpc1tEb10sZGVsZXRlIHRoaXNbRG9dfX1bYkldKCl7cmV0dXJuIiN0ZXh0Ij09PXRoaXNbZ0ldP3FJLnN1Y2Nlc3Moe25hbWU6IiN0ZXh0Iix2YWx1ZTp0aGlzW0RvXX0pOnFJLkVNUFRZfVt2b10oQT1udWxsKXtyZXR1cm4gQT90aGlzW3NjXS5maWx0ZXIoKGU9PmVbZ0ldPT09QSkpOnRoaXNbc2NdfVtOb10oKXtyZXR1cm4gdGhpc1tpY119W1VvXShBKXtjb25zdCBlPXRoaXNbaWNdLmdldChBKTtyZXR1cm4gdm9pZCAwIT09ZT9lOnRoaXNbdm9dKEEpfSpbTG9dKEEsZSl7Y29uc3QgdD10aGlzW2ljXS5nZXQoQSk7dCYmKHlpZWxkIHQpO2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKXRbZ0ldPT09QSYmKHlpZWxkIHQpLGUmJih5aWVsZCp0W0xvXShBLGUpKX0qW0dvXShBLGUpe2NvbnN0IHQ9dGhpc1tpY10uZ2V0KEEpOyF0fHxlJiZ0W3dvXXx8KHlpZWxkIHQpO2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKXlpZWxkKnRbR29dKEEsZSl9KltZb10oQSxlLHQpe2Zvcihjb25zdCBpIG9mIHRoaXNbc2NdKWlbZ0ldIT09QXx8dCYmaVt3b118fCh5aWVsZCBpKSxlJiYoeWllbGQqaVtZb10oQSxlLHQpKX1bJG9dKCl7cmV0dXJuIG51bGw9PT10aGlzW3JjXT8wPT09dGhpc1tzY10ubGVuZ3RofHx0aGlzW3NjXVswXVtySV09PT1HSS54aHRtbC5pZDp0aGlzW3JjXX1bSm9dKCl7cmV0dXJuIG51bGw9PT10aGlzW3JjXT8wPT09dGhpc1tzY10ubGVuZ3RoP3RoaXNbRG9dLnRyaW0oKTp0aGlzW3NjXVswXVtySV09PT1HSS54aHRtbC5pZD90aGlzW3NjXVswXVt3SV0oKS50cmltKCk6bnVsbDp0aGlzW0RvXS50cmltKCl9W21JXShBKXtBPUEudmFsdWV8fCIiLHRoaXNbRG9dPUEudG9TdHJpbmcoKX1ba29dKEE9ITEpe2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtBJiYoZS4kbnM9dGhpc1tySV0pLHRoaXNbRG9dJiYoZS4kY29udGVudD10aGlzW0RvXSksZS4kbmFtZT10aGlzW2dJXSxlLmNoaWxkcmVuPVtdO2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKWUuY2hpbGRyZW4ucHVzaCh0W2tvXShBKSk7ZS5hdHRyaWJ1dGVzPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W0EsdF1vZiB0aGlzW2ljXSllLmF0dHJpYnV0ZXNbQV09dFtEb107cmV0dXJuIGV9fWNsYXNzIERjIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihBLGUpLHRoaXNbRG9dPSIifVtoSV0oQSl7dGhpc1tEb10rPUF9W1NvXSgpe319Y2xhc3MgYmMgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBLGUsdCl7c3VwZXIoQSxlKSx0aGlzW0JjXT10fVtTb10oKXt0aGlzW0RvXT1KSSh7ZGF0YTp0aGlzW0RvXSxkZWZhdWx0VmFsdWU6dGhpc1tCY11bMF0sdmFsaWRhdGU6QT0+dGhpc1tCY10uaW5jbHVkZXMoQSl9KX1bZm9dKEEpe3N1cGVyW2ZvXShBKSxkZWxldGUgdGhpc1tCY119fWNsYXNzIGtjIGV4dGVuZHMgRGN7W1NvXSgpe3RoaXNbRG9dPXRoaXNbRG9dLnRyaW0oKX19Y2xhc3MgRmMgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBLGUsdCxpKXtzdXBlcihBLGUpLHRoaXNbZ2NdPXQsdGhpc1t1Y109aX1bU29dKCl7dGhpc1tEb109TUkoe2RhdGE6dGhpc1tEb10sZGVmYXVsdFZhbHVlOnRoaXNbZ2NdLHZhbGlkYXRlOnRoaXNbdWNdfSl9W2ZvXShBKXtzdXBlcltmb10oQSksZGVsZXRlIHRoaXNbZ2NdLGRlbGV0ZSB0aGlzW3VjXX19Y2xhc3MgU2MgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKEEsZSwwLChBPT4xPT09QSkpfX1jbGFzcyBSYyBleHRlbmRzIEZje2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSxlLDEsKEE9PjA9PT1BKSl9fWZ1bmN0aW9uIEdjKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT8iMHB4IjpOdW1iZXIuaXNJbnRlZ2VyKEEpP2Ake0F9cHhgOmAke0EudG9GaXhlZCgyKX1weGB9Y29uc3QgTmM9e2FuY2hvclR5cGUoQSxlKXtjb25zdCB0PUFbVG9dKCk7aWYodCYmKCF0LmxheW91dHx8InBvc2l0aW9uIj09PXQubGF5b3V0KSlzd2l0Y2goInRyYW5zZm9ybSJpbiBlfHwoZS50cmFuc2Zvcm09IiIpLEEuYW5jaG9yVHlwZSl7Y2FzZSJib3R0b21DZW50ZXIiOmUudHJhbnNmb3JtKz0idHJhbnNsYXRlKC01MCUsIC0xMDAlKSI7YnJlYWs7Y2FzZSJib3R0b21MZWZ0IjplLnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgwLC0xMDAlKSI7YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6ZS50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTEwMCUsLTEwMCUpIjticmVhaztjYXNlIm1pZGRsZUNlbnRlciI6ZS50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwtNTAlKSI7YnJlYWs7Y2FzZSJtaWRkbGVMZWZ0IjplLnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgwLC01MCUpIjticmVhaztjYXNlIm1pZGRsZVJpZ2h0IjplLnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtMTAwJSwtNTAlKSI7YnJlYWs7Y2FzZSJ0b3BDZW50ZXIiOmUudHJhbnNmb3JtKz0idHJhbnNsYXRlKC01MCUsMCkiO2JyZWFrO2Nhc2UidG9wUmlnaHQiOmUudHJhbnNmb3JtKz0idHJhbnNsYXRlKC0xMDAlLDApIn19LGRpbWVuc2lvbnMoQSxlKXtjb25zdCB0PUFbVG9dKCk7bGV0IGk9QS53O2NvbnN0IGE9QS5oO2lmKHQubGF5b3V0Py5pbmNsdWRlcygicm93Iikpe2NvbnN0IGU9dFtGb10sYT1BLmNvbFNwYW47bGV0IHM7LTE9PT1hPyhzPWUuY29sdW1uV2lkdGhzLnNsaWNlKGUuY3VycmVudENvbHVtbikucmVkdWNlKCgoQSxlKT0+QStlKSwwKSxlLmN1cnJlbnRDb2x1bW49MCk6KHM9ZS5jb2x1bW5XaWR0aHMuc2xpY2UoZS5jdXJyZW50Q29sdW1uLGUuY3VycmVudENvbHVtbithKS5yZWR1Y2UoKChBLGUpPT5BK2UpLDApLGUuY3VycmVudENvbHVtbj0oZS5jdXJyZW50Q29sdW1uK0EuY29sU3BhbiklZS5jb2x1bW5XaWR0aHMubGVuZ3RoKSxpc05hTihzKXx8KGk9QS53PXMpfWUud2lkdGg9IiIhPT1pP0djKGkpOiJhdXRvIixlLmhlaWdodD0iIiE9PWE/R2MoYSk6ImF1dG8ifSxwb3NpdGlvbihBLGUpe2NvbnN0IHQ9QVtUb10oKTt0Py5sYXlvdXQmJiJwb3NpdGlvbiIhPT10LmxheW91dHx8KGUucG9zaXRpb249ImFic29sdXRlIixlLmxlZnQ9R2MoQS54KSxlLnRvcD1HYyhBLnkpKX0scm90YXRlKEEsZSl7QS5yb3RhdGUmJigidHJhbnNmb3JtImluIGV8fChlLnRyYW5zZm9ybT0iIiksZS50cmFuc2Zvcm0rPWByb3RhdGUoLSR7QS5yb3RhdGV9ZGVnKWAsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iil9LHByZXNlbmNlKEEsZSl7c3dpdGNoKEEucHJlc2VuY2Upe2Nhc2UiaW52aXNpYmxlIjplLnZpc2liaWxpdHk9ImhpZGRlbiI7YnJlYWs7Y2FzZSJoaWRkZW4iOmNhc2UiaW5hY3RpdmUiOmUuZGlzcGxheT0ibm9uZSJ9fSxoQWxpZ24oQSxlKXtpZigicGFyYSI9PT1BW2dJXSlzd2l0Y2goQS5oQWxpZ24pe2Nhc2UianVzdGlmeUFsbCI6ZS50ZXh0QWxpZ249Imp1c3RpZnktYWxsIjticmVhaztjYXNlInJhZGl4IjplLnRleHRBbGlnbj0ibGVmdCI7YnJlYWs7ZGVmYXVsdDplLnRleHRBbGlnbj1BLmhBbGlnbn1lbHNlIHN3aXRjaChBLmhBbGlnbil7Y2FzZSJsZWZ0IjplLmFsaWduU2VsZj0ic3RhcnQiO2JyZWFrO2Nhc2UiY2VudGVyIjplLmFsaWduU2VsZj0iY2VudGVyIjticmVhaztjYXNlInJpZ2h0IjplLmFsaWduU2VsZj0iZW5kIn19LG1hcmdpbihBLGUpe0EubWFyZ2luJiYoZS5tYXJnaW49QS5tYXJnaW5bRkldKCkubWFyZ2luKX19O2Z1bmN0aW9uIHhjKEEsZSl7InBvc2l0aW9uIj09PUFbVG9dKCkubGF5b3V0JiYoQS5taW5XPjAmJihlLm1pbldpZHRoPUdjKEEubWluVykpLEEubWF4Vz4wJiYoZS5tYXhXaWR0aD1HYyhBLm1heFcpKSxBLm1pbkg+MCYmKGUubWluSGVpZ2h0PUdjKEEubWluSCkpLEEubWF4SD4wJiYoZS5tYXhIZWlnaHQ9R2MoQS5tYXhIKSkpfWZ1bmN0aW9uIFVjKEEsZSx0LGksYSxzKXtjb25zdCBuPW5ldyBaSShlLHQsaSxhKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/bi5hZGRTdHJpbmcoQSk6QVtDSV0obiksbi5jb21wdXRlKHMpfWZ1bmN0aW9uIE1jKEEsZSl7bGV0IHQ9bnVsbCxpPW51bGwsYT0hMTtpZigoIUEud3x8IUEuaCkmJkEudmFsdWUpe2xldCBzPTAsbj0wO0EubWFyZ2luJiYocz1BLm1hcmdpbi5sZWZ0SW5zZXQrQS5tYXJnaW4ucmlnaHRJbnNldCxuPUEubWFyZ2luLnRvcEluc2V0K0EubWFyZ2luLmJvdHRvbUluc2V0KTtsZXQgcj1udWxsLGc9bnVsbDtBLnBhcmEmJihnPU9iamVjdC5jcmVhdGUobnVsbCkscj0iIj09PUEucGFyYS5saW5lSGVpZ2h0P251bGw6QS5wYXJhLmxpbmVIZWlnaHQsZy50b3A9IiI9PT1BLnBhcmEuc3BhY2VBYm92ZT8wOkEucGFyYS5zcGFjZUFib3ZlLGcuYm90dG9tPSIiPT09QS5wYXJhLnNwYWNlQmVsb3c/MDpBLnBhcmEuc3BhY2VCZWxvdyxnLmxlZnQ9IiI9PT1BLnBhcmEubWFyZ2luTGVmdD8wOkEucGFyYS5tYXJnaW5MZWZ0LGcucmlnaHQ9IiI9PT1BLnBhcmEubWFyZ2luUmlnaHQ/MDpBLnBhcmEubWFyZ2luUmlnaHQpO2xldCBvPUEuZm9udDtpZighbyl7Y29uc3QgZT1BW1dvXSgpO2xldCB0PUFbUG9dKCk7Zm9yKDt0JiZ0IT09ZTspe2lmKHQuZm9udCl7bz10LmZvbnQ7YnJlYWt9dD10W1BvXSgpfX1jb25zdCBJPShBLnd8fGUud2lkdGgpLXMsYz1BW09vXS5mb250RmluZGVyO2lmKEEudmFsdWUuZXhEYXRhJiZBLnZhbHVlLmV4RGF0YVtEb10mJiJ0ZXh0L2h0bWwiPT09QS52YWx1ZS5leERhdGEuY29udGVudFR5cGUpe2NvbnN0IGU9VWMoQS52YWx1ZS5leERhdGFbRG9dLG8sZyxyLGMsSSk7aT1lLndpZHRoLHQ9ZS5oZWlnaHQsYT1lLmlzQnJva2VufWVsc2V7Y29uc3QgZT1BLnZhbHVlW3dJXSgpO2lmKGUpe2NvbnN0IEE9VWMoZSxvLGcscixjLEkpO2k9QS53aWR0aCx0PUEuaGVpZ2h0LGE9QS5pc0Jyb2tlbn19bnVsbD09PWl8fEEud3x8KGkrPXMpLG51bGw9PT10fHxBLmh8fCh0Kz1uKX1yZXR1cm57dzppLGg6dCxpc0Jyb2tlbjphfX1mdW5jdGlvbiBMYyhBLGUsdCl7bGV0IGk7aWYoIiIhPT1BLncmJiIiIT09QS5oKWk9W0EueCxBLnksQS53LEEuaF07ZWxzZXtpZighdClyZXR1cm4gbnVsbDtsZXQgYT1BLnc7aWYoIiI9PT1hKXtpZigwPT09QS5tYXhXKXtjb25zdCBlPUFbVG9dKCk7YT0icG9zaXRpb24iPT09ZS5sYXlvdXQmJiIiIT09ZS53PzA6QS5taW5XfWVsc2UgYT1NYXRoLm1pbihBLm1heFcsdC53aWR0aCk7ZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoPUdjKGEpfWxldCBzPUEuaDtpZigiIj09PXMpe2lmKDA9PT1BLm1heEgpe2NvbnN0IGU9QVtUb10oKTtzPSJwb3NpdGlvbiI9PT1lLmxheW91dCYmIiIhPT1lLmg/MDpBLm1pbkh9ZWxzZSBzPU1hdGgubWluKEEubWF4SCx0LmhlaWdodCk7ZS5hdHRyaWJ1dGVzLnN0eWxlLmhlaWdodD1HYyhzKX1pPVtBLngsQS55LGEsc119cmV0dXJuIGl9ZnVuY3Rpb24gSmMoQSl7Y29uc3QgZT1BW1RvXSgpO2lmKGUubGF5b3V0Py5pbmNsdWRlcygicm93Iikpe2NvbnN0IHQ9ZVtGb10saT1BLmNvbFNwYW47bGV0IGE7YT0tMT09PWk/dC5jb2x1bW5XaWR0aHMuc2xpY2UodC5jdXJyZW50Q29sdW1uKS5yZWR1Y2UoKChBLGUpPT5BK2UpLDApOnQuY29sdW1uV2lkdGhzLnNsaWNlKHQuY3VycmVudENvbHVtbix0LmN1cnJlbnRDb2x1bW4raSkucmVkdWNlKCgoQSxlKT0+QStlKSwwKSxpc05hTihhKXx8KEEudz1hKX1lLmxheW91dCYmInBvc2l0aW9uIiE9PWUubGF5b3V0JiYoQS54PUEueT0wKSwidGFibGUiPT09QS5sYXlvdXQmJiIiPT09QS53JiZBcnJheS5pc0FycmF5KEEuY29sdW1uV2lkdGhzKSYmKEEudz1BLmNvbHVtbldpZHRocy5yZWR1Y2UoKChBLGUpPT5BK2UpLDApKX1mdW5jdGlvbiBIYyhBKXtzd2l0Y2goQS5sYXlvdXQpe2Nhc2UicG9zaXRpb24iOmRlZmF1bHQ6cmV0dXJuInhmYVBvc2l0aW9uIjtjYXNlImxyLXRiIjpyZXR1cm4ieGZhTHJUYiI7Y2FzZSJybC1yb3ciOnJldHVybiJ4ZmFSbFJvdyI7Y2FzZSJybC10YiI6cmV0dXJuInhmYVJsVGIiO2Nhc2Uicm93IjpyZXR1cm4ieGZhUm93IjtjYXNlInRhYmxlIjpyZXR1cm4ieGZhVGFibGUiO2Nhc2UidGIiOnJldHVybiJ4ZmFUYiJ9fWZ1bmN0aW9uIFljKEEsLi4uZSl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9QVtpXTtpZihudWxsIT09ZSlpZihOYy5oYXNPd25Qcm9wZXJ0eShpKSlOY1tpXShBLHQpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHBjKXtjb25zdCBBPWVbRkldKCk7QT9PYmplY3QuYXNzaWduKHQsQSk6VShgKERFQlVHKSAtIFhGQSAtIHN0eWxlIGZvciAke2l9IG5vdCBpbXBsZW1lbnRlZCB5ZXRgKX19cmV0dXJuIHR9ZnVuY3Rpb24gdmMoQSxlKXtjb25zdHthdHRyaWJ1dGVzOnR9PWUse3N0eWxlOml9PXQsYT17bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVdyYXBwZXIiXSxzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSxjaGlsZHJlbjpbXX07aWYodC5jbGFzcy5wdXNoKCJ4ZmFXcmFwcGVkIiksQS5ib3JkZXIpe2NvbnN0e3dpZHRoczp0LGluc2V0czpzfT1BLmJvcmRlcltGb107bGV0IG4scixnPXNbMF0sbz1zWzNdO2NvbnN0IEk9c1swXStzWzJdLGM9c1sxXStzWzNdO3N3aXRjaChBLmJvcmRlci5oYW5kKXtjYXNlImV2ZW4iOmctPXRbMF0vMixvLT10WzNdLzIsbj1gY2FsYygxMDAlICsgJHsodFsxXSt0WzNdKS8yLWN9cHgpYCxyPWBjYWxjKDEwMCUgKyAkeyh0WzBdK3RbMl0pLzItSX1weClgO2JyZWFrO2Nhc2UibGVmdCI6Zy09dFswXSxvLT10WzNdLG49YGNhbGMoMTAwJSArICR7dFsxXSt0WzNdLWN9cHgpYCxyPWBjYWxjKDEwMCUgKyAke3RbMF0rdFsyXS1JfXB4KWA7YnJlYWs7Y2FzZSJyaWdodCI6bj1jP2BjYWxjKDEwMCUgLSAke2N9cHgpYDoiMTAwJSIscj1JP2BjYWxjKDEwMCUgLSAke0l9cHgpYDoiMTAwJSJ9Y29uc3QgaD1bInhmYUJvcmRlciJdO1RjKEEuYm9yZGVyKSYmaC5wdXNoKCJ4ZmFQcmludE9ubHkiKTtjb25zdCBDPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOmgsc3R5bGU6e3RvcDpgJHtnfXB4YCxsZWZ0OmAke299cHhgLHdpZHRoOm4saGVpZ2h0OnJ9fSxjaGlsZHJlbjpbXX07Zm9yKGNvbnN0IEEgb2ZbImJvcmRlciIsImJvcmRlcldpZHRoIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTdHlsZSJdKXZvaWQgMCE9PWlbQV0mJihDLmF0dHJpYnV0ZXMuc3R5bGVbQV09aVtBXSxkZWxldGUgaVtBXSk7YS5jaGlsZHJlbi5wdXNoKEMsZSl9ZWxzZSBhLmNoaWxkcmVuLnB1c2goZSk7Zm9yKGNvbnN0IEEgb2ZbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kQ2xpcCIsInRvcCIsImxlZnQiLCJ3aWR0aCIsImhlaWdodCIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwibWF4V2lkdGgiLCJtYXhIZWlnaHQiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ2aXNpYmlsaXR5Il0pdm9pZCAwIT09aVtBXSYmKGEuYXR0cmlidXRlcy5zdHlsZVtBXT1pW0FdLGRlbGV0ZSBpW0FdKTtyZXR1cm4gYS5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI9PT1pLnBvc2l0aW9uPyJhYnNvbHV0ZSI6InJlbGF0aXZlIixkZWxldGUgaS5wb3NpdGlvbixpLmFsaWduU2VsZiYmKGEuYXR0cmlidXRlcy5zdHlsZS5hbGlnblNlbGY9aS5hbGlnblNlbGYsZGVsZXRlIGkuYWxpZ25TZWxmKSxhfWZ1bmN0aW9uIEtjKEEpe2NvbnN0IGU9WUkoQS50ZXh0SW5kZW50LCIwcHgiKTtpZihlPj0wKXJldHVybjtjb25zdCB0PSJwYWRkaW5nIisoImxlZnQiPT0oInJpZ2h0Ij09PUEudGV4dEFsaWduPyJyaWdodCI6ImxlZnQiKT8iTGVmdCI6IlJpZ2h0IiksaT1ZSShBW3RdLCIwcHgiKTtBW3RdPWktZSsicHgifWZ1bmN0aW9uIHFjKEEsZSl7c3dpdGNoKEEuYWNjZXNzKXtjYXNlIm5vbkludGVyYWN0aXZlIjplLnB1c2goInhmYU5vbkludGVyYWN0aXZlIik7YnJlYWs7Y2FzZSJyZWFkT25seSI6ZS5wdXNoKCJ4ZmFSZWFkT25seSIpO2JyZWFrO2Nhc2UicHJvdGVjdGVkIjplLnB1c2goInhmYURpc2FibGVkIil9fWZ1bmN0aW9uIFRjKEEpe3JldHVybiBBLnJlbGV2YW50Lmxlbmd0aD4wJiYhQS5yZWxldmFudFswXS5leGNsdWRlZCYmInByaW50Ij09PUEucmVsZXZhbnRbMF0udmlld25hbWV9ZnVuY3Rpb24gUGMoQSl7Y29uc3QgZT1BW1dvXSgpW0ZvXS5wYXJhU3RhY2s7cmV0dXJuIGUubGVuZ3RoP2UuYXQoLTEpOm51bGx9ZnVuY3Rpb24gV2MoQSxlLHQpe2lmKHQuYXR0cmlidXRlcy5jbGFzcz8uaW5jbHVkZXMoInhmYVJpY2giKSl7ZSYmKCIiPT09QS5oJiYoZS5oZWlnaHQ9ImF1dG8iKSwiIj09PUEudyYmKGUud2lkdGg9ImF1dG8iKSk7Y29uc3QgaT1QYyhBKTtpZihpKXtjb25zdCBBPXQuYXR0cmlidXRlcy5zdHlsZTtzd2l0Y2goQS5kaXNwbGF5PSJmbGV4IixBLmZsZXhEaXJlY3Rpb249ImNvbHVtbiIsaS52QWxpZ24pe2Nhc2UidG9wIjpBLmp1c3RpZnlDb250ZW50PSJzdGFydCI7YnJlYWs7Y2FzZSJib3R0b20iOkEuanVzdGlmeUNvbnRlbnQ9ImVuZCI7YnJlYWs7Y2FzZSJtaWRkbGUiOkEuanVzdGlmeUNvbnRlbnQ9ImNlbnRlciJ9Y29uc3QgZT1pW0ZJXSgpO2Zvcihjb25zdFt0LGldb2YgT2JqZWN0LmVudHJpZXMoZSkpdCBpbiBBfHwoQVt0XT1pKX19fWZ1bmN0aW9uIE9jKEEsZSx0LGkpe2lmKCF0KXJldHVybiB2b2lkIGRlbGV0ZSBpLmZvbnRGYW1pbHk7Y29uc3QgYT1VSShBLnR5cGVmYWNlKTtpLmZvbnRGYW1pbHk9YCIke2F9ImA7Y29uc3Qgcz10LmZpbmQoYSk7aWYocyl7Y29uc3R7Zm9udEZhbWlseTp0fT1zLnJlZ3VsYXIuY3NzRm9udEluZm87dCE9PWEmJihpLmZvbnRGYW1pbHk9YCIke3R9ImApO2NvbnN0IG49UGMoZSk7aWYobiYmIiIhPT1uLmxpbmVIZWlnaHQpcmV0dXJuO2lmKGkubGluZUhlaWdodClyZXR1cm47Y29uc3Qgcj1QSShBLHMpO3ImJihpLmxpbmVIZWlnaHQ9TWF0aC5tYXgoMS4yLHIubGluZUhlaWdodCkpfX1mdW5jdGlvbiBaYyhBKXtjb25zdCBlPUooQSxudWxsLHthZGREZWZhdWx0UHJvdG9jb2w6ITAsdHJ5Q29udmVydEVuY29kaW5nOiEwfSk7cmV0dXJuIGU/ZS5ocmVmOm51bGx9ZnVuY3Rpb24gamMoQSxlKXtyZXR1cm57bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbImxyLXRiIj09PUEubGF5b3V0PyJ4ZmFMciI6InhmYVJsIl19LGNoaWxkcmVuOmV9fWZ1bmN0aW9uIFhjKEEpe2lmKCFBW0ZvXSlyZXR1cm4gbnVsbDtjb25zdCBlPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6QVtGb10uYXR0cmlidXRlcyxjaGlsZHJlbjpBW0ZvXS5jaGlsZHJlbn07aWYoQVtGb10uZmFpbGluZ05vZGUpe2NvbnN0IHQ9QVtGb10uZmFpbGluZ05vZGVbUm9dKCk7dCYmKEEubGF5b3V0LmVuZHNXaXRoKCItdGIiKT9lLmNoaWxkcmVuLnB1c2goamMoQSxbdF0pKTplLmNoaWxkcmVuLnB1c2godCkpfXJldHVybiAwPT09ZS5jaGlsZHJlbi5sZW5ndGg/bnVsbDplfWZ1bmN0aW9uIFZjKEEsZSx0KXtjb25zdCBpPUFbRm9dLGE9aS5hdmFpbGFibGVTcGFjZSxbcyxuLHIsZ109dDtzd2l0Y2goQS5sYXlvdXQpe2Nhc2UicG9zaXRpb24iOmkud2lkdGg9TWF0aC5tYXgoaS53aWR0aCxzK3IpLGkuaGVpZ2h0PU1hdGgubWF4KGkuaGVpZ2h0LG4rZyksaS5jaGlsZHJlbi5wdXNoKGUpO2JyZWFrO2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOmkubGluZSYmMSE9PWkuYXR0ZW1wdHx8KGkubGluZT1qYyhBLFtdKSxpLmNoaWxkcmVuLnB1c2goaS5saW5lKSxpLm51bWJlckluTGluZT0wKSxpLm51bWJlckluTGluZSs9MSxpLmxpbmUuY2hpbGRyZW4ucHVzaChlKSwwPT09aS5hdHRlbXB0PyhpLmN1cnJlbnRXaWR0aCs9cixpLmhlaWdodD1NYXRoLm1heChpLmhlaWdodCxpLnByZXZIZWlnaHQrZykpOihpLmN1cnJlbnRXaWR0aD1yLGkucHJldkhlaWdodD1pLmhlaWdodCxpLmhlaWdodCs9ZyxpLmF0dGVtcHQ9MCksaS53aWR0aD1NYXRoLm1heChpLndpZHRoLGkuY3VycmVudFdpZHRoKTticmVhaztjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOntpLmNoaWxkcmVuLnB1c2goZSksaS53aWR0aCs9cixpLmhlaWdodD1NYXRoLm1heChpLmhlaWdodCxnKTtjb25zdCBBPUdjKGkuaGVpZ2h0KTtmb3IoY29uc3QgZSBvZiBpLmNoaWxkcmVuKWUuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9QTticmVha31jYXNlInRhYmxlIjpjYXNlInRiIjppLndpZHRoPU1hdGgubWluKGEud2lkdGgsTWF0aC5tYXgoaS53aWR0aCxyKSksaS5oZWlnaHQrPWcsaS5jaGlsZHJlbi5wdXNoKGUpfX1mdW5jdGlvbiBfYyhBKXtjb25zdCBlPUFbRm9dLmF2YWlsYWJsZVNwYWNlLHQ9QS5tYXJnaW4/QS5tYXJnaW4udG9wSW5zZXQrQS5tYXJnaW4uYm90dG9tSW5zZXQ6MCxpPUEubWFyZ2luP0EubWFyZ2luLmxlZnRJbnNldCtBLm1hcmdpbi5yaWdodEluc2V0OjA7c3dpdGNoKEEubGF5b3V0KXtjYXNlImxyLXRiIjpjYXNlInJsLXRiIjpyZXR1cm4gMD09PUFbRm9dLmF0dGVtcHQ/e3dpZHRoOmUud2lkdGgtaS1BW0ZvXS5jdXJyZW50V2lkdGgsaGVpZ2h0OmUuaGVpZ2h0LXQtQVtGb10ucHJldkhlaWdodH06e3dpZHRoOmUud2lkdGgtaSxoZWlnaHQ6ZS5oZWlnaHQtdC1BW0ZvXS5oZWlnaHR9O2Nhc2Uicmwtcm93IjpjYXNlInJvdyI6cmV0dXJue3dpZHRoOkFbRm9dLmNvbHVtbldpZHRocy5zbGljZShBW0ZvXS5jdXJyZW50Q29sdW1uKS5yZWR1Y2UoKChBLGUpPT5BK2UpKSxoZWlnaHQ6ZS5oZWlnaHQtaX07Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJue3dpZHRoOmUud2lkdGgtaSxoZWlnaHQ6ZS5oZWlnaHQtdC1BW0ZvXS5oZWlnaHR9O2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIHpjKEEsZSl7aWYobnVsbD09PUFbV29dKClbRm9dLmZpcnN0VW5zcGxpdHRhYmxlKXJldHVybiEwO2lmKDA9PT1BLnd8fDA9PT1BLmgpcmV0dXJuITA7Y29uc3QgdD1BW1RvXSgpLGk9dFtGb10/LmF0dGVtcHR8fDAsWyxhLHMsbl09ZnVuY3Rpb24oQSl7bGV0IGUsdCxpPSIiPT09QS53P05hTjpBLncsYT0iIj09PUEuaD9OYU46QS5oLFtzLG5dPVswLDBdO3N3aXRjaChBLmFuY2hvclR5cGV8fCIiKXtjYXNlImJvdHRvbUNlbnRlciI6W3Msbl09W2kvMixhXTticmVhaztjYXNlImJvdHRvbUxlZnQiOltzLG5dPVswLGFdO2JyZWFrO2Nhc2UiYm90dG9tUmlnaHQiOltzLG5dPVtpLGFdO2JyZWFrO2Nhc2UibWlkZGxlQ2VudGVyIjpbcyxuXT1baS8yLGEvMl07YnJlYWs7Y2FzZSJtaWRkbGVMZWZ0IjpbcyxuXT1bMCxhLzJdO2JyZWFrO2Nhc2UibWlkZGxlUmlnaHQiOltzLG5dPVtpLGEvMl07YnJlYWs7Y2FzZSJ0b3BDZW50ZXIiOltzLG5dPVtpLzIsMF07YnJlYWs7Y2FzZSJ0b3BSaWdodCI6W3Msbl09W2ksMF19c3dpdGNoKEEucm90YXRlfHwwKXtjYXNlIDA6W2UsdF09Wy1zLC1uXTticmVhaztjYXNlIDkwOltlLHRdPVstbixzXSxbaSxhXT1bYSwtaV07YnJlYWs7Y2FzZSAxODA6W2UsdF09W3Msbl0sW2ksYV09Wy1pLC1hXTticmVhaztjYXNlIDI3MDpbZSx0XT1bbiwtc10sW2ksYV09Wy1hLGldfXJldHVybltBLngrZStNYXRoLm1pbigwLGkpLEEueSt0K01hdGgubWluKDAsYSksTWF0aC5hYnMoaSksTWF0aC5hYnMoYSldfShBKTtzd2l0Y2godC5sYXlvdXQpe2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOnJldHVybiAwPT09aT9BW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmU/IiIhPT1BLnc/TWF0aC5yb3VuZChzLWUud2lkdGgpPD0yOmUud2lkdGg+MjohKCIiIT09QS5oJiZNYXRoLnJvdW5kKG4tZS5oZWlnaHQpPjIpJiYoIiIhPT1BLnc/TWF0aC5yb3VuZChzLWUud2lkdGgpPD0yfHwwPT09dFtGb10ubnVtYmVySW5MaW5lJiZlLmhlaWdodD4yOmUud2lkdGg+Mik6ISFBW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmV8fCEoIiIhPT1BLmgmJk1hdGgucm91bmQobi1lLmhlaWdodCk+MikmJigiIj09PUEud3x8TWF0aC5yb3VuZChzLWUud2lkdGgpPD0yfHwhdFtpSV0oKSkmJmUuaGVpZ2h0PjI7Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJuISFBW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmV8fCgiIj09PUEuaHx8QVt0SV0oKT8oIiI9PT1BLnd8fE1hdGgucm91bmQocy1lLndpZHRoKTw9Mnx8IXRbaUldKCkpJiZlLmhlaWdodD4yOk1hdGgucm91bmQobi1lLmhlaWdodCk8PTIpO2Nhc2UicG9zaXRpb24iOnJldHVybiEhQVtXb10oKVtGb10ubm9MYXlvdXRGYWlsdXJlfHwoIiI9PT1BLmh8fE1hdGgucm91bmQobithLWUuaGVpZ2h0KTw9Mnx8bithPkFbV29dKClbRm9dLmN1cnJlbnRDb250ZW50QXJlYS5oKTtjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOnJldHVybiEhQVtXb10oKVtGb10ubm9MYXlvdXRGYWlsdXJlfHwiIj09PUEuaHx8TWF0aC5yb3VuZChuLWUuaGVpZ2h0KTw9MjtkZWZhdWx0OnJldHVybiEwfX1jb25zdCAkYz1HSS50ZW1wbGF0ZS5pZCxBaD0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGVoPS9eSChcZCspJC8sdGg9bmV3IFNldChbImltYWdlL2dpZiIsImltYWdlL2pwZWciLCJpbWFnZS9qcGciLCJpbWFnZS9wanBlZyIsImltYWdlL3BuZyIsImltYWdlL2FwbmciLCJpbWFnZS94LXBuZyIsImltYWdlL2JtcCIsImltYWdlL3gtbXMtYm1wIiwiaW1hZ2UvdGlmZiIsImltYWdlL3RpZiIsImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJdKSxpaD1bW1s2Niw3N10sImltYWdlL2JtcCJdLFtbMjU1LDIxNiwyNTVdLCJpbWFnZS9qcGVnIl0sW1s3Myw3Myw0MiwwXSwiaW1hZ2UvdGlmZiJdLFtbNzcsNzcsMCw0Ml0sImltYWdlL3RpZmYiXSxbWzcxLDczLDcwLDU2LDU3LDk3XSwiaW1hZ2UvZ2lmIl0sW1sxMzcsODAsNzgsNzEsMTMsMTAsMjYsMTBdLCJpbWFnZS9wbmciXV07ZnVuY3Rpb24gYWgoQSl7aWYoIUF8fCFBLmJvcmRlcilyZXR1cm57dzowLGg6MH07Y29uc3QgZT1BLmJvcmRlcltIb10oKTtyZXR1cm4gZT97dzplLndpZHRoc1swXStlLndpZHRoc1syXStlLmluc2V0c1swXStlLmluc2V0c1syXSxoOmUud2lkdGhzWzFdK2Uud2lkdGhzWzNdK2UuaW5zZXRzWzFdK2UuaW5zZXRzWzNdfTp7dzowLGg6MH19ZnVuY3Rpb24gc2goQSl7cmV0dXJuIEEubWFyZ2luJiYoQS5tYXJnaW4udG9wSW5zZXR8fEEubWFyZ2luLnJpZ2h0SW5zZXR8fEEubWFyZ2luLmJvdHRvbUluc2V0fHxBLm1hcmdpbi5sZWZ0SW5zZXQpfWZ1bmN0aW9uIG5oKEEsZSl7aWYoIUEudmFsdWUpe2NvbnN0IGU9bmV3IGZCKHt9KTtBW0VvXShlKSxBLnZhbHVlPWV9QS52YWx1ZVttSV0oZSl9ZnVuY3Rpb24qcmgoQSl7Zm9yKGNvbnN0IGUgb2YgQVt2b10oKSllIGluc3RhbmNlb2YgbkI/eWllbGQqZVtLb10oKTp5aWVsZCBlfWZ1bmN0aW9uIGdoKEEpe3JldHVybiJlcnJvciI9PT1BLnZhbGlkYXRlPy5udWxsVGVzdH1mdW5jdGlvbiBvaChBKXtmb3IoO0E7KXtpZighQS50cmF2ZXJzYWwpcmV0dXJuIHZvaWQoQVt5SV09QVtQb10oKVt5SV0pO2lmKEFbeUldKXJldHVybjtsZXQgZT1udWxsO2Zvcihjb25zdCB0IG9mIEEudHJhdmVyc2FsW3ZvXSgpKWlmKCJuZXh0Ij09PXQub3BlcmF0aW9uKXtlPXQ7YnJlYWt9aWYoIWV8fCFlLnJlZilyZXR1cm4gdm9pZChBW3lJXT1BW1BvXSgpW3lJXSk7Y29uc3QgdD1BW1dvXSgpO0FbeUldPSsrdFt5SV07Y29uc3QgaT10W2RJXShlLnJlZixBKTtpZighaSlyZXR1cm47QT1pWzBdfX1mdW5jdGlvbiBJaChBLGUpe2NvbnN0IHQ9QS5hc3Npc3Q7aWYodCl7Y29uc3QgQT10W2JJXSgpO0EmJihlLnRpdGxlPUEpO2NvbnN0IGk9dC5yb2xlLm1hdGNoKGVoKTtpZihpKXtjb25zdCBBPSJoZWFkaW5nIix0PWlbMV07ZS5yb2xlPUEsZVsiYXJpYS1sZXZlbCJdPXR9fWlmKCJ0YWJsZSI9PT1BLmxheW91dCllLnJvbGU9InRhYmxlIjtlbHNlIGlmKCJyb3ciPT09QS5sYXlvdXQpZS5yb2xlPSJyb3ciO2Vsc2V7Y29uc3QgdD1BW1BvXSgpOyJyb3ciPT09dC5sYXlvdXQmJihlLnJvbGU9IlRIIj09PXQuYXNzaXN0Py5yb2xlPyJjb2x1bW5oZWFkZXIiOiJjZWxsIil9fWZ1bmN0aW9uIGNoKEEpe2lmKCFBLmFzc2lzdClyZXR1cm4gbnVsbDtjb25zdCBlPUEuYXNzaXN0O3JldHVybiBlLnNwZWFrJiYiIiE9PWUuc3BlYWtbRG9dP2Uuc3BlYWtbRG9dOmUudG9vbFRpcD9lLnRvb2xUaXBbRG9dOm51bGx9ZnVuY3Rpb24gaGgoQSl7cmV0dXJuIHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFSaWNoIl0sc3R5bGU6T2JqZWN0LmNyZWF0ZShudWxsKX0sY2hpbGRyZW46W3tuYW1lOiJzcGFuIixhdHRyaWJ1dGVzOntzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSx2YWx1ZTpBfV19KX1mdW5jdGlvbiBDaChBKXtjb25zdCBlPUFbV29dKCk7bnVsbD09PWVbRm9dLmZpcnN0VW5zcGxpdHRhYmxlJiYoZVtGb10uZmlyc3RVbnNwbGl0dGFibGU9QSxlW0ZvXS5ub0xheW91dEZhaWx1cmU9ITApfWZ1bmN0aW9uIEJoKEEpe2NvbnN0IGU9QVtXb10oKTtlW0ZvXS5maXJzdFVuc3BsaXR0YWJsZT09PUEmJihlW0ZvXS5ub0xheW91dEZhaWx1cmU9ITEpfWZ1bmN0aW9uIGxoKEEpe2lmKEFbRm9dKXJldHVybiExO2lmKEFbRm9dPU9iamVjdC5jcmVhdGUobnVsbCksImF1dG8iPT09QS50YXJnZXRUeXBlKXJldHVybiExO2NvbnN0IGU9QVtXb10oKTtsZXQgdD1udWxsO2lmKEEudGFyZ2V0KXtpZih0PWVbZEldKEEudGFyZ2V0LEFbUG9dKCkpLCF0KXJldHVybiExO3Q9dFswXX1jb25zdHtjdXJyZW50UGFnZUFyZWE6aSxjdXJyZW50Q29udGVudEFyZWE6YX09ZVtGb107aWYoInBhZ2VBcmVhIj09PUEudGFyZ2V0VHlwZSlyZXR1cm4gdCBpbnN0YW5jZW9mIFlDfHwodD1udWxsKSxBLnN0YXJ0TmV3PyhBW0ZvXS50YXJnZXQ9dHx8aSwhMCk6ISghdHx8dD09PWl8fChBW0ZvXS50YXJnZXQ9dCwwKSk7dCBpbnN0YW5jZW9mIHZofHwodD1udWxsKTtjb25zdCBzPXQmJnRbUG9dKCk7bGV0IG4scj1zO2lmKEEuc3RhcnROZXcpaWYodCl7Y29uc3QgQT1zLmNvbnRlbnRBcmVhLmNoaWxkcmVuLGU9QS5pbmRleE9mKGEpLGk9QS5pbmRleE9mKHQpOy0xIT09ZSYmZTxpJiYocj1udWxsKSxuPWktMX1lbHNlIG49aS5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKGEpO2Vsc2V7aWYoIXR8fHQ9PT1hKXJldHVybiExO249cy5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKHQpLTEscj1zPT09aT9udWxsOnN9cmV0dXJuIEFbRm9dLnRhcmdldD1yLEFbRm9dLmluZGV4PW4sITB9ZnVuY3Rpb24gUWgoQSxlLHQpe2NvbnN0IGk9QVtXb10oKSxhPWlbRm9dLm5vTGF5b3V0RmFpbHVyZSxzPWVbVG9dO2VbVG9dPSgpPT5BLGlbRm9dLm5vTGF5b3V0RmFpbHVyZT0hMDtjb25zdCBuPWVbYkldKHQpO0FbUW9dKG4uaHRtbCxuLmJib3gpLGlbRm9dLm5vTGF5b3V0RmFpbHVyZT1hLGVbVG9dPXN9Y2xhc3MgRWggZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiYXBwZWFyYW5jZUZpbHRlciIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyB1aCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJhcmMiLCEwKSx0aGlzLmNpcmN1bGFyPU1JKHtkYXRhOkEuY2lyY3VsYXIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmhhbmQ9SEkoQS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMuc3RhcnRBbmdsZT1MSSh7ZGF0YTpBLnN0YXJ0QW5nbGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLnN3ZWVwQW5nbGU9TEkoe2RhdGE6QS5zd2VlcEFuZ2xlLGRlZmF1bHRWYWx1ZTozNjAsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5lZGdlPW51bGwsdGhpcy5maWxsPW51bGx9W2JJXSgpe2NvbnN0IEE9dGhpcy5lZGdlfHxuZXcgX2goe30pLGU9QVtGSV0oKSx0PU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IGk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZT9PYmplY3QuYXNzaWduKHQsdGhpcy5maWxsW0ZJXSgpKTp0LmZpbGw9InRyYW5zcGFyZW50Iix0LnN0cm9rZVdpZHRoPUdjKCJ2aXNpYmxlIj09PUEucHJlc2VuY2U/QS50aGlja25lc3M6MCksdC5zdHJva2U9ZS5jb2xvcjtjb25zdCBhPXt4bWxuczpBaCxzdHlsZTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb3ZlcmZsb3c6InZpc2libGUifX07aWYoMzYwPT09dGhpcy5zd2VlcEFuZ2xlKWk9e25hbWU6ImVsbGlwc2UiLGF0dHJpYnV0ZXM6e3htbG5zOkFoLGN4OiI1MCUiLGN5OiI1MCUiLHJ4OiI1MCUiLHJ5OiI1MCUiLHN0eWxlOnR9fTtlbHNle2NvbnN0IEE9dGhpcy5zdGFydEFuZ2xlKk1hdGguUEkvMTgwLGU9dGhpcy5zd2VlcEFuZ2xlKk1hdGguUEkvMTgwLHM9dGhpcy5zd2VlcEFuZ2xlPjE4MD8xOjAsW24scixnLG9dPVs1MCooMStNYXRoLmNvcyhBKSksNTAqKDEtTWF0aC5zaW4oQSkpLDUwKigxK01hdGguY29zKEErZSkpLDUwKigxLU1hdGguc2luKEErZSkpXTtpPXtuYW1lOiJwYXRoIixhdHRyaWJ1dGVzOnt4bWxuczpBaCxkOmBNICR7bn0gJHtyfSBBIDUwIDUwIDAgJHtzfSAwICR7Z30gJHtvfWAsdmVjdG9yRWZmZWN0OiJub24tc2NhbGluZy1zdHJva2UiLHN0eWxlOnR9fSxPYmplY3QuYXNzaWduKGEse3ZpZXdCb3g6IjAgMCAxMDAgMTAwIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pfWNvbnN0IHM9e25hbWU6InN2ZyIsY2hpbGRyZW46W2ldLGF0dHJpYnV0ZXM6YX07cmV0dXJuIHNoKHRoaXNbUG9dKClbUG9dKCkpP3FJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7c3R5bGU6e2Rpc3BsYXk6ImlubGluZSIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSJ9fSxjaGlsZHJlbjpbc119KToocy5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIscUkuc3VjY2VzcyhzKSl9fWNsYXNzIGRoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImFyZWEiLCEwKSx0aGlzLmNvbFNwYW49TUkoe2RhdGE6QS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PkE+PTF8fC0xPT09QX0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yZWxldmFudD1LSShBLnJlbGV2YW50KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5kZXNjPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLmFyZWE9bmV3IG1jLHRoaXMuZHJhdz1uZXcgbWMsdGhpcy5leE9iamVjdD1uZXcgbWMsdGhpcy5leGNsR3JvdXA9bmV3IG1jLHRoaXMuZmllbGQ9bmV3IG1jLHRoaXMuc3ViZm9ybT1uZXcgbWMsdGhpcy5zdWJmb3JtU2V0PW5ldyBtY30qW0tvXSgpe3lpZWxkKnJoKHRoaXMpfVthSV0oKXtyZXR1cm4hMH1bem9dKCl7cmV0dXJuITB9W1FvXShBLGUpe2NvbnN0W3QsaSxhLHNdPWU7dGhpc1tGb10ud2lkdGg9TWF0aC5tYXgodGhpc1tGb10ud2lkdGgsdCthKSx0aGlzW0ZvXS5oZWlnaHQ9TWF0aC5tYXgodGhpc1tGb10uaGVpZ2h0LGkrcyksdGhpc1tGb10uY2hpbGRyZW4ucHVzaChBKX1beG9dKCl7cmV0dXJuIHRoaXNbRm9dLmF2YWlsYWJsZVNwYWNlfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJwb3NpdGlvbiIpLHQ9e3N0eWxlOmUsaWQ6dGhpc1tTSV0sY2xhc3M6WyJ4ZmFBcmVhIl19O1RjKHRoaXMpJiZ0LmNsYXNzLnB1c2goInhmYVByaW50T25seSIpLHRoaXMubmFtZSYmKHQueGZhTmFtZT10aGlzLm5hbWUpO2NvbnN0IGk9W107dGhpc1tGb109e2NoaWxkcmVuOmksd2lkdGg6MCxoZWlnaHQ6MCxhdmFpbGFibGVTcGFjZTpBfTtjb25zdCBhPXRoaXNbdW9dKHtmaWx0ZXI6bmV3IFNldChbImFyZWEiLCJkcmF3IiwiZmllbGQiLCJleGNsR3JvdXAiLCJzdWJmb3JtIiwic3ViZm9ybVNldCJdKSxpbmNsdWRlOiEwfSk7aWYoIWEuc3VjY2VzcylyZXR1cm4gYS5pc0JyZWFrKCk/YTooZGVsZXRlIHRoaXNbRm9dLHFJLkZBSUxVUkUpO2Uud2lkdGg9R2ModGhpc1tGb10ud2lkdGgpLGUuaGVpZ2h0PUdjKHRoaXNbRm9dLmhlaWdodCk7Y29uc3Qgcz17bmFtZToiZGl2IixhdHRyaWJ1dGVzOnQsY2hpbGRyZW46aX0sbj1bdGhpcy54LHRoaXMueSx0aGlzW0ZvXS53aWR0aCx0aGlzW0ZvXS5oZWlnaHRdO3JldHVybiBkZWxldGUgdGhpc1tGb10scUkuc3VjY2VzcyhzLG4pfX1jbGFzcyBmaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJhc3Npc3QiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucm9sZT1BLnJvbGV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnNwZWFrPW51bGwsdGhpcy50b29sVGlwPW51bGx9W2JJXSgpe3JldHVybiB0aGlzLnRvb2xUaXA/LltEb118fG51bGx9fWNsYXNzIHBoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJhcmNvZGUiLCEwKSx0aGlzLmNoYXJFbmNvZGluZz1KSSh7ZGF0YTpBLmNoYXJFbmNvZGluZz9BLmNoYXJFbmNvZGluZy50b0xvd2VyQ2FzZSgpOiIiLGRlZmF1bHRWYWx1ZToiIix2YWxpZGF0ZTpBPT5bInV0Zi04IiwiYmlnLWZpdmUiLCJmb250c3BlY2lmaWMiLCJnYmsiLCJnYi0xODAzMCIsImdiLTIzMTIiLCJrc2MtNTYwMSIsIm5vbmUiLCJzaGlmdC1qaXMiLCJ1Y3MtMiIsInV0Zi0xNiJdLmluY2x1ZGVzKEEpfHxBLm1hdGNoKC9pc28tODg1OS1cZHsyfS8pfSksdGhpcy5jaGVja3N1bT1ISShBLmNoZWNrc3VtLFsibm9uZSIsIjFtb2QxMCIsIjFtb2QxMF8xbW9kMTEiLCIybW9kMTAiLCJhdXRvIl0pLHRoaXMuZGF0YUNvbHVtbkNvdW50PU1JKHtkYXRhOkEuZGF0YUNvbHVtbkNvdW50LGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTpBPT5BPj0wfSksdGhpcy5kYXRhTGVuZ3RoPU1JKHtkYXRhOkEuZGF0YUxlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMuZGF0YVByZXA9SEkoQS5kYXRhUHJlcCxbIm5vbmUiLCJmbGF0ZUNvbXByZXNzIl0pLHRoaXMuZGF0YVJvd0NvdW50PU1JKHtkYXRhOkEuZGF0YVJvd0NvdW50LGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTpBPT5BPj0wfSksdGhpcy5lbmRDaGFyPUEuZW5kQ2hhcnx8IiIsdGhpcy5lcnJvckNvcnJlY3Rpb25MZXZlbD1NSSh7ZGF0YTpBLmVycm9yQ29ycmVjdGlvbkxldmVsLGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTpBPT5BPj0wJiZBPD04fSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm1vZHVsZUhlaWdodD1ZSShBLm1vZHVsZUhlaWdodCwiNW1tIiksdGhpcy5tb2R1bGVXaWR0aD1ZSShBLm1vZHVsZVdpZHRoLCIwLjI1bW0iKSx0aGlzLnByaW50Q2hlY2tEaWdpdD1NSSh7ZGF0YTpBLnByaW50Q2hlY2tEaWdpdCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QX0pLHRoaXMucm93Q29sdW1uUmF0aW89dkkoQS5yb3dDb2x1bW5SYXRpbyksdGhpcy5zdGFydENoYXI9QS5zdGFydENoYXJ8fCIiLHRoaXMudGV4dExvY2F0aW9uPUhJKEEudGV4dExvY2F0aW9uLFsiYmVsb3ciLCJhYm92ZSIsImFib3ZlRW1iZWRkZWQiLCJiZWxvd0VtYmVkZGVkIiwibm9uZSJdKSx0aGlzLnRydW5jYXRlPU1JKHtkYXRhOkEudHJ1bmNhdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnR5cGU9SEkoQS50eXBlP0EudHlwZS50b0xvd2VyQ2FzZSgpOiIiLFsiYXp0ZWMiLCJjb2RhYmFyIiwiY29kZTJvZjVpbmR1c3RyaWFsIiwiY29kZTJvZjVpbnRlcmxlYXZlZCIsImNvZGUyb2Y1bWF0cml4IiwiY29kZTJvZjVzdGFuZGFyZCIsImNvZGUzb2Y5IiwiY29kZTNvZjlleHRlbmRlZCIsImNvZGUxMSIsImNvZGU0OSIsImNvZGU5MyIsImNvZGUxMjgiLCJjb2RlMTI4YSIsImNvZGUxMjhiIiwiY29kZTEyOGMiLCJjb2RlMTI4c3NjYyIsImRhdGFtYXRyaXgiLCJlYW44IiwiZWFuOGFkZDIiLCJlYW44YWRkNSIsImVhbjEzIiwiZWFuMTNhZGQyIiwiZWFuMTNhZGQ1IiwiZWFuMTNwd2NkIiwiZmltIiwibG9nbWFycyIsIm1heGljb2RlIiwibXNpIiwicGRmNDE3IiwicGRmNDE3bWFjcm8iLCJwbGVzc2V5IiwicG9zdGF1c2N1c3QyIiwicG9zdGF1c2N1c3QzIiwicG9zdGF1c3JlcGx5cGFpZCIsInBvc3RhdXNzdGFuZGFyZCIsInBvc3R1a3JtNHNjYyIsInBvc3R1c2RwYmMiLCJwb3N0dXNpbWIiLCJwb3N0dXNzdGFuZGFyZCIsInBvc3R1czV6aXAiLCJxcmNvZGUiLCJyZmlkIiwicnNzMTQiLCJyc3MxNGV4cGFuZGVkIiwicnNzMTRsaW1pdGVkIiwicnNzMTRzdGFja2VkIiwicnNzMTRzdGFja2Vkb21uaSIsInJzczE0dHJ1bmNhdGVkIiwidGVsZXBlbiIsInVjYzEyOCIsInVjYzEyOHJhbmRvbSIsInVjYzEyOHNzY2MiLCJ1cGNhIiwidXBjYWFkZDIiLCJ1cGNhYWRkNSIsInVwY2Fwd2NkIiwidXBjZSIsInVwY2VhZGQyIiwidXBjZWFkZDUiLCJ1cGNlYW4yIiwidXBjZWFuNSIsInVwc21heGljb2RlIl0pLHRoaXMudXBzTW9kZT1ISShBLnVwc01vZGUsWyJ1c0NhcnJpZXIiLCJpbnRlcm5hdGlvbmFsQ2FycmllciIsInNlY3VyZVN5bWJvbCIsInN0YW5kYXJkU3ltYm9sIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLndpZGVOYXJyb3dSYXRpbz12SShBLndpZGVOYXJyb3dSYXRpbyksdGhpcy5lbmNyeXB0PW51bGwsdGhpcy5leHRyYXM9bnVsbH19Y2xhc3MgbWggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiYmluZCIsITApLHRoaXMubWF0Y2g9SEkoQS5tYXRjaCxbIm9uY2UiLCJkYXRhUmVmIiwiZ2xvYmFsIiwibm9uZSJdKSx0aGlzLnJlZj1BLnJlZnx8IiIsdGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIHloIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJpbmRJdGVtcyIpLHRoaXMuY29ubmVjdGlvbj1BLmNvbm5lY3Rpb258fCIiLHRoaXMubGFiZWxSZWY9QS5sYWJlbFJlZnx8IiIsdGhpcy5yZWY9QS5yZWZ8fCIiLHRoaXMudmFsdWVSZWY9QS52YWx1ZVJlZnx8IiJ9fWNsYXNzIHdoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJvb2tlbmQiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubGVhZGVyPUEubGVhZGVyfHwiIix0aGlzLnRyYWlsZXI9QS50cmFpbGVyfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIERoIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJvb2xlYW4iKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bYkldKEEpe3JldHVybiBoaCgxPT09dGhpc1tEb10/IjEiOiIwIil9fWNsYXNzIGJoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJvcmRlciIsITApLHRoaXMuYnJlYWs9SEkoQS5icmVhayxbImNsb3NlIiwib3BlbiJdKSx0aGlzLmhhbmQ9SEkoQS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvcm5lcj1uZXcgbWMoNCksdGhpcy5lZGdlPW5ldyBtYyg0KSx0aGlzLmV4dHJhcz1udWxsLHRoaXMuZmlsbD1udWxsLHRoaXMubWFyZ2luPW51bGx9W0hvXSgpe2lmKCF0aGlzW0ZvXSl7Y29uc3QgQT10aGlzLmVkZ2UuY2hpbGRyZW4uc2xpY2UoKTtpZihBLmxlbmd0aDw0KXtjb25zdCBlPUEuYXQoLTEpfHxuZXcgX2goe30pO2ZvcihsZXQgdD1BLmxlbmd0aDt0PDQ7dCsrKUEucHVzaChlKX1jb25zdCBlPUEubWFwKChBPT5BLnRoaWNrbmVzcykpLHQ9WzAsMCwwLDBdO3RoaXMubWFyZ2luJiYodFswXT10aGlzLm1hcmdpbi50b3BJbnNldCx0WzFdPXRoaXMubWFyZ2luLnJpZ2h0SW5zZXQsdFsyXT10aGlzLm1hcmdpbi5ib3R0b21JbnNldCx0WzNdPXRoaXMubWFyZ2luLmxlZnRJbnNldCksdGhpc1tGb109e3dpZHRoczplLGluc2V0czp0LGVkZ2VzOkF9fXJldHVybiB0aGlzW0ZvXX1bRkldKCl7Y29uc3R7ZWRnZXM6QX09dGhpc1tIb10oKSxlPUEubWFwKChBPT57Y29uc3QgZT1BW0ZJXSgpO3JldHVybiBlLmNvbG9yfHw9IiMwMDAwMDAiLGV9KSksdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKHRoaXMubWFyZ2luJiZPYmplY3QuYXNzaWduKHQsdGhpcy5tYXJnaW5bRkldKCkpLCJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2UmJk9iamVjdC5hc3NpZ24odCx0aGlzLmZpbGxbRkldKCkpLHRoaXMuY29ybmVyLmNoaWxkcmVuLnNvbWUoKEE9PjAhPT1BLnJhZGl1cykpKXtjb25zdCBBPXRoaXMuY29ybmVyLmNoaWxkcmVuLm1hcCgoQT0+QVtGSV0oKSkpO2lmKDI9PT1BLmxlbmd0aHx8Mz09PUEubGVuZ3RoKXtjb25zdCBlPUEuYXQoLTEpO2ZvcihsZXQgdD1BLmxlbmd0aDt0PDQ7dCsrKUEucHVzaChlKX10LmJvcmRlclJhZGl1cz1BLm1hcCgoQT0+QS5yYWRpdXMpKS5qb2luKCIgIil9c3dpdGNoKHRoaXMucHJlc2VuY2Upe2Nhc2UiaW52aXNpYmxlIjpjYXNlImhpZGRlbiI6dC5ib3JkZXJTdHlsZT0iIjticmVhaztjYXNlImluYWN0aXZlIjp0LmJvcmRlclN0eWxlPSJub25lIjticmVhaztkZWZhdWx0OnQuYm9yZGVyU3R5bGU9ZS5tYXAoKEE9PkEuc3R5bGUpKS5qb2luKCIgIil9cmV0dXJuIHQuYm9yZGVyV2lkdGg9ZS5tYXAoKEE9PkEud2lkdGgpKS5qb2luKCIgIiksdC5ib3JkZXJDb2xvcj1lLm1hcCgoQT0+QS5jb2xvcikpLmpvaW4oIiAiKSx0fX1jbGFzcyBraCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJicmVhayIsITApLHRoaXMuYWZ0ZXI9SEkoQS5hZnRlcixbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIiwicGFnZUV2ZW4iLCJwYWdlT2RkIl0pLHRoaXMuYWZ0ZXJUYXJnZXQ9QS5hZnRlclRhcmdldHx8IiIsdGhpcy5iZWZvcmU9SEkoQS5iZWZvcmUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSIsInBhZ2VFdmVuIiwicGFnZU9kZCJdKSx0aGlzLmJlZm9yZVRhcmdldD1BLmJlZm9yZVRhcmdldHx8IiIsdGhpcy5ib29rZW5kTGVhZGVyPUEuYm9va2VuZExlYWRlcnx8IiIsdGhpcy5ib29rZW5kVHJhaWxlcj1BLmJvb2tlbmRUcmFpbGVyfHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMub3ZlcmZsb3dMZWFkZXI9QS5vdmVyZmxvd0xlYWRlcnx8IiIsdGhpcy5vdmVyZmxvd1RhcmdldD1BLm92ZXJmbG93VGFyZ2V0fHwiIix0aGlzLm92ZXJmbG93VHJhaWxlcj1BLm92ZXJmbG93VHJhaWxlcnx8IiIsdGhpcy5zdGFydE5ldz1NSSh7ZGF0YTpBLnN0YXJ0TmV3LGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9fWNsYXNzIEZoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJyZWFrQWZ0ZXIiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubGVhZGVyPUEubGVhZGVyfHwiIix0aGlzLnN0YXJ0TmV3PU1JKHtkYXRhOkEuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnRhcmdldD1BLnRhcmdldHx8IiIsdGhpcy50YXJnZXRUeXBlPUhJKEEudGFyZ2V0VHlwZSxbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIl0pLHRoaXMudHJhaWxlcj1BLnRyYWlsZXJ8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnNjcmlwdD1udWxsfX1jbGFzcyBTaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJicmVha0JlZm9yZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sZWFkZXI9QS5sZWFkZXJ8fCIiLHRoaXMuc3RhcnROZXc9TUkoe2RhdGE6QS5zdGFydE5ldyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QX0pLHRoaXMudGFyZ2V0PUEudGFyZ2V0fHwiIix0aGlzLnRhcmdldFR5cGU9SEkoQS50YXJnZXRUeXBlLFsiYXV0byIsImNvbnRlbnRBcmVhIiwicGFnZUFyZWEiXSksdGhpcy50cmFpbGVyPUEudHJhaWxlcnx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuc2NyaXB0PW51bGx9W2JJXShBKXtyZXR1cm4gdGhpc1tGb109e30scUkuRkFJTFVSRX19Y2xhc3MgUmggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiYnV0dG9uIiwhMCksdGhpcy5oaWdobGlnaHQ9SEkoQS5oaWdobGlnaHQsWyJpbnZlcnRlZCIsIm5vbmUiLCJvdXRsaW5lIiwicHVzaCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsfVtiSV0oQSl7Y29uc3QgZT10aGlzW1BvXSgpW1BvXSgpLHQ9e25hbWU6ImJ1dHRvbiIsYXR0cmlidXRlczp7aWQ6dGhpc1tTSV0sY2xhc3M6WyJ4ZmFCdXR0b24iXSxzdHlsZTp7fX0sY2hpbGRyZW46W119O2Zvcihjb25zdCBBIG9mIGUuZXZlbnQuY2hpbGRyZW4pe2lmKCJjbGljayIhPT1BLmFjdGl2aXR5fHwhQS5zY3JpcHQpY29udGludWU7Y29uc3QgZT1BZShBLnNjcmlwdFtEb10pO2lmKCFlKWNvbnRpbnVlO2NvbnN0IGk9WmMoZS51cmwpO2kmJnQuY2hpbGRyZW4ucHVzaCh7bmFtZToiYSIsYXR0cmlidXRlczp7aWQ6ImxpbmsiK3RoaXNbU0ldLGhyZWY6aSxuZXdXaW5kb3c6ZS5uZXdXaW5kb3csY2xhc3M6WyJ4ZmFMaW5rIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfSl9cmV0dXJuIHFJLnN1Y2Nlc3ModCl9fWNsYXNzIEdoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImNhbGN1bGF0ZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5vdmVycmlkZT1ISShBLm92ZXJyaWRlLFsiZGlzYWJsZWQiLCJlcnJvciIsImlnbm9yZSIsIndhcm5pbmciXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5tZXNzYWdlPW51bGwsdGhpcy5zY3JpcHQ9bnVsbH19Y2xhc3MgTmggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY2FwdGlvbiIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5wbGFjZW1lbnQ9SEkoQS5wbGFjZW1lbnQsWyJsZWZ0IiwiYm90dG9tIiwiaW5saW5lIiwicmlnaHQiLCJ0b3AiXSksdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVzZXJ2ZT1NYXRoLmNlaWwoWUkoQS5yZXNlcnZlKSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5mb250PW51bGwsdGhpcy5tYXJnaW49bnVsbCx0aGlzLnBhcmE9bnVsbCx0aGlzLnZhbHVlPW51bGx9W21JXShBKXtuaCh0aGlzLEEpfVtIb10oQSl7aWYoIXRoaXNbRm9dKXtsZXR7d2lkdGg6ZSxoZWlnaHQ6dH09QTtzd2l0Y2godGhpcy5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJpbmxpbmUiOmU9dGhpcy5yZXNlcnZlPD0wP2U6dGhpcy5yZXNlcnZlO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6dD10aGlzLnJlc2VydmU8PTA/dDp0aGlzLnJlc2VydmV9dGhpc1tGb109TWModGhpcyx7d2lkdGg6ZSxoZWlnaHQ6dH0pfXJldHVybiB0aGlzW0ZvXX1bYkldKEEpe2lmKCF0aGlzLnZhbHVlKXJldHVybiBxSS5FTVBUWTt0aGlzW2xJXSgpO2NvbnN0IGU9dGhpcy52YWx1ZVtiSV0oQSkuaHRtbDtpZighZSlyZXR1cm4gdGhpc1tCSV0oKSxxSS5FTVBUWTtjb25zdCB0PXRoaXMucmVzZXJ2ZTtpZih0aGlzLnJlc2VydmU8PTApe2NvbnN0e3c6ZSxoOnR9PXRoaXNbSG9dKEEpO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dGhpcy5yZXNlcnZlPWU7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjp0aGlzLnJlc2VydmU9dH19Y29uc3QgaT1bXTsic3RyaW5nIj09dHlwZW9mIGU/aS5wdXNoKHtuYW1lOiIjdGV4dCIsdmFsdWU6ZX0pOmkucHVzaChlKTtjb25zdCBhPVljKHRoaXMsImZvbnQiLCJtYXJnaW4iLCJ2aXNpYmlsaXR5Iik7c3dpdGNoKHRoaXMucGxhY2VtZW50KXtjYXNlImxlZnQiOmNhc2UicmlnaHQiOnRoaXMucmVzZXJ2ZT4wJiYoYS53aWR0aD1HYyh0aGlzLnJlc2VydmUpKTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOnRoaXMucmVzZXJ2ZT4wJiYoYS5oZWlnaHQ9R2ModGhpcy5yZXNlcnZlKSl9cmV0dXJuIFdjKHRoaXMsbnVsbCxlKSx0aGlzW0JJXSgpLHRoaXMucmVzZXJ2ZT10LHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7c3R5bGU6YSxjbGFzczpbInhmYUNhcHRpb24iXX0sY2hpbGRyZW46aX0pfX1jbGFzcyB4aCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjZXJ0aWZpY2F0ZSIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBVaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjZXJ0aWZpY2F0ZXMiLCEwKSx0aGlzLmNyZWRlbnRpYWxTZXJ2ZXJQb2xpY3k9SEkoQS5jcmVkZW50aWFsU2VydmVyUG9saWN5LFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXJsPUEudXJsfHwiIix0aGlzLnVybFBvbGljeT1BLnVybFBvbGljeXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZW5jcnlwdGlvbj1udWxsLHRoaXMuaXNzdWVycz1udWxsLHRoaXMua2V5VXNhZ2U9bnVsbCx0aGlzLm9pZHM9bnVsbCx0aGlzLnNpZ25pbmc9bnVsbCx0aGlzLnN1YmplY3RETnM9bnVsbH19Y2xhc3MgTWggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY2hlY2tCdXR0b24iLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubWFyaz1ISShBLm1hcmssWyJkZWZhdWx0IiwiY2hlY2siLCJjaXJjbGUiLCJjcm9zcyIsImRpYW1vbmQiLCJzcXVhcmUiLCJzdGFyIl0pLHRoaXMuc2hhcGU9SEkoQS5zaGFwZSxbInNxdWFyZSIsInJvdW5kIl0pLHRoaXMuc2l6ZT1ZSShBLnNpemUsIjEwcHQiKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5ib3JkZXI9bnVsbCx0aGlzLmV4dHJhcz1udWxsLHRoaXMubWFyZ2luPW51bGx9W2JJXShBKXtjb25zdCBlPVljKCJtYXJnaW4iKSx0PUdjKHRoaXMuc2l6ZSk7bGV0IGksYSxzO2Uud2lkdGg9ZS5oZWlnaHQ9dDtjb25zdCBuPXRoaXNbUG9dKClbUG9dKCkscj1uLml0ZW1zLmNoaWxkcmVuLmxlbmd0aCYmbi5pdGVtcy5jaGlsZHJlblswXVtiSV0oKS5odG1sfHxbXSxnPXtvbjoodm9pZCAwIT09clswXT9yWzBdOiJvbiIpLnRvU3RyaW5nKCksb2ZmOih2b2lkIDAhPT1yWzFdP3JbMV06Im9mZiIpLnRvU3RyaW5nKCl9LG89KG4udmFsdWU/Llt3SV0oKXx8Im9mZiIpPT09Zy5vbnx8dm9pZCAwLEk9bltUb10oKSxjPW5bU0ldO2xldCBoO0kgaW5zdGFuY2VvZiBnQz8ocz1JW1NJXSxpPSJyYWRpbyIsYT0ieGZhUmFkaW8iLGg9SVtib10/LltTSV18fElbU0ldKTooaT0iY2hlY2tib3giLGE9InhmYUNoZWNrYm94IixoPW5bYm9dPy5bU0ldfHxuW1NJXSk7Y29uc3QgQz17bmFtZToiaW5wdXQiLGF0dHJpYnV0ZXM6e2NsYXNzOlthXSxzdHlsZTplLGZpZWxkSWQ6YyxkYXRhSWQ6aCx0eXBlOmksY2hlY2tlZDpvLHhmYU9uOmcub24seGZhT2ZmOmcub2ZmLCJhcmlhLWxhYmVsIjpjaChuKSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyZXR1cm4gcyYmKEMuYXR0cmlidXRlcy5uYW1lPXMpLGdoKG4pJiYoQy5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITAsQy5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwKSxxSS5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbQ119KX19Y2xhc3MgTGggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY2hvaWNlTGlzdCIsITApLHRoaXMuY29tbWl0T249SEkoQS5jb21taXRPbixbInNlbGVjdCIsImV4aXQiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm9wZW49SEkoQS5vcGVuLFsidXNlckNvbnRyb2wiLCJhbHdheXMiLCJtdWx0aVNlbGVjdCIsIm9uRW50cnkiXSksdGhpcy50ZXh0RW50cnk9TUkoe2RhdGE6QS50ZXh0RW50cnksZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5ib3JkZXI9bnVsbCx0aGlzLmV4dHJhcz1udWxsLHRoaXMubWFyZ2luPW51bGx9W2JJXShBKXtjb25zdCBlPVljKHRoaXMsImJvcmRlciIsIm1hcmdpbiIpLHQ9dGhpc1tQb10oKVtQb10oKSxpPXtmb250U2l6ZTpgY2FsYygke3QuZm9udD8uc2l6ZXx8MTB9cHggKiB2YXIoLS1zY2FsZS1mYWN0b3IpKWB9LGE9W107aWYodC5pdGVtcy5jaGlsZHJlbi5sZW5ndGg+MCl7Y29uc3QgQT10Lml0ZW1zO2xldCBlPTAscz0wOzI9PT1BLmNoaWxkcmVuLmxlbmd0aCYmKGU9QS5jaGlsZHJlblswXS5zYXZlLHM9MS1lKTtjb25zdCBuPUEuY2hpbGRyZW5bZV1bYkldKCkuaHRtbCxyPUEuY2hpbGRyZW5bc11bYkldKCkuaHRtbDtsZXQgZz0hMTtjb25zdCBvPXQudmFsdWU/Llt3SV0oKXx8IiI7Zm9yKGxldCBBPTAsZT1uLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPXtuYW1lOiJvcHRpb24iLGF0dHJpYnV0ZXM6e3ZhbHVlOnJbQV18fG5bQV0sc3R5bGU6aX0sdmFsdWU6bltBXX07cltBXT09PW8mJihlLmF0dHJpYnV0ZXMuc2VsZWN0ZWQ9Zz0hMCksYS5wdXNoKGUpfWd8fGEuc3BsaWNlKDAsMCx7bmFtZToib3B0aW9uIixhdHRyaWJ1dGVzOntoaWRkZW46ITAsc2VsZWN0ZWQ6ITB9LHZhbHVlOiIgIn0pfWNvbnN0IHM9e2NsYXNzOlsieGZhU2VsZWN0Il0sZmllbGRJZDp0W1NJXSxkYXRhSWQ6dFtib10/LltTSV18fHRbU0ldLHN0eWxlOmUsImFyaWEtbGFiZWwiOmNoKHQpLCJhcmlhLXJlcXVpcmVkIjohMX07cmV0dXJuIGdoKHQpJiYoc1siYXJpYS1yZXF1aXJlZCJdPSEwLHMucmVxdWlyZWQ9ITApLCJtdWx0aVNlbGVjdCI9PT10aGlzLm9wZW4mJihzLm11bHRpcGxlPSEwKSxxSS5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbe25hbWU6InNlbGVjdCIsY2hpbGRyZW46YSxhdHRyaWJ1dGVzOnN9XX0pfX1jbGFzcyBKaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjb2xvciIsITApLHRoaXMuY1NwYWNlPUhJKEEuY1NwYWNlLFsiU1JHQiJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnZhbHVlPUEudmFsdWU/ZnVuY3Rpb24oQSxlPVswLDAsMF0pe2xldFt0LGksYV09ZTtpZighQSlyZXR1cm57cjp0LGc6aSxiOmF9O2NvbnN0IHM9QS50cmltKCkuc3BsaXQoL1xzKixccyovKS5tYXAoKEE9Pk1hdGgubWluKE1hdGgubWF4KDAscGFyc2VJbnQoQS50cmltKCksMTApKSwyNTUpKSkubWFwKChBPT5pc05hTihBKT8wOkEpKTtyZXR1cm4gcy5sZW5ndGg8M3x8KFt0LGksYV09cykse3I6dCxnOmksYjphfX0oQS52YWx1ZSk6IiIsdGhpcy5leHRyYXM9bnVsbH1bWm9dKCl7cmV0dXJuITF9W0ZJXSgpe3JldHVybiB0aGlzLnZhbHVlPyQubWFrZUhleENvbG9yKHRoaXMudmFsdWUucix0aGlzLnZhbHVlLmcsdGhpcy52YWx1ZS5iKTpudWxsfX1jbGFzcyBIaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjb21iIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm51bWJlck9mQ2VsbHM9TUkoe2RhdGE6QS5udW1iZXJPZkNlbGxzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIFloIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImNvbm5lY3QiLCEwKSx0aGlzLmNvbm5lY3Rpb249QS5jb25uZWN0aW9ufHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnVzYWdlPUhJKEEudXNhZ2UsWyJleHBvcnRBbmRJbXBvcnQiLCJleHBvcnRPbmx5IiwiaW1wb3J0T25seSJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIHZoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImNvbnRlbnRBcmVhIiwhMCksdGhpcy5oPVlJKEEuaCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9WUkoQS53KSx0aGlzLng9WUkoQS54LCIwcHQiKSx0aGlzLnk9WUkoQS55LCIwcHQiKSx0aGlzLmRlc2M9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtiSV0oQSl7Y29uc3QgZT17bGVmdDpHYyh0aGlzLngpLHRvcDpHYyh0aGlzLnkpLHdpZHRoOkdjKHRoaXMudyksaGVpZ2h0OkdjKHRoaXMuaCl9LHQ9WyJ4ZmFDb250ZW50YXJlYSJdO3JldHVybiBUYyh0aGlzKSYmdC5wdXNoKCJ4ZmFQcmludE9ubHkiKSxxSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e3N0eWxlOmUsY2xhc3M6dCxpZDp0aGlzW1NJXX19KX19Y2xhc3MgS2ggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY29ybmVyIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmludmVydGVkPU1JKHtkYXRhOkEuaW52ZXJ0ZWQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmpvaW49SEkoQS5qb2luLFsic3F1YXJlIiwicm91bmQiXSksdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmFkaXVzPVlJKEEucmFkaXVzKSx0aGlzLnN0cm9rZT1ISShBLnN0cm9rZSxbInNvbGlkIiwiZGFzaERvdCIsImRhc2hEb3REb3QiLCJkYXNoZWQiLCJkb3R0ZWQiLCJlbWJvc3NlZCIsImV0Y2hlZCIsImxvd2VyZWQiLCJyYWlzZWQiXSksdGhpcy50aGlja25lc3M9WUkoQS50aGlja25lc3MsIjAuNXB0IiksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oKXtjb25zdCBBPVljKHRoaXMsInZpc2liaWxpdHkiKTtyZXR1cm4gQS5yYWRpdXM9R2MoInNxdWFyZSI9PT10aGlzLmpvaW4/MDp0aGlzLnJhZGl1cyksQX19Y2xhc3MgcWggZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZGF0ZSIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifVtTb10oKXtjb25zdCBBPXRoaXNbRG9dLnRyaW0oKTt0aGlzW0RvXT1BP25ldyBEYXRlKEEpOm51bGx9W2JJXShBKXtyZXR1cm4gaGgodGhpc1tEb10/dGhpc1tEb10udG9TdHJpbmcoKToiIil9fWNsYXNzIFRoIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRhdGVUaW1lIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9dGhpc1tEb10udHJpbSgpO3RoaXNbRG9dPUE/bmV3IERhdGUoQSk6bnVsbH1bYkldKEEpe3JldHVybiBoaCh0aGlzW0RvXT90aGlzW0RvXS50b1N0cmluZygpOiIiKX19Y2xhc3MgUGggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZGF0ZVRpbWVFZGl0IiwhMCksdGhpcy5oU2Nyb2xsUG9saWN5PUhJKEEuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucGlja2VyPUhJKEEucGlja2VyLFsiaG9zdCIsIm5vbmUiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5jb21iPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIiksdD10aGlzW1BvXSgpW1BvXSgpLGk9e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixmaWVsZElkOnRbU0ldLGRhdGFJZDp0W2JvXT8uW1NJXXx8dFtTSV0sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTplLCJhcmlhLWxhYmVsIjpjaCh0KSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyZXR1cm4gZ2godCkmJihpLmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMCxpLmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITApLHFJLnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOltpXX0pfX1jbGFzcyBXaCBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJkZWNpbWFsIiksdGhpcy5mcmFjRGlnaXRzPU1JKHtkYXRhOkEuZnJhY0RpZ2l0cyxkZWZhdWx0VmFsdWU6Mix2YWxpZGF0ZTpBPT4hMH0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sZWFkRGlnaXRzPU1JKHtkYXRhOkEubGVhZERpZ2l0cyxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9cGFyc2VGbG9hdCh0aGlzW0RvXS50cmltKCkpO3RoaXNbRG9dPWlzTmFOKEEpP251bGw6QX1bYkldKEEpe3JldHVybiBoaChudWxsIT09dGhpc1tEb10/dGhpc1tEb10udG9TdHJpbmcoKToiIil9fWNsYXNzIE9oIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRlZmF1bHRVaSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9fWNsYXNzIFpoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRlc2MiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvb2xlYW49bmV3IG1jLHRoaXMuZGF0ZT1uZXcgbWMsdGhpcy5kYXRlVGltZT1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmV4RGF0YT1uZXcgbWMsdGhpcy5mbG9hdD1uZXcgbWMsdGhpcy5pbWFnZT1uZXcgbWMsdGhpcy5pbnRlZ2VyPW5ldyBtYyx0aGlzLnRleHQ9bmV3IG1jLHRoaXMudGltZT1uZXcgbWN9fWNsYXNzIGpoIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRpZ2VzdE1ldGhvZCIsWyIiLCJTSEExIiwiU0hBMjU2IiwiU0hBNTEyIiwiUklQRU1EMTYwIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBYaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJkaWdlc3RNZXRob2RzIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5kaWdlc3RNZXRob2Q9bmV3IG1jfX1jbGFzcyBWaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJkcmF3IiwhMCksdGhpcy5hbmNob3JUeXBlPUhJKEEuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKSx0aGlzLmNvbFNwYW49TUkoe2RhdGE6QS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PkE+PTF8fC0xPT09QX0pLHRoaXMuaD1BLmg/WUkoQS5oKToiIix0aGlzLmhBbGlnbj1ISShBLmhBbGlnbixbImxlZnQiLCJjZW50ZXIiLCJqdXN0aWZ5IiwianVzdGlmeUFsbCIsInJhZGl4IiwicmlnaHQiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxvY2FsZT1BLmxvY2FsZXx8IiIsdGhpcy5tYXhIPVlJKEEubWF4SCwiMHB0IiksdGhpcy5tYXhXPVlJKEEubWF4VywiMHB0IiksdGhpcy5taW5IPVlJKEEubWluSCwiMHB0IiksdGhpcy5taW5XPVlJKEEubWluVywiMHB0IiksdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy5yb3RhdGU9TUkoe2RhdGE6QS5yb3RhdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+QSU5MD09MH0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9QS53P1lJKEEudyk6IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5hc3Npc3Q9bnVsbCx0aGlzLmJvcmRlcj1udWxsLHRoaXMuY2FwdGlvbj1udWxsLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5mb250PW51bGwsdGhpcy5rZWVwPW51bGwsdGhpcy5tYXJnaW49bnVsbCx0aGlzLnBhcmE9bnVsbCx0aGlzLnRyYXZlcnNhbD1udWxsLHRoaXMudWk9bnVsbCx0aGlzLnZhbHVlPW51bGwsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWN9W21JXShBKXtuaCh0aGlzLEEpfVtiSV0oQSl7aWYob2godGhpcyksImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gcUkuRU1QVFk7SmModGhpcyksdGhpc1tsSV0oKTtjb25zdCBlPXRoaXMudyx0PXRoaXMuaCx7dzppLGg6YSxpc0Jyb2tlbjpzfT1NYyh0aGlzLEEpO2lmKGkmJiIiPT09dGhpcy53KXtpZihzJiZ0aGlzW1RvXSgpW2lJXSgpKXJldHVybiB0aGlzW0JJXSgpLHFJLkZBSUxVUkU7dGhpcy53PWl9aWYoYSYmIiI9PT10aGlzLmgmJih0aGlzLmg9YSksQ2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHRoaXMudz1lLHRoaXMuaD10LHRoaXNbQkldKCkscUkuRkFJTFVSRTtCaCh0aGlzKTtjb25zdCBuPVljKHRoaXMsImZvbnQiLCJoQWxpZ24iLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsInJvdGF0ZSIsImFuY2hvclR5cGUiLCJib3JkZXIiLCJtYXJnaW4iKTt4Yyh0aGlzLG4pLG4ubWFyZ2luJiYobi5wYWRkaW5nPW4ubWFyZ2luLGRlbGV0ZSBuLm1hcmdpbik7Y29uc3Qgcj1bInhmYURyYXciXTt0aGlzLmZvbnQmJnIucHVzaCgieGZhRm9udCIpLFRjKHRoaXMpJiZyLnB1c2goInhmYVByaW50T25seSIpO2NvbnN0IGc9e3N0eWxlOm4saWQ6dGhpc1tTSV0sY2xhc3M6cn07dGhpcy5uYW1lJiYoZy54ZmFOYW1lPXRoaXMubmFtZSk7Y29uc3Qgbz17bmFtZToiZGl2IixhdHRyaWJ1dGVzOmcsY2hpbGRyZW46W119O0loKHRoaXMsZyk7Y29uc3QgST1MYyh0aGlzLG8sQSksYz10aGlzLnZhbHVlP3RoaXMudmFsdWVbYkldKEEpLmh0bWw6bnVsbDtyZXR1cm4gbnVsbD09PWM/KHRoaXMudz1lLHRoaXMuaD10LHRoaXNbQkldKCkscUkuc3VjY2Vzcyh2Yyh0aGlzLG8pLEkpKTooby5jaGlsZHJlbi5wdXNoKGMpLFdjKHRoaXMsbixjKSx0aGlzLnc9ZSx0aGlzLmg9dCx0aGlzW0JJXSgpLHFJLnN1Y2Nlc3ModmModGhpcyxvKSxJKSl9fWNsYXNzIF9oIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVkZ2UiLCEwKSx0aGlzLmNhcD1ISShBLmNhcCxbInNxdWFyZSIsImJ1dHQiLCJyb3VuZCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnN0cm9rZT1ISShBLnN0cm9rZSxbInNvbGlkIiwiZGFzaERvdCIsImRhc2hEb3REb3QiLCJkYXNoZWQiLCJkb3R0ZWQiLCJlbWJvc3NlZCIsImV0Y2hlZCIsImxvd2VyZWQiLCJyYWlzZWQiXSksdGhpcy50aGlja25lc3M9WUkoQS50aGlja25lc3MsIjAuNXB0IiksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oKXtjb25zdCBBPVljKHRoaXMsInZpc2liaWxpdHkiKTtpZihPYmplY3QuYXNzaWduKEEse2xpbmVjYXA6dGhpcy5jYXAsd2lkdGg6R2ModGhpcy50aGlja25lc3MpLGNvbG9yOnRoaXMuY29sb3I/dGhpcy5jb2xvcltGSV0oKToiIzAwMDAwMCIsc3R5bGU6IiJ9KSwidmlzaWJsZSIhPT10aGlzLnByZXNlbmNlKUEuc3R5bGU9Im5vbmUiO2Vsc2Ugc3dpdGNoKHRoaXMuc3Ryb2tlKXtjYXNlInNvbGlkIjpBLnN0eWxlPSJzb2xpZCI7YnJlYWs7Y2FzZSJkYXNoRG90IjpjYXNlImRhc2hEb3REb3QiOmNhc2UiZGFzaGVkIjpBLnN0eWxlPSJkYXNoZWQiO2JyZWFrO2Nhc2UiZG90dGVkIjpBLnN0eWxlPSJkb3R0ZWQiO2JyZWFrO2Nhc2UiZW1ib3NzZWQiOkEuc3R5bGU9InJpZGdlIjticmVhaztjYXNlImV0Y2hlZCI6QS5zdHlsZT0iZ3Jvb3ZlIjticmVhaztjYXNlImxvd2VyZWQiOkEuc3R5bGU9Imluc2V0IjticmVhaztjYXNlInJhaXNlZCI6QS5zdHlsZT0ib3V0c2V0In1yZXR1cm4gQX19Y2xhc3MgemggZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZW5jb2RpbmciLFsiYWRiZS54NTA5LnJzYV9zaGExIiwiYWRiZS5wa2NzNy5kZXRhY2hlZCIsImFkYmUucGtjczcuc2hhMSJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgJGggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZW5jb2RpbmdzIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5lbmNvZGluZz1uZXcgbWN9fWNsYXNzIEFDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVuY3J5cHQiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNlcnRpZmljYXRlPW51bGx9fWNsYXNzIGVDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVuY3J5cHREYXRhIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm9wZXJhdGlvbj1ISShBLm9wZXJhdGlvbixbImVuY3J5cHQiLCJkZWNyeXB0Il0pLHRoaXMudGFyZ2V0PUEudGFyZ2V0fHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5maWx0ZXI9bnVsbCx0aGlzLm1hbmlmZXN0PW51bGx9fWNsYXNzIHRDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVuY3J5cHRpb24iLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNlcnRpZmljYXRlPW5ldyBtY319Y2xhc3MgaUMgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZW5jcnlwdGlvbk1ldGhvZCIsWyIiLCJBRVMyNTYtQ0JDIiwiVFJJUExFREVTLUNCQyIsIkFFUzEyOC1DQkMiLCJBRVMxOTItQ0JDIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBhQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJlbmNyeXB0aW9uTWV0aG9kcyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZW5jcnlwdGlvbk1ldGhvZD1uZXcgbWN9fWNsYXNzIHNDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImV2ZW50IiwhMCksdGhpcy5hY3Rpdml0eT1ISShBLmFjdGl2aXR5LFsiY2xpY2siLCJjaGFuZ2UiLCJkb2NDbG9zZSIsImRvY1JlYWR5IiwiZW50ZXIiLCJleGl0IiwiZnVsbCIsImluZGV4Q2hhbmdlIiwiaW5pdGlhbGl6ZSIsIm1vdXNlRG93biIsIm1vdXNlRW50ZXIiLCJtb3VzZUV4aXQiLCJtb3VzZVVwIiwicG9zdEV4ZWN1dGUiLCJwb3N0T3BlbiIsInBvc3RQcmludCIsInBvc3RTYXZlIiwicG9zdFNpZ24iLCJwb3N0U3VibWl0IiwicHJlRXhlY3V0ZSIsInByZU9wZW4iLCJwcmVQcmludCIsInByZVNhdmUiLCJwcmVTaWduIiwicHJlU3VibWl0IiwicmVhZHkiLCJ2YWxpZGF0aW9uU3RhdGUiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxpc3Rlbj1ISShBLmxpc3RlbixbInJlZk9ubHkiLCJyZWZBbmREZXNjZW5kZW50cyJdKSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnJlZj1BLnJlZnx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5lbmNyeXB0RGF0YT1udWxsLHRoaXMuZXhlY3V0ZT1udWxsLHRoaXMuc2NyaXB0PW51bGwsdGhpcy5zaWduRGF0YT1udWxsLHRoaXMuc3VibWl0PW51bGx9fWNsYXNzIG5DIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImV4RGF0YSIpLHRoaXMuY29udGVudFR5cGU9QS5jb250ZW50VHlwZXx8IiIsdGhpcy5ocmVmPUEuaHJlZnx8IiIsdGhpcy5pZD1BLmlkfHwiIix0aGlzLm1heExlbmd0aD1NSSh7ZGF0YTpBLm1heExlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6QT0+QT49LTF9KSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnJpZD1BLnJpZHx8IiIsdGhpcy50cmFuc2ZlckVuY29kaW5nPUhJKEEudHJhbnNmZXJFbmNvZGluZyxbIm5vbmUiLCJiYXNlNjQiLCJwYWNrYWdlIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bX29dKCl7cmV0dXJuInRleHQvaHRtbCI9PT10aGlzLmNvbnRlbnRUeXBlfVtJSV0oQSl7cmV0dXJuKCJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZSYmQVtySV09PT1HSS54aHRtbC5pZHx8InRleHQveG1sIj09PXRoaXMuY29udGVudFR5cGUpJiYodGhpc1tEb109QSwhMCl9W2JJXShBKXtyZXR1cm4idGV4dC9odG1sIj09PXRoaXMuY29udGVudFR5cGUmJnRoaXNbRG9dP3RoaXNbRG9dW2JJXShBKTpxSS5FTVBUWX19Y2xhc3MgckMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZXhPYmplY3QiLCEwKSx0aGlzLmFyY2hpdmU9QS5hcmNoaXZlfHwiIix0aGlzLmNsYXNzSWQ9QS5jbGFzc0lkfHwiIix0aGlzLmNvZGVCYXNlPUEuY29kZUJhc2V8fCIiLHRoaXMuY29kZVR5cGU9QS5jb2RlVHlwZXx8IiIsdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5leHRyYXM9bnVsbCx0aGlzLmJvb2xlYW49bmV3IG1jLHRoaXMuZGF0ZT1uZXcgbWMsdGhpcy5kYXRlVGltZT1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmV4RGF0YT1uZXcgbWMsdGhpcy5leE9iamVjdD1uZXcgbWMsdGhpcy5mbG9hdD1uZXcgbWMsdGhpcy5pbWFnZT1uZXcgbWMsdGhpcy5pbnRlZ2VyPW5ldyBtYyx0aGlzLnRleHQ9bmV3IG1jLHRoaXMudGltZT1uZXcgbWN9fWNsYXNzIGdDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImV4Y2xHcm91cCIsITApLHRoaXMuYWNjZXNzPUhJKEEuYWNjZXNzLFsib3BlbiIsIm5vbkludGVyYWN0aXZlIiwicHJvdGVjdGVkIiwicmVhZE9ubHkiXSksdGhpcy5hY2Nlc3NLZXk9QS5hY2Nlc3NLZXl8fCIiLHRoaXMuYW5jaG9yVHlwZT1ISShBLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSksdGhpcy5jb2xTcGFuPU1JKHtkYXRhOkEuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT5BPj0xfHwtMT09PUF9KSx0aGlzLmg9QS5oP1lJKEEuaCk6IiIsdGhpcy5oQWxpZ249SEkoQS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sYXlvdXQ9SEkoQS5sYXlvdXQsWyJwb3NpdGlvbiIsImxyLXRiIiwicmwtcm93IiwicmwtdGIiLCJyb3ciLCJ0YWJsZSIsInRiIl0pLHRoaXMubWF4SD1ZSShBLm1heEgsIjBwdCIpLHRoaXMubWF4Vz1ZSShBLm1heFcsIjBwdCIpLHRoaXMubWluSD1ZSShBLm1pbkgsIjBwdCIpLHRoaXMubWluVz1ZSShBLm1pblcsIjBwdCIpLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9QS53P1lJKEEudyk6IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5hc3Npc3Q9bnVsbCx0aGlzLmJpbmQ9bnVsbCx0aGlzLmJvcmRlcj1udWxsLHRoaXMuY2FsY3VsYXRlPW51bGwsdGhpcy5jYXB0aW9uPW51bGwsdGhpcy5kZXNjPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsLHRoaXMucGFyYT1udWxsLHRoaXMudHJhdmVyc2FsPW51bGwsdGhpcy52YWxpZGF0ZT1udWxsLHRoaXMuY29ubmVjdD1uZXcgbWMsdGhpcy5ldmVudD1uZXcgbWMsdGhpcy5maWVsZD1uZXcgbWMsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWN9W3pvXSgpe3JldHVybiEwfVtab10oKXtyZXR1cm4hMH1bbUldKEEpe2Zvcihjb25zdCBlIG9mIHRoaXMuZmllbGQuY2hpbGRyZW4pe2lmKCFlLnZhbHVlKXtjb25zdCBBPW5ldyBmQih7fSk7ZVtFb10oQSksZS52YWx1ZT1BfWUudmFsdWVbbUldKEEpfX1baUldKCl7cmV0dXJuIHRoaXMubGF5b3V0LmVuZHNXaXRoKCItdGIiKSYmMD09PXRoaXNbRm9dLmF0dGVtcHQmJnRoaXNbRm9dLm51bWJlckluTGluZT4wfHx0aGlzW1BvXSgpW2lJXSgpfVt0SV0oKXtjb25zdCBBPXRoaXNbVG9dKCk7cmV0dXJuISFBW3RJXSgpJiYodm9pZCAwIT09dGhpc1tGb10uX2lzU3BsaXR0YWJsZT90aGlzW0ZvXS5faXNTcGxpdHRhYmxlOiJwb3NpdGlvbiI9PT10aGlzLmxheW91dHx8dGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpPyh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSExLCExKTohKEEubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1BW0ZvXS5udW1iZXJJbkxpbmV8fCh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSEwLDApKSl9W1JvXSgpe3JldHVybiBYYyh0aGlzKX1bUW9dKEEsZSl7VmModGhpcyxBLGUpfVt4b10oKXtyZXR1cm4gX2ModGhpcyl9W2JJXShBKXtpZihvaCh0aGlzKSwiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBxSS5FTVBUWTtKYyh0aGlzKTtjb25zdCBlPVtdLHQ9e2lkOnRoaXNbU0ldLGNsYXNzOltdfTtxYyh0aGlzLHQuY2xhc3MpLHRoaXNbRm9dfHwodGhpc1tGb109T2JqZWN0LmNyZWF0ZShudWxsKSksT2JqZWN0LmFzc2lnbih0aGlzW0ZvXSx7Y2hpbGRyZW46ZSxhdHRyaWJ1dGVzOnQsYXR0ZW1wdDowLGxpbmU6bnVsbCxudW1iZXJJbkxpbmU6MCxhdmFpbGFibGVTcGFjZTp7d2lkdGg6TWF0aC5taW4odGhpcy53fHwxLzAsQS53aWR0aCksaGVpZ2h0Ok1hdGgubWluKHRoaXMuaHx8MS8wLEEuaGVpZ2h0KX0sd2lkdGg6MCxoZWlnaHQ6MCxwcmV2SGVpZ2h0OjAsY3VycmVudFdpZHRoOjB9KTtjb25zdCBpPXRoaXNbdEldKCk7aWYoaXx8Q2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHFJLkZBSUxVUkU7Y29uc3QgYT1uZXcgU2V0KFsiZmllbGQiXSk7aWYodGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpKXtjb25zdCBBPXRoaXNbVG9dKCkuY29sdW1uV2lkdGhzO0FycmF5LmlzQXJyYXkoQSkmJkEubGVuZ3RoPjAmJih0aGlzW0ZvXS5jb2x1bW5XaWR0aHM9QSx0aGlzW0ZvXS5jdXJyZW50Q29sdW1uPTApfWNvbnN0IHM9WWModGhpcywiYW5jaG9yVHlwZSIsImRpbWVuc2lvbnMiLCJwb3NpdGlvbiIsInByZXNlbmNlIiwiYm9yZGVyIiwibWFyZ2luIiwiaEFsaWduIiksbj1bInhmYUV4Y2xncm91cCJdLHI9SGModGhpcyk7ciYmbi5wdXNoKHIpLFRjKHRoaXMpJiZuLnB1c2goInhmYVByaW50T25seSIpLHQuc3R5bGU9cyx0LmNsYXNzPW4sdGhpcy5uYW1lJiYodC54ZmFOYW1lPXRoaXMubmFtZSksdGhpc1tsSV0oKTtjb25zdCBnPSJsci10YiI9PT10aGlzLmxheW91dHx8InJsLXRiIj09PXRoaXMubGF5b3V0LG89Zz8yOjE7Zm9yKDt0aGlzW0ZvXS5hdHRlbXB0PG87dGhpc1tGb10uYXR0ZW1wdCsrKXtnJiYxPT09dGhpc1tGb10uYXR0ZW1wdCYmKHRoaXNbRm9dLm51bWJlckluTGluZT0wKTtjb25zdCBBPXRoaXNbdW9dKHtmaWx0ZXI6YSxpbmNsdWRlOiEwfSk7aWYoQS5zdWNjZXNzKWJyZWFrO2lmKEEuaXNCcmVhaygpKXJldHVybiB0aGlzW0JJXSgpLEE7aWYoZyYmMD09PXRoaXNbRm9dLmF0dGVtcHQmJjA9PT10aGlzW0ZvXS5udW1iZXJJbkxpbmUmJiF0aGlzW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmUpe3RoaXNbRm9dLmF0dGVtcHQ9bzticmVha319aWYodGhpc1tCSV0oKSxpfHxCaCh0aGlzKSx0aGlzW0ZvXS5hdHRlbXB0PT09bylyZXR1cm4gaXx8ZGVsZXRlIHRoaXNbRm9dLHFJLkZBSUxVUkU7bGV0IEk9MCxjPTA7dGhpcy5tYXJnaW4mJihJPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0LGM9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXQpO2NvbnN0IGg9TWF0aC5tYXgodGhpc1tGb10ud2lkdGgrSSx0aGlzLnd8fDApLEM9TWF0aC5tYXgodGhpc1tGb10uaGVpZ2h0K2MsdGhpcy5ofHwwKSxCPVt0aGlzLngsdGhpcy55LGgsQ107IiI9PT10aGlzLncmJihzLndpZHRoPUdjKGgpKSwiIj09PXRoaXMuaCYmKHMuaGVpZ2h0PUdjKEMpKTtjb25zdCBsPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6dCxjaGlsZHJlbjplfTtyZXR1cm4gSWgodGhpcyx0KSxkZWxldGUgdGhpc1tGb10scUkuc3VjY2Vzcyh2Yyh0aGlzLGwpLEIpfX1jbGFzcyBvQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJleGVjdXRlIiksdGhpcy5jb25uZWN0aW9uPUEuY29ubmVjdGlvbnx8IiIsdGhpcy5leGVjdXRlVHlwZT1ISShBLmV4ZWN1dGVUeXBlLFsiaW1wb3J0IiwicmVtZXJnZSJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucnVuQXQ9SEkoQS5ydW5BdCxbImNsaWVudCIsImJvdGgiLCJzZXJ2ZXIiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBJQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJleHRyYXMiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvb2xlYW49bmV3IG1jLHRoaXMuZGF0ZT1uZXcgbWMsdGhpcy5kYXRlVGltZT1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmV4RGF0YT1uZXcgbWMsdGhpcy5leHRyYXM9bmV3IG1jLHRoaXMuZmxvYXQ9bmV3IG1jLHRoaXMuaW1hZ2U9bmV3IG1jLHRoaXMuaW50ZWdlcj1uZXcgbWMsdGhpcy50ZXh0PW5ldyBtYyx0aGlzLnRpbWU9bmV3IG1jfX1jbGFzcyBjQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJmaWVsZCIsITApLHRoaXMuYWNjZXNzPUhJKEEuYWNjZXNzLFsib3BlbiIsIm5vbkludGVyYWN0aXZlIiwicHJvdGVjdGVkIiwicmVhZE9ubHkiXSksdGhpcy5hY2Nlc3NLZXk9QS5hY2Nlc3NLZXl8fCIiLHRoaXMuYW5jaG9yVHlwZT1ISShBLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSksdGhpcy5jb2xTcGFuPU1JKHtkYXRhOkEuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT5BPj0xfHwtMT09PUF9KSx0aGlzLmg9QS5oP1lJKEEuaCk6IiIsdGhpcy5oQWxpZ249SEkoQS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sb2NhbGU9QS5sb2NhbGV8fCIiLHRoaXMubWF4SD1ZSShBLm1heEgsIjBwdCIpLHRoaXMubWF4Vz1ZSShBLm1heFcsIjBwdCIpLHRoaXMubWluSD1ZSShBLm1pbkgsIjBwdCIpLHRoaXMubWluVz1ZSShBLm1pblcsIjBwdCIpLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMucm90YXRlPU1JKHtkYXRhOkEucm90YXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PkElOTA9PTB9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy53PUEudz9ZSShBLncpOiIiLHRoaXMueD1ZSShBLngsIjBwdCIpLHRoaXMueT1ZSShBLnksIjBwdCIpLHRoaXMuYXNzaXN0PW51bGwsdGhpcy5iaW5kPW51bGwsdGhpcy5ib3JkZXI9bnVsbCx0aGlzLmNhbGN1bGF0ZT1udWxsLHRoaXMuY2FwdGlvbj1udWxsLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5mb250PW51bGwsdGhpcy5mb3JtYXQ9bnVsbCx0aGlzLml0ZW1zPW5ldyBtYygyKSx0aGlzLmtlZXA9bnVsbCx0aGlzLm1hcmdpbj1udWxsLHRoaXMucGFyYT1udWxsLHRoaXMudHJhdmVyc2FsPW51bGwsdGhpcy51aT1udWxsLHRoaXMudmFsaWRhdGU9bnVsbCx0aGlzLnZhbHVlPW51bGwsdGhpcy5iaW5kSXRlbXM9bmV3IG1jLHRoaXMuY29ubmVjdD1uZXcgbWMsdGhpcy5ldmVudD1uZXcgbWMsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWN9W3pvXSgpe3JldHVybiEwfVttSV0oQSl7bmgodGhpcyxBKX1bYkldKEEpe2lmKG9oKHRoaXMpLCF0aGlzLnVpKXtsZXQgQTtzd2l0Y2godGhpcy51aT1uZXcgdUIoe30pLHRoaXMudWlbT29dPXRoaXNbT29dLHRoaXNbRW9dKHRoaXMudWkpLHRoaXMuaXRlbXMuY2hpbGRyZW4ubGVuZ3RoKXtjYXNlIDA6QT1uZXcgaEIoe30pLHRoaXMudWkudGV4dEVkaXQ9QTticmVhaztjYXNlIDE6QT1uZXcgTWgoe30pLHRoaXMudWkuY2hlY2tCdXR0b249QTticmVhaztjYXNlIDI6QT1uZXcgTGgoe30pLHRoaXMudWkuY2hvaWNlTGlzdD1BfXRoaXMudWlbRW9dKEEpfWlmKCF0aGlzLnVpfHwiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBxSS5FTVBUWTt0aGlzLmNhcHRpb24mJmRlbGV0ZSB0aGlzLmNhcHRpb25bRm9dLHRoaXNbbEldKCk7Y29uc3QgZT10aGlzLmNhcHRpb24/dGhpcy5jYXB0aW9uW2JJXShBKS5odG1sOm51bGwsdD10aGlzLncsaT10aGlzLmg7bGV0IGE9MCxzPTA7dGhpcy5tYXJnaW4mJihhPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0LHM9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXQpO2xldCBuPW51bGw7aWYoIiI9PT10aGlzLnd8fCIiPT09dGhpcy5oKXtsZXQgZT1udWxsLHQ9bnVsbCxpPTAscj0wO2lmKHRoaXMudWkuY2hlY2tCdXR0b24paT1yPXRoaXMudWkuY2hlY2tCdXR0b24uc2l6ZTtlbHNle2NvbnN0e3c6ZSxoOnR9PU1jKHRoaXMsQSk7bnVsbCE9PWU/KGk9ZSxyPXQpOnI9ZnVuY3Rpb24oQSxlPSExKXtsZXQgdD1udWxsO2lmKEEpe2NvbnN0IGU9VUkoQS50eXBlZmFjZSksaT1BW09vXS5mb250RmluZGVyLmZpbmQoZSk7dD1QSShBLGkpfWlmKCF0KXJldHVybntsaW5lSGVpZ2h0OjEyLGxpbmVHYXA6MixsaW5lTm9HYXA6MTB9O2NvbnN0IGk9QS5zaXplfHwxMCxhPXQubGluZUhlaWdodD9NYXRoLm1heChlPzA6MS4yLHQubGluZUhlaWdodCk6MS4yLHM9dm9pZCAwPT09dC5saW5lR2FwPy4yOnQubGluZUdhcDtyZXR1cm57bGluZUhlaWdodDphKmksbGluZUdhcDpzKmksbGluZU5vR2FwOk1hdGgubWF4KDEsYS1zKSppfX0odGhpcy5mb250LCEwKS5saW5lTm9HYXB9aWYobj1haCh0aGlzLnVpW0hvXSgpKSxpKz1uLncscis9bi5oLHRoaXMuY2FwdGlvbil7Y29uc3R7dzphLGg6cyxpc0Jyb2tlbjpufT10aGlzLmNhcHRpb25bSG9dKEEpO2lmKG4mJnRoaXNbVG9dKClbaUldKCkpcmV0dXJuIHRoaXNbQkldKCkscUkuRkFJTFVSRTtzd2l0Y2goZT1hLHQ9cyx0aGlzLmNhcHRpb24ucGxhY2VtZW50KXtjYXNlImxlZnQiOmNhc2UicmlnaHQiOmNhc2UiaW5saW5lIjplKz1pO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6dCs9cn19ZWxzZSBlPWksdD1yO2UmJiIiPT09dGhpcy53JiYoZSs9YSx0aGlzLnc9TWF0aC5taW4odGhpcy5tYXhXPD0wPzEvMDp0aGlzLm1heFcsdGhpcy5taW5XKzE8ZT9lOnRoaXMubWluVykpLHQmJiIiPT09dGhpcy5oJiYodCs9cyx0aGlzLmg9TWF0aC5taW4odGhpcy5tYXhIPD0wPzEvMDp0aGlzLm1heEgsdGhpcy5taW5IKzE8dD90OnRoaXMubWluSCkpfWlmKHRoaXNbQkldKCksSmModGhpcyksQ2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHRoaXMudz10LHRoaXMuaD1pLHRoaXNbQkldKCkscUkuRkFJTFVSRTtCaCh0aGlzKTtjb25zdCByPVljKHRoaXMsImZvbnQiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJyb3RhdGUiLCJhbmNob3JUeXBlIiwicHJlc2VuY2UiLCJtYXJnaW4iLCJoQWxpZ24iKTt4Yyh0aGlzLHIpO2NvbnN0IGc9WyJ4ZmFGaWVsZCJdO3RoaXMuZm9udCYmZy5wdXNoKCJ4ZmFGb250IiksVGModGhpcykmJmcucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3Qgbz17c3R5bGU6cixpZDp0aGlzW1NJXSxjbGFzczpnfTtyLm1hcmdpbiYmKHIucGFkZGluZz1yLm1hcmdpbixkZWxldGUgci5tYXJnaW4pLHFjKHRoaXMsZyksdGhpcy5uYW1lJiYoby54ZmFOYW1lPXRoaXMubmFtZSk7Y29uc3QgST1bXSxjPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6byxjaGlsZHJlbjpJfTtJaCh0aGlzLG8pO2NvbnN0IGg9dGhpcy5ib3JkZXI/dGhpcy5ib3JkZXJbRkldKCk6bnVsbCxDPUxjKHRoaXMsYyxBKSxCPXRoaXMudWlbYkldKCkuaHRtbDtpZighQilyZXR1cm4gT2JqZWN0LmFzc2lnbihyLGgpLHFJLnN1Y2Nlc3ModmModGhpcyxjKSxDKTt0aGlzW3lJXSYmKEIuY2hpbGRyZW4/LlswXT9CLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGFiaW5kZXg9dGhpc1t5SV06Qi5hdHRyaWJ1dGVzLnRhYmluZGV4PXRoaXNbeUldKSxCLmF0dHJpYnV0ZXMuc3R5bGV8fChCLmF0dHJpYnV0ZXMuc3R5bGU9T2JqZWN0LmNyZWF0ZShudWxsKSk7bGV0IGw9bnVsbDtpZih0aGlzLnVpLmJ1dHRvbj8oMT09PUIuY2hpbGRyZW4ubGVuZ3RoJiYoW2xdPUIuY2hpbGRyZW4uc3BsaWNlKDAsMSkpLE9iamVjdC5hc3NpZ24oQi5hdHRyaWJ1dGVzLnN0eWxlLGgpKTpPYmplY3QuYXNzaWduKHIsaCksSS5wdXNoKEIpLHRoaXMudmFsdWUpaWYodGhpcy51aS5pbWFnZUVkaXQpQi5jaGlsZHJlbi5wdXNoKHRoaXMudmFsdWVbYkldKCkuaHRtbCk7ZWxzZSBpZighdGhpcy51aS5idXR0b24pe2xldCBBPSIiO2lmKHRoaXMudmFsdWUuZXhEYXRhKUE9dGhpcy52YWx1ZS5leERhdGFbd0ldKCk7ZWxzZSBpZih0aGlzLnZhbHVlLnRleHQpQT10aGlzLnZhbHVlLnRleHRbSG9dKCk7ZWxzZXtjb25zdCBlPXRoaXMudmFsdWVbYkldKCkuaHRtbDtudWxsIT09ZSYmKEE9ZS5jaGlsZHJlblswXS52YWx1ZSl9dGhpcy51aS50ZXh0RWRpdCYmdGhpcy52YWx1ZS50ZXh0Py5tYXhDaGFycyYmKEIuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5tYXhMZW5ndGg9dGhpcy52YWx1ZS50ZXh0Lm1heENoYXJzKSxBJiYodGhpcy51aS5udW1lcmljRWRpdCYmKEE9cGFyc2VGbG9hdChBKSxBPWlzTmFOKEEpPyIiOkEudG9TdHJpbmcoKSksInRleHRhcmVhIj09PUIuY2hpbGRyZW5bMF0ubmFtZT9CLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGV4dENvbnRlbnQ9QTpCLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudmFsdWU9QSl9aWYoIXRoaXMudWkuaW1hZ2VFZGl0JiZCLmNoaWxkcmVuPy5bMF0mJnRoaXMuaCl7bj1ufHxhaCh0aGlzLnVpW0hvXSgpKTtsZXQgZT0wO2lmKHRoaXMuY2FwdGlvbiYmWyJ0b3AiLCJib3R0b20iXS5pbmNsdWRlcyh0aGlzLmNhcHRpb24ucGxhY2VtZW50KSl7ZT10aGlzLmNhcHRpb24ucmVzZXJ2ZSxlPD0wJiYoZT10aGlzLmNhcHRpb25bSG9dKEEpLmgpO2NvbnN0IHQ9dGhpcy5oLWUtcy1uLmg7Qi5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnN0eWxlLmhlaWdodD1HYyh0KX1lbHNlIEIuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9IjEwMCUifWlmKGwmJkIuY2hpbGRyZW4ucHVzaChsKSwhZSlyZXR1cm4gQi5hdHRyaWJ1dGVzLmNsYXNzJiZCLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhTGVmdCIpLHRoaXMudz10LHRoaXMuaD1pLHFJLnN1Y2Nlc3ModmModGhpcyxjKSxDKTtpZih0aGlzLnVpLmJ1dHRvbilyZXR1cm4gci5wYWRkaW5nJiZkZWxldGUgci5wYWRkaW5nLCJkaXYiPT09ZS5uYW1lJiYoZS5uYW1lPSJzcGFuIiksQi5jaGlsZHJlbi5wdXNoKGUpLHFJLnN1Y2Nlc3MoYyxDKTtzd2l0Y2godGhpcy51aS5jaGVja0J1dHRvbiYmKGUuYXR0cmlidXRlcy5jbGFzc1swXT0ieGZhQ2FwdGlvbkZvckNoZWNrQnV0dG9uIiksQi5hdHRyaWJ1dGVzLmNsYXNzfHwoQi5hdHRyaWJ1dGVzLmNsYXNzPVtdKSxCLmNoaWxkcmVuLnNwbGljZSgwLDAsZSksdGhpcy5jYXB0aW9uLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlImlubGluZSI6Qi5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYUxlZnQiKTticmVhaztjYXNlInJpZ2h0IjpCLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhUmlnaHQiKTticmVhaztjYXNlInRvcCI6Qi5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYVRvcCIpO2JyZWFrO2Nhc2UiYm90dG9tIjpCLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhQm90dG9tIil9cmV0dXJuIHRoaXMudz10LHRoaXMuaD1pLHFJLnN1Y2Nlc3ModmModGhpcyxjKSxDKX19Y2xhc3MgaEMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZmlsbCIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvbG9yPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLmxpbmVhcj1udWxsLHRoaXMucGF0dGVybj1udWxsLHRoaXMucmFkaWFsPW51bGwsdGhpcy5zb2xpZD1udWxsLHRoaXMuc3RpcHBsZT1udWxsfVtGSV0oKXtjb25zdCBBPXRoaXNbUG9dKCksZT1BW1BvXSgpW1BvXSgpLHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgaT0iY29sb3IiLGE9aTtBIGluc3RhbmNlb2YgYmgmJihpPSJiYWNrZ3JvdW5kLWNvbG9yIixhPSJiYWNrZ3JvdW5kIixlIGluc3RhbmNlb2YgdUImJih0LmJhY2tncm91bmRDb2xvcj0id2hpdGUiKSksKEEgaW5zdGFuY2VvZiBYQ3x8QSBpbnN0YW5jZW9mIHVoKSYmKGk9YT0iZmlsbCIsdC5maWxsPSJ3aGl0ZSIpO2Zvcihjb25zdCBBIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZigiZXh0cmFzIj09PUF8fCJjb2xvciI9PT1BKWNvbnRpbnVlO2NvbnN0IGU9dGhpc1tBXTtpZighKGUgaW5zdGFuY2VvZiBwYykpY29udGludWU7Y29uc3Qgcz1lW0ZJXSh0aGlzLmNvbG9yKTtyZXR1cm4gcyYmKHRbcy5zdGFydHNXaXRoKCIjIik/aTphXT1zKSx0fWlmKHRoaXMuY29sb3I/LnZhbHVlKXtjb25zdCBBPXRoaXMuY29sb3JbRkldKCk7dFtBLnN0YXJ0c1dpdGgoIiMiKT9pOmFdPUF9cmV0dXJuIHR9fWNsYXNzIENDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImZpbHRlciIsITApLHRoaXMuYWRkUmV2b2NhdGlvbkluZm89SEkoQS5hZGRSZXZvY2F0aW9uSW5mbyxbIiIsInJlcXVpcmVkIiwib3B0aW9uYWwiLCJub25lIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMudmVyc2lvbj1NSSh7ZGF0YTp0aGlzLnZlcnNpb24sZGVmYXVsdFZhbHVlOjUsdmFsaWRhdGU6QT0+QT49MSYmQTw9NX0pLHRoaXMuYXBwZWFyYW5jZUZpbHRlcj1udWxsLHRoaXMuY2VydGlmaWNhdGVzPW51bGwsdGhpcy5kaWdlc3RNZXRob2RzPW51bGwsdGhpcy5lbmNvZGluZ3M9bnVsbCx0aGlzLmVuY3J5cHRpb25NZXRob2RzPW51bGwsdGhpcy5oYW5kbGVyPW51bGwsdGhpcy5sb2NrRG9jdW1lbnQ9bnVsbCx0aGlzLm1kcD1udWxsLHRoaXMucmVhc29ucz1udWxsLHRoaXMudGltZVN0YW1wPW51bGx9fWNsYXNzIEJDIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImZsb2F0IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9cGFyc2VGbG9hdCh0aGlzW0RvXS50cmltKCkpO3RoaXNbRG9dPWlzTmFOKEEpP251bGw6QX1bYkldKEEpe3JldHVybiBoaChudWxsIT09dGhpc1tEb10/dGhpc1tEb10udG9TdHJpbmcoKToiIil9fWNsYXNzIGxDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImZvbnQiLCEwKSx0aGlzLmJhc2VsaW5lU2hpZnQ9WUkoQS5iYXNlbGluZVNoaWZ0KSx0aGlzLmZvbnRIb3Jpem9udGFsU2NhbGU9TEkoe2RhdGE6QS5mb250SG9yaXpvbnRhbFNjYWxlLGRlZmF1bHRWYWx1ZToxMDAsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMuZm9udFZlcnRpY2FsU2NhbGU9TEkoe2RhdGE6QS5mb250VmVydGljYWxTY2FsZSxkZWZhdWx0VmFsdWU6MTAwLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMua2VybmluZ01vZGU9SEkoQS5rZXJuaW5nTW9kZSxbIm5vbmUiLCJwYWlyIl0pLHRoaXMubGV0dGVyU3BhY2luZz1ZSShBLmxldHRlclNwYWNpbmcsIjAiKSx0aGlzLmxpbmVUaHJvdWdoPU1JKHtkYXRhOkEubGluZVRocm91Z2gsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF8fDI9PT1BfSksdGhpcy5saW5lVGhyb3VnaFBlcmlvZD1ISShBLmxpbmVUaHJvdWdoUGVyaW9kLFsiYWxsIiwid29yZCJdKSx0aGlzLm92ZXJsaW5lPU1JKHtkYXRhOkEub3ZlcmxpbmUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF8fDI9PT1BfSksdGhpcy5vdmVybGluZVBlcmlvZD1ISShBLm92ZXJsaW5lUGVyaW9kLFsiYWxsIiwid29yZCJdKSx0aGlzLnBvc3R1cmU9SEkoQS5wb3N0dXJlLFsibm9ybWFsIiwiaXRhbGljIl0pLHRoaXMuc2l6ZT1ZSShBLnNpemUsIjEwcHQiKSx0aGlzLnR5cGVmYWNlPUEudHlwZWZhY2V8fCJDb3VyaWVyIix0aGlzLnVuZGVybGluZT1NSSh7ZGF0YTpBLnVuZGVybGluZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QXx8Mj09PUF9KSx0aGlzLnVuZGVybGluZVBlcmlvZD1ISShBLnVuZGVybGluZVBlcmlvZCxbImFsbCIsIndvcmQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMud2VpZ2h0PUhJKEEud2VpZ2h0LFsibm9ybWFsIiwiYm9sZCJdKSx0aGlzLmV4dHJhcz1udWxsLHRoaXMuZmlsbD1udWxsfVtmb10oQSl7c3VwZXJbZm9dKEEpLHRoaXNbT29dLnVzZWRUeXBlZmFjZXMuYWRkKHRoaXMudHlwZWZhY2UpfVtGSV0oKXtjb25zdCBBPVljKHRoaXMsImZpbGwiKSxlPUEuY29sb3I7cmV0dXJuIGUmJigiIzAwMDAwMCI9PT1lP2RlbGV0ZSBBLmNvbG9yOmUuc3RhcnRzV2l0aCgiIyIpfHwoQS5iYWNrZ3JvdW5kPWUsQS5iYWNrZ3JvdW5kQ2xpcD0idGV4dCIsQS5jb2xvcj0idHJhbnNwYXJlbnQiKSksdGhpcy5iYXNlbGluZVNoaWZ0JiYoQS52ZXJ0aWNhbEFsaWduPUdjKHRoaXMuYmFzZWxpbmVTaGlmdCkpLEEuZm9udEtlcm5pbmc9Im5vbmUiPT09dGhpcy5rZXJuaW5nTW9kZT8ibm9uZSI6Im5vcm1hbCIsQS5sZXR0ZXJTcGFjaW5nPUdjKHRoaXMubGV0dGVyU3BhY2luZyksMCE9PXRoaXMubGluZVRocm91Z2gmJihBLnRleHREZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giLDI9PT10aGlzLmxpbmVUaHJvdWdoJiYoQS50ZXh0RGVjb3JhdGlvblN0eWxlPSJkb3VibGUiKSksMCE9PXRoaXMub3ZlcmxpbmUmJihBLnRleHREZWNvcmF0aW9uPSJvdmVybGluZSIsMj09PXRoaXMub3ZlcmxpbmUmJihBLnRleHREZWNvcmF0aW9uU3R5bGU9ImRvdWJsZSIpKSxBLmZvbnRTdHlsZT10aGlzLnBvc3R1cmUsQS5mb250U2l6ZT1HYyguOTkqdGhpcy5zaXplKSxPYyh0aGlzLHRoaXMsdGhpc1tPb10uZm9udEZpbmRlcixBKSwwIT09dGhpcy51bmRlcmxpbmUmJihBLnRleHREZWNvcmF0aW9uPSJ1bmRlcmxpbmUiLDI9PT10aGlzLnVuZGVybGluZSYmKEEudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIikpLEEuZm9udFdlaWdodD10aGlzLndlaWdodCxBfX1jbGFzcyBRQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJmb3JtYXQiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMucGljdHVyZT1udWxsfX1jbGFzcyBFQyBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJoYW5kbGVyIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIHVDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImh5cGhlbmF0aW9uIiksdGhpcy5leGNsdWRlQWxsQ2Fwcz1NSSh7ZGF0YTpBLmV4Y2x1ZGVBbGxDYXBzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5leGNsdWRlSW5pdGlhbENhcD1NSSh7ZGF0YTpBLmV4Y2x1ZGVJbml0aWFsQ2FwLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5oeXBoZW5hdGU9TUkoe2RhdGE6QS5oeXBoZW5hdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucHVzaENoYXJhY3RlckNvdW50PU1JKHtkYXRhOkEucHVzaENoYXJhY3RlckNvdW50LGRlZmF1bHRWYWx1ZTozLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLnJlbWFpbkNoYXJhY3RlckNvdW50PU1JKHtkYXRhOkEucmVtYWluQ2hhcmFjdGVyQ291bnQsZGVmYXVsdFZhbHVlOjMsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLndvcmRDaGFyYWN0ZXJDb3VudD1NSSh7ZGF0YTpBLndvcmRDaGFyYWN0ZXJDb3VudCxkZWZhdWx0VmFsdWU6Nyx2YWxpZGF0ZTpBPT5BPj0wfSl9fWNsYXNzIGRDIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImltYWdlIiksdGhpcy5hc3BlY3Q9SEkoQS5hc3BlY3QsWyJmaXQiLCJhY3R1YWwiLCJoZWlnaHQiLCJub25lIiwid2lkdGgiXSksdGhpcy5jb250ZW50VHlwZT1BLmNvbnRlbnRUeXBlfHwiIix0aGlzLmhyZWY9QS5ocmVmfHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudHJhbnNmZXJFbmNvZGluZz1ISShBLnRyYW5zZmVyRW5jb2RpbmcsWyJiYXNlNjQiLCJub25lIiwicGFja2FnZSJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W2JJXSgpe2lmKHRoaXMuY29udGVudFR5cGUmJiF0aC5oYXModGhpcy5jb250ZW50VHlwZS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gcUkuRU1QVFk7bGV0IEE9dGhpc1tPb10uaW1hZ2VzJiZ0aGlzW09vXS5pbWFnZXMuZ2V0KHRoaXMuaHJlZik7aWYoIUEmJih0aGlzLmhyZWZ8fCF0aGlzW0RvXSkpcmV0dXJuIHFJLkVNUFRZO2lmKEF8fCJiYXNlNjQiIT09dGhpcy50cmFuc2ZlckVuY29kaW5nfHwoQT1qKGF0b2IodGhpc1tEb10pKSksIUEpcmV0dXJuIHFJLkVNUFRZO2lmKCF0aGlzLmNvbnRlbnRUeXBlKXtmb3IoY29uc3RbZSx0XW9mIGloKWlmKEEubGVuZ3RoPmUubGVuZ3RoJiZlLmV2ZXJ5KCgoZSx0KT0+ZT09PUFbdF0pKSl7dGhpcy5jb250ZW50VHlwZT10O2JyZWFrfWlmKCF0aGlzLmNvbnRlbnRUeXBlKXJldHVybiBxSS5FTVBUWX1jb25zdCBlPW5ldyBCbG9iKFtBXSx7dHlwZTp0aGlzLmNvbnRlbnRUeXBlfSk7bGV0IHQ7c3dpdGNoKHRoaXMuYXNwZWN0KXtjYXNlImZpdCI6Y2FzZSJhY3R1YWwiOmJyZWFrO2Nhc2UiaGVpZ2h0Ijp0PXtoZWlnaHQ6IjEwMCUiLG9iamVjdEZpdDoiZmlsbCJ9O2JyZWFrO2Nhc2Uibm9uZSI6dD17d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb2JqZWN0Rml0OiJmaWxsIn07YnJlYWs7Y2FzZSJ3aWR0aCI6dD17d2lkdGg6IjEwMCUiLG9iamVjdEZpdDoiZmlsbCJ9fWNvbnN0IGk9dGhpc1tQb10oKTtyZXR1cm4gcUkuc3VjY2Vzcyh7bmFtZToiaW1nIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUltYWdlIl0sc3R5bGU6dCxzcmM6VVJMLmNyZWF0ZU9iamVjdFVSTChlKSxhbHQ6aT9jaChpW1BvXSgpKTpudWxsfX0pfX1jbGFzcyBmQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJpbWFnZUVkaXQiLCEwKSx0aGlzLmRhdGE9SEkoQS5kYXRhLFsibGluayIsImVtYmVkIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7cmV0dXJuImVtYmVkIj09PXRoaXMuZGF0YT9xSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319KTpxSS5FTVBUWX19Y2xhc3MgcEMgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiaW50ZWdlciIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifVtTb10oKXtjb25zdCBBPXBhcnNlSW50KHRoaXNbRG9dLnRyaW0oKSwxMCk7dGhpc1tEb109aXNOYU4oQSk/bnVsbDpBfVtiSV0oQSl7cmV0dXJuIGhoKG51bGwhPT10aGlzW0RvXT90aGlzW0RvXS50b1N0cmluZygpOiIiKX19Y2xhc3MgbUMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiaXNzdWVycyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY2VydGlmaWNhdGU9bmV3IG1jfX1jbGFzcyB5QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJpdGVtcyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnNhdmU9TUkoe2RhdGE6QS5zYXZlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9vbGVhbj1uZXcgbWMsdGhpcy5kYXRlPW5ldyBtYyx0aGlzLmRhdGVUaW1lPW5ldyBtYyx0aGlzLmRlY2ltYWw9bmV3IG1jLHRoaXMuZXhEYXRhPW5ldyBtYyx0aGlzLmZsb2F0PW5ldyBtYyx0aGlzLmltYWdlPW5ldyBtYyx0aGlzLmludGVnZXI9bmV3IG1jLHRoaXMudGV4dD1uZXcgbWMsdGhpcy50aW1lPW5ldyBtY31bYkldKCl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiB0aGlzW3ZvXSgpKUEucHVzaChlW3dJXSgpKTtyZXR1cm4gcUkuc3VjY2VzcyhBKX19Y2xhc3Mgd0MgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywia2VlcCIsITApLHRoaXMuaWQ9QS5pZHx8IiI7Y29uc3QgZT1bIm5vbmUiLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIl07dGhpcy5pbnRhY3Q9SEkoQS5pbnRhY3QsZSksdGhpcy5uZXh0PUhJKEEubmV4dCxlKSx0aGlzLnByZXZpb3VzPUhJKEEucHJldmlvdXMsZSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9fWNsYXNzIERDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImtleVVzYWdlIik7Y29uc3QgZT1bIiIsInllcyIsIm5vIl07dGhpcy5jcmxTaWduPUhJKEEuY3JsU2lnbixlKSx0aGlzLmRhdGFFbmNpcGhlcm1lbnQ9SEkoQS5kYXRhRW5jaXBoZXJtZW50LGUpLHRoaXMuZGVjaXBoZXJPbmx5PUhJKEEuZGVjaXBoZXJPbmx5LGUpLHRoaXMuZGlnaXRhbFNpZ25hdHVyZT1ISShBLmRpZ2l0YWxTaWduYXR1cmUsZSksdGhpcy5lbmNpcGhlck9ubHk9SEkoQS5lbmNpcGhlck9ubHksZSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmtleUFncmVlbWVudD1ISShBLmtleUFncmVlbWVudCxlKSx0aGlzLmtleUNlcnRTaWduPUhJKEEua2V5Q2VydFNpZ24sZSksdGhpcy5rZXlFbmNpcGhlcm1lbnQ9SEkoQS5rZXlFbmNpcGhlcm1lbnQsZSksdGhpcy5ub25SZXB1ZGlhdGlvbj1ISShBLm5vblJlcHVkaWF0aW9uLGUpLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgYkMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywibGluZSIsITApLHRoaXMuaGFuZD1ISShBLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5zbG9wZT1ISShBLnNsb3BlLFsiXFwiLCIvIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmVkZ2U9bnVsbH1bYkldKCl7Y29uc3QgQT10aGlzW1BvXSgpW1BvXSgpLGU9dGhpcy5lZGdlfHxuZXcgX2goe30pLHQ9ZVtGSV0oKSxpPU9iamVjdC5jcmVhdGUobnVsbCksYT0idmlzaWJsZSI9PT1lLnByZXNlbmNlP2UudGhpY2tuZXNzOjA7bGV0IHMsbixyLGc7aS5zdHJva2VXaWR0aD1HYyhhKSxpLnN0cm9rZT10LmNvbG9yO2xldCBvPSIxMDAlIixJPSIxMDAlIjtBLnc8PWE/KFtzLG4scixnXT1bIjUwJSIsMCwiNTAlIiwiMTAwJSJdLG89aS5zdHJva2VXaWR0aCk6QS5oPD1hPyhbcyxuLHIsZ109WzAsIjUwJSIsIjEwMCUiLCI1MCUiXSxJPWkuc3Ryb2tlV2lkdGgpOiJcXCI9PT10aGlzLnNsb3BlP1tzLG4scixnXT1bMCwwLCIxMDAlIiwiMTAwJSJdOltzLG4scixnXT1bMCwiMTAwJSIsIjEwMCUiLDBdO2NvbnN0IGM9e25hbWU6InN2ZyIsY2hpbGRyZW46W3tuYW1lOiJsaW5lIixhdHRyaWJ1dGVzOnt4bWxuczpBaCx4MTpzLHkxOm4seDI6cix5MjpnLHN0eWxlOml9fV0sYXR0cmlidXRlczp7eG1sbnM6QWgsd2lkdGg6byxoZWlnaHQ6SSxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifX19O3JldHVybiBzaChBKT9xSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W2NdfSk6KGMuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHFJLnN1Y2Nlc3MoYykpfX1jbGFzcyBrQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJsaW5lYXIiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJ0b1JpZ2h0IiwidG9Cb3R0b20iLCJ0b0xlZnQiLCJ0b1RvcCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5jb2xvcj1udWxsLHRoaXMuZXh0cmFzPW51bGx9W0ZJXShBKXtyZXR1cm4gQT1BP0FbRkldKCk6IiNGRkZGRkYiLGBsaW5lYXItZ3JhZGllbnQoJHt0aGlzLnR5cGUucmVwbGFjZSgvKFtSQkxUXSkvLCIgJDEiKS50b0xvd2VyQ2FzZSgpfSwgJHtBfSwgJHt0aGlzLmNvbG9yP3RoaXMuY29sb3JbRkldKCk6IiMwMDAwMDAifSlgfX1jbGFzcyBGQyBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJsb2NrRG9jdW1lbnQiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bU29dKCl7dGhpc1tEb109SEkodGhpc1tEb10sWyJhdXRvIiwiMCIsIjEiXSl9fWNsYXNzIFNDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm1hbmlmZXN0IiwhMCksdGhpcy5hY3Rpb249SEkoQS5hY3Rpb24sWyJpbmNsdWRlIiwiYWxsIiwiZXhjbHVkZSJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMucmVmPW5ldyBtY319Y2xhc3MgUkMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywibWFyZ2luIiwhMCksdGhpcy5ib3R0b21JbnNldD1ZSShBLmJvdHRvbUluc2V0LCIwIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxlZnRJbnNldD1ZSShBLmxlZnRJbnNldCwiMCIpLHRoaXMucmlnaHRJbnNldD1ZSShBLnJpZ2h0SW5zZXQsIjAiKSx0aGlzLnRvcEluc2V0PVlJKEEudG9wSW5zZXQsIjAiKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5leHRyYXM9bnVsbH1bRkldKCl7cmV0dXJue21hcmdpbjpHYyh0aGlzLnRvcEluc2V0KSsiICIrR2ModGhpcy5yaWdodEluc2V0KSsiICIrR2ModGhpcy5ib3R0b21JbnNldCkrIiAiK0djKHRoaXMubGVmdEluc2V0KX19fWNsYXNzIEdDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm1kcCIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5wZXJtaXNzaW9ucz1NSSh7ZGF0YTpBLnBlcm1pc3Npb25zLGRlZmF1bHRWYWx1ZToyLHZhbGlkYXRlOkE9PjE9PT1BfHwzPT09QX0pLHRoaXMuc2lnbmF0dXJlVHlwZT1ISShBLnNpZ25hdHVyZVR5cGUsWyJmaWxsZXIiLCJhdXRob3IiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBOQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJtZWRpdW0iKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMuaW1hZ2luZ0JCb3g9ZnVuY3Rpb24oQSl7Y29uc3QgZT0tMTtpZighQSlyZXR1cm57eDplLHk6ZSx3aWR0aDplLGhlaWdodDplfTtjb25zdCB0PUEudHJpbSgpLnNwbGl0KC9ccyosXHMqLykubWFwKChBPT5ZSShBLCItMSIpKSk7aWYodC5sZW5ndGg8NHx8dFsyXTwwfHx0WzNdPDApcmV0dXJue3g6ZSx5OmUsd2lkdGg6ZSxoZWlnaHQ6ZX07Y29uc3RbaSxhLHMsbl09dDtyZXR1cm57eDppLHk6YSx3aWR0aDpzLGhlaWdodDpufX0oQS5pbWFnaW5nQkJveCksdGhpcy5sb25nPVlJKEEubG9uZyksdGhpcy5vcmllbnRhdGlvbj1ISShBLm9yaWVudGF0aW9uLFsicG9ydHJhaXQiLCJsYW5kc2NhcGUiXSksdGhpcy5zaG9ydD1ZSShBLnNob3J0KSx0aGlzLnN0b2NrPUEuc3RvY2t8fCIiLHRoaXMudHJheUluPUhJKEEudHJheUluLFsiYXV0byIsImRlbGVnYXRlIiwicGFnZUZyb250Il0pLHRoaXMudHJheU91dD1ISShBLnRyYXlPdXQsWyJhdXRvIiwiZGVsZWdhdGUiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyB4QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJtZXNzYWdlIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy50ZXh0PW5ldyBtY319Y2xhc3MgVUMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywibnVtZXJpY0VkaXQiLCEwKSx0aGlzLmhTY3JvbGxQb2xpY3k9SEkoQS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5jb21iPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIiksdD10aGlzW1BvXSgpW1BvXSgpLGk9e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixmaWVsZElkOnRbU0ldLGRhdGFJZDp0W2JvXT8uW1NJXXx8dFtTSV0sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTplLCJhcmlhLWxhYmVsIjpjaCh0KSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyZXR1cm4gZ2godCkmJihpLmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMCxpLmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITApLHFJLnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOltpXX0pfX1jbGFzcyBNQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJvY2N1ciIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5pbml0aWFsPSIiIT09QS5pbml0aWFsP01JKHtkYXRhOkEuaW5pdGlhbCxkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6QT0+ITB9KToiIix0aGlzLm1heD0iIiE9PUEubWF4P01JKHtkYXRhOkEubWF4LGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PiEwfSk6IiIsdGhpcy5taW49IiIhPT1BLm1pbj9NSSh7ZGF0YTpBLm1pbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT4hMH0pOiIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsfVtmb10oKXtjb25zdCBBPXRoaXNbUG9dKCksZT10aGlzLm1pbjsiIj09PXRoaXMubWluJiYodGhpcy5taW49QSBpbnN0YW5jZW9mIFlDfHxBIGluc3RhbmNlb2YgdkM/MDoxKSwiIj09PXRoaXMubWF4JiYodGhpcy5tYXg9IiI9PT1lP0EgaW5zdGFuY2VvZiBZQ3x8QSBpbnN0YW5jZW9mIHZDPy0xOjE6dGhpcy5taW4pLC0xIT09dGhpcy5tYXgmJnRoaXMubWF4PHRoaXMubWluJiYodGhpcy5tYXg9dGhpcy5taW4pLCIiPT09dGhpcy5pbml0aWFsJiYodGhpcy5pbml0aWFsPUEgaW5zdGFuY2VvZiBJQj8xOnRoaXMubWluKX19Y2xhc3MgTEMgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywib2lkIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIEpDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm9pZHMiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLm9pZD1uZXcgbWN9fWNsYXNzIEhDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm92ZXJmbG93IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxlYWRlcj1BLmxlYWRlcnx8IiIsdGhpcy50YXJnZXQ9QS50YXJnZXR8fCIiLHRoaXMudHJhaWxlcj1BLnRyYWlsZXJ8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bSG9dKCl7aWYoIXRoaXNbRm9dKXtjb25zdCBBPXRoaXNbUG9dKCksZT10aGlzW1dvXSgpLHQ9ZVtkSV0odGhpcy50YXJnZXQsQSksaT1lW2RJXSh0aGlzLmxlYWRlcixBKSxhPWVbZEldKHRoaXMudHJhaWxlcixBKTt0aGlzW0ZvXT17dGFyZ2V0OnQ/LlswXXx8bnVsbCxsZWFkZXI6aT8uWzBdfHxudWxsLHRyYWlsZXI6YT8uWzBdfHxudWxsLGFkZExlYWRlcjohMSxhZGRUcmFpbGVyOiExfX1yZXR1cm4gdGhpc1tGb119fWNsYXNzIFlDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInBhZ2VBcmVhIiwhMCksdGhpcy5ibGFua09yTm90Qmxhbms9SEkoQS5ibGFua09yTm90QmxhbmssWyJhbnkiLCJibGFuayIsIm5vdEJsYW5rIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5pbml0aWFsTnVtYmVyPU1JKHtkYXRhOkEuaW5pdGlhbE51bWJlcixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT4hMH0pLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMubnVtYmVyZWQ9TUkoe2RhdGE6QS5udW1iZXJlZCxkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT4hMH0pLHRoaXMub2RkT3JFdmVuPUhJKEEub2RkT3JFdmVuLFsiYW55IiwiZXZlbiIsIm9kZCJdKSx0aGlzLnBhZ2VQb3NpdGlvbj1ISShBLnBhZ2VQb3NpdGlvbixbImFueSIsImZpcnN0IiwibGFzdCIsIm9ubHkiLCJyZXN0Il0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5tZWRpdW09bnVsbCx0aGlzLm9jY3VyPW51bGwsdGhpcy5hcmVhPW5ldyBtYyx0aGlzLmNvbnRlbnRBcmVhPW5ldyBtYyx0aGlzLmRyYXc9bmV3IG1jLHRoaXMuZXhjbEdyb3VwPW5ldyBtYyx0aGlzLmZpZWxkPW5ldyBtYyx0aGlzLnN1YmZvcm09bmV3IG1jfVtzSV0oKXtyZXR1cm4gdGhpc1tGb10/IXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbRm9dLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4Oih0aGlzW0ZvXT17bnVtYmVyT2ZVc2U6MH0sITApfVtwb10oKXtkZWxldGUgdGhpc1tGb119W3FvXSgpe3RoaXNbRm9dfHwodGhpc1tGb109e251bWJlck9mVXNlOjB9KTtjb25zdCBBPXRoaXNbUG9dKCk7cmV0dXJuIm9yZGVyZWRPY2N1cnJlbmNlIj09PUEucmVsYXRpb24mJnRoaXNbc0ldKCk/KHRoaXNbRm9dLm51bWJlck9mVXNlKz0xLHRoaXMpOkFbcW9dKCl9W3hvXSgpe3JldHVybiB0aGlzW0ZvXS5zcGFjZXx8e3dpZHRoOjAsaGVpZ2h0OjB9fVtiSV0oKXt0aGlzW0ZvXXx8KHRoaXNbRm9dPXtudW1iZXJPZlVzZToxfSk7Y29uc3QgQT1bXTt0aGlzW0ZvXS5jaGlsZHJlbj1BO2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0aGlzLm1lZGl1bSYmdGhpcy5tZWRpdW0uc2hvcnQmJnRoaXMubWVkaXVtLmxvbmcpe2lmKGUud2lkdGg9R2ModGhpcy5tZWRpdW0uc2hvcnQpLGUuaGVpZ2h0PUdjKHRoaXMubWVkaXVtLmxvbmcpLHRoaXNbRm9dLnNwYWNlPXt3aWR0aDp0aGlzLm1lZGl1bS5zaG9ydCxoZWlnaHQ6dGhpcy5tZWRpdW0ubG9uZ30sImxhbmRzY2FwZSI9PT10aGlzLm1lZGl1bS5vcmllbnRhdGlvbil7Y29uc3QgQT1lLndpZHRoO2Uud2lkdGg9ZS5oZWlnaHQsZS5oZWlnaHQ9QSx0aGlzW0ZvXS5zcGFjZT17d2lkdGg6dGhpcy5tZWRpdW0ubG9uZyxoZWlnaHQ6dGhpcy5tZWRpdW0uc2hvcnR9fX1lbHNlIFUoIlhGQSAtIE5vIG1lZGl1bSBzcGVjaWZpZWQgaW4gcGFnZUFyZWE6IHBsZWFzZSBmaWxlIGEgYnVnLiIpO3JldHVybiB0aGlzW3VvXSh7ZmlsdGVyOm5ldyBTZXQoWyJhcmVhIiwiZHJhdyIsImZpZWxkIiwic3ViZm9ybSJdKSxpbmNsdWRlOiEwfSksdGhpc1t1b10oe2ZpbHRlcjpuZXcgU2V0KFsiY29udGVudEFyZWEiXSksaW5jbHVkZTohMH0pLHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsY2hpbGRyZW46QSxhdHRyaWJ1dGVzOntjbGFzczpbInhmYVBhZ2UiXSxpZDp0aGlzW1NJXSxzdHlsZTplLHhmYU5hbWU6dGhpcy5uYW1lfX0pfX1jbGFzcyB2QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJwYWdlU2V0IiwhMCksdGhpcy5kdXBsZXhJbXBvc2l0aW9uPUhJKEEuZHVwbGV4SW1wb3NpdGlvbixbImxvbmdFZGdlIiwic2hvcnRFZGdlIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yZWxhdGlvbj1ISShBLnJlbGF0aW9uLFsib3JkZXJlZE9jY3VycmVuY2UiLCJkdXBsZXhQYWdpbmF0ZWQiLCJzaW1wbGV4UGFnaW5hdGVkIl0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5vY2N1cj1udWxsLHRoaXMucGFnZUFyZWE9bmV3IG1jLHRoaXMucGFnZVNldD1uZXcgbWN9W3BvXSgpe2Zvcihjb25zdCBBIG9mIHRoaXMucGFnZUFyZWEuY2hpbGRyZW4pQVtwb10oKTtmb3IoY29uc3QgQSBvZiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW4pQVtwb10oKX1bc0ldKCl7cmV0dXJuIXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbRm9dLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4fVtxb10oKXtpZih0aGlzW0ZvXXx8KHRoaXNbRm9dPXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDotMSxwYWdlU2V0SW5kZXg6LTF9KSwib3JkZXJlZE9jY3VycmVuY2UiPT09dGhpcy5yZWxhdGlvbil7aWYodGhpc1tGb10ucGFnZUluZGV4KzE8dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuIHRoaXNbRm9dLnBhZ2VJbmRleCs9MSx0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuW3RoaXNbRm9dLnBhZ2VJbmRleF1bcW9dKCk7aWYodGhpc1tGb10ucGFnZVNldEluZGV4KzE8dGhpcy5wYWdlU2V0LmNoaWxkcmVuLmxlbmd0aClyZXR1cm4gdGhpc1tGb10ucGFnZVNldEluZGV4Kz0xLHRoaXMucGFnZVNldC5jaGlsZHJlblt0aGlzW0ZvXS5wYWdlU2V0SW5kZXhdW3FvXSgpO2lmKHRoaXNbc0ldKCkpcmV0dXJuIHRoaXNbRm9dLm51bWJlck9mVXNlKz0xLHRoaXNbRm9dLnBhZ2VJbmRleD0tMSx0aGlzW0ZvXS5wYWdlU2V0SW5kZXg9LTEsdGhpc1txb10oKTtjb25zdCBBPXRoaXNbUG9dKCk7cmV0dXJuIEEgaW5zdGFuY2VvZiB2Qz9BW3FvXSgpOih0aGlzW3BvXSgpLHRoaXNbcW9dKCkpfWNvbnN0IEE9dGhpc1tXb10oKVtGb10ucGFnZU51bWJlcixlPUElMj09MD8iZXZlbiI6Im9kZCIsdD0wPT09QT8iZmlyc3QiOiJyZXN0IjtsZXQgaT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoKEE9PkEub2RkT3JFdmVuPT09ZSYmQS5wYWdlUG9zaXRpb249PT10KSk7cmV0dXJuIGl8fChpPXRoaXMucGFnZUFyZWEuY2hpbGRyZW4uZmluZCgoQT0+ImFueSI9PT1BLm9kZE9yRXZlbiYmQS5wYWdlUG9zaXRpb249PT10KSksaXx8KGk9dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5maW5kKChBPT4iYW55Ij09PUEub2RkT3JFdmVuJiYiYW55Ij09PUEucGFnZVBvc2l0aW9uKSksaXx8dGhpcy5wYWdlQXJlYS5jaGlsZHJlblswXSkpfX1jbGFzcyBLQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJwYXJhIiwhMCksdGhpcy5oQWxpZ249SEkoQS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5saW5lSGVpZ2h0PUEubGluZUhlaWdodD9ZSShBLmxpbmVIZWlnaHQsIjBwdCIpOiIiLHRoaXMubWFyZ2luTGVmdD1BLm1hcmdpbkxlZnQ/WUkoQS5tYXJnaW5MZWZ0LCIwcHQiKToiIix0aGlzLm1hcmdpblJpZ2h0PUEubWFyZ2luUmlnaHQ/WUkoQS5tYXJnaW5SaWdodCwiMHB0Iik6IiIsdGhpcy5vcnBoYW5zPU1JKHtkYXRhOkEub3JwaGFucyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT5BPj0wfSksdGhpcy5wcmVzZXJ2ZT1BLnByZXNlcnZlfHwiIix0aGlzLnJhZGl4T2Zmc2V0PUEucmFkaXhPZmZzZXQ/WUkoQS5yYWRpeE9mZnNldCwiMHB0Iik6IiIsdGhpcy5zcGFjZUFib3ZlPUEuc3BhY2VBYm92ZT9ZSShBLnNwYWNlQWJvdmUsIjBwdCIpOiIiLHRoaXMuc3BhY2VCZWxvdz1BLnNwYWNlQmVsb3c/WUkoQS5zcGFjZUJlbG93LCIwcHQiKToiIix0aGlzLnRhYkRlZmF1bHQ9QS50YWJEZWZhdWx0P1lJKHRoaXMudGFiRGVmYXVsdCk6IiIsdGhpcy50YWJTdG9wcz0oQS50YWJTdG9wc3x8IiIpLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKCgoQSxlKT0+ZSUyPT0xP1lJKEEpOkEpKSx0aGlzLnRleHRJbmRlbnQ9QS50ZXh0SW5kZW50P1lJKEEudGV4dEluZGVudCwiMHB0Iik6IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMudkFsaWduPUhJKEEudkFsaWduLFsidG9wIiwiYm90dG9tIiwibWlkZGxlIl0pLHRoaXMud2lkb3dzPU1JKHtkYXRhOkEud2lkb3dzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLmh5cGhlbmF0aW9uPW51bGx9W0ZJXSgpe2NvbnN0IEE9WWModGhpcywiaEFsaWduIik7cmV0dXJuIiIhPT10aGlzLm1hcmdpbkxlZnQmJihBLnBhZGRpbmdMZWZ0PUdjKHRoaXMubWFyZ2luTGVmdCkpLCIiIT09dGhpcy5tYXJnaW5SaWdodCYmKEEucGFkZGluZ2lnaHQ9R2ModGhpcy5tYXJnaW5SaWdodCkpLCIiIT09dGhpcy5zcGFjZUFib3ZlJiYoQS5wYWRkaW5nVG9wPUdjKHRoaXMuc3BhY2VBYm92ZSkpLCIiIT09dGhpcy5zcGFjZUJlbG93JiYoQS5wYWRkaW5nQm90dG9tPUdjKHRoaXMuc3BhY2VCZWxvdykpLCIiIT09dGhpcy50ZXh0SW5kZW50JiYoQS50ZXh0SW5kZW50PUdjKHRoaXMudGV4dEluZGVudCksS2MoQSkpLHRoaXMubGluZUhlaWdodD4wJiYoQS5saW5lSGVpZ2h0PUdjKHRoaXMubGluZUhlaWdodCkpLCIiIT09dGhpcy50YWJEZWZhdWx0JiYoQS50YWJTaXplPUdjKHRoaXMudGFiRGVmYXVsdCkpLHRoaXMudGFiU3RvcHMubGVuZ3RoLHRoaXMuaHlwaGVuYXRhdGlvbiYmT2JqZWN0LmFzc2lnbihBLHRoaXMuaHlwaGVuYXRhdGlvbltGSV0oKSksQX19Y2xhc3MgcUMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywicGFzc3dvcmRFZGl0IiwhMCksdGhpcy5oU2Nyb2xsUG9saWN5PUhJKEEuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucGFzc3dvcmRDaGFyPUEucGFzc3dvcmRDaGFyfHwiKiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfX1jbGFzcyBUQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJwYXR0ZXJuIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsiY3Jvc3NIYXRjaCIsImNyb3NzRGlhZ29uYWwiLCJkaWFnb25hbExlZnQiLCJkaWFnb25hbFJpZ2h0IiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvbG9yPW51bGwsdGhpcy5leHRyYXM9bnVsbH1bRkldKEEpe0E9QT9BW0ZJXSgpOiIjRkZGRkZGIjtjb25zdCBlPXRoaXMuY29sb3I/dGhpcy5jb2xvcltGSV0oKToiIzAwMDAwMCIsdD0icmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCIsaT1gJHtBfSwke0F9IDVweCwke2V9IDVweCwke2V9IDEwcHhgO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY3Jvc3NIYXRjaCI6cmV0dXJuYCR7dH0odG8gdG9wLCR7aX0pICR7dH0odG8gcmlnaHQsJHtpfSlgO2Nhc2UiY3Jvc3NEaWFnb25hbCI6cmV0dXJuYCR7dH0oNDVkZWcsJHtpfSkgJHt0fSgtNDVkZWcsJHtpfSlgO2Nhc2UiZGlhZ29uYWxMZWZ0IjpyZXR1cm5gJHt0fSg0NWRlZywke2l9KWA7Y2FzZSJkaWFnb25hbFJpZ2h0IjpyZXR1cm5gJHt0fSgtNDVkZWcsJHtpfSlgO2Nhc2UiaG9yaXpvbnRhbCI6cmV0dXJuYCR7dH0odG8gdG9wLCR7aX0pYDtjYXNlInZlcnRpY2FsIjpyZXR1cm5gJHt0fSh0byByaWdodCwke2l9KWB9cmV0dXJuIiJ9fWNsYXNzIFBDIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInBpY3R1cmUiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgV0MgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywicHJvdG8iLCEwKSx0aGlzLmFwcGVhcmFuY2VGaWx0ZXI9bmV3IG1jLHRoaXMuYXJjPW5ldyBtYyx0aGlzLmFyZWE9bmV3IG1jLHRoaXMuYXNzaXN0PW5ldyBtYyx0aGlzLmJhcmNvZGU9bmV3IG1jLHRoaXMuYmluZEl0ZW1zPW5ldyBtYyx0aGlzLmJvb2tlbmQ9bmV3IG1jLHRoaXMuYm9vbGVhbj1uZXcgbWMsdGhpcy5ib3JkZXI9bmV3IG1jLHRoaXMuYnJlYWs9bmV3IG1jLHRoaXMuYnJlYWtBZnRlcj1uZXcgbWMsdGhpcy5icmVha0JlZm9yZT1uZXcgbWMsdGhpcy5idXR0b249bmV3IG1jLHRoaXMuY2FsY3VsYXRlPW5ldyBtYyx0aGlzLmNhcHRpb249bmV3IG1jLHRoaXMuY2VydGlmaWNhdGU9bmV3IG1jLHRoaXMuY2VydGlmaWNhdGVzPW5ldyBtYyx0aGlzLmNoZWNrQnV0dG9uPW5ldyBtYyx0aGlzLmNob2ljZUxpc3Q9bmV3IG1jLHRoaXMuY29sb3I9bmV3IG1jLHRoaXMuY29tYj1uZXcgbWMsdGhpcy5jb25uZWN0PW5ldyBtYyx0aGlzLmNvbnRlbnRBcmVhPW5ldyBtYyx0aGlzLmNvcm5lcj1uZXcgbWMsdGhpcy5kYXRlPW5ldyBtYyx0aGlzLmRhdGVUaW1lPW5ldyBtYyx0aGlzLmRhdGVUaW1lRWRpdD1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmRlZmF1bHRVaT1uZXcgbWMsdGhpcy5kZXNjPW5ldyBtYyx0aGlzLmRpZ2VzdE1ldGhvZD1uZXcgbWMsdGhpcy5kaWdlc3RNZXRob2RzPW5ldyBtYyx0aGlzLmRyYXc9bmV3IG1jLHRoaXMuZWRnZT1uZXcgbWMsdGhpcy5lbmNvZGluZz1uZXcgbWMsdGhpcy5lbmNvZGluZ3M9bmV3IG1jLHRoaXMuZW5jcnlwdD1uZXcgbWMsdGhpcy5lbmNyeXB0RGF0YT1uZXcgbWMsdGhpcy5lbmNyeXB0aW9uPW5ldyBtYyx0aGlzLmVuY3J5cHRpb25NZXRob2Q9bmV3IG1jLHRoaXMuZW5jcnlwdGlvbk1ldGhvZHM9bmV3IG1jLHRoaXMuZXZlbnQ9bmV3IG1jLHRoaXMuZXhEYXRhPW5ldyBtYyx0aGlzLmV4T2JqZWN0PW5ldyBtYyx0aGlzLmV4Y2xHcm91cD1uZXcgbWMsdGhpcy5leGVjdXRlPW5ldyBtYyx0aGlzLmV4dHJhcz1uZXcgbWMsdGhpcy5maWVsZD1uZXcgbWMsdGhpcy5maWxsPW5ldyBtYyx0aGlzLmZpbHRlcj1uZXcgbWMsdGhpcy5mbG9hdD1uZXcgbWMsdGhpcy5mb250PW5ldyBtYyx0aGlzLmZvcm1hdD1uZXcgbWMsdGhpcy5oYW5kbGVyPW5ldyBtYyx0aGlzLmh5cGhlbmF0aW9uPW5ldyBtYyx0aGlzLmltYWdlPW5ldyBtYyx0aGlzLmltYWdlRWRpdD1uZXcgbWMsdGhpcy5pbnRlZ2VyPW5ldyBtYyx0aGlzLmlzc3VlcnM9bmV3IG1jLHRoaXMuaXRlbXM9bmV3IG1jLHRoaXMua2VlcD1uZXcgbWMsdGhpcy5rZXlVc2FnZT1uZXcgbWMsdGhpcy5saW5lPW5ldyBtYyx0aGlzLmxpbmVhcj1uZXcgbWMsdGhpcy5sb2NrRG9jdW1lbnQ9bmV3IG1jLHRoaXMubWFuaWZlc3Q9bmV3IG1jLHRoaXMubWFyZ2luPW5ldyBtYyx0aGlzLm1kcD1uZXcgbWMsdGhpcy5tZWRpdW09bmV3IG1jLHRoaXMubWVzc2FnZT1uZXcgbWMsdGhpcy5udW1lcmljRWRpdD1uZXcgbWMsdGhpcy5vY2N1cj1uZXcgbWMsdGhpcy5vaWQ9bmV3IG1jLHRoaXMub2lkcz1uZXcgbWMsdGhpcy5vdmVyZmxvdz1uZXcgbWMsdGhpcy5wYWdlQXJlYT1uZXcgbWMsdGhpcy5wYWdlU2V0PW5ldyBtYyx0aGlzLnBhcmE9bmV3IG1jLHRoaXMucGFzc3dvcmRFZGl0PW5ldyBtYyx0aGlzLnBhdHRlcm49bmV3IG1jLHRoaXMucGljdHVyZT1uZXcgbWMsdGhpcy5yYWRpYWw9bmV3IG1jLHRoaXMucmVhc29uPW5ldyBtYyx0aGlzLnJlYXNvbnM9bmV3IG1jLHRoaXMucmVjdGFuZ2xlPW5ldyBtYyx0aGlzLnJlZj1uZXcgbWMsdGhpcy5zY3JpcHQ9bmV3IG1jLHRoaXMuc2V0UHJvcGVydHk9bmV3IG1jLHRoaXMuc2lnbkRhdGE9bmV3IG1jLHRoaXMuc2lnbmF0dXJlPW5ldyBtYyx0aGlzLnNpZ25pbmc9bmV3IG1jLHRoaXMuc29saWQ9bmV3IG1jLHRoaXMuc3BlYWs9bmV3IG1jLHRoaXMuc3RpcHBsZT1uZXcgbWMsdGhpcy5zdWJmb3JtPW5ldyBtYyx0aGlzLnN1YmZvcm1TZXQ9bmV3IG1jLHRoaXMuc3ViamVjdEROPW5ldyBtYyx0aGlzLnN1YmplY3RETnM9bmV3IG1jLHRoaXMuc3VibWl0PW5ldyBtYyx0aGlzLnRleHQ9bmV3IG1jLHRoaXMudGV4dEVkaXQ9bmV3IG1jLHRoaXMudGltZT1uZXcgbWMsdGhpcy50aW1lU3RhbXA9bmV3IG1jLHRoaXMudG9vbFRpcD1uZXcgbWMsdGhpcy50cmF2ZXJzYWw9bmV3IG1jLHRoaXMudHJhdmVyc2U9bmV3IG1jLHRoaXMudWk9bmV3IG1jLHRoaXMudmFsaWRhdGU9bmV3IG1jLHRoaXMudmFsdWU9bmV3IG1jLHRoaXMudmFyaWFibGVzPW5ldyBtY319Y2xhc3MgT0MgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywicmFkaWFsIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsidG9FZGdlIiwidG9DZW50ZXIiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oQSl7QT1BP0FbRkldKCk6IiNGRkZGRkYiO2NvbnN0IGU9dGhpcy5jb2xvcj90aGlzLmNvbG9yW0ZJXSgpOiIjMDAwMDAwIjtyZXR1cm5gcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBjZW50ZXIsICR7InRvRWRnZSI9PT10aGlzLnR5cGU/YCR7QX0sJHtlfWA6YCR7ZX0sJHtBfWB9KWB9fWNsYXNzIFpDIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInJlYXNvbiIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBqQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJyZWFzb25zIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5yZWFzb249bmV3IG1jfX1jbGFzcyBYQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJyZWN0YW5nbGUiLCEwKSx0aGlzLmhhbmQ9SEkoQS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvcm5lcj1uZXcgbWMoNCksdGhpcy5lZGdlPW5ldyBtYyg0KSx0aGlzLmZpbGw9bnVsbH1bYkldKCl7Y29uc3QgQT10aGlzLmVkZ2UuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuZWRnZS5jaGlsZHJlblswXTpuZXcgX2goe30pLGU9QVtGSV0oKSx0PU9iamVjdC5jcmVhdGUobnVsbCk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZT9PYmplY3QuYXNzaWduKHQsdGhpcy5maWxsW0ZJXSgpKTp0LmZpbGw9InRyYW5zcGFyZW50Iix0LnN0cm9rZVdpZHRoPUdjKCJ2aXNpYmxlIj09PUEucHJlc2VuY2U/QS50aGlja25lc3M6MCksdC5zdHJva2U9ZS5jb2xvcjtjb25zdCBpPSh0aGlzLmNvcm5lci5jaGlsZHJlbi5sZW5ndGg/dGhpcy5jb3JuZXIuY2hpbGRyZW5bMF06bmV3IEtoKHt9KSlbRkldKCksYT17bmFtZToic3ZnIixjaGlsZHJlbjpbe25hbWU6InJlY3QiLGF0dHJpYnV0ZXM6e3htbG5zOkFoLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHg6MCx5OjAscng6aS5yYWRpdXMscnk6aS5yYWRpdXMsc3R5bGU6dH19XSxhdHRyaWJ1dGVzOnt4bWxuczpBaCxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19O3JldHVybiBzaCh0aGlzW1BvXSgpW1BvXSgpKT9xSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W2FdfSk6KGEuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHFJLnN1Y2Nlc3MoYSkpfX1jbGFzcyBWQyBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJyZWYiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgX0MgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic2NyaXB0IiksdGhpcy5iaW5kaW5nPUEuYmluZGluZ3x8IiIsdGhpcy5jb250ZW50VHlwZT1BLmNvbnRlbnRUeXBlfHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucnVuQXQ9SEkoQS5ydW5BdCxbImNsaWVudCIsImJvdGgiLCJzZXJ2ZXIiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyB6QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJzZXRQcm9wZXJ0eSIpLHRoaXMuY29ubmVjdGlvbj1BLmNvbm5lY3Rpb258fCIiLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnRhcmdldD1BLnRhcmdldHx8IiJ9fWNsYXNzICRDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInNpZ25EYXRhIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm9wZXJhdGlvbj1ISShBLm9wZXJhdGlvbixbInNpZ24iLCJjbGVhciIsInZlcmlmeSJdKSx0aGlzLnJlZj1BLnJlZnx8IiIsdGhpcy50YXJnZXQ9QS50YXJnZXR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmZpbHRlcj1udWxsLHRoaXMubWFuaWZlc3Q9bnVsbH19Y2xhc3MgQUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic2lnbmF0dXJlIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsiUERGMS4zIiwiUERGMS42Il0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvcmRlcj1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5maWx0ZXI9bnVsbCx0aGlzLm1hbmlmZXN0PW51bGwsdGhpcy5tYXJnaW49bnVsbH19Y2xhc3MgZUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic2lnbmluZyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY2VydGlmaWNhdGU9bmV3IG1jfX1jbGFzcyB0QiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJzb2xpZCIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9W0ZJXShBKXtyZXR1cm4gQT9BW0ZJXSgpOiIjRkZGRkZGIn19Y2xhc3MgaUIgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3BlYWsiKSx0aGlzLmRpc2FibGU9TUkoe2RhdGE6QS5kaXNhYmxlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnByaW9yaXR5PUhJKEEucHJpb3JpdHksWyJjdXN0b20iLCJjYXB0aW9uIiwibmFtZSIsInRvb2xUaXAiXSksdGhpcy5yaWQ9QS5yaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgYUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3RpcHBsZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5yYXRlPU1JKHtkYXRhOkEucmF0ZSxkZWZhdWx0VmFsdWU6NTAsdmFsaWRhdGU6QT0+QT49MCYmQTw9MTAwfSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oQSl7Y29uc3QgZT10aGlzLnJhdGUvMTAwO3JldHVybiAkLm1ha2VIZXhDb2xvcihNYXRoLnJvdW5kKEEudmFsdWUuciooMS1lKSt0aGlzLnZhbHVlLnIqZSksTWF0aC5yb3VuZChBLnZhbHVlLmcqKDEtZSkrdGhpcy52YWx1ZS5nKmUpLE1hdGgucm91bmQoQS52YWx1ZS5iKigxLWUpK3RoaXMudmFsdWUuYiplKSl9fWNsYXNzIHNCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInN1YmZvcm0iLCEwKSx0aGlzLmFjY2Vzcz1ISShBLmFjY2VzcyxbIm9wZW4iLCJub25JbnRlcmFjdGl2ZSIsInByb3RlY3RlZCIsInJlYWRPbmx5Il0pLHRoaXMuYWxsb3dNYWNybz1NSSh7ZGF0YTpBLmFsbG93TWFjcm8sZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmFuY2hvclR5cGU9SEkoQS5hbmNob3JUeXBlLFsidG9wTGVmdCIsImJvdHRvbUNlbnRlciIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsIm1pZGRsZUNlbnRlciIsIm1pZGRsZUxlZnQiLCJtaWRkbGVSaWdodCIsInRvcENlbnRlciIsInRvcFJpZ2h0Il0pLHRoaXMuY29sU3Bhbj1NSSh7ZGF0YTpBLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6QT0+QT49MXx8LTE9PT1BfSksdGhpcy5jb2x1bW5XaWR0aHM9KEEuY29sdW1uV2lkdGhzfHwiIikudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKEE9PiItMSI9PT1BPy0xOllJKEEpKSksdGhpcy5oPUEuaD9ZSShBLmgpOiIiLHRoaXMuaEFsaWduPUhJKEEuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubGF5b3V0PUhJKEEubGF5b3V0LFsicG9zaXRpb24iLCJsci10YiIsInJsLXJvdyIsInJsLXRiIiwicm93IiwidGFibGUiLCJ0YiJdKSx0aGlzLmxvY2FsZT1BLmxvY2FsZXx8IiIsdGhpcy5tYXhIPVlJKEEubWF4SCwiMHB0IiksdGhpcy5tYXhXPVlJKEEubWF4VywiMHB0IiksdGhpcy5tZXJnZU1vZGU9SEkoQS5tZXJnZU1vZGUsWyJjb25zdW1lRGF0YSIsIm1hdGNoVGVtcGxhdGUiXSksdGhpcy5taW5IPVlJKEEubWluSCwiMHB0IiksdGhpcy5taW5XPVlJKEEubWluVywiMHB0IiksdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy5yZXN0b3JlU3RhdGU9SEkoQS5yZXN0b3JlU3RhdGUsWyJtYW51YWwiLCJhdXRvIl0pLHRoaXMuc2NvcGU9SEkoQS5zY29wZSxbIm5hbWUiLCJub25lIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9QS53P1lJKEEudyk6IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5hc3Npc3Q9bnVsbCx0aGlzLmJpbmQ9bnVsbCx0aGlzLmJvb2tlbmQ9bnVsbCx0aGlzLmJvcmRlcj1udWxsLHRoaXMuYnJlYWs9bnVsbCx0aGlzLmNhbGN1bGF0ZT1udWxsLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5rZWVwPW51bGwsdGhpcy5tYXJnaW49bnVsbCx0aGlzLm9jY3VyPW51bGwsdGhpcy5vdmVyZmxvdz1udWxsLHRoaXMucGFnZVNldD1udWxsLHRoaXMucGFyYT1udWxsLHRoaXMudHJhdmVyc2FsPW51bGwsdGhpcy52YWxpZGF0ZT1udWxsLHRoaXMudmFyaWFibGVzPW51bGwsdGhpcy5hcmVhPW5ldyBtYyx0aGlzLmJyZWFrQWZ0ZXI9bmV3IG1jLHRoaXMuYnJlYWtCZWZvcmU9bmV3IG1jLHRoaXMuY29ubmVjdD1uZXcgbWMsdGhpcy5kcmF3PW5ldyBtYyx0aGlzLmV2ZW50PW5ldyBtYyx0aGlzLmV4T2JqZWN0PW5ldyBtYyx0aGlzLmV4Y2xHcm91cD1uZXcgbWMsdGhpcy5maWVsZD1uZXcgbWMsdGhpcy5wcm90bz1uZXcgbWMsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWMsdGhpcy5zdWJmb3JtPW5ldyBtYyx0aGlzLnN1YmZvcm1TZXQ9bmV3IG1jfVtUb10oKXtjb25zdCBBPXRoaXNbUG9dKCk7cmV0dXJuIEEgaW5zdGFuY2VvZiBuQj9BW1RvXSgpOkF9W3pvXSgpe3JldHVybiEwfVtpSV0oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZW5kc1dpdGgoIi10YiIpJiYwPT09dGhpc1tGb10uYXR0ZW1wdCYmdGhpc1tGb10ubnVtYmVySW5MaW5lPjB8fHRoaXNbUG9dKClbaUldKCl9KltLb10oKXt5aWVsZCpyaCh0aGlzKX1bUm9dKCl7cmV0dXJuIFhjKHRoaXMpfVtRb10oQSxlKXtWYyh0aGlzLEEsZSl9W3hvXSgpe3JldHVybiBfYyh0aGlzKX1bdEldKCl7Y29uc3QgQT10aGlzW1RvXSgpO3JldHVybiEhQVt0SV0oKSYmKHZvaWQgMCE9PXRoaXNbRm9dLl9pc1NwbGl0dGFibGU/dGhpc1tGb10uX2lzU3BsaXR0YWJsZToicG9zaXRpb24iPT09dGhpcy5sYXlvdXR8fHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKXx8dGhpcy5rZWVwJiYibm9uZSIhPT10aGlzLmtlZXAuaW50YWN0Pyh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSExLCExKTohKEEubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1BW0ZvXS5udW1iZXJJbkxpbmV8fCh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSEwLDApKSl9W2JJXShBKXtpZihvaCh0aGlzKSx0aGlzLmJyZWFrKXtpZigiYXV0byIhPT10aGlzLmJyZWFrLmFmdGVyfHwiIiE9PXRoaXMuYnJlYWsuYWZ0ZXJUYXJnZXQpe2NvbnN0IEE9bmV3IEZoKHt0YXJnZXRUeXBlOnRoaXMuYnJlYWsuYWZ0ZXIsdGFyZ2V0OnRoaXMuYnJlYWsuYWZ0ZXJUYXJnZXQsc3RhcnROZXc6dGhpcy5icmVhay5zdGFydE5ldy50b1N0cmluZygpfSk7QVtPb109dGhpc1tPb10sdGhpc1tFb10oQSksdGhpcy5icmVha0FmdGVyLnB1c2goQSl9aWYoImF1dG8iIT09dGhpcy5icmVhay5iZWZvcmV8fCIiIT09dGhpcy5icmVhay5iZWZvcmVUYXJnZXQpe2NvbnN0IEE9bmV3IFNoKHt0YXJnZXRUeXBlOnRoaXMuYnJlYWsuYmVmb3JlLHRhcmdldDp0aGlzLmJyZWFrLmJlZm9yZVRhcmdldCxzdGFydE5ldzp0aGlzLmJyZWFrLnN0YXJ0TmV3LnRvU3RyaW5nKCl9KTtBW09vXT10aGlzW09vXSx0aGlzW0VvXShBKSx0aGlzLmJyZWFrQmVmb3JlLnB1c2goQSl9aWYoIiIhPT10aGlzLmJyZWFrLm92ZXJmbG93VGFyZ2V0KXtjb25zdCBBPW5ldyBIQyh7dGFyZ2V0OnRoaXMuYnJlYWsub3ZlcmZsb3dUYXJnZXQsbGVhZGVyOnRoaXMuYnJlYWsub3ZlcmZsb3dMZWFkZXIsdHJhaWxlcjp0aGlzLmJyZWFrLm92ZXJmbG93VHJhaWxlcn0pO0FbT29dPXRoaXNbT29dLHRoaXNbRW9dKEEpLHRoaXMub3ZlcmZsb3cucHVzaChBKX10aGlzW1FJXSh0aGlzLmJyZWFrKSx0aGlzLmJyZWFrPW51bGx9aWYoImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gcUkuRU1QVFk7aWYoKHRoaXMuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPjF8fHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+MSkmJlUoIlhGQSAtIFNldmVyYWwgYnJlYWtCZWZvcmUgb3IgYnJlYWtBZnRlciBpbiBzdWJmb3JtczogcGxlYXNlIGZpbGUgYSBidWcuIiksdGhpcy5icmVha0JlZm9yZS5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IEE9dGhpcy5icmVha0JlZm9yZS5jaGlsZHJlblswXTtpZihsaChBKSlyZXR1cm4gcUkuYnJlYWtOb2RlKEEpfWlmKHRoaXNbRm9dPy5hZnRlckJyZWFrQWZ0ZXIpcmV0dXJuIHFJLkVNUFRZO0pjKHRoaXMpO2NvbnN0IGU9W10sdD17aWQ6dGhpc1tTSV0sY2xhc3M6W119O3FjKHRoaXMsdC5jbGFzcyksdGhpc1tGb118fCh0aGlzW0ZvXT1PYmplY3QuY3JlYXRlKG51bGwpKSxPYmplY3QuYXNzaWduKHRoaXNbRm9dLHtjaGlsZHJlbjplLGxpbmU6bnVsbCxhdHRyaWJ1dGVzOnQsYXR0ZW1wdDowLG51bWJlckluTGluZTowLGF2YWlsYWJsZVNwYWNlOnt3aWR0aDpNYXRoLm1pbih0aGlzLnd8fDEvMCxBLndpZHRoKSxoZWlnaHQ6TWF0aC5taW4odGhpcy5ofHwxLzAsQS5oZWlnaHQpfSx3aWR0aDowLGhlaWdodDowLHByZXZIZWlnaHQ6MCxjdXJyZW50V2lkdGg6MH0pO2NvbnN0IGk9dGhpc1tXb10oKSxhPWlbRm9dLm5vTGF5b3V0RmFpbHVyZSxzPXRoaXNbdEldKCk7aWYoc3x8Q2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHFJLkZBSUxVUkU7Y29uc3Qgbj1uZXcgU2V0KFsiYXJlYSIsImRyYXciLCJleGNsR3JvdXAiLCJmaWVsZCIsInN1YmZvcm0iLCJzdWJmb3JtU2V0Il0pO2lmKHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7Y29uc3QgQT10aGlzW1RvXSgpLmNvbHVtbldpZHRocztBcnJheS5pc0FycmF5KEEpJiZBLmxlbmd0aD4wJiYodGhpc1tGb10uY29sdW1uV2lkdGhzPUEsdGhpc1tGb10uY3VycmVudENvbHVtbj0wKX1jb25zdCByPVljKHRoaXMsImFuY2hvclR5cGUiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsImJvcmRlciIsIm1hcmdpbiIsImhBbGlnbiIpLGc9WyJ4ZmFTdWJmb3JtIl0sbz1IYyh0aGlzKTtpZihvJiZnLnB1c2gobyksdC5zdHlsZT1yLHQuY2xhc3M9Zyx0aGlzLm5hbWUmJih0LnhmYU5hbWU9dGhpcy5uYW1lKSx0aGlzLm92ZXJmbG93KXtjb25zdCBlPXRoaXMub3ZlcmZsb3dbSG9dKCk7ZS5hZGRMZWFkZXImJihlLmFkZExlYWRlcj0hMSxRaCh0aGlzLGUubGVhZGVyLEEpKX10aGlzW2xJXSgpO2NvbnN0IEk9ImxyLXRiIj09PXRoaXMubGF5b3V0fHwicmwtdGIiPT09dGhpcy5sYXlvdXQsYz1JPzI6MTtmb3IoO3RoaXNbRm9dLmF0dGVtcHQ8Yzt0aGlzW0ZvXS5hdHRlbXB0Kyspe0kmJjE9PT10aGlzW0ZvXS5hdHRlbXB0JiYodGhpc1tGb10ubnVtYmVySW5MaW5lPTApO2NvbnN0IEE9dGhpc1t1b10oe2ZpbHRlcjpuLGluY2x1ZGU6ITB9KTtpZihBLnN1Y2Nlc3MpYnJlYWs7aWYoQS5pc0JyZWFrKCkpcmV0dXJuIHRoaXNbQkldKCksQTtpZihJJiYwPT09dGhpc1tGb10uYXR0ZW1wdCYmMD09PXRoaXNbRm9dLm51bWJlckluTGluZSYmIWlbRm9dLm5vTGF5b3V0RmFpbHVyZSl7dGhpc1tGb10uYXR0ZW1wdD1jO2JyZWFrfX1pZih0aGlzW0JJXSgpLHN8fEJoKHRoaXMpLGlbRm9dLm5vTGF5b3V0RmFpbHVyZT1hLHRoaXNbRm9dLmF0dGVtcHQ9PT1jKXJldHVybiB0aGlzLm92ZXJmbG93JiYodGhpc1tXb10oKVtGb10ub3ZlcmZsb3dOb2RlPXRoaXMub3ZlcmZsb3cpLHN8fGRlbGV0ZSB0aGlzW0ZvXSxxSS5GQUlMVVJFO2lmKHRoaXMub3ZlcmZsb3cpe2NvbnN0IGU9dGhpcy5vdmVyZmxvd1tIb10oKTtlLmFkZFRyYWlsZXImJihlLmFkZFRyYWlsZXI9ITEsUWgodGhpcyxlLnRyYWlsZXIsQSkpfWxldCBoPTAsQz0wO3RoaXMubWFyZ2luJiYoaD10aGlzLm1hcmdpbi5sZWZ0SW5zZXQrdGhpcy5tYXJnaW4ucmlnaHRJbnNldCxDPXRoaXMubWFyZ2luLnRvcEluc2V0K3RoaXMubWFyZ2luLmJvdHRvbUluc2V0KTtjb25zdCBCPU1hdGgubWF4KHRoaXNbRm9dLndpZHRoK2gsdGhpcy53fHwwKSxsPU1hdGgubWF4KHRoaXNbRm9dLmhlaWdodCtDLHRoaXMuaHx8MCksUT1bdGhpcy54LHRoaXMueSxCLGxdO2lmKCIiPT09dGhpcy53JiYoci53aWR0aD1HYyhCKSksIiI9PT10aGlzLmgmJihyLmhlaWdodD1HYyhsKSksKCIwcHgiPT09ci53aWR0aHx8IjBweCI9PT1yLmhlaWdodCkmJjA9PT1lLmxlbmd0aClyZXR1cm4gcUkuRU1QVFk7Y29uc3QgRT17bmFtZToiZGl2IixhdHRyaWJ1dGVzOnQsY2hpbGRyZW46ZX07SWgodGhpcyx0KTtjb25zdCB1PXFJLnN1Y2Nlc3ModmModGhpcyxFKSxRKTtpZih0aGlzLmJyZWFrQWZ0ZXIuY2hpbGRyZW4ubGVuZ3RoPj0xKXtjb25zdCBBPXRoaXMuYnJlYWtBZnRlci5jaGlsZHJlblswXTtpZihsaChBKSlyZXR1cm4gdGhpc1tGb10uYWZ0ZXJCcmVha0FmdGVyPXUscUkuYnJlYWtOb2RlKEEpfXJldHVybiBkZWxldGUgdGhpc1tGb10sdX19Y2xhc3MgbkIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3ViZm9ybVNldCIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yZWxhdGlvbj1ISShBLnJlbGF0aW9uLFsib3JkZXJlZCIsImNob2ljZSIsInVub3JkZXJlZCJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvb2tlbmQ9bnVsbCx0aGlzLmJyZWFrPW51bGwsdGhpcy5kZXNjPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm9jY3VyPW51bGwsdGhpcy5vdmVyZmxvdz1udWxsLHRoaXMuYnJlYWtBZnRlcj1uZXcgbWMsdGhpcy5icmVha0JlZm9yZT1uZXcgbWMsdGhpcy5zdWJmb3JtPW5ldyBtYyx0aGlzLnN1YmZvcm1TZXQ9bmV3IG1jfSpbS29dKCl7eWllbGQqcmgodGhpcyl9W1RvXSgpe2xldCBBPXRoaXNbUG9dKCk7Zm9yKDshKEEgaW5zdGFuY2VvZiBzQik7KUE9QVtQb10oKTtyZXR1cm4gQX1bem9dKCl7cmV0dXJuITB9fWNsYXNzIHJCIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInN1YmplY3RETiIpLHRoaXMuZGVsaW1pdGVyPUEuZGVsaW1pdGVyfHwiLCIsdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe3RoaXNbRG9dPW5ldyBNYXAodGhpc1tEb10uc3BsaXQodGhpcy5kZWxpbWl0ZXIpLm1hcCgoQT0+KChBPUEuc3BsaXQoIj0iLDIpKVswXT1BWzBdLnRyaW0oKSxBKSkpKX19Y2xhc3MgZ0IgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3ViamVjdEROcyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuc3ViamVjdEROPW5ldyBtY319Y2xhc3Mgb0IgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3VibWl0IiwhMCksdGhpcy5lbWJlZFBERj1NSSh7ZGF0YTpBLmVtYmVkUERGLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5mb3JtYXQ9SEkoQS5mb3JtYXQsWyJ4ZHAiLCJmb3JtZGF0YSIsInBkZiIsInVybGVuY29kZWQiLCJ4ZmQiLCJ4bWwiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnRhcmdldD1BLnRhcmdldHx8IiIsdGhpcy50ZXh0RW5jb2Rpbmc9Skkoe2RhdGE6QS50ZXh0RW5jb2Rpbmc/QS50ZXh0RW5jb2RpbmcudG9Mb3dlckNhc2UoKToiIixkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6QT0+WyJ1dGYtOCIsImJpZy1maXZlIiwiZm9udHNwZWNpZmljIiwiZ2JrIiwiZ2ItMTgwMzAiLCJnYi0yMzEyIiwia3NjLTU2MDEiLCJub25lIiwic2hpZnQtamlzIiwidWNzLTIiLCJ1dGYtMTYiXS5pbmNsdWRlcyhBKXx8QS5tYXRjaCgvaXNvLTg4NTktXGR7Mn0vKX0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnhkcENvbnRlbnQ9QS54ZHBDb250ZW50fHwiIix0aGlzLmVuY3J5cHQ9bnVsbCx0aGlzLmVuY3J5cHREYXRhPW5ldyBtYyx0aGlzLnNpZ25EYXRhPW5ldyBtY319Y2xhc3MgSUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidGVtcGxhdGUiLCEwKSx0aGlzLmJhc2VQcm9maWxlPUhJKEEuYmFzZVByb2ZpbGUsWyJmdWxsIiwiaW50ZXJhY3RpdmVGb3JtcyJdKSx0aGlzLmV4dHJhcz1udWxsLHRoaXMuc3ViZm9ybT1uZXcgbWN9W1NvXSgpezA9PT10aGlzLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoJiZVKCJYRkEgLSBObyBzdWJmb3JtcyBpbiB0ZW1wbGF0ZSBub2RlLiIpLHRoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTImJlUoIlhGQSAtIFNldmVyYWwgc3ViZm9ybXMgaW4gdGVtcGxhdGUgbm9kZTogcGxlYXNlIGZpbGUgYSBidWcuIiksdGhpc1t5SV09NWUzfVt0SV0oKXtyZXR1cm4hMH1bZEldKEEsZSl7cmV0dXJuIEEuc3RhcnRzV2l0aCgiIyIpP1t0aGlzW2pvXS5nZXQoQS5zbGljZSgxKSldOkFjKHRoaXMsZSxBLCEwLCEwKX0qW0RJXSgpe2lmKCF0aGlzLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoKXJldHVybiBxSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdfSk7dGhpc1tGb109e292ZXJmbG93Tm9kZTpudWxsLGZpcnN0VW5zcGxpdHRhYmxlOm51bGwsY3VycmVudENvbnRlbnRBcmVhOm51bGwsY3VycmVudFBhZ2VBcmVhOm51bGwsbm9MYXlvdXRGYWlsdXJlOiExLHBhZ2VOdW1iZXI6MSxwYWdlUG9zaXRpb246ImZpcnN0IixvZGRPckV2ZW46Im9kZCIsYmxhbmtPck5vdEJsYW5rOiJub25CbGFuayIscGFyYVN0YWNrOltdfTtjb25zdCBBPXRoaXMuc3ViZm9ybS5jaGlsZHJlblswXTtBLnBhZ2VTZXRbcG9dKCk7Y29uc3QgZT1BLnBhZ2VTZXQucGFnZUFyZWEuY2hpbGRyZW4sdD17bmFtZToiZGl2IixjaGlsZHJlbjpbXX07bGV0IGk9bnVsbCxhPW51bGwscz1udWxsO2lmKEEuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPj0xPyhhPUEuYnJlYWtCZWZvcmUuY2hpbGRyZW5bMF0scz1hLnRhcmdldCk6QS5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aD49MSYmQS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrQmVmb3JlLmNoaWxkcmVuLmxlbmd0aD49MT8oYT1BLnN1YmZvcm0uY2hpbGRyZW5bMF0uYnJlYWtCZWZvcmUuY2hpbGRyZW5bMF0scz1hLnRhcmdldCk6QS5icmVhaz8uYmVmb3JlVGFyZ2V0PyhhPUEuYnJlYWsscz1hLmJlZm9yZVRhcmdldCk6QS5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aD49MSYmQS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrPy5iZWZvcmVUYXJnZXQmJihhPUEuc3ViZm9ybS5jaGlsZHJlblswXS5icmVhayxzPWEuYmVmb3JlVGFyZ2V0KSxhKXtjb25zdCBBPXRoaXNbZEldKHMsYVtQb10oKSk7QSBpbnN0YW5jZW9mIFlDJiYoaT1BLGFbRm9dPXt9KX1pfHwoaT1lWzBdKSxpW0ZvXT17bnVtYmVyT2ZVc2U6MX07Y29uc3Qgbj1pW1BvXSgpO2xldCByO25bRm9dPXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDpuLnBhZ2VBcmVhLmNoaWxkcmVuLmluZGV4T2YoaSkscGFnZVNldEluZGV4OjB9O2xldCBnPW51bGwsbz1udWxsLEk9ITAsYz0wLGg9MDtmb3IoOzspe2lmKEkpYz0wO2Vsc2UgaWYodC5jaGlsZHJlbi5wb3AoKSwzPT0rK2MpcmV0dXJuIFUoIlhGQSAtIFNvbWV0aGluZyBnb2VzIHdyb25nOiBwbGVhc2UgZmlsZSBhIGJ1Zy4iKSx0O3I9bnVsbCx0aGlzW0ZvXS5jdXJyZW50UGFnZUFyZWE9aTtjb25zdCBlPWlbYkldKCkuaHRtbDt0LmNoaWxkcmVuLnB1c2goZSksZyYmKHRoaXNbRm9dLm5vTGF5b3V0RmFpbHVyZT0hMCxlLmNoaWxkcmVuLnB1c2goZ1tiSV0oaVtGb10uc3BhY2UpLmh0bWwpLGc9bnVsbCksbyYmKHRoaXNbRm9dLm5vTGF5b3V0RmFpbHVyZT0hMCxlLmNoaWxkcmVuLnB1c2gob1tiSV0oaVtGb10uc3BhY2UpLmh0bWwpLG89bnVsbCk7Y29uc3QgYT1pLmNvbnRlbnRBcmVhLmNoaWxkcmVuLHM9ZS5jaGlsZHJlbi5maWx0ZXIoKEE9PkEuYXR0cmlidXRlcy5jbGFzcy5pbmNsdWRlcygieGZhQ29udGVudGFyZWEiKSkpO0k9ITEsdGhpc1tGb10uZmlyc3RVbnNwbGl0dGFibGU9bnVsbCx0aGlzW0ZvXS5ub0xheW91dEZhaWx1cmU9ITE7Y29uc3Qgbj1lPT57Y29uc3QgdD1BW1JvXSgpO3QmJihJfHw9dC5jaGlsZHJlbj8ubGVuZ3RoPjAsc1tlXS5jaGlsZHJlbi5wdXNoKHQpKX07Zm9yKGxldCBlPWgsaT1hLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPXRoaXNbRm9dLmN1cnJlbnRDb250ZW50QXJlYT1hW2VdLGM9e3dpZHRoOmkudyxoZWlnaHQ6aS5ofTtoPTAsZyYmKHNbZV0uY2hpbGRyZW4ucHVzaChnW2JJXShjKS5odG1sKSxnPW51bGwpLG8mJihzW2VdLmNoaWxkcmVuLnB1c2gob1tiSV0oYykuaHRtbCksbz1udWxsKTtjb25zdCBDPUFbYkldKGMpO2lmKEMuc3VjY2VzcylyZXR1cm4gQy5odG1sPyhJfHw9Qy5odG1sLmNoaWxkcmVuPy5sZW5ndGg+MCxzW2VdLmNoaWxkcmVuLnB1c2goQy5odG1sKSk6IUkmJnQuY2hpbGRyZW4ubGVuZ3RoPjEmJnQuY2hpbGRyZW4ucG9wKCksdDtpZihDLmlzQnJlYWsoKSl7Y29uc3QgQT1DLmJyZWFrTm9kZTtpZihuKGUpLCJhdXRvIj09PUEudGFyZ2V0VHlwZSljb250aW51ZTtBLmxlYWRlciYmKGc9dGhpc1tkSV0oQS5sZWFkZXIsQVtQb10oKSksZz1nP2dbMF06bnVsbCksQS50cmFpbGVyJiYobz10aGlzW2RJXShBLnRyYWlsZXIsQVtQb10oKSksbz1vP29bMF06bnVsbCksInBhZ2VBcmVhIj09PUEudGFyZ2V0VHlwZT8ocj1BW0ZvXS50YXJnZXQsZT0xLzApOkFbRm9dLnRhcmdldD8ocj1BW0ZvXS50YXJnZXQsaD1BW0ZvXS5pbmRleCsxLGU9MS8wKTplPUFbRm9dLmluZGV4fWVsc2UgaWYodGhpc1tGb10ub3ZlcmZsb3dOb2RlKXtjb25zdCBBPXRoaXNbRm9dLm92ZXJmbG93Tm9kZTt0aGlzW0ZvXS5vdmVyZmxvd05vZGU9bnVsbDtjb25zdCB0PUFbSG9dKCksaT10LnRhcmdldDt0LmFkZExlYWRlcj1udWxsIT09dC5sZWFkZXIsdC5hZGRUcmFpbGVyPW51bGwhPT10LnRyYWlsZXIsbihlKTtjb25zdCBzPWU7aWYoZT0xLzAsaSBpbnN0YW5jZW9mIFlDKXI9aTtlbHNlIGlmKGkgaW5zdGFuY2VvZiB2aCl7Y29uc3QgQT1hLmluZGV4T2YoaSk7LTEhPT1BP0E+cz9lPUEtMTpoPUE6KHI9aVtQb10oKSxoPXIuY29udGVudEFyZWEuY2hpbGRyZW4uaW5kZXhPZihpKSl9fWVsc2UgbihlKX10aGlzW0ZvXS5wYWdlTnVtYmVyKz0xLHImJihyW3NJXSgpP3JbRm9dLm51bWJlck9mVXNlKz0xOnI9bnVsbCksaT1yfHxpW3FvXSgpLHlpZWxkIG51bGx9fX1jbGFzcyBjQiBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0ZXh0IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm1heENoYXJzPU1JKHtkYXRhOkEubWF4Q2hhcnMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucmlkPUEucmlkfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W2xvXSgpe3JldHVybiEwfVtJSV0oQSl7cmV0dXJuIEFbckldPT09R0kueGh0bWwuaWQ/KHRoaXNbRG9dPUEsITApOihVKGBYRkEgLSBJbnZhbGlkIGNvbnRlbnQgaW4gVGV4dDogJHtBW2dJXX0uYCksITEpfVtoSV0oQSl7dGhpc1tEb11pbnN0YW5jZW9mIHBjfHxzdXBlcltoSV0oQSl9W1NvXSgpeyJzdHJpbmciPT10eXBlb2YgdGhpc1tEb10mJih0aGlzW0RvXT10aGlzW0RvXS5yZXBsYWNlQWxsKCJcclxuIiwiXG4iKSl9W0hvXSgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdGhpc1tEb10/dGhpc1tEb10uc3BsaXQoL1tcdTIwMjlcdTIwMjhcbl0vKS5yZWR1Y2UoKChBLGUpPT4oZSYmQS5wdXNoKGUpLEEpKSxbXSkuam9pbigiXG4iKTp0aGlzW0RvXVt3SV0oKX1bYkldKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgdGhpc1tEb10pe2NvbnN0IEE9aGgodGhpc1tEb10pLmh0bWw7cmV0dXJuIHRoaXNbRG9dLmluY2x1ZGVzKCJcdTIwMjkiKT8oQS5uYW1lPSJkaXYiLEEuY2hpbGRyZW49W10sdGhpc1tEb10uc3BsaXQoIlx1MjAyOSIpLm1hcCgoQT0+QS5zcGxpdCgvW1x1MjAyOFxuXS8pLnJlZHVjZSgoKEEsZSk9PihBLnB1c2goe25hbWU6InNwYW4iLHZhbHVlOmV9LHtuYW1lOiJiciJ9KSxBKSksW10pKSkuZm9yRWFjaCgoZT0+e0EuY2hpbGRyZW4ucHVzaCh7bmFtZToicCIsY2hpbGRyZW46ZX0pfSkpKTovW1x1MjAyOFxuXS8udGVzdCh0aGlzW0RvXSkmJihBLm5hbWU9ImRpdiIsQS5jaGlsZHJlbj1bXSx0aGlzW0RvXS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZvckVhY2goKGU9PntBLmNoaWxkcmVuLnB1c2goe25hbWU6InNwYW4iLHZhbHVlOmV9LHtuYW1lOiJiciJ9KX0pKSkscUkuc3VjY2VzcyhBKX1yZXR1cm4gdGhpc1tEb11bYkldKEEpfX1jbGFzcyBoQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0ZXh0RWRpdCIsITApLHRoaXMuYWxsb3dSaWNoVGV4dD1NSSh7ZGF0YTpBLmFsbG93UmljaFRleHQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmhTY3JvbGxQb2xpY3k9SEkoQS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5tdWx0aUxpbmU9TUkoe2RhdGE6QS5tdWx0aUxpbmUsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOkE9PjA9PT1BfHwxPT09QX0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnZTY3JvbGxQb2xpY3k9SEkoQS52U2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5jb21iPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIik7bGV0IHQ7Y29uc3QgaT10aGlzW1BvXSgpW1BvXSgpO3JldHVybiIiPT09dGhpcy5tdWx0aUxpbmUmJih0aGlzLm11bHRpTGluZT1pIGluc3RhbmNlb2YgVmg/MTowKSx0PTE9PT10aGlzLm11bHRpTGluZT97bmFtZToidGV4dGFyZWEiLGF0dHJpYnV0ZXM6e2RhdGFJZDppW2JvXT8uW1NJXXx8aVtTSV0sZmllbGRJZDppW1NJXSxjbGFzczpbInhmYVRleHRmaWVsZCJdLHN0eWxlOmUsImFyaWEtbGFiZWwiOmNoKGkpLCJhcmlhLXJlcXVpcmVkIjohMX19OntuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7dHlwZToidGV4dCIsZGF0YUlkOmlbYm9dPy5bU0ldfHxpW1NJXSxmaWVsZElkOmlbU0ldLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6ZSwiYXJpYS1sYWJlbCI6Y2goaSksImFyaWEtcmVxdWlyZWQiOiExfX0sZ2goaSkmJih0LmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMCx0LmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITApLHFJLnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOlt0XX0pfX1jbGFzcyBDQiBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0aW1lIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9dGhpc1tEb10udHJpbSgpO3RoaXNbRG9dPUE/bmV3IERhdGUoQSk6bnVsbH1bYkldKEEpe3JldHVybiBoaCh0aGlzW0RvXT90aGlzW0RvXS50b1N0cmluZygpOiIiKX19Y2xhc3MgQkIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidGltZVN0YW1wIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnNlcnZlcj1BLnNlcnZlcnx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBsQiBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0b29sVGlwIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnJpZD1BLnJpZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBRQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0cmF2ZXJzYWwiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMudHJhdmVyc2U9bmV3IG1jfX1jbGFzcyBFQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0cmF2ZXJzZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5vcGVyYXRpb249SEkoQS5vcGVyYXRpb24sWyJuZXh0IiwiYmFjayIsImRvd24iLCJmaXJzdCIsImxlZnQiLCJyaWdodCIsInVwIl0pLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5leHRyYXM9bnVsbCx0aGlzLnNjcmlwdD1udWxsfWdldCBuYW1lKCl7cmV0dXJuIHRoaXMub3BlcmF0aW9ufVthSV0oKXtyZXR1cm4hMX19Y2xhc3MgdUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidWkiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMucGljdHVyZT1udWxsLHRoaXMuYmFyY29kZT1udWxsLHRoaXMuYnV0dG9uPW51bGwsdGhpcy5jaGVja0J1dHRvbj1udWxsLHRoaXMuY2hvaWNlTGlzdD1udWxsLHRoaXMuZGF0ZVRpbWVFZGl0PW51bGwsdGhpcy5kZWZhdWx0VWk9bnVsbCx0aGlzLmltYWdlRWRpdD1udWxsLHRoaXMubnVtZXJpY0VkaXQ9bnVsbCx0aGlzLnBhc3N3b3JkRWRpdD1udWxsLHRoaXMuc2lnbmF0dXJlPW51bGwsdGhpcy50ZXh0RWRpdD1udWxsfVtIb10oKXtpZih2b2lkIDA9PT10aGlzW0ZvXSl7Zm9yKGNvbnN0IEEgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09QXx8InBpY3R1cmUiPT09QSljb250aW51ZTtjb25zdCBlPXRoaXNbQV07aWYoZSBpbnN0YW5jZW9mIHBjKXJldHVybiB0aGlzW0ZvXT1lLGV9dGhpc1tGb109bnVsbH1yZXR1cm4gdGhpc1tGb119W2JJXShBKXtjb25zdCBlPXRoaXNbSG9dKCk7cmV0dXJuIGU/ZVtiSV0oQSk6cUkuRU1QVFl9fWNsYXNzIGRCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInZhbGlkYXRlIiwhMCksdGhpcy5mb3JtYXRUZXN0PUhJKEEuZm9ybWF0VGVzdCxbIndhcm5pbmciLCJkaXNhYmxlZCIsImVycm9yIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5udWxsVGVzdD1ISShBLm51bGxUZXN0LFsiZGlzYWJsZWQiLCJlcnJvciIsIndhcm5pbmciXSksdGhpcy5zY3JpcHRUZXN0PUhJKEEuc2NyaXB0VGVzdCxbImVycm9yIiwiZGlzYWJsZWQiLCJ3YXJuaW5nIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMubWVzc2FnZT1udWxsLHRoaXMucGljdHVyZT1udWxsLHRoaXMuc2NyaXB0PW51bGx9fWNsYXNzIGZCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInZhbHVlIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm92ZXJyaWRlPU1JKHtkYXRhOkEub3ZlcnJpZGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmFyYz1udWxsLHRoaXMuYm9vbGVhbj1udWxsLHRoaXMuZGF0ZT1udWxsLHRoaXMuZGF0ZVRpbWU9bnVsbCx0aGlzLmRlY2ltYWw9bnVsbCx0aGlzLmV4RGF0YT1udWxsLHRoaXMuZmxvYXQ9bnVsbCx0aGlzLmltYWdlPW51bGwsdGhpcy5pbnRlZ2VyPW51bGwsdGhpcy5saW5lPW51bGwsdGhpcy5yZWN0YW5nbGU9bnVsbCx0aGlzLnRleHQ9bnVsbCx0aGlzLnRpbWU9bnVsbH1bbUldKEEpe2NvbnN0IGU9dGhpc1tQb10oKTtpZihlIGluc3RhbmNlb2YgY0MmJmUudWk/LmltYWdlRWRpdClyZXR1cm4gdGhpcy5pbWFnZXx8KHRoaXMuaW1hZ2U9bmV3IGRDKHt9KSx0aGlzW0VvXSh0aGlzLmltYWdlKSksdm9pZCh0aGlzLmltYWdlW0RvXT1BW0RvXSk7Y29uc3QgdD1BW2dJXTtpZihudWxsPT09dGhpc1t0XSl7Zm9yKGNvbnN0IEEgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IGU9dGhpc1tBXTtlIGluc3RhbmNlb2YgcGMmJih0aGlzW0FdPW51bGwsdGhpc1tRSV0oZSkpfXRoaXNbQVtnSV1dPUEsdGhpc1tFb10oQSl9ZWxzZSB0aGlzW3RdW0RvXT1BW0RvXX1bd0ldKCl7aWYodGhpcy5leERhdGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzLmV4RGF0YVtEb10/dGhpcy5leERhdGFbRG9dLnRyaW0oKTp0aGlzLmV4RGF0YVtEb11bd0ldKCkudHJpbSgpO2Zvcihjb25zdCBBIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZigiaW1hZ2UiPT09QSljb250aW51ZTtjb25zdCBlPXRoaXNbQV07aWYoZSBpbnN0YW5jZW9mIHBjKXJldHVybihlW0RvXXx8IiIpLnRvU3RyaW5nKCkudHJpbSgpfXJldHVybiBudWxsfVtiSV0oQSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IHQ9dGhpc1tlXTtpZih0IGluc3RhbmNlb2YgcGMpcmV0dXJuIHRbYkldKEEpfXJldHVybiBxSS5FTVBUWX19Y2xhc3MgcEIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidmFyaWFibGVzIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5ib29sZWFuPW5ldyBtYyx0aGlzLmRhdGU9bmV3IG1jLHRoaXMuZGF0ZVRpbWU9bmV3IG1jLHRoaXMuZGVjaW1hbD1uZXcgbWMsdGhpcy5leERhdGE9bmV3IG1jLHRoaXMuZmxvYXQ9bmV3IG1jLHRoaXMuaW1hZ2U9bmV3IG1jLHRoaXMuaW50ZWdlcj1uZXcgbWMsdGhpcy5tYW5pZmVzdD1uZXcgbWMsdGhpcy5zY3JpcHQ9bmV3IG1jLHRoaXMudGV4dD1uZXcgbWMsdGhpcy50aW1lPW5ldyBtY31bYUldKCl7cmV0dXJuITB9fWNsYXNzIG1Ce3N0YXRpY1tSSV0oQSxlKXtpZihtQi5oYXNPd25Qcm9wZXJ0eShBKSl7Y29uc3QgdD1tQltBXShlKTtyZXR1cm4gdFtwSV0oZSksdH19c3RhdGljIGFwcGVhcmFuY2VGaWx0ZXIoQSl7cmV0dXJuIG5ldyBFaChBKX1zdGF0aWMgYXJjKEEpe3JldHVybiBuZXcgdWgoQSl9c3RhdGljIGFyZWEoQSl7cmV0dXJuIG5ldyBkaChBKX1zdGF0aWMgYXNzaXN0KEEpe3JldHVybiBuZXcgZmgoQSl9c3RhdGljIGJhcmNvZGUoQSl7cmV0dXJuIG5ldyBwaChBKX1zdGF0aWMgYmluZChBKXtyZXR1cm4gbmV3IG1oKEEpfXN0YXRpYyBiaW5kSXRlbXMoQSl7cmV0dXJuIG5ldyB5aChBKX1zdGF0aWMgYm9va2VuZChBKXtyZXR1cm4gbmV3IHdoKEEpfXN0YXRpYyBib29sZWFuKEEpe3JldHVybiBuZXcgRGgoQSl9c3RhdGljIGJvcmRlcihBKXtyZXR1cm4gbmV3IGJoKEEpfXN0YXRpYyBicmVhayhBKXtyZXR1cm4gbmV3IGtoKEEpfXN0YXRpYyBicmVha0FmdGVyKEEpe3JldHVybiBuZXcgRmgoQSl9c3RhdGljIGJyZWFrQmVmb3JlKEEpe3JldHVybiBuZXcgU2goQSl9c3RhdGljIGJ1dHRvbihBKXtyZXR1cm4gbmV3IFJoKEEpfXN0YXRpYyBjYWxjdWxhdGUoQSl7cmV0dXJuIG5ldyBHaChBKX1zdGF0aWMgY2FwdGlvbihBKXtyZXR1cm4gbmV3IE5oKEEpfXN0YXRpYyBjZXJ0aWZpY2F0ZShBKXtyZXR1cm4gbmV3IHhoKEEpfXN0YXRpYyBjZXJ0aWZpY2F0ZXMoQSl7cmV0dXJuIG5ldyBVaChBKX1zdGF0aWMgY2hlY2tCdXR0b24oQSl7cmV0dXJuIG5ldyBNaChBKX1zdGF0aWMgY2hvaWNlTGlzdChBKXtyZXR1cm4gbmV3IExoKEEpfXN0YXRpYyBjb2xvcihBKXtyZXR1cm4gbmV3IEpoKEEpfXN0YXRpYyBjb21iKEEpe3JldHVybiBuZXcgSGgoQSl9c3RhdGljIGNvbm5lY3QoQSl7cmV0dXJuIG5ldyBZaChBKX1zdGF0aWMgY29udGVudEFyZWEoQSl7cmV0dXJuIG5ldyB2aChBKX1zdGF0aWMgY29ybmVyKEEpe3JldHVybiBuZXcgS2goQSl9c3RhdGljIGRhdGUoQSl7cmV0dXJuIG5ldyBxaChBKX1zdGF0aWMgZGF0ZVRpbWUoQSl7cmV0dXJuIG5ldyBUaChBKX1zdGF0aWMgZGF0ZVRpbWVFZGl0KEEpe3JldHVybiBuZXcgUGgoQSl9c3RhdGljIGRlY2ltYWwoQSl7cmV0dXJuIG5ldyBXaChBKX1zdGF0aWMgZGVmYXVsdFVpKEEpe3JldHVybiBuZXcgT2goQSl9c3RhdGljIGRlc2MoQSl7cmV0dXJuIG5ldyBaaChBKX1zdGF0aWMgZGlnZXN0TWV0aG9kKEEpe3JldHVybiBuZXcgamgoQSl9c3RhdGljIGRpZ2VzdE1ldGhvZHMoQSl7cmV0dXJuIG5ldyBYaChBKX1zdGF0aWMgZHJhdyhBKXtyZXR1cm4gbmV3IFZoKEEpfXN0YXRpYyBlZGdlKEEpe3JldHVybiBuZXcgX2goQSl9c3RhdGljIGVuY29kaW5nKEEpe3JldHVybiBuZXcgemgoQSl9c3RhdGljIGVuY29kaW5ncyhBKXtyZXR1cm4gbmV3ICRoKEEpfXN0YXRpYyBlbmNyeXB0KEEpe3JldHVybiBuZXcgQUMoQSl9c3RhdGljIGVuY3J5cHREYXRhKEEpe3JldHVybiBuZXcgZUMoQSl9c3RhdGljIGVuY3J5cHRpb24oQSl7cmV0dXJuIG5ldyB0QyhBKX1zdGF0aWMgZW5jcnlwdGlvbk1ldGhvZChBKXtyZXR1cm4gbmV3IGlDKEEpfXN0YXRpYyBlbmNyeXB0aW9uTWV0aG9kcyhBKXtyZXR1cm4gbmV3IGFDKEEpfXN0YXRpYyBldmVudChBKXtyZXR1cm4gbmV3IHNDKEEpfXN0YXRpYyBleERhdGEoQSl7cmV0dXJuIG5ldyBuQyhBKX1zdGF0aWMgZXhPYmplY3QoQSl7cmV0dXJuIG5ldyByQyhBKX1zdGF0aWMgZXhjbEdyb3VwKEEpe3JldHVybiBuZXcgZ0MoQSl9c3RhdGljIGV4ZWN1dGUoQSl7cmV0dXJuIG5ldyBvQyhBKX1zdGF0aWMgZXh0cmFzKEEpe3JldHVybiBuZXcgSUMoQSl9c3RhdGljIGZpZWxkKEEpe3JldHVybiBuZXcgY0MoQSl9c3RhdGljIGZpbGwoQSl7cmV0dXJuIG5ldyBoQyhBKX1zdGF0aWMgZmlsdGVyKEEpe3JldHVybiBuZXcgQ0MoQSl9c3RhdGljIGZsb2F0KEEpe3JldHVybiBuZXcgQkMoQSl9c3RhdGljIGZvbnQoQSl7cmV0dXJuIG5ldyBsQyhBKX1zdGF0aWMgZm9ybWF0KEEpe3JldHVybiBuZXcgUUMoQSl9c3RhdGljIGhhbmRsZXIoQSl7cmV0dXJuIG5ldyBFQyhBKX1zdGF0aWMgaHlwaGVuYXRpb24oQSl7cmV0dXJuIG5ldyB1QyhBKX1zdGF0aWMgaW1hZ2UoQSl7cmV0dXJuIG5ldyBkQyhBKX1zdGF0aWMgaW1hZ2VFZGl0KEEpe3JldHVybiBuZXcgZkMoQSl9c3RhdGljIGludGVnZXIoQSl7cmV0dXJuIG5ldyBwQyhBKX1zdGF0aWMgaXNzdWVycyhBKXtyZXR1cm4gbmV3IG1DKEEpfXN0YXRpYyBpdGVtcyhBKXtyZXR1cm4gbmV3IHlDKEEpfXN0YXRpYyBrZWVwKEEpe3JldHVybiBuZXcgd0MoQSl9c3RhdGljIGtleVVzYWdlKEEpe3JldHVybiBuZXcgREMoQSl9c3RhdGljIGxpbmUoQSl7cmV0dXJuIG5ldyBiQyhBKX1zdGF0aWMgbGluZWFyKEEpe3JldHVybiBuZXcga0MoQSl9c3RhdGljIGxvY2tEb2N1bWVudChBKXtyZXR1cm4gbmV3IEZDKEEpfXN0YXRpYyBtYW5pZmVzdChBKXtyZXR1cm4gbmV3IFNDKEEpfXN0YXRpYyBtYXJnaW4oQSl7cmV0dXJuIG5ldyBSQyhBKX1zdGF0aWMgbWRwKEEpe3JldHVybiBuZXcgR0MoQSl9c3RhdGljIG1lZGl1bShBKXtyZXR1cm4gbmV3IE5DKEEpfXN0YXRpYyBtZXNzYWdlKEEpe3JldHVybiBuZXcgeEMoQSl9c3RhdGljIG51bWVyaWNFZGl0KEEpe3JldHVybiBuZXcgVUMoQSl9c3RhdGljIG9jY3VyKEEpe3JldHVybiBuZXcgTUMoQSl9c3RhdGljIG9pZChBKXtyZXR1cm4gbmV3IExDKEEpfXN0YXRpYyBvaWRzKEEpe3JldHVybiBuZXcgSkMoQSl9c3RhdGljIG92ZXJmbG93KEEpe3JldHVybiBuZXcgSEMoQSl9c3RhdGljIHBhZ2VBcmVhKEEpe3JldHVybiBuZXcgWUMoQSl9c3RhdGljIHBhZ2VTZXQoQSl7cmV0dXJuIG5ldyB2QyhBKX1zdGF0aWMgcGFyYShBKXtyZXR1cm4gbmV3IEtDKEEpfXN0YXRpYyBwYXNzd29yZEVkaXQoQSl7cmV0dXJuIG5ldyBxQyhBKX1zdGF0aWMgcGF0dGVybihBKXtyZXR1cm4gbmV3IFRDKEEpfXN0YXRpYyBwaWN0dXJlKEEpe3JldHVybiBuZXcgUEMoQSl9c3RhdGljIHByb3RvKEEpe3JldHVybiBuZXcgV0MoQSl9c3RhdGljIHJhZGlhbChBKXtyZXR1cm4gbmV3IE9DKEEpfXN0YXRpYyByZWFzb24oQSl7cmV0dXJuIG5ldyBaQyhBKX1zdGF0aWMgcmVhc29ucyhBKXtyZXR1cm4gbmV3IGpDKEEpfXN0YXRpYyByZWN0YW5nbGUoQSl7cmV0dXJuIG5ldyBYQyhBKX1zdGF0aWMgcmVmKEEpe3JldHVybiBuZXcgVkMoQSl9c3RhdGljIHNjcmlwdChBKXtyZXR1cm4gbmV3IF9DKEEpfXN0YXRpYyBzZXRQcm9wZXJ0eShBKXtyZXR1cm4gbmV3IHpDKEEpfXN0YXRpYyBzaWduRGF0YShBKXtyZXR1cm4gbmV3ICRDKEEpfXN0YXRpYyBzaWduYXR1cmUoQSl7cmV0dXJuIG5ldyBBQihBKX1zdGF0aWMgc2lnbmluZyhBKXtyZXR1cm4gbmV3IGVCKEEpfXN0YXRpYyBzb2xpZChBKXtyZXR1cm4gbmV3IHRCKEEpfXN0YXRpYyBzcGVhayhBKXtyZXR1cm4gbmV3IGlCKEEpfXN0YXRpYyBzdGlwcGxlKEEpe3JldHVybiBuZXcgYUIoQSl9c3RhdGljIHN1YmZvcm0oQSl7cmV0dXJuIG5ldyBzQihBKX1zdGF0aWMgc3ViZm9ybVNldChBKXtyZXR1cm4gbmV3IG5CKEEpfXN0YXRpYyBzdWJqZWN0RE4oQSl7cmV0dXJuIG5ldyByQihBKX1zdGF0aWMgc3ViamVjdEROcyhBKXtyZXR1cm4gbmV3IGdCKEEpfXN0YXRpYyBzdWJtaXQoQSl7cmV0dXJuIG5ldyBvQihBKX1zdGF0aWMgdGVtcGxhdGUoQSl7cmV0dXJuIG5ldyBJQihBKX1zdGF0aWMgdGV4dChBKXtyZXR1cm4gbmV3IGNCKEEpfXN0YXRpYyB0ZXh0RWRpdChBKXtyZXR1cm4gbmV3IGhCKEEpfXN0YXRpYyB0aW1lKEEpe3JldHVybiBuZXcgQ0IoQSl9c3RhdGljIHRpbWVTdGFtcChBKXtyZXR1cm4gbmV3IEJCKEEpfXN0YXRpYyB0b29sVGlwKEEpe3JldHVybiBuZXcgbEIoQSl9c3RhdGljIHRyYXZlcnNhbChBKXtyZXR1cm4gbmV3IFFCKEEpfXN0YXRpYyB0cmF2ZXJzZShBKXtyZXR1cm4gbmV3IEVCKEEpfXN0YXRpYyB1aShBKXtyZXR1cm4gbmV3IHVCKEEpfXN0YXRpYyB2YWxpZGF0ZShBKXtyZXR1cm4gbmV3IGRCKEEpfXN0YXRpYyB2YWx1ZShBKXtyZXR1cm4gbmV3IGZCKEEpfXN0YXRpYyB2YXJpYWJsZXMoQSl7cmV0dXJuIG5ldyBwQihBKX19Y29uc3QgeUI9R0kuZGF0YXNldHMuaWQ7ZnVuY3Rpb24gd0IoQSl7Y29uc3QgZT1uZXcgY0Ioe30pO3JldHVybiBlW0RvXT1BLGV9Y2xhc3MgREJ7Y29uc3RydWN0b3IoQSl7dGhpcy5yb290PUEsdGhpcy5kYXRhc2V0cz1BLmRhdGFzZXRzLHRoaXMuZGF0YT1BLmRhdGFzZXRzPy5kYXRhfHxuZXcgd2MoR0kuZGF0YXNldHMuaWQsImRhdGEiKSx0aGlzLmVtcHR5TWVyZ2U9MD09PXRoaXMuZGF0YVt2b10oKS5sZW5ndGgsdGhpcy5yb290LmZvcm09dGhpcy5mb3JtPUEudGVtcGxhdGVbeW9dKCl9X2lzQ29uc3VtZURhdGEoKXtyZXR1cm4hdGhpcy5lbXB0eU1lcmdlJiZ0aGlzLl9tZXJnZU1vZGV9X2lzTWF0Y2hUZW1wbGF0ZSgpe3JldHVybiF0aGlzLl9pc0NvbnN1bWVEYXRhKCl9YmluZCgpe3JldHVybiB0aGlzLl9iaW5kRWxlbWVudCh0aGlzLmZvcm0sdGhpcy5kYXRhKSx0aGlzLmZvcm19Z2V0RGF0YSgpe3JldHVybiB0aGlzLmRhdGF9X2JpbmRWYWx1ZShBLGUsdCl7aWYoQVtib109ZSxBW1pvXSgpKWlmKGVbJG9dKCkpe2NvbnN0IHQ9ZVtKb10oKTtBW21JXSh3Qih0KSl9ZWxzZSBpZihBIGluc3RhbmNlb2YgY0MmJiJtdWx0aVNlbGVjdCI9PT1BLnVpPy5jaG9pY2VMaXN0Py5vcGVuKXtjb25zdCB0PWVbdm9dKCkubWFwKChBPT5BW0RvXS50cmltKCkpKS5qb2luKCJcbiIpO0FbbUldKHdCKHQpKX1lbHNlIHRoaXMuX2lzQ29uc3VtZURhdGEoKSYmVSgiWEZBIC0gTm9kZXMgaGF2ZW4ndCB0aGUgc2FtZSB0eXBlLiIpO2Vsc2UhZVskb10oKXx8dGhpcy5faXNNYXRjaFRlbXBsYXRlKCk/dGhpcy5fYmluZEVsZW1lbnQoQSxlKTpVKCJYRkEgLSBOb2RlcyBoYXZlbid0IHRoZSBzYW1lIHR5cGUuIil9X2ZpbmREYXRhQnlOYW1lVG9Db25zdW1lKEEsZSx0LGkpe2lmKCFBKXJldHVybiBudWxsO2xldCBhLHM7Zm9yKGxldCBpPTA7aTwzO2krKyl7Zm9yKGE9dFtZb10oQSwhMSwhMCk7cz1hLm5leHQoKS52YWx1ZSxzOylpZihlPT09c1skb10oKSlyZXR1cm4gcztpZih0W3JJXT09PUdJLmRhdGFzZXRzLmlkJiYiZGF0YSI9PT10W2dJXSlicmVhazt0PXRbUG9dKCl9cmV0dXJuIGk/KGE9dGhpcy5kYXRhW1lvXShBLCEwLCExKSxzPWEubmV4dCgpLnZhbHVlLHN8fChhPXRoaXMuZGF0YVtHb10oQSwhMCkscz1hLm5leHQoKS52YWx1ZSxzPy5bJG9dKCk/czpudWxsKSk6bnVsbH1fc2V0UHJvcGVydGllcyhBLGUpe2lmKEEuaGFzT3duUHJvcGVydHkoInNldFByb3BlcnR5IikpZm9yKGNvbnN0e3JlZjp0LHRhcmdldDppLGNvbm5lY3Rpb246YX1vZiBBLnNldFByb3BlcnR5LmNoaWxkcmVuKXtpZihhKWNvbnRpbnVlO2lmKCF0KWNvbnRpbnVlO2NvbnN0IHM9QWModGhpcy5yb290LGUsdCwhMSwhMSk7aWYoIXMpe1UoYFhGQSAtIEludmFsaWQgcmVmZXJlbmNlOiAke3R9LmApO2NvbnRpbnVlfWNvbnN0W25dPXM7aWYoIW5bQUldKHRoaXMuZGF0YSkpe1UoIlhGQSAtIEludmFsaWQgbm9kZTogbXVzdCBiZSBhIGRhdGEgbm9kZS4iKTtjb250aW51ZX1jb25zdCByPUFjKHRoaXMucm9vdCxBLGksITEsITEpO2lmKCFyKXtVKGBYRkEgLSBJbnZhbGlkIHRhcmdldDogJHtpfS5gKTtjb250aW51ZX1jb25zdFtnXT1yO2lmKCFnW0FJXShBKSl7VSgiWEZBIC0gSW52YWxpZCB0YXJnZXQ6IG11c3QgYmUgYSBwcm9wZXJ0eSBvciBzdWJwcm9wZXJ0eS4iKTtjb250aW51ZX1jb25zdCBvPWdbUG9dKCk7aWYoZyBpbnN0YW5jZW9mIHpDfHxvIGluc3RhbmNlb2YgekMpe1UoIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBzZXRQcm9wZXJ0eSBvciBvbmUgb2YgaXRzIHByb3BlcnRpZXMuIik7Y29udGludWV9aWYoZyBpbnN0YW5jZW9mIHlofHxvIGluc3RhbmNlb2YgeWgpe1UoIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBiaW5kSXRlbXMgb3Igb25lIG9mIGl0cyBwcm9wZXJ0aWVzLiIpO2NvbnRpbnVlfWNvbnN0IEk9blt3SV0oKSxjPWdbZ0ldO2lmKGcgaW5zdGFuY2VvZiB5Yyl7Y29uc3QgQT1PYmplY3QuY3JlYXRlKG51bGwpO0FbY109STtjb25zdCBlPVJlZmxlY3QuY29uc3RydWN0KE9iamVjdC5nZXRQcm90b3R5cGVPZihvKS5jb25zdHJ1Y3RvcixbQV0pO29bY109ZVtjXX1lbHNlIGcuaGFzT3duUHJvcGVydHkoRG8pPyhnW2JvXT1uLGdbRG9dPUksZ1tTb10oKSk6VSgiWEZBIC0gSW52YWxpZCBub2RlIHRvIHVzZSBpbiBzZXRQcm9wZXJ0eSIpfX1fYmluZEl0ZW1zKEEsZSl7aWYoIUEuaGFzT3duUHJvcGVydHkoIml0ZW1zIil8fCFBLmhhc093blByb3BlcnR5KCJiaW5kSXRlbXMiKXx8QS5iaW5kSXRlbXMuaXNFbXB0eSgpKXJldHVybjtmb3IoY29uc3QgZSBvZiBBLml0ZW1zLmNoaWxkcmVuKUFbUUldKGUpO0EuaXRlbXMuY2xlYXIoKTtjb25zdCB0PW5ldyB5Qyh7fSksaT1uZXcgeUMoe30pO0FbRW9dKHQpLEEuaXRlbXMucHVzaCh0KSxBW0VvXShpKSxBLml0ZW1zLnB1c2goaSk7Zm9yKGNvbnN0e3JlZjphLGxhYmVsUmVmOnMsdmFsdWVSZWY6bixjb25uZWN0aW9uOnJ9b2YgQS5iaW5kSXRlbXMuY2hpbGRyZW4pe2lmKHIpY29udGludWU7aWYoIWEpY29udGludWU7Y29uc3QgQT1BYyh0aGlzLnJvb3QsZSxhLCExLCExKTtpZihBKWZvcihjb25zdCBlIG9mIEEpe2lmKCFlW0FJXSh0aGlzLmRhdGFzZXRzKSl7VShgWEZBIC0gSW52YWxpZCByZWYgKCR7YX0pOiBtdXN0IGJlIGEgZGF0YXNldHMgY2hpbGQuYCk7Y29udGludWV9Y29uc3QgQT1BYyh0aGlzLnJvb3QsZSxzLCEwLCExKTtpZighQSl7VShgWEZBIC0gSW52YWxpZCBsYWJlbDogJHtzfS5gKTtjb250aW51ZX1jb25zdFtyXT1BO2lmKCFyW0FJXSh0aGlzLmRhdGFzZXRzKSl7VSgiWEZBIC0gSW52YWxpZCBsYWJlbDogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGc9QWModGhpcy5yb290LGUsbiwhMCwhMSk7aWYoIWcpe1UoYFhGQSAtIEludmFsaWQgdmFsdWU6ICR7bn0uYCk7Y29udGludWV9Y29uc3Rbb109ZztpZighb1tBSV0odGhpcy5kYXRhc2V0cykpe1UoIlhGQSAtIEludmFsaWQgdmFsdWU6IG11c3QgYmUgYSBkYXRhc2V0cyBjaGlsZC4iKTtjb250aW51ZX1jb25zdCBJPXdCKHJbd0ldKCkpLGM9d0Iob1t3SV0oKSk7dFtFb10oSSksdC50ZXh0LnB1c2goSSksaVtFb10oYyksaS50ZXh0LnB1c2goYyl9ZWxzZSBVKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHthfS5gKX19X2JpbmRPY2N1cnJlbmNlcyhBLGUsdCl7bGV0IGk7aWYoZS5sZW5ndGg+MSYmKGk9QVt5b10oKSxpW1FJXShpLm9jY3VyKSxpLm9jY3VyPW51bGwpLHRoaXMuX2JpbmRWYWx1ZShBLGVbMF0sdCksdGhpcy5fc2V0UHJvcGVydGllcyhBLGVbMF0pLHRoaXMuX2JpbmRJdGVtcyhBLGVbMF0pLDE9PT1lLmxlbmd0aClyZXR1cm47Y29uc3QgYT1BW1BvXSgpLHM9QVtnSV0sbj1hW1hvXShBKTtmb3IobGV0IEE9MSxyPWUubGVuZ3RoO0E8cjtBKyspe2NvbnN0IHI9ZVtBXSxnPWlbeW9dKCk7YVtzXS5wdXNoKGcpLGFbVm9dKG4rQSxnKSx0aGlzLl9iaW5kVmFsdWUoZyxyLHQpLHRoaXMuX3NldFByb3BlcnRpZXMoZyxyKSx0aGlzLl9iaW5kSXRlbXMoZyxyKX19X2NyZWF0ZU9jY3VycmVuY2VzKEEpe2lmKCF0aGlzLmVtcHR5TWVyZ2UpcmV0dXJuO2NvbnN0e29jY3VyOmV9PUE7aWYoIWV8fGUuaW5pdGlhbDw9MSlyZXR1cm47Y29uc3QgdD1BW1BvXSgpLGk9QVtnSV07aWYoISh0W2ldaW5zdGFuY2VvZiBtYykpcmV0dXJuO2xldCBhO2E9QS5uYW1lP3RbaV0uY2hpbGRyZW4uZmlsdGVyKChlPT5lLm5hbWU9PT1BLm5hbWUpKS5sZW5ndGg6dFtpXS5jaGlsZHJlbi5sZW5ndGg7Y29uc3Qgcz10W1hvXShBKSsxLG49ZS5pbml0aWFsLWE7aWYobil7Y29uc3QgZT1BW3lvXSgpO2VbUUldKGUub2NjdXIpLGUub2NjdXI9bnVsbCx0W2ldLnB1c2goZSksdFtWb10ocyxlKTtmb3IobGV0IEE9MTtBPG47QSsrKXtjb25zdCBhPWVbeW9dKCk7dFtpXS5wdXNoKGEpLHRbVm9dKHMrQSxhKX19fV9nZXRPY2N1ckluZm8oQSl7Y29uc3R7bmFtZTplLG9jY3VyOnR9PUE7aWYoIXR8fCFlKXJldHVyblsxLDFdO2NvbnN0IGk9LTE9PT10Lm1heD8xLzA6dC5tYXg7cmV0dXJuW3QubWluLGldfV9zZXRBbmRCaW5kKEEsZSl7dGhpcy5fc2V0UHJvcGVydGllcyhBLGUpLHRoaXMuX2JpbmRJdGVtcyhBLGUpLHRoaXMuX2JpbmRFbGVtZW50KEEsZSl9X2JpbmRFbGVtZW50KEEsZSl7Y29uc3QgdD1bXTt0aGlzLl9jcmVhdGVPY2N1cnJlbmNlcyhBKTtmb3IoY29uc3QgaSBvZiBBW3ZvXSgpKXtpZihpW2JvXSljb250aW51ZTtpZih2b2lkIDA9PT10aGlzLl9tZXJnZU1vZGUmJiJzdWJmb3JtIj09PWlbZ0ldKXt0aGlzLl9tZXJnZU1vZGU9ImNvbnN1bWVEYXRhIj09PWkubWVyZ2VNb2RlO2NvbnN0IEE9ZVt2b10oKTtpZihBLmxlbmd0aD4wKXRoaXMuX2JpbmRPY2N1cnJlbmNlcyhpLFtBWzBdXSxudWxsKTtlbHNlIGlmKHRoaXMuZW1wdHlNZXJnZSl7Y29uc3QgQT1lW3JJXT09PXlCPy0xOmVbckldLHQ9aVtib109bmV3IHdjKEEsaS5uYW1lfHwicm9vdCIpO2VbRW9dKHQpLHRoaXMuX2JpbmRFbGVtZW50KGksdCl9Y29udGludWV9aWYoIWlbem9dKCkpY29udGludWU7bGV0IEE9ITEsYT1udWxsLHM9bnVsbCxuPW51bGw7aWYoaS5iaW5kKXtzd2l0Y2goaS5iaW5kLm1hdGNoKXtjYXNlIm5vbmUiOnRoaXMuX3NldEFuZEJpbmQoaSxlKTtjb250aW51ZTtjYXNlImdsb2JhbCI6QT0hMDticmVhaztjYXNlImRhdGFSZWYiOmlmKCFpLmJpbmQucmVmKXtVKGBYRkEgLSByZWYgaXMgZW1wdHkgaW4gbm9kZSAke2lbZ0ldfS5gKSx0aGlzLl9zZXRBbmRCaW5kKGksZSk7Y29udGludWV9cz1pLmJpbmQucmVmfWkuYmluZC5waWN0dXJlJiYoYT1pLmJpbmQucGljdHVyZVtEb10pfWNvbnN0W3IsZ109dGhpcy5fZ2V0T2NjdXJJbmZvKGkpO2lmKHMpe2lmKG49QWModGhpcy5yb290LGUscywhMCwhMSksbnVsbD09PW4pe2lmKG49ZWModGhpcy5kYXRhLGUscyksIW4pY29udGludWU7dGhpcy5faXNDb25zdW1lRGF0YSgpJiYoblt3b109ITApLHRoaXMuX3NldEFuZEJpbmQoaSxuKTtjb250aW51ZX10aGlzLl9pc0NvbnN1bWVEYXRhKCkmJihuPW4uZmlsdGVyKChBPT4hQVt3b10pKSksbi5sZW5ndGg+Zz9uPW4uc2xpY2UoMCxnKTowPT09bi5sZW5ndGgmJihuPW51bGwpLG4mJnRoaXMuX2lzQ29uc3VtZURhdGEoKSYmbi5mb3JFYWNoKChBPT57QVt3b109ITB9KSl9ZWxzZXtpZighaS5uYW1lKXt0aGlzLl9zZXRBbmRCaW5kKGksZSk7Y29udGludWV9aWYodGhpcy5faXNDb25zdW1lRGF0YSgpKXtjb25zdCB0PVtdO2Zvcig7dC5sZW5ndGg8Zzspe2NvbnN0IGE9dGhpcy5fZmluZERhdGFCeU5hbWVUb0NvbnN1bWUoaS5uYW1lLGlbWm9dKCksZSxBKTtpZighYSlicmVhazthW3dvXT0hMCx0LnB1c2goYSl9bj10Lmxlbmd0aD4wP3Q6bnVsbH1lbHNle2lmKG49ZVtZb10oaS5uYW1lLCExLHRoaXMuZW1wdHlNZXJnZSkubmV4dCgpLnZhbHVlLCFuKXtpZigwPT09cil7dC5wdXNoKGkpO2NvbnRpbnVlfWNvbnN0IEE9ZVtySV09PT15Qj8tMTplW3JJXTtuPWlbYm9dPW5ldyB3YyhBLGkubmFtZSksdGhpcy5lbXB0eU1lcmdlJiYoblt3b109ITApLGVbRW9dKG4pLHRoaXMuX3NldEFuZEJpbmQoaSxuKTtjb250aW51ZX10aGlzLmVtcHR5TWVyZ2UmJihuW3dvXT0hMCksbj1bbl19fW4/dGhpcy5fYmluZE9jY3VycmVuY2VzKGksbixhKTpyPjA/dGhpcy5fc2V0QW5kQmluZChpLGUpOnQucHVzaChpKX10LmZvckVhY2goKEE9PkFbUG9dKClbUUldKEEpKSl9fWNsYXNzIGJCe2NvbnN0cnVjdG9yKEEsZSl7dGhpcy5kYXRhPWUsdGhpcy5kYXRhc2V0PUEuZGF0YXNldHN8fG51bGx9c2VyaWFsaXplKEEpe2NvbnN0IGU9W1stMSx0aGlzLmRhdGFbdm9dKCldXTtmb3IoO2UubGVuZ3RoPjA7KXtjb25zdCB0PWUuYXQoLTEpLFtpLGFdPXQ7aWYoaSsxPT09YS5sZW5ndGgpe2UucG9wKCk7Y29udGludWV9Y29uc3Qgcz1hWysrdFswXV0sbj1BLmdldChzW1NJXSk7aWYobilzW21JXShuKTtlbHNle2NvbnN0IGU9c1tOb10oKTtmb3IoY29uc3QgdCBvZiBlLnZhbHVlcygpKXtjb25zdCBlPUEuZ2V0KHRbU0ldKTtpZihlKXt0W21JXShlKTticmVha319fWNvbnN0IHI9c1t2b10oKTtyLmxlbmd0aD4wJiZlLnB1c2goWy0xLHJdKX1jb25zdCB0PVsnPHhmYTpkYXRhc2V0cyB4bWxuczp4ZmE9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWRhdGEvMS4wLyI+J107aWYodGhpcy5kYXRhc2V0KWZvcihjb25zdCBBIG9mIHRoaXMuZGF0YXNldFt2b10oKSkiZGF0YSIhPT1BW2dJXSYmQVtrSV0odCk7cmV0dXJuIHRoaXMuZGF0YVtrSV0odCksdC5wdXNoKCI8L3hmYTpkYXRhc2V0cz4iKSx0LmpvaW4oIiIpfX1jb25zdCBrQj1HSS5jb25maWcuaWQ7Y2xhc3MgRkIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYWNyb2JhdCIsITApLHRoaXMuYWNyb2JhdDc9bnVsbCx0aGlzLmF1dG9TYXZlPW51bGwsdGhpcy5jb21tb249bnVsbCx0aGlzLnZhbGlkYXRlPW51bGwsdGhpcy52YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcz1udWxsLHRoaXMuc3VibWl0VXJsPW5ldyBtY319Y2xhc3MgU0IgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYWNyb2JhdDciLCEwKSx0aGlzLmR5bmFtaWNSZW5kZXI9bnVsbH19Y2xhc3MgUkIgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiQURCRV9KU0NvbnNvbGUiLFsiZGVsZWdhdGUiLCJFbmFibGUiLCJEaXNhYmxlIl0pfX1jbGFzcyBHQiBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJBREJFX0pTRGVidWdnZXIiLFsiZGVsZWdhdGUiLCJFbmFibGUiLCJEaXNhYmxlIl0pfX1jbGFzcyBOQiBleHRlbmRzIFNje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhZGRTaWxlbnRQcmludCIpfX1jbGFzcyB4QiBleHRlbmRzIFNje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhZGRWaWV3ZXJQcmVmZXJlbmNlcyIpfX1jbGFzcyBVQiBleHRlbmRzIFJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhZGp1c3REYXRhIil9fWNsYXNzIE1CIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImFkb2JlRXh0ZW5zaW9uTGV2ZWwiLDAsKEE9PkE+PTEmJkE8PTgpKX19Y2xhc3MgTEIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYWdlbnQiLCEwKSx0aGlzLm5hbWU9QS5uYW1lP0EubmFtZS50cmltKCk6IiIsdGhpcy5jb21tb249bmV3IG1jfX1jbGFzcyBKQiBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhbHdheXNFbWJlZCIpfX1jbGFzcyBIQiBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhbWQiKX19Y2xhc3MgWUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYXJlYSIpLHRoaXMubGV2ZWw9TUkoe2RhdGE6QS5sZXZlbCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT5BPj0xJiZBPD0zfSksdGhpcy5uYW1lPUhJKEEubmFtZSxbIiIsImJhcmNvZGUiLCJjb3JlaW5pdCIsImRldmljZURyaXZlciIsImZvbnQiLCJnZW5lcmFsIiwibGF5b3V0IiwibWVyZ2UiLCJzY3JpcHQiLCJzaWduYXR1cmUiLCJzb3VyY2VTZXQiLCJ0ZW1wbGF0ZUNhY2hlIl0pfX1jbGFzcyB2QiBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhdHRyaWJ1dGVzIixbInByZXNlcnZlIiwiZGVsZWdhdGUiLCJpZ25vcmUiXSl9fWNsYXNzIEtCIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImF1dG9TYXZlIixbImRpc2FibGVkIiwiZW5hYmxlZCJdKX19Y2xhc3MgcUIgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYmFzZSIpfX1jbGFzcyBUQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJiYXRjaE91dHB1dCIpLHRoaXMuZm9ybWF0PUhJKEEuZm9ybWF0LFsibm9uZSIsImNvbmNhdCIsInppcCIsInppcENvbXByZXNzIl0pfX1jbGFzcyBQQiBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJiZWhhdmlvck92ZXJyaWRlIil9W1NvXSgpe3RoaXNbRG9dPW5ldyBNYXAodGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKEE9PkEuaW5jbHVkZXMoIjoiKSkpLm1hcCgoQT0+QS5zcGxpdCgiOiIsMikpKSl9fWNsYXNzIFdCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNhY2hlIiwhMCksdGhpcy50ZW1wbGF0ZUNhY2hlPW51bGx9fWNsYXNzIE9CIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNoYW5nZSIpfX1jbGFzcyBaQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb21tb24iLCEwKSx0aGlzLmRhdGE9bnVsbCx0aGlzLmxvY2FsZT1udWxsLHRoaXMubG9jYWxlU2V0PW51bGwsdGhpcy5tZXNzYWdpbmc9bnVsbCx0aGlzLnN1cHByZXNzQmFubmVyPW51bGwsdGhpcy50ZW1wbGF0ZT1udWxsLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2luZz1udWxsLHRoaXMudmVyc2lvbkNvbnRyb2w9bnVsbCx0aGlzLmxvZz1uZXcgbWN9fWNsYXNzIGpCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNvbXByZXNzIiksdGhpcy5zY29wZT1ISShBLnNjb3BlLFsiaW1hZ2VPbmx5IiwiZG9jdW1lbnQiXSl9fWNsYXNzIFhCIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNvbXByZXNzTG9naWNhbFN0cnVjdHVyZSIpfX1jbGFzcyBWQiBleHRlbmRzIFJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb21wcmVzc09iamVjdFN0cmVhbSIpfX1jbGFzcyBfQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb21wcmVzc2lvbiIsITApLHRoaXMuY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlPW51bGwsdGhpcy5jb21wcmVzc09iamVjdFN0cmVhbT1udWxsLHRoaXMubGV2ZWw9bnVsbCx0aGlzLnR5cGU9bnVsbH19Y2xhc3MgekIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY29uZmlnIiwhMCksdGhpcy5hY3JvYmF0PW51bGwsdGhpcy5wcmVzZW50PW51bGwsdGhpcy50cmFjZT1udWxsLHRoaXMuYWdlbnQ9bmV3IG1jfX1jbGFzcyAkQiBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb25mb3JtYW5jZSIsWyJBIiwiQiJdKX19Y2xhc3MgQWwgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY29udGVudENvcHkiKX19Y2xhc3MgZWwgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY29waWVzIiwxLChBPT5BPj0xKSl9fWNsYXNzIHRsIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNyZWF0b3IiKX19Y2xhc3MgaWwgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY3VycmVudFBhZ2UiLDAsKEE9PkE+PTApKX19Y2xhc3MgYWwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZGF0YSIsITApLHRoaXMuYWRqdXN0RGF0YT1udWxsLHRoaXMuYXR0cmlidXRlcz1udWxsLHRoaXMuaW5jcmVtZW50YWxMb2FkPW51bGwsdGhpcy5vdXRwdXRYU0w9bnVsbCx0aGlzLnJhbmdlPW51bGwsdGhpcy5yZWNvcmQ9bnVsbCx0aGlzLnN0YXJ0Tm9kZT1udWxsLHRoaXMudXJpPW51bGwsdGhpcy53aW5kb3c9bnVsbCx0aGlzLnhzbD1udWxsLHRoaXMuZXhjbHVkZU5TPW5ldyBtYyx0aGlzLnRyYW5zZm9ybT1uZXcgbWN9fWNsYXNzIHNsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImRlYnVnIiwhMCksdGhpcy51cmk9bnVsbH19Y2xhc3MgbmwgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZGVmYXVsdFR5cGVmYWNlIiksdGhpcy53cml0aW5nU2NyaXB0PUhJKEEud3JpdGluZ1NjcmlwdCxbIioiLCJBcmFiaWMiLCJDeXJpbGxpYyIsIkVhc3RFdXJvcGVhblJvbWFuIiwiR3JlZWsiLCJIZWJyZXciLCJKYXBhbmVzZSIsIktvcmVhbiIsIlJvbWFuIiwiU2ltcGxpZmllZENoaW5lc2UiLCJUaGFpIiwiVHJhZGl0aW9uYWxDaGluZXNlIiwiVmlldG5hbWVzZSJdKX19Y2xhc3MgcmwgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZGVzdGluYXRpb24iLFsicGRmIiwicGNsIiwicHMiLCJ3ZWJDbGllbnQiLCJ6cGwiXSl9fWNsYXNzIGdsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImRvY3VtZW50QXNzZW1ibHkiKX19Y2xhc3Mgb2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZHJpdmVyIiwhMCksdGhpcy5uYW1lPUEubmFtZT9BLm5hbWUudHJpbSgpOiIiLHRoaXMuZm9udEluZm89bnVsbCx0aGlzLnhkYz1udWxsfX1jbGFzcyBJbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJkdXBsZXhPcHRpb24iLFsic2ltcGxleCIsImR1cGxleEZsaXBMb25nRWRnZSIsImR1cGxleEZsaXBTaG9ydEVkZ2UiXSl9fWNsYXNzIGNsIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImR5bmFtaWNSZW5kZXIiLFsiZm9yYmlkZGVuIiwicmVxdWlyZWQiXSl9fWNsYXNzIGhsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImVtYmVkIil9fWNsYXNzIENsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImVuY3J5cHQiKX19Y2xhc3MgQmwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZW5jcnlwdGlvbiIsITApLHRoaXMuZW5jcnlwdD1udWxsLHRoaXMuZW5jcnlwdGlvbkxldmVsPW51bGwsdGhpcy5wZXJtaXNzaW9ucz1udWxsfX1jbGFzcyBsbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJlbmNyeXB0aW9uTGV2ZWwiLFsiNDBiaXQiLCIxMjhiaXQiXSl9fWNsYXNzIFFsIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImVuZm9yY2UiKX19Y2xhc3MgRWwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXF1YXRlIiksdGhpcy5mb3JjZT1NSSh7ZGF0YTpBLmZvcmNlLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PjA9PT1BfSksdGhpcy5mcm9tPUEuZnJvbXx8IiIsdGhpcy50bz1BLnRvfHwiIn19Y2xhc3MgdWwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXF1YXRlUmFuZ2UiKSx0aGlzLmZyb209QS5mcm9tfHwiIix0aGlzLnRvPUEudG98fCIiLHRoaXMuX3VuaWNvZGVSYW5nZT1BLnVuaWNvZGVSYW5nZXx8IiJ9Z2V0IHVuaWNvZGVSYW5nZSgpe2NvbnN0IEE9W10sZT0vVVwrKFswLTlhLWZBLUZdKykvLHQ9dGhpcy5fdW5pY29kZVJhbmdlO2ZvcihsZXQgaSBvZiB0LnNwbGl0KCIsIikubWFwKChBPT5BLnRyaW0oKSkpLmZpbHRlcigoQT0+ISFBKSkpaT1pLnNwbGl0KCItIiwyKS5tYXAoKEE9Pntjb25zdCB0PUEubWF0Y2goZSk7cmV0dXJuIHQ/cGFyc2VJbnQodFsxXSwxNik6MH0pKSwxPT09aS5sZW5ndGgmJmkucHVzaChpWzBdKSxBLnB1c2goaSk7cmV0dXJuIEgodGhpcywidW5pY29kZVJhbmdlIixBKX19Y2xhc3MgZGwgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXhjbHVkZSIpfVtTb10oKXt0aGlzW0RvXT10aGlzW0RvXS50cmltKCkuc3BsaXQoL1xzKy8pLmZpbHRlcigoQT0+QSYmWyJjYWxjdWxhdGUiLCJjbG9zZSIsImVudGVyIiwiZXhpdCIsImluaXRpYWxpemUiLCJyZWFkeSIsInZhbGlkYXRlIl0uaW5jbHVkZXMoQSkpKX19Y2xhc3MgZmwgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXhjbHVkZU5TIil9fWNsYXNzIHBsIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImZsaXBMYWJlbCIsWyJ1c2VQcmludGVyU2V0dGluZyIsIm9uIiwib2ZmIl0pfX1jbGFzcyBtbCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJmb250SW5mbyIsITApLHRoaXMuZW1iZWQ9bnVsbCx0aGlzLm1hcD1udWxsLHRoaXMuc3Vic2V0QmVsb3c9bnVsbCx0aGlzLmFsd2F5c0VtYmVkPW5ldyBtYyx0aGlzLmRlZmF1bHRUeXBlZmFjZT1uZXcgbWMsdGhpcy5uZXZlckVtYmVkPW5ldyBtY319Y2xhc3MgeWwgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZm9ybUZpZWxkRmlsbGluZyIpfX1jbGFzcyB3bCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJncm91cFBhcmVudCIpfX1jbGFzcyBEbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJpZkVtcHR5IixbImRhdGFWYWx1ZSIsImRhdGFHcm91cCIsImlnbm9yZSIsInJlbW92ZSJdKX19Y2xhc3MgYmwgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiaW5jbHVkZVhEUENvbnRlbnQiKX19Y2xhc3Mga2wgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiaW5jcmVtZW50YWxMb2FkIixbIm5vbmUiLCJmb3J3YXJkT25seSJdKX19Y2xhc3MgRmwgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiaW5jcmVtZW50YWxNZXJnZSIpfX1jbGFzcyBTbCBleHRlbmRzIFNje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJpbnRlcmFjdGl2ZSIpfX1jbGFzcyBSbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJqb2ciLFsidXNlUHJpbnRlclNldHRpbmciLCJub25lIiwicGFnZVNldCJdKX19Y2xhc3MgR2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibGFiZWxQcmludGVyIiwhMCksdGhpcy5uYW1lPUhJKEEubmFtZSxbInpwbCIsImRwbCIsImlwbCIsInRjcGwiXSksdGhpcy5iYXRjaE91dHB1dD1udWxsLHRoaXMuZmxpcExhYmVsPW51bGwsdGhpcy5mb250SW5mbz1udWxsLHRoaXMueGRjPW51bGx9fWNsYXNzIE5sIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImxheW91dCIsWyJwYWdpbmF0ZSIsInBhbmVsIl0pfX1jbGFzcyB4bCBleHRlbmRzIEZje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJsZXZlbCIsMCwoQT0+QT4wKSl9fWNsYXNzIFVsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImxpbmVhcml6ZWQiKX19Y2xhc3MgTWwgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibG9jYWxlIil9fWNsYXNzIExsIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImxvY2FsZVNldCIpfX1jbGFzcyBKbCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJsb2ciLCEwKSx0aGlzLm1vZGU9bnVsbCx0aGlzLnRocmVzaG9sZD1udWxsLHRoaXMudG89bnVsbCx0aGlzLnVyaT1udWxsfX1jbGFzcyBIbCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJtYXAiLCEwKSx0aGlzLmVxdWF0ZT1uZXcgbWMsdGhpcy5lcXVhdGVSYW5nZT1uZXcgbWN9fWNsYXNzIFlsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm1lZGl1bUluZm8iLCEwKSx0aGlzLm1hcD1udWxsfX1jbGFzcyB2bCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJtZXNzYWdlIiwhMCksdGhpcy5tc2dJZD1udWxsLHRoaXMuc2V2ZXJpdHk9bnVsbH19Y2xhc3MgS2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibWVzc2FnaW5nIiwhMCksdGhpcy5tZXNzYWdlPW5ldyBtY319Y2xhc3MgcWwgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibW9kZSIsWyJhcHBlbmQiLCJvdmVyd3JpdGUiXSl9fWNsYXNzIFRsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm1vZGlmeUFubm90cyIpfX1jbGFzcyBQbCBleHRlbmRzIEZje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJtc2dJZCIsMSwoQT0+QT49MSkpfX1jbGFzcyBXbCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJuYW1lQXR0ciIpfX1jbGFzcyBPbCBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJuZXZlckVtYmVkIil9fWNsYXNzIFpsIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm51bWJlck9mQ29waWVzIixudWxsLChBPT5BPj0yJiZBPD01KSl9fWNsYXNzIGpsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm9wZW5BY3Rpb24iLCEwKSx0aGlzLmRlc3RpbmF0aW9uPW51bGx9fWNsYXNzIFhsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm91dHB1dCIsITApLHRoaXMudG89bnVsbCx0aGlzLnR5cGU9bnVsbCx0aGlzLnVyaT1udWxsfX1jbGFzcyBWbCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJvdXRwdXRCaW4iKX19Y2xhc3MgX2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwib3V0cHV0WFNMIiwhMCksdGhpcy51cmk9bnVsbH19Y2xhc3MgemwgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwib3ZlcnByaW50IixbIm5vbmUiLCJib3RoIiwiZHJhdyIsImZpZWxkIl0pfX1jbGFzcyAkbCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwYWNrZXRzIil9W1NvXSgpeyIqIiE9PXRoaXNbRG9dJiYodGhpc1tEb109dGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKEE9PlsiY29uZmlnIiwiZGF0YXNldHMiLCJ0ZW1wbGF0ZSIsInhmZGYiLCJ4c2x0Il0uaW5jbHVkZXMoQSkpKSl9fWNsYXNzIEFRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBhZ2VPZmZzZXQiKSx0aGlzLng9TUkoe2RhdGE6QS54LGRlZmF1bHRWYWx1ZToidXNlWERDU2V0dGluZyIsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLnk9TUkoe2RhdGE6QS55LGRlZmF1bHRWYWx1ZToidXNlWERDU2V0dGluZyIsdmFsaWRhdGU6QT0+ITB9KX19Y2xhc3MgZVEgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGFnZVJhbmdlIil9W1NvXSgpe2NvbnN0IEE9dGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKEE9PnBhcnNlSW50KEEsMTApKSksZT1bXTtmb3IobGV0IHQ9MCxpPUEubGVuZ3RoO3Q8aTt0Kz0yKWUucHVzaChBLnNsaWNlKHQsdCsyKSk7dGhpc1tEb109ZX19Y2xhc3MgdFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGFnaW5hdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4U2hvcnRFZGdlIiwiZHVwbGV4TG9uZ0VkZ2UiXSl9fWNsYXNzIGlRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBhZ2luYXRpb25PdmVycmlkZSIsWyJub25lIiwiZm9yY2VEdXBsZXgiLCJmb3JjZUR1cGxleExvbmdFZGdlIiwiZm9yY2VEdXBsZXhTaG9ydEVkZ2UiLCJmb3JjZVNpbXBsZXgiXSl9fWNsYXNzIGFRIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBhcnQiLDEsKEE9PiExKSl9fWNsYXNzIHNRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBjbCIsITApLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMuYmF0Y2hPdXRwdXQ9bnVsbCx0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy5qb2c9bnVsbCx0aGlzLm1lZGl1bUluZm89bnVsbCx0aGlzLm91dHB1dEJpbj1udWxsLHRoaXMucGFnZU9mZnNldD1udWxsLHRoaXMuc3RhcGxlPW51bGwsdGhpcy54ZGM9bnVsbH19Y2xhc3MgblEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGRmIiwhMCksdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5hZG9iZUV4dGVuc2lvbkxldmVsPW51bGwsdGhpcy5iYXRjaE91dHB1dD1udWxsLHRoaXMuY29tcHJlc3Npb249bnVsbCx0aGlzLmNyZWF0b3I9bnVsbCx0aGlzLmVuY3J5cHRpb249bnVsbCx0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy5pbnRlcmFjdGl2ZT1udWxsLHRoaXMubGluZWFyaXplZD1udWxsLHRoaXMub3BlbkFjdGlvbj1udWxsLHRoaXMucGRmYT1udWxsLHRoaXMucHJvZHVjZXI9bnVsbCx0aGlzLnJlbmRlclBvbGljeT1udWxsLHRoaXMuc2NyaXB0TW9kZWw9bnVsbCx0aGlzLnNpbGVudFByaW50PW51bGwsdGhpcy5zdWJtaXRGb3JtYXQ9bnVsbCx0aGlzLnRhZ2dlZD1udWxsLHRoaXMudmVyc2lvbj1udWxsLHRoaXMudmlld2VyUHJlZmVyZW5jZXM9bnVsbCx0aGlzLnhkYz1udWxsfX1jbGFzcyByUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwZGZhIiwhMCksdGhpcy5hbWQ9bnVsbCx0aGlzLmNvbmZvcm1hbmNlPW51bGwsdGhpcy5pbmNsdWRlWERQQ29udGVudD1udWxsLHRoaXMucGFydD1udWxsfX1jbGFzcyBnUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwZXJtaXNzaW9ucyIsITApLHRoaXMuYWNjZXNzaWJsZUNvbnRlbnQ9bnVsbCx0aGlzLmNoYW5nZT1udWxsLHRoaXMuY29udGVudENvcHk9bnVsbCx0aGlzLmRvY3VtZW50QXNzZW1ibHk9bnVsbCx0aGlzLmZvcm1GaWVsZEZpbGxpbmc9bnVsbCx0aGlzLm1vZGlmeUFubm90cz1udWxsLHRoaXMucGxhaW50ZXh0TWV0YWRhdGE9bnVsbCx0aGlzLnByaW50PW51bGwsdGhpcy5wcmludEhpZ2hRdWFsaXR5PW51bGx9fWNsYXNzIG9RIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBpY2tUcmF5QnlQREZTaXplIil9fWNsYXNzIElRIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBpY3R1cmUiKX19Y2xhc3MgY1EgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGxhaW50ZXh0TWV0YWRhdGEiKX19Y2xhc3MgaFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJlc2VuY2UiLFsicHJlc2VydmUiLCJkaXNzb2x2ZSIsImRpc3NvbHZlU3RydWN0dXJlIiwiaWdub3JlIiwicmVtb3ZlIl0pfX1jbGFzcyBDUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwcmVzZW50IiwhMCksdGhpcy5iZWhhdmlvck92ZXJyaWRlPW51bGwsdGhpcy5jYWNoZT1udWxsLHRoaXMuY29tbW9uPW51bGwsdGhpcy5jb3BpZXM9bnVsbCx0aGlzLmRlc3RpbmF0aW9uPW51bGwsdGhpcy5pbmNyZW1lbnRhbE1lcmdlPW51bGwsdGhpcy5sYXlvdXQ9bnVsbCx0aGlzLm91dHB1dD1udWxsLHRoaXMub3ZlcnByaW50PW51bGwsdGhpcy5wYWdpbmF0aW9uPW51bGwsdGhpcy5wYWdpbmF0aW9uT3ZlcnJpZGU9bnVsbCx0aGlzLnNjcmlwdD1udWxsLHRoaXMudmFsaWRhdGU9bnVsbCx0aGlzLnhkcD1udWxsLHRoaXMuZHJpdmVyPW5ldyBtYyx0aGlzLmxhYmVsUHJpbnRlcj1uZXcgbWMsdGhpcy5wY2w9bmV3IG1jLHRoaXMucGRmPW5ldyBtYyx0aGlzLnBzPW5ldyBtYyx0aGlzLnN1Ym1pdFVybD1uZXcgbWMsdGhpcy53ZWJDbGllbnQ9bmV3IG1jLHRoaXMuenBsPW5ldyBtY319Y2xhc3MgQlEgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJpbnQiKX19Y2xhc3MgbFEgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJpbnRIaWdoUXVhbGl0eSIpfX1jbGFzcyBRUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwcmludFNjYWxpbmciLFsiYXBwZGVmYXVsdCIsIm5vU2NhbGluZyJdKX19Y2xhc3MgRVEgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJpbnRlck5hbWUiKX19Y2xhc3MgdVEgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJvZHVjZXIiKX19Y2xhc3MgZFEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHMiLCEwKSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLmJhdGNoT3V0cHV0PW51bGwsdGhpcy5mb250SW5mbz1udWxsLHRoaXMuam9nPW51bGwsdGhpcy5tZWRpdW1JbmZvPW51bGwsdGhpcy5vdXRwdXRCaW49bnVsbCx0aGlzLnN0YXBsZT1udWxsLHRoaXMueGRjPW51bGx9fWNsYXNzIGZRIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInJhbmdlIil9W1NvXSgpe3RoaXNbRG9dPXRoaXNbRG9dLnRyaW0oKS5zcGxpdCgvXHMqLFxzKi8sMikubWFwKChBPT5BLnNwbGl0KCItIikubWFwKChBPT5wYXJzZUludChBLnRyaW0oKSwxMCkpKSkpLmZpbHRlcigoQT0+QS5ldmVyeSgoQT0+IWlzTmFOKEEpKSkpKS5tYXAoKEE9PigxPT09QS5sZW5ndGgmJkEucHVzaChBWzBdKSxBKSkpfX1jbGFzcyBwUSBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJyZWNvcmQiKX1bU29dKCl7dGhpc1tEb109dGhpc1tEb10udHJpbSgpO2NvbnN0IEE9cGFyc2VJbnQodGhpc1tEb10sMTApOyFpc05hTihBKSYmQT49MCYmKHRoaXNbRG9dPUEpfX1jbGFzcyBtUSBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJyZWxldmFudCIpfVtTb10oKXt0aGlzW0RvXT10aGlzW0RvXS50cmltKCkuc3BsaXQoL1xzKy8pfX1jbGFzcyB5USBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJyZW5hbWUiKX1bU29dKCl7dGhpc1tEb109dGhpc1tEb10udHJpbSgpLCh0aGlzW0RvXS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoInhtbCIpfHxuZXcgUmVnRXhwKCJbXFxwe0x9X11bXFxwe0x9XFxkLl9cXHB7TX0tXSoiLCJ1IikudGVzdCh0aGlzW0RvXSkpJiZVKCJYRkEgLSBSZW5hbWU6IGludmFsaWQgWEZBIG5hbWUiKX19Y2xhc3Mgd1EgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicmVuZGVyUG9saWN5IixbInNlcnZlciIsImNsaWVudCJdKX19Y2xhc3MgRFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicnVuU2NyaXB0cyIsWyJib3RoIiwiY2xpZW50Iiwibm9uZSIsInNlcnZlciJdKX19Y2xhc3MgYlEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwic2NyaXB0IiwhMCksdGhpcy5jdXJyZW50UGFnZT1udWxsLHRoaXMuZXhjbHVkZT1udWxsLHRoaXMucnVuU2NyaXB0cz1udWxsfX1jbGFzcyBrUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzY3JpcHRNb2RlbCIsWyJYRkEiLCJub25lIl0pfX1jbGFzcyBGUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzZXZlcml0eSIsWyJpZ25vcmUiLCJlcnJvciIsImluZm9ybWF0aW9uIiwidHJhY2UiLCJ3YXJuaW5nIl0pfX1jbGFzcyBTUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzaWxlbnRQcmludCIsITApLHRoaXMuYWRkU2lsZW50UHJpbnQ9bnVsbCx0aGlzLnByaW50ZXJOYW1lPW51bGx9fWNsYXNzIFJRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInN0YXBsZSIpLHRoaXMubW9kZT1ISShBLm1vZGUsWyJ1c2VQcmludGVyU2V0dGluZyIsIm9uIiwib2ZmIl0pfX1jbGFzcyBHUSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzdGFydE5vZGUiKX19Y2xhc3MgTlEgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwic3RhcnRQYWdlIiwwLChBPT4hMCkpfX1jbGFzcyB4USBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzdWJtaXRGb3JtYXQiLFsiaHRtbCIsImRlbGVnYXRlIiwiZmRmIiwieG1sIiwicGRmIl0pfX1jbGFzcyBVUSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzdWJtaXRVcmwiKX19Y2xhc3MgTVEgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwic3Vic2V0QmVsb3ciLDEwMCwoQT0+QT49MCYmQTw9MTAwKSl9fWNsYXNzIExRIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInN1cHByZXNzQmFubmVyIil9fWNsYXNzIEpRIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInRhZ2dlZCIpfX1jbGFzcyBIUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ0ZW1wbGF0ZSIsITApLHRoaXMuYmFzZT1udWxsLHRoaXMucmVsZXZhbnQ9bnVsbCx0aGlzLnN0YXJ0UGFnZT1udWxsLHRoaXMudXJpPW51bGwsdGhpcy54c2w9bnVsbH19Y2xhc3MgWVEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidGhyZXNob2xkIixbInRyYWNlIiwiZXJyb3IiLCJpbmZvcm1hdGlvbiIsIndhcm5pbmciXSl9fWNsYXNzIHZRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInRvIixbIm51bGwiLCJtZW1vcnkiLCJzdGRlcnIiLCJzdGRvdXQiLCJzeXN0ZW0iLCJ1cmkiXSl9fWNsYXNzIEtRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInRlbXBsYXRlQ2FjaGUiKSx0aGlzLm1heEVudHJpZXM9TUkoe2RhdGE6QS5tYXhFbnRyaWVzLGRlZmF1bHRWYWx1ZTo1LHZhbGlkYXRlOkE9PkE+PTB9KX19Y2xhc3MgcVEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidHJhY2UiLCEwKSx0aGlzLmFyZWE9bmV3IG1jfX1jbGFzcyBUUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ0cmFuc2Zvcm0iLCEwKSx0aGlzLmdyb3VwUGFyZW50PW51bGwsdGhpcy5pZkVtcHR5PW51bGwsdGhpcy5uYW1lQXR0cj1udWxsLHRoaXMucGljdHVyZT1udWxsLHRoaXMucHJlc2VuY2U9bnVsbCx0aGlzLnJlbmFtZT1udWxsLHRoaXMud2hpdGVzcGFjZT1udWxsfX1jbGFzcyBQUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ0eXBlIixbIm5vbmUiLCJhc2NpaTg1IiwiYXNjaWlIZXgiLCJjY2l0dGZheCIsImZsYXRlIiwibHp3IiwicnVuTGVuZ3RoIiwibmF0aXZlIiwieGRwIiwibWVyZ2VkWERQIl0pfX1jbGFzcyBXUSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ1cmkiKX19Y2xhc3MgT1EgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidmFsaWRhdGUiLFsicHJlU3VibWl0IiwicHJlUHJpbnQiLCJwcmVFeGVjdXRlIiwicHJlU2F2ZSJdKX19Y2xhc3MgWlEgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidmFsaWRhdGVBcHByb3ZhbFNpZ25hdHVyZXMiKX1bU29dKCl7dGhpc1tEb109dGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKEE9PlsiZG9jUmVhZHkiLCJwb3N0U2lnbiJdLmluY2x1ZGVzKEEpKSl9fWNsYXNzIGpRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInZhbGlkYXRpb25NZXNzYWdpbmciLFsiYWxsTWVzc2FnZXNJbmRpdmlkdWFsbHkiLCJhbGxNZXNzYWdlc1RvZ2V0aGVyIiwiZmlyc3RNZXNzYWdlT25seSIsIm5vTWVzc2FnZXMiXSl9fWNsYXNzIFhRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInZlcnNpb24iLFsiMS43IiwiMS42IiwiMS41IiwiMS40IiwiMS4zIiwiMS4yIl0pfX1jbGFzcyBWUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJWZXJzaW9uQ29udHJvbCIpLHRoaXMub3V0cHV0QmVsb3c9SEkoQS5vdXRwdXRCZWxvdyxbIndhcm4iLCJlcnJvciIsInVwZGF0ZSJdKSx0aGlzLnNvdXJjZUFib3ZlPUhJKEEuc291cmNlQWJvdmUsWyJ3YXJuIiwiZXJyb3IiXSksdGhpcy5zb3VyY2VCZWxvdz1ISShBLnNvdXJjZUJlbG93LFsidXBkYXRlIiwibWFpbnRhaW4iXSl9fWNsYXNzIF9RIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInZpZXdlclByZWZlcmVuY2VzIiwhMCksdGhpcy5BREJFX0pTQ29uc29sZT1udWxsLHRoaXMuQURCRV9KU0RlYnVnZ2VyPW51bGwsdGhpcy5hZGRWaWV3ZXJQcmVmZXJlbmNlcz1udWxsLHRoaXMuZHVwbGV4T3B0aW9uPW51bGwsdGhpcy5lbmZvcmNlPW51bGwsdGhpcy5udW1iZXJPZkNvcGllcz1udWxsLHRoaXMucGFnZVJhbmdlPW51bGwsdGhpcy5waWNrVHJheUJ5UERGU2l6ZT1udWxsLHRoaXMucHJpbnRTY2FsaW5nPW51bGx9fWNsYXNzIHpRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIndlYkNsaWVudCIsITApLHRoaXMubmFtZT1BLm5hbWU/QS5uYW1lLnRyaW0oKToiIix0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy54ZGM9bnVsbH19Y2xhc3MgJFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwid2hpdGVzcGFjZSIsWyJwcmVzZXJ2ZSIsImx0cmltIiwibm9ybWFsaXplIiwicnRyaW0iLCJ0cmltIl0pfX1jbGFzcyBBRSBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ3aW5kb3ciKX1bU29dKCl7Y29uc3QgQT10aGlzW0RvXS50cmltKCkuc3BsaXQoL1xzKixccyovLDIpLm1hcCgoQT0+cGFyc2VJbnQoQSwxMCkpKTtBLnNvbWUoKEE9PmlzTmFOKEEpKSk/dGhpc1tEb109WzAsMF06KDE9PT1BLmxlbmd0aCYmQS5wdXNoKEFbMF0pLHRoaXNbRG9dPUEpfX1jbGFzcyBlRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ4ZGMiLCEwKSx0aGlzLnVyaT1uZXcgbWMsdGhpcy54c2w9bmV3IG1jfX1jbGFzcyB0RSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ4ZHAiLCEwKSx0aGlzLnBhY2tldHM9bnVsbH19Y2xhc3MgaUUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwieHNsIiwhMCksdGhpcy5kZWJ1Zz1udWxsLHRoaXMudXJpPW51bGx9fWNsYXNzIGFFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInpwbCIsITApLHRoaXMubmFtZT1BLm5hbWU/QS5uYW1lLnRyaW0oKToiIix0aGlzLmJhdGNoT3V0cHV0PW51bGwsdGhpcy5mbGlwTGFiZWw9bnVsbCx0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy54ZGM9bnVsbH19Y2xhc3Mgc0V7c3RhdGljW1JJXShBLGUpe2lmKHNFLmhhc093blByb3BlcnR5KEEpKXJldHVybiBzRVtBXShlKX1zdGF0aWMgYWNyb2JhdChBKXtyZXR1cm4gbmV3IEZCKEEpfXN0YXRpYyBhY3JvYmF0NyhBKXtyZXR1cm4gbmV3IFNCKEEpfXN0YXRpYyBBREJFX0pTQ29uc29sZShBKXtyZXR1cm4gbmV3IFJCKEEpfXN0YXRpYyBBREJFX0pTRGVidWdnZXIoQSl7cmV0dXJuIG5ldyBHQihBKX1zdGF0aWMgYWRkU2lsZW50UHJpbnQoQSl7cmV0dXJuIG5ldyBOQihBKX1zdGF0aWMgYWRkVmlld2VyUHJlZmVyZW5jZXMoQSl7cmV0dXJuIG5ldyB4QihBKX1zdGF0aWMgYWRqdXN0RGF0YShBKXtyZXR1cm4gbmV3IFVCKEEpfXN0YXRpYyBhZG9iZUV4dGVuc2lvbkxldmVsKEEpe3JldHVybiBuZXcgTUIoQSl9c3RhdGljIGFnZW50KEEpe3JldHVybiBuZXcgTEIoQSl9c3RhdGljIGFsd2F5c0VtYmVkKEEpe3JldHVybiBuZXcgSkIoQSl9c3RhdGljIGFtZChBKXtyZXR1cm4gbmV3IEhCKEEpfXN0YXRpYyBhcmVhKEEpe3JldHVybiBuZXcgWUIoQSl9c3RhdGljIGF0dHJpYnV0ZXMoQSl7cmV0dXJuIG5ldyB2QihBKX1zdGF0aWMgYXV0b1NhdmUoQSl7cmV0dXJuIG5ldyBLQihBKX1zdGF0aWMgYmFzZShBKXtyZXR1cm4gbmV3IHFCKEEpfXN0YXRpYyBiYXRjaE91dHB1dChBKXtyZXR1cm4gbmV3IFRCKEEpfXN0YXRpYyBiZWhhdmlvck92ZXJyaWRlKEEpe3JldHVybiBuZXcgUEIoQSl9c3RhdGljIGNhY2hlKEEpe3JldHVybiBuZXcgV0IoQSl9c3RhdGljIGNoYW5nZShBKXtyZXR1cm4gbmV3IE9CKEEpfXN0YXRpYyBjb21tb24oQSl7cmV0dXJuIG5ldyBaQihBKX1zdGF0aWMgY29tcHJlc3MoQSl7cmV0dXJuIG5ldyBqQihBKX1zdGF0aWMgY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlKEEpe3JldHVybiBuZXcgWEIoQSl9c3RhdGljIGNvbXByZXNzT2JqZWN0U3RyZWFtKEEpe3JldHVybiBuZXcgVkIoQSl9c3RhdGljIGNvbXByZXNzaW9uKEEpe3JldHVybiBuZXcgX0IoQSl9c3RhdGljIGNvbmZpZyhBKXtyZXR1cm4gbmV3IHpCKEEpfXN0YXRpYyBjb25mb3JtYW5jZShBKXtyZXR1cm4gbmV3ICRCKEEpfXN0YXRpYyBjb250ZW50Q29weShBKXtyZXR1cm4gbmV3IEFsKEEpfXN0YXRpYyBjb3BpZXMoQSl7cmV0dXJuIG5ldyBlbChBKX1zdGF0aWMgY3JlYXRvcihBKXtyZXR1cm4gbmV3IHRsKEEpfXN0YXRpYyBjdXJyZW50UGFnZShBKXtyZXR1cm4gbmV3IGlsKEEpfXN0YXRpYyBkYXRhKEEpe3JldHVybiBuZXcgYWwoQSl9c3RhdGljIGRlYnVnKEEpe3JldHVybiBuZXcgc2woQSl9c3RhdGljIGRlZmF1bHRUeXBlZmFjZShBKXtyZXR1cm4gbmV3IG5sKEEpfXN0YXRpYyBkZXN0aW5hdGlvbihBKXtyZXR1cm4gbmV3IHJsKEEpfXN0YXRpYyBkb2N1bWVudEFzc2VtYmx5KEEpe3JldHVybiBuZXcgZ2woQSl9c3RhdGljIGRyaXZlcihBKXtyZXR1cm4gbmV3IG9sKEEpfXN0YXRpYyBkdXBsZXhPcHRpb24oQSl7cmV0dXJuIG5ldyBJbChBKX1zdGF0aWMgZHluYW1pY1JlbmRlcihBKXtyZXR1cm4gbmV3IGNsKEEpfXN0YXRpYyBlbWJlZChBKXtyZXR1cm4gbmV3IGhsKEEpfXN0YXRpYyBlbmNyeXB0KEEpe3JldHVybiBuZXcgQ2woQSl9c3RhdGljIGVuY3J5cHRpb24oQSl7cmV0dXJuIG5ldyBCbChBKX1zdGF0aWMgZW5jcnlwdGlvbkxldmVsKEEpe3JldHVybiBuZXcgbGwoQSl9c3RhdGljIGVuZm9yY2UoQSl7cmV0dXJuIG5ldyBRbChBKX1zdGF0aWMgZXF1YXRlKEEpe3JldHVybiBuZXcgRWwoQSl9c3RhdGljIGVxdWF0ZVJhbmdlKEEpe3JldHVybiBuZXcgdWwoQSl9c3RhdGljIGV4Y2x1ZGUoQSl7cmV0dXJuIG5ldyBkbChBKX1zdGF0aWMgZXhjbHVkZU5TKEEpe3JldHVybiBuZXcgZmwoQSl9c3RhdGljIGZsaXBMYWJlbChBKXtyZXR1cm4gbmV3IHBsKEEpfXN0YXRpYyBmb250SW5mbyhBKXtyZXR1cm4gbmV3IG1sKEEpfXN0YXRpYyBmb3JtRmllbGRGaWxsaW5nKEEpe3JldHVybiBuZXcgeWwoQSl9c3RhdGljIGdyb3VwUGFyZW50KEEpe3JldHVybiBuZXcgd2woQSl9c3RhdGljIGlmRW1wdHkoQSl7cmV0dXJuIG5ldyBEbChBKX1zdGF0aWMgaW5jbHVkZVhEUENvbnRlbnQoQSl7cmV0dXJuIG5ldyBibChBKX1zdGF0aWMgaW5jcmVtZW50YWxMb2FkKEEpe3JldHVybiBuZXcga2woQSl9c3RhdGljIGluY3JlbWVudGFsTWVyZ2UoQSl7cmV0dXJuIG5ldyBGbChBKX1zdGF0aWMgaW50ZXJhY3RpdmUoQSl7cmV0dXJuIG5ldyBTbChBKX1zdGF0aWMgam9nKEEpe3JldHVybiBuZXcgUmwoQSl9c3RhdGljIGxhYmVsUHJpbnRlcihBKXtyZXR1cm4gbmV3IEdsKEEpfXN0YXRpYyBsYXlvdXQoQSl7cmV0dXJuIG5ldyBObChBKX1zdGF0aWMgbGV2ZWwoQSl7cmV0dXJuIG5ldyB4bChBKX1zdGF0aWMgbGluZWFyaXplZChBKXtyZXR1cm4gbmV3IFVsKEEpfXN0YXRpYyBsb2NhbGUoQSl7cmV0dXJuIG5ldyBNbChBKX1zdGF0aWMgbG9jYWxlU2V0KEEpe3JldHVybiBuZXcgTGwoQSl9c3RhdGljIGxvZyhBKXtyZXR1cm4gbmV3IEpsKEEpfXN0YXRpYyBtYXAoQSl7cmV0dXJuIG5ldyBIbChBKX1zdGF0aWMgbWVkaXVtSW5mbyhBKXtyZXR1cm4gbmV3IFlsKEEpfXN0YXRpYyBtZXNzYWdlKEEpe3JldHVybiBuZXcgdmwoQSl9c3RhdGljIG1lc3NhZ2luZyhBKXtyZXR1cm4gbmV3IEtsKEEpfXN0YXRpYyBtb2RlKEEpe3JldHVybiBuZXcgcWwoQSl9c3RhdGljIG1vZGlmeUFubm90cyhBKXtyZXR1cm4gbmV3IFRsKEEpfXN0YXRpYyBtc2dJZChBKXtyZXR1cm4gbmV3IFBsKEEpfXN0YXRpYyBuYW1lQXR0cihBKXtyZXR1cm4gbmV3IFdsKEEpfXN0YXRpYyBuZXZlckVtYmVkKEEpe3JldHVybiBuZXcgT2woQSl9c3RhdGljIG51bWJlck9mQ29waWVzKEEpe3JldHVybiBuZXcgWmwoQSl9c3RhdGljIG9wZW5BY3Rpb24oQSl7cmV0dXJuIG5ldyBqbChBKX1zdGF0aWMgb3V0cHV0KEEpe3JldHVybiBuZXcgWGwoQSl9c3RhdGljIG91dHB1dEJpbihBKXtyZXR1cm4gbmV3IFZsKEEpfXN0YXRpYyBvdXRwdXRYU0woQSl7cmV0dXJuIG5ldyBfbChBKX1zdGF0aWMgb3ZlcnByaW50KEEpe3JldHVybiBuZXcgemwoQSl9c3RhdGljIHBhY2tldHMoQSl7cmV0dXJuIG5ldyAkbChBKX1zdGF0aWMgcGFnZU9mZnNldChBKXtyZXR1cm4gbmV3IEFRKEEpfXN0YXRpYyBwYWdlUmFuZ2UoQSl7cmV0dXJuIG5ldyBlUShBKX1zdGF0aWMgcGFnaW5hdGlvbihBKXtyZXR1cm4gbmV3IHRRKEEpfXN0YXRpYyBwYWdpbmF0aW9uT3ZlcnJpZGUoQSl7cmV0dXJuIG5ldyBpUShBKX1zdGF0aWMgcGFydChBKXtyZXR1cm4gbmV3IGFRKEEpfXN0YXRpYyBwY2woQSl7cmV0dXJuIG5ldyBzUShBKX1zdGF0aWMgcGRmKEEpe3JldHVybiBuZXcgblEoQSl9c3RhdGljIHBkZmEoQSl7cmV0dXJuIG5ldyByUShBKX1zdGF0aWMgcGVybWlzc2lvbnMoQSl7cmV0dXJuIG5ldyBnUShBKX1zdGF0aWMgcGlja1RyYXlCeVBERlNpemUoQSl7cmV0dXJuIG5ldyBvUShBKX1zdGF0aWMgcGljdHVyZShBKXtyZXR1cm4gbmV3IElRKEEpfXN0YXRpYyBwbGFpbnRleHRNZXRhZGF0YShBKXtyZXR1cm4gbmV3IGNRKEEpfXN0YXRpYyBwcmVzZW5jZShBKXtyZXR1cm4gbmV3IGhRKEEpfXN0YXRpYyBwcmVzZW50KEEpe3JldHVybiBuZXcgQ1EoQSl9c3RhdGljIHByaW50KEEpe3JldHVybiBuZXcgQlEoQSl9c3RhdGljIHByaW50SGlnaFF1YWxpdHkoQSl7cmV0dXJuIG5ldyBsUShBKX1zdGF0aWMgcHJpbnRTY2FsaW5nKEEpe3JldHVybiBuZXcgUVEoQSl9c3RhdGljIHByaW50ZXJOYW1lKEEpe3JldHVybiBuZXcgRVEoQSl9c3RhdGljIHByb2R1Y2VyKEEpe3JldHVybiBuZXcgdVEoQSl9c3RhdGljIHBzKEEpe3JldHVybiBuZXcgZFEoQSl9c3RhdGljIHJhbmdlKEEpe3JldHVybiBuZXcgZlEoQSl9c3RhdGljIHJlY29yZChBKXtyZXR1cm4gbmV3IHBRKEEpfXN0YXRpYyByZWxldmFudChBKXtyZXR1cm4gbmV3IG1RKEEpfXN0YXRpYyByZW5hbWUoQSl7cmV0dXJuIG5ldyB5UShBKX1zdGF0aWMgcmVuZGVyUG9saWN5KEEpe3JldHVybiBuZXcgd1EoQSl9c3RhdGljIHJ1blNjcmlwdHMoQSl7cmV0dXJuIG5ldyBEUShBKX1zdGF0aWMgc2NyaXB0KEEpe3JldHVybiBuZXcgYlEoQSl9c3RhdGljIHNjcmlwdE1vZGVsKEEpe3JldHVybiBuZXcga1EoQSl9c3RhdGljIHNldmVyaXR5KEEpe3JldHVybiBuZXcgRlEoQSl9c3RhdGljIHNpbGVudFByaW50KEEpe3JldHVybiBuZXcgU1EoQSl9c3RhdGljIHN0YXBsZShBKXtyZXR1cm4gbmV3IFJRKEEpfXN0YXRpYyBzdGFydE5vZGUoQSl7cmV0dXJuIG5ldyBHUShBKX1zdGF0aWMgc3RhcnRQYWdlKEEpe3JldHVybiBuZXcgTlEoQSl9c3RhdGljIHN1Ym1pdEZvcm1hdChBKXtyZXR1cm4gbmV3IHhRKEEpfXN0YXRpYyBzdWJtaXRVcmwoQSl7cmV0dXJuIG5ldyBVUShBKX1zdGF0aWMgc3Vic2V0QmVsb3coQSl7cmV0dXJuIG5ldyBNUShBKX1zdGF0aWMgc3VwcHJlc3NCYW5uZXIoQSl7cmV0dXJuIG5ldyBMUShBKX1zdGF0aWMgdGFnZ2VkKEEpe3JldHVybiBuZXcgSlEoQSl9c3RhdGljIHRlbXBsYXRlKEEpe3JldHVybiBuZXcgSFEoQSl9c3RhdGljIHRlbXBsYXRlQ2FjaGUoQSl7cmV0dXJuIG5ldyBLUShBKX1zdGF0aWMgdGhyZXNob2xkKEEpe3JldHVybiBuZXcgWVEoQSl9c3RhdGljIHRvKEEpe3JldHVybiBuZXcgdlEoQSl9c3RhdGljIHRyYWNlKEEpe3JldHVybiBuZXcgcVEoQSl9c3RhdGljIHRyYW5zZm9ybShBKXtyZXR1cm4gbmV3IFRRKEEpfXN0YXRpYyB0eXBlKEEpe3JldHVybiBuZXcgUFEoQSl9c3RhdGljIHVyaShBKXtyZXR1cm4gbmV3IFdRKEEpfXN0YXRpYyB2YWxpZGF0ZShBKXtyZXR1cm4gbmV3IE9RKEEpfXN0YXRpYyB2YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyhBKXtyZXR1cm4gbmV3IFpRKEEpfXN0YXRpYyB2YWxpZGF0aW9uTWVzc2FnaW5nKEEpe3JldHVybiBuZXcgalEoQSl9c3RhdGljIHZlcnNpb24oQSl7cmV0dXJuIG5ldyBYUShBKX1zdGF0aWMgdmVyc2lvbkNvbnRyb2woQSl7cmV0dXJuIG5ldyBWUShBKX1zdGF0aWMgdmlld2VyUHJlZmVyZW5jZXMoQSl7cmV0dXJuIG5ldyBfUShBKX1zdGF0aWMgd2ViQ2xpZW50KEEpe3JldHVybiBuZXcgelEoQSl9c3RhdGljIHdoaXRlc3BhY2UoQSl7cmV0dXJuIG5ldyAkUShBKX1zdGF0aWMgd2luZG93KEEpe3JldHVybiBuZXcgQUUoQSl9c3RhdGljIHhkYyhBKXtyZXR1cm4gbmV3IGVFKEEpfXN0YXRpYyB4ZHAoQSl7cmV0dXJuIG5ldyB0RShBKX1zdGF0aWMgeHNsKEEpe3JldHVybiBuZXcgaUUoQSl9c3RhdGljIHpwbChBKXtyZXR1cm4gbmV3IGFFKEEpfX1jb25zdCBuRT1HSS5jb25uZWN0aW9uU2V0LmlkO2NsYXNzIHJFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsImNvbm5lY3Rpb25TZXQiLCEwKSx0aGlzLndzZGxDb25uZWN0aW9uPW5ldyBtYyx0aGlzLnhtbENvbm5lY3Rpb249bmV3IG1jLHRoaXMueHNkQ29ubmVjdGlvbj1uZXcgbWN9fWNsYXNzIGdFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsImVmZmVjdGl2ZUlucHV0UG9saWN5IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIG9FIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsImVmZmVjdGl2ZU91dHB1dFBvbGljeSIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBJRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJvcGVyYXRpb24iKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMuaW5wdXQ9QS5pbnB1dHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5vdXRwdXQ9QS5vdXRwdXR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgY0UgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwicm9vdEVsZW1lbnQiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgaEUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwic29hcEFjdGlvbiIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBDRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJzb2FwQWRkcmVzcyIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBCRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJ1cmkiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgbEUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwid3NkbEFkZHJlc3MiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgUUUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwid3NkbENvbm5lY3Rpb24iLCEwKSx0aGlzLmRhdGFEZXNjcmlwdGlvbj1BLmRhdGFEZXNjcmlwdGlvbnx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5lZmZlY3RpdmVJbnB1dFBvbGljeT1udWxsLHRoaXMuZWZmZWN0aXZlT3V0cHV0UG9saWN5PW51bGwsdGhpcy5vcGVyYXRpb249bnVsbCx0aGlzLnNvYXBBY3Rpb249bnVsbCx0aGlzLnNvYXBBZGRyZXNzPW51bGwsdGhpcy53c2RsQWRkcmVzcz1udWxsfX1jbGFzcyBFRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJ4bWxDb25uZWN0aW9uIiwhMCksdGhpcy5kYXRhRGVzY3JpcHRpb249QS5kYXRhRGVzY3JpcHRpb258fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXJpPW51bGx9fWNsYXNzIHVFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsInhzZENvbm5lY3Rpb24iLCEwKSx0aGlzLmRhdGFEZXNjcmlwdGlvbj1BLmRhdGFEZXNjcmlwdGlvbnx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yb290RWxlbWVudD1udWxsLHRoaXMudXJpPW51bGx9fWNsYXNzIGRFe3N0YXRpY1tSSV0oQSxlKXtpZihkRS5oYXNPd25Qcm9wZXJ0eShBKSlyZXR1cm4gZEVbQV0oZSl9c3RhdGljIGNvbm5lY3Rpb25TZXQoQSl7cmV0dXJuIG5ldyByRShBKX1zdGF0aWMgZWZmZWN0aXZlSW5wdXRQb2xpY3koQSl7cmV0dXJuIG5ldyBnRShBKX1zdGF0aWMgZWZmZWN0aXZlT3V0cHV0UG9saWN5KEEpe3JldHVybiBuZXcgb0UoQSl9c3RhdGljIG9wZXJhdGlvbihBKXtyZXR1cm4gbmV3IElFKEEpfXN0YXRpYyByb290RWxlbWVudChBKXtyZXR1cm4gbmV3IGNFKEEpfXN0YXRpYyBzb2FwQWN0aW9uKEEpe3JldHVybiBuZXcgaEUoQSl9c3RhdGljIHNvYXBBZGRyZXNzKEEpe3JldHVybiBuZXcgQ0UoQSl9c3RhdGljIHVyaShBKXtyZXR1cm4gbmV3IEJFKEEpfXN0YXRpYyB3c2RsQWRkcmVzcyhBKXtyZXR1cm4gbmV3IGxFKEEpfXN0YXRpYyB3c2RsQ29ubmVjdGlvbihBKXtyZXR1cm4gbmV3IFFFKEEpfXN0YXRpYyB4bWxDb25uZWN0aW9uKEEpe3JldHVybiBuZXcgRUUoQSl9c3RhdGljIHhzZENvbm5lY3Rpb24oQSl7cmV0dXJuIG5ldyB1RShBKX19Y29uc3QgZkU9R0kuZGF0YXNldHMuaWQ7Y2xhc3MgcEUgZXh0ZW5kcyB3Y3tjb25zdHJ1Y3RvcihBKXtzdXBlcihmRSwiZGF0YSIsQSl9W2VJXSgpe3JldHVybiEwfX1jbGFzcyBtRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGZFLCJkYXRhc2V0cyIsITApLHRoaXMuZGF0YT1udWxsLHRoaXMuU2lnbmF0dXJlPW51bGx9W0lJXShBKXtjb25zdCBlPUFbZ0ldOygiZGF0YSI9PT1lJiZBW3JJXT09PWZFfHwiU2lnbmF0dXJlIj09PWUmJkFbckldPT09R0kuc2lnbmF0dXJlLmlkKSYmKHRoaXNbZV09QSksdGhpc1tFb10oQSl9fWNsYXNzIHlFe3N0YXRpY1tSSV0oQSxlKXtpZih5RS5oYXNPd25Qcm9wZXJ0eShBKSlyZXR1cm4geUVbQV0oZSl9c3RhdGljIGRhdGFzZXRzKEEpe3JldHVybiBuZXcgbUUoQSl9c3RhdGljIGRhdGEoQSl7cmV0dXJuIG5ldyBwRShBKX19Y29uc3Qgd0U9R0kubG9jYWxlU2V0LmlkO2NsYXNzIERFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImNhbGVuZGFyU3ltYm9scyIsITApLHRoaXMubmFtZT0iZ3JlZ29yaWFuIix0aGlzLmRheU5hbWVzPW5ldyBtYygyKSx0aGlzLmVyYU5hbWVzPW51bGwsdGhpcy5tZXJpZGllbU5hbWVzPW51bGwsdGhpcy5tb250aE5hbWVzPW5ldyBtYygyKX19Y2xhc3MgYkUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwiY3VycmVuY3lTeW1ib2wiKSx0aGlzLm5hbWU9SEkoQS5uYW1lLFsic3ltYm9sIiwiaXNvbmFtZSIsImRlY2ltYWwiXSl9fWNsYXNzIGtFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImN1cnJlbmN5U3ltYm9scyIsITApLHRoaXMuY3VycmVuY3lTeW1ib2w9bmV3IG1jKDMpfX1jbGFzcyBGRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJkYXRlUGF0dGVybiIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBTRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJkYXRlUGF0dGVybnMiLCEwKSx0aGlzLmRhdGVQYXR0ZXJuPW5ldyBtYyg0KX19Y2xhc3MgUkUgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwiZGF0ZVRpbWVTeW1ib2xzIil9fWNsYXNzIEdFIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImRheSIpfX1jbGFzcyBORSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJkYXlOYW1lcyIsITApLHRoaXMuYWJicj1NSSh7ZGF0YTpBLmFiYnIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmRheT1uZXcgbWMoNyl9fWNsYXNzIHhFIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImVyYSIpfX1jbGFzcyBVRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJlcmFOYW1lcyIsITApLHRoaXMuZXJhPW5ldyBtYygyKX19Y2xhc3MgTUUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibG9jYWxlIiwhMCksdGhpcy5kZXNjPUEuZGVzY3x8IiIsdGhpcy5uYW1lPSJpc29uYW1lIix0aGlzLmNhbGVuZGFyU3ltYm9scz1udWxsLHRoaXMuY3VycmVuY3lTeW1ib2xzPW51bGwsdGhpcy5kYXRlUGF0dGVybnM9bnVsbCx0aGlzLmRhdGVUaW1lU3ltYm9scz1udWxsLHRoaXMubnVtYmVyUGF0dGVybnM9bnVsbCx0aGlzLm51bWJlclN5bWJvbHM9bnVsbCx0aGlzLnRpbWVQYXR0ZXJucz1udWxsLHRoaXMudHlwZUZhY2VzPW51bGx9fWNsYXNzIExFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImxvY2FsZVNldCIsITApLHRoaXMubG9jYWxlPW5ldyBtY319Y2xhc3MgSkUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibWVyaWRpZW0iKX19Y2xhc3MgSEUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibWVyaWRpZW1OYW1lcyIsITApLHRoaXMubWVyaWRpZW09bmV3IG1jKDIpfX1jbGFzcyBZRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJtb250aCIpfX1jbGFzcyB2RSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJtb250aE5hbWVzIiwhMCksdGhpcy5hYmJyPU1JKHtkYXRhOkEuYWJicixkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QX0pLHRoaXMubW9udGg9bmV3IG1jKDEyKX19Y2xhc3MgS0UgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibnVtYmVyUGF0dGVybiIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBxRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJudW1iZXJQYXR0ZXJucyIsITApLHRoaXMubnVtYmVyUGF0dGVybj1uZXcgbWMoNCl9fWNsYXNzIFRFIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsIm51bWJlclN5bWJvbCIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJkZWNpbWFsIiwiZ3JvdXBpbmciLCJwZXJjZW50IiwibWludXMiLCJ6ZXJvIl0pfX1jbGFzcyBQRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJudW1iZXJTeW1ib2xzIiwhMCksdGhpcy5udW1iZXJTeW1ib2w9bmV3IG1jKDUpfX1jbGFzcyBXRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJ0aW1lUGF0dGVybiIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBPRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJ0aW1lUGF0dGVybnMiLCEwKSx0aGlzLnRpbWVQYXR0ZXJuPW5ldyBtYyg0KX19Y2xhc3MgWkUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwidHlwZUZhY2UiLCEwKSx0aGlzLm5hbWU9IiJ8QS5uYW1lfX1jbGFzcyBqRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJ0eXBlRmFjZXMiLCEwKSx0aGlzLnR5cGVGYWNlPW5ldyBtY319Y2xhc3MgWEV7c3RhdGljW1JJXShBLGUpe2lmKFhFLmhhc093blByb3BlcnR5KEEpKXJldHVybiBYRVtBXShlKX1zdGF0aWMgY2FsZW5kYXJTeW1ib2xzKEEpe3JldHVybiBuZXcgREUoQSl9c3RhdGljIGN1cnJlbmN5U3ltYm9sKEEpe3JldHVybiBuZXcgYkUoQSl9c3RhdGljIGN1cnJlbmN5U3ltYm9scyhBKXtyZXR1cm4gbmV3IGtFKEEpfXN0YXRpYyBkYXRlUGF0dGVybihBKXtyZXR1cm4gbmV3IEZFKEEpfXN0YXRpYyBkYXRlUGF0dGVybnMoQSl7cmV0dXJuIG5ldyBTRShBKX1zdGF0aWMgZGF0ZVRpbWVTeW1ib2xzKEEpe3JldHVybiBuZXcgUkUoQSl9c3RhdGljIGRheShBKXtyZXR1cm4gbmV3IEdFKEEpfXN0YXRpYyBkYXlOYW1lcyhBKXtyZXR1cm4gbmV3IE5FKEEpfXN0YXRpYyBlcmEoQSl7cmV0dXJuIG5ldyB4RShBKX1zdGF0aWMgZXJhTmFtZXMoQSl7cmV0dXJuIG5ldyBVRShBKX1zdGF0aWMgbG9jYWxlKEEpe3JldHVybiBuZXcgTUUoQSl9c3RhdGljIGxvY2FsZVNldChBKXtyZXR1cm4gbmV3IExFKEEpfXN0YXRpYyBtZXJpZGllbShBKXtyZXR1cm4gbmV3IEpFKEEpfXN0YXRpYyBtZXJpZGllbU5hbWVzKEEpe3JldHVybiBuZXcgSEUoQSl9c3RhdGljIG1vbnRoKEEpe3JldHVybiBuZXcgWUUoQSl9c3RhdGljIG1vbnRoTmFtZXMoQSl7cmV0dXJuIG5ldyB2RShBKX1zdGF0aWMgbnVtYmVyUGF0dGVybihBKXtyZXR1cm4gbmV3IEtFKEEpfXN0YXRpYyBudW1iZXJQYXR0ZXJucyhBKXtyZXR1cm4gbmV3IHFFKEEpfXN0YXRpYyBudW1iZXJTeW1ib2woQSl7cmV0dXJuIG5ldyBURShBKX1zdGF0aWMgbnVtYmVyU3ltYm9scyhBKXtyZXR1cm4gbmV3IFBFKEEpfXN0YXRpYyB0aW1lUGF0dGVybihBKXtyZXR1cm4gbmV3IFdFKEEpfXN0YXRpYyB0aW1lUGF0dGVybnMoQSl7cmV0dXJuIG5ldyBPRShBKX1zdGF0aWMgdHlwZUZhY2UoQSl7cmV0dXJuIG5ldyBaRShBKX1zdGF0aWMgdHlwZUZhY2VzKEEpe3JldHVybiBuZXcgakUoQSl9fWNvbnN0IFZFPUdJLnNpZ25hdHVyZS5pZDtjbGFzcyBfRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKFZFLCJzaWduYXR1cmUiLCEwKX19Y2xhc3MgekV7c3RhdGljW1JJXShBLGUpe2lmKHpFLmhhc093blByb3BlcnR5KEEpKXJldHVybiB6RVtBXShlKX1zdGF0aWMgc2lnbmF0dXJlKEEpe3JldHVybiBuZXcgX0UoQSl9fWNvbnN0ICRFPUdJLnN0eWxlc2hlZXQuaWQ7Y2xhc3MgQXUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkRSwic3R5bGVzaGVldCIsITApfX1jbGFzcyBldXtzdGF0aWNbUkldKEEsZSl7aWYoZXUuaGFzT3duUHJvcGVydHkoQSkpcmV0dXJuIGV1W0FdKGUpfXN0YXRpYyBzdHlsZXNoZWV0KEEpe3JldHVybiBuZXcgQXUoQSl9fWNvbnN0IHR1PUdJLnhkcC5pZDtjbGFzcyBpdSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHR1LCJ4ZHAiLCEwKSx0aGlzLnV1aWQ9QS51dWlkfHwiIix0aGlzLnRpbWVTdGFtcD1BLnRpbWVTdGFtcHx8IiIsdGhpcy5jb25maWc9bnVsbCx0aGlzLmNvbm5lY3Rpb25TZXQ9bnVsbCx0aGlzLmRhdGFzZXRzPW51bGwsdGhpcy5sb2NhbGVTZXQ9bnVsbCx0aGlzLnN0eWxlc2hlZXQ9bmV3IG1jLHRoaXMudGVtcGxhdGU9bnVsbH1bY0ldKEEpe2NvbnN0IGU9R0lbQVtnSV1dO3JldHVybiBlJiZBW3JJXT09PWUuaWR9fWNsYXNzIGF1e3N0YXRpY1tSSV0oQSxlKXtpZihhdS5oYXNPd25Qcm9wZXJ0eShBKSlyZXR1cm4gYXVbQV0oZSl9c3RhdGljIHhkcChBKXtyZXR1cm4gbmV3IGl1KEEpfX1jb25zdCBzdT1HSS54aHRtbC5pZCxudT1TeW1ib2woKSxydT1uZXcgU2V0KFsiY29sb3IiLCJmb250IiwiZm9udC1mYW1pbHkiLCJmb250LXNpemUiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC13ZWlnaHQiLCJtYXJnaW4iLCJtYXJnaW4tYm90dG9tIiwibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiLCJtYXJnaW4tdG9wIiwibGV0dGVyLXNwYWNpbmciLCJsaW5lLWhlaWdodCIsIm9ycGhhbnMiLCJwYWdlLWJyZWFrLWFmdGVyIiwicGFnZS1icmVhay1iZWZvcmUiLCJwYWdlLWJyZWFrLWluc2lkZSIsInRhYi1pbnRlcnZhbCIsInRhYi1zdG9wIiwidGV4dC1hbGlnbiIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtaW5kZW50IiwidmVydGljYWwtYWxpZ24iLCJ3aWRvd3MiLCJrZXJuaW5nLW1vZGUiLCJ4ZmEtZm9udC1ob3Jpem9udGFsLXNjYWxlIiwieGZhLWZvbnQtdmVydGljYWwtc2NhbGUiLCJ4ZmEtc3BhY2VydW4iLCJ4ZmEtdGFiLXN0b3BzIl0pLGd1PW5ldyBNYXAoW1sicGFnZS1icmVhay1hZnRlciIsImJyZWFrQWZ0ZXIiXSxbInBhZ2UtYnJlYWstYmVmb3JlIiwiYnJlYWtCZWZvcmUiXSxbInBhZ2UtYnJlYWstaW5zaWRlIiwiYnJlYWtJbnNpZGUiXSxbImtlcm5pbmctbW9kZSIsQT0+Im5vbmUiPT09QT8ibm9uZSI6Im5vcm1hbCJdLFsieGZhLWZvbnQtaG9yaXpvbnRhbC1zY2FsZSIsQT0+YHNjYWxlWCgke01hdGgubWF4KDAsTWF0aC5taW4ocGFyc2VJbnQoQSkvMTAwKSkudG9GaXhlZCgyKX0pYF0sWyJ4ZmEtZm9udC12ZXJ0aWNhbC1zY2FsZSIsQT0+YHNjYWxlWSgke01hdGgubWF4KDAsTWF0aC5taW4ocGFyc2VJbnQoQSkvMTAwKSkudG9GaXhlZCgyKX0pYF0sWyJ4ZmEtc3BhY2VydW4iLCIiXSxbInhmYS10YWItc3RvcHMiLCIiXSxbImZvbnQtc2l6ZSIsKEEsZSk9PkdjKC45OSooQT1lLmZvbnRTaXplPVlJKEEpKSldLFsibGV0dGVyLXNwYWNpbmciLEE9PkdjKFlJKEEpKV0sWyJsaW5lLWhlaWdodCIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbiIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbi1ib3R0b20iLEE9PkdjKFlJKEEpKV0sWyJtYXJnaW4tbGVmdCIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbi1yaWdodCIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbi10b3AiLEE9PkdjKFlJKEEpKV0sWyJ0ZXh0LWluZGVudCIsQT0+R2MoWUkoQSkpXSxbImZvbnQtZmFtaWx5IixBPT5BXSxbInZlcnRpY2FsLWFsaWduIixBPT5HYyhZSShBKSldXSksb3U9L1xzKy9nLEl1PS9bXHJcbl0rL2csY3U9L1xyXG4/L2c7ZnVuY3Rpb24gaHUoQSxlLHQpe2NvbnN0IGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighQSlyZXR1cm4gaTtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W2UsdF1vZiBBLnNwbGl0KCI7IikubWFwKChBPT5BLnNwbGl0KCI6IiwyKSkpKXtjb25zdCBBPWd1LmdldChlKTtpZigiIj09PUEpY29udGludWU7bGV0IHM9dDtBJiYocz0ic3RyaW5nIj09dHlwZW9mIEE/QTpBKHQsYSkpLGUuZW5kc1dpdGgoInNjYWxlIik/aS50cmFuc2Zvcm09aS50cmFuc2Zvcm0/YCR7aVtlXX0gJHtzfWA6czppW2UucmVwbGFjZUFsbCgvLShbYS16QS1aXSkvZywoKEEsZSk9PmUudG9VcHBlckNhc2UoKSkpXT1zfWlmKGkuZm9udEZhbWlseSYmT2Moe3R5cGVmYWNlOmkuZm9udEZhbWlseSx3ZWlnaHQ6aS5mb250V2VpZ2h0fHwibm9ybWFsIixwb3N0dXJlOmkuZm9udFN0eWxlfHwibm9ybWFsIixzaXplOmEuZm9udFNpemV8fDB9LGUsZVtPb10uZm9udEZpbmRlcixpKSx0JiZpLnZlcnRpY2FsQWxpZ24mJiIwcHgiIT09aS52ZXJ0aWNhbEFsaWduJiZpLmZvbnRTaXplKXtjb25zdCBBPS41ODMsZT0uMzMzLHQ9WUkoaS5mb250U2l6ZSk7aS5mb250U2l6ZT1HYyh0KkEpLGkudmVydGljYWxBbGlnbj1HYyhNYXRoLnNpZ24oWUkoaS52ZXJ0aWNhbEFsaWduKSkqdCplKX1yZXR1cm4gdCYmaS5mb250U2l6ZSYmKGkuZm9udFNpemU9YGNhbGMoJHtpLmZvbnRTaXplfSAqIHZhcigtLXNjYWxlLWZhY3RvcikpYCksS2MoaSksaX1jb25zdCBDdT1uZXcgU2V0KFsiYm9keSIsImh0bWwiXSk7Y2xhc3MgQnUgZXh0ZW5kcyB3Y3tjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKHN1LGUpLHRoaXNbbnVdPSExLHRoaXMuc3R5bGU9QS5zdHlsZXx8IiJ9W2ZvXShBKXt2YXIgZTtzdXBlcltmb10oQSksdGhpcy5zdHlsZT0oZT10aGlzKS5zdHlsZT9lLnN0eWxlLnRyaW0oKS5zcGxpdCgvXHMqO1xzKi8pLmZpbHRlcigoQT0+ISFBKSkubWFwKChBPT5BLnNwbGl0KC9ccyo6XHMqLywyKSkpLmZpbHRlcigoKFtBLHRdKT0+KCJmb250LWZhbWlseSI9PT1BJiZlW09vXS51c2VkVHlwZWZhY2VzLmFkZCh0KSxydS5oYXMoQSkpKSkubWFwKChBPT5BLmpvaW4oIjoiKSkpLmpvaW4oIjsiKToiIn1bbG9dKCl7cmV0dXJuIUN1Lmhhcyh0aGlzW2dJXSl9W2hJXShBLGU9ITEpe2U/dGhpc1tudV09ITA6KEE9QS5yZXBsYWNlQWxsKEl1LCIiKSx0aGlzLnN0eWxlLmluY2x1ZGVzKCJ4ZmEtc3BhY2VydW46eWVzIil8fChBPUEucmVwbGFjZUFsbChvdSwiICIpKSksQSYmKHRoaXNbRG9dKz1BKX1bQ0ldKEEsZT0hMCl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpLGk9e3RvcDpOYU4sYm90dG9tOk5hTixsZWZ0Ok5hTixyaWdodDpOYU59O2xldCBhPW51bGw7Zm9yKGNvbnN0W0EsZV1vZiB0aGlzLnN0eWxlLnNwbGl0KCI7IikubWFwKChBPT5BLnNwbGl0KCI6IiwyKSkpKXN3aXRjaChBKXtjYXNlImZvbnQtZmFtaWx5Ijp0LnR5cGVmYWNlPVVJKGUpO2JyZWFrO2Nhc2UiZm9udC1zaXplIjp0LnNpemU9WUkoZSk7YnJlYWs7Y2FzZSJmb250LXdlaWdodCI6dC53ZWlnaHQ9ZTticmVhaztjYXNlImZvbnQtc3R5bGUiOnQucG9zdHVyZT1lO2JyZWFrO2Nhc2UibGV0dGVyLXNwYWNpbmciOnQubGV0dGVyU3BhY2luZz1ZSShlKTticmVhaztjYXNlIm1hcmdpbiI6Y29uc3QgQT1lLnNwbGl0KC8gXHQvKS5tYXAoKEE9PllJKEEpKSk7c3dpdGNoKEEubGVuZ3RoKXtjYXNlIDE6aS50b3A9aS5ib3R0b209aS5sZWZ0PWkucmlnaHQ9QVswXTticmVhaztjYXNlIDI6aS50b3A9aS5ib3R0b209QVswXSxpLmxlZnQ9aS5yaWdodD1BWzFdO2JyZWFrO2Nhc2UgMzppLnRvcD1BWzBdLGkuYm90dG9tPUFbMl0saS5sZWZ0PWkucmlnaHQ9QVsxXTticmVhaztjYXNlIDQ6aS50b3A9QVswXSxpLmxlZnQ9QVsxXSxpLmJvdHRvbT1BWzJdLGkucmlnaHQ9QVszXX1icmVhaztjYXNlIm1hcmdpbi10b3AiOmkudG9wPVlJKGUpO2JyZWFrO2Nhc2UibWFyZ2luLWJvdHRvbSI6aS5ib3R0b209WUkoZSk7YnJlYWs7Y2FzZSJtYXJnaW4tbGVmdCI6aS5sZWZ0PVlJKGUpO2JyZWFrO2Nhc2UibWFyZ2luLXJpZ2h0IjppLnJpZ2h0PVlJKGUpO2JyZWFrO2Nhc2UibGluZS1oZWlnaHQiOmE9WUkoZSl9aWYoQS5wdXNoRGF0YSh0LGksYSksdGhpc1tEb10pQS5hZGRTdHJpbmcodGhpc1tEb10pO2Vsc2UgZm9yKGNvbnN0IGUgb2YgdGhpc1t2b10oKSkiI3RleHQiIT09ZVtnSV0/ZVtDSV0oQSk6QS5hZGRTdHJpbmcoZVtEb10pO2UmJkEucG9wRm9udCgpfVtiSV0oQSl7Y29uc3QgZT1bXTtpZih0aGlzW0ZvXT17Y2hpbGRyZW46ZX0sdGhpc1t1b10oe30pLDA9PT1lLmxlbmd0aCYmIXRoaXNbRG9dKXJldHVybiBxSS5FTVBUWTtsZXQgdDtyZXR1cm4gdD10aGlzW251XT90aGlzW0RvXT90aGlzW0RvXS5yZXBsYWNlQWxsKGN1LCJcbiIpOnZvaWQgMDp0aGlzW0RvXXx8dm9pZCAwLHFJLnN1Y2Nlc3Moe25hbWU6dGhpc1tnSV0sYXR0cmlidXRlczp7aHJlZjp0aGlzLmhyZWYsc3R5bGU6aHUodGhpcy5zdHlsZSx0aGlzLHRoaXNbbnVdKX0sY2hpbGRyZW46ZSx2YWx1ZTp0fSl9fWNsYXNzIGx1IGV4dGVuZHMgQnV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiYSIpLHRoaXMuaHJlZj1aYyhBLmhyZWYpfHwiIn19Y2xhc3MgUXUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJiIil9W0NJXShBKXtBLnB1c2hGb250KHt3ZWlnaHQ6ImJvbGQifSksc3VwZXJbQ0ldKEEpLEEucG9wRm9udCgpfX1jbGFzcyBFdSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsImJvZHkiKX1bYkldKEEpe2NvbnN0IGU9c3VwZXJbYkldKEEpLHtodG1sOnR9PWU7cmV0dXJuIHQ/KHQubmFtZT0iZGl2Iix0LmF0dHJpYnV0ZXMuY2xhc3M9WyJ4ZmFSaWNoIl0sZSk6cUkuRU1QVFl9fWNsYXNzIHV1IGV4dGVuZHMgQnV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiYnIiKX1bd0ldKCl7cmV0dXJuIlxuIn1bQ0ldKEEpe0EuYWRkU3RyaW5nKCJcbiIpfVtiSV0oQSl7cmV0dXJuIHFJLnN1Y2Nlc3Moe25hbWU6ImJyIn0pfX1jbGFzcyBkdSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsImh0bWwiKX1bYkldKEEpe2NvbnN0IGU9W107aWYodGhpc1tGb109e2NoaWxkcmVuOmV9LHRoaXNbdW9dKHt9KSwwPT09ZS5sZW5ndGgpcmV0dXJuIHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFSaWNoIl0sc3R5bGU6e319LHZhbHVlOnRoaXNbRG9dfHwiIn0pO2lmKDE9PT1lLmxlbmd0aCl7Y29uc3QgQT1lWzBdO2lmKEEuYXR0cmlidXRlcz8uY2xhc3MuaW5jbHVkZXMoInhmYVJpY2giKSlyZXR1cm4gcUkuc3VjY2VzcyhBKX1yZXR1cm4gcUkuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVJpY2giXSxzdHlsZTp7fX0sY2hpbGRyZW46ZX0pfX1jbGFzcyBmdSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsImkiKX1bQ0ldKEEpe0EucHVzaEZvbnQoe3Bvc3R1cmU6Iml0YWxpYyJ9KSxzdXBlcltDSV0oQSksQS5wb3BGb250KCl9fWNsYXNzIHB1IGV4dGVuZHMgQnV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwibGkiKX19Y2xhc3MgbXUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJvbCIpfX1jbGFzcyB5dSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsInAiKX1bQ0ldKEEpe3N1cGVyW0NJXShBLCExKSxBLmFkZFN0cmluZygiXG4iKSxBLmFkZFBhcmEoKSxBLnBvcEZvbnQoKX1bd0ldKCl7cmV0dXJuIHRoaXNbUG9dKClbdm9dKCkuYXQoLTEpPT09dGhpcz9zdXBlclt3SV0oKTpzdXBlclt3SV0oKSsiXG4ifX1jbGFzcyB3dSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsInNwYW4iKX19Y2xhc3MgRHUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJzdWIiKX19Y2xhc3MgYnUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJzdXAiKX19Y2xhc3Mga3UgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJ1bCIpfX1jbGFzcyBGdXtzdGF0aWNbUkldKEEsZSl7aWYoRnUuaGFzT3duUHJvcGVydHkoQSkpcmV0dXJuIEZ1W0FdKGUpfXN0YXRpYyBhKEEpe3JldHVybiBuZXcgbHUoQSl9c3RhdGljIGIoQSl7cmV0dXJuIG5ldyBRdShBKX1zdGF0aWMgYm9keShBKXtyZXR1cm4gbmV3IEV1KEEpfXN0YXRpYyBicihBKXtyZXR1cm4gbmV3IHV1KEEpfXN0YXRpYyBodG1sKEEpe3JldHVybiBuZXcgZHUoQSl9c3RhdGljIGkoQSl7cmV0dXJuIG5ldyBmdShBKX1zdGF0aWMgbGkoQSl7cmV0dXJuIG5ldyBwdShBKX1zdGF0aWMgb2woQSl7cmV0dXJuIG5ldyBtdShBKX1zdGF0aWMgcChBKXtyZXR1cm4gbmV3IHl1KEEpfXN0YXRpYyBzcGFuKEEpe3JldHVybiBuZXcgd3UoQSl9c3RhdGljIHN1YihBKXtyZXR1cm4gbmV3IER1KEEpfXN0YXRpYyBzdXAoQSl7cmV0dXJuIG5ldyBidShBKX1zdGF0aWMgdWwoQSl7cmV0dXJuIG5ldyBrdShBKX19Y29uc3QgU3U9e2NvbmZpZzpzRSxjb25uZWN0aW9uOmRFLGRhdGFzZXRzOnlFLGxvY2FsZVNldDpYRSxzaWduYXR1cmU6ekUsc3R5bGVzaGVldDpldSx0ZW1wbGF0ZTptQix4ZHA6YXUseGh0bWw6RnV9O2NsYXNzIFJ1e2NvbnN0cnVjdG9yKEEpe3RoaXMubmFtZXNwYWNlSWQ9QX1bUkldKEEsZSl7cmV0dXJuIG5ldyB3Yyh0aGlzLm5hbWVzcGFjZUlkLEEsZSl9fWNsYXNzIEd1IGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoLTEsInJvb3QiLE9iamVjdC5jcmVhdGUobnVsbCkpLHRoaXMuZWxlbWVudD1udWxsLHRoaXNbam9dPUF9W0lJXShBKXtyZXR1cm4gdGhpcy5lbGVtZW50PUEsITB9W1NvXSgpe3N1cGVyW1NvXSgpLHRoaXMuZWxlbWVudC50ZW1wbGF0ZSBpbnN0YW5jZW9mIElCJiYodGhpc1tqb10uc2V0KEVJLHRoaXMuZWxlbWVudCksdGhpcy5lbGVtZW50LnRlbXBsYXRlW3VJXSh0aGlzW2pvXSksdGhpcy5lbGVtZW50LnRlbXBsYXRlW2pvXT10aGlzW2pvXSl9fWNsYXNzIE51IGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoKXtzdXBlcigtMSwiIixPYmplY3QuY3JlYXRlKG51bGwpKX1bSUldKEEpe3JldHVybiExfX1jbGFzcyB4dXtjb25zdHJ1Y3RvcihBPW51bGwpe3RoaXMuX25hbWVzcGFjZVN0YWNrPVtdLHRoaXMuX25zQWdub3N0aWNMZXZlbD0wLHRoaXMuX25hbWVzcGFjZVByZWZpeGVzPW5ldyBNYXAsdGhpcy5fbmFtZXNwYWNlcz1uZXcgTWFwLHRoaXMuX25leHROc0lkPU1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoR0kpLm1hcCgoKHtpZDpBfSk9PkEpKSksdGhpcy5fY3VycmVudE5hbWVzcGFjZT1BfHxuZXcgUnUoKyt0aGlzLl9uZXh0TnNJZCl9YnVpbGRSb290KEEpe3JldHVybiBuZXcgR3UoQSl9YnVpbGQoe25zUHJlZml4OkEsbmFtZTplLGF0dHJpYnV0ZXM6dCxuYW1lc3BhY2U6aSxwcmVmaXhlczphfSl7Y29uc3Qgcz1udWxsIT09aTtpZihzJiYodGhpcy5fbmFtZXNwYWNlU3RhY2sucHVzaCh0aGlzLl9jdXJyZW50TmFtZXNwYWNlKSx0aGlzLl9jdXJyZW50TmFtZXNwYWNlPXRoaXMuX3NlYXJjaE5hbWVzcGFjZShpKSksYSYmdGhpcy5fYWRkTmFtZXNwYWNlUHJlZml4KGEpLHQuaGFzT3duUHJvcGVydHkob0kpKXtjb25zdCBBPVN1LmRhdGFzZXRzLGU9dFtvSV07bGV0IGk9bnVsbDtmb3IoY29uc3RbdCxhXW9mIE9iamVjdC5lbnRyaWVzKGUpKWlmKHRoaXMuX2dldE5hbWVzcGFjZVRvVXNlKHQpPT09QSl7aT17eGZhOmF9O2JyZWFrfWk/dFtvSV09aTpkZWxldGUgdFtvSV19Y29uc3Qgbj10aGlzLl9nZXROYW1lc3BhY2VUb1VzZShBKSxyPW4/LltSSV0oZSx0KXx8bmV3IE51O3JldHVybiByW2VJXSgpJiZ0aGlzLl9uc0Fnbm9zdGljTGV2ZWwrKywoc3x8YXx8cltlSV0oKSkmJihyW21vXT17aGFzTmFtZXNwYWNlOnMscHJlZml4ZXM6YSxuc0Fnbm9zdGljOnJbZUldKCl9KSxyfWlzTnNBZ25vc3RpYygpe3JldHVybiB0aGlzLl9uc0Fnbm9zdGljTGV2ZWw+MH1fc2VhcmNoTmFtZXNwYWNlKEEpe2xldCBlPXRoaXMuX25hbWVzcGFjZXMuZ2V0KEEpO2lmKGUpcmV0dXJuIGU7Zm9yKGNvbnN0W3Qse2NoZWNrOml9XW9mIE9iamVjdC5lbnRyaWVzKEdJKSlpZihpKEEpKXtpZihlPVN1W3RdLGUpcmV0dXJuIHRoaXMuX25hbWVzcGFjZXMuc2V0KEEsZSksZTticmVha31yZXR1cm4gZT1uZXcgUnUoKyt0aGlzLl9uZXh0TnNJZCksdGhpcy5fbmFtZXNwYWNlcy5zZXQoQSxlKSxlfV9hZGROYW1lc3BhY2VQcmVmaXgoQSl7Zm9yKGNvbnN0e3ByZWZpeDplLHZhbHVlOnR9b2YgQSl7Y29uc3QgQT10aGlzLl9zZWFyY2hOYW1lc3BhY2UodCk7bGV0IGk9dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXMuZ2V0KGUpO2l8fChpPVtdLHRoaXMuX25hbWVzcGFjZVByZWZpeGVzLnNldChlLGkpKSxpLnB1c2goQSl9fV9nZXROYW1lc3BhY2VUb1VzZShBKXtpZighQSlyZXR1cm4gdGhpcy5fY3VycmVudE5hbWVzcGFjZTtjb25zdCBlPXRoaXMuX25hbWVzcGFjZVByZWZpeGVzLmdldChBKTtyZXR1cm4gZT8ubGVuZ3RoPjA/ZS5hdCgtMSk6KFUoYFVua25vd24gbmFtZXNwYWNlIHByZWZpeDogJHtBfS5gKSxudWxsKX1jbGVhbihBKXtjb25zdHtoYXNOYW1lc3BhY2U6ZSxwcmVmaXhlczp0LG5zQWdub3N0aWM6aX09QTtlJiYodGhpcy5fY3VycmVudE5hbWVzcGFjZT10aGlzLl9uYW1lc3BhY2VTdGFjay5wb3AoKSksdCYmdC5mb3JFYWNoKCgoe3ByZWZpeDpBfSk9Pnt0aGlzLl9uYW1lc3BhY2VQcmVmaXhlcy5nZXQoQSkucG9wKCl9KSksaSYmdGhpcy5fbnNBZ25vc3RpY0xldmVsLS19fWNsYXNzIFV1IGV4dGVuZHMgR2d7Y29uc3RydWN0b3IoQT1udWxsLGU9ITEpe3N1cGVyKCksdGhpcy5fYnVpbGRlcj1uZXcgeHUoQSksdGhpcy5fc3RhY2s9W10sdGhpcy5fZ2xvYmFsRGF0YT17dXNlZFR5cGVmYWNlczpuZXcgU2V0fSx0aGlzLl9pZHM9bmV3IE1hcCx0aGlzLl9jdXJyZW50PXRoaXMuX2J1aWxkZXIuYnVpbGRSb290KHRoaXMuX2lkcyksdGhpcy5fZXJyb3JDb2RlPTAsdGhpcy5fd2hpdGVSZWdleD0vXlxzKyQvLHRoaXMuX25ic3BzPS9ceGEwKy9nLHRoaXMuX3JpY2hUZXh0PWV9cGFyc2UoQSl7aWYodGhpcy5wYXJzZVhtbChBKSwwPT09dGhpcy5fZXJyb3JDb2RlKXJldHVybiB0aGlzLl9jdXJyZW50W1NvXSgpLHRoaXMuX2N1cnJlbnQuZWxlbWVudH1vblRleHQoQSl7QT1BLnJlcGxhY2UodGhpcy5fbmJzcHMsKEE9PkEuc2xpY2UoMSkrIiAiKSksdGhpcy5fcmljaFRleHR8fHRoaXMuX2N1cnJlbnRbbG9dKCk/dGhpcy5fY3VycmVudFtoSV0oQSx0aGlzLl9yaWNoVGV4dCk6dGhpcy5fd2hpdGVSZWdleC50ZXN0KEEpfHx0aGlzLl9jdXJyZW50W2hJXShBLnRyaW0oKSl9b25DZGF0YShBKXt0aGlzLl9jdXJyZW50W2hJXShBKX1fbWtBdHRyaWJ1dGVzKEEsZSl7bGV0IHQ9bnVsbCxpPW51bGw7Y29uc3QgYT1PYmplY3QuY3JlYXRlKHt9KTtmb3IoY29uc3R7bmFtZTpzLHZhbHVlOm59b2YgQSlpZigieG1sbnMiPT09cyl0P1UoYFhGQSAtIG11bHRpcGxlIG5hbWVzcGFjZSBkZWZpbml0aW9uIGluIDwke2V9PmApOnQ9bjtlbHNlIGlmKHMuc3RhcnRzV2l0aCgieG1sbnM6Iikpe2NvbnN0IEE9cy5zdWJzdHJpbmcoNik7aXx8KGk9W10pLGkucHVzaCh7cHJlZml4OkEsdmFsdWU6bn0pfWVsc2V7Y29uc3QgQT1zLmluZGV4T2YoIjoiKTtpZigtMT09PUEpYVtzXT1uO2Vsc2V7bGV0IGU9YVtvSV07ZXx8KGU9YVtvSV09T2JqZWN0LmNyZWF0ZShudWxsKSk7Y29uc3RbdCxpXT1bcy5zbGljZSgwLEEpLHMuc2xpY2UoQSsxKV07KGVbdF18fD1PYmplY3QuY3JlYXRlKG51bGwpKVtpXT1ufX1yZXR1cm5bdCxpLGFdfV9nZXROYW1lQW5kUHJlZml4KEEsZSl7Y29uc3QgdD1BLmluZGV4T2YoIjoiKTtyZXR1cm4tMT09PXQ/W0EsbnVsbF06W0Euc3Vic3RyaW5nKHQrMSksZT8iIjpBLnN1YnN0cmluZygwLHQpXX1vbkJlZ2luRWxlbWVudChBLGUsdCl7Y29uc3RbaSxhLHNdPXRoaXMuX21rQXR0cmlidXRlcyhlLEEpLFtuLHJdPXRoaXMuX2dldE5hbWVBbmRQcmVmaXgoQSx0aGlzLl9idWlsZGVyLmlzTnNBZ25vc3RpYygpKSxnPXRoaXMuX2J1aWxkZXIuYnVpbGQoe25zUHJlZml4OnIsbmFtZTpuLGF0dHJpYnV0ZXM6cyxuYW1lc3BhY2U6aSxwcmVmaXhlczphfSk7aWYoZ1tPb109dGhpcy5fZ2xvYmFsRGF0YSx0KXJldHVybiBnW1NvXSgpLHRoaXMuX2N1cnJlbnRbSUldKGcpJiZnW2ZJXSh0aGlzLl9pZHMpLHZvaWQgZ1tmb10odGhpcy5fYnVpbGRlcik7dGhpcy5fc3RhY2sucHVzaCh0aGlzLl9jdXJyZW50KSx0aGlzLl9jdXJyZW50PWd9b25FbmRFbGVtZW50KEEpe2NvbnN0IGU9dGhpcy5fY3VycmVudDtpZihlW19vXSgpJiYic3RyaW5nIj09dHlwZW9mIGVbRG9dKXtjb25zdCBBPW5ldyBVdTtBLl9nbG9iYWxEYXRhPXRoaXMuX2dsb2JhbERhdGE7Y29uc3QgdD1BLnBhcnNlKGVbRG9dKTtlW0RvXT1udWxsLGVbSUldKHQpfWVbU29dKCksdGhpcy5fY3VycmVudD10aGlzLl9zdGFjay5wb3AoKSx0aGlzLl9jdXJyZW50W0lJXShlKSYmZVtmSV0odGhpcy5faWRzKSxlW2ZvXSh0aGlzLl9idWlsZGVyKX1vbkVycm9yKEEpe3RoaXMuX2Vycm9yQ29kZT1BfX1jbGFzcyBNdXtjb25zdHJ1Y3RvcihBKXt0cnl7dGhpcy5yb290PShuZXcgVXUpLnBhcnNlKE11Ll9jcmVhdGVEb2N1bWVudChBKSk7Y29uc3QgZT1uZXcgREIodGhpcy5yb290KTt0aGlzLmZvcm09ZS5iaW5kKCksdGhpcy5kYXRhSGFuZGxlcj1uZXcgYkIodGhpcy5yb290LGUuZ2V0RGF0YSgpKSx0aGlzLmZvcm1bT29dLnRlbXBsYXRlPXRoaXMuZm9ybX1jYXRjaChBKXtVKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGFyc2luZyBhbmQgYmluZGluZzogJHtBfWApfX1pc1ZhbGlkKCl7cmV0dXJuIHRoaXMucm9vdCYmdGhpcy5mb3JtfV9jcmVhdGVQYWdlc0hlbHBlcigpe2NvbnN0IEE9dGhpcy5mb3JtW0RJXSgpO3JldHVybiBuZXcgUHJvbWlzZSgoKGUsdCk9Pntjb25zdCBpPSgpPT57dHJ5e2NvbnN0IHQ9QS5uZXh0KCk7dC5kb25lP2UodC52YWx1ZSk6c2V0VGltZW91dChpLDApfWNhdGNoKEEpe3QoQSl9fTtzZXRUaW1lb3V0KGksMCl9KSl9YXN5bmMgX2NyZWF0ZVBhZ2VzKCl7dHJ5e3RoaXMucGFnZXM9YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXNIZWxwZXIoKSx0aGlzLmRpbXM9dGhpcy5wYWdlcy5jaGlsZHJlbi5tYXAoKEE9Pntjb25zdHt3aWR0aDplLGhlaWdodDp0fT1BLmF0dHJpYnV0ZXMuc3R5bGU7cmV0dXJuWzAsMCxwYXJzZUludChlKSxwYXJzZUludCh0KV19KSl9Y2F0Y2goQSl7VShgWEZBIC0gYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGxheW91dDogJHtBfWApfX1nZXRCb3VuZGluZ0JveChBKXtyZXR1cm4gdGhpcy5kaW1zW0FdfWFzeW5jIGdldE51bVBhZ2VzKCl7cmV0dXJuIHRoaXMucGFnZXN8fGF3YWl0IHRoaXMuX2NyZWF0ZVBhZ2VzKCksdGhpcy5kaW1zLmxlbmd0aH1zZXRJbWFnZXMoQSl7dGhpcy5mb3JtW09vXS5pbWFnZXM9QX1zZXRGb250cyhBKXt0aGlzLmZvcm1bT29dLmZvbnRGaW5kZXI9bmV3IFRJKEEpO2NvbnN0IGU9W107Zm9yKGxldCBBIG9mIHRoaXMuZm9ybVtPb10udXNlZFR5cGVmYWNlcylBPVVJKEEpLHRoaXMuZm9ybVtPb10uZm9udEZpbmRlci5maW5kKEEpfHxlLnB1c2goQSk7cmV0dXJuIGUubGVuZ3RoPjA/ZTpudWxsfWFwcGVuZEZvbnRzKEEsZSl7dGhpcy5mb3JtW09vXS5mb250RmluZGVyLmFkZChBLGUpfWFzeW5jIGdldFBhZ2VzKCl7dGhpcy5wYWdlc3x8YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXMoKTtjb25zdCBBPXRoaXMucGFnZXM7cmV0dXJuIHRoaXMucGFnZXM9bnVsbCxBfXNlcmlhbGl6ZURhdGEoQSl7cmV0dXJuIHRoaXMuZGF0YUhhbmRsZXIuc2VyaWFsaXplKEEpfXN0YXRpYyBfY3JlYXRlRG9jdW1lbnQoQSl7cmV0dXJuIEFbIi94ZHA6eGRwIl0/T2JqZWN0LnZhbHVlcyhBKS5qb2luKCIiKTpBWyJ4ZHA6eGRwIl19c3RhdGljIGdldFJpY2hUZXh0QXNIdG1sKEEpe2lmKCFBfHwic3RyaW5nIiE9dHlwZW9mIEEpcmV0dXJuIG51bGw7dHJ5e2xldCBlPW5ldyBVdShGdSwhMCkucGFyc2UoQSk7aWYoIVsiYm9keSIsInhodG1sIl0uaW5jbHVkZXMoZVtnSV0pKXtjb25zdCBBPUZ1LmJvZHkoe30pO0FbRW9dKGUpLGU9QX1jb25zdCB0PWVbYkldKCk7aWYoIXQuc3VjY2VzcylyZXR1cm4gbnVsbDtjb25zdHtodG1sOml9PXQse2F0dHJpYnV0ZXM6YX09aTtyZXR1cm4gYSYmKGEuY2xhc3MmJihhLmNsYXNzPWEuY2xhc3MuZmlsdGVyKChBPT4hQS5zdGFydHNXaXRoKCJ4ZmEiKSkpKSxhLmRpcj0iYXV0byIpLHtodG1sOmksc3RyOmVbd0ldKCl9fWNhdGNoKEEpe1UoYFhGQSAtIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBwYXJzaW5nIG9mIHJpY2ggdGV4dDogJHtBfWApfXJldHVybiBudWxsfX1jbGFzcyBMdXtzdGF0aWMgY3JlYXRlR2xvYmFscyhBKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0EuZW5zdXJlQ2F0YWxvZygiYWNyb0Zvcm0iKSxBLmVuc3VyZURvYygieGZhRGF0YXNldHMiKSxBLmVuc3VyZUNhdGFsb2coInN0cnVjdFRyZWVSb290IiksQS5lbnN1cmVDYXRhbG9nKCJiYXNlVXJsIiksQS5lbnN1cmVDYXRhbG9nKCJhdHRhY2htZW50cyIpXSkudGhlbigoKFtlLHQsaSxhLHNdKT0+KHtwZGZNYW5hZ2VyOkEsYWNyb0Zvcm06ZSBpbnN0YW5jZW9mIFFBP2U6UUEuZW1wdHkseGZhRGF0YXNldHM6dCxzdHJ1Y3RUcmVlUm9vdDppLGJhc2VVcmw6YSxhdHRhY2htZW50czpzfSkpLChBPT4oVShgY3JlYXRlR2xvYmFsczogIiR7QX0iLmApLG51bGwpKSl9c3RhdGljIGFzeW5jIGNyZWF0ZShBLGUsdCxpLGEscyxuKXtjb25zdCByPWE/YXdhaXQgdGhpcy5fZ2V0UGFnZUluZGV4KEEsZSx0LnBkZk1hbmFnZXIpOm51bGw7cmV0dXJuIHQucGRmTWFuYWdlci5lbnN1cmUodGhpcywiX2NyZWF0ZSIsW0EsZSx0LGksYSxzLHIsbl0pfXN0YXRpYyBfY3JlYXRlKEEsZSx0LGksYT0hMSxzPW51bGwsbj1udWxsLHI9bnVsbCl7Y29uc3QgZz1BLmZldGNoSWZSZWYoZSk7aWYoIShnIGluc3RhbmNlb2YgUUEpKXJldHVybjtjb25zdHthY3JvRm9ybTpvLHBkZk1hbmFnZXI6SX09dCxjPWUgaW5zdGFuY2VvZiBFQT9lLnRvU3RyaW5nKCk6YGFubm90XyR7aS5jcmVhdGVPYmpJZCgpfWA7bGV0IGg9Zy5nZXQoIlN1YnR5cGUiKTtoPWggaW5zdGFuY2VvZiBDQT9oLm5hbWU6bnVsbDtjb25zdCBDPXt4cmVmOkEscmVmOmUsZGljdDpnLHN1YnR5cGU6aCxpZDpjLGFubm90YXRpb25HbG9iYWxzOnQsY29sbGVjdEZpZWxkczphLG9ycGhhbkZpZWxkczpzLG5lZWRBcHBlYXJhbmNlczohYSYmITA9PT1vLmdldCgiTmVlZEFwcGVhcmFuY2VzIikscGFnZUluZGV4Om4sZXZhbHVhdG9yT3B0aW9uczpJLmV2YWx1YXRvck9wdGlvbnMscGFnZVJlZjpyfTtzd2l0Y2goaCl7Y2FzZSJMaW5rIjpyZXR1cm4gbmV3IFZ1KEMpO2Nhc2UiVGV4dCI6cmV0dXJuIG5ldyBYdShDKTtjYXNlIldpZGdldCI6bGV0IEE9TkEoe2RpY3Q6ZyxrZXk6IkZUIn0pO3N3aXRjaChBPUEgaW5zdGFuY2VvZiBDQT9BLm5hbWU6bnVsbCxBKXtjYXNlIlR4IjpyZXR1cm4gbmV3IFd1KEMpO2Nhc2UiQnRuIjpyZXR1cm4gbmV3IE91KEMpO2Nhc2UiQ2giOnJldHVybiBuZXcgWnUoQyk7Y2FzZSJTaWciOnJldHVybiBuZXcganUoQyl9cmV0dXJuIFUoYFVuaW1wbGVtZW50ZWQgd2lkZ2V0IGZpZWxkIHR5cGUgIiR7QX0iLCBmYWxsaW5nIGJhY2sgdG8gYmFzZSBmaWVsZCB0eXBlLmApLG5ldyBQdShDKTtjYXNlIlBvcHVwIjpyZXR1cm4gbmV3IF91KEMpO2Nhc2UiRnJlZVRleHQiOnJldHVybiBuZXcgenUoQyk7Y2FzZSJMaW5lIjpyZXR1cm4gbmV3ICR1KEMpO2Nhc2UiU3F1YXJlIjpyZXR1cm4gbmV3IEFkKEMpO2Nhc2UiQ2lyY2xlIjpyZXR1cm4gbmV3IGVkKEMpO2Nhc2UiUG9seUxpbmUiOnJldHVybiBuZXcgdGQoQyk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbmV3IGlkKEMpO2Nhc2UiQ2FyZXQiOnJldHVybiBuZXcgYWQoQyk7Y2FzZSJJbmsiOnJldHVybiBuZXcgc2QoQyk7Y2FzZSJIaWdobGlnaHQiOnJldHVybiBuZXcgbmQoQyk7Y2FzZSJVbmRlcmxpbmUiOnJldHVybiBuZXcgcmQoQyk7Y2FzZSJTcXVpZ2dseSI6cmV0dXJuIG5ldyBnZChDKTtjYXNlIlN0cmlrZU91dCI6cmV0dXJuIG5ldyBvZChDKTtjYXNlIlN0YW1wIjpyZXR1cm4gbmV3IElkKEMpO2Nhc2UiRmlsZUF0dGFjaG1lbnQiOnJldHVybiBuZXcgY2QoQyk7ZGVmYXVsdDpyZXR1cm4gYXx8VShoP2BVbmltcGxlbWVudGVkIGFubm90YXRpb24gdHlwZSAiJHtofSIsIGZhbGxpbmcgYmFjayB0byBiYXNlIGFubm90YXRpb24uYDoiQW5ub3RhdGlvbiBpcyBtaXNzaW5nIHRoZSByZXF1aXJlZCAvU3VidHlwZS4iKSxuZXcgS3UoQyl9fXN0YXRpYyBhc3luYyBfZ2V0UGFnZUluZGV4KEEsZSx0KXt0cnl7Y29uc3QgaT1hd2FpdCBBLmZldGNoSWZSZWZBc3luYyhlKTtpZighKGkgaW5zdGFuY2VvZiBRQSkpcmV0dXJuLTE7Y29uc3QgYT1pLmdldFJhdygiUCIpO2lmKGEgaW5zdGFuY2VvZiBFQSl0cnl7cmV0dXJuIGF3YWl0IHQuZW5zdXJlQ2F0YWxvZygiZ2V0UGFnZUluZGV4IixbYV0pfWNhdGNoKEEpe3goYF9nZXRQYWdlSW5kZXggLS0gbm90IGEgdmFsaWQgcGFnZSByZWZlcmVuY2U6ICIke0F9Ii5gKX1pZihpLmhhcygiS2lkcyIpKXJldHVybi0xO2NvbnN0IHM9YXdhaXQgdC5lbnN1cmVEb2MoIm51bVBhZ2VzIik7Zm9yKGxldCBBPTA7QTxzO0ErKyl7Y29uc3QgaT1hd2FpdCB0LmdldFBhZ2UoQSksYT1hd2FpdCB0LmVuc3VyZShpLCJhbm5vdGF0aW9ucyIpO2Zvcihjb25zdCB0IG9mIGEpaWYodCBpbnN0YW5jZW9mIEVBJiZ5QSh0LGUpKXJldHVybiBBfX1jYXRjaChBKXtVKGBfZ2V0UGFnZUluZGV4OiAiJHtBfSIuYCl9cmV0dXJuLTF9c3RhdGljIGdlbmVyYXRlSW1hZ2VzKEEsZSx0KXtpZighdClyZXR1cm4gVSgiZ2VuZXJhdGVJbWFnZXM6IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBjYW5ub3Qgc2F2ZSBvciBwcmludCBzb21lIGFubm90YXRpb25zIHdpdGggaW1hZ2VzLiIpLG51bGw7bGV0IGk7Zm9yKGNvbnN0e2JpdG1hcElkOnQsYml0bWFwOmF9b2YgQSlhJiYoaXx8PW5ldyBNYXAsaS5zZXQodCxJZC5jcmVhdGVJbWFnZShhLGUpKSk7cmV0dXJuIGl9c3RhdGljIGFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhBLGUsdCxpKXtjb25zdCBhPUEueHJlZjtsZXQgcztjb25zdCBuPVtdLHI9W10se2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmd9PUEub3B0aW9ucztmb3IoY29uc3QgbyBvZiB0KWlmKCFvLmRlbGV0ZWQpc3dpdGNoKG8uYW5ub3RhdGlvblR5cGUpe2Nhc2UgMzppZighcyl7Y29uc3QgQT1uZXcgUUEoYSk7QS5zZXQoIkJhc2VGb250IixDQS5nZXQoIkhlbHZldGljYSIpKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGb250IikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlR5cGUxIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJXaW5BbnNpRW5jb2RpbmciKSk7Y29uc3QgZT1bXTtzPWEuZ2V0TmV3VGVtcG9yYXJ5UmVmKCksYXdhaXQgWGcocyxBLGUsYSksbi5wdXNoKHtyZWY6cyxkYXRhOmUuam9pbigiIil9KX1yLnB1c2goenUuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbix7ZXZhbHVhdG9yOkEsdGFzazplLGJhc2VGb250UmVmOnN9KSk7YnJlYWs7Y2FzZSA5Om8ucXVhZFBvaW50cz9yLnB1c2gobmQuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbikpOnIucHVzaChzZC5jcmVhdGVOZXdBbm5vdGF0aW9uKGEsbyxuKSk7YnJlYWs7Y2FzZSAxNTpyLnB1c2goc2QuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbikpO2JyZWFrO2Nhc2UgMTM6Y29uc3QgdD1nP2F3YWl0KGk/LmdldChvLmJpdG1hcElkKSk6bnVsbDtpZih0Py5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06QSxzbWFza1N0cmVhbTplfT10LGk9W107aWYoZSl7Y29uc3QgdD1hLmdldE5ld1RlbXBvcmFyeVJlZigpO2F3YWl0IFhnKHQsZSxpLGEpLG4ucHVzaCh7cmVmOnQsZGF0YTppLmpvaW4oIiIpfSksQS5kaWN0LnNldCgiU01hc2siLHQpLGkubGVuZ3RoPTB9Y29uc3Qgcz10LmltYWdlUmVmPWEuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7YXdhaXQgWGcocyxBLGksYSksbi5wdXNoKHtyZWY6cyxkYXRhOmkuam9pbigiIil9KSx0LmltYWdlU3RyZWFtPXQuc21hc2tTdHJlYW09bnVsbH1yLnB1c2goSWQuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbix7aW1hZ2U6dH0pKX1yZXR1cm57YW5ub3RhdGlvbnM6YXdhaXQgUHJvbWlzZS5hbGwociksZGVwZW5kZW5jaWVzOm59fXN0YXRpYyBhc3luYyBwcmludE5ld0Fubm90YXRpb25zKEEsZSx0LGksYSl7aWYoIWkpcmV0dXJuIG51bGw7Y29uc3R7b3B0aW9uczpzLHhyZWY6bn09ZSxyPVtdO2Zvcihjb25zdCBnIG9mIGkpaWYoIWcuZGVsZXRlZClzd2l0Y2goZy5hbm5vdGF0aW9uVHlwZSl7Y2FzZSAzOnIucHVzaCh6dS5jcmVhdGVOZXdQcmludEFubm90YXRpb24oQSxuLGcse2V2YWx1YXRvcjplLHRhc2s6dCxldmFsdWF0b3JPcHRpb25zOnN9KSk7YnJlYWs7Y2FzZSA5OmcucXVhZFBvaW50cz9yLnB1c2gobmQuY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKEEsbixnLHtldmFsdWF0b3JPcHRpb25zOnN9KSk6ci5wdXNoKHNkLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihBLG4sZyx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpO2JyZWFrO2Nhc2UgMTU6ci5wdXNoKHNkLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihBLG4sZyx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpO2JyZWFrO2Nhc2UgMTM6Y29uc3QgaT1zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkP2F3YWl0KGE/LmdldChnLmJpdG1hcElkKSk6bnVsbDtpZihpPy5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06QSxzbWFza1N0cmVhbTplfT1pO2UmJkEuZGljdC5zZXQoIlNNYXNrIixlKSxpLmltYWdlUmVmPW5ldyB6dChBLEEubGVuZ3RoKSxpLmltYWdlU3RyZWFtPWkuc21hc2tTdHJlYW09bnVsbH1yLnB1c2goSWQuY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKEEsbixnLHtpbWFnZTppLGV2YWx1YXRvck9wdGlvbnM6c30pKX1yZXR1cm4gUHJvbWlzZS5hbGwocil9fWZ1bmN0aW9uIEp1KEEsZT1uZXcgVWludDhDbGFtcGVkQXJyYXkoMykpe2lmKCFBcnJheS5pc0FycmF5KEEpKXJldHVybiBlO2NvbnN0IHQ9ZXx8bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO3N3aXRjaChBLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMTpyZXR1cm4gQ2Uuc2luZ2xldG9ucy5ncmF5LmdldFJnYkl0ZW0oQSwwLHQsMCksdDtjYXNlIDM6cmV0dXJuIENlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0oQSwwLHQsMCksdDtjYXNlIDQ6cmV0dXJuIENlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2JJdGVtKEEsMCx0LDApLHQ7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gSHUoQSl7cmV0dXJuIEFycmF5LmZyb20oQSwoQT0+QS8yNTUpKX1mdW5jdGlvbiBZdShBLGUpe2NvbnN0IHQ9QS5nZXRBcnJheSgiUXVhZFBvaW50cyIpO2lmKCF2QSh0LG51bGwpfHwwPT09dC5sZW5ndGh8fHQubGVuZ3RoJTg+MClyZXR1cm4gbnVsbDtjb25zdCBpPW5ldyBGbG9hdDMyQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgQT0wLGE9dC5sZW5ndGg7QTxhO0ErPTgpe2NvbnN0W2EscyxuLHIsZyxvLEksY109dC5zbGljZShBLEErOCksaD1NYXRoLm1pbihhLG4sZyxJKSxDPU1hdGgubWF4KGEsbixnLEkpLEI9TWF0aC5taW4ocyxyLG8sYyksbD1NYXRoLm1heChzLHIsbyxjKTtpZihudWxsIT09ZSYmKGg8ZVswXXx8Qz5lWzJdfHxCPGVbMV18fGw+ZVszXSkpcmV0dXJuIG51bGw7aS5zZXQoW2gsbCxDLGwsaCxCLEMsQl0sQSl9cmV0dXJuIGl9ZnVuY3Rpb24gdnUoQSxlLHQpe2NvbnN0W2ksYSxzLG5dPSQuZ2V0QXhpYWxBbGlnbmVkQm91bmRpbmdCb3goZSx0KTtpZihpPT09c3x8YT09PW4pcmV0dXJuWzEsMCwwLDEsQVswXSxBWzFdXTtjb25zdCByPShBWzJdLUFbMF0pLyhzLWkpLGc9KEFbM10tQVsxXSkvKG4tYSk7cmV0dXJuW3IsMCwwLGcsQVswXS1pKnIsQVsxXS1hKmddfWNsYXNzIEt1e2NvbnN0cnVjdG9yKEEpe2NvbnN0e2RpY3Q6ZSx4cmVmOnQsYW5ub3RhdGlvbkdsb2JhbHM6aSxyZWY6YSxvcnBoYW5GaWVsZHM6c309QSxuPXM/LmdldChhKTtuJiZlLnNldCgiUGFyZW50IixuKSx0aGlzLnNldFRpdGxlKGUuZ2V0KCJUIikpLHRoaXMuc2V0Q29udGVudHMoZS5nZXQoIkNvbnRlbnRzIikpLHRoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZShlLmdldCgiTSIpKSx0aGlzLnNldEZsYWdzKGUuZ2V0KCJGIikpLHRoaXMuc2V0UmVjdGFuZ2xlKGUuZ2V0QXJyYXkoIlJlY3QiKSksdGhpcy5zZXRDb2xvcihlLmdldEFycmF5KCJDIikpLHRoaXMuc2V0Qm9yZGVyU3R5bGUoZSksdGhpcy5zZXRBcHBlYXJhbmNlKGUpLHRoaXMuc2V0T3B0aW9uYWxDb250ZW50KGUpO2NvbnN0IHI9ZS5nZXQoIk1LIik7dGhpcy5zZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQ29sb3JzKHIpLHRoaXMuc2V0Um90YXRpb24ocixlKSx0aGlzLnJlZj1BLnJlZiBpbnN0YW5jZW9mIEVBP0EucmVmOm51bGwsdGhpcy5fc3RyZWFtcz1bXSx0aGlzLmFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UpO2NvbnN0IGc9ISEoMTI4JnRoaXMuZmxhZ3MpLG89ISEoNTEyJnRoaXMuZmxhZ3MpO2lmKHRoaXMuZGF0YT17YW5ub3RhdGlvbkZsYWdzOnRoaXMuZmxhZ3MsYm9yZGVyU3R5bGU6dGhpcy5ib3JkZXJTdHlsZSxjb2xvcjp0aGlzLmNvbG9yLGJhY2tncm91bmRDb2xvcjp0aGlzLmJhY2tncm91bmRDb2xvcixib3JkZXJDb2xvcjp0aGlzLmJvcmRlckNvbG9yLHJvdGF0aW9uOnRoaXMucm90YXRpb24sY29udGVudHNPYmo6dGhpcy5fY29udGVudHMsaGFzQXBwZWFyYW5jZTohIXRoaXMuYXBwZWFyYW5jZSxpZDpBLmlkLG1vZGlmaWNhdGlvbkRhdGU6dGhpcy5tb2RpZmljYXRpb25EYXRlLHJlY3Q6dGhpcy5yZWN0YW5nbGUsc3VidHlwZTpBLnN1YnR5cGUsaGFzT3duQ2FudmFzOiExLG5vUm90YXRlOiEhKDE2JnRoaXMuZmxhZ3MpLG5vSFRNTDpnJiZvLGlzRWRpdGFibGU6ITEsc3RydWN0UGFyZW50Oi0xfSxpLnN0cnVjdFRyZWVSb290KXtsZXQgdD1lLmdldCgiU3RydWN0UGFyZW50Iik7dGhpcy5kYXRhLnN0cnVjdFBhcmVudD10PU51bWJlci5pc0ludGVnZXIodCkmJnQ+PTA/dDotMSxpLnN0cnVjdFRyZWVSb290LmFkZEFubm90YXRpb25JZFRvUGFnZShBLnBhZ2VSZWYsdCl9aWYoQS5jb2xsZWN0RmllbGRzKXtjb25zdCBpPWUuZ2V0KCJLaWRzIik7aWYoQXJyYXkuaXNBcnJheShpKSl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiBpKWUgaW5zdGFuY2VvZiBFQSYmQS5wdXNoKGUudG9TdHJpbmcoKSk7MCE9PUEubGVuZ3RoJiYodGhpcy5kYXRhLmtpZElkcz1BKX10aGlzLmRhdGEuYWN0aW9ucz1qQSh0LGUsbCksdGhpcy5kYXRhLmZpZWxkTmFtZT10aGlzLl9jb25zdHJ1Y3RGaWVsZE5hbWUoZSksdGhpcy5kYXRhLnBhZ2VJbmRleD1BLnBhZ2VJbmRleH1jb25zdCBJPWUuZ2V0KCJJVCIpO0kgaW5zdGFuY2VvZiBDQSYmKHRoaXMuZGF0YS5pdD1JLm5hbWUpLHRoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPUEuZXZhbHVhdG9yT3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCx0aGlzLl9mYWxsYmFja0ZvbnREaWN0PW51bGwsdGhpcy5fbmVlZEFwcGVhcmFuY2VzPSExfV9oYXNGbGFnKEEsZSl7cmV0dXJuISEoQSZlKX1fYnVpbGRGbGFncyhBLGUpe2xldHtmbGFnczp0fT10aGlzO2lmKHZvaWQgMD09PUEpe2lmKHZvaWQgMD09PWUpcmV0dXJuO3JldHVybiBlPy01JnQ6LTMmdHw0fXJldHVybiBBPyh0fD00LGU/LTMzJnR8MjotMyZ0fGgpOih0Jj0tMzUsZT8tNSZ0OjR8dCl9X2lzVmlld2FibGUoQSl7cmV0dXJuIXRoaXMuX2hhc0ZsYWcoQSwxKSYmIXRoaXMuX2hhc0ZsYWcoQSxoKX1faXNQcmludGFibGUoQSl7cmV0dXJuIHRoaXMuX2hhc0ZsYWcoQSw0KSYmIXRoaXMuX2hhc0ZsYWcoQSwyKSYmIXRoaXMuX2hhc0ZsYWcoQSwxKX1tdXN0QmVWaWV3ZWQoQSxlKXtjb25zdCB0PUE/LmdldCh0aGlzLmRhdGEuaWQpPy5ub1ZpZXc7cmV0dXJuIHZvaWQgMCE9PXQ/IXQ6dGhpcy52aWV3YWJsZSYmIXRoaXMuX2hhc0ZsYWcodGhpcy5mbGFncywyKX1tdXN0QmVQcmludGVkKEEpe2NvbnN0IGU9QT8uZ2V0KHRoaXMuZGF0YS5pZCk/Lm5vUHJpbnQ7cmV0dXJuIHZvaWQgMCE9PWU/IWU6dGhpcy5wcmludGFibGV9bXVzdEJlVmlld2VkV2hlbkVkaXRpbmcoQSxlPW51bGwpe3JldHVybiBBPyF0aGlzLmRhdGEuaXNFZGl0YWJsZTohZT8uaGFzKHRoaXMuZGF0YS5pZCl9Z2V0IHZpZXdhYmxlKCl7cmV0dXJuIG51bGwhPT10aGlzLmRhdGEucXVhZFBvaW50cyYmKDA9PT10aGlzLmZsYWdzfHx0aGlzLl9pc1ZpZXdhYmxlKHRoaXMuZmxhZ3MpKX1nZXQgcHJpbnRhYmxlKCl7cmV0dXJuIG51bGwhPT10aGlzLmRhdGEucXVhZFBvaW50cyYmMCE9PXRoaXMuZmxhZ3MmJnRoaXMuX2lzUHJpbnRhYmxlKHRoaXMuZmxhZ3MpfV9wYXJzZVN0cmluZ0hlbHBlcihBKXtjb25zdCBlPSJzdHJpbmciPT10eXBlb2YgQT9lQShBKToiIjtyZXR1cm57c3RyOmUsZGlyOmUmJiJydGwiPT09WXIoZSkuZGlyPyJydGwiOiJsdHIifX1zZXREZWZhdWx0QXBwZWFyYW5jZShBKXtjb25zdHtkaWN0OmUsYW5ub3RhdGlvbkdsb2JhbHM6dH09QSxpPU5BKHtkaWN0OmUsa2V5OiJEQSJ9KXx8dC5hY3JvRm9ybS5nZXQoIkRBIik7dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9InN0cmluZyI9PXR5cGVvZiBpP2k6IiIsdGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1mZyh0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZSl9c2V0VGl0bGUoQSl7dGhpcy5fdGl0bGU9dGhpcy5fcGFyc2VTdHJpbmdIZWxwZXIoQSl9c2V0Q29udGVudHMoQSl7dGhpcy5fY29udGVudHM9dGhpcy5fcGFyc2VTdHJpbmdIZWxwZXIoQSl9c2V0TW9kaWZpY2F0aW9uRGF0ZShBKXt0aGlzLm1vZGlmaWNhdGlvbkRhdGU9InN0cmluZyI9PXR5cGVvZiBBP0E6bnVsbH1zZXRGbGFncyhBKXt0aGlzLmZsYWdzPU51bWJlci5pc0ludGVnZXIoQSkmJkE+MD9BOjAsMSZ0aGlzLmZsYWdzJiYiQW5ub3RhdGlvbiIhPT10aGlzLmNvbnN0cnVjdG9yLm5hbWUmJih0aGlzLmZsYWdzXj0xKX1oYXNGbGFnKEEpe3JldHVybiB0aGlzLl9oYXNGbGFnKHRoaXMuZmxhZ3MsQSl9c2V0UmVjdGFuZ2xlKEEpe3RoaXMucmVjdGFuZ2xlPVRBKEEsWzAsMCwwLDBdKX1zZXRDb2xvcihBKXt0aGlzLmNvbG9yPUp1KEEpfXNldExpbmVFbmRpbmdzKEEpe2lmKHRoaXMubGluZUVuZGluZ3M9WyJOb25lIiwiTm9uZSJdLEFycmF5LmlzQXJyYXkoQSkmJjI9PT1BLmxlbmd0aClmb3IobGV0IGU9MDtlPDI7ZSsrKXtjb25zdCB0PUFbZV07aWYodCBpbnN0YW5jZW9mIENBKXN3aXRjaCh0Lm5hbWUpe2Nhc2UiTm9uZSI6Y29udGludWU7Y2FzZSJTcXVhcmUiOmNhc2UiQ2lyY2xlIjpjYXNlIkRpYW1vbmQiOmNhc2UiT3BlbkFycm93IjpjYXNlIkNsb3NlZEFycm93IjpjYXNlIkJ1dHQiOmNhc2UiUk9wZW5BcnJvdyI6Y2FzZSJSQ2xvc2VkQXJyb3ciOmNhc2UiU2xhc2giOnRoaXMubGluZUVuZGluZ3NbZV09dC5uYW1lO2NvbnRpbnVlfVUoYElnbm9yaW5nIGludmFsaWQgbGluZUVuZGluZzogJHt0fWApfX1zZXRSb3RhdGlvbihBLGUpe3RoaXMucm90YXRpb249MDtsZXQgdD1BIGluc3RhbmNlb2YgUUE/QS5nZXQoIlIiKXx8MDplLmdldCgiUm90YXRlIil8fDA7TnVtYmVyLmlzSW50ZWdlcih0KSYmMCE9PXQmJih0JT0zNjAsdDwwJiYodCs9MzYwKSx0JTkwPT0wJiYodGhpcy5yb3RhdGlvbj10KSl9c2V0Qm9yZGVyQW5kQmFja2dyb3VuZENvbG9ycyhBKXtBIGluc3RhbmNlb2YgUUE/KHRoaXMuYm9yZGVyQ29sb3I9SnUoQS5nZXRBcnJheSgiQkMiKSxudWxsKSx0aGlzLmJhY2tncm91bmRDb2xvcj1KdShBLmdldEFycmF5KCJCRyIpLG51bGwpKTp0aGlzLmJvcmRlckNvbG9yPXRoaXMuYmFja2dyb3VuZENvbG9yPW51bGx9c2V0Qm9yZGVyU3R5bGUoQSl7aWYodGhpcy5ib3JkZXJTdHlsZT1uZXcgcXUsQSBpbnN0YW5jZW9mIFFBKWlmKEEuaGFzKCJCUyIpKXtjb25zdCBlPUEuZ2V0KCJCUyIpO2lmKGUgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1lLmdldCgiVHlwZSIpO0EmJiFmQShBLCJCb3JkZXIiKXx8KHRoaXMuYm9yZGVyU3R5bGUuc2V0V2lkdGgoZS5nZXQoIlciKSx0aGlzLnJlY3RhbmdsZSksdGhpcy5ib3JkZXJTdHlsZS5zZXRTdHlsZShlLmdldCgiUyIpKSx0aGlzLmJvcmRlclN0eWxlLnNldERhc2hBcnJheShlLmdldEFycmF5KCJEIikpKX19ZWxzZSBpZihBLmhhcygiQm9yZGVyIikpe2NvbnN0IGU9QS5nZXRBcnJheSgiQm9yZGVyIik7QXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg+PTMmJih0aGlzLmJvcmRlclN0eWxlLnNldEhvcml6b250YWxDb3JuZXJSYWRpdXMoZVswXSksdGhpcy5ib3JkZXJTdHlsZS5zZXRWZXJ0aWNhbENvcm5lclJhZGl1cyhlWzFdKSx0aGlzLmJvcmRlclN0eWxlLnNldFdpZHRoKGVbMl0sdGhpcy5yZWN0YW5nbGUpLDQ9PT1lLmxlbmd0aCYmdGhpcy5ib3JkZXJTdHlsZS5zZXREYXNoQXJyYXkoZVszXSwhMCkpfWVsc2UgdGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCgwKX1zZXRBcHBlYXJhbmNlKEEpe3RoaXMuYXBwZWFyYW5jZT1udWxsO2NvbnN0IGU9QS5nZXQoIkFQIik7aWYoIShlIGluc3RhbmNlb2YgUUEpKXJldHVybjtjb25zdCB0PWUuZ2V0KCJOIik7aWYodCBpbnN0YW5jZW9mIHdBKXJldHVybiB2b2lkKHRoaXMuYXBwZWFyYW5jZT10KTtpZighKHQgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2NvbnN0IGk9QS5nZXQoIkFTIik7aWYoIShpIGluc3RhbmNlb2YgQ0EmJnQuaGFzKGkubmFtZSkpKXJldHVybjtjb25zdCBhPXQuZ2V0KGkubmFtZSk7YSBpbnN0YW5jZW9mIHdBJiYodGhpcy5hcHBlYXJhbmNlPWEpfXNldE9wdGlvbmFsQ29udGVudChBKXt0aGlzLm9jPW51bGw7Y29uc3QgZT1BLmdldCgiT0MiKTtlIGluc3RhbmNlb2YgQ0E/VSgic2V0T3B0aW9uYWxDb250ZW50OiBTdXBwb3J0IGZvciAvTmFtZS1lbnRyeSBpcyBub3QgaW1wbGVtZW50ZWQuIik6ZSBpbnN0YW5jZW9mIFFBJiYodGhpcy5vYz1lKX1sb2FkUmVzb3VyY2VzKEEsZSl7cmV0dXJuIGUuZGljdC5nZXRBc3luYygiUmVzb3VyY2VzIikudGhlbigoZT0+e2lmKGUpcmV0dXJuIG5ldyBCbyhlLEEsZS54cmVmKS5sb2FkKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKX0pKX1hc3luYyBnZXRPcGVyYXRvckxpc3QoQSxlLHQsaSl7Y29uc3R7aGFzT3duQ2FudmFzOmEsaWQ6bixyZWN0OnJ9PXRoaXMuZGF0YTtsZXQgZz10aGlzLmFwcGVhcmFuY2U7Y29uc3Qgbz0hIShhJiYyJnQpO2lmKG8mJihyWzBdPT09clsyXXx8clsxXT09PXJbM10pKXJldHVybiB0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSExLHtvcExpc3Q6bmV3IGFnLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07aWYoIWcpe2lmKCFvKXJldHVybntvcExpc3Q6bmV3IGFnLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07Zz1uZXcgb2UoIiIpLGcuZGljdD1uZXcgUUF9Y29uc3QgST1nLmRpY3QsYz1hd2FpdCB0aGlzLmxvYWRSZXNvdXJjZXMoWyJFeHRHU3RhdGUiLCJDb2xvclNwYWNlIiwiUGF0dGVybiIsIlNoYWRpbmciLCJYT2JqZWN0IiwiRm9udCJdLGcpLGg9cUEoSS5nZXRBcnJheSgiQkJveCIpLFswLDAsMSwxXSksQz1LQShJLmdldEFycmF5KCJNYXRyaXgiKSxzKSxCPXZ1KHIsaCxDKSxsPW5ldyBhZztsZXQgUTtyZXR1cm4gdGhpcy5vYyYmKFE9YXdhaXQgQS5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyh0aGlzLm9jLG51bGwpKSx2b2lkIDAhPT1RJiZsLmFkZE9wKGssWyJPQyIsUV0pLGwuYWRkT3AoODAsW24scixCLEMsb10pLGF3YWl0IEEuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06Zyx0YXNrOmUscmVzb3VyY2VzOmMsb3BlcmF0b3JMaXN0OmwsZmFsbGJhY2tGb250RGljdDp0aGlzLl9mYWxsYmFja0ZvbnREaWN0fSksbC5hZGRPcCg4MSxbXSksdm9pZCAwIT09USYmbC5hZGRPcChGLFtdKSx0aGlzLnJlc2V0KCkse29wTGlzdDpsLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczpvfX1hc3luYyBzYXZlKEEsZSx0KXtyZXR1cm4gbnVsbH1nZXQgaGFzVGV4dENvbnRlbnQoKXtyZXR1cm4hMX1hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoQSxlLHQpe2lmKCF0aGlzLmFwcGVhcmFuY2UpcmV0dXJuO2NvbnN0IGk9YXdhaXQgdGhpcy5sb2FkUmVzb3VyY2VzKFsiRXh0R1N0YXRlIiwiRm9udCIsIlByb3BlcnRpZXMiLCJYT2JqZWN0Il0sdGhpcy5hcHBlYXJhbmNlKSxhPVtdLHM9W107bGV0IG49bnVsbDtjb25zdCByPXtkZXNpcmVkU2l6ZTpNYXRoLkluZmluaXR5LHJlYWR5OiEwLGVucXVldWUoQSxlKXtmb3IoY29uc3QgZSBvZiBBLml0ZW1zKXZvaWQgMCE9PWUuc3RyJiYobnx8PWUudHJhbnNmb3JtLnNsaWNlKC0yKSxzLnB1c2goZS5zdHIpLGUuaGFzRU9MJiYoYS5wdXNoKHMuam9pbigiIikudHJpbUVuZCgpKSxzLmxlbmd0aD0wKSl9fTtpZihhd2FpdCBBLmdldFRleHRDb250ZW50KHtzdHJlYW06dGhpcy5hcHBlYXJhbmNlLHRhc2s6ZSxyZXNvdXJjZXM6aSxpbmNsdWRlTWFya2VkQ29udGVudDohMCxrZWVwV2hpdGVTcGFjZTohMCxzaW5rOnIsdmlld0JveDp0fSksdGhpcy5yZXNldCgpLHMubGVuZ3RoJiZhLnB1c2gocy5qb2luKCIiKS50cmltRW5kKCkpLGEubGVuZ3RoPjF8fGFbMF0pe2NvbnN0IEE9dGhpcy5hcHBlYXJhbmNlLmRpY3QsZT1xQShBLmdldEFycmF5KCJCQm94IiksbnVsbCksdD1LQShBLmdldEFycmF5KCJNYXRyaXgiKSxudWxsKTt0aGlzLmRhdGEudGV4dFBvc2l0aW9uPXRoaXMuX3RyYW5zZm9ybVBvaW50KG4sZSx0KSx0aGlzLmRhdGEudGV4dENvbnRlbnQ9YX19X3RyYW5zZm9ybVBvaW50KEEsZSx0KXtjb25zdHtyZWN0Oml9PXRoaXMuZGF0YTtlfHw9WzAsMCwxLDFdLHR8fD1bMSwwLDAsMSwwLDBdO2NvbnN0IGE9dnUoaSxlLHQpO3JldHVybiBhWzRdLT1pWzBdLGFbNV0tPWlbMV0sQT0kLmFwcGx5VHJhbnNmb3JtKEEsYSksJC5hcHBseVRyYW5zZm9ybShBLHQpfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJuIHRoaXMuZGF0YS5raWRJZHM/e2lkOnRoaXMuZGF0YS5pZCxhY3Rpb25zOnRoaXMuZGF0YS5hY3Rpb25zLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxzdHJva2VDb2xvcjp0aGlzLmRhdGEuYm9yZGVyQ29sb3IsZmlsbENvbG9yOnRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3IsdHlwZToiIixraWRJZHM6dGhpcy5kYXRhLmtpZElkcyxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgscm90YXRpb246dGhpcy5yb3RhdGlvbn06bnVsbH1yZXNldCgpe2Zvcihjb25zdCBBIG9mIHRoaXMuX3N0cmVhbXMpQS5yZXNldCgpfV9jb25zdHJ1Y3RGaWVsZE5hbWUoQSl7aWYoIUEuaGFzKCJUIikmJiFBLmhhcygiUGFyZW50IikpcmV0dXJuIFUoIlVua25vd24gZmllbGQgbmFtZSwgZmFsbGluZyBiYWNrIHRvIGVtcHR5IGZpZWxkIG5hbWUuIiksIiI7aWYoIUEuaGFzKCJQYXJlbnQiKSlyZXR1cm4gZUEoQS5nZXQoIlQiKSk7Y29uc3QgZT1bXTtBLmhhcygiVCIpJiZlLnVuc2hpZnQoZUEoQS5nZXQoIlQiKSkpO2xldCB0PUE7Y29uc3QgaT1uZXcgdUE7Zm9yKEEub2JqSWQmJmkucHV0KEEub2JqSWQpO3QuaGFzKCJQYXJlbnQiKSYmKHQ9dC5nZXQoIlBhcmVudCIpLHQgaW5zdGFuY2VvZiBRQSYmKCF0Lm9iaklkfHwhaS5oYXModC5vYmpJZCkpKTspdC5vYmpJZCYmaS5wdXQodC5vYmpJZCksdC5oYXMoIlQiKSYmZS51bnNoaWZ0KGVBKHQuZ2V0KCJUIikpKTtyZXR1cm4gZS5qb2luKCIuIil9fWNsYXNzIHF1e2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0xLHRoaXMucmF3V2lkdGg9MSx0aGlzLnN0eWxlPTEsdGhpcy5kYXNoQXJyYXk9WzNdLHRoaXMuaG9yaXpvbnRhbENvcm5lclJhZGl1cz0wLHRoaXMudmVydGljYWxDb3JuZXJSYWRpdXM9MH1zZXRXaWR0aChBLGU9WzAsMCwwLDBdKXtpZihBIGluc3RhbmNlb2YgQ0EpdGhpcy53aWR0aD0wO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBBKXtpZihBPjApe3RoaXMucmF3V2lkdGg9QTtjb25zdCB0PShlWzJdLWVbMF0pLzIsaT0oZVszXS1lWzFdKS8yO3Q+MCYmaT4wJiYoQT50fHxBPmkpJiYoVShgQW5ub3RhdGlvbkJvcmRlclN0eWxlLnNldFdpZHRoIC0gaWdub3Jpbmcgd2lkdGg6ICR7QX1gKSxBPTEpfXRoaXMud2lkdGg9QX19c2V0U3R5bGUoQSl7aWYoQSBpbnN0YW5jZW9mIENBKXN3aXRjaChBLm5hbWUpe2Nhc2UiUyI6dGhpcy5zdHlsZT0xO2JyZWFrO2Nhc2UiRCI6dGhpcy5zdHlsZT0yO2JyZWFrO2Nhc2UiQiI6dGhpcy5zdHlsZT0zO2JyZWFrO2Nhc2UiSSI6dGhpcy5zdHlsZT00O2JyZWFrO2Nhc2UiVSI6dGhpcy5zdHlsZT01fX1zZXREYXNoQXJyYXkoQSxlPSExKXtpZihBcnJheS5pc0FycmF5KEEpKXtsZXQgdD0hMCxpPSEwO2Zvcihjb25zdCBlIG9mIEEpe2lmKCEoK2U+PTApKXt0PSExO2JyZWFrfWU+MCYmKGk9ITEpfTA9PT1BLmxlbmd0aHx8dCYmIWk/KHRoaXMuZGFzaEFycmF5PUEsZSYmdGhpcy5zZXRTdHlsZShDQS5nZXQoIkQiKSkpOnRoaXMud2lkdGg9MH1lbHNlIEEmJih0aGlzLndpZHRoPTApfXNldEhvcml6b250YWxDb3JuZXJSYWRpdXMoQSl7TnVtYmVyLmlzSW50ZWdlcihBKSYmKHRoaXMuaG9yaXpvbnRhbENvcm5lclJhZGl1cz1BKX1zZXRWZXJ0aWNhbENvcm5lclJhZGl1cyhBKXtOdW1iZXIuaXNJbnRlZ2VyKEEpJiYodGhpcy52ZXJ0aWNhbENvcm5lclJhZGl1cz1BKX19Y2xhc3MgVHUgZXh0ZW5kcyBLdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmV9PUE7aWYoZS5oYXMoIklSVCIpKXtjb25zdCBBPWUuZ2V0UmF3KCJJUlQiKTt0aGlzLmRhdGEuaW5SZXBseVRvPUEgaW5zdGFuY2VvZiBFQT9BLnRvU3RyaW5nKCk6bnVsbDtjb25zdCB0PWUuZ2V0KCJSVCIpO3RoaXMuZGF0YS5yZXBseVR5cGU9dCBpbnN0YW5jZW9mIENBP3QubmFtZToiUiJ9bGV0IHQ9bnVsbDtpZih0aGlzLmRhdGEucmVwbHlUeXBlPT09Yyl7Y29uc3QgQT1lLmdldCgiSVJUIik7dGhpcy5zZXRUaXRsZShBLmdldCgiVCIpKSx0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGUsdGhpcy5zZXRDb250ZW50cyhBLmdldCgiQ29udGVudHMiKSksdGhpcy5kYXRhLmNvbnRlbnRzT2JqPXRoaXMuX2NvbnRlbnRzLEEuaGFzKCJDcmVhdGlvbkRhdGUiKT8odGhpcy5zZXRDcmVhdGlvbkRhdGUoQS5nZXQoIkNyZWF0aW9uRGF0ZSIpKSx0aGlzLmRhdGEuY3JlYXRpb25EYXRlPXRoaXMuY3JlYXRpb25EYXRlKTp0aGlzLmRhdGEuY3JlYXRpb25EYXRlPW51bGwsQS5oYXMoIk0iKT8odGhpcy5zZXRNb2RpZmljYXRpb25EYXRlKEEuZ2V0KCJNIikpLHRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPXRoaXMubW9kaWZpY2F0aW9uRGF0ZSk6dGhpcy5kYXRhLm1vZGlmaWNhdGlvbkRhdGU9bnVsbCx0PUEuZ2V0UmF3KCJQb3B1cCIpLEEuaGFzKCJDIik/KHRoaXMuc2V0Q29sb3IoQS5nZXRBcnJheSgiQyIpKSx0aGlzLmRhdGEuY29sb3I9dGhpcy5jb2xvcik6dGhpcy5kYXRhLmNvbG9yPW51bGx9ZWxzZSB0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGUsdGhpcy5zZXRDcmVhdGlvbkRhdGUoZS5nZXQoIkNyZWF0aW9uRGF0ZSIpKSx0aGlzLmRhdGEuY3JlYXRpb25EYXRlPXRoaXMuY3JlYXRpb25EYXRlLHQ9ZS5nZXRSYXcoIlBvcHVwIiksZS5oYXMoIkMiKXx8KHRoaXMuZGF0YS5jb2xvcj1udWxsKTt0aGlzLmRhdGEucG9wdXBSZWY9dCBpbnN0YW5jZW9mIEVBP3QudG9TdHJpbmcoKTpudWxsLGUuaGFzKCJSQyIpJiYodGhpcy5kYXRhLnJpY2hUZXh0PU11LmdldFJpY2hUZXh0QXNIdG1sKGUuZ2V0KCJSQyIpKSl9c2V0Q3JlYXRpb25EYXRlKEEpe3RoaXMuY3JlYXRpb25EYXRlPSJzdHJpbmciPT10eXBlb2YgQT9BOm51bGx9X3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOkEsZXh0cmE6ZSxzdHJva2VDb2xvcjp0LGZpbGxDb2xvcjppLGJsZW5kTW9kZTphLHN0cm9rZUFscGhhOnMsZmlsbEFscGhhOm4scG9pbnRzQ2FsbGJhY2s6cn0pe2xldCBnPU51bWJlci5NQVhfVkFMVUUsbz1OdW1iZXIuTUFYX1ZBTFVFLEk9TnVtYmVyLk1JTl9WQUxVRSxjPU51bWJlci5NSU5fVkFMVUU7Y29uc3QgaD1bInEiXTtlJiZoLnB1c2goZSksdCYmaC5wdXNoKGAke3RbMF19ICR7dFsxXX0gJHt0WzJdfSBSR2ApLGkmJmgucHVzaChgJHtpWzBdfSAke2lbMV19ICR7aVsyXX0gcmdgKTtsZXQgQz10aGlzLmRhdGEucXVhZFBvaW50cztDfHwoQz1GbG9hdDMyQXJyYXkuZnJvbShbdGhpcy5yZWN0YW5nbGVbMF0sdGhpcy5yZWN0YW5nbGVbM10sdGhpcy5yZWN0YW5nbGVbMl0sdGhpcy5yZWN0YW5nbGVbM10sdGhpcy5yZWN0YW5nbGVbMF0sdGhpcy5yZWN0YW5nbGVbMV0sdGhpcy5yZWN0YW5nbGVbMl0sdGhpcy5yZWN0YW5nbGVbMV1dKSk7Zm9yKGxldCBBPTAsZT1DLmxlbmd0aDtBPGU7QSs9OCl7Y29uc3RbZSx0LGksYV09cihoLEMuc3ViYXJyYXkoQSxBKzgpKTtnPU1hdGgubWluKGcsZSksST1NYXRoLm1heChJLHQpLG89TWF0aC5taW4obyxpKSxjPU1hdGgubWF4KGMsYSl9aC5wdXNoKCJRIik7Y29uc3QgQj1uZXcgUUEoQSksbD1uZXcgUUEoQSk7bC5zZXQoIlN1YnR5cGUiLENBLmdldCgiRm9ybSIpKTtjb25zdCBRPW5ldyBvZShoLmpvaW4oIiAiKSk7US5kaWN0PWwsQi5zZXQoIkZtMCIsUSk7Y29uc3QgRT1uZXcgUUEoQSk7YSYmRS5zZXQoIkJNIixDQS5nZXQoYSkpLCJudW1iZXIiPT10eXBlb2YgcyYmRS5zZXQoIkNBIixzKSwibnVtYmVyIj09dHlwZW9mIG4mJkUuc2V0KCJjYSIsbik7Y29uc3QgdT1uZXcgUUEoQSk7dS5zZXQoIkdTMCIsRSk7Y29uc3QgZD1uZXcgUUEoQSk7ZC5zZXQoIkV4dEdTdGF0ZSIsdSksZC5zZXQoIlhPYmplY3QiLEIpO2NvbnN0IGY9bmV3IFFBKEEpO2Yuc2V0KCJSZXNvdXJjZXMiLGQpO2NvbnN0IHA9dGhpcy5kYXRhLnJlY3Q9W2csbyxJLGNdO2Yuc2V0KCJCQm94IixwKSx0aGlzLmFwcGVhcmFuY2U9bmV3IG9lKCIvR1MwIGdzIC9GbTAgRG8iKSx0aGlzLmFwcGVhcmFuY2UuZGljdD1mLHRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UsUSl9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0Fubm90YXRpb24oQSxlLHQsaSl7ZS5yZWZ8fChlLnJlZj1BLmdldE5ld1RlbXBvcmFyeVJlZigpKTtjb25zdCBhPWUucmVmLHM9YXdhaXQgdGhpcy5jcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKGUsQSxpKSxuPVtdO2xldCByO2lmKHMpe2NvbnN0IGk9QS5nZXROZXdUZW1wb3JhcnlSZWYoKTtyPXRoaXMuY3JlYXRlTmV3RGljdChlLEEse2FwUmVmOml9KSxhd2FpdCBYZyhpLHMsbixBKSx0LnB1c2goe3JlZjppLGRhdGE6bi5qb2luKCIiKX0pfWVsc2Ugcj10aGlzLmNyZWF0ZU5ld0RpY3QoZSxBLHt9KTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlLnBhcmVudFRyZWVJZCkmJnIuc2V0KCJTdHJ1Y3RQYXJlbnQiLGUucGFyZW50VHJlZUlkKSxuLmxlbmd0aD0wLGF3YWl0IFhnKGEscixuLEEpLHtyZWY6YSxkYXRhOm4uam9pbigiIil9fXN0YXRpYyBhc3luYyBjcmVhdGVOZXdQcmludEFubm90YXRpb24oQSxlLHQsaSl7Y29uc3QgYT1hd2FpdCB0aGlzLmNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0odCxlLGkpLHM9dGhpcy5jcmVhdGVOZXdEaWN0KHQsZSxhP3thcDphfTp7fSksbj1uZXcgdGhpcy5wcm90b3R5cGUuY29uc3RydWN0b3Ioe2RpY3Q6cyx4cmVmOmUsYW5ub3RhdGlvbkdsb2JhbHM6QSxldmFsdWF0b3JPcHRpb25zOmkuZXZhbHVhdG9yT3B0aW9uc30pO3JldHVybiB0LnJlZiYmKG4ucmVmPW4ucmVmVG9SZXBsYWNlPXQucmVmKSxufX1jbGFzcyBQdSBleHRlbmRzIEt1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnQsYW5ub3RhdGlvbkdsb2JhbHM6aX09QSxhPXRoaXMuZGF0YTt0aGlzLl9uZWVkQXBwZWFyYW5jZXM9QS5uZWVkQXBwZWFyYW5jZXMsYS5hbm5vdGF0aW9uVHlwZT0yMCx2b2lkIDA9PT1hLmZpZWxkTmFtZSYmKGEuZmllbGROYW1lPXRoaXMuX2NvbnN0cnVjdEZpZWxkTmFtZShlKSksdm9pZCAwPT09YS5hY3Rpb25zJiYoYS5hY3Rpb25zPWpBKHQsZSxsKSk7bGV0IHM9TkEoe2RpY3Q6ZSxrZXk6IlYiLGdldEFycmF5OiEwfSk7YS5maWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShzKTtjb25zdCBuPU5BKHtkaWN0OmUsa2V5OiJEViIsZ2V0QXJyYXk6ITB9KTtpZihhLmRlZmF1bHRGaWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShuKSx2b2lkIDA9PT1zJiZpLnhmYURhdGFzZXRzKXtjb25zdCBBPXRoaXMuX3RpdGxlLnN0cjtBJiYodGhpcy5faGFzVmFsdWVGcm9tWEZBPSEwLGEuZmllbGRWYWx1ZT1zPWkueGZhRGF0YXNldHMuZ2V0VmFsdWUoQSkpfXZvaWQgMD09PXMmJm51bGwhPT1hLmRlZmF1bHRGaWVsZFZhbHVlJiYoYS5maWVsZFZhbHVlPWEuZGVmYXVsdEZpZWxkVmFsdWUpLGEuYWx0ZXJuYXRpdmVUZXh0PWVBKGUuZ2V0KCJUVSIpfHwiIiksdGhpcy5zZXREZWZhdWx0QXBwZWFyYW5jZShBKSxhLmhhc0FwcGVhcmFuY2V8fD10aGlzLl9uZWVkQXBwZWFyYW5jZXMmJnZvaWQgMCE9PWEuZmllbGRWYWx1ZSYmbnVsbCE9PWEuZmllbGRWYWx1ZTtjb25zdCByPU5BKHtkaWN0OmUsa2V5OiJGVCJ9KTthLmZpZWxkVHlwZT1yIGluc3RhbmNlb2YgQ0E/ci5uYW1lOm51bGw7Y29uc3QgZz1OQSh7ZGljdDplLGtleToiRFIifSksbz1pLmFjcm9Gb3JtLmdldCgiRFIiKSxJPXRoaXMuYXBwZWFyYW5jZT8uZGljdC5nZXQoIlJlc291cmNlcyIpO3RoaXMuX2ZpZWxkUmVzb3VyY2VzPXtsb2NhbFJlc291cmNlczpnLGFjcm9Gb3JtUmVzb3VyY2VzOm8sYXBwZWFyYW5jZVJlc291cmNlczpJLG1lcmdlZFJlc291cmNlczpRQS5tZXJnZSh7eHJlZjp0LGRpY3RBcnJheTpbZyxJLG9dLG1lcmdlU3ViRGljdHM6ITB9KX0sYS5maWVsZEZsYWdzPU5BKHtkaWN0OmUsa2V5OiJGZiJ9KSwoIU51bWJlci5pc0ludGVnZXIoYS5maWVsZEZsYWdzKXx8YS5maWVsZEZsYWdzPDApJiYoYS5maWVsZEZsYWdzPTApLGEucmVhZE9ubHk9dGhpcy5oYXNGaWVsZEZsYWcoMSksYS5yZXF1aXJlZD10aGlzLmhhc0ZpZWxkRmxhZygyKSxhLmhpZGRlbj10aGlzLl9oYXNGbGFnKGEuYW5ub3RhdGlvbkZsYWdzLDIpfHx0aGlzLl9oYXNGbGFnKGEuYW5ub3RhdGlvbkZsYWdzLGgpfV9kZWNvZGVGb3JtVmFsdWUoQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSk/QS5maWx0ZXIoKEE9PiJzdHJpbmciPT10eXBlb2YgQSkpLm1hcCgoQT0+ZUEoQSkpKTpBIGluc3RhbmNlb2YgQ0E/ZUEoQS5uYW1lKToic3RyaW5nIj09dHlwZW9mIEE/ZUEoQSk6bnVsbH1oYXNGaWVsZEZsYWcoQSl7cmV0dXJuISEodGhpcy5kYXRhLmZpZWxkRmxhZ3MmQSl9X2lzVmlld2FibGUoQSl7cmV0dXJuITB9bXVzdEJlVmlld2VkKEEsZSl7cmV0dXJuIGU/dGhpcy52aWV3YWJsZTpzdXBlci5tdXN0QmVWaWV3ZWQoQSxlKSYmIXRoaXMuX2hhc0ZsYWcodGhpcy5mbGFncyxoKX1nZXRSb3RhdGlvbk1hdHJpeChBKXtsZXQgZT1BPy5nZXQodGhpcy5kYXRhLmlkKT8ucm90YXRpb247cmV0dXJuIHZvaWQgMD09PWUmJihlPXRoaXMucm90YXRpb24pLDA9PT1lP3M6bmUoZSx0aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSx0aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSl9Z2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKEEpe2xldCBlPUE/LmdldCh0aGlzLmRhdGEuaWQpPy5yb3RhdGlvbjtpZih2b2lkIDA9PT1lJiYoZT10aGlzLnJvdGF0aW9uKSwhdGhpcy5iYWNrZ3JvdW5kQ29sb3ImJiF0aGlzLmJvcmRlckNvbG9yKXJldHVybiIiO2NvbnN0IHQ9dGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF0saT10aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSxhPTA9PT1lfHwxODA9PT1lP2AwIDAgJHt0fSAke2l9IHJlYDpgMCAwICR7aX0gJHt0fSByZWA7bGV0IHM9IiI7cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yJiYocz1gJHttZyh0aGlzLmJhY2tncm91bmRDb2xvciwhMCl9ICR7YX0gZiBgKSx0aGlzLmJvcmRlckNvbG9yJiYocys9YCR7dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MX0gdyAke21nKHRoaXMuYm9yZGVyQ29sb3IsITEpfSAke2F9IFMgYCksc31hc3luYyBnZXRPcGVyYXRvckxpc3QoQSxlLHQsaSl7aWYoMTYmdCYmISh0aGlzIGluc3RhbmNlb2YganUpJiYhdGhpcy5kYXRhLm5vSFRNTCYmIXRoaXMuZGF0YS5oYXNPd25DYW52YXMpcmV0dXJue29wTGlzdDpuZXcgYWcsc2VwYXJhdGVGb3JtOiEwLHNlcGFyYXRlQ2FudmFzOiExfTtpZighdGhpcy5faGFzVGV4dClyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LGkpO2NvbnN0IGE9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShBLGUsdCxpKTtpZih0aGlzLmFwcGVhcmFuY2UmJm51bGw9PT1hKXJldHVybiBzdXBlci5nZXRPcGVyYXRvckxpc3QoQSxlLHQsaSk7Y29uc3Qgcz1uZXcgYWc7aWYoIXRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHxudWxsPT09YSlyZXR1cm57b3BMaXN0OnMsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfTtjb25zdCBuPSEhKHRoaXMuZGF0YS5oYXNPd25DYW52YXMmJjImdCkscj1bMCwwLHRoaXMuZGF0YS5yZWN0WzJdLXRoaXMuZGF0YS5yZWN0WzBdLHRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdXSxnPXZ1KHRoaXMuZGF0YS5yZWN0LHIsWzEsMCwwLDEsMCwwXSk7bGV0IG87dGhpcy5vYyYmKG89YXdhaXQgQS5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyh0aGlzLm9jLG51bGwpKSx2b2lkIDAhPT1vJiZzLmFkZE9wKGssWyJPQyIsb10pLHMuYWRkT3AoODAsW3RoaXMuZGF0YS5pZCx0aGlzLmRhdGEucmVjdCxnLHRoaXMuZ2V0Um90YXRpb25NYXRyaXgoaSksbl0pO2NvbnN0IEk9bmV3IG9lKGEpO3JldHVybiBhd2FpdCBBLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOkksdGFzazplLHJlc291cmNlczp0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMsb3BlcmF0b3JMaXN0OnN9KSxzLmFkZE9wKDgxLFtdKSx2b2lkIDAhPT1vJiZzLmFkZE9wKEYsW10pLHtvcExpc3Q6cyxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6bn19X2dldE1LRGljdChBKXtjb25zdCBlPW5ldyBRQShudWxsKTtyZXR1cm4gQSYmZS5zZXQoIlIiLEEpLHRoaXMuYm9yZGVyQ29sb3ImJmUuc2V0KCJCQyIsSHUodGhpcy5ib3JkZXJDb2xvcikpLHRoaXMuYmFja2dyb3VuZENvbG9yJiZlLnNldCgiQkciLEh1KHRoaXMuYmFja2dyb3VuZENvbG9yKSksZS5zaXplPjA/ZTpudWxsfWFtZW5kU2F2ZWREaWN0KEEsZSl7fWFzeW5jIHNhdmUoQSxlLHQpe2NvbnN0IGk9dD8uZ2V0KHRoaXMuZGF0YS5pZCksYT10aGlzLl9idWlsZEZsYWdzKGk/Lm5vVmlldyxpPy5ub1ByaW50KTtsZXQgbj1pPy52YWx1ZSxyPWk/LnJvdGF0aW9uO2lmKG49PT10aGlzLmRhdGEuZmllbGRWYWx1ZXx8dm9pZCAwPT09bil7aWYoIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQSYmdm9pZCAwPT09ciYmdm9pZCAwPT09YSlyZXR1cm4gbnVsbDtufHw9dGhpcy5kYXRhLmZpZWxkVmFsdWV9aWYodm9pZCAwPT09ciYmIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQSYmQXJyYXkuaXNBcnJheShuKSYmQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuZmllbGRWYWx1ZSkmJmFBKG4sdGhpcy5kYXRhLmZpZWxkVmFsdWUpJiZ2b2lkIDA9PT1hKXJldHVybiBudWxsO3ZvaWQgMD09PXImJihyPXRoaXMucm90YXRpb24pO2xldCBnPW51bGw7aWYoIXRoaXMuX25lZWRBcHBlYXJhbmNlcyYmKGc9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShBLGUsOCx0KSxudWxsPT09ZyYmdm9pZCAwPT09YSkpcmV0dXJuIG51bGw7bGV0IG89ITE7Zz8ubmVlZEFwcGVhcmFuY2VzJiYobz0hMCxnPW51bGwpO2NvbnN0e3hyZWY6SX09QSxjPUkuZmV0Y2hJZlJlZih0aGlzLnJlZik7aWYoIShjIGluc3RhbmNlb2YgUUEpKXJldHVybiBudWxsO2NvbnN0IGg9bmV3IFFBKEkpO2Zvcihjb25zdCBBIG9mIGMuZ2V0S2V5cygpKSJBUCIhPT1BJiZoLnNldChBLGMuZ2V0UmF3KEEpKTtpZih2b2lkIDAhPT1hJiYoaC5zZXQoIkYiLGEpLG51bGw9PT1nJiYhbykpe2NvbnN0IEE9Yy5nZXRSYXcoIkFQIik7QSYmaC5zZXQoIkFQIixBKX1jb25zdCBDPXtwYXRoOnRoaXMuZGF0YS5maWVsZE5hbWUsdmFsdWU6bn07aC5zZXQoIlYiLEFycmF5LmlzQXJyYXkobik/bi5tYXAoaWUpOmllKG4pKSx0aGlzLmFtZW5kU2F2ZWREaWN0KHQsaCk7Y29uc3QgQj10aGlzLl9nZXRNS0RpY3Qocik7QiYmaC5zZXQoIk1LIixCKTtjb25zdCBsPVtdLFE9W3tyZWY6dGhpcy5yZWYsZGF0YToiIix4ZmE6QyxuZWVkQXBwZWFyYW5jZXM6b31dO2lmKG51bGwhPT1nKXtjb25zdCBBPUkuZ2V0TmV3VGVtcG9yYXJ5UmVmKCksZT1uZXcgUUEoSSk7aC5zZXQoIkFQIixlKSxlLnNldCgiTiIsQSk7Y29uc3QgaT10aGlzLl9nZXRTYXZlRmllbGRSZXNvdXJjZXMoSSksYT1uZXcgb2UoZyksbj1hLmRpY3Q9bmV3IFFBKEkpO24uc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZvcm0iKSksbi5zZXQoIlJlc291cmNlcyIsaSksbi5zZXQoIkJCb3giLFswLDAsdGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF0sdGhpcy5kYXRhLnJlY3RbM10tdGhpcy5kYXRhLnJlY3RbMV1dKTtjb25zdCByPXRoaXMuZ2V0Um90YXRpb25NYXRyaXgodCk7ciE9PXMmJm4uc2V0KCJNYXRyaXgiLHIpLGF3YWl0IFhnKEEsYSxsLEkpLFEucHVzaCh7cmVmOkEsZGF0YTpsLmpvaW4oIiIpLHhmYTpudWxsLG5lZWRBcHBlYXJhbmNlczohMX0pLGwubGVuZ3RoPTB9cmV0dXJuIGguc2V0KCJNIixgRDoke3NBKCl9YCksYXdhaXQgWGcodGhpcy5yZWYsaCxsLEkpLFFbMF0uZGF0YT1sLmpvaW4oIiIpLFF9YXN5bmMgX2dldEFwcGVhcmFuY2UoQSxlLHQsaSl7aWYodGhpcy5oYXNGaWVsZEZsYWcoQykpcmV0dXJuIG51bGw7Y29uc3QgYT1pPy5nZXQodGhpcy5kYXRhLmlkKTtsZXQgcyxuO2lmKGEmJihzPWEuZm9ybWF0dGVkVmFsdWV8fGEudmFsdWUsbj1hLnJvdGF0aW9uKSx2b2lkIDA9PT1uJiZ2b2lkIDA9PT1zJiYhdGhpcy5fbmVlZEFwcGVhcmFuY2VzJiYoIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQXx8dGhpcy5hcHBlYXJhbmNlKSlyZXR1cm4gbnVsbDtjb25zdCByPXRoaXMuZ2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGkpO2lmKHZvaWQgMD09PXMmJihzPXRoaXMuZGF0YS5maWVsZFZhbHVlLCFzKSlyZXR1cm5gL1R4IEJNQyBxICR7cn1RIEVNQ2A7aWYoQXJyYXkuaXNBcnJheShzKSYmMT09PXMubGVuZ3RoJiYocz1zWzBdKSxMKCJzdHJpbmciPT10eXBlb2YgcywiRXhwZWN0ZWQgYHZhbHVlYCB0byBiZSBhIHN0cmluZy4iKSxzPXMudHJpbUVuZCgpLHRoaXMuZGF0YS5jb21ibyl7Y29uc3QgQT10aGlzLmRhdGEub3B0aW9ucy5maW5kKCgoe2V4cG9ydFZhbHVlOkF9KT0+cz09PUEpKTtzPUE/LmRpc3BsYXlWYWx1ZXx8c31pZigiIj09PXMpcmV0dXJuYC9UeCBCTUMgcSAke3J9USBFTUNgO3ZvaWQgMD09PW4mJihuPXRoaXMucm90YXRpb24pO2xldCBvLEk9LTE7dGhpcy5kYXRhLm11bHRpTGluZT8obz1zLnNwbGl0KC9cclxuP3xcbi8pLm1hcCgoQT0+QS5ub3JtYWxpemUoIk5GQyIpKSksST1vLmxlbmd0aCk6bz1bcy5yZXBsYWNlKC9cclxuP3xcbi8sIiIpLm5vcm1hbGl6ZSgiTkZDIildO2xldCBjPXRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLGg9dGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF07OTAhPT1uJiYyNzAhPT1ufHwoW2gsY109W2MsaF0pLHRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHwodGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1mZyh0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT0iL0hlbHZldGljYSAwIFRmIDAgZyIpKTtsZXQgQixsLFEsRT1hd2FpdCBQdS5fZ2V0Rm9udERhdGEoQSxlLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEsdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzKTtjb25zdCB1PVtdO2xldCBkPSExO2Zvcihjb25zdCBBIG9mIG8pe2NvbnN0IGU9RS5lbmNvZGVTdHJpbmcoQSk7ZS5sZW5ndGg+MSYmKGQ9ITApLHUucHVzaChlLmpvaW4oIiIpKX1pZihkJiY4JnQpcmV0dXJue25lZWRBcHBlYXJhbmNlczohMH07aWYoZCYmdGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IHQ9dGhpcy5kYXRhLmNvbWI/Im1vbm9zcGFjZSI6InNhbnMtc2VyaWYiLGk9bmV3IHlnKEEueHJlZix0KSxhPWkuY3JlYXRlRm9udFJlc291cmNlcyhvLmpvaW4oIiIpKSxuPWEuZ2V0UmF3KCJGb250Iik7aWYodGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzLmhhcygiRm9udCIpKXtjb25zdCBBPXRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcy5nZXQoIkZvbnQiKTtmb3IoY29uc3QgZSBvZiBuLmdldEtleXMoKSlBLnNldChlLG4uZ2V0UmF3KGUpKX1lbHNlIHRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcy5zZXQoIkZvbnQiLG4pO2NvbnN0IHI9aS5mb250TmFtZS5uYW1lO0U9YXdhaXQgUHUuX2dldEZvbnREYXRhKEEsZSx7Zm9udE5hbWU6cixmb250U2l6ZTowfSxhKTtmb3IobGV0IEE9MCxlPXUubGVuZ3RoO0E8ZTtBKyspdVtBXT1zZShvW0FdKTtjb25zdCBnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhKTt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPTAsdGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250TmFtZT1yLFtCLGwsUV09dGhpcy5fY29tcHV0ZUZvbnRTaXplKGMtMixoLTQscyxFLEkpLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9Z31lbHNlIHRoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkfHxVKCJfZ2V0QXBwZWFyYW5jZTogT2Zmc2NyZWVuQ2FudmFzIGlzIG5vdCBzdXBwb3J0ZWQsIGFubm90YXRpb24gbWF5IG5vdCByZW5kZXIgY29ycmVjdGx5LiIpLFtCLGwsUV09dGhpcy5fY29tcHV0ZUZvbnRTaXplKGMtMixoLTQscyxFLEkpO2xldCBmPUUuZGVzY2VudDtmPWlzTmFOKGYpP2cqUTpNYXRoLm1heChnKlEsTWF0aC5hYnMoZikqbCk7Y29uc3QgcD1NYXRoLm1pbihNYXRoLmZsb29yKChjLWwpLzIpLDEpLG09dGhpcy5kYXRhLnRleHRBbGlnbm1lbnQ7aWYodGhpcy5kYXRhLm11bHRpTGluZSlyZXR1cm4gdGhpcy5fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShCLHUsRSxsLGgsYyxtLDIscCxmLFEsaSk7aWYodGhpcy5kYXRhLmNvbWIpcmV0dXJuIHRoaXMuX2dldENvbWJBcHBlYXJhbmNlKEIsRSx1WzBdLGwsaCxjLDIscCxmLFEsaSk7Y29uc3QgeT1wK2Y7cmV0dXJuIDA9PT1tfHxtPjI/YC9UeCBCTUMgcSAke3J9QlQgYCtCK2AgMSAwIDAgMSAke2VlKDIpfSAke2VlKHkpfSBUbSAoJHtPQSh1WzBdKX0pIFRqIEVUIFEgRU1DYDpgL1R4IEJNQyBxICR7cn1CVCBgK0IrYCAxIDAgMCAxIDAgMCBUbSAke3RoaXMuX3JlbmRlclRleHQodVswXSxFLGwsaCxtLHtzaGlmdDowfSwyLHkpfSBFVCBRIEVNQ2B9c3RhdGljIGFzeW5jIF9nZXRGb250RGF0YShBLGUsdCxpKXtjb25zdCBhPW5ldyBhZyxzPXtmb250Om51bGwsY2xvbmUoKXtyZXR1cm4gdGhpc319LHtmb250TmFtZTpuLGZvbnRTaXplOnJ9PXQ7cmV0dXJuIGF3YWl0IEEuaGFuZGxlU2V0Rm9udChpLFtuJiZDQS5nZXQobikscl0sbnVsbCxhLGUscyxudWxsKSxzLmZvbnR9X2dldFRleHRXaWR0aChBLGUpe3JldHVybiBlLmNoYXJzVG9HbHlwaHMoQSkucmVkdWNlKCgoQSxlKT0+QStlLndpZHRoKSwwKS8xZTN9X2NvbXB1dGVGb250U2l6ZShBLGUsdCxpLGEpe2xldHtmb250U2l6ZTpzfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLG49KHN8fDEyKSpyLGc9TWF0aC5yb3VuZChBL24pO2lmKCFzKXtjb25zdCBvPUE9Pk1hdGguZmxvb3IoMTAwKkEpLzEwMDtpZigtMT09PWEpe2NvbnN0IGE9dGhpcy5fZ2V0VGV4dFdpZHRoKHQsaSk7cz1vKE1hdGgubWluKEEvcixlL2EpKSxnPTF9ZWxzZXtjb25zdCBJPXQuc3BsaXQoL1xyXG4/fFxuLyksYz1bXTtmb3IoY29uc3QgQSBvZiBJKXtjb25zdCBlPWkuZW5jb2RlU3RyaW5nKEEpLmpvaW4oIiIpLHQ9aS5jaGFyc1RvR2x5cGhzKGUpLGE9aS5nZXRDaGFyUG9zaXRpb25zKGUpO2MucHVzaCh7bGluZTplLGdseXBoczp0LHBvc2l0aW9uczphfSl9Y29uc3QgaD10PT57bGV0IGE9MDtmb3IoY29uc3QgcyBvZiBjKWlmKGErPXRoaXMuX3NwbGl0TGluZShudWxsLGksdCxlLHMpLmxlbmd0aCp0LGE+QSlyZXR1cm4hMDtyZXR1cm4hMX07Zm9yKGc9TWF0aC5tYXgoZyxhKTtuPUEvZyxzPW8obi9yKSxoKHMpOylnKyt9Y29uc3R7Zm9udE5hbWU6SSxmb250Q29sb3I6Y309dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YTt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT1mdW5jdGlvbih7Zm9udFNpemU6QSxmb250TmFtZTplLGZvbnRDb2xvcjp0fSl7cmV0dXJuYC8ke1dBKGUpfSAke0F9IFRmICR7bWcodCwhMCl9YH0oe2ZvbnRTaXplOnMsZm9udE5hbWU6SSxmb250Q29sb3I6Y30pfXJldHVyblt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZSxzLEEvZ119X3JlbmRlclRleHQoQSxlLHQsaSxhLHMsbixyKXtsZXQgZztnPTE9PT1hPyhpLXRoaXMuX2dldFRleHRXaWR0aChBLGUpKnQpLzI6Mj09PWE/aS10aGlzLl9nZXRUZXh0V2lkdGgoQSxlKSp0LW46bjtjb25zdCBvPWVlKGctcy5zaGlmdCk7cmV0dXJuIHMuc2hpZnQ9ZyxgJHtvfSAke3I9ZWUocil9IFRkICgke09BKEEpfSkgVGpgfV9nZXRTYXZlRmllbGRSZXNvdXJjZXMoQSl7Y29uc3R7bG9jYWxSZXNvdXJjZXM6ZSxhcHBlYXJhbmNlUmVzb3VyY2VzOnQsYWNyb0Zvcm1SZXNvdXJjZXM6aX09dGhpcy5fZmllbGRSZXNvdXJjZXMsYT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPy5mb250TmFtZTtpZighYSlyZXR1cm4gZXx8UUEuZW1wdHk7Zm9yKGNvbnN0IEEgb2ZbZSx0XSlpZihBIGluc3RhbmNlb2YgUUEpe2NvbnN0IGU9QS5nZXQoIkZvbnQiKTtpZihlIGluc3RhbmNlb2YgUUEmJmUuaGFzKGEpKXJldHVybiBBfWlmKGkgaW5zdGFuY2VvZiBRQSl7Y29uc3QgdD1pLmdldCgiRm9udCIpO2lmKHQgaW5zdGFuY2VvZiBRQSYmdC5oYXMoYSkpe2NvbnN0IGk9bmV3IFFBKEEpO2kuc2V0KGEsdC5nZXRSYXcoYSkpO2NvbnN0IHM9bmV3IFFBKEEpO3JldHVybiBzLnNldCgiRm9udCIsaSksUUEubWVyZ2Uoe3hyZWY6QSxkaWN0QXJyYXk6W3MsZV0sbWVyZ2VTdWJEaWN0czohMH0pfX1yZXR1cm4gZXx8UUEuZW1wdHl9Z2V0RmllbGRPYmplY3QoKXtyZXR1cm4gbnVsbH19Y2xhc3MgV3UgZXh0ZW5kcyBQdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmV9PUE7ZS5oYXMoIlBNRCIpJiYodGhpcy5mbGFnc3w9Mix0aGlzLmRhdGEuaGlkZGVuPSEwLFUoIkJhcmNvZGVzIGFyZSBub3Qgc3VwcG9ydGVkIikpLHRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLnJlYWRPbmx5JiYhdGhpcy5kYXRhLm5vSFRNTCx0aGlzLl9oYXNUZXh0PSEwLCJzdHJpbmciIT10eXBlb2YgdGhpcy5kYXRhLmZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZmllbGRWYWx1ZT0iIik7bGV0IHQ9TkEoe2RpY3Q6ZSxrZXk6IlEifSk7KCFOdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PDB8fHQ+MikmJih0PW51bGwpLHRoaXMuZGF0YS50ZXh0QWxpZ25tZW50PXQ7bGV0IGk9TkEoe2RpY3Q6ZSxrZXk6Ik1heExlbiJ9KTsoIU51bWJlci5pc0ludGVnZXIoaSl8fGk8MCkmJihpPTApLHRoaXMuZGF0YS5tYXhMZW49aSx0aGlzLmRhdGEubXVsdGlMaW5lPXRoaXMuaGFzRmllbGRGbGFnKDQwOTYpLHRoaXMuZGF0YS5jb21iPXRoaXMuaGFzRmllbGRGbGFnKDE2Nzc3MjE2KSYmIXRoaXMuaGFzRmllbGRGbGFnKDQwOTYpJiYhdGhpcy5oYXNGaWVsZEZsYWcoQykmJiF0aGlzLmhhc0ZpZWxkRmxhZygxMDQ4NTc2KSYmMCE9PXRoaXMuZGF0YS5tYXhMZW4sdGhpcy5kYXRhLmRvTm90U2Nyb2xsPXRoaXMuaGFzRmllbGRGbGFnKDgzODg2MDgpfWdldCBoYXNUZXh0Q29udGVudCgpe3JldHVybiEhdGhpcy5hcHBlYXJhbmNlJiYhdGhpcy5fbmVlZEFwcGVhcmFuY2VzfV9nZXRDb21iQXBwZWFyYW5jZShBLGUsdCxpLGEscyxuLHIsZyxvLEkpe2NvbnN0IGM9YS90aGlzLmRhdGEubWF4TGVuLGg9dGhpcy5nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoSSksQz1bXSxCPWUuZ2V0Q2hhclBvc2l0aW9ucyh0KTtmb3IoY29uc3RbQSxlXW9mIEIpQy5wdXNoKGAoJHtPQSh0LnN1YnN0cmluZyhBLGUpKX0pIFRqYCk7Y29uc3QgbD1DLmpvaW4oYCAke2VlKGMpfSAwIFRkIGApO3JldHVybmAvVHggQk1DIHEgJHtofUJUIGArQStgIDEgMCAwIDEgJHtlZShuKX0gJHtlZShyK2cpfSBUbSAke2x9IEVUIFEgRU1DYH1fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShBLGUsdCxpLGEscyxuLHIsZyxvLEksYyl7Y29uc3QgaD1bXSxDPWEtMipyLEI9e3NoaWZ0OjB9O2ZvcihsZXQgQT0wLHM9ZS5sZW5ndGg7QTxzO0ErKyl7Y29uc3Qgcz1lW0FdLGM9dGhpcy5fc3BsaXRMaW5lKHMsdCxpLEMpO2ZvcihsZXQgZT0wLHM9Yy5sZW5ndGg7ZTxzO2UrKyl7Y29uc3Qgcz1jW2VdLEM9MD09PUEmJjA9PT1lPy1nLShJLW8pOi1JO2gucHVzaCh0aGlzLl9yZW5kZXJUZXh0KHMsdCxpLGEsbixCLHIsQykpfX1jb25zdCBsPXRoaXMuZ2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGMpLFE9aC5qb2luKCJcbiIpO3JldHVybmAvVHggQk1DIHEgJHtsfUJUIGArQStgIDEgMCAwIDEgMCAke2VlKHMpfSBUbSAke1F9IEVUIFEgRU1DYH1fc3BsaXRMaW5lKEEsZSx0LGksYT17fSl7QT1hLmxpbmV8fEE7Y29uc3Qgcz1hLmdseXBoc3x8ZS5jaGFyc1RvR2x5cGhzKEEpO2lmKHMubGVuZ3RoPD0xKXJldHVybltBXTtjb25zdCBuPWEucG9zaXRpb25zfHxlLmdldENoYXJQb3NpdGlvbnMoQSkscj10LzFlMyxnPVtdO2xldCBvPS0xLEk9LTEsYz0tMSxoPTAsQz0wO2ZvcihsZXQgZT0wLHQ9cy5sZW5ndGg7ZTx0O2UrKyl7Y29uc3RbdCxhXT1uW2VdLEI9c1tlXSxsPUIud2lkdGgqcjsiICI9PT1CLnVuaWNvZGU/QytsPmk/KGcucHVzaChBLnN1YnN0cmluZyhoLHQpKSxoPXQsQz1sLG89LTEsYz0tMSk6KEMrPWwsbz10LEk9YSxjPWUpOkMrbD5pPy0xIT09bz8oZy5wdXNoKEEuc3Vic3RyaW5nKGgsSSkpLGg9SSxlPWMrMSxvPS0xLEM9MCk6KGcucHVzaChBLnN1YnN0cmluZyhoLHQpKSxoPXQsQz1sKTpDKz1sfXJldHVybiBoPEEubGVuZ3RoJiZnLnB1c2goQS5zdWJzdHJpbmcoaCxBLmxlbmd0aCkpLGd9YXN5bmMgZXh0cmFjdFRleHRDb250ZW50KEEsZSx0KXthd2FpdCBzdXBlci5leHRyYWN0VGV4dENvbnRlbnQoQSxlLHQpO2NvbnN0IGk9dGhpcy5kYXRhLnRleHRDb250ZW50O2lmKCFpKXJldHVybjtjb25zdCBhPWkuam9pbigiXG4iKTtpZihhPT09dGhpcy5kYXRhLmZpZWxkVmFsdWUpcmV0dXJuO2NvbnN0IHM9YS5yZXBsYWNlQWxsKC8oWy4qKz9eJHt9KCl8W1xdXFxdKXwoXHMrKS9nLCgoQSxlKT0+ZT9gXFwke2V9YDoiXFxzKyIpKTtuZXcgUmVnRXhwKGBeXFxzKiR7c31cXHMqJGApLnRlc3QodGhpcy5kYXRhLmZpZWxkVmFsdWUpJiYodGhpcy5kYXRhLnRleHRDb250ZW50PXRoaXMuZGF0YS5maWVsZFZhbHVlLnNwbGl0KCJcbiIpKX1nZXRGaWVsZE9iamVjdCgpe3JldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6dGhpcy5kYXRhLmZpZWxkVmFsdWUsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZXx8IiIsbXVsdGlsaW5lOnRoaXMuZGF0YS5tdWx0aUxpbmUscGFzc3dvcmQ6dGhpcy5oYXNGaWVsZEZsYWcoQyksY2hhckxpbWl0OnRoaXMuZGF0YS5tYXhMZW4sY29tYjp0aGlzLmRhdGEuY29tYixlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6InRleHQifX19Y2xhc3MgT3UgZXh0ZW5kcyBQdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKSx0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPW51bGwsdGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlPW51bGwsdGhpcy5kYXRhLmNoZWNrQm94PSF0aGlzLmhhc0ZpZWxkRmxhZygzMjc2OCkmJiF0aGlzLmhhc0ZpZWxkRmxhZyhCKSx0aGlzLmRhdGEucmFkaW9CdXR0b249dGhpcy5oYXNGaWVsZEZsYWcoMzI3NjgpJiYhdGhpcy5oYXNGaWVsZEZsYWcoQiksdGhpcy5kYXRhLnB1c2hCdXR0b249dGhpcy5oYXNGaWVsZEZsYWcoQiksdGhpcy5kYXRhLmlzVG9vbHRpcE9ubHk9ITEsdGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuX3Byb2Nlc3NDaGVja0JveChBKTp0aGlzLmRhdGEucmFkaW9CdXR0b24/dGhpcy5fcHJvY2Vzc1JhZGlvQnV0dG9uKEEpOnRoaXMuZGF0YS5wdXNoQnV0dG9uPyh0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSEwLHRoaXMuZGF0YS5ub0hUTUw9ITEsdGhpcy5fcHJvY2Vzc1B1c2hCdXR0b24oQSkpOlUoIkludmFsaWQgZmllbGQgZmxhZ3MgZm9yIGJ1dHRvbiB3aWRnZXQgYW5ub3RhdGlvbiIpfWFzeW5jIGdldE9wZXJhdG9yTGlzdChBLGUsdCxpKXtpZih0aGlzLmRhdGEucHVzaEJ1dHRvbilyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LCExLGkpO2xldCBhPW51bGwsbj1udWxsO2lmKGkpe2NvbnN0IEE9aS5nZXQodGhpcy5kYXRhLmlkKTthPUE/QS52YWx1ZTpudWxsLG49QT9BLnJvdGF0aW9uOm51bGx9aWYobnVsbD09PWEmJnRoaXMuYXBwZWFyYW5jZSlyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LGkpO251bGw9PWEmJihhPXRoaXMuZGF0YS5jaGVja0JveD90aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZSk7Y29uc3Qgcj1hP3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U6dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlO2lmKHIpe2NvbnN0IGE9dGhpcy5hcHBlYXJhbmNlLGc9S0Eoci5kaWN0LmdldEFycmF5KCJNYXRyaXgiKSxzKTtuJiZyLmRpY3Quc2V0KCJNYXRyaXgiLHRoaXMuZ2V0Um90YXRpb25NYXRyaXgoaSkpLHRoaXMuYXBwZWFyYW5jZT1yO2NvbnN0IG89c3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LGkpO3JldHVybiB0aGlzLmFwcGVhcmFuY2U9YSxyLmRpY3Quc2V0KCJNYXRyaXgiLGcpLG99cmV0dXJue29wTGlzdDpuZXcgYWcsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX1hc3luYyBzYXZlKEEsZSx0KXtyZXR1cm4gdGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuX3NhdmVDaGVja2JveChBLGUsdCk6dGhpcy5kYXRhLnJhZGlvQnV0dG9uP3RoaXMuX3NhdmVSYWRpb0J1dHRvbihBLGUsdCk6bnVsbH1hc3luYyBfc2F2ZUNoZWNrYm94KEEsZSx0KXtpZighdClyZXR1cm4gbnVsbDtjb25zdCBpPXQuZ2V0KHRoaXMuZGF0YS5pZCksYT10aGlzLl9idWlsZEZsYWdzKGk/Lm5vVmlldyxpPy5ub1ByaW50KTtsZXQgcz1pPy5yb3RhdGlvbixuPWk/LnZhbHVlO2lmKHZvaWQgMD09PXMmJnZvaWQgMD09PWEpe2lmKHZvaWQgMD09PW4pcmV0dXJuIG51bGw7aWYodGhpcy5kYXRhLmZpZWxkVmFsdWU9PT10aGlzLmRhdGEuZXhwb3J0VmFsdWU9PT1uKXJldHVybiBudWxsfWxldCByPUEueHJlZi5mZXRjaElmUmVmKHRoaXMucmVmKTtpZighKHIgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7cj1yLmNsb25lKCksdm9pZCAwPT09cyYmKHM9dGhpcy5yb3RhdGlvbiksdm9pZCAwPT09biYmKG49dGhpcy5kYXRhLmZpZWxkVmFsdWU9PT10aGlzLmRhdGEuZXhwb3J0VmFsdWUpO2NvbnN0IGc9e3BhdGg6dGhpcy5kYXRhLmZpZWxkTmFtZSx2YWx1ZTpuP3RoaXMuZGF0YS5leHBvcnRWYWx1ZToiIn0sbz1DQS5nZXQobj90aGlzLmRhdGEuZXhwb3J0VmFsdWU6Ik9mZiIpO3Iuc2V0KCJWIixvKSxyLnNldCgiQVMiLG8pLHIuc2V0KCJNIixgRDoke3NBKCl9YCksdm9pZCAwIT09YSYmci5zZXQoIkYiLGEpO2NvbnN0IEk9dGhpcy5fZ2V0TUtEaWN0KHMpO0kmJnIuc2V0KCJNSyIsSSk7Y29uc3QgYz1bXTtyZXR1cm4gYXdhaXQgWGcodGhpcy5yZWYscixjLEEueHJlZiksW3tyZWY6dGhpcy5yZWYsZGF0YTpjLmpvaW4oIiIpLHhmYTpnfV19YXN5bmMgX3NhdmVSYWRpb0J1dHRvbihBLGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgaT10LmdldCh0aGlzLmRhdGEuaWQpLGE9dGhpcy5fYnVpbGRGbGFncyhpPy5ub1ZpZXcsaT8ubm9QcmludCk7bGV0IHM9aT8ucm90YXRpb24sbj1pPy52YWx1ZTtpZih2b2lkIDA9PT1zJiZ2b2lkIDA9PT1hKXtpZih2b2lkIDA9PT1uKXJldHVybiBudWxsO2lmKHRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlPT09bilyZXR1cm4gbnVsbH1sZXQgcj1BLnhyZWYuZmV0Y2hJZlJlZih0aGlzLnJlZik7aWYoIShyIGluc3RhbmNlb2YgUUEpKXJldHVybiBudWxsO3I9ci5jbG9uZSgpLHZvaWQgMD09PW4mJihuPXRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlKSx2b2lkIDA9PT1zJiYocz10aGlzLnJvdGF0aW9uKTtjb25zdCBnPXtwYXRoOnRoaXMuZGF0YS5maWVsZE5hbWUsdmFsdWU6bj90aGlzLmRhdGEuYnV0dG9uVmFsdWU6IiJ9LG89Q0EuZ2V0KG4/dGhpcy5kYXRhLmJ1dHRvblZhbHVlOiJPZmYiKSxJPVtdO2xldCBjPW51bGw7aWYobilpZih0aGlzLnBhcmVudCBpbnN0YW5jZW9mIEVBKXtjb25zdCBlPUEueHJlZi5mZXRjaCh0aGlzLnBhcmVudCk7ZS5zZXQoIlYiLG8pLGF3YWl0IFhnKHRoaXMucGFyZW50LGUsSSxBLnhyZWYpLGM9SS5qb2luKCIiKSxJLmxlbmd0aD0wfWVsc2UgdGhpcy5wYXJlbnQgaW5zdGFuY2VvZiBRQSYmdGhpcy5wYXJlbnQuc2V0KCJWIixvKTt0aGlzLnBhcmVudHx8ci5zZXQoIlYiLG8pLHIuc2V0KCJBUyIsbyksci5zZXQoIk0iLGBEOiR7c0EoKX1gKSx2b2lkIDAhPT1hJiZyLnNldCgiRiIsYSk7Y29uc3QgaD10aGlzLl9nZXRNS0RpY3Qocyk7aCYmci5zZXQoIk1LIixoKSxhd2FpdCBYZyh0aGlzLnJlZixyLEksQS54cmVmKTtjb25zdCBDPVt7cmVmOnRoaXMucmVmLGRhdGE6SS5qb2luKCIiKSx4ZmE6Z31dO3JldHVybiBjJiZDLnB1c2goe3JlZjp0aGlzLnBhcmVudCxkYXRhOmMseGZhOm51bGx9KSxDfV9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UoQSxlKXtjb25zdCB0PXRoaXMuZGF0YS5yZWN0WzJdLXRoaXMuZGF0YS5yZWN0WzBdLGk9dGhpcy5kYXRhLnJlY3RbM10tdGhpcy5kYXRhLnJlY3RbMV0sYT1bMCwwLHQsaV0scz0uOCpNYXRoLm1pbih0LGkpO2xldCBuLHI7ImNoZWNrIj09PWU/KG49e3dpZHRoOi43NTUqcyxoZWlnaHQ6LjcwNSpzfSxyPSIzIik6ImRpc2MiPT09ZT8obj17d2lkdGg6Ljc5MSpzLGhlaWdodDouNzA1KnN9LHI9ImwiKTpNKGBfZ2V0RGVmYXVsdENoZWNrZWRBcHBlYXJhbmNlIC0gdW5zdXBwb3J0ZWQgdHlwZTogJHtlfWApO2NvbnN0IGc9YHEgQlQgL1BkZkpzWmFEYiAke3N9IFRmIDAgZyAke2VlKCh0LW4ud2lkdGgpLzIpfSAke2VlKChpLW4uaGVpZ2h0KS8yKX0gVGQgKCR7cn0pIFRqIEVUIFFgLG89bmV3IFFBKEEueHJlZik7by5zZXQoIkZvcm1UeXBlIiwxKSxvLnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJGb3JtIikpLG8uc2V0KCJUeXBlIixDQS5nZXQoIlhPYmplY3QiKSksby5zZXQoIkJCb3giLGEpLG8uc2V0KCJNYXRyaXgiLFsxLDAsMCwxLDAsMF0pLG8uc2V0KCJMZW5ndGgiLGcubGVuZ3RoKTtjb25zdCBJPW5ldyBRQShBLnhyZWYpLGM9bmV3IFFBKEEueHJlZik7Yy5zZXQoIlBkZkpzWmFEYiIsdGhpcy5mYWxsYmFja0ZvbnREaWN0KSxJLnNldCgiRm9udCIsYyksby5zZXQoIlJlc291cmNlcyIsSSksdGhpcy5jaGVja2VkQXBwZWFyYW5jZT1uZXcgb2UoZyksdGhpcy5jaGVja2VkQXBwZWFyYW5jZS5kaWN0PW8sdGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpfV9wcm9jZXNzQ2hlY2tCb3goQSl7Y29uc3QgZT1BLmRpY3QuZ2V0KCJBUCIpO2lmKCEoZSBpbnN0YW5jZW9mIFFBKSlyZXR1cm47Y29uc3QgdD1lLmdldCgiTiIpO2lmKCEodCBpbnN0YW5jZW9mIFFBKSlyZXR1cm47Y29uc3QgaT10aGlzLl9kZWNvZGVGb3JtVmFsdWUoQS5kaWN0LmdldCgiQVMiKSk7InN0cmluZyI9PXR5cGVvZiBpJiYodGhpcy5kYXRhLmZpZWxkVmFsdWU9aSk7Y29uc3QgYT1udWxsIT09dGhpcy5kYXRhLmZpZWxkVmFsdWUmJiJPZmYiIT09dGhpcy5kYXRhLmZpZWxkVmFsdWU/dGhpcy5kYXRhLmZpZWxkVmFsdWU6IlllcyIscz10LmdldEtleXMoKTtpZigwPT09cy5sZW5ndGgpcy5wdXNoKCJPZmYiLGEpO2Vsc2UgaWYoMT09PXMubGVuZ3RoKSJPZmYiPT09c1swXT9zLnB1c2goYSk6cy51bnNoaWZ0KCJPZmYiKTtlbHNlIGlmKHMuaW5jbHVkZXMoYSkpcy5sZW5ndGg9MCxzLnB1c2goIk9mZiIsYSk7ZWxzZXtjb25zdCBBPXMuZmluZCgoQT0+Ik9mZiIhPT1BKSk7cy5sZW5ndGg9MCxzLnB1c2goIk9mZiIsQSl9cy5pbmNsdWRlcyh0aGlzLmRhdGEuZmllbGRWYWx1ZSl8fCh0aGlzLmRhdGEuZmllbGRWYWx1ZT0iT2ZmIiksdGhpcy5kYXRhLmV4cG9ydFZhbHVlPXNbMV07Y29uc3Qgbj10LmdldCh0aGlzLmRhdGEuZXhwb3J0VmFsdWUpO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U9biBpbnN0YW5jZW9mIHdBP246bnVsbDtjb25zdCByPXQuZ2V0KCJPZmYiKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2U9ciBpbnN0YW5jZW9mIHdBP3I6bnVsbCx0aGlzLmNoZWNrZWRBcHBlYXJhbmNlP3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmNoZWNrZWRBcHBlYXJhbmNlKTp0aGlzLl9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UoQSwiY2hlY2siKSx0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UpLHRoaXMuX2ZhbGxiYWNrRm9udERpY3Q9dGhpcy5mYWxsYmFja0ZvbnREaWN0LG51bGw9PT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU9Ik9mZiIpfV9wcm9jZXNzUmFkaW9CdXR0b24oQSl7dGhpcy5kYXRhLmJ1dHRvblZhbHVlPW51bGw7Y29uc3QgZT1BLmRpY3QuZ2V0KCJQYXJlbnQiKTtpZihlIGluc3RhbmNlb2YgUUEpe3RoaXMucGFyZW50PUEuZGljdC5nZXRSYXcoIlBhcmVudCIpO2NvbnN0IHQ9ZS5nZXQoIlYiKTt0IGluc3RhbmNlb2YgQ0EmJih0aGlzLmRhdGEuZmllbGRWYWx1ZT10aGlzLl9kZWNvZGVGb3JtVmFsdWUodCkpfWNvbnN0IHQ9QS5kaWN0LmdldCgiQVAiKTtpZighKHQgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2NvbnN0IGk9dC5nZXQoIk4iKTtpZighKGkgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2Zvcihjb25zdCBBIG9mIGkuZ2V0S2V5cygpKWlmKCJPZmYiIT09QSl7dGhpcy5kYXRhLmJ1dHRvblZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShBKTticmVha31jb25zdCBhPWkuZ2V0KHRoaXMuZGF0YS5idXR0b25WYWx1ZSk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT1hIGluc3RhbmNlb2Ygd0E/YTpudWxsO2NvbnN0IHM9aS5nZXQoIk9mZiIpO3RoaXMudW5jaGVja2VkQXBwZWFyYW5jZT1zIGluc3RhbmNlb2Ygd0E/czpudWxsLHRoaXMuY2hlY2tlZEFwcGVhcmFuY2U/dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpOnRoaXMuX2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZShBLCJkaXNjIiksdGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlJiZ0aGlzLl9zdHJlYW1zLnB1c2godGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlKSx0aGlzLl9mYWxsYmFja0ZvbnREaWN0PXRoaXMuZmFsbGJhY2tGb250RGljdCxudWxsPT09dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlJiYodGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlPSJPZmYiKX1fcHJvY2Vzc1B1c2hCdXR0b24oQSl7Y29uc3R7ZGljdDplLGFubm90YXRpb25HbG9iYWxzOnR9PUE7ZS5oYXMoIkEiKXx8ZS5oYXMoIkFBIil8fHRoaXMuZGF0YS5hbHRlcm5hdGl2ZVRleHQ/KHRoaXMuZGF0YS5pc1Rvb2x0aXBPbmx5PSFlLmhhcygiQSIpJiYhZS5oYXMoIkFBIiksaG8ucGFyc2VEZXN0RGljdGlvbmFyeSh7ZGVzdERpY3Q6ZSxyZXN1bHRPYmo6dGhpcy5kYXRhLGRvY0Jhc2VVcmw6dC5iYXNlVXJsLGRvY0F0dGFjaG1lbnRzOnQuYXR0YWNobWVudHN9KSk6VSgiUHVzaCBidXR0b25zIHdpdGhvdXQgYWN0aW9uIGRpY3Rpb25hcmllcyBhcmUgbm90IHN1cHBvcnRlZCIpfWdldEZpZWxkT2JqZWN0KCl7bGV0IEEsZT0iYnV0dG9uIjtyZXR1cm4gdGhpcy5kYXRhLmNoZWNrQm94PyhlPSJjaGVja2JveCIsQT10aGlzLmRhdGEuZXhwb3J0VmFsdWUpOnRoaXMuZGF0YS5yYWRpb0J1dHRvbiYmKGU9InJhZGlvYnV0dG9uIixBPXRoaXMuZGF0YS5idXR0b25WYWx1ZSkse2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZXx8Ik9mZiIsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZSxleHBvcnRWYWx1ZXM6QSxlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6ZX19Z2V0IGZhbGxiYWNrRm9udERpY3QoKXtjb25zdCBBPW5ldyBRQTtyZXR1cm4gQS5zZXQoIkJhc2VGb250IixDQS5nZXQoIlphcGZEaW5nYmF0cyIpKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGYWxsYmFja1R5cGUiKSksQS5zZXQoIlN1YnR5cGUiLENBLmdldCgiRmFsbGJhY2tUeXBlIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJaYXBmRGluZ2JhdHNFbmNvZGluZyIpKSxIKHRoaXMsImZhbGxiYWNrRm9udERpY3QiLEEpfX1jbGFzcyBadSBleHRlbmRzIFB1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7dGhpcy5pbmRpY2VzPWUuZ2V0QXJyYXkoIkkiKSx0aGlzLmhhc0luZGljZXM9QXJyYXkuaXNBcnJheSh0aGlzLmluZGljZXMpJiZ0aGlzLmluZGljZXMubGVuZ3RoPjAsdGhpcy5kYXRhLm9wdGlvbnM9W107Y29uc3QgaT1OQSh7ZGljdDplLGtleToiT3B0In0pO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBBPTAsZT1pLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPXQuZmV0Y2hJZlJlZihpW0FdKSxhPUFycmF5LmlzQXJyYXkoZSk7dGhpcy5kYXRhLm9wdGlvbnNbQV09e2V4cG9ydFZhbHVlOnRoaXMuX2RlY29kZUZvcm1WYWx1ZShhP3QuZmV0Y2hJZlJlZihlWzBdKTplKSxkaXNwbGF5VmFsdWU6dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGE/dC5mZXRjaElmUmVmKGVbMV0pOmUpfX1pZih0aGlzLmhhc0luZGljZXMpe3RoaXMuZGF0YS5maWVsZFZhbHVlPVtdO2NvbnN0IEE9dGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoO2Zvcihjb25zdCBlIG9mIHRoaXMuaW5kaWNlcylOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wJiZlPEEmJnRoaXMuZGF0YS5maWVsZFZhbHVlLnB1c2godGhpcy5kYXRhLm9wdGlvbnNbZV0uZXhwb3J0VmFsdWUpfWVsc2Uic3RyaW5nIj09dHlwZW9mIHRoaXMuZGF0YS5maWVsZFZhbHVlP3RoaXMuZGF0YS5maWVsZFZhbHVlPVt0aGlzLmRhdGEuZmllbGRWYWx1ZV06dGhpcy5kYXRhLmZpZWxkVmFsdWV8fCh0aGlzLmRhdGEuZmllbGRWYWx1ZT1bXSk7dGhpcy5kYXRhLmNvbWJvPXRoaXMuaGFzRmllbGRGbGFnKDEzMTA3MiksdGhpcy5kYXRhLm11bHRpU2VsZWN0PXRoaXMuaGFzRmllbGRGbGFnKDIwOTcxNTIpLHRoaXMuX2hhc1RleHQ9ITB9Z2V0RmllbGRPYmplY3QoKXtjb25zdCBBPXRoaXMuZGF0YS5jb21ibz8iY29tYm9ib3giOiJsaXN0Ym94IixlPXRoaXMuZGF0YS5maWVsZFZhbHVlLmxlbmd0aD4wP3RoaXMuZGF0YS5maWVsZFZhbHVlWzBdOm51bGw7cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTplLGRlZmF1bHRWYWx1ZTp0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUsZWRpdGFibGU6IXRoaXMuZGF0YS5yZWFkT25seSxuYW1lOnRoaXMuZGF0YS5maWVsZE5hbWUscmVjdDp0aGlzLmRhdGEucmVjdCxudW1JdGVtczp0aGlzLmRhdGEuZmllbGRWYWx1ZS5sZW5ndGgsbXVsdGlwbGVTZWxlY3Rpb246dGhpcy5kYXRhLm11bHRpU2VsZWN0LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMsaXRlbXM6dGhpcy5kYXRhLm9wdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6QX19YW1lbmRTYXZlZERpY3QoQSxlKXtpZighdGhpcy5oYXNJbmRpY2VzKXJldHVybjtsZXQgdD1BPy5nZXQodGhpcy5kYXRhLmlkKT8udmFsdWU7QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTtjb25zdCBpPVtdLHtvcHRpb25zOmF9PXRoaXMuZGF0YTtmb3IobGV0IEE9MCxlPTAscz1hLmxlbmd0aDtBPHM7QSsrKWFbQV0uZXhwb3J0VmFsdWU9PT10W2VdJiYoaS5wdXNoKEEpLGUrPTEpO2Uuc2V0KCJJIixpKX1hc3luYyBfZ2V0QXBwZWFyYW5jZShBLGUsdCxpKXtpZih0aGlzLmRhdGEuY29tYm8pcmV0dXJuIHN1cGVyLl9nZXRBcHBlYXJhbmNlKEEsZSx0LGkpO2xldCBhLHM7Y29uc3Qgbj1pPy5nZXQodGhpcy5kYXRhLmlkKTtpZihuJiYocz1uLnJvdGF0aW9uLGE9bi52YWx1ZSksdm9pZCAwPT09cyYmdm9pZCAwPT09YSYmIXRoaXMuX25lZWRBcHBlYXJhbmNlcylyZXR1cm4gbnVsbDt2b2lkIDA9PT1hP2E9dGhpcy5kYXRhLmZpZWxkVmFsdWU6QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtsZXQgZz10aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSxvPXRoaXMuZGF0YS5yZWN0WzJdLXRoaXMuZGF0YS5yZWN0WzBdOzkwIT09cyYmMjcwIT09c3x8KFtvLGddPVtnLG9dKTtjb25zdCBJPXRoaXMuZGF0YS5vcHRpb25zLmxlbmd0aCxjPVtdO2ZvcihsZXQgQT0wO0E8STtBKyspe2NvbnN0e2V4cG9ydFZhbHVlOmV9PXRoaXMuZGF0YS5vcHRpb25zW0FdO2EuaW5jbHVkZXMoZSkmJmMucHVzaChBKX10aGlzLl9kZWZhdWx0QXBwZWFyYW5jZXx8KHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9ZmcodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9Ii9IZWx2ZXRpY2EgMCBUZiAwIGciKSk7Y29uc3QgaD1hd2FpdCBQdS5fZ2V0Rm9udERhdGEoQSxlLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEsdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzKTtsZXQgQyx7Zm9udFNpemU6Qn09dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YTtpZihCKUM9dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U7ZWxzZXtjb25zdCBBPShnLTEpL0k7bGV0IGUsdD0tMTtmb3IoY29uc3R7ZGlzcGxheVZhbHVlOkF9b2YgdGhpcy5kYXRhLm9wdGlvbnMpe2NvbnN0IGk9dGhpcy5fZ2V0VGV4dFdpZHRoKEEsaCk7aT50JiYodD1pLGU9QSl9W0MsQl09dGhpcy5fY29tcHV0ZUZvbnRTaXplKEEsby00LGUsaCwtMSl9Y29uc3QgbD1CKnIsUT0obC1CKS8yLEU9TWF0aC5mbG9vcihnL2wpO2xldCB1PTA7aWYoYy5sZW5ndGg+MCl7Y29uc3QgQT1NYXRoLm1pbiguLi5jKSxlPU1hdGgubWF4KC4uLmMpO3U9TWF0aC5tYXgoMCxlLUUrMSksdT5BJiYodT1BKX1jb25zdCBkPU1hdGgubWluKHUrRSsxLEkpLGY9WyIvVHggQk1DIHEiLGAxIDEgJHtvfSAke2d9IHJlIFcgbmBdO2lmKGMubGVuZ3RoKXtmLnB1c2goIjAuNjAwMDA2IDAuNzU2ODY2IDAuODU0OTA0IHJnIik7Zm9yKGNvbnN0IEEgb2YgYyl1PD1BJiZBPGQmJmYucHVzaChgMSAke2ctKEEtdSsxKSpsfSAke299ICR7bH0gcmUgZmApfWYucHVzaCgiQlQiLEMsYDEgMCAwIDEgMCAke2d9IFRtYCk7Y29uc3QgcD17c2hpZnQ6MH07Zm9yKGxldCBBPXU7QTxkO0ErKyl7Y29uc3R7ZGlzcGxheVZhbHVlOmV9PXRoaXMuZGF0YS5vcHRpb25zW0FdLHQ9QT09PXU/UTowO2YucHVzaCh0aGlzLl9yZW5kZXJUZXh0KGUsaCxCLG8sMCxwLDIsLWwrdCkpfXJldHVybiBmLnB1c2goIkVUIFEgRU1DIiksZi5qb2luKCJcbiIpfX1jbGFzcyBqdSBleHRlbmRzIFB1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMuZGF0YS5maWVsZFZhbHVlPW51bGwsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hdGhpcy5kYXRhLmhhc093bkNhbnZhc31nZXRGaWVsZE9iamVjdCgpe3JldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6bnVsbCxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgsdHlwZToic2lnbmF0dXJlIn19fWNsYXNzIFh1IGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLm5vUm90YXRlPSEwLHRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlLHRoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3R7ZGljdDplfT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xLHRoaXMuZGF0YS5oYXNBcHBlYXJhbmNlP3RoaXMuZGF0YS5uYW1lPSJOb0ljb24iOih0aGlzLmRhdGEucmVjdFsxXT10aGlzLmRhdGEucmVjdFszXS0yMix0aGlzLmRhdGEucmVjdFsyXT10aGlzLmRhdGEucmVjdFswXSsyMix0aGlzLmRhdGEubmFtZT1lLmhhcygiTmFtZSIpP2UuZ2V0KCJOYW1lIikubmFtZToiTm90ZSIpLGUuaGFzKCJTdGF0ZSIpPyh0aGlzLmRhdGEuc3RhdGU9ZS5nZXQoIlN0YXRlIil8fG51bGwsdGhpcy5kYXRhLnN0YXRlTW9kZWw9ZS5nZXQoIlN0YXRlTW9kZWwiKXx8bnVsbCk6KHRoaXMuZGF0YS5zdGF0ZT1udWxsLHRoaXMuZGF0YS5zdGF0ZU1vZGVsPW51bGwpfX1jbGFzcyBWdSBleHRlbmRzIEt1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSxhbm5vdGF0aW9uR2xvYmFsczp0fT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0yLHRoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3QgaT1ZdShlLHRoaXMucmVjdGFuZ2xlKTtpJiYodGhpcy5kYXRhLnF1YWRQb2ludHM9aSksdGhpcy5kYXRhLmJvcmRlckNvbG9yfHw9dGhpcy5kYXRhLmNvbG9yLGhvLnBhcnNlRGVzdERpY3Rpb25hcnkoe2Rlc3REaWN0OmUscmVzdWx0T2JqOnRoaXMuZGF0YSxkb2NCYXNlVXJsOnQuYmFzZVVybCxkb2NBdHRhY2htZW50czp0LmF0dGFjaG1lbnRzfSl9fWNsYXNzIF91IGV4dGVuZHMgS3V7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSk7Y29uc3R7ZGljdDplfT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xNix0aGlzLmRhdGEubm9IVE1MPSExLHRoaXMuZGF0YS5yZWN0WzBdIT09dGhpcy5kYXRhLnJlY3RbMl0mJnRoaXMuZGF0YS5yZWN0WzFdIT09dGhpcy5kYXRhLnJlY3RbM118fCh0aGlzLmRhdGEucmVjdD1udWxsKTtsZXQgdD1lLmdldCgiUGFyZW50Iik7aWYodCl7aWYodGhpcy5kYXRhLnBhcmVudFJlY3Q9VEEodC5nZXRBcnJheSgiUmVjdCIpLG51bGwpLGZBKHQuZ2V0KCJSVCIpLGMpJiYodD10LmdldCgiSVJUIikpLHQuaGFzKCJNIik/KHRoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZSh0LmdldCgiTSIpKSx0aGlzLmRhdGEubW9kaWZpY2F0aW9uRGF0ZT10aGlzLm1vZGlmaWNhdGlvbkRhdGUpOnRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPW51bGwsdC5oYXMoIkMiKT8odGhpcy5zZXRDb2xvcih0LmdldEFycmF5KCJDIikpLHRoaXMuZGF0YS5jb2xvcj10aGlzLmNvbG9yKTp0aGlzLmRhdGEuY29sb3I9bnVsbCwhdGhpcy52aWV3YWJsZSl7Y29uc3QgQT10LmdldCgiRiIpO3RoaXMuX2lzVmlld2FibGUoQSkmJnRoaXMuc2V0RmxhZ3MoQSl9dGhpcy5zZXRUaXRsZSh0LmdldCgiVCIpKSx0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGUsdGhpcy5zZXRDb250ZW50cyh0LmdldCgiQ29udGVudHMiKSksdGhpcy5kYXRhLmNvbnRlbnRzT2JqPXRoaXMuX2NvbnRlbnRzLHQuaGFzKCJSQyIpJiYodGhpcy5kYXRhLnJpY2hUZXh0PU11LmdldFJpY2hUZXh0QXNIdG1sKHQuZ2V0KCJSQyIpKSksdGhpcy5kYXRhLm9wZW49ISFlLmdldCgiT3BlbiIpfWVsc2UgVSgiUG9wdXAgYW5ub3RhdGlvbiBoYXMgYSBtaXNzaW5nIG9yIGludmFsaWQgcGFyZW50IGFubm90YXRpb24uIil9fWNsYXNzIHp1IGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwsdGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHtldmFsdWF0b3JPcHRpb25zOmUseHJlZjp0fT1BO2lmKHRoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0zLHRoaXMuc2V0RGVmYXVsdEFwcGVhcmFuY2UoQSksdGhpcy5faGFzQXBwZWFyYW5jZT0hIXRoaXMuYXBwZWFyYW5jZSx0aGlzLl9oYXNBcHBlYXJhbmNlKXtjb25zdHtmb250Q29sb3I6QSxmb250U2l6ZTppfT1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIG5ldyBwZyhBLGUsdCkucGFyc2UoKX0odGhpcy5hcHBlYXJhbmNlLGUsdCk7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250Q29sb3I9QSx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPWl8fDEwfWVsc2V7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250U2l6ZXx8PTEwO2NvbnN0e2ZvbnRDb2xvcjplLGZvbnRTaXplOml9PXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE7aWYodGhpcy5fY29udGVudHMuc3RyKXt0aGlzLmRhdGEudGV4dENvbnRlbnQ9dGhpcy5fY29udGVudHMuc3RyLnNwbGl0KC9cclxuP3xcbi8pLm1hcCgoQT0+QS50cmltRW5kKCkpKTtjb25zdHtjb29yZHM6QSxiYm94OmUsbWF0cml4OnR9PXlnLmdldEZpcnN0UG9zaXRpb25JbmZvKHRoaXMucmVjdGFuZ2xlLHRoaXMucm90YXRpb24saSk7dGhpcy5kYXRhLnRleHRQb3NpdGlvbj10aGlzLl90cmFuc2Zvcm1Qb2ludChBLGUsdCl9aWYodGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IGE9QS5kaWN0LmdldCgiQ0EiKSxzPW5ldyB5Zyh0LCJzYW5zLXNlcmlmIik7dGhpcy5hcHBlYXJhbmNlPXMuY3JlYXRlQXBwZWFyYW5jZSh0aGlzLl9jb250ZW50cy5zdHIsdGhpcy5yZWN0YW5nbGUsdGhpcy5yb3RhdGlvbixpLGUsYSksdGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuYXBwZWFyYW5jZSl9ZWxzZSBVKCJGcmVlVGV4dEFubm90YXRpb246IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBhbm5vdGF0aW9uIG1heSBub3QgcmVuZGVyIGNvcnJlY3RseS4iKX19Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuX2hhc0FwcGVhcmFuY2V9c3RhdGljIGNyZWF0ZU5ld0RpY3QoQSxlLHthcFJlZjp0LGFwOml9KXtjb25zdHtjb2xvcjphLGZvbnRTaXplOnMsb2xkQW5ub3RhdGlvbjpuLHJlY3Q6cixyb3RhdGlvbjpnLHVzZXI6byx2YWx1ZTpJfT1BLGM9bnx8bmV3IFFBKGUpO2Muc2V0KCJUeXBlIixDQS5nZXQoIkFubm90IikpLGMuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZyZWVUZXh0IikpLG4/KGMuc2V0KCJNIixgRDoke3NBKCl9YCksYy5kZWxldGUoIlJDIikpOmMuc2V0KCJDcmVhdGlvbkRhdGUiLGBEOiR7c0EoKX1gKSxjLnNldCgiUmVjdCIscik7Y29uc3QgaD1gL0hlbHYgJHtzfSBUZiAke21nKGEsITApfWA7aWYoYy5zZXQoIkRBIixoKSxjLnNldCgiQ29udGVudHMiLGllKEkpKSxjLnNldCgiRiIsNCksYy5zZXQoIkJvcmRlciIsWzAsMCwwXSksYy5zZXQoIlJvdGF0ZSIsZyksbyYmYy5zZXQoIlQiLGllKG8pKSx0fHxpKXtjb25zdCBBPW5ldyBRQShlKTtjLnNldCgiQVAiLEEpLHQ/QS5zZXQoIk4iLHQpOkEuc2V0KCJOIixpKX1yZXR1cm4gY31zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShBLGUsdCl7Y29uc3R7YmFzZUZvbnRSZWY6aSxldmFsdWF0b3I6YSx0YXNrOnN9PXQse2NvbG9yOm4sZm9udFNpemU6ZyxyZWN0Om8scm90YXRpb246SSx2YWx1ZTpjfT1BLGg9bmV3IFFBKGUpLEM9bmV3IFFBKGUpO2lmKGkpQy5zZXQoIkhlbHYiLGkpO2Vsc2V7Y29uc3QgQT1uZXcgUUEoZSk7QS5zZXQoIkJhc2VGb250IixDQS5nZXQoIkhlbHZldGljYSIpKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGb250IikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlR5cGUxIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJXaW5BbnNpRW5jb2RpbmciKSksQy5zZXQoIkhlbHYiLEEpfWguc2V0KCJGb250IixDKTtjb25zdCBCPWF3YWl0IFB1Ll9nZXRGb250RGF0YShhLHMse2ZvbnROYW1lOiJIZWx2Iixmb250U2l6ZTpnfSxoKSxbbCxRLEUsdV09bztsZXQgZD1FLWwsZj11LVE7SSUxODAhPTAmJihbZCxmXT1bZixkXSk7Y29uc3QgcD1jLnNwbGl0KCJcbiIpLG09Zy8xZTM7bGV0IHk9LTEvMDtjb25zdCB3PVtdO2ZvcihsZXQgQSBvZiBwKXtjb25zdCBlPUIuZW5jb2RlU3RyaW5nKEEpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIG51bGw7QT1lLmpvaW4oIiIpLHcucHVzaChBKTtsZXQgdD0wO2NvbnN0IGk9Qi5jaGFyc1RvR2x5cGhzKEEpO2Zvcihjb25zdCBBIG9mIGkpdCs9QS53aWR0aCptO3k9TWF0aC5tYXgoeSx0KX1sZXQgRD0xO3k+ZCYmKEQ9ZC95KTtsZXQgYj0xO2NvbnN0IGs9cipnLEY9MSpnLFM9aypwLmxlbmd0aDtTPmYmJihiPWYvUyk7Y29uc3QgUj1nKk1hdGgubWluKEQsYik7bGV0IEcsTix4O3N3aXRjaChJKXtjYXNlIDA6eD1bMSwwLDAsMV0sTj1bb1swXSxvWzFdLGQsZl0sRz1bb1swXSxvWzNdLUZdO2JyZWFrO2Nhc2UgOTA6eD1bMCwxLC0xLDBdLE49W29bMV0sLW9bMl0sZCxmXSxHPVtvWzFdLC1vWzBdLUZdO2JyZWFrO2Nhc2UgMTgwOng9Wy0xLDAsMCwtMV0sTj1bLW9bMl0sLW9bM10sZCxmXSxHPVstb1syXSwtb1sxXS1GXTticmVhaztjYXNlIDI3MDp4PVswLC0xLDEsMF0sTj1bLW9bM10sb1swXSxkLGZdLEc9Wy1vWzNdLG9bMl0tRl19Y29uc3QgVT1bInEiLGAke3guam9pbigiICIpfSAwIDAgY21gLGAke04uam9pbigiICIpfSByZSBXIG5gLCJCVCIsYCR7bWcobiwhMCl9YCxgMCBUYyAvSGVsdiAke2VlKFIpfSBUZmBdO1UucHVzaChgJHtHLmpvaW4oIiAiKX0gVGQgKCR7T0Eod1swXSl9KSBUamApO2NvbnN0IE09ZWUoayk7Zm9yKGxldCBBPTEsZT13Lmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPXdbQV07VS5wdXNoKGAwIC0ke019IFRkICgke09BKGUpfSkgVGpgKX1VLnB1c2goIkVUIiwiUSIpO2NvbnN0IEw9VS5qb2luKCJcbiIpLEo9bmV3IFFBKGUpO0ouc2V0KCJGb3JtVHlwZSIsMSksSi5zZXQoIlN1YnR5cGUiLENBLmdldCgiRm9ybSIpKSxKLnNldCgiVHlwZSIsQ0EuZ2V0KCJYT2JqZWN0IikpLEouc2V0KCJCQm94IixvKSxKLnNldCgiUmVzb3VyY2VzIixoKSxKLnNldCgiTWF0cml4IixbMSwwLDAsMSwtb1swXSwtb1sxXV0pO2NvbnN0IEg9bmV3IG9lKEwpO3JldHVybiBILmRpY3Q9SixIfX1jbGFzcyAkdSBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTQsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdCBpPXFBKGUuZ2V0QXJyYXkoIkwiKSxbMCwwLDAsMF0pO2lmKHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXM9JC5ub3JtYWxpemVSZWN0KGkpLHRoaXMuc2V0TGluZUVuZGluZ3MoZS5nZXRBcnJheSgiTEUiKSksdGhpcy5kYXRhLmxpbmVFbmRpbmdzPXRoaXMubGluZUVuZGluZ3MsIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0sYT1lLmdldCgiQ0EiKSxzPUp1KGUuZ2V0QXJyYXkoIklDIiksbnVsbCksbj1zP0h1KHMpOm51bGwscj1uP2E6bnVsbCxnPXRoaXMuYm9yZGVyU3R5bGUud2lkdGh8fDEsbz0yKmcsST1bdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1swXS1vLHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXNbMV0tbyx0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzJdK28sdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1szXStvXTskLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxJKXx8KHRoaXMucmVjdGFuZ2xlPUkpLHRoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6YCR7Z30gd2Asc3Ryb2tlQ29sb3I6QSxmaWxsQ29sb3I6bixzdHJva2VBbHBoYTphLGZpbGxBbHBoYTpyLHBvaW50c0NhbGxiYWNrOihBLGUpPT4oQS5wdXNoKGAke2lbMF19ICR7aVsxXX0gbWAsYCR7aVsyXX0gJHtpWzNdfSBsYCwiUyIpLFtlWzBdLWcsZVsyXStnLGVbN10tZyxlWzNdK2ddKX0pfX19Y2xhc3MgQWQgZXh0ZW5kcyBUdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmUseHJlZjp0fT1BO2lmKHRoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT01LHRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlLHRoaXMuZGF0YS5ub0hUTUw9ITEsIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0saT1lLmdldCgiQ0EiKSxhPUp1KGUuZ2V0QXJyYXkoIklDIiksbnVsbCkscz1hP0h1KGEpOm51bGwsbj1zP2k6bnVsbDtpZigwPT09dGhpcy5ib3JkZXJTdHlsZS53aWR0aCYmIXMpcmV0dXJuO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6YCR7dGhpcy5ib3JkZXJTdHlsZS53aWR0aH0gd2Asc3Ryb2tlQ29sb3I6QSxmaWxsQ29sb3I6cyxzdHJva2VBbHBoYTppLGZpbGxBbHBoYTpuLHBvaW50c0NhbGxiYWNrOihBLGUpPT57Y29uc3QgdD1lWzRdK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixpPWVbNV0rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGE9ZVs2XS1lWzRdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgsbj1lWzNdLWVbN10tdGhpcy5ib3JkZXJTdHlsZS53aWR0aDtyZXR1cm4gQS5wdXNoKGAke3R9ICR7aX0gJHthfSAke259IHJlYCkscz9BLnB1c2goIkIiKTpBLnB1c2goIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV19fSl9fX1jbGFzcyBlZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7aWYodGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTYsIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0saT1lLmdldCgiQ0EiKSxhPUp1KGUuZ2V0QXJyYXkoIklDIiksbnVsbCkscz1hP0h1KGEpOm51bGwsbj1zP2k6bnVsbDtpZigwPT09dGhpcy5ib3JkZXJTdHlsZS53aWR0aCYmIXMpcmV0dXJuO2NvbnN0IHI9NC8zKk1hdGgudGFuKE1hdGguUEkvOCk7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6dCxleHRyYTpgJHt0aGlzLmJvcmRlclN0eWxlLndpZHRofSB3YCxzdHJva2VDb2xvcjpBLGZpbGxDb2xvcjpzLHN0cm9rZUFscGhhOmksZmlsbEFscGhhOm4scG9pbnRzQ2FsbGJhY2s6KEEsZSk9Pntjb25zdCB0PWVbMF0rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGk9ZVsxXS10aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsYT1lWzZdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixuPWVbN10rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGc9dCsoYS10KS8yLG89aSsobi1pKS8yLEk9KGEtdCkvMipyLGM9KG4taSkvMipyO3JldHVybiBBLnB1c2goYCR7Z30gJHtufSBtYCxgJHtnK0l9ICR7bn0gJHthfSAke28rY30gJHthfSAke299IGNgLGAke2F9ICR7by1jfSAke2crSX0gJHtpfSAke2d9ICR7aX0gY2AsYCR7Zy1JfSAke2l9ICR7dH0gJHtvLWN9ICR7dH0gJHtvfSBjYCxgJHt0fSAke28rY30gJHtnLUl9ICR7bn0gJHtnfSAke259IGNgLCJoIikscz9BLnB1c2goIkIiKTpBLnB1c2goIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV19fSl9fX1jbGFzcyB0ZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTgsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMSx0aGlzLmRhdGEudmVydGljZXM9bnVsbCx0aGlzIGluc3RhbmNlb2YgaWR8fCh0aGlzLnNldExpbmVFbmRpbmdzKGUuZ2V0QXJyYXkoIkxFIikpLHRoaXMuZGF0YS5saW5lRW5kaW5ncz10aGlzLmxpbmVFbmRpbmdzKTtjb25zdCBpPWUuZ2V0QXJyYXkoIlZlcnRpY2VzIik7aWYoIXZBKGksbnVsbCkpcmV0dXJuO2NvbnN0IGE9dGhpcy5kYXRhLnZlcnRpY2VzPUZsb2F0MzJBcnJheS5mcm9tKGkpO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IEE9dGhpcy5jb2xvcj9IdSh0aGlzLmNvbG9yKTpbMCwwLDBdLGk9ZS5nZXQoIkNBIikscz10aGlzLmJvcmRlclN0eWxlLndpZHRofHwxLG49MipzLHI9WzEvMCwxLzAsLTEvMCwtMS8wXTtmb3IobGV0IEE9MCxlPWEubGVuZ3RoO0E8ZTtBKz0yKXJbMF09TWF0aC5taW4oclswXSxhW0FdLW4pLHJbMV09TWF0aC5taW4oclsxXSxhW0ErMV0tbiksclsyXT1NYXRoLm1heChyWzJdLGFbQV0rbiksclszXT1NYXRoLm1heChyWzNdLGFbQSsxXStuKTskLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxyKXx8KHRoaXMucmVjdGFuZ2xlPXIpLHRoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6YCR7c30gd2Asc3Ryb2tlQ29sb3I6QSxzdHJva2VBbHBoYTppLHBvaW50c0NhbGxiYWNrOihBLGUpPT57Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSs9MilBLnB1c2goYCR7YVtlXX0gJHthW2UrMV19ICR7MD09PWU/Im0iOiJsIn1gKTtyZXR1cm4gQS5wdXNoKCJTIiksW2VbMF0sZVsyXSxlWzddLGVbM11dfX0pfX19Y2xhc3MgaWQgZXh0ZW5kcyB0ZHtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKSx0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9N319Y2xhc3MgYWQgZXh0ZW5kcyBUdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKSx0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9MTR9fWNsYXNzIHNkIGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHtkaWN0OmUseHJlZjp0fT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xNSx0aGlzLmRhdGEuaW5rTGlzdHM9W10sdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwmJiJJbmtIaWdobGlnaHQiPT09dGhpcy5kYXRhLml0LHRoaXMuZGF0YS5ub0hUTUw9ITEsdGhpcy5kYXRhLm9wYWNpdHk9ZS5nZXQoIkNBIil8fDE7Y29uc3QgaT1lLmdldEFycmF5KCJJbmtMaXN0Iik7aWYoQXJyYXkuaXNBcnJheShpKSl7Zm9yKGxldCBBPTAsZT1pLmxlbmd0aDtBPGU7KytBKXtpZighQXJyYXkuaXNBcnJheShpW0FdKSljb250aW51ZTtjb25zdCBlPW5ldyBGbG9hdDMyQXJyYXkoaVtBXS5sZW5ndGgpO3RoaXMuZGF0YS5pbmtMaXN0cy5wdXNoKGUpO2ZvcihsZXQgYT0wLHM9aVtBXS5sZW5ndGg7YTxzO2ErPTIpe2NvbnN0IHM9dC5mZXRjaElmUmVmKGlbQV1bYV0pLG49dC5mZXRjaElmUmVmKGlbQV1bYSsxXSk7Im51bWJlciI9PXR5cGVvZiBzJiYibnVtYmVyIj09dHlwZW9mIG4mJihlW2FdPXMsZVthKzFdPW4pfX1pZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBBPXRoaXMuY29sb3I/SHUodGhpcy5jb2xvcik6WzAsMCwwXSxpPWUuZ2V0KCJDQSIpLGE9dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MSxzPTIqYSxuPVsxLzAsMS8wLC0xLzAsLTEvMF07Zm9yKGNvbnN0IEEgb2YgdGhpcy5kYXRhLmlua0xpc3RzKWZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrPTIpblswXT1NYXRoLm1pbihuWzBdLEFbZV0tcyksblsxXT1NYXRoLm1pbihuWzFdLEFbZSsxXS1zKSxuWzJdPU1hdGgubWF4KG5bMl0sQVtlXStzKSxuWzNdPU1hdGgubWF4KG5bM10sQVtlKzFdK3MpOyQuaW50ZXJzZWN0KHRoaXMucmVjdGFuZ2xlLG4pfHwodGhpcy5yZWN0YW5nbGU9biksdGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6dCxleHRyYTpgJHthfSB3YCxzdHJva2VDb2xvcjpBLHN0cm9rZUFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGEuaW5rTGlzdHMpe2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrPTIpQS5wdXNoKGAke2VbdF19ICR7ZVt0KzFdfSAkezA9PT10PyJtIjoibCJ9YCk7QS5wdXNoKCJTIil9cmV0dXJuW2VbMF0sZVsyXSxlWzddLGVbM11dfX0pfX19c3RhdGljIGNyZWF0ZU5ld0RpY3QoQSxlLHthcFJlZjp0LGFwOml9KXtjb25zdHtjb2xvcjphLG9wYWNpdHk6cyxwYXRoczpuLG91dGxpbmVzOnIscmVjdDpnLHJvdGF0aW9uOm8sdGhpY2tuZXNzOkl9PUEsYz1uZXcgUUEoZSk7Yy5zZXQoIlR5cGUiLENBLmdldCgiQW5ub3QiKSksYy5zZXQoIlN1YnR5cGUiLENBLmdldCgiSW5rIikpLGMuc2V0KCJDcmVhdGlvbkRhdGUiLGBEOiR7c0EoKX1gKSxjLnNldCgiUmVjdCIsZyksYy5zZXQoIklua0xpc3QiLHI/LnBvaW50c3x8bi5tYXAoKEE9PkEucG9pbnRzKSkpLGMuc2V0KCJGIiw0KSxjLnNldCgiUm90YXRlIixvKSxyJiZjLnNldCgiSVQiLENBLmdldCgiSW5rSGlnaGxpZ2h0IikpO2NvbnN0IGg9bmV3IFFBKGUpO2Muc2V0KCJCUyIsaCksaC5zZXQoIlciLEkpLGMuc2V0KCJDIixBcnJheS5mcm9tKGEsKEE9PkEvMjU1KSkpLGMuc2V0KCJDQSIscyk7Y29uc3QgQz1uZXcgUUEoZSk7cmV0dXJuIGMuc2V0KCJBUCIsQyksdD9DLnNldCgiTiIsdCk6Qy5zZXQoIk4iLGkpLGN9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oQSxlLHQpe2lmKEEub3V0bGluZXMpcmV0dXJuIHRoaXMuY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbUZvckhpZ2hsaWdodChBLGUsdCk7Y29uc3R7Y29sb3I6aSxyZWN0OmEscGF0aHM6cyx0aGlja25lc3M6bixvcGFjaXR5OnJ9PUEsZz1bYCR7bn0gdyAxIEogMSBqYCxgJHttZyhpLCExKX1gXTsxIT09ciYmZy5wdXNoKCIvUjAgZ3MiKTtjb25zdCBvPVtdO2Zvcihjb25zdHtiZXppZXI6QX1vZiBzKXtpZihvLmxlbmd0aD0wLG8ucHVzaChgJHtlZShBWzBdKX0gJHtlZShBWzFdKX0gbWApLDI9PT1BLmxlbmd0aClvLnB1c2goYCR7ZWUoQVswXSl9ICR7ZWUoQVsxXSl9IGwgU2ApO2Vsc2V7Zm9yKGxldCBlPTIsdD1BLmxlbmd0aDtlPHQ7ZSs9Nil7Y29uc3QgdD1BLnNsaWNlKGUsZSs2KS5tYXAoZWUpLmpvaW4oIiAiKTtvLnB1c2goYCR7dH0gY2ApfW8ucHVzaCgiUyIpfWcucHVzaChvLmpvaW4oIlxuIikpfWNvbnN0IEk9Zy5qb2luKCJcbiIpLGM9bmV3IFFBKGUpO2lmKGMuc2V0KCJGb3JtVHlwZSIsMSksYy5zZXQoIlN1YnR5cGUiLENBLmdldCgiRm9ybSIpKSxjLnNldCgiVHlwZSIsQ0EuZ2V0KCJYT2JqZWN0IikpLGMuc2V0KCJCQm94IixhKSxjLnNldCgiTGVuZ3RoIixJLmxlbmd0aCksMSE9PXIpe2NvbnN0IEE9bmV3IFFBKGUpLHQ9bmV3IFFBKGUpLGk9bmV3IFFBKGUpO2kuc2V0KCJDQSIsciksaS5zZXQoIlR5cGUiLENBLmdldCgiRXh0R1N0YXRlIikpLHQuc2V0KCJSMCIsaSksQS5zZXQoIkV4dEdTdGF0ZSIsdCksYy5zZXQoIlJlc291cmNlcyIsQSl9Y29uc3QgaD1uZXcgb2UoSSk7cmV0dXJuIGguZGljdD1jLGh9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW1Gb3JIaWdobGlnaHQoQSxlLHQpe2NvbnN0e2NvbG9yOmkscmVjdDphLG91dGxpbmVzOntvdXRsaW5lOnN9LG9wYWNpdHk6bn09QSxyPVtgJHttZyhpLCEwKX1gLCIvUjAgZ3MiXTtyLnB1c2goYCR7ZWUoc1s0XSl9ICR7ZWUoc1s1XSl9IG1gKTtmb3IobGV0IEE9NixlPXMubGVuZ3RoO0E8ZTtBKz02KWlmKGlzTmFOKHNbQV0pfHxudWxsPT09c1tBXSlyLnB1c2goYCR7ZWUoc1tBKzRdKX0gJHtlZShzW0ErNV0pfSBsYCk7ZWxzZXtjb25zdCBlPXMuc2xpY2UoQSxBKzYpLm1hcChlZSkuam9pbigiICIpO3IucHVzaChgJHtlfSBjYCl9ci5wdXNoKCJoIGYiKTtjb25zdCBnPXIuam9pbigiXG4iKSxvPW5ldyBRQShlKTtvLnNldCgiRm9ybVR5cGUiLDEpLG8uc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZvcm0iKSksby5zZXQoIlR5cGUiLENBLmdldCgiWE9iamVjdCIpKSxvLnNldCgiQkJveCIsYSksby5zZXQoIkxlbmd0aCIsZy5sZW5ndGgpO2NvbnN0IEk9bmV3IFFBKGUpLGM9bmV3IFFBKGUpO0kuc2V0KCJFeHRHU3RhdGUiLGMpLG8uc2V0KCJSZXNvdXJjZXMiLEkpO2NvbnN0IGg9bmV3IFFBKGUpO2Muc2V0KCJSMCIsaCksaC5zZXQoIkJNIixDQS5nZXQoIk11bHRpcGx5IikpLDEhPT1uJiYoaC5zZXQoImNhIixuKSxoLnNldCgiVHlwZSIsQ0EuZ2V0KCJFeHRHU3RhdGUiKSkpO2NvbnN0IEM9bmV3IG9lKGcpO3JldHVybiBDLmRpY3Q9byxDfX1jbGFzcyBuZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7aWYodGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTksdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwsdGhpcy5kYXRhLm5vSFRNTD0hMSx0aGlzLmRhdGEub3BhY2l0eT1lLmdldCgiQ0EiKXx8MSx0aGlzLmRhdGEucXVhZFBvaW50cz1ZdShlLG51bGwpKXtjb25zdCBBPXRoaXMuYXBwZWFyYW5jZT8uZGljdC5nZXQoIlJlc291cmNlcyIpO2lmKCF0aGlzLmFwcGVhcmFuY2V8fCFBPy5oYXMoIkV4dEdTdGF0ZSIpKXt0aGlzLmFwcGVhcmFuY2UmJlUoIkhpZ2hsaWdodEFubm90YXRpb24gLSBpZ25vcmluZyBidWlsdC1pbiBhcHBlYXJhbmNlIHN0cmVhbS4iKTtjb25zdCBBPXRoaXMuY29sb3I/SHUodGhpcy5jb2xvcik6WzEsMSwwXSxpPWUuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZmlsbENvbG9yOkEsYmxlbmRNb2RlOiJNdWx0aXBseSIsZmlsbEFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9PihBLnB1c2goYCR7ZVswXX0gJHtlWzFdfSBtYCxgJHtlWzJdfSAke2VbM119IGxgLGAke2VbNl19ICR7ZVs3XX0gbGAsYCR7ZVs0XX0gJHtlWzVdfSBsYCwiZiIpLFtlWzBdLGVbMl0sZVs3XSxlWzNdXSl9KX19ZWxzZSB0aGlzLmRhdGEucG9wdXBSZWY9bnVsbH1zdGF0aWMgY3JlYXRlTmV3RGljdChBLGUse2FwUmVmOnQsYXA6aX0pe2NvbnN0e2NvbG9yOmEsb2xkQW5ub3RhdGlvbjpzLG9wYWNpdHk6bixyZWN0OnIscm90YXRpb246Zyx1c2VyOm8scXVhZFBvaW50czpJfT1BLGM9c3x8bmV3IFFBKGUpO2lmKGMuc2V0KCJUeXBlIixDQS5nZXQoIkFubm90IikpLGMuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkhpZ2hsaWdodCIpKSxjLnNldChzPyJNIjoiQ3JlYXRpb25EYXRlIixgRDoke3NBKCl9YCksYy5zZXQoIkNyZWF0aW9uRGF0ZSIsYEQ6JHtzQSgpfWApLGMuc2V0KCJSZWN0IixyKSxjLnNldCgiRiIsNCksYy5zZXQoIkJvcmRlciIsWzAsMCwwXSksYy5zZXQoIlJvdGF0ZSIsZyksYy5zZXQoIlF1YWRQb2ludHMiLEkpLGMuc2V0KCJDIixBcnJheS5mcm9tKGEsKEE9PkEvMjU1KSkpLGMuc2V0KCJDQSIsbiksbyYmYy5zZXQoIlQiLGllKG8pKSx0fHxpKXtjb25zdCBBPW5ldyBRQShlKTtjLnNldCgiQVAiLEEpLEEuc2V0KCJOIix0fHxpKX1yZXR1cm4gY31zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShBLGUsdCl7Y29uc3R7Y29sb3I6aSxyZWN0OmEsb3V0bGluZXM6cyxvcGFjaXR5Om59PUEscj1bYCR7bWcoaSwhMCl9YCwiL1IwIGdzIl0sZz1bXTtmb3IoY29uc3QgQSBvZiBzKXtnLmxlbmd0aD0wLGcucHVzaChgJHtlZShBWzBdKX0gJHtlZShBWzFdKX0gbWApO2ZvcihsZXQgZT0yLHQ9QS5sZW5ndGg7ZTx0O2UrPTIpZy5wdXNoKGAke2VlKEFbZV0pfSAke2VlKEFbZSsxXSl9IGxgKTtnLnB1c2goImgiKSxyLnB1c2goZy5qb2luKCJcbiIpKX1yLnB1c2goImYqIik7Y29uc3Qgbz1yLmpvaW4oIlxuIiksST1uZXcgUUEoZSk7SS5zZXQoIkZvcm1UeXBlIiwxKSxJLnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJGb3JtIikpLEkuc2V0KCJUeXBlIixDQS5nZXQoIlhPYmplY3QiKSksSS5zZXQoIkJCb3giLGEpLEkuc2V0KCJMZW5ndGgiLG8ubGVuZ3RoKTtjb25zdCBjPW5ldyBRQShlKSxoPW5ldyBRQShlKTtjLnNldCgiRXh0R1N0YXRlIixoKSxJLnNldCgiUmVzb3VyY2VzIixjKTtjb25zdCBDPW5ldyBRQShlKTtoLnNldCgiUjAiLEMpLEMuc2V0KCJCTSIsQ0EuZ2V0KCJNdWx0aXBseSIpKSwxIT09biYmKEMuc2V0KCJjYSIsbiksQy5zZXQoIlR5cGUiLENBLmdldCgiRXh0R1N0YXRlIikpKTtjb25zdCBCPW5ldyBvZShvKTtyZXR1cm4gQi5kaWN0PUksQn19Y2xhc3MgcmQgZXh0ZW5kcyBUdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmUseHJlZjp0fT1BO2lmKHRoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xMCx0aGlzLmRhdGEucXVhZFBvaW50cz1ZdShlLG51bGwpKXtpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBBPXRoaXMuY29sb3I/SHUodGhpcy5jb2xvcik6WzAsMCwwXSxpPWUuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6IltdIDAgZCAwLjU3MSB3IixzdHJva2VDb2xvcjpBLHN0cm9rZUFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9PihBLnB1c2goYCR7ZVs0XX0gJHtlWzVdKzEuM30gbWAsYCR7ZVs2XX0gJHtlWzddKzEuM30gbGAsIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV0pfSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9fWNsYXNzIGdkIGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSk7Y29uc3R7ZGljdDplLHhyZWY6dH09QTtpZih0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9MTEsdGhpcy5kYXRhLnF1YWRQb2ludHM9WXUoZSxudWxsKSl7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0saT1lLmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjp0LGV4dHJhOiJbXSAwIGQgMSB3IixzdHJva2VDb2xvcjpBLHN0cm9rZUFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9Pntjb25zdCB0PShlWzFdLWVbNV0pLzY7bGV0IGk9dCxhPWVbNF07Y29uc3Qgcz1lWzVdLG49ZVs2XTtBLnB1c2goYCR7YX0gJHtzK2l9IG1gKTtkb3thKz0yLGk9MD09PWk/dDowLEEucHVzaChgJHthfSAke3MraX0gbGApfXdoaWxlKGE8bik7cmV0dXJuIEEucHVzaCgiUyIpLFtlWzRdLG4scy0yKnQscysyKnRdfX0pfX1lbHNlIHRoaXMuZGF0YS5wb3B1cFJlZj1udWxsfX1jbGFzcyBvZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7aWYodGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTEyLHRoaXMuZGF0YS5xdWFkUG9pbnRzPVl1KGUsbnVsbCkpe2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IEE9dGhpcy5jb2xvcj9IdSh0aGlzLmNvbG9yKTpbMCwwLDBdLGk9ZS5nZXQoIkNBIik7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6dCxleHRyYToiW10gMCBkIDEgdyIsc3Ryb2tlQ29sb3I6QSxzdHJva2VBbHBoYTppLHBvaW50c0NhbGxiYWNrOihBLGUpPT4oQS5wdXNoKChlWzBdK2VbNF0pLzIrIiAiKyhlWzFdK2VbNV0pLzIrIiBtIiwoZVsyXStlWzZdKS8yKyIgIisoZVszXStlWzddKS8yKyIgbCIsIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV0pfSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9fWNsYXNzIElkIGV4dGVuZHMgVHV7I3E7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTEzLHRoaXMuI3E9dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwsdGhpcy5kYXRhLm5vSFRNTD0hMX1tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhBLGU9bnVsbCl7cmV0dXJuIEE/ISF0aGlzLmRhdGEuaXNFZGl0YWJsZSYmKHRoaXMuI3E9dGhpcy5kYXRhLmhhc093bkNhbnZhcyx0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSEwLCEwKToodGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLiNxLCFlPy5oYXModGhpcy5kYXRhLmlkKSl9c3RhdGljIGFzeW5jIGNyZWF0ZUltYWdlKEEsZSl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6aX09QSxhPW5ldyBPZmZzY3JlZW5DYW52YXModCxpKSxzPWEuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMH0pO3MuZHJhd0ltYWdlKEEsMCwwKTtjb25zdCBuPXMuZ2V0SW1hZ2VEYXRhKDAsMCx0LGkpLmRhdGEscj1uZXcgVWludDMyQXJyYXkobi5idWZmZXIpLGc9ci5zb21lKF8uaXNMaXR0bGVFbmRpYW4/QT0+QT4+PjI0IT0yNTU6QT0+MjU1IT0oMjU1JkEpKTtnJiYocy5maWxsU3R5bGU9IndoaXRlIixzLmZpbGxSZWN0KDAsMCx0LGkpLHMuZHJhd0ltYWdlKEEsMCwwKSk7Y29uc3Qgbz1hLmNvbnZlcnRUb0Jsb2Ioe3R5cGU6ImltYWdlL2pwZWciLHF1YWxpdHk6MX0pLnRoZW4oKEE9PkEuYXJyYXlCdWZmZXIoKSkpLEk9Q0EuZ2V0KCJYT2JqZWN0IiksYz1DQS5nZXQoIkltYWdlIiksaD1uZXcgUUEoZSk7aC5zZXQoIlR5cGUiLEkpLGguc2V0KCJTdWJ0eXBlIixjKSxoLnNldCgiQml0c1BlckNvbXBvbmVudCIsOCksaC5zZXQoIkNvbG9yU3BhY2UiLENBLmdldCgiRGV2aWNlUkdCIikpLGguc2V0KCJGaWx0ZXIiLENBLmdldCgiRENURGVjb2RlIikpLGguc2V0KCJCQm94IixbMCwwLHQsaV0pLGguc2V0KCJXaWR0aCIsdCksaC5zZXQoIkhlaWdodCIsaSk7bGV0IEM9bnVsbDtpZihnKXtjb25zdCBBPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKTtpZihfLmlzTGl0dGxlRW5kaWFuKWZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKylBW2VdPXJbZV0+Pj4yNDtlbHNlIGZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKylBW2VdPTI1NSZyW2VdO2NvbnN0IGE9bmV3IFFBKGUpO2Euc2V0KCJUeXBlIixJKSxhLnNldCgiU3VidHlwZSIsYyksYS5zZXQoIkJpdHNQZXJDb21wb25lbnQiLDgpLGEuc2V0KCJDb2xvclNwYWNlIixDQS5nZXQoIkRldmljZUdyYXkiKSksYS5zZXQoIldpZHRoIix0KSxhLnNldCgiSGVpZ2h0IixpKSxDPW5ldyBnZShBLDAsMCxhKX1yZXR1cm57aW1hZ2VTdHJlYW06bmV3IGdlKGF3YWl0IG8sMCwwLGgpLHNtYXNrU3RyZWFtOkMsd2lkdGg6dCxoZWlnaHQ6aX19c3RhdGljIGNyZWF0ZU5ld0RpY3QoQSxlLHthcFJlZjp0LGFwOml9KXtjb25zdHtvbGRBbm5vdGF0aW9uOmEscmVjdDpzLHJvdGF0aW9uOm4sdXNlcjpyfT1BLGc9YXx8bmV3IFFBKGUpO2lmKGcuc2V0KCJUeXBlIixDQS5nZXQoIkFubm90IikpLGcuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlN0YW1wIikpLGcuc2V0KGE/Ik0iOiJDcmVhdGlvbkRhdGUiLGBEOiR7c0EoKX1gKSxnLnNldCgiQ3JlYXRpb25EYXRlIixgRDoke3NBKCl9YCksZy5zZXQoIlJlY3QiLHMpLGcuc2V0KCJGIiw0KSxnLnNldCgiQm9yZGVyIixbMCwwLDBdKSxnLnNldCgiUm90YXRlIixuKSxyJiZnLnNldCgiVCIsaWUocikpLHR8fGkpe2NvbnN0IEE9bmV3IFFBKGUpO2cuc2V0KCJBUCIsQSksdD9BLnNldCgiTiIsdCk6QS5zZXQoIk4iLGkpfXJldHVybiBnfXN0YXRpYyBhc3luYyBjcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKEEsZSx0KXtpZihBLm9sZEFubm90YXRpb24pcmV0dXJuIG51bGw7Y29uc3R7cm90YXRpb246aX09QSx7aW1hZ2VSZWY6YSx3aWR0aDpzLGhlaWdodDpufT10LmltYWdlLHI9bmV3IFFBKGUpLGc9bmV3IFFBKGUpO3Iuc2V0KCJYT2JqZWN0IixnKSxnLnNldCgiSW0wIixhKTtjb25zdCBvPWBxICR7c30gMCAwICR7bn0gMCAwIGNtIC9JbTAgRG8gUWAsST1uZXcgUUEoZSk7aWYoSS5zZXQoIkZvcm1UeXBlIiwxKSxJLnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJGb3JtIikpLEkuc2V0KCJUeXBlIixDQS5nZXQoIlhPYmplY3QiKSksSS5zZXQoIkJCb3giLFswLDAscyxuXSksSS5zZXQoIlJlc291cmNlcyIsciksaSl7Y29uc3QgQT1uZShpLHMsbik7SS5zZXQoIk1hdHJpeCIsQSl9Y29uc3QgYz1uZXcgb2Uobyk7cmV0dXJuIGMuZGljdD1JLGN9fWNsYXNzIGNkIGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSk7Y29uc3R7ZGljdDplLHhyZWY6dH09QSxpPW5ldyBTZyhlLmdldCgiRlMiKSx0KTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9MTcsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMSx0aGlzLmRhdGEuZmlsZT1pLnNlcmlhbGl6YWJsZTtjb25zdCBhPWUuZ2V0KCJOYW1lIik7dGhpcy5kYXRhLm5hbWU9YSBpbnN0YW5jZW9mIENBP2VBKGEubmFtZSk6IlB1c2hQaW4iO2NvbnN0IHM9ZS5nZXQoImNhIik7dGhpcy5kYXRhLmZpbGxBbHBoYT0ibnVtYmVyIj09dHlwZW9mIHMmJnM+PTAmJnM8PTE/czpudWxsfX1mdW5jdGlvbiBoZChBKXt0cnl7cmV0dXJuIHRBKEEpfWNhdGNoKGUpe3JldHVybiBVKGBVVEYtOCBkZWNvZGluZyBmYWlsZWQ6ICIke2V9Ii5gKSxBfX1jbGFzcyBDZCBleHRlbmRzIHhne2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMubm9kZT1udWxsfW9uRW5kRWxlbWVudChBKXtjb25zdCBlPXN1cGVyLm9uRW5kRWxlbWVudChBKTtpZihlJiYieGZhOmRhdGFzZXRzIj09PUEpdGhyb3cgdGhpcy5ub2RlPWUsbmV3IEVycm9yKCJBYm9ydGluZyBEYXRhc2V0WE1MUGFyc2VyLiIpfX1jbGFzcyBCZHtjb25zdHJ1Y3RvcihBKXtpZihBLmRhdGFzZXRzKXRoaXMubm9kZT1uZXcgeGcoe2hhc0F0dHJpYnV0ZXM6ITB9KS5wYXJzZUZyb21TdHJpbmcoQS5kYXRhc2V0cykuZG9jdW1lbnRFbGVtZW50O2Vsc2V7Y29uc3QgZT1uZXcgQ2Qoe2hhc0F0dHJpYnV0ZXM6ITB9KTt0cnl7ZS5wYXJzZUZyb21TdHJpbmcoQVsieGRwOnhkcCJdKX1jYXRjaHt9dGhpcy5ub2RlPWUubm9kZX19Z2V0VmFsdWUoQSl7aWYoIXRoaXMubm9kZXx8IUEpcmV0dXJuIiI7Y29uc3QgZT10aGlzLm5vZGUuc2VhcmNoTm9kZShQQShBKSwwKTtpZighZSlyZXR1cm4iIjtjb25zdCB0PWUuZmlyc3RDaGlsZDtyZXR1cm4idmFsdWUiPT09dD8ubm9kZU5hbWU/ZS5jaGlsZHJlbi5tYXAoKEE9PmhkKEEudGV4dENvbnRlbnQpKSk6aGQoZS50ZXh0Q29udGVudCl9fWNsYXNzIGxkeyNUPW51bGw7Y29uc3RydWN0b3IoQSxlKXt0aGlzLnN0cmVhbT1BLHRoaXMucGRmTWFuYWdlcj1lLHRoaXMuZW50cmllcz1bXSx0aGlzLl94cmVmU3Rtcz1uZXcgU2V0LHRoaXMuX2NhY2hlTWFwPW5ldyBNYXAsdGhpcy5fcGVuZGluZ1JlZnM9bmV3IHVBLHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW09bnVsbCx0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09bnVsbCx0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW51bGx9Z2V0TmV3UGVyc2lzdGVudFJlZihBKXtudWxsPT09dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bSYmKHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW09dGhpcy5lbnRyaWVzLmxlbmd0aHx8MSk7Y29uc3QgZT10aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtKys7cmV0dXJuIHRoaXMuX2NhY2hlTWFwLnNldChlLEEpLEVBLmdldChlLDApfWdldE5ld1RlbXBvcmFyeVJlZigpe2lmKG51bGw9PT10aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW0mJih0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09dGhpcy5lbnRyaWVzLmxlbmd0aHx8MSx0aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtKSl7dGhpcy5fcGVyc2lzdGVudFJlZnNDYWNoZT1uZXcgTWFwO2ZvcihsZXQgQT10aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW07QTx0aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtO0ErKyl0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlLnNldChBLHRoaXMuX2NhY2hlTWFwLmdldChBKSksdGhpcy5fY2FjaGVNYXAuZGVsZXRlKEEpfXJldHVybiBFQS5nZXQodGhpcy5fbmV3VGVtcG9yYXJ5UmVmTnVtKyssMCl9cmVzZXROZXdUZW1wb3JhcnlSZWYoKXtpZih0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09bnVsbCx0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlKWZvcihjb25zdFtBLGVdb2YgdGhpcy5fcGVyc2lzdGVudFJlZnNDYWNoZSl0aGlzLl9jYWNoZU1hcC5zZXQoQSxlKTt0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW51bGx9c2V0U3RhcnRYUmVmKEEpe3RoaXMuc3RhcnRYUmVmUXVldWU9W0FdfXBhcnNlKEE9ITEpe2xldCBlLHQsaTtBPyhVKCJJbmRleGluZyBhbGwgUERGIG9iamVjdHMiKSxlPXRoaXMuaW5kZXhPYmplY3RzKCkpOmU9dGhpcy5yZWFkWFJlZigpLGUuYXNzaWduWHJlZih0aGlzKSx0aGlzLnRyYWlsZXI9ZTt0cnl7dD1lLmdldCgiRW5jcnlwdCIpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoYFhSZWYucGFyc2UgLSBJbnZhbGlkICJFbmNyeXB0IiByZWZlcmVuY2U6ICIke0F9Ii5gKX1pZih0IGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9ZS5nZXQoIklEIiksaT1BPy5sZW5ndGg/QVswXToiIjt0LnN1cHByZXNzRW5jcnlwdGlvbj0hMCx0aGlzLmVuY3J5cHQ9bmV3IGpnKHQsaSx0aGlzLnBkZk1hbmFnZXIucGFzc3dvcmQpfXRyeXtpPWUuZ2V0KCJSb290Iil9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7VShgWFJlZi5wYXJzZSAtIEludmFsaWQgIlJvb3QiIHJlZmVyZW5jZTogIiR7QX0iLmApfWlmKGkgaW5zdGFuY2VvZiBRQSl0cnl7aWYoaS5nZXQoIlBhZ2VzIilpbnN0YW5jZW9mIFFBKXJldHVybiB2b2lkKHRoaXMucm9vdD1pKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTtVKGBYUmVmLnBhcnNlIC0gSW52YWxpZCAiUGFnZXMiIHJlZmVyZW5jZTogIiR7QX0iLmApfWlmKCFBKXRocm93IG5ldyBSQTt0aHJvdyBuZXcgcSgiSW52YWxpZCBSb290IHJlZmVyZW5jZS4iKX1wcm9jZXNzWFJlZlRhYmxlKEEpe2lmKCJ0YWJsZVN0YXRlImluIHRoaXN8fCh0aGlzLnRhYmxlU3RhdGU9e2VudHJ5TnVtOjAsc3RyZWFtUG9zOkEubGV4ZXIuc3RyZWFtLnBvcyxwYXJzZXJCdWYxOkEuYnVmMSxwYXJzZXJCdWYyOkEuYnVmMn0pLCFwQSh0aGlzLnJlYWRYUmVmVGFibGUoQSksInRyYWlsZXIiKSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHRhYmxlOiBjb3VsZCBub3QgZmluZCB0cmFpbGVyIGRpY3Rpb25hcnkiKTtsZXQgZT1BLmdldE9iaigpO2lmKGUgaW5zdGFuY2VvZiBRQXx8IWUuZGljdHx8KGU9ZS5kaWN0KSwhKGUgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiB0YWJsZTogY291bGQgbm90IHBhcnNlIHRyYWlsZXIgZGljdGlvbmFyeSIpO3JldHVybiBkZWxldGUgdGhpcy50YWJsZVN0YXRlLGV9cmVhZFhSZWZUYWJsZShBKXtjb25zdCBlPUEubGV4ZXIuc3RyZWFtLHQ9dGhpcy50YWJsZVN0YXRlO2xldCBpO2ZvcihlLnBvcz10LnN0cmVhbVBvcyxBLmJ1ZjE9dC5wYXJzZXJCdWYxLEEuYnVmMj10LnBhcnNlckJ1ZjI7Oyl7aWYoISgiZmlyc3RFbnRyeU51bSJpbiB0KXx8ISgiZW50cnlDb3VudCJpbiB0KSl7aWYocEEoaT1BLmdldE9iaigpLCJ0cmFpbGVyIikpYnJlYWs7dC5maXJzdEVudHJ5TnVtPWksdC5lbnRyeUNvdW50PUEuZ2V0T2JqKCl9bGV0IGE9dC5maXJzdEVudHJ5TnVtO2NvbnN0IHM9dC5lbnRyeUNvdW50O2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHRhYmxlOiB3cm9uZyB0eXBlcyBpbiBzdWJzZWN0aW9uIGhlYWRlciIpO2ZvcihsZXQgaT10LmVudHJ5TnVtO2k8cztpKyspe3Quc3RyZWFtUG9zPWUucG9zLHQuZW50cnlOdW09aSx0LnBhcnNlckJ1ZjE9QS5idWYxLHQucGFyc2VyQnVmMj1BLmJ1ZjI7Y29uc3Qgbj17fTtuLm9mZnNldD1BLmdldE9iaigpLG4uZ2VuPUEuZ2V0T2JqKCk7Y29uc3Qgcj1BLmdldE9iaigpO2lmKHIgaW5zdGFuY2VvZiBCQSlzd2l0Y2goci5jbWQpe2Nhc2UiZiI6bi5mcmVlPSEwO2JyZWFrO2Nhc2UibiI6bi51bmNvbXByZXNzZWQ9ITB9aWYoIU51bWJlci5pc0ludGVnZXIobi5vZmZzZXQpfHwhTnVtYmVyLmlzSW50ZWdlcihuLmdlbil8fCFuLmZyZWUmJiFuLnVuY29tcHJlc3NlZCl0aHJvdyBuZXcgVyhgSW52YWxpZCBlbnRyeSBpbiBYUmVmIHN1YnNlY3Rpb246ICR7YX0sICR7c31gKTswPT09aSYmbi5mcmVlJiYxPT09YSYmKGE9MCksdGhpcy5lbnRyaWVzW2krYV18fCh0aGlzLmVudHJpZXNbaSthXT1uKX10LmVudHJ5TnVtPTAsdC5zdHJlYW1Qb3M9ZS5wb3MsdC5wYXJzZXJCdWYxPUEuYnVmMSx0LnBhcnNlckJ1ZjI9QS5idWYyLGRlbGV0ZSB0LmZpcnN0RW50cnlOdW0sZGVsZXRlIHQuZW50cnlDb3VudH1pZih0aGlzLmVudHJpZXNbMF0mJiF0aGlzLmVudHJpZXNbMF0uZnJlZSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHRhYmxlOiB1bmV4cGVjdGVkIGZpcnN0IG9iamVjdCIpO3JldHVybiBpfXByb2Nlc3NYUmVmU3RyZWFtKEEpe2lmKCEoInN0cmVhbVN0YXRlImluIHRoaXMpKXtjb25zdCBlPUEuZGljdCx0PWUuZ2V0KCJXIik7bGV0IGk9ZS5nZXQoIkluZGV4Iik7aXx8KGk9WzAsZS5nZXQoIlNpemUiKV0pLHRoaXMuc3RyZWFtU3RhdGU9e2VudHJ5UmFuZ2VzOmksYnl0ZVdpZHRoczp0LGVudHJ5TnVtOjAsc3RyZWFtUG9zOkEucG9zfX1yZXR1cm4gdGhpcy5yZWFkWFJlZlN0cmVhbShBKSxkZWxldGUgdGhpcy5zdHJlYW1TdGF0ZSxBLmRpY3R9cmVhZFhSZWZTdHJlYW0oQSl7Y29uc3QgZT10aGlzLnN0cmVhbVN0YXRlO0EucG9zPWUuc3RyZWFtUG9zO2NvbnN0W3QsaSxhXT1lLmJ5dGVXaWR0aHMscz1lLmVudHJ5UmFuZ2VzO2Zvcig7cy5sZW5ndGg+MDspe2NvbnN0W24scl09cztpZighTnVtYmVyLmlzSW50ZWdlcihuKXx8IU51bWJlci5pc0ludGVnZXIocikpdGhyb3cgbmV3IFcoYEludmFsaWQgWFJlZiByYW5nZSBmaWVsZHM6ICR7bn0sICR7cn1gKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KXx8IU51bWJlci5pc0ludGVnZXIoaSl8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpKXRocm93IG5ldyBXKGBJbnZhbGlkIFhSZWYgZW50cnkgZmllbGRzIGxlbmd0aDogJHtufSwgJHtyfWApO2ZvcihsZXQgcz1lLmVudHJ5TnVtO3M8cjsrK3Mpe2UuZW50cnlOdW09cyxlLnN0cmVhbVBvcz1BLnBvcztsZXQgcj0wLGc9MCxvPTA7Zm9yKGxldCBlPTA7ZTx0OysrZSl7Y29uc3QgZT1BLmdldEJ5dGUoKTtpZigtMT09PWUpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICd0eXBlJy4iKTtyPXI8PDh8ZX0wPT09dCYmKHI9MSk7Zm9yKGxldCBlPTA7ZTxpOysrZSl7Y29uc3QgZT1BLmdldEJ5dGUoKTtpZigtMT09PWUpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICdvZmZzZXQnLiIpO2c9Zzw8OHxlfWZvcihsZXQgZT0wO2U8YTsrK2Upe2NvbnN0IGU9QS5nZXRCeXRlKCk7aWYoLTE9PT1lKXRocm93IG5ldyBXKCJJbnZhbGlkIFhSZWYgYnl0ZVdpZHRocyAnZ2VuZXJhdGlvbicuIik7bz1vPDw4fGV9Y29uc3QgST17fTtzd2l0Y2goSS5vZmZzZXQ9ZyxJLmdlbj1vLHIpe2Nhc2UgMDpJLmZyZWU9ITA7YnJlYWs7Y2FzZSAxOkkudW5jb21wcmVzc2VkPSEwO2JyZWFrO2Nhc2UgMjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBJbnZhbGlkIFhSZWYgZW50cnkgdHlwZTogJHtyfWApfXRoaXMuZW50cmllc1tuK3NdfHwodGhpcy5lbnRyaWVzW24rc109SSl9ZS5lbnRyeU51bT0wLGUuc3RyZWFtUG9zPUEucG9zLHMuc3BsaWNlKDAsMil9fWluZGV4T2JqZWN0cygpe2Z1bmN0aW9uIEEoQSxlKXtsZXQgdD0iIixpPUFbZV07Zm9yKDsxMCE9PWkmJjEzIT09aSYmNjAhPT1pJiYhKCsrZT49QS5sZW5ndGgpOyl0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpLGk9QVtlXTtyZXR1cm4gdH1mdW5jdGlvbiBlKEEsZSx0KXtjb25zdCBpPXQubGVuZ3RoLGE9QS5sZW5ndGg7bGV0IHM9MDtmb3IoO2U8YTspe2xldCBhPTA7Zm9yKDthPGkmJkFbZSthXT09PXRbYV07KSsrYTtpZihhPj1pKWJyZWFrO2UrKyxzKyt9cmV0dXJuIHN9Y29uc3QgdD0vXGIoZW5kb2JqfFxkK1xzK1xkK1xzK29ianx4cmVmfHRyYWlsZXJccyo8PClcYi9nLGk9L1xiKHN0YXJ0eHJlZnxcZCtccytcZCtccytvYmopXGIvZyxhPS9eKFxkKylccysoXGQrKVxzK29ialxiLyxzPW5ldyBVaW50OEFycmF5KFsxMTYsMTE0LDk3LDEwNSwxMDgsMTAxLDExNF0pLG49bmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsOTcsMTE0LDExNiwxMjAsMTE0LDEwMSwxMDJdKSxyPW5ldyBVaW50OEFycmF5KFs0Nyw4OCw4MiwxMDEsMTAyXSk7dGhpcy5lbnRyaWVzLmxlbmd0aD0wLHRoaXMuX2NhY2hlTWFwLmNsZWFyKCk7Y29uc3QgZz10aGlzLnN0cmVhbTtnLnBvcz0wO2NvbnN0IG89Zy5nZXRCeXRlcygpLEk9WihvKSxjPW8ubGVuZ3RoO2xldCBoPWcuc3RhcnQ7Y29uc3QgQz1bXSxCPVtdO2Zvcig7aDxjOyl7bGV0IGw9b1toXTtpZig5PT09bHx8MTA9PT1sfHwxMz09PWx8fDMyPT09bCl7KytoO2NvbnRpbnVlfWlmKDM3PT09bCl7ZG97aWYoKytoLGg+PWMpYnJlYWs7bD1vW2hdfXdoaWxlKDEwIT09bCYmMTMhPT1sKTtjb250aW51ZX1jb25zdCBRPUEobyxoKTtsZXQgRTtpZihRLnN0YXJ0c1dpdGgoInhyZWYiKSYmKDQ9PT1RLmxlbmd0aHx8L1xzLy50ZXN0KFFbNF0pKSloKz1lKG8saCxzKSxDLnB1c2goaCksaCs9ZShvLGgsbik7ZWxzZSBpZihFPWEuZXhlYyhRKSl7Y29uc3QgQT0wfEVbMV0saT0wfEVbMl0sYT1oK1EubGVuZ3RoO2xldCBzLG49ITE7aWYodGhpcy5lbnRyaWVzW0FdKXtpZih0aGlzLmVudHJpZXNbQV0uZ2VuPT09aSl0cnl7bmV3IGdpKHtsZXhlcjpuZXcgY2koZy5tYWtlU3ViU3RyZWFtKGEpKX0pLmdldE9iaigpLG49ITB9Y2F0Y2goQSl7QSBpbnN0YW5jZW9mIEZBP1UoYGluZGV4T2JqZWN0cyAtLSBjaGVja2luZyBvYmplY3QgKCR7UX0pOiAiJHtBfSIuYCk6bj0hMH19ZWxzZSBuPSEwO24mJih0aGlzLmVudHJpZXNbQV09e29mZnNldDpoLWcuc3RhcnQsZ2VuOmksdW5jb21wcmVzc2VkOiEwfSksdC5sYXN0SW5kZXg9YTtjb25zdCBDPXQuZXhlYyhJKTtDPyhzPXQubGFzdEluZGV4KzEtaCwiZW5kb2JqIiE9PUNbMV0mJihVKGBpbmRleE9iamVjdHM6IEZvdW5kICIke0NbMV19IiBpbnNpZGUgb2YgYW5vdGhlciAib2JqIiwgY2F1c2VkIGJ5IG1pc3NpbmcgImVuZG9iaiIgLS0gdHJ5aW5nIHRvIHJlY292ZXIuYCkscy09Q1sxXS5sZW5ndGgrMSkpOnM9Yy1oO2NvbnN0IGw9by5zdWJhcnJheShoLGgrcyksdT1lKGwsMCxyKTt1PHMmJmxbdSs1XTw2NCYmKEIucHVzaChoLWcuc3RhcnQpLHRoaXMuX3hyZWZTdG1zLmFkZChoLWcuc3RhcnQpKSxoKz1zfWVsc2UgaWYoUS5zdGFydHNXaXRoKCJ0cmFpbGVyIikmJig3PT09US5sZW5ndGh8fC9ccy8udGVzdChRWzddKSkpe0MucHVzaChoKTtjb25zdCBBPWgrUS5sZW5ndGg7bGV0IGU7aS5sYXN0SW5kZXg9QTtjb25zdCB0PWkuZXhlYyhJKTt0PyhlPWkubGFzdEluZGV4KzEtaCwic3RhcnR4cmVmIiE9PXRbMV0mJihVKGBpbmRleE9iamVjdHM6IEZvdW5kICIke3RbMV19IiBhZnRlciAidHJhaWxlciIsIGNhdXNlZCBieSBtaXNzaW5nICJzdGFydHhyZWYiIC0tIHRyeWluZyB0byByZWNvdmVyLmApLGUtPXRbMV0ubGVuZ3RoKzEpKTplPWMtaCxoKz1lfWVsc2UgaCs9US5sZW5ndGgrMX1mb3IoY29uc3QgQSBvZiBCKXRoaXMuc3RhcnRYUmVmUXVldWUucHVzaChBKSx0aGlzLnJlYWRYUmVmKCEwKTtjb25zdCBsPVtdO2xldCBRLEUsdT0hMTtmb3IoY29uc3QgQSBvZiBDKXtnLnBvcz1BO2NvbnN0IGU9bmV3IGdpKHtsZXhlcjpuZXcgY2koZykseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMCxyZWNvdmVyeU1vZGU6ITB9KTtpZighcEEoZS5nZXRPYmooKSwidHJhaWxlciIpKWNvbnRpbnVlO2NvbnN0IHQ9ZS5nZXRPYmooKTt0IGluc3RhbmNlb2YgUUEmJihsLnB1c2godCksdC5oYXMoIkVuY3J5cHQiKSYmKHU9ITApKX1mb3IoY29uc3QgQSBvZlsuLi5sLCJnZW5GYWxsYmFjayIsLi4ubF0pe2lmKCJnZW5GYWxsYmFjayI9PT1BKXtpZighRSlicmVhazt0aGlzLl9nZW5lcmF0aW9uRmFsbGJhY2s9ITA7Y29udGludWV9bGV0IGU9ITE7dHJ5e2NvbnN0IHQ9QS5nZXQoIlJvb3QiKTtpZighKHQgaW5zdGFuY2VvZiBRQSkpY29udGludWU7Y29uc3QgaT10LmdldCgiUGFnZXMiKTtpZighKGkgaW5zdGFuY2VvZiBRQSkpY29udGludWU7Y29uc3QgYT1pLmdldCgiQ291bnQiKTtOdW1iZXIuaXNJbnRlZ2VyKGEpJiYoZT0hMCl9Y2F0Y2goQSl7RT1BO2NvbnRpbnVlfWlmKGUmJighdXx8QS5oYXMoIkVuY3J5cHQiKSkmJkEuaGFzKCJJRCIpKXJldHVybiBBO1E9QX1pZihRKXJldHVybiBRO2lmKHRoaXMudG9wRGljdClyZXR1cm4gdGhpcy50b3BEaWN0O3Rocm93IG5ldyBxKCJJbnZhbGlkIFBERiBzdHJ1Y3R1cmUuIil9cmVhZFhSZWYoQT0hMSl7Y29uc3QgZT10aGlzLnN0cmVhbSx0PW5ldyBTZXQ7Zm9yKDt0aGlzLnN0YXJ0WFJlZlF1ZXVlLmxlbmd0aDspe3RyeXtjb25zdCBBPXRoaXMuc3RhcnRYUmVmUXVldWVbMF07aWYodC5oYXMoQSkpe1UoInJlYWRYUmVmIC0gc2tpcHBpbmcgWFJlZiB0YWJsZSBzaW5jZSBpdCB3YXMgYWxyZWFkeSBwYXJzZWQuIiksdGhpcy5zdGFydFhSZWZRdWV1ZS5zaGlmdCgpO2NvbnRpbnVlfXQuYWRkKEEpLGUucG9zPUErZS5zdGFydDtjb25zdCBpPW5ldyBnaSh7bGV4ZXI6bmV3IGNpKGUpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtsZXQgYSxzPWkuZ2V0T2JqKCk7aWYocEEocywieHJlZiIpKWE9dGhpcy5wcm9jZXNzWFJlZlRhYmxlKGkpLHRoaXMudG9wRGljdHx8KHRoaXMudG9wRGljdD1hKSxzPWEuZ2V0KCJYUmVmU3RtIiksTnVtYmVyLmlzSW50ZWdlcihzKSYmIXRoaXMuX3hyZWZTdG1zLmhhcyhzKSYmKHRoaXMuX3hyZWZTdG1zLmFkZChzKSx0aGlzLnN0YXJ0WFJlZlF1ZXVlLnB1c2gocyksdGhpcy4jVD8/PXMpO2Vsc2V7aWYoIU51bWJlci5pc0ludGVnZXIocykpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiBzdHJlYW0gaGVhZGVyIik7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGkuZ2V0T2JqKCkpJiZwQShpLmdldE9iaigpLCJvYmoiKSYmKHM9aS5nZXRPYmooKSlpbnN0YW5jZW9mIHdBKSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHN0cmVhbSIpO2lmKGE9dGhpcy5wcm9jZXNzWFJlZlN0cmVhbShzKSx0aGlzLnRvcERpY3R8fCh0aGlzLnRvcERpY3Q9YSksIWEpdGhyb3cgbmV3IFcoIkZhaWxlZCB0byByZWFkIFhSZWYgc3RyZWFtIil9cz1hLmdldCgiUHJldiIpLE51bWJlci5pc0ludGVnZXIocyk/dGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMpOnMgaW5zdGFuY2VvZiBFQSYmdGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMubnVtKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTt4KCIod2hpbGUgcmVhZGluZyBYUmVmKTogIitBKX10aGlzLnN0YXJ0WFJlZlF1ZXVlLnNoaWZ0KCl9aWYodGhpcy50b3BEaWN0KXJldHVybiB0aGlzLnRvcERpY3Q7aWYoIUEpdGhyb3cgbmV3IFJBfWdldCBsYXN0WFJlZlN0cmVhbVBvcygpe3JldHVybiB0aGlzLiNUPz8odGhpcy5feHJlZlN0bXMuc2l6ZT4wP01hdGgubWF4KC4uLnRoaXMuX3hyZWZTdG1zKTpudWxsKX1nZXRFbnRyeShBKXtjb25zdCBlPXRoaXMuZW50cmllc1tBXTtyZXR1cm4gZSYmIWUuZnJlZSYmZS5vZmZzZXQ/ZTpudWxsfWZldGNoSWZSZWYoQSxlPSExKXtyZXR1cm4gQSBpbnN0YW5jZW9mIEVBP3RoaXMuZmV0Y2goQSxlKTpBfWZldGNoKEEsZT0hMSl7aWYoIShBIGluc3RhbmNlb2YgRUEpKXRocm93IG5ldyBFcnJvcigicmVmIG9iamVjdCBpcyBub3QgYSByZWZlcmVuY2UiKTtjb25zdCB0PUEubnVtLGk9dGhpcy5fY2FjaGVNYXAuZ2V0KHQpO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkgaW5zdGFuY2VvZiBRQSYmIWkub2JqSWQmJihpLm9iaklkPUEudG9TdHJpbmcoKSksaTtsZXQgYT10aGlzLmdldEVudHJ5KHQpO2lmKG51bGw9PT1hKXJldHVybiB0aGlzLl9jYWNoZU1hcC5zZXQodCxhKSxhO2lmKHRoaXMuX3BlbmRpbmdSZWZzLmhhcyhBKSlyZXR1cm4gdGhpcy5fcGVuZGluZ1JlZnMucmVtb3ZlKEEpLFUoYElnbm9yaW5nIGNpcmN1bGFyIHJlZmVyZW5jZTogJHtBfS5gKSxnQTt0aGlzLl9wZW5kaW5nUmVmcy5wdXQoQSk7dHJ5e2E9YS51bmNvbXByZXNzZWQ/dGhpcy5mZXRjaFVuY29tcHJlc3NlZChBLGEsZSk6dGhpcy5mZXRjaENvbXByZXNzZWQoQSxhLGUpLHRoaXMuX3BlbmRpbmdSZWZzLnJlbW92ZShBKX1jYXRjaChlKXt0aHJvdyB0aGlzLl9wZW5kaW5nUmVmcy5yZW1vdmUoQSksZX1yZXR1cm4gYSBpbnN0YW5jZW9mIFFBP2Eub2JqSWQ9QS50b1N0cmluZygpOmEgaW5zdGFuY2VvZiB3QSYmKGEuZGljdC5vYmpJZD1BLnRvU3RyaW5nKCkpLGF9ZmV0Y2hVbmNvbXByZXNzZWQoQSxlLHQ9ITEpe2NvbnN0IGk9QS5nZW47bGV0IGE9QS5udW07aWYoZS5nZW4hPT1pKXtjb25zdCBzPWBJbmNvbnNpc3RlbnQgZ2VuZXJhdGlvbiBpbiBYUmVmOiAke0F9YDtpZih0aGlzLl9nZW5lcmF0aW9uRmFsbGJhY2smJmUuZ2VuPGkpcmV0dXJuIFUocyksdGhpcy5mZXRjaFVuY29tcHJlc3NlZChFQS5nZXQoYSxlLmdlbiksZSx0KTt0aHJvdyBuZXcgU0Eocyl9Y29uc3Qgcz10aGlzLnN0cmVhbS5tYWtlU3ViU3RyZWFtKGUub2Zmc2V0K3RoaXMuc3RyZWFtLnN0YXJ0KSxuPW5ldyBnaSh7bGV4ZXI6bmV3IGNpKHMpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KSxyPW4uZ2V0T2JqKCksZz1uLmdldE9iaigpLG89bi5nZXRPYmooKTtpZihyIT09YXx8ZyE9PWl8fCEobyBpbnN0YW5jZW9mIEJBKSl0aHJvdyBuZXcgU0EoYEJhZCAodW5jb21wcmVzc2VkKSBYUmVmIGVudHJ5OiAke0F9YCk7aWYoIm9iaiIhPT1vLmNtZCl7aWYoby5jbWQuc3RhcnRzV2l0aCgib2JqIikmJihhPXBhcnNlSW50KG8uY21kLnN1YnN0cmluZygzKSwxMCksIU51bWJlci5pc05hTihhKSkpcmV0dXJuIGE7dGhyb3cgbmV3IFNBKGBCYWQgKHVuY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtBfWApfXJldHVybihlPXRoaXMuZW5jcnlwdCYmIXQ/bi5nZXRPYmoodGhpcy5lbmNyeXB0LmNyZWF0ZUNpcGhlclRyYW5zZm9ybShhLGkpKTpuLmdldE9iaigpKWluc3RhbmNlb2Ygd0F8fHRoaXMuX2NhY2hlTWFwLnNldChhLGUpLGV9ZmV0Y2hDb21wcmVzc2VkKEEsZSx0PSExKXtjb25zdCBpPWUub2Zmc2V0LGE9dGhpcy5mZXRjaChFQS5nZXQoaSwwKSk7aWYoIShhIGluc3RhbmNlb2Ygd0EpKXRocm93IG5ldyBXKCJiYWQgT2JqU3RtIHN0cmVhbSIpO2NvbnN0IHM9YS5kaWN0LmdldCgiRmlyc3QiKSxuPWEuZGljdC5nZXQoIk4iKTtpZighTnVtYmVyLmlzSW50ZWdlcihzKXx8IU51bWJlci5pc0ludGVnZXIobikpdGhyb3cgbmV3IFcoImludmFsaWQgZmlyc3QgYW5kIG4gcGFyYW1ldGVycyBmb3IgT2JqU3RtIHN0cmVhbSIpO2xldCByPW5ldyBnaSh7bGV4ZXI6bmV3IGNpKGEpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtjb25zdCBnPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKTtmb3IobGV0IEE9MDtBPG47KytBKXtjb25zdCBlPXIuZ2V0T2JqKCk7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpdGhyb3cgbmV3IFcoYGludmFsaWQgb2JqZWN0IG51bWJlciBpbiB0aGUgT2JqU3RtIHN0cmVhbTogJHtlfWApO2NvbnN0IHQ9ci5nZXRPYmooKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KSl0aHJvdyBuZXcgVyhgaW52YWxpZCBvYmplY3Qgb2Zmc2V0IGluIHRoZSBPYmpTdG0gc3RyZWFtOiAke3R9YCk7Z1tBXT1lLG9bQV09dH1jb25zdCBJPShhLnN0YXJ0fHwwKStzLGM9bmV3IEFycmF5KG4pO2ZvcihsZXQgQT0wO0E8bjsrK0Epe2NvbnN0IGU9QTxuLTE/b1tBKzFdLW9bQV06dm9pZCAwO2lmKGU8MCl0aHJvdyBuZXcgVygiSW52YWxpZCBvZmZzZXQgaW4gdGhlIE9ialN0bSBzdHJlYW0uIik7cj1uZXcgZ2koe2xleGVyOm5ldyBjaShhLm1ha2VTdWJTdHJlYW0oSStvW0FdLGUsYS5kaWN0KSkseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMH0pO2NvbnN0IHQ9ci5nZXRPYmooKTtpZihjW0FdPXQsdCBpbnN0YW5jZW9mIHdBKWNvbnRpbnVlO2NvbnN0IHM9Z1tBXSxoPXRoaXMuZW50cmllc1tzXTtoJiZoLm9mZnNldD09PWkmJmguZ2VuPT09QSYmdGhpcy5fY2FjaGVNYXAuc2V0KHMsdCl9aWYodm9pZCAwPT09KGU9Y1tlLmdlbl0pKXRocm93IG5ldyBTQShgQmFkIChjb21wcmVzc2VkKSBYUmVmIGVudHJ5OiAke0F9YCk7cmV0dXJuIGV9YXN5bmMgZmV0Y2hJZlJlZkFzeW5jKEEsZSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBFQT90aGlzLmZldGNoQXN5bmMoQSxlKTpBfWFzeW5jIGZldGNoQXN5bmMoQSxlKXt0cnl7cmV0dXJuIHRoaXMuZmV0Y2goQSxlKX1jYXRjaCh0KXtpZighKHQgaW5zdGFuY2VvZiBrQSkpdGhyb3cgdDtyZXR1cm4gYXdhaXQgdGhpcy5wZGZNYW5hZ2VyLnJlcXVlc3RSYW5nZSh0LmJlZ2luLHQuZW5kKSx0aGlzLmZldGNoQXN5bmMoQSxlKX19Z2V0Q2F0YWxvZ09iaigpe3JldHVybiB0aGlzLnJvb3R9fWNvbnN0IFFkPVswLDAsNjEyLDc5Ml07Y2xhc3MgRWR7Y29uc3RydWN0b3Ioe3BkZk1hbmFnZXI6QSx4cmVmOmUscGFnZUluZGV4OnQscGFnZURpY3Q6aSxyZWY6YSxnbG9iYWxJZEZhY3Rvcnk6cyxmb250Q2FjaGU6bixidWlsdEluQ01hcENhY2hlOnIsc3RhbmRhcmRGb250RGF0YUNhY2hlOmcsZ2xvYmFsSW1hZ2VDYWNoZTpvLHN5c3RlbUZvbnRDYWNoZTpJLG5vbkJsZW5kTW9kZXNTZXQ6Yyx4ZmFGYWN0b3J5Omh9KXt0aGlzLnBkZk1hbmFnZXI9QSx0aGlzLnBhZ2VJbmRleD10LHRoaXMucGFnZURpY3Q9aSx0aGlzLnhyZWY9ZSx0aGlzLnJlZj1hLHRoaXMuZm9udENhY2hlPW4sdGhpcy5idWlsdEluQ01hcENhY2hlPXIsdGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGU9Zyx0aGlzLmdsb2JhbEltYWdlQ2FjaGU9byx0aGlzLnN5c3RlbUZvbnRDYWNoZT1JLHRoaXMubm9uQmxlbmRNb2Rlc1NldD1jLHRoaXMuZXZhbHVhdG9yT3B0aW9ucz1BLmV2YWx1YXRvck9wdGlvbnMsdGhpcy5yZXNvdXJjZXNQcm9taXNlPW51bGwsdGhpcy54ZmFGYWN0b3J5PWg7Y29uc3QgQz17b2JqOjB9O3RoaXMuX2xvY2FsSWRGYWN0b3J5PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWMgY3JlYXRlT2JqSWQoKXtyZXR1cm5gcCR7dH1fJHsrK0Mub2JqfWB9c3RhdGljIGdldFBhZ2VPYmpJZCgpe3JldHVybmBwJHthLnRvU3RyaW5nKCl9YH19fV9nZXRJbmhlcml0YWJsZVByb3BlcnR5KEEsZT0hMSl7Y29uc3QgdD1OQSh7ZGljdDp0aGlzLnBhZ2VEaWN0LGtleTpBLGdldEFycmF5OmUsc3RvcFdoZW5Gb3VuZDohMX0pO3JldHVybiBBcnJheS5pc0FycmF5KHQpPzEhPT10Lmxlbmd0aCYmdFswXWluc3RhbmNlb2YgUUE/UUEubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTp0fSk6dFswXTp0fWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucGFnZURpY3QuZ2V0QXJyYXkoIkNvbnRlbnRzIil9Z2V0IHJlc291cmNlcygpe2NvbnN0IEE9dGhpcy5fZ2V0SW5oZXJpdGFibGVQcm9wZXJ0eSgiUmVzb3VyY2VzIik7cmV0dXJuIEgodGhpcywicmVzb3VyY2VzIixBIGluc3RhbmNlb2YgUUE/QTpRQS5lbXB0eSl9X2dldEJvdW5kaW5nQm94KEEpe2lmKHRoaXMueGZhRGF0YSlyZXR1cm4gdGhpcy54ZmFEYXRhLmJib3g7Y29uc3QgZT1UQSh0aGlzLl9nZXRJbmhlcml0YWJsZVByb3BlcnR5KEEsITApLG51bGwpO2lmKGUpe2lmKGVbMl0tZVswXT4wJiZlWzNdLWVbMV0+MClyZXR1cm4gZTtVKGBFbXB0eSwgb3IgaW52YWxpZCwgLyR7QX0gZW50cnkuYCl9cmV0dXJuIG51bGx9Z2V0IG1lZGlhQm94KCl7cmV0dXJuIEgodGhpcywibWVkaWFCb3giLHRoaXMuX2dldEJvdW5kaW5nQm94KCJNZWRpYUJveCIpfHxRZCl9Z2V0IGNyb3BCb3goKXtyZXR1cm4gSCh0aGlzLCJjcm9wQm94Iix0aGlzLl9nZXRCb3VuZGluZ0JveCgiQ3JvcEJveCIpfHx0aGlzLm1lZGlhQm94KX1nZXQgdXNlclVuaXQoKXtsZXQgQT10aGlzLnBhZ2VEaWN0LmdldCgiVXNlclVuaXQiKTtyZXR1cm4oIm51bWJlciIhPXR5cGVvZiBBfHxBPD0wKSYmKEE9MSksSCh0aGlzLCJ1c2VyVW5pdCIsQSl9Z2V0IHZpZXcoKXtjb25zdHtjcm9wQm94OkEsbWVkaWFCb3g6ZX09dGhpcztpZihBIT09ZSYmIWFBKEEsZSkpe2NvbnN0IHQ9JC5pbnRlcnNlY3QoQSxlKTtpZih0JiZ0WzJdLXRbMF0+MCYmdFszXS10WzFdPjApcmV0dXJuIEgodGhpcywidmlldyIsdCk7VSgiRW1wdHkgL0Nyb3BCb3ggYW5kIC9NZWRpYUJveCBpbnRlcnNlY3Rpb24uIil9cmV0dXJuIEgodGhpcywidmlldyIsZSl9Z2V0IHJvdGF0ZSgpe2xldCBBPXRoaXMuX2dldEluaGVyaXRhYmxlUHJvcGVydHkoIlJvdGF0ZSIpfHwwO3JldHVybiBBJTkwIT0wP0E9MDpBPj0zNjA/QSU9MzYwOkE8MCYmKEE9KEElMzYwKzM2MCklMzYwKSxIKHRoaXMsInJvdGF0ZSIsQSl9X29uU3ViU3RyZWFtRXJyb3IoQSxlKXtpZighdGhpcy5ldmFsdWF0b3JPcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYGdldENvbnRlbnRTdHJlYW0gLSBpZ25vcmluZyBzdWItc3RyZWFtICgke2V9KTogIiR7QX0iLmApfWdldENvbnRlbnRTdHJlYW0oKXtyZXR1cm4gdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJjb250ZW50IikudGhlbigoQT0+QSBpbnN0YW5jZW9mIHdBP0E6QXJyYXkuaXNBcnJheShBKT9uZXcgeGUoQSx0aGlzLl9vblN1YlN0cmVhbUVycm9yLmJpbmQodGhpcykpOm5ldyBJZSkpfWdldCB4ZmFEYXRhKCl7cmV0dXJuIEgodGhpcywieGZhRGF0YSIsdGhpcy54ZmFGYWN0b3J5P3tiYm94OnRoaXMueGZhRmFjdG9yeS5nZXRCb3VuZGluZ0JveCh0aGlzLnBhZ2VJbmRleCl9Om51bGwpfWFzeW5jI1AoQSxlLHQpe2NvbnN0IGk9W107Zm9yKGNvbnN0IGEgb2YgQSlpZihhLmlkKXtjb25zdCBBPUVBLmZyb21TdHJpbmcoYS5pZCk7aWYoIUEpe1UoYEEgbm9uLWxpbmtlZCBhbm5vdGF0aW9uIGNhbm5vdCBiZSBtb2RpZmllZDogJHthLmlkfWApO2NvbnRpbnVlfWlmKGEuZGVsZXRlZCl7aWYoZS5wdXQoQSxBKSxhLnBvcHVwUmVmKXtjb25zdCBBPUVBLmZyb21TdHJpbmcoYS5wb3B1cFJlZik7QSYmZS5wdXQoQSxBKX1jb250aW51ZX10Py5wdXQoQSksYS5yZWY9QSxpLnB1c2godGhpcy54cmVmLmZldGNoQXN5bmMoQSkudGhlbigoQT0+e0EgaW5zdGFuY2VvZiBRQSYmKGEub2xkQW5ub3RhdGlvbj1BLmNsb25lKCkpfSksKCgpPT57VShgQ2Fubm90IGZldGNoIFxgb2xkQW5ub3RhdGlvblxgIGZvcjogJHtBfS5gKX0pKSksZGVsZXRlIGEuaWR9YXdhaXQgUHJvbWlzZS5hbGwoaSl9YXN5bmMgc2F2ZU5ld0Fubm90YXRpb25zKEEsZSx0LGkpe2lmKHRoaXMueGZhRmFjdG9yeSl0aHJvdyBuZXcgRXJyb3IoIlhGQTogQ2Fubm90IHNhdmUgbmV3IGFubm90YXRpb25zLiIpO2NvbnN0IGE9bmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLHM9bmV3IGRBLG49bmV3IHVBO2F3YWl0IHRoaXMuI1AodCxzLG4pO2NvbnN0IHI9dGhpcy5wYWdlRGljdCxnPXRoaXMuYW5ub3RhdGlvbnMuZmlsdGVyKChBPT4hKEEgaW5zdGFuY2VvZiBFQSYmcy5oYXMoQSkpKSksbz1hd2FpdCBMdS5zYXZlTmV3QW5ub3RhdGlvbnMoYSxlLHQsaSk7Zm9yKGNvbnN0e3JlZjpBfW9mIG8uYW5ub3RhdGlvbnMpQSBpbnN0YW5jZW9mIEVBJiYhbi5oYXMoQSkmJmcucHVzaChBKTtjb25zdCBJPXIuZ2V0KCJBbm5vdHMiKTtyLnNldCgiQW5ub3RzIixnKTtjb25zdCBjPVtdO2F3YWl0IFhnKHRoaXMucmVmLHIsYyx0aGlzLnhyZWYpLEkmJnIuc2V0KCJBbm5vdHMiLEkpO2NvbnN0IGg9by5kZXBlbmRlbmNpZXM7aC5wdXNoKHtyZWY6dGhpcy5yZWYsZGF0YTpjLmpvaW4oIiIpfSwuLi5vLmFubm90YXRpb25zKTtmb3IoY29uc3QgQSBvZiBzKWgucHVzaCh7cmVmOkEsZGF0YTpudWxsfSk7cmV0dXJuIGh9c2F2ZShBLGUsdCl7Y29uc3QgaT1uZXcgQ2coe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6QSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSk7cmV0dXJuIHRoaXMuX3BhcnNlZEFubm90YXRpb25zLnRoZW4oKGZ1bmN0aW9uKEEpe2NvbnN0IGE9W107Zm9yKGNvbnN0IHMgb2YgQSlhLnB1c2gocy5zYXZlKGksZSx0KS5jYXRjaCgoZnVuY3Rpb24oQSl7cmV0dXJuIFUoYHNhdmUgLSBpZ25vcmluZyBhbm5vdGF0aW9uIGRhdGEgZHVyaW5nICIke2UubmFtZX0iIHRhc2s6ICIke0F9Ii5gKSxudWxsfSkpKTtyZXR1cm4gUHJvbWlzZS5hbGwoYSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuZmlsdGVyKChBPT4hIUEpKX0pKX0pKX1sb2FkUmVzb3VyY2VzKEEpe3JldHVybiB0aGlzLnJlc291cmNlc1Byb21pc2V8fD10aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsInJlc291cmNlcyIpLHRoaXMucmVzb3VyY2VzUHJvbWlzZS50aGVuKCgoKT0+bmV3IEJvKHRoaXMucmVzb3VyY2VzLEEsdGhpcy54cmVmKS5sb2FkKCkpKX1nZXRPcGVyYXRvckxpc3Qoe2hhbmRsZXI6QSxzaW5rOmUsdGFzazp0LGludGVudDppLGNhY2hlS2V5OmEsYW5ub3RhdGlvblN0b3JhZ2U6cz1udWxsLG1vZGlmaWVkSWRzOm49bnVsbH0pe2NvbnN0IHI9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksZz10aGlzLmxvYWRSZXNvdXJjZXMoWyJDb2xvclNwYWNlIiwiRXh0R1N0YXRlIiwiRm9udCIsIlBhdHRlcm4iLCJQcm9wZXJ0aWVzIiwiU2hhZGluZyIsIlhPYmplY3QiXSksST1uZXcgQ2coe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6QSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSksYz10aGlzLnhmYUZhY3Rvcnk/bnVsbDp0ZShzKSxoPWM/LmdldCh0aGlzLnBhZ2VJbmRleCk7bGV0IEM9UHJvbWlzZS5yZXNvbHZlKG51bGwpLEI9bnVsbDtpZihoKXtjb25zdCBBPXRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIik7bGV0IGU7Y29uc3QgaT1uZXcgU2V0O2Zvcihjb25zdHtiaXRtYXBJZDpBLGJpdG1hcDplfW9mIGgpIUF8fGV8fGkuaGFzKEEpfHxpLmFkZChBKTtjb25zdHtpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDphfT10aGlzLmV2YWx1YXRvck9wdGlvbnM7aWYoaS5zaXplPjApe2NvbnN0IEE9aC5zbGljZSgpO2Zvcihjb25zdFtlLHRdb2YgcyllLnN0YXJ0c1dpdGgobykmJnQuYml0bWFwJiZpLmhhcyh0LmJpdG1hcElkKSYmQS5wdXNoKHQpO2U9THUuZ2VuZXJhdGVJbWFnZXMoQSx0aGlzLnhyZWYsYSl9ZWxzZSBlPUx1LmdlbmVyYXRlSW1hZ2VzKGgsdGhpcy54cmVmLGEpO0I9bmV3IHVBLEM9UHJvbWlzZS5hbGwoW0EsdGhpcy4jUChoLEIsbnVsbCldKS50aGVuKCgoW0FdKT0+QT9MdS5wcmludE5ld0Fubm90YXRpb25zKEEsSSx0LGgsZSk6bnVsbCkpfWNvbnN0IGw9UHJvbWlzZS5hbGwoW3IsZ10pLnRoZW4oKChbc10pPT57Y29uc3Qgbj1uZXcgYWcoaSxlKTtyZXR1cm4gQS5zZW5kKCJTdGFydFJlbmRlclBhZ2UiLHt0cmFuc3BhcmVuY3k6SS5oYXNCbGVuZE1vZGVzKHRoaXMucmVzb3VyY2VzLHRoaXMubm9uQmxlbmRNb2Rlc1NldCkscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGNhY2hlS2V5OmF9KSxJLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnMsdGFzazp0LHJlc291cmNlczp0aGlzLnJlc291cmNlcyxvcGVyYXRvckxpc3Q6bn0pLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSl9KSk7cmV0dXJuIFByb21pc2UuYWxsKFtsLHRoaXMuX3BhcnNlZEFubm90YXRpb25zLENdKS50aGVuKChmdW5jdGlvbihbQSxlLGFdKXtpZihhKXtlPWUuZmlsdGVyKChBPT4hKEEucmVmJiZCLmhhcyhBLnJlZikpKSk7Zm9yKGxldCBBPTAsdD1hLmxlbmd0aDtBPHQ7QSsrKXtjb25zdCBpPWFbQV07aWYoaS5yZWZUb1JlcGxhY2Upe2NvbnN0IHM9ZS5maW5kSW5kZXgoKEE9PkEucmVmJiZ5QShBLnJlZixpLnJlZlRvUmVwbGFjZSkpKTtzPj0wJiYoZS5zcGxpY2UocywxLGkpLGEuc3BsaWNlKEEtLSwxKSx0LS0pfX1lPWUuY29uY2F0KGEpfWlmKDA9PT1lLmxlbmd0aHx8NjQmaSlyZXR1cm4gQS5mbHVzaCghMCkse2xlbmd0aDpBLnRvdGFsTGVuZ3RofTtjb25zdCByPSEhKDE2JmkpLGc9ISEoMTI4JmkpLG89ISEoMSZpKSxjPSEhKDImaSksaD0hISg0JmkpLEM9W107Zm9yKGNvbnN0IEEgb2YgZSkob3x8YyYmQS5tdXN0QmVWaWV3ZWQocyxyKSYmQS5tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhnLG4pfHxoJiZBLm11c3RCZVByaW50ZWQocykpJiZDLnB1c2goQS5nZXRPcGVyYXRvckxpc3QoSSx0LGkscykuY2F0Y2goKGZ1bmN0aW9uKEEpe3JldHVybiBVKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBhbm5vdGF0aW9uIGRhdGEgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke0F9Ii5gKSx7b3BMaXN0Om51bGwsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX0pKSk7cmV0dXJuIFByb21pc2UuYWxsKEMpLnRoZW4oKGZ1bmN0aW9uKGUpe2xldCB0PSExLGk9ITE7Zm9yKGNvbnN0e29wTGlzdDphLHNlcGFyYXRlRm9ybTpzLHNlcGFyYXRlQ2FudmFzOm59b2YgZSlBLmFkZE9wTGlzdChhKSx0fHw9cyxpfHw9bjtyZXR1cm4gQS5mbHVzaCghMCx7Zm9ybTp0LGNhbnZhczppfSkse2xlbmd0aDpBLnRvdGFsTGVuZ3RofX0pKX0pKX1hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoe2hhbmRsZXI6QSx0YXNrOmUsaW5jbHVkZU1hcmtlZENvbnRlbnQ6dCxkaXNhYmxlTm9ybWFsaXphdGlvbjppLHNpbms6YX0pe2NvbnN0IHM9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksbj10aGlzLmxvYWRSZXNvdXJjZXMoWyJFeHRHU3RhdGUiLCJGb250IiwiUHJvcGVydGllcyIsIlhPYmplY3QiXSkscj10aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygibGFuZyIpLFtnLCxvXT1hd2FpdCBQcm9taXNlLmFsbChbcyxuLHJdKTtyZXR1cm4gbmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLmdldFRleHRDb250ZW50KHtzdHJlYW06Zyx0YXNrOmUscmVzb3VyY2VzOnRoaXMucmVzb3VyY2VzLGluY2x1ZGVNYXJrZWRDb250ZW50OnQsZGlzYWJsZU5vcm1hbGl6YXRpb246aSxzaW5rOmEsdmlld0JveDp0aGlzLnZpZXcsbGFuZzpvfSl9YXN5bmMgZ2V0U3RydWN0VHJlZSgpe2NvbnN0IEE9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coInN0cnVjdFRyZWVSb290Iik7cmV0dXJuIEE/KGF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zLChhd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsIl9wYXJzZVN0cnVjdFRyZWUiLFtBXSkpLnNlcmlhbGl6YWJsZSk6bnVsbH1fcGFyc2VTdHJ1Y3RUcmVlKEEpe2NvbnN0IGU9bmV3IGdvKEEsdGhpcy5wYWdlRGljdCk7cmV0dXJuIGUucGFyc2UodGhpcy5yZWYpLGV9YXN5bmMgZ2V0QW5ub3RhdGlvbnNEYXRhKEEsZSx0KXtjb25zdCBpPWF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zO2lmKDA9PT1pLmxlbmd0aClyZXR1cm4gaTtjb25zdCBhPVtdLHM9W107bGV0IG47Y29uc3Qgcj0hISgxJnQpLGc9ISEoMiZ0KSxvPSEhKDQmdCk7Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgaT1yfHxnJiZ0LnZpZXdhYmxlOyhpfHxvJiZ0LnByaW50YWJsZSkmJmEucHVzaCh0LmRhdGEpLHQuaGFzVGV4dENvbnRlbnQmJmkmJihufHw9bmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLHMucHVzaCh0LmV4dHJhY3RUZXh0Q29udGVudChuLGUsWy0xLzAsLTEvMCwxLzAsMS8wXSkuY2F0Y2goKGZ1bmN0aW9uKEEpe1UoYGdldEFubm90YXRpb25zRGF0YSAtIGlnbm9yaW5nIHRleHRDb250ZW50IGR1cmluZyAiJHtlLm5hbWV9IiB0YXNrOiAiJHtBfSIuYCl9KSkpKX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwocyksYX1nZXQgYW5ub3RhdGlvbnMoKXtjb25zdCBBPXRoaXMuX2dldEluaGVyaXRhYmxlUHJvcGVydHkoIkFubm90cyIpO3JldHVybiBIKHRoaXMsImFubm90YXRpb25zIixBcnJheS5pc0FycmF5KEEpP0E6W10pfWdldCBfcGFyc2VkQW5ub3RhdGlvbnMoKXtyZXR1cm4gSCh0aGlzLCJfcGFyc2VkQW5ub3RhdGlvbnMiLHRoaXMucGRmTWFuYWdlci5lbnN1cmUodGhpcywiYW5ub3RhdGlvbnMiKS50aGVuKChhc3luYyBBPT57aWYoMD09PUEubGVuZ3RoKXJldHVybiBBO2NvbnN0W2UsdF09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZmllbGRPYmplY3RzIildKTtpZighZSlyZXR1cm5bXTtjb25zdCBpPXQ/Lm9ycGhhbkZpZWxkcyxhPVtdO2Zvcihjb25zdCB0IG9mIEEpYS5wdXNoKEx1LmNyZWF0ZSh0aGlzLnhyZWYsdCxlLHRoaXMuX2xvY2FsSWRGYWN0b3J5LCExLGksdGhpcy5yZWYpLmNhdGNoKChmdW5jdGlvbihBKXtyZXR1cm4gVShgX3BhcnNlZEFubm90YXRpb25zOiAiJHtBfSIuYCksbnVsbH0pKSk7Y29uc3Qgcz1bXTtsZXQgbixyO2Zvcihjb25zdCBBIG9mIGF3YWl0IFByb21pc2UuYWxsKGEpKUEmJihBIGluc3RhbmNlb2YgUHU/KHJ8fD1bXSkucHVzaChBKTpBIGluc3RhbmNlb2YgX3U/KG58fD1bXSkucHVzaChBKTpzLnB1c2goQSkpO3JldHVybiByJiZzLnB1c2goLi4uciksbiYmcy5wdXNoKC4uLm4pLHN9KSkpfWdldCBqc0FjdGlvbnMoKXtyZXR1cm4gSCh0aGlzLCJqc0FjdGlvbnMiLGpBKHRoaXMueHJlZix0aGlzLnBhZ2VEaWN0LEUpKX19Y29uc3QgdWQ9bmV3IFVpbnQ4QXJyYXkoWzM3LDgwLDY4LDcwLDQ1XSksZGQ9bmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsOTcsMTE0LDExNiwxMjAsMTE0LDEwMSwxMDJdKSxmZD1uZXcgVWludDhBcnJheShbMTAxLDExMCwxMDAsMTExLDk4LDEwNl0pO2Z1bmN0aW9uIHBkKEEsZSx0PTEwMjQsaT0hMSl7Y29uc3QgYT1lLmxlbmd0aCxzPUEucGVla0J5dGVzKHQpLG49cy5sZW5ndGgtYTtpZihuPD0wKXJldHVybiExO2lmKGkpe2NvbnN0IHQ9YS0xO2xldCBpPXMubGVuZ3RoLTE7Zm9yKDtpPj10Oyl7bGV0IG49MDtmb3IoO248YSYmc1tpLW5dPT09ZVt0LW5dOyluKys7aWYobj49YSlyZXR1cm4gQS5wb3MrPWktdCwhMDtpLS19fWVsc2V7bGV0IHQ9MDtmb3IoO3Q8PW47KXtsZXQgaT0wO2Zvcig7aTxhJiZzW3QraV09PT1lW2ldOylpKys7aWYoaT49YSlyZXR1cm4gQS5wb3MrPXQsITA7dCsrfX1yZXR1cm4hMX1jbGFzcyBtZHtjb25zdHJ1Y3RvcihBLGUpe2lmKGUubGVuZ3RoPD0wKXRocm93IG5ldyBxKCJUaGUgUERGIGZpbGUgaXMgZW1wdHksIGkuZS4gaXRzIHNpemUgaXMgemVybyBieXRlcy4iKTt0aGlzLnBkZk1hbmFnZXI9QSx0aGlzLnN0cmVhbT1lLHRoaXMueHJlZj1uZXcgbGQoZSxBKSx0aGlzLl9wYWdlUHJvbWlzZXM9bmV3IE1hcCx0aGlzLl92ZXJzaW9uPW51bGw7Y29uc3QgdD17Zm9udDowfTt0aGlzLl9nbG9iYWxJZEZhY3Rvcnk9Y2xhc3N7c3RhdGljIGdldERvY0lkKCl7cmV0dXJuYGdfJHtBLmRvY0lkfWB9c3RhdGljIGNyZWF0ZUZvbnRJZCgpe3JldHVybiJmIisgKyt0LmZvbnR9c3RhdGljIGNyZWF0ZU9iaklkKCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBjcmVhdGVPYmpJZGAgY2FsbGVkLiIpfXN0YXRpYyBnZXRQYWdlT2JqSWQoKXtNKCJBYnN0cmFjdCBtZXRob2QgYGdldFBhZ2VPYmpJZGAgY2FsbGVkLiIpfX19cGFyc2UoQSl7dGhpcy54cmVmLnBhcnNlKEEpLHRoaXMuY2F0YWxvZz1uZXcgaG8odGhpcy5wZGZNYW5hZ2VyLHRoaXMueHJlZil9Z2V0IGxpbmVhcml6YXRpb24oKXtsZXQgQT1udWxsO3RyeXtBPWhpLmNyZWF0ZSh0aGlzLnN0cmVhbSl9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7eChBKX1yZXR1cm4gSCh0aGlzLCJsaW5lYXJpemF0aW9uIixBKX1nZXQgc3RhcnRYUmVmKCl7Y29uc3QgQT10aGlzLnN0cmVhbTtsZXQgZT0wO2lmKHRoaXMubGluZWFyaXphdGlvbil7aWYoQS5yZXNldCgpLHBkKEEsZmQpKXtBLnNraXAoNik7bGV0IHQ9QS5wZWVrQnl0ZSgpO2Zvcig7WUEodCk7KUEucG9zKyssdD1BLnBlZWtCeXRlKCk7ZT1BLnBvcy1BLnN0YXJ0fX1lbHNle2NvbnN0IHQ9MTAyNCxpPWRkLmxlbmd0aDtsZXQgYT0hMSxzPUEuZW5kO2Zvcig7IWEmJnM+MDspcy09dC1pLHM8MCYmKHM9MCksQS5wb3M9cyxhPXBkKEEsZGQsdCwhMCk7aWYoYSl7bGV0IHQ7QS5za2lwKDkpO2Rve3Q9QS5nZXRCeXRlKCl9d2hpbGUoWUEodCkpO2xldCBpPSIiO2Zvcig7dD49MzImJnQ8PTU3OylpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLHQ9QS5nZXRCeXRlKCk7ZT1wYXJzZUludChpLDEwKSxpc05hTihlKSYmKGU9MCl9fXJldHVybiBIKHRoaXMsInN0YXJ0WFJlZiIsZSl9Y2hlY2tIZWFkZXIoKXtjb25zdCBBPXRoaXMuc3RyZWFtO2lmKEEucmVzZXQoKSwhcGQoQSx1ZCkpcmV0dXJuO0EubW92ZVN0YXJ0KCksQS5za2lwKHVkLmxlbmd0aCk7bGV0IGUsdD0iIjtmb3IoOyhlPUEuZ2V0Qnl0ZSgpKT4zMiYmdC5sZW5ndGg8NzspdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtEQS50ZXN0KHQpP3RoaXMuX3ZlcnNpb249dDpVKGBJbnZhbGlkIFBERiBoZWFkZXIgdmVyc2lvbjogJHt0fWApfXBhcnNlU3RhcnRYUmVmKCl7dGhpcy54cmVmLnNldFN0YXJ0WFJlZih0aGlzLnN0YXJ0WFJlZil9Z2V0IG51bVBhZ2VzKCl7bGV0IEE9MDtyZXR1cm4gQT10aGlzLmNhdGFsb2cuaGFzQWN0dWFsTnVtUGFnZXM/dGhpcy5jYXRhbG9nLm51bVBhZ2VzOnRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3RvcnkuZ2V0TnVtUGFnZXMoKTp0aGlzLmxpbmVhcml6YXRpb24/dGhpcy5saW5lYXJpemF0aW9uLm51bVBhZ2VzOnRoaXMuY2F0YWxvZy5udW1QYWdlcyxIKHRoaXMsIm51bVBhZ2VzIixBKX1faGFzT25seURvY3VtZW50U2lnbmF0dXJlcyhBLGU9MCl7cmV0dXJuISFBcnJheS5pc0FycmF5KEEpJiZBLmV2ZXJ5KChBPT57aWYoISgoQT10aGlzLnhyZWYuZmV0Y2hJZlJlZihBKSlpbnN0YW5jZW9mIFFBKSlyZXR1cm4hMTtpZihBLmhhcygiS2lkcyIpKXJldHVybisrZT4xMD8oVSgiX2hhc09ubHlEb2N1bWVudFNpZ25hdHVyZXM6IG1heGltdW0gcmVjdXJzaW9uIGRlcHRoIHJlYWNoZWQiKSwhMSk6dGhpcy5faGFzT25seURvY3VtZW50U2lnbmF0dXJlcyhBLmdldCgiS2lkcyIpLGUpO2NvbnN0IHQ9ZkEoQS5nZXQoIkZUIiksIlNpZyIpLGk9QS5nZXQoIlJlY3QiKSxhPUFycmF5LmlzQXJyYXkoaSkmJmkuZXZlcnkoKEE9PjA9PT1BKSk7cmV0dXJuIHQmJmF9KSl9Z2V0IF94ZmFTdHJlYW1zKCl7Y29uc3QgQT10aGlzLmNhdGFsb2cuYWNyb0Zvcm07aWYoIUEpcmV0dXJuIG51bGw7Y29uc3QgZT1BLmdldCgiWEZBIiksdD17InhkcDp4ZHAiOiIiLHRlbXBsYXRlOiIiLGRhdGFzZXRzOiIiLGNvbmZpZzoiIixjb25uZWN0aW9uU2V0OiIiLGxvY2FsZVNldDoiIixzdHlsZXNoZWV0OiIiLCIveGRwOnhkcCI6IiJ9O2lmKGUgaW5zdGFuY2VvZiB3QSYmIWUuaXNFbXB0eSlyZXR1cm4gdFsieGRwOnhkcCJdPWUsdDtpZighQXJyYXkuaXNBcnJheShlKXx8MD09PWUubGVuZ3RoKXJldHVybiBudWxsO2ZvcihsZXQgQT0wLGk9ZS5sZW5ndGg7QTxpO0ErPTIpe2xldCBhO2lmKGE9MD09PUE/InhkcDp4ZHAiOkE9PT1pLTI/Ii94ZHA6eGRwIjplW0FdLCF0Lmhhc093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IHM9dGhpcy54cmVmLmZldGNoSWZSZWYoZVtBKzFdKTtzIGluc3RhbmNlb2Ygd0EmJiFzLmlzRW1wdHkmJih0W2FdPXMpfXJldHVybiB0fWdldCB4ZmFEYXRhc2V0cygpe2NvbnN0IEE9dGhpcy5feGZhU3RyZWFtcztpZighQSlyZXR1cm4gSCh0aGlzLCJ4ZmFEYXRhc2V0cyIsbnVsbCk7Zm9yKGNvbnN0IGUgb2ZbImRhdGFzZXRzIiwieGRwOnhkcCJdKXtjb25zdCB0PUFbZV07aWYodCl0cnl7Y29uc3QgQT10QSh0LmdldFN0cmluZygpKTtyZXR1cm4gSCh0aGlzLCJ4ZmFEYXRhc2V0cyIsbmV3IEJkKHtbZV06QX0pKX1jYXRjaHtVKCJYRkEgLSBJbnZhbGlkIHV0Zi04IHN0cmluZy4iKTticmVha319cmV0dXJuIEgodGhpcywieGZhRGF0YXNldHMiLG51bGwpfWdldCB4ZmFEYXRhKCl7Y29uc3QgQT10aGlzLl94ZmFTdHJlYW1zO2lmKCFBKXJldHVybiBudWxsO2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3RbdCxpXW9mIE9iamVjdC5lbnRyaWVzKEEpKWlmKGkpdHJ5e2VbdF09dEEoaS5nZXRTdHJpbmcoKSl9Y2F0Y2h7cmV0dXJuIFUoIlhGQSAtIEludmFsaWQgdXRmLTggc3RyaW5nLiIpLG51bGx9cmV0dXJuIGV9Z2V0IHhmYUZhY3RvcnkoKXtsZXQgQTtyZXR1cm4gdGhpcy5wZGZNYW5hZ2VyLmVuYWJsZVhmYSYmdGhpcy5jYXRhbG9nLm5lZWRzUmVuZGVyaW5nJiZ0aGlzLmZvcm1JbmZvLmhhc1hmYSYmIXRoaXMuZm9ybUluZm8uaGFzQWNyb0Zvcm0mJihBPXRoaXMueGZhRGF0YSksSCh0aGlzLCJ4ZmFGYWN0b3J5IixBP25ldyBNdShBKTpudWxsKX1nZXQgaXNQdXJlWGZhKCl7cmV0dXJuISF0aGlzLnhmYUZhY3RvcnkmJnRoaXMueGZhRmFjdG9yeS5pc1ZhbGlkKCl9Z2V0IGh0bWxGb3JYZmEoKXtyZXR1cm4gdGhpcy54ZmFGYWN0b3J5P3RoaXMueGZhRmFjdG9yeS5nZXRQYWdlcygpOm51bGx9YXN5bmMgbG9hZFhmYUltYWdlcygpe2NvbnN0IEE9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coInhmYUltYWdlcyIpO2lmKCFBKXJldHVybjtjb25zdCBlPUEuZ2V0S2V5cygpLHQ9bmV3IEJvKEEsZSx0aGlzLnhyZWYpO2F3YWl0IHQubG9hZCgpO2NvbnN0IGk9bmV3IE1hcDtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPUEuZ2V0KHQpO2UgaW5zdGFuY2VvZiB3QSYmaS5zZXQodCxlLmdldEJ5dGVzKCkpfXRoaXMueGZhRmFjdG9yeS5zZXRJbWFnZXMoaSl9YXN5bmMgbG9hZFhmYUZvbnRzKEEsZSl7Y29uc3QgdD1hd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygiYWNyb0Zvcm0iKTtpZighdClyZXR1cm47Y29uc3QgaT1hd2FpdCB0LmdldEFzeW5jKCJEUiIpO2lmKCEoaSBpbnN0YW5jZW9mIFFBKSlyZXR1cm47Y29uc3QgYT1uZXcgQm8oaSxbIkZvbnQiXSx0aGlzLnhyZWYpO2F3YWl0IGEubG9hZCgpO2NvbnN0IHM9aS5nZXQoIkZvbnQiKTtpZighKHMgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMucGRmTWFuYWdlci5ldmFsdWF0b3JPcHRpb25zKTtuLnVzZVN5c3RlbUZvbnRzPSExO2NvbnN0IHI9bmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4Oi0xLGlkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOnRoaXMuY2F0YWxvZy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmNhdGFsb2cuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5jYXRhbG9nLnN0YW5kYXJkRm9udERhdGFDYWNoZSxvcHRpb25zOm59KSxnPW5ldyBhZyxvPVtdLEk9e2dldCBmb250KCl7cmV0dXJuIG8uYXQoLTEpfSxzZXQgZm9udChBKXtvLnB1c2goQSl9LGNsb25lKCl7cmV0dXJuIHRoaXN9fSxjPW5ldyBNYXA7cy5mb3JFYWNoKCgoQSxlKT0+e2Muc2V0KEEsZSl9KSk7Y29uc3QgaD1bXTtmb3IoY29uc3RbQSx0XW9mIGMpe2NvbnN0IGE9dC5nZXQoIkZvbnREZXNjcmlwdG9yIik7aWYoIShhIGluc3RhbmNlb2YgUUEpKWNvbnRpbnVlO2xldCBzPWEuZ2V0KCJGb250RmFtaWx5Iik7cz1zLnJlcGxhY2VBbGwoL1sgXSsoXGQpL2csIiQxIik7Y29uc3Qgbj17Zm9udEZhbWlseTpzLGZvbnRXZWlnaHQ6YS5nZXQoIkZvbnRXZWlnaHQiKSxpdGFsaWNBbmdsZTotYS5nZXQoIkl0YWxpY0FuZ2xlIil9OyRBKG4pJiZoLnB1c2goci5oYW5kbGVTZXRGb250KGksW0NBLmdldChBKSwxXSxudWxsLGcsZSxJLG51bGwsbikuY2F0Y2goKGZ1bmN0aW9uKEEpe3JldHVybiBVKGBsb2FkWGZhRm9udHM6ICIke0F9Ii5gKSxudWxsfSkpKX1hd2FpdCBQcm9taXNlLmFsbChoKTtjb25zdCBDPXRoaXMueGZhRmFjdG9yeS5zZXRGb250cyhvKTtpZighQylyZXR1cm47bi5pZ25vcmVFcnJvcnM9ITAsaC5sZW5ndGg9MCxvLmxlbmd0aD0wO2NvbnN0IEI9bmV3IFNldDtmb3IoY29uc3QgQSBvZiBDKVZuKGAke0F9LVJlZ3VsYXJgKXx8Qi5hZGQoQSk7Qi5zaXplJiZDLnB1c2goIlBkZkpTLUZhbGxiYWNrIik7Zm9yKGNvbnN0IEEgb2YgQylpZighQi5oYXMoQSkpZm9yKGNvbnN0IHQgb2Zbe25hbWU6IlJlZ3VsYXIiLGZvbnRXZWlnaHQ6NDAwLGl0YWxpY0FuZ2xlOjB9LHtuYW1lOiJCb2xkIixmb250V2VpZ2h0OjcwMCxpdGFsaWNBbmdsZTowfSx7bmFtZToiSXRhbGljIixmb250V2VpZ2h0OjQwMCxpdGFsaWNBbmdsZToxMn0se25hbWU6IkJvbGRJdGFsaWMiLGZvbnRXZWlnaHQ6NzAwLGl0YWxpY0FuZ2xlOjEyfV0pe2NvbnN0IGE9YCR7QX0tJHt0Lm5hbWV9YCxzPV9uKGEpO2gucHVzaChyLmhhbmRsZVNldEZvbnQoaSxbQ0EuZ2V0KGEpLDFdLG51bGwsZyxlLEkscyx7Zm9udEZhbWlseTpBLGZvbnRXZWlnaHQ6dC5mb250V2VpZ2h0LGl0YWxpY0FuZ2xlOnQuaXRhbGljQW5nbGV9KS5jYXRjaCgoZnVuY3Rpb24oQSl7cmV0dXJuIFUoYGxvYWRYZmFGb250czogIiR7QX0iLmApLG51bGx9KSkpfWF3YWl0IFByb21pc2UuYWxsKGgpLHRoaXMueGZhRmFjdG9yeS5hcHBlbmRGb250cyhvLEIpfWFzeW5jIHNlcmlhbGl6ZVhmYURhdGEoQSl7cmV0dXJuIHRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3Rvcnkuc2VyaWFsaXplRGF0YShBKTpudWxsfWdldCB2ZXJzaW9uKCl7cmV0dXJuIHRoaXMuY2F0YWxvZy52ZXJzaW9ufHx0aGlzLl92ZXJzaW9ufWdldCBmb3JtSW5mbygpe2NvbnN0IEE9e2hhc0ZpZWxkczohMSxoYXNBY3JvRm9ybTohMSxoYXNYZmE6ITEsaGFzU2lnbmF0dXJlczohMX0sZT10aGlzLmNhdGFsb2cuYWNyb0Zvcm07aWYoIWUpcmV0dXJuIEgodGhpcywiZm9ybUluZm8iLEEpO3RyeXtjb25zdCB0PWUuZ2V0KCJGaWVsZHMiKSxpPUFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjA7QS5oYXNGaWVsZHM9aTtjb25zdCBhPWUuZ2V0KCJYRkEiKTtBLmhhc1hmYT1BcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aD4wfHxhIGluc3RhbmNlb2Ygd0EmJiFhLmlzRW1wdHk7Y29uc3Qgcz0hISgxJmUuZ2V0KCJTaWdGbGFncyIpKSxuPXMmJnRoaXMuX2hhc09ubHlEb2N1bWVudFNpZ25hdHVyZXModCk7QS5oYXNBY3JvRm9ybT1pJiYhbixBLmhhc1NpZ25hdHVyZXM9c31jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTtVKGBDYW5ub3QgZmV0Y2ggZm9ybSBpbmZvcm1hdGlvbjogIiR7QX0iLmApfXJldHVybiBIKHRoaXMsImZvcm1JbmZvIixBKX1nZXQgZG9jdW1lbnRJbmZvKCl7Y29uc3QgQT17UERGRm9ybWF0VmVyc2lvbjp0aGlzLnZlcnNpb24sTGFuZ3VhZ2U6dGhpcy5jYXRhbG9nLmxhbmcsRW5jcnlwdEZpbHRlck5hbWU6dGhpcy54cmVmLmVuY3J5cHQ/dGhpcy54cmVmLmVuY3J5cHQuZmlsdGVyTmFtZTpudWxsLElzTGluZWFyaXplZDohIXRoaXMubGluZWFyaXphdGlvbixJc0Fjcm9Gb3JtUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc0Fjcm9Gb3JtLElzWEZBUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc1hmYSxJc0NvbGxlY3Rpb25QcmVzZW50OiEhdGhpcy5jYXRhbG9nLmNvbGxlY3Rpb24sSXNTaWduYXR1cmVzUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc1NpZ25hdHVyZXN9O2xldCBlO3RyeXtlPXRoaXMueHJlZi50cmFpbGVyLmdldCgiSW5mbyIpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO3goIlRoZSBkb2N1bWVudCBpbmZvcm1hdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuIil9aWYoIShlIGluc3RhbmNlb2YgUUEpKXJldHVybiBIKHRoaXMsImRvY3VtZW50SW5mbyIsQSk7Zm9yKGNvbnN0IHQgb2YgZS5nZXRLZXlzKCkpe2NvbnN0IGk9ZS5nZXQodCk7c3dpdGNoKHQpe2Nhc2UiVGl0bGUiOmNhc2UiQXV0aG9yIjpjYXNlIlN1YmplY3QiOmNhc2UiS2V5d29yZHMiOmNhc2UiQ3JlYXRvciI6Y2FzZSJQcm9kdWNlciI6Y2FzZSJDcmVhdGlvbkRhdGUiOmNhc2UiTW9kRGF0ZSI6aWYoInN0cmluZyI9PXR5cGVvZiBpKXtBW3RdPWVBKGkpO2NvbnRpbnVlfWJyZWFrO2Nhc2UiVHJhcHBlZCI6aWYoaSBpbnN0YW5jZW9mIENBKXtBW3RdPWk7Y29udGludWV9YnJlYWs7ZGVmYXVsdDpsZXQgZTtzd2l0Y2godHlwZW9mIGkpe2Nhc2Uic3RyaW5nIjplPWVBKGkpO2JyZWFrO2Nhc2UibnVtYmVyIjpjYXNlImJvb2xlYW4iOmU9aTticmVhaztkZWZhdWx0OmkgaW5zdGFuY2VvZiBDQSYmKGU9aSl9aWYodm9pZCAwPT09ZSl7VShgQmFkIHZhbHVlLCBmb3IgY3VzdG9tIGtleSAiJHt0fSIsIGluIEluZm86ICR7aX0uYCk7Y29udGludWV9QS5DdXN0b218fChBLkN1c3RvbT1PYmplY3QuY3JlYXRlKG51bGwpKSxBLkN1c3RvbVt0XT1lO2NvbnRpbnVlfVUoYEJhZCB2YWx1ZSwgZm9yIGtleSAiJHt0fSIsIGluIEluZm86ICR7aX0uYCl9cmV0dXJuIEgodGhpcywiZG9jdW1lbnRJbmZvIixBKX1nZXQgZmluZ2VycHJpbnRzKCl7ZnVuY3Rpb24gQShBKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEEmJkEubGVuZ3RoPjAmJiJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIhPT1BfWZ1bmN0aW9uIGUoQSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBBKXtjb25zdCBBPXQudG9TdHJpbmcoMTYpO2UucHVzaChBLnBhZFN0YXJ0KDIsIjAiKSl9cmV0dXJuIGUuam9pbigiIil9Y29uc3QgdD10aGlzLnhyZWYudHJhaWxlci5nZXQoIklEIik7bGV0IGksYTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmQSh0WzBdKT8oaT1qKHRbMF0pLHRbMV0hPT10WzBdJiZBKHRbMV0pJiYoYT1qKHRbMV0pKSk6aT1KZyh0aGlzLnN0cmVhbS5nZXRCeXRlUmFuZ2UoMCwxMDI0KSwwLDEwMjQpLEgodGhpcywiZmluZ2VycHJpbnRzIixbZShpKSxhP2UoYSk6bnVsbF0pfWFzeW5jIF9nZXRMaW5lYXJpemF0aW9uUGFnZShBKXtjb25zdHtjYXRhbG9nOmUsbGluZWFyaXphdGlvbjp0LHhyZWY6aX09dGhpcyxhPUVBLmdldCh0Lm9iamVjdE51bWJlckZpcnN0LDApO3RyeXtjb25zdCBBPWF3YWl0IGkuZmV0Y2hBc3luYyhhKTtpZihBIGluc3RhbmNlb2YgUUEpe2xldCB0PUEuZ2V0UmF3KCJUeXBlIik7aWYodCBpbnN0YW5jZW9mIEVBJiYodD1hd2FpdCBpLmZldGNoQXN5bmModCkpLGZBKHQsIlBhZ2UiKXx8IUEuaGFzKCJUeXBlIikmJiFBLmhhcygiS2lkcyIpJiZBLmhhcygiQ29udGVudHMiKSlyZXR1cm4gZS5wYWdlS2lkc0NvdW50Q2FjaGUuaGFzKGEpfHxlLnBhZ2VLaWRzQ291bnRDYWNoZS5wdXQoYSwxKSxlLnBhZ2VJbmRleENhY2hlLmhhcyhhKXx8ZS5wYWdlSW5kZXhDYWNoZS5wdXQoYSwwKSxbQSxhXX10aHJvdyBuZXcgVygiVGhlIExpbmVhcml6YXRpb24gZGljdGlvbmFyeSBkb2Vzbid0IHBvaW50IHRvIGEgdmFsaWQgUGFnZSBkaWN0aW9uYXJ5LiIpfWNhdGNoKHQpe3JldHVybiBVKGBfZ2V0TGluZWFyaXphdGlvblBhZ2U6ICIke3QubWVzc2FnZX0iLmApLGUuZ2V0UGFnZURpY3QoQSl9fWdldFBhZ2UoQSl7Y29uc3QgZT10aGlzLl9wYWdlUHJvbWlzZXMuZ2V0KEEpO2lmKGUpcmV0dXJuIGU7Y29uc3R7Y2F0YWxvZzp0LGxpbmVhcml6YXRpb246aSx4ZmFGYWN0b3J5OmF9PXRoaXM7bGV0IHM7cmV0dXJuIHM9YT9Qcm9taXNlLnJlc29sdmUoW1FBLmVtcHR5LG51bGxdKTppPy5wYWdlRmlyc3Q9PT1BP3RoaXMuX2dldExpbmVhcml6YXRpb25QYWdlKEEpOnQuZ2V0UGFnZURpY3QoQSkscz1zLnRoZW4oKChbZSxpXSk9Pm5ldyBFZCh7cGRmTWFuYWdlcjp0aGlzLnBkZk1hbmFnZXIseHJlZjp0aGlzLnhyZWYscGFnZUluZGV4OkEscGFnZURpY3Q6ZSxyZWY6aSxnbG9iYWxJZEZhY3Rvcnk6dGhpcy5fZ2xvYmFsSWRGYWN0b3J5LGZvbnRDYWNoZTp0LmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnQuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dC5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0Lmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnQuc3lzdGVtRm9udENhY2hlLG5vbkJsZW5kTW9kZXNTZXQ6dC5ub25CbGVuZE1vZGVzU2V0LHhmYUZhY3Rvcnk6YX0pKSksdGhpcy5fcGFnZVByb21pc2VzLnNldChBLHMpLHN9YXN5bmMgY2hlY2tGaXJzdFBhZ2UoQT0hMSl7aWYoIUEpdHJ5e2F3YWl0IHRoaXMuZ2V0UGFnZSgwKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2YgU0EpdGhyb3cgdGhpcy5fcGFnZVByb21pc2VzLmRlbGV0ZSgwKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxuZXcgUkF9fWFzeW5jIGNoZWNrTGFzdFBhZ2UoQT0hMSl7Y29uc3R7Y2F0YWxvZzplLHBkZk1hbmFnZXI6dH09dGhpcztsZXQgaTtlLnNldEFjdHVhbE51bVBhZ2VzKCk7dHJ5e2lmKGF3YWl0IFByb21pc2UuYWxsKFt0LmVuc3VyZURvYygieGZhRmFjdG9yeSIpLHQuZW5zdXJlRG9jKCJsaW5lYXJpemF0aW9uIiksdC5lbnN1cmVDYXRhbG9nKCJudW1QYWdlcyIpXSksdGhpcy54ZmFGYWN0b3J5KXJldHVybjtpZihpPXRoaXMubGluZWFyaXphdGlvbj90aGlzLmxpbmVhcml6YXRpb24ubnVtUGFnZXM6ZS5udW1QYWdlcywhTnVtYmVyLmlzSW50ZWdlcihpKSl0aHJvdyBuZXcgVygiUGFnZSBjb3VudCBpcyBub3QgYW4gaW50ZWdlci4iKTtpZihpPD0xKXJldHVybjthd2FpdCB0aGlzLmdldFBhZ2UoaS0xKX1jYXRjaChhKXtpZih0aGlzLl9wYWdlUHJvbWlzZXMuZGVsZXRlKGktMSksYXdhaXQgdGhpcy5jbGVhbnVwKCksYSBpbnN0YW5jZW9mIFNBJiYhQSl0aHJvdyBuZXcgUkE7bGV0IHM7VShgY2hlY2tMYXN0UGFnZSAtIGludmFsaWQgL1BhZ2VzIHRyZWUgL0NvdW50OiAke2l9LmApO3RyeXtzPWF3YWl0IGUuZ2V0QWxsUGFnZURpY3RzKEEpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBTQSYmIUEpdGhyb3cgbmV3IFJBO3JldHVybiB2b2lkIGUuc2V0QWN0dWFsTnVtUGFnZXMoMSl9Zm9yKGNvbnN0W0EsW2ksYV1db2Ygcyl7bGV0IHM7aSBpbnN0YW5jZW9mIEVycm9yPyhzPVByb21pc2UucmVqZWN0KGkpLHMuY2F0Y2goKCgpPT57fSkpKTpzPVByb21pc2UucmVzb2x2ZShuZXcgRWQoe3BkZk1hbmFnZXI6dCx4cmVmOnRoaXMueHJlZixwYWdlSW5kZXg6QSxwYWdlRGljdDppLHJlZjphLGdsb2JhbElkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOmUuZm9udENhY2hlLGJ1aWx0SW5DTWFwQ2FjaGU6ZS5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTplLnN0YW5kYXJkRm9udERhdGFDYWNoZSxnbG9iYWxJbWFnZUNhY2hlOmUuZ2xvYmFsSW1hZ2VDYWNoZSxzeXN0ZW1Gb250Q2FjaGU6ZS5zeXN0ZW1Gb250Q2FjaGUsbm9uQmxlbmRNb2Rlc1NldDplLm5vbkJsZW5kTW9kZXNTZXQseGZhRmFjdG9yeTpudWxsfSkpLHRoaXMuX3BhZ2VQcm9taXNlcy5zZXQoQSxzKX1lLnNldEFjdHVhbE51bVBhZ2VzKHMuc2l6ZSl9fWZvbnRGYWxsYmFjayhBLGUpe3JldHVybiB0aGlzLmNhdGFsb2cuZm9udEZhbGxiYWNrKEEsZSl9YXN5bmMgY2xlYW51cChBPSExKXtyZXR1cm4gdGhpcy5jYXRhbG9nP3RoaXMuY2F0YWxvZy5jbGVhbnVwKEEpOmtnKCl9YXN5bmMjVyhBLGUsdCxpLGEscyxuKXtjb25zdHt4cmVmOnJ9PXRoaXM7aWYoISh0IGluc3RhbmNlb2YgRUEpfHxzLmhhcyh0KSlyZXR1cm47cy5wdXQodCk7Y29uc3QgZz1hd2FpdCByLmZldGNoQXN5bmModCk7aWYoIShnIGluc3RhbmNlb2YgUUEpKXJldHVybjtpZihnLmhhcygiVCIpKXtjb25zdCBlPWVBKGF3YWl0IGcuZ2V0QXN5bmMoIlQiKSk7QT0iIj09PUE/ZTpgJHtBfS4ke2V9YH1lbHNle2xldCB0PWc7Zm9yKDs7KXtpZih0PXQuZ2V0UmF3KCJQYXJlbnQiKXx8ZSx0IGluc3RhbmNlb2YgRUEpe2lmKHMuaGFzKHQpKWJyZWFrO3Q9YXdhaXQgci5mZXRjaEFzeW5jKHQpfWlmKCEodCBpbnN0YW5jZW9mIFFBKSlicmVhaztpZih0LmhhcygiVCIpKXtjb25zdCBlPWVBKGF3YWl0IHQuZ2V0QXN5bmMoIlQiKSk7QT0iIj09PUE/ZTpgJHtBfS4ke2V9YDticmVha319fWlmKGUmJiFnLmhhcygiUGFyZW50IikmJmZBKGcuZ2V0KCJTdWJ0eXBlIiksIldpZGdldCIpJiZuLnB1dCh0LGUpLGkuaGFzKEEpfHxpLnNldChBLFtdKSxpLmdldChBKS5wdXNoKEx1LmNyZWF0ZShyLHQsYSxudWxsLCEwLG4sbnVsbCkudGhlbigoQT0+QT8uZ2V0RmllbGRPYmplY3QoKSkpLmNhdGNoKChmdW5jdGlvbihBKXtyZXR1cm4gVShgI2NvbGxlY3RGaWVsZE9iamVjdHM6ICIke0F9Ii5gKSxudWxsfSkpKSwhZy5oYXMoIktpZHMiKSlyZXR1cm47Y29uc3Qgbz1hd2FpdCBnLmdldEFzeW5jKCJLaWRzIik7aWYoQXJyYXkuaXNBcnJheShvKSlmb3IoY29uc3QgZSBvZiBvKWF3YWl0IHRoaXMuI1coQSx0LGUsaSxhLHMsbil9Z2V0IGZpZWxkT2JqZWN0cygpe3JldHVybiB0aGlzLmZvcm1JbmZvLmhhc0ZpZWxkcz9IKHRoaXMsImZpZWxkT2JqZWN0cyIsUHJvbWlzZS5hbGwoW3RoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIildKS50aGVuKChhc3luYyhbQSxlXSk9PntpZighQSlyZXR1cm4gbnVsbDtjb25zdCB0PW5ldyB1QSxpPU9iamVjdC5jcmVhdGUobnVsbCksYT1uZXcgTWFwLHM9bmV3IGRBO2Zvcihjb25zdCBpIG9mIGF3YWl0IGUuZ2V0QXN5bmMoIkZpZWxkcyIpKWF3YWl0IHRoaXMuI1coIiIsbnVsbCxpLGEsQSx0LHMpO2NvbnN0IG49W107Zm9yKGNvbnN0W0EsZV1vZiBhKW4ucHVzaChQcm9taXNlLmFsbChlKS50aGVuKChlPT57KGU9ZS5maWx0ZXIoKEE9PiEhQSkpKS5sZW5ndGg+MCYmKGlbQV09ZSl9KSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbChuKSx7YWxsRmllbGRzOmksb3JwaGFuRmllbGRzOnN9fSkpKTpIKHRoaXMsImZpZWxkT2JqZWN0cyIsUHJvbWlzZS5yZXNvbHZlKG51bGwpKX1nZXQgaGFzSlNBY3Rpb25zKCl7cmV0dXJuIEgodGhpcywiaGFzSlNBY3Rpb25zIix0aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJfcGFyc2VIYXNKU0FjdGlvbnMiKSl9YXN5bmMgX3BhcnNlSGFzSlNBY3Rpb25zKCl7Y29uc3RbQSxlXT1hd2FpdCBQcm9taXNlLmFsbChbdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImpzQWN0aW9ucyIpLHRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpXSk7cmV0dXJuISFBfHwhIWUmJk9iamVjdC52YWx1ZXMoZS5hbGxGaWVsZHMpLnNvbWUoKEE9PkEuc29tZSgoQT0+bnVsbCE9PUEuYWN0aW9ucykpKSl9Z2V0IGNhbGN1bGF0aW9uT3JkZXJJZHMoKXtjb25zdCBBPXRoaXMuY2F0YWxvZy5hY3JvRm9ybTtpZighQT8uaGFzKCJDTyIpKXJldHVybiBIKHRoaXMsImNhbGN1bGF0aW9uT3JkZXJJZHMiLG51bGwpO2NvbnN0IGU9QS5nZXQoIkNPIik7aWYoIUFycmF5LmlzQXJyYXkoZSl8fDA9PT1lLmxlbmd0aClyZXR1cm4gSCh0aGlzLCJjYWxjdWxhdGlvbk9yZGVySWRzIixudWxsKTtjb25zdCB0PVtdO2Zvcihjb25zdCBBIG9mIGUpQSBpbnN0YW5jZW9mIEVBJiZ0LnB1c2goQS50b1N0cmluZygpKTtyZXR1cm4gMD09PXQubGVuZ3RoP0godGhpcywiY2FsY3VsYXRpb25PcmRlcklkcyIsbnVsbCk6SCh0aGlzLCJjYWxjdWxhdGlvbk9yZGVySWRzIix0KX1nZXQgYW5ub3RhdGlvbkdsb2JhbHMoKXtyZXR1cm4gSCh0aGlzLCJhbm5vdGF0aW9uR2xvYmFscyIsTHUuY3JlYXRlR2xvYmFscyh0aGlzLnBkZk1hbmFnZXIpKX19Y2xhc3MgeWR7Y29uc3RydWN0b3IoQSl7dGhpcy5fZG9jQmFzZVVybD1mdW5jdGlvbihBKXtpZihBKXtjb25zdCBlPUooQSk7aWYoZSlyZXR1cm4gZS5ocmVmO1UoYEludmFsaWQgYWJzb2x1dGUgZG9jQmFzZVVybDogIiR7QX0iLmApfXJldHVybiBudWxsfShBLmRvY0Jhc2VVcmwpLHRoaXMuX2RvY0lkPUEuZG9jSWQsdGhpcy5fcGFzc3dvcmQ9QS5wYXNzd29yZCx0aGlzLmVuYWJsZVhmYT1BLmVuYWJsZVhmYSxBLmV2YWx1YXRvck9wdGlvbnMuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQmJj1fLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkLHRoaXMuZXZhbHVhdG9yT3B0aW9ucz1PYmplY3QuZnJlZXplKEEuZXZhbHVhdG9yT3B0aW9ucyl9Z2V0IGRvY0lkKCl7cmV0dXJuIHRoaXMuX2RvY0lkfWdldCBwYXNzd29yZCgpe3JldHVybiB0aGlzLl9wYXNzd29yZH1nZXQgZG9jQmFzZVVybCgpe3JldHVybiB0aGlzLl9kb2NCYXNlVXJsfWdldCBjYXRhbG9nKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuY2F0YWxvZ31lbnN1cmVEb2MoQSxlKXtyZXR1cm4gdGhpcy5lbnN1cmUodGhpcy5wZGZEb2N1bWVudCxBLGUpfWVuc3VyZVhSZWYoQSxlKXtyZXR1cm4gdGhpcy5lbnN1cmUodGhpcy5wZGZEb2N1bWVudC54cmVmLEEsZSl9ZW5zdXJlQ2F0YWxvZyhBLGUpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LmNhdGFsb2csQSxlKX1nZXRQYWdlKEEpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoQSl9Zm9udEZhbGxiYWNrKEEsZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuZm9udEZhbGxiYWNrKEEsZSl9bG9hZFhmYUZvbnRzKEEsZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQubG9hZFhmYUZvbnRzKEEsZSl9bG9hZFhmYUltYWdlcygpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmxvYWRYZmFJbWFnZXMoKX1zZXJpYWxpemVYZmFEYXRhKEEpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LnNlcmlhbGl6ZVhmYURhdGEoQSl9Y2xlYW51cChBPSExKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5jbGVhbnVwKEEpfWFzeW5jIGVuc3VyZShBLGUsdCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBlbnN1cmVgIGNhbGxlZCIpfXJlcXVlc3RSYW5nZShBLGUpe00oIkFic3RyYWN0IG1ldGhvZCBgcmVxdWVzdFJhbmdlYCBjYWxsZWQiKX1yZXF1ZXN0TG9hZGVkU3RyZWFtKEE9ITEpe00oIkFic3RyYWN0IG1ldGhvZCBgcmVxdWVzdExvYWRlZFN0cmVhbWAgY2FsbGVkIil9c2VuZFByb2dyZXNzaXZlRGF0YShBKXtNKCJBYnN0cmFjdCBtZXRob2QgYHNlbmRQcm9ncmVzc2l2ZURhdGFgIGNhbGxlZCIpfXVwZGF0ZVBhc3N3b3JkKEEpe3RoaXMuX3Bhc3N3b3JkPUF9dGVybWluYXRlKEEpe00oIkFic3RyYWN0IG1ldGhvZCBgdGVybWluYXRlYCBjYWxsZWQiKX19Y2xhc3Mgd2QgZXh0ZW5kcyB5ZHtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdCBlPW5ldyBnZShBLnNvdXJjZSk7dGhpcy5wZGZEb2N1bWVudD1uZXcgbWQodGhpcyxlKSx0aGlzLl9sb2FkZWRTdHJlYW1Qcm9taXNlPVByb21pc2UucmVzb2x2ZShlKX1hc3luYyBlbnN1cmUoQSxlLHQpe2NvbnN0IGk9QVtlXTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KEEsdCk6aX1yZXF1ZXN0UmFuZ2UoQSxlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9cmVxdWVzdExvYWRlZFN0cmVhbShBPSExKXtyZXR1cm4gdGhpcy5fbG9hZGVkU3RyZWFtUHJvbWlzZX10ZXJtaW5hdGUoQSl7fX1jbGFzcyBEZCBleHRlbmRzIHlke2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMuc3RyZWFtTWFuYWdlcj1uZXcgaGUoQS5zb3VyY2Use21zZ0hhbmRsZXI6QS5oYW5kbGVyLGxlbmd0aDpBLmxlbmd0aCxkaXNhYmxlQXV0b0ZldGNoOkEuZGlzYWJsZUF1dG9GZXRjaCxyYW5nZUNodW5rU2l6ZTpBLnJhbmdlQ2h1bmtTaXplfSksdGhpcy5wZGZEb2N1bWVudD1uZXcgbWQodGhpcyx0aGlzLnN0cmVhbU1hbmFnZXIuZ2V0U3RyZWFtKCkpfWFzeW5jIGVuc3VyZShBLGUsdCl7dHJ5e2NvbnN0IGk9QVtlXTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KEEsdCk6aX1jYXRjaChpKXtpZighKGkgaW5zdGFuY2VvZiBrQSkpdGhyb3cgaTtyZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0UmFuZ2UoaS5iZWdpbixpLmVuZCksdGhpcy5lbnN1cmUoQSxlLHQpfX1yZXF1ZXN0UmFuZ2UoQSxlKXtyZXR1cm4gdGhpcy5zdHJlYW1NYW5hZ2VyLnJlcXVlc3RSYW5nZShBLGUpfXJlcXVlc3RMb2FkZWRTdHJlYW0oQT0hMSl7cmV0dXJuIHRoaXMuc3RyZWFtTWFuYWdlci5yZXF1ZXN0QWxsQ2h1bmtzKEEpfXNlbmRQcm9ncmVzc2l2ZURhdGEoQSl7dGhpcy5zdHJlYW1NYW5hZ2VyLm9uUmVjZWl2ZURhdGEoe2NodW5rOkF9KX10ZXJtaW5hdGUoQSl7dGhpcy5zdHJlYW1NYW5hZ2VyLmFib3J0KEEpfX1mdW5jdGlvbiBiZChBKXtzd2l0Y2goQSBpbnN0YW5jZW9mIEVycm9yfHwib2JqZWN0Ij09dHlwZW9mIEEmJm51bGwhPT1BfHxNKCd3cmFwUmVhc29uOiBFeHBlY3RlZCAicmVhc29uIiB0byBiZSBhIChwb3NzaWJseSBjbG9uZWQpIEVycm9yLicpLEEubmFtZSl7Y2FzZSJBYm9ydEV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBPKEEubWVzc2FnZSk7Y2FzZSJNaXNzaW5nUERGRXhjZXB0aW9uIjpyZXR1cm4gbmV3IFQoQS5tZXNzYWdlKTtjYXNlIlBhc3N3b3JkRXhjZXB0aW9uIjpyZXR1cm4gbmV3IHYoQS5tZXNzYWdlLEEuY29kZSk7Y2FzZSJVbmV4cGVjdGVkUmVzcG9uc2VFeGNlcHRpb24iOnJldHVybiBuZXcgUChBLm1lc3NhZ2UsQS5zdGF0dXMpO2Nhc2UiVW5rbm93bkVycm9yRXhjZXB0aW9uIjpyZXR1cm4gbmV3IEsoQS5tZXNzYWdlLEEuZGV0YWlscyk7ZGVmYXVsdDpyZXR1cm4gbmV3IEsoQS5tZXNzYWdlLEEudG9TdHJpbmcoKSl9fWNsYXNzIGtke2NvbnN0cnVjdG9yKEEsZSx0KXt0aGlzLnNvdXJjZU5hbWU9QSx0aGlzLnRhcmdldE5hbWU9ZSx0aGlzLmNvbU9iaj10LHRoaXMuY2FsbGJhY2tJZD0xLHRoaXMuc3RyZWFtSWQ9MSx0aGlzLnN0cmVhbVNpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5zdHJlYW1Db250cm9sbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY2FsbGJhY2tDYXBhYmlsaXRpZXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmFjdGlvbkhhbmRsZXI9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9vbkNvbU9iak9uTWVzc2FnZT1BPT57Y29uc3QgZT1BLmRhdGE7aWYoZS50YXJnZXROYW1lIT09dGhpcy5zb3VyY2VOYW1lKXJldHVybjtpZihlLnN0cmVhbSlyZXR1cm4gdm9pZCB0aGlzLiNPKGUpO2lmKGUuY2FsbGJhY2spe2NvbnN0IEE9ZS5jYWxsYmFja0lkLHQ9dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1tBXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIGNhbGxiYWNrICR7QX1gKTtpZihkZWxldGUgdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1tBXSwxPT09ZS5jYWxsYmFjayl0LnJlc29sdmUoZS5kYXRhKTtlbHNle2lmKDIhPT1lLmNhbGxiYWNrKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjYWxsYmFjayBjYXNlIik7dC5yZWplY3QoYmQoZS5yZWFzb24pKX1yZXR1cm59Y29uc3QgaT10aGlzLmFjdGlvbkhhbmRsZXJbZS5hY3Rpb25dO2lmKCFpKXRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY3Rpb24gZnJvbSB3b3JrZXI6ICR7ZS5hY3Rpb259YCk7aWYoZS5jYWxsYmFja0lkKXtjb25zdCBBPXRoaXMuc291cmNlTmFtZSxhPWUuc291cmNlTmFtZTtuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSl7QShpKGUuZGF0YSkpfSkpLnRoZW4oKGZ1bmN0aW9uKGkpe3QucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6QSx0YXJnZXROYW1lOmEsY2FsbGJhY2s6MSxjYWxsYmFja0lkOmUuY2FsbGJhY2tJZCxkYXRhOml9KX0pLChmdW5jdGlvbihpKXt0LnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOkEsdGFyZ2V0TmFtZTphLGNhbGxiYWNrOjIsY2FsbGJhY2tJZDplLmNhbGxiYWNrSWQscmVhc29uOmJkKGkpfSl9KSl9ZWxzZSBlLnN0cmVhbUlkP3RoaXMuI1ooZSk6aShlLmRhdGEpfSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuX29uQ29tT2JqT25NZXNzYWdlKX1vbihBLGUpe2NvbnN0IHQ9dGhpcy5hY3Rpb25IYW5kbGVyO2lmKHRbQV0pdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBhbHJlYWR5IGFuIGFjdGlvbk5hbWUgY2FsbGVkICIke0F9ImApO3RbQV09ZX1zZW5kKEEsZSx0KXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOkEsZGF0YTplfSx0KX1zZW5kV2l0aFByb21pc2UoQSxlLHQpe2NvbnN0IGk9dGhpcy5jYWxsYmFja0lkKyssYT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt0aGlzLmNhbGxiYWNrQ2FwYWJpbGl0aWVzW2ldPWE7dHJ5e3RoaXMuY29tT2JqLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnRoaXMuc291cmNlTmFtZSx0YXJnZXROYW1lOnRoaXMudGFyZ2V0TmFtZSxhY3Rpb246QSxjYWxsYmFja0lkOmksZGF0YTplfSx0KX1jYXRjaChBKXthLnJlamVjdChBKX1yZXR1cm4gYS5wcm9taXNlfXNlbmRXaXRoU3RyZWFtKEEsZSx0LGkpe2NvbnN0IGE9dGhpcy5zdHJlYW1JZCsrLHM9dGhpcy5zb3VyY2VOYW1lLG49dGhpcy50YXJnZXROYW1lLHI9dGhpcy5jb21PYmo7cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6dD0+e2NvbnN0IGc9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV09e2NvbnRyb2xsZXI6dCxzdGFydENhbGw6ZyxwdWxsQ2FsbDpudWxsLGNhbmNlbENhbGw6bnVsbCxpc0Nsb3NlZDohMX0sci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6bixhY3Rpb246QSxzdHJlYW1JZDphLGRhdGE6ZSxkZXNpcmVkU2l6ZTp0LmRlc2lyZWRTaXplfSxpKSxnLnByb21pc2V9LHB1bGw6QT0+e2NvbnN0IGU9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV0ucHVsbENhbGw9ZSxyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnMsdGFyZ2V0TmFtZTpuLHN0cmVhbTo2LHN0cmVhbUlkOmEsZGVzaXJlZFNpemU6QS5kZXNpcmVkU2l6ZX0pLGUucHJvbWlzZX0sY2FuY2VsOkE9PntMKEEgaW5zdGFuY2VvZiBFcnJvciwiY2FuY2VsIG11c3QgaGF2ZSBhIHZhbGlkIHJlYXNvbiIpO2NvbnN0IGU9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV0uY2FuY2VsQ2FsbD1lLHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV0uaXNDbG9zZWQ9ITAsci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6bixzdHJlYW06MSxzdHJlYW1JZDphLHJlYXNvbjpiZChBKX0pLGUucHJvbWlzZX19LHQpfSNaKEEpe2NvbnN0IGU9QS5zdHJlYW1JZCx0PXRoaXMuc291cmNlTmFtZSxpPUEuc291cmNlTmFtZSxhPXRoaXMuY29tT2JqLHM9dGhpcyxuPXRoaXMuYWN0aW9uSGFuZGxlcltBLmFjdGlvbl0scj17ZW5xdWV1ZShBLHM9MSxuKXtpZih0aGlzLmlzQ2FuY2VsbGVkKXJldHVybjtjb25zdCByPXRoaXMuZGVzaXJlZFNpemU7dGhpcy5kZXNpcmVkU2l6ZS09cyxyPjAmJnRoaXMuZGVzaXJlZFNpemU8PTAmJih0aGlzLnNpbmtDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMucmVhZHk9dGhpcy5zaW5rQ2FwYWJpbGl0eS5wcm9taXNlKSxhLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbTo0LHN0cmVhbUlkOmUsY2h1bms6QX0sbil9LGNsb3NlKCl7dGhpcy5pc0NhbmNlbGxlZHx8KHRoaXMuaXNDYW5jZWxsZWQ9ITAsYS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06MyxzdHJlYW1JZDplfSksZGVsZXRlIHMuc3RyZWFtU2lua3NbZV0pfSxlcnJvcihBKXtMKEEgaW5zdGFuY2VvZiBFcnJvciwiZXJyb3IgbXVzdCBoYXZlIGEgdmFsaWQgcmVhc29uIiksdGhpcy5pc0NhbmNlbGxlZHx8KHRoaXMuaXNDYW5jZWxsZWQ9ITAsYS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06NSxzdHJlYW1JZDplLHJlYXNvbjpiZChBKX0pKX0sc2lua0NhcGFiaWxpdHk6UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksb25QdWxsOm51bGwsb25DYW5jZWw6bnVsbCxpc0NhbmNlbGxlZDohMSxkZXNpcmVkU2l6ZTpBLmRlc2lyZWRTaXplLHJlYWR5Om51bGx9O3Iuc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpLHIucmVhZHk9ci5zaW5rQ2FwYWJpbGl0eS5wcm9taXNlLHRoaXMuc3RyZWFtU2lua3NbZV09cixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7ZShuKEEuZGF0YSxyKSl9KSkudGhlbigoZnVuY3Rpb24oKXthLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbTo4LHN0cmVhbUlkOmUsc3VjY2VzczohMH0pfSksKGZ1bmN0aW9uKEEpe2EucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dCx0YXJnZXROYW1lOmksc3RyZWFtOjgsc3RyZWFtSWQ6ZSxyZWFzb246YmQoQSl9KX0pKX0jTyhBKXtjb25zdCBlPUEuc3RyZWFtSWQsdD10aGlzLnNvdXJjZU5hbWUsaT1BLnNvdXJjZU5hbWUsYT10aGlzLmNvbU9iaixzPXRoaXMuc3RyZWFtQ29udHJvbGxlcnNbZV0sbj10aGlzLnN0cmVhbVNpbmtzW2VdO3N3aXRjaChBLnN0cmVhbSl7Y2FzZSA4OkEuc3VjY2Vzcz9zLnN0YXJ0Q2FsbC5yZXNvbHZlKCk6cy5zdGFydENhbGwucmVqZWN0KGJkKEEucmVhc29uKSk7YnJlYWs7Y2FzZSA3OkEuc3VjY2Vzcz9zLnB1bGxDYWxsLnJlc29sdmUoKTpzLnB1bGxDYWxsLnJlamVjdChiZChBLnJlYXNvbikpO2JyZWFrO2Nhc2UgNjppZighbil7YS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KTticmVha31uLmRlc2lyZWRTaXplPD0wJiZBLmRlc2lyZWRTaXplPjAmJm4uc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpLG4uZGVzaXJlZFNpemU9QS5kZXNpcmVkU2l6ZSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSl7QShuLm9uUHVsbD8uKCkpfSkpLnRoZW4oKGZ1bmN0aW9uKCl7YS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KX0pLChmdW5jdGlvbihBKXthLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbTo3LHN0cmVhbUlkOmUscmVhc29uOmJkKEEpfSl9KSk7YnJlYWs7Y2FzZSA0OmlmKEwocywiZW5xdWV1ZSBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpLHMuaXNDbG9zZWQpYnJlYWs7cy5jb250cm9sbGVyLmVucXVldWUoQS5jaHVuayk7YnJlYWs7Y2FzZSAzOmlmKEwocywiY2xvc2Ugc2hvdWxkIGhhdmUgc3RyZWFtIGNvbnRyb2xsZXIiKSxzLmlzQ2xvc2VkKWJyZWFrO3MuaXNDbG9zZWQ9ITAscy5jb250cm9sbGVyLmNsb3NlKCksdGhpcy4jaihzLGUpO2JyZWFrO2Nhc2UgNTpMKHMsImVycm9yIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIikscy5jb250cm9sbGVyLmVycm9yKGJkKEEucmVhc29uKSksdGhpcy4jaihzLGUpO2JyZWFrO2Nhc2UgMjpBLnN1Y2Nlc3M/cy5jYW5jZWxDYWxsLnJlc29sdmUoKTpzLmNhbmNlbENhbGwucmVqZWN0KGJkKEEucmVhc29uKSksdGhpcy4jaihzLGUpO2JyZWFrO2Nhc2UgMTppZighbilicmVhaztuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7ZShuLm9uQ2FuY2VsPy4oYmQoQS5yZWFzb24pKSl9KSkudGhlbigoZnVuY3Rpb24oKXthLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbToyLHN0cmVhbUlkOmUsc3VjY2VzczohMH0pfSksKGZ1bmN0aW9uKEEpe2EucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dCx0YXJnZXROYW1lOmksc3RyZWFtOjIsc3RyZWFtSWQ6ZSxyZWFzb246YmQoQSl9KX0pKSxuLnNpbmtDYXBhYmlsaXR5LnJlamVjdChiZChBLnJlYXNvbikpLG4uaXNDYW5jZWxsZWQ9ITAsZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbZV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjaihBLGUpe2F3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbQS5zdGFydENhbGw/LnByb21pc2UsQS5wdWxsQ2FsbD8ucHJvbWlzZSxBLmNhbmNlbENhbGw/LnByb21pc2VdKSxkZWxldGUgdGhpcy5zdHJlYW1Db250cm9sbGVyc1tlXX1kZXN0cm95KCl7dGhpcy5jb21PYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fb25Db21PYmpPbk1lc3NhZ2UpfX1jbGFzcyBGZHtjb25zdHJ1Y3RvcihBKXt0aGlzLl9tc2dIYW5kbGVyPUEsdGhpcy5fY29udGVudExlbmd0aD1udWxsLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW51bGwsdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycz1bXX1nZXRGdWxsUmVhZGVyKCl7cmV0dXJuIEwoIXRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyLCJQREZXb3JrZXJTdHJlYW0uZ2V0RnVsbFJlYWRlciBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4iKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1uZXcgU2QodGhpcy5fbXNnSGFuZGxlciksdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXJ9Z2V0UmFuZ2VSZWFkZXIoQSxlKXtjb25zdCB0PW5ldyBSZChBLGUsdGhpcy5fbXNnSGFuZGxlcik7cmV0dXJuIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaCh0KSx0fWNhbmNlbEFsbFJlcXVlc3RzKEEpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5jYW5jZWwoQSk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5zbGljZSgwKSllLmNhbmNlbChBKX19Y2xhc3MgU2R7Y29uc3RydWN0b3IoQSl7dGhpcy5fbXNnSGFuZGxlcj1BLHRoaXMub25Qcm9ncmVzcz1udWxsLHRoaXMuX2NvbnRlbnRMZW5ndGg9bnVsbCx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSExLHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkPSExO2NvbnN0IGU9dGhpcy5fbXNnSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0UmVhZGVyIik7dGhpcy5fcmVhZGVyPWUuZ2V0UmVhZGVyKCksdGhpcy5faGVhZGVyc1JlYWR5PXRoaXMuX21zZ0hhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJSZWFkZXJIZWFkZXJzUmVhZHkiKS50aGVuKChBPT57dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9QS5pc1N0cmVhbWluZ1N1cHBvcnRlZCx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPUEuaXNSYW5nZVN1cHBvcnRlZCx0aGlzLl9jb250ZW50TGVuZ3RoPUEuY29udGVudExlbmd0aH0pKX1nZXQgaGVhZGVyc1JlYWR5KCl7cmV0dXJuIHRoaXMuX2hlYWRlcnNSZWFkeX1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9jb250ZW50TGVuZ3RofWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1nZXQgaXNSYW5nZVN1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1JhbmdlU3VwcG9ydGVkfWFzeW5jIHJlYWQoKXtjb25zdHt2YWx1ZTpBLGRvbmU6ZX09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gZT97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Ont2YWx1ZTpBLmJ1ZmZlcixkb25lOiExfX1jYW5jZWwoQSl7dGhpcy5fcmVhZGVyLmNhbmNlbChBKX19Y2xhc3MgUmR7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuX21zZ0hhbmRsZXI9dCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbDtjb25zdCBpPXRoaXMuX21zZ0hhbmRsZXIuc2VuZFdpdGhTdHJlYW0oIkdldFJhbmdlUmVhZGVyIix7YmVnaW46QSxlbmQ6ZX0pO3RoaXMuX3JlYWRlcj1pLmdldFJlYWRlcigpfWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiExfWFzeW5jIHJlYWQoKXtjb25zdHt2YWx1ZTpBLGRvbmU6ZX09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gZT97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Ont2YWx1ZTpBLmJ1ZmZlcixkb25lOiExfX1jYW5jZWwoQSl7dGhpcy5fcmVhZGVyLmNhbmNlbChBKX19Y2xhc3MgR2R7Y29uc3RydWN0b3IoQSl7dGhpcy5uYW1lPUEsdGhpcy50ZXJtaW5hdGVkPSExLHRoaXMuX2NhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCl9Z2V0IGZpbmlzaGVkKCl7cmV0dXJuIHRoaXMuX2NhcGFiaWxpdHkucHJvbWlzZX1maW5pc2goKXt0aGlzLl9jYXBhYmlsaXR5LnJlc29sdmUoKX10ZXJtaW5hdGUoKXt0aGlzLnRlcm1pbmF0ZWQ9ITB9ZW5zdXJlTm90VGVybWluYXRlZCgpe2lmKHRoaXMudGVybWluYXRlZCl0aHJvdyBuZXcgRXJyb3IoIldvcmtlciB0YXNrIHdhcyB0ZXJtaW5hdGVkIil9fWNsYXNzIE5ke3N0YXRpYyBzZXR1cChBLGUpe2xldCB0PSExO0Eub24oInRlc3QiLChmdW5jdGlvbihlKXt0fHwodD0hMCxBLnNlbmQoInRlc3QiLGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl9KSksQS5vbigiY29uZmlndXJlIiwoZnVuY3Rpb24oQSl7dmFyIGU7ZT1BLnZlcmJvc2l0eSxOdW1iZXIuaXNJbnRlZ2VyKGUpJiYoRz1lKX0pKSxBLm9uKCJHZXREb2NSZXF1ZXN0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIE5kLmNyZWF0ZURvY3VtZW50SGFuZGxlcihBLGUpfSkpfXN0YXRpYyBjcmVhdGVEb2N1bWVudEhhbmRsZXIoQSxlKXtsZXQgdCxpPSExLGE9bnVsbDtjb25zdCBzPW5ldyBTZXQsbj1OKCkse2RvY0lkOnIsYXBpVmVyc2lvbjpnfT1BLG89IjQuNy43NiI7aWYoZyE9PW8pdGhyb3cgbmV3IEVycm9yKGBUaGUgQVBJIHZlcnNpb24gIiR7Z30iIGRvZXMgbm90IG1hdGNoIHRoZSBXb3JrZXIgdmVyc2lvbiAiJHtvfSIuYCk7Y29uc3QgST1bXTtmb3IoY29uc3QgQSBpbltdKUkucHVzaChBKTtpZihJLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBgQXJyYXkucHJvdG90eXBlYCBjb250YWlucyB1bmV4cGVjdGVkIGVudW1lcmFibGUgcHJvcGVydGllczogIitJLmpvaW4oIiwgIikrIjsgdGh1cyBicmVha2luZyBlLmcuIGBmb3IuLi5pbmAgaXRlcmF0aW9uIG9mIGBBcnJheWBzLiIpO2NvbnN0IGM9cisiX3dvcmtlciI7bGV0IGg9bmV3IGtkKGMscixlKTtmdW5jdGlvbiBDKCl7aWYoaSl0aHJvdyBuZXcgRXJyb3IoIldvcmtlciB3YXMgdGVybWluYXRlZCIpfWZ1bmN0aW9uIEIoQSl7cy5hZGQoQSl9ZnVuY3Rpb24gbChBKXtBLmZpbmlzaCgpLHMuZGVsZXRlKEEpfWFzeW5jIGZ1bmN0aW9uIFEoQSl7YXdhaXQgdC5lbnN1cmVEb2MoImNoZWNrSGVhZGVyIiksYXdhaXQgdC5lbnN1cmVEb2MoInBhcnNlU3RhcnRYUmVmIiksYXdhaXQgdC5lbnN1cmVEb2MoInBhcnNlIixbQV0pLGF3YWl0IHQuZW5zdXJlRG9jKCJjaGVja0ZpcnN0UGFnZSIsW0FdKSxhd2FpdCB0LmVuc3VyZURvYygiY2hlY2tMYXN0UGFnZSIsW0FdKTtjb25zdCBlPWF3YWl0IHQuZW5zdXJlRG9jKCJpc1B1cmVYZmEiKTtpZihlKXtjb25zdCBBPW5ldyBHZCgibG9hZFhmYUZvbnRzIik7QihBKSxhd2FpdCBQcm9taXNlLmFsbChbdC5sb2FkWGZhRm9udHMoaCxBKS5jYXRjaCgoQT0+e30pKS50aGVuKCgoKT0+bChBKSkpLHQubG9hZFhmYUltYWdlcygpXSl9Y29uc3RbaSxhXT1hd2FpdCBQcm9taXNlLmFsbChbdC5lbnN1cmVEb2MoIm51bVBhZ2VzIiksdC5lbnN1cmVEb2MoImZpbmdlcnByaW50cyIpXSk7cmV0dXJue251bVBhZ2VzOmksZmluZ2VycHJpbnRzOmEsaHRtbEZvclhmYTplP2F3YWl0IHQuZW5zdXJlRG9jKCJodG1sRm9yWGZhIik6bnVsbH19cmV0dXJuIGgub24oIkdldFBhZ2UiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5nZXRQYWdlKEEucGFnZUluZGV4KS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gUHJvbWlzZS5hbGwoW3QuZW5zdXJlKEEsInJvdGF0ZSIpLHQuZW5zdXJlKEEsInJlZiIpLHQuZW5zdXJlKEEsInVzZXJVbml0IiksdC5lbnN1cmUoQSwidmlldyIpXSkudGhlbigoZnVuY3Rpb24oW0EsZSx0LGldKXtyZXR1cm57cm90YXRlOkEscmVmOmUscmVmU3RyOmU/LnRvU3RyaW5nKCk/P251bGwsdXNlclVuaXQ6dCx2aWV3Oml9fSkpfSkpfSkpLGgub24oIkdldFBhZ2VJbmRleCIsKGZ1bmN0aW9uKEEpe2NvbnN0IGU9RUEuZ2V0KEEubnVtLEEuZ2VuKTtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJnZXRQYWdlSW5kZXgiLFtlXSl9KSksaC5vbigiR2V0RGVzdGluYXRpb25zIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygiZGVzdGluYXRpb25zIil9KSksaC5vbigiR2V0RGVzdGluYXRpb24iLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJnZXREZXN0aW5hdGlvbiIsW0EuaWRdKX0pKSxoLm9uKCJHZXRQYWdlTGFiZWxzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygicGFnZUxhYmVscyIpfSkpLGgub24oIkdldFBhZ2VMYXlvdXQiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJwYWdlTGF5b3V0Iil9KSksaC5vbigiR2V0UGFnZU1vZGUiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJwYWdlTW9kZSIpfSkpLGgub24oIkdldFZpZXdlclByZWZlcmVuY2VzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygidmlld2VyUHJlZmVyZW5jZXMiKX0pKSxoLm9uKCJHZXRPcGVuQWN0aW9uIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygib3BlbkFjdGlvbiIpfSkpLGgub24oIkdldEF0dGFjaG1lbnRzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygiYXR0YWNobWVudHMiKX0pKSxoLm9uKCJHZXREb2NKU0FjdGlvbnMiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJqc0FjdGlvbnMiKX0pKSxoLm9uKCJHZXRQYWdlSlNBY3Rpb25zIiwoZnVuY3Rpb24oe3BhZ2VJbmRleDpBfSl7cmV0dXJuIHQuZ2V0UGFnZShBKS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmUoQSwianNBY3Rpb25zIil9KSl9KSksaC5vbigiR2V0T3V0bGluZSIsKGZ1bmN0aW9uKEEpe3JldHVybiB0LmVuc3VyZUNhdGFsb2coImRvY3VtZW50T3V0bGluZSIpfSkpLGgub24oIkdldE9wdGlvbmFsQ29udGVudENvbmZpZyIsKGZ1bmN0aW9uKEEpe3JldHVybiB0LmVuc3VyZUNhdGFsb2coIm9wdGlvbmFsQ29udGVudENvbmZpZyIpfSkpLGgub24oIkdldFBlcm1pc3Npb25zIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygicGVybWlzc2lvbnMiKX0pKSxoLm9uKCJHZXRNZXRhZGF0YSIsKGZ1bmN0aW9uKEEpe3JldHVybiBQcm9taXNlLmFsbChbdC5lbnN1cmVEb2MoImRvY3VtZW50SW5mbyIpLHQuZW5zdXJlQ2F0YWxvZygibWV0YWRhdGEiKV0pfSkpLGgub24oIkdldE1hcmtJbmZvIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygibWFya0luZm8iKX0pKSxoLm9uKCJHZXREYXRhIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQucmVxdWVzdExvYWRlZFN0cmVhbSgpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmJ5dGVzfSkpfSkpLGgub24oIkdldEFubm90YXRpb25zIiwoZnVuY3Rpb24oe3BhZ2VJbmRleDpBLGludGVudDplfSl7cmV0dXJuIHQuZ2V0UGFnZShBKS50aGVuKChmdW5jdGlvbih0KXtjb25zdCBpPW5ldyBHZChgR2V0QW5ub3RhdGlvbnM6IHBhZ2UgJHtBfWApO3JldHVybiBCKGkpLHQuZ2V0QW5ub3RhdGlvbnNEYXRhKGgsaSxlKS50aGVuKChBPT4obChpKSxBKSksKEE9Pnt0aHJvdyBsKGkpLEF9KSl9KSl9KSksaC5vbigiR2V0RmllbGRPYmplY3RzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlRG9jKCJmaWVsZE9iamVjdHMiKS50aGVuKChBPT5BPy5hbGxGaWVsZHN8fG51bGwpKX0pKSxoLm9uKCJIYXNKU0FjdGlvbnMiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVEb2MoImhhc0pTQWN0aW9ucyIpfSkpLGgub24oIkdldENhbGN1bGF0aW9uT3JkZXJJZHMiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVEb2MoImNhbGN1bGF0aW9uT3JkZXJJZHMiKX0pKSxoLm9uKCJTYXZlRG9jdW1lbnQiLChhc3luYyBmdW5jdGlvbih7aXNQdXJlWGZhOkEsbnVtUGFnZXM6ZSxhbm5vdGF0aW9uU3RvcmFnZTppLGZpbGVuYW1lOmF9KXtjb25zdCBzPVt0LnJlcXVlc3RMb2FkZWRTdHJlYW0oKSx0LmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksdC5lbnN1cmVDYXRhbG9nKCJhY3JvRm9ybVJlZiIpLHQuZW5zdXJlRG9jKCJzdGFydFhSZWYiKSx0LmVuc3VyZURvYygieHJlZiIpLHQuZW5zdXJlRG9jKCJsaW5lYXJpemF0aW9uIiksdC5lbnN1cmVDYXRhbG9nKCJzdHJ1Y3RUcmVlUm9vdCIpXSxuPVtdLHI9QT9udWxsOnRlKGkpLFtnLG8sSSxjLEMsQixRXT1hd2FpdCBQcm9taXNlLmFsbChzKSxFPUMudHJhaWxlci5nZXRSYXcoIlJvb3QiKXx8bnVsbDtsZXQgdTtpZihyKXtRP2F3YWl0IFEuY2FuVXBkYXRlU3RydWN0VHJlZSh7cGRmTWFuYWdlcjp0LHhyZWY6QyxuZXdBbm5vdGF0aW9uc0J5UGFnZTpyfSkmJih1PVEpOmF3YWl0IHNvLmNhbkNyZWF0ZVN0cnVjdHVyZVRyZWUoe2NhdGFsb2dSZWY6RSxwZGZNYW5hZ2VyOnQsbmV3QW5ub3RhdGlvbnNCeVBhZ2U6cn0pJiYodT1udWxsKTtjb25zdCBBPUx1LmdlbmVyYXRlSW1hZ2VzKGkudmFsdWVzKCksQyx0LmV2YWx1YXRvck9wdGlvbnMuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpLGU9dm9pZCAwPT09dT9uOltdO2Zvcihjb25zdFtpLGFdb2YgcillLnB1c2godC5nZXRQYWdlKGkpLnRoZW4oKGU9Pntjb25zdCB0PW5ldyBHZChgU2F2ZSAoZWRpdG9yKTogcGFnZSAke2l9YCk7cmV0dXJuIGUuc2F2ZU5ld0Fubm90YXRpb25zKGgsdCxhLEEpLmZpbmFsbHkoKGZ1bmN0aW9uKCl7bCh0KX0pKX0pKSk7bnVsbD09PXU/bi5wdXNoKFByb21pc2UuYWxsKGUpLnRoZW4oKGFzeW5jIEE9Pihhd2FpdCBzby5jcmVhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpyLHhyZWY6QyxjYXRhbG9nUmVmOkUscGRmTWFuYWdlcjp0LG5ld1JlZnM6QX0pLEEpKSkpOnUmJm4ucHVzaChQcm9taXNlLmFsbChlKS50aGVuKChhc3luYyBBPT4oYXdhaXQgdS51cGRhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpyLHBkZk1hbmFnZXI6dCxuZXdSZWZzOkF9KSxBKSkpKX1pZihBKW4ucHVzaCh0LnNlcmlhbGl6ZVhmYURhdGEoaSkpO2Vsc2UgZm9yKGxldCBBPTA7QTxlO0ErKyluLnB1c2godC5nZXRQYWdlKEEpLnRoZW4oKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IEdkKGBTYXZlOiBwYWdlICR7QX1gKTtyZXR1cm4gZS5zYXZlKGgsdCxpKS5maW5hbGx5KChmdW5jdGlvbigpe2wodCl9KSl9KSkpO2NvbnN0IGQ9YXdhaXQgUHJvbWlzZS5hbGwobik7bGV0IGY9W10scD1udWxsO2lmKEEpe2lmKHA9ZFswXSwhcClyZXR1cm4gZy5ieXRlc31lbHNlIGlmKGY9ZC5mbGF0KDIpLDA9PT1mLmxlbmd0aClyZXR1cm4gZy5ieXRlcztjb25zdCBtPUkmJm8gaW5zdGFuY2VvZiBRQSYmZi5zb21lKChBPT5BLm5lZWRBcHBlYXJhbmNlcykpLHk9byBpbnN0YW5jZW9mIFFBJiZvLmdldCgiWEZBIil8fG51bGw7bGV0IHc9bnVsbCxEPSExO2lmKEFycmF5LmlzQXJyYXkoeSkpe2ZvcihsZXQgQT0wLGU9eS5sZW5ndGg7QTxlO0ErPTIpImRhdGFzZXRzIj09PXlbQV0mJih3PXlbQSsxXSxEPSEwKTtudWxsPT09dyYmKHc9Qy5nZXROZXdUZW1wb3JhcnlSZWYoKSl9ZWxzZSB5JiZVKCJVbnN1cHBvcnRlZCBYRkEgdHlwZS4iKTtsZXQgYj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKEMudHJhaWxlcil7Y29uc3QgQT1PYmplY3QuY3JlYXRlKG51bGwpLGU9Qy50cmFpbGVyLmdldCgiSW5mbyIpfHxudWxsO2UgaW5zdGFuY2VvZiBRQSYmZS5mb3JFYWNoKCgoZSx0KT0+eyJzdHJpbmciPT10eXBlb2YgdCYmKEFbZV09ZUEodCkpfSkpLGI9e3Jvb3RSZWY6RSxlbmNyeXB0UmVmOkMudHJhaWxlci5nZXRSYXcoIkVuY3J5cHQiKXx8bnVsbCxuZXdSZWY6Qy5nZXROZXdUZW1wb3JhcnlSZWYoKSxpbmZvUmVmOkMudHJhaWxlci5nZXRSYXcoIkluZm8iKXx8bnVsbCxpbmZvOkEsZmlsZUlkczpDLnRyYWlsZXIuZ2V0KCJJRCIpfHxudWxsLHN0YXJ0WFJlZjpCP2M6Qy5sYXN0WFJlZlN0cmVhbVBvcz8/YyxmaWxlbmFtZTphfX1yZXR1cm4gYW8oe29yaWdpbmFsRGF0YTpnLmJ5dGVzLHhyZWZJbmZvOmIsbmV3UmVmczpmLHhyZWY6QyxoYXNYZmE6ISF5LHhmYURhdGFzZXRzUmVmOncsaGFzWGZhRGF0YXNldHNFbnRyeTpELG5lZWRBcHBlYXJhbmNlczptLGFjcm9Gb3JtUmVmOkksYWNyb0Zvcm06byx4ZmFEYXRhOnAsdXNlWHJlZlN0cmVhbTptQShDLnRvcERpY3QsIlhSZWYiKX0pLmZpbmFsbHkoKCgpPT57Qy5yZXNldE5ld1RlbXBvcmFyeVJlZigpfSkpfSkpLGgub24oIkdldE9wZXJhdG9yTGlzdCIsKGZ1bmN0aW9uKEEsZSl7Y29uc3QgaT1BLnBhZ2VJbmRleDt0LmdldFBhZ2UoaSkudGhlbigoZnVuY3Rpb24odCl7Y29uc3QgYT1uZXcgR2QoYEdldE9wZXJhdG9yTGlzdDogcGFnZSAke2l9YCk7QihhKTtjb25zdCBzPW4+PXUuSU5GT1M/RGF0ZS5ub3coKTowO3QuZ2V0T3BlcmF0b3JMaXN0KHtoYW5kbGVyOmgsc2luazplLHRhc2s6YSxpbnRlbnQ6QS5pbnRlbnQsY2FjaGVLZXk6QS5jYWNoZUtleSxhbm5vdGF0aW9uU3RvcmFnZTpBLmFubm90YXRpb25TdG9yYWdlLG1vZGlmaWVkSWRzOkEubW9kaWZpZWRJZHN9KS50aGVuKChmdW5jdGlvbihBKXtsKGEpLHMmJngoYHBhZ2U9JHtpKzF9IC0gZ2V0T3BlcmF0b3JMaXN0OiB0aW1lPSR7RGF0ZS5ub3coKS1zfW1zLCBsZW49JHtBLmxlbmd0aH1gKSxlLmNsb3NlKCl9KSwoZnVuY3Rpb24oQSl7bChhKSxhLnRlcm1pbmF0ZWR8fGUuZXJyb3IoQSl9KSl9KSl9KSksaC5vbigiR2V0VGV4dENvbnRlbnQiLChmdW5jdGlvbihBLGUpe2NvbnN0e3BhZ2VJbmRleDppLGluY2x1ZGVNYXJrZWRDb250ZW50OmEsZGlzYWJsZU5vcm1hbGl6YXRpb246c309QTt0LmdldFBhZ2UoaSkudGhlbigoZnVuY3Rpb24oQSl7Y29uc3QgdD1uZXcgR2QoIkdldFRleHRDb250ZW50OiBwYWdlICIraSk7Qih0KTtjb25zdCByPW4+PXUuSU5GT1M/RGF0ZS5ub3coKTowO0EuZXh0cmFjdFRleHRDb250ZW50KHtoYW5kbGVyOmgsdGFzazp0LHNpbms6ZSxpbmNsdWRlTWFya2VkQ29udGVudDphLGRpc2FibGVOb3JtYWxpemF0aW9uOnN9KS50aGVuKChmdW5jdGlvbigpe2wodCksciYmeChgcGFnZT0ke2krMX0gLSBnZXRUZXh0Q29udGVudDogdGltZT1gKyhEYXRlLm5vdygpLXIpKyJtcyIpLGUuY2xvc2UoKX0pLChmdW5jdGlvbihBKXtsKHQpLHQudGVybWluYXRlZHx8ZS5lcnJvcihBKX0pKX0pKX0pKSxoLm9uKCJHZXRTdHJ1Y3RUcmVlIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZ2V0UGFnZShBLnBhZ2VJbmRleCkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlKEEsImdldFN0cnVjdFRyZWUiKX0pKX0pKSxoLm9uKCJGb250RmFsbGJhY2siLChmdW5jdGlvbihBKXtyZXR1cm4gdC5mb250RmFsbGJhY2soQS5pZCxoKX0pKSxoLm9uKCJDbGVhbnVwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuY2xlYW51cCghMCl9KSksaC5vbigiVGVybWluYXRlIiwoZnVuY3Rpb24oQSl7aT0hMDtjb25zdCBlPVtdO2lmKHQpe3QudGVybWluYXRlKG5ldyBPKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQuIikpO2NvbnN0IEE9dC5jbGVhbnVwKCk7ZS5wdXNoKEEpLHQ9bnVsbH1lbHNlIGtnKCk7YSYmYShuZXcgTygiV29ya2VyIHdhcyB0ZXJtaW5hdGVkLiIpKTtmb3IoY29uc3QgQSBvZiBzKWUucHVzaChBLmZpbmlzaGVkKSxBLnRlcm1pbmF0ZSgpO3JldHVybiBQcm9taXNlLmFsbChlKS50aGVuKChmdW5jdGlvbigpe2guZGVzdHJveSgpLGg9bnVsbH0pKX0pKSxoLm9uKCJSZWFkeSIsKGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihBKXtmdW5jdGlvbiBlKEEpe0MoKSxoLnNlbmQoIkdldERvYyIse3BkZkluZm86QX0pfWZ1bmN0aW9uIHMoQSl7aWYoQygpLEEgaW5zdGFuY2VvZiB2KXtjb25zdCBlPW5ldyBHZChgUGFzc3dvcmRFeGNlcHRpb246IHJlc3BvbnNlICR7QS5jb2RlfWApO0IoZSksaC5zZW5kV2l0aFByb21pc2UoIlBhc3N3b3JkUmVxdWVzdCIsQSkudGhlbigoZnVuY3Rpb24oe3Bhc3N3b3JkOkF9KXtsKGUpLHQudXBkYXRlUGFzc3dvcmQoQSksbigpfSkpLmNhdGNoKChmdW5jdGlvbigpe2woZSksaC5zZW5kKCJEb2NFeGNlcHRpb24iLEEpfSkpfWVsc2UgQSBpbnN0YW5jZW9mIHF8fEEgaW5zdGFuY2VvZiBUfHxBIGluc3RhbmNlb2YgUHx8QSBpbnN0YW5jZW9mIEs/aC5zZW5kKCJEb2NFeGNlcHRpb24iLEEpOmguc2VuZCgiRG9jRXhjZXB0aW9uIixuZXcgSyhBLm1lc3NhZ2UsQS50b1N0cmluZygpKSl9ZnVuY3Rpb24gbigpe0MoKSxRKCExKS50aGVuKGUsKGZ1bmN0aW9uKEEpe0MoKSxBIGluc3RhbmNlb2YgUkE/dC5yZXF1ZXN0TG9hZGVkU3RyZWFtKCkudGhlbigoZnVuY3Rpb24oKXtDKCksUSghMCkudGhlbihlLHMpfSkpOnMoQSl9KSl9QygpLGZ1bmN0aW9uKHtkYXRhOkEscGFzc3dvcmQ6ZSxkaXNhYmxlQXV0b0ZldGNoOnQscmFuZ2VDaHVua1NpemU6aSxsZW5ndGg6cyxkb2NCYXNlVXJsOm4sZW5hYmxlWGZhOmcsZXZhbHVhdG9yT3B0aW9uczpvfSl7Y29uc3QgST17c291cmNlOm51bGwsZGlzYWJsZUF1dG9GZXRjaDp0LGRvY0Jhc2VVcmw6bixkb2NJZDpyLGVuYWJsZVhmYTpnLGV2YWx1YXRvck9wdGlvbnM6byxoYW5kbGVyOmgsbGVuZ3RoOnMscGFzc3dvcmQ6ZSxyYW5nZUNodW5rU2l6ZTppfSxjPVByb21pc2Uud2l0aFJlc29sdmVycygpO2xldCBCO2lmKEEpe3RyeXtJLnNvdXJjZT1BLEI9bmV3IHdkKEkpLGMucmVzb2x2ZShCKX1jYXRjaChBKXtjLnJlamVjdChBKX1yZXR1cm4gYy5wcm9taXNlfWxldCBsLFE9W107dHJ5e2w9bmV3IEZkKGgpfWNhdGNoKEEpe3JldHVybiBjLnJlamVjdChBKSxjLnByb21pc2V9Y29uc3QgRT1sLmdldEZ1bGxSZWFkZXIoKTtFLmhlYWRlcnNSZWFkeS50aGVuKChmdW5jdGlvbigpe2lmKEUuaXNSYW5nZVN1cHBvcnRlZCl7SS5zb3VyY2U9bCxJLmxlbmd0aD1FLmNvbnRlbnRMZW5ndGgsSS5kaXNhYmxlQXV0b0ZldGNofHw9RS5pc1N0cmVhbWluZ1N1cHBvcnRlZCxCPW5ldyBEZChJKTtmb3IoY29uc3QgQSBvZiBRKUIuc2VuZFByb2dyZXNzaXZlRGF0YShBKTtRPVtdLGMucmVzb2x2ZShCKSxhPW51bGx9fSkpLmNhdGNoKChmdW5jdGlvbihBKXtjLnJlamVjdChBKSxhPW51bGx9KSk7bGV0IHU9MDtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1mdW5jdGlvbih7dmFsdWU6QSxkb25lOml9KXt0cnl7aWYoQygpLGkpcmV0dXJuIEJ8fGZ1bmN0aW9uKCl7Y29uc3QgQT1HQShRKTtzJiZBLmxlbmd0aCE9PXMmJlUoInJlcG9ydGVkIEhUVFAgbGVuZ3RoIGlzIGRpZmZlcmVudCBmcm9tIGFjdHVhbCIpO3RyeXtJLnNvdXJjZT1BLEI9bmV3IHdkKEkpLGMucmVzb2x2ZShCKX1jYXRjaChBKXtjLnJlamVjdChBKX1RPVtdfSgpLHZvaWQoYT1udWxsKTt1Kz1BLmJ5dGVMZW5ndGgsRS5pc1N0cmVhbWluZ1N1cHBvcnRlZHx8aC5zZW5kKCJEb2NQcm9ncmVzcyIse2xvYWRlZDp1LHRvdGFsOk1hdGgubWF4KHUsRS5jb250ZW50TGVuZ3RofHwwKX0pLEI/Qi5zZW5kUHJvZ3Jlc3NpdmVEYXRhKEEpOlEucHVzaChBKSxFLnJlYWQoKS50aGVuKHQsZSl9Y2F0Y2goQSl7ZShBKX19O0UucmVhZCgpLnRoZW4odCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oQSl7Yy5yZWplY3QoQSksYT1udWxsfSkpLGE9ZnVuY3Rpb24oQSl7bC5jYW5jZWxBbGxSZXF1ZXN0cyhBKX0sYy5wcm9taXNlfShBKS50aGVuKChmdW5jdGlvbihBKXtpZihpKXRocm93IEEudGVybWluYXRlKG5ldyBPKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQuIikpLG5ldyBFcnJvcigiV29ya2VyIHdhcyB0ZXJtaW5hdGVkIik7dD1BLHQucmVxdWVzdExvYWRlZFN0cmVhbSghMCkudGhlbigoQT0+e2guc2VuZCgiRGF0YUxvYWRlZCIse2xlbmd0aDpBLmJ5dGVzLmJ5dGVMZW5ndGh9KX0pKX0pKS50aGVuKG4scyl9KEEpLEE9bnVsbH0pKSxjfXN0YXRpYyBpbml0aWFsaXplRnJvbVBvcnQoQSl7Y29uc3QgZT1uZXcga2QoIndvcmtlciIsIm1haW4iLEEpO05kLnNldHVwKGUsQSksZS5zZW5kKCJyZWFkeSIsbnVsbCl9fXZhciB4ZDsidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdyYmIWEmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmImZ1bmN0aW9uIj09dHlwZW9mKHhkPXNlbGYpLnBvc3RNZXNzYWdlJiYib25tZXNzYWdlImluIHhkJiZOZC5pbml0aWFsaXplRnJvbVBvcnQoc2VsZik7",a="dmFyIHQ9ezkzMDY6KHQsZSxpKT0+e3ZhciBzPWkoNDkwMSksbj1pKDY4MjMpLHI9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihzKHQpKXJldHVybiB0O3Rocm93IG5ldyByKG4odCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sMzUwNjoodCxlLGkpPT57dmFyIHM9aSgzOTI1KSxuPVN0cmluZyxyPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocyh0KSlyZXR1cm4gdDt0aHJvdyBuZXcgcigiQ2FuJ3Qgc2V0ICIrbih0KSsiIGFzIGEgcHJvdG90eXBlIil9fSw3MDgwOih0LGUsaSk9Pnt2YXIgcz1pKDQ0MDIpLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHModCksdH19LDY3OToodCxlLGkpPT57dmFyIHM9aSgxNjI1KSxuPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihzKGUsdCkpcmV0dXJuIHQ7dGhyb3cgbmV3IG4oIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSw4NTUxOih0LGUsaSk9Pnt2YXIgcz1pKDM0KSxuPVN0cmluZyxyPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocyh0KSlyZXR1cm4gdDt0aHJvdyBuZXcgcihuKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNzgxMTp0PT57dC5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LDczOTQ6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1pKDY3MDYpLHI9aSgyMTk1KSxhPXMuQXJyYXlCdWZmZXIsbz1zLlR5cGVFcnJvcjt0LmV4cG9ydHM9YSYmbihhLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIsImdldCIpfHxmdW5jdGlvbih0KXtpZigiQXJyYXlCdWZmZXIiIT09cih0KSl0aHJvdyBuZXcgbygiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gdC5ieXRlTGVuZ3RofX0sMzIzODoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoNzQ3Nikscj1pKDczOTQpLGE9cy5BcnJheUJ1ZmZlcixvPWEmJmEucHJvdG90eXBlLGg9byYmbihvLnNsaWNlKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoMCE9PXIodCkpcmV0dXJuITE7aWYoIWgpcmV0dXJuITE7dHJ5e3JldHVybiBoKHQsMCwwKSwhMX1jYXRjaCh0KXtyZXR1cm4hMH19fSw1MTY5Oih0LGUsaSk9Pnt2YXIgcz1pKDMyMzgpLG49VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihzKHQpKXRocm93IG5ldyBuKCJBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCIpO3JldHVybiB0fX0sNTYzNjoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoOTUwNCkscj1pKDY3MDYpLGE9aSg3Njk2KSxvPWkoNTE2OSksaD1pKDczOTQpLGw9aSg0NDgzKSxjPWkoMTU0OCksZD1zLnN0cnVjdHVyZWRDbG9uZSx1PXMuQXJyYXlCdWZmZXIscD1zLkRhdGFWaWV3LGc9TWF0aC5taW4sZj11LnByb3RvdHlwZSxtPXAucHJvdG90eXBlLGI9bihmLnNsaWNlKSx2PXIoZiwicmVzaXphYmxlIiwiZ2V0IikseT1yKGYsIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxBPW4obS5nZXRJbnQ4KSx3PW4obS5zZXRJbnQ4KTt0LmV4cG9ydHM9KGN8fGwpJiZmdW5jdGlvbih0LGUsaSl7dmFyIHMsbj1oKHQpLHI9dm9pZCAwPT09ZT9uOmEoZSksZj0hdnx8IXYodCk7aWYobyh0KSxjJiYodD1kKHQse3RyYW5zZmVyOlt0XX0pLG49PT1yJiYoaXx8ZikpKXJldHVybiB0O2lmKG4+PXImJighaXx8Zikpcz1iKHQsMCxyKTtlbHNle3ZhciBtPWkmJiFmJiZ5P3ttYXhCeXRlTGVuZ3RoOnkodCl9OnZvaWQgMDtzPW5ldyB1KHIsbSk7Zm9yKHZhciB4PW5ldyBwKHQpLF89bmV3IHAocyksRT1nKHIsbiksQz0wO0M8RTtDKyspdyhfLEMsQSh4LEMpKX1yZXR1cm4gY3x8bCh0KSxzfX0sNDY0NDoodCxlLGkpPT57dmFyIHMsbixyLGE9aSg3ODExKSxvPWkoMzcyNCksaD1pKDQ1NzYpLGw9aSg0OTAxKSxjPWkoMzQpLGQ9aSg5Mjk3KSx1PWkoNjk1NSkscD1pKDY4MjMpLGc9aSg2Njk5KSxmPWkoNjg0MCksbT1pKDIxMDYpLGI9aSgxNjI1KSx2PWkoMjc4NykseT1pKDI5NjcpLEE9aSg4MjI3KSx3PWkoMzM5MikseD1pKDExODEpLF89eC5lbmZvcmNlLEU9eC5nZXQsQz1oLkludDhBcnJheSxTPUMmJkMucHJvdG90eXBlLFQ9aC5VaW50OENsYW1wZWRBcnJheSxNPVQmJlQucHJvdG90eXBlLGs9QyYmdihDKSxJPVMmJnYoUyksUj1PYmplY3QucHJvdG90eXBlLFA9aC5UeXBlRXJyb3IsRD1BKCJ0b1N0cmluZ1RhZyIpLEw9dygiVFlQRURfQVJSQVlfVEFHIiksRj0iVHlwZWRBcnJheUNvbnN0cnVjdG9yIixPPWEmJiEheSYmIk9wZXJhIiE9PXUoaC5vcGVyYSksTj0hMSxCPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sej17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LEg9ZnVuY3Rpb24odCl7dmFyIGU9dih0KTtpZihjKGUpKXt2YXIgaT1FKGUpO3JldHVybiBpJiZkKGksRik/aVtGXTpIKGUpfX0saj1mdW5jdGlvbih0KXtpZighYyh0KSlyZXR1cm4hMTt2YXIgZT11KHQpO3JldHVybiBkKEIsZSl8fGQoeixlKX07Zm9yKHMgaW4gQikocj0obj1oW3NdKSYmbi5wcm90b3R5cGUpP18ocilbRl09bjpPPSExO2ZvcihzIGluIHopKHI9KG49aFtzXSkmJm4ucHJvdG90eXBlKSYmKF8ocilbRl09bik7aWYoKCFPfHwhbChrKXx8az09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihrPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFAoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LE8pKWZvcihzIGluIEIpaFtzXSYmeShoW3NdLGspO2lmKCghT3x8IUl8fEk9PT1SKSYmKEk9ay5wcm90b3R5cGUsTykpZm9yKHMgaW4gQiloW3NdJiZ5KGhbc10ucHJvdG90eXBlLEkpO2lmKE8mJnYoTSkhPT1JJiZ5KE0sSSksbyYmIWQoSSxEKSlmb3IocyBpbiBOPSEwLG0oSSxELHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcyk/dGhpc1tMXTp2b2lkIDB9fSksQiloW3NdJiZnKGhbc10sTCxzKTt0LmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6TyxUWVBFRF9BUlJBWV9UQUc6TiYmTCxhVHlwZWRBcnJheTpmdW5jdGlvbih0KXtpZihqKHQpKXJldHVybiB0O3Rocm93IG5ldyBQKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbih0KXtpZihsKHQpJiYoIXl8fGIoayx0KSkpcmV0dXJuIHQ7dGhyb3cgbmV3IFAocCh0KSsiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIil9LGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6ZnVuY3Rpb24odCxlLGkscyl7aWYobyl7aWYoaSlmb3IodmFyIG4gaW4gQil7dmFyIHI9aFtuXTtpZihyJiZkKHIucHJvdG90eXBlLHQpKXRyeXtkZWxldGUgci5wcm90b3R5cGVbdF19Y2F0Y2goaSl7dHJ5e3IucHJvdG90eXBlW3RdPWV9Y2F0Y2godCl7fX19SVt0XSYmIWl8fGYoSSx0LGk/ZTpPJiZTW3RdfHxlLHMpfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbih0LGUsaSl7dmFyIHMsbjtpZihvKXtpZih5KXtpZihpKWZvcihzIGluIEIpaWYoKG49aFtzXSkmJmQobix0KSl0cnl7ZGVsZXRlIG5bdF19Y2F0Y2godCl7fWlmKGtbdF0mJiFpKXJldHVybjt0cnl7cmV0dXJuIGYoayx0LGk/ZTpPJiZrW3RdfHxlKX1jYXRjaCh0KXt9fWZvcihzIGluIEIpIShuPWhbc10pfHxuW3RdJiYhaXx8ZihuLHQsZSl9fSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I6SCxpc1ZpZXc6ZnVuY3Rpb24odCl7aWYoIWModCkpcmV0dXJuITE7dmFyIGU9dSh0KTtyZXR1cm4iRGF0YVZpZXciPT09ZXx8ZChCLGUpfHxkKHosZSl9LGlzVHlwZWRBcnJheTpqLFR5cGVkQXJyYXk6ayxUeXBlZEFycmF5UHJvdG90eXBlOkl9fSw1MzcwOih0LGUsaSk9Pnt2YXIgcz1pKDYxOTgpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBuPTAscj1hcmd1bWVudHMubGVuZ3RoPjI/aTpzKGUpLGE9bmV3IHQocik7cj5uOylhW25dPWVbbisrXTtyZXR1cm4gYX19LDk2MTc6KHQsZSxpKT0+e3ZhciBzPWkoNTM5Nyksbj1pKDU2MTApLHI9aSg2MTk4KSxhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLGksYSl7dmFyIG89cyhlKSxoPXIobyk7aWYoMD09PWgpcmV0dXJuIXQmJi0xO3ZhciBsLGM9bihhLGgpO2lmKHQmJmkhPWkpe2Zvcig7aD5jOylpZigobD1vW2MrK10pIT1sKXJldHVybiEwfWVsc2UgZm9yKDtoPmM7YysrKWlmKCh0fHxjIGluIG8pJiZvW2NdPT09aSlyZXR1cm4gdHx8Y3x8MDtyZXR1cm4hdCYmLTF9fTt0LmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSw0NTI3Oih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg0Mzc2KSxyPVR5cGVFcnJvcixhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1zJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3QuZXhwb3J0cz1vP2Z1bmN0aW9uKHQsZSl7aWYobih0KSYmIWEodCwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgbmV3IHIoIkNhbm5vdCBzZXQgcmVhZCBvbmx5IC5sZW5ndGgiKTtyZXR1cm4gdC5sZW5ndGg9ZX06ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGg9ZX19LDc2Mjg6KHQsZSxpKT0+e3ZhciBzPWkoNjE5OCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPXModCksbj1uZXcgZShpKSxyPTA7cjxpO3IrKyluW3JdPXRbaS1yLTFdO3JldHVybiBufX0sOTkyODoodCxlLGkpPT57dmFyIHM9aSg2MTk4KSxuPWkoMTI5MSkscj1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSxhKXt2YXIgbz1zKHQpLGg9bihpKSxsPWg8MD9vK2g6aDtpZihsPj1vfHxsPDApdGhyb3cgbmV3IHIoIkluY29ycmVjdCBpbmRleCIpO2Zvcih2YXIgYz1uZXcgZShvKSxkPTA7ZDxvO2QrKyljW2RdPWQ9PT1sP2E6dFtkXTtyZXR1cm4gY319LDYzMTk6KHQsZSxpKT0+e3ZhciBzPWkoODU1MSksbj1pKDk1MzkpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSxyKXt0cnl7cmV0dXJuIHI/ZShzKGkpWzBdLGlbMV0pOmUoaSl9Y2F0Y2goZSl7bih0LCJ0aHJvdyIsZSl9fX0sMjE5NToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPXMoe30udG9TdHJpbmcpLHI9cygiIi5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKG4odCksOCwtMSl9fSw2OTU1Oih0LGUsaSk9Pnt2YXIgcz1pKDIxNDApLG49aSg0OTAxKSxyPWkoMjE5NSksYT1pKDgyMjcpKCJ0b1N0cmluZ1RhZyIpLG89T2JqZWN0LGg9IkFyZ3VtZW50cyI9PT1yKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7dC5leHBvcnRzPXM/cjpmdW5jdGlvbih0KXt2YXIgZSxpLHM7cmV0dXJuIHZvaWQgMD09PXQ/IlVuZGVmaW5lZCI6bnVsbD09PXQ/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoaT1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaCh0KXt9fShlPW8odCksYSkpP2k6aD9yKGUpOiJPYmplY3QiPT09KHM9cihlKSkmJm4oZS5jYWxsZWUpPyJBcmd1bWVudHMiOnN9fSw3NzQwOih0LGUsaSk9Pnt2YXIgcz1pKDkyOTcpLG49aSg1MDMxKSxyPWkoNzM0NyksYT1pKDQ5MTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBvPW4oZSksaD1hLmYsbD1yLmYsYz0wO2M8by5sZW5ndGg7YysrKXt2YXIgZD1vW2NdO3ModCxkKXx8aSYmcyhpLGQpfHxoKHQsZCxsKGUsZCkpfX19LDIyMTE6KHQsZSxpKT0+e3ZhciBzPWkoOTAzOSk7dC5leHBvcnRzPSFzKChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyB0KSE9PXQucHJvdG90eXBlfSkpfSwyNTI5OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dmFsdWU6dCxkb25lOmV9fX0sNjY5OToodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoNDkxMykscj1pKDY5ODApO3QuZXhwb3J0cz1zP2Z1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbi5mKHQsZSxyKDEsaSkpfTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRbZV09aSx0fX0sNjk4MDp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sNDY1OToodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoNDkxMykscj1pKDY5ODApO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7cz9uLmYodCxlLHIoMCxpKSk6dFtlXT1pfX0sMjEwNjoodCxlLGkpPT57dmFyIHM9aSgyODMpLG49aSg0OTEzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBpLmdldCYmcyhpLmdldCxlLHtnZXR0ZXI6ITB9KSxpLnNldCYmcyhpLnNldCxlLHtzZXR0ZXI6ITB9KSxuLmYodCxlLGkpfX0sNjg0MDoodCxlLGkpPT57dmFyIHM9aSg0OTAxKSxuPWkoNDkxMykscj1pKDI4MyksYT1pKDk0MzMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSxvKXtvfHwobz17fSk7dmFyIGg9by5lbnVtZXJhYmxlLGw9dm9pZCAwIT09by5uYW1lP28ubmFtZTplO2lmKHMoaSkmJnIoaSxsLG8pLG8uZ2xvYmFsKWg/dFtlXT1pOmEoZSxpKTtlbHNle3RyeXtvLnVuc2FmZT90W2VdJiYoaD0hMCk6ZGVsZXRlIHRbZV19Y2F0Y2godCl7fWg/dFtlXT1pOm4uZih0LGUse3ZhbHVlOmksZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IW8ubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFvLm5vbldyaXRhYmxlfSl9cmV0dXJuIHR9fSw2Mjc5Oih0LGUsaSk9Pnt2YXIgcz1pKDY4NDApO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBuIGluIGUpcyh0LG4sZVtuXSxpKTtyZXR1cm4gdH19LDk0MzM6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dHJ5e24ocyx0LHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKGkpe3NbdF09ZX1yZXR1cm4gZX19LDM3MjQ6KHQsZSxpKT0+e3ZhciBzPWkoOTAzOSk7dC5leHBvcnRzPSFzKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw0NDgzOih0LGUsaSk9Pnt2YXIgcyxuLHIsYSxvPWkoNDU3NiksaD1pKDk0MjkpLGw9aSgxNTQ4KSxjPW8uc3RydWN0dXJlZENsb25lLGQ9by5BcnJheUJ1ZmZlcix1PW8uTWVzc2FnZUNoYW5uZWwscD0hMTtpZihsKXA9ZnVuY3Rpb24odCl7Yyh0LHt0cmFuc2ZlcjpbdF19KX07ZWxzZSBpZihkKXRyeXt1fHwocz1oKCJ3b3JrZXJfdGhyZWFkcyIpKSYmKHU9cy5NZXNzYWdlQ2hhbm5lbCksdSYmKG49bmV3IHUscj1uZXcgZCgyKSxhPWZ1bmN0aW9uKHQpe24ucG9ydDEucG9zdE1lc3NhZ2UobnVsbCxbdF0pfSwyPT09ci5ieXRlTGVuZ3RoJiYoYShyKSwwPT09ci5ieXRlTGVuZ3RoJiYocD1hKSkpfWNhdGNoKHQpe310LmV4cG9ydHM9cH0sNDA1NToodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoMzQpLHI9cy5kb2N1bWVudCxhPW4ocikmJm4oci5jcmVhdGVFbGVtZW50KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGE/ci5jcmVhdGVFbGVtZW50KHQpOnt9fX0sNjgzNzp0PT57dmFyIGU9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih0PjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgZSgiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIHR9fSw1MDAyOnQ9Pnt0LmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSw4NzI3OnQ9Pnt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sNjE5MzoodCxlLGkpPT57dmFyIHM9aSg0MjE1KTt0LmV4cG9ydHM9Ik5PREUiPT09c30sMjgzOToodCxlLGkpPT57dmFyIHM9aSg0NTc2KS5uYXZpZ2F0b3Isbj1zJiZzLnVzZXJBZ2VudDt0LmV4cG9ydHM9bj9TdHJpbmcobik6IiJ9LDk1MTk6KHQsZSxpKT0+e3ZhciBzLG4scj1pKDQ1NzYpLGE9aSgyODM5KSxvPXIucHJvY2VzcyxoPXIuRGVubyxsPW8mJm8udmVyc2lvbnN8fGgmJmgudmVyc2lvbixjPWwmJmwudjg7YyYmKG49KHM9Yy5zcGxpdCgiLiIpKVswXT4wJiZzWzBdPDQ/MTorKHNbMF0rc1sxXSkpLCFuJiZhJiYoIShzPWEubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxzWzFdPj03NCkmJihzPWEubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihuPStzWzFdKSx0LmV4cG9ydHM9bn0sNDIxNToodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoMjgzOSkscj1pKDIxOTUpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIG4uc2xpY2UoMCx0Lmxlbmd0aCk9PT10fTt0LmV4cG9ydHM9YSgiQnVuLyIpPyJCVU4iOmEoIkNsb3VkZmxhcmUtV29ya2VycyIpPyJDTE9VREZMQVJFIjphKCJEZW5vLyIpPyJERU5PIjphKCJOb2RlLmpzLyIpPyJOT0RFIjpzLkJ1biYmInN0cmluZyI9PXR5cGVvZiBCdW4udmVyc2lvbj8iQlVOIjpzLkRlbm8mJiJvYmplY3QiPT10eXBlb2YgRGVuby52ZXJzaW9uPyJERU5PIjoicHJvY2VzcyI9PT1yKHMucHJvY2Vzcyk/Ik5PREUiOnMud2luZG93JiZzLmRvY3VtZW50PyJCUk9XU0VSIjoiUkVTVCJ9LDg1NzQ6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1FcnJvcixyPXMoIiIucmVwbGFjZSksYT1TdHJpbmcobmV3IG4oInp4Y2FzZCIpLnN0YWNrKSxvPS9cblxzKmF0IFteOl0qOlteXG5dKi8saD1vLnRlc3QoYSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoaCYmInN0cmluZyI9PXR5cGVvZiB0JiYhbi5wcmVwYXJlU3RhY2tUcmFjZSlmb3IoO2UtLTspdD1yKHQsbywiIik7cmV0dXJuIHR9fSw2NTE4Oih0LGUsaSk9Pnt2YXIgcz1pKDQ1NzYpLG49aSg3MzQ3KS5mLHI9aSg2Njk5KSxhPWkoNjg0MCksbz1pKDk0MzMpLGg9aSg3NzQwKSxsPWkoMjc5Nik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGksYyxkLHUscCxnPXQudGFyZ2V0LGY9dC5nbG9iYWwsbT10LnN0YXQ7aWYoaT1mP3M6bT9zW2ddfHxvKGcse30pOnNbZ10mJnNbZ10ucHJvdG90eXBlKWZvcihjIGluIGUpe2lmKHU9ZVtjXSxkPXQuZG9udENhbGxHZXRTZXQ/KHA9bihpLGMpKSYmcC52YWx1ZTppW2NdLCFsKGY/YzpnKyhtPyIuIjoiIyIpK2MsdC5mb3JjZWQpJiZ2b2lkIDAhPT1kKXtpZih0eXBlb2YgdT09dHlwZW9mIGQpY29udGludWU7aCh1LGQpfSh0LnNoYW18fGQmJmQuc2hhbSkmJnIodSwic2hhbSIsITApLGEoaSxjLHUsdCl9fX0sOTAzOTp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIXQoKX1jYXRjaCh0KXtyZXR1cm4hMH19fSw2MDgwOih0LGUsaSk9Pnt2YXIgcz1pKDc0NzYpLG49aSg5MzA2KSxyPWkoNjE2KSxhPXMocy5iaW5kKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0KSx2b2lkIDA9PT1lP3Q6cj9hKHQsZSk6ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fX0sNjE2Oih0LGUsaSk9Pnt2YXIgcz1pKDkwMzkpO3QuZXhwb3J0cz0hcygoZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0Lmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKX0sOTU2NToodCxlLGkpPT57dmFyIHM9aSg2MTYpLG49RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPXM/bi5iaW5kKG4pOmZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHkobixhcmd1bWVudHMpfX0sMzUwOih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg5Mjk3KSxyPUZ1bmN0aW9uLnByb3RvdHlwZSxhPXMmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1uKHIsIm5hbWUiKSxoPW8mJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsbD1vJiYoIXN8fHMmJmEociwibmFtZSIpLmNvbmZpZ3VyYWJsZSk7dC5leHBvcnRzPXtFWElTVFM6byxQUk9QRVI6aCxDT05GSUdVUkFCTEU6bH19LDY3MDY6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1pKDkzMDYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7dHJ5e3JldHVybiBzKG4oT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpW2ldKSl9Y2F0Y2godCl7fX19LDc0NzY6KHQsZSxpKT0+e3ZhciBzPWkoMjE5NSksbj1pKDk1MDQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiRnVuY3Rpb24iPT09cyh0KSlyZXR1cm4gbih0KX19LDk1MDQ6KHQsZSxpKT0+e3ZhciBzPWkoNjE2KSxuPUZ1bmN0aW9uLnByb3RvdHlwZSxyPW4uY2FsbCxhPXMmJm4uYmluZC5iaW5kKHIscik7dC5leHBvcnRzPXM/YTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0LGFyZ3VtZW50cyl9fX0sOTQyOToodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoNjE5Myk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4pe3RyeXtyZXR1cm4gcy5wcm9jZXNzLmdldEJ1aWx0aW5Nb2R1bGUodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gRnVuY3Rpb24oJ3JldHVybiByZXF1aXJlKCInK3QrJyIpJykoKX1jYXRjaCh0KXt9fX19LDc3NTE6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1pKDQ5MDEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/KGk9c1t0XSxuKGkpP2k6dm9pZCAwKTpzW3RdJiZzW3RdW2VdO3ZhciBpfX0sMTc2Nzp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybntpdGVyYXRvcjp0LG5leHQ6dC5uZXh0LGRvbmU6ITF9fX0sODY0NjoodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoODU1MSkscj1pKDE3NjcpLGE9aSg4NTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UmJiJzdHJpbmciPT10eXBlb2YgdHx8bih0KTt2YXIgaT1hKHQpO3JldHVybiByKG4odm9pZCAwIT09aT9zKGksdCk6dCkpfX0sODUxOih0LGUsaSk9Pnt2YXIgcz1pKDY5NTUpLG49aSg1OTY2KSxyPWkoNDExNyksYT1pKDYyNjkpLG89aSg4MjI3KSgiaXRlcmF0b3IiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpcmV0dXJuIG4odCxvKXx8bih0LCJAQGl0ZXJhdG9yIil8fGFbcyh0KV19fSw4MToodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoOTMwNikscj1pKDg1NTEpLGE9aSg2ODIzKSxvPWkoODUxKSxoPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPDI/byh0KTplO2lmKG4oaSkpcmV0dXJuIHIocyhpLHQpKTt0aHJvdyBuZXcgaChhKHQpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw1OTY2Oih0LGUsaSk9Pnt2YXIgcz1pKDkzMDYpLG49aSg0MTE3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgaT10W2VdO3JldHVybiBuKGkpP3ZvaWQgMDpzKGkpfX0sMzc4OToodCxlLGkpPT57dmFyIHM9aSg5MzA2KSxuPWkoODU1MSkscj1pKDk1NjUpLGE9aSgxMjkxKSxvPWkoMTc2NyksaD0iSW52YWxpZCBzaXplIixsPVJhbmdlRXJyb3IsYz1UeXBlRXJyb3IsZD1NYXRoLm1heCx1PWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXQ9dCx0aGlzLnNpemU9ZChlLDApLHRoaXMuaGFzPXModC5oYXMpLHRoaXMua2V5cz1zKHQua2V5cyl9O3UucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiBvKG4ocih0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMuaGFzLHRoaXMuc2V0LHQpfX0sdC5leHBvcnRzPWZ1bmN0aW9uKHQpe24odCk7dmFyIGU9K3Quc2l6ZTtpZihlIT1lKXRocm93IG5ldyBjKGgpO3ZhciBpPWEoZSk7aWYoaTwwKXRocm93IG5ldyBsKGgpO3JldHVybiBuZXcgdSh0LGkpfX0sNDU3NjpmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT09TWF0aCYmdH07dC5leHBvcnRzPWUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8ZSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8ZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxlKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwpfHxlKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDkyOTc6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1pKDg5ODEpLHI9cyh7fS5oYXNPd25Qcm9wZXJ0eSk7dC5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIobih0KSxlKX19LDQyMTp0PT57dC5leHBvcnRzPXt9fSwzOTc6KHQsZSxpKT0+e3ZhciBzPWkoNzc1MSk7dC5leHBvcnRzPXMoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDU5MTc6KHQsZSxpKT0+e3ZhciBzPWkoMzcyNCksbj1pKDkwMzkpLHI9aSg0MDU1KTt0LmV4cG9ydHM9IXMmJiFuKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHIoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNzA1NToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoOTAzOSkscj1pKDIxOTUpLGE9T2JqZWN0LG89cygiIi5zcGxpdCk7dC5leHBvcnRzPW4oKGZ1bmN0aW9uKCl7cmV0dXJuIWEoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09PXIodCk/byh0LCIiKTphKHQpfTphfSwzMTY3Oih0LGUsaSk9Pnt2YXIgcz1pKDQ5MDEpLG49aSgzNCkscj1pKDI5NjcpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbztyZXR1cm4gciYmcyhhPWUuY29uc3RydWN0b3IpJiZhIT09aSYmbihvPWEucHJvdG90eXBlKSYmbyE9PWkucHJvdG90eXBlJiZyKHQsbyksdH19LDM3MDY6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1pKDQ5MDEpLHI9aSg3NjI5KSxhPXMoRnVuY3Rpb24udG9TdHJpbmcpO24oci5pbnNwZWN0U291cmNlKXx8KHIuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pLHQuZXhwb3J0cz1yLmluc3BlY3RTb3VyY2V9LDExODE6KHQsZSxpKT0+e3ZhciBzLG4scixhPWkoODYyMiksbz1pKDQ1NzYpLGg9aSgzNCksbD1pKDY2OTkpLGM9aSg5Mjk3KSxkPWkoNzYyOSksdT1pKDYxMTkpLHA9aSg0MjEpLGc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixmPW8uVHlwZUVycm9yLG09by5XZWFrTWFwO2lmKGF8fGQuc3RhdGUpe3ZhciBiPWQuc3RhdGV8fChkLnN0YXRlPW5ldyBtKTtiLmdldD1iLmdldCxiLmhhcz1iLmhhcyxiLnNldD1iLnNldCxzPWZ1bmN0aW9uKHQsZSl7aWYoYi5oYXModCkpdGhyb3cgbmV3IGYoZyk7cmV0dXJuIGUuZmFjYWRlPXQsYi5zZXQodCxlKSxlfSxuPWZ1bmN0aW9uKHQpe3JldHVybiBiLmdldCh0KXx8e319LHI9ZnVuY3Rpb24odCl7cmV0dXJuIGIuaGFzKHQpfX1lbHNle3ZhciB2PXUoInN0YXRlIik7cFt2XT0hMCxzPWZ1bmN0aW9uKHQsZSl7aWYoYyh0LHYpKXRocm93IG5ldyBmKGcpO3JldHVybiBlLmZhY2FkZT10LGwodCx2LGUpLGV9LG49ZnVuY3Rpb24odCl7cmV0dXJuIGModCx2KT90W3ZdOnt9fSxyPWZ1bmN0aW9uKHQpe3JldHVybiBjKHQsdil9fXQuZXhwb3J0cz17c2V0OnMsZ2V0Om4saGFzOnIsZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gcih0KT9uKHQpOnModCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGk7aWYoIWgoZSl8fChpPW4oZSkpLnR5cGUhPT10KXRocm93IG5ldyBmKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIGl9fX19LDQyMDk6KHQsZSxpKT0+e3ZhciBzPWkoODIyNyksbj1pKDYyNjkpLHI9cygiaXRlcmF0b3IiKSxhPUFycmF5LnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQmJihuLkFycmF5PT09dHx8YVtyXT09PXQpfX0sNDM3NjoodCxlLGkpPT57dmFyIHM9aSgyMTk1KTt0LmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIkFycmF5Ij09PXModCl9fSwxMTA4Oih0LGUsaSk9Pnt2YXIgcz1pKDY5NTUpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1zKHQpO3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PWV8fCJCaWdVaW50NjRBcnJheSI9PT1lfX0sNDkwMTp0PT57dmFyIGU9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsO3QuZXhwb3J0cz12b2lkIDA9PT1lJiZ2b2lkIDAhPT1lP2Z1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHx0PT09ZX06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fSwyNzk2Oih0LGUsaSk9Pnt2YXIgcz1pKDkwMzkpLG49aSg0OTAxKSxyPS8jfFwucHJvdG90eXBlXC4vLGE9ZnVuY3Rpb24odCxlKXt2YXIgaT1oW28odCldO3JldHVybiBpPT09Y3x8aSE9PWwmJihuKGUpP3MoZSk6ISFlKX0sbz1hLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UociwiLiIpLnRvTG93ZXJDYXNlKCl9LGg9YS5kYXRhPXt9LGw9YS5OQVRJVkU9Ik4iLGM9YS5QT0xZRklMTD0iUCI7dC5leHBvcnRzPWF9LDQxMTc6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH19LDM0Oih0LGUsaSk9Pnt2YXIgcz1pKDQ5MDEpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6cyh0KX19LDM5MjU6KHQsZSxpKT0+e3ZhciBzPWkoMzQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcyh0KXx8bnVsbD09PXR9fSw2Mzk1OnQ9Pnt0LmV4cG9ydHM9ITF9LDc1NzoodCxlLGkpPT57dmFyIHM9aSg3NzUxKSxuPWkoNDkwMSkscj1pKDE2MjUpLGE9aSg3MDQwKSxvPU9iamVjdDt0LmV4cG9ydHM9YT9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXMoIlN5bWJvbCIpO3JldHVybiBuKGUpJiZyKGUucHJvdG90eXBlLG8odCkpfX0sNTA3Oih0LGUsaSk9Pnt2YXIgcz1pKDk1NjUpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBuLHIsYT1pP3Q6dC5pdGVyYXRvcixvPXQubmV4dDshKG49cyhvLGEpKS5kb25lOylpZih2b2lkIDAhPT0ocj1lKG4udmFsdWUpKSlyZXR1cm4gcn19LDI2NTI6KHQsZSxpKT0+e3ZhciBzPWkoNjA4MCksbj1pKDk1NjUpLHI9aSg4NTUxKSxhPWkoNjgyMyksbz1pKDQyMDkpLGg9aSg2MTk4KSxsPWkoMTYyNSksYz1pKDgxKSxkPWkoODUxKSx1PWkoOTUzOSkscD1UeXBlRXJyb3IsZz1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9LGY9Zy5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbSxiLHYseSxBLHcseCxfPWkmJmkudGhhdCxFPSEoIWl8fCFpLkFTX0VOVFJJRVMpLEM9ISghaXx8IWkuSVNfUkVDT1JEKSxTPSEoIWl8fCFpLklTX0lURVJBVE9SKSxUPSEoIWl8fCFpLklOVEVSUlVQVEVEKSxNPXMoZSxfKSxrPWZ1bmN0aW9uKHQpe3JldHVybiBtJiZ1KG0sIm5vcm1hbCIsdCksbmV3IGcoITAsdCl9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIEU/KHIodCksVD9NKHRbMF0sdFsxXSxrKTpNKHRbMF0sdFsxXSkpOlQ/TSh0LGspOk0odCl9O2lmKEMpbT10Lml0ZXJhdG9yO2Vsc2UgaWYoUyltPXQ7ZWxzZXtpZighKGI9ZCh0KSkpdGhyb3cgbmV3IHAoYSh0KSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKG8oYikpe2Zvcih2PTAseT1oKHQpO3k+djt2KyspaWYoKEE9SSh0W3ZdKSkmJmwoZixBKSlyZXR1cm4gQTtyZXR1cm4gbmV3IGcoITEpfW09Yyh0LGIpfWZvcih3PUM/dC5uZXh0Om0ubmV4dDshKHg9bih3LG0pKS5kb25lOyl7dHJ5e0E9SSh4LnZhbHVlKX1jYXRjaCh0KXt1KG0sInRocm93Iix0KX1pZigib2JqZWN0Ij09dHlwZW9mIEEmJkEmJmwoZixBKSlyZXR1cm4gQX1yZXR1cm4gbmV3IGcoITEpfX0sOTUzOToodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoODU1MSkscj1pKDU5NjYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbztuKHQpO3RyeXtpZighKGE9cih0LCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1lKXRocm93IGk7cmV0dXJuIGl9YT1zKGEsdCl9Y2F0Y2godCl7bz0hMCxhPXR9aWYoInRocm93Ij09PWUpdGhyb3cgaTtpZihvKXRocm93IGE7cmV0dXJuIG4oYSksaX19LDk0NjI6KHQsZSxpKT0+e3ZhciBzPWkoOTU2NSksbj1pKDIzNjApLHI9aSg2Njk5KSxhPWkoNjI3OSksbz1pKDgyMjcpLGg9aSgxMTgxKSxsPWkoNTk2NiksYz1pKDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGQ9aSgyNTI5KSx1PWkoOTUzOSkscD1vKCJ0b1N0cmluZ1RhZyIpLGc9Ikl0ZXJhdG9ySGVscGVyIixmPSJXcmFwRm9yVmFsaWRJdGVyYXRvciIsbT1oLnNldCxiPWZ1bmN0aW9uKHQpe3ZhciBlPWguZ2V0dGVyRm9yKHQ/ZjpnKTtyZXR1cm4gYShuKGMpLHtuZXh0OmZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKTtpZih0KXJldHVybiBpLm5leHRIYW5kbGVyKCk7dHJ5e3ZhciBzPWkuZG9uZT92b2lkIDA6aS5uZXh0SGFuZGxlcigpO3JldHVybiBkKHMsaS5kb25lKX1jYXRjaCh0KXt0aHJvdyBpLmRvbmU9ITAsdH19LHJldHVybjpmdW5jdGlvbigpe3ZhciBpPWUodGhpcyksbj1pLml0ZXJhdG9yO2lmKGkuZG9uZT0hMCx0KXt2YXIgcj1sKG4sInJldHVybiIpO3JldHVybiByP3MocixuKTpkKHZvaWQgMCwhMCl9aWYoaS5pbm5lcil0cnl7dShpLmlubmVyLml0ZXJhdG9yLCJub3JtYWwiKX1jYXRjaCh0KXtyZXR1cm4gdShuLCJ0aHJvdyIsdCl9cmV0dXJuIHUobiwibm9ybWFsIiksZCh2b2lkIDAsITApfX0pfSx2PWIoITApLHk9YighMSk7cih5LHAsIkl0ZXJhdG9yIEhlbHBlciIpLHQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBpPWZ1bmN0aW9uKGkscyl7cz8ocy5pdGVyYXRvcj1pLml0ZXJhdG9yLHMubmV4dD1pLm5leHQpOnM9aSxzLnR5cGU9ZT9mOmcscy5uZXh0SGFuZGxlcj10LHMuY291bnRlcj0wLHMuZG9uZT0hMSxtKHRoaXMscyl9O3JldHVybiBpLnByb3RvdHlwZT1lP3Y6eSxpfX0sNzEzOih0LGUsaSk9Pnt2YXIgcz1pKDk1NjUpLG49aSg5MzA2KSxyPWkoODU1MSksYT1pKDE3NjcpLG89aSg5NDYyKSxoPWkoNjMxOSksbD1vKChmdW5jdGlvbigpe3ZhciB0PXRoaXMuaXRlcmF0b3IsZT1yKHModGhpcy5uZXh0LHQpKTtpZighKHRoaXMuZG9uZT0hIWUuZG9uZSkpcmV0dXJuIGgodCx0aGlzLm1hcHBlcixbZS52YWx1ZSx0aGlzLmNvdW50ZXIrK10sITApfSkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzKSxuKHQpLG5ldyBsKGEodGhpcykse21hcHBlcjp0fSl9fSw3NjU3Oih0LGUsaSk9Pnt2YXIgcyxuLHIsYT1pKDkwMzkpLG89aSg0OTAxKSxoPWkoMzQpLGw9aSgyMzYwKSxjPWkoMjc4NyksZD1pKDY4NDApLHU9aSg4MjI3KSxwPWkoNjM5NSksZz11KCJpdGVyYXRvciIpLGY9ITE7W10ua2V5cyYmKCJuZXh0ImluKHI9W10ua2V5cygpKT8obj1jKGMocikpKSE9PU9iamVjdC5wcm90b3R5cGUmJihzPW4pOmY9ITApLCFoKHMpfHxhKChmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiBzW2ddLmNhbGwodCkhPT10fSkpP3M9e306cCYmKHM9bChzKSksbyhzW2ddKXx8ZChzLGcsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpzLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6Zn19LDYyNjk6dD0+e3QuZXhwb3J0cz17fX0sNjE5ODoodCxlLGkpPT57dmFyIHM9aSg4MDE0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHModC5sZW5ndGgpfX0sMjgzOih0LGUsaSk9Pnt2YXIgcz1pKDk1MDQpLG49aSg5MDM5KSxyPWkoNDkwMSksYT1pKDkyOTcpLG89aSgzNzI0KSxoPWkoMzUwKS5DT05GSUdVUkFCTEUsbD1pKDM3MDYpLGM9aSgxMTgxKSxkPWMuZW5mb3JjZSx1PWMuZ2V0LHA9U3RyaW5nLGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LGY9cygiIi5zbGljZSksbT1zKCIiLnJlcGxhY2UpLGI9cyhbXS5qb2luKSx2PW8mJiFuKChmdW5jdGlvbigpe3JldHVybiA4IT09ZygoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSx5PVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxBPXQuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7IlN5bWJvbCgiPT09ZihwKGUpLDAsNykmJihlPSJbIittKHAoZSksL15TeW1ib2xcKChbXildKilcKS4qJC8sIiQxIikrIl0iKSxpJiZpLmdldHRlciYmKGU9ImdldCAiK2UpLGkmJmkuc2V0dGVyJiYoZT0ic2V0ICIrZSksKCFhKHQsIm5hbWUiKXx8aCYmdC5uYW1lIT09ZSkmJihvP2codCwibmFtZSIse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwfSk6dC5uYW1lPWUpLHYmJmkmJmEoaSwiYXJpdHkiKSYmdC5sZW5ndGghPT1pLmFyaXR5JiZnKHQsImxlbmd0aCIse3ZhbHVlOmkuYXJpdHl9KTt0cnl7aSYmYShpLCJjb25zdHJ1Y3RvciIpJiZpLmNvbnN0cnVjdG9yP28mJmcodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTp0LnByb3RvdHlwZSYmKHQucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2godCl7fXZhciBzPWQodCk7cmV0dXJuIGEocywic291cmNlIil8fChzLnNvdXJjZT1iKHksInN0cmluZyI9PXR5cGVvZiBlP2U6IiIpKSx0fTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9QSgoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzKSYmdSh0aGlzKS5zb3VyY2V8fGwodGhpcyl9KSwidG9TdHJpbmciKX0sNzQxOnQ9Pnt2YXIgZT1NYXRoLmNlaWwsaT1NYXRoLmZsb29yO3QuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbih0KXt2YXIgcz0rdDtyZXR1cm4ocz4wP2k6ZSkocyl9fSw2MDQzOih0LGUsaSk9Pnt2YXIgcz1pKDkzMDYpLG49VHlwZUVycm9yLHI9ZnVuY3Rpb24odCl7dmFyIGUsaTt0aGlzLnByb21pc2U9bmV3IHQoKGZ1bmN0aW9uKHQscyl7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09aSl0aHJvdyBuZXcgbigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtlPXQsaT1zfSkpLHRoaXMucmVzb2x2ZT1zKGUpLHRoaXMucmVqZWN0PXMoaSl9O3QuZXhwb3J0cy5mPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcih0KX19LDI2MDM6KHQsZSxpKT0+e3ZhciBzPWkoNjU1KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dD9hcmd1bWVudHMubGVuZ3RoPDI/IiI6ZTpzKHQpfX0sNDE0OTp0PT57dmFyIGU9UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodD09dClyZXR1cm4gdDt0aHJvdyBuZXcgZSgiTmFOIGlzIG5vdCBhbGxvd2VkIil9fSwyMzYwOih0LGUsaSk9Pnt2YXIgcyxuPWkoODU1MSkscj1pKDY4MDEpLGE9aSg4NzI3KSxvPWkoNDIxKSxoPWkoMzk3KSxsPWkoNDA1NSksYz1pKDYxMTkpLGQ9InByb3RvdHlwZSIsdT0ic2NyaXB0IixwPWMoIklFX1BST1RPIiksZz1mdW5jdGlvbigpe30sZj1mdW5jdGlvbih0KXtyZXR1cm4iPCIrdSsiPiIrdCsiPC8iK3UrIj4ifSxtPWZ1bmN0aW9uKHQpe3Qud3JpdGUoZigiIikpLHQuY2xvc2UoKTt2YXIgZT10LnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIHQ9bnVsbCxlfSxiPWZ1bmN0aW9uKCl7dHJ5e3M9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2godCl7fXZhciB0LGUsaTtiPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZzP20ocyk6KGU9bCgiaWZyYW1lIiksaT0iamF2YSIrdSsiOiIsZS5zdHlsZS5kaXNwbGF5PSJub25lIixoLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZyhpKSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKGYoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpOm0ocyk7Zm9yKHZhciBuPWEubGVuZ3RoO24tLTspZGVsZXRlIGJbZF1bYVtuXV07cmV0dXJuIGIoKX07b1twXT0hMCx0LmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxlKXt2YXIgaTtyZXR1cm4gbnVsbCE9PXQ/KGdbZF09bih0KSxpPW5ldyBnLGdbZF09bnVsbCxpW3BdPXQpOmk9YigpLHZvaWQgMD09PWU/aTpyLmYoaSxlKX19LDY4MDE6KHQsZSxpKT0+e3ZhciBzPWkoMzcyNCksbj1pKDg2ODYpLHI9aSg0OTEzKSxhPWkoODU1MSksbz1pKDUzOTcpLGg9aSgxMDcyKTtlLmY9cyYmIW4/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odCxlKXthKHQpO2Zvcih2YXIgaSxzPW8oZSksbj1oKGUpLGw9bi5sZW5ndGgsYz0wO2w+Yzspci5mKHQsaT1uW2MrK10sc1tpXSk7cmV0dXJuIHR9fSw0OTEzOih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg1OTE3KSxyPWkoODY4NiksYT1pKDg1NTEpLG89aSg2OTY5KSxoPVR5cGVFcnJvcixsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZD0iZW51bWVyYWJsZSIsdT0iY29uZmlndXJhYmxlIixwPSJ3cml0YWJsZSI7ZS5mPXM/cj9mdW5jdGlvbih0LGUsaSl7aWYoYSh0KSxlPW8oZSksYShpKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gaSYmcCBpbiBpJiYhaVtwXSl7dmFyIHM9Yyh0LGUpO3MmJnNbcF0mJih0W2VdPWkudmFsdWUsaT17Y29uZmlndXJhYmxlOnUgaW4gaT9pW3VdOnNbdV0sZW51bWVyYWJsZTpkIGluIGk/aVtkXTpzW2RdLHdyaXRhYmxlOiExfSl9cmV0dXJuIGwodCxlLGkpfTpsOmZ1bmN0aW9uKHQsZSxpKXtpZihhKHQpLGU9byhlKSxhKGkpLG4pdHJ5e3JldHVybiBsKHQsZSxpKX1jYXRjaCh0KXt9aWYoImdldCJpbiBpfHwic2V0ImluIGkpdGhyb3cgbmV3IGgoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIGkmJih0W2VdPWkudmFsdWUpLHR9fSw3MzQ3Oih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg5NTY1KSxyPWkoODc3MyksYT1pKDY5ODApLG89aSg1Mzk3KSxoPWkoNjk2OSksbD1pKDkyOTcpLGM9aSg1OTE3KSxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ZS5mPXM/ZDpmdW5jdGlvbih0LGUpe2lmKHQ9byh0KSxlPWgoZSksYyl0cnl7cmV0dXJuIGQodCxlKX1jYXRjaCh0KXt9aWYobCh0LGUpKXJldHVybiBhKCFuKHIuZix0LGUpLHRbZV0pfX0sODQ4MDoodCxlLGkpPT57dmFyIHM9aSgxODI4KSxuPWkoODcyNykuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBzKHQsbil9fSwzNzE3Oih0LGUpPT57ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDI3ODc6KHQsZSxpKT0+e3ZhciBzPWkoOTI5Nyksbj1pKDQ5MDEpLHI9aSg4OTgxKSxhPWkoNjExOSksbz1pKDIyMTEpLGg9YSgiSUVfUFJPVE8iKSxsPU9iamVjdCxjPWwucHJvdG90eXBlO3QuZXhwb3J0cz1vP2wuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7dmFyIGU9cih0KTtpZihzKGUsaCkpcmV0dXJuIGVbaF07dmFyIGk9ZS5jb25zdHJ1Y3RvcjtyZXR1cm4gbihpKSYmZSBpbnN0YW5jZW9mIGk/aS5wcm90b3R5cGU6ZSBpbnN0YW5jZW9mIGw/YzpudWxsfX0sMTYyNToodCxlLGkpPT57dmFyIHM9aSg5NTA0KTt0LmV4cG9ydHM9cyh7fS5pc1Byb3RvdHlwZU9mKX0sMTgyODoodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoOTI5Nykscj1pKDUzOTcpLGE9aSg5NjE3KS5pbmRleE9mLG89aSg0MjEpLGg9cyhbXS5wdXNoKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgaSxzPXIodCksbD0wLGM9W107Zm9yKGkgaW4gcykhbihvLGkpJiZuKHMsaSkmJmgoYyxpKTtmb3IoO2UubGVuZ3RoPmw7KW4ocyxpPWVbbCsrXSkmJih+YShjLGkpfHxoKGMsaSkpO3JldHVybiBjfX0sMTA3MjoodCxlLGkpPT57dmFyIHM9aSgxODI4KSxuPWkoODcyNyk7dC5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gcyh0LG4pfX0sODc3MzoodCxlKT0+e3ZhciBpPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixuPXMmJiFpLmNhbGwoezE6Mn0sMSk7ZS5mPW4/ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTppfSwyOTY3Oih0LGUsaSk9Pnt2YXIgcz1pKDY3MDYpLG49aSgzNCkscj1pKDc3NTApLGE9aSgzNTA2KTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxpPXt9O3RyeXsodD1zKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShpLFtdKSxlPWkgaW5zdGFuY2VvZiBBcnJheX1jYXRjaCh0KXt9cmV0dXJuIGZ1bmN0aW9uKGkscyl7cmV0dXJuIHIoaSksYShzKSxuKGkpPyhlP3QoaSxzKTppLl9fcHJvdG9fXz1zLGkpOml9fSgpOnZvaWQgMCl9LDQyNzA6KHQsZSxpKT0+e3ZhciBzPWkoOTU2NSksbj1pKDQ5MDEpLHI9aSgzNCksYT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGksbztpZigic3RyaW5nIj09PWUmJm4oaT10LnRvU3RyaW5nKSYmIXIobz1zKGksdCkpKXJldHVybiBvO2lmKG4oaT10LnZhbHVlT2YpJiYhcihvPXMoaSx0KSkpcmV0dXJuIG87aWYoInN0cmluZyIhPT1lJiZuKGk9dC50b1N0cmluZykmJiFyKG89cyhpLHQpKSlyZXR1cm4gbzt0aHJvdyBuZXcgYSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSw1MDMxOih0LGUsaSk9Pnt2YXIgcz1pKDc3NTEpLG49aSg5NTA0KSxyPWkoODQ4MCksYT1pKDM3MTcpLG89aSg4NTUxKSxoPW4oW10uY29uY2F0KTt0LmV4cG9ydHM9cygiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9ci5mKG8odCkpLGk9YS5mO3JldHVybiBpP2goZSxpKHQpKTplfX0sODIzNToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoOTI5Nykscj1TeW50YXhFcnJvcixhPXBhcnNlSW50LG89U3RyaW5nLmZyb21DaGFyQ29kZSxoPXMoIiIuY2hhckF0KSxsPXMoIiIuc2xpY2UpLGM9cygvLi8uZXhlYyksZD17J1xcIic6JyInLCJcXFxcIjoiXFwiLCJcXC8iOiIvIiwiXFxiIjoiXGIiLCJcXGYiOiJcZiIsIlxcbiI6IlxuIiwiXFxyIjoiXHIiLCJcXHQiOiJcdCJ9LHU9L15bXGRhLWZdezR9JC9pLHA9L15bXHUwMDAwLVx1MDAxRl0kLzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9ITAscz0iIjtlPHQubGVuZ3RoOyl7dmFyIGc9aCh0LGUpO2lmKCJcXCI9PT1nKXt2YXIgZj1sKHQsZSxlKzIpO2lmKG4oZCxmKSlzKz1kW2ZdLGUrPTI7ZWxzZXtpZigiXFx1IiE9PWYpdGhyb3cgbmV3IHIoJ1Vua25vd24gZXNjYXBlIHNlcXVlbmNlOiAiJytmKyciJyk7dmFyIG09bCh0LGUrPTIsZSs0KTtpZighYyh1LG0pKXRocm93IG5ldyByKCJCYWQgVW5pY29kZSBlc2NhcGUgYXQ6ICIrZSk7cys9byhhKG0sMTYpKSxlKz00fX1lbHNle2lmKCciJz09PWcpe2k9ITEsZSsrO2JyZWFrfWlmKGMocCxnKSl0aHJvdyBuZXcgcigiQmFkIGNvbnRyb2wgY2hhcmFjdGVyIGluIHN0cmluZyBsaXRlcmFsIGF0OiAiK2UpO3MrPWcsZSsrfX1pZihpKXRocm93IG5ldyByKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGF0OiAiK2UpO3JldHVybnt2YWx1ZTpzLGVuZDplfX19LDc3NTA6KHQsZSxpKT0+e3ZhciBzPWkoNDExNyksbj1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHModCkpdGhyb3cgbmV3IG4oIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9fSw5Mjg2Oih0LGUsaSk9Pnt2YXIgcz1pKDQ0MDIpLG49aSg4NDY5KSxyPXMuU2V0LGE9cy5hZGQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyByO3JldHVybiBuKHQsKGZ1bmN0aW9uKHQpe2EoZSx0KX0pKSxlfX0sMzQ0MDoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikscj1pKDkyODYpLGE9aSg1MTcwKSxvPWkoMzc4OSksaD1pKDg0NjkpLGw9aSg1MDcpLGM9bi5oYXMsZD1uLnJlbW92ZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPW8odCksbj1yKGUpO3JldHVybiBhKGUpPD1pLnNpemU/aChlLChmdW5jdGlvbih0KXtpLmluY2x1ZGVzKHQpJiZkKG4sdCl9KSk6bChpLmdldEl0ZXJhdG9yKCksKGZ1bmN0aW9uKHQpe2MoZSx0KSYmZChuLHQpfSkpLG59fSw0NDAyOih0LGUsaSk9Pnt2YXIgcz1pKDk1MDQpLG49U2V0LnByb3RvdHlwZTt0LmV4cG9ydHM9e1NldCxhZGQ6cyhuLmFkZCksaGFzOnMobi5oYXMpLHJlbW92ZTpzKG4uZGVsZXRlKSxwcm90bzpufX0sODc1MDoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikscj1pKDUxNzApLGE9aSgzNzg5KSxvPWkoODQ2OSksaD1pKDUwNyksbD1uLlNldCxjPW4uYWRkLGQ9bi5oYXM7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXModGhpcyksaT1hKHQpLG49bmV3IGw7cmV0dXJuIHIoZSk+aS5zaXplP2goaS5nZXRJdGVyYXRvcigpLChmdW5jdGlvbih0KXtkKGUsdCkmJmMobix0KX0pKTpvKGUsKGZ1bmN0aW9uKHQpe2kuaW5jbHVkZXModCkmJmMobix0KX0pKSxufX0sNDQ0OToodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikuaGFzLHI9aSg1MTcwKSxhPWkoMzc4OSksbz1pKDg0NjkpLGg9aSg1MDcpLGw9aSg5NTM5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPWEodCk7aWYocihlKTw9aS5zaXplKXJldHVybiExIT09byhlLChmdW5jdGlvbih0KXtpZihpLmluY2x1ZGVzKHQpKXJldHVybiExfSksITApO3ZhciBjPWkuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PWgoYywoZnVuY3Rpb24odCl7aWYobihlLHQpKXJldHVybiBsKGMsIm5vcm1hbCIsITEpfSkpfX0sMzgzODoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNTE3MCkscj1pKDg0NjkpLGE9aSgzNzg5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPWEodCk7cmV0dXJuIShuKGUpPmkuc2l6ZSkmJiExIT09cihlLChmdW5jdGlvbih0KXtpZighaS5pbmNsdWRlcyh0KSlyZXR1cm4hMX0pLCEwKX19LDg1Mjc6KHQsZSxpKT0+e3ZhciBzPWkoNzA4MCksbj1pKDQ0MDIpLmhhcyxyPWkoNTE3MCksYT1pKDM3ODkpLG89aSg1MDcpLGg9aSg5NTM5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPWEodCk7aWYocihlKTxpLnNpemUpcmV0dXJuITE7dmFyIGw9aS5nZXRJdGVyYXRvcigpO3JldHVybiExIT09byhsLChmdW5jdGlvbih0KXtpZighbihlLHQpKXJldHVybiBoKGwsIm5vcm1hbCIsITEpfSkpfX0sODQ2OToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoNTA3KSxyPWkoNDQwMiksYT1yLlNldCxvPXIucHJvdG8saD1zKG8uZm9yRWFjaCksbD1zKG8ua2V5cyksYz1sKG5ldyBhKS5uZXh0O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7cmV0dXJuIGk/bih7aXRlcmF0b3I6bCh0KSxuZXh0OmN9LGUpOmgodCxlKX19LDQ5MTY6KHQsZSxpKT0+e3ZhciBzPWkoNzc1MSksbj1mdW5jdGlvbih0KXtyZXR1cm57c2l6ZTp0LGhhczpmdW5jdGlvbigpe3JldHVybiExfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX19fTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cygiU2V0Iik7dHJ5eyhuZXcgZSlbdF0obigwKSk7dHJ5e3JldHVybihuZXcgZSlbdF0obigtMSkpLCExfWNhdGNoKHQpe3JldHVybiEwfX1jYXRjaCh0KXtyZXR1cm4hMX19fSw1MTcwOih0LGUsaSk9Pnt2YXIgcz1pKDY3MDYpLG49aSg0NDAyKTt0LmV4cG9ydHM9cyhuLnByb3RvLCJzaXplIiwiZ2V0Iil8fGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9fSwzNjUwOih0LGUsaSk9Pnt2YXIgcz1pKDcwODApLG49aSg0NDAyKSxyPWkoOTI4NiksYT1pKDM3ODkpLG89aSg1MDcpLGg9bi5hZGQsbD1uLmhhcyxjPW4ucmVtb3ZlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1zKHRoaXMpLGk9YSh0KS5nZXRJdGVyYXRvcigpLG49cihlKTtyZXR1cm4gbyhpLChmdW5jdGlvbih0KXtsKGUsdCk/YyhuLHQpOmgobix0KX0pKSxufX0sNDIwNDoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikuYWRkLHI9aSg5Mjg2KSxhPWkoMzc4OSksbz1pKDUwNyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXModGhpcyksaT1hKHQpLmdldEl0ZXJhdG9yKCksaD1yKGUpO3JldHVybiBvKGksKGZ1bmN0aW9uKHQpe24oaCx0KX0pKSxofX0sNjExOToodCxlLGkpPT57dmFyIHM9aSg1NzQ1KSxuPWkoMzM5Mikscj1zKCJrZXlzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByW3RdfHwoclt0XT1uKHQpKX19LDc2Mjk6KHQsZSxpKT0+e3ZhciBzPWkoNjM5NSksbj1pKDQ1NzYpLHI9aSg5NDMzKSxhPSJfX2NvcmUtanNfc2hhcmVkX18iLG89dC5leHBvcnRzPW5bYV18fHIoYSx7fSk7KG8udmVyc2lvbnN8fChvLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy4zOC4xIixtb2RlOnM/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sNTc0NToodCxlLGkpPT57dmFyIHM9aSg3NjI5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gc1t0XXx8KHNbdF09ZXx8e30pfX0sMTU0ODoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoOTAzOSkscj1pKDk1MTkpLGE9aSg0MjE1KSxvPXMuc3RydWN0dXJlZENsb25lO3QuZXhwb3J0cz0hIW8mJiFuKChmdW5jdGlvbigpe2lmKCJERU5PIj09PWEmJnI+OTJ8fCJOT0RFIj09PWEmJnI+OTR8fCJCUk9XU0VSIj09PWEmJnI+OTcpcmV0dXJuITE7dmFyIHQ9bmV3IEFycmF5QnVmZmVyKDgpLGU9byh0LHt0cmFuc2ZlcjpbdF19KTtyZXR1cm4gMCE9PXQuYnl0ZUxlbmd0aHx8OCE9PWUuYnl0ZUxlbmd0aH0pKX0sNDQ5NToodCxlLGkpPT57dmFyIHM9aSg5NTE5KSxuPWkoOTAzOSkscj1pKDQ1NzYpLlN0cmluZzt0LmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhbigoZnVuY3Rpb24oKXt2YXIgdD1TeW1ib2woInN5bWJvbCBkZXRlY3Rpb24iKTtyZXR1cm4hcih0KXx8IShPYmplY3QodClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmcyYmczw0MX0pKX0sNTYxMDoodCxlLGkpPT57dmFyIHM9aSgxMjkxKSxuPU1hdGgubWF4LHI9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGk9cyh0KTtyZXR1cm4gaTwwP24oaStlLDApOnIoaSxlKX19LDU4NTQ6KHQsZSxpKT0+e3ZhciBzPWkoMjc3Nyksbj1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXModCwibnVtYmVyIik7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBuKCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnQiKTtyZXR1cm4gQmlnSW50KGUpfX0sNzY5NjoodCxlLGkpPT57dmFyIHM9aSgxMjkxKSxuPWkoODAxNCkscj1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVybiAwO3ZhciBlPXModCksaT1uKGUpO2lmKGUhPT1pKXRocm93IG5ldyByKCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gaX19LDUzOTc6KHQsZSxpKT0+e3ZhciBzPWkoNzA1NSksbj1pKDc3NTApO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcyhuKHQpKX19LDEyOTE6KHQsZSxpKT0+e3ZhciBzPWkoNzQxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGUhPWV8fDA9PT1lPzA6cyhlKX19LDgwMTQ6KHQsZSxpKT0+e3ZhciBzPWkoMTI5MSksbj1NYXRoLm1pbjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0KTtyZXR1cm4gZT4wP24oZSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sODk4MToodCxlLGkpPT57dmFyIHM9aSg3NzUwKSxuPU9iamVjdDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4ocyh0KSl9fSw5NTkwOih0LGUsaSk9Pnt2YXIgcz1pKDEyOTEpLG49UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0KTtpZihlPDApdGhyb3cgbmV3IG4oIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBlfX0sMjc3NzoodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoMzQpLHI9aSg3NTcpLGE9aSg1OTY2KSxvPWkoNDI3MCksaD1pKDgyMjcpLGw9VHlwZUVycm9yLGM9aCgidG9QcmltaXRpdmUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighbih0KXx8cih0KSlyZXR1cm4gdDt2YXIgaSxoPWEodCxjKTtpZihoKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLGk9cyhoLHQsZSksIW4oaSl8fHIoaSkpcmV0dXJuIGk7dGhyb3cgbmV3IGwoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT1lJiYoZT0ibnVtYmVyIiksbyh0LGUpfX0sNjk2OToodCxlLGkpPT57dmFyIHM9aSgyNzc3KSxuPWkoNzU3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0LCJzdHJpbmciKTtyZXR1cm4gbihlKT9lOmUrIiJ9fSwyMTQwOih0LGUsaSk9Pnt2YXIgcz17fTtzW2koODIyNykoInRvU3RyaW5nVGFnIildPSJ6Iix0LmV4cG9ydHM9IltvYmplY3Qgel0iPT09U3RyaW5nKHMpfSw2NTU6KHQsZSxpKT0+e3ZhciBzPWkoNjk1NSksbj1TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJTeW1ib2wiPT09cyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBuKHQpfX0sNjgyMzp0PT57dmFyIGU9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGUodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fX0sMzM5MjoodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPTAscj1NYXRoLnJhbmRvbSgpLGE9cygxLi50b1N0cmluZyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK2EoKytuK3IsMzYpfX0sNzA0MDoodCxlLGkpPT57dmFyIHM9aSg0NDk1KTt0LmV4cG9ydHM9cyYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sODY4NjoodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoOTAzOSk7dC5leHBvcnRzPXMmJm4oKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT09T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKX0sMjgxMjp0PT57dmFyIGU9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGkpe2lmKHQ8aSl0aHJvdyBuZXcgZSgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gdH19LDg2MjI6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1pKDQ5MDEpLHI9cy5XZWFrTWFwO3QuZXhwb3J0cz1uKHIpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKHIpKX0sODIyNzoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoNTc0NSkscj1pKDkyOTcpLGE9aSgzMzkyKSxvPWkoNDQ5NSksaD1pKDcwNDApLGw9cy5TeW1ib2wsYz1uKCJ3a3MiKSxkPWg/bC5mb3J8fGw6bCYmbC53aXRob3V0U2V0dGVyfHxhO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcihjLHQpfHwoY1t0XT1vJiZyKGwsdCk/bFt0XTpkKCJTeW1ib2wuIit0KSksY1t0XX19LDY1NzM6KHQsZSxpKT0+e3ZhciBzPWkoMzcyNCksbj1pKDIxMDYpLHI9aSgzMjM4KSxhPUFycmF5QnVmZmVyLnByb3RvdHlwZTtzJiYhKCJkZXRhY2hlZCJpbiBhKSYmbihhLCJkZXRhY2hlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzKX19KX0sNzkzNjoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoNTYzNik7biYmcyh7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86ITB9LHt0cmFuc2ZlclRvRml4ZWRMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMSl9fSl9LDgxMDA6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDU2MzYpO24mJnMoe3RhcmdldDoiQXJyYXlCdWZmZXIiLHByb3RvOiEwfSx7dHJhbnNmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMCl9fSl9LDQxMTQ6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDg5ODEpLHI9aSg2MTk4KSxhPWkoNDUyNyksbz1pKDY4MzcpO3Moe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOmkoOTAzOSkoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pKXx8IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpfSx7cHVzaDpmdW5jdGlvbih0KXt2YXIgZT1uKHRoaXMpLGk9cihlKSxzPWFyZ3VtZW50cy5sZW5ndGg7byhpK3MpO2Zvcih2YXIgaD0wO2g8cztoKyspZVtpXT1hcmd1bWVudHNbaF0saSsrO3JldHVybiBhKGUsaSksaX19KX0sNDYyODoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoNjA0Myk7cyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7d2l0aFJlc29sdmVyczpmdW5jdGlvbigpe3ZhciB0PW4uZih0aGlzKTtyZXR1cm57cHJvbWlzZTp0LnByb21pc2UscmVzb2x2ZTp0LnJlc29sdmUscmVqZWN0OnQucmVqZWN0fX19KX0sNzY0MjoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoMzQ0MCk7cyh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJkaWZmZXJlbmNlIil9LHtkaWZmZXJlbmNlOm59KX0sODAwNDoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoOTAzOSkscj1pKDg3NTApO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgiaW50ZXJzZWN0aW9uIil8fG4oKGZ1bmN0aW9uKCl7cmV0dXJuIjMsMiIhPT1TdHJpbmcoQXJyYXkuZnJvbShuZXcgU2V0KFsxLDIsM10pLmludGVyc2VjdGlvbihuZXcgU2V0KFszLDJdKSkpKX0pKX0se2ludGVyc2VjdGlvbjpyfSl9LDM4NTM6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDQ0NDkpO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgiaXNEaXNqb2ludEZyb20iKX0se2lzRGlzam9pbnRGcm9tOm59KX0sNTg3NjoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoMzgzOCk7cyh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJpc1N1YnNldE9mIil9LHtpc1N1YnNldE9mOm59KX0sMjQ3NToodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoODUyNyk7cyh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJpc1N1cGVyc2V0T2YiKX0se2lzU3VwZXJzZXRPZjpufSl9LDUwMjQ6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDM2NTApO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgic3ltbWV0cmljRGlmZmVyZW5jZSIpfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpufSl9LDE2OTg6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDQyMDQpO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgidW5pb24iKX0se3VuaW9uOm59KX0sNzQ2NzoodCxlLGkpPT57dmFyIHM9aSg3NjI4KSxuPWkoNDY0NCkscj1uLmFUeXBlZEFycmF5LGE9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLG89bi5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7YSgidG9SZXZlcnNlZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHMocih0aGlzKSxvKHRoaXMpKX0pKX0sNDczMjoodCxlLGkpPT57dmFyIHM9aSg0NjQ0KSxuPWkoOTUwNCkscj1pKDkzMDYpLGE9aSg1MzcwKSxvPXMuYVR5cGVkQXJyYXksaD1zLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcixsPXMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxjPW4ocy5UeXBlZEFycmF5UHJvdG90eXBlLnNvcnQpO2woInRvU29ydGVkIiwoZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmcih0KTt2YXIgZT1vKHRoaXMpLGk9YShoKGUpLGUpO3JldHVybiBjKGksdCl9KSl9LDk1Nzc6KHQsZSxpKT0+e3ZhciBzPWkoOTkyOCksbj1pKDQ2NDQpLHI9aSgxMTA4KSxhPWkoMTI5MSksbz1pKDU4NTQpLGg9bi5hVHlwZWRBcnJheSxsPW4uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLGM9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGQ9ISFmdW5jdGlvbigpe3RyeXtuZXcgSW50OEFycmF5KDEpLndpdGgoMix7dmFsdWVPZjpmdW5jdGlvbigpe3Rocm93IDh9fSl9Y2F0Y2godCl7cmV0dXJuIDg9PT10fX0oKTtjKCJ3aXRoIix7d2l0aDpmdW5jdGlvbih0LGUpe3ZhciBpPWgodGhpcyksbj1hKHQpLGM9cihpKT9vKGUpOitlO3JldHVybiBzKGksbChpKSxuLGMpfX0ud2l0aCwhZCl9LDg5OTI6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDQ1NzYpLHI9aSg2NzkpLGE9aSg4NTUxKSxvPWkoNDkwMSksaD1pKDI3ODcpLGw9aSgyMTA2KSxjPWkoNDY1OSksZD1pKDkwMzkpLHU9aSg5Mjk3KSxwPWkoODIyNyksZz1pKDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGY9aSgzNzI0KSxtPWkoNjM5NSksYj0iY29uc3RydWN0b3IiLHY9Ikl0ZXJhdG9yIix5PXAoInRvU3RyaW5nVGFnIiksQT1UeXBlRXJyb3Isdz1uW3ZdLHg9bXx8IW8odyl8fHcucHJvdG90eXBlIT09Z3x8IWQoKGZ1bmN0aW9uKCl7dyh7fSl9KSksXz1mdW5jdGlvbigpe2lmKHIodGhpcyxnKSxoKHRoaXMpPT09Zyl0aHJvdyBuZXcgQSgiQWJzdHJhY3QgY2xhc3MgSXRlcmF0b3Igbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGUiKX0sRT1mdW5jdGlvbih0LGUpe2Y/bChnLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX0sc2V0OmZ1bmN0aW9uKGUpe2lmKGEodGhpcyksdGhpcz09PWcpdGhyb3cgbmV3IEEoIllvdSBjYW4ndCByZWRlZmluZSB0aGlzIHByb3BlcnR5Iik7dSh0aGlzLHQpP3RoaXNbdF09ZTpjKHRoaXMsdCxlKX19KTpnW3RdPWV9O3UoZyx5KXx8RSh5LHYpLCF4JiZ1KGcsYikmJmdbYl0hPT1PYmplY3R8fEUoYixfKSxfLnByb3RvdHlwZT1nLHMoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6eH0se0l0ZXJhdG9yOl99KX0sNDc0MzoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoOTU2NSkscj1pKDg1NTEpLGE9aSgxNzY3KSxvPWkoNDE0OSksaD1pKDk1OTApLGw9aSg5NDYyKSxjPWkoNjM5NSksZD1sKChmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMuaXRlcmF0b3IsaT10aGlzLm5leHQ7dGhpcy5yZW1haW5pbmc7KWlmKHRoaXMucmVtYWluaW5nLS0sdD1yKG4oaSxlKSksdGhpcy5kb25lPSEhdC5kb25lKXJldHVybjtpZih0PXIobihpLGUpKSwhKHRoaXMuZG9uZT0hIXQuZG9uZSkpcmV0dXJuIHQudmFsdWV9KSk7cyh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Y30se2Ryb3A6ZnVuY3Rpb24odCl7cih0aGlzKTt2YXIgZT1oKG8oK3QpKTtyZXR1cm4gbmV3IGQoYSh0aGlzKSx7cmVtYWluaW5nOmV9KX19KX0sMzIxNToodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoMjY1Mikscj1pKDkzMDYpLGE9aSg4NTUxKSxvPWkoMTc2Nyk7cyh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2V2ZXJ5OmZ1bmN0aW9uKHQpe2EodGhpcykscih0KTt2YXIgZT1vKHRoaXMpLGk9MDtyZXR1cm4hbihlLChmdW5jdGlvbihlLHMpe2lmKCF0KGUsaSsrKSlyZXR1cm4gcygpfSkse0lTX1JFQ09SRDohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSl9LDQ1MjA6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDk1NjUpLHI9aSg5MzA2KSxhPWkoODU1MSksbz1pKDE3NjcpLGg9aSg5NDYyKSxsPWkoNjMxOSksYz1pKDYzOTUpLGQ9aCgoZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPXRoaXMuaXRlcmF0b3Iscz10aGlzLnByZWRpY2F0ZSxyPXRoaXMubmV4dDs7KXtpZih0PWEobihyLGkpKSx0aGlzLmRvbmU9ISF0LmRvbmUpcmV0dXJuO2lmKGU9dC52YWx1ZSxsKGkscyxbZSx0aGlzLmNvdW50ZXIrK10sITApKXJldHVybiBlfX0pKTtzKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpjfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLHIodCksbmV3IGQobyh0aGlzKSx7cHJlZGljYXRlOnR9KX19KX0sNjcwOih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSg5NTY1KSxyPWkoOTMwNiksYT1pKDg1NTEpLG89aSgxNzY3KSxoPWkoODY0NiksbD1pKDk0NjIpLGM9aSg5NTM5KSxkPWkoNjM5NSksdT1sKChmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9dGhpcy5pdGVyYXRvcixzPXRoaXMubWFwcGVyOzspe2lmKGU9dGhpcy5pbm5lcil0cnl7aWYoISh0PWEobihlLm5leHQsZS5pdGVyYXRvcikpKS5kb25lKXJldHVybiB0LnZhbHVlO3RoaXMuaW5uZXI9bnVsbH1jYXRjaCh0KXtjKGksInRocm93Iix0KX1pZih0PWEobih0aGlzLm5leHQsaSkpLHRoaXMuZG9uZT0hIXQuZG9uZSlyZXR1cm47dHJ5e3RoaXMuaW5uZXI9aChzKHQudmFsdWUsdGhpcy5jb3VudGVyKyspLCExKX1jYXRjaCh0KXtjKGksInRocm93Iix0KX19fSkpO3Moe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmR9LHtmbGF0TWFwOmZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLHIodCksbmV3IHUobyh0aGlzKSx7bWFwcGVyOnQsaW5uZXI6bnVsbH0pfX0pfSwxNDU0Oih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSg3MTMpO3Moe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmkoNjM5NSl9LHttYXA6bn0pfSw3NTUwOih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSgyNjUyKSxyPWkoOTMwNiksYT1pKDg1NTEpLG89aSgxNzY3KTtzKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7c29tZTpmdW5jdGlvbih0KXthKHRoaXMpLHIodCk7dmFyIGU9byh0aGlzKSxpPTA7cmV0dXJuIG4oZSwoZnVuY3Rpb24oZSxzKXtpZih0KGUsaSsrKSlyZXR1cm4gcygpfSkse0lTX1JFQ09SRDohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSl9LDgzMzU6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDM3MjQpLHI9aSg0NTc2KSxhPWkoNzc1MSksbz1pKDk1MDQpLGg9aSg5NTY1KSxsPWkoNDkwMSksYz1pKDM0KSxkPWkoNDM3NiksdT1pKDkyOTcpLHA9aSg2NTUpLGc9aSg2MTk4KSxmPWkoNDY1OSksbT1pKDkwMzkpLGI9aSg4MjM1KSx2PWkoNDQ5NSkseT1yLkpTT04sQT1yLk51bWJlcix3PXIuU3ludGF4RXJyb3IseD15JiZ5LnBhcnNlLF89YSgiT2JqZWN0Iiwia2V5cyIpLEU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixDPW8oIiIuY2hhckF0KSxTPW8oIiIuc2xpY2UpLFQ9bygvLi8uZXhlYyksTT1vKFtdLnB1c2gpLGs9L15cZCQvLEk9L15bMS05XSQvLFI9L15bXGQtXSQvLFA9L15bXHRcblxyIF0kLyxEPWZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuLHIsYSxvLGwscD10W2VdLGY9cyYmcD09PXMudmFsdWUsbT1mJiYic3RyaW5nIj09dHlwZW9mIHMuc291cmNlP3tzb3VyY2U6cy5zb3VyY2V9Ont9O2lmKGMocCkpe3ZhciBiPWQocCksdj1mP3Mubm9kZXM6Yj9bXTp7fTtpZihiKWZvcihuPXYubGVuZ3RoLGE9ZyhwKSxvPTA7bzxhO28rKylMKHAsbyxEKHAsIiIrbyxpLG88bj92W29dOnZvaWQgMCkpO2Vsc2UgZm9yKHI9XyhwKSxhPWcociksbz0wO288YTtvKyspbD1yW29dLEwocCxsLEQocCxsLGksdSh2LGwpP3ZbbF06dm9pZCAwKSl9cmV0dXJuIGgoaSx0LGUscCxtKX0sTD1mdW5jdGlvbih0LGUsaSl7aWYobil7dmFyIHM9RSh0LGUpO2lmKHMmJiFzLmNvbmZpZ3VyYWJsZSlyZXR1cm59dm9pZCAwPT09aT9kZWxldGUgdFtlXTpmKHQsZSxpKX0sRj1mdW5jdGlvbih0LGUsaSxzKXt0aGlzLnZhbHVlPXQsdGhpcy5lbmQ9ZSx0aGlzLnNvdXJjZT1pLHRoaXMubm9kZXM9c30sTz1mdW5jdGlvbih0LGUpe3RoaXMuc291cmNlPXQsdGhpcy5pbmRleD1lfTtPLnByb3RvdHlwZT17Zm9yazpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IE8odGhpcy5zb3VyY2UsdCl9LHBhcnNlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zb3VyY2UsZT10aGlzLnNraXAoUCx0aGlzLmluZGV4KSxpPXRoaXMuZm9yayhlKSxzPUModCxlKTtpZihUKFIscykpcmV0dXJuIGkubnVtYmVyKCk7c3dpdGNoKHMpe2Nhc2UieyI6cmV0dXJuIGkub2JqZWN0KCk7Y2FzZSJbIjpyZXR1cm4gaS5hcnJheSgpO2Nhc2UnIic6cmV0dXJuIGkuc3RyaW5nKCk7Y2FzZSJ0IjpyZXR1cm4gaS5rZXl3b3JkKCEwKTtjYXNlImYiOnJldHVybiBpLmtleXdvcmQoITEpO2Nhc2UibiI6cmV0dXJuIGkua2V5d29yZChudWxsKX10aHJvdyBuZXcgdygnVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICInK3MrJyIgYXQ6ICcrZSl9LG5vZGU6ZnVuY3Rpb24odCxlLGkscyxuKXtyZXR1cm4gbmV3IEYoZSxzLHQ/bnVsbDpTKHRoaXMuc291cmNlLGkscyksbil9LG9iamVjdDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnNvdXJjZSxlPXRoaXMuaW5kZXgrMSxpPSExLHM9e30sbj17fTtlPHQubGVuZ3RoOyl7aWYoZT10aGlzLnVudGlsKFsnIicsIn0iXSxlKSwifSI9PT1DKHQsZSkmJiFpKXtlKys7YnJlYWt9dmFyIHI9dGhpcy5mb3JrKGUpLnN0cmluZygpLGE9ci52YWx1ZTtlPXIuZW5kLGU9dGhpcy51bnRpbChbIjoiXSxlKSsxLGU9dGhpcy5za2lwKFAsZSkscj10aGlzLmZvcmsoZSkucGFyc2UoKSxmKG4sYSxyKSxmKHMsYSxyLnZhbHVlKSxlPXRoaXMudW50aWwoWyIsIiwifSJdLHIuZW5kKTt2YXIgbz1DKHQsZSk7aWYoIiwiPT09bylpPSEwLGUrKztlbHNlIGlmKCJ9Ij09PW8pe2UrKzticmVha319cmV0dXJuIHRoaXMubm9kZSgxLHMsdGhpcy5pbmRleCxlLG4pfSxhcnJheTpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnNvdXJjZSxlPXRoaXMuaW5kZXgrMSxpPSExLHM9W10sbj1bXTtlPHQubGVuZ3RoOyl7aWYoZT10aGlzLnNraXAoUCxlKSwiXSI9PT1DKHQsZSkmJiFpKXtlKys7YnJlYWt9dmFyIHI9dGhpcy5mb3JrKGUpLnBhcnNlKCk7aWYoTShuLHIpLE0ocyxyLnZhbHVlKSxlPXRoaXMudW50aWwoWyIsIiwiXSJdLHIuZW5kKSwiLCI9PT1DKHQsZSkpaT0hMCxlKys7ZWxzZSBpZigiXSI9PT1DKHQsZSkpe2UrKzticmVha319cmV0dXJuIHRoaXMubm9kZSgxLHMsdGhpcy5pbmRleCxlLG4pfSxzdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmluZGV4LGU9Yih0aGlzLnNvdXJjZSx0aGlzLmluZGV4KzEpO3JldHVybiB0aGlzLm5vZGUoMCxlLnZhbHVlLHQsZS5lbmQpfSxudW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNvdXJjZSxlPXRoaXMuaW5kZXgsaT1lO2lmKCItIj09PUModCxpKSYmaSsrLCIwIj09PUModCxpKSlpKys7ZWxzZXtpZighVChJLEModCxpKSkpdGhyb3cgbmV3IHcoIkZhaWxlZCB0byBwYXJzZSBudW1iZXIgYXQ6ICIraSk7aT10aGlzLnNraXAoayxpKzEpfWlmKCEoIi4iPT09Qyh0LGkpJiYoaT10aGlzLnNraXAoayxpKzEpKSwiZSIhPT1DKHQsaSkmJiJFIiE9PUModCxpKXx8KGkrKywiKyIhPT1DKHQsaSkmJiItIiE9PUModCxpKXx8aSsrLGkhPT0oaT10aGlzLnNraXAoayxpKSkpKSl0aHJvdyBuZXcgdygiRmFpbGVkIHRvIHBhcnNlIG51bWJlcidzIGV4cG9uZW50IHZhbHVlIGF0OiAiK2kpO3JldHVybiB0aGlzLm5vZGUoMCxBKFModCxlLGkpKSxlLGkpfSxrZXl3b3JkOmZ1bmN0aW9uKHQpe3ZhciBlPSIiK3QsaT10aGlzLmluZGV4LHM9aStlLmxlbmd0aDtpZihTKHRoaXMuc291cmNlLGkscykhPT1lKXRocm93IG5ldyB3KCJGYWlsZWQgdG8gcGFyc2UgdmFsdWUgYXQ6ICIraSk7cmV0dXJuIHRoaXMubm9kZSgwLHQsaSxzKX0sc2tpcDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaT10aGlzLnNvdXJjZTtlPGkubGVuZ3RoJiZUKHQsQyhpLGUpKTtlKyspO3JldHVybiBlfSx1bnRpbDpmdW5jdGlvbih0LGUpe2U9dGhpcy5za2lwKFAsZSk7Zm9yKHZhciBpPUModGhpcy5zb3VyY2UsZSkscz0wO3M8dC5sZW5ndGg7cysrKWlmKHRbc109PT1pKXJldHVybiBlO3Rocm93IG5ldyB3KCdVbmV4cGVjdGVkIGNoYXJhY3RlcjogIicraSsnIiBhdDogJytlKX19O3ZhciBOPW0oKGZ1bmN0aW9uKCl7dmFyIHQsZT0iOTAwNzE5OTI1NDc0MDk5MyI7cmV0dXJuIHgoZSwoZnVuY3Rpb24oZSxpLHMpe3Q9cy5zb3VyY2V9KSksdCE9PWV9KSksQj12JiYhbSgoZnVuY3Rpb24oKXtyZXR1cm4gMS94KCItMCBcdCIpIT0tMS8wfSkpO3Moe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6Tn0se3BhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEImJiFsKGUpP3godCk6ZnVuY3Rpb24odCxlKXt0PXAodCk7dmFyIGk9bmV3IE8odCwwLCIiKSxzPWkucGFyc2UoKSxuPXMudmFsdWUscj1pLnNraXAoUCxzLmVuZCk7aWYocjx0Lmxlbmd0aCl0aHJvdyBuZXcgdygnVW5leHBlY3RlZCBleHRyYSBjaGFyYWN0ZXI6ICInK0ModCxyKSsnIiBhZnRlciB0aGUgcGFyc2VkIGRhdGEgYXQ6ICcrcik7cmV0dXJuIGwoZSk/RCh7IiI6bn0sIiIsZSxzKTpufSh0LGUpfX0pfSw0OTc5Oih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSg0NTc2KSxyPWkoNzc1MSksYT1pKDY5ODApLG89aSg0OTEzKS5mLGg9aSg5Mjk3KSxsPWkoNjc5KSxjPWkoMzE2NyksZD1pKDI2MDMpLHU9aSg1MDAyKSxwPWkoODU3NCksZz1pKDM3MjQpLGY9aSg2Mzk1KSxtPSJET01FeGNlcHRpb24iLGI9cigiRXJyb3IiKSx2PXIobSkseT1mdW5jdGlvbigpe2wodGhpcyxBKTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9ZCh0PDE/dm9pZCAwOmFyZ3VtZW50c1swXSksaT1kKHQ8Mj92b2lkIDA6YXJndW1lbnRzWzFdLCJFcnJvciIpLHM9bmV3IHYoZSxpKSxuPW5ldyBiKGUpO3JldHVybiBuLm5hbWU9bSxvKHMsInN0YWNrIixhKDEscChuLnN0YWNrLDEpKSksYyhzLHRoaXMseSksc30sQT15LnByb3RvdHlwZT12LnByb3RvdHlwZSx3PSJzdGFjayJpbiBuZXcgYihtKSx4PSJzdGFjayJpbiBuZXcgdigxLDIpLF89diYmZyYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLG0pLEU9ISghX3x8Xy53cml0YWJsZSYmXy5jb25maWd1cmFibGUpLEM9dyYmIUUmJiF4O3Moe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6Znx8Q30se0RPTUV4Y2VwdGlvbjpDP3k6dn0pO3ZhciBTPXIobSksVD1TLnByb3RvdHlwZTtpZihULmNvbnN0cnVjdG9yIT09Uylmb3IodmFyIE0gaW4gZnx8byhULCJjb25zdHJ1Y3RvciIsYSgxLFMpKSx1KWlmKGgodSxNKSl7dmFyIGs9dVtNXSxJPWsucztoKFMsSSl8fG8oUyxJLGEoNixrLmMpKX19LDQ2MDM6KHQsZSxpKT0+e3ZhciBzPWkoNjg0MCksbj1pKDk1MDQpLHI9aSg2NTUpLGE9aSgyODEyKSxvPVVSTFNlYXJjaFBhcmFtcyxoPW8ucHJvdG90eXBlLGw9bihoLmFwcGVuZCksYz1uKGguZGVsZXRlKSxkPW4oaC5mb3JFYWNoKSx1PW4oW10ucHVzaCkscD1uZXcgbygiYT0xJmE9MiZiPTMiKTtwLmRlbGV0ZSgiYSIsMSkscC5kZWxldGUoImIiLHZvaWQgMCkscCsiIiE9ImE9MiImJnMoaCwiZGVsZXRlIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aCxpPWU8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKGUmJnZvaWQgMD09PWkpcmV0dXJuIGModGhpcyx0KTt2YXIgcz1bXTtkKHRoaXMsKGZ1bmN0aW9uKHQsZSl7dShzLHtrZXk6ZSx2YWx1ZTp0fSl9KSksYShlLDEpO2Zvcih2YXIgbixvPXIodCksaD1yKGkpLHA9MCxnPTAsZj0hMSxtPXMubGVuZ3RoO3A8bTspbj1zW3ArK10sZnx8bi5rZXk9PT1vPyhmPSEwLGModGhpcyxuLmtleSkpOmcrKztmb3IoO2c8bTspKG49c1tnKytdKS5rZXk9PT1vJiZuLnZhbHVlPT09aHx8bCh0aGlzLG4ua2V5LG4udmFsdWUpfSkse2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDc1NjY6KHQsZSxpKT0+e3ZhciBzPWkoNjg0MCksbj1pKDk1MDQpLHI9aSg2NTUpLGE9aSgyODEyKSxvPVVSTFNlYXJjaFBhcmFtcyxoPW8ucHJvdG90eXBlLGw9bihoLmdldEFsbCksYz1uKGguaGFzKSxkPW5ldyBvKCJhPTEiKTshZC5oYXMoImEiLDIpJiZkLmhhcygiYSIsdm9pZCAwKXx8cyhoLCJoYXMiLChmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGk9ZTwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoZSYmdm9pZCAwPT09aSlyZXR1cm4gYyh0aGlzLHQpO3ZhciBzPWwodGhpcyx0KTthKGUsMSk7Zm9yKHZhciBuPXIoaSksbz0wO288cy5sZW5ndGg7KWlmKHNbbysrXT09PW4pcmV0dXJuITA7cmV0dXJuITF9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sODcyMToodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoOTUwNCkscj1pKDIxMDYpLGE9VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxvPW4oYS5mb3JFYWNoKTtzJiYhKCJzaXplImluIGEpJiZyKGEsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBvKHRoaXMsKGZ1bmN0aW9uKCl7dCsrfSkpLHR9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSl9fSxlPXt9O2Z1bmN0aW9uIGkocyl7dmFyIG49ZVtzXTtpZih2b2lkIDAhPT1uKXJldHVybiBuLmV4cG9ydHM7dmFyIHI9ZVtzXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbc10uY2FsbChyLmV4cG9ydHMscixyLmV4cG9ydHMsaSksci5leHBvcnRzfWkuZD0odCxlKT0+e2Zvcih2YXIgcyBpbiBlKWkubyhlLHMpJiYhaS5vKHQscykmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHMse2VudW1lcmFibGU6ITAsZ2V0OmVbc119KX0saS5vPSh0LGUpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKTt2YXIgcz1nbG9iYWxUaGlzLnBkZmpzTGliPXt9O2kuZChzLHtBYm9ydEV4Y2VwdGlvbjooKT0+RCxBbm5vdGF0aW9uRWRpdG9yTGF5ZXI6KCk9PmNzLEFubm90YXRpb25FZGl0b3JQYXJhbXNUeXBlOigpPT5jLEFubm90YXRpb25FZGl0b3JUeXBlOigpPT5sLEFubm90YXRpb25FZGl0b3JVSU1hbmFnZXI6KCk9PlR0LEFubm90YXRpb25MYXllcjooKT0+SmksQW5ub3RhdGlvbk1vZGU6KCk9PmgsQ01hcENvbXByZXNzaW9uVHlwZTooKT0+ZyxDb2xvclBpY2tlcjooKT0+YXMsRE9NU1ZHRmFjdG9yeTooKT0+dHQsRHJhd0xheWVyOigpPT5kcyxGZWF0dXJlVGVzdDooKT0+TixHbG9iYWxXb3JrZXJPcHRpb25zOigpPT5tZSxJbWFnZUtpbmQ6KCk9PnUsSW52YWxpZFBERkV4Y2VwdGlvbjooKT0+ayxNaXNzaW5nUERGRXhjZXB0aW9uOigpPT5JLE9QUzooKT0+ZixPdXRwdXRTY2FsZTooKT0+dnQsUERGRGF0YVJhbmdlVHJhbnNwb3J0OigpPT5haSxQREZEYXRlU3RyaW5nOigpPT51dCxQREZXb3JrZXI6KCk9PmNpLFBhc3N3b3JkUmVzcG9uc2VzOigpPT5tLFBlcm1pc3Npb25GbGFnOigpPT5kLFBpeGVsc1BlckluY2g6KCk9PlksUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uOigpPT5pdCxUZXh0TGF5ZXI6KCk9PlllLFVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbjooKT0+UixVdGlsOigpPT56LFZlcmJvc2l0eUxldmVsOigpPT5wLFhmYUxheWVyOigpPT53aSxidWlsZDooKT0+YmksY3JlYXRlVmFsaWRBYnNvbHV0ZVVybDooKT0+RSxmZXRjaERhdGE6KCk9PlEsZ2V0RG9jdW1lbnQ6KCk9PnNpLGdldEZpbGVuYW1lRnJvbVVybDooKT0+cnQsZ2V0UGRmRmlsZW5hbWVGcm9tVXJsOigpPT5hdCxnZXRYZmFQYWdlVmlld3BvcnQ6KCk9PnB0LGlzRGF0YVNjaGVtZTooKT0+c3QsaXNQZGZGaWxlOigpPT5udCxub0NvbnRleHRNZW51OigpPT5sdCxub3JtYWxpemVVbmljb2RlOigpPT5VLHNldExheWVyRGltZW5zaW9uczooKT0+YnQsc2hhZG93OigpPT5DLHZlcnNpb246KCk9Pm1pfSksaSg0MTE0KSxpKDY1NzMpLGkoODEwMCksaSg3OTM2KSxpKDc0NjcpLGkoNDczMiksaSg5NTc3KSxpKDQ2MDMpLGkoNzU2NiksaSg4NzIxKTtjb25zdCBuPSEoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzfHxwcm9jZXNzKyIiIT0iW29iamVjdCBwcm9jZXNzXSJ8fHByb2Nlc3MudmVyc2lvbnMubnd8fHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24mJnByb2Nlc3MudHlwZSYmImJyb3dzZXIiIT09cHJvY2Vzcy50eXBlKSxyPVsxLDAsMCwxLDAsMF0sYT1bLjAwMSwwLDAsLjAwMSwwLDBdLG89MS4zNSxoPXtESVNBQkxFOjAsRU5BQkxFOjEsRU5BQkxFX0ZPUk1TOjIsRU5BQkxFX1NUT1JBR0U6M30sbD17RElTQUJMRTotMSxOT05FOjAsRlJFRVRFWFQ6MyxISUdITElHSFQ6OSxTVEFNUDoxMyxJTks6MTV9LGM9e1JFU0laRToxLENSRUFURToyLEZSRUVURVhUX1NJWkU6MTEsRlJFRVRFWFRfQ09MT1I6MTIsRlJFRVRFWFRfT1BBQ0lUWToxMyxJTktfQ09MT1I6MjEsSU5LX1RISUNLTkVTUzoyMixJTktfT1BBQ0lUWToyMyxISUdITElHSFRfQ09MT1I6MzEsSElHSExJR0hUX0RFRkFVTFRfQ09MT1I6MzIsSElHSExJR0hUX1RISUNLTkVTUzozMyxISUdITElHSFRfRlJFRTozNCxISUdITElHSFRfU0hPV19BTEw6MzV9LGQ9e1BSSU5UOjQsTU9ESUZZX0NPTlRFTlRTOjgsQ09QWToxNixNT0RJRllfQU5OT1RBVElPTlM6MzIsRklMTF9JTlRFUkFDVElWRV9GT1JNUzoyNTYsQ09QWV9GT1JfQUNDRVNTSUJJTElUWTo1MTIsQVNTRU1CTEU6MTAyNCxQUklOVF9ISUdIX1FVQUxJVFk6MjA0OH0sdT17R1JBWVNDQUxFXzFCUFA6MSxSR0JfMjRCUFA6MixSR0JBXzMyQlBQOjN9LHA9e0VSUk9SUzowLFdBUk5JTkdTOjEsSU5GT1M6NX0sZz17Tk9ORTowLEJJTkFSWToxfSxmPXtkZXBlbmRlbmN5OjEsc2V0TGluZVdpZHRoOjIsc2V0TGluZUNhcDozLHNldExpbmVKb2luOjQsc2V0TWl0ZXJMaW1pdDo1LHNldERhc2g6NixzZXRSZW5kZXJpbmdJbnRlbnQ6NyxzZXRGbGF0bmVzczo4LHNldEdTdGF0ZTo5LHNhdmU6MTAscmVzdG9yZToxMSx0cmFuc2Zvcm06MTIsbW92ZVRvOjEzLGxpbmVUbzoxNCxjdXJ2ZVRvOjE1LGN1cnZlVG8yOjE2LGN1cnZlVG8zOjE3LGNsb3NlUGF0aDoxOCxyZWN0YW5nbGU6MTksc3Ryb2tlOjIwLGNsb3NlU3Ryb2tlOjIxLGZpbGw6MjIsZW9GaWxsOjIzLGZpbGxTdHJva2U6MjQsZW9GaWxsU3Ryb2tlOjI1LGNsb3NlRmlsbFN0cm9rZToyNixjbG9zZUVPRmlsbFN0cm9rZToyNyxlbmRQYXRoOjI4LGNsaXA6MjksZW9DbGlwOjMwLGJlZ2luVGV4dDozMSxlbmRUZXh0OjMyLHNldENoYXJTcGFjaW5nOjMzLHNldFdvcmRTcGFjaW5nOjM0LHNldEhTY2FsZTozNSxzZXRMZWFkaW5nOjM2LHNldEZvbnQ6Mzcsc2V0VGV4dFJlbmRlcmluZ01vZGU6Mzgsc2V0VGV4dFJpc2U6MzksbW92ZVRleHQ6NDAsc2V0TGVhZGluZ01vdmVUZXh0OjQxLHNldFRleHRNYXRyaXg6NDIsbmV4dExpbmU6NDMsc2hvd1RleHQ6NDQsc2hvd1NwYWNlZFRleHQ6NDUsbmV4dExpbmVTaG93VGV4dDo0NixuZXh0TGluZVNldFNwYWNpbmdTaG93VGV4dDo0NyxzZXRDaGFyV2lkdGg6NDgsc2V0Q2hhcldpZHRoQW5kQm91bmRzOjQ5LHNldFN0cm9rZUNvbG9yU3BhY2U6NTAsc2V0RmlsbENvbG9yU3BhY2U6NTEsc2V0U3Ryb2tlQ29sb3I6NTIsc2V0U3Ryb2tlQ29sb3JOOjUzLHNldEZpbGxDb2xvcjo1NCxzZXRGaWxsQ29sb3JOOjU1LHNldFN0cm9rZUdyYXk6NTYsc2V0RmlsbEdyYXk6NTcsc2V0U3Ryb2tlUkdCQ29sb3I6NTgsc2V0RmlsbFJHQkNvbG9yOjU5LHNldFN0cm9rZUNNWUtDb2xvcjo2MCxzZXRGaWxsQ01ZS0NvbG9yOjYxLHNoYWRpbmdGaWxsOjYyLGJlZ2luSW5saW5lSW1hZ2U6NjMsYmVnaW5JbWFnZURhdGE6NjQsZW5kSW5saW5lSW1hZ2U6NjUscGFpbnRYT2JqZWN0OjY2LG1hcmtQb2ludDo2NyxtYXJrUG9pbnRQcm9wczo2OCxiZWdpbk1hcmtlZENvbnRlbnQ6NjksYmVnaW5NYXJrZWRDb250ZW50UHJvcHM6NzAsZW5kTWFya2VkQ29udGVudDo3MSxiZWdpbkNvbXBhdDo3MixlbmRDb21wYXQ6NzMscGFpbnRGb3JtWE9iamVjdEJlZ2luOjc0LHBhaW50Rm9ybVhPYmplY3RFbmQ6NzUsYmVnaW5Hcm91cDo3NixlbmRHcm91cDo3NyxiZWdpbkFubm90YXRpb246ODAsZW5kQW5ub3RhdGlvbjo4MSxwYWludEltYWdlTWFza1hPYmplY3Q6ODMscGFpbnRJbWFnZU1hc2tYT2JqZWN0R3JvdXA6ODQscGFpbnRJbWFnZVhPYmplY3Q6ODUscGFpbnRJbmxpbmVJbWFnZVhPYmplY3Q6ODYscGFpbnRJbmxpbmVJbWFnZVhPYmplY3RHcm91cDo4NyxwYWludEltYWdlWE9iamVjdFJlcGVhdDo4OCxwYWludEltYWdlTWFza1hPYmplY3RSZXBlYXQ6ODkscGFpbnRTb2xpZENvbG9ySW1hZ2VNYXNrOjkwLGNvbnN0cnVjdFBhdGg6OTEsc2V0U3Ryb2tlVHJhbnNwYXJlbnQ6OTIsc2V0RmlsbFRyYW5zcGFyZW50OjkzfSxtPXtORUVEX1BBU1NXT1JEOjEsSU5DT1JSRUNUX1BBU1NXT1JEOjJ9O2xldCBiPXAuV0FSTklOR1M7ZnVuY3Rpb24gdih0KXtOdW1iZXIuaXNJbnRlZ2VyKHQpJiYoYj10KX1mdW5jdGlvbiB5KCl7cmV0dXJuIGJ9ZnVuY3Rpb24gQSh0KXtiPj1wLklORk9TJiZjb25zb2xlLmxvZyhgSW5mbzogJHt0fWApfWZ1bmN0aW9uIHcodCl7Yj49cC5XQVJOSU5HUyYmY29uc29sZS5sb2coYFdhcm5pbmc6ICR7dH1gKX1mdW5jdGlvbiB4KHQpe3Rocm93IG5ldyBFcnJvcih0KX1mdW5jdGlvbiBfKHQsZSl7dHx8eChlKX1mdW5jdGlvbiBFKHQsZT1udWxsLGk9bnVsbCl7aWYoIXQpcmV0dXJuIG51bGw7dHJ5e2lmKGkmJiJzdHJpbmciPT10eXBlb2YgdCl7aWYoaS5hZGREZWZhdWx0UHJvdG9jb2wmJnQuc3RhcnRzV2l0aCgid3d3LiIpKXtjb25zdCBlPXQubWF0Y2goL1wuL2cpO2U/Lmxlbmd0aD49MiYmKHQ9YGh0dHA6Ly8ke3R9YCl9aWYoaS50cnlDb252ZXJ0RW5jb2RpbmcpdHJ5e3Q9ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSh0KSl9Y2F0Y2h7fX1jb25zdCBzPWU/bmV3IFVSTCh0LGUpOm5ldyBVUkwodCk7aWYoZnVuY3Rpb24odCl7c3dpdGNoKHQ/LnByb3RvY29sKXtjYXNlImh0dHA6IjpjYXNlImh0dHBzOiI6Y2FzZSJmdHA6IjpjYXNlIm1haWx0bzoiOmNhc2UidGVsOiI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19KHMpKXJldHVybiBzfWNhdGNoe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBDKHQsZSxpLHM9ITEpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTppLGVudW1lcmFibGU6IXMsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiExfSksaX1jb25zdCBTPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMubWVzc2FnZT10LHRoaXMubmFtZT1lfXJldHVybiB0LnByb3RvdHlwZT1uZXcgRXJyb3IsdC5jb25zdHJ1Y3Rvcj10LHR9KCk7Y2xhc3MgVCBleHRlbmRzIFN7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LCJQYXNzd29yZEV4Y2VwdGlvbiIpLHRoaXMuY29kZT1lfX1jbGFzcyBNIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsIlVua25vd25FcnJvckV4Y2VwdGlvbiIpLHRoaXMuZGV0YWlscz1lfX1jbGFzcyBrIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LCJJbnZhbGlkUERGRXhjZXB0aW9uIil9fWNsYXNzIEkgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQsIk1pc3NpbmdQREZFeGNlcHRpb24iKX19Y2xhc3MgUiBleHRlbmRzIFN7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LCJVbmV4cGVjdGVkUmVzcG9uc2VFeGNlcHRpb24iKSx0aGlzLnN0YXR1cz1lfX1jbGFzcyBQIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LCJGb3JtYXRFcnJvciIpfX1jbGFzcyBEIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LCJBYm9ydEV4Y2VwdGlvbiIpfX1mdW5jdGlvbiBMKHQpeyJvYmplY3QiPT10eXBlb2YgdCYmdm9pZCAwIT09dD8ubGVuZ3RofHx4KCJJbnZhbGlkIGFyZ3VtZW50IGZvciBieXRlc1RvU3RyaW5nIik7Y29uc3QgZT10Lmxlbmd0aCxpPTgxOTI7aWYoZTxpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdCk7Y29uc3Qgcz1bXTtmb3IobGV0IG49MDtuPGU7bis9aSl7Y29uc3Qgcj1NYXRoLm1pbihuK2ksZSksYT10LnN1YmFycmF5KG4scik7cy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKSl9cmV0dXJuIHMuam9pbigiIil9ZnVuY3Rpb24gRih0KXsic3RyaW5nIiE9dHlwZW9mIHQmJngoIkludmFsaWQgYXJndW1lbnQgZm9yIHN0cmluZ1RvQnl0ZXMiKTtjb25zdCBlPXQubGVuZ3RoLGk9bmV3IFVpbnQ4QXJyYXkoZSk7Zm9yKGxldCBzPTA7czxlOysrcylpW3NdPTI1NSZ0LmNoYXJDb2RlQXQocyk7cmV0dXJuIGl9ZnVuY3Rpb24gTyh0KXtjb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W2ksc11vZiB0KWVbaV09cztyZXR1cm4gZX1jbGFzcyBOe3N0YXRpYyBnZXQgaXNMaXR0bGVFbmRpYW4oKXtyZXR1cm4gQyh0aGlzLCJpc0xpdHRsZUVuZGlhbiIsZnVuY3Rpb24oKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KDQpO3JldHVybiB0WzBdPTEsMT09PW5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlciwwLDEpWzBdfSgpKX1zdGF0aWMgZ2V0IGlzRXZhbFN1cHBvcnRlZCgpe3JldHVybiBDKHRoaXMsImlzRXZhbFN1cHBvcnRlZCIsZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbigiIiksITB9Y2F0Y2h7cmV0dXJuITF9fSgpKX1zdGF0aWMgZ2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKCl7cmV0dXJuIEModGhpcywiaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzKX1zdGF0aWMgZ2V0IHBsYXRmb3JtKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiJzdHJpbmciPT10eXBlb2YgbmF2aWdhdG9yPy5wbGF0Zm9ybT9DKHRoaXMsInBsYXRmb3JtIix7aXNNYWM6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJNYWMiKSxpc1dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJXaW4iKSxpc0ZpcmVmb3g6InN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSk6Qyh0aGlzLCJwbGF0Zm9ybSIse2lzTWFjOiExLGlzV2luZG93czohMSxpc0ZpcmVmb3g6ITF9KX1zdGF0aWMgZ2V0IGlzQ1NTUm91bmRTdXBwb3J0ZWQoKXtyZXR1cm4gQyh0aGlzLCJpc0NTU1JvdW5kU3VwcG9ydGVkIixnbG9iYWxUaGlzLkNTUz8uc3VwcG9ydHM/Ligid2lkdGg6IHJvdW5kKDEuNXB4LCAxcHgpIikpfX1jb25zdCBCPUFycmF5LmZyb20oQXJyYXkoMjU2KS5rZXlzKCksKHQ9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkpO2NsYXNzIHp7c3RhdGljIG1ha2VIZXhDb2xvcih0LGUsaSl7cmV0dXJuYCMke0JbdF19JHtCW2VdfSR7QltpXX1gfXN0YXRpYyBzY2FsZU1pbk1heCh0LGUpe2xldCBpO3RbMF0/KHRbMF08MCYmKGk9ZVswXSxlWzBdPWVbMl0sZVsyXT1pKSxlWzBdKj10WzBdLGVbMl0qPXRbMF0sdFszXTwwJiYoaT1lWzFdLGVbMV09ZVszXSxlWzNdPWkpLGVbMV0qPXRbM10sZVszXSo9dFszXSk6KGk9ZVswXSxlWzBdPWVbMV0sZVsxXT1pLGk9ZVsyXSxlWzJdPWVbM10sZVszXT1pLHRbMV08MCYmKGk9ZVsxXSxlWzFdPWVbM10sZVszXT1pKSxlWzFdKj10WzFdLGVbM10qPXRbMV0sdFsyXTwwJiYoaT1lWzBdLGVbMF09ZVsyXSxlWzJdPWkpLGVbMF0qPXRbMl0sZVsyXSo9dFsyXSksZVswXSs9dFs0XSxlWzFdKz10WzVdLGVbMl0rPXRbNF0sZVszXSs9dFs1XX1zdGF0aWMgdHJhbnNmb3JtKHQsZSl7cmV0dXJuW3RbMF0qZVswXSt0WzJdKmVbMV0sdFsxXSplWzBdK3RbM10qZVsxXSx0WzBdKmVbMl0rdFsyXSplWzNdLHRbMV0qZVsyXSt0WzNdKmVbM10sdFswXSplWzRdK3RbMl0qZVs1XSt0WzRdLHRbMV0qZVs0XSt0WzNdKmVbNV0rdFs1XV19c3RhdGljIGFwcGx5VHJhbnNmb3JtKHQsZSl7cmV0dXJuW3RbMF0qZVswXSt0WzFdKmVbMl0rZVs0XSx0WzBdKmVbMV0rdFsxXSplWzNdK2VbNV1dfXN0YXRpYyBhcHBseUludmVyc2VUcmFuc2Zvcm0odCxlKXtjb25zdCBpPWVbMF0qZVszXS1lWzFdKmVbMl07cmV0dXJuWyh0WzBdKmVbM10tdFsxXSplWzJdK2VbMl0qZVs1XS1lWzRdKmVbM10pL2ksKC10WzBdKmVbMV0rdFsxXSplWzBdK2VbNF0qZVsxXS1lWzVdKmVbMF0pL2ldfXN0YXRpYyBnZXRBeGlhbEFsaWduZWRCb3VuZGluZ0JveCh0LGUpe2NvbnN0IGk9dGhpcy5hcHBseVRyYW5zZm9ybSh0LGUpLHM9dGhpcy5hcHBseVRyYW5zZm9ybSh0LnNsaWNlKDIsNCksZSksbj10aGlzLmFwcGx5VHJhbnNmb3JtKFt0WzBdLHRbM11dLGUpLHI9dGhpcy5hcHBseVRyYW5zZm9ybShbdFsyXSx0WzFdXSxlKTtyZXR1cm5bTWF0aC5taW4oaVswXSxzWzBdLG5bMF0sclswXSksTWF0aC5taW4oaVsxXSxzWzFdLG5bMV0sclsxXSksTWF0aC5tYXgoaVswXSxzWzBdLG5bMF0sclswXSksTWF0aC5tYXgoaVsxXSxzWzFdLG5bMV0sclsxXSldfXN0YXRpYyBpbnZlcnNlVHJhbnNmb3JtKHQpe2NvbnN0IGU9dFswXSp0WzNdLXRbMV0qdFsyXTtyZXR1cm5bdFszXS9lLC10WzFdL2UsLXRbMl0vZSx0WzBdL2UsKHRbMl0qdFs1XS10WzRdKnRbM10pL2UsKHRbNF0qdFsxXS10WzVdKnRbMF0pL2VdfXN0YXRpYyBzaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZSh0KXtjb25zdCBlPVt0WzBdLHRbMl0sdFsxXSx0WzNdXSxpPXRbMF0qZVswXSt0WzFdKmVbMl0scz10WzBdKmVbMV0rdFsxXSplWzNdLG49dFsyXSplWzBdK3RbM10qZVsyXSxyPXRbMl0qZVsxXSt0WzNdKmVbM10sYT0oaStyKS8yLG89TWF0aC5zcXJ0KChpK3IpKioyLTQqKGkqci1uKnMpKS8yLGg9YStvfHwxLGw9YS1vfHwxO3JldHVybltNYXRoLnNxcnQoaCksTWF0aC5zcXJ0KGwpXX1zdGF0aWMgbm9ybWFsaXplUmVjdCh0KXtjb25zdCBlPXQuc2xpY2UoMCk7cmV0dXJuIHRbMF0+dFsyXSYmKGVbMF09dFsyXSxlWzJdPXRbMF0pLHRbMV0+dFszXSYmKGVbMV09dFszXSxlWzNdPXRbMV0pLGV9c3RhdGljIGludGVyc2VjdCh0LGUpe2NvbnN0IGk9TWF0aC5tYXgoTWF0aC5taW4odFswXSx0WzJdKSxNYXRoLm1pbihlWzBdLGVbMl0pKSxzPU1hdGgubWluKE1hdGgubWF4KHRbMF0sdFsyXSksTWF0aC5tYXgoZVswXSxlWzJdKSk7aWYoaT5zKXJldHVybiBudWxsO2NvbnN0IG49TWF0aC5tYXgoTWF0aC5taW4odFsxXSx0WzNdKSxNYXRoLm1pbihlWzFdLGVbM10pKSxyPU1hdGgubWluKE1hdGgubWF4KHRbMV0sdFszXSksTWF0aC5tYXgoZVsxXSxlWzNdKSk7cmV0dXJuIG4+cj9udWxsOltpLG4scyxyXX1zdGF0aWMjdCh0LGUsaSxzLG4scixhLG8saCxsKXtpZihoPD0wfHxoPj0xKXJldHVybjtjb25zdCBjPTEtaCxkPWgqaCx1PWQqaCxwPWMqKGMqKGMqdCszKmgqZSkrMypkKmkpK3UqcyxnPWMqKGMqKGMqbiszKmgqcikrMypkKmEpK3UqbztsWzBdPU1hdGgubWluKGxbMF0scCksbFsxXT1NYXRoLm1pbihsWzFdLGcpLGxbMl09TWF0aC5tYXgobFsyXSxwKSxsWzNdPU1hdGgubWF4KGxbM10sZyl9c3RhdGljI2UodCxlLGkscyxuLHIsYSxvLGgsbCxjLGQpe2lmKE1hdGguYWJzKGgpPDFlLTEyKXJldHVybiB2b2lkKE1hdGguYWJzKGwpPj0xZS0xMiYmdGhpcy4jdCh0LGUsaSxzLG4scixhLG8sLWMvbCxkKSk7Y29uc3QgdT1sKioyLTQqYypoO2lmKHU8MClyZXR1cm47Y29uc3QgcD1NYXRoLnNxcnQodSksZz0yKmg7dGhpcy4jdCh0LGUsaSxzLG4scixhLG8sKC1sK3ApL2csZCksdGhpcy4jdCh0LGUsaSxzLG4scixhLG8sKC1sLXApL2csZCl9c3RhdGljIGJlemllckJvdW5kaW5nQm94KHQsZSxpLHMsbixyLGEsbyxoKXtyZXR1cm4gaD8oaFswXT1NYXRoLm1pbihoWzBdLHQsYSksaFsxXT1NYXRoLm1pbihoWzFdLGUsbyksaFsyXT1NYXRoLm1heChoWzJdLHQsYSksaFszXT1NYXRoLm1heChoWzNdLGUsbykpOmg9W01hdGgubWluKHQsYSksTWF0aC5taW4oZSxvKSxNYXRoLm1heCh0LGEpLE1hdGgubWF4KGUsbyldLHRoaXMuI2UodCxpLG4sYSxlLHMscixvLDMqKDMqKGktbiktdCthKSw2Kih0LTIqaStuKSwzKihpLXQpLGgpLHRoaXMuI2UodCxpLG4sYSxlLHMscixvLDMqKDMqKHMtciktZStvKSw2KihlLTIqcytyKSwzKihzLWUpLGgpLGh9fWxldCBIPW51bGwsaj1udWxsO2Z1bmN0aW9uIFUodCl7cmV0dXJuIEh8fChIPS8oW1x1MDBhMFx1MDBiNVx1MDM3ZVx1MGViM1x1MjAwMC1cdTIwMGFcdTIwMmZcdTIxMjZcdWZiMDAtXHVmYjA0XHVmYjA2XHVmYjIwLVx1ZmIzNlx1ZmIzOC1cdWZiM2NcdWZiM2VcdWZiNDAtXHVmYjQxXHVmYjQzLVx1ZmI0NFx1ZmI0Ni1cdWZiYTFcdWZiYTQtXHVmYmE5XHVmYmFlLVx1ZmJiMVx1ZmJkMy1cdWZiZGNcdWZiZGUtXHVmYmU3XHVmYmVhLVx1ZmJmOFx1ZmJmYy1cdWZiZmRcdWZjMDAtXHVmYzVkXHVmYzY0LVx1ZmNmMVx1ZmNmNS1cdWZkM2RcdWZkODhcdWZkZjRcdWZkZmEtXHVmZGZiXHVmZTcxXHVmZTc3XHVmZTc5XHVmZTdiXHVmZTdkXSspfChcdWZiMDUrKS9ndSxqPW5ldyBNYXAoW1si76yFIiwixb90Il1dKSksdC5yZXBsYWNlQWxsKEgsKCh0LGUsaSk9PmU/ZS5ub3JtYWxpemUoIk5GS0MiKTpqLmdldChpKSkpfWNvbnN0ICQ9InBkZmpzX2ludGVybmFsX2lkXyI7aSg0NjI4KSxpKDc2NDIpLGkoODAwNCksaSgzODUzKSxpKDU4NzYpLGkoMjQ3NSksaSg1MDI0KSxpKDE2OTgpLGkoMTQ1NCksaSg0OTc5KSxpKDg5OTIpLGkoNDc0MyksaSgzMjE1KSxpKDc1NTApLGkoODMzNSksaSg0NTIwKTtjbGFzcyBXe2FkZEZpbHRlcih0KXtyZXR1cm4ibm9uZSJ9YWRkSENNRmlsdGVyKHQsZSl7cmV0dXJuIm5vbmUifWFkZEFscGhhRmlsdGVyKHQpe3JldHVybiJub25lIn1hZGRMdW1pbm9zaXR5RmlsdGVyKHQpe3JldHVybiJub25lIn1hZGRIaWdobGlnaHRIQ01GaWx0ZXIodCxlLGkscyxuKXtyZXR1cm4ibm9uZSJ9ZGVzdHJveSh0PSExKXt9fWNsYXNzIEd7I2k9ITE7Y29uc3RydWN0b3Ioe2VuYWJsZUhXQTp0PSExfSl7dGhpcy4jaT10fWNyZWF0ZSh0LGUpe2lmKHQ8PTB8fGU8PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNhbnZhcyBzaXplIik7Y29uc3QgaT10aGlzLl9jcmVhdGVDYW52YXModCxlKTtyZXR1cm57Y2FudmFzOmksY29udGV4dDppLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiF0aGlzLiNpfSl9fXJlc2V0KHQsZSxpKXtpZighdC5jYW52YXMpdGhyb3cgbmV3IEVycm9yKCJDYW52YXMgaXMgbm90IHNwZWNpZmllZCIpO2lmKGU8PTB8fGk8PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNhbnZhcyBzaXplIik7dC5jYW52YXMud2lkdGg9ZSx0LmNhbnZhcy5oZWlnaHQ9aX1kZXN0cm95KHQpe2lmKCF0LmNhbnZhcyl0aHJvdyBuZXcgRXJyb3IoIkNhbnZhcyBpcyBub3Qgc3BlY2lmaWVkIik7dC5jYW52YXMud2lkdGg9MCx0LmNhbnZhcy5oZWlnaHQ9MCx0LmNhbnZhcz1udWxsLHQuY29udGV4dD1udWxsfV9jcmVhdGVDYW52YXModCxlKXt4KCJBYnN0cmFjdCBtZXRob2QgYF9jcmVhdGVDYW52YXNgIGNhbGxlZC4iKX19Y2xhc3MgVntjb25zdHJ1Y3Rvcih7YmFzZVVybDp0PW51bGwsaXNDb21wcmVzc2VkOmU9ITB9KXt0aGlzLmJhc2VVcmw9dCx0aGlzLmlzQ29tcHJlc3NlZD1lfWFzeW5jIGZldGNoKHtuYW1lOnR9KXtpZighdGhpcy5iYXNlVXJsKXRocm93IG5ldyBFcnJvcigiRW5zdXJlIHRoYXQgdGhlIGBjTWFwVXJsYCBhbmQgYGNNYXBQYWNrZWRgIEFQSSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZC4iKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkNNYXAgbmFtZSBtdXN0IGJlIHNwZWNpZmllZC4iKTtjb25zdCBlPXRoaXMuYmFzZVVybCt0Kyh0aGlzLmlzQ29tcHJlc3NlZD8iLmJjbWFwIjoiIiksaT10aGlzLmlzQ29tcHJlc3NlZD9nLkJJTkFSWTpnLk5PTkU7cmV0dXJuIHRoaXMuX2ZldGNoRGF0YShlLGkpLmNhdGNoKCh0PT57dGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gbG9hZCAke3RoaXMuaXNDb21wcmVzc2VkPyJiaW5hcnkgIjoiIn1DTWFwIGF0OiAke2V9YCl9KSl9X2ZldGNoRGF0YSh0LGUpe3goIkFic3RyYWN0IG1ldGhvZCBgX2ZldGNoRGF0YWAgY2FsbGVkLiIpfX1jbGFzcyBxe2NvbnN0cnVjdG9yKHtiYXNlVXJsOnQ9bnVsbH0pe3RoaXMuYmFzZVVybD10fWFzeW5jIGZldGNoKHtmaWxlbmFtZTp0fSl7aWYoIXRoaXMuYmFzZVVybCl0aHJvdyBuZXcgRXJyb3IoIkVuc3VyZSB0aGF0IHRoZSBgc3RhbmRhcmRGb250RGF0YVVybGAgQVBJIHBhcmFtZXRlciBpcyBwcm92aWRlZC4iKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkZvbnQgZmlsZW5hbWUgbXVzdCBiZSBzcGVjaWZpZWQuIik7Y29uc3QgZT1gJHt0aGlzLmJhc2VVcmx9JHt0fWA7cmV0dXJuIHRoaXMuX2ZldGNoRGF0YShlKS5jYXRjaCgodD0+e3Rocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxvYWQgZm9udCBkYXRhIGF0OiAke2V9YCl9KSl9X2ZldGNoRGF0YSh0KXt4KCJBYnN0cmFjdCBtZXRob2QgYF9mZXRjaERhdGFgIGNhbGxlZC4iKX19Y2xhc3MgWHtjcmVhdGUodCxlLGk9ITEpe2lmKHQ8PTB8fGU8PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFNWRyBkaW1lbnNpb25zIik7Y29uc3Qgcz10aGlzLl9jcmVhdGVTVkcoInN2ZzpzdmciKTtyZXR1cm4gcy5zZXRBdHRyaWJ1dGUoInZlcnNpb24iLCIxLjEiKSxpfHwocy5zZXRBdHRyaWJ1dGUoIndpZHRoIixgJHt0fXB4YCkscy5zZXRBdHRyaWJ1dGUoImhlaWdodCIsYCR7ZX1weGApKSxzLnNldEF0dHJpYnV0ZSgicHJlc2VydmVBc3BlY3RSYXRpbyIsIm5vbmUiKSxzLnNldEF0dHJpYnV0ZSgidmlld0JveCIsYDAgMCAke3R9ICR7ZX1gKSxzfWNyZWF0ZUVsZW1lbnQodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBTVkcgZWxlbWVudCB0eXBlIik7cmV0dXJuIHRoaXMuX2NyZWF0ZVNWRyh0KX1fY3JlYXRlU1ZHKHQpe3goIkFic3RyYWN0IG1ldGhvZCBgX2NyZWF0ZVNWR2AgY2FsbGVkLiIpfX1jb25zdCBLPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Y2xhc3MgWXtzdGF0aWMgQ1NTPTk2O3N0YXRpYyBQREY9NzI7c3RhdGljIFBERl9UT19DU1NfVU5JVFM9dGhpcy5DU1MvdGhpcy5QREZ9YXN5bmMgZnVuY3Rpb24gUSh0LGU9InRleHQiKXtpZihodCh0LGRvY3VtZW50LmJhc2VVUkkpKXtjb25zdCBpPWF3YWl0IGZldGNoKHQpO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihpLnN0YXR1c1RleHQpO3N3aXRjaChlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gaS5hcnJheUJ1ZmZlcigpO2Nhc2UiYmxvYiI6cmV0dXJuIGkuYmxvYigpO2Nhc2UianNvbiI6cmV0dXJuIGkuanNvbigpfXJldHVybiBpLnRleHQoKX1yZXR1cm4gbmV3IFByb21pc2UoKChpLHMpPT57Y29uc3Qgbj1uZXcgWE1MSHR0cFJlcXVlc3Q7bi5vcGVuKCJHRVQiLHQsITApLG4ucmVzcG9uc2VUeXBlPWUsbi5vbnJlYWR5c3RhdGVjaGFuZ2U9KCk9PntpZihuLnJlYWR5U3RhdGU9PT1YTUxIdHRwUmVxdWVzdC5ET05FKWlmKDIwMCE9PW4uc3RhdHVzJiYwIT09bi5zdGF0dXMpcyhuZXcgRXJyb3Iobi5zdGF0dXNUZXh0KSk7ZWxzZXtzd2l0Y2goZSl7Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJibG9iIjpjYXNlImpzb24iOnJldHVybiB2b2lkIGkobi5yZXNwb25zZSl9aShuLnJlc3BvbnNlVGV4dCl9fSxuLnNlbmQobnVsbCl9KSl9Y2xhc3MgSiBleHRlbmRzIFZ7X2ZldGNoRGF0YSh0LGUpe3JldHVybiBRKHQsdGhpcy5pc0NvbXByZXNzZWQ/ImFycmF5YnVmZmVyIjoidGV4dCIpLnRoZW4oKHQ9Pih7Y01hcERhdGE6dCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KHQpOkYodCksY29tcHJlc3Npb25UeXBlOmV9KSkpfX1jbGFzcyBaIGV4dGVuZHMgcXtfZmV0Y2hEYXRhKHQpe3JldHVybiBRKHQsImFycmF5YnVmZmVyIikudGhlbigodD0+bmV3IFVpbnQ4QXJyYXkodCkpKX19Y2xhc3MgdHQgZXh0ZW5kcyBYe19jcmVhdGVTVkcodCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhLLHQpfX1jbGFzcyBldHtjb25zdHJ1Y3Rvcih7dmlld0JveDp0LHNjYWxlOmUscm90YXRpb246aSxvZmZzZXRYOnM9MCxvZmZzZXRZOm49MCxkb250RmxpcDpyPSExfSl7dGhpcy52aWV3Qm94PXQsdGhpcy5zY2FsZT1lLHRoaXMucm90YXRpb249aSx0aGlzLm9mZnNldFg9cyx0aGlzLm9mZnNldFk9bjtjb25zdCBhPSh0WzJdK3RbMF0pLzIsbz0odFszXSt0WzFdKS8yO2xldCBoLGwsYyxkLHUscCxnLGY7c3dpdGNoKChpJT0zNjApPDAmJihpKz0zNjApLGkpe2Nhc2UgMTgwOmg9LTEsbD0wLGM9MCxkPTE7YnJlYWs7Y2FzZSA5MDpoPTAsbD0xLGM9MSxkPTA7YnJlYWs7Y2FzZSAyNzA6aD0wLGw9LTEsYz0tMSxkPTA7YnJlYWs7Y2FzZSAwOmg9MSxsPTAsYz0wLGQ9LTE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlBhZ2VWaWV3cG9ydDogSW52YWxpZCByb3RhdGlvbiwgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDkwIGRlZ3JlZXMuIil9ciYmKGM9LWMsZD0tZCksMD09PWg/KHU9TWF0aC5hYnMoby10WzFdKSplK3MscD1NYXRoLmFicyhhLXRbMF0pKmUrbixnPSh0WzNdLXRbMV0pKmUsZj0odFsyXS10WzBdKSplKToodT1NYXRoLmFicyhhLXRbMF0pKmUrcyxwPU1hdGguYWJzKG8tdFsxXSkqZStuLGc9KHRbMl0tdFswXSkqZSxmPSh0WzNdLXRbMV0pKmUpLHRoaXMudHJhbnNmb3JtPVtoKmUsbCplLGMqZSxkKmUsdS1oKmUqYS1jKmUqbyxwLWwqZSphLWQqZSpvXSx0aGlzLndpZHRoPWcsdGhpcy5oZWlnaHQ9Zn1nZXQgcmF3RGltcygpe2NvbnN0e3ZpZXdCb3g6dH09dGhpcztyZXR1cm4gQyh0aGlzLCJyYXdEaW1zIix7cGFnZVdpZHRoOnRbMl0tdFswXSxwYWdlSGVpZ2h0OnRbM10tdFsxXSxwYWdlWDp0WzBdLHBhZ2VZOnRbMV19KX1jbG9uZSh7c2NhbGU6dD10aGlzLnNjYWxlLHJvdGF0aW9uOmU9dGhpcy5yb3RhdGlvbixvZmZzZXRYOmk9dGhpcy5vZmZzZXRYLG9mZnNldFk6cz10aGlzLm9mZnNldFksZG9udEZsaXA6bj0hMX09e30pe3JldHVybiBuZXcgZXQoe3ZpZXdCb3g6dGhpcy52aWV3Qm94LnNsaWNlKCksc2NhbGU6dCxyb3RhdGlvbjplLG9mZnNldFg6aSxvZmZzZXRZOnMsZG9udEZsaXA6bn0pfWNvbnZlcnRUb1ZpZXdwb3J0UG9pbnQodCxlKXtyZXR1cm4gei5hcHBseVRyYW5zZm9ybShbdCxlXSx0aGlzLnRyYW5zZm9ybSl9Y29udmVydFRvVmlld3BvcnRSZWN0YW5nbGUodCl7Y29uc3QgZT16LmFwcGx5VHJhbnNmb3JtKFt0WzBdLHRbMV1dLHRoaXMudHJhbnNmb3JtKSxpPXouYXBwbHlUcmFuc2Zvcm0oW3RbMl0sdFszXV0sdGhpcy50cmFuc2Zvcm0pO3JldHVybltlWzBdLGVbMV0saVswXSxpWzFdXX1jb252ZXJ0VG9QZGZQb2ludCh0LGUpe3JldHVybiB6LmFwcGx5SW52ZXJzZVRyYW5zZm9ybShbdCxlXSx0aGlzLnRyYW5zZm9ybSl9fWNsYXNzIGl0IGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0LGU9MCl7c3VwZXIodCwiUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiksdGhpcy5leHRyYURlbGF5PWV9fWZ1bmN0aW9uIHN0KHQpe2NvbnN0IGU9dC5sZW5ndGg7bGV0IGk9MDtmb3IoO2k8ZSYmIiI9PT10W2ldLnRyaW0oKTspaSsrO3JldHVybiJkYXRhOiI9PT10LnN1YnN0cmluZyhpLGkrNSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBudCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi9cLnBkZiQvaS50ZXN0KHQpfWZ1bmN0aW9uIHJ0KHQpe3JldHVyblt0XT10LnNwbGl0KC9bIz9dLywxKSx0LnN1YnN0cmluZyh0Lmxhc3RJbmRleE9mKCIvIikrMSl9ZnVuY3Rpb24gYXQodCxlPSJkb2N1bWVudC5wZGYiKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIGU7aWYoc3QodCkpcmV0dXJuIHcoJ2dldFBkZkZpbGVuYW1lRnJvbVVybDogaWdub3JlICJkYXRhOiItVVJMIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLicpLGU7Y29uc3QgaT0vW14vPyM9XStcLnBkZlxiKD8hLipcLnBkZlxiKS9pLHM9L14oPzooPzpbXjpdKzopP1wvXC9bXi9dKyk/KFtePyNdKikoXD9bXiNdKik/KCMuKik/JC8uZXhlYyh0KTtsZXQgbj1pLmV4ZWMoc1sxXSl8fGkuZXhlYyhzWzJdKXx8aS5leGVjKHNbM10pO2lmKG4mJihuPW5bMF0sbi5pbmNsdWRlcygiJSIpKSl0cnl7bj1pLmV4ZWMoZGVjb2RlVVJJQ29tcG9uZW50KG4pKVswXX1jYXRjaHt9cmV0dXJuIG58fGV9Y2xhc3Mgb3R7c3RhcnRlZD1PYmplY3QuY3JlYXRlKG51bGwpO3RpbWVzPVtdO3RpbWUodCl7dCBpbiB0aGlzLnN0YXJ0ZWQmJncoYFRpbWVyIGlzIGFscmVhZHkgcnVubmluZyBmb3IgJHt0fWApLHRoaXMuc3RhcnRlZFt0XT1EYXRlLm5vdygpfXRpbWVFbmQodCl7dCBpbiB0aGlzLnN0YXJ0ZWR8fHcoYFRpbWVyIGhhcyBub3QgYmVlbiBzdGFydGVkIGZvciAke3R9YCksdGhpcy50aW1lcy5wdXNoKHtuYW1lOnQsc3RhcnQ6dGhpcy5zdGFydGVkW3RdLGVuZDpEYXRlLm5vdygpfSksZGVsZXRlIHRoaXMuc3RhcnRlZFt0XX10b1N0cmluZygpe2NvbnN0IHQ9W107bGV0IGU9MDtmb3IoY29uc3R7bmFtZTp0fW9mIHRoaXMudGltZXMpZT1NYXRoLm1heCh0Lmxlbmd0aCxlKTtmb3IoY29uc3R7bmFtZTppLHN0YXJ0OnMsZW5kOm59b2YgdGhpcy50aW1lcyl0LnB1c2goYCR7aS5wYWRFbmQoZSl9ICR7bi1zfW1zXG5gKTtyZXR1cm4gdC5qb2luKCIiKX19ZnVuY3Rpb24gaHQodCxlKXt0cnl7Y29uc3R7cHJvdG9jb2w6aX09ZT9uZXcgVVJMKHQsZSk6bmV3IFVSTCh0KTtyZXR1cm4iaHR0cDoiPT09aXx8Imh0dHBzOiI9PT1pfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBsdCh0KXt0LnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gY3QodCl7Y29uc29sZS5sb2coIkRlcHJlY2F0ZWQgQVBJIHVzYWdlOiAiK3QpfWxldCBkdDtjbGFzcyB1dHtzdGF0aWMgdG9EYXRlT2JqZWN0KHQpe2lmKCF0fHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7ZHR8fD1uZXcgUmVnRXhwKCJeRDooXFxkezR9KShcXGR7Mn0pPyhcXGR7Mn0pPyhcXGR7Mn0pPyhcXGR7Mn0pPyhcXGR7Mn0pPyhbWnwrfC1dKT8oXFxkezJ9KT8nPyhcXGR7Mn0pPyc/Iik7Y29uc3QgZT1kdC5leGVjKHQpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IGk9cGFyc2VJbnQoZVsxXSwxMCk7bGV0IHM9cGFyc2VJbnQoZVsyXSwxMCk7cz1zPj0xJiZzPD0xMj9zLTE6MDtsZXQgbj1wYXJzZUludChlWzNdLDEwKTtuPW4+PTEmJm48PTMxP246MTtsZXQgcj1wYXJzZUludChlWzRdLDEwKTtyPXI+PTAmJnI8PTIzP3I6MDtsZXQgYT1wYXJzZUludChlWzVdLDEwKTthPWE+PTAmJmE8PTU5P2E6MDtsZXQgbz1wYXJzZUludChlWzZdLDEwKTtvPW8+PTAmJm88PTU5P286MDtjb25zdCBoPWVbN118fCJaIjtsZXQgbD1wYXJzZUludChlWzhdLDEwKTtsPWw+PTAmJmw8PTIzP2w6MDtsZXQgYz1wYXJzZUludChlWzldLDEwKXx8MDtyZXR1cm4gYz1jPj0wJiZjPD01OT9jOjAsIi0iPT09aD8ocis9bCxhKz1jKToiKyI9PT1oJiYoci09bCxhLT1jKSxuZXcgRGF0ZShEYXRlLlVUQyhpLHMsbixyLGEsbykpfX1mdW5jdGlvbiBwdCh0LHtzY2FsZTplPTEscm90YXRpb246aT0wfSl7Y29uc3R7d2lkdGg6cyxoZWlnaHQ6bn09dC5hdHRyaWJ1dGVzLnN0eWxlLHI9WzAsMCxwYXJzZUludChzKSxwYXJzZUludChuKV07cmV0dXJuIG5ldyBldCh7dmlld0JveDpyLHNjYWxlOmUscm90YXRpb246aX0pfWZ1bmN0aW9uIGd0KHQpe2lmKHQuc3RhcnRzV2l0aCgiIyIpKXtjb25zdCBlPXBhcnNlSW50KHQuc2xpY2UoMSksMTYpO3JldHVyblsoMTY3MTE2ODAmZSk+PjE2LCg2NTI4MCZlKT4+OCwyNTUmZV19cmV0dXJuIHQuc3RhcnRzV2l0aCgicmdiKCIpP3Quc2xpY2UoNCwtMSkuc3BsaXQoIiwiKS5tYXAoKHQ9PnBhcnNlSW50KHQpKSk6dC5zdGFydHNXaXRoKCJyZ2JhKCIpP3Quc2xpY2UoNSwtMSkuc3BsaXQoIiwiKS5tYXAoKHQ9PnBhcnNlSW50KHQpKSkuc2xpY2UoMCwzKToodyhgTm90IGEgdmFsaWQgY29sb3IgZm9ybWF0OiAiJHt0fSJgKSxbMCwwLDBdKX1mdW5jdGlvbiBmdCh0KXtjb25zdHthOmUsYjppLGM6cyxkOm4sZTpyLGY6YX09dC5nZXRUcmFuc2Zvcm0oKTtyZXR1cm5bZSxpLHMsbixyLGFdfWZ1bmN0aW9uIG10KHQpe2NvbnN0e2E6ZSxiOmksYzpzLGQ6bixlOnIsZjphfT10LmdldFRyYW5zZm9ybSgpLmludmVydFNlbGYoKTtyZXR1cm5bZSxpLHMsbixyLGFdfWZ1bmN0aW9uIGJ0KHQsZSxpPSExLHM9ITApe2lmKGUgaW5zdGFuY2VvZiBldCl7Y29uc3R7cGFnZVdpZHRoOnMscGFnZUhlaWdodDpufT1lLnJhd0RpbXMse3N0eWxlOnJ9PXQsYT1OLmlzQ1NTUm91bmRTdXBwb3J0ZWQsbz1gdmFyKC0tc2NhbGUtZmFjdG9yKSAqICR7c31weGAsaD1gdmFyKC0tc2NhbGUtZmFjdG9yKSAqICR7bn1weGAsbD1hP2Byb3VuZChkb3duLCAke299LCB2YXIoLS1zY2FsZS1yb3VuZC14LCAxcHgpKWA6YGNhbGMoJHtvfSlgLGM9YT9gcm91bmQoZG93biwgJHtofSwgdmFyKC0tc2NhbGUtcm91bmQteSwgMXB4KSlgOmBjYWxjKCR7aH0pYDtpJiZlLnJvdGF0aW9uJTE4MCE9MD8oci53aWR0aD1jLHIuaGVpZ2h0PWwpOihyLndpZHRoPWwsci5oZWlnaHQ9Yyl9cyYmdC5zZXRBdHRyaWJ1dGUoImRhdGEtbWFpbi1yb3RhdGlvbiIsZS5yb3RhdGlvbil9Y2xhc3MgdnR7Y29uc3RydWN0b3IoKXtjb25zdCB0PXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3RoaXMuc3g9dCx0aGlzLnN5PXR9Z2V0IHNjYWxlZCgpe3JldHVybiAxIT09dGhpcy5zeHx8MSE9PXRoaXMuc3l9Z2V0IHN5bW1ldHJpYygpe3JldHVybiB0aGlzLnN4PT09dGhpcy5zeX19Y2xhc3MgeXR7I3M9bnVsbDsjbj1udWxsOyNyOyNhPW51bGw7I289bnVsbDtzdGF0aWMjaD1udWxsO2NvbnN0cnVjdG9yKHQpe3RoaXMuI3I9dCx5dC4jaHx8PU9iamVjdC5mcmVlemUoe2ZyZWV0ZXh0OiJwZGZqcy1lZGl0b3ItcmVtb3ZlLWZyZWV0ZXh0LWJ1dHRvbiIsaGlnaGxpZ2h0OiJwZGZqcy1lZGl0b3ItcmVtb3ZlLWhpZ2hsaWdodC1idXR0b24iLGluazoicGRmanMtZWRpdG9yLXJlbW92ZS1pbmstYnV0dG9uIixzdGFtcDoicGRmanMtZWRpdG9yLXJlbW92ZS1zdGFtcC1idXR0b24ifSl9cmVuZGVyKCl7Y29uc3QgdD10aGlzLiNzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgiZWRpdFRvb2xiYXIiLCJoaWRkZW4iKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2xiYXIiKTtjb25zdCBlPXRoaXMuI3IuX3VpTWFuYWdlci5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6ZX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHl0LiNsLHtzaWduYWw6ZX0pO2NvbnN0IGk9dGhpcy4jYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0iYnV0dG9ucyIsdC5hcHBlbmQoaSk7Y29uc3Qgcz10aGlzLiNyLnRvb2xiYXJQb3NpdGlvbjtpZihzKXtjb25zdHtzdHlsZTplfT10LGk9Imx0ciI9PT10aGlzLiNyLl91aU1hbmFnZXIuZGlyZWN0aW9uPzEtc1swXTpzWzBdO2UuaW5zZXRJbmxpbmVFbmQ9MTAwKmkrIiUiLGUudG9wPWBjYWxjKCR7MTAwKnNbMV19JSArIHZhcigtLWVkaXRvci10b29sYmFyLXZlcnQtb2Zmc2V0KSlgfXJldHVybiB0aGlzLiNjKCksdH1nZXQgZGl2KCl7cmV0dXJuIHRoaXMuI3N9c3RhdGljI2wodCl7dC5zdG9wUHJvcGFnYXRpb24oKX0jZCh0KXt0aGlzLiNyLl9mb2N1c0V2ZW50c0FsbG93ZWQ9ITEsdC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9I3UodCl7dGhpcy4jci5fZm9jdXNFdmVudHNBbGxvd2VkPSEwLHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfSNwKHQpe2NvbnN0IGU9dGhpcy4jci5fdWlNYW5hZ2VyLl9zaWduYWw7dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIix0aGlzLiNkLmJpbmQodGhpcykse2NhcHR1cmU6ITAsc2lnbmFsOmV9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLiN1LmJpbmQodGhpcykse2NhcHR1cmU6ITAsc2lnbmFsOmV9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixsdCx7c2lnbmFsOmV9KX1oaWRlKCl7dGhpcy4jcy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0aGlzLiNuPy5oaWRlRHJvcGRvd24oKX1zaG93KCl7dGhpcy4jcy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0aGlzLiNvPy5zaG93bigpfSNjKCl7Y29uc3R7ZWRpdG9yVHlwZTp0LF91aU1hbmFnZXI6ZX09dGhpcy4jcixpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2kuY2xhc3NOYW1lPSJkZWxldGUiLGkudGFiSW5kZXg9MCxpLnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIix5dC4jaFt0XSksdGhpcy4jcChpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwodD0+e2UuZGVsZXRlKCl9KSx7c2lnbmFsOmUuX3NpZ25hbH0pLHRoaXMuI2EuYXBwZW5kKGkpfWdldCNnKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9ImRpdmlkZXIiLHR9YXN5bmMgYWRkQWx0VGV4dCh0KXtjb25zdCBlPWF3YWl0IHQucmVuZGVyKCk7dGhpcy4jcChlKSx0aGlzLiNhLnByZXBlbmQoZSx0aGlzLiNnKSx0aGlzLiNvPXR9YWRkQ29sb3JQaWNrZXIodCl7dGhpcy4jbj10O2NvbnN0IGU9dC5yZW5kZXJCdXR0b24oKTt0aGlzLiNwKGUpLHRoaXMuI2EucHJlcGVuZChlLHRoaXMuI2cpfXJlbW92ZSgpe3RoaXMuI3MucmVtb3ZlKCksdGhpcy4jbj8uZGVzdHJveSgpLHRoaXMuI249bnVsbH19Y2xhc3MgQXR7I2E9bnVsbDsjcz1udWxsOyNmO2NvbnN0cnVjdG9yKHQpe3RoaXMuI2Y9dH0jbSgpe2NvbnN0IHQ9dGhpcy4jcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0iZWRpdFRvb2xiYXIiLHQuc2V0QXR0cmlidXRlKCJyb2xlIiwidG9vbGJhciIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6dGhpcy4jZi5fc2lnbmFsfSk7Y29uc3QgZT10aGlzLiNhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmNsYXNzTmFtZT0iYnV0dG9ucyIsdC5hcHBlbmQoZSksdGhpcy4jYigpLHR9I3YodCxlKXtsZXQgaT0wLHM9MDtmb3IoY29uc3QgbiBvZiB0KXtjb25zdCB0PW4ueStuLmhlaWdodDtpZih0PGkpY29udGludWU7Y29uc3Qgcj1uLngrKGU/bi53aWR0aDowKTt0Pmk/KHM9cixpPXQpOmU/cj5zJiYocz1yKTpyPHMmJihzPXIpfXJldHVybltlPzEtczpzLGldfXNob3codCxlLGkpe2NvbnN0W3Msbl09dGhpcy4jdihlLGkpLHtzdHlsZTpyfT10aGlzLiNzfHw9dGhpcy4jbSgpO3QuYXBwZW5kKHRoaXMuI3MpLHIuaW5zZXRJbmxpbmVFbmQ9MTAwKnMrIiUiLHIudG9wPWBjYWxjKCR7MTAwKm59JSArIHZhcigtLWVkaXRvci10b29sYmFyLXZlcnQtb2Zmc2V0KSlgfWhpZGUoKXt0aGlzLiNzLnJlbW92ZSgpfSNiKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTt0LmNsYXNzTmFtZT0iaGlnaGxpZ2h0QnV0dG9uIix0LnRhYkluZGV4PTAsdC5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWhpZ2hsaWdodC1mbG9hdGluZy1idXR0b24xIik7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7dC5hcHBlbmQoZSksZS5jbGFzc05hbWU9InZpc3VhbGx5SGlkZGVuIixlLnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIiwicGRmanMtaGlnaGxpZ2h0LWZsb2F0aW5nLWJ1dHRvbi1sYWJlbCIpO2NvbnN0IGk9dGhpcy4jZi5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6aX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e3RoaXMuI2YuaGlnaGxpZ2h0U2VsZWN0aW9uKCJmbG9hdGluZ19idXR0b24iKX0pLHtzaWduYWw6aX0pLHRoaXMuI2EuYXBwZW5kKHQpfX1mdW5jdGlvbiB3dCh0LGUsaSl7Zm9yKGNvbnN0IHMgb2YgaSllLmFkZEV2ZW50TGlzdGVuZXIocyx0W3NdLmJpbmQodCkpfWNsYXNzIHh0eyN5PTA7Z2V0IGlkKCl7cmV0dXJuInBkZmpzX2ludGVybmFsX2VkaXRvcl8iK3RoaXMuI3krK319Y2xhc3MgX3R7I0E9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byYmImZ1bmN0aW9uIj09dHlwZW9mIGNyeXB0bz8ucmFuZG9tVVVJRClyZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtjb25zdCB0PW5ldyBVaW50OEFycmF5KDMyKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byYmImZ1bmN0aW9uIj09dHlwZW9mIGNyeXB0bz8uZ2V0UmFuZG9tVmFsdWVzKWNyeXB0by5nZXRSYW5kb21WYWx1ZXModCk7ZWxzZSBmb3IobGV0IGU9MDtlPDMyO2UrKyl0W2VdPU1hdGguZmxvb3IoMjU1Kk1hdGgucmFuZG9tKCkpO3JldHVybiBMKHQpfSgpOyN5PTA7I3c9bnVsbDtzdGF0aWMgZ2V0IF9pc1NWR0ZpdHRpbmdDYW52YXMoKXtjb25zdCB0PW5ldyBPZmZzY3JlZW5DYW52YXMoMSwzKS5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pLGU9bmV3IEltYWdlO3JldHVybiBlLnNyYz0nZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsPHN2ZyB2aWV3Qm94PSIwIDAgMSAxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJmaWxsOnJlZDsiLz48L3N2Zz4nLEModGhpcywiX2lzU1ZHRml0dGluZ0NhbnZhcyIsZS5kZWNvZGUoKS50aGVuKCgoKT0+KHQuZHJhd0ltYWdlKGUsMCwwLDEsMSwwLDAsMSwzKSwwPT09bmV3IFVpbnQzMkFycmF5KHQuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGEuYnVmZmVyKVswXSkpKSl9YXN5bmMjeCh0LGUpe3RoaXMuI3d8fD1uZXcgTWFwO2xldCBpPXRoaXMuI3cuZ2V0KHQpO2lmKG51bGw9PT1pKXJldHVybiBudWxsO2lmKGk/LmJpdG1hcClyZXR1cm4gaS5yZWZDb3VudGVyKz0xLGk7dHJ5e2xldCB0O2lmKGl8fD17Yml0bWFwOm51bGwsaWQ6YGltYWdlXyR7dGhpcy4jQX1fJHt0aGlzLiN5Kyt9YCxyZWZDb3VudGVyOjAsaXNTdmc6ITF9LCJzdHJpbmciPT10eXBlb2YgZT8oaS51cmw9ZSx0PWF3YWl0IFEoZSwiYmxvYiIpKTplIGluc3RhbmNlb2YgRmlsZT90PWkuZmlsZT1lOmUgaW5zdGFuY2VvZiBCbG9iJiYodD1lKSwiaW1hZ2Uvc3ZnK3htbCI9PT10LnR5cGUpe2NvbnN0IGU9X3QuX2lzU1ZHRml0dGluZ0NhbnZhcyxzPW5ldyBGaWxlUmVhZGVyLG49bmV3IEltYWdlLHI9bmV3IFByb21pc2UoKCh0LHIpPT57bi5vbmxvYWQ9KCk9PntpLmJpdG1hcD1uLGkuaXNTdmc9ITAsdCgpfSxzLm9ubG9hZD1hc3luYygpPT57Y29uc3QgdD1pLnN2Z1VybD1zLnJlc3VsdDtuLnNyYz1hd2FpdCBlP2Ake3R9I3N2Z1ZpZXcocHJlc2VydmVBc3BlY3RSYXRpbyhub25lKSlgOnR9LG4ub25lcnJvcj1zLm9uZXJyb3I9cn0pKTtzLnJlYWRBc0RhdGFVUkwodCksYXdhaXQgcn1lbHNlIGkuYml0bWFwPWF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKHQpO2kucmVmQ291bnRlcj0xfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCksaT1udWxsfXJldHVybiB0aGlzLiN3LnNldCh0LGkpLGkmJnRoaXMuI3cuc2V0KGkuaWQsaSksaX1hc3luYyBnZXRGcm9tRmlsZSh0KXtjb25zdHtsYXN0TW9kaWZpZWQ6ZSxuYW1lOmksc2l6ZTpzLHR5cGU6bn09dDtyZXR1cm4gdGhpcy4jeChgJHtlfV8ke2l9XyR7c31fJHtufWAsdCl9YXN5bmMgZ2V0RnJvbVVybCh0KXtyZXR1cm4gdGhpcy4jeCh0LHQpfWFzeW5jIGdldEZyb21CbG9iKHQsZSl7Y29uc3QgaT1hd2FpdCBlO3JldHVybiB0aGlzLiN4KHQsaSl9YXN5bmMgZ2V0RnJvbUlkKHQpe3RoaXMuI3d8fD1uZXcgTWFwO2NvbnN0IGU9dGhpcy4jdy5nZXQodCk7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5iaXRtYXApcmV0dXJuIGUucmVmQ291bnRlcis9MSxlO2lmKGUuZmlsZSlyZXR1cm4gdGhpcy5nZXRGcm9tRmlsZShlLmZpbGUpO2lmKGUuYmxvYlByb21pc2Upe2NvbnN0e2Jsb2JQcm9taXNlOnR9PWU7cmV0dXJuIGRlbGV0ZSBlLmJsb2JQcm9taXNlLHRoaXMuZ2V0RnJvbUJsb2IoZS5pZCx0KX1yZXR1cm4gdGhpcy5nZXRGcm9tVXJsKGUudXJsKX1nZXRGcm9tQ2FudmFzKHQsZSl7dGhpcy4jd3x8PW5ldyBNYXA7bGV0IGk9dGhpcy4jdy5nZXQodCk7aWYoaT8uYml0bWFwKXJldHVybiBpLnJlZkNvdW50ZXIrPTEsaTtjb25zdCBzPW5ldyBPZmZzY3JlZW5DYW52YXMoZS53aWR0aCxlLmhlaWdodCk7cmV0dXJuIHMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoZSwwLDApLGk9e2JpdG1hcDpzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpLGlkOmBpbWFnZV8ke3RoaXMuI0F9XyR7dGhpcy4jeSsrfWAscmVmQ291bnRlcjoxLGlzU3ZnOiExfSx0aGlzLiN3LnNldCh0LGkpLHRoaXMuI3cuc2V0KGkuaWQsaSksaX1nZXRTdmdVcmwodCl7Y29uc3QgZT10aGlzLiN3LmdldCh0KTtyZXR1cm4gZT8uaXNTdmc/ZS5zdmdVcmw6bnVsbH1kZWxldGVJZCh0KXt0aGlzLiN3fHw9bmV3IE1hcDtjb25zdCBlPXRoaXMuI3cuZ2V0KHQpO2lmKCFlKXJldHVybjtpZihlLnJlZkNvdW50ZXItPTEsMCE9PWUucmVmQ291bnRlcilyZXR1cm47Y29uc3R7Yml0bWFwOml9PWU7aWYoIWUudXJsJiYhZS5maWxlKXtjb25zdCB0PW5ldyBPZmZzY3JlZW5DYW52YXMoaS53aWR0aCxpLmhlaWdodCk7dC5nZXRDb250ZXh0KCJiaXRtYXByZW5kZXJlciIpLnRyYW5zZmVyRnJvbUltYWdlQml0bWFwKGkpLGUuYmxvYlByb21pc2U9dC5jb252ZXJ0VG9CbG9iKCl9aS5jbG9zZT8uKCksZS5iaXRtYXA9bnVsbH1pc1ZhbGlkSWQodCl7cmV0dXJuIHQuc3RhcnRzV2l0aChgaW1hZ2VfJHt0aGlzLiNBfV9gKX19Y2xhc3MgRXR7I189W107I0U9ITE7I0M7I1M9LTE7Y29uc3RydWN0b3IodD0xMjgpe3RoaXMuI0M9dH1hZGQoe2NtZDp0LHVuZG86ZSxwb3N0OmksbXVzdEV4ZWM6cyx0eXBlOm49TmFOLG92ZXJ3cml0ZUlmU2FtZVR5cGU6cj0hMSxrZWVwVW5kbzphPSExfSl7aWYocyYmdCgpLHRoaXMuI0UpcmV0dXJuO2NvbnN0IG89e2NtZDp0LHVuZG86ZSxwb3N0OmksdHlwZTpufTtpZigtMT09PXRoaXMuI1MpcmV0dXJuIHRoaXMuI18ubGVuZ3RoPjAmJih0aGlzLiNfLmxlbmd0aD0wKSx0aGlzLiNTPTAsdm9pZCB0aGlzLiNfLnB1c2gobyk7aWYociYmdGhpcy4jX1t0aGlzLiNTXS50eXBlPT09bilyZXR1cm4gYSYmKG8udW5kbz10aGlzLiNfW3RoaXMuI1NdLnVuZG8pLHZvaWQodGhpcy4jX1t0aGlzLiNTXT1vKTtjb25zdCBoPXRoaXMuI1MrMTtoPT09dGhpcy4jQz90aGlzLiNfLnNwbGljZSgwLDEpOih0aGlzLiNTPWgsaDx0aGlzLiNfLmxlbmd0aCYmdGhpcy4jXy5zcGxpY2UoaCkpLHRoaXMuI18ucHVzaChvKX11bmRvKCl7aWYoLTE9PT10aGlzLiNTKXJldHVybjt0aGlzLiNFPSEwO2NvbnN0e3VuZG86dCxwb3N0OmV9PXRoaXMuI19bdGhpcy4jU107dCgpLGU/LigpLHRoaXMuI0U9ITEsdGhpcy4jUy09MX1yZWRvKCl7aWYodGhpcy4jUzx0aGlzLiNfLmxlbmd0aC0xKXt0aGlzLiNTKz0xLHRoaXMuI0U9ITA7Y29uc3R7Y21kOnQscG9zdDplfT10aGlzLiNfW3RoaXMuI1NdO3QoKSxlPy4oKSx0aGlzLiNFPSExfX1oYXNTb21ldGhpbmdUb1VuZG8oKXtyZXR1cm4tMSE9PXRoaXMuI1N9aGFzU29tZXRoaW5nVG9SZWRvKCl7cmV0dXJuIHRoaXMuI1M8dGhpcy4jXy5sZW5ndGgtMX1kZXN0cm95KCl7dGhpcy4jXz1udWxsfX1jbGFzcyBDdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmJ1ZmZlcj1bXSx0aGlzLmNhbGxiYWNrcz1uZXcgTWFwLHRoaXMuYWxsS2V5cz1uZXcgU2V0O2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07Zm9yKGNvbnN0W2kscyxuPXt9XW9mIHQpZm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgaT10LnN0YXJ0c1dpdGgoIm1hYysiKTtlJiZpPyh0aGlzLmNhbGxiYWNrcy5zZXQodC5zbGljZSg0KSx7Y2FsbGJhY2s6cyxvcHRpb25zOm59KSx0aGlzLmFsbEtleXMuYWRkKHQuc3BsaXQoIisiKS5hdCgtMSkpKTplfHxpfHwodGhpcy5jYWxsYmFja3Muc2V0KHQse2NhbGxiYWNrOnMsb3B0aW9uczpufSksdGhpcy5hbGxLZXlzLmFkZCh0LnNwbGl0KCIrIikuYXQoLTEpKSl9fSNUKHQpe3QuYWx0S2V5JiZ0aGlzLmJ1ZmZlci5wdXNoKCJhbHQiKSx0LmN0cmxLZXkmJnRoaXMuYnVmZmVyLnB1c2goImN0cmwiKSx0Lm1ldGFLZXkmJnRoaXMuYnVmZmVyLnB1c2goIm1ldGEiKSx0LnNoaWZ0S2V5JiZ0aGlzLmJ1ZmZlci5wdXNoKCJzaGlmdCIpLHRoaXMuYnVmZmVyLnB1c2godC5rZXkpO2NvbnN0IGU9dGhpcy5idWZmZXIuam9pbigiKyIpO3JldHVybiB0aGlzLmJ1ZmZlci5sZW5ndGg9MCxlfWV4ZWModCxlKXtpZighdGhpcy5hbGxLZXlzLmhhcyhlLmtleSkpcmV0dXJuO2NvbnN0IGk9dGhpcy5jYWxsYmFja3MuZ2V0KHRoaXMuI1QoZSkpO2lmKCFpKXJldHVybjtjb25zdHtjYWxsYmFjazpzLG9wdGlvbnM6e2J1YmJsZXM6bj0hMSxhcmdzOnI9W10sY2hlY2tlcjphPW51bGx9fT1pO2EmJiFhKHQsZSl8fChzLmJpbmQodCwuLi5yLGUpKCksbnx8KGUuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpKSl9fWNsYXNzIFN0e3N0YXRpYyBfY29sb3JzTWFwcGluZz1uZXcgTWFwKFtbIkNhbnZhc1RleHQiLFswLDAsMF1dLFsiQ2FudmFzIixbMjU1LDI1NSwyNTVdXV0pO2dldCBfY29sb3JzKCl7Y29uc3QgdD1uZXcgTWFwKFtbIkNhbnZhc1RleHQiLG51bGxdLFsiQ2FudmFzIixudWxsXV0pO3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtlLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7Zm9yKGNvbnN0IGkgb2YgdC5rZXlzKCkpe2Uuc3R5bGUuY29sb3I9aTtjb25zdCBzPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLmNvbG9yO3Quc2V0KGksZ3QocykpfWUucmVtb3ZlKCl9KHQpLEModGhpcywiX2NvbG9ycyIsdCl9Y29udmVydCh0KXtjb25zdCBlPWd0KHQpO2lmKCF3aW5kb3cubWF0Y2hNZWRpYSgiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkiKS5tYXRjaGVzKXJldHVybiBlO2Zvcihjb25zdFt0LGldb2YgdGhpcy5fY29sb3JzKWlmKGkuZXZlcnkoKCh0LGkpPT50PT09ZVtpXSkpKXJldHVybiBTdC5fY29sb3JzTWFwcGluZy5nZXQodCk7cmV0dXJuIGV9Z2V0SGV4Q29kZSh0KXtjb25zdCBlPXRoaXMuX2NvbG9ycy5nZXQodCk7cmV0dXJuIGU/ei5tYWtlSGV4Q29sb3IoLi4uZSk6dH19Y2xhc3MgVHR7I009bmV3IEFib3J0Q29udHJvbGxlcjsjaz1udWxsOyNJPW5ldyBNYXA7I1I9bmV3IE1hcDsjUD1udWxsOyNEPW51bGw7I0w9bnVsbDsjRj1uZXcgRXQ7I089bnVsbDsjTj0wOyNCPW5ldyBTZXQ7I3o9bnVsbDsjSD1udWxsOyNqPW5ldyBTZXQ7I1U9ITE7IyQ9ITE7I1c9ITE7I0c9bnVsbDsjVj1udWxsOyNxPW51bGw7I1g9bnVsbDsjSz0hMTsjWT1udWxsOyNRPW5ldyB4dDsjSj0hMTsjWj0hMTsjdHQ9bnVsbDsjZXQ9bnVsbDsjaXQ9bnVsbDsjc3Q9bnVsbDsjbnQ9bC5OT05FOyNydD1uZXcgU2V0OyNhdD1udWxsOyNvdD1udWxsOyNodD1udWxsOyNsdD17aXNFZGl0aW5nOiExLGlzRW1wdHk6ITAsaGFzU29tZXRoaW5nVG9VbmRvOiExLGhhc1NvbWV0aGluZ1RvUmVkbzohMSxoYXNTZWxlY3RlZEVkaXRvcjohMSxoYXNTZWxlY3RlZFRleHQ6ITF9OyNjdD1bMCwwXTsjZHQ9bnVsbDsjdXQ9bnVsbDsjcHQ9bnVsbDsjZ3Q9bnVsbDtzdGF0aWMgVFJBTlNMQVRFX1NNQUxMPTE7c3RhdGljIFRSQU5TTEFURV9CSUc9MTA7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7Y29uc3QgdD1UdC5wcm90b3R5cGUsZT10PT50LiN1dC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmIkJVVFRPTiIhPT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUmJnQuaGFzU29tZXRoaW5nVG9Db250cm9sKCksaT0odCx7dGFyZ2V0OmV9KT0+e2lmKGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KXtjb25zdHt0eXBlOnR9PWU7cmV0dXJuInRleHQiIT09dCYmIm51bWJlciIhPT10fXJldHVybiEwfSxzPXRoaXMuVFJBTlNMQVRFX1NNQUxMLG49dGhpcy5UUkFOU0xBVEVfQklHO3JldHVybiBDKHRoaXMsIl9rZXlib2FyZE1hbmFnZXIiLG5ldyBDdChbW1siY3RybCthIiwibWFjK21ldGErYSJdLHQuc2VsZWN0QWxsLHtjaGVja2VyOml9XSxbWyJjdHJsK3oiLCJtYWMrbWV0YSt6Il0sdC51bmRvLHtjaGVja2VyOml9XSxbWyJjdHJsK3kiLCJjdHJsK3NoaWZ0K3oiLCJtYWMrbWV0YStzaGlmdCt6IiwiY3RybCtzaGlmdCtaIiwibWFjK21ldGErc2hpZnQrWiJdLHQucmVkbyx7Y2hlY2tlcjppfV0sW1siQmFja3NwYWNlIiwiYWx0K0JhY2tzcGFjZSIsImN0cmwrQmFja3NwYWNlIiwic2hpZnQrQmFja3NwYWNlIiwibWFjK0JhY2tzcGFjZSIsIm1hYythbHQrQmFja3NwYWNlIiwibWFjK2N0cmwrQmFja3NwYWNlIiwiRGVsZXRlIiwiY3RybCtEZWxldGUiLCJzaGlmdCtEZWxldGUiLCJtYWMrRGVsZXRlIl0sdC5kZWxldGUse2NoZWNrZXI6aX1dLFtbIkVudGVyIiwibWFjK0VudGVyIl0sdC5hZGROZXdFZGl0b3JGcm9tS2V5Ym9hcmQse2NoZWNrZXI6KHQse3RhcmdldDplfSk9PiEoZSBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSYmdC4jdXQuY29udGFpbnMoZSkmJiF0LmlzRW50ZXJIYW5kbGVkfV0sW1siICIsIm1hYysgIl0sdC5hZGROZXdFZGl0b3JGcm9tS2V5Ym9hcmQse2NoZWNrZXI6KHQse3RhcmdldDplfSk9PiEoZSBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSYmdC4jdXQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl9XSxbWyJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sdC51bnNlbGVjdEFsbF0sW1siQXJyb3dMZWZ0IiwibWFjK0Fycm93TGVmdCJdLHQudHJhbnNsYXRlU2VsZWN0ZWRFZGl0b3JzLHthcmdzOlstcywwXSxjaGVja2VyOmV9XSxbWyJjdHJsK0Fycm93TGVmdCIsIm1hYytzaGlmdCtBcnJvd0xlZnQiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbLW4sMF0sY2hlY2tlcjplfV0sW1siQXJyb3dSaWdodCIsIm1hYytBcnJvd1JpZ2h0Il0sdC50cmFuc2xhdGVTZWxlY3RlZEVkaXRvcnMse2FyZ3M6W3MsMF0sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1JpZ2h0IiwibWFjK3NoaWZ0K0Fycm93UmlnaHQiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbbiwwXSxjaGVja2VyOmV9XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbMCwtc10sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1VwIiwibWFjK3NoaWZ0K0Fycm93VXAiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbMCwtbl0sY2hlY2tlcjplfV0sW1siQXJyb3dEb3duIiwibWFjK0Fycm93RG93biJdLHQudHJhbnNsYXRlU2VsZWN0ZWRFZGl0b3JzLHthcmdzOlswLHNdLGNoZWNrZXI6ZX1dLFtbImN0cmwrQXJyb3dEb3duIiwibWFjK3NoaWZ0K0Fycm93RG93biJdLHQudHJhbnNsYXRlU2VsZWN0ZWRFZGl0b3JzLHthcmdzOlswLG5dLGNoZWNrZXI6ZX1dXSkpfWNvbnN0cnVjdG9yKHQsZSxpLHMsbixyLGEsbyxoLGwsYyl7Y29uc3QgZD10aGlzLl9zaWduYWw9dGhpcy4jTS5zaWduYWw7dGhpcy4jdXQ9dCx0aGlzLiNwdD1lLHRoaXMuI1A9aSx0aGlzLl9ldmVudEJ1cz1zLHMuX29uKCJlZGl0aW5nYWN0aW9uIix0aGlzLm9uRWRpdGluZ0FjdGlvbi5iaW5kKHRoaXMpLHtzaWduYWw6ZH0pLHMuX29uKCJwYWdlY2hhbmdpbmciLHRoaXMub25QYWdlQ2hhbmdpbmcuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigic2NhbGVjaGFuZ2luZyIsdGhpcy5vblNjYWxlQ2hhbmdpbmcuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigicm90YXRpb25jaGFuZ2luZyIsdGhpcy5vblJvdGF0aW9uQ2hhbmdpbmcuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigic2V0cHJlZmVyZW5jZSIsdGhpcy5vblNldFByZWZlcmVuY2UuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigic3dpdGNoYW5ub3RhdGlvbmVkaXRvcnBhcmFtcyIsKHQ9PnRoaXMudXBkYXRlUGFyYW1zKHQudHlwZSx0LnZhbHVlKSkse3NpZ25hbDpkfSksdGhpcy4jZnQoKSx0aGlzLiNtdCgpLHRoaXMuI2J0KCksdGhpcy4jRD1uLmFubm90YXRpb25TdG9yYWdlLHRoaXMuI0c9bi5maWx0ZXJGYWN0b3J5LHRoaXMuI290PXIsdGhpcy4jWD1hfHxudWxsLHRoaXMuI1U9byx0aGlzLiMkPWgsdGhpcy4jVz1sLHRoaXMuI3N0PWN8fG51bGwsdGhpcy52aWV3UGFyYW1ldGVycz17cmVhbFNjYWxlOlkuUERGX1RPX0NTU19VTklUUyxyb3RhdGlvbjowfSx0aGlzLmlzU2hpZnRLZXlEb3duPSExfWRlc3Ryb3koKXt0aGlzLiNndD8ucmVzb2x2ZSgpLHRoaXMuI2d0PW51bGwsdGhpcy4jTT8uYWJvcnQoKSx0aGlzLiNNPW51bGwsdGhpcy5fc2lnbmFsPW51bGw7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jUi52YWx1ZXMoKSl0LmRlc3Ryb3koKTt0aGlzLiNSLmNsZWFyKCksdGhpcy4jSS5jbGVhcigpLHRoaXMuI2ouY2xlYXIoKSx0aGlzLiNrPW51bGwsdGhpcy4jcnQuY2xlYXIoKSx0aGlzLiNGLmRlc3Ryb3koKSx0aGlzLiNQPy5kZXN0cm95KCksdGhpcy4jWT8uaGlkZSgpLHRoaXMuI1k9bnVsbCx0aGlzLiNWJiYoY2xlYXJUaW1lb3V0KHRoaXMuI1YpLHRoaXMuI1Y9bnVsbCksdGhpcy4jZHQmJihjbGVhclRpbWVvdXQodGhpcy4jZHQpLHRoaXMuI2R0PW51bGwpfWNvbWJpbmVkU2lnbmFsKHQpe3JldHVybiBBYm9ydFNpZ25hbC5hbnkoW3RoaXMuX3NpZ25hbCx0LnNpZ25hbF0pfWdldCBtbE1hbmFnZXIoKXtyZXR1cm4gdGhpcy4jc3R9Z2V0IHVzZU5ld0FsdFRleHRGbG93KCl7cmV0dXJuIHRoaXMuIyR9Z2V0IHVzZU5ld0FsdFRleHRXaGVuQWRkaW5nSW1hZ2UoKXtyZXR1cm4gdGhpcy4jV31nZXQgaGNtRmlsdGVyKCl7cmV0dXJuIEModGhpcywiaGNtRmlsdGVyIix0aGlzLiNvdD90aGlzLiNHLmFkZEhDTUZpbHRlcih0aGlzLiNvdC5mb3JlZ3JvdW5kLHRoaXMuI290LmJhY2tncm91bmQpOiJub25lIil9Z2V0IGRpcmVjdGlvbigpe3JldHVybiBDKHRoaXMsImRpcmVjdGlvbiIsZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLiN1dCkuZGlyZWN0aW9uKX1nZXQgaGlnaGxpZ2h0Q29sb3JzKCl7cmV0dXJuIEModGhpcywiaGlnaGxpZ2h0Q29sb3JzIix0aGlzLiNYP25ldyBNYXAodGhpcy4jWC5zcGxpdCgiLCIpLm1hcCgodD0+dC5zcGxpdCgiPSIpLm1hcCgodD0+dC50cmltKCkpKSkpKTpudWxsKX1nZXQgaGlnaGxpZ2h0Q29sb3JOYW1lcygpe3JldHVybiBDKHRoaXMsImhpZ2hsaWdodENvbG9yTmFtZXMiLHRoaXMuaGlnaGxpZ2h0Q29sb3JzP25ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLmhpZ2hsaWdodENvbG9ycywodD0+dC5yZXZlcnNlKCkpKSk6bnVsbCl9c2V0TWFpbkhpZ2hsaWdodENvbG9yUGlja2VyKHQpe3RoaXMuI2l0PXR9ZWRpdEFsdFRleHQodCxlPSExKXt0aGlzLiNQPy5lZGl0QWx0VGV4dCh0aGlzLHQsZSl9c3dpdGNoVG9Nb2RlKHQsZSl7dGhpcy5fZXZlbnRCdXMub24oImFubm90YXRpb25lZGl0b3Jtb2RlY2hhbmdlZCIsZSx7b25jZTohMCxzaWduYWw6dGhpcy5fc2lnbmFsfSksdGhpcy5fZXZlbnRCdXMuZGlzcGF0Y2goInNob3dhbm5vdGF0aW9uZWRpdG9ydWkiLHtzb3VyY2U6dGhpcyxtb2RlOnR9KX1zZXRQcmVmZXJlbmNlKHQsZSl7dGhpcy5fZXZlbnRCdXMuZGlzcGF0Y2goInNldHByZWZlcmVuY2UiLHtzb3VyY2U6dGhpcyxuYW1lOnQsdmFsdWU6ZX0pfW9uU2V0UHJlZmVyZW5jZSh7bmFtZTp0LHZhbHVlOmV9KXsiZW5hYmxlTmV3QWx0VGV4dFdoZW5BZGRpbmdJbWFnZSI9PT10JiYodGhpcy4jVz1lKX1vblBhZ2VDaGFuZ2luZyh7cGFnZU51bWJlcjp0fSl7dGhpcy4jTj10LTF9Zm9jdXNNYWluQ29udGFpbmVyKCl7dGhpcy4jdXQuZm9jdXMoKX1maW5kUGFyZW50KHQsZSl7Zm9yKGNvbnN0IGkgb2YgdGhpcy4jUi52YWx1ZXMoKSl7Y29uc3R7eDpzLHk6bix3aWR0aDpyLGhlaWdodDphfT1pLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0Pj1zJiZ0PD1zK3ImJmU+PW4mJmU8PW4rYSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1kaXNhYmxlVXNlclNlbGVjdCh0PSExKXt0aGlzLiNwdC5jbGFzc0xpc3QudG9nZ2xlKCJub1VzZXJTZWxlY3QiLHQpfWFkZFNob3VsZFJlc2NhbGUodCl7dGhpcy4jai5hZGQodCl9cmVtb3ZlU2hvdWxkUmVzY2FsZSh0KXt0aGlzLiNqLmRlbGV0ZSh0KX1vblNjYWxlQ2hhbmdpbmcoe3NjYWxlOnR9KXt0aGlzLmNvbW1pdE9yUmVtb3ZlKCksdGhpcy52aWV3UGFyYW1ldGVycy5yZWFsU2NhbGU9dCpZLlBERl9UT19DU1NfVU5JVFM7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jail0Lm9uU2NhbGVDaGFuZ2luZygpfW9uUm90YXRpb25DaGFuZ2luZyh7cGFnZXNSb3RhdGlvbjp0fSl7dGhpcy5jb21taXRPclJlbW92ZSgpLHRoaXMudmlld1BhcmFtZXRlcnMucm90YXRpb249dH0jdnQoe2FuY2hvck5vZGU6dH0pe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/dC5wYXJlbnRFbGVtZW50OnR9I3l0KHQpe2NvbnN0e2N1cnJlbnRMYXllcjplfT10aGlzO2lmKGUuaGFzVGV4dExheWVyKHQpKXJldHVybiBlO2Zvcihjb25zdCBlIG9mIHRoaXMuI1IudmFsdWVzKCkpaWYoZS5oYXNUZXh0TGF5ZXIodCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9aGlnaGxpZ2h0U2VsZWN0aW9uKHQ9IiIpe2NvbnN0IGU9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7aWYoIWV8fGUuaXNDb2xsYXBzZWQpcmV0dXJuO2NvbnN0e2FuY2hvck5vZGU6aSxhbmNob3JPZmZzZXQ6cyxmb2N1c05vZGU6bixmb2N1c09mZnNldDpyfT1lLGE9ZS50b1N0cmluZygpLG89dGhpcy4jdnQoZSkuY2xvc2VzdCgiLnRleHRMYXllciIpLGg9dGhpcy5nZXRTZWxlY3Rpb25Cb3hlcyhvKTtpZighaClyZXR1cm47ZS5lbXB0eSgpO2NvbnN0IGM9dGhpcy4jeXQobyksZD10aGlzLiNudD09PWwuTk9ORSx1PSgpPT57Yz8uY3JlYXRlQW5kQWRkTmV3RWRpdG9yKHt4OjAseTowfSwhMSx7bWV0aG9kT2ZDcmVhdGlvbjp0LGJveGVzOmgsYW5jaG9yTm9kZTppLGFuY2hvck9mZnNldDpzLGZvY3VzTm9kZTpuLGZvY3VzT2Zmc2V0OnIsdGV4dDphfSksZCYmdGhpcy5zaG93QWxsRWRpdG9ycygiaGlnaGxpZ2h0IiwhMCwhMCl9O2Q/dGhpcy5zd2l0Y2hUb01vZGUobC5ISUdITElHSFQsdSk6dSgpfSNBdCgpe2NvbnN0IHQ9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7aWYoIXR8fHQuaXNDb2xsYXBzZWQpcmV0dXJuO2NvbnN0IGU9dGhpcy4jdnQodCkuY2xvc2VzdCgiLnRleHRMYXllciIpLGk9dGhpcy5nZXRTZWxlY3Rpb25Cb3hlcyhlKTtpJiYodGhpcy4jWXx8PW5ldyBBdCh0aGlzKSx0aGlzLiNZLnNob3coZSxpLCJsdHIiPT09dGhpcy5kaXJlY3Rpb24pKX1hZGRUb0Fubm90YXRpb25TdG9yYWdlKHQpe3QuaXNFbXB0eSgpfHwhdGhpcy4jRHx8dGhpcy4jRC5oYXModC5pZCl8fHRoaXMuI0Quc2V0VmFsdWUodC5pZCx0KX0jd3QoKXtjb25zdCB0PWRvY3VtZW50LmdldFNlbGVjdGlvbigpO2lmKCF0fHx0LmlzQ29sbGFwc2VkKXJldHVybiB2b2lkKHRoaXMuI2F0JiYodGhpcy4jWT8uaGlkZSgpLHRoaXMuI2F0PW51bGwsdGhpcy4jeHQoe2hhc1NlbGVjdGVkVGV4dDohMX0pKSk7Y29uc3R7YW5jaG9yTm9kZTplfT10O2lmKGU9PT10aGlzLiNhdClyZXR1cm47Y29uc3QgaT10aGlzLiN2dCh0KS5jbG9zZXN0KCIudGV4dExheWVyIik7aWYoaSl7aWYodGhpcy4jWT8uaGlkZSgpLHRoaXMuI2F0PWUsdGhpcy4jeHQoe2hhc1NlbGVjdGVkVGV4dDohMH0pLCh0aGlzLiNudD09PWwuSElHSExJR0hUfHx0aGlzLiNudD09PWwuTk9ORSkmJih0aGlzLiNudD09PWwuSElHSExJR0hUJiZ0aGlzLnNob3dBbGxFZGl0b3JzKCJoaWdobGlnaHQiLCEwLCEwKSx0aGlzLiNLPXRoaXMuaXNTaGlmdEtleURvd24sIXRoaXMuaXNTaGlmdEtleURvd24pKXtjb25zdCB0PXRoaXMuI250PT09bC5ISUdITElHSFQ/dGhpcy4jeXQoaSk6bnVsbDt0Py50b2dnbGVEcmF3aW5nKCk7Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLHM9dGhpcy5jb21iaW5lZFNpZ25hbChlKSxuPWk9PnsicG9pbnRlcnVwIj09PWkudHlwZSYmMCE9PWkuYnV0dG9ufHwoZS5hYm9ydCgpLHQ/LnRvZ2dsZURyYXdpbmcoITApLCJwb2ludGVydXAiPT09aS50eXBlJiZ0aGlzLiNfdCgibWFpbl90b29sYmFyIikpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixuLHtzaWduYWw6c30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixuLHtzaWduYWw6c30pfX1lbHNlIHRoaXMuI2F0JiYodGhpcy4jWT8uaGlkZSgpLHRoaXMuI2F0PW51bGwsdGhpcy4jeHQoe2hhc1NlbGVjdGVkVGV4dDohMX0pKX0jX3QodD0iIil7dGhpcy4jbnQ9PT1sLkhJR0hMSUdIVD90aGlzLmhpZ2hsaWdodFNlbGVjdGlvbih0KTp0aGlzLiNVJiZ0aGlzLiNBdCgpfSNmdCgpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy4jd3QuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuX3NpZ25hbH0pfSNFdCgpe2lmKHRoaXMuI3EpcmV0dXJuO3RoaXMuI3E9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB0PXRoaXMuY29tYmluZWRTaWduYWwodGhpcy4jcSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmZvY3VzLmJpbmQodGhpcykse3NpZ25hbDp0fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuYmx1ci5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfSNDdCgpe3RoaXMuI3E/LmFib3J0KCksdGhpcy4jcT1udWxsfWJsdXIoKXtpZih0aGlzLmlzU2hpZnRLZXlEb3duPSExLHRoaXMuI0smJih0aGlzLiNLPSExLHRoaXMuI190KCJtYWluX3Rvb2xiYXIiKSksIXRoaXMuaGFzU2VsZWN0aW9uKXJldHVybjtjb25zdHthY3RpdmVFbGVtZW50OnR9PWRvY3VtZW50O2Zvcihjb25zdCBlIG9mIHRoaXMuI3J0KWlmKGUuZGl2LmNvbnRhaW5zKHQpKXt0aGlzLiNldD1bZSx0XSxlLl9mb2N1c0V2ZW50c0FsbG93ZWQ9ITE7YnJlYWt9fWZvY3VzKCl7aWYoIXRoaXMuI2V0KXJldHVybjtjb25zdFt0LGVdPXRoaXMuI2V0O3RoaXMuI2V0PW51bGwsZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwoKCk9Pnt0Ll9mb2N1c0V2ZW50c0FsbG93ZWQ9ITB9KSx7b25jZTohMCxzaWduYWw6dGhpcy5fc2lnbmFsfSksZS5mb2N1cygpfSNidCgpe2lmKHRoaXMuI3R0KXJldHVybjt0aGlzLiN0dD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IHQ9dGhpcy5jb21iaW5lZFNpZ25hbCh0aGlzLiN0dCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bi5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5rZXl1cC5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfSNTdCgpe3RoaXMuI3R0Py5hYm9ydCgpLHRoaXMuI3R0PW51bGx9I1R0KCl7aWYodGhpcy4jTylyZXR1cm47dGhpcy4jTz1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IHQ9dGhpcy5jb21iaW5lZFNpZ25hbCh0aGlzLiNPKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb3B5Iix0aGlzLmNvcHkuYmluZCh0aGlzKSx7c2lnbmFsOnR9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjdXQiLHRoaXMuY3V0LmJpbmQodGhpcykse3NpZ25hbDp0fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLHRoaXMucGFzdGUuYmluZCh0aGlzKSx7c2lnbmFsOnR9KX0jTXQoKXt0aGlzLiNPPy5hYm9ydCgpLHRoaXMuI089bnVsbH0jbXQoKXtjb25zdCB0PXRoaXMuX3NpZ25hbDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5kcmFnT3Zlci5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLHRoaXMuZHJvcC5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfWFkZEVkaXRMaXN0ZW5lcnMoKXt0aGlzLiNidCgpLHRoaXMuI1R0KCl9cmVtb3ZlRWRpdExpc3RlbmVycygpe3RoaXMuI1N0KCksdGhpcy4jTXQoKX1kcmFnT3Zlcih0KXtmb3IoY29uc3R7dHlwZTplfW9mIHQuZGF0YVRyYW5zZmVyLml0ZW1zKWZvcihjb25zdCBpIG9mIHRoaXMuI0gpaWYoaS5pc0hhbmRsaW5nTWltZUZvclBhc3RpbmcoZSkpcmV0dXJuIHQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpfWRyb3AodCl7Zm9yKGNvbnN0IGUgb2YgdC5kYXRhVHJhbnNmZXIuaXRlbXMpZm9yKGNvbnN0IGkgb2YgdGhpcy4jSClpZihpLmlzSGFuZGxpbmdNaW1lRm9yUGFzdGluZyhlLnR5cGUpKXJldHVybiBpLnBhc3RlKGUsdGhpcy5jdXJyZW50TGF5ZXIpLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpfWNvcHkodCl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuI2s/LmNvbW1pdE9yUmVtb3ZlKCksIXRoaXMuaGFzU2VsZWN0aW9uKXJldHVybjtjb25zdCBlPVtdO2Zvcihjb25zdCB0IG9mIHRoaXMuI3J0KXtjb25zdCBpPXQuc2VyaWFsaXplKCEwKTtpJiZlLnB1c2goaSl9MCE9PWUubGVuZ3RoJiZ0LmNsaXBib2FyZERhdGEuc2V0RGF0YSgiYXBwbGljYXRpb24vcGRmanMiLEpTT04uc3RyaW5naWZ5KGUpKX1jdXQodCl7dGhpcy5jb3B5KHQpLHRoaXMuZGVsZXRlKCl9YXN5bmMgcGFzdGUodCl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0e2NsaXBib2FyZERhdGE6ZX09dDtmb3IoY29uc3QgdCBvZiBlLml0ZW1zKWZvcihjb25zdCBlIG9mIHRoaXMuI0gpaWYoZS5pc0hhbmRsaW5nTWltZUZvclBhc3RpbmcodC50eXBlKSlyZXR1cm4gdm9pZCBlLnBhc3RlKHQsdGhpcy5jdXJyZW50TGF5ZXIpO2xldCBpPWUuZ2V0RGF0YSgiYXBwbGljYXRpb24vcGRmanMiKTtpZighaSlyZXR1cm47dHJ5e2k9SlNPTi5wYXJzZShpKX1jYXRjaCh0KXtyZXR1cm4gdm9pZCB3KGBwYXN0ZTogIiR7dC5tZXNzYWdlfSIuYCl9aWYoIUFycmF5LmlzQXJyYXkoaSkpcmV0dXJuO3RoaXMudW5zZWxlY3RBbGwoKTtjb25zdCBzPXRoaXMuY3VycmVudExheWVyO3RyeXtjb25zdCB0PVtdO2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IGk9YXdhaXQgcy5kZXNlcmlhbGl6ZShlKTtpZighaSlyZXR1cm47dC5wdXNoKGkpfWNvbnN0IGU9KCk9Pntmb3IoY29uc3QgZSBvZiB0KXRoaXMuI2t0KGUpO3RoaXMuI0l0KHQpfSxuPSgpPT57Zm9yKGNvbnN0IGUgb2YgdCllLnJlbW92ZSgpfTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6ZSx1bmRvOm4sbXVzdEV4ZWM6ITB9KX1jYXRjaCh0KXt3KGBwYXN0ZTogIiR7dC5tZXNzYWdlfSIuYCl9fWtleWRvd24odCl7dGhpcy5pc1NoaWZ0S2V5RG93bnx8IlNoaWZ0IiE9PXQua2V5fHwodGhpcy5pc1NoaWZ0S2V5RG93bj0hMCksdGhpcy4jbnQ9PT1sLk5PTkV8fHRoaXMuaXNFZGl0b3JIYW5kbGluZ0tleWJvYXJkfHxUdC5fa2V5Ym9hcmRNYW5hZ2VyLmV4ZWModGhpcyx0KX1rZXl1cCh0KXt0aGlzLmlzU2hpZnRLZXlEb3duJiYiU2hpZnQiPT09dC5rZXkmJih0aGlzLmlzU2hpZnRLZXlEb3duPSExLHRoaXMuI0smJih0aGlzLiNLPSExLHRoaXMuI190KCJtYWluX3Rvb2xiYXIiKSkpfW9uRWRpdGluZ0FjdGlvbih7bmFtZTp0fSl7c3dpdGNoKHQpe2Nhc2UidW5kbyI6Y2FzZSJyZWRvIjpjYXNlImRlbGV0ZSI6Y2FzZSJzZWxlY3RBbGwiOnRoaXNbdF0oKTticmVhaztjYXNlImhpZ2hsaWdodFNlbGVjdGlvbiI6dGhpcy5oaWdobGlnaHRTZWxlY3Rpb24oImNvbnRleHRfbWVudSIpfX0jeHQodCl7T2JqZWN0LmVudHJpZXModCkuc29tZSgoKFt0LGVdKT0+dGhpcy4jbHRbdF0hPT1lKSkmJih0aGlzLl9ldmVudEJ1cy5kaXNwYXRjaCgiYW5ub3RhdGlvbmVkaXRvcnN0YXRlc2NoYW5nZWQiLHtzb3VyY2U6dGhpcyxkZXRhaWxzOk9iamVjdC5hc3NpZ24odGhpcy4jbHQsdCl9KSx0aGlzLiNudD09PWwuSElHSExJR0hUJiYhMT09PXQuaGFzU2VsZWN0ZWRFZGl0b3ImJnRoaXMuI1J0KFtbYy5ISUdITElHSFRfRlJFRSwhMF1dKSl9I1J0KHQpe3RoaXMuX2V2ZW50QnVzLmRpc3BhdGNoKCJhbm5vdGF0aW9uZWRpdG9ycGFyYW1zY2hhbmdlZCIse3NvdXJjZTp0aGlzLGRldGFpbHM6dH0pfXNldEVkaXRpbmdTdGF0ZSh0KXt0Pyh0aGlzLiNFdCgpLHRoaXMuI1R0KCksdGhpcy4jeHQoe2lzRWRpdGluZzp0aGlzLiNudCE9PWwuTk9ORSxpc0VtcHR5OnRoaXMuI1B0KCksaGFzU29tZXRoaW5nVG9VbmRvOnRoaXMuI0YuaGFzU29tZXRoaW5nVG9VbmRvKCksaGFzU29tZXRoaW5nVG9SZWRvOnRoaXMuI0YuaGFzU29tZXRoaW5nVG9SZWRvKCksaGFzU2VsZWN0ZWRFZGl0b3I6ITF9KSk6KHRoaXMuI0N0KCksdGhpcy4jTXQoKSx0aGlzLiN4dCh7aXNFZGl0aW5nOiExfSksdGhpcy5kaXNhYmxlVXNlclNlbGVjdCghMSkpfXJlZ2lzdGVyRWRpdG9yVHlwZXModCl7aWYoIXRoaXMuI0gpe3RoaXMuI0g9dDtmb3IoY29uc3QgdCBvZiB0aGlzLiNIKXRoaXMuI1J0KHQuZGVmYXVsdFByb3BlcnRpZXNUb1VwZGF0ZSl9fWdldElkKCl7cmV0dXJuIHRoaXMuI1EuaWR9Z2V0IGN1cnJlbnRMYXllcigpe3JldHVybiB0aGlzLiNSLmdldCh0aGlzLiNOKX1nZXRMYXllcih0KXtyZXR1cm4gdGhpcy4jUi5nZXQodCl9Z2V0IGN1cnJlbnRQYWdlSW5kZXgoKXtyZXR1cm4gdGhpcy4jTn1hZGRMYXllcih0KXt0aGlzLiNSLnNldCh0LnBhZ2VJbmRleCx0KSx0aGlzLiNKP3QuZW5hYmxlKCk6dC5kaXNhYmxlKCl9cmVtb3ZlTGF5ZXIodCl7dGhpcy4jUi5kZWxldGUodC5wYWdlSW5kZXgpfWFzeW5jIHVwZGF0ZU1vZGUodCxlPW51bGwsaT0hMSl7aWYodGhpcy4jbnQhPT10JiYoIXRoaXMuI2d0fHwoYXdhaXQgdGhpcy4jZ3QucHJvbWlzZSx0aGlzLiNndCkpKXtpZih0aGlzLiNndD1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLiNudD10LHQ9PT1sLk5PTkUpcmV0dXJuIHRoaXMuc2V0RWRpdGluZ1N0YXRlKCExKSx0aGlzLiNEdCgpLHZvaWQgdGhpcy4jZ3QucmVzb2x2ZSgpO3RoaXMuc2V0RWRpdGluZ1N0YXRlKCEwKSxhd2FpdCB0aGlzLiNMdCgpLHRoaXMudW5zZWxlY3RBbGwoKTtmb3IoY29uc3QgZSBvZiB0aGlzLiNSLnZhbHVlcygpKWUudXBkYXRlTW9kZSh0KTtpZighZSlyZXR1cm4gaSYmdGhpcy5hZGROZXdFZGl0b3JGcm9tS2V5Ym9hcmQoKSx2b2lkIHRoaXMuI2d0LnJlc29sdmUoKTtmb3IoY29uc3QgdCBvZiB0aGlzLiNJLnZhbHVlcygpKXQuYW5ub3RhdGlvbkVsZW1lbnRJZD09PWU/KHRoaXMuc2V0U2VsZWN0ZWQodCksdC5lbnRlckluRWRpdE1vZGUoKSk6dC51bnNlbGVjdCgpO3RoaXMuI2d0LnJlc29sdmUoKX19YWRkTmV3RWRpdG9yRnJvbUtleWJvYXJkKCl7dGhpcy5jdXJyZW50TGF5ZXIuY2FuQ3JlYXRlTmV3RW1wdHlFZGl0b3IoKSYmdGhpcy5jdXJyZW50TGF5ZXIuYWRkTmV3RWRpdG9yKCl9dXBkYXRlVG9vbGJhcih0KXt0IT09dGhpcy4jbnQmJnRoaXMuX2V2ZW50QnVzLmRpc3BhdGNoKCJzd2l0Y2hhbm5vdGF0aW9uZWRpdG9ybW9kZSIse3NvdXJjZTp0aGlzLG1vZGU6dH0pfXVwZGF0ZVBhcmFtcyh0LGUpe2lmKHRoaXMuI0gpe3N3aXRjaCh0KXtjYXNlIGMuQ1JFQVRFOnJldHVybiB2b2lkIHRoaXMuY3VycmVudExheWVyLmFkZE5ld0VkaXRvcigpO2Nhc2UgYy5ISUdITElHSFRfREVGQVVMVF9DT0xPUjp0aGlzLiNpdD8udXBkYXRlQ29sb3IoZSk7YnJlYWs7Y2FzZSBjLkhJR0hMSUdIVF9TSE9XX0FMTDp0aGlzLl9ldmVudEJ1cy5kaXNwYXRjaCgicmVwb3J0dGVsZW1ldHJ5Iix7c291cmNlOnRoaXMsZGV0YWlsczp7dHlwZToiZWRpdGluZyIsZGF0YTp7dHlwZToiaGlnaGxpZ2h0IixhY3Rpb246InRvZ2dsZV92aXNpYmlsaXR5In19fSksKHRoaXMuI2h0fHw9bmV3IE1hcCkuc2V0KHQsZSksdGhpcy5zaG93QWxsRWRpdG9ycygiaGlnaGxpZ2h0IixlKX1mb3IoY29uc3QgaSBvZiB0aGlzLiNydClpLnVwZGF0ZVBhcmFtcyh0LGUpO2Zvcihjb25zdCBpIG9mIHRoaXMuI0gpaS51cGRhdGVEZWZhdWx0UGFyYW1zKHQsZSl9fXNob3dBbGxFZGl0b3JzKHQsZSxpPSExKXtmb3IoY29uc3QgaSBvZiB0aGlzLiNJLnZhbHVlcygpKWkuZWRpdG9yVHlwZT09PXQmJmkuc2hvdyhlKTsodGhpcy4jaHQ/LmdldChjLkhJR0hMSUdIVF9TSE9XX0FMTCk/PyEwKSE9PWUmJnRoaXMuI1J0KFtbYy5ISUdITElHSFRfU0hPV19BTEwsZV1dKX1lbmFibGVXYWl0aW5nKHQ9ITEpe2lmKHRoaXMuI1ohPT10KXt0aGlzLiNaPXQ7Zm9yKGNvbnN0IGUgb2YgdGhpcy4jUi52YWx1ZXMoKSl0P2UuZGlzYWJsZUNsaWNrKCk6ZS5lbmFibGVDbGljaygpLGUuZGl2LmNsYXNzTGlzdC50b2dnbGUoIndhaXRpbmciLHQpfX1hc3luYyNMdCgpe2lmKCF0aGlzLiNKKXt0aGlzLiNKPSEwO2NvbnN0IHQ9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy4jUi52YWx1ZXMoKSl0LnB1c2goZS5lbmFibGUoKSk7YXdhaXQgUHJvbWlzZS5hbGwodCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jSS52YWx1ZXMoKSl0LmVuYWJsZSgpfX0jRHQoKXtpZih0aGlzLnVuc2VsZWN0QWxsKCksdGhpcy4jSil7dGhpcy4jSj0hMTtmb3IoY29uc3QgdCBvZiB0aGlzLiNSLnZhbHVlcygpKXQuZGlzYWJsZSgpO2Zvcihjb25zdCB0IG9mIHRoaXMuI0kudmFsdWVzKCkpdC5kaXNhYmxlKCl9fWdldEVkaXRvcnModCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgaSBvZiB0aGlzLiNJLnZhbHVlcygpKWkucGFnZUluZGV4PT09dCYmZS5wdXNoKGkpO3JldHVybiBlfWdldEVkaXRvcih0KXtyZXR1cm4gdGhpcy4jSS5nZXQodCl9YWRkRWRpdG9yKHQpe3RoaXMuI0kuc2V0KHQuaWQsdCl9cmVtb3ZlRWRpdG9yKHQpe3QuZGl2LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiYodGhpcy4jViYmY2xlYXJUaW1lb3V0KHRoaXMuI1YpLHRoaXMuI1Y9c2V0VGltZW91dCgoKCk9Pnt0aGlzLmZvY3VzTWFpbkNvbnRhaW5lcigpLHRoaXMuI1Y9bnVsbH0pLDApKSx0aGlzLiNJLmRlbGV0ZSh0LmlkKSx0aGlzLnVuc2VsZWN0KHQpLHQuYW5ub3RhdGlvbkVsZW1lbnRJZCYmdGhpcy4jQi5oYXModC5hbm5vdGF0aW9uRWxlbWVudElkKXx8dGhpcy4jRD8ucmVtb3ZlKHQuaWQpfWFkZERlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudCh0KXt0aGlzLiNCLmFkZCh0LmFubm90YXRpb25FbGVtZW50SWQpLHRoaXMuYWRkQ2hhbmdlZEV4aXN0aW5nQW5ub3RhdGlvbih0KSx0LmRlbGV0ZWQ9ITB9aXNEZWxldGVkQW5ub3RhdGlvbkVsZW1lbnQodCl7cmV0dXJuIHRoaXMuI0IuaGFzKHQpfXJlbW92ZURlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudCh0KXt0aGlzLiNCLmRlbGV0ZSh0LmFubm90YXRpb25FbGVtZW50SWQpLHRoaXMucmVtb3ZlQ2hhbmdlZEV4aXN0aW5nQW5ub3RhdGlvbih0KSx0LmRlbGV0ZWQ9ITF9I2t0KHQpe2NvbnN0IGU9dGhpcy4jUi5nZXQodC5wYWdlSW5kZXgpO2U/ZS5hZGRPclJlYnVpbGQodCk6KHRoaXMuYWRkRWRpdG9yKHQpLHRoaXMuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSh0KSl9c2V0QWN0aXZlRWRpdG9yKHQpe3RoaXMuI2shPT10JiYodGhpcy4jaz10LHQmJnRoaXMuI1J0KHQucHJvcGVydGllc1RvVXBkYXRlKSl9Z2V0I0Z0KCl7bGV0IHQ9bnVsbDtmb3IodCBvZiB0aGlzLiNydCk7cmV0dXJuIHR9dXBkYXRlVUkodCl7dGhpcy4jRnQ9PT10JiZ0aGlzLiNSdCh0LnByb3BlcnRpZXNUb1VwZGF0ZSl9dG9nZ2xlU2VsZWN0ZWQodCl7aWYodGhpcy4jcnQuaGFzKHQpKXJldHVybiB0aGlzLiNydC5kZWxldGUodCksdC51bnNlbGVjdCgpLHZvaWQgdGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOnRoaXMuaGFzU2VsZWN0aW9ufSk7dGhpcy4jcnQuYWRkKHQpLHQuc2VsZWN0KCksdGhpcy4jUnQodC5wcm9wZXJ0aWVzVG9VcGRhdGUpLHRoaXMuI3h0KHtoYXNTZWxlY3RlZEVkaXRvcjohMH0pfXNldFNlbGVjdGVkKHQpe2Zvcihjb25zdCBlIG9mIHRoaXMuI3J0KWUhPT10JiZlLnVuc2VsZWN0KCk7dGhpcy4jcnQuY2xlYXIoKSx0aGlzLiNydC5hZGQodCksdC5zZWxlY3QoKSx0aGlzLiNSdCh0LnByb3BlcnRpZXNUb1VwZGF0ZSksdGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOiEwfSl9aXNTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy4jcnQuaGFzKHQpfWdldCBmaXJzdFNlbGVjdGVkRWRpdG9yKCl7cmV0dXJuIHRoaXMuI3J0LnZhbHVlcygpLm5leHQoKS52YWx1ZX11bnNlbGVjdCh0KXt0LnVuc2VsZWN0KCksdGhpcy4jcnQuZGVsZXRlKHQpLHRoaXMuI3h0KHtoYXNTZWxlY3RlZEVkaXRvcjp0aGlzLmhhc1NlbGVjdGlvbn0pfWdldCBoYXNTZWxlY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMuI3J0LnNpemV9Z2V0IGlzRW50ZXJIYW5kbGVkKCl7cmV0dXJuIDE9PT10aGlzLiNydC5zaXplJiZ0aGlzLmZpcnN0U2VsZWN0ZWRFZGl0b3IuaXNFbnRlckhhbmRsZWR9dW5kbygpe3RoaXMuI0YudW5kbygpLHRoaXMuI3h0KHtoYXNTb21ldGhpbmdUb1VuZG86dGhpcy4jRi5oYXNTb21ldGhpbmdUb1VuZG8oKSxoYXNTb21ldGhpbmdUb1JlZG86ITAsaXNFbXB0eTp0aGlzLiNQdCgpfSl9cmVkbygpe3RoaXMuI0YucmVkbygpLHRoaXMuI3h0KHtoYXNTb21ldGhpbmdUb1VuZG86ITAsaGFzU29tZXRoaW5nVG9SZWRvOnRoaXMuI0YuaGFzU29tZXRoaW5nVG9SZWRvKCksaXNFbXB0eTp0aGlzLiNQdCgpfSl9YWRkQ29tbWFuZHModCl7dGhpcy4jRi5hZGQodCksdGhpcy4jeHQoe2hhc1NvbWV0aGluZ1RvVW5kbzohMCxoYXNTb21ldGhpbmdUb1JlZG86ITEsaXNFbXB0eTp0aGlzLiNQdCgpfSl9I1B0KCl7aWYoMD09PXRoaXMuI0kuc2l6ZSlyZXR1cm4hMDtpZigxPT09dGhpcy4jSS5zaXplKWZvcihjb25zdCB0IG9mIHRoaXMuI0kudmFsdWVzKCkpcmV0dXJuIHQuaXNFbXB0eSgpO3JldHVybiExfWRlbGV0ZSgpe2lmKHRoaXMuY29tbWl0T3JSZW1vdmUoKSwhdGhpcy5oYXNTZWxlY3Rpb24pcmV0dXJuO2NvbnN0IHQ9Wy4uLnRoaXMuI3J0XTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9Pntmb3IoY29uc3QgZSBvZiB0KWUucmVtb3ZlKCl9LHVuZG86KCk9Pntmb3IoY29uc3QgZSBvZiB0KXRoaXMuI2t0KGUpfSxtdXN0RXhlYzohMH0pfWNvbW1pdE9yUmVtb3ZlKCl7dGhpcy4jaz8uY29tbWl0T3JSZW1vdmUoKX1oYXNTb21ldGhpbmdUb0NvbnRyb2woKXtyZXR1cm4gdGhpcy4ja3x8dGhpcy5oYXNTZWxlY3Rpb259I0l0KHQpe2Zvcihjb25zdCB0IG9mIHRoaXMuI3J0KXQudW5zZWxlY3QoKTt0aGlzLiNydC5jbGVhcigpO2Zvcihjb25zdCBlIG9mIHQpZS5pc0VtcHR5KCl8fCh0aGlzLiNydC5hZGQoZSksZS5zZWxlY3QoKSk7dGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOnRoaXMuaGFzU2VsZWN0aW9ufSl9c2VsZWN0QWxsKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jcnQpdC5jb21taXQoKTt0aGlzLiNJdCh0aGlzLiNJLnZhbHVlcygpKX11bnNlbGVjdEFsbCgpe2lmKCghdGhpcy4ja3x8KHRoaXMuI2suY29tbWl0T3JSZW1vdmUoKSx0aGlzLiNudD09PWwuTk9ORSkpJiZ0aGlzLmhhc1NlbGVjdGlvbil7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jcnQpdC51bnNlbGVjdCgpO3RoaXMuI3J0LmNsZWFyKCksdGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOiExfSl9fXRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyh0LGUsaT0hMSl7aWYoaXx8dGhpcy5jb21taXRPclJlbW92ZSgpLCF0aGlzLmhhc1NlbGVjdGlvbilyZXR1cm47dGhpcy4jY3RbMF0rPXQsdGhpcy4jY3RbMV0rPWU7Y29uc3RbcyxuXT10aGlzLiNjdCxyPVsuLi50aGlzLiNydF07dGhpcy4jZHQmJmNsZWFyVGltZW91dCh0aGlzLiNkdCksdGhpcy4jZHQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiNkdD1udWxsLHRoaXMuI2N0WzBdPXRoaXMuI2N0WzFdPTAsdGhpcy5hZGRDb21tYW5kcyh7Y21kOigpPT57Zm9yKGNvbnN0IHQgb2Ygcil0aGlzLiNJLmhhcyh0LmlkKSYmdC50cmFuc2xhdGVJblBhZ2UocyxuKX0sdW5kbzooKT0+e2Zvcihjb25zdCB0IG9mIHIpdGhpcy4jSS5oYXModC5pZCkmJnQudHJhbnNsYXRlSW5QYWdlKC1zLC1uKX0sbXVzdEV4ZWM6ITF9KX0pLDFlMyk7Zm9yKGNvbnN0IGkgb2YgcilpLnRyYW5zbGF0ZUluUGFnZSh0LGUpfXNldFVwRHJhZ1Nlc3Npb24oKXtpZih0aGlzLmhhc1NlbGVjdGlvbil7dGhpcy5kaXNhYmxlVXNlclNlbGVjdCghMCksdGhpcy4jej1uZXcgTWFwO2Zvcihjb25zdCB0IG9mIHRoaXMuI3J0KXRoaXMuI3ouc2V0KHQse3NhdmVkWDp0Lngsc2F2ZWRZOnQueSxzYXZlZFBhZ2VJbmRleDp0LnBhZ2VJbmRleCxuZXdYOjAsbmV3WTowLG5ld1BhZ2VJbmRleDotMX0pfX1lbmREcmFnU2Vzc2lvbigpe2lmKCF0aGlzLiN6KXJldHVybiExO3RoaXMuZGlzYWJsZVVzZXJTZWxlY3QoITEpO2NvbnN0IHQ9dGhpcy4jejt0aGlzLiN6PW51bGw7bGV0IGU9ITE7Zm9yKGNvbnN0W3t4OmkseTpzLHBhZ2VJbmRleDpufSxyXW9mIHQpci5uZXdYPWksci5uZXdZPXMsci5uZXdQYWdlSW5kZXg9bixlfHw9aSE9PXIuc2F2ZWRYfHxzIT09ci5zYXZlZFl8fG4hPT1yLnNhdmVkUGFnZUluZGV4O2lmKCFlKXJldHVybiExO2NvbnN0IGk9KHQsZSxpLHMpPT57aWYodGhpcy4jSS5oYXModC5pZCkpe2NvbnN0IG49dGhpcy4jUi5nZXQocyk7bj90Ll9zZXRQYXJlbnRBbmRQb3NpdGlvbihuLGUsaSk6KHQucGFnZUluZGV4PXMsdC54PWUsdC55PWkpfX07cmV0dXJuIHRoaXMuYWRkQ29tbWFuZHMoe2NtZDooKT0+e2Zvcihjb25zdFtlLHtuZXdYOnMsbmV3WTpuLG5ld1BhZ2VJbmRleDpyfV1vZiB0KWkoZSxzLG4scil9LHVuZG86KCk9Pntmb3IoY29uc3RbZSx7c2F2ZWRYOnMsc2F2ZWRZOm4sc2F2ZWRQYWdlSW5kZXg6cn1db2YgdClpKGUscyxuLHIpfSxtdXN0RXhlYzohMH0pLCEwfWRyYWdTZWxlY3RlZEVkaXRvcnModCxlKXtpZih0aGlzLiN6KWZvcihjb25zdCBpIG9mIHRoaXMuI3oua2V5cygpKWkuZHJhZyh0LGUpfXJlYnVpbGQodCl7aWYobnVsbD09PXQucGFyZW50KXtjb25zdCBlPXRoaXMuZ2V0TGF5ZXIodC5wYWdlSW5kZXgpO2U/KGUuY2hhbmdlUGFyZW50KHQpLGUuYWRkT3JSZWJ1aWxkKHQpKToodGhpcy5hZGRFZGl0b3IodCksdGhpcy5hZGRUb0Fubm90YXRpb25TdG9yYWdlKHQpLHQucmVidWlsZCgpKX1lbHNlIHQucGFyZW50LmFkZE9yUmVidWlsZCh0KX1nZXQgaXNFZGl0b3JIYW5kbGluZ0tleWJvYXJkKCl7cmV0dXJuIHRoaXMuZ2V0QWN0aXZlKCk/LnNob3VsZEdldEtleWJvYXJkRXZlbnRzKCl8fDE9PT10aGlzLiNydC5zaXplJiZ0aGlzLmZpcnN0U2VsZWN0ZWRFZGl0b3Iuc2hvdWxkR2V0S2V5Ym9hcmRFdmVudHMoKX1pc0FjdGl2ZSh0KXtyZXR1cm4gdGhpcy4jaz09PXR9Z2V0QWN0aXZlKCl7cmV0dXJuIHRoaXMuI2t9Z2V0TW9kZSgpe3JldHVybiB0aGlzLiNudH1nZXQgaW1hZ2VNYW5hZ2VyKCl7cmV0dXJuIEModGhpcywiaW1hZ2VNYW5hZ2VyIixuZXcgX3QpfWdldFNlbGVjdGlvbkJveGVzKHQpe2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGU9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7Zm9yKGxldCBpPTAscz1lLnJhbmdlQ291bnQ7aTxzO2krKylpZighdC5jb250YWlucyhlLmdldFJhbmdlQXQoaSkuY29tbW9uQW5jZXN0b3JDb250YWluZXIpKXJldHVybiBudWxsO2NvbnN0e3g6aSx5OnMsd2lkdGg6bixoZWlnaHQ6cn09dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgYTtzd2l0Y2godC5nZXRBdHRyaWJ1dGUoImRhdGEtbWFpbi1yb3RhdGlvbiIpKXtjYXNlIjkwIjphPSh0LGUsYSxvKT0+KHt4OihlLXMpL3IseToxLSh0K2EtaSkvbix3aWR0aDpvL3IsaGVpZ2h0OmEvbn0pO2JyZWFrO2Nhc2UiMTgwIjphPSh0LGUsYSxvKT0+KHt4OjEtKHQrYS1pKS9uLHk6MS0oZStvLXMpL3Isd2lkdGg6YS9uLGhlaWdodDpvL3J9KTticmVhaztjYXNlIjI3MCI6YT0odCxlLGEsbyk9Pih7eDoxLShlK28tcykvcix5Oih0LWkpL24sd2lkdGg6by9yLGhlaWdodDphL259KTticmVhaztkZWZhdWx0OmE9KHQsZSxhLG8pPT4oe3g6KHQtaSkvbix5OihlLXMpL3Isd2lkdGg6YS9uLGhlaWdodDpvL3J9KX1jb25zdCBvPVtdO2ZvcihsZXQgdD0wLGk9ZS5yYW5nZUNvdW50O3Q8aTt0Kyspe2NvbnN0IGk9ZS5nZXRSYW5nZUF0KHQpO2lmKCFpLmNvbGxhcHNlZClmb3IoY29uc3R7eDp0LHk6ZSx3aWR0aDpzLGhlaWdodDpufW9mIGkuZ2V0Q2xpZW50UmVjdHMoKSkwIT09cyYmMCE9PW4mJm8ucHVzaChhKHQsZSxzLG4pKX1yZXR1cm4gMD09PW8ubGVuZ3RoP251bGw6b31hZGRDaGFuZ2VkRXhpc3RpbmdBbm5vdGF0aW9uKHthbm5vdGF0aW9uRWxlbWVudElkOnQsaWQ6ZX0peyh0aGlzLiNMfHw9bmV3IE1hcCkuc2V0KHQsZSl9cmVtb3ZlQ2hhbmdlZEV4aXN0aW5nQW5ub3RhdGlvbih7YW5ub3RhdGlvbkVsZW1lbnRJZDp0fSl7dGhpcy4jTD8uZGVsZXRlKHQpfXJlbmRlckFubm90YXRpb25FbGVtZW50KHQpe2NvbnN0IGU9dGhpcy4jTD8uZ2V0KHQuZGF0YS5pZCk7aWYoIWUpcmV0dXJuO2NvbnN0IGk9dGhpcy4jRC5nZXRSYXdWYWx1ZShlKTtpJiYodGhpcy4jbnQhPT1sLk5PTkV8fGkuaGFzQmVlbk1vZGlmaWVkKSYmaS5yZW5kZXJBbm5vdGF0aW9uRWxlbWVudCh0KX19Y2xhc3MgTXR7I289bnVsbDsjT3Q9ITE7I050PW51bGw7I0J0PW51bGw7I3p0PW51bGw7I0h0PSExOyNqdD1udWxsOyNyPW51bGw7I1V0PW51bGw7IyR0PW51bGw7I1d0PSExO3N0YXRpYyNHdD1udWxsO3N0YXRpYyBfbDEwblByb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcih0KXt0aGlzLiNyPXQsdGhpcy4jV3Q9dC5fdWlNYW5hZ2VyLnVzZU5ld0FsdFRleHRGbG93LE10LiNHdHx8PU9iamVjdC5mcmVlemUoe2FkZGVkOiJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LWFkZGVkLWJ1dHRvbi1sYWJlbCIsbWlzc2luZzoicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1taXNzaW5nLWJ1dHRvbi1sYWJlbCIscmV2aWV3OiJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LXRvLXJldmlldy1idXR0b24tbGFiZWwifSl9c3RhdGljIGluaXRpYWxpemUodCl7TXQuX2wxMG5Qcm9taXNlfHw9dH1hc3luYyByZW5kZXIoKXtjb25zdCB0PXRoaXMuI050PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2xldCBlO3QuY2xhc3NOYW1lPSJhbHRUZXh0Iix0aGlzLiNXdD8odC5jbGFzc0xpc3QuYWRkKCJuZXciKSxlPWF3YWl0IE10Ll9sMTBuUHJvbWlzZS5nZXQoTXQuI0d0Lm1pc3NpbmcpKTplPWF3YWl0IE10Ll9sMTBuUHJvbWlzZS5nZXQoInBkZmpzLWVkaXRvci1hbHQtdGV4dC1idXR0b24tbGFiZWwiKSx0LnRleHRDb250ZW50PWUsdC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUpLHQudGFiSW5kZXg9IjAiO2NvbnN0IGk9dGhpcy4jci5fdWlNYW5hZ2VyLl9zaWduYWw7dC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQse3NpZ25hbDppfSksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsKHQ9PnQuc3RvcFByb3BhZ2F0aW9uKCkpLHtzaWduYWw6aX0pO2NvbnN0IHM9dD0+e3QucHJldmVudERlZmF1bHQoKSx0aGlzLiNyLl91aU1hbmFnZXIuZWRpdEFsdFRleHQodGhpcy4jciksdGhpcy4jV3QmJnRoaXMuI3IuX3JlcG9ydFRlbGVtZXRyeSh7YWN0aW9uOiJwZGZqcy5pbWFnZS5hbHRfdGV4dC5pbWFnZV9zdGF0dXNfbGFiZWxfY2xpY2tlZCIsZGF0YTp7bGFiZWw6dGhpcy4jVnR9fSl9O3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzLHtjYXB0dXJlOiEwLHNpZ25hbDppfSksdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwoZT0+e2UudGFyZ2V0PT09dCYmIkVudGVyIj09PWUua2V5JiYodGhpcy4jSHQ9ITAscyhlKSl9KSx7c2lnbmFsOml9KSxhd2FpdCB0aGlzLiNxdCgpLHR9Z2V0I1Z0KCl7cmV0dXJuKHRoaXMuI28/ImFkZGVkIjpudWxsPT09dGhpcy4jbyYmdGhpcy5ndWVzc2VkVGV4dCYmInJldmlldyIpfHwibWlzc2luZyJ9ZmluaXNoKCl7dGhpcy4jTnQmJih0aGlzLiNOdC5mb2N1cyh7Zm9jdXNWaXNpYmxlOnRoaXMuI0h0fSksdGhpcy4jSHQ9ITEpfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy4jV3Q/bnVsbD09PXRoaXMuI286IXRoaXMuI28mJiF0aGlzLiNPdH1oYXNEYXRhKCl7cmV0dXJuIHRoaXMuI1d0P251bGwhPT10aGlzLiNvfHwhIXRoaXMuI1V0OnRoaXMuaXNFbXB0eSgpfWdldCBndWVzc2VkVGV4dCgpe3JldHVybiB0aGlzLiNVdH1hc3luYyBzZXRHdWVzc2VkVGV4dCh0KXtudWxsPT09dGhpcy4jbyYmKHRoaXMuI1V0PXQsdGhpcy4jJHQ9YXdhaXQgTXQuX2wxMG5Qcm9taXNlLmdldCgicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1nZW5lcmF0ZWQtYWx0LXRleHQtd2l0aC1kaXNjbGFpbWVyIikoe2dlbmVyYXRlZEFsdFRleHQ6dH0pLHRoaXMuI3F0KCkpfXRvZ2dsZUFsdFRleHRCYWRnZSh0PSExKXtpZighdGhpcy4jV3R8fHRoaXMuI28pcmV0dXJuIHRoaXMuI2p0Py5yZW1vdmUoKSx2b2lkKHRoaXMuI2p0PW51bGwpO2lmKCF0aGlzLiNqdCl7Y29uc3QgdD10aGlzLiNqdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0ibm9BbHRUZXh0QmFkZ2UiLHRoaXMuI3IuZGl2LmFwcGVuZCh0KX10aGlzLiNqdC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCF0KX1zZXJpYWxpemUodCl7bGV0IGU9dGhpcy4jbztyZXR1cm4gdHx8dGhpcy4jVXQhPT1lfHwoZT10aGlzLiMkdCkse2FsdFRleHQ6ZSxkZWNvcmF0aXZlOnRoaXMuI090LGd1ZXNzZWRUZXh0OnRoaXMuI1V0LHRleHRXaXRoRGlzY2xhaW1lcjp0aGlzLiMkdH19Z2V0IGRhdGEoKXtyZXR1cm57YWx0VGV4dDp0aGlzLiNvLGRlY29yYXRpdmU6dGhpcy4jT3R9fXNldCBkYXRhKHthbHRUZXh0OnQsZGVjb3JhdGl2ZTplLGd1ZXNzZWRUZXh0OmksdGV4dFdpdGhEaXNjbGFpbWVyOnMsY2FuY2VsOm49ITF9KXtpJiYodGhpcy4jVXQ9aSx0aGlzLiMkdD1zKSx0aGlzLiNvPT09dCYmdGhpcy4jT3Q9PT1lfHwobnx8KHRoaXMuI289dCx0aGlzLiNPdD1lKSx0aGlzLiNxdCgpKX10b2dnbGUodD0hMSl7dGhpcy4jTnQmJighdCYmdGhpcy4jenQmJihjbGVhclRpbWVvdXQodGhpcy4jenQpLHRoaXMuI3p0PW51bGwpLHRoaXMuI050LmRpc2FibGVkPSF0KX1zaG93bigpe3RoaXMuI3IuX3JlcG9ydFRlbGVtZXRyeSh7YWN0aW9uOiJwZGZqcy5pbWFnZS5hbHRfdGV4dC5pbWFnZV9zdGF0dXNfbGFiZWxfZGlzcGxheWVkIixkYXRhOntsYWJlbDp0aGlzLiNWdH19KX1kZXN0cm95KCl7dGhpcy4jTnQ/LnJlbW92ZSgpLHRoaXMuI050PW51bGwsdGhpcy4jQnQ9bnVsbCx0aGlzLiNqdD8ucmVtb3ZlKCksdGhpcy4janQ9bnVsbH1hc3luYyNxdCgpe2NvbnN0IHQ9dGhpcy4jTnQ7aWYoIXQpcmV0dXJuO2lmKHRoaXMuI1d0KXtpZih0LmNsYXNzTGlzdC50b2dnbGUoImRvbmUiLCEhdGhpcy4jbyksTXQuX2wxMG5Qcm9taXNlLmdldChNdC4jR3RbdGhpcy4jVnRdKS50aGVuKChlPT57dC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUpO2Zvcihjb25zdCBpIG9mIHQuY2hpbGROb2RlcylpZihpLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2kudGV4dENvbnRlbnQ9ZTticmVha319KSksIXRoaXMuI28pcmV0dXJuIHZvaWQgdGhpcy4jQnQ/LnJlbW92ZSgpfWVsc2V7aWYoIXRoaXMuI28mJiF0aGlzLiNPdClyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKCJkb25lIiksdm9pZCB0aGlzLiNCdD8ucmVtb3ZlKCk7dC5jbGFzc0xpc3QuYWRkKCJkb25lIiksTXQuX2wxMG5Qcm9taXNlLmdldCgicGRmanMtZWRpdG9yLWFsdC10ZXh0LWVkaXQtYnV0dG9uLWxhYmVsIikudGhlbigoZT0+e3Quc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlKX0pKX1sZXQgZT10aGlzLiNCdDtpZighZSl7dGhpcy4jQnQ9ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksZS5jbGFzc05hbWU9InRvb2x0aXAiLGUuc2V0QXR0cmlidXRlKCJyb2xlIiwidG9vbHRpcCIpLGUuaWQ9YGFsdC10ZXh0LXRvb2x0aXAtJHt0aGlzLiNyLmlkfWA7Y29uc3QgaT0xMDAscz10aGlzLiNyLl91aU1hbmFnZXIuX3NpZ25hbDtzLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKCk9PntjbGVhclRpbWVvdXQodGhpcy4jenQpLHRoaXMuI3p0PW51bGx9KSx7b25jZTohMH0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKCgpPT57dGhpcy4jenQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiN6dD1udWxsLHRoaXMuI0J0LmNsYXNzTGlzdC5hZGQoInNob3ciKSx0aGlzLiNyLl9yZXBvcnRUZWxlbWV0cnkoe2FjdGlvbjoiYWx0X3RleHRfdG9vbHRpcCJ9KX0pLGkpfSkse3NpZ25hbDpzfSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKCk9Pnt0aGlzLiN6dCYmKGNsZWFyVGltZW91dCh0aGlzLiN6dCksdGhpcy4jenQ9bnVsbCksdGhpcy4jQnQ/LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKX0pLHtzaWduYWw6c30pfWUuaW5uZXJUZXh0PXRoaXMuI090P2F3YWl0IE10Ll9sMTBuUHJvbWlzZS5nZXQoInBkZmpzLWVkaXRvci1hbHQtdGV4dC1kZWNvcmF0aXZlLXRvb2x0aXAiKTp0aGlzLiNvLGUucGFyZW50Tm9kZXx8dC5hcHBlbmQoZSk7Y29uc3QgaT10aGlzLiNyLmdldEltYWdlRm9yQWx0VGV4dCgpO2k/LnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsZS5pZCl9fWNsYXNzIGt0eyNYdD1udWxsOyNLdD1udWxsOyNvPW51bGw7I1l0PSExOyNRdD0hMTsjSnQ9bnVsbDsjWnQ9bnVsbDsjdGU9bnVsbDsjZWU9IiI7I2llPSExOyNzZT1udWxsOyNuZT0hMTsjcmU9ITE7I2FlPSExOyNvZT1udWxsOyNoZT0wOyNsZT0wOyNjZT1udWxsO19lZGl0VG9vbGJhcj1udWxsO19pbml0aWFsT3B0aW9ucz1PYmplY3QuY3JlYXRlKG51bGwpO19pbml0aWFsRGF0YT1udWxsO19pc1Zpc2libGU9ITA7X3VpTWFuYWdlcj1udWxsO19mb2N1c0V2ZW50c0FsbG93ZWQ9ITA7c3RhdGljIF9sMTBuUHJvbWlzZT1udWxsO3N0YXRpYyBfbDEwblJlc2l6ZXI9bnVsbDsjZGU9ITE7I3VlPWt0Ll96SW5kZXgrKztzdGF0aWMgX2JvcmRlckxpbmVXaWR0aD0tMTtzdGF0aWMgX2NvbG9yTWFuYWdlcj1uZXcgU3Q7c3RhdGljIF96SW5kZXg9MTtzdGF0aWMgX3RlbGVtZXRyeVRpbWVvdXQ9MWUzO3N0YXRpYyBnZXQgX3Jlc2l6ZXJLZXlib2FyZE1hbmFnZXIoKXtjb25zdCB0PWt0LnByb3RvdHlwZS5fcmVzaXplV2l0aEtleWJvYXJkLGU9VHQuVFJBTlNMQVRFX1NNQUxMLGk9VHQuVFJBTlNMQVRFX0JJRztyZXR1cm4gQyh0aGlzLCJfcmVzaXplcktleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJBcnJvd0xlZnQiLCJtYWMrQXJyb3dMZWZ0Il0sdCx7YXJnczpbLWUsMF19XSxbWyJjdHJsK0Fycm93TGVmdCIsIm1hYytzaGlmdCtBcnJvd0xlZnQiXSx0LHthcmdzOlstaSwwXX1dLFtbIkFycm93UmlnaHQiLCJtYWMrQXJyb3dSaWdodCJdLHQse2FyZ3M6W2UsMF19XSxbWyJjdHJsK0Fycm93UmlnaHQiLCJtYWMrc2hpZnQrQXJyb3dSaWdodCJdLHQse2FyZ3M6W2ksMF19XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0LHthcmdzOlswLC1lXX1dLFtbImN0cmwrQXJyb3dVcCIsIm1hYytzaGlmdCtBcnJvd1VwIl0sdCx7YXJnczpbMCwtaV19XSxbWyJBcnJvd0Rvd24iLCJtYWMrQXJyb3dEb3duIl0sdCx7YXJnczpbMCxlXX1dLFtbImN0cmwrQXJyb3dEb3duIiwibWFjK3NoaWZ0K0Fycm93RG93biJdLHQse2FyZ3M6WzAsaV19XSxbWyJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sa3QucHJvdG90eXBlLl9zdG9wUmVzaXppbmdXaXRoS2V5Ym9hcmRdXSkpfWNvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXQucGFyZW50LHRoaXMuaWQ9dC5pZCx0aGlzLndpZHRoPXRoaXMuaGVpZ2h0PW51bGwsdGhpcy5wYWdlSW5kZXg9dC5wYXJlbnQucGFnZUluZGV4LHRoaXMubmFtZT10Lm5hbWUsdGhpcy5kaXY9bnVsbCx0aGlzLl91aU1hbmFnZXI9dC51aU1hbmFnZXIsdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkPW51bGwsdGhpcy5fd2lsbEtlZXBBc3BlY3RSYXRpbz0hMSx0aGlzLl9pbml0aWFsT3B0aW9ucy5pc0NlbnRlcmVkPXQuaXNDZW50ZXJlZCx0aGlzLl9zdHJ1Y3RUcmVlUGFyZW50SWQ9bnVsbDtjb25zdHtyb3RhdGlvbjplLHJhd0RpbXM6e3BhZ2VXaWR0aDppLHBhZ2VIZWlnaHQ6cyxwYWdlWDpuLHBhZ2VZOnJ9fT10aGlzLnBhcmVudC52aWV3cG9ydDt0aGlzLnJvdGF0aW9uPWUsdGhpcy5wYWdlUm90YXRpb249KDM2MCtlLXRoaXMuX3VpTWFuYWdlci52aWV3UGFyYW1ldGVycy5yb3RhdGlvbiklMzYwLHRoaXMucGFnZURpbWVuc2lvbnM9W2ksc10sdGhpcy5wYWdlVHJhbnNsYXRpb249W24scl07Y29uc3RbYSxvXT10aGlzLnBhcmVudERpbWVuc2lvbnM7dGhpcy54PXQueC9hLHRoaXMueT10Lnkvbyx0aGlzLmlzQXR0YWNoZWRUb0RPTT0hMSx0aGlzLmRlbGV0ZWQ9ITF9Z2V0IGVkaXRvclR5cGUoKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yLl90eXBlfXN0YXRpYyBnZXQgX2RlZmF1bHRMaW5lQ29sb3IoKXtyZXR1cm4gQyh0aGlzLCJfZGVmYXVsdExpbmVDb2xvciIsdGhpcy5fY29sb3JNYW5hZ2VyLmdldEhleENvZGUoIkNhbnZhc1RleHQiKSl9c3RhdGljIGRlbGV0ZUFubm90YXRpb25FbGVtZW50KHQpe2NvbnN0IGU9bmV3IEl0KHtpZDp0LnBhcmVudC5nZXROZXh0SWQoKSxwYXJlbnQ6dC5wYXJlbnQsdWlNYW5hZ2VyOnQuX3VpTWFuYWdlcn0pO2UuYW5ub3RhdGlvbkVsZW1lbnRJZD10LmFubm90YXRpb25FbGVtZW50SWQsZS5kZWxldGVkPSEwLGUuX3VpTWFuYWdlci5hZGRUb0Fubm90YXRpb25TdG9yYWdlKGUpfXN0YXRpYyBpbml0aWFsaXplKHQsZSxpKXtpZihrdC5fbDEwblJlc2l6ZXJ8fD1PYmplY3QuZnJlZXplKHt0b3BMZWZ0OiJwZGZqcy1lZGl0b3ItcmVzaXplci10b3AtbGVmdCIsdG9wTWlkZGxlOiJwZGZqcy1lZGl0b3ItcmVzaXplci10b3AtbWlkZGxlIix0b3BSaWdodDoicGRmanMtZWRpdG9yLXJlc2l6ZXItdG9wLXJpZ2h0IixtaWRkbGVSaWdodDoicGRmanMtZWRpdG9yLXJlc2l6ZXItbWlkZGxlLXJpZ2h0Iixib3R0b21SaWdodDoicGRmanMtZWRpdG9yLXJlc2l6ZXItYm90dG9tLXJpZ2h0Iixib3R0b21NaWRkbGU6InBkZmpzLWVkaXRvci1yZXNpemVyLWJvdHRvbS1taWRkbGUiLGJvdHRvbUxlZnQ6InBkZmpzLWVkaXRvci1yZXNpemVyLWJvdHRvbS1sZWZ0IixtaWRkbGVMZWZ0OiJwZGZqcy1lZGl0b3ItcmVzaXplci1taWRkbGUtbGVmdCJ9KSxrdC5fbDEwblByb21pc2V8fD1uZXcgTWFwKFsuLi5bInBkZmpzLWVkaXRvci1hbHQtdGV4dC1idXR0b24tbGFiZWwiLCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtZWRpdC1idXR0b24tbGFiZWwiLCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtZGVjb3JhdGl2ZS10b29sdGlwIiwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1hZGRlZC1idXR0b24tbGFiZWwiLCJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LW1pc3NpbmctYnV0dG9uLWxhYmVsIiwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC10by1yZXZpZXctYnV0dG9uLWxhYmVsIl0ubWFwKChlPT5bZSx0LmdldChlKV0pKSwuLi5bInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtZ2VuZXJhdGVkLWFsdC10ZXh0LXdpdGgtZGlzY2xhaW1lciJdLm1hcCgoZT0+W2UsdC5nZXQuYmluZCh0LGUpXSkpXSksaT8uc3RyaW5ncylmb3IoY29uc3QgZSBvZiBpLnN0cmluZ3Mpa3QuX2wxMG5Qcm9taXNlLnNldChlLHQuZ2V0KGUpKTtpZigtMSE9PWt0Ll9ib3JkZXJMaW5lV2lkdGgpcmV0dXJuO2NvbnN0IHM9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO2t0Ll9ib3JkZXJMaW5lV2lkdGg9cGFyc2VGbG9hdChzLmdldFByb3BlcnR5VmFsdWUoIi0tb3V0bGluZS13aWR0aCIpKXx8MH1zdGF0aWMgdXBkYXRlRGVmYXVsdFBhcmFtcyh0LGUpe31zdGF0aWMgZ2V0IGRlZmF1bHRQcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bXX1zdGF0aWMgaXNIYW5kbGluZ01pbWVGb3JQYXN0aW5nKHQpe3JldHVybiExfXN0YXRpYyBwYXN0ZSh0LGUpe3goIk5vdCBpbXBsZW1lbnRlZCIpfWdldCBwcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bXX1nZXQgX2lzRHJhZ2dhYmxlKCl7cmV0dXJuIHRoaXMuI2RlfXNldCBfaXNEcmFnZ2FibGUodCl7dGhpcy4jZGU9dCx0aGlzLmRpdj8uY2xhc3NMaXN0LnRvZ2dsZSgiZHJhZ2dhYmxlIix0KX1nZXQgaXNFbnRlckhhbmRsZWQoKXtyZXR1cm4hMH1jZW50ZXIoKXtjb25zdFt0LGVdPXRoaXMucGFnZURpbWVuc2lvbnM7c3dpdGNoKHRoaXMucGFyZW50Um90YXRpb24pe2Nhc2UgOTA6dGhpcy54LT10aGlzLmhlaWdodCplLygyKnQpLHRoaXMueSs9dGhpcy53aWR0aCp0LygyKmUpO2JyZWFrO2Nhc2UgMTgwOnRoaXMueCs9dGhpcy53aWR0aC8yLHRoaXMueSs9dGhpcy5oZWlnaHQvMjticmVhaztjYXNlIDI3MDp0aGlzLngrPXRoaXMuaGVpZ2h0KmUvKDIqdCksdGhpcy55LT10aGlzLndpZHRoKnQvKDIqZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLngtPXRoaXMud2lkdGgvMix0aGlzLnktPXRoaXMuaGVpZ2h0LzJ9dGhpcy5maXhBbmRTZXRQb3NpdGlvbigpfWFkZENvbW1hbmRzKHQpe3RoaXMuX3VpTWFuYWdlci5hZGRDb21tYW5kcyh0KX1nZXQgY3VycmVudExheWVyKCl7cmV0dXJuIHRoaXMuX3VpTWFuYWdlci5jdXJyZW50TGF5ZXJ9c2V0SW5CYWNrZ3JvdW5kKCl7dGhpcy5kaXYuc3R5bGUuekluZGV4PTB9c2V0SW5Gb3JlZ3JvdW5kKCl7dGhpcy5kaXYuc3R5bGUuekluZGV4PXRoaXMuI3VlfXNldFBhcmVudCh0KXtudWxsIT09dD8odGhpcy5wYWdlSW5kZXg9dC5wYWdlSW5kZXgsdGhpcy5wYWdlRGltZW5zaW9ucz10LnBhZ2VEaW1lbnNpb25zKTp0aGlzLiNwZSgpLHRoaXMucGFyZW50PXR9Zm9jdXNpbih0KXt0aGlzLl9mb2N1c0V2ZW50c0FsbG93ZWQmJih0aGlzLiNpZT90aGlzLiNpZT0hMTp0aGlzLnBhcmVudC5zZXRTZWxlY3RlZCh0aGlzKSl9Zm9jdXNvdXQodCl7aWYoIXRoaXMuX2ZvY3VzRXZlbnRzQWxsb3dlZClyZXR1cm47aWYoIXRoaXMuaXNBdHRhY2hlZFRvRE9NKXJldHVybjtjb25zdCBlPXQucmVsYXRlZFRhcmdldDtlPy5jbG9zZXN0KGAjJHt0aGlzLmlkfWApfHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucGFyZW50Py5pc011bHRpcGxlU2VsZWN0aW9ufHx0aGlzLmNvbW1pdE9yUmVtb3ZlKCkpfWNvbW1pdE9yUmVtb3ZlKCl7dGhpcy5pc0VtcHR5KCk/dGhpcy5yZW1vdmUoKTp0aGlzLmNvbW1pdCgpfWNvbW1pdCgpe3RoaXMuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSgpfWFkZFRvQW5ub3RhdGlvblN0b3JhZ2UoKXt0aGlzLl91aU1hbmFnZXIuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSh0aGlzKX1zZXRBdCh0LGUsaSxzKXtjb25zdFtuLHJdPXRoaXMucGFyZW50RGltZW5zaW9ucztbaSxzXT10aGlzLnNjcmVlblRvUGFnZVRyYW5zbGF0aW9uKGkscyksdGhpcy54PSh0K2kpL24sdGhpcy55PShlK3MpL3IsdGhpcy5maXhBbmRTZXRQb3NpdGlvbigpfSNnZShbdCxlXSxpLHMpe1tpLHNdPXRoaXMuc2NyZWVuVG9QYWdlVHJhbnNsYXRpb24oaSxzKSx0aGlzLngrPWkvdCx0aGlzLnkrPXMvZSx0aGlzLmZpeEFuZFNldFBvc2l0aW9uKCl9dHJhbnNsYXRlKHQsZSl7dGhpcy4jZ2UodGhpcy5wYXJlbnREaW1lbnNpb25zLHQsZSl9dHJhbnNsYXRlSW5QYWdlKHQsZSl7dGhpcy4jc2V8fD1bdGhpcy54LHRoaXMueV0sdGhpcy4jZ2UodGhpcy5wYWdlRGltZW5zaW9ucyx0LGUpLHRoaXMuZGl2LnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCJ9KX1kcmFnKHQsZSl7dGhpcy4jc2V8fD1bdGhpcy54LHRoaXMueV07Y29uc3RbaSxzXT10aGlzLnBhcmVudERpbWVuc2lvbnM7aWYodGhpcy54Kz10L2ksdGhpcy55Kz1lL3MsdGhpcy5wYXJlbnQmJih0aGlzLng8MHx8dGhpcy54PjF8fHRoaXMueTwwfHx0aGlzLnk+MSkpe2NvbnN0e3g6dCx5OmV9PXRoaXMuZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMucGFyZW50LmZpbmROZXdQYXJlbnQodGhpcyx0LGUpJiYodGhpcy54LT1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55LT1NYXRoLmZsb29yKHRoaXMueSkpfWxldHt4Om4seTpyfT10aGlzO2NvbnN0W2Esb109dGhpcy5nZXRCYXNlVHJhbnNsYXRpb24oKTtuKz1hLHIrPW8sdGhpcy5kaXYuc3R5bGUubGVmdD1gJHsoMTAwKm4pLnRvRml4ZWQoMil9JWAsdGhpcy5kaXYuc3R5bGUudG9wPWAkeygxMDAqcikudG9GaXhlZCgyKX0lYCx0aGlzLmRpdi5zY3JvbGxJbnRvVmlldyh7YmxvY2s6Im5lYXJlc3QifSl9Z2V0IF9oYXNCZWVuTW92ZWQoKXtyZXR1cm4hIXRoaXMuI3NlJiYodGhpcy4jc2VbMF0hPT10aGlzLnh8fHRoaXMuI3NlWzFdIT09dGhpcy55KX1nZXRCYXNlVHJhbnNsYXRpb24oKXtjb25zdFt0LGVdPXRoaXMucGFyZW50RGltZW5zaW9ucyx7X2JvcmRlckxpbmVXaWR0aDppfT1rdCxzPWkvdCxuPWkvZTtzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSA5MDpyZXR1cm5bLXMsbl07Y2FzZSAxODA6cmV0dXJuW3Msbl07Y2FzZSAyNzA6cmV0dXJuW3MsLW5dO2RlZmF1bHQ6cmV0dXJuWy1zLC1uXX19Z2V0IF9tdXN0Rml4UG9zaXRpb24oKXtyZXR1cm4hMH1maXhBbmRTZXRQb3NpdGlvbih0PXRoaXMucm90YXRpb24pe2NvbnN0W2UsaV09dGhpcy5wYWdlRGltZW5zaW9ucztsZXR7eDpzLHk6bix3aWR0aDpyLGhlaWdodDphfT10aGlzO2lmKHIqPWUsYSo9aSxzKj1lLG4qPWksdGhpcy5fbXVzdEZpeFBvc2l0aW9uKXN3aXRjaCh0KXtjYXNlIDA6cz1NYXRoLm1heCgwLE1hdGgubWluKGUtcixzKSksbj1NYXRoLm1heCgwLE1hdGgubWluKGktYSxuKSk7YnJlYWs7Y2FzZSA5MDpzPU1hdGgubWF4KDAsTWF0aC5taW4oZS1hLHMpKSxuPU1hdGgubWluKGksTWF0aC5tYXgocixuKSk7YnJlYWs7Y2FzZSAxODA6cz1NYXRoLm1pbihlLE1hdGgubWF4KHIscykpLG49TWF0aC5taW4oaSxNYXRoLm1heChhLG4pKTticmVhaztjYXNlIDI3MDpzPU1hdGgubWluKGUsTWF0aC5tYXgoYSxzKSksbj1NYXRoLm1heCgwLE1hdGgubWluKGktcixuKSl9dGhpcy54PXMvPWUsdGhpcy55PW4vPWk7Y29uc3RbbyxoXT10aGlzLmdldEJhc2VUcmFuc2xhdGlvbigpO3MrPW8sbis9aDtjb25zdHtzdHlsZTpsfT10aGlzLmRpdjtsLmxlZnQ9YCR7KDEwMCpzKS50b0ZpeGVkKDIpfSVgLGwudG9wPWAkeygxMDAqbikudG9GaXhlZCgyKX0lYCx0aGlzLm1vdmVJbkRPTSgpfXN0YXRpYyNmZSh0LGUsaSl7c3dpdGNoKGkpe2Nhc2UgOTA6cmV0dXJuW2UsLXRdO2Nhc2UgMTgwOnJldHVyblstdCwtZV07Y2FzZSAyNzA6cmV0dXJuWy1lLHRdO2RlZmF1bHQ6cmV0dXJuW3QsZV19fXNjcmVlblRvUGFnZVRyYW5zbGF0aW9uKHQsZSl7cmV0dXJuIGt0LiNmZSh0LGUsdGhpcy5wYXJlbnRSb3RhdGlvbil9cGFnZVRyYW5zbGF0aW9uVG9TY3JlZW4odCxlKXtyZXR1cm4ga3QuI2ZlKHQsZSwzNjAtdGhpcy5wYXJlbnRSb3RhdGlvbil9I21lKHQpe3N3aXRjaCh0KXtjYXNlIDkwOntjb25zdFt0LGVdPXRoaXMucGFnZURpbWVuc2lvbnM7cmV0dXJuWzAsLXQvZSxlL3QsMF19Y2FzZSAxODA6cmV0dXJuWy0xLDAsMCwtMV07Y2FzZSAyNzA6e2NvbnN0W3QsZV09dGhpcy5wYWdlRGltZW5zaW9ucztyZXR1cm5bMCx0L2UsLWUvdCwwXX1kZWZhdWx0OnJldHVyblsxLDAsMCwxXX19Z2V0IHBhcmVudFNjYWxlKCl7cmV0dXJuIHRoaXMuX3VpTWFuYWdlci52aWV3UGFyYW1ldGVycy5yZWFsU2NhbGV9Z2V0IHBhcmVudFJvdGF0aW9uKCl7cmV0dXJuKHRoaXMuX3VpTWFuYWdlci52aWV3UGFyYW1ldGVycy5yb3RhdGlvbit0aGlzLnBhZ2VSb3RhdGlvbiklMzYwfWdldCBwYXJlbnREaW1lbnNpb25zKCl7Y29uc3R7cGFyZW50U2NhbGU6dCxwYWdlRGltZW5zaW9uczpbZSxpXX09dGhpcztyZXR1cm5bZSp0LGkqdF19c2V0RGltcyh0LGUpe2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMuZGl2LnN0eWxlLndpZHRoPWAkeygxMDAqdC9pKS50b0ZpeGVkKDIpfSVgLHRoaXMuI1F0fHwodGhpcy5kaXYuc3R5bGUuaGVpZ2h0PWAkeygxMDAqZS9zKS50b0ZpeGVkKDIpfSVgKX1maXhEaW1zKCl7Y29uc3R7c3R5bGU6dH09dGhpcy5kaXYse2hlaWdodDplLHdpZHRoOml9PXQscz1pLmVuZHNXaXRoKCIlIiksbj0hdGhpcy4jUXQmJmUuZW5kc1dpdGgoIiUiKTtpZihzJiZuKXJldHVybjtjb25zdFtyLGFdPXRoaXMucGFyZW50RGltZW5zaW9ucztzfHwodC53aWR0aD1gJHsoMTAwKnBhcnNlRmxvYXQoaSkvcikudG9GaXhlZCgyKX0lYCksdGhpcy4jUXR8fG58fCh0LmhlaWdodD1gJHsoMTAwKnBhcnNlRmxvYXQoZSkvYSkudG9GaXhlZCgyKX0lYCl9Z2V0SW5pdGlhbFRyYW5zbGF0aW9uKCl7cmV0dXJuWzAsMF19I2JlKCl7aWYodGhpcy4jSnQpcmV0dXJuO3RoaXMuI0p0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuI0p0LmNsYXNzTGlzdC5hZGQoInJlc2l6ZXJzIik7Y29uc3QgdD10aGlzLl93aWxsS2VlcEFzcGVjdFJhdGlvP1sidG9wTGVmdCIsInRvcFJpZ2h0IiwiYm90dG9tUmlnaHQiLCJib3R0b21MZWZ0Il06WyJ0b3BMZWZ0IiwidG9wTWlkZGxlIiwidG9wUmlnaHQiLCJtaWRkbGVSaWdodCIsImJvdHRvbVJpZ2h0IiwiYm90dG9tTWlkZGxlIiwiYm90dG9tTGVmdCIsIm1pZGRsZUxlZnQiXSxlPXRoaXMuX3VpTWFuYWdlci5fc2lnbmFsO2Zvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy4jSnQuYXBwZW5kKHQpLHQuY2xhc3NMaXN0LmFkZCgicmVzaXplciIsaSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtcmVzaXplci1uYW1lIixpKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiN2ZS5iaW5kKHRoaXMsaSkse3NpZ25hbDplfSksdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQse3NpZ25hbDplfSksdC50YWJJbmRleD0tMX10aGlzLmRpdi5wcmVwZW5kKHRoaXMuI0p0KX0jdmUodCxlKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3R7aXNNYWM6aX09Ti5wbGF0Zm9ybTtpZigwIT09ZS5idXR0b258fGUuY3RybEtleSYmaSlyZXR1cm47dGhpcy4jbz8udG9nZ2xlKCExKTtjb25zdCBzPXRoaXMuX2lzRHJhZ2dhYmxlO3RoaXMuX2lzRHJhZ2dhYmxlPSExO2NvbnN0IG49bmV3IEFib3J0Q29udHJvbGxlcixyPXRoaXMuX3VpTWFuYWdlci5jb21iaW5lZFNpZ25hbChuKTt0aGlzLnBhcmVudC50b2dnbGVQb2ludGVyRXZlbnRzKCExKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuI3llLmJpbmQodGhpcyx0KSx7cGFzc2l2ZTohMCxjYXB0dXJlOiEwLHNpZ25hbDpyfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixsdCx7c2lnbmFsOnJ9KTtjb25zdCBhPXRoaXMueCxvPXRoaXMueSxoPXRoaXMud2lkdGgsbD10aGlzLmhlaWdodCxjPXRoaXMucGFyZW50LmRpdi5zdHlsZS5jdXJzb3IsZD10aGlzLmRpdi5zdHlsZS5jdXJzb3I7dGhpcy5kaXYuc3R5bGUuY3Vyc29yPXRoaXMucGFyZW50LmRpdi5zdHlsZS5jdXJzb3I9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZS50YXJnZXQpLmN1cnNvcjtjb25zdCB1PSgpPT57bi5hYm9ydCgpLHRoaXMucGFyZW50LnRvZ2dsZVBvaW50ZXJFdmVudHMoITApLHRoaXMuI28/LnRvZ2dsZSghMCksdGhpcy5faXNEcmFnZ2FibGU9cyx0aGlzLnBhcmVudC5kaXYuc3R5bGUuY3Vyc29yPWMsdGhpcy5kaXYuc3R5bGUuY3Vyc29yPWQsdGhpcy4jQWUoYSxvLGgsbCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHUse3NpZ25hbDpyfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHUse3NpZ25hbDpyfSl9I0FlKHQsZSxpLHMpe2NvbnN0IG49dGhpcy54LHI9dGhpcy55LGE9dGhpcy53aWR0aCxvPXRoaXMuaGVpZ2h0O249PT10JiZyPT09ZSYmYT09PWkmJm89PT1zfHx0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9Pnt0aGlzLndpZHRoPWEsdGhpcy5oZWlnaHQ9byx0aGlzLng9bix0aGlzLnk9cjtjb25zdFt0LGVdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldERpbXModCphLGUqbyksdGhpcy5maXhBbmRTZXRQb3NpdGlvbigpfSx1bmRvOigpPT57dGhpcy53aWR0aD1pLHRoaXMuaGVpZ2h0PXMsdGhpcy54PXQsdGhpcy55PWU7Y29uc3RbbixyXT10aGlzLnBhcmVudERpbWVuc2lvbnM7dGhpcy5zZXREaW1zKG4qaSxyKnMpLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX0sbXVzdEV4ZWM6ITB9KX0jeWUodCxlKXtjb25zdFtpLHNdPXRoaXMucGFyZW50RGltZW5zaW9ucyxuPXRoaXMueCxyPXRoaXMueSxhPXRoaXMud2lkdGgsbz10aGlzLmhlaWdodCxoPWt0Lk1JTl9TSVpFL2ksbD1rdC5NSU5fU0laRS9zLGM9dD0+TWF0aC5yb3VuZCgxZTQqdCkvMWU0LGQ9dGhpcy4jbWUodGhpcy5yb3RhdGlvbiksdT0odCxlKT0+W2RbMF0qdCtkWzJdKmUsZFsxXSp0K2RbM10qZV0scD10aGlzLiNtZSgzNjAtdGhpcy5yb3RhdGlvbik7bGV0IGcsZixtPSExLGI9ITE7c3dpdGNoKHQpe2Nhc2UidG9wTGVmdCI6bT0hMCxnPSh0LGUpPT5bMCwwXSxmPSh0LGUpPT5bdCxlXTticmVhaztjYXNlInRvcE1pZGRsZSI6Zz0odCxlKT0+W3QvMiwwXSxmPSh0LGUpPT5bdC8yLGVdO2JyZWFrO2Nhc2UidG9wUmlnaHQiOm09ITAsZz0odCxlKT0+W3QsMF0sZj0odCxlKT0+WzAsZV07YnJlYWs7Y2FzZSJtaWRkbGVSaWdodCI6Yj0hMCxnPSh0LGUpPT5bdCxlLzJdLGY9KHQsZSk9PlswLGUvMl07YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6bT0hMCxnPSh0LGUpPT5bdCxlXSxmPSh0LGUpPT5bMCwwXTticmVhaztjYXNlImJvdHRvbU1pZGRsZSI6Zz0odCxlKT0+W3QvMixlXSxmPSh0LGUpPT5bdC8yLDBdO2JyZWFrO2Nhc2UiYm90dG9tTGVmdCI6bT0hMCxnPSh0LGUpPT5bMCxlXSxmPSh0LGUpPT5bdCwwXTticmVhaztjYXNlIm1pZGRsZUxlZnQiOmI9ITAsZz0odCxlKT0+WzAsZS8yXSxmPSh0LGUpPT5bdCxlLzJdfWNvbnN0IHY9ZyhhLG8pLHk9ZihhLG8pO2xldCBBPXUoLi4ueSk7Y29uc3Qgdz1jKG4rQVswXSkseD1jKHIrQVsxXSk7bGV0IF89MSxFPTEsW0MsU109dGhpcy5zY3JlZW5Ub1BhZ2VUcmFuc2xhdGlvbihlLm1vdmVtZW50WCxlLm1vdmVtZW50WSk7dmFyIFQsTTtpZihbQyxTXT0oVD1DL2ksTT1TL3MsW3BbMF0qVCtwWzJdKk0scFsxXSpUK3BbM10qTV0pLG0pe2NvbnN0IHQ9TWF0aC5oeXBvdChhLG8pO189RT1NYXRoLm1heChNYXRoLm1pbihNYXRoLmh5cG90KHlbMF0tdlswXS1DLHlbMV0tdlsxXS1TKS90LDEvYSwxL28pLGgvYSxsL28pfWVsc2UgYj9fPU1hdGgubWF4KGgsTWF0aC5taW4oMSxNYXRoLmFicyh5WzBdLXZbMF0tQykpKS9hOkU9TWF0aC5tYXgobCxNYXRoLm1pbigxLE1hdGguYWJzKHlbMV0tdlsxXS1TKSkpL287Y29uc3Qgaz1jKGEqXyksST1jKG8qRSk7QT11KC4uLmYoayxJKSk7Y29uc3QgUj13LUFbMF0sUD14LUFbMV07dGhpcy53aWR0aD1rLHRoaXMuaGVpZ2h0PUksdGhpcy54PVIsdGhpcy55PVAsdGhpcy5zZXREaW1zKGkqayxzKkkpLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX1hbHRUZXh0RmluaXNoKCl7dGhpcy4jbz8uZmluaXNoKCl9YXN5bmMgYWRkRWRpdFRvb2xiYXIoKXtyZXR1cm4gdGhpcy5fZWRpdFRvb2xiYXJ8fHRoaXMuI3JlfHwodGhpcy5fZWRpdFRvb2xiYXI9bmV3IHl0KHRoaXMpLHRoaXMuZGl2LmFwcGVuZCh0aGlzLl9lZGl0VG9vbGJhci5yZW5kZXIoKSksdGhpcy4jbyYmYXdhaXQgdGhpcy5fZWRpdFRvb2xiYXIuYWRkQWx0VGV4dCh0aGlzLiNvKSksdGhpcy5fZWRpdFRvb2xiYXJ9cmVtb3ZlRWRpdFRvb2xiYXIoKXt0aGlzLl9lZGl0VG9vbGJhciYmKHRoaXMuX2VkaXRUb29sYmFyLnJlbW92ZSgpLHRoaXMuX2VkaXRUb29sYmFyPW51bGwsdGhpcy4jbz8uZGVzdHJveSgpKX1hZGRDb250YWluZXIodCl7Y29uc3QgZT10aGlzLl9lZGl0VG9vbGJhcj8uZGl2O2U/ZS5iZWZvcmUodCk6dGhpcy5kaXYuYXBwZW5kKHQpfWdldENsaWVudERpbWVuc2lvbnMoKXtyZXR1cm4gdGhpcy5kaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9YXN5bmMgYWRkQWx0VGV4dEJ1dHRvbigpe3RoaXMuI298fChNdC5pbml0aWFsaXplKGt0Ll9sMTBuUHJvbWlzZSksdGhpcy4jbz1uZXcgTXQodGhpcyksdGhpcy4jWHQmJih0aGlzLiNvLmRhdGE9dGhpcy4jWHQsdGhpcy4jWHQ9bnVsbCksYXdhaXQgdGhpcy5hZGRFZGl0VG9vbGJhcigpKX1nZXQgYWx0VGV4dERhdGEoKXtyZXR1cm4gdGhpcy4jbz8uZGF0YX1zZXQgYWx0VGV4dERhdGEodCl7dGhpcy4jbyYmKHRoaXMuI28uZGF0YT10KX1nZXQgZ3Vlc3NlZEFsdFRleHQoKXtyZXR1cm4gdGhpcy4jbz8uZ3Vlc3NlZFRleHR9YXN5bmMgc2V0R3Vlc3NlZEFsdFRleHQodCl7YXdhaXQodGhpcy4jbz8uc2V0R3Vlc3NlZFRleHQodCkpfXNlcmlhbGl6ZUFsdFRleHQodCl7cmV0dXJuIHRoaXMuI28/LnNlcmlhbGl6ZSh0KX1oYXNBbHRUZXh0KCl7cmV0dXJuISF0aGlzLiNvJiYhdGhpcy4jby5pc0VtcHR5KCl9aGFzQWx0VGV4dERhdGEoKXtyZXR1cm4gdGhpcy4jbz8uaGFzRGF0YSgpPz8hMX1yZW5kZXIoKXt0aGlzLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtZWRpdG9yLXJvdGF0aW9uIiwoMzYwLXRoaXMucm90YXRpb24pJTM2MCksdGhpcy5kaXYuY2xhc3NOYW1lPXRoaXMubmFtZSx0aGlzLmRpdi5zZXRBdHRyaWJ1dGUoImlkIix0aGlzLmlkKSx0aGlzLmRpdi50YWJJbmRleD10aGlzLiNZdD8tMTowLHRoaXMuX2lzVmlzaWJsZXx8dGhpcy5kaXYuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdGhpcy5zZXRJbkZvcmVncm91bmQoKSx0aGlzLiN3ZSgpO2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMucGFyZW50Um90YXRpb24lMTgwIT0wJiYodGhpcy5kaXYuc3R5bGUubWF4V2lkdGg9YCR7KDEwMCplL3QpLnRvRml4ZWQoMil9JWAsdGhpcy5kaXYuc3R5bGUubWF4SGVpZ2h0PWAkeygxMDAqdC9lKS50b0ZpeGVkKDIpfSVgKTtjb25zdFtpLHNdPXRoaXMuZ2V0SW5pdGlhbFRyYW5zbGF0aW9uKCk7cmV0dXJuIHRoaXMudHJhbnNsYXRlKGkscyksd3QodGhpcyx0aGlzLmRpdixbInBvaW50ZXJkb3duIl0pLHRoaXMuZGl2fXBvaW50ZXJkb3duKHQpe2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07MCE9PXQuYnV0dG9ufHx0LmN0cmxLZXkmJmU/dC5wcmV2ZW50RGVmYXVsdCgpOih0aGlzLiNpZT0hMCx0aGlzLl9pc0RyYWdnYWJsZT90aGlzLiN4ZSh0KTp0aGlzLiNfZSh0KSl9I19lKHQpe2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07dC5jdHJsS2V5JiYhZXx8dC5zaGlmdEtleXx8dC5tZXRhS2V5JiZlP3RoaXMucGFyZW50LnRvZ2dsZVNlbGVjdGVkKHRoaXMpOnRoaXMucGFyZW50LnNldFNlbGVjdGVkKHRoaXMpfSN4ZSh0KXtjb25zdCBlPXRoaXMuX3VpTWFuYWdlci5pc1NlbGVjdGVkKHRoaXMpO3RoaXMuX3VpTWFuYWdlci5zZXRVcERyYWdTZXNzaW9uKCk7Y29uc3QgaT1uZXcgQWJvcnRDb250cm9sbGVyLHM9dGhpcy5fdWlNYW5hZ2VyLmNvbWJpbmVkU2lnbmFsKGkpO2lmKGUpe3RoaXMuZGl2LmNsYXNzTGlzdC5hZGQoIm1vdmluZyIpLHRoaXMuI2hlPXQuY2xpZW50WCx0aGlzLiNsZT10LmNsaWVudFk7Y29uc3QgZT10PT57Y29uc3R7Y2xpZW50WDplLGNsaWVudFk6aX09dCxbcyxuXT10aGlzLnNjcmVlblRvUGFnZVRyYW5zbGF0aW9uKGUtdGhpcy4jaGUsaS10aGlzLiNsZSk7dGhpcy4jaGU9ZSx0aGlzLiNsZT1pLHRoaXMuX3VpTWFuYWdlci5kcmFnU2VsZWN0ZWRFZGl0b3JzKHMsbil9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsZSx7cGFzc2l2ZTohMCxjYXB0dXJlOiEwLHNpZ25hbDpzfSl9Y29uc3Qgbj0oKT0+e2kuYWJvcnQoKSxlJiZ0aGlzLmRpdi5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZpbmciKSx0aGlzLiNpZT0hMSx0aGlzLl91aU1hbmFnZXIuZW5kRHJhZ1Nlc3Npb24oKXx8dGhpcy4jX2UodCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLG4se3NpZ25hbDpzfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLG4se3NpZ25hbDpzfSl9bW92ZUluRE9NKCl7dGhpcy4jb2UmJmNsZWFyVGltZW91dCh0aGlzLiNvZSksdGhpcy4jb2U9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiNvZT1udWxsLHRoaXMucGFyZW50Py5tb3ZlRWRpdG9ySW5ET00odGhpcyl9KSwwKX1fc2V0UGFyZW50QW5kUG9zaXRpb24odCxlLGkpe3QuY2hhbmdlUGFyZW50KHRoaXMpLHRoaXMueD1lLHRoaXMueT1pLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX1nZXRSZWN0KHQsZSxpPXRoaXMucm90YXRpb24pe2NvbnN0IHM9dGhpcy5wYXJlbnRTY2FsZSxbbixyXT10aGlzLnBhZ2VEaW1lbnNpb25zLFthLG9dPXRoaXMucGFnZVRyYW5zbGF0aW9uLGg9dC9zLGw9ZS9zLGM9dGhpcy54Km4sZD10aGlzLnkqcix1PXRoaXMud2lkdGgqbixwPXRoaXMuaGVpZ2h0KnI7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm5bYytoK2Esci1kLWwtcCtvLGMraCt1K2Esci1kLWwrb107Y2FzZSA5MDpyZXR1cm5bYytsK2Esci1kK2grbyxjK2wrcCthLHItZCtoK3Urb107Y2FzZSAxODA6cmV0dXJuW2MtaC11K2Esci1kK2wrbyxjLWgrYSxyLWQrbCtwK29dO2Nhc2UgMjcwOnJldHVybltjLWwtcCthLHItZC1oLXUrbyxjLWwrYSxyLWQtaCtvXTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCByb3RhdGlvbiIpfX1nZXRSZWN0SW5DdXJyZW50Q29vcmRzKHQsZSl7Y29uc3RbaSxzLG4scl09dCxhPW4taSxvPXItcztzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSAwOnJldHVybltpLGUtcixhLG9dO2Nhc2UgOTA6cmV0dXJuW2ksZS1zLG8sYV07Y2FzZSAxODA6cmV0dXJuW24sZS1zLGEsb107Y2FzZSAyNzA6cmV0dXJuW24sZS1yLG8sYV07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcm90YXRpb24iKX19b25jZUFkZGVkKCl7fWlzRW1wdHkoKXtyZXR1cm4hMX1lbmFibGVFZGl0TW9kZSgpe3RoaXMuI3JlPSEwfWRpc2FibGVFZGl0TW9kZSgpe3RoaXMuI3JlPSExfWlzSW5FZGl0TW9kZSgpe3JldHVybiB0aGlzLiNyZX1zaG91bGRHZXRLZXlib2FyZEV2ZW50cygpe3JldHVybiB0aGlzLiNhZX1uZWVkc1RvQmVSZWJ1aWx0KCl7cmV0dXJuIHRoaXMuZGl2JiYhdGhpcy5pc0F0dGFjaGVkVG9ET019I3dlKCl7aWYodGhpcy4jdGV8fCF0aGlzLmRpdilyZXR1cm47dGhpcy4jdGU9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB0PXRoaXMuX3VpTWFuYWdlci5jb21iaW5lZFNpZ25hbCh0aGlzLiN0ZSk7dGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsdGhpcy5mb2N1c2luLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLHRoaXMuZm9jdXNvdXQuYmluZCh0aGlzKSx7c2lnbmFsOnR9KX1yZWJ1aWxkKCl7dGhpcy4jd2UoKX1yb3RhdGUodCl7fXNlcmlhbGl6ZURlbGV0ZWQoKXtyZXR1cm57aWQ6dGhpcy5hbm5vdGF0aW9uRWxlbWVudElkLGRlbGV0ZWQ6ITAscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LHBvcHVwUmVmOnRoaXMuX2luaXRpYWxEYXRhPy5wb3B1cFJlZnx8IiJ9fXNlcmlhbGl6ZSh0PSExLGU9bnVsbCl7eCgiQW4gZWRpdG9yIG11c3QgYmUgc2VyaWFsaXphYmxlIil9c3RhdGljIGFzeW5jIGRlc2VyaWFsaXplKHQsZSxpKXtjb25zdCBzPW5ldyB0aGlzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcih7cGFyZW50OmUsaWQ6ZS5nZXROZXh0SWQoKSx1aU1hbmFnZXI6aX0pO3Mucm90YXRpb249dC5yb3RhdGlvbixzLiNYdD10LmFjY2Vzc2liaWxpdHlEYXRhO2NvbnN0W24scl09cy5wYWdlRGltZW5zaW9ucyxbYSxvLGgsbF09cy5nZXRSZWN0SW5DdXJyZW50Q29vcmRzKHQucmVjdCxyKTtyZXR1cm4gcy54PWEvbixzLnk9by9yLHMud2lkdGg9aC9uLHMuaGVpZ2h0PWwvcixzfWdldCBoYXNCZWVuTW9kaWZpZWQoKXtyZXR1cm4hIXRoaXMuYW5ub3RhdGlvbkVsZW1lbnRJZCYmKHRoaXMuZGVsZXRlZHx8bnVsbCE9PXRoaXMuc2VyaWFsaXplKCkpfXJlbW92ZSgpe2lmKHRoaXMuI3RlPy5hYm9ydCgpLHRoaXMuI3RlPW51bGwsdGhpcy5pc0VtcHR5KCl8fHRoaXMuY29tbWl0KCksdGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucmVtb3ZlKHRoaXMpOnRoaXMuX3VpTWFuYWdlci5yZW1vdmVFZGl0b3IodGhpcyksdGhpcy4jb2UmJihjbGVhclRpbWVvdXQodGhpcy4jb2UpLHRoaXMuI29lPW51bGwpLHRoaXMuI3BlKCksdGhpcy5yZW1vdmVFZGl0VG9vbGJhcigpLHRoaXMuI2NlKXtmb3IoY29uc3QgdCBvZiB0aGlzLiNjZS52YWx1ZXMoKSljbGVhclRpbWVvdXQodCk7dGhpcy4jY2U9bnVsbH10aGlzLnBhcmVudD1udWxsfWdldCBpc1Jlc2l6YWJsZSgpe3JldHVybiExfW1ha2VSZXNpemFibGUoKXt0aGlzLmlzUmVzaXphYmxlJiYodGhpcy4jYmUoKSx0aGlzLiNKdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx3dCh0aGlzLHRoaXMuZGl2LFsia2V5ZG93biJdKSl9Z2V0IHRvb2xiYXJQb3NpdGlvbigpe3JldHVybiBudWxsfWtleWRvd24odCl7aWYoIXRoaXMuaXNSZXNpemFibGV8fHQudGFyZ2V0IT09dGhpcy5kaXZ8fCJFbnRlciIhPT10LmtleSlyZXR1cm47dGhpcy5fdWlNYW5hZ2VyLnNldFNlbGVjdGVkKHRoaXMpLHRoaXMuI1p0PXtzYXZlZFg6dGhpcy54LHNhdmVkWTp0aGlzLnksc2F2ZWRXaWR0aDp0aGlzLndpZHRoLHNhdmVkSGVpZ2h0OnRoaXMuaGVpZ2h0fTtjb25zdCBlPXRoaXMuI0p0LmNoaWxkcmVuO2lmKCF0aGlzLiNLdCl7dGhpcy4jS3Q9QXJyYXkuZnJvbShlKTtjb25zdCB0PXRoaXMuI0VlLmJpbmQodGhpcyksaT10aGlzLiNDZS5iaW5kKHRoaXMpLHM9dGhpcy5fdWlNYW5hZ2VyLl9zaWduYWw7Zm9yKGNvbnN0IGUgb2YgdGhpcy4jS3Qpe2NvbnN0IG49ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVzaXplci1uYW1lIik7ZS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJzcGluYnV0dG9uIiksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0LHtzaWduYWw6c30pLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsaSx7c2lnbmFsOnN9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLiNTZS5iaW5kKHRoaXMsbikse3NpZ25hbDpzfSksZS5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsa3QuX2wxMG5SZXNpemVyW25dKX19Y29uc3QgaT10aGlzLiNLdFswXTtsZXQgcz0wO2Zvcihjb25zdCB0IG9mIGUpe2lmKHQ9PT1pKWJyZWFrO3MrK31jb25zdCBuPSgzNjAtdGhpcy5yb3RhdGlvbit0aGlzLnBhcmVudFJvdGF0aW9uKSUzNjAvOTAqKHRoaXMuI0t0Lmxlbmd0aC80KTtpZihuIT09cyl7aWYobjxzKWZvcihsZXQgdD0wO3Q8cy1uO3QrKyl0aGlzLiNKdC5hcHBlbmQodGhpcy4jSnQuZmlyc3RDaGlsZCk7ZWxzZSBpZihuPnMpZm9yKGxldCB0PTA7dDxuLXM7dCsrKXRoaXMuI0p0LmZpcnN0Q2hpbGQuYmVmb3JlKHRoaXMuI0p0Lmxhc3RDaGlsZCk7bGV0IHQ9MDtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPXRoaXMuI0t0W3QrK10uZ2V0QXR0cmlidXRlKCJkYXRhLXJlc2l6ZXItbmFtZSIpO2kuc2V0QXR0cmlidXRlKCJkYXRhLWwxMG4taWQiLGt0Ll9sMTBuUmVzaXplcltlXSl9fXRoaXMuI1RlKDApLHRoaXMuI2FlPSEwLHRoaXMuI0p0LmZpcnN0Q2hpbGQuZm9jdXMoe2ZvY3VzVmlzaWJsZTohMH0pLHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfSNFZSh0KXtrdC5fcmVzaXplcktleWJvYXJkTWFuYWdlci5leGVjKHRoaXMsdCl9I0NlKHQpe3RoaXMuI2FlJiZ0LnJlbGF0ZWRUYXJnZXQ/LnBhcmVudE5vZGUhPT10aGlzLiNKdCYmdGhpcy4jcGUoKX0jU2UodCl7dGhpcy4jZWU9dGhpcy4jYWU/dDoiIn0jVGUodCl7aWYodGhpcy4jS3QpZm9yKGNvbnN0IGUgb2YgdGhpcy4jS3QpZS50YWJJbmRleD10fV9yZXNpemVXaXRoS2V5Ym9hcmQodCxlKXt0aGlzLiNhZSYmdGhpcy4jeWUodGhpcy4jZWUse21vdmVtZW50WDp0LG1vdmVtZW50WTplfSl9I3BlKCl7aWYodGhpcy4jYWU9ITEsdGhpcy4jVGUoLTEpLHRoaXMuI1p0KXtjb25zdHtzYXZlZFg6dCxzYXZlZFk6ZSxzYXZlZFdpZHRoOmksc2F2ZWRIZWlnaHQ6c309dGhpcy4jWnQ7dGhpcy4jQWUodCxlLGkscyksdGhpcy4jWnQ9bnVsbH19X3N0b3BSZXNpemluZ1dpdGhLZXlib2FyZCgpe3RoaXMuI3BlKCksdGhpcy5kaXYuZm9jdXMoKX1zZWxlY3QoKXt0aGlzLm1ha2VSZXNpemFibGUoKSx0aGlzLmRpdj8uY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWRFZGl0b3IiKSx0aGlzLl9lZGl0VG9vbGJhcj8odGhpcy5fZWRpdFRvb2xiYXI/LnNob3coKSx0aGlzLiNvPy50b2dnbGVBbHRUZXh0QmFkZ2UoITEpKTp0aGlzLmFkZEVkaXRUb29sYmFyKCkudGhlbigoKCk9Pnt0aGlzLmRpdj8uY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3RlZEVkaXRvciIpJiZ0aGlzLl9lZGl0VG9vbGJhcj8uc2hvdygpfSkpfXVuc2VsZWN0KCl7dGhpcy4jSnQ/LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHRoaXMuZGl2Py5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZEVkaXRvciIpLHRoaXMuZGl2Py5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdGhpcy5fdWlNYW5hZ2VyLmN1cnJlbnRMYXllci5kaXYuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSx0aGlzLl9lZGl0VG9vbGJhcj8uaGlkZSgpLHRoaXMuI28/LnRvZ2dsZUFsdFRleHRCYWRnZSghMCl9dXBkYXRlUGFyYW1zKHQsZSl7fWRpc2FibGVFZGl0aW5nKCl7fWVuYWJsZUVkaXRpbmcoKXt9ZW50ZXJJbkVkaXRNb2RlKCl7fWdldEltYWdlRm9yQWx0VGV4dCgpe3JldHVybiBudWxsfWdldCBjb250ZW50RGl2KCl7cmV0dXJuIHRoaXMuZGl2fWdldCBpc0VkaXRpbmcoKXtyZXR1cm4gdGhpcy4jbmV9c2V0IGlzRWRpdGluZyh0KXt0aGlzLiNuZT10LHRoaXMucGFyZW50JiYodD8odGhpcy5wYXJlbnQuc2V0U2VsZWN0ZWQodGhpcyksdGhpcy5wYXJlbnQuc2V0QWN0aXZlRWRpdG9yKHRoaXMpKTp0aGlzLnBhcmVudC5zZXRBY3RpdmVFZGl0b3IobnVsbCkpfXNldEFzcGVjdFJhdGlvKHQsZSl7dGhpcy4jUXQ9ITA7Y29uc3QgaT10L2Use3N0eWxlOnN9PXRoaXMuZGl2O3MuYXNwZWN0UmF0aW89aSxzLmhlaWdodD0iYXV0byJ9c3RhdGljIGdldCBNSU5fU0laRSgpe3JldHVybiAxNn1zdGF0aWMgY2FuQ3JlYXRlTmV3RW1wdHlFZGl0b3IoKXtyZXR1cm4hMH1nZXQgdGVsZW1ldHJ5SW5pdGlhbERhdGEoKXtyZXR1cm57YWN0aW9uOiJhZGRlZCJ9fWdldCB0ZWxlbWV0cnlGaW5hbERhdGEoKXtyZXR1cm4gbnVsbH1fcmVwb3J0VGVsZW1ldHJ5KHQsZT0hMSl7aWYoZSl7dGhpcy4jY2V8fD1uZXcgTWFwO2NvbnN0e2FjdGlvbjplfT10O2xldCBpPXRoaXMuI2NlLmdldChlKTtyZXR1cm4gaSYmY2xlYXJUaW1lb3V0KGkpLGk9c2V0VGltZW91dCgoKCk9Pnt0aGlzLl9yZXBvcnRUZWxlbWV0cnkodCksdGhpcy4jY2UuZGVsZXRlKGUpLDA9PT10aGlzLiNjZS5zaXplJiYodGhpcy4jY2U9bnVsbCl9KSxrdC5fdGVsZW1ldHJ5VGltZW91dCksdm9pZCB0aGlzLiNjZS5zZXQoZSxpKX10LnR5cGV8fD10aGlzLmVkaXRvclR5cGUsdGhpcy5fdWlNYW5hZ2VyLl9ldmVudEJ1cy5kaXNwYXRjaCgicmVwb3J0dGVsZW1ldHJ5Iix7c291cmNlOnRoaXMsZGV0YWlsczp7dHlwZToiZWRpdGluZyIsZGF0YTp0fX0pfXNob3codD10aGlzLl9pc1Zpc2libGUpe3RoaXMuZGl2LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXQpLHRoaXMuX2lzVmlzaWJsZT10fWVuYWJsZSgpe3RoaXMuZGl2JiYodGhpcy5kaXYudGFiSW5kZXg9MCksdGhpcy4jWXQ9ITF9ZGlzYWJsZSgpe3RoaXMuZGl2JiYodGhpcy5kaXYudGFiSW5kZXg9LTEpLHRoaXMuI1l0PSEwfXJlbmRlckFubm90YXRpb25FbGVtZW50KHQpe2xldCBlPXQuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5hbm5vdGF0aW9uQ29udGVudCIpO2lmKGUpe2lmKCJDQU5WQVMiPT09ZS5ub2RlTmFtZSl7Y29uc3QgdD1lO2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc0xpc3QuYWRkKCJhbm5vdGF0aW9uQ29udGVudCIsdGhpcy5lZGl0b3JUeXBlKSx0LmJlZm9yZShlKX19ZWxzZSBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NMaXN0LmFkZCgiYW5ub3RhdGlvbkNvbnRlbnQiLHRoaXMuZWRpdG9yVHlwZSksdC5jb250YWluZXIucHJlcGVuZChlKTtyZXR1cm4gZX1yZXNldEFubm90YXRpb25FbGVtZW50KHQpe2NvbnN0e2ZpcnN0Q2hpbGQ6ZX09dC5jb250YWluZXI7IkRJViI9PT1lPy5ub2RlTmFtZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoImFubm90YXRpb25Db250ZW50IikmJmUucmVtb3ZlKCl9fWNsYXNzIEl0IGV4dGVuZHMga3R7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkPXQuYW5ub3RhdGlvbkVsZW1lbnRJZCx0aGlzLmRlbGV0ZWQ9ITB9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplRGVsZXRlZCgpfX1jb25zdCBSdD0zMjg1Mzc3NTIwLFB0PTQyOTQ5MDE3NjAsRHQ9NjU1MzU7Y2xhc3MgTHR7Y29uc3RydWN0b3IodCl7dGhpcy5oMT10PzQyOTQ5NjcyOTUmdDpSdCx0aGlzLmgyPXQ/NDI5NDk2NzI5NSZ0OlJ0fXVwZGF0ZSh0KXtsZXQgZSxpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7ZT1uZXcgVWludDhBcnJheSgyKnQubGVuZ3RoKSxpPTA7Zm9yKGxldCBzPTAsbj10Lmxlbmd0aDtzPG47cysrKXtjb25zdCBuPXQuY2hhckNvZGVBdChzKTtuPD0yNTU/ZVtpKytdPW46KGVbaSsrXT1uPj4+OCxlW2krK109MjU1Jm4pfX1lbHNle2lmKCFBcnJheUJ1ZmZlci5pc1ZpZXcodCkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGEgZm9ybWF0LCBtdXN0IGJlIGEgc3RyaW5nIG9yIFR5cGVkQXJyYXkuIik7ZT10LnNsaWNlKCksaT1lLmJ5dGVMZW5ndGh9Y29uc3Qgcz1pPj4yLG49aS00KnMscj1uZXcgVWludDMyQXJyYXkoZS5idWZmZXIsMCxzKTtsZXQgYT0wLG89MCxoPXRoaXMuaDEsbD10aGlzLmgyO2NvbnN0IGM9MzQzMjkxODM1MyxkPTQ2MTg0NTkwNyx1PTExNjAxLHA9MTM3MTU7Zm9yKGxldCB0PTA7dDxzO3QrKykxJnQ/KGE9clt0XSxhPWEqYyZQdHxhKnUmRHQsYT1hPDwxNXxhPj4+MTcsYT1hKmQmUHR8YSpwJkR0LGhePWEsaD1oPDwxM3xoPj4+MTksaD01KmgrMzg2NDI5MjE5Nik6KG89clt0XSxvPW8qYyZQdHxvKnUmRHQsbz1vPDwxNXxvPj4+MTcsbz1vKmQmUHR8bypwJkR0LGxePW8sbD1sPDwxM3xsPj4+MTksbD01KmwrMzg2NDI5MjE5Nik7c3dpdGNoKGE9MCxuKXtjYXNlIDM6YV49ZVs0KnMrMl08PDE2O2Nhc2UgMjphXj1lWzQqcysxXTw8ODtjYXNlIDE6YV49ZVs0KnNdLGE9YSpjJlB0fGEqdSZEdCxhPWE8PDE1fGE+Pj4xNyxhPWEqZCZQdHxhKnAmRHQsMSZzP2hePWE6bF49YX10aGlzLmgxPWgsdGhpcy5oMj1sfWhleGRpZ2VzdCgpe2xldCB0PXRoaXMuaDEsZT10aGlzLmgyO3JldHVybiB0Xj1lPj4+MSx0PTM5ODE4MDY3OTcqdCZQdHwzNjA0NSp0JkR0LGU9NDI4MzU0MzUxMSplJlB0fCgyOTUwMTYzNzk3KihlPDwxNnx0Pj4+MTYpJlB0KT4+PjE2LHRePWU+Pj4xLHQ9NDQ0OTg0NDAzKnQmUHR8NjA0OTkqdCZEdCxlPTMzMDE4ODIzNjYqZSZQdHwoMzEyMDQzNzg5MyooZTw8MTZ8dD4+PjE2KSZQdCk+Pj4xNix0Xj1lPj4+MSwodD4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIikrKGU+Pj4wKS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpfX1jb25zdCBGdD1PYmplY3QuZnJlZXplKHttYXA6bnVsbCxoYXNoOiIiLHRyYW5zZmVyOnZvaWQgMH0pO2NsYXNzIE90eyNNZT0hMTsja2U9bnVsbDsjSWU9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe3RoaXMub25TZXRNb2RpZmllZD1udWxsLHRoaXMub25SZXNldE1vZGlmaWVkPW51bGwsdGhpcy5vbkFubm90YXRpb25FZGl0b3I9bnVsbH1nZXRWYWx1ZSh0LGUpe2NvbnN0IGk9dGhpcy4jSWUuZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1pP2U6T2JqZWN0LmFzc2lnbihlLGkpfWdldFJhd1ZhbHVlKHQpe3JldHVybiB0aGlzLiNJZS5nZXQodCl9cmVtb3ZlKHQpe2lmKHRoaXMuI0llLmRlbGV0ZSh0KSwwPT09dGhpcy4jSWUuc2l6ZSYmdGhpcy5yZXNldE1vZGlmaWVkKCksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub25Bbm5vdGF0aW9uRWRpdG9yKXtmb3IoY29uc3QgdCBvZiB0aGlzLiNJZS52YWx1ZXMoKSlpZih0IGluc3RhbmNlb2Yga3QpcmV0dXJuO3RoaXMub25Bbm5vdGF0aW9uRWRpdG9yKG51bGwpfX1zZXRWYWx1ZSh0LGUpe2NvbnN0IGk9dGhpcy4jSWUuZ2V0KHQpO2xldCBzPSExO2lmKHZvaWQgMCE9PWkpZm9yKGNvbnN0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhlKSlpW3RdIT09biYmKHM9ITAsaVt0XT1uKTtlbHNlIHM9ITAsdGhpcy4jSWUuc2V0KHQsZSk7cyYmdGhpcy4jUmUoKSxlIGluc3RhbmNlb2Yga3QmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9uQW5ub3RhdGlvbkVkaXRvciYmdGhpcy5vbkFubm90YXRpb25FZGl0b3IoZS5jb25zdHJ1Y3Rvci5fdHlwZSl9aGFzKHQpe3JldHVybiB0aGlzLiNJZS5oYXModCl9Z2V0QWxsKCl7cmV0dXJuIHRoaXMuI0llLnNpemU+MD9PKHRoaXMuI0llKTpudWxsfXNldEFsbCh0KXtmb3IoY29uc3RbZSxpXW9mIE9iamVjdC5lbnRyaWVzKHQpKXRoaXMuc2V0VmFsdWUoZSxpKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNJZS5zaXplfSNSZSgpe3RoaXMuI01lfHwodGhpcy4jTWU9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub25TZXRNb2RpZmllZCYmdGhpcy5vblNldE1vZGlmaWVkKCkpfXJlc2V0TW9kaWZpZWQoKXt0aGlzLiNNZSYmKHRoaXMuI01lPSExLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9uUmVzZXRNb2RpZmllZCYmdGhpcy5vblJlc2V0TW9kaWZpZWQoKSl9Z2V0IHByaW50KCl7cmV0dXJuIG5ldyBOdCh0aGlzKX1nZXQgc2VyaWFsaXphYmxlKCl7aWYoMD09PXRoaXMuI0llLnNpemUpcmV0dXJuIEZ0O2NvbnN0IHQ9bmV3IE1hcCxlPW5ldyBMdCxpPVtdLHM9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgbj0hMTtmb3IoY29uc3RbaSxyXW9mIHRoaXMuI0llKXtjb25zdCBhPXIgaW5zdGFuY2VvZiBrdD9yLnNlcmlhbGl6ZSghMSxzKTpyO2EmJih0LnNldChpLGEpLGUudXBkYXRlKGAke2l9OiR7SlNPTi5zdHJpbmdpZnkoYSl9YCksbnx8PSEhYS5iaXRtYXApfWlmKG4pZm9yKGNvbnN0IGUgb2YgdC52YWx1ZXMoKSllLmJpdG1hcCYmaS5wdXNoKGUuYml0bWFwKTtyZXR1cm4gdC5zaXplPjA/e21hcDp0LGhhc2g6ZS5oZXhkaWdlc3QoKSx0cmFuc2ZlcjppfTpGdH1nZXQgZWRpdG9yU3RhdHMoKXtsZXQgdD1udWxsO2NvbnN0IGU9bmV3IE1hcDtmb3IoY29uc3QgaSBvZiB0aGlzLiNJZS52YWx1ZXMoKSl7aWYoIShpIGluc3RhbmNlb2Yga3QpKWNvbnRpbnVlO2NvbnN0IHM9aS50ZWxlbWV0cnlGaW5hbERhdGE7aWYoIXMpY29udGludWU7Y29uc3R7dHlwZTpufT1zO2UuaGFzKG4pfHxlLnNldChuLE9iamVjdC5nZXRQcm90b3R5cGVPZihpKS5jb25zdHJ1Y3RvciksdHx8PU9iamVjdC5jcmVhdGUobnVsbCk7Y29uc3Qgcj10W25dfHw9bmV3IE1hcDtmb3IoY29uc3RbdCxlXW9mIE9iamVjdC5lbnRyaWVzKHMpKXtpZigidHlwZSI9PT10KWNvbnRpbnVlO2xldCBpPXIuZ2V0KHQpO2l8fChpPW5ldyBNYXAsci5zZXQodCxpKSk7Y29uc3Qgcz1pLmdldChlKT8/MDtpLnNldChlLHMrMSl9fWZvcihjb25zdFtpLHNdb2YgZSl0W2ldPXMuY29tcHV0ZVRlbGVtZXRyeUZpbmFsRGF0YSh0W2ldKTtyZXR1cm4gdH1yZXNldE1vZGlmaWVkSWRzKCl7dGhpcy4ja2U9bnVsbH1nZXQgbW9kaWZpZWRJZHMoKXtpZih0aGlzLiNrZSlyZXR1cm4gdGhpcy4ja2U7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLiNJZS52YWx1ZXMoKSllIGluc3RhbmNlb2Yga3QmJmUuYW5ub3RhdGlvbkVsZW1lbnRJZCYmZS5zZXJpYWxpemUoKSYmdC5wdXNoKGUuYW5ub3RhdGlvbkVsZW1lbnRJZCk7cmV0dXJuIHRoaXMuI2tlPXtpZHM6bmV3IFNldCh0KSxoYXNoOnQuam9pbigiLCIpfX19Y2xhc3MgTnQgZXh0ZW5kcyBPdHsjUGU7Y29uc3RydWN0b3IodCl7c3VwZXIoKTtjb25zdHttYXA6ZSxoYXNoOmksdHJhbnNmZXI6c309dC5zZXJpYWxpemFibGUsbj1zdHJ1Y3R1cmVkQ2xvbmUoZSxzP3t0cmFuc2ZlcjpzfTpudWxsKTt0aGlzLiNQZT17bWFwOm4saGFzaDppLHRyYW5zZmVyOnN9fWdldCBwcmludCgpe3goIlNob3VsZCBub3QgY2FsbCBQcmludEFubm90YXRpb25TdG9yYWdlLnByaW50Iil9Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybiB0aGlzLiNQZX1nZXQgbW9kaWZpZWRJZHMoKXtyZXR1cm4gQyh0aGlzLCJtb2RpZmllZElkcyIse2lkczpuZXcgU2V0LGhhc2g6IiJ9KX19Y2xhc3MgQnR7I0RlPW5ldyBTZXQ7Y29uc3RydWN0b3Ioe293bmVyRG9jdW1lbnQ6dD1nbG9iYWxUaGlzLmRvY3VtZW50LHN0eWxlRWxlbWVudDplPW51bGx9KXt0aGlzLl9kb2N1bWVudD10LHRoaXMubmF0aXZlRm9udEZhY2VzPW5ldyBTZXQsdGhpcy5zdHlsZUVsZW1lbnQ9bnVsbCx0aGlzLmxvYWRpbmdSZXF1ZXN0cz1bXSx0aGlzLmxvYWRUZXN0Rm9udElkPTB9YWRkTmF0aXZlRm9udEZhY2UodCl7dGhpcy5uYXRpdmVGb250RmFjZXMuYWRkKHQpLHRoaXMuX2RvY3VtZW50LmZvbnRzLmFkZCh0KX1yZW1vdmVOYXRpdmVGb250RmFjZSh0KXt0aGlzLm5hdGl2ZUZvbnRGYWNlcy5kZWxldGUodCksdGhpcy5fZG9jdW1lbnQuZm9udHMuZGVsZXRlKHQpfWluc2VydFJ1bGUodCl7dGhpcy5zdHlsZUVsZW1lbnR8fCh0aGlzLnN0eWxlRWxlbWVudD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZCh0aGlzLnN0eWxlRWxlbWVudCkpO2NvbnN0IGU9dGhpcy5zdHlsZUVsZW1lbnQuc2hlZXQ7ZS5pbnNlcnRSdWxlKHQsZS5jc3NSdWxlcy5sZW5ndGgpfWNsZWFyKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5uYXRpdmVGb250RmFjZXMpdGhpcy5fZG9jdW1lbnQuZm9udHMuZGVsZXRlKHQpO3RoaXMubmF0aXZlRm9udEZhY2VzLmNsZWFyKCksdGhpcy4jRGUuY2xlYXIoKSx0aGlzLnN0eWxlRWxlbWVudCYmKHRoaXMuc3R5bGVFbGVtZW50LnJlbW92ZSgpLHRoaXMuc3R5bGVFbGVtZW50PW51bGwpfWFzeW5jIGxvYWRTeXN0ZW1Gb250KHtzeXN0ZW1Gb250SW5mbzp0LF9pbnNwZWN0Rm9udDplfSl7aWYodCYmIXRoaXMuI0RlLmhhcyh0LmxvYWRlZE5hbWUpKWlmKF8oIXRoaXMuZGlzYWJsZUZvbnRGYWNlLCJsb2FkU3lzdGVtRm9udCBzaG91bGRuJ3QgYmUgY2FsbGVkIHdoZW4gYGRpc2FibGVGb250RmFjZWAgaXMgc2V0LiIpLHRoaXMuaXNGb250TG9hZGluZ0FQSVN1cHBvcnRlZCl7Y29uc3R7bG9hZGVkTmFtZTppLHNyYzpzLHN0eWxlOm59PXQscj1uZXcgRm9udEZhY2UoaSxzLG4pO3RoaXMuYWRkTmF0aXZlRm9udEZhY2Uocik7dHJ5e2F3YWl0IHIubG9hZCgpLHRoaXMuI0RlLmFkZChpKSxlPy4odCl9Y2F0Y2h7dyhgQ2Fubm90IGxvYWQgc3lzdGVtIGZvbnQ6ICR7dC5iYXNlRm9udE5hbWV9LCBpbnN0YWxsaW5nIGl0IGNvdWxkIGhlbHAgdG8gaW1wcm92ZSBQREYgcmVuZGVyaW5nLmApLHRoaXMucmVtb3ZlTmF0aXZlRm9udEZhY2Uocil9fWVsc2UgeCgiTm90IGltcGxlbWVudGVkOiBsb2FkU3lzdGVtRm9udCB3aXRob3V0IHRoZSBGb250IExvYWRpbmcgQVBJLiIpfWFzeW5jIGJpbmQodCl7aWYodC5hdHRhY2hlZHx8dC5taXNzaW5nRmlsZSYmIXQuc3lzdGVtRm9udEluZm8pcmV0dXJuO2lmKHQuYXR0YWNoZWQ9ITAsdC5zeXN0ZW1Gb250SW5mbylyZXR1cm4gdm9pZCBhd2FpdCB0aGlzLmxvYWRTeXN0ZW1Gb250KHQpO2lmKHRoaXMuaXNGb250TG9hZGluZ0FQSVN1cHBvcnRlZCl7Y29uc3QgZT10LmNyZWF0ZU5hdGl2ZUZvbnRGYWNlKCk7aWYoZSl7dGhpcy5hZGROYXRpdmVGb250RmFjZShlKTt0cnl7YXdhaXQgZS5sb2FkZWR9Y2F0Y2goaSl7dGhyb3cgdyhgRmFpbGVkIHRvIGxvYWQgZm9udCAnJHtlLmZhbWlseX0nOiAnJHtpfScuYCksdC5kaXNhYmxlRm9udEZhY2U9ITAsaX19cmV0dXJufWNvbnN0IGU9dC5jcmVhdGVGb250RmFjZVJ1bGUoKTtpZihlKXtpZih0aGlzLmluc2VydFJ1bGUoZSksdGhpcy5pc1N5bmNGb250TG9hZGluZ1N1cHBvcnRlZClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoKGU9Pntjb25zdCBpPXRoaXMuX3F1ZXVlTG9hZGluZ0NhbGxiYWNrKGUpO3RoaXMuX3ByZXBhcmVGb250TG9hZEV2ZW50KHQsaSl9KSl9fWdldCBpc0ZvbnRMb2FkaW5nQVBJU3VwcG9ydGVkKCl7cmV0dXJuIEModGhpcywiaXNGb250TG9hZGluZ0FQSVN1cHBvcnRlZCIsISF0aGlzLl9kb2N1bWVudD8uZm9udHMpfWdldCBpc1N5bmNGb250TG9hZGluZ1N1cHBvcnRlZCgpe2xldCB0PSExO3JldHVybihufHwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmInN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmL01vemlsbGFcLzUuMC4qP3J2OlxkKy4qPyBHZWNrby8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkmJih0PSEwKSxDKHRoaXMsImlzU3luY0ZvbnRMb2FkaW5nU3VwcG9ydGVkIix0KX1fcXVldWVMb2FkaW5nQ2FsbGJhY2sodCl7Y29uc3R7bG9hZGluZ1JlcXVlc3RzOmV9PXRoaXMsaT17ZG9uZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2ZvcihfKCFpLmRvbmUsImNvbXBsZXRlUmVxdWVzdCgpIGNhbm5vdCBiZSBjYWxsZWQgdHdpY2UuIiksaS5kb25lPSEwO2UubGVuZ3RoPjAmJmVbMF0uZG9uZTspe2NvbnN0IHQ9ZS5zaGlmdCgpO3NldFRpbWVvdXQodC5jYWxsYmFjaywwKX19LGNhbGxiYWNrOnR9O3JldHVybiBlLnB1c2goaSksaX1nZXQgX2xvYWRUZXN0Rm9udCgpe3JldHVybiBDKHRoaXMsIl9sb2FkVGVzdEZvbnQiLGF0b2IoIlQxUlVUd0FMQUlBQUF3QXdRMFpHSURIdFpnNEFBQU9ZQUFBQWdVWkdWRTFsa3pad0FBQUVIQUFBQUJ4SFJFVkdBQlFBRlFBQUJEZ0FBQUFlVDFNdk1sWU5Zd2tBQUFFZ0FBQUFZR050WVhBQkRRTFVBQUFDTkFBQUFVSm9aV0ZrL3hWRkRRQUFBTHdBQUFBMmFHaGxZUWRrQStvQUFBRDBBQUFBSkdodGRIZ0Q2QUFBQUFBRVdBQUFBQVp0WVhod0FBSlFBQUFBQVJnQUFBQUdibUZ0WlZqbWRINEFBQUdBQUFBQXNYQnZjM1QvaGdBekFBQURlQUFBQUNBQUFRQUFBQUVBQUxaUkZzUmZEenoxQUFzRDZBQUFBQURPQk9UTEFBQUFBTTRLSER3QUFBQUFBK2dESVFBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFESVFBQUFGb0Q2QUFBQUFBRDZBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFVQUFBQWdBQUFBUUQ2QUgwQUFVQUFBS0tBcndBQUFDTUFvb0N2QUFBQWVBQU1RRUNBQUFDQUFZSkFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBRkJtUldRQXdBQXVBQzRESVA4NEFGb0RJUUFBQUFBQUFRQUFBQUFBQUFBQUFDQUFJQUFCQUFBQURnQ3VBQUVBQUFBQUFBQUFBUUFBQUFFQUFBQUFBQUVBQVFBQUFBRUFBQUFBQUFJQUFRQUFBQUVBQUFBQUFBTUFBUUFBQUFFQUFBQUFBQVFBQVFBQUFBRUFBQUFBQUFVQUFRQUFBQUVBQUFBQUFBWUFBUUFBQUFNQUFRUUpBQUFBQWdBQkFBTUFBUVFKQUFFQUFnQUJBQU1BQVFRSkFBSUFBZ0FCQUFNQUFRUUpBQU1BQWdBQkFBTUFBUVFKQUFRQUFnQUJBQU1BQVFRSkFBVUFBZ0FCQUFNQUFRUUpBQVlBQWdBQldBQllBQUFBQUFBQUF3QUFBQU1BQUFBY0FBRUFBQUFBQUR3QUF3QUJBQUFBSEFBRUFDQUFBQUFFQUFRQUFRQUFBQzcvL3dBQUFDNy8vLy9UQUFFQUFBQUFBQUFCQmdBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUFBQUQvZ3dBeUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQVFFQUFFQkFRSllBQUVCQVNINER3RDRHd0hFQXZnY0EvZ1hCSXdNQVl1TCtuejV0UVhrRDVqM0NCTG5FUUFDQVFFQklWaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZQUFBQkFRQUFEd0FDQVFFRUUvdDNEb3Y2ZkFINmZBVCtmUHA4K253SERvc01Ddm0xQ3ZtMURBejZmQlFBQUFBQUFBQUJBQUFBQU1tSmJ6RUFBQUFBemdUakZRQUFBQURPQk9RcEFBRUFBQUFBQUFBQURBQVVBQVFBQUFBQkFBQUFBZ0FCQUFBQUFBQUFBQUFENkFBQUFBQUFBQT09IikpfV9wcmVwYXJlRm9udExvYWRFdmVudCh0LGUpe2Z1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC5jaGFyQ29kZUF0KGUpPDwyNHx0LmNoYXJDb2RlQXQoZSsxKTw8MTZ8dC5jaGFyQ29kZUF0KGUrMik8PDh8MjU1JnQuY2hhckNvZGVBdChlKzMpfWZ1bmN0aW9uIHModCxlLGkscyl7cmV0dXJuIHQuc3Vic3RyaW5nKDAsZSkrcyt0LnN1YnN0cmluZyhlK2kpfWxldCBuLHI7Y29uc3QgYT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLndpZHRoPTEsYS5oZWlnaHQ9MTtjb25zdCBvPWEuZ2V0Q29udGV4dCgiMmQiKTtsZXQgaD0wO2NvbnN0IGw9YGx0JHtEYXRlLm5vdygpfSR7dGhpcy5sb2FkVGVzdEZvbnRJZCsrfWA7bGV0IGM9dGhpcy5fbG9hZFRlc3RGb250O2M9cyhjLDk3NixsLmxlbmd0aCxsKTtjb25zdCBkPTE0ODIxODQ3OTI7bGV0IHU9aShjLDE2KTtmb3Iobj0wLHI9bC5sZW5ndGgtMztuPHI7bis9NCl1PXUtZCtpKGwsbil8MDt2YXIgcDtuPGwubGVuZ3RoJiYodT11LWQraShsKyJYWFgiLG4pfDApLGM9cyhjLDE2LDQsKHA9dSxTdHJpbmcuZnJvbUNoYXJDb2RlKHA+PjI0JjI1NSxwPj4xNiYyNTUscD4+OCYyNTUsMjU1JnApKSk7Y29uc3QgZz1gQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6IiR7bH0iO3NyYzp1cmwoZGF0YTpmb250L29wZW50eXBlO2Jhc2U2NCwke2J0b2EoYyl9KTt9YDt0aGlzLmluc2VydFJ1bGUoZyk7Y29uc3QgZj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsZi5zdHlsZS53aWR0aD1mLnN0eWxlLmhlaWdodD0iMTBweCIsZi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGYuc3R5bGUudG9wPWYuc3R5bGUubGVmdD0iMHB4Ijtmb3IoY29uc3QgZSBvZlt0LmxvYWRlZE5hbWUsbF0pe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3QudGV4dENvbnRlbnQ9IkhpIix0LnN0eWxlLmZvbnRGYW1pbHk9ZSxmLmFwcGVuZCh0KX10aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZChmKSxmdW5jdGlvbiB0KGUsaSl7aWYoKytoPjMwKXJldHVybiB3KCJMb2FkIHRlc3QgZm9udCBuZXZlciBsb2FkZWQuIiksdm9pZCBpKCk7by5mb250PSIzMHB4ICIrZSxvLmZpbGxUZXh0KCIuIiwwLDIwKSxvLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhWzNdPjA/aSgpOnNldFRpbWVvdXQodC5iaW5kKG51bGwsZSxpKSl9KGwsKCgpPT57Zi5yZW1vdmUoKSxlLmNvbXBsZXRlKCl9KSl9fWNsYXNzIHp0e2NvbnN0cnVjdG9yKHQse2Rpc2FibGVGb250RmFjZTplPSExLGluc3BlY3RGb250Omk9bnVsbH0pe3RoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgZSBpbiB0KXRoaXNbZV09dFtlXTt0aGlzLmRpc2FibGVGb250RmFjZT0hMD09PWUsdGhpcy5faW5zcGVjdEZvbnQ9aX1jcmVhdGVOYXRpdmVGb250RmFjZSgpe2lmKCF0aGlzLmRhdGF8fHRoaXMuZGlzYWJsZUZvbnRGYWNlKXJldHVybiBudWxsO2xldCB0O2lmKHRoaXMuY3NzRm9udEluZm8pe2NvbnN0IGU9e3dlaWdodDp0aGlzLmNzc0ZvbnRJbmZvLmZvbnRXZWlnaHR9O3RoaXMuY3NzRm9udEluZm8uaXRhbGljQW5nbGUmJihlLnN0eWxlPWBvYmxpcXVlICR7dGhpcy5jc3NGb250SW5mby5pdGFsaWNBbmdsZX1kZWdgKSx0PW5ldyBGb250RmFjZSh0aGlzLmNzc0ZvbnRJbmZvLmZvbnRGYW1pbHksdGhpcy5kYXRhLGUpfWVsc2UgdD1uZXcgRm9udEZhY2UodGhpcy5sb2FkZWROYW1lLHRoaXMuZGF0YSx7fSk7cmV0dXJuIHRoaXMuX2luc3BlY3RGb250Py4odGhpcyksdH1jcmVhdGVGb250RmFjZVJ1bGUoKXtpZighdGhpcy5kYXRhfHx0aGlzLmRpc2FibGVGb250RmFjZSlyZXR1cm4gbnVsbDtjb25zdCB0PUwodGhpcy5kYXRhKSxlPWB1cmwoZGF0YToke3RoaXMubWltZXR5cGV9O2Jhc2U2NCwke2J0b2EodCl9KTtgO2xldCBpO2lmKHRoaXMuY3NzRm9udEluZm8pe2xldCB0PWBmb250LXdlaWdodDogJHt0aGlzLmNzc0ZvbnRJbmZvLmZvbnRXZWlnaHR9O2A7dGhpcy5jc3NGb250SW5mby5pdGFsaWNBbmdsZSYmKHQrPWBmb250LXN0eWxlOiBvYmxpcXVlICR7dGhpcy5jc3NGb250SW5mby5pdGFsaWNBbmdsZX1kZWc7YCksaT1gQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6IiR7dGhpcy5jc3NGb250SW5mby5mb250RmFtaWx5fSI7JHt0fXNyYzoke2V9fWB9ZWxzZSBpPWBAZm9udC1mYWNlIHtmb250LWZhbWlseToiJHt0aGlzLmxvYWRlZE5hbWV9IjtzcmM6JHtlfX1gO3JldHVybiB0aGlzLl9pbnNwZWN0Rm9udD8uKHRoaXMsZSksaX1nZXRQYXRoR2VuZXJhdG9yKHQsZSl7aWYodm9pZCAwIT09dGhpcy5jb21waWxlZEdseXBoc1tlXSlyZXR1cm4gdGhpcy5jb21waWxlZEdseXBoc1tlXTtsZXQgaTt0cnl7aT10LmdldCh0aGlzLmxvYWRlZE5hbWUrIl9wYXRoXyIrZSl9Y2F0Y2godCl7dyhgZ2V0UGF0aEdlbmVyYXRvciAtIGlnbm9yaW5nIGNoYXJhY3RlcjogIiR7dH0iLmApfWlmKCFBcnJheS5pc0FycmF5KGkpfHwwPT09aS5sZW5ndGgpcmV0dXJuIHRoaXMuY29tcGlsZWRHbHlwaHNbZV09ZnVuY3Rpb24odCxlKXt9O2NvbnN0IHM9W107Zm9yKGxldCB0PTAsZT1pLmxlbmd0aDt0PGU7KXN3aXRjaChpW3QrK10pe2Nhc2UgMDp7Y29uc3RbZSxuLHIsYSxvLGhdPWkuc2xpY2UodCx0KzYpO3MucHVzaCgodD0+dC5iZXppZXJDdXJ2ZVRvKGUsbixyLGEsbyxoKSkpLHQrPTZ9YnJlYWs7Y2FzZSAxOntjb25zdFtlLG5dPWkuc2xpY2UodCx0KzIpO3MucHVzaCgodD0+dC5tb3ZlVG8oZSxuKSkpLHQrPTJ9YnJlYWs7Y2FzZSAyOntjb25zdFtlLG5dPWkuc2xpY2UodCx0KzIpO3MucHVzaCgodD0+dC5saW5lVG8oZSxuKSkpLHQrPTJ9YnJlYWs7Y2FzZSAzOntjb25zdFtlLG4scixhXT1pLnNsaWNlKHQsdCs0KTtzLnB1c2goKHQ9PnQucXVhZHJhdGljQ3VydmVUbyhlLG4scixhKSkpLHQrPTR9YnJlYWs7Y2FzZSA0OnMucHVzaCgodD0+dC5yZXN0b3JlKCkpKTticmVhaztjYXNlIDU6cy5wdXNoKCh0PT50LnNhdmUoKSkpO2JyZWFrO2Nhc2UgNjpfKDI9PT1zLmxlbmd0aCwiU2NhbGUgY29tbWFuZCBpcyBvbmx5IHZhbGlkIGF0IHRoZSB0aGlyZCBwb3NpdGlvbi4iKTticmVhaztjYXNlIDc6e2NvbnN0W2UsbixyLGEsbyxoXT1pLnNsaWNlKHQsdCs2KTtzLnB1c2goKHQ9PnQudHJhbnNmb3JtKGUsbixyLGEsbyxoKSkpLHQrPTZ9YnJlYWs7Y2FzZSA4Ontjb25zdFtlLG5dPWkuc2xpY2UodCx0KzIpO3MucHVzaCgodD0+dC50cmFuc2xhdGUoZSxuKSkpLHQrPTJ9fXJldHVybiB0aGlzLmNvbXBpbGVkR2x5cGhzW2VdPWZ1bmN0aW9uKHQsZSl7c1swXSh0KSxzWzFdKHQpLHQuc2NhbGUoZSwtZSk7Zm9yKGxldCBlPTIsaT1zLmxlbmd0aDtlPGk7ZSsrKXNbZV0odCl9fX1pZihuKXt2YXIgSHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksanQ9bnVsbDsoYXN5bmMoKT0+e2NvbnN0IHQ9YXdhaXQgaW1wb3J0KCJmcyIpLGU9YXdhaXQgaW1wb3J0KCJodHRwIiksaT1hd2FpdCBpbXBvcnQoImh0dHBzIikscz1hd2FpdCBpbXBvcnQoInVybCIpO2xldCBuLHI7dHJ5e249YXdhaXQgaW1wb3J0KCJjYW52YXMiKX1jYXRjaHt9dHJ5e3I9YXdhaXQgaW1wb3J0KCJwYXRoMmQiKX1jYXRjaHt9cmV0dXJuIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoe2ZzOnQsaHR0cDplLGh0dHBzOmksdXJsOnMsY2FudmFzOm4scGF0aDJkOnJ9KSl9KSgpLnRoZW4oKHQ9PntpZihqdD10LEh0LnJlc29sdmUoKSwhZ2xvYmFsVGhpcy5ET01NYXRyaXgpe2NvbnN0IGU9dC5nZXQoImNhbnZhcyIpPy5ET01NYXRyaXg7ZT9nbG9iYWxUaGlzLkRPTU1hdHJpeD1lOncoIkNhbm5vdCBwb2x5ZmlsbCBgRE9NTWF0cml4YCwgcmVuZGVyaW5nIG1heSBiZSBicm9rZW4uIil9aWYoIWdsb2JhbFRoaXMuUGF0aDJEKXtjb25zdCBlPXQuZ2V0KCJjYW52YXMiKT8uQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELGk9dC5nZXQoInBhdGgyZCIpPy5hcHBseVBhdGgyRFRvQ2FudmFzUmVuZGVyaW5nQ29udGV4dCxzPXQuZ2V0KCJwYXRoMmQiKT8uUGF0aDJEO2UmJmkmJnM/KGkoZSksZ2xvYmFsVGhpcy5QYXRoMkQ9cyk6dygiQ2Fubm90IHBvbHlmaWxsIGBQYXRoMkRgLCByZW5kZXJpbmcgbWF5IGJlIGJyb2tlbi4iKX19KSwodD0+e3coYGxvYWRQYWNrYWdlczogJHt0fWApLGp0PW5ldyBNYXAsSHQucmVzb2x2ZSgpfSkpfWNsYXNzIFV0e3N0YXRpYyBnZXQgcHJvbWlzZSgpe3JldHVybiBIdC5wcm9taXNlfXN0YXRpYyBnZXQodCl7cmV0dXJuIGp0Py5nZXQodCl9fWNvbnN0ICR0PWZ1bmN0aW9uKHQpe3JldHVybiBVdC5nZXQoImZzIikucHJvbWlzZXMucmVhZEZpbGUodCkudGhlbigodD0+bmV3IFVpbnQ4QXJyYXkodCkpKX0sV3Q9IkZpbGwiLEd0PSJTdHJva2UiLFZ0PSJTaGFkaW5nIjtmdW5jdGlvbiBxdCh0LGUpe2lmKCFlKXJldHVybjtjb25zdCBpPWVbMl0tZVswXSxzPWVbM10tZVsxXSxuPW5ldyBQYXRoMkQ7bi5yZWN0KGVbMF0sZVsxXSxpLHMpLHQuY2xpcChuKX1jbGFzcyBYdHtnZXRQYXR0ZXJuKCl7eCgiQWJzdHJhY3QgbWV0aG9kIGBnZXRQYXR0ZXJuYCBjYWxsZWQuIil9fWNsYXNzIEt0IGV4dGVuZHMgWHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl90eXBlPXRbMV0sdGhpcy5fYmJveD10WzJdLHRoaXMuX2NvbG9yU3RvcHM9dFszXSx0aGlzLl9wMD10WzRdLHRoaXMuX3AxPXRbNV0sdGhpcy5fcjA9dFs2XSx0aGlzLl9yMT10WzddLHRoaXMubWF0cml4PW51bGx9X2NyZWF0ZUdyYWRpZW50KHQpe2xldCBlOyJheGlhbCI9PT10aGlzLl90eXBlP2U9dC5jcmVhdGVMaW5lYXJHcmFkaWVudCh0aGlzLl9wMFswXSx0aGlzLl9wMFsxXSx0aGlzLl9wMVswXSx0aGlzLl9wMVsxXSk6InJhZGlhbCI9PT10aGlzLl90eXBlJiYoZT10LmNyZWF0ZVJhZGlhbEdyYWRpZW50KHRoaXMuX3AwWzBdLHRoaXMuX3AwWzFdLHRoaXMuX3IwLHRoaXMuX3AxWzBdLHRoaXMuX3AxWzFdLHRoaXMuX3IxKSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fY29sb3JTdG9wcyllLmFkZENvbG9yU3RvcCh0WzBdLHRbMV0pO3JldHVybiBlfWdldFBhdHRlcm4odCxlLGkscyl7bGV0IG47aWYocz09PUd0fHxzPT09V3Qpe2NvbnN0IHI9ZS5jdXJyZW50LmdldENsaXBwZWRQYXRoQm91bmRpbmdCb3gocyxmdCh0KSl8fFswLDAsMCwwXSxhPU1hdGguY2VpbChyWzJdLXJbMF0pfHwxLG89TWF0aC5jZWlsKHJbM10tclsxXSl8fDEsaD1lLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygicGF0dGVybiIsYSxvKSxsPWguY29udGV4dDtsLmNsZWFyUmVjdCgwLDAsbC5jYW52YXMud2lkdGgsbC5jYW52YXMuaGVpZ2h0KSxsLmJlZ2luUGF0aCgpLGwucmVjdCgwLDAsbC5jYW52YXMud2lkdGgsbC5jYW52YXMuaGVpZ2h0KSxsLnRyYW5zbGF0ZSgtclswXSwtclsxXSksaT16LnRyYW5zZm9ybShpLFsxLDAsMCwxLHJbMF0sclsxXV0pLGwudHJhbnNmb3JtKC4uLmUuYmFzZVRyYW5zZm9ybSksdGhpcy5tYXRyaXgmJmwudHJhbnNmb3JtKC4uLnRoaXMubWF0cml4KSxxdChsLHRoaXMuX2Jib3gpLGwuZmlsbFN0eWxlPXRoaXMuX2NyZWF0ZUdyYWRpZW50KGwpLGwuZmlsbCgpLG49dC5jcmVhdGVQYXR0ZXJuKGguY2FudmFzLCJuby1yZXBlYXQiKTtjb25zdCBjPW5ldyBET01NYXRyaXgoaSk7bi5zZXRUcmFuc2Zvcm0oYyl9ZWxzZSBxdCh0LHRoaXMuX2Jib3gpLG49dGhpcy5fY3JlYXRlR3JhZGllbnQodCk7cmV0dXJuIG59fWZ1bmN0aW9uIFl0KHQsZSxpLHMsbixyLGEsbyl7Y29uc3QgaD1lLmNvb3JkcyxsPWUuY29sb3JzLGM9dC5kYXRhLGQ9NCp0LndpZHRoO2xldCB1O2hbaSsxXT5oW3MrMV0mJih1PWksaT1zLHM9dSx1PXIscj1hLGE9dSksaFtzKzFdPmhbbisxXSYmKHU9cyxzPW4sbj11LHU9YSxhPW8sbz11KSxoW2krMV0+aFtzKzFdJiYodT1pLGk9cyxzPXUsdT1yLHI9YSxhPXUpO2NvbnN0IHA9KGhbaV0rZS5vZmZzZXRYKSplLnNjYWxlWCxnPShoW2krMV0rZS5vZmZzZXRZKSplLnNjYWxlWSxmPShoW3NdK2Uub2Zmc2V0WCkqZS5zY2FsZVgsbT0oaFtzKzFdK2Uub2Zmc2V0WSkqZS5zY2FsZVksYj0oaFtuXStlLm9mZnNldFgpKmUuc2NhbGVYLHY9KGhbbisxXStlLm9mZnNldFkpKmUuc2NhbGVZO2lmKGc+PXYpcmV0dXJuO2NvbnN0IHk9bFtyXSxBPWxbcisxXSx3PWxbcisyXSx4PWxbYV0sXz1sW2ErMV0sRT1sW2ErMl0sQz1sW29dLFM9bFtvKzFdLFQ9bFtvKzJdLE09TWF0aC5yb3VuZChnKSxrPU1hdGgucm91bmQodik7bGV0IEksUixQLEQsTCxGLE8sTjtmb3IobGV0IHQ9TTt0PD1rO3QrKyl7aWYodDxtKXtjb25zdCBlPXQ8Zz8wOihnLXQpLyhnLW0pO0k9cC0ocC1mKSplLFI9eS0oeS14KSplLFA9QS0oQS1fKSplLEQ9dy0ody1FKSplfWVsc2V7bGV0IGU7ZT10PnY/MTptPT09dj8wOihtLXQpLyhtLXYpLEk9Zi0oZi1iKSplLFI9eC0oeC1DKSplLFA9Xy0oXy1TKSplLEQ9RS0oRS1UKSplfWxldCBlO2U9dDxnPzA6dD52PzE6KGctdCkvKGctdiksTD1wLShwLWIpKmUsRj15LSh5LUMpKmUsTz1BLShBLVMpKmUsTj13LSh3LVQpKmU7Y29uc3QgaT1NYXRoLnJvdW5kKE1hdGgubWluKEksTCkpLHM9TWF0aC5yb3VuZChNYXRoLm1heChJLEwpKTtsZXQgbj1kKnQrNCppO2ZvcihsZXQgdD1pO3Q8PXM7dCsrKWU9KEktdCkvKEktTCksZTwwP2U9MDplPjEmJihlPTEpLGNbbisrXT1SLShSLUYpKmV8MCxjW24rK109UC0oUC1PKSplfDAsY1tuKytdPUQtKEQtTikqZXwwLGNbbisrXT0yNTV9fWZ1bmN0aW9uIFF0KHQsZSxpKXtjb25zdCBzPWUuY29vcmRzLG49ZS5jb2xvcnM7bGV0IHIsYTtzd2l0Y2goZS50eXBlKXtjYXNlImxhdHRpY2UiOmNvbnN0IG89ZS52ZXJ0aWNlc1BlclJvdyxoPU1hdGguZmxvb3Iocy5sZW5ndGgvbyktMSxsPW8tMTtmb3Iocj0wO3I8aDtyKyspe2xldCBlPXIqbztmb3IobGV0IHI9MDtyPGw7cisrLGUrKylZdCh0LGksc1tlXSxzW2UrMV0sc1tlK29dLG5bZV0sbltlKzFdLG5bZStvXSksWXQodCxpLHNbZStvKzFdLHNbZSsxXSxzW2Urb10sbltlK28rMV0sbltlKzFdLG5bZStvXSl9YnJlYWs7Y2FzZSJ0cmlhbmdsZXMiOmZvcihyPTAsYT1zLmxlbmd0aDtyPGE7cis9MylZdCh0LGksc1tyXSxzW3IrMV0sc1tyKzJdLG5bcl0sbltyKzFdLG5bcisyXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgZmlndXJlIil9fWNsYXNzIEp0IGV4dGVuZHMgWHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9jb29yZHM9dFsyXSx0aGlzLl9jb2xvcnM9dFszXSx0aGlzLl9maWd1cmVzPXRbNF0sdGhpcy5fYm91bmRzPXRbNV0sdGhpcy5fYmJveD10WzddLHRoaXMuX2JhY2tncm91bmQ9dFs4XSx0aGlzLm1hdHJpeD1udWxsfV9jcmVhdGVNZXNoQ2FudmFzKHQsZSxpKXtjb25zdCBzPU1hdGguZmxvb3IodGhpcy5fYm91bmRzWzBdKSxuPU1hdGguZmxvb3IodGhpcy5fYm91bmRzWzFdKSxyPU1hdGguY2VpbCh0aGlzLl9ib3VuZHNbMl0pLXMsYT1NYXRoLmNlaWwodGhpcy5fYm91bmRzWzNdKS1uLG89TWF0aC5taW4oTWF0aC5jZWlsKE1hdGguYWJzKHIqdFswXSoxLjEpKSwzZTMpLGg9TWF0aC5taW4oTWF0aC5jZWlsKE1hdGguYWJzKGEqdFsxXSoxLjEpKSwzZTMpLGw9ci9vLGM9YS9oLGQ9e2Nvb3Jkczp0aGlzLl9jb29yZHMsY29sb3JzOnRoaXMuX2NvbG9ycyxvZmZzZXRYOi1zLG9mZnNldFk6LW4sc2NhbGVYOjEvbCxzY2FsZVk6MS9jfSx1PW8rNCxwPWgrNCxnPWkuZ2V0Q2FudmFzKCJtZXNoIix1LHApLGY9Zy5jb250ZXh0LG09Zi5jcmVhdGVJbWFnZURhdGEobyxoKTtpZihlKXtjb25zdCB0PW0uZGF0YTtmb3IobGV0IGk9MCxzPXQubGVuZ3RoO2k8cztpKz00KXRbaV09ZVswXSx0W2krMV09ZVsxXSx0W2krMl09ZVsyXSx0W2krM109MjU1fWZvcihjb25zdCB0IG9mIHRoaXMuX2ZpZ3VyZXMpUXQobSx0LGQpO3JldHVybiBmLnB1dEltYWdlRGF0YShtLDIsMikse2NhbnZhczpnLmNhbnZhcyxvZmZzZXRYOnMtMipsLG9mZnNldFk6bi0yKmMsc2NhbGVYOmwsc2NhbGVZOmN9fWdldFBhdHRlcm4odCxlLGkscyl7bGV0IG47aWYocXQodCx0aGlzLl9iYm94KSxzPT09VnQpbj16LnNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKGZ0KHQpKTtlbHNlIGlmKG49ei5zaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShlLmJhc2VUcmFuc2Zvcm0pLHRoaXMubWF0cml4KXtjb25zdCB0PXouc2luZ3VsYXJWYWx1ZURlY29tcG9zZTJkU2NhbGUodGhpcy5tYXRyaXgpO249W25bMF0qdFswXSxuWzFdKnRbMV1dfWNvbnN0IHI9dGhpcy5fY3JlYXRlTWVzaENhbnZhcyhuLHM9PT1WdD9udWxsOnRoaXMuX2JhY2tncm91bmQsZS5jYWNoZWRDYW52YXNlcyk7cmV0dXJuIHMhPT1WdCYmKHQuc2V0VHJhbnNmb3JtKC4uLmUuYmFzZVRyYW5zZm9ybSksdGhpcy5tYXRyaXgmJnQudHJhbnNmb3JtKC4uLnRoaXMubWF0cml4KSksdC50cmFuc2xhdGUoci5vZmZzZXRYLHIub2Zmc2V0WSksdC5zY2FsZShyLnNjYWxlWCxyLnNjYWxlWSksdC5jcmVhdGVQYXR0ZXJuKHIuY2FudmFzLCJuby1yZXBlYXQiKX19Y2xhc3MgWnQgZXh0ZW5kcyBYdHtnZXRQYXR0ZXJuKCl7cmV0dXJuImhvdHBpbmsifX1jbGFzcyB0ZXtzdGF0aWMgTUFYX1BBVFRFUk5fU0laRT0zZTM7Y29uc3RydWN0b3IodCxlLGkscyxuKXt0aGlzLm9wZXJhdG9yTGlzdD10WzJdLHRoaXMubWF0cml4PXRbM10sdGhpcy5iYm94PXRbNF0sdGhpcy54c3RlcD10WzVdLHRoaXMueXN0ZXA9dFs2XSx0aGlzLnBhaW50VHlwZT10WzddLHRoaXMudGlsaW5nVHlwZT10WzhdLHRoaXMuY29sb3I9ZSx0aGlzLmN0eD1pLHRoaXMuY2FudmFzR3JhcGhpY3NGYWN0b3J5PXMsdGhpcy5iYXNlVHJhbnNmb3JtPW59Y3JlYXRlUGF0dGVybkNhbnZhcyh0KXtjb25zdHtiYm94OmUsb3BlcmF0b3JMaXN0OmkscGFpbnRUeXBlOnMsdGlsaW5nVHlwZTpuLGNvbG9yOnIsY2FudmFzR3JhcGhpY3NGYWN0b3J5OmF9PXRoaXM7bGV0e3hzdGVwOm8seXN0ZXA6aH09dGhpcztvPU1hdGguYWJzKG8pLGg9TWF0aC5hYnMoaCksQSgiVGlsaW5nVHlwZTogIituKTtjb25zdCBsPWVbMF0sYz1lWzFdLGQ9ZVsyXSx1PWVbM10scD1kLWwsZz11LWMsZj16LnNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKHRoaXMubWF0cml4KSxtPXouc2luZ3VsYXJWYWx1ZURlY29tcG9zZTJkU2NhbGUodGhpcy5iYXNlVHJhbnNmb3JtKSxiPWZbMF0qbVswXSx2PWZbMV0qbVsxXTtsZXQgeT1wLHc9Zyx4PSExLF89ITE7Y29uc3QgRT1NYXRoLmNlaWwobypiKSxDPU1hdGguY2VpbChoKnYpO0U+PU1hdGguY2VpbChwKmIpP3k9bzp4PSEwLEM+PU1hdGguY2VpbChnKnYpP3c9aDpfPSEwO2NvbnN0IFM9dGhpcy5nZXRTaXplQW5kU2NhbGUoeSx0aGlzLmN0eC5jYW52YXMud2lkdGgsYiksVD10aGlzLmdldFNpemVBbmRTY2FsZSh3LHRoaXMuY3R4LmNhbnZhcy5oZWlnaHQsdiksTT10LmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygicGF0dGVybiIsUy5zaXplLFQuc2l6ZSksaz1NLmNvbnRleHQsST1hLmNyZWF0ZUNhbnZhc0dyYXBoaWNzKGspO2lmKEkuZ3JvdXBMZXZlbD10Lmdyb3VwTGV2ZWwsdGhpcy5zZXRGaWxsQW5kU3Ryb2tlU3R5bGVUb0NvbnRleHQoSSxzLHIpLGsudHJhbnNsYXRlKC1TLnNjYWxlKmwsLVQuc2NhbGUqYyksSS50cmFuc2Zvcm0oUy5zY2FsZSwwLDAsVC5zY2FsZSwwLDApLGsuc2F2ZSgpLHRoaXMuY2xpcEJib3goSSxsLGMsZCx1KSxJLmJhc2VUcmFuc2Zvcm09ZnQoSS5jdHgpLEkuZXhlY3V0ZU9wZXJhdG9yTGlzdChpKSxJLmVuZERyYXdpbmcoKSxrLnJlc3RvcmUoKSx4fHxfKXtjb25zdCBlPU0uY2FudmFzO3gmJih5PW8pLF8mJih3PWgpO2NvbnN0IGk9dGhpcy5nZXRTaXplQW5kU2NhbGUoeSx0aGlzLmN0eC5jYW52YXMud2lkdGgsYikscz10aGlzLmdldFNpemVBbmRTY2FsZSh3LHRoaXMuY3R4LmNhbnZhcy5oZWlnaHQsdiksbj1pLnNpemUscj1zLnNpemUsYT10LmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygicGF0dGVybi13b3JrYXJvdW5kIixuLHIpLGQ9YS5jb250ZXh0LHU9eD9NYXRoLmZsb29yKHAvbyk6MCxmPV8/TWF0aC5mbG9vcihnL2gpOjA7Zm9yKGxldCB0PTA7dDw9dTt0KyspZm9yKGxldCBpPTA7aTw9ZjtpKyspZC5kcmF3SW1hZ2UoZSxuKnQscippLG4sciwwLDAsbixyKTtyZXR1cm57Y2FudmFzOmEuY2FudmFzLHNjYWxlWDppLnNjYWxlLHNjYWxlWTpzLnNjYWxlLG9mZnNldFg6bCxvZmZzZXRZOmN9fXJldHVybntjYW52YXM6TS5jYW52YXMsc2NhbGVYOlMuc2NhbGUsc2NhbGVZOlQuc2NhbGUsb2Zmc2V0WDpsLG9mZnNldFk6Y319Z2V0U2l6ZUFuZFNjYWxlKHQsZSxpKXtjb25zdCBzPU1hdGgubWF4KHRlLk1BWF9QQVRURVJOX1NJWkUsZSk7bGV0IG49TWF0aC5jZWlsKHQqaSk7cmV0dXJuIG4+PXM/bj1zOmk9bi90LHtzY2FsZTppLHNpemU6bn19Y2xpcEJib3godCxlLGkscyxuKXtjb25zdCByPXMtZSxhPW4taTt0LmN0eC5yZWN0KGUsaSxyLGEpLHQuY3VycmVudC51cGRhdGVSZWN0TWluTWF4KGZ0KHQuY3R4KSxbZSxpLHMsbl0pLHQuY2xpcCgpLHQuZW5kUGF0aCgpfXNldEZpbGxBbmRTdHJva2VTdHlsZVRvQ29udGV4dCh0LGUsaSl7Y29uc3Qgcz10LmN0eCxuPXQuY3VycmVudDtzd2l0Y2goZSl7Y2FzZSAxOmNvbnN0IHQ9dGhpcy5jdHg7cy5maWxsU3R5bGU9dC5maWxsU3R5bGUscy5zdHJva2VTdHlsZT10LnN0cm9rZVN0eWxlLG4uZmlsbENvbG9yPXQuZmlsbFN0eWxlLG4uc3Ryb2tlQ29sb3I9dC5zdHJva2VTdHlsZTticmVhaztjYXNlIDI6Y29uc3Qgcj16Lm1ha2VIZXhDb2xvcihpWzBdLGlbMV0saVsyXSk7cy5maWxsU3R5bGU9cixzLnN0cm9rZVN0eWxlPXIsbi5maWxsQ29sb3I9cixuLnN0cm9rZUNvbG9yPXI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgUChgVW5zdXBwb3J0ZWQgcGFpbnQgdHlwZTogJHtlfWApfX1nZXRQYXR0ZXJuKHQsZSxpLHMpe2xldCBuPWk7cyE9PVZ0JiYobj16LnRyYW5zZm9ybShuLGUuYmFzZVRyYW5zZm9ybSksdGhpcy5tYXRyaXgmJihuPXoudHJhbnNmb3JtKG4sdGhpcy5tYXRyaXgpKSk7Y29uc3Qgcj10aGlzLmNyZWF0ZVBhdHRlcm5DYW52YXMoZSk7bGV0IGE9bmV3IERPTU1hdHJpeChuKTthPWEudHJhbnNsYXRlKHIub2Zmc2V0WCxyLm9mZnNldFkpLGE9YS5zY2FsZSgxL3Iuc2NhbGVYLDEvci5zY2FsZVkpO2NvbnN0IG89dC5jcmVhdGVQYXR0ZXJuKHIuY2FudmFzLCJyZXBlYXQiKTtyZXR1cm4gby5zZXRUcmFuc2Zvcm0oYSksb319ZnVuY3Rpb24gZWUoe3NyYzp0LHNyY1BvczplPTAsZGVzdDppLHdpZHRoOnMsaGVpZ2h0Om4sbm9uQmxhY2tDb2xvcjpyPTQyOTQ5NjcyOTUsaW52ZXJzZURlY29kZTphPSExfSl7Y29uc3Qgbz1OLmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1LFtoLGxdPWE/W3Isb106W28scl0sYz1zPj4zLGQ9NyZzLHU9dC5sZW5ndGg7aT1uZXcgVWludDMyQXJyYXkoaS5idWZmZXIpO2xldCBwPTA7Zm9yKGxldCBzPTA7czxuO3MrKyl7Zm9yKGNvbnN0IHM9ZStjO2U8cztlKyspe2NvbnN0IHM9ZTx1P3RbZV06MjU1O2lbcCsrXT0xMjgmcz9sOmgsaVtwKytdPTY0JnM/bDpoLGlbcCsrXT0zMiZzP2w6aCxpW3ArK109MTYmcz9sOmgsaVtwKytdPTgmcz9sOmgsaVtwKytdPTQmcz9sOmgsaVtwKytdPTImcz9sOmgsaVtwKytdPTEmcz9sOmh9aWYoMD09PWQpY29udGludWU7Y29uc3Qgcz1lPHU/dFtlKytdOjI1NTtmb3IobGV0IHQ9MDt0PGQ7dCsrKWlbcCsrXT1zJjE8PDctdD9sOmh9cmV0dXJue3NyY1BvczplLGRlc3RQb3M6cH19Y29uc3QgaWU9MTY7Y2xhc3Mgc2V7Y29uc3RydWN0b3IodCl7dGhpcy5jYW52YXNGYWN0b3J5PXQsdGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpfWdldENhbnZhcyh0LGUsaSl7bGV0IHM7cmV0dXJuIHZvaWQgMCE9PXRoaXMuY2FjaGVbdF0/KHM9dGhpcy5jYWNoZVt0XSx0aGlzLmNhbnZhc0ZhY3RvcnkucmVzZXQocyxlLGkpKToocz10aGlzLmNhbnZhc0ZhY3RvcnkuY3JlYXRlKGUsaSksdGhpcy5jYWNoZVt0XT1zKSxzfWRlbGV0ZSh0KXtkZWxldGUgdGhpcy5jYWNoZVt0XX1jbGVhcigpe2Zvcihjb25zdCB0IGluIHRoaXMuY2FjaGUpe2NvbnN0IGU9dGhpcy5jYWNoZVt0XTt0aGlzLmNhbnZhc0ZhY3RvcnkuZGVzdHJveShlKSxkZWxldGUgdGhpcy5jYWNoZVt0XX19fWZ1bmN0aW9uIG5lKHQsZSxpLHMsbixyLGEsbyxoLGwpe2NvbnN0W2MsZCx1LHAsZyxmXT1mdCh0KTtpZigwPT09ZCYmMD09PXUpe2NvbnN0IG09YSpjK2csYj1NYXRoLnJvdW5kKG0pLHY9bypwK2YseT1NYXRoLnJvdW5kKHYpLEE9KGEraCkqYytnLHc9TWF0aC5hYnMoTWF0aC5yb3VuZChBKS1iKXx8MSx4PShvK2wpKnArZixfPU1hdGguYWJzKE1hdGgucm91bmQoeCkteSl8fDE7cmV0dXJuIHQuc2V0VHJhbnNmb3JtKE1hdGguc2lnbihjKSwwLDAsTWF0aC5zaWduKHApLGIseSksdC5kcmF3SW1hZ2UoZSxpLHMsbixyLDAsMCx3LF8pLHQuc2V0VHJhbnNmb3JtKGMsZCx1LHAsZyxmKSxbdyxfXX1pZigwPT09YyYmMD09PXApe2NvbnN0IG09byp1K2csYj1NYXRoLnJvdW5kKG0pLHY9YSpkK2YseT1NYXRoLnJvdW5kKHYpLEE9KG8rbCkqdStnLHc9TWF0aC5hYnMoTWF0aC5yb3VuZChBKS1iKXx8MSx4PShhK2gpKmQrZixfPU1hdGguYWJzKE1hdGgucm91bmQoeCkteSl8fDE7cmV0dXJuIHQuc2V0VHJhbnNmb3JtKDAsTWF0aC5zaWduKGQpLE1hdGguc2lnbih1KSwwLGIseSksdC5kcmF3SW1hZ2UoZSxpLHMsbixyLDAsMCxfLHcpLHQuc2V0VHJhbnNmb3JtKGMsZCx1LHAsZyxmKSxbXyx3XX1yZXR1cm4gdC5kcmF3SW1hZ2UoZSxpLHMsbixyLGEsbyxoLGwpLFtNYXRoLmh5cG90KGMsZCkqaCxNYXRoLmh5cG90KHUscCkqbF19Y2xhc3MgcmV7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFscGhhSXNTaGFwZT0hMSx0aGlzLmZvbnRTaXplPTAsdGhpcy5mb250U2l6ZVNjYWxlPTEsdGhpcy50ZXh0TWF0cml4PXIsdGhpcy50ZXh0TWF0cml4U2NhbGU9MSx0aGlzLmZvbnRNYXRyaXg9YSx0aGlzLmxlYWRpbmc9MCx0aGlzLng9MCx0aGlzLnk9MCx0aGlzLmxpbmVYPTAsdGhpcy5saW5lWT0wLHRoaXMuY2hhclNwYWNpbmc9MCx0aGlzLndvcmRTcGFjaW5nPTAsdGhpcy50ZXh0SFNjYWxlPTEsdGhpcy50ZXh0UmVuZGVyaW5nTW9kZT0wLHRoaXMudGV4dFJpc2U9MCx0aGlzLmZpbGxDb2xvcj0iIzAwMDAwMCIsdGhpcy5zdHJva2VDb2xvcj0iIzAwMDAwMCIsdGhpcy5wYXR0ZXJuRmlsbD0hMSx0aGlzLmZpbGxBbHBoYT0xLHRoaXMuc3Ryb2tlQWxwaGE9MSx0aGlzLmxpbmVXaWR0aD0xLHRoaXMuYWN0aXZlU01hc2s9bnVsbCx0aGlzLnRyYW5zZmVyTWFwcz0ibm9uZSIsdGhpcy5zdGFydE5ld1BhdGhBbmRDbGlwQm94KFswLDAsdCxlXSl9Y2xvbmUoKXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7cmV0dXJuIHQuY2xpcEJveD10aGlzLmNsaXBCb3guc2xpY2UoKSx0fXNldEN1cnJlbnRQb2ludCh0LGUpe3RoaXMueD10LHRoaXMueT1lfXVwZGF0ZVBhdGhNaW5NYXgodCxlLGkpe1tlLGldPXouYXBwbHlUcmFuc2Zvcm0oW2UsaV0sdCksdGhpcy5taW5YPU1hdGgubWluKHRoaXMubWluWCxlKSx0aGlzLm1pblk9TWF0aC5taW4odGhpcy5taW5ZLGkpLHRoaXMubWF4WD1NYXRoLm1heCh0aGlzLm1heFgsZSksdGhpcy5tYXhZPU1hdGgubWF4KHRoaXMubWF4WSxpKX11cGRhdGVSZWN0TWluTWF4KHQsZSl7Y29uc3QgaT16LmFwcGx5VHJhbnNmb3JtKGUsdCkscz16LmFwcGx5VHJhbnNmb3JtKGUuc2xpY2UoMiksdCksbj16LmFwcGx5VHJhbnNmb3JtKFtlWzBdLGVbM11dLHQpLHI9ei5hcHBseVRyYW5zZm9ybShbZVsyXSxlWzFdXSx0KTt0aGlzLm1pblg9TWF0aC5taW4odGhpcy5taW5YLGlbMF0sc1swXSxuWzBdLHJbMF0pLHRoaXMubWluWT1NYXRoLm1pbih0aGlzLm1pblksaVsxXSxzWzFdLG5bMV0sclsxXSksdGhpcy5tYXhYPU1hdGgubWF4KHRoaXMubWF4WCxpWzBdLHNbMF0sblswXSxyWzBdKSx0aGlzLm1heFk9TWF0aC5tYXgodGhpcy5tYXhZLGlbMV0sc1sxXSxuWzFdLHJbMV0pfXVwZGF0ZVNjYWxpbmdQYXRoTWluTWF4KHQsZSl7ei5zY2FsZU1pbk1heCh0LGUpLHRoaXMubWluWD1NYXRoLm1pbih0aGlzLm1pblgsZVswXSksdGhpcy5taW5ZPU1hdGgubWluKHRoaXMubWluWSxlWzFdKSx0aGlzLm1heFg9TWF0aC5tYXgodGhpcy5tYXhYLGVbMl0pLHRoaXMubWF4WT1NYXRoLm1heCh0aGlzLm1heFksZVszXSl9dXBkYXRlQ3VydmVQYXRoTWluTWF4KHQsZSxpLHMsbixyLGEsbyxoLGwpe2NvbnN0IGM9ei5iZXppZXJCb3VuZGluZ0JveChlLGkscyxuLHIsYSxvLGgsbCk7bHx8dGhpcy51cGRhdGVSZWN0TWluTWF4KHQsYyl9Z2V0UGF0aEJvdW5kaW5nQm94KHQ9V3QsZT1udWxsKXtjb25zdCBpPVt0aGlzLm1pblgsdGhpcy5taW5ZLHRoaXMubWF4WCx0aGlzLm1heFldO2lmKHQ9PT1HdCl7ZXx8eCgiU3Ryb2tlIGJvdW5kaW5nIGJveCBtdXN0IGluY2x1ZGUgdHJhbnNmb3JtLiIpO2NvbnN0IHQ9ei5zaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShlKSxzPXRbMF0qdGhpcy5saW5lV2lkdGgvMixuPXRbMV0qdGhpcy5saW5lV2lkdGgvMjtpWzBdLT1zLGlbMV0tPW4saVsyXSs9cyxpWzNdKz1ufXJldHVybiBpfXVwZGF0ZUNsaXBGcm9tUGF0aCgpe2NvbnN0IHQ9ei5pbnRlcnNlY3QodGhpcy5jbGlwQm94LHRoaXMuZ2V0UGF0aEJvdW5kaW5nQm94KCkpO3RoaXMuc3RhcnROZXdQYXRoQW5kQ2xpcEJveCh0fHxbMCwwLDAsMF0pfWlzRW1wdHlDbGlwKCl7cmV0dXJuIHRoaXMubWluWD09PTEvMH1zdGFydE5ld1BhdGhBbmRDbGlwQm94KHQpe3RoaXMuY2xpcEJveD10LHRoaXMubWluWD0xLzAsdGhpcy5taW5ZPTEvMCx0aGlzLm1heFg9MCx0aGlzLm1heFk9MH1nZXRDbGlwcGVkUGF0aEJvdW5kaW5nQm94KHQ9V3QsZT1udWxsKXtyZXR1cm4gei5pbnRlcnNlY3QodGhpcy5jbGlwQm94LHRoaXMuZ2V0UGF0aEJvdW5kaW5nQm94KHQsZSkpfX1mdW5jdGlvbiBhZSh0LGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VEYXRhJiZlIGluc3RhbmNlb2YgSW1hZ2VEYXRhKXJldHVybiB2b2lkIHQucHV0SW1hZ2VEYXRhKGUsMCwwKTtjb25zdCBpPWUuaGVpZ2h0LHM9ZS53aWR0aCxuPWklaWUscj0oaS1uKS9pZSxhPTA9PT1uP3I6cisxLG89dC5jcmVhdGVJbWFnZURhdGEocyxpZSk7bGV0IGgsbD0wO2NvbnN0IGM9ZS5kYXRhLGQ9by5kYXRhO2xldCBwLGcsZixtO2lmKGUua2luZD09PXUuR1JBWVNDQUxFXzFCUFApe2NvbnN0IGU9Yy5ieXRlTGVuZ3RoLGk9bmV3IFVpbnQzMkFycmF5KGQuYnVmZmVyLDAsZC5ieXRlTGVuZ3RoPj4yKSx1PWkubGVuZ3RoLG09cys3Pj4zLGI9NDI5NDk2NzI5NSx2PU4uaXNMaXR0bGVFbmRpYW4/NDI3ODE5MDA4MDoyNTU7Zm9yKHA9MDtwPGE7cCsrKXtmb3IoZj1wPHI/aWU6bixoPTAsZz0wO2c8ZjtnKyspe2NvbnN0IHQ9ZS1sO2xldCBuPTA7Y29uc3Qgcj10Pm0/czo4KnQtNyxhPS04JnI7bGV0IG89MCxkPTA7Zm9yKDtuPGE7bis9OClkPWNbbCsrXSxpW2grK109MTI4JmQ/Yjp2LGlbaCsrXT02NCZkP2I6dixpW2grK109MzImZD9iOnYsaVtoKytdPTE2JmQ/Yjp2LGlbaCsrXT04JmQ/Yjp2LGlbaCsrXT00JmQ/Yjp2LGlbaCsrXT0yJmQ/Yjp2LGlbaCsrXT0xJmQ/Yjp2O2Zvcig7bjxyO24rKykwPT09byYmKGQ9Y1tsKytdLG89MTI4KSxpW2grK109ZCZvP2I6dixvPj49MX1mb3IoO2g8dTspaVtoKytdPTA7dC5wdXRJbWFnZURhdGEobywwLHAqaWUpfX1lbHNlIGlmKGUua2luZD09PXUuUkdCQV8zMkJQUCl7Zm9yKGc9MCxtPXMqaWUqNCxwPTA7cDxyO3ArKylkLnNldChjLnN1YmFycmF5KGwsbCttKSksbCs9bSx0LnB1dEltYWdlRGF0YShvLDAsZyksZys9aWU7cDxhJiYobT1zKm4qNCxkLnNldChjLnN1YmFycmF5KGwsbCttKSksdC5wdXRJbWFnZURhdGEobywwLGcpKX1lbHNle2lmKGUua2luZCE9PXUuUkdCXzI0QlBQKXRocm93IG5ldyBFcnJvcihgYmFkIGltYWdlIGtpbmQ6ICR7ZS5raW5kfWApO2ZvcihmPWllLG09cypmLHA9MDtwPGE7cCsrKXtmb3IocD49ciYmKGY9bixtPXMqZiksaD0wLGc9bTtnLS07KWRbaCsrXT1jW2wrK10sZFtoKytdPWNbbCsrXSxkW2grK109Y1tsKytdLGRbaCsrXT0yNTU7dC5wdXRJbWFnZURhdGEobywwLHAqaWUpfX19ZnVuY3Rpb24gb2UodCxlKXtpZihlLmJpdG1hcClyZXR1cm4gdm9pZCB0LmRyYXdJbWFnZShlLmJpdG1hcCwwLDApO2NvbnN0IGk9ZS5oZWlnaHQscz1lLndpZHRoLG49aSVpZSxyPShpLW4pL2llLGE9MD09PW4/cjpyKzEsbz10LmNyZWF0ZUltYWdlRGF0YShzLGllKTtsZXQgaD0wO2NvbnN0IGw9ZS5kYXRhLGM9by5kYXRhO2ZvcihsZXQgZT0wO2U8YTtlKyspe2NvbnN0IGk9ZTxyP2llOm47KHtzcmNQb3M6aH09ZWUoe3NyYzpsLHNyY1BvczpoLGRlc3Q6Yyx3aWR0aDpzLGhlaWdodDppLG5vbkJsYWNrQ29sb3I6MH0pKSx0LnB1dEltYWdlRGF0YShvLDAsZSppZSl9fWZ1bmN0aW9uIGhlKHQsZSl7Y29uc3QgaT1bInN0cm9rZVN0eWxlIiwiZmlsbFN0eWxlIiwiZmlsbFJ1bGUiLCJnbG9iYWxBbHBoYSIsImxpbmVXaWR0aCIsImxpbmVDYXAiLCJsaW5lSm9pbiIsIm1pdGVyTGltaXQiLCJnbG9iYWxDb21wb3NpdGVPcGVyYXRpb24iLCJmb250IiwiZmlsdGVyIl07Zm9yKGNvbnN0IHMgb2YgaSl2b2lkIDAhPT10W3NdJiYoZVtzXT10W3NdKTt2b2lkIDAhPT10LnNldExpbmVEYXNoJiYoZS5zZXRMaW5lRGFzaCh0LmdldExpbmVEYXNoKCkpLGUubGluZURhc2hPZmZzZXQ9dC5saW5lRGFzaE9mZnNldCl9ZnVuY3Rpb24gbGUodCl7aWYodC5zdHJva2VTdHlsZT10LmZpbGxTdHlsZT0iIzAwMDAwMCIsdC5maWxsUnVsZT0ibm9uemVybyIsdC5nbG9iYWxBbHBoYT0xLHQubGluZVdpZHRoPTEsdC5saW5lQ2FwPSJidXR0Iix0LmxpbmVKb2luPSJtaXRlciIsdC5taXRlckxpbWl0PTEwLHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsdC5mb250PSIxMHB4IHNhbnMtc2VyaWYiLHZvaWQgMCE9PXQuc2V0TGluZURhc2gmJih0LnNldExpbmVEYXNoKFtdKSx0LmxpbmVEYXNoT2Zmc2V0PTApLCFuKXtjb25zdHtmaWx0ZXI6ZX09dDsibm9uZSIhPT1lJiYiIiE9PWUmJih0LmZpbHRlcj0ibm9uZSIpfX1mdW5jdGlvbiBjZSh0LGUpe2lmKGUpcmV0dXJuITA7Y29uc3QgaT16LnNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKHQpO2lbMF09TWF0aC5mcm91bmQoaVswXSksaVsxXT1NYXRoLmZyb3VuZChpWzFdKTtjb25zdCBzPU1hdGguZnJvdW5kKChnbG9iYWxUaGlzLmRldmljZVBpeGVsUmF0aW98fDEpKlkuUERGX1RPX0NTU19VTklUUyk7cmV0dXJuIGlbMF08PXMmJmlbMV08PXN9Y29uc3QgZGU9WyJidXR0Iiwicm91bmQiLCJzcXVhcmUiXSx1ZT1bIm1pdGVyIiwicm91bmQiLCJiZXZlbCJdLHBlPXt9LGdlPXt9O2NsYXNzIGZle2NvbnN0cnVjdG9yKHQsZSxpLHMsbix7b3B0aW9uYWxDb250ZW50Q29uZmlnOnIsbWFya2VkQ29udGVudFN0YWNrOmE9bnVsbH0sbyxoKXt0aGlzLmN0eD10LHRoaXMuY3VycmVudD1uZXcgcmUodGhpcy5jdHguY2FudmFzLndpZHRoLHRoaXMuY3R4LmNhbnZhcy5oZWlnaHQpLHRoaXMuc3RhdGVTdGFjaz1bXSx0aGlzLnBlbmRpbmdDbGlwPW51bGwsdGhpcy5wZW5kaW5nRU9GaWxsPSExLHRoaXMucmVzPW51bGwsdGhpcy54b2Jqcz1udWxsLHRoaXMuY29tbW9uT2Jqcz1lLHRoaXMub2Jqcz1pLHRoaXMuY2FudmFzRmFjdG9yeT1zLHRoaXMuZmlsdGVyRmFjdG9yeT1uLHRoaXMuZ3JvdXBTdGFjaz1bXSx0aGlzLnByb2Nlc3NpbmdUeXBlMz1udWxsLHRoaXMuYmFzZVRyYW5zZm9ybT1udWxsLHRoaXMuYmFzZVRyYW5zZm9ybVN0YWNrPVtdLHRoaXMuZ3JvdXBMZXZlbD0wLHRoaXMuc21hc2tTdGFjaz1bXSx0aGlzLnNtYXNrQ291bnRlcj0wLHRoaXMudGVtcFNNYXNrPW51bGwsdGhpcy5zdXNwZW5kZWRDdHg9bnVsbCx0aGlzLmNvbnRlbnRWaXNpYmxlPSEwLHRoaXMubWFya2VkQ29udGVudFN0YWNrPWF8fFtdLHRoaXMub3B0aW9uYWxDb250ZW50Q29uZmlnPXIsdGhpcy5jYWNoZWRDYW52YXNlcz1uZXcgc2UodGhpcy5jYW52YXNGYWN0b3J5KSx0aGlzLmNhY2hlZFBhdHRlcm5zPW5ldyBNYXAsdGhpcy5hbm5vdGF0aW9uQ2FudmFzTWFwPW8sdGhpcy52aWV3cG9ydFNjYWxlPTEsdGhpcy5vdXRwdXRTY2FsZVg9MSx0aGlzLm91dHB1dFNjYWxlWT0xLHRoaXMucGFnZUNvbG9ycz1oLHRoaXMuX2NhY2hlZFNjYWxlRm9yU3Ryb2tpbmc9Wy0xLDBdLHRoaXMuX2NhY2hlZEdldFNpbmdsZVBpeGVsV2lkdGg9bnVsbCx0aGlzLl9jYWNoZWRCaXRtYXBzTWFwPW5ldyBNYXB9Z2V0T2JqZWN0KHQsZT1udWxsKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC5zdGFydHNXaXRoKCJnXyIpP3RoaXMuY29tbW9uT2Jqcy5nZXQodCk6dGhpcy5vYmpzLmdldCh0KTplfWJlZ2luRHJhd2luZyh7dHJhbnNmb3JtOnQsdmlld3BvcnQ6ZSx0cmFuc3BhcmVuY3k6aT0hMSxiYWNrZ3JvdW5kOnM9bnVsbH0pe2NvbnN0IG49dGhpcy5jdHguY2FudmFzLndpZHRoLHI9dGhpcy5jdHguY2FudmFzLmhlaWdodCxhPXRoaXMuY3R4LmZpbGxTdHlsZTtpZih0aGlzLmN0eC5maWxsU3R5bGU9c3x8IiNmZmZmZmYiLHRoaXMuY3R4LmZpbGxSZWN0KDAsMCxuLHIpLHRoaXMuY3R4LmZpbGxTdHlsZT1hLGkpe2NvbnN0IHQ9dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoInRyYW5zcGFyZW50IixuLHIpO3RoaXMuY29tcG9zaXRlQ3R4PXRoaXMuY3R4LHRoaXMudHJhbnNwYXJlbnRDYW52YXM9dC5jYW52YXMsdGhpcy5jdHg9dC5jb250ZXh0LHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC50cmFuc2Zvcm0oLi4uZnQodGhpcy5jb21wb3NpdGVDdHgpKX10aGlzLmN0eC5zYXZlKCksbGUodGhpcy5jdHgpLHQmJih0aGlzLmN0eC50cmFuc2Zvcm0oLi4udCksdGhpcy5vdXRwdXRTY2FsZVg9dFswXSx0aGlzLm91dHB1dFNjYWxlWT10WzBdKSx0aGlzLmN0eC50cmFuc2Zvcm0oLi4uZS50cmFuc2Zvcm0pLHRoaXMudmlld3BvcnRTY2FsZT1lLnNjYWxlLHRoaXMuYmFzZVRyYW5zZm9ybT1mdCh0aGlzLmN0eCl9ZXhlY3V0ZU9wZXJhdG9yTGlzdCh0LGUsaSxzKXtjb25zdCBuPXQuYXJnc0FycmF5LHI9dC5mbkFycmF5O2xldCBhPWV8fDA7Y29uc3Qgbz1uLmxlbmd0aDtpZihvPT09YSlyZXR1cm4gYTtjb25zdCBoPW8tYT4xMCYmImZ1bmN0aW9uIj09dHlwZW9mIGksbD1oP0RhdGUubm93KCkrMTU6MDtsZXQgYz0wO2NvbnN0IGQ9dGhpcy5jb21tb25PYmpzLHU9dGhpcy5vYmpzO2xldCBwO2Zvcig7Oyl7aWYodm9pZCAwIT09cyYmYT09PXMubmV4dEJyZWFrUG9pbnQpcmV0dXJuIHMuYnJlYWtJdChhLGkpLGE7aWYocD1yW2FdLHAhPT1mLmRlcGVuZGVuY3kpdGhpc1twXS5hcHBseSh0aGlzLG5bYV0pO2Vsc2UgZm9yKGNvbnN0IHQgb2YgblthXSl7Y29uc3QgZT10LnN0YXJ0c1dpdGgoImdfIik/ZDp1O2lmKCFlLmhhcyh0KSlyZXR1cm4gZS5nZXQodCxpKSxhfWlmKGErKyxhPT09bylyZXR1cm4gYTtpZihoJiYrK2M+MTApe2lmKERhdGUubm93KCk+bClyZXR1cm4gaSgpLGE7Yz0wfX19I0xlKCl7Zm9yKDt0aGlzLnN0YXRlU3RhY2subGVuZ3RofHx0aGlzLmluU01hc2tNb2RlOyl0aGlzLnJlc3RvcmUoKTt0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2s9bnVsbCx0aGlzLmN0eC5yZXN0b3JlKCksdGhpcy50cmFuc3BhcmVudENhbnZhcyYmKHRoaXMuY3R4PXRoaXMuY29tcG9zaXRlQ3R4LHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLnRyYW5zcGFyZW50Q2FudmFzLDAsMCksdGhpcy5jdHgucmVzdG9yZSgpLHRoaXMudHJhbnNwYXJlbnRDYW52YXM9bnVsbCl9ZW5kRHJhd2luZygpe3RoaXMuI0xlKCksdGhpcy5jYWNoZWRDYW52YXNlcy5jbGVhcigpLHRoaXMuY2FjaGVkUGF0dGVybnMuY2xlYXIoKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9jYWNoZWRCaXRtYXBzTWFwLnZhbHVlcygpKXtmb3IoY29uc3QgZSBvZiB0LnZhbHVlcygpKSJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQmJmUgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCYmKGUud2lkdGg9ZS5oZWlnaHQ9MCk7dC5jbGVhcigpfXRoaXMuX2NhY2hlZEJpdG1hcHNNYXAuY2xlYXIoKSx0aGlzLiNGZSgpfSNGZSgpe2lmKHRoaXMucGFnZUNvbG9ycyl7Y29uc3QgdD10aGlzLmZpbHRlckZhY3RvcnkuYWRkSENNRmlsdGVyKHRoaXMucGFnZUNvbG9ycy5mb3JlZ3JvdW5kLHRoaXMucGFnZUNvbG9ycy5iYWNrZ3JvdW5kKTtpZigibm9uZSIhPT10KXtjb25zdCBlPXRoaXMuY3R4LmZpbHRlcjt0aGlzLmN0eC5maWx0ZXI9dCx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5jdHguY2FudmFzLDAsMCksdGhpcy5jdHguZmlsdGVyPWV9fX1fc2NhbGVJbWFnZSh0LGUpe2NvbnN0IGk9dC53aWR0aCxzPXQuaGVpZ2h0O2xldCBuLHIsYT1NYXRoLm1heChNYXRoLmh5cG90KGVbMF0sZVsxXSksMSksbz1NYXRoLm1heChNYXRoLmh5cG90KGVbMl0sZVszXSksMSksaD1pLGw9cyxjPSJwcmVzY2FsZTEiO2Zvcig7YT4yJiZoPjF8fG8+MiYmbD4xOyl7bGV0IGU9aCxpPWw7YT4yJiZoPjEmJihlPWg+PTE2Mzg0P01hdGguZmxvb3IoaC8yKS0xfHwxOk1hdGguY2VpbChoLzIpLGEvPWgvZSksbz4yJiZsPjEmJihpPWw+PTE2Mzg0P01hdGguZmxvb3IobC8yKS0xfHwxOk1hdGguY2VpbChsKS8yLG8vPWwvaSksbj10aGlzLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcyhjLGUsaSkscj1uLmNvbnRleHQsci5jbGVhclJlY3QoMCwwLGUsaSksci5kcmF3SW1hZ2UodCwwLDAsaCxsLDAsMCxlLGkpLHQ9bi5jYW52YXMsaD1lLGw9aSxjPSJwcmVzY2FsZTEiPT09Yz8icHJlc2NhbGUyIjoicHJlc2NhbGUxIn1yZXR1cm57aW1nOnQscGFpbnRXaWR0aDpoLHBhaW50SGVpZ2h0Omx9fV9jcmVhdGVNYXNrQ2FudmFzKHQpe2NvbnN0IGU9dGhpcy5jdHgse3dpZHRoOmksaGVpZ2h0OnN9PXQsbj10aGlzLmN1cnJlbnQuZmlsbENvbG9yLHI9dGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsLGE9ZnQoZSk7bGV0IG8saCxsLGM7aWYoKHQuYml0bWFwfHx0LmRhdGEpJiZ0LmNvdW50PjEpe2NvbnN0IGU9dC5iaXRtYXB8fHQuZGF0YS5idWZmZXI7aD1KU09OLnN0cmluZ2lmeShyP2E6W2Euc2xpY2UoMCw0KSxuXSksbz10aGlzLl9jYWNoZWRCaXRtYXBzTWFwLmdldChlKSxvfHwobz1uZXcgTWFwLHRoaXMuX2NhY2hlZEJpdG1hcHNNYXAuc2V0KGUsbykpO2NvbnN0IGk9by5nZXQoaCk7aWYoaSYmIXIpcmV0dXJue2NhbnZhczppLG9mZnNldFg6TWF0aC5yb3VuZChNYXRoLm1pbihhWzBdLGFbMl0pK2FbNF0pLG9mZnNldFk6TWF0aC5yb3VuZChNYXRoLm1pbihhWzFdLGFbM10pK2FbNV0pfTtsPWl9bHx8KGM9dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoIm1hc2tDYW52YXMiLGkscyksb2UoYy5jb250ZXh0LHQpKTtsZXQgZD16LnRyYW5zZm9ybShhLFsxL2ksMCwwLC0xL3MsMCwwXSk7ZD16LnRyYW5zZm9ybShkLFsxLDAsMCwxLDAsLXNdKTtjb25zdFt1LHAsZyxmXT16LmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KFswLDAsaSxzXSxkKSxtPU1hdGgucm91bmQoZy11KXx8MSxiPU1hdGgucm91bmQoZi1wKXx8MSx2PXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJmaWxsQ2FudmFzIixtLGIpLHk9di5jb250ZXh0LEE9dSx3PXA7eS50cmFuc2xhdGUoLUEsLXcpLHkudHJhbnNmb3JtKC4uLmQpLGx8fChsPXRoaXMuX3NjYWxlSW1hZ2UoYy5jYW52YXMsbXQoeSkpLGw9bC5pbWcsbyYmciYmby5zZXQoaCxsKSkseS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9Y2UoZnQoeSksdC5pbnRlcnBvbGF0ZSksbmUoeSxsLDAsMCxsLndpZHRoLGwuaGVpZ2h0LDAsMCxpLHMpLHkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2UtaW4iO2NvbnN0IHg9ei50cmFuc2Zvcm0obXQoeSksWzEsMCwwLDEsLUEsLXddKTtyZXR1cm4geS5maWxsU3R5bGU9cj9uLmdldFBhdHRlcm4oZSx0aGlzLHgsV3QpOm4seS5maWxsUmVjdCgwLDAsaSxzKSxvJiYhciYmKHRoaXMuY2FjaGVkQ2FudmFzZXMuZGVsZXRlKCJmaWxsQ2FudmFzIiksby5zZXQoaCx2LmNhbnZhcykpLHtjYW52YXM6di5jYW52YXMsb2Zmc2V0WDpNYXRoLnJvdW5kKEEpLG9mZnNldFk6TWF0aC5yb3VuZCh3KX19c2V0TGluZVdpZHRoKHQpe3QhPT10aGlzLmN1cnJlbnQubGluZVdpZHRoJiYodGhpcy5fY2FjaGVkU2NhbGVGb3JTdHJva2luZ1swXT0tMSksdGhpcy5jdXJyZW50LmxpbmVXaWR0aD10LHRoaXMuY3R4LmxpbmVXaWR0aD10fXNldExpbmVDYXAodCl7dGhpcy5jdHgubGluZUNhcD1kZVt0XX1zZXRMaW5lSm9pbih0KXt0aGlzLmN0eC5saW5lSm9pbj11ZVt0XX1zZXRNaXRlckxpbWl0KHQpe3RoaXMuY3R4Lm1pdGVyTGltaXQ9dH1zZXREYXNoKHQsZSl7Y29uc3QgaT10aGlzLmN0eDt2b2lkIDAhPT1pLnNldExpbmVEYXNoJiYoaS5zZXRMaW5lRGFzaCh0KSxpLmxpbmVEYXNoT2Zmc2V0PWUpfXNldFJlbmRlcmluZ0ludGVudCh0KXt9c2V0RmxhdG5lc3ModCl7fXNldEdTdGF0ZSh0KXtmb3IoY29uc3RbZSxpXW9mIHQpc3dpdGNoKGUpe2Nhc2UiTFciOnRoaXMuc2V0TGluZVdpZHRoKGkpO2JyZWFrO2Nhc2UiTEMiOnRoaXMuc2V0TGluZUNhcChpKTticmVhaztjYXNlIkxKIjp0aGlzLnNldExpbmVKb2luKGkpO2JyZWFrO2Nhc2UiTUwiOnRoaXMuc2V0TWl0ZXJMaW1pdChpKTticmVhaztjYXNlIkQiOnRoaXMuc2V0RGFzaChpWzBdLGlbMV0pO2JyZWFrO2Nhc2UiUkkiOnRoaXMuc2V0UmVuZGVyaW5nSW50ZW50KGkpO2JyZWFrO2Nhc2UiRkwiOnRoaXMuc2V0RmxhdG5lc3MoaSk7YnJlYWs7Y2FzZSJGb250Ijp0aGlzLnNldEZvbnQoaVswXSxpWzFdKTticmVhaztjYXNlIkNBIjp0aGlzLmN1cnJlbnQuc3Ryb2tlQWxwaGE9aTticmVhaztjYXNlImNhIjp0aGlzLmN1cnJlbnQuZmlsbEFscGhhPWksdGhpcy5jdHguZ2xvYmFsQWxwaGE9aTticmVhaztjYXNlIkJNIjp0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249aTticmVhaztjYXNlIlNNYXNrIjp0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2s9aT90aGlzLnRlbXBTTWFzazpudWxsLHRoaXMudGVtcFNNYXNrPW51bGwsdGhpcy5jaGVja1NNYXNrU3RhdGUoKTticmVhaztjYXNlIlRSIjp0aGlzLmN0eC5maWx0ZXI9dGhpcy5jdXJyZW50LnRyYW5zZmVyTWFwcz10aGlzLmZpbHRlckZhY3RvcnkuYWRkRmlsdGVyKGkpfX1nZXQgaW5TTWFza01vZGUoKXtyZXR1cm4hIXRoaXMuc3VzcGVuZGVkQ3R4fWNoZWNrU01hc2tTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5pblNNYXNrTW9kZTt0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2smJiF0P3RoaXMuYmVnaW5TTWFza01vZGUoKTohdGhpcy5jdXJyZW50LmFjdGl2ZVNNYXNrJiZ0JiZ0aGlzLmVuZFNNYXNrTW9kZSgpfWJlZ2luU01hc2tNb2RlKCl7aWYodGhpcy5pblNNYXNrTW9kZSl0aHJvdyBuZXcgRXJyb3IoImJlZ2luU01hc2tNb2RlIGNhbGxlZCB3aGlsZSBhbHJlYWR5IGluIHNtYXNrIG1vZGUiKTtjb25zdCB0PXRoaXMuY3R4LmNhbnZhcy53aWR0aCxlPXRoaXMuY3R4LmNhbnZhcy5oZWlnaHQsaT0ic21hc2tHcm91cEF0Iit0aGlzLmdyb3VwTGV2ZWwscz10aGlzLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcyhpLHQsZSk7dGhpcy5zdXNwZW5kZWRDdHg9dGhpcy5jdHgsdGhpcy5jdHg9cy5jb250ZXh0O2NvbnN0IG49dGhpcy5jdHg7bi5zZXRUcmFuc2Zvcm0oLi4uZnQodGhpcy5zdXNwZW5kZWRDdHgpKSxoZSh0aGlzLnN1c3BlbmRlZEN0eCxuKSxmdW5jdGlvbih0LGUpe2lmKHQuX3JlbW92ZU1pcnJvcmluZyl0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgaXMgYWxyZWFkeSBmb3J3YXJkaW5nIG9wZXJhdGlvbnMuIik7dC5fX29yaWdpbmFsU2F2ZT10LnNhdmUsdC5fX29yaWdpbmFsUmVzdG9yZT10LnJlc3RvcmUsdC5fX29yaWdpbmFsUm90YXRlPXQucm90YXRlLHQuX19vcmlnaW5hbFNjYWxlPXQuc2NhbGUsdC5fX29yaWdpbmFsVHJhbnNsYXRlPXQudHJhbnNsYXRlLHQuX19vcmlnaW5hbFRyYW5zZm9ybT10LnRyYW5zZm9ybSx0Ll9fb3JpZ2luYWxTZXRUcmFuc2Zvcm09dC5zZXRUcmFuc2Zvcm0sdC5fX29yaWdpbmFsUmVzZXRUcmFuc2Zvcm09dC5yZXNldFRyYW5zZm9ybSx0Ll9fb3JpZ2luYWxDbGlwPXQuY2xpcCx0Ll9fb3JpZ2luYWxNb3ZlVG89dC5tb3ZlVG8sdC5fX29yaWdpbmFsTGluZVRvPXQubGluZVRvLHQuX19vcmlnaW5hbEJlemllckN1cnZlVG89dC5iZXppZXJDdXJ2ZVRvLHQuX19vcmlnaW5hbFJlY3Q9dC5yZWN0LHQuX19vcmlnaW5hbENsb3NlUGF0aD10LmNsb3NlUGF0aCx0Ll9fb3JpZ2luYWxCZWdpblBhdGg9dC5iZWdpblBhdGgsdC5fcmVtb3ZlTWlycm9yaW5nPSgpPT57dC5zYXZlPXQuX19vcmlnaW5hbFNhdmUsdC5yZXN0b3JlPXQuX19vcmlnaW5hbFJlc3RvcmUsdC5yb3RhdGU9dC5fX29yaWdpbmFsUm90YXRlLHQuc2NhbGU9dC5fX29yaWdpbmFsU2NhbGUsdC50cmFuc2xhdGU9dC5fX29yaWdpbmFsVHJhbnNsYXRlLHQudHJhbnNmb3JtPXQuX19vcmlnaW5hbFRyYW5zZm9ybSx0LnNldFRyYW5zZm9ybT10Ll9fb3JpZ2luYWxTZXRUcmFuc2Zvcm0sdC5yZXNldFRyYW5zZm9ybT10Ll9fb3JpZ2luYWxSZXNldFRyYW5zZm9ybSx0LmNsaXA9dC5fX29yaWdpbmFsQ2xpcCx0Lm1vdmVUbz10Ll9fb3JpZ2luYWxNb3ZlVG8sdC5saW5lVG89dC5fX29yaWdpbmFsTGluZVRvLHQuYmV6aWVyQ3VydmVUbz10Ll9fb3JpZ2luYWxCZXppZXJDdXJ2ZVRvLHQucmVjdD10Ll9fb3JpZ2luYWxSZWN0LHQuY2xvc2VQYXRoPXQuX19vcmlnaW5hbENsb3NlUGF0aCx0LmJlZ2luUGF0aD10Ll9fb3JpZ2luYWxCZWdpblBhdGgsZGVsZXRlIHQuX3JlbW92ZU1pcnJvcmluZ30sdC5zYXZlPWZ1bmN0aW9uKCl7ZS5zYXZlKCksdGhpcy5fX29yaWdpbmFsU2F2ZSgpfSx0LnJlc3RvcmU9ZnVuY3Rpb24oKXtlLnJlc3RvcmUoKSx0aGlzLl9fb3JpZ2luYWxSZXN0b3JlKCl9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKHQsaSl7ZS50cmFuc2xhdGUodCxpKSx0aGlzLl9fb3JpZ2luYWxUcmFuc2xhdGUodCxpKX0sdC5zY2FsZT1mdW5jdGlvbih0LGkpe2Uuc2NhbGUodCxpKSx0aGlzLl9fb3JpZ2luYWxTY2FsZSh0LGkpfSx0LnRyYW5zZm9ybT1mdW5jdGlvbih0LGkscyxuLHIsYSl7ZS50cmFuc2Zvcm0odCxpLHMsbixyLGEpLHRoaXMuX19vcmlnaW5hbFRyYW5zZm9ybSh0LGkscyxuLHIsYSl9LHQuc2V0VHJhbnNmb3JtPWZ1bmN0aW9uKHQsaSxzLG4scixhKXtlLnNldFRyYW5zZm9ybSh0LGkscyxuLHIsYSksdGhpcy5fX29yaWdpbmFsU2V0VHJhbnNmb3JtKHQsaSxzLG4scixhKX0sdC5yZXNldFRyYW5zZm9ybT1mdW5jdGlvbigpe2UucmVzZXRUcmFuc2Zvcm0oKSx0aGlzLl9fb3JpZ2luYWxSZXNldFRyYW5zZm9ybSgpfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtlLnJvdGF0ZSh0KSx0aGlzLl9fb3JpZ2luYWxSb3RhdGUodCl9LHQuY2xpcD1mdW5jdGlvbih0KXtlLmNsaXAodCksdGhpcy5fX29yaWdpbmFsQ2xpcCh0KX0sdC5tb3ZlVG89ZnVuY3Rpb24odCxpKXtlLm1vdmVUbyh0LGkpLHRoaXMuX19vcmlnaW5hbE1vdmVUbyh0LGkpfSx0LmxpbmVUbz1mdW5jdGlvbih0LGkpe2UubGluZVRvKHQsaSksdGhpcy5fX29yaWdpbmFsTGluZVRvKHQsaSl9LHQuYmV6aWVyQ3VydmVUbz1mdW5jdGlvbih0LGkscyxuLHIsYSl7ZS5iZXppZXJDdXJ2ZVRvKHQsaSxzLG4scixhKSx0aGlzLl9fb3JpZ2luYWxCZXppZXJDdXJ2ZVRvKHQsaSxzLG4scixhKX0sdC5yZWN0PWZ1bmN0aW9uKHQsaSxzLG4pe2UucmVjdCh0LGkscyxuKSx0aGlzLl9fb3JpZ2luYWxSZWN0KHQsaSxzLG4pfSx0LmNsb3NlUGF0aD1mdW5jdGlvbigpe2UuY2xvc2VQYXRoKCksdGhpcy5fX29yaWdpbmFsQ2xvc2VQYXRoKCl9LHQuYmVnaW5QYXRoPWZ1bmN0aW9uKCl7ZS5iZWdpblBhdGgoKSx0aGlzLl9fb3JpZ2luYWxCZWdpblBhdGgoKX19KG4sdGhpcy5zdXNwZW5kZWRDdHgpLHRoaXMuc2V0R1N0YXRlKFtbIkJNIiwic291cmNlLW92ZXIiXSxbImNhIiwxXSxbIkNBIiwxXV0pfWVuZFNNYXNrTW9kZSgpe2lmKCF0aGlzLmluU01hc2tNb2RlKXRocm93IG5ldyBFcnJvcigiZW5kU01hc2tNb2RlIGNhbGxlZCB3aGlsZSBub3QgaW4gc21hc2sgbW9kZSIpO3RoaXMuY3R4Ll9yZW1vdmVNaXJyb3JpbmcoKSxoZSh0aGlzLmN0eCx0aGlzLnN1c3BlbmRlZEN0eCksdGhpcy5jdHg9dGhpcy5zdXNwZW5kZWRDdHgsdGhpcy5zdXNwZW5kZWRDdHg9bnVsbH1jb21wb3NlKHQpe2lmKCF0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2spcmV0dXJuO3Q/KHRbMF09TWF0aC5mbG9vcih0WzBdKSx0WzFdPU1hdGguZmxvb3IodFsxXSksdFsyXT1NYXRoLmNlaWwodFsyXSksdFszXT1NYXRoLmNlaWwodFszXSkpOnQ9WzAsMCx0aGlzLmN0eC5jYW52YXMud2lkdGgsdGhpcy5jdHguY2FudmFzLmhlaWdodF07Y29uc3QgZT10aGlzLmN1cnJlbnQuYWN0aXZlU01hc2ssaT10aGlzLnN1c3BlbmRlZEN0eDt0aGlzLmNvbXBvc2VTTWFzayhpLGUsdGhpcy5jdHgsdCksdGhpcy5jdHguc2F2ZSgpLHRoaXMuY3R4LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLmN0eC5jYW52YXMud2lkdGgsdGhpcy5jdHguY2FudmFzLmhlaWdodCksdGhpcy5jdHgucmVzdG9yZSgpfWNvbXBvc2VTTWFzayh0LGUsaSxzKXtjb25zdCBuPXNbMF0scj1zWzFdLGE9c1syXS1uLG89c1szXS1yOzAhPT1hJiYwIT09byYmKHRoaXMuZ2VuZXJpY0NvbXBvc2VTTWFzayhlLmNvbnRleHQsaSxhLG8sZS5zdWJ0eXBlLGUuYmFja2Ryb3AsZS50cmFuc2Zlck1hcCxuLHIsZS5vZmZzZXRYLGUub2Zmc2V0WSksdC5zYXZlKCksdC5nbG9iYWxBbHBoYT0xLHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsdC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHQuZHJhd0ltYWdlKGkuY2FudmFzLDAsMCksdC5yZXN0b3JlKCkpfWdlbmVyaWNDb21wb3NlU01hc2sodCxlLGkscyxuLHIsYSxvLGgsbCxjKXtsZXQgZD10LmNhbnZhcyx1PW8tbCxwPWgtYztpZihyKWlmKHU8MHx8cDwwfHx1K2k+ZC53aWR0aHx8cCtzPmQuaGVpZ2h0KXtjb25zdCB0PXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJtYXNrRXh0ZW5zaW9uIixpLHMpLGU9dC5jb250ZXh0O2UuZHJhd0ltYWdlKGQsLXUsLXApLHIuc29tZSgodD0+MCE9PXQpKSYmKGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1hdG9wIixlLmZpbGxTdHlsZT16Lm1ha2VIZXhDb2xvciguLi5yKSxlLmZpbGxSZWN0KDAsMCxpLHMpLGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIpLGQ9dC5jYW52YXMsdT1wPTB9ZWxzZSBpZihyLnNvbWUoKHQ9PjAhPT10KSkpe3Quc2F2ZSgpLHQuZ2xvYmFsQWxwaGE9MSx0LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCk7Y29uc3QgZT1uZXcgUGF0aDJEO2UucmVjdCh1LHAsaSxzKSx0LmNsaXAoZSksdC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLWF0b3AiLHQuZmlsbFN0eWxlPXoubWFrZUhleENvbG9yKC4uLnIpLHQuZmlsbFJlY3QodSxwLGkscyksdC5yZXN0b3JlKCl9ZS5zYXZlKCksZS5nbG9iYWxBbHBoYT0xLGUuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSwiQWxwaGEiPT09biYmYT9lLmZpbHRlcj10aGlzLmZpbHRlckZhY3RvcnkuYWRkQWxwaGFGaWx0ZXIoYSk6Ikx1bWlub3NpdHkiPT09biYmKGUuZmlsdGVyPXRoaXMuZmlsdGVyRmFjdG9yeS5hZGRMdW1pbm9zaXR5RmlsdGVyKGEpKTtjb25zdCBnPW5ldyBQYXRoMkQ7Zy5yZWN0KG8saCxpLHMpLGUuY2xpcChnKSxlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24taW4iLGUuZHJhd0ltYWdlKGQsdSxwLGkscyxvLGgsaSxzKSxlLnJlc3RvcmUoKX1zYXZlKCl7dGhpcy5pblNNYXNrTW9kZT8oaGUodGhpcy5jdHgsdGhpcy5zdXNwZW5kZWRDdHgpLHRoaXMuc3VzcGVuZGVkQ3R4LnNhdmUoKSk6dGhpcy5jdHguc2F2ZSgpO2NvbnN0IHQ9dGhpcy5jdXJyZW50O3RoaXMuc3RhdGVTdGFjay5wdXNoKHQpLHRoaXMuY3VycmVudD10LmNsb25lKCl9cmVzdG9yZSgpezA9PT10aGlzLnN0YXRlU3RhY2subGVuZ3RoJiZ0aGlzLmluU01hc2tNb2RlJiZ0aGlzLmVuZFNNYXNrTW9kZSgpLDAhPT10aGlzLnN0YXRlU3RhY2subGVuZ3RoJiYodGhpcy5jdXJyZW50PXRoaXMuc3RhdGVTdGFjay5wb3AoKSx0aGlzLmluU01hc2tNb2RlPyh0aGlzLnN1c3BlbmRlZEN0eC5yZXN0b3JlKCksaGUodGhpcy5zdXNwZW5kZWRDdHgsdGhpcy5jdHgpKTp0aGlzLmN0eC5yZXN0b3JlKCksdGhpcy5jaGVja1NNYXNrU3RhdGUoKSx0aGlzLnBlbmRpbmdDbGlwPW51bGwsdGhpcy5fY2FjaGVkU2NhbGVGb3JTdHJva2luZ1swXT0tMSx0aGlzLl9jYWNoZWRHZXRTaW5nbGVQaXhlbFdpZHRoPW51bGwpfXRyYW5zZm9ybSh0LGUsaSxzLG4scil7dGhpcy5jdHgudHJhbnNmb3JtKHQsZSxpLHMsbixyKSx0aGlzLl9jYWNoZWRTY2FsZUZvclN0cm9raW5nWzBdPS0xLHRoaXMuX2NhY2hlZEdldFNpbmdsZVBpeGVsV2lkdGg9bnVsbH1jb25zdHJ1Y3RQYXRoKHQsZSxpKXtjb25zdCBzPXRoaXMuY3R4LG49dGhpcy5jdXJyZW50O2xldCByLGEsbz1uLngsaD1uLnk7Y29uc3QgbD1mdChzKSxjPTA9PT1sWzBdJiYwPT09bFszXXx8MD09PWxbMV0mJjA9PT1sWzJdLGQ9Yz9pLnNsaWNlKDApOm51bGw7Zm9yKGxldCBpPTAsdT0wLHA9dC5sZW5ndGg7aTxwO2krKylzd2l0Y2goMHx0W2ldKXtjYXNlIGYucmVjdGFuZ2xlOm89ZVt1KytdLGg9ZVt1KytdO2NvbnN0IHQ9ZVt1KytdLGk9ZVt1KytdLHA9byt0LGc9aCtpO3MubW92ZVRvKG8saCksMD09PXR8fDA9PT1pP3MubGluZVRvKHAsZyk6KHMubGluZVRvKHAsaCkscy5saW5lVG8ocCxnKSxzLmxpbmVUbyhvLGcpKSxjfHxuLnVwZGF0ZVJlY3RNaW5NYXgobCxbbyxoLHAsZ10pLHMuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSBmLm1vdmVUbzpvPWVbdSsrXSxoPWVbdSsrXSxzLm1vdmVUbyhvLGgpLGN8fG4udXBkYXRlUGF0aE1pbk1heChsLG8saCk7YnJlYWs7Y2FzZSBmLmxpbmVUbzpvPWVbdSsrXSxoPWVbdSsrXSxzLmxpbmVUbyhvLGgpLGN8fG4udXBkYXRlUGF0aE1pbk1heChsLG8saCk7YnJlYWs7Y2FzZSBmLmN1cnZlVG86cj1vLGE9aCxvPWVbdSs0XSxoPWVbdSs1XSxzLmJlemllckN1cnZlVG8oZVt1XSxlW3UrMV0sZVt1KzJdLGVbdSszXSxvLGgpLG4udXBkYXRlQ3VydmVQYXRoTWluTWF4KGwscixhLGVbdV0sZVt1KzFdLGVbdSsyXSxlW3UrM10sbyxoLGQpLHUrPTY7YnJlYWs7Y2FzZSBmLmN1cnZlVG8yOnI9byxhPWgscy5iZXppZXJDdXJ2ZVRvKG8saCxlW3VdLGVbdSsxXSxlW3UrMl0sZVt1KzNdKSxuLnVwZGF0ZUN1cnZlUGF0aE1pbk1heChsLHIsYSxvLGgsZVt1XSxlW3UrMV0sZVt1KzJdLGVbdSszXSxkKSxvPWVbdSsyXSxoPWVbdSszXSx1Kz00O2JyZWFrO2Nhc2UgZi5jdXJ2ZVRvMzpyPW8sYT1oLG89ZVt1KzJdLGg9ZVt1KzNdLHMuYmV6aWVyQ3VydmVUbyhlW3VdLGVbdSsxXSxvLGgsbyxoKSxuLnVwZGF0ZUN1cnZlUGF0aE1pbk1heChsLHIsYSxlW3VdLGVbdSsxXSxvLGgsbyxoLGQpLHUrPTQ7YnJlYWs7Y2FzZSBmLmNsb3NlUGF0aDpzLmNsb3NlUGF0aCgpfWMmJm4udXBkYXRlU2NhbGluZ1BhdGhNaW5NYXgobCxkKSxuLnNldEN1cnJlbnRQb2ludChvLGgpfWNsb3NlUGF0aCgpe3RoaXMuY3R4LmNsb3NlUGF0aCgpfXN0cm9rZSh0PSEwKXtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5jdXJyZW50LnN0cm9rZUNvbG9yO2UuZ2xvYmFsQWxwaGE9dGhpcy5jdXJyZW50LnN0cm9rZUFscGhhLHRoaXMuY29udGVudFZpc2libGUmJigib2JqZWN0Ij09dHlwZW9mIGkmJmk/LmdldFBhdHRlcm4/KGUuc2F2ZSgpLGUuc3Ryb2tlU3R5bGU9aS5nZXRQYXR0ZXJuKGUsdGhpcyxtdChlKSxHdCksdGhpcy5yZXNjYWxlQW5kU3Ryb2tlKCExKSxlLnJlc3RvcmUoKSk6dGhpcy5yZXNjYWxlQW5kU3Ryb2tlKCEwKSksdCYmdGhpcy5jb25zdW1lUGF0aCh0aGlzLmN1cnJlbnQuZ2V0Q2xpcHBlZFBhdGhCb3VuZGluZ0JveCgpKSxlLmdsb2JhbEFscGhhPXRoaXMuY3VycmVudC5maWxsQWxwaGF9Y2xvc2VTdHJva2UoKXt0aGlzLmNsb3NlUGF0aCgpLHRoaXMuc3Ryb2tlKCl9ZmlsbCh0PSEwKXtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5jdXJyZW50LmZpbGxDb2xvcjtsZXQgcz0hMTt0aGlzLmN1cnJlbnQucGF0dGVybkZpbGwmJihlLnNhdmUoKSxlLmZpbGxTdHlsZT1pLmdldFBhdHRlcm4oZSx0aGlzLG10KGUpLFd0KSxzPSEwKTtjb25zdCBuPXRoaXMuY3VycmVudC5nZXRDbGlwcGVkUGF0aEJvdW5kaW5nQm94KCk7dGhpcy5jb250ZW50VmlzaWJsZSYmbnVsbCE9PW4mJih0aGlzLnBlbmRpbmdFT0ZpbGw/KGUuZmlsbCgiZXZlbm9kZCIpLHRoaXMucGVuZGluZ0VPRmlsbD0hMSk6ZS5maWxsKCkpLHMmJmUucmVzdG9yZSgpLHQmJnRoaXMuY29uc3VtZVBhdGgobil9ZW9GaWxsKCl7dGhpcy5wZW5kaW5nRU9GaWxsPSEwLHRoaXMuZmlsbCgpfWZpbGxTdHJva2UoKXt0aGlzLmZpbGwoITEpLHRoaXMuc3Ryb2tlKCExKSx0aGlzLmNvbnN1bWVQYXRoKCl9ZW9GaWxsU3Ryb2tlKCl7dGhpcy5wZW5kaW5nRU9GaWxsPSEwLHRoaXMuZmlsbFN0cm9rZSgpfWNsb3NlRmlsbFN0cm9rZSgpe3RoaXMuY2xvc2VQYXRoKCksdGhpcy5maWxsU3Ryb2tlKCl9Y2xvc2VFT0ZpbGxTdHJva2UoKXt0aGlzLnBlbmRpbmdFT0ZpbGw9ITAsdGhpcy5jbG9zZVBhdGgoKSx0aGlzLmZpbGxTdHJva2UoKX1lbmRQYXRoKCl7dGhpcy5jb25zdW1lUGF0aCgpfWNsaXAoKXt0aGlzLnBlbmRpbmdDbGlwPXBlfWVvQ2xpcCgpe3RoaXMucGVuZGluZ0NsaXA9Z2V9YmVnaW5UZXh0KCl7dGhpcy5jdXJyZW50LnRleHRNYXRyaXg9cix0aGlzLmN1cnJlbnQudGV4dE1hdHJpeFNjYWxlPTEsdGhpcy5jdXJyZW50Lng9dGhpcy5jdXJyZW50LmxpbmVYPTAsdGhpcy5jdXJyZW50Lnk9dGhpcy5jdXJyZW50LmxpbmVZPTB9ZW5kVGV4dCgpe2NvbnN0IHQ9dGhpcy5wZW5kaW5nVGV4dFBhdGhzLGU9dGhpcy5jdHg7aWYodm9pZCAwIT09dCl7ZS5zYXZlKCksZS5iZWdpblBhdGgoKTtmb3IoY29uc3QgaSBvZiB0KWUuc2V0VHJhbnNmb3JtKC4uLmkudHJhbnNmb3JtKSxlLnRyYW5zbGF0ZShpLngsaS55KSxpLmFkZFRvUGF0aChlLGkuZm9udFNpemUpO2UucmVzdG9yZSgpLGUuY2xpcCgpLGUuYmVnaW5QYXRoKCksZGVsZXRlIHRoaXMucGVuZGluZ1RleHRQYXRoc31lbHNlIGUuYmVnaW5QYXRoKCl9c2V0Q2hhclNwYWNpbmcodCl7dGhpcy5jdXJyZW50LmNoYXJTcGFjaW5nPXR9c2V0V29yZFNwYWNpbmcodCl7dGhpcy5jdXJyZW50LndvcmRTcGFjaW5nPXR9c2V0SFNjYWxlKHQpe3RoaXMuY3VycmVudC50ZXh0SFNjYWxlPXQvMTAwfXNldExlYWRpbmcodCl7dGhpcy5jdXJyZW50LmxlYWRpbmc9LXR9c2V0Rm9udCh0LGUpe2NvbnN0IGk9dGhpcy5jb21tb25PYmpzLmdldCh0KSxzPXRoaXMuY3VycmVudDtpZighaSl0aHJvdyBuZXcgRXJyb3IoYENhbid0IGZpbmQgZm9udCBmb3IgJHt0fWApO2lmKHMuZm9udE1hdHJpeD1pLmZvbnRNYXRyaXh8fGEsMCE9PXMuZm9udE1hdHJpeFswXSYmMCE9PXMuZm9udE1hdHJpeFszXXx8dygiSW52YWxpZCBmb250IG1hdHJpeCBmb3IgZm9udCAiK3QpLGU8MD8oZT0tZSxzLmZvbnREaXJlY3Rpb249LTEpOnMuZm9udERpcmVjdGlvbj0xLHRoaXMuY3VycmVudC5mb250PWksdGhpcy5jdXJyZW50LmZvbnRTaXplPWUsaS5pc1R5cGUzRm9udClyZXR1cm47Y29uc3Qgbj1pLmxvYWRlZE5hbWV8fCJzYW5zLXNlcmlmIixyPWkuc3lzdGVtRm9udEluZm8/LmNzc3x8YCIke259IiwgJHtpLmZhbGxiYWNrTmFtZX1gO2xldCBvPSJub3JtYWwiO2kuYmxhY2s/bz0iOTAwIjppLmJvbGQmJihvPSJib2xkIik7Y29uc3QgaD1pLml0YWxpYz8iaXRhbGljIjoibm9ybWFsIjtsZXQgbD1lO2U8MTY/bD0xNjplPjEwMCYmKGw9MTAwKSx0aGlzLmN1cnJlbnQuZm9udFNpemVTY2FsZT1lL2wsdGhpcy5jdHguZm9udD1gJHtofSAke299ICR7bH1weCAke3J9YH1zZXRUZXh0UmVuZGVyaW5nTW9kZSh0KXt0aGlzLmN1cnJlbnQudGV4dFJlbmRlcmluZ01vZGU9dH1zZXRUZXh0UmlzZSh0KXt0aGlzLmN1cnJlbnQudGV4dFJpc2U9dH1tb3ZlVGV4dCh0LGUpe3RoaXMuY3VycmVudC54PXRoaXMuY3VycmVudC5saW5lWCs9dCx0aGlzLmN1cnJlbnQueT10aGlzLmN1cnJlbnQubGluZVkrPWV9c2V0TGVhZGluZ01vdmVUZXh0KHQsZSl7dGhpcy5zZXRMZWFkaW5nKC1lKSx0aGlzLm1vdmVUZXh0KHQsZSl9c2V0VGV4dE1hdHJpeCh0LGUsaSxzLG4scil7dGhpcy5jdXJyZW50LnRleHRNYXRyaXg9W3QsZSxpLHMsbixyXSx0aGlzLmN1cnJlbnQudGV4dE1hdHJpeFNjYWxlPU1hdGguaHlwb3QodCxlKSx0aGlzLmN1cnJlbnQueD10aGlzLmN1cnJlbnQubGluZVg9MCx0aGlzLmN1cnJlbnQueT10aGlzLmN1cnJlbnQubGluZVk9MH1uZXh0TGluZSgpe3RoaXMubW92ZVRleHQoMCx0aGlzLmN1cnJlbnQubGVhZGluZyl9cGFpbnRDaGFyKHQsZSxpLHMpe2NvbnN0IG49dGhpcy5jdHgscj10aGlzLmN1cnJlbnQsYT1yLmZvbnQsbz1yLnRleHRSZW5kZXJpbmdNb2RlLGg9ci5mb250U2l6ZS9yLmZvbnRTaXplU2NhbGUsbD0zJm8sYz0hISg0Jm8pLGQ9ci5wYXR0ZXJuRmlsbCYmIWEubWlzc2luZ0ZpbGU7bGV0IHU7KGEuZGlzYWJsZUZvbnRGYWNlfHxjfHxkKSYmKHU9YS5nZXRQYXRoR2VuZXJhdG9yKHRoaXMuY29tbW9uT2Jqcyx0KSksYS5kaXNhYmxlRm9udEZhY2V8fGQ/KG4uc2F2ZSgpLG4udHJhbnNsYXRlKGUsaSksbi5iZWdpblBhdGgoKSx1KG4saCkscyYmbi5zZXRUcmFuc2Zvcm0oLi4ucyksMCE9PWwmJjIhPT1sfHxuLmZpbGwoKSwxIT09bCYmMiE9PWx8fG4uc3Ryb2tlKCksbi5yZXN0b3JlKCkpOigwIT09bCYmMiE9PWx8fG4uZmlsbFRleHQodCxlLGkpLDEhPT1sJiYyIT09bHx8bi5zdHJva2VUZXh0KHQsZSxpKSksYyYmKHRoaXMucGVuZGluZ1RleHRQYXRoc3x8PVtdKS5wdXNoKHt0cmFuc2Zvcm06ZnQobikseDplLHk6aSxmb250U2l6ZTpoLGFkZFRvUGF0aDp1fSl9Z2V0IGlzRm9udFN1YnBpeGVsQUFFbmFibGVkKCl7Y29uc3R7Y29udGV4dDp0fT10aGlzLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygiaXNGb250U3VicGl4ZWxBQUVuYWJsZWQiLDEwLDEwKTt0LnNjYWxlKDEuNSwxKSx0LmZpbGxUZXh0KCJJIiwwLDEwKTtjb25zdCBlPXQuZ2V0SW1hZ2VEYXRhKDAsMCwxMCwxMCkuZGF0YTtsZXQgaT0hMTtmb3IobGV0IHQ9Mzt0PGUubGVuZ3RoO3QrPTQpaWYoZVt0XT4wJiZlW3RdPDI1NSl7aT0hMDticmVha31yZXR1cm4gQyh0aGlzLCJpc0ZvbnRTdWJwaXhlbEFBRW5hYmxlZCIsaSl9c2hvd1RleHQodCl7Y29uc3QgZT10aGlzLmN1cnJlbnQsaT1lLmZvbnQ7aWYoaS5pc1R5cGUzRm9udClyZXR1cm4gdGhpcy5zaG93VHlwZTNUZXh0KHQpO2NvbnN0IHM9ZS5mb250U2l6ZTtpZigwPT09cylyZXR1cm47Y29uc3Qgbj10aGlzLmN0eCxyPWUuZm9udFNpemVTY2FsZSxhPWUuY2hhclNwYWNpbmcsbz1lLndvcmRTcGFjaW5nLGg9ZS5mb250RGlyZWN0aW9uLGw9ZS50ZXh0SFNjYWxlKmgsYz10Lmxlbmd0aCxkPWkudmVydGljYWwsdT1kPzE6LTEscD1pLmRlZmF1bHRWTWV0cmljcyxnPXMqZS5mb250TWF0cml4WzBdLGY9MD09PWUudGV4dFJlbmRlcmluZ01vZGUmJiFpLmRpc2FibGVGb250RmFjZSYmIWUucGF0dGVybkZpbGw7bGV0IG07aWYobi5zYXZlKCksbi50cmFuc2Zvcm0oLi4uZS50ZXh0TWF0cml4KSxuLnRyYW5zbGF0ZShlLngsZS55K2UudGV4dFJpc2UpLGg+MD9uLnNjYWxlKGwsLTEpOm4uc2NhbGUobCwxKSxlLnBhdHRlcm5GaWxsKXtuLnNhdmUoKTtjb25zdCB0PWUuZmlsbENvbG9yLmdldFBhdHRlcm4obix0aGlzLG10KG4pLFd0KTttPWZ0KG4pLG4ucmVzdG9yZSgpLG4uZmlsbFN0eWxlPXR9bGV0IGI9ZS5saW5lV2lkdGg7Y29uc3Qgdj1lLnRleHRNYXRyaXhTY2FsZTtpZigwPT09dnx8MD09PWIpe2NvbnN0IHQ9MyZlLnRleHRSZW5kZXJpbmdNb2RlOzEhPT10JiYyIT09dHx8KGI9dGhpcy5nZXRTaW5nbGVQaXhlbFdpZHRoKCkpfWVsc2UgYi89djtpZigxIT09ciYmKG4uc2NhbGUocixyKSxiLz1yKSxuLmxpbmVXaWR0aD1iLGkuaXNJbnZhbGlkUERGanNGb250KXtjb25zdCBpPVtdO2xldCBzPTA7Zm9yKGNvbnN0IGUgb2YgdClpLnB1c2goZS51bmljb2RlKSxzKz1lLndpZHRoO3JldHVybiBuLmZpbGxUZXh0KGkuam9pbigiIiksMCwwKSxlLngrPXMqZypsLG4ucmVzdG9yZSgpLHZvaWQgdGhpcy5jb21wb3NlKCl9bGV0IHksQT0wO2Zvcih5PTA7eTxjOysreSl7Y29uc3QgZT10W3ldO2lmKCJudW1iZXIiPT10eXBlb2YgZSl7QSs9dSplKnMvMWUzO2NvbnRpbnVlfWxldCBsPSExO2NvbnN0IGM9KGUuaXNTcGFjZT9vOjApK2EsYj1lLmZvbnRDaGFyLHY9ZS5hY2NlbnQ7bGV0IHcseCxfPWUud2lkdGg7aWYoZCl7Y29uc3QgdD1lLnZtZXRyaWN8fHAsaT0tKGUudm1ldHJpYz90WzFdOi41Kl8pKmcscz10WzJdKmc7Xz10Py10WzBdOl8sdz1pL3IseD0oQStzKS9yfWVsc2Ugdz1BL3IseD0wO2lmKGkucmVtZWFzdXJlJiZfPjApe2NvbnN0IHQ9MWUzKm4ubWVhc3VyZVRleHQoYikud2lkdGgvcypyO2lmKF88dCYmdGhpcy5pc0ZvbnRTdWJwaXhlbEFBRW5hYmxlZCl7Y29uc3QgZT1fL3Q7bD0hMCxuLnNhdmUoKSxuLnNjYWxlKGUsMSksdy89ZX1lbHNlIF8hPT10JiYodys9KF8tdCkvMmUzKnMvcil9aWYodGhpcy5jb250ZW50VmlzaWJsZSYmKGUuaXNJbkZvbnR8fGkubWlzc2luZ0ZpbGUpKWlmKGYmJiF2KW4uZmlsbFRleHQoYix3LHgpO2Vsc2UgaWYodGhpcy5wYWludENoYXIoYix3LHgsbSksdil7Y29uc3QgdD13K3Mqdi5vZmZzZXQueC9yLGU9eC1zKnYub2Zmc2V0Lnkvcjt0aGlzLnBhaW50Q2hhcih2LmZvbnRDaGFyLHQsZSxtKX1BKz1kP18qZy1jKmg6XypnK2MqaCxsJiZuLnJlc3RvcmUoKX1kP2UueS09QTplLngrPUEqbCxuLnJlc3RvcmUoKSx0aGlzLmNvbXBvc2UoKX1zaG93VHlwZTNUZXh0KHQpe2NvbnN0IGU9dGhpcy5jdHgsaT10aGlzLmN1cnJlbnQscz1pLmZvbnQsbj1pLmZvbnRTaXplLHI9aS5mb250RGlyZWN0aW9uLG89cy52ZXJ0aWNhbD8xOi0xLGg9aS5jaGFyU3BhY2luZyxsPWkud29yZFNwYWNpbmcsYz1pLnRleHRIU2NhbGUqcixkPWkuZm9udE1hdHJpeHx8YSx1PXQubGVuZ3RoO2xldCBwLGcsZixtO2lmKDMhPT1pLnRleHRSZW5kZXJpbmdNb2RlJiYwIT09bil7Zm9yKHRoaXMuX2NhY2hlZFNjYWxlRm9yU3Ryb2tpbmdbMF09LTEsdGhpcy5fY2FjaGVkR2V0U2luZ2xlUGl4ZWxXaWR0aD1udWxsLGUuc2F2ZSgpLGUudHJhbnNmb3JtKC4uLmkudGV4dE1hdHJpeCksZS50cmFuc2xhdGUoaS54LGkueSksZS5zY2FsZShjLHIpLHA9MDtwPHU7KytwKXtpZihnPXRbcF0sIm51bWJlciI9PXR5cGVvZiBnKXttPW8qZypuLzFlMyx0aGlzLmN0eC50cmFuc2xhdGUobSwwKSxpLngrPW0qYztjb250aW51ZX1jb25zdCByPShnLmlzU3BhY2U/bDowKStoLGE9cy5jaGFyUHJvY09wZXJhdG9yTGlzdFtnLm9wZXJhdG9yTGlzdElkXTthPyh0aGlzLmNvbnRlbnRWaXNpYmxlJiYodGhpcy5wcm9jZXNzaW5nVHlwZTM9Zyx0aGlzLnNhdmUoKSxlLnNjYWxlKG4sbiksZS50cmFuc2Zvcm0oLi4uZCksdGhpcy5leGVjdXRlT3BlcmF0b3JMaXN0KGEpLHRoaXMucmVzdG9yZSgpKSxmPXouYXBwbHlUcmFuc2Zvcm0oW2cud2lkdGgsMF0sZClbMF0qbityLGUudHJhbnNsYXRlKGYsMCksaS54Kz1mKmMpOncoYFR5cGUzIGNoYXJhY3RlciAiJHtnLm9wZXJhdG9yTGlzdElkfSIgaXMgbm90IGF2YWlsYWJsZS5gKX1lLnJlc3RvcmUoKSx0aGlzLnByb2Nlc3NpbmdUeXBlMz1udWxsfX1zZXRDaGFyV2lkdGgodCxlKXt9c2V0Q2hhcldpZHRoQW5kQm91bmRzKHQsZSxpLHMsbixyKXt0aGlzLmN0eC5yZWN0KGkscyxuLWksci1zKSx0aGlzLmN0eC5jbGlwKCksdGhpcy5lbmRQYXRoKCl9Z2V0Q29sb3JOX1BhdHRlcm4odCl7bGV0IGU7aWYoIlRpbGluZ1BhdHRlcm4iPT09dFswXSl7Y29uc3QgaT10WzFdLHM9dGhpcy5iYXNlVHJhbnNmb3JtfHxmdCh0aGlzLmN0eCksbj17Y3JlYXRlQ2FudmFzR3JhcGhpY3M6dD0+bmV3IGZlKHQsdGhpcy5jb21tb25PYmpzLHRoaXMub2Jqcyx0aGlzLmNhbnZhc0ZhY3RvcnksdGhpcy5maWx0ZXJGYWN0b3J5LHtvcHRpb25hbENvbnRlbnRDb25maWc6dGhpcy5vcHRpb25hbENvbnRlbnRDb25maWcsbWFya2VkQ29udGVudFN0YWNrOnRoaXMubWFya2VkQ29udGVudFN0YWNrfSl9O2U9bmV3IHRlKHQsaSx0aGlzLmN0eCxuLHMpfWVsc2UgZT10aGlzLl9nZXRQYXR0ZXJuKHRbMV0sdFsyXSk7cmV0dXJuIGV9c2V0U3Ryb2tlQ29sb3JOKCl7dGhpcy5jdXJyZW50LnN0cm9rZUNvbG9yPXRoaXMuZ2V0Q29sb3JOX1BhdHRlcm4oYXJndW1lbnRzKX1zZXRGaWxsQ29sb3JOKCl7dGhpcy5jdXJyZW50LmZpbGxDb2xvcj10aGlzLmdldENvbG9yTl9QYXR0ZXJuKGFyZ3VtZW50cyksdGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsPSEwfXNldFN0cm9rZVJHQkNvbG9yKHQsZSxpKXt0aGlzLmN0eC5zdHJva2VTdHlsZT10aGlzLmN1cnJlbnQuc3Ryb2tlQ29sb3I9ei5tYWtlSGV4Q29sb3IodCxlLGkpfXNldFN0cm9rZVRyYW5zcGFyZW50KCl7dGhpcy5jdHguc3Ryb2tlU3R5bGU9dGhpcy5jdXJyZW50LnN0cm9rZUNvbG9yPSJ0cmFuc3BhcmVudCJ9c2V0RmlsbFJHQkNvbG9yKHQsZSxpKXt0aGlzLmN0eC5maWxsU3R5bGU9dGhpcy5jdXJyZW50LmZpbGxDb2xvcj16Lm1ha2VIZXhDb2xvcih0LGUsaSksdGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsPSExfXNldEZpbGxUcmFuc3BhcmVudCgpe3RoaXMuY3R4LmZpbGxTdHlsZT10aGlzLmN1cnJlbnQuZmlsbENvbG9yPSJ0cmFuc3BhcmVudCIsdGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsPSExfV9nZXRQYXR0ZXJuKHQsZT1udWxsKXtsZXQgaTtyZXR1cm4gdGhpcy5jYWNoZWRQYXR0ZXJucy5oYXModCk/aT10aGlzLmNhY2hlZFBhdHRlcm5zLmdldCh0KTooaT1mdW5jdGlvbih0KXtzd2l0Y2godFswXSl7Y2FzZSJSYWRpYWxBeGlhbCI6cmV0dXJuIG5ldyBLdCh0KTtjYXNlIk1lc2giOnJldHVybiBuZXcgSnQodCk7Y2FzZSJEdW1teSI6cmV0dXJuIG5ldyBadH10aHJvdyBuZXcgRXJyb3IoYFVua25vd24gSVIgdHlwZTogJHt0WzBdfWApfSh0aGlzLmdldE9iamVjdCh0KSksdGhpcy5jYWNoZWRQYXR0ZXJucy5zZXQodCxpKSksZSYmKGkubWF0cml4PWUpLGl9c2hhZGluZ0ZpbGwodCl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IGU9dGhpcy5jdHg7dGhpcy5zYXZlKCk7Y29uc3QgaT10aGlzLl9nZXRQYXR0ZXJuKHQpO2UuZmlsbFN0eWxlPWkuZ2V0UGF0dGVybihlLHRoaXMsbXQoZSksVnQpO2NvbnN0IHM9bXQoZSk7aWYocyl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6aX09ZS5jYW52YXMsW24scixhLG9dPXouZ2V0QXhpYWxBbGlnbmVkQm91bmRpbmdCb3goWzAsMCx0LGldLHMpO3RoaXMuY3R4LmZpbGxSZWN0KG4scixhLW4sby1yKX1lbHNlIHRoaXMuY3R4LmZpbGxSZWN0KC0xZTEwLC0xZTEwLDJlMTAsMmUxMCk7dGhpcy5jb21wb3NlKHRoaXMuY3VycmVudC5nZXRDbGlwcGVkUGF0aEJvdW5kaW5nQm94KCkpLHRoaXMucmVzdG9yZSgpfWJlZ2luSW5saW5lSW1hZ2UoKXt4KCJTaG91bGQgbm90IGNhbGwgYmVnaW5JbmxpbmVJbWFnZSIpfWJlZ2luSW1hZ2VEYXRhKCl7eCgiU2hvdWxkIG5vdCBjYWxsIGJlZ2luSW1hZ2VEYXRhIil9cGFpbnRGb3JtWE9iamVjdEJlZ2luKHQsZSl7aWYodGhpcy5jb250ZW50VmlzaWJsZSYmKHRoaXMuc2F2ZSgpLHRoaXMuYmFzZVRyYW5zZm9ybVN0YWNrLnB1c2godGhpcy5iYXNlVHJhbnNmb3JtKSx0JiZ0aGlzLnRyYW5zZm9ybSguLi50KSx0aGlzLmJhc2VUcmFuc2Zvcm09ZnQodGhpcy5jdHgpLGUpKXtjb25zdCB0PWVbMl0tZVswXSxpPWVbM10tZVsxXTt0aGlzLmN0eC5yZWN0KGVbMF0sZVsxXSx0LGkpLHRoaXMuY3VycmVudC51cGRhdGVSZWN0TWluTWF4KGZ0KHRoaXMuY3R4KSxlKSx0aGlzLmNsaXAoKSx0aGlzLmVuZFBhdGgoKX19cGFpbnRGb3JtWE9iamVjdEVuZCgpe3RoaXMuY29udGVudFZpc2libGUmJih0aGlzLnJlc3RvcmUoKSx0aGlzLmJhc2VUcmFuc2Zvcm09dGhpcy5iYXNlVHJhbnNmb3JtU3RhY2sucG9wKCkpfWJlZ2luR3JvdXAodCl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO3RoaXMuc2F2ZSgpLHRoaXMuaW5TTWFza01vZGUmJih0aGlzLmVuZFNNYXNrTW9kZSgpLHRoaXMuY3VycmVudC5hY3RpdmVTTWFzaz1udWxsKTtjb25zdCBlPXRoaXMuY3R4O3QuaXNvbGF0ZWR8fEEoIlRPRE86IFN1cHBvcnQgbm9uLWlzb2xhdGVkIGdyb3Vwcy4iKSx0Lmtub2Nrb3V0JiZ3KCJLbm9ja291dCBncm91cHMgbm90IHN1cHBvcnRlZC4iKTtjb25zdCBpPWZ0KGUpO2lmKHQubWF0cml4JiZlLnRyYW5zZm9ybSguLi50Lm1hdHJpeCksIXQuYmJveCl0aHJvdyBuZXcgRXJyb3IoIkJvdW5kaW5nIGJveCBpcyByZXF1aXJlZC4iKTtsZXQgcz16LmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KHQuYmJveCxmdChlKSk7Y29uc3Qgbj1bMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodF07cz16LmludGVyc2VjdChzLG4pfHxbMCwwLDAsMF07Y29uc3Qgcj1NYXRoLmZsb29yKHNbMF0pLGE9TWF0aC5mbG9vcihzWzFdKSxvPU1hdGgubWF4KE1hdGguY2VpbChzWzJdKS1yLDEpLGg9TWF0aC5tYXgoTWF0aC5jZWlsKHNbM10pLWEsMSk7dGhpcy5jdXJyZW50LnN0YXJ0TmV3UGF0aEFuZENsaXBCb3goWzAsMCxvLGhdKTtsZXQgbD0iZ3JvdXBBdCIrdGhpcy5ncm91cExldmVsO3Quc21hc2smJihsKz0iX3NtYXNrXyIrdGhpcy5zbWFza0NvdW50ZXIrKyUyKTtjb25zdCBjPXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKGwsbyxoKSxkPWMuY29udGV4dDtkLnRyYW5zbGF0ZSgtciwtYSksZC50cmFuc2Zvcm0oLi4uaSksdC5zbWFzaz90aGlzLnNtYXNrU3RhY2sucHVzaCh7Y2FudmFzOmMuY2FudmFzLGNvbnRleHQ6ZCxvZmZzZXRYOnIsb2Zmc2V0WTphLHN1YnR5cGU6dC5zbWFzay5zdWJ0eXBlLGJhY2tkcm9wOnQuc21hc2suYmFja2Ryb3AsdHJhbnNmZXJNYXA6dC5zbWFzay50cmFuc2Zlck1hcHx8bnVsbCxzdGFydFRyYW5zZm9ybUludmVyc2U6bnVsbH0pOihlLnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksZS50cmFuc2xhdGUocixhKSxlLnNhdmUoKSksaGUoZSxkKSx0aGlzLmN0eD1kLHRoaXMuc2V0R1N0YXRlKFtbIkJNIiwic291cmNlLW92ZXIiXSxbImNhIiwxXSxbIkNBIiwxXV0pLHRoaXMuZ3JvdXBTdGFjay5wdXNoKGUpLHRoaXMuZ3JvdXBMZXZlbCsrfWVuZEdyb3VwKHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjt0aGlzLmdyb3VwTGV2ZWwtLTtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5ncm91cFN0YWNrLnBvcCgpO2lmKHRoaXMuY3R4PWksdGhpcy5jdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSExLHQuc21hc2spdGhpcy50ZW1wU01hc2s9dGhpcy5zbWFza1N0YWNrLnBvcCgpLHRoaXMucmVzdG9yZSgpO2Vsc2V7dGhpcy5jdHgucmVzdG9yZSgpO2NvbnN0IHQ9ZnQodGhpcy5jdHgpO3RoaXMucmVzdG9yZSgpLHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5zZXRUcmFuc2Zvcm0oLi4udCk7Y29uc3QgaT16LmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KFswLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0XSx0KTt0aGlzLmN0eC5kcmF3SW1hZ2UoZS5jYW52YXMsMCwwKSx0aGlzLmN0eC5yZXN0b3JlKCksdGhpcy5jb21wb3NlKGkpfX1iZWdpbkFubm90YXRpb24odCxlLGkscyxuKXtpZih0aGlzLiNMZSgpLGxlKHRoaXMuY3R4KSx0aGlzLmN0eC5zYXZlKCksdGhpcy5zYXZlKCksdGhpcy5iYXNlVHJhbnNmb3JtJiZ0aGlzLmN0eC5zZXRUcmFuc2Zvcm0oLi4udGhpcy5iYXNlVHJhbnNmb3JtKSxlKXtjb25zdCBzPWVbMl0tZVswXSxyPWVbM10tZVsxXTtpZihuJiZ0aGlzLmFubm90YXRpb25DYW52YXNNYXApeyhpPWkuc2xpY2UoKSlbNF0tPWVbMF0saVs1XS09ZVsxXSwoZT1lLnNsaWNlKCkpWzBdPWVbMV09MCxlWzJdPXMsZVszXT1yO2NvbnN0W24sYV09ei5zaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShmdCh0aGlzLmN0eCkpLHt2aWV3cG9ydFNjYWxlOm99PXRoaXMsaD1NYXRoLmNlaWwocyp0aGlzLm91dHB1dFNjYWxlWCpvKSxsPU1hdGguY2VpbChyKnRoaXMub3V0cHV0U2NhbGVZKm8pO3RoaXMuYW5ub3RhdGlvbkNhbnZhcz10aGlzLmNhbnZhc0ZhY3RvcnkuY3JlYXRlKGgsbCk7Y29uc3R7Y2FudmFzOmMsY29udGV4dDpkfT10aGlzLmFubm90YXRpb25DYW52YXM7dGhpcy5hbm5vdGF0aW9uQ2FudmFzTWFwLnNldCh0LGMpLHRoaXMuYW5ub3RhdGlvbkNhbnZhcy5zYXZlZEN0eD10aGlzLmN0eCx0aGlzLmN0eD1kLHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5zZXRUcmFuc2Zvcm0obiwwLDAsLWEsMCxyKmEpLGxlKHRoaXMuY3R4KX1lbHNlIGxlKHRoaXMuY3R4KSx0aGlzLmVuZFBhdGgoKSx0aGlzLmN0eC5yZWN0KGVbMF0sZVsxXSxzLHIpLHRoaXMuY3R4LmNsaXAoKSx0aGlzLmN0eC5iZWdpblBhdGgoKX10aGlzLmN1cnJlbnQ9bmV3IHJlKHRoaXMuY3R4LmNhbnZhcy53aWR0aCx0aGlzLmN0eC5jYW52YXMuaGVpZ2h0KSx0aGlzLnRyYW5zZm9ybSguLi5pKSx0aGlzLnRyYW5zZm9ybSguLi5zKX1lbmRBbm5vdGF0aW9uKCl7dGhpcy5hbm5vdGF0aW9uQ2FudmFzJiYodGhpcy5jdHgucmVzdG9yZSgpLHRoaXMuI0ZlKCksdGhpcy5jdHg9dGhpcy5hbm5vdGF0aW9uQ2FudmFzLnNhdmVkQ3R4LGRlbGV0ZSB0aGlzLmFubm90YXRpb25DYW52YXMuc2F2ZWRDdHgsZGVsZXRlIHRoaXMuYW5ub3RhdGlvbkNhbnZhcyl9cGFpbnRJbWFnZU1hc2tYT2JqZWN0KHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjtjb25zdCBlPXQuY291bnQ7KHQ9dGhpcy5nZXRPYmplY3QodC5kYXRhLHQpKS5jb3VudD1lO2NvbnN0IGk9dGhpcy5jdHgscz10aGlzLnByb2Nlc3NpbmdUeXBlMztpZihzJiYodm9pZCAwPT09cy5jb21waWxlZCYmKHMuY29tcGlsZWQ9ZnVuY3Rpb24odCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6aX09dDtpZihlPjFlM3x8aT4xZTMpcmV0dXJuIG51bGw7Y29uc3Qgcz1uZXcgVWludDhBcnJheShbMCwyLDQsMCwxLDAsNSw0LDgsMTAsMCw4LDAsMiwxLDBdKSxuPWUrMTtsZXQgcixhLG8saD1uZXcgVWludDhBcnJheShuKihpKzEpKTtjb25zdCBsPWUrNyYtODtsZXQgYz1uZXcgVWludDhBcnJheShsKmkpLGQ9MDtmb3IoY29uc3QgZSBvZiB0LmRhdGEpe2xldCB0PTEyODtmb3IoO3Q+MDspY1tkKytdPWUmdD8wOjI1NSx0Pj49MX1sZXQgdT0wO2ZvcihkPTAsMCE9PWNbZF0mJihoWzBdPTEsKyt1KSxhPTE7YTxlO2ErKyljW2RdIT09Y1tkKzFdJiYoaFthXT1jW2RdPzI6MSwrK3UpLGQrKztmb3IoMCE9PWNbZF0mJihoW2FdPTIsKyt1KSxyPTE7cjxpO3IrKyl7ZD1yKmwsbz1yKm4sY1tkLWxdIT09Y1tkXSYmKGhbb109Y1tkXT8xOjgsKyt1KTtsZXQgdD0oY1tkXT80OjApKyhjW2QtbF0/ODowKTtmb3IoYT0xO2E8ZTthKyspdD0odD4+MikrKGNbZCsxXT80OjApKyhjW2QtbCsxXT84OjApLHNbdF0mJihoW28rYV09c1t0XSwrK3UpLGQrKztpZihjW2QtbF0hPT1jW2RdJiYoaFtvK2FdPWNbZF0/Mjo0LCsrdSksdT4xZTMpcmV0dXJuIG51bGx9Zm9yKGQ9bCooaS0xKSxvPXIqbiwwIT09Y1tkXSYmKGhbb109OCwrK3UpLGE9MTthPGU7YSsrKWNbZF0hPT1jW2QrMV0mJihoW28rYV09Y1tkXT80OjgsKyt1KSxkKys7aWYoMCE9PWNbZF0mJihoW28rYV09NCwrK3UpLHU+MWUzKXJldHVybiBudWxsO2NvbnN0IHA9bmV3IEludDMyQXJyYXkoWzAsbiwtMSwwLC1uLDAsMCwwLDFdKSxnPW5ldyBQYXRoMkQ7Zm9yKHI9MDt1JiZyPD1pO3IrKyl7bGV0IHQ9cipuO2NvbnN0IGk9dCtlO2Zvcig7dDxpJiYhaFt0XTspdCsrO2lmKHQ9PT1pKWNvbnRpbnVlO2cubW92ZVRvKHQlbixyKTtjb25zdCBzPXQ7bGV0IGE9aFt0XTtkb3tjb25zdCBlPXBbYV07ZG97dCs9ZX13aGlsZSghaFt0XSk7Y29uc3QgaT1oW3RdOzUhPT1pJiYxMCE9PWk/KGE9aSxoW3RdPTApOihhPWkmNTEqYT4+NCxoW3RdJj1hPj4yfGE8PDIpLGcubGluZVRvKHQlbix0L258MCksaFt0XXx8LS11fXdoaWxlKHMhPT10KTstLXJ9cmV0dXJuIGM9bnVsbCxoPW51bGwsZnVuY3Rpb24odCl7dC5zYXZlKCksdC5zY2FsZSgxL2UsLTEvaSksdC50cmFuc2xhdGUoMCwtaSksdC5maWxsKGcpLHQuYmVnaW5QYXRoKCksdC5yZXN0b3JlKCl9fSh0KSkscy5jb21waWxlZCkpcmV0dXJuIHZvaWQgcy5jb21waWxlZChpKTtjb25zdCBuPXRoaXMuX2NyZWF0ZU1hc2tDYW52YXModCkscj1uLmNhbnZhcztpLnNhdmUoKSxpLnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksaS5kcmF3SW1hZ2UocixuLm9mZnNldFgsbi5vZmZzZXRZKSxpLnJlc3RvcmUoKSx0aGlzLmNvbXBvc2UoKX1wYWludEltYWdlTWFza1hPYmplY3RSZXBlYXQodCxlLGk9MCxzPTAsbixyKXtpZighdGhpcy5jb250ZW50VmlzaWJsZSlyZXR1cm47dD10aGlzLmdldE9iamVjdCh0LmRhdGEsdCk7Y29uc3QgYT10aGlzLmN0eDthLnNhdmUoKTtjb25zdCBvPWZ0KGEpO2EudHJhbnNmb3JtKGUsaSxzLG4sMCwwKTtjb25zdCBoPXRoaXMuX2NyZWF0ZU1hc2tDYW52YXModCk7YS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSxoLm9mZnNldFgtb1s0XSxoLm9mZnNldFktb1s1XSk7Zm9yKGxldCB0PTAsbD1yLmxlbmd0aDt0PGw7dCs9Mil7Y29uc3QgbD16LnRyYW5zZm9ybShvLFtlLGkscyxuLHJbdF0sclt0KzFdXSksW2MsZF09ei5hcHBseVRyYW5zZm9ybShbMCwwXSxsKTthLmRyYXdJbWFnZShoLmNhbnZhcyxjLGQpfWEucmVzdG9yZSgpLHRoaXMuY29tcG9zZSgpfXBhaW50SW1hZ2VNYXNrWE9iamVjdEdyb3VwKHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5jdXJyZW50LmZpbGxDb2xvcixzPXRoaXMuY3VycmVudC5wYXR0ZXJuRmlsbDtmb3IoY29uc3QgbiBvZiB0KXtjb25zdHtkYXRhOnQsd2lkdGg6cixoZWlnaHQ6YSx0cmFuc2Zvcm06b309bixoPXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJtYXNrQ2FudmFzIixyLGEpLGw9aC5jb250ZXh0O2wuc2F2ZSgpLG9lKGwsdGhpcy5nZXRPYmplY3QodCxuKSksbC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsbC5maWxsU3R5bGU9cz9pLmdldFBhdHRlcm4obCx0aGlzLG10KGUpLFd0KTppLGwuZmlsbFJlY3QoMCwwLHIsYSksbC5yZXN0b3JlKCksZS5zYXZlKCksZS50cmFuc2Zvcm0oLi4ubyksZS5zY2FsZSgxLC0xKSxuZShlLGguY2FudmFzLDAsMCxyLGEsMCwtMSwxLDEpLGUucmVzdG9yZSgpfXRoaXMuY29tcG9zZSgpfXBhaW50SW1hZ2VYT2JqZWN0KHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjtjb25zdCBlPXRoaXMuZ2V0T2JqZWN0KHQpO2U/dGhpcy5wYWludElubGluZUltYWdlWE9iamVjdChlKTp3KCJEZXBlbmRlbnQgaW1hZ2UgaXNuJ3QgcmVhZHkgeWV0Iil9cGFpbnRJbWFnZVhPYmplY3RSZXBlYXQodCxlLGkscyl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IG49dGhpcy5nZXRPYmplY3QodCk7aWYoIW4pcmV0dXJuIHZvaWQgdygiRGVwZW5kZW50IGltYWdlIGlzbid0IHJlYWR5IHlldCIpO2NvbnN0IHI9bi53aWR0aCxhPW4uaGVpZ2h0LG89W107Zm9yKGxldCB0PTAsbj1zLmxlbmd0aDt0PG47dCs9MilvLnB1c2goe3RyYW5zZm9ybTpbZSwwLDAsaSxzW3RdLHNbdCsxXV0seDowLHk6MCx3OnIsaDphfSk7dGhpcy5wYWludElubGluZUltYWdlWE9iamVjdEdyb3VwKG4sbyl9YXBwbHlUcmFuc2Zlck1hcHNUb0NhbnZhcyh0KXtyZXR1cm4ibm9uZSIhPT10aGlzLmN1cnJlbnQudHJhbnNmZXJNYXBzJiYodC5maWx0ZXI9dGhpcy5jdXJyZW50LnRyYW5zZmVyTWFwcyx0LmRyYXdJbWFnZSh0LmNhbnZhcywwLDApLHQuZmlsdGVyPSJub25lIiksdC5jYW52YXN9YXBwbHlUcmFuc2Zlck1hcHNUb0JpdG1hcCh0KXtpZigibm9uZSI9PT10aGlzLmN1cnJlbnQudHJhbnNmZXJNYXBzKXJldHVybiB0LmJpdG1hcDtjb25zdHtiaXRtYXA6ZSx3aWR0aDppLGhlaWdodDpzfT10LG49dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoImlubGluZUltYWdlIixpLHMpLHI9bi5jb250ZXh0O3JldHVybiByLmZpbHRlcj10aGlzLmN1cnJlbnQudHJhbnNmZXJNYXBzLHIuZHJhd0ltYWdlKGUsMCwwKSxyLmZpbHRlcj0ibm9uZSIsbi5jYW52YXN9cGFpbnRJbmxpbmVJbWFnZVhPYmplY3QodCl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IGU9dC53aWR0aCxpPXQuaGVpZ2h0LHM9dGhpcy5jdHg7aWYodGhpcy5zYXZlKCksIW4pe2NvbnN0e2ZpbHRlcjp0fT1zOyJub25lIiE9PXQmJiIiIT09dCYmKHMuZmlsdGVyPSJub25lIil9bGV0IHI7aWYocy5zY2FsZSgxL2UsLTEvaSksdC5iaXRtYXApcj10aGlzLmFwcGx5VHJhbnNmZXJNYXBzVG9CaXRtYXAodCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgSFRNTEVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8IXQuZGF0YSlyPXQ7ZWxzZXtjb25zdCBzPXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJpbmxpbmVJbWFnZSIsZSxpKS5jb250ZXh0O2FlKHMsdCkscj10aGlzLmFwcGx5VHJhbnNmZXJNYXBzVG9DYW52YXMocyl9Y29uc3QgYT10aGlzLl9zY2FsZUltYWdlKHIsbXQocykpO3MuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPWNlKGZ0KHMpLHQuaW50ZXJwb2xhdGUpLG5lKHMsYS5pbWcsMCwwLGEucGFpbnRXaWR0aCxhLnBhaW50SGVpZ2h0LDAsLWksZSxpKSx0aGlzLmNvbXBvc2UoKSx0aGlzLnJlc3RvcmUoKX1wYWludElubGluZUltYWdlWE9iamVjdEdyb3VwKHQsZSl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IGk9dGhpcy5jdHg7bGV0IHM7aWYodC5iaXRtYXApcz10LmJpdG1hcDtlbHNle2NvbnN0IGU9dC53aWR0aCxpPXQuaGVpZ2h0LG49dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoImlubGluZUltYWdlIixlLGkpLmNvbnRleHQ7YWUobix0KSxzPXRoaXMuYXBwbHlUcmFuc2Zlck1hcHNUb0NhbnZhcyhuKX1mb3IoY29uc3QgdCBvZiBlKWkuc2F2ZSgpLGkudHJhbnNmb3JtKC4uLnQudHJhbnNmb3JtKSxpLnNjYWxlKDEsLTEpLG5lKGkscyx0LngsdC55LHQudyx0LmgsMCwtMSwxLDEpLGkucmVzdG9yZSgpO3RoaXMuY29tcG9zZSgpfXBhaW50U29saWRDb2xvckltYWdlTWFzaygpe3RoaXMuY29udGVudFZpc2libGUmJih0aGlzLmN0eC5maWxsUmVjdCgwLDAsMSwxKSx0aGlzLmNvbXBvc2UoKSl9bWFya1BvaW50KHQpe31tYXJrUG9pbnRQcm9wcyh0LGUpe31iZWdpbk1hcmtlZENvbnRlbnQodCl7dGhpcy5tYXJrZWRDb250ZW50U3RhY2sucHVzaCh7dmlzaWJsZTohMH0pfWJlZ2luTWFya2VkQ29udGVudFByb3BzKHQsZSl7Ik9DIj09PXQ/dGhpcy5tYXJrZWRDb250ZW50U3RhY2sucHVzaCh7dmlzaWJsZTp0aGlzLm9wdGlvbmFsQ29udGVudENvbmZpZy5pc1Zpc2libGUoZSl9KTp0aGlzLm1hcmtlZENvbnRlbnRTdGFjay5wdXNoKHt2aXNpYmxlOiEwfSksdGhpcy5jb250ZW50VmlzaWJsZT10aGlzLmlzQ29udGVudFZpc2libGUoKX1lbmRNYXJrZWRDb250ZW50KCl7dGhpcy5tYXJrZWRDb250ZW50U3RhY2sucG9wKCksdGhpcy5jb250ZW50VmlzaWJsZT10aGlzLmlzQ29udGVudFZpc2libGUoKX1iZWdpbkNvbXBhdCgpe31lbmRDb21wYXQoKXt9Y29uc3VtZVBhdGgodCl7Y29uc3QgZT10aGlzLmN1cnJlbnQuaXNFbXB0eUNsaXAoKTt0aGlzLnBlbmRpbmdDbGlwJiZ0aGlzLmN1cnJlbnQudXBkYXRlQ2xpcEZyb21QYXRoKCksdGhpcy5wZW5kaW5nQ2xpcHx8dGhpcy5jb21wb3NlKHQpO2NvbnN0IGk9dGhpcy5jdHg7dGhpcy5wZW5kaW5nQ2xpcCYmKGV8fCh0aGlzLnBlbmRpbmdDbGlwPT09Z2U/aS5jbGlwKCJldmVub2RkIik6aS5jbGlwKCkpLHRoaXMucGVuZGluZ0NsaXA9bnVsbCksdGhpcy5jdXJyZW50LnN0YXJ0TmV3UGF0aEFuZENsaXBCb3godGhpcy5jdXJyZW50LmNsaXBCb3gpLGkuYmVnaW5QYXRoKCl9Z2V0U2luZ2xlUGl4ZWxXaWR0aCgpe2lmKCF0aGlzLl9jYWNoZWRHZXRTaW5nbGVQaXhlbFdpZHRoKXtjb25zdCB0PWZ0KHRoaXMuY3R4KTtpZigwPT09dFsxXSYmMD09PXRbMl0pdGhpcy5fY2FjaGVkR2V0U2luZ2xlUGl4ZWxXaWR0aD0xL01hdGgubWluKE1hdGguYWJzKHRbMF0pLE1hdGguYWJzKHRbM10pKTtlbHNle2NvbnN0IGU9TWF0aC5hYnModFswXSp0WzNdLXRbMl0qdFsxXSksaT1NYXRoLmh5cG90KHRbMF0sdFsyXSkscz1NYXRoLmh5cG90KHRbMV0sdFszXSk7dGhpcy5fY2FjaGVkR2V0U2luZ2xlUGl4ZWxXaWR0aD1NYXRoLm1heChpLHMpL2V9fXJldHVybiB0aGlzLl9jYWNoZWRHZXRTaW5nbGVQaXhlbFdpZHRofWdldFNjYWxlRm9yU3Ryb2tpbmcoKXtpZigtMT09PXRoaXMuX2NhY2hlZFNjYWxlRm9yU3Ryb2tpbmdbMF0pe2NvbnN0e2xpbmVXaWR0aDp0fT10aGlzLmN1cnJlbnQse2E6ZSxiOmksYzpzLGQ6bn09dGhpcy5jdHguZ2V0VHJhbnNmb3JtKCk7bGV0IHIsYTtpZigwPT09aSYmMD09PXMpe2NvbnN0IGk9TWF0aC5hYnMoZSkscz1NYXRoLmFicyhuKTtpZihpPT09cylpZigwPT09dClyPWE9MS9pO2Vsc2V7Y29uc3QgZT1pKnQ7cj1hPWU8MT8xL2U6MX1lbHNlIGlmKDA9PT10KXI9MS9pLGE9MS9zO2Vsc2V7Y29uc3QgZT1pKnQsbj1zKnQ7cj1lPDE/MS9lOjEsYT1uPDE/MS9uOjF9fWVsc2V7Y29uc3Qgbz1NYXRoLmFicyhlKm4taSpzKSxoPU1hdGguaHlwb3QoZSxpKSxsPU1hdGguaHlwb3QocyxuKTtpZigwPT09dClyPWwvbyxhPWgvbztlbHNle2NvbnN0IGU9dCpvO3I9bD5lP2wvZToxLGE9aD5lP2gvZToxfX10aGlzLl9jYWNoZWRTY2FsZUZvclN0cm9raW5nWzBdPXIsdGhpcy5fY2FjaGVkU2NhbGVGb3JTdHJva2luZ1sxXT1hfXJldHVybiB0aGlzLl9jYWNoZWRTY2FsZUZvclN0cm9raW5nfXJlc2NhbGVBbmRTdHJva2UodCl7Y29uc3R7Y3R4OmV9PXRoaXMse2xpbmVXaWR0aDppfT10aGlzLmN1cnJlbnQsW3Msbl09dGhpcy5nZXRTY2FsZUZvclN0cm9raW5nKCk7aWYoZS5saW5lV2lkdGg9aXx8MSwxPT09cyYmMT09PW4pcmV0dXJuIHZvaWQgZS5zdHJva2UoKTtjb25zdCByPWUuZ2V0TGluZURhc2goKTtpZih0JiZlLnNhdmUoKSxlLnNjYWxlKHMsbiksci5sZW5ndGg+MCl7Y29uc3QgdD1NYXRoLm1heChzLG4pO2Uuc2V0TGluZURhc2goci5tYXAoKGU9PmUvdCkpKSxlLmxpbmVEYXNoT2Zmc2V0Lz10fWUuc3Ryb2tlKCksdCYmZS5yZXN0b3JlKCl9aXNDb250ZW50VmlzaWJsZSgpe2ZvcihsZXQgdD10aGlzLm1hcmtlZENvbnRlbnRTdGFjay5sZW5ndGgtMTt0Pj0wO3QtLSlpZighdGhpcy5tYXJrZWRDb250ZW50U3RhY2tbdF0udmlzaWJsZSlyZXR1cm4hMTtyZXR1cm4hMH19Zm9yKGNvbnN0IHQgaW4gZil2b2lkIDAhPT1mZS5wcm90b3R5cGVbdF0mJihmZS5wcm90b3R5cGVbZlt0XV09ZmUucHJvdG90eXBlW3RdKTtjbGFzcyBtZXtzdGF0aWMjT2U9bnVsbDtzdGF0aWMjTmU9IiI7c3RhdGljIGdldCB3b3JrZXJQb3J0KCl7cmV0dXJuIHRoaXMuI09lfXN0YXRpYyBzZXQgd29ya2VyUG9ydCh0KXtpZighKCJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyJiZ0IGluc3RhbmNlb2YgV29ya2VyKSYmbnVsbCE9PXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGB3b3JrZXJQb3J0YCB0eXBlLiIpO3RoaXMuI09lPXR9c3RhdGljIGdldCB3b3JrZXJTcmMoKXtyZXR1cm4gdGhpcy4jTmV9c3RhdGljIHNldCB3b3JrZXJTcmModCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBgd29ya2VyU3JjYCB0eXBlLiIpO3RoaXMuI05lPXR9fWZ1bmN0aW9uIGJlKHQpe3N3aXRjaCh0IGluc3RhbmNlb2YgRXJyb3J8fCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXR8fHgoJ3dyYXBSZWFzb246IEV4cGVjdGVkICJyZWFzb24iIHRvIGJlIGEgKHBvc3NpYmx5IGNsb25lZCkgRXJyb3IuJyksdC5uYW1lKXtjYXNlIkFib3J0RXhjZXB0aW9uIjpyZXR1cm4gbmV3IEQodC5tZXNzYWdlKTtjYXNlIk1pc3NpbmdQREZFeGNlcHRpb24iOnJldHVybiBuZXcgSSh0Lm1lc3NhZ2UpO2Nhc2UiUGFzc3dvcmRFeGNlcHRpb24iOnJldHVybiBuZXcgVCh0Lm1lc3NhZ2UsdC5jb2RlKTtjYXNlIlVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBSKHQubWVzc2FnZSx0LnN0YXR1cyk7Y2FzZSJVbmtub3duRXJyb3JFeGNlcHRpb24iOnJldHVybiBuZXcgTSh0Lm1lc3NhZ2UsdC5kZXRhaWxzKTtkZWZhdWx0OnJldHVybiBuZXcgTSh0Lm1lc3NhZ2UsdC50b1N0cmluZygpKX19Y2xhc3MgdmV7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuc291cmNlTmFtZT10LHRoaXMudGFyZ2V0TmFtZT1lLHRoaXMuY29tT2JqPWksdGhpcy5jYWxsYmFja0lkPTEsdGhpcy5zdHJlYW1JZD0xLHRoaXMuc3RyZWFtU2lua3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLnN0cmVhbUNvbnRyb2xsZXJzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuYWN0aW9uSGFuZGxlcj1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX29uQ29tT2JqT25NZXNzYWdlPXQ9Pntjb25zdCBlPXQuZGF0YTtpZihlLnRhcmdldE5hbWUhPT10aGlzLnNvdXJjZU5hbWUpcmV0dXJuO2lmKGUuc3RyZWFtKXJldHVybiB2b2lkIHRoaXMuI0JlKGUpO2lmKGUuY2FsbGJhY2spe2NvbnN0IHQ9ZS5jYWxsYmFja0lkLGk9dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIGNhbGxiYWNrICR7dH1gKTtpZihkZWxldGUgdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XSwxPT09ZS5jYWxsYmFjaylpLnJlc29sdmUoZS5kYXRhKTtlbHNle2lmKDIhPT1lLmNhbGxiYWNrKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjYWxsYmFjayBjYXNlIik7aS5yZWplY3QoYmUoZS5yZWFzb24pKX1yZXR1cm59Y29uc3Qgcz10aGlzLmFjdGlvbkhhbmRsZXJbZS5hY3Rpb25dO2lmKCFzKXRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY3Rpb24gZnJvbSB3b3JrZXI6ICR7ZS5hY3Rpb259YCk7aWYoZS5jYWxsYmFja0lkKXtjb25zdCB0PXRoaXMuc291cmNlTmFtZSxuPWUuc291cmNlTmFtZTtuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7dChzKGUuZGF0YSkpfSkpLnRoZW4oKGZ1bmN0aW9uKHMpe2kucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dCx0YXJnZXROYW1lOm4sY2FsbGJhY2s6MSxjYWxsYmFja0lkOmUuY2FsbGJhY2tJZCxkYXRhOnN9KX0pLChmdW5jdGlvbihzKXtpLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTpuLGNhbGxiYWNrOjIsY2FsbGJhY2tJZDplLmNhbGxiYWNrSWQscmVhc29uOmJlKHMpfSl9KSl9ZWxzZSBlLnN0cmVhbUlkP3RoaXMuI3plKGUpOnMoZS5kYXRhKX0saS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLl9vbkNvbU9iak9uTWVzc2FnZSl9b24odCxlKXtjb25zdCBpPXRoaXMuYWN0aW9uSGFuZGxlcjtpZihpW3RdKXRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgYWxyZWFkeSBhbiBhY3Rpb25OYW1lIGNhbGxlZCAiJHt0fSJgKTtpW3RdPWV9c2VuZCh0LGUsaSl7dGhpcy5jb21PYmoucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dGhpcy5zb3VyY2VOYW1lLHRhcmdldE5hbWU6dGhpcy50YXJnZXROYW1lLGFjdGlvbjp0LGRhdGE6ZX0saSl9c2VuZFdpdGhQcm9taXNlKHQsZSxpKXtjb25zdCBzPXRoaXMuY2FsbGJhY2tJZCsrLG49UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1tzXT1uO3RyeXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOnQsY2FsbGJhY2tJZDpzLGRhdGE6ZX0saSl9Y2F0Y2godCl7bi5yZWplY3QodCl9cmV0dXJuIG4ucHJvbWlzZX1zZW5kV2l0aFN0cmVhbSh0LGUsaSxzKXtjb25zdCBuPXRoaXMuc3RyZWFtSWQrKyxyPXRoaXMuc291cmNlTmFtZSxhPXRoaXMudGFyZ2V0TmFtZSxvPXRoaXMuY29tT2JqO3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0Omk9Pntjb25zdCBoPVByb21pc2Uud2l0aFJlc29sdmVycygpO3JldHVybiB0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dPXtjb250cm9sbGVyOmksc3RhcnRDYWxsOmgscHVsbENhbGw6bnVsbCxjYW5jZWxDYWxsOm51bGwsaXNDbG9zZWQ6ITF9LG8ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6cix0YXJnZXROYW1lOmEsYWN0aW9uOnQsc3RyZWFtSWQ6bixkYXRhOmUsZGVzaXJlZFNpemU6aS5kZXNpcmVkU2l6ZX0scyksaC5wcm9taXNlfSxwdWxsOnQ9Pntjb25zdCBlPVByb21pc2Uud2l0aFJlc29sdmVycygpO3JldHVybiB0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dLnB1bGxDYWxsPWUsby5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpyLHRhcmdldE5hbWU6YSxzdHJlYW06NixzdHJlYW1JZDpuLGRlc2lyZWRTaXplOnQuZGVzaXJlZFNpemV9KSxlLnByb21pc2V9LGNhbmNlbDp0PT57Xyh0IGluc3RhbmNlb2YgRXJyb3IsImNhbmNlbCBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKTtjb25zdCBlPVByb21pc2Uud2l0aFJlc29sdmVycygpO3JldHVybiB0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dLmNhbmNlbENhbGw9ZSx0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dLmlzQ2xvc2VkPSEwLG8ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6cix0YXJnZXROYW1lOmEsc3RyZWFtOjEsc3RyZWFtSWQ6bixyZWFzb246YmUodCl9KSxlLnByb21pc2V9fSxpKX0jemUodCl7Y29uc3QgZT10LnN0cmVhbUlkLGk9dGhpcy5zb3VyY2VOYW1lLHM9dC5zb3VyY2VOYW1lLG49dGhpcy5jb21PYmoscj10aGlzLGE9dGhpcy5hY3Rpb25IYW5kbGVyW3QuYWN0aW9uXSxvPXtlbnF1ZXVlKHQscj0xLGEpe2lmKHRoaXMuaXNDYW5jZWxsZWQpcmV0dXJuO2NvbnN0IG89dGhpcy5kZXNpcmVkU2l6ZTt0aGlzLmRlc2lyZWRTaXplLT1yLG8+MCYmdGhpcy5kZXNpcmVkU2l6ZTw9MCYmKHRoaXMuc2lua0NhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy5yZWFkeT10aGlzLnNpbmtDYXBhYmlsaXR5LnByb21pc2UpLG4ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOnMsc3RyZWFtOjQsc3RyZWFtSWQ6ZSxjaHVuazp0fSxhKX0sY2xvc2UoKXt0aGlzLmlzQ2FuY2VsbGVkfHwodGhpcy5pc0NhbmNlbGxlZD0hMCxuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbTozLHN0cmVhbUlkOmV9KSxkZWxldGUgci5zdHJlYW1TaW5rc1tlXSl9LGVycm9yKHQpe18odCBpbnN0YW5jZW9mIEVycm9yLCJlcnJvciBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKSx0aGlzLmlzQ2FuY2VsbGVkfHwodGhpcy5pc0NhbmNlbGxlZD0hMCxuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbTo1LHN0cmVhbUlkOmUscmVhc29uOmJlKHQpfSkpfSxzaW5rQ2FwYWJpbGl0eTpQcm9taXNlLndpdGhSZXNvbHZlcnMoKSxvblB1bGw6bnVsbCxvbkNhbmNlbDpudWxsLGlzQ2FuY2VsbGVkOiExLGRlc2lyZWRTaXplOnQuZGVzaXJlZFNpemUscmVhZHk6bnVsbH07by5zaW5rQ2FwYWJpbGl0eS5yZXNvbHZlKCksby5yZWFkeT1vLnNpbmtDYXBhYmlsaXR5LnByb21pc2UsdGhpcy5zdHJlYW1TaW5rc1tlXT1vLG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtlKGEodC5kYXRhLG8pKX0pKS50aGVuKChmdW5jdGlvbigpe24ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOnMsc3RyZWFtOjgsc3RyZWFtSWQ6ZSxzdWNjZXNzOiEwfSl9KSwoZnVuY3Rpb24odCl7bi5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6cyxzdHJlYW06OCxzdHJlYW1JZDplLHJlYXNvbjpiZSh0KX0pfSkpfSNCZSh0KXtjb25zdCBlPXQuc3RyZWFtSWQsaT10aGlzLnNvdXJjZU5hbWUscz10LnNvdXJjZU5hbWUsbj10aGlzLmNvbU9iaixyPXRoaXMuc3RyZWFtQ29udHJvbGxlcnNbZV0sYT10aGlzLnN0cmVhbVNpbmtzW2VdO3N3aXRjaCh0LnN0cmVhbSl7Y2FzZSA4OnQuc3VjY2Vzcz9yLnN0YXJ0Q2FsbC5yZXNvbHZlKCk6ci5zdGFydENhbGwucmVqZWN0KGJlKHQucmVhc29uKSk7YnJlYWs7Y2FzZSA3OnQuc3VjY2Vzcz9yLnB1bGxDYWxsLnJlc29sdmUoKTpyLnB1bGxDYWxsLnJlamVjdChiZSh0LnJlYXNvbikpO2JyZWFrO2Nhc2UgNjppZighYSl7bi5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6cyxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KTticmVha31hLmRlc2lyZWRTaXplPD0wJiZ0LmRlc2lyZWRTaXplPjAmJmEuc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpLGEuZGVzaXJlZFNpemU9dC5kZXNpcmVkU2l6ZSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7dChhLm9uUHVsbD8uKCkpfSkpLnRoZW4oKGZ1bmN0aW9uKCl7bi5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6cyxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KX0pLChmdW5jdGlvbih0KXtuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbTo3LHN0cmVhbUlkOmUscmVhc29uOmJlKHQpfSl9KSk7YnJlYWs7Y2FzZSA0OmlmKF8ociwiZW5xdWV1ZSBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpLHIuaXNDbG9zZWQpYnJlYWs7ci5jb250cm9sbGVyLmVucXVldWUodC5jaHVuayk7YnJlYWs7Y2FzZSAzOmlmKF8ociwiY2xvc2Ugc2hvdWxkIGhhdmUgc3RyZWFtIGNvbnRyb2xsZXIiKSxyLmlzQ2xvc2VkKWJyZWFrO3IuaXNDbG9zZWQ9ITAsci5jb250cm9sbGVyLmNsb3NlKCksdGhpcy4jSGUocixlKTticmVhaztjYXNlIDU6XyhyLCJlcnJvciBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpLHIuY29udHJvbGxlci5lcnJvcihiZSh0LnJlYXNvbikpLHRoaXMuI0hlKHIsZSk7YnJlYWs7Y2FzZSAyOnQuc3VjY2Vzcz9yLmNhbmNlbENhbGwucmVzb2x2ZSgpOnIuY2FuY2VsQ2FsbC5yZWplY3QoYmUodC5yZWFzb24pKSx0aGlzLiNIZShyLGUpO2JyZWFrO2Nhc2UgMTppZighYSlicmVhaztuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7ZShhLm9uQ2FuY2VsPy4oYmUodC5yZWFzb24pKSl9KSkudGhlbigoZnVuY3Rpb24oKXtuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbToyLHN0cmVhbUlkOmUsc3VjY2VzczohMH0pfSksKGZ1bmN0aW9uKHQpe24ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOnMsc3RyZWFtOjIsc3RyZWFtSWQ6ZSxyZWFzb246YmUodCl9KX0pKSxhLnNpbmtDYXBhYmlsaXR5LnJlamVjdChiZSh0LnJlYXNvbikpLGEuaXNDYW5jZWxsZWQ9ITAsZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbZV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjSGUodCxlKXthd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW3Quc3RhcnRDYWxsPy5wcm9taXNlLHQucHVsbENhbGw/LnByb21pc2UsdC5jYW5jZWxDYWxsPy5wcm9taXNlXSksZGVsZXRlIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbZV19ZGVzdHJveSgpe3RoaXMuY29tT2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuX29uQ29tT2JqT25NZXNzYWdlKX19Y2xhc3MgeWV7I2plOyNVZTtjb25zdHJ1Y3Rvcih7cGFyc2VkRGF0YTp0LHJhd0RhdGE6ZX0pe3RoaXMuI2plPXQsdGhpcy4jVWU9ZX1nZXRSYXcoKXtyZXR1cm4gdGhpcy4jVWV9Z2V0KHQpe3JldHVybiB0aGlzLiNqZS5nZXQodCk/P251bGx9Z2V0QWxsKCl7cmV0dXJuIE8odGhpcy4jamUpfWhhcyh0KXtyZXR1cm4gdGhpcy4jamUuaGFzKHQpfX1jb25zdCBBZT1TeW1ib2woIklOVEVSTkFMIik7Y2xhc3Mgd2V7IyRlPSExOyNXZT0hMTsjR2U9ITE7I1ZlPSEwO2NvbnN0cnVjdG9yKHQse25hbWU6ZSxpbnRlbnQ6aSx1c2FnZTpzfSl7dGhpcy4jJGU9ISEoMiZ0KSx0aGlzLiNXZT0hISg0JnQpLHRoaXMubmFtZT1lLHRoaXMuaW50ZW50PWksdGhpcy51c2FnZT1zfWdldCB2aXNpYmxlKCl7aWYodGhpcy4jR2UpcmV0dXJuIHRoaXMuI1ZlO2lmKCF0aGlzLiNWZSlyZXR1cm4hMTtjb25zdHtwcmludDp0LHZpZXc6ZX09dGhpcy51c2FnZTtyZXR1cm4gdGhpcy4jJGU/Ik9GRiIhPT1lPy52aWV3U3RhdGU6IXRoaXMuI1dlfHwiT0ZGIiE9PXQ/LnByaW50U3RhdGV9X3NldFZpc2libGUodCxlLGk9ITEpe3QhPT1BZSYmeCgiSW50ZXJuYWwgbWV0aG9kIGBfc2V0VmlzaWJsZWAgY2FsbGVkLiIpLHRoaXMuI0dlPWksdGhpcy4jVmU9ZX19Y2xhc3MgeGV7I3FlPW51bGw7I1hlPW5ldyBNYXA7I0tlPW51bGw7I1llPW51bGw7Y29uc3RydWN0b3IodCxlPTIpe2lmKHRoaXMucmVuZGVyaW5nSW50ZW50PWUsdGhpcy5uYW1lPW51bGwsdGhpcy5jcmVhdG9yPW51bGwsbnVsbCE9PXQpe3RoaXMubmFtZT10Lm5hbWUsdGhpcy5jcmVhdG9yPXQuY3JlYXRvcix0aGlzLiNZZT10Lm9yZGVyO2Zvcihjb25zdCBpIG9mIHQuZ3JvdXBzKXRoaXMuI1hlLnNldChpLmlkLG5ldyB3ZShlLGkpKTtpZigiT0ZGIj09PXQuYmFzZVN0YXRlKWZvcihjb25zdCB0IG9mIHRoaXMuI1hlLnZhbHVlcygpKXQuX3NldFZpc2libGUoQWUsITEpO2Zvcihjb25zdCBlIG9mIHQub24pdGhpcy4jWGUuZ2V0KGUpLl9zZXRWaXNpYmxlKEFlLCEwKTtmb3IoY29uc3QgZSBvZiB0Lm9mZil0aGlzLiNYZS5nZXQoZSkuX3NldFZpc2libGUoQWUsITEpO3RoaXMuI0tlPXRoaXMuZ2V0SGFzaCgpfX0jUWUodCl7Y29uc3QgZT10Lmxlbmd0aDtpZihlPDIpcmV0dXJuITA7Y29uc3QgaT10WzBdO2ZvcihsZXQgcz0xO3M8ZTtzKyspe2NvbnN0IGU9dFtzXTtsZXQgbjtpZihBcnJheS5pc0FycmF5KGUpKW49dGhpcy4jUWUoZSk7ZWxzZXtpZighdGhpcy4jWGUuaGFzKGUpKXJldHVybiB3KGBPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBmb3VuZDogJHtlfWApLCEwO249dGhpcy4jWGUuZ2V0KGUpLnZpc2libGV9c3dpdGNoKGkpe2Nhc2UiQW5kIjppZighbilyZXR1cm4hMTticmVhaztjYXNlIk9yIjppZihuKXJldHVybiEwO2JyZWFrO2Nhc2UiTm90IjpyZXR1cm4hbjtkZWZhdWx0OnJldHVybiEwfX1yZXR1cm4iQW5kIj09PWl9aXNWaXNpYmxlKHQpe2lmKDA9PT10aGlzLiNYZS5zaXplKXJldHVybiEwO2lmKCF0KXJldHVybiBBKCJPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBkZWZpbmVkLiIpLCEwO2lmKCJPQ0ciPT09dC50eXBlKXJldHVybiB0aGlzLiNYZS5oYXModC5pZCk/dGhpcy4jWGUuZ2V0KHQuaWQpLnZpc2libGU6KHcoYE9wdGlvbmFsIGNvbnRlbnQgZ3JvdXAgbm90IGZvdW5kOiAke3QuaWR9YCksITApO2lmKCJPQ01EIj09PXQudHlwZSl7aWYodC5leHByZXNzaW9uKXJldHVybiB0aGlzLiNRZSh0LmV4cHJlc3Npb24pO2lmKCF0LnBvbGljeXx8IkFueU9uIj09PXQucG9saWN5KXtmb3IoY29uc3QgZSBvZiB0Lmlkcyl7aWYoIXRoaXMuI1hlLmhhcyhlKSlyZXR1cm4gdyhgT3B0aW9uYWwgY29udGVudCBncm91cCBub3QgZm91bmQ6ICR7ZX1gKSwhMDtpZih0aGlzLiNYZS5nZXQoZSkudmlzaWJsZSlyZXR1cm4hMH1yZXR1cm4hMX1pZigiQWxsT24iPT09dC5wb2xpY3kpe2Zvcihjb25zdCBlIG9mIHQuaWRzKXtpZighdGhpcy4jWGUuaGFzKGUpKXJldHVybiB3KGBPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBmb3VuZDogJHtlfWApLCEwO2lmKCF0aGlzLiNYZS5nZXQoZSkudmlzaWJsZSlyZXR1cm4hMX1yZXR1cm4hMH1pZigiQW55T2ZmIj09PXQucG9saWN5KXtmb3IoY29uc3QgZSBvZiB0Lmlkcyl7aWYoIXRoaXMuI1hlLmhhcyhlKSlyZXR1cm4gdyhgT3B0aW9uYWwgY29udGVudCBncm91cCBub3QgZm91bmQ6ICR7ZX1gKSwhMDtpZighdGhpcy4jWGUuZ2V0KGUpLnZpc2libGUpcmV0dXJuITB9cmV0dXJuITF9aWYoIkFsbE9mZiI9PT10LnBvbGljeSl7Zm9yKGNvbnN0IGUgb2YgdC5pZHMpe2lmKCF0aGlzLiNYZS5oYXMoZSkpcmV0dXJuIHcoYE9wdGlvbmFsIGNvbnRlbnQgZ3JvdXAgbm90IGZvdW5kOiAke2V9YCksITA7aWYodGhpcy4jWGUuZ2V0KGUpLnZpc2libGUpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIHcoYFVua25vd24gb3B0aW9uYWwgY29udGVudCBwb2xpY3kgJHt0LnBvbGljeX0uYCksITB9cmV0dXJuIHcoYFVua25vd24gZ3JvdXAgdHlwZSAke3QudHlwZX0uYCksITB9c2V0VmlzaWJpbGl0eSh0LGU9ITApe2NvbnN0IGk9dGhpcy4jWGUuZ2V0KHQpO2k/KGkuX3NldFZpc2libGUoQWUsISFlLCEwKSx0aGlzLiNxZT1udWxsKTp3KGBPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBmb3VuZDogJHt0fWApfXNldE9DR1N0YXRlKHtzdGF0ZTp0LHByZXNlcnZlUkI6ZX0pe2xldCBpO2Zvcihjb25zdCBlIG9mIHQpe3N3aXRjaChlKXtjYXNlIk9OIjpjYXNlIk9GRiI6Y2FzZSJUb2dnbGUiOmk9ZTtjb250aW51ZX1jb25zdCB0PXRoaXMuI1hlLmdldChlKTtpZih0KXN3aXRjaChpKXtjYXNlIk9OIjp0Ll9zZXRWaXNpYmxlKEFlLCEwKTticmVhaztjYXNlIk9GRiI6dC5fc2V0VmlzaWJsZShBZSwhMSk7YnJlYWs7Y2FzZSJUb2dnbGUiOnQuX3NldFZpc2libGUoQWUsIXQudmlzaWJsZSl9fXRoaXMuI3FlPW51bGx9Z2V0IGhhc0luaXRpYWxWaXNpYmlsaXR5KCl7cmV0dXJuIG51bGw9PT10aGlzLiNLZXx8dGhpcy5nZXRIYXNoKCk9PT10aGlzLiNLZX1nZXRPcmRlcigpe3JldHVybiB0aGlzLiNYZS5zaXplP3RoaXMuI1llP3RoaXMuI1llLnNsaWNlKCk6Wy4uLnRoaXMuI1hlLmtleXMoKV06bnVsbH1nZXRHcm91cHMoKXtyZXR1cm4gdGhpcy4jWGUuc2l6ZT4wP08odGhpcy4jWGUpOm51bGx9Z2V0R3JvdXAodCl7cmV0dXJuIHRoaXMuI1hlLmdldCh0KXx8bnVsbH1nZXRIYXNoKCl7aWYobnVsbCE9PXRoaXMuI3FlKXJldHVybiB0aGlzLiNxZTtjb25zdCB0PW5ldyBMdDtmb3IoY29uc3RbZSxpXW9mIHRoaXMuI1hlKXQudXBkYXRlKGAke2V9OiR7aS52aXNpYmxlfWApO3JldHVybiB0aGlzLiNxZT10LmhleGRpZ2VzdCgpfX1jbGFzcyBfZXtjb25zdHJ1Y3Rvcih0LHtkaXNhYmxlUmFuZ2U6ZT0hMSxkaXNhYmxlU3RyZWFtOmk9ITF9KXtfKHQsJ1BERkRhdGFUcmFuc3BvcnRTdHJlYW0gLSBtaXNzaW5nIHJlcXVpcmVkICJwZGZEYXRhUmFuZ2VUcmFuc3BvcnQiIGFyZ3VtZW50LicpO2NvbnN0e2xlbmd0aDpzLGluaXRpYWxEYXRhOm4scHJvZ3Jlc3NpdmVEb25lOnIsY29udGVudERpc3Bvc2l0aW9uRmlsZW5hbWU6YX09dDtpZih0aGlzLl9xdWV1ZWRDaHVua3M9W10sdGhpcy5fcHJvZ3Jlc3NpdmVEb25lPXIsdGhpcy5fY29udGVudERpc3Bvc2l0aW9uRmlsZW5hbWU9YSxuPy5sZW5ndGg+MCl7Y29uc3QgdD1uIGluc3RhbmNlb2YgVWludDhBcnJheSYmbi5ieXRlTGVuZ3RoPT09bi5idWZmZXIuYnl0ZUxlbmd0aD9uLmJ1ZmZlcjpuZXcgVWludDhBcnJheShuKS5idWZmZXI7dGhpcy5fcXVldWVkQ2h1bmtzLnB1c2godCl9dGhpcy5fcGRmRGF0YVJhbmdlVHJhbnNwb3J0PXQsdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWksdGhpcy5faXNSYW5nZVN1cHBvcnRlZD0hZSx0aGlzLl9jb250ZW50TGVuZ3RoPXMsdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI9bnVsbCx0aGlzLl9yYW5nZVJlYWRlcnM9W10sdC5hZGRSYW5nZUxpc3RlbmVyKCgodCxlKT0+e3RoaXMuX29uUmVjZWl2ZURhdGEoe2JlZ2luOnQsY2h1bms6ZX0pfSkpLHQuYWRkUHJvZ3Jlc3NMaXN0ZW5lcigoKHQsZSk9Pnt0aGlzLl9vblByb2dyZXNzKHtsb2FkZWQ6dCx0b3RhbDplfSl9KSksdC5hZGRQcm9ncmVzc2l2ZVJlYWRMaXN0ZW5lcigodD0+e3RoaXMuX29uUmVjZWl2ZURhdGEoe2NodW5rOnR9KX0pKSx0LmFkZFByb2dyZXNzaXZlRG9uZUxpc3RlbmVyKCgoKT0+e3RoaXMuX29uUHJvZ3Jlc3NpdmVEb25lKCl9KSksdC50cmFuc3BvcnRSZWFkeSgpfV9vblJlY2VpdmVEYXRhKHtiZWdpbjp0LGNodW5rOmV9KXtjb25zdCBpPWUgaW5zdGFuY2VvZiBVaW50OEFycmF5JiZlLmJ5dGVMZW5ndGg9PT1lLmJ1ZmZlci5ieXRlTGVuZ3RoP2UuYnVmZmVyOm5ldyBVaW50OEFycmF5KGUpLmJ1ZmZlcjt2b2lkIDA9PT10P3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyP3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyLl9lbnF1ZXVlKGkpOnRoaXMuX3F1ZXVlZENodW5rcy5wdXNoKGkpOl8odGhpcy5fcmFuZ2VSZWFkZXJzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLl9iZWdpbj09PXQmJihlLl9lbnF1ZXVlKGkpLCEwKX0pKSwiX29uUmVjZWl2ZURhdGEgLSBubyBgUERGRGF0YVRyYW5zcG9ydFN0cmVhbVJhbmdlUmVhZGVyYCBpbnN0YW5jZSBmb3VuZC4iKX1nZXQgX3Byb2dyZXNzaXZlRGF0YUxlbmd0aCgpe3JldHVybiB0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8uX2xvYWRlZD8/MH1fb25Qcm9ncmVzcyh0KXt2b2lkIDA9PT10LnRvdGFsP3RoaXMuX3JhbmdlUmVhZGVyc1swXT8ub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dC5sb2FkZWR9KTp0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8ub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dC5sb2FkZWQsdG90YWw6dC50b3RhbH0pfV9vblByb2dyZXNzaXZlRG9uZSgpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5wcm9ncmVzc2l2ZURvbmUoKSx0aGlzLl9wcm9ncmVzc2l2ZURvbmU9ITB9X3JlbW92ZVJhbmdlUmVhZGVyKHQpe2NvbnN0IGU9dGhpcy5fcmFuZ2VSZWFkZXJzLmluZGV4T2YodCk7ZT49MCYmdGhpcy5fcmFuZ2VSZWFkZXJzLnNwbGljZShlLDEpfWdldEZ1bGxSZWFkZXIoKXtfKCF0aGlzLl9mdWxsUmVxdWVzdFJlYWRlciwiUERGRGF0YVRyYW5zcG9ydFN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpO2NvbnN0IHQ9dGhpcy5fcXVldWVkQ2h1bmtzO3JldHVybiB0aGlzLl9xdWV1ZWRDaHVua3M9bnVsbCxuZXcgRWUodGhpcyx0LHRoaXMuX3Byb2dyZXNzaXZlRG9uZSx0aGlzLl9jb250ZW50RGlzcG9zaXRpb25GaWxlbmFtZSl9Z2V0UmFuZ2VSZWFkZXIodCxlKXtpZihlPD10aGlzLl9wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgaT1uZXcgQ2UodGhpcyx0LGUpO3JldHVybiB0aGlzLl9wZGZEYXRhUmFuZ2VUcmFuc3BvcnQucmVxdWVzdERhdGFSYW5nZSh0LGUpLHRoaXMuX3JhbmdlUmVhZGVycy5wdXNoKGkpLGl9Y2FuY2VsQWxsUmVxdWVzdHModCl7dGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI/LmNhbmNlbCh0KTtmb3IoY29uc3QgZSBvZiB0aGlzLl9yYW5nZVJlYWRlcnMuc2xpY2UoMCkpZS5jYW5jZWwodCk7dGhpcy5fcGRmRGF0YVJhbmdlVHJhbnNwb3J0LmFib3J0KCl9fWNsYXNzIEVle2NvbnN0cnVjdG9yKHQsZSxpPSExLHM9bnVsbCl7dGhpcy5fc3RyZWFtPXQsdGhpcy5fZG9uZT1pfHwhMSx0aGlzLl9maWxlbmFtZT1udChzKT9zOm51bGwsdGhpcy5fcXVldWVkQ2h1bmtzPWV8fFtdLHRoaXMuX2xvYWRlZD0wO2Zvcihjb25zdCB0IG9mIHRoaXMuX3F1ZXVlZENodW5rcyl0aGlzLl9sb2FkZWQrPXQuYnl0ZUxlbmd0aDt0aGlzLl9yZXF1ZXN0cz1bXSx0aGlzLl9oZWFkZXJzUmVhZHk9UHJvbWlzZS5yZXNvbHZlKCksdC5fZnVsbFJlcXVlc3RSZWFkZXI9dGhpcyx0aGlzLm9uUHJvZ3Jlc3M9bnVsbH1fZW5xdWV1ZSh0KXt0aGlzLl9kb25lfHwodGhpcy5fcmVxdWVzdHMubGVuZ3RoPjA/dGhpcy5fcmVxdWVzdHMuc2hpZnQoKS5yZXNvbHZlKHt2YWx1ZTp0LGRvbmU6ITF9KTp0aGlzLl9xdWV1ZWRDaHVua3MucHVzaCh0KSx0aGlzLl9sb2FkZWQrPXQuYnl0ZUxlbmd0aCl9Z2V0IGhlYWRlcnNSZWFkeSgpe3JldHVybiB0aGlzLl9oZWFkZXJzUmVhZHl9Z2V0IGZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuX2ZpbGVuYW1lfWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX3N0cmVhbS5faXNSYW5nZVN1cHBvcnRlZH1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5fc3RyZWFtLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9zdHJlYW0uX2NvbnRlbnRMZW5ndGh9YXN5bmMgcmVhZCgpe2lmKHRoaXMuX3F1ZXVlZENodW5rcy5sZW5ndGg+MClyZXR1cm57dmFsdWU6dGhpcy5fcXVldWVkQ2h1bmtzLnNoaWZ0KCksZG9uZTohMX07aWYodGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2NvbnN0IHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLnB1c2godCksdC5wcm9taXNlfWNhbmNlbCh0KXt0aGlzLl9kb25lPSEwO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MH1wcm9ncmVzc2l2ZURvbmUoKXt0aGlzLl9kb25lfHwodGhpcy5fZG9uZT0hMCl9fWNsYXNzIENle2NvbnN0cnVjdG9yKHQsZSxpKXt0aGlzLl9zdHJlYW09dCx0aGlzLl9iZWdpbj1lLHRoaXMuX2VuZD1pLHRoaXMuX3F1ZXVlZENodW5rPW51bGwsdGhpcy5fcmVxdWVzdHM9W10sdGhpcy5fZG9uZT0hMSx0aGlzLm9uUHJvZ3Jlc3M9bnVsbH1fZW5xdWV1ZSh0KXtpZighdGhpcy5fZG9uZSl7aWYoMD09PXRoaXMuX3JlcXVlc3RzLmxlbmd0aCl0aGlzLl9xdWV1ZWRDaHVuaz10O2Vsc2V7dGhpcy5fcmVxdWVzdHMuc2hpZnQoKS5yZXNvbHZlKHt2YWx1ZTp0LGRvbmU6ITF9KTtmb3IoY29uc3QgdCBvZiB0aGlzLl9yZXF1ZXN0cyl0LnJlc29sdmUoe3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk7dGhpcy5fcmVxdWVzdHMubGVuZ3RoPTB9dGhpcy5fZG9uZT0hMCx0aGlzLl9zdHJlYW0uX3JlbW92ZVJhbmdlUmVhZGVyKHRoaXMpfX1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4hMX1hc3luYyByZWFkKCl7aWYodGhpcy5fcXVldWVkQ2h1bmspe2NvbnN0IHQ9dGhpcy5fcXVldWVkQ2h1bms7cmV0dXJuIHRoaXMuX3F1ZXVlZENodW5rPW51bGwse3ZhbHVlOnQsZG9uZTohMX19aWYodGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2NvbnN0IHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLnB1c2godCksdC5wcm9taXNlfWNhbmNlbCh0KXt0aGlzLl9kb25lPSEwO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MCx0aGlzLl9zdHJlYW0uX3JlbW92ZVJhbmdlUmVhZGVyKHRoaXMpfX1mdW5jdGlvbiBTZSh0LGUpe2NvbnN0IGk9bmV3IEhlYWRlcnM7aWYoIXR8fCFlfHwib2JqZWN0IiE9dHlwZW9mIGUpcmV0dXJuIGk7Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgcz1lW3RdO3ZvaWQgMCE9PXMmJmkuYXBwZW5kKHQscyl9cmV0dXJuIGl9ZnVuY3Rpb24gVGUoe3Jlc3BvbnNlSGVhZGVyczp0LGlzSHR0cDplLHJhbmdlQ2h1bmtTaXplOmksZGlzYWJsZVJhbmdlOnN9KXtjb25zdCBuPXthbGxvd1JhbmdlUmVxdWVzdHM6ITEsc3VnZ2VzdGVkTGVuZ3RoOnZvaWQgMH0scj1wYXJzZUludCh0LmdldCgiQ29udGVudC1MZW5ndGgiKSwxMCk7cmV0dXJuIE51bWJlci5pc0ludGVnZXIocik/KG4uc3VnZ2VzdGVkTGVuZ3RoPXIscjw9MippfHxzfHwhZXx8ImJ5dGVzIiE9PXQuZ2V0KCJBY2NlcHQtUmFuZ2VzIil8fCJpZGVudGl0eSIhPT0odC5nZXQoIkNvbnRlbnQtRW5jb2RpbmciKXx8ImlkZW50aXR5Iil8fChuLmFsbG93UmFuZ2VSZXF1ZXN0cz0hMCksbik6bn1mdW5jdGlvbiBNZSh0KXtjb25zdCBlPXQuZ2V0KCJDb250ZW50LURpc3Bvc2l0aW9uIik7aWYoZSl7bGV0IHQ9ZnVuY3Rpb24odCl7bGV0IGU9ITAsaT1zKCJmaWxlbmFtZVxcKiIsImkiKS5leGVjKHQpO2lmKGkpe2k9aVsxXTtsZXQgdD1hKGkpO3JldHVybiB0PXVuZXNjYXBlKHQpLHQ9byh0KSx0PWgodCkscih0KX1pZihpPWZ1bmN0aW9uKHQpe2NvbnN0IGU9W107bGV0IGk7Y29uc3Qgbj1zKCJmaWxlbmFtZVxcKigoPyEwXFxkKVxcZCspKFxcKj8pIiwiaWciKTtmb3IoO251bGwhPT0oaT1uLmV4ZWModCkpOyl7bGV0Wyx0LHMsbl09aTtpZih0PXBhcnNlSW50KHQsMTApLHQgaW4gZSl7aWYoMD09PXQpYnJlYWt9ZWxzZSBlW3RdPVtzLG5dfWNvbnN0IHI9W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aCYmdCBpbiBlOysrdCl7bGV0W2ksc109ZVt0XTtzPWEocyksaSYmKHM9dW5lc2NhcGUocyksMD09PXQmJihzPW8ocykpKSxyLnB1c2gocyl9cmV0dXJuIHIuam9pbigiIil9KHQpLGkpcmV0dXJuIHIoaChpKSk7aWYoaT1zKCJmaWxlbmFtZSIsImkiKS5leGVjKHQpLGkpe2k9aVsxXTtsZXQgdD1hKGkpO3JldHVybiB0PWgodCkscih0KX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG5ldyBSZWdFeHAoIig/Ol58OylcXHMqIit0KydcXHMqPVxccyooW14iO1xcc11bXjtcXHNdKnwiKD86W14iXFxcXF18XFxcXCI/KSsiPyknLGUpfWZ1bmN0aW9uIG4odCxpKXtpZih0KXtpZighL15bXHgwMC1ceEZGXSskLy50ZXN0KGkpKXJldHVybiBpO3RyeXtjb25zdCBzPW5ldyBUZXh0RGVjb2Rlcih0LHtmYXRhbDohMH0pLG49RihpKTtpPXMuZGVjb2RlKG4pLGU9ITF9Y2F0Y2h7fX1yZXR1cm4gaX1mdW5jdGlvbiByKHQpe3JldHVybiBlJiYvW1x4ODAtXHhmZl0vLnRlc3QodCkmJih0PW4oInV0Zi04Iix0KSxlJiYodD1uKCJpc28tODg1OS0xIix0KSkpLHR9ZnVuY3Rpb24gYSh0KXtpZih0LnN0YXJ0c1dpdGgoJyInKSl7Y29uc3QgZT10LnNsaWNlKDEpLnNwbGl0KCdcXCInKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOysrdCl7Y29uc3QgaT1lW3RdLmluZGV4T2YoJyInKTstMSE9PWkmJihlW3RdPWVbdF0uc2xpY2UoMCxpKSxlLmxlbmd0aD10KzEpLGVbdF09ZVt0XS5yZXBsYWNlQWxsKC9cXCguKS9nLCIkMSIpfXQ9ZS5qb2luKCciJyl9cmV0dXJuIHR9ZnVuY3Rpb24gbyh0KXtjb25zdCBlPXQuaW5kZXhPZigiJyIpO3JldHVybi0xPT09ZT90Om4odC5zbGljZSgwLGUpLHQuc2xpY2UoZSsxKS5yZXBsYWNlKC9eW14nXSonLywiIikpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIXQuc3RhcnRzV2l0aCgiPT8iKXx8L1tceDAwLVx4MTlceDgwLVx4ZmZdLy50ZXN0KHQpP3Q6dC5yZXBsYWNlQWxsKC89XD8oW1x3LV0qKVw/KFtRcUJiXSlcPygoPzpbXj9dfFw/KD8hPSkpKilcPz0vZywoZnVuY3Rpb24odCxlLGkscyl7aWYoInEiPT09aXx8IlEiPT09aSlyZXR1cm4gbihlLHM9KHM9cy5yZXBsYWNlQWxsKCJfIiwiICIpKS5yZXBsYWNlQWxsKC89KFswLTlhLWZBLUZdezJ9KS9nLChmdW5jdGlvbih0LGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGUsMTYpKX0pKSk7dHJ5e3M9YXRvYihzKX1jYXRjaHt9cmV0dXJuIG4oZSxzKX0pKX1yZXR1cm4iIn0oZSk7aWYodC5pbmNsdWRlcygiJSIpKXRyeXt0PWRlY29kZVVSSUNvbXBvbmVudCh0KX1jYXRjaHt9aWYobnQodCkpcmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24ga2UodCxlKXtyZXR1cm4gNDA0PT09dHx8MD09PXQmJmUuc3RhcnRzV2l0aCgiZmlsZToiKT9uZXcgSSgnTWlzc2luZyBQREYgIicrZSsnIi4nKTpuZXcgUihgVW5leHBlY3RlZCBzZXJ2ZXIgcmVzcG9uc2UgKCR7dH0pIHdoaWxlIHJldHJpZXZpbmcgUERGICIke2V9Ii5gLHQpfWZ1bmN0aW9uIEllKHQpe3JldHVybiAyMDA9PT10fHwyMDY9PT10fWZ1bmN0aW9uIFJlKHQsZSxpKXtyZXR1cm57bWV0aG9kOiJHRVQiLGhlYWRlcnM6dCxzaWduYWw6aS5zaWduYWwsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6ZT8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIixyZWRpcmVjdDoiZm9sbG93In19ZnVuY3Rpb24gUGUodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5P3QuYnVmZmVyOnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj90Oih3KGBnZXRBcnJheUJ1ZmZlciAtIHVuZXhwZWN0ZWQgZGF0YSBmb3JtYXQ6ICR7dH1gKSxuZXcgVWludDhBcnJheSh0KS5idWZmZXIpfWNsYXNzIERle2NvbnN0cnVjdG9yKHQpe3RoaXMuc291cmNlPXQsdGhpcy5pc0h0dHA9L15odHRwcz86L2kudGVzdCh0LnVybCksdGhpcy5oZWFkZXJzPVNlKHRoaXMuaXNIdHRwLHQuaHR0cEhlYWRlcnMpLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW51bGwsdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycz1bXX1nZXQgX3Byb2dyZXNzaXZlRGF0YUxlbmd0aCgpe3JldHVybiB0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8uX2xvYWRlZD8/MH1nZXRGdWxsUmVhZGVyKCl7cmV0dXJuIF8oIXRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyLCJQREZGZXRjaFN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW5ldyBMZSh0aGlzKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcn1nZXRSYW5nZVJlYWRlcih0LGUpe2lmKGU8PXRoaXMuX3Byb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBpPW5ldyBGZSh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaChpKSxpfWNhbmNlbEFsbFJlcXVlc3RzKHQpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5jYW5jZWwodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5zbGljZSgwKSllLmNhbmNlbCh0KX19Y2xhc3MgTGV7Y29uc3RydWN0b3IodCl7dGhpcy5fc3RyZWFtPXQsdGhpcy5fcmVhZGVyPW51bGwsdGhpcy5fbG9hZGVkPTAsdGhpcy5fZmlsZW5hbWU9bnVsbDtjb25zdCBlPXQuc291cmNlO3RoaXMuX3dpdGhDcmVkZW50aWFscz1lLndpdGhDcmVkZW50aWFsc3x8ITEsdGhpcy5fY29udGVudExlbmd0aD1lLmxlbmd0aCx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl9kaXNhYmxlUmFuZ2U9ZS5kaXNhYmxlUmFuZ2V8fCExLHRoaXMuX3JhbmdlQ2h1bmtTaXplPWUucmFuZ2VDaHVua1NpemUsdGhpcy5fcmFuZ2VDaHVua1NpemV8fHRoaXMuX2Rpc2FibGVSYW5nZXx8KHRoaXMuX2Rpc2FibGVSYW5nZT0hMCksdGhpcy5fYWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWUuZGlzYWJsZVN0cmVhbSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSFlLmRpc2FibGVSYW5nZTtjb25zdCBpPW5ldyBIZWFkZXJzKHQuaGVhZGVycykscz1lLnVybDtmZXRjaChzLFJlKGksdGhpcy5fd2l0aENyZWRlbnRpYWxzLHRoaXMuX2Fib3J0Q29udHJvbGxlcikpLnRoZW4oKGU9PntpZighSWUoZS5zdGF0dXMpKXRocm93IGtlKGUuc3RhdHVzLHMpO3RoaXMuX3JlYWRlcj1lLmJvZHkuZ2V0UmVhZGVyKCksdGhpcy5faGVhZGVyc0NhcGFiaWxpdHkucmVzb2x2ZSgpO2NvbnN0IGk9ZS5oZWFkZXJzLHthbGxvd1JhbmdlUmVxdWVzdHM6bixzdWdnZXN0ZWRMZW5ndGg6cn09VGUoe3Jlc3BvbnNlSGVhZGVyczppLGlzSHR0cDp0LmlzSHR0cCxyYW5nZUNodW5rU2l6ZTp0aGlzLl9yYW5nZUNodW5rU2l6ZSxkaXNhYmxlUmFuZ2U6dGhpcy5fZGlzYWJsZVJhbmdlfSk7dGhpcy5faXNSYW5nZVN1cHBvcnRlZD1uLHRoaXMuX2NvbnRlbnRMZW5ndGg9cnx8dGhpcy5fY29udGVudExlbmd0aCx0aGlzLl9maWxlbmFtZT1NZShpKSwhdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQmJnRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQmJnRoaXMuY2FuY2VsKG5ldyBEKCJTdHJlYW1pbmcgaXMgZGlzYWJsZWQuIikpfSkpLmNhdGNoKHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCksdGhpcy5vblByb2dyZXNzPW51bGx9Z2V0IGhlYWRlcnNSZWFkeSgpe3JldHVybiB0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5wcm9taXNlfWdldCBmaWxlbmFtZSgpe3JldHVybiB0aGlzLl9maWxlbmFtZX1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9jb250ZW50TGVuZ3RofWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWR9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkfWFzeW5jIHJlYWQoKXthd2FpdCB0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5wcm9taXNlO2NvbnN0e3ZhbHVlOnQsZG9uZTplfT1hd2FpdCB0aGlzLl9yZWFkZXIucmVhZCgpO3JldHVybiBlP3t2YWx1ZTp0LGRvbmU6ZX06KHRoaXMuX2xvYWRlZCs9dC5ieXRlTGVuZ3RoLHRoaXMub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dGhpcy5fbG9hZGVkLHRvdGFsOnRoaXMuX2NvbnRlbnRMZW5ndGh9KSx7dmFsdWU6UGUodCksZG9uZTohMX0pfWNhbmNlbCh0KXt0aGlzLl9yZWFkZXI/LmNhbmNlbCh0KSx0aGlzLl9hYm9ydENvbnRyb2xsZXIuYWJvcnQoKX19Y2xhc3MgRmV7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuX3N0cmVhbT10LHRoaXMuX3JlYWRlcj1udWxsLHRoaXMuX2xvYWRlZD0wO2NvbnN0IHM9dC5zb3VyY2U7dGhpcy5fd2l0aENyZWRlbnRpYWxzPXMud2l0aENyZWRlbnRpYWxzfHwhMSx0aGlzLl9yZWFkQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZD0hcy5kaXNhYmxlU3RyZWFtLHRoaXMuX2Fib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IG49bmV3IEhlYWRlcnModC5oZWFkZXJzKTtuLmFwcGVuZCgiUmFuZ2UiLGBieXRlcz0ke2V9LSR7aS0xfWApO2NvbnN0IHI9cy51cmw7ZmV0Y2gocixSZShuLHRoaXMuX3dpdGhDcmVkZW50aWFscyx0aGlzLl9hYm9ydENvbnRyb2xsZXIpKS50aGVuKCh0PT57aWYoIUllKHQuc3RhdHVzKSl0aHJvdyBrZSh0LnN0YXR1cyxyKTt0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZXNvbHZlKCksdGhpcy5fcmVhZGVyPXQuYm9keS5nZXRSZWFkZXIoKX0pKS5jYXRjaCh0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZWplY3QpLHRoaXMub25Qcm9ncmVzcz1udWxsfWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1hc3luYyByZWFkKCl7YXdhaXQgdGhpcy5fcmVhZENhcGFiaWxpdHkucHJvbWlzZTtjb25zdHt2YWx1ZTp0LGRvbmU6ZX09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gZT97dmFsdWU6dCxkb25lOmV9Oih0aGlzLl9sb2FkZWQrPXQuYnl0ZUxlbmd0aCx0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnRoaXMuX2xvYWRlZH0pLHt2YWx1ZTpQZSh0KSxkb25lOiExfSl9Y2FuY2VsKHQpe3RoaXMuX3JlYWRlcj8uY2FuY2VsKHQpLHRoaXMuX2Fib3J0Q29udHJvbGxlci5hYm9ydCgpfX1jbGFzcyBPZXtjb25zdHJ1Y3Rvcih7dXJsOnQsaHR0cEhlYWRlcnM6ZSx3aXRoQ3JlZGVudGlhbHM6aX0pe3RoaXMudXJsPXQsdGhpcy5pc0h0dHA9L15odHRwcz86L2kudGVzdCh0KSx0aGlzLmhlYWRlcnM9U2UodGhpcy5pc0h0dHAsZSksdGhpcy53aXRoQ3JlZGVudGlhbHM9aXx8ITEsdGhpcy5jdXJyWGhySWQ9MCx0aGlzLnBlbmRpbmdSZXF1ZXN0cz1PYmplY3QuY3JlYXRlKG51bGwpfXJlcXVlc3RSYW5nZSh0LGUsaSl7Y29uc3Qgcz17YmVnaW46dCxlbmQ6ZX07Zm9yKGNvbnN0IHQgaW4gaSlzW3RdPWlbdF07cmV0dXJuIHRoaXMucmVxdWVzdChzKX1yZXF1ZXN0RnVsbCh0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KHQpfXJlcXVlc3QodCl7Y29uc3QgZT1uZXcgWE1MSHR0cFJlcXVlc3QsaT10aGlzLmN1cnJYaHJJZCsrLHM9dGhpcy5wZW5kaW5nUmVxdWVzdHNbaV09e3hocjplfTtlLm9wZW4oIkdFVCIsdGhpcy51cmwpLGUud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzO2Zvcihjb25zdFt0LGldb2YgdGhpcy5oZWFkZXJzKWUuc2V0UmVxdWVzdEhlYWRlcih0LGkpO3JldHVybiB0aGlzLmlzSHR0cCYmImJlZ2luImluIHQmJiJlbmQiaW4gdD8oZS5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5nZSIsYGJ5dGVzPSR7dC5iZWdpbn0tJHt0LmVuZC0xfWApLHMuZXhwZWN0ZWRTdGF0dXM9MjA2KTpzLmV4cGVjdGVkU3RhdHVzPTIwMCxlLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLHQub25FcnJvciYmKGUub25lcnJvcj1mdW5jdGlvbihpKXt0Lm9uRXJyb3IoZS5zdGF0dXMpfSksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9dGhpcy5vblN0YXRlQ2hhbmdlLmJpbmQodGhpcyxpKSxlLm9ucHJvZ3Jlc3M9dGhpcy5vblByb2dyZXNzLmJpbmQodGhpcyxpKSxzLm9uSGVhZGVyc1JlY2VpdmVkPXQub25IZWFkZXJzUmVjZWl2ZWQscy5vbkRvbmU9dC5vbkRvbmUscy5vbkVycm9yPXQub25FcnJvcixzLm9uUHJvZ3Jlc3M9dC5vblByb2dyZXNzLGUuc2VuZChudWxsKSxpfW9uUHJvZ3Jlc3ModCxlKXtjb25zdCBpPXRoaXMucGVuZGluZ1JlcXVlc3RzW3RdO2kmJmkub25Qcm9ncmVzcz8uKGUpfW9uU3RhdGVDaGFuZ2UodCxlKXtjb25zdCBpPXRoaXMucGVuZGluZ1JlcXVlc3RzW3RdO2lmKCFpKXJldHVybjtjb25zdCBzPWkueGhyO2lmKHMucmVhZHlTdGF0ZT49MiYmaS5vbkhlYWRlcnNSZWNlaXZlZCYmKGkub25IZWFkZXJzUmVjZWl2ZWQoKSxkZWxldGUgaS5vbkhlYWRlcnNSZWNlaXZlZCksNCE9PXMucmVhZHlTdGF0ZSlyZXR1cm47aWYoISh0IGluIHRoaXMucGVuZGluZ1JlcXVlc3RzKSlyZXR1cm47aWYoZGVsZXRlIHRoaXMucGVuZGluZ1JlcXVlc3RzW3RdLDA9PT1zLnN0YXR1cyYmdGhpcy5pc0h0dHApcmV0dXJuIHZvaWQgaS5vbkVycm9yPy4ocy5zdGF0dXMpO2NvbnN0IG49cy5zdGF0dXN8fDIwMDtpZigoMjAwIT09bnx8MjA2IT09aS5leHBlY3RlZFN0YXR1cykmJm4hPT1pLmV4cGVjdGVkU3RhdHVzKXJldHVybiB2b2lkIGkub25FcnJvcj8uKHMuc3RhdHVzKTtjb25zdCByPWZ1bmN0aW9uKHQpe2NvbnN0IGU9dC5yZXNwb25zZTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGU/ZTpGKGUpLmJ1ZmZlcn0ocyk7aWYoMjA2PT09bil7Y29uc3QgdD1zLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVJhbmdlIiksZT0vYnl0ZXMgKFxkKyktKFxkKylcLyhcZCspLy5leGVjKHQpO2kub25Eb25lKHtiZWdpbjpwYXJzZUludChlWzFdLDEwKSxjaHVuazpyfSl9ZWxzZSByP2kub25Eb25lKHtiZWdpbjowLGNodW5rOnJ9KTppLm9uRXJyb3I/LihzLnN0YXR1cyl9Z2V0UmVxdWVzdFhocih0KXtyZXR1cm4gdGhpcy5wZW5kaW5nUmVxdWVzdHNbdF0ueGhyfWlzUGVuZGluZ1JlcXVlc3QodCl7cmV0dXJuIHQgaW4gdGhpcy5wZW5kaW5nUmVxdWVzdHN9YWJvcnRSZXF1ZXN0KHQpe2NvbnN0IGU9dGhpcy5wZW5kaW5nUmVxdWVzdHNbdF0ueGhyO2RlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1t0XSxlLmFib3J0KCl9fWNsYXNzIE5le2NvbnN0cnVjdG9yKHQpe3RoaXMuX3NvdXJjZT10LHRoaXMuX21hbmFnZXI9bmV3IE9lKHQpLHRoaXMuX3JhbmdlQ2h1bmtTaXplPXQucmFuZ2VDaHVua1NpemUsdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI9bnVsbCx0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzPVtdfV9vblJhbmdlUmVxdWVzdFJlYWRlckNsb3NlZCh0KXtjb25zdCBlPXRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMuaW5kZXhPZih0KTtlPj0wJiZ0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzLnNwbGljZShlLDEpfWdldEZ1bGxSZWFkZXIoKXtyZXR1cm4gXyghdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXIsIlBERk5ldHdvcmtTdHJlYW0uZ2V0RnVsbFJlYWRlciBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4iKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1uZXcgQmUodGhpcy5fbWFuYWdlcix0aGlzLl9zb3VyY2UpLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyfWdldFJhbmdlUmVhZGVyKHQsZSl7Y29uc3QgaT1uZXcgemUodGhpcy5fbWFuYWdlcix0LGUpO3JldHVybiBpLm9uQ2xvc2VkPXRoaXMuX29uUmFuZ2VSZXF1ZXN0UmVhZGVyQ2xvc2VkLmJpbmQodGhpcyksdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5wdXNoKGkpLGl9Y2FuY2VsQWxsUmVxdWVzdHModCl7dGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI/LmNhbmNlbCh0KTtmb3IoY29uc3QgZSBvZiB0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzLnNsaWNlKDApKWUuY2FuY2VsKHQpfX1jbGFzcyBCZXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX21hbmFnZXI9dDtjb25zdCBpPXtvbkhlYWRlcnNSZWNlaXZlZDp0aGlzLl9vbkhlYWRlcnNSZWNlaXZlZC5iaW5kKHRoaXMpLG9uRG9uZTp0aGlzLl9vbkRvbmUuYmluZCh0aGlzKSxvbkVycm9yOnRoaXMuX29uRXJyb3IuYmluZCh0aGlzKSxvblByb2dyZXNzOnRoaXMuX29uUHJvZ3Jlc3MuYmluZCh0aGlzKX07dGhpcy5fdXJsPWUudXJsLHRoaXMuX2Z1bGxSZXF1ZXN0SWQ9dC5yZXF1ZXN0RnVsbChpKSx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl9kaXNhYmxlUmFuZ2U9ZS5kaXNhYmxlUmFuZ2V8fCExLHRoaXMuX2NvbnRlbnRMZW5ndGg9ZS5sZW5ndGgsdGhpcy5fcmFuZ2VDaHVua1NpemU9ZS5yYW5nZUNodW5rU2l6ZSx0aGlzLl9yYW5nZUNodW5rU2l6ZXx8dGhpcy5fZGlzYWJsZVJhbmdlfHwodGhpcy5fZGlzYWJsZVJhbmdlPSEwKSx0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZD0hMSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSExLHRoaXMuX2NhY2hlZENodW5rcz1bXSx0aGlzLl9yZXF1ZXN0cz1bXSx0aGlzLl9kb25lPSExLHRoaXMuX3N0b3JlZEVycm9yPXZvaWQgMCx0aGlzLl9maWxlbmFtZT1udWxsLHRoaXMub25Qcm9ncmVzcz1udWxsfV9vbkhlYWRlcnNSZWNlaXZlZCgpe2NvbnN0IHQ9dGhpcy5fZnVsbFJlcXVlc3RJZCxlPXRoaXMuX21hbmFnZXIuZ2V0UmVxdWVzdFhocih0KSxpPW5ldyBIZWFkZXJzKGUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkudHJpbSgpLnNwbGl0KC9bXHJcbl0rLykubWFwKCh0PT57Y29uc3RbZSwuLi5pXT10LnNwbGl0KCI6ICIpO3JldHVybltlLGkuam9pbigiOiAiKV19KSkpLHthbGxvd1JhbmdlUmVxdWVzdHM6cyxzdWdnZXN0ZWRMZW5ndGg6bn09VGUoe3Jlc3BvbnNlSGVhZGVyczppLGlzSHR0cDp0aGlzLl9tYW5hZ2VyLmlzSHR0cCxyYW5nZUNodW5rU2l6ZTp0aGlzLl9yYW5nZUNodW5rU2l6ZSxkaXNhYmxlUmFuZ2U6dGhpcy5fZGlzYWJsZVJhbmdlfSk7cyYmKHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQ9ITApLHRoaXMuX2NvbnRlbnRMZW5ndGg9bnx8dGhpcy5fY29udGVudExlbmd0aCx0aGlzLl9maWxlbmFtZT1NZShpKSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkJiZ0aGlzLl9tYW5hZ2VyLmFib3J0UmVxdWVzdCh0KSx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCl9X29uRG9uZSh0KXtpZih0JiYodGhpcy5fcmVxdWVzdHMubGVuZ3RoPjA/dGhpcy5fcmVxdWVzdHMuc2hpZnQoKS5yZXNvbHZlKHt2YWx1ZTp0LmNodW5rLGRvbmU6ITF9KTp0aGlzLl9jYWNoZWRDaHVua3MucHVzaCh0LmNodW5rKSksdGhpcy5fZG9uZT0hMCwhKHRoaXMuX2NhY2hlZENodW5rcy5sZW5ndGg+MCkpe2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MH19X29uRXJyb3IodCl7dGhpcy5fc3RvcmVkRXJyb3I9a2UodCx0aGlzLl91cmwpLHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCh0aGlzLl9zdG9yZWRFcnJvcik7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcmVxdWVzdHMpdC5yZWplY3QodGhpcy5fc3RvcmVkRXJyb3IpO3RoaXMuX3JlcXVlc3RzLmxlbmd0aD0wLHRoaXMuX2NhY2hlZENodW5rcy5sZW5ndGg9MH1fb25Qcm9ncmVzcyh0KXt0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQubGVuZ3RoQ29tcHV0YWJsZT90LnRvdGFsOnRoaXMuX2NvbnRlbnRMZW5ndGh9KX1nZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy5fZmlsZW5hbWV9Z2V0IGlzUmFuZ2VTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5faXNSYW5nZVN1cHBvcnRlZH1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWR9Z2V0IGNvbnRlbnRMZW5ndGgoKXtyZXR1cm4gdGhpcy5fY29udGVudExlbmd0aH1nZXQgaGVhZGVyc1JlYWR5KCl7cmV0dXJuIHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnByb21pc2V9YXN5bmMgcmVhZCgpe2lmKHRoaXMuX3N0b3JlZEVycm9yKXRocm93IHRoaXMuX3N0b3JlZEVycm9yO2lmKHRoaXMuX2NhY2hlZENodW5rcy5sZW5ndGg+MClyZXR1cm57dmFsdWU6dGhpcy5fY2FjaGVkQ2h1bmtzLnNoaWZ0KCksZG9uZTohMX07aWYodGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2NvbnN0IHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLnB1c2godCksdC5wcm9taXNlfWNhbmNlbCh0KXt0aGlzLl9kb25lPSEwLHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCh0KTtmb3IoY29uc3QgdCBvZiB0aGlzLl9yZXF1ZXN0cyl0LnJlc29sdmUoe3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk7dGhpcy5fcmVxdWVzdHMubGVuZ3RoPTAsdGhpcy5fbWFuYWdlci5pc1BlbmRpbmdSZXF1ZXN0KHRoaXMuX2Z1bGxSZXF1ZXN0SWQpJiZ0aGlzLl9tYW5hZ2VyLmFib3J0UmVxdWVzdCh0aGlzLl9mdWxsUmVxdWVzdElkKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1udWxsfX1jbGFzcyB6ZXtjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5fbWFuYWdlcj10O2NvbnN0IHM9e29uRG9uZTp0aGlzLl9vbkRvbmUuYmluZCh0aGlzKSxvbkVycm9yOnRoaXMuX29uRXJyb3IuYmluZCh0aGlzKSxvblByb2dyZXNzOnRoaXMuX29uUHJvZ3Jlc3MuYmluZCh0aGlzKX07dGhpcy5fdXJsPXQudXJsLHRoaXMuX3JlcXVlc3RJZD10LnJlcXVlc3RSYW5nZShlLGkscyksdGhpcy5fcmVxdWVzdHM9W10sdGhpcy5fcXVldWVkQ2h1bms9bnVsbCx0aGlzLl9kb25lPSExLHRoaXMuX3N0b3JlZEVycm9yPXZvaWQgMCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbCx0aGlzLm9uQ2xvc2VkPW51bGx9X2Nsb3NlKCl7dGhpcy5vbkNsb3NlZD8uKHRoaXMpfV9vbkRvbmUodCl7Y29uc3QgZT10LmNodW5rO3RoaXMuX3JlcXVlc3RzLmxlbmd0aD4wP3RoaXMuX3JlcXVlc3RzLnNoaWZ0KCkucmVzb2x2ZSh7dmFsdWU6ZSxkb25lOiExfSk6dGhpcy5fcXVldWVkQ2h1bms9ZSx0aGlzLl9kb25lPSEwO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MCx0aGlzLl9jbG9zZSgpfV9vbkVycm9yKHQpe3RoaXMuX3N0b3JlZEVycm9yPWtlKHQsdGhpcy5fdXJsKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9yZXF1ZXN0cyl0LnJlamVjdCh0aGlzLl9zdG9yZWRFcnJvcik7dGhpcy5fcmVxdWVzdHMubGVuZ3RoPTAsdGhpcy5fcXVldWVkQ2h1bms9bnVsbH1fb25Qcm9ncmVzcyh0KXt0aGlzLmlzU3RyZWFtaW5nU3VwcG9ydGVkfHx0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkfSl9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuITF9YXN5bmMgcmVhZCgpe2lmKHRoaXMuX3N0b3JlZEVycm9yKXRocm93IHRoaXMuX3N0b3JlZEVycm9yO2lmKG51bGwhPT10aGlzLl9xdWV1ZWRDaHVuayl7Y29uc3QgdD10aGlzLl9xdWV1ZWRDaHVuaztyZXR1cm4gdGhpcy5fcXVldWVkQ2h1bms9bnVsbCx7dmFsdWU6dCxkb25lOiExfX1pZih0aGlzLl9kb25lKXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH07Y29uc3QgdD1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtyZXR1cm4gdGhpcy5fcmVxdWVzdHMucHVzaCh0KSx0LnByb21pc2V9Y2FuY2VsKHQpe3RoaXMuX2RvbmU9ITA7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcmVxdWVzdHMpdC5yZXNvbHZlKHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pO3RoaXMuX3JlcXVlc3RzLmxlbmd0aD0wLHRoaXMuX21hbmFnZXIuaXNQZW5kaW5nUmVxdWVzdCh0aGlzLl9yZXF1ZXN0SWQpJiZ0aGlzLl9tYW5hZ2VyLmFib3J0UmVxdWVzdCh0aGlzLl9yZXF1ZXN0SWQpLHRoaXMuX2Nsb3NlKCl9fWNvbnN0IEhlPS9eW2Etel1bYS16MC05XC0rLl0rOi9pO2Z1bmN0aW9uIGplKHQsZSxpKXtyZXR1cm4iaHR0cDoiPT09dC5wcm90b2NvbD9VdC5nZXQoImh0dHAiKS5yZXF1ZXN0KHQse2hlYWRlcnM6ZX0saSk6VXQuZ2V0KCJodHRwcyIpLnJlcXVlc3QodCx7aGVhZGVyczplfSxpKX1jbGFzcyBVZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnNvdXJjZT10LHRoaXMudXJsPWZ1bmN0aW9uKHQpe2lmKEhlLnRlc3QodCkpcmV0dXJuIG5ldyBVUkwodCk7Y29uc3QgZT1VdC5nZXQoInVybCIpO3JldHVybiBuZXcgVVJMKGUucGF0aFRvRmlsZVVSTCh0KSl9KHQudXJsKSx0aGlzLmlzSHR0cD0iaHR0cDoiPT09dGhpcy51cmwucHJvdG9jb2x8fCJodHRwczoiPT09dGhpcy51cmwucHJvdG9jb2wsdGhpcy5pc0ZzVXJsPSJmaWxlOiI9PT10aGlzLnVybC5wcm90b2NvbCx0aGlzLmhlYWRlcnM9U2UodGhpcy5pc0h0dHAsdC5odHRwSGVhZGVycyksdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI9bnVsbCx0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzPVtdfWdldCBfcHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5fbG9hZGVkPz8wfWdldEZ1bGxSZWFkZXIoKXtyZXR1cm4gXyghdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXIsIlBERk5vZGVTdHJlYW0uZ2V0RnVsbFJlYWRlciBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4iKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj10aGlzLmlzRnNVcmw/bmV3IHFlKHRoaXMpOm5ldyBHZSh0aGlzKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcn1nZXRSYW5nZVJlYWRlcih0LGUpe2lmKGU8PXRoaXMuX3Byb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBpPXRoaXMuaXNGc1VybD9uZXcgWGUodGhpcyx0LGUpOm5ldyBWZSh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaChpKSxpfWNhbmNlbEFsbFJlcXVlc3RzKHQpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5jYW5jZWwodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5zbGljZSgwKSllLmNhbmNlbCh0KX19Y2xhc3MgJGV7Y29uc3RydWN0b3IodCl7dGhpcy5fdXJsPXQudXJsLHRoaXMuX2RvbmU9ITEsdGhpcy5fc3RvcmVkRXJyb3I9bnVsbCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbDtjb25zdCBlPXQuc291cmNlO3RoaXMuX2NvbnRlbnRMZW5ndGg9ZS5sZW5ndGgsdGhpcy5fbG9hZGVkPTAsdGhpcy5fZmlsZW5hbWU9bnVsbCx0aGlzLl9kaXNhYmxlUmFuZ2U9ZS5kaXNhYmxlUmFuZ2V8fCExLHRoaXMuX3JhbmdlQ2h1bmtTaXplPWUucmFuZ2VDaHVua1NpemUsdGhpcy5fcmFuZ2VDaHVua1NpemV8fHRoaXMuX2Rpc2FibGVSYW5nZXx8KHRoaXMuX2Rpc2FibGVSYW5nZT0hMCksdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWUuZGlzYWJsZVN0cmVhbSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSFlLmRpc2FibGVSYW5nZSx0aGlzLl9yZWFkYWJsZVN0cmVhbT1udWxsLHRoaXMuX3JlYWRDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfWdldCBoZWFkZXJzUmVhZHkoKXtyZXR1cm4gdGhpcy5faGVhZGVyc0NhcGFiaWxpdHkucHJvbWlzZX1nZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy5fZmlsZW5hbWV9Z2V0IGNvbnRlbnRMZW5ndGgoKXtyZXR1cm4gdGhpcy5fY29udGVudExlbmd0aH1nZXQgaXNSYW5nZVN1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1JhbmdlU3VwcG9ydGVkfWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1hc3luYyByZWFkKCl7aWYoYXdhaXQgdGhpcy5fcmVhZENhcGFiaWxpdHkucHJvbWlzZSx0aGlzLl9kb25lKXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH07aWYodGhpcy5fc3RvcmVkRXJyb3IpdGhyb3cgdGhpcy5fc3RvcmVkRXJyb3I7Y29uc3QgdD10aGlzLl9yZWFkYWJsZVN0cmVhbS5yZWFkKCk7cmV0dXJuIG51bGw9PT10Pyh0aGlzLl9yZWFkQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLnJlYWQoKSk6KHRoaXMuX2xvYWRlZCs9dC5sZW5ndGgsdGhpcy5vblByb2dyZXNzPy4oe2xvYWRlZDp0aGlzLl9sb2FkZWQsdG90YWw6dGhpcy5fY29udGVudExlbmd0aH0pLHt2YWx1ZTpuZXcgVWludDhBcnJheSh0KS5idWZmZXIsZG9uZTohMX0pfWNhbmNlbCh0KXt0aGlzLl9yZWFkYWJsZVN0cmVhbT90aGlzLl9yZWFkYWJsZVN0cmVhbS5kZXN0cm95KHQpOnRoaXMuX2Vycm9yKHQpfV9lcnJvcih0KXt0aGlzLl9zdG9yZWRFcnJvcj10LHRoaXMuX3JlYWRDYXBhYmlsaXR5LnJlc29sdmUoKX1fc2V0UmVhZGFibGVTdHJlYW0odCl7dGhpcy5fcmVhZGFibGVTdHJlYW09dCx0Lm9uKCJyZWFkYWJsZSIsKCgpPT57dGhpcy5fcmVhZENhcGFiaWxpdHkucmVzb2x2ZSgpfSkpLHQub24oImVuZCIsKCgpPT57dC5kZXN0cm95KCksdGhpcy5fZG9uZT0hMCx0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZXNvbHZlKCl9KSksdC5vbigiZXJyb3IiLCh0PT57dGhpcy5fZXJyb3IodCl9KSksIXRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkJiZ0aGlzLl9pc1JhbmdlU3VwcG9ydGVkJiZ0aGlzLl9lcnJvcihuZXcgRCgic3RyZWFtaW5nIGlzIGRpc2FibGVkIikpLHRoaXMuX3N0b3JlZEVycm9yJiZ0aGlzLl9yZWFkYWJsZVN0cmVhbS5kZXN0cm95KHRoaXMuX3N0b3JlZEVycm9yKX19Y2xhc3MgV2V7Y29uc3RydWN0b3IodCl7dGhpcy5fdXJsPXQudXJsLHRoaXMuX2RvbmU9ITEsdGhpcy5fc3RvcmVkRXJyb3I9bnVsbCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbCx0aGlzLl9sb2FkZWQ9MCx0aGlzLl9yZWFkYWJsZVN0cmVhbT1udWxsLHRoaXMuX3JlYWRDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpO2NvbnN0IGU9dC5zb3VyY2U7dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWUuZGlzYWJsZVN0cmVhbX1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWR9YXN5bmMgcmVhZCgpe2lmKGF3YWl0IHRoaXMuX3JlYWRDYXBhYmlsaXR5LnByb21pc2UsdGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2lmKHRoaXMuX3N0b3JlZEVycm9yKXRocm93IHRoaXMuX3N0b3JlZEVycm9yO2NvbnN0IHQ9dGhpcy5fcmVhZGFibGVTdHJlYW0ucmVhZCgpO3JldHVybiBudWxsPT09dD8odGhpcy5fcmVhZENhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy5yZWFkKCkpOih0aGlzLl9sb2FkZWQrPXQubGVuZ3RoLHRoaXMub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dGhpcy5fbG9hZGVkfSkse3ZhbHVlOm5ldyBVaW50OEFycmF5KHQpLmJ1ZmZlcixkb25lOiExfSl9Y2FuY2VsKHQpe3RoaXMuX3JlYWRhYmxlU3RyZWFtP3RoaXMuX3JlYWRhYmxlU3RyZWFtLmRlc3Ryb3kodCk6dGhpcy5fZXJyb3IodCl9X2Vycm9yKHQpe3RoaXMuX3N0b3JlZEVycm9yPXQsdGhpcy5fcmVhZENhcGFiaWxpdHkucmVzb2x2ZSgpfV9zZXRSZWFkYWJsZVN0cmVhbSh0KXt0aGlzLl9yZWFkYWJsZVN0cmVhbT10LHQub24oInJlYWRhYmxlIiwoKCk9Pnt0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZXNvbHZlKCl9KSksdC5vbigiZW5kIiwoKCk9Pnt0LmRlc3Ryb3koKSx0aGlzLl9kb25lPSEwLHRoaXMuX3JlYWRDYXBhYmlsaXR5LnJlc29sdmUoKX0pKSx0Lm9uKCJlcnJvciIsKHQ9Pnt0aGlzLl9lcnJvcih0KX0pKSx0aGlzLl9zdG9yZWRFcnJvciYmdGhpcy5fcmVhZGFibGVTdHJlYW0uZGVzdHJveSh0aGlzLl9zdG9yZWRFcnJvcil9fWNsYXNzIEdlIGV4dGVuZHMgJGV7Y29uc3RydWN0b3IodCl7c3VwZXIodCk7Y29uc3QgZT1PYmplY3QuZnJvbUVudHJpZXModC5oZWFkZXJzKTt0aGlzLl9yZXF1ZXN0PWplKHRoaXMuX3VybCxlLChlPT57aWYoNDA0PT09ZS5zdGF0dXNDb2RlKXtjb25zdCB0PW5ldyBJKGBNaXNzaW5nIFBERiAiJHt0aGlzLl91cmx9Ii5gKTtyZXR1cm4gdGhpcy5fc3RvcmVkRXJyb3I9dCx2b2lkIHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCh0KX10aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCksdGhpcy5fc2V0UmVhZGFibGVTdHJlYW0oZSk7Y29uc3QgaT1uZXcgSGVhZGVycyh0aGlzLl9yZWFkYWJsZVN0cmVhbS5oZWFkZXJzKSx7YWxsb3dSYW5nZVJlcXVlc3RzOnMsc3VnZ2VzdGVkTGVuZ3RoOm59PVRlKHtyZXNwb25zZUhlYWRlcnM6aSxpc0h0dHA6dC5pc0h0dHAscmFuZ2VDaHVua1NpemU6dGhpcy5fcmFuZ2VDaHVua1NpemUsZGlzYWJsZVJhbmdlOnRoaXMuX2Rpc2FibGVSYW5nZX0pO3RoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQ9cyx0aGlzLl9jb250ZW50TGVuZ3RoPW58fHRoaXMuX2NvbnRlbnRMZW5ndGgsdGhpcy5fZmlsZW5hbWU9TWUoaSl9KSksdGhpcy5fcmVxdWVzdC5vbigiZXJyb3IiLCh0PT57dGhpcy5fc3RvcmVkRXJyb3I9dCx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZWplY3QodCl9KSksdGhpcy5fcmVxdWVzdC5lbmQoKX19Y2xhc3MgVmUgZXh0ZW5kcyBXZXtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIodCk7Y29uc3Qgcz1PYmplY3QuZnJvbUVudHJpZXModC5oZWFkZXJzKTtzLlJhbmdlPWBieXRlcz0ke2V9LSR7aS0xfWAsdGhpcy5fcmVxdWVzdD1qZSh0aGlzLl91cmwscywodD0+e2lmKDQwNCE9PXQuc3RhdHVzQ29kZSl0aGlzLl9zZXRSZWFkYWJsZVN0cmVhbSh0KTtlbHNle2NvbnN0IHQ9bmV3IEkoYE1pc3NpbmcgUERGICIke3RoaXMuX3VybH0iLmApO3RoaXMuX3N0b3JlZEVycm9yPXR9fSkpLHRoaXMuX3JlcXVlc3Qub24oImVycm9yIiwodD0+e3RoaXMuX3N0b3JlZEVycm9yPXR9KSksdGhpcy5fcmVxdWVzdC5lbmQoKX19Y2xhc3MgcWUgZXh0ZW5kcyAkZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KTtjb25zdCBlPVV0LmdldCgiZnMiKTtlLnByb21pc2VzLmxzdGF0KHRoaXMuX3VybCkudGhlbigodD0+e3RoaXMuX2NvbnRlbnRMZW5ndGg9dC5zaXplLHRoaXMuX3NldFJlYWRhYmxlU3RyZWFtKGUuY3JlYXRlUmVhZFN0cmVhbSh0aGlzLl91cmwpKSx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCl9KSwodD0+eyJFTk9FTlQiPT09dC5jb2RlJiYodD1uZXcgSShgTWlzc2luZyBQREYgIiR7dGhpcy5fdXJsfSIuYCkpLHRoaXMuX3N0b3JlZEVycm9yPXQsdGhpcy5faGVhZGVyc0NhcGFiaWxpdHkucmVqZWN0KHQpfSkpfX1jbGFzcyBYZSBleHRlbmRzIFdle2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0KTtjb25zdCBzPVV0LmdldCgiZnMiKTt0aGlzLl9zZXRSZWFkYWJsZVN0cmVhbShzLmNyZWF0ZVJlYWRTdHJlYW0odGhpcy5fdXJsLHtzdGFydDplLGVuZDppLTF9KSl9fWNvbnN0IEtlPTMwO2NsYXNzIFlleyNKZT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTsjdXQ9bnVsbDsjWmU9ITE7I3RpPSEhZ2xvYmFsVGhpcy5Gb250SW5zcGVjdG9yPy5lbmFibGVkOyNlaT1udWxsOyNpaT1udWxsOyNzaT0wOyNuaT0wOyNyaT1udWxsOyNhaT1udWxsOyNvaT0wOyNoaT0wOyNsaT1PYmplY3QuY3JlYXRlKG51bGwpOyNjaT1bXTsjZGk9bnVsbDsjdWk9W107I3BpPW5ldyBXZWFrTWFwOyNnaT1udWxsO3N0YXRpYyNmaT1uZXcgTWFwO3N0YXRpYyNtaT1uZXcgTWFwO3N0YXRpYyNiaT1uZXcgV2Vha01hcDtzdGF0aWMjdmk9bnVsbDtzdGF0aWMjeWk9bmV3IFNldDtjb25zdHJ1Y3Rvcih7dGV4dENvbnRlbnRTb3VyY2U6dCxjb250YWluZXI6ZSx2aWV3cG9ydDppfSl7aWYodCBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKXRoaXMuI2RpPXQ7ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCdObyAidGV4dENvbnRlbnRTb3VyY2UiIHBhcmFtZXRlciBzcGVjaWZpZWQuJyk7dGhpcy4jZGk9bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChlKXtlLmVucXVldWUodCksZS5jbG9zZSgpfX0pfXRoaXMuI3V0PXRoaXMuI2FpPWUsdGhpcy4jaGk9aS5zY2FsZSooZ2xvYmFsVGhpcy5kZXZpY2VQaXhlbFJhdGlvfHwxKSx0aGlzLiNvaT1pLnJvdGF0aW9uLHRoaXMuI2lpPXtkaXY6bnVsbCxwcm9wZXJ0aWVzOm51bGwsY3R4Om51bGx9O2NvbnN0e3BhZ2VXaWR0aDpzLHBhZ2VIZWlnaHQ6bixwYWdlWDpyLHBhZ2VZOmF9PWkucmF3RGltczt0aGlzLiNnaT1bMSwwLDAsLTEsLXIsYStuXSx0aGlzLiNuaT1zLHRoaXMuI3NpPW4sWWUuI0FpKCksYnQoZSxpKSx0aGlzLiNKZS5wcm9taXNlLmZpbmFsbHkoKCgpPT57WWUuI3lpLmRlbGV0ZSh0aGlzKSx0aGlzLiNpaT1udWxsLHRoaXMuI2xpPW51bGx9KSkuY2F0Y2goKCgpPT57fSkpfXN0YXRpYyBnZXQgZm9udEZhbWlseU1hcCgpe2NvbnN0e2lzV2luZG93czp0LGlzRmlyZWZveDplfT1OLnBsYXRmb3JtO3JldHVybiBDKHRoaXMsImZvbnRGYW1pbHlNYXAiLG5ldyBNYXAoW1sic2Fucy1zZXJpZiIsKHQmJmU/IkNhbGlicmksICI6IiIpKyJzYW5zLXNlcmlmIl0sWyJtb25vc3BhY2UiLCh0JiZlPyJMdWNpZGEgQ29uc29sZSwgIjoiIikrIm1vbm9zcGFjZSJdXSkpfXJlbmRlcigpe2NvbnN0IHQ9KCk9Pnt0aGlzLiNyaS5yZWFkKCkudGhlbigoKHt2YWx1ZTplLGRvbmU6aX0pPT57aT90aGlzLiNKZS5yZXNvbHZlKCk6KHRoaXMuI2VpPz89ZS5sYW5nLE9iamVjdC5hc3NpZ24odGhpcy4jbGksZS5zdHlsZXMpLHRoaXMuI3dpKGUuaXRlbXMpLHQoKSl9KSx0aGlzLiNKZS5yZWplY3QpfTtyZXR1cm4gdGhpcy4jcmk9dGhpcy4jZGkuZ2V0UmVhZGVyKCksWWUuI3lpLmFkZCh0aGlzKSx0KCksdGhpcy4jSmUucHJvbWlzZX11cGRhdGUoe3ZpZXdwb3J0OnQsb25CZWZvcmU6ZT1udWxsfSl7Y29uc3QgaT10LnNjYWxlKihnbG9iYWxUaGlzLmRldmljZVBpeGVsUmF0aW98fDEpLHM9dC5yb3RhdGlvbjtpZihzIT09dGhpcy4jb2kmJihlPy4oKSx0aGlzLiNvaT1zLGJ0KHRoaXMuI2FpLHtyb3RhdGlvbjpzfSkpLGkhPT10aGlzLiNoaSl7ZT8uKCksdGhpcy4jaGk9aTtjb25zdCB0PXtkaXY6bnVsbCxwcm9wZXJ0aWVzOm51bGwsY3R4OlllLiN4aSh0aGlzLiNlaSl9O2Zvcihjb25zdCBlIG9mIHRoaXMuI3VpKXQucHJvcGVydGllcz10aGlzLiNwaS5nZXQoZSksdC5kaXY9ZSx0aGlzLiNfaSh0KX19Y2FuY2VsKCl7Y29uc3QgdD1uZXcgRCgiVGV4dExheWVyIHRhc2sgY2FuY2VsbGVkLiIpO3RoaXMuI3JpPy5jYW5jZWwodCkuY2F0Y2goKCgpPT57fSkpLHRoaXMuI3JpPW51bGwsdGhpcy4jSmUucmVqZWN0KHQpfWdldCB0ZXh0RGl2cygpe3JldHVybiB0aGlzLiN1aX1nZXQgdGV4dENvbnRlbnRJdGVtc1N0cigpe3JldHVybiB0aGlzLiNjaX0jd2kodCl7aWYodGhpcy4jWmUpcmV0dXJuO3RoaXMuI2lpLmN0eD8/PVllLiN4aSh0aGlzLiNlaSk7Y29uc3QgZT10aGlzLiN1aSxpPXRoaXMuI2NpO2Zvcihjb25zdCBzIG9mIHQpe2lmKGUubGVuZ3RoPjFlNSlyZXR1cm4gdygiSWdub3JpbmcgYWRkaXRpb25hbCB0ZXh0RGl2cyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4iKSx2b2lkKHRoaXMuI1plPSEwKTtpZih2b2lkIDAhPT1zLnN0cilpLnB1c2gocy5zdHIpLHRoaXMuI0VpKHMpO2Vsc2UgaWYoImJlZ2luTWFya2VkQ29udGVudFByb3BzIj09PXMudHlwZXx8ImJlZ2luTWFya2VkQ29udGVudCI9PT1zLnR5cGUpe2NvbnN0IHQ9dGhpcy4jdXQ7dGhpcy4jdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuI3V0LmNsYXNzTGlzdC5hZGQoIm1hcmtlZENvbnRlbnQiKSxudWxsIT09cy5pZCYmdGhpcy4jdXQuc2V0QXR0cmlidXRlKCJpZCIsYCR7cy5pZH1gKSx0LmFwcGVuZCh0aGlzLiN1dCl9ZWxzZSJlbmRNYXJrZWRDb250ZW50Ij09PXMudHlwZSYmKHRoaXMuI3V0PXRoaXMuI3V0LnBhcmVudE5vZGUpfX0jRWkodCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksaT17YW5nbGU6MCxjYW52YXNXaWR0aDowLGhhc1RleHQ6IiIhPT10LnN0cixoYXNFT0w6dC5oYXNFT0wsZm9udFNpemU6MH07dGhpcy4jdWkucHVzaChlKTtjb25zdCBzPXoudHJhbnNmb3JtKHRoaXMuI2dpLHQudHJhbnNmb3JtKTtsZXQgbj1NYXRoLmF0YW4yKHNbMV0sc1swXSk7Y29uc3Qgcj10aGlzLiNsaVt0LmZvbnROYW1lXTtyLnZlcnRpY2FsJiYobis9TWF0aC5QSS8yKTtsZXQgYT10aGlzLiN0aSYmci5mb250U3Vic3RpdHV0aW9ufHxyLmZvbnRGYW1pbHk7YT1ZZS5mb250RmFtaWx5TWFwLmdldChhKXx8YTtjb25zdCBvPU1hdGguaHlwb3Qoc1syXSxzWzNdKSxoPW8qWWUuI0NpKGEsdGhpcy4jZWkpO2xldCBsLGM7MD09PW4/KGw9c1s0XSxjPXNbNV0taCk6KGw9c1s0XStoKk1hdGguc2luKG4pLGM9c1s1XS1oKk1hdGguY29zKG4pKTtjb25zdCBkPSJjYWxjKHZhcigtLXNjYWxlLWZhY3RvcikqIix1PWUuc3R5bGU7dGhpcy4jdXQ9PT10aGlzLiNhaT8odS5sZWZ0PWAkeygxMDAqbC90aGlzLiNuaSkudG9GaXhlZCgyKX0lYCx1LnRvcD1gJHsoMTAwKmMvdGhpcy4jc2kpLnRvRml4ZWQoMil9JWApOih1LmxlZnQ9YCR7ZH0ke2wudG9GaXhlZCgyKX1weClgLHUudG9wPWAke2R9JHtjLnRvRml4ZWQoMil9cHgpYCksdS5mb250U2l6ZT1gJHtkfSR7KFllLiN2aSpvKS50b0ZpeGVkKDIpfXB4KWAsdS5mb250RmFtaWx5PWEsaS5mb250U2l6ZT1vLGUuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIiksZS50ZXh0Q29udGVudD10LnN0cixlLmRpcj10LmRpcix0aGlzLiN0aSYmKGUuZGF0YXNldC5mb250TmFtZT1yLmZvbnRTdWJzdGl0dXRpb25Mb2FkZWROYW1lfHx0LmZvbnROYW1lKSwwIT09biYmKGkuYW5nbGU9biooMTgwL01hdGguUEkpKTtsZXQgcD0hMTtpZih0LnN0ci5sZW5ndGg+MSlwPSEwO2Vsc2UgaWYoIiAiIT09dC5zdHImJnQudHJhbnNmb3JtWzBdIT09dC50cmFuc2Zvcm1bM10pe2NvbnN0IGU9TWF0aC5hYnModC50cmFuc2Zvcm1bMF0pLGk9TWF0aC5hYnModC50cmFuc2Zvcm1bM10pO2UhPT1pJiZNYXRoLm1heChlLGkpL01hdGgubWluKGUsaSk+MS41JiYocD0hMCl9aWYocCYmKGkuY2FudmFzV2lkdGg9ci52ZXJ0aWNhbD90LmhlaWdodDp0LndpZHRoKSx0aGlzLiNwaS5zZXQoZSxpKSx0aGlzLiNpaS5kaXY9ZSx0aGlzLiNpaS5wcm9wZXJ0aWVzPWksdGhpcy4jX2kodGhpcy4jaWkpLGkuaGFzVGV4dCYmdGhpcy4jdXQuYXBwZW5kKGUpLGkuaGFzRU9MKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIik7dC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKSx0aGlzLiN1dC5hcHBlbmQodCl9fSNfaSh0KXtjb25zdHtkaXY6ZSxwcm9wZXJ0aWVzOmksY3R4OnN9PXQse3N0eWxlOm59PWU7bGV0IHI9IiI7aWYoWWUuI3ZpPjEmJihyPWBzY2FsZSgkezEvWWUuI3ZpfSlgKSwwIT09aS5jYW52YXNXaWR0aCYmaS5oYXNUZXh0KXtjb25zdHtmb250RmFtaWx5OnR9PW4se2NhbnZhc1dpZHRoOmEsZm9udFNpemU6b309aTtZZS4jU2kocyxvKnRoaXMuI2hpLHQpO2NvbnN0e3dpZHRoOmh9PXMubWVhc3VyZVRleHQoZS50ZXh0Q29udGVudCk7aD4wJiYocj1gc2NhbGVYKCR7YSp0aGlzLiNoaS9ofSkgJHtyfWApfTAhPT1pLmFuZ2xlJiYocj1gcm90YXRlKCR7aS5hbmdsZX1kZWcpICR7cn1gKSxyLmxlbmd0aD4wJiYobi50cmFuc2Zvcm09cil9c3RhdGljIGNsZWFudXAoKXtpZighKHRoaXMuI3lpLnNpemU+MCkpe3RoaXMuI2ZpLmNsZWFyKCk7Zm9yKGNvbnN0e2NhbnZhczp0fW9mIHRoaXMuI21pLnZhbHVlcygpKXQucmVtb3ZlKCk7dGhpcy4jbWkuY2xlYXIoKX19c3RhdGljI3hpKHQ9bnVsbCl7bGV0IGU9dGhpcy4jbWkuZ2V0KHR8fD0iIik7aWYoIWUpe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7aS5jbGFzc05hbWU9ImhpZGRlbkNhbnZhc0VsZW1lbnQiLGkubGFuZz10LGRvY3VtZW50LmJvZHkuYXBwZW5kKGkpLGU9aS5nZXRDb250ZXh0KCIyZCIse2FscGhhOiExLHdpbGxSZWFkRnJlcXVlbnRseTohMH0pLHRoaXMuI21pLnNldCh0LGUpLHRoaXMuI2JpLnNldChlLHtzaXplOjAsZmFtaWx5OiIifSl9cmV0dXJuIGV9c3RhdGljI1NpKHQsZSxpKXtjb25zdCBzPXRoaXMuI2JpLmdldCh0KTtlPT09cy5zaXplJiZpPT09cy5mYW1pbHl8fCh0LmZvbnQ9YCR7ZX1weCAke2l9YCxzLnNpemU9ZSxzLmZhbWlseT1pKX1zdGF0aWMjQWkoKXtpZihudWxsIT09dGhpcy4jdmkpcmV0dXJuO2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5zdHlsZS5vcGFjaXR5PTAsdC5zdHlsZS5saW5lSGVpZ2h0PTEsdC5zdHlsZS5mb250U2l6ZT0iMXB4Iix0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC50ZXh0Q29udGVudD0iWCIsZG9jdW1lbnQuYm9keS5hcHBlbmQodCksdGhpcy4jdmk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsdC5yZW1vdmUoKX1zdGF0aWMjQ2kodCxlKXtjb25zdCBpPXRoaXMuI2ZpLmdldCh0KTtpZihpKXJldHVybiBpO2NvbnN0IHM9dGhpcy4jeGkoZSk7cy5jYW52YXMud2lkdGg9cy5jYW52YXMuaGVpZ2h0PUtlLHRoaXMuI1NpKHMsS2UsdCk7Y29uc3Qgbj1zLm1lYXN1cmVUZXh0KCIiKTtsZXQgcj1uLmZvbnRCb3VuZGluZ0JveEFzY2VudCxhPU1hdGguYWJzKG4uZm9udEJvdW5kaW5nQm94RGVzY2VudCk7aWYocil7Y29uc3QgZT1yLyhyK2EpO3JldHVybiB0aGlzLiNmaS5zZXQodCxlKSxzLmNhbnZhcy53aWR0aD1zLmNhbnZhcy5oZWlnaHQ9MCxlfXMuc3Ryb2tlU3R5bGU9InJlZCIscy5jbGVhclJlY3QoMCwwLEtlLEtlKSxzLnN0cm9rZVRleHQoImciLDAsMCk7bGV0IG89cy5nZXRJbWFnZURhdGEoMCwwLEtlLEtlKS5kYXRhO2E9MDtmb3IobGV0IHQ9by5sZW5ndGgtMS0zO3Q+PTA7dC09NClpZihvW3RdPjApe2E9TWF0aC5jZWlsKHQvNC9LZSk7YnJlYWt9cy5jbGVhclJlY3QoMCwwLEtlLEtlKSxzLnN0cm9rZVRleHQoIkEiLDAsS2UpLG89cy5nZXRJbWFnZURhdGEoMCwwLEtlLEtlKS5kYXRhLHI9MDtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kz00KWlmKG9bdF0+MCl7cj1LZS1NYXRoLmZsb29yKHQvNC9LZSk7YnJlYWt9cy5jYW52YXMud2lkdGg9cy5jYW52YXMuaGVpZ2h0PTA7Y29uc3QgaD1yP3IvKHIrYSk6Ljg7cmV0dXJuIHRoaXMuI2ZpLnNldCh0LGgpLGh9fWNsYXNzIFFle3N0YXRpYyB0ZXh0Q29udGVudCh0KXtjb25zdCBlPVtdLGk9e2l0ZW1zOmUsc3R5bGVzOk9iamVjdC5jcmVhdGUobnVsbCl9O3JldHVybiBmdW5jdGlvbiB0KGkpe2lmKCFpKXJldHVybjtsZXQgcz1udWxsO2NvbnN0IG49aS5uYW1lO2lmKCIjdGV4dCI9PT1uKXM9aS52YWx1ZTtlbHNle2lmKCFRZS5zaG91bGRCdWlsZFRleHQobikpcmV0dXJuO2k/LmF0dHJpYnV0ZXM/LnRleHRDb250ZW50P3M9aS5hdHRyaWJ1dGVzLnRleHRDb250ZW50OmkudmFsdWUmJihzPWkudmFsdWUpfWlmKG51bGwhPT1zJiZlLnB1c2goe3N0cjpzfSksaS5jaGlsZHJlbilmb3IoY29uc3QgZSBvZiBpLmNoaWxkcmVuKXQoZSl9KHQpLGl9c3RhdGljIHNob3VsZEJ1aWxkVGV4dCh0KXtyZXR1cm4hKCJ0ZXh0YXJlYSI9PT10fHwiaW5wdXQiPT09dHx8Im9wdGlvbiI9PT10fHwic2VsZWN0Ij09PXQpfX1jb25zdCBKZT02NTUzNixaZT1uP2NsYXNzIGV4dGVuZHMgR3tfY3JlYXRlQ2FudmFzKHQsZSl7cmV0dXJuIFV0LmdldCgiY2FudmFzIikuY3JlYXRlQ2FudmFzKHQsZSl9fTpjbGFzcyBleHRlbmRzIEd7Y29uc3RydWN0b3Ioe293bmVyRG9jdW1lbnQ6dD1nbG9iYWxUaGlzLmRvY3VtZW50LGVuYWJsZUhXQTplPSExfSl7c3VwZXIoe2VuYWJsZUhXQTplfSksdGhpcy5fZG9jdW1lbnQ9dH1fY3JlYXRlQ2FudmFzKHQsZSl7Y29uc3QgaT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gaS53aWR0aD10LGkuaGVpZ2h0PWUsaX19LHRpPW4/Y2xhc3MgZXh0ZW5kcyBWe19mZXRjaERhdGEodCxlKXtyZXR1cm4gJHQodCkudGhlbigodD0+KHtjTWFwRGF0YTp0LGNvbXByZXNzaW9uVHlwZTplfSkpKX19OkosZWk9bj9jbGFzcyBleHRlbmRzIFd7fTpjbGFzcyBleHRlbmRzIFd7I1RpOyNNaTsja2k7I0lpOyNSaTsjUGk7I3k9MDtjb25zdHJ1Y3Rvcih7ZG9jSWQ6dCxvd25lckRvY3VtZW50OmU9Z2xvYmFsVGhpcy5kb2N1bWVudH0pe3N1cGVyKCksdGhpcy4jSWk9dCx0aGlzLiNSaT1lfWdldCN3KCl7cmV0dXJuIHRoaXMuI01pfHw9bmV3IE1hcH1nZXQjRGkoKXtyZXR1cm4gdGhpcy4jUGl8fD1uZXcgTWFwfWdldCNMaSgpe2lmKCF0aGlzLiNraSl7Y29uc3QgdD10aGlzLiNSaS5jcmVhdGVFbGVtZW50KCJkaXYiKSx7c3R5bGU6ZX09dDtlLnZpc2liaWxpdHk9ImhpZGRlbiIsZS5jb250YWluPSJzdHJpY3QiLGUud2lkdGg9ZS5oZWlnaHQ9MCxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZS50b3A9ZS5sZWZ0PTAsZS56SW5kZXg9LTE7Y29uc3QgaT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywic3ZnIik7aS5zZXRBdHRyaWJ1dGUoIndpZHRoIiwwKSxpLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwwKSx0aGlzLiNraT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywiZGVmcyIpLHQuYXBwZW5kKGkpLGkuYXBwZW5kKHRoaXMuI2tpKSx0aGlzLiNSaS5ib2R5LmFwcGVuZCh0KX1yZXR1cm4gdGhpcy4ja2l9I0ZpKHQpe2lmKDE9PT10Lmxlbmd0aCl7Y29uc3QgZT10WzBdLGk9bmV3IEFycmF5KDI1Nik7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKWlbdF09ZVt0XS8yNTU7Y29uc3Qgcz1pLmpvaW4oIiwiKTtyZXR1cm5bcyxzLHNdfWNvbnN0W2UsaSxzXT10LG49bmV3IEFycmF5KDI1Nikscj1uZXcgQXJyYXkoMjU2KSxhPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKyluW3RdPWVbdF0vMjU1LHJbdF09aVt0XS8yNTUsYVt0XT1zW3RdLzI1NTtyZXR1cm5bbi5qb2luKCIsIiksci5qb2luKCIsIiksYS5qb2luKCIsIildfSNPaSh0KXtpZih2b2lkIDA9PT10aGlzLiNUaSl7dGhpcy4jVGk9IiI7Y29uc3QgdD10aGlzLiNSaS5VUkw7dCE9PXRoaXMuI1JpLmJhc2VVUkkmJihzdCh0KT93KCcjY3JlYXRlVXJsOiBpZ25vcmUgImRhdGE6Ii1VUkwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuJyk6dGhpcy4jVGk9dC5zcGxpdCgiIyIsMSlbMF0pfXJldHVybmB1cmwoJHt0aGlzLiNUaX0jJHt0fSlgfWFkZEZpbHRlcih0KXtpZighdClyZXR1cm4ibm9uZSI7bGV0IGU9dGhpcy4jdy5nZXQodCk7aWYoZSlyZXR1cm4gZTtjb25zdFtpLHMsbl09dGhpcy4jRmkodCkscj0xPT09dC5sZW5ndGg/aTpgJHtpfSR7c30ke259YDtpZihlPXRoaXMuI3cuZ2V0KHIpLGUpcmV0dXJuIHRoaXMuI3cuc2V0KHQsZSksZTtjb25zdCBhPWBnXyR7dGhpcy4jSWl9X3RyYW5zZmVyX21hcF8ke3RoaXMuI3krK31gLG89dGhpcy4jT2koYSk7dGhpcy4jdy5zZXQodCxvKSx0aGlzLiN3LnNldChyLG8pO2NvbnN0IGg9dGhpcy4jTmkoYSk7cmV0dXJuIHRoaXMuI0JpKGkscyxuLGgpLG99YWRkSENNRmlsdGVyKHQsZSl7Y29uc3QgaT1gJHt0fS0ke2V9YCxzPSJiYXNlIjtsZXQgbj10aGlzLiNEaS5nZXQocyk7aWYobj8ua2V5PT09aSlyZXR1cm4gbi51cmw7aWYobj8obi5maWx0ZXI/LnJlbW92ZSgpLG4ua2V5PWksbi51cmw9Im5vbmUiLG4uZmlsdGVyPW51bGwpOihuPXtrZXk6aSx1cmw6Im5vbmUiLGZpbHRlcjpudWxsfSx0aGlzLiNEaS5zZXQocyxuKSksIXR8fCFlKXJldHVybiBuLnVybDtjb25zdCByPXRoaXMuI3ppKHQpO3Q9ei5tYWtlSGV4Q29sb3IoLi4ucik7Y29uc3QgYT10aGlzLiN6aShlKTtpZihlPXoubWFrZUhleENvbG9yKC4uLmEpLHRoaXMuI0xpLnN0eWxlLmNvbG9yPSIiLCIjMDAwMDAwIj09PXQmJiIjZmZmZmZmIj09PWV8fHQ9PT1lKXJldHVybiBuLnVybDtjb25zdCBvPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8PTI1NTt0Kyspe2NvbnN0IGU9dC8yNTU7b1t0XT1lPD0uMDM5Mjg/ZS8xMi45MjooKGUrLjA1NSkvMS4wNTUpKioyLjR9Y29uc3QgaD1vLmpvaW4oIiwiKSxsPWBnXyR7dGhpcy4jSWl9X2hjbV9maWx0ZXJgLGM9bi5maWx0ZXI9dGhpcy4jTmkobCk7dGhpcy4jQmkoaCxoLGgsYyksdGhpcy4jSGkoYyk7Y29uc3QgZD0odCxlKT0+e2NvbnN0IGk9clt0XS8yNTUscz1hW3RdLzI1NSxuPW5ldyBBcnJheShlKzEpO2ZvcihsZXQgdD0wO3Q8PWU7dCsrKW5bdF09aSt0L2UqKHMtaSk7cmV0dXJuIG4uam9pbigiLCIpfTtyZXR1cm4gdGhpcy4jQmkoZCgwLDUpLGQoMSw1KSxkKDIsNSksYyksbi51cmw9dGhpcy4jT2kobCksbi51cmx9YWRkQWxwaGFGaWx0ZXIodCl7bGV0IGU9dGhpcy4jdy5nZXQodCk7aWYoZSlyZXR1cm4gZTtjb25zdFtpXT10aGlzLiNGaShbdF0pLHM9YGFscGhhXyR7aX1gO2lmKGU9dGhpcy4jdy5nZXQocyksZSlyZXR1cm4gdGhpcy4jdy5zZXQodCxlKSxlO2NvbnN0IG49YGdfJHt0aGlzLiNJaX1fYWxwaGFfbWFwXyR7dGhpcy4jeSsrfWAscj10aGlzLiNPaShuKTt0aGlzLiN3LnNldCh0LHIpLHRoaXMuI3cuc2V0KHMscik7Y29uc3QgYT10aGlzLiNOaShuKTtyZXR1cm4gdGhpcy4jamkoaSxhKSxyfWFkZEx1bWlub3NpdHlGaWx0ZXIodCl7bGV0IGUsaSxzPXRoaXMuI3cuZ2V0KHR8fCJsdW1pbm9zaXR5Iik7aWYocylyZXR1cm4gcztpZih0PyhbZV09dGhpcy4jRmkoW3RdKSxpPWBsdW1pbm9zaXR5XyR7ZX1gKTppPSJsdW1pbm9zaXR5IixzPXRoaXMuI3cuZ2V0KGkpLHMpcmV0dXJuIHRoaXMuI3cuc2V0KHQscykscztjb25zdCBuPWBnXyR7dGhpcy4jSWl9X2x1bWlub3NpdHlfbWFwXyR7dGhpcy4jeSsrfWAscj10aGlzLiNPaShuKTt0aGlzLiN3LnNldCh0LHIpLHRoaXMuI3cuc2V0KGkscik7Y29uc3QgYT10aGlzLiNOaShuKTtyZXR1cm4gdGhpcy4jVWkoYSksdCYmdGhpcy4jamkoZSxhKSxyfWFkZEhpZ2hsaWdodEhDTUZpbHRlcih0LGUsaSxzLG4pe2NvbnN0IHI9YCR7ZX0tJHtpfS0ke3N9LSR7bn1gO2xldCBhPXRoaXMuI0RpLmdldCh0KTtpZihhPy5rZXk9PT1yKXJldHVybiBhLnVybDtpZihhPyhhLmZpbHRlcj8ucmVtb3ZlKCksYS5rZXk9cixhLnVybD0ibm9uZSIsYS5maWx0ZXI9bnVsbCk6KGE9e2tleTpyLHVybDoibm9uZSIsZmlsdGVyOm51bGx9LHRoaXMuI0RpLnNldCh0LGEpKSwhZXx8IWkpcmV0dXJuIGEudXJsO2NvbnN0W28saF09W2UsaV0ubWFwKHRoaXMuI3ppLmJpbmQodGhpcykpO2xldCBsPU1hdGgucm91bmQoLjIxMjYqb1swXSsuNzE1MipvWzFdKy4wNzIyKm9bMl0pLGM9TWF0aC5yb3VuZCguMjEyNipoWzBdKy43MTUyKmhbMV0rLjA3MjIqaFsyXSksW2QsdV09W3Msbl0ubWFwKHRoaXMuI3ppLmJpbmQodGhpcykpO2M8bCYmKFtsLGMsZCx1XT1bYyxsLHUsZF0pLHRoaXMuI0xpLnN0eWxlLmNvbG9yPSIiO2NvbnN0IHA9KHQsZSxpKT0+e2NvbnN0IHM9bmV3IEFycmF5KDI1Niksbj0oYy1sKS9pLHI9dC8yNTUsYT0oZS10KS8oMjU1KmkpO2xldCBvPTA7Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9TWF0aC5yb3VuZChsK3QqbiksaT1yK3QqYTtmb3IobGV0IHQ9bzt0PD1lO3QrKylzW3RdPWk7bz1lKzF9Zm9yKGxldCB0PW87dDwyNTY7dCsrKXNbdF09c1tvLTFdO3JldHVybiBzLmpvaW4oIiwiKX0sZz1gZ18ke3RoaXMuI0lpfV9oY21fJHt0fV9maWx0ZXJgLGY9YS5maWx0ZXI9dGhpcy4jTmkoZyk7cmV0dXJuIHRoaXMuI0hpKGYpLHRoaXMuI0JpKHAoZFswXSx1WzBdLDUpLHAoZFsxXSx1WzFdLDUpLHAoZFsyXSx1WzJdLDUpLGYpLGEudXJsPXRoaXMuI09pKGcpLGEudXJsfWRlc3Ryb3kodD0hMSl7dCYmMCE9PXRoaXMuI0RpLnNpemV8fCh0aGlzLiNraSYmKHRoaXMuI2tpLnBhcmVudE5vZGUucGFyZW50Tm9kZS5yZW1vdmUoKSx0aGlzLiNraT1udWxsKSx0aGlzLiNNaSYmKHRoaXMuI01pLmNsZWFyKCksdGhpcy4jTWk9bnVsbCksdGhpcy4jeT0wKX0jVWkodCl7Y29uc3QgZT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywiZmVDb2xvck1hdHJpeCIpO2Uuc2V0QXR0cmlidXRlKCJ0eXBlIiwibWF0cml4IiksZS5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMyAwLjU5IDAuMTEgMCAwIiksdC5hcHBlbmQoZSl9I0hpKHQpe2NvbnN0IGU9dGhpcy4jUmkuY3JlYXRlRWxlbWVudE5TKEssImZlQ29sb3JNYXRyaXgiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsIm1hdHJpeCIpLGUuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLCIwLjIxMjYgMC43MTUyIDAuMDcyMiAwIDAgMC4yMTI2IDAuNzE1MiAwLjA3MjIgMCAwIDAuMjEyNiAwLjcxNTIgMC4wNzIyIDAgMCAwIDAgMCAxIDAiKSx0LmFwcGVuZChlKX0jTmkodCl7Y29uc3QgZT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywiZmlsdGVyIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCJzUkdCIiksZS5zZXRBdHRyaWJ1dGUoImlkIix0KSx0aGlzLiNMaS5hcHBlbmQoZSksZX0jJGkodCxlLGkpe2NvbnN0IHM9dGhpcy4jUmkuY3JlYXRlRWxlbWVudE5TKEssZSk7cy5zZXRBdHRyaWJ1dGUoInR5cGUiLCJkaXNjcmV0ZSIpLHMuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsaSksdC5hcHBlbmQocyl9I0JpKHQsZSxpLHMpe2NvbnN0IG49dGhpcy4jUmkuY3JlYXRlRWxlbWVudE5TKEssImZlQ29tcG9uZW50VHJhbnNmZXIiKTtzLmFwcGVuZChuKSx0aGlzLiMkaShuLCJmZUZ1bmNSIix0KSx0aGlzLiMkaShuLCJmZUZ1bmNHIixlKSx0aGlzLiMkaShuLCJmZUZ1bmNCIixpKX0jamkodCxlKXtjb25zdCBpPXRoaXMuI1JpLmNyZWF0ZUVsZW1lbnROUyhLLCJmZUNvbXBvbmVudFRyYW5zZmVyIik7ZS5hcHBlbmQoaSksdGhpcy4jJGkoaSwiZmVGdW5jQSIsdCl9I3ppKHQpe3JldHVybiB0aGlzLiNMaS5zdHlsZS5jb2xvcj10LGd0KGdldENvbXB1dGVkU3R5bGUodGhpcy4jTGkpLmdldFByb3BlcnR5VmFsdWUoImNvbG9yIikpfX0saWk9bj9jbGFzcyBleHRlbmRzIHF7X2ZldGNoRGF0YSh0KXtyZXR1cm4gJHQodCl9fTpaO2Z1bmN0aW9uIHNpKHQ9e30peyJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFVSTD90PXt1cmw6dH06KHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8QXJyYXlCdWZmZXIuaXNWaWV3KHQpKSYmKHQ9e2RhdGE6dH0pO2NvbnN0IGU9bmV3IHJpLHtkb2NJZDppfT1lLHM9dC51cmw/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFVSTClyZXR1cm4gdC5ocmVmO3RyeXtyZXR1cm4gbmV3IFVSTCh0LHdpbmRvdy5sb2NhdGlvbikuaHJlZn1jYXRjaHtpZihuJiYic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHR9dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFBERiB1cmwgZGF0YTogZWl0aGVyIHN0cmluZyBvciBVUkwtb2JqZWN0IGlzIGV4cGVjdGVkIGluIHRoZSB1cmwgcHJvcGVydHkuIil9KHQudXJsKTpudWxsLHI9dC5kYXRhP2Z1bmN0aW9uKHQpe2lmKG4mJiJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyJiZ0IGluc3RhbmNlb2YgQnVmZmVyKXRocm93IG5ldyBFcnJvcigiUGxlYXNlIHByb3ZpZGUgYmluYXJ5IGRhdGEgYXMgYFVpbnQ4QXJyYXlgLCByYXRoZXIgdGhhbiBgQnVmZmVyYC4iKTtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSYmdC5ieXRlTGVuZ3RoPT09dC5idWZmZXIuYnl0ZUxlbmd0aClyZXR1cm4gdDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIEYodCk7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxBcnJheUJ1ZmZlci5pc1ZpZXcodCl8fCJvYmplY3QiPT10eXBlb2YgdCYmIWlzTmFOKHQ/Lmxlbmd0aCkpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBQREYgYmluYXJ5IGRhdGE6IGVpdGhlciBUeXBlZEFycmF5LCBzdHJpbmcsIG9yIGFycmF5LWxpa2Ugb2JqZWN0IGlzIGV4cGVjdGVkIGluIHRoZSBkYXRhIHByb3BlcnR5LiIpfSh0LmRhdGEpOm51bGwsYT10Lmh0dHBIZWFkZXJzfHxudWxsLG89ITA9PT10LndpdGhDcmVkZW50aWFscyxoPXQucGFzc3dvcmQ/P251bGwsbD10LnJhbmdlIGluc3RhbmNlb2YgYWk/dC5yYW5nZTpudWxsLGM9TnVtYmVyLmlzSW50ZWdlcih0LnJhbmdlQ2h1bmtTaXplKSYmdC5yYW5nZUNodW5rU2l6ZT4wP3QucmFuZ2VDaHVua1NpemU6SmU7bGV0IGQ9dC53b3JrZXIgaW5zdGFuY2VvZiBjaT90LndvcmtlcjpudWxsO2NvbnN0IHU9dC52ZXJib3NpdHkscD0ic3RyaW5nIiE9dHlwZW9mIHQuZG9jQmFzZVVybHx8c3QodC5kb2NCYXNlVXJsKT9udWxsOnQuZG9jQmFzZVVybCxnPSJzdHJpbmciPT10eXBlb2YgdC5jTWFwVXJsP3QuY01hcFVybDpudWxsLGY9ITEhPT10LmNNYXBQYWNrZWQsbT10LkNNYXBSZWFkZXJGYWN0b3J5fHx0aSxiPSJzdHJpbmciPT10eXBlb2YgdC5zdGFuZGFyZEZvbnREYXRhVXJsP3Quc3RhbmRhcmRGb250RGF0YVVybDpudWxsLHk9dC5TdGFuZGFyZEZvbnREYXRhRmFjdG9yeXx8aWksQT0hMCE9PXQuc3RvcEF0RXJyb3JzLHc9TnVtYmVyLmlzSW50ZWdlcih0Lm1heEltYWdlU2l6ZSkmJnQubWF4SW1hZ2VTaXplPi0xP3QubWF4SW1hZ2VTaXplOi0xLHg9ITEhPT10LmlzRXZhbFN1cHBvcnRlZCxfPSJib29sZWFuIj09dHlwZW9mIHQuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ/dC5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDohbixFPU51bWJlci5pc0ludGVnZXIodC5jYW52YXNNYXhBcmVhSW5CeXRlcyk/dC5jYW52YXNNYXhBcmVhSW5CeXRlczotMSxDPSJib29sZWFuIj09dHlwZW9mIHQuZGlzYWJsZUZvbnRGYWNlP3QuZGlzYWJsZUZvbnRGYWNlOm4sUz0hMD09PXQuZm9udEV4dHJhUHJvcGVydGllcyxUPSEwPT09dC5lbmFibGVYZmEsTT10Lm93bmVyRG9jdW1lbnR8fGdsb2JhbFRoaXMuZG9jdW1lbnQsaz0hMD09PXQuZGlzYWJsZVJhbmdlLEk9ITA9PT10LmRpc2FibGVTdHJlYW0sUj0hMD09PXQuZGlzYWJsZUF1dG9GZXRjaCxQPSEwPT09dC5wZGZCdWcsRD10LkNhbnZhc0ZhY3Rvcnl8fFplLEw9dC5GaWx0ZXJGYWN0b3J5fHxlaSxPPSEwPT09dC5lbmFibGVIV0EsTj1sP2wubGVuZ3RoOnQubGVuZ3RoPz9OYU4sQj0iYm9vbGVhbiI9PXR5cGVvZiB0LnVzZVN5c3RlbUZvbnRzP3QudXNlU3lzdGVtRm9udHM6IW4mJiFDLHo9ImJvb2xlYW4iPT10eXBlb2YgdC51c2VXb3JrZXJGZXRjaD90LnVzZVdvcmtlckZldGNoOm09PT1KJiZ5PT09WiYmZyYmYiYmaHQoZyxkb2N1bWVudC5iYXNlVVJJKSYmaHQoYixkb2N1bWVudC5iYXNlVVJJKTt0LmNhbnZhc0ZhY3RvcnkmJmN0KCJgY2FudmFzRmFjdG9yeWAtaW5zdGFuY2Ugb3B0aW9uLCBwbGVhc2UgdXNlIGBDYW52YXNGYWN0b3J5YCBpbnN0ZWFkLiIpLHQuZmlsdGVyRmFjdG9yeSYmY3QoImBmaWx0ZXJGYWN0b3J5YC1pbnN0YW5jZSBvcHRpb24sIHBsZWFzZSB1c2UgYEZpbHRlckZhY3RvcnlgIGluc3RlYWQuIiksdih1KTtjb25zdCBIPXtjYW52YXNGYWN0b3J5Om5ldyBEKHtvd25lckRvY3VtZW50Ok0sZW5hYmxlSFdBOk99KSxmaWx0ZXJGYWN0b3J5Om5ldyBMKHtkb2NJZDppLG93bmVyRG9jdW1lbnQ6TX0pLGNNYXBSZWFkZXJGYWN0b3J5Ono/bnVsbDpuZXcgbSh7YmFzZVVybDpnLGlzQ29tcHJlc3NlZDpmfSksc3RhbmRhcmRGb250RGF0YUZhY3Rvcnk6ej9udWxsOm5ldyB5KHtiYXNlVXJsOmJ9KX07aWYoIWQpe2NvbnN0IHQ9e3ZlcmJvc2l0eTp1LHBvcnQ6bWUud29ya2VyUG9ydH07ZD10LnBvcnQ/Y2kuZnJvbVBvcnQodCk6bmV3IGNpKHQpLGUuX3dvcmtlcj1kfWNvbnN0IGo9e2RvY0lkOmksYXBpVmVyc2lvbjoiNC43Ljc2IixkYXRhOnIscGFzc3dvcmQ6aCxkaXNhYmxlQXV0b0ZldGNoOlIscmFuZ2VDaHVua1NpemU6YyxsZW5ndGg6Tixkb2NCYXNlVXJsOnAsZW5hYmxlWGZhOlQsZXZhbHVhdG9yT3B0aW9uczp7bWF4SW1hZ2VTaXplOncsZGlzYWJsZUZvbnRGYWNlOkMsaWdub3JlRXJyb3JzOkEsaXNFdmFsU3VwcG9ydGVkOngsaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6XyxjYW52YXNNYXhBcmVhSW5CeXRlczpFLGZvbnRFeHRyYVByb3BlcnRpZXM6Uyx1c2VTeXN0ZW1Gb250czpCLGNNYXBVcmw6ej9nOm51bGwsc3RhbmRhcmRGb250RGF0YVVybDp6P2I6bnVsbH19LFU9e2Rpc2FibGVGb250RmFjZTpDLGZvbnRFeHRyYVByb3BlcnRpZXM6Uyxvd25lckRvY3VtZW50Ok0scGRmQnVnOlAsc3R5bGVFbGVtZW50Om51bGwsbG9hZGluZ1BhcmFtczp7ZGlzYWJsZUF1dG9GZXRjaDpSLGVuYWJsZVhmYTpUfX07cmV0dXJuIGQucHJvbWlzZS50aGVuKChmdW5jdGlvbigpe2lmKGUuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiTG9hZGluZyBhYm9ydGVkIik7aWYoZC5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZCIpO2NvbnN0IHQ9ZC5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldERvY1JlcXVlc3QiLGoscj9bci5idWZmZXJdOm51bGwpO2xldCBoO2lmKGwpaD1uZXcgX2UobCx7ZGlzYWJsZVJhbmdlOmssZGlzYWJsZVN0cmVhbTpJfSk7ZWxzZSBpZighcil7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJnZXREb2N1bWVudCAtIG5vIGB1cmxgIHBhcmFtZXRlciBwcm92aWRlZC4iKTtsZXQgdDt0PW4/InVuZGVmaW5lZCIhPXR5cGVvZiBmZXRjaCYmInVuZGVmaW5lZCIhPXR5cGVvZiBSZXNwb25zZSYmImJvZHkiaW4gUmVzcG9uc2UucHJvdG90eXBlJiZodChzKT9EZTpVZTpodChzKT9EZTpOZSxoPW5ldyB0KHt1cmw6cyxsZW5ndGg6TixodHRwSGVhZGVyczphLHdpdGhDcmVkZW50aWFsczpvLHJhbmdlQ2h1bmtTaXplOmMsZGlzYWJsZVJhbmdlOmssZGlzYWJsZVN0cmVhbTpJfSl9cmV0dXJuIHQudGhlbigodD0+e2lmKGUuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiTG9hZGluZyBhYm9ydGVkIik7aWYoZC5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZCIpO2NvbnN0IHM9bmV3IHZlKGksdCxkLnBvcnQpLG49bmV3IGRpKHMsZSxoLFUsSCk7ZS5fdHJhbnNwb3J0PW4scy5zZW5kKCJSZWFkeSIsbnVsbCl9KSl9KSkuY2F0Y2goZS5fY2FwYWJpbGl0eS5yZWplY3QpLGV9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZOdW1iZXIuaXNJbnRlZ2VyKHQ/Lm51bSkmJnQubnVtPj0wJiZOdW1iZXIuaXNJbnRlZ2VyKHQ/LmdlbikmJnQuZ2VuPj0wfWNsYXNzIHJpe3N0YXRpYyNJaT0wO2NvbnN0cnVjdG9yKCl7dGhpcy5fY2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl90cmFuc3BvcnQ9bnVsbCx0aGlzLl93b3JrZXI9bnVsbCx0aGlzLmRvY0lkPSJkIityaS4jSWkrKyx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLm9uUGFzc3dvcmQ9bnVsbCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbH1nZXQgcHJvbWlzZSgpe3JldHVybiB0aGlzLl9jYXBhYmlsaXR5LnByb21pc2V9YXN5bmMgZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwO3RyeXt0aGlzLl93b3JrZXI/LnBvcnQmJih0aGlzLl93b3JrZXIuX3BlbmRpbmdEZXN0cm95PSEwKSxhd2FpdCh0aGlzLl90cmFuc3BvcnQ/LmRlc3Ryb3koKSl9Y2F0Y2godCl7dGhyb3cgdGhpcy5fd29ya2VyPy5wb3J0JiZkZWxldGUgdGhpcy5fd29ya2VyLl9wZW5kaW5nRGVzdHJveSx0fXRoaXMuX3RyYW5zcG9ydD1udWxsLHRoaXMuX3dvcmtlciYmKHRoaXMuX3dvcmtlci5kZXN0cm95KCksdGhpcy5fd29ya2VyPW51bGwpfX1jbGFzcyBhaXtjb25zdHJ1Y3Rvcih0LGUsaT0hMSxzPW51bGwpe3RoaXMubGVuZ3RoPXQsdGhpcy5pbml0aWFsRGF0YT1lLHRoaXMucHJvZ3Jlc3NpdmVEb25lPWksdGhpcy5jb250ZW50RGlzcG9zaXRpb25GaWxlbmFtZT1zLHRoaXMuX3JhbmdlTGlzdGVuZXJzPVtdLHRoaXMuX3Byb2dyZXNzTGlzdGVuZXJzPVtdLHRoaXMuX3Byb2dyZXNzaXZlUmVhZExpc3RlbmVycz1bXSx0aGlzLl9wcm9ncmVzc2l2ZURvbmVMaXN0ZW5lcnM9W10sdGhpcy5fcmVhZHlDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfWFkZFJhbmdlTGlzdGVuZXIodCl7dGhpcy5fcmFuZ2VMaXN0ZW5lcnMucHVzaCh0KX1hZGRQcm9ncmVzc0xpc3RlbmVyKHQpe3RoaXMuX3Byb2dyZXNzTGlzdGVuZXJzLnB1c2godCl9YWRkUHJvZ3Jlc3NpdmVSZWFkTGlzdGVuZXIodCl7dGhpcy5fcHJvZ3Jlc3NpdmVSZWFkTGlzdGVuZXJzLnB1c2godCl9YWRkUHJvZ3Jlc3NpdmVEb25lTGlzdGVuZXIodCl7dGhpcy5fcHJvZ3Jlc3NpdmVEb25lTGlzdGVuZXJzLnB1c2godCl9b25EYXRhUmFuZ2UodCxlKXtmb3IoY29uc3QgaSBvZiB0aGlzLl9yYW5nZUxpc3RlbmVycylpKHQsZSl9b25EYXRhUHJvZ3Jlc3ModCxlKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucHJvbWlzZS50aGVuKCgoKT0+e2Zvcihjb25zdCBpIG9mIHRoaXMuX3Byb2dyZXNzTGlzdGVuZXJzKWkodCxlKX0pKX1vbkRhdGFQcm9ncmVzc2l2ZVJlYWQodCl7dGhpcy5fcmVhZHlDYXBhYmlsaXR5LnByb21pc2UudGhlbigoKCk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLl9wcm9ncmVzc2l2ZVJlYWRMaXN0ZW5lcnMpZSh0KX0pKX1vbkRhdGFQcm9ncmVzc2l2ZURvbmUoKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucHJvbWlzZS50aGVuKCgoKT0+e2Zvcihjb25zdCB0IG9mIHRoaXMuX3Byb2dyZXNzaXZlRG9uZUxpc3RlbmVycyl0KCl9KSl9dHJhbnNwb3J0UmVhZHkoKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVzb2x2ZSgpfXJlcXVlc3REYXRhUmFuZ2UodCxlKXt4KCJBYnN0cmFjdCBtZXRob2QgUERGRGF0YVJhbmdlVHJhbnNwb3J0LnJlcXVlc3REYXRhUmFuZ2UiKX1hYm9ydCgpe319Y2xhc3Mgb2l7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wZGZJbmZvPXQsdGhpcy5fdHJhbnNwb3J0PWV9Z2V0IGFubm90YXRpb25TdG9yYWdlKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5hbm5vdGF0aW9uU3RvcmFnZX1nZXQgY2FudmFzRmFjdG9yeSgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuY2FudmFzRmFjdG9yeX1nZXQgZmlsdGVyRmFjdG9yeSgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZmlsdGVyRmFjdG9yeX1nZXQgbnVtUGFnZXMoKXtyZXR1cm4gdGhpcy5fcGRmSW5mby5udW1QYWdlc31nZXQgZmluZ2VycHJpbnRzKCl7cmV0dXJuIHRoaXMuX3BkZkluZm8uZmluZ2VycHJpbnRzfWdldCBpc1B1cmVYZmEoKXtyZXR1cm4gQyh0aGlzLCJpc1B1cmVYZmEiLCEhdGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhKX1nZXQgYWxsWGZhSHRtbCgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuX2h0bWxGb3JYZmF9Z2V0UGFnZSh0KXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldFBhZ2UodCl9Z2V0UGFnZUluZGV4KHQpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0UGFnZUluZGV4KHQpfWdldERlc3RpbmF0aW9ucygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0RGVzdGluYXRpb25zKCl9Z2V0RGVzdGluYXRpb24odCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXREZXN0aW5hdGlvbih0KX1nZXRQYWdlTGFiZWxzKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRQYWdlTGFiZWxzKCl9Z2V0UGFnZUxheW91dCgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0UGFnZUxheW91dCgpfWdldFBhZ2VNb2RlKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRQYWdlTW9kZSgpfWdldFZpZXdlclByZWZlcmVuY2VzKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRWaWV3ZXJQcmVmZXJlbmNlcygpfWdldE9wZW5BY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldE9wZW5BY3Rpb24oKX1nZXRBdHRhY2htZW50cygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0QXR0YWNobWVudHMoKX1nZXRKU0FjdGlvbnMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldERvY0pTQWN0aW9ucygpfWdldE91dGxpbmUoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldE91dGxpbmUoKX1nZXRPcHRpb25hbENvbnRlbnRDb25maWcoe2ludGVudDp0PSJkaXNwbGF5In09e30pe2NvbnN0e3JlbmRlcmluZ0ludGVudDplfT10aGlzLl90cmFuc3BvcnQuZ2V0UmVuZGVyaW5nSW50ZW50KHQpO3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0T3B0aW9uYWxDb250ZW50Q29uZmlnKGUpfWdldFBlcm1pc3Npb25zKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRQZXJtaXNzaW9ucygpfWdldE1ldGFkYXRhKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRNZXRhZGF0YSgpfWdldE1hcmtJbmZvKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRNYXJrSW5mbygpfWdldERhdGEoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldERhdGEoKX1zYXZlRG9jdW1lbnQoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LnNhdmVEb2N1bWVudCgpfWdldERvd25sb2FkSW5mbygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZG93bmxvYWRJbmZvQ2FwYWJpbGl0eS5wcm9taXNlfWNsZWFudXAodD0hMSl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5zdGFydENsZWFudXAodHx8dGhpcy5pc1B1cmVYZmEpfWRlc3Ryb3koKXtyZXR1cm4gdGhpcy5sb2FkaW5nVGFzay5kZXN0cm95KCl9Y2FjaGVkUGFnZU51bWJlcih0KXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmNhY2hlZFBhZ2VOdW1iZXIodCl9Z2V0IGxvYWRpbmdQYXJhbXMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmxvYWRpbmdQYXJhbXN9Z2V0IGxvYWRpbmdUYXNrKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5sb2FkaW5nVGFza31nZXRGaWVsZE9iamVjdHMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldEZpZWxkT2JqZWN0cygpfWhhc0pTQWN0aW9ucygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuaGFzSlNBY3Rpb25zKCl9Z2V0Q2FsY3VsYXRpb25PcmRlcklkcygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0Q2FsY3VsYXRpb25PcmRlcklkcygpfX1jbGFzcyBoaXsjV2k9bnVsbDsjR2k9ITE7Y29uc3RydWN0b3IodCxlLGkscz0hMSl7dGhpcy5fcGFnZUluZGV4PXQsdGhpcy5fcGFnZUluZm89ZSx0aGlzLl90cmFuc3BvcnQ9aSx0aGlzLl9zdGF0cz1zP25ldyBvdDpudWxsLHRoaXMuX3BkZkJ1Zz1zLHRoaXMuY29tbW9uT2Jqcz1pLmNvbW1vbk9ianMsdGhpcy5vYmpzPW5ldyBwaSx0aGlzLl9tYXliZUNsZWFudXBBZnRlclJlbmRlcj0hMSx0aGlzLl9pbnRlbnRTdGF0ZXM9bmV3IE1hcCx0aGlzLmRlc3Ryb3llZD0hMX1nZXQgcGFnZU51bWJlcigpe3JldHVybiB0aGlzLl9wYWdlSW5kZXgrMX1nZXQgcm90YXRlKCl7cmV0dXJuIHRoaXMuX3BhZ2VJbmZvLnJvdGF0ZX1nZXQgcmVmKCl7cmV0dXJuIHRoaXMuX3BhZ2VJbmZvLnJlZn1nZXQgdXNlclVuaXQoKXtyZXR1cm4gdGhpcy5fcGFnZUluZm8udXNlclVuaXR9Z2V0IHZpZXcoKXtyZXR1cm4gdGhpcy5fcGFnZUluZm8udmlld31nZXRWaWV3cG9ydCh7c2NhbGU6dCxyb3RhdGlvbjplPXRoaXMucm90YXRlLG9mZnNldFg6aT0wLG9mZnNldFk6cz0wLGRvbnRGbGlwOm49ITF9PXt9KXtyZXR1cm4gbmV3IGV0KHt2aWV3Qm94OnRoaXMudmlldyxzY2FsZTp0LHJvdGF0aW9uOmUsb2Zmc2V0WDppLG9mZnNldFk6cyxkb250RmxpcDpufSl9Z2V0QW5ub3RhdGlvbnMoe2ludGVudDp0PSJkaXNwbGF5In09e30pe2NvbnN0e3JlbmRlcmluZ0ludGVudDplfT10aGlzLl90cmFuc3BvcnQuZ2V0UmVuZGVyaW5nSW50ZW50KHQpO3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0QW5ub3RhdGlvbnModGhpcy5fcGFnZUluZGV4LGUpfWdldEpTQWN0aW9ucygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0UGFnZUpTQWN0aW9ucyh0aGlzLl9wYWdlSW5kZXgpfWdldCBmaWx0ZXJGYWN0b3J5KCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5maWx0ZXJGYWN0b3J5fWdldCBpc1B1cmVYZmEoKXtyZXR1cm4gQyh0aGlzLCJpc1B1cmVYZmEiLCEhdGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhKX1hc3luYyBnZXRYZmEoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhPy5jaGlsZHJlblt0aGlzLl9wYWdlSW5kZXhdfHxudWxsfXJlbmRlcih7Y2FudmFzQ29udGV4dDp0LHZpZXdwb3J0OmUsaW50ZW50Omk9ImRpc3BsYXkiLGFubm90YXRpb25Nb2RlOnM9aC5FTkFCTEUsdHJhbnNmb3JtOm49bnVsbCxiYWNrZ3JvdW5kOnI9bnVsbCxvcHRpb25hbENvbnRlbnRDb25maWdQcm9taXNlOmE9bnVsbCxhbm5vdGF0aW9uQ2FudmFzTWFwOm89bnVsbCxwYWdlQ29sb3JzOmw9bnVsbCxwcmludEFubm90YXRpb25TdG9yYWdlOmM9bnVsbCxpc0VkaXRpbmc6ZD0hMX0pe3RoaXMuX3N0YXRzPy50aW1lKCJPdmVyYWxsIik7Y29uc3QgdT10aGlzLl90cmFuc3BvcnQuZ2V0UmVuZGVyaW5nSW50ZW50KGkscyxjLGQpLHtyZW5kZXJpbmdJbnRlbnQ6cCxjYWNoZUtleTpnfT11O3RoaXMuI0dpPSExLHRoaXMuI1ZpKCksYXx8PXRoaXMuX3RyYW5zcG9ydC5nZXRPcHRpb25hbENvbnRlbnRDb25maWcocCk7bGV0IGY9dGhpcy5faW50ZW50U3RhdGVzLmdldChnKTtmfHwoZj1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2ludGVudFN0YXRlcy5zZXQoZyxmKSksZi5zdHJlYW1SZWFkZXJDYW5jZWxUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KGYuc3RyZWFtUmVhZGVyQ2FuY2VsVGltZW91dCksZi5zdHJlYW1SZWFkZXJDYW5jZWxUaW1lb3V0PW51bGwpO2NvbnN0IG09ISEoNCZwKTtmLmRpc3BsYXlSZWFkeUNhcGFiaWxpdHl8fChmLmRpc3BsYXlSZWFkeUNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksZi5vcGVyYXRvckxpc3Q9e2ZuQXJyYXk6W10sYXJnc0FycmF5OltdLGxhc3RDaHVuazohMSxzZXBhcmF0ZUFubm90czpudWxsfSx0aGlzLl9zdGF0cz8udGltZSgiUGFnZSBSZXF1ZXN0IiksdGhpcy5fcHVtcE9wZXJhdG9yTGlzdCh1KSk7Y29uc3QgYj10PT57Zi5yZW5kZXJUYXNrcy5kZWxldGUodiksKHRoaXMuX21heWJlQ2xlYW51cEFmdGVyUmVuZGVyfHxtKSYmKHRoaXMuI0dpPSEwKSx0aGlzLiNxaSghbSksdD8odi5jYXBhYmlsaXR5LnJlamVjdCh0KSx0aGlzLl9hYm9ydE9wZXJhdG9yTGlzdCh7aW50ZW50U3RhdGU6ZixyZWFzb246dCBpbnN0YW5jZW9mIEVycm9yP3Q6bmV3IEVycm9yKHQpfSkpOnYuY2FwYWJpbGl0eS5yZXNvbHZlKCksdGhpcy5fc3RhdHMmJih0aGlzLl9zdGF0cy50aW1lRW5kKCJSZW5kZXJpbmciKSx0aGlzLl9zdGF0cy50aW1lRW5kKCJPdmVyYWxsIiksZ2xvYmFsVGhpcy5TdGF0cz8uZW5hYmxlZCYmZ2xvYmFsVGhpcy5TdGF0cy5hZGQodGhpcy5wYWdlTnVtYmVyLHRoaXMuX3N0YXRzKSl9LHY9bmV3IGZpKHtjYWxsYmFjazpiLHBhcmFtczp7Y2FudmFzQ29udGV4dDp0LHZpZXdwb3J0OmUsdHJhbnNmb3JtOm4sYmFja2dyb3VuZDpyfSxvYmpzOnRoaXMub2Jqcyxjb21tb25PYmpzOnRoaXMuY29tbW9uT2Jqcyxhbm5vdGF0aW9uQ2FudmFzTWFwOm8sb3BlcmF0b3JMaXN0OmYub3BlcmF0b3JMaXN0LHBhZ2VJbmRleDp0aGlzLl9wYWdlSW5kZXgsY2FudmFzRmFjdG9yeTp0aGlzLl90cmFuc3BvcnQuY2FudmFzRmFjdG9yeSxmaWx0ZXJGYWN0b3J5OnRoaXMuX3RyYW5zcG9ydC5maWx0ZXJGYWN0b3J5LHVzZVJlcXVlc3RBbmltYXRpb25GcmFtZTohbSxwZGZCdWc6dGhpcy5fcGRmQnVnLHBhZ2VDb2xvcnM6bH0pOyhmLnJlbmRlclRhc2tzfHw9bmV3IFNldCkuYWRkKHYpO2NvbnN0IHk9di50YXNrO3JldHVybiBQcm9taXNlLmFsbChbZi5kaXNwbGF5UmVhZHlDYXBhYmlsaXR5LnByb21pc2UsYV0pLnRoZW4oKChbdCxlXSk9PntpZih0aGlzLmRlc3Ryb3llZCliKCk7ZWxzZXtpZih0aGlzLl9zdGF0cz8udGltZSgiUmVuZGVyaW5nIiksIShlLnJlbmRlcmluZ0ludGVudCZwKSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgdXNlIHRoZSBzYW1lIGBpbnRlbnRgLWFyZ3VtZW50IHdoZW4gY2FsbGluZyB0aGUgYFBERlBhZ2VQcm94eS5yZW5kZXJgIGFuZCBgUERGRG9jdW1lbnRQcm94eS5nZXRPcHRpb25hbENvbnRlbnRDb25maWdgIG1ldGhvZHMuIik7di5pbml0aWFsaXplR3JhcGhpY3Moe3RyYW5zcGFyZW5jeTp0LG9wdGlvbmFsQ29udGVudENvbmZpZzplfSksdi5vcGVyYXRvckxpc3RDaGFuZ2VkKCl9fSkpLmNhdGNoKGIpLHl9Z2V0T3BlcmF0b3JMaXN0KHtpbnRlbnQ6dD0iZGlzcGxheSIsYW5ub3RhdGlvbk1vZGU6ZT1oLkVOQUJMRSxwcmludEFubm90YXRpb25TdG9yYWdlOmk9bnVsbCxpc0VkaXRpbmc6cz0hMX09e30pe2NvbnN0IG49dGhpcy5fdHJhbnNwb3J0LmdldFJlbmRlcmluZ0ludGVudCh0LGUsaSxzLCEwKTtsZXQgcixhPXRoaXMuX2ludGVudFN0YXRlcy5nZXQobi5jYWNoZUtleSk7cmV0dXJuIGF8fChhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5faW50ZW50U3RhdGVzLnNldChuLmNhY2hlS2V5LGEpKSxhLm9wTGlzdFJlYWRDYXBhYmlsaXR5fHwocj1PYmplY3QuY3JlYXRlKG51bGwpLHIub3BlcmF0b3JMaXN0Q2hhbmdlZD1mdW5jdGlvbigpe2Eub3BlcmF0b3JMaXN0Lmxhc3RDaHVuayYmKGEub3BMaXN0UmVhZENhcGFiaWxpdHkucmVzb2x2ZShhLm9wZXJhdG9yTGlzdCksYS5yZW5kZXJUYXNrcy5kZWxldGUocikpfSxhLm9wTGlzdFJlYWRDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLChhLnJlbmRlclRhc2tzfHw9bmV3IFNldCkuYWRkKHIpLGEub3BlcmF0b3JMaXN0PXtmbkFycmF5OltdLGFyZ3NBcnJheTpbXSxsYXN0Q2h1bms6ITEsc2VwYXJhdGVBbm5vdHM6bnVsbH0sdGhpcy5fc3RhdHM/LnRpbWUoIlBhZ2UgUmVxdWVzdCIpLHRoaXMuX3B1bXBPcGVyYXRvckxpc3QobikpLGEub3BMaXN0UmVhZENhcGFiaWxpdHkucHJvbWlzZX1zdHJlYW1UZXh0Q29udGVudCh7aW5jbHVkZU1hcmtlZENvbnRlbnQ6dD0hMSxkaXNhYmxlTm9ybWFsaXphdGlvbjplPSExfT17fSl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0VGV4dENvbnRlbnQiLHtwYWdlSW5kZXg6dGhpcy5fcGFnZUluZGV4LGluY2x1ZGVNYXJrZWRDb250ZW50OiEwPT09dCxkaXNhYmxlTm9ybWFsaXphdGlvbjohMD09PWV9LHtoaWdoV2F0ZXJNYXJrOjEwMCxzaXplOnQ9PnQuaXRlbXMubGVuZ3RofSl9Z2V0VGV4dENvbnRlbnQodD17fSl7aWYodGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhKXJldHVybiB0aGlzLmdldFhmYSgpLnRoZW4oKHQ9PlFlLnRleHRDb250ZW50KHQpKSk7Y29uc3QgZT10aGlzLnN0cmVhbVRleHRDb250ZW50KHQpO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxpKXtjb25zdCBzPWUuZ2V0UmVhZGVyKCksbj17aXRlbXM6W10sc3R5bGVzOk9iamVjdC5jcmVhdGUobnVsbCksbGFuZzpudWxsfTshZnVuY3Rpb24gZSgpe3MucmVhZCgpLnRoZW4oKGZ1bmN0aW9uKHt2YWx1ZTppLGRvbmU6c30pe3M/dChuKToobi5sYW5nPz89aS5sYW5nLE9iamVjdC5hc3NpZ24obi5zdHlsZXMsaS5zdHlsZXMpLG4uaXRlbXMucHVzaCguLi5pLml0ZW1zKSxlKCkpfSksaSl9KCl9KSl9Z2V0U3RydWN0VHJlZSgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0U3RydWN0VHJlZSh0aGlzLl9wYWdlSW5kZXgpfV9kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITA7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLl9pbnRlbnRTdGF0ZXMudmFsdWVzKCkpaWYodGhpcy5fYWJvcnRPcGVyYXRvckxpc3Qoe2ludGVudFN0YXRlOmUscmVhc29uOm5ldyBFcnJvcigiUGFnZSB3YXMgZGVzdHJveWVkLiIpLGZvcmNlOiEwfSksIWUub3BMaXN0UmVhZENhcGFiaWxpdHkpZm9yKGNvbnN0IGkgb2YgZS5yZW5kZXJUYXNrcyl0LnB1c2goaS5jb21wbGV0ZWQpLGkuY2FuY2VsKCk7cmV0dXJuIHRoaXMub2Jqcy5jbGVhcigpLHRoaXMuI0dpPSExLHRoaXMuI1ZpKCksUHJvbWlzZS5hbGwodCl9Y2xlYW51cCh0PSExKXt0aGlzLiNHaT0hMDtjb25zdCBlPXRoaXMuI3FpKCExKTtyZXR1cm4gdCYmZSYmKHRoaXMuX3N0YXRzJiY9bmV3IG90KSxlfSNxaSh0PSExKXtpZih0aGlzLiNWaSgpLCF0aGlzLiNHaXx8dGhpcy5kZXN0cm95ZWQpcmV0dXJuITE7aWYodClyZXR1cm4gdGhpcy4jV2k9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiNXaT1udWxsLHRoaXMuI3FpKCExKX0pLDVlMyksITE7Zm9yKGNvbnN0e3JlbmRlclRhc2tzOnQsb3BlcmF0b3JMaXN0OmV9b2YgdGhpcy5faW50ZW50U3RhdGVzLnZhbHVlcygpKWlmKHQuc2l6ZT4wfHwhZS5sYXN0Q2h1bmspcmV0dXJuITE7cmV0dXJuIHRoaXMuX2ludGVudFN0YXRlcy5jbGVhcigpLHRoaXMub2Jqcy5jbGVhcigpLHRoaXMuI0dpPSExLCEwfSNWaSgpe3RoaXMuI1dpJiYoY2xlYXJUaW1lb3V0KHRoaXMuI1dpKSx0aGlzLiNXaT1udWxsKX1fc3RhcnRSZW5kZXJQYWdlKHQsZSl7Y29uc3QgaT10aGlzLl9pbnRlbnRTdGF0ZXMuZ2V0KGUpO2kmJih0aGlzLl9zdGF0cz8udGltZUVuZCgiUGFnZSBSZXF1ZXN0IiksaS5kaXNwbGF5UmVhZHlDYXBhYmlsaXR5Py5yZXNvbHZlKHQpKX1fcmVuZGVyUGFnZUNodW5rKHQsZSl7Zm9yKGxldCBpPTAscz10Lmxlbmd0aDtpPHM7aSsrKWUub3BlcmF0b3JMaXN0LmZuQXJyYXkucHVzaCh0LmZuQXJyYXlbaV0pLGUub3BlcmF0b3JMaXN0LmFyZ3NBcnJheS5wdXNoKHQuYXJnc0FycmF5W2ldKTtlLm9wZXJhdG9yTGlzdC5sYXN0Q2h1bms9dC5sYXN0Q2h1bmssZS5vcGVyYXRvckxpc3Quc2VwYXJhdGVBbm5vdHM9dC5zZXBhcmF0ZUFubm90cztmb3IoY29uc3QgdCBvZiBlLnJlbmRlclRhc2tzKXQub3BlcmF0b3JMaXN0Q2hhbmdlZCgpO3QubGFzdENodW5rJiZ0aGlzLiNxaSghMCl9X3B1bXBPcGVyYXRvckxpc3Qoe3JlbmRlcmluZ0ludGVudDp0LGNhY2hlS2V5OmUsYW5ub3RhdGlvblN0b3JhZ2VTZXJpYWxpemFibGU6aSxtb2RpZmllZElkczpzfSl7Y29uc3R7bWFwOm4sdHJhbnNmZXI6cn09aSxhPXRoaXMuX3RyYW5zcG9ydC5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0T3BlcmF0b3JMaXN0Iix7cGFnZUluZGV4OnRoaXMuX3BhZ2VJbmRleCxpbnRlbnQ6dCxjYWNoZUtleTplLGFubm90YXRpb25TdG9yYWdlOm4sbW9kaWZpZWRJZHM6c30scikuZ2V0UmVhZGVyKCksbz10aGlzLl9pbnRlbnRTdGF0ZXMuZ2V0KGUpO28uc3RyZWFtUmVhZGVyPWE7Y29uc3QgaD0oKT0+e2EucmVhZCgpLnRoZW4oKCh7dmFsdWU6dCxkb25lOmV9KT0+e2U/by5zdHJlYW1SZWFkZXI9bnVsbDp0aGlzLl90cmFuc3BvcnQuZGVzdHJveWVkfHwodGhpcy5fcmVuZGVyUGFnZUNodW5rKHQsbyksaCgpKX0pLCh0PT57aWYoby5zdHJlYW1SZWFkZXI9bnVsbCwhdGhpcy5fdHJhbnNwb3J0LmRlc3Ryb3llZCl7aWYoby5vcGVyYXRvckxpc3Qpe28ub3BlcmF0b3JMaXN0Lmxhc3RDaHVuaz0hMDtmb3IoY29uc3QgdCBvZiBvLnJlbmRlclRhc2tzKXQub3BlcmF0b3JMaXN0Q2hhbmdlZCgpO3RoaXMuI3FpKCEwKX1pZihvLmRpc3BsYXlSZWFkeUNhcGFiaWxpdHkpby5kaXNwbGF5UmVhZHlDYXBhYmlsaXR5LnJlamVjdCh0KTtlbHNle2lmKCFvLm9wTGlzdFJlYWRDYXBhYmlsaXR5KXRocm93IHQ7by5vcExpc3RSZWFkQ2FwYWJpbGl0eS5yZWplY3QodCl9fX0pKX07aCgpfV9hYm9ydE9wZXJhdG9yTGlzdCh7aW50ZW50U3RhdGU6dCxyZWFzb246ZSxmb3JjZTppPSExfSl7aWYodC5zdHJlYW1SZWFkZXIpe2lmKHQuc3RyZWFtUmVhZGVyQ2FuY2VsVGltZW91dCYmKGNsZWFyVGltZW91dCh0LnN0cmVhbVJlYWRlckNhbmNlbFRpbWVvdXQpLHQuc3RyZWFtUmVhZGVyQ2FuY2VsVGltZW91dD1udWxsKSwhaSl7aWYodC5yZW5kZXJUYXNrcy5zaXplPjApcmV0dXJuO2lmKGUgaW5zdGFuY2VvZiBpdCl7bGV0IGk9MTAwO3JldHVybiBlLmV4dHJhRGVsYXk+MCYmZS5leHRyYURlbGF5PDFlMyYmKGkrPWUuZXh0cmFEZWxheSksdm9pZCh0LnN0cmVhbVJlYWRlckNhbmNlbFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0LnN0cmVhbVJlYWRlckNhbmNlbFRpbWVvdXQ9bnVsbCx0aGlzLl9hYm9ydE9wZXJhdG9yTGlzdCh7aW50ZW50U3RhdGU6dCxyZWFzb246ZSxmb3JjZTohMH0pfSksaSkpfX1pZih0LnN0cmVhbVJlYWRlci5jYW5jZWwobmV3IEQoZS5tZXNzYWdlKSkuY2F0Y2goKCgpPT57fSkpLHQuc3RyZWFtUmVhZGVyPW51bGwsIXRoaXMuX3RyYW5zcG9ydC5kZXN0cm95ZWQpe2Zvcihjb25zdFtlLGldb2YgdGhpcy5faW50ZW50U3RhdGVzKWlmKGk9PT10KXt0aGlzLl9pbnRlbnRTdGF0ZXMuZGVsZXRlKGUpO2JyZWFrfXRoaXMuY2xlYW51cCgpfX19Z2V0IHN0YXRzKCl7cmV0dXJuIHRoaXMuX3N0YXRzfX1jbGFzcyBsaXsjWGk9bmV3IFNldDsjS2k9UHJvbWlzZS5yZXNvbHZlKCk7cG9zdE1lc3NhZ2UodCxlKXtjb25zdCBpPXtkYXRhOnN0cnVjdHVyZWRDbG9uZSh0LGU/e3RyYW5zZmVyOmV9Om51bGwpfTt0aGlzLiNLaS50aGVuKCgoKT0+e2Zvcihjb25zdCB0IG9mIHRoaXMuI1hpKXQuY2FsbCh0aGlzLGkpfSkpfWFkZEV2ZW50TGlzdGVuZXIodCxlKXt0aGlzLiNYaS5hZGQoZSl9cmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUpe3RoaXMuI1hpLmRlbGV0ZShlKX10ZXJtaW5hdGUoKXt0aGlzLiNYaS5jbGVhcigpfX1jbGFzcyBjaXtzdGF0aWMjWWk9MDtzdGF0aWMjUWk9ITE7c3RhdGljI0ppO3N0YXRpY3tuJiYodGhpcy4jUWk9ITAsbWUud29ya2VyU3JjfHw9Ii4vcGRmLndvcmtlci5tanMiKSx0aGlzLl9pc1NhbWVPcmlnaW49KHQsZSk9PntsZXQgaTt0cnl7aWYoaT1uZXcgVVJMKHQpLCFpLm9yaWdpbnx8Im51bGwiPT09aS5vcmlnaW4pcmV0dXJuITF9Y2F0Y2h7cmV0dXJuITF9Y29uc3Qgcz1uZXcgVVJMKGUsaSk7cmV0dXJuIGkub3JpZ2luPT09cy5vcmlnaW59LHRoaXMuX2NyZWF0ZUNETldyYXBwZXI9dD0+e2NvbnN0IGU9YGF3YWl0IGltcG9ydCgiJHt0fSIpO2A7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2VdLHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQifSkpfX1jb25zdHJ1Y3Rvcih7bmFtZTp0PW51bGwscG9ydDplPW51bGwsdmVyYm9zaXR5Omk9eSgpfT17fSl7aWYodGhpcy5uYW1lPXQsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy52ZXJib3NpdHk9aSx0aGlzLl9yZWFkeUNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy5fcG9ydD1udWxsLHRoaXMuX3dlYldvcmtlcj1udWxsLHRoaXMuX21lc3NhZ2VIYW5kbGVyPW51bGwsZSl7aWYoY2kuI0ppPy5oYXMoZSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgUERGV29ya2VyIHBlciBwb3J0LiIpO3JldHVybihjaS4jSml8fD1uZXcgV2Vha01hcCkuc2V0KGUsdGhpcyksdm9pZCB0aGlzLl9pbml0aWFsaXplRnJvbVBvcnQoZSl9dGhpcy5faW5pdGlhbGl6ZSgpfWdldCBwcm9taXNlKCl7cmV0dXJuIG4/UHJvbWlzZS5hbGwoW1V0LnByb21pc2UsdGhpcy5fcmVhZHlDYXBhYmlsaXR5LnByb21pc2VdKTp0aGlzLl9yZWFkeUNhcGFiaWxpdHkucHJvbWlzZX0jWmkoKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVzb2x2ZSgpLHRoaXMuX21lc3NhZ2VIYW5kbGVyLnNlbmQoImNvbmZpZ3VyZSIse3ZlcmJvc2l0eTp0aGlzLnZlcmJvc2l0eX0pfWdldCBwb3J0KCl7cmV0dXJuIHRoaXMuX3BvcnR9Z2V0IG1lc3NhZ2VIYW5kbGVyKCl7cmV0dXJuIHRoaXMuX21lc3NhZ2VIYW5kbGVyfV9pbml0aWFsaXplRnJvbVBvcnQodCl7dGhpcy5fcG9ydD10LHRoaXMuX21lc3NhZ2VIYW5kbGVyPW5ldyB2ZSgibWFpbiIsIndvcmtlciIsdCksdGhpcy5fbWVzc2FnZUhhbmRsZXIub24oInJlYWR5IiwoZnVuY3Rpb24oKXt9KSksdGhpcy4jWmkoKX1faW5pdGlhbGl6ZSgpe2lmKGNpLiNRaXx8Y2kuI3RzKXJldHVybiB2b2lkIHRoaXMuX3NldHVwRmFrZVdvcmtlcigpO2xldHt3b3JrZXJTcmM6dH09Y2k7dHJ5e2NpLl9pc1NhbWVPcmlnaW4od2luZG93LmxvY2F0aW9uLmhyZWYsdCl8fCh0PWNpLl9jcmVhdGVDRE5XcmFwcGVyKG5ldyBVUkwodCx3aW5kb3cubG9jYXRpb24pLmhyZWYpKTtjb25zdCBlPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pLGk9bmV3IHZlKCJtYWluIiwid29ya2VyIixlKSxzPSgpPT57bi5hYm9ydCgpLGkuZGVzdHJveSgpLGUudGVybWluYXRlKCksdGhpcy5kZXN0cm95ZWQ/dGhpcy5fcmVhZHlDYXBhYmlsaXR5LnJlamVjdChuZXcgRXJyb3IoIldvcmtlciB3YXMgZGVzdHJveWVkIikpOnRoaXMuX3NldHVwRmFrZVdvcmtlcigpfSxuPW5ldyBBYm9ydENvbnRyb2xsZXI7ZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCgpPT57dGhpcy5fd2ViV29ya2VyfHxzKCl9KSx7c2lnbmFsOm4uc2lnbmFsfSksaS5vbigidGVzdCIsKHQ9PntuLmFib3J0KCksIXRoaXMuZGVzdHJveWVkJiZ0Pyh0aGlzLl9tZXNzYWdlSGFuZGxlcj1pLHRoaXMuX3BvcnQ9ZSx0aGlzLl93ZWJXb3JrZXI9ZSx0aGlzLiNaaSgpKTpzKCl9KSksaS5vbigicmVhZHkiLCh0PT57aWYobi5hYm9ydCgpLHRoaXMuZGVzdHJveWVkKXMoKTtlbHNlIHRyeXtyKCl9Y2F0Y2h7dGhpcy5fc2V0dXBGYWtlV29ya2VyKCl9fSkpO2NvbnN0IHI9KCk9Pntjb25zdCB0PW5ldyBVaW50OEFycmF5O2kuc2VuZCgidGVzdCIsdCxbdC5idWZmZXJdKX07cmV0dXJuIHZvaWQgcigpfWNhdGNoe0EoIlRoZSB3b3JrZXIgaGFzIGJlZW4gZGlzYWJsZWQuIil9dGhpcy5fc2V0dXBGYWtlV29ya2VyKCl9X3NldHVwRmFrZVdvcmtlcigpe2NpLiNRaXx8KHcoIlNldHRpbmcgdXAgZmFrZSB3b3JrZXIuIiksY2kuI1FpPSEwKSxjaS5fc2V0dXBGYWtlV29ya2VyR2xvYmFsLnRoZW4oKHQ9PntpZih0aGlzLmRlc3Ryb3llZClyZXR1cm4gdm9pZCB0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVqZWN0KG5ldyBFcnJvcigiV29ya2VyIHdhcyBkZXN0cm95ZWQiKSk7Y29uc3QgZT1uZXcgbGk7dGhpcy5fcG9ydD1lO2NvbnN0IGk9ImZha2UiK2NpLiNZaSsrLHM9bmV3IHZlKGkrIl93b3JrZXIiLGksZSk7dC5zZXR1cChzLGUpLHRoaXMuX21lc3NhZ2VIYW5kbGVyPW5ldyB2ZShpLGkrIl93b3JrZXIiLGUpLHRoaXMuI1ppKCl9KSkuY2F0Y2goKHQ9Pnt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVqZWN0KG5ldyBFcnJvcihgU2V0dGluZyB1cCBmYWtlIHdvcmtlciBmYWlsZWQ6ICIke3QubWVzc2FnZX0iLmApKX0pKX1kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITAsdGhpcy5fd2ViV29ya2VyJiYodGhpcy5fd2ViV29ya2VyLnRlcm1pbmF0ZSgpLHRoaXMuX3dlYldvcmtlcj1udWxsKSxjaS4jSmk/LmRlbGV0ZSh0aGlzLl9wb3J0KSx0aGlzLl9wb3J0PW51bGwsdGhpcy5fbWVzc2FnZUhhbmRsZXImJih0aGlzLl9tZXNzYWdlSGFuZGxlci5kZXN0cm95KCksdGhpcy5fbWVzc2FnZUhhbmRsZXI9bnVsbCl9c3RhdGljIGZyb21Qb3J0KHQpe2lmKCF0Py5wb3J0KXRocm93IG5ldyBFcnJvcigiUERGV29ya2VyLmZyb21Qb3J0IC0gaW52YWxpZCBtZXRob2Qgc2lnbmF0dXJlLiIpO2NvbnN0IGU9dGhpcy4jSmk/LmdldCh0LnBvcnQpO2lmKGUpe2lmKGUuX3BlbmRpbmdEZXN0cm95KXRocm93IG5ldyBFcnJvcigiUERGV29ya2VyLmZyb21Qb3J0IC0gdGhlIHdvcmtlciBpcyBiZWluZyBkZXN0cm95ZWQuXG5QbGVhc2UgcmVtZW1iZXIgdG8gYXdhaXQgYFBERkRvY3VtZW50TG9hZGluZ1Rhc2suZGVzdHJveSgpYC1jYWxscy4iKTtyZXR1cm4gZX1yZXR1cm4gbmV3IGNpKHQpfXN0YXRpYyBnZXQgd29ya2VyU3JjKCl7aWYobWUud29ya2VyU3JjKXJldHVybiBtZS53b3JrZXJTcmM7dGhyb3cgbmV3IEVycm9yKCdObyAiR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmMiIHNwZWNpZmllZC4nKX1zdGF0aWMgZ2V0I3RzKCl7dHJ5e3JldHVybiBnbG9iYWxUaGlzLnBkZmpzV29ya2VyPy5Xb3JrZXJNZXNzYWdlSGFuZGxlcnx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19c3RhdGljIGdldCBfc2V0dXBGYWtlV29ya2VyR2xvYmFsKCl7cmV0dXJuIEModGhpcywiX3NldHVwRmFrZVdvcmtlckdsb2JhbCIsKGFzeW5jKCk9PnRoaXMuI3RzP3RoaXMuI3RzOihhd2FpdCBpbXBvcnQodGhpcy53b3JrZXJTcmMpKS5Xb3JrZXJNZXNzYWdlSGFuZGxlcikoKSl9fWNsYXNzIGRpeyNlcz1uZXcgTWFwOyNpcz1uZXcgTWFwOyNzcz1uZXcgTWFwOyNucz1uZXcgTWFwOyNycz1udWxsO2NvbnN0cnVjdG9yKHQsZSxpLHMsbil7dGhpcy5tZXNzYWdlSGFuZGxlcj10LHRoaXMubG9hZGluZ1Rhc2s9ZSx0aGlzLmNvbW1vbk9ianM9bmV3IHBpLHRoaXMuZm9udExvYWRlcj1uZXcgQnQoe293bmVyRG9jdW1lbnQ6cy5vd25lckRvY3VtZW50LHN0eWxlRWxlbWVudDpzLnN0eWxlRWxlbWVudH0pLHRoaXMubG9hZGluZ1BhcmFtcz1zLmxvYWRpbmdQYXJhbXMsdGhpcy5fcGFyYW1zPXMsdGhpcy5jYW52YXNGYWN0b3J5PW4uY2FudmFzRmFjdG9yeSx0aGlzLmZpbHRlckZhY3Rvcnk9bi5maWx0ZXJGYWN0b3J5LHRoaXMuY01hcFJlYWRlckZhY3Rvcnk9bi5jTWFwUmVhZGVyRmFjdG9yeSx0aGlzLnN0YW5kYXJkRm9udERhdGFGYWN0b3J5PW4uc3RhbmRhcmRGb250RGF0YUZhY3RvcnksdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZXN0cm95Q2FwYWJpbGl0eT1udWxsLHRoaXMuX25ldHdvcmtTdHJlYW09aSx0aGlzLl9mdWxsUmVhZGVyPW51bGwsdGhpcy5fbGFzdFByb2dyZXNzPW51bGwsdGhpcy5kb3dubG9hZEluZm9DYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMuc2V0dXBNZXNzYWdlSGFuZGxlcigpfSNhcyh0LGU9bnVsbCl7Y29uc3QgaT10aGlzLiNlcy5nZXQodCk7aWYoaSlyZXR1cm4gaTtjb25zdCBzPXRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKHQsZSk7cmV0dXJuIHRoaXMuI2VzLnNldCh0LHMpLHN9Z2V0IGFubm90YXRpb25TdG9yYWdlKCl7cmV0dXJuIEModGhpcywiYW5ub3RhdGlvblN0b3JhZ2UiLG5ldyBPdCl9Z2V0UmVuZGVyaW5nSW50ZW50KHQsZT1oLkVOQUJMRSxpPW51bGwscz0hMSxuPSExKXtsZXQgcj0yLGE9RnQ7c3dpdGNoKHQpe2Nhc2UiYW55IjpyPTE7YnJlYWs7Y2FzZSJkaXNwbGF5IjpicmVhaztjYXNlInByaW50IjpyPTQ7YnJlYWs7ZGVmYXVsdDp3KGBnZXRSZW5kZXJpbmdJbnRlbnQgLSBpbnZhbGlkIGludGVudDogJHt0fWApfWNvbnN0IG89NCZyJiZpIGluc3RhbmNlb2YgTnQ/aTp0aGlzLmFubm90YXRpb25TdG9yYWdlO3N3aXRjaChlKXtjYXNlIGguRElTQUJMRTpyKz02NDticmVhaztjYXNlIGguRU5BQkxFOmJyZWFrO2Nhc2UgaC5FTkFCTEVfRk9STVM6cis9MTY7YnJlYWs7Y2FzZSBoLkVOQUJMRV9TVE9SQUdFOnIrPTMyLGE9by5zZXJpYWxpemFibGU7YnJlYWs7ZGVmYXVsdDp3KGBnZXRSZW5kZXJpbmdJbnRlbnQgLSBpbnZhbGlkIGFubm90YXRpb25Nb2RlOiAke2V9YCl9cyYmKHIrPTEyOCksbiYmKHIrPTI1Nik7Y29uc3R7aWRzOmwsaGFzaDpjfT1vLm1vZGlmaWVkSWRzO3JldHVybntyZW5kZXJpbmdJbnRlbnQ6cixjYWNoZUtleTpbcixhLmhhc2gsY10uam9pbigiXyIpLGFubm90YXRpb25TdG9yYWdlU2VyaWFsaXphYmxlOmEsbW9kaWZpZWRJZHM6bH19ZGVzdHJveSgpe2lmKHRoaXMuZGVzdHJveUNhcGFiaWxpdHkpcmV0dXJuIHRoaXMuZGVzdHJveUNhcGFiaWxpdHkucHJvbWlzZTt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLmRlc3Ryb3lDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMuI3JzPy5yZWplY3QobmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZCBkdXJpbmcgb25QYXNzd29yZCBjYWxsYmFjayIpKTtjb25zdCB0PVtdO2Zvcihjb25zdCBlIG9mIHRoaXMuI2lzLnZhbHVlcygpKXQucHVzaChlLl9kZXN0cm95KCkpO3RoaXMuI2lzLmNsZWFyKCksdGhpcy4jc3MuY2xlYXIoKSx0aGlzLiNucy5jbGVhcigpLHRoaXMuaGFzT3duUHJvcGVydHkoImFubm90YXRpb25TdG9yYWdlIikmJnRoaXMuYW5ub3RhdGlvblN0b3JhZ2UucmVzZXRNb2RpZmllZCgpO2NvbnN0IGU9dGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIlRlcm1pbmF0ZSIsbnVsbCk7cmV0dXJuIHQucHVzaChlKSxQcm9taXNlLmFsbCh0KS50aGVuKCgoKT0+e3RoaXMuY29tbW9uT2Jqcy5jbGVhcigpLHRoaXMuZm9udExvYWRlci5jbGVhcigpLHRoaXMuI2VzLmNsZWFyKCksdGhpcy5maWx0ZXJGYWN0b3J5LmRlc3Ryb3koKSxZZS5jbGVhbnVwKCksdGhpcy5fbmV0d29ya1N0cmVhbT8uY2FuY2VsQWxsUmVxdWVzdHMobmV3IEQoIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSksdGhpcy5tZXNzYWdlSGFuZGxlciYmKHRoaXMubWVzc2FnZUhhbmRsZXIuZGVzdHJveSgpLHRoaXMubWVzc2FnZUhhbmRsZXI9bnVsbCksdGhpcy5kZXN0cm95Q2FwYWJpbGl0eS5yZXNvbHZlKCl9KSx0aGlzLmRlc3Ryb3lDYXBhYmlsaXR5LnJlamVjdCksdGhpcy5kZXN0cm95Q2FwYWJpbGl0eS5wcm9taXNlfXNldHVwTWVzc2FnZUhhbmRsZXIoKXtjb25zdHttZXNzYWdlSGFuZGxlcjp0LGxvYWRpbmdUYXNrOmV9PXRoaXM7dC5vbigiR2V0UmVhZGVyIiwoKHQsZSk9PntfKHRoaXMuX25ldHdvcmtTdHJlYW0sIkdldFJlYWRlciAtIG5vIGBJUERGU3RyZWFtYCBpbnN0YW5jZSBhdmFpbGFibGUuIiksdGhpcy5fZnVsbFJlYWRlcj10aGlzLl9uZXR3b3JrU3RyZWFtLmdldEZ1bGxSZWFkZXIoKSx0aGlzLl9mdWxsUmVhZGVyLm9uUHJvZ3Jlc3M9dD0+e3RoaXMuX2xhc3RQcm9ncmVzcz17bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQudG90YWx9fSxlLm9uUHVsbD0oKT0+e3RoaXMuX2Z1bGxSZWFkZXIucmVhZCgpLnRoZW4oKGZ1bmN0aW9uKHt2YWx1ZTp0LGRvbmU6aX0pe2k/ZS5jbG9zZSgpOihfKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciwiR2V0UmVhZGVyIC0gZXhwZWN0ZWQgYW4gQXJyYXlCdWZmZXIuIiksZS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHQpLDEsW3RdKSl9KSkuY2F0Y2goKHQ9PntlLmVycm9yKHQpfSkpfSxlLm9uQ2FuY2VsPXQ9Pnt0aGlzLl9mdWxsUmVhZGVyLmNhbmNlbCh0KSxlLnJlYWR5LmNhdGNoKCh0PT57aWYoIXRoaXMuZGVzdHJveWVkKXRocm93IHR9KSl9fSkpLHQub24oIlJlYWRlckhlYWRlcnNSZWFkeSIsKHQ9Pntjb25zdCBpPVByb21pc2Uud2l0aFJlc29sdmVycygpLHM9dGhpcy5fZnVsbFJlYWRlcjtyZXR1cm4gcy5oZWFkZXJzUmVhZHkudGhlbigoKCk9PntzLmlzU3RyZWFtaW5nU3VwcG9ydGVkJiZzLmlzUmFuZ2VTdXBwb3J0ZWR8fCh0aGlzLl9sYXN0UHJvZ3Jlc3MmJmUub25Qcm9ncmVzcz8uKHRoaXMuX2xhc3RQcm9ncmVzcykscy5vblByb2dyZXNzPXQ9PntlLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQudG90YWx9KX0pLGkucmVzb2x2ZSh7aXNTdHJlYW1pbmdTdXBwb3J0ZWQ6cy5pc1N0cmVhbWluZ1N1cHBvcnRlZCxpc1JhbmdlU3VwcG9ydGVkOnMuaXNSYW5nZVN1cHBvcnRlZCxjb250ZW50TGVuZ3RoOnMuY29udGVudExlbmd0aH0pfSksaS5yZWplY3QpLGkucHJvbWlzZX0pKSx0Lm9uKCJHZXRSYW5nZVJlYWRlciIsKCh0LGUpPT57Xyh0aGlzLl9uZXR3b3JrU3RyZWFtLCJHZXRSYW5nZVJlYWRlciAtIG5vIGBJUERGU3RyZWFtYCBpbnN0YW5jZSBhdmFpbGFibGUuIik7Y29uc3QgaT10aGlzLl9uZXR3b3JrU3RyZWFtLmdldFJhbmdlUmVhZGVyKHQuYmVnaW4sdC5lbmQpO2k/KGUub25QdWxsPSgpPT57aS5yZWFkKCkudGhlbigoZnVuY3Rpb24oe3ZhbHVlOnQsZG9uZTppfSl7aT9lLmNsb3NlKCk6KF8odCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyLCJHZXRSYW5nZVJlYWRlciAtIGV4cGVjdGVkIGFuIEFycmF5QnVmZmVyLiIpLGUuZW5xdWV1ZShuZXcgVWludDhBcnJheSh0KSwxLFt0XSkpfSkpLmNhdGNoKCh0PT57ZS5lcnJvcih0KX0pKX0sZS5vbkNhbmNlbD10PT57aS5jYW5jZWwodCksZS5yZWFkeS5jYXRjaCgodD0+e2lmKCF0aGlzLmRlc3Ryb3llZCl0aHJvdyB0fSkpfSk6ZS5jbG9zZSgpfSkpLHQub24oIkdldERvYyIsKCh7cGRmSW5mbzp0fSk9Pnt0aGlzLl9udW1QYWdlcz10Lm51bVBhZ2VzLHRoaXMuX2h0bWxGb3JYZmE9dC5odG1sRm9yWGZhLGRlbGV0ZSB0Lmh0bWxGb3JYZmEsZS5fY2FwYWJpbGl0eS5yZXNvbHZlKG5ldyBvaSh0LHRoaXMpKX0pKSx0Lm9uKCJEb2NFeGNlcHRpb24iLChmdW5jdGlvbih0KXtsZXQgaTtzd2l0Y2godC5uYW1lKXtjYXNlIlBhc3N3b3JkRXhjZXB0aW9uIjppPW5ldyBUKHQubWVzc2FnZSx0LmNvZGUpO2JyZWFrO2Nhc2UiSW52YWxpZFBERkV4Y2VwdGlvbiI6aT1uZXcgayh0Lm1lc3NhZ2UpO2JyZWFrO2Nhc2UiTWlzc2luZ1BERkV4Y2VwdGlvbiI6aT1uZXcgSSh0Lm1lc3NhZ2UpO2JyZWFrO2Nhc2UiVW5leHBlY3RlZFJlc3BvbnNlRXhjZXB0aW9uIjppPW5ldyBSKHQubWVzc2FnZSx0LnN0YXR1cyk7YnJlYWs7Y2FzZSJVbmtub3duRXJyb3JFeGNlcHRpb24iOmk9bmV3IE0odC5tZXNzYWdlLHQuZGV0YWlscyk7YnJlYWs7ZGVmYXVsdDp4KCJEb2NFeGNlcHRpb24gLSBleHBlY3RlZCBhIHZhbGlkIEVycm9yLiIpfWUuX2NhcGFiaWxpdHkucmVqZWN0KGkpfSkpLHQub24oIlBhc3N3b3JkUmVxdWVzdCIsKHQ9PntpZih0aGlzLiNycz1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSxlLm9uUGFzc3dvcmQpe2NvbnN0IGk9dD0+e3QgaW5zdGFuY2VvZiBFcnJvcj90aGlzLiNycy5yZWplY3QodCk6dGhpcy4jcnMucmVzb2x2ZSh7cGFzc3dvcmQ6dH0pfTt0cnl7ZS5vblBhc3N3b3JkKGksdC5jb2RlKX1jYXRjaCh0KXt0aGlzLiNycy5yZWplY3QodCl9fWVsc2UgdGhpcy4jcnMucmVqZWN0KG5ldyBUKHQubWVzc2FnZSx0LmNvZGUpKTtyZXR1cm4gdGhpcy4jcnMucHJvbWlzZX0pKSx0Lm9uKCJEYXRhTG9hZGVkIiwodD0+e2Uub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dC5sZW5ndGgsdG90YWw6dC5sZW5ndGh9KSx0aGlzLmRvd25sb2FkSW5mb0NhcGFiaWxpdHkucmVzb2x2ZSh0KX0pKSx0Lm9uKCJTdGFydFJlbmRlclBhZ2UiLCh0PT57dGhpcy5kZXN0cm95ZWR8fHRoaXMuI2lzLmdldCh0LnBhZ2VJbmRleCkuX3N0YXJ0UmVuZGVyUGFnZSh0LnRyYW5zcGFyZW5jeSx0LmNhY2hlS2V5KX0pKSx0Lm9uKCJjb21tb25vYmoiLCgoW2UsaSxzXSk9PntpZih0aGlzLmRlc3Ryb3llZClyZXR1cm4gbnVsbDtpZih0aGlzLmNvbW1vbk9ianMuaGFzKGUpKXJldHVybiBudWxsO3N3aXRjaChpKXtjYXNlIkZvbnQiOmNvbnN0e2Rpc2FibGVGb250RmFjZTpuLGZvbnRFeHRyYVByb3BlcnRpZXM6cixwZGZCdWc6YX09dGhpcy5fcGFyYW1zO2lmKCJlcnJvciJpbiBzKXtjb25zdCB0PXMuZXJyb3I7dyhgRXJyb3IgZHVyaW5nIGZvbnQgbG9hZGluZzogJHt0fWApLHRoaXMuY29tbW9uT2Jqcy5yZXNvbHZlKGUsdCk7YnJlYWt9Y29uc3Qgbz1hJiZnbG9iYWxUaGlzLkZvbnRJbnNwZWN0b3I/LmVuYWJsZWQ/KHQsZSk9Pmdsb2JhbFRoaXMuRm9udEluc3BlY3Rvci5mb250QWRkZWQodCxlKTpudWxsLGg9bmV3IHp0KHMse2Rpc2FibGVGb250RmFjZTpuLGluc3BlY3RGb250Om99KTt0aGlzLmZvbnRMb2FkZXIuYmluZChoKS5jYXRjaCgoKCk9PnQuc2VuZFdpdGhQcm9taXNlKCJGb250RmFsbGJhY2siLHtpZDplfSkpKS5maW5hbGx5KCgoKT0+eyFyJiZoLmRhdGEmJihoLmRhdGE9bnVsbCksdGhpcy5jb21tb25PYmpzLnJlc29sdmUoZSxoKX0pKTticmVhaztjYXNlIkNvcHlMb2NhbEltYWdlIjpjb25zdHtpbWFnZVJlZjpsfT1zO18obCwiVGhlIGltYWdlUmVmIG11c3QgYmUgZGVmaW5lZC4iKTtmb3IoY29uc3QgdCBvZiB0aGlzLiNpcy52YWx1ZXMoKSlmb3IoY29uc3RbLGldb2YgdC5vYmpzKWlmKGk/LnJlZj09PWwpcmV0dXJuIGkuZGF0YUxlbj8odGhpcy5jb21tb25PYmpzLnJlc29sdmUoZSxzdHJ1Y3R1cmVkQ2xvbmUoaSkpLGkuZGF0YUxlbik6bnVsbDticmVhaztjYXNlIkZvbnRQYXRoIjpjYXNlIkltYWdlIjpjYXNlIlBhdHRlcm4iOnRoaXMuY29tbW9uT2Jqcy5yZXNvbHZlKGUscyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEdvdCB1bmtub3duIGNvbW1vbiBvYmplY3QgdHlwZSAke2l9YCl9cmV0dXJuIG51bGx9KSksdC5vbigib2JqIiwoKFt0LGUsaSxzXSk9PntpZih0aGlzLmRlc3Ryb3llZClyZXR1cm47Y29uc3Qgbj10aGlzLiNpcy5nZXQoZSk7aWYoIW4ub2Jqcy5oYXModCkpaWYoMCE9PW4uX2ludGVudFN0YXRlcy5zaXplKXN3aXRjaChpKXtjYXNlIkltYWdlIjpuLm9ianMucmVzb2x2ZSh0LHMpLHM/LmRhdGFMZW4+MWU3JiYobi5fbWF5YmVDbGVhbnVwQWZ0ZXJSZW5kZXI9ITApO2JyZWFrO2Nhc2UiUGF0dGVybiI6bi5vYmpzLnJlc29sdmUodCxzKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgR290IHVua25vd24gb2JqZWN0IHR5cGUgJHtpfWApfWVsc2Ugcz8uYml0bWFwPy5jbG9zZSgpfSkpLHQub24oIkRvY1Byb2dyZXNzIiwodD0+e3RoaXMuZGVzdHJveWVkfHxlLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQudG90YWx9KX0pKSx0Lm9uKCJGZXRjaEJ1aWx0SW5DTWFwIiwodD0+dGhpcy5kZXN0cm95ZWQ/UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZC4iKSk6dGhpcy5jTWFwUmVhZGVyRmFjdG9yeT90aGlzLmNNYXBSZWFkZXJGYWN0b3J5LmZldGNoKHQpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiQ01hcFJlYWRlckZhY3Rvcnkgbm90IGluaXRpYWxpemVkLCBzZWUgdGhlIGB1c2VXb3JrZXJGZXRjaGAgcGFyYW1ldGVyLiIpKSkpLHQub24oIkZldGNoU3RhbmRhcmRGb250RGF0YSIsKHQ9PnRoaXMuZGVzdHJveWVkP1Byb21pc2UucmVqZWN0KG5ldyBFcnJvcigiV29ya2VyIHdhcyBkZXN0cm95ZWQuIikpOnRoaXMuc3RhbmRhcmRGb250RGF0YUZhY3Rvcnk/dGhpcy5zdGFuZGFyZEZvbnREYXRhRmFjdG9yeS5mZXRjaCh0KTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlN0YW5kYXJkRm9udERhdGFGYWN0b3J5IG5vdCBpbml0aWFsaXplZCwgc2VlIHRoZSBgdXNlV29ya2VyRmV0Y2hgIHBhcmFtZXRlci4iKSkpKX1nZXREYXRhKCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXREYXRhIixudWxsKX1zYXZlRG9jdW1lbnQoKXt0aGlzLmFubm90YXRpb25TdG9yYWdlLnNpemU8PTAmJncoInNhdmVEb2N1bWVudCBjYWxsZWQgd2hpbGUgYGFubm90YXRpb25TdG9yYWdlYCBpcyBlbXB0eSwgcGxlYXNlIHVzZSB0aGUgZ2V0RGF0YS1tZXRob2QgaW5zdGVhZC4iKTtjb25zdHttYXA6dCx0cmFuc2ZlcjplfT10aGlzLmFubm90YXRpb25TdG9yYWdlLnNlcmlhbGl6YWJsZTtyZXR1cm4gdGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIlNhdmVEb2N1bWVudCIse2lzUHVyZVhmYTohIXRoaXMuX2h0bWxGb3JYZmEsbnVtUGFnZXM6dGhpcy5fbnVtUGFnZXMsYW5ub3RhdGlvblN0b3JhZ2U6dCxmaWxlbmFtZTp0aGlzLl9mdWxsUmVhZGVyPy5maWxlbmFtZT8/bnVsbH0sZSkuZmluYWxseSgoKCk9Pnt0aGlzLmFubm90YXRpb25TdG9yYWdlLnJlc2V0TW9kaWZpZWQoKX0pKX1nZXRQYWdlKHQpe2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PD0wfHx0PnRoaXMuX251bVBhZ2VzKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkludmFsaWQgcGFnZSByZXF1ZXN0LiIpKTtjb25zdCBlPXQtMSxpPXRoaXMuI3NzLmdldChlKTtpZihpKXJldHVybiBpO2NvbnN0IHM9dGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldFBhZ2UiLHtwYWdlSW5kZXg6ZX0pLnRoZW4oKGk9PntpZih0aGlzLmRlc3Ryb3llZCl0aHJvdyBuZXcgRXJyb3IoIlRyYW5zcG9ydCBkZXN0cm95ZWQiKTtpLnJlZlN0ciYmdGhpcy4jbnMuc2V0KGkucmVmU3RyLHQpO2NvbnN0IHM9bmV3IGhpKGUsaSx0aGlzLHRoaXMuX3BhcmFtcy5wZGZCdWcpO3JldHVybiB0aGlzLiNpcy5zZXQoZSxzKSxzfSkpO3JldHVybiB0aGlzLiNzcy5zZXQoZSxzKSxzfWdldFBhZ2VJbmRleCh0KXtyZXR1cm4gbmkodCk/dGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldFBhZ2VJbmRleCIse251bTp0Lm51bSxnZW46dC5nZW59KTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkludmFsaWQgcGFnZUluZGV4IHJlcXVlc3QuIikpfWdldEFubm90YXRpb25zKHQsZSl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRBbm5vdGF0aW9ucyIse3BhZ2VJbmRleDp0LGludGVudDplfSl9Z2V0RmllbGRPYmplY3RzKCl7cmV0dXJuIHRoaXMuI2FzKCJHZXRGaWVsZE9iamVjdHMiKX1oYXNKU0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jYXMoIkhhc0pTQWN0aW9ucyIpfWdldENhbGN1bGF0aW9uT3JkZXJJZHMoKXtyZXR1cm4gdGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldENhbGN1bGF0aW9uT3JkZXJJZHMiLG51bGwpfWdldERlc3RpbmF0aW9ucygpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0RGVzdGluYXRpb25zIixudWxsKX1nZXREZXN0aW5hdGlvbih0KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQ/UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJJbnZhbGlkIGRlc3RpbmF0aW9uIHJlcXVlc3QuIikpOnRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXREZXN0aW5hdGlvbiIse2lkOnR9KX1nZXRQYWdlTGFiZWxzKCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRQYWdlTGFiZWxzIixudWxsKX1nZXRQYWdlTGF5b3V0KCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRQYWdlTGF5b3V0IixudWxsKX1nZXRQYWdlTW9kZSgpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0UGFnZU1vZGUiLG51bGwpfWdldFZpZXdlclByZWZlcmVuY2VzKCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRWaWV3ZXJQcmVmZXJlbmNlcyIsbnVsbCl9Z2V0T3BlbkFjdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0T3BlbkFjdGlvbiIsbnVsbCl9Z2V0QXR0YWNobWVudHMoKXtyZXR1cm4gdGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldEF0dGFjaG1lbnRzIixudWxsKX1nZXREb2NKU0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jYXMoIkdldERvY0pTQWN0aW9ucyIpfWdldFBhZ2VKU0FjdGlvbnModCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRQYWdlSlNBY3Rpb25zIix7cGFnZUluZGV4OnR9KX1nZXRTdHJ1Y3RUcmVlKHQpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0U3RydWN0VHJlZSIse3BhZ2VJbmRleDp0fSl9Z2V0T3V0bGluZSgpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0T3V0bGluZSIsbnVsbCl9Z2V0T3B0aW9uYWxDb250ZW50Q29uZmlnKHQpe3JldHVybiB0aGlzLiNhcygiR2V0T3B0aW9uYWxDb250ZW50Q29uZmlnIikudGhlbigoZT0+bmV3IHhlKGUsdCkpKX1nZXRQZXJtaXNzaW9ucygpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0UGVybWlzc2lvbnMiLG51bGwpfWdldE1ldGFkYXRhKCl7Y29uc3QgdD0iR2V0TWV0YWRhdGEiLGU9dGhpcy4jZXMuZ2V0KHQpO2lmKGUpcmV0dXJuIGU7Y29uc3QgaT10aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSh0LG51bGwpLnRoZW4oKHQ9Pih7aW5mbzp0WzBdLG1ldGFkYXRhOnRbMV0/bmV3IHllKHRbMV0pOm51bGwsY29udGVudERpc3Bvc2l0aW9uRmlsZW5hbWU6dGhpcy5fZnVsbFJlYWRlcj8uZmlsZW5hbWU/P251bGwsY29udGVudExlbmd0aDp0aGlzLl9mdWxsUmVhZGVyPy5jb250ZW50TGVuZ3RoPz9udWxsfSkpKTtyZXR1cm4gdGhpcy4jZXMuc2V0KHQsaSksaX1nZXRNYXJrSW5mbygpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0TWFya0luZm8iLG51bGwpfWFzeW5jIHN0YXJ0Q2xlYW51cCh0PSExKXtpZighdGhpcy5kZXN0cm95ZWQpe2F3YWl0IHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJDbGVhbnVwIixudWxsKTtmb3IoY29uc3QgdCBvZiB0aGlzLiNpcy52YWx1ZXMoKSlpZighdC5jbGVhbnVwKCkpdGhyb3cgbmV3IEVycm9yKGBzdGFydENsZWFudXA6IFBhZ2UgJHt0LnBhZ2VOdW1iZXJ9IGlzIGN1cnJlbnRseSByZW5kZXJpbmcuYCk7dGhpcy5jb21tb25PYmpzLmNsZWFyKCksdHx8dGhpcy5mb250TG9hZGVyLmNsZWFyKCksdGhpcy4jZXMuY2xlYXIoKSx0aGlzLmZpbHRlckZhY3RvcnkuZGVzdHJveSghMCksWWUuY2xlYW51cCgpfX1jYWNoZWRQYWdlTnVtYmVyKHQpe2lmKCFuaSh0KSlyZXR1cm4gbnVsbDtjb25zdCBlPTA9PT10Lmdlbj9gJHt0Lm51bX1SYDpgJHt0Lm51bX1SJHt0Lmdlbn1gO3JldHVybiB0aGlzLiNucy5nZXQoZSk/P251bGx9fWNvbnN0IHVpPVN5bWJvbCgiSU5JVElBTF9EQVRBIik7Y2xhc3MgcGl7I29zPU9iamVjdC5jcmVhdGUobnVsbCk7I2hzKHQpe3JldHVybiB0aGlzLiNvc1t0XXx8PXsuLi5Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSxkYXRhOnVpfX1nZXQodCxlPW51bGwpe2lmKGUpe2NvbnN0IGk9dGhpcy4jaHModCk7cmV0dXJuIGkucHJvbWlzZS50aGVuKCgoKT0+ZShpLmRhdGEpKSksbnVsbH1jb25zdCBpPXRoaXMuI29zW3RdO2lmKCFpfHxpLmRhdGE9PT11aSl0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3Rpbmcgb2JqZWN0IHRoYXQgaXNuJ3QgcmVzb2x2ZWQgeWV0ICR7dH0uYCk7cmV0dXJuIGkuZGF0YX1oYXModCl7Y29uc3QgZT10aGlzLiNvc1t0XTtyZXR1cm4hIWUmJmUuZGF0YSE9PXVpfXJlc29sdmUodCxlPW51bGwpe2NvbnN0IGk9dGhpcy4jaHModCk7aS5kYXRhPWUsaS5yZXNvbHZlKCl9Y2xlYXIoKXtmb3IoY29uc3QgdCBpbiB0aGlzLiNvcyl7Y29uc3R7ZGF0YTplfT10aGlzLiNvc1t0XTtlPy5iaXRtYXA/LmNsb3NlKCl9dGhpcy4jb3M9T2JqZWN0LmNyZWF0ZShudWxsKX0qW1N5bWJvbC5pdGVyYXRvcl0oKXtmb3IoY29uc3QgdCBpbiB0aGlzLiNvcyl7Y29uc3R7ZGF0YTplfT10aGlzLiNvc1t0XTtlIT09dWkmJih5aWVsZFt0LGVdKX19fWNsYXNzIGdpeyNscz1udWxsO2NvbnN0cnVjdG9yKHQpe3RoaXMuI2xzPXQsdGhpcy5vbkNvbnRpbnVlPW51bGx9Z2V0IHByb21pc2UoKXtyZXR1cm4gdGhpcy4jbHMuY2FwYWJpbGl0eS5wcm9taXNlfWNhbmNlbCh0PTApe3RoaXMuI2xzLmNhbmNlbChudWxsLHQpfWdldCBzZXBhcmF0ZUFubm90cygpe2NvbnN0e3NlcGFyYXRlQW5ub3RzOnR9PXRoaXMuI2xzLm9wZXJhdG9yTGlzdDtpZighdClyZXR1cm4hMTtjb25zdHthbm5vdGF0aW9uQ2FudmFzTWFwOmV9PXRoaXMuI2xzO3JldHVybiB0LmZvcm18fHQuY2FudmFzJiZlPy5zaXplPjB9fWNsYXNzIGZpeyNjcz1udWxsO3N0YXRpYyNkcz1uZXcgV2Vha1NldDtjb25zdHJ1Y3Rvcih7Y2FsbGJhY2s6dCxwYXJhbXM6ZSxvYmpzOmksY29tbW9uT2JqczpzLGFubm90YXRpb25DYW52YXNNYXA6bixvcGVyYXRvckxpc3Q6cixwYWdlSW5kZXg6YSxjYW52YXNGYWN0b3J5Om8sZmlsdGVyRmFjdG9yeTpoLHVzZVJlcXVlc3RBbmltYXRpb25GcmFtZTpsPSExLHBkZkJ1ZzpjPSExLHBhZ2VDb2xvcnM6ZD1udWxsfSl7dGhpcy5jYWxsYmFjaz10LHRoaXMucGFyYW1zPWUsdGhpcy5vYmpzPWksdGhpcy5jb21tb25PYmpzPXMsdGhpcy5hbm5vdGF0aW9uQ2FudmFzTWFwPW4sdGhpcy5vcGVyYXRvckxpc3RJZHg9bnVsbCx0aGlzLm9wZXJhdG9yTGlzdD1yLHRoaXMuX3BhZ2VJbmRleD1hLHRoaXMuY2FudmFzRmFjdG9yeT1vLHRoaXMuZmlsdGVyRmFjdG9yeT1oLHRoaXMuX3BkZkJ1Zz1jLHRoaXMucGFnZUNvbG9ycz1kLHRoaXMucnVubmluZz0hMSx0aGlzLmdyYXBoaWNzUmVhZHlDYWxsYmFjaz1udWxsLHRoaXMuZ3JhcGhpY3NSZWFkeT0hMSx0aGlzLl91c2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ITA9PT1sJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyx0aGlzLmNhbmNlbGxlZD0hMSx0aGlzLmNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy50YXNrPW5ldyBnaSh0aGlzKSx0aGlzLl9jYW5jZWxCb3VuZD10aGlzLmNhbmNlbC5iaW5kKHRoaXMpLHRoaXMuX2NvbnRpbnVlQm91bmQ9dGhpcy5fY29udGludWUuYmluZCh0aGlzKSx0aGlzLl9zY2hlZHVsZU5leHRCb3VuZD10aGlzLl9zY2hlZHVsZU5leHQuYmluZCh0aGlzKSx0aGlzLl9uZXh0Qm91bmQ9dGhpcy5fbmV4dC5iaW5kKHRoaXMpLHRoaXMuX2NhbnZhcz1lLmNhbnZhc0NvbnRleHQuY2FudmFzfWdldCBjb21wbGV0ZWQoKXtyZXR1cm4gdGhpcy5jYXBhYmlsaXR5LnByb21pc2UuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfWluaXRpYWxpemVHcmFwaGljcyh7dHJhbnNwYXJlbmN5OnQ9ITEsb3B0aW9uYWxDb250ZW50Q29uZmlnOmV9KXtpZih0aGlzLmNhbmNlbGxlZClyZXR1cm47aWYodGhpcy5fY2FudmFzKXtpZihmaS4jZHMuaGFzKHRoaXMuX2NhbnZhcykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdXNlIHRoZSBzYW1lIGNhbnZhcyBkdXJpbmcgbXVsdGlwbGUgcmVuZGVyKCkgb3BlcmF0aW9ucy4gVXNlIGRpZmZlcmVudCBjYW52YXMgb3IgZW5zdXJlIHByZXZpb3VzIG9wZXJhdGlvbnMgd2VyZSBjYW5jZWxsZWQgb3IgY29tcGxldGVkLiIpO2ZpLiNkcy5hZGQodGhpcy5fY2FudmFzKX10aGlzLl9wZGZCdWcmJmdsb2JhbFRoaXMuU3RlcHBlck1hbmFnZXI/LmVuYWJsZWQmJih0aGlzLnN0ZXBwZXI9Z2xvYmFsVGhpcy5TdGVwcGVyTWFuYWdlci5jcmVhdGUodGhpcy5fcGFnZUluZGV4KSx0aGlzLnN0ZXBwZXIuaW5pdCh0aGlzLm9wZXJhdG9yTGlzdCksdGhpcy5zdGVwcGVyLm5leHRCcmVha1BvaW50PXRoaXMuc3RlcHBlci5nZXROZXh0QnJlYWtQb2ludCgpKTtjb25zdHtjYW52YXNDb250ZXh0Omksdmlld3BvcnQ6cyx0cmFuc2Zvcm06bixiYWNrZ3JvdW5kOnJ9PXRoaXMucGFyYW1zO3RoaXMuZ2Z4PW5ldyBmZShpLHRoaXMuY29tbW9uT2Jqcyx0aGlzLm9ianMsdGhpcy5jYW52YXNGYWN0b3J5LHRoaXMuZmlsdGVyRmFjdG9yeSx7b3B0aW9uYWxDb250ZW50Q29uZmlnOmV9LHRoaXMuYW5ub3RhdGlvbkNhbnZhc01hcCx0aGlzLnBhZ2VDb2xvcnMpLHRoaXMuZ2Z4LmJlZ2luRHJhd2luZyh7dHJhbnNmb3JtOm4sdmlld3BvcnQ6cyx0cmFuc3BhcmVuY3k6dCxiYWNrZ3JvdW5kOnJ9KSx0aGlzLm9wZXJhdG9yTGlzdElkeD0wLHRoaXMuZ3JhcGhpY3NSZWFkeT0hMCx0aGlzLmdyYXBoaWNzUmVhZHlDYWxsYmFjaz8uKCl9Y2FuY2VsKHQ9bnVsbCxlPTApe3RoaXMucnVubmluZz0hMSx0aGlzLmNhbmNlbGxlZD0hMCx0aGlzLmdmeD8uZW5kRHJhd2luZygpLHRoaXMuI2NzJiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuI2NzKSx0aGlzLiNjcz1udWxsKSxmaS4jZHMuZGVsZXRlKHRoaXMuX2NhbnZhcyksdGhpcy5jYWxsYmFjayh0fHxuZXcgaXQoYFJlbmRlcmluZyBjYW5jZWxsZWQsIHBhZ2UgJHt0aGlzLl9wYWdlSW5kZXgrMX1gLGUpKX1vcGVyYXRvckxpc3RDaGFuZ2VkKCl7dGhpcy5ncmFwaGljc1JlYWR5Pyh0aGlzLnN0ZXBwZXI/LnVwZGF0ZU9wZXJhdG9yTGlzdCh0aGlzLm9wZXJhdG9yTGlzdCksdGhpcy5ydW5uaW5nfHx0aGlzLl9jb250aW51ZSgpKTp0aGlzLmdyYXBoaWNzUmVhZHlDYWxsYmFja3x8PXRoaXMuX2NvbnRpbnVlQm91bmR9X2NvbnRpbnVlKCl7dGhpcy5ydW5uaW5nPSEwLHRoaXMuY2FuY2VsbGVkfHwodGhpcy50YXNrLm9uQ29udGludWU/dGhpcy50YXNrLm9uQ29udGludWUodGhpcy5fc2NoZWR1bGVOZXh0Qm91bmQpOnRoaXMuX3NjaGVkdWxlTmV4dCgpKX1fc2NoZWR1bGVOZXh0KCl7dGhpcy5fdXNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lP3RoaXMuI2NzPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy4jY3M9bnVsbCx0aGlzLl9uZXh0Qm91bmQoKS5jYXRjaCh0aGlzLl9jYW5jZWxCb3VuZCl9KSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbih0aGlzLl9uZXh0Qm91bmQpLmNhdGNoKHRoaXMuX2NhbmNlbEJvdW5kKX1hc3luYyBfbmV4dCgpe3RoaXMuY2FuY2VsbGVkfHwodGhpcy5vcGVyYXRvckxpc3RJZHg9dGhpcy5nZnguZXhlY3V0ZU9wZXJhdG9yTGlzdCh0aGlzLm9wZXJhdG9yTGlzdCx0aGlzLm9wZXJhdG9yTGlzdElkeCx0aGlzLl9jb250aW51ZUJvdW5kLHRoaXMuc3RlcHBlciksdGhpcy5vcGVyYXRvckxpc3RJZHg9PT10aGlzLm9wZXJhdG9yTGlzdC5hcmdzQXJyYXkubGVuZ3RoJiYodGhpcy5ydW5uaW5nPSExLHRoaXMub3BlcmF0b3JMaXN0Lmxhc3RDaHVuayYmKHRoaXMuZ2Z4LmVuZERyYXdpbmcoKSxmaS4jZHMuZGVsZXRlKHRoaXMuX2NhbnZhcyksdGhpcy5jYWxsYmFjaygpKSkpfX1jb25zdCBtaT0iNC43Ljc2IixiaT0iOGI3M2I4MjhiIjtmdW5jdGlvbiB2aSh0KXtyZXR1cm4gTWF0aC5mbG9vcigyNTUqTWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKX1mdW5jdGlvbiB5aSh0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsMjU1KnQpKX1pKDY3MCk7Y2xhc3MgQWl7c3RhdGljIENNWUtfRyhbdCxlLGksc10pe3JldHVyblsiRyIsMS1NYXRoLm1pbigxLC4zKnQrLjU5KmkrLjExKmUrcyldfXN0YXRpYyBHX0NNWUsoW3RdKXtyZXR1cm5bIkNNWUsiLDAsMCwwLDEtdF19c3RhdGljIEdfUkdCKFt0XSl7cmV0dXJuWyJSR0IiLHQsdCx0XX1zdGF0aWMgR19yZ2IoW3RdKXtyZXR1cm5bdD15aSh0KSx0LHRdfXN0YXRpYyBHX0hUTUwoW3RdKXtjb25zdCBlPXZpKHQpO3JldHVybmAjJHtlfSR7ZX0ke2V9YH1zdGF0aWMgUkdCX0coW3QsZSxpXSl7cmV0dXJuWyJHIiwuMyp0Ky41OSplKy4xMSppXX1zdGF0aWMgUkdCX3JnYih0KXtyZXR1cm4gdC5tYXAoeWkpfXN0YXRpYyBSR0JfSFRNTCh0KXtyZXR1cm5gIyR7dC5tYXAodmkpLmpvaW4oIiIpfWB9c3RhdGljIFRfSFRNTCgpe3JldHVybiIjMDAwMDAwMDAifXN0YXRpYyBUX3JnYigpe3JldHVybltudWxsXX1zdGF0aWMgQ01ZS19SR0IoW3QsZSxpLHNdKXtyZXR1cm5bIlJHQiIsMS1NYXRoLm1pbigxLHQrcyksMS1NYXRoLm1pbigxLGkrcyksMS1NYXRoLm1pbigxLGUrcyldfXN0YXRpYyBDTVlLX3JnYihbdCxlLGksc10pe3JldHVyblt5aSgxLU1hdGgubWluKDEsdCtzKSkseWkoMS1NYXRoLm1pbigxLGkrcykpLHlpKDEtTWF0aC5taW4oMSxlK3MpKV19c3RhdGljIENNWUtfSFRNTCh0KXtjb25zdCBlPXRoaXMuQ01ZS19SR0IodCkuc2xpY2UoMSk7cmV0dXJuIHRoaXMuUkdCX0hUTUwoZSl9c3RhdGljIFJHQl9DTVlLKFt0LGUsaV0pe2NvbnN0IHM9MS10LG49MS1lLHI9MS1pO3JldHVyblsiQ01ZSyIscyxuLHIsTWF0aC5taW4ocyxuLHIpXX19Y2xhc3Mgd2l7c3RhdGljIHNldHVwU3RvcmFnZSh0LGUsaSxzLG4pe2NvbnN0IHI9cy5nZXRWYWx1ZShlLHt2YWx1ZTpudWxsfSk7c3dpdGNoKGkubmFtZSl7Y2FzZSJ0ZXh0YXJlYSI6aWYobnVsbCE9PXIudmFsdWUmJih0LnRleHRDb250ZW50PXIudmFsdWUpLCJwcmludCI9PT1uKWJyZWFrO3QuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCh0PT57cy5zZXRWYWx1ZShlLHt2YWx1ZTp0LnRhcmdldC52YWx1ZX0pfSkpO2JyZWFrO2Nhc2UiaW5wdXQiOmlmKCJyYWRpbyI9PT1pLmF0dHJpYnV0ZXMudHlwZXx8ImNoZWNrYm94Ij09PWkuYXR0cmlidXRlcy50eXBlKXtpZihyLnZhbHVlPT09aS5hdHRyaWJ1dGVzLnhmYU9uP3Quc2V0QXR0cmlidXRlKCJjaGVja2VkIiwhMCk6ci52YWx1ZT09PWkuYXR0cmlidXRlcy54ZmFPZmYmJnQucmVtb3ZlQXR0cmlidXRlKCJjaGVja2VkIiksInByaW50Ij09PW4pYnJlYWs7dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCh0PT57cy5zZXRWYWx1ZShlLHt2YWx1ZTp0LnRhcmdldC5jaGVja2VkP3QudGFyZ2V0LmdldEF0dHJpYnV0ZSgieGZhT24iKTp0LnRhcmdldC5nZXRBdHRyaWJ1dGUoInhmYU9mZiIpfSl9KSl9ZWxzZXtpZihudWxsIT09ci52YWx1ZSYmdC5zZXRBdHRyaWJ1dGUoInZhbHVlIixyLnZhbHVlKSwicHJpbnQiPT09bilicmVhazt0LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwodD0+e3Muc2V0VmFsdWUoZSx7dmFsdWU6dC50YXJnZXQudmFsdWV9KX0pKX1icmVhaztjYXNlInNlbGVjdCI6aWYobnVsbCE9PXIudmFsdWUpe3Quc2V0QXR0cmlidXRlKCJ2YWx1ZSIsci52YWx1ZSk7Zm9yKGNvbnN0IHQgb2YgaS5jaGlsZHJlbil0LmF0dHJpYnV0ZXMudmFsdWU9PT1yLnZhbHVlP3QuYXR0cmlidXRlcy5zZWxlY3RlZD0hMDp0LmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoInNlbGVjdGVkIikmJmRlbGV0ZSB0LmF0dHJpYnV0ZXMuc2VsZWN0ZWR9dC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKHQ9Pntjb25zdCBpPXQudGFyZ2V0Lm9wdGlvbnMsbj0tMT09PWkuc2VsZWN0ZWRJbmRleD8iIjppW2kuc2VsZWN0ZWRJbmRleF0udmFsdWU7cy5zZXRWYWx1ZShlLHt2YWx1ZTpufSl9KSl9fXN0YXRpYyBzZXRBdHRyaWJ1dGVzKHtodG1sOnQsZWxlbWVudDplLHN0b3JhZ2U6aT1udWxsLGludGVudDpzLGxpbmtTZXJ2aWNlOm59KXtjb25zdHthdHRyaWJ1dGVzOnJ9PWUsYT10IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQ7InJhZGlvIj09PXIudHlwZSYmKHIubmFtZT1gJHtyLm5hbWV9LSR7c31gKTtmb3IoY29uc3RbZSxpXW9mIE9iamVjdC5lbnRyaWVzKHIpKWlmKG51bGwhPWkpc3dpdGNoKGUpe2Nhc2UiY2xhc3MiOmkubGVuZ3RoJiZ0LnNldEF0dHJpYnV0ZShlLGkuam9pbigiICIpKTticmVhaztjYXNlImRhdGFJZCI6YnJlYWs7Y2FzZSJpZCI6dC5zZXRBdHRyaWJ1dGUoImRhdGEtZWxlbWVudC1pZCIsaSk7YnJlYWs7Y2FzZSJzdHlsZSI6T2JqZWN0LmFzc2lnbih0LnN0eWxlLGkpO2JyZWFrO2Nhc2UidGV4dENvbnRlbnQiOnQudGV4dENvbnRlbnQ9aTticmVhaztkZWZhdWx0OighYXx8ImhyZWYiIT09ZSYmIm5ld1dpbmRvdyIhPT1lKSYmdC5zZXRBdHRyaWJ1dGUoZSxpKX1hJiZuLmFkZExpbmtBdHRyaWJ1dGVzKHQsci5ocmVmLHIubmV3V2luZG93KSxpJiZyLmRhdGFJZCYmdGhpcy5zZXR1cFN0b3JhZ2UodCxyLmRhdGFJZCxlLGkpfXN0YXRpYyByZW5kZXIodCl7Y29uc3QgZT10LmFubm90YXRpb25TdG9yYWdlLGk9dC5saW5rU2VydmljZSxzPXQueGZhSHRtbCxuPXQuaW50ZW50fHwiZGlzcGxheSIscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHMubmFtZSk7cy5hdHRyaWJ1dGVzJiZ0aGlzLnNldEF0dHJpYnV0ZXMoe2h0bWw6cixlbGVtZW50OnMsaW50ZW50Om4sbGlua1NlcnZpY2U6aX0pO2NvbnN0IGE9InJpY2hUZXh0IiE9PW4sbz10LmRpdjtpZihvLmFwcGVuZChyKSx0LnZpZXdwb3J0KXtjb25zdCBlPWBtYXRyaXgoJHt0LnZpZXdwb3J0LnRyYW5zZm9ybS5qb2luKCIsIil9KWA7by5zdHlsZS50cmFuc2Zvcm09ZX1hJiZvLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJ4ZmFMYXllciB4ZmFGb250Iik7Y29uc3QgaD1bXTtpZigwPT09cy5jaGlsZHJlbi5sZW5ndGgpe2lmKHMudmFsdWUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocy52YWx1ZSk7ci5hcHBlbmQodCksYSYmUWUuc2hvdWxkQnVpbGRUZXh0KHMubmFtZSkmJmgucHVzaCh0KX1yZXR1cm57dGV4dERpdnM6aH19Y29uc3QgbD1bW3MsLTEscl1dO2Zvcig7bC5sZW5ndGg+MDspe2NvbnN0W3QscyxyXT1sLmF0KC0xKTtpZihzKzE9PT10LmNoaWxkcmVuLmxlbmd0aCl7bC5wb3AoKTtjb250aW51ZX1jb25zdCBvPXQuY2hpbGRyZW5bKytsLmF0KC0xKVsxXV07aWYobnVsbD09PW8pY29udGludWU7Y29uc3R7bmFtZTpjfT1vO2lmKCIjdGV4dCI9PT1jKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG8udmFsdWUpO2gucHVzaCh0KSxyLmFwcGVuZCh0KTtjb250aW51ZX1jb25zdCBkPW8/LmF0dHJpYnV0ZXM/LnhtbG5zP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvLmF0dHJpYnV0ZXMueG1sbnMsYyk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChjKTtpZihyLmFwcGVuZChkKSxvLmF0dHJpYnV0ZXMmJnRoaXMuc2V0QXR0cmlidXRlcyh7aHRtbDpkLGVsZW1lbnQ6byxzdG9yYWdlOmUsaW50ZW50Om4sbGlua1NlcnZpY2U6aX0pLG8uY2hpbGRyZW4/Lmxlbmd0aD4wKWwucHVzaChbbywtMSxkXSk7ZWxzZSBpZihvLnZhbHVlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG8udmFsdWUpO2EmJlFlLnNob3VsZEJ1aWxkVGV4dChjKSYmaC5wdXNoKHQpLGQuYXBwZW5kKHQpfX1mb3IoY29uc3QgdCBvZiBvLnF1ZXJ5U2VsZWN0b3JBbGwoIi54ZmFOb25JbnRlcmFjdGl2ZSBpbnB1dCwgLnhmYU5vbkludGVyYWN0aXZlIHRleHRhcmVhIikpdC5zZXRBdHRyaWJ1dGUoInJlYWRPbmx5IiwhMCk7cmV0dXJue3RleHREaXZzOmh9fXN0YXRpYyB1cGRhdGUodCl7Y29uc3QgZT1gbWF0cml4KCR7dC52aWV3cG9ydC50cmFuc2Zvcm0uam9pbigiLCIpfSlgO3QuZGl2LnN0eWxlLnRyYW5zZm9ybT1lLHQuZGl2LmhpZGRlbj0hMX19Y29uc3QgeGk9MWUzLF9pPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIEVpKHQpe3JldHVybnt3aWR0aDp0WzJdLXRbMF0saGVpZ2h0OnRbM10tdFsxXX19Y2xhc3MgQ2l7c3RhdGljIGNyZWF0ZSh0KXtzd2l0Y2godC5kYXRhLmFubm90YXRpb25UeXBlKXtjYXNlIDI6cmV0dXJuIG5ldyBUaSh0KTtjYXNlIDE6cmV0dXJuIG5ldyBNaSh0KTtjYXNlIDIwOnN3aXRjaCh0LmRhdGEuZmllbGRUeXBlKXtjYXNlIlR4IjpyZXR1cm4gbmV3IElpKHQpO2Nhc2UiQnRuIjpyZXR1cm4gdC5kYXRhLnJhZGlvQnV0dG9uP25ldyBEaSh0KTp0LmRhdGEuY2hlY2tCb3g/bmV3IFBpKHQpOm5ldyBMaSh0KTtjYXNlIkNoIjpyZXR1cm4gbmV3IEZpKHQpO2Nhc2UiU2lnIjpyZXR1cm4gbmV3IFJpKHQpfXJldHVybiBuZXcga2kodCk7Y2FzZSAxNjpyZXR1cm4gbmV3IE9pKHQpO2Nhc2UgMzpyZXR1cm4gbmV3IEJpKHQpO2Nhc2UgNDpyZXR1cm4gbmV3IHppKHQpO2Nhc2UgNTpyZXR1cm4gbmV3IEhpKHQpO2Nhc2UgNjpyZXR1cm4gbmV3IGppKHQpO2Nhc2UgODpyZXR1cm4gbmV3IFVpKHQpO2Nhc2UgMTQ6cmV0dXJuIG5ldyBXaSh0KTtjYXNlIDE1OnJldHVybiBuZXcgR2kodCk7Y2FzZSA3OnJldHVybiBuZXcgJGkodCk7Y2FzZSA5OnJldHVybiBuZXcgVmkodCk7Y2FzZSAxMDpyZXR1cm4gbmV3IHFpKHQpO2Nhc2UgMTE6cmV0dXJuIG5ldyBYaSh0KTtjYXNlIDEyOnJldHVybiBuZXcgS2kodCk7Y2FzZSAxMzpyZXR1cm4gbmV3IFlpKHQpO2Nhc2UgMTc6cmV0dXJuIG5ldyBRaSh0KTtkZWZhdWx0OnJldHVybiBuZXcgU2kodCl9fX1jbGFzcyBTaXsjdXM9bnVsbDsjcHM9ITE7I2dzPW51bGw7Y29uc3RydWN0b3IodCx7aXNSZW5kZXJhYmxlOmU9ITEsaWdub3JlQm9yZGVyOmk9ITEsY3JlYXRlUXVhZHJpbGF0ZXJhbHM6cz0hMX09e30pe3RoaXMuaXNSZW5kZXJhYmxlPWUsdGhpcy5kYXRhPXQuZGF0YSx0aGlzLmxheWVyPXQubGF5ZXIsdGhpcy5saW5rU2VydmljZT10LmxpbmtTZXJ2aWNlLHRoaXMuZG93bmxvYWRNYW5hZ2VyPXQuZG93bmxvYWRNYW5hZ2VyLHRoaXMuaW1hZ2VSZXNvdXJjZXNQYXRoPXQuaW1hZ2VSZXNvdXJjZXNQYXRoLHRoaXMucmVuZGVyRm9ybXM9dC5yZW5kZXJGb3Jtcyx0aGlzLnN2Z0ZhY3Rvcnk9dC5zdmdGYWN0b3J5LHRoaXMuYW5ub3RhdGlvblN0b3JhZ2U9dC5hbm5vdGF0aW9uU3RvcmFnZSx0aGlzLmVuYWJsZVNjcmlwdGluZz10LmVuYWJsZVNjcmlwdGluZyx0aGlzLmhhc0pTQWN0aW9ucz10Lmhhc0pTQWN0aW9ucyx0aGlzLl9maWVsZE9iamVjdHM9dC5maWVsZE9iamVjdHMsdGhpcy5wYXJlbnQ9dC5wYXJlbnQsZSYmKHRoaXMuY29udGFpbmVyPXRoaXMuX2NyZWF0ZUNvbnRhaW5lcihpKSkscyYmdGhpcy5fY3JlYXRlUXVhZHJpbGF0ZXJhbHMoKX1zdGF0aWMgX2hhc1BvcHVwRGF0YSh7dGl0bGVPYmo6dCxjb250ZW50c09iajplLHJpY2hUZXh0Oml9KXtyZXR1cm4hISh0Py5zdHJ8fGU/LnN0cnx8aT8uc3RyKX1nZXQgX2lzRWRpdGFibGUoKXtyZXR1cm4gdGhpcy5kYXRhLmlzRWRpdGFibGV9Z2V0IGhhc1BvcHVwRGF0YSgpe3JldHVybiBTaS5faGFzUG9wdXBEYXRhKHRoaXMuZGF0YSl9dXBkYXRlRWRpdGVkKHQpe2lmKCF0aGlzLmNvbnRhaW5lcilyZXR1cm47dGhpcy4jdXN8fD17cmVjdDp0aGlzLmRhdGEucmVjdC5zbGljZSgwKX07Y29uc3R7cmVjdDplfT10O2UmJnRoaXMuI2ZzKGUpLHRoaXMuI2dzPy5wb3B1cC51cGRhdGVFZGl0ZWQodCl9cmVzZXRFZGl0ZWQoKXt0aGlzLiN1cyYmKHRoaXMuI2ZzKHRoaXMuI3VzLnJlY3QpLHRoaXMuI2dzPy5wb3B1cC5yZXNldEVkaXRlZCgpLHRoaXMuI3VzPW51bGwpfSNmcyh0KXtjb25zdHtjb250YWluZXI6e3N0eWxlOmV9LGRhdGE6e3JlY3Q6aSxyb3RhdGlvbjpzfSxwYXJlbnQ6e3ZpZXdwb3J0OntyYXdEaW1zOntwYWdlV2lkdGg6bixwYWdlSGVpZ2h0OnIscGFnZVg6YSxwYWdlWTpvfX19fT10aGlzO2k/LnNwbGljZSgwLDQsLi4udCk7Y29uc3R7d2lkdGg6aCxoZWlnaHQ6bH09RWkodCk7ZS5sZWZ0PTEwMCoodFswXS1hKS9uKyIlIixlLnRvcD0xMDAqKHItdFszXStvKS9yKyIlIiwwPT09cz8oZS53aWR0aD0xMDAqaC9uKyIlIixlLmhlaWdodD0xMDAqbC9yKyIlIik6dGhpcy5zZXRSb3RhdGlvbihzKX1fY3JlYXRlQ29udGFpbmVyKHQpe2NvbnN0e2RhdGE6ZSxwYXJlbnQ6e3BhZ2U6aSx2aWV3cG9ydDpzfX09dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKTtuLnNldEF0dHJpYnV0ZSgiZGF0YS1hbm5vdGF0aW9uLWlkIixlLmlkKSx0aGlzIGluc3RhbmNlb2Yga2l8fChuLnRhYkluZGV4PXhpKTtjb25zdHtzdHlsZTpyfT1uO2lmKHIuekluZGV4PXRoaXMucGFyZW50LnpJbmRleCsrLGUucG9wdXBSZWYmJm4uc2V0QXR0cmlidXRlKCJhcmlhLWhhc3BvcHVwIiwiZGlhbG9nIiksZS5hbHRlcm5hdGl2ZVRleHQmJihuLnRpdGxlPWUuYWx0ZXJuYXRpdmVUZXh0KSxlLm5vUm90YXRlJiZuLmNsYXNzTGlzdC5hZGQoIm5vcm90YXRlIiksIWUucmVjdHx8dGhpcyBpbnN0YW5jZW9mIE9pKXtjb25zdHtyb3RhdGlvbjp0fT1lO3JldHVybiBlLmhhc093bkNhbnZhc3x8MD09PXR8fHRoaXMuc2V0Um90YXRpb24odCxuKSxufWNvbnN0e3dpZHRoOmEsaGVpZ2h0Om99PUVpKGUucmVjdCk7aWYoIXQmJmUuYm9yZGVyU3R5bGUud2lkdGg+MCl7ci5ib3JkZXJXaWR0aD1gJHtlLmJvcmRlclN0eWxlLndpZHRofXB4YDtjb25zdCB0PWUuYm9yZGVyU3R5bGUuaG9yaXpvbnRhbENvcm5lclJhZGl1cyxpPWUuYm9yZGVyU3R5bGUudmVydGljYWxDb3JuZXJSYWRpdXM7aWYodD4wfHxpPjApe2NvbnN0IGU9YGNhbGMoJHt0fXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSkgLyBjYWxjKCR7aX1weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYDtyLmJvcmRlclJhZGl1cz1lfWVsc2UgaWYodGhpcyBpbnN0YW5jZW9mIERpKXtjb25zdCB0PWBjYWxjKCR7YX1weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpIC8gY2FsYygke299cHggKiB2YXIoLS1zY2FsZS1mYWN0b3IpKWA7ci5ib3JkZXJSYWRpdXM9dH1zd2l0Y2goZS5ib3JkZXJTdHlsZS5zdHlsZSl7Y2FzZSAxOnIuYm9yZGVyU3R5bGU9InNvbGlkIjticmVhaztjYXNlIDI6ci5ib3JkZXJTdHlsZT0iZGFzaGVkIjticmVhaztjYXNlIDM6dygiVW5pbXBsZW1lbnRlZCBib3JkZXIgc3R5bGU6IGJldmVsZWQiKTticmVhaztjYXNlIDQ6dygiVW5pbXBsZW1lbnRlZCBib3JkZXIgc3R5bGU6IGluc2V0Iik7YnJlYWs7Y2FzZSA1OnIuYm9yZGVyQm90dG9tU3R5bGU9InNvbGlkIn1jb25zdCBzPWUuYm9yZGVyQ29sb3J8fG51bGw7cz8odGhpcy4jcHM9ITAsci5ib3JkZXJDb2xvcj16Lm1ha2VIZXhDb2xvcigwfHNbMF0sMHxzWzFdLDB8c1syXSkpOnIuYm9yZGVyV2lkdGg9MH1jb25zdCBoPXoubm9ybWFsaXplUmVjdChbZS5yZWN0WzBdLGkudmlld1szXS1lLnJlY3RbMV0raS52aWV3WzFdLGUucmVjdFsyXSxpLnZpZXdbM10tZS5yZWN0WzNdK2kudmlld1sxXV0pLHtwYWdlV2lkdGg6bCxwYWdlSGVpZ2h0OmMscGFnZVg6ZCxwYWdlWTp1fT1zLnJhd0RpbXM7ci5sZWZ0PTEwMCooaFswXS1kKS9sKyIlIixyLnRvcD0xMDAqKGhbMV0tdSkvYysiJSI7Y29uc3R7cm90YXRpb246cH09ZTtyZXR1cm4gZS5oYXNPd25DYW52YXN8fDA9PT1wPyhyLndpZHRoPTEwMCphL2wrIiUiLHIuaGVpZ2h0PTEwMCpvL2MrIiUiKTp0aGlzLnNldFJvdGF0aW9uKHAsbiksbn1zZXRSb3RhdGlvbih0LGU9dGhpcy5jb250YWluZXIpe2lmKCF0aGlzLmRhdGEucmVjdClyZXR1cm47Y29uc3R7cGFnZVdpZHRoOmkscGFnZUhlaWdodDpzfT10aGlzLnBhcmVudC52aWV3cG9ydC5yYXdEaW1zLHt3aWR0aDpuLGhlaWdodDpyfT1FaSh0aGlzLmRhdGEucmVjdCk7bGV0IGEsbzt0JTE4MD09MD8oYT0xMDAqbi9pLG89MTAwKnIvcyk6KGE9MTAwKnIvaSxvPTEwMCpuL3MpLGUuc3R5bGUud2lkdGg9YCR7YX0lYCxlLnN0eWxlLmhlaWdodD1gJHtvfSVgLGUuc2V0QXR0cmlidXRlKCJkYXRhLW1haW4tcm90YXRpb24iLCgzNjAtdCklMzYwKX1nZXQgX2NvbW1vbkFjdGlvbnMoKXtjb25zdCB0PSh0LGUsaSk9Pntjb25zdCBzPWkuZGV0YWlsW3RdLG49c1swXSxyPXMuc2xpY2UoMSk7aS50YXJnZXQuc3R5bGVbZV09QWlbYCR7bn1fSFRNTGBdKHIpLHRoaXMuYW5ub3RhdGlvblN0b3JhZ2Uuc2V0VmFsdWUodGhpcy5kYXRhLmlkLHtbZV06QWlbYCR7bn1fcmdiYF0ocil9KX07cmV0dXJuIEModGhpcywiX2NvbW1vbkFjdGlvbnMiLHtkaXNwbGF5OnQ9Pntjb25zdHtkaXNwbGF5OmV9PXQuZGV0YWlsLGk9ZSUyPT0xO3RoaXMuY29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHk9aT8iaGlkZGVuIjoidmlzaWJsZSIsdGhpcy5hbm5vdGF0aW9uU3RvcmFnZS5zZXRWYWx1ZSh0aGlzLmRhdGEuaWQse25vVmlldzppLG5vUHJpbnQ6MT09PWV8fDI9PT1lfSl9LHByaW50OnQ9Pnt0aGlzLmFubm90YXRpb25TdG9yYWdlLnNldFZhbHVlKHRoaXMuZGF0YS5pZCx7bm9QcmludDohdC5kZXRhaWwucHJpbnR9KX0saGlkZGVuOnQ9Pntjb25zdHtoaWRkZW46ZX09dC5kZXRhaWw7dGhpcy5jb250YWluZXIuc3R5bGUudmlzaWJpbGl0eT1lPyJoaWRkZW4iOiJ2aXNpYmxlIix0aGlzLmFubm90YXRpb25TdG9yYWdlLnNldFZhbHVlKHRoaXMuZGF0YS5pZCx7bm9QcmludDplLG5vVmlldzplfSl9LGZvY3VzOnQ9PntzZXRUaW1lb3V0KCgoKT0+dC50YXJnZXQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITF9KSksMCl9LHVzZXJOYW1lOnQ9Pnt0LnRhcmdldC50aXRsZT10LmRldGFpbC51c2VyTmFtZX0scmVhZG9ubHk6dD0+e3QudGFyZ2V0LmRpc2FibGVkPXQuZGV0YWlsLnJlYWRvbmx5fSxyZXF1aXJlZDp0PT57dGhpcy5fc2V0UmVxdWlyZWQodC50YXJnZXQsdC5kZXRhaWwucmVxdWlyZWQpfSxiZ0NvbG9yOmU9Pnt0KCJiZ0NvbG9yIiwiYmFja2dyb3VuZENvbG9yIixlKX0sZmlsbENvbG9yOmU9Pnt0KCJmaWxsQ29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLGUpfSxmZ0NvbG9yOmU9Pnt0KCJmZ0NvbG9yIiwiY29sb3IiLGUpfSx0ZXh0Q29sb3I6ZT0+e3QoInRleHRDb2xvciIsImNvbG9yIixlKX0sYm9yZGVyQ29sb3I6ZT0+e3QoImJvcmRlckNvbG9yIiwiYm9yZGVyQ29sb3IiLGUpfSxzdHJva2VDb2xvcjplPT57dCgic3Ryb2tlQ29sb3IiLCJib3JkZXJDb2xvciIsZSl9LHJvdGF0aW9uOnQ9Pntjb25zdCBlPXQuZGV0YWlsLnJvdGF0aW9uO3RoaXMuc2V0Um90YXRpb24oZSksdGhpcy5hbm5vdGF0aW9uU3RvcmFnZS5zZXRWYWx1ZSh0aGlzLmRhdGEuaWQse3JvdGF0aW9uOmV9KX19KX1fZGlzcGF0Y2hFdmVudEZyb21TYW5kYm94KHQsZSl7Y29uc3QgaT10aGlzLl9jb21tb25BY3Rpb25zO2Zvcihjb25zdCBzIG9mIE9iamVjdC5rZXlzKGUuZGV0YWlsKSl7Y29uc3Qgbj10W3NdfHxpW3NdO24/LihlKX19X3NldERlZmF1bHRQcm9wZXJ0aWVzRnJvbUpTKHQpe2lmKCF0aGlzLmVuYWJsZVNjcmlwdGluZylyZXR1cm47Y29uc3QgZT10aGlzLmFubm90YXRpb25TdG9yYWdlLmdldFJhd1ZhbHVlKHRoaXMuZGF0YS5pZCk7aWYoIWUpcmV0dXJuO2NvbnN0IGk9dGhpcy5fY29tbW9uQWN0aW9ucztmb3IoY29uc3RbcyxuXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCByPWlbc107ciYmKHIoe2RldGFpbDp7W3NdOm59LHRhcmdldDp0fSksZGVsZXRlIGVbc10pfX1fY3JlYXRlUXVhZHJpbGF0ZXJhbHMoKXtpZighdGhpcy5jb250YWluZXIpcmV0dXJuO2NvbnN0e3F1YWRQb2ludHM6dH09dGhpcy5kYXRhO2lmKCF0KXJldHVybjtjb25zdFtlLGkscyxuXT10aGlzLmRhdGEucmVjdC5tYXAoKHQ9Pk1hdGguZnJvdW5kKHQpKSk7aWYoOD09PXQubGVuZ3RoKXtjb25zdFtyLGEsbyxoXT10LnN1YmFycmF5KDIsNik7aWYocz09PXImJm49PT1hJiZlPT09byYmaT09PWgpcmV0dXJufWNvbnN0e3N0eWxlOnJ9PXRoaXMuY29udGFpbmVyO2xldCBhO2lmKHRoaXMuI3BzKXtjb25zdHtib3JkZXJDb2xvcjp0LGJvcmRlcldpZHRoOmV9PXI7ci5ib3JkZXJXaWR0aD0wLGE9WyJ1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCIsJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIicsJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB2aWV3Qm94PSIwIDAgMSAxIj4nLGA8ZyBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSIke3R9IiBzdHJva2Utd2lkdGg9IiR7ZX0iPmBdLHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc0JvcmRlciIpfWNvbnN0IG89cy1lLGg9bi1pLHtzdmdGYWN0b3J5Omx9PXRoaXMsYz1sLmNyZWF0ZUVsZW1lbnQoInN2ZyIpO2MuY2xhc3NMaXN0LmFkZCgicXVhZHJpbGF0ZXJhbHNDb250YWluZXIiKSxjLnNldEF0dHJpYnV0ZSgid2lkdGgiLDApLGMuc2V0QXR0cmlidXRlKCJoZWlnaHQiLDApO2NvbnN0IGQ9bC5jcmVhdGVFbGVtZW50KCJkZWZzIik7Yy5hcHBlbmQoZCk7Y29uc3QgdT1sLmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIikscD1gY2xpcHBhdGhfJHt0aGlzLmRhdGEuaWR9YDt1LnNldEF0dHJpYnV0ZSgiaWQiLHApLHUuc2V0QXR0cmlidXRlKCJjbGlwUGF0aFVuaXRzIiwib2JqZWN0Qm91bmRpbmdCb3giKSxkLmFwcGVuZCh1KTtmb3IobGV0IGk9MixzPXQubGVuZ3RoO2k8cztpKz04KXtjb25zdCBzPXRbaV0scj10W2krMV0sYz10W2krMl0sZD10W2krM10scD1sLmNyZWF0ZUVsZW1lbnQoInJlY3QiKSxnPShjLWUpL28sZj0obi1yKS9oLG09KHMtYykvbyxiPShyLWQpL2g7cC5zZXRBdHRyaWJ1dGUoIngiLGcpLHAuc2V0QXR0cmlidXRlKCJ5IixmKSxwLnNldEF0dHJpYnV0ZSgid2lkdGgiLG0pLHAuc2V0QXR0cmlidXRlKCJoZWlnaHQiLGIpLHUuYXBwZW5kKHApLGE/LnB1c2goYDxyZWN0IHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgeD0iJHtnfSIgeT0iJHtmfSIgd2lkdGg9IiR7bX0iIGhlaWdodD0iJHtifSIvPmApfXRoaXMuI3BzJiYoYS5wdXNoKCI8L2c+PC9zdmc+JykiKSxyLmJhY2tncm91bmRJbWFnZT1hLmpvaW4oIiIpKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQoYyksdGhpcy5jb250YWluZXIuc3R5bGUuY2xpcFBhdGg9YHVybCgjJHtwfSlgfV9jcmVhdGVQb3B1cCgpe2NvbnN0e2NvbnRhaW5lcjp0LGRhdGE6ZX09dGhpczt0LnNldEF0dHJpYnV0ZSgiYXJpYS1oYXNwb3B1cCIsImRpYWxvZyIpO2NvbnN0IGk9dGhpcy4jZ3M9bmV3IE9pKHtkYXRhOntjb2xvcjplLmNvbG9yLHRpdGxlT2JqOmUudGl0bGVPYmosbW9kaWZpY2F0aW9uRGF0ZTplLm1vZGlmaWNhdGlvbkRhdGUsY29udGVudHNPYmo6ZS5jb250ZW50c09iaixyaWNoVGV4dDplLnJpY2hUZXh0LHBhcmVudFJlY3Q6ZS5yZWN0LGJvcmRlclN0eWxlOjAsaWQ6YHBvcHVwXyR7ZS5pZH1gLHJvdGF0aW9uOmUucm90YXRpb259LHBhcmVudDp0aGlzLnBhcmVudCxlbGVtZW50czpbdGhpc119KTt0aGlzLnBhcmVudC5kaXYuYXBwZW5kKGkucmVuZGVyKCkpfXJlbmRlcigpe3goIkFic3RyYWN0IG1ldGhvZCBgQW5ub3RhdGlvbkVsZW1lbnQucmVuZGVyYCBjYWxsZWQiKX1fZ2V0RWxlbWVudHNCeU5hbWUodCxlPW51bGwpe2NvbnN0IGk9W107aWYodGhpcy5fZmllbGRPYmplY3RzKXtjb25zdCBzPXRoaXMuX2ZpZWxkT2JqZWN0c1t0XTtpZihzKWZvcihjb25zdHtwYWdlOnQsaWQ6bixleHBvcnRWYWx1ZXM6cn1vZiBzKXtpZigtMT09PXQpY29udGludWU7aWYobj09PWUpY29udGludWU7Y29uc3Qgcz0ic3RyaW5nIj09dHlwZW9mIHI/cjpudWxsLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtZWxlbWVudC1pZD0iJHtufSJdYCk7IWF8fF9pLmhhcyhhKT9pLnB1c2goe2lkOm4sZXhwb3J0VmFsdWU6cyxkb21FbGVtZW50OmF9KTp3KGBfZ2V0RWxlbWVudHNCeU5hbWUgLSBlbGVtZW50IG5vdCBhbGxvd2VkOiAke259YCl9cmV0dXJuIGl9Zm9yKGNvbnN0IHMgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUodCkpe2NvbnN0e2V4cG9ydFZhbHVlOnR9PXMsbj1zLmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtZW50LWlkIik7biE9PWUmJl9pLmhhcyhzKSYmaS5wdXNoKHtpZDpuLGV4cG9ydFZhbHVlOnQsZG9tRWxlbWVudDpzfSl9cmV0dXJuIGl9c2hvdygpe3RoaXMuY29udGFpbmVyJiYodGhpcy5jb250YWluZXIuaGlkZGVuPSExKSx0aGlzLnBvcHVwPy5tYXliZVNob3coKX1oaWRlKCl7dGhpcy5jb250YWluZXImJih0aGlzLmNvbnRhaW5lci5oaWRkZW49ITApLHRoaXMucG9wdXA/LmZvcmNlSGlkZSgpfWdldEVsZW1lbnRzVG9UcmlnZ2VyUG9wdXAoKXtyZXR1cm4gdGhpcy5jb250YWluZXJ9YWRkSGlnaGxpZ2h0QXJlYSgpe2NvbnN0IHQ9dGhpcy5nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCk7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgZSBvZiB0KWUuY2xhc3NMaXN0LmFkZCgiaGlnaGxpZ2h0QXJlYSIpO2Vsc2UgdC5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9X2VkaXRPbkRvdWJsZUNsaWNrKCl7aWYoIXRoaXMuX2lzRWRpdGFibGUpcmV0dXJuO2NvbnN0e2Fubm90YXRpb25FZGl0b3JUeXBlOnQsZGF0YTp7aWQ6ZX19PXRoaXM7dGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCgoKT0+e3RoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJzd2l0Y2hhbm5vdGF0aW9uZWRpdG9ybW9kZSIse3NvdXJjZTp0aGlzLG1vZGU6dCxlZGl0SWQ6ZX0pfSkpfX1jbGFzcyBUaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQsZT1udWxsKXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEhZT8uaWdub3JlQm9yZGVyLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSksdGhpcy5pc1Rvb2x0aXBPbmx5PXQuZGF0YS5pc1Rvb2x0aXBPbmx5fXJlbmRlcigpe2NvbnN0e2RhdGE6dCxsaW5rU2VydmljZTplfT10aGlzLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2kuc2V0QXR0cmlidXRlKCJkYXRhLWVsZW1lbnQtaWQiLHQuaWQpO2xldCBzPSExO3JldHVybiB0LnVybD8oZS5hZGRMaW5rQXR0cmlidXRlcyhpLHQudXJsLHQubmV3V2luZG93KSxzPSEwKTp0LmFjdGlvbj8odGhpcy5fYmluZE5hbWVkQWN0aW9uKGksdC5hY3Rpb24pLHM9ITApOnQuYXR0YWNobWVudD8odGhpcy4jbXMoaSx0LmF0dGFjaG1lbnQsdC5hdHRhY2htZW50RGVzdCkscz0hMCk6dC5zZXRPQ0dTdGF0ZT8odGhpcy4jYnMoaSx0LnNldE9DR1N0YXRlKSxzPSEwKTp0LmRlc3Q/KHRoaXMuX2JpbmRMaW5rKGksdC5kZXN0KSxzPSEwKToodC5hY3Rpb25zJiYodC5hY3Rpb25zLkFjdGlvbnx8dC5hY3Rpb25zWyJNb3VzZSBVcCJdfHx0LmFjdGlvbnNbIk1vdXNlIERvd24iXSkmJnRoaXMuZW5hYmxlU2NyaXB0aW5nJiZ0aGlzLmhhc0pTQWN0aW9ucyYmKHRoaXMuX2JpbmRKU0FjdGlvbihpLHQpLHM9ITApLHQucmVzZXRGb3JtPyh0aGlzLl9iaW5kUmVzZXRGb3JtQWN0aW9uKGksdC5yZXNldEZvcm0pLHM9ITApOnRoaXMuaXNUb29sdGlwT25seSYmIXMmJih0aGlzLl9iaW5kTGluayhpLCIiKSxzPSEwKSksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibGlua0Fubm90YXRpb24iKSxzJiZ0aGlzLmNvbnRhaW5lci5hcHBlbmQoaSksdGhpcy5jb250YWluZXJ9I3ZzKCl7dGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCJkYXRhLWludGVybmFsLWxpbmsiLCIiKX1fYmluZExpbmsodCxlKXt0LmhyZWY9dGhpcy5saW5rU2VydmljZS5nZXREZXN0aW5hdGlvbkhhc2goZSksdC5vbmNsaWNrPSgpPT4oZSYmdGhpcy5saW5rU2VydmljZS5nb1RvRGVzdGluYXRpb24oZSksITEpLChlfHwiIj09PWUpJiZ0aGlzLiN2cygpfV9iaW5kTmFtZWRBY3Rpb24odCxlKXt0LmhyZWY9dGhpcy5saW5rU2VydmljZS5nZXRBbmNob3JVcmwoIiIpLHQub25jbGljaz0oKT0+KHRoaXMubGlua1NlcnZpY2UuZXhlY3V0ZU5hbWVkQWN0aW9uKGUpLCExKSx0aGlzLiN2cygpfSNtcyh0LGUsaT1udWxsKXt0LmhyZWY9dGhpcy5saW5rU2VydmljZS5nZXRBbmNob3JVcmwoIiIpLGUuZGVzY3JpcHRpb24mJih0LnRpdGxlPWUuZGVzY3JpcHRpb24pLHQub25jbGljaz0oKT0+KHRoaXMuZG93bmxvYWRNYW5hZ2VyPy5vcGVuT3JEb3dubG9hZERhdGEoZS5jb250ZW50LGUuZmlsZW5hbWUsaSksITEpLHRoaXMuI3ZzKCl9I2JzKHQsZSl7dC5ocmVmPXRoaXMubGlua1NlcnZpY2UuZ2V0QW5jaG9yVXJsKCIiKSx0Lm9uY2xpY2s9KCk9Pih0aGlzLmxpbmtTZXJ2aWNlLmV4ZWN1dGVTZXRPQ0dTdGF0ZShlKSwhMSksdGhpcy4jdnMoKX1fYmluZEpTQWN0aW9uKHQsZSl7dC5ocmVmPXRoaXMubGlua1NlcnZpY2UuZ2V0QW5jaG9yVXJsKCIiKTtjb25zdCBpPW5ldyBNYXAoW1siQWN0aW9uIiwib25jbGljayJdLFsiTW91c2UgVXAiLCJvbm1vdXNldXAiXSxbIk1vdXNlIERvd24iLCJvbm1vdXNlZG93biJdXSk7Zm9yKGNvbnN0IHMgb2YgT2JqZWN0LmtleXMoZS5hY3Rpb25zKSl7Y29uc3Qgbj1pLmdldChzKTtuJiYodFtuXT0oKT0+KHRoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJkaXNwYXRjaGV2ZW50aW5zYW5kYm94Iix7c291cmNlOnRoaXMsZGV0YWlsOntpZDplLmlkLG5hbWU6c319KSwhMSkpfXQub25jbGlja3x8KHQub25jbGljaz0oKT0+ITEpLHRoaXMuI3ZzKCl9X2JpbmRSZXNldEZvcm1BY3Rpb24odCxlKXtjb25zdCBpPXQub25jbGljaztpZihpfHwodC5ocmVmPXRoaXMubGlua1NlcnZpY2UuZ2V0QW5jaG9yVXJsKCIiKSksdGhpcy4jdnMoKSwhdGhpcy5fZmllbGRPYmplY3RzKXJldHVybiB3KCdfYmluZFJlc2V0Rm9ybUFjdGlvbiAtICJyZXNldEZvcm0iIGFjdGlvbiBub3Qgc3VwcG9ydGVkLCBlbnN1cmUgdGhhdCB0aGUgYGZpZWxkT2JqZWN0c2AgcGFyYW1ldGVyIGlzIHByb3ZpZGVkLicpLHZvaWQoaXx8KHQub25jbGljaz0oKT0+ITEpKTt0Lm9uY2xpY2s9KCk9PntpPy4oKTtjb25zdHtmaWVsZHM6dCxyZWZzOnMsaW5jbHVkZTpufT1lLHI9W107aWYoMCE9PXQubGVuZ3RofHwwIT09cy5sZW5ndGgpe2NvbnN0IGU9bmV3IFNldChzKTtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCB0PXRoaXMuX2ZpZWxkT2JqZWN0c1tpXXx8W107Zm9yKGNvbnN0e2lkOml9b2YgdCllLmFkZChpKX1mb3IoY29uc3QgdCBvZiBPYmplY3QudmFsdWVzKHRoaXMuX2ZpZWxkT2JqZWN0cykpZm9yKGNvbnN0IGkgb2YgdCllLmhhcyhpLmlkKT09PW4mJnIucHVzaChpKX1lbHNlIGZvcihjb25zdCB0IG9mIE9iamVjdC52YWx1ZXModGhpcy5fZmllbGRPYmplY3RzKSlyLnB1c2goLi4udCk7Y29uc3QgYT10aGlzLmFubm90YXRpb25TdG9yYWdlLG89W107Zm9yKGNvbnN0IHQgb2Ygcil7Y29uc3R7aWQ6ZX09dDtzd2l0Y2goby5wdXNoKGUpLHQudHlwZSl7Y2FzZSJ0ZXh0Ijp7Y29uc3QgaT10LmRlZmF1bHRWYWx1ZXx8IiI7YS5zZXRWYWx1ZShlLHt2YWx1ZTppfSk7YnJlYWt9Y2FzZSJjaGVja2JveCI6Y2FzZSJyYWRpb2J1dHRvbiI6e2NvbnN0IGk9dC5kZWZhdWx0VmFsdWU9PT10LmV4cG9ydFZhbHVlczthLnNldFZhbHVlKGUse3ZhbHVlOml9KTticmVha31jYXNlImNvbWJvYm94IjpjYXNlImxpc3Rib3giOntjb25zdCBpPXQuZGVmYXVsdFZhbHVlfHwiIjthLnNldFZhbHVlKGUse3ZhbHVlOml9KTticmVha31kZWZhdWx0OmNvbnRpbnVlfWNvbnN0IGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtZWxlbWVudC1pZD0iJHtlfSJdYCk7aSYmKF9pLmhhcyhpKT9pLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNldGZvcm0iKSk6dyhgX2JpbmRSZXNldEZvcm1BY3Rpb24gLSBlbGVtZW50IG5vdCBhbGxvd2VkOiAke2V9YCkpfXJldHVybiB0aGlzLmVuYWJsZVNjcmlwdGluZyYmdGhpcy5saW5rU2VydmljZS5ldmVudEJ1cz8uZGlzcGF0Y2goImRpc3BhdGNoZXZlbnRpbnNhbmRib3giLHtzb3VyY2U6dGhpcyxkZXRhaWw6e2lkOiJhcHAiLGlkczpvLG5hbWU6IlJlc2V0Rm9ybSJ9fSksITF9fX1jbGFzcyBNaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMH0pfXJlbmRlcigpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInRleHRBbm5vdGF0aW9uIik7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtyZXR1cm4gdC5zcmM9dGhpcy5pbWFnZVJlc291cmNlc1BhdGgrImFubm90YXRpb24tIit0aGlzLmRhdGEubmFtZS50b0xvd2VyQ2FzZSgpKyIuc3ZnIix0LnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIiwicGRmanMtdGV4dC1hbm5vdGF0aW9uLXR5cGUiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWFyZ3MiLEpTT04uc3RyaW5naWZ5KHt0eXBlOnRoaXMuZGF0YS5uYW1lfSkpLCF0aGlzLmRhdGEucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhJiZ0aGlzLl9jcmVhdGVQb3B1cCgpLHRoaXMuY29udGFpbmVyLmFwcGVuZCh0KSx0aGlzLmNvbnRhaW5lcn19Y2xhc3Mga2kgZXh0ZW5kcyBTaXtyZW5kZXIoKXtyZXR1cm4gdGhpcy5jb250YWluZXJ9c2hvd0VsZW1lbnRBbmRIaWRlQ2FudmFzKHQpe3RoaXMuZGF0YS5oYXNPd25DYW52YXMmJigiQ0FOVkFTIj09PXQucHJldmlvdXNTaWJsaW5nPy5ub2RlTmFtZSYmKHQucHJldmlvdXNTaWJsaW5nLmhpZGRlbj0hMCksdC5oaWRkZW49ITEpfV9nZXRLZXlNb2RpZmllcih0KXtyZXR1cm4gTi5wbGF0Zm9ybS5pc01hYz90Lm1ldGFLZXk6dC5jdHJsS2V5fV9zZXRFdmVudExpc3RlbmVyKHQsZSxpLHMsbil7aS5pbmNsdWRlcygibW91c2UiKT90LmFkZEV2ZW50TGlzdGVuZXIoaSwodD0+e3RoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJkaXNwYXRjaGV2ZW50aW5zYW5kYm94Iix7c291cmNlOnRoaXMsZGV0YWlsOntpZDp0aGlzLmRhdGEuaWQsbmFtZTpzLHZhbHVlOm4odCksc2hpZnQ6dC5zaGlmdEtleSxtb2RpZmllcjp0aGlzLl9nZXRLZXlNb2RpZmllcih0KX19KX0pKTp0LmFkZEV2ZW50TGlzdGVuZXIoaSwodD0+e2lmKCJibHVyIj09PWkpe2lmKCFlLmZvY3VzZWR8fCF0LnJlbGF0ZWRUYXJnZXQpcmV0dXJuO2UuZm9jdXNlZD0hMX1lbHNlIGlmKCJmb2N1cyI9PT1pKXtpZihlLmZvY3VzZWQpcmV0dXJuO2UuZm9jdXNlZD0hMH1uJiZ0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6dGhpcy5kYXRhLmlkLG5hbWU6cyx2YWx1ZTpuKHQpfX0pfSkpfV9zZXRFdmVudExpc3RlbmVycyh0LGUsaSxzKXtmb3IoY29uc3RbbixyXW9mIGkpKCJBY3Rpb24iPT09cnx8dGhpcy5kYXRhLmFjdGlvbnM/LltyXSkmJigiRm9jdXMiIT09ciYmIkJsdXIiIT09cnx8KGV8fD17Zm9jdXNlZDohMX0pLHRoaXMuX3NldEV2ZW50TGlzdGVuZXIodCxlLG4scixzKSwiRm9jdXMiIT09cnx8dGhpcy5kYXRhLmFjdGlvbnM/LkJsdXI/IkJsdXIiIT09cnx8dGhpcy5kYXRhLmFjdGlvbnM/LkZvY3VzfHx0aGlzLl9zZXRFdmVudExpc3RlbmVyKHQsZSwiZm9jdXMiLCJGb2N1cyIsbnVsbCk6dGhpcy5fc2V0RXZlbnRMaXN0ZW5lcih0LGUsImJsdXIiLCJCbHVyIixudWxsKSl9X3NldEJhY2tncm91bmRDb2xvcih0KXtjb25zdCBlPXRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3J8fG51bGw7dC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9bnVsbD09PWU/InRyYW5zcGFyZW50Ijp6Lm1ha2VIZXhDb2xvcihlWzBdLGVbMV0sZVsyXSl9X3NldFRleHRTdHlsZSh0KXtjb25zdHtmb250Q29sb3I6ZX09dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YSxpPXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udFNpemV8fDkscz10LnN0eWxlO2xldCBuO2NvbnN0IHI9dD0+TWF0aC5yb3VuZCgxMCp0KS8xMDtpZih0aGlzLmRhdGEubXVsdGlMaW5lKXtjb25zdCB0PU1hdGguYWJzKHRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLTIpLGU9dC8oTWF0aC5yb3VuZCh0LyhvKmkpKXx8MSk7bj1NYXRoLm1pbihpLHIoZS9vKSl9ZWxzZXtjb25zdCB0PU1hdGguYWJzKHRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLTIpO249TWF0aC5taW4oaSxyKHQvbykpfXMuZm9udFNpemU9YGNhbGMoJHtufXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSlgLHMuY29sb3I9ei5tYWtlSGV4Q29sb3IoZVswXSxlWzFdLGVbMl0pLG51bGwhPT10aGlzLmRhdGEudGV4dEFsaWdubWVudCYmKHMudGV4dEFsaWduPVsibGVmdCIsImNlbnRlciIsInJpZ2h0Il1bdGhpcy5kYXRhLnRleHRBbGlnbm1lbnRdKX1fc2V0UmVxdWlyZWQodCxlKXtlP3Quc2V0QXR0cmlidXRlKCJyZXF1aXJlZCIsITApOnQucmVtb3ZlQXR0cmlidXRlKCJyZXF1aXJlZCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLXJlcXVpcmVkIixlKX19Y2xhc3MgSWkgZXh0ZW5kcyBraXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6dC5yZW5kZXJGb3Jtc3x8dC5kYXRhLmhhc093bkNhbnZhc3x8IXQuZGF0YS5oYXNBcHBlYXJhbmNlJiYhIXQuZGF0YS5maWVsZFZhbHVlfSl9c2V0UHJvcGVydHlPblNpYmxpbmdzKHQsZSxpLHMpe2NvbnN0IG49dGhpcy5hbm5vdGF0aW9uU3RvcmFnZTtmb3IoY29uc3QgciBvZiB0aGlzLl9nZXRFbGVtZW50c0J5TmFtZSh0Lm5hbWUsdC5pZCkpci5kb21FbGVtZW50JiYoci5kb21FbGVtZW50W2VdPWkpLG4uc2V0VmFsdWUoci5pZCx7W3NdOml9KX1yZW5kZXIoKXtjb25zdCB0PXRoaXMuYW5ub3RhdGlvblN0b3JhZ2UsZT10aGlzLmRhdGEuaWQ7dGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgidGV4dFdpZGdldEFubm90YXRpb24iKTtsZXQgaT1udWxsO2lmKHRoaXMucmVuZGVyRm9ybXMpe2NvbnN0IHM9dC5nZXRWYWx1ZShlLHt2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZX0pO2xldCBuPXMudmFsdWV8fCIiO2NvbnN0IHI9dC5nZXRWYWx1ZShlLHtjaGFyTGltaXQ6dGhpcy5kYXRhLm1heExlbn0pLmNoYXJMaW1pdDtyJiZuLmxlbmd0aD5yJiYobj1uLnNsaWNlKDAscikpO2xldCBhPXMuZm9ybWF0dGVkVmFsdWV8fHRoaXMuZGF0YS50ZXh0Q29udGVudD8uam9pbigiXG4iKXx8bnVsbDthJiZ0aGlzLmRhdGEuY29tYiYmKGE9YS5yZXBsYWNlQWxsKC9ccysvZywiIikpO2NvbnN0IG89e3VzZXJWYWx1ZTpuLGZvcm1hdHRlZFZhbHVlOmEsbGFzdENvbW1pdHRlZFZhbHVlOm51bGwsY29tbWl0S2V5OjEsZm9jdXNlZDohMX07dGhpcy5kYXRhLm11bHRpTGluZT8oaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLGkudGV4dENvbnRlbnQ9YT8/bix0aGlzLmRhdGEuZG9Ob3RTY3JvbGwmJihpLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIikpOihpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaS50eXBlPSJ0ZXh0IixpLnNldEF0dHJpYnV0ZSgidmFsdWUiLGE/P24pLHRoaXMuZGF0YS5kb05vdFNjcm9sbCYmKGkuc3R5bGUub3ZlcmZsb3dYPSJoaWRkZW4iKSksdGhpcy5kYXRhLmhhc093bkNhbnZhcyYmKGkuaGlkZGVuPSEwKSxfaS5hZGQoaSksaS5zZXRBdHRyaWJ1dGUoImRhdGEtZWxlbWVudC1pZCIsZSksaS5kaXNhYmxlZD10aGlzLmRhdGEucmVhZE9ubHksaS5uYW1lPXRoaXMuZGF0YS5maWVsZE5hbWUsaS50YWJJbmRleD14aSx0aGlzLl9zZXRSZXF1aXJlZChpLHRoaXMuZGF0YS5yZXF1aXJlZCksciYmKGkubWF4TGVuZ3RoPXIpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLChzPT57dC5zZXRWYWx1ZShlLHt2YWx1ZTpzLnRhcmdldC52YWx1ZX0pLHRoaXMuc2V0UHJvcGVydHlPblNpYmxpbmdzKGksInZhbHVlIixzLnRhcmdldC52YWx1ZSwidmFsdWUiKSxvLmZvcm1hdHRlZFZhbHVlPW51bGx9KSksaS5hZGRFdmVudExpc3RlbmVyKCJyZXNldGZvcm0iLCh0PT57Y29uc3QgZT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU/PyIiO2kudmFsdWU9by51c2VyVmFsdWU9ZSxvLmZvcm1hdHRlZFZhbHVlPW51bGx9KSk7bGV0IGg9dD0+e2NvbnN0e2Zvcm1hdHRlZFZhbHVlOmV9PW87bnVsbCE9ZSYmKHQudGFyZ2V0LnZhbHVlPWUpLHQudGFyZ2V0LnNjcm9sbExlZnQ9MH07aWYodGhpcy5lbmFibGVTY3JpcHRpbmcmJnRoaXMuaGFzSlNBY3Rpb25zKXtpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwodD0+e2lmKG8uZm9jdXNlZClyZXR1cm47Y29uc3R7dGFyZ2V0OmV9PXQ7by51c2VyVmFsdWUmJihlLnZhbHVlPW8udXNlclZhbHVlKSxvLmxhc3RDb21taXR0ZWRWYWx1ZT1lLnZhbHVlLG8uY29tbWl0S2V5PTEsdGhpcy5kYXRhLmFjdGlvbnM/LkZvY3VzfHwoby5mb2N1c2VkPSEwKX0pKSxpLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZyb21zYW5kYm94IiwoaT0+e3RoaXMuc2hvd0VsZW1lbnRBbmRIaWRlQ2FudmFzKGkudGFyZ2V0KTtjb25zdCBzPXt2YWx1ZShpKXtvLnVzZXJWYWx1ZT1pLmRldGFpbC52YWx1ZT8/IiIsdC5zZXRWYWx1ZShlLHt2YWx1ZTpvLnVzZXJWYWx1ZS50b1N0cmluZygpfSksaS50YXJnZXQudmFsdWU9by51c2VyVmFsdWV9LGZvcm1hdHRlZFZhbHVlKGkpe2NvbnN0e2Zvcm1hdHRlZFZhbHVlOnN9PWkuZGV0YWlsO28uZm9ybWF0dGVkVmFsdWU9cyxudWxsIT1zJiZpLnRhcmdldCE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihpLnRhcmdldC52YWx1ZT1zKSx0LnNldFZhbHVlKGUse2Zvcm1hdHRlZFZhbHVlOnN9KX0sc2VsUmFuZ2UodCl7dC50YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2UoLi4udC5kZXRhaWwuc2VsUmFuZ2UpfSxjaGFyTGltaXQ6aT0+e2NvbnN0e2NoYXJMaW1pdDpzfT1pLmRldGFpbCx7dGFyZ2V0Om59PWk7aWYoMD09PXMpcmV0dXJuIHZvaWQgbi5yZW1vdmVBdHRyaWJ1dGUoIm1heExlbmd0aCIpO24uc2V0QXR0cmlidXRlKCJtYXhMZW5ndGgiLHMpO2xldCByPW8udXNlclZhbHVlOyFyfHxyLmxlbmd0aDw9c3x8KHI9ci5zbGljZSgwLHMpLG4udmFsdWU9by51c2VyVmFsdWU9cix0LnNldFZhbHVlKGUse3ZhbHVlOnJ9KSx0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6ZSxuYW1lOiJLZXlzdHJva2UiLHZhbHVlOnIsd2lsbENvbW1pdDohMCxjb21taXRLZXk6MSxzZWxTdGFydDpuLnNlbGVjdGlvblN0YXJ0LHNlbEVuZDpuLnNlbGVjdGlvbkVuZH19KSl9fTt0aGlzLl9kaXNwYXRjaEV2ZW50RnJvbVNhbmRib3gocyxpKX0pKSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCh0PT57by5jb21taXRLZXk9MTtsZXQgaT0tMTtpZigiRXNjYXBlIj09PXQua2V5P2k9MDoiRW50ZXIiIT09dC5rZXl8fHRoaXMuZGF0YS5tdWx0aUxpbmU/IlRhYiI9PT10LmtleSYmKG8uY29tbWl0S2V5PTMpOmk9MiwtMT09PWkpcmV0dXJuO2NvbnN0e3ZhbHVlOnN9PXQudGFyZ2V0O28ubGFzdENvbW1pdHRlZFZhbHVlIT09cyYmKG8ubGFzdENvbW1pdHRlZFZhbHVlPXMsby51c2VyVmFsdWU9cyx0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6ZSxuYW1lOiJLZXlzdHJva2UiLHZhbHVlOnMsd2lsbENvbW1pdDohMCxjb21taXRLZXk6aSxzZWxTdGFydDp0LnRhcmdldC5zZWxlY3Rpb25TdGFydCxzZWxFbmQ6dC50YXJnZXQuc2VsZWN0aW9uRW5kfX0pKX0pKTtjb25zdCBzPWg7aD1udWxsLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKHQ9PntpZighby5mb2N1c2VkfHwhdC5yZWxhdGVkVGFyZ2V0KXJldHVybjt0aGlzLmRhdGEuYWN0aW9ucz8uQmx1cnx8KG8uZm9jdXNlZD0hMSk7Y29uc3R7dmFsdWU6aX09dC50YXJnZXQ7by51c2VyVmFsdWU9aSxvLmxhc3RDb21taXR0ZWRWYWx1ZSE9PWkmJnRoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJkaXNwYXRjaGV2ZW50aW5zYW5kYm94Iix7c291cmNlOnRoaXMsZGV0YWlsOntpZDplLG5hbWU6IktleXN0cm9rZSIsdmFsdWU6aSx3aWxsQ29tbWl0OiEwLGNvbW1pdEtleTpvLmNvbW1pdEtleSxzZWxTdGFydDp0LnRhcmdldC5zZWxlY3Rpb25TdGFydCxzZWxFbmQ6dC50YXJnZXQuc2VsZWN0aW9uRW5kfX0pLHModCl9KSksdGhpcy5kYXRhLmFjdGlvbnM/LktleXN0cm9rZSYmaS5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnB1dCIsKHQ9PntvLmxhc3RDb21taXR0ZWRWYWx1ZT1udWxsO2NvbnN0e2RhdGE6aSx0YXJnZXQ6c309dCx7dmFsdWU6bixzZWxlY3Rpb25TdGFydDpyLHNlbGVjdGlvbkVuZDphfT1zO2xldCBoPXIsbD1hO3N3aXRjaCh0LmlucHV0VHlwZSl7Y2FzZSJkZWxldGVXb3JkQmFja3dhcmQiOntjb25zdCB0PW4uc3Vic3RyaW5nKDAscikubWF0Y2goL1x3KlteXHddKiQvKTt0JiYoaC09dFswXS5sZW5ndGgpO2JyZWFrfWNhc2UiZGVsZXRlV29yZEZvcndhcmQiOntjb25zdCB0PW4uc3Vic3RyaW5nKHIpLm1hdGNoKC9eW15cd10qXHcqLyk7dCYmKGwrPXRbMF0ubGVuZ3RoKTticmVha31jYXNlImRlbGV0ZUNvbnRlbnRCYWNrd2FyZCI6cj09PWEmJihoLT0xKTticmVhaztjYXNlImRlbGV0ZUNvbnRlbnRGb3J3YXJkIjpyPT09YSYmKGwrPTEpfXQucHJldmVudERlZmF1bHQoKSx0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6ZSxuYW1lOiJLZXlzdHJva2UiLHZhbHVlOm4sY2hhbmdlOml8fCIiLHdpbGxDb21taXQ6ITEsc2VsU3RhcnQ6aCxzZWxFbmQ6bH19KX0pKSx0aGlzLl9zZXRFdmVudExpc3RlbmVycyhpLG8sW1siZm9jdXMiLCJGb2N1cyJdLFsiYmx1ciIsIkJsdXIiXSxbIm1vdXNlZG93biIsIk1vdXNlIERvd24iXSxbIm1vdXNlZW50ZXIiLCJNb3VzZSBFbnRlciJdLFsibW91c2VsZWF2ZSIsIk1vdXNlIEV4aXQiXSxbIm1vdXNldXAiLCJNb3VzZSBVcCJdXSwodD0+dC50YXJnZXQudmFsdWUpKX1pZihoJiZpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGgpLHRoaXMuZGF0YS5jb21iKXtjb25zdCB0PSh0aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSkvcjtpLmNsYXNzTGlzdC5hZGQoImNvbWIiKSxpLnN0eWxlLmxldHRlclNwYWNpbmc9YGNhbGMoJHt0fXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSAtIDFjaClgfX1lbHNlIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaS50ZXh0Q29udGVudD10aGlzLmRhdGEuZmllbGRWYWx1ZSxpLnN0eWxlLnZlcnRpY2FsQWxpZ249Im1pZGRsZSIsaS5zdHlsZS5kaXNwbGF5PSJ0YWJsZS1jZWxsIix0aGlzLmRhdGEuaGFzT3duQ2FudmFzJiYoaS5oaWRkZW49ITApO3JldHVybiB0aGlzLl9zZXRUZXh0U3R5bGUoaSksdGhpcy5fc2V0QmFja2dyb3VuZENvbG9yKGkpLHRoaXMuX3NldERlZmF1bHRQcm9wZXJ0aWVzRnJvbUpTKGkpLHRoaXMuY29udGFpbmVyLmFwcGVuZChpKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgUmkgZXh0ZW5kcyBraXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ISF0LmRhdGEuaGFzT3duQ2FudmFzfSl9fWNsYXNzIFBpIGV4dGVuZHMga2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOnQucmVuZGVyRm9ybXN9KX1yZW5kZXIoKXtjb25zdCB0PXRoaXMuYW5ub3RhdGlvblN0b3JhZ2UsZT10aGlzLmRhdGEsaT1lLmlkO2xldCBzPXQuZ2V0VmFsdWUoaSx7dmFsdWU6ZS5leHBvcnRWYWx1ZT09PWUuZmllbGRWYWx1ZX0pLnZhbHVlOyJzdHJpbmciPT10eXBlb2YgcyYmKHM9Ik9mZiIhPT1zLHQuc2V0VmFsdWUoaSx7dmFsdWU6c30pKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJidXR0b25XaWRnZXRBbm5vdGF0aW9uIiwiY2hlY2tCb3giKTtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIF9pLmFkZChuKSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1lbGVtZW50LWlkIixpKSxuLmRpc2FibGVkPWUucmVhZE9ubHksdGhpcy5fc2V0UmVxdWlyZWQobix0aGlzLmRhdGEucmVxdWlyZWQpLG4udHlwZT0iY2hlY2tib3giLG4ubmFtZT1lLmZpZWxkTmFtZSxzJiZuLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsITApLG4uc2V0QXR0cmlidXRlKCJleHBvcnRWYWx1ZSIsZS5leHBvcnRWYWx1ZSksbi50YWJJbmRleD14aSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHM9Pntjb25zdHtuYW1lOm4sY2hlY2tlZDpyfT1zLnRhcmdldDtmb3IoY29uc3QgcyBvZiB0aGlzLl9nZXRFbGVtZW50c0J5TmFtZShuLGkpKXtjb25zdCBpPXImJnMuZXhwb3J0VmFsdWU9PT1lLmV4cG9ydFZhbHVlO3MuZG9tRWxlbWVudCYmKHMuZG9tRWxlbWVudC5jaGVja2VkPWkpLHQuc2V0VmFsdWUocy5pZCx7dmFsdWU6aX0pfXQuc2V0VmFsdWUoaSx7dmFsdWU6cn0pfSkpLG4uYWRkRXZlbnRMaXN0ZW5lcigicmVzZXRmb3JtIiwodD0+e2NvbnN0IGk9ZS5kZWZhdWx0RmllbGRWYWx1ZXx8Ik9mZiI7dC50YXJnZXQuY2hlY2tlZD1pPT09ZS5leHBvcnRWYWx1ZX0pKSx0aGlzLmVuYWJsZVNjcmlwdGluZyYmdGhpcy5oYXNKU0FjdGlvbnMmJihuLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZyb21zYW5kYm94IiwoZT0+e2NvbnN0IHM9e3ZhbHVlKGUpe2UudGFyZ2V0LmNoZWNrZWQ9Ik9mZiIhPT1lLmRldGFpbC52YWx1ZSx0LnNldFZhbHVlKGkse3ZhbHVlOmUudGFyZ2V0LmNoZWNrZWR9KX19O3RoaXMuX2Rpc3BhdGNoRXZlbnRGcm9tU2FuZGJveChzLGUpfSkpLHRoaXMuX3NldEV2ZW50TGlzdGVuZXJzKG4sbnVsbCxbWyJjaGFuZ2UiLCJWYWxpZGF0ZSJdLFsiY2hhbmdlIiwiQWN0aW9uIl0sWyJmb2N1cyIsIkZvY3VzIl0sWyJibHVyIiwiQmx1ciJdLFsibW91c2Vkb3duIiwiTW91c2UgRG93biJdLFsibW91c2VlbnRlciIsIk1vdXNlIEVudGVyIl0sWyJtb3VzZWxlYXZlIiwiTW91c2UgRXhpdCJdLFsibW91c2V1cCIsIk1vdXNlIFVwIl1dLCh0PT50LnRhcmdldC5jaGVja2VkKSkpLHRoaXMuX3NldEJhY2tncm91bmRDb2xvcihuKSx0aGlzLl9zZXREZWZhdWx0UHJvcGVydGllc0Zyb21KUyhuKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQobiksdGhpcy5jb250YWluZXJ9fWNsYXNzIERpIGV4dGVuZHMga2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOnQucmVuZGVyRm9ybXN9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJidXR0b25XaWRnZXRBbm5vdGF0aW9uIiwicmFkaW9CdXR0b24iKTtjb25zdCB0PXRoaXMuYW5ub3RhdGlvblN0b3JhZ2UsZT10aGlzLmRhdGEsaT1lLmlkO2xldCBzPXQuZ2V0VmFsdWUoaSx7dmFsdWU6ZS5maWVsZFZhbHVlPT09ZS5idXR0b25WYWx1ZX0pLnZhbHVlO2lmKCJzdHJpbmciPT10eXBlb2YgcyYmKHM9cyE9PWUuYnV0dG9uVmFsdWUsdC5zZXRWYWx1ZShpLHt2YWx1ZTpzfSkpLHMpZm9yKGNvbnN0IHMgb2YgdGhpcy5fZ2V0RWxlbWVudHNCeU5hbWUoZS5maWVsZE5hbWUsaSkpdC5zZXRWYWx1ZShzLmlkLHt2YWx1ZTohMX0pO2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtpZihfaS5hZGQobiksbi5zZXRBdHRyaWJ1dGUoImRhdGEtZWxlbWVudC1pZCIsaSksbi5kaXNhYmxlZD1lLnJlYWRPbmx5LHRoaXMuX3NldFJlcXVpcmVkKG4sdGhpcy5kYXRhLnJlcXVpcmVkKSxuLnR5cGU9InJhZGlvIixuLm5hbWU9ZS5maWVsZE5hbWUscyYmbi5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCEwKSxuLnRhYkluZGV4PXhpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoZT0+e2NvbnN0e25hbWU6cyxjaGVja2VkOm59PWUudGFyZ2V0O2Zvcihjb25zdCBlIG9mIHRoaXMuX2dldEVsZW1lbnRzQnlOYW1lKHMsaSkpdC5zZXRWYWx1ZShlLmlkLHt2YWx1ZTohMX0pO3Quc2V0VmFsdWUoaSx7dmFsdWU6bn0pfSkpLG4uYWRkRXZlbnRMaXN0ZW5lcigicmVzZXRmb3JtIiwodD0+e2NvbnN0IGk9ZS5kZWZhdWx0RmllbGRWYWx1ZTt0LnRhcmdldC5jaGVja2VkPW51bGwhPWkmJmk9PT1lLmJ1dHRvblZhbHVlfSkpLHRoaXMuZW5hYmxlU2NyaXB0aW5nJiZ0aGlzLmhhc0pTQWN0aW9ucyl7Y29uc3Qgcz1lLmJ1dHRvblZhbHVlO24uYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZnJvbXNhbmRib3giLChlPT57Y29uc3Qgbj17dmFsdWU6ZT0+e2NvbnN0IG49cz09PWUuZGV0YWlsLnZhbHVlO2Zvcihjb25zdCBzIG9mIHRoaXMuX2dldEVsZW1lbnRzQnlOYW1lKGUudGFyZ2V0Lm5hbWUpKXtjb25zdCBlPW4mJnMuaWQ9PT1pO3MuZG9tRWxlbWVudCYmKHMuZG9tRWxlbWVudC5jaGVja2VkPWUpLHQuc2V0VmFsdWUocy5pZCx7dmFsdWU6ZX0pfX19O3RoaXMuX2Rpc3BhdGNoRXZlbnRGcm9tU2FuZGJveChuLGUpfSkpLHRoaXMuX3NldEV2ZW50TGlzdGVuZXJzKG4sbnVsbCxbWyJjaGFuZ2UiLCJWYWxpZGF0ZSJdLFsiY2hhbmdlIiwiQWN0aW9uIl0sWyJmb2N1cyIsIkZvY3VzIl0sWyJibHVyIiwiQmx1ciJdLFsibW91c2Vkb3duIiwiTW91c2UgRG93biJdLFsibW91c2VlbnRlciIsIk1vdXNlIEVudGVyIl0sWyJtb3VzZWxlYXZlIiwiTW91c2UgRXhpdCJdLFsibW91c2V1cCIsIk1vdXNlIFVwIl1dLCh0PT50LnRhcmdldC5jaGVja2VkKSl9cmV0dXJuIHRoaXMuX3NldEJhY2tncm91bmRDb2xvcihuKSx0aGlzLl9zZXREZWZhdWx0UHJvcGVydGllc0Zyb21KUyhuKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQobiksdGhpcy5jb250YWluZXJ9fWNsYXNzIExpIGV4dGVuZHMgVGl7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aWdub3JlQm9yZGVyOnQuZGF0YS5oYXNBcHBlYXJhbmNlfSl9cmVuZGVyKCl7Y29uc3QgdD1zdXBlci5yZW5kZXIoKTt0LmNsYXNzTGlzdC5hZGQoImJ1dHRvbldpZGdldEFubm90YXRpb24iLCJwdXNoQnV0dG9uIik7Y29uc3QgZT10Lmxhc3RDaGlsZDtyZXR1cm4gdGhpcy5lbmFibGVTY3JpcHRpbmcmJnRoaXMuaGFzSlNBY3Rpb25zJiZlJiYodGhpcy5fc2V0RGVmYXVsdFByb3BlcnRpZXNGcm9tSlMoZSksZS5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmcm9tc2FuZGJveCIsKHQ9Pnt0aGlzLl9kaXNwYXRjaEV2ZW50RnJvbVNhbmRib3goe30sdCl9KSkpLHR9fWNsYXNzIEZpIGV4dGVuZHMga2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOnQucmVuZGVyRm9ybXN9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJjaG9pY2VXaWRnZXRBbm5vdGF0aW9uIik7Y29uc3QgdD10aGlzLmFubm90YXRpb25TdG9yYWdlLGU9dGhpcy5kYXRhLmlkLGk9dC5nZXRWYWx1ZShlLHt2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZX0pLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7X2kuYWRkKHMpLHMuc2V0QXR0cmlidXRlKCJkYXRhLWVsZW1lbnQtaWQiLGUpLHMuZGlzYWJsZWQ9dGhpcy5kYXRhLnJlYWRPbmx5LHRoaXMuX3NldFJlcXVpcmVkKHMsdGhpcy5kYXRhLnJlcXVpcmVkKSxzLm5hbWU9dGhpcy5kYXRhLmZpZWxkTmFtZSxzLnRhYkluZGV4PXhpO2xldCBuPXRoaXMuZGF0YS5jb21ibyYmdGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoPjA7dGhpcy5kYXRhLmNvbWJvfHwocy5zaXplPXRoaXMuZGF0YS5vcHRpb25zLmxlbmd0aCx0aGlzLmRhdGEubXVsdGlTZWxlY3QmJihzLm11bHRpcGxlPSEwKSkscy5hZGRFdmVudExpc3RlbmVyKCJyZXNldGZvcm0iLCh0PT57Y29uc3QgZT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU7Zm9yKGNvbnN0IHQgb2Ygcy5vcHRpb25zKXQuc2VsZWN0ZWQ9dC52YWx1ZT09PWV9KSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5kYXRhLm9wdGlvbnMpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7ZS50ZXh0Q29udGVudD10LmRpc3BsYXlWYWx1ZSxlLnZhbHVlPXQuZXhwb3J0VmFsdWUsaS52YWx1ZS5pbmNsdWRlcyh0LmV4cG9ydFZhbHVlKSYmKGUuc2V0QXR0cmlidXRlKCJzZWxlY3RlZCIsITApLG49ITEpLHMuYXBwZW5kKGUpfWxldCByPW51bGw7aWYobil7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTt0LnZhbHVlPSIgIix0LnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwhMCksdC5zZXRBdHRyaWJ1dGUoInNlbGVjdGVkIiwhMCkscy5wcmVwZW5kKHQpLHI9KCk9Pnt0LnJlbW92ZSgpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpLHI9bnVsbH0scy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIscil9Y29uc3QgYT10PT57Y29uc3QgZT10PyJ2YWx1ZSI6InRleHRDb250ZW50Iix7b3B0aW9uczppLG11bHRpcGxlOm59PXM7cmV0dXJuIG4/QXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGksKHQ9PnQuc2VsZWN0ZWQpKS5tYXAoKHQ9PnRbZV0pKTotMT09PWkuc2VsZWN0ZWRJbmRleD9udWxsOmlbaS5zZWxlY3RlZEluZGV4XVtlXX07bGV0IG89YSghMSk7Y29uc3QgaD10PT57Y29uc3QgZT10LnRhcmdldC5vcHRpb25zO3JldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoZSwodD0+KHtkaXNwbGF5VmFsdWU6dC50ZXh0Q29udGVudCxleHBvcnRWYWx1ZTp0LnZhbHVlfSkpKX07cmV0dXJuIHRoaXMuZW5hYmxlU2NyaXB0aW5nJiZ0aGlzLmhhc0pTQWN0aW9ucz8ocy5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmcm9tc2FuZGJveCIsKGk9Pntjb25zdCBuPXt2YWx1ZShpKXtyPy4oKTtjb25zdCBuPWkuZGV0YWlsLnZhbHVlLGg9bmV3IFNldChBcnJheS5pc0FycmF5KG4pP246W25dKTtmb3IoY29uc3QgdCBvZiBzLm9wdGlvbnMpdC5zZWxlY3RlZD1oLmhhcyh0LnZhbHVlKTt0LnNldFZhbHVlKGUse3ZhbHVlOmEoITApfSksbz1hKCExKX0sbXVsdGlwbGVTZWxlY3Rpb24odCl7cy5tdWx0aXBsZT0hMH0scmVtb3ZlKGkpe2NvbnN0IG49cy5vcHRpb25zLHI9aS5kZXRhaWwucmVtb3ZlO25bcl0uc2VsZWN0ZWQ9ITEscy5yZW1vdmUociksbi5sZW5ndGg+MCYmLTE9PT1BcnJheS5wcm90b3R5cGUuZmluZEluZGV4LmNhbGwobiwodD0+dC5zZWxlY3RlZCkpJiYoblswXS5zZWxlY3RlZD0hMCksdC5zZXRWYWx1ZShlLHt2YWx1ZTphKCEwKSxpdGVtczpoKGkpfSksbz1hKCExKX0sY2xlYXIoaSl7Zm9yKDswIT09cy5sZW5ndGg7KXMucmVtb3ZlKDApO3Quc2V0VmFsdWUoZSx7dmFsdWU6bnVsbCxpdGVtczpbXX0pLG89YSghMSl9LGluc2VydChpKXtjb25zdHtpbmRleDpuLGRpc3BsYXlWYWx1ZTpyLGV4cG9ydFZhbHVlOmx9PWkuZGV0YWlsLmluc2VydCxjPXMuY2hpbGRyZW5bbl0sZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtkLnRleHRDb250ZW50PXIsZC52YWx1ZT1sLGM/Yy5iZWZvcmUoZCk6cy5hcHBlbmQoZCksdC5zZXRWYWx1ZShlLHt2YWx1ZTphKCEwKSxpdGVtczpoKGkpfSksbz1hKCExKX0saXRlbXMoaSl7Y29uc3R7aXRlbXM6bn09aS5kZXRhaWw7Zm9yKDswIT09cy5sZW5ndGg7KXMucmVtb3ZlKDApO2Zvcihjb25zdCB0IG9mIG4pe2NvbnN0e2Rpc3BsYXlWYWx1ZTplLGV4cG9ydFZhbHVlOml9PXQsbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtuLnRleHRDb250ZW50PWUsbi52YWx1ZT1pLHMuYXBwZW5kKG4pfXMub3B0aW9ucy5sZW5ndGg+MCYmKHMub3B0aW9uc1swXS5zZWxlY3RlZD0hMCksdC5zZXRWYWx1ZShlLHt2YWx1ZTphKCEwKSxpdGVtczpoKGkpfSksbz1hKCExKX0saW5kaWNlcyhpKXtjb25zdCBzPW5ldyBTZXQoaS5kZXRhaWwuaW5kaWNlcyk7Zm9yKGNvbnN0IHQgb2YgaS50YXJnZXQub3B0aW9ucyl0LnNlbGVjdGVkPXMuaGFzKHQuaW5kZXgpO3Quc2V0VmFsdWUoZSx7dmFsdWU6YSghMCl9KSxvPWEoITEpfSxlZGl0YWJsZSh0KXt0LnRhcmdldC5kaXNhYmxlZD0hdC5kZXRhaWwuZWRpdGFibGV9fTt0aGlzLl9kaXNwYXRjaEV2ZW50RnJvbVNhbmRib3gobixpKX0pKSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoaT0+e2NvbnN0IHM9YSghMCksbj1hKCExKTt0LnNldFZhbHVlKGUse3ZhbHVlOnN9KSxpLnByZXZlbnREZWZhdWx0KCksdGhpcy5saW5rU2VydmljZS5ldmVudEJ1cz8uZGlzcGF0Y2goImRpc3BhdGNoZXZlbnRpbnNhbmRib3giLHtzb3VyY2U6dGhpcyxkZXRhaWw6e2lkOmUsbmFtZToiS2V5c3Ryb2tlIix2YWx1ZTpvLGNoYW5nZTpuLGNoYW5nZUV4OnMsd2lsbENvbW1pdDohMSxjb21taXRLZXk6MSxrZXlEb3duOiExfX0pfSkpLHRoaXMuX3NldEV2ZW50TGlzdGVuZXJzKHMsbnVsbCxbWyJmb2N1cyIsIkZvY3VzIl0sWyJibHVyIiwiQmx1ciJdLFsibW91c2Vkb3duIiwiTW91c2UgRG93biJdLFsibW91c2VlbnRlciIsIk1vdXNlIEVudGVyIl0sWyJtb3VzZWxlYXZlIiwiTW91c2UgRXhpdCJdLFsibW91c2V1cCIsIk1vdXNlIFVwIl0sWyJpbnB1dCIsIkFjdGlvbiJdLFsiaW5wdXQiLCJWYWxpZGF0ZSJdXSwodD0+dC50YXJnZXQudmFsdWUpKSk6cy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKGZ1bmN0aW9uKGkpe3Quc2V0VmFsdWUoZSx7dmFsdWU6YSghMCl9KX0pKSx0aGlzLmRhdGEuY29tYm8mJnRoaXMuX3NldFRleHRTdHlsZShzKSx0aGlzLl9zZXRCYWNrZ3JvdW5kQ29sb3IocyksdGhpcy5fc2V0RGVmYXVsdFByb3BlcnRpZXNGcm9tSlMocyksdGhpcy5jb250YWluZXIuYXBwZW5kKHMpLHRoaXMuY29udGFpbmVyfX1jbGFzcyBPaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe2NvbnN0e2RhdGE6ZSxlbGVtZW50czppfT10O3N1cGVyKHQse2lzUmVuZGVyYWJsZTpTaS5faGFzUG9wdXBEYXRhKGUpfSksdGhpcy5lbGVtZW50cz1pLHRoaXMucG9wdXA9bnVsbH1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJwb3B1cEFubm90YXRpb24iKTtjb25zdCB0PXRoaXMucG9wdXA9bmV3IE5pKHtjb250YWluZXI6dGhpcy5jb250YWluZXIsY29sb3I6dGhpcy5kYXRhLmNvbG9yLHRpdGxlT2JqOnRoaXMuZGF0YS50aXRsZU9iaixtb2RpZmljYXRpb25EYXRlOnRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlLGNvbnRlbnRzT2JqOnRoaXMuZGF0YS5jb250ZW50c09iaixyaWNoVGV4dDp0aGlzLmRhdGEucmljaFRleHQscmVjdDp0aGlzLmRhdGEucmVjdCxwYXJlbnRSZWN0OnRoaXMuZGF0YS5wYXJlbnRSZWN0fHxudWxsLHBhcmVudDp0aGlzLnBhcmVudCxlbGVtZW50czp0aGlzLmVsZW1lbnRzLG9wZW46dGhpcy5kYXRhLm9wZW59KSxlPVtdO2Zvcihjb25zdCBpIG9mIHRoaXMuZWxlbWVudHMpaS5wb3B1cD10LGUucHVzaChpLmRhdGEuaWQpLGkuYWRkSGlnaGxpZ2h0QXJlYSgpO3JldHVybiB0aGlzLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLGUubWFwKCh0PT5gJHskfSR7dH1gKSkuam9pbigiLCIpKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgTml7I3lzPXRoaXMuI0FzLmJpbmQodGhpcyk7I3dzPXRoaXMuI3hzLmJpbmQodGhpcyk7I19zPXRoaXMuI0VzLmJpbmQodGhpcyk7I0NzPXRoaXMuI1NzLmJpbmQodGhpcyk7I1RzPW51bGw7I3V0PW51bGw7I01zPW51bGw7I2tzPW51bGw7I0lzPW51bGw7I1JzPW51bGw7I1BzPW51bGw7I0RzPSExOyNMcz1udWxsOyNTPW51bGw7I0ZzPW51bGw7I09zPW51bGw7I05zPW51bGw7I3VzPW51bGw7I0JzPSExO2NvbnN0cnVjdG9yKHtjb250YWluZXI6dCxjb2xvcjplLGVsZW1lbnRzOmksdGl0bGVPYmo6cyxtb2RpZmljYXRpb25EYXRlOm4sY29udGVudHNPYmo6cixyaWNoVGV4dDphLHBhcmVudDpvLHJlY3Q6aCxwYXJlbnRSZWN0Omwsb3BlbjpjfSl7dGhpcy4jdXQ9dCx0aGlzLiNOcz1zLHRoaXMuI01zPXIsdGhpcy4jT3M9YSx0aGlzLiNScz1vLHRoaXMuI1RzPWUsdGhpcy4jRnM9aCx0aGlzLiNQcz1sLHRoaXMuI0lzPWksdGhpcy4ja3M9dXQudG9EYXRlT2JqZWN0KG4pLHRoaXMudHJpZ2dlcj1pLmZsYXRNYXAoKHQ9PnQuZ2V0RWxlbWVudHNUb1RyaWdnZXJQb3B1cCgpKSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy50cmlnZ2VyKXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuI0NzKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHRoaXMuI19zKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuI3dzKSx0LmNsYXNzTGlzdC5hZGQoInBvcHVwVHJpZ2dlckFyZWEiKTtmb3IoY29uc3QgdCBvZiBpKXQuY29udGFpbmVyPy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLiN5cyk7dGhpcy4jdXQuaGlkZGVuPSEwLGMmJnRoaXMuI1NzKCl9cmVuZGVyKCl7aWYodGhpcy4jTHMpcmV0dXJuO2NvbnN0IHQ9dGhpcy4jTHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYodC5jbGFzc05hbWU9InBvcHVwIix0aGlzLiNUcyl7Y29uc3QgZT10LnN0eWxlLm91dGxpbmVDb2xvcj16Lm1ha2VIZXhDb2xvciguLi50aGlzLiNUcyk7aWYoQ1NTLnN1cHBvcnRzKCJiYWNrZ3JvdW5kLWNvbG9yIiwiY29sb3ItbWl4KGluIHNyZ2IsIHJlZCAzMCUsIHdoaXRlKSIpKXQuc3R5bGUuYmFja2dyb3VuZENvbG9yPWBjb2xvci1taXgoaW4gc3JnYiwgJHtlfSAzMCUsIHdoaXRlKWA7ZWxzZXtjb25zdCBlPS43O3Quc3R5bGUuYmFja2dyb3VuZENvbG9yPXoubWFrZUhleENvbG9yKC4uLnRoaXMuI1RzLm1hcCgodD0+TWF0aC5mbG9vcihlKigyNTUtdCkrdCkpKSl9fWNvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2UuY2xhc3NOYW1lPSJoZWFkZXIiO2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDEiKTtpZihlLmFwcGVuZChpKSwoe2RpcjppLmRpcixzdHI6aS50ZXh0Q29udGVudH09dGhpcy4jTnMpLHQuYXBwZW5kKGUpLHRoaXMuI2tzKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt0LmNsYXNzTGlzdC5hZGQoInBvcHVwRGF0ZSIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWwxMG4taWQiLCJwZGZqcy1hbm5vdGF0aW9uLWRhdGUtdGltZS1zdHJpbmciKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWFyZ3MiLEpTT04uc3RyaW5naWZ5KHtkYXRlT2JqOnRoaXMuI2tzLnZhbHVlT2YoKX0pKSxlLmFwcGVuZCh0KX1jb25zdCBzPXRoaXMuI3pzO2lmKHMpd2kucmVuZGVyKHt4ZmFIdG1sOnMsaW50ZW50OiJyaWNoVGV4dCIsZGl2OnR9KSx0Lmxhc3RDaGlsZC5jbGFzc0xpc3QuYWRkKCJyaWNoVGV4dCIsInBvcHVwQ29udGVudCIpO2Vsc2V7Y29uc3QgZT10aGlzLl9mb3JtYXRDb250ZW50cyh0aGlzLiNNcyk7dC5hcHBlbmQoZSl9dGhpcy4jdXQuYXBwZW5kKHQpfWdldCN6cygpe2NvbnN0IHQ9dGhpcy4jT3MsZT10aGlzLiNNcztyZXR1cm4hdD8uc3RyfHxlPy5zdHImJmUuc3RyIT09dC5zdHI/bnVsbDp0aGlzLiNPcy5odG1sfHxudWxsfWdldCNIcygpe3JldHVybiB0aGlzLiN6cz8uYXR0cmlidXRlcz8uc3R5bGU/LmZvbnRTaXplfHwwfWdldCNqcygpe3JldHVybiB0aGlzLiN6cz8uYXR0cmlidXRlcz8uc3R5bGU/LmNvbG9yfHxudWxsfSNVcyh0KXtjb25zdCBlPVtdLGk9e3N0cjp0LGh0bWw6e25hbWU6ImRpdiIsYXR0cmlidXRlczp7ZGlyOiJhdXRvIn0sY2hpbGRyZW46W3tuYW1lOiJwIixjaGlsZHJlbjplfV19fSxzPXtzdHlsZTp7Y29sb3I6dGhpcy4janMsZm9udFNpemU6dGhpcy4jSHM/YGNhbGMoJHt0aGlzLiNIc31weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYDoiIn19O2Zvcihjb25zdCBpIG9mIHQuc3BsaXQoIlxuIikpZS5wdXNoKHtuYW1lOiJzcGFuIix2YWx1ZTppLGF0dHJpYnV0ZXM6c30pO3JldHVybiBpfV9mb3JtYXRDb250ZW50cyh7c3RyOnQsZGlyOmV9KXtjb25zdCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtpLmNsYXNzTGlzdC5hZGQoInBvcHVwQ29udGVudCIpLGkuZGlyPWU7Y29uc3Qgcz10LnNwbGl0KC8oPzpcclxuP3xcbikvKTtmb3IobGV0IHQ9MCxlPXMubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IG49c1t0XTtpLmFwcGVuZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuKSksdDxlLTEmJmkuYXBwZW5kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpfXJldHVybiBpfSNBcyh0KXt0LmFsdEtleXx8dC5zaGlmdEtleXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl8fCgiRW50ZXIiPT09dC5rZXl8fCJFc2NhcGUiPT09dC5rZXkmJnRoaXMuI0RzKSYmdGhpcy4jU3MoKX11cGRhdGVFZGl0ZWQoe3JlY3Q6dCxwb3B1cENvbnRlbnQ6ZX0pe3RoaXMuI3VzfHw9e2NvbnRlbnRzT2JqOnRoaXMuI01zLHJpY2hUZXh0OnRoaXMuI09zfSx0JiYodGhpcy4jUz1udWxsKSxlJiYodGhpcy4jT3M9dGhpcy4jVXMoZSksdGhpcy4jTXM9bnVsbCksdGhpcy4jTHM/LnJlbW92ZSgpLHRoaXMuI0xzPW51bGx9cmVzZXRFZGl0ZWQoKXt0aGlzLiN1cyYmKCh7Y29udGVudHNPYmo6dGhpcy4jTXMscmljaFRleHQ6dGhpcy4jT3N9PXRoaXMuI3VzKSx0aGlzLiN1cz1udWxsLHRoaXMuI0xzPy5yZW1vdmUoKSx0aGlzLiNMcz1udWxsLHRoaXMuI1M9bnVsbCl9IyRzKCl7aWYobnVsbCE9PXRoaXMuI1MpcmV0dXJuO2NvbnN0e3BhZ2U6e3ZpZXc6dH0sdmlld3BvcnQ6e3Jhd0RpbXM6e3BhZ2VXaWR0aDplLHBhZ2VIZWlnaHQ6aSxwYWdlWDpzLHBhZ2VZOm59fX09dGhpcy4jUnM7bGV0IHI9ISF0aGlzLiNQcyxhPXI/dGhpcy4jUHM6dGhpcy4jRnM7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jSXMpaWYoIWF8fG51bGwhPT16LmludGVyc2VjdCh0LmRhdGEucmVjdCxhKSl7YT10LmRhdGEucmVjdCxyPSEwO2JyZWFrfWNvbnN0IG89ei5ub3JtYWxpemVSZWN0KFthWzBdLHRbM10tYVsxXSt0WzFdLGFbMl0sdFszXS1hWzNdK3RbMV1dKSxoPXI/YVsyXS1hWzBdKzU6MCxsPW9bMF0raCxjPW9bMV07dGhpcy4jUz1bMTAwKihsLXMpL2UsMTAwKihjLW4pL2ldO2NvbnN0e3N0eWxlOmR9PXRoaXMuI3V0O2QubGVmdD1gJHt0aGlzLiNTWzBdfSVgLGQudG9wPWAke3RoaXMuI1NbMV19JWB9I1NzKCl7dGhpcy4jRHM9IXRoaXMuI0RzLHRoaXMuI0RzPyh0aGlzLiNFcygpLHRoaXMuI3V0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLiNDcyksdGhpcy4jdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy4jeXMpKToodGhpcy4jeHMoKSx0aGlzLiN1dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy4jQ3MpLHRoaXMuI3V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuI3lzKSl9I0VzKCl7dGhpcy4jTHN8fHRoaXMucmVuZGVyKCksdGhpcy5pc1Zpc2libGU/dGhpcy4jRHMmJnRoaXMuI3V0LmNsYXNzTGlzdC5hZGQoImZvY3VzZWQiKToodGhpcy4jJHMoKSx0aGlzLiN1dC5oaWRkZW49ITEsdGhpcy4jdXQuc3R5bGUuekluZGV4PXBhcnNlSW50KHRoaXMuI3V0LnN0eWxlLnpJbmRleCkrMWUzKX0jeHMoKXt0aGlzLiN1dC5jbGFzc0xpc3QucmVtb3ZlKCJmb2N1c2VkIiksIXRoaXMuI0RzJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuI3V0LmhpZGRlbj0hMCx0aGlzLiN1dC5zdHlsZS56SW5kZXg9cGFyc2VJbnQodGhpcy4jdXQuc3R5bGUuekluZGV4KS0xZTMpfWZvcmNlSGlkZSgpe3RoaXMuI0JzPXRoaXMuaXNWaXNpYmxlLHRoaXMuI0JzJiYodGhpcy4jdXQuaGlkZGVuPSEwKX1tYXliZVNob3coKXt0aGlzLiNCcyYmKHRoaXMuI0xzfHx0aGlzLiNFcygpLHRoaXMuI0JzPSExLHRoaXMuI3V0LmhpZGRlbj0hMSl9Z2V0IGlzVmlzaWJsZSgpe3JldHVybiExPT09dGhpcy4jdXQuaGlkZGVufX1jbGFzcyBCaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KSx0aGlzLnRleHRDb250ZW50PXQuZGF0YS50ZXh0Q29udGVudCx0aGlzLnRleHRQb3NpdGlvbj10LmRhdGEudGV4dFBvc2l0aW9uLHRoaXMuYW5ub3RhdGlvbkVkaXRvclR5cGU9bC5GUkVFVEVYVH1yZW5kZXIoKXtpZih0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJmcmVlVGV4dEFubm90YXRpb24iKSx0aGlzLnRleHRDb250ZW50KXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgiYW5ub3RhdGlvblRleHRDb250ZW50IiksdC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJjb21tZW50Iik7Zm9yKGNvbnN0IGUgb2YgdGhpcy50ZXh0Q29udGVudCl7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS50ZXh0Q29udGVudD1lLHQuYXBwZW5kKGkpfXRoaXMuY29udGFpbmVyLmFwcGVuZCh0KX1yZXR1cm4hdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLl9lZGl0T25Eb3VibGVDbGljaygpLHRoaXMuY29udGFpbmVyfX1jbGFzcyB6aSBleHRlbmRzIFNpeyNXcz1udWxsO2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJsaW5lQW5ub3RhdGlvbiIpO2NvbnN0IHQ9dGhpcy5kYXRhLHt3aWR0aDplLGhlaWdodDppfT1FaSh0LnJlY3QpLHM9dGhpcy5zdmdGYWN0b3J5LmNyZWF0ZShlLGksITApLG49dGhpcy4jV3M9dGhpcy5zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInN2ZzpsaW5lIik7cmV0dXJuIG4uc2V0QXR0cmlidXRlKCJ4MSIsdC5yZWN0WzJdLXQubGluZUNvb3JkaW5hdGVzWzBdKSxuLnNldEF0dHJpYnV0ZSgieTEiLHQucmVjdFszXS10LmxpbmVDb29yZGluYXRlc1sxXSksbi5zZXRBdHRyaWJ1dGUoIngyIix0LnJlY3RbMl0tdC5saW5lQ29vcmRpbmF0ZXNbMl0pLG4uc2V0QXR0cmlidXRlKCJ5MiIsdC5yZWN0WzNdLXQubGluZUNvb3JkaW5hdGVzWzNdKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIix0LmJvcmRlclN0eWxlLndpZHRofHwxKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwidHJhbnNwYXJlbnQiKSxuLnNldEF0dHJpYnV0ZSgiZmlsbCIsInRyYW5zcGFyZW50Iikscy5hcHBlbmQobiksdGhpcy5jb250YWluZXIuYXBwZW5kKHMpLCF0LnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lcn1nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCl7cmV0dXJuIHRoaXMuI1dzfWFkZEhpZ2hsaWdodEFyZWEoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9fWNsYXNzIEhpIGV4dGVuZHMgU2l7I0dzPW51bGw7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwLGlnbm9yZUJvcmRlcjohMH0pfXJlbmRlcigpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNxdWFyZUFubm90YXRpb24iKTtjb25zdCB0PXRoaXMuZGF0YSx7d2lkdGg6ZSxoZWlnaHQ6aX09RWkodC5yZWN0KSxzPXRoaXMuc3ZnRmFjdG9yeS5jcmVhdGUoZSxpLCEwKSxuPXQuYm9yZGVyU3R5bGUud2lkdGgscj10aGlzLiNHcz10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgic3ZnOnJlY3QiKTtyZXR1cm4gci5zZXRBdHRyaWJ1dGUoIngiLG4vMiksci5zZXRBdHRyaWJ1dGUoInkiLG4vMiksci5zZXRBdHRyaWJ1dGUoIndpZHRoIixlLW4pLHIuc2V0QXR0cmlidXRlKCJoZWlnaHQiLGktbiksci5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsbnx8MSksci5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsInRyYW5zcGFyZW50Iiksci5zZXRBdHRyaWJ1dGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLHMuYXBwZW5kKHIpLHRoaXMuY29udGFpbmVyLmFwcGVuZChzKSwhdC5wb3B1cFJlZiYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksdGhpcy5jb250YWluZXJ9Z2V0RWxlbWVudHNUb1RyaWdnZXJQb3B1cCgpe3JldHVybiB0aGlzLiNHc31hZGRIaWdobGlnaHRBcmVhKCl7dGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGlnaGxpZ2h0QXJlYSIpfX1jbGFzcyBqaSBleHRlbmRzIFNpeyNWcz1udWxsO2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJjaXJjbGVBbm5vdGF0aW9uIik7Y29uc3QgdD10aGlzLmRhdGEse3dpZHRoOmUsaGVpZ2h0Oml9PUVpKHQucmVjdCkscz10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlKGUsaSwhMCksbj10LmJvcmRlclN0eWxlLndpZHRoLHI9dGhpcy4jVnM9dGhpcy5zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInN2ZzplbGxpcHNlIik7cmV0dXJuIHIuc2V0QXR0cmlidXRlKCJjeCIsZS8yKSxyLnNldEF0dHJpYnV0ZSgiY3kiLGkvMiksci5zZXRBdHRyaWJ1dGUoInJ4IixlLzItbi8yKSxyLnNldEF0dHJpYnV0ZSgicnkiLGkvMi1uLzIpLHIuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLG58fDEpLHIuc2V0QXR0cmlidXRlKCJzdHJva2UiLCJ0cmFuc3BhcmVudCIpLHIuc2V0QXR0cmlidXRlKCJmaWxsIiwidHJhbnNwYXJlbnQiKSxzLmFwcGVuZChyKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQocyksIXQucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhJiZ0aGlzLl9jcmVhdGVQb3B1cCgpLHRoaXMuY29udGFpbmVyfWdldEVsZW1lbnRzVG9UcmlnZ2VyUG9wdXAoKXtyZXR1cm4gdGhpcy4jVnN9YWRkSGlnaGxpZ2h0QXJlYSgpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhpZ2hsaWdodEFyZWEiKX19Y2xhc3MgVWkgZXh0ZW5kcyBTaXsjcXM9bnVsbDtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwfSksdGhpcy5jb250YWluZXJDbGFzc05hbWU9InBvbHlsaW5lQW5ub3RhdGlvbiIsdGhpcy5zdmdFbGVtZW50TmFtZT0ic3ZnOnBvbHlsaW5lIn1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuY29udGFpbmVyQ2xhc3NOYW1lKTtjb25zdHtkYXRhOntyZWN0OnQsdmVydGljZXM6ZSxib3JkZXJTdHlsZTppLHBvcHVwUmVmOnN9fT10aGlzO2lmKCFlKXJldHVybiB0aGlzLmNvbnRhaW5lcjtjb25zdHt3aWR0aDpuLGhlaWdodDpyfT1FaSh0KSxhPXRoaXMuc3ZnRmFjdG9yeS5jcmVhdGUobixyLCEwKTtsZXQgbz1bXTtmb3IobGV0IGk9MCxzPWUubGVuZ3RoO2k8cztpKz0yKXtjb25zdCBzPWVbaV0tdFswXSxuPXRbM10tZVtpKzFdO28ucHVzaChgJHtzfSwke259YCl9bz1vLmpvaW4oIiAiKTtjb25zdCBoPXRoaXMuI3FzPXRoaXMuc3ZnRmFjdG9yeS5jcmVhdGVFbGVtZW50KHRoaXMuc3ZnRWxlbWVudE5hbWUpO3JldHVybiBoLnNldEF0dHJpYnV0ZSgicG9pbnRzIixvKSxoLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIixpLndpZHRofHwxKSxoLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwidHJhbnNwYXJlbnQiKSxoLnNldEF0dHJpYnV0ZSgiZmlsbCIsInRyYW5zcGFyZW50IiksYS5hcHBlbmQoaCksdGhpcy5jb250YWluZXIuYXBwZW5kKGEpLCFzJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lcn1nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCl7cmV0dXJuIHRoaXMuI3FzfWFkZEhpZ2hsaWdodEFyZWEoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9fWNsYXNzICRpIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5jb250YWluZXJDbGFzc05hbWU9InBvbHlnb25Bbm5vdGF0aW9uIix0aGlzLnN2Z0VsZW1lbnROYW1lPSJzdmc6cG9seWdvbiJ9fWNsYXNzIFdpIGV4dGVuZHMgU2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwLGlnbm9yZUJvcmRlcjohMH0pfXJlbmRlcigpe3JldHVybiB0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJjYXJldEFubm90YXRpb24iKSwhdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgR2kgZXh0ZW5kcyBTaXsjWHM9W107Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwLGlnbm9yZUJvcmRlcjohMH0pLHRoaXMuY29udGFpbmVyQ2xhc3NOYW1lPSJpbmtBbm5vdGF0aW9uIix0aGlzLnN2Z0VsZW1lbnROYW1lPSJzdmc6cG9seWxpbmUiLHRoaXMuYW5ub3RhdGlvbkVkaXRvclR5cGU9Iklua0hpZ2hsaWdodCI9PT10aGlzLmRhdGEuaXQ/bC5ISUdITElHSFQ6bC5JTkt9cmVuZGVyKCl7dGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbnRhaW5lckNsYXNzTmFtZSk7Y29uc3R7ZGF0YTp7cmVjdDp0LGlua0xpc3RzOmUsYm9yZGVyU3R5bGU6aSxwb3B1cFJlZjpzfX09dGhpcyx7d2lkdGg6bixoZWlnaHQ6cn09RWkodCksYT10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlKG4sciwhMCk7Zm9yKGNvbnN0IG4gb2YgZSl7bGV0IGU9W107Zm9yKGxldCBpPTAscz1uLmxlbmd0aDtpPHM7aSs9Mil7Y29uc3Qgcz1uW2ldLXRbMF0scj10WzNdLW5baSsxXTtlLnB1c2goYCR7c30sJHtyfWApfWU9ZS5qb2luKCIgIik7Y29uc3Qgcj10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCh0aGlzLnN2Z0VsZW1lbnROYW1lKTt0aGlzLiNYcy5wdXNoKHIpLHIuc2V0QXR0cmlidXRlKCJwb2ludHMiLGUpLHIuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLGkud2lkdGh8fDEpLHIuc2V0QXR0cmlidXRlKCJzdHJva2UiLCJ0cmFuc3BhcmVudCIpLHIuc2V0QXR0cmlidXRlKCJmaWxsIiwidHJhbnNwYXJlbnQiKSwhcyYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksYS5hcHBlbmQocil9cmV0dXJuIHRoaXMuY29udGFpbmVyLmFwcGVuZChhKSx0aGlzLl9lZGl0T25Eb3VibGVDbGljaygpLHRoaXMuY29udGFpbmVyfWdldEVsZW1lbnRzVG9UcmlnZ2VyUG9wdXAoKXtyZXR1cm4gdGhpcy4jWHN9YWRkSGlnaGxpZ2h0QXJlYSgpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhpZ2hsaWdodEFyZWEiKX19Y2xhc3MgVmkgZXh0ZW5kcyBTaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSksdGhpcy5hbm5vdGF0aW9uRWRpdG9yVHlwZT1sLkhJR0hMSUdIVH1yZW5kZXIoKXtyZXR1cm4hdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBbm5vdGF0aW9uIiksdGhpcy5fZWRpdE9uRG91YmxlQ2xpY2soKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgcWkgZXh0ZW5kcyBTaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSl9cmVuZGVyKCl7cmV0dXJuIXRoaXMuZGF0YS5wb3B1cFJlZiYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgidW5kZXJsaW5lQW5ub3RhdGlvbiIpLHRoaXMuY29udGFpbmVyfX1jbGFzcyBYaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITAsY3JlYXRlUXVhZHJpbGF0ZXJhbHM6ITB9KX1yZW5kZXIoKXtyZXR1cm4hdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJzcXVpZ2dseUFubm90YXRpb24iKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgS2kgZXh0ZW5kcyBTaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSl9cmVuZGVyKCl7cmV0dXJuIXRoaXMuZGF0YS5wb3B1cFJlZiYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic3RyaWtlb3V0QW5ub3RhdGlvbiIpLHRoaXMuY29udGFpbmVyfX1jbGFzcyBZaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KSx0aGlzLmFubm90YXRpb25FZGl0b3JUeXBlPWwuU1RBTVB9cmVuZGVyKCl7cmV0dXJuIHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInN0YW1wQW5ub3RhdGlvbiIpLHRoaXMuY29udGFpbmVyLnNldEF0dHJpYnV0ZSgicm9sZSIsImltZyIpLCF0aGlzLmRhdGEucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhJiZ0aGlzLl9jcmVhdGVQb3B1cCgpLHRoaXMuX2VkaXRPbkRvdWJsZUNsaWNrKCksdGhpcy5jb250YWluZXJ9fWNsYXNzIFFpIGV4dGVuZHMgU2l7I0tzPW51bGw7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwfSk7Y29uc3R7ZmlsZTplfT10aGlzLmRhdGE7dGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lLHRoaXMuY29udGVudD1lLmNvbnRlbnQsdGhpcy5saW5rU2VydmljZS5ldmVudEJ1cz8uZGlzcGF0Y2goImZpbGVhdHRhY2htZW50YW5ub3RhdGlvbiIse3NvdXJjZTp0aGlzLC4uLmV9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJmaWxlQXR0YWNobWVudEFubm90YXRpb24iKTtjb25zdHtjb250YWluZXI6dCxkYXRhOmV9PXRoaXM7bGV0IGk7ZS5oYXNBcHBlYXJhbmNlfHwwPT09ZS5maWxsQWxwaGE/aT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTooaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxpLnNyYz1gJHt0aGlzLmltYWdlUmVzb3VyY2VzUGF0aH1hbm5vdGF0aW9uLSR7L3BhcGVyY2xpcC9pLnRlc3QoZS5uYW1lKT8icGFwZXJjbGlwIjoicHVzaHBpbiJ9LnN2Z2AsZS5maWxsQWxwaGEmJmUuZmlsbEFscGhhPDEmJihpLnN0eWxlPWBmaWx0ZXI6IG9wYWNpdHkoJHtNYXRoLnJvdW5kKDEwMCplLmZpbGxBbHBoYSl9JSk7YCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLHRoaXMuI1lzLmJpbmQodGhpcykpLHRoaXMuI0tzPWk7Y29uc3R7aXNNYWM6c309Ti5wbGF0Zm9ybTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwodD0+eyJFbnRlciI9PT10LmtleSYmKHM/dC5tZXRhS2V5OnQuY3RybEtleSkmJnRoaXMuI1lzKCl9KSksIWUucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhP3RoaXMuX2NyZWF0ZVBvcHVwKCk6aS5jbGFzc0xpc3QuYWRkKCJwb3B1cFRyaWdnZXJBcmVhIiksdC5hcHBlbmQoaSksdH1nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCl7cmV0dXJuIHRoaXMuI0tzfWFkZEhpZ2hsaWdodEFyZWEoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9I1lzKCl7dGhpcy5kb3dubG9hZE1hbmFnZXI/Lm9wZW5PckRvd25sb2FkRGF0YSh0aGlzLmNvbnRlbnQsdGhpcy5maWxlbmFtZSl9fWNsYXNzIEppeyNRcz1udWxsOyNKcz1udWxsOyNacz1uZXcgTWFwOyN0bj1udWxsO2NvbnN0cnVjdG9yKHtkaXY6dCxhY2Nlc3NpYmlsaXR5TWFuYWdlcjplLGFubm90YXRpb25DYW52YXNNYXA6aSxhbm5vdGF0aW9uRWRpdG9yVUlNYW5hZ2VyOnMscGFnZTpuLHZpZXdwb3J0OnIsc3RydWN0VHJlZUxheWVyOmF9KXt0aGlzLmRpdj10LHRoaXMuI1FzPWUsdGhpcy4jSnM9aSx0aGlzLiN0bj1hfHxudWxsLHRoaXMucGFnZT1uLHRoaXMudmlld3BvcnQ9cix0aGlzLnpJbmRleD0wLHRoaXMuX2Fubm90YXRpb25FZGl0b3JVSU1hbmFnZXI9c31oYXNFZGl0YWJsZUFubm90YXRpb25zKCl7cmV0dXJuIHRoaXMuI1pzLnNpemU+MH1hc3luYyNlbih0LGUpe2NvbnN0IGk9dC5maXJzdENoaWxkfHx0LHM9aS5pZD1gJHskfSR7ZX1gLG49YXdhaXQodGhpcy4jdG4/LmdldEFyaWFBdHRyaWJ1dGVzKHMpKTtpZihuKWZvcihjb25zdFt0LGVdb2YgbilpLnNldEF0dHJpYnV0ZSh0LGUpO3RoaXMuZGl2LmFwcGVuZCh0KSx0aGlzLiNRcz8ubW92ZUVsZW1lbnRJbkRPTSh0aGlzLmRpdix0LGksITEpfWFzeW5jIHJlbmRlcih0KXtjb25zdHthbm5vdGF0aW9uczplfT10LGk9dGhpcy5kaXY7YnQoaSx0aGlzLnZpZXdwb3J0KTtjb25zdCBzPW5ldyBNYXAsbj17ZGF0YTpudWxsLGxheWVyOmksbGlua1NlcnZpY2U6dC5saW5rU2VydmljZSxkb3dubG9hZE1hbmFnZXI6dC5kb3dubG9hZE1hbmFnZXIsaW1hZ2VSZXNvdXJjZXNQYXRoOnQuaW1hZ2VSZXNvdXJjZXNQYXRofHwiIixyZW5kZXJGb3JtczohMSE9PXQucmVuZGVyRm9ybXMsc3ZnRmFjdG9yeTpuZXcgdHQsYW5ub3RhdGlvblN0b3JhZ2U6dC5hbm5vdGF0aW9uU3RvcmFnZXx8bmV3IE90LGVuYWJsZVNjcmlwdGluZzohMD09PXQuZW5hYmxlU2NyaXB0aW5nLGhhc0pTQWN0aW9uczp0Lmhhc0pTQWN0aW9ucyxmaWVsZE9iamVjdHM6dC5maWVsZE9iamVjdHMscGFyZW50OnRoaXMsZWxlbWVudHM6bnVsbH07Zm9yKGNvbnN0IHQgb2YgZSl7aWYodC5ub0hUTUwpY29udGludWU7Y29uc3QgZT0xNj09PXQuYW5ub3RhdGlvblR5cGU7aWYoZSl7Y29uc3QgZT1zLmdldCh0LmlkKTtpZighZSljb250aW51ZTtuLmVsZW1lbnRzPWV9ZWxzZXtjb25zdHt3aWR0aDplLGhlaWdodDppfT1FaSh0LnJlY3QpO2lmKGU8PTB8fGk8PTApY29udGludWV9bi5kYXRhPXQ7Y29uc3QgaT1DaS5jcmVhdGUobik7aWYoIWkuaXNSZW5kZXJhYmxlKWNvbnRpbnVlO2lmKCFlJiZ0LnBvcHVwUmVmKXtjb25zdCBlPXMuZ2V0KHQucG9wdXBSZWYpO2U/ZS5wdXNoKGkpOnMuc2V0KHQucG9wdXBSZWYsW2ldKX1jb25zdCByPWkucmVuZGVyKCk7dC5oaWRkZW4mJihyLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpLGF3YWl0IHRoaXMuI2VuKHIsdC5pZCksaS5faXNFZGl0YWJsZSYmKHRoaXMuI1pzLnNldChpLmRhdGEuaWQsaSksdGhpcy5fYW5ub3RhdGlvbkVkaXRvclVJTWFuYWdlcj8ucmVuZGVyQW5ub3RhdGlvbkVsZW1lbnQoaSkpfXRoaXMuI2luKCl9dXBkYXRlKHt2aWV3cG9ydDp0fSl7Y29uc3QgZT10aGlzLmRpdjt0aGlzLnZpZXdwb3J0PXQsYnQoZSx7cm90YXRpb246dC5yb3RhdGlvbn0pLHRoaXMuI2luKCksZS5oaWRkZW49ITF9I2luKCl7aWYoIXRoaXMuI0pzKXJldHVybjtjb25zdCB0PXRoaXMuZGl2O2Zvcihjb25zdFtlLGldb2YgdGhpcy4jSnMpe2NvbnN0IHM9dC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1hbm5vdGF0aW9uLWlkPSIke2V9Il1gKTtpZighcyljb250aW51ZTtpLmNsYXNzTmFtZT0iYW5ub3RhdGlvbkNvbnRlbnQiO2NvbnN0e2ZpcnN0Q2hpbGQ6bn09cztuPyJDQU5WQVMiPT09bi5ub2RlTmFtZT9uLnJlcGxhY2VXaXRoKGkpOm4uY2xhc3NMaXN0LmNvbnRhaW5zKCJhbm5vdGF0aW9uQ29udGVudCIpP24uYWZ0ZXIoaSk6bi5iZWZvcmUoaSk6cy5hcHBlbmQoaSl9dGhpcy4jSnMuY2xlYXIoKX1nZXRFZGl0YWJsZUFubm90YXRpb25zKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy4jWnMudmFsdWVzKCkpfWdldEVkaXRhYmxlQW5ub3RhdGlvbih0KXtyZXR1cm4gdGhpcy4jWnMuZ2V0KHQpfX1jb25zdCBaaT0vXHJcbj98XG4vZztjbGFzcyB0cyBleHRlbmRzIGt0eyNUczsjc249IiI7I25uPWAke3RoaXMuaWR9LWVkaXRvcmA7I3JuPW51bGw7I0hzO3N0YXRpYyBfZnJlZVRleHREZWZhdWx0Q29udGVudD0iIjtzdGF0aWMgX2ludGVybmFsUGFkZGluZz0wO3N0YXRpYyBfZGVmYXVsdENvbG9yPW51bGw7c3RhdGljIF9kZWZhdWx0Rm9udFNpemU9MTA7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7Y29uc3QgdD10cy5wcm90b3R5cGUsZT10PT50LmlzRW1wdHkoKSxpPVR0LlRSQU5TTEFURV9TTUFMTCxzPVR0LlRSQU5TTEFURV9CSUc7cmV0dXJuIEModGhpcywiX2tleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJjdHJsK3MiLCJtYWMrbWV0YStzIiwiY3RybCtwIiwibWFjK21ldGErcCJdLHQuY29tbWl0T3JSZW1vdmUse2J1YmJsZXM6ITB9XSxbWyJjdHJsK0VudGVyIiwibWFjK21ldGErRW50ZXIiLCJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sdC5jb21taXRPclJlbW92ZV0sW1siQXJyb3dMZWZ0IiwibWFjK0Fycm93TGVmdCJdLHQuX3RyYW5zbGF0ZUVtcHR5LHthcmdzOlstaSwwXSxjaGVja2VyOmV9XSxbWyJjdHJsK0Fycm93TGVmdCIsIm1hYytzaGlmdCtBcnJvd0xlZnQiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbLXMsMF0sY2hlY2tlcjplfV0sW1siQXJyb3dSaWdodCIsIm1hYytBcnJvd1JpZ2h0Il0sdC5fdHJhbnNsYXRlRW1wdHkse2FyZ3M6W2ksMF0sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1JpZ2h0IiwibWFjK3NoaWZ0K0Fycm93UmlnaHQiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbcywwXSxjaGVja2VyOmV9XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbMCwtaV0sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1VwIiwibWFjK3NoaWZ0K0Fycm93VXAiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbMCwtc10sY2hlY2tlcjplfV0sW1siQXJyb3dEb3duIiwibWFjK0Fycm93RG93biJdLHQuX3RyYW5zbGF0ZUVtcHR5LHthcmdzOlswLGldLGNoZWNrZXI6ZX1dLFtbImN0cmwrQXJyb3dEb3duIiwibWFjK3NoaWZ0K0Fycm93RG93biJdLHQuX3RyYW5zbGF0ZUVtcHR5LHthcmdzOlswLHNdLGNoZWNrZXI6ZX1dXSkpfXN0YXRpYyBfdHlwZT0iZnJlZXRleHQiO3N0YXRpYyBfZWRpdG9yVHlwZT1sLkZSRUVURVhUO2NvbnN0cnVjdG9yKHQpe3N1cGVyKHsuLi50LG5hbWU6ImZyZWVUZXh0RWRpdG9yIn0pLHRoaXMuI1RzPXQuY29sb3J8fHRzLl9kZWZhdWx0Q29sb3J8fGt0Ll9kZWZhdWx0TGluZUNvbG9yLHRoaXMuI0hzPXQuZm9udFNpemV8fHRzLl9kZWZhdWx0Rm9udFNpemV9c3RhdGljIGluaXRpYWxpemUodCxlKXtrdC5pbml0aWFsaXplKHQsZSx7c3RyaW5nczpbInBkZmpzLWZyZWUtdGV4dC1kZWZhdWx0LWNvbnRlbnQiXX0pO2NvbnN0IGk9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO3RoaXMuX2ludGVybmFsUGFkZGluZz1wYXJzZUZsb2F0KGkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1mcmVldGV4dC1wYWRkaW5nIikpfXN0YXRpYyB1cGRhdGVEZWZhdWx0UGFyYW1zKHQsZSl7c3dpdGNoKHQpe2Nhc2UgYy5GUkVFVEVYVF9TSVpFOnRzLl9kZWZhdWx0Rm9udFNpemU9ZTticmVhaztjYXNlIGMuRlJFRVRFWFRfQ09MT1I6dHMuX2RlZmF1bHRDb2xvcj1lfX11cGRhdGVQYXJhbXModCxlKXtzd2l0Y2godCl7Y2FzZSBjLkZSRUVURVhUX1NJWkU6dGhpcy4jYW4oZSk7YnJlYWs7Y2FzZSBjLkZSRUVURVhUX0NPTE9SOnRoaXMuI29uKGUpfX1zdGF0aWMgZ2V0IGRlZmF1bHRQcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bW2MuRlJFRVRFWFRfU0laRSx0cy5fZGVmYXVsdEZvbnRTaXplXSxbYy5GUkVFVEVYVF9DT0xPUix0cy5fZGVmYXVsdENvbG9yfHxrdC5fZGVmYXVsdExpbmVDb2xvcl1dfWdldCBwcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bW2MuRlJFRVRFWFRfU0laRSx0aGlzLiNIc10sW2MuRlJFRVRFWFRfQ09MT1IsdGhpcy4jVHNdXX0jYW4odCl7Y29uc3QgZT10PT57dGhpcy5lZGl0b3JEaXYuc3R5bGUuZm9udFNpemU9YGNhbGMoJHt0fXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSlgLHRoaXMudHJhbnNsYXRlKDAsLSh0LXRoaXMuI0hzKSp0aGlzLnBhcmVudFNjYWxlKSx0aGlzLiNIcz10LHRoaXMuI2huKCl9LGk9dGhpcy4jSHM7dGhpcy5hZGRDb21tYW5kcyh7Y21kOmUuYmluZCh0aGlzLHQpLHVuZG86ZS5iaW5kKHRoaXMsaSkscG9zdDp0aGlzLl91aU1hbmFnZXIudXBkYXRlVUkuYmluZCh0aGlzLl91aU1hbmFnZXIsdGhpcyksbXVzdEV4ZWM6ITAsdHlwZTpjLkZSRUVURVhUX1NJWkUsb3ZlcndyaXRlSWZTYW1lVHlwZTohMCxrZWVwVW5kbzohMH0pfSNvbih0KXtjb25zdCBlPXQ9Pnt0aGlzLiNUcz10aGlzLmVkaXRvckRpdi5zdHlsZS5jb2xvcj10fSxpPXRoaXMuI1RzO3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0KSx1bmRvOmUuYmluZCh0aGlzLGkpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5GUkVFVEVYVF9DT0xPUixvdmVyd3JpdGVJZlNhbWVUeXBlOiEwLGtlZXBVbmRvOiEwfSl9X3RyYW5zbGF0ZUVtcHR5KHQsZSl7dGhpcy5fdWlNYW5hZ2VyLnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyh0LGUsITApfWdldEluaXRpYWxUcmFuc2xhdGlvbigpe2NvbnN0IHQ9dGhpcy5wYXJlbnRTY2FsZTtyZXR1cm5bLXRzLl9pbnRlcm5hbFBhZGRpbmcqdCwtKHRzLl9pbnRlcm5hbFBhZGRpbmcrdGhpcy4jSHMpKnRdfXJlYnVpbGQoKXt0aGlzLnBhcmVudCYmKHN1cGVyLnJlYnVpbGQoKSxudWxsIT09dGhpcy5kaXYmJih0aGlzLmlzQXR0YWNoZWRUb0RPTXx8dGhpcy5wYXJlbnQuYWRkKHRoaXMpKSl9ZW5hYmxlRWRpdE1vZGUoKXtpZih0aGlzLmlzSW5FZGl0TW9kZSgpKXJldHVybjt0aGlzLnBhcmVudC5zZXRFZGl0aW5nU3RhdGUoITEpLHRoaXMucGFyZW50LnVwZGF0ZVRvb2xiYXIobC5GUkVFVEVYVCksc3VwZXIuZW5hYmxlRWRpdE1vZGUoKSx0aGlzLm92ZXJsYXlEaXYuY2xhc3NMaXN0LnJlbW92ZSgiZW5hYmxlZCIpLHRoaXMuZWRpdG9yRGl2LmNvbnRlbnRFZGl0YWJsZT0hMCx0aGlzLl9pc0RyYWdnYWJsZT0hMSx0aGlzLmRpdi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIpLHRoaXMuI3JuPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgdD10aGlzLl91aU1hbmFnZXIuY29tYmluZWRTaWduYWwodGhpcy4jcm4pO3RoaXMuZWRpdG9yRGl2LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuZWRpdG9yRGl2S2V5ZG93bi5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLHRoaXMuZWRpdG9yRGl2LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmVkaXRvckRpdkZvY3VzLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5lZGl0b3JEaXYuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5lZGl0b3JEaXZCbHVyLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5lZGl0b3JEaXYuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMuZWRpdG9yRGl2SW5wdXQuYmluZCh0aGlzKSx7c2lnbmFsOnR9KSx0aGlzLmVkaXRvckRpdi5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdGhpcy5lZGl0b3JEaXZQYXN0ZS5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfWRpc2FibGVFZGl0TW9kZSgpe3RoaXMuaXNJbkVkaXRNb2RlKCkmJih0aGlzLnBhcmVudC5zZXRFZGl0aW5nU3RhdGUoITApLHN1cGVyLmRpc2FibGVFZGl0TW9kZSgpLHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCJlbmFibGVkIiksdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSExLHRoaXMuZGl2LnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50Iix0aGlzLiNubiksdGhpcy5faXNEcmFnZ2FibGU9ITAsdGhpcy4jcm4/LmFib3J0KCksdGhpcy4jcm49bnVsbCx0aGlzLmRpdi5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLHRoaXMuaXNFZGl0aW5nPSExLHRoaXMucGFyZW50LmRpdi5jbGFzc0xpc3QuYWRkKCJmcmVldGV4dEVkaXRpbmciKSl9Zm9jdXNpbih0KXt0aGlzLl9mb2N1c0V2ZW50c0FsbG93ZWQmJihzdXBlci5mb2N1c2luKHQpLHQudGFyZ2V0IT09dGhpcy5lZGl0b3JEaXYmJnRoaXMuZWRpdG9yRGl2LmZvY3VzKCkpfW9uY2VBZGRlZCgpe3RoaXMud2lkdGh8fCh0aGlzLmVuYWJsZUVkaXRNb2RlKCksdGhpcy5lZGl0b3JEaXYuZm9jdXMoKSx0aGlzLl9pbml0aWFsT3B0aW9ucz8uaXNDZW50ZXJlZCYmdGhpcy5jZW50ZXIoKSx0aGlzLl9pbml0aWFsT3B0aW9ucz1udWxsKX1pc0VtcHR5KCl7cmV0dXJuIXRoaXMuZWRpdG9yRGl2fHwiIj09PXRoaXMuZWRpdG9yRGl2LmlubmVyVGV4dC50cmltKCl9cmVtb3ZlKCl7dGhpcy5pc0VkaXRpbmc9ITEsdGhpcy5wYXJlbnQmJih0aGlzLnBhcmVudC5zZXRFZGl0aW5nU3RhdGUoITApLHRoaXMucGFyZW50LmRpdi5jbGFzc0xpc3QuYWRkKCJmcmVldGV4dEVkaXRpbmciKSksc3VwZXIucmVtb3ZlKCl9I2xuKCl7Y29uc3QgdD1bXTt0aGlzLmVkaXRvckRpdi5ub3JtYWxpemUoKTtsZXQgZT1udWxsO2Zvcihjb25zdCBpIG9mIHRoaXMuZWRpdG9yRGl2LmNoaWxkTm9kZXMpZT8ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmIkJSIj09PWkubm9kZU5hbWV8fCh0LnB1c2godHMuI2NuKGkpKSxlPWkpO3JldHVybiB0LmpvaW4oIlxuIil9I2huKCl7Y29uc3RbdCxlXT10aGlzLnBhcmVudERpbWVuc2lvbnM7bGV0IGk7aWYodGhpcy5pc0F0dGFjaGVkVG9ET00paT10aGlzLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2NvbnN0e2N1cnJlbnRMYXllcjp0LGRpdjplfT10aGlzLHM9ZS5zdHlsZS5kaXNwbGF5LG49ZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpO2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZS5zdHlsZS5kaXNwbGF5PSJoaWRkZW4iLHQuZGl2LmFwcGVuZCh0aGlzLmRpdiksaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGUucmVtb3ZlKCksZS5zdHlsZS5kaXNwbGF5PXMsZS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLG4pfXRoaXMucm90YXRpb24lMTgwPT10aGlzLnBhcmVudFJvdGF0aW9uJTE4MD8odGhpcy53aWR0aD1pLndpZHRoL3QsdGhpcy5oZWlnaHQ9aS5oZWlnaHQvZSk6KHRoaXMud2lkdGg9aS5oZWlnaHQvdCx0aGlzLmhlaWdodD1pLndpZHRoL2UpLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX1jb21taXQoKXtpZighdGhpcy5pc0luRWRpdE1vZGUoKSlyZXR1cm47c3VwZXIuY29tbWl0KCksdGhpcy5kaXNhYmxlRWRpdE1vZGUoKTtjb25zdCB0PXRoaXMuI3NuLGU9dGhpcy4jc249dGhpcy4jbG4oKS50cmltRW5kKCk7aWYodD09PWUpcmV0dXJuO2NvbnN0IGk9dD0+e3RoaXMuI3NuPXQsdD8odGhpcy4jZG4oKSx0aGlzLl91aU1hbmFnZXIucmVidWlsZCh0aGlzKSx0aGlzLiNobigpKTp0aGlzLnJlbW92ZSgpfTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9PntpKGUpfSx1bmRvOigpPT57aSh0KX0sbXVzdEV4ZWM6ITF9KSx0aGlzLiNobigpfXNob3VsZEdldEtleWJvYXJkRXZlbnRzKCl7cmV0dXJuIHRoaXMuaXNJbkVkaXRNb2RlKCl9ZW50ZXJJbkVkaXRNb2RlKCl7dGhpcy5lbmFibGVFZGl0TW9kZSgpLHRoaXMuZWRpdG9yRGl2LmZvY3VzKCl9ZGJsY2xpY2sodCl7dGhpcy5lbnRlckluRWRpdE1vZGUoKX1rZXlkb3duKHQpe3QudGFyZ2V0PT09dGhpcy5kaXYmJiJFbnRlciI9PT10LmtleSYmKHRoaXMuZW50ZXJJbkVkaXRNb2RlKCksdC5wcmV2ZW50RGVmYXVsdCgpKX1lZGl0b3JEaXZLZXlkb3duKHQpe3RzLl9rZXlib2FyZE1hbmFnZXIuZXhlYyh0aGlzLHQpfWVkaXRvckRpdkZvY3VzKHQpe3RoaXMuaXNFZGl0aW5nPSEwfWVkaXRvckRpdkJsdXIodCl7dGhpcy5pc0VkaXRpbmc9ITF9ZWRpdG9yRGl2SW5wdXQodCl7dGhpcy5wYXJlbnQuZGl2LmNsYXNzTGlzdC50b2dnbGUoImZyZWV0ZXh0RWRpdGluZyIsdGhpcy5pc0VtcHR5KCkpfWRpc2FibGVFZGl0aW5nKCl7dGhpcy5lZGl0b3JEaXYuc2V0QXR0cmlidXRlKCJyb2xlIiwiY29tbWVudCIpLHRoaXMuZWRpdG9yRGl2LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1tdWx0aWxpbmUiKX1lbmFibGVFZGl0aW5nKCl7dGhpcy5lZGl0b3JEaXYuc2V0QXR0cmlidXRlKCJyb2xlIiwidGV4dGJveCIpLHRoaXMuZWRpdG9yRGl2LnNldEF0dHJpYnV0ZSgiYXJpYS1tdWx0aWxpbmUiLCEwKX1yZW5kZXIoKXtpZih0aGlzLmRpdilyZXR1cm4gdGhpcy5kaXY7bGV0IHQsZTt0aGlzLndpZHRoJiYodD10aGlzLngsZT10aGlzLnkpLHN1cGVyLnJlbmRlcigpLHRoaXMuZWRpdG9yRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWRpdG9yRGl2LmNsYXNzTmFtZT0iaW50ZXJuYWwiLHRoaXMuZWRpdG9yRGl2LnNldEF0dHJpYnV0ZSgiaWQiLHRoaXMuI25uKSx0aGlzLmVkaXRvckRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWZyZWUtdGV4dCIpLHRoaXMuZW5hYmxlRWRpdGluZygpLGt0Ll9sMTBuUHJvbWlzZS5nZXQoInBkZmpzLWZyZWUtdGV4dC1kZWZhdWx0LWNvbnRlbnQiKS50aGVuKCh0PT50aGlzLmVkaXRvckRpdj8uc2V0QXR0cmlidXRlKCJkZWZhdWx0LWNvbnRlbnQiLHQpKSksdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSEwO2NvbnN0e3N0eWxlOml9PXRoaXMuZWRpdG9yRGl2O2lmKGkuZm9udFNpemU9YGNhbGMoJHt0aGlzLiNIc31weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYCxpLmNvbG9yPXRoaXMuI1RzLHRoaXMuZGl2LmFwcGVuZCh0aGlzLmVkaXRvckRpdiksdGhpcy5vdmVybGF5RGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCJvdmVybGF5IiwiZW5hYmxlZCIpLHRoaXMuZGl2LmFwcGVuZCh0aGlzLm92ZXJsYXlEaXYpLHd0KHRoaXMsdGhpcy5kaXYsWyJkYmxjbGljayIsImtleWRvd24iXSksdGhpcy53aWR0aCl7Y29uc3RbaSxzXT10aGlzLnBhcmVudERpbWVuc2lvbnM7aWYodGhpcy5hbm5vdGF0aW9uRWxlbWVudElkKXtjb25zdHtwb3NpdGlvbjpufT10aGlzLl9pbml0aWFsRGF0YTtsZXRbcixhXT10aGlzLmdldEluaXRpYWxUcmFuc2xhdGlvbigpO1tyLGFdPXRoaXMucGFnZVRyYW5zbGF0aW9uVG9TY3JlZW4ocixhKTtjb25zdFtvLGhdPXRoaXMucGFnZURpbWVuc2lvbnMsW2wsY109dGhpcy5wYWdlVHJhbnNsYXRpb247bGV0IGQsdTtzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSAwOmQ9dCsoblswXS1sKS9vLHU9ZSt0aGlzLmhlaWdodC0oblsxXS1jKS9oO2JyZWFrO2Nhc2UgOTA6ZD10KyhuWzBdLWwpL28sdT1lLShuWzFdLWMpL2gsW3IsYV09W2EsLXJdO2JyZWFrO2Nhc2UgMTgwOmQ9dC10aGlzLndpZHRoKyhuWzBdLWwpL28sdT1lLShuWzFdLWMpL2gsW3IsYV09Wy1yLC1hXTticmVhaztjYXNlIDI3MDpkPXQrKG5bMF0tbC10aGlzLmhlaWdodCpoKS9vLHU9ZSsoblsxXS1jLXRoaXMud2lkdGgqbykvaCxbcixhXT1bLWEscl19dGhpcy5zZXRBdChkKmksdSpzLHIsYSl9ZWxzZSB0aGlzLnNldEF0KHQqaSxlKnMsdGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KnMpO3RoaXMuI2RuKCksdGhpcy5faXNEcmFnZ2FibGU9ITAsdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSExfWVsc2UgdGhpcy5faXNEcmFnZ2FibGU9ITEsdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSEwO3JldHVybiB0aGlzLmRpdn1zdGF0aWMjY24odCl7cmV0dXJuKHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT90Lm5vZGVWYWx1ZTp0LmlubmVyVGV4dCkucmVwbGFjZUFsbChaaSwiIil9ZWRpdG9yRGl2UGFzdGUodCl7Y29uc3QgZT10LmNsaXBib2FyZERhdGF8fHdpbmRvdy5jbGlwYm9hcmREYXRhLHt0eXBlczppfT1lO2lmKDE9PT1pLmxlbmd0aCYmInRleHQvcGxhaW4iPT09aVswXSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9dHMuI3VuKGUuZ2V0RGF0YSgidGV4dCIpfHwiIikucmVwbGFjZUFsbChaaSwiXG4iKTtpZighcylyZXR1cm47Y29uc3Qgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW4ucmFuZ2VDb3VudClyZXR1cm47dGhpcy5lZGl0b3JEaXYubm9ybWFsaXplKCksbi5kZWxldGVGcm9tRG9jdW1lbnQoKTtjb25zdCByPW4uZ2V0UmFuZ2VBdCgwKTtpZighcy5pbmNsdWRlcygiXG4iKSlyZXR1cm4gci5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKSx0aGlzLmVkaXRvckRpdi5ub3JtYWxpemUoKSx2b2lkIG4uY29sbGFwc2VUb1N0YXJ0KCk7Y29uc3R7c3RhcnRDb250YWluZXI6YSxzdGFydE9mZnNldDpvfT1yLGg9W10sbD1bXTtpZihhLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2NvbnN0IHQ9YS5wYXJlbnRFbGVtZW50O2lmKGwucHVzaChhLm5vZGVWYWx1ZS5zbGljZShvKS5yZXBsYWNlQWxsKFppLCIiKSksdCE9PXRoaXMuZWRpdG9yRGl2KXtsZXQgZT1oO2Zvcihjb25zdCBpIG9mIHRoaXMuZWRpdG9yRGl2LmNoaWxkTm9kZXMpaSE9PXQ/ZS5wdXNoKHRzLiNjbihpKSk6ZT1sfWgucHVzaChhLm5vZGVWYWx1ZS5zbGljZSgwLG8pLnJlcGxhY2VBbGwoWmksIiIpKX1lbHNlIGlmKGE9PT10aGlzLmVkaXRvckRpdil7bGV0IHQ9aCxlPTA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5lZGl0b3JEaXYuY2hpbGROb2RlcyllKys9PT1vJiYodD1sKSx0LnB1c2godHMuI2NuKGkpKX10aGlzLiNzbj1gJHtoLmpvaW4oIlxuIil9JHtzfSR7bC5qb2luKCJcbiIpfWAsdGhpcy4jZG4oKTtjb25zdCBjPW5ldyBSYW5nZTtsZXQgZD1oLnJlZHVjZSgoKHQsZSk9PnQrZS5sZW5ndGgpLDApO2Zvcihjb25zdHtmaXJzdENoaWxkOnR9b2YgdGhpcy5lZGl0b3JEaXYuY2hpbGROb2RlcylpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2NvbnN0IGU9dC5ub2RlVmFsdWUubGVuZ3RoO2lmKGQ8PWUpe2Muc2V0U3RhcnQodCxkKSxjLnNldEVuZCh0LGQpO2JyZWFrfWQtPWV9bi5yZW1vdmVBbGxSYW5nZXMoKSxuLmFkZFJhbmdlKGMpfSNkbigpe2lmKHRoaXMuZWRpdG9yRGl2LnJlcGxhY2VDaGlsZHJlbigpLHRoaXMuI3NuKWZvcihjb25zdCB0IG9mIHRoaXMuI3NuLnNwbGl0KCJcbiIpKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuYXBwZW5kKHQ/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSksdGhpcy5lZGl0b3JEaXYuYXBwZW5kKGUpfX0jcG4oKXtyZXR1cm4gdGhpcy4jc24ucmVwbGFjZUFsbCgiwqAiLCIgIil9c3RhdGljI3VuKHQpe3JldHVybiB0LnJlcGxhY2VBbGwoIiAiLCLCoCIpfWdldCBjb250ZW50RGl2KCl7cmV0dXJuIHRoaXMuZWRpdG9yRGl2fXN0YXRpYyBhc3luYyBkZXNlcmlhbGl6ZSh0LGUsaSl7bGV0IHM9bnVsbDtpZih0IGluc3RhbmNlb2YgQmkpe2NvbnN0e2RhdGE6e2RlZmF1bHRBcHBlYXJhbmNlRGF0YTp7Zm9udFNpemU6ZSxmb250Q29sb3I6aX0scmVjdDpuLHJvdGF0aW9uOnIsaWQ6YSxwb3B1cFJlZjpvfSx0ZXh0Q29udGVudDpoLHRleHRQb3NpdGlvbjpjLHBhcmVudDp7cGFnZTp7cGFnZU51bWJlcjpkfX19PXQ7aWYoIWh8fDA9PT1oLmxlbmd0aClyZXR1cm4gbnVsbDtzPXQ9e2Fubm90YXRpb25UeXBlOmwuRlJFRVRFWFQsY29sb3I6QXJyYXkuZnJvbShpKSxmb250U2l6ZTplLHZhbHVlOmguam9pbigiXG4iKSxwb3NpdGlvbjpjLHBhZ2VJbmRleDpkLTEscmVjdDpuLnNsaWNlKDApLHJvdGF0aW9uOnIsaWQ6YSxkZWxldGVkOiExLHBvcHVwUmVmOm99fWNvbnN0IG49YXdhaXQgc3VwZXIuZGVzZXJpYWxpemUodCxlLGkpO3JldHVybiBuLiNIcz10LmZvbnRTaXplLG4uI1RzPXoubWFrZUhleENvbG9yKC4uLnQuY29sb3IpLG4uI3NuPXRzLiN1bih0LnZhbHVlKSxuLmFubm90YXRpb25FbGVtZW50SWQ9dC5pZHx8bnVsbCxuLl9pbml0aWFsRGF0YT1zLG59c2VyaWFsaXplKHQ9ITEpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiBudWxsO2lmKHRoaXMuZGVsZXRlZClyZXR1cm4gdGhpcy5zZXJpYWxpemVEZWxldGVkKCk7Y29uc3QgZT10cy5faW50ZXJuYWxQYWRkaW5nKnRoaXMucGFyZW50U2NhbGUsaT10aGlzLmdldFJlY3QoZSxlKSxzPWt0Ll9jb2xvck1hbmFnZXIuY29udmVydCh0aGlzLmlzQXR0YWNoZWRUb0RPTT9nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWRpdG9yRGl2KS5jb2xvcjp0aGlzLiNUcyksbj17YW5ub3RhdGlvblR5cGU6bC5GUkVFVEVYVCxjb2xvcjpzLGZvbnRTaXplOnRoaXMuI0hzLHZhbHVlOnRoaXMuI3BuKCkscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LHJlY3Q6aSxyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHN0cnVjdFRyZWVQYXJlbnRJZDp0aGlzLl9zdHJ1Y3RUcmVlUGFyZW50SWR9O3JldHVybiB0P246dGhpcy5hbm5vdGF0aW9uRWxlbWVudElkJiYhdGhpcy4jZ24obik/bnVsbDoobi5pZD10aGlzLmFubm90YXRpb25FbGVtZW50SWQsbil9I2duKHQpe2NvbnN0e3ZhbHVlOmUsZm9udFNpemU6aSxjb2xvcjpzLHBhZ2VJbmRleDpufT10aGlzLl9pbml0aWFsRGF0YTtyZXR1cm4gdGhpcy5faGFzQmVlbk1vdmVkfHx0LnZhbHVlIT09ZXx8dC5mb250U2l6ZSE9PWl8fHQuY29sb3Iuc29tZSgoKHQsZSk9PnQhPT1zW2VdKSl8fHQucGFnZUluZGV4IT09bn1yZW5kZXJBbm5vdGF0aW9uRWxlbWVudCh0KXtjb25zdCBlPXN1cGVyLnJlbmRlckFubm90YXRpb25FbGVtZW50KHQpO2lmKHRoaXMuZGVsZXRlZClyZXR1cm4gZTtjb25zdHtzdHlsZTppfT1lO2kuZm9udFNpemU9YGNhbGMoJHt0aGlzLiNIc31weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYCxpLmNvbG9yPXRoaXMuI1RzLGUucmVwbGFjZUNoaWxkcmVuKCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jc24uc3BsaXQoIlxuIikpe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5hcHBlbmQodD9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKSxlLmFwcGVuZChpKX1jb25zdCBzPXRzLl9pbnRlcm5hbFBhZGRpbmcqdGhpcy5wYXJlbnRTY2FsZTtyZXR1cm4gdC51cGRhdGVFZGl0ZWQoe3JlY3Q6dGhpcy5nZXRSZWN0KHMscykscG9wdXBDb250ZW50OnRoaXMuI3NufSksZX1yZXNldEFubm90YXRpb25FbGVtZW50KHQpe3N1cGVyLnJlc2V0QW5ub3RhdGlvbkVsZW1lbnQodCksdC5yZXNldEVkaXRlZCgpfX1jbGFzcyBlc3sjZm47I21uPVtdOyNibj1bXTtjb25zdHJ1Y3Rvcih0LGU9MCxpPTAscz0hMCl7bGV0IG49MS8wLHI9LTEvMCxhPTEvMCxvPS0xLzA7Y29uc3QgaD0xMCoqLTQ7Zm9yKGNvbnN0e3g6aSx5OnMsd2lkdGg6bCxoZWlnaHQ6Y31vZiB0KXtjb25zdCB0PU1hdGguZmxvb3IoKGktZSkvaCkqaCxkPU1hdGguY2VpbCgoaStsK2UpL2gpKmgsdT1NYXRoLmZsb29yKChzLWUpL2gpKmgscD1NYXRoLmNlaWwoKHMrYytlKS9oKSpoLGc9W3QsdSxwLCEwXSxmPVtkLHUscCwhMV07dGhpcy4jbW4ucHVzaChnLGYpLG49TWF0aC5taW4obix0KSxyPU1hdGgubWF4KHIsZCksYT1NYXRoLm1pbihhLHUpLG89TWF0aC5tYXgobyxwKX1jb25zdCBsPXItbisyKmksYz1vLWErMippLGQ9bi1pLHU9YS1pLHA9dGhpcy4jbW4uYXQocz8tMTotMiksZz1bcFswXSxwWzJdXTtmb3IoY29uc3QgdCBvZiB0aGlzLiNtbil7Y29uc3RbZSxpLHNdPXQ7dFswXT0oZS1kKS9sLHRbMV09KGktdSkvYyx0WzJdPShzLXUpL2N9dGhpcy4jZm49e3g6ZCx5OnUsd2lkdGg6bCxoZWlnaHQ6YyxsYXN0UG9pbnQ6Z319Z2V0T3V0bGluZXMoKXt0aGlzLiNtbi5zb3J0KCgodCxlKT0+dFswXS1lWzBdfHx0WzFdLWVbMV18fHRbMl0tZVsyXSkpO2NvbnN0IHQ9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy4jbW4pZVszXT8odC5wdXNoKC4uLnRoaXMuI3ZuKGUpKSx0aGlzLiN5bihlKSk6KHRoaXMuI0FuKGUpLHQucHVzaCguLi50aGlzLiN2bihlKSkpO3JldHVybiB0aGlzLiN3bih0KX0jd24odCl7Y29uc3QgZT1bXSxpPW5ldyBTZXQ7Zm9yKGNvbnN0IGkgb2YgdCl7Y29uc3RbdCxzLG5dPWk7ZS5wdXNoKFt0LHMsaV0sW3QsbixpXSl9ZS5zb3J0KCgodCxlKT0+dFsxXS1lWzFdfHx0WzBdLWVbMF0pKTtmb3IobGV0IHQ9MCxzPWUubGVuZ3RoO3Q8czt0Kz0yKXtjb25zdCBzPWVbdF1bMl0sbj1lW3QrMV1bMl07cy5wdXNoKG4pLG4ucHVzaChzKSxpLmFkZChzKSxpLmFkZChuKX1jb25zdCBzPVtdO2xldCBuO2Zvcig7aS5zaXplPjA7KXtjb25zdCB0PWkudmFsdWVzKCkubmV4dCgpLnZhbHVlO2xldFtlLHIsYSxvLGhdPXQ7aS5kZWxldGUodCk7bGV0IGw9ZSxjPXI7Zm9yKG49W2UsYV0scy5wdXNoKG4pOzspe2xldCB0O2lmKGkuaGFzKG8pKXQ9bztlbHNle2lmKCFpLmhhcyhoKSlicmVhazt0PWh9aS5kZWxldGUodCksW2UscixhLG8saF09dCxsIT09ZSYmKG4ucHVzaChsLGMsZSxjPT09cj9yOmEpLGw9ZSksYz1jPT09cj9hOnJ9bi5wdXNoKGwsYyl9cmV0dXJuIG5ldyBzcyhzLHRoaXMuI2ZuKX0jeG4odCl7Y29uc3QgZT10aGlzLiNibjtsZXQgaT0wLHM9ZS5sZW5ndGgtMTtmb3IoO2k8PXM7KXtjb25zdCBuPWkrcz4+MSxyPWVbbl1bMF07aWYocj09PXQpcmV0dXJuIG47cjx0P2k9bisxOnM9bi0xfXJldHVybiBzKzF9I3luKFssdCxlXSl7Y29uc3QgaT10aGlzLiN4bih0KTt0aGlzLiNibi5zcGxpY2UoaSwwLFt0LGVdKX0jQW4oWyx0LGVdKXtjb25zdCBpPXRoaXMuI3huKHQpO2ZvcihsZXQgcz1pO3M8dGhpcy4jYm4ubGVuZ3RoO3MrKyl7Y29uc3RbaSxuXT10aGlzLiNibltzXTtpZihpIT09dClicmVhaztpZihpPT09dCYmbj09PWUpcmV0dXJuIHZvaWQgdGhpcy4jYm4uc3BsaWNlKHMsMSl9Zm9yKGxldCBzPWktMTtzPj0wO3MtLSl7Y29uc3RbaSxuXT10aGlzLiNibltzXTtpZihpIT09dClicmVhaztpZihpPT09dCYmbj09PWUpcmV0dXJuIHZvaWQgdGhpcy4jYm4uc3BsaWNlKHMsMSl9fSN2bih0KXtjb25zdFtlLGksc109dCxuPVtbZSxpLHNdXSxyPXRoaXMuI3huKHMpO2ZvcihsZXQgdD0wO3Q8cjt0Kyspe2NvbnN0W2ksc109dGhpcy4jYm5bdF07Zm9yKGxldCB0PTAscj1uLmxlbmd0aDt0PHI7dCsrKXtjb25zdFssYSxvXT1uW3RdO2lmKCEoczw9YXx8bzw9aSkpaWYoYT49aSlpZihvPnMpblt0XVsxXT1zO2Vsc2V7aWYoMT09PXIpcmV0dXJuW107bi5zcGxpY2UodCwxKSx0LS0sci0tfWVsc2Ugblt0XVsyXT1pLG8+cyYmbi5wdXNoKFtlLHMsb10pfX1yZXR1cm4gbn19Y2xhc3MgaXN7dG9TVkdQYXRoKCl7dGhyb3cgbmV3IEVycm9yKCJBYnN0cmFjdCBtZXRob2QgYHRvU1ZHUGF0aGAgbXVzdCBiZSBpbXBsZW1lbnRlZC4iKX1nZXQgYm94KCl7dGhyb3cgbmV3IEVycm9yKCJBYnN0cmFjdCBnZXR0ZXIgYGJveGAgbXVzdCBiZSBpbXBsZW1lbnRlZC4iKX1zZXJpYWxpemUodCxlKXt0aHJvdyBuZXcgRXJyb3IoIkFic3RyYWN0IG1ldGhvZCBgc2VyaWFsaXplYCBtdXN0IGJlIGltcGxlbWVudGVkLiIpfWdldCBmcmVlKCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiByc319Y2xhc3Mgc3MgZXh0ZW5kcyBpc3sjZm47I19uO2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLiNfbj10LHRoaXMuI2ZuPWV9dG9TVkdQYXRoKCl7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLiNfbil7bGV0W2ksc109ZTt0LnB1c2goYE0ke2l9ICR7c31gKTtmb3IobGV0IG49MjtuPGUubGVuZ3RoO24rPTIpe2NvbnN0IHI9ZVtuXSxhPWVbbisxXTtyPT09aT8odC5wdXNoKGBWJHthfWApLHM9YSk6YT09PXMmJih0LnB1c2goYEgke3J9YCksaT1yKX10LnB1c2goIloiKX1yZXR1cm4gdC5qb2luKCIgIil9c2VyaWFsaXplKFt0LGUsaSxzXSxuKXtjb25zdCByPVtdLGE9aS10LG89cy1lO2Zvcihjb25zdCBlIG9mIHRoaXMuI19uKXtjb25zdCBpPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKz0yKWlbbl09dCtlW25dKmEsaVtuKzFdPXMtZVtuKzFdKm87ci5wdXNoKGkpfXJldHVybiByfWdldCBib3goKXtyZXR1cm4gdGhpcy4jZm59fWNsYXNzIG5zeyNmbjsjRW49W107I0NuOyNTbjsjVG49W107I01uPW5ldyBGbG9hdDY0QXJyYXkoMTgpOyNrbjsjSW47I1JuOyNQbjsjRG47I0xuOyNGbj1bXTtzdGF0aWMjT249ODtzdGF0aWMjTm49MjtzdGF0aWMjQm49bnMuI09uK25zLiNObjtjb25zdHJ1Y3Rvcih7eDp0LHk6ZX0saSxzLG4scixhPTApe3RoaXMuI2ZuPWksdGhpcy4jTG49bipzLHRoaXMuI1NuPXIsdGhpcy4jTW4uc2V0KFtOYU4sTmFOLE5hTixOYU4sdCxlXSw2KSx0aGlzLiNDbj1hLHRoaXMuI1BuPW5zLiNPbipzLHRoaXMuI1JuPW5zLiNCbipzLHRoaXMuI0RuPXMsdGhpcy4jRm4ucHVzaCh0LGUpfWdldCBmcmVlKCl7cmV0dXJuITB9aXNFbXB0eSgpe3JldHVybiBpc05hTih0aGlzLiNNbls4XSl9I3puKCl7Y29uc3QgdD10aGlzLiNNbi5zdWJhcnJheSg0LDYpLGU9dGhpcy4jTW4uc3ViYXJyYXkoMTYsMTgpLFtpLHMsbixyXT10aGlzLiNmbjtyZXR1cm5bKHRoaXMuI2tuKyh0WzBdLWVbMF0pLzItaSkvbiwodGhpcy4jSW4rKHRbMV0tZVsxXSkvMi1zKS9yLCh0aGlzLiNrbisoZVswXS10WzBdKS8yLWkpL24sKHRoaXMuI0luKyhlWzFdLXRbMV0pLzItcykvcl19YWRkKHt4OnQseTplfSl7dGhpcy4ja249dCx0aGlzLiNJbj1lO2NvbnN0W2kscyxuLHJdPXRoaXMuI2ZuO2xldFthLG8saCxsXT10aGlzLiNNbi5zdWJhcnJheSg4LDEyKTtjb25zdCBjPXQtaCxkPWUtbCx1PU1hdGguaHlwb3QoYyxkKTtpZih1PHRoaXMuI1JuKXJldHVybiExO2NvbnN0IHA9dS10aGlzLiNQbixnPXAvdSxmPWcqYyxtPWcqZDtsZXQgYj1hLHY9bzthPWgsbz1sLGgrPWYsbCs9bSx0aGlzLiNGbj8ucHVzaCh0LGUpO2NvbnN0IHk9Zi9wLEE9LW0vcCp0aGlzLiNMbix3PXkqdGhpcy4jTG47cmV0dXJuIHRoaXMuI01uLnNldCh0aGlzLiNNbi5zdWJhcnJheSgyLDgpLDApLHRoaXMuI01uLnNldChbaCtBLGwrd10sNCksdGhpcy4jTW4uc2V0KHRoaXMuI01uLnN1YmFycmF5KDE0LDE4KSwxMiksdGhpcy4jTW4uc2V0KFtoLUEsbC13XSwxNiksaXNOYU4odGhpcy4jTW5bNl0pPygwPT09dGhpcy4jVG4ubGVuZ3RoJiYodGhpcy4jTW4uc2V0KFthK0Esbyt3XSwyKSx0aGlzLiNUbi5wdXNoKE5hTixOYU4sTmFOLE5hTiwoYStBLWkpL24sKG8rdy1zKS9yKSx0aGlzLiNNbi5zZXQoW2EtQSxvLXddLDE0KSx0aGlzLiNFbi5wdXNoKE5hTixOYU4sTmFOLE5hTiwoYS1BLWkpL24sKG8tdy1zKS9yKSksdGhpcy4jTW4uc2V0KFtiLHYsYSxvLGgsbF0sNiksIXRoaXMuaXNFbXB0eSgpKToodGhpcy4jTW4uc2V0KFtiLHYsYSxvLGgsbF0sNiksTWF0aC5hYnMoTWF0aC5hdGFuMih2LW8sYi1hKS1NYXRoLmF0YW4yKG0sZikpPE1hdGguUEkvMj8oW2EsbyxoLGxdPXRoaXMuI01uLnN1YmFycmF5KDIsNiksdGhpcy4jVG4ucHVzaChOYU4sTmFOLE5hTixOYU4sKChhK2gpLzItaSkvbiwoKG8rbCkvMi1zKS9yKSxbYSxvLGIsdl09dGhpcy4jTW4uc3ViYXJyYXkoMTQsMTgpLHRoaXMuI0VuLnB1c2goTmFOLE5hTixOYU4sTmFOLCgoYithKS8yLWkpL24sKCh2K28pLzItcykvciksITApOihbYix2LGEsbyxoLGxdPXRoaXMuI01uLnN1YmFycmF5KDAsNiksdGhpcy4jVG4ucHVzaCgoKGIrNSphKS82LWkpL24sKCh2KzUqbykvNi1zKS9yLCgoNSphK2gpLzYtaSkvbiwoKDUqbytsKS82LXMpL3IsKChhK2gpLzItaSkvbiwoKG8rbCkvMi1zKS9yKSxbaCxsLGEsbyxiLHZdPXRoaXMuI01uLnN1YmFycmF5KDEyLDE4KSx0aGlzLiNFbi5wdXNoKCgoYis1KmEpLzYtaSkvbiwoKHYrNSpvKS82LXMpL3IsKCg1KmEraCkvNi1pKS9uLCgoNSpvK2wpLzYtcykvciwoKGEraCkvMi1pKS9uLCgobytsKS8yLXMpL3IpLCEwKSl9dG9TVkdQYXRoKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIiI7Y29uc3QgdD10aGlzLiNUbixlPXRoaXMuI0VuLGk9dGhpcy4jTW4uc3ViYXJyYXkoNCw2KSxzPXRoaXMuI01uLnN1YmFycmF5KDE2LDE4KSxbbixyLGEsb109dGhpcy4jZm4sW2gsbCxjLGRdPXRoaXMuI3puKCk7aWYoaXNOYU4odGhpcy4jTW5bNl0pJiYhdGhpcy5pc0VtcHR5KCkpcmV0dXJuYE0keyh0aGlzLiNNblsyXS1uKS9hfSAkeyh0aGlzLiNNblszXS1yKS9vfSBMJHsodGhpcy4jTW5bNF0tbikvYX0gJHsodGhpcy4jTW5bNV0tcikvb30gTCR7aH0gJHtsfSBMJHtjfSAke2R9IEwkeyh0aGlzLiNNblsxNl0tbikvYX0gJHsodGhpcy4jTW5bMTddLXIpL299IEwkeyh0aGlzLiNNblsxNF0tbikvYX0gJHsodGhpcy4jTW5bMTVdLXIpL299IFpgO2NvbnN0IHU9W107dS5wdXNoKGBNJHt0WzRdfSAke3RbNV19YCk7Zm9yKGxldCBlPTY7ZTx0Lmxlbmd0aDtlKz02KWlzTmFOKHRbZV0pP3UucHVzaChgTCR7dFtlKzRdfSAke3RbZSs1XX1gKTp1LnB1c2goYEMke3RbZV19ICR7dFtlKzFdfSAke3RbZSsyXX0gJHt0W2UrM119ICR7dFtlKzRdfSAke3RbZSs1XX1gKTt1LnB1c2goYEwkeyhpWzBdLW4pL2F9ICR7KGlbMV0tcikvb30gTCR7aH0gJHtsfSBMJHtjfSAke2R9IEwkeyhzWzBdLW4pL2F9ICR7KHNbMV0tcikvb31gKTtmb3IobGV0IHQ9ZS5sZW5ndGgtNjt0Pj02O3QtPTYpaXNOYU4oZVt0XSk/dS5wdXNoKGBMJHtlW3QrNF19ICR7ZVt0KzVdfWApOnUucHVzaChgQyR7ZVt0XX0gJHtlW3QrMV19ICR7ZVt0KzJdfSAke2VbdCszXX0gJHtlW3QrNF19ICR7ZVt0KzVdfWApO3JldHVybiB1LnB1c2goYEwke2VbNF19ICR7ZVs1XX0gWmApLHUuam9pbigiICIpfWdldE91dGxpbmVzKCl7Y29uc3QgdD10aGlzLiNUbixlPXRoaXMuI0VuLGk9dGhpcy4jTW4scz1pLnN1YmFycmF5KDQsNiksbj1pLnN1YmFycmF5KDE2LDE4KSxbcixhLG8saF09dGhpcy4jZm4sbD1uZXcgRmxvYXQ2NEFycmF5KCh0aGlzLiNGbj8ubGVuZ3RoPz8wKSsyKTtmb3IobGV0IHQ9MCxlPWwubGVuZ3RoLTI7dDxlO3QrPTIpbFt0XT0odGhpcy4jRm5bdF0tcikvbyxsW3QrMV09KHRoaXMuI0ZuW3QrMV0tYSkvaDtsW2wubGVuZ3RoLTJdPSh0aGlzLiNrbi1yKS9vLGxbbC5sZW5ndGgtMV09KHRoaXMuI0luLWEpL2g7Y29uc3RbYyxkLHUscF09dGhpcy4jem4oKTtpZihpc05hTihpWzZdKSYmIXRoaXMuaXNFbXB0eSgpKXtjb25zdCB0PW5ldyBGbG9hdDY0QXJyYXkoMzYpO3JldHVybiB0LnNldChbTmFOLE5hTixOYU4sTmFOLChpWzJdLXIpL28sKGlbM10tYSkvaCxOYU4sTmFOLE5hTixOYU4sKGlbNF0tcikvbywoaVs1XS1hKS9oLE5hTixOYU4sTmFOLE5hTixjLGQsTmFOLE5hTixOYU4sTmFOLHUscCxOYU4sTmFOLE5hTixOYU4sKGlbMTZdLXIpL28sKGlbMTddLWEpL2gsTmFOLE5hTixOYU4sTmFOLChpWzE0XS1yKS9vLChpWzE1XS1hKS9oXSwwKSxuZXcgcnModCxsLHRoaXMuI2ZuLHRoaXMuI0RuLHRoaXMuI0NuLHRoaXMuI1NuKX1jb25zdCBnPW5ldyBGbG9hdDY0QXJyYXkodGhpcy4jVG4ubGVuZ3RoKzI0K3RoaXMuI0VuLmxlbmd0aCk7bGV0IGY9dC5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxmO2UrPTIpaXNOYU4odFtlXSk/Z1tlXT1nW2UrMV09TmFOOihnW2VdPXRbZV0sZ1tlKzFdPXRbZSsxXSk7Zy5zZXQoW05hTixOYU4sTmFOLE5hTiwoc1swXS1yKS9vLChzWzFdLWEpL2gsTmFOLE5hTixOYU4sTmFOLGMsZCxOYU4sTmFOLE5hTixOYU4sdSxwLE5hTixOYU4sTmFOLE5hTiwoblswXS1yKS9vLChuWzFdLWEpL2hdLGYpLGYrPTI0O2ZvcihsZXQgdD1lLmxlbmd0aC02O3Q+PTY7dC09Nilmb3IobGV0IGk9MDtpPDY7aSs9Milpc05hTihlW3QraV0pPyhnW2ZdPWdbZisxXT1OYU4sZis9Mik6KGdbZl09ZVt0K2ldLGdbZisxXT1lW3QraSsxXSxmKz0yKTtyZXR1cm4gZy5zZXQoW05hTixOYU4sTmFOLE5hTixlWzRdLGVbNV1dLGYpLG5ldyBycyhnLGwsdGhpcy4jZm4sdGhpcy4jRG4sdGhpcy4jQ24sdGhpcy4jU24pfX1jbGFzcyBycyBleHRlbmRzIGlzeyNmbjsjSG49bnVsbDsjQ247I1NuOyNGbjsjRG47I2puO2NvbnN0cnVjdG9yKHQsZSxpLHMsbixyKXtzdXBlcigpLHRoaXMuI2puPXQsdGhpcy4jRm49ZSx0aGlzLiNmbj1pLHRoaXMuI0RuPXMsdGhpcy4jQ249bix0aGlzLiNTbj1yLHRoaXMuI1VuKHIpO2NvbnN0e3g6YSx5Om8sd2lkdGg6aCxoZWlnaHQ6bH09dGhpcy4jSG47Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil0W2VdPSh0W2VdLWEpL2gsdFtlKzFdPSh0W2UrMV0tbykvbDtmb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kz0yKWVbdF09KGVbdF0tYSkvaCxlW3QrMV09KGVbdCsxXS1vKS9sfXRvU1ZHUGF0aCgpe2NvbnN0IHQ9W2BNJHt0aGlzLiNqbls0XX0gJHt0aGlzLiNqbls1XX1gXTtmb3IobGV0IGU9NixpPXRoaXMuI2puLmxlbmd0aDtlPGk7ZSs9Nilpc05hTih0aGlzLiNqbltlXSk/dC5wdXNoKGBMJHt0aGlzLiNqbltlKzRdfSAke3RoaXMuI2puW2UrNV19YCk6dC5wdXNoKGBDJHt0aGlzLiNqbltlXX0gJHt0aGlzLiNqbltlKzFdfSAke3RoaXMuI2puW2UrMl19ICR7dGhpcy4jam5bZSszXX0gJHt0aGlzLiNqbltlKzRdfSAke3RoaXMuI2puW2UrNV19YCk7cmV0dXJuIHQucHVzaCgiWiIpLHQuam9pbigiICIpfXNlcmlhbGl6ZShbdCxlLGksc10sbil7Y29uc3Qgcj1pLXQsYT1zLWU7bGV0IG8saDtzd2l0Y2gobil7Y2FzZSAwOm89dGhpcy4jJG4odGhpcy4jam4sdCxzLHIsLWEpLGg9dGhpcy4jJG4odGhpcy4jRm4sdCxzLHIsLWEpO2JyZWFrO2Nhc2UgOTA6bz10aGlzLiNXbih0aGlzLiNqbix0LGUscixhKSxoPXRoaXMuI1duKHRoaXMuI0ZuLHQsZSxyLGEpO2JyZWFrO2Nhc2UgMTgwOm89dGhpcy4jJG4odGhpcy4jam4saSxlLC1yLGEpLGg9dGhpcy4jJG4odGhpcy4jRm4saSxlLC1yLGEpO2JyZWFrO2Nhc2UgMjcwOm89dGhpcy4jV24odGhpcy4jam4saSxzLC1yLC1hKSxoPXRoaXMuI1duKHRoaXMuI0ZuLGkscywtciwtYSl9cmV0dXJue291dGxpbmU6QXJyYXkuZnJvbShvKSxwb2ludHM6W0FycmF5LmZyb20oaCldfX0jJG4odCxlLGkscyxuKXtjb25zdCByPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgYT0wLG89dC5sZW5ndGg7YTxvO2ErPTIpclthXT1lK3RbYV0qcyxyW2ErMV09aSt0W2ErMV0qbjtyZXR1cm4gcn0jV24odCxlLGkscyxuKXtjb25zdCByPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgYT0wLG89dC5sZW5ndGg7YTxvO2ErPTIpclthXT1lK3RbYSsxXSpzLHJbYSsxXT1pK3RbYV0qbjtyZXR1cm4gcn0jVW4odCl7Y29uc3QgZT10aGlzLiNqbjtsZXQgaT1lWzRdLHM9ZVs1XSxuPWkscj1zLGE9aSxvPXMsaD1pLGw9cztjb25zdCBjPXQ/TWF0aC5tYXg6TWF0aC5taW47Zm9yKGxldCB0PTYsZD1lLmxlbmd0aDt0PGQ7dCs9Nil7aWYoaXNOYU4oZVt0XSkpbj1NYXRoLm1pbihuLGVbdCs0XSkscj1NYXRoLm1pbihyLGVbdCs1XSksYT1NYXRoLm1heChhLGVbdCs0XSksbz1NYXRoLm1heChvLGVbdCs1XSksbDxlW3QrNV0/KGg9ZVt0KzRdLGw9ZVt0KzVdKTpsPT09ZVt0KzVdJiYoaD1jKGgsZVt0KzRdKSk7ZWxzZXtjb25zdCBkPXouYmV6aWVyQm91bmRpbmdCb3goaSxzLC4uLmUuc2xpY2UodCx0KzYpKTtuPU1hdGgubWluKG4sZFswXSkscj1NYXRoLm1pbihyLGRbMV0pLGE9TWF0aC5tYXgoYSxkWzJdKSxvPU1hdGgubWF4KG8sZFszXSksbDxkWzNdPyhoPWRbMl0sbD1kWzNdKTpsPT09ZFszXSYmKGg9YyhoLGRbMl0pKX1pPWVbdCs0XSxzPWVbdCs1XX1jb25zdCBkPW4tdGhpcy4jQ24sdT1yLXRoaXMuI0NuLHA9YS1uKzIqdGhpcy4jQ24sZz1vLXIrMip0aGlzLiNDbjt0aGlzLiNIbj17eDpkLHk6dSx3aWR0aDpwLGhlaWdodDpnLGxhc3RQb2ludDpbaCxsXX19Z2V0IGJveCgpe3JldHVybiB0aGlzLiNIbn1nZXROZXdPdXRsaW5lKHQsZSl7Y29uc3R7eDppLHk6cyx3aWR0aDpuLGhlaWdodDpyfT10aGlzLiNIbixbYSxvLGgsbF09dGhpcy4jZm4sYz1uKmgsZD1yKmwsdT1pKmgrYSxwPXMqbCtvLGc9bmV3IG5zKHt4OnRoaXMuI0ZuWzBdKmMrdSx5OnRoaXMuI0ZuWzFdKmQrcH0sdGhpcy4jZm4sdGhpcy4jRG4sdCx0aGlzLiNTbixlPz90aGlzLiNDbik7Zm9yKGxldCB0PTI7dDx0aGlzLiNGbi5sZW5ndGg7dCs9MilnLmFkZCh7eDp0aGlzLiNGblt0XSpjK3UseTp0aGlzLiNGblt0KzFdKmQrcH0pO3JldHVybiBnLmdldE91dGxpbmVzKCl9fWNsYXNzIGFzeyN5cz10aGlzLiNBcy5iaW5kKHRoaXMpOyNHbj10aGlzLiNsLmJpbmQodGhpcyk7I1ZuPW51bGw7I3FuPW51bGw7I1huOyNLbj1udWxsOyNZbj0hMTsjUW49ITE7I3I9bnVsbDsjSm47I2Y9bnVsbDsjWm47c3RhdGljI3RyPW51bGw7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7cmV0dXJuIEModGhpcywiX2tleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sYXMucHJvdG90eXBlLl9oaWRlRHJvcGRvd25Gcm9tS2V5Ym9hcmRdLFtbIiAiLCJtYWMrICJdLGFzLnByb3RvdHlwZS5fY29sb3JTZWxlY3RGcm9tS2V5Ym9hcmRdLFtbIkFycm93RG93biIsIkFycm93UmlnaHQiLCJtYWMrQXJyb3dEb3duIiwibWFjK0Fycm93UmlnaHQiXSxhcy5wcm90b3R5cGUuX21vdmVUb05leHRdLFtbIkFycm93VXAiLCJBcnJvd0xlZnQiLCJtYWMrQXJyb3dVcCIsIm1hYytBcnJvd0xlZnQiXSxhcy5wcm90b3R5cGUuX21vdmVUb1ByZXZpb3VzXSxbWyJIb21lIiwibWFjK0hvbWUiXSxhcy5wcm90b3R5cGUuX21vdmVUb0JlZ2lubmluZ10sW1siRW5kIiwibWFjK0VuZCJdLGFzLnByb3RvdHlwZS5fbW92ZVRvRW5kXV0pKX1jb25zdHJ1Y3Rvcih7ZWRpdG9yOnQ9bnVsbCx1aU1hbmFnZXI6ZT1udWxsfSl7dD8odGhpcy4jUW49ITEsdGhpcy4jWm49Yy5ISUdITElHSFRfQ09MT1IsdGhpcy4jcj10KToodGhpcy4jUW49ITAsdGhpcy4jWm49Yy5ISUdITElHSFRfREVGQVVMVF9DT0xPUiksdGhpcy4jZj10Py5fdWlNYW5hZ2VyfHxlLHRoaXMuI0puPXRoaXMuI2YuX2V2ZW50QnVzLHRoaXMuI1huPXQ/LmNvbG9yfHx0aGlzLiNmPy5oaWdobGlnaHRDb2xvcnMudmFsdWVzKCkubmV4dCgpLnZhbHVlfHwiI0ZGRkY5OCIsYXMuI3RyfHw9T2JqZWN0LmZyZWV6ZSh7Ymx1ZToicGRmanMtZWRpdG9yLWNvbG9ycGlja2VyLWJsdWUiLGdyZWVuOiJwZGZqcy1lZGl0b3ItY29sb3JwaWNrZXItZ3JlZW4iLHBpbms6InBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1waW5rIixyZWQ6InBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1yZWQiLHllbGxvdzoicGRmanMtZWRpdG9yLWNvbG9ycGlja2VyLXllbGxvdyJ9KX1yZW5kZXJCdXR0b24oKXtjb25zdCB0PXRoaXMuI1ZuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3QuY2xhc3NOYW1lPSJjb2xvclBpY2tlciIsdC50YWJJbmRleD0iMCIsdC5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1idXR0b24iKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1oYXNwb3B1cCIsITApO2NvbnN0IGU9dGhpcy4jZi5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuI2VyLmJpbmQodGhpcykse3NpZ25hbDplfSksdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLiN5cyx7c2lnbmFsOmV9KTtjb25zdCBpPXRoaXMuI3FuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtyZXR1cm4gaS5jbGFzc05hbWU9InN3YXRjaCIsaS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCksaS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9dGhpcy4jWG4sdC5hcHBlbmQoaSksdH1yZW5kZXJNYWluRHJvcGRvd24oKXtjb25zdCB0PXRoaXMuI0tuPXRoaXMuI2lyKCk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJhcmlhLW9yaWVudGF0aW9uIiwiaG9yaXpvbnRhbCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLCJoaWdobGlnaHRDb2xvclBpY2tlckxhYmVsIiksdH0jaXIoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9dGhpcy4jZi5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6ZX0pLHQuY2xhc3NOYW1lPSJkcm9wZG93biIsdC5yb2xlPSJsaXN0Ym94Iix0LnNldEF0dHJpYnV0ZSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLCExKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1vcmllbnRhdGlvbiIsInZlcnRpY2FsIiksdC5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1kcm9wZG93biIpO2Zvcihjb25zdFtpLHNdb2YgdGhpcy4jZi5oaWdobGlnaHRDb2xvcnMpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7bi50YWJJbmRleD0iMCIsbi5yb2xlPSJvcHRpb24iLG4uc2V0QXR0cmlidXRlKCJkYXRhLWNvbG9yIixzKSxuLnRpdGxlPWksbi5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsYXMuI3RyW2ldKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtuLmFwcGVuZChyKSxyLmNsYXNzTmFtZT0ic3dhdGNoIixyLnN0eWxlLmJhY2tncm91bmRDb2xvcj1zLG4uc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixzPT09dGhpcy4jWG4pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuI3NyLmJpbmQodGhpcyxzKSx7c2lnbmFsOmV9KSx0LmFwcGVuZChuKX1yZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLiN5cyx7c2lnbmFsOmV9KSx0fSNzcih0LGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy4jSm4uZGlzcGF0Y2goInN3aXRjaGFubm90YXRpb25lZGl0b3JwYXJhbXMiLHtzb3VyY2U6dGhpcyx0eXBlOnRoaXMuI1puLHZhbHVlOnR9KX1fY29sb3JTZWxlY3RGcm9tS2V5Ym9hcmQodCl7aWYodC50YXJnZXQ9PT10aGlzLiNWbilyZXR1cm4gdm9pZCB0aGlzLiNlcih0KTtjb25zdCBlPXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1jb2xvciIpO2UmJnRoaXMuI3NyKGUsdCl9X21vdmVUb05leHQodCl7dGhpcy4jbnI/dC50YXJnZXQhPT10aGlzLiNWbj90LnRhcmdldC5uZXh0U2libGluZz8uZm9jdXMoKTp0aGlzLiNLbi5maXJzdENoaWxkPy5mb2N1cygpOnRoaXMuI2VyKHQpfV9tb3ZlVG9QcmV2aW91cyh0KXt0LnRhcmdldCE9PXRoaXMuI0tuPy5maXJzdENoaWxkJiZ0LnRhcmdldCE9PXRoaXMuI1ZuPyh0aGlzLiNucnx8dGhpcy4jZXIodCksdC50YXJnZXQucHJldmlvdXNTaWJsaW5nPy5mb2N1cygpKTp0aGlzLiNuciYmdGhpcy5faGlkZURyb3Bkb3duRnJvbUtleWJvYXJkKCl9X21vdmVUb0JlZ2lubmluZyh0KXt0aGlzLiNucj90aGlzLiNLbi5maXJzdENoaWxkPy5mb2N1cygpOnRoaXMuI2VyKHQpfV9tb3ZlVG9FbmQodCl7dGhpcy4jbnI/dGhpcy4jS24ubGFzdENoaWxkPy5mb2N1cygpOnRoaXMuI2VyKHQpfSNBcyh0KXthcy5fa2V5Ym9hcmRNYW5hZ2VyLmV4ZWModGhpcyx0KX0jZXIodCl7aWYodGhpcy4jbnIpcmV0dXJuIHZvaWQgdGhpcy5oaWRlRHJvcGRvd24oKTtpZih0aGlzLiNZbj0wPT09dC5kZXRhaWwsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiNHbix7c2lnbmFsOnRoaXMuI2YuX3NpZ25hbH0pLHRoaXMuI0tuKXJldHVybiB2b2lkIHRoaXMuI0tuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2NvbnN0IGU9dGhpcy4jS249dGhpcy4jaXIoKTt0aGlzLiNWbi5hcHBlbmQoZSl9I2wodCl7dGhpcy4jS24/LmNvbnRhaW5zKHQudGFyZ2V0KXx8dGhpcy5oaWRlRHJvcGRvd24oKX1oaWRlRHJvcGRvd24oKXt0aGlzLiNLbj8uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiNHbil9Z2V0I25yKCl7cmV0dXJuIHRoaXMuI0tuJiYhdGhpcy4jS24uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKX1faGlkZURyb3Bkb3duRnJvbUtleWJvYXJkKCl7dGhpcy4jUW58fCh0aGlzLiNucj8odGhpcy5oaWRlRHJvcGRvd24oKSx0aGlzLiNWbi5mb2N1cyh7cHJldmVudFNjcm9sbDohMCxmb2N1c1Zpc2libGU6dGhpcy4jWW59KSk6dGhpcy4jcj8udW5zZWxlY3QoKSl9dXBkYXRlQ29sb3IodCl7aWYodGhpcy4jcW4mJih0aGlzLiNxbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9dCksIXRoaXMuI0tuKXJldHVybjtjb25zdCBlPXRoaXMuI2YuaGlnaGxpZ2h0Q29sb3JzLnZhbHVlcygpO2Zvcihjb25zdCBpIG9mIHRoaXMuI0tuLmNoaWxkcmVuKWkuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixlLm5leHQoKS52YWx1ZT09PXQpfWRlc3Ryb3koKXt0aGlzLiNWbj8ucmVtb3ZlKCksdGhpcy4jVm49bnVsbCx0aGlzLiNxbj1udWxsLHRoaXMuI0tuPy5yZW1vdmUoKSx0aGlzLiNLbj1udWxsfX1jbGFzcyBvcyBleHRlbmRzIGt0eyNycj1udWxsOyNhcj0wOyNvcjsjaHI9bnVsbDsjbj1udWxsOyNscj1udWxsOyNjcj1udWxsOyNkcj0wOyN1cj1udWxsOyNwcj1udWxsOyN5PW51bGw7I2dyPSExOyNmcj1udWxsOyNtcjsjYnI9bnVsbDsjdnI9IiI7I0xuOyN5cj0iIjtzdGF0aWMgX2RlZmF1bHRDb2xvcj1udWxsO3N0YXRpYyBfZGVmYXVsdE9wYWNpdHk9MTtzdGF0aWMgX2RlZmF1bHRUaGlja25lc3M9MTI7c3RhdGljIF90eXBlPSJoaWdobGlnaHQiO3N0YXRpYyBfZWRpdG9yVHlwZT1sLkhJR0hMSUdIVDtzdGF0aWMgX2ZyZWVIaWdobGlnaHRJZD0tMTtzdGF0aWMgX2ZyZWVIaWdobGlnaHQ9bnVsbDtzdGF0aWMgX2ZyZWVIaWdobGlnaHRDbGlwSWQ9IiI7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7Y29uc3QgdD1vcy5wcm90b3R5cGU7cmV0dXJuIEModGhpcywiX2tleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJBcnJvd0xlZnQiLCJtYWMrQXJyb3dMZWZ0Il0sdC5fbW92ZUNhcmV0LHthcmdzOlswXX1dLFtbIkFycm93UmlnaHQiLCJtYWMrQXJyb3dSaWdodCJdLHQuX21vdmVDYXJldCx7YXJnczpbMV19XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0Ll9tb3ZlQ2FyZXQse2FyZ3M6WzJdfV0sW1siQXJyb3dEb3duIiwibWFjK0Fycm93RG93biJdLHQuX21vdmVDYXJldCx7YXJnczpbM119XV0pKX1jb25zdHJ1Y3Rvcih0KXtzdXBlcih7Li4udCxuYW1lOiJoaWdobGlnaHRFZGl0b3IifSksdGhpcy5jb2xvcj10LmNvbG9yfHxvcy5fZGVmYXVsdENvbG9yLHRoaXMuI0xuPXQudGhpY2tuZXNzfHxvcy5fZGVmYXVsdFRoaWNrbmVzcyx0aGlzLiNtcj10Lm9wYWNpdHl8fG9zLl9kZWZhdWx0T3BhY2l0eSx0aGlzLiNvcj10LmJveGVzfHxudWxsLHRoaXMuI3lyPXQubWV0aG9kT2ZDcmVhdGlvbnx8IiIsdGhpcy4jdnI9dC50ZXh0fHwiIix0aGlzLl9pc0RyYWdnYWJsZT0hMSx0LmhpZ2hsaWdodElkPi0xPyh0aGlzLiNncj0hMCx0aGlzLiNBcih0KSx0aGlzLiN3cigpKTp0aGlzLiNvciYmKHRoaXMuI3JyPXQuYW5jaG9yTm9kZSx0aGlzLiNhcj10LmFuY2hvck9mZnNldCx0aGlzLiNjcj10LmZvY3VzTm9kZSx0aGlzLiNkcj10LmZvY3VzT2Zmc2V0LHRoaXMuI3hyKCksdGhpcy4jd3IoKSx0aGlzLnJvdGF0ZSh0aGlzLnJvdGF0aW9uKSl9Z2V0IHRlbGVtZXRyeUluaXRpYWxEYXRhKCl7cmV0dXJue2FjdGlvbjoiYWRkZWQiLHR5cGU6dGhpcy4jZ3I/ImZyZWVfaGlnaGxpZ2h0IjoiaGlnaGxpZ2h0Iixjb2xvcjp0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JOYW1lcy5nZXQodGhpcy5jb2xvciksdGhpY2tuZXNzOnRoaXMuI0xuLG1ldGhvZE9mQ3JlYXRpb246dGhpcy4jeXJ9fWdldCB0ZWxlbWV0cnlGaW5hbERhdGEoKXtyZXR1cm57dHlwZToiaGlnaGxpZ2h0Iixjb2xvcjp0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JOYW1lcy5nZXQodGhpcy5jb2xvcil9fXN0YXRpYyBjb21wdXRlVGVsZW1ldHJ5RmluYWxEYXRhKHQpe3JldHVybntudW1iZXJPZkNvbG9yczp0LmdldCgiY29sb3IiKS5zaXplfX0jeHIoKXtjb25zdCB0PW5ldyBlcyh0aGlzLiNvciwuMDAxKTt0aGlzLiNwcj10LmdldE91dGxpbmVzKCksKHt4OnRoaXMueCx5OnRoaXMueSx3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodH09dGhpcy4jcHIuYm94KTtjb25zdCBlPW5ldyBlcyh0aGlzLiNvciwuMDAyNSwuMDAxLCJsdHIiPT09dGhpcy5fdWlNYW5hZ2VyLmRpcmVjdGlvbik7dGhpcy4jbHI9ZS5nZXRPdXRsaW5lcygpO2NvbnN0e2xhc3RQb2ludDppfT10aGlzLiNsci5ib3g7dGhpcy4jZnI9WyhpWzBdLXRoaXMueCkvdGhpcy53aWR0aCwoaVsxXS10aGlzLnkpL3RoaXMuaGVpZ2h0XX0jQXIoe2hpZ2hsaWdodE91dGxpbmVzOnQsaGlnaGxpZ2h0SWQ6ZSxjbGlwUGF0aElkOml9KXtpZih0aGlzLiNwcj10LHRoaXMuI2xyPXQuZ2V0TmV3T3V0bGluZSh0aGlzLiNMbi8yKzEuNSwuMDAyNSksZT49MCl0aGlzLiN5PWUsdGhpcy4jaHI9aSx0aGlzLnBhcmVudC5kcmF3TGF5ZXIuZmluYWxpemVMaW5lKGUsdCksdGhpcy4jYnI9dGhpcy5wYXJlbnQuZHJhd0xheWVyLmhpZ2hsaWdodE91dGxpbmUodGhpcy4jbHIpO2Vsc2UgaWYodGhpcy5wYXJlbnQpe2NvbnN0IGU9dGhpcy5wYXJlbnQudmlld3BvcnQucm90YXRpb247dGhpcy5wYXJlbnQuZHJhd0xheWVyLnVwZGF0ZUxpbmUodGhpcy4jeSx0KSx0aGlzLnBhcmVudC5kcmF3TGF5ZXIudXBkYXRlQm94KHRoaXMuI3ksb3MuI19yKHRoaXMuI3ByLmJveCwoZS10aGlzLnJvdGF0aW9uKzM2MCklMzYwKSksdGhpcy5wYXJlbnQuZHJhd0xheWVyLnVwZGF0ZUxpbmUodGhpcy4jYnIsdGhpcy4jbHIpLHRoaXMucGFyZW50LmRyYXdMYXllci51cGRhdGVCb3godGhpcy4jYnIsb3MuI19yKHRoaXMuI2xyLmJveCxlKSl9Y29uc3R7eDpzLHk6bix3aWR0aDpyLGhlaWdodDphfT10LmJveDtzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSAwOnRoaXMueD1zLHRoaXMueT1uLHRoaXMud2lkdGg9cix0aGlzLmhlaWdodD1hO2JyZWFrO2Nhc2UgOTA6e2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMueD1uLHRoaXMueT0xLXMsdGhpcy53aWR0aD1yKmUvdCx0aGlzLmhlaWdodD1hKnQvZTticmVha31jYXNlIDE4MDp0aGlzLng9MS1zLHRoaXMueT0xLW4sdGhpcy53aWR0aD1yLHRoaXMuaGVpZ2h0PWE7YnJlYWs7Y2FzZSAyNzA6e2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMueD0xLW4sdGhpcy55PXMsdGhpcy53aWR0aD1yKmUvdCx0aGlzLmhlaWdodD1hKnQvZTticmVha319Y29uc3R7bGFzdFBvaW50Om99PXRoaXMuI2xyLmJveDt0aGlzLiNmcj1bKG9bMF0tcykvciwob1sxXS1uKS9hXX1zdGF0aWMgaW5pdGlhbGl6ZSh0LGUpe2t0LmluaXRpYWxpemUodCxlKSxvcy5fZGVmYXVsdENvbG9yfHw9ZS5oaWdobGlnaHRDb2xvcnM/LnZhbHVlcygpLm5leHQoKS52YWx1ZXx8IiNmZmYwNjYifXN0YXRpYyB1cGRhdGVEZWZhdWx0UGFyYW1zKHQsZSl7c3dpdGNoKHQpe2Nhc2UgYy5ISUdITElHSFRfREVGQVVMVF9DT0xPUjpvcy5fZGVmYXVsdENvbG9yPWU7YnJlYWs7Y2FzZSBjLkhJR0hMSUdIVF9USElDS05FU1M6b3MuX2RlZmF1bHRUaGlja25lc3M9ZX19dHJhbnNsYXRlSW5QYWdlKHQsZSl7fWdldCB0b29sYmFyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jZnJ9dXBkYXRlUGFyYW1zKHQsZSl7c3dpdGNoKHQpe2Nhc2UgYy5ISUdITElHSFRfQ09MT1I6dGhpcy4jb24oZSk7YnJlYWs7Y2FzZSBjLkhJR0hMSUdIVF9USElDS05FU1M6dGhpcy4jRXIoZSl9fXN0YXRpYyBnZXQgZGVmYXVsdFByb3BlcnRpZXNUb1VwZGF0ZSgpe3JldHVybltbYy5ISUdITElHSFRfREVGQVVMVF9DT0xPUixvcy5fZGVmYXVsdENvbG9yXSxbYy5ISUdITElHSFRfVEhJQ0tORVNTLG9zLl9kZWZhdWx0VGhpY2tuZXNzXV19Z2V0IHByb3BlcnRpZXNUb1VwZGF0ZSgpe3JldHVybltbYy5ISUdITElHSFRfQ09MT1IsdGhpcy5jb2xvcnx8b3MuX2RlZmF1bHRDb2xvcl0sW2MuSElHSExJR0hUX1RISUNLTkVTUyx0aGlzLiNMbnx8b3MuX2RlZmF1bHRUaGlja25lc3NdLFtjLkhJR0hMSUdIVF9GUkVFLHRoaXMuI2dyXV19I29uKHQpe2NvbnN0IGU9KHQsZSk9Pnt0aGlzLmNvbG9yPXQsdGhpcy5wYXJlbnQ/LmRyYXdMYXllci5jaGFuZ2VDb2xvcih0aGlzLiN5LHQpLHRoaXMuI24/LnVwZGF0ZUNvbG9yKHQpLHRoaXMuI21yPWUsdGhpcy5wYXJlbnQ/LmRyYXdMYXllci5jaGFuZ2VPcGFjaXR5KHRoaXMuI3ksZSl9LGk9dGhpcy5jb2xvcixzPXRoaXMuI21yO3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0LG9zLl9kZWZhdWx0T3BhY2l0eSksdW5kbzplLmJpbmQodGhpcyxpLHMpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5ISUdITElHSFRfQ09MT1Isb3ZlcndyaXRlSWZTYW1lVHlwZTohMCxrZWVwVW5kbzohMH0pLHRoaXMuX3JlcG9ydFRlbGVtZXRyeSh7YWN0aW9uOiJjb2xvcl9jaGFuZ2VkIixjb2xvcjp0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JOYW1lcy5nZXQodCl9LCEwKX0jRXIodCl7Y29uc3QgZT10aGlzLiNMbixpPXQ9Pnt0aGlzLiNMbj10LHRoaXMuI0NyKHQpfTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6aS5iaW5kKHRoaXMsdCksdW5kbzppLmJpbmQodGhpcyxlKSxwb3N0OnRoaXMuX3VpTWFuYWdlci51cGRhdGVVSS5iaW5kKHRoaXMuX3VpTWFuYWdlcix0aGlzKSxtdXN0RXhlYzohMCx0eXBlOmMuSU5LX1RISUNLTkVTUyxvdmVyd3JpdGVJZlNhbWVUeXBlOiEwLGtlZXBVbmRvOiEwfSksdGhpcy5fcmVwb3J0VGVsZW1ldHJ5KHthY3Rpb246InRoaWNrbmVzc19jaGFuZ2VkIix0aGlja25lc3M6dH0sITApfWFzeW5jIGFkZEVkaXRUb29sYmFyKCl7Y29uc3QgdD1hd2FpdCBzdXBlci5hZGRFZGl0VG9vbGJhcigpO3JldHVybiB0Pyh0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JzJiYodGhpcy4jbj1uZXcgYXMoe2VkaXRvcjp0aGlzfSksdC5hZGRDb2xvclBpY2tlcih0aGlzLiNuKSksdCk6bnVsbH1kaXNhYmxlRWRpdGluZygpe3N1cGVyLmRpc2FibGVFZGl0aW5nKCksdGhpcy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLCEwKX1lbmFibGVFZGl0aW5nKCl7c3VwZXIuZW5hYmxlRWRpdGluZygpLHRoaXMuZGl2LmNsYXNzTGlzdC50b2dnbGUoImRpc2FibGVkIiwhMSl9Zml4QW5kU2V0UG9zaXRpb24oKXtyZXR1cm4gc3VwZXIuZml4QW5kU2V0UG9zaXRpb24odGhpcy4jU3IoKSl9Z2V0QmFzZVRyYW5zbGF0aW9uKCl7cmV0dXJuWzAsMF19Z2V0UmVjdCh0LGUpe3JldHVybiBzdXBlci5nZXRSZWN0KHQsZSx0aGlzLiNTcigpKX1vbmNlQWRkZWQoKXt0aGlzLmFubm90YXRpb25FbGVtZW50SWR8fHRoaXMucGFyZW50LmFkZFVuZG9hYmxlRWRpdG9yKHRoaXMpLHRoaXMuZGl2LmZvY3VzKCl9cmVtb3ZlKCl7dGhpcy4jVHIoKSx0aGlzLl9yZXBvcnRUZWxlbWV0cnkoe2FjdGlvbjoiZGVsZXRlZCJ9KSxzdXBlci5yZW1vdmUoKX1yZWJ1aWxkKCl7dGhpcy5wYXJlbnQmJihzdXBlci5yZWJ1aWxkKCksbnVsbCE9PXRoaXMuZGl2JiYodGhpcy4jd3IoKSx0aGlzLmlzQXR0YWNoZWRUb0RPTXx8dGhpcy5wYXJlbnQuYWRkKHRoaXMpKSl9c2V0UGFyZW50KHQpe2xldCBlPSExO3RoaXMucGFyZW50JiYhdD90aGlzLiNUcigpOnQmJih0aGlzLiN3cih0KSxlPSF0aGlzLnBhcmVudCYmdGhpcy5kaXY/LmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0ZWRFZGl0b3IiKSksc3VwZXIuc2V0UGFyZW50KHQpLHRoaXMuc2hvdyh0aGlzLl9pc1Zpc2libGUpLGUmJnRoaXMuc2VsZWN0KCl9I0NyKHQpe2lmKCF0aGlzLiNncilyZXR1cm47dGhpcy4jQXIoe2hpZ2hsaWdodE91dGxpbmVzOnRoaXMuI3ByLmdldE5ld091dGxpbmUodC8yKX0pLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKTtjb25zdFtlLGldPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldERpbXModGhpcy53aWR0aCplLHRoaXMuaGVpZ2h0KmkpfSNUcigpe251bGwhPT10aGlzLiN5JiZ0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRyYXdMYXllci5yZW1vdmUodGhpcy4jeSksdGhpcy4jeT1udWxsLHRoaXMucGFyZW50LmRyYXdMYXllci5yZW1vdmUodGhpcy4jYnIpLHRoaXMuI2JyPW51bGwpfSN3cih0PXRoaXMucGFyZW50KXtudWxsPT09dGhpcy4jeSYmKCh7aWQ6dGhpcy4jeSxjbGlwUGF0aElkOnRoaXMuI2hyfT10LmRyYXdMYXllci5oaWdobGlnaHQodGhpcy4jcHIsdGhpcy5jb2xvcix0aGlzLiNtcikpLHRoaXMuI2JyPXQuZHJhd0xheWVyLmhpZ2hsaWdodE91dGxpbmUodGhpcy4jbHIpLHRoaXMuI3VyJiYodGhpcy4jdXIuc3R5bGUuY2xpcFBhdGg9dGhpcy4jaHIpKX1zdGF0aWMjX3Ioe3g6dCx5OmUsd2lkdGg6aSxoZWlnaHQ6c30sbil7c3dpdGNoKG4pe2Nhc2UgOTA6cmV0dXJue3g6MS1lLXMseTp0LHdpZHRoOnMsaGVpZ2h0Oml9O2Nhc2UgMTgwOnJldHVybnt4OjEtdC1pLHk6MS1lLXMsd2lkdGg6aSxoZWlnaHQ6c307Y2FzZSAyNzA6cmV0dXJue3g6ZSx5OjEtdC1pLHdpZHRoOnMsaGVpZ2h0Oml9fXJldHVybnt4OnQseTplLHdpZHRoOmksaGVpZ2h0OnN9fXJvdGF0ZSh0KXtjb25zdHtkcmF3TGF5ZXI6ZX09dGhpcy5wYXJlbnQ7bGV0IGk7dGhpcy4jZ3I/KHQ9KHQtdGhpcy5yb3RhdGlvbiszNjApJTM2MCxpPW9zLiNfcih0aGlzLiNwci5ib3gsdCkpOmk9b3MuI19yKHRoaXMsdCksZS5yb3RhdGUodGhpcy4jeSx0KSxlLnJvdGF0ZSh0aGlzLiNicix0KSxlLnVwZGF0ZUJveCh0aGlzLiN5LGkpLGUudXBkYXRlQm94KHRoaXMuI2JyLG9zLiNfcih0aGlzLiNsci5ib3gsdCkpfXJlbmRlcigpe2lmKHRoaXMuZGl2KXJldHVybiB0aGlzLmRpdjtjb25zdCB0PXN1cGVyLnJlbmRlcigpO3RoaXMuI3ZyJiYodC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHRoaXMuI3ZyKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsIm1hcmsiKSksdGhpcy4jZ3I/dC5jbGFzc0xpc3QuYWRkKCJmcmVlIik6dGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy4jTXIuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuX3VpTWFuYWdlci5fc2lnbmFsfSk7Y29uc3QgZT10aGlzLiN1cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmFwcGVuZChlKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksZS5jbGFzc05hbWU9ImludGVybmFsIixlLnN0eWxlLmNsaXBQYXRoPXRoaXMuI2hyO2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3JldHVybiB0aGlzLnNldERpbXModGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KnMpLHd0KHRoaXMsdGhpcy4jdXIsWyJwb2ludGVyb3ZlciIsInBvaW50ZXJsZWF2ZSJdKSx0aGlzLmVuYWJsZUVkaXRpbmcoKSx0fXBvaW50ZXJvdmVyKCl7dGhpcy5wYXJlbnQuZHJhd0xheWVyLmFkZENsYXNzKHRoaXMuI2JyLCJob3ZlcmVkIil9cG9pbnRlcmxlYXZlKCl7dGhpcy5wYXJlbnQuZHJhd0xheWVyLnJlbW92ZUNsYXNzKHRoaXMuI2JyLCJob3ZlcmVkIil9I01yKHQpe29zLl9rZXlib2FyZE1hbmFnZXIuZXhlYyh0aGlzLHQpfV9tb3ZlQ2FyZXQodCl7c3dpdGNoKHRoaXMucGFyZW50LnVuc2VsZWN0KHRoaXMpLHQpe2Nhc2UgMDpjYXNlIDI6dGhpcy4ja3IoITApO2JyZWFrO2Nhc2UgMTpjYXNlIDM6dGhpcy4ja3IoITEpfX0ja3IodCl7aWYoIXRoaXMuI3JyKXJldHVybjtjb25zdCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTt0P2Uuc2V0UG9zaXRpb24odGhpcy4jcnIsdGhpcy4jYXIpOmUuc2V0UG9zaXRpb24odGhpcy4jY3IsdGhpcy4jZHIpfXNlbGVjdCgpe3N1cGVyLnNlbGVjdCgpLHRoaXMuI2JyJiYodGhpcy5wYXJlbnQ/LmRyYXdMYXllci5yZW1vdmVDbGFzcyh0aGlzLiNiciwiaG92ZXJlZCIpLHRoaXMucGFyZW50Py5kcmF3TGF5ZXIuYWRkQ2xhc3ModGhpcy4jYnIsInNlbGVjdGVkIikpfXVuc2VsZWN0KCl7c3VwZXIudW5zZWxlY3QoKSx0aGlzLiNiciYmKHRoaXMucGFyZW50Py5kcmF3TGF5ZXIucmVtb3ZlQ2xhc3ModGhpcy4jYnIsInNlbGVjdGVkIiksdGhpcy4jZ3J8fHRoaXMuI2tyKCExKSl9Z2V0IF9tdXN0Rml4UG9zaXRpb24oKXtyZXR1cm4hdGhpcy4jZ3J9c2hvdyh0PXRoaXMuX2lzVmlzaWJsZSl7c3VwZXIuc2hvdyh0KSx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRyYXdMYXllci5zaG93KHRoaXMuI3ksdCksdGhpcy5wYXJlbnQuZHJhd0xheWVyLnNob3codGhpcy4jYnIsdCkpfSNTcigpe3JldHVybiB0aGlzLiNncj90aGlzLnJvdGF0aW9uOjB9I0lyKCl7aWYodGhpcy4jZ3IpcmV0dXJuIG51bGw7Y29uc3RbdCxlXT10aGlzLnBhZ2VEaW1lbnNpb25zLFtpLHNdPXRoaXMucGFnZVRyYW5zbGF0aW9uLG49dGhpcy4jb3Iscj1uZXcgRmxvYXQzMkFycmF5KDgqbi5sZW5ndGgpO2xldCBhPTA7Zm9yKGNvbnN0e3g6byx5Omgsd2lkdGg6bCxoZWlnaHQ6Y31vZiBuKXtjb25zdCBuPW8qdCtpLGQ9KDEtaC1jKSplK3M7clthXT1yW2ErNF09bixyW2ErMV09clthKzNdPWQsclthKzJdPXJbYSs2XT1uK2wqdCxyW2ErNV09clthKzddPWQrYyplLGErPTh9cmV0dXJuIHJ9I1JyKHQpe3JldHVybiB0aGlzLiNwci5zZXJpYWxpemUodCx0aGlzLiNTcigpKX1zdGF0aWMgc3RhcnRIaWdobGlnaHRpbmcodCxlLHt0YXJnZXQ6aSx4OnMseTpufSl7Y29uc3R7eDpyLHk6YSx3aWR0aDpvLGhlaWdodDpofT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9bmV3IEFib3J0Q29udHJvbGxlcixjPXQuY29tYmluZWRTaWduYWwobCksZD1lPT57bC5hYm9ydCgpLHRoaXMuI1ByKHQsZSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixkLHtzaWduYWw6Y30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGQse3NpZ25hbDpjfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwodD0+e3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfSkse2NhcHR1cmU6ITAscGFzc2l2ZTohMSxzaWduYWw6Y30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQse3NpZ25hbDpjfSksaS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy4jRHIuYmluZCh0aGlzLHQpLHtzaWduYWw6Y30pLHRoaXMuX2ZyZWVIaWdobGlnaHQ9bmV3IG5zKHt4OnMseTpufSxbcixhLG8saF0sdC5zY2FsZSx0aGlzLl9kZWZhdWx0VGhpY2tuZXNzLzIsZSwuMDAxKSwoe2lkOnRoaXMuX2ZyZWVIaWdobGlnaHRJZCxjbGlwUGF0aElkOnRoaXMuX2ZyZWVIaWdobGlnaHRDbGlwSWR9PXQuZHJhd0xheWVyLmhpZ2hsaWdodCh0aGlzLl9mcmVlSGlnaGxpZ2h0LHRoaXMuX2RlZmF1bHRDb2xvcix0aGlzLl9kZWZhdWx0T3BhY2l0eSwhMCkpfXN0YXRpYyNEcih0LGUpe3RoaXMuX2ZyZWVIaWdobGlnaHQuYWRkKGUpJiZ0LmRyYXdMYXllci51cGRhdGVQYXRoKHRoaXMuX2ZyZWVIaWdobGlnaHRJZCx0aGlzLl9mcmVlSGlnaGxpZ2h0KX1zdGF0aWMjUHIodCxlKXt0aGlzLl9mcmVlSGlnaGxpZ2h0LmlzRW1wdHkoKT90LmRyYXdMYXllci5yZW1vdmVGcmVlSGlnaGxpZ2h0KHRoaXMuX2ZyZWVIaWdobGlnaHRJZCk6dC5jcmVhdGVBbmRBZGROZXdFZGl0b3IoZSwhMSx7aGlnaGxpZ2h0SWQ6dGhpcy5fZnJlZUhpZ2hsaWdodElkLGhpZ2hsaWdodE91dGxpbmVzOnRoaXMuX2ZyZWVIaWdobGlnaHQuZ2V0T3V0bGluZXMoKSxjbGlwUGF0aElkOnRoaXMuX2ZyZWVIaWdobGlnaHRDbGlwSWQsbWV0aG9kT2ZDcmVhdGlvbjoibWFpbl90b29sYmFyIn0pLHRoaXMuX2ZyZWVIaWdobGlnaHRJZD0tMSx0aGlzLl9mcmVlSGlnaGxpZ2h0PW51bGwsdGhpcy5fZnJlZUhpZ2hsaWdodENsaXBJZD0iIn1zdGF0aWMgYXN5bmMgZGVzZXJpYWxpemUodCxlLGkpe2xldCBzPW51bGw7aWYodCBpbnN0YW5jZW9mIFZpKXtjb25zdHtkYXRhOntxdWFkUG9pbnRzOmUscmVjdDppLHJvdGF0aW9uOm4saWQ6cixjb2xvcjphLG9wYWNpdHk6byxwb3B1cFJlZjpofSxwYXJlbnQ6e3BhZ2U6e3BhZ2VOdW1iZXI6Y319fT10O3M9dD17YW5ub3RhdGlvblR5cGU6bC5ISUdITElHSFQsY29sb3I6QXJyYXkuZnJvbShhKSxvcGFjaXR5Om8scXVhZFBvaW50czplLGJveGVzOm51bGwscGFnZUluZGV4OmMtMSxyZWN0Omkuc2xpY2UoMCkscm90YXRpb246bixpZDpyLGRlbGV0ZWQ6ITEscG9wdXBSZWY6aH19ZWxzZSBpZih0IGluc3RhbmNlb2YgR2kpe2NvbnN0e2RhdGE6e2lua0xpc3RzOmUscmVjdDppLHJvdGF0aW9uOm4saWQ6cixjb2xvcjphLGJvcmRlclN0eWxlOntyYXdXaWR0aDpvfSxwb3B1cFJlZjpofSxwYXJlbnQ6e3BhZ2U6e3BhZ2VOdW1iZXI6Y319fT10O3M9dD17YW5ub3RhdGlvblR5cGU6bC5ISUdITElHSFQsY29sb3I6QXJyYXkuZnJvbShhKSx0aGlja25lc3M6byxpbmtMaXN0czplLGJveGVzOm51bGwscGFnZUluZGV4OmMtMSxyZWN0Omkuc2xpY2UoMCkscm90YXRpb246bixpZDpyLGRlbGV0ZWQ6ITEscG9wdXBSZWY6aH19Y29uc3R7Y29sb3I6bixxdWFkUG9pbnRzOnIsaW5rTGlzdHM6YSxvcGFjaXR5Om99PXQsaD1hd2FpdCBzdXBlci5kZXNlcmlhbGl6ZSh0LGUsaSk7aC5jb2xvcj16Lm1ha2VIZXhDb2xvciguLi5uKSxoLiNtcj1vfHwxLGEmJihoLiNMbj10LnRoaWNrbmVzcyksaC5hbm5vdGF0aW9uRWxlbWVudElkPXQuaWR8fG51bGwsaC5faW5pdGlhbERhdGE9cztjb25zdFtjLGRdPWgucGFnZURpbWVuc2lvbnMsW3UscF09aC5wYWdlVHJhbnNsYXRpb247aWYocil7Y29uc3QgdD1oLiNvcj1bXTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrPTgpdC5wdXNoKHt4OihyW2VdLXUpL2MseToxLShyW2UrMV0tcCkvZCx3aWR0aDoocltlKzJdLXJbZV0pL2MsaGVpZ2h0OihyW2UrMV0tcltlKzVdKS9kfSk7aC4jeHIoKSxoLiN3cigpLGgucm90YXRlKGgucm90YXRpb24pfWVsc2UgaWYoYSl7aC4jZ3I9ITA7Y29uc3QgdD1hWzBdLGk9e3g6dFswXS11LHk6ZC0odFsxXS1wKX0scz1uZXcgbnMoaSxbMCwwLGMsZF0sMSxoLiNMbi8yLCEwLC4wMDEpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrPTIpaS54PXRbZV0tdSxpLnk9ZC0odFtlKzFdLXApLHMuYWRkKGkpO2NvbnN0e2lkOm4sY2xpcFBhdGhJZDpyfT1lLmRyYXdMYXllci5oaWdobGlnaHQocyxoLmNvbG9yLGguX2RlZmF1bHRPcGFjaXR5LCEwKTtoLiNBcih7aGlnaGxpZ2h0T3V0bGluZXM6cy5nZXRPdXRsaW5lcygpLGhpZ2hsaWdodElkOm4sY2xpcFBhdGhJZDpyfSksaC4jd3IoKX1yZXR1cm4gaH1zZXJpYWxpemUodD0hMSl7aWYodGhpcy5pc0VtcHR5KCl8fHQpcmV0dXJuIG51bGw7aWYodGhpcy5kZWxldGVkKXJldHVybiB0aGlzLnNlcmlhbGl6ZURlbGV0ZWQoKTtjb25zdCBlPXRoaXMuZ2V0UmVjdCgwLDApLGk9a3QuX2NvbG9yTWFuYWdlci5jb252ZXJ0KHRoaXMuY29sb3IpLHM9e2Fubm90YXRpb25UeXBlOmwuSElHSExJR0hULGNvbG9yOmksb3BhY2l0eTp0aGlzLiNtcix0aGlja25lc3M6dGhpcy4jTG4scXVhZFBvaW50czp0aGlzLiNJcigpLG91dGxpbmVzOnRoaXMuI1JyKGUpLHBhZ2VJbmRleDp0aGlzLnBhZ2VJbmRleCxyZWN0OmUscm90YXRpb246dGhpcy4jU3IoKSxzdHJ1Y3RUcmVlUGFyZW50SWQ6dGhpcy5fc3RydWN0VHJlZVBhcmVudElkfTtyZXR1cm4gdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkJiYhdGhpcy4jZ24ocyk/bnVsbDoocy5pZD10aGlzLmFubm90YXRpb25FbGVtZW50SWQscyl9I2duKHQpe2NvbnN0e2NvbG9yOmV9PXRoaXMuX2luaXRpYWxEYXRhO3JldHVybiB0LmNvbG9yLnNvbWUoKCh0LGkpPT50IT09ZVtpXSkpfXJlbmRlckFubm90YXRpb25FbGVtZW50KHQpe3JldHVybiB0LnVwZGF0ZUVkaXRlZCh7cmVjdDp0aGlzLmdldFJlY3QoMCwwKX0pLG51bGx9c3RhdGljIGNhbkNyZWF0ZU5ld0VtcHR5RWRpdG9yKCl7cmV0dXJuITF9fWNsYXNzIGhzIGV4dGVuZHMga3R7I0xyPTA7I0ZyPTA7I09yPW51bGw7I05yPW5ldyBQYXRoMkQ7I0JyPSExOyN6cj1udWxsOyNIcj0hMTsjanI9ITE7I1VyPW51bGw7IyRyPW51bGw7I1dyPTA7I0dyPTA7I1ZyPW51bGw7c3RhdGljIF9kZWZhdWx0Q29sb3I9bnVsbDtzdGF0aWMgX2RlZmF1bHRPcGFjaXR5PTE7c3RhdGljIF9kZWZhdWx0VGhpY2tuZXNzPTE7c3RhdGljIF90eXBlPSJpbmsiO3N0YXRpYyBfZWRpdG9yVHlwZT1sLklOSztjb25zdHJ1Y3Rvcih0KXtzdXBlcih7Li4udCxuYW1lOiJpbmtFZGl0b3IifSksdGhpcy5jb2xvcj10LmNvbG9yfHxudWxsLHRoaXMudGhpY2tuZXNzPXQudGhpY2tuZXNzfHxudWxsLHRoaXMub3BhY2l0eT10Lm9wYWNpdHl8fG51bGwsdGhpcy5wYXRocz1bXSx0aGlzLmJlemllclBhdGgyRD1bXSx0aGlzLmFsbFJhd1BhdGhzPVtdLHRoaXMuY3VycmVudFBhdGg9W10sdGhpcy5zY2FsZUZhY3Rvcj0xLHRoaXMudHJhbnNsYXRpb25YPXRoaXMudHJhbnNsYXRpb25ZPTAsdGhpcy54PTAsdGhpcy55PTAsdGhpcy5fd2lsbEtlZXBBc3BlY3RSYXRpbz0hMH1zdGF0aWMgaW5pdGlhbGl6ZSh0LGUpe2t0LmluaXRpYWxpemUodCxlKX1zdGF0aWMgdXBkYXRlRGVmYXVsdFBhcmFtcyh0LGUpe3N3aXRjaCh0KXtjYXNlIGMuSU5LX1RISUNLTkVTUzpocy5fZGVmYXVsdFRoaWNrbmVzcz1lO2JyZWFrO2Nhc2UgYy5JTktfQ09MT1I6aHMuX2RlZmF1bHRDb2xvcj1lO2JyZWFrO2Nhc2UgYy5JTktfT1BBQ0lUWTpocy5fZGVmYXVsdE9wYWNpdHk9ZS8xMDB9fXVwZGF0ZVBhcmFtcyh0LGUpe3N3aXRjaCh0KXtjYXNlIGMuSU5LX1RISUNLTkVTUzp0aGlzLiNFcihlKTticmVhaztjYXNlIGMuSU5LX0NPTE9SOnRoaXMuI29uKGUpO2JyZWFrO2Nhc2UgYy5JTktfT1BBQ0lUWTp0aGlzLiNxcihlKX19c3RhdGljIGdldCBkZWZhdWx0UHJvcGVydGllc1RvVXBkYXRlKCl7cmV0dXJuW1tjLklOS19USElDS05FU1MsaHMuX2RlZmF1bHRUaGlja25lc3NdLFtjLklOS19DT0xPUixocy5fZGVmYXVsdENvbG9yfHxrdC5fZGVmYXVsdExpbmVDb2xvcl0sW2MuSU5LX09QQUNJVFksTWF0aC5yb3VuZCgxMDAqaHMuX2RlZmF1bHRPcGFjaXR5KV1dfWdldCBwcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bW2MuSU5LX1RISUNLTkVTUyx0aGlzLnRoaWNrbmVzc3x8aHMuX2RlZmF1bHRUaGlja25lc3NdLFtjLklOS19DT0xPUix0aGlzLmNvbG9yfHxocy5fZGVmYXVsdENvbG9yfHxrdC5fZGVmYXVsdExpbmVDb2xvcl0sW2MuSU5LX09QQUNJVFksTWF0aC5yb3VuZCgxMDAqKHRoaXMub3BhY2l0eT8/aHMuX2RlZmF1bHRPcGFjaXR5KSldXX0jRXIodCl7Y29uc3QgZT10PT57dGhpcy50aGlja25lc3M9dCx0aGlzLiNYcigpfSxpPXRoaXMudGhpY2tuZXNzO3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0KSx1bmRvOmUuYmluZCh0aGlzLGkpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5JTktfVEhJQ0tORVNTLG92ZXJ3cml0ZUlmU2FtZVR5cGU6ITAsa2VlcFVuZG86ITB9KX0jb24odCl7Y29uc3QgZT10PT57dGhpcy5jb2xvcj10LHRoaXMuI0tyKCl9LGk9dGhpcy5jb2xvcjt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6ZS5iaW5kKHRoaXMsdCksdW5kbzplLmJpbmQodGhpcyxpKSxwb3N0OnRoaXMuX3VpTWFuYWdlci51cGRhdGVVSS5iaW5kKHRoaXMuX3VpTWFuYWdlcix0aGlzKSxtdXN0RXhlYzohMCx0eXBlOmMuSU5LX0NPTE9SLG92ZXJ3cml0ZUlmU2FtZVR5cGU6ITAsa2VlcFVuZG86ITB9KX0jcXIodCl7Y29uc3QgZT10PT57dGhpcy5vcGFjaXR5PXQsdGhpcy4jS3IoKX07dC89MTAwO2NvbnN0IGk9dGhpcy5vcGFjaXR5O3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0KSx1bmRvOmUuYmluZCh0aGlzLGkpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5JTktfT1BBQ0lUWSxvdmVyd3JpdGVJZlNhbWVUeXBlOiEwLGtlZXBVbmRvOiEwfSl9cmVidWlsZCgpe3RoaXMucGFyZW50JiYoc3VwZXIucmVidWlsZCgpLG51bGwhPT10aGlzLmRpdiYmKHRoaXMuY2FudmFzfHwodGhpcy4jWXIoKSx0aGlzLiNRcigpKSx0aGlzLmlzQXR0YWNoZWRUb0RPTXx8KHRoaXMucGFyZW50LmFkZCh0aGlzKSx0aGlzLiNKcigpKSx0aGlzLiNYcigpKSl9cmVtb3ZlKCl7bnVsbCE9PXRoaXMuY2FudmFzJiYodGhpcy5pc0VtcHR5KCl8fHRoaXMuY29tbWl0KCksdGhpcy5jYW52YXMud2lkdGg9dGhpcy5jYW52YXMuaGVpZ2h0PTAsdGhpcy5jYW52YXMucmVtb3ZlKCksdGhpcy5jYW52YXM9bnVsbCx0aGlzLiNPciYmKGNsZWFyVGltZW91dCh0aGlzLiNPciksdGhpcy4jT3I9bnVsbCksdGhpcy4jVXI/LmRpc2Nvbm5lY3QoKSx0aGlzLiNVcj1udWxsLHN1cGVyLnJlbW92ZSgpKX1zZXRQYXJlbnQodCl7IXRoaXMucGFyZW50JiZ0P3RoaXMuX3VpTWFuYWdlci5yZW1vdmVTaG91bGRSZXNjYWxlKHRoaXMpOnRoaXMucGFyZW50JiZudWxsPT09dCYmdGhpcy5fdWlNYW5hZ2VyLmFkZFNob3VsZFJlc2NhbGUodGhpcyksc3VwZXIuc2V0UGFyZW50KHQpfW9uU2NhbGVDaGFuZ2luZygpe2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zLGk9dGhpcy53aWR0aCp0LHM9dGhpcy5oZWlnaHQqZTt0aGlzLnNldERpbWVuc2lvbnMoaSxzKX1lbmFibGVFZGl0TW9kZSgpe3RoaXMuI0JyfHxudWxsPT09dGhpcy5jYW52YXN8fChzdXBlci5lbmFibGVFZGl0TW9kZSgpLHRoaXMuX2lzRHJhZ2dhYmxlPSExLHRoaXMuI1pyKCkpfWRpc2FibGVFZGl0TW9kZSgpe3RoaXMuaXNJbkVkaXRNb2RlKCkmJm51bGwhPT10aGlzLmNhbnZhcyYmKHN1cGVyLmRpc2FibGVFZGl0TW9kZSgpLHRoaXMuX2lzRHJhZ2dhYmxlPSF0aGlzLmlzRW1wdHkoKSx0aGlzLmRpdi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksdGhpcy4jdGEoKSl9b25jZUFkZGVkKCl7dGhpcy5faXNEcmFnZ2FibGU9IXRoaXMuaXNFbXB0eSgpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMucGF0aHMubGVuZ3RofHwxPT09dGhpcy5wYXRocy5sZW5ndGgmJjA9PT10aGlzLnBhdGhzWzBdLmxlbmd0aH0jZWEoKXtjb25zdHtwYXJlbnRSb3RhdGlvbjp0LHBhcmVudERpbWVuc2lvbnM6W2UsaV19PXRoaXM7c3dpdGNoKHQpe2Nhc2UgOTA6cmV0dXJuWzAsaSxpLGVdO2Nhc2UgMTgwOnJldHVybltlLGksZSxpXTtjYXNlIDI3MDpyZXR1cm5bZSwwLGksZV07ZGVmYXVsdDpyZXR1cm5bMCwwLGUsaV19fSNpYSgpe2NvbnN0e2N0eDp0LGNvbG9yOmUsb3BhY2l0eTppLHRoaWNrbmVzczpzLHBhcmVudFNjYWxlOm4sc2NhbGVGYWN0b3I6cn09dGhpczt0LmxpbmVXaWR0aD1zKm4vcix0LmxpbmVDYXA9InJvdW5kIix0LmxpbmVKb2luPSJyb3VuZCIsdC5taXRlckxpbWl0PTEwLHQuc3Ryb2tlU3R5bGU9YCR7ZX0ke2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKE1hdGgubWluKDI1NSxNYXRoLm1heCgxLDI1NSp0KSkpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIil9KGkpfWB9I3NhKHQsZSl7dGhpcy5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6dGhpcy5fdWlNYW5hZ2VyLl9zaWduYWx9KSx0aGlzLiN0YSgpLHRoaXMuI3pyPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgaT10aGlzLl91aU1hbmFnZXIuY29tYmluZWRTaWduYWwodGhpcy4jenIpO3RoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsdGhpcy5jYW52YXNQb2ludGVybGVhdmUuYmluZCh0aGlzKSx7c2lnbmFsOml9KSx0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5jYW52YXNQb2ludGVybW92ZS5iaW5kKHRoaXMpLHtzaWduYWw6aX0pLHRoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5jYW52YXNQb2ludGVydXAuYmluZCh0aGlzKSx7c2lnbmFsOml9KSx0aGlzLmlzRWRpdGluZz0hMCx0aGlzLiNqcnx8KHRoaXMuI2pyPSEwLHRoaXMuI0pyKCksdGhpcy50aGlja25lc3N8fD1ocy5fZGVmYXVsdFRoaWNrbmVzcyx0aGlzLmNvbG9yfHw9aHMuX2RlZmF1bHRDb2xvcnx8a3QuX2RlZmF1bHRMaW5lQ29sb3IsdGhpcy5vcGFjaXR5Pz89aHMuX2RlZmF1bHRPcGFjaXR5KSx0aGlzLmN1cnJlbnRQYXRoLnB1c2goW3QsZV0pLHRoaXMuI0hyPSExLHRoaXMuI2lhKCksdGhpcy4jVnI9KCk9Pnt0aGlzLiNuYSgpLHRoaXMuI1ZyJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuI1ZyKX0sd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLiNWcil9I3JhKHQsZSl7Y29uc3RbaSxzXT10aGlzLmN1cnJlbnRQYXRoLmF0KC0xKTtpZih0aGlzLmN1cnJlbnRQYXRoLmxlbmd0aD4xJiZ0PT09aSYmZT09PXMpcmV0dXJuO2NvbnN0IG49dGhpcy5jdXJyZW50UGF0aDtsZXQgcj10aGlzLiNOcjtpZihuLnB1c2goW3QsZV0pLHRoaXMuI0hyPSEwLG4ubGVuZ3RoPD0yKXJldHVybiByLm1vdmVUbyguLi5uWzBdKSx2b2lkIHIubGluZVRvKHQsZSk7Mz09PW4ubGVuZ3RoJiYodGhpcy4jTnI9cj1uZXcgUGF0aDJELHIubW92ZVRvKC4uLm5bMF0pKSx0aGlzLiNhYShyLC4uLm4uYXQoLTMpLC4uLm4uYXQoLTIpLHQsZSl9I29hKCl7aWYoMD09PXRoaXMuY3VycmVudFBhdGgubGVuZ3RoKXJldHVybjtjb25zdCB0PXRoaXMuY3VycmVudFBhdGguYXQoLTEpO3RoaXMuI05yLmxpbmVUbyguLi50KX0jaGEodCxlKXtsZXQgaTtpZih0aGlzLiNWcj1udWxsLHQ9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLmNhbnZhcy53aWR0aCksZT1NYXRoLm1pbihNYXRoLm1heChlLDApLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy4jcmEodCxlKSx0aGlzLiNvYSgpLDEhPT10aGlzLmN1cnJlbnRQYXRoLmxlbmd0aClpPXRoaXMuI2xhKCk7ZWxzZXtjb25zdCBzPVt0LGVdO2k9W1tzLHMuc2xpY2UoKSxzLnNsaWNlKCksc11dfWNvbnN0IHM9dGhpcy4jTnIsbj10aGlzLmN1cnJlbnRQYXRoO3RoaXMuY3VycmVudFBhdGg9W10sdGhpcy4jTnI9bmV3IFBhdGgyRCx0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9Pnt0aGlzLmFsbFJhd1BhdGhzLnB1c2gobiksdGhpcy5wYXRocy5wdXNoKGkpLHRoaXMuYmV6aWVyUGF0aDJELnB1c2gocyksdGhpcy5fdWlNYW5hZ2VyLnJlYnVpbGQodGhpcyl9LHVuZG86KCk9Pnt0aGlzLmFsbFJhd1BhdGhzLnBvcCgpLHRoaXMucGF0aHMucG9wKCksdGhpcy5iZXppZXJQYXRoMkQucG9wKCksMD09PXRoaXMucGF0aHMubGVuZ3RoP3RoaXMucmVtb3ZlKCk6KHRoaXMuY2FudmFzfHwodGhpcy4jWXIoKSx0aGlzLiNRcigpKSx0aGlzLiNYcigpKX0sbXVzdEV4ZWM6ITB9KX0jbmEoKXtpZighdGhpcy4jSHIpcmV0dXJuO3RoaXMuI0hyPSExO01hdGguY2VpbCh0aGlzLnRoaWNrbmVzcyp0aGlzLnBhcmVudFNjYWxlKTtjb25zdCB0PXRoaXMuY3VycmVudFBhdGguc2xpY2UoLTMpLGU9dC5tYXAoKHQ9PnRbMF0pKSxpPXQubWFwKCh0PT50WzFdKSkse2N0eDpzfT0oTWF0aC5taW4oLi4uZSksTWF0aC5tYXgoLi4uZSksTWF0aC5taW4oLi4uaSksTWF0aC5tYXgoLi4uaSksdGhpcyk7cy5zYXZlKCkscy5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5iZXppZXJQYXRoMkQpcy5zdHJva2UodCk7cy5zdHJva2UodGhpcy4jTnIpLHMucmVzdG9yZSgpfSNhYSh0LGUsaSxzLG4scixhKXtjb25zdCBvPShlK3MpLzIsaD0oaStuKS8yLGw9KHMrcikvMixjPShuK2EpLzI7dC5iZXppZXJDdXJ2ZVRvKG8rMioocy1vKS8zLGgrMioobi1oKS8zLGwrMioocy1sKS8zLGMrMioobi1jKS8zLGwsYyl9I2xhKCl7Y29uc3QgdD10aGlzLmN1cnJlbnRQYXRoO2lmKHQubGVuZ3RoPD0yKXJldHVybltbdFswXSx0WzBdLHQuYXQoLTEpLHQuYXQoLTEpXV07Y29uc3QgZT1bXTtsZXQgaSxbcyxuXT10WzBdO2ZvcihpPTE7aTx0Lmxlbmd0aC0yO2krKyl7Y29uc3RbcixhXT10W2ldLFtvLGhdPXRbaSsxXSxsPShyK28pLzIsYz0oYStoKS8yLGQ9W3MrMiooci1zKS8zLG4rMiooYS1uKS8zXSx1PVtsKzIqKHItbCkvMyxjKzIqKGEtYykvM107ZS5wdXNoKFtbcyxuXSxkLHUsW2wsY11dKSxbcyxuXT1bbCxjXX1jb25zdFtyLGFdPXRbaV0sW28saF09dFtpKzFdLGw9W3MrMiooci1zKS8zLG4rMiooYS1uKS8zXSxjPVtvKzIqKHItbykvMyxoKzIqKGEtaCkvM107cmV0dXJuIGUucHVzaChbW3Msbl0sbCxjLFtvLGhdXSksZX0jS3IoKXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm4gdm9pZCB0aGlzLiNjYSgpO3RoaXMuI2lhKCk7Y29uc3R7Y2FudmFzOnQsY3R4OmV9PXRoaXM7ZS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLGUuY2xlYXJSZWN0KDAsMCx0LndpZHRoLHQuaGVpZ2h0KSx0aGlzLiNjYSgpO2Zvcihjb25zdCB0IG9mIHRoaXMuYmV6aWVyUGF0aDJEKWUuc3Ryb2tlKHQpfWNvbW1pdCgpe3RoaXMuI0JyfHwoc3VwZXIuY29tbWl0KCksdGhpcy5pc0VkaXRpbmc9ITEsdGhpcy5kaXNhYmxlRWRpdE1vZGUoKSx0aGlzLnNldEluRm9yZWdyb3VuZCgpLHRoaXMuI0JyPSEwLHRoaXMuZGl2LmNsYXNzTGlzdC5hZGQoImRpc2FibGVkIiksdGhpcy4jWHIoITApLHRoaXMuc2VsZWN0KCksdGhpcy5wYXJlbnQuYWRkSW5rRWRpdG9ySWZOZWVkZWQoITApLHRoaXMubW92ZUluRE9NKCksdGhpcy5kaXYuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSl9Zm9jdXNpbih0KXt0aGlzLl9mb2N1c0V2ZW50c0FsbG93ZWQmJihzdXBlci5mb2N1c2luKHQpLHRoaXMuZW5hYmxlRWRpdE1vZGUoKSl9I1pyKCl7aWYodGhpcy4jJHIpcmV0dXJuO3RoaXMuIyRyPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgdD10aGlzLl91aU1hbmFnZXIuY29tYmluZWRTaWduYWwodGhpcy4jJHIpO3RoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLmNhbnZhc1BvaW50ZXJkb3duLmJpbmQodGhpcykse3NpZ25hbDp0fSl9I3RhKCl7dGhpcy5wb2ludGVyZG93bkFDPy5hYm9ydCgpLHRoaXMucG9pbnRlcmRvd25BQz1udWxsfWNhbnZhc1BvaW50ZXJkb3duKHQpezA9PT10LmJ1dHRvbiYmdGhpcy5pc0luRWRpdE1vZGUoKSYmIXRoaXMuI0JyJiYodGhpcy5zZXRJbkZvcmVncm91bmQoKSx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5kaXYuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fHRoaXMuZGl2LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksdGhpcy4jc2EodC5vZmZzZXRYLHQub2Zmc2V0WSkpfWNhbnZhc1BvaW50ZXJtb3ZlKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLiNyYSh0Lm9mZnNldFgsdC5vZmZzZXRZKX1jYW52YXNQb2ludGVydXAodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuI2RhKHQpfWNhbnZhc1BvaW50ZXJsZWF2ZSh0KXt0aGlzLiNkYSh0KX0jZGEodCl7dGhpcy4jenI/LmFib3J0KCksdGhpcy4jenI9bnVsbCx0aGlzLiNacigpLHRoaXMuI09yJiZjbGVhclRpbWVvdXQodGhpcy4jT3IpLHRoaXMuI09yPXNldFRpbWVvdXQoKCgpPT57dGhpcy4jT3I9bnVsbCx0aGlzLmNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQpfSksMTApLHRoaXMuI2hhKHQub2Zmc2V0WCx0Lm9mZnNldFkpLHRoaXMuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSgpLHRoaXMuc2V0SW5CYWNrZ3JvdW5kKCl9I1lyKCl7dGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jYW52YXMud2lkdGg9dGhpcy5jYW52YXMuaGVpZ2h0PTAsdGhpcy5jYW52YXMuY2xhc3NOYW1lPSJpbmtFZGl0b3JDYW52YXMiLHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIiwicGRmanMtaW5rLWNhbnZhcyIpLHRoaXMuZGl2LmFwcGVuZCh0aGlzLmNhbnZhcyksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKX0jUXIoKXt0aGlzLiNVcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKHQ9Pntjb25zdCBlPXRbMF0uY29udGVudFJlY3Q7ZS53aWR0aCYmZS5oZWlnaHQmJnRoaXMuc2V0RGltZW5zaW9ucyhlLndpZHRoLGUuaGVpZ2h0KX0pKSx0aGlzLiNVci5vYnNlcnZlKHRoaXMuZGl2KSx0aGlzLl91aU1hbmFnZXIuX3NpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT57dGhpcy4jVXI/LmRpc2Nvbm5lY3QoKSx0aGlzLiNVcj1udWxsfSkse29uY2U6ITB9KX1nZXQgaXNSZXNpemFibGUoKXtyZXR1cm4hdGhpcy5pc0VtcHR5KCkmJnRoaXMuI0JyfXJlbmRlcigpe2lmKHRoaXMuZGl2KXJldHVybiB0aGlzLmRpdjtsZXQgdCxlO3RoaXMud2lkdGgmJih0PXRoaXMueCxlPXRoaXMueSksc3VwZXIucmVuZGVyKCksdGhpcy5kaXYuc2V0QXR0cmlidXRlKCJkYXRhLWwxMG4taWQiLCJwZGZqcy1pbmsiKTtjb25zdFtpLHMsbixyXT10aGlzLiNlYSgpO2lmKHRoaXMuc2V0QXQoaSxzLDAsMCksdGhpcy5zZXREaW1zKG4sciksdGhpcy4jWXIoKSx0aGlzLndpZHRoKXtjb25zdFtpLHNdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldEFzcGVjdFJhdGlvKHRoaXMud2lkdGgqaSx0aGlzLmhlaWdodCpzKSx0aGlzLnNldEF0KHQqaSxlKnMsdGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KnMpLHRoaXMuI2pyPSEwLHRoaXMuI0pyKCksdGhpcy5zZXREaW1zKHRoaXMud2lkdGgqaSx0aGlzLmhlaWdodCpzKSx0aGlzLiNLcigpLHRoaXMuZGl2LmNsYXNzTGlzdC5hZGQoImRpc2FibGVkIil9ZWxzZSB0aGlzLmRpdi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksdGhpcy5lbmFibGVFZGl0TW9kZSgpO3JldHVybiB0aGlzLiNRcigpLHRoaXMuZGl2fSNKcigpe2lmKCF0aGlzLiNqcilyZXR1cm47Y29uc3RbdCxlXT10aGlzLnBhcmVudERpbWVuc2lvbnM7dGhpcy5jYW52YXMud2lkdGg9TWF0aC5jZWlsKHRoaXMud2lkdGgqdCksdGhpcy5jYW52YXMuaGVpZ2h0PU1hdGguY2VpbCh0aGlzLmhlaWdodCplKSx0aGlzLiNjYSgpfXNldERpbWVuc2lvbnModCxlKXtjb25zdCBpPU1hdGgucm91bmQodCkscz1NYXRoLnJvdW5kKGUpO2lmKHRoaXMuI1dyPT09aSYmdGhpcy4jR3I9PT1zKXJldHVybjt0aGlzLiNXcj1pLHRoaXMuI0dyPXMsdGhpcy5jYW52YXMuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtjb25zdFtuLHJdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLndpZHRoPXQvbix0aGlzLmhlaWdodD1lL3IsdGhpcy5maXhBbmRTZXRQb3NpdGlvbigpLHRoaXMuI0JyJiZ0aGlzLiN1YSh0LGUpLHRoaXMuI0pyKCksdGhpcy4jS3IoKSx0aGlzLmNhbnZhcy5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIix0aGlzLmZpeERpbXMoKX0jdWEodCxlKXtjb25zdCBpPXRoaXMuI3BhKCkscz0odC1pKS90aGlzLiNGcixuPShlLWkpL3RoaXMuI0xyO3RoaXMuc2NhbGVGYWN0b3I9TWF0aC5taW4ocyxuKX0jY2EoKXtjb25zdCB0PXRoaXMuI3BhKCkvMjt0aGlzLmN0eC5zZXRUcmFuc2Zvcm0odGhpcy5zY2FsZUZhY3RvciwwLDAsdGhpcy5zY2FsZUZhY3Rvcix0aGlzLnRyYW5zbGF0aW9uWCp0aGlzLnNjYWxlRmFjdG9yK3QsdGhpcy50cmFuc2xhdGlvblkqdGhpcy5zY2FsZUZhY3Rvcit0KX1zdGF0aWMjZ2EodCl7Y29uc3QgZT1uZXcgUGF0aDJEO2ZvcihsZXQgaT0wLHM9dC5sZW5ndGg7aTxzO2krKyl7Y29uc3RbcyxuLHIsYV09dFtpXTswPT09aSYmZS5tb3ZlVG8oLi4ucyksZS5iZXppZXJDdXJ2ZVRvKG5bMF0sblsxXSxyWzBdLHJbMV0sYVswXSxhWzFdKX1yZXR1cm4gZX1zdGF0aWMjZmEodCxlLGkpe2NvbnN0W3MsbixyLGFdPWU7c3dpdGNoKGkpe2Nhc2UgMDpmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKz0yKXRbZV0rPXMsdFtlKzFdPWEtdFtlKzFdO2JyZWFrO2Nhc2UgOTA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil7Y29uc3QgaT10W2VdO3RbZV09dFtlKzFdK3MsdFtlKzFdPWkrbn1icmVhaztjYXNlIDE4MDpmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKz0yKXRbZV09ci10W2VdLHRbZSsxXSs9bjticmVhaztjYXNlIDI3MDpmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKz0yKXtjb25zdCBpPXRbZV07dFtlXT1yLXRbZSsxXSx0W2UrMV09YS1pfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdGF0aW9uIil9cmV0dXJuIHR9c3RhdGljI21hKHQsZSxpKXtjb25zdFtzLG4scixhXT1lO3N3aXRjaChpKXtjYXNlIDA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil0W2VdLT1zLHRbZSsxXT1hLXRbZSsxXTticmVhaztjYXNlIDkwOmZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrPTIpe2NvbnN0IGk9dFtlXTt0W2VdPXRbZSsxXS1uLHRbZSsxXT1pLXN9YnJlYWs7Y2FzZSAxODA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil0W2VdPXItdFtlXSx0W2UrMV0tPW47YnJlYWs7Y2FzZSAyNzA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil7Y29uc3QgaT10W2VdO3RbZV09YS10W2UrMV0sdFtlKzFdPXItaX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCByb3RhdGlvbiIpfXJldHVybiB0fSNiYSh0LGUsaSxzKXtjb25zdCBuPVtdLHI9dGhpcy50aGlja25lc3MvMixhPXQqZStyLG89dCppK3I7Zm9yKGNvbnN0IGUgb2YgdGhpcy5wYXRocyl7Y29uc3QgaT1bXSxyPVtdO2ZvcihsZXQgcz0wLG49ZS5sZW5ndGg7czxuO3MrKyl7Y29uc3RbaCxsLGMsZF09ZVtzXTtpZihoWzBdPT09ZFswXSYmaFsxXT09PWRbMV0mJjE9PT1uKXtjb25zdCBlPXQqaFswXSthLHM9dCpoWzFdK287aS5wdXNoKGUscyksci5wdXNoKGUscyk7YnJlYWt9Y29uc3QgdT10KmhbMF0rYSxwPXQqaFsxXStvLGc9dCpsWzBdK2EsZj10KmxbMV0rbyxtPXQqY1swXSthLGI9dCpjWzFdK28sdj10KmRbMF0rYSx5PXQqZFsxXStvOzA9PT1zJiYoaS5wdXNoKHUscCksci5wdXNoKHUscCkpLGkucHVzaChnLGYsbSxiLHYseSksci5wdXNoKGcsZikscz09PW4tMSYmci5wdXNoKHYseSl9bi5wdXNoKHtiZXppZXI6aHMuI2ZhKGkscyx0aGlzLnJvdGF0aW9uKSxwb2ludHM6aHMuI2ZhKHIscyx0aGlzLnJvdGF0aW9uKX0pfXJldHVybiBufSN2YSgpe2xldCB0PTEvMCxlPS0xLzAsaT0xLzAscz0tMS8wO2Zvcihjb25zdCBuIG9mIHRoaXMucGF0aHMpZm9yKGNvbnN0W3IsYSxvLGhdb2Ygbil7Y29uc3Qgbj16LmJlemllckJvdW5kaW5nQm94KC4uLnIsLi4uYSwuLi5vLC4uLmgpO3Q9TWF0aC5taW4odCxuWzBdKSxpPU1hdGgubWluKGksblsxXSksZT1NYXRoLm1heChlLG5bMl0pLHM9TWF0aC5tYXgocyxuWzNdKX1yZXR1cm5bdCxpLGUsc119I3BhKCl7cmV0dXJuIHRoaXMuI0JyP01hdGguY2VpbCh0aGlzLnRoaWNrbmVzcyp0aGlzLnBhcmVudFNjYWxlKTowfSNYcih0PSExKXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm47aWYoIXRoaXMuI0JyKXJldHVybiB2b2lkIHRoaXMuI0tyKCk7Y29uc3QgZT10aGlzLiN2YSgpLGk9dGhpcy4jcGEoKTt0aGlzLiNGcj1NYXRoLm1heChrdC5NSU5fU0laRSxlWzJdLWVbMF0pLHRoaXMuI0xyPU1hdGgubWF4KGt0Lk1JTl9TSVpFLGVbM10tZVsxXSk7Y29uc3Qgcz1NYXRoLmNlaWwoaSt0aGlzLiNGcip0aGlzLnNjYWxlRmFjdG9yKSxuPU1hdGguY2VpbChpK3RoaXMuI0xyKnRoaXMuc2NhbGVGYWN0b3IpLFtyLGFdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLndpZHRoPXMvcix0aGlzLmhlaWdodD1uL2EsdGhpcy5zZXRBc3BlY3RSYXRpbyhzLG4pO2NvbnN0IG89dGhpcy50cmFuc2xhdGlvblgsaD10aGlzLnRyYW5zbGF0aW9uWTt0aGlzLnRyYW5zbGF0aW9uWD0tZVswXSx0aGlzLnRyYW5zbGF0aW9uWT0tZVsxXSx0aGlzLiNKcigpLHRoaXMuI0tyKCksdGhpcy4jV3I9cyx0aGlzLiNHcj1uLHRoaXMuc2V0RGltcyhzLG4pO2NvbnN0IGw9dD9pL3RoaXMuc2NhbGVGYWN0b3IvMjowO3RoaXMudHJhbnNsYXRlKG8tdGhpcy50cmFuc2xhdGlvblgtbCxoLXRoaXMudHJhbnNsYXRpb25ZLWwpfXN0YXRpYyBhc3luYyBkZXNlcmlhbGl6ZSh0LGUsaSl7aWYodCBpbnN0YW5jZW9mIEdpKXJldHVybiBudWxsO2NvbnN0IHM9YXdhaXQgc3VwZXIuZGVzZXJpYWxpemUodCxlLGkpO3MudGhpY2tuZXNzPXQudGhpY2tuZXNzLHMuY29sb3I9ei5tYWtlSGV4Q29sb3IoLi4udC5jb2xvcikscy5vcGFjaXR5PXQub3BhY2l0eTtjb25zdFtuLHJdPXMucGFnZURpbWVuc2lvbnMsYT1zLndpZHRoKm4sbz1zLmhlaWdodCpyLGg9cy5wYXJlbnRTY2FsZSxsPXQudGhpY2tuZXNzLzI7cy4jQnI9ITAscy4jV3I9TWF0aC5yb3VuZChhKSxzLiNHcj1NYXRoLnJvdW5kKG8pO2NvbnN0e3BhdGhzOmMscmVjdDpkLHJvdGF0aW9uOnV9PXQ7Zm9yKGxldHtiZXppZXI6dH1vZiBjKXt0PWhzLiNtYSh0LGQsdSk7Y29uc3QgZT1bXTtzLnBhdGhzLnB1c2goZSk7bGV0IGk9aCoodFswXS1sKSxuPWgqKHRbMV0tbCk7Zm9yKGxldCBzPTIscj10Lmxlbmd0aDtzPHI7cys9Nil7Y29uc3Qgcj1oKih0W3NdLWwpLGE9aCoodFtzKzFdLWwpLG89aCoodFtzKzJdLWwpLGM9aCoodFtzKzNdLWwpLGQ9aCoodFtzKzRdLWwpLHU9aCoodFtzKzVdLWwpO2UucHVzaChbW2ksbl0sW3IsYV0sW28sY10sW2QsdV1dKSxpPWQsbj11fWNvbnN0IHI9dGhpcy4jZ2EoZSk7cy5iZXppZXJQYXRoMkQucHVzaChyKX1jb25zdCBwPXMuI3ZhKCk7cmV0dXJuIHMuI0ZyPU1hdGgubWF4KGt0Lk1JTl9TSVpFLHBbMl0tcFswXSkscy4jTHI9TWF0aC5tYXgoa3QuTUlOX1NJWkUscFszXS1wWzFdKSxzLiN1YShhLG8pLHN9c2VyaWFsaXplKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7Y29uc3QgdD10aGlzLmdldFJlY3QoMCwwKSxlPWt0Ll9jb2xvck1hbmFnZXIuY29udmVydCh0aGlzLmN0eC5zdHJva2VTdHlsZSk7cmV0dXJue2Fubm90YXRpb25UeXBlOmwuSU5LLGNvbG9yOmUsdGhpY2tuZXNzOnRoaXMudGhpY2tuZXNzLG9wYWNpdHk6dGhpcy5vcGFjaXR5LHBhdGhzOnRoaXMuI2JhKHRoaXMuc2NhbGVGYWN0b3IvdGhpcy5wYXJlbnRTY2FsZSx0aGlzLnRyYW5zbGF0aW9uWCx0aGlzLnRyYW5zbGF0aW9uWSx0KSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgscmVjdDp0LHJvdGF0aW9uOnRoaXMucm90YXRpb24sc3RydWN0VHJlZVBhcmVudElkOnRoaXMuX3N0cnVjdFRyZWVQYXJlbnRJZH19fWNsYXNzIGxzIGV4dGVuZHMga3R7I3lhPW51bGw7I0FhPW51bGw7I3dhPW51bGw7I3hhPW51bGw7I19hPW51bGw7I0VhPSIiOyNDYT1udWxsOyNVcj1udWxsOyNTYT1udWxsOyNUYT0hMTsjTWE9ITE7c3RhdGljIF90eXBlPSJzdGFtcCI7c3RhdGljIF9lZGl0b3JUeXBlPWwuU1RBTVA7Y29uc3RydWN0b3IodCl7c3VwZXIoey4uLnQsbmFtZToic3RhbXBFZGl0b3IifSksdGhpcy4jeGE9dC5iaXRtYXBVcmwsdGhpcy4jX2E9dC5iaXRtYXBGaWxlfXN0YXRpYyBpbml0aWFsaXplKHQsZSl7a3QuaW5pdGlhbGl6ZSh0LGUpfXN0YXRpYyBnZXQgc3VwcG9ydGVkVHlwZXMoKXtyZXR1cm4gQyh0aGlzLCJzdXBwb3J0ZWRUeXBlcyIsWyJhcG5nIiwiYXZpZiIsImJtcCIsImdpZiIsImpwZWciLCJwbmciLCJzdmcreG1sIiwid2VicCIsIngtaWNvbiJdLm1hcCgodD0+YGltYWdlLyR7dH1gKSkpfXN0YXRpYyBnZXQgc3VwcG9ydGVkVHlwZXNTdHIoKXtyZXR1cm4gQyh0aGlzLCJzdXBwb3J0ZWRUeXBlc1N0ciIsdGhpcy5zdXBwb3J0ZWRUeXBlcy5qb2luKCIsIikpfXN0YXRpYyBpc0hhbmRsaW5nTWltZUZvclBhc3RpbmcodCl7cmV0dXJuIHRoaXMuc3VwcG9ydGVkVHlwZXMuaW5jbHVkZXModCl9c3RhdGljIHBhc3RlKHQsZSl7ZS5wYXN0ZUVkaXRvcihsLlNUQU1QLHtiaXRtYXBGaWxlOnQuZ2V0QXNGaWxlKCl9KX1hbHRUZXh0RmluaXNoKCl7dGhpcy5fdWlNYW5hZ2VyLnVzZU5ld0FsdFRleHRGbG93JiYodGhpcy5kaXYuaGlkZGVuPSExKSxzdXBlci5hbHRUZXh0RmluaXNoKCl9Z2V0IHRlbGVtZXRyeUZpbmFsRGF0YSgpe3JldHVybnt0eXBlOiJzdGFtcCIsaGFzQWx0VGV4dDohIXRoaXMuYWx0VGV4dERhdGE/LmFsdFRleHR9fXN0YXRpYyBjb21wdXRlVGVsZW1ldHJ5RmluYWxEYXRhKHQpe2NvbnN0IGU9dC5nZXQoImhhc0FsdFRleHQiKTtyZXR1cm57aGFzQWx0VGV4dDplLmdldCghMCk/PzAsaGFzTm9BbHRUZXh0OmUuZ2V0KCExKT8/MH19I2thKHQsZT0hMSl7dD8odGhpcy4jeWE9dC5iaXRtYXAsZXx8KHRoaXMuI0FhPXQuaWQsdGhpcy4jVGE9dC5pc1N2ZyksdC5maWxlJiYodGhpcy4jRWE9dC5maWxlLm5hbWUpLHRoaXMuI1lyKCkpOnRoaXMucmVtb3ZlKCl9I0lhKCl7aWYodGhpcy4jd2E9bnVsbCx0aGlzLl91aU1hbmFnZXIuZW5hYmxlV2FpdGluZyghMSksdGhpcy4jQ2Epe2lmKHRoaXMuX3VpTWFuYWdlci51c2VOZXdBbHRUZXh0V2hlbkFkZGluZ0ltYWdlJiZ0aGlzLl91aU1hbmFnZXIudXNlTmV3QWx0VGV4dEZsb3cmJnRoaXMuI3lhKXJldHVybiB0aGlzLl9lZGl0VG9vbGJhci5oaWRlKCksdm9pZCB0aGlzLl91aU1hbmFnZXIuZWRpdEFsdFRleHQodGhpcywhMCk7aWYoIXRoaXMuX3VpTWFuYWdlci51c2VOZXdBbHRUZXh0V2hlbkFkZGluZ0ltYWdlJiZ0aGlzLl91aU1hbmFnZXIudXNlTmV3QWx0VGV4dEZsb3cmJnRoaXMuI3lhKXt0aGlzLl9yZXBvcnRUZWxlbWV0cnkoe2FjdGlvbjoicGRmanMuaW1hZ2UuaW1hZ2VfYWRkZWQiLGRhdGE6e2FsdF90ZXh0X21vZGFsOiExLGFsdF90ZXh0X3R5cGU6ImVtcHR5In19KTt0cnl7dGhpcy5tbEd1ZXNzQWx0VGV4dCgpfWNhdGNoe319dGhpcy5kaXYuZm9jdXMoKX19YXN5bmMgbWxHdWVzc0FsdFRleHQodD1udWxsLGU9ITApe2lmKHRoaXMuaGFzQWx0VGV4dERhdGEoKSlyZXR1cm4gbnVsbDtjb25zdHttbE1hbmFnZXI6aX09dGhpcy5fdWlNYW5hZ2VyO2lmKCFpKXRocm93IG5ldyBFcnJvcigiTm8gTUwuIik7aWYoIWF3YWl0IGkuaXNFbmFibGVkRm9yKCJhbHRUZXh0IikpdGhyb3cgbmV3IEVycm9yKCJNTCBpc24ndCBlbmFibGVkIGZvciBhbHQgdGV4dC4iKTtjb25zdHtkYXRhOnMsd2lkdGg6bixoZWlnaHQ6cn09dHx8dGhpcy5jb3B5Q2FudmFzKG51bGwsbnVsbCwhMCkuaW1hZ2VEYXRhLGE9YXdhaXQgaS5ndWVzcyh7bmFtZToiYWx0VGV4dCIscmVxdWVzdDp7ZGF0YTpzLHdpZHRoOm4saGVpZ2h0OnIsY2hhbm5lbHM6cy5sZW5ndGgvKG4qcil9fSk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJObyByZXNwb25zZSBmcm9tIHRoZSBBSSBzZXJ2aWNlLiIpO2lmKGEuZXJyb3IpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBmcm9tIHRoZSBBSSBzZXJ2aWNlLiIpO2lmKGEuY2FuY2VsKXJldHVybiBudWxsO2lmKCFhLm91dHB1dCl0aHJvdyBuZXcgRXJyb3IoIk5vIHZhbGlkIHJlc3BvbnNlIGZyb20gdGhlIEFJIHNlcnZpY2UuIik7Y29uc3Qgbz1hLm91dHB1dDtyZXR1cm4gYXdhaXQgdGhpcy5zZXRHdWVzc2VkQWx0VGV4dChvKSxlJiYhdGhpcy5oYXNBbHRUZXh0RGF0YSgpJiYodGhpcy5hbHRUZXh0RGF0YT17YWx0Om8sZGVjb3JhdGl2ZTohMX0pLG99I1JhKCl7aWYodGhpcy4jQWEpcmV0dXJuIHRoaXMuX3VpTWFuYWdlci5lbmFibGVXYWl0aW5nKCEwKSx2b2lkIHRoaXMuX3VpTWFuYWdlci5pbWFnZU1hbmFnZXIuZ2V0RnJvbUlkKHRoaXMuI0FhKS50aGVuKCh0PT50aGlzLiNrYSh0LCEwKSkpLmZpbmFsbHkoKCgpPT50aGlzLiNJYSgpKSk7aWYodGhpcy4jeGEpe2NvbnN0IHQ9dGhpcy4jeGE7cmV0dXJuIHRoaXMuI3hhPW51bGwsdGhpcy5fdWlNYW5hZ2VyLmVuYWJsZVdhaXRpbmcoITApLHZvaWQodGhpcy4jd2E9dGhpcy5fdWlNYW5hZ2VyLmltYWdlTWFuYWdlci5nZXRGcm9tVXJsKHQpLnRoZW4oKHQ9PnRoaXMuI2thKHQpKSkuZmluYWxseSgoKCk9PnRoaXMuI0lhKCkpKSl9aWYodGhpcy4jX2Epe2NvbnN0IHQ9dGhpcy4jX2E7cmV0dXJuIHRoaXMuI19hPW51bGwsdGhpcy5fdWlNYW5hZ2VyLmVuYWJsZVdhaXRpbmcoITApLHZvaWQodGhpcy4jd2E9dGhpcy5fdWlNYW5hZ2VyLmltYWdlTWFuYWdlci5nZXRGcm9tRmlsZSh0KS50aGVuKCh0PT50aGlzLiNrYSh0KSkpLmZpbmFsbHkoKCgpPT50aGlzLiNJYSgpKSkpfWNvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnR5cGU9ImZpbGUiLHQuYWNjZXB0PWxzLnN1cHBvcnRlZFR5cGVzU3RyO2NvbnN0IGU9dGhpcy5fdWlNYW5hZ2VyLl9zaWduYWw7dGhpcy4jd2E9bmV3IFByb21pc2UoKGk9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGFzeW5jKCk9PntpZih0LmZpbGVzJiYwIT09dC5maWxlcy5sZW5ndGgpe3RoaXMuX3VpTWFuYWdlci5lbmFibGVXYWl0aW5nKCEwKTtjb25zdCBlPWF3YWl0IHRoaXMuX3VpTWFuYWdlci5pbWFnZU1hbmFnZXIuZ2V0RnJvbUZpbGUodC5maWxlc1swXSk7dGhpcy5fcmVwb3J0VGVsZW1ldHJ5KHthY3Rpb246InBkZmpzLmltYWdlLmltYWdlX3NlbGVjdGVkIixkYXRhOnthbHRfdGV4dF9tb2RhbDp0aGlzLl91aU1hbmFnZXIudXNlTmV3QWx0VGV4dEZsb3d9fSksdGhpcy4ja2EoZSl9ZWxzZSB0aGlzLnJlbW92ZSgpO2koKX0pLHtzaWduYWw6ZX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2FuY2VsIiwoKCk9Pnt0aGlzLnJlbW92ZSgpLGkoKX0pLHtzaWduYWw6ZX0pfSkpLmZpbmFsbHkoKCgpPT50aGlzLiNJYSgpKSksdC5jbGljaygpfXJlbW92ZSgpe3RoaXMuI0FhJiYodGhpcy4jeWE9bnVsbCx0aGlzLl91aU1hbmFnZXIuaW1hZ2VNYW5hZ2VyLmRlbGV0ZUlkKHRoaXMuI0FhKSx0aGlzLiNDYT8ucmVtb3ZlKCksdGhpcy4jQ2E9bnVsbCx0aGlzLiNVcj8uZGlzY29ubmVjdCgpLHRoaXMuI1VyPW51bGwsdGhpcy4jU2EmJihjbGVhclRpbWVvdXQodGhpcy4jU2EpLHRoaXMuI1NhPW51bGwpKSxzdXBlci5yZW1vdmUoKX1yZWJ1aWxkKCl7dGhpcy5wYXJlbnQ/KHN1cGVyLnJlYnVpbGQoKSxudWxsIT09dGhpcy5kaXYmJih0aGlzLiNBYSYmbnVsbD09PXRoaXMuI0NhJiZ0aGlzLiNSYSgpLHRoaXMuaXNBdHRhY2hlZFRvRE9NfHx0aGlzLnBhcmVudC5hZGQodGhpcykpKTp0aGlzLiNBYSYmdGhpcy4jUmEoKX1vbmNlQWRkZWQoKXt0aGlzLl9pc0RyYWdnYWJsZT0hMCx0aGlzLmRpdi5mb2N1cygpfWlzRW1wdHkoKXtyZXR1cm4hKHRoaXMuI3dhfHx0aGlzLiN5YXx8dGhpcy4jeGF8fHRoaXMuI19hfHx0aGlzLiNBYSl9Z2V0IGlzUmVzaXphYmxlKCl7cmV0dXJuITB9cmVuZGVyKCl7aWYodGhpcy5kaXYpcmV0dXJuIHRoaXMuZGl2O2xldCB0LGU7aWYodGhpcy53aWR0aCYmKHQ9dGhpcy54LGU9dGhpcy55KSxzdXBlci5yZW5kZXIoKSx0aGlzLmRpdi5oaWRkZW49ITAsdGhpcy5kaXYuc2V0QXR0cmlidXRlKCJyb2xlIiwiZmlndXJlIiksdGhpcy5hZGRBbHRUZXh0QnV0dG9uKCksdGhpcy4jeWE/dGhpcy4jWXIoKTp0aGlzLiNSYSgpLHRoaXMud2lkdGgmJiF0aGlzLmFubm90YXRpb25FbGVtZW50SWQpe2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMuc2V0QXQodCppLGUqcyx0aGlzLndpZHRoKmksdGhpcy5oZWlnaHQqcyl9cmV0dXJuIHRoaXMuZGl2fSNZcigpe2NvbnN0e2Rpdjp0fT10aGlzO2xldHt3aWR0aDplLGhlaWdodDppfT10aGlzLiN5YTtjb25zdFtzLG5dPXRoaXMucGFnZURpbWVuc2lvbnMscj0uNzU7aWYodGhpcy53aWR0aCllPXRoaXMud2lkdGgqcyxpPXRoaXMuaGVpZ2h0Km47ZWxzZSBpZihlPnIqc3x8aT5yKm4pe2NvbnN0IHQ9TWF0aC5taW4ocipzL2UscipuL2kpO2UqPXQsaSo9dH1jb25zdFthLG9dPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldERpbXMoZSphL3MsaSpvL24pLHRoaXMuX3VpTWFuYWdlci5lbmFibGVXYWl0aW5nKCExKTtjb25zdCBoPXRoaXMuI0NhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2guc2V0QXR0cmlidXRlKCJyb2xlIiwiaW1nIiksdGhpcy5hZGRDb250YWluZXIoaCksdGhpcy5fdWlNYW5hZ2VyLnVzZU5ld0FsdFRleHRXaGVuQWRkaW5nSW1hZ2UmJnRoaXMuX3VpTWFuYWdlci51c2VOZXdBbHRUZXh0RmxvdyYmIXRoaXMuYW5ub3RhdGlvbkVsZW1lbnRJZHx8KHQuaGlkZGVuPSExKSx0aGlzLiNQYShlLGkpLHRoaXMuI1FyKCksdGhpcy4jTWF8fCh0aGlzLnBhcmVudC5hZGRVbmRvYWJsZUVkaXRvcih0aGlzKSx0aGlzLiNNYT0hMCksdGhpcy5fcmVwb3J0VGVsZW1ldHJ5KHthY3Rpb246Imluc2VydGVkX2ltYWdlIn0pLHRoaXMuI0VhJiZoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdGhpcy4jRWEpfWNvcHlDYW52YXModCxlLGk9ITEpe3R8fCh0PTIyNCk7Y29uc3R7d2lkdGg6cyxoZWlnaHQ6bn09dGhpcy4jeWEscj1uZXcgdnQ7bGV0IGE9dGhpcy4jeWEsbz1zLGg9bixsPW51bGw7aWYoZSl7aWYocz5lfHxuPmUpe2NvbnN0IHQ9TWF0aC5taW4oZS9zLGUvbik7bz1NYXRoLmZsb29yKHMqdCksaD1NYXRoLmZsb29yKG4qdCl9bD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtjb25zdCB0PWwud2lkdGg9TWF0aC5jZWlsKG8qci5zeCksaT1sLmhlaWdodD1NYXRoLmNlaWwoaCpyLnN5KTt0aGlzLiNUYXx8KGE9dGhpcy4jRGEodCxpKSk7Y29uc3QgYz1sLmdldENvbnRleHQoIjJkIik7Yy5maWx0ZXI9dGhpcy5fdWlNYW5hZ2VyLmhjbUZpbHRlcjtsZXQgZD0id2hpdGUiLHU9IiNjZmNmZDgiOyJub25lIiE9PXRoaXMuX3VpTWFuYWdlci5oY21GaWx0ZXI/dT0iYmxhY2siOndpbmRvdy5tYXRjaE1lZGlhPy4oIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzJiYoZD0iIzhmOGY5ZCIsdT0iIzQyNDE0ZCIpO2NvbnN0IHA9MTUsZz1wKnIuc3gsZj1wKnIuc3ksbT1uZXcgT2Zmc2NyZWVuQ2FudmFzKDIqZywyKmYpLGI9bS5nZXRDb250ZXh0KCIyZCIpO2IuZmlsbFN0eWxlPWQsYi5maWxsUmVjdCgwLDAsMipnLDIqZiksYi5maWxsU3R5bGU9dSxiLmZpbGxSZWN0KDAsMCxnLGYpLGIuZmlsbFJlY3QoZyxmLGcsZiksYy5maWxsU3R5bGU9Yy5jcmVhdGVQYXR0ZXJuKG0sInJlcGVhdCIpLGMuZmlsbFJlY3QoMCwwLHQsaSksYy5kcmF3SW1hZ2UoYSwwLDAsYS53aWR0aCxhLmhlaWdodCwwLDAsdCxpKX1sZXQgYz1udWxsO2lmKGkpe2xldCBlLGk7aWYoci5zeW1tZXRyaWMmJmEud2lkdGg8dCYmYS5oZWlnaHQ8dCllPWEud2lkdGgsaT1hLmhlaWdodDtlbHNlIGlmKGE9dGhpcy4jeWEscz50fHxuPnQpe2NvbnN0IHI9TWF0aC5taW4odC9zLHQvbik7ZT1NYXRoLmZsb29yKHMqciksaT1NYXRoLmZsb29yKG4qciksdGhpcy4jVGF8fChhPXRoaXMuI0RhKGUsaSkpfWNvbnN0IG89bmV3IE9mZnNjcmVlbkNhbnZhcyhlLGkpLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSk7by5kcmF3SW1hZ2UoYSwwLDAsYS53aWR0aCxhLmhlaWdodCwwLDAsZSxpKSxjPXt3aWR0aDplLGhlaWdodDppLGRhdGE6by5nZXRJbWFnZURhdGEoMCwwLGUsaSkuZGF0YX19cmV0dXJue2NhbnZhczpsLHdpZHRoOm8saGVpZ2h0OmgsaW1hZ2VEYXRhOmN9fSNMYSh0LGUpe2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMud2lkdGg9dC9pLHRoaXMuaGVpZ2h0PWUvcyx0aGlzLl9pbml0aWFsT3B0aW9ucz8uaXNDZW50ZXJlZD90aGlzLmNlbnRlcigpOnRoaXMuZml4QW5kU2V0UG9zaXRpb24oKSx0aGlzLl9pbml0aWFsT3B0aW9ucz1udWxsLG51bGwhPT10aGlzLiNTYSYmY2xlYXJUaW1lb3V0KHRoaXMuI1NhKSx0aGlzLiNTYT1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuI1NhPW51bGwsdGhpcy4jUGEodCxlKX0pLDIwMCl9I0RhKHQsZSl7Y29uc3R7d2lkdGg6aSxoZWlnaHQ6c309dGhpcy4jeWE7bGV0IG49aSxyPXMsYT10aGlzLiN5YTtmb3IoO24+Mip0fHxyPjIqZTspe2NvbnN0IGk9bixzPXI7bj4yKnQmJihuPW4+PTE2Mzg0P01hdGguZmxvb3Iobi8yKS0xOk1hdGguY2VpbChuLzIpKSxyPjIqZSYmKHI9cj49MTYzODQ/TWF0aC5mbG9vcihyLzIpLTE6TWF0aC5jZWlsKHIvMikpO2NvbnN0IG89bmV3IE9mZnNjcmVlbkNhbnZhcyhuLHIpO28uZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYSwwLDAsaSxzLDAsMCxuLHIpLGE9by50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX1yZXR1cm4gYX0jUGEodCxlKXtjb25zdCBpPW5ldyB2dCxzPU1hdGguY2VpbCh0Kmkuc3gpLG49TWF0aC5jZWlsKGUqaS5zeSkscj10aGlzLiNDYTtpZighcnx8ci53aWR0aD09PXMmJnIuaGVpZ2h0PT09bilyZXR1cm47ci53aWR0aD1zLHIuaGVpZ2h0PW47Y29uc3QgYT10aGlzLiNUYT90aGlzLiN5YTp0aGlzLiNEYShzLG4pLG89ci5nZXRDb250ZXh0KCIyZCIpO28uZmlsdGVyPXRoaXMuX3VpTWFuYWdlci5oY21GaWx0ZXIsby5kcmF3SW1hZ2UoYSwwLDAsYS53aWR0aCxhLmhlaWdodCwwLDAscyxuKX1nZXRJbWFnZUZvckFsdFRleHQoKXtyZXR1cm4gdGhpcy4jQ2F9I0ZhKHQpe2lmKHQpe2lmKHRoaXMuI1RhKXtjb25zdCB0PXRoaXMuX3VpTWFuYWdlci5pbWFnZU1hbmFnZXIuZ2V0U3ZnVXJsKHRoaXMuI0FhKTtpZih0KXJldHVybiB0fWNvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuKHt3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH09dGhpcy4jeWEpLHQuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodGhpcy4jeWEsMCwwKSx0LnRvRGF0YVVSTCgpfWlmKHRoaXMuI1RhKXtjb25zdFt0LGVdPXRoaXMucGFnZURpbWVuc2lvbnMsaT1NYXRoLnJvdW5kKHRoaXMud2lkdGgqdCpZLlBERl9UT19DU1NfVU5JVFMpLHM9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCplKlkuUERGX1RPX0NTU19VTklUUyksbj1uZXcgT2Zmc2NyZWVuQ2FudmFzKGkscyk7cmV0dXJuIG4uZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodGhpcy4jeWEsMCwwLHRoaXMuI3lhLndpZHRoLHRoaXMuI3lhLmhlaWdodCwwLDAsaSxzKSxuLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpfXJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy4jeWEpfSNRcigpe3RoaXMuX3VpTWFuYWdlci5fc2lnbmFsJiYodGhpcy4jVXI9bmV3IFJlc2l6ZU9ic2VydmVyKCh0PT57Y29uc3QgZT10WzBdLmNvbnRlbnRSZWN0O2Uud2lkdGgmJmUuaGVpZ2h0JiZ0aGlzLiNMYShlLndpZHRoLGUuaGVpZ2h0KX0pKSx0aGlzLiNVci5vYnNlcnZlKHRoaXMuZGl2KSx0aGlzLl91aU1hbmFnZXIuX3NpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT57dGhpcy4jVXI/LmRpc2Nvbm5lY3QoKSx0aGlzLiNVcj1udWxsfSkse29uY2U6ITB9KSl9c3RhdGljIGFzeW5jIGRlc2VyaWFsaXplKHQsZSxpKXtsZXQgcz1udWxsO2lmKHQgaW5zdGFuY2VvZiBZaSl7Y29uc3R7ZGF0YTp7cmVjdDpuLHJvdGF0aW9uOnIsaWQ6YSxzdHJ1Y3RQYXJlbnQ6byxwb3B1cFJlZjpofSxjb250YWluZXI6YyxwYXJlbnQ6e3BhZ2U6e3BhZ2VOdW1iZXI6ZH19fT10LHU9Yy5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKSxwPWkuaW1hZ2VNYW5hZ2VyLmdldEZyb21DYW52YXMoYy5pZCx1KTt1LnJlbW92ZSgpO2NvbnN0IGc9KGF3YWl0IGUuX3N0cnVjdFRyZWUuZ2V0QXJpYUF0dHJpYnV0ZXMoYCR7JH0ke2F9YCkpPy5nZXQoImFyaWEtbGFiZWwiKXx8IiI7cz10PXthbm5vdGF0aW9uVHlwZTpsLlNUQU1QLGJpdG1hcElkOnAuaWQsYml0bWFwOnAuYml0bWFwLHBhZ2VJbmRleDpkLTEscmVjdDpuLnNsaWNlKDApLHJvdGF0aW9uOnIsaWQ6YSxkZWxldGVkOiExLGFjY2Vzc2liaWxpdHlEYXRhOntkZWNvcmF0aXZlOiExLGFsdFRleHQ6Z30saXNTdmc6ITEsc3RydWN0UGFyZW50Om8scG9wdXBSZWY6aH19Y29uc3Qgbj1hd2FpdCBzdXBlci5kZXNlcmlhbGl6ZSh0LGUsaSkse3JlY3Q6cixiaXRtYXA6YSxiaXRtYXBVcmw6byxiaXRtYXBJZDpoLGlzU3ZnOmMsYWNjZXNzaWJpbGl0eURhdGE6ZH09dDtoJiZpLmltYWdlTWFuYWdlci5pc1ZhbGlkSWQoaCk/KG4uI0FhPWgsYSYmKG4uI3lhPWEpKTpuLiN4YT1vLG4uI1RhPWM7Y29uc3RbdSxwXT1uLnBhZ2VEaW1lbnNpb25zO3JldHVybiBuLndpZHRoPShyWzJdLXJbMF0pL3Usbi5oZWlnaHQ9KHJbM10tclsxXSkvcCxuLmFubm90YXRpb25FbGVtZW50SWQ9dC5pZHx8bnVsbCxkJiYobi5hbHRUZXh0RGF0YT1kKSxuLl9pbml0aWFsRGF0YT1zLG4uI01hPSEhcyxufXNlcmlhbGl6ZSh0PSExLGU9bnVsbCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7aWYodGhpcy5kZWxldGVkKXJldHVybiB0aGlzLnNlcmlhbGl6ZURlbGV0ZWQoKTtjb25zdCBpPXthbm5vdGF0aW9uVHlwZTpsLlNUQU1QLGJpdG1hcElkOnRoaXMuI0FhLHBhZ2VJbmRleDp0aGlzLnBhZ2VJbmRleCxyZWN0OnRoaXMuZ2V0UmVjdCgwLDApLHJvdGF0aW9uOnRoaXMucm90YXRpb24saXNTdmc6dGhpcy4jVGEsc3RydWN0VHJlZVBhcmVudElkOnRoaXMuX3N0cnVjdFRyZWVQYXJlbnRJZH07aWYodClyZXR1cm4gaS5iaXRtYXBVcmw9dGhpcy4jRmEoITApLGkuYWNjZXNzaWJpbGl0eURhdGE9dGhpcy5zZXJpYWxpemVBbHRUZXh0KCEwKSxpO2NvbnN0e2RlY29yYXRpdmU6cyxhbHRUZXh0Om59PXRoaXMuc2VyaWFsaXplQWx0VGV4dCghMSk7aWYoIXMmJm4mJihpLmFjY2Vzc2liaWxpdHlEYXRhPXt0eXBlOiJGaWd1cmUiLGFsdDpufSksdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkKXtjb25zdCB0PXRoaXMuI2duKGkpO2lmKHQuaXNTYW1lKXJldHVybiBudWxsO3QuaXNTYW1lQWx0VGV4dD9kZWxldGUgaS5hY2Nlc3NpYmlsaXR5RGF0YTppLmFjY2Vzc2liaWxpdHlEYXRhLnN0cnVjdFBhcmVudD10aGlzLl9pbml0aWFsRGF0YS5zdHJ1Y3RQYXJlbnQ/Py0xfWlmKGkuaWQ9dGhpcy5hbm5vdGF0aW9uRWxlbWVudElkLG51bGw9PT1lKXJldHVybiBpO2Uuc3RhbXBzfHw9bmV3IE1hcDtjb25zdCByPXRoaXMuI1RhPyhpLnJlY3RbMl0taS5yZWN0WzBdKSooaS5yZWN0WzNdLWkucmVjdFsxXSk6bnVsbDtpZihlLnN0YW1wcy5oYXModGhpcy4jQWEpKXtpZih0aGlzLiNUYSl7Y29uc3QgdD1lLnN0YW1wcy5nZXQodGhpcy4jQWEpO3I+dC5hcmVhJiYodC5hcmVhPXIsdC5zZXJpYWxpemVkLmJpdG1hcC5jbG9zZSgpLHQuc2VyaWFsaXplZC5iaXRtYXA9dGhpcy4jRmEoITEpKX19ZWxzZSBlLnN0YW1wcy5zZXQodGhpcy4jQWEse2FyZWE6cixzZXJpYWxpemVkOml9KSxpLmJpdG1hcD10aGlzLiNGYSghMSk7cmV0dXJuIGl9I2duKHQpe2NvbnN0e3JlY3Q6ZSxwYWdlSW5kZXg6aSxhY2Nlc3NpYmlsaXR5RGF0YTp7YWx0VGV4dDpzfX09dGhpcy5faW5pdGlhbERhdGEsbj10LnJlY3QuZXZlcnkoKCh0LGkpPT5NYXRoLmFicyh0LWVbaV0pPDEpKSxyPXQucGFnZUluZGV4PT09aSxhPSh0LmFjY2Vzc2liaWxpdHlEYXRhPy5hbHR8fCIiKT09PXM7cmV0dXJue2lzU2FtZTpuJiZyJiZhLGlzU2FtZUFsdFRleHQ6YX19cmVuZGVyQW5ub3RhdGlvbkVsZW1lbnQodCl7cmV0dXJuIHQudXBkYXRlRWRpdGVkKHtyZWN0OnRoaXMuZ2V0UmVjdCgwLDApfSksbnVsbH19Y2xhc3MgY3N7I1FzOyNPYT0hMTsjTmE9bnVsbDsjQmE9bnVsbDsjemE9bnVsbDsjSGE9bmV3IE1hcDsjamE9ITE7I1VhPSExOyMkYT0hMTsjV2E9bnVsbDsjR2E9bnVsbDsjZjtzdGF0aWMgX2luaXRpYWxpemVkPSExO3N0YXRpYyNIPW5ldyBNYXAoW3RzLGhzLGxzLG9zXS5tYXAoKHQ9Plt0Ll9lZGl0b3JUeXBlLHRdKSkpO2NvbnN0cnVjdG9yKHt1aU1hbmFnZXI6dCxwYWdlSW5kZXg6ZSxkaXY6aSxzdHJ1Y3RUcmVlTGF5ZXI6cyxhY2Nlc3NpYmlsaXR5TWFuYWdlcjpuLGFubm90YXRpb25MYXllcjpyLGRyYXdMYXllcjphLHRleHRMYXllcjpvLHZpZXdwb3J0OmgsbDEwbjpsfSl7Y29uc3QgYz1bLi4uY3MuI0gudmFsdWVzKCldO2lmKCFjcy5faW5pdGlhbGl6ZWQpe2NzLl9pbml0aWFsaXplZD0hMDtmb3IoY29uc3QgZSBvZiBjKWUuaW5pdGlhbGl6ZShsLHQpfXQucmVnaXN0ZXJFZGl0b3JUeXBlcyhjKSx0aGlzLiNmPXQsdGhpcy5wYWdlSW5kZXg9ZSx0aGlzLmRpdj1pLHRoaXMuI1FzPW4sdGhpcy4jTmE9cix0aGlzLnZpZXdwb3J0PWgsdGhpcy4jV2E9byx0aGlzLmRyYXdMYXllcj1hLHRoaXMuX3N0cnVjdFRyZWU9cyx0aGlzLiNmLmFkZExheWVyKHRoaXMpfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLiNIYS5zaXplfWdldCBpc0ludmlzaWJsZSgpe3JldHVybiB0aGlzLmlzRW1wdHkmJnRoaXMuI2YuZ2V0TW9kZSgpPT09bC5OT05FfXVwZGF0ZVRvb2xiYXIodCl7dGhpcy4jZi51cGRhdGVUb29sYmFyKHQpfXVwZGF0ZU1vZGUodD10aGlzLiNmLmdldE1vZGUoKSl7c3dpdGNoKHRoaXMuI1ZhKCksdCl7Y2FzZSBsLk5PTkU6cmV0dXJuIHRoaXMuZGlzYWJsZVRleHRTZWxlY3Rpb24oKSx0aGlzLnRvZ2dsZVBvaW50ZXJFdmVudHMoITEpLHRoaXMudG9nZ2xlQW5ub3RhdGlvbkxheWVyUG9pbnRlckV2ZW50cyghMCksdm9pZCB0aGlzLmRpc2FibGVDbGljaygpO2Nhc2UgbC5JTks6dGhpcy5hZGRJbmtFZGl0b3JJZk5lZWRlZCghMSksdGhpcy5kaXNhYmxlVGV4dFNlbGVjdGlvbigpLHRoaXMudG9nZ2xlUG9pbnRlckV2ZW50cyghMCksdGhpcy5kaXNhYmxlQ2xpY2soKTticmVhaztjYXNlIGwuSElHSExJR0hUOnRoaXMuZW5hYmxlVGV4dFNlbGVjdGlvbigpLHRoaXMudG9nZ2xlUG9pbnRlckV2ZW50cyghMSksdGhpcy5kaXNhYmxlQ2xpY2soKTticmVhaztkZWZhdWx0OnRoaXMuZGlzYWJsZVRleHRTZWxlY3Rpb24oKSx0aGlzLnRvZ2dsZVBvaW50ZXJFdmVudHMoITApLHRoaXMuZW5hYmxlQ2xpY2soKX10aGlzLnRvZ2dsZUFubm90YXRpb25MYXllclBvaW50ZXJFdmVudHMoITEpO2NvbnN0e2NsYXNzTGlzdDplfT10aGlzLmRpdjtmb3IoY29uc3QgaSBvZiBjcy4jSC52YWx1ZXMoKSllLnRvZ2dsZShgJHtpLl90eXBlfUVkaXRpbmdgLHQ9PT1pLl9lZGl0b3JUeXBlKTt0aGlzLmRpdi5oaWRkZW49ITF9aGFzVGV4dExheWVyKHQpe3JldHVybiB0PT09dGhpcy4jV2E/LmRpdn1hZGRJbmtFZGl0b3JJZk5lZWRlZCh0KXtpZih0aGlzLiNmLmdldE1vZGUoKT09PWwuSU5LKXtpZighdClmb3IoY29uc3QgdCBvZiB0aGlzLiNIYS52YWx1ZXMoKSlpZih0LmlzRW1wdHkoKSlyZXR1cm4gdm9pZCB0LnNldEluQmFja2dyb3VuZCgpO3RoaXMuY3JlYXRlQW5kQWRkTmV3RWRpdG9yKHtvZmZzZXRYOjAsb2Zmc2V0WTowfSwhMSkuc2V0SW5CYWNrZ3JvdW5kKCl9fXNldEVkaXRpbmdTdGF0ZSh0KXt0aGlzLiNmLnNldEVkaXRpbmdTdGF0ZSh0KX1hZGRDb21tYW5kcyh0KXt0aGlzLiNmLmFkZENvbW1hbmRzKHQpfXRvZ2dsZURyYXdpbmcodD0hMSl7dGhpcy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZHJhd2luZyIsIXQpfXRvZ2dsZVBvaW50ZXJFdmVudHModD0hMSl7dGhpcy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLCF0KX10b2dnbGVBbm5vdGF0aW9uTGF5ZXJQb2ludGVyRXZlbnRzKHQ9ITEpe3RoaXMuI05hPy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLCF0KX1hc3luYyBlbmFibGUoKXt0aGlzLmRpdi50YWJJbmRleD0wLHRoaXMudG9nZ2xlUG9pbnRlckV2ZW50cyghMCk7Y29uc3QgdD1uZXcgU2V0O2Zvcihjb25zdCBlIG9mIHRoaXMuI0hhLnZhbHVlcygpKWUuZW5hYmxlRWRpdGluZygpLGUuc2hvdyghMCksZS5hbm5vdGF0aW9uRWxlbWVudElkJiYodGhpcy4jZi5yZW1vdmVDaGFuZ2VkRXhpc3RpbmdBbm5vdGF0aW9uKGUpLHQuYWRkKGUuYW5ub3RhdGlvbkVsZW1lbnRJZCkpO2lmKCF0aGlzLiNOYSlyZXR1cm47Y29uc3QgZT10aGlzLiNOYS5nZXRFZGl0YWJsZUFubm90YXRpb25zKCk7Zm9yKGNvbnN0IGkgb2YgZSl7aWYoaS5oaWRlKCksdGhpcy4jZi5pc0RlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudChpLmRhdGEuaWQpKWNvbnRpbnVlO2lmKHQuaGFzKGkuZGF0YS5pZCkpY29udGludWU7Y29uc3QgZT1hd2FpdCB0aGlzLmRlc2VyaWFsaXplKGkpO2UmJih0aGlzLmFkZE9yUmVidWlsZChlKSxlLmVuYWJsZUVkaXRpbmcoKSl9fWRpc2FibGUoKXt0aGlzLiMkYT0hMCx0aGlzLmRpdi50YWJJbmRleD0tMSx0aGlzLnRvZ2dsZVBvaW50ZXJFdmVudHMoITEpO2NvbnN0IHQ9bmV3IE1hcCxlPW5ldyBNYXA7Zm9yKGNvbnN0IGkgb2YgdGhpcy4jSGEudmFsdWVzKCkpaS5kaXNhYmxlRWRpdGluZygpLGkuYW5ub3RhdGlvbkVsZW1lbnRJZCYmKG51bGw9PT1pLnNlcmlhbGl6ZSgpPyhlLnNldChpLmFubm90YXRpb25FbGVtZW50SWQsaSksdGhpcy5nZXRFZGl0YWJsZUFubm90YXRpb24oaS5hbm5vdGF0aW9uRWxlbWVudElkKT8uc2hvdygpLGkucmVtb3ZlKCkpOnQuc2V0KGkuYW5ub3RhdGlvbkVsZW1lbnRJZCxpKSk7aWYodGhpcy4jTmEpe2NvbnN0IGk9dGhpcy4jTmEuZ2V0RWRpdGFibGVBbm5vdGF0aW9ucygpO2Zvcihjb25zdCBzIG9mIGkpe2NvbnN0e2lkOml9PXMuZGF0YTtpZih0aGlzLiNmLmlzRGVsZXRlZEFubm90YXRpb25FbGVtZW50KGkpKWNvbnRpbnVlO2xldCBuPWUuZ2V0KGkpO24/KG4ucmVzZXRBbm5vdGF0aW9uRWxlbWVudChzKSxuLnNob3coITEpLHMuc2hvdygpKToobj10LmdldChpKSxuJiYodGhpcy4jZi5hZGRDaGFuZ2VkRXhpc3RpbmdBbm5vdGF0aW9uKG4pLG4ucmVuZGVyQW5ub3RhdGlvbkVsZW1lbnQocykmJm4uc2hvdyghMSkpLHMuc2hvdygpKX19dGhpcy4jVmEoKSx0aGlzLmlzRW1wdHkmJih0aGlzLmRpdi5oaWRkZW49ITApO2NvbnN0e2NsYXNzTGlzdDppfT10aGlzLmRpdjtmb3IoY29uc3QgdCBvZiBjcy4jSC52YWx1ZXMoKSlpLnJlbW92ZShgJHt0Ll90eXBlfUVkaXRpbmdgKTt0aGlzLmRpc2FibGVUZXh0U2VsZWN0aW9uKCksdGhpcy50b2dnbGVBbm5vdGF0aW9uTGF5ZXJQb2ludGVyRXZlbnRzKCEwKSx0aGlzLiMkYT0hMX1nZXRFZGl0YWJsZUFubm90YXRpb24odCl7cmV0dXJuIHRoaXMuI05hPy5nZXRFZGl0YWJsZUFubm90YXRpb24odCl8fG51bGx9c2V0QWN0aXZlRWRpdG9yKHQpe3RoaXMuI2YuZ2V0QWN0aXZlKCkhPT10JiZ0aGlzLiNmLnNldEFjdGl2ZUVkaXRvcih0KX1lbmFibGVUZXh0U2VsZWN0aW9uKCl7aWYodGhpcy5kaXYudGFiSW5kZXg9LTEsdGhpcy4jV2E/LmRpdiYmIXRoaXMuI0dhKXt0aGlzLiNHYT1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IHQ9dGhpcy4jZi5jb21iaW5lZFNpZ25hbCh0aGlzLiNHYSk7dGhpcy4jV2EuZGl2LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiNxYS5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLHRoaXMuI1dhLmRpdi5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRpbmciKX19ZGlzYWJsZVRleHRTZWxlY3Rpb24oKXt0aGlzLmRpdi50YWJJbmRleD0wLHRoaXMuI1dhPy5kaXYmJnRoaXMuI0dhJiYodGhpcy4jR2EuYWJvcnQoKSx0aGlzLiNHYT1udWxsLHRoaXMuI1dhLmRpdi5jbGFzc0xpc3QucmVtb3ZlKCJoaWdobGlnaHRpbmciKSl9I3FhKHQpe3RoaXMuI2YudW5zZWxlY3RBbGwoKTtjb25zdHt0YXJnZXQ6ZX09dDtpZihlPT09dGhpcy4jV2EuZGl2fHwoImltZyI9PT1lLmdldEF0dHJpYnV0ZSgicm9sZSIpfHxlLmNsYXNzTGlzdC5jb250YWlucygiZW5kT2ZDb250ZW50IikpJiZ0aGlzLiNXYS5kaXYuY29udGFpbnMoZSkpe2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07aWYoMCE9PXQuYnV0dG9ufHx0LmN0cmxLZXkmJmUpcmV0dXJuO3RoaXMuI2Yuc2hvd0FsbEVkaXRvcnMoImhpZ2hsaWdodCIsITAsITApLHRoaXMuI1dhLmRpdi5jbGFzc0xpc3QuYWRkKCJmcmVlIiksdGhpcy50b2dnbGVEcmF3aW5nKCksb3Muc3RhcnRIaWdobGlnaHRpbmcodGhpcywibHRyIj09PXRoaXMuI2YuZGlyZWN0aW9uLHt0YXJnZXQ6dGhpcy4jV2EuZGl2LHg6dC54LHk6dC55fSksdGhpcy4jV2EuZGl2LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsKCgpPT57dGhpcy4jV2EuZGl2LmNsYXNzTGlzdC5yZW1vdmUoImZyZWUiKSx0aGlzLnRvZ2dsZURyYXdpbmcoITApfSkse29uY2U6ITAsc2lnbmFsOnRoaXMuI2YuX3NpZ25hbH0pLHQucHJldmVudERlZmF1bHQoKX19ZW5hYmxlQ2xpY2soKXtpZih0aGlzLiNCYSlyZXR1cm47dGhpcy4jQmE9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB0PXRoaXMuI2YuY29tYmluZWRTaWduYWwodGhpcy4jQmEpO3RoaXMuZGl2LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLnBvaW50ZXJkb3duLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLnBvaW50ZXJ1cC5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfWRpc2FibGVDbGljaygpe3RoaXMuI0JhPy5hYm9ydCgpLHRoaXMuI0JhPW51bGx9YXR0YWNoKHQpe3RoaXMuI0hhLnNldCh0LmlkLHQpO2NvbnN0e2Fubm90YXRpb25FbGVtZW50SWQ6ZX09dDtlJiZ0aGlzLiNmLmlzRGVsZXRlZEFubm90YXRpb25FbGVtZW50KGUpJiZ0aGlzLiNmLnJlbW92ZURlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudCh0KX1kZXRhY2godCl7dGhpcy4jSGEuZGVsZXRlKHQuaWQpLHRoaXMuI1FzPy5yZW1vdmVQb2ludGVySW5UZXh0TGF5ZXIodC5jb250ZW50RGl2KSwhdGhpcy4jJGEmJnQuYW5ub3RhdGlvbkVsZW1lbnRJZCYmdGhpcy4jZi5hZGREZWxldGVkQW5ub3RhdGlvbkVsZW1lbnQodCl9cmVtb3ZlKHQpe3RoaXMuZGV0YWNoKHQpLHRoaXMuI2YucmVtb3ZlRWRpdG9yKHQpLHQuZGl2LnJlbW92ZSgpLHQuaXNBdHRhY2hlZFRvRE9NPSExLHRoaXMuI1VhfHx0aGlzLmFkZElua0VkaXRvcklmTmVlZGVkKCExKX1jaGFuZ2VQYXJlbnQodCl7dC5wYXJlbnQhPT10aGlzJiYodC5wYXJlbnQmJnQuYW5ub3RhdGlvbkVsZW1lbnRJZCYmKHRoaXMuI2YuYWRkRGVsZXRlZEFubm90YXRpb25FbGVtZW50KHQuYW5ub3RhdGlvbkVsZW1lbnRJZCksa3QuZGVsZXRlQW5ub3RhdGlvbkVsZW1lbnQodCksdC5hbm5vdGF0aW9uRWxlbWVudElkPW51bGwpLHRoaXMuYXR0YWNoKHQpLHQucGFyZW50Py5kZXRhY2godCksdC5zZXRQYXJlbnQodGhpcyksdC5kaXYmJnQuaXNBdHRhY2hlZFRvRE9NJiYodC5kaXYucmVtb3ZlKCksdGhpcy5kaXYuYXBwZW5kKHQuZGl2KSkpfWFkZCh0KXtpZih0LnBhcmVudCE9PXRoaXN8fCF0LmlzQXR0YWNoZWRUb0RPTSl7aWYodGhpcy5jaGFuZ2VQYXJlbnQodCksdGhpcy4jZi5hZGRFZGl0b3IodCksdGhpcy5hdHRhY2godCksIXQuaXNBdHRhY2hlZFRvRE9NKXtjb25zdCBlPXQucmVuZGVyKCk7dGhpcy5kaXYuYXBwZW5kKGUpLHQuaXNBdHRhY2hlZFRvRE9NPSEwfXQuZml4QW5kU2V0UG9zaXRpb24oKSx0Lm9uY2VBZGRlZCgpLHRoaXMuI2YuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSh0KSx0Ll9yZXBvcnRUZWxlbWV0cnkodC50ZWxlbWV0cnlJbml0aWFsRGF0YSl9fW1vdmVFZGl0b3JJbkRPTSh0KXtpZighdC5pc0F0dGFjaGVkVG9ET00pcmV0dXJuO2NvbnN0e2FjdGl2ZUVsZW1lbnQ6ZX09ZG9jdW1lbnQ7dC5kaXYuY29udGFpbnMoZSkmJiF0aGlzLiN6YSYmKHQuX2ZvY3VzRXZlbnRzQWxsb3dlZD0hMSx0aGlzLiN6YT1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuI3phPW51bGwsdC5kaXYuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk/dC5fZm9jdXNFdmVudHNBbGxvd2VkPSEwOih0LmRpdi5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwoKCk9Pnt0Ll9mb2N1c0V2ZW50c0FsbG93ZWQ9ITB9KSx7b25jZTohMCxzaWduYWw6dGhpcy4jZi5fc2lnbmFsfSksZS5mb2N1cygpKX0pLDApKSx0Ll9zdHJ1Y3RUcmVlUGFyZW50SWQ9dGhpcy4jUXM/Lm1vdmVFbGVtZW50SW5ET00odGhpcy5kaXYsdC5kaXYsdC5jb250ZW50RGl2LCEwKX1hZGRPclJlYnVpbGQodCl7dC5uZWVkc1RvQmVSZWJ1aWx0KCk/KHQucGFyZW50fHw9dGhpcyx0LnJlYnVpbGQoKSx0LnNob3coKSk6dGhpcy5hZGQodCl9YWRkVW5kb2FibGVFZGl0b3IodCl7dGhpcy5hZGRDb21tYW5kcyh7Y21kOigpPT50Ll91aU1hbmFnZXIucmVidWlsZCh0KSx1bmRvOigpPT57dC5yZW1vdmUoKX0sbXVzdEV4ZWM6ITF9KX1nZXROZXh0SWQoKXtyZXR1cm4gdGhpcy4jZi5nZXRJZCgpfWdldCNYYSgpe3JldHVybiBjcy4jSC5nZXQodGhpcy4jZi5nZXRNb2RlKCkpfWNvbWJpbmVkU2lnbmFsKHQpe3JldHVybiB0aGlzLiNmLmNvbWJpbmVkU2lnbmFsKHQpfSNLYSh0KXtjb25zdCBlPXRoaXMuI1hhO3JldHVybiBlP25ldyBlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcih0KTpudWxsfWNhbkNyZWF0ZU5ld0VtcHR5RWRpdG9yKCl7cmV0dXJuIHRoaXMuI1hhPy5jYW5DcmVhdGVOZXdFbXB0eUVkaXRvcigpfXBhc3RlRWRpdG9yKHQsZSl7dGhpcy4jZi51cGRhdGVUb29sYmFyKHQpLHRoaXMuI2YudXBkYXRlTW9kZSh0KTtjb25zdHtvZmZzZXRYOmksb2Zmc2V0WTpzfT10aGlzLiNZYSgpLG49dGhpcy5nZXROZXh0SWQoKSxyPXRoaXMuI0thKHtwYXJlbnQ6dGhpcyxpZDpuLHg6aSx5OnMsdWlNYW5hZ2VyOnRoaXMuI2YsaXNDZW50ZXJlZDohMCwuLi5lfSk7ciYmdGhpcy5hZGQocil9YXN5bmMgZGVzZXJpYWxpemUodCl7cmV0dXJuIGF3YWl0KGNzLiNILmdldCh0LmFubm90YXRpb25UeXBlPz90LmFubm90YXRpb25FZGl0b3JUeXBlKT8uZGVzZXJpYWxpemUodCx0aGlzLHRoaXMuI2YpKXx8bnVsbH1jcmVhdGVBbmRBZGROZXdFZGl0b3IodCxlLGk9e30pe2NvbnN0IHM9dGhpcy5nZXROZXh0SWQoKSxuPXRoaXMuI0thKHtwYXJlbnQ6dGhpcyxpZDpzLHg6dC5vZmZzZXRYLHk6dC5vZmZzZXRZLHVpTWFuYWdlcjp0aGlzLiNmLGlzQ2VudGVyZWQ6ZSwuLi5pfSk7cmV0dXJuIG4mJnRoaXMuYWRkKG4pLG59I1lhKCl7Y29uc3R7eDp0LHk6ZSx3aWR0aDppLGhlaWdodDpzfT10aGlzLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPU1hdGgubWF4KDAsdCkscj1NYXRoLm1heCgwLGUpLGE9KG4rTWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsdCtpKSkvMi10LG89KHIrTWF0aC5taW4od2luZG93LmlubmVySGVpZ2h0LGUrcykpLzItZSxbaCxsXT10aGlzLnZpZXdwb3J0LnJvdGF0aW9uJTE4MD09MD9bYSxvXTpbbyxhXTtyZXR1cm57b2Zmc2V0WDpoLG9mZnNldFk6bH19YWRkTmV3RWRpdG9yKCl7dGhpcy5jcmVhdGVBbmRBZGROZXdFZGl0b3IodGhpcy4jWWEoKSwhMCl9c2V0U2VsZWN0ZWQodCl7dGhpcy4jZi5zZXRTZWxlY3RlZCh0KX10b2dnbGVTZWxlY3RlZCh0KXt0aGlzLiNmLnRvZ2dsZVNlbGVjdGVkKHQpfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuI2YuaXNTZWxlY3RlZCh0KX11bnNlbGVjdCh0KXt0aGlzLiNmLnVuc2VsZWN0KHQpfXBvaW50ZXJ1cCh0KXtjb25zdHtpc01hYzplfT1OLnBsYXRmb3JtOzAhPT10LmJ1dHRvbnx8dC5jdHJsS2V5JiZlfHx0LnRhcmdldD09PXRoaXMuZGl2JiZ0aGlzLiNqYSYmKHRoaXMuI2phPSExLHRoaXMuI09hP3RoaXMuI2YuZ2V0TW9kZSgpIT09bC5TVEFNUD90aGlzLmNyZWF0ZUFuZEFkZE5ld0VkaXRvcih0LCExKTp0aGlzLiNmLnVuc2VsZWN0QWxsKCk6dGhpcy4jT2E9ITApfXBvaW50ZXJkb3duKHQpe2lmKHRoaXMuI2YuZ2V0TW9kZSgpPT09bC5ISUdITElHSFQmJnRoaXMuZW5hYmxlVGV4dFNlbGVjdGlvbigpLHRoaXMuI2phKXJldHVybiB2b2lkKHRoaXMuI2phPSExKTtjb25zdHtpc01hYzplfT1OLnBsYXRmb3JtO2lmKDAhPT10LmJ1dHRvbnx8dC5jdHJsS2V5JiZlKXJldHVybjtpZih0LnRhcmdldCE9PXRoaXMuZGl2KXJldHVybjt0aGlzLiNqYT0hMDtjb25zdCBpPXRoaXMuI2YuZ2V0QWN0aXZlKCk7dGhpcy4jT2E9IWl8fGkuaXNFbXB0eSgpfWZpbmROZXdQYXJlbnQodCxlLGkpe2NvbnN0IHM9dGhpcy4jZi5maW5kUGFyZW50KGUsaSk7cmV0dXJuIG51bGwhPT1zJiZzIT09dGhpcyYmKHMuY2hhbmdlUGFyZW50KHQpLCEwKX1kZXN0cm95KCl7dGhpcy4jZi5nZXRBY3RpdmUoKT8ucGFyZW50PT09dGhpcyYmKHRoaXMuI2YuY29tbWl0T3JSZW1vdmUoKSx0aGlzLiNmLnNldEFjdGl2ZUVkaXRvcihudWxsKSksdGhpcy4jemEmJihjbGVhclRpbWVvdXQodGhpcy4jemEpLHRoaXMuI3phPW51bGwpO2Zvcihjb25zdCB0IG9mIHRoaXMuI0hhLnZhbHVlcygpKXRoaXMuI1FzPy5yZW1vdmVQb2ludGVySW5UZXh0TGF5ZXIodC5jb250ZW50RGl2KSx0LnNldFBhcmVudChudWxsKSx0LmlzQXR0YWNoZWRUb0RPTT0hMSx0LmRpdi5yZW1vdmUoKTt0aGlzLmRpdj1udWxsLHRoaXMuI0hhLmNsZWFyKCksdGhpcy4jZi5yZW1vdmVMYXllcih0aGlzKX0jVmEoKXt0aGlzLiNVYT0hMDtmb3IoY29uc3QgdCBvZiB0aGlzLiNIYS52YWx1ZXMoKSl0LmlzRW1wdHkoKSYmdC5yZW1vdmUoKTt0aGlzLiNVYT0hMX1yZW5kZXIoe3ZpZXdwb3J0OnR9KXt0aGlzLnZpZXdwb3J0PXQsYnQodGhpcy5kaXYsdCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jZi5nZXRFZGl0b3JzKHRoaXMucGFnZUluZGV4KSl0aGlzLmFkZCh0KSx0LnJlYnVpbGQoKTt0aGlzLnVwZGF0ZU1vZGUoKX11cGRhdGUoe3ZpZXdwb3J0OnR9KXt0aGlzLiNmLmNvbW1pdE9yUmVtb3ZlKCksdGhpcy4jVmEoKTtjb25zdCBlPXRoaXMudmlld3BvcnQucm90YXRpb24saT10LnJvdGF0aW9uO2lmKHRoaXMudmlld3BvcnQ9dCxidCh0aGlzLmRpdix7cm90YXRpb246aX0pLGUhPT1pKWZvcihjb25zdCB0IG9mIHRoaXMuI0hhLnZhbHVlcygpKXQucm90YXRlKGkpO3RoaXMuYWRkSW5rRWRpdG9ySWZOZWVkZWQoITEpfWdldCBwYWdlRGltZW5zaW9ucygpe2NvbnN0e3BhZ2VXaWR0aDp0LHBhZ2VIZWlnaHQ6ZX09dGhpcy52aWV3cG9ydC5yYXdEaW1zO3JldHVyblt0LGVdfWdldCBzY2FsZSgpe3JldHVybiB0aGlzLiNmLnZpZXdQYXJhbWV0ZXJzLnJlYWxTY2FsZX19Y2xhc3MgZHN7I1JzPW51bGw7I3k9MDsjUWE9bmV3IE1hcDsjSmE9bmV3IE1hcDtjb25zdHJ1Y3Rvcih7cGFnZUluZGV4OnR9KXt0aGlzLnBhZ2VJbmRleD10fXNldFBhcmVudCh0KXtpZih0aGlzLiNScyl7aWYodGhpcy4jUnMhPT10KXtpZih0aGlzLiNRYS5zaXplPjApZm9yKGNvbnN0IGUgb2YgdGhpcy4jUWEudmFsdWVzKCkpZS5yZW1vdmUoKSx0LmFwcGVuZChlKTt0aGlzLiNScz10fX1lbHNlIHRoaXMuI1JzPXR9c3RhdGljIGdldCBfc3ZnRmFjdG9yeSgpe3JldHVybiBDKHRoaXMsIl9zdmdGYWN0b3J5IixuZXcgdHQpfXN0YXRpYyNaYSh0LHt4OmU9MCx5Omk9MCx3aWR0aDpzPTEsaGVpZ2h0Om49MX09e30pe2NvbnN0e3N0eWxlOnJ9PXQ7ci50b3A9MTAwKmkrIiUiLHIubGVmdD0xMDAqZSsiJSIsci53aWR0aD0xMDAqcysiJSIsci5oZWlnaHQ9MTAwKm4rIiUifSN0byh0KXtjb25zdCBlPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZSgxLDEsITApO3JldHVybiB0aGlzLiNScy5hcHBlbmQoZSksZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCksZHMuI1phKGUsdCksZX0jZW8odCxlKXtjb25zdCBpPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIik7dC5hcHBlbmQoaSk7Y29uc3Qgcz1gY2xpcF8ke2V9YDtpLnNldEF0dHJpYnV0ZSgiaWQiLHMpLGkuc2V0QXR0cmlidXRlKCJjbGlwUGF0aFVuaXRzIiwib2JqZWN0Qm91bmRpbmdCb3giKTtjb25zdCBuPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInVzZSIpO3JldHVybiBpLmFwcGVuZChuKSxuLnNldEF0dHJpYnV0ZSgiaHJlZiIsYCMke2V9YCksbi5jbGFzc0xpc3QuYWRkKCJjbGlwIiksc31oaWdobGlnaHQodCxlLGkscz0hMSl7Y29uc3Qgbj10aGlzLiN5Kysscj10aGlzLiN0byh0LmJveCk7ci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHQiKSx0LmZyZWUmJnIuY2xhc3NMaXN0LmFkZCgiZnJlZSIpO2NvbnN0IGE9ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgiZGVmcyIpO3IuYXBwZW5kKGEpO2NvbnN0IG89ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgicGF0aCIpO2EuYXBwZW5kKG8pO2NvbnN0IGg9YHBhdGhfcCR7dGhpcy5wYWdlSW5kZXh9XyR7bn1gO28uc2V0QXR0cmlidXRlKCJpZCIsaCksby5zZXRBdHRyaWJ1dGUoImQiLHQudG9TVkdQYXRoKCkpLHMmJnRoaXMuI0phLnNldChuLG8pO2NvbnN0IGw9dGhpcy4jZW8oYSxoKSxjPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInVzZSIpO3JldHVybiByLmFwcGVuZChjKSxyLnNldEF0dHJpYnV0ZSgiZmlsbCIsZSksci5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIsaSksYy5zZXRBdHRyaWJ1dGUoImhyZWYiLGAjJHtofWApLHRoaXMuI1FhLnNldChuLHIpLHtpZDpuLGNsaXBQYXRoSWQ6YHVybCgjJHtsfSlgfX1oaWdobGlnaHRPdXRsaW5lKHQpe2NvbnN0IGU9dGhpcy4jeSsrLGk9dGhpcy4jdG8odC5ib3gpO2kuY2xhc3NMaXN0LmFkZCgiaGlnaGxpZ2h0T3V0bGluZSIpO2NvbnN0IHM9ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgiZGVmcyIpO2kuYXBwZW5kKHMpO2NvbnN0IG49ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgicGF0aCIpO3MuYXBwZW5kKG4pO2NvbnN0IHI9YHBhdGhfcCR7dGhpcy5wYWdlSW5kZXh9XyR7ZX1gO2xldCBhO2lmKG4uc2V0QXR0cmlidXRlKCJpZCIsciksbi5zZXRBdHRyaWJ1dGUoImQiLHQudG9TVkdQYXRoKCkpLG4uc2V0QXR0cmlidXRlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIiksdC5mcmVlKXtpLmNsYXNzTGlzdC5hZGQoImZyZWUiKTtjb25zdCB0PWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoIm1hc2siKTtzLmFwcGVuZCh0KSxhPWBtYXNrX3Ake3RoaXMucGFnZUluZGV4fV8ke2V9YCx0LnNldEF0dHJpYnV0ZSgiaWQiLGEpLHQuc2V0QXR0cmlidXRlKCJtYXNrVW5pdHMiLCJvYmplY3RCb3VuZGluZ0JveCIpO2NvbnN0IG49ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgicmVjdCIpO3QuYXBwZW5kKG4pLG4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjEiKSxuLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwiMSIpLG4uc2V0QXR0cmlidXRlKCJmaWxsIiwid2hpdGUiKTtjb25zdCBvPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInVzZSIpO3QuYXBwZW5kKG8pLG8uc2V0QXR0cmlidXRlKCJocmVmIixgIyR7cn1gKSxvLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwibm9uZSIpLG8uc2V0QXR0cmlidXRlKCJmaWxsIiwiYmxhY2siKSxvLnNldEF0dHJpYnV0ZSgiZmlsbC1ydWxlIiwibm9uemVybyIpLG8uY2xhc3NMaXN0LmFkZCgibWFzayIpfWNvbnN0IG89ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgidXNlIik7aS5hcHBlbmQobyksby5zZXRBdHRyaWJ1dGUoImhyZWYiLGAjJHtyfWApLGEmJm8uc2V0QXR0cmlidXRlKCJtYXNrIixgdXJsKCMke2F9KWApO2NvbnN0IGg9by5jbG9uZU5vZGUoKTtyZXR1cm4gaS5hcHBlbmQoaCksby5jbGFzc0xpc3QuYWRkKCJtYWluT3V0bGluZSIpLGguY2xhc3NMaXN0LmFkZCgic2Vjb25kYXJ5T3V0bGluZSIpLHRoaXMuI1FhLnNldChlLGkpLGV9ZmluYWxpemVMaW5lKHQsZSl7Y29uc3QgaT10aGlzLiNKYS5nZXQodCk7dGhpcy4jSmEuZGVsZXRlKHQpLHRoaXMudXBkYXRlQm94KHQsZS5ib3gpLGkuc2V0QXR0cmlidXRlKCJkIixlLnRvU1ZHUGF0aCgpKX11cGRhdGVMaW5lKHQsZSl7dGhpcy4jUWEuZ2V0KHQpLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoImQiLGUudG9TVkdQYXRoKCkpfXJlbW92ZUZyZWVIaWdobGlnaHQodCl7dGhpcy5yZW1vdmUodCksdGhpcy4jSmEuZGVsZXRlKHQpfXVwZGF0ZVBhdGgodCxlKXt0aGlzLiNKYS5nZXQodCkuc2V0QXR0cmlidXRlKCJkIixlLnRvU1ZHUGF0aCgpKX11cGRhdGVCb3godCxlKXtkcy4jWmEodGhpcy4jUWEuZ2V0KHQpLGUpfXNob3codCxlKXt0aGlzLiNRYS5nZXQodCkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZSl9cm90YXRlKHQsZSl7dGhpcy4jUWEuZ2V0KHQpLnNldEF0dHJpYnV0ZSgiZGF0YS1tYWluLXJvdGF0aW9uIixlKX1jaGFuZ2VDb2xvcih0LGUpe3RoaXMuI1FhLmdldCh0KS5zZXRBdHRyaWJ1dGUoImZpbGwiLGUpfWNoYW5nZU9wYWNpdHkodCxlKXt0aGlzLiNRYS5nZXQodCkuc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLGUpfWFkZENsYXNzKHQsZSl7dGhpcy4jUWEuZ2V0KHQpLmNsYXNzTGlzdC5hZGQoZSl9cmVtb3ZlQ2xhc3ModCxlKXt0aGlzLiNRYS5nZXQodCkuY2xhc3NMaXN0LnJlbW92ZShlKX1nZXRTVkdSb290KHQpe3JldHVybiB0aGlzLiNRYS5nZXQodCl9cmVtb3ZlKHQpe251bGwhPT10aGlzLiNScyYmKHRoaXMuI1FhLmdldCh0KS5yZW1vdmUoKSx0aGlzLiNRYS5kZWxldGUodCkpfWRlc3Ryb3koKXt0aGlzLiNScz1udWxsO2Zvcihjb25zdCB0IG9mIHRoaXMuI1FhLnZhbHVlcygpKXQucmVtb3ZlKCk7dGhpcy4jUWEuY2xlYXIoKX19",z=`data:text/javascript;base64,${a}`,k=`data:text/javascript;base64,${y}`;let X=!1,m=!1;class I{constructor(l,Z={},U={}){R(this,"container",null);R(this,"wrapper",null);R(this,"wrapperMain",null);R(this,"options",{});R(this,"requestOptions",{});R(this,"pdfDocument",null);R(this,"loopCheckTimer",null);R(this,"totalItems",0);R(this,"pageWidth",0);R(this,"pageHeight",0);R(this,"containerHeight",0);R(this,"visibleItems",6);R(this,"canvasWidth",0);R(this,"canvasHeight",0);R(this,"getViewportScale",2);R(this,"onScroll",Y.debounce(l=>{const{scrollTop:Z}=l.target;let U=parseInt(getComputedStyle(this.wrapperMain).paddingTop);const d=this.options.gap||10,Q=Math.max(Math.floor(Math.max(Z-U,0)/(this.pageHeight+d))-1,1),W=Math.min(Q+this.visibleItems-1,this.totalItems);this.renderList(Q,W)},60));this.container=l,this.options={staticFileUrl:"https://unpkg.com/pdfjs-dist@3.1.81/",...Z},this.requestOptions=U,this.createWrapper(),this.createWrapperMain()}createWrapper(){this.wrapper=document.createElement("div"),this.wrapper.className="vue-office-pdf",this.wrapper.setAttribute("style","text-align: center;overflow-y: auto;position: relative;height:100%"),this.container.appendChild(this.wrapper),this.wrapper.addEventListener("scroll",this.onScroll)}createWrapperMain(){this.wrapperMain=document.createElement("div"),this.wrapperMain.className="vue-office-pdf-wrapper",this.wrapperMain.setAttribute("style","background: gray; padding: 30px 0;position: relative;box-sizing: content-box"),this.wrapper.appendChild(this.wrapperMain)}installPdfScript(){return J(z).then(()=>{if(window.pdfjsLib&&!m)m=!0,window.pdfjsLib.GlobalWorkerOptions.workerSrc=k;else return Promise.reject("window.pdfjsLib未找到")})}waitPdfjsLoad(){return new Promise(l=>{const Z=()=>{window.pdfjsLib?l():this.loopCheckTimer=setTimeout(Z,10)};Z()})}checkPdfLib(){return window.pdfjsLib?Promise.resolve():X?this.waitPdfjsLoad():(X=!0,this.installPdfScript())}getDocument(l){return window.pdfjsLib.getDocument({url:M(l,{type:"application/pdf"}),httpHeaders:this.requestOptions&&this.requestOptions.headers,withCredentials:this.requestOptions&&this.requestOptions.withCredentials,cMapUrl:`${this.options.staticFileUrl.endsWith("/")?this.options.staticFileUrl:this.options.staticFileUrl+"/"}cmaps/`,cMapPacked:!0,enableXfa:!0,...h(this.options,["width","staticFileUrl"])}).promise}renderSinglePage(l,Z){return this.pdfDocument.getPage(l).then(U=>{const d=U.getViewport({scale:this.getViewportScale});let Q=window.devicePixelRatio>2?1.5:2;if(this.canvasWidth*d.height!==this.canvasHeight*d.width){let V=Math.floor(d.width*Q),G=Math.floor(d.height*Q),c=this.canvasHeight/G;Q=Q*c,Z.width=V*c,Z.style.width=parseInt(Z.style.width)*c+"px"}const W=Z.getContext("2d"),b=Q!==1?[Q,0,0,Q,0,0]:null;return U.render({canvasContext:W,transform:b,viewport:d}).promise})}getPageSize(l){return l.getPage(1).then(Z=>{const U=this.options.width||this.wrapper.getBoundingClientRect().width-20;let d=Z.getViewport({scale:1});d.width>U*1.5?this.getViewportScale=.5:d.width>U?this.getViewportScale=1:this.getViewportScale=2,d=Z.getViewport({scale:this.getViewportScale});const Q=window.devicePixelRatio>2?1.5:2;let W=Math.floor(d.width*Q),b=Math.floor(d.height*Q),F=Math.floor(d.width),V=Math.floor(d.height);if(this.options.width){let c=this.options.width/F;F=Math.floor(this.options.width),V=Math.floor(V*c)}let G=this.wrapper.getBoundingClientRect().width-20;if(F>G){let c=G/F;F=Math.floor(G),V=Math.floor(V*c)}return{width:F,height:V,canvasWidth:W,canvasHeight:b}})}createCanvas(l){let Z=parseInt(getComputedStyle(this.wrapperMain).paddingTop),U=this.options.gap||10;const d=document.createElement("canvas");return d.style.position="absolute",d.style.top=(l-1)*(this.pageHeight+U)+Z+"px",d.style.left="50%",d.style.transform="translate(-50%)",d.style.backgroundColor="#fff",d.setAttribute("data-id",l),d.width=this.canvasWidth,d.height=this.canvasHeight,d.style.width=`${this.pageWidth}px`,d.style.height=`${this.pageHeight}px`,d}clearAllCanvas(){this.wrapperMain&&(this.wrapperMain.innerHTML="")}setOptions(l){this.options=l}setRequestOptions(l){this.requestOptions=l}preview(l){if(!l){this.clearAllCanvas(),this.options.onError&&this.options.onError(new Error("预览地址不能为空"));return}this.checkPdfLib().then(Z=>{this.getDocument(l).then(U=>{this.pdfDocument&&this.pdfDocument.destroy(),this.pdfDocument=U,this.getPageSize(U).then(d=>{this.totalItems=U.numPages,this.containerHeight=this.wrapper.getBoundingClientRect().height,this.pageWidth=d.width,this.pageHeight=d.height,this.canvasWidth=d.canvasWidth,this.canvasHeight=d.canvasHeight;let Q=this.options.gap||10;this.visibleItems=Math.ceil(this.containerHeight/(this.pageHeight+Q))+4;let W=(this.pageHeight+Q)*this.totalItems-Q;this.wrapperMain.style.height=W+"px",this.clearAllCanvas(),this.renderList(1,Math.min(this.totalItems,this.visibleItems))}).catch(d=>{this.clearAllCanvas(),this.options.onError&&this.options.onError(d)})}).catch(U=>{this.clearAllCanvas(),this.options.onError&&this.options.onError(U)})}).catch(Z=>{this.clearAllCanvas(),this.options.onError&&this.options.onError(Z)})}renderList(l,Z){let U=this.wrapperMain,d=[...U.childNodes],Q=[];if(U.childNodes.length===0)for(let W=l;W<=Z;W++){let b=this.createCanvas(W);U.appendChild(b),Q.push(this.renderSinglePage(W,b))}else{let W=+d[0].getAttribute("data-id"),b=+d[d.length-1].getAttribute("data-id");if(Z<W||l>b)for(let F=l;F<=Z;F++){let V=this.createCanvas(F);U.appendChild(V),Q.push(this.renderSinglePage(F,V))}if(l<W&&Z>=W){let F=d[0];for(let V=W-1;V>=l;V--){let G=this.createCanvas(V);U.insertBefore(G,F),F=G,Q.push(this.renderSinglePage(V,G))}}for(let F=0;F<=b-W;F++){let V=+d[F].getAttribute("data-id");(V<l||V>Z)&&U.removeChild(d[F])}if(Z>b&&l<=b)for(let F=b+1;F<=Z;F++){let V=this.createCanvas(F);U.appendChild(V),Q.push(this.renderSinglePage(F,V))}}Promise.all(Q).then(W=>{this.options.onRendered&&this.options.onRendered()}).catch(W=>{this.options.onError&&this.options.onError(W)})}rerender(){this.renderList(1,Math.min(this.totalItems,this.visibleItems))}save(l){this.pdfDocument&&this.pdfDocument._transport&&this.pdfDocument._transport.getData().then(Z=>{L(l||`js-preview-pdf-${new Date().getTime()}.pdf`,Z.buffer)})}destroy(){this.wrapper.removeEventListener("scroll",this.onScroll),this.container.removeChild(this.wrapper),this.container=null,this.wrapper=null,this.wrapperMain=null,this.options={},this.requestOptions={},this.pdfDocument&&this.pdfDocument.destroy(),this.pdfDocument=null,this.loopCheckTimer&&clearTimeout(this.loopCheckTimer)}}function x(N,l,Z){return new I(N,l,Z)}const u={init:x},w={__name:"JsPdfDemo",setup(N){const l=T(null);return E(()=>{window.myPdfPreview=u.init(l.value,{onError:Z=>{console.log("发生错误",Z)},onRendered:()=>{console.log("渲染完成")}}),window.myPdfPreview.preview("/vue-office/examples/dist/static/test-files/test.pdf")}),(Z,U)=>(p(),s("div",{ref_key:"dom",ref:l,style:{height:"calc(100vh - 50px)"}},null,512))}};export{w as default};