D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
local
/
psa
/
var
/
modules
/
xovi
/
Filename :
serp_2.json
back
Copy
{"success":true,"settings":{"hash":"2","url":"https:\/\/www.google.co.uk\/search?q=covers+designs&as_rights=&num=100&start=0&pws=0&hl=en&near=United+Kingdom&uule=w+CAIQICIOVW5pdGVkIEtpbmdkb20&gws_rd=cr&gl=UK&glp=1&gbv=1"},"code":200,"exception":null,"bodyLen":83795,"body":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4tR0IiPjxoZWFkPjx0aXRsZT5Hb29nbGUgU2VhcmNoPC90aXRsZT4gPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4gPG1ldGEgY29udGVudD0iMDt1cmw9L2h0dHBzZXJ2aWNlL3JldHJ5L2VuYWJsZWpzP3NlaT14WUpRYUxmNEdNeUs0LUVQa1otVTJBNCIgaHR0cC1lcXVpdj0icmVmcmVzaCI+PGRpdiBzdHlsZT0iZGlzcGxheTpibG9jayI+UGxlYXNlIGNsaWNrIDxhIGhyZWY9Ii9odHRwc2VydmljZS9yZXRyeS9lbmFibGVqcz9zZWk9eFlKUWFMZjRHTXlLNC1FUGtaLVUyQTQiPmhlcmU8L2E+IGlmIHlvdSBhcmUgbm90IHJlZGlyZWN0ZWQgd2l0aGluIGEgZmV3IHNlY29uZHMuPC9kaXY+PC9ub3NjcmlwdD48c2NyaXB0IG5vbmNlPSJTemRWNUhWaGRvdDBFTTVKOEFoT1dBIj4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvZ015d2ljMjkxY21ObGN5STZXeUlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUlDSmRMQ0p1WVcxbGN5STZXeUpqYkc5emRYSmxSSGx1WVcxcFkwSjFkSFJ2YmlKZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRWlmUT09CihmdW5jdGlvbigpe2Z1bmN0aW9uIHgoVCl7cmV0dXJuIFR9dmFyIFk9ZnVuY3Rpb24oVCxNLEssdCxELHkseixHLFYsYyxxLEYpe0Y9NzI7e3E9TTt3aGlsZSghW109PWZhbHNlKXRyeXtpZihGPT1UKWJyZWFrO2Vsc2UgaWYoRj09NDgpRj1HJiZHLmNyZWF0ZVBvbGljeT81MTo1NjtlbHNlIGlmKEY9PTUxKXE9SyxWPUcuY3JlYXRlUG9saWN5KHkse2NyZWF0ZUhUTUw6UCxjcmVhdGVTY3JpcHQ6UCxjcmVhdGVTY3JpcHRVUkw6UH0pLEY9NTA7ZWxzZSBpZihGPT0zNSlGPU4uY29uc29sZT90OjUwO2Vsc2UgaWYoRj09dClOLmNvbnNvbGVbRF0oYy5tZXNzYWdlKSxGPTUwO2Vsc2V7aWYoRj09NTYpcmV0dXJuIFY7aWYoRj09NTApcmV0dXJuIHE9TSxWO0Y9PTcyPyhWPXosRz1OLnRydXN0ZWRUeXBlcyxGPTQ4KTpGPT0xNyYmKHE9TSxGPTM1KX19Y2F0Y2godyl7aWYocT09TSl0aHJvdyB3O3E9PUsmJihjPXcsRj0xNyl9fX0sUD1mdW5jdGlvbihUKXtyZXR1cm4geC5jYWxsKHRoaXMsVCl9LE49dGhpc3x8c2VsZjsoMCxldmFsKShmdW5jdGlvbihULE0pe3JldHVybihNPVkoNzgsMzIsMyw2LCJlcnJvciIsImtzIixudWxsKSkmJlQuZXZhbChNLmNyZWF0ZVNjcmlwdCgiMSIpKT09PTE\/ZnVuY3Rpb24oSyl7cmV0dXJuIE0uY3JlYXRlU2NyaXB0KEspfTpmdW5jdGlvbihLKXtyZXR1cm4iIitLfX0oTikoQXJyYXkoTWF0aC5yYW5kb20oKSo3ODI0fDApLmpvaW4oIlxuIikrWycvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvZ015d2ljMjkxY21ObGN5STZXeUlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUlDSmRMQ0p1WVcxbGN5STZXeUpqYkc5emRYSmxSSGx1WVcxcFkwSjFkSFJ2YmlKZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRWlmUT09JywKJyhmdW5jdGlvbigpey8qJywKJycsCicgQ29weXJpZ2h0IEdvb2dsZSBMTEMnLAonIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJywKJyovJywKJ3ZhciB3Vj1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0KXtmb3IodD04Njt0IT03NzspaWYodD09NTQpdD14Kzc+PjE8eCYmKHgtM3wxOSk+PXg\/NjY6OTE7ZWxzZSBpZih0PT04Nil0PTU0O2Vsc2UgaWYodD09NjYpVi5jbGFzc0xpc3Q\/Vi5jbGFzc0xpc3QucmVtb3ZlKHcpOlRBKGZhbHNlLHcsTSw3MixULFYpJiZ1KFYsOSxLLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh4WSg0NCxULFYpLGZ1bmN0aW9uKHEpe3JldHVybiBxIT13fSkuam9pbihHKSksdD05MTtlbHNle2lmKHQ9PTE2KXJldHVybiBOO3Q9PTExPyhLLkY9KChLLkY\/Sy5GKyJ+IjoiRToiKStNLm1lc3NhZ2UrVCtNLnN0YWNrKS5zbGljZSgwLEYpLHQ9MTYpOnQ9PTkxJiYodD14Kzk+PS01MSYmKHg8PDImOCk8Mz8xMToxNil9fSxUQT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7e3E9Njt3aGlsZShxIT01MSlpZihxPT0zNylBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHgsZnVuY3Rpb24oUCx5LHope2Zvcih6PTcyO3ohPTc4Oyl6PT01MD8oeT1NWCgxMSwiIiwic3RyaW5nIixUKSx1KFQsNSwic3RyaW5nIix5Kyh5Lmxlbmd0aD4wPyIgIitQOlApKSx6PTc4KTp6PT03Mj96PVQuY2xhc3NMaXN0PzQ4OjUxOno9PTQ4PyhULmNsYXNzTGlzdC5hZGQoUCksej03OCk6ej09NTEmJih6PVRBKGZhbHNlLFAsMSw3MywiIixUKT83ODo1MCl9KSxxPTI4O2Vsc2UgaWYocT09NzQpdz1xWCxWIGluIHc\/TS5zZXRBdHRyaWJ1dGUoTix3W1ZdKTpNLnJlbW92ZUF0dHJpYnV0ZShOKSxxPTY3O2Vsc2UgaWYocT09NTQpcT1HPT09IiJ8fEc9PXZvaWQgMD82NTo0MDtlbHNlIGlmKHE9PTMxKXQ9e30scVg9KHQuYXRvbWljPUYsdC5hdXRvY29tcGxldGU9Im5vbmUiLHQuZHJvcGVmZmVjdD0ibm9uZSIsdC5oYXNwb3B1cD1GLHQubGl2ZT0ib2ZmIix0Lm11bHRpbGluZT1GLHQubXVsdGlzZWxlY3RhYmxlPUYsdC5vcmllbnRhdGlvbj0idmVydGljYWwiLHQucmVhZG9ubHk9Rix0LnJlbGV2YW50PSJhZGRpdGlvbnMgdGV4dCIsdC5yZXF1aXJlZD1GLHQuc29ydD0ibm9uZSIsdC5idXN5PUYsdC5kaXNhYmxlZD1GLHQuaGlkZGVuPUYsdC5pbnZhbGlkPVQsdCkscT03NDtlbHNlIGlmKHE9PTYpcT03NjtlbHNlIGlmKHE9PTQwKU0uc2V0QXR0cmlidXRlKE4sRykscT02NztlbHNlIGlmKHE9PTY5KXE9Sy05PDcmJkstMj4+Mz49MD81NzoyODtlbHNlIGlmKHE9PTIwKXtmb3IoTSBpbiBWPShBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHhZKDQzLChHPXt9LCIiKSxUKSxmdW5jdGlvbihQKXtHW1BdPXRydWV9KSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHgsZnVuY3Rpb24oUCl7R1tQXT10cnVlfSksIiIpLEcpVis9Vi5sZW5ndGg+MD8iICIrTTpNO3E9KHUoVCw3LCJzdHJpbmciLFYpLDI4KX1lbHNlIGlmKHE9PTgyKXQrKyxxPTEzO2Vsc2UgaWYocT09NjUpcT1xWD83NDozMTtlbHNlIGlmKHE9PTU3KXE9VC5jbGFzc0xpc3Q\/Mzc6MjA7ZWxzZXtpZihxPT02NylyZXR1cm4gYztxPT01OT8oQXJyYXkuaXNBcnJheShHKSYmKEc9Ry5qb2luKHgpKSxOPSJhcmlhLSIrVixxPTU0KTpxPT03Nj9xPSgoS142NikmMTUpPT0yPzg5OjY5OnE9PTEwPyhjPXcscT02MSk6cT09MjQ\/cT1HLmNsYXNzTGlzdD83ODo5ODpxPT0zOT8oVEEoZmFsc2UsTSwwLDE2LHRydWUsRyxWLHcsTlt0XSkscT04Mik6cT09Nzg\/KHc9Ry5jbGFzc0xpc3QuY29udGFpbnMoTSkscT0xMCk6cT09MTM\/cT10PE4ubGVuZ3RoPzM5OjY5OnE9PTYxP3E9KEs+PjEmNyk9PTM\/NTk6Njc6cT09OTg\/KFY9eFkoNDUseCxHKSx3PUooNTcsVCxWLE0pPj0wLHE9MTApOnE9PTQzP3E9MTM6cT09ODk\/cT1BcnJheS5pc0FycmF5KE4pPzQ5OjU4OnE9PTI4P3E9KEt8NzIpPT1LPzI0OjYxOnE9PTQ5Pyh0PVQscT00Myk6cT09NTgmJih3PUdBKDMyLHcpLFYmJlZbdDJdP1YuSC5hZGQoU3RyaW5nKE4pLHcseCxjOCg5LCJvYmplY3QiLE0pPyEhTS5jYXB0dXJlOiEhTSxHKTpzRyhGLDE0LCJvYmplY3QiLHcsRyxOLE0seCxWKSxxPTY5KX19fSxrPWZ1bmN0aW9uKEYsTSxULEsseCl7cmV0dXJuKE0tND4+NHx8KEYubD94PUR3KEYuWixGKTooSz15bChGLDgsdHJ1ZSksLX4oSyYxMjgpKyhLJi0xMjkpKyh+S3wxMjgpJiYoSz0yKihLfDApLTMqKEsmMTI4KS0gLTEyOSsofkt8MTI4KSxUPXlsKEYsMix0cnVlKSxLPShLPDwyKSsoVHwwKSkseD1LKSksKE0mNTYpPT1NJiYoRi5sP3g9RHcoRi5aLEYpOihUPXlsKEYsOCx0cnVlKSwtfihUJjEyOCkrKFQmLTEyOSkrKH5UfDEyOCkmJihUPTIqKFR8MCktMyooVCYxMjgpLSAtMTI5Kyh+VHwxMjgpLEs9eWwoRiwyLHRydWUpLFQ9KFQ8PDIpKyhLfDApKSx4PVQpKSxNKzUmMTEpfHwoeD1LW1RdPDwyNHxLWyhUfDApKzFdPDwxNnxLWyhUfDIpLSAtMysoVHwtMyldPDw4fEtbLTEtMip+KFR8RiktKH5UJkYpKyh+VHxGKV0pLHh9LHY4PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSl7Zm9yKHQ9MzU7dCE9NjU7KWlmKHQ9PTg3KXE9Ryx0PTEwO2Vsc2UgaWYodD09MTkpdD1LLkZOPzkxOjg5O2Vsc2UgaWYodD09MTApdD1UPDwyJjc\/NTk6OTtlbHNle2lmKHQ9PTU5KXJldHVybiBxO3Q9PTg5Pyh3PW5ldyBrWSh4LHRoaXMpLFY9Sy5tV3x8Sy5zcmMsTj1LLmxpc3RlbmVyLEsub20mJkdBKDUsbnVsbCwib24iLEspLEc9Ti5jYWxsKFYsdyksdD04Nyk6dD09MzU\/dD1NOnQ9PTk\/dD01OTp0PT1NP3Q9KFQtOCZNKT09Rj8xOToxMDp0PT05MSYmKEc9dHJ1ZSx0PTg3KX19LE1YPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFAseSl7Zm9yKFA9NDA7UCE9OTU7KWlmKFA9PTUpUD1xPFYubGVuZ3RoPzE2Ojc4O2Vsc2UgaWYoUD09NTIpUD01O2Vsc2UgaWYoUD09ODQpUD0oRi0zJjYpPj00JiYoRj4+MiY2KTwxPzEwOjg5O2Vsc2UgaWYoUD09MjEpKGM9Ti5TYShHLFYsdyx0KSkmJkdBKDgsbnVsbCwib24iLGMpLFA9Nzg7ZWxzZSBpZihQPT00MilxPVQsUD01MjtlbHNlIGlmKFA9PTQxKVA9KEYmNTYpPT1GPzY6NzY7ZWxzZSBpZihQPT02NClQPUs\/NDg6Nzg7ZWxzZXtpZihQPT04OSlyZXR1cm4geTtQPT00ND8ocSsrLFA9NSk6UD09ODY\/KHk9dHlwZW9mIEsuY2xhc3NOYW1lPT1UP0suY2xhc3NOYW1lOksuZ2V0QXR0cmlidXRlJiZLLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8TSxQPTg0KTpQPT0xMD8oUjQuY2FsbCh0aGlzKSxNfHxlSHx8KGVIPW5ldyBwWSksdGhpcy5kUD10aGlzLkp4PW51bGwsdGhpcy5Ddj1mYWxzZSx0aGlzLmkzPW51bGwsdGhpcy5UaT1mYWxzZSx0aGlzLnppPXZvaWQgMCx0aGlzLmZxPXRoaXMuVD1udWxsLFA9ODkpOlA9PTQ4PyhOPWUoOCxLKSxQPTYyKTpQPT03Nj9QPShGLTZeMzApPEYmJihGKzkmNDMpPj1GPzc0Ojc4OlA9PTY\/KHk9ISEoVC5IJCZ4KSYmISEoVC5JJngpIT1LJiYoIShHPVQuWmwsLTEtfngtKH5HJngpKXx8VC5kaXNwYXRjaEV2ZW50KEkoNSw0LDIsTSw2NCxLLHgpKSkmJiFULlYsUD03Nik6UD09MTY\/KE1YKDUsIm9iamVjdCIsMCxLLHgsRyxWW3FdLHcpLFA9NDQpOlA9PTc0P1A9QXJyYXkuaXNBcnJheShWKT80MjoyOlA9PTYyP1A9Tj8yMTo3ODpQPT0yPyh0PWM4KDYsTSx4KT8hIXguY2FwdHVyZTohIXgsRz1HQSgzNCxHKSxQPTEzKTpQPT00MD9QPTQxOlA9PTc4P1A9KEYtOCY5KT09MT84Njo4NDpQPT0xMz9QPUsmJktbdDJdPzU1OjY0OlA9PTU1JiYoSy5ILnJlbW92ZShTdHJpbmcoViksRyx0LHcpLFA9NzgpfX0saDI9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4pe2ZvcihOPTg4O04hPTI2OylpZihOPT01MilOPShNJjYyKT09TT84OjMxO2Vsc2UgaWYoTj09ODgpTj01MjtlbHNlIGlmKE49PTkxKXRoaXMuTHE9RS5kb2N1bWVudHx8ZG9jdW1lbnQsTj0zO2Vsc2UgaWYoTj09NDYpRz1LKHgpLnJlcGxhY2UoL1xcKy9nLCItIikucmVwbGFjZSgvXFwvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLE49NzQ7ZWxzZSBpZihOPT03KXgrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxULnNsaWNlKFYsVis4MTkyKSksTj0zNztlbHNlIGlmKE49PTk3KU49Sz84OToxNjtlbHNlIGlmKE49PTkyKU49dGhpcy51Lmxlbmd0aDw1MD81MTo0NztlbHNlIGlmKE49PTUxKXRoaXMudS5wdXNoKFQpLE49MzE7ZWxzZXtpZihOPT03OSlyZXR1cm4gdztOPT0xNj8oRz12b2lkIDAsTj03NCk6Tj09MzE\/Tj1NPj4xJjU\/Mzo5MTpOPT0zNz8oVis9ODE5MixOPTMwKTpOPT00Nz8oSz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdGhpcy5uKSxLPDUwJiYodGhpcy51W0tdPVQpLE49MzEpOk49PUY\/Tj0zMDpOPT04Pyh0aGlzLm4rKyxOPTkyKTpOPT0zMD9OPVY8VC5sZW5ndGg\/Nzo0NjpOPT03ND8odz1HLE49NzkpOk49PTg5PyhWPTAseD0iIixOPUYpOk49PTU0PyhLPXdpbmRvdy5idG9hLE49OTcpOk49PTMmJihOPSgoTV4xMikmOCk8NSYmKE0+PjImMyk+PTE\/NTQ6NzkpfX0sR0E9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMsUCx5LHosRCl7Zm9yKEQ9Mzk7RCE9MDspaWYoRD09NzgpRD0oRiYxNSk9PUY\/MTY6NTQ7ZWxzZSBpZihEPT0xMSl7YTp7Zm9yKHQ9KHc9Ry5zcGxpdCgoYz1kVixNKSksVCk7dDx3Lmxlbmd0aC1LO3QrKyl7aWYoIShOPXdbdF0sTiBpbiBjKSlicmVhayBhO2M9Y1tOXX1xPVYoKHk9Y1tQPXdbdy5sZW5ndGgtS10sUF0seSkpLHEhPXkmJnEhPXgmJmkwKGMsUCx7Y29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZSx2YWx1ZTpxfSl9RD03OH1lbHNlIGlmKEQ9PTY1KUQ9ViYmVlt0Ml0\/Mjg6NjtlbHNlIGlmKEQ9PTE4KXR5cGVvZiBNPT09ImZ1bmN0aW9uIj96PU06KE1bdTBdfHwoTVt1MF09ZnVuY3Rpb24oSCl7cmV0dXJuIE0uaGFuZGxlRXZlbnQoSCl9KSx6PU1bdTBdKSxEPTY2O2Vsc2UgaWYoRD09MTYpRD10eXBlb2YgSyE9PSJudW1iZXIiJiZLJiYhSy5GTj84MDo1NDtlbHNlIGlmKEQ9PTQ3KXo9VCBpbiBCOD9COFtUXTpCOFtUXT1NK1QsRD03O2Vsc2V7aWYoRD09NylyZXR1cm4gejtEPT01OT9EPVY\/MTE6Nzg6RD09ODA\/KFY9Sy5zcmMsRD02NSk6RD09MTA\/RD0oRjw8MiYxNSk+PTgmJkYtMj4+NDwyPzU5Ojc4OkQ9PTM1P0Q9eD84MTo2NzpEPT00Mj9EPXguc0s9PTA\/NDk6NTQ6RD09Njc\/KCRZKDEsMTcsdHJ1ZSxLKSxEPTU0KTpEPT01ND9EPShGXjM2KTwyMCYmRisyPj03PzE4OjY2OkQ9PTY\/KHc9Sy5wcm94eSxHPUsudHlwZSxWLnJlbW92ZUV2ZW50TGlzdGVuZXI\/Vi5yZW1vdmVFdmVudExpc3RlbmVyKEcsdyxLLmNhcHR1cmUpOlYuZGV0YWNoRXZlbnQ\/Vi5kZXRhY2hFdmVudChHQSg1OSxULEcpLHcpOlYuYWRkTGlzdGVuZXImJlYucmVtb3ZlTGlzdGVuZXImJlYucmVtb3ZlTGlzdGVuZXIodyksbzQtLSx4PWUoNyxWKSxEPTM1KTpEPT04MT8odShLLDgwLDAseCksRD00Mik6RD09NDk\/KHguc3JjPU0sVltKMl09TSxEPTU0KTpEPT02Nj9EPShGKzUmNjUpPj1GJiYoRi00XjI1KTxGPzQ3Ojc6RD09Mjg\/KHUoSyw3MiwwLFYuSCksRD01NCk6RD09MzkmJihEPTEwKX19LEk0PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFAseSl7Zm9yKHk9ODA7eSE9MjI7KWlmKHk9PTE5KXk9KE0rN14xMCk+PU0mJihNKzcmNDYpPE0\/Mzk6MjtlbHNle2lmKHk9PTExKXJldHVybiBQO2lmKHk9PTgwKXk9MTk7ZWxzZSBpZih5PT0zOSl7aWYocT14LkguaVtTdHJpbmcoVCldKXtmb3IoYz0odD0ocT1xLmNvbmNhdCgpLDApLEYpO3Q8cS5sZW5ndGg7Kyt0KShWPXFbdF0pJiYhVi5GTiYmVi5jYXB0dXJlPT1HJiYodz1WLm1XfHxWLnNyYyxOPVYubGlzdGVuZXIsVi5vbSYmdShWLDczLDAseC5IKSxjPU4uY2FsbCh3LEspIT09ZmFsc2UmJmMpO1A9YyYmIUsuZGVmYXVsdFByZXZlbnRlZH1lbHNlIFA9Rjt5PTJ9ZWxzZSB5PT0yP3k9TSs2Pj40PzExOjgyOnk9PTgyJiYodGhpcy5OPUYseT0xMSl9fSxYPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYpeyhGLTV8MjUpPEYmJihGKzReMjYpPj1GJiYoTS5sP1Y9RHcoTS5aLE0pOihLPXlsKE0sOCx0cnVlKSwtfihLJjEyOCkrKEsmLTEyOSkrKH5LfDEyOCkmJihLPTIqKEt8MCktMyooSyYxMjgpLSAtMTI5Kyh+S3wxMjgpLFQ9eWwoTSwyLHRydWUpLEs9KEs8PDIpKyhUfDApKSxWPUspKTtzd2l0Y2goISgoRis1JjU5KT49RiYmRi02PDwxPEYpKXtjYXNlICEoMCE9PS0wKT09ISIiOjA7YnJlYWs7Y2FzZSBbXT09KG51bGwhPShOYU49PT1OYU4pKTpHPWsoSywxMyk7e3g9TTt3aGlsZShUPk0peD14PDw4fHJWKDgsdHJ1ZSxLKSxULS19bihHLEsseCk7YnJlYWt9cmV0dXJuIFZ9LEk9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4pe2Zvcih3PTU3O3chPTYyOylpZih3PT01Nyl3PTY2O2Vsc2UgaWYodz09NjYpdz0oRi0xXjcpPj1GJiYoRis0XjcpPEY\/NTI6MzE7ZWxzZSBpZih3PT01Mil2KFQsSyxNKSxNW3pBXT0yNzk2LHc9MzE7ZWxzZSBpZih3PT05KXthOntzd2l0Y2goVil7Y2FzZSAxOk49Rz8iZGlzYWJsZSI6ImVuYWJsZSI7YnJlYWsgYTtjYXNlIFQ6Tj1HPyJoaWdobGlnaHQiOiJ1bmhpZ2hsaWdodCI7YnJlYWsgYTtjYXNlIE06Tj1HPyJhY3RpdmF0ZSI6ImRlYWN0aXZhdGUiO2JyZWFrIGE7Y2FzZSA4Ok49Rz8ic2VsZWN0IjoidW5zZWxlY3QiO2JyZWFrIGE7Y2FzZSBLOk49Rz8iY2hlY2siOiJ1bmNoZWNrIjticmVhayBhO2Nhc2UgMzI6Tj1HPyJmb2N1cyI6ImJsdXIiO2JyZWFrIGE7Y2FzZSB4Ok49Rz8ib3BlbiI6ImNsb3NlIjticmVhayBhfXRocm93IEVycm9yKCJJbnZhbGlkIGNvbXBvbmVudCBzdGF0ZSIpO313PTY4fWVsc2UgaWYodz09OTMpWVkuY2FsbCh0aGlzKSx0aGlzLkg9bmV3IEg4KHRoaXMpLHRoaXMucVo9bnVsbCx0aGlzLmNiPXRoaXMsdz0zO2Vsc2UgaWYodz09Myl3PShGPDwxJjcpPT0yPzk6Njg7ZWxzZXtpZih3PT02OClyZXR1cm4gTjt3PT0zMSYmKHc9Ris5Pj4xPEYmJihGLTZeMTYpPj1GPzkzOjMpfX0sZT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEpe2Zvcih0PTM3O3QhPTc1OylpZih0PT04OSl0PVQ\/Nzo1MjtlbHNle2lmKHQ9PTQ4KXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK00pO2lmKHQ9PTIyKXQ9KEYrOSYyNyk+PUYmJihGKzReMTUpPEY\/NTc6OTI7ZWxzZSBpZih0PT0wKXQ9KEYmODEpPT1GPzgwOjM0O2Vsc2V7aWYodD09MTIpcmV0dXJuIHE7aWYodD09OTIpdD0oRnw1Nik9PUY\/ODk6MTI7ZWxzZSBpZih0PT0zNyl0PTA7ZWxzZSBpZih0PT0zNCl0PShGXjM4KTwyMSYmRjw8MT49OT85MToyMjtlbHNlIGlmKHQ9PTU3KVQ9TVtKMl0scT1UIGluc3RhbmNlb2YgSDg\/VDpudWxsLHQ9OTI7ZWxzZSBpZih0PT04MCl7aWYoeC52Lmxlbmd0aCl7eC5VSyYmIjpUUVI6VFFSOiIoKSx4LlVLPXRydWUseC5sNj1LO3RyeXtHPXguSigpLHguYW09Ryx4Lk9LPU0seC5sMz1HLHguWjY9TSxWPW5ZKHgsMix0cnVlLEssNiw4LG51bGwpLHc9VD8wOjEwLE49eC5KKCkteC5sMyx4LnUzKz1OLHgud1AmJngud1AoTi14LlMseC5qLHguWSx4Lk9LKSx4Llk9ZmFsc2UseC5qPWZhbHNlLHguUz1NLE48d3x8eC5ucS0tPD1NfHwoTj1NYXRoLmZsb29yKE4pLHguUXIucHVzaChOPD0yNTQ\/TjoyNTQpKX1maW5hbGx5e3guVUs9ZmFsc2V9cT1WfXQ9MzR9ZWxzZSBpZih0PT05MSl0aGlzLnR5cGU9TSx0aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9VCx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dGhpcy5KUj1mYWxzZSx0PTIyO2Vsc2UgaWYodD09Nyl0PXR5cGVvZiBNIT09ImZ1bmN0aW9uIj80ODoxMjtlbHNlIGlmKHQ9PTUyKXRocm93IEVycm9yKCJJbnZhbGlkIGNsYXNzIG5hbWUgIitUKTt9fX0sc0c9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMsUCx5LHosRCl7e0Q9NTA7d2hpbGUoRCE9Mjgpe2lmKEQ9PTM1KXJldHVybiB5O2lmKEQ9PTg1KWM9U0goNTQsMjMpLHQucHJveHk9YyxjLnNyYz1OLGMubGlzdGVuZXI9dCxEPTYzO2Vsc2UgaWYoRD09NjMpRD1OLmFkZEV2ZW50TGlzdGVuZXI\/NjQ6ODM7ZWxzZSBpZihEPT00MylOLmF0dGFjaEV2ZW50KEdBKDYwLCJvbiIsRy50b1N0cmluZygpKSxjKSxEPTc3O2Vsc2UgaWYoRD09ODMpRD1OLmF0dGFjaEV2ZW50PzQzOjU7ZWxzZSBpZihEPT01NSlEPShNKzJeMTkpPE0mJihNLTJ8MTcpPj1NPzE0OjYxO2Vsc2UgaWYoRD09NDUpdGhpcy5uKyssVD1GLXRoaXMuZyx0aGlzLmcrPVQvdGhpcy5uLHRoaXMudFIrPVQqKEYtdGhpcy5nKSxEPTM1O2Vsc2V7aWYoRD09OTApdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO2lmKEQ9PTE0KUQ9Rz80MDo5MDtlbHNlIGlmKEQ9PTUpRD1OLmFkZExpc3RlbmVyJiZOLnJlbW92ZUxpc3RlbmVyPzE2OjQ2O2Vsc2V7aWYoRD09NDYpdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTtEPT0yNj8oej1mdW5jdGlvbigpe30sei5wcm90b3R5cGU9Sy5wcm90b3R5cGUsVC5EPUsucHJvdG90eXBlLFQucHJvdG90eXBlPW5ldyB6LFQucHJvdG90eXBlLmNvbnN0cnVjdG9yPVQsVC5HUz1mdW5jdGlvbihILFksZCl7Zm9yKHZhciBCPTgwO0IhPTI1OylpZihCPT0xMClVKyssQj0xMztlbHNle2lmKEI9PTYxKXJldHVybiBLLnByb3RvdHlwZVtZXS5hcHBseShILHApO2lmKEI9PTgwKXZhciBwPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtKEI9MzcsRikpLFU9RjtlbHNlIEI9PTM3P0I9MTM6Qj09MTU\/KHBbVS1GXT1hcmd1bWVudHNbVV0sQj0xMCk6Qj09MTMmJihCPVU8YXJndW1lbnRzLmxlbmd0aD8xNTo2MSl9fSxEPTI0KTpEPT00MD8oUD1jOCg1LFQsVik\/ISFWLmNhcHR1cmU6ISFWLChxPWUoNixOKSl8fChOW0oyXT1xPW5ldyBIOChOKSksdD1xLmFkZChHLEssdyxQLHgpLEQ9NzkpOkQ9PTE2PyhOLmFkZExpc3RlbmVyKGMpLEQ9NzcpOkQ9PTI0P0Q9KE0+PjEmMTUpPj0xMyYmTS0zPDMzPzQ1OjM1OkQ9PTUwP0Q9NTU6RD09Nzk\/RD10LnByb3h5PzYxOjg1OkQ9PTYxP0Q9TSszPj40PzI0OjI2OkQ9PTY0PyhVR3x8KFY9UCksVj09PXZvaWQgMCYmKFY9RiksTi5hZGRFdmVudExpc3RlbmVyKEcudG9TdHJpbmcoKSxjLFYpLEQ9NzcpOkQ9PTc3JiYobzQrKyxEPTYxKX19fX19LCRuPWZ1bmN0aW9uKEYsTSxUKXt7VD05NTt3aGlsZShUIT0zMSlpZihUPT0xMClUPTI3O2Vsc2V7aWYoVD09NDApcmV0dXJuIE07VD09OTk\/KE0ucHVzaChNYXRoLnJhbmRvbSgpKjI1NXwwKSxUPTEwKTpUPT0xMz9UPTI3OlQ9PTk1PyhNPVtdLFQ9MTMpOlQ9PTI3JiYoVD1GLS0\/OTk6NDApfX19LEg4PWZ1bmN0aW9uKEYpe3JldHVybiBPRy5jYWxsKHRoaXMsNDAsRiwxNCl9LHlkPWZ1bmN0aW9uKEYsTSxULEsseCl7cmV0dXJuIFNILmNhbGwodGhpcyw1NCw1LEYseCxLLE0sVCl9LHowPWZ1bmN0aW9uKCl7cmV0dXJuIEVHLmNhbGwodGhpcyw2NSwzMil9LHJZPWZ1bmN0aW9uKEYsTSxULEspe0pEKE0sQyhTKChLPWsoKFQ9ayhNLDkpLE0pLDUpLE0pLFQpLEYpLEspfSxTSD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQKXt7Yz03Nzt3aGlsZShjIT01MylpZihjPT04OCljPShNPj4yJjcpPT0xPzM4OjYzO2Vsc2UgaWYoYz09NzcpYz04ODtlbHNlIGlmKGM9PTYxKWM9KFY9Syk\/Rjo5ODtlbHNlIGlmKGM9PUYpdGhpcy5XPVYsYz0xMTtlbHNlIGlmKGM9PTE0KUc9T0coNDAsdCw1KSxjPTY0O2Vsc2UgaWYoYz09ODApYz10PzE0OjEwO2Vsc2UgaWYoYz09MzgpdGhpcy5saXN0ZW5lcj1LLHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1ULHRoaXMudHlwZT1HLHRoaXMuY2FwdHVyZT0hIVYsdGhpcy5tVz14LHRoaXMua2V5PSsrTFksdGhpcy5vbT10aGlzLkZOPWZhbHNlLGM9NjM7ZWxzZSBpZihjPT05MCljPShNPj4yJjMwKT09Mj85Mzo0ODtlbHNlIGlmKGM9PTQpYz0oTSszJjE1KT09Mz83Njo5MDtlbHNlIGlmKGM9PTcxKXQ9KE49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQucHJvdG90eXBlKSkmJk4uY29uc3RydWN0b3IsYz02ODtlbHNlIGlmKGM9PTM1KWM9MTA7ZWxzZSBpZihjPT04NylQPWZ1bmN0aW9uKHkpe3JldHVybiBULmNhbGwoUC5zcmMsUC5saXN0ZW5lcix5KX0sVD1DWSxxPVAsYz00O2Vsc2UgaWYoYz09OTMpYz00ODtlbHNlIGlmKGM9PTc2KXtpZigoeD1LLmxlbmd0aCx4KT5UKXtmb3IoRz0oVj1BcnJheSh4KSxUKTtHPHg7RysrKVZbR109S1tHXTtxPVZ9ZWxzZSBxPVtdO2M9OTB9ZWxzZSBpZihjPT00OCljPShNfDg4KT09TT85NjoxMTtlbHNlIGlmKGM9PTEwKVY9dz90eXBlb2Ygdy5jJD09PSJmdW5jdGlvbiI\/dy5jJCgpOm5ldyB3Om51bGwsYz1GO2Vsc2UgaWYoYz09MzMpYz04MDtlbHNlIGlmKGM9PTYzKWM9KE1eMzgpPj40PDQmJihNPDwyJjMxKT49MjY\/ODc6NDtlbHNlIGlmKGM9PTk4KXQ9dGhpcy5jb25zdHJ1Y3RvcixjPTMzO2Vsc2UgaWYoYz09NjgpYz04MDtlbHNlIGlmKGM9PTY0KWM9KHc9YjBbR10pPzM1OjcxO2Vsc2V7aWYoYz09MTEpcmV0dXJuIHE7Yz09OTYmJihBMi5jYWxsKHRoaXMseCksYz02MSl9fX0sJFk9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxKXt7cT03Mzt3aGlsZShxIT02MSlpZihxPT04Mil7YTp7Zm9yKFY9W1Q9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLEcsVD09dHlwZW9mIHdpbmRvdyYmd2luZG93LFQ9PXR5cGVvZiBzZWxmJiZzZWxmLFQ9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sdz1LO3c8Vi5sZW5ndGg7Kyt3KWlmKChOPVZbd10pJiZOW3hdPT1NYXRoKXt0PU47YnJlYWsgYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO31xPTM0fWVsc2UgaWYocT09MjApcT1NK0Y+PTQmJk0rRj4+NDxGPzgyOjM0O2Vsc2V7aWYocT09ODkpcmV0dXJuIHQ7aWYocT09NTMpSy5GTj1ULEsubGlzdGVuZXI9bnVsbCxLLnByb3h5PW51bGwsSy5zcmM9bnVsbCxLLm1XPW51bGwscT0yO2Vsc2UgaWYocT09NzMpcT0yMDtlbHNlIGlmKHE9PTIpcT0oTSY2MCk9PU0\/MTM6NTg7ZWxzZSBpZihxPT0xMyl0aGlzLm49PT0wP3Q9WzAsMF06KHRoaXMudS5zb3J0KGZ1bmN0aW9uKGMsUCl7cmV0dXJuIGMtUH0pLHQ9W3RoaXMubix0aGlzLnVbdGhpcy51Lmxlbmd0aD4+Rl1dKSxxPTU4O2Vsc2UgaWYocT09NTgpcT0oTXw0OCk9PU0\/NDY6ODk7ZWxzZSBpZihxPT00Nil7YTp7Zm9yKFYgaW4gRylpZih4LmNhbGwodm9pZCAwLEdbVl0sVixHKSl7dD1UO2JyZWFrIGF9dD1LfXE9ODl9ZWxzZSBxPT0zNCYmKHE9TS05Pj4zPT1GPzUzOjIpfX19LERuPWZ1bmN0aW9uKEYsTSxULEsseCl7Zm9yKEs9NzQ7SyE9NDY7KWlmKEs9PTcpSz0oTXxGKT09TT81Njo0MDtlbHNlIGlmKEs9PTc0KUs9NDI7ZWxzZSBpZihLPT01NilULmMkPWZ1bmN0aW9uKCl7cmV0dXJuIFQuUm0\/VC5SbTpULlJtPW5ldyBUfSxULlJtPXZvaWQgMCxLPTQwO2Vsc2UgaWYoSz09MjMpeD10aGlzLm49PT0wPzA6TWF0aC5zcXJ0KHRoaXMudFIvdGhpcy5uKSxLPTc7ZWxzZSBpZihLPT00MilLPShNPj4xJjcpPDUmJihNfDUpPj0tNTI\/MjM6NztlbHNlIGlmKEs9PTQwKXJldHVybiB4fSxzeT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7eD1NWzBdO3N3aXRjaCghKHg9PVBfKSl7Y2FzZSAtMD09PTA6aWYoeD09dEQpe2M9TVsxXTt0cnl7Tj1GLkZ8fEYuUihNKX1jYXRjaChQKXt3VigyMDQ4LFAsIjoiLEYsMjApLE49Ri5GfSgoRz1GLkooKSxjKShOKSxGKS5TKz1GLkooKS1HfWVsc2Ugc3dpdGNoKCEoeD09TU0pKXtjYXNlICFbXSE9bnVsbDppZih4PT1pQylGLmo9dHJ1ZSxGLlIoTSk7ZWxzZSBzd2l0Y2goISh4PT11Qykpe2Nhc2UgTmFOIT09TmFOOmlmKHg9PU5NKXJldHVybiB3PU1bVF0sdihGLDE1OSxNW0tdKSxuKDExNSxGLHcpLEYuUihNKTt3aGlsZSgiZiIpaWYoeD09Ql8\/KEYuUihNKSxGLkI9bnVsbCxGLkQ2PVtdLEYuUXI9W10pOng9PXpBJiZFLmRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyImJihGLmg9ZnVuY3Rpb24oUCx5KXtmdW5jdGlvbiB6KEQpe3tEPTMyO3doaWxlKEQhPTQ4KUQ9PTMyP0Q9eT80ODo1NzpEPT01NyYmKHk9dHJ1ZSxFLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHosd1kpLEUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIseix3WSksUCgpLEQ9NDgpfX0oRS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix6LCh5PWZhbHNlLHdZKSksRSkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIseix3WSl9KSx0cnVlKWJyZWFrO2JyZWFrO2Nhc2UgZmFsc2U6dHJ5e3t0PTA7d2hpbGUodDxGLmhSLmxlbmd0aCl7dHJ5e3E9Ri5oUlt0XSxxWzBdW3FbMV1dKHFbVF0pfWNhdGNoKFApe310Kyt9fX1jYXRjaChQKXt9KCgwLE1bMV0pKGZ1bmN0aW9uKFAseSl7Ri5NWihQLHRydWUseSl9LGZ1bmN0aW9uKFApe3UoKFA9IUYudi5sZW5ndGgsRiksMzMsMCxbQl9dKSxQJiZlKDE3LDAsZmFsc2UsdHJ1ZSxGKX0sZnVuY3Rpb24oUCl7cmV0dXJuIEYuRUsoUCl9LChWPShGLmhSPVtdLEYpLkooKSxmdW5jdGlvbihQLHkseil7cmV0dXJuIEYub1QoUCx5LHopfSkpLEYpLlMrPUYuSigpLVY7YnJlYWt9YnJlYWs7Y2FzZSBmYWxzZT09bnVsbDpNWzNdJiYoRi5qPXRydWUpLE1bNF0mJihGLlk9dHJ1ZSksRi5SKE0pO2JyZWFrfWJyZWFrO2Nhc2UgZmFsc2UhPTA6Ri5ucT0yNSxGLlk9dHJ1ZSxGLlIoTSk7YnJlYWt9fSxqdT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWKXt7Vj00Mzt3aGlsZShWIT03OClpZihWPT0zOClWPVQtNTw2JiYoVD4+MSY3KT49Mz82NjoyMztlbHNlIGlmKFY9PTQ5KVY9KFQrNSYxNyk+PVQmJlQrOD4+MjxUP0Y6Mzg7ZWxzZSBpZihWPT00MylWPTQ5O2Vsc2UgaWYoVj09NjYpVDAuY2FsbCh0aGlzLEssTXx8SzUuYyQoKSx4KSxWPTIzO2Vsc2UgaWYoVj09RilNLmRQJiZNLmRQLmZvckVhY2goSyx2b2lkIDApLFY9Mzg7ZWxzZSBpZihWPT0yMylyZXR1cm4gR319LEcwPWZ1bmN0aW9uKEYsTSxULEsseCxHKXt7eD03Mjt3aGlsZSh4IT1GKXtpZih4PT04MClyZXR1cm4gRzt4PT03ND94PTg4Ong9PTU2PyhxTS5jYWxsKHRoaXMsVD9ULnR5cGU6IiIpLHRoaXMucmVsYXRlZFRhcmdldD10aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9bnVsbCx0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9dGhpcy5vZmZzZXRZPXRoaXMub2Zmc2V0WD0wLHRoaXMua2V5PSIiLHRoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTAsdGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PWZhbHNlLHRoaXMuc3RhdGU9bnVsbCx0aGlzLnBvaW50ZXJJZD0wLHRoaXMucG9pbnRlclR5cGU9IiIsdGhpcy50aW1lU3RhbXA9MCx0aGlzLkIkPW51bGwsVCYmdGhpcy5pbml0KFQsSykseD0xOCk6eD09Njc\/eD1NLUY+PjM9PTI\/NjY6NDI6eD09NzI\/eD02Nzp4PT0xOD94PShNXjEzKTxGJiYoKE18RikmMTEpPj0yPzc0Ojg4Ong9PTY2PyhHPXhuW1RdKHhuLnByb3RvdHlwZSx7c3BsaWNlOkssY2FsbDpLLGNvbnNvbGU6SyxsZW5ndGg6SyxmbG9vcjpLLHByb3RvdHlwZTpLLHBvcDpLLHByb3BlcnR5SXNFbnVtZXJhYmxlOksscmVwbGFjZTpLLGRvY3VtZW50OksscGFyZW50Okssc3RhY2s6S30pLHg9NDIpOng9PTQyP3g9KE0mOTEpPT1NPzU2OjE4Ong9PTg4P3g9KE1eNzEpPj40PzgwOjg3Ong9PTg3JiYoVC5jbGFzc0xpc3Q\/QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChLLGZ1bmN0aW9uKFYpe3dWKDIwNDgsMSwiIiwic3RyaW5nIiwxMCwiICIsVCxWKX0pOnUoVCwxMSwic3RyaW5nIixBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoeFkoNDEsIiIsVCksZnVuY3Rpb24oVil7cmV0dXJuIShKKDU4LDEsSyxWKT49MCl9KS5qb2luKCIgIikpLHg9ODApfX19LFQwPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyl7cmV0dXJuIFNILmNhbGwodGhpcyw1NCw4OCxGLE0sVCxLLHgsRyxWLHcpfSxTPWZ1bmN0aW9uKEYsTSxUKXtUPUYuQltNXTtzd2l0Y2goIShUPT09dm9pZCAwKSl7Y2FzZSAwPT09LTA6TmFOPT09TmFOO2JyZWFrO2Nhc2UgZmFsc2U6dGhyb3dbWW4sMzAsTV07YnJlYWt9Zm9yKHRydWUhPVtdO1QudmFsdWU7MCE9IVsiIl09PW51bGwpe3JldHVybiBULmNyZWF0ZSgpO2lmKG51bGwhPWZhbHNlKWJyZWFrfXJldHVybihULmNyZWF0ZShNKjUqTSstOTAqTSs0NCksVCkucHJvdG90eXBlfSxKPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFApe3tQPTI1O3doaWxlKFAhPTY3KWlmKFA9PTk4KWM9TSxQPTY1O2Vsc2V7aWYoUD09NjUpcmV0dXJuIGM7aWYoUD09NDMpdGhpcy5WPXRoaXMuVix0aGlzLkFSPXRoaXMuQVIsUD03MztlbHNlIGlmKFA9PTg1KXthOmlmKHR5cGVvZiBUPT09InN0cmluZyIpYz10eXBlb2YgSyE9PSJzdHJpbmcifHxLLmxlbmd0aCE9TT8tMTpULmluZGV4T2YoSywwKTtlbHNle2Zvcih4PTA7eDxULmxlbmd0aDt4KyspaWYoeCBpbiBUJiZUW3hdPT09Syl7Yz14O2JyZWFrIGF9Yz0tMX1QPTQ4fWVsc2UgaWYoUD09MjEpUD1GPDwxPDI2JiYoRl43OSk+PTIwPzQzOjczO2Vsc2UgaWYoUD09NjApUD1GKzQ+PjQ+PTMmJigoRl41NikmMTIpPDE\/ODU6NDg7ZWxzZSBpZihQPT03MSl7YTp7Zm9yKHc9TTt3PFQubGVuZ3RoOysrdylpZihWPVRbd10sIVYuRk4mJlYubGlzdGVuZXI9PXgmJlYuY2FwdHVyZT09ISFLJiZWLm1XPT1HKXtjPXc7YnJlYWsgYX1jPS0xfVA9MjF9ZWxzZSBpZihQPT03MylQPShGfDkpPj40Pj0wJiYoRl40Nik8OD85ODo2NTtlbHNlIGlmKFA9PTY5KVA9KEYrNyY3KT09ND8xNjo2MDtlbHNlIGlmKFA9PTQ4KVA9KEYmOTApPT1GPzcxOjIxO2Vsc2UgaWYoUD09MTYpe2lmKEcuTj0oKFY9KHE9KHQ9KFR8fEcuWjYrKyxHLkltKT5NJiZHLlVLJiZHLmw2JiZHLnhOPD0xJiYhRy5sJiYhRy5oJiYoIVR8fEcuRlYtSz4xKSYmZG9jdW1lbnQuaGlkZGVuPT0wLChOPUcuWjY9PTQpfHx0P0cuSigpOkcuYW0pLHEtRy5hbSksRykuRys9Vj4+MTQ+TSxHLksmJihHLktePShHLkcrMT4+MikqKFY8PDIpKSxHLkcrMT4+MikhPU18fEcuTixOfHx0KUcuYW09cSxHLlo2PU07dD8oRy5JbT5HLk9LJiYoRy5PSz1HLkltKSxxLUcubDM8Ry5JbS0oeD8yNTU6VD81OjIpP2M9ZmFsc2U6KEcuRlY9Syx3PVooRyxUPzM1ODo3KSxuKDcsRyxHLkMpLEcudi5wdXNoKFtNTSx3LFQ\/SysxOkssRy5qLEcuWV0pLEcuaD1GcyxjPXRydWUpKTpjPWZhbHNlLFA9NjB9ZWxzZSBQPT0yNSYmKFA9NjkpfX19LEVHPWZ1bmN0aW9uKEYsTSxULEspe2ZvcihLPTY0O0shPTI5OylpZihLPT03OClLPShNfDQ4KT09TT80OkY7ZWxzZSBpZihLPT0yMylLPShNJjQxKT09TT83Mjo3ODtlbHNlIGlmKEs9PTQpVD1NYXRoLmZsb29yKHRoaXMudTMrKHRoaXMuSigpLXRoaXMubDMpKSxLPUY7ZWxzZSBpZihLPT04NCl0aGlzW3RoaXMrIiJdPXRoaXMsSz0yMztlbHNlIGlmKEs9PTcyKUs9Nzg7ZWxzZSBpZihLPT05OClLPU0rMzwyNCYmTSsxPj05Pzg0OjIzO2Vsc2UgaWYoSz09NjQpSz05ODtlbHNlIGlmKEs9PUYpcmV0dXJuIFR9LE9HPWZ1bmN0aW9uKEYsTSxULEsseCl7e3g9Rjt3aGlsZSh4IT04OClpZih4PT0xMSlLPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChNLFp3KSYmTVtad118fChNW1p3XT0rK2wwKSx4PTc5O2Vsc2UgaWYoeD09NzkpeD0oVCsyXjIzKTxUJiYoVCsxJjMxKT49VD85NjoxODtlbHNlIGlmKHg9PUYpeD05NTtlbHNlIGlmKHg9PTk2KXRoaXMuc3JjPU0sdGhpcy5pPXt9LHRoaXMuc0s9MCx4PTE4O2Vsc2UgaWYoeD09OTUpeD0oVHwxKSYyPzc5OjExO2Vsc2UgaWYoeD09MTgpcmV0dXJuIEt9fSx4WT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7Zm9yKHQ9MjY7dCE9MjU7KWlmKHQ9PTQyKXE9TWF0aC5mbG9vcih0aGlzLkooKSksdD02MztlbHNlIGlmKHQ9PTkwKXQ9KEYmMTA2KT09Rj80MTo4MTtlbHNlIGlmKHQ9PTM3KU4rKyx0PTU7ZWxzZSBpZih0PT0yOSlxPVQuY2xhc3NMaXN0P1QuY2xhc3NMaXN0Ok1YKDksTSwic3RyaW5nIixUKS5tYXRjaCgvXFxTKy9nKXx8W10sdD05NztlbHNlIGlmKHQ9PTk2KWM9ZnVuY3Rpb24oKXt9LEs9dm9pZCAwLFY9VzgoTSxmdW5jdGlvbihQLHkpe2Zvcih5PTk3O3khPTk4Oyl5PT0xMj8oVCYmRnMoVCksSz1QLGMoKSxjPXZvaWQgMCx5PTk4KTp5PT05NyYmKHk9Yz8xMjo5OCl9LCEhVCkseD1WWzFdLEc9VlswXSxxPXt0b3A6ZnVuY3Rpb24oUCx5LHosRCxILFksZCl7Zm9yKGQ9ODU7ZCE9Njg7KWlmKGQ9PTk1KVkoKSxkPTY4O2Vsc2UgaWYoZD09NjIpZD1LPzk1Ojk7ZWxzZSBpZihkPT04NSlZPWZ1bmN0aW9uKCl7SyhmdW5jdGlvbihCKXtGcyhmdW5jdGlvbigpe1AoQil9KX0seil9LGQ9NTE7ZWxzZSBpZihkPT01MSlkPXk\/NjI6MTg7ZWxzZSBpZihkPT05KUQ9YyxjPWZ1bmN0aW9uKCl7KEQoKSxGcykoWSl9LGQ9Njg7ZWxzZSBpZihkPT0xOClyZXR1cm4gSD1HKHopLFAmJlAoSCksSH0scGU6ZnVuY3Rpb24oUCl7eCYmeChQKX19LHQ9MzY7ZWxzZSBpZih0PT0yNil0PTkwO2Vsc2UgaWYodD09MTgpdD0oRiY4OSk9PUY\/NDI6NjM7ZWxzZSBpZih0PT02MilUQShmYWxzZSx4LDAsMzIsdHJ1ZSx3LEssRyxWKSx0PTE4O2Vsc2UgaWYodD09MzIpeFkoMTIsIm9iamVjdCIsZmFsc2UsSyx4LEcsVltOXSx3KSx0PTM3O2Vsc2UgaWYodD09NDEpRz10eXBlb2YgeCxWPUchPVQ\/Rzp4P0FycmF5LmlzQXJyYXkoeCk\/ImFycmF5IjpHOiJudWxsIixxPVY9PUt8fFY9PVQmJnR5cGVvZiB4Lmxlbmd0aD09TSx0PTgxO2Vsc2UgaWYodD09MzYpdD0oRj4+MSYyMSk9PTQ\/NzY6MTg7ZWxzZXtpZih0PT02MylyZXR1cm4gcTt0PT01P3Q9TjxWLmxlbmd0aD8zMjoxODp0PT02PyhHPUdBKDMzLEcpLEsmJktbdDJdP0suSC5hZGQoU3RyaW5nKFYpLEcsVCxjOCg4LE0seCk\/ISF4LmNhcHR1cmU6ISF4LHcpOnNHKGZhbHNlLDE1LCJvYmplY3QiLEcsdyxWLHgsVCxLKSx0PTE4KTp0PT05Nz90PUYrOSYyMj8zNjo5Njp0PT03PyhOPTAsdD0xNSk6dD09NzY\/dD14JiZ4Lm9uY2U\/NjI6MzM6dD09MTU\/dD01OnQ9PTgxP3Q9KEZ8NDApPT1GPzI5Ojk3OnQ9PTMzJiYodD1BcnJheS5pc0FycmF5KFYpPzc6Nil9fSxkWT1mdW5jdGlvbihGKXtyZXR1cm4gWGIuY2FsbCh0aGlzLDgsMyxGKX0sa1k9ZnVuY3Rpb24oRixNKXtpZihmYWxzZSE9IVtdIT1udWxsKXJldHVybiBHMC5jYWxsKHRoaXMsOSwzLEYsTSl9LG5ZPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFAseSl7eT03Mzt7Yz05O3doaWxlKHRydWUpdHJ5e2lmKHk9PTApYnJlYWs7ZWxzZSBpZih5PT03MSl5PTI2O2Vsc2UgaWYoeT09NzApeT1LJiZGLmg\/NjozMTtlbHNlIGlmKHk9PTYzKVA9dyx5PTQ1O2Vsc2UgaWYoeT09MzQpYz05LHdWKDIwNDgscSwiOiIsRiwyNCkseT04ODtlbHNlIGlmKHk9PTEpeT0oRyY0NCk9PUc\/NzE6NDU7ZWxzZSBpZih5PT0yNil5PUYudi5sZW5ndGg\/MzM6NjM7ZWxzZSBpZih5PT03Myl5PTM4O2Vsc2UgaWYoeT09ODgpYz05LHk9NzA7ZWxzZSBpZih5PT0xNyljPTgwLHc9c3koRixOLE0seCkseT04ODtlbHNlIGlmKHk9PTQzKUs9TSxLPSh4PUs8PDEzLC1+KEsmeCkrfngrKEsmfngpKzIqKH5LJngpKSxLXj1LPj4xNyxLPShGPUs8PDUsLShLfDApLTEtfihLfEYpKyhLJn5GKSksKEsmPVQpfHwoSz0xKSxQPShWfEspK34oViZLKS0gLTEseT0xO2Vsc2UgaWYoeT09MzgpeT0oRy0zJjMpPj0yJiYoRys4JjYpPDM\/NDM6MTtlbHNlIGlmKHk9PTMxKXk9MjY7ZWxzZSBpZih5PT0zMylGLmg9VixOPUYudi5wb3AoKSx5PTE3O2Vsc2V7aWYoeT09NDUpcmV0dXJuIFA7eT09NiYmKHQ9Ri5oLHQoZnVuY3Rpb24oKXtlKDE2LDAsVCxULEYpfSkseT02Myl9fWNhdGNoKHope2lmKGM9PTkpdGhyb3cgejtjPT04MCYmKHE9eix5PTM0KX19fSxZWT1mdW5jdGlvbigpe3JldHVybiBKLmNhbGwodGhpcywzKX0sWGI9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCl7Zm9yKHQ9MTA7dCE9MjY7KWlmKHQ9PTY5KXc9dzw8S3xUW0ddLHgrPUssdD04MztlbHNlIGlmKHQ9PTUwKXQ9KE0+PjImMjMpPT0yPzgwOjI4O2Vsc2UgaWYodD09ODApVChmdW5jdGlvbihxKXtxKEspfSksTj1bZnVuY3Rpb24oKXtyZXR1cm4gS30sZnVuY3Rpb24oKXt9XSx0PTI4O2Vsc2UgaWYodD09ODMpdD0zMDtlbHNlIGlmKHQ9PTc5KU49VCYmVC5wYXJlbnROb2RlP1QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChUKTpudWxsLHQ9ODk7ZWxzZSBpZih0PT03Nyl0PTMwO2Vsc2UgaWYodD09ODkpdD1NLTc8PDI+PU0mJihNLTJ8NTcpPE0\/Njc6NTtlbHNlIGlmKHQ9PTk5KXgtPUYsVi5wdXNoKHc+PngmMjU1KSx0PTc3O2Vsc2UgaWYodD09NDYpdD1NK0Y+PjQ\/ODk6Nzk7ZWxzZSBpZih0PT0xOClOPVYsdD0yO2Vsc2UgaWYodD09NjQpRysrLHQ9OTY7ZWxzZXtpZih0PT0yKXJldHVybiBOO3Q9PTEwP3Q9NTA6dD09NT90PShNXjE3KTw3JiYoTXw1KT4+Mz49MT84NjoyOnQ9PTg2Pyh4PUc9MCxWPVtdLHQ9OTApOnQ9PTk2P3Q9RzxULmxlbmd0aD82OToxODp0PT02Nz8oRz1KKDU5LDEsSyx4KSwoVj1HPj1UKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKEssRywxKSxOPVYsdD01KTp0PT05MD90PTk2OnQ9PTE\/KEsuTVooZnVuY3Rpb24ocSl7Rz1xfSxULHgpLE49Ryx0PTQ2KTp0PT0yOD90PU0rNiYxMz80NjoxOnQ9PTMwJiYodD14Pjc\/OTk6NjQpfX0sbD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7aWYoKFQrM144KTxUJiYoVC05XjIwKT49VClpZih4PVZkKCJzcGxpY2UiLCJudW1iZXIiLEspPT09ImFycmF5Ij9LOltLXSx0aGlzLkYpRih0aGlzLkYpO2Vsc2UgdHJ5e0c9W10sVj0hdGhpcy52Lmxlbmd0aCx1KHRoaXMsMzMsMCxbUF8sRyx4XSksdSh0aGlzLDM0LDAsW3RELEYsR10pLE0mJiFWfHxlKDE2LDAsdHJ1ZSxNLHRoaXMpfWNhdGNoKFApe3dWKDIwNDgsUCwiOiIsdGhpcywyMSksRih0aGlzLkYpfXJldHVybigoVF4oKFQmMTA2KT09KChUJjI5KT09VCYmKHg9clYoOCx0cnVlLE0pLHgmMTI4JiYoeD0oRz14JjEyNyxLPXJWKDgsdHJ1ZSxNKTw8RiwoS3wwKSt+Sy1+KEd8SykpKSxxPXgpLFQpJiYodz1HJjcsdD1jXyx4PVstNTgsLTkwLDgzLDQyLDI3LC04Mix4LC02NiwtNDQsNTZdLE49eG5bTS5VXShNLkhiKSxOW00uVV09ZnVuY3Rpb24oUCl7dys9Nis3KkcsdyY9KFY9UCw3KX0sTi5jb25jYXQ9ZnVuY3Rpb24oUCx5LHosRCl7cmV0dXJuKChWPSh6PShEPShQPUslMTYrMSwtMTc1KksqSypWKS1QKlYreFt3KzM1JjddKksqUC0xNTQwKlYrdy0gLTMxNTAqSypWKzM1KlYqVisodCgpfEYpKlArNSpLKksqUCx4KVtEXSx2b2lkIDApLHgpWyh5PXcrNjksLTgtMip+KHl8NyktKHleNykrKH55fDcpKSsoRyYyKV09eix4KVt3KyhHJjIpXT0tOTAsen0scT1OKSwyOSkpJjcpPT00JiYoSz14bltNLlVdKE0uYjYpLEtbTS5VXT1mdW5jdGlvbigpe3JldHVybiBGfSxLLmNvbmNhdD1mdW5jdGlvbihQKXtGPVB9LHE9SyksKFQtMl45KT49VCYmKFQrMl4yNCk8VCYmKHE9Yz1mdW5jdGlvbigpe2Zvcih2YXIgUD0yODtQIT01NjspaWYoUD09MjgpUD1HLk49PUc\/NTU6NTY7ZWxzZSBpZihQPT02MilQPUs9PTI\/MzU6NDtlbHNlIGlmKFA9PTM1KXt2YXIgeT1lKCh1KEcsMzIsMCxEKSw2NSksMCxGLEYsRyk7UD00M31lbHNlIGlmKFA9PTU1KVA9Ry5CPzIxOjU0O2Vsc2UgaWYoUD09OTgpe3ZhciB6PSFHLnYubGVuZ3RoO1A9KHUoRywzNSwwLEQpLHomJmUoNjQsMCxGLEYsRyksNDMpfWVsc2V7aWYoUD09NDMpcmV0dXJuIHk7aWYoUD09OTIpeT1zeShHLEQsMiw2KSxQPTQzO2Vsc2UgaWYoUD09NTQpdyYmTiYmdy5yZW1vdmVFdmVudExpc3RlbmVyKE4sYyx3WSksUD01NjtlbHNlIGlmKFA9PTQpUD1LPT1NPzk4OjkyO2Vsc2UgaWYoUD09MjEpdmFyIEQ9W05NLHgsKFA9NjIsViksdm9pZCAwLHcsTixhcmd1bWVudHNdfX0pLHF9LG9EPWZ1bmN0aW9uKEYsTSl7cmV0dXJuIEcwLmNhbGwodGhpcyw5LDY4LEYsTSl9LHU9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMpe2ZvcihxPTQ4O3EhPTQ2OylpZihxPT05MilWKz1ULmNoYXJDb2RlQXQoeCksVis9Vjw8MTAsVj0odz1WPj42LChWfDApKyh3fDApLTIqKFYmdykpLHE9MztlbHNlIGlmKHE9PTQxKXE9Sy5pW3hdLmxlbmd0aD09VD85NDo2MDtlbHNlIGlmKHE9PTYwKXE9KE1eNDQpPj4zPT0yPzY0OjQ0O2Vsc2UgaWYocT09MzgpVis9Vjw8MyxWPSh0PVY+PjExLChWfHQpK34oVnx0KSsoViZ+dCktKFZ8fnQpKSxHPVYrKFY8PDE1KT4+PjAsTj1uZXcgTnVtYmVyKEcmKDE8PEYpLTEpLE5bMF09KEc+Pj5GKSVLLGM9TixxPTQ0O2Vsc2UgaWYocT09Myl4KysscT00MjtlbHNlIGlmKHE9PTQyKXE9eDxULmxlbmd0aD85MjozODtlbHNlIGlmKHE9PTQ4KXE9NjU7ZWxzZSBpZihxPT0wKSRZKDEsMjEsdHJ1ZSxGKSxxPTQxO2Vsc2UgaWYocT09MjcpcT0oTS0yfDcxKTxNJiZNLTY8PDE+PU0\/NTI6NjA7ZWxzZSBpZihxPT02NSlxPShNLTF8MSk+PU0mJk0tODw8MTxNPzU1OjE1O2Vsc2UgaWYocT09NDQpcT0oTS0xfDgpPj1NJiYoTSs3XjE4KTxNPzE4OjUzO2Vsc2UgaWYocT09OTYpRi52LnNwbGljZShULFQsSykscT0yNztlbHNlIGlmKHE9PTY0KVY9eD0wLHE9NjtlbHNlIGlmKHE9PTE1KXE9TT4+MiYyMz8yNzo5NjtlbHNlIGlmKHE9PTU1KXR5cGVvZiBGLmNsYXNzTmFtZT09VD9GLmNsYXNzTmFtZT1LOkYuc2V0QXR0cmlidXRlJiZGLnNldEF0dHJpYnV0ZSgiY2xhc3MiLEspLHE9MTU7ZWxzZSBpZihxPT01Mil4PUYudHlwZSxxPTI5O2Vsc2UgaWYocT09MjkpcT14IGluIEsuaSYmWGIoOCw2MixULEsuaVt4XSxGKT8wOjYwO2Vsc2V7aWYocT09NTMpcmV0dXJuIGM7cT09MTg\/KGM9KE49UWxbVC5zdWJzdHJpbmcoMCwzKSsiXyJdKT9OKFQuc3Vic3RyaW5nKDMpLEYsSyx4LEcsVix3KTpYYig4LDgsRixUKSxxPTUzKTpxPT02P3E9NDI6cT09OTQmJihkZWxldGUgSy5pW3hdLEsuc0stLSxxPTYwKX19LGM4PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQpe2ZvcihOPTM2O04hPTE1OylpZihOPT0xMylOPShGKzMmNDcpPEYmJihGLTdeOCk+PUY\/MzI6MTc7ZWxzZSBpZihOPT0xMClOPShGLTJeMTEpPEYmJihGLTJeNyk+PUY\/OTQ6MTM7ZWxzZSBpZihOPT0zMil7Zm9yKEcgaW4gVj1NLEsuaSl7Zm9yKHg9Sy5pW0ddLHc9TTt3PHgubGVuZ3RoO3crKykrK1YsJFkoMSwxOSxULHhbd10pO0suc0stLSxkZWxldGUgSy5pW0ddfU49MTd9ZWxzZSBpZihOPT0xNylOPShGfDI0KT09Rj82Mzo0MztlbHNlIGlmKE49PTM2KU49NzE7ZWxzZSBpZihOPT0xOSlOPVY8Rz85ODoxMztlbHNle2lmKE49PTcpcmV0dXJuIHQ7Tj09OTg\/KFYgaW4gdyYmSy5jYWxsKHZvaWQgMCx3W1ZdLFYseCksTj00NSk6Tj09ODM\/Tj0xOTpOPT02Mz8odGhpc1t0aGlzKyIiXT10aGlzLHQ9UHJvbWlzZS5yZXNvbHZlKCksTj00Myk6Tj09OTQ\/KEc9eC5sZW5ndGgsdz10eXBlb2YgeD09PSJzdHJpbmciP3guc3BsaXQoTSk6eCxWPVQsTj04Myk6Tj09MjU\/KEs9TSx0PWZ1bmN0aW9uKCl7cmV0dXJuIEs8VC5sZW5ndGg\/e2RvbmU6ZmFsc2UsdmFsdWU6VFtLKytdfTp7ZG9uZTp0cnVlfX0sTj0xMCk6Tj09NDM\/Tj0oRi0zXjgpPj1GJiZGLTc8PDE8Rj80Ojc6Tj09NDU\/KFYrKyxOPTE5KTpOPT03MT9OPSgoRnwzKSYxNSk8NSYmRiszPj0xND8yNToxMDpOPT00JiYoSz10eXBlb2YgVCx0PUs9PU0mJlQhPW51bGx8fEs9PSJmdW5jdGlvbiIsTj03KX19LEs1PWZ1bmN0aW9uKCl7cmV0dXJuIEcwLmNhbGwodGhpcyw5LDUpfSx5bD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQLHkseixELEgpe2lmKChEPU8oRiw3KSxEKT49Ri5DKXRocm93W1luLDMxXTtmb3IodD0wLE49TSx6PUYuV2IubGVuZ3RoLHg9RDtOPjA7KUc9eCU4LHE9OC0oR3wwKSxjPXE8Tj9xOk4sSz14Pj4zLHc9Ri5ENltLXSxUJiYoSD1GLFY9eCxILkwhPVY+PjYmJihILkw9Vj4+NixQPVooSCwyMDIpLEguQmI9bUQoMjQsSC5LLDI1NSxILkwsWzAsMCxQWzFdLFBbMl1dKSksd149Ri5CYltLJnpdKSx0fD0odz4+OC0oR3wwKS0oY3wwKSYoMTw8YyktMSk8PChOfDApLShjfDApLE4tPWMseCs9YztyZXR1cm4gdigoeT10LEYpLDcsKER8MCkrKE18MCkpLHl9LG49ZnVuY3Rpb24oRixNLFQpe2lmKEY9PTd8fEY9PTM1OClNLkJbRl0\/TS5CW0ZdLmNvbmNhdChUKTpNLkJbRl09bChULE0sODEpO2Vsc2V7aWYoTS5iMyYmRiE9MjAyKXJldHVybjtGPT0yMjd8fEY9PTI0NXx8Rj09MzE3fHxGPT0yNjR8fEY9PTE4MHx8Rj09NDYwfHxGPT01MDh8fEY9PTIwN3x8Rj09MjM4fHxGPT00NTQ\/TS5CW0ZdfHwoTS5CW0ZdPWwoMCxNLDY0LEYsVCwyMikpOk0uQltGXT1sKDAsTSw3MixGLFQsODEpfUY9PTIwMiYmKE0uSz15bChNLDMyLGZhbHNlKSxNLkw9dm9pZCAwKX0sYj1mdW5jdGlvbihGLE0sVCxLLHgsRyxWKXtWPXRoaXM7dHJ5e2tuKFQsdGhpcyxNLEsseCxGLEcpfWNhdGNoKHcpe3doaWxlKHRydWUpaWYod1YoMjA0OCx3LCI6Iix0aGlzLDI1KSxGKGZ1bmN0aW9uKE4pe04oVi5GKX0pLDE1KWJyZWFrfX0sUkQ9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxKXtmb3IoSz0oVD0ocT1NLnJlcGxhY2UoL1xcclxcbi9nLCJcXG4iKSwwKSx3PVtdLDApO1Q8cS5sZW5ndGg7VCsrKU49cS5jaGFyQ29kZUF0KFQpLE48MTI4P3dbSysrXT1OOihOPDIwNDg\/d1tLKytdPShWPU4+PjYsLTEtflYtKH5WXjE5MikrKH5WfDE5MikpOig2NDUxMi0ofk4mNjQ1MTIpPT01NTI5NiYmVCsxPHEubGVuZ3RoJiYocS5jaGFyQ29kZUF0KFQrMSkmNjQ1MTIpPT01NjMyMD8oTj02NTUzNisoKE4mMTAyMyk8PDEwKSsocS5jaGFyQ29kZUF0KCsrVCkmMTAyMyksd1tLKytdPU4+PjE4fDI0MCx3W0srK109KEc9Tj4+RiY2MywyNTYtfkcrLTI1OC0oR3wtMTI5KSkpOndbSysrXT1OPj5GfDIyNCx3W0srK109KHQ9Tj4+NiY2MywtfnQrKHReMTI4KSsofnR8MTI4KSkpLHdbSysrXT0oeD1OJjYzLC1+eCsoeCYtMTI5KSsofnheMTI4KSsyKih+eCYxMjgpKSk7cmV0dXJuIHd9LE95PWZ1bmN0aW9uKEYpe3JldHVybiBKLmNhbGwodGhpcyw0MCxGKX0scFk9ZnVuY3Rpb24oKXtyZXR1cm4gaDIuY2FsbCh0aGlzLDgwLDUpfSxrbj1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0KXtOPSgoTS5IYj1HMCg5LDI5LCgoTS50eD1MNSxNLmh4PUM1LE0pLldiPU1bdERdLE0uVSkse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbmNhdCgpfX0pLE0pLmI2PXhuW00uVV0oTS5IYix7dmFsdWU6e3ZhbHVlOnt9fX0pLDApO3t0PVtdO3doaWxlKE48Mjg3KXRbTl09U3RyaW5nLmZyb21DaGFyQ29kZShOKSxOKyt9aWYoKE0uUXI9W10sdz13aW5kb3cucGVyZm9ybWFuY2V8fHt9LE0pLkc9KE0uRj12b2lkIDAsTS51Nj0wLE0uQz0wLE0uRDY9W10sTS5sPXZvaWQgMCxNLmdQPVtdLDEpLHRydWUpTS5oPW51bGw7TS5sMz0oTS52PSgoKE0uWU49ZmFsc2UsTSkud1A9VCxNKS5PSz0wLE0uTHY9W10sW10pLDApLE0uQj1bXSxNLnUzPTA7d2hpbGUoMTApaWYoTS5aPXZvaWQgMCx0cnVlKWJyZWFrOyhNLlo2PShNLnhOPShNLk9DPWZ1bmN0aW9uKHEpe3JldHVybiBJNC5jYWxsKHRoaXMscSwzKX0sTS5ZRT1LLE0uTD0oKChNLmIzPWZhbHNlLE0pLkt2PVtdLE0uaj1mYWxzZSxNKS5hbT0oTS5LPXZvaWQgMCxNLmw2PShNLlVLPWZhbHNlLChNLm5xPTI1LE0pLkZWPTgwMDEsZmFsc2UpLE0uQmI9KE0uSW09MCx2b2lkIDApLE0ucVg9KE0uUz0oKE0uWT1mYWxzZSxNKS5OPU0sMCksTS5qYT12b2lkIDAsdy50aW1lT3JpZ2lufHwody50aW1pbmd8fHt9KS5uYXZpZ2F0aW9uU3RhcnR8fDApLDApLHZvaWQgMCksMCksTS5oUj1bXSx2b2lkIDApLEYpJiZGLmxlbmd0aD09MiYmKE0uS3Y9RlsxXSxNLkx2PUZbMF0pO2ZvcighW107VjsxKXt0cnl7TS5qYT1KU09OLnBhcnNlKFYpfWNhdGNoKHEpe00uamE9e319aWYoMD09IVsiIl0pYnJlYWt9ZSgxNywwLHRydWUsdHJ1ZSwodShNLDM0LCh1KE0sKHUoTSwoSSgzNSxmdW5jdGlvbihxLGMsUCx5LHosRCxILFksZCxCLHAsVSxXLFZsLGgpe2ZvcihoPTgxO2ghPTExOylpZihoPT00OCloPUg8WT85MzoxMTtlbHNlIGlmKGg9PTkxKWg9cS5OPT1xPzk0OjExO2Vsc2UgaWYoaD09ODEpaD1KKDM3LDAsdHJ1ZSxjLHRydWUscSk\/MTE6NTc7ZWxzZSBpZihoPT03NClIKz1kLGg9NDg7ZWxzZSBpZihoPT02NCloPVZkKCJzcGxpY2UiLCJudW1iZXIiLFApPT0ib2JqZWN0Ij85OjkxO2Vsc2UgaWYoaD09OSl7Zm9yKFZsIGluIEQ9W10sUClELnB1c2goVmwpO2g9KFA9RCw5MSl9ZWxzZSBoPT05Mz8oVShQLnNsaWNlKEgsMyooSCZkKSt+ZC0ofkheZCkrKH5IJmQpKSxCKSxoPTc0KTpoPT05ND8oSD0wLFk9UC5sZW5ndGgsZD1kPjA\/ZDoxLGg9NTgpOmg9PTU4P2g9NDg6aD09NTcmJihXPWsocSwyNCkscD1rKHEsNyksej1rKHEsNDgpLHk9WCgzMixxKSxVPVMocSxwKSxQPU8ocSxXKSxkPU8ocSx6KSxCPVMocSx5KSxoPTY0KX0sTSwoSSg1OSwoZigyNjQsTSwkbigoSSgzLGZ1bmN0aW9uKHEsYyxQLHkseixELEgsWSl7SD1aKHEsKEQ9KGM9ayhxLCh6PWsocSwoeT1rKHEsKFk9WCgzNCxxKSwxMCkpLDQ4KSksNSkpLFopKHEsYyksUD1PKHEseSkseikpLG4oWSxxLGwoZmFsc2UsMSwxOSxELFAscSxIKSl9LChJKDM1LChJKChJKDI2LChJKDM1LGZ1bmN0aW9uKCl7fSwoSSg1OCwoTS5naz0oSSgyNyxmdW5jdGlvbihxLGMsUCl7ZigoYz0oUD1rKHEsMjQpLFgpKDM1LHEpLGMpLHEsIiIrTyhxLFApKX0sKEkoMzQsZnVuY3Rpb24ocSl7clkoNCxxKX0sTSwoSSg1OCxmdW5jdGlvbihxLGMsUCx5LHosRCxILFksZCxCLHApe2ZvcihwPTI3O3AhPTg0OylwPT0yNz8oWT1rKHEsNiksZD1rKHEsMTIpLEQ9ayhxLDMyKSxjPWsocSw3KSxCPU8ocSxkKSxQPU8ocSxEKSxIPVoocS5OLFkpLHk9WihxLGMpLHA9NDkpOnA9PTQ5P3A9SCE9PTA\/NTQ6ODQ6cD09NTQmJih6PWwoZmFsc2UsMSwxOCwxLFAscSx5LEgsQiksSC5hZGRFdmVudExpc3RlbmVyKEIseix3WSksTyhxLDE3KS5wdXNoKGZ1bmN0aW9uKCl7SC5yZW1vdmVFdmVudExpc3RlbmVyKEIseix3WSl9KSxuKDQ5MCxxLFtILEIsel0pLHA9ODQpfSwoSSgzNCwoSSgoSSgyNyxmdW5jdGlvbihxLGMsUCx5LHope2Zvcih6PTk4O3ohPTI0Oyl6PT0zMz8oUD1YKDMyLHEpLHk9ayhxLDEyKSxuKHkscSxmdW5jdGlvbihEKXtyZXR1cm4gZXZhbChEKX0oYkMoTyhxLk4sUCkpKSksej0yNCk6ej09OTgmJih6PUooMjksMCx0cnVlLGMsZmFsc2UscSk\/MjQ6MzMpfSxNLChmKDIyNyxNLChJKDMsZnVuY3Rpb24ocSxjLFAseSx6LEQpe3tEPTM0O3doaWxlKEQhPTM3KUQ9PTM0PyhQPWsocSwxOSksYz1sKDcscSwyOSksej1bXSxEPXk9MCk6RD09MD9EPTYwOkQ9PTYxPyhmKFAscSx6KSxEPTM3KTpEPT02NT8oei5wdXNoKHJWKDgsdHJ1ZSxxKSksRD0yMik6RD09MjI\/KHkrKyxEPTYwKTpEPT02MCYmKEQ9eTxjPzY1OjYxKX19LE0sKEkoNTgsZnVuY3Rpb24ocSxjLFApe2M9TygoUD1rKHEsNykscS5OKSxQKSxjWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoY1sxXSxjWzJdLHdZKX0sKEkoMjcsKE0ualg9KHYoTSw0NTQsKEkoMjYsZnVuY3Rpb24ocSxjLFAseSl7bigoeT1YKDM1LChjPXJWKDgsKFA9ayhxLDE0KSx0cnVlKSxxKSxxKSkseSkscSxaKHEsUCk+Pj5jKX0sKEkoMzQsKGYoMTcsKG4oMTgwLE0sKHYoTSwodihNLDIzOCwoSSg1OCxmdW5jdGlvbihxLGMsUCx5LHopeyh5PVZkKCJzcGxpY2UiLCh6PShjPWsocSwoUD1rKHEsNSksNDgpKSxTKShxLFApLCJudW1iZXIiKSx6KSxmKShjLHEseSl9LE0sKEkoNTksZnVuY3Rpb24ocSxjLFAseSx6LEQpe2YoKHo9TyhxLChjPVooKEQ9WCgzMCwoeT1rKHEsKFA9WCgzMixxKSwxMCkpLHEpKSxxKSx5KSxQKSk9PWMsRCkscSwreil9LChmKDI5MixNLChmKDMxNywodihNLCh2KE0sKHYoKE0uUWc9KEkoMjcsZnVuY3Rpb24ocSxjLFAseSx6KXtuKChjPU8ocSwoej0oeT1YKDMzLChQPWsocSwzMikscSkpLE8ocSx5KSksUCkpLHkpLHEseitjKX0sKG4oMTE1LE0sKEkoMjYsZnVuY3Rpb24ocSl7cDUoMyxxKX0sTSwoSSgoSSgzLGZ1bmN0aW9uKHEsYyxQLHkseixELEgsWSxkLEIscCxVLFcsVmwsaCxLWSxRLE5YLHIpe3tyPTU3O3doaWxlKHIhPTYzKXI9PTIxP3I9NTk6cj09OTE\/KEI9TlgoMSksYy5wdXNoKEIpLFArPUI\/MDoxLHI9NzQpOnI9PTE3PyhELnB1c2goWihxLFgoMzEscSkpKSxyPTI4KTpyPT03NT9yPXktLT8xNzowOnI9PTA\/KEkoMyxmdW5jdGlvbihMLEZiLGEsakgsbV8sUil7Zm9yKFI9NDE7UiE9NDc7KVI9PTQ\/KEZiLnB1c2goayhMLDU2KSksUj05NCk6Uj09Mjc\/Uj01MDpSPT01MD9SPW1fPj1GYi5sZW5ndGg\/NDoxMzpSPT00MT8oakg9MCxhPVtdLEZiPVtdLFI9MzEpOlI9PTUyP1I9akg8ej82NTo2MzpSPT02NT8obV89UVtqSF0sUj00Mik6Uj09OTM\/KGpIKyssUj01Mik6Uj09Mjg\/KGEucHVzaChtXyksUj05Myk6Uj09OTQ\/Uj01MDpSPT00Mj9SPWNbakhdPzI4OjI3OlI9PTEzPyhtXz1GYlttX10sUj0yOCk6Uj09MzE\/Uj01MjpSPT02MyYmKEwubD1sKEQuc2xpY2UoKSxMLDQ5KSxMLlo9bChhLEwsNjUpLFI9NDcpfSxxLFZsKSxyPTYzKTpyPT01MD9yPVU8ej85MTo5NTpyPT03ND8oVSsrLHI9NTApOnI9PTE0PyhjW2RdfHwoUVtkXT1OWChXKSkscj01NSk6cj09OTQ\/KGNbaF0mJihRW2hdPWsocSw1NikpLHI9ODMpOnI9PTg3P3I9NTA6cj09NDc\/cj03NTpyPT01NT8oZCsrLHI9OCk6cj09NTc\/KE5YPWZ1bmN0aW9uKEwsRmIpe2Zvcig7SDxMOylwfD1yVig4LHRydWUscSk8PEgsSCs9ODtyZXR1cm4gcD4+PShGYj1wJigxPDxMKS0oSC09TCwxKSxMKSxGYn0sVmw9ayhxLDE5KSxIPXA9MCxZPShLWT1OWCgzKSwtMS0yKn4oS1l8MSkrKH5LWV4xKSksej1OWCg1KSxQPTAsYz1bXSxVPTAscj04Nyk6cj09OTk\/KGg9MCxyPTIxKTpyPT0yOD9yPTc1OnI9PTgzPyhoKysscj01OSk6cj09NTI\/cj04OnI9PTQxPyhEPVtdLHk9WSxyPTQ3KTpyPT04P3I9ZDx6PzE0Ojk5OnI9PTk1PyhXPSgyK34oUHwxKSsyKihQJi0yKS0oflAmMSkpLnRvU3RyaW5nKDIpLmxlbmd0aCxkPTAsUT1bXSxyPTUyKTpyPT01OSYmKHI9aDx6Pzk0OjQxKX19LCgoSSgzNSxmdW5jdGlvbihxLGMsUCx5KXt2KHEsKGM9KFA9ayhxLCh5PWsocSwyNCksNikpLGsocSw2KSksYyksUyhxLHkpfHxaKHEsUCkpfSwodihNLDI5MywoZig0NCwoSSgzNCxmdW5jdGlvbihxLGMpe24oKGM9ayhxLDMyKSxjKSxxLFtdKX0sKG4oMzU4LChmKDcsTSwoSSgyNyxmdW5jdGlvbihxLGMsUCx5LHosRCxILFksZCxCKXtmb3IoQj02NztCIT01NzspQj09Mzg\/Qj1EPGMubGVuZ3RoPzU4OjYyOkI9PTYyPyhuKGQscSxIIGluIHp8MCksQj01Nyk6Qj09MTc\/Qj0zODpCPT01PyhEKyssQj0zOCk6Qj09Njc\/KHk9WCgzMyxxKSxQPWsocSwxMyksZD1YKDI5LHEpLGM9UyhxLHkpLHo9WihxLFApLEg9IiIsRD0wLEI9MTcpOkI9PTU4JiYoSCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoWT1jW0RdLC0yLShZfC0xMjIpLSh+WXwxMjEpKSksQj01KX0sKEkoMzUsZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZLGQpe3tkPTMxO3doaWxlKGQhPTk2KWQ9PTcwPyhIKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHpbUF1eMTIxKSxkPTUwKTpkPT01MD8oUCsrLGQ9NDgpOmQ9PTMyP2Q9NDg6ZD09NzY\/KGYoeSxxLERbSF0pLGQ9OTYpOmQ9PTQ4P2Q9UDx6Lmxlbmd0aD83MDo3NjpkPT0zMSYmKGM9WCgyOSxxKSxZPVgoMzEscSkseT1rKHEsNDApLEQ9TyhxLGMpLHo9UyhxLFkpLFA9MCxIPSIiLGQ9MzIpfX0sKEkoMzQsZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZKXt7WT01Mjt3aGlsZShZIT01NilZPT01ND8oSD0oKEh8MCkrKGwoNyxxLDUpfDApKSV6LGMucHVzaCh5W0hdKSxZPTE5KTpZPT01Mj8oUD1rKHEsMTMpLEQ9bCg3LHEsMTMpLGM9W10seT1TKHEsMTY2KSxIPTAsej15Lmxlbmd0aCxZPTcxKTpZPT02PyhuKFAscSxjKSxZPTU2KTpZPT03Nj9ZPUQtLT81NDo2Olk9PTcxP1k9NzY6WT09MTkmJihZPTc2KX19LE0sMjQpLE0pLDQxMiksTSksNDY2KSwwKSksTSksMCksTSksMzY3KSxNKSw1MSksSSg1OSxmdW5jdGlvbihxLGMsUCx5LHosRCxILFkpe3tZPTYwO3doaWxlKFkhPTQwKVk9PTk\/WT03MDpZPT03MD9ZPWMtLT84MzozMzpZPT0zMz8oZih6LHEsRCksWT00MCk6WT09NjA\/KHo9ayhxLDkpLGM9bCg3LHEsMjgpLEQ9IiIsSD1TKHEsMTY2KSx5PUgubGVuZ3RoLFA9MCxZPTkpOlk9PTgzPyhQPSgoUHwwKSsobCg3LHEsMTYpfDApKSV5LEQrPXRbSFtQXV0sWT0zOCk6WT09MzgmJihZPTcwKX19LE0sMzkxKSwwKSksTSksMjc1KSxuZXcgSUQoIlN1Ym1pdCIpKS5kaXNwb3NlKCksTSksMTgpLDMpLGZ1bmN0aW9uKHEsYyxQLHkpe1oocSwoUD1PKHEsKHk9ayhxLChjPVgoMzQscSksMTgpKSx5KSksYykpIT0wJiZuKDcscSxQKX0sTSw0MjYpLDQ1MCkpLHt9KSksTSksMjg3KSwwKSxNKSw0OTAsMCksNTA4KSxbXSksNDYwKSxbXSksTSksW10pLEUpKSxNKSw0ODQpLDEwMSkpLCRuKDQpKSksMjQ1KSwkbig0KSksSSgyNixmdW5jdGlvbihxKXtwNSg0LHEpfSxNLDIyMiksW10pKSxNKSxbXSksZnVuY3Rpb24ocSxjLFAseSx6KXt7ej01Nzt3aGlsZSh6IT00MCl6PT00PyhmKDcscSxxLkMpLHo9NDApOno9PTgwPyhQLS0sej00Mik6ej09Mj96PTQyOno9PTg0PyhQPXJWKDgsdHJ1ZSxxKSx6PTIpOno9PTU3PyhjPXEuZ1AucG9wKCksej03NSk6ej09ODg\/KGNbMTgwXT1xLkJbMTgwXSxjWzQ1NF09cS5CWzQ1NF0scS5CPWMsej00MCk6ej09NzU\/ej1jPzg0OjQ6ej09MjM\/KHk9ayhxLDEyKSxjW3ldPXEuQlt5XSx6PTgwKTp6PT00MiYmKHo9UD4wPzIzOjg4KX19KSxNLDI4KSxNKSw0NTIpLFsyMDQ4XSkpLDApLGZ1bmN0aW9uKHEsYyxQLHkseixEKXtmb3IoRD01NjtEIT03ODspRD09NTY\/RD1KKDIxLDAsdHJ1ZSxjLGZhbHNlLHEpPzc4OjYxOkQ9PTYxPyh5PUFEKDgscSx0cnVlLDApLFA9eS5hVCx6PXkuTlgsRD01NCk6RD09NTQ\/RD1xLk49PXF8fHo9PXEuT0MmJlA9PXE\/NjU6Nzg6RD09NjUmJih2KHEseS5zQyx6LmFwcGx5KFAseS5YKSkscS5hbT1xLkooKSxEPTc4KX0pLE0sMjc2KSxNKSw0MzMpLDgwKSksZigyMDcsTSxbMCwwLDBdKSxbMTU0LDAsMF0pKSwzNDUpKSwyNiksZnVuY3Rpb24ocSxjLFAseSx6LEQpe1A9TygoYz0oRD1YKDI5LHEpLHo9ayhxLDQwKSxYKDM0LHEpKSxxKSxEKTt3aGlsZSh7fSlpZih5PU8ocSx6KSx7fSlicmVhaztmKGMscSxQW3ldKX0sTSw0NzgpLGZ1bmN0aW9uKHEsYyl7Z1koMCwoYz1aKHEsayhxLDkpKSxxKS5OLDEwNCxjLDcpfSksTSwxOTQpLE0pLDE3MCksdihNLDIxMCxNKSwxMjUpKSxNKSwzOTgpLDApLGZ1bmN0aW9uKHEpe1goNiwwLDQscSl9KSxNLDM1NCksTSksNDY3KSxmdW5jdGlvbihxLGMsUCx5LHosRCxILFksZCxCKXtmb3IoQj04MTtCIT02NTspQj09ODE\/Qj1KKDUzLDAsdHJ1ZSxjLGZhbHNlLHEpPzY1OjUwOkI9PTUwJiYoeT1BRCg4LHEuTix0cnVlLDApLEg9eS5zQyxZPXkuTlgsRD15LmFULFA9eS5YLHo9UC5sZW5ndGgsZD16PT0wP25ldyBEW1ldOno9PTE\/bmV3IERbWV0oUFswXSk6ej09Mj9uZXcgRFtZXShQWzBdLFBbMV0pOno9PTM\/bmV3IERbWV0oUFswXSxQWzFdLFBbMl0pOno9PTQ\/bmV3IERbWV0oUFswXSxQWzFdLFBbMl0sUFszXSk6MigpLGYoSCxxLGQpLEI9NjUpfSksTSw0NjkpLDU5KSxmdW5jdGlvbihxLGMsUCx5LHosRCl7bigoYz1PKHEsKFA9TygoRD1rKCh6PVgoKHk9WCgzMCxxKSwzNikscSkscSksMTcpLHEpLHkpLHopKSxEKSxxLFAgaW4gY3wwKX0sTSw4MyksZnVuY3Rpb24ocSl7clkoMSxxKX0pLE0sNCksTSksNTAwKSw0KSkpLGZ1bmN0aW9uKHEsYyxQLHkseixELEgsWSl7e1k9ODA7d2hpbGUoWSE9ODcpWT09Nj8ocS5MPXZvaWQgMCxZPTc2KTpZPT01MT9ZPXEuTj09cT82OTo4NzpZPT03Nj9ZPUQ9PTI\/NTI6ODc6WT09NTI\/KHEuSz15bChxLDMyLGZhbHNlKSxxLkw9dm9pZCAwLFk9ODcpOlk9PTIyP1k9eT09MjAyPzY6ODc6WT09ODA\/KHk9ayhxLDU2KSxQPVgoMzYscSksYz1rKHEsMTApLFk9NTEpOlk9PTY5JiYoRD1aKHEsUCksSD1TKHEseSksej1TKHEsYyksSFtEXT16LFk9MjIpfX0pLE0sNDAwKSw1MykpLDMyKSwwLFt6QV0pLDM1KSwwLFtpQyx4XSksMCksW3VDLEddKSxNKSl9LGhEPWZ1bmN0aW9uKEYsTSl7ZnVuY3Rpb24gVCgpe3RoaXMudFI9dGhpcy5nPXRoaXMubj0wfXJldHVyblsoTT1uZXcgKFQucHJvdG90eXBlLkdpPWZ1bmN0aW9uKEsseCl7cmV0dXJuIHNHLmNhbGwodGhpcyxLLDI2LHgpfSxULnByb3RvdHlwZS5EbD1mdW5jdGlvbigpe3JldHVybiBEbi5jYWxsKHRoaXMsMTYsMyl9LEY9bmV3IFQsVCksZnVuY3Rpb24oSyl7Ri5HaShLKTt3aGlsZShudWxsPT0oIVtdPT1mYWxzZT09W10pPT0hW10hPVtdKWlmKE0uR2koSyksLTA9PT0wKWJyZWFrfSksZnVuY3Rpb24oSyl7cmV0dXJuIE09bmV3IChLPVtGLkRsKCksTS5EbCgpLEYuZyxNLmddLFQpLEt9XX0sVmQ9ZnVuY3Rpb24oRixNLFQsSyx4KXtLPXR5cGVvZiBUO3N3aXRjaCghKEs9PSJvYmplY3QiKSl7Y2FzZSAwPT0oIWZhbHNlIT0hIiIpOmZvcigwPT0hWyIiXTtLPT0iZnVuY3Rpb24iJiZ0eXBlb2YgVC5jYWxsPT0idW5kZWZpbmVkIjshIiI9PSEoMCE9IVt1bmRlZmluZWRdKSl7cmV0dXJuIm9iamVjdCI7aWYobnVsbCE9ZmFsc2UpYnJlYWt9YnJlYWs7Y2FzZSAhIW51bGw6c3dpdGNoKCFUKXtjYXNlIDA9PT0tMDpyZXR1cm4ibnVsbCI7YnJlYWs7Y2FzZSAhW106c3dpdGNoKCEoVCBpbnN0YW5jZW9mIEFycmF5KSl7Y2FzZSAhWyIiXT09TnVtYmVyKCk6dW5kZWZpbmVkO2JyZWFrO2Nhc2UgZmFsc2U6cmV0dXJuImFycmF5IjticmVha31pZihUIGluc3RhbmNlb2YgT2JqZWN0KXJldHVybiBLO2lmKCh4PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChUKSx4KT09IltvYmplY3QgV2luZG93XSIpaWYodHJ1ZSlyZXR1cm4ib2JqZWN0Ijtmb3IoISIiPT0hKFtdPT0oMD09ZmFsc2UpKTt4PT0iW29iamVjdCBBcnJheV0ifHx0eXBlb2YgVC5sZW5ndGg9PU0mJnR5cGVvZiBULnNwbGljZSE9InVuZGVmaW5lZCImJnR5cGVvZiBULnByb3BlcnR5SXNFbnVtZXJhYmxlIT0idW5kZWZpbmVkIiYmIVQucHJvcGVydHlJc0VudW1lcmFibGUoRik7ZmFsc2Upe3JldHVybiJhcnJheSI7aWYodHJ1ZSlicmVha31pZih4PT0iW29iamVjdCBGdW5jdGlvbl0ifHx0eXBlb2YgVC5jYWxsIT0idW5kZWZpbmVkIiYmdHlwZW9mIFQucHJvcGVydHlJc0VudW1lcmFibGUhPSJ1bmRlZmluZWQiJiYhVC5wcm9wZXJ0eUlzRW51bWVyYWJsZSgiY2FsbCIpKXJldHVybiJmdW5jdGlvbiI7YnJlYWt9YnJlYWt9cmV0dXJuIEt9LHA1PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYpe2V1KCgoRz0oVD0oVj0oRnwoeD1GJjQsMCkpLSAtMSsofkZ8MyksayhNLDE4KSksaykoTSwxNCksSz1aKE0sVCkseCYmKEs9UkQoMTIsIiIrSykpLFYpJiZldShNLEMoSy5sZW5ndGgsMiksRyksTSksSyxHKX0sSUQ9ZnVuY3Rpb24oRixNLFQpe3JldHVybiBqdS5jYWxsKHRoaXMsNTMsTSw2LEYsVCl9LFN1PWZ1bmN0aW9uKCl7cmV0dXJuIFNILmNhbGwodGhpcyw1NCw4KX0sRXk9ZnVuY3Rpb24oRixNLFQsSyx4KXtpZihGLmxlbmd0aD09Myl7Zm9yKFQ9MDtUPDM7VCsrKU1bVF0rPUZbVF07Zm9yKEs9WzEzLDgsMTMsMTIsMTYsNSwzLDEwLDE1XSx4PTA7eDw5O3grKylNWzNdKE0seCUzLEtbeF0pfX0sSkQ9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4pe3N3aXRjaCghKEYuTj09Rikpe2Nhc2UgMD09IVt1bmRlZmluZWRdOmZhbHNlO2JyZWFrO2Nhc2UgMCE9IVtdOmZvcihHPVooRixUKSxUPT0yNDV8fFQ9PTIzOHx8VD09MjY0Pyh4PWZ1bmN0aW9uKHQscSxjLFAseSx6LEQsSCxZKXtmb3IoWT0zNixEPTU4OzspdHJ5e2lmKFk9PTMyKWJyZWFrO2Vsc2V7aWYoWT09MCl0aHJvdyBEPTU4LEg7WT09NzA\/WT1HLkNxIT1QPzQwOjM6WT09NTc\/KEQ9OTAsRy55cj1tRCgyNCxrKDMsMjcsYyxHKSwyNTUsaygzLDQzLDMqKGMmNCkrMip+KGMmNCktIC01LSh+Y3w0KSxHKSx5KSxZPTMpOlk9PTQwPyhHLkNxPVAsYz0oej1QPDwzLC0oel40KS0yKih+el40KSsyKih6fC01KSkseT1bMCwwLE5bMV0sTlsyXV0sWT01Nyk6WT09Mz8oRy5wdXNoKEcueXJbcSY3XV50KSxZPTMyKTpZPT0zNiYmKHE9Ry5sZW5ndGgsUD0ocXwwKS00Pj4zLFk9NzApfX1jYXRjaChkKXtpZihEPT01OCl0aHJvdyBkO0Q9PTkwJiYoSD1kLFk9MCl9fSxOPVooRiwyMDcpKTp4PWZ1bmN0aW9uKHQpe0cucHVzaCh0KX0sSyYmeCg1MTAtKEt8MjU1KSsyKihLJi0yNTYpLShLXjI1NSkpLHc9MCxWPU0ubGVuZ3RoO3c8Vjt3KyspeChNW3ddKTticmVha319LER3PWZ1bmN0aW9uKEYsTSxUKXtyZXR1cm4oVD1GLmNyZWF0ZSgpLnNoaWZ0KCksTS5sKS5jcmVhdGUoKS5sZW5ndGh8fE0uWi5jcmVhdGUoKS5sZW5ndGh8fChNLmw9dm9pZCAwLE0uWj12b2lkIDApLFR9LE89ZnVuY3Rpb24oRixNLFQpe2lmKFQ9Ri5CW01dLFQ9PT12b2lkIDApdGhyb3dbWW4sMzAsTV07c3dpdGNoKCFULnZhbHVlKXtjYXNlIHRydWU6ISgwIT0hW3RydWUudHJ1ZV0pIT0hIiI7YnJlYWs7Y2FzZSBudWxsPT1mYWxzZTpyZXR1cm4gVC5jcmVhdGUoKTticmVha31yZXR1cm4gVC5jcmVhdGUoTSo1Kk0rLTkwKk0rNDQpLFQucHJvdG90eXBlfSx2Xz1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7e3E9ODA7d2hpbGUocSE9NjEpaWYocT09MzApcT1OPEsubGVuZ3RoPzk5OjYxO2Vsc2UgaWYocT09OTYpcT0zMDtlbHNlIGlmKHE9PTI1KXthOntpZih3JiZ0eXBlb2Ygdy5sZW5ndGg9PU0pe2lmKGM4KDMsIm9iamVjdCIsdykpe3Q9dHlwZW9mIHcuaXRlbT09ImZ1bmN0aW9uInx8dHlwZW9mIHcuaXRlbT09VjticmVhayBhfWlmKHR5cGVvZiB3PT09ImZ1bmN0aW9uIil7dD10eXBlb2Ygdy5pdGVtPT0iZnVuY3Rpb24iO2JyZWFrIGF9fXQ9ZmFsc2V9cT0oYzgoMTEsVCxHLGMsdD9TSCg1NCwxNixHLHcpOncpLDQxKX1lbHNlIHE9PTgwPyhjPWZ1bmN0aW9uKFApe1AmJnguYXBwZW5kQ2hpbGQodHlwZW9mIFA9PT0ic3RyaW5nIj9GLmNyZWF0ZVRleHROb2RlKFApOlApfSxOPTEscT05Nik6cT09OTA\/KGModykscT00MSk6cT09NDE\/KE4rKyxxPTMwKTpxPT04MT9xPSF4WSgxMCxNLCJvYmplY3QiLCJhcnJheSIsdyl8fGM4KDcsIm9iamVjdCIsdykmJncubm9kZVR5cGU+Rz85MDoyNTpxPT05OSYmKHc9S1tOXSxxPTgxKX19LHJWPWZ1bmN0aW9uKEYsTSxUKXtyZXR1cm4gVC5sP0R3KFQuWixUKTp5bChULEYsTSl9LG1EPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyl7dz0oVj0wLHhbMl18MCk7e0c9eFszXXwwO3doaWxlKFY8MTQpRz1HPj4+OHxHPDxGLEs9Sz4+Pjh8Szw8RixLKz1NfDAsS149dys1NTgsTT1NPDwzfE0+Pj4yOSxNXj1LLEcrPXd8MCxHXj1WKzU1OCx3PXc8PDN8dz4+PjI5LHdePUcsVisrfXJldHVybltNPj4+RiZULE0+Pj4xNiZULE0+Pj44JlQsTT4+PjAmVCxLPj4+RiZULEs+Pj4xNiZULEs+Pj44JlQsSz4+PjAmVF19LFhzPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFAseSl7TS5wdXNoKChHPShxPUZbMF08PDI0fEZbMV08PDE2LEs9RlsyXTw8OCwyKihLfDApK35LLSh+cXxLKSksYz1GWzNdLChHJmMpK35jLX4oR3xjKSsofkcmYykpKSxNLnB1c2goKHk9Rls0XTw8MjQsVD1GWzVdPDwxNix+eS0yKn4oeXxUKSsoeSZ+VCkrKH55XlQpKXxGWzZdPDw4fEZbN10pLE0ucHVzaCgoeD0oTj0oUD1GWzhdPDwyNCx0PUZbOV08PDE2LC1+UCsyKih+UCZ0KSsoUHx+dCkpLHc9RlsxMF08PDgsLX5OKyhOJn53KSsofk4mdykrKH5OfHcpKSxWPUZbMTFdLCh4fDApLTEtKHh8flYpKSl9LFo9ZnVuY3Rpb24oRixNLFQpe1Q9Ri5CW01dO3doaWxlKFQ9PT12b2lkIDApe3Rocm93W1luLDMwLE1dO2lmKHRydWUpYnJlYWt9Zm9yKHRydWUudHJ1ZTtULnZhbHVlO3ZvaWQgdW5kZWZpbmVkKXtyZXR1cm4gVC5jcmVhdGUoKTtpZihmYWxzZSE9bnVsbClicmVha31yZXR1cm4oVC5jcmVhdGUoTSo1Kk0rLTkwKk0rNDQpLFQpLnByb3RvdHlwZX0scU09ZnVuY3Rpb24oRixNKXtyZXR1cm4gZS5jYWxsKHRoaXMsMzIsRixNKX0sVzg9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3KXtyZXR1cm4gdS5jYWxsKHRoaXMsTSwxNyxGLFQsSyx4LEcsVix3KX0sUWQ9ZnVuY3Rpb24oRixNLFQsSyl7dHJ5e0s9Rlsofk0rLTMtNCp+KE18MikrMioofk1eMikpJTNdLEZbTV09KEZbTV18MCktKEZbKChNfDApKzEpJTNdfDApLShLfDApXihNPT0xP0s8PFQ6Sz4+PlQpfWNhdGNoKHgpe3Rocm93IHg7fX0sQSxnWT1mdW5jdGlvbihGLE0sVCxLLHgpe00uZ1AubGVuZ3RoPlQ\/VXkoTSxGLFtZbiwzNl0sRik6KE0uZ1AucHVzaChNLkIuc2xpY2UoKSksTS5CW3hdPXZvaWQgMCxmKHgsTSxLKSl9LG41PWZ1bmN0aW9uKCl7cmV0dXJuIHY4LmNhbGwodGhpcywxLDMsNil9LGY9ZnVuY3Rpb24oRixNLFQpe2lmKEY9PTd8fEY9PTM1OClNLkJbRl0\/TS5CW0ZdLmNvbmNhdChUKTpNLkJbRl09bChULE0sMzMpO2Vsc2V7aWYoTS5iMyYmRiE9MjAyKXJldHVybjtGPT0yMjd8fEY9PTI0NXx8Rj09MzE3fHxGPT0yNjR8fEY9PTE4MHx8Rj09NDYwfHxGPT01MDh8fEY9PTIwN3x8Rj09MjM4fHxGPT00NTQ\/TS5CW0ZdfHwoTS5CW0ZdPWwoMCxNLDM0LEYsVCwyMikpOk0uQltGXT1sKDAsTSw0MCxGLFQsODEpfUY9PTIwMiYmKE0uSz15bChNLDMyLGZhbHNlKSxNLkw9dm9pZCAwKX0sQTI9ZnVuY3Rpb24oRil7cmV0dXJuIE1YLmNhbGwodGhpcyw3LEYpfSxxOD1mdW5jdGlvbihGLE0sVCxLLHgpe3JldHVybiBUQS5jYWxsKHRoaXMsZmFsc2UsSyxGLDMsTSxULHgpfSxDPWZ1bmN0aW9uKEYsTSxULEsseCl7Zm9yKHg9KE18MCktMSxLPVtdO3g+PTA7eC0tKUtbKE18MCktMS0oeHwwKV09KFQ9Rj4+eCo4LC1+VC0yKihUJi0yNTYpKyhUXjI1NSkrKFR8LTI1NikpO3JldHVybiBLfSxBRD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0KXt4PWsoTSwoVj1NW2pMXXx8e30sNDApKTt3aGlsZSh7fSlpZighKFYuc0M9ayhNLDMyKSxbXSkhPXRydWUpYnJlYWs7Zm9yKEc9KHc9WCgzMywoTj0oVi5YPVtdLE0pLk49PU0\/KHQ9clYoRixULE0pLDIrMioodCYtMikrKHReMSkrMioofnReMSkpOjEsTSkpLEspO0c8TjtHKyspVi5YLnB1c2goWCgzMCxNKSk7Zm9yKDtOLS07Vi5YW05dPVooTSxWLlhbTl0pKTtyZXR1cm4gVi5hVD1TKE0sdyksVi5OWD1PKE0seCksVn0sZjU9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3JldHVybiB4WS5jYWxsKHRoaXMsMjMsRixNLFQsSyx4LEcpfSxNOD1mdW5jdGlvbihGLE0pe2Z1bmN0aW9uIFQoKXt0aGlzLnU9W10sdGhpcy5uPTB9cmV0dXJuIEY9bmV3IChNPShULnByb3RvdHlwZS5pNj0oVC5wcm90b3R5cGUuclA9ZnVuY3Rpb24oSyx4KXtyZXR1cm4gaDIuY2FsbCh0aGlzLDgwLDYsSyx4KX0sZnVuY3Rpb24oKXtyZXR1cm4gJFkuY2FsbCh0aGlzLDEsMTYpfSksbmV3IFQpLFQpLFtmdW5jdGlvbihLKXtNLnJQKEspLEYuclAoSyl9LGZ1bmN0aW9uKEspe3JldHVybiBGPW5ldyAoSz1NLmk2KCkuY29uY2F0KEYuaTYoKSksVCksS31dfSxpMD10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKEYsTSxULEspe3tLPTU0O3doaWxlKEshPTc2KWlmKEs9PTU0KUs9Rj09QXJyYXkucHJvdG90eXBlfHxGPT1PYmplY3QucHJvdG90eXBlPzkxOjE2O2Vsc2V7aWYoSz09OTEpcmV0dXJuIEY7aWYoSz09MTYpcmV0dXJuIEZbTV09VC52YWx1ZSxGfX19LHY9ZnVuY3Rpb24oRixNLFQpe2lmKE09PTd8fE09PTM1OClGLkJbTV0\/Ri5CW01dLmNvbmNhdChUKTpGLkJbTV09bChULEYsOTcpO2Vsc2V7aWYoRi5iMyYmTSE9MjAyKXJldHVybjtNPT0yMjd8fE09PTI0NXx8TT09MzE3fHxNPT0yNjR8fE09PTE4MHx8TT09NDYwfHxNPT01MDh8fE09PTIwN3x8TT09MjM4fHxNPT00NTQ\/Ri5CW01dfHwoRi5CW01dPWwoMCxGLDY2LE0sVCwyMikpOkYuQltNXT1sKDAsRiwzMixNLFQsODEpfU09PTIwMiYmKEYuSz15bChGLDMyLGZhbHNlKSxGLkw9dm9pZCAwKX0sV189ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3KXtpZighTS5GKXtNLnhOKys7dHJ5e3g9KHc9dm9pZCAwLE0uQyk7e1Y9MDt3aGlsZSgtLUspdHJ5e2lmKEc9dm9pZCAwLE0ubCl3PUR3KE0ubCxNKTtlbHNle2lmKChWPVMoTSxGKSxWKT49eClicmVhazt3PShHPVgoKHYoTSwzNTgsViksMzEpLE0pLFMoTSxHKSl9SigxMywodyYmd1tCX10mVD93KE0sSyk6VXkoTSwwLFtZbiwyMSxHXSwwKSwwKSxmYWxzZSxLLGZhbHNlLE0pfWNhdGNoKE4pe08oTSw0NCk\/VXkoTSwyMixOLDApOm4oNDQsTSxOKX19aWYoIUspe2lmKE0ubWYpe1dfKDcsTSwyMDQ4LChNLnhOLS0sOTMyOTY1OTY2MTcpKTtyZXR1cm59VXkoTSwwLFtZbiwzM10sMCl9fWNhdGNoKE4pe3RyeXtVeShNLDIyLE4sMCl9Y2F0Y2godCl7d1YoMjA0OCx0LCI6IixNLDUpfX1NLnhOLS19fSxDWT1mdW5jdGlvbihGLE0sVCxLLHgsRyl7cmV0dXJuIHY4LmNhbGwodGhpcywxLDMsNSxGLE0sVCxLLHgsRyl9LFV5PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFApe3N3aXRjaCghKCFGLmIzJiYoeD12b2lkIDAsVCYmVFtLXT09PVluJiYoeD1UWzJdLE09VFsxXSxUPXZvaWQgMCksRz1TKEYsMTgwKSxHLmxlbmd0aD09SyYmKFA9WihGLDM1OCk+PjMsRy5wdXNoKE0sKE49UD4+OCwtMjU1LTIqfihOfDI1NSkrMioofk5eMjU1KSsofk4mMjU1KSksLTEtfihQfDI1NSktKFBeMjU1KSkseCE9dm9pZCAwJiZHLnB1c2goeCYyNTUpKSx0PSIiLFQmJihULm1lc3NhZ2UmJih0Kz1ULm1lc3NhZ2UpLFQuc3RhY2smJih0Kz0iOiIrVC5zdGFjaykpLHc9TyhGLDQ1NCksd1tLXT4zKSkpe2Nhc2UgMD09PS0wOmZhbHNlO2JyZWFrO2Nhc2UgZmFsc2U9PW51bGw6Ri5OPShxPSh0PSh3W3Q9dC5zbGljZShLLCh3W0tdfEspLTMpLEtdLT0odC5sZW5ndGh8SykrMyxSRCgxMix0KSksRi5OKSxGKTt0cnl7Ri5ZTj8oVj0oVj1aKEYsNDYwKSkmJlZbVi5sZW5ndGgtMV18fDk1LChjPVooRiw1MDgpKSYmY1tjLmxlbmd0aC0xXT09Vnx8ZXUoRixbLTI1NS0yKn4oVnwyNTUpKyh+Vl4yNTUpKyh+VnwyNTUpXSw1MDgpKTpldShGLFs5NV0sNDYwKSxldShGLEModC5sZW5ndGgsMikuY29uY2F0KHQpLDI0NSw1MSl9ZmluYWxseXtGLk49cX1icmVha319LEZCPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjKXtmb3IodD0oYz1LLDU5KTs7KXRyeXtpZihjPT1GKWJyZWFrO2Vsc2V7aWYoYz09TSlyZXR1cm4gTjtpZihjPT04KWM9dyYmdy5jcmVhdGVQb2xpY3k\/VDpNO2Vsc2V7aWYoYz09NzIpcmV0dXJuIHQ9NTksTjtjPT02OD8oRS5jb25zb2xlW3hdKHEubWVzc2FnZSksYz03Mik6Yz09Nj9jPUUuY29uc29sZT82ODo3MjpjPT1UPyh0PTcwLE49dy5jcmVhdGVQb2xpY3koRyx7Y3JlYXRlSFRNTDpPeSxjcmVhdGVTY3JpcHQ6T3ksY3JlYXRlU2NyaXB0VVJMOk95fSksYz03Mik6Yz09Nzg\/KHQ9NTksYz02KTpjPT1LJiYoTj1WLHc9RS50cnVzdGVkVHlwZXMsYz04KX19fWNhdGNoKFApe2lmKHQ9PTU5KXRocm93IFA7dD09NzAmJihxPVAsYz03OCl9fSxhRD1mdW5jdGlvbihGLE0sVCxLLHgsRyl7cmV0dXJuIFooeCwodih4LChXXyg3LHgsKChHPU8oeCxUKSx4LkQ2KSYmRzx4LkM\/KGYoVCx4LHguQyksZ1koMCx4LDEwNCxNLFQpKTpmKFQseCxNKSwyMDQ4KSxLKSxUKSxHKSxGKSl9LGV1PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOKXtzd2l0Y2goIShGLk49PUYpKXtjYXNlIHRydWU6MDticmVhaztjYXNlIG51bGw9PWZhbHNlOnt4PVooRixUKSxUPT0yNDV8fFQ9PTIzOHx8VD09MjY0PyhWPWZ1bmN0aW9uKHQscSxjLFAseSx6LEQsSCxZKXtmb3IoRD0oWT0zMSw3MCk7Oyl0cnl7aWYoWT09NDcpYnJlYWs7ZWxzZSBpZihZPT02KXguQ3E9eixjPSh5PXo8PDMsLSh5XjQpLTIqKH55XjQpKzIqKHl8LTUpKSxxPVswLDAsTlsxXSxOWzJdXSxZPTE4O2Vsc2UgaWYoWT09MTgpRD03NCx4LnlyPW1EKDI0LGsoMywzMSxjLHgpLDI1NSxrKDMsNDcsMyooYyY0KSsyKn4oYyY0KS0gLTUtKH5jfDQpLHgpLHEpLFk9NDE7ZWxzZSBpZihZPT00MSl4LnB1c2goeC55cltQJjddXnQpLFk9NDc7ZWxzZSBpZihZPT0zMSlQPXgubGVuZ3RoLHo9KFB8MCktND4+MyxZPTExO2Vsc2UgaWYoWT09MTEpWT14LkNxIT16PzY6NDE7ZWxzZSBpZihZPT01KXRocm93IEQ9NzAsSDt9Y2F0Y2goZCl7aWYoRD09NzApdGhyb3cgZDtEPT03NCYmKEg9ZCxZPTUpfX0sTj1PKEYsMjA3KSk6Vj1mdW5jdGlvbih0KXt4LnB1c2godCl9LEsmJlYoNTEwLShLfDI1NSkrMiooSyYtMjU2KS0oS14yNTUpKSx3PTAsRz1NLmxlbmd0aDt3aGlsZSh3PEcpVihNW3ddKSx3Kyt9YnJlYWt9fSxSND1mdW5jdGlvbigpe3JldHVybiBJLmNhbGwodGhpcywxMil9LEtCPWZ1bmN0aW9uKEYsTSl7Zm9yKHZhciBUPTI7VCE9MTI7KWlmKFQ9PTY3KVQ9Nzc7ZWxzZSBpZihUPT0wKXt2YXIgSz1hcmd1bWVudHNbVl07Zm9yKEcgaW4gSylGW0ddPUtbR107dmFyIHg9KFQ9NCwwKX1lbHNlIGlmKFQ9PTYpeCsrLFQ9Njg7ZWxzZSBpZihUPT03NylUPVY8YXJndW1lbnRzLmxlbmd0aD8wOjEyO2Vsc2UgaWYoVD09NClUPTY4O2Vsc2UgaWYoVD09NjgpVD14PFRuLmxlbmd0aD84Mjo3ODtlbHNlIGlmKFQ9PTgyKXt2YXIgRz1Ublt4XTtUPShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSyxHKSYmKEZbR109S1tHXSksNil9ZWxzZSBpZihUPT0yKXZhciBWPShUPTY3LDEpO2Vsc2UgVD09NzgmJihWKyssVD03Nyl9LGRWPSRZKDEsMywib2JqZWN0IiwwLCJNYXRoIix0aGlzKSxFPShHQSgxOCwiLiIsMCwxLG51bGwsIlN5bWJvbCIsZnVuY3Rpb24oRixNLFQsSyx4LEcpe2Zvcih4PTMyO3ghPTU4Oyl7aWYoeD09MTgpcmV0dXJuIEY7aWYoeD09OTQpcmV0dXJuIEsucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSVR9LFQ9ImpzY29tcF9zeW1ib2xfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSsiXyIsTT0wLEc7eD09MzI\/KEs9ZnVuY3Rpb24oVix3KXt0aGlzLklUPVYsaTAodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6dHJ1ZSx3cml0YWJsZTp0cnVlLHZhbHVlOnd9KX0sRz1mdW5jdGlvbihWLHcpe2Zvcih3PTQ3O3chPTcwOylpZih3PT00Nyl3PXRoaXMgaW5zdGFuY2VvZiBHPzE0OjgxO2Vsc2V7aWYodz09ODEpcmV0dXJuIG5ldyBLKFQrKFZ8fCIiKSsiXyIrTSsrLFYpO2lmKHc9PTE0KXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO319LHg9NTQpOng9PTU0JiYoeD1GPzE4Ojk0KX19KSx0aGlzKXx8c2VsZixadz0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSxsMD0wLGVILFVHPWZ1bmN0aW9uKEYsTSxULEsseCxHKXtmb3IoSz04NyxHPTc4OzspdHJ5e2lmKEs9PTgyKWJyZWFrO2Vsc2UgaWYoSz09NTUpTT1mYWxzZSxUPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe009dHJ1ZX19KSxLPTg7ZWxzZXtpZihLPT04NSlyZXR1cm4gZmFsc2U7aWYoSz09NjEpRz03OCxLPTkzO2Vsc2UgaWYoSz09ODcpSz1FLmFkZEV2ZW50TGlzdGVuZXImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eT81NTo4NTtlbHNle2lmKEs9PTkzKXJldHVybiBHPTc4LE07Sz09OCYmKEc9MyxGPWZ1bmN0aW9uKCl7fSxFLmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLEYsVCksRS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixGLFQpLEs9OTMpfX19Y2F0Y2goVil7aWYoRz09NzgpdGhyb3cgVjtHPT0zJiYoeD1WLEs9NjEpfX0oKSx0Mj0oKChzRygyLDUsa1ksKFlZLnByb3RvdHlwZVsoWVkucHJvdG90eXBlLm89ZnVuY3Rpb24oRil7e0Y9Nzt3aGlsZShGIT02OSlGPT0zND9GPTgyOkY9PTcwPyh0aGlzLkFSLnNoaWZ0KCkoKSxGPTM0KTpGPT04Mj9GPXRoaXMuQVIubGVuZ3RoPzcwOjY5OkY9PTUzP0Y9ODI6Rj09NyYmKEY9dGhpcy5BUj81Mzo2OSl9fSxZWS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbihGKXtmb3IoRj0zOTtGIT0xNzspRj09NT8odGhpcy5WPXRydWUsdGhpcy5vKCksRj0xNyk6Rj09MzkmJihGPXRoaXMuVj8xNzo1KX0scU0ucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRydWV9LFlZKS5wcm90b3R5cGUuVj1mYWxzZSwocU0ucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuSlI9dHJ1ZX0sU3ltYm9sKS5kaXNwb3NlXT1mdW5jdGlvbigpe3doaWxlKHt9KWlmKHRoaXMuZGlzcG9zZSgpLHt9KWJyZWFrfSxxTSkpLGtZLnByb3RvdHlwZSkuaW5pdD1mdW5jdGlvbihGLE0sVCxLLHgsRyl7e0c9Mzt3aGlsZShHIT0yNSlHPT0yND9HPUs9PSJtb3VzZW92ZXIiPzk3Ojk2Okc9PTk2P0c9Sz09Im1vdXNlb3V0Ij80Njo3NTpHPT00Nj8oVD1GLnRvRWxlbWVudCxHPTc1KTpHPT05Nz8oVD1GLmZyb21FbGVtZW50LEc9NzUpOkc9PTc1Pyh0aGlzLnJlbGF0ZWRUYXJnZXQ9VCxHPTIxKTpHPT05Mj9HPVQ\/NzU6MjQ6Rz09NzA\/KHRoaXMuY2xpZW50WD14LmNsaWVudFghPT12b2lkIDA\/eC5jbGllbnRYOngucGFnZVgsdGhpcy5jbGllbnRZPXguY2xpZW50WSE9PXZvaWQgMD94LmNsaWVudFk6eC5wYWdlWSx0aGlzLnNjcmVlblg9eC5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT14LnNjcmVlbll8fDAsRz03OCk6Rz09Mz8oSz10aGlzLnR5cGU9Ri50eXBlLHg9Ri5jaGFuZ2VkVG91Y2hlcyYmRi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg\/Ri5jaGFuZ2VkVG91Y2hlc1swXTpudWxsLHRoaXMudGFyZ2V0PUYudGFyZ2V0fHxGLnNyY0VsZW1lbnQsdGhpcy5jdXJyZW50VGFyZ2V0PU0sVD1GLnJlbGF0ZWRUYXJnZXQsRz05Mik6Rz09Nzg\/KHRoaXMuYnV0dG9uPUYuYnV0dG9uLHRoaXMua2V5Q29kZT1GLmtleUNvZGV8fDAsdGhpcy5rZXk9Ri5rZXl8fCIiLHRoaXMuY2hhckNvZGU9Ri5jaGFyQ29kZXx8KEs9PSJrZXlwcmVzcyI\/Ri5rZXlDb2RlOjApLHRoaXMuY3RybEtleT1GLmN0cmxLZXksdGhpcy5hbHRLZXk9Ri5hbHRLZXksdGhpcy5zaGlmdEtleT1GLnNoaWZ0S2V5LHRoaXMubWV0YUtleT1GLm1ldGFLZXksdGhpcy5wb2ludGVySWQ9Ri5wb2ludGVySWR8fDAsdGhpcy5wb2ludGVyVHlwZT1GLnBvaW50ZXJUeXBlLHRoaXMuc3RhdGU9Ri5zdGF0ZSx0aGlzLnRpbWVTdGFtcD1GLnRpbWVTdGFtcCx0aGlzLkIkPUYsRi5kZWZhdWx0UHJldmVudGVkJiZrWS5ELnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyksRz0yNSk6Rz09NjU\/KHRoaXMub2Zmc2V0WD1GLm9mZnNldFgsdGhpcy5vZmZzZXRZPUYub2Zmc2V0WSx0aGlzLmNsaWVudFg9Ri5jbGllbnRYIT09dm9pZCAwP0YuY2xpZW50WDpGLnBhZ2VYLHRoaXMuY2xpZW50WT1GLmNsaWVudFkhPT12b2lkIDA\/Ri5jbGllbnRZOkYucGFnZVksdGhpcy5zY3JlZW5YPUYuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9Ri5zY3JlZW5ZfHwwLEc9NzgpOkc9PTIxJiYoRz14PzcwOjY1KX19LGtZLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtrWS5ELnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpLHRoaXMuQiQuc3RvcFByb3BhZ2F0aW9uP3RoaXMuQiQuc3RvcFByb3BhZ2F0aW9uKCk6dGhpcy5CJC5jYW5jZWxCdWJibGU9dHJ1ZX0sa1kucHJvdG90eXBlKS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbihGKXtpZihGPShrWS5ELnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyksdGhpcy5CJCkse30pRi5wcmV2ZW50RGVmYXVsdD9GLnByZXZlbnREZWZhdWx0KCk6Ri5yZXR1cm5WYWx1ZT1mYWxzZX0sImNsb3N1cmVfbGlzdGVuYWJsZV8iKSsoTWF0aC5yYW5kb20oKSoxRTZ8MCksVG49ImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZiIuc3BsaXQoIiAiKSxMWT0wLEoyPSJjbG9zdXJlX2xtXyIrKChIOC5wcm90b3R5cGUuYWRkPShIOC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyl7e3c9NTc7d2hpbGUodyE9OTkpaWYodz09MjEpdz1HLmxlbmd0aD09MD80OToxMjtlbHNlIGlmKHc9PTQ2KXc9Vj4tMT8yOTo3NztlbHNle2lmKHc9PTc3KXJldHVybiBmYWxzZTtpZih3PT02OSl3PXggaW4gdGhpcy5pPzA6Mzc7ZWxzZSBpZih3PT0yOSkkWSgxLDE4LHRydWUsR1tWXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKEcsViwxKSx3PTIxO2Vsc2UgaWYodz09MClHPXRoaXMuaVt4XSxWPUooMjQsMCxHLFQsTSxLKSx3PTQ2O2Vsc2UgaWYodz09NTcpeD1GLnRvU3RyaW5nKCksdz02OTtlbHNle2lmKHc9PTEyKXJldHVybiB0cnVlO2lmKHc9PTQ5KWRlbGV0ZSB0aGlzLmlbeF0sdGhpcy5zSy0tLHc9MTI7ZWxzZSBpZih3PT0zNylyZXR1cm4gZmFsc2V9fX19LGZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQpe3t0PTEzO3doaWxlKHQhPTg4KWlmKHQ9PTY5KXQ9VD83Njo0O2Vsc2UgaWYodD09MTMpTj1GLnRvU3RyaW5nKCksVj10aGlzLmlbTl0sdD02MDtlbHNle2lmKHQ9PTc2KXJldHVybiBHO3Q9PTM4PyhWPXRoaXMuaVtOXT1bXSx0aGlzLnNLKyssdD0zNik6dD09ND8oRy5vbT1mYWxzZSx0PTc2KTp0PT00Mz90PXc+LTE\/OTI6Mzk6dD09NjA\/dD1WPzM2OjM4OnQ9PTM2Pyh3PUooMTYsMCxWLEssTSx4KSx0PTQzKTp0PT05Mj8oRz1WW3ddLHQ9NjkpOnQ9PTM5JiYoRz1uZXcgeWQodGhpcy5zcmMsTiwhIUsseCxNKSxHLm9tPVQsVi5wdXNoKEcpLHQ9NzYpfX19KSxIOC5wcm90b3R5cGUuaGFzTGlzdGVuZXI9ZnVuY3Rpb24oRixNLFQsSyx4KXtyZXR1cm4gJFkoMSw0OSx0cnVlLCh4PShUPU0hPT12b2lkIDAsKEs9RiE9PXZvaWQgMCk\/Ri50b1N0cmluZygpOiIiKSxmYWxzZSksZnVuY3Rpb24oRyxWLHcpe2Zvcih3PTQ7dyE9MzU7KWlmKHc9PTQpVj0wLHc9MjE7ZWxzZSBpZih3PT0yMSl3PTE0O2Vsc2UgaWYodz09NzQpdz1LJiZHW1ZdLnR5cGUhPXh8fFQmJkdbVl0uY2FwdHVyZSE9TT8zNzo2NjtlbHNle2lmKHc9PTUpcmV0dXJuIGZhbHNlO2lmKHc9PTY2KXJldHVybiB0cnVlO3c9PTE0P3c9VjxHLmxlbmd0aD83NDo1Onc9PTM3JiYoKytWLHc9MTQpfX0sdGhpcy5pKX0sSDgucHJvdG90eXBlKS5TYT1mdW5jdGlvbihGLE0sVCxLLHgsRyl7cmV0dXJuIEc9KHg9dGhpcy5pW00udG9TdHJpbmcoKV0sLTEpLHgmJihHPUooMTgsMCx4LEssRixUKSksRz4tMT94W0ddOm51bGx9LE1hdGgucmFuZG9tKCkqMUU2fDApLEI4PXt9LG80PTAsdTA9Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTsoKEE9KHNHKDIsOSxSNCxZWSksUjQucHJvdG90eXBlW3QyXT10cnVlLFI0LnByb3RvdHlwZSksQS5QJD1mdW5jdGlvbihGKXt0aGlzLnFaPUZ9LEEuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihGLE0sVCxLKXt4WSgxMywib2JqZWN0IixmYWxzZSx0aGlzLFQsTSxGLEspfSxBKS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKEYsTSxULEspe01YKDMsIm9iamVjdCIsMCx0aGlzLFQsTSxGLEspfSxBKS5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjKXt7Yz03NTt3aGlsZShjIT05MilpZihjPT0xMSlHPTAsYz0xMDtlbHNlIGlmKGM9PTkxKUs9dHJ1ZSxjPTkzO2Vsc2V7aWYoYz09NSlyZXR1cm4gSztjPT00Mz9jPVY\/MTE6NTpjPT04MD8oRy0tLGM9ODQpOmM9PTA\/Yz0hTS5KUiYmRzxWLmxlbmd0aD80Mjo1OmM9PTU2Pyh3PXRoaXMuY2IsVj1OLE09RixUPU0udHlwZXx8TSxjPTQ0KTpjPT0xOT8ocT1NLmN1cnJlbnRUYXJnZXQ9VltHXSxLPUk0KHRydWUsMTIsVCxNLHEsdHJ1ZSkmJkssYz04MCk6Yz09OTk\/KE4ucHVzaCh4KSxjPTUyKTpjPT00Mj8ocT1NLmN1cnJlbnRUYXJnZXQ9VltHXSxLPUk0KHRydWUsMTEsVCxNLHEsZmFsc2UpJiZLLGM9ODEpOmM9PTUyPyh4PXgucVosYz0yMCk6Yz09NDg\/KE09bmV3IHFNKE0sdyksYz05MSk6Yz09ODE\/KEcrKyxjPTApOmM9PTIwP2M9eD85OTo1NjpjPT0xMD9jPTA6Yz09Mjc\/Yz1NLkpSPzQzOjY2OmM9PTU3P2M9eD83NDo1NjpjPT03ND8oTj1bXSxjPTEpOmM9PTc1Pyh4PXRoaXMucVosYz01Nyk6Yz09ODM\/KEc9Vi5sZW5ndGgtMSxjPTE2KTpjPT03MT8oTS50YXJnZXQ9TS50YXJnZXR8fHcsYz05MSk6Yz09NjY\/KHE9TS5jdXJyZW50VGFyZ2V0PXcsSz1JNCh0cnVlLDEwLFQsTSxxLHRydWUpJiZLLE0uSlJ8fChLPUk0KHRydWUsMTMsVCxNLHEsZmFsc2UpJiZLKSxjPTQzKTpjPT04ND9jPSFNLkpSJiZHPj0wPzE5OjI3OmM9PTQ0P2M9dHlwZW9mIE09PT0ic3RyaW5nIj80ODo0NzpjPT0zMT8odD1NLE09bmV3IHFNKFQsdyksS0IoTSx0KSxjPTkxKTpjPT0xP2M9MjA6Yz09OTM\/Yz1WPzgzOjI3OmM9PTE2P2M9ODQ6Yz09NDcmJihjPU0gaW5zdGFuY2VvZiBxTT83MTozMSl9fX0sQS5TYT1mdW5jdGlvbihGLE0sVCxLKXtyZXR1cm4gdGhpcy5ILlNhKEYsU3RyaW5nKE0pLFQsSyl9LEEubz1mdW5jdGlvbigpe3RoaXMucVo9KChSNC5ELm8uY2FsbCh0aGlzKSx0aGlzLkgpJiZjOCgxNCwwLHRydWUsdGhpcy5IKSxudWxsKX0sQS5oYXNMaXN0ZW5lcj1mdW5jdGlvbihGLE0pe3JldHVybiB0aGlzLkguaGFzTGlzdGVuZXIoRiE9PXZvaWQgMD9TdHJpbmcoRik6dm9pZCAwLE0pfTt2YXIgcVg7KCgoKChBPShzRygyLDMsKChEbigxNiwoKCgoKCgoQT0oIkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLCJJTlBVVCJdKSxwWS5wcm90b3R5cGUpLEEpLlA9ZnVuY3Rpb24oRixNKXtyZXR1cm4oTT10aGlzLkxxLHR5cGVvZiBGPT09InN0cmluZyIpP00uZ2V0RWxlbWVudEJ5SWQoRik6Rn0sQS5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihGLE0pe3JldHVybihNfHx0aGlzLkxxKS5nZXRFbGVtZW50c0J5VGFnTmFtZShTdHJpbmcoRikpfSxBKS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKEYsTSxUKXsoVD1TdHJpbmcoRiksTT10aGlzLkxxLE0pLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihUPVQudG9Mb3dlckNhc2UoKSk7d2hpbGUoMD09IVt1bmRlZmluZWRdKXtyZXR1cm4gTS5jcmVhdGVFbGVtZW50KFQpO2lmKHt9KWJyZWFrfX0sQSkuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oRil7cmV0dXJuIHRoaXMuTHEuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKEYpKX0sQS5hcHBlbmRDaGlsZD1mdW5jdGlvbihGLE0pe0YuYXBwZW5kQ2hpbGQoTSl9LEEpLmFwcGVuZD1mdW5jdGlvbihGLE0pe3ZfKEYubm9kZVR5cGU9PTk\/RjpGLm93bmVyRG9jdW1lbnR8fEYuZG9jdW1lbnQsIm51bWJlciIsIiIsYXJndW1lbnRzLEYsMCwic3RyaW5nIil9LEEpLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihGLE0pe3tNPTQ5O3doaWxlKE0hPTU4KXtpZihNPT04OSlyZXR1cm4gZmFsc2U7aWYoTT09NDkpTT1GLm5vZGVUeXBlIT0xPzg5OjE4O2Vsc2UgaWYoTT09MTgpe3N3aXRjaChGLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9fX19LEEpLnJlbW92ZU5vZGU9ZFksQS5jb250YWlucz1mdW5jdGlvbihGLE0sVCl7e1Q9OTt3aGlsZShUIT02MilpZihUPT02NylUPUYuY29udGFpbnMmJk0ubm9kZVR5cGU9PTE\/NDY6NTtlbHNle2lmKFQ9PTExKXJldHVybiBGPT1NfHwhIShGLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKE0pJjE2KTtpZihUPT03MSlUPTY4O2Vsc2UgaWYoVD09MjgpVD02ODtlbHNle2lmKFQ9PTI1KXJldHVybiBNPT1GO2lmKFQ9PTQ2KXJldHVybiBGPT1NfHxGLmNvbnRhaW5zKE0pO2lmKFQ9PTc1KXJldHVybiBmYWxzZTtUPT05P1Q9RiYmTT82Nzo3NTpUPT03Nj8oTT1NLnBhcmVudE5vZGUsVD0yOCk6VD09NT9UPXR5cGVvZiBGLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIj8xMTo3MTpUPT02OCYmKFQ9TSYmRiE9TT83NjoyNSl9fX19LDI5KSxTdSksU3UucHJvdG90eXBlLlVDPTAsU3UucHJvdG90eXBlKS5BeD0iIixBMiksUjQpLEEyKS5wcm90b3R5cGUsQSkueEU9U3UuYyQoKSxBLlA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UfSxBKS5nZXRQYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pM30sQS5OWj1mdW5jdGlvbigpe3RoaXMuVGk9IShqdSg1Myx0aGlzLDExLGZ1bmN0aW9uKEYpe0YuVGkmJkYuTlooKX0pLHRoaXMuemkmJmM4KDEzLDAsdHJ1ZSx0aGlzLnppKSwxKX0sQSkubz1mdW5jdGlvbihGKXtmb3IoRj01MTtGIT02ODspRj09MTA\/Rj10aGlzLnppPzc2OjQ5OkY9PTc2Pyh0aGlzLnppLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy56aSxGPTQ5KTpGPT01MT8odGhpcy5UaSYmdGhpcy5OWigpLEY9MTApOkY9PTQ5JiYoanUoNTMsdGhpcywxMixmdW5jdGlvbihNKXtNLmRpc3Bvc2UoKX0pLCF0aGlzLkN2JiZ0aGlzLlQmJmRZKHRoaXMuVCksdGhpcy5UPXRoaXMuaTM9dGhpcy5mcT10aGlzLmRQPW51bGwsQTIuRC5vLmNhbGwodGhpcyksRj02OCl9LEEpLlAkPWZ1bmN0aW9uKEYsTSl7Zm9yKE09OTI7TSE9MTg7KWlmKE09PTkyKU09dGhpcy5pMyYmdGhpcy5pMyE9Rj81ODo5MDtlbHNlIGlmKE09PTkwKUEyLkQuUCQuY2FsbCh0aGlzLEYpLE09MTg7ZWxzZSBpZihNPT01OCl0aHJvdyBFcnJvcigiTWV0aG9kIG5vdCBzdXBwb3J0ZWQiKTt9LEEpLnJlbW92ZUNoaWxkPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFApe2ZvcihQPTU0O1AhPTQ3OylpZihQPT04KUY9dCxQPTQ2O2Vsc2UgaWYoUD09NTIpRi5OWigpLEYuVCYmZFkoRi5UKSxQPTEwO2Vsc2UgaWYoUD09NjIpVi5pMz1udWxsLEEyLkQuUCQuY2FsbChWLG51bGwpLFA9ODM7ZWxzZSBpZihQPT01NClQPUY\/Njg6ODM7ZWxzZSBpZihQPT02OClQPXR5cGVvZiBGPT09InN0cmluZyI\/OTI6MTU7ZWxzZSBpZihQPT02NilQPVY9PW51bGw\/ODY6NjI7ZWxzZSBpZihQPT05MyljPXRoaXMuZnEsdyBpbiBjJiZkZWxldGUgY1t3XSxYYig4LDU5LDAsdGhpcy5kUCxGKSxQPTI5O2Vsc2UgaWYoUD09ODMpUD1GPzcxOjgxO2Vsc2UgaWYoUD09MjkpUD1NPzUyOjEwO2Vsc2UgaWYoUD09MTUpUD0oRz1GLkp4KT81MDo1O2Vsc2UgaWYoUD09MTApVj1GLFA9NjY7ZWxzZSBpZihQPT01KVQ9Ri54RSxxPUYsTj1ULkF4KyI6IisoVC5VQysrKS50b1N0cmluZygzNiksRz1xLkp4PU4sUD01MDtlbHNlIGlmKFA9PTI3KXg9dGhpcy5mcSx0PSh4IT09bnVsbCYmdyBpbiB4P3hbd106dm9pZCAwKXx8bnVsbCxQPTg7ZWxzZSBpZihQPT03OSl3PUssUD02NTtlbHNle2lmKFA9PTgxKXRocm93IEVycm9yKCJDaGlsZCBpcyBub3QgaW4gcGFyZW50IGNvbXBvbmVudCIpO2lmKFA9PTUwKUs9RyxQPTc5O2Vsc2UgaWYoUD09NDYpUD13JiZGPzkzOjgzO2Vsc2UgaWYoUD09NjUpUD10aGlzLmZxJiZ3PzI3OjY3O2Vsc2V7aWYoUD09NzEpcmV0dXJuIEY7aWYoUD09OTIpSz1GLFA9Nzk7ZWxzZXtpZihQPT04Nil0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHNldCBwYXJlbnQgY29tcG9uZW50Iik7UD09NjcmJih0PW51bGwsUD04KX19fX07dmFyIHhBLEduPXtidXR0b246InByZXNzZWQiLGNoZWNrYm94OiJjaGVja2VkIixtZW51aXRlbToic2VsZWN0ZWQiLG1lbnVpdGVtY2hlY2tib3g6ImNoZWNrZWQiLG1lbnVpdGVtcmFkaW86KERuKDE2LDI4LG41KSxBPW41LnByb3RvdHlwZSwiY2hlY2tlZCIpLHJhZGlvOiJjaGVja2VkIix0YWI6InNlbGVjdGVkIix0cmVlaXRlbToic2VsZWN0ZWQifTtpZihBLktxPShBLmVhPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOKXtmb3IoTj0odz0xMyw0Myk7Oyl0cnl7aWYodz09NzQpYnJlYWs7ZWxzZSB3PT0zP3c9Ri5JJjMyPzEwOjY0Onc9PTUwP3c9SyE9TT8xOTo3NDp3PT01OT93PU0\/Nzc6ODI6dz09Mzk\/KE49NDMsdz0zKTp3PT0zMz8oTj00Myx3PTM5KTp3PT02OD93PSFNJiZGLkkmMzI\/NjY6NjQ6dz09MTA\/KEYuVnImNCYmRi5IJCY0JiZGLnNldEFjdGl2ZShmYWxzZSksRi5WciYzMiYmRi5IJCYzMiYmTVgoOCwxNixGLGZhbHNlLDMyKSYmRi5BKDMyLGZhbHNlKSx3PTY0KTp3PT0xOT8oeD1ULHc9NTkpOnc9PTYyPyhHPVQudGFiSW5kZXgsSz10eXBlb2YgRz09PSJudW1iZXIiJiZHPj0wJiZHPDMyNzY4LHc9NTApOnc9PTY2PyhOPTE0LFQuYmx1cigpLHc9MzkpOnc9PTc3Pyh4LnRhYkluZGV4PTAsdz03NCk6dz09ODI\/KHgudGFiSW5kZXg9LTEseC5yZW1vdmVBdHRyaWJ1dGUoInRhYkluZGV4Iiksdz03NCk6dz09NjQ\/dz0oSz1ULmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKSk\/NjI6NTA6dz09MTMmJih3PUYuSCQmMzImJihUPUYua04oKSk\/Njg6NzQpfWNhdGNoKHQpe2lmKE49PTQzKXRocm93IHQ7Tj09MTQmJihWPXQsdz0zMyl9fSxBLlckPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyl7KEs9KFY9KHhBfHwoeEE9ezE6ImRpc2FibGVkIiw4OiJzZWxlY3RlZCIsMTY6ImNoZWNrZWQiLDY0OiJleHBhbmRlZCJ9KSx4QVtNXSksRi5nZXRBdHRyaWJ1dGUoInJvbGUiKSl8fG51bGwpPyh3PUduW0tdfHxWLEc9Vj09ImNoZWNrZWQifHxWPT0ic2VsZWN0ZWQiP3c6Vik6Rz1WLCh4PUcpJiZUQShmYWxzZSxGLCJmYWxzZSIsMjMsIiAiLFQseCl9LEEua049ZnVuY3Rpb24oRil7cmV0dXJuIEYuUCgpfSxmdW5jdGlvbihGLE0sVCxLKXsoSz1GLlA\/Ri5QKCk6RikmJihUP3E4Om9EKShLLFtNXSl9KSx0cnVlKUEuQT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWKXt7Vj03Nzt3aGlsZShWIT02OClWPT01OT9WPXRoaXMucHE\/MTE6NjY6Vj09MTE\/KChLPXRoaXMucHFbTV0pJiZ0aGlzLktxKEYsSyxUKSx0aGlzLlckKHgsTSxUKSxWPTY4KTpWPT02Nj8oRz10aGlzLnpTKCksRy5yZXBsYWNlKC9cXHhhMHxcXHMvZywiICIpLHRoaXMucHE9ezE6RysiLWRpc2FibGVkIiwyOkcrIi1ob3ZlciIsNDpHKyItYWN0aXZlIiw4OkcrIi1zZWxlY3RlZCIsMTY6RysiLWNoZWNrZWQiLDMyOkcrIi1mb2N1c2VkIiw2NDpHKyItb3BlbiJ9LFY9MTEpOlY9PTc3Pyh4PUYuUCgpLFY9NzYpOlY9PTc2JiYoVj14PzU5OjY4KX19O3ZhciBiMD0oRG4oMTYsMjYsKHNHKDIsOCwoQS56Uz1mdW5jdGlvbigpe3JldHVybiJnb29nLWNvbnRyb2wifSx6MCksbjUpLHowKSkse30pOygoKCh6MC5wcm90b3R5cGUuelM9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1idXR0b24ifSx6MC5wcm90b3R5cGUpLlckPWZ1bmN0aW9uKEYsTSxUKXtzd2l0Y2goTSl7Y2FzZSA4OmNhc2UgMTY6VEEoZmFsc2UsRiwiZmFsc2UiLDIyLCIgIixULCJwcmVzc2VkIik7YnJlYWs7ZGVmYXVsdDpjYXNlIDY0OmNhc2UgMTp6MC5ELlckLmNhbGwodGhpcyxGLE0sVCl9fSxzRygyLDYsVDAsQTIpLEE9VDAucHJvdG90eXBlLEEpLkk9MCxBLk5aPWZ1bmN0aW9uKCl7KFQwLkQuTlouY2FsbCh0aGlzKSx0aGlzLnYkJiZ0aGlzLnYkLmRldGFjaCgpLHRoaXMpLmlzVmlzaWJsZSgpJiZ0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLlcuZWEodGhpcyxmYWxzZSl9LEEpLnlnPXRydWUsQSkuSCQ9Mzk7d2hpbGUoIloiKWlmKEEubz1mdW5jdGlvbihGKXt7Rj01Nzt3aGlsZShGIT03MSlGPT00MD8odGhpcy52JC5kaXNwb3NlKCksZGVsZXRlIHRoaXMudiQsRj0zNik6Rj09ODM\/Rj10aGlzLnYkPzQwOjM2OkY9PTU3PyhUMC5ELm8uY2FsbCh0aGlzKSxGPTgzKTpGPT0zNiYmKGRlbGV0ZSB0aGlzLlcsdGhpcy5PPW51bGwsRj03MSl9fSx0cnVlKWJyZWFrO0EuZ2V0U3RhdGU9KEEuTz0oQS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhKHRoaXMuSSY0KX0sQS5zZXRBY3RpdmU9ZnVuY3Rpb24oRil7d2hpbGUoIVt1bmRlZmluZWRdPT0wKWlmKE1YKDE2LDE2LHRoaXMsRiw0KSYmdGhpcy5BKDQsRikse30pYnJlYWt9LG51bGwpLEEua049KEEuWmw9MCxBLktxPWZ1bmN0aW9uKEYsTSxUKXt7VD02NTt3aGlsZShUIT03MylUPT04NT8odGhpcy5PP0ooNTYsMSx0aGlzLk8sRik+PTB8fHRoaXMuTy5wdXNoKEYpOnRoaXMuTz1bRl0sdGhpcy5XLktxKHRoaXMsRix0cnVlKSxUPTczKTpUPT00MD8odGhpcy5XLktxKHRoaXMsRixmYWxzZSksVD03Myk6VD09NTU\/VD1GPzg1OjczOlQ9PTk2P1Q9RiYmdGhpcy5PJiZYYig4LDYxLDAsdGhpcy5PLEYpPzUzOjczOlQ9PTc5Pyh0aGlzLk89bnVsbCxUPTQwKTpUPT01Mz9UPXRoaXMuTy5sZW5ndGg9PTA\/Nzk6NDA6VD09NjUmJihUPU0\/NTU6OTYpfX0sKEEuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLkkmMSl9LEEpLmlzVmlzaWJsZT0oQS5BPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYpe2ZvcihWPTczO1YhPTc7KVY9PTMyP1Y9Rz84OjQ4OlY9PTEzP1Y9eCYmdHlwZW9mIHguaXNFbmFibGVkPT0iZnVuY3Rpb24iJiYheC5pc0VuYWJsZWQoKXx8IU1YKDQwLDE2LHRoaXMsIUcsMSk\/NzozMjpWPT0xNz8odGhpcy5XLkEodGhpcyxGLE0pLHRoaXMuST1NPyhLPXRoaXMuSSwtfksrKEteRikrKH5LfEYpKTp0aGlzLkkmfkYsVj03KTpWPT00ND8oRz0hTSx4PXRoaXMuZ2V0UGFyZW50KCksVj0xMyk6Vj09NDg\/KHRoaXMuc2V0QWN0aXZlKGZhbHNlKSxNWCg0OCwxNix0aGlzLGZhbHNlLDIpJiZ0aGlzLkEoMixmYWxzZSksVj04KTpWPT04Pyh0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLlcuZWEodGhpcyxHKSx0aGlzLkEoMSwhRyx0cnVlKSxWPTcpOlY9PTU2P1Y9dGhpcy5IJCZGJiZNIT0hISh0aGlzLkkmRik\/MTc6NzpWPT03MyYmKFY9VHx8RiE9MT81Njo0NCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueWd9KSxmdW5jdGlvbigpe3JldHVybiB0aGlzLlcua04odGhpcyl9KSxBLlZyPTI1NSxmdW5jdGlvbigpe3JldHVybiB0aGlzLkl9KTt3aGlsZSh0eXBlb2YgVDAhPT0iZnVuY3Rpb24iKXt0aHJvdyBFcnJvcigiSW52YWxpZCBjb21wb25lbnQgY2xhc3MgIitUMCk7aWYoISFbXSlicmVha31zd2l0Y2goISh0eXBlb2YgbjUhPT0iZnVuY3Rpb24iKSl7Y2FzZSAwPT0hW106IVsiIl09PTA7YnJlYWs7Y2FzZSBmYWxzZTp0aHJvdyBFcnJvcigiSW52YWxpZCByZW5kZXJlciBjbGFzcyAiK241KTticmVha312YXIgVlA9T0coNDAsVDAsOCk7KChzRygyLCgoRG4oMTYsMjcsKHNHKDIsKGIwW1ZQXT1uNSxlKDU2LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUMChudWxsKX0sImdvb2ctY29udHJvbCIpLDcpLEs1LHowKSxLNSkpLEs1LnByb3RvdHlwZS5lYT1mdW5jdGlvbigpe30sSzUpLnByb3RvdHlwZS5BPWZ1bmN0aW9uKEYsTSxULEsseCl7e3g9MzM7d2hpbGUoeCE9MjcpeD09MzM\/KEs1LkQuQS5jYWxsKHRoaXMsRixNLFQpLEs9Ri5QKCkseD03NCk6eD09MT8oSy5kaXNhYmxlZD1ULHg9MjcpOng9PTc0JiYoeD1LJiZNPT0xPzE6MjcpfX0sSzUucHJvdG90eXBlLlckPWZ1bmN0aW9uKCl7fSwxMCksSUQsVDApLElELnByb3RvdHlwZSkubz1mdW5jdGlvbigpe2RlbGV0ZSAoZGVsZXRlIChJRC5ELm8uY2FsbCh0aGlzKSx0aGlzKS53ayx0aGlzKS5WZ30sZSkoNTcsZnVuY3Rpb24oKXtpZighW109PShmYWxzZSE9MD09bnVsbCkpcmV0dXJuIG5ldyBJRChudWxsKX0sImdvb2ctYnV0dG9uIik7dmFyIFFsLEZzPUUucmVxdWVzdElkbGVDYWxsYmFjaz9mdW5jdGlvbihGKXtyZXF1ZXN0SWRsZUNhbGxiYWNrKGZ1bmN0aW9uKCl7RigpfSx7dGltZW91dDo0fSl9OkUuc2V0SW1tZWRpYXRlP2Z1bmN0aW9uKEYpe3NldEltbWVkaWF0ZShGKX06ZnVuY3Rpb24oRil7c2V0VGltZW91dChGLDApfSx3WT17cGFzc2l2ZTp0cnVlLGNhcHR1cmU6dHJ1ZX0sakw9U3RyaW5nLmZyb21DaGFyQ29kZSgxMDUsMTEwLDExNiwxMDEsMTAzLDY3LDEwNCwxMDEsOTksMTA3LDY2LDEyMSwxMTIsOTcsMTE1LDExNSksWW49KGIucHJvdG90eXBlLkVDPXZvaWQgMCxiLnByb3RvdHlwZS5tZj1mYWxzZSxiLnByb3RvdHlwZS5YTj0idG9TdHJpbmciLHt9KSxOTT1bXSxCXz0oYi5wcm90b3R5cGUuTVg9dm9pZCAwLFtdKSx6QT1bXSx1Qz1bXSxpQz1bXSx0RD1bXSxQXz1bXSxNTT1bXSxjXz0oKChYcyxmdW5jdGlvbigpe30pKCRuKSxRZCxmdW5jdGlvbigpe30pKEV5KSxNOCxoRCx2b2lkIDApLHhuPSgoKCgoQT1iLnByb3RvdHlwZSwoYi5wcm90b3R5cGUuVT0iY3JlYXRlIixBKS5NWj1mdW5jdGlvbihGLE0sVCxLLHgsRyl7cmV0dXJuIGwuY2FsbCh0aGlzLEYsTSwxMSxULEsseCxHKX0sQSkuUlQ9ZnVuY3Rpb24oKXtyZXR1cm4gRUcuY2FsbCh0aGlzLDY1LDQ4KX0sQSkua0U9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3JldHVybiBuWS5jYWxsKHRoaXMsRyxNLFQseCxLLDksRil9LEEpLmVYPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOKXtyZXR1cm4gdS5jYWxsKHRoaXMsTSw1NyxGLFQsSyx4LEcsVix3LE4pfSxBKS5QYj0wLEEuZGs9ZnVuY3Rpb24oKXtyZXR1cm4geFkuY2FsbCh0aGlzLDE2KX0sWW4pLmNvbnN0cnVjdG9yO0E9KChBLlhWPWZ1bmN0aW9uKEYsTSxULEsseCxHKXtyZXR1cm4gWGIuY2FsbCh0aGlzLDgsMTYsRixNLFQsSyx4LEcpfSxBKS5KPSh3aW5kb3cucGVyZm9ybWFuY2V8fHt9KS5ub3c\/ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xWCt3aW5kb3cucGVyZm9ybWFuY2Uubm93KCl9OmZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSxiLnByb3RvdHlwZSksQS5SPWZ1bmN0aW9uKEYsTSl7cmV0dXJuIEY9e30sY189KE09e30sZnVuY3Rpb24oKXtyZXR1cm4gTT09Rj80NDozM30pLGZ1bmN0aW9uKFQsSyx4LEcsVix3LE4sdCxxLGMsUCx5LHosRCxILFksZCxCLHAsVSxXLFZsLGgsS1ksUSxOWCxyLEwsRmIsYSxqSCxtXyxSLEhfLGdWLGcsdEgsWm4sUDgsY0wsbSxsQyxhNCl7Zz00NixtPTkyLFA4PXVuZGVmaW5lZDt7dEg9ZmFsc2U7d2hpbGUoTmFOIT09TmFOKXRyeXtpZihtPT0yNilicmVhaztlbHNlIGlmKG09PTM2KW09dz09dEQ\/MjU6MTtlbHNlIGlmKG09PTcwKWQubGVuZ3RoPTAsbT03NjtlbHNlIGlmKG09PTk3KW09ODI7ZWxzZSBpZihtPT05OCltPVc\/MTM6Njc7ZWxzZSBpZihtPT00NSlnPTY3LFV5KHRoaXMsMTcsWm4sMCksUDg9MjYsbT03NjtlbHNlIGlmKG09PTApbT13PT1pQz80NDo1MztlbHNlIGlmKG09PTcpbT1LWT4yNTU\/NDoxODtlbHNlIGlmKG09PTI3KVA4IT09dW5kZWZpbmVkPyhtPVA4LFA4PXVuZGVmaW5lZCk6bT0yNjtlbHNlIGlmKG09PTM5KXRoaXMuRDY9Ryx0aGlzLkM9dGhpcy5ENi5sZW5ndGg8PDMsbigyMDIsdGhpcyxbMCwwLDBdKSxtPTYzO2Vsc2UgaWYobT09MTkpZz0xNCx5PWF0b2IoUiksRz1bXSx0PVY9MCxtPTg2O2Vsc2UgaWYobT09MTIpcj1ZLm5leHQoKSxtPTk2O2Vsc2UgaWYobT09OTYpbT1yLmRvbmU\/NzA6MzQ7ZWxzZSBpZihtPT01OClnPTY3LHRoaXMuTj14LG09NjtlbHNlIGlmKG09PTkyKVA9TSxNPUYsbT0zMTtlbHNlIGlmKG09PTY2KXo9VyxTKHRoaXMsMjI3KS5sZW5ndGg9YS5zaGlmdCgpLE8odGhpcyw0NTQpWzBdPWEuc2hpZnQoKSxaKHRoaXMsMjQ1KS5sZW5ndGg9YS5zaGlmdCgpLE8odGhpcyw1MDgpLmxlbmd0aD1hLnNoaWZ0KCksTyh0aGlzLDMxNykubGVuZ3RoPWEuc2hpZnQoKSxTKHRoaXMsNDYwKS5sZW5ndGg9YS5zaGlmdCgpLE8odGhpcywyNjQpLmxlbmd0aD1hLnNoaWZ0KCksUyh0aGlzLDIzOCkubGVuZ3RoPWEuc2hpZnQoKSxhND16LFA4PTgsbT03NjtlbHNlIGlmKG09PTg1KWpIPVFbTl1bdGhpcy5YTl0oMTYpLGpILmxlbmd0aD09MSYmKGpIPSIwIitqSCksVys9akgsbT02NDtlbHNlIGlmKG09PTEpbT13PT1NTT80Njo4MTtlbHNlIGlmKG09PTQpR1tWKytdPS0oS1l8MCktMip+KEtZJjI1NSkrLTIrKEtZJi0yNTYpLEtZPj49OCxtPTE4O2Vsc2UgaWYobT09NjMpZz02NyxXXyg3LHRoaXMsMjA0OCw4MDAxKSxtPTc2O2Vsc2UgaWYobT09NDYpYUQoMTE1LFRbMV0sNyxUWzJdLHRoaXMpLG09NzY7ZWxzZSBpZihtPT04MiltPU48US5sZW5ndGg\/ODU6NjY7ZWxzZXtpZihtPT04KXJldHVybiBhNDtpZihtPT0yNSlhPVRbMl0sRD1DKChnVj1aKHRoaXMsMjI3KS5sZW5ndGgsKGdWJjIpLX4oZ1Z8MikrKGdWJi0zKSsofmdWfDIpKSwyKSx4PXRoaXMuTix0aGlzLk49dGhpcyxtPTI5O2Vsc2UgaWYobT09ODMpYTQ9YUQoMTE1LFRbMV0sNyw4MDAxLHRoaXMpLFA4PTc0LG09NzY7ZWxzZSBpZihtPT01OSlKRCh0aGlzLEMoSC5sZW5ndGgsMikuY29uY2F0KEgpLDIyNywxNjYpLG09NTg7ZWxzZSBpZihtPT02KW09UDghPT11bmRlZmluZWQ\/NzY6NDE7ZWxzZSBpZihtPT00MSlnPTY3LFE9JG4oMikuY29uY2F0KFoodGhpcywyMjcpKSxRWzFdPVFbMF1eNjAsUVszXT0oSF89UVsxXSxOWD1EWzBdLChIX3wwKSsoTlh8MCkrMip+KEhfJk5YKS0gLTIpLFFbNF09KGM9UVsxXSxxPURbMV0sKGN8MCktKHF8MCktMioofmNecSkrMioofmN8cSkpLFc9dGhpcy5mdihRKSxtPTk4O2Vsc2UgaWYobT09ODEpbT13PT1OTT84Mzo3MztlbHNlIGlmKG09PTY4KVRbMV0ucHVzaChPKHRoaXMsMjI3KS5sZW5ndGgsUyh0aGlzLDQ1NClbMF0sWih0aGlzLDI0NSkubGVuZ3RoLFModGhpcyw1MDgpLmxlbmd0aCxaKHRoaXMsMzE3KS5sZW5ndGgsWih0aGlzLDQ2MCkubGVuZ3RoLFoodGhpcywyNjQpLmxlbmd0aCxPKHRoaXMsMjM4KS5sZW5ndGgpLGYoMTE1LHRoaXMsVFsyXSksdGhpcy5CWzM3Nl0mJmFEKDExNSxaKHRoaXMsMzc2KSw3LDgwMDEsdGhpcyksbT03NjtlbHNlIGlmKG09PTY0KU4rKyxtPTgyO2Vsc2UgaWYobT09NjEpbT1ILmxlbmd0aD4xRTY\/OTE6NTk7ZWxzZSBpZihtPT01Nyl0KyssbT0xNjtlbHNlIGlmKG09PTc2KWc9NDYsTT1QLG09Mjc7ZWxzZSBpZihtPT0xOClHW1YrK109S1ksbT01NztlbHNlIGlmKG09PTMxKWc9Njcsdz1UWzBdLG09MDtlbHNlIGlmKG09PTUzKW09dz09UF8\/Njg6MzY7ZWxzZSBpZihtPT0yOSlnPTEwLEZiPVoodGhpcywxODApLEZiLmxlbmd0aD4wJiZKRCh0aGlzLEMoRmIubGVuZ3RoLDIpLmNvbmNhdChGYiksMjI3LDQ4KSxKRCh0aGlzLEModGhpcy5HKzE+PjEsMSksMjI3LDg3KSxKRCh0aGlzLEModGhpc1t0RF0ubGVuZ3RoLDEpLDIyNyksVT10aGlzLllOP1ModGhpcyw1MDgpOk8odGhpcyw0NjApLFUubGVuZ3RoPjAmJmV1KHRoaXMsQyhVLmxlbmd0aCwyKS5jb25jYXQoVSksMjY0LDY0KSxWbD1PKHRoaXMsMjY0KSxWbC5sZW5ndGg+NCYmSkQodGhpcyxDKFZsLmxlbmd0aCwyKS5jb25jYXQoVmwpLDIyNyw2NSksSz0wLEstPShMPVModGhpcywyMjcpLmxlbmd0aCwoTHw1KS0oTCY1KS0gLTEyKzIqKEx8LTYpKSxIPU8odGhpcywyNDUpLEsrPShwPU8odGhpcywyOTMpLC1+KHB8MjA0NyktKH5wJjIwNDcpKyh+cHwyMDQ3KSksSC5sZW5ndGg+NCYmKEstPShILmxlbmd0aHwwKSszKSxLPjAmJkpEKHRoaXMsQyhLLDIpLmNvbmNhdCgkbihLKSksMjI3LDUzKSxtPTUxO2Vsc2UgaWYobT09OSlLWT15LmNoYXJDb2RlQXQodCksbT03O2Vsc2UgaWYobT09MzcpZz02OSxoKCksbT0xMjtlbHNlIGlmKG09PTQ0KVI9VFsxXSxtPTE5O2Vsc2UgaWYobT09MTMpVz0iKiIrVyxtPTY2O2Vsc2UgaWYobT09NTEpbT1ILmxlbmd0aD40PzYxOjU4O2Vsc2UgaWYobT09MTQpZz02NyxtPTEyO2Vsc2UgaWYobT09NzMpbT13PT1CXz85Mzo3NjtlbHNlIGlmKG09PTg2KW09MTY7ZWxzZSBpZihtPT02MCltPTk2O2Vsc2UgaWYobT09OTMpe2lmKG1fPShkPVModGhpcywxNyksdHlwZW9mIFN5bWJvbCkhPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmRbU3ltYm9sLml0ZXJhdG9yXSlCPW1fLmNhbGwoZCk7ZWxzZSBpZih0eXBlb2YgZC5sZW5ndGg9PSJudW1iZXIiKUI9e25leHQ6YzgoMTYsMCxkKX07ZWxzZSB0aHJvdyBFcnJvcihTdHJpbmcoZCkrIiBpcyBub3QgYW4gaXRlcmFibGUgb3IgQXJyYXlMaWtlIik7bT0oWT1CLHI9WS5uZXh0KCksNjApfWVsc2UgaWYobT09MzQpaD1yLnZhbHVlLG09Mzc7ZWxzZSBpZihtPT05MSlIPUguc2xpY2UoMCwxRTYpLGV1KHRoaXMsW10sMjI3LDE5NyksZXUodGhpcyxbXSwyMjcsMzYpLG09NTk7ZWxzZSBpZihtPT0xNiltPXQ8eS5sZW5ndGg\/OTozOTtlbHNlIGlmKG09PTY3KU49MCxXPSIiLG09OTc7ZWxzZXtpZihtPT03NClyZXR1cm4gYTQ7aWYobT09NzcpdGhyb3cgbEM7fX19Y2F0Y2goZlkpe2lmKGc9PShsQz1mWSw0NikpdGhyb3cgZlk7Zz09MTQ\/KFpuPWZZLG09NDUpOmc9PTY5PyhjTD1mWSxtPTE0KTpnPT02Nz8oUDg9NzcsbT03Nik6Zz09MTAmJihQOD03NyxtPTU4KX19fX0oKTt2YXIgTDUsQzU9KEEuZnY9ZnVuY3Rpb24oRixNLFQsSyx4KXtyZXR1cm4gaDIuY2FsbCh0aGlzLDgwLDksRixNLFQsSyx4KX0sQS5TWD0wLGIucHJvdG90eXBlW3VDXT1bMCwwLDEsMSwwLDEsMV0sQS5yaz0oKEEuRUs9ZnVuY3Rpb24oKXtyZXR1cm4gRUcuY2FsbCh0aGlzLDY1LDEwKX0sQSkub1Q9ZnVuY3Rpb24oKXtyZXR1cm4gYzguY2FsbCh0aGlzLDI5KX0sMCksLy4vKSxQTD1pQy5wb3AuYmluZChiLnByb3RvdHlwZVtQX10pO3doaWxlKCJnIilpZihDNVtiLnByb3RvdHlwZS5YTl09UEwsdHJ1ZSlicmVhazt2YXIgYkM9KEw1PUcwKDksMjgsYi5wcm90b3R5cGUuVSx7Z2V0OlBMfSksYi5wcm90b3R5cGUuVFM9dm9pZCAwLGZ1bmN0aW9uKEYsTSl7cmV0dXJuKE09RkIoODMsOTgsODgsOTMsImVycm9yIiwia3MiLG51bGwpKSYmRi5ldmFsKE0uY3JlYXRlU2NyaXB0KCIxIikpPT09MT9mdW5jdGlvbihUKXtyZXR1cm4gTS5jcmVhdGVTY3JpcHQoVCl9OmZ1bmN0aW9uKFQpe3JldHVybiIiK1R9fSkoRSk7KFFsPUUua25pdHNhaWx8fChFLmtuaXRzYWlsPXt9KSxRbC5tPjQwKXx8KFFsLm09NDEsUWwua3M9ZjUsUWwuYT1XOCksUWwuemJwXz1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcpe3JldHVybltmdW5jdGlvbihOKXtyZXR1cm4gWGIoOCwxMixmYWxzZSx3LE4pfSwodz1uZXcgYihNLHgsRyxLLEYsViksZnVuY3Rpb24oTil7dy5FSyhOKX0pXX07fSkuY2FsbCh0aGlzKTsnXS5qb2luKCdcbicpKSk7fSkuY2FsbCh0aGlzKTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJTemRWNUhWaGRvdDBFTTVKOEFoT1dBIj4oZnVuY3Rpb24oKXt2YXIgcj0nMSc7dmFyIGNlPTMwO3ZhciBzY3RtPWZhbHNlO3ZhciBwPSd6YnAwa3hjNlB6dy9TRFJMbjJhN2pXTXVrazdEa2xNdTkvRmNUWnI4cVpxMldZTW0vKzhheXlFVnhPUHdZandNZExtSmlsWUFwRnRTMGFBU1BmaVg2NHRBaGVQRENxSm5TRDk1eTJUMTBEdnA5ZzlLUEpKaUZvcUFQMGhwMndCd1VKem12TEdVT2J0K3lxcWJXQWdpTzRQYzFEdWRGRTdYNTljR0xFanA0NW5Da29rYmhFVWorK3hkc1RkT3UzZTBFRWJzc3cvRC9RTDIzTUhwc0N3c0hwbDNjU2t4clRsYkJuM3RVbFc5L2hEblJxYldnSnBnd20rWCtLc0pkTGZDeUpJY0k1QWpvaE03UXp4akFXQTRXbVB5Y3o5VDRtZ1UvVmgwd3dSVUltejhYMDBLUlF1TzV4bmIvTDcyT0ZJTWJaYTdMcXNJcXhvdGg4ZXdhYTE4N0hrYnlFSDR0ZW9sUUVaZ3M1WjlCbzc5eWV1SGVtN3dDekVLN29GdURBMXpIMzNleU5rOU9nblNLckxtcmZRVTBIaVd0YW91QktRZ3lPNGc2TVVIbDVOSjc3UHNUNXM5UysrWFdUOHBRUHN3UUVvWHN0UW5Fb01aT3huc09pdE42WW9YN0doZWFpMzNra0p2bEswVFQ5ak9yS0QyUlZyREVvVGF0UWtqLzRVRmV6MTQ4SVVTVlVBT3QwTXlWdmdIdkxnV0NIZ0pub1RpRkhmWmJQTVBhTHlySW5KaXE5YTlEOG9uN0V6emhncVNBN0tTSStGc0hrWlpJemJjcUd5WXY3bTNmL0syM0NRWjhueWFLOTI4aUZOaEl5RDJXNk1vRmFPQUFtdVdQU2grcVNTNU42SjJxeGprY3VXcm5DK2RzSFhGTk5NaTdva2RQZFJGRWhXTnkxWVFCajhYVzNobjRGL0VYakFTK0thVUhuTjAzT0Zna2o5RURiOTJXLzhtZEpMdmRMT09SNytDTE5yYkgzM1ppejRPclczbmF1YXBjeEJjQWxWeG9BM1doMm5LMjM0NDBIdjlwTjRVSWh1eVFQdnlxUDRMUGJmMHVRMWVWdlFrMXRCaEpXVjVueW1pT0lxWllCTXY5N1BFb1lPR0htSVRubEgyVUhLRWNsK3Jqc2FPWXJSRTFYMmdRUmM4NzB1ZW9CelhTUTllQ2dRYmZ3dFMvdTFQU2djN0tIWGJiVTExYXQyKzd0NmR3eUlWeUVGRkZuSXZReFF4bWJFNDVYdlJpSExMWTdaT1JZMnZxWWtNRGhZbldEY21XRjNnd3R1OE5ZdTNXWUx6NkJIQVM2L0xvdGtWK3RjdjFNbkt2N1JwU0NRYVRpV1ByZE0zeEUzYVd3Q25EMW5ka0poSVZDd3phR2c3OFlsRExHVkw3Vm5QZXUzUEZENW5CRGsyVm9nR3BRMklmRGFJcTNKU2lFd3B6b0Q4RTFrR0Y0cE5JRENsVjE4WmlFcTZ5eGJhYjhVVkpYKzlsTkNLSElxU29wN0tKbjNPSE5yU1NwMjlGZGZiRXZ3aFpEZTYvQmdQVTVVaVN5RFM1Q3VkNWo1aWljMVBGT0RWZzBHRUJhdE1hZk5qTjdqeE9rNnFibEUrc0ZSS1ZHUDRnMGY0OGg2SG54N2twNXVBYzlVejVYMHZrOTkzendmRkNLTm1DVzBiUW9sdXArMHdPTVQwMDJtRGM3Y2c1R0hpUHF0NXQ0WnRDemU4Y0N4WE5uTVlSUHFxQmpXSFR3MHRtbDFQeWVPdEpKR085di9kSXpvTHlXdG5BS1k0WGZmSzkvaWtqU2FmRnZ5R2x2Wmx3UktlY3lRTTFmK2tROVMrZVdHb2x0OGprUHJQZzMzMUxpSE1xd25HYnZvZUtxWW9XK1VBeUllRWdlTUVXcTZzWUhzZ0NSMUZHNFNIK1dSWUVjeHo4emFTMXZuN2lrK3dvVVZtMWZHU1o0c21obFdhdk5IVUFjanNBanFPNnF0bGpQZTQvWmlya1J6TkVrbjN0RlBENXpMRm1KM1p5WkoweTE1OU9Dc3k0b1RtZ3RNOE00ZzhoSXo2VzYwU3dweDhoOUg1R05nbGdpaXpidDFkWEZNVUw1YzJsaDdpMlZLWGFOclVBOTYyUEdTVjZ0T1hwd1hCdU9ORWV6T2ljZGI0dzNaelVGZ3pjRitWSkRCeGkxMGZEWTZLWXJ4UlFuUWFmUkZDZXhFRVFwMFFlSU5RV3NYWksyZmoxcmdiSTJBNkR2YnlrOHF5b2E3V0RBQ1RCeCtleG0wVWdBRDI2YittR3dCbHlRMnpEOGxGV2d0SEtwb20yK01hRUpEekIveFhxKzE4NzlMZEFxazFFSXFyb2VLN0FwVlRkU2tqSHpxTTlRUGUzY0tCOEJUbzFiQW5WejNGS3RHRVlwR0gzTVNaQlJBN25XTVBTY1Q0OWZmT21waE4ybDZTYmc4S3hzenZNVGNSTmhrMDZWWG9aeXh3S09FUkpzR1ErbTlVVHdIVG1lZEpBRyt1VUdzZDNsb3hrWHdjUXVWOGlHU2FRWG5YQWtSdXRlSi9YWkp4VXpCQ1lRSHU4MDdkTGNxLzZHbTNMU3ZwdkRUYXM3ZGNTUi9LV0lXM0Zteks0TFo4WTZuUys1NEdMd3RXaE5FbUxWMnovM3JmaVBTNlo4ckx6K0gwVHd2NzF1OVZyWmVISkhvOU51NWNLcmxNWjhqcVgrNHpVN1Z6Z1JySkhYNmFVUDFveWo0MXowSk1Lbm9hYWJndkMzdm9acDdQZmh5OUJON3ZYK0JGSHNOS1d1K0FLSnlNaTJhc1ZlTGVzbkJwdkVwditSMDBlbVlIZDJqWStvMWl6WVRsTk9RdEtMbTdaM0pOenVlR2FiSlIrbzdWREFHbk9zamFIMVRBZTdjWTVPT21xYXhCWVlPYTR0NVM3ejRLLzEzeE9wQytZOXpYYjNoQk52SDYzSDFScXZkNW8ySWlVTHJzL3BpNnFFcnRKSnNZa2QwY3hFTFFPYSs2THFNUXJVYlVaNU1oOFNQL2twT2JWR011TzdORWkrcU8zYjF1TUp6Y2FJMGh0VmlpVWFyK0F2OVowUUEyb29ncFIvQXMxbXhVTm5yVW1zTFdTYkFsYkdvbWY3OGZXUmwyZjczWGM1S2s4TXpRay8wTERQWWNUbGZobnlmWDIxbHdLNW5JendOVlBqTGZGZThwWnlwYWlmUHJ2UmVSbVk0ZHVFTVB3QzVJb2txa3JHRTFqZ2NFN3IyeUdFeGtienN1Y3BwVVVKZ2R1bXk5WDVqRWsvZ3dwa1FHWEpidHlqWVV2T0hXcGFYQ1BZS0ZPTjNUT3VEZDhmcGIzaEZNSWRMK29talUzbmxkeWlqZXZrTDB2NWk1RTBaeGl2Y2ltWFN2azRLV2tYRXFFMWtqYXl4NVpqK21URlY0SDVIT2xtTjZ1Qi9jZE5GN2pnNTAxc0Q4aC9Gc3JweEhVZmxCOGh5RDRCNngzdFFrL09MYXpOQ2xmZ2p1dmp6NXg5RVFOYytyRmNmRFFlRUh2VVlKS2duZDY0LzhsRHQ0aUo2bTMrN1AwWWFPbERIUVp1Q2o0aGhOcXpNNzF5bXkwYnN6RzFNOU5MaTBFSms0ckRaUXZwQm5zNmcvMjhhK080cGVxb0VJalhQUVNDVExjbE5FNnJsNlh6dmJqNXB4bzVUYXpkV1dSY0x6ZDViUG1BTlRJaXQrM3NZYVJIRUFKNGdKZFZWdFZOSnRwUTR4MjRNMDVlM0FDcTIrRCs2TWVPcks3Q0ZMamYvZk9RbEk5RmFzK2ZvZzY3TnZXME0rMnFnRUhlOHdYLzRudkRldk9zSTY4b2lPdy9JUW5DQmpyMmxZL2lWbmpZRStyajI3b3BXaG11RW1QTTJQVmFMaUR5a1UvQTlkU1NLai8yd2NveHZ3eFFyd2dqOGRoQ2FncGFzMnBiNXhwaS93NVBIQ0d6VGVWN05NY1dHdGZQOUVCQTNxeXVVNFIrbHBVemRvZzlsYmtnR0pwcFNyVURNaFpKUlArYVBNcTFzdGN2cjVadDBmTll0Sy9GOXlab2dCVlhMeXI0aENKa2lKSGRWclFLVFM5M1BPWm44TGRzMnNkbWpPQXFYZTlONnFlTy9vZ1pnRkI1U1FuRkd0WjNITUZoOE43WFdHOXFyaHB5akI0V0NlaTc3TnpMbVFLajQ2RmYzaTNuRTNpTURtWHBsaFBkWUxNc04zSzhCSFNYcmtUa0luRzhwRkxhR0tqT0h6YVR1bk0zTDl1ZW54bnFZdDhwVlIwbEJ5TGpqaWVIVGVtL1p3VWJlQjdYa0pjUkcxemRaQTloakg3U3lubDRNN21NSXZ5Um9XMTlxRW9LeTN4amYxMzB6SmhMSlpnVDM5SVg3ZDZzakRseDRTOVBZRXFqZ1Fwd2JzdGtzRVhGLzA4MTh6dG1EaEtBNjdRc3BrYVJ6RHg1SUwvWXZXbmxaazVjdXh1NGN5MWU3R2MxakM5OUdkRVJWRXJwaEJVN2RhcDl0VFNSaFlEUGtTVmdBNzk2WmhwVytoM05YSVUyQ3QyOG4rOUM2WUpNcnF1dmoxdW80dG9LbHRTUHV2WVNYaG5QclpVUzRwZk5FUDZXakkyQldBWE1UdUthUktWWC9oT05oRmQ2OVlNdkwvSzlTd2FmOWJJYmd0bjVQSVJVOXNzeVQ4WUQ4SDdScG5LNjR6dVJYalpMVEN2TzQ1WFArLzduSHVUUUZWMjBFVEExMmVXTWZqbjBEdHZGMmZuaHpSNURhMmxTNWRRQjQyaC9TVlF5eVd3L2pQN0pwWTVzWWJlNmQ1ZkN4d21scnVabFZZTHoxcXNBZ3BSTnpscmpPVmlHUTFWc2psZmVSVEoxaUJEWjhtVFA1M3BoL1dheXI5SFdwbExzUy9QT29SWG1yUUNzajBSTzFUSFE0UmYvOTN2WVlSY1k2VmFZeHVtTVk3UUFNQ0hYcTVZU0o4K3NaenFaUzVwUmR2N0ExQ20rWE5mVzY5MkpuY1hockQxQ1ZtcHRaeXltT2EvY2tJeEhiSEE4UjdsTS9FOTM4dG5GWFBFOWFlOHZwdTgzdVVqNlo2bEVqcks3THgzd013eFdidnZFUjhnWkNIRkRPdEtqbXI3Zk9aVzJobVBFVllweUd6QjgwOGQ2eDRIU08wU2M1Y1M0ekZFeG5wTHIvSVpnU0tReXhoNm5uSVlLRExzdDZJWGZxQ0loTDVvTEIwS2Z1ZC9GVVVsYzJKN0V5ZmdYbEFRS0wrOEVCZytYdG00Y092ajM5Mjc1bW1pVG1MOVYyVEppVWRRbE9md3MySjdlSE9RME9xaFFqcm9JdTJGSWNlUUNXeEZ5czFUdnFrQzJSUUVuU0tzK2MvSmp5cVVpcEZKaXk4aFFwdkVwSDQwTzNOd0s2cU9HVURncDR5UHczSVhjRVJ1S2pjK2EvbHZEcHZxV1ZLMjROZVY4RUJRR2ZGc09XNHhYSGc4ZFNtN3ljVmlCbmUyemFERHFYckVNU0psYVZhK1A3U2NrcXJUeUVNZXk1eW9MUzBLdzBxRkhKRVBWQVVMbWxsc0pVUEdiR0RiOVV2TzFqWkVOSmhWbVFhSEpqYjBJNytvd21vdmE2SU50ZU5jYjdmVlFwYlhFaFI0M3NYYllmWUJFWFFlditJRXhjSi93Z3F0UDZ0RDdISnBTL3Z4bmVrbnJ1bWVkMTA1Y1Qyb2JXYzJXSGFwOHYxK3AzdUgwUHRKTmIrTEpOWnJBei9ERzltZzdjSWk5SW02REtjN0JIZ0NuWXEyaWRxQUZLaHMzTXM1WkM5SFRMd1FyaWRwdDFvRDBhUXpkY0VBUWUzcVhxOWw3aERmU3FGWW5ZamxQcUtSQjZqWEhGWlIwWnVNZmNtRk9CUnpsdEg4K1ZqdDcyNCtaU3Fnd3V6eG1tZGQyazNrOEZNT1g1cVluYXgwTjRjYWh1ZEYzWDVlcGlGdTVuR0VGakxnVlAyU3AwZVZQUzMyZ3c1M0hNYm5rQUVMR05hSzNBejFlZGZWdlV5TFFjUWp6OHluY2pyVFhPcXdvQ0RrVVRpd2xPQ3BpdllRSjFqUVp0TzViVWtSZkdEYU9idTNMVDYyNnBBQVljenJwMlhxMFdubEdEV3FUY2ZrQko2OEJTTHlWczVQWjJwWVoxVEFUekczeHVYYy9KWStNeDBYWStGUzlmYUo4YnEvOHRMTHEvRUxKY3NnL3VMbmV4M3FBNjNRK0RGM2Jic1dhSTgwYm1LQkZDV21tK3F0M292dS96THNoRytlTXg4Wk9aUC9sT1pXRlhJeEU2cVBUcnRNeVJsVTJVejBOdkVnMzdXeHJWc1B3OFpReGdDN0FkQlNWVDRseDgwNnRISjA1MFdFd2owbVYwK1JBejNYbjIvNnVHRFpycGxPZm9WbGF2WmxOR0E4VFZqdEdUdXpHVGpJU1ZiL3pnWVJ4SFpiOXdyczdQZGpKeHJtWnlkeXV6enlCdEtPaXFyOUNIZ1RSR3E4UUhJWVpmTkUwY1pHd2tSbjBFZkkxZ0N2dlFhdlc4S2I4RFFWUVcvak5iL0RqNGMyZi9QNElSY29pcUJWdVd2bGRmMmp2SkRjMmVuV0R1S3ZlQUZKc21xSUQxQVU4Tzh5cjJma0o0bmtoMGZLQ2F3WFAvVU5KaGVHU1hzL3E2eEhmNW51SDVSMHZpQ0FiaUdxY0V4NGlDS1FRd2hwVnQ0Nk5aZ1dMYThMNldDR1ZvR3ljNzVVZnJodmxGcDc5TDVrcnl2RFlsVHpqbnVURFcwd0tVbnAxV2RjcXMvOHgwN1hEVFVuZkNVQldvcXhRY2FNK2twV01KRnlSalQxUjczY3IveUhJTVpvczJkQy93TTBDK010dnFJRGlNbGNncERhTDFZRTVJZHJFVTBKL2p3ME9kS1Mxc04xbHEvR3pBVmhEdm45V3VBaXl4NHg1T1JZTFRjQTU2S2NHbEVYS1NFOXY0dWVKalJaY1J1VXlVNi9KL1p6dFNHVTJNTEh4d1JVa0dsNlZralYwcjZhK1QrQ0g2Uy95dkFxZy82RDlJU0xzZHplaFpTV2hHT24wT0RwWFBNRWwzc3o3TkgxamRVOUF2RTBUM0cvd3B1U0YydEJVRERMcFF2Z2U3d0hsTzNqTE9FaE1wa1pwQW5oTWg5Y3hmTkpaYVBaeklDbDBuOXhzZFVTZ2xQMStKcDlaSmlHK05RUGdoZGI0bjFiYmFPbjVna3NMUC9YRGxlMmlYVHhBTVkyZGdpNTZvZ3lOaW1oNEVmalJtWmwzV2NTcVhPTThVZHZMQ3BLb1M2TzdZVjcvWFRUMXhoc0ZTR2R4K1AyMk0wQjFnZ1BKUFdRRWx5VEFaZ0Y5Wm10NTBibmZ1bEtQTnR2cnBZM2xFblNhQWowYXZkZkRiQ0ZsaGlXREpmVkRJQmNva3hxMktCdHNwZEJoMXhxZVNnZnV3WXNUdlB1R05iUS95cUVTVkFOUHlSdnBpa1pEWDhwdVVNNVI0QzJuQy8wazRoYXF0aEdYL20yL29Lait2VDFXSSsrcGpaU3hPZVdTRTZ4SVJxWVFOWFhYRmE1VHFFcVd5eVozTUQ2TDJTeXJFRE5kWEwvaTV0dFRxam5lRWJ5Z1c3a1djTThZRzFlS0pDakMwcU9vM2VPSnpWRFBQUndlOWNYT0wwRWFySStaNkduQUNpS2ZVUjBwaGpsMmR0ZmlCZUVWTzFQWHhIaE1JK0Zoa3p0Q1V2MjRLK1ZzeGo5b0V1M3hyMWVlZmpCU1h1SytDOHc1VmYrNWhjNmhYbFZ2aTVwVnNHWmlaSDhVeUJ3N3gyNXNwR0syclpFM2sxZlBjNmFZck9XQ3VndkY2WUdUMWc5Wmwvb2VndzhGcXhoTCtoZmJtNWhkOUNDcW9IdEJKbWw2MU5jdHlsSTNmVWRTNzYvQU9tMDN1U0VsY0dLNmZBdHVnaE1rc1lWWk9oOVl5eFovUjBPQVFJelFjMURQeitVc3dmc3FuM0pEZnB1amIzbTJLUE9oOVRDUGQrc3RIZGJFaytQMURHbTRYZSs4aGhhRXkxdzJtUlFmWFI5Ulp6NzJqTGpKaWtHWWVua2hWa2FEaUpNYWRQeDZDYnhMZWVWdGprdjhCZktqS3dvRnhGdmF0Y1o4d1FLaEExWEMwUnMvMjlRKzBuR0psVDNzSDlRUFhuQ2JZWEYyNkd2UVQ1dWRRM3FzVlJ0bXdDbFZ4cTg2YlNYVXRwemJqNG1xcU1ZVVZ1OTBGTlVuT1pwbjY4S3N4WmJ5UFlnVnNpbW9RNThsMXlhR1hDdmZCa3ZkOG1Ndm9HeU54UHU3RW02OXRzbUVTK09pTEZMTGUvU2FEY0pXR2lvcGE5eFZ5VHBNWkNqVVlvWmNrc1lLTGU1V1cxRG1VNzJiRjhENU5QN2RsS2tXV2x3M3lPMFdMVVFOME9QdVRaTXJ5TlRIWVdqQnljWUg1WTZKNjdaWlQvamRDa3VDT0NYMHpZTlErR1ZpMzlNNFFpSUJRbTR1REdaQTg5RGtBMFpLQjVjdldYdUJRTHMzbVB3SFl2SG9NeVBWbmZVSklTV3ZvZXpLN1pDY2JENTVUSzVtaFdhOFU3bGgvcVltVWs0R3ZRV0thekZyY3NoUktVT056OEwwcTZVbmx4QUFubENUV2QvQmpMWktoYi9YK3ZiY0RDdVprQS96SlVFN0N1eElMWVlvRzBJNGdKSXd4TXZGR2FoSm9PSHN1VTFhSVhyR254c08rN2g3N2JjOGJkN091VkZuQ1NYbWVSRCtBeHEvS3p5ay96WDV2TjRzdU1ORitNRlFsQ3k4YnVJMWhyeTNqSUp4c3JyeHV2L3JLcUhKRytyM1Zva1c3V0ZqdkpvVlJtWlQrdE4xWWhGNCswSTl1c0ZRYjd0djI1OWwzV29aRkxtdmw5Z3p6NmlPU0NrbU1uTUtnbjZ4dzJOVXpuVlM5STg0cGViQjNYazdPZC9zVHlXQ2ZYejRya3Bmby9TMnF4Q3dFc1J4VkZ2N3lKY1hRWjEzUVpGeXlmeDMrVHJVN1FDL01BYTkyWHNyTnFkUzAzMXJrM0ZmQVhYVUV5NDAyUzBKMXpXWEpmeE5STFgwRlZScGtSekJYKzlJVnVSWnpuRUFLYXp3Q1d1VzFFR2xneTRoK1FpeEtUK3NzTkYyZytVUDlpdEFvN2lqVjY5SUc3Z3V4QkRRSkpKcUhLRVE3b3NjamxpUGVId2gxNHgrTjk0NDBQMWhycXorcmJacUV4OXN5aHdzcHhQWG1GNllyS0tTN21EcG5uVmNzWTB3STNMYTJTbytpMGJheFY3S1pzVmM0bjBaWU5ScDBHT29pWGJhdWgwRGdKL283aS9Nc1UxNEhXN25XeHdsWlB5MWg3SXZjTDR3bXRzK0Fsc2o2dkVaMjFpMGdoMUk3T3FUTkxieU1xR25vV3QvM3dPUStMVklKRUM1ZU5lS1BUTXk3QjJQSjJyQ2VEcHlYWlBNNTZsM2VCZ3Zmemt4NDZML3BjSTk4eDlncldZN2N3UnM3eG9YVFgrMzVSVVRZRTJpQ1dJeVFtRHE3cFJyOFc2d2lqTG9IenVOS00wVXBBcDFRV0RYbG96Qld4UGJjU2tUc1IzanQwQlRQWitPd3A3UHVtdUMxVEJ1d2wwVGJ1NW85MlNSbG9tS0xRR1ZyVTcrUDROc0FNLzdEbmdqK2c2b2VJQUphOWp5TldLNGVQU25ZTFI0OTBIa3Foc2ZDL2xDR2t3SmdKalVoMVA3K0kvZFk4ZzNRMFlITnIvQ2ZDQjNZVUZOclI4U3dQYngyeDlRZlFUd20rM3hxaTNKaXgzaU9LaldLeVY5bDdiRnlsSElNcjdaYlJIMVNlV0pTc2ZucFl3ajN3d1VpOG1pQ0l2NUxOSzgxcVRUUjZ1VXRvbUYxTXR4M21ONGhScUUxQUI0RU9MdXllcEozRUJSakxabjlqMGZubnFlUWxxc2Facmg5Z29TWmpJcFJ5TkVxZHE5QS9KVjBuRHN6MnV4V0srOU01cGxBaC9rVEswb0krb2xpLzljakZmbUU0YXVjVkZyamFHMUpCTVBjakNORVhqb2lpajZqbWNiQk9BQW5qTnJrZXhRL09yVmVVdWN1cGpHV0FOSXIwQXlhdHg4R1JhWTcvckFHV0hjTlloMkR5RGdweEFqS3dJR21oTnZnYThzV201Vm5QS001aDYwT2NzWW1nQXMzbDJXdGozODBqZVpSNE16WCs4dVBSVElYcXJxTlA2RFdGcHhnb05hd3h0ajcyTWg5NmpyUlNrMVcyZys2OFpuTDVyZ3hPRDNxMm9YQ0RtU240N1pCNktTdEhSRVB1bXA4b3N5VTVJb1duWS9aazFwU3crMFAxTFlibGNBc0ZlVXlsWXpHT3d0emJ6SnpES1BzbUU5Yi9JaklxMjdMSk1wR1o2Wkt3YithbmhkVFFlZlBxR3BsaUdrVkFJMC9rSXVRUDNKVTI4ZTlSckJiY2UzejJnblFac2ZmaFJaZ3kreHFaMk1EMGdBUjM4dzdleUhRbHpaZWdCNHYwdW1tdnFYSUkzMkhlbXFmeXAwTmYyakVYZ1B1NlY1dHdia3dNK0YzZ000R1kvcjVtVExudWxQdlpvdEk0WWZRREhNWVJvM0pkdWN4emdvV2NJVjlCVEhqNTZwTS9jY0oyQ1Q3c2hUTjhUQ1Q5bnBOeC9ieC8vYSswRmFCVFpiNWdibmNmQ3YwcXBjYW5JdG5lbFFzd2x3TlpIRDVRdnBTeEt5VFJYMnBEcE0veHFrNmdTaFdIT1hqRFREV29GcjNCUXJYVkpiUUQ2em1nTWd3Uk5FN296d0p6TnZ5L1hiYnI2RUIyWGFoOGtuRnZTZ2xkYW15UVpWMG5oMnBza0x3MCtRVndPNTZQVlh6dFozWm8xMHlXdlpEK2hyNVVHSnp5c1h2eDdCRnA3OEhsTENGaTljU0ZBOWY3UWtQM0NyVHppQmM3dzRtTmdTWXZkQ2czS1JDTHBIekRZYXJHRW9xWDl5azV6WERHMkQvc2hnanVENWVFeGx6NGVvYlNRSE1ZUkZhZng0d0xaVGd6RkN4SVRJdXNhTGV1MkNGNEJpaGlmamNQTC9IL1dPVWRnUW4reDgxQmo2U2J4WW02SzMwNEo5eks3UWM2MnhBQVNHRi9WM0hoQklSeWVEaFhzeFJlVHhyRmlTamhLaExVSS9jYzNQSE40RVVjZDNxSGkwSHN3WFF1ODU2eHFSQlNvV3BvbHBSNVQ3ejh6eERvWmVLdFlkMGJvTnFTNjRtNEhwWmk0ZFBLTlJMTkRPN1YvNUdBYWY0cFRFZVF2LzZjK1MyaHFEcjRkemZxQytRcFdRMDFNd3ZzSDVZUmhQNFJ2WUtBeXIvamlKZlNONHFrNEZPRVNqOGhKMDkwRWxUMGxrbndqOGdOQ2J0TDlzY202R1hNa0ZuNjByWXNLY0pNMHNpZ2NvNGZRQXVTRzB2YkRqVmNiMHdYWWJJZ2s5NmhLbVJHRWw1ekZVS2k3bW9KU3NOb0g2NEl2bUhkNjNxc3IxZDRSM1VaQUttdVE3TVRZVHduUVVuMm15ejRlRnRQV2tUS25jb1NNbldFeXF2SmRGRy9jb3RyOXpncTRDSkJ4bWtuL1lGSzN4eEdqOGtYUUN5Z3dSdVdneEZOazArVXRURHdzVDA3N2NCQTgwcGR1YXE3NVN3RDllVzZUbWQ0NzZCQ2RPai9hUFJhVDRrUk5aN2I4MHEzWHJDY2hNbXZkeGxjSURDUjJkNFQwcWxKSGdnTTBXazNIYW45b1ZaVUNSVDlXME43Ynd4WGYwTThKUW1SL0xjSXVJMmpHTVl5N2tySDM3WU96d0JuOSt4aU9NS0J4MFRTMEFvVVZ2dVQ5TDBuOFhmTDRpSVY3cTVhT3p5TldLTzNuL1laNVFlZUE2bjlscGgxVUkyclJHRmhpclVsZ2Jxek0zMU5EZ01JbFJTVW1VR0NhOHUzUk05NGtkZUxVa2d6bitjYjlveG9QbWJtWlc5TkQ2NTRQNjJLa216Z29rdFBCdVF3amNpVzJvTHQwZ0l3dHlFWU9UN0N3TmhWa2pkMWZNWWlYTEVyZ3F2clJGci9hUWNkbG5UaGpGRW1PcWZrTHVzUk02c3U1bE1VcHZGNkFxTVcyU0syTEE0V2dQb2kyclRITXp0ODhudVhtT09XUHEyZHlpTGVIZm1PQ2RvYXZuaElDbU1PcG94Z2dBK1hpSkhmbjZEdUdyL3hhdWRpcUJ0MWxIMEROWitLS2YycWQzU0pPeHNWNHE4NDhpK1pSUjZxL1VGV3o2ZW9TOTdsNmVJSlNjeHA4TmFiNmkxTWFaTzRyT1dweVY1Yi9XcUVEWW5FaVJrbWVlTE1lSFd2MTJ4VjJPTUtrSVlhZUlhUjREa2RyUnMyTVhibU1CT0E0U0NFcm5iS3JHdVlFWWp1bTZWU09nRCtYUlpWbVF1aHIxaWhXbktKR0p3MGhTNGVMUzMyVjVOb0tGdkRTWlpRUWlnbmhpWnRBY2s0clV2QThXaDY4U0NidytzN3dnWnllSjNrSlZWWUdIZU5IeHdoR3hwbFZaRDQrRitGZlY3cUJJL0pWblR5UW04cUVGVXVaamIxR1huQWl4MnU2Sy9pQWJ6RU1yRk10ZzlvYmJhQ0trLzRLT2FRMFNxRG94dUNya3JhWHpxYWl1MERpcmM1b1ZITnFZOUNaMmxhUGQra0p0RkpMSXlrSFNPUlUzbDFmb2daTGt5VFNueGt0V29GOEpPRkYyTkpxUGZmTU9TY2p2eGE5K0xOcjBGc3BOZ2EyajVhWWZjMGxkaXNlRDZCc0I5dVI0enUxY3o0ZjZuVjRHSGI3YnVkVEdzUGI1VitNRXRURFhMc0lyU1lGU0xqNUoraWRYUzk1TENmT2xFRVFWMzd6S1ZpYnpzYXdXRzMxN2lnelVjcGo5ZFlMUHRxd3VaMllRVmRSZk51RXkvV2lOcU0rRzlLMCtIaWVzME9aZlpXSzZlU1ptSXlTK1crdXBwYzBRa0VDeE5sY3R4QklXb1ZXVmJ3N3NKK0Zxbkwxa3dnTGhBbXJFVUppRWQ4ZmVXR1BxbDBRT0Mzbk5ERitNY1RMWkFyMXlZcHUrQ212cFlLRVAxYlF4REtxQnU3cTE5aWJxVGhqcmVFOXlXM3ZkamVjb0FQeTQzY296REl2dGVnMlVKL2NQbjNYYjFPaThqU3hyVFc1MW56Wnhid3Yvd3hMQkphZUxwL0hJcHBodVZuT0ZSc3pNczJOeUpKc3dRZlUwdGhZdjRick1seFo2VmRtaGJ4TGt4bzhaQWRFWTVBMEdkU3NzNmN3R0xabnV1OUw3dDBQaWZEV1lVVU1VWnlPcXRBQUhveUo1T1FvY1I5WHNKK2Z1Lzg0ai9EU01UWUQ4R3E1aktyeWppYTgyVUVodUVMN2x2MWVja0xJNVFYWkZYTGFya0JGUGV4U2ZCMFBHK3l3UEUzL2l6WEN5SnM1Q2xwSVZUNTRacE1xN2RjTEh5dUtQSytHYnBkc2QzaVBOcUZab0xpRWNYSU9TdUNvWUFiODhlSkdMSG5Fa0pGK3FxbFJVRDBYR2hNckZnWks5OW1NOGxuZFVCTS9wdFc0ZFUwS0xsYjY4WitEZThHRFBzb0NtNGlsRkFzSmRPa01Jc3NPZi8yamNKS3BCcUFSWnlsczh3WVBYbGF4aXN3UFpTWWlaRWZaL0JzVTBiVHFNcnppNGFxQlZ0UVpmRWNEV2U3TTdwQjEwZE1ZdFRFWWhwRjN5dVIwdXRLa0p3N204ekZHN1N1aDZ3MjgzS3RheENxdEs0T3gyMlo5WUx2YWJ2eVRlQ3BRVXhUUFBQMnB3STEvYzZTR3V4dHZZekxKUHN0QW15WFBHVU4zQVZKejB1MGtnangrRVpTdVArN0hpK1pIUHlrOGg5MGNtWU5WVWRJQ0d1RGNiekFlODFDUnkwYi93VFRMQVdqU3JUb3VhTE5ZS29kL0lvcGg2bFNIdkR0a1RTeTJlOU45eFdtWDBoUjNOWkNCMndCRXEwdFk3V2w4Q3dlMUNMS1ZReDh3Y0JHZlJoT3ZwOTBYUjIvZzErZTNUR0tSalRxemhwNWNIZzcvVlhHcU9uMUJxbE9vY2JNbC9qM1p1MjFMUHZBcm5kTTB1NG1nVSt3Q1hCeDRnV0YrQUxzZXFXdHFkMUN2U1pFcW5VMXR4bHBSSEhjRHlGMXY1VU9QSG5sQUNBTzRJZVdmRzBEQ1ZIUzhyaGYzYXkweWtFTDhoOVRyZGswcWMzV056VVNWRXJxajJ3TG5nd05aUmVLV1NOZHJDVVMvSjlYY215MVNEcTNTNkoxeDRFMXdMY3Zpd2d5Rm9ZdFZrSzZkTlBEbFMxaVpOdlJudmFCTmJxSEhidHQ5NEd5Ty92Q0tUSzg1dndPeG5zS2pOMzJFVERYbXAyNnh4OTRBamNHQkZWaGZaejBaL3RkQlBCSCtGbGFJYm1SMVdPZ2xUVWpFaE82K3JjMDgyYmthUXlkU2tlNVU0WUZMNkJsUVVSZGkzU2dEWW1rWi8vNVVKL1ExalRKdkdBT21xL01STzNvSENqcjd4YlRJSnd6OU5yTkZHZVhSbUxpSG1UN3hBT2FvNG0zdDlmOVVMNVNRbUszOG1qcUR2VGpnb2lHWi9lbldCNm9vZHdXZmlrSHVsK1V0OVo0ZFFFd0U1TTlXQ09GYTNiOEVwcEdHOTlsRFpTUVJBQ2NVZDZQUGtIMG1DVDg0RU5XcVJZMXpHWlB5S3N6UzVjMk9zY2FtVnpvc1Ezd0lZRjd2L2JGY2pyaFlWT1FKTmFiR2RDdmJLcDJEOGVkN3hKSGF1NUlwQy9JcGMySlcrdE5lM2ZtZ2VkTnNDQzVmSFdIdXlNdXRJNVZqM3Y2M2FYbzhrVGUwN1RYRmkzb1JDa1ZLU0RaQzJ5Q0pLMVZkZEwvZDJuTHRTMG5zZkdseEVCc0RzOW50dDNsdnN5VVNmYW9lK0lpZXRZcXExc3lHb0ZvTE04dWVCMjUrWXYzNTZTZzlVVHJocFllSUc4bHlTY0s1MnNnOVZFdWptZDJHTUhMOHZicTM4YStCa1lpczJ5SWNrem14R0FOZSsxVDVQejJaMEtmZ2t4ZC9Mbmx2dnc3TDdZM0VuenFxYTNaWGNWSjdxV1d0RkZ1QXBwVUxYcUVOQ3pCWk9IKzFycWp5U3NXeVlNZzhqVlRZWUlXWi9WVUhTSjVjcUxTNitNUXd3RFRpNjVJWk9iL1pqV0ZOeDBLNXFtMFNoU0pmT1hDcUVqZXptRFVlU0ZnZjhBbHJhR3M1SmlzcGF3L1ZwUXZLYWhKZlNkSDd3a3pvaUNwcmFvSGtVQkk1RkZydTdJcjYxcVR1RGtKenovVkh2bkpoVWtiTm9qYTBOd21DeXhIcU5KU2F0ZTlEc2RQMkd2cTBmTEhTM2xqYjBPbHZ2dXNIdmVwZXhpeVRETXBYTGNURll5YTFkQ0FrU2o0UWoyYXM4L25Nb1A0elRGaGVWS2pLWCtYcDZVK25vaG9CMVgxLzgxbmhUcGxkY3NHaFoxUm1NOHhMZys1UTd6VENmUnpmdTRoZiszK0N4d2pVWnMzMjJxS2Y0QzNlUHhndlNpMEs2Y2JDVGtrTTcyRUNRVjNVZ3VCVnZtY2NwUUdUb0ZnVlNEeER4V29IMTBtZnBUa2V4TGdGMXMrbEF2a2pPUmdMdmQ2Y3U2MlhsTldLWFJ5ajdCNDRGcHo4NFE3a29Vamozb0V3T0lTSUg5a2FnRTNSdmw2NEMvRnYrNjNJbVE3bWpDVm9jaUNTTWRDU1ZNbU9jL3h0cnFuRzdocThobGVXZVFKWHl4bjdnY0t1N284VENwZ082anRoeUdtSUp2dEJyb3RrUGRRYnlMODc5NjdkVXMzbG03djlEdDVhNER0c0pxeVplVStadG5ELzNEeUVQTmtsUGtFUUNVRzR2cVpGY0ZwWWQrQ1FVbHZLelpyOXdlZ0FISkdkVGloVmlQWWdreTNURHN1TndYcGVWbFZteFVabnN1SUtrcDJqVGF6cFJwRUFRVDExV2xCdWtDK256Q2NTckY5Wkd6SHhCWlZqK2VIN0JNdmI4WmxOSUY1dWMzYzRCSXRvbTFqdVlnemY5ZzRrdERLem5SYml1VzgvaW15NVZYSGxmbXdOV21KRnQ0am1KQmNIOVNwdjVPOWx6eXpIUlRTRFMybTlqOTdUSWtEa1ZzTlM1ZGJISUZKVU94MVFMeGZZc05wSkJQd1hkR2JrL2JGMWp6WERqQm1yTFNvOHFrL3Bkak02YUt4dWhwQUowb2NnSjVWZTlKSGNacGhUWCt3dTE0VjVwZXZCWU9WY0VwdlJpZGlhK0VhNit1d0VoQjlub1Y1cVRtMW9NckQ1dEdPTmd3VTBxdG5YSC9jRW9lMkxoZTdrVkFMRnVoSTl4Yzdyb3FnTVNuSHpQVjlEZ3l4eHdtanFLZmpRbjB3eUlKakdTTkZlS3ZHNloxMWp5MGROUXZ4MGV4amc0SWJwT1RlVThJWVhNNnBMbmR0bGovcFJIdXBIbXdJb2JUNUZMM3paMW9saUQ2WEhERkNVZUNhTnN2ZWRjaFZzSVVTUEZlQVU1YWl1K1drSnVHK2VZSGZKd1NmdWwvZHBFbGRDdVY5S3o4VFBCY2I3aldBQVhGYVFNeDJicGhNMVZ5UUVZSTVERXdlZ3Jvem1SUDdlS1hSaGdNRnhCSHZWeDBMVGZRUXZYZE5va05keEtua2tVNHhhQXA1emJKcWx0R29lTXIrSWRqaTM3Um8wcGZxbmNac2Y0ZEl2clgyWHcyeEtxOHQvZXJxNnRFbTlIa3I2OVphMFZDSnM2bFFFMllGUGN5ZzRIQTV1U0l4RXN4QUd6d3U5NUsrOUFISE41eWs3VEF6c0NZRTZNRGFmU0hXWnpCcjZXM2w4ZVhWaU9BZkpYT1drdUVBeStxWUZ5Sm5KeXhNOWgvd0p0bFg2ZnZpT0NNeUdDMVlEbmpvbXZUYWhZUFRXMmh2bkJGYzY1b0FXWlExR2MwbVp1UUxzaTdXbVpxUjRKQUlOSWZlR1p3K2FFVkVOZENSdzMzdHJ6SDlqSkpNVEpzeENJcU5ZOU9YR0dHRTBRY3B5Q1pKUjErUjBURGR0cXNhNmMxd3VZbGF1MVkwb3ZIZ1Z5NWYwaGJ1andwSjhCM1FBd05LVU9Vd2JpdU0waUJVM29jazlTR0tnaE84aHJjOUhhYlFxNlhwdTBhUFRjeVVIQ1Z6RG5HNWlRbzBjUWVrRWJTWmp5aThvRlRrckNla2E0YmxkaDViVjNkMGdLUkVEczhHTklaK3RFQXJJMHhCUjNtSWRiSFNxc1FiOFU1RjFnUVBCZE1IeWZNRWJXaHFJSlAvOUpQVlZUWXpOVjNpTkY4SDFVMnpPbEtKMVh3Z2llQWpRdTl3Z2pqMkNsU2sydVgyNUhlQlN0NFJuYkVTRWg0QjRMSjJuaG5JM3JVa3hYNU1IdUduZFduZ3FkSld2OGdSRURyUmMySlZHNzVydHc5ZWFKNTV5ZXpzbXZDYlZCZVpaenl4eThDMnFPeXpRN1pZRXVmS0tSNDE3b0h1aEVHUFNmMVNpd2ZFckFySUpEZ1QrNGVLSjY0NVFMN2RwTUVXbGltQU1kMndmUXlwRmpEdmQvTmkvWFFiK2lqYUhBWS9XR3F2OEREaDlTU25BWWFBcjUweWRwZ2dISzhvMk5WQjM0cTUvVVFsakNsb1o5aGZHZ1Q3eFpUTy81djdVRFA1clNldzh0WFl6bU9yblU4TUZNRmd3QVdzNjBvbkZBZnhxL2dQSkhMY2tiT2NJdVJmTld1c3llbGRYYjA4dW5rc21jRUc4c29jV0U0VjE2T3F3eTZhUmR2cUlpRi9tU0NLa1NBYlQ4eGVNN1ZkRk41dExsOFVSbUlEckg0dlVFaS8wRlZqeWIyR0VjTGMveDlEOHJtZzdDQTJaL0owOC9nQ0x6Tm1HbWI1eXY1WTlxYkxiblp3cTBOSTRGN3dkY2VtL05hTlBlTlhnQ1A5bUZhTjhRODE1ZjdEUUhUTENCRkx1RVI3TnNRcTlyZk9qSVY5UC9ra0tIQ2JaNEpUOWVpd3IxN0hNaHFIUmFSdk51c0VGeTZhMnJza2pTQmhJaFcwUTRPUGJ3WS96M1lMQTFEYUNndTRGRjl2RzJjYjlzTWVnV29VaHU4dlZzUHp3RHliY1Z2ZFFZMHFDeGloL3JZdnVQUnVLNnoyTlFyZS83M0VCTkJVYzdlTytnUmNrQ2MrelROTXRkV3Z4YXltTWptSVp1M2NmdXBwVjBIa0ZRN1hNRXBGUzFpTHREd3VZRG9sSUVEN1ZUSk8vbk9NNlZWV21NK2NGMmpselk4bTl4eUVsMUU3ekhxdGdFZnlaWFNjMW1QVEVpZWRtVjhhUCtpTWIxdzErYnREeUFDZktWeGx5R2FpUmVDcW8vQjZZV2FyQ2ZCWGxoUVJ3eHRxanBhZEpCQjVLc29kajZWak04Vi9RWUkxQy9jd2N3ZkVBWHVybWhIK2x5dG9oYkxFSGw5cks1RCtNREJabDd5S05oMmo0VUx0bGJ0bEUrWHFUNnltdWlXUVMra09leWZFRUFjT0JtdHR1dUhWTXdCQWw5NUFNai96UnJjYXIzUlVqYTFSV2hBNnBPTEpheERMOWRJL3BScGEzZmsveFpEbDFQQ1U5ZmoxWXRSa0ZJd0NZQjd0VWozT1VTZlFHRStTd2txb0I3RXNXdkdSNk5xOWlldVpIREFIcVZWT2JtNU1FbmFoZW9nSnpQOEpTMUc2RVV0Zk4rdklTVFd0b25yOTBZaHlxVU8vVlJ3dnZ6dDdUdGxVU3pwOUlXcG9mbTdQckJTR3lhbStqTGFzcU9IZE9pMFNqZ0lqUllOL2p3RXhIaHNOYmRkai9pQjZmSkxZK0xGVERwR1loL3lLallmaGsyeVFRSEZjV3o1TlprVHFFR0NsYXFRMEhxU1dIVllSRFYzNThkTW1zODkyY0I1U0RWTmFjc05Ib3ZMcDlkU0laMm1nZjFFVm84M2hGQUhOMnBobWpZVjJvYldORTV2ZWR6WkI1UmRMMkxTQURYM25VUnJzRGttOFJFODVZaWJQOGNhL0NNU3BXNXovWlV5K2RHUXorMUpsaERkZnZ4aWlqQ3VXQWw1SFdHWlhrVXozS0xsbkp1dStIVFI1VFRKc24yR0N1S09QZ09DRjUyRFhpVmdpak8rcy9WZHBiOG4wb1BmZURlMnFMWEtmczFOR05UYlFsUU5TZEJWcEFuUzl6OWFLcUpmc0pPWHNLTkJuR3JVek1qdjR6NlJhU2I0aXRUQkxDSlBzTGpZcU52OEp1aHFJNVo4NHdQWmwyQWJhaWJOd2E3M0FOVTNvdXNRcm44ZzREYVZYbExXQkxva0NZcWJVVXpjUzRqSVVITEVyRllGekVkdTVNK052U3NYUHBwK1MxeXk0K0R3NHE1akl6NGpHUGFNRWhRanlpcnc5ZDNpRldxd0drVTZZbVhFZElKYXBuS2F3dVdxVStGTU5FblFvbUpmeGRTVjk1aTB0WVN6MFVqM1QzbklmV1Y0WmxUYnd2MG1wRXkrVjROQWJwUEV2MmlqaTdNZElsZ2Yxd1VGV3BZUmRwMktGS1dLWWtRUjJvOGpQdFZ3cEE0R0tsTHBRQVlyWDJaUkJhSEt1MG5CWnNrRHBPeEJ5TkFoMk16VGwrRVJxWExQNUlYYmU1RUNaSTBQMkhWTFhJMms0M2kzREh5dGRpcE1DbTRnSHUzMWFiQTBYRkNyQXF2Y2NGUHhFRnozeUlFRXhraC91emtDSDZpKzJhVTcxRjIzaCtVbmxjY2xpTy9pWkhUZHJ3aklya1RUSWRtcUllZ2hNd29hdHRTWVUrZFY5UUxZemxtdUNMUmtaaHlBR3ZiNW01dGg1N3F3SkZweUhycDZrN2l6WEVoMXYzL0ZiTUNOenlWTXEyRktESkd3TTBaMkprUGtSM1UxemhmMUFqVzlZUSs1NUNQNlZXbU1icENuR2k0Y1dqMCtCb2ZMWnUyMXFyVDZ2MkVIL21pejk1QTRZMkFNcEZvckdseXdOZjdVdlBzaVUwU2FDdmUxYUtvWTczMWN2andyT3hPVG9DOVdTU0x4bmlXYyc7dmFyIGc9J2tuaXRzYWlsJzt2YXIgZWlkPSd4WUpRYUxmNEdNeUs0LUVQa1otVTJBNCc7dmFyIHNzX2NnaT1mYWxzZTt2YXIgc3A9Jyc7dmFyIGhhc2hlZF9xdWVyeT0nJzt2YXIgY2JzPScnO3ZhciB1c3N2PScnOyhmdW5jdGlvbigpe3ZhciBxPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSx1PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGQpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWQudmFsdWU7cmV0dXJuIGF9LHc9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBkPWFbYl07aWYoZCYmZC5NYXRoPT1NYXRoKXJldHVybiBkfXRocm93IEVycm9yKCJhIik7fSx4PXcodGhpcykseT1mdW5jdGlvbihhLGIpe2lmKGIpYTp7dmFyIGQ9eDthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGw9MDtsPGEubGVuZ3RoLTE7bCsrKXt2YXIgZj1hW2xdO2lmKCEoZiBpbiBkKSlicmVhayBhO2Q9ZFtmXX1hPWFbYS5sZW5ndGgtMV07bD1kW2FdO2I9YihsKTtiIT1sJiZiIT1udWxsJiZ1KGQsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX19LHo9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO2lmKGIpcmV0dXJuIGIuY2FsbChhKTtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OnEoYSl9O3Rocm93IEVycm9yKCJiYCIrU3RyaW5nKGEpKTt9O3koIlByb21pc2UiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXt0aGlzLmk9bnVsbH1mdW5jdGlvbiBkKGMpe3JldHVybiBjIGluc3RhbmNlb2YgZj9jOm5ldyBmKGZ1bmN0aW9uKGUpe2UoYyl9KX1pZihhKXJldHVybiBhO2IucHJvdG90eXBlLmo9ZnVuY3Rpb24oYyl7aWYodGhpcy5pPT1udWxsKXt0aGlzLmk9W107dmFyIGU9dGhpczt0aGlzLmwoZnVuY3Rpb24oKXtlLnYoKX0pfXRoaXMuaS5wdXNoKGMpfTt2YXIgbD14LnNldFRpbWVvdXQ7Yi5wcm90b3R5cGUubD1mdW5jdGlvbihjKXtsKGMsMCl9O2IucHJvdG90eXBlLnY9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuaSYmdGhpcy5pLmxlbmd0aDspe3ZhciBjPXRoaXMuaTt0aGlzLmk9W107Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDsrK2Upe3ZhciBoPWNbZV07Y1tlXT1udWxsO3RyeXtoKCl9Y2F0Y2goayl7dGhpcy5BKGspfX19dGhpcy5pPW51bGx9O2IucHJvdG90eXBlLkE9ZnVuY3Rpb24oYyl7dGhpcy5sKGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX07dmFyIGY9ZnVuY3Rpb24oYyl7dGhpcy5qPTA7dGhpcy5sPXZvaWQgMDt0aGlzLmk9W107dGhpcy5EPSExO3ZhciBlPXRoaXMuQSgpO3RyeXtjKGUucmVzb2x2ZSxlLnJlamVjdCl9Y2F0Y2goaCl7ZS5yZWplY3QoaCl9fTtmLnByb3RvdHlwZS5BPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYyhrKXtyZXR1cm4gZnVuY3Rpb24obSl7aHx8KGg9ITAsay5jYWxsKGUsbSkpfX12YXIgZT10aGlzLGg9ITE7cmV0dXJue3Jlc29sdmU6Yyh0aGlzLkopLHJlamVjdDpjKHRoaXMudil9fTtmLnByb3RvdHlwZS5KPWZ1bmN0aW9uKGMpe2lmKGM9PT10aGlzKXRoaXMudihuZXcgVHlwZUVycm9yKCJBIFByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpO2Vsc2UgaWYoYyBpbnN0YW5jZW9mIGYpdGhpcy5MKGMpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGMpe2Nhc2UgIm9iamVjdCI6dmFyIGU9YyE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjplPSEwO2JyZWFrIGE7ZGVmYXVsdDplPSExfWU\/dGhpcy5JKGMpOnRoaXMuQyhjKX19O2YucHJvdG90eXBlLkk9ZnVuY3Rpb24oYyl7dmFyIGU9dm9pZCAwO3RyeXtlPWMudGhlbn1jYXRjaChoKXt0aGlzLnYoaCk7cmV0dXJufXR5cGVvZiBlPT0iZnVuY3Rpb24iP3RoaXMuTShlLGMpOnRoaXMuQyhjKX07Zi5wcm90b3R5cGUudj1mdW5jdGlvbihjKXt0aGlzLkYoMixjKX07Zi5wcm90b3R5cGUuQz1mdW5jdGlvbihjKXt0aGlzLkYoMSxjKX07Zi5wcm90b3R5cGUuRj1mdW5jdGlvbihjLGUpe2lmKHRoaXMuaiE9MCl0aHJvdyBFcnJvcigiY2AiK2MrImAiK2UrImAiK3RoaXMuaik7dGhpcy5qPWM7dGhpcy5sPWU7dGhpcy5qPT09MiYmdGhpcy5LKCk7dGhpcy5HKCl9O2YucHJvdG90eXBlLks9ZnVuY3Rpb24oKXt2YXIgYz10aGlzO2woZnVuY3Rpb24oKXtpZihjLkgoKSl7dmFyIGU9eC5jb25zb2xlO3R5cGVvZiBlIT09InVuZGVmaW5lZCImJmUuZXJyb3IoYy5sKX19LDEpfTtmLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7aWYodGhpcy5EKXJldHVybiExO3ZhciBjPXguQ3VzdG9tRXZlbnQsZT14LkV2ZW50LGg9eC5kaXNwYXRjaEV2ZW50O2lmKHR5cGVvZiBoPT09InVuZGVmaW5lZCIpcmV0dXJuITA7dHlwZW9mIGM9PT0iZnVuY3Rpb24iP2M9bmV3IGMoInVuaGFuZGxlZHJlamVjdGlvbiIse2NhbmNlbGFibGU6ITB9KTp0eXBlb2YgZT09PSJmdW5jdGlvbiI\/Yz1uZXcgZSgidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOihjPXguZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50IiksYy5pbml0Q3VzdG9tRXZlbnQoInVuaGFuZGxlZHJlamVjdGlvbiIsITEsITAsYykpO2MucHJvbWlzZT10aGlzO2MucmVhc29uPXRoaXMubDtyZXR1cm4gaChjKX07Zi5wcm90b3R5cGUuRz1mdW5jdGlvbigpe2lmKHRoaXMuaSE9bnVsbCl7Zm9yKHZhciBjPTA7Yzx0aGlzLmkubGVuZ3RoOysrYyl2LmoodGhpcy5pW2NdKTt0aGlzLmk9bnVsbH19O3ZhciB2PW5ldyBiO2YucHJvdG90eXBlLkw9ZnVuY3Rpb24oYyl7dmFyIGU9dGhpcy5BKCk7Yy5CKGUucmVzb2x2ZSxlLnJlamVjdCl9O2YucHJvdG90eXBlLk09ZnVuY3Rpb24oYyxlKXt2YXIgaD10aGlzLkEoKTt0cnl7Yy5jYWxsKGUsaC5yZXNvbHZlLGgucmVqZWN0KX1jYXRjaChrKXtoLnJlamVjdChrKX19O2YucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYyxlKXtmdW5jdGlvbiBoKG4sdCl7cmV0dXJuIHR5cGVvZiBuPT0iZnVuY3Rpb24iP2Z1bmN0aW9uKEIpe3RyeXtrKG4oQikpfWNhdGNoKEMpe20oQyl9fTp0fXZhciBrLG0sRD1uZXcgZihmdW5jdGlvbihuLHQpe2s9bjttPXR9KTt0aGlzLkIoaChjLGspLGgoZSxtKSk7cmV0dXJuIER9O2YucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLGMpfTtmLnByb3RvdHlwZS5CPWZ1bmN0aW9uKGMsZSl7ZnVuY3Rpb24gaCgpe3N3aXRjaChrLmope2Nhc2UgMTpjKGsubCk7YnJlYWs7Y2FzZSAyOmUoay5sKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJkYCIray5qKTt9fXZhciBrPQp0aGlzO3RoaXMuaT09bnVsbD92LmooaCk6dGhpcy5pLnB1c2goaCk7dGhpcy5EPSEwfTtmLnJlc29sdmU9ZDtmLnJlamVjdD1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGYoZnVuY3Rpb24oZSxoKXtoKGMpfSl9O2YucmFjZT1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGYoZnVuY3Rpb24oZSxoKXtmb3IodmFyIGs9eihjKSxtPWsubmV4dCgpOyFtLmRvbmU7bT1rLm5leHQoKSlkKG0udmFsdWUpLkIoZSxoKX0pfTtmLmFsbD1mdW5jdGlvbihjKXt2YXIgZT16KGMpLGg9ZS5uZXh0KCk7cmV0dXJuIGguZG9uZT9kKFtdKTpuZXcgZihmdW5jdGlvbihrLG0pe2Z1bmN0aW9uIEQoQil7cmV0dXJuIGZ1bmN0aW9uKEMpe25bQl09Qzt0LS07dD09MCYmayhuKX19dmFyIG49W10sdD0wO2RvIG4ucHVzaCh2b2lkIDApLHQrKyxkKGgudmFsdWUpLkIoRChuLmxlbmd0aC0xKSxtKSxoPWUubmV4dCgpO3doaWxlKCFoLmRvbmUpfSl9O3JldHVybiBmfSk7CnZhciBBPXRoaXN8fHNlbGY7ZnVuY3Rpb24gRSgpe3JldHVybiB3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uJiZ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlfTt2YXIgRj13aW5kb3cubG9jYXRpb247ZnVuY3Rpb24gRyhhKXtyZXR1cm4oYT1GLnNlYXJjaC5tYXRjaChuZXcgUmVnRXhwKCJbPyZdIithKyI9KFxcZCspIikpKT9OdW1iZXIoYVsxXSk6LTF9ZnVuY3Rpb24gSCgpe3ZhciBhPWdvb2dsZS50aW1lcnMubG9hZDtnb29nbGUuYy5ndHM\/Z29vZ2xlLmMuZ3RzKGZ1bmN0aW9uKCl7SShhKX0pOkkoYSl9CmZ1bmN0aW9uIEkoYSl7dmFyIGI9YS5lLGQ9Z29vZ2xlLnN0dnNjO2QmJihiLnNzcj0xKTtpZihkP2QuaXNCRjpFKCk9PT0yKWIuYmI9MTtFKCk9PT0xJiYoYi5yPTEpO2E6e2lmKHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUmJihkPXdpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIiksZC5sZW5ndGghPT0wKSl7ZD1kWzBdO2JyZWFrIGF9ZD12b2lkIDB9aWYoZCl7dmFyIGw9ZC50eXBlO2wmJihiLm50PWwpO2w9ZC5kZWxpdmVyeVR5cGU7bCE9bnVsbCYmKGIuZHQ9bCk7ZD1kLnRyYW5zZmVyU2l6ZTtkIT1udWxsJiYoYi50cz1kKX0oZD13aW5kb3cubmF2aWdhdGlvbikmJihkPWQuYWN0aXZhdGlvbikmJihkPWQubmF2aWdhdGlvblR5cGUpJiYoYi5hbnQ9ZCk7Yj1hLm07aWYoIWJ8fCFiLnBycyl7ZD13aW5kb3cuX2NzYz09PSJhZ3NhIiYmd2luZG93Ll9jc2hpZDtsPUUoKXx8ZD8wOkcoInFzdWJ0cyIpO2w+MCYmKGI9RygiZmJ0cyIpLGI+MCYmKGEudC5zdGFydD1NYXRoLm1heChsLGIpKSk7dmFyIGY9YS50LHY9Zi5zdGFydDtiPXt9O2Eud3NydCE9PXZvaWQgMCYmKGIud3NydD1hLndzcnQpO2lmKHYpZm9yKHZhciBjIGluIGYpaWYoYyE9PSJzdGFydCIpe3ZhciBlPWZbY107YltjXT1jPT09InNnbCI\/ZTpNYXRoLm1heChlLXYsMCl9bD4wJiYoYi5nc2FzcnQ9YS50LnN0YXJ0LWwsYz1HKCJxc2QiKSxjPjAmJmdvb2dsZS5jLmUoImxvYWQiLCJxc2QiLFN0cmluZyhjKSksKGM9YS5mYnRzKSYmKGIuZ3Nhc3J0Mj1NYXRoLm1heChsLGMpLWwpKTtFKCl8fGR8fCFhLnFzdWJ0c3x8KGM9YS5mYnRzKSYmKGIuZ3Nhc3J0Mz1NYXRoLm1heChhLnFzdWJ0cyxjKS1hLnFzdWJ0cyk7Yz1hLmU7YT0iL2dlbl8yMDQ\/cz0iK2dvb2dsZS5zbisiJnQ9c2cmYXR5cD1jc2kmZWk9Iitnb29nbGUua0VJKyImcnQ9IjtkPSIiO2ZvcihrIGluIGIpYSs9IiIrZCtrKyIuIitiW2tdLGQ9IiwiO2Zvcih2YXIgaCBpbiBjKWErPQoiJiIraCsiPSIrY1toXTt2YXIgaz0iIjtBLl9jc2hpZCYmKGsrPSImY3NoaWQ9IitBLl9jc2hpZCk7KGg9d2luZG93Lmdvb2dsZSYmd2luZG93Lmdvb2dsZS5rT1BJfHxudWxsKSYmKGsrPSImb3BpPSIraCk7az1hKz1rO3R5cGVvZiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbj09PSJmdW5jdGlvbiI\/bmF2aWdhdG9yLnNlbmRCZWFjb24oaywiIik6Z29vZ2xlLmxvZygiIiwiIixrKX19O3ZhciBKPWZ1bmN0aW9uKCl7dmFyIGE9bG9jYXRpb24uaHJlZjt0aGlzLmk9dGhpcy5qPSIiO3ZhciBiPWEuaW5kZXhPZigiIyIpO2I+MCYmKHRoaXMuaj1hLnN1YnN0cmluZyhiKSxhPWEuc3Vic3RyaW5nKDAsYikpO2I9YS5pbmRleE9mKCI\/Iik7Yj4wJiYodGhpcy5pPSImIithLnN1YnN0cmluZyhiKzEpLGE9YS5zdWJzdHJpbmcoMCxiKSk7dGhpcy5sPWF9LEw9ZnVuY3Rpb24oYSxiLGQpe0soYSxiKTthLmk9YS5pKyImIitiKyI9IitkfSxLPWZ1bmN0aW9uKGEsYil7YS5pPWEuaS5yZXBsYWNlKG5ldyBSZWdFeHAoIiYiK2IrIj0oW14mXSspIiwiZyIpLCIiKX07Si5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLmwrKHRoaXMuaT8iPyIrdGhpcy5pLnN1YnN0cmluZygxKToiIikrdGhpcy5qfTsKdmFyIE09ZnVuY3Rpb24oYSl7dGhpcy5pPWF9O00ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaX07dmFyIE49ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2Z1bmN0aW9uIE8oYSl7cmV0dXJuIG5ldyBOKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciBQPVtPKCJkYXRhIiksTygiaHR0cCIpLE8oImh0dHBzIiksTygibWFpbHRvIiksTygiZnRwIiksbmV3IE4oZnVuY3Rpb24oYSl7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChhKX0pXSxRPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8\/I10qKD86Wy8\/I118JCkpL2k7ZnVuY3Rpb24gUigpe3ZhciBhPUFbZ107aWYoYSl7YT16KCgwLGEuYSkocCxmdW5jdGlvbigpe30sITEpKS5uZXh0KCkudmFsdWU7dmFyIGI9W2FhKCldO3JldHVybiBhKGIpfVMoRXJyb3IoImYiKSl9ZnVuY3Rpb24gYWEoKXt2YXIgYT1sb2NhdGlvbi5ocmVmLGI9aGFzaGVkX3F1ZXJ5LGQ9e307YiYmKGQucWg9YiwoYT0oYT1hLm1hdGNoKC9bPyZdc3RhcnQ9KFxkKykvZykpP2FbYS5sZW5ndGgtMV0ubWF0Y2goL1xkKy8pWzBdOiIiKSYmKGQuc3Q9YSkpO3JldHVybiBkfQpmdW5jdGlvbiBUKCl7dmFyIGE7YTp7aWYod2luZG93LnN0JiYoYT13aW5kb3cuc3QobG9jYXRpb24uaHJlZikpKWJyZWFrIGE7YT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UudGltaW5nJiZwZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0P3BlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ6dm9pZCAwfWlmKGEpdHJ5e3ZhciBiOygoYj13aW5kb3cpPT1udWxsPzA6Yi5zZXNzaW9uU3RvcmFnZSkmJndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGVpZCxTdHJpbmcoYSkpfWNhdGNoKGQpe319ZnVuY3Rpb24gVSgpe3ZhciBhPWVpZCxiPW5ldyBKO0soYiwic2dfc3MiKTtMKGIsInNlaSIsYSk7cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBWKGEpe3ZhciBiPWVpZCxkPW5ldyBKO0woZCwic2dfc3MiLGVuY29kZVVSSUNvbXBvbmVudChhKSk7TChkLCJzZWkiLGIpO1coZC50b1N0cmluZygpKX0KZnVuY3Rpb24gYmEoYSl7aWYod2luZG93LnBycyl7WCgicHNydCIpO3NjdG0mJkgoKTt2YXIgYj1VKCk7d2luZG93LnBycyhiLGEpLmNhdGNoKGZ1bmN0aW9uKCl7VihhKX0pfWVsc2UgVihhKX1mdW5jdGlvbiBXKGEpe1goInBzcnQiKTtzY3RtJiZIKCk7d2luZG93LnBycz93aW5kb3cucHJzKGEpLmNhdGNoKGZ1bmN0aW9uKCl7WShhKX0pOlkoYSl9CmZ1bmN0aW9uIFkoYSl7aWYod2luZG93LnByKXdpbmRvdy5wcihhKTtlbHNle2E6e3ZhciBiPWI9PT12b2lkIDA\/UDpiO2lmKGEgaW5zdGFuY2VvZiBNKWI9YTtlbHNle2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7KytkKXt2YXIgbD1iW2RdO2lmKGwgaW5zdGFuY2VvZiBOJiZsLk4oYSkpe2I9bmV3IE0oYSk7YnJlYWsgYX19Yj12b2lkIDB9fWE9bG9jYXRpb247aWYoYiBpbnN0YW5jZW9mIE0paWYoYiBpbnN0YW5jZW9mIE0pYj1iLmk7ZWxzZSB0aHJvdyBFcnJvcigiZSIpO2Vsc2UgYj1RLnRlc3QoYik\/Yjp2b2lkIDA7YiE9PXZvaWQgMCYmYS5yZXBsYWNlKGIpfX1mdW5jdGlvbiBTKGEpe25hdmlnYXRvci5zZW5kQmVhY29uKCIvZ2VuXzIwND9jYWQ9c2dfYl9lJmU9IithLCIiKX1mdW5jdGlvbiBYKGEpe3NjdG0mJmdvb2dsZS50aWNrKCJsb2FkIixhKX07bmF2aWdhdG9yfHwoQS5uYXZpZ2F0b3I9e30pO3R5cGVvZiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbiE9PSJmdW5jdGlvbiImJihuYXZpZ2F0b3Iuc2VuZEJlYWNvbj1mdW5jdGlvbihhKXsobmV3IEltYWdlKS5zcmM9YX0pO3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKGEsYixkLGwsZil7bmF2aWdhdG9yLnNlbmRCZWFjb24oIi9nZW5fMjA0P2Vtc2c9IisoZiBpbnN0YW5jZW9mIEVycm9yP2YubWVzc2FnZTphKSsiJnNyY3BnPXNncyZqc3I9MSZqc2VsPTMiKX07WCgic3N0Iik7dmFyIFo7d2luZG93LnNncyYmdXNzdj8oWCgic3NzdCIpLFo9d2luZG93LnNncyhzcCkudGhlbihmdW5jdGlvbihhKXtYKCJzc2V0Iik7ciYmKFQoKSxiYShhKSk7cmV0dXJuITB9LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSk6Wj1Qcm9taXNlLnJlc29sdmUoITEpO1oudGhlbihmdW5jdGlvbihhKXtpZighYSYmKFgoImJzc3QiKSxhPVIoKSxYKCJic2V0IiksYSkpe3ZhciBiPWNiczthPWhhc2hlZF9xdWVyeT8iQi4xLiIrYisiLiIrYTphO2I9bmV3IERhdGU7Yi5zZXRTZWNvbmRzKGIuZ2V0U2Vjb25kcygpKyhOdW1iZXIoY2UpfHwzMDApKTt2YXIgZD0iU0dfU1M9IithLGw9ZG9jdW1lbnQuY29va2llLmxlbmd0aCtkLmxlbmd0aDtyJiYobDw0MDkzJiYhc3NfY2dpJiYoZG9jdW1lbnQuY29va2llPWQrKCI7IGV4cGlyZXM9IitiLnRvVVRDU3RyaW5nKCkpKSxUKCksc3NfY2dpfHxkb2N1bWVudC5jb29raWUuaW5kZXhPZigiU0dfU1M9Iik8MD9WKGEpOlcoVSgpKSl9fSkuY2F0Y2goZnVuY3Rpb24oYSl7UyhhKX0pO30pLmNhbGwodGhpcyk7fSkoKTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJTemRWNUhWaGRvdDBFTTVKOEFoT1dBIj4oZnVuY3Rpb24oKXt2YXIgY3NzSWQ9J3l2bHJ1ZSc7dmFyIGV2ZW50X2lkPSd4WUpRYUxmNEdNeUs0LUVQa1otVTJBNCc7ZnVuY3Rpb24gc3coKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjc3NJZCkuc2V0QXR0cmlidXRlKCdzdHlsZScsJycpO25hdmlnYXRvci5zZW5kQmVhY29uKGAvZ2VuXzIwND9jYWQ9c2dfdHJibCZlaT0ke2V2ZW50X2lkfWAsJycpO30Kc2V0VGltZW91dChzdywyMDAwKTt9KSgpOzwvc2NyaXB0PiA8ZGl2IGlkPSJ5dmxydWUiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPklmIHlvdSdyZSBoYXZpbmcgdHJvdWJsZSBhY2Nlc3NpbmcgR29vZ2xlIFNlYXJjaCwgcGxlYXNlJm5ic3A7PGEgaHJlZj0iL3NlYXJjaD9xPWNvdmVycytkZXNpZ25zJmFtcDtudW09MTAwJmFtcDtzY2FfZXN2PTc0MDk0YTc5NmY3ZGExM2EmYW1wO3B3cz0wJmFtcDtobD1lbiZhbXA7bmVhcj1Vbml0ZWQrS2luZ2RvbSZhbXA7Z2w9VUsmYW1wO2dscD0xJmFtcDtnYnY9MSZhbXA7ZW1zZz1TR19SRUwmYW1wO3NlaT14WUpRYUxmNEdNeUs0LUVQa1otVTJBNCI+Y2xpY2sgaGVyZTwvYT4sIG9yIHNlbmQmbmJzcDs8YSBocmVmPSJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS93ZWJzZWFyY2giPmZlZWRiYWNrPC9hPi48L2Rpdj48L2JvZHk+PC9odG1sPg=="}