forked from TouchedByDarkness/PixelPlanet-Bot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbytecode
More file actions
1 lines (1 loc) · 98.4 KB
/
bytecode
File metadata and controls
1 lines (1 loc) · 98.4 KB
1
dmFyIHM5PXo7KGZ1bmN0aW9uKGkscyl7dmFyIHM4PXosRj1pKCk7d2hpbGUoISFbXSl7dHJ5e3ZhciBnPXBhcnNlSW50KHM4KDB4MWUzKSkvMHgxKihwYXJzZUludChzOCgweDM0ZSkpLzB4MikrcGFyc2VJbnQoczgoMHgyMzEpKS8weDMrcGFyc2VJbnQoczgoMHgyYWYpKS8weDQrLXBhcnNlSW50KHM4KDB4MmM3KSkvMHg1Ky1wYXJzZUludChzOCgweDM4NSkpLzB4NitwYXJzZUludChzOCgweDM0NCkpLzB4NystcGFyc2VJbnQoczgoMHgyYWQpKS8weDgqKHBhcnNlSW50KHM4KDB4MzljKSkvMHg5KTtpZihnPT09cylicmVhaztlbHNlIEZbJ3B1c2gnXShGWydzaGlmdCddKCkpO31jYXRjaChTKXtGWydwdXNoJ10oRlsnc2hpZnQnXSgpKTt9fX0odiwweGI1NzMzKSk7Y29uc3QgZmV0Y2g9c2VsZltzOSgweDIyNSldO2Z1bmN0aW9uIHooaSxzKXt2YXIgRj12KCk7cmV0dXJuIHo9ZnVuY3Rpb24oZyxTKXtnPWctMHgxY2U7dmFyIEI9RltnXTtyZXR1cm4gQjt9LHooaSxzKTt9ZnVuY3Rpb24gdigpe3ZhciB2Zj1bJ2NhdGNoJywneFN0YXJ0Jywnc2V0SW50MTYnLCdieXRlTGVuZ3RoJywnbW9kZUJvdCcsJ29iamVjdCcsJ21hdGNoJywnXHgyMGJ5dGVzJywnY2FudmFzJywnaG9zdCcsJ09mZicsJ2NodW5rTGlzdCcsJ2hhcycsJ3NwYW4nLCdnZXREYXRhJywnb21pdCcsJ1tWQl1ceDIwJywnYnVmZmVyJywneVx4MjAtXHgyMCcsJ3ZhbHVlT2YnLCdwb3NpdGlvbjpceDIwZml4ZWQ7XHgyMHRvcDpceDIwMDtceDIwYm90dG9tOlx4MjAwO1x4MjB3aWR0aDpceDIwMTAwJTtceDIwaGVpZ2h0Olx4MjAwO1x4MjB6LWluZGV4Olx4MjAtMTsnLCd0eXBlJywnZ2FtZUNhbnZhcycsJ0xPQURFRCcsJ0xOMicsJ2BidWZmZXJgXHgyMHY1LnguXHgyMFVzZVx4MjBgYnVmZmVyYFx4MjB2NC54XHgyMGlmXHgyMHlvdVx4MjByZXF1aXJlXHgyMG9sZFx4MjBicm93c2VyXHgyMHN1cHBvcnQuJywnb3JpZ1RlbXBsYXRlJywnc2V0UGl4ZWwnLCckMVx4MjAnLCdjbGVhckNodW5rR2V0VGltZW91dCcsJ01PREVTJywnc29iZWwnLCcuY29vcmJveCcsJ2xlZnQnLCdfZ2V0SW5jcmVtZW50YWxFZGdlcycsJ25vdycsJy5ibXAnLCdyZWFkRmxvYXRCRScsJ3RpbWVvdXQnLCd0b0ltYWdlRGF0YScsJ3NsaWNlJywnY29weScsJ2Zsb29yJywnaW5uZXJIVE1MJywnY2VudGVyJywndm9pZCcsJ251bWJlcicsJ3RoZW4nLCd1dGYtMTZsZScsJ3JlYXNvbicsJ3RvQnl0ZUFycmF5Jywnd3JpdGVGbG9hdEJFJywnaW1hZ2VTbW9vdGhpbmdFbmFibGVkJywnW1dTXVx4MjBTb2NrZXRceDIwaXNceDIwY2xvc2VkLlx4MjBSZWNvbm5lY3RceDIwd2lsbFx4MjBiZVx4MjBhdHRlbXB0ZWRceDIwaW5ceDIwJywnW1dTXVx4MjBXZWJTb2NrZXRceDIwYWxyZWFkeVx4MjBvcGVuLFx4MjBub3RceDIwc3RhcnRpbmcnLCdyZWFkSW50OCcsJ3lTdGFydCcsJ25hbWUnLCdCdWZmZXIud3JpdGUoc3RyaW5nLFx4MjBlbmNvZGluZyxceDIwb2Zmc2V0WyxceDIwbGVuZ3RoXSlceDIwaXNceDIwbm9ceDIwbG9uZ2VyXHgyMHN1cHBvcnRlZCcsJ3NldCcsJ2tNYXhMZW5ndGgnLCcuL3Jlc291cmNlcy9jYW52YXMnLCdCdWZmZXInLCdlbnRyaWVzJywnXHgyMm9mZnNldFx4MjJceDIwaXNceDIwb3V0c2lkZVx4MjBvZlx4MjBidWZmZXJceDIwYm91bmRzJywnd3JpdGVEb3VibGVCRScsJ3dpZHRoJywncmVhZEludEJFJywndm9pZC1ib3QnLCd0aWxlZFRvQWJzJywnU29iZWwnLCdkZVJlZ2lzdGVyQ2h1bmsnLCdUaGVceDIwXHgyMnN0cmluZ1x4MjJceDIwYXJndW1lbnRceDIwbXVzdFx4MjBiZVx4MjBvbmVceDIwb2ZceDIwdHlwZVx4MjBzdHJpbmcsXHgyMEJ1ZmZlcixceDIwb3JceDIwQXJyYXlCdWZmZXIuXHgyMCcsJ3ZhbFx4MjBtdXN0XHgyMGJlXHgyMHN0cmluZyxceDIwbnVtYmVyXHgyMG9yXHgyMEJ1ZmZlcicsJ3N0YXR1cycsJ3N3YXA2NCcsJ2NhblBsYWNlJywncG93Jywnc2V0SW50MTZCRScsJ3JlYWQnLCcvYXBpJywnW0dCXVx4MjAnLCdSR0JUb0lkJywnaGVhZCcsJ3dyaXRlVUludExFJywnYXNjaWknLCdbV1NdXHgyMHJldHVyblx4MjBjb2RlXHgyMC1ceDIwJywnaXNFbmNvZGluZycsJ2NoaWxkTm9kZXMnLCdwZXJtaXNzaW9uJywnc3BlY2llcycsJ3N0cmluZycsJ2ZvbnQtc2l6ZToxMTAlOycsJ3RlbXBsYXRlJywnZ2V0VGltZScsJ1RoaXNceDIwYnJvd3Nlclx4MjBsYWNrc1x4MjB0eXBlZFx4MjBhcnJheVx4MjAoVWludDhBcnJheSlceDIwc3VwcG9ydFx4MjB3aGljaFx4MjBpc1x4MjByZXF1aXJlZFx4MjBieVx4MjAnLCdkb25lJywnZ2V0SW50MTYnLCdUaGVceDIwXHgyMnZhbHVlXHgyMlx4MjBhcmd1bWVudFx4MjBtdXN0XHgyMG5vdFx4MjBiZVx4MjBvZlx4MjB0eXBlXHgyMG51bWJlci5ceDIwUmVjZWl2ZWRceDIwdHlwZVx4MjBudW1iZXInLCdpbmNsdWRlJywnc29iZWxEYXRhJywnbG9hZCcsJzE0OTc1MkNhSFNFSCcsJ3JpZ2h0JywnMjg0OTc5Nk95R2pwZicsJ2xlbmd0aCcsJ3dyaXRlVUludDMyTEUnLCcuL3V0aWxzL1RlbXBsYXRlJywnZGV0ZWN0XHgyMHRlbXBsYXRlXHgyMFx4MjInLCdzZXRVaW50OCcsJ0lkVG9SR0InLCdvbkNvbG9yU2VsZWN0JywnZnJvbScsJ2V4ZWN1dGUnLCdjeWNsZScsJ2ludGVydmFsJywnYm9yZGVyLWNvbG9yOlx4MjBkYXJrcmVkO1x4MjBtYXJnaW46XHgyMDNweFx4MjAwcHhceDIwM3B4XHgyMDBweDsnLCdpbm5lclRleHQnLCd1c2VybHZsJywnZ2V0Q29udGV4dCcsJ3hceDIwLVx4MjAnLCdbV1NdXHgyMFNvY2tldFx4MjBlbmNvdW50ZXJlZFx4MjBlcnJvcixceDIwY2xvc2luZ1x4MjBzb2NrZXQnLCdnZXRQaXhlbEFyZWEnLCdhdmFpbGFibGVNb2RzJywnVGltZXJceDIwLVx4MjAnLCdkcmF3SW1hZ2UnLCdzcGxpdCcsJy52aWV3cG9ydCcsJzMwOTg2NjBKWmVFU1knLCdzZXRVSW50OCcsJ091dFx4MjBvZlx4MjByYW5nZVx4MjBpbmRleCcsJ2xvZycsJ2lzVmlldycsJ2JpbmFyeVR5cGUnLCdbV1NdXHgyMG9wZW4nLCd0aWxlZEJvcmRlcnMnLCdob3N0bmFtZScsJ2VxdWFscycsJ2h0dHBzOi8vdm9pZHNlcnYuZ2xpdGNoLm1lL29ubGluZScsJ3RpbWVyRWxlbWVudCcsJ2NoZWNraW5nLi4uJywnbGFzdEluZGV4T2YnLCdsb2FkXHgyMGNoJywnc3dpdGNoZXInLCdsb2FkQ2h1bmsnLCdpbnNwZWN0JywnZ2V0VWludDgnLCdiaW5kJywndW5kZWZpbmVkJywnb24vb2ZmJywnV2FpdFx4MjBmb3JceDIwdGltZXInLCdnZXQnLCdUaGVceDIwZmlyc3RceDIwYXJndW1lbnRceDIwbXVzdFx4MjBiZVx4MjBvbmVceDIwb2ZceDIwdHlwZVx4MjBzdHJpbmcsXHgyMEJ1ZmZlcixceDIwQXJyYXlCdWZmZXIsXHgyMEFycmF5LFx4MjAnLCd3cml0ZVVJbnQzMkJFJywnYmluYXJ5JywnaGVpZ2h0JywnXHgyMlx4MjBpc1x4MjBpbnZhbGlkXHgyMGZvclx4MjBhcmd1bWVudFx4MjBceDIydmFsdWVceDIyJywncmVtb3ZlQ2hpbGQnLCd0b0xvY2FsZVN0cmluZycsJ2Jhc2U2NCcsJ2ZvbycsJ2luc3RhbnRpYXRlJywnSU5TUEVDVF9NQVhfQllURVMnLCdiYXNlNjQtanMnLCdzZWFyY2gnLCd1dGY4JywnbGFzdFknLCdhbGxvYycsJ2pzb24nLCdzZXRBdHRyaWJ1dGUnLCdibHVyJywnbWF4TGl2ZVRpbWUnLCdvclx4MjBBcnJheS1saWtlXHgyME9iamVjdC5ceDIwUmVjZWl2ZWRceDIwdHlwZVx4MjAnLCdjb3ZlckJvdCcsJ3pvbmUnLCcuL3Jlc291cmNlcy9jb25zdGFudHMnLCd2YWx1ZScsJ2hhbGYnLCdkZWh5ZHJhdGUnLCdzZXRVaW50MTYnLCd3b3lrZW4nLCdyZWFkVUludEJFJywnW1dTXVx4MjBSZXN0YXJ0aW5nXHgyMFdlYlNvY2tldCcsJ2hleCcsJ2Zsb2F0OmxlZnQ7JywnY2FsbCcsJ0J1ZmZlclx4MjBzaXplXHgyMG11c3RceDIwYmVceDIwYVx4MjBtdWx0aXBsZVx4MjBvZlx4MjA2NC1iaXRzJywnaW5kZXhPZicsJ29uY2xvc2UnLCdyZWFkRG91YmxlQkUnLCdmdW5jdGlvbicsJ2xhc3RQeGxFbGVtZW50JywnYXBwZW5kQ2hpbGQnLCdvbkJpbmFyeU1lc3NhZ2UnLCdUaGVceDIwXHgyMnRhcmdldFx4MjJceDIwYXJndW1lbnRceDIwbXVzdFx4MjBiZVx4MjBvbmVceDIwb2ZceDIwdHlwZVx4MjBCdWZmZXJceDIwb3JceDIwVWludDhBcnJheS5ceDIwJywnZnVja3lvdWFya2Vyb3MuZnVuJywnXHgyMG1zLicsJ2NsYXNzJywnU3RvcCcsJ3Byb3RvY29sJywncG9wJywneElucHV0JywnRW1wdHlceDIwYW5zd2VyXHgyMCcsJ1x4MjI+PC9pbWc+JywneUlucHV0JywnYWxsb2NVbnNhZmUnLCd3aW5kb3cnLCdleHBvcnRzJywnXHgyMG0uJywncHV0SW1hZ2VEYXRhJywnLi4vcmVzb3VyY2VzL2NhbnZhcy5qc29uJywnaW1nJywnc2V0Qm90U3RhdHVzJywnb25sb2FkJywnTWFrZVx4MjBWb2lkXHgyMGdyZWF0XHgyMGFnYWluIScsJ3RpbWUnLCdjb252ZXJ0JywnY2xpY2snLCdsYXN0WCcsJ3JldENvZGVceDIwOlx4MjAnLCdceDIybGVuZ3RoXHgyMlx4MjBpc1x4MjBvdXRzaWRlXHgyMG9mXHgyMGJ1ZmZlclx4MjBib3VuZHMnLCdjb2RlJywnbmVlZFx4MjB0bXAnLCd0ZXh0JywnY2hlc3MnLCdjdHgnLCdyZWFkVUludDE2TEUnLCdhdmFpbGFibGVDb3ZlcnMnLCd3b3JsZFgnLCdwdXNoJywnYW1kJywnc3R5bGUnLCd3YXJuJywndGltZVRvRW5kRWxlbWVudCcsJ3J1blx4MjBib3QnLCdib3RPbmxpbmUnLCdJbmRleFx4MjBvdXRceDIwb2ZceDIwcmFuZ2UnLCdmbG9hdDpyaWdodDsnLCdyZWdpc3RlckNodW5rJywnd3JpdGVJbnRMRScsJ3NldENvdmVyJywnL2Jhbm1lJywnZmlsbCcsJ3JlYWRVSW50MTZCRScsJ2ltYWdlUHJvY2Vzc29yJywnd3JpdGVGbG9hdExFJywnY29tcGFyZScsJ1NlcnZlclx4MjBvdmVybG9hZCcsJ3F1ZXJ5U2VsZWN0b3InLCdfbW9kZScsJ3t9LmNvbnN0cnVjdG9yKFx4MjJyZXR1cm5ceDIwdGhpc1x4MjIpKFx4MjApJywnZG9jdW1lbnQnLCdzaWduYWwnLCc1MzI2MTg4TWhRU3ZkJywnZ2V0RWxlbWVudEJ5SWQnLCdjbGllbnRZJywnc2FtZScsJ09QX0NPREUnLCcuL3V0aWxzL0ltYWdlUHJvY2Vzc29yJywnX19wcm90b19fJywncG9ydCcsJ21pbmltYXAtcGFuZWwtYnV0dG9uJywnQ0FQVENIQVx4MjBhcHBlYXJlZCcsJzQyNDZIT2t2WUgnLCdjYW5Mb2FkJywnU3RhdHVzXHgyMC1ceDIwJywnYXBwZW5kJywnY2h1bmtHZXRUaW1lb3V0JywnVGltZVx4MjB0b1x4MjBlbmRceDIwLVx4MjAnLCdnZXRUYXJnZXRzJywnX3NodWZmbGUnLCdkb3dubG9hZCcsJ2h5ZHJhdGUnLCdleGNlcHRpb24nLCdsYXN0VG1wVVJMJywnZWxlbXMnLCdnZXRDb3ZlcicsJ2F0dHJpYnV0ZXMnLCdjbG9zZScsJ2dldFVpbnQxNicsJy9tZScsJ3JlYWRVSW50TEUnLCd3cml0ZVVJbnRCRScsJ3N0YXJ0JywnaW5wdXQnLCdnYXJiYWdlQ29sbGVjdG9yJywnOi8vJywnc2V0VGltZXInLCdvbm1lc3NhZ2UnLCdjaGFyQ29kZUF0JywnY2h1bmtTaXplJywnLi91dGlscy9DaHVuaycsJ0ludmFsaWRceDIwc3RyaW5nLlx4MjBMZW5ndGhceDIwbXVzdFx4MjBiZVx4MjBhXHgyMG11bHRpcGxlXHgyMG9mXHgyMDQnLCdkZWZpbmVQcm9wZXJ0eScsJ2FkZENvdmVyJywnQXR0ZW1wdFx4MjB0b1x4MjBhbGxvY2F0ZVx4MjBCdWZmZXJceDIwbGFyZ2VyXHgyMHRoYW5ceDIwbWF4aW11bVx4MjAnLCdmcm9tQnl0ZUFycmF5JywncmVzdWx0Jywnc2V0TGFzdFB4bCcsJ2dldFRpbWVvdXQnLCdsaXN0ZW5lcnMnLCdvZmZzZXRceDIwaXNceDIwbm90XHgyMHVpbnQnLCdzZXRUaW1lVG9FbmQnLCd3cml0ZUludDMyTEUnLCdvZmZzZXQnLCdzcGxpY2UnLCdceDIyYnVmZmVyXHgyMlx4MjBhcmd1bWVudFx4MjBtdXN0XHgyMGJlXHgyMGFceDIwQnVmZmVyXHgyMGluc3RhbmNlJywnc3RyYXRlZ3lFbGVtZW50JywnQm90c1x4MjBvbmxpbmVceDIwLVx4MjAnLCdib3JkZXJzJywnbGluZWFyJywnZGl2JywnYWxsJywnX2NyZWF0ZVRhcmdldHMnLCdceDIyc2l6ZVx4MjJceDIwYXJndW1lbnRceDIwbXVzdFx4MjBiZVx4MjBvZlx4MjB0eXBlXHgyMG51bWJlcicsJ2NodW5rTG9hZGluZycsJ3NoYWRvd1Jvb3QnLCd5RW5kJywnMjIyODY0NmhzTHBsTScsJ2ltYWdlRGF0YScsJ3NldFRlbXBsYXRlJywnbWF4TG9hZFdhaXRUaW1lJywncmVtbW9kJywnX2NvdmVyJywnKCgoLispKykrKSskJywndG9EYXRhVVJMJywnc3RvcCcsJ3NldENodW5rR2V0VGltZW91dCcsJ1ZvaWRceDIwQm90JywnaW50ZXJzZWN0cycsJ2dldFVpbnQzMicsJ2tleXMnLCdjbGVhcicsJ2JhY2tncm91bmRDb2xvcicsJ2NyZWF0ZUVsZW1lbnQnLCd6LWluZGV4Olx4MjAxOycsJ2NvbmNhdCcsJ3JvdW5kJywnc2l6ZTpceDIwMHgnLCdzZW5kJywnVU5MT0FERUQnLCc1ODVnYnNDcFAnLCcvd3MnLCdzZXRNb2RlJywnX2lzQnVmZmVyJywncmVhZEludDE2QkUnLCdlcnJvcicsJ2NoYW5nZScsJ2lzQ29ubmVjdGluZycsJ3VjczInLCdpbmZvJywnaW1wb3J0T2JqZWN0JywnaW5jbHVkZXMnLCdzaGFyZCcsJ2NhbnZhc0lkJywnbW96SW1hZ2VTbW9vdGhpbmdFbmFibGVkJywncm9vdCcsJ2RlbGV0ZScsJ3JlYWRJbnQzMkJFJywnbG9jYXRpb24nLCdkZW5pZWQnLCdjb2xvcnMnLCdyZXBsYWNlJywnY29uc29sZScsJ1RlbXBsYXRlXHgyMHNyY1x4MjBpc25ceDI3dFx4MjBkZWZpbmVkJywnYWJzVG9UaWxlZCcsJ3RhcmdldCcsJy4vdXRpbHMvZnVuY3Rpb25zJywnYWRkRXZlbnRMaXN0ZW5lcicsJ2JvdHRpbmcnLCdodG1sJywnVGhlXHgyMFx4MjJidWYxXHgyMixceDIwXHgyMmJ1ZjJceDIyXHgyMGFyZ3VtZW50c1x4MjBtdXN0XHgyMGJlXHgyMG9uZVx4MjBvZlx4MjB0eXBlXHgyMEJ1ZmZlclx4MjBvclx4MjBVaW50OEFycmF5JywnaXNBcnJheScsJ3JlYWRVSW50OCcsJ3JlYWR5U3RhdGUnLCdjb25uZWN0Jywnb25vcGVuJywnbGF5ZXJzJywnZGF0YScsJ2JhY2tncm91bmQtY29sb3I6YmxhY2s7XHgyMGJvcmRlci1jb2xvcjpkYXJrUmVkO1x4MjBjb2xvcjpyZWQ7JywnZmlsZUlucHV0JywnVGhlXHgyMHZhbHVlXHgyMFx4MjInLCd3cml0ZVVJbnQ4JywnbWluJywnMjAzZnRWbW1nJywnc2V0Qm90T25saW5lJywnd2Via2l0SW1hZ2VTbW9vdGhpbmdFbmFibGVkJywnd3JpdGUnLCdSZWNlaXZlZFx4MjB0eXBlXHgyMCcsJy4vcmVzb3VyY2VzL3NlbGVjdG9ycy5qc29uJywnb25lcnJvcicsJ21hcCcsJ2ZpbHRlcicsJ3RvU3RyaW5nJywndGFyZ2V0U3RhcnRceDIwb3V0XHgyMG9mXHgyMGJvdW5kcycsJ0RyYXdceDIwY2xyXHgyMC1ceDIwJywnYm90U3RhdHVzRWxlbWVudCcsJ3RhYmxlJywnc3ViYXJyYXknLCdhZGRNb2RlJywncHJvdG90eXBlJywnZmlsZXMnLCdvdmVycmlkZUVuZHMnLCdbb2JqZWN0XHgyMFVpbnQxNkFycmF5XScsJ3NldEludDgnLCdpc0J1ZmZlcicsJ3N1YnN0cmluZycsJ2ZpbGUnLCdQT1NUJywna2V5ZG93bicsJ3NlbGVjdGVkJywnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1RvdWNoZWRCeURhcmtuZXNzL1BpeGVsUGxhbmV0LUJvdC9tYXN0ZXIvc2VjcmV0LnR4dCcsJ1Vua25vd25ceDIwZW5jb2Rpbmc6XHgyMCcsJ0xPQURJTkcnLCdwb29sU2l6ZScsJ21pbi1tYXgnLCdVbmRlZlx4MjBtb2RlJywnd3JpdGVJbnQxNkxFJywnc2V0dGVkUHhscycsJ29wdGlvbicsJ3N3YXAxNicsJ2xhc3RVc2luZycsJ2pvaW4nLCd1Y3MtMicsJ2J5dGVPZmZzZXQnLCdidWlsZCcsJ0FyZ3VtZW50XHgyMG11c3RceDIwYmVceDIwYVx4MjBCdWZmZXInLCdyZXN0YXJ0Jywnc2VsZWN0JywnZ2V0TW9kZScsJzxCdWZmZXJceDIwJywndG9QcmltaXRpdmUnLCdyYW5kb20nLCd4RW5kJywnaW1hZ2UvcG5nJywnc3N2JywnaXNDb25uZWN0ZWQnLCdnZXRQaXhlbCcsJy4vZnVuY3Rpb25zJywnLi91dGlscy9QYWxldHRlJywnc2V0VUludDMyQkUnLCdjbGllbnRYJywnUHJvYmxlbXNceDIwd2l0aFx4MjBib3Quem9uZScsJy4vcmVzb3VyY2VzL3N0eWxlJywnbGF0aW4xJywnLnNlbGVjdGVkJywncmVhZEludDMyTEUnLCdceDIyXHgyMGlzXHgyMGludmFsaWRceDIwZm9yXHgyMG9wdGlvblx4MjBceDIyc2l6ZVx4MjInLCdjaHVua3MnLCdzdGFydHNXaXRoJywnR01fZmV0Y2gnLCdjb29yZHMnLCdjb3ZlckVsZW1lbnQnLCdncmFudGVkJywnYWJvcnQnLCdhcnJheUJ1ZmZlcicsJ2FwcGx5Jywnc3JjJywnYmluZENvbG9yc1dpdGhFbGVtZW50cycsJ2J1dHRvbicsJ2ZvckVhY2gnLCdjbGVhclRpbWVvdXQnLCczMTQwNDc1U0FDdVZFJywndXRmLTgnLCd0aW1lQ29ubmVjdGVkJywnY29uc3RydWN0b3InLCd1dGYxNmxlJywnL2FwaS9tb2R0b29scycsJ3JlYWRVSW50MzJCRScsJ3RvcCcsJ3RhcmdldHMnLCdyZWFkRmxvYXRMRScsJ2FicycsJ3NvdXJjZUVuZFx4MjBvdXRceDIwb2ZceDIwYm91bmRzJywnaHR0cDonLCdwYWxldHRlYm94Jywnc2V0Q29sb3JzJywnd3JpdGVJbnRCRScsJ3RvTG93ZXJDYXNlJywnaGFzaCcsJ2Zyb21DaGFyQ29kZScsJ3N0b3BwZWQnLCdnZXRJbWFnZURhdGEnLCdEb25lJ107dj1mdW5jdGlvbigpe3JldHVybiB2Zjt9O3JldHVybiB2KCk7fWZ1bmN0aW9uIHBheWxvYWQoKXsoZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHMsRixnKXt2YXIgc3M9ejtmdW5jdGlvbiBTKEssQyl7dmFyIHNpPXo7aWYoIUZbS10pe2lmKCFzW0tdKXt2YXIgaz1zaSgweDMwNSk9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFDJiZrKXJldHVybiBrKEssITB4MCk7aWYoQilyZXR1cm4gQihLLCEweDApO3ZhciBoPW5ldyBFcnJvcignQ2Fubm90XHgyMGZpbmRceDIwbW9kdWxlXHgyMFx4MjcnK0srJ1x4MjcnKTt0aHJvdyBoW3NpKDB4MzI0KV09J01PRFVMRV9OT1RfRk9VTkQnLGg7fXZhciBYPUZbS109eydleHBvcnRzJzp7fX07c1tLXVsweDBdW3NpKDB4MzAwKV0oWFtzaSgweDMxNildLGZ1bmN0aW9uKFQpe3ZhciBqPXNbS11bMHgxXVtUXTtyZXR1cm4gUyhqfHxUKTt9LFgsWFsnZXhwb3J0cyddLGkscyxGLGcpO31yZXR1cm4gRltLXVtzaSgweDMxNildO31mb3IodmFyIEI9c3MoMHgzMDUpPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxNPTB4MDtNPGdbJ2xlbmd0aCddO00rKylTKGdbTV0pO3JldHVybiBTO31yZXR1cm4gaTt9KCkoezB4MTpbZnVuY3Rpb24oaSxzLEYpe3ZhciBGdD16OyhmdW5jdGlvbihnKXt2YXIgc0Y9ejtsZXQgUz0hIVtdO3dpbmRvd1snYWRkRXZlbnRMaXN0ZW5lciddKCdmb2N1cycsKCk9PlM9ISFbXSksd2luZG93W3NGKDB4MWQzKV0oc0YoMHgyZjEpLCgpPT5TPSFbXSk7bGV0IEI9W10sTT1bXTtjb25zdCB7Q09MT1JTOkssQ0hVTktfU0laRTpDfT1pKHNGKDB4Mjg0KSkse01BWF9SRVFVRVNUU19QRVJfSE9VUjprLFBYTF9DQjpoLE1BWF9USU1FX1NUQUNLOnR9PWkoc0YoMHgyZjYpKSxwPWkoc0YoMHgxZTgpKSx7aW5qZWN0Q1NTOlgsb2JqRm9yRWFjaDpULGZhY3Rvcnk6aixkb3dubG9hZENhbnZhczpiLGNyZWF0ZUNhbnZhc0Zyb21EYXRhOloscmFuZDpFLGZldGNoQXBpTWU6VSxnZXRNb2RMaXN0OlYsc3VibWl0UmVtTW9kOmQsYmFuTWU6cn09aShzRigweDFkMikpLGM9aShzRigweDIxYSkpLHU9aShzRigweDJiMikpLEE9aShzRigweDM2YSkpLE89aShzRigweDM0OSkpLFE9bmV3IGMoKTtRW3NGKDB4MjNmKV0oSyk7bGV0IFk9bnVsbDtjb25zdCBQPXsnT1BfQ09ERSc6MHhjMSwnaHlkcmF0ZSc6aTY9Pih7J3gnOmk2WydnZXRVaW50OCddKDB4MSksJ3knOmk2W3NGKDB4MmQ5KV0oMHgyKSwnb2Zmc2V0JzppNltzRigweDJkOSldKDB4Myk8PDB4MTB8aTZbc0YoMHgzNWUpXSgweDQpLCdjb2xvcic6aTZbc0YoMHgyZDkpXSgweDYpfSksJ2RlaHlkcmF0ZSc6ZnVuY3Rpb24oaTYsaTcsaTgsaTkpe3ZhciBzZz1zRjtjb25zdCBpaT1uZXcgQXJyYXlCdWZmZXIoMHgxKzB4MSsweDErMHgxKzB4MisweDEpLGlzPW5ldyBEYXRhVmlldyhpaSk7cmV0dXJuIGlzW3NnKDB4MmI0KV0oMHgwLHRoaXNbc2coMHgzNDgpXSksaXNbJ3NldFVpbnQ4J10oMHgxLGk2KSxpc1tzZygweDJiNCldKDB4MixpNyksaXNbJ3NldFVpbnQ4J10oMHgzLGk4Pj4+MHgxMCksaXNbc2coMHgyZmEpXSgweDQsaTgmMHhmZmZmKSxpc1tzZygweDJiNCldKDB4NixpOSksaWk7fX0sdz17J09QX0NPREUnOjB4YzIsJ2h5ZHJhdGUnOmk2PT5pNltzRigweDM5MSldKDB4MSl9LEc9eydPUF9DT0RFJzoweGMzLCdoeWRyYXRlJzppNj0+KHsncmV0Q29kZSc6aTZbc0YoMHgyZDkpXSgweDEpLCd3YWl0JzppNltzRigweDM5MSldKDB4MiksJ2Nvb2xEb3duU2Vjb25kcyc6aTZbc0YoMHgyYTgpXSgweDYpfSksJ2RlaHlkcmF0ZScoaTYsaTcsaTgpe3ZhciBzdj1zRjtjb25zdCBpOT1nW3N2KDB4MzE0KV0oMHgxKzB4MSsweDQrMHgxKzB4Mik7aTlbc3YoMHgyYzgpXShPUF9DT0RFLDB4MCksaTlbc3YoMHgyYzgpXShpNiwweDEpLGk5W3N2KDB4MjFiKV0oaTcsMHgyKTtjb25zdCBpaT1NYXRoWydyb3VuZCddKGk4LzB4M2U4KTtyZXR1cm4gaTlbc3YoMHgyOTUpXShpaSwweDYpLGk5O319LFc9eydPUF9DT0RFJzoweGEwLCdkZWh5ZHJhdGUnKGk2KXt2YXIgc3o9c0Y7bGV0IGk3PW5ldyBBcnJheUJ1ZmZlcigweDIpLGk4PW5ldyBEYXRhVmlldyhpNyk7cmV0dXJuIGk4W3N6KDB4MWY3KV0oMHgwLDB4YTApLGk4WydzZXRJbnQ4J10oMHgxLGk2KSxpNzt9fSxsPXsnT1BfQ09ERSc6MHhhMSwnZGVoeWRyYXRlJyhpNil7dmFyIHNTPXNGO2xldCBpNz1uZXcgQXJyYXlCdWZmZXIoMHgzKSxpOD1uZXcgRGF0YVZpZXcoaTcpO3JldHVybiBpOFsnc2V0SW50OCddKDB4MCwweGExKSxpOFtzUygweDI0OSldKDB4MSxpNiksaTc7fX0sZT17J09QX0NPREUnOjB4YTIsJ2RlaHlkcmF0ZScoaTYpe3ZhciBzQj1zRjtsZXQgaTc9bmV3IEFycmF5QnVmZmVyKDB4MyksaTg9bmV3IERhdGFWaWV3KGk3KTtyZXR1cm4gaThbc0IoMHgxZjcpXSgweDAsMHhhMiksaThbc0IoMHgyNDkpXSgweDEsaTYpLGk3O319O2NsYXNzIG17Y29uc3RydWN0b3IoKXt2YXIgc009c0Y7Y29uc29sZVtzTSgweDJjYSldKCdbV1NdXHgyMGNyZWF0aW5nXHgyMFByb3RvY29sQ2xpZW50JyksdGhpc1snaXNDb25uZWN0aW5nJ109dGhpc1tzTSgweDIxNyldPSFbXSx0aGlzWyd3cyddPXRoaXNbc00oMHgyODApXT1udWxsLHRoaXNbc00oMHgzYTkpXT0weDAsc2V0SW50ZXJ2YWwoKCk9PnRoaXNbJ3dzJ11bc00oMHgzOWEpXShuZXcgVWludDhBcnJheShbMHhiMF0pW3NNKDB4MjU4KV0pLDB4NTVmMCk7fWFzeW5jW3NGKDB4MWRhKV0oKXt2YXIgc0s9c0Y7dGhpc1tzSygweDNhMyldPSEhW107aWYodGhpc1snd3MnXSljb25zb2xlW3NLKDB4MmNhKV0oc0soMHgyN2QpKTt0aGlzW3NLKDB4MjMzKV09RGF0ZVtzSygweDI2YSldKCksdGhpc1snd3MnXT1uZXcgV2ViU29ja2V0KCd3cycrKGxvY2F0aW9uW3NLKDB4MzBlKV09PT1zSygweDIzZCk/Jyc6J3MnKStzSygweDM2NSkrKHdpbmRvd1snc3N2J11bc0soMHgzYTgpXSsnLicrbG9jYXRpb25bc0soMHgyY2YpXSsobG9jYXRpb25bc0soMHgzNGIpXT8nOicrbG9jYXRpb25bc0soMHgzNGIpXTonJykrc0soMHgzOWQpKSksdGhpc1snd3MnXVtzSygweDJjYyldPSdhcnJheWJ1ZmZlcicsdGhpc1snd3MnXVtzSygweDFkYildPSgpPT57dmFyIHNDPXNLO3RoaXNbc0MoMHgzYTMpXT0hW10sdGhpc1snaXNDb25uZWN0ZWQnXT0hIVtdLGNvbnNvbGVbc0MoMHgyY2EpXShzQygweDJjZCkpO2lmKHRoaXNbc0MoMHgzYTkpXSE9PW51bGwpdGhpc1snd3MnXVtzQygweDM5YSldKFdbJ2RlaHlkcmF0ZSddKHRoaXNbc0MoMHgzYTkpXSkpO30sdGhpc1snd3MnXVtzSygweDM2NyldPSh7ZGF0YTppNn0pPT57dmFyIHNrPXNLO3RyeXtpZih0eXBlb2YgaTYhPT1zaygweDJhMikpdGhpc1tzaygweDMwOCldKGk2KTt9Y2F0Y2goaTcpe2NvbnNvbGVbc2soMHgzYTEpXSgnW1dTXVx4MjBBblx4MjBlcnJvclx4MjBvY2N1cmVkXHgyMHdoaWxlXHgyMHBhcnNpbmdceDIwd2Vic29ja2V0XHgyMG1lc3NhZ2UnKSxjb25zb2xlW3NrKDB4M2ExKV0oaTcpO319LHRoaXNbJ3dzJ11bJ29uY2xvc2UnXT1pNj0+e3ZhciBzaD1zSzt0aGlzWyd3cyddPW51bGwsdGhpc1tzaCgweDIxNyldPSFbXTtjb25zdCBpNz0weDdkMDtjb25zb2xlWyd3YXJuJ10oc2goMHgyN2MpK2k3K3NoKDB4MzBiKSxpNltzaCgweDI3OCldKSxzZXRUaW1lb3V0KCgpPT50aGlzW3NoKDB4MWRhKV0oKSxpNyk7fSx0aGlzWyd3cyddW3NLKDB4MWU5KV09aTY9Pnt2YXIgc3Q9c0s7Y29uc29sZVtzdCgweDNhMSldKHN0KDB4MmMwKSxpNiksdGhpc1snd3MnXVtzdCgweDM1ZCldKCksc2V0VGltZW91dCgoKT0+dGhpc1tzdCgweDFkYSldKCksMHg3ZDApO307fVsnc2V0TmFtZSddKGk2KXt2YXIgc3A9c0Y7aWYodGhpc1tzcCgweDIxNyldJiZ0aGlzWyduYW1lJ10hPT1pNil7Y29uc29sZVtzcCgweDJjYSldKCdbV1NdXHgyME5hbWVceDIwY2hhbmdlXHgyMHJlcXVpZXJlc1x4MjBXZWJTb2NrZXRceDIwcmVzdGFydCcpO2lmKCF0aGlzW3NwKDB4MjE3KV0pcmV0dXJuO3RoaXNbc3AoMHgyMTcpXT0hW10sY29uc29sZVsnbG9nJ10oc3AoMHgyZmQpKSx0aGlzWyd3cyddW3NwKDB4MzAzKV09dGhpc1snd3MnXVsnb25tZXNzYWdlJ109bnVsbCx0aGlzWyd3cyddW3NwKDB4MzVkKV0oKSx0aGlzWyd3cyddPW51bGwsdGhpc1snY29ubmVjdCddKCk7fX1bc0YoMHgzMzUpXShpNixpNyl7dmFyIHN5PXNGO2lmKHRoaXNbJ2lzQ29ubmVjdGVkJ10pdGhpc1snd3MnXVsnc2VuZCddKGxbc3koMHgyZjkpXShpNjw8MHg4fGk3KSk7fVsnZGVSZWdpc3RlckNodW5rJ10oaTYsaTcpe3ZhciBzWD1zRjtpZih0aGlzW3NYKDB4MjE3KV0pdGhpc1snd3MnXVtzWCgweDM5YSldKGVbc1goMHgyZjkpXShpNjw8MHg4fGk3KSk7fVtzRigweDMwOCldKGk2KXt2YXIgc1Q9c0Y7aWYoaTZbc1QoMHgyNGEpXT09PTB4MClyZXR1cm47Y29uc3QgaTc9bmV3IERhdGFWaWV3KGk2KTtzd2l0Y2goaTdbc1QoMHgyZDkpXSgweDApKXtjYXNlIFBbc1QoMHgzNDgpXTpsZXQgaTg9UFsnaHlkcmF0ZSddKGk3KSxpOT1hW3NUKDB4MjIzKV1bc1QoMHgyZGUpXShpOFsneCddLGk4Wyd5J10pO2lmKCFpOSlyZXR1cm47bGV0IGlpPWk4Wyd4J10qQytpOFtzVCgweDM3NyldJUMrYVtzVCgweDM3YyldWyd4MSddLGlzPWk4Wyd5J10qQyt+fihpOFtzVCgweDM3NyldL0MpK2Fbc1QoMHgzN2MpXVsneTEnXSxpRj1LW2k4Wydjb2xvciddXTtjb25zb2xlW3NUKDB4MmNhKV0oJ1tXU11ceDIwcHhsXHgyMCcraWkrJ1x4MjAnK2lzKydceDIwWycraUYrJ10nKSxCPVtpaSxpc10sYVsnc2V0UGl4ZWwnXShpaSxpcyxpRik7YnJlYWs7Y2FzZSB3W3NUKDB4MzQ4KV06Slsnc2V0VGltZXInXShSW3NUKDB4MzFlKV09d1snaHlkcmF0ZSddKGk3KS8weDNlOCk7YnJlYWs7Y2FzZSBHW3NUKDB4MzQ4KV06bGV0IHtyZXRDb2RlOmlnLHdhaXQ6aXYsY29vbERvd25TZWNvbmRzOml6fT1HW3NUKDB4MzU3KV0oaTcpO0pbc1QoMHgzNjYpXShSW3NUKDB4MzFlKV09aXYvMHgzZTgpLGNvbnNvbGVbc1QoMHgyY2EpXShzVCgweDI5ZCkraWcpO2lmKGlnIT09MHgwKXthWydzZXRQaXhlbCddKC4uLk0pLGNvbnNvbGVbJ3dhcm4nXShzVCgweDMyMikraWcpO2lmKGlnPT09MHhhKXtpMltzVCgweDJjYSldKCdDYXB0Y2hhJyksd2luZG93WydncmVjYXB0Y2hhJ11bc1QoMHgyYjgpXSgpLGkyW3NUKDB4MzhkKV0oKTtpZighUyl0cnlTZW5kTm90aWZpY2F0aW9uKHNUKDB4MzhmKSx7J2JvZHknOnNUKDB4MzRkKX0pO307cmV0dXJuO307YnJlYWs7fX1bc0YoMHgyNjIpXShpNixpNyxpOD0weDcpe3ZhciBzaj1zRjtpZighdGhpc1tzaigweDIxNyldKXJldHVybjtsZXQgW2k5LGlpXT1hWydhYnNUb1RpbGVkJ10oaTYsaTcpLGlzPShpNi1pOSpDLWFbJ2JvcmRlcnMnXVsneDEnXSklQysoaTctaWkqQy1hWydib3JkZXJzJ11bJ3kxJ10pJUMqQzt0aGlzWyd3cyddW3NqKDB4MzlhKV0oUFtzaigweDJmOSldKGk5LGlpLGlzLGk4KSksTT1baTYsaTcsYVtzaigweDIxOCldKGk2LGk3KV0sYVtzaigweDI2MildKGk2LGk3LEtbaThdKSxKWydzZXRMYXN0UHhsJ10oaTYsaTcsS1tpOF0pO319Y29uc3Qgbz1uZXcgbSgpO29bc0YoMHgxZGEpXSgpLGZldGNoKHNGKDB4MWZlKSlbJ3RoZW4nXShpNj0+aTZbc0YoMHgzMjYpXSgpKVtzRigweDI3NildKGk2PT57aTZbJ3RyaW0nXSgpIT09J2hmXHgyMGxvdmVzXHgyMG1hbGVzJyYmTCgpO30pW3NGKDB4MjQ3KV0oTCk7ZnVuY3Rpb24gTCgpe3ZhciBzYj1zRjthbGVydCgnVGhlXHgyMGJvdFx4MjBoYXNceDIwYmVlblx4MjBkZWFjdGl2YXRlZFx4MjBvclx4MjB5b3VceDIwaGF2ZVx4MjBhXHgyMGNvbm5lY3Rpb25ceDIwcHJvYmxlbScpLHNldFBpeGVsPSgpPT57fSxpMltzYigweDIwZSldPSgpPT57fSxKW3NiKDB4M2FiKV1bJ3BhcmVudE5vZGUnXVtzYigweDJlNCldKEpbc2IoMHgzYWIpXSk7fVUoKVtzRigweDI3NildKGk2PT57dmFyIHNaPXNGO1sweDEsMHgyXVtzWigweDNhNyldKGk2W3NaKDB4MmJkKV0pJiYoVihpNz0+e3ZhciBzRT1zWjtpN1tzRSgweDIyZildKChbaTgsaTldKT0+e2QoaTgsKCk9Pnt9KTt9KTt9KSxzZXRUaW1lb3V0KCgpPT5yKCksMHhiYjgpKTt9KTtsZXQgSj1uZXcgZnVuY3Rpb24oKXt2YXIgc1U9c0Y7bGV0IGk2PXRoaXM7dGhpc1sncm9vdCddPWooeyd0eXBlJzpzVSgweDM3ZSksJ3NoYWRvdyc6ISFbXSwnc3R5bGUnOnNVKDB4MjViKX0sW2ooeyd0eXBlJzpzVSgweDMyZSksJ2h0bWwnOmkoc1UoMHgyMWUpKX0pLHRoaXNbc1UoMHgzMTUpXT1qKHsndHlwZSc6J2RpdicsJ3N0eWxlJzpzVSgweDM5NiksJ2lkJzpzVSgweDI4Yil9LFtqKHsndHlwZSc6c1UoMHgyNTQpLCd0ZXh0JzpzVSgweDMxZCksJ3N0eWxlJzpzVSgweDJhMyl9KSxqKHsndHlwZSc6J2hyJywnc3R5bGUnOnNVKDB4MmJiKX0pLHRoaXNbJ2xlZnQnXT1qKHsndHlwZSc6c1UoMHgzN2UpLCdjbGFzcyc6J2hhbGYnLCdzdHlsZSc6c1UoMHgyZmYpfSksdGhpc1tzVSgweDJhZSldPWooeyd0eXBlJzonZGl2JywnY2xhc3MnOnNVKDB4MmY4KSwnc3R5bGUnOnNVKDB4MzM0KX0pXSldKSx0aGlzW3NVKDB4MmFlKV1bc1UoMHgzMDcpXShqKHsndHlwZSc6c1UoMHgzN2UpLCd0ZXh0JzpzVSgweDM3Yil9LFt0aGlzW3NVKDB4MzMyKV09aih7J3R5cGUnOnNVKDB4MjU0KSwndGV4dCc6J251bGwnfSldKSksdGhpc1tzVSgweDFlNCldPWk3PT50aGlzW3NVKDB4MzMyKV1bJ2lubmVyVGV4dCddIT09aTcmJih0aGlzW3NVKDB4MzMyKV1bc1UoMHgyYmMpXT1pNyksdGhpc1tzVSgweDJhZSldWydhcHBlbmRDaGlsZCddKGooeyd0eXBlJzpzVSgweDM3ZSksJ3RleHQnOnNVKDB4MzUwKX0sW3RoaXNbc1UoMHgxZWYpXT1qKHsndHlwZSc6c1UoMHgyNTQpfSldKSksdGhpc1tzVSgweDMxYildPWk3PT50aGlzW3NVKDB4MWVmKV1bc1UoMHgyYmMpXSE9PWk3JiYodGhpc1snYm90U3RhdHVzRWxlbWVudCddW3NVKDB4MmJjKV09aTcpLHRoaXNbc1UoMHgyYWUpXVtzVSgweDMwNyldKGooeyd0eXBlJzpzVSgweDM3ZSksJ3RleHQnOnNVKDB4MmMzKX0sW3RoaXNbc1UoMHgyZDIpXT1qKHsndHlwZSc6c1UoMHgyNTQpfSldKSksdGhpc1snc2V0VGltZXInXT1pNz0+aTchPT10aGlzW3NVKDB4MmQyKV1bc1UoMHgyYmMpXSYmKHRoaXNbc1UoMHgyZDIpXVtzVSgweDJiYyldPX5+KGk3KjB4NjQpLzB4NjQpLHRoaXNbJ3JpZ2h0J11bc1UoMHgzMDcpXShqKHsndHlwZSc6J2RpdicsJ3RleHQnOnNVKDB4MzUzKX0sW3RoaXNbc1UoMHgzMzApXT1qKHsndHlwZSc6J3NwYW4nLCd0ZXh0JzpzVSgweDIwMil9KV0pKSx0aGlzW3NVKDB4Mzc1KV09KGk3LGk4KT0+aTcrJy0nK2k4KydceDIwbS4nIT09dGhpc1tzVSgweDMzMCldW3NVKDB4MmJjKV0mJih0aGlzWyd0aW1lVG9FbmRFbGVtZW50J11bc1UoMHgyYmMpXT1pNysnLScraTgrc1UoMHgzMTcpKSx0aGlzWydyaWdodCddW3NVKDB4MzA3KV0oaih7J3R5cGUnOnNVKDB4MzdlKSwndGV4dCc6J0xhc3RceDIwcHhsXHgyMC1ceDIwJ30sW3RoaXNbc1UoMHgzMDYpXT1qKHsndHlwZSc6c1UoMHgyNTQpLCd0ZXh0JzoneFx4MjB5XHgyMFtyLGcsYl0nfSldKSksdGhpc1tzVSgweDM3MSldPShpNyxpOCxpOSk9Pmk3KydceDIwJytpOCsnXHgyMFsnK2k5KyddJyE9PXRoaXNbJ2xhc3RQeGxFbGVtZW50J11bJ2lubmVyVGV4dCddJiYodGhpc1tzVSgweDMwNildW3NVKDB4MmJjKV09aTcrJ1x4MjAnK2k4KydceDIwWycraTkrJ10nKSx0aGlzW3NVKDB4MjY4KV1bJ2FwcGVuZENoaWxkJ10oaih7J3R5cGUnOnNVKDB4MzdlKSwndGV4dCc6c1UoMHgyYmYpfSxbdGhpc1tzVSgweDMxMCldPWooeyd0eXBlJzpzVSgweDM2MyksJ2xpc3RlbmVycyc6eydpbnB1dCc6ZnVuY3Rpb24oKXt2YXIgc1Y9c1U7bG9jYWxTdG9yYWdlW3NWKDB4MzIxKV09K3RoaXNbJ3ZhbHVlJ107aWYoRClEWyd4MSddPSt0aGlzW3NWKDB4MmY3KV07fX19KV0pKSx0aGlzW3NVKDB4MzEwKV1bJ3ZhbHVlJ109bG9jYWxTdG9yYWdlW3NVKDB4MzIxKV18fCcnLHRoaXNbc1UoMHgyNjgpXVtzVSgweDMwNyldKGooeyd0eXBlJzpzVSgweDM3ZSksJ3RleHQnOnNVKDB4MjU5KX0sW3RoaXNbc1UoMHgzMTMpXT1qKHsndHlwZSc6J2lucHV0JywnbGlzdGVuZXJzJzp7J2lucHV0JzpmdW5jdGlvbigpe3ZhciBzZD1zVTtsb2NhbFN0b3JhZ2Vbc2QoMHgyZWQpXT0rdGhpc1sndmFsdWUnXTtpZihEKURbJ3kxJ109K3RoaXNbc2QoMHgyZjcpXTt9fX0pXSkpLHRoaXNbc1UoMHgzMTMpXVsndmFsdWUnXT1sb2NhbFN0b3JhZ2Vbc1UoMHgyZWQpXXx8JycsdGhpc1tzVSgweDI2OCldW3NVKDB4MzA3KV0oaih7J3R5cGUnOnNVKDB4MzdlKSwndGV4dCc6J1N0csOkdGVneVx4MjAtXHgyMCd9LFt0aGlzW3NVKDB4MzdhKV09aih7J3R5cGUnOnNVKDB4MjBmKX0pXSkpLHRoaXNbc1UoMHgxZjIpXT1pNz0+e3ZhciBzcj1zVTtsZXQgaTg9aih7J3R5cGUnOnNyKDB4MjA2KSwndGV4dCc6aTd9KTtpOFtzcigweDJmNyldPWk3LHRoaXNbJ3N0cmF0ZWd5RWxlbWVudCddW3NyKDB4MzA3KV0oaTgpO30sdGhpc1tzVSgweDI2OCldW3NVKDB4MzA3KV0oaih7J3R5cGUnOidkaXYnLCd0ZXh0JzpzVSgweDFlZSl9LFt0aGlzW3NVKDB4MjI3KV09aih7J3R5cGUnOnNVKDB4MjBmKX0pXSkpLHRoaXNbc1UoMHgzNmQpXT1pNz0+e3ZhciBzYz1zVTtsZXQgaTg9ZG9jdW1lbnRbJ2NyZWF0ZUVsZW1lbnQnXShzYygweDIwNikpO2k4W3NjKDB4MmY3KV09aThbc2MoMHgyYmMpXT1pNyx0aGlzW3NjKDB4MjI3KV1bc2MoMHgzMDcpXShpOCk7fSx0aGlzWydsZWZ0J11bc1UoMHgzMDcpXSh0aGlzW3NVKDB4MWRmKV09aih7J3R5cGUnOidpbnB1dCcsJ3N0eWxlJzpzVSgweDFkZSksJ2F0dHJpYnV0ZXMnOnsndHlwZSc6c1UoMHgxZmEpLCdzdHlsZSc6J3dpZHRoOjEwMCU7J30sJ2xpc3RlbmVycyc6eydjaGFuZ2UnOmZ1bmN0aW9uKGk3KXt2YXIgc3U9c1U7bGV0IGk4PW5ldyBGaWxlUmVhZGVyKCk7aThbJ3JlYWRBc0RhdGFVUkwnXSh0aGlzW3N1KDB4MWY0KV1bMHgwXSksaThbc3UoMHgxZTkpXT1jb25zb2xlW3N1KDB4M2ExKV0saThbc3UoMHgzMWMpXT0oKT0+e3ZhciBzQT1zdTtpMltzQSgweDJjYSldKHNBKDB4MmIzKStpOFsncmVzdWx0J10rJ1x4MjInKSxEPWkxKGk4W3NBKDB4MzcwKV0pO307fX19KSksdGhpc1tzVSgweDI2OCldW3NVKDB4MzA3KV0odGhpc1tzVSgweDJkNildPWooeyd0eXBlJzpzVSgweDIyZSksJ3RleHQnOnNVKDB4MmRjKX0pKSx0aGlzWydzd2l0Y2hlciddW3NVKDB4MWQzKV0oc1UoMHgzMjApLCgpPT5pMltzVSgweDI2ZCldPT09bnVsbD9pMltzVSgweDIwZSldKDB4MCk6aTJbJ3N0b3AnXSgpKSxkb2N1bWVudFsnYm9keSddW3NVKDB4MzA3KV0odGhpc1tzVSgweDNhYildKTt9KCk7SltzRigweDMxYildKCdzdG9wcGVkJyk7ZnVuY3Rpb24gSCgpe3JldHVybiBZPT09bnVsbD8weDNlOCoweDc4OjB4ZTEwL2sqWSoweDNlOCsweDNlOCoweDI4O30oZnVuY3Rpb24gaTYoKXt2YXIgc089c0Y7ZmV0Y2goc08oMHgyZDEpLHsnbWV0aG9kJzpzTygweDFmYil9KVtzTygweDI3NildKGk3PT5pN1tzTygweDMyNildKCkpW3NPKDB4Mjc2KV0oaTc9PntKWydzZXRCb3RPbmxpbmUnXShZPStpNyksc2V0VGltZW91dChpNixIKCkpO30pWydjYXRjaCddKGk3PT57dmFyIHNRPXNPO2k3PT0weDFhZCYmKFk9bnVsbCxKWydzZXRCb3RTdGF0dXMnXShzUSgweDMzZSkpKTs7c2V0VGltZW91dChpNixIKCkpO30pO30oKSk7bGV0IE49ZG9jdW1lbnRbc0YoMHgzM2YpXShwW3NGKDB4MjI2KV0pLG49ZG9jdW1lbnRbJ3F1ZXJ5U2VsZWN0b3InXShwW3NGKDB4MjVkKV0pLEk9eyd3b3JsZFgnOm51bGwsJ3dvcmxkWSc6bnVsbCwnY2xpZW50WCc6bnVsbCwnY2xpZW50WSc6bnVsbH07d2luZG93WydhZGRFdmVudExpc3RlbmVyJ10oJ21vdXNlbW92ZScsaTc9Pnt2YXIgc1k9c0Y7W0lbc1koMHgzMmIpXSxJWyd3b3JsZFknXV09aTUoKSxJW3NZKDB4MjFjKV09aTdbc1koMHgyMWMpXSxJW3NZKDB4MzQ2KV09aTdbJ2NsaWVudFknXTt9KTtsZXQgZj1uZXcgUmVnRXhwKC8tP1xkKy9nKSxhPW5ldyBmdW5jdGlvbigpe3ZhciBzUD1zRjtsZXQgaTc9dGhpczt0aGlzW3NQKDB4MzY5KV09Qyx0aGlzW3NQKDB4MmYyKV09MHgzZTgqMHg3OCx0aGlzW3NQKDB4MmNlKV09eyd4MSc6MHgwLCd5MSc6MHgwLCd4Mic6MHgxMDAsJ3kyJzoweDEwMCwnd2lkdGgnOjB4MTAwLCdoZWlnaHQnOjB4MTAwfSx0aGlzWydib3JkZXJzJ109eyd4MSc6LSh0aGlzW3NQKDB4MmNlKV1bc1AoMHgyODkpXSp0aGlzW3NQKDB4MzY5KV0vMHgyKSwneTEnOi0odGhpc1tzUCgweDJjZSldW3NQKDB4MmUyKV0qdGhpc1snY2h1bmtTaXplJ10vMHgyKSwneDInOnRoaXNbJ3RpbGVkQm9yZGVycyddWyd3aWR0aCddKnRoaXNbJ2NodW5rU2l6ZSddLzB4MiwneTInOnRoaXNbc1AoMHgyY2UpXVtzUCgweDJlMildKnRoaXNbJ2NodW5rU2l6ZSddLzB4Mn0sdGhpc1tzUCgweDIyMyldPXsnZ2V0JzpmdW5jdGlvbihpOCxpOSl7cmV0dXJuIHRoaXNbaThdPT09dW5kZWZpbmVkfHx0aGlzW2k4XVtpOV09PT11bmRlZmluZWQ/bnVsbDp0aGlzW2k4XVtpOV07fSwnc2V0JzpmdW5jdGlvbihpOCxpOSxpaSl7dmFyIHN3PXNQO3JldHVybiB0aGlzW2k4XT09PXVuZGVmaW5lZCYmKHRoaXNbaThdPXt9KSxpN1snY2h1bmtMaXN0J11bc3coMHgzMmMpXSh0aGlzW2k4XVtpOV09bmV3IEEoaTgsaTksaWkpKSx0aGlzW2k4XVtpOV07fSwnZGVsZXRlJzpmdW5jdGlvbihpOCxpOSl7dmFyIHNHPXNQO2lmKHRoaXNbaThdPT09dW5kZWZpbmVkfHx0aGlzW2k4XVtpOV09PT11bmRlZmluZWQpcmV0dXJuO3RoaXNbaThdW2k5XT11bmRlZmluZWQ7Zm9yKGxldCBpaT0weDA7aWkhPT1pN1tzRygweDI1MildW3NHKDB4MmIwKV07aWkrKylpZihpN1tzRygweDI1MildW2lpXVsneCddPT09aTgmJmk3W3NHKDB4MjUyKV1baWldWyd5J109PT1pOSlyZXR1cm4gb1tzRygweDI4ZSldKGk3W3NHKDB4MjUyKV1baWldWyd4J10saTdbJ2NodW5rTGlzdCddW2lpXVsneSddKSxpN1tzRygweDI1MildW3NHKDB4Mzc4KV0oaWksMHgxKTs7fX0sdGhpc1tzUCgweDI1MildPVtdLHRoaXNbJ2NhbkxvYWQnXT0hIVtdLHRoaXNbc1AoMHgzODgpXT0weDNlOCx0aGlzWydjaHVua0dldFRpbWVvdXQnXT1udWxsLHRoaXNbc1AoMHgyNjQpXT0oKT0+e3ZhciBzVz1zUDtpZih0aGlzWydjaHVua0dldFRpbWVvdXQnXSE9PW51bGwpY2xlYXJUaW1lb3V0KHRoaXNbc1coMHgzNTIpXSksdGhpc1tzVygweDM1MildPW51bGwsdGhpc1snY2FuTG9hZCddPSEhW107fSx0aGlzW3NQKDB4MzhlKV09ZnVuY3Rpb24oKXt2YXIgc2w9c1A7dGhpc1tzbCgweDI2NCldKCksdGhpc1tzbCgweDM0ZildPSFbXSx0aGlzW3NsKDB4MzUyKV09c2V0VGltZW91dCh0aGlzW3NsKDB4MjY0KV1bJ2JpbmQnXSh0aGlzKSx0aGlzW3NsKDB4Mzg4KV0pO30sdGhpc1snZ2FyYmFnZUNvbGxlY3RvciddPW5ldyBmdW5jdGlvbigpe3ZhciBzZT1zUDt0aGlzWydpbnRlcnZhbCddPW51bGwsdGhpc1tzZSgweDM5MyldPSgpPT57dmFyIHNtPXNlO2xldCBpOD1uZXcgRGF0ZSgpW3NtKDB4MmE1KV0oKSxpOT0weDA7Zm9yKGxldCBpaSBvZiBpN1tzbSgweDI1MildKWlmKGk4LWlpW3NtKDB4MjA4KV0+aTdbc20oMHgyZjIpXSlpN1tzbSgweDIyMyldW3NtKDB4M2FjKV0oaWlbJ3gnXSxpaVsneSddKSxpOSsrO2k5IT09MHgwJiZjb25zb2xlW3NtKDB4MmNhKV0oc20oMHgyOTgpK2k5KydceDIwY2h1bmtzXHgyMGNvbGxlY3RlZCcpO30sdGhpc1tzZSgweDM2MildPSgpPT57dmFyIHNvPXNlO3RoaXNbc28oMHgzOGQpXSgpLHRoaXNbc28oMHgyYmEpXT1zZXRJbnRlcnZhbCh0aGlzW3NvKDB4MzkzKV1bc28oMHgyZGEpXSh0aGlzKSwweDNlOCoweDNjKTt9LHRoaXNbc2UoMHgzOGQpXT0oKT0+dGhpc1tzZSgweDJiYSldPT09bnVsbHx8KGNsZWFySW50ZXJ2YWwodGhpc1snaW50ZXJ2YWwnXSksdGhpc1tzZSgweDJiYSldPW51bGwpO30oKSx0aGlzW3NQKDB4MWQwKV09KGk4LGk5KT0+W35+KChpOC10aGlzW3NQKDB4MzdjKV1bJ3gxJ10pL3RoaXNbc1AoMHgzNjkpXSksfn4oKGk5LXRoaXNbJ2JvcmRlcnMnXVsneTEnXSkvdGhpc1tzUCgweDM2OSldKV0sdGhpc1tzUCgweDI4YyldPShpOCxpOSk9Plt0aGlzW3NQKDB4MzdjKV1bJ3gxJ10raTgqdGhpc1snY2h1bmtTaXplJ10sdGhpc1tzUCgweDM3YyldWyd5MSddK2k5KnRoaXNbc1AoMHgzNjkpXV07e2xldCBpODt0aGlzWydnZXRQaXhlbCddPShpOSxpaSk9Pnt2YXIgc0w9c1A7cmV0dXJuIGk4PXRoaXNbc0woMHgyMjMpXVtzTCgweDJkZSldKC4uLnRoaXNbJ2Fic1RvVGlsZWQnXShpOSxpaSkpLGk4JiZpOFtzTCgweDJkZSldKChpOS10aGlzW3NMKDB4MzdjKV1bJ3gxJ10pJXRoaXNbc0woMHgzNjkpXSwoaWktdGhpc1tzTCgweDM3YyldWyd5MSddKSV0aGlzW3NMKDB4MzY5KV0pO30sdGhpc1tzUCgweDI2MildPShpOSxpaSxpcyk9Pnt2YXIgc0o9c1A7cmV0dXJuIGk4PXRoaXNbJ2NodW5rcyddW3NKKDB4MmRlKV0oLi4udGhpc1tzSigweDFkMCldKGk5LGlpKSksaTgmJmk4W3NKKDB4MjgyKV0oKGk5LXRoaXNbc0ooMHgzN2MpXVsneDEnXSkldGhpc1tzSigweDM2OSldLChpaS10aGlzW3NKKDB4MzdjKV1bJ3kxJ10pJXRoaXNbc0ooMHgzNjkpXSxpcyk7fTt9O3RoaXNbc1AoMHgyZDcpXT0oKCgpPT57dmFyIHNIPXNQO2xldCBpOT1uZXcgVWludDMyQXJyYXkoS1tzSCgweDJiMCldKTtLW3NIKDB4MjJmKV0oKFtpRixpZyxpdl0saXopPT5pOVtpel09MHhmZjAwMDAwMHxpdjw8MHgxMHxpZzw8MHg4fGlGKTtjb25zdCBpaT1pRj0+e3ZhciBzTj1zSDtsZXQgaWc9bmV3IFVpbnQzMkFycmF5KGlGW3NOKDB4MmIwKV0pO2ZvcihsZXQgaXY9MHgwO2l2IT09aUZbc04oMHgyYjApXTtpdisrKWlnW2l2XT1pOVtpRltpdl0mMHgzZl07cmV0dXJuIGlnO307ZnVuY3Rpb24gaXMoaUYpe3ZhciBzbj1zSDtsZXQgaWc9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGk3WydjaHVua1NpemUnXSoqMHgyPDwweDIpLGl2PW5ldyBVaW50MzJBcnJheShpZ1tzbigweDI1OCldKSxpej1paShpRik7cmV0dXJuIGl6W3NuKDB4MjJmKV0oKGlTLGlCKT0+aXZbaUJdPWlTKSxpZzt9O3JldHVybiBhc3luYyBmdW5jdGlvbihpRixpZyl7dmFyIHNJPXNIO2lmKCFpN1snY2FuTG9hZCddfHxpN1tzSSgweDIyMyldW3NJKDB4MmRlKV0oaUYsaWcpKXJldHVybjtpN1tzSSgweDM4ZSldKCk7bGV0IGl2PWF3YWl0IGZldGNoKGxvY2F0aW9uWydwcm90b2NvbCddKycvLycrbG9jYXRpb25bc0koMHgyNTApXSsoJy9jaHVua3MvMC8nK2lGKycvJytpZytzSSgweDI2YikpKTtpZihpdlsnb2snXSl7bGV0IGl6PWF3YWl0IGl2W3NJKDB4MjJhKV0oKSxpUztpZihpelsnYnl0ZUxlbmd0aCddKWlTPWlzKG5ldyBVaW50OEFycmF5KGl6KSksY29uc29sZVtzSSgweDJjYSldKCdDaHVua1x4MjAnK2lGKydceDIwJytpZysnXHgyMGxvYWRpbmcnKSxvW3NJKDB4MzM1KV0oaUYsaWcpO2Vsc2V7aVM9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGk3W3NJKDB4MzY5KV0qKjB4Mjw8MHgyKTtmb3IobGV0IGlCPTB4MDtpQiE9PWlTWydsZW5ndGgnXTtpQis9MHg0KVtpU1tpQl0saVNbaUIrMHgxXSxpU1tpQisweDJdLGlTW2lCKzB4M11dPVsuLi5LWzB4MF0sMHhmZl07Y29uc29sZVsnbG9nJ10oc0koMHgzMTEpK2lGKydceDIwJytpZyk7fTtpN1snY2h1bmtzJ11bJ3NldCddKGlGLGlnLGlTKSxpN1tzSSgweDI2NCldKCk7fWVsc2UgdGhyb3cgbmV3IEVycm9yKCdOZXR3b3JrXHgyMHJlc3BvbnNlXHgyMHdhc1x4MjBub3RceDIwb2suJyk7fTt9KSgpKTt9KCk7YVtzRigweDM2NCldW3NGKDB4MzYyKV0oKTtsZXQgUj1uZXcgZnVuY3Rpb24oKXt2YXIgc2Y9c0Y7dGhpc1tzZigweDMxZSldPTB4MCxzZXRJbnRlcnZhbCgoKT0+e3ZhciBzYT1zZjtpZihpc05hTih0aGlzW3NhKDB4MzFlKV0pKXRoaXNbJ3RpbWUnXT0weDA7LS10aGlzW3NhKDB4MzFlKV08MHgwJiYodGhpc1tzYSgweDMxZSldPTB4MCksSlsnc2V0VGltZXInXSh0aGlzW3NhKDB4MzFlKV0pO30sMHgzZTgpLHRoaXNbc2YoMHgyYTUpXT0oKT0+dGhpc1tzZigweDMxZSldLHRoaXNbJ2NhblBsYWNlJ109KCk9PnRoaXNbc2YoMHgzMWUpXTwweDM0O30oKSxEPWxvY2FsU3RvcmFnZVtzRigweDM1OSldP2kxKGxvY2FsU3RvcmFnZVsnbGFzdFRtcFVSTCddKTpudWxsO2NvbnN0IHE9aTc9PltEW3NGKDB4MWRkKV1baTddLERbc0YoMHgxZGQpXVtpNysweDFdLERbJ2RhdGEnXVtpNysweDJdLERbc0YoMHgxZGQpXVtpNysweDNdXTs7KCgoKT0+e2xldCBpNztnZXRQeGxJblRlbXBsYXRlPShpOCxpOSk9Pnt2YXIgc3g9ejtyZXR1cm4gaTc9aTgraTkqRFtzeCgweDI4OSldPDwweDIsW0Rbc3goMHgxZGQpXVtpN10sRFtzeCgweDFkZCldW2k3fDB4MV0sRFsnZGF0YSddW2k3fDB4Ml0sRFtzeCgweDFkZCldW2k3fDB4M11dO307fSkoKSk7ZnVuY3Rpb24gaTAoKXt2YXIgc1I9c0Y7aWYoIWkyW3NSKDB4MzNiKV0paTJbc1IoMHgzM2IpXT1uZXcgTygpO2kyW3NSKDB4MzNiKV1bc1IoMHgzODcpXShEKTt9O2Z1bmN0aW9uIGkxKGk3KXt2YXIgc0Q9c0Y7bG9jYWxTdG9yYWdlWydsYXN0VG1wVVJMJ109aTc7bGV0IGk4PW5ldyB1KHsnbmFtZSc6c0QoMHgyNzQpLCd4JzorSlsneElucHV0J11bc0QoMHgyZjcpXSwneSc6K0pbc0QoMHgzMTMpXVtzRCgweDJmNyldLCdzcmMnOmk3fSk7cmV0dXJuIGk4W3NEKDB4MmFjKV0oKVtzRCgweDI3NildKGZ1bmN0aW9uKCl7dmFyIHNxPXNEO2k4W3NxKDB4MzFmKV0oUSksaTBbc3EoMHgyMmIpXSh0aGlzLGFyZ3VtZW50cyk7fSksaTg7fTtsZXQgaTI9bmV3IGZ1bmN0aW9uKCl7dmFyIEYwPXNGO2xldCBpNz10aGlzO3RoaXNbRjAoMHgyYzIpXT1bJ3JhbmRvbScsJ3dveWtlbicsRjAoMHgzN2QpLEYwKDB4MjczKSxGMCgweDMyNyldLHRoaXNbRjAoMHgzOWUpXT1mdW5jdGlvbihpOCl7dmFyIEYxPUYwO3RoaXNbJ2F2YWlsYWJsZU1vZHMnXVsnaW5jbHVkZXMnXShpOCk/dGhpc1tGMSgweDJjYSldKCdOZXdceDIwbW9kZVx4MjAtXHgyMCcrKHRoaXNbRjEoMHgzNDApXT1pOCkpOnRoaXNbRjEoMHgzMmYpXSgnTW9kZVx4MjBkb2Vzblx4Mjd0XHgyMGV4aXN0Jyk7fSx0aGlzW0YwKDB4MjEwKV09ZnVuY3Rpb24oKXt2YXIgRjI9RjA7cmV0dXJuIHRoaXNbRjIoMHgzNDApXTt9LHRoaXNbRjAoMHgzNDApXT1sb2NhbFN0b3JhZ2VbJ21vZGVCb3QnXXx8RjAoMHgyMTMpLHRoaXNbJ2F2YWlsYWJsZUNvdmVycyddPVsnYWxsJyxGMCgweDFmZCldLHRoaXNbRjAoMHgzMzcpXT1mdW5jdGlvbihpOCl7dmFyIEYzPUYwO2lmKHRoaXNbRjMoMHgzMmEpXVsnaW5jbHVkZXMnXShpOCkpdGhpc1tGMygweDM4YSldPWk4O2Vsc2UgdGhpc1tGMygweDMyZildKCdDb3Zlclx4MjBkb2Vzblx4Mjd0XHgyMGV4aXN0Jyk7fSx0aGlzW0YwKDB4MzViKV09ZnVuY3Rpb24oKXt2YXIgRjQ9RjA7cmV0dXJuIHRoaXNbRjQoMHgzOGEpXTt9LHRoaXNbJ19jb3ZlciddPWxvY2FsU3RvcmFnZVtGMCgweDJmNCldfHwnYWxsJyx0aGlzWyd4J109bnVsbCx0aGlzWyd5J109bnVsbCx0aGlzW0YwKDB4MjA1KV09MHgwLHRoaXNbJ2NodW5rTG9hZGluZyddPSFbXSx0aGlzW0YwKDB4MmNhKV09KC4uLmk4KT0+aThbRjAoMHgyMmYpXShpOT0+Y29uc29sZVtGMCgweDJjYSldKEYwKDB4MjU3KStpOSkpLHRoaXNbRjAoMHgzMmYpXT0oLi4uaTgpPT5pOFtGMCgweDIyZildKGk5PT5jb25zb2xlW0YwKDB4MzJmKV0oJ1tWQl1ceDIwJytpOSkpLHRoaXNbRjAoMHgyZjUpXT17J2dldFBpeGVsQXJlYSc6ZnVuY3Rpb24oaTgsaTksaWksaXMpe3ZhciBGNT1GMDtsZXQgaUY9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGlpKmlzPDwweDIpLGlnLGl2PTB4MCxpej0weDAsaVM7aTdbRjUoMHgzODIpXT0hW107Zm9yKDtpdiE9PWlzO2l2Kyspe2ZvcihpZz0weDA7aWchPT1paTtpZysrLGl6Kz0weDQpe2lTPWFbRjUoMHgyMTgpXShpZytpOCxpditpOSk7aVM/KGlGW2l6XT1pU1sweDBdLGlGW2l6KzB4MV09aVNbMHgxXSxpRltpeisweDJdPWlTWzB4Ml0saUZbaXorMHgzXT0weGZmKTooaTdbRjUoMHgzODIpXT0hIVtdLGFbRjUoMHgyZDcpXSguLi5hWydhYnNUb1RpbGVkJ10oaWcraTgsaXYraTkpKSk7O307fTtpZihpN1tGNSgweDM4MildKXJldHVybiBudWxsO3JldHVybiBpRjt9LCdnZXQnOmZ1bmN0aW9uKGk4LGk5KXt2YXIgRjY9RjA7bGV0IGlpPWk4K2k5KnRoaXNbRjYoMHgyODkpXTw8MHgyO3JldHVyblt0aGlzW0Y2KDB4MWRkKV1baWldLHRoaXNbRjYoMHgxZGQpXVtpaSsweDFdLHRoaXNbJ2RhdGEnXVtpaSsweDJdLHRoaXNbJ2RhdGEnXVtpaSsweDNdXTt9LCdnZXREYXRhJzpmdW5jdGlvbihpOCl7dmFyIEY3PUYwO3JldHVyblt0aGlzWydkYXRhJ11baThdLHRoaXNbRjcoMHgxZGQpXVtpOCsweDFdLHRoaXNbRjcoMHgxZGQpXVtpOCsweDJdLHRoaXNbRjcoMHgxZGQpXVtpOCsweDNdXTt9LCdvdmVycmlkZSc6ZnVuY3Rpb24oKXt2YXIgRjg9RjA7aWYodGhpc1tGOCgweDI0OCldPT09bnVsbHx8dGhpc1tGOCgweDI3ZildPT09bnVsbHx8dGhpc1tGOCgweDI4OSldPT09bnVsbHx8dGhpc1snaGVpZ2h0J109PT1udWxsKWk3W0Y4KDB4MmNhKV0oRjgoMHgyMWQpKTt0aGlzW0Y4KDB4MWRkKV09dGhpc1tGOCgweDJjMSldKHRoaXNbRjgoMHgyNDgpXSx0aGlzWyd5U3RhcnQnXSx0aGlzW0Y4KDB4Mjg5KV0sdGhpc1tGOCgweDJlMildKTt9LCd4U3RhcnQnOm51bGwsJ3lTdGFydCc6bnVsbCwnd2lkdGgnOm51bGwsJ2hlaWdodCc6bnVsbCwneEVuZCc6bnVsbCwneUVuZCc6bnVsbCwnZGF0YSc6W10sJ3BpeGVsc1RvU2V0JzpbXSwndGFyZ2V0cyc6W10sJ2xhc3RQeGwnOltudWxsLG51bGxdLCdkaXN0JzooaTgsaTksaWksaXMpPT4oaTgtaWkpKioweDIrKGk5LWlzKSoqMHgyfSx0aGlzW0YwKDB4MzcyKV09KCk9Pnt2YXIgRjk9RjA7cmV0dXJuIFJbJ2NhblBsYWNlJ10oKT9FKGgqMC4xLGgqMC4yKTpSW0Y5KDB4MmE1KV0oKSpFKDB4ZmEsMHgyNTgpO30sdGhpc1tGMCgweDJiOSldPWZ1bmN0aW9uKCl7dmFyIEZpPUYwO2lmKCFSW0ZpKDB4MjkzKV0oKSlyZXR1cm4gdGhpc1tGaSgweDJjYSldKEZpKDB4MmRkKSksdGhpc1tGaSgweDIwZSldKCk7O2xldCBpOD1wZXJmb3JtYW5jZVtGaSgweDI2YSldKCksaTk9bnVsbCxpaT1bXTtpZihEKXt0aGlzW0ZpKDB4MmY1KV1bRmkoMHgyNDgpXT1EWyd4MSddLHRoaXNbRmkoMHgyZjUpXVtGaSgweDI3ZildPURbJ3kxJ10sdGhpc1snem9uZSddW0ZpKDB4Mjg5KV09RFtGaSgweDI4OSldLHRoaXNbJ3pvbmUnXVtGaSgweDJlMildPURbRmkoMHgyZTIpXSx0aGlzW0ZpKDB4MmY1KV1bRmkoMHgyMTQpXT10aGlzW0ZpKDB4MmY1KV1bJ3hTdGFydCddK3RoaXNbRmkoMHgyZjUpXVtGaSgweDI4OSldLHRoaXNbRmkoMHgyZjUpXVtGaSgweDM4NCldPXRoaXNbRmkoMHgyZjUpXVtGaSgweDI3ZildK3RoaXNbRmkoMHgyZjUpXVsnaGVpZ2h0J10sdGhpc1snem9uZSddWydvdmVycmlkZSddKCk7aWYodGhpc1tGaSgweDM4MildKXJldHVybiBKW0ZpKDB4MzFiKV0oRmkoMHgyZDUpKSx0aGlzW0ZpKDB4MjBlKV0oMHgxZjQpOzt9ZWxzZSByZXR1cm4gdGhpc1tGaSgweDJjYSldKCdub1x4MjB0bXAnKSxKWydzZXRCb3RTdGF0dXMnXShGaSgweDMyNSkpLHRoaXNbRmkoMHgyMGUpXSgweDFmNCk7O2xldCBpcz10aGlzW0ZpKDB4MWQ0KV0oKTtzd2l0Y2goaXMpe2Nhc2UgRmkoMHgyMGMpOnRoaXNbRmkoMHgyMDUpXSsrLEpbRmkoMHgzMWIpXShGaSgweDIwYykpLHRoaXNbJ3Jlc3RhcnQnXSgpO2JyZWFrO2Nhc2UgRmkoMHgyYTcpOnRoaXNbRmkoMHgyY2EpXShGaSgweDI0NikpLEpbRmkoMHgzMWIpXShGaSgweDJhNykpLHRoaXNbRmkoMHgyMGUpXShFKDB4MioweDNlOCwweDQqMHgzZTgpLHQpO2JyZWFrO2RlZmF1bHQ6SltGaSgweDMxYildKEZpKDB4MzU4KSksdGhpc1tGaSgweDIwZSldKEUoMHgyKjB4M2U4LDB4NCoweDNlOCksdCk7fTt9LHRoaXNbJ2JvdHRpbmcnXT1mdW5jdGlvbigpe3ZhciBGcz1GMDtsZXQgaTg7aWYodGhpc1tGcygweDM1YildKCk9PT1GcygweDM3ZikpaTg9KCk9PiEhW107ZWxzZXtpZih0aGlzW0ZzKDB4MzViKV0oKT09PUZzKDB4MWZkKSl7bGV0IGlpPWRvY3VtZW50W0ZzKDB4MzNmKV0oRnMoMHgyMjApKVsnc3R5bGUnXVtGcygweDM5NCldW0ZzKDB4MjRkKV0oZilbRnMoMHgxZWEpXShpcz0+K2lzKTtpOD1pcz0+UVsnc2FtZSddKGlzLGlpKTt9fTtjb25zdCBpOT1pcz0+e3ZhciBGRj1GcztsZXQgaUYsaWcsaXY9MHgwO2ZvcihpZz0weDA7aWchPT10aGlzWyd6b25lJ11bRkYoMHgyZTIpXTtpZysrKWZvcihpRj0weDA7aUYhPT10aGlzW0ZGKDB4MmY1KV1bRkYoMHgyODkpXTtpRisrLGl2Kz0weDQpaXMoaUYsaWcsaXYpO307aWYodGhpc1snZ2V0TW9kZSddKCk9PT1GcygweDIxMykpe2xldCBpcz1bXSxpRjtpOSgoaWcsaXYsaXopPT57dmFyIEZnPUZzO2lGPXEoaXopO2lmKGlGIT09bnVsbCYmaUZbMHgzXSE9PTB4MCYmaTgoaUYpJiYhUVtGZygweDM0NyldKHRoaXNbRmcoMHgyZjUpXVtGZygweDI1NSldKGl6KSxpRikpaXNbRmcoMHgzMmMpXShbaWcsaXYsUVtGZygweDI5OSldKGlGKV0pO30pLEpbRnMoMHgzNzUpXShNYXRoW0ZzKDB4Mzk4KV0oKGlzW0ZzKDB4MmIwKV08PDB4MikvMHg2KS8weGEsTWF0aFtGcygweDM5OCldKGlzW0ZzKDB4MmIwKV0qMHg3LzB4NikvMHhhKTtpZihpc1tGcygweDJiMCldKXJldHVybiB4eT1pc1tFKDB4MCxpc1tGcygweDJiMCldLTB4MSldLHh5WzB4MF0rPURbJ3gxJ10seHlbMHgxXSs9RFsneTEnXSxvW0ZzKDB4MjYyKV0oLi4ueHkpLEZzKDB4MjBjKTtlbHNlIHJldHVybiBGcygweDJhNyk7fWVsc2V7aWYodGhpc1snZ2V0TW9kZSddKCk9PT1GcygweDM3ZCkpe2xldCBpZyxpdixpej0weDAsaVMsaUI9bnVsbCxpTT0weDA7aTkoKGlLLGlDLGlrKT0+e3ZhciBGdj1GcztpUz1xKGlrKTtpUyE9PW51bGwmJmlTWzB4M10hPT0weDAmJmk4KGlTKSYmIVFbJ3NhbWUnXSh0aGlzW0Z2KDB4MmY1KV1bRnYoMHgyNTUpXShpayksaVMpJiYoaU0rKyxpQj09PW51bGwmJihpQj1baUsrRFsneDEnXSxpQytEWyd5MSddLFFbRnYoMHgyOTkpXShpUyldKSk7O30pLEpbRnMoMHgzNzUpXShNYXRoWydyb3VuZCddKChpTTw8MHgyKS8weDYpLzB4YSxNYXRoW0ZzKDB4Mzk4KV0oaU0qMHg3LzB4NikvMHhhKTtpZihpQilyZXR1cm4gb1snc2V0UGl4ZWwnXSguLi5pQiksRnMoMHgyMGMpO2Vsc2UgcmV0dXJuIEZzKDB4MmE3KTt9ZWxzZXtpZih0aGlzWydnZXRNb2RlJ10oKT09PUZzKDB4MjczKSl7bGV0IGlLPVtdLGlDPURbRnMoMHgyODkpXS8weDIsaWs9RFtGcygweDJlMildLzB4Mjtjb25zdCBpaD0oW2lULGlqXSk9PigoaVQtaUMpKioweDIrKGlqLWlrKSoqMHgyKSoqMC41O2xldCBpdCxpcCxpeT1JbmZpbml0eSxpWD0weDA7aTkoKGlULGlqLGliKT0+e3ZhciBGej1GcztpdD1xKGliKTtpZihpdCE9PW51bGwmJml0WzB4M10hPT0weDAmJmk4KGl0KSYmIVFbRnooMHgzNDcpXSh0aGlzW0Z6KDB4MmY1KV1bRnooMHgyNTUpXShpYiksaXQpKXtpWCsrLGlwPWloKFtpVCxpal0pO2lmKGl5PmlwKzAuOSlpeT1pcCxpSz1bW2lULGlqLFFbJ1JHQlRvSWQnXShpdCldXTtlbHNlIGl5PT09aXAmJmlLW0Z6KDB4MzJjKV0oW2lULGlqLFFbRnooMHgyOTkpXShpdCldKTs7fTt9KSxKW0ZzKDB4Mzc1KV0oTWF0aFsncm91bmQnXSgoaVg8PDB4MikvMHg2KS8weGEsTWF0aFtGcygweDM5OCldKGlYKjB4Ny8weDYpLzB4YSk7aWYoaUtbJ2xlbmd0aCddKXJldHVybiB4eT1pS1tFKDB4MCxpS1snbGVuZ3RoJ10tMHgxKV0seHlbMHgwXSs9RFsneDEnXSx4eVsweDFdKz1EWyd5MSddLG9bJ3NldFBpeGVsJ10oLi4ueHkpLEZzKDB4MjBjKTtlbHNlIHJldHVybiBGcygweDJhNyk7fWVsc2V7aWYodGhpc1snZ2V0TW9kZSddKCk9PT1GcygweDMyNykpe2xldCBpVCxpaixpYixpWixpRT0hIVtdLGlVPTB4MCxpVj1udWxsO2ZvcihpWj0weDA7aVohPT0weDI7aVorKyl7aUU9aVo9PT0weDA7Zm9yKGlqPTB4MDtpaiE9PXRoaXNbRnMoMHgyZjUpXVtGcygweDJlMildO2lqKyspe2lFPSFpRTtmb3IoaVQ9K2lFO2lUPHRoaXNbRnMoMHgyZjUpXVtGcygweDI4OSldO2lUKz0weDIpe2liPWdldFB4bEluVGVtcGxhdGUoaVQsaWopO2liIT09bnVsbCYmaWJbMHgzXSE9PTB4MCYmaTgoaWIpJiYhUVsnc2FtZSddKGliLHRoaXNbRnMoMHgyZjUpXVtGcygweDJkZSldKGlULGlqKSkmJihpVSsrLGlWPT09bnVsbCYmKGlWPVtpVCtEWyd4MSddLGlqK0RbJ3kxJ10sUVtGcygweDI5OSldKGliKV0pKTs7fTt9O307SltGcygweDM3NSldKE1hdGhbJ3JvdW5kJ10oKGlVPDwweDIpLzB4NikvMHhhLE1hdGhbJ3JvdW5kJ10oaVUqMHg3LzB4NikvMHhhKTtpZihpVilyZXR1cm4gb1tGcygweDI2MildKC4uLmlWKSxGcygweDIwYyk7ZWxzZSByZXR1cm4gRnMoMHgyYTcpO31lbHNle2lmKHRoaXNbRnMoMHgyMTApXSgpPT09RnMoMHgyZmIpKXtsZXQgaWQ9dGhpc1tGcygweDMzYildW0ZzKDB4MzU0KV0oKVtGcygweDFlYildKChbaXIsaWMsaXVdKT0+IVFbRnMoMHgzNDcpXSh0aGlzW0ZzKDB4MmY1KV1bRnMoMHgyZGUpXShpcixpYyksaXUpKTtpZihpZFsnbGVuZ3RoJ10pe2NvbnN0IGlyPWlkW0ZzKDB4MzBmKV0oKTtyZXR1cm4gb1snc2V0UGl4ZWwnXShpclsweDBdK0RbJ3gxJ10saXJbMHgxXStEWyd5MSddLFFbRnMoMHgyOTkpXShpclsweDJdKSksRnMoMHgyMGMpO31lbHNlIHJldHVybidkb25lJzt9ZWxzZSB0aGlzWydsb2cnXShGcygweDIwMykpO319fX19LHRoaXNbJ3RpbWVvdXQnXT1udWxsLHRoaXNbRjAoMHgyMzApXT1mdW5jdGlvbigpe3ZhciBGUz1GMDt0aGlzWyd0aW1lb3V0J10hPT1udWxsJiYoY2xlYXJUaW1lb3V0KHRoaXNbJ3RpbWVvdXQnXSksdGhpc1tGUygweDI2ZCldPW51bGwpO30sdGhpc1tGMCgweDM4ZCldPWZ1bmN0aW9uKCl7dmFyIEZCPUYwO3RoaXNbRkIoMHgyMzApXSgpLHRoaXNbRkIoMHgyY2EpXShGQigweDMwZCkpLEpbJ3NldEJvdFN0YXR1cyddKEZCKDB4MjQ0KSk7fSx0aGlzWydyZXN0YXJ0J109ZnVuY3Rpb24oaTg9dGhpc1tGMCgweDM3MildKCkpe3ZhciBGTT1GMDt0aGlzW0ZNKDB4MjMwKV0oKSx0aGlzWyd0aW1lb3V0J109c2V0VGltZW91dCgoKT0+dGhpc1snY3ljbGUnXSgpLGk4KSx0aGlzW0ZNKDB4MmNhKV0oJ1JceDIwJytpOCk7fTt9KCk7SltzRigweDM3YSldW3NGKDB4MWQzKV0oc0YoMHgzYTIpLGk3PT5pMltzRigweDM5ZSldKGxvY2FsU3RvcmFnZVtzRigweDI0YildPWk3Wyd0YXJnZXQnXVtzRigweDJmNyldKSksaTJbc0YoMHgyYzIpXVtzRigweDIyZildKGk3PT5KWydhZGRNb2RlJ10oaTcpKSxKWydzdHJhdGVneUVsZW1lbnQnXVtzRigweDI5ZildW3NGKDB4MjJmKV0oaTc9Pmk3W3NGKDB4MmY3KV09PT1pMltzRigweDM0MCldJiZpN1tzRigweDJmMCldKCdzZWxlY3RlZCcsJycpKSxKWydjb3ZlckVsZW1lbnQnXVsnYWRkRXZlbnRMaXN0ZW5lciddKCdjaGFuZ2UnLGk3PT5pMltzRigweDMzNyldKGxvY2FsU3RvcmFnZVtzRigweDJmNCldPWk3W3NGKDB4MWQxKV1bc0YoMHgyZjcpXSkpLGkyW3NGKDB4MzJhKV1bc0YoMHgyMmYpXShpNz0+SltzRigweDM2ZCldKGk3KSksSltzRigweDIyNyldW3NGKDB4MjlmKV1bc0YoMHgyMmYpXShpNz0+aTdbJ3ZhbHVlJ109PT1pMltzRigweDM4YSldJiZpN1tzRigweDJmMCldKCdzZWxlY3RlZCcsJycpKSx3aW5kb3dbc0YoMHgxZDMpXShzRigweDFmYyksKHtrZXlDb2RlOmk3fSk9Pnt2YXIgRks9c0Y7c3dpdGNoKGk3KXtjYXNlIDB4NDI6aTJbRksoMHgyNmQpXT09PW51bGw/aTJbRksoMHgyMGUpXSgweDApOmkyW0ZLKDB4MzhkKV0oKTticmVhaztjYXNlIDB4NGU6bGV0IFtpOCxpOV09aTUoKTtKW0ZLKDB4MzEwKV1bRksoMHgyZjcpXT1sb2NhbFN0b3JhZ2VbJ2xhc3RYJ109aTgsSlsneUlucHV0J11bRksoMHgyZjcpXT1sb2NhbFN0b3JhZ2VbJ2xhc3RZJ109aTk7RCYmKERbJ3gxJ109aTgsRFsneTEnXT1pOSk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlW0ZLKDB4MmNhKV0oaTcpO307fSk7ZnVuY3Rpb24gaTMoKXt2YXIgRkM9c0Y7bGV0IGk3LGk4LGk5LGlpLGlzPWk0KCk7cmV0dXJuIGk3PX5+KElbRkMoMHgzMmIpXS1JWydjbGllbnRYJ10vIGlzKzB4MSksaTg9fn4oSVsnd29ybGRZJ10tSVtGQygweDM0NildLyBpcysweDEpLGk5PX5+KElbRkMoMHgzMmIpXSsobltGQygweDI4OSldLUlbRkMoMHgyMWMpXSkvIGlzLTB4MSksaWk9fn4oSVsnd29ybGRZJ10rKG5bRkMoMHgyZTIpXS1JW0ZDKDB4MzQ2KV0pLyBpcy0weDEpLFtpNyxpOCxpOSxpaV07fWZ1bmN0aW9uIGk0KCl7dmFyIEZrPXNGO2xldCBpNz0rd2luZG93Wydsb2NhdGlvbiddW0ZrKDB4MjQyKV1bRmsoMHgyNGQpXShmKVsweDJdO3JldHVybiBpNz4weGE/KGk3LzB4YSkqKjB4MjppNyoqMC4xfHwweDE7fWZ1bmN0aW9uIGk1KCl7dmFyIEZoPXNGO3JldHVybiBOWydpbm5lclRleHQnXVtGaCgweDI0ZCldKGYpW0ZoKDB4MWVhKV0oaTc9PitpNyk7fX1bRnQoMHgzMDApXSh0aGlzLGkoRnQoMHgyNTgpKVsnQnVmZmVyJ10pKTt9LHsnLi9yZXNvdXJjZXMvY2FudmFzJzoweDIsJy4vcmVzb3VyY2VzL2NvbnN0YW50cyc6MHgzLCcuL3Jlc291cmNlcy9zZWxlY3RvcnMuanNvbic6MHg0LCcuL3Jlc291cmNlcy9zdHlsZSc6MHg1LCcuL3V0aWxzL0NodW5rJzoweDYsJy4vdXRpbHMvSW1hZ2VQcm9jZXNzb3InOjB4NywnLi91dGlscy9QYWxldHRlJzoweDgsJy4vdXRpbHMvVGVtcGxhdGUnOjB4OSwnLi91dGlscy9mdW5jdGlvbnMnOjB4YSwnYnVmZmVyJzoweGN9XSwweDI6W2Z1bmN0aW9uKGkscyxGKXt2YXIgRnA9ejtzW0ZwKDB4MzE2KV09eydDSFVOS19TSVpFJzoweDEwMCwnQ09MT1JTJzpbWzB4Y2EsMHhlMywweGZmXSxbMHhmZiwweGZmLDB4ZmZdLFsweGZmLDB4ZmYsMHhmZl0sWzB4ZTQsMHhlNCwweGU0XSxbMHhjNCwweGM0LDB4YzRdLFsweDg4LDB4ODgsMHg4OF0sWzB4NGUsMHg0ZSwweDRlXSxbMHgwLDB4MCwweDBdLFsweGY0LDB4YjMsMHhhZV0sWzB4ZmYsMHhhNywweGQxXSxbMHhmZiwweDU0LDB4YjJdLFsweGZmLDB4NjUsMHg2NV0sWzB4ZTUsMHgwLDB4MF0sWzB4OWEsMHgwLDB4MF0sWzB4ZmUsMHhhNCwweDYwXSxbMHhlNSwweDk1LDB4MF0sWzB4YTAsMHg2YSwweDQyXSxbMHg2MCwweDQwLDB4MjhdLFsweGY1LDB4ZGYsMHhiMF0sWzB4ZmYsMHhmOCwweDg5XSxbMHhlNSwweGQ5LDB4MF0sWzB4OTQsMHhlMCwweDQ0XSxbMHgyLDB4YmUsMHgxXSxbMHg2OCwweDgzLDB4MzhdLFsweDAsMHg2NSwweDEzXSxbMHhjYSwweGUzLDB4ZmZdLFsweDAsMHhkMywweGRkXSxbMHgwLDB4ODMsMHhjN10sWzB4MCwweDAsMHhlYV0sWzB4MTksMHgxOSwweDczXSxbMHhjZiwweDZlLDB4ZTRdLFsweDgyLDB4MCwweDgwXV19O30se31dLDB4MzpbZnVuY3Rpb24oaSxzLEYpe3ZhciBGeT16O3NbRnkoMHgzMTYpXT17J01BWF9SRVFVRVNUU19QRVJfSE9VUic6MHhmYTAsJ1BYTF9DQic6MHgyKjB4M2U4LCdNQVhfVElNRV9TVEFDSyc6MHgzYyoweDNlOH07fSx7fV0sMHg0OltmdW5jdGlvbihpLHMsRil7dmFyIEZYPXo7c1snZXhwb3J0cyddPXsnc2VsZWN0ZWRDb2xvcic6RlgoMHgyMjApLCdjb29yZHMnOkZYKDB4MjY3KSwncGFsZXR0ZWJveCc6JyNwYWxldHRlYm94JywnZ2FtZUNhbnZhcyc6RlgoMHgyYzYpfTt9LHt9XSwweDU6W2Z1bmN0aW9uKGkscyxGKXt2YXIgRlQ9ejtzW0ZUKDB4MzE2KV09J1x4MGFceDIwXHgyMFx4MjBceDIwI3ZvaWQtYm90XHgyMHtceDBhXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBiYWNrZ3JvdW5kLWNvbG9yOlx4MjBibGFjaztceDIwY29sb3I6XHgyMHJlZDtceDIwcGFkZGluZzpceDIwM3B4O1x4MjBwb3NpdGlvbjpceDIwYWJzb2x1dGU7XHgyMHRvcDpceDIwMiU7XHgyMHJpZ2h0Olx4MjAyJTtceDIwd2lkdGg6XHgyMDQwJTtceDIwZm9udC13ZWlnaHQ6XHgyMGJvbGQ7XHgwYVx4MjBceDIwXHgyMFx4MjB9XHgwYVx4MjBceDIwXHgyMFx4MjAjdm9pZC1ib3RceDIwaW5wdXR7XHgwYVx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwYmFja2dyb3VuZC1jb2xvcjpceDIwYmxhY2s7XHgyMGNvbG9yOlx4MjByZWQ7XHgyMGJvcmRlci1jb2xvcjpceDIwZGFya3JlZDtceDIwd2lkdGg6XHgyMDYwcHg7XHgwYVx4MjBceDIwXHgyMFx4MjB9XHgwYVx4MjBceDIwXHgyMFx4MjAjdm9pZC1ib3RceDIwc2VsZWN0e1x4MGFceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMGJhY2tncm91bmQtY29sb3I6XHgyMGJsYWNrO1x4MjBjb2xvcjpceDIwcmVkO1x4MjBib3JkZXItY29sb3I6XHgyMGRhcmtyZWQ7XHgyMGZvbnQ6XHgyMGluaGVyaXQ7XHgwYVx4MjBceDIwXHgyMFx4MjB9XHgwYVx4MjBceDIwXHgyMFx4MjAjdm9pZC1ib3RceDIwYnV0dG9ue1x4MGFceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMGJhY2tncm91bmQtY29sb3I6XHgyMGJsYWNrO1x4MjBjb2xvcjpceDIwcmVkO1x4MjBib3JkZXItY29sb3I6XHgyMGRhcmtyZWQ7XHgyMGZvbnQ6XHgyMGluaGVyaXQ7XHgyMG1hcmdpbjpceDIwNXB4O1x4MGFceDIwXHgyMFx4MjBceDIwfVx4MGFceDIwXHgyMFx4MjBceDIwI3ZvaWQtYm90XHgyMC5oYWxme1x4MGFceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBceDIwXHgyMHdpZHRoOlx4MjBjYWxjKDUwJVx4MjAtXHgyMDVweCk7XHgyMG1hcmdpbi1sZWZ0OjVweDtceDBhXHgyMFx4MjBceDIwXHgyMH1ceDBhJzt9LHt9XSwweDY6W2Z1bmN0aW9uKGkscyxGKXt2YXIgRmo9ejtjb25zdCB7Q0hVTktfU0laRTpnfT1pKEZqKDB4MzE5KSk7c1tGaigweDMxNildPWNsYXNze2NvbnN0cnVjdG9yKFMsQixNKXt2YXIgRmI9Rmo7dGhpc1sneCddPVMsdGhpc1sneSddPUIsdGhpc1snZGF0YSddPU0sdGhpc1tGYigweDIwOCldPURhdGVbRmIoMHgyNmEpXSgpLHRoaXNbJ19jJ109bnVsbDt9W0ZqKDB4MmRlKV0oUyxCKXt2YXIgRlo9Rmo7cmV0dXJuIHRoaXNbJ19jJ109UytCKmc8PDB4MixbdGhpc1tGWigweDFkZCldW3RoaXNbJ19jJ11dLHRoaXNbRlooMHgxZGQpXVt0aGlzWydfYyddKzB4MV0sdGhpc1tGWigweDFkZCldW3RoaXNbJ19jJ10rMHgyXV07fVsnc2V0J10oUyxCLE0pe3ZhciBGRT1GajtyZXR1cm4gdGhpc1snX2MnXT1TK0IqZzw8MHgyLFt0aGlzW0ZFKDB4MWRkKV1bdGhpc1snX2MnXV0sdGhpc1snZGF0YSddW3RoaXNbJ19jJ10rMHgxXSx0aGlzWydkYXRhJ11bdGhpc1snX2MnXSsweDJdXT1bLi4uTV07fX07fSx7Jy4uL3Jlc291cmNlcy9jYW52YXMuanNvbic6MHgyfV0sMHg3OltmdW5jdGlvbihpLHMsRil7dmFyIEZVPXo7Y29uc3QgZz1pKEZVKDB4MjY2KSkse2Zsb29yOlMsc3FydDpCLG1pbjpNfT1NYXRoLEs9Qz0+e3ZhciBGVj1GVTtsZXQgaz1uZXcgVWludDhDbGFtcGVkQXJyYXkoQ1tGVigweDJiMCldKTtmb3IobGV0IGg9MHgwO2ghPT1DW0ZWKDB4MmIwKV07aCsrKWtbaF09Q1toXTtyZXR1cm4gazt9O3NbRlUoMHgzMTYpXT1jbGFzcyBDe2NvbnN0cnVjdG9yKCl7dmFyIEZkPUZVO3RoaXNbRmQoMHgyYTQpXT1udWxsLHRoaXNbRmQoMHgyNjEpXT1udWxsLHRoaXNbJ3RhcmdldHMnXT1udWxsLHRoaXNbJ2N1cnJlbnRNb2RlJ109bnVsbCx0aGlzW0ZkKDB4MjY1KV09eydMSU5FQVInOjB4MCwnUkFORE9NJzoweDEsJ1dPWUtFTic6MHgyfTt9W0ZVKDB4MzU1KV0oayl7dmFyIEZyPUZVLGg9a1snbGVuZ3RoJ10sdCxwO3doaWxlKDB4MCE9PWgpe3A9TWF0aFtGcigweDI3MSldKE1hdGhbRnIoMHgyMTMpXSgpKmgpLGgtPTB4MSx0PWtbaF0sa1toXT1rW3BdLGtbcF09dDt9cmV0dXJuIGs7fVtGVSgweDM4NyldKGspe3ZhciBGYz1GVTt0aGlzW0ZjKDB4MjYxKV09ayx0aGlzW0ZjKDB4MmE0KV09eyd3aWR0aCc6a1tGYygweDI4OSldLCdoZWlnaHQnOmtbJ2hlaWdodCddLCdkYXRhJzpLKGtbJ2RhdGEnXSl9LHRoaXNbJ3NvYmVsRGF0YSddPWcodGhpc1tGYygweDI2MSldW0ZjKDB4MzI4KV1bRmMoMHgyNDUpXSgweDAsMHgwLHRoaXNbRmMoMHgyYTQpXVtGYygweDI4OSldLHRoaXNbRmMoMHgyYTQpXVtGYygweDJlMildKSlbRmMoMHgyNmUpXSgpW0ZjKDB4MWRkKV0sdGhpc1tGYygweDIzOSldPW51bGw7fVtGVSgweDI2OSldKGssaCl7dmFyIEZ1PUZVO2NvbnN0IHQ9W107bGV0IHAsWCxULGosWixFO2ZvcihsZXQgVT0weDA7VSE9PXRoaXNbRnUoMHgyYTQpXVtGdSgweDJlMildO1UrKyl7WD10aGlzW0Z1KDB4MmE0KV1bRnUoMHgyODkpXSpVO2ZvcihsZXQgVj0weDA7ViE9PXRoaXNbJ3RlbXBsYXRlJ11bRnUoMHgyODkpXTtWKyspe3A9WCtWPDwweDIsVD10aGlzW0Z1KDB4MmFiKV1bcF0saj10aGlzW0Z1KDB4MmFiKV1bcHwweDFdLFo9dGhpc1tGdSgweDJhYildW3B8MHgyXSxFPXRoaXNbRnUoMHgyYTQpXVtGdSgweDFkZCldW3B8MHgzXTtpZihFIT09MHhmZiljb250aW51ZTtqPj1rJiZqPD1oJiZ0W0Z1KDB4MzJjKV0oeyd4JzpWLCd5JzpVfSk7fX1yZXR1cm4gdDt9WydfY3JlYXRlVGFyZ2V0cyddKGspe3ZhciBGQT1GVTtjb25zdCBoPVModGhpc1tGQSgweDJhNCldW0ZBKDB4Mjg5KV0vMHgyKSx0PVModGhpc1tGQSgweDJhNCldW0ZBKDB4MmUyKV0vMHgyKSxwPTB4MTQ7bGV0IFgsVDtjb25zdCBqPVU9PihVWyd4J10taCkqKjB4MisoVVsneSddLXQpKioweDIsYj1VPT57dmFyIEZPPUZBO2xldCBWPVtdLGQ9W107Zm9yKGxldCByPTB4MDtyIT09VVtGTygweDJiMCldO3IrKyl7KFVbcl1bJ3gnXStVW3JdWyd5J10pJXA9PT0weDB8fE1hdGhbRk8oMHgyM2IpXShVW3JdWyd4J10tVVtyXVsneSddKSVwPT09MHgwP2RbRk8oMHgzMmMpXShVW3JdKTpWW0ZPKDB4MzJjKV0oVVtyXSk7fXJldHVybnsnZ3JpZCc6ZCwnb3RoZXInOlZ9O30sWj1VPT57dmFyIEZZPUZBO1U9Wy4uLlVdO2xldCBWPVtdO2NvbnN0IGQ9KCk9Pnt2YXIgRlE9ejtsZXQgcj0weDAsYz1qKFVbMHgwXSksdSxBO2ZvcihsZXQgTz0weDA7TyE9PVVbRlEoMHgyYjApXTtPKyspe3U9aihVW09dKTtpZih1PGMpe2M9dSxyPU87aWYodT09PTB4MClicmVhazt9fXJldHVybiBVW0ZRKDB4Mzc4KV0ociwweDEpWzB4MF07fTt3aGlsZShVW0ZZKDB4MmIwKV0pVltGWSgweDMyYyldKGQoKSk7cmV0dXJuIFY7fTt0aGlzWydsYXllcnMnXT1bXTtmb3IobGV0IFU9MHgwO1UhPT0weDEwMDtVKyspe2xldCB7Z3JpZDpWLG90aGVyOmR9PWIodGhpc1tGQSgweDI2OSldKFUsVSkpO1Y9WihWKSxkPVooZCksdGhpc1snbGF5ZXJzJ11bVV09W10sZFsnZm9yRWFjaCddKHI9PnRoaXNbRkEoMHgxZGMpXVtVXVtGQSgweDMyYyldKHIpKSxWW0ZBKDB4MjJmKV0ocj0+dGhpc1tGQSgweDFkYyldW1VdW0ZBKDB4MzJjKV0ocikpO310aGlzW0ZBKDB4MjM5KV09W10sdGhpc1snbGF5ZXJzJ11bRkEoMHgyMmYpXShyPT5yW0ZBKDB4MjJmKV0oYz0+dGhpc1tGQSgweDIzOSldWydwdXNoJ10oYykpKTtsZXQgRTt0aGlzW0ZBKDB4MjM5KV09dGhpc1tGQSgweDIzOSldWydtYXAnXSgoe3g6cix5OmN9KT0+e3ZhciBGUD1GQTtyZXR1cm4gRT1yK2MqdGhpc1tGUCgweDJhNCldW0ZQKDB4Mjg5KV08PDB4MixbcixjLFt0aGlzWyd0ZW1wbGF0ZSddW0ZQKDB4MWRkKV1bRV0sdGhpc1sndGVtcGxhdGUnXVtGUCgweDFkZCldW0V8MHgxXSx0aGlzW0ZQKDB4MmE0KV1bJ2RhdGEnXVtFfDB4Ml1dXTt9KTt9W0ZVKDB4MzllKV0oayl7dGhpc1snY3VycmVudE1vZGUnXT1rO31bRlUoMHgzNTQpXSgpe3ZhciBGdz1GVTtpZighdGhpc1tGdygweDIzOSldKXRoaXNbRncoMHgzODApXSgpO3JldHVybiB0aGlzWyd0YXJnZXRzJ107fX07fSx7J3NvYmVsJzoweGV9XSwweDg6W2Z1bmN0aW9uKGkscyxGKXt2YXIgRlc9ejtzWydleHBvcnRzJ109Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgRkc9ejt0aGlzW0ZHKDB4MzVhKV09bnVsbCx0aGlzW0ZHKDB4M2IwKV09bnVsbDt9W0ZXKDB4MjNmKV0oZyl7dmFyIEZsPUZXO3RoaXNbJ2NvbG9ycyddPWdbRmwoMHgxZWEpXShTPT5bLi4uU10pO31bJ3NhbWUnXShnLFMsQj0weGYpe3ZhciBGZT1GVztyZXR1cm4gTWF0aFtGZSgweDIzYildKGdbMHgwXS1TWzB4MF0pPEImJk1hdGhbRmUoMHgyM2IpXShnWzB4MV0tU1sweDFdKTxCJiZNYXRoWydhYnMnXShnWzB4Ml0tU1sweDJdKTxCO31bRlcoMHgyNTMpXShnKXt2YXIgRm09Rlc7cmV0dXJuIHRoaXNbRm0oMHgyOTkpXShnKSE9PW51bGw7fVsnY29udmVydCddKGcpe3ZhciBGbz1GVztsZXQgUyxCPUluZmluaXR5LE0sSztmb3IobGV0IEM9MHgyO0MhPT10aGlzW0ZvKDB4M2IwKV1bRm8oMHgyYjApXTtDKyspe0s9dGhpc1tGbygweDNiMCldW0NdO2lmKHRoaXNbRm8oMHgzNDcpXShLLGcpKXJldHVybiBLOztNPU1hdGhbRm8oMHgyM2IpXShLWzB4MF0tZ1sweDBdKStNYXRoW0ZvKDB4MjNiKV0oS1sweDFdLWdbMHgxXSkrTWF0aFtGbygweDIzYildKEtbMHgyXS1nWzB4Ml0pO008QiYmKEI9TSxTPUMpOzt9O3JldHVyblsuLi50aGlzW0ZvKDB4M2IwKV1bU11dO31bRlcoMHgyYjUpXShnKXt2YXIgRkw9Rlc7cmV0dXJuIHRoaXNbRkwoMHgzYjApXVtnXTt9WydSR0JUb0lkJ10oZyl7dmFyIEZKPUZXO2ZvcihsZXQgUz10aGlzW0ZKKDB4M2IwKV1bRkooMHgyYjApXS0weDE7UyE9PS0weDE7Uy0tKWlmKHRoaXNbRkooMHgzNDcpXSh0aGlzW0ZKKDB4M2IwKV1bU10sZykpcmV0dXJuIFM7cmV0dXJuIG51bGw7fVtGVygweDIwZildKGcpe3ZhciBGSD1GVzt0aGlzW0ZIKDB4MzVhKV1bdHlwZW9mIGc9PT1GSCgweDI0Yyk/dGhpc1tGSCgweDI5OSldKGcpOmddW0ZIKDB4MzIwKV0oKTt9WydvbkNvbG9yU2VsZWN0J10oKXt9W0ZXKDB4MjJkKV0oZyl7dmFyIEZOPUZXO2c9QXJyYXlbRk4oMHgyYjcpXShnKSx0aGlzW0ZOKDB4MzVhKV09e30sdGhpc1tGTigweDNiMCldW0ZOKDB4MjJmKV0oKFMsQik9Pnt2YXIgRm49Rk47bGV0IE09Z1snZmluZCddKEs9PnRoaXNbRm4oMHgzNDcpXShTLEtbJ3N0eWxlJ11bRm4oMHgzOTQpXVtGbigweDI0ZCldKC8tP1xkKy9nKVtGbigweDFlYSldKEM9PitDKSkpO2lmKE09PT12b2lkIDB4MClyZXR1cm4gY29uc29sZVsnZXJyb3InXSgnQ2FuXHgyN3RceDIwZmluZFx4MjBlbGVtZW50XHgyMGZvclx4MjBjb2xvclx4MjBbJytTKyddJyk7dGhpc1snZWxlbXMnXVtCXT1NLHRoaXNbRm4oMHgzNWEpXVtCXVtGbigweDFkMyldKEZuKDB4MzIwKSwoKT0+dGhpc1tGbigweDJiNildKHsnaWQnOkIsJ3JnYic6U30pKTt9KTt9fTt9LHt9XSwweDk6W2Z1bmN0aW9uKGkscyxGKXt2YXIgRkk9ejtjb25zdCB7bG9hZEltYWdlOmd9PWkoRkkoMHgyMTkpKTtjbGFzcyBTe2NvbnN0cnVjdG9yKHt4OkIseTpNLHdpZHRoOkssaGVpZ2h0OkMsbmFtZTprLHNyYzpofSl7dmFyIEZmPUZJO3RoaXNbJ3gxJ109Qix0aGlzWyd5MSddPU0sdGhpc1tGZigweDI4OSldPUssdGhpc1tGZigweDJlMildPUMsdGhpc1tGZigweDFmNSldKCksdGhpc1snbmFtZSddPWssdGhpc1snc3JjJ109aCx0aGlzW0ZmKDB4MjkxKV09U1tGZigweDM5YildLHRoaXNbRmYoMHgzMWEpXT1udWxsLHRoaXNbRmYoMHgyNGYpXT1udWxsO31bRkkoMHgzOTApXShCLE0sSyxDKXtyZXR1cm4gdGhpc1sneDEnXTxLJiZ0aGlzWyd4MiddPkImJnRoaXNbJ3kxJ108QyYmdGhpc1sneTInXT5NO31bRkkoMHgxZjUpXSgpe3ZhciBGYT1GSTt0aGlzWyd4MiddPXRoaXNbJ3gxJ10rdGhpc1tGYSgweDI4OSldLHRoaXNbJ3kyJ109dGhpc1sneTEnXSt0aGlzWydoZWlnaHQnXTt9W0ZJKDB4MmFjKV0oKXt2YXIgRng9Rkk7cmV0dXJuIHRoaXNbRngoMHgyOTEpXT1TW0Z4KDB4MjAwKV0sbmV3IFByb21pc2UoKEIsTSk9Pnt2YXIgRlI9Rng7aWYodGhpc1tGUigweDIyYyldPT09bnVsbClyZXR1cm4gY29uc29sZVtGUigweDNhMSldKEZSKDB4MWNmKSksTSgpOztnKHRoaXNbRlIoMHgyMmMpXSlbRlIoMHgyNzYpXShLPT57dmFyIEZEPUZSO3RoaXNbRkQoMHgzMWEpXT1LLHRoaXNbRkQoMHgyNGYpXT1kb2N1bWVudFtGRCgweDM5NSldKEZEKDB4MjRmKSksdGhpc1snd2lkdGgnXT10aGlzW0ZEKDB4MjRmKV1bRkQoMHgyODkpXT10aGlzW0ZEKDB4MzFhKV1bJ3dpZHRoJ10sdGhpc1tGRCgweDJlMildPXRoaXNbJ2NhbnZhcyddW0ZEKDB4MmUyKV09dGhpc1tGRCgweDMxYSldWydoZWlnaHQnXSx0aGlzW0ZEKDB4MWY1KV0oKSx0aGlzW0ZEKDB4MzI4KV09dGhpc1tGRCgweDI0ZildWydnZXRDb250ZXh0J10oJzJkJyksdGhpc1snY3R4J11bRkQoMHgyYzQpXSh0aGlzW0ZEKDB4MzFhKV0sMHgwLDB4MCksdGhpc1tGRCgweDM4NildPXRoaXNbRkQoMHgzMjgpXVtGRCgweDI0NSldKDB4MCwweDAsdGhpc1snd2lkdGgnXSx0aGlzWydoZWlnaHQnXSksdGhpc1tGRCgweDFkZCldPXRoaXNbRkQoMHgzODYpXVtGRCgweDFkZCldLHRoaXNbJ3N0YXR1cyddPVNbJ0xPQURFRCddLEIodGhpcyk7fSlbRlIoMHgyNDcpXShLPT5NKEspKTt9KTt9W0ZJKDB4MzFmKV0oQil7dmFyIEZxPUZJO2xldCBNO2ZvcihNPTB4MDtNIT09dGhpc1tGcSgweDFkZCldW0ZxKDB4MmIwKV07TSs9MHg0KXtpZih0aGlzW0ZxKDB4MWRkKV1bTSsweDNdPT09MHgwKWNvbnRpbnVlO1t0aGlzWydkYXRhJ11bTV0sdGhpc1tGcSgweDFkZCldW00rMHgxXSx0aGlzW0ZxKDB4MWRkKV1bTSsweDJdXT1CWydjb252ZXJ0J10oW3RoaXNbRnEoMHgxZGQpXVtNXSx0aGlzW0ZxKDB4MWRkKV1bTSsweDFdLHRoaXNbJ2RhdGEnXVtNKzB4Ml1dKTt9O3RoaXNbRnEoMHgzMjgpXVtGcSgweDMxOCldKHRoaXNbRnEoMHgzODYpXSwweDAsMHgwKTt9fTtTWydVTkxPQURFRCddPTB4MCxTWydMT0FESU5HJ109MHgxLFNbRkkoMHgyNWUpXT0weDIsc1tGSSgweDMxNildPVM7fSx7Jy4vZnVuY3Rpb25zJzoweGF9XSwweGE6W2Z1bmN0aW9uKGkscyxGKXt2YXIgZ2s9ejtmdW5jdGlvbiBnKE8sUSxZKXtyZXR1cm4gUT5PJiZRPFk7fTtmdW5jdGlvbiBTKE8sUSl7dmFyIGcwPXo7T1tnMCgweDNhYSldPU9bZzAoMHgxZTUpXT1PWydtc0ltYWdlU21vb3RoaW5nRW5hYmxlZCddPU9bZzAoMHgyN2IpXT1RO307ZnVuY3Rpb24gQihPLFEpe3ZhciBnMT16O09iamVjdFtnMSgweDM5MildKE8pW2cxKDB4MjJmKV0oWT0+UShPW1ldLFkpKTt9O2Z1bmN0aW9uIE0oTyl7dmFyIGcyPXo7ZG9jdW1lbnRbZzIoMHgyOWEpXVtnMigweDMwNyldKEMoeyd0eXBlJzpnMigweDMyZSksJ2h0bWwnOk99KSk7fTtmdW5jdGlvbiBLKE8sUSl7dmFyIGczPXo7aWYoISgnTm90aWZpY2F0aW9uJ2luIHdpbmRvdykpcmV0dXJuO2NvbnN0IFk9KCk9Pm5ldyBOb3RpZmljYXRpb24oTyxRKTtpZihOb3RpZmljYXRpb25bZzMoMHgyYTApXT09PWczKDB4MjI4KSlZKCk7ZWxzZSBOb3RpZmljYXRpb25bZzMoMHgyYTApXSE9PWczKDB4M2FmKSYmTm90aWZpY2F0aW9uWydyZXF1ZXN0UGVybWlzc2lvbiddKFA9Pnt2YXIgZzQ9ZzM7aWYoUD09PWc0KDB4MjI4KSlZKCk7fSk7O307ZnVuY3Rpb24gQyhPLFE9W10pe3ZhciBnNT16O2xldCBZPU9bZzUoMHgyNWMpXT09PWc1KDB4MzI2KT9kb2N1bWVudFsnY3JlYXRlVGV4dE5vZGUnXShPW2c1KDB4MzI2KV18fCcnKTpkb2N1bWVudFtnNSgweDM5NSldKE9bZzUoMHgyNWMpXSk7T1snaWQnXSYmWVtnNSgweDJmMCldKCdpZCcsT1snaWQnXSk7T1tnNSgweDMwYyldJiZZWydzZXRBdHRyaWJ1dGUnXShnNSgweDMwYyksT1tnNSgweDMwYyldKTtPW2c1KDB4MzJlKV0mJllbZzUoMHgyZjApXSgnc3R5bGUnLE9bZzUoMHgzMmUpXSk7aWYoT1tnNSgweDFkNSldKVlbZzUoMHgyNzIpXT1PW2c1KDB4MWQ1KV07ZWxzZSBPW2c1KDB4MzI2KV0mJihZW2c1KDB4MmJjKV09T1tnNSgweDMyNildKTtPW2c1KDB4MzczKV0mJk9iamVjdFtnNSgweDI4NildKE9bZzUoMHgzNzMpXSlbZzUoMHgyMmYpXSgoW1Asd10pPT57dmFyIGc2PWc1O1BbZzYoMHgyMjQpXSgnb24nKT9ZW2c2KDB4MWQzKV0oUFtnNigweDFmOSldKDB4Miksdyk6WVtnNigweDFkMyldKFAsdyk7fSk7T1tnNSgweDM1YyldJiZPYmplY3RbZzUoMHgyODYpXShPW2c1KDB4MzVjKV0pW2c1KDB4MjJmKV0oKFtQLHddKT0+WVtnNSgweDJmMCldKFAsdykpO09bJ3NoYWRvdyddPT09ISFbXSYmWVsnYXR0YWNoU2hhZG93J10oeydtb2RlJzonb3Blbid9KTtpZihRW2c1KDB4MmIwKV0hPT0weDApe2NvbnN0IFA9T1snc2hhZG93J10/WVtnNSgweDM4MyldOlk7UVtnNSgweDIyZildKHc9PlBbZzUoMHgzMDcpXSh3KSk7fXJldHVybiBZO31mdW5jdGlvbiBrKE8pe3ZhciBnNz16O3JldHVybiBPPydPbic6ZzcoMHgyNTEpO307ZnVuY3Rpb24gaChPLFE9dm9pZCAweDApe3ZhciBnOD16O2xldCBZPWRvY3VtZW50WydjcmVhdGVFbGVtZW50J10oJ2EnKTtZWydocmVmJ109T1tnOCgweDM4YyldKGc4KDB4MjE1KSksWVtnOCgweDM1NildPVEsWVtnOCgweDMyMCldKCk7fTtmdW5jdGlvbiB0KE8pe3ZhciBnOT16O3JldHVybiBkb2N1bWVudFtnOSgweDM0NSldKE8pO307ZnVuY3Rpb24gcChPKXtyZXR1cm4gbmV3IFByb21pc2UoKFEsWSk9Pnt2YXIgZ2k9ejtsZXQgUD1uZXcgSW1hZ2UoKTtQWydjcm9zc09yaWdpbiddPScnLFBbZ2koMHgzMWMpXT0oKT0+UShQKSxQW2dpKDB4MWU5KV09WSxQW2dpKDB4MjJjKV09Tzt9KTt9O2Z1bmN0aW9uIFgoTyl7dmFyIGdzPXo7cmV0dXJuIEMoeyd0eXBlJzpncygweDM3ZSl9LFtDKHsndHlwZSc6Z3MoMHgzN2UpLCdjbGFzcyc6Z3MoMHgzNGMpLCdodG1sJzonPGltZ1x4MjBzdHlsZT1ceDIyd2lkdGg6aW5oZXJpdDtceDIwaGVpZ2h0OmluaGVyaXQ7XHgyMlx4MjBzcmM9XHgyMicrTytncygweDMxMil9KV0pO307ZnVuY3Rpb24gVCgpe3ZhciBnRj16O2xldCBPPSFbXTt0cnl7Tz13aW5kb3chPXdpbmRvd1tnRigweDIzOCldfHxkb2N1bWVudCE9dG9wW2dGKDB4MzQyKV18fHNlbGZbZ0YoMHgzYWUpXSE9dG9wWydsb2NhdGlvbiddO31jYXRjaChRKXtPPSEhW107fTtyZXR1cm4gTzt9O2Z1bmN0aW9uIGooTyl7dmFyIGdnPXo7cmV0dXJuIHdpbmRvd1tnZygweDNhNildPXsnaW1wb3J0cyc6eydpbXBvcnRlZF9mdW5jJzpRPT5jb25zb2xlW2dnKDB4MmNhKV0oUSl9fSxmZXRjaChPKVsndGhlbiddKFE9PlFbZ2coMHgyMmEpXSgpKVtnZygweDI3NildKFE9PldlYkFzc2VtYmx5W2dnKDB4MmU4KV0oUSx3aW5kb3dbZ2coMHgzYTYpXSkpO307ZnVuY3Rpb24gYihPLFEsWSl7dmFyIGd2PXo7bGV0IFA9ZG9jdW1lbnRbZ3YoMHgzOTUpXShndigweDI0ZikpLHc9UFtndigweDJiZSldKCcyZCcpO1BbZ3YoMHgyODkpXT1RLFBbZ3YoMHgyZTIpXT1ZO2xldCBHPXdbZ3YoMHgyNDUpXSgweDAsMHgwLFEsWSk7Zm9yKGxldCBXPTB4MDtXIT09T1tndigweDJiMCldO1crKylHW2d2KDB4MWRkKV1bV109T1tXXTtyZXR1cm4gd1tndigweDMxOCldKEcsMHgwLDB4MCksUDt9O2Z1bmN0aW9uIFooTyxRKXt2YXIgZ3o9ejtyZXR1cm4gTWF0aFtneigweDM5OCldKE8tMC41K01hdGhbZ3ooMHgyMTMpXSgpKihRLU8rMHgxKSk7fWZ1bmN0aW9uIEUoKXt2YXIgZ1M9ejtyZXR1cm4gdShnUygweDM1ZikpO31hc3luYyBmdW5jdGlvbiBVKE8pe3ZhciBnQj16O2NvbnN0IFE9bmV3IEZvcm1EYXRhKCk7UVtnQigweDM1MSldKCdtb2RsaXN0JywhIVtdKTtjb25zdCBZPWF3YWl0IGZldGNoKGMrZ0IoMHgyMzYpLHsnY3JlZGVudGlhbHMnOidpbmNsdWRlJywnbWV0aG9kJzpnQigweDFmYiksJ2JvZHknOlF9KTtZWydvayddP08oYXdhaXQgWVtnQigweDJlZildKCkpOk8oW10pO31hc3luYyBmdW5jdGlvbiBWKE8sUSl7dmFyIGdNPXo7Y29uc3QgWT1uZXcgRm9ybURhdGEoKTtZW2dNKDB4MzUxKV0oZ00oMHgzODkpLE8pO2NvbnN0IFA9YXdhaXQgZmV0Y2goYytnTSgweDIzNikseydjcmVkZW50aWFscyc6Z00oMHgyYWEpLCdtZXRob2QnOmdNKDB4MWZiKSwnYm9keSc6WX0pO1EoUFsnb2snXSxhd2FpdCBQWyd0ZXh0J10oKSk7fWZ1bmN0aW9uIGQoKXt2YXIgZ0s9ejtyZXR1cm4gdShnSygweDMzOCkpO31jb25zdCByPWZ1bmN0aW9uIE8oKXt2YXIgZ0M9ejtpZighd2luZG93Wydzc3YnXXx8IXdpbmRvd1tnQygweDIxNildW2dDKDB4M2E4KV18fHdpbmRvd1tnQygweDNhZSldWydob3N0J109PT1nQygweDMwYSkpcmV0dXJuJyc7Y29uc3QgUT13aW5kb3dbZ0MoMHgzYWUpXVtnQygweDI1MCldW2dDKDB4MmM1KV0oJy4nKTtyZXR1cm4gUVtnQygweDJiMCldPjB4MiYmUVsnc2hpZnQnXSgpLHdpbmRvd1tnQygweDIxNildWydzaGFyZCddKycuJytRW2dDKDB4MjA5KV0oJy4nKTt9KCksYz0ociYmd2luZG93Wydsb2NhdGlvbiddW2drKDB4MzBlKV0rJy8vJytyKStnaygweDI5Nyk7YXN5bmMgZnVuY3Rpb24gdShRLFk9ISFbXSxQPSEhW10pe3ZhciBnaD1naztQJiYoUT0nJytjK1EpO3RyeXtjb25zdCB3PWF3YWl0IEEoUSx7J2NyZWRlbnRpYWxzJzpZP2doKDB4MmFhKTpnaCgweDI1Nil9KTtyZXR1cm4gd1snanNvbiddKCk7fWNhdGNoKEcpe3JldHVybnsnZXJyb3JzJzpbJ0NvdWxkXHgyMG5vdFx4MjBjb25uZWN0XHgyMHRvXHgyMHNlcnZlcixceDIwcGxlYXNlXHgyMHRyeVx4MjBhZ2Fpblx4MjBsYXRlclx4MjA6KCddfTt9fWFzeW5jIGZ1bmN0aW9uIEEoUSxZPXt9KXt2YXIgZ3Q9Z2s7Y29uc3Qge3RpbWVvdXQ6dGltZW91dD0weDc1MzB9PVksUD1uZXcgQWJvcnRDb250cm9sbGVyKCksdz1zZXRUaW1lb3V0KCgpPT5QW2d0KDB4MjI5KV0oKSx0aW1lb3V0KSxHPWF3YWl0IGZldGNoKFEsey4uLlksJ3NpZ25hbCc6UFtndCgweDM0MyldfSk7cmV0dXJuIGNsZWFyVGltZW91dCh3KSxHO31zW2drKDB4MzE2KV09eydiZXR3ZWVuJzpnLCdhbnRpYWxpYXNpbmcnOlMsJ29iakZvckVhY2gnOkIsJ2luamVjdENTUyc6TSwndHJ5U2VuZE5vdGlmaWNhdGlvbic6SywnZmFjdG9yeSc6Qywnc3dpdGNoZXJUZXh0JzprLCdkb3dubG9hZENhbnZhcyc6aCwnJCc6dCwnbG9hZEltYWdlJzpwLCdjcmVhdGVQYW5lbEJ1dHRvbic6WCwnaXNGcmFtZSc6VCwnbG9hZFdBU00nOmosJ2NyZWF0ZUNhbnZhc0Zyb21EYXRhJzpiLCdyYW5kJzpaLCdmZXRjaEFwaU1lJzpFLCdnZXRNb2RMaXN0JzpVLCdzdWJtaXRSZW1Nb2QnOlYsJ2Jhbk1lJzpkfTt9LHt9XSwweGI6W2Z1bmN0aW9uKHMsRixnKXsndXNlIHN0cmljdCc7dmFyIGdwPXo7Z1tncCgweDI0YSldPXQsZ1tncCgweDI3OSldPVgsZ1tncCgweDM2ZildPWI7dmFyIFM9W10sQj1bXSxNPXR5cGVvZiBVaW50OEFycmF5IT09Z3AoMHgyZGIpP1VpbnQ4QXJyYXk6QXJyYXksSz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Zm9yKHZhciBDPTB4MCxrPUtbZ3AoMHgyYjApXTtDPGs7KytDKXtTW0NdPUtbQ10sQltLWydjaGFyQ29kZUF0J10oQyldPUM7fUJbJy0nWydjaGFyQ29kZUF0J10oMHgwKV09MHgzZSxCWydfJ1snY2hhckNvZGVBdCddKDB4MCldPTB4M2Y7ZnVuY3Rpb24gaChaKXt2YXIgZ3k9Z3AsRT1aW2d5KDB4MmIwKV07aWYoRSUweDQ+MHgwKXRocm93IG5ldyBFcnJvcihneSgweDM2YikpO3ZhciBVPVpbZ3koMHgzMDIpXSgnPScpO2lmKFU9PT0tMHgxKVU9RTt2YXIgVj1VPT09RT8weDA6MHg0LVUlMHg0O3JldHVybltVLFZdO31mdW5jdGlvbiB0KFope3ZhciBFPWgoWiksVT1FWzB4MF0sVj1FWzB4MV07cmV0dXJuKFUrVikqMHgzLzB4NC1WO31mdW5jdGlvbiBwKFosRSxVKXtyZXR1cm4oRStVKSoweDMvMHg0LVU7fWZ1bmN0aW9uIFgoWil7dmFyIGdYPWdwLEUsVT1oKFopLFY9VVsweDBdLGQ9VVsweDFdLHI9bmV3IE0ocChaLFYsZCkpLGM9MHgwLHU9ZD4weDA/Vi0weDQ6VixBO2ZvcihBPTB4MDtBPHU7QSs9MHg0KXtFPUJbWltnWCgweDM2OCldKEEpXTw8MHgxMnxCW1pbZ1goMHgzNjgpXShBKzB4MSldPDwweGN8QltaW2dYKDB4MzY4KV0oQSsweDIpXTw8MHg2fEJbWlsnY2hhckNvZGVBdCddKEErMHgzKV0scltjKytdPUU+PjB4MTAmMHhmZixyW2MrK109RT4+MHg4JjB4ZmYscltjKytdPUUmMHhmZjt9cmV0dXJuIGQ9PT0weDImJihFPUJbWltnWCgweDM2OCldKEEpXTw8MHgyfEJbWltnWCgweDM2OCldKEErMHgxKV0+PjB4NCxyW2MrK109RSYweGZmKSxkPT09MHgxJiYoRT1CW1pbZ1goMHgzNjgpXShBKV08PDB4YXxCW1pbJ2NoYXJDb2RlQXQnXShBKzB4MSldPDwweDR8QltaW2dYKDB4MzY4KV0oQSsweDIpXT4+MHgyLHJbYysrXT1FPj4weDgmMHhmZixyW2MrK109RSYweGZmKSxyO31mdW5jdGlvbiBUKFope3JldHVybiBTW1o+PjB4MTImMHgzZl0rU1taPj4weGMmMHgzZl0rU1taPj4weDYmMHgzZl0rU1taJjB4M2ZdO31mdW5jdGlvbiBqKFosRSxVKXt2YXIgZ1Q9Z3AsVixkPVtdO2Zvcih2YXIgcj1FO3I8VTtyKz0weDMpe1Y9KFpbcl08PDB4MTAmMHhmZjAwMDApKyhaW3IrMHgxXTw8MHg4JjB4ZmYwMCkrKFpbcisweDJdJjB4ZmYpLGRbZ1QoMHgzMmMpXShUKFYpKTt9cmV0dXJuIGRbZ1QoMHgyMDkpXSgnJyk7fWZ1bmN0aW9uIGIoWil7dmFyIGdqPWdwLEUsVT1aW2dqKDB4MmIwKV0sVj1VJTB4MyxkPVtdLHI9MHgzZmZmO2Zvcih2YXIgYz0weDAsdT1VLVY7Yzx1O2MrPXIpe2RbJ3B1c2gnXShqKFosYyxjK3I+dT91OmMrcikpO31pZihWPT09MHgxKUU9WltVLTB4MV0sZFtnaigweDMyYyldKFNbRT4+MHgyXStTW0U8PDB4NCYweDNmXSsnPT0nKTtlbHNlIFY9PT0weDImJihFPShaW1UtMHgyXTw8MHg4KStaW1UtMHgxXSxkW2dqKDB4MzJjKV0oU1tFPj4weGFdK1NbRT4+MHg0JjB4M2ZdK1NbRTw8MHgyJjB4M2ZdKyc9JykpO3JldHVybiBkWydqb2luJ10oJycpO319LHt9XSwweGM6W2Z1bmN0aW9uKGkscyxGKXt2YXIgdlc9ejsoZnVuY3Rpb24oZyl7LyohCiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogKgogKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwondXNlIHN0cmljdCc7dmFyIGdiPXo7dmFyIFM9aShnYigweDJlYSkpLEI9aSgnaWVlZTc1NCcpO0ZbZ2IoMHgyODUpXT1nLEZbJ1Nsb3dCdWZmZXInXT1FLEZbZ2IoMHgyZTkpXT0weDMyO3ZhciBNPTB4N2ZmZmZmZmY7RltnYigweDI4MyldPU0sZ1snVFlQRURfQVJSQVlfU1VQUE9SVCddPUsoKTshZ1snVFlQRURfQVJSQVlfU1VQUE9SVCddJiZ0eXBlb2YgY29uc29sZSE9PSd1bmRlZmluZWQnJiZ0eXBlb2YgY29uc29sZVsnZXJyb3InXT09PWdiKDB4MzA1KSYmY29uc29sZVtnYigweDNhMSldKGdiKDB4MmE2KStnYigweDI2MCkpO2Z1bmN0aW9uIEsoKXt2YXIgZ1o9Z2I7dHJ5e3ZhciBpNT1uZXcgVWludDhBcnJheSgweDEpO3JldHVybiBpNVtnWigweDM0YSldPXsnX19wcm90b19fJzpVaW50OEFycmF5W2daKDB4MWYzKV0sJ2Zvbyc6ZnVuY3Rpb24oKXtyZXR1cm4gMHgyYTt9fSxpNVtnWigweDJlNyldKCk9PT0weDJhO31jYXRjaChpNil7cmV0dXJuIVtdO319T2JqZWN0W2diKDB4MzZjKV0oZ1tnYigweDFmMyldLCdwYXJlbnQnLHsnZW51bWVyYWJsZSc6ISFbXSwnZ2V0JzpmdW5jdGlvbigpe3ZhciBnRT1nYjtpZighZ1snaXNCdWZmZXInXSh0aGlzKSlyZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzW2dFKDB4MjU4KV07fX0pLE9iamVjdFtnYigweDM2YyldKGdbZ2IoMHgxZjMpXSwnb2Zmc2V0Jyx7J2VudW1lcmFibGUnOiEhW10sJ2dldCc6ZnVuY3Rpb24oKXt2YXIgZ1U9Z2I7aWYoIWdbZ1UoMHgxZjgpXSh0aGlzKSlyZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzW2dVKDB4MjBiKV07fX0pO2Z1bmN0aW9uIEMoaTUpe3ZhciBnVj1nYjtpZihpNT5NKXRocm93IG5ldyBSYW5nZUVycm9yKGdWKDB4MWUwKStpNStnVigweDIyMikpO3ZhciBpNj1uZXcgVWludDhBcnJheShpNSk7cmV0dXJuIGk2W2dWKDB4MzRhKV09Z1tnVigweDFmMyldLGk2O31mdW5jdGlvbiBnKGk1LGk2LGk3KXt2YXIgZ2Q9Z2I7aWYodHlwZW9mIGk1PT09Z2QoMHgyNzUpKXtpZih0eXBlb2YgaTY9PT1nZCgweDJhMikpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlXHgyMFx4MjJzdHJpbmdceDIyXHgyMGFyZ3VtZW50XHgyMG11c3RceDIwYmVceDIwb2ZceDIwdHlwZVx4MjBzdHJpbmcuXHgyMFJlY2VpdmVkXHgyMHR5cGVceDIwbnVtYmVyJyk7cmV0dXJuIHAoaTUpO31yZXR1cm4gayhpNSxpNixpNyk7fXR5cGVvZiBTeW1ib2whPT1nYigweDJkYikmJlN5bWJvbFtnYigweDJhMSldIT1udWxsJiZnW1N5bWJvbFtnYigweDJhMSldXT09PWcmJk9iamVjdFtnYigweDM2YyldKGcsU3ltYm9sW2diKDB4MmExKV0seyd2YWx1ZSc6bnVsbCwnY29uZmlndXJhYmxlJzohIVtdLCdlbnVtZXJhYmxlJzohW10sJ3dyaXRhYmxlJzohW119KTtnW2diKDB4MjAxKV09MHgyMDAwO2Z1bmN0aW9uIGsoaTUsaTYsaTcpe3ZhciBncj1nYjtpZih0eXBlb2YgaTU9PT1ncigweDJhMikpcmV0dXJuIFgoaTUsaTYpO2lmKEFycmF5QnVmZmVyW2dyKDB4MmNiKV0oaTUpKXJldHVybiBUKGk1KTtpZihpNT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoJ1RoZVx4MjBmaXJzdFx4MjBhcmd1bWVudFx4MjBtdXN0XHgyMGJlXHgyMG9uZVx4MjBvZlx4MjB0eXBlXHgyMHN0cmluZyxceDIwQnVmZmVyLFx4MjBBcnJheUJ1ZmZlcixceDIwQXJyYXksXHgyMCcrZ3IoMHgyZjMpK3R5cGVvZiBpNSk7aWYoaTMoaTUsQXJyYXlCdWZmZXIpfHxpNSYmaTMoaTVbZ3IoMHgyNTgpXSxBcnJheUJ1ZmZlcikpcmV0dXJuIGooaTUsaTYsaTcpO2lmKHR5cGVvZiBpNT09PWdyKDB4Mjc1KSl0aHJvdyBuZXcgVHlwZUVycm9yKGdyKDB4MmE5KSk7dmFyIGk4PWk1Wyd2YWx1ZU9mJ10mJmk1W2dyKDB4MjVhKV0oKTtpZihpOCE9bnVsbCYmaTghPT1pNSlyZXR1cm4gZ1tncigweDJiNyldKGk4LGk2LGk3KTt2YXIgaTk9YihpNSk7aWYoaTkpcmV0dXJuIGk5O2lmKHR5cGVvZiBTeW1ib2whPT1ncigweDJkYikmJlN5bWJvbFtncigweDIxMildIT1udWxsJiZ0eXBlb2YgaTVbU3ltYm9sW2dyKDB4MjEyKV1dPT09Z3IoMHgzMDUpKXJldHVybiBnW2dyKDB4MmI3KV0oaTVbU3ltYm9sW2dyKDB4MjEyKV1dKGdyKDB4MmEyKSksaTYsaTcpO3Rocm93IG5ldyBUeXBlRXJyb3IoZ3IoMHgyZGYpKydvclx4MjBBcnJheS1saWtlXHgyME9iamVjdC5ceDIwUmVjZWl2ZWRceDIwdHlwZVx4MjAnK3R5cGVvZiBpNSk7fWdbJ2Zyb20nXT1mdW5jdGlvbihpNSxpNixpNyl7cmV0dXJuIGsoaTUsaTYsaTcpO30sZ1tnYigweDFmMyldW2diKDB4MzRhKV09VWludDhBcnJheVsncHJvdG90eXBlJ10sZ1snX19wcm90b19fJ109VWludDhBcnJheTtmdW5jdGlvbiBoKGk1KXt2YXIgZ2M9Z2I7aWYodHlwZW9mIGk1IT09J251bWJlcicpdGhyb3cgbmV3IFR5cGVFcnJvcihnYygweDM4MSkpO2Vsc2V7aWYoaTU8MHgwKXRocm93IG5ldyBSYW5nZUVycm9yKGdjKDB4MWUwKStpNStnYygweDIyMikpO319ZnVuY3Rpb24gdChpNSxpNixpNyl7dmFyIGd1PWdiO2goaTUpO2lmKGk1PD0weDApcmV0dXJuIEMoaTUpO2lmKGk2IT09dW5kZWZpbmVkKXJldHVybiB0eXBlb2YgaTc9PT1ndSgweDJhMik/QyhpNSlbJ2ZpbGwnXShpNixpNyk6QyhpNSlbZ3UoMHgzMzkpXShpNik7cmV0dXJuIEMoaTUpO31nW2diKDB4MmVlKV09ZnVuY3Rpb24oaTUsaTYsaTcpe3JldHVybiB0KGk1LGk2LGk3KTt9O2Z1bmN0aW9uIHAoaTUpe3JldHVybiBoKGk1KSxDKGk1PDB4MD8weDA6WihpNSl8MHgwKTt9Z1snYWxsb2NVbnNhZmUnXT1mdW5jdGlvbihpNSl7cmV0dXJuIHAoaTUpO30sZ1snYWxsb2NVbnNhZmVTbG93J109ZnVuY3Rpb24oaTUpe3JldHVybiBwKGk1KTt9O2Z1bmN0aW9uIFgoaTUsaTYpe3ZhciBnQT1nYjsodHlwZW9mIGk2IT09Z0EoMHgyYTIpfHxpNj09PScnKSYmKGk2PWdBKDB4MmVjKSk7aWYoIWdbJ2lzRW5jb2RpbmcnXShpNikpdGhyb3cgbmV3IFR5cGVFcnJvcihnQSgweDFmZikraTYpO3ZhciBpNz1VKGk1LGk2KXwweDAsaTg9QyhpNyksaTk9aThbZ0EoMHgxZTYpXShpNSxpNik7cmV0dXJuIGk5IT09aTcmJihpOD1pOFtnQSgweDI2ZildKDB4MCxpOSkpLGk4O31mdW5jdGlvbiBUKGk1KXt2YXIgZ089Z2IsaTY9aTVbZ08oMHgyYjApXTwweDA/MHgwOlooaTVbJ2xlbmd0aCddKXwweDAsaTc9QyhpNik7Zm9yKHZhciBpOD0weDA7aTg8aTY7aTgrPTB4MSl7aTdbaThdPWk1W2k4XSYweGZmO31yZXR1cm4gaTc7fWZ1bmN0aW9uIGooaTUsaTYsaTcpe3ZhciBnUT1nYjtpZihpNjwweDB8fGk1W2dRKDB4MjRhKV08aTYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoZ1EoMHgyODcpKTtpZihpNVtnUSgweDI0YSldPGk2KyhpN3x8MHgwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihnUSgweDMyMykpO3ZhciBpODtpZihpNj09PXVuZGVmaW5lZCYmaTc9PT11bmRlZmluZWQpaTg9bmV3IFVpbnQ4QXJyYXkoaTUpO2Vsc2UgaTc9PT11bmRlZmluZWQ/aTg9bmV3IFVpbnQ4QXJyYXkoaTUsaTYpOmk4PW5ldyBVaW50OEFycmF5KGk1LGk2LGk3KTtyZXR1cm4gaThbJ19fcHJvdG9fXyddPWdbJ3Byb3RvdHlwZSddLGk4O31mdW5jdGlvbiBiKGk1KXt2YXIgZ1k9Z2I7aWYoZ1tnWSgweDFmOCldKGk1KSl7dmFyIGk2PVooaTVbZ1koMHgyYjApXSl8MHgwLGk3PUMoaTYpO2lmKGk3WydsZW5ndGgnXT09PTB4MClyZXR1cm4gaTc7cmV0dXJuIGk1W2dZKDB4MjcwKV0oaTcsMHgwLDB4MCxpNiksaTc7fWlmKGk1W2dZKDB4MmIwKV0hPT11bmRlZmluZWQpe2lmKHR5cGVvZiBpNVtnWSgweDJiMCldIT09Z1koMHgyNzUpfHxpNChpNVtnWSgweDJiMCldKSlyZXR1cm4gQygweDApO3JldHVybiBUKGk1KTt9aWYoaTVbZ1koMHgyNWMpXT09PWdZKDB4Mjg1KSYmQXJyYXlbZ1koMHgxZDcpXShpNVtnWSgweDFkZCldKSlyZXR1cm4gVChpNVsnZGF0YSddKTt9ZnVuY3Rpb24gWihpNSl7dmFyIGdQPWdiO2lmKGk1Pj1NKXRocm93IG5ldyBSYW5nZUVycm9yKGdQKDB4MzZlKStnUCgweDM5OSkrTVtnUCgweDFlYyldKDB4MTApK2dQKDB4MjRlKSk7cmV0dXJuIGk1fDB4MDt9ZnVuY3Rpb24gRShpNSl7dmFyIGd3PWdiO3JldHVybitpNSE9aTUmJihpNT0weDApLGdbZ3coMHgyZWUpXSgraTUpO31nW2diKDB4MWY4KV09ZnVuY3Rpb24gaTUoaTYpe3ZhciBnRz1nYjtyZXR1cm4gaTYhPW51bGwmJmk2W2dHKDB4MzlmKV09PT0hIVtdJiZpNiE9PWdbZ0coMHgxZjMpXTt9LGdbJ2NvbXBhcmUnXT1mdW5jdGlvbiBpNihpNyxpOCl7dmFyIGdXPWdiO2lmKGkzKGk3LFVpbnQ4QXJyYXkpKWk3PWdbZ1coMHgyYjcpXShpNyxpN1snb2Zmc2V0J10saTdbZ1coMHgyNGEpXSk7aWYoaTMoaTgsVWludDhBcnJheSkpaTg9Z1snZnJvbSddKGk4LGk4W2dXKDB4Mzc3KV0saThbJ2J5dGVMZW5ndGgnXSk7aWYoIWdbZ1coMHgxZjgpXShpNyl8fCFnWydpc0J1ZmZlciddKGk4KSl0aHJvdyBuZXcgVHlwZUVycm9yKGdXKDB4MWQ2KSk7aWYoaTc9PT1pOClyZXR1cm4gMHgwO3ZhciBpOT1pN1tnVygweDJiMCldLGlpPWk4W2dXKDB4MmIwKV07Zm9yKHZhciBpcz0weDAsaUY9TWF0aFtnVygweDFlMildKGk5LGlpKTtpczxpRjsrK2lzKXtpZihpN1tpc10hPT1pOFtpc10pe2k5PWk3W2lzXSxpaT1pOFtpc107YnJlYWs7fX1pZihpOTxpaSlyZXR1cm4tMHgxO2lmKGlpPGk5KXJldHVybiAweDE7cmV0dXJuIDB4MDt9LGdbZ2IoMHgyOWUpXT1mdW5jdGlvbiBpNyhpOCl7dmFyIGdsPWdiO3N3aXRjaChTdHJpbmcoaTgpW2dsKDB4MjQxKV0oKSl7Y2FzZSBnbCgweDJmZSk6Y2FzZSBnbCgweDJlYyk6Y2FzZSd1dGYtOCc6Y2FzZSBnbCgweDI5Yyk6Y2FzZSBnbCgweDIxZik6Y2FzZSdiaW5hcnknOmNhc2UgZ2woMHgyZTYpOmNhc2UgZ2woMHgzYTQpOmNhc2UgZ2woMHgyMGEpOmNhc2UgZ2woMHgyMzUpOmNhc2UgZ2woMHgyNzcpOnJldHVybiEhW107ZGVmYXVsdDpyZXR1cm4hW107fX0sZ1tnYigweDM5NyldPWZ1bmN0aW9uIGk4KGk5LGlpKXt2YXIgZ2U9Z2I7aWYoIUFycmF5Wydpc0FycmF5J10oaTkpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1x4MjJsaXN0XHgyMlx4MjBhcmd1bWVudFx4MjBtdXN0XHgyMGJlXHgyMGFuXHgyMEFycmF5XHgyMG9mXHgyMEJ1ZmZlcnMnKTtpZihpOVtnZSgweDJiMCldPT09MHgwKXJldHVybiBnW2dlKDB4MmVlKV0oMHgwKTt2YXIgaXM7aWYoaWk9PT11bmRlZmluZWQpe2lpPTB4MDtmb3IoaXM9MHgwO2lzPGk5W2dlKDB4MmIwKV07Kytpcyl7aWkrPWk5W2lzXVtnZSgweDJiMCldO319dmFyIGlGPWdbZ2UoMHgzMTQpXShpaSksaWc9MHgwO2Zvcihpcz0weDA7aXM8aTlbZ2UoMHgyYjApXTsrK2lzKXt2YXIgaXY9aTlbaXNdO2kzKGl2LFVpbnQ4QXJyYXkpJiYoaXY9Z1snZnJvbSddKGl2KSk7aWYoIWdbJ2lzQnVmZmVyJ10oaXYpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1x4MjJsaXN0XHgyMlx4MjBhcmd1bWVudFx4MjBtdXN0XHgyMGJlXHgyMGFuXHgyMEFycmF5XHgyMG9mXHgyMEJ1ZmZlcnMnKTtpdltnZSgweDI3MCldKGlGLGlnKSxpZys9aXZbZ2UoMHgyYjApXTt9cmV0dXJuIGlGO307ZnVuY3Rpb24gVShpOSxpaSl7dmFyIGdtPWdiO2lmKGdbZ20oMHgxZjgpXShpOSkpcmV0dXJuIGk5W2dtKDB4MmIwKV07aWYoQXJyYXlCdWZmZXJbZ20oMHgyY2IpXShpOSl8fGkzKGk5LEFycmF5QnVmZmVyKSlyZXR1cm4gaTlbZ20oMHgyNGEpXTtpZih0eXBlb2YgaTkhPT1nbSgweDJhMikpdGhyb3cgbmV3IFR5cGVFcnJvcihnbSgweDI4ZikrJ1JlY2VpdmVkXHgyMHR5cGVceDIwJyt0eXBlb2YgaTkpO3ZhciBpcz1pOVsnbGVuZ3RoJ10saUY9YXJndW1lbnRzWydsZW5ndGgnXT4weDImJmFyZ3VtZW50c1sweDJdPT09ISFbXTtpZighaUYmJmlzPT09MHgwKXJldHVybiAweDA7dmFyIGlnPSFbXTtmb3IoOzspe3N3aXRjaChpaSl7Y2FzZSdhc2NpaSc6Y2FzZSBnbSgweDIxZik6Y2FzZSdiaW5hcnknOnJldHVybiBpcztjYXNlIGdtKDB4MmVjKTpjYXNlJ3V0Zi04JzpyZXR1cm4gRChpOSlbZ20oMHgyYjApXTtjYXNlIGdtKDB4M2E0KTpjYXNlJ3Vjcy0yJzpjYXNlIGdtKDB4MjM1KTpjYXNlIGdtKDB4Mjc3KTpyZXR1cm4gaXMqMHgyO2Nhc2UgZ20oMHgyZmUpOnJldHVybiBpcz4+PjB4MTtjYXNlIGdtKDB4MmU2KTpyZXR1cm4gaTEoaTkpWydsZW5ndGgnXTtkZWZhdWx0OmlmKGlnKXJldHVybiBpRj8tMHgxOkQoaTkpWydsZW5ndGgnXTtpaT0oJycraWkpW2dtKDB4MjQxKV0oKSxpZz0hIVtdO319fWdbZ2IoMHgyNGEpXT1VO2Z1bmN0aW9uIFYoaTksaWksaXMpe3ZhciBnbz1nYixpRj0hW107KGlpPT09dW5kZWZpbmVkfHxpaTwweDApJiYoaWk9MHgwKTtpZihpaT50aGlzW2dvKDB4MmIwKV0pcmV0dXJuJyc7KGlzPT09dW5kZWZpbmVkfHxpcz50aGlzWydsZW5ndGgnXSkmJihpcz10aGlzW2dvKDB4MmIwKV0pO2lmKGlzPD0weDApcmV0dXJuJyc7aXM+Pj49MHgwLGlpPj4+PTB4MDtpZihpczw9aWkpcmV0dXJuJyc7aWYoIWk5KWk5PWdvKDB4MmVjKTt3aGlsZSghIVtdKXtzd2l0Y2goaTkpe2Nhc2UnaGV4JzpyZXR1cm4gbyh0aGlzLGlpLGlzKTtjYXNlIGdvKDB4MmVjKTpjYXNlIGdvKDB4MjMyKTpyZXR1cm4gRyh0aGlzLGlpLGlzKTtjYXNlIGdvKDB4MjljKTpyZXR1cm4gZSh0aGlzLGlpLGlzKTtjYXNlIGdvKDB4MjFmKTpjYXNlIGdvKDB4MmUxKTpyZXR1cm4gbSh0aGlzLGlpLGlzKTtjYXNlJ2Jhc2U2NCc6cmV0dXJuIHcodGhpcyxpaSxpcyk7Y2FzZSBnbygweDNhNCk6Y2FzZSBnbygweDIwYSk6Y2FzZSBnbygweDIzNSk6Y2FzZSd1dGYtMTZsZSc6cmV0dXJuIEwodGhpcyxpaSxpcyk7ZGVmYXVsdDppZihpRil0aHJvdyBuZXcgVHlwZUVycm9yKGdvKDB4MWZmKStpOSk7aTk9KGk5KycnKVsndG9Mb3dlckNhc2UnXSgpLGlGPSEhW107fX19Z1tnYigweDFmMyldWydfaXNCdWZmZXInXT0hIVtdO2Z1bmN0aW9uIGQoaTksaWksaXMpe3ZhciBpRj1pOVtpaV07aTlbaWldPWk5W2lzXSxpOVtpc109aUY7fWdbZ2IoMHgxZjMpXVtnYigweDIwNyldPWZ1bmN0aW9uIGk5KCl7dmFyIGdMPWdiLGlpPXRoaXNbZ0woMHgyYjApXTtpZihpaSUweDIhPT0weDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlclx4MjBzaXplXHgyMG11c3RceDIwYmVceDIwYVx4MjBtdWx0aXBsZVx4MjBvZlx4MjAxNi1iaXRzJyk7Zm9yKHZhciBpcz0weDA7aXM8aWk7aXMrPTB4Mil7ZCh0aGlzLGlzLGlzKzB4MSk7fXJldHVybiB0aGlzO30sZ1sncHJvdG90eXBlJ11bJ3N3YXAzMiddPWZ1bmN0aW9uIGlpKCl7dmFyIGdKPWdiLGlzPXRoaXNbZ0ooMHgyYjApXTtpZihpcyUweDQhPT0weDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlclx4MjBzaXplXHgyMG11c3RceDIwYmVceDIwYVx4MjBtdWx0aXBsZVx4MjBvZlx4MjAzMi1iaXRzJyk7Zm9yKHZhciBpRj0weDA7aUY8aXM7aUYrPTB4NCl7ZCh0aGlzLGlGLGlGKzB4MyksZCh0aGlzLGlGKzB4MSxpRisweDIpO31yZXR1cm4gdGhpczt9LGdbZ2IoMHgxZjMpXVtnYigweDI5MildPWZ1bmN0aW9uIGlzKCl7dmFyIGdIPWdiLGlGPXRoaXNbZ0goMHgyYjApXTtpZihpRiUweDghPT0weDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoZ0goMHgzMDEpKTtmb3IodmFyIGlnPTB4MDtpZzxpRjtpZys9MHg4KXtkKHRoaXMsaWcsaWcrMHg3KSxkKHRoaXMsaWcrMHgxLGlnKzB4NiksZCh0aGlzLGlnKzB4MixpZysweDUpLGQodGhpcyxpZysweDMsaWcrMHg0KTt9cmV0dXJuIHRoaXM7fSxnW2diKDB4MWYzKV1bZ2IoMHgxZWMpXT1mdW5jdGlvbiBpRigpe3ZhciBnTj1nYixpZz10aGlzW2dOKDB4MmIwKV07aWYoaWc9PT0weDApcmV0dXJuJyc7aWYoYXJndW1lbnRzW2dOKDB4MmIwKV09PT0weDApcmV0dXJuIEcodGhpcywweDAsaWcpO3JldHVybiBWW2dOKDB4MjJiKV0odGhpcyxhcmd1bWVudHMpO30sZ1tnYigweDFmMyldW2diKDB4MmU1KV09Z1tnYigweDFmMyldW2diKDB4MWVjKV0sZ1tnYigweDFmMyldW2diKDB4MmQwKV09ZnVuY3Rpb24gaWcoaXYpe3ZhciBnbj1nYjtpZighZ1tnbigweDFmOCldKGl2KSl0aHJvdyBuZXcgVHlwZUVycm9yKGduKDB4MjBkKSk7aWYodGhpcz09PWl2KXJldHVybiEhW107cmV0dXJuIGdbZ24oMHgzM2QpXSh0aGlzLGl2KT09PTB4MDt9LGdbJ3Byb3RvdHlwZSddW2diKDB4MmQ4KV09ZnVuY3Rpb24gaXYoKXt2YXIgZ0k9Z2IsaXo9JycsaVM9RltnSSgweDJlOSldO2l6PXRoaXNbZ0koMHgxZWMpXShnSSgweDJmZSksMHgwLGlTKVsncmVwbGFjZSddKC8oLnsyfSkvZyxnSSgweDI2MykpWyd0cmltJ10oKTtpZih0aGlzWydsZW5ndGgnXT5pUylpeis9J1x4MjAuLi5ceDIwJztyZXR1cm4gZ0koMHgyMTEpK2l6Kyc+Jzt9LGdbZ2IoMHgxZjMpXVtnYigweDMzZCldPWZ1bmN0aW9uIGl6KGlTLGlCLGlNLGlLLGlDKXt2YXIgZ2Y9Z2I7aTMoaVMsVWludDhBcnJheSkmJihpUz1nW2dmKDB4MmI3KV0oaVMsaVNbZ2YoMHgzNzcpXSxpU1snYnl0ZUxlbmd0aCddKSk7aWYoIWdbZ2YoMHgxZjgpXShpUykpdGhyb3cgbmV3IFR5cGVFcnJvcihnZigweDMwOSkrZ2YoMHgxZTcpK3R5cGVvZiBpUyk7aUI9PT11bmRlZmluZWQmJihpQj0weDApO2lNPT09dW5kZWZpbmVkJiYoaU09aVM/aVNbJ2xlbmd0aCddOjB4MCk7aUs9PT11bmRlZmluZWQmJihpSz0weDApO2lDPT09dW5kZWZpbmVkJiYoaUM9dGhpc1tnZigweDJiMCldKTtpZihpQjwweDB8fGlNPmlTW2dmKDB4MmIwKV18fGlLPDB4MHx8aUM+dGhpc1tnZigweDJiMCldKXRocm93IG5ldyBSYW5nZUVycm9yKCdvdXRceDIwb2ZceDIwcmFuZ2VceDIwaW5kZXgnKTtpZihpSz49aUMmJmlCPj1pTSlyZXR1cm4gMHgwO2lmKGlLPj1pQylyZXR1cm4tMHgxO2lmKGlCPj1pTSlyZXR1cm4gMHgxO2lCPj4+PTB4MCxpTT4+Pj0weDAsaUs+Pj49MHgwLGlDPj4+PTB4MDtpZih0aGlzPT09aVMpcmV0dXJuIDB4MDt2YXIgaWs9aUMtaUssaWg9aU0taUIsaXQ9TWF0aFtnZigweDFlMildKGlrLGloKSxpcD10aGlzW2dmKDB4MjZmKV0oaUssaUMpLGl5PWlTW2dmKDB4MjZmKV0oaUIsaU0pO2Zvcih2YXIgaVg9MHgwO2lYPGl0OysraVgpe2lmKGlwW2lYXSE9PWl5W2lYXSl7aWs9aXBbaVhdLGloPWl5W2lYXTticmVhazt9fWlmKGlrPGloKXJldHVybi0weDE7aWYoaWg8aWspcmV0dXJuIDB4MTtyZXR1cm4gMHgwO307ZnVuY3Rpb24gcihpUyxpQixpTSxpSyxpQyl7dmFyIGdhPWdiO2lmKGlTWydsZW5ndGgnXT09PTB4MClyZXR1cm4tMHgxO2lmKHR5cGVvZiBpTT09PWdhKDB4MmEyKSlpSz1pTSxpTT0weDA7ZWxzZXtpZihpTT4weDdmZmZmZmZmKWlNPTB4N2ZmZmZmZmY7ZWxzZSBpTTwtMHg4MDAwMDAwMCYmKGlNPS0weDgwMDAwMDAwKTt9aU09K2lNO2k0KGlNKSYmKGlNPWlDPzB4MDppU1tnYSgweDJiMCldLTB4MSk7aWYoaU08MHgwKWlNPWlTWydsZW5ndGgnXStpTTtpZihpTT49aVNbJ2xlbmd0aCddKXtpZihpQylyZXR1cm4tMHgxO2Vsc2UgaU09aVNbZ2EoMHgyYjApXS0weDE7fWVsc2V7aWYoaU08MHgwKXtpZihpQylpTT0weDA7ZWxzZSByZXR1cm4tMHgxO319dHlwZW9mIGlCPT09Z2EoMHgyYTIpJiYoaUI9Z1tnYSgweDJiNyldKGlCLGlLKSk7aWYoZ1tnYSgweDFmOCldKGlCKSl7aWYoaUJbJ2xlbmd0aCddPT09MHgwKXJldHVybi0weDE7cmV0dXJuIGMoaVMsaUIsaU0saUssaUMpO31lbHNle2lmKHR5cGVvZiBpQj09PWdhKDB4Mjc1KSl7aUI9aUImMHhmZjtpZih0eXBlb2YgVWludDhBcnJheVtnYSgweDFmMyldWydpbmRleE9mJ109PT1nYSgweDMwNSkpcmV0dXJuIGlDP1VpbnQ4QXJyYXlbJ3Byb3RvdHlwZSddWydpbmRleE9mJ11bZ2EoMHgzMDApXShpUyxpQixpTSk6VWludDhBcnJheVtnYSgweDFmMyldW2dhKDB4MmQ0KV1bZ2EoMHgzMDApXShpUyxpQixpTSk7cmV0dXJuIGMoaVMsW2lCXSxpTSxpSyxpQyk7fX10aHJvdyBuZXcgVHlwZUVycm9yKGdhKDB4MjkwKSk7fWZ1bmN0aW9uIGMoaVMsaUIsaU0saUssaUMpe3ZhciBneD1nYixpaz0weDEsaWg9aVNbZ3goMHgyYjApXSxpdD1pQlsnbGVuZ3RoJ107aWYoaUshPT11bmRlZmluZWQpe2lLPVN0cmluZyhpSylbZ3goMHgyNDEpXSgpO2lmKGlLPT09Z3goMHgzYTQpfHxpSz09PWd4KDB4MjBhKXx8aUs9PT1neCgweDIzNSl8fGlLPT09Z3goMHgyNzcpKXtpZihpU1snbGVuZ3RoJ108MHgyfHxpQltneCgweDJiMCldPDB4MilyZXR1cm4tMHgxO2lrPTB4MixpaC89MHgyLGl0Lz0weDIsaU0vPTB4Mjt9fWZ1bmN0aW9uIGlwKGliLGlaKXt2YXIgZ1I9Z3g7cmV0dXJuIGlrPT09MHgxP2liW2laXTppYltnUigweDMzYSldKGlaKmlrKTt9dmFyIGl5O2lmKGlDKXt2YXIgaVg9LTB4MTtmb3IoaXk9aU07aXk8aWg7aXkrKyl7aWYoaXAoaVMsaXkpPT09aXAoaUIsaVg9PT0tMHgxPzB4MDppeS1pWCkpe2lmKGlYPT09LTB4MSlpWD1peTtpZihpeS1pWCsweDE9PT1pdClyZXR1cm4gaVgqaWs7fWVsc2V7aWYoaVghPT0tMHgxKWl5LT1peS1pWDtpWD0tMHgxO319fWVsc2V7aWYoaU0raXQ+aWgpaU09aWgtaXQ7Zm9yKGl5PWlNO2l5Pj0weDA7aXktLSl7dmFyIGlUPSEhW107Zm9yKHZhciBpaj0weDA7aWo8aXQ7aWorKyl7aWYoaXAoaVMsaXkraWopIT09aXAoaUIsaWopKXtpVD0hW107YnJlYWs7fX1pZihpVClyZXR1cm4gaXk7fX1yZXR1cm4tMHgxO31nW2diKDB4MWYzKV1bZ2IoMHgzYTcpXT1mdW5jdGlvbiBpUyhpQixpTSxpSyl7dmFyIGdEPWdiO3JldHVybiB0aGlzW2dEKDB4MzAyKV0oaUIsaU0saUspIT09LTB4MTt9LGdbZ2IoMHgxZjMpXVtnYigweDMwMildPWZ1bmN0aW9uIGlCKGlNLGlLLGlDKXtyZXR1cm4gcih0aGlzLGlNLGlLLGlDLCEhW10pO30sZ1tnYigweDFmMyldW2diKDB4MmQ0KV09ZnVuY3Rpb24gaU0oaUssaUMsaWspe3JldHVybiByKHRoaXMsaUssaUMsaWssIVtdKTt9O2Z1bmN0aW9uIHUoaUssaUMsaWssaWgpe3ZhciBncT1nYjtpaz1OdW1iZXIoaWspfHwweDA7dmFyIGl0PWlLWydsZW5ndGgnXS1pazshaWg/aWg9aXQ6KGloPU51bWJlcihpaCksaWg+aXQmJihpaD1pdCkpO3ZhciBpcD1pQ1tncSgweDJiMCldO2loPmlwLzB4MiYmKGloPWlwLzB4Mik7Zm9yKHZhciBpeT0weDA7aXk8aWg7KytpeSl7dmFyIGlYPXBhcnNlSW50KGlDWydzdWJzdHInXShpeSoweDIsMHgyKSwweDEwKTtpZihpNChpWCkpcmV0dXJuIGl5O2lLW2lrK2l5XT1pWDt9cmV0dXJuIGl5O31mdW5jdGlvbiBBKGlLLGlDLGlrLGloKXt2YXIgdjA9Z2I7cmV0dXJuIGkyKEQoaUMsaUtbdjAoMHgyYjApXS1payksaUssaWssaWgpO31mdW5jdGlvbiBPKGlLLGlDLGlrLGloKXtyZXR1cm4gaTIocShpQyksaUssaWssaWgpO31mdW5jdGlvbiBRKGlLLGlDLGlrLGloKXtyZXR1cm4gTyhpSyxpQyxpayxpaCk7fWZ1bmN0aW9uIFkoaUssaUMsaWssaWgpe3JldHVybiBpMihpMShpQyksaUssaWssaWgpO31mdW5jdGlvbiBQKGlLLGlDLGlrLGloKXt2YXIgdjE9Z2I7cmV0dXJuIGkyKGkwKGlDLGlLW3YxKDB4MmIwKV0taWspLGlLLGlrLGloKTt9Z1tnYigweDFmMyldW2diKDB4MWU2KV09ZnVuY3Rpb24gaUsoaUMsaWssaWgsaXQpe3ZhciB2Mj1nYjtpZihpaz09PXVuZGVmaW5lZClpdD12MigweDJlYyksaWg9dGhpc1t2MigweDJiMCldLGlrPTB4MDtlbHNle2lmKGloPT09dW5kZWZpbmVkJiZ0eXBlb2YgaWs9PT0nc3RyaW5nJylpdD1payxpaD10aGlzWydsZW5ndGgnXSxpaz0weDA7ZWxzZXtpZihpc0Zpbml0ZShpaykpe2lrPWlrPj4+MHgwO2lmKGlzRmluaXRlKGloKSl7aWg9aWg+Pj4weDA7aWYoaXQ9PT11bmRlZmluZWQpaXQ9djIoMHgyZWMpO31lbHNlIGl0PWloLGloPXVuZGVmaW5lZDt9ZWxzZSB0aHJvdyBuZXcgRXJyb3IodjIoMHgyODEpKTt9fXZhciBpcD10aGlzW3YyKDB4MmIwKV0taWs7aWYoaWg9PT11bmRlZmluZWR8fGloPmlwKWloPWlwO2lmKGlDW3YyKDB4MmIwKV0+MHgwJiYoaWg8MHgwfHxpazwweDApfHxpaz50aGlzW3YyKDB4MmIwKV0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHRceDIwdG9ceDIwd3JpdGVceDIwb3V0c2lkZVx4MjBidWZmZXJceDIwYm91bmRzJyk7aWYoIWl0KWl0PXYyKDB4MmVjKTt2YXIgaXk9IVtdO2Zvcig7Oyl7c3dpdGNoKGl0KXtjYXNlIHYyKDB4MmZlKTpyZXR1cm4gdSh0aGlzLGlDLGlrLGloKTtjYXNlJ3V0ZjgnOmNhc2UgdjIoMHgyMzIpOnJldHVybiBBKHRoaXMsaUMsaWssaWgpO2Nhc2UgdjIoMHgyOWMpOnJldHVybiBPKHRoaXMsaUMsaWssaWgpO2Nhc2UgdjIoMHgyMWYpOmNhc2UgdjIoMHgyZTEpOnJldHVybiBRKHRoaXMsaUMsaWssaWgpO2Nhc2UgdjIoMHgyZTYpOnJldHVybiBZKHRoaXMsaUMsaWssaWgpO2Nhc2UgdjIoMHgzYTQpOmNhc2UndWNzLTInOmNhc2UgdjIoMHgyMzUpOmNhc2UgdjIoMHgyNzcpOnJldHVybiBQKHRoaXMsaUMsaWssaWgpO2RlZmF1bHQ6aWYoaXkpdGhyb3cgbmV3IFR5cGVFcnJvcih2MigweDFmZikraXQpO2l0PSgnJytpdClbdjIoMHgyNDEpXSgpLGl5PSEhW107fX19LGdbZ2IoMHgxZjMpXVsndG9KU09OJ109ZnVuY3Rpb24gaUMoKXt2YXIgdjM9Z2I7cmV0dXJueyd0eXBlJzp2MygweDI4NSksJ2RhdGEnOkFycmF5W3YzKDB4MWYzKV1bdjMoMHgyNmYpXVt2MygweDMwMCldKHRoaXNbJ19hcnInXXx8dGhpcywweDApfTt9O2Z1bmN0aW9uIHcoaWssaWgsaXQpe3ZhciB2ND1nYjtyZXR1cm4gaWg9PT0weDAmJml0PT09aWtbJ2xlbmd0aCddP1NbdjQoMHgzNmYpXShpayk6U1t2NCgweDM2ZildKGlrW3Y0KDB4MjZmKV0oaWgsaXQpKTt9ZnVuY3Rpb24gRyhpayxpaCxpdCl7dmFyIHY1PWdiO2l0PU1hdGhbdjUoMHgxZTIpXShpa1snbGVuZ3RoJ10saXQpO3ZhciBpcD1bXSxpeT1paDt3aGlsZShpeTxpdCl7dmFyIGlYPWlrW2l5XSxpVD1udWxsLGlqPWlYPjB4ZWY/MHg0OmlYPjB4ZGY/MHgzOmlYPjB4YmY/MHgyOjB4MTtpZihpeStpajw9aXQpe3ZhciBpYixpWixpRSxpVTtzd2l0Y2goaWope2Nhc2UgMHgxOmlYPDB4ODAmJihpVD1pWCk7YnJlYWs7Y2FzZSAweDI6aWI9aWtbaXkrMHgxXTsoaWImMHhjMCk9PT0weDgwJiYoaVU9KGlYJjB4MWYpPDwweDZ8aWImMHgzZixpVT4weDdmJiYoaVQ9aVUpKTticmVhaztjYXNlIDB4MzppYj1pa1tpeSsweDFdLGlaPWlrW2l5KzB4Ml07KGliJjB4YzApPT09MHg4MCYmKGlaJjB4YzApPT09MHg4MCYmKGlVPShpWCYweGYpPDwweGN8KGliJjB4M2YpPDwweDZ8aVomMHgzZixpVT4weDdmZiYmKGlVPDB4ZDgwMHx8aVU+MHhkZmZmKSYmKGlUPWlVKSk7YnJlYWs7Y2FzZSAweDQ6aWI9aWtbaXkrMHgxXSxpWj1pa1tpeSsweDJdLGlFPWlrW2l5KzB4M107KGliJjB4YzApPT09MHg4MCYmKGlaJjB4YzApPT09MHg4MCYmKGlFJjB4YzApPT09MHg4MCYmKGlVPShpWCYweGYpPDwweDEyfChpYiYweDNmKTw8MHhjfChpWiYweDNmKTw8MHg2fGlFJjB4M2YsaVU+MHhmZmZmJiZpVTwweDExMDAwMCYmKGlUPWlVKSk7fX1pZihpVD09PW51bGwpaVQ9MHhmZmZkLGlqPTB4MTtlbHNlIGlUPjB4ZmZmZiYmKGlULT0weDEwMDAwLGlwWydwdXNoJ10oaVQ+Pj4weGEmMHgzZmZ8MHhkODAwKSxpVD0weGRjMDB8aVQmMHgzZmYpO2lwWydwdXNoJ10oaVQpLGl5Kz1pajt9cmV0dXJuIGwoaXApO312YXIgVz0weDEwMDA7ZnVuY3Rpb24gbChpayl7dmFyIHY2PWdiLGloPWlrW3Y2KDB4MmIwKV07aWYoaWg8PVcpcmV0dXJuIFN0cmluZ1snZnJvbUNoYXJDb2RlJ11bdjYoMHgyMmIpXShTdHJpbmcsaWspO3ZhciBpdD0nJyxpcD0weDA7d2hpbGUoaXA8aWgpe2l0Kz1TdHJpbmdbdjYoMHgyNDMpXVt2NigweDIyYildKFN0cmluZyxpa1t2NigweDI2ZildKGlwLGlwKz1XKSk7fXJldHVybiBpdDt9ZnVuY3Rpb24gZShpayxpaCxpdCl7dmFyIHY3PWdiLGlwPScnO2l0PU1hdGhbdjcoMHgxZTIpXShpa1t2NygweDJiMCldLGl0KTtmb3IodmFyIGl5PWloO2l5PGl0OysraXkpe2lwKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKGlrW2l5XSYweDdmKTt9cmV0dXJuIGlwO31mdW5jdGlvbiBtKGlrLGloLGl0KXt2YXIgdjg9Z2IsaXA9Jyc7aXQ9TWF0aFt2OCgweDFlMildKGlrW3Y4KDB4MmIwKV0saXQpO2Zvcih2YXIgaXk9aWg7aXk8aXQ7KytpeSl7aXArPVN0cmluZ1t2OCgweDI0MyldKGlrW2l5XSk7fXJldHVybiBpcDt9ZnVuY3Rpb24gbyhpayxpaCxpdCl7dmFyIGlwPWlrWydsZW5ndGgnXTtpZighaWh8fGloPDB4MClpaD0weDA7aWYoIWl0fHxpdDwweDB8fGl0PmlwKWl0PWlwO3ZhciBpeT0nJztmb3IodmFyIGlYPWloO2lYPGl0OysraVgpe2l5Kz1SKGlrW2lYXSk7fXJldHVybiBpeTt9ZnVuY3Rpb24gTChpayxpaCxpdCl7dmFyIHY5PWdiLGlwPWlrW3Y5KDB4MjZmKV0oaWgsaXQpLGl5PScnO2Zvcih2YXIgaVg9MHgwO2lYPGlwW3Y5KDB4MmIwKV07aVgrPTB4Mil7aXkrPVN0cmluZ1t2OSgweDI0MyldKGlwW2lYXStpcFtpWCsweDFdKjB4MTAwKTt9cmV0dXJuIGl5O31nWydwcm90b3R5cGUnXVtnYigweDI2ZildPWZ1bmN0aW9uIGlrKGloLGl0KXt2YXIgdmk9Z2IsaXA9dGhpc1snbGVuZ3RoJ107aWg9fn5paCxpdD1pdD09PXVuZGVmaW5lZD9pcDp+fml0O2lmKGloPDB4MCl7aWgrPWlwO2lmKGloPDB4MClpaD0weDA7fWVsc2UgaWg+aXAmJihpaD1pcCk7aWYoaXQ8MHgwKXtpdCs9aXA7aWYoaXQ8MHgwKWl0PTB4MDt9ZWxzZSBpdD5pcCYmKGl0PWlwKTtpZihpdDxpaClpdD1paDt2YXIgaXk9dGhpc1t2aSgweDFmMSldKGloLGl0KTtyZXR1cm4gaXlbJ19fcHJvdG9fXyddPWdbJ3Byb3RvdHlwZSddLGl5O307ZnVuY3Rpb24gSihpaCxpdCxpcCl7dmFyIHZzPWdiO2lmKGloJTB4MSE9PTB4MHx8aWg8MHgwKXRocm93IG5ldyBSYW5nZUVycm9yKHZzKDB4Mzc0KSk7aWYoaWgraXQ+aXApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZ1x4MjB0b1x4MjBhY2Nlc3NceDIwYmV5b25kXHgyMGJ1ZmZlclx4MjBsZW5ndGgnKTt9Z1tnYigweDFmMyldW2diKDB4MzYwKV09ZnVuY3Rpb24gaWgoaXQsaXAsaXkpe3ZhciB2Rj1nYjtpdD1pdD4+PjB4MCxpcD1pcD4+PjB4MDtpZighaXkpSihpdCxpcCx0aGlzW3ZGKDB4MmIwKV0pO3ZhciBpWD10aGlzW2l0XSxpVD0weDEsaWo9MHgwO3doaWxlKCsraWo8aXAmJihpVCo9MHgxMDApKXtpWCs9dGhpc1tpdCtpal0qaVQ7fXJldHVybiBpWDt9LGdbZ2IoMHgxZjMpXVtnYigweDJmYyldPWZ1bmN0aW9uIGl0KGlwLGl5LGlYKXt2YXIgdmc9Z2I7aXA9aXA+Pj4weDAsaXk9aXk+Pj4weDA7IWlYJiZKKGlwLGl5LHRoaXNbdmcoMHgyYjApXSk7dmFyIGlUPXRoaXNbaXArLS1peV0saWo9MHgxO3doaWxlKGl5PjB4MCYmKGlqKj0weDEwMCkpe2lUKz10aGlzW2lwKy0taXldKmlqO31yZXR1cm4gaVQ7fSxnW2diKDB4MWYzKV1bZ2IoMHgxZDgpXT1mdW5jdGlvbiBpcChpeSxpWCl7dmFyIHZ2PWdiO2l5PWl5Pj4+MHgwO2lmKCFpWClKKGl5LDB4MSx0aGlzW3Z2KDB4MmIwKV0pO3JldHVybiB0aGlzW2l5XTt9LGdbJ3Byb3RvdHlwZSddW2diKDB4MzI5KV09ZnVuY3Rpb24gaXkoaVgsaVQpe3ZhciB2ej1nYjtpWD1pWD4+PjB4MDtpZighaVQpSihpWCwweDIsdGhpc1t2eigweDJiMCldKTtyZXR1cm4gdGhpc1tpWF18dGhpc1tpWCsweDFdPDwweDg7fSxnW2diKDB4MWYzKV1bJ3JlYWRVSW50MTZCRSddPWZ1bmN0aW9uIGlYKGlULGlqKXt2YXIgdlM9Z2I7aVQ9aVQ+Pj4weDA7aWYoIWlqKUooaVQsMHgyLHRoaXNbdlMoMHgyYjApXSk7cmV0dXJuIHRoaXNbaVRdPDwweDh8dGhpc1tpVCsweDFdO30sZ1tnYigweDFmMyldWydyZWFkVUludDMyTEUnXT1mdW5jdGlvbiBpVChpaixpYil7dmFyIHZCPWdiO2lqPWlqPj4+MHgwO2lmKCFpYilKKGlqLDB4NCx0aGlzW3ZCKDB4MmIwKV0pO3JldHVybih0aGlzW2lqXXx0aGlzW2lqKzB4MV08PDB4OHx0aGlzW2lqKzB4Ml08PDB4MTApK3RoaXNbaWorMHgzXSoweDEwMDAwMDA7fSxnW2diKDB4MWYzKV1bZ2IoMHgyMzcpXT1mdW5jdGlvbiBpaihpYixpWil7dmFyIHZNPWdiO2liPWliPj4+MHgwO2lmKCFpWilKKGliLDB4NCx0aGlzW3ZNKDB4MmIwKV0pO3JldHVybiB0aGlzW2liXSoweDEwMDAwMDArKHRoaXNbaWIrMHgxXTw8MHgxMHx0aGlzW2liKzB4Ml08PDB4OHx0aGlzW2liKzB4M10pO30sZ1tnYigweDFmMyldWydyZWFkSW50TEUnXT1mdW5jdGlvbiBpYihpWixpRSxpVSl7dmFyIHZLPWdiO2laPWlaPj4+MHgwLGlFPWlFPj4+MHgwO2lmKCFpVSlKKGlaLGlFLHRoaXNbdksoMHgyYjApXSk7dmFyIGlWPXRoaXNbaVpdLGlkPTB4MSxpcj0weDA7d2hpbGUoKytpcjxpRSYmKGlkKj0weDEwMCkpe2lWKz10aGlzW2laK2lyXSppZDt9aWQqPTB4ODA7aWYoaVY+PWlkKWlWLT1NYXRoWydwb3cnXSgweDIsMHg4KmlFKTtyZXR1cm4gaVY7fSxnWydwcm90b3R5cGUnXVtnYigweDI4YSldPWZ1bmN0aW9uIGlaKGlFLGlVLGlWKXt2YXIgdkM9Z2I7aUU9aUU+Pj4weDAsaVU9aVU+Pj4weDA7aWYoIWlWKUooaUUsaVUsdGhpc1snbGVuZ3RoJ10pO3ZhciBpZD1pVSxpcj0weDEsaWM9dGhpc1tpRSstLWlkXTt3aGlsZShpZD4weDAmJihpcio9MHgxMDApKXtpYys9dGhpc1tpRSstLWlkXSppcjt9aXIqPTB4ODA7aWYoaWM+PWlyKWljLT1NYXRoW3ZDKDB4Mjk0KV0oMHgyLDB4OCppVSk7cmV0dXJuIGljO30sZ1sncHJvdG90eXBlJ11bZ2IoMHgyN2UpXT1mdW5jdGlvbiBpRShpVSxpVil7aVU9aVU+Pj4weDA7aWYoIWlWKUooaVUsMHgxLHRoaXNbJ2xlbmd0aCddKTtpZighKHRoaXNbaVVdJjB4ODApKXJldHVybiB0aGlzW2lVXTtyZXR1cm4oMHhmZi10aGlzW2lVXSsweDEpKi0weDE7fSxnW2diKDB4MWYzKV1bJ3JlYWRJbnQxNkxFJ109ZnVuY3Rpb24gaVUoaVYsaWQpe2lWPWlWPj4+MHgwO2lmKCFpZClKKGlWLDB4Mix0aGlzWydsZW5ndGgnXSk7dmFyIGlyPXRoaXNbaVZdfHRoaXNbaVYrMHgxXTw8MHg4O3JldHVybiBpciYweDgwMDA/aXJ8MHhmZmZmMDAwMDppcjt9LGdbJ3Byb3RvdHlwZSddW2diKDB4M2EwKV09ZnVuY3Rpb24gaVYoaWQsaXIpe3ZhciB2az1nYjtpZD1pZD4+PjB4MDtpZighaXIpSihpZCwweDIsdGhpc1t2aygweDJiMCldKTt2YXIgaWM9dGhpc1tpZCsweDFdfHRoaXNbaWRdPDwweDg7cmV0dXJuIGljJjB4ODAwMD9pY3wweGZmZmYwMDAwOmljO30sZ1sncHJvdG90eXBlJ11bZ2IoMHgyMjEpXT1mdW5jdGlvbiBpZChpcixpYyl7aXI9aXI+Pj4weDA7aWYoIWljKUooaXIsMHg0LHRoaXNbJ2xlbmd0aCddKTtyZXR1cm4gdGhpc1tpcl18dGhpc1tpcisweDFdPDwweDh8dGhpc1tpcisweDJdPDwweDEwfHRoaXNbaXIrMHgzXTw8MHgxODt9LGdbJ3Byb3RvdHlwZSddW2diKDB4M2FkKV09ZnVuY3Rpb24gaXIoaWMsaXUpe3ZhciB2aD1nYjtpYz1pYz4+PjB4MDtpZighaXUpSihpYywweDQsdGhpc1t2aCgweDJiMCldKTtyZXR1cm4gdGhpc1tpY108PDB4MTh8dGhpc1tpYysweDFdPDwweDEwfHRoaXNbaWMrMHgyXTw8MHg4fHRoaXNbaWMrMHgzXTt9LGdbZ2IoMHgxZjMpXVtnYigweDIzYSldPWZ1bmN0aW9uIGljKGl1LGlBKXt2YXIgdnQ9Z2I7aXU9aXU+Pj4weDA7aWYoIWlBKUooaXUsMHg0LHRoaXNbJ2xlbmd0aCddKTtyZXR1cm4gQlt2dCgweDI5NildKHRoaXMsaXUsISFbXSwweDE3LDB4NCk7fSxnW2diKDB4MWYzKV1bZ2IoMHgyNmMpXT1mdW5jdGlvbiBpdShpQSxpTyl7dmFyIHZwPWdiO2lBPWlBPj4+MHgwO2lmKCFpTylKKGlBLDB4NCx0aGlzWydsZW5ndGgnXSk7cmV0dXJuIEJbdnAoMHgyOTYpXSh0aGlzLGlBLCFbXSwweDE3LDB4NCk7fSxnW2diKDB4MWYzKV1bJ3JlYWREb3VibGVMRSddPWZ1bmN0aW9uIGlBKGlPLGlRKXt2YXIgdnk9Z2I7aU89aU8+Pj4weDA7aWYoIWlRKUooaU8sMHg4LHRoaXNbdnkoMHgyYjApXSk7cmV0dXJuIEJbJ3JlYWQnXSh0aGlzLGlPLCEhW10sMHgzNCwweDgpO30sZ1tnYigweDFmMyldW2diKDB4MzA0KV09ZnVuY3Rpb24gaU8oaVEsaVkpe3ZhciB2WD1nYjtpUT1pUT4+PjB4MDtpZighaVkpSihpUSwweDgsdGhpc1t2WCgweDJiMCldKTtyZXR1cm4gQlt2WCgweDI5NildKHRoaXMsaVEsIVtdLDB4MzQsMHg4KTt9O2Z1bmN0aW9uIEgoaVEsaVksaVAsaXcsaUcsaVcpe3ZhciB2VD1nYjtpZighZ1t2VCgweDFmOCldKGlRKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZUKDB4Mzc5KSk7aWYoaVk+aUd8fGlZPGlXKXRocm93IG5ldyBSYW5nZUVycm9yKCdceDIydmFsdWVceDIyXHgyMGFyZ3VtZW50XHgyMGlzXHgyMG91dFx4MjBvZlx4MjBib3VuZHMnKTtpZihpUCtpdz5pUVt2VCgweDJiMCldKXRocm93IG5ldyBSYW5nZUVycm9yKHZUKDB4MzMzKSk7fWdbZ2IoMHgxZjMpXVtnYigweDI5YildPWZ1bmN0aW9uIGlRKGlZLGlQLGl3LGlHKXt2YXIgdmo9Z2I7aVk9K2lZLGlQPWlQPj4+MHgwLGl3PWl3Pj4+MHgwO2lmKCFpRyl7dmFyIGlXPU1hdGhbdmooMHgyOTQpXSgweDIsMHg4Kml3KS0weDE7SCh0aGlzLGlZLGlQLGl3LGlXLDB4MCk7fXZhciBpbD0weDEsaWU9MHgwO3RoaXNbaVBdPWlZJjB4ZmY7d2hpbGUoKytpZTxpdyYmKGlsKj0weDEwMCkpe3RoaXNbaVAraWVdPWlZLyBpbCYweGZmO31yZXR1cm4gaVAraXc7fSxnWydwcm90b3R5cGUnXVtnYigweDM2MSldPWZ1bmN0aW9uIGlZKGlQLGl3LGlHLGlXKXt2YXIgdmI9Z2I7aVA9K2lQLGl3PWl3Pj4+MHgwLGlHPWlHPj4+MHgwO2lmKCFpVyl7dmFyIGlsPU1hdGhbdmIoMHgyOTQpXSgweDIsMHg4KmlHKS0weDE7SCh0aGlzLGlQLGl3LGlHLGlsLDB4MCk7fXZhciBpZT1pRy0weDEsaW09MHgxO3RoaXNbaXcraWVdPWlQJjB4ZmY7d2hpbGUoLS1pZT49MHgwJiYoaW0qPTB4MTAwKSl7dGhpc1tpdytpZV09aVAvIGltJjB4ZmY7fXJldHVybiBpdytpRzt9LGdbZ2IoMHgxZjMpXVtnYigweDFlMSldPWZ1bmN0aW9uIGlQKGl3LGlHLGlXKXtpdz0raXcsaUc9aUc+Pj4weDA7aWYoIWlXKUgodGhpcyxpdyxpRywweDEsMHhmZiwweDApO3JldHVybiB0aGlzW2lHXT1pdyYweGZmLGlHKzB4MTt9LGdbZ2IoMHgxZjMpXVsnd3JpdGVVSW50MTZMRSddPWZ1bmN0aW9uIGl3KGlHLGlXLGlsKXtpRz0raUcsaVc9aVc+Pj4weDA7aWYoIWlsKUgodGhpcyxpRyxpVywweDIsMHhmZmZmLDB4MCk7cmV0dXJuIHRoaXNbaVddPWlHJjB4ZmYsdGhpc1tpVysweDFdPWlHPj4+MHg4LGlXKzB4Mjt9LGdbZ2IoMHgxZjMpXVsnd3JpdGVVSW50MTZCRSddPWZ1bmN0aW9uIGlHKGlXLGlsLGllKXtpVz0raVcsaWw9aWw+Pj4weDA7aWYoIWllKUgodGhpcyxpVyxpbCwweDIsMHhmZmZmLDB4MCk7cmV0dXJuIHRoaXNbaWxdPWlXPj4+MHg4LHRoaXNbaWwrMHgxXT1pVyYweGZmLGlsKzB4Mjt9LGdbZ2IoMHgxZjMpXVtnYigweDJiMSldPWZ1bmN0aW9uIGlXKGlsLGllLGltKXtpbD0raWwsaWU9aWU+Pj4weDA7aWYoIWltKUgodGhpcyxpbCxpZSwweDQsMHhmZmZmZmZmZiwweDApO3JldHVybiB0aGlzW2llKzB4M109aWw+Pj4weDE4LHRoaXNbaWUrMHgyXT1pbD4+PjB4MTAsdGhpc1tpZSsweDFdPWlsPj4+MHg4LHRoaXNbaWVdPWlsJjB4ZmYsaWUrMHg0O30sZ1tnYigweDFmMyldW2diKDB4MmUwKV09ZnVuY3Rpb24gaWwoaWUsaW0saW8pe2llPStpZSxpbT1pbT4+PjB4MDtpZighaW8pSCh0aGlzLGllLGltLDB4NCwweGZmZmZmZmZmLDB4MCk7cmV0dXJuIHRoaXNbaW1dPWllPj4+MHgxOCx0aGlzW2ltKzB4MV09aWU+Pj4weDEwLHRoaXNbaW0rMHgyXT1pZT4+PjB4OCx0aGlzW2ltKzB4M109aWUmMHhmZixpbSsweDQ7fSxnW2diKDB4MWYzKV1bZ2IoMHgzMzYpXT1mdW5jdGlvbiBpZShpbSxpbyxpTCxpSil7dmFyIHZaPWdiO2ltPStpbSxpbz1pbz4+PjB4MDtpZighaUope3ZhciBpSD1NYXRoW3ZaKDB4Mjk0KV0oMHgyLDB4OCppTC0weDEpO0godGhpcyxpbSxpbyxpTCxpSC0weDEsLWlIKTt9dmFyIGlOPTB4MCxpST0weDEsaWE9MHgwO3RoaXNbaW9dPWltJjB4ZmY7d2hpbGUoKytpTjxpTCYmKGlJKj0weDEwMCkpe2ltPDB4MCYmaWE9PT0weDAmJnRoaXNbaW8raU4tMHgxXSE9PTB4MCYmKGlhPTB4MSksdGhpc1tpbytpTl09KGltLyBpST4+MHgwKS1pYSYweGZmO31yZXR1cm4gaW8raUw7fSxnWydwcm90b3R5cGUnXVtnYigweDI0MCldPWZ1bmN0aW9uIGltKGlvLGlMLGlKLGlIKXt2YXIgdkU9Z2I7aW89K2lvLGlMPWlMPj4+MHgwO2lmKCFpSCl7dmFyIGlOPU1hdGhbdkUoMHgyOTQpXSgweDIsMHg4KmlKLTB4MSk7SCh0aGlzLGlvLGlMLGlKLGlOLTB4MSwtaU4pO312YXIgaUk9aUotMHgxLGlhPTB4MSxpeD0weDA7dGhpc1tpTCtpSV09aW8mMHhmZjt3aGlsZSgtLWlJPj0weDAmJihpYSo9MHgxMDApKXtpbzwweDAmJml4PT09MHgwJiZ0aGlzW2lMK2lJKzB4MV0hPT0weDAmJihpeD0weDEpLHRoaXNbaUwraUldPShpby8gaWE+PjB4MCktaXgmMHhmZjt9cmV0dXJuIGlMK2lKO30sZ1sncHJvdG90eXBlJ11bJ3dyaXRlSW50OCddPWZ1bmN0aW9uIGlvKGlMLGlKLGlIKXtpTD0raUwsaUo9aUo+Pj4weDA7aWYoIWlIKUgodGhpcyxpTCxpSiwweDEsMHg3ZiwtMHg4MCk7aWYoaUw8MHgwKWlMPTB4ZmYraUwrMHgxO3JldHVybiB0aGlzW2lKXT1pTCYweGZmLGlKKzB4MTt9LGdbJ3Byb3RvdHlwZSddW2diKDB4MjA0KV09ZnVuY3Rpb24gaUwoaUosaUgsaU4pe2lKPStpSixpSD1pSD4+PjB4MDtpZighaU4pSCh0aGlzLGlKLGlILDB4MiwweDdmZmYsLTB4ODAwMCk7cmV0dXJuIHRoaXNbaUhdPWlKJjB4ZmYsdGhpc1tpSCsweDFdPWlKPj4+MHg4LGlIKzB4Mjt9LGdbZ2IoMHgxZjMpXVsnd3JpdGVJbnQxNkJFJ109ZnVuY3Rpb24gaUooaUgsaU4saUkpe2lIPStpSCxpTj1pTj4+PjB4MDtpZighaUkpSCh0aGlzLGlILGlOLDB4MiwweDdmZmYsLTB4ODAwMCk7cmV0dXJuIHRoaXNbaU5dPWlIPj4+MHg4LHRoaXNbaU4rMHgxXT1pSCYweGZmLGlOKzB4Mjt9LGdbZ2IoMHgxZjMpXVtnYigweDM3NildPWZ1bmN0aW9uIGlIKGlOLGlJLGlhKXtpTj0raU4saUk9aUk+Pj4weDA7aWYoIWlhKUgodGhpcyxpTixpSSwweDQsMHg3ZmZmZmZmZiwtMHg4MDAwMDAwMCk7cmV0dXJuIHRoaXNbaUldPWlOJjB4ZmYsdGhpc1tpSSsweDFdPWlOPj4+MHg4LHRoaXNbaUkrMHgyXT1pTj4+PjB4MTAsdGhpc1tpSSsweDNdPWlOPj4+MHgxOCxpSSsweDQ7fSxnWydwcm90b3R5cGUnXVsnd3JpdGVJbnQzMkJFJ109ZnVuY3Rpb24gaU4oaUksaWEsaXgpe2lJPStpSSxpYT1pYT4+PjB4MDtpZighaXgpSCh0aGlzLGlJLGlhLDB4NCwweDdmZmZmZmZmLC0weDgwMDAwMDAwKTtpZihpSTwweDApaUk9MHhmZmZmZmZmZitpSSsweDE7cmV0dXJuIHRoaXNbaWFdPWlJPj4+MHgxOCx0aGlzW2lhKzB4MV09aUk+Pj4weDEwLHRoaXNbaWErMHgyXT1pST4+PjB4OCx0aGlzW2lhKzB4M109aUkmMHhmZixpYSsweDQ7fTtmdW5jdGlvbiBOKGlJLGlhLGl4LGlSLGlELGlxKXt2YXIgdlU9Z2I7aWYoaXgraVI+aUlbdlUoMHgyYjApXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcih2VSgweDMzMykpO2lmKGl4PDB4MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcih2VSgweDMzMykpO31mdW5jdGlvbiBuKGlJLGlhLGl4LGlSLGlEKXt2YXIgdlY9Z2I7cmV0dXJuIGlhPStpYSxpeD1peD4+PjB4MCwhaUQmJk4oaUksaWEsaXgsMHg0LDB4ZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsLTB4ZmZmZmZmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDApLEJbdlYoMHgxZTYpXShpSSxpYSxpeCxpUiwweDE3LDB4NCksaXgrMHg0O31nW2diKDB4MWYzKV1bZ2IoMHgzM2MpXT1mdW5jdGlvbiBpSShpYSxpeCxpUil7cmV0dXJuIG4odGhpcyxpYSxpeCwhIVtdLGlSKTt9LGdbZ2IoMHgxZjMpXVtnYigweDI3YSldPWZ1bmN0aW9uIGlhKGl4LGlSLGlEKXtyZXR1cm4gbih0aGlzLGl4LGlSLCFbXSxpRCk7fTtmdW5jdGlvbiBJKGl4LGlSLGlELGlxLHMwKXt2YXIgdmQ9Z2I7cmV0dXJuIGlSPStpUixpRD1pRD4+PjB4MCwhczAmJk4oaXgsaVIsaUQsMHg4LDB4ZmZmZmZmZmZmZmZmZjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCwtMHhmZmZmZmZmZmZmZmZmODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKSxCW3ZkKDB4MWU2KV0oaXgsaVIsaUQsaXEsMHgzNCwweDgpLGlEKzB4ODt9Z1sncHJvdG90eXBlJ11bJ3dyaXRlRG91YmxlTEUnXT1mdW5jdGlvbiBpeChpUixpRCxpcSl7cmV0dXJuIEkodGhpcyxpUixpRCwhIVtdLGlxKTt9LGdbZ2IoMHgxZjMpXVtnYigweDI4OCldPWZ1bmN0aW9uIGlSKGlELGlxLHMwKXtyZXR1cm4gSSh0aGlzLGlELGlxLCFbXSxzMCk7fSxnW2diKDB4MWYzKV1bZ2IoMHgyNzApXT1mdW5jdGlvbiBpRChpcSxzMCxzMSxzMil7dmFyIHZyPWdiO2lmKCFnW3ZyKDB4MWY4KV0oaXEpKXRocm93IG5ldyBUeXBlRXJyb3IoJ2FyZ3VtZW50XHgyMHNob3VsZFx4MjBiZVx4MjBhXHgyMEJ1ZmZlcicpO2lmKCFzMSlzMT0weDA7aWYoIXMyJiZzMiE9PTB4MClzMj10aGlzW3ZyKDB4MmIwKV07aWYoczA+PWlxW3ZyKDB4MmIwKV0pczA9aXFbdnIoMHgyYjApXTtpZighczApczA9MHgwO2lmKHMyPjB4MCYmczI8czEpczI9czE7aWYoczI9PT1zMSlyZXR1cm4gMHgwO2lmKGlxW3ZyKDB4MmIwKV09PT0weDB8fHRoaXNbdnIoMHgyYjApXT09PTB4MClyZXR1cm4gMHgwO2lmKHMwPDB4MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcih2cigweDFlZCkpO2lmKHMxPDB4MHx8czE+PXRoaXNbdnIoMHgyYjApXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcih2cigweDMzMykpO2lmKHMyPDB4MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcih2cigweDIzYykpO2lmKHMyPnRoaXNbdnIoMHgyYjApXSlzMj10aGlzWydsZW5ndGgnXTtpcVt2cigweDJiMCldLXMwPHMyLXMxJiYoczI9aXFbdnIoMHgyYjApXS1zMCtzMSk7dmFyIHMzPXMyLXMxO2lmKHRoaXM9PT1pcSYmdHlwZW9mIFVpbnQ4QXJyYXlbdnIoMHgxZjMpXVsnY29weVdpdGhpbiddPT09dnIoMHgzMDUpKXRoaXNbJ2NvcHlXaXRoaW4nXShzMCxzMSxzMik7ZWxzZXtpZih0aGlzPT09aXEmJnMxPHMwJiZzMDxzMilmb3IodmFyIHM0PXMzLTB4MTtzND49MHgwOy0tczQpe2lxW3M0K3MwXT10aGlzW3M0K3MxXTt9ZWxzZSBVaW50OEFycmF5W3ZyKDB4MWYzKV1bdnIoMHgyODIpXVt2cigweDMwMCldKGlxLHRoaXNbJ3N1YmFycmF5J10oczEsczIpLHMwKTt9cmV0dXJuIHMzO30sZ1sncHJvdG90eXBlJ11bZ2IoMHgzMzkpXT1mdW5jdGlvbiBpcShzMCxzMSxzMixzMyl7dmFyIHZjPWdiO2lmKHR5cGVvZiBzMD09PXZjKDB4MmEyKSl7aWYodHlwZW9mIHMxPT09J3N0cmluZycpczM9czEsczE9MHgwLHMyPXRoaXNbdmMoMHgyYjApXTtlbHNlIHR5cGVvZiBzMj09PXZjKDB4MmEyKSYmKHMzPXMyLHMyPXRoaXNbdmMoMHgyYjApXSk7aWYoczMhPT11bmRlZmluZWQmJnR5cGVvZiBzMyE9PSdzdHJpbmcnKXRocm93IG5ldyBUeXBlRXJyb3IoJ2VuY29kaW5nXHgyMG11c3RceDIwYmVceDIwYVx4MjBzdHJpbmcnKTtpZih0eXBlb2YgczM9PT12YygweDJhMikmJiFnW3ZjKDB4MjllKV0oczMpKXRocm93IG5ldyBUeXBlRXJyb3IodmMoMHgxZmYpK3MzKTtpZihzMFt2YygweDJiMCldPT09MHgxKXt2YXIgczQ9czBbdmMoMHgzNjgpXSgweDApOyhzMz09PXZjKDB4MmVjKSYmczQ8MHg4MHx8czM9PT12YygweDIxZikpJiYoczA9czQpO319ZWxzZSB0eXBlb2YgczA9PT12YygweDI3NSkmJihzMD1zMCYweGZmKTtpZihzMTwweDB8fHRoaXNbdmMoMHgyYjApXTxzMXx8dGhpc1t2YygweDJiMCldPHMyKXRocm93IG5ldyBSYW5nZUVycm9yKHZjKDB4MmM5KSk7aWYoczI8PXMxKXJldHVybiB0aGlzO3MxPXMxPj4+MHgwLHMyPXMyPT09dW5kZWZpbmVkP3RoaXNbdmMoMHgyYjApXTpzMj4+PjB4MDtpZighczApczA9MHgwO3ZhciBzNTtpZih0eXBlb2YgczA9PT12YygweDI3NSkpZm9yKHM1PXMxO3M1PHMyOysrczUpe3RoaXNbczVdPXMwO31lbHNle3ZhciBzNj1nW3ZjKDB4MWY4KV0oczApP3MwOmdbdmMoMHgyYjcpXShzMCxzMyksczc9czZbdmMoMHgyYjApXTtpZihzNz09PTB4MCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGVceDIwdmFsdWVceDIwXHgyMicrczArdmMoMHgyZTMpKTtmb3IoczU9MHgwO3M1PHMyLXMxOysrczUpe3RoaXNbczUrczFdPXM2W3M1JXM3XTt9fXJldHVybiB0aGlzO307dmFyIGY9L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiBhKHMwKXt2YXIgdnU9Z2I7czA9czBbdnUoMHgyYzUpXSgnPScpWzB4MF0sczA9czBbJ3RyaW0nXSgpW3Z1KDB4M2IxKV0oZiwnJyk7aWYoczBbdnUoMHgyYjApXTwweDIpcmV0dXJuJyc7d2hpbGUoczBbdnUoMHgyYjApXSUweDQhPT0weDApe3MwPXMwKyc9Jzt9cmV0dXJuIHMwO31mdW5jdGlvbiBSKHMwKXt2YXIgdkE9Z2I7aWYoczA8MHgxMClyZXR1cm4nMCcrczBbdkEoMHgxZWMpXSgweDEwKTtyZXR1cm4gczBbdkEoMHgxZWMpXSgweDEwKTt9ZnVuY3Rpb24gRChzMCxzMSl7dmFyIHZPPWdiO3MxPXMxfHxJbmZpbml0eTt2YXIgczIsczM9czBbdk8oMHgyYjApXSxzND1udWxsLHM1PVtdO2Zvcih2YXIgczY9MHgwO3M2PHMzOysrczYpe3MyPXMwW3ZPKDB4MzY4KV0oczYpO2lmKHMyPjB4ZDdmZiYmczI8MHhlMDAwKXtpZighczQpe2lmKHMyPjB4ZGJmZil7aWYoKHMxLT0weDMpPi0weDEpczVbdk8oMHgzMmMpXSgweGVmLDB4YmYsMHhiZCk7Y29udGludWU7fWVsc2V7aWYoczYrMHgxPT09czMpe2lmKChzMS09MHgzKT4tMHgxKXM1W3ZPKDB4MzJjKV0oMHhlZiwweGJmLDB4YmQpO2NvbnRpbnVlO319czQ9czI7Y29udGludWU7fWlmKHMyPDB4ZGMwMCl7aWYoKHMxLT0weDMpPi0weDEpczVbdk8oMHgzMmMpXSgweGVmLDB4YmYsMHhiZCk7czQ9czI7Y29udGludWU7fXMyPShzNC0weGQ4MDA8PDB4YXxzMi0weGRjMDApKzB4MTAwMDA7fWVsc2V7aWYoczQpe2lmKChzMS09MHgzKT4tMHgxKXM1W3ZPKDB4MzJjKV0oMHhlZiwweGJmLDB4YmQpO319czQ9bnVsbDtpZihzMjwweDgwKXtpZigoczEtPTB4MSk8MHgwKWJyZWFrO3M1W3ZPKDB4MzJjKV0oczIpO31lbHNle2lmKHMyPDB4ODAwKXtpZigoczEtPTB4Mik8MHgwKWJyZWFrO3M1W3ZPKDB4MzJjKV0oczI+PjB4NnwweGMwLHMyJjB4M2Z8MHg4MCk7fWVsc2V7aWYoczI8MHgxMDAwMCl7aWYoKHMxLT0weDMpPDB4MClicmVhaztzNVsncHVzaCddKHMyPj4weGN8MHhlMCxzMj4+MHg2JjB4M2Z8MHg4MCxzMiYweDNmfDB4ODApO31lbHNle2lmKHMyPDB4MTEwMDAwKXtpZigoczEtPTB4NCk8MHgwKWJyZWFrO3M1W3ZPKDB4MzJjKV0oczI+PjB4MTJ8MHhmMCxzMj4+MHhjJjB4M2Z8MHg4MCxzMj4+MHg2JjB4M2Z8MHg4MCxzMiYweDNmfDB4ODApO31lbHNlIHRocm93IG5ldyBFcnJvcignSW52YWxpZFx4MjBjb2RlXHgyMHBvaW50Jyk7fX19fXJldHVybiBzNTt9ZnVuY3Rpb24gcShzMCl7dmFyIHZRPWdiLHMxPVtdO2Zvcih2YXIgczI9MHgwO3MyPHMwWydsZW5ndGgnXTsrK3MyKXtzMVt2USgweDMyYyldKHMwWydjaGFyQ29kZUF0J10oczIpJjB4ZmYpO31yZXR1cm4gczE7fWZ1bmN0aW9uIGkwKHMwLHMxKXt2YXIgdlk9Z2IsczIsczMsczQsczU9W107Zm9yKHZhciBzNj0weDA7czY8czBbJ2xlbmd0aCddOysrczYpe2lmKChzMS09MHgyKTwweDApYnJlYWs7czI9czBbdlkoMHgzNjgpXShzNiksczM9czI+PjB4OCxzND1zMiUweDEwMCxzNVt2WSgweDMyYyldKHM0KSxzNVt2WSgweDMyYyldKHMzKTt9cmV0dXJuIHM1O31mdW5jdGlvbiBpMShzMCl7dmFyIHZQPWdiO3JldHVybiBTW3ZQKDB4Mjc5KV0oYShzMCkpO31mdW5jdGlvbiBpMihzMCxzMSxzMixzMyl7dmFyIHZ3PWdiO2Zvcih2YXIgczQ9MHgwO3M0PHMzOysrczQpe2lmKHM0K3MyPj1zMVsnbGVuZ3RoJ118fHM0Pj1zMFt2dygweDJiMCldKWJyZWFrO3MxW3M0K3MyXT1zMFtzNF07fXJldHVybiBzNDt9ZnVuY3Rpb24gaTMoczAsczEpe3ZhciB2Rz1nYjtyZXR1cm4gczAgaW5zdGFuY2VvZiBzMXx8czAhPW51bGwmJnMwW3ZHKDB4MjM0KV0hPW51bGwmJnMwW3ZHKDB4MjM0KV1bdkcoMHgyODApXSE9bnVsbCYmczBbdkcoMHgyMzQpXVt2RygweDI4MCldPT09czFbdkcoMHgyODApXTt9ZnVuY3Rpb24gaTQoczApe3JldHVybiBzMCE9PXMwO319W3ZXKDB4MzAwKV0odGhpcyxpKHZXKDB4MjU4KSlbdlcoMHgyODUpXSkpO30seydiYXNlNjQtanMnOjB4YiwnYnVmZmVyJzoweGMsJ2llZWU3NTQnOjB4ZH1dLDB4ZDpbZnVuY3Rpb24oaSxzLEYpe3ZhciB2bD16O0ZbdmwoMHgyOTYpXT1mdW5jdGlvbihnLFMsQixNLEspe3ZhciB2ZT12bCxDLGssaD1LKjB4OC1NLTB4MSx0PSgweDE8PGgpLTB4MSxwPXQ+PjB4MSxYPS0weDcsVD1CP0stMHgxOjB4MCxqPUI/LTB4MToweDEsYj1nW1MrVF07VCs9aixDPWImKDB4MTw8LVgpLTB4MSxiPj49LVgsWCs9aDtmb3IoO1g+MHgwO0M9QyoweDEwMCtnW1MrVF0sVCs9aixYLT0weDgpe31rPUMmKDB4MTw8LVgpLTB4MSxDPj49LVgsWCs9TTtmb3IoO1g+MHgwO2s9ayoweDEwMCtnW1MrVF0sVCs9aixYLT0weDgpe31pZihDPT09MHgwKUM9MHgxLXA7ZWxzZXtpZihDPT09dClyZXR1cm4gaz9OYU46KGI/LTB4MToweDEpKkluZmluaXR5O2Vsc2Ugaz1rK01hdGhbdmUoMHgyOTQpXSgweDIsTSksQz1DLXA7fXJldHVybihiPy0weDE6MHgxKSprKk1hdGhbdmUoMHgyOTQpXSgweDIsQy1NKTt9LEZbdmwoMHgxZTYpXT1mdW5jdGlvbihnLFMsQixNLEssQyl7dmFyIHZtPXZsLGssaCx0LHA9QyoweDgtSy0weDEsWD0oMHgxPDxwKS0weDEsVD1YPj4weDEsaj1LPT09MHgxNz9NYXRoWydwb3cnXSgweDIsLTB4MTgpLU1hdGhbJ3BvdyddKDB4MiwtMHg0ZCk6MHgwLGI9TT8weDA6Qy0weDEsWj1NPzB4MTotMHgxLEU9UzwweDB8fFM9PT0weDAmJjB4MS9TPDB4MD8weDE6MHgwO1M9TWF0aFsnYWJzJ10oUyk7aWYoaXNOYU4oUyl8fFM9PT1JbmZpbml0eSloPWlzTmFOKFMpPzB4MToweDAsaz1YO2Vsc2V7az1NYXRoW3ZtKDB4MjcxKV0oTWF0aFt2bSgweDJjYSldKFMpL01hdGhbdm0oMHgyNWYpXSk7UyoodD1NYXRoWydwb3cnXSgweDIsLWspKTwweDEmJihrLS0sdCo9MHgyKTtrK1Q+PTB4MT9TKz1qL3Q6Uys9aipNYXRoW3ZtKDB4Mjk0KV0oMHgyLDB4MS1UKTtTKnQ+PTB4MiYmKGsrKyx0Lz0weDIpO2lmKGsrVD49WCloPTB4MCxrPVg7ZWxzZSBrK1Q+PTB4MT8oaD0oUyp0LTB4MSkqTWF0aFt2bSgweDI5NCldKDB4MixLKSxrPWsrVCk6KGg9UypNYXRoWydwb3cnXSgweDIsVC0weDEpKk1hdGhbdm0oMHgyOTQpXSgweDIsSyksaz0weDApO31mb3IoO0s+PTB4ODtnW0IrYl09aCYweGZmLGIrPVosaC89MHgxMDAsSy09MHg4KXt9az1rPDxLfGgscCs9Sztmb3IoO3A+MHgwO2dbQitiXT1rJjB4ZmYsYis9WixrLz0weDEwMCxwLT0weDgpe31nW0IrYi1aXXw9RSoweDgwO307fSx7fV0sMHhlOltmdW5jdGlvbihpLHMsRil7KGZ1bmN0aW9uKGcpeyd1c2Ugc3RyaWN0Jzt2YXIgdko9ejtmdW5jdGlvbiBTKE0pe3ZhciB2bz16O2lmKCEodGhpcyBpbnN0YW5jZW9mIFMpKXJldHVybiBuZXcgUyhNKTt2YXIgSz1NW3ZvKDB4Mjg5KV0sQz1NWydoZWlnaHQnXSxrPVtbLTB4MSwweDAsMHgxXSxbLTB4MiwweDAsMHgyXSxbLTB4MSwweDAsMHgxXV0saD1bWy0weDEsLTB4MiwtMHgxXSxbMHgwLDB4MCwweDBdLFsweDEsMHgyLDB4MV1dLHQ9W10scD1bXTtmdW5jdGlvbiBYKFkpe3JldHVybiBmdW5jdGlvbihQLHcsRyl7cmV0dXJuIEc9R3x8MHgwLFlbKEsqdytQKSoweDQrR107fTt9dmFyIFQ9TVt2bygweDFkZCldLGo9WChUKSxaLEU7Zm9yKEU9MHgwO0U8QztFKyspe2ZvcihaPTB4MDtaPEs7WisrKXt2YXIgVT1qKFosRSwweDApLFY9aihaLEUsMHgxKSxkPWooWixFLDB4MiksYz0oVStWK2QpLzB4MztwWydwdXNoJ10oYyxjLGMsMHhmZik7fX1qPVgocCk7Zm9yKEU9MHgwO0U8QztFKyspe2ZvcihaPTB4MDtaPEs7WisrKXt2YXIgdT1rWzB4MF1bMHgwXSpqKFotMHgxLEUtMHgxKStrWzB4MF1bMHgxXSpqKFosRS0weDEpK2tbMHgwXVsweDJdKmooWisweDEsRS0weDEpK2tbMHgxXVsweDBdKmooWi0weDEsRSkra1sweDFdWzB4MV0qaihaLEUpK2tbMHgxXVsweDJdKmooWisweDEsRSkra1sweDJdWzB4MF0qaihaLTB4MSxFKzB4MSkra1sweDJdWzB4MV0qaihaLEUrMHgxKStrWzB4Ml1bMHgyXSpqKForMHgxLEUrMHgxKSxBPWhbMHgwXVsweDBdKmooWi0weDEsRS0weDEpK2hbMHgwXVsweDFdKmooWixFLTB4MSkraFsweDBdWzB4Ml0qaihaKzB4MSxFLTB4MSkraFsweDFdWzB4MF0qaihaLTB4MSxFKStoWzB4MV1bMHgxXSpqKFosRSkraFsweDFdWzB4Ml0qaihaKzB4MSxFKStoWzB4Ml1bMHgwXSpqKFotMHgxLEUrMHgxKStoWzB4Ml1bMHgxXSpqKFosRSsweDEpK2hbMHgyXVsweDJdKmooWisweDEsRSsweDEpLE89TWF0aFsnc3FydCddKHUqdStBKkEpPj4+MHgwO3Rbdm8oMHgzMmMpXShPLE8sTywweGZmKTt9fXZhciBRPXQ7cmV0dXJuIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheT09PXZvKDB4MzA1KSYmKFE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHQpKSxRW3ZvKDB4MjZlKV09ZnVuY3Rpb24oKXt2YXIgdkw9dm87cmV0dXJuIFNbdkwoMHgyNmUpXShRLEssQyk7fSxRO31TW3ZKKDB4MjZlKV09ZnVuY3Rpb24gTShLLEMsayl7dmFyIHZIPXZKO2lmKHR5cGVvZiBJbWFnZURhdGE9PT0nZnVuY3Rpb24nJiZPYmplY3RbdkgoMHgxZjMpXVt2SCgweDFlYyldW3ZIKDB4MzAwKV0oSyk9PT12SCgweDFmNikpcmV0dXJuIG5ldyBJbWFnZURhdGEoSyxDLGspO2Vsc2V7aWYodHlwZW9mIHdpbmRvdz09PXZIKDB4MjRjKSYmdHlwZW9mIHdpbmRvd1snZG9jdW1lbnQnXT09PXZIKDB4MjRjKSl7dmFyIGg9ZG9jdW1lbnRbJ2NyZWF0ZUVsZW1lbnQnXSh2SCgweDI0ZikpO2lmKHR5cGVvZiBoW3ZIKDB4MmJlKV09PT0nZnVuY3Rpb24nKXt2YXIgdD1oW3ZIKDB4MmJlKV0oJzJkJykscD10WydjcmVhdGVJbWFnZURhdGEnXShDLGspO3JldHVybiBwW3ZIKDB4MWRkKV1bdkgoMHgyODIpXShLKSxwO31lbHNlIHJldHVybiBuZXcgQihLLEMsayk7fWVsc2UgcmV0dXJuIG5ldyBCKEssQyxrKTt9fTtmdW5jdGlvbiBCKEssQyxrKXtyZXR1cm57J3dpZHRoJzpDLCdoZWlnaHQnOmssJ2RhdGEnOkt9O31pZih0eXBlb2YgRiE9PXZKKDB4MmRiKSl0eXBlb2YgcyE9PSd1bmRlZmluZWQnJiZzWydleHBvcnRzJ10mJihGPXNbdkooMHgzMTYpXT1TKSxGW3ZKKDB4MjhkKV09UztlbHNlIHR5cGVvZiBkZWZpbmU9PT12SigweDMwNSkmJmRlZmluZVt2SigweDMyZCldP2RlZmluZShbXSxmdW5jdGlvbigpe3JldHVybiBTO30pOmdbJ1NvYmVsJ109Uzt9KHRoaXMpKTt9LHt9XX0se30sWzB4MV0pKTt9KGZ1bmN0aW9uIGNoZWNrQW5kUnVuKCl7dmFyIHZJPXM5LFM9KGZ1bmN0aW9uKCl7dmFyIEM9ISFbXTtyZXR1cm4gZnVuY3Rpb24oayxoKXt2YXIgdD1DP2Z1bmN0aW9uKCl7aWYoaCl7dmFyIHA9aFsnYXBwbHknXShrLGFyZ3VtZW50cyk7cmV0dXJuIGg9bnVsbCxwO319OmZ1bmN0aW9uKCl7fTtyZXR1cm4gQz0hW10sdDt9O30oKSksQj1TKHRoaXMsZnVuY3Rpb24oKXt2YXIgdk49ejtyZXR1cm4gQlt2TigweDFlYyldKClbJ3NlYXJjaCddKHZOKDB4MzhiKSlbJ3RvU3RyaW5nJ10oKVsnY29uc3RydWN0b3InXShCKVt2TigweDJlYildKHZOKDB4MzhiKSk7fSk7QigpO3ZhciBNPShmdW5jdGlvbigpe3ZhciBDPSEhW107cmV0dXJuIGZ1bmN0aW9uKGssaCl7dmFyIHQ9Qz9mdW5jdGlvbigpe2lmKGgpe3ZhciBwPWhbJ2FwcGx5J10oayxhcmd1bWVudHMpO3JldHVybiBoPW51bGwscDt9fTpmdW5jdGlvbigpe307cmV0dXJuIEM9IVtdLHQ7fTt9KCkpLEs9TSh0aGlzLGZ1bmN0aW9uKCl7dmFyIHZuPXosQzt0cnl7dmFyIGs9RnVuY3Rpb24oJ3JldHVyblx4MjAoZnVuY3Rpb24oKVx4MjAnK3ZuKDB4MzQxKSsnKTsnKTtDPWsoKTt9Y2F0Y2goYil7Qz13aW5kb3c7fXZhciBoPUNbdm4oMHgxY2UpXT1DW3ZuKDB4MWNlKV18fHt9LHQ9W3ZuKDB4MmNhKSx2bigweDMyZiksdm4oMHgzYTUpLHZuKDB4M2ExKSx2bigweDM1OCksdm4oMHgxZjApLCd0cmFjZSddO2Zvcih2YXIgcD0weDA7cDx0W3ZuKDB4MmIwKV07cCsrKXt2YXIgWD1NW3ZuKDB4MjM0KV1bdm4oMHgxZjMpXVt2bigweDJkYSldKE0pLFQ9dFtwXSxqPWhbVF18fFg7WFt2bigweDM0YSldPU1bdm4oMHgyZGEpXShNKSxYWyd0b1N0cmluZyddPWpbdm4oMHgxZWMpXVt2bigweDJkYSldKGopLGhbVF09WDt9fSk7SygpLGNvbnNvbGVbdkkoMHgyY2EpXSh2SSgweDJkMykpLGRvY3VtZW50W3ZJKDB4MWQ5KV09PT0nY29tcGxldGUnJiZkb2N1bWVudFt2SSgweDMzZildKCdjYW52YXMnKSYmZG9jdW1lbnRbdkkoMHgzM2YpXSh2SSgweDI2NykpJiZkb2N1bWVudFt2SSgweDMzZildKCcuc2VsZWN0ZWQnKSYmZG9jdW1lbnRbdkkoMHgzM2YpXSgnLnNlbGVjdGVkJylbdkkoMHgzMmUpXVt2SSgweDM5NCldJiZkb2N1bWVudFsnZ2V0RWxlbWVudEJ5SWQnXSh2SSgweDIzZSkpW3ZJKDB4MjlmKV1bdkkoMHgyYjApXT8oY29uc29sZVsnbG9nJ10odkkoMHgzMzEpKSxwYXlsb2FkKCkpOnNldFRpbWVvdXQoY2hlY2tBbmRSdW4sMHg2NCk7fSgpKTs=