⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.82
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
self
/
root
/
usr
/
local
/
psa
/
var
/
modules
/
xovi
/
View File Name :
serp_2.json
{"success":true,"settings":{"hash":"2","url":"https:\/\/www.google.com\/search?q=pixar+cars+3&as_rights=&num=100&start=0&pws=0&hl=en&near=United+States&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw&gws_rd=cr&gl=US&glp=1&gbv=1"},"code":200,"exception":null,"bodyLen":84245,"body":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjx0aXRsZT5Hb29nbGUgU2VhcmNoPC90aXRsZT4gPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4gPG1ldGEgY29udGVudD0iMDt1cmw9L2h0dHBzZXJ2aWNlL3JldHJ5L2VuYWJsZWpzP3NlaT0zU3VBYU15MU5yS21rZFVQMjVXdTJRdyIgaHR0cC1lcXVpdj0icmVmcmVzaCI+PGRpdiBzdHlsZT0iZGlzcGxheTpibG9jayI+UGxlYXNlIGNsaWNrIDxhIGhyZWY9Ii9odHRwc2VydmljZS9yZXRyeS9lbmFibGVqcz9zZWk9M1N1QWFNeTFOcktta2RVUDI1V3UyUXciPmhlcmU8L2E+IGlmIHlvdSBhcmUgbm90IHJlZGlyZWN0ZWQgd2l0aGluIGEgZmV3IHNlY29uZHMuPC9kaXY+PC9ub3NjcmlwdD4gPHNjcmlwdCBub25jZT0iZkhad0M4RDJtcXdKdS1XVUl1RFJ0QSI+Ly8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PQooZnVuY3Rpb24oKXt2YXIgbj1mdW5jdGlvbih5LEUsbCxZLFAsSyxVLEksUixUKXtmb3IoUj0xNztSIT04MDspe2lmKFI9PTk1KXJldHVybiBUO2lmKFI9PTI0KVI9bCsxPj5FPT0xPzgzOjEyO2Vsc2UgaWYoUj09MTIpUj1sLXkmNj85NTo2O2Vsc2UgaWYoUj09ODMpVD1ZLFI9MTI7ZWxzZSBpZihSPT0xNylSPTI0O2Vsc2UgaWYoUj09Nil7aWYoST0oVT1PLnRydXN0ZWRUeXBlcyxQKSxVJiZVLmNyZWF0ZVBvbGljeSl7dHJ5e0k9VS5jcmVhdGVQb2xpY3koWSx7Y3JlYXRlSFRNTDp2LGNyZWF0ZVNjcmlwdDp2LGNyZWF0ZVNjcmlwdFVSTDp2fSl9Y2F0Y2goUyl7aWYoTy5jb25zb2xlKU8uY29uc29sZVtLXShTLm1lc3NhZ2UpfVQ9SX1lbHNlIFQ9STtSPTk1fX19LE89dGhpc3x8c2VsZix2PWZ1bmN0aW9uKHkpe3JldHVybiBuLmNhbGwodGhpcyw1LDMsNyx5KX07KDAsZXZhbCkoZnVuY3Rpb24oeSxFKXtyZXR1cm4oRT1uKDUsMyw1LCJrcyIsbnVsbCwiZXJyb3IiKSkmJnkuZXZhbChFLmNyZWF0ZVNjcmlwdCgiMSIpKT09PTE\/ZnVuY3Rpb24obCl7cmV0dXJuIEUuY3JlYXRlU2NyaXB0KGwpfTpmdW5jdGlvbihsKXtyZXR1cm4iIitsfX0oTykoQXJyYXkoTWF0aC5yYW5kb20oKSo3ODI0fDApLmpvaW4oIlxuIikrWycvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvZ015d2ljMjkxY21ObGN5STZXeUlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUlDSmRMQ0p1WVcxbGN5STZXeUpqYkc5emRYSmxSSGx1WVcxcFkwSjFkSFJ2YmlKZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRWlmUT09JywKJyhmdW5jdGlvbigpey8qJywKJycsCicgQ29weXJpZ2h0IEdvb2dsZSBMTEMnLAonIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJywKJyovJywKJ3ZhciBOJD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSl7e0k9OTY7d2hpbGUoSSE9MTkpaWYoST09OTgpST0oeS0xXjIwKT49eSYmKHkrOV4zMCk8eT84NTo0OTtlbHNlIGlmKEk9PTU5KVk9Tz1SLEk9NjY7ZWxzZSBpZihJPT04NSl7YTp7Zm9yKE8gaW4gdilpZihVLmNhbGwodm9pZCAwLHZbT10sTyx2KSl7VD1FO2JyZWFrIGF9VD1sfUk9NDl9ZWxzZSBpZihJPT0yOClPKz1PPDwzLE9ePU8+PjExLEs9TysoTzw8MTUpPj4+Uix2PW5ldyBOdW1iZXIoSyYoMTw8bCktMSksdltSXT0oSz4+PmwpJVUsVD12LEk9NTE7ZWxzZSBpZihJPT0xNSl0aGlzLkM9TyxJPTYzO2Vsc2UgaWYoST09NjMpST0oeV4yMCk+PjQ9PTQ\/NzM6Mzk7ZWxzZSBpZihJPT03OSlZKyssST0yOTtlbHNlIGlmKEk9PTUwKXRoaXNbdGhpcysiIl09dGhpcyxUPVByb21pc2UucmVzb2x2ZSgpLEk9NTM7ZWxzZSBpZihJPT01MylJPSh5JjEyMCk9PXk\/NTk6NTE7ZWxzZSBpZihJPT0yKU89dj90eXBlb2Ygdi5YZT09PSJmdW5jdGlvbiI\/di5YZSgpOm5ldyB2Om51bGwsST0xNTtlbHNle2lmKEk9PTUxKXJldHVybiBUO0k9PTc0P0k9KHY9V3Rbbl0pPzY4OjYyOkk9PTUyPyhZPXRoaXMuY29uc3RydWN0b3IsST0xMyk6ST09NjQ\/KE8rPUUuY2hhckNvZGVBdChZKSxPKz1PPDwxMCxPXj1PPj42LEk9NzkpOkk9PTY4P0k9MjpJPT03Mj9JPShPPWwpPzE1OjUyOkk9PTY2P0k9Mjk6ST09NzM\/KHRoaXMucUk9Yy5kb2N1bWVudHx8ZG9jdW1lbnQsST0zOSk6ST09Mjk\/ST1ZPEUubGVuZ3RoPzY0OjI4Okk9PTEzP0k9NDU6ST09NDg\/ST00NTpJPT05Nj9JPTk4Okk9PTY3PyhuPXEkKDM3LDUsWSksST03NCk6ST09NDk\/ST0oeSs5XjE3KT49eSYmKHktOXw3MSk8eT8zNzo2MzpJPT00NT9JPVk\/Njc6MjpJPT0zNz8oWlUuY2FsbCh0aGlzLFUpLEk9NzIpOkk9PTM5P0k9KHktOHwzMik8eSYmKHktNnw0Myk+PXk\/NTA6NTM6ST09NjImJihZPShLPU9iamVjdC5nZXRQcm90b3R5cGVPZihZLnByb3RvdHlwZSkpJiZLLmNvbnN0cnVjdG9yLEk9NDgpfX19LEo9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKEs9ODU7SyE9MzQ7KWlmKEs9PTg5KXYgaW4gWSYmbC5jYWxsKHZvaWQgMCxZW3ZdLHYsVSksSz0xOTtlbHNlIGlmKEs9PTg2KU89VS5sZW5ndGgsWT10eXBlb2YgVT09PSJzdHJpbmciP1Uuc3BsaXQoeSk6VSx2PVIsSz00ODtlbHNle2lmKEs9PTY4KXJldHVybiBuO2lmKEs9PTIyKUs9djxPPzg5OjYxO2Vsc2UgaWYoSz09ODUpSz03NDtlbHNlIGlmKEs9PTg4KXtmb3IoWSBpbihVPVIsbCkubCl7Zm9yKE89KHY9bC5sW1ldLFIpO088di5sZW5ndGg7TysrKSsrVSxuTigzNCx5LHZbT10pO2RlbGV0ZSBsLmxbWV0sbC5RVC0tfUs9MjV9ZWxzZSBLPT0zOT8obj15LmNsYXNzTGlzdD95LmNsYXNzTGlzdDpQdCgwLDYseSwiIixSKS5tYXRjaCgvXFxTKy9nKXx8W10sSz05Mik6Sz09MjU\/Sz0oKEV8NikmMTEpPT0zPzg2OjYxOks9PTQ4P0s9MjI6Sz09NjM\/KG49S04oUixsLFUsMzQpJiYhIShsLlgmVSkhPXkmJighKGwuWXcmVSl8fGwuZGlzcGF0Y2hFdmVudChTRCgzLDQwLDMyLFIsMTYsOCxVLHkpKSkmJiFsLlUsSz02OCk6Sz09MTk\/KHYrKyxLPTIyKTpLPT03ND9LPShFfDI0KT09RT84ODoyNTpLPT02MT9LPUU8PDImMTU\/OTI6Mzk6Sz09OTImJihLPUUtNz49LTQzJiYoRT4+MSYxNik8MTU\/NjM6NjgpfX0sWVQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXLFMpe2ZvcihTPTE3O1MhPTgwOylpZihTPT0xMilTPShVPDwxJjcpPj01JiZVPj4xPDIyPzY6OTU7ZWxzZSBpZihTPT05NylTPWwuYWRkTGlzdGVuZXImJmwucmVtb3ZlTGlzdGVuZXI\/ODQ6Nzc7ZWxzZSBpZihTPT0yNClTPShVLTd8MjYpPFUmJihVLTFeMjcpPj1VPzgzOjEyO2Vsc2UgaWYoUz09OTEpUz1ULnByb3h5PzEyOjc7ZWxzZSBpZihTPT03KW49UnIoMTUsNiksVC5wcm94eT1uLG4uc3JjPWwsbi5saXN0ZW5lcj1ULFM9MzI7ZWxzZSBpZihTPT01MClsLmF0dGFjaEV2ZW50KFJyKDE1LDUxLCJvbiIsTy50b1N0cmluZygpKSxuKSxTPTE2O2Vsc2V7aWYoUz09ODkpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO2lmKFM9PTE2KWxRKyssUz0xMjtlbHNlIGlmKFM9PTE3KVM9MjQ7ZWxzZSBpZihTPT04MylTPU8\/NzU6ODk7ZWxzZSBpZihTPT04NClsLmFkZExpc3RlbmVyKG4pLFM9MTY7ZWxzZSBpZihTPT03NSlQPUlyKDY0LFIsRSk\/ISFFLmNhcHR1cmU6ISFFLChJPXooNjksbCkpfHwobFtUal09ST1uZXcgT3EobCkpLFQ9SS5hZGQoTyx5LFksUCxLKSxTPTkxO2Vsc2V7aWYoUz09OTUpcmV0dXJuIFc7aWYoUz09NjYpUz1sLmF0dGFjaEV2ZW50PzUwOjk3O2Vsc2UgaWYoUz09MzIpUz1sLmFkZEV2ZW50TGlzdGVuZXI\/OTo2NjtlbHNle2lmKFM9PTc3KXRocm93IEVycm9yKCJhZGRFdmVudExpc3RlbmVyIGFuZCBhdHRhY2hFdmVudCBhcmUgdW5hdmFpbGFibGUuIik7aWYoUz09OSl2dHx8KEU9UCksRT09PXZvaWQgMCYmKEU9diksbC5hZGRFdmVudExpc3RlbmVyKE8udG9TdHJpbmcoKSxuLEUpLFM9MTY7ZWxzZSBpZihTPT02KXthOntmb3IoTz12O088RS5sZW5ndGg7KytPKWlmKFk9RVtPXSwhWS54VyYmWS5saXN0ZW5lcj09eSYmWS5jYXB0dXJlPT0hIVImJlkuRDk9PWwpe1c9TzticmVhayBhfVc9LTF9Uz05NX19fX19LGI9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtzd2l0Y2goISgoeT4+MiY3KT49NCYmKCh5fDQpJjgpPDMpKXtjYXNlICEiIj09IWZhbHNlOk51bWJlcih1bmRlZmluZWQpO2JyZWFrO2Nhc2UgTmFOPT09TnVtYmVyKHRydWUudHJ1ZSk6aWYoTz13dSgib2JqZWN0IixsLCJudW1iZXIiKT09PSJhcnJheSI\/bDpbbF0sdGhpcy5qKVIodGhpcy5qKTtlbHNlIHRyeXtVPSF0aGlzLkoubGVuZ3RoLHY9W10seigzNSwwLHRoaXMsW2hwLHYsT10pLHooMywwLHRoaXMsW2lRLFIsdl0pLEUmJiFVfHx6KDI3LDAsRSx0aGlzLHRydWUpfWNhdGNoKEspe1B0KDAsNyx0aGlzLEssIjoiKSxSKHRoaXMuail9YnJlYWt9cmV0dXJuIHktMz4+NTw0JiYoeT4+MSY3KT49NSYmKFIuST9ZPUJ0KFIuUixSKToobD1wKFIsdHJ1ZSw4KSxsJjEyOCYmKGw9Mip+KGwmMTI4KS0yKn5sLShsfC0xMjkpKyh+bHwxMjgpLEU9cChSLHRydWUsMiksbD0oVT1sPDwyLDMqKFV8RSktKFUmRSktIC0yKzIqKH5VXkUpKSksWT1sKSksWX0sU0Q9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKEs9NDI7SyE9MzQ7KWlmKEs9PTY2KVk9dHlwZW9mIHYsTz1ZIT1sP1k6dj9BcnJheS5pc0FycmF5KHYpPyJhcnJheSI6WToibnVsbCIsbj1PPT1VfHxPPT1sJiZ0eXBlb2Ygdi5sZW5ndGg9PUUsSz0xNDtlbHNlIGlmKEs9PTI3KW49TWF0aC5mbG9vcih0aGlzLlZUKyh0aGlzLkYoKS10aGlzLnlUKSksSz03MTtlbHNlIGlmKEs9PTI1KUs9KHl8OSk+PjQ8MiYmeTw8Mj49LTQ3PzI3OjcxO2Vsc2UgaWYoSz09NDIpSz0yNTtlbHNle2lmKEs9PTUzKXJldHVybiBuO2lmKEs9PTcxKUs9KHktUnw0OCk+PXkmJih5LTV8MjMpPHk\/NjY6MTQ7ZWxzZSBpZihLPT0xKXthOntzd2l0Y2goTyl7Y2FzZSAxOm49WT8iZGlzYWJsZSI6ImVuYWJsZSI7YnJlYWsgYTtjYXNlIGw6bj1ZPyJoaWdobGlnaHQiOiJ1bmhpZ2hsaWdodCI7YnJlYWsgYTtjYXNlIDQ6bj1ZPyJhY3RpdmF0ZSI6ImRlYWN0aXZhdGUiO2JyZWFrIGE7Y2FzZSB2Om49WT8ic2VsZWN0IjoidW5zZWxlY3QiO2JyZWFrIGE7Y2FzZSBVOm49WT8iY2hlY2siOiJ1bmNoZWNrIjticmVhayBhO2Nhc2UgRTpuPVk\/ImZvY3VzIjoiYmx1ciI7YnJlYWsgYTtjYXNlIDY0Om49WT8ib3BlbiI6ImNsb3NlIjticmVhayBhfXRocm93IEVycm9yKCJJbnZhbGlkIGNvbXBvbmVudCBzdGF0ZSIpO31LPTUzfWVsc2UgSz09MTQmJihLPSh5fDQwKT09eT8xOjUzKX19LEw9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXLFMpe2ZvcihTPTYxLFQ9NjQ7Oyl0cnl7aWYoUz09NDApYnJlYWs7ZWxzZSBpZihTPT02MilUPTUwLG49cE4oTyxVLDQ2NSxZKSxTPTQxO2Vsc2UgaWYoUz09ODIpTy5LPVIsWT1PLkoucG9wKCksUz02MjtlbHNlIGlmKFM9PTIpUz1VIGluIGwubCYmeFQoNSwxLGwubFtVXSxFKT8xNTo5MTtlbHNle2lmKFM9PTYwKXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK1IpO2lmKFM9PTYxKVM9Mjg7ZWxzZSBpZihTPT05NylTPXktMT4+Mz09Mz84OjQzO2Vsc2UgaWYoUz09OClTPTIxO2Vsc2UgaWYoUz09MTUpbk4oMzUsUixFKSxTPTczO2Vsc2UgaWYoUz09NTUpZGVsZXRlIGwubFtVXSxsLlFULS0sUz05MTtlbHNle2lmKFM9PTUpdGhyb3cgRXJyb3IoIkludmFsaWQgY2xhc3MgbmFtZSAiK0UpO2lmKFM9PTkpUz15KzQ+PjM9PTE\/NDQ6OTE7ZWxzZSBpZihTPT0yMSlTPU8uSi5sZW5ndGg\/ODI6NjU7ZWxzZSBpZihTPT05NilTPUU\/MjA6NTtlbHNlIGlmKFM9PTcwKVQ9NjQsUHQoMCwzLE8sUCwiOiIpLFM9NDE7ZWxzZSBpZihTPT0yNilTPTIxO2Vsc2UgaWYoUz09NjUpST1uLFM9NDM7ZWxzZSBpZihTPT04NClTPXYmJk8uSz81MDoyNjtlbHNlIGlmKFM9PTI4KVM9eT4+MiYxMT85Nzo5MztlbHNlIGlmKFM9PTkzKVc9ZnVuY3Rpb24oKXt9LFcucHJvdG90eXBlPWwucHJvdG90eXBlLEUuUz1sLnByb3RvdHlwZSxFLnByb3RvdHlwZT1uZXcgVyxFLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1FLEUuTDU9ZnVuY3Rpb24ocSxOLGgpe2Zvcih2YXIgdz00Nzt3IT03OylpZih3PT04OSlCW0MtUl09YXJndW1lbnRzW0NdLHc9NjQ7ZWxzZSBpZih3PT00Nyl2YXIgQj1BcnJheShhcmd1bWVudHMubGVuZ3RoLSh3PTU1LFIpKSxDPVI7ZWxzZSBpZih3PT02NClDKyssdz00MjtlbHNle2lmKHc9PTIxKXJldHVybiBsLnByb3RvdHlwZVtOXS5hcHBseShxLEIpO3c9PTU1P3c9NDI6dz09NDImJih3PUM8YXJndW1lbnRzLmxlbmd0aD84OToyMSl9fSxTPTk3O2Vsc2UgaWYoUz09NDMpUz0oeXw0MCk9PXk\/OTY6OTtlbHNle2lmKFM9PTkxKXJldHVybiBJO1M9PTQxPyhUPTY0LFM9ODQpOlM9PTQ0PyhVPUUudHlwZSxTPTIpOlM9PTIwP1M9dHlwZW9mIFIhPT0iZnVuY3Rpb24iPzYwOjk6Uz09NTA\/KEs9Ty5LLEsoZnVuY3Rpb24oKXt6KDQzLGwsRSxPLEUpfSksUz02NSk6Uz09NzMmJihTPWwubFtVXS5sZW5ndGg9PTA\/NTU6OTEpfX19fWNhdGNoKHEpe2lmKFQ9PTY0KXRocm93IHE7VD09NTAmJihQPXEsUz03MCl9fSxjdD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyl7cmV0dXJuKHleNDApPj40fHwodj1EVSh0cnVlLDgsRSksMioodnwwKS1+KHYmMTI4KS0gLTErMip+diYmKHY9KGw9KHZ8UiktKHYmLTEyOCktKH52JlIpLFU9RFUodHJ1ZSw4LEUpPDw3LC0obCZVKS0yKn4obCZVKSstMisobF5VKSkpLEs9diksKHleMyk+PjN8fChLPShVPShPPUVbbF08PFJ8RVsyKihsfDEpLSAtMS0ofmwmMSkrKH5sfDEpXTw8MTYsWT1FWzMqKGwmMikrfihsJjIpLSh+bF4yKV08PDgsKE8mWSktMS0ofk9eWSkpLHY9RVsobHwwKSszXSwoVXwwKSt+VS1+KFV8dikpKSxLfSx6PWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCl7Zm9yKG49NjQ7biE9NzE7KWlmKG49PTI0KXtpZihsLkoubGVuZ3RoKXsobC5KVCYmIjpUUVI6VFFSOiIoKSxsKS5KVD10cnVlLGwueVo9RTt0cnl7dj1sLkYoKSxsLnByPXksbC5ZVz15LGwuRmU9dixsLnlUPXYsSz1MKG51bGwsMjUsdHJ1ZSwwLDMsRSxsKSxPPVU\/MDoxMCxZPWwuRigpLWwueVQsbC5WVCs9WSxsLkUyJiZsLkUyKFktbC5QLGwuTyxsLkwsbC5wciksbC5QPXksbC5PPWZhbHNlLGwuTD1mYWxzZSxZPE98fGwuQlktLTw9eXx8KFk9TWF0aC5mbG9vcihZKSxsLktyLnB1c2goWTw9MjU0P1k6MjU0KSl9ZmluYWxseXtsLkpUPWZhbHNlfVQ9S31uPTF9ZWxzZSBpZihuPT00MClFLkouc3BsaWNlKHkseSxsKSxuPTk4O2Vsc2UgaWYobj09ODUpdVEuY2FsbCh0aGlzLHk\/eS50eXBlOiIiKSx0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGwsdGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MCx0aGlzLmtleT0iIix0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT1mYWxzZSx0aGlzLnN0YXRlPW51bGwsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMudGltZVN0YW1wPTAsdGhpcy53cj1udWxsLHkmJnRoaXMuaW5pdCh5LEUpLG49MzI7ZWxzZSBpZihuPT0zMiluPShSPj4yJjExKT09MT80ODo1MTtlbHNlIGlmKG49PTI1KVQ9dGhpcy5uPT09MD8wOk1hdGguc3FydCh0aGlzLnRUL3RoaXMubiksbj01ODtlbHNlIGlmKG49PTQ4KUU9eVtUal0sVD1FIGluc3RhbmNlb2YgT3E\/RTpudWxsLG49NTE7ZWxzZSBpZihuPT02NCluPTYxO2Vsc2UgaWYobj09OTgpbj0oUiYyOSk9PVI\/MjU6NTg7ZWxzZSBpZihuPT02MSluPShSJjk0KT09Uj84NTozMjtlbHNlIGlmKG49PTU4KW49KFIrOCYxNSk9PTM\/MjQ6MTtlbHNlIGlmKG49PTUxKW49KFImMzkpPT1SPzQwOjk4O2Vsc2UgaWYobj09MSlyZXR1cm4gVH0sS049ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXKXtmb3IoVz05NDtXIT04OTspaWYoVz09NzQpbj1JcigzMixFLE8pPyEhTy5jYXB0dXJlOiEhTyx5PW5OKDE1LHkpLFc9ODQ7ZWxzZSBpZihXPT0zNylXPUk\/MTU6ODE7ZWxzZSBpZihXPT0yNSlUKyssVz0yMjtlbHNlIGlmKFc9PTk0KVc9MTc7ZWxzZSBpZihXPT02OSlQPSEhKFU9eS5oeSwoVXwwKSsoVSZ+RSktUiooVV5FKStSKih+VSZFKSksVz0yMTtlbHNlIGlmKFc9PTE1KShLPUkubnIobixZLHksdikpJiYkVCgib24iLDQxLG51bGwsSyksVz04MTtlbHNlIGlmKFc9PTIyKVc9VDxZLmxlbmd0aD8zODo4MTtlbHNlIGlmKFc9PTM4KUtOKDAseSwib2JqZWN0Iiw1LFUsdixPLFlbVF0pLFc9MjU7ZWxzZSBpZihXPT0xNylXPWw+PjE8MTUmJihsfDIpPj0zPzYyOjgxO2Vsc2UgaWYoVz09MzEpVz1VPzI3OjgxO2Vsc2V7aWYoVz09MjEpcmV0dXJuIFA7Vz09NjI\/Vz1BcnJheS5pc0FycmF5KFkpPzYwOjc0Olc9PTg0P1c9VSYmVVt0cF0\/NTU6MzE6Vz09Mjc\/KEk9eigyMyxVKSxXPTM3KTpXPT01NT8oVS5aLnJlbW92ZShTdHJpbmcoWSkseSxuLHYpLFc9ODEpOlc9PTgxP1c9KGwmMTE1KT09bD82OToyMTpXPT05OT9XPTIyOlc9PTYwJiYoVD1SLFc9OTkpfX0sR2o9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7e249Mjt3aGlsZShuIT0xMylpZihuPT02OSluPSh5JjY5KT09eT8yMDozODtlbHNlIGlmKG49PTg5KXtpZigoTz1sLmxlbmd0aCxPKT5FKXtmb3Iodj1BcnJheShPKSxVPUU7VTxPO1UrKyl2W1VdPWxbVV07Sz12fWVsc2UgSz1bXTtuPTE3fWVsc2UgaWYobj09MTcpbj0oeS01JjcpPT0xPzQ6OTA7ZWxzZXtpZihuPT0zOClyZXR1cm4gSztuPT00Mj9uPTY5Om49PTg\/bj0oeSY1OSk9PXk\/ODk6MTc6bj09OTA\/bj15Pj4xPFImJnktNT49Mz80Mjo2OTpuPT0yP249ODpuPT00PyhrVC5jYWxsKHRoaXMpLHRoaXMuWj1uZXcgT3EodGhpcyksdGhpcy5icD1udWxsLHRoaXMuWE49dGhpcyxuPTkwKTpuPT0yMCYmKFkuY2xhc3NMaXN0P1kuY2xhc3NMaXN0LnJlbW92ZShPKTphcigib2ZmIiwyMSxVLGwsWSxPKSYmQSg0Nix2LFksQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKEooVSxZLDMyKSxmdW5jdGlvbihUKXtyZXR1cm4gVCE9T30pLmpvaW4oRSkpLG49MzgpfX19LGFyPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXt7VD03O3doaWxlKFQhPTE4KWlmKFQ9PTc0KVQ9WjI\/NDk6Nzk7ZWxzZSBpZihUPT0zMSlUPSh5JjExMCk9PXk\/NTU6NDc7ZWxzZSBpZihUPT0yNylZPVUuY2xhc3NMaXN0LmNvbnRhaW5zKHYpLFQ9ODtlbHNlIGlmKFQ9PTcpVD01OTtlbHNlIGlmKFQ9PTcwKXRoaXMuVT10aGlzLlUsdGhpcy5XWT10aGlzLldZLFQ9MzE7ZWxzZSBpZihUPT00OSlZPVoyLHYgaW4gWT9VLnNldEF0dHJpYnV0ZShLLFlbdl0pOlUucmVtb3ZlQXR0cmlidXRlKEspLFQ9Nzg7ZWxzZSBpZihUPT05NilBcnJheS5pc0FycmF5KE8pJiYoTz1PLmpvaW4oIiAiKSksSz0iYXJpYS0iK3YsVD01MTtlbHNlIGlmKFQ9PTc4KVQ9eTw8MTwzMSYmeSs2Pj0xMT83MDozMTtlbHNlIGlmKFQ9PTU1KXRoaXMubj09PTA\/ST1bMCwwXToodGhpcy52LnNvcnQoZnVuY3Rpb24oUCxXKXtyZXR1cm4gUC1XfSksST1bdGhpcy5uLHRoaXMudlt0aGlzLnYubGVuZ3RoPj4xXV0pLFQ9NDc7ZWxzZSBpZihUPT0xMClPPUooRSxVLDQ0KSxZPUxOKDY1LGwsMTEsdixPKT49bCxUPTg7ZWxzZSBpZihUPT04KUk9WSxUPTYzO2Vsc2UgaWYoVD09ODUpVD1VLmNsYXNzTGlzdD8yNzoxMDtlbHNlIGlmKFQ9PTUxKVQ9Tz09PSIifHxPPT12b2lkIDA\/NzQ6NDg7ZWxzZSBpZihUPT00NylUPSh5LTR8MzcpPj15JiYoeS01XjE3KTx5Pzg1OjYzO2Vsc2UgaWYoVD09NDgpVS5zZXRBdHRyaWJ1dGUoSyxPKSxUPTc4O2Vsc2UgaWYoVD09Nzkpbj17fSxaMj0obi5hdG9taWM9bCxuLmF1dG9jb21wbGV0ZT0ibm9uZSIsbi5kcm9wZWZmZWN0PSJub25lIixuLmhhc3BvcHVwPWwsbi5saXZlPVIsbi5tdWx0aWxpbmU9bCxuLm11bHRpc2VsZWN0YWJsZT1sLG4ub3JpZW50YXRpb249InZlcnRpY2FsIixuLnJlYWRvbmx5PWwsbi5yZWxldmFudD0iYWRkaXRpb25zIHRleHQiLG4ucmVxdWlyZWQ9bCxuLnNvcnQ9Im5vbmUiLG4uYnVzeT1sLG4uZGlzYWJsZWQ9bCxuLmhpZGRlbj1sLG4uaW52YWxpZD1FLG4pLFQ9NDk7ZWxzZSBpZihUPT01OSlUPXkrNiY1Pzc4Ojk2O2Vsc2UgaWYoVD09NjMpcmV0dXJuIEl9fSxQdD1mdW5jdGlvbihSLHksRSxsLFUsdixPKXt7dj0yMjt3aGlsZSh2IT05NClpZih2PT04Nyl2PSh5JjExMCk9PXk\/NzQ6MzI7ZWxzZSBpZih2PT0yMil2PTgyO2Vsc2UgaWYodj09NylFLmo9KChFLmo\/RS5qKyJ+IjoiRToiKStsLm1lc3NhZ2UrVStsLnN0YWNrKS5zbGljZShSLDIwNDgpLHY9ODc7ZWxzZSBpZih2PT04Mil2PSh5PDwyJjYpPj00JiYoeV43KT4+NDwxPzc6ODc7ZWxzZXtpZih2PT0zMilyZXR1cm4gTzt2PT03NCYmKE89dHlwZW9mIEUuY2xhc3NOYW1lPT0ic3RyaW5nIj9FLmNsYXNzTmFtZTpFLmdldEF0dHJpYnV0ZSYmRS5nZXRBdHRyaWJ1dGUoVSl8fGwsdj0zMil9fX0saXc9ZnVuY3Rpb24oUix5LEUpe2ZvcihFPTU1O0UhPTkxOylpZihFPT00OClFPVItLT85Ojg2O2Vsc2UgaWYoRT09OSl5LnB1c2goTWF0aC5yYW5kb20oKSoyNTV8MCksRT0yMztlbHNlIGlmKEU9PTE1KUU9NDg7ZWxzZSBpZihFPT01NSl5PVtdLEU9MTU7ZWxzZSBpZihFPT0yMylFPTQ4O2Vsc2UgaWYoRT09ODYpcmV0dXJuIHl9LHZTPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXtmb3IoST0yO0khPTY5OylpZihJPT0zKUk9MTk7ZWxzZSBpZihJPT0xMilUPShuPXlTW0Uuc3Vic3RyaW5nKDAsMykrIl8iXSk\/bihFLnN1YnN0cmluZygzKSxsLFUsdixPLFksSyk6T2soMCxFLDgsbCksST0yNztlbHNlIGlmKEk9PTQ0KUk9ODk7ZWxzZSBpZihJPT04NClJPXYmJnYub25jZT8wOjUzO2Vsc2UgaWYoST09OTcpST0oeXw3Mik9PXk\/OTg6MzU7ZWxzZSBpZihJPT0zNSlJPSh5Pj4xJjE0KTwxMSYmKCh5fDYpJjExKT49ND84NDpSO2Vsc2UgaWYoST09MjYpbj0wLEk9NDQ7ZWxzZSBpZihJPT0xOSlJPSh5fDQwKT09eT83MTo5NztlbHNlIGlmKEk9PTM2KUk9KHkmMjEpPT15PzM6MTk7ZWxzZSBpZihJPT01MylJPUFycmF5LmlzQXJyYXkoSyk\/MjY6NzI7ZWxzZSBpZihJPT1SKUk9eSsxPj0yNCYmeSs0PDQzPzEyOjI3O2Vsc2UgaWYoST09NzEpdGhpcy51PUUsST05NztlbHNlIGlmKEk9PTApQXAoNjUsNDIsdHJ1ZSwwLEssVSx2LFksTyksST1SO2Vsc2UgaWYoST09OTgpVD1IdFtsXShIdC5wcm90b3R5cGUse2NvbnNvbGU6RSxwcm9wZXJ0eUlzRW51bWVyYWJsZTpFLHNwbGljZTpFLHByb3RvdHlwZTpFLHN0YWNrOkUsZmxvb3I6RSxkb2N1bWVudDpFLHBvcDpFLHJlcGxhY2U6RSxsZW5ndGg6RSxjYWxsOkUscGFyZW50OkV9KSxJPTM1O2Vsc2UgaWYoST09NTApdlMoODAsOSxmYWxzZSwib2JqZWN0IixVLHYsTyxZLEtbbl0pLEk9Njg7ZWxzZSBpZihJPT03MilZPW5OKDIzLFkpLFUmJlVbdHBdP1UuWi5hZGQoU3RyaW5nKEspLFksRSxJcigzMixsLHYpPyEhdi5jYXB0dXJlOiEhdixPKTpZVCgib2JqZWN0IixZLHYsVSw1LGZhbHNlLEssRSxPKSxJPVI7ZWxzZSBpZihJPT02OCluKyssST04OTtlbHNlIGlmKEk9PTg5KUk9bjxLLmxlbmd0aD81MDpSO2Vsc2V7aWYoST09MjcpcmV0dXJuIFQ7ST09MiYmKEk9MzYpfX0seFQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXLFMscSl7Zm9yKHE9OTc7cSE9MzspaWYocT09NjMpcT0oUis2JjMpPDImJihSLTcmNik+PTM\/OTE6OTg7ZWxzZSBpZihxPT03NylxPShSfDI0KT09Uj8xODoxMztlbHNlIGlmKHE9PTE5KXthOntmb3IoSz0oUD0obj1iUSx2KS5zcGxpdCh5KSxsKTtLPFAubGVuZ3RoLVU7SysrKXtpZighKFk9UFtLXSxZIGluIG4pKWJyZWFrIGE7bj1uW1ldfShJPShXPShUPVBbUC5sZW5ndGgtVV0sbltUXSksTyhXKSksSSE9VyYmSSE9RSkmJkNOKG4sVCx7Y29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZSx2YWx1ZTpJfSl9cT05OH1lbHNle2lmKHE9PTEzKXJldHVybiBTO3E9PTk3P3E9NjM6cT09MTg\/cT0xMzpxPT05MT9xPU8\/MTk6OTg6cT09OTg\/cT0oKFJ8OCkmMTUpPj0yJiYoUj4+MiYxMik8ND85MDo3NzpxPT05MCYmKFU9TE4oNjUsMCw3LGwsRSksKHY9VT49MCkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChFLFUseSksUz12LHE9NzcpfX0sbk49ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtmb3IoTz0xNTtPIT0yODspaWYoTz09NzcpdGhpcy5saXN0ZW5lcj1FLHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1sLHRoaXMudHlwZT12LHRoaXMuY2FwdHVyZT0hIVUsdGhpcy5EOT15LHRoaXMua2V5PSsrTSQsdGhpcy56bD10aGlzLnhXPWZhbHNlLE89MTM7ZWxzZSBpZihPPT03KU89KFJ8NCk+PjM9PTM\/Nzc6MTM7ZWxzZSBpZihPPT0zMil0eXBlb2YgeT09PSJmdW5jdGlvbiI\/WT15Oih5W21jXXx8KHlbbWNdPWZ1bmN0aW9uKEspe3JldHVybiB5LmhhbmRsZUV2ZW50KEspfSksWT15W21jXSksTz0zNDtlbHNlIGlmKE89PTE1KU89NDg7ZWxzZXtpZihPPT0xMylyZXR1cm4gWTtPPT00OD9PPShSJjc3KT09Uj8xOjM3Ok89PTY2PyhFLnhXPXRydWUsRS5saXN0ZW5lcj15LEUucHJveHk9eSxFLnNyYz15LEUuRDk9eSxPPTcpOk89PTI\/Tz10aGlzLnYubGVuZ3RoPDUwPzIwOjcyOk89PTM0P089KChSXjE0KSYxNik8OCYmUj4+Mj49NT82Njo3Ok89PTE\/KHRoaXMubisrLE89Mik6Tz09Mzc\/Tz0oUi03XjcpPj1SJiYoUi04fDUpPFI\/MzI6MzQ6Tz09NzI\/KEU9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnRoaXMubiksRTw1MCYmKHRoaXMudltFXT15KSxPPTM3KTpPPT0yMCYmKHRoaXMudi5wdXNoKHkpLE89MzcpfX0sUFM9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKG49NzY7biE9MTY7KXtpZihuPT01KXJldHVybiBLO2lmKG49PTc2KW49MjU7ZWxzZSBpZihuPT0zMCluPWwuY2xhc3NMaXN0PzQ2OjU0O2Vsc2UgaWYobj09NTQpe2Zvcih2IGluIE89KChBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKEooImNsYXNzIixsLChZPXt9LDQwKSksZnVuY3Rpb24oVCl7WVtUXT10cnVlfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLmNhbGwoVSxmdW5jdGlvbihUKXtZW1RdPXRydWV9KSxSKSxZKU8rPU8ubGVuZ3RoPjA\/IiAiK3Y6djtuPShBKDE0LCJzdHJpbmciLGwsTyksODYpfWVsc2Ugbj09NDY\/KEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoVSxmdW5jdGlvbihULEksUCl7Zm9yKFA9MzY7UCE9NjU7KVA9PTk5PyhJPVB0KDAsOCxsLFIsImNsYXNzIiksQSgzOCwic3RyaW5nIixsLEkrKEkubGVuZ3RoPjA\/IiAiK1Q6VCkpLFA9NjUpOlA9PTgxP1A9YXIoIm9mZiIsMjIsImNsYXNzIiwwLGwsVCk\/NjU6OTk6UD09NTE\/KGwuY2xhc3NMaXN0LmFkZChUKSxQPTY1KTpQPT0zNiYmKFA9bC5jbGFzc0xpc3Q\/NTE6ODEpfSksbj04Nik6bj09ODY\/bj0oRT4+MSY3KT09MT95OjU6bj09eT8oSz1sJiZsLnBhcmVudE5vZGU\/bC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpOm51bGwsbj01KTpuPT0yNSYmKG49KEV8OCk9PUU\/MzA6ODYpfX0sSmQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEspe2lmKEUudT09RSlmb3IoVT1NKHksRSkseT09ODR8fHk9PTEwMXx8eT09NDg1PyhZPWZ1bmN0aW9uKG4sVCxJLFAsVyxTLHEsTixoKXtmb3IoTj0ocT01LDE2KTs7KXRyeXtpZihxPT02OSlicmVhaztlbHNlIGlmKHE9PTUpUz1VLmxlbmd0aCxXPShTfDApLTQ+PjMscT0yNztlbHNle2lmKHE9PTc3KXRocm93IE49MTYsaDtxPT0wPyhOPTIwLFUuUmg9emYoMzI2MCxjdCgyNCw1LFUsUCksMyxjdCgyNCw2LFUsNCooUCY0KSsyKn4oUCY0KS0oUHwtNSktKH5QfDQpKSxJKSxxPTM4KTpxPT0yNz9xPVUuQ3IhPVc\/MTk6Mzg6cT09Mzg\/KFUucHVzaCgoVD1VLlJoWy0oU3wwKS0yKn4oUyY3KSstMisoUyYtOCldLC0oVHxuKSsoVCZuKSsyKihUJn5uKSsyKih+VCZuKSkpLHE9NjkpOnE9PTE5JiYoUD0oVzw8MyktNCxJPVswLDAsS1sxXSxLWzJdXSxVLkNyPVcscT0wKX19Y2F0Y2godyl7aWYoTj09MTYpdGhyb3cgdztOPT0yMCYmKGg9dyxxPTc3KX19LEs9TSgzNTUsRSkpOlk9ZnVuY3Rpb24obil7VS5wdXNoKG4pfSxsJiZZKGwmMjU1KSx2PTAsTz1SLmxlbmd0aDt2PE87disrKVkoUlt2XSl9LEFwPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXt7ST04NTt3aGlsZShJIT04KWlmKEk9PTQwKW4rKyxJPTg3O2Vsc2UgaWYoST09NDgpST0oeS01JjcpPT0yPzUyOjU5O2Vsc2UgaWYoST09NjgpdGhpc1t0aGlzKyIiXT10aGlzLEk9NDg7ZWxzZXtpZihJPT04NClyZXR1cm4gVDtJPT04Nz9JPW48VS5sZW5ndGg\/MjU6MzU6ST09MjU\/KEFwKDY1LDQxLHRydWUsMCxVW25dLHYsTyxZLEspLEk9NDApOkk9PTg4P0k9ODc6ST09NzA\/ST0oeXw0MCk9PXk\/NzE6MzU6ST09NTI\/KGwuWjkmJmwuWjkuZm9yRWFjaChFLHZvaWQgMCksST01OSk6ST09MTc\/KFk9bk4oNyxZKSx2JiZ2W3RwXT92LlouYWRkKFN0cmluZyhVKSxZLEUsSXIoUiwib2JqZWN0IixPKT8hIU8uY2FwdHVyZTohIU8sSyk6WVQoIm9iamVjdCIsWSxPLHYsNixmYWxzZSxVLEUsSyksST0zNSk6ST09NTk\/ST15LTE+PjQ\/ODQ6MTU6ST09ODU\/ST03MDpJPT0zNT9JPXk8PDImMTU\/NDg6Njg6ST09MTU\/KHRoaXMuc3JjPUUsdGhpcy5RVD0wLHRoaXMubD17fSxJPTg0KTpJPT01Nj8obj1sLEk9ODgpOkk9PTcxJiYoST1BcnJheS5pc0FycmF5KFUpPzU2OjE3KX19fSxYcj1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuKXtmb3IoSz0zMjtLIT0zNjspaWYoSz09MjYpeS5kcj12b2lkIDAseS5YZT1mdW5jdGlvbigpe3JldHVybiB5LmRyP3kuZHI6eS5kcj1uZXcgeX0sSz0yODtlbHNle2lmKEs9PTI4KXJldHVybiBuO0s9PTY2PyhuPVUsSz01OSk6Sz09OTY\/Sz15LnhXPzk0OjkzOks9PTkzPyh2PW5ldyBmTihsLHRoaXMpLE89eS5EOXx8eS5zcmMsWT15Lmxpc3RlbmVyLHkuemwmJiRUKCJvbiIsNDAsbnVsbCx5KSxVPVkuY2FsbChPLHYpLEs9NjYpOks9PTQ1P0s9RS05PDwxPEUmJihFLTZeMTYpPj1FPzI2OjI4Oks9PTMyP0s9MjpLPT0yP0s9KEUmMTEwKT09RT85Njo1OTpLPT05ND8oVT10cnVlLEs9NjYpOks9PTQzPyh0aGlzLnR5cGU9eSx0aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9bCx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dGhpcy5Tcj1mYWxzZSxLPTQ1KTpLPT01OSYmKEs9KEUtUl4zMCk8RSYmRS02PDwxPj1FPzQzOjQ1KX19LGVEPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJLFAsVyl7Zm9yKFc9ODU7VyE9OTE7KWlmKFc9PTgzKVc9KHkmMjcpPT15PzMwOjQ4O2Vsc2UgaWYoVz09ODUpVz04MztlbHNlIGlmKFc9PTMwKXtpZihZPWwuWi5sW1N0cmluZyhFKV0pe2ZvcihuPShJPShZPVkuY29uY2F0KCksMCksdHJ1ZSk7STxZLmxlbmd0aDsrK0kpKFQ9WVtJXSkmJiFULnhXJiZULmNhcHR1cmU9PVUmJihLPVQuRDl8fFQuc3JjLE89VC5saXN0ZW5lcixULnpsJiZMKFIsNyxULGwuWiksbj1PLmNhbGwoSyx2KSE9PWZhbHNlJiZuKTtQPW4mJiF2LmRlZmF1bHRQcmV2ZW50ZWR9ZWxzZSBQPXRydWU7Vz00OH1lbHNle2lmKFc9PTMpcmV0dXJuIFA7Vz09ND8obD1SLFA9ZnVuY3Rpb24oKXtyZXR1cm4gbDxFLmxlbmd0aD97ZG9uZTpmYWxzZSx2YWx1ZTpFW2wrK119Ontkb25lOnRydWV9fSxXPTMpOlc9PTQ4JiYoVz0oeS02fDEwKT49eSYmeSs2Pj4xPHk\/NDozKX19LEE9ZnVuY3Rpb24oUix5LEUsbCxVLHYpe2ZvcihVPTY0O1UhPTc4OylpZihVPT00NilrKEUsbCx5KSx5W0t3XT0yNzk2LFU9Nzc7ZWxzZSBpZihVPT02MilVPShSLTh8MzUpPj1SJiYoUi0yXjE4KTxSPzQ2Ojc3O2Vsc2UgaWYoVT09NzcpVT0oUiszJjcpPT0xPzg1OjA7ZWxzZSBpZihVPT0xMyl0aGlzLm4rKyxFPXktdGhpcy5BLHRoaXMuQSs9RS90aGlzLm4sdGhpcy50VCs9RSooeS10aGlzLkEpLFU9MzQ7ZWxzZSBpZihVPT0zMylTWC5jYWxsKHRoaXMpLHl8fFdTfHwoV1M9bmV3IHEwKSx0aGlzLmk9bnVsbCx0aGlzLmdyPWZhbHNlLHRoaXMudXA9dm9pZCAwLHRoaXMuckI9ZmFsc2UsdGhpcy5sND10aGlzLm1sPXRoaXMuYWg9dGhpcy5aOT1udWxsLFU9NjI7ZWxzZSBpZihVPT02NClVPTM5O2Vsc2V7aWYoVT09MClyZXR1cm4gdjtVPT04NT8odHlwZW9mIEUuY2xhc3NOYW1lPT15P0UuY2xhc3NOYW1lPWw6RS5zZXRBdHRyaWJ1dGUmJkUuc2V0QXR0cmlidXRlKCJjbGFzcyIsbCksVT0wKTpVPT0zND9VPSgoUnwxKSY3KT09Mz8zMzo2MjpVPT0zOSYmKFU9KFI+PjImNyk9PTI\/MTM6MzQpfX0sRz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQpe2lmKCh5JjE1KT09KCh5Pj4oKHl8KCh5Jjk0KT09eSYmKFU9Wy0yNSw5Myw2OSwtNTMsLTg0LDg5LFUsLTQ1LDAsMjZdLE89LTEtfih2fDcpLSh2XjcpLFk9Vmcsbj1IdFtFLmhdKEUueHcpLG5bRS5oXT1mdW5jdGlvbihJKXtPPShPKz0oSz1JLDYrNyp2KSwoT3xSKSsofk9eNyktKE98LTgpKX0sbi5jb25jYXQ9ZnVuY3Rpb24oSSxQLFcsUyl7cmV0dXJuKFc9KEk9LTI4NSpsKmwqSysoKFM9bCUxNisxLFkpKCl8UikqUy1TKkstNjI3KksrTys1KmwqbCpTKzU3KksqSy01MzAxKmwqSytVW08rMjcmN10qbCpTLEs9dm9pZCAwLFVbSV0pLFUpWyhQPU8rMjEsKFB8UiktKFBeNykrKH5QJjcpKSsodiYyKV09VyxVW08rKHYmMildPTkzLFd9LFQ9biksNjQpKT09eSYmKFIuST9UPUJ0KFIuUixSKToobD1wKFIsdHJ1ZSw4KSxsJjEyOCYmKGw9Mip+KGwmMTI4KS0yKn5sLShsfC0xMjkpKyh+bHwxMjgpLFU9cChSLHRydWUsMiksbD0oRT1sPDwyLDMqKEV8VSktKEUmVSktIC0yKzIqKH5FXlUpKSksVD1sKSksMikmMyk9PTEmJihSLkk\/VD1CdChSLlIsUik6KFU9cChSLHRydWUsOCksVSYxMjgmJihVPTIqfihVJjEyOCktMip+VS0oVXwtMTI5KSsoflV8MTI4KSxsPXAoUix0cnVlLDIpLFU9KEU9VTw8MiwzKihFfGwpLShFJmwpLSAtMisyKih+RV5sKSkpLFQ9VSkpLHkpKXtmb3IoWT0odj1iKEUsMTApLFIpO2w+UjtsLS0pWT0oVT1ZPDw4LE89RFUodHJ1ZSw4LEUpLChVJk8pK34oVSZPKS1+KFV8TykpO2EoWSx2LEUpfXJldHVybiBUfSxoZD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSl7cmV0dXJuKCh5Jjc3KT09eSYmKFU9SHRbbC5oXShsLkhRKSxVW2wuaF09ZnVuY3Rpb24oKXtyZXR1cm4gRX0sVS5jb25jYXQ9ZnVuY3Rpb24oUCl7RT1QfSxUPVUpLCh5LTN8MjYpPHkmJih5KzUmNTcpPj15KSYmKFQ9ST1mdW5jdGlvbigpe3t2YXIgUD03Njt3aGlsZShQIT04OSlpZihQPT00MClQPVU9PUU\/NTI6Nzc7ZWxzZSBpZihQPT02OSl7dmFyIFc9IVkuSi5sZW5ndGg7eigzOCxSLFkscSksVyYmeig1OSxSLGwsWSxsKSxQPTExfWVsc2UgaWYoUD09NzYpUD1ZLnU9PVk\/NjQ6ODk7ZWxzZSBpZihQPT01Mil7dmFyIFM9eigxMSwoeigzMyxSLFkscSksUiksbCxZLGwpO1A9MTF9ZWxzZXtpZihQPT0xMSlyZXR1cm4gUztpZihQPT02NClQPVkuTj8yNTo4MjtlbHNlIGlmKFA9PTI4KVM9cE4oWSwzLDQ2NSxxKSxQPTExO2Vsc2UgaWYoUD09ODIpSyYmbiYmSy5yZW1vdmVFdmVudExpc3RlbmVyKG4sSSxOMCksUD04OTtlbHNlIGlmKFA9PTc3KVA9VT09MT82OToyODtlbHNlIGlmKFA9PTI1KXZhciBxPVt3TSx2LChQPTQwLE8pLHZvaWQgMCxLLG4sYXJndW1lbnRzXX19fSksVH0sT2s9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEspe2ZvcihLPTIwO0shPTUzOylpZihLPT04MSlZPXYsSz0yNjtlbHNlIGlmKEs9PTI2KUs9RT4+MSYxMT83MTo0MDtlbHNlIGlmKEs9PTI0KUs9Tz85Mzo1OTtlbHNle2lmKEs9PTU0KXJldHVybiBZO0s9PTE0Pyh5Kz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbC5zbGljZShVLFUrODE5MikpLEs9ODMpOks9PTQ2Pyh2PU8oeSkucmVwbGFjZSgvXFwrL2csIi0iKS5yZXBsYWNlKC9cXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksSz04MSk6Sz09NTk\/KHY9dm9pZCAwLEs9ODEpOks9PTQzP0s9NDc6Sz09OTM\/KFU9Uix5PSIiLEs9NDMpOks9PTQ3P0s9VTxsLmxlbmd0aD8xNDo0NjpLPT03Nz8oTz13aW5kb3cuYnRvYSxLPTI0KTpLPT0xP0s9RS00PDwxPj1FJiYoRSs5XjI3KTxFPzc3OjI2Oks9PTcxP0s9RS0zJjc\/NTQ6NjE6Sz09ODM\/KFUrPTgxOTIsSz00Nyk6Sz09NjE\/KFk9ISEoTz12Lk1yLC0oVXxsKSt5KihPfFUpLXkqKE9eVSkrKH5PJlUpKSYmS04oeSx2LFUsMzIpLEs9NTQpOks9PTQwPyhsKGZ1bmN0aW9uKG4pe24oeSl9KSxZPVtmdW5jdGlvbigpe3JldHVybiB5fSxmdW5jdGlvbigpe31dLEs9NzEpOks9PTIwJiYoSz0xKX19LCRUPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJLFAsVyl7e1A9OTM7d2hpbGUoUCE9MzcpaWYoUD09MjQpUD0zMTtlbHNle2lmKFA9PTIzKXJldHVybiBXO2lmKFA9PTM4KW5OKDMzLEUsbCksUD0yMztlbHNlIGlmKFA9PTI2KUwoRSw2LGwsTy5aKSxQPTIzO2Vsc2UgaWYoUD09OTUpUD0oeS02XjI1KT49eSYmKHktM3wxOCk8eT8zOjgzO2Vsc2UgaWYoUD09OTMpUD05NTtlbHNlIGlmKFA9PTgyKVA9TyYmT1t0cF0\/MjY6MzA7ZWxzZSBpZihQPT05NilQPVUuUVQ9PTA\/NDoyMztlbHNlIGlmKFA9PTIxKXthOntpZihLJiZ0eXBlb2YgSy5sZW5ndGg9PVIpe2lmKElyKDMzLCJvYmplY3QiLEspKXtuPXR5cGVvZiBLLml0ZW09PSJmdW5jdGlvbiJ8fHR5cGVvZiBLLml0ZW09PSJzdHJpbmciO2JyZWFrIGF9aWYodHlwZW9mIEs9PT0iZnVuY3Rpb24iKXtuPXR5cGVvZiBLLml0ZW09PSJmdW5jdGlvbiI7YnJlYWsgYX19bj1FfUooMCxVLDMzLEksbj9HaigxOCwzLDAsSyk6SyksUD01fWVsc2UgUD09ODM\/UD0oeXw4KT4+Mz09MT8zNDoxNDpQPT0yOT9QPXR5cGVvZiBsIT09Im51bWJlciImJmwmJiFsLnhXPzEzOjIzOlA9PTQ5P1A9IVNEKDMsMzIsUiwib2JqZWN0IiwiYXJyYXkiLEspfHxJcigzMywib2JqZWN0IixLKSYmSy5ub2RlVHlwZT4wPzExOjIxOlA9PTMxP1A9VDx2Lmxlbmd0aD8xNTo4MzpQPT0wP1A9VT84OTozODpQPT0zMD8odj1sLnByb3h5LFk9bC50eXBlLE8ucmVtb3ZlRXZlbnRMaXN0ZW5lcj9PLnJlbW92ZUV2ZW50TGlzdGVuZXIoWSx2LGwuY2FwdHVyZSk6Ty5kZXRhY2hFdmVudD9PLmRldGFjaEV2ZW50KFJyKDE1LDUwLFIsWSksdik6Ty5hZGRMaXN0ZW5lciYmTy5yZW1vdmVMaXN0ZW5lciYmTy5yZW1vdmVMaXN0ZW5lcih2KSxsUS0tLFU9eig3MSxPKSxQPTApOlA9PTExPyhJKEspLFA9NSk6UD09MzQ\/KEUuY2xhc3NMaXN0P0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoUixmdW5jdGlvbihTKXtHaigxOCw1LCIgIiwwLCJjbGFzcyIsInN0cmluZyIsUyxFKX0pOkEoNiwic3RyaW5nIixFLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChKKCJjbGFzcyIsRSwzNiksZnVuY3Rpb24oUyl7cmV0dXJuIShMTig2NSwwLDE1LFMsUik+PTApfSkuam9pbigiICIpKSxQPTE0KTpQPT0xNT8oSz12W1RdLFA9NDkpOlA9PTM\/KEk9ZnVuY3Rpb24oUyl7UyYmTy5hcHBlbmRDaGlsZCh0eXBlb2YgUz09PSJzdHJpbmciP1kuY3JlYXRlVGV4dE5vZGUoUyk6Uyl9LFQ9bCxQPTI0KTpQPT0xND9QPSh5Pj4yJjYpPT0yPzI5OjIzOlA9PTEzPyhPPWwuc3JjLFA9ODIpOlA9PTU\/KFQrKyxQPTMxKTpQPT00PyhVLnNyYz1FLE9bVGpdPUUsUD0yMyk6UD09ODkmJihMKEUsNSxsLFUpLFA9OTYpfX19LElyPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCl7Zm9yKG49MjA7biE9OTQ7KWlmKG49PTkzKW49ODA7ZWxzZSBpZihuPT04MCluPUs+Nz84OToxNjtlbHNlIGlmKG49PTg5KUstPTgsTy5wdXNoKFU+PksmMjU1KSxuPTI7ZWxzZSBpZihuPT0xMClUPU8sbj00OTtlbHNlIGlmKG49PTIwKW49NjtlbHNlIGlmKG49PTYpbj0oUnw0MCk9PVI\/NjM6NDk7ZWxzZSBpZihuPT03NilUPU1hdGguZmxvb3IodGhpcy5GKCkpLG49MjE7ZWxzZSBpZihuPT02MylLPTAsTz1bXSx2PTAsbj05NztlbHNlIGlmKG49PTE2KXYrKyxuPTIyO2Vsc2UgaWYobj09MjIpbj12PHkubGVuZ3RoPzM1OjEwO2Vsc2UgaWYobj09NDkpbj1SLTE+PjM\/MjE6NzY7ZWxzZXtpZihuPT05NSlyZXR1cm4gVDtuPT04Mz8obC5lcihmdW5jdGlvbihJKXtVPUl9LHksRSksVD1VLG49MzIpOm49PTk3P249MjI6bj09Mj9uPTgwOm49PTMyP249Uj4+MSYxNT85NTo3MjpuPT03Mj8obD10eXBlb2YgRSxUPWw9PXkmJkUhPW51bGx8fGw9PSJmdW5jdGlvbiIsbj05NSk6bj09MjE\/bj0oUnwyNCk9PVI\/ODM6MzI6bj09MzUmJihLKz1FLFU9KFk9VTw8RSxsPXlbdl0sKFl8MCktKH5ZXmwpKyh+WXxsKSksbj05Myl9fSxxJD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQpe3tuPTc7d2hpbGUobiE9NDIpaWYobj09UilLPWZ1bmN0aW9uKCl7fSx2PXZvaWQgMCxZPWpEKEUsZnVuY3Rpb24oSSxQKXtmb3IoUD04OTtQIT0xOTspUD09ODk\/UD1LPzY4OjE5OlA9PTY4JiYobCYmRnIobCksdj1JLEsoKSxLPXZvaWQgMCxQPTE5KX0sISFsKSxPPVlbMF0sVT1ZWzFdLFQ9e3RvcDpmdW5jdGlvbihJLFAsVyxTLHEsTixoKXtmb3IoTj03NDtOIT01NjspaWYoTj09OTkpTj12PzYzOjY5O2Vsc2UgaWYoTj09NjkpUz1LLEs9ZnVuY3Rpb24oKXsoUygpLEZyKShoKX0sTj01NjtlbHNle2lmKE49PTMpcmV0dXJuIHE9TyhXKSxJJiZJKHEpLHE7Tj09NzQ\/KGg9ZnVuY3Rpb24oKXt2KGZ1bmN0aW9uKHcpe0ZyKGZ1bmN0aW9uKCl7SSh3KX0pfSxXKX0sTj00MSk6Tj09NDE\/Tj1QPzk5OjM6Tj09NjMmJihoKCksTj01Nil9fSxwZTpmdW5jdGlvbihJKXtVJiZVKEkpfX0sbj03MztlbHNlIGlmKG49PTE1KW49eS05Pj40PzczOlI7ZWxzZSBpZihuPT0zNCl7aWYodj0oTz1jLnRydXN0ZWRUeXBlcyxsKSxPJiZPLmNyZWF0ZVBvbGljeSl7dHJ5e3Y9Ty5jcmVhdGVQb2xpY3koRSx7Y3JlYXRlSFRNTDpzayxjcmVhdGVTY3JpcHQ6c2ssY3JlYXRlU2NyaXB0VVJMOnNrfSl9Y2F0Y2goSSl7aWYoYy5jb25zb2xlKWMuY29uc29sZVtVXShJLm1lc3NhZ2UpfVQ9dn1lbHNlIFQ9djtuPTE3fWVsc2UgaWYobj09OTYpbj0oeSY5MSk9PXk\/MzQ6MTc7ZWxzZSBpZihuPT03KW49Mjk7ZWxzZSBpZihuPT0yOSluPSh5KzUmNTgpPj15JiYoeS04fDE2KTx5Pzc2Ojk2O2Vsc2UgaWYobj09NzYpVD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRSxSVykmJkVbUlddfHwoRVtSV109Kytsdyksbj05NjtlbHNlIGlmKG49PTE3KW49KHl8NDApPT15Pzg4OjE1O2Vsc2UgaWYobj09ODgpbj0xNTtlbHNlIGlmKG49PTczKXJldHVybiBUfX0sTE49ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtmb3IoWT0yMTtZIT01OTspe2lmKFk9PTMyKXJldHVybiBPO2lmKFk9PTEyKVk9KEUmOTIpPT1FPzM4OjM5O2Vsc2UgaWYoWT09Uil7YTppZih0eXBlb2YgVT09PSJzdHJpbmciKU89dHlwZW9mIGwhPT0ic3RyaW5nInx8bC5sZW5ndGghPTE\/LTE6VS5pbmRleE9mKGwseSk7ZWxzZXtmb3Iodj15O3Y8VS5sZW5ndGg7disrKWlmKHYgaW4gVSYmVVt2XT09PWwpe089djticmVhayBhfU89LTF9WT0xMn1lbHNlIFk9PTk0PyhZYy5jYWxsKHRoaXMseSxsfHxudy5YZSgpLFUpLFk9MzIpOlk9PTQxP1k9KEU8PDImMTUpPj0xMSYmRS05PDIyP1I6MTI6WT09Mzk\/WT0oRV40Mik8MjQmJkUrMT49MTg\/OTQ6MzI6WT09MjE\/WT00MTpZPT0zOCYmKE89eSxZPTM5KX19LFJyPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXtmb3IoVD02O1QhPVI7KWlmKFQ9PTMzKXthOntmb3IoSz1bKFk9RSxsPT10eXBlb2YgZ2xvYmFsVGhpcykmJmdsb2JhbFRoaXMsdixsPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csbD09dHlwZW9mIHNlbGYmJnNlbGYsbD09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtZPEsubGVuZ3RoOysrWSlpZigoTz1LW1ldKSYmT1tVXT09TWF0aCl7bj1PO2JyZWFrIGF9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9VD01MH1lbHNlIGlmKFQ9PTU3KVQ9KHl8NDApPT15PzMzOjUwO2Vsc2UgaWYoVD09MTYpVD0oeS0yXjkpPj15JiYoeSs1XjMwKTx5Pzg4Ojk4O2Vsc2UgaWYoVD09MzkpST1mdW5jdGlvbihQKXtyZXR1cm4gRS5jYWxsKEkuc3JjLEkubGlzdGVuZXIsUCl9LEU9UWcsbj1JLFQ9NTc7ZWxzZSBpZihUPT02KVQ9MTY7ZWxzZSBpZihUPT05OClUPXktMjw0MCYmeTw8Mj49MjI\/Mzk6NTc7ZWxzZXtpZihUPT01MClyZXR1cm4gbjtUPT04OCYmKG49bCBpbiBndT9ndVtsXTpndVtsXT1FK2wsVD05OCl9fSxkdT1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSxQKXtmb3IoST0zMDtJIT0yMzspaWYoST09MzApST05NDtlbHNle2lmKEk9PTU2KXJldHVybiBQO2lmKEk9PTU3KUU9UixFPSh5PUU8PDEzLC0oRSZ5KSt+RS0yKn4oRXx5KSsoRXx+eSkpLEVePUU+PjE3LEVePUU8PDUsKEU9LX5FLShFXmwpKzIqKH5FJmwpKyhFfH5sKSl8fChFPTEpLFA9KFV8RSkrfkUtKFV8fkUpLEk9NTY7ZWxzZSBpZihJPT03Myl7aWYobC51PShUPShLPShZPShSfHxsLllXKyssbC5qcik+MCYmbC5KVCYmbC55WiYmbC5vaDw9VSYmIWwuSSYmIWwuSyYmKCFSfHxsLlN6LXk+VSkmJmRvY3VtZW50LmhpZGRlbj09MCwobj1sLllXPT00KXx8WT9sLkYoKTpsLkZlKSxLLWwuRmUpLGwuQis9VD4+MTQ+MCxsLlcmJihsLldePShsLkIrVT4+MikqKFQ8PDIpKSxsLkIrVT4+MiE9MCl8fGwudSxufHxZKWwuRmU9SyxsLllXPTA7ST0oWT8obC5qcj5sLnByJiYobC5wcj1sLmpyKSxLLWwueVQ8bC5qci0oRT8yNTU6Uj81OjIpP1A9ZmFsc2U6KGwuU3o9eSxPPXQoUj8xMDU6NDA1LGwpLGsoNDA1LGwsbC5nKSxsLkoucHVzaChbcnUsTyxSP3krVTp5LGwuTyxsLkxdKSxsLks9RnIsUD10cnVlKSk6UD1mYWxzZSw2Nyl9ZWxzZSBJPT02Nz9JPSh2XjE4KSY1PzU2OjU3Okk9PTk0JiYoST0odiszXjMwKT49diYmKHYrN14yMik8dj83Mzo2Nyl9fSxvVz1mdW5jdGlvbihSLHkpe2Z1bmN0aW9uIEUoKXt0aGlzLkE9dGhpcy50VD10aGlzLm49MH1yZXR1cm5bZnVuY3Rpb24obCl7KHkuTHIobCksUikuTHIobCl9LChSPW5ldyAoeT0oKEUucHJvdG90eXBlLmE0PWZ1bmN0aW9uKCl7cmV0dXJuIHouY2FsbCh0aGlzLDkpfSxFKS5wcm90b3R5cGUuTHI9ZnVuY3Rpb24obCxVKXtyZXR1cm4gQS5jYWxsKHRoaXMsOCxsLFUpfSxuZXcgRSksRSksZnVuY3Rpb24obCl7cmV0dXJuIFI9bmV3IChsPVt5LmE0KCksUi5hNCgpLHkuQSxSLkFdLEUpLGx9KV19LHQ9ZnVuY3Rpb24oUix5LEUpe0U9eS5OW1JdO2ZvcihbXT09KCFbdW5kZWZpbmVkXT09MCE9IVtdKTtFPT09dm9pZCAwO05hTil7dGhyb3dbRDIsMzAsUl07aWYoIVsiIl09PTApYnJlYWt9d2hpbGUoRS52YWx1ZSl7cmV0dXJuIEUuY3JlYXRlKCk7aWYoMCE9IVt0cnVlLnRydWVdPT0hW10pYnJlYWt9cmV0dXJuKEUuY3JlYXRlKFIqNSpSKzkzKlIrMTEpLEUpLnByb3RvdHlwZX0sUT1mdW5jdGlvbihSLHksRSxsLFUpe2ZvcihFPTIqKHl8MSktfih5JjEpKzMqfih5fDEpLTIqKH55fChsPVtdLDEpKTtFPj0wO0UtLSlsWy1+KHkmMSkrfih5fDEpKzIqKHkmLTIpLShFfDApXT0oVT1SPj5FKjgsLTEtflUtKFUmLTI1NikpO3JldHVybiBsfSxqRD1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe3JldHVybiB2Uy5jYWxsKHRoaXMsODAsMjMsUix5LEUsbCxVLHYsTyxZKX0scTA9ZnVuY3Rpb24oKXtyZXR1cm4gTiQuY2FsbCh0aGlzLDAsODEpfSx4Yz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyl7aWYoIWwuail7bC5vaCsrO3RyeXt2PShVPXZvaWQgMCxSKTt7Tz1sLmc7d2hpbGUoLS15KXRyeXtpZihZPXZvaWQgMCxsLkkpVT1CdChsLkksbCk7ZWxzZXtpZih2PU0oNDA1LGwpLHY+PU8pYnJlYWs7VT1nKChZPUcobCwoaygxMDUsbCx2KSw2NykpLFkpLGwpfWR1KGZhbHNlLChVJiYoSz1VW2NTXSwtfihLfEUpLSh+SyZFKSsofkt8RSkpP1UobCx5KTpwdyhbRDIsMjEsWV0sbCxSLDg0KSx5KSxmYWxzZSxsLDEsMTIpfWNhdGNoKG4pe2coMSxsKT9wdyhuLGwsMjIsODQpOmsoMSxsLG4pfX1pZigheSl7aWYobC5EQSl7eGMoKGwub2gtLSwwKSw2NDMwNDc4NDI5MzQsMjA0OCxsKTtyZXR1cm59cHcoW0QyLDMzXSxsLFIsODQpfX1jYXRjaChuKXt0cnl7cHcobixsLDIyLDg0KX1jYXRjaChUKXtQdChSLDUsbCxULCI6Iil9fWwub2gtLX19LERVPWZ1bmN0aW9uKFIseSxFKXtyZXR1cm4gRS5JP0J0KEUuUixFKTpwKEUsUix5KX0sQ3c9ZnVuY3Rpb24oUix5KXt3aGlsZShbXSl7cmV0dXJuICRULmNhbGwodGhpcyx5LDMsUik7aWYoW10pYnJlYWt9fSxidz1mdW5jdGlvbihSLHkpe2Zvcih2YXIgRT0xMDtFIT02MDspaWYoRT09MzEpRT1sPGFyZ3VtZW50cy5sZW5ndGg\/MDo2MDtlbHNlIGlmKEU9PTgpRT0zMTtlbHNlIGlmKEU9PTg4KUU9Tzx1dy5sZW5ndGg\/MTY6MzQ7ZWxzZSBpZihFPT0zKUU9ODg7ZWxzZSBpZihFPT0xMCl2YXIgbD0oRT04LDEpO2Vsc2UgaWYoRT09OTEpTysrLEU9ODg7ZWxzZSBpZihFPT0zNClsKyssRT0zMTtlbHNlIGlmKEU9PTE2KXt2YXIgVT11d1tPXTtFPShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodixVKSYmKFJbVV09dltVXSksOTEpfWVsc2UgaWYoRT09MCl7dmFyIHY9YXJndW1lbnRzW2xdO2ZvcihVIGluIHYpUltVXT12W1VdO3ZhciBPPShFPTMsMCl9fSxwPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJLFAsVyxTLHEpe2lmKChPPWcoNDA1LFIpLE8pPj1SLmcpdGhyb3dbRDIsMzFdO2ZvcihVPShsPShLPU8sKHE9MCxSKS5SNC5sZW5ndGgpLEUpO1U+MDspVD1LJTgsUz04LShUfDApLFc9Sz4+MyxuPVIubHBbV10sWT1TPFU\/UzpVLHkmJihJPVIsSS5vIT1LPj42JiYoSS5vPUs+PjYsdj1NKDczLEkpLEkua1c9emYoMzI2MCxJLlcsMyxJLm8sWzAsMCx2WzFdLHZbMl1dKSksbl49Ui5rV1tXJmxdKSxLKz1ZLHF8PShuPj44LShUfDApLShZfDApJigxPDxZKS0xKTw8KFV8MCktKFl8MCksVS09WTtyZXR1cm4gYSgoT3wwKSsoRXwwKSw0MDUsKFA9cSxSKSksUH0sQWQ9ZnVuY3Rpb24oUix5KXtmdW5jdGlvbiBFKCl7dGhpcy5uPSh0aGlzLnY9W10sMCl9cmV0dXJuW2Z1bmN0aW9uKGwpe1IuTzIobCkseS5PMihsKX0sKFI9KChFLnByb3RvdHlwZS5PMj1mdW5jdGlvbihsLFUpe3JldHVybiBuTi5jYWxsKHRoaXMsNSxsLFUpfSxFKS5wcm90b3R5cGUudTQ9ZnVuY3Rpb24oKXtyZXR1cm4gYXIuY2FsbCh0aGlzLCJvZmYiLDM4KX0sbmV3IEUpLHk9bmV3IEUsZnVuY3Rpb24obCl7cmV0dXJuIGw9Ui51NCgpLmNvbmNhdCh5LnU0KCkpLHk9bmV3IEUsbH0pXX0sTHc9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCxXKXtmb3IoST0obj15LnJlcGxhY2UoL1xcclxcbi9nLCJcXG4iKSx2PWw9MCxbXSk7djxuLmxlbmd0aDt2KyspUD1uLmNoYXJDb2RlQXQodiksUDwxMjg\/SVtsKytdPVA6KFA8Uj9JW2wrK109KEs9UD4+NiwtfihLJjE5MikrMyooSyYtMTkzKS0oS3wtMTkzKSsyKih+S3wxOTIpKTooLX4oUCY2NDUxMikrKH5QJjY0NTEyKSsoUHwtNjQ1MTMpPT01NTI5NiYmdisxPG4ubGVuZ3RoJiYoVD1uLmNoYXJDb2RlQXQodisxKSwtfihUfDY0NTEyKS0oflQmNjQ1MTIpKyh+VHw2NDUxMikpPT01NjMyMD8oUD02NTUzNisoLX4oUHwxMDIzKS0oUCYtMTAyNCkrKFB8LTEwMjQpPDwxMCkrKFU9bi5jaGFyQ29kZUF0KCsrdiksMTAyNCsoVXwtMTAyNCkpLElbbCsrXT1QPj4xOHwyNDAsSVtsKytdPShPPShFPVA+PjEyLDYzKyhFJi02NCktKEVeNjMpKSwtKE98MCkrfk8tMyp+KE98MTI4KSsyKihPfC0xMjkpKSk6SVtsKytdPShZPVA+PjEyLDIyMy0oflleMjI0KS0oflkmMjI0KSksSVtsKytdPShXPVA+PjYsMiooV3wwKS0oV3w2MyktKFd8LTY0KSsofld8NjMpKXwxMjgpLElbbCsrXT1QJjYzfDEyOCk7cmV0dXJuIEl9LHI9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyl7Tz10aGlzO3RyeXt0ZCh5LGwsVSxSLHRoaXMsdixFKX1jYXRjaChZKXtQdCgwLDksdGhpcyxZLCI6IiksRShmdW5jdGlvbihLKXtLKE8uail9KX19LGtjPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4sVCxJKXt5LnB1c2goKE89UlswXTw8MjR8UlsxXTw8MTZ8UlsyXTw8OCxUPVJbM10sMS1+KE98VCkrMioofk8mVCkrMiooT3x+VCkpKSx5LnB1c2goKEk9KHY9Uls0XTw8MjR8Uls1XTw8MTYsVT1SWzZdPDw4LC1+KHZ8VSkrKHZeVSktKH52JlUpKyh+dnxVKSksRT1SWzddLC1+KEl8RSkrKH5JJkUpKyhJfH5FKSkpLHkucHVzaCgobD0obj1SWzhdPDwyNCxLPVJbOV08PDE2LC0yKn4obiZLKSt+SysyKihuXkspKyh+bnxLKSksWT1SWzEwXTw8OCwyKihZfDApLShsJlkpLX5sK35ZKXxSWzExXSl9LFYscE49ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEkpe2lmKEk9bFswXSxJPT1ocClSLkJZPTI1LFIuTD10cnVlLFIuRyhsKTtlbHNlIHN3aXRjaCghKEk9PWlRKSl7Y2FzZSB0cnVlOmlmKEk9PXJ1KWxbeV0mJihSLk89dHJ1ZSksbFs0XSYmKFIuTD10cnVlKSxSLkcobCk7ZWxzZSBzd2l0Y2goIShJPT1YbSkpe2Nhc2UgdHJ1ZTppZihJPT1NMCl7d2hpbGUoW10pe3RyeXtmb3IoVD0wO1Q8Ui5zMi5sZW5ndGg7VCsrKXRyeXtZPVIuczJbVF0sWVswXVtZWzFdXShZWzJdKX1jYXRjaChQKXt9fWNhdGNoKFApe31pZih0cnVlIT1bXSE9W10hPVtdKWJyZWFrfSgwLGxbMV0pKGZ1bmN0aW9uKFAsVyl7Ui5lcihQLHRydWUsVyl9LGZ1bmN0aW9uKFApe3doaWxlKC0wPT09MClpZighW3VuZGVmaW5lZF09PShQPSFSLkoubGVuZ3RoLE51bWJlcigpKSlicmVhazsoeigzNywwLFIsW2NTXSksUCkmJnooNzUsMCx0cnVlLFIsZmFsc2UpfSxmdW5jdGlvbihQKXtyZXR1cm4gUi52WShQKX0sKFIuczI9W10sdj1SLkYoKSxmdW5jdGlvbihQLFcsUyl7cmV0dXJuIFIuejAoUCxXLFMpfSkpLFIuUCs9Ui5GKCktdn1lbHNle3N3aXRjaCghKEk9PXdNKSl7Y2FzZSBudWxsIT1mYWxzZTowO2JyZWFrO2Nhc2UgdHJ1ZT09IVtdOnJldHVybiBLPWxbMl0sYShsWzZdLEUsUiksSCgyNjEsUixLKSxSLkcobCk7YnJlYWt9ST09Y1M\/KFIuRyhsKSxSLktyPVtdLFIubHA9W10sUi5OPW51bGwpOkk9PUt3JiZjLmRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyImJihSLks9ZnVuY3Rpb24oUCxXKXtmdW5jdGlvbiBTKHEpe3txPTQzO3doaWxlKHEhPTM2KXE9PTMyPyhXPXRydWUsYy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixTLE4wKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFMsTjApLFAoKSxxPTM2KTpxPT00MyYmKHE9Vz8zNjozMil9fWMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsUywoVz1mYWxzZSxOMCkpLGMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsUyxOMCl9KX1icmVhaztjYXNlIGZhbHNlOlIuTz10cnVlLFIuRyhsKTticmVha31icmVhaztjYXNlIG51bGw9PWZhbHNlOlU9bFsxXTt0cnl7Tz1SLmp8fFIuRyhsKX1jYXRjaChQKXtQdCgwLDExLFIsUCwiOiIpLE89Ui5qfShVKChuPVIuRigpLE8pKSxSKS5QKz1SLkYoKS1uO2JyZWFrfX0sZnc9ZnVuY3Rpb24oUix5LEUsbCxVLHYpe3JldHVybiBxJC5jYWxsKHRoaXMsMzcsMTIsUix5LEUsbCxVLHYpfSwkYz1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBuTi5jYWxsKHRoaXMsMjQsbCxSLEUsVSx5KX0sR2Y9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbil7Zm9yKEs9KHY9YihsLChPPWxbYVddfHx7fSwzMSkpLE8uUVo9RyhsLDc5KSxPLlQ9W10sbC51PT1sKT8oVT1EVShSLHksbCksLX4oVSZFKSstMisoVSYtMikpOjEsWT1iKGwsMTUpLG49MDtuPEs7bisrKU8uVC5wdXNoKEcobCw3NSkpO2Zvcig7Sy0tOylPLlRbS109dChPLlRbS10sbCk7cmV0dXJuKE8ud0I9TSh2LGwpLE8pLkZOPWcoWSxsKSxPfSxhPWZ1bmN0aW9uKFIseSxFKXtzd2l0Y2goISh5PT00MDV8fHk9PTEwNSkpe2Nhc2UgTmFOIT09TmFOOmlmKEUuTUkmJnkhPTczKXJldHVybjt5PT0yMDd8fHk9PTg0fHx5PT02NHx8eT09NDg1fHx5PT0xNzV8fHk9PTMwMXx8eT09MjYwfHx5PT0zNTV8fHk9PTEwMXx8eT09MTY4P0UuTlt5XXx8KEUuTlt5XT1HKDAsMjYsRSx5LFIsMzgpKTpFLk5beV09RygwLDI0LEUseSxSLDE1Myk7YnJlYWs7Y2FzZSBOYU49PT1OYU46RS5OW3ldP0UuTlt5XS5jb25jYXQoUik6RS5OW3ldPWhkKDAsMTMsUixFKTticmVha315PT03MyYmKEUuVz1wKEUsZmFsc2UsMzIpLEUubz12b2lkIDApfSxkTT1mdW5jdGlvbihSLHksRSl7cmV0dXJuIExOLmNhbGwodGhpcyw2NSxSLDMyLHksRSl9LHRkPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSxLLG4pe1k9KChVLnh3PXZTKChVLlI0PShVLnR5PShVLnN4PVZTLEhTKSxVKVtpUV0sODApLDg4LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25jYXQoKX19LFUuaCksVSkuSFE9SHRbVS5oXShVLnh3LHt2YWx1ZTp7dmFsdWU6e319fSksMCk7e0s9W107d2hpbGUoWTwyOTcpS1tZXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFkpLFkrK31VLnlaPShVLmtXPXZvaWQgMCxVLk89ZmFsc2UsZmFsc2UpLChVLnlUPShVLkdsPVtdLDApLFUpLkJZPTI1LFUucDU9KFUuVGw9ZmFsc2UsZnVuY3Rpb24oVCl7cmV0dXJuIHZTLmNhbGwodGhpcyw4MCw1NixUKX0pO3doaWxlKHt9KWlmKFUudT1VLHRydWUpYnJlYWs7VS5iND0oKChVLlQwPXksVS5wcj0wLFUpLm9oPTAsVS5MPWZhbHNlLFUubz12b2lkIDAsVSkuSz0oVS5OPShVLkk0PShVLlc9dm9pZCAwLFUuS3I9W10sVS5SPXZvaWQgMCxbXSksKFUuanI9MCxVKS5QPShVLkI9MSxVLmc9KFUuTUk9ZmFsc2UsMCksMCksVS5JPXZvaWQgMCxuPXdpbmRvdy5wZXJmb3JtYW5jZXx8e30sVS5ZVz12b2lkIDAsVS5xcj1bXSxVLkZlPTAsW10pLChVLkpUPWZhbHNlLFUpLmxwPVtdLFUuVlo9KFUuVlQ9MCwwKSwoKFUuSj1bXSxVKS5FMj12LFUpLnMyPVtdLG51bGwpLFUuaj0oVS5Tej0oVS5jWT12b2lkIDAsODAwMSksdm9pZCAwKSxuLnRpbWVPcmlnaW58fChuLnRpbWluZ3x8e30pLm5hdmlnYXRpb25TdGFydCl8fDAsRSYmRS5sZW5ndGg9PTImJihVLkk0PUVbMV0sVS5xcj1FWzBdKTtmb3IodHJ1ZTtsO3VuZGVmaW5lZCl7dHJ5e1UuY1k9SlNPTi5wYXJzZShsKX1jYXRjaChUKXtVLmNZPXt9fWlmKGZhbHNlIT1udWxsKWJyZWFrfXooOTEsMCwoeigzNCwwLCh6KDM2LCh6KDMyLDAsKGEoKEEoMzEsZnVuY3Rpb24oVCl7c2ooVCw0KX0sKEEoMzEsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcsQixDLGQseWcsZSx4LHpqLHNxLEQpe3tEPTM0O3doaWxlKEQhPTIzKUQ9PTIyP0Q9NjE6RD09OTk\/RD0xODpEPT0zND8oc3E9ZnVuY3Rpb24oRixFcSl7Zm9yKDtQPEY7KXh8PURVKHRydWUsOCxUKTw8UCxQKz04O3JldHVybiB4Pj49KEVxPXgmKDE8PEYpLShQLT1GLDEpLEYpLEVxfSxCPWIoVCwxNCkseD1QPTAsVz0oc3EoMyl8MCkrMSxDPXNxKDUpLGg9emo9MCxJPVtdLEQ9MjIpOkQ9PTI0PyhkPTAsRD05OSk6RD09ODk\/KGQrKyxEPTE4KTpEPT00MT8oSVtkXSYmKHdbZF09YihULDE0KSksRD04OSk6RD09Mzk\/KHpqKyssRD02MSk6RD09MTA\/RD1lPEM\/ODA6MjQ6RD09NzY\/KGUrKyxEPTEwKTpEPT04MD8oSVtlXXx8KHdbZV09c3EocSkpLEQ9NzYpOkQ9PTE4P0Q9ZDxDPzQxOjE3OkQ9PTM\/KHlnPXNxKDEpLEkucHVzaCh5ZyksaCs9eWc\/MDoxLEQ9MzkpOkQ9PTUwPyhBKDMyLGZ1bmN0aW9uKEYsRXEsZixKcCxtLHUpe2Zvcih1PTE2O3UhPTg7KXU9PTU1PyhKcC5wdXNoKG0pLHU9OTEpOnU9PTY\/dT1mPEM\/OTg6MTg6dT09OTc\/dT1tPj1FcS5sZW5ndGg\/NDI6Njg6dT09OTg\/KG09d1tmXSx1PTUyKTp1PT0yNz91PTk3OnU9PTE4PyhGLkk9aGQoMCw1LE4uc2xpY2UoKSxGKSxGLlI9aGQoMCwxMixKcCxGKSx1PTgpOnU9PTE2PyhKcD1bXSxFcT1bXSxmPTAsdT0yNCk6dT09Njg\/KG09RXFbbV0sdT01NSk6dT09MzA\/dT05Nzp1PT05MT8oZisrLHU9Nik6dT09NTI\/dT1JW2ZdPzU1OjMwOnU9PTI0P3U9Njp1PT00MiYmKEVxLnB1c2goRyhGLDM3KSksdT0yNyl9LEIsVCksRD0yMyk6RD09NTQ\/RD1TLS0\/Mzg6NTA6RD09OTE\/RD01NDpEPT0xNz8oUz1XLE49W10sRD0xKTpEPT0xP0Q9NTQ6RD09Mzg\/KE4ucHVzaChnKEcoVCwyMSksVCkpLEQ9OTEpOkQ9PTU5P0Q9MTA6RD09NjE\/RD16ajxDPzM6NDA6RD09NDAmJihxPSgoaHwwKS0xKS50b1N0cmluZygyKS5sZW5ndGgsZT0wLHc9W10sRD01OSl9fSwoQSgyMyxmdW5jdGlvbihULEksUCxXLFMscSl7e3E9ODE7d2hpbGUocSE9MTIpcT09Mjc\/KEkrKyxxPTIzKTpxPT04MT8oVz1HKFQsNjUpLFM9Y3QoMTI3LDM0LFQpLEk9MCxQPVtdLHE9NjgpOnE9PTQ3PyhIKFcsVCxQKSxxPTEyKTpxPT05Mz8oUC5wdXNoKERVKHRydWUsOCxUKSkscT0yNyk6cT09Njg\/cT0yMzpxPT0yMyYmKHE9STxTPzkzOjQ3KX19LDIxOSwoQSgyMywoQSgyMyxmdW5jdGlvbihULEksUCxXLFMscSl7KFM9KFc9KEk9RygoUD1HKFQsMzkpLFQpLDU1KSxHKFQsNzUpKSxnKEksVCkpLHE9TShQLFQpLGEpKHEgaW4gU3wwLFcsVCl9LChrKDEyMyxVLChBKChhKFtdLDMwMSwoQSgzMywoYShbXSwoSCgoQSgyMywoQSgyNSxmdW5jdGlvbihUKXtqWCgzLFQpfSwyNDMsKEEoMjQsZnVuY3Rpb24oVCxJLFAsVyl7Vz1iKFQsKEk9RFUodHJ1ZSwoUD1HKFQsNzkpLDgpLFQpLDEzKSksSChXLFQsTShQLFQpPj4+SSl9LChBKDMyLGZ1bmN0aW9uKFQsSSxQLFcsUyxxLE4saCl7Uz0ocT0oST0oVz1iKChOPWIoVCwoUD1HKFQsMzgpLDEzKSksVCksMjYpLGIoVCwxMCkpLHQpKE4sVCksZyhXLFQpKSxoPWcoSSxUKSxrKFAsVCxoZCgwLDI4LDIsZmFsc2UsaCxxLFMsVCkpfSwoQSgyOSxmdW5jdGlvbihULEksUCxXLFMscSl7SCgocT1nKChJPShQPWIoVCwoUz1iKFQsKFc9RyhULDc3KSwyNykpLDEyKSksTShTLFQpKSxXKSxUKT09SSxQKSxULCtxKX0sKEgoKEEoKEEoMjQsZnVuY3Rpb24oVCl7RygwLDksVCw0KX0sKEEoMjksKFUuSzU9KEEoMjAsKEEoKEgoKGEoW10sMjYwLCgoYShVLChBKDI4LChIKDEsKEgoMzU1LFUsKEEoMjUsZnVuY3Rpb24oVCxJLFAsVyl7aygoUD0oVz1HKFQsKEk9RyhULDM2KSwyMSkpLEcpKFQsNjcpLFApLFQsdChJLFQpfHxnKFcsVCkpfSw0MzgsKEEoMjQsZnVuY3Rpb24oVCxJLFAsVyxTKXtJPWcoKFM9dCgoVz1HKFQsKFA9RyhULDc3KSw2NykpLFApLFQpIT0wLFcpLFQpLFMmJmEoSSw0MDUsVCl9LDEwOSwoQSgyOCxmdW5jdGlvbihULEksUCxXLFMscSl7Zm9yKHE9ODM7cSE9NDQ7KXE9PTE5PyhXPUdmKHRydWUsOCwxLFQpLFA9Vy53QixTPVcuRk4scT0xMyk6cT09MTM\/cT1ULnU9PVR8fFA9PVQucDUmJlM9PVQ\/MjA6NDQ6cT09ODM\/cT1kdSh0cnVlLEksZmFsc2UsVCwxLDEzKT80NDoxOTpxPT0yMCYmKEgoVy5RWixULFAuYXBwbHkoUyxXLlQpKSxULkZlPVQuRigpLHE9NDQpfSwoQSgzMixmdW5jdGlvbihULEksUCl7KEk9KFA9RyhULDY3KSxNKFAsVC51KSksSVswXSkucmVtb3ZlRXZlbnRMaXN0ZW5lcihJWzFdLElbMl0sTjApfSwyOTgsKChBKChBKDI5LGZ1bmN0aW9uKFQsSSxQLFcsUyl7e1M9NDA7d2hpbGUoUyE9MTkpUz09NDA\/KEk9VC5HbC5wb3AoKSxTPTY5KTpTPT02OT9TPUk\/OTE6ODk6Uz09NzM\/KFctLSxTPTMxKTpTPT05MT8oVz1EVSh0cnVlLDgsVCksUz02MSk6Uz09NjA\/KFA9YihULDExKSxJW1BdPVQuTltQXSxTPTczKTpTPT0zMT9TPVc+MD82MDoxNTpTPT02MT9TPTMxOlM9PTg5PyhhKFQuZyw0MDUsVCksUz0xOSk6Uz09MTUmJihJWzE3NV09VC5OWzE3NV0sSVsxNjhdPVQuTlsxNjhdLFQuTj1JLFM9MTkpfX0sKEEoMjEsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcsQixDLGQseWcsZSx4KXt7eD04ODt3aGlsZSh4IT04KWlmKHg9PTcwKXg9NTg7ZWxzZSBpZih4PT0zMilQKz1CLHg9NTg7ZWxzZSBpZih4PT03OClXPUcoVCw2NSksUz1HKFQsMjEpLHc9RyhULDc1KSxoPUcoVCw3NSksTj1nKFcsVCkscT1NKFMsVCksZT1NKGgsVCksQj10KHcsVCkseD0xODtlbHNlIGlmKHg9PTU4KXg9UDxDPzY2Ojg7ZWxzZSBpZih4PT0xOCl4PXd1KCJvYmplY3QiLE4sIm51bWJlciIpPT0ib2JqZWN0Ij85Mzo5NztlbHNlIGlmKHg9PTQyKUI9Qj4wP0I6MSxDPU4ubGVuZ3RoLFA9MCx4PTcwO2Vsc2UgaWYoeD09NjYpcShOLnNsaWNlKFAsKFB8MCkrKEJ8MCkpLGUpLHg9MzI7ZWxzZSBpZih4PT04OCl4PWR1KHRydWUsSSx0cnVlLFQsMSwxMSk\/ODo3ODtlbHNlIGlmKHg9PTk3KXg9VC51PT1UPzQyOjg7ZWxzZSBpZih4PT05Myl7Zm9yKGQgaW4geWc9W10sTil5Zy5wdXNoKGQpO049KHg9OTcseWcpfX19LChBKDMzLGZ1bmN0aW9uKFQsSSxQKXsoUD1HKFQsKEk9RyhULDM4KSwzNikpLGspKFAsVCwiIit0KEksVCkpfSwoKEgoKEgoNDg1LCgoSCgxNjgsKEgoNjQsVSwoVS5HMD0oSCgoSCg0MDUsKEEoMjEsKEEoMjUsKEEoMjAsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcpe3t3PTk2O3doaWxlKHchPTE3KXc9PTA\/dz0zMDp3PT0yNT8oYShJLFMsVCksdz0xNyk6dz09ODk\/dz0zMDp3PT0zMD93PVctLT8yOjI1Onc9PTI\/KGg9KE49Y3QoMTI3LDMzLFQpLC0oaHxOKSszKihoJk4pKzIqKGheTikpJXEsSS5wdXNoKFBbaF0pLHc9MCk6dz09OTYmJihTPUcoVCw1NCksVz1jdCgxMjcsMzYsVCksST1bXSxQPWcoMzcwLFQpLHE9UC5sZW5ndGgsaD0wLHc9ODkpfX0sMjAyLFUpLGZ1bmN0aW9uKFQsSSxQLFcsUyxxLE4saCx3LEIpe3tCPTc7d2hpbGUoQiE9NTIpQj09Nz8oUD1iKFQsMTIpLHc9YihULDExKSxxPUcoVCw3MyksaD10KHcsVCksVz1NKFAsVCksTj0iIixTPTAsQj01KTpCPT03NT8oSChxLFQsV1tOXSksQj01Mik6Qj09NT9CPTIzOkI9PTgwPyhOKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChJPWhbU10sKEl8MCkrfihJJjEyMSktKEl8LTEyMikpKSxCPTYzKTpCPT0yMz9CPVM8aC5sZW5ndGg\/ODA6NzU6Qj09NjMmJihTKyssQj0yMyl9fSksMzgxLFUpLGZ1bmN0aW9uKFQsSSxQLFcsUyxxLE4saCx3KXtmb3Iodz05NDt3IT02Mzspdz09MjM\/KGEoSSBpbiBQfDAsUyxUKSx3PTYzKTp3PT05ND8oTj1HKFQsNzMpLHE9RyhULDY1KSxTPUcoVCwyMyksVz1nKE4sVCksUD10KHEsVCksaD0wLEk9IiIsdz02Nyk6dz09NDI\/dz1oPFcubGVuZ3RoPzQzOjIzOnc9PTY3P3c9NDI6dz09Njk\/KGgrKyx3PTQyKTp3PT00MyYmKEkrPVN0cmluZy5mcm9tQ2hhckNvZGUoV1toXV4xMjEpLHc9NjkpfSksNDUxLFUpLFUpLDApLDEwNSksVSwwKSwwKSxbXSkpLFUpLFsyMDQ4XSksQSkoMjEsZnVuY3Rpb24oVCl7algoNCxUKX0sNDk0LFUpLFUpLGl3KDQpKSwzNDApLFUsMCksaykoMzU4LFUsMCksOTMpLFUpLDk2KSxVKSwyMzIpLFUpLDIwKSxmdW5jdGlvbihULEksUCxXLFMscSxOLGgsdyxCKXt7Qj04NTt3aGlsZShCIT0yMylCPT01NT8oUz1HZih0cnVlLDgsMSxULnUpLFc9Uy5RWixOPVMuVCxQPVMud0IscT1TLkZOLHc9Ti5sZW5ndGgsaD13PT0wP25ldyBxW1BdOnc9PTE\/bmV3IHFbUF0oTlswXSk6dz09Mj9uZXcgcVtQXShOWzBdLE5bMV0pOnc9PTM\/bmV3IHFbUF0oTlswXSxOWzFdLE5bMl0pOnc9PTQ\/bmV3IHFbUF0oTlswXSxOWzFdLE5bMl0sTlszXSk6MigpLGsoVyxULGgpLEI9MjMpOkI9PTg1JiYoQj1kdSh0cnVlLEksZmFsc2UsVCwxLDE0KT8yMzo1NSl9fSwzOCxVKSxIKSgyMDcsVSxbMTU0LDAsMF0pLFUpKSwzNDQpLFUpLFUpKSxVKSksWzAsMCwwXSkpLEEoMzEsZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoLHcsQixDKXt7Qz02NTt3aGlsZShDIT03MilDPT02NT8oUD1HKFQsMzkpLHE9RyhULDY1KSxJPUcoVCwzNyksTj1HKFQsNzkpLFM9ZyhOLFQpLFc9ZyhxLFQpLHc9TShQLFQudSksaD1NKEksVCksQz01Myk6Qz09NjQ\/KEI9aGQoMCwyNywyLGZhbHNlLDEsaCxTLFQsdyxXKSx3LmFkZEV2ZW50TGlzdGVuZXIoVyxCLE4wKSx0KDMzOCxUKS5wdXNoKGZ1bmN0aW9uKCl7dy5yZW1vdmVFdmVudExpc3RlbmVyKFcsQixOMCl9KSxrKDM0MCxULFt3LFcsQl0pLEM9NzIpOkM9PTUzJiYoQz13IT09MD82NDo3Mil9fSw2MCxVKSxVKSw0MDYpLGZ1bmN0aW9uKFQpe3NqKFQsMSl9KSwyNzEsVSksMjI2KSxVKSxuZXcgZE0oIlN1Ym1pdCIpKS5kaXNwb3NlKCksVSkpLDg0KSxVLGl3KDQpKSwyMCksZnVuY3Rpb24oVCxJKXsoST1nKEcoVCw3MyksVCksRm0pKDAsODQsVC51LDQwNSwxMDQsSSl9LDQxNyxVKSxmdW5jdGlvbihULEksUCxXLFMscSl7SCgoUD0oVz0oUz1HKFQsKEk9RyhULChxPUcoVCw1MyksNTUpKSw1MykpLE0ocSxUKSksZyhJLFQpKSxTKSxULFdbUF0pfSksMzY2LFUpLDApLGZ1bmN0aW9uKFQsSSxQLFcsUyl7SCgoUz13dSgib2JqZWN0IiwoUD0oST1HKChXPUcoVCw3OSksVCksNTIpLGcoVyxUKSksUCksIm51bWJlciIpLEkpLFQsUyl9KSw0NzMsVSksNDE5KSxVKSwyMSksZnVuY3Rpb24oVCxJLFAsVyxTKXtmb3IoUz03MDtTIT05MjspUz09NzA\/Uz1kdSh0cnVlLEksZmFsc2UsVCwxLDkpPzkyOjc6Uz09NyYmKFA9RyhULDUyKSxXPUcoVCw2NSksSChXLFQsZnVuY3Rpb24ocSl7cmV0dXJuIGV2YWwocSl9KGVYKHQoUCxULnUpKSkpLFM9OTIpfSwzMSxVKSwyNjEpLFUse30pLDQ1NCksVSksQSgyOCxmdW5jdGlvbihULEksUCxXLFMpeyhQPWcoKFM9RyhULChXPWIoVCwxNSksNzcpKSxJPWcoUyxUKSxXKSxUKSxhKShJK1AsUyxUKX0sNDg4LFUpLDQyMSksVSksMjIxKSxVKSxVKSksZnVuY3Rpb24oVCxJLFAsVyxTLHEsTixoKXt7aD0yOTt3aGlsZShoIT02OCloPT0xOD9oPTE0Omg9PTM3P2g9MTQ6aD09MzM\/KFc9KChXfDApKyhjdCgxMjcsMzIsVCl8MCkpJXEsTis9S1tTW1ddXSxoPTE4KTpoPT0yOT8oUD1iKFQsMzApLEk9Y3QoMTI3LDM1LFQpLE49IiIsUz1NKDM3MCxUKSxxPVMubGVuZ3RoLFc9MCxoPTM3KTpoPT0xND9oPUktLT8zMzo0MzpoPT00MyYmKEgoUCxULE4pLGg9NjgpfX0pLDgyLFUpLDMzOCksVSxbXSksVS5jUT0wLDE3NSksVSksZnVuY3Rpb24oVCxJKXtJPUcoVCwyMyksayhJLFQsW10pfSksMTM4LFUpLFUpKSwzMyksZnVuY3Rpb24oKXt9LDEzMSxVKSxjKSksMzI5KSxVKSxmdW5jdGlvbihULEksUCxXLFMscSxOLGgpe2ZvcihoPTY0O2ghPTM2OyloPT05Mz8oTj1nKFMsVCksST1nKHEsVCksUD1nKFcsVCksSVtOXT1QLGg9NzcpOmg9PTU0P2g9VC51PT1UPzkzOjM2Omg9PTcyPyhULm89dm9pZCAwLGg9NjEpOmg9PTYxP2g9Tj09Mj81MjozNjpoPT02ND8ocT1HKFQsNTQpLFM9RyhULDczKSxXPUcoVCwyMyksaD01NCk6aD09NTI\/KFQuVz1wKFQsZmFsc2UsMzIpLFQubz12b2lkIDAsaD0zNik6aD09NzcmJihoPXE9PTczPzcyOjM2KX0pLDU5LFUpLFUpKSwxMyksVSksMzY5KSxVKSxpdykoNCksMTAxLFUpLFUpLFtLd10pLDApLFUsW1htLFJdKSxVKSxbTTAsT10pLHRydWUpLFUsdHJ1ZSl9LFIwPWZ1bmN0aW9uKFIpe3JldHVybiBQUy5jYWxsKHRoaXMsIiIsODQsMyxSKX0sZz1mdW5jdGlvbihSLHksRSl7RT15Lk5bUl07Zm9yKGZhbHNlPT0wO0U9PT12b2lkIDA7dm9pZCgwKS5BKXt0aHJvd1tEMiwzMCxSXTtpZih7fSlicmVha31zd2l0Y2goIUUudmFsdWUpe2Nhc2UgdHJ1ZTp0cnVlPT1bXTticmVhaztjYXNlIGZhbHNlOnJldHVybiBFLmNyZWF0ZSgpO2JyZWFrfXdoaWxlKHRydWUpaWYoRS5jcmVhdGUoUio1KlIrOTMqUisxMSksIlUiKWJyZWFrO3JldHVybiBFLnByb3RvdHlwZX0sc2o9ZnVuY3Rpb24oUix5LEUsbCl7SmQoUShnKChFPUcoUiwobD1HKFIsNjcpLDc3KSksbCksUikseSksRSxSKX0sa1Q9ZnVuY3Rpb24oKXtyZXR1cm4gYXIuY2FsbCh0aGlzLCJvZmYiLDUpfSx6Zj1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe1k9MDt3aGlsZSghWyIiXT09MClpZih2PVVbMl18MCwhbnVsbClicmVhazt7Tz1VW0VdfDA7d2hpbGUoWTwxNilsPWw+Pj44fGw8PDI0LGwrPXl8MCxsXj12K1IseT15PDxFfHk+Pj4yOSxPPU8+Pj44fE88PDI0LE8rPXZ8MCx2PXY8PEV8dj4+PjI5LHlePWwsT149WStSLHZePU8sWSsrfXJldHVyblt5Pj4+MjQmMjU1LHk+Pj4xNiYyNTUseT4+PjgmMjU1LHk+Pj4wJjI1NSxsPj4+MjQmMjU1LGw+Pj4xNiYyNTUsbD4+PjgmMjU1LGw+Pj4wJjI1NV19LEg9ZnVuY3Rpb24oUix5LEUpe2lmKFI9PTQwNXx8Uj09MTA1KXkuTltSXT95Lk5bUl0uY29uY2F0KEUpOnkuTltSXT1oZCgwLDksRSx5KTtlbHNle3N3aXRjaCghKHkuTUkmJlIhPTczKSl7Y2FzZSAtMD09PTA6ZmFsc2U7YnJlYWs7Y2FzZSBmYWxzZTpyZXR1cm47YnJlYWt9Uj09MjA3fHxSPT04NHx8Uj09NjR8fFI9PTQ4NXx8Uj09MTc1fHxSPT0zMDF8fFI9PTI2MHx8Uj09MzU1fHxSPT0xMDF8fFI9PTE2OD95Lk5bUl18fCh5Lk5bUl09RygwLDE4LHksUixFLDM4KSk6eS5OW1JdPUcoMCwzMCx5LFIsRSwxNTMpfVI9PTczJiYoeS5XPXAoeSxmYWxzZSwzMikseS5vPXZvaWQgMCl9LE09ZnVuY3Rpb24oUix5LEUpe2lmKChFPXkuTltSXSxFKT09PXZvaWQgMCl0aHJvd1tEMiwzMCxSXTtpZihFLnZhbHVlKXJldHVybiBFLmNyZWF0ZSgpO3JldHVybiBFLmNyZWF0ZShSKjUqUis5MypSKzExKSxFLnByb3RvdHlwZX0sRm09ZnVuY3Rpb24oUix5LEUsbCxVLHYpe0UuR2wubGVuZ3RoPlU\/cHcoW0QyLDM2XSxFLFIseSk6KEUuR2wucHVzaChFLk4uc2xpY2UoKSksRS5OW2xdPXZvaWQgMCxhKHYsbCxFKSl9LHVRPWZ1bmN0aW9uKFIseSl7cmV0dXJuIFhyLmNhbGwodGhpcywzLFIsMTgseSl9LGxBPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8sWSl7dHJ5e3doaWxlKDA9PSFbXSlpZih2PVJbKCh5fDApKzIpJTNdLFJbeV09KE89KFU9Ult5XSxZPVJbKCh5fDEpLX4oeSYxKS0xKSUzXSwoVSZZKSt+WS0oflV8WSkpLSh2fDApLGw9eT09MT92PDxFOnY+Pj5FLDIqfihPJmwpLX5PLX5sKSwxNSlicmVha31jYXRjaChLKXt0aHJvdyBLO319LEJ0PWZ1bmN0aW9uKFIseSxFKXtyZXR1cm4oRT1SLmNyZWF0ZSgpLnNoaWZ0KCkseSkuSS5jcmVhdGUoKS5sZW5ndGh8fHkuUi5jcmVhdGUoKS5sZW5ndGh8fCh5LlI9dm9pZCAwLHkuST12b2lkIDApLEV9LGdNPWZ1bmN0aW9uKFIseSxFLGwsVSl7cmV0dXJuIFBTLmNhbGwodGhpcywiIiw4NCw4LFIseSxFLGwsVSl9LFpVPWZ1bmN0aW9uKFIpe3JldHVybiBBLmNhbGwodGhpcywzLFIpfSxyTT1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyl7aWYoRS51PT1FKWZvcihLPU0oUixFKSxSPT04NHx8Uj09MTAxfHxSPT00ODU\/KFk9ZnVuY3Rpb24obixULEksUCxXLFMscSxOLGgpe2ZvcihOPTYscT0yMzs7KXRyeXtpZihOPT01MClicmVhaztlbHNlIGlmKE49PTYpUz1LLmxlbmd0aCxQPShTfDApLTQ+PjMsTj05NjtlbHNlIGlmKE49PTU0KXE9ODUsSy5SaD16ZigzMjYwLGN0KDI0LDcsSyxJKSwzLGN0KDI0LDMsSyw0KihJJjQpKzIqfihJJjQpLShJfC01KS0ofkl8NCkpLFQpLE49NztlbHNlIGlmKE49PTgzKUsuQ3I9UCxJPShQPDwzKS00LFQ9WzAsMCxPWzFdLE9bMl1dLE49NTQ7ZWxzZSBpZihOPT05NilOPUsuQ3IhPVA\/ODM6NztlbHNlIGlmKE49PTcpSy5wdXNoKChXPUsuUmhbLShTfDApLTIqfihTJjcpKy0yKyhTJi04KV0sLShXfG4pKyhXJm4pKzIqKFcmfm4pKzIqKH5XJm4pKSksTj01MDtlbHNlIGlmKE49PTEyKXRocm93IHE9MjMsaDt9Y2F0Y2godyl7aWYocT09MjMpdGhyb3cgdztxPT04NSYmKGg9dyxOPTEyKX19LE89ZygzNTUsRSkpOlk9ZnVuY3Rpb24obil7Sy5wdXNoKG4pfSxsJiZZKGwmMjU1KSxVPXkubGVuZ3RoLHY9MDt2PFU7disrKVkoeVt2XSl9LENOPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oUix5LEUsbCl7e2w9NDg7d2hpbGUobCE9Njkpe2lmKGw9PTYxKXJldHVybiBSO2lmKGw9PTYwKXJldHVybiBSW3ldPUUudmFsdWUsUjtsPT00OCYmKGw9Uj09QXJyYXkucHJvdG90eXBlfHxSPT1PYmplY3QucHJvdG90eXBlPzYxOjYwKX19fSxrPWZ1bmN0aW9uKFIseSxFKXtzd2l0Y2goIShSPT00MDV8fFI9PTEwNSkpe2Nhc2UgMD09ZmFsc2U6c3dpdGNoKCEoeS5NSSYmUiE9NzMpKXtjYXNlIE51bWJlcigpPT09LTA6bnVsbD09KE5hTj09PU5hTik7YnJlYWs7Y2FzZSAhW106cmV0dXJuO2JyZWFrfVI9PTIwN3x8Uj09ODR8fFI9PTY0fHxSPT00ODV8fFI9PTE3NXx8Uj09MzAxfHxSPT0yNjB8fFI9PTM1NXx8Uj09MTAxfHxSPT0xNjg\/eS5OW1JdfHwoeS5OW1JdPUcoMCwyOCx5LFIsRSwzOCkpOnkuTltSXT1HKDAsMTYseSxSLEUsMTUzKTticmVhaztjYXNlICFmYWxzZT09ISIiPT0hW106eS5OW1JdP3kuTltSXS5jb25jYXQoRSk6eS5OW1JdPWhkKDAsOCxFLHkpO2JyZWFrfVI9PTczJiYoeS5XPXAoeSxmYWxzZSwzMikseS5vPXZvaWQgMCl9LG53PWZ1bmN0aW9uKCl7cmV0dXJuIEdqLmNhbGwodGhpcywxOCwxMil9LGpYPWZ1bmN0aW9uKFIseSxFLGwsVSx2LE8pe0pkKCgoTz0oRT1iKChsPSh2PShSfDApLX4oUiYoVT0tfihSJjMpKyh+UiYzKSsoUnwtNCksNCkpK35SLEcpKHksNzMpLHkpLDI5KSxNKGwseSkpLHYpJiYoTz1MdygyMDQ4LCIiK08pKSxVJiZKZChRKE8ubGVuZ3RoLDIpLEUseSksTyksRSx5KX0sRWo9ZnVuY3Rpb24oUix5LEUsbCxVLHYpeyh2PWcoNDA1LHkpLHkpLmxwJiZ2PHkuZz8oayg0MDUseSx5LmcpLEZtKDAsODQseSw0MDUsMTA0LGwpKTpIKDQwNSx5LGwpLHhjKDAsRSxVLHkpO3doaWxlKFtdKWlmKDAhPSFbKGsoNDA1LHksdiksdW5kZWZpbmVkKV09PTApYnJlYWs7cmV0dXJuIE0oUix5KX0sVFo9ZnVuY3Rpb24oKXtyZXR1cm4gdlMuY2FsbCh0aGlzLDgwLDUpfSx3dT1mdW5jdGlvbihSLHksRSxsLFUpe1U9dHlwZW9mIHk7c3dpdGNoKCEoVT09Uikpe2Nhc2UgMD09IVsiIl06Zm9yKE51bWJlcih1bmRlZmluZWQpO1U9PSJmdW5jdGlvbiImJnR5cGVvZiB5LmNhbGw9PSJ1bmRlZmluZWQiOzApe3JldHVybiBSO2lmKHt9KWJyZWFrfWJyZWFrO2Nhc2UgIVtdIT10cnVlIT0hW109PVtdOmlmKHkpe2lmKHkgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYXJyYXkiO2lmKHkgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIFU7bD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeSk7d2hpbGUobD09IltvYmplY3QgV2luZG93XSIpe3JldHVybiBSO2lmKFtdKWJyZWFrfWZvcih1bmRlZmluZWQ7bD09IltvYmplY3QgQXJyYXldInx8dHlwZW9mIHkubGVuZ3RoPT1FJiZ0eXBlb2YgeS5zcGxpY2UhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgeS5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiF5LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJzcGxpY2UiKTtmYWxzZT09IVtdKXtyZXR1cm4iYXJyYXkiO2lmKCFudWxsKWJyZWFrfWlmKGw9PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB5LmNhbGwhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgeS5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiF5LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpcmV0dXJuImZ1bmN0aW9uIn1lbHNlIHJldHVybiJudWxsIjticmVha31yZXR1cm4gVX0sSTA9ZnVuY3Rpb24oUix5LEUsbCxVKXtpZihSLmxlbmd0aD09Myl7e2w9MDt3aGlsZShsPDMpeVtsXSs9UltsXSxsKyt9Zm9yKEU9WzEzLDgsMTMsMTIsMTYsNSwoVT0wLDMpLDEwLDE1XTtVPDk7VSsrKXlbM10oeSxVJTMsRVtVXSl9fSxmTj1mdW5jdGlvbihSLHkpe3JldHVybiB6LmNhbGwodGhpcywxMCxSLHkpfSxTWD1mdW5jdGlvbigpe3JldHVybiBHai5jYWxsKHRoaXMsMTgsNil9LFFnPWZ1bmN0aW9uKFIseSxFLGwsVSx2KXtyZXR1cm4gWHIuY2FsbCh0aGlzLDMsUiwzNix5LEUsbCxVLHYpfSxZYz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe3JldHVybiBOJC5jYWxsKHRoaXMsMCwzLFIseSxFLGwsVSx2LE8sWSl9LHNrPWZ1bmN0aW9uKFIpe3JldHVybiBMTi5jYWxsKHRoaXMsNjUsUiw4KX0sT3E9ZnVuY3Rpb24oUil7cmV0dXJuIEFwLmNhbGwodGhpcyw2NSwzLFIpfSxVaj1mdW5jdGlvbigpe3JldHVybiB4VC5jYWxsKHRoaXMsMjQpfSxwdz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuLFQsSSxQLFcpe3N3aXRjaCghKCF5Lk1JJiYoTz12b2lkIDAsUiYmUlswXT09PUQyJiYoTz1SWzJdLEU9UlsxXSxSPXZvaWQgMCksVz1nKDE3NSx5KSxXLmxlbmd0aD09MCYmKHY9ZygxMDUseSk+PjMsVy5wdXNoKEUsdj4+OCYyNTUsLX4odnwyNTUpLSh2Ji0yNTYpKyh2fC0yNTYpKSxPIT12b2lkIDAmJlcucHVzaChPJjI1NSkpLG49IiIsUiYmKFIubWVzc2FnZSYmKG4rPVIubWVzc2FnZSksUi5zdGFjayYmKG4rPSI6IitSLnN0YWNrKSksVT1nKDE2OCx5KSxVWzBdPjMpKSl7Y2FzZSB0cnVlOnRydWU7YnJlYWs7Y2FzZSAwIT0hW3VuZGVmaW5lZF06eS51PShUPShuPSgobj1uLnNsaWNlKDAsKFA9VVswXSwtMi0oUF4zKS0yKih+UHwzKSkpLFUpWzBdLT0oSz1uLmxlbmd0aCwtMip+KEsmMykrLTIrKEteMykpLEx3KDIwNDgsbikpLHkpLnUseSk7dHJ5e3kuVGw\/KEk9KEk9dCgzMDEseSkpJiZJW0kubGVuZ3RoLTFdfHw5NSwoWT10KDI2MCx5KSkmJllbWS5sZW5ndGgtMV09PUl8fEpkKFtJJjI1NV0sMjYwLHkpKTpKZChbOTVdLDMwMSx5KSxyTShsLFEobi5sZW5ndGgsMikuY29uY2F0KG4pLHksNTEpfWZpbmFsbHl7eS51PVR9YnJlYWt9fSx5ej1mdW5jdGlvbigpe3JldHVybiBxJC5jYWxsKHRoaXMsMzcsNDApfSxiUT1ScigxNSw0MiwwLCJvYmplY3QiLCJNYXRoIix0aGlzKSxjPSh4VCgxOSwiLiIsbnVsbCwwLDEsIlN5bWJvbCIsZnVuY3Rpb24oUix5LEUsbCxVLHYpe2Zvcih2PTEzO3YhPTQ0Oyl7aWYodj09OTIpcmV0dXJuIGwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuanp9LEU9ImpzY29tcF9zeW1ib2xfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSsiXyIseT0wLFU7aWYodj09MTMpbD1mdW5jdGlvbihPLFkpe0NOKCh0aGlzLmp6PU8sdGhpcyksImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZSx2YWx1ZTpZfSl9LFU9ZnVuY3Rpb24oTyxZKXtmb3IoWT0yNjtZIT0xMzspe2lmKFk9PTE3KXJldHVybiBuZXcgbChFKyhPfHwiIikrIl8iK3krKyxPKTtpZihZPT01KXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO1k9PTI2JiYoWT10aGlzIGluc3RhbmNlb2YgVT81OjE3KX19LHY9ODU7ZWxzZSBpZih2PT04NSl2PVI\/NzM6OTI7ZWxzZSBpZih2PT03MylyZXR1cm4gUn19KSx0aGlzfHxzZWxmKSxSVz0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSxXUyxsdz0wLHZ0PWZ1bmN0aW9uKFIseSxFLGwsVSx2KXtmb3Iodj0obD0zOSw2Mik7Oyl0cnl7aWYobD09OTcpYnJlYWs7ZWxzZSBpZihsPT02OCl2PTYyLGw9OTE7ZWxzZSBpZihsPT04MSl5PWZhbHNlLEU9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7eT10cnVlfX0pLGw9NjtlbHNle2lmKGw9PTkxKXJldHVybiB2PTYyLHk7aWYobD09Nil2PTg4LFI9ZnVuY3Rpb24oKXt9LGMuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsUixFKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLFIsRSksbD05MTtlbHNlIGlmKGw9PTM5KWw9Yy5hZGRFdmVudExpc3RlbmVyJiZPYmplY3QuZGVmaW5lUHJvcGVydHk\/ODE6NjU7ZWxzZSBpZihsPT02NSlyZXR1cm4gZmFsc2V9fWNhdGNoKE8pe2lmKHY9PTYyKXRocm93IE87dj09ODgmJihVPU8sbD02OCl9fSgpLHRwPSJjbG9zdXJlX2xpc3RlbmFibGVfIisoKEwoMiw2NSxmTiwoa1QucHJvdG90eXBlLlU9IShrVC5wcm90b3R5cGUuZGlzcG9zZT0oa1QucHJvdG90eXBlLkQ9ZnVuY3Rpb24oUil7e1I9MzA7d2hpbGUoUiE9NjApUj09OTY\/Uj0yMTpSPT03Pyh0aGlzLldZLnNoaWZ0KCkoKSxSPTk2KTpSPT05Mj9SPTIxOlI9PTIxP1I9dGhpcy5XWS5sZW5ndGg\/Nzo2MDpSPT0zMCYmKFI9dGhpcy5XWT85Mjo2MCl9fSx1US5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPSh1US5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dHJ1ZX0sZnVuY3Rpb24oKXt0aGlzLlNyPXRydWV9KSxmdW5jdGlvbihSKXt7Uj05NDt3aGlsZShSIT02NilSPT05ND9SPXRoaXMuVT82NjozNzpSPT0zNyYmKHRoaXMuVT10cnVlLHRoaXMuRCgpLFI9NjYpfX0pLDEpLGtULnByb3RvdHlwZVtTeW1ib2wuZGlzcG9zZV09ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKX0sdVEpKSxmTi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihSLHksRSxsLFUsdil7Zm9yKHY9NjM7diE9Mjspdj09NDI\/KHRoaXMub2Zmc2V0WD1SLm9mZnNldFgsdGhpcy5vZmZzZXRZPVIub2Zmc2V0WSx0aGlzLmNsaWVudFg9Ui5jbGllbnRYIT09dm9pZCAwP1IuY2xpZW50WDpSLnBhZ2VYLHRoaXMuY2xpZW50WT1SLmNsaWVudFkhPT12b2lkIDA\/Ui5jbGllbnRZOlIucGFnZVksdGhpcy5zY3JlZW5YPVIuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9Ui5zY3JlZW5ZfHwwLHY9NTApOnY9PTY2Pyh0aGlzLmNsaWVudFg9VS5jbGllbnRYIT09dm9pZCAwP1UuY2xpZW50WDpVLnBhZ2VYLHRoaXMuY2xpZW50WT1VLmNsaWVudFkhPT12b2lkIDA\/VS5jbGllbnRZOlUucGFnZVksdGhpcy5zY3JlZW5YPVUuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9VS5zY3JlZW5ZfHwwLHY9NTApOnY9PTY0P3Y9bD09Im1vdXNlb3ZlciI\/Nzg6OTp2PT01MD8odGhpcy5idXR0b249Ui5idXR0b24sdGhpcy5rZXlDb2RlPVIua2V5Q29kZXx8MCx0aGlzLmtleT1SLmtleXx8IiIsdGhpcy5jaGFyQ29kZT1SLmNoYXJDb2RlfHwobD09ImtleXByZXNzIj9SLmtleUNvZGU6MCksdGhpcy5jdHJsS2V5PVIuY3RybEtleSx0aGlzLmFsdEtleT1SLmFsdEtleSx0aGlzLnNoaWZ0S2V5PVIuc2hpZnRLZXksdGhpcy5tZXRhS2V5PVIubWV0YUtleSx0aGlzLnBvaW50ZXJJZD1SLnBvaW50ZXJJZHx8MCx0aGlzLnBvaW50ZXJUeXBlPVIucG9pbnRlclR5cGUsdGhpcy5zdGF0ZT1SLnN0YXRlLHRoaXMudGltZVN0YW1wPVIudGltZVN0YW1wLHRoaXMud3I9UixSLmRlZmF1bHRQcmV2ZW50ZWQmJmZOLlMucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKSx2PTIpOnY9PTU2PyhFPVIudG9FbGVtZW50LHY9MjEpOnY9PTc4PyhFPVIuZnJvbUVsZW1lbnQsdj0yMSk6dj09NDg\/dj1FPzIxOjY0OnY9PTIxPyh0aGlzLnJlbGF0ZWRUYXJnZXQ9RSx2PTUzKTp2PT05P3Y9bD09Im1vdXNlb3V0Ij81NjoyMTp2PT02Mz8obD10aGlzLnR5cGU9Ui50eXBlLFU9Ui5jaGFuZ2VkVG91Y2hlcyYmUi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg\/Ui5jaGFuZ2VkVG91Y2hlc1swXTpudWxsLHRoaXMudGFyZ2V0PVIudGFyZ2V0fHxSLnNyY0VsZW1lbnQsdGhpcy5jdXJyZW50VGFyZ2V0PXksRT1SLnJlbGF0ZWRUYXJnZXQsdj00OCk6dj09NTMmJih2PVU\/NjY6NDIpfSxmTikucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe2ZOLlMuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyksdGhpcy53ci5zdG9wUHJvcGFnYXRpb24\/dGhpcy53ci5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLndyLmNhbmNlbEJ1YmJsZT10cnVlfSxmTi5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oUil7KFI9KGZOLlMucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKSx0aGlzLndyKSxSLnByZXZlbnREZWZhdWx0KT9SLnByZXZlbnREZWZhdWx0KCk6Ui5yZXR1cm5WYWx1ZT1mYWxzZX0sTWF0aC5yYW5kb20oKSoxRTZ8MCksTSQ9MCx1dz0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpLFRqPSgoKE9xLnByb3RvdHlwZS5oYXNMaXN0ZW5lcj1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBOJCgwLChVPShsPXkhPT12b2lkIDAsKEU9UiE9PXZvaWQgMCk\/Ui50b1N0cmluZygpOiIiKSwxMSksdHJ1ZSxmYWxzZSxmdW5jdGlvbih2LE8sWSl7e1k9OTM7d2hpbGUoWSE9ODApaWYoWT09OSlZPTk0O2Vsc2UgaWYoWT09OTQpWT1PPHYubGVuZ3RoPzk4OjQ0O2Vsc2UgaWYoWT09OTgpWT1FJiZ2W09dLnR5cGUhPVV8fGwmJnZbT10uY2FwdHVyZSE9eT8yNzo3NDtlbHNle2lmKFk9PTc0KXJldHVybiB0cnVlO2lmKFk9PTkzKU89MCxZPTk7ZWxzZSBpZihZPT0yNykrK08sWT05NDtlbHNlIGlmKFk9PTQ0KXJldHVybiBmYWxzZX19fSx0aGlzLmwpfSxPcSkucHJvdG90eXBlLmFkZD0oT3EucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe2ZvcihZPTk0O1khPTEyOyl7aWYoWT09MTMpcmV0dXJuIGZhbHNlO2lmKFk9PTYwKVU9dGhpcy5sW09dLHY9WVQoRSx5LFUsbCwxMSwwKSxZPTk3O2Vsc2V7aWYoWT09MTYpcmV0dXJuIGZhbHNlO2lmKFk9PTYpWT1PIGluIHRoaXMubD82MDoxMztlbHNlIGlmKFk9PTk3KVk9dj4tMT8xMDoxNjtlbHNle2lmKFk9PTMzKXJldHVybiB0cnVlO1k9PTI5P1k9VS5sZW5ndGg9PTA\/NzA6MzM6WT09NzA\/KGRlbGV0ZSB0aGlzLmxbT10sdGhpcy5RVC0tLFk9MzMpOlk9PTk0PyhPPVIudG9TdHJpbmcoKSxZPTYpOlk9PTEwJiYobk4oMzIsbnVsbCxVW3ZdKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoVSx2LDEpLFk9MjkpfX19fSxmdW5jdGlvbihSLHksRSxsLFUsdixPLFksSyxuKXtmb3Iobj04O24hPTI2OylpZihuPT0yMilLLnpsPWZhbHNlLG49Mzk7ZWxzZSBpZihuPT0yNyluPXY\/ODc6NzA7ZWxzZSBpZihuPT03NCluPU8+LTE\/Njg6ODQ7ZWxzZSBpZihuPT02OClLPXZbT10sbj05ODtlbHNlIGlmKG49PTgpWT1SLnRvU3RyaW5nKCksdj10aGlzLmxbWV0sbj0yNztlbHNlIGlmKG49PTg3KU89WVQobCx5LHYsVSwxNSwwKSxuPTc0O2Vsc2UgaWYobj09OTgpbj1FPzM5OjIyO2Vsc2UgaWYobj09ODQpSz1uZXcgJGMoeSxZLHRoaXMuc3JjLFUsISFsKSxLLnpsPUUsdi5wdXNoKEspLG49Mzk7ZWxzZSBpZihuPT03MCl2PXRoaXMubFtZXT1bXSx0aGlzLlFUKyssbj04NztlbHNlIGlmKG49PTM5KXJldHVybiBLfSksT3EucHJvdG90eXBlKS5ucj1mdW5jdGlvbihSLHksRSxsLFUsdil7cmV0dXJuKChVPS0odj10aGlzLmxbeS50b1N0cmluZygpXSwxKSx2KSYmKFU9WVQoUixFLHYsbCw3LDApKSxVKT4tMT92W1VdOm51bGx9LCJjbG9zdXJlX2xtXyIrKE1hdGgucmFuZG9tKCkqMUU2fDApKSxndT17fSxsUT0wLG1jPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7KCgoKChMKDIsNjQsU1gsa1QpLFNYKS5wcm90b3R5cGVbdHBdPXRydWUsVj1TWC5wcm90b3R5cGUsVi5pcD1mdW5jdGlvbihSKXt0aGlzLmJwPVJ9LFYpLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oUix5LEUsbCl7dlMoODAsOCxmYWxzZSwib2JqZWN0Iix0aGlzLEUsbCx5LFIpfSxWKS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKFIseSxFLGwpe0tOKDAseSwib2JqZWN0Iiw2LHRoaXMsbCxFLFIpfSxWLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEkpe2ZvcihJPTM3O0khPTMzOylpZihJPT02Nyl2PXkubGVuZ3RoLTEsST0yMDtlbHNlIGlmKEk9PTIwKUk9MTtlbHNlIGlmKEk9PTgxKUU9bC5jdXJyZW50VGFyZ2V0PU8sVT1lRChudWxsLDE4LEssRSx0cnVlLGwpJiZVLGwuU3J8fChVPWVEKG51bGwsMTYsSyxFLGZhbHNlLGwpJiZVKSxJPTk1O2Vsc2UgaWYoST09NTQpWS5wdXNoKFQpLEk9NTU7ZWxzZSBpZihJPT03OSlsPW5ldyB1UShsLE8pLEk9NjA7ZWxzZSBpZihJPT02MilJPTc0O2Vsc2UgaWYoST09MTApdi0tLEk9MTtlbHNlIGlmKEk9PTU1KVQ9VC5icCxJPTQ5O2Vsc2UgaWYoST09OTQpST1sLlNyPzk1OjgxO2Vsc2UgaWYoST09NDcpbC50YXJnZXQ9bC50YXJnZXR8fE8sST02MDtlbHNlIGlmKEk9PTQ2KUU9bC5jdXJyZW50VGFyZ2V0PXlbdl0sVT1lRChudWxsLDMsSyxFLGZhbHNlLGwpJiZVLEk9OTk7ZWxzZSBpZihJPT03MilJPTQ5O2Vsc2UgaWYoST09NDEpST1UPzUyOjI2O2Vsc2UgaWYoST09MTUpST15PzY3Ojk0O2Vsc2UgaWYoST09OTUpST15PzcwOjExO2Vsc2UgaWYoST09MSlJPSFsLlNyJiZ2Pj0wPzYzOjk0O2Vsc2UgaWYoST09MjYpTz10aGlzLlhOLGw9UixLPWwudHlwZXx8bCx5PVksST0yMTtlbHNlIGlmKEk9PTUyKVk9W10sST03MjtlbHNle2lmKEk9PTExKXJldHVybiBVO0k9PTM3PyhUPXRoaXMuYnAsST00MSk6ST09MjE\/ST10eXBlb2YgbD09PSJzdHJpbmciPzc5OjM6ST09NzA\/KHY9MCxJPTYyKTpJPT02Mz8oRT1sLmN1cnJlbnRUYXJnZXQ9eVt2XSxVPWVEKG51bGwsMTcsSyxFLHRydWUsbCkmJlUsST0xMCk6ST09NDk\/ST1UPzU0OjI2Okk9PTc0P0k9IWwuU3ImJnY8eS5sZW5ndGg\/NDY6MTE6ST09OTk\/KHYrKyxJPTc0KTpJPT0zP0k9bCBpbnN0YW5jZW9mIHVRPzQ3OjkwOkk9PTkwPyhuPWwsbD1uZXcgdVEoSyxPKSxidyhsLG4pLEk9NjApOkk9PTYwJiYoVT10cnVlLEk9MTUpfX0sVikuRD1mdW5jdGlvbigpeygoU1guUy5ELmNhbGwodGhpcyksdGhpcykuWiYmSigwLG51bGwsNTcsdGhpcy5aKSx0aGlzKS5icD1udWxsfSxWKS5ucj1mdW5jdGlvbihSLHksRSxsKXtyZXR1cm4gdGhpcy5aLm5yKFIsU3RyaW5nKHkpLEUsbCl9LFYuaGFzTGlzdGVuZXI9ZnVuY3Rpb24oUix5KXtyZXR1cm4gdGhpcy5aLmhhc0xpc3RlbmVyKFIhPT12b2lkIDA\/U3RyaW5nKFIpOnZvaWQgMCx5KX07dmFyIFoyO2lmKFhyKDMsKCgoKCgoVj0oIkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLCJJTlBVVCJdKSxxMC5wcm90b3R5cGUpLFYuVj1mdW5jdGlvbihSKXtyZXR1cm4gdHlwZW9mIFI9PT0ic3RyaW5nIj90aGlzLnFJLmdldEVsZW1lbnRCeUlkKFIpOlJ9LFYuZ2V0RWxlbWVudHNCeVRhZ05hbWU9ZnVuY3Rpb24oUix5KXtyZXR1cm4oeXx8dGhpcy5xSSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKFIpKX0sVikuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihSLHksRSl7aWYoKEU9KHk9dGhpcy5xSSxTdHJpbmcoUikpLHkuY29udGVudFR5cGUpPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihFPUUudG9Mb3dlckNhc2UoKSksW10pcmV0dXJuIHkuY3JlYXRlRWxlbWVudChFKX0sVikuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oUil7cmV0dXJuIHRoaXMucUkuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKFIpKX0sVi5hcHBlbmRDaGlsZD1mdW5jdGlvbihSLHkpe1IuYXBwZW5kQ2hpbGQoeSl9LFYpLmFwcGVuZD1mdW5jdGlvbihSLHkpeyRUKCJudW1iZXIiLDE5LGZhbHNlLDEsIiIsYXJndW1lbnRzLFIsUi5ub2RlVHlwZT09OT9SOlIub3duZXJEb2N1bWVudHx8Ui5kb2N1bWVudCl9LFYpLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihSLHkpe2Zvcih5PTU1O3khPTcwOylpZih5PT01NSl5PVIubm9kZVR5cGUhPTE\/ODA6NjQ7ZWxzZXtpZih5PT04MClyZXR1cm4gZmFsc2U7aWYoeT09NjQpe3N3aXRjaChSLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9fX0sVi5yZW1vdmVOb2RlPVIwLFYpLmNvbnRhaW5zPWZ1bmN0aW9uKFIseSxFLGwpe3tsPTMwO3doaWxlKGwhPTYyKXtpZihsPT04OSlyZXR1cm4gUj09eXx8ISEoRT1SLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHkpLDE2LX5FK34oRXwxNikpO2lmKGw9PTk5KXJldHVybiBmYWxzZTtpZihsPT00MSlsPXR5cGVvZiBSLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIj84OTo4NDtlbHNlIGlmKGw9PTM1KWw9eSYmUiE9eT83Mjo0NDtlbHNlIGlmKGw9PTEzKWw9Ui5jb250YWlucyYmeS5ub2RlVHlwZT09MT8xNTo0MTtlbHNlIGlmKGw9PTcyKXk9eS5wYXJlbnROb2RlLGw9NDA7ZWxzZSBpZihsPT0zMClsPVImJnk\/MTM6OTk7ZWxzZXtpZihsPT0xNSlyZXR1cm4gUj09eXx8Ui5jb250YWlucyh5KTtpZihsPT00NClyZXR1cm4geT09UjtsPT00MD9sPTM1Omw9PTg0JiYobD0zNSl9fX19LFVqKSwxMyksMylVai5wcm90b3R5cGUuV1E9IiI7KFY9KEwoMiwzLFpVLChVai5wcm90b3R5cGUuSnk9MCxTWCkpLFpVKS5wcm90b3R5cGUsVi5vND1Vai5YZSgpLFYpLlY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfTt3aGlsZShudWxsIT1mYWxzZSlpZihWLmdldFBhcmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFofSx7fSlicmVhazsoKFYucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEssbixULEksUCl7Zm9yKFA9ODtQIT03MDspaWYoUD09NjEpWT1sLFA9NjI7ZWxzZSBpZihQPT0zMClLPXRoaXMubWwsRT0oSyE9PW51bGwmJkkgaW4gSz9LW0ldOnZvaWQgMCl8fG51bGwsUD00MztlbHNle2lmKFA9PTIyKXJldHVybiBSO2lmKFA9PTMxKVA9KGw9Ui5sNCk\/NjE6MTY7ZWxzZSBpZihQPT0xNSl2PXRoaXMubWwsSSBpbiB2JiZkZWxldGUgdltJXSx4VCg3LDEsdGhpcy5aOSxSKSxQPTY4O2Vsc2UgaWYoUD09MTkpUi5OSSgpLFIuaSYmUjAoUi5pKSxQPTUzO2Vsc2V7aWYoUD09NDUpdGhyb3cgRXJyb3IoIkNoaWxkIGlzIG5vdCBpbiBwYXJlbnQgY29tcG9uZW50Iik7aWYoUD09NjgpUD15PzE5OjUzO2Vsc2UgaWYoUD09NDcpVS5haD1udWxsLFpVLlMuaXAuY2FsbChVLG51bGwpLFA9NTI7ZWxzZSBpZihQPT00KVA9dGhpcy5tbCYmST8zMDo2O2Vsc2UgaWYoUD09NjUpUD1JJiZSPzE1OjUyO2Vsc2UgaWYoUD09NjIpST1ZLFA9NDtlbHNlIGlmKFA9PTMzKVA9VT09bnVsbD82Mzo0NztlbHNlIGlmKFA9PTk3KVA9dHlwZW9mIFI9PT0ic3RyaW5nIj82NzozMTtlbHNlIGlmKFA9PTUyKVA9Uj8yMjo0NTtlbHNle2lmKFA9PTYzKXRocm93IEVycm9yKCJVbmFibGUgdG8gc2V0IHBhcmVudCBjb21wb25lbnQiKTtQPT0xNj8obj1SLm80LE89UixUPW4uV1ErIjoiKyhuLkp5KyspLnRvU3RyaW5nKDM2KSxsPU8ubDQ9VCxQPTYxKTpQPT01Mz8oVT1SLFA9MzMpOlA9PTQzPyhSPUUsUD02NSk6UD09Njc\/KFk9UixQPTYyKTpQPT02PyhFPW51bGwsUD00Myk6UD09OCYmKFA9Uj85Nzo1Mil9fX19LFYpLkQ9ZnVuY3Rpb24oUil7Zm9yKFI9ODk7UiE9NjU7KVI9PTIyPyhBcCg2NSwyMyxmdW5jdGlvbih5KXt5LmRpc3Bvc2UoKX0sdGhpcyksIXRoaXMuckImJnRoaXMuaSYmUjAodGhpcy5pKSx0aGlzLm1sPXRoaXMuaT10aGlzLmFoPXRoaXMuWjk9bnVsbCxaVS5TLkQuY2FsbCh0aGlzKSxSPTY1KTpSPT0xMD9SPXRoaXMudXA\/MjE6MjI6Uj09MjE\/KHRoaXMudXAuZGlzcG9zZSgpLGRlbGV0ZSB0aGlzLnVwLFI9MjIpOlI9PTg5JiYodGhpcy5nciYmdGhpcy5OSSgpLFI9MTApfSxWKS5pcD0oVi5OST1mdW5jdGlvbigpe3RoaXMuZ3I9KChBcCg2NSwzMSxmdW5jdGlvbihSKXtSLmdyJiZSLk5JKCl9LHRoaXMpLHRoaXMpLnVwJiZKKDAsbnVsbCw1OCx0aGlzLnVwKSxmYWxzZSl9LGZ1bmN0aW9uKFIseSl7Zm9yKHk9NjE7eSE9ODk7KWlmKHk9PTYxKXk9dGhpcy5haCYmdGhpcy5haCE9Uj82ODo3ODtlbHNle2lmKHk9PTY4KXRocm93IEVycm9yKCJNZXRob2Qgbm90IHN1cHBvcnRlZCIpO3k9PTc4JiYoWlUuUy5pcC5jYWxsKHRoaXMsUikseT04OSl9fSk7dmFyIE9qLHZwPXtidXR0b246InByZXNzZWQiLGNoZWNrYm94OihYcigzLHl6LDExKSwiY2hlY2tlZCIpLG1lbnVpdGVtOiJzZWxlY3RlZCIsbWVudWl0ZW1jaGVja2JveDoiY2hlY2tlZCIsbWVudWl0ZW1yYWRpbzoiY2hlY2tlZCIscmFkaW86ImNoZWNrZWQiLHRhYjoic2VsZWN0ZWQiLHRyZWVpdGVtOiJzZWxlY3RlZCJ9O2lmKCgoKFY9eXoucHJvdG90eXBlLFYuTnI9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1jb250cm9sIn0sVikuWT1mdW5jdGlvbihSLHksRSxsLFUsdixPKXtmb3IoTz01O08hPTM1OylPPT02MD9PPXRoaXMuVTI\/MTU6ODpPPT01Pyh2PXkuVigpLE89ODgpOk89PTg4P089dj82MDozNTpPPT0xNT8oKGw9dGhpcy5VMltSXSkmJnRoaXMuSWgoeSxsLEUpLHRoaXMuaFQodixSLEUpLE89MzUpOk89PTgmJihVPXRoaXMuTnIoKSxVLnJlcGxhY2UoL1xceGEwfFxccy9nLCIgIiksdGhpcy5VMj17MTpVKyItZGlzYWJsZWQiLDI6VSsiLWhvdmVyIiw0OlUrIi1hY3RpdmUiLDg6VSsiLXNlbGVjdGVkIiwxNjpVKyItY2hlY2tlZCIsMzI6VSsiLWZvY3VzZWQiLDY0OlUrIi1vcGVuIn0sTz0xNSl9LFYuaFQ9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXsoWT0oKE89KE9qfHwoT2o9ezE6ImRpc2FibGVkIiw4OiJzZWxlY3RlZCIsMTY6ImNoZWNrZWQiLDY0OiJleHBhbmRlZCJ9KSxPalt5XSksVT1SLmdldEF0dHJpYnV0ZSgicm9sZSIpfHxudWxsKT8obD12cFtVXXx8Tyx2PU89PSJjaGVja2VkInx8Tz09InNlbGVjdGVkIj9sOk8pOnY9Tyx2KSkmJmFyKCJvZmYiLDIwLCJmYWxzZSIsZmFsc2UsUixZLEUpfSxWKS5JaD1mdW5jdGlvbihSLHksRSxsKXsobD1SLlY\/Ui5WKCk6UikmJihFP2dNOkN3KShsLFt5XSl9LFYuUFk9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZLEspe1k9ODc7e0s9ODM7d2hpbGUoInciKXRyeXtpZihZPT05NylicmVhaztlbHNlIFk9PTU1PyhFLnRhYkluZGV4PTAsWT05Nyk6WT09MzM\/KEs9NjQsbC5ibHVyKCksWT03NCk6WT09Njk\/KEUudGFiSW5kZXg9LTEsRS5yZW1vdmVBdHRyaWJ1dGUoInRhYkluZGV4IiksWT05Nyk6WT09MzI\/KHY9bC50YWJJbmRleCxVPXR5cGVvZiB2PT09Im51bWJlciImJnY+PTAmJnY8MzI3NjgsWT03OCk6WT09NzQ\/KEs9ODMsWT0yMyk6WT09MTE\/WT0heSYmUi5YJjMyPzMzOjcwOlk9PTcwP1k9KFU9bC5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikpPzMyOjc4Olk9PTU\/WT15PzU1OjY5Olk9PTg3P1k9S04oMixSLDMyLDM1KSYmKGw9Ui5ycigpKT8xMTo5NzpZPT03OD9ZPVUhPXk\/MjY6OTc6WT09NzU\/KEs9ODMsWT03NCk6WT09MjY\/KEU9bCxZPTUpOlk9PTg\/KE9rKDAsMiwzLDAsNCxSKSYmUi5zZXRBY3RpdmUoZmFsc2UpLE9rKDAsMiwxMSwwLDMyLFIpJiZKKDIsZmFsc2UsMTAsUiwzMikmJlIuWShmYWxzZSwzMiksWT03MCk6WT09MjMmJihZPVIuWCYzMj84OjcwKX1jYXRjaChuKXtpZihLPT04Myl0aHJvdyBuO0s9PTY0JiYoTz1uLFk9NzUpfX19LFYpLnJyPWZ1bmN0aW9uKFIpe3JldHVybiBSLlYoKX0sMTIpTCgyLDE3LFRaLHl6KTt2YXIgV3Q9KFhyKDMsVFosNykse30pO2lmKHR5cGVvZiBZYyE9PSgoKCgoKFY9KEwoKFRaLnByb3RvdHlwZS5Ocj0oVFoucHJvdG90eXBlLmhUPWZ1bmN0aW9uKFIseSxFKXtzd2l0Y2goeSl7Y2FzZSA4OmNhc2UgMTY6YXIoIm9mZiIsMTgsImZhbHNlIixmYWxzZSxSLCJwcmVzc2VkIixFKTticmVhaztkZWZhdWx0OmNhc2UgNjQ6Y2FzZSAxOlRaLlMuaFQuY2FsbCh0aGlzLFIseSxFKX19LGZ1bmN0aW9uKCl7cmV0dXJuImdvb2ctYnV0dG9uIn0pLDIpLDE5LFljLFpVKSxZYy5wcm90b3R5cGUpLFYuWD0wLFYuTkk9ZnVuY3Rpb24oKXsoWWMuUy5OSS5jYWxsKHRoaXMpLHRoaXMuSFkpJiZ0aGlzLkhZLmRldGFjaCgpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuaXNFbmFibGVkKCkmJnRoaXMuQy5QWSh0aGlzLGZhbHNlKX0sVikuWXc9MCxWLmh5PTM5LFYuQzU9dHJ1ZSxWLkQ9ZnVuY3Rpb24oUil7Zm9yKFI9Mzk7UiE9Mjc7KVI9PTYzP1I9dGhpcy5IWT81Nzo4OTpSPT04OT8oZGVsZXRlIHRoaXMuQyx0aGlzLkg9bnVsbCxSPTI3KTpSPT01Nz8odGhpcy5IWS5kaXNwb3NlKCksZGVsZXRlIHRoaXMuSFksUj04OSk6Uj09MzkmJihZYy5TLkQuY2FsbCh0aGlzKSxSPTYzKX0sVikucnI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5DLnJyKHRoaXMpfSxWLkloPWZ1bmN0aW9uKFIseSxFKXtmb3IoRT00NztFIT0yOTspRT09NDU\/RT1SPzk1OjI5OkU9PTMzPyh0aGlzLkMuSWgodGhpcyxSLGZhbHNlKSxFPTI5KTpFPT00ND8odGhpcy5IPW51bGwsRT0zMyk6RT09OTE\/RT1SJiZ0aGlzLkgmJnhUKDgsMSx0aGlzLkgsUik\/MzoyOTpFPT0zP0U9dGhpcy5ILmxlbmd0aD09MD80NDozMzpFPT05NT8odGhpcy5IP0xOKDY1LDAsMyxSLHRoaXMuSCk+PTB8fHRoaXMuSC5wdXNoKFIpOnRoaXMuSD1bUl0sdGhpcy5DLkloKHRoaXMsUix0cnVlKSxFPTI5KTpFPT00NyYmKEU9eT80NTo5MSl9LFYuSD1udWxsLFYuTXI9MjU1LFYuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQzV9LFYuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLlgmMSl9LFYpLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5YJjQpfSxWKS5zZXRBY3RpdmU9ZnVuY3Rpb24oUil7SigyLFIsNix0aGlzLDQpJiZ0aGlzLlkoUiw0KX0sVi5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlh9LFYpLlk9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyl7e089NjQ7d2hpbGUoTyE9NilPPT0zNT8odGhpcy5zZXRBY3RpdmUoZmFsc2UpLEooMixmYWxzZSwxMSx0aGlzLDIpJiZ0aGlzLlkoZmFsc2UsMiksTz02Nik6Tz09NjQ\/Tz1FfHx5IT0xPzQ4OjE1Ok89PTE1PyhVPSFSLGw9dGhpcy5nZXRQYXJlbnQoKSxPPTc2KTpPPT03Nj9PPWwmJnR5cGVvZiBsLmlzRW5hYmxlZD09ImZ1bmN0aW9uIiYmIWwuaXNFbmFibGVkKCl8fCFKKDIsIVUsOSx0aGlzLDEpPzY6NTQ6Tz09NjY\/KHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuQy5QWSh0aGlzLFUpLHRoaXMuWSghVSwxLHRydWUpLE89Nik6Tz09NDg\/Tz1LTigyLHRoaXMseSwzMykmJlIhPSEhKHRoaXMuWCZ5KT8yNzo2Ok89PTI3Pyh0aGlzLkMuWSh5LHRoaXMsUiksdGhpcy5YPVI\/KHY9dGhpcy5YLCh5fDApLX52K355Kyh+diZ5KSk6dGhpcy5YJn55LE89Nik6Tz09NTQmJihPPVU\/NjY6MzUpfX0sImZ1bmN0aW9uIikpd2hpbGUodHJ1ZSl7dGhyb3cgRXJyb3IoIkludmFsaWQgY29tcG9uZW50IGNsYXNzICIrWWMpO2lmKCEiIj09ISghKCFbXSE9ZmFsc2UpPT0hIiI9PVtdKSlicmVha31mb3IoMCE9IVsiIl07dHlwZW9mIHl6IT09ImZ1bmN0aW9uIjt1bmRlZmluZWQpe3Rocm93IEVycm9yKCJJbnZhbGlkIHJlbmRlcmVyIGNsYXNzICIreXopO2lmKCJ5IilicmVha312YXIgWU49cSQoMzcsNixZYyk7TCgoV3RbWU5dPXl6LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZYyhudWxsKX0pLDQwLCJnb29nLWNvbnRyb2wiKTt3aGlsZSghW109PWZhbHNlKWlmKEwoMiwxNixudyxUWiksdHJ1ZSlicmVhazt2YXIgRnI9KEwoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRNKG51bGwpfSwoKEwoMiwxOCxkTSwoKChYcigzLG53LDkpLG53LnByb3RvdHlwZS5oVD1mdW5jdGlvbigpe30sbncpLnByb3RvdHlwZS5ZPWZ1bmN0aW9uKFIseSxFLGwsVSl7Zm9yKFU9OTE7VSE9OTA7KVU9PTkxPyhudy5TLlkuY2FsbCh0aGlzLFIseSxFKSxsPXkuVigpLFU9NDQpOlU9PTQ0P1U9bCYmUj09MT85Njo5MDpVPT05NiYmKGwuZGlzYWJsZWQ9RSxVPTkwKX0sbncpLnByb3RvdHlwZS5QWT1mdW5jdGlvbigpe30sWWMpKSxkTS5wcm90b3R5cGUpLkQ9ZnVuY3Rpb24oKXtkZWxldGUgKGRlbGV0ZSAoZE0uUy5ELmNhbGwodGhpcyksdGhpcykuQlEsdGhpcykuRXh9LDQxKSwiZ29vZy1idXR0b24iKSxjLnJlcXVlc3RJZGxlQ2FsbGJhY2s\/ZnVuY3Rpb24oUil7cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe1IoKX0se3RpbWVvdXQ6NH0pfTpjLnNldEltbWVkaWF0ZT9mdW5jdGlvbihSKXtzZXRJbW1lZGlhdGUoUil9OmZ1bmN0aW9uKFIpe3NldFRpbWVvdXQoUiwwKX0pLHlTLE4wPXtwYXNzaXZlOnRydWUsY2FwdHVyZTp0cnVlfSxhVz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEwNSwxMTAsMTE2LDEwMSwxMDMsNjcsMTA0LDEwMSw5OSwxMDcsNjYsMTIxLDExMiw5NywxMTUsMTE1KSxocD0oci5wcm90b3R5cGUuREE9ZmFsc2Usci5wcm90b3R5cGUuZXo9dm9pZCAwLFtdKSxEMj17fSxYbT0oci5wcm90b3R5cGUuQVQ9InRvU3RyaW5nIixbXSksS3c9W10saVE9W10sY1M9W10sd009W10scnU9W10sTTA9KHIucHJvdG90eXBlLnZRPXZvaWQgMCxbXSksSHQ9KGtjLGl3LGxBLEkwLEFkLG9XLEQyKS5jb25zdHJ1Y3RvcixWZz0oKCgoVj1yLnByb3RvdHlwZSxyLnByb3RvdHlwZSkuaD0iY3JlYXRlIixWKS5QUT1mdW5jdGlvbihSLHksRSxsLFUsdixPKXtyZXR1cm4gTiQuY2FsbCh0aGlzLDAsOCxSLHksRSxsLFUsdixPKX0sVi5lcj1mdW5jdGlvbihSLHksRSxsLFUsdil7cmV0dXJuIGIuY2FsbCh0aGlzLFIsMTYseSxFLGwsVSx2KX0sVi5uNT1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBkdS5jYWxsKHRoaXMseSxVLGwsRSxSLDgpfSxWKS5aQT1mdW5jdGlvbigpe3doaWxlKHt9KXtyZXR1cm4gSXIuY2FsbCh0aGlzLDMpO2lmKHRydWUpYnJlYWt9fSxWLkY9KHdpbmRvdy5wZXJmb3JtYW5jZXx8e30pLm5vdz9mdW5jdGlvbigpe3JldHVybiB0aGlzLmI0K3dpbmRvdy5wZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9LFYuQXk9ZnVuY3Rpb24oUix5LEUsbCxVLHYsTyxZKXtyZXR1cm4gSXIuY2FsbCh0aGlzLDQwLFIseSxFLGwsVSx2LE8sWSl9LFYuZjU9ZnVuY3Rpb24oKXtyZXR1cm4gU0QuY2FsbCh0aGlzLDMsNSl9LFYuaTQ9MCx2b2lkIDApOygoVj1yLnByb3RvdHlwZSxWKS5HPWZ1bmN0aW9uKFIseSl7cmV0dXJuIHk9KFI9KFZnPWZ1bmN0aW9uKCl7cmV0dXJuIFI9PXk\/MTE6LTR9LHt9KSx7fSksZnVuY3Rpb24oRSxsLFUsdixPLFksSyxuLFQsSSxQLFcsUyxxLE4saCx3LEIsQyxkLHlnLGUseCx6aixzcSxELEYsRXEsZixKcCxtLHUsRWssQlMsVWssb3IsVXEsbVMsSVcsWCxQcCxaLEtKLFFTKXtmb3IoS0o9KFVxPXVuZGVmaW5lZCxYPShaPTE1LDIpLGZhbHNlKTs7KXRyeXtpZihaPT01NClicmVhaztlbHNlIGlmKFo9PTgxKW09bS5zbGljZSgwLDFFNiksck0oMjA3LFtdLHRoaXMsMTk3KSxKZChbXSwyMDcsdGhpcywzNiksWj0xMztlbHNlIGlmKFo9PTczKVo9bS5sZW5ndGg+ND85MToyMztlbHNlIGlmKFo9PTUwKVo9UD09aVE\/OTg6NzQ7ZWxzZSBpZihaPT01OSlYPTgyLGY9aXcoMikuY29uY2F0KE0oMjA3LHRoaXMpKSxmWzFdPShKcD1mWzBdLDYwLShKcCY2MCkrKEpwJi02MSkpLGZbM109KFQ9ZlsxXSxzcT16alswXSwoVCZzcSkrfihUJnNxKSsoVCZ+c3EpLShUfH5zcSkpLGZbNF09KEVrPWZbMV0sTj16alsxXSwxKzIqKEVrJn5OKSsofkVrXk4pKzIqKH5FayZOKSksb3I9dGhpcy5tTShmKSxaPTEwO2Vsc2UgaWYoWj09NzUpeD1mW1NdW3RoaXMuQVRdKDE2KSx4Lmxlbmd0aD09MSYmKHg9IjAiK3gpLG9yKz14LFo9NzY7ZWxzZSBpZihaPT05NylYPTc0LHc9ZygxNzUsdGhpcyksdy5sZW5ndGg+MCYmck0oMjA3LFEody5sZW5ndGgsMikuY29uY2F0KHcpLHRoaXMsNDgpLHJNKDIwNyxRKHRoaXMuQisxPj4xLDEpLHRoaXMsODcpLHJNKDIwNyxRKHRoaXNbaVFdLmxlbmd0aCwxKSx0aGlzKSxDPXRoaXMuVGw\/ZygyNjAsdGhpcyk6dCgzMDEsdGhpcyksQy5sZW5ndGg+MCYmck0oNDg1LFEoQy5sZW5ndGgsMikuY29uY2F0KEMpLHRoaXMsNjQpLFVrPU0oNDg1LHRoaXMpLFVrLmxlbmd0aD40JiZKZChRKFVrLmxlbmd0aCwyKS5jb25jYXQoVWspLDIwNyx0aGlzLDY1KSx2PTAsdi09KGcoMjA3LHRoaXMpLmxlbmd0aHwwKSs1LHYrPShLPU0oMzU4LHRoaXMpLDIwNDgrKEt8LTIwNDgpKSxtPWcoODQsdGhpcyksbS5sZW5ndGg+NCYmKHYtPShVPW0ubGVuZ3RoLDIqKFV8MyktKFUmLTQpLSh+VSYzKSkpLHY+MCYmck0oMjA3LFEodiwyKS5jb25jYXQoaXcodikpLHRoaXMsNTMpLFo9NzM7ZWxzZSBpZihaPT0xNSllPVIsUj15LFo9OTI7ZWxzZSBpZihaPT0yNSlaPVA9PVhtPzM5OjgwO2Vsc2UgaWYoWj09NzQpWj1QPT1ydT80OjM7ZWxzZSBpZihaPT00OSlaPVA9PWNTPzg4Ojc5O2Vsc2UgaWYoWj09MSlaPXU8QlMubGVuZ3RoPzE5OjE0O2Vsc2UgaWYoWj09MTApWj1vcj8xMTo5MztlbHNle2lmKFo9PTIwKXJldHVybiBJVztpZihaPT05MylTPTAsb3I9IiIsWj0yOTtlbHNlIGlmKFo9PTgzKVo9bi5kb25lPzcyOjY5O2Vsc2UgaWYoWj09OTkpWj0xO2Vsc2UgaWYoWj09MTEpb3I9IioiK29yLFo9MjQ7ZWxzZXtpZihaPT02MilyZXR1cm4gSVc7aWYoWj09NjkpcT1uLnZhbHVlLFo9NTI7ZWxzZSBpZihaPT0zNSlYPTMyLEJTPWF0b2IoeWcpLEk9W10sdT1kPTAsWj05OTtlbHNlIGlmKFo9PTMpWj1QPT13TT82NDo0OTtlbHNlIGlmKFo9PTE2KUlbZCsrXT1+KEImMjU1KS1+Qi0gLTI1NisofkJeMjU1KSxCPj49OCxaPTA7ZWxzZSBpZihaPT0zNyluPWgubmV4dCgpLFo9ODM7ZWxzZSBpZihaPT05KVo9ODM7ZWxzZSBpZihaPT00OClaPVM8Zi5sZW5ndGg\/NzU6MjQ7ZWxzZSBpZihaPT0xMylyTSgyMDcsUShtLmxlbmd0aCwyKS5jb25jYXQobSksdGhpcywxNjYpLFo9MjM7ZWxzZSBpZihaPT04OCl7aWYoVz1NKDMzOCx0aGlzKSxGPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJldbU3ltYm9sLml0ZXJhdG9yXSlsPUYuY2FsbChXKTtlbHNlIGlmKHR5cGVvZiBXLmxlbmd0aD09Im51bWJlciIpbD17bmV4dDplRCgwLDcsVyl9O2Vsc2UgdGhyb3cgRXJyb3IoU3RyaW5nKFcpKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO249KGg9bCxoKS5uZXh0KCksWj05fWVsc2UgaWYoWj09NjQpSVc9RWooMjYxLHRoaXMsODAwMSxFWzFdLDIwNDgpLFVxPTIwLFo9Nzk7ZWxzZSBpZihaPT04OSlYPTgyLHB3KFFTLHRoaXMsMTcsODQpLFVxPTU0LFo9Nzk7ZWxzZSBpZihaPT03OSlYPTIsUj1lLFo9MjE7ZWxzZSBpZihaPT0yOSlaPTQ4O2Vsc2UgaWYoWj09OTIpWD04MixQPUVbMF0sWj0yNTtlbHNlIGlmKFo9PTUyKVg9MjcscSgpLFo9Mzc7ZWxzZSBpZihaPT04NylaPVVxIT09dW5kZWZpbmVkPzc5OjU5O2Vsc2UgaWYoWj09NzYpUysrLFo9NDg7ZWxzZSBpZihaPT03MClYPTgyLHhjKDAsODAwMSwyMDQ4LHRoaXMpLFo9Nzk7ZWxzZSBpZihaPT0yMSlVcSE9PXVuZGVmaW5lZD8oWj1VcSxVcT11bmRlZmluZWQpOlo9NTQ7ZWxzZSBpZihaPT0zMylYPTgyLFo9Mzc7ZWxzZSBpZihaPT04MClaPVA9PWhwPzMyOjUwO2Vsc2UgaWYoWj09ODQpdSsrLFo9MTtlbHNlIGlmKFo9PTE0KXRoaXMubHA9SSx0aGlzLmc9dGhpcy5scC5sZW5ndGg8PDMsYShbMCwwLDBdLDczLHRoaXMpLFo9NzA7ZWxzZSBpZihaPT05OClEPUVbMl0semo9USgoTz1NKDIwNyx0aGlzKS5sZW5ndGgsMyooT3wyKS0gLTErfihPfDIpLShPXjIpKSwyKSxZPXRoaXMudSx0aGlzLnU9dGhpcyxaPTk3O2Vsc2UgaWYoWj09NzIpVy5sZW5ndGg9MCxaPTc5O2Vsc2UgaWYoWj09MzIpRVsxXS5wdXNoKHQoMjYwLHRoaXMpLmxlbmd0aCxnKDQ4NSx0aGlzKS5sZW5ndGgsdCg4NCx0aGlzKS5sZW5ndGgsTSgzMDEsdGhpcykubGVuZ3RoLHQoMTY4LHRoaXMpWzBdLGcoMTAxLHRoaXMpLmxlbmd0aCxNKDY0LHRoaXMpLmxlbmd0aCxNKDIwNyx0aGlzKS5sZW5ndGgpLEgoMjYxLHRoaXMsRVsyXSksdGhpcy5OWzQ5NV0mJkVqKDI2MSx0aGlzLDgwMDEsdCg0OTUsdGhpcyksMjA0OCksWj03OTtlbHNlIGlmKFo9PTIzKVg9ODIsdGhpcy51PVksWj04NztlbHNlIGlmKFo9PTM5KXlnPUVbMV0sWj0zNTtlbHNlIGlmKFo9PTkxKVo9bS5sZW5ndGg+MUU2PzgxOjEzO2Vsc2UgaWYoWj09MClJW2QrK109QixaPTg0O2Vsc2UgaWYoWj09MilaPUI+MjU1PzE2OjA7ZWxzZSBpZihaPT00KUVqKDI2MSx0aGlzLEVbMl0sRVsxXSwyMDQ4KSxaPTc5O2Vsc2UgaWYoWj09MTkpQj1CUy5jaGFyQ29kZUF0KHUpLFo9MjtlbHNlIGlmKFo9PTI0KUVxPW9yLHQoMjYwLHRoaXMpLmxlbmd0aD1ELnNoaWZ0KCksZyg0ODUsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSxNKDg0LHRoaXMpLmxlbmd0aD1ELnNoaWZ0KCksTSgzMDEsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSxNKDE2OCx0aGlzKVswXT1ELnNoaWZ0KCksZygxMDEsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSx0KDY0LHRoaXMpLmxlbmd0aD1ELnNoaWZ0KCksTSgyMDcsdGhpcykubGVuZ3RoPUQuc2hpZnQoKSxJVz1FcSxVcT02MixaPTc5O2Vsc2UgaWYoWj09NDQpdGhyb3cgbVM7fX19Y2F0Y2goVGYpe2lmKFg9PShtUz1UZiwyKSl0aHJvdyBUZjtYPT0zMj8oUVM9VGYsWj04OSk6WD09NzQ\/KFVxPTQ0LFo9MjMpOlg9PTgyPyhVcT00NCxaPTc5KTpYPT0yNyYmKFBwPVRmLFo9MzMpfX19KCksVikuejA9ZnVuY3Rpb24oKXtyZXR1cm4gTiQuY2FsbCh0aGlzLDAsNyl9O3ZhciBIUyxWUz0oKFYuZ0I9MCxWKS5PeD0oVi5tTT1mdW5jdGlvbihSLHksRSxsLFUpe3JldHVybiBPay5jYWxsKHRoaXMsMCx5LDEwLFIsRSxsLFUpfSxyLnByb3RvdHlwZVtNMF09WzAsMCwxLDEsMCwxLDFdLFYudlk9ZnVuY3Rpb24oKXtyZXR1cm4gQXAuY2FsbCh0aGlzLDY1LDIwKX0sMCksLy4vKSxuSj1YbS5wb3AuYmluZChyLnByb3RvdHlwZVtocF0pLGVYPWZ1bmN0aW9uKFIseSl7cmV0dXJuKHk9cSQoMzcsOCwia3MiLG51bGwsImVycm9yIikpJiZSLmV2YWwoeS5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEUpe3JldHVybiB5LmNyZWF0ZVNjcmlwdChFKX06ZnVuY3Rpb24oRSl7cmV0dXJuIiIrRX19KChIUz12Uyg4MCw4OSwoVlNbci5wcm90b3R5cGUuQVRdPW5KLHtnZXQ6bkp9KSxyLnByb3RvdHlwZS5oKSxyLnByb3RvdHlwZS5kQj12b2lkIDAsYykpOygoeVM9Yy5rbml0c2FpbHx8KGMua25pdHNhaWw9e30pLHlTLm0pPjQwfHwoeVMubT00MSx5Uy5rcz1mdyx5Uy5hPWpEKSx5UykuWmVVXz1mdW5jdGlvbihSLHksRSxsLFUsdixPLFkpe2lmKCFbKFk9bmV3IHIoTyxSLHksbCx2LFUpLHVuZGVmaW5lZCldPT0wKXJldHVybltmdW5jdGlvbihLKXtyZXR1cm4gSXIoMjQsZmFsc2UsSyxZKX0sZnVuY3Rpb24oSyl7WS52WShLKX1dfTt9KS5jYWxsKHRoaXMpOyddLmpvaW4oJ1xuJykpKTt9KS5jYWxsKHRoaXMpOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9ImZIWndDOEQybXF3SnUtV1VJdURSdEEiPihmdW5jdGlvbigpe3ZhciByPScxJzt2YXIgY2U9MzA7dmFyIHNjdG09ZmFsc2U7dmFyIHA9J1plVVZYVUVjajRwVWszR3FvTnY0WnlyVXZTa1R3Ymd6QnhQWlVjU0hiU25KaWNVUFFlaWRlZ1pvOWp3N2I0QjlVSlVLRUp0UFZ5RlhTcmh2eTlZeENiNm1pbzUvdklxUjVnVW5SUFc0MXBZbXNvVXVmL1RHdzZpWHFnaHBUOE5IdHJocEFJbWdVY0M1d2tuWVN1N0NVVWtOcTlPQ2RQQ3FVZ2M3WjRFWGpKN3huUjlxZDUrMTdib09EanV6b2dUMkIzTmUwLy9EbzV5b1RaU1JQbW95My8xSU5kd2V1RHNyRm1pQ2JycytWMm1BaVpHTytjNUdMTGtPeWtreU9tVC9CaW81NW1tVmI3dGlScTlVOXRpZDFiaXVqNnBwT3J2WUVpdmc5Y2c3L0ZJWXR6eFZyN2xoOWFSUlBBYU5xQ1owbFBuVktZZGUyM2I3RUQyMG9ZNVdQQzNMWmR6QUdDR2I4TjR1N3M5ZjEwL05RRjA4VElTQU9NMEk0RHZrUkNqUW9Zb1YzRW1QL3RXMXJzbG9BdkZnblcvL2NtS3JYQ1N3dElva0d0M3JnT21Semdlb3lwa1hPaTBtWmc2U0tVaTNmOTBVcy8xVkd4c1p1RGJHQnB3dDU1SURSSnFJVlFwblhWYWNTRGlHM2lzWmtUbTN2VnIyemhOSmJsaS9JclNMdEZkREZScVd0TjI5MHdiZE5lMDViNExhbXBST2RaZkNUNldaMTNVWVJhL2xKU2RTelFxazJxTHJXOVhtOVU1VE1DY2g2cXkvSFZrSDVINGNRVDZDWlZKeDBqUW9GZWxzQlV0ZTh1L0p5ZW1ZWlVBWG5nYVlhUVRHNXhmcDd1d1orb1JLc1YrUkxtSlV1RGRWd29Cc0ZVbGRneWNUSHJORzA3UnVBeUR0M2FxZGRTemNoR3grVHZTYXlzaTdtWE5aQVJRd3V1RUkrUWhRcFZkZ0NuZFB6bzM0bGdOWDNUbWUzMS9UampOdzVyMUJXRVlPM1BFV2RRUmtYTTJ5UFR1RWw5bVhYRWNvTkpxeFVFNGViN1dFOWk4bE12VXBmNmhMeDVTL3JiRGJWMXY2UTFZR0p6NzRBQmkvSnI0d0ZQeEphQVRyNzNvMVV3aXg5WXdYU0pLVFFwOGJzRFpsdEdoR2dDVm50c280RzRqMmRNUWxZUGJFTXpabExyczA5Q0RHdSsrMExzU3IzSjR4b3dzYUwwRDI3aFBFcXZ1T1NqazBSeHVnc1UxaXhValY4am4vWXFXZmJIdTFtK00rOXVDREw5ZGVVd2grc1lWQWdoZWhqa25XVHdYc2JWcWtwTFlaWjBidEthTDJGSG50ckIvd2wxbUxuRStlaUE2YXAreHVRLzBWK25OVk1ndlZ5dFJkMmRndU05TnUwUHpjQUVYdDdCNCswUU90QWlzMUtaT0hmNkpuMjVlbVhKMXJVbTBOKzF4dkMxVEswMnF3YVd2YmljU3JlbzBnT2dRQ05iVkV5S1UrR0VSZU4yV1Z1Z1lSS1dudzllNzJhMDlmVVFlZ0NtUWpFQ3hXZFAyVjlaM1dVSXROdklUczZucXlmSm53QUtJK1JWeVlnNkRSMUhKejZSRWxlaVZHLzlHTlRnR2s2UUFkVzFOSU90L28zVWRValhyenl4ZFlOWGFNNW12UkFtZlpDL2hNaFlhS09TQjBrUUUza1VZYVZkMXFVWHkraC94b25ob2FXcEFpSTA2VW5kL2ZWWWhERktjcXlPWFhtUmhMNnMybE9ZOXJhOGFCSkM2VnpndldPdjk4OU05bDVxM0ZwNkhCVnBxRVFGcDY4ZlJjeGxxb0NGZUFlRDJkM0EzOERyMlpKT2JBaTFWcVBMYW1QOThYaEdvbnJ5WjNvUVA3cnY1ZThOTEdQbVVpSzNVQmhZNTJxaVdUVmR0cWJOdnZJSlk0eGp1cEh6cHdyMlI3ZHFEeHgvb2NJWE5KUnN3czU1YmRPWXZpMkt3MHFoclZoQmhDVVVNSlRRTnpWL3BjOEtaby9mQm54ZDYzQ0VpaXNSb3N5UVFJMjZQK1ZPZWVUQUxlV1hybVZRcGVEVEFZb3JZc1p3NGVqY3BBcFlHa1JGUzlxb1pKU0RMOGg0SWRpWk5ndXpoWDdpZHdJS1dUSEtZRmtUQzgrR29XVlF6WXFUTEZJeHlCOHYyb1paZzF5c0FTN2llT3RSeWs4R3ZCL29LdE8wd21PZnR6MllYTW4yWnVzYmVoc0pEUXF3bnFsdlB3K3dUbWFYbjFEV0FVcXR2OEZOWENlbVo3SSsxdUlhUGJxSUhtUjlvYUVLZEpvVFoyN1U2bUQybzluL2Q5ZVZpb2FITkdVZlVRRVF3dXE0bldNam1iNUtBNEhEY2FkOUExRW5jbDQ1VnFBNnMvb1BtMnZhMW5oY1FRcnZadnM1QmVMc2pCK1NCT2V1Z0dGb1BORW0zWWNsZm52QkJxZWNDbEcwQVFUZ25PTHJlNE4xRzFnVnA4Y0dadlFxTjFhckRSQTVkQXpBczV6eDZ6MlBzaXdCZncyeThhb0RZVHpaSjd0UGFIMzhHaWlHdWsxWlB4ZUI2VVRLYlBzR2RhcDVGVmtlUUpwMHY0V01WTVl6a0pzL08wU3RjeC96VTJWeUZzUUp3Z3h2d3JPNkpFVUY4Mzc5NmtCNGYxRHo2ZUxZdUNmRkMwY2NkdkIwdHhKNStnRk1SRm5OZlRnQmVXcWpPVVRPNGF2S1N6SHBnVFBSeUt5RFVqemsrbVJIZ3VxS2dvcS85dEtDRzBJQVplNWRtM25sQmdUS3FnNGlERlltelNVZzRRdVNEL0tLM0VQSEtPNy9CZFU0LzNhSE5MTy81Q2k0aXdqYXpnNDczRWQvK3FicW41RXFFRHM1R01BbGsya0tFVjZFVzIyM2pZaDBHYUlUNVlEL2xiTEtkUjg5Y0VtcDNJVXVHc1lKUEZsZ0lZa2NDbGVXRjBiZzhYMitqZHdzTnp3emFpa1BhM0JaZXU2eElCV0ZBV0l3OENVUjMxRklndmRYOWdRejlMV1hDYUdmUFJpR2R3bEZwVWwrVDJNQWNIaUxXZ1NIcFY0VGpmSWloeXA5ZGxQRkpjTGkvbGlwMStpblkvdFI3dG91VTVxWmY1WUNOZkYyMkFyeVNyc0l3MU1McnFxZlNvaERwS2pyVU1mS2hzTHNvMmRGbVpGNDhYMWZmVHRWR2UycVp2elllZGd5cUd1cXFEeEZ3Z2xvOE8wa3l4bmNFalNvWWxOTld4ZkY0cHJsOHEzMTBYTXI2RWJpTjNtazRNQWFpQXVrYllSODl1cHRZd2g2UktJR3BNZUZqUkdYMG1ORGVTTDYzOFVnaDltWGJQNW1SUzl4aHdYVGpLelFraG5KSmlEclhOdE94YzlRdjEzeDU5b01FTXZCSFNrT0l6OUs3YSswQ094Qlh3UjBGTUw3T1JmV0tjcUxZY1pIbEcwUXFhQ2ZLQ3VkcHpEYkpsaU1UeUdnUzlpWThFZzJqUWl3Y0xyUVJRNUZEWitDbW1qY25kUnlzRWt4S2hQOU1tK3pGZWNBTWFndjA5d0hrd3JUT1VFc0J4enV1a2R5eHFCcDBaMUx3c1Zvcm5pcVZxOEZqcGNMTmoveFBzZUdzb0tpMFQxaVJuUzc1OTZ2U1U2TlFXcGcvNnVJZHdqRTUxelIvWnZER0pQTWF5QmZoVjdIL2VjejRHamIyVW8rQjNrQkFiQlR2eWluWDVKY0xDTzB0aGg3NFA0T3IwL3hXSk8wcjFYY2lIMnpWK0VHYkNVdTZITUdTdUlKazhBcU15ZEpKVFg2U0dUOTVFcnp4cURnWmg4UDFibWRkRHRVNkhXaDlkVElIYTVrUEpKZS9TamtyZXl5SjNXWFZSTnNRWUZxYVRXL01LV2l6ZzllaFY3enZlNmxnQVdtelBMMFRSUWV3d0Q4UzcwYjlDU3RNc2hmU2I3NXhJV1lFTG5keGNBOGNKRk4wRDVWZmh1QSt4QWlaejRLWU9Kb1dIczN6YjNVKy9MQ0k3WXppeVlSUmZBQ0s0ZTg4RkVLRVptUktJR0hUck5BcXpzeXIrY01rUFNsZUFZN3pKL090Sk83M2ZGY2pucnh1WTJjYmdIZmM4SzNtV1psU1ZPd1NzZFcrUUx4UDVmeGJaS2ZLblI2M1RhVTRLT0FIUzhtZlNvZm5yNWlHL1ZpZTNFbEc5aFVLZXlZZ29NelJPQ0QrT1ZZRmZ6L3R5alVrVUNlT3V6OE5QSmRtTEh1VjVsOEVIT3BlTDVuVUtFS1pXNEg1Z0VwZVFidjh2TkVvenYzNkVhUUJhKzBuNUxZckxTZGVsR2lwN2NtcHU1TkVuUmtGY3QwMXQzOUtkWE5icmRvenBubWhHMk9ObXoyaUc4UmtPTEdRb3VHZG1iNFNFSml3RStRa3ZUNDlhY21IbmFPbU1xdTZSMlMxSU9BUmRnd25LVUVRNVo5T3hXNFdQM0tDazFPekk1dHk4MWdCcGdSQi9DZ2pHaDRoTjdZaVd5bFB2aXBQSjR6Ynp4WitCSmVJTEhrNGROZ0phYlM3eEpGYVRoTnZiVnNVTUgyNCtFR0VNYzVlM3o1bnNlOWdMUGEzbzRuRHpWNitHQnBHbnRVcnJBV3E0UzMycDBtRVNBZ25SR1U4V2ZYOUZCcy9wQ01KUFJ2c0tXcFAyclk5YnR1VDhCN0VDQjZ1bUNBQ0cwaUZDeWNjMGZ1SWs4Sk9DQTFxdEZSUVlsVjVERDBWa3Z2VVFWSGgzREE3ZkdlK25WOHhjK3A4L0V0d05zdGlRTk02d1lmQjE1bk9RbUhSQStzcFhPVUc3b2RYcmJpQUhNUXd5UjVsNWlEUDNoKzJPNHc5RDVRVmhSa1l4Sy8vOWhJR3lOWFUwckRqNDRIQ2Y2MEpxaE1Bb2l3REVPbHJLM2xnaGdYelY4Y3hUSzQ2VTRxbklzbnZYd2hwT1lYRlQ1ekRnckgvWFdndmdEZytmYWxNeHI4Sld5Y2J0dzM1QzM5d1RyTUIzUmgrVStpTExjL3NxSFczanlVWlduQURYaWVQMlpFNjRYajE1VGRpQ0FVZFI3aDZMTkY1ME9rL1VoZVNZT0liMWdUbVZrbFhDYkRrM0JZWnNyb0tlS1kvcnAwY0NPVThOUENKd01tcVNRVktEODg3eHRNSmVreUhvZEx1ZHZFeVBTZnJjbHBmS01jdjJjL0dTd0wwTjRDYjA3Q2NqcDh1V253KzFacXV0SFZmM053Q3FOcXRCRDc0YytrSnhQSjh5Tm91bnlzcXJTcWlwNDlzUExIZ3VFeEdFQ2pYdG96VHVienBaS1lSbmFldllUaDh5cWdKbjl6ekFoZmlQbzBCT0h1aTkwb2w1V29UOVlVTWl5dTdKWUhSZXoxRWpxK2FNNy9vKzd1N2piVjZRUEJuNDRMTWE1Z1RWbGp2NUw1cCtESm5qMTZVb0ZmL1Brb1JXQmhJT0hjeXBqbldlVTFXbjQrTWtvSUowSGtpUUdHSStuZ0M0cVh0MkYrQURLM3dGYnF2YWEyR0VuM3JEY2xPbFc4U3FXM1NxNS9nek9IS3AxeCtSSXFMUEpKaXZ2bk9KK3VQUDZ3ZCtYUnBTTWZTWkRkVUF6c1NycEs4ZzBZY2FVN3I3VkE2bmZlWjdaT3dNVWc5S2dWa3ZPbTRnelJ4ekpnMllQQWZqcWdMU0xuWWZFaUJJd3hsYnNDU1VlL3NzUktXMDhDTHdjMDE2TDM5YVJOeDlidjJvd2Rjb212WnhycmxYL2hnZktwMC9UZW1hR3lxSGxQTUF0R0pXbW45R0lTMnJBSHBwZmc2QzZJME55SHFXb3dzZUV3Qzc2aHE3alBtQXUyd2FPcmQ4TE5qMlhTRFZKcm8wUjhmeG8zWkNzMDF4UHJodDdQT2FJVkpHd1JGcHJadHZONjdLZ3dFZ2c4SmJremtLSmV3YTZjcnk2RnM2M2xGdWRjblRJUDVhTERDa0ZTeFNlb0l3Ym9IWUJ6VGdyOEJZeU5lV1FtSGpvZzFHSUhrR3N3cGNrU0ZFbUNDNGpDbDZUREpNbUFPZUFJOEtDNk9UcWxreUpUTjZIemExNG14T3N3VkZwNE1wOStTdXBUZkd3UHlpaU5oNzZxakhQamZKY09MTnJQM3ZZT1EvbWhpbnlkWlViRngya3h6WkJ1b0hSNU1tek5ydXZZZU5IM1lkbjRtWWJKcnNoMXdHcEFPQjcrSTNOVTNFTDBzMkNrYkhPVjRFb1FEbDkxYkI3K3VhREhYNnNtTGcwVzdGd1d0TEJWanpnL2o3b0dGZzJyNzVJZlQ1cXg5YXJUOXExcHNCRFhNcFoyRC9pb3gxc3loTCthT25Ia25xL1ZUV25VdG5VQTc2RitRc05zdlRCQWEvRGVQdTh5Um1FQUNMckV1NENBeGlQckpuSjJObUM0cWNHVVJmUUFPRWRQa0ZBb1QyeHVHalc5MEtoNmZuWmNsTGNydlpzYWRoc1hHeHhlSlV3K1p0MTkzSC9kWWJpWVBBMzRGajJOLzJacjZpOFBnYUhPTGFVTTd3QjFsNldTL2VrZjdldTY3azBsL2pPcXRVNnI0ZkIxU0pMdzEzQW5YNlBGMXp3ejBBKzFuQzJ5S0MzeVNtT1hIeDgveVVqSkN0SzhpMkpCZVpzeWhVUTdtRHJmaU9wYW9pY3B0cnY0V1BrdW5WR3FuK3pmRlE4WUVQeHFlQUV1OVBhN3h3OWhtSktab0tDVjI3RXZGQWFmM2xCd2QyRldpZUZnZ0E5V2FsVGRKb1VRazRTMkdYYjJweVNrOE8reDBlWVhOQXh1RldwYWNiL0RwaUkyTU8zMGE2MU5hNXkxRERldDc1aWxyeEY4bWduRzBjTjhoeHpzOVFXVWNHbGNCaXVyTkRzeFIrUm5mbnljNHJacVpSZkM2SEgrQXFTK0F6T2tjVExEZll3VW1QTWliYXVWbExQaDZYOTMwaFVWSktaSk5XSnllcE0zeXJwek5XSTc0SkJudDh6MDBFV2kzc2drSjFwOGpvWGZSd20zK0FJQ0VSVGtZd3VNbWFoSm5VblJvUTRzbDg4ZVk3VjFXNk15b01rVm1IaGlkT3RHRHgxWjdTbFNqZnJ2eXBKeWtBK25Tell1WlJWMkFNUVBJdVdiTk9XRHNGRVBJNDJKbFQ4NjFUNVVXeUNZWE5sZWIwZVNFVm1FL1B1SGlldzRWelZlaGpmN0NnSkJZOWVHZ2k2K083SVdrb0FKR3ZCSVR6U0FNS1IvbGtsQUQ3NHNPTEJQOXBiUFI4UEd3YnlsYUZoZXMzeXZMOGVMa1RkbC9Wdk9Jbnc4Q3ByTnZHYVRzL3V1SmRQSy8xQ1cvRjZwRHRCeERLQ0lRaXZNZHBFMkJBZDBNRHA1dlpudFVtMUxZN3Q0TGYvUWlIclRTN0xZWC9VMVlqbWliWjY2RFd0ZERJSXg0SnN2Z2Q1V2Q4Zm9BVlA5U2FMOHpIOWJRNlFPbkVlSS9JbEV3SFNPbHkwbmRqcTY3MURqT2hHT2wvRHRIbktIWUVoVXZFSGZ0MmlJYm4xMnQrd2RUSnVVNnRqczNzd2pRNWRocnV1ZzFwTFNBOEJaakJka1Q4eEtpYVFsQUVpTExMU2ZydUM1NzlnQTRZdlFHMGhEdmhhQjdkNHJreERHZVRhdmVlNHpsZkRTVWFSckpiZ0loVDFyS0NSbFoza0x6cEM4am5iLzhLaGNHV0NhYTAwNkFqdkMzOHhUalJueGtwQ2V6ZVFuRDQyVUVTK3hvbzRtSVFPcUVaUW1SMzhsQ0tUY3Y1RlVEOGlJQTJFWHBGWTg5YzlyYXZUWkZ5UUltbkVobVhhcTNERmRIeEpCN05ZTzQzSlhZRDJadEZmcjA0cU1sQkQ1SkNWNHY4dFhBQWRFVEdEeStEUDF2UmlNaGJtOEhHUy9BazBxbnZmaXJRN3lXTURYVlo5YXczd3kwVXhyZUZZYWJsczFoajBwYTBsSTl5YUNtakNTYUF2QUd4MkdFNVRTV29oRUp3eWsvalM4Zm5ZRk9mbzNSNnhCMzFXbEdzWCtCOGJScHJBRVhHUnVFbFBsVTZFcUUzNnNlY1o5NnRyTk5OdjUvSFZIeE9xUFhyT21IWGdkdVN1ZU5JT3NwSmdWeWZMYkJyL0Y1Ri9uUGpnWG5EbFA5blVBR09ndHhvVitoMmRVVzIvT0tWY2JiSXlBV2MvWjhNWW1ZQ2xqK3hDdEhNYlVCcW9YeUR2Z1hISWF6dHdvRDJ5NVFZVEJodndtMVAwc0F0N0l4SHZzakxMelBESzcyaGtEYjJodVlUVzFnTW1nV2xMUDRHM3p1SU9pbEtEbXovN2Fkc3hBekJqdWdNZXh0YWdkaDJscGZReWtlVXh1VEhPcTFiWFNOc0xKMlBOSkdQNm9yREdZVm0yaVI3RUtSSDQveFN2aUw2aG8rT3hLUzU0MHZPR0lpT3JNbjQ2Z0xXdnRRZm5hamFjb0xqa0hpd1dmWWxOQmIyRlJpYlgzeU5UazMrTlNWQkZRNUYxREdsRWl3aGtQdUhCVGZIajNmYURDblFJM2QxcG1ielBKbDhwK0tFZTM5NUhYR05lbm5oVlg4UUcvcTdPY285cG9xekNUaWljWlJMUC9VWHRIbDhkcU5rbXdWMDIyVXd3eGJobzJTaExEajJ4eXhYZlB6Qm1BeGhrcWdlL3ppL09xYllQYno0TDgwN3NobU5wbkZTWEdpb1FuMjJMY3ZEamFPNTdNMnZPVGt0WEorc0lYbVRCai9XZ1hBY0dUUkNYeU9KSk1oa2IxdXZXMlVJR3dtSVladlN3aHU3ZkFKWWNnWHRSVE9oVmZpTmRBbjFzamcwQ1p6blp5ZlpMUUZ2NU5sNTVlYXk5L2FlNEhOZUdERTBGSldNYVN5T2Fsb0FMM2RwbkNCUW05RnFQS1dKajRINzZvZy8ycS9jZEluU0MwRkg5TlVYOCtXK1JmaUJnNlN6SVBDSzZWRExzVnBBZEpUUWp0VVA2ei9IeHp3YzU2d09MQmZweTUwcE9uYjFlQzUyUU05dlhuTGFRVkZWTDJqRlFDc2lwS1BLcW1XWDV6cGF3cCtZdjdscWVZOWRnTU95NkRsOHNwU0J0MzRxRHB6cU9VWDVjNHcyTEd0QUJsS2ZJQ21IdDNJTDgvVTFsOGVhTmRLWEhVcUh1a2pybThaZXBkbkxpYlpaSzRNbUg5Q1dGVkUyVTI3d1ZJdnpLZW1ua2ZTLzVvQUtjTzVQSFBFTzgzMVgxUnB4R3VPU3FuYmNLVFhZWWtpV2lrQU96aTIwSUpNanRQeVlDSFdYZnlMZ1djZmN6UlQzdWUzMXcxa1c1eU8ybjhidkJqUHgxMXZkaUNYbis0U1ZOQTY3ckpYengrR2MxZ214QTk0SDYraFZPZkppTDhUcjMrMkNYdU1qUndlRC9pQjFSUHh1Sm5CZyt4V05VTmZpL24reFlqbVArME9Yd3BXcGxSb3VNRGhralhzb1RDWlhYNXBFZ3NLZTB2a3RvUnU1c29LNEV2SDJjTVFFWlczQnJwV1pHbUtvOFMyRHFEZjUyTE5YaFRLOFdUQ0piMW0xejRUaWliczF0Y2hVUHFFVGxQYkhQQ3hkWGdZb1NZTWJLU1QwQlA4ck8wdHQzai9YRFNyNGFHb0kwLzRkczJmeG9DS05ybTRQWW1rNHlEMHRSZFdVTTBLeXhJNmVLYVlNakVEbWxvNlhmc24zL3RBRmJ1WW8xVURIMTNoMVIwazVKekc1L0tKNU5OTDEvVEFkN1Nvd291Vy9VT0NyQm92M1BsQ0JTRW5EYTNHK2hYRGJJNzJxOFBsVjk2T1pDaXpNNjBkZk00RUNicnJsS3hCa21OYUdxQVMrdzdmcXBmbS9ZVHNyc0syS0dFODFlYTdzN3M0OVFOcTVvWUEzTDZ4c21KNlZpcVpNL2hBWEtKQjV3cHlKZFlOcFdVOGZGZ0NCYmxaREE3S0lheGl0VStvNjRlc2FMM0h1SWxQYzBIL2dsb0FjZFpzSVM3VzR0NldOa2dhRUQ4b0ZJclN5aU5wblljQkI4cm5HeDBnRXhQTGNQa0l1eVlhaWR6ek9DUys5Q2JsUGpXeFdZQ3pEVGZ3SXgxQ0w0c3NkK1pIOUQrUFpkbnRIQmtnaHd0N0pjR2p0dXlwSm5yUVQyeGdrMHgybGlISWZtMlhxNmRNeVpJVEdUTDNKcHYxdGtqRFF0OC9qaHFDVnR4LzVpWlZlbGVxNlBSZWFyUzVQYmNPNXMrQ1l2eDN4V2trRklpaHFab1QvemJiVjFVd2pwZDg2eS9hRFdvczB5N2M4eHpudVE0dGYwbCtVS3FjM3dDWWpBUzRRYXZHUVF1RzZyeFUzVEtWU2RsTCtLZURLSGlTUGJROGtTd1hmVEd6MGdabDJGY2pPU2hFK3NPRjVOMXU1cEhKbnZuTW9jTklkWGhQdzdJRlZ1NXZwU0tmVWszN3RCL2QrYkZCY3dQbXBNTXB3SU5LTklJd1hXenlXbzVJM1hDMmhzNUxvMnd0ejdJM2g2TWk2MjUvdy9SN0V5QjRSOFphWitYVThtVGxHdTJFTkd0NlhWWlk0cVp5Q2pSa1p0bnljaWlYUFV2K3FkODB0REJGY080eFp1Z0JSNWo0K080bFhGQ0pjTnhtdUJrcnFrWnduaW00ZjJKbnA5ME0rRk9JSnF3UnJ0bXE0QkdhMjlPNTJKN1VKOXA2YlRreG5VemFRTW13UEljczFqV2ZJSUlqMHJ3dEg0UUxnZER5a1lqRXk3OG4wYVZkRkhWQzRMZURwN24rR0RoRkRkVU0vcXdYWEJFU1ZEQW9QUHp2M0NSalp2K3ZOZGFGaThYcGNFUU1oNDZubEJpTFpNWWxGbnFjdTFkZnlMNFZQTTRWRzNuKzl4cUVxKzBJZHdYVGFFb1VXZ1BrQXk0Z1pjR3ZheFM5UXNLalBrdGQ0SEJIVHpjaWN3M0VtMlZSU2RpMjBLWjRRRGxrb1NVNVRUNGJmWGxVckRqMGUyQ0FiRDVPY2hTTi9uSDgxaTN0dklPeEg5NUI2ZVV5U3pqU25zWk9NbGRzVDRMMkhsRmtCRmtQeUFPYXRLK3hEVTZLTUhyMG4vdDZqN3NDTHNLMk92bXhxUEMvajNkMFl6YWVZTnZhN24wRnZ3bGp0RzFaNEQvRDBNZmh6MmtrVXZRcEJzZ2twcVkwbThTMUhIaXhTTEJ4ekdJNHErcjdEU2xzOVdSM0NmRHBWaUhsVHVPRXlhMnJFaDh3bzVXeXE3Q2UyR25VRGRsaHZFV21oR1lCWTk5RlRWV3M4Y3BNREFiaXVXMXZzS2ptRXhBbVJXWDJvZDdySlVFSkhCZldEMHFPQ0had2ZHZTRFMFRuT2lJSmtFaTg3aE8xWEFxMEFUa0dyVDA5VkpjSG1vSFdacmEwNElHcnRrTFM0amJZbHU0TnkxSWdMTFBSbjB6WHNCUnhiY3NyTE0rWWtGczdMdHM5TmhwZ3JSWi80aENPVFRHd3E2SVhLaC9RWXp1UzJJUGNDVUhaQTlIYnVLOU10NnBUdit1Tkg3SVZ1QW9ETEdRdTZodGM4V0lFc1ExODh2cWZ3aFMwbmtrMm1KVjhncEg4N1lZK0NKSzc2U3ZLaS8wMU9hamR1VHBjakMwenpxaUFxM29CeGJ3a1VzSXBBMmxPbnROS1hBcmlxNDJUb1hVbCtaSnpuclY3WVd2TTVOYndJVlZSMkxDTkhSd2U2STFWRHhMUkNCWis0RnJLVzUzU2p3VnRya0VCMkdIQ0NNcno0RHZsa0dRS3RaYmlCTUU1UXZlY2U5Y3VsazdKRms4aGgxaTRuMnE1UENaTXdoU2NjMG85UjBURys5WFhKTTFJZndxQjNnQUJzN0NhYVNkcWJYL3Rmcm44Q1VNTGlxcVZYMzF3QUZ1Y2RTVlo4RmZCM2J0RlhzL1R5YjZOcklkZ1d5QTE0Uk1LRXZMNnJPUU5udWFmNTduUTdzdFNwcDBjWmJmSmNVWnlSWHBPdzVYa0Nad3RSOWdnTDZGdTNhTFJYR1NLWk1mTmRFMFc2bXE1dWFMMnJkemNQcFppc2hsbTFZaGR6WkNxRWZ5UHRRTDl0aVNrWFZGM0o1NTJMaTNweFhIUkVYenZnV0lBTWVXdEIyT2RBd2VBbEtORENDWU5NeXpIVktvODZJWHFWM1YxTVl5RVg1UnBLMnJPcVN6THJ4MjFpT2RlOUFKTlU2dXUvMWY1clpNbWtqbzF5VUNkNGFYc2FIdSs5NFRuQm5GK3Q4Ri9FMzhQUEpvc0J4UzZQQ1BsRnV3SWpKTWxlWDhQcUhOV25ISFRwaEoxS0huampmemp6Ym13ZXBULzdTWEpxMCtOdnRkSmZxN0hCYTl3cU1LdlNDMnlsOWptREZ5Ymd6ZlhMMHVxQW5PbCt4aHgvL1hyT3g4QVA1cWY0NFNJa1BZVkNPV1dQbzB6QXBNLzd0R1pzTElpNXErSFpsdGZTWmVmc3l2SndYSXpucHlOKzhPMTRtS3FqbHlVUGFyK0pVc0EzVEp5R21HZ0pZdzBCR1BnSDFrTlN1L29DWUJqajROT2hiOWdaZG04dXRyMDBOSGdmb05uLzlvcU9obldzSG05ZXRyVWx4WEJRZjNHME5kT29mSHJjSXYrSTZLYm1XRVkycDlxdzZZZktUL1NpZ3hUa3F0ZkE2QTJOUkszaVJORkY4a3RGZjhFOHY0dFdYaFRpV3REemVXWXFKNTFibDlBZnBQdFB6cTNMdFB4aklrTkdIWEJobk5pdXFBZzRQTXRTblY0ZGtrY0xuWkZjekh6VFJUcWlBYmFEb0MvcUFnbDNYeGFwS1E3akVNL0lBRXpCcTRSVjk0SGU2eDIyYmwxTWFaYXQxV2hmQWFmSXF6Wlk5a3pwVk1NWmQyZDNoTDRIaFZtNXJCVmpRNitrZVI0dFkzcCs3SXJNSFJiYldOMjRxVmp5VGVjRDl3cEZCY3NXTWU3SWxWekFwZ0xBaE5NSi9UWGNvY3FEVXdJR1ZHNVRYc04vVzNRMk9DaEM1dU5VZlZ4a0U5QXdSOU5oR1c3ZGxheWF2UjNwM2FFTWp4ZWhkVmxXclQ4SzI5ZlRVWjBLZ2VHRnl5ZHhUakFuelBNRVNYTTlPeU5qRHJCcGhCY3NkeURzMzVXYWNjUHltY25aSG1Nam9obWVYUzZYR3N6QUpBTW9wVjMzUzQ5b21GT3E5WWZnNFNReWhSNWJtOU8wdmZCR05ncytTTHhsc2ZxbnZHdFhiWnRFajdYd1BKbWZNckIxMm1iZWIwb09CeCt1aWRFL1ZYd29kOXkzUnEzNDRiQWRRNmkyZXgzSTVpanllS1VJZ2dIZXpjazRwYzhrT2RYcGJnR0plZnc1Y3RnckdOaGFFVlFQQ3FjVkVTazJuY2RqSlU5ZnBwMGhtV3c0TVh4bjIyNWM4U0FlT2hGcVZVM1NybEMrQlN3R1REaVJyY01OY2VXTjYzNDRmS2NZbEVyV1MyMkhtWXZWdVZQRzNMa3hoUzZ5NnpvVXp2a2dlajE1aGw2RFBBK3Frc1FjcGExWU1kVnBQTXFWaitHaHB5TXpCNXpIejlGd3JWZkk2RGtXbXNscnlPQlVKSmpmQXRjbmhrOTB5L29ibXN4TmgyN2c2OHMwUWZIRGlvNTdGQTdITUIzTVRoN0p4ZDQvUW5mYmttOCtOKzZvRGhqWkI0dWhZNDFXcllySDZtY0ZycFQvVGc3WGg2aXhYOVJlMjZxeGs3ZVNIRkR5bTJMY1hGTWdHVHBINWRZaWJFTHljOUhWSXhhL3dWRno3NDB2T2krV1U5QzZDaWdTR1J1aDNPYTIzbUxpWjBiaXdVWHVVckZnSmFFQmsxeWNydnYrbFc5cXFqVDZxaUZxTjU2RmlGYmRwTGxpeU40WlVwMi9vaHZWb0dORThHWGxlSThGUy90RVdlcmZJV2dkUG50c1ZHc3FwZ2hPRDZMT00vMVFLdUVTRUJpM1QxOTRDcXUwTzhyTGJrdldoS1lnZlNuRWNlczRqSE9HMXZmZmh0UTM2WjZoMmwvbmwyajd3Z1hiSFg5aHVXMDNUWFpyMkZLRWdnVFpLR0tsTnoyY0NYUjhrVHJzQWVUS0JXZkpiTzU3YmhPY0s4b3UwUlBKSThuQlJjNk4ycndBb21kdHRFNkpaUW1VL1RJK3RtdTF5UEhlaGl0bUVuVWl4NExtc0RuSlQ4dUY1d3o4Q0c2dFkzQndaYmh3bm1pZ2ZXdmI2VUprekRFVng0NEhHcXoxb3BwNGpLWWlENjFyb090ZW5OTWtZb0l0TWtRNjBIdzJZemZybC9XVUdZMW5PQ0JJTDJkN1hLR1dlTm5JZHpYSjZLMFgrUWgwbG5HVWJiQ3E0SnhaakxHZXJ0Y3Z5cE9reEZZVTBtdDBIZ282aGsyUzVJcStjUHhZd3VsUzg4d1cxbFgvai9SdjJiRHdhc2hYK0dGUnFPZHBETHdBV1BHaWozSTFwbmQxZmQ0a3FxRlJMTG1RZ2pTalZMNjEzZVVpYVgzQWlxTE1qNXl6S3RuZUE3WlZSd00rNE01aGp4M1N1cUJzNFNWVFQ4dDBmeVJEUlZlSDZ4ZFp1SUJHbTMydHdONmFDRk8wbVY0UExqU2VLeDBGSlRCOTBMSXZxaVJONDVrTUE0NGFWdkxZaXR0cDNQN0FvaENZaHB5b3JoemlkTzZMSkYwQk1FZWlES1MrREdNdzl3dHIrSE1UQWduRG9VeGhWT3hRTU1kZ2dUay9DL0N3SWJZWC9VbSsyN3JDNmREcjRrNHNxR1BZdnVFNXBRRkVXTHlaK005cW94QndhL2JEVkg1V1NFQmExeFpvd3RuUGlYYUVKeHFRbjZ2eDVSb0FFNE80S1JDdVFQSCtONnBhcm9HUHhDYXd3V1lnbjc1TUZRbzdTSk5ZUnFFMDI4NDJFMTQ1d1BQd2dLVjJQby9ETktpKzJuYkRqdmtMSWViUUxwREFjSk5mSTVnanlJbEpUeHBGYTFwRVJDL1h0OWlDekx5dVkrK21TZ2ZGRnJNaUUyeGFRdHlrUFZPVlRSWHY2aHBzVWRUVEExOUpXN0lodVJ3V2pRbk9sS3Qyb0k3eHpEbTQvaGFrMU8rWGREVGdxQW9GdzNyMkE3MHJhSXRsZVB1R1JBSTk4OWZCY0psZjNpdDRoeDJFN2syWFo1ZGxMaEx2d1h6UXRUZGxQL1A5YmpwdDZrb1hmR1ZtcXVZU3NkR2Z6cUFrYW13NFV2WW12Q3BkSlJIYS9IcmZUSkhuT2dwdVdNaWFvRzNlUTl2QTBtTG4wSTEvUWxLTmhYQzhwZU1OdmVjRWJTcVpZekovN0FSRi9uUGVVSGQ3RkxxZTFSOGVoV2R0MExtY01MUlQwZW80QWd0SjlBSzltbE12MlFJZFBOem1Gbkk0Q0ZNTlFSRDJpQXM1citpU3RJMzFEekR4REIxS1E5RHV2TmtUOVF5eW00Y3VUY0dRVGNBNjFkMjVhY2dNaVA5bDNJbGYzTkZNaURkajRpZG9EbUJGU0d3clVwRDRrSEFEN2oyWTJsTDR6TkxQdHVmZ28rZU9FRVp2d29aaG9CbWtBK05mKzFYV2pEMGtwVE5UR1RWYmJkTDMvKzF2NEFiQzF3dGxjdlhkR2YxOVpMSy9yWEMvTnNFY0xsUGdiREhFb3NlbVBWOGNiRnF2TmwyTEpaUFpYQXBzODl3NFNKc0tQK0dQSUh4REllRzhkSDZQRnNPQ0VVUkJvS0duOXFQQkpGMm9UUDd0alZvUlRuM2dJYVh0TzZVWFdOMUFhOTJkRnllVHZwZ3NFM05sdUdXQkVMcG1rZUc5ZDExNnhuTGpLRU85NHJsMmV5bmNUeHdlb3Y4bjR0MGFBV0xqV0ZLVEREdEZnQ2phS1lEQ1pJeTZkTHlyMGd3NDB6V0VCQndvTUxSdGZ3T1E3QjVGWHBteE03Q2ZYRXZoWEhCU1JlNTNYWDNKT25VbytxWUpzTUVQTTZsSGpSaXdjQmk4WHJFbWs0aW11K0w2aG82eFg3WVllRmlGRDhkd2dpWmpzb21TY25sTU1lOFpOVkUvQ09Od3NzUlJ4aHdsUGMvTVVTVGZmM0ViT0NUNUoweDMzWlhCNE96OGQ1enMyZm9UcTFSby9UUmJLMUg2S1ZJVWpnWGFLUi9FQmRvUm42R2N4L2lrQ1VsY3M3bVFJaHA2WFd1OFpQK0ppbHF0SGl5TTh1bUF1OTNOdUlnTTlMU25QZkcvMnZVaURWd1RkN0dMMmRhY1ZZbXRET25LYUdmTUw4QUUwYmVmRzZNSE1yRGFvMmdYVzRQYkpLVGhOaTZncXAxV2swc1BYbXN6WG1HVUxEdkxKUlBGcnlvZUJHYTNWTnR0WGUxZFRVMWtoZzl5SWdIS0tibUloSzFzSXViV3doN0JiaHBhUVhQR3NycVh6ZWZFRkdnZCt2ZVRrVW1TWWNab0NYblBYR1hrTmdWOG80NXlLMGhuOUVCQmlYaWhyNnZUZU1xeTgyVkJteWFiVlFVWFpvWVhUYVVkd0xrdzhoVm9MTlpSYkpOM1Rpekprck5MV2pEQmNYcjJMZ1J3Y2JadFZxeVhFYkpPdTdwbWxrMFRDQjYyaVJZc0RZRXh1SjdjWjRjWXpjN1RCQlozUkNXZVBUV2dZK3YvdTJUMVdXbkJxbWZWWVlMVjNoY3YyMDVKOW05eFdSYkM0UDhkT09LOG9QYkFSTys1VHFDS0Jyemp0SGh4cWVsOGJNQkNIajEyUEd2ZkVkYzdoaU0rUFdVcnpQWnVlZkY1K3NVT2k0UmQ1UFFCZG14cFk2U2I4YzZEOERwbFRpV0libDhBN1o1QmdkUDVRa0JURThFSFZXTHdTRWpJbk5nSlVsZllhQVFSalZjS01MRmJmaEF1c0hRWTd3bC9oVFZEWHU4aEhhTTAySHp5UFlITVNvY1c5N3BXQ1lVNmhOUzVNMjdZbHI1ZjdWZVhhb2lvMHR6RUlFU2FrN0dXdUl2b3FhVGJQNDVXRlpxQ3pMNWtLNEd2cWIrcXpnZlBGZWlma2p6UlJQZFRNSFJaaEVxZVVBWjE4VDRmS2ZtblV0dFQ1eE5kWFJzSktKVUltaEVKSHNCcVlBaHRDWTJRQ2czc281c0hzZVMwWS9lMjdacUhtTW9mT1Y3a2VvTkMrWEVkNS96bDBOK2tVVFBQeTZPWU1qQWFxZWg3V1M3cDZ3NFlsUjZJODRqSTgrbThwNlFjTkdKT3BROUpGalV6MWdvcE1Uc0JnZVYyTjRxRUNNYWtnOU9jbWdDdzZvbEZpVXhSZXAxQUc1a2NKTlpLUjZ1WWNyNkZYN1pRV2J2TmNDek02ZjdpOEN2TjFrVXR0NkxhZmlsWEFjWTdlR29XWjN3aUd3YUJueFdOV1UrcjBoWVZuWnoxbXBSMFhjd0NjSGozb3N5alZvV1o5cDVLRFdVa21ST25GRCtJQWlyWmlPclBiSGxUemdIbTJ4Vmc3Q3ZlMExpU0EvNlR5dXFncEdVd1RFUERzS05EQndBUW9aM2tpWGxhT092ZCtWdGhCRDdYR0lzdzlWTzI0bmdTd1c1QXNCQ25LUCtRUGhweE5ydmExT2VaTkVmZk9DVWFKcTBDSUI0dkU1T3JkSEZPbFZMOU5KMGZBdFVkYVVHbTB5elIrMUxkaEJWUUhPL005UVFtL2JCZUhRMm9IYS9oOERyL1NsS01uZWNxOCsrdFNWZ2NkN1JSN1pUNGFLdXRPa2pZdnpHd2hGZFhxZkdEdXRIMUpoU1IrQVJobDlVOUxueEpKeUJIU1YzWjc3d2JnZ09HRVpvRTBETXBuVktJTkRFUlZ0a2tyYWY5elpuaEt2b3NjTzc4MlVuUTZkWVN6THhCWnRTdkVicWZYU29hRDhLdzFrck15TkpkSEMreGpYa2h0N1cxUkhCaXFiMUVURXNLdFBzdUhzZmVlNDRGM25POTV5UFdnOThZYnhJQi93OTZERGNKN3RHU3VjMGdHQ3BaMWhybWxDZWlZcFJiYXoyektGOGM2TnI0SjdGV09jMDY1T2lEZzdXQ2hjV01kdGdxT3BFanFLZHg1eEtOa09iN1BlQm9HZ3NIelNQMWNaRjdFMi93Z0drYTNEaWhoRm9pL1BhVGYvNnVvdHNlb2JJeEhaR1NucFVQMG5ad1FLcWcwdkdyTm5mLzRVOGJkWnNJQ3FkazJCMjA4Y2xkMTJENjVEVk0xZUc2Sy8yVDRBZXlNVzdDeHVobVdpdkFUK2drbUs4TDlHUTNSeXY1MUQ5MlZJUE5LZDRZcUFxUEJKSzlubUFJOWFKTGJydHZtWnpvNXl3M0RlUVBIWTd6Q1RsSElkNlNMY3Bud3oxM1AvMXNZc0ZLUFYyRW45RjZsaDVEdUpHQkUvNHFTQi9rTUFwbHdseG5LZ1ZtZC9YWkordnBIbXhua3dGZ1VNVmZhNjYvclBsRjZidUhoMjNLNVFxaE1RMkVlZkVCZ0hnV05SdHMzNWlyZFU3VHQrUkV3TENNclVZenpKUWZVK2dDMXl3SzFLQytleDlZWjBmbE0wZUhMNU9qNm5jWGhJQTNxMVF0NXhjbUVUa1RGS1ZqemwwN2xtWHBMdnJXUWpLZ0V6TTVNWXYyRGVHdTJ5NjljbWtrYXdIR0VnczZSMEdGRmRUZGtTakQ2YmFUNWZna2dRRCtNQUEyOThDOEFoUjFyVHRZYWZLMW01Y2VnOHYwWUw4K3diYWVrMGc1bGpCNzBlZUFXM2RHekc2L3pzbGpjQTJrKytGczBFYzZqSXNGNTRIRC9Tc3pFRmNpanpvUWI4MW44SGF4MHI1V0Q0VVd3S2IxSllOc3pCYXU5UGZleVQrQWlEcStOUkRxTkpFL3J5WmNzaGM4MGhrV2xDc0EzeUw3NGhqSjFxbzlsN2pYRUoxNXJNUXFwaFNKeWhTUzc0OTA1b2xOTlJYOEdEQVBmQTBxNTVjbTVNbDVQZ0V4dnZaOXVaMnlIVk1tN3JTMmM2NWdNNEhZUjh1YlkzMU5mK0duRzg4bHJFd2ZKY09MSjIvREpwQ0lJZ20wcHRnYnZsOFUwSzA1dEY2cDJGWk1yNHFEY3oyaGZnN1o2WHN1TVV6dm1IUWEyLy9yKzI2alcxTGhJOTh6T2tTMkhLaFU3YTNjenBSMGVsTDlRSlp3L3V3aG41YnY3U0loeXVIWXNRbnVkclpveU91SHZsVHg0TWZaSzhycHZ2TTcwOHNPaGlhdWFqelZFTkhLWHE2eVd4S0ZielR1UmJQKzRCbXBraTJFb3BQODhpcTZvVEhYczJiR1E1eUZTRWJwbWZXRjlZVDMyTjhEdjE1N3NBaElnRndFbldnZ1lqOWdDanl0aUJJZENRbGhabmsvUTNMR2d6dW02Skk2QTlJcE1qSHBiMzR4bTJQWEFjcDh1ZXUxUldlUEZ5cEVHeTM1STZ0c2dOTFdIaFFHWDFENVNBT2lTZ3dQT2QyYmJqRDhldExWcExJR21LZDdJcHI4amwvRkJjeUZJR2pOL0t6Z3FseFZ5NzVPb1Q0QjgzalNBRlNhVTdBUGRvcStyaWFGSEJlUjVrKytza3ptS1lnNGc2ZkVFSUxaaVljd0FXUzlHVDdUZEVVUUZMWUh5OCtldWNLaXI4bWdreXNtemF4M1RiVzdJelNaV1EzMXN4YTJHK3FjZlVuNEtsb3ppRjd5cTQ3azVXcnVtWk1vZVVLV2pQVXRwZ3pIMVF6M2k3SWdXeVBaN1RNK3BKam9HS3RvTDAveEM0WDBYRXB1dlZlbU9iUXlqQlF6UE1DeVJaQVR3TTZScXhoQTU4WkVYQWV4VFkvdnNNdEI0eitaZmI1SUxja2lnOGs5VHJxYVJJcHIraGhXQjR6SHVBNU9SOWFYaWJDd3VMZ1VPeVhBQXdhSklmVC9RVFZGTjhHS1hucENVcDlldzF2dUM1bEtkZktNTWhtaUxmN1Y1S0pBQVx4M2RceDNkJzt2YXIgZz0na25pdHNhaWwnO3ZhciBlaWQ9JzNTdUFhTXkxTnJLbWtkVVAyNVd1MlF3Jzt2YXIgc3NfY2dpPWZhbHNlO3ZhciBzcD0nJzt2YXIgaGFzaGVkX3F1ZXJ5PScnO3ZhciBjYnM9Jyc7dmFyIHVzc3Y9Jyc7KGZ1bmN0aW9uKCl7dmFyIHE9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19LHU9dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPT0iZnVuY3Rpb24iP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09ZC52YWx1ZTtyZXR1cm4gYX0sdz1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGQ9YVtiXTtpZihkJiZkLk1hdGg9PU1hdGgpcmV0dXJuIGR9dGhyb3cgRXJyb3IoImEiKTt9LHg9dyh0aGlzKSx5PWZ1bmN0aW9uKGEsYil7aWYoYilhOnt2YXIgZD14O2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgbD0wO2w8YS5sZW5ndGgtMTtsKyspe3ZhciBmPWFbbF07aWYoIShmIGluIGQpKWJyZWFrIGE7ZD1kW2ZdfWE9YVthLmxlbmd0aC0xXTtsPWRbYV07Yj1iKGwpO2IhPWwmJmIhPW51bGwmJnUoZCxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfX0sej1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6cShhKX07dGhyb3cgRXJyb3IoImJgIitTdHJpbmcoYSkpO307eSgiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuaT1udWxsfWZ1bmN0aW9uIGQoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBmP2M6bmV3IGYoZnVuY3Rpb24oZSl7ZShjKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaj1mdW5jdGlvbihjKXtpZih0aGlzLmk9PW51bGwpe3RoaXMuaT1bXTt2YXIgZT10aGlzO3RoaXMubChmdW5jdGlvbigpe2UudigpfSl9dGhpcy5pLnB1c2goYyl9O3ZhciBsPXguc2V0VGltZW91dDtiLnByb3RvdHlwZS5sPWZ1bmN0aW9uKGMpe2woYywwKX07Yi5wcm90b3R5cGUudj1mdW5jdGlvbigpe2Zvcig7dGhpcy5pJiZ0aGlzLmkubGVuZ3RoOyl7dmFyIGM9dGhpcy5pO3RoaXMuaT1bXTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoOysrZSl7dmFyIGg9Y1tlXTtjW2VdPW51bGw7dHJ5e2goKX1jYXRjaChrKXt0aGlzLkEoayl9fX10aGlzLmk9bnVsbH07Yi5wcm90b3R5cGUuQT1mdW5jdGlvbihjKXt0aGlzLmwoZnVuY3Rpb24oKXt0aHJvdyBjO30pfTt2YXIgZj1mdW5jdGlvbihjKXt0aGlzLmo9MDt0aGlzLmw9dm9pZCAwO3RoaXMuaT1bXTt0aGlzLkQ9ITE7dmFyIGU9dGhpcy5BKCk7dHJ5e2MoZS5yZXNvbHZlLGUucmVqZWN0KX1jYXRjaChoKXtlLnJlamVjdChoKX19O2YucHJvdG90eXBlLkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBjKGspe3JldHVybiBmdW5jdGlvbihtKXtofHwoaD0hMCxrLmNhbGwoZSxtKSl9fXZhciBlPXRoaXMsaD0hMTtyZXR1cm57cmVzb2x2ZTpjKHRoaXMuSikscmVqZWN0OmModGhpcy52KX19O2YucHJvdG90eXBlLko9ZnVuY3Rpb24oYyl7aWYoYz09PXRoaXMpdGhpcy52KG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZihjIGluc3RhbmNlb2YgZil0aGlzLkwoYyk7ZWxzZXthOnN3aXRjaCh0eXBlb2YgYyl7Y2FzZSAib2JqZWN0Ijp2YXIgZT1jIT1udWxsO2JyZWFrIGE7Y2FzZSAiZnVuY3Rpb24iOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZT90aGlzLkkoYyk6dGhpcy5DKGMpfX07Zi5wcm90b3R5cGUuST1mdW5jdGlvbihjKXt2YXIgZT12b2lkIDA7dHJ5e2U9Yy50aGVufWNhdGNoKGgpe3RoaXMudihoKTtyZXR1cm59dHlwZW9mIGU9PSJmdW5jdGlvbiI\/dGhpcy5NKGUsYyk6dGhpcy5DKGMpfTtmLnByb3RvdHlwZS52PWZ1bmN0aW9uKGMpe3RoaXMuRigyLGMpfTtmLnByb3RvdHlwZS5DPWZ1bmN0aW9uKGMpe3RoaXMuRigxLGMpfTtmLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGMsZSl7aWYodGhpcy5qIT0wKXRocm93IEVycm9yKCJjYCIrYysiYCIrZSsiYCIrdGhpcy5qKTt0aGlzLmo9Yzt0aGlzLmw9ZTt0aGlzLmo9PT0yJiZ0aGlzLksoKTt0aGlzLkcoKX07Zi5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3ZhciBjPXRoaXM7bChmdW5jdGlvbigpe2lmKGMuSCgpKXt2YXIgZT14LmNvbnNvbGU7dHlwZW9mIGUhPT0idW5kZWZpbmVkIiYmZS5lcnJvcihjLmwpfX0sMSl9O2YucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtpZih0aGlzLkQpcmV0dXJuITE7dmFyIGM9eC5DdXN0b21FdmVudCxlPXguRXZlbnQsaD14LmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGg9PT0idW5kZWZpbmVkIilyZXR1cm4hMDt0eXBlb2YgYz09PSJmdW5jdGlvbiI\/Yz1uZXcgYygidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBlPT09ImZ1bmN0aW9uIj9jPW5ldyBlKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6KGM9eC5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxjLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxjKSk7Yy5wcm9taXNlPXRoaXM7Yy5yZWFzb249dGhpcy5sO3JldHVybiBoKGMpfTtmLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7aWYodGhpcy5pIT1udWxsKXtmb3IodmFyIGM9MDtjPHRoaXMuaS5sZW5ndGg7KytjKXYuaih0aGlzLmlbY10pO3RoaXMuaT1udWxsfX07dmFyIHY9bmV3IGI7Zi5wcm90b3R5cGUuTD1mdW5jdGlvbihjKXt2YXIgZT10aGlzLkEoKTtjLkIoZS5yZXNvbHZlLGUucmVqZWN0KX07Zi5wcm90b3R5cGUuTT1mdW5jdGlvbihjLGUpe3ZhciBoPXRoaXMuQSgpO3RyeXtjLmNhbGwoZSxoLnJlc29sdmUsaC5yZWplY3QpfWNhdGNoKGspe2gucmVqZWN0KGspfX07Zi5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihjLGUpe2Z1bmN0aW9uIGgobix0KXtyZXR1cm4gdHlwZW9mIG49PSJmdW5jdGlvbiI\/ZnVuY3Rpb24oQil7dHJ5e2sobihCKSl9Y2F0Y2goQyl7bShDKX19OnR9dmFyIGssbSxEPW5ldyBmKGZ1bmN0aW9uKG4sdCl7az1uO209dH0pO3RoaXMuQihoKGMsayksaChlLG0pKTtyZXR1cm4gRH07Zi5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsYyl9O2YucHJvdG90eXBlLkI9ZnVuY3Rpb24oYyxlKXtmdW5jdGlvbiBoKCl7c3dpdGNoKGsuail7Y2FzZSAxOmMoay5sKTticmVhaztjYXNlIDI6ZShrLmwpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImRgIitrLmopO319dmFyIGs9CnRoaXM7dGhpcy5pPT1udWxsP3YuaihoKTp0aGlzLmkucHVzaChoKTt0aGlzLkQ9ITB9O2YucmVzb2x2ZT1kO2YucmVqZWN0PWZ1bmN0aW9uKGMpe3JldHVybiBuZXcgZihmdW5jdGlvbihlLGgpe2goYyl9KX07Zi5yYWNlPWZ1bmN0aW9uKGMpe3JldHVybiBuZXcgZihmdW5jdGlvbihlLGgpe2Zvcih2YXIgaz16KGMpLG09ay5uZXh0KCk7IW0uZG9uZTttPWsubmV4dCgpKWQobS52YWx1ZSkuQihlLGgpfSl9O2YuYWxsPWZ1bmN0aW9uKGMpe3ZhciBlPXooYyksaD1lLm5leHQoKTtyZXR1cm4gaC5kb25lP2QoW10pOm5ldyBmKGZ1bmN0aW9uKGssbSl7ZnVuY3Rpb24gRChCKXtyZXR1cm4gZnVuY3Rpb24oQyl7bltCXT1DO3QtLTt0PT0wJiZrKG4pfX12YXIgbj1bXSx0PTA7ZG8gbi5wdXNoKHZvaWQgMCksdCsrLGQoaC52YWx1ZSkuQihEKG4ubGVuZ3RoLTEpLG0pLGg9ZS5uZXh0KCk7d2hpbGUoIWguZG9uZSl9KX07cmV0dXJuIGZ9KTsKdmFyIEE9dGhpc3x8c2VsZjtmdW5jdGlvbiBFKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24mJndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uLnR5cGV9O3ZhciBGPXdpbmRvdy5sb2NhdGlvbjtmdW5jdGlvbiBHKGEpe3JldHVybihhPUYuc2VhcmNoLm1hdGNoKG5ldyBSZWdFeHAoIls\/Jl0iK2ErIj0oXFxkKykiKSkpP051bWJlcihhWzFdKTotMX1mdW5jdGlvbiBIKCl7dmFyIGE9Z29vZ2xlLnRpbWVycy5sb2FkO2dvb2dsZS5jLmd0cz9nb29nbGUuYy5ndHMoZnVuY3Rpb24oKXtJKGEpfSk6SShhKX0KZnVuY3Rpb24gSShhKXt2YXIgYj1hLmUsZD1nb29nbGUuc3R2c2M7ZCYmKGIuc3NyPTEpO2lmKGQ\/ZC5pc0JGOkUoKT09PTIpYi5iYj0xO0UoKT09PTEmJihiLnI9MSk7YTp7aWYod2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSYmKGQ9d2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKSxkLmxlbmd0aCE9PTApKXtkPWRbMF07YnJlYWsgYX1kPXZvaWQgMH1pZihkKXt2YXIgbD1kLnR5cGU7bCYmKGIubnQ9bCk7bD1kLmRlbGl2ZXJ5VHlwZTtsIT1udWxsJiYoYi5kdD1sKTtkPWQudHJhbnNmZXJTaXplO2QhPW51bGwmJihiLnRzPWQpfShkPXdpbmRvdy5uYXZpZ2F0aW9uKSYmKGQ9ZC5hY3RpdmF0aW9uKSYmKGQ9ZC5uYXZpZ2F0aW9uVHlwZSkmJihiLmFudD1kKTtiPWEubTtpZighYnx8IWIucHJzKXtkPXdpbmRvdy5fY3NjPT09ImFnc2EiJiZ3aW5kb3cuX2NzaGlkO2w9RSgpfHxkPzA6RygicXN1YnRzIik7bD4wJiYoYj1HKCJmYnRzIiksYj4wJiYoYS50LnN0YXJ0PU1hdGgubWF4KGwsYikpKTt2YXIgZj1hLnQsdj1mLnN0YXJ0O2I9e307YS53c3J0IT09dm9pZCAwJiYoYi53c3J0PWEud3NydCk7aWYodilmb3IodmFyIGMgaW4gZilpZihjIT09InN0YXJ0Iil7dmFyIGU9ZltjXTtiW2NdPWM9PT0ic2dsIj9lOk1hdGgubWF4KGUtdiwwKX1sPjAmJihiLmdzYXNydD1hLnQuc3RhcnQtbCxjPUcoInFzZCIpLGM+MCYmZ29vZ2xlLmMuZSgibG9hZCIsInFzZCIsU3RyaW5nKGMpKSwoYz1hLmZidHMpJiYoYi5nc2FzcnQyPU1hdGgubWF4KGwsYyktbCkpO0UoKXx8ZHx8IWEucXN1YnRzfHwoYz1hLmZidHMpJiYoYi5nc2FzcnQzPU1hdGgubWF4KGEucXN1YnRzLGMpLWEucXN1YnRzKTtjPWEuZTthPSIvZ2VuXzIwND9zPSIrZ29vZ2xlLnNuKyImdD1zZyZhdHlwPWNzaSZlaT0iK2dvb2dsZS5rRUkrIiZydD0iO2Q9IiI7Zm9yKGsgaW4gYilhKz0iIitkK2srIi4iK2Jba10sZD0iLCI7Zm9yKHZhciBoIGluIGMpYSs9CiImIitoKyI9IitjW2hdO3ZhciBrPSIiO0EuX2NzaGlkJiYoays9IiZjc2hpZD0iK0EuX2NzaGlkKTsoaD13aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLmtPUEl8fG51bGwpJiYoays9IiZvcGk9IitoKTtrPWErPWs7dHlwZW9mIG5hdmlnYXRvci5zZW5kQmVhY29uPT09ImZ1bmN0aW9uIj9uYXZpZ2F0b3Iuc2VuZEJlYWNvbihrLCIiKTpnb29nbGUubG9nKCIiLCIiLGspfX07dmFyIEo9ZnVuY3Rpb24oKXt2YXIgYT1sb2NhdGlvbi5ocmVmO3RoaXMuaT10aGlzLmo9IiI7dmFyIGI9YS5pbmRleE9mKCIjIik7Yj4wJiYodGhpcy5qPWEuc3Vic3RyaW5nKGIpLGE9YS5zdWJzdHJpbmcoMCxiKSk7Yj1hLmluZGV4T2YoIj8iKTtiPjAmJih0aGlzLmk9IiYiK2Euc3Vic3RyaW5nKGIrMSksYT1hLnN1YnN0cmluZygwLGIpKTt0aGlzLmw9YX0sTD1mdW5jdGlvbihhLGIsZCl7SyhhLGIpO2EuaT1hLmkrIiYiK2IrIj0iK2R9LEs9ZnVuY3Rpb24oYSxiKXthLmk9YS5pLnJlcGxhY2UobmV3IFJlZ0V4cCgiJiIrYisiPShbXiZdKykiLCJnIiksIiIpfTtKLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIiK3RoaXMubCsodGhpcy5pPyI\/Iit0aGlzLmkuc3Vic3RyaW5nKDEpOiIiKSt0aGlzLmp9Owp2YXIgTT1mdW5jdGlvbihhKXt0aGlzLmk9YX07TS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pfTt2YXIgTj1mdW5jdGlvbihhKXt0aGlzLk49YX07ZnVuY3Rpb24gTyhhKXtyZXR1cm4gbmV3IE4oZnVuY3Rpb24oYil7cmV0dXJuIGIuc3Vic3RyKDAsYS5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PWErIjoifSl9dmFyIFA9W08oImRhdGEiKSxPKCJodHRwIiksTygiaHR0cHMiKSxPKCJtYWlsdG8iKSxPKCJmdHAiKSxuZXcgTihmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldLFE9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTtmdW5jdGlvbiBSKCl7dmFyIGE9QVtnXTtpZihhKXthPXooKDAsYS5hKShwLGZ1bmN0aW9uKCl7fSwhMSkpLm5leHQoKS52YWx1ZTt2YXIgYj1bYWEoKV07cmV0dXJuIGEoYil9UyhFcnJvcigiZiIpKX1mdW5jdGlvbiBhYSgpe3ZhciBhPWxvY2F0aW9uLmhyZWYsYj1oYXNoZWRfcXVlcnksZD17fTtiJiYoZC5xaD1iLChhPShhPWEubWF0Y2goL1s\/Jl1zdGFydD0oXGQrKS9nKSk\/YVthLmxlbmd0aC0xXS5tYXRjaCgvXGQrLylbMF06IiIpJiYoZC5zdD1hKSk7cmV0dXJuIGR9CmZ1bmN0aW9uIFQoKXt2YXIgYTthOntpZih3aW5kb3cuc3QmJihhPXdpbmRvdy5zdChsb2NhdGlvbi5ocmVmKSkpYnJlYWsgYTthPXBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS50aW1pbmcmJnBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ\/cGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydDp2b2lkIDB9aWYoYSl0cnl7dmFyIGI7KChiPXdpbmRvdyk9PW51bGw\/MDpiLnNlc3Npb25TdG9yYWdlKSYmd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZWlkLFN0cmluZyhhKSl9Y2F0Y2goZCl7fX1mdW5jdGlvbiBVKCl7dmFyIGE9ZWlkLGI9bmV3IEo7SyhiLCJzZ19zcyIpO0woYiwic2VpIixhKTtyZXR1cm4gYi50b1N0cmluZygpfWZ1bmN0aW9uIFYoYSl7dmFyIGI9ZWlkLGQ9bmV3IEo7TChkLCJzZ19zcyIsZW5jb2RlVVJJQ29tcG9uZW50KGEpKTtMKGQsInNlaSIsYik7VyhkLnRvU3RyaW5nKCkpfQpmdW5jdGlvbiBiYShhKXtpZih3aW5kb3cucHJzKXtYKCJwc3J0Iik7c2N0bSYmSCgpO3ZhciBiPVUoKTt3aW5kb3cucHJzKGIsYSkuY2F0Y2goZnVuY3Rpb24oKXtWKGEpfSl9ZWxzZSBWKGEpfWZ1bmN0aW9uIFcoYSl7WCgicHNydCIpO3NjdG0mJkgoKTt3aW5kb3cucHJzP3dpbmRvdy5wcnMoYSkuY2F0Y2goZnVuY3Rpb24oKXtZKGEpfSk6WShhKX0KZnVuY3Rpb24gWShhKXtpZih3aW5kb3cucHIpd2luZG93LnByKGEpO2Vsc2V7YTp7dmFyIGI9Yj09PXZvaWQgMD9QOmI7aWYoYSBpbnN0YW5jZW9mIE0pYj1hO2Vsc2V7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDsrK2Qpe3ZhciBsPWJbZF07aWYobCBpbnN0YW5jZW9mIE4mJmwuTihhKSl7Yj1uZXcgTShhKTticmVhayBhfX1iPXZvaWQgMH19YT1sb2NhdGlvbjtpZihiIGluc3RhbmNlb2YgTSlpZihiIGluc3RhbmNlb2YgTSliPWIuaTtlbHNlIHRocm93IEVycm9yKCJlIik7ZWxzZSBiPVEudGVzdChiKT9iOnZvaWQgMDtiIT09dm9pZCAwJiZhLnJlcGxhY2UoYil9fWZ1bmN0aW9uIFMoYSl7bmF2aWdhdG9yLnNlbmRCZWFjb24oIi9nZW5fMjA0P2NhZD1zZ19iX2UmZT0iK2EsIiIpfWZ1bmN0aW9uIFgoYSl7c2N0bSYmZ29vZ2xlLnRpY2soImxvYWQiLGEpfTtuYXZpZ2F0b3J8fChBLm5hdmlnYXRvcj17fSk7dHlwZW9mIG5hdmlnYXRvci5zZW5kQmVhY29uIT09ImZ1bmN0aW9uIiYmKG5hdmlnYXRvci5zZW5kQmVhY29uPWZ1bmN0aW9uKGEpeyhuZXcgSW1hZ2UpLnNyYz1hfSk7d2luZG93Lm9uZXJyb3I9ZnVuY3Rpb24oYSxiLGQsbCxmKXtuYXZpZ2F0b3Iuc2VuZEJlYWNvbigiL2dlbl8yMDQ\/ZW1zZz0iKyhmIGluc3RhbmNlb2YgRXJyb3I\/Zi5tZXNzYWdlOmEpKyImc3JjcGc9c2dzJmpzcj0xJmpzZWw9MyIpfTtYKCJzc3QiKTt2YXIgWjt3aW5kb3cuc2dzJiZ1c3N2PyhYKCJzc3N0IiksWj13aW5kb3cuc2dzKHNwKS50aGVuKGZ1bmN0aW9uKGEpe1goInNzZXQiKTtyJiYoVCgpLGJhKGEpKTtyZXR1cm4hMH0sZnVuY3Rpb24oKXtyZXR1cm4hMX0pKTpaPVByb21pc2UucmVzb2x2ZSghMSk7Wi50aGVuKGZ1bmN0aW9uKGEpe2lmKCFhJiYoWCgiYnNzdCIpLGE9UigpLFgoImJzZXQiKSxhKSl7dmFyIGI9Y2JzO2E9aGFzaGVkX3F1ZXJ5PyJCLjEuIitiKyIuIithOmE7Yj1uZXcgRGF0ZTtiLnNldFNlY29uZHMoYi5nZXRTZWNvbmRzKCkrKE51bWJlcihjZSl8fDMwMCkpO3ZhciBkPSJTR19TUz0iK2EsbD1kb2N1bWVudC5jb29raWUubGVuZ3RoK2QubGVuZ3RoO3ImJihsPDQwOTMmJiFzc19jZ2kmJihkb2N1bWVudC5jb29raWU9ZCsoIjsgZXhwaXJlcz0iK2IudG9VVENTdHJpbmcoKSkpLFQoKSxzc19jZ2l8fGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJTR19TUz0iKTwwP1YoYSk6VyhVKCkpKX19KS5jYXRjaChmdW5jdGlvbihhKXtTKGEpfSk7fSkuY2FsbCh0aGlzKTt9KSgpOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9ImZIWndDOEQybXF3SnUtV1VJdURSdEEiPihmdW5jdGlvbigpe3ZhciBjc3NJZD0neXZscnVlJzt2YXIgZXZlbnRfaWQ9JzNTdUFhTXkxTnJLbWtkVVAyNVd1MlF3JztmdW5jdGlvbiBzdygpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNzc0lkKS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywnJyk7bmF2aWdhdG9yLnNlbmRCZWFjb24oYC9nZW5fMjA0P2NhZD1zZ190cmJsJmVpPSR7ZXZlbnRfaWR9YCwnJyk7fQpzZXRUaW1lb3V0KHN3LDIwMDApO30pKCk7PC9zY3JpcHQ+IDxkaXYgaWQ9Inl2bHJ1ZSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+SWYgeW91J3JlIGhhdmluZyB0cm91YmxlIGFjY2Vzc2luZyBHb29nbGUgU2VhcmNoLCBwbGVhc2UmbmJzcDs8YSBocmVmPSIvc2VhcmNoP3E9cGl4YXIrY2FycyszJmFtcDtudW09MTAwJmFtcDtzY2FfZXN2PWY0NzgzZmE0NzAzOGUzYTUmYW1wO3B3cz0wJmFtcDtobD1lbiZhbXA7bmVhcj1Vbml0ZWQrU3RhdGVzJmFtcDtnbD1VUyZhbXA7Z2xwPTEmYW1wO2didj0xJmFtcDtlbXNnPVNHX1JFTCZhbXA7c2VpPTNTdUFhTXkxTnJLbWtkVVAyNVd1MlF3Ij5jbGljayBoZXJlPC9hPiwgb3Igc2VuZCZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3dlYnNlYXJjaCI+ZmVlZGJhY2s8L2E+LjwvZGl2PjwvYm9keT48L2h0bWw+"}